<?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>76378</bug_id>
          
          <creation_ts>2012-01-16 05:18:38 -0800</creation_ts>
          <short_desc>[EFL] Modify the code to webkit-style and adapt to C++ naming.</short_desc>
          <delta_ts>2012-02-06 21:44:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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>0</everconfirmed>
          <reporter name="JungJik Lee">jungjik.lee</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hyuki.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>536497</commentid>
    <comment_count>0</comment_count>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-16 05:18:38 -0800</bug_when>
    <thetext>I still could find some wrong webkit-style code and C style naming code.
The logic of the code is not touched. I just have changed the style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536504</commentid>
    <comment_count>1</comment_count>
      <attachid>122620</attachid>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-16 05:39:10 -0800</bug_when>
    <thetext>Created attachment 122620
minor style changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536515</commentid>
    <comment_count>2</comment_count>
    <who name="KwangHyuk">hyuki.kim</who>
    <bug_when>2012-01-16 06:06:44 -0800</bug_when>
    <thetext>Looks fine, but small fix would be required.

&gt; Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp:1974
&gt; +        const unsigned long column = info-&gt;col;

Why don&apos;t you replace info with more meaningful term ?

&gt; Source/WebKit/efl/ewk/ewk_tiled_model.cpp:350
&gt; +        render_start = (double)timev.tv_sec +

Will you let render_start allow ?

&gt; Source/WebKit/efl/ewk/ewk_view.cpp:259
&gt; +    Ewk_View_Private_Data* ptr = smartData-&gt;_priv

Why don&apos;t you replace prt ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536549</commentid>
    <comment_count>3</comment_count>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-16 07:38:05 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Looks fine, but small fix would be required.
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp:1974
&gt; &gt; +        const unsigned long column = info-&gt;col;
Done!
&gt; 
&gt; Why don&apos;t you replace info with more meaningful term ?
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_tiled_model.cpp:350
&gt; &gt; +        render_start = (double)timev.tv_sec +
&gt; 
&gt; Will you let render_start allow ?
Done!
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_view.cpp:259
&gt; &gt; +    Ewk_View_Private_Data* ptr = smartData-&gt;_priv
&gt; 
&gt; Why don&apos;t you replace prt ?
Done!
But we still have many abbreviations and underscores. I am going to revise them occasionally and continually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536551</commentid>
    <comment_count>4</comment_count>
      <attachid>122636</attachid>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-16 07:39:08 -0800</bug_when>
    <thetext>Created attachment 122636
revised patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536821</commentid>
    <comment_count>5</comment_count>
      <attachid>122636</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-01-16 17:21:32 -0800</bug_when>
    <thetext>Comment on attachment 122636
revised patch

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

In my quick scanning, almost is good.

&gt; Source/WebKit/efl/ewk/ewk_tiled_model.cpp:711
&gt; + * @param tileFreeCb function used to free tiles.

In previous point, we used Callback instead of Cb.
So, how about using same style?

&gt; Source/WebKit/efl/ewk/ewk_view.cpp:242
&gt; +#define EWK_VIEW_TYPE_CHECK(ewkView, ...)                                   \
&gt; +    do {                                                                    \
&gt; +        const char* _tmp_otype = evas_object_type_get(ewkView);             \
&gt; +        const Evas_Smart* _tmp_s = evas_object_smart_smart_get(ewkView);    \
&gt; +        if (EINA_UNLIKELY(!_tmp_s)) {                                       \
&gt; +            EINA_LOG_CRIT                                                   \
&gt; +                (&quot;%p (%s) is not a smart object!&quot;, ewkView,                 \
&gt; +                _tmp_otype ? _tmp_otype : &quot;(null)&quot;);                        \
&gt; +            return __VA_ARGS__;                                             \
&gt; +        }                                                                   \
&gt; +        const Evas_Smart_Class* _tmp_sc = evas_smart_class_get(_tmp_s);     \
&gt; +        if (EINA_UNLIKELY(!_tmp_sc)) {                                      \
&gt; +            EINA_LOG_CRIT                                                   \
&gt; +                (&quot;%p (%s) is not a smart object!&quot;, ewkView,                 \
&gt; +                _tmp_otype ? _tmp_otype : &quot;(null)&quot;);                        \
&gt; +            return __VA_ARGS__;                                             \
&gt; +        }                                                                   \
&gt; +        if (EINA_UNLIKELY(_tmp_sc-&gt;data != EWK_VIEW_TYPE_STR)) {            \
&gt; +            EINA_LOG_CRIT                                                   \
&gt; +                (&quot;%p (%s) is not of an ewk_view (need %p, got %p)!&quot;,        \
&gt; +                ewkView, _tmp_otype ? _tmp_otype : &quot;(null)&quot;,                \
&gt; +                EWK_VIEW_TYPE_STR, _tmp_sc-&gt;data);                          \
&gt; +            return __VA_ARGS__;                                             \
&gt; +        }                                                                   \

IMO, your changelog is not enough because this is not naming change.

BTW, I want to know any reasons that these macro functions can&apos;t be changed to static inline functions.
and if not, I prefer only one space before \ 
I&apos;ll share this opinion to webkit-efl-dev.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536825</commentid>
    <comment_count>6</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-01-16 17:27:23 -0800</bug_when>
    <thetext>&gt; BTW, I want to know any reasons that these macro functions can&apos;t be changed to static inline functions.

please ignore this. this is my wrong opinion, sorry for the confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536887</commentid>
    <comment_count>7</comment_count>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-16 22:11:12 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 122636 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=122636&amp;action=review
&gt; 
&gt; In my quick scanning, almost is good.
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_tiled_model.cpp:711
&gt; &gt; + * @param tileFreeCb function used to free tiles.
&gt; 
I&apos;ve checked it out. Done!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536889</commentid>
    <comment_count>8</comment_count>
      <attachid>122714</attachid>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-16 22:13:26 -0800</bug_when>
    <thetext>Created attachment 122714
rename callback function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536971</commentid>
    <comment_count>9</comment_count>
      <attachid>122714</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-01-17 02:06:13 -0800</bug_when>
    <thetext>Comment on attachment 122714
rename callback function

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538550</commentid>
    <comment_count>10</comment_count>
      <attachid>123090</attachid>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-19 01:22:19 -0800</bug_when>
    <thetext>Created attachment 123090
rebased_newly

This patch would be conflicted with recently merged code.
So I rebased it with latest code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538563</commentid>
    <comment_count>11</comment_count>
      <attachid>123090</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-01-19 02:01:04 -0800</bug_when>
    <thetext>Comment on attachment 123090
rebased_newly

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538592</commentid>
    <comment_count>12</comment_count>
      <attachid>123096</attachid>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-19 03:34:26 -0800</bug_when>
    <thetext>Created attachment 123096
spelling fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538593</commentid>
    <comment_count>13</comment_count>
      <attachid>123090</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-01-19 03:35:52 -0800</bug_when>
    <thetext>Comment on attachment 123090
rebased_newly

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

Seems reasonable. r=me provided the change log entry is updated.

&gt; Source/WebKit/efl/ChangeLog:3
&gt; +        [EFL] Adapt C++ style and Modify to webkit-style.

Typo: s/Adapt/Adopt/

&gt; Source/WebKit/efl/ChangeLog:9
&gt; +        Modify the code to webkit-style and adapt to C++ style naming.
&gt; +        The logic of the code is not changed.

You should mention that this patch is about renaming variables to use camelCase and spelling out variable names instead of using abbreviations. In fact, you might want to rename the bug summary accordingly.

&gt; Source/WebKit/efl/ewk/ewk_view.cpp:220
&gt; +#define EWK_VIEW_TYPE_CHECK(ewkView, ...)                                   \
&gt; +    do {                                                                    \

We don&apos;t normally align \ like this; we place \ after ) followed by exactly one space.

&gt; Source/WebKit/efl/ewk/ewk_view.cpp:2961
&gt; + * @param window_features Features of the new window being created. If it&apos;s @c
&gt; + * 0, it will be created a window with default features.

I don&apos;t understand this comment. Is it saying that if @c is 0, it will create a window with default features?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538609</commentid>
    <comment_count>14</comment_count>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-19 04:08:01 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 123090 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=123090&amp;action=review
&gt; 
&gt; Seems reasonable. r=me provided the change log entry is updated.
&gt; 
&gt; &gt; Source/WebKit/efl/ChangeLog:3
&gt; &gt; +        [EFL] Adapt C++ style and Modify to webkit-style.
&gt; 
&gt; Typo: s/Adapt/Adopt/
&gt; 
it&apos;s done.

&gt; &gt; Source/WebKit/efl/ChangeLog:9
&gt; &gt; +        Modify the code to webkit-style and adapt to C++ style naming.
&gt; &gt; +        The logic of the code is not changed.
&gt; 
&gt; You should mention that this patch is about renaming variables to use camelCase and spelling out variable names instead of using abbreviations. In fact, you might want to rename the bug summary accordingly.
&gt; 
Done!

&gt; &gt; Source/WebKit/efl/ewk/ewk_view.cpp:220
&gt; &gt; +#define EWK_VIEW_TYPE_CHECK(ewkView, ...)                                   \
&gt; &gt; +    do {                                                                    \
&gt; 
&gt; We don&apos;t normally align \ like this; we place \ after ) followed by exactly one space.
&gt; 
Done!

&gt; &gt; Source/WebKit/efl/ewk/ewk_view.cpp:2961
&gt; &gt; + * @param window_features Features of the new window being created. If it&apos;s @c
&gt; &gt; + * 0, it will be created a window with default features.
&gt; 
&gt; I don&apos;t understand this comment. Is it saying that if @c is 0, it will create a window with default features?

As far as I know, @c is doxygen keyword to decorate the document. EFL port is documented by doxygen. so it mean if parameter is 0, it will create a window with default feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538612</commentid>
    <comment_count>15</comment_count>
      <attachid>123101</attachid>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-19 04:10:50 -0800</bug_when>
    <thetext>Created attachment 123101
fixed by comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538646</commentid>
    <comment_count>16</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-01-19 05:13:28 -0800</bug_when>
    <thetext>Can we just make sure this is the last patch of its kind for the time being? The amount of commits with coding style fixes in the last months is overwhelming, and they have made history navigation and annotation _really_ annoying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538674</commentid>
    <comment_count>17</comment_count>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-19 06:58:44 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Can we just make sure this is the last patch of its kind for the time being? The amount of commits with coding style fixes in the last months is overwhelming, and they have made history navigation and annotation _really_ annoying.

I think one or two times left to complete this nuisance job. And I also think it makes difficulties in navigation and annotation. However it doesn&apos;t look good when coexisting two different styles. if it&apos;s not completed, like a broken window, someone will try to go back in previous style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538679</commentid>
    <comment_count>18</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-01-19 07:06:21 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; I think one or two times left to complete this nuisance job.

Isn&apos;t it possible to fix everything in this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539230</commentid>
    <comment_count>19</comment_count>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-19 18:47:59 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; I think one or two times left to complete this nuisance job.
&gt; 
&gt; Isn&apos;t it possible to fix everything in this patch?
I looked it over quickly, it is almost over 2000 lines. I think it can not be reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539427</commentid>
    <comment_count>20</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-01-20 04:54:27 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; I looked it over quickly, it is almost over 2000 lines. I think it can not be reviewed.

Something smells weird then. We&apos;ve already gone through no less than 8 bug reports changing the coding style (besides the previous ones which got reverted, contributing to make the history mess even worse).

Were the changes you are proposing (and the ones not included in this patch) supposed to be part of any of the bugs which blocked bug 68209?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542049</commentid>
    <comment_count>21</comment_count>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-25 00:14:09 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; &gt; I looked it over quickly, it is almost over 2000 lines. I think it can not be reviewed.
&gt; 
&gt; Something smells weird then. We&apos;ve already gone through no less than 8 bug reports changing the coding style (besides the previous ones which got reverted, contributing to make the history mess even worse).
&gt; 
&gt; Were the changes you are proposing (and the ones not included in this patch) supposed to be part of any of the bugs which blocked bug 68209?

I read the blocked patches and there are no duplicated code with mine. So I think this patch is still valid. If you are worrying about messing up the history, I will try to join everything together to one patch by adding more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542050</commentid>
    <comment_count>22</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-01-25 00:28:35 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; (In reply to comment #19)
&gt; &gt; &gt; I looked it over quickly, it is almost over 2000 lines. I think it can not be reviewed.
&gt; &gt; 
&gt; &gt; Something smells weird then. We&apos;ve already gone through no less than 8 bug reports changing the coding style (besides the previous ones which got reverted, contributing to make the history mess even worse).
&gt; &gt; 
&gt; &gt; Were the changes you are proposing (and the ones not included in this patch) supposed to be part of any of the bugs which blocked bug 68209?
&gt; 
&gt; I read the blocked patches and there are no duplicated code with mine. So I think this patch is still valid. If you are worrying about messing up the history, I will try to join everything together to one patch by adding more.

Though I tried to change coding style at once, it looks there are still unchanged source. I&apos;m really sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542216</commentid>
    <comment_count>23</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-01-25 06:05:14 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; (In reply to comment #19)
&gt; &gt; &gt; I looked it over quickly, it is almost over 2000 lines. I think it can not be reviewed.
&gt; &gt; 
&gt; &gt; Something smells weird then. We&apos;ve already gone through no less than 8 bug reports changing the coding style (besides the previous ones which got reverted, contributing to make the history mess even worse).
&gt; &gt; 
&gt; &gt; Were the changes you are proposing (and the ones not included in this patch) supposed to be part of any of the bugs which blocked bug 68209?
&gt; 
&gt; I read the blocked patches and there are no duplicated code with mine. So I think this patch is still valid. If you are worrying about messing up the history, I will try to join everything together to one patch by adding more.

If you have an overall idea of what kind of changes are still needed (eg. &apos;*&apos; location, variable naming etc), please tell us so we can discuss whether it makes more sense to commit everything at once or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542298</commentid>
    <comment_count>24</comment_count>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-25 08:33:49 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #21)
&gt; &gt; (In reply to comment #20)
&gt; &gt; &gt; (In reply to comment #19)
&gt; &gt; &gt; &gt; I looked it over quickly, it is almost over 2000 lines. I think it can not be reviewed.
&gt; &gt; &gt; 
&gt; &gt; &gt; Something smells weird then. We&apos;ve already gone through no less than 8 bug reports changing the coding style (besides the previous ones which got reverted, contributing to make the history mess even worse).
&gt; &gt; &gt; 
&gt; &gt; &gt; Were the changes you are proposing (and the ones not included in this patch) supposed to be part of any of the bugs which blocked bug 68209?
&gt; &gt; 
&gt; &gt; I read the blocked patches and there are no duplicated code with mine. So I think this patch is still valid. If you are worrying about messing up the history, I will try to join everything together to one patch by adding more.
&gt; 
&gt; If you have an overall idea of what kind of changes are still needed (eg. &apos;*&apos; location, variable naming etc), please tell us so we can discuss whether it makes more sense to commit everything at once or not.

Sure, I will inform you about this patch or similar implementation in future via mailing-list, IRC or email. Before I compete this patch, I will ask your opinion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542313</commentid>
    <comment_count>25</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-01-25 08:50:57 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; Sure, I will inform you about this patch or similar implementation in future via mailing-list, IRC or email. Before I compete this patch, I will ask your opinion.

If you refer to sharing what changes are still needed, it would also be good to list them here in this report so the discussion is complete for future reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543810</commentid>
    <comment_count>26</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-01-26 21:12:00 -0800</bug_when>
    <thetext>(In reply to comment #24)

&gt; Sure, I will inform you about this patch or similar implementation in future via mailing-list, IRC or email. Before I compete this patch, I will ask your opinion.

Though ewk_tiled_xxx header files are not opened as public, they are still using mixed coding style. When you send an email to webkit-efl mailing list, please consider it as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544101</commentid>
    <comment_count>27</comment_count>
      <attachid>123101</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-01-27 08:39:48 -0800</bug_when>
    <thetext>Comment on attachment 123101
fixed by comments.

I&apos;m clearing the r? and cq? flags while we discuss the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544730</commentid>
    <comment_count>28</comment_count>
      <attachid>124463</attachid>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-29 05:01:20 -0800</bug_when>
    <thetext>Created attachment 124463
new style patch

I&apos;ve changed the code by following the rules below.
Change the code to C++ style by using camelCase. 
Give full name to too short variable names.
Correct misspelled words. ex) tilieUnusedCache &gt; tileUnusedCache.
Correct words which mismatches between the comments and parameters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544866</commentid>
    <comment_count>29</comment_count>
      <attachid>124463</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-01-29 21:02:16 -0800</bug_when>
    <thetext>Comment on attachment 124463
new style patch

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

&gt; Source/WebKit/efl/ewk/ewk_history.cpp:258
&gt; +    WTF::String uriString = WTF::String::fromUTF8(uri);

Is *String* unneeded in uriString variable ?

&gt; Source/WebKit/efl/ewk/ewk_history.cpp:259
&gt; +    WTF::String titleString = WTF::String::fromUTF8(title);

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544896</commentid>
    <comment_count>30</comment_count>
      <attachid>124498</attachid>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-29 23:00:27 -0800</bug_when>
    <thetext>Created attachment 124498
fix history uri &amp; title name</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545924</commentid>
    <comment_count>31</comment_count>
      <attachid>124703</attachid>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-31 03:48:25 -0800</bug_when>
    <thetext>Created attachment 124703
new style patch

this is really the last patch about style fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545928</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 03:50:44 -0800</bug_when>
    <thetext>Attachment 124703 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
From git://git.webkit.org/WebKit
   67a004e..148477e  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 106351 = 67a004e6a82b832ecb29c8ac1912a1019be73b2a
r106352 = 148477e5d717c315b77d4ba9b95d975c9bae1c82
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Applying: Fix compilation errors on build-webkit --debug --no-workers on mac.
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/qt/Skipped
CONFLICT (content): Merge conflict in LayoutTests/platform/qt/Skipped
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 Fix compilation errors on build-webkit --debug --no-workers on mac.

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546714</commentid>
    <comment_count>33</comment_count>
      <attachid>124866</attachid>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-01-31 18:33:37 -0800</bug_when>
    <thetext>Created attachment 124866
new style patch

due to failure on style check, I file the patch again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546855</commentid>
    <comment_count>34</comment_count>
      <attachid>124866</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-02-01 00:21:41 -0800</bug_when>
    <thetext>Comment on attachment 124866
new style patch

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

&gt; Source/WebKit/efl/ewk/ewk_tiled_matrix.h:29
&gt; +Ewk_Tile_Matrix *ewk_tile_matrix_new(Ewk_Tile_Unused_Cache *tileUnusedCache, unsigned long columns, unsigned long rows, float zoomLevel, Evas_Colorspace colorSpace, void (*render_callback)(void *data, Ewk_Tile *tile, const Eina_Rectangle *update), const void *renderData);

Is it possibility to open ewk_tiled_xxx header files for application ? If they never be opened to outer, we don&apos;t need to use abbreviation in ewk_tiled_xxx files. But, if there is a few possibility, I think we need to keep this style.

&gt; Source/WebKit/efl/ewk/ewk_tiled_matrix.h:34
&gt; +void ewk_tile_matrix_invalidate(Ewk_Tile_Matrix *tileMatrix);

Hmm, above functions use full name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546874</commentid>
    <comment_count>35</comment_count>
      <attachid>124901</attachid>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-02-01 01:05:59 -0800</bug_when>
    <thetext>Created attachment 124901
fixed style patch

Use EFL style in ewk_tiled_matrix.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546994</commentid>
    <comment_count>36</comment_count>
    <who name="JungJik Lee">jungjik.lee</who>
    <bug_when>2012-02-01 04:13:26 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; (From update of attachment 124866 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124866&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_tiled_matrix.h:29
&gt; &gt; +Ewk_Tile_Matrix *ewk_tile_matrix_new(Ewk_Tile_Unused_Cache *tileUnusedCache, unsigned long columns, unsigned long rows, float zoomLevel, Evas_Colorspace colorSpace, void (*render_callback)(void *data, Ewk_Tile *tile, const Eina_Rectangle *update), const void *renderData);
&gt; 
&gt; Is it possibility to open ewk_tiled_xxx header files for application ? If they never be opened to outer, we don&apos;t need to use abbreviation in ewk_tiled_xxx files. But, if there is a few possibility, I think we need to keep this style.
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_tiled_matrix.h:34
&gt; &gt; +void ewk_tile_matrix_invalidate(Ewk_Tile_Matrix *tileMatrix);
&gt; 
&gt; Hmm, above functions use full name.

Application is possible to get the cache memory size so that ewk_tiled_XXX can be opened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547562</commentid>
    <comment_count>37</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-02-01 18:31:10 -0800</bug_when>
    <thetext>Though patch is huge, almost is good. I hope that there are no coding style nits anymore after this patch. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550595</commentid>
    <comment_count>38</comment_count>
      <attachid>124901</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-02-06 21:02:44 -0800</bug_when>
    <thetext>Comment on attachment 124901
fixed style patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550612</commentid>
    <comment_count>39</comment_count>
      <attachid>124901</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-06 21:44:35 -0800</bug_when>
    <thetext>Comment on attachment 124901
fixed style patch

Clearing flags on attachment: 124901

Committed r106904: &lt;http://trac.webkit.org/changeset/106904&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550613</commentid>
    <comment_count>40</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-06 21:44:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122620</attachid>
            <date>2012-01-16 05:39:10 -0800</date>
            <delta_ts>2012-01-16 07:39:08 -0800</delta_ts>
            <desc>minor style changes</desc>
            <filename>style_check.patch</filename>
            <type>text/plain</type>
            <size>54465</size>
            <attacher name="JungJik Lee">jungjik.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCBkMjE1MDQxLi44MmI0MTMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNzYgQEAKKzIwMTItMDEtMTYgIEp1bmdKaWsgTGVlICA8anVuZ2ppay5sZWVAc2Ft
c3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRhcHQgQysrIHN0eWxlIGFuZCBNb2RpZnkgdG8g
d2Via2l0LXN0eWxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzYzNzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNb2RpZnkgdGhlIGNvZGUgdG8gd2Via2l0LXN0eWxlIGFuZCBhZGFwdCB0byBDKysgc3R5
bGUgbmFtaW5nLgorICAgICAgICBUaGUgbG9naWMgb2YgdGhlIGNvZGUgaXMgbm90IGNoYW5nZWQu
CisKKyAgICAgICAgKiBld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuY3BwOgorICAgICAgICAo
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfYXNzb2NpYXRlKToKKyAgICAgICAgKF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Rpc3NvY2lhdGUpOgorICAgICAgICAoX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9wcm9jZXNzX3NpbmdsZSk6CisgICAg
ICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKToKKyAgICAgICAgKF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfaXRlbV9zbW9vdGhfc2NhbGVfc2V0KToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV92aWV3X2NvbHNfZW5kX2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfdmlld19yb3dzX2FsbF9kZWwpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3JlbmRlcik6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfbWVtX2Ri
Zyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2lnX3Vzcik6CisgICAgICAg
IChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRkKToKKyAgICAgICAgKF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9yZWNhbGNfcmVuZGVyZXJzKToKKyAgICAgICAgKF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV92aWV3X2RiZyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfdmlld193cmFwX2xlZnQpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Zp
ZXdfcmVmaWxsKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bvc19h
cHBseSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfY2FsY3VsYXRl
X29mZnNldF9mb3JjZSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRf
Y2FsY3VsYXRlX29mZnNldCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21h
cnRfY2FsY3VsYXRlX3Bvcyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21h
cnRfY2FsY3VsYXRlKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxf
ZnVsbF9vZmZzZXRfc2V0X2ludGVybmFsKToKKyAgICAgICAgKGV3a190aWxlZF9iYWNraW5nX3N0
b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXQpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfem9vbV9zZXRfaW50ZXJuYWwpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfem9vbV93ZWFrX3NldCk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9m
aXhfb2Zmc2V0cyk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9mbHVzaCk6Cisg
ICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lvbik6CisgICAg
ICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlbGF0aXZlX3JhZGl1cyk6
CisgICAgICAgICogZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmg6CisgICAgICAgICogZXdr
L2V3a190aWxlZF9tYXRyaXguY3BwOgorICAgICAgICAoX2V3a190aWxlX21hdHJpeF9jZWxsX2Zy
ZWUpOgorICAgICAgICAoX2V3a190aWxlX21hdHJpeF90aWxlX2ZyZWUpOgorICAgICAgICAoZXdr
X3RpbGVfbWF0cml4X25ldyk6CisgICAgICAgIChld2tfdGlsZV9tYXRyaXhfZnJlZSk6CisgICAg
ICAgIChld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldCk6CisgICAgICAgIChld2tfdGls
ZV9tYXRyaXhfdGlsZV9leGFjdF9nZXQpOgorICAgICAgICAoZXdrX3RpbGVfbWF0cml4X3RpbGVf
bmV3KToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF90aWxlX3B1dCk6CisgICAgICAgIChld2tf
dGlsZV9tYXRyaXhfZGJnKToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF9mcmVlemUpOgorICAg
ICAgICAoZXdrX3RpbGVfbWF0cml4X3RoYXcpOgorICAgICAgICAqIGV3ay9ld2tfdGlsZWRfbW9k
ZWwuY3BwOgorICAgICAgICAoZXdrX3RpbGVfdXBkYXRlc19wcm9jZXNzKToKKyAgICAgICAgKGV3
a190aWxlX3VudXNlZF9jYWNoZV9kYmcpOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6Cisg
ICAgICAgIChfZXdrX3ZpZXdfc21hcnRfZm9jdXNfaW4pOgorICAgICAgICAoZXdrX3ZpZXdfcHJl
X3JlbmRlcl9yZWdpb24pOgorICAgICAgICAoZXdrX3ZpZXdfdG9vbGJhcnNfdmlzaWJsZV9nZXQp
OgorICAgICAgICAoZXdrX3ZpZXdfc3RhdHVzYmFyX3Zpc2libGVfZ2V0KToKKyAgICAgICAgKGV3
a192aWV3X3Njcm9sbGJhcnNfdmlzaWJsZV9nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfbWVudWJh
cl92aXNpYmxlX2dldCk6CisgICAgICAgIChld2tfdmlld196b29tX3JhbmdlX3NldCk6CisgICAg
ICAgICogZXdrL2V3a192aWV3X3NpbmdsZS5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfc2luZ2xl
X3NtYXJ0X3JlcGFpbnRzX3Byb2Nlc3MpOgorICAgICAgICAqIGV3ay9ld2tfdmlld190aWxlZC5j
cHA6CisgICAgICAgIChfZXdrX3ZpZXdfdGlsZWRfc21hcnRfYmFja2luZ19zdG9yZV9hZGQpOgor
ICAgICAgICAoX2V3a192aWV3X3RpbGVkX3NtYXJ0X2FkZCk6CisgICAgICAgIChld2tfdmlld190
aWxlZF91bnVzZWRfY2FjaGVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3RpbGVkX3VudXNlZF9j
YWNoZV9zZXQpOgorCiAyMDEyLTAxLTE2ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5n
LmNvbT4KIAogICAgICAgICBbRUZMXSBCdWlsZCBmaXggd2hlbiB1c2luZyBwYW5nbyBhcyBmb250
IGJhY2tlbmRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9i
YWNraW5nX3N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZS5jcHAKaW5kZXggZmZjNjcxYy4uMWJmYTFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuY3BwCkBAIC00NSw3ICs0NSw3IEBA
IHN0cnVjdCBfRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSB7CiAgICAgc3RydWN0IHsKICAg
ICAgICAgRXZhc19Db29yZCB4LCB5LCB3aWR0aCwgaGVpZ2h0OwogICAgIH0gZ2VvbWV0cnk7Ci0g
ICAgYm9vbCBzbW9vdGhfc2NhbGU7CisgICAgYm9vbCBzbW9vdGhTY2FsZTsKIH07CiAKIHN0cnVj
dCBfRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfUHJlX1JlbmRlcl9SZXF1ZXN0IHsKQEAgLTYxLDcg
KzYxLDcgQEAgc3RydWN0IF9Fd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhIHsKICAgICBzdHJ1
Y3QgewogICAgICAgICBFaW5hX0lubGlzdCoqIGl0ZW1zOwogICAgICAgICBFdmFzX0Nvb3JkIHgs
IHksIHdpZHRoLCBoZWlnaHQ7Ci0gICAgICAgIGxvbmcgY29scywgcm93czsKKyAgICAgICAgbG9u
ZyBjb2x1bW5zLCByb3dzOwogICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgRXZhc19Db29y
ZCB3aWR0aCwgaGVpZ2h0OwogICAgICAgICAgICAgZmxvYXQgem9vbTsKQEAgLTcxLDcgKzcxLDcg
QEAgc3RydWN0IF9Fd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhIHsKICAgICAgICAgc3RydWN0
IHsKICAgICAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICAgICAgRXZhc19Db29yZCB4LCB5
OwotICAgICAgICAgICAgfSBjdXIsIG9sZCwgYmFzZSwgem9vbUNlbnRlcjsKKyAgICAgICAgICAg
IH0gY3VycmVudCwgb2xkLCBiYXNlLCB6b29tQ2VudGVyOwogICAgICAgICB9IG9mZnNldDsKICAg
ICAgICAgYm9vbCB2aXNpYmxlIDogMTsKICAgICB9IHZpZXc7CkBAIC0xMDgsNyArMTA4LDcgQEAg
c3RydWN0IF9Fd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhIHsKICAgICAgICAgYm9vbCBvZmZz
ZXQgOiAxOwogICAgIH0gY2hhbmdlZDsKICNpZmRlZiBERUJVR19NRU1fTEVBS1MKLSAgICBFY29y
ZV9FdmVudF9IYW5kbGVyKiBzaWdfdXNyOworICAgIEVjb3JlX0V2ZW50X0hhbmRsZXIqIHNpZ25h
bFVzZXI7CiAjZW5kaWYKIH07CiAKQEAgLTIwMywxMyArMjAzLDEzIEBAIHN0YXRpYyB2b2lkIF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Jlc2l6ZShFd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9JdGVtKiBpCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV9hc3Nv
Y2lhdGUoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiwgRXdrX1RpbGUqIHRpbGUs
IEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0ZW0pCiB7CiAgICAgaWYgKGl0ZW0tPnRp
bGUpCi0gICAgICAgIENSSVRJQ0FMKCJpdC0+dGlsZT0lcCwgYnV0IGl0IHNob3VsZCBiZSAwISIs
IGl0ZW0tPnRpbGUpOworICAgICAgICBDUklUSUNBTCgiaXRlbS0+dGlsZT0lcCwgYnV0IGl0IHNo
b3VsZCBiZSAwISIsIGl0ZW0tPnRpbGUpOwogICAgIGl0ZW0tPnRpbGUgPSB0aWxlOwogICAgIGV2
YXNfb2JqZWN0X21vdmUoaXRlbS0+dGlsZS0+aW1hZ2UsIGl0ZW0tPmdlb21ldHJ5LngsIGl0ZW0t
Pmdlb21ldHJ5LnkpOwogICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShpdGVtLT50aWxlLT5pbWFnZSwg
aXRlbS0+Z2VvbWV0cnkud2lkdGgsIGl0ZW0tPmdlb21ldHJ5LmhlaWdodCk7CiAgICAgZXZhc19v
YmplY3RfaW1hZ2VfZmlsbF9zZXQKICAgICAgICAgKGl0ZW0tPnRpbGUtPmltYWdlLCAwLCAwLCBp
dGVtLT5nZW9tZXRyeS53aWR0aCwgaXRlbS0+Z2VvbWV0cnkuaGVpZ2h0KTsKLSAgICBldmFzX29i
amVjdF9pbWFnZV9zbW9vdGhfc2NhbGVfc2V0KGl0ZW0tPnRpbGUtPmltYWdlLCBpdGVtLT5zbW9v
dGhfc2NhbGUpOworICAgIGV2YXNfb2JqZWN0X2ltYWdlX3Ntb290aF9zY2FsZV9zZXQoaXRlbS0+
dGlsZS0+aW1hZ2UsIGl0ZW0tPnNtb290aFNjYWxlKTsKICAgICBldmFzX29iamVjdF9pbWFnZV9h
bHBoYV9zZXQoaXRlbS0+dGlsZS0+aW1hZ2UsIHByaXYtPnZpZXcudGlsZS5oYXNBbHBoYSk7CiAK
ICAgICBpZiAoIWV3a190aWxlX3Zpc2libGVfZ2V0KHRpbGUpKQpAQCAtMjIwLDEzICsyMjAsMTMg
QEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfYXNzb2NpYXRlKEV3
a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKIAogc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3RpbGVfZGlzc29jaWF0ZShFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBw
cml2LCBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVtLCBkb3VibGUgbGFzdFVzZWQp
CiB7Ci0gICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlZFVudXNlZENhY2hlOworICAgIEV3
a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlOwogICAgIGV3a190aWxlX2hpZGUo
aXRlbS0+dGlsZSk7CiAgICAgaWYgKCFld2tfdGlsZV92aXNpYmxlX2dldChpdGVtLT50aWxlKSkK
ICAgICAgICAgZXZhc19vYmplY3Rfc21hcnRfbWVtYmVyX2RlbChpdGVtLT50aWxlLT5pbWFnZSk7
CiAgICAgZXdrX3RpbGVfbWF0cml4X3RpbGVfcHV0KHByaXYtPm1vZGVsLm1hdHJpeCwgaXRlbS0+
dGlsZSwgbGFzdFVzZWQpOwotICAgIHRpbGVkVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9tYXRyaXhf
dW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgpOwotICAgIGV3a190aWxlX3VudXNl
ZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGVkVW51c2VkQ2FjaGUpOworICAgIHRpbGVVbnVzZWRDYWNo
ZSA9IGV3a190aWxlX21hdHJpeF91bnVzZWRfY2FjaGVfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7
CisgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2F1dG9fZmx1c2godGlsZVVudXNlZENhY2hlKTsK
IAogICAgIGl0ZW0tPnRpbGUgPSAwOwogfQpAQCAtMzA0LDE0ICszMDQsMTQgQEAgc3RhdGljIHZv
aWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9jbGVhcihFd2tf
VGlsZWRfQmFja2luZ18KICAgICB9CiB9CiAKLS8qIGFzc3VtZXMgcHJpdi0+cHJvY2Vzcy5wcmVf
Y2Igd2FzIGNhbGxlZCBpZiByZXF1aXJlZCEgKi8KKy8qIGFzc3VtZXMgcHJpdi0+cHJvY2Vzcy5w
cmVDYWxsYmFjayB3YXMgY2FsbGVkIGlmIHJlcXVpcmVkISAqLwogc3RhdGljIHZvaWQgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9wcm9jZXNzX3NpbmdsZShFd2tf
VGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2KQogewogICAgIEV3a19UaWxlZF9CYWNraW5n
X1N0b3JlX1ByZV9SZW5kZXJfUmVxdWVzdCogcmVxdWVzdDsKICAgICBFaW5hX1JlY3RhbmdsZSBh
cmVhOwogICAgIEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCA9IHByaXYtPm1vZGVsLm1hdHJp
eDsKICAgICBFd2tfVGlsZSogdGlsZTsKLSAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVk
VW51c2VkQ2FjaGU7CisgICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGU7
CiAgICAgdW5zaWduZWQgbG9uZyBjb2x1bW4sIHJvdzsKICAgICBmbG9hdCB6b29tOwogICAgIGRv
dWJsZSBsYXN0X3VzZWQgPSBlY29yZV9sb29wX3RpbWVfZ2V0KCk7CkBAIC0zNDgsOCArMzQ4LDgg
QEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVz
dF9wcm9jZXNzX3NpbmdsZShFd2tfVGlsZWQKIAogZW5kOgogICAgIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfZGVsKHByaXYsIHJlcXVlc3QpOwotICAgIHRpbGVk
VW51c2VkQ2FjaGUgPSBld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5tb2Rl
bC5tYXRyaXgpOwotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGVkVW51
c2VkQ2FjaGUpOworICAgIHRpbGVVbnVzZWRDYWNoZSA9IGV3a190aWxlX21hdHJpeF91bnVzZWRf
Y2FjaGVfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7CisgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hl
X2F1dG9fZmx1c2godGlsZVVudXNlZENhY2hlKTsKIH0KIAogc3RhdGljIEVpbmFfQm9vbCBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9wcm9jZXNzX2lkbGVyX2NiKHZvaWQqIGRhdGEpCkBA
IC00MzAsMTggKzQzMCwxOCBAQCBzdGF0aWMgaW5saW5lIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfaXRlbV9maWxsKEV3a19UaWxlZF9CYWNraW5nX1N0bwogCiAgICAgICAgIGlm
IChpdGVtLT50aWxlKSB7CiAgICAgICAgICAgICBFd2tfVGlsZSogb2xkID0gaXRlbS0+dGlsZTsK
LSAgICAgICAgICAgIGlmIChvbGQtPnJvdyAhPSBjdXJyZW50Um93IHx8IG9sZC0+Y29sICE9IGN1
cnJlbnRDb2x1bW4gfHwgb2xkLT56b29tICE9IHpvb20pCisgICAgICAgICAgICBpZiAob2xkLT5y
b3cgIT0gY3VycmVudFJvdyB8fCBvbGQtPmNvbHVtbiAhPSBjdXJyZW50Q29sdW1uIHx8IG9sZC0+
em9vbSAhPSB6b29tKQogICAgICAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV90
aWxlX2Rpc3NvY2lhdGUocHJpdiwgaXRlbSwgbGFzdFVzZWQpOwotICAgICAgICAgICAgZWxzZSBp
ZiAob2xkLT5yb3cgPT0gY3VycmVudFJvdyAmJiBvbGQtPmNvbCA9PSBjdXJyZW50Q29sdW1uICYm
IG9sZC0+em9vbSA9PSB6b29tKQorICAgICAgICAgICAgZWxzZSBpZiAob2xkLT5yb3cgPT0gY3Vy
cmVudFJvdyAmJiBvbGQtPmNvbHVtbiA9PSBjdXJyZW50Q29sdW1uICYmIG9sZC0+em9vbSA9PSB6
b29tKQogICAgICAgICAgICAgICAgIGdvdG8gZW5kOwogICAgICAgICB9CiAKICAgICAgICAgdGls
ZSA9IGV3a190aWxlX21hdHJpeF90aWxlX2V4YWN0X2dldChwcml2LT5tb2RlbC5tYXRyaXgsIGN1
cnJlbnRDb2x1bW4sIGN1cnJlbnRSb3csIHpvb20pOwogCiAgICAgICAgIGlmICghdGlsZSkgewot
ICAgICAgICAgICAgLyogTk9URTogaXQgbmV2ZXIgcmV0dXJucyAwIGlmIGl0LT50aWxlIHdhcyBz
ZXQhICovCisgICAgICAgICAgICAvKiBOT1RFOiBpdCBuZXZlciByZXR1cm5zIDAgaWYgaXRlbS0+
dGlsZSB3YXMgc2V0ISAqLwogICAgICAgICAgICAgaWYgKGl0ZW0tPnRpbGUpIHsKLSAgICAgICAg
ICAgICAgICBDUklUSUNBTCgiaXQtPnRpbGU9JXAsIGJ1dCBpdCBzaG91bGQgYmUgMCEiLCBpdGVt
LT50aWxlKTsKKyAgICAgICAgICAgICAgICBDUklUSUNBTCgiaXRlbS0+dGlsZT0lcCwgYnV0IGl0
IHNob3VsZCBiZSAwISIsIGl0ZW0tPnRpbGUpOwogICAgICAgICAgICAgICAgIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV90aWxlX2Rpc3NvY2lhdGUocHJpdiwgaXRlbSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RVc2VkKTsKICAg
ICAgICAgICAgIH0KQEAgLTQ4Niw3ICs0ODYsNyBAQCBzdGF0aWMgRXdrX1RpbGVkX0JhY2tpbmdf
U3RvcmVfSXRlbSogX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fYWRkKEV3a19UaWxlZAog
CiAgICAgaXRlbS0+dGlsZSA9IDA7CiAKLSAgICBpdGVtLT5zbW9vdGhfc2NhbGUgPSBwcml2LT52
aWV3LnRpbGUuem9vbVdlYWtTbW9vdGhTY2FsZTsKKyAgICBpdGVtLT5zbW9vdGhTY2FsZSA9IHBy
aXYtPnZpZXcudGlsZS56b29tV2Vha1Ntb290aFNjYWxlOwogICAgIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9pdGVtX21vdmUoaXRlbSwgeCwgeSk7CiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX2l0ZW1fcmVzaXplKGl0ZW0sIHRpbGVXaWR0aCwgdGlsZUhlaWdodCk7CiAgICAgaWYgKCFf
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKHByaXYsIGl0ZW0sIGNvbHVtbiwgcm93
KSkgewpAQCAtNTA5LDcgKzUwOSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9pdGVtX2RlbChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2CiAKIHN0YXRp
YyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Ntb290aF9zY2FsZV9zZXQoRXdr
X1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbSwgRWluYV9Cb29sIHNtb290aFNjYWxlKQog
ewotICAgIGlmIChpdGVtLT5zbW9vdGhfc2NhbGUgPT0gc21vb3RoU2NhbGUpCisgICAgaWYgKGl0
ZW0tPnNtb290aFNjYWxlID09IHNtb290aFNjYWxlKQogICAgICAgICByZXR1cm47CiAKICAgICBp
ZiAoaXRlbS0+dGlsZSkKQEAgLTU0OCwxNiArNTQ4LDE2IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfY29sc19lbmRfYWRkKEV3a19UaWxlZF9CYWNraW5n
X1N0CiAgICAgdW5zaWduZWQgaW50IGksIHJvdyA9IHJvd0xpc3QgLSBwcml2LT52aWV3Lml0ZW1z
OwogCiAgICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyssIGJhc2VDb2x1bW4rKykgewotICAg
ICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdDsKKyAgICAgICAgRXdrX1RpbGVk
X0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbTsKIAotICAgICAgICBpdCA9IF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9pdGVtX2FkZChwcml2LCBiYXNlQ29sdW1uLCByb3cpOwotICAgICAgICBpZiAo
IWl0KSB7CisgICAgICAgIGl0ZW0gPSBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9hZGQo
cHJpdiwgYmFzZUNvbHVtbiwgcm93KTsKKyAgICAgICAgaWYgKCFpdGVtKSB7CiAgICAgICAgICAg
ICBDUklUSUNBTCgiZmFpbGVkIHRvIGFkZCBjb2x1bW4gJXUgb2YgJXUgaW4gcm93ICV1LiIsIGks
IGNvdW50LCByb3cpOwogICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdf
Y29sc19lbmRfZGVsKHByaXYsIHJvd0xpc3QsIGkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICB9CiAKLSAgICAgICAgKnJvd0xpc3QgPSBlaW5hX2lubGlzdF9hcHBlbmQoKnJv
d0xpc3QsIEVJTkFfSU5MSVNUX0dFVChpdCkpOworICAgICAgICAqcm93TGlzdCA9IGVpbmFfaW5s
aXN0X2FwcGVuZCgqcm93TGlzdCwgRUlOQV9JTkxJU1RfR0VUKGl0ZW0pKTsKICAgICB9CiAgICAg
cmV0dXJuIHRydWU7CiB9CkBAIC01OTEsNyArNTkxLDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3ZpZXdfcm93c19hbGxfZGVsKEV3a19UaWxlZF9CYWNraW5nX1N0b3Jl
X0QKIAogICAgIGZyZWUocHJpdi0+dmlldy5pdGVtcyk7CiAgICAgcHJpdi0+dmlldy5pdGVtcyA9
IDA7Ci0gICAgcHJpdi0+dmlldy5jb2xzID0gMDsKKyAgICBwcml2LT52aWV3LmNvbHVtbnMgPSAw
OwogICAgIHByaXYtPnZpZXcucm93cyA9IDA7CiB9CiAKQEAgLTYwMCw3ICs2MDAsNyBAQCBzdGF0
aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVuZGVyKHZvaWQqIGRhdGEsIEV3a19U
aWxlKiB0aWxlLCBjb25zdCBFaQogICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHBy
aXYgPSBzdGF0aWNfY2FzdDxFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKj4oZGF0YSk7CiAK
ICAgICBJTkYoIlRPRE8gJXAgKHZpc2libGU/ICVkKSBbJWx1LCVsdV0gJWQsJWQgKyAlZHglZCIs
Ci0gICAgICAgIHRpbGUsIHRpbGUtPnZpc2libGUsIHRpbGUtPmNvbCwgdGlsZS0+cm93LCBhcmVh
LT54LCBhcmVhLT55LCBhcmVhLT53LCBhcmVhLT5oKTsKKyAgICAgICAgdGlsZSwgdGlsZS0+dmlz
aWJsZSwgdGlsZS0+Y29sdW1uLCB0aWxlLT5yb3csIGFyZWEtPngsIGFyZWEtPnksIGFyZWEtPncs
IGFyZWEtPmgpOwogCiAgICAgaWYgKCF0aWxlLT52aXNpYmxlKQogICAgICAgICByZXR1cm47CkBA
IC02NTcsNyArNjU3LDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX21l
bV9kYmcoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdikKICAgICBydW4rKzsKIAog
ICAgIHByaW50ZigiXG4tLS0gQkVHSU4gREVCVUcgVElMRUQgQkFDS0lORyBTVE9SRSBNRU1PUlkg
WyVkXSAtLVxuIgotICAgICAgICAgICAidD0lMC4yZiwgb2JqPSVwLCBwcml2PSVwLCB2aWV3Lml0
ZW1zPSVwLCBtYXRyaXg9JXBcbiIsCisgICAgICAgICAgICJ0aWxlPSUwLjJmLCBvYmo9JXAsIHBy
aXY9JXAsIHZpZXcuaXRlbXM9JXAsIG1hdHJpeD0lcFxuIiwKICAgICAgICAgICAgcnVuLCBlY29y
ZV9sb29wX3RpbWVfZ2V0KCksCiAgICAgICAgICAgIHByaXYtPnNlbGYsIHByaXYsIHByaXYtPnZp
ZXcuaXRlbXMsIHByaXYtPm1vZGVsLm1hdHJpeCk7CiAKQEAgLTY2OSwxMyArNjY5LDEzIEBAIHN0
YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9tZW1fZGJnKEV3a19UaWxlZF9CYWNr
aW5nX1N0b3JlX0RhdGEqIHByaXYpCiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3NpZ191c3Iodm9pZCogZGF0YSwgaW50IHR5cGUsIHZvaWQqIGV2ZW50KQogewot
ICAgIEVjb3JlX0V2ZW50X1NpZ25hbF9Vc2VyKiBzaWcgPSAoRWNvcmVfRXZlbnRfU2lnbmFsX1Vz
ZXIqKWV2ZW50OworICAgIEVjb3JlX0V2ZW50X1NpZ25hbF9Vc2VyKiBzaWduYWxVc2VyID0gKEVj
b3JlX0V2ZW50X1NpZ25hbF9Vc2VyKilldmVudDsKICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9EYXRhKiBwcml2ID0gKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqKWRhdGE7CiAKLSAg
ICBpZiAoc2lnLT5udW1iZXIgPT0gMikgewotICAgICAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUq
IHRpbGllVW51c2VkQ2FjaGU7Ci0gICAgICAgIHRpbGllVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9t
YXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgpOwotICAgICAgICBld2tf
dGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0aWxpZVVudXNlZENhY2hlKTsKKyAgICBpZiAo
c2lnbmFsVXNlci0+bnVtYmVyID09IDIpIHsKKyAgICAgICAgRXdrX1RpbGVfVW51c2VkX0NhY2hl
KiB0aWxlVW51c2VkQ2FjaGU7CisgICAgICAgIHRpbGVVbnVzZWRDYWNoZSA9IGV3a190aWxlX21h
dHJpeF91bnVzZWRfY2FjaGVfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7CisgICAgICAgIGV3a190
aWxlX3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGVVbnVzZWRDYWNoZSk7CiAgICAgfQogCiAg
ICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfZGJnKHByaXYpOwpAQCAtNjk4LDggKzY5
OCw4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9hZGQoRXZh
c19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKICAgICBwcml2LT52aWV3LnRpbGUuem9vbSA9IDEu
MDsKICAgICBwcml2LT52aWV3LnRpbGUud2lkdGggPSBERUZBVUxUX1RJTEVfVzsKICAgICBwcml2
LT52aWV3LnRpbGUuaGVpZ2h0ID0gREVGQVVMVF9USUxFX0g7Ci0gICAgcHJpdi0+dmlldy5vZmZz
ZXQuY3VyLnggPSAwOwotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ID0gMDsKKyAgICBwcml2
LT52aWV3Lm9mZnNldC5jdXJyZW50LnggPSAwOworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJl
bnQueSA9IDA7CiAgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnggPSAwOwogICAgIHByaXYtPnZp
ZXcub2Zmc2V0Lm9sZC55ID0gMDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSAwOwpA
QCAtNzM0LDcgKzczNCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9z
bWFydF9hZGQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKICAgICBldmFzX29iamVjdF9j
bGlwX3NldChwcml2LT5jb250ZW50c0NsaXBwZXIsIHByaXYtPmJhc2UuY2xpcHBlcik7CiAKICNp
ZmRlZiBERUJVR19NRU1fTEVBS1MKLSAgICBwcml2LT5zaWdfdXNyID0gZWNvcmVfZXZlbnRfaGFu
ZGxlcl9hZGQKKyAgICBwcml2LT5zaWduYWxVc2VyID0gZWNvcmVfZXZlbnRfaGFuZGxlcl9hZGQK
ICAgICAgICAgICAgICAgICAgICAgICAgIChFQ09SRV9FVkVOVF9TSUdOQUxfVVNFUiwgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3NpZ191c3IsIHByaXYpOwogI2VuZGlmCiB9CkBAIC04MjksMTMg
KzgyOSwxMyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVjYWxjX3Jl
bmRlcmVycyhFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYQogICAgIGNvbHVtbnMgPSAxICsgc3Rh
dGljX2Nhc3Q8aW50PihjZWlsKHdpZHRoIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVXaWR0aCkp
KTsKICAgICByb3dzID0gMSArIHN0YXRpY19jYXN0PGludD4oY2VpbChoZWlnaHQgLyBzdGF0aWNf
Y2FzdDxmbG9hdD4odGlsZUhlaWdodCkpKTsKIAotICAgIElORigiZXdrQmFja2luZ1N0b3JlJXAg
bmV3IGdyaWQgc2l6ZSBjb2xzOiAlbGQsIHJvd3M6ICVsZCwgd2FzICVsZCwgJWxkIiwKLSAgICAg
ICAgcHJpdi0+c2VsZiwgY29sdW1ucywgcm93cywgcHJpdi0+dmlldy5jb2xzLCBwcml2LT52aWV3
LnJvd3MpOworICAgIElORigiZXdrQmFja2luZ1N0b3JlJXAgbmV3IGdyaWQgc2l6ZSBjb2x1bW5z
OiAlbGQsIHJvd3M6ICVsZCwgd2FzICVsZCwgJWxkIiwKKyAgICAgICAgcHJpdi0+c2VsZiwgY29s
dW1ucywgcm93cywgcHJpdi0+dmlldy5jb2x1bW5zLCBwcml2LT52aWV3LnJvd3MpOwogCi0gICAg
aWYgKHByaXYtPnZpZXcuY29scyA9PSBjb2x1bW5zICYmIHByaXYtPnZpZXcucm93cyA9PSByb3dz
KQorICAgIGlmIChwcml2LT52aWV3LmNvbHVtbnMgPT0gY29sdW1ucyAmJiBwcml2LT52aWV3LnJv
d3MgPT0gcm93cykKICAgICAgICAgcmV0dXJuOwogCi0gICAgb2xkQ29scyA9IHByaXYtPnZpZXcu
Y29sczsKKyAgICBvbGRDb2xzID0gcHJpdi0+dmlldy5jb2x1bW5zOwogICAgIG9sZFJvd3MgPSBw
cml2LT52aWV3LnJvd3M7CiAKICAgICBpZiAocm93cyA8IG9sZFJvd3MpIHsKQEAgLTg1MSwxNCAr
ODUxLDE0IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9yZWNhbGNfcmVu
ZGVyZXJzKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhCiAKICAgICBwcml2LT52aWV3Lml0ZW1z
ID0gc3RhdGljX2Nhc3Q8RWluYV9Jbmxpc3QqKj4obmV3SXRlbXMpOwogICAgIHByaXYtPnZpZXcu
cm93cyA9IHJvd3M7Ci0gICAgcHJpdi0+dmlldy5jb2xzID0gY29sdW1uczsKKyAgICBwcml2LT52
aWV3LmNvbHVtbnMgPSBjb2x1bW5zOwogICAgIGlmIChyb3dzID4gb2xkUm93cykgewogICAgICAg
ICBFaW5hX0lubGlzdCoqIHN0YXJ0ID0gcHJpdi0+dmlldy5pdGVtcyArIG9sZFJvd3M7CiAgICAg
ICAgIEVpbmFfSW5saXN0KiogZW5kID0gcHJpdi0+dmlldy5pdGVtcyArIHJvd3M7CiAgICAgICAg
IGZvciAoOyBzdGFydCA8IGVuZDsgc3RhcnQrKykgewogICAgICAgICAgICAgKnN0YXJ0ID0gMDsK
LSAgICAgICAgICAgIEVpbmFfQm9vbCByID0gX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdf
Y29sc19lbmRfYWRkKHByaXYsIHN0YXJ0LCAwLCBjb2x1bW5zKTsKLSAgICAgICAgICAgIGlmICgh
cikgeworICAgICAgICAgICAgRWluYV9Cb29sIHJlc3VsdCA9IF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV92aWV3X2NvbHNfZW5kX2FkZChwcml2LCBzdGFydCwgMCwgY29sdW1ucyk7CisgICAgICAg
ICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICAgICAgICAgIENSSVRJQ0FMKCJmYWlsZWQgdG8g
YWxsb2NhdGUgJWxkIGNvbHVtbnMiLCBjb2x1bW5zKTsKICAgICAgICAgICAgICAgICBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfdmlld19yb3dzX3JhbmdlX2RlbChwcml2LCBwcml2LT52aWV3Lml0
ZW1zICsgb2xkUm93cywgc3RhcnQpOwogICAgICAgICAgICAgICAgIHByaXYtPnZpZXcucm93cyA9
IG9sZFJvd3M7CkBAIC05MTQsMTEgKzkxNCwxMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfZGJnKGNvbnN0IEV3a19UaWxlZF9CYWNraW5nX1N0bwog
ewogICAgIEVpbmFfSW5saXN0Kiogc3RhcnQsICoqZW5kOwogICAgIHByaW50ZigidGlsZXM9JTJs
ZCwlMmxkICBtb2RlbD0lMmxkLCUybGQgWyVkeCVkXSBiYXNlPSUrM2xkLCUrNGxkIG9mZnNldD0l
KzRkLCUrNGQgb2xkPSUrNGQsJSs0ZCBiYXNlPSUrM2QsJSszZFxuIiwKLSAgICAgICAgICAgcHJp
di0+dmlldy5jb2xzLCBwcml2LT52aWV3LnJvd3MsCisgICAgICAgICAgIHByaXYtPnZpZXcuY29s
dW1ucywgcHJpdi0+dmlldy5yb3dzLAogICAgICAgICAgICBwcml2LT5tb2RlbC5jdXJyZW50LmNv
bHVtbnMsIHByaXYtPm1vZGVsLmN1cnJlbnQucm93cywKICAgICAgICAgICAgcHJpdi0+bW9kZWwu
d2lkdGgsIHByaXYtPm1vZGVsLmhlaWdodCwKICAgICAgICAgICAgcHJpdi0+bW9kZWwuYmFzZS5j
b2x1bW4sIHByaXYtPm1vZGVsLmJhc2Uucm93LAotICAgICAgICAgICBwcml2LT52aWV3Lm9mZnNl
dC5jdXIueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnksCisgICAgICAgICAgIHByaXYtPnZpZXcu
b2Zmc2V0LmN1cnJlbnQueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55LAogICAgICAgICAg
ICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCwgcHJpdi0+dmlldy5vZmZzZXQub2xkLnksCiAgICAg
ICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCwgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS55
KTsKIApAQCAtOTMzLDcgKzkzMyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfdmlld19kYmcoY29uc3QgRXdrX1RpbGVkX0JhY2tpbmdfU3RvCiAgICAgICAg
ICAgICBpZiAoIWl0ZW0tPnRpbGUpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCIgICAgICAgICAg
ICA7Iik7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcHJpbnRmKCIlOHAgJWx1
LCVsdTsiLCBpdGVtLT50aWxlLCBpdGVtLT50aWxlLT5jb2wsIGl0ZW0tPnRpbGUtPnJvdyk7Cisg
ICAgICAgICAgICAgICAgcHJpbnRmKCIlOHAgJWx1LCVsdTsiLCBpdGVtLT50aWxlLCBpdGVtLT50
aWxlLT5jb2x1bW4sIGl0ZW0tPnRpbGUtPnJvdyk7CiAgICAgICAgIH0KICAgICAgICAgcHJpbnRm
KCJcbiIpOwogICAgIH0KQEAgLTEwNDEsMjIgKzEwNDEsMjIgQEAgc3RhdGljIHZvaWQgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF9kb3duKEV3a19UaWxlZF9CYWNraW5nX1N0b3Jl
X0RhdGEKICAqIEBpbnRlcm5hbAogICogTW92ZSBsZWZ0LW1vc3QgKGZpcnN0KSBjb2x1bW4gcmln
aHQgYXMgbGFzdCAocmlnaHQtbW9zdCkuCiAgKgotICogVGhlIGZpbmFsIHJlc3VsdCBpcyB2aXN1
YWxseSB0aGUgc2FtZSwgYnV0IGxvZ2ljYWxseSB0aGUgZmlyc3QgY29sIHRoYXQKKyAqIFRoZSBm
aW5hbCByZXN1bHQgaXMgdmlzdWFsbHkgdGhlIHNhbWUsIGJ1dCBsb2dpY2FsbHkgdGhlIGZpcnN0
IGNvbHVtbiB0aGF0CiAgKiB3ZW50IG91dCBvZiBzY3JlZW4gaXMgbm93IGF0IGxhc3QgYW5kIGZp
bGxlZCB3aXRoIG5ldyBtb2RlbCBpdGVtcy4KICAqCiAgKiBUaGlzIGlzIHdvcnRoIGp1c3Qgd2hl
biBAYSBjb3VudCBpcyBzbWFsbGVyIHRoYW4gQGMKLSAqIHByaXYtPnZpZXcuY29scywgYWZ0ZXIg
dGhhdCBvbmUgaXMgcmVmaWxsaW5nIHRoZSB3aG9sZSBtYXRyaXggc28gaXQKKyAqIHByaXYtPnZp
ZXcuY29sdW1ucywgYWZ0ZXIgdGhhdCBvbmUgaXMgcmVmaWxsaW5nIHRoZSB3aG9sZSBtYXRyaXgg
c28gaXQKICAqIGlzIGJldHRlciB0byB0cmlnZ2VyIGZ1bGwgcmVmaWxsLgogICoKICAqIEBwYXJh
bSBjb3VudCB0aGUgbnVtYmVyIG9mIHRpbWVzIHRvIHJlcGVhdCB0aGUgcHJvY2Vzcy4KICAqLwog
c3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF9sZWZ0KEV3a19U
aWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYsIEV2YXNfQ29vcmQgeCwgRXZhc19Db29yZCB5
LCB1bnNpZ25lZCBpbnQgY291bnQpCiB7Ci0gICAgdW5zaWduZWQgaW50IHJvdywgbGFzdENvbHVt
biA9IHByaXYtPnZpZXcuY29scyAtIDE7CisgICAgdW5zaWduZWQgaW50IHJvdywgbGFzdENvbHVt
biA9IHByaXYtPnZpZXcuY29sdW1ucyAtIDE7CiAgICAgRXZhc19Db29yZCB0aWxlV2lkdGggPSBw
cml2LT52aWV3LnRpbGUud2lkdGg7CiAgICAgRXZhc19Db29yZCB0aWxlSGVpZ2h0ID0gcHJpdi0+
dmlldy50aWxlLmhlaWdodDsKICAgICBFdmFzX0Nvb3JkIG9mZnNldFggPSBwcml2LT52aWV3Lm9m
ZnNldC5iYXNlLnggKyBjb3VudCAqIHRpbGVXaWR0aDsKLSAgICBFdmFzX0Nvb3JkIG95ID0geSAr
IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueTsKKyAgICBFdmFzX0Nvb3JkIG9mZnNldFkgPSB5ICsg
cHJpdi0+dmlldy5vZmZzZXQuYmFzZS55OwogICAgIEVpbmFfSW5saXN0KiogaXRlcmF0b3I7CiAg
ICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRvckVuZDsKICAgICB1bnNpZ25lZCBpbnQgYmFzZUNvbHVt
biA9IGxhc3RDb2x1bW4gLSBjb3VudCArIDE7CkBAIC0xMDc3LDEwICsxMDc3LDEwIEBAIHN0YXRp
YyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBfbGVmdChFd2tfVGlsZWRf
QmFja2luZ19TdG9yZV9EYXRhCiAgICAgICAgICAgICBpdCA9IEVJTkFfSU5MSVNUX0NPTlRBSU5F
Ul9HRVQoKml0ZXJhdG9yLCBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKTsKICAgICAgICAg
ICAgICppdGVyYXRvciA9IGVpbmFfaW5saXN0X2RlbW90ZSgqaXRlcmF0b3IsICppdGVyYXRvcik7
CiAKLSAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXQsIHRp
bGVQb3NpdGlvblgsIG95KTsKKyAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9p
dGVtX21vdmUoaXQsIHRpbGVQb3NpdGlvblgsIG9mZnNldFkpOwogICAgICAgICAgICAgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fZmlsbChwcml2LCBpdCwgY29sdW1uLCByb3cpOwogICAg
ICAgICB9Ci0gICAgICAgIG95ICs9IHRpbGVIZWlnaHQ7CisgICAgICAgIG9mZnNldFkgKz0gdGls
ZUhlaWdodDsKICAgICB9CiAKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSBvZmZzZXRY
OwpAQCAtMTA5MCwxMSArMTA5MCwxMSBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfdmlld193cmFwX2xlZnQoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YQogICogQGlu
dGVybmFsCiAgKiBNb3ZlIHJpZ2h0LW1vc3QgKGxhc3QpIGNvbHVtbiBsZWZ0IGFzIGZpcnN0IChs
ZWZ0LW1vc3QpLgogICoKLSAqIFRoZSBmaW5hbCByZXN1bHQgaXMgdmlzdWFsbHkgdGhlIHNhbWUs
IGJ1dCBsb2dpY2FsbHkgdGhlIGxhc3QgY29sIHRoYXQKKyAqIFRoZSBmaW5hbCByZXN1bHQgaXMg
dmlzdWFsbHkgdGhlIHNhbWUsIGJ1dCBsb2dpY2FsbHkgdGhlIGxhc3QgY29sdW1uIHRoYXQKICAq
IHdlbnQgb3V0IG9mIHNjcmVlbiBpcyBub3cgYXQgZmlyc3QgYW5kIGZpbGxlZCB3aXRoIG5ldyBt
b2RlbCBpdGVtcy4KICAqCiAgKiBUaGlzIGlzIHdvcnRoIGp1c3Qgd2hlbiBAYSBjb3VudCBpcyBz
bWFsbGVyIHRoYW4gQGMKLSAqIHByaXYtPnZpZXcuY29scywgYWZ0ZXIgdGhhdCBvbmUgaXMgcmVm
aWxsaW5nIHRoZSB3aG9sZSBtYXRyaXggc28gaXQKKyAqIHByaXYtPnZpZXcuY29sdW1ucywgYWZ0
ZXIgdGhhdCBvbmUgaXMgcmVmaWxsaW5nIHRoZSB3aG9sZSBtYXRyaXggc28gaXQKICAqIGlzIGJl
dHRlciB0byB0cmlnZ2VyIGZ1bGwgcmVmaWxsLgogICoKICAqIEBwYXJhbSBjb3VudCB0aGUgbnVt
YmVyIG9mIHRpbWVzIHRvIHJlcGVhdCB0aGUgcHJvY2Vzcy4KQEAgLTExMzgsNyArMTEzOCw3IEBA
IHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3JlZmlsbChFd2tfVGls
ZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwCiB7CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRvciwg
KippdGVyYXRvckVuZDsKICAgICBFdmFzX0Nvb3JkIGJhc2VUaWxlUG9zaXRpb25YLCB0aWxlUG9z
aXRpb25ZLCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQ7Ci0gICAgdW5zaWduZWQgaW50IHI7CisgICAg
dW5zaWduZWQgaW50IHJvdzsKIAogICAgIGV2YXNfb2JqZWN0X21vdmUocHJpdi0+YmFzZS5jbGlw
cGVyLCB4LCB5KTsKIApAQCAtMTE1MCwxOSArMTE1MCwxOSBAQCBzdGF0aWMgdm9pZCBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfdmlld19yZWZpbGwoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0
YSogcAogCiAgICAgaXRlcmF0b3IgPSBwcml2LT52aWV3Lml0ZW1zOwogICAgIGl0ZXJhdG9yRW5k
ID0gaXRlcmF0b3IgKyBwcml2LT52aWV3LnJvd3M7Ci0gICAgciA9IDA7CisgICAgcm93ID0gMDsK
IAogICAgIHByaXYtPm1vZGVsLmJhc2UuY29sdW1uIC09IHN0ZXBYOwogICAgIHByaXYtPm1vZGVs
LmJhc2Uucm93IC09IHN0ZXBZOwogCi0gICAgZm9yICg7IGl0ZXJhdG9yIDwgaXRlcmF0b3JFbmQ7
IGl0ZXJhdG9yKyssIHIrKykgeworICAgIGZvciAoOyBpdGVyYXRvciA8IGl0ZXJhdG9yRW5kOyBp
dGVyYXRvcisrLCByb3crKykgewogICAgICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVt
KiBpdGVtOwogICAgICAgICBFdmFzX0Nvb3JkIG5ld1RpbGVQb3NpdGlvblggPSBiYXNlVGlsZVBv
c2l0aW9uWDsKLSAgICAgICAgdW5zaWduZWQgaW50IGNvdW50ID0gMDsKKyAgICAgICAgdW5zaWdu
ZWQgaW50IGNvbHVtbiA9IDA7CiAgICAgICAgIEVJTkFfSU5MSVNUX0ZPUkVBQ0goKml0ZXJhdG9y
LCBpdGVtKSB7Ci0gICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxs
KHByaXYsIGl0ZW0sIGNvdW50LCByKTsKKyAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9pdGVtX2ZpbGwocHJpdiwgaXRlbSwgY29sdW1uLCByb3cpOwogICAgICAgICAgICAgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fbW92ZShpdGVtLCBuZXdUaWxlUG9zaXRpb25YLCB0
aWxlUG9zaXRpb25ZKTsKLSAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICBjb2x1bW4r
KzsKICAgICAgICAgICAgIG5ld1RpbGVQb3NpdGlvblggKz0gdGlsZVdpZHRoOwogICAgICAgICB9
CiAgICAgICAgIHRpbGVQb3NpdGlvblkgKz0gdGlsZUhlaWdodDsKQEAgLTExODUsMTAgKzExODUs
MTAgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfcG9zX2FwcGx5
KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKICAgICBpdGVyYXRvciA9IHByaXYtPnZpZXcu
aXRlbXM7CiAgICAgaXRlcmF0b3JFbmQgPSBpdGVyYXRvciArIHByaXYtPnZpZXcucm93czsKICAg
ICBmb3IgKDsgaXRlcmF0b3IgPCBpdGVyYXRvckVuZDsgaXRlcmF0b3IrKykgewotICAgICAgICBF
d2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdDsKKyAgICAgICAgRXdrX1RpbGVkX0JhY2tp
bmdfU3RvcmVfSXRlbSogaXRlbTsKICAgICAgICAgRXZhc19Db29yZCBveCA9IGJhc2VUaWxlUG9z
aXRpb25YOwotICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKCppdGVyYXRvciwgaXQpIHsKLSAg
ICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXQsIG94LCBiYXNl
VGlsZVBvc2l0aW9uWSk7CisgICAgICAgIEVJTkFfSU5MSVNUX0ZPUkVBQ0goKml0ZXJhdG9yLCBp
dGVtKSB7CisgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0
ZW0sIG94LCBiYXNlVGlsZVBvc2l0aW9uWSk7CiAgICAgICAgICAgICBveCArPSB0aWxlV2lkdGg7
CiAgICAgICAgIH0KICAgICAgICAgYmFzZVRpbGVQb3NpdGlvblkgKz0gdGlsZUhlaWdodDsKQEAg
LTExOTcsMjggKzExOTcsMjggQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3ZpZXdfcG9zX2FwcGx5KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKIAogc3RhdGljIHZv
aWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9vZmZzZXRfZm9yY2Uo
RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdikKIHsKLSAgICBFdmFzX0Nvb3JkIGRl
bHRhWCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLng7
Ci0gICAgRXZhc19Db29yZCBkZWx0YVkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueSAtIHByaXYt
PnZpZXcub2Zmc2V0Lm9sZC55OworICAgIEV2YXNfQ29vcmQgZGVsdGFYID0gcHJpdi0+dmlldy5v
ZmZzZXQuY3VycmVudC54IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLng7CisgICAgRXZhc19Db29y
ZCBkZWx0YVkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgLSBwcml2LT52aWV3Lm9mZnNl
dC5vbGQueTsKICAgICBFdmFzX0Nvb3JkIHRpbGVXaWR0aCwgdGlsZUhlaWdodDsKICAgICBpbnQg
c3RlcFksIHN0ZXBYOwogCiAgICAgSU5GKCJld2tCYWNraW5nU3RvcmUlcCwgb2Zmc2V0OiAlKzRk
LCAlKzRkICglKzRkLCAlKzRkKSIsCi0gICAgICAgIHByaXYtPnNlbGYsIGRlbHRhWCwgZGVsdGFZ
LCBwcml2LT52aWV3Lm9mZnNldC5jdXIueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkpOworICAg
ICAgICBwcml2LT5zZWxmLCBkZWx0YVgsIGRlbHRhWSwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVu
dC54LCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkpOwogCiAgICAgdGlsZVdpZHRoID0gcHJp
di0+dmlldy50aWxlLndpZHRoOwogICAgIHRpbGVIZWlnaHQgPSBwcml2LT52aWV3LnRpbGUuaGVp
Z2h0OwogCi0gICAgbG9uZyBuZXdDb2x1bW4gPSAtcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggLyB0
aWxlV2lkdGg7CisgICAgbG9uZyBuZXdDb2x1bW4gPSAtcHJpdi0+dmlldy5vZmZzZXQuY3VycmVu
dC54IC8gdGlsZVdpZHRoOwogICAgIHN0ZXBYID0gcHJpdi0+bW9kZWwuYmFzZS5jb2x1bW4gLSBu
ZXdDb2x1bW47Ci0gICAgbG9uZyBuZXdSb3cgPSAtcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgLyB0
aWxlSGVpZ2h0OworICAgIGxvbmcgbmV3Um93ID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQu
eSAvIHRpbGVIZWlnaHQ7CiAgICAgc3RlcFkgPSBwcml2LT5tb2RlbC5iYXNlLnJvdyAtIG5ld1Jv
dzsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54ID0gcHJpdi0+dmlldy5vZmZzZXQuY3Vy
Lng7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXIu
eTsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJl
bnQueDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1
cnJlbnQueTsKICAgICBldmFzX29iamVjdF9tb3ZlKAogICAgICAgICBwcml2LT5jb250ZW50c0Ns
aXBwZXIsCi0gICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ICsgcHJpdi0+dmlldy54LAot
ICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSArIHByaXYtPnZpZXcueSk7CisgICAgICAg
IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCArIHByaXYtPnZpZXcueCwKKyAgICAgICAgcHJp
di0+dmlldy5vZmZzZXQuY3VycmVudC55ICsgcHJpdi0+dmlldy55KTsKIAogICAgIHByaXYtPnZp
ZXcub2Zmc2V0LmJhc2UueCArPSBkZWx0YVggLSBzdGVwWCAqIHRpbGVXaWR0aDsKICAgICBwcml2
LT52aWV3Lm9mZnNldC5iYXNlLnkgKz0gZGVsdGFZIC0gc3RlcFkgKiB0aWxlSGVpZ2h0OwpAQCAt
MTIyOSwxMyArMTIyOSwxMyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
c21hcnRfY2FsY3VsYXRlX29mZnNldF9mb3JjZShFd2tfVGlsZWRfQmFjawogCiBzdGF0aWMgdm9p
ZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfY2FsY3VsYXRlX29mZnNldChFd2tfVGls
ZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSkK
IHsKLSAgICBFdmFzX0Nvb3JkIGRlbHRhWCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54IC0gcHJp
di0+dmlldy5vZmZzZXQub2xkLng7Ci0gICAgRXZhc19Db29yZCBkZWx0YVkgPSBwcml2LT52aWV3
Lm9mZnNldC5jdXIueSAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55OworICAgIEV2YXNfQ29vcmQg
ZGVsdGFYID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54IC0gcHJpdi0+dmlldy5vZmZzZXQu
b2xkLng7CisgICAgRXZhc19Db29yZCBkZWx0YVkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
LnkgLSBwcml2LT52aWV3Lm9mZnNldC5vbGQueTsKICAgICBFdmFzX0Nvb3JkIHRpbGVXaWR0aCwg
dGlsZUhlaWdodDsKICAgICBpbnQgc3RlcFksIHN0ZXBYOwogCiAgICAgSU5GKCJld2tCYWNraW5n
U3RvcmUlcCwgb2Zmc2V0OiAlKzRkLCAlKzRkICglKzRkLCAlKzRkKSIsCi0gICAgICAgIHByaXYt
PnNlbGYsIGRlbHRhWCwgZGVsdGFZLCBwcml2LT52aWV3Lm9mZnNldC5jdXIueCwgcHJpdi0+dmll
dy5vZmZzZXQuY3VyLnkpOworICAgICAgICBwcml2LT5zZWxmLCBkZWx0YVgsIGRlbHRhWSwgcHJp
di0+dmlldy5vZmZzZXQuY3VycmVudC54LCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkpOwog
CiAgICAgaWYgKCFkZWx0YVggJiYgIWRlbHRhWSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTI0Mywy
MCArMTI0MywyMCBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRf
Y2FsY3VsYXRlX29mZnNldChFd2tfVGlsZWRfQmFja2luZ19TdAogICAgIHRpbGVXaWR0aCA9IHBy
aXYtPnZpZXcudGlsZS53aWR0aDsKICAgICB0aWxlSGVpZ2h0ID0gcHJpdi0+dmlldy50aWxlLmhl
aWdodDsKIAotICAgIGxvbmcgbmV3Q29sID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci54IC8gdGls
ZVdpZHRoOworICAgIGxvbmcgbmV3Q29sID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAv
IHRpbGVXaWR0aDsKICAgICBzdGVwWCA9IHByaXYtPm1vZGVsLmJhc2UuY29sdW1uIC0gbmV3Q29s
OwotICAgIGxvbmcgbmV3Um93ID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci55IC8gdGlsZUhlaWdo
dDsKKyAgICBsb25nIG5ld1JvdyA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgLyB0aWxl
SGVpZ2h0OwogICAgIHN0ZXBZID0gcHJpdi0+bW9kZWwuYmFzZS5yb3cgLSBuZXdSb3c7CiAKLSAg
ICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAg
IHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7CisgICAg
cHJpdi0+dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7Cisg
ICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7
CiAgICAgZXZhc19vYmplY3RfbW92ZSgKICAgICAgICAgcHJpdi0+Y29udGVudHNDbGlwcGVyLAot
ICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCArIHByaXYtPnZpZXcueCwKLSAgICAgICAg
cHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgKyBwcml2LT52aWV3LnkpOworICAgICAgICBwcml2LT52
aWV3Lm9mZnNldC5jdXJyZW50LnggKyBwcml2LT52aWV3LngsCisgICAgICAgIHByaXYtPnZpZXcu
b2Zmc2V0LmN1cnJlbnQueSArIHByaXYtPnZpZXcueSk7CiAKLSAgICBpZiAoKHN0ZXBYIDwgMCAm
JiBzdGVwWCA8PSAtcHJpdi0+dmlldy5jb2xzKQotICAgICAgICB8fCAoc3RlcFggPiAwICYmIHN0
ZXBYID49IHByaXYtPnZpZXcuY29scykKKyAgICBpZiAoKHN0ZXBYIDwgMCAmJiBzdGVwWCA8PSAt
cHJpdi0+dmlldy5jb2x1bW5zKQorICAgICAgICB8fCAoc3RlcFggPiAwICYmIHN0ZXBYID49IHBy
aXYtPnZpZXcuY29sdW1ucykKICAgICAgICAgfHwgKHN0ZXBZIDwgMCAmJiBzdGVwWSA8PSAtcHJp
di0+dmlldy5yb3dzKQogICAgICAgICB8fCAoc3RlcFkgPiAwICYmIHN0ZXBZID49IHByaXYtPnZp
ZXcucm93cykpIHsKIApAQCAtMTI5MSw4ICsxMjkxLDggQEAgc3RhdGljIHZvaWQgX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9wb3MoRXdrX1RpbGVkX0JhY2tpbmdfU3Rv
cmUKICAgICBwcml2LT52aWV3LnkgPSB5OwogICAgIGV2YXNfb2JqZWN0X21vdmUoCiAgICAgICAg
IHByaXYtPmNvbnRlbnRzQ2xpcHBlciwKLSAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngg
KyBwcml2LT52aWV3LngsCi0gICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ICsgcHJpdi0+
dmlldy55KTsKKyAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ICsgcHJpdi0+dmll
dy54LAorICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgKyBwcml2LT52aWV3Lnkp
OwogfQogCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZmlsbF9yZW5kZXJl
cnMoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdikKQEAgLTEzODEsMTAgKzEzODEs
MTAgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0
ZShFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3IKICAgICAgICAgfHwgcHJpdi0+dmlldy5vZmZz
ZXQuYmFzZS54IDw9IC0gcHJpdi0+dmlldy50aWxlLndpZHRoCiAgICAgICAgIHx8IHByaXYtPnZp
ZXcub2Zmc2V0LmJhc2UueSA+IDAKICAgICAgICAgfHwgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS55
IDw9IC0gcHJpdi0+dmlldy50aWxlLmhlaWdodCkKLSAgICAgICAgRVJSKCJpbmNvcnJlY3QgYmFz
ZSBvZmZzZXQgJSs0ZCwlKzRkLCB0aWxlPSVkeCVkLCBjdXI9JSs0ZCwlKzRkXG4iLAorICAgICAg
ICBFUlIoImluY29ycmVjdCBiYXNlIG9mZnNldCAlKzRkLCUrNGQsIHRpbGU9JWR4JWQsIGN1cnJl
bnQ9JSs0ZCwlKzRkXG4iLAogICAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54LCBw
cml2LT52aWV3Lm9mZnNldC5iYXNlLnksCiAgICAgICAgICAgICBwcml2LT52aWV3LnRpbGUud2lk
dGgsIHByaXYtPnZpZXcudGlsZS5oZWlnaHQsCi0gICAgICAgICAgICBwcml2LT52aWV3Lm9mZnNl
dC5jdXIueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkpOworICAgICAgICAgICAgcHJpdi0+dmll
dy5vZmZzZXQuY3VycmVudC54LCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkpOwogCiB9CiAK
QEAgLTE0NDgsOCArMTQ0OCw4IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXRfaW50ZXJuYWwoRXdrX1RpCiAgICAgaWYgKHBy
aXYtPnJlbmRlci5kaXNhYmxlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcHJpdi0+
dmlldy5vZmZzZXQuY3VyLnggPSB4OwotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ID0geTsK
KyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggPSB4OworICAgIHByaXYtPnZpZXcub2Zm
c2V0LmN1cnJlbnQueSA9IHk7CiAKICAgICBwcml2LT5jaGFuZ2VkLm9mZnNldCA9IHRydWU7CiAg
ICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2NoYW5nZWQocHJpdik7CkBAIC0xNDYyLDcgKzE0
NjIsNyBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zm
c2V0X3NldChFdmFzX09iamVjdCogZXdrQmFja2luZwogICAgIERCRygiZXdrQmFja2luZ1N0b3Jl
JXAsIHg9JWQsIHk9JWQiLCBld2tCYWNraW5nU3RvcmUsIHgsIHkpOwogCiAgICAgUFJJVl9EQVRB
X0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2LCBmYWxzZSk7Ci0gICAgaWYgKHgg
PT0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggJiYgeSA9PSBwcml2LT52aWV3Lm9mZnNldC5jdXIu
eSkKKyAgICBpZiAoeCA9PSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggJiYgeSA9PSBwcml2
LT52aWV3Lm9mZnNldC5jdXJyZW50LnkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0
dXJuIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0X2ludGVy
bmFsKHByaXYsIHgsIHkpOwpAQCAtMTQ3NywxMyArMTQ3NywxMyBAQCBFaW5hX0Jvb2wgZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X2FkZChFdmFzX09iamVjdCogZXdr
QmFja2luZwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3NldF9pbnRlcm5hbAotICAgICAgICAgICAg
ICAgKHByaXYsIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ICsgZGVsdGFYLCBwcml2LT52aWV3Lm9m
ZnNldC5jdXIueSArIGRlbHRhWSk7CisgICAgICAgICAgICAgICAocHJpdiwgcHJpdi0+dmlldy5v
ZmZzZXQuY3VycmVudC54ICsgZGVsdGFYLCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgKyBk
ZWx0YVkpOwogfQogCiBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96
b29tX3NldF9pbnRlcm5hbChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2LCBmbG9h
dCogem9vbSwgRXZhc19Db29yZCBjdXJyZW50WCwgRXZhc19Db29yZCBjdXJyZW50WSwgRXZhc19D
b29yZCogb2Zmc2V0WCwgRXZhc19Db29yZCogb2Zmc2V0WSkKIHsKLSAgICAqb2Zmc2V0WCA9IHBy
aXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAgICpvZmZzZXRZID0gcHJpdi0+dmlldy5vZmZzZXQu
Y3VyLnk7CisgICAgKm9mZnNldFggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAg
Km9mZnNldFkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAKICAgICBpZiAoZmFic2Yo
cHJpdi0+dmlldy50aWxlLnpvb20gLSAqem9vbSkgPCBaT09NX1NURVBfTUlOKSB7CiAgICAgICAg
IERCRygiaWdub3JlZCBhcyB6b29tIGRpZmZlcmVuY2UgaXMgPCAlZjogJWYiLApAQCAtMTUxNCwx
MCArMTUxNCwxMCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96
b29tX3NldF9pbnRlcm5hbChFd2tfVGlsZWRfQmFja2luZ19TdAogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRvciwgKippdGVyYXRvckVuZDsKLSAg
ICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdDsKKyAgICBFd2tfVGlsZWRfQmFja2lu
Z19TdG9yZV9JdGVtKiBpdGVtOwogCi0gICAgRXZhc19Db29yZCBuZXdYID0gY3VycmVudFggKyAo
cHJpdi0+dmlldy5vZmZzZXQuY3VyLnggLSBjdXJyZW50WCkgKiBzY2FsZTsKLSAgICBFdmFzX0Nv
b3JkIG5ld1kgPSBjdXJyZW50WSArIChwcml2LT52aWV3Lm9mZnNldC5jdXIueSAtIGN1cnJlbnRZ
KSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3WCA9IGN1cnJlbnRYICsgKHByaXYtPnZpZXcu
b2Zmc2V0LmN1cnJlbnQueCAtIGN1cnJlbnRYKSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3
WSA9IGN1cnJlbnRZICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSAtIGN1cnJlbnRZKSAq
IHNjYWxlOwogCiAgICAgRXZhc19Db29yZCBtb2RlbFdpZHRoID0gcHJpdi0+bW9kZWwud2lkdGgg
KiBzY2FsZTsKICAgICBFdmFzX0Nvb3JkIG1vZGVsSGVpZ2h0ID0gcHJpdi0+bW9kZWwuaGVpZ2h0
ICogc2NhbGU7CkBAIC0xNTQxLDE1ICsxNTQxLDE1IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fc2V0X2ludGVybmFsKEV3a19UaWxlZF9CYWNraW5nX1N0
CiAgICAgcHJpdi0+Y2hhbmdlZC5tb2RlbCA9IHRydWU7CiAgICAgX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX2NoYW5nZWQocHJpdik7CiAKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCA9IG5l
d1g7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgPSBuZXdZOworICAgIHByaXYtPnZpZXcu
b2Zmc2V0LmN1cnJlbnQueCA9IG5ld1g7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55
ID0gbmV3WTsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSBiYXNlWDsKICAgICBwcml2
LT52aWV3Lm9mZnNldC5iYXNlLnkgPSBiYXNlWTsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9s
ZC54ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLng7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQub2xk
LnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueTsKLSAgICAqb2Zmc2V0WCA9IHByaXYtPnZpZXcu
b2Zmc2V0LmN1ci54OwotICAgICpvZmZzZXRZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7Cisg
ICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7
CisgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
Lnk7CisgICAgKm9mZnNldFggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAgKm9m
ZnNldFkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAKICAgICBldmFzX29iamVjdF9t
b3ZlKAogICAgICAgICBwcml2LT5jb250ZW50c0NsaXBwZXIsCkBAIC0xNTY4LDkgKzE1NjgsOSBA
QCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3NldF9pbnRl
cm5hbChFd2tfVGlsZWRfQmFja2luZ19TdAogICAgICAgICBFdmFzX0Nvb3JkIHRpbGVQb3NpdGlv
blggPSBiYXNlVGlsZVBvc2l0aW9uWDsKICAgICAgICAgRWluYV9Jbmxpc3QqIGxzdCA9ICppdGVy
YXRvcjsKIAotICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKGxzdCwgaXQpIHsKLSAgICAgICAg
ICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXQsIHRpbGVQb3NpdGlvblgs
IHRpbGVQb3NpdGlvblkpOwotICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0
ZW1fcmVzaXplKGl0LCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQpOworICAgICAgICBFSU5BX0lOTElT
VF9GT1JFQUNIKGxzdCwgaXRlbSkgeworICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX2l0ZW1fbW92ZShpdGVtLCB0aWxlUG9zaXRpb25YLCB0aWxlUG9zaXRpb25ZKTsKKyAgICAg
ICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Jlc2l6ZShpdGVtLCB0aWxlV2lk
dGgsIHRpbGVIZWlnaHQpOwogICAgICAgICAgICAgdGlsZVBvc2l0aW9uWCArPSB0aWxlV2lkdGg7
CiAgICAgICAgIH0KICAgICAgICAgdGlsZVBvc2l0aW9uWSArPSB0aWxlSGVpZ2h0OwpAQCAtMTYx
Myw4ICsxNjEzLDggQEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fd2Vh
a19zZXQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgZmwKIAogICAgIGludCB2cm93cyA9
IHN0YXRpY19jYXN0PGludD4oY2VpbChwcml2LT52aWV3LmhlaWdodCAvc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHRpbGVIZWlnaHQpKSArIDEpOwogICAgIGludCB2Y29scyA9IHN0YXRpY19jYXN0PGludD4o
Y2VpbChwcml2LT52aWV3LndpZHRoIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVXaWR0aCkpICsg
MSk7Ci0gICAgRXZhc19Db29yZCBuZXdYID0gY3VycmVudFggKyAocHJpdi0+dmlldy5vZmZzZXQu
Y3VyLnggLSBjdXJyZW50WCkgKiBzY2FsZTsKLSAgICBFdmFzX0Nvb3JkIG5ld1kgPSBjdXJyZW50
WSArIChwcml2LT52aWV3Lm9mZnNldC5jdXIueSAtIGN1cnJlbnRZKSAqIHNjYWxlOworICAgIEV2
YXNfQ29vcmQgbmV3WCA9IGN1cnJlbnRYICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAt
IGN1cnJlbnRYKSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3WSA9IGN1cnJlbnRZICsgKHBy
aXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSAtIGN1cnJlbnRZKSAqIHNjYWxlOwogICAgIEV2YXNf
Q29vcmQgYmFzZVggPSBuZXdYICUgdGlsZVdpZHRoOwogICAgIEV2YXNfQ29vcmQgYmFzZVkgPSBu
ZXdZICUgdGlsZUhlaWdodDsKICAgICB1bnNpZ25lZCBsb25nIGJhc2VSb3cgPSAtbmV3WSAvIHRp
bGVIZWlnaHQ7CkBAIC0xNjI2LDcgKzE2MjYsNyBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfem9vbV93ZWFrX3NldChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBmbAog
ICAgICAgICByZUNhbGN1bGF0ZSA9IHRydWU7CiAgICAgfQogCi0gICAgaWYgKHZyb3dzID4gcHJp
di0+dmlldy5yb3dzIHx8IHZjb2xzID4gcHJpdi0+dmlldy5jb2xzKQorICAgIGlmICh2cm93cyA+
IHByaXYtPnZpZXcucm93cyB8fCB2Y29scyA+IHByaXYtPnZpZXcuY29sdW1ucykKICAgICAgICAg
cmVDYWxjdWxhdGUgPSB0cnVlOwogCiAgICAgaWYgKHJlQ2FsY3VsYXRlKSB7CkBAIC0xNjY3LDgg
KzE2NjcsOCBAQCB2b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZpeF9vZmZzZXRzKEV2YXNf
T2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIEV2YXNfQ29vcgogICAgIFBSSVZfREFUQV9HRVRfT1Jf
UkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdik7CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRv
ciwgKippdGVyYXRvckVuZDsKICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVt
OwotICAgIEV2YXNfQ29vcmQgbmV3WCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAgIEV2
YXNfQ29vcmQgbmV3WSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OworICAgIEV2YXNfQ29vcmQg
bmV3WCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueDsKKyAgICBFdmFzX0Nvb3JkIG5ld1kg
PSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAgICAgRXZhc19Db29yZCBiYXNlWCA9IHBy
aXYtPnZpZXcub2Zmc2V0LmJhc2UueDsKICAgICBFdmFzX0Nvb3JkIGJhc2VZID0gcHJpdi0+dmll
dy5vZmZzZXQuYmFzZS55OwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoID0gcHJpdi0+dmlldy50
aWxlLndpZHRoOwpAQCAtMTY5Niw4ICsxNjk2LDggQEAgdm9pZCBld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9maXhfb2Zmc2V0cyhFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBFdmFzX0Nvb3IK
ICAgICAgICAgcHJpdi0+bW9kZWwuYmFzZS5yb3cgPSAtbmV3WSAvIHRpbGVIZWlnaHQ7CiAgICAg
fQogCi0gICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggPSBuZXdYOwotICAgIHByaXYtPnZpZXcu
b2Zmc2V0LmN1ci55ID0gbmV3WTsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggPSBu
ZXdYOworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSA9IG5ld1k7CiAgICAgcHJpdi0+
dmlldy5vZmZzZXQub2xkLnggPSBuZXdYOwogICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0g
bmV3WTsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSBiYXNlWDsKQEAgLTE4MTUsOCAr
MTgxNSw4IEBAIHZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZmx1c2goRXZhc19PYmplY3Qq
IGV3a0JhY2tpbmdTdG9yZSkKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5n
U3RvcmUsIHByaXYpOwogICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hl
ID0gMDsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ID0gMDsKLSAgICBwcml2LT52aWV3
Lm9mZnNldC5jdXIueSA9IDA7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ID0gMDsK
KyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgPSAwOwogICAgIHByaXYtPnZpZXcub2Zm
c2V0Lm9sZC54ID0gMDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueSA9IDA7CiAgICAgcHJp
di0+dmlldy5vZmZzZXQuYmFzZS54ID0gMDsKQEAgLTE5NzEsOSArMTk3MSw5IEBAIEVpbmFfQm9v
bCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lvbihFdmFzX09iamVjdCog
ZXdrQmFja2luZ1N0b3JlCiAgICAgfQogCiAgICAgd2hpbGUgKGVpbmFfdGlsZV9ncmlkX3NsaWNl
cl9uZXh0KCZzbGljZXIsICZpbmZvKSkgewotICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIGMg
PSBpbmZvLT5jb2w7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgciA9IGluZm8tPnJvdzsK
LSAgICAgICAgaWYgKCFfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0
X2FkZChwcml2LCBjLCByLCB6b29tKSkKKyAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBjb2x1
bW4gPSBpbmZvLT5jb2w7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgcm93ID0gaW5mby0+
cm93OworICAgICAgICBpZiAoIV9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3Jl
cXVlc3RfYWRkKHByaXYsIGNvbHVtbiwgcm93LCB6b29tKSkKICAgICAgICAgICAgIGJyZWFrOwog
ICAgIH0KIApAQCAtMTk5Nyw3ICsxOTk3LDcgQEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5n
X3N0b3JlX3ByZV9yZW5kZXJfcmVsYXRpdmVfcmFkaXVzKEV2YXNfT2JqZWN0KiBld2tCYWMKICAg
ICBlbmRSb3cgPSBzdGQ6Om1pbihwcml2LT5tb2RlbC5jdXJyZW50LnJvd3MgLSAxLAogICAgICAg
ICAgICAgICAgICAgICAgICBwcml2LT5tb2RlbC5iYXNlLnJvdyArIHByaXYtPnZpZXcucm93cyAr
IG4gLSAxKTsKICAgICBlbmRDb2wgPSBzdGQ6Om1pbihwcml2LT5tb2RlbC5jdXJyZW50LmNvbHVt
bnMgLSAxLAotICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5tb2RlbC5iYXNlLmNvbHVtbiAr
IHByaXYtPnZpZXcuY29scyArIG4gLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+
bW9kZWwuYmFzZS5jb2x1bW4gKyBwcml2LT52aWV3LmNvbHVtbnMgKyBuIC0gMSk7CiAKICAgICBJ
TkYoInN0YXJ0Um93PSVsdSwgZW5kUm93PSVsdSwgc3RhcnRDb2w9JWx1LCBlbmRDb2w9JWx1IiwK
ICAgICAgICAgc3RhcnRSb3csIGVuZFJvdywgc3RhcnRDb2wsIGVuZENvbCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5oCmluZGV4IDQ0NzQwY2Iu
LmFiZDg2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZS5oCkBAIC02NCw3ICs2NCw3IEBAIHN0cnVjdCBfRXdrX1RpbGVfU3RhdHMgewogc3Ry
dWN0IF9Fd2tfVGlsZSB7CiAgICAgRWluYV9UaWxlciogdXBkYXRlczsgICAgLyoqPCB1cGRhdGVk
L2RpcnR5IGFyZWFzICovCiAgICAgRXdrX1RpbGVfU3RhdHMgc3RhdHM7ICAgICAgIC8qKjwgdGls
ZSB1c2FnZSBzdGF0aXN0aWNzICovCi0gICAgdW5zaWduZWQgbG9uZyBjb2wsIHJvdzsgLyoqPCB0
aWxlIHRpbGUgcG9zaXRpb24gKi8KKyAgICB1bnNpZ25lZCBsb25nIGNvbHVtbiwgcm93OyAvKio8
IHRpbGUgdGlsZSBwb3NpdGlvbiAqLwogICAgIEV2YXNfQ29vcmQgeCwgeTsgICAgICAgIC8qKjwg
dGlsZSBjb29yZGluYXRlIHBvc2l0aW9uICovCiAKICAgICAvKiogTmV2ZXIgZXZlciBjaGFuZ2Ug
dGhvc2UgYWZ0ZXIgdGlsZSBpcyBjcmVhdGVkIChyZXNwZWN0IGNvbnN0ISkgKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbWF0cml4LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbWF0cml4LmNwcAppbmRleCA5NWUyMzE5Li44NzIzOGJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21hdHJpeC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tYXRyaXguY3BwCkBAIC00NCw3
ICs0NCw3IEBAIHR5cGVkZWYgc3RydWN0IF9Fd2tfVGlsZV9NYXRyaXhfRW50cnkgRXdrX1RpbGVf
TWF0cml4X0VudHJ5Owogc3RydWN0IF9Fd2tfVGlsZV9NYXRyaXggewogICAgIEVpbmFfTWF0cml4
c3BhcnNlKiBtYXRyaXg7CiAgICAgRWluYV9Jbmxpc3QqIG1hdHJpY2VzOwotICAgIEV3a19UaWxl
X1VudXNlZF9DYWNoZSogdGlsaWVVbnVzZWRDYWNoZTsKKyAgICBFd2tfVGlsZV9VbnVzZWRfQ2Fj
aGUqIHRpbGVVbnVzZWRDYWNoZTsKICAgICBFdmFzX0NvbG9yc3BhY2UgY3NwYWNlOwogICAgIHN0
cnVjdCB7CiAgICAgICAgIHZvaWQgKCpjYWxsYmFjaykodm9pZCogZGF0YSwgRXdrX1RpbGUqIHRp
bGUsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiB1cGRhdGUpOwpAQCAtOTQsNyArOTQsNyBAQCBzdGF0
aWMgdm9pZCBfZXdrX3RpbGVfbWF0cml4X2NlbGxfZnJlZSh2b2lkKiB1c2VyRGF0YSwgdm9pZCog
Y2VsbERhdGEpCiAgICAgaWYgKCF0aWxlKQogICAgICAgICByZXR1cm47CiAKLSAgICBld2tfdGls
ZV91bnVzZWRfY2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAg
IGV3a190aWxlX3VudXNlZF9jYWNoZV9mcmVlemUodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hl
KTsKIAogICAgIGlmICh0aWxlLT51cGRhdGVzIHx8IHRpbGUtPnN0YXRzLmZ1bGxfdXBkYXRlKQog
ICAgICAgICB0aWxlTWF0cml4LT51cGRhdGVzID0gZWluYV9saXN0X3JlbW92ZSh0aWxlTWF0cml4
LT51cGRhdGVzLCB0aWxlKTsKQEAgLTEwMiw4ICsxMDIsOCBAQCBzdGF0aWMgdm9pZCBfZXdrX3Rp
bGVfbWF0cml4X2NlbGxfZnJlZSh2b2lkKiB1c2VyRGF0YSwgdm9pZCogY2VsbERhdGEpCiAgICAg
aWYgKHRpbGUtPnZpc2libGUpCiAgICAgICAgIEVSUigiZnJlZWluZyBjZWxsIHRoYXQgaXMgdmlz
aWJsZSwgbGVha2luZyB0aWxlICVwIiwgdGlsZSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGlmICgh
ZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfZ2V0KHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2Fj
aGUsIHRpbGUpKQotICAgICAgICAgICAgRVJSKCJ0aWxlICVwIHdhcyBub3QgaW4gY2FjaGUgJXA/
IGxlYWtpbmcuLi4iLCB0aWxlLCB0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlKTsKKyAgICAg
ICAgaWYgKCFld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9nZXQodGlsZU1hdHJpeC0+dGlsZVVu
dXNlZENhY2hlLCB0aWxlKSkKKyAgICAgICAgICAgIEVSUigidGlsZSAlcCB3YXMgbm90IGluIGNh
Y2hlICVwPyBsZWFraW5nLi4uIiwgdGlsZSwgdGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlKTsK
ICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBFd2tfVGlsZV9NYXRyaXhfRW50cnkqIGVudHJ5
OwogICAgICAgICAgICAgREJHKCJ0aWxlIGNlbGwgZG9lcyBub3QgZXhpc3QgYW55bW9yZSwgZnJl
ZSBpdCAlcCIsIHRpbGUpOwpAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGls
ZV9tYXRyaXhfY2VsbF9mcmVlKHZvaWQqIHVzZXJEYXRhLCB2b2lkKiBjZWxsRGF0YSkKICAgICAg
ICAgfQogICAgIH0KIAotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3KHRpbGVNYXRyaXgt
PnRpbGllVW51c2VkQ2FjaGUpOworICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3KHRpbGVN
YXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiB9CiAKIC8qIGNhbGxlZCB3aGVuIGNhY2hlIG9mIHVu
dXNlZCB0aWxlIGlzIGZsdXNoZWQgKi8KQEAgLTEzNyw3ICsxMzcsNyBAQCBzdGF0aWMgdm9pZCBf
ZXdrX3RpbGVfbWF0cml4X3RpbGVfZnJlZSh2b2lkKiBkYXRhLCBFd2tfVGlsZSogdGlsZSkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghZWluYV9tYXRyaXhzcGFyc2VfY2VsbF9p
ZHhfZ2V0KGVudHJ5LT5tYXRyaXgsIHRpbGUtPnJvdywgdGlsZS0+Y29sLCAmY2VsbCkpIHsKKyAg
ICBpZiAoIWVpbmFfbWF0cml4c3BhcnNlX2NlbGxfaWR4X2dldChlbnRyeS0+bWF0cml4LCB0aWxl
LT5yb3csIHRpbGUtPmNvbHVtbiwgJmNlbGwpKSB7CiAKICAgICAgICAgRVJSKCJyZW1vdmluZyB0
aWxlICVwIHRoYXQgd2FzIG5vdCBpbiB0aGUgbWF0cml4PyBMZWFraW5nLi4uIiwgdGlsZSk7CiAg
ICAgICAgIHJldHVybjsKQEAgLTIxMSwxMCArMjExLDEwIEBAIEV3a19UaWxlX01hdHJpeCogZXdr
X3RpbGVfbWF0cml4X25ldyhFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSwg
dW5zCiAgICAgZXdrX3RpbGVfbWF0cml4X3pvb21fbGV2ZWxfc2V0KHRpbGVNYXRyaXgsIHpvb21M
ZXZlbCk7CiAKICAgICBpZiAodGlsZVVudXNlZENhY2hlKQotICAgICAgICB0aWxlTWF0cml4LT50
aWxpZVVudXNlZENhY2hlID0gZXdrX3RpbGVfdW51c2VkX2NhY2hlX3JlZih0aWxlVW51c2VkQ2Fj
aGUpOworICAgICAgICB0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUgPSBld2tfdGlsZV91bnVz
ZWRfY2FjaGVfcmVmKHRpbGVVbnVzZWRDYWNoZSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIHRpbGVN
YXRyaXgtPnRpbGllVW51c2VkQ2FjaGUgPSBld2tfdGlsZV91bnVzZWRfY2FjaGVfbmV3KERFRkFV
TFRfQ0FDSEVfU0laRSk7Ci0gICAgICAgIGlmICghdGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNo
ZSkgeworICAgICAgICB0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUgPSBld2tfdGlsZV91bnVz
ZWRfY2FjaGVfbmV3KERFRkFVTFRfQ0FDSEVfU0laRSk7CisgICAgICAgIGlmICghdGlsZU1hdHJp
eC0+dGlsZVVudXNlZENhY2hlKSB7CiAgICAgICAgICAgICBFUlIoIm5vIGNhY2hlIG9mIHVudXNl
ZCB0aWxlISIpOwogICAgICAgICAgICAgZWluYV9tYXRyaXhzcGFyc2VfZnJlZSh0aWxlTWF0cml4
LT5tYXRyaXgpOwogICAgICAgICAgICAgZnJlZSh0aWxlTWF0cml4KTsKQEAgLTI5OCw3ICsyOTgs
NyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9mcmVlKEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJp
eCkKIAogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHRpbGVNYXRyaXgpOwogCi0gICAg
ZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hl
KTsKKyAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGVVbnVz
ZWRDYWNoZSk7CiAgICAgZXdrX3RpbGVfbWF0cml4X2ludmFsaWRhdGUodGlsZU1hdHJpeCk7CiAg
ICAgZW50cnkgPSBFSU5BX0lOTElTVF9DT05UQUlORVJfR0VUKHRpbGVNYXRyaXgtPm1hdHJpY2Vz
LCBFd2tfVGlsZV9NYXRyaXhfRW50cnkpOwogICAgIGVpbmFfbWF0cml4c3BhcnNlX2ZyZWUoZW50
cnktPm1hdHJpeCk7CkBAIC0zMDYsOCArMzA2LDggQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfZnJl
ZShFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgpCiAgICAgZnJlZShlbnRyeSk7CiAgICAgdGls
ZU1hdHJpeC0+bWF0cmljZXMgPSAwOwogCi0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXco
dGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7Ci0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hl
X3VucmVmKHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgIGV3a190aWxlX3VudXNl
ZF9jYWNoZV90aGF3KHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVf
dW51c2VkX2NhY2hlX3VucmVmKHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiAKICNpZmRl
ZiBERUJVR19NRU1fTEVBS1MKICAgICB0aWxlcyA9IHRpbGVNYXRyaXgtPnN0YXRzLnRpbGVzLmFs
bG9jYXRlZCAtIHRpbGVNYXRyaXgtPnN0YXRzLnRpbGVzLmZyZWVkOwpAQCAtMzU1LDcgKzM1NSw3
IEBAIHZvaWQgZXdrX3RpbGVfbWF0cml4X3Jlc2l6ZShFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRy
aXgsIHVuc2lnbmVkIGxvbmcgY29scywgdW5zCiBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIGV3a190
aWxlX21hdHJpeF91bnVzZWRfY2FjaGVfZ2V0KGNvbnN0IEV3a19UaWxlX01hdHJpeCogdGlsZU1h
dHJpeCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwodGlsZU1hdHJpeCwg
MCk7Ci0gICAgcmV0dXJuIHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGU7CisgICAgcmV0dXJu
IHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZTsKIH0KIAogLyoqCkBAIC0zOTAsNyArMzkwLDcg
QEAgRXdrX1RpbGUqIGV3a190aWxlX21hdHJpeF90aWxlX2V4YWN0X2dldChFd2tfVGlsZV9NYXRy
aXgqIHRpbGVNYXRyaXgsIHVuc2lnbmVkIGwKIAogZW5kOgogICAgIGlmICghdGlsZS0+dmlzaWJs
ZSkgewotICAgICAgICBpZiAoIWV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX2dldCh0aWxlTWF0
cml4LT50aWxpZVVudXNlZENhY2hlLCB0aWxlKSkKKyAgICAgICAgaWYgKCFld2tfdGlsZV91bnVz
ZWRfY2FjaGVfdGlsZV9nZXQodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlLCB0aWxlKSkKICAg
ICAgICAgICAgIFdSTigiRXdrX1RpbGUgd2FzIHVudXNlZCBidXQgbm90IGluIGNhY2hlPyBidWch
Iik7CiAgICAgfQogCkBAIC00NTksNyArNDU5LDcgQEAgRXdrX1RpbGUqIGV3a190aWxlX21hdHJp
eF90aWxlX25ldyhFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgsIEV2YXMqIGNhbnZhcywgdW4K
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgdGlsZS0+Y29sID0gY29sdW1uOworICAg
IHRpbGUtPmNvbHVtbiA9IGNvbHVtbjsKICAgICB0aWxlLT5yb3cgPSByb3c7CiAgICAgdGlsZS0+
eCA9IGNvbHVtbiAqIHRpbGVXaWR0aDsKICAgICB0aWxlLT55ID0gcm93ICogdGlsZUhlaWdodDsK
QEAgLTQ4Niw3ICs0ODYsNyBAQCBFd2tfVGlsZSogZXdrX3RpbGVfbWF0cml4X3RpbGVfbmV3KEV3
a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCwgRXZhcyogY2FudmFzLCB1bgogICogdW51c2VkIGNh
Y2hlLgogICoKICAqIEBwYXJhbSB0aWxlTWF0cml4IHRoZSB0aWxlIG1hdHJpeCB0byByZXR1cm4g
dGlsZSB0by4KLSAqIEBwYXJhbSB0IHRoZSB0aWxlIGluc3RhbmNlIHRvIHJldHVybiwgbXVzdCBA
YiBub3QgYmUgQGMgMC4KKyAqIEBwYXJhbSB0aWxlIHRoZSB0aWxlIGluc3RhbmNlIHRvIHJldHVy
biwgbXVzdCBAYiBub3QgYmUgQGMgMC4KICAqIEBwYXJhbSBsYXN0X3VzZWQgdGltZSBpbiB3aGlj
aCB0aWxlLndpZHRoYXMgbGFzdCB1c2VkLgogICoKICAqIEByZXR1cm4gI3RydWUgb24gc3VjY2Vz
cyBvciAjZmFsc2Ugb24gZmFpbHVyZS4KQEAgLTUwMCw3ICs1MDAsNyBAQCBFaW5hX0Jvb2wgZXdr
X3RpbGVfbWF0cml4X3RpbGVfcHV0KEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCwgRXdrX1Rp
bGUqIHRpbGUsCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgdGlsZS0+c3RhdHMubGFzdF91
c2VkID0gbGFzdFVzZWQ7Ci0gICAgcmV0dXJuIGV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1
dCh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlLCB0aWxlLCBfZXdrX3RpbGVfbWF0cml4X3Rp
bGVfZnJlZSwgdGlsZU1hdHJpeCk7CisgICAgcmV0dXJuIGV3a190aWxlX3VudXNlZF9jYWNoZV90
aWxlX3B1dCh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUsIHRpbGUsIF9ld2tfdGlsZV9tYXRy
aXhfdGlsZV9mcmVlLCB0aWxlTWF0cml4KTsKIH0KIAogRWluYV9Cb29sIGV3a190aWxlX21hdHJp
eF90aWxlX3VwZGF0ZShFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgsIHVuc2lnbmVkIGxvbmcg
Y29sLCB1bnNpZ25lZCBsb25nIHJvdywgY29uc3QgRWluYV9SZWN0YW5nbGUqIHVwZGF0ZSkKQEAg
LTcwNiw3ICs3MDYsNyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9kYmcoY29uc3QgRXdrX1RpbGVf
TWF0cml4KiB0aWxlTWF0cml4KQogICAgICAgICAgICAgICAgIHByaW50ZigiXG4iKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIHByaW50ZigiJTNsdSwlM2x1ICUxMHA6IiwgY29sdW1uLCBy
b3csIHRpbGUpOwotICAgICAgICAgICAgcHJpbnRmKCIgWyUzbHUsJTNsdSArICVkeCVkIEAgJTAu
M2ZdJWMiLCB0aWxlLT5jb2wsIHRpbGUtPnJvdywgdGlsZS0+d2lkdGgsIHRpbGUtPmhlaWdodCwg
dGlsZS0+em9vbSwgdGlsZS0+dmlzaWJsZSA/ICcqJyA6ICcgJyk7CisgICAgICAgICAgICBwcmlu
dGYoIiBbJTNsdSwlM2x1ICsgJWR4JWQgQCAlMC4zZl0lYyIsIHRpbGUtPmNvbHVtbiwgdGlsZS0+
cm93LCB0aWxlLT53aWR0aCwgdGlsZS0+aGVpZ2h0LCB0aWxlLT56b29tLCB0aWxlLT52aXNpYmxl
ID8gJyonIDogJyAnKTsKICAgICAgICAgICAgIHByaW50ZigiXG4iKTsKICAgICAgICAgfQogICAg
IH0KQEAgLTcxNCw3ICs3MTQsNyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9kYmcoY29uc3QgRXdr
X1RpbGVfTWF0cml4KiB0aWxlTWF0cml4KQogICAgICAgICBwcmludGYoIlxuIik7CiAgICAgZWlu
YV9pdGVyYXRvcl9mcmVlKGl0ZXJhdG9yKTsKIAotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9k
YmcodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVfdW51c2VkX2Nh
Y2hlX2RiZyh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogfQogCiAvKioKQEAgLTczMCw3
ICs3MzAsNyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9mcmVlemUoRXdrX1RpbGVfTWF0cml4KiB0
aWxlTWF0cml4KQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHRpbGVNYXRyaXgp
OwogICAgIGlmICghdGlsZU1hdHJpeC0+ZnJvemVuKQotICAgICAgICBld2tfdGlsZV91bnVzZWRf
Y2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgICAgICBld2tf
dGlsZV91bnVzZWRfY2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiAg
ICAgdGlsZU1hdHJpeC0+ZnJvemVuKys7CiB9CiAKQEAgLTc1MCw1ICs3NTAsNSBAQCB2b2lkIGV3
a190aWxlX21hdHJpeF90aGF3KEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCkKIAogICAgIHRp
bGVNYXRyaXgtPmZyb3plbi0tOwogICAgIGlmICghdGlsZU1hdHJpeC0+ZnJvemVuKQotICAgICAg
ICBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGhhdyh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hl
KTsKKyAgICAgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXcodGlsZU1hdHJpeC0+dGlsZVVu
dXNlZENhY2hlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGls
ZWRfbW9kZWwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tb2RlbC5jcHAK
aW5kZXggODQwNDhjYi4uZTdkNmMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a190aWxlZF9tb2RlbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxl
ZF9tb2RlbC5jcHAKQEAgLTM0Nyw3ICszNDcsNyBAQCB2b2lkIGV3a190aWxlX3VwZGF0ZXNfcHJv
Y2VzcyhFd2tfVGlsZSogdGlsZSwgdm9pZCAoKmNhbGxiYWNrKSh2b2lkKiBkYXRhLCBFd2tfVAog
ICAgICAgICBzdHJ1Y3QgdGltZXZhbCB0aW1ldjsKICAgICAgICAgZG91YmxlIHJlbmRlcl9zdGFy
dDsKICAgICAgICAgZ2V0dGltZW9mZGF5KCZ0aW1ldiwgMCk7Ci0gICAgICAgIHJlbmRlcl9zdGFy
dGlsZSA9IChkb3VibGUpdGltZXYudHZfc2VjICsKKyAgICAgICAgcmVuZGVyX3N0YXJ0ID0gKGRv
dWJsZSl0aW1ldi50dl9zZWMgKwogICAgICAgICAgICAgICAgICAgICAgICAoKChkb3VibGUpdGlt
ZXYudHZfdXNlYykgLyAxMDAwMDAwKTsKICNlbmRpZgogICAgICAgICBjYWxsYmFjaygodm9pZCop
ZGF0YSwgdGlsZSwgJnJlY3QpOwpAQCAtNTIwLDcgKzUyMCw3IEBAIHZvaWQgZXdrX3RpbGVfdW51
c2VkX2NhY2hlX2NsZWFyKEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlKQog
fQogCiAvKioKLSAqIGhlaWdodG9sZCByZWZlcmVuY2UgdG8gY2FjaGUuCisgKiBIb2xkIHJlZmVy
ZW5jZSB0byBjYWNoZS4KICAqCiAgKiBAcmV0dXJuIHNhbWUgcG9pbnRlciBhcyB0YWtlbi4KICAq
CkBAIC02MzAsNyArNjMwLDcgQEAgdm9pZCBld2tfdGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVz
aChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSkKICAqIEZyZWV6ZSBjYWNo
ZSB0byBub3QgZG8gbWFpbnRlbmFuY2UgdGFza3MuCiAgKgogICogTWFpbnRlbmFuY2UgdGFza3Mg
b3B0aW1pemUgY2FjaGUgdXNhZ2UsIGJ1dCBtYXliZSB3ZSBrbm93IHdlIHNob3VsZAotICogaGVp
Z2h0b2xkIG9uIHRoZW0gdW50aWwgd2UgZG8gdGhlIGxhc3Qgb3BlcmF0aW9uLCBpbiB0aGlzIGNh
c2Ugd2UgZnJlZXplCisgKiBob2xkIG9uIHRoZW0gdW50aWwgd2UgZG8gdGhlIGxhc3Qgb3BlcmF0
aW9uLCBpbiB0aGlzIGNhc2Ugd2UgZnJlZXplCiAgKiB3aGlsZSBvcGVyYXRpbmcgYW5kIHRoZW4g
dGhhdyB3aGVuIHdlJ3JlIGRvbmUuCiAgKgogICogQHNlZSBld2tfdGlsZV91bnVzZWRfY2FjaGVf
dGhhdygpCkBAIC03MDcsOCArNzA3LDggQEAgRWluYV9Cb29sIGV3a190aWxlX3VudXNlZF9jYWNo
ZV90aWxlX2dldChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSwKICAqIGJl
Y2F1c2UgdXN1YWxseSB3ZSB3YW50IGEgbGF6eSBvcGVyYXRpb24gZm9yIGJldHRlciBwZXJmb3Jt
YW5jZS4KICAqCiAgKiBAcGFyYW0gdGlsZVVudXNlZENhY2hlIGNhY2hlIG9mIHVudXNlZCB0aWxl
cwotICogQHBhcmFtIHQgdGlsZSB0byBiZSBhZGRlZCB0byBjYWNoZS4KLSAqIEBwYXJhbSB0aWxl
X2ZyZWVfY2IgZnVuY3Rpb24gdXNlZCB0byBmcmVlIHRpbGVzLgorICogQHBhcmFtIHRpbGUgdGls
ZSB0byBiZSBhZGRlZCB0byBjYWNoZS4KKyAqIEBwYXJhbSB0aWxlRnJlZUNiIGZ1bmN0aW9uIHVz
ZWQgdG8gZnJlZSB0aWxlcy4KICAqIEBwYXJhbSBkYXRhIGNvbnRleHQgdG8gZ2l2ZSBiYWNrIHRv
IEBhIHRpbGVfZnJlZV9jYiBhcyBmaXJzdCBhcmd1bWVudC4KICAqCiAgKiBAcmV0dXJuICN0cnVl
IG9uIHN1Y2Nlc3MsICNmYWxzZSBvdGhlcndpc2UuIElmIEBjIHRpbGUtPnZpc2libGUKQEAgLTc1
OCw3ICs3NTgsNyBAQCB2b2lkIGV3a190aWxlX3VudXNlZF9jYWNoZV9kYmcoY29uc3QgRXdrX1Rp
bGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUpCiAgICAgRUlOQV9MSVNUX0ZPUkVBQ0go
dGlsZVVudXNlZENhY2hlLT5lbnRyaWVzLmxpc3QsIGxpc3QsIGl0ZW0pIHsKICAgICAgICAgY29u
c3QgRXdrX1RpbGUqIHRpbGUgPSBzdGF0aWNfY2FzdDxFd2tfVGlsZV9VbnVzZWRfQ2FjaGVfRW50
cnkqPihpdGVtKS0+dGlsZTsKICAgICAgICAgcHJpbnRmKCIgWyUzbHUsJTNsdSArICVkeCVkIEAg
JTAuM2ZdJWMiLAotICAgICAgICAgICAgICAgdGlsZS0+Y29sLCB0aWxlLT5yb3csIHRpbGUtPndp
ZHRoLCB0aWxlLT5oZWlnaHQsIHRpbGUtPnpvb20sCisgICAgICAgICAgICAgICB0aWxlLT5jb2x1
bW4sIHRpbGUtPnJvdywgdGlsZS0+d2lkdGgsIHRpbGUtPmhlaWdodCwgdGlsZS0+em9vbSwKICAg
ICAgICAgICAgICAgIHRpbGUtPnZpc2libGUgPyAnKicgOiAnICcpOwogCiAgICAgICAgIGlmICgh
KGNvdW50ICUgNCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCA1MzU0MDBiLi4z
MDk4MjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTI1Niw3ICsyNTYsNyBA
QCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAgICAgfQogCiAjZGVmaW5lIEVXS19W
SUVXX1BSSVZfR0VUKHNtYXJ0RGF0YSwgcHRyKSAgICAgICAgICAgICAgXAotICAgIEV3a19WaWV3
X1ByaXZhdGVfRGF0YSAqcHRyID0gc21hcnREYXRhLT5fcHJpdgorICAgIEV3a19WaWV3X1ByaXZh
dGVfRGF0YSogcHRyID0gc21hcnREYXRhLT5fcHJpdgogCiAjZGVmaW5lIEVXS19WSUVXX1BSSVZf
R0VUX09SX1JFVFVSTihzbWFydERhdGEsIHB0ciwgLi4uKSAgICAgICAgICAgICAgIFwKICAgICBF
V0tfVklFV19QUklWX0dFVChzbWFydERhdGEsIHB0cik7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXApAQCAtNDEwLDEyICs0MTAsMTIgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3Nj
cm9sbHNfZmx1c2goRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2KQogc3RhdGljIEVpbmFfQm9v
bCBfZXdrX3ZpZXdfc21hcnRfZm9jdXNfaW4oRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRh
KQogewogICAgIEVXS19WSUVXX1BSSVZfR0VUKHNtYXJ0RGF0YSwgcHJpdik7Ci0gICAgV2ViQ29y
ZTo6Rm9jdXNDb250cm9sbGVyKiBmYyA9IHByaXYtPnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpOwot
ICAgIERCRygiZXdrVmlldz0lcCwgZmM9JXAiLCBzbWFydERhdGEtPnNlbGYsIGZjKTsKLSAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZmMsIGZhbHNlKTsKKyAgICBXZWJDb3JlOjpG
b2N1c0NvbnRyb2xsZXIqIGZvY3VzQ29udHJvbGxlciA9IHByaXYtPnBhZ2UtPmZvY3VzQ29udHJv
bGxlcigpOworICAgIERCRygiZXdrVmlldz0lcCwgZm9jdXNDb250cm9sbGVyPSVwIiwgc21hcnRE
YXRhLT5zZWxmLCBmb2N1c0NvbnRyb2xsZXIpOworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChmb2N1c0NvbnRyb2xsZXIsIGZhbHNlKTsKIAotICAgIGZjLT5zZXRBY3RpdmUodHJ1
ZSk7Ci0gICAgZmMtPnNldEZvY3VzZWQodHJ1ZSk7CisgICAgZm9jdXNDb250cm9sbGVyLT5zZXRB
Y3RpdmUodHJ1ZSk7CisgICAgZm9jdXNDb250cm9sbGVyLT5zZXRGb2N1c2VkKHRydWUpOwogICAg
IHJldHVybiB0cnVlOwogfQogCkBAIC0xNzkwLDcgKzE3OTAsNyBAQCBFaW5hX0Jvb2wgZXdrX3Zp
ZXdfcHJlX3JlbmRlcl9yZWdpb24oRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfQ29vcmQgeCwg
RXZhc19DbwogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRh
LCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJp
diwgZmFsc2UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzbWFydERhdGEt
PmFwaS0+cHJlX3JlbmRlcl9yZWdpb24sIGZhbHNlKTsKLSAgICBmbG9hdCBjdXJfem9vbTsKKyAg
ICBmbG9hdCBjdXJyZW50Wm9vbTsKICAgICBFdmFzX0Nvb3JkIGNvbnRlbnRzV2lkdGgsIGNvbnRl
bnRzSGVpZ2h0OwogCiAgICAgLyogV2hlbiBkb2luZyBhbmltYXRlZCB6b29tIGl0J3Mgbm90IHBv
c3NpYmxlIHRvIGNhbGwgcHJlLXJlbmRlciBzaW5jZSBpdApAQCAtMTc5OSwxNSArMTc5OSwxNSBA
QCBFaW5hX0Jvb2wgZXdrX3ZpZXdfcHJlX3JlbmRlcl9yZWdpb24oRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIEV2YXNfQ29vcmQgeCwgRXZhc19DbwogICAgIGlmIChwcml2LT5hbmltYXRlZFpvb20uYW5p
bWF0b3IpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGN1cl96b29tID0gZXdrX2ZyYW1l
X3BhZ2Vfem9vbV9nZXQoc21hcnREYXRhLT5tYWluX2ZyYW1lKTsKKyAgICBjdXJyZW50Wm9vbSA9
IGV3a19mcmFtZV9wYWdlX3pvb21fZ2V0KHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSk7CiAKLSAgICBp
ZiAoY3VyX3pvb20gPCAwLjAwMDAxKQorICAgIGlmIChjdXJyZW50Wm9vbSA8IDAuMDAwMDEpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWV3a19mcmFtZV9jb250ZW50c19zaXplX2dl
dChzbWFydERhdGEtPm1haW5fZnJhbWUsICZjb250ZW50c1dpZHRoLCAmY29udGVudHNIZWlnaHQp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBjb250ZW50c1dpZHRoICo9IHpvb20gLyBj
dXJfem9vbTsKLSAgICBjb250ZW50c0hlaWdodCAqPSB6b29tIC8gY3VyX3pvb207CisgICAgY29u
dGVudHNXaWR0aCAqPSB6b29tIC8gY3VycmVudFpvb207CisgICAgY29udGVudHNIZWlnaHQgKj0g
em9vbSAvIGN1cnJlbnRab29tOwogICAgIERCRygicmVnaW9uICVkLCVkKyVkeCVkIEAgJWYgY29u
dGVudHM9JWR4JWQiLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCB6b29tLCBjb250ZW50c1dpZHRoLCBj
b250ZW50c0hlaWdodCk7CiAKICAgICBpZiAoeCArIHdpZHRoID4gY29udGVudHNXaWR0aCkKQEAg
LTI5NTcsOCArMjk1Nyw4IEBAIHZvaWQgZXdrX3ZpZXdfcmVzdG9yZV9zdGF0ZShFdmFzX09iamVj
dCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lKQogICogQHBhcmFtIGV3a1ZpZXcgQ3VycmVu
dCB2aWV3LgogICogQHBhcmFtIGphdmFzY3JpcHQgQGMgdHJ1ZSBpZiB0aGUgbmV3IHdpbmRvdyBp
cyBvcmlnaW5hdGVkIGZyb20gamF2YXNjcmlwdCwKICAqIEBjIGZhbHNlIG90aGVyd2lzZQotICog
QHBhcmFtIHdpZHRoaW5kb3dfZmVhdHVyZXMgRmVhdHVyZXMgb2YgdGhlIG5ldyB3aW5kb3cgYmVp
bmcgY3JlYXRlZC4gSWYgaXQncyBAYwotICogTlVMTCwgaXQgd2lsbCBiZSBjcmVhdGVkIGEgd2lu
ZG93IHdpdGggZGVmYXVsdCBmZWF0dXJlcy4KKyAqIEBwYXJhbSB3aW5kb3dfZmVhdHVyZXMgRmVh
dHVyZXMgb2YgdGhlIG5ldyB3aW5kb3cgYmVpbmcgY3JlYXRlZC4gSWYgaXQncyBAYworICogMCwg
aXQgd2lsbCBiZSBjcmVhdGVkIGEgd2luZG93IHdpdGggZGVmYXVsdCBmZWF0dXJlcy4KICAqCiAg
KiBAcmV0dXJuIE5ldyB2aWV3LCBpbiBjYXNlIHNtYXJ0IGNsYXNzIGltcGxlbWVudHMgdGhlIGNy
ZWF0aW9uIG9mIG5ldyB3aW5kb3dzOwogICogZWxzZSwgY3VycmVudCB2aWV3IEBwYXJhbSBld2tW
aWV3IG9yIEBjIDAgb24gZmFpbHVyZS4KQEAgLTMwNTAsNyArMzA1MCw3IEBAIHZvaWQgZXdrX3Zp
ZXdfdG9vbGJhcnNfdmlzaWJsZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgdmlzaWJs
ZSkKICAqLwogdm9pZCBld2tfdmlld190b29sYmFyc192aXNpYmxlX2dldChFdmFzX09iamVjdCog
ZXdrVmlldywgYm9vbCogdmlzaWJsZSkKIHsKLSAgICBEQkcoIiVzLCBvPSVwIiwgX19mdW5jX18s
IGV3a1ZpZXcpOworICAgIERCRygiJXMsIGV3a1ZpZXc9JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7
CiAgICAgKnZpc2libGUgPSBmYWxzZTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19j
YWxsKGV3a1ZpZXcsICJ0b29sYmFycyx2aXNpYmxlLGdldCIsIHZpc2libGUpOwogfQpAQCAtMzA4
Myw3ICszMDgzLDcgQEAgdm9pZCBld2tfdmlld19zdGF0dXNiYXJfdmlzaWJsZV9zZXQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGJvb2wgIHZpc2libGUpCiAgKi8KIHZvaWQgZXdrX3ZpZXdfc3RhdHVz
YmFyX3Zpc2libGVfZ2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sKiB2aXNpYmxlKQogewot
ICAgIERCRygiJXMsIG89JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CisgICAgREJHKCIlcywgZXdr
Vmlldz0lcCIsIF9fZnVuY19fLCBld2tWaWV3KTsKICAgICAqdmlzaWJsZSA9IGZhbHNlOwogICAg
IGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgInN0YXR1c2Jhcix2aXNp
YmxlLGdldCIsIHZpc2libGUpOwogfQpAQCAtMzEzMiw3ICszMTMyLDcgQEAgdm9pZCBld2tfdmll
d19zY3JvbGxiYXJzX3Zpc2libGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIHZpc2li
bGUpCiAgKi8KIHZvaWQgZXdrX3ZpZXdfc2Nyb2xsYmFyc192aXNpYmxlX2dldChFdmFzX09iamVj
dCogZXdrVmlldywgYm9vbCogdmlzaWJsZSkKIHsKLSAgICBEQkcoIiVzLCBvPSVwIiwgX19mdW5j
X18sIGV3a1ZpZXcpOworICAgIERCRygiJXMsIGV3a1ZpZXc9JXAiLCBfX2Z1bmNfXywgZXdrVmll
dyk7CiAgICAgKnZpc2libGUgPSBmYWxzZTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFj
a19jYWxsKGV3a1ZpZXcsICJzY3JvbGxiYXJzLHZpc2libGUsZ2V0IiwgdmlzaWJsZSk7CiB9CkBA
IC0zMTY1LDcgKzMxNjUsNyBAQCB2b2lkIGV3a192aWV3X21lbnViYXJfdmlzaWJsZV9zZXQoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgdmlzaWJsZSkKICAqLwogdm9pZCBld2tfdmlld19tZW51
YmFyX3Zpc2libGVfZ2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sKiB2aXNpYmxlKQogewot
ICAgIERCRygiJXMsIG89JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CisgICAgREJHKCIlcywgZXdr
Vmlldz0lcCIsIF9fZnVuY19fLCBld2tWaWV3KTsKICAgICAqdmlzaWJsZSA9IGZhbHNlOwogICAg
IGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgIm1lbnViYXIsdmlzaWJs
ZSxnZXQiLCB2aXNpYmxlKTsKIH0KQEAgLTM1OTEsNyArMzU5MSw3IEBAIEVpbmFfQm9vbCBld2tf
dmlld196b29tX3JhbmdlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgZmxvYXQgbWluU2NhbGUs
IGZsb2F0IG1hCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJp
diwgZmFsc2UpOwogCiAgICAgaWYgKG1heFNjYWxlIDwgbWluU2NhbGUpIHsKLSAgICAgICAgV1JO
KCJtaW5fc2NhbGUgaXMgbGFyZ2VyIHRoYW4gbWF4X3NjYWxlIik7CisgICAgICAgIFdSTigibWlu
U2NhbGUgaXMgbGFyZ2VyIHRoYW4gbWF4U2NhbGUiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3Npbmds
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfc2luZ2xlLmNwcAppbmRleCBl
ZDcyNjMzLi44Zjc0OTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXdfc2luZ2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfc2luZ2xl
LmNwcApAQCAtOSw3ICs5LDcgQEAKIAogICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSY2hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQogICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgogCiAgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQpAQCAtMjA5LDggKzIwOSw4IEBA
IHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NpbmdsZV9zbWFydF9yZXBhaW50c19wcm9jZXNz
KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtCiAgICAgRXZhc19Db29yZCBvdywgb2g7CiAgICAgdm9p
ZCogcGl4ZWxzOwogICAgIEVpbmFfUmVjdGFuZ2xlKiByZWN0OwotICAgIGNvbnN0IEVpbmFfUmVj
dGFuZ2xlKiBwcjsKLSAgICBjb25zdCBFaW5hX1JlY3RhbmdsZSogcHJfZW5kOworICAgIGNvbnN0
IEVpbmFfUmVjdGFuZ2xlKiBwYWludFJlcXVlc3Q7CisgICAgY29uc3QgRWluYV9SZWN0YW5nbGUq
IHBhaW50UmVxdWVzdEVuZDsKICAgICBFaW5hX1RpbGVyKiB0aWxlcjsKICAgICBFaW5hX0l0ZXJh
dG9yKiBpdGVyYXRvcjsKICAgICBjYWlyb19zdGF0dXNfdCBzdGF0dXM7CkBAIC0yNzcsMTAgKzI3
NywxMCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zaW5nbGVfc21hcnRfcmVwYWludHNf
cHJvY2VzcyhFd2tfVmlld19TbWFydF9EYXRhKiBzbQogCiAgICAgZXdrX3ZpZXdfbGF5b3V0X2lm
X25lZWRlZF9yZWN1cnNpdmUoc21hcnREYXRhLT5fcHJpdik7CiAKLSAgICBwciA9IGV3a192aWV3
X3JlcGFpbnRzX3BvcChzbWFydERhdGEtPl9wcml2LCAmY291bnQpOwotICAgIHByX2VuZCA9IHBy
ICsgY291bnQ7Ci0gICAgZm9yICg7IHByIDwgcHJfZW5kOyBwcisrKQotICAgICAgICBlaW5hX3Rp
bGVyX3JlY3RfYWRkKHRpbGVyLCBwcik7CisgICAgcGFpbnRSZXF1ZXN0ID0gZXdrX3ZpZXdfcmVw
YWludHNfcG9wKHNtYXJ0RGF0YS0+X3ByaXYsICZjb3VudCk7CisgICAgcGFpbnRSZXF1ZXN0RW5k
ID0gcGFpbnRSZXF1ZXN0ICsgY291bnQ7CisgICAgZm9yICg7IHBhaW50UmVxdWVzdCA8IHBhaW50
UmVxdWVzdEVuZDsgcGFpbnRSZXF1ZXN0KyspCisgICAgICAgIGVpbmFfdGlsZXJfcmVjdF9hZGQo
dGlsZXIsIHBhaW50UmVxdWVzdCk7CiAKICAgICBpdGVyYXRvciA9IGVpbmFfdGlsZXJfaXRlcmF0
b3JfbmV3KHRpbGVyKTsKICAgICBpZiAoIWl0ZXJhdG9yKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a192aWV3X3RpbGVkLmNwcAppbmRleCAzMTAxYzEyLi41YThkMTdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKQEAgLTc3LDEyICs3NywxMiBAQCBzdGF0aWMg
dm9pZCogX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJvY2Vzc19wcmUodm9pZCogZGF0YSwgRXZh
c19PYmplY3QqIGV3a1ZpZQogCiBzdGF0aWMgRXZhc19PYmplY3QqIF9ld2tfdmlld190aWxlZF9z
bWFydF9iYWNraW5nX3N0b3JlX2FkZChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiB7
Ci0gICAgRXZhc19PYmplY3QqIGJzID0gZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfYWRkKHNtYXJ0
RGF0YS0+YmFzZS5ldmFzKTsKKyAgICBFdmFzX09iamVjdCogYmFja2luZ1N0b3JlID0gZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfYWRkKHNtYXJ0RGF0YS0+YmFzZS5ldmFzKTsKICAgICBld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9yZW5kZXJfY2Jfc2V0Ci0gICAgICAgIChicywgX2V3a192aWV3X3Rp
bGVkX3JlbmRlcl9jYiwgc21hcnREYXRhLT5fcHJpdik7CisgICAgICAgIChiYWNraW5nU3RvcmUs
IF9ld2tfdmlld190aWxlZF9yZW5kZXJfY2IsIHNtYXJ0RGF0YS0+X3ByaXYpOwogICAgIGV3a190
aWxlZF9iYWNraW5nX3N0b3JlX3VwZGF0ZXNfcHJvY2Vzc19wcmVfc2V0Ci0gICAgICAgIChicywg
X2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJvY2Vzc19wcmUsIHNtYXJ0RGF0YS0+X3ByaXYpOwot
ICAgIHJldHVybiBiczsKKyAgICAgICAgKGJhY2tpbmdTdG9yZSwgX2V3a192aWV3X3RpbGVkX3Vw
ZGF0ZXNfcHJvY2Vzc19wcmUsIHNtYXJ0RGF0YS0+X3ByaXYpOworICAgIHJldHVybiBiYWNraW5n
U3RvcmU7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC05NywxNyArOTcsMTcgQEAgX2V3a192aWV3X3Rp
bGVkX2NvbnRlbnRzX3NpemVfY2hhbmdlZF9jYih2b2lkKiBkYXRhLCBFdmFzX09iamVjdCogZXdr
Vmlldywgdm9pZCoKIAogc3RhdGljIHZvaWQgX2V3a192aWV3X3RpbGVkX3NtYXJ0X2FkZChFdmFz
X09iamVjdCogZXdrVmlldykKIHsKLSAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzZDsKKyAgICBF
d2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGE7CiAKICAgICBfcGFyZW50X3NjLnNjLmFkZChl
d2tWaWV3KTsKIAotICAgIHNkID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGV2
YXNfb2JqZWN0X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpKTsKLSAgICBpZiAoIXNkKQorICAgIHNt
YXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihldmFzX29iamVjdF9z
bWFydF9kYXRhX2dldChld2tWaWV3KSk7CisgICAgaWYgKCFzbWFydERhdGEpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCgKLSAgICAgICAgc2Qt
Pm1haW5fZnJhbWUsICJjb250ZW50cyxzaXplLGNoYW5nZWQiLAotICAgICAgICBfZXdrX3ZpZXdf
dGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2NiLCBzZCk7CisgICAgICAgIHNtYXJ0RGF0YS0+
bWFpbl9mcmFtZSwgImNvbnRlbnRzLHNpemUsY2hhbmdlZCIsCisgICAgICAgIF9ld2tfdmlld190
aWxlZF9jb250ZW50c19zaXplX2NoYW5nZWRfY2IsIHNtYXJ0RGF0YSk7CiB9CiAKIHN0YXRpYyBF
aW5hX0Jvb2wgX2V3a192aWV3X3RpbGVkX3NtYXJ0X3Njcm9sbHNfcHJvY2VzcyhFd2tfVmlld19T
bWFydF9EYXRhKiBzbWFydERhdGEpCkBAIC0zOTIsMTQgKzM5MiwxNCBAQCBFdmFzX09iamVjdCog
ZXdrX3ZpZXdfdGlsZWRfYWRkKEV2YXMqIGNhbnZhcykKIAogRXdrX1RpbGVfVW51c2VkX0NhY2hl
KiBld2tfdmlld190aWxlZF91bnVzZWRfY2FjaGVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tW
aWV3KQogewotICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gZXdrX3ZpZXdfc21hcnRfZGF0
YV9nZXQoZXdrVmlldyk7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNkLCAw
KTsKLSAgICByZXR1cm4gZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2FjaGVf
Z2V0KHNkLT5iYWNraW5nX3N0b3JlKTsKKyAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERh
dGEgPSBld2tfdmlld19zbWFydF9kYXRhX2dldChld2tWaWV3KTsKKyAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTl9WQUwoc21hcnREYXRhLCAwKTsKKyAgICByZXR1cm4gZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2FjaGVfZ2V0KHNtYXJ0RGF0YS0+YmFja2luZ19zdG9y
ZSk7CiB9CiAKIHZvaWQgZXdrX3ZpZXdfdGlsZWRfdW51c2VkX2NhY2hlX3NldChFdmFzX09iamVj
dCogZXdrVmlldywgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiBjYWNoZSkKIHsKLSAgICBFd2tfVmll
d19TbWFydF9EYXRhKiBzZCA9IGV3a192aWV3X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpOwotICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNkKTsKLSAgICBld2tfdGlsZWRfYmFja2luZ19z
dG9yZV90aWxlX3VudXNlZF9jYWNoZV9zZXQoc2QtPmJhY2tpbmdfc3RvcmUsIGNhY2hlKTsKKyAg
ICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBld2tfdmlld19zbWFydF9kYXRhX2dl
dChld2tWaWV3KTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihzbWFydERhdGEpOwor
ICAgIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfdW51c2VkX2NhY2hlX3NldChzbWFydERh
dGEtPmJhY2tpbmdfc3RvcmUsIGNhY2hlKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122636</attachid>
            <date>2012-01-16 07:39:08 -0800</date>
            <delta_ts>2012-01-16 22:13:26 -0800</delta_ts>
            <desc>revised patch</desc>
            <filename>style_check_revised.patch</filename>
            <type>text/plain</type>
            <size>62124</size>
            <attacher name="JungJik Lee">jungjik.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCBkMjE1MDQxLi44MmI0MTMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNzYgQEAKKzIwMTItMDEtMTYgIEp1bmdKaWsgTGVlICA8anVuZ2ppay5sZWVAc2Ft
c3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRhcHQgQysrIHN0eWxlIGFuZCBNb2RpZnkgdG8g
d2Via2l0LXN0eWxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzYzNzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNb2RpZnkgdGhlIGNvZGUgdG8gd2Via2l0LXN0eWxlIGFuZCBhZGFwdCB0byBDKysgc3R5
bGUgbmFtaW5nLgorICAgICAgICBUaGUgbG9naWMgb2YgdGhlIGNvZGUgaXMgbm90IGNoYW5nZWQu
CisKKyAgICAgICAgKiBld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuY3BwOgorICAgICAgICAo
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfYXNzb2NpYXRlKToKKyAgICAgICAgKF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Rpc3NvY2lhdGUpOgorICAgICAgICAoX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9wcm9jZXNzX3NpbmdsZSk6CisgICAg
ICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKToKKyAgICAgICAgKF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfaXRlbV9zbW9vdGhfc2NhbGVfc2V0KToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV92aWV3X2NvbHNfZW5kX2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfdmlld19yb3dzX2FsbF9kZWwpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3JlbmRlcik6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfbWVtX2Ri
Zyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2lnX3Vzcik6CisgICAgICAg
IChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRkKToKKyAgICAgICAgKF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9yZWNhbGNfcmVuZGVyZXJzKToKKyAgICAgICAgKF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV92aWV3X2RiZyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfdmlld193cmFwX2xlZnQpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Zp
ZXdfcmVmaWxsKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bvc19h
cHBseSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfY2FsY3VsYXRl
X29mZnNldF9mb3JjZSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRf
Y2FsY3VsYXRlX29mZnNldCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21h
cnRfY2FsY3VsYXRlX3Bvcyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21h
cnRfY2FsY3VsYXRlKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxf
ZnVsbF9vZmZzZXRfc2V0X2ludGVybmFsKToKKyAgICAgICAgKGV3a190aWxlZF9iYWNraW5nX3N0
b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXQpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfem9vbV9zZXRfaW50ZXJuYWwpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfem9vbV93ZWFrX3NldCk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9m
aXhfb2Zmc2V0cyk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9mbHVzaCk6Cisg
ICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lvbik6CisgICAg
ICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlbGF0aXZlX3JhZGl1cyk6
CisgICAgICAgICogZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmg6CisgICAgICAgICogZXdr
L2V3a190aWxlZF9tYXRyaXguY3BwOgorICAgICAgICAoX2V3a190aWxlX21hdHJpeF9jZWxsX2Zy
ZWUpOgorICAgICAgICAoX2V3a190aWxlX21hdHJpeF90aWxlX2ZyZWUpOgorICAgICAgICAoZXdr
X3RpbGVfbWF0cml4X25ldyk6CisgICAgICAgIChld2tfdGlsZV9tYXRyaXhfZnJlZSk6CisgICAg
ICAgIChld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldCk6CisgICAgICAgIChld2tfdGls
ZV9tYXRyaXhfdGlsZV9leGFjdF9nZXQpOgorICAgICAgICAoZXdrX3RpbGVfbWF0cml4X3RpbGVf
bmV3KToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF90aWxlX3B1dCk6CisgICAgICAgIChld2tf
dGlsZV9tYXRyaXhfZGJnKToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF9mcmVlemUpOgorICAg
ICAgICAoZXdrX3RpbGVfbWF0cml4X3RoYXcpOgorICAgICAgICAqIGV3ay9ld2tfdGlsZWRfbW9k
ZWwuY3BwOgorICAgICAgICAoZXdrX3RpbGVfdXBkYXRlc19wcm9jZXNzKToKKyAgICAgICAgKGV3
a190aWxlX3VudXNlZF9jYWNoZV9kYmcpOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6Cisg
ICAgICAgIChfZXdrX3ZpZXdfc21hcnRfZm9jdXNfaW4pOgorICAgICAgICAoZXdrX3ZpZXdfcHJl
X3JlbmRlcl9yZWdpb24pOgorICAgICAgICAoZXdrX3ZpZXdfdG9vbGJhcnNfdmlzaWJsZV9nZXQp
OgorICAgICAgICAoZXdrX3ZpZXdfc3RhdHVzYmFyX3Zpc2libGVfZ2V0KToKKyAgICAgICAgKGV3
a192aWV3X3Njcm9sbGJhcnNfdmlzaWJsZV9nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfbWVudWJh
cl92aXNpYmxlX2dldCk6CisgICAgICAgIChld2tfdmlld196b29tX3JhbmdlX3NldCk6CisgICAg
ICAgICogZXdrL2V3a192aWV3X3NpbmdsZS5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfc2luZ2xl
X3NtYXJ0X3JlcGFpbnRzX3Byb2Nlc3MpOgorICAgICAgICAqIGV3ay9ld2tfdmlld190aWxlZC5j
cHA6CisgICAgICAgIChfZXdrX3ZpZXdfdGlsZWRfc21hcnRfYmFja2luZ19zdG9yZV9hZGQpOgor
ICAgICAgICAoX2V3a192aWV3X3RpbGVkX3NtYXJ0X2FkZCk6CisgICAgICAgIChld2tfdmlld190
aWxlZF91bnVzZWRfY2FjaGVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3RpbGVkX3VudXNlZF9j
YWNoZV9zZXQpOgorCiAyMDEyLTAxLTE2ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5n
LmNvbT4KIAogICAgICAgICBbRUZMXSBCdWlsZCBmaXggd2hlbiB1c2luZyBwYW5nbyBhcyBmb250
IGJhY2tlbmRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9i
YWNraW5nX3N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZS5jcHAKaW5kZXggZmZjNjcxYy4uY2M1MTBhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuY3BwCkBAIC00NSw3ICs0NSw3IEBA
IHN0cnVjdCBfRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSB7CiAgICAgc3RydWN0IHsKICAg
ICAgICAgRXZhc19Db29yZCB4LCB5LCB3aWR0aCwgaGVpZ2h0OwogICAgIH0gZ2VvbWV0cnk7Ci0g
ICAgYm9vbCBzbW9vdGhfc2NhbGU7CisgICAgYm9vbCBzbW9vdGhTY2FsZTsKIH07CiAKIHN0cnVj
dCBfRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfUHJlX1JlbmRlcl9SZXF1ZXN0IHsKQEAgLTYxLDcg
KzYxLDcgQEAgc3RydWN0IF9Fd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhIHsKICAgICBzdHJ1
Y3QgewogICAgICAgICBFaW5hX0lubGlzdCoqIGl0ZW1zOwogICAgICAgICBFdmFzX0Nvb3JkIHgs
IHksIHdpZHRoLCBoZWlnaHQ7Ci0gICAgICAgIGxvbmcgY29scywgcm93czsKKyAgICAgICAgbG9u
ZyBjb2x1bW5zLCByb3dzOwogICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgRXZhc19Db29y
ZCB3aWR0aCwgaGVpZ2h0OwogICAgICAgICAgICAgZmxvYXQgem9vbTsKQEAgLTcxLDcgKzcxLDcg
QEAgc3RydWN0IF9Fd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhIHsKICAgICAgICAgc3RydWN0
IHsKICAgICAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICAgICAgRXZhc19Db29yZCB4LCB5
OwotICAgICAgICAgICAgfSBjdXIsIG9sZCwgYmFzZSwgem9vbUNlbnRlcjsKKyAgICAgICAgICAg
IH0gY3VycmVudCwgb2xkLCBiYXNlLCB6b29tQ2VudGVyOwogICAgICAgICB9IG9mZnNldDsKICAg
ICAgICAgYm9vbCB2aXNpYmxlIDogMTsKICAgICB9IHZpZXc7CkBAIC0xMDgsNyArMTA4LDcgQEAg
c3RydWN0IF9Fd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhIHsKICAgICAgICAgYm9vbCBvZmZz
ZXQgOiAxOwogICAgIH0gY2hhbmdlZDsKICNpZmRlZiBERUJVR19NRU1fTEVBS1MKLSAgICBFY29y
ZV9FdmVudF9IYW5kbGVyKiBzaWdfdXNyOworICAgIEVjb3JlX0V2ZW50X0hhbmRsZXIqIHNpZ25h
bFVzZXI7CiAjZW5kaWYKIH07CiAKQEAgLTIwMywxMyArMjAzLDEzIEBAIHN0YXRpYyB2b2lkIF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Jlc2l6ZShFd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9JdGVtKiBpCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV9hc3Nv
Y2lhdGUoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiwgRXdrX1RpbGUqIHRpbGUs
IEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0ZW0pCiB7CiAgICAgaWYgKGl0ZW0tPnRp
bGUpCi0gICAgICAgIENSSVRJQ0FMKCJpdC0+dGlsZT0lcCwgYnV0IGl0IHNob3VsZCBiZSAwISIs
IGl0ZW0tPnRpbGUpOworICAgICAgICBDUklUSUNBTCgiaXRlbS0+dGlsZT0lcCwgYnV0IGl0IHNo
b3VsZCBiZSAwISIsIGl0ZW0tPnRpbGUpOwogICAgIGl0ZW0tPnRpbGUgPSB0aWxlOwogICAgIGV2
YXNfb2JqZWN0X21vdmUoaXRlbS0+dGlsZS0+aW1hZ2UsIGl0ZW0tPmdlb21ldHJ5LngsIGl0ZW0t
Pmdlb21ldHJ5LnkpOwogICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShpdGVtLT50aWxlLT5pbWFnZSwg
aXRlbS0+Z2VvbWV0cnkud2lkdGgsIGl0ZW0tPmdlb21ldHJ5LmhlaWdodCk7CiAgICAgZXZhc19v
YmplY3RfaW1hZ2VfZmlsbF9zZXQKICAgICAgICAgKGl0ZW0tPnRpbGUtPmltYWdlLCAwLCAwLCBp
dGVtLT5nZW9tZXRyeS53aWR0aCwgaXRlbS0+Z2VvbWV0cnkuaGVpZ2h0KTsKLSAgICBldmFzX29i
amVjdF9pbWFnZV9zbW9vdGhfc2NhbGVfc2V0KGl0ZW0tPnRpbGUtPmltYWdlLCBpdGVtLT5zbW9v
dGhfc2NhbGUpOworICAgIGV2YXNfb2JqZWN0X2ltYWdlX3Ntb290aF9zY2FsZV9zZXQoaXRlbS0+
dGlsZS0+aW1hZ2UsIGl0ZW0tPnNtb290aFNjYWxlKTsKICAgICBldmFzX29iamVjdF9pbWFnZV9h
bHBoYV9zZXQoaXRlbS0+dGlsZS0+aW1hZ2UsIHByaXYtPnZpZXcudGlsZS5oYXNBbHBoYSk7CiAK
ICAgICBpZiAoIWV3a190aWxlX3Zpc2libGVfZ2V0KHRpbGUpKQpAQCAtMjIwLDEzICsyMjAsMTMg
QEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfYXNzb2NpYXRlKEV3
a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKIAogc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3RpbGVfZGlzc29jaWF0ZShFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBw
cml2LCBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVtLCBkb3VibGUgbGFzdFVzZWQp
CiB7Ci0gICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlZFVudXNlZENhY2hlOworICAgIEV3
a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlOwogICAgIGV3a190aWxlX2hpZGUo
aXRlbS0+dGlsZSk7CiAgICAgaWYgKCFld2tfdGlsZV92aXNpYmxlX2dldChpdGVtLT50aWxlKSkK
ICAgICAgICAgZXZhc19vYmplY3Rfc21hcnRfbWVtYmVyX2RlbChpdGVtLT50aWxlLT5pbWFnZSk7
CiAgICAgZXdrX3RpbGVfbWF0cml4X3RpbGVfcHV0KHByaXYtPm1vZGVsLm1hdHJpeCwgaXRlbS0+
dGlsZSwgbGFzdFVzZWQpOwotICAgIHRpbGVkVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9tYXRyaXhf
dW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgpOwotICAgIGV3a190aWxlX3VudXNl
ZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGVkVW51c2VkQ2FjaGUpOworICAgIHRpbGVVbnVzZWRDYWNo
ZSA9IGV3a190aWxlX21hdHJpeF91bnVzZWRfY2FjaGVfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7
CisgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2F1dG9fZmx1c2godGlsZVVudXNlZENhY2hlKTsK
IAogICAgIGl0ZW0tPnRpbGUgPSAwOwogfQpAQCAtMzA0LDE0ICszMDQsMTQgQEAgc3RhdGljIHZv
aWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9jbGVhcihFd2tf
VGlsZWRfQmFja2luZ18KICAgICB9CiB9CiAKLS8qIGFzc3VtZXMgcHJpdi0+cHJvY2Vzcy5wcmVf
Y2Igd2FzIGNhbGxlZCBpZiByZXF1aXJlZCEgKi8KKy8qIGFzc3VtZXMgcHJpdi0+cHJvY2Vzcy5w
cmVDYWxsYmFjayB3YXMgY2FsbGVkIGlmIHJlcXVpcmVkISAqLwogc3RhdGljIHZvaWQgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9wcm9jZXNzX3NpbmdsZShFd2tf
VGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2KQogewogICAgIEV3a19UaWxlZF9CYWNraW5n
X1N0b3JlX1ByZV9SZW5kZXJfUmVxdWVzdCogcmVxdWVzdDsKICAgICBFaW5hX1JlY3RhbmdsZSBh
cmVhOwogICAgIEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCA9IHByaXYtPm1vZGVsLm1hdHJp
eDsKICAgICBFd2tfVGlsZSogdGlsZTsKLSAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVk
VW51c2VkQ2FjaGU7CisgICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGU7
CiAgICAgdW5zaWduZWQgbG9uZyBjb2x1bW4sIHJvdzsKICAgICBmbG9hdCB6b29tOwogICAgIGRv
dWJsZSBsYXN0X3VzZWQgPSBlY29yZV9sb29wX3RpbWVfZ2V0KCk7CkBAIC0zNDgsOCArMzQ4LDgg
QEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVz
dF9wcm9jZXNzX3NpbmdsZShFd2tfVGlsZWQKIAogZW5kOgogICAgIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfZGVsKHByaXYsIHJlcXVlc3QpOwotICAgIHRpbGVk
VW51c2VkQ2FjaGUgPSBld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5tb2Rl
bC5tYXRyaXgpOwotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGVkVW51
c2VkQ2FjaGUpOworICAgIHRpbGVVbnVzZWRDYWNoZSA9IGV3a190aWxlX21hdHJpeF91bnVzZWRf
Y2FjaGVfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7CisgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hl
X2F1dG9fZmx1c2godGlsZVVudXNlZENhY2hlKTsKIH0KIAogc3RhdGljIEVpbmFfQm9vbCBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9wcm9jZXNzX2lkbGVyX2NiKHZvaWQqIGRhdGEpCkBA
IC00MzAsMTggKzQzMCwxOCBAQCBzdGF0aWMgaW5saW5lIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfaXRlbV9maWxsKEV3a19UaWxlZF9CYWNraW5nX1N0bwogCiAgICAgICAgIGlm
IChpdGVtLT50aWxlKSB7CiAgICAgICAgICAgICBFd2tfVGlsZSogb2xkID0gaXRlbS0+dGlsZTsK
LSAgICAgICAgICAgIGlmIChvbGQtPnJvdyAhPSBjdXJyZW50Um93IHx8IG9sZC0+Y29sICE9IGN1
cnJlbnRDb2x1bW4gfHwgb2xkLT56b29tICE9IHpvb20pCisgICAgICAgICAgICBpZiAob2xkLT5y
b3cgIT0gY3VycmVudFJvdyB8fCBvbGQtPmNvbHVtbiAhPSBjdXJyZW50Q29sdW1uIHx8IG9sZC0+
em9vbSAhPSB6b29tKQogICAgICAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV90
aWxlX2Rpc3NvY2lhdGUocHJpdiwgaXRlbSwgbGFzdFVzZWQpOwotICAgICAgICAgICAgZWxzZSBp
ZiAob2xkLT5yb3cgPT0gY3VycmVudFJvdyAmJiBvbGQtPmNvbCA9PSBjdXJyZW50Q29sdW1uICYm
IG9sZC0+em9vbSA9PSB6b29tKQorICAgICAgICAgICAgZWxzZSBpZiAob2xkLT5yb3cgPT0gY3Vy
cmVudFJvdyAmJiBvbGQtPmNvbHVtbiA9PSBjdXJyZW50Q29sdW1uICYmIG9sZC0+em9vbSA9PSB6
b29tKQogICAgICAgICAgICAgICAgIGdvdG8gZW5kOwogICAgICAgICB9CiAKICAgICAgICAgdGls
ZSA9IGV3a190aWxlX21hdHJpeF90aWxlX2V4YWN0X2dldChwcml2LT5tb2RlbC5tYXRyaXgsIGN1
cnJlbnRDb2x1bW4sIGN1cnJlbnRSb3csIHpvb20pOwogCiAgICAgICAgIGlmICghdGlsZSkgewot
ICAgICAgICAgICAgLyogTk9URTogaXQgbmV2ZXIgcmV0dXJucyAwIGlmIGl0LT50aWxlIHdhcyBz
ZXQhICovCisgICAgICAgICAgICAvKiBOT1RFOiBpdCBuZXZlciByZXR1cm5zIDAgaWYgaXRlbS0+
dGlsZSB3YXMgc2V0ISAqLwogICAgICAgICAgICAgaWYgKGl0ZW0tPnRpbGUpIHsKLSAgICAgICAg
ICAgICAgICBDUklUSUNBTCgiaXQtPnRpbGU9JXAsIGJ1dCBpdCBzaG91bGQgYmUgMCEiLCBpdGVt
LT50aWxlKTsKKyAgICAgICAgICAgICAgICBDUklUSUNBTCgiaXRlbS0+dGlsZT0lcCwgYnV0IGl0
IHNob3VsZCBiZSAwISIsIGl0ZW0tPnRpbGUpOwogICAgICAgICAgICAgICAgIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV90aWxlX2Rpc3NvY2lhdGUocHJpdiwgaXRlbSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RVc2VkKTsKICAg
ICAgICAgICAgIH0KQEAgLTQ4Niw3ICs0ODYsNyBAQCBzdGF0aWMgRXdrX1RpbGVkX0JhY2tpbmdf
U3RvcmVfSXRlbSogX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fYWRkKEV3a19UaWxlZAog
CiAgICAgaXRlbS0+dGlsZSA9IDA7CiAKLSAgICBpdGVtLT5zbW9vdGhfc2NhbGUgPSBwcml2LT52
aWV3LnRpbGUuem9vbVdlYWtTbW9vdGhTY2FsZTsKKyAgICBpdGVtLT5zbW9vdGhTY2FsZSA9IHBy
aXYtPnZpZXcudGlsZS56b29tV2Vha1Ntb290aFNjYWxlOwogICAgIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9pdGVtX21vdmUoaXRlbSwgeCwgeSk7CiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX2l0ZW1fcmVzaXplKGl0ZW0sIHRpbGVXaWR0aCwgdGlsZUhlaWdodCk7CiAgICAgaWYgKCFf
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKHByaXYsIGl0ZW0sIGNvbHVtbiwgcm93
KSkgewpAQCAtNTA5LDcgKzUwOSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9pdGVtX2RlbChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2CiAKIHN0YXRp
YyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Ntb290aF9zY2FsZV9zZXQoRXdr
X1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbSwgRWluYV9Cb29sIHNtb290aFNjYWxlKQog
ewotICAgIGlmIChpdGVtLT5zbW9vdGhfc2NhbGUgPT0gc21vb3RoU2NhbGUpCisgICAgaWYgKGl0
ZW0tPnNtb290aFNjYWxlID09IHNtb290aFNjYWxlKQogICAgICAgICByZXR1cm47CiAKICAgICBp
ZiAoaXRlbS0+dGlsZSkKQEAgLTU0OCwxNiArNTQ4LDE2IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfY29sc19lbmRfYWRkKEV3a19UaWxlZF9CYWNraW5n
X1N0CiAgICAgdW5zaWduZWQgaW50IGksIHJvdyA9IHJvd0xpc3QgLSBwcml2LT52aWV3Lml0ZW1z
OwogCiAgICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyssIGJhc2VDb2x1bW4rKykgewotICAg
ICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdDsKKyAgICAgICAgRXdrX1RpbGVk
X0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbTsKIAotICAgICAgICBpdCA9IF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9pdGVtX2FkZChwcml2LCBiYXNlQ29sdW1uLCByb3cpOwotICAgICAgICBpZiAo
IWl0KSB7CisgICAgICAgIGl0ZW0gPSBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9hZGQo
cHJpdiwgYmFzZUNvbHVtbiwgcm93KTsKKyAgICAgICAgaWYgKCFpdGVtKSB7CiAgICAgICAgICAg
ICBDUklUSUNBTCgiZmFpbGVkIHRvIGFkZCBjb2x1bW4gJXUgb2YgJXUgaW4gcm93ICV1LiIsIGks
IGNvdW50LCByb3cpOwogICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdf
Y29sc19lbmRfZGVsKHByaXYsIHJvd0xpc3QsIGkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICB9CiAKLSAgICAgICAgKnJvd0xpc3QgPSBlaW5hX2lubGlzdF9hcHBlbmQoKnJv
d0xpc3QsIEVJTkFfSU5MSVNUX0dFVChpdCkpOworICAgICAgICAqcm93TGlzdCA9IGVpbmFfaW5s
aXN0X2FwcGVuZCgqcm93TGlzdCwgRUlOQV9JTkxJU1RfR0VUKGl0ZW0pKTsKICAgICB9CiAgICAg
cmV0dXJuIHRydWU7CiB9CkBAIC01OTEsNyArNTkxLDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3ZpZXdfcm93c19hbGxfZGVsKEV3a19UaWxlZF9CYWNraW5nX1N0b3Jl
X0QKIAogICAgIGZyZWUocHJpdi0+dmlldy5pdGVtcyk7CiAgICAgcHJpdi0+dmlldy5pdGVtcyA9
IDA7Ci0gICAgcHJpdi0+dmlldy5jb2xzID0gMDsKKyAgICBwcml2LT52aWV3LmNvbHVtbnMgPSAw
OwogICAgIHByaXYtPnZpZXcucm93cyA9IDA7CiB9CiAKQEAgLTYwMCw3ICs2MDAsNyBAQCBzdGF0
aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVuZGVyKHZvaWQqIGRhdGEsIEV3a19U
aWxlKiB0aWxlLCBjb25zdCBFaQogICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHBy
aXYgPSBzdGF0aWNfY2FzdDxFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKj4oZGF0YSk7CiAK
ICAgICBJTkYoIlRPRE8gJXAgKHZpc2libGU/ICVkKSBbJWx1LCVsdV0gJWQsJWQgKyAlZHglZCIs
Ci0gICAgICAgIHRpbGUsIHRpbGUtPnZpc2libGUsIHRpbGUtPmNvbCwgdGlsZS0+cm93LCBhcmVh
LT54LCBhcmVhLT55LCBhcmVhLT53LCBhcmVhLT5oKTsKKyAgICAgICAgdGlsZSwgdGlsZS0+dmlz
aWJsZSwgdGlsZS0+Y29sdW1uLCB0aWxlLT5yb3csIGFyZWEtPngsIGFyZWEtPnksIGFyZWEtPncs
IGFyZWEtPmgpOwogCiAgICAgaWYgKCF0aWxlLT52aXNpYmxlKQogICAgICAgICByZXR1cm47CkBA
IC02NTcsNyArNjU3LDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX21l
bV9kYmcoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdikKICAgICBydW4rKzsKIAog
ICAgIHByaW50ZigiXG4tLS0gQkVHSU4gREVCVUcgVElMRUQgQkFDS0lORyBTVE9SRSBNRU1PUlkg
WyVkXSAtLVxuIgotICAgICAgICAgICAidD0lMC4yZiwgb2JqPSVwLCBwcml2PSVwLCB2aWV3Lml0
ZW1zPSVwLCBtYXRyaXg9JXBcbiIsCisgICAgICAgICAgICJ0aWxlPSUwLjJmLCBvYmo9JXAsIHBy
aXY9JXAsIHZpZXcuaXRlbXM9JXAsIG1hdHJpeD0lcFxuIiwKICAgICAgICAgICAgcnVuLCBlY29y
ZV9sb29wX3RpbWVfZ2V0KCksCiAgICAgICAgICAgIHByaXYtPnNlbGYsIHByaXYsIHByaXYtPnZp
ZXcuaXRlbXMsIHByaXYtPm1vZGVsLm1hdHJpeCk7CiAKQEAgLTY2OSwxMyArNjY5LDEzIEBAIHN0
YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9tZW1fZGJnKEV3a19UaWxlZF9CYWNr
aW5nX1N0b3JlX0RhdGEqIHByaXYpCiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3NpZ191c3Iodm9pZCogZGF0YSwgaW50IHR5cGUsIHZvaWQqIGV2ZW50KQogewot
ICAgIEVjb3JlX0V2ZW50X1NpZ25hbF9Vc2VyKiBzaWcgPSAoRWNvcmVfRXZlbnRfU2lnbmFsX1Vz
ZXIqKWV2ZW50OworICAgIEVjb3JlX0V2ZW50X1NpZ25hbF9Vc2VyKiBzaWduYWxVc2VyID0gKEVj
b3JlX0V2ZW50X1NpZ25hbF9Vc2VyKilldmVudDsKICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9EYXRhKiBwcml2ID0gKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqKWRhdGE7CiAKLSAg
ICBpZiAoc2lnLT5udW1iZXIgPT0gMikgewotICAgICAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUq
IHRpbGllVW51c2VkQ2FjaGU7Ci0gICAgICAgIHRpbGllVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9t
YXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgpOwotICAgICAgICBld2tf
dGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0aWxpZVVudXNlZENhY2hlKTsKKyAgICBpZiAo
c2lnbmFsVXNlci0+bnVtYmVyID09IDIpIHsKKyAgICAgICAgRXdrX1RpbGVfVW51c2VkX0NhY2hl
KiB0aWxlVW51c2VkQ2FjaGU7CisgICAgICAgIHRpbGVVbnVzZWRDYWNoZSA9IGV3a190aWxlX21h
dHJpeF91bnVzZWRfY2FjaGVfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7CisgICAgICAgIGV3a190
aWxlX3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGVVbnVzZWRDYWNoZSk7CiAgICAgfQogCiAg
ICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfZGJnKHByaXYpOwpAQCAtNjk4LDggKzY5
OCw4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9hZGQoRXZh
c19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKICAgICBwcml2LT52aWV3LnRpbGUuem9vbSA9IDEu
MDsKICAgICBwcml2LT52aWV3LnRpbGUud2lkdGggPSBERUZBVUxUX1RJTEVfVzsKICAgICBwcml2
LT52aWV3LnRpbGUuaGVpZ2h0ID0gREVGQVVMVF9USUxFX0g7Ci0gICAgcHJpdi0+dmlldy5vZmZz
ZXQuY3VyLnggPSAwOwotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ID0gMDsKKyAgICBwcml2
LT52aWV3Lm9mZnNldC5jdXJyZW50LnggPSAwOworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJl
bnQueSA9IDA7CiAgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnggPSAwOwogICAgIHByaXYtPnZp
ZXcub2Zmc2V0Lm9sZC55ID0gMDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSAwOwpA
QCAtNzM0LDcgKzczNCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9z
bWFydF9hZGQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKICAgICBldmFzX29iamVjdF9j
bGlwX3NldChwcml2LT5jb250ZW50c0NsaXBwZXIsIHByaXYtPmJhc2UuY2xpcHBlcik7CiAKICNp
ZmRlZiBERUJVR19NRU1fTEVBS1MKLSAgICBwcml2LT5zaWdfdXNyID0gZWNvcmVfZXZlbnRfaGFu
ZGxlcl9hZGQKKyAgICBwcml2LT5zaWduYWxVc2VyID0gZWNvcmVfZXZlbnRfaGFuZGxlcl9hZGQK
ICAgICAgICAgICAgICAgICAgICAgICAgIChFQ09SRV9FVkVOVF9TSUdOQUxfVVNFUiwgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3NpZ191c3IsIHByaXYpOwogI2VuZGlmCiB9CkBAIC04MjksMTMg
KzgyOSwxMyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVjYWxjX3Jl
bmRlcmVycyhFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYQogICAgIGNvbHVtbnMgPSAxICsgc3Rh
dGljX2Nhc3Q8aW50PihjZWlsKHdpZHRoIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVXaWR0aCkp
KTsKICAgICByb3dzID0gMSArIHN0YXRpY19jYXN0PGludD4oY2VpbChoZWlnaHQgLyBzdGF0aWNf
Y2FzdDxmbG9hdD4odGlsZUhlaWdodCkpKTsKIAotICAgIElORigiZXdrQmFja2luZ1N0b3JlJXAg
bmV3IGdyaWQgc2l6ZSBjb2xzOiAlbGQsIHJvd3M6ICVsZCwgd2FzICVsZCwgJWxkIiwKLSAgICAg
ICAgcHJpdi0+c2VsZiwgY29sdW1ucywgcm93cywgcHJpdi0+dmlldy5jb2xzLCBwcml2LT52aWV3
LnJvd3MpOworICAgIElORigiZXdrQmFja2luZ1N0b3JlJXAgbmV3IGdyaWQgc2l6ZSBjb2x1bW5z
OiAlbGQsIHJvd3M6ICVsZCwgd2FzICVsZCwgJWxkIiwKKyAgICAgICAgcHJpdi0+c2VsZiwgY29s
dW1ucywgcm93cywgcHJpdi0+dmlldy5jb2x1bW5zLCBwcml2LT52aWV3LnJvd3MpOwogCi0gICAg
aWYgKHByaXYtPnZpZXcuY29scyA9PSBjb2x1bW5zICYmIHByaXYtPnZpZXcucm93cyA9PSByb3dz
KQorICAgIGlmIChwcml2LT52aWV3LmNvbHVtbnMgPT0gY29sdW1ucyAmJiBwcml2LT52aWV3LnJv
d3MgPT0gcm93cykKICAgICAgICAgcmV0dXJuOwogCi0gICAgb2xkQ29scyA9IHByaXYtPnZpZXcu
Y29sczsKKyAgICBvbGRDb2xzID0gcHJpdi0+dmlldy5jb2x1bW5zOwogICAgIG9sZFJvd3MgPSBw
cml2LT52aWV3LnJvd3M7CiAKICAgICBpZiAocm93cyA8IG9sZFJvd3MpIHsKQEAgLTg1MSwxNCAr
ODUxLDE0IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9yZWNhbGNfcmVu
ZGVyZXJzKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhCiAKICAgICBwcml2LT52aWV3Lml0ZW1z
ID0gc3RhdGljX2Nhc3Q8RWluYV9Jbmxpc3QqKj4obmV3SXRlbXMpOwogICAgIHByaXYtPnZpZXcu
cm93cyA9IHJvd3M7Ci0gICAgcHJpdi0+dmlldy5jb2xzID0gY29sdW1uczsKKyAgICBwcml2LT52
aWV3LmNvbHVtbnMgPSBjb2x1bW5zOwogICAgIGlmIChyb3dzID4gb2xkUm93cykgewogICAgICAg
ICBFaW5hX0lubGlzdCoqIHN0YXJ0ID0gcHJpdi0+dmlldy5pdGVtcyArIG9sZFJvd3M7CiAgICAg
ICAgIEVpbmFfSW5saXN0KiogZW5kID0gcHJpdi0+dmlldy5pdGVtcyArIHJvd3M7CiAgICAgICAg
IGZvciAoOyBzdGFydCA8IGVuZDsgc3RhcnQrKykgewogICAgICAgICAgICAgKnN0YXJ0ID0gMDsK
LSAgICAgICAgICAgIEVpbmFfQm9vbCByID0gX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdf
Y29sc19lbmRfYWRkKHByaXYsIHN0YXJ0LCAwLCBjb2x1bW5zKTsKLSAgICAgICAgICAgIGlmICgh
cikgeworICAgICAgICAgICAgRWluYV9Cb29sIHJlc3VsdCA9IF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV92aWV3X2NvbHNfZW5kX2FkZChwcml2LCBzdGFydCwgMCwgY29sdW1ucyk7CisgICAgICAg
ICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICAgICAgICAgIENSSVRJQ0FMKCJmYWlsZWQgdG8g
YWxsb2NhdGUgJWxkIGNvbHVtbnMiLCBjb2x1bW5zKTsKICAgICAgICAgICAgICAgICBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfdmlld19yb3dzX3JhbmdlX2RlbChwcml2LCBwcml2LT52aWV3Lml0
ZW1zICsgb2xkUm93cywgc3RhcnQpOwogICAgICAgICAgICAgICAgIHByaXYtPnZpZXcucm93cyA9
IG9sZFJvd3M7CkBAIC05MTQsMTEgKzkxNCwxMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfZGJnKGNvbnN0IEV3a19UaWxlZF9CYWNraW5nX1N0bwog
ewogICAgIEVpbmFfSW5saXN0Kiogc3RhcnQsICoqZW5kOwogICAgIHByaW50ZigidGlsZXM9JTJs
ZCwlMmxkICBtb2RlbD0lMmxkLCUybGQgWyVkeCVkXSBiYXNlPSUrM2xkLCUrNGxkIG9mZnNldD0l
KzRkLCUrNGQgb2xkPSUrNGQsJSs0ZCBiYXNlPSUrM2QsJSszZFxuIiwKLSAgICAgICAgICAgcHJp
di0+dmlldy5jb2xzLCBwcml2LT52aWV3LnJvd3MsCisgICAgICAgICAgIHByaXYtPnZpZXcuY29s
dW1ucywgcHJpdi0+dmlldy5yb3dzLAogICAgICAgICAgICBwcml2LT5tb2RlbC5jdXJyZW50LmNv
bHVtbnMsIHByaXYtPm1vZGVsLmN1cnJlbnQucm93cywKICAgICAgICAgICAgcHJpdi0+bW9kZWwu
d2lkdGgsIHByaXYtPm1vZGVsLmhlaWdodCwKICAgICAgICAgICAgcHJpdi0+bW9kZWwuYmFzZS5j
b2x1bW4sIHByaXYtPm1vZGVsLmJhc2Uucm93LAotICAgICAgICAgICBwcml2LT52aWV3Lm9mZnNl
dC5jdXIueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnksCisgICAgICAgICAgIHByaXYtPnZpZXcu
b2Zmc2V0LmN1cnJlbnQueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55LAogICAgICAgICAg
ICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCwgcHJpdi0+dmlldy5vZmZzZXQub2xkLnksCiAgICAg
ICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCwgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS55
KTsKIApAQCAtOTMzLDcgKzkzMyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfdmlld19kYmcoY29uc3QgRXdrX1RpbGVkX0JhY2tpbmdfU3RvCiAgICAgICAg
ICAgICBpZiAoIWl0ZW0tPnRpbGUpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCIgICAgICAgICAg
ICA7Iik7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcHJpbnRmKCIlOHAgJWx1
LCVsdTsiLCBpdGVtLT50aWxlLCBpdGVtLT50aWxlLT5jb2wsIGl0ZW0tPnRpbGUtPnJvdyk7Cisg
ICAgICAgICAgICAgICAgcHJpbnRmKCIlOHAgJWx1LCVsdTsiLCBpdGVtLT50aWxlLCBpdGVtLT50
aWxlLT5jb2x1bW4sIGl0ZW0tPnRpbGUtPnJvdyk7CiAgICAgICAgIH0KICAgICAgICAgcHJpbnRm
KCJcbiIpOwogICAgIH0KQEAgLTEwNDEsMjIgKzEwNDEsMjIgQEAgc3RhdGljIHZvaWQgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF9kb3duKEV3a19UaWxlZF9CYWNraW5nX1N0b3Jl
X0RhdGEKICAqIEBpbnRlcm5hbAogICogTW92ZSBsZWZ0LW1vc3QgKGZpcnN0KSBjb2x1bW4gcmln
aHQgYXMgbGFzdCAocmlnaHQtbW9zdCkuCiAgKgotICogVGhlIGZpbmFsIHJlc3VsdCBpcyB2aXN1
YWxseSB0aGUgc2FtZSwgYnV0IGxvZ2ljYWxseSB0aGUgZmlyc3QgY29sIHRoYXQKKyAqIFRoZSBm
aW5hbCByZXN1bHQgaXMgdmlzdWFsbHkgdGhlIHNhbWUsIGJ1dCBsb2dpY2FsbHkgdGhlIGZpcnN0
IGNvbHVtbiB0aGF0CiAgKiB3ZW50IG91dCBvZiBzY3JlZW4gaXMgbm93IGF0IGxhc3QgYW5kIGZp
bGxlZCB3aXRoIG5ldyBtb2RlbCBpdGVtcy4KICAqCiAgKiBUaGlzIGlzIHdvcnRoIGp1c3Qgd2hl
biBAYSBjb3VudCBpcyBzbWFsbGVyIHRoYW4gQGMKLSAqIHByaXYtPnZpZXcuY29scywgYWZ0ZXIg
dGhhdCBvbmUgaXMgcmVmaWxsaW5nIHRoZSB3aG9sZSBtYXRyaXggc28gaXQKKyAqIHByaXYtPnZp
ZXcuY29sdW1ucywgYWZ0ZXIgdGhhdCBvbmUgaXMgcmVmaWxsaW5nIHRoZSB3aG9sZSBtYXRyaXgg
c28gaXQKICAqIGlzIGJldHRlciB0byB0cmlnZ2VyIGZ1bGwgcmVmaWxsLgogICoKICAqIEBwYXJh
bSBjb3VudCB0aGUgbnVtYmVyIG9mIHRpbWVzIHRvIHJlcGVhdCB0aGUgcHJvY2Vzcy4KICAqLwog
c3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF9sZWZ0KEV3a19U
aWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYsIEV2YXNfQ29vcmQgeCwgRXZhc19Db29yZCB5
LCB1bnNpZ25lZCBpbnQgY291bnQpCiB7Ci0gICAgdW5zaWduZWQgaW50IHJvdywgbGFzdENvbHVt
biA9IHByaXYtPnZpZXcuY29scyAtIDE7CisgICAgdW5zaWduZWQgaW50IHJvdywgbGFzdENvbHVt
biA9IHByaXYtPnZpZXcuY29sdW1ucyAtIDE7CiAgICAgRXZhc19Db29yZCB0aWxlV2lkdGggPSBw
cml2LT52aWV3LnRpbGUud2lkdGg7CiAgICAgRXZhc19Db29yZCB0aWxlSGVpZ2h0ID0gcHJpdi0+
dmlldy50aWxlLmhlaWdodDsKICAgICBFdmFzX0Nvb3JkIG9mZnNldFggPSBwcml2LT52aWV3Lm9m
ZnNldC5iYXNlLnggKyBjb3VudCAqIHRpbGVXaWR0aDsKLSAgICBFdmFzX0Nvb3JkIG95ID0geSAr
IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueTsKKyAgICBFdmFzX0Nvb3JkIG9mZnNldFkgPSB5ICsg
cHJpdi0+dmlldy5vZmZzZXQuYmFzZS55OwogICAgIEVpbmFfSW5saXN0KiogaXRlcmF0b3I7CiAg
ICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRvckVuZDsKICAgICB1bnNpZ25lZCBpbnQgYmFzZUNvbHVt
biA9IGxhc3RDb2x1bW4gLSBjb3VudCArIDE7CkBAIC0xMDc3LDEwICsxMDc3LDEwIEBAIHN0YXRp
YyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBfbGVmdChFd2tfVGlsZWRf
QmFja2luZ19TdG9yZV9EYXRhCiAgICAgICAgICAgICBpdCA9IEVJTkFfSU5MSVNUX0NPTlRBSU5F
Ul9HRVQoKml0ZXJhdG9yLCBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKTsKICAgICAgICAg
ICAgICppdGVyYXRvciA9IGVpbmFfaW5saXN0X2RlbW90ZSgqaXRlcmF0b3IsICppdGVyYXRvcik7
CiAKLSAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXQsIHRp
bGVQb3NpdGlvblgsIG95KTsKKyAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9p
dGVtX21vdmUoaXQsIHRpbGVQb3NpdGlvblgsIG9mZnNldFkpOwogICAgICAgICAgICAgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fZmlsbChwcml2LCBpdCwgY29sdW1uLCByb3cpOwogICAg
ICAgICB9Ci0gICAgICAgIG95ICs9IHRpbGVIZWlnaHQ7CisgICAgICAgIG9mZnNldFkgKz0gdGls
ZUhlaWdodDsKICAgICB9CiAKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSBvZmZzZXRY
OwpAQCAtMTA5MCwxMSArMTA5MCwxMSBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfdmlld193cmFwX2xlZnQoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YQogICogQGlu
dGVybmFsCiAgKiBNb3ZlIHJpZ2h0LW1vc3QgKGxhc3QpIGNvbHVtbiBsZWZ0IGFzIGZpcnN0IChs
ZWZ0LW1vc3QpLgogICoKLSAqIFRoZSBmaW5hbCByZXN1bHQgaXMgdmlzdWFsbHkgdGhlIHNhbWUs
IGJ1dCBsb2dpY2FsbHkgdGhlIGxhc3QgY29sIHRoYXQKKyAqIFRoZSBmaW5hbCByZXN1bHQgaXMg
dmlzdWFsbHkgdGhlIHNhbWUsIGJ1dCBsb2dpY2FsbHkgdGhlIGxhc3QgY29sdW1uIHRoYXQKICAq
IHdlbnQgb3V0IG9mIHNjcmVlbiBpcyBub3cgYXQgZmlyc3QgYW5kIGZpbGxlZCB3aXRoIG5ldyBt
b2RlbCBpdGVtcy4KICAqCiAgKiBUaGlzIGlzIHdvcnRoIGp1c3Qgd2hlbiBAYSBjb3VudCBpcyBz
bWFsbGVyIHRoYW4gQGMKLSAqIHByaXYtPnZpZXcuY29scywgYWZ0ZXIgdGhhdCBvbmUgaXMgcmVm
aWxsaW5nIHRoZSB3aG9sZSBtYXRyaXggc28gaXQKKyAqIHByaXYtPnZpZXcuY29sdW1ucywgYWZ0
ZXIgdGhhdCBvbmUgaXMgcmVmaWxsaW5nIHRoZSB3aG9sZSBtYXRyaXggc28gaXQKICAqIGlzIGJl
dHRlciB0byB0cmlnZ2VyIGZ1bGwgcmVmaWxsLgogICoKICAqIEBwYXJhbSBjb3VudCB0aGUgbnVt
YmVyIG9mIHRpbWVzIHRvIHJlcGVhdCB0aGUgcHJvY2Vzcy4KQEAgLTExMzgsNyArMTEzOCw3IEBA
IHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3JlZmlsbChFd2tfVGls
ZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwCiB7CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRvciwg
KippdGVyYXRvckVuZDsKICAgICBFdmFzX0Nvb3JkIGJhc2VUaWxlUG9zaXRpb25YLCB0aWxlUG9z
aXRpb25ZLCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQ7Ci0gICAgdW5zaWduZWQgaW50IHI7CisgICAg
dW5zaWduZWQgaW50IHJvdzsKIAogICAgIGV2YXNfb2JqZWN0X21vdmUocHJpdi0+YmFzZS5jbGlw
cGVyLCB4LCB5KTsKIApAQCAtMTE1MCwxOSArMTE1MCwxOSBAQCBzdGF0aWMgdm9pZCBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfdmlld19yZWZpbGwoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0
YSogcAogCiAgICAgaXRlcmF0b3IgPSBwcml2LT52aWV3Lml0ZW1zOwogICAgIGl0ZXJhdG9yRW5k
ID0gaXRlcmF0b3IgKyBwcml2LT52aWV3LnJvd3M7Ci0gICAgciA9IDA7CisgICAgcm93ID0gMDsK
IAogICAgIHByaXYtPm1vZGVsLmJhc2UuY29sdW1uIC09IHN0ZXBYOwogICAgIHByaXYtPm1vZGVs
LmJhc2Uucm93IC09IHN0ZXBZOwogCi0gICAgZm9yICg7IGl0ZXJhdG9yIDwgaXRlcmF0b3JFbmQ7
IGl0ZXJhdG9yKyssIHIrKykgeworICAgIGZvciAoOyBpdGVyYXRvciA8IGl0ZXJhdG9yRW5kOyBp
dGVyYXRvcisrLCByb3crKykgewogICAgICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVt
KiBpdGVtOwogICAgICAgICBFdmFzX0Nvb3JkIG5ld1RpbGVQb3NpdGlvblggPSBiYXNlVGlsZVBv
c2l0aW9uWDsKLSAgICAgICAgdW5zaWduZWQgaW50IGNvdW50ID0gMDsKKyAgICAgICAgdW5zaWdu
ZWQgaW50IGNvbHVtbiA9IDA7CiAgICAgICAgIEVJTkFfSU5MSVNUX0ZPUkVBQ0goKml0ZXJhdG9y
LCBpdGVtKSB7Ci0gICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxs
KHByaXYsIGl0ZW0sIGNvdW50LCByKTsKKyAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9pdGVtX2ZpbGwocHJpdiwgaXRlbSwgY29sdW1uLCByb3cpOwogICAgICAgICAgICAgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fbW92ZShpdGVtLCBuZXdUaWxlUG9zaXRpb25YLCB0
aWxlUG9zaXRpb25ZKTsKLSAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICBjb2x1bW4r
KzsKICAgICAgICAgICAgIG5ld1RpbGVQb3NpdGlvblggKz0gdGlsZVdpZHRoOwogICAgICAgICB9
CiAgICAgICAgIHRpbGVQb3NpdGlvblkgKz0gdGlsZUhlaWdodDsKQEAgLTExODUsMTAgKzExODUs
MTAgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfcG9zX2FwcGx5
KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKICAgICBpdGVyYXRvciA9IHByaXYtPnZpZXcu
aXRlbXM7CiAgICAgaXRlcmF0b3JFbmQgPSBpdGVyYXRvciArIHByaXYtPnZpZXcucm93czsKICAg
ICBmb3IgKDsgaXRlcmF0b3IgPCBpdGVyYXRvckVuZDsgaXRlcmF0b3IrKykgewotICAgICAgICBF
d2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdDsKKyAgICAgICAgRXdrX1RpbGVkX0JhY2tp
bmdfU3RvcmVfSXRlbSogaXRlbTsKICAgICAgICAgRXZhc19Db29yZCBveCA9IGJhc2VUaWxlUG9z
aXRpb25YOwotICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKCppdGVyYXRvciwgaXQpIHsKLSAg
ICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXQsIG94LCBiYXNl
VGlsZVBvc2l0aW9uWSk7CisgICAgICAgIEVJTkFfSU5MSVNUX0ZPUkVBQ0goKml0ZXJhdG9yLCBp
dGVtKSB7CisgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0
ZW0sIG94LCBiYXNlVGlsZVBvc2l0aW9uWSk7CiAgICAgICAgICAgICBveCArPSB0aWxlV2lkdGg7
CiAgICAgICAgIH0KICAgICAgICAgYmFzZVRpbGVQb3NpdGlvblkgKz0gdGlsZUhlaWdodDsKQEAg
LTExOTcsMjggKzExOTcsMjggQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3ZpZXdfcG9zX2FwcGx5KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKIAogc3RhdGljIHZv
aWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9vZmZzZXRfZm9yY2Uo
RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdikKIHsKLSAgICBFdmFzX0Nvb3JkIGRl
bHRhWCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLng7
Ci0gICAgRXZhc19Db29yZCBkZWx0YVkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueSAtIHByaXYt
PnZpZXcub2Zmc2V0Lm9sZC55OworICAgIEV2YXNfQ29vcmQgZGVsdGFYID0gcHJpdi0+dmlldy5v
ZmZzZXQuY3VycmVudC54IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLng7CisgICAgRXZhc19Db29y
ZCBkZWx0YVkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgLSBwcml2LT52aWV3Lm9mZnNl
dC5vbGQueTsKICAgICBFdmFzX0Nvb3JkIHRpbGVXaWR0aCwgdGlsZUhlaWdodDsKICAgICBpbnQg
c3RlcFksIHN0ZXBYOwogCiAgICAgSU5GKCJld2tCYWNraW5nU3RvcmUlcCwgb2Zmc2V0OiAlKzRk
LCAlKzRkICglKzRkLCAlKzRkKSIsCi0gICAgICAgIHByaXYtPnNlbGYsIGRlbHRhWCwgZGVsdGFZ
LCBwcml2LT52aWV3Lm9mZnNldC5jdXIueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkpOworICAg
ICAgICBwcml2LT5zZWxmLCBkZWx0YVgsIGRlbHRhWSwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVu
dC54LCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkpOwogCiAgICAgdGlsZVdpZHRoID0gcHJp
di0+dmlldy50aWxlLndpZHRoOwogICAgIHRpbGVIZWlnaHQgPSBwcml2LT52aWV3LnRpbGUuaGVp
Z2h0OwogCi0gICAgbG9uZyBuZXdDb2x1bW4gPSAtcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggLyB0
aWxlV2lkdGg7CisgICAgbG9uZyBuZXdDb2x1bW4gPSAtcHJpdi0+dmlldy5vZmZzZXQuY3VycmVu
dC54IC8gdGlsZVdpZHRoOwogICAgIHN0ZXBYID0gcHJpdi0+bW9kZWwuYmFzZS5jb2x1bW4gLSBu
ZXdDb2x1bW47Ci0gICAgbG9uZyBuZXdSb3cgPSAtcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgLyB0
aWxlSGVpZ2h0OworICAgIGxvbmcgbmV3Um93ID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQu
eSAvIHRpbGVIZWlnaHQ7CiAgICAgc3RlcFkgPSBwcml2LT5tb2RlbC5iYXNlLnJvdyAtIG5ld1Jv
dzsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54ID0gcHJpdi0+dmlldy5vZmZzZXQuY3Vy
Lng7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXIu
eTsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJl
bnQueDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1
cnJlbnQueTsKICAgICBldmFzX29iamVjdF9tb3ZlKAogICAgICAgICBwcml2LT5jb250ZW50c0Ns
aXBwZXIsCi0gICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ICsgcHJpdi0+dmlldy54LAot
ICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSArIHByaXYtPnZpZXcueSk7CisgICAgICAg
IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCArIHByaXYtPnZpZXcueCwKKyAgICAgICAgcHJp
di0+dmlldy5vZmZzZXQuY3VycmVudC55ICsgcHJpdi0+dmlldy55KTsKIAogICAgIHByaXYtPnZp
ZXcub2Zmc2V0LmJhc2UueCArPSBkZWx0YVggLSBzdGVwWCAqIHRpbGVXaWR0aDsKICAgICBwcml2
LT52aWV3Lm9mZnNldC5iYXNlLnkgKz0gZGVsdGFZIC0gc3RlcFkgKiB0aWxlSGVpZ2h0OwpAQCAt
MTIyOSwxMyArMTIyOSwxMyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
c21hcnRfY2FsY3VsYXRlX29mZnNldF9mb3JjZShFd2tfVGlsZWRfQmFjawogCiBzdGF0aWMgdm9p
ZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfY2FsY3VsYXRlX29mZnNldChFd2tfVGls
ZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSkK
IHsKLSAgICBFdmFzX0Nvb3JkIGRlbHRhWCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54IC0gcHJp
di0+dmlldy5vZmZzZXQub2xkLng7Ci0gICAgRXZhc19Db29yZCBkZWx0YVkgPSBwcml2LT52aWV3
Lm9mZnNldC5jdXIueSAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55OworICAgIEV2YXNfQ29vcmQg
ZGVsdGFYID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54IC0gcHJpdi0+dmlldy5vZmZzZXQu
b2xkLng7CisgICAgRXZhc19Db29yZCBkZWx0YVkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
LnkgLSBwcml2LT52aWV3Lm9mZnNldC5vbGQueTsKICAgICBFdmFzX0Nvb3JkIHRpbGVXaWR0aCwg
dGlsZUhlaWdodDsKICAgICBpbnQgc3RlcFksIHN0ZXBYOwogCiAgICAgSU5GKCJld2tCYWNraW5n
U3RvcmUlcCwgb2Zmc2V0OiAlKzRkLCAlKzRkICglKzRkLCAlKzRkKSIsCi0gICAgICAgIHByaXYt
PnNlbGYsIGRlbHRhWCwgZGVsdGFZLCBwcml2LT52aWV3Lm9mZnNldC5jdXIueCwgcHJpdi0+dmll
dy5vZmZzZXQuY3VyLnkpOworICAgICAgICBwcml2LT5zZWxmLCBkZWx0YVgsIGRlbHRhWSwgcHJp
di0+dmlldy5vZmZzZXQuY3VycmVudC54LCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkpOwog
CiAgICAgaWYgKCFkZWx0YVggJiYgIWRlbHRhWSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTI0Mywy
MCArMTI0MywyMCBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRf
Y2FsY3VsYXRlX29mZnNldChFd2tfVGlsZWRfQmFja2luZ19TdAogICAgIHRpbGVXaWR0aCA9IHBy
aXYtPnZpZXcudGlsZS53aWR0aDsKICAgICB0aWxlSGVpZ2h0ID0gcHJpdi0+dmlldy50aWxlLmhl
aWdodDsKIAotICAgIGxvbmcgbmV3Q29sID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci54IC8gdGls
ZVdpZHRoOworICAgIGxvbmcgbmV3Q29sID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAv
IHRpbGVXaWR0aDsKICAgICBzdGVwWCA9IHByaXYtPm1vZGVsLmJhc2UuY29sdW1uIC0gbmV3Q29s
OwotICAgIGxvbmcgbmV3Um93ID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci55IC8gdGlsZUhlaWdo
dDsKKyAgICBsb25nIG5ld1JvdyA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgLyB0aWxl
SGVpZ2h0OwogICAgIHN0ZXBZID0gcHJpdi0+bW9kZWwuYmFzZS5yb3cgLSBuZXdSb3c7CiAKLSAg
ICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAg
IHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7CisgICAg
cHJpdi0+dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7Cisg
ICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7
CiAgICAgZXZhc19vYmplY3RfbW92ZSgKICAgICAgICAgcHJpdi0+Y29udGVudHNDbGlwcGVyLAot
ICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCArIHByaXYtPnZpZXcueCwKLSAgICAgICAg
cHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgKyBwcml2LT52aWV3LnkpOworICAgICAgICBwcml2LT52
aWV3Lm9mZnNldC5jdXJyZW50LnggKyBwcml2LT52aWV3LngsCisgICAgICAgIHByaXYtPnZpZXcu
b2Zmc2V0LmN1cnJlbnQueSArIHByaXYtPnZpZXcueSk7CiAKLSAgICBpZiAoKHN0ZXBYIDwgMCAm
JiBzdGVwWCA8PSAtcHJpdi0+dmlldy5jb2xzKQotICAgICAgICB8fCAoc3RlcFggPiAwICYmIHN0
ZXBYID49IHByaXYtPnZpZXcuY29scykKKyAgICBpZiAoKHN0ZXBYIDwgMCAmJiBzdGVwWCA8PSAt
cHJpdi0+dmlldy5jb2x1bW5zKQorICAgICAgICB8fCAoc3RlcFggPiAwICYmIHN0ZXBYID49IHBy
aXYtPnZpZXcuY29sdW1ucykKICAgICAgICAgfHwgKHN0ZXBZIDwgMCAmJiBzdGVwWSA8PSAtcHJp
di0+dmlldy5yb3dzKQogICAgICAgICB8fCAoc3RlcFkgPiAwICYmIHN0ZXBZID49IHByaXYtPnZp
ZXcucm93cykpIHsKIApAQCAtMTI5MSw4ICsxMjkxLDggQEAgc3RhdGljIHZvaWQgX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9wb3MoRXdrX1RpbGVkX0JhY2tpbmdfU3Rv
cmUKICAgICBwcml2LT52aWV3LnkgPSB5OwogICAgIGV2YXNfb2JqZWN0X21vdmUoCiAgICAgICAg
IHByaXYtPmNvbnRlbnRzQ2xpcHBlciwKLSAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngg
KyBwcml2LT52aWV3LngsCi0gICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ICsgcHJpdi0+
dmlldy55KTsKKyAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ICsgcHJpdi0+dmll
dy54LAorICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgKyBwcml2LT52aWV3Lnkp
OwogfQogCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZmlsbF9yZW5kZXJl
cnMoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdikKQEAgLTEzODEsMTAgKzEzODEs
MTAgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0
ZShFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3IKICAgICAgICAgfHwgcHJpdi0+dmlldy5vZmZz
ZXQuYmFzZS54IDw9IC0gcHJpdi0+dmlldy50aWxlLndpZHRoCiAgICAgICAgIHx8IHByaXYtPnZp
ZXcub2Zmc2V0LmJhc2UueSA+IDAKICAgICAgICAgfHwgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS55
IDw9IC0gcHJpdi0+dmlldy50aWxlLmhlaWdodCkKLSAgICAgICAgRVJSKCJpbmNvcnJlY3QgYmFz
ZSBvZmZzZXQgJSs0ZCwlKzRkLCB0aWxlPSVkeCVkLCBjdXI9JSs0ZCwlKzRkXG4iLAorICAgICAg
ICBFUlIoImluY29ycmVjdCBiYXNlIG9mZnNldCAlKzRkLCUrNGQsIHRpbGU9JWR4JWQsIGN1cnJl
bnQ9JSs0ZCwlKzRkXG4iLAogICAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54LCBw
cml2LT52aWV3Lm9mZnNldC5iYXNlLnksCiAgICAgICAgICAgICBwcml2LT52aWV3LnRpbGUud2lk
dGgsIHByaXYtPnZpZXcudGlsZS5oZWlnaHQsCi0gICAgICAgICAgICBwcml2LT52aWV3Lm9mZnNl
dC5jdXIueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkpOworICAgICAgICAgICAgcHJpdi0+dmll
dy5vZmZzZXQuY3VycmVudC54LCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkpOwogCiB9CiAK
QEAgLTE0NDgsOCArMTQ0OCw4IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXRfaW50ZXJuYWwoRXdrX1RpCiAgICAgaWYgKHBy
aXYtPnJlbmRlci5kaXNhYmxlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcHJpdi0+
dmlldy5vZmZzZXQuY3VyLnggPSB4OwotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ID0geTsK
KyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggPSB4OworICAgIHByaXYtPnZpZXcub2Zm
c2V0LmN1cnJlbnQueSA9IHk7CiAKICAgICBwcml2LT5jaGFuZ2VkLm9mZnNldCA9IHRydWU7CiAg
ICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2NoYW5nZWQocHJpdik7CkBAIC0xNDYyLDcgKzE0
NjIsNyBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zm
c2V0X3NldChFdmFzX09iamVjdCogZXdrQmFja2luZwogICAgIERCRygiZXdrQmFja2luZ1N0b3Jl
JXAsIHg9JWQsIHk9JWQiLCBld2tCYWNraW5nU3RvcmUsIHgsIHkpOwogCiAgICAgUFJJVl9EQVRB
X0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2LCBmYWxzZSk7Ci0gICAgaWYgKHgg
PT0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggJiYgeSA9PSBwcml2LT52aWV3Lm9mZnNldC5jdXIu
eSkKKyAgICBpZiAoeCA9PSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggJiYgeSA9PSBwcml2
LT52aWV3Lm9mZnNldC5jdXJyZW50LnkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0
dXJuIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0X2ludGVy
bmFsKHByaXYsIHgsIHkpOwpAQCAtMTQ3NywxMyArMTQ3NywxMyBAQCBFaW5hX0Jvb2wgZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X2FkZChFdmFzX09iamVjdCogZXdr
QmFja2luZwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3NldF9pbnRlcm5hbAotICAgICAgICAgICAg
ICAgKHByaXYsIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ICsgZGVsdGFYLCBwcml2LT52aWV3Lm9m
ZnNldC5jdXIueSArIGRlbHRhWSk7CisgICAgICAgICAgICAgICAocHJpdiwgcHJpdi0+dmlldy5v
ZmZzZXQuY3VycmVudC54ICsgZGVsdGFYLCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgKyBk
ZWx0YVkpOwogfQogCiBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96
b29tX3NldF9pbnRlcm5hbChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2LCBmbG9h
dCogem9vbSwgRXZhc19Db29yZCBjdXJyZW50WCwgRXZhc19Db29yZCBjdXJyZW50WSwgRXZhc19D
b29yZCogb2Zmc2V0WCwgRXZhc19Db29yZCogb2Zmc2V0WSkKIHsKLSAgICAqb2Zmc2V0WCA9IHBy
aXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAgICpvZmZzZXRZID0gcHJpdi0+dmlldy5vZmZzZXQu
Y3VyLnk7CisgICAgKm9mZnNldFggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAg
Km9mZnNldFkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAKICAgICBpZiAoZmFic2Yo
cHJpdi0+dmlldy50aWxlLnpvb20gLSAqem9vbSkgPCBaT09NX1NURVBfTUlOKSB7CiAgICAgICAg
IERCRygiaWdub3JlZCBhcyB6b29tIGRpZmZlcmVuY2UgaXMgPCAlZjogJWYiLApAQCAtMTUxNCwx
MCArMTUxNCwxMCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96
b29tX3NldF9pbnRlcm5hbChFd2tfVGlsZWRfQmFja2luZ19TdAogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRvciwgKippdGVyYXRvckVuZDsKLSAg
ICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdDsKKyAgICBFd2tfVGlsZWRfQmFja2lu
Z19TdG9yZV9JdGVtKiBpdGVtOwogCi0gICAgRXZhc19Db29yZCBuZXdYID0gY3VycmVudFggKyAo
cHJpdi0+dmlldy5vZmZzZXQuY3VyLnggLSBjdXJyZW50WCkgKiBzY2FsZTsKLSAgICBFdmFzX0Nv
b3JkIG5ld1kgPSBjdXJyZW50WSArIChwcml2LT52aWV3Lm9mZnNldC5jdXIueSAtIGN1cnJlbnRZ
KSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3WCA9IGN1cnJlbnRYICsgKHByaXYtPnZpZXcu
b2Zmc2V0LmN1cnJlbnQueCAtIGN1cnJlbnRYKSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3
WSA9IGN1cnJlbnRZICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSAtIGN1cnJlbnRZKSAq
IHNjYWxlOwogCiAgICAgRXZhc19Db29yZCBtb2RlbFdpZHRoID0gcHJpdi0+bW9kZWwud2lkdGgg
KiBzY2FsZTsKICAgICBFdmFzX0Nvb3JkIG1vZGVsSGVpZ2h0ID0gcHJpdi0+bW9kZWwuaGVpZ2h0
ICogc2NhbGU7CkBAIC0xNTQxLDE1ICsxNTQxLDE1IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fc2V0X2ludGVybmFsKEV3a19UaWxlZF9CYWNraW5nX1N0
CiAgICAgcHJpdi0+Y2hhbmdlZC5tb2RlbCA9IHRydWU7CiAgICAgX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX2NoYW5nZWQocHJpdik7CiAKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCA9IG5l
d1g7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgPSBuZXdZOworICAgIHByaXYtPnZpZXcu
b2Zmc2V0LmN1cnJlbnQueCA9IG5ld1g7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55
ID0gbmV3WTsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSBiYXNlWDsKICAgICBwcml2
LT52aWV3Lm9mZnNldC5iYXNlLnkgPSBiYXNlWTsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9s
ZC54ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLng7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQub2xk
LnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueTsKLSAgICAqb2Zmc2V0WCA9IHByaXYtPnZpZXcu
b2Zmc2V0LmN1ci54OwotICAgICpvZmZzZXRZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7Cisg
ICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7
CisgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
Lnk7CisgICAgKm9mZnNldFggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAgKm9m
ZnNldFkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAKICAgICBldmFzX29iamVjdF9t
b3ZlKAogICAgICAgICBwcml2LT5jb250ZW50c0NsaXBwZXIsCkBAIC0xNTY4LDkgKzE1NjgsOSBA
QCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3NldF9pbnRl
cm5hbChFd2tfVGlsZWRfQmFja2luZ19TdAogICAgICAgICBFdmFzX0Nvb3JkIHRpbGVQb3NpdGlv
blggPSBiYXNlVGlsZVBvc2l0aW9uWDsKICAgICAgICAgRWluYV9Jbmxpc3QqIGxzdCA9ICppdGVy
YXRvcjsKIAotICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKGxzdCwgaXQpIHsKLSAgICAgICAg
ICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXQsIHRpbGVQb3NpdGlvblgs
IHRpbGVQb3NpdGlvblkpOwotICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0
ZW1fcmVzaXplKGl0LCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQpOworICAgICAgICBFSU5BX0lOTElT
VF9GT1JFQUNIKGxzdCwgaXRlbSkgeworICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX2l0ZW1fbW92ZShpdGVtLCB0aWxlUG9zaXRpb25YLCB0aWxlUG9zaXRpb25ZKTsKKyAgICAg
ICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Jlc2l6ZShpdGVtLCB0aWxlV2lk
dGgsIHRpbGVIZWlnaHQpOwogICAgICAgICAgICAgdGlsZVBvc2l0aW9uWCArPSB0aWxlV2lkdGg7
CiAgICAgICAgIH0KICAgICAgICAgdGlsZVBvc2l0aW9uWSArPSB0aWxlSGVpZ2h0OwpAQCAtMTYx
Myw4ICsxNjEzLDggQEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fd2Vh
a19zZXQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgZmwKIAogICAgIGludCB2cm93cyA9
IHN0YXRpY19jYXN0PGludD4oY2VpbChwcml2LT52aWV3LmhlaWdodCAvc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHRpbGVIZWlnaHQpKSArIDEpOwogICAgIGludCB2Y29scyA9IHN0YXRpY19jYXN0PGludD4o
Y2VpbChwcml2LT52aWV3LndpZHRoIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVXaWR0aCkpICsg
MSk7Ci0gICAgRXZhc19Db29yZCBuZXdYID0gY3VycmVudFggKyAocHJpdi0+dmlldy5vZmZzZXQu
Y3VyLnggLSBjdXJyZW50WCkgKiBzY2FsZTsKLSAgICBFdmFzX0Nvb3JkIG5ld1kgPSBjdXJyZW50
WSArIChwcml2LT52aWV3Lm9mZnNldC5jdXIueSAtIGN1cnJlbnRZKSAqIHNjYWxlOworICAgIEV2
YXNfQ29vcmQgbmV3WCA9IGN1cnJlbnRYICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAt
IGN1cnJlbnRYKSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3WSA9IGN1cnJlbnRZICsgKHBy
aXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSAtIGN1cnJlbnRZKSAqIHNjYWxlOwogICAgIEV2YXNf
Q29vcmQgYmFzZVggPSBuZXdYICUgdGlsZVdpZHRoOwogICAgIEV2YXNfQ29vcmQgYmFzZVkgPSBu
ZXdZICUgdGlsZUhlaWdodDsKICAgICB1bnNpZ25lZCBsb25nIGJhc2VSb3cgPSAtbmV3WSAvIHRp
bGVIZWlnaHQ7CkBAIC0xNjI2LDcgKzE2MjYsNyBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfem9vbV93ZWFrX3NldChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBmbAog
ICAgICAgICByZUNhbGN1bGF0ZSA9IHRydWU7CiAgICAgfQogCi0gICAgaWYgKHZyb3dzID4gcHJp
di0+dmlldy5yb3dzIHx8IHZjb2xzID4gcHJpdi0+dmlldy5jb2xzKQorICAgIGlmICh2cm93cyA+
IHByaXYtPnZpZXcucm93cyB8fCB2Y29scyA+IHByaXYtPnZpZXcuY29sdW1ucykKICAgICAgICAg
cmVDYWxjdWxhdGUgPSB0cnVlOwogCiAgICAgaWYgKHJlQ2FsY3VsYXRlKSB7CkBAIC0xNjY3LDgg
KzE2NjcsOCBAQCB2b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZpeF9vZmZzZXRzKEV2YXNf
T2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIEV2YXNfQ29vcgogICAgIFBSSVZfREFUQV9HRVRfT1Jf
UkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdik7CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRv
ciwgKippdGVyYXRvckVuZDsKICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVt
OwotICAgIEV2YXNfQ29vcmQgbmV3WCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAgIEV2
YXNfQ29vcmQgbmV3WSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OworICAgIEV2YXNfQ29vcmQg
bmV3WCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueDsKKyAgICBFdmFzX0Nvb3JkIG5ld1kg
PSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAgICAgRXZhc19Db29yZCBiYXNlWCA9IHBy
aXYtPnZpZXcub2Zmc2V0LmJhc2UueDsKICAgICBFdmFzX0Nvb3JkIGJhc2VZID0gcHJpdi0+dmll
dy5vZmZzZXQuYmFzZS55OwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoID0gcHJpdi0+dmlldy50
aWxlLndpZHRoOwpAQCAtMTY5Niw4ICsxNjk2LDggQEAgdm9pZCBld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9maXhfb2Zmc2V0cyhFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBFdmFzX0Nvb3IK
ICAgICAgICAgcHJpdi0+bW9kZWwuYmFzZS5yb3cgPSAtbmV3WSAvIHRpbGVIZWlnaHQ7CiAgICAg
fQogCi0gICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggPSBuZXdYOwotICAgIHByaXYtPnZpZXcu
b2Zmc2V0LmN1ci55ID0gbmV3WTsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggPSBu
ZXdYOworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSA9IG5ld1k7CiAgICAgcHJpdi0+
dmlldy5vZmZzZXQub2xkLnggPSBuZXdYOwogICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0g
bmV3WTsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSBiYXNlWDsKQEAgLTE4MTUsOCAr
MTgxNSw4IEBAIHZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZmx1c2goRXZhc19PYmplY3Qq
IGV3a0JhY2tpbmdTdG9yZSkKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5n
U3RvcmUsIHByaXYpOwogICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hl
ID0gMDsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ID0gMDsKLSAgICBwcml2LT52aWV3
Lm9mZnNldC5jdXIueSA9IDA7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ID0gMDsK
KyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgPSAwOwogICAgIHByaXYtPnZpZXcub2Zm
c2V0Lm9sZC54ID0gMDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueSA9IDA7CiAgICAgcHJp
di0+dmlldy5vZmZzZXQuYmFzZS54ID0gMDsKQEAgLTE5NTYsNyArMTk1Niw3IEBAIEVpbmFfQm9v
bCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lvbihFdmFzX09iamVjdCog
ZXdrQmFja2luZ1N0b3JlCiB7CiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2lu
Z1N0b3JlLCBwcml2LCBmYWxzZSk7CiAgICAgRWluYV9UaWxlX0dyaWRfU2xpY2VyIHNsaWNlcjsK
LSAgICBjb25zdCBFaW5hX1RpbGVfR3JpZF9JbmZvKiBpbmZvOworICAgIGNvbnN0IEVpbmFfVGls
ZV9HcmlkX0luZm8qIGdyaWRJbmZvOwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoLCB0aWxlSGVp
Z2h0OwogICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlOwogCkBAIC0x
OTcwLDEwICsxOTcwLDEwIEBAIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVf
cmVuZGVyX3JlZ2lvbihFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAKLSAgICB3aGlsZSAoZWluYV90aWxlX2dyaWRfc2xpY2VyX25leHQo
JnNsaWNlciwgJmluZm8pKSB7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgYyA9IGluZm8t
PmNvbDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyByID0gaW5mby0+cm93OwotICAgICAg
ICBpZiAoIV9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfYWRkKHBy
aXYsIGMsIHIsIHpvb20pKQorICAgIHdoaWxlIChlaW5hX3RpbGVfZ3JpZF9zbGljZXJfbmV4dCgm
c2xpY2VyLCAmZ3JpZEluZm8pKSB7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgY29sdW1u
ID0gZ3JpZEluZm8tPmNvbDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyByb3cgPSBncmlk
SW5mby0+cm93OworICAgICAgICBpZiAoIV9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVu
ZGVyX3JlcXVlc3RfYWRkKHByaXYsIGNvbHVtbiwgcm93LCB6b29tKSkKICAgICAgICAgICAgIGJy
ZWFrOwogICAgIH0KIApAQCAtMTk5Nyw3ICsxOTk3LDcgQEAgRWluYV9Cb29sIGV3a190aWxlZF9i
YWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVsYXRpdmVfcmFkaXVzKEV2YXNfT2JqZWN0KiBld2tC
YWMKICAgICBlbmRSb3cgPSBzdGQ6Om1pbihwcml2LT5tb2RlbC5jdXJyZW50LnJvd3MgLSAxLAog
ICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5tb2RlbC5iYXNlLnJvdyArIHByaXYtPnZpZXcu
cm93cyArIG4gLSAxKTsKICAgICBlbmRDb2wgPSBzdGQ6Om1pbihwcml2LT5tb2RlbC5jdXJyZW50
LmNvbHVtbnMgLSAxLAotICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5tb2RlbC5iYXNlLmNv
bHVtbiArIHByaXYtPnZpZXcuY29scyArIG4gLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
cHJpdi0+bW9kZWwuYmFzZS5jb2x1bW4gKyBwcml2LT52aWV3LmNvbHVtbnMgKyBuIC0gMSk7CiAK
ICAgICBJTkYoInN0YXJ0Um93PSVsdSwgZW5kUm93PSVsdSwgc3RhcnRDb2w9JWx1LCBlbmRDb2w9
JWx1IiwKICAgICAgICAgc3RhcnRSb3csIGVuZFJvdywgc3RhcnRDb2wsIGVuZENvbCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuaCBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5oCmluZGV4IDQ0
NzQwY2IuLmFiZDg2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZS5oCkBAIC02NCw3ICs2NCw3IEBAIHN0cnVjdCBfRXdrX1RpbGVfU3RhdHMg
ewogc3RydWN0IF9Fd2tfVGlsZSB7CiAgICAgRWluYV9UaWxlciogdXBkYXRlczsgICAgLyoqPCB1
cGRhdGVkL2RpcnR5IGFyZWFzICovCiAgICAgRXdrX1RpbGVfU3RhdHMgc3RhdHM7ICAgICAgIC8q
KjwgdGlsZSB1c2FnZSBzdGF0aXN0aWNzICovCi0gICAgdW5zaWduZWQgbG9uZyBjb2wsIHJvdzsg
LyoqPCB0aWxlIHRpbGUgcG9zaXRpb24gKi8KKyAgICB1bnNpZ25lZCBsb25nIGNvbHVtbiwgcm93
OyAvKio8IHRpbGUgdGlsZSBwb3NpdGlvbiAqLwogICAgIEV2YXNfQ29vcmQgeCwgeTsgICAgICAg
IC8qKjwgdGlsZSBjb29yZGluYXRlIHBvc2l0aW9uICovCiAKICAgICAvKiogTmV2ZXIgZXZlciBj
aGFuZ2UgdGhvc2UgYWZ0ZXIgdGlsZSBpcyBjcmVhdGVkIChyZXNwZWN0IGNvbnN0ISkgKi8KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbWF0cml4LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbWF0cml4LmNwcAppbmRleCA5NWUyMzE5Li44
NzIzOGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21hdHJp
eC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tYXRyaXguY3BwCkBA
IC00NCw3ICs0NCw3IEBAIHR5cGVkZWYgc3RydWN0IF9Fd2tfVGlsZV9NYXRyaXhfRW50cnkgRXdr
X1RpbGVfTWF0cml4X0VudHJ5Owogc3RydWN0IF9Fd2tfVGlsZV9NYXRyaXggewogICAgIEVpbmFf
TWF0cml4c3BhcnNlKiBtYXRyaXg7CiAgICAgRWluYV9Jbmxpc3QqIG1hdHJpY2VzOwotICAgIEV3
a19UaWxlX1VudXNlZF9DYWNoZSogdGlsaWVVbnVzZWRDYWNoZTsKKyAgICBFd2tfVGlsZV9VbnVz
ZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZTsKICAgICBFdmFzX0NvbG9yc3BhY2UgY3NwYWNlOwog
ICAgIHN0cnVjdCB7CiAgICAgICAgIHZvaWQgKCpjYWxsYmFjaykodm9pZCogZGF0YSwgRXdrX1Rp
bGUqIHRpbGUsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiB1cGRhdGUpOwpAQCAtOTQsNyArOTQsNyBA
QCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVfbWF0cml4X2NlbGxfZnJlZSh2b2lkKiB1c2VyRGF0YSwg
dm9pZCogY2VsbERhdGEpCiAgICAgaWYgKCF0aWxlKQogICAgICAgICByZXR1cm47CiAKLSAgICBl
d2tfdGlsZV91bnVzZWRfY2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUp
OworICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9mcmVlemUodGlsZU1hdHJpeC0+dGlsZVVudXNl
ZENhY2hlKTsKIAogICAgIGlmICh0aWxlLT51cGRhdGVzIHx8IHRpbGUtPnN0YXRzLmZ1bGxfdXBk
YXRlKQogICAgICAgICB0aWxlTWF0cml4LT51cGRhdGVzID0gZWluYV9saXN0X3JlbW92ZSh0aWxl
TWF0cml4LT51cGRhdGVzLCB0aWxlKTsKQEAgLTEwMiw4ICsxMDIsOCBAQCBzdGF0aWMgdm9pZCBf
ZXdrX3RpbGVfbWF0cml4X2NlbGxfZnJlZSh2b2lkKiB1c2VyRGF0YSwgdm9pZCogY2VsbERhdGEp
CiAgICAgaWYgKHRpbGUtPnZpc2libGUpCiAgICAgICAgIEVSUigiZnJlZWluZyBjZWxsIHRoYXQg
aXMgdmlzaWJsZSwgbGVha2luZyB0aWxlICVwIiwgdGlsZSk7CiAgICAgZWxzZSB7Ci0gICAgICAg
IGlmICghZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfZ2V0KHRpbGVNYXRyaXgtPnRpbGllVW51
c2VkQ2FjaGUsIHRpbGUpKQotICAgICAgICAgICAgRVJSKCJ0aWxlICVwIHdhcyBub3QgaW4gY2Fj
aGUgJXA/IGxlYWtpbmcuLi4iLCB0aWxlLCB0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlKTsK
KyAgICAgICAgaWYgKCFld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9nZXQodGlsZU1hdHJpeC0+
dGlsZVVudXNlZENhY2hlLCB0aWxlKSkKKyAgICAgICAgICAgIEVSUigidGlsZSAlcCB3YXMgbm90
IGluIGNhY2hlICVwPyBsZWFraW5nLi4uIiwgdGlsZSwgdGlsZU1hdHJpeC0+dGlsZVVudXNlZENh
Y2hlKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBFd2tfVGlsZV9NYXRyaXhfRW50cnkq
IGVudHJ5OwogICAgICAgICAgICAgREJHKCJ0aWxlIGNlbGwgZG9lcyBub3QgZXhpc3QgYW55bW9y
ZSwgZnJlZSBpdCAlcCIsIHRpbGUpOwpAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyB2b2lkIF9l
d2tfdGlsZV9tYXRyaXhfY2VsbF9mcmVlKHZvaWQqIHVzZXJEYXRhLCB2b2lkKiBjZWxsRGF0YSkK
ICAgICAgICAgfQogICAgIH0KIAotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3KHRpbGVN
YXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3
KHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiB9CiAKIC8qIGNhbGxlZCB3aGVuIGNhY2hl
IG9mIHVudXNlZCB0aWxlIGlzIGZsdXNoZWQgKi8KQEAgLTEzNyw3ICsxMzcsNyBAQCBzdGF0aWMg
dm9pZCBfZXdrX3RpbGVfbWF0cml4X3RpbGVfZnJlZSh2b2lkKiBkYXRhLCBFd2tfVGlsZSogdGls
ZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghZWluYV9tYXRyaXhzcGFyc2Vf
Y2VsbF9pZHhfZ2V0KGVudHJ5LT5tYXRyaXgsIHRpbGUtPnJvdywgdGlsZS0+Y29sLCAmY2VsbCkp
IHsKKyAgICBpZiAoIWVpbmFfbWF0cml4c3BhcnNlX2NlbGxfaWR4X2dldChlbnRyeS0+bWF0cml4
LCB0aWxlLT5yb3csIHRpbGUtPmNvbHVtbiwgJmNlbGwpKSB7CiAKICAgICAgICAgRVJSKCJyZW1v
dmluZyB0aWxlICVwIHRoYXQgd2FzIG5vdCBpbiB0aGUgbWF0cml4PyBMZWFraW5nLi4uIiwgdGls
ZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTIxMSwxMCArMjExLDEwIEBAIEV3a19UaWxlX01hdHJp
eCogZXdrX3RpbGVfbWF0cml4X25ldyhFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRD
YWNoZSwgdW5zCiAgICAgZXdrX3RpbGVfbWF0cml4X3pvb21fbGV2ZWxfc2V0KHRpbGVNYXRyaXgs
IHpvb21MZXZlbCk7CiAKICAgICBpZiAodGlsZVVudXNlZENhY2hlKQotICAgICAgICB0aWxlTWF0
cml4LT50aWxpZVVudXNlZENhY2hlID0gZXdrX3RpbGVfdW51c2VkX2NhY2hlX3JlZih0aWxlVW51
c2VkQ2FjaGUpOworICAgICAgICB0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUgPSBld2tfdGls
ZV91bnVzZWRfY2FjaGVfcmVmKHRpbGVVbnVzZWRDYWNoZSk7CiAgICAgZWxzZSB7Ci0gICAgICAg
IHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUgPSBld2tfdGlsZV91bnVzZWRfY2FjaGVfbmV3
KERFRkFVTFRfQ0FDSEVfU0laRSk7Ci0gICAgICAgIGlmICghdGlsZU1hdHJpeC0+dGlsaWVVbnVz
ZWRDYWNoZSkgeworICAgICAgICB0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUgPSBld2tfdGls
ZV91bnVzZWRfY2FjaGVfbmV3KERFRkFVTFRfQ0FDSEVfU0laRSk7CisgICAgICAgIGlmICghdGls
ZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlKSB7CiAgICAgICAgICAgICBFUlIoIm5vIGNhY2hlIG9m
IHVudXNlZCB0aWxlISIpOwogICAgICAgICAgICAgZWluYV9tYXRyaXhzcGFyc2VfZnJlZSh0aWxl
TWF0cml4LT5tYXRyaXgpOwogICAgICAgICAgICAgZnJlZSh0aWxlTWF0cml4KTsKQEAgLTI5OCw3
ICsyOTgsNyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9mcmVlKEV3a19UaWxlX01hdHJpeCogdGls
ZU1hdHJpeCkKIAogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHRpbGVNYXRyaXgpOwog
Ci0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxpZVVudXNl
ZENhY2hlKTsKKyAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRp
bGVVbnVzZWRDYWNoZSk7CiAgICAgZXdrX3RpbGVfbWF0cml4X2ludmFsaWRhdGUodGlsZU1hdHJp
eCk7CiAgICAgZW50cnkgPSBFSU5BX0lOTElTVF9DT05UQUlORVJfR0VUKHRpbGVNYXRyaXgtPm1h
dHJpY2VzLCBFd2tfVGlsZV9NYXRyaXhfRW50cnkpOwogICAgIGVpbmFfbWF0cml4c3BhcnNlX2Zy
ZWUoZW50cnktPm1hdHJpeCk7CkBAIC0zMDYsOCArMzA2LDggQEAgdm9pZCBld2tfdGlsZV9tYXRy
aXhfZnJlZShFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgpCiAgICAgZnJlZShlbnRyeSk7CiAg
ICAgdGlsZU1hdHJpeC0+bWF0cmljZXMgPSAwOwogCi0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hl
X3RoYXcodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7Ci0gICAgZXdrX3RpbGVfdW51c2Vk
X2NhY2hlX3VucmVmKHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgIGV3a190aWxl
X3VudXNlZF9jYWNoZV90aGF3KHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CisgICAgZXdr
X3RpbGVfdW51c2VkX2NhY2hlX3VucmVmKHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiAK
ICNpZmRlZiBERUJVR19NRU1fTEVBS1MKICAgICB0aWxlcyA9IHRpbGVNYXRyaXgtPnN0YXRzLnRp
bGVzLmFsbG9jYXRlZCAtIHRpbGVNYXRyaXgtPnN0YXRzLnRpbGVzLmZyZWVkOwpAQCAtMzU1LDcg
KzM1NSw3IEBAIHZvaWQgZXdrX3RpbGVfbWF0cml4X3Jlc2l6ZShFd2tfVGlsZV9NYXRyaXgqIHRp
bGVNYXRyaXgsIHVuc2lnbmVkIGxvbmcgY29scywgdW5zCiBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUq
IGV3a190aWxlX21hdHJpeF91bnVzZWRfY2FjaGVfZ2V0KGNvbnN0IEV3a19UaWxlX01hdHJpeCog
dGlsZU1hdHJpeCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwodGlsZU1h
dHJpeCwgMCk7Ci0gICAgcmV0dXJuIHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGU7CisgICAg
cmV0dXJuIHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZTsKIH0KIAogLyoqCkBAIC0zOTAsNyAr
MzkwLDcgQEAgRXdrX1RpbGUqIGV3a190aWxlX21hdHJpeF90aWxlX2V4YWN0X2dldChFd2tfVGls
ZV9NYXRyaXgqIHRpbGVNYXRyaXgsIHVuc2lnbmVkIGwKIAogZW5kOgogICAgIGlmICghdGlsZS0+
dmlzaWJsZSkgewotICAgICAgICBpZiAoIWV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX2dldCh0
aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlLCB0aWxlKSkKKyAgICAgICAgaWYgKCFld2tfdGls
ZV91bnVzZWRfY2FjaGVfdGlsZV9nZXQodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlLCB0aWxl
KSkKICAgICAgICAgICAgIFdSTigiRXdrX1RpbGUgd2FzIHVudXNlZCBidXQgbm90IGluIGNhY2hl
PyBidWchIik7CiAgICAgfQogCkBAIC00NTksNyArNDU5LDcgQEAgRXdrX1RpbGUqIGV3a190aWxl
X21hdHJpeF90aWxlX25ldyhFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgsIEV2YXMqIGNhbnZh
cywgdW4KICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgdGlsZS0+Y29sID0gY29sdW1u
OworICAgIHRpbGUtPmNvbHVtbiA9IGNvbHVtbjsKICAgICB0aWxlLT5yb3cgPSByb3c7CiAgICAg
dGlsZS0+eCA9IGNvbHVtbiAqIHRpbGVXaWR0aDsKICAgICB0aWxlLT55ID0gcm93ICogdGlsZUhl
aWdodDsKQEAgLTQ4Niw3ICs0ODYsNyBAQCBFd2tfVGlsZSogZXdrX3RpbGVfbWF0cml4X3RpbGVf
bmV3KEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCwgRXZhcyogY2FudmFzLCB1bgogICogdW51
c2VkIGNhY2hlLgogICoKICAqIEBwYXJhbSB0aWxlTWF0cml4IHRoZSB0aWxlIG1hdHJpeCB0byBy
ZXR1cm4gdGlsZSB0by4KLSAqIEBwYXJhbSB0IHRoZSB0aWxlIGluc3RhbmNlIHRvIHJldHVybiwg
bXVzdCBAYiBub3QgYmUgQGMgMC4KKyAqIEBwYXJhbSB0aWxlIHRoZSB0aWxlIGluc3RhbmNlIHRv
IHJldHVybiwgbXVzdCBAYiBub3QgYmUgQGMgMC4KICAqIEBwYXJhbSBsYXN0X3VzZWQgdGltZSBp
biB3aGljaCB0aWxlLndpZHRoYXMgbGFzdCB1c2VkLgogICoKICAqIEByZXR1cm4gI3RydWUgb24g
c3VjY2VzcyBvciAjZmFsc2Ugb24gZmFpbHVyZS4KQEAgLTUwMCw3ICs1MDAsNyBAQCBFaW5hX0Jv
b2wgZXdrX3RpbGVfbWF0cml4X3RpbGVfcHV0KEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCwg
RXdrX1RpbGUqIHRpbGUsCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgdGlsZS0+c3RhdHMu
bGFzdF91c2VkID0gbGFzdFVzZWQ7Ci0gICAgcmV0dXJuIGV3a190aWxlX3VudXNlZF9jYWNoZV90
aWxlX3B1dCh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlLCB0aWxlLCBfZXdrX3RpbGVfbWF0
cml4X3RpbGVfZnJlZSwgdGlsZU1hdHJpeCk7CisgICAgcmV0dXJuIGV3a190aWxlX3VudXNlZF9j
YWNoZV90aWxlX3B1dCh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUsIHRpbGUsIF9ld2tfdGls
ZV9tYXRyaXhfdGlsZV9mcmVlLCB0aWxlTWF0cml4KTsKIH0KIAogRWluYV9Cb29sIGV3a190aWxl
X21hdHJpeF90aWxlX3VwZGF0ZShFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgsIHVuc2lnbmVk
IGxvbmcgY29sLCB1bnNpZ25lZCBsb25nIHJvdywgY29uc3QgRWluYV9SZWN0YW5nbGUqIHVwZGF0
ZSkKQEAgLTcwNiw3ICs3MDYsNyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9kYmcoY29uc3QgRXdr
X1RpbGVfTWF0cml4KiB0aWxlTWF0cml4KQogICAgICAgICAgICAgICAgIHByaW50ZigiXG4iKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHByaW50ZigiJTNsdSwlM2x1ICUxMHA6IiwgY29s
dW1uLCByb3csIHRpbGUpOwotICAgICAgICAgICAgcHJpbnRmKCIgWyUzbHUsJTNsdSArICVkeCVk
IEAgJTAuM2ZdJWMiLCB0aWxlLT5jb2wsIHRpbGUtPnJvdywgdGlsZS0+d2lkdGgsIHRpbGUtPmhl
aWdodCwgdGlsZS0+em9vbSwgdGlsZS0+dmlzaWJsZSA/ICcqJyA6ICcgJyk7CisgICAgICAgICAg
ICBwcmludGYoIiBbJTNsdSwlM2x1ICsgJWR4JWQgQCAlMC4zZl0lYyIsIHRpbGUtPmNvbHVtbiwg
dGlsZS0+cm93LCB0aWxlLT53aWR0aCwgdGlsZS0+aGVpZ2h0LCB0aWxlLT56b29tLCB0aWxlLT52
aXNpYmxlID8gJyonIDogJyAnKTsKICAgICAgICAgICAgIHByaW50ZigiXG4iKTsKICAgICAgICAg
fQogICAgIH0KQEAgLTcxNCw3ICs3MTQsNyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9kYmcoY29u
c3QgRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4KQogICAgICAgICBwcmludGYoIlxuIik7CiAg
ICAgZWluYV9pdGVyYXRvcl9mcmVlKGl0ZXJhdG9yKTsKIAotICAgIGV3a190aWxlX3VudXNlZF9j
YWNoZV9kYmcodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVfdW51
c2VkX2NhY2hlX2RiZyh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogfQogCiAvKioKQEAg
LTczMCw3ICs3MzAsNyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9mcmVlemUoRXdrX1RpbGVfTWF0
cml4KiB0aWxlTWF0cml4KQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHRpbGVN
YXRyaXgpOwogICAgIGlmICghdGlsZU1hdHJpeC0+ZnJvemVuKQotICAgICAgICBld2tfdGlsZV91
bnVzZWRfY2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgICAg
ICBld2tfdGlsZV91bnVzZWRfY2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNo
ZSk7CiAgICAgdGlsZU1hdHJpeC0+ZnJvemVuKys7CiB9CiAKQEAgLTc1MCw1ICs3NTAsNSBAQCB2
b2lkIGV3a190aWxlX21hdHJpeF90aGF3KEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCkKIAog
ICAgIHRpbGVNYXRyaXgtPmZyb3plbi0tOwogICAgIGlmICghdGlsZU1hdHJpeC0+ZnJvemVuKQot
ICAgICAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGhhdyh0aWxlTWF0cml4LT50aWxpZVVudXNl
ZENhY2hlKTsKKyAgICAgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXcodGlsZU1hdHJpeC0+
dGlsZVVudXNlZENhY2hlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdGlsZWRfbW9kZWwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tb2Rl
bC5jcHAKaW5kZXggODQwNDhjYi4uZTM1ZjMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a190aWxlZF9tb2RlbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a190aWxlZF9tb2RlbC5jcHAKQEAgLTM0NSwxNiArMzQ1LDE2IEBAIHZvaWQgZXdrX3RpbGVfdXBk
YXRlc19wcm9jZXNzKEV3a19UaWxlKiB0aWxlLCB2b2lkICgqY2FsbGJhY2spKHZvaWQqIGRhdGEs
IEV3a19UCiAgICAgICAgIHJlY3QuaCA9IHRpbGUtPmhlaWdodDsKICNpZmRlZiBUSUxFX1NUQVRT
X0FDQ09VTlRfUkVOREVSX1RJTUUKICAgICAgICAgc3RydWN0IHRpbWV2YWwgdGltZXY7Ci0gICAg
ICAgIGRvdWJsZSByZW5kZXJfc3RhcnQ7CisgICAgICAgIGRvdWJsZSByZW5kZXJTdGFydFRpbWU7
CiAgICAgICAgIGdldHRpbWVvZmRheSgmdGltZXYsIDApOwotICAgICAgICByZW5kZXJfc3RhcnRp
bGUgPSAoZG91YmxlKXRpbWV2LnR2X3NlYyArCisgICAgICAgIHJlbmRlclN0YXJ0VGltZSA9IChk
b3VibGUpdGltZXYudHZfc2VjICsKICAgICAgICAgICAgICAgICAgICAgICAgKCgoZG91YmxlKXRp
bWV2LnR2X3VzZWMpIC8gMTAwMDAwMCk7CiAjZW5kaWYKICAgICAgICAgY2FsbGJhY2soKHZvaWQq
KWRhdGEsIHRpbGUsICZyZWN0KTsKICNpZmRlZiBUSUxFX1NUQVRTX0FDQ09VTlRfUkVOREVSX1RJ
TUUKICAgICAgICAgZ2V0dGltZW9mZGF5KCZ0aW1ldiwgMCk7CiAgICAgICAgIHRpbGUtPnN0YXRz
LnJlbmRlcl90aW1lID0gKGRvdWJsZSl0aW1ldi50dl9zZWMgKwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgoKGRvdWJsZSl0aW1ldi50dl91c2VjKSAvIDEwMDAwMDApIC0gcmVuZGVy
X3N0YXJ0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoKGRvdWJsZSl0aW1ldi50
dl91c2VjKSAvIDEwMDAwMDApIC0gcmVuZGVyU3RhcnRUaW1lOwogI2VuZGlmCiAgICAgfSBlbHNl
IGlmICh0aWxlLT51cGRhdGVzKSB7CiAgICAgICAgIEVpbmFfSXRlcmF0b3IqIGl0ciA9IGVpbmFf
dGlsZXJfaXRlcmF0b3JfbmV3KHRpbGUtPnVwZGF0ZXMpOwpAQCAtNTIwLDcgKzUyMCw3IEBAIHZv
aWQgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2NsZWFyKEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGls
ZVVudXNlZENhY2hlKQogfQogCiAvKioKLSAqIGhlaWdodG9sZCByZWZlcmVuY2UgdG8gY2FjaGUu
CisgKiBIb2xkIHJlZmVyZW5jZSB0byBjYWNoZS4KICAqCiAgKiBAcmV0dXJuIHNhbWUgcG9pbnRl
ciBhcyB0YWtlbi4KICAqCkBAIC02MzAsNyArNjMwLDcgQEAgdm9pZCBld2tfdGlsZV91bnVzZWRf
Y2FjaGVfYXV0b19mbHVzaChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSkK
ICAqIEZyZWV6ZSBjYWNoZSB0byBub3QgZG8gbWFpbnRlbmFuY2UgdGFza3MuCiAgKgogICogTWFp
bnRlbmFuY2UgdGFza3Mgb3B0aW1pemUgY2FjaGUgdXNhZ2UsIGJ1dCBtYXliZSB3ZSBrbm93IHdl
IHNob3VsZAotICogaGVpZ2h0b2xkIG9uIHRoZW0gdW50aWwgd2UgZG8gdGhlIGxhc3Qgb3BlcmF0
aW9uLCBpbiB0aGlzIGNhc2Ugd2UgZnJlZXplCisgKiBob2xkIG9uIHRoZW0gdW50aWwgd2UgZG8g
dGhlIGxhc3Qgb3BlcmF0aW9uLCBpbiB0aGlzIGNhc2Ugd2UgZnJlZXplCiAgKiB3aGlsZSBvcGVy
YXRpbmcgYW5kIHRoZW4gdGhhdyB3aGVuIHdlJ3JlIGRvbmUuCiAgKgogICogQHNlZSBld2tfdGls
ZV91bnVzZWRfY2FjaGVfdGhhdygpCkBAIC03MDcsOCArNzA3LDggQEAgRWluYV9Cb29sIGV3a190
aWxlX3VudXNlZF9jYWNoZV90aWxlX2dldChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVz
ZWRDYWNoZSwKICAqIGJlY2F1c2UgdXN1YWxseSB3ZSB3YW50IGEgbGF6eSBvcGVyYXRpb24gZm9y
IGJldHRlciBwZXJmb3JtYW5jZS4KICAqCiAgKiBAcGFyYW0gdGlsZVVudXNlZENhY2hlIGNhY2hl
IG9mIHVudXNlZCB0aWxlcwotICogQHBhcmFtIHQgdGlsZSB0byBiZSBhZGRlZCB0byBjYWNoZS4K
LSAqIEBwYXJhbSB0aWxlX2ZyZWVfY2IgZnVuY3Rpb24gdXNlZCB0byBmcmVlIHRpbGVzLgorICog
QHBhcmFtIHRpbGUgdGlsZSB0byBiZSBhZGRlZCB0byBjYWNoZS4KKyAqIEBwYXJhbSB0aWxlRnJl
ZUNiIGZ1bmN0aW9uIHVzZWQgdG8gZnJlZSB0aWxlcy4KICAqIEBwYXJhbSBkYXRhIGNvbnRleHQg
dG8gZ2l2ZSBiYWNrIHRvIEBhIHRpbGVfZnJlZV9jYiBhcyBmaXJzdCBhcmd1bWVudC4KICAqCiAg
KiBAcmV0dXJuICN0cnVlIG9uIHN1Y2Nlc3MsICNmYWxzZSBvdGhlcndpc2UuIElmIEBjIHRpbGUt
PnZpc2libGUKQEAgLTc1OCw3ICs3NTgsNyBAQCB2b2lkIGV3a190aWxlX3VudXNlZF9jYWNoZV9k
YmcoY29uc3QgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUpCiAgICAgRUlO
QV9MSVNUX0ZPUkVBQ0godGlsZVVudXNlZENhY2hlLT5lbnRyaWVzLmxpc3QsIGxpc3QsIGl0ZW0p
IHsKICAgICAgICAgY29uc3QgRXdrX1RpbGUqIHRpbGUgPSBzdGF0aWNfY2FzdDxFd2tfVGlsZV9V
bnVzZWRfQ2FjaGVfRW50cnkqPihpdGVtKS0+dGlsZTsKICAgICAgICAgcHJpbnRmKCIgWyUzbHUs
JTNsdSArICVkeCVkIEAgJTAuM2ZdJWMiLAotICAgICAgICAgICAgICAgdGlsZS0+Y29sLCB0aWxl
LT5yb3csIHRpbGUtPndpZHRoLCB0aWxlLT5oZWlnaHQsIHRpbGUtPnpvb20sCisgICAgICAgICAg
ICAgICB0aWxlLT5jb2x1bW4sIHRpbGUtPnJvdywgdGlsZS0+d2lkdGgsIHRpbGUtPmhlaWdodCwg
dGlsZS0+em9vbSwKICAgICAgICAgICAgICAgIHRpbGUtPnZpc2libGUgPyAnKicgOiAnICcpOwog
CiAgICAgICAgIGlmICghKGNvdW50ICUgNCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApp
bmRleCA1MzU0MDBiLi4xMGM0NWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAg
LTIxNiw2MCArMjE2LDYwIEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICNpZm5k
ZWYgRVdLX1RZUEVfQ0hFQ0sKICNkZWZpbmUgRVdLX1ZJRVdfVFlQRV9DSEVDSyhld2tWaWV3LCAu
Li4pIGRvIHsgfSB3aGlsZSAoMCkKICNlbHNlCi0jZGVmaW5lIEVXS19WSUVXX1RZUEVfQ0hFQ0so
ZXdrVmlldywgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgICAgIGNvbnN0IGNoYXIqIF90bXBfb3R5cGUgPSBldmFzX29iamVj
dF90eXBlX2dldChld2tWaWV3KTsgICAgICAgICAgICAgICBcCi0gICAgICAgIGNvbnN0IEV2YXNf
U21hcnQqIF90bXBfcyA9IGV2YXNfb2JqZWN0X3NtYXJ0X3NtYXJ0X2dldChld2tWaWV3KTsgICAg
ICBcCi0gICAgICAgIGlmIChFSU5BX1VOTElLRUxZKCFfdG1wX3MpKSB7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBFSU5BX0xPR19DUklUICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAg
KCIlcCAoJXMpIGlzIG5vdCBhIHNtYXJ0IG9iamVjdCEiLCBld2tWaWV3LCAgICAgICAgICAgICAg
ICAgICBcCi0gICAgICAgICAgICAgICAgX3RtcF9vdHlwZSA/IF90bXBfb3R5cGUgOiAiKG51bGwp
Iik7ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgfSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICAgICAgY29uc3QgRXZhc19TbWFydF9DbGFzcyogX3RtcF9zYyA9IGV2YXNfc21hcnRf
Y2xhc3NfZ2V0KF90bXBfcyk7IFwKLSAgICAgICAgaWYgKEVJTkFfVU5MSUtFTFkoIV90bXBfc2Mp
KSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIEVJTkFf
TE9HX0NSSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICAgICAgICAgICAgICAoIiVwICglcykgaXMgbm90IGEgc21hcnQgb2JqZWN0ISIsIGV3a1Zp
ZXcsICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICBfdG1wX290eXBlID8gX3Rt
cF9vdHlwZSA6ICIobnVsbCkiKTsgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgcmV0
dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWShfdG1wX3NjLT5k
YXRhICE9IEVXS19WSUVXX1RZUEVfU1RSKSkgeyAgICAgICAgXAotICAgICAgICAgICAgRUlOQV9M
T0dfQ1JJVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgICAgICAgICAgICAgICgiJXAgKCVzKSBpcyBub3Qgb2YgYW4gZXdrX3ZpZXcgKG5lZWQgJXAs
IGdvdCAlcCkhIiwgICAgXAotICAgICAgICAgICAgICAgIGV3a1ZpZXcsIF90bXBfb3R5cGUgPyBf
dG1wX290eXBlIDogIihudWxsKSIsICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAg
RVdLX1ZJRVdfVFlQRV9TVFIsIF90bXBfc2MtPmRhdGEpOyAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICAgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgRVdLX1ZJRVdfVFlQ
RV9DSEVDSyhld2tWaWV3LCAuLi4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBjb25zdCBjaGFyKiBfdG1wX290eXBlID0g
ZXZhc19vYmplY3RfdHlwZV9nZXQoZXdrVmlldyk7ICAgICAgICAgICAgIFwKKyAgICAgICAgY29u
c3QgRXZhc19TbWFydCogX3RtcF9zID0gZXZhc19vYmplY3Rfc21hcnRfc21hcnRfZ2V0KGV3a1Zp
ZXcpOyAgICBcCisgICAgICAgIGlmIChFSU5BX1VOTElLRUxZKCFfdG1wX3MpKSB7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgRUlOQV9MT0dfQ1JJ
VCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgICAgICAgICAoIiVwICglcykgaXMgbm90IGEgc21hcnQgb2JqZWN0ISIsIGV3a1ZpZXcs
ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgX3RtcF9vdHlwZSA/IF90bXBfb3R5
cGUgOiAiKG51bGwpIik7ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcmV0
dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGNvbnN0IEV2YXNfU21hcnRfQ2xh
c3MqIF90bXBfc2MgPSBldmFzX3NtYXJ0X2NsYXNzX2dldChfdG1wX3MpOyAgICAgXAorICAgICAg
ICBpZiAoRUlOQV9VTkxJS0VMWSghX3RtcF9zYykpIHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIEVJTkFfTE9HX0NSSVQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgKCIl
cCAoJXMpIGlzIG5vdCBhIHNtYXJ0IG9iamVjdCEiLCBld2tWaWV3LCAgICAgICAgICAgICAgICAg
XAorICAgICAgICAgICAgICAgIF90bXBfb3R5cGUgPyBfdG1wX290eXBlIDogIihudWxsKSIpOyAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIH0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWShfdG1wX3NjLT5kYXRhICE9IEVX
S19WSUVXX1RZUEVfU1RSKSkgeyAgICAgICAgICAgIFwKKyAgICAgICAgICAgIEVJTkFfTE9HX0NS
SVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgICAgICAgICAgICAgKCIlcCAoJXMpIGlzIG5vdCBvZiBhbiBld2tfdmlldyAobmVlZCAlcCwg
Z290ICVwKSEiLCAgICAgICAgXAorICAgICAgICAgICAgICAgIGV3a1ZpZXcsIF90bXBfb3R5cGUg
PyBfdG1wX290eXBlIDogIihudWxsKSIsICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg
ICBFV0tfVklFV19UWVBFX1NUUiwgX3RtcF9zYy0+ZGF0YSk7ICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB9
IHdoaWxlICgwKQogI2VuZGlmCiAKLSNkZWZpbmUgRVdLX1ZJRVdfU0RfR0VUKGV3a1ZpZXcsIHB0
cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRXdrX1ZpZXdfU21hcnRf
RGF0YSogcHRyID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGV2YXNfb2JqZWN0
X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpKQorI2RlZmluZSBFV0tfVklFV19TRF9HRVQoZXdrVmll
dywgcG9pbnRlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBFd2tf
Vmlld19TbWFydF9EYXRhKiBwb2ludGVyID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0
YSo+KGV2YXNfb2JqZWN0X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpKQogCi0jZGVmaW5lIEVXS19W
SUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgcHRyLCAuLi4pICAgICAgICAgIFwKLSAgICBF
V0tfVklFV19UWVBFX0NIRUNLKGV3a1ZpZXcsIF9fVkFfQVJHU19fKTsgICAgICAgICAgICAgICAg
XAotICAgIEVXS19WSUVXX1NEX0dFVChld2tWaWV3LCBwdHIpOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgaWYgKCFwdHIpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICAgICAgQ1JJVElDQUwoIm5vIHNtYXJ0IGRhdGEgZm9yIG9iamVjdCAl
cCAoJXMpIiwgICAgXAotICAgICAgICAgICAgICAgICBld2tWaWV3LCBldmFzX29iamVjdF90eXBl
X2dldChld2tWaWV3KSk7ICAgICAgICAgICBcCi0gICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgRVdLX1ZJRVdfU0RfR0VUX09S
X1JFVFVSTihld2tWaWV3LCBwb2ludGVyLCAuLi4pICAgICAgICAgICAgICAgICAgICBcCisgICAg
RVdLX1ZJRVdfVFlQRV9DSEVDSyhld2tWaWV3LCBfX1ZBX0FSR1NfXyk7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgIEVXS19WSUVXX1NEX0dFVChld2tWaWV3LCBwb2ludGVyKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIXBvaW50ZXIp
IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgICAgIENSSVRJQ0FMKCJubyBzbWFydCBkYXRhIGZvciBvYmplY3QgJXAgKCVzKSIs
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICBld2tWaWV3LCBldmFz
X29iamVjdF90eXBlX2dldChld2tWaWV3KSk7ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
cmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCiAgICAgfQogCi0jZGVmaW5lIEVXS19WSUVXX1BSSVZfR0VUKHNtYXJ0RGF0
YSwgcHRyKSAgICAgICAgICAgICAgXAotICAgIEV3a19WaWV3X1ByaXZhdGVfRGF0YSAqcHRyID0g
c21hcnREYXRhLT5fcHJpdgorI2RlZmluZSBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEsIHBv
aW50ZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBFd2tfVmlld19Qcml2
YXRlX0RhdGEqIHBvaW50ZXIgPSBzbWFydERhdGEtPl9wcml2CiAKLSNkZWZpbmUgRVdLX1ZJRVdf
UFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHRyLCAuLi4pICAgICAgICAgICAgICAgXAot
ICAgIEVXS19WSUVXX1BSSVZfR0VUKHNtYXJ0RGF0YSwgcHRyKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgaWYgKCFwdHIpIHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBDUklUSUNBTCgibm8gcHJpdmF0ZSBk
YXRhIGZvciBvYmplY3QgJXAgKCVzKSIsICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgc21h
cnREYXRhLT5zZWxmLCBldmFzX29iamVjdF90eXBlX2dldChzbWFydERhdGEtPnNlbGYpKTsgICAg
IFwKLSAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisjZGVmaW5lIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERh
dGEsIHBvaW50ZXIsIC4uLikgICAgICAgICAgICAgICAgXAorICAgIEVXS19WSUVXX1BSSVZfR0VU
KHNtYXJ0RGF0YSwgcG9pbnRlcik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICBpZiAoIXBvaW50ZXIpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIENSSVRJQ0FMKCJubyBwcml2YXRlIGRhdGEg
Zm9yIG9iamVjdCAlcCAoJXMpIiwgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAg
ICAgICBzbWFydERhdGEtPnNlbGYsIGV2YXNfb2JqZWN0X3R5cGVfZ2V0KHNtYXJ0RGF0YS0+c2Vs
ZikpOyAgIFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfQogCi0jZGVmaW5lIEVXS19WSUVX
X1RJTEVEX1RZUEVfQ0hFQ0tfT1JfUkVUVVJOKGV3a1ZpZXcsIC4uLikgXAotICAgIGlmICghZXZh
c19vYmplY3Rfc21hcnRfdHlwZV9jaGVjayhld2tWaWV3LCAiRXdrX1ZpZXdfVGlsZWQiKSkgeyBc
Ci0gICAgICAgIElORigib2JqZWN0IGlzIG5vdCBhIGluc3RhbmNlIG9mIEV3a19WaWV3X1RpbGVk
Iik7IFwKLSAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyBcCisjZGVmaW5lIEVXS19WSUVXX1RJ
TEVEX1RZUEVfQ0hFQ0tfT1JfUkVUVVJOKGV3a1ZpZXcsIC4uLikgICAgICAgICAgICAgICAgICAg
XAorICAgIGlmICghZXZhc19vYmplY3Rfc21hcnRfdHlwZV9jaGVjayhld2tWaWV3LCAiRXdrX1Zp
ZXdfVGlsZWQiKSkgeyAgICAgICAgIFwKKyAgICAgICAgSU5GKCJvYmplY3QgaXMgbm90IGEgaW5z
dGFuY2Ugb2YgRXdrX1ZpZXdfVGlsZWQiKTsgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJl
dHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAogICAgIH0KIAogc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X2NoYW5nZWQo
RXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQpAQCAtNDEwLDEyICs0MTAsMTIgQEAgc3Rh
dGljIHZvaWQgX2V3a192aWV3X3Njcm9sbHNfZmx1c2goRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBw
cml2KQogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfZm9jdXNfaW4oRXdrX1ZpZXdf
U21hcnRfRGF0YSogc21hcnREYXRhKQogewogICAgIEVXS19WSUVXX1BSSVZfR0VUKHNtYXJ0RGF0
YSwgcHJpdik7Ci0gICAgV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyKiBmYyA9IHByaXYtPnBhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpOwotICAgIERCRygiZXdrVmlldz0lcCwgZmM9JXAiLCBzbWFydERh
dGEtPnNlbGYsIGZjKTsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZmMsIGZh
bHNlKTsKKyAgICBXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXIqIGZvY3VzQ29udHJvbGxlciA9IHBy
aXYtPnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpOworICAgIERCRygiZXdrVmlldz0lcCwgZm9jdXND
b250cm9sbGVyPSVwIiwgc21hcnREYXRhLT5zZWxmLCBmb2N1c0NvbnRyb2xsZXIpOworICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChmb2N1c0NvbnRyb2xsZXIsIGZhbHNlKTsKIAot
ICAgIGZjLT5zZXRBY3RpdmUodHJ1ZSk7Ci0gICAgZmMtPnNldEZvY3VzZWQodHJ1ZSk7CisgICAg
Zm9jdXNDb250cm9sbGVyLT5zZXRBY3RpdmUodHJ1ZSk7CisgICAgZm9jdXNDb250cm9sbGVyLT5z
ZXRGb2N1c2VkKHRydWUpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xNzkwLDcgKzE3OTAs
NyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfcHJlX3JlbmRlcl9yZWdpb24oRXZhc19PYmplY3QqIGV3
a1ZpZXcsIEV2YXNfQ29vcmQgeCwgRXZhc19DbwogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRV
Uk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1Jf
UkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChzbWFydERhdGEtPmFwaS0+cHJlX3JlbmRlcl9yZWdpb24sIGZhbHNlKTsKLSAg
ICBmbG9hdCBjdXJfem9vbTsKKyAgICBmbG9hdCBjdXJyZW50Wm9vbTsKICAgICBFdmFzX0Nvb3Jk
IGNvbnRlbnRzV2lkdGgsIGNvbnRlbnRzSGVpZ2h0OwogCiAgICAgLyogV2hlbiBkb2luZyBhbmlt
YXRlZCB6b29tIGl0J3Mgbm90IHBvc3NpYmxlIHRvIGNhbGwgcHJlLXJlbmRlciBzaW5jZSBpdApA
QCAtMTc5OSwxNSArMTc5OSwxNSBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfcHJlX3JlbmRlcl9yZWdp
b24oRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfQ29vcmQgeCwgRXZhc19DbwogICAgIGlmIChw
cml2LT5hbmltYXRlZFpvb20uYW5pbWF0b3IpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IGN1cl96b29tID0gZXdrX2ZyYW1lX3BhZ2Vfem9vbV9nZXQoc21hcnREYXRhLT5tYWluX2ZyYW1l
KTsKKyAgICBjdXJyZW50Wm9vbSA9IGV3a19mcmFtZV9wYWdlX3pvb21fZ2V0KHNtYXJ0RGF0YS0+
bWFpbl9mcmFtZSk7CiAKLSAgICBpZiAoY3VyX3pvb20gPCAwLjAwMDAxKQorICAgIGlmIChjdXJy
ZW50Wm9vbSA8IDAuMDAwMDEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWV3a19m
cmFtZV9jb250ZW50c19zaXplX2dldChzbWFydERhdGEtPm1haW5fZnJhbWUsICZjb250ZW50c1dp
ZHRoLCAmY29udGVudHNIZWlnaHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBjb250
ZW50c1dpZHRoICo9IHpvb20gLyBjdXJfem9vbTsKLSAgICBjb250ZW50c0hlaWdodCAqPSB6b29t
IC8gY3VyX3pvb207CisgICAgY29udGVudHNXaWR0aCAqPSB6b29tIC8gY3VycmVudFpvb207Cisg
ICAgY29udGVudHNIZWlnaHQgKj0gem9vbSAvIGN1cnJlbnRab29tOwogICAgIERCRygicmVnaW9u
ICVkLCVkKyVkeCVkIEAgJWYgY29udGVudHM9JWR4JWQiLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCB6
b29tLCBjb250ZW50c1dpZHRoLCBjb250ZW50c0hlaWdodCk7CiAKICAgICBpZiAoeCArIHdpZHRo
ID4gY29udGVudHNXaWR0aCkKQEAgLTI5NTcsOCArMjk1Nyw4IEBAIHZvaWQgZXdrX3ZpZXdfcmVz
dG9yZV9zdGF0ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lKQogICog
QHBhcmFtIGV3a1ZpZXcgQ3VycmVudCB2aWV3LgogICogQHBhcmFtIGphdmFzY3JpcHQgQGMgdHJ1
ZSBpZiB0aGUgbmV3IHdpbmRvdyBpcyBvcmlnaW5hdGVkIGZyb20gamF2YXNjcmlwdCwKICAqIEBj
IGZhbHNlIG90aGVyd2lzZQotICogQHBhcmFtIHdpZHRoaW5kb3dfZmVhdHVyZXMgRmVhdHVyZXMg
b2YgdGhlIG5ldyB3aW5kb3cgYmVpbmcgY3JlYXRlZC4gSWYgaXQncyBAYwotICogTlVMTCwgaXQg
d2lsbCBiZSBjcmVhdGVkIGEgd2luZG93IHdpdGggZGVmYXVsdCBmZWF0dXJlcy4KKyAqIEBwYXJh
bSB3aW5kb3dfZmVhdHVyZXMgRmVhdHVyZXMgb2YgdGhlIG5ldyB3aW5kb3cgYmVpbmcgY3JlYXRl
ZC4gSWYgaXQncyBAYworICogMCwgaXQgd2lsbCBiZSBjcmVhdGVkIGEgd2luZG93IHdpdGggZGVm
YXVsdCBmZWF0dXJlcy4KICAqCiAgKiBAcmV0dXJuIE5ldyB2aWV3LCBpbiBjYXNlIHNtYXJ0IGNs
YXNzIGltcGxlbWVudHMgdGhlIGNyZWF0aW9uIG9mIG5ldyB3aW5kb3dzOwogICogZWxzZSwgY3Vy
cmVudCB2aWV3IEBwYXJhbSBld2tWaWV3IG9yIEBjIDAgb24gZmFpbHVyZS4KQEAgLTMwNTAsNyAr
MzA1MCw3IEBAIHZvaWQgZXdrX3ZpZXdfdG9vbGJhcnNfdmlzaWJsZV9zZXQoRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIGJvb2wgdmlzaWJsZSkKICAqLwogdm9pZCBld2tfdmlld190b29sYmFyc192aXNp
YmxlX2dldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCogdmlzaWJsZSkKIHsKLSAgICBEQkco
IiVzLCBvPSVwIiwgX19mdW5jX18sIGV3a1ZpZXcpOworICAgIERCRygiJXMsIGV3a1ZpZXc9JXAi
LCBfX2Z1bmNfXywgZXdrVmlldyk7CiAgICAgKnZpc2libGUgPSBmYWxzZTsKICAgICBldmFzX29i
amVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJ0b29sYmFycyx2aXNpYmxlLGdldCIs
IHZpc2libGUpOwogfQpAQCAtMzA4Myw3ICszMDgzLDcgQEAgdm9pZCBld2tfdmlld19zdGF0dXNi
YXJfdmlzaWJsZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgIHZpc2libGUpCiAgKi8K
IHZvaWQgZXdrX3ZpZXdfc3RhdHVzYmFyX3Zpc2libGVfZ2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBib29sKiB2aXNpYmxlKQogewotICAgIERCRygiJXMsIG89JXAiLCBfX2Z1bmNfXywgZXdrVmll
dyk7CisgICAgREJHKCIlcywgZXdrVmlldz0lcCIsIF9fZnVuY19fLCBld2tWaWV3KTsKICAgICAq
dmlzaWJsZSA9IGZhbHNlOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdr
VmlldywgInN0YXR1c2Jhcix2aXNpYmxlLGdldCIsIHZpc2libGUpOwogfQpAQCAtMzEzMiw3ICsz
MTMyLDcgQEAgdm9pZCBld2tfdmlld19zY3JvbGxiYXJzX3Zpc2libGVfc2V0KEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBib29sIHZpc2libGUpCiAgKi8KIHZvaWQgZXdrX3ZpZXdfc2Nyb2xsYmFyc192
aXNpYmxlX2dldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCogdmlzaWJsZSkKIHsKLSAgICBE
QkcoIiVzLCBvPSVwIiwgX19mdW5jX18sIGV3a1ZpZXcpOworICAgIERCRygiJXMsIGV3a1ZpZXc9
JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CiAgICAgKnZpc2libGUgPSBmYWxzZTsKICAgICBldmFz
X29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJzY3JvbGxiYXJzLHZpc2libGUs
Z2V0IiwgdmlzaWJsZSk7CiB9CkBAIC0zMTY1LDcgKzMxNjUsNyBAQCB2b2lkIGV3a192aWV3X21l
bnViYXJfdmlzaWJsZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgdmlzaWJsZSkKICAq
Lwogdm9pZCBld2tfdmlld19tZW51YmFyX3Zpc2libGVfZ2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBib29sKiB2aXNpYmxlKQogewotICAgIERCRygiJXMsIG89JXAiLCBfX2Z1bmNfXywgZXdrVmll
dyk7CisgICAgREJHKCIlcywgZXdrVmlldz0lcCIsIF9fZnVuY19fLCBld2tWaWV3KTsKICAgICAq
dmlzaWJsZSA9IGZhbHNlOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdr
VmlldywgIm1lbnViYXIsdmlzaWJsZSxnZXQiLCB2aXNpYmxlKTsKIH0KQEAgLTM1OTEsNyArMzU5
MSw3IEBAIEVpbmFfQm9vbCBld2tfdmlld196b29tX3JhbmdlX3NldChFdmFzX09iamVjdCogZXdr
VmlldywgZmxvYXQgbWluU2NhbGUsIGZsb2F0IG1hCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1Jf
UkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogCiAgICAgaWYgKG1heFNjYWxlIDwgbWlu
U2NhbGUpIHsKLSAgICAgICAgV1JOKCJtaW5fc2NhbGUgaXMgbGFyZ2VyIHRoYW4gbWF4X3NjYWxl
Iik7CisgICAgICAgIFdSTigibWluU2NhbGUgaXMgbGFyZ2VyIHRoYW4gbWF4U2NhbGUiKTsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a192aWV3X3NpbmdsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXdfc2luZ2xlLmNwcAppbmRleCBlZDcyNjMzLi44Zjc0OTk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfc2luZ2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXdfc2luZ2xlLmNwcApAQCAtOSw3ICs5LDcgQEAKIAogICAgIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAog
ICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCi0gICAgTUVSY2hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogICAgIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogCiAgICAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQpAQCAtMjA5LDggKzIwOSw4IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NpbmdsZV9z
bWFydF9yZXBhaW50c19wcm9jZXNzKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtCiAgICAgRXZhc19D
b29yZCBvdywgb2g7CiAgICAgdm9pZCogcGl4ZWxzOwogICAgIEVpbmFfUmVjdGFuZ2xlKiByZWN0
OwotICAgIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBwcjsKLSAgICBjb25zdCBFaW5hX1JlY3Rhbmds
ZSogcHJfZW5kOworICAgIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBwYWludFJlcXVlc3Q7CisgICAg
Y29uc3QgRWluYV9SZWN0YW5nbGUqIHBhaW50UmVxdWVzdEVuZDsKICAgICBFaW5hX1RpbGVyKiB0
aWxlcjsKICAgICBFaW5hX0l0ZXJhdG9yKiBpdGVyYXRvcjsKICAgICBjYWlyb19zdGF0dXNfdCBz
dGF0dXM7CkBAIC0yNzcsMTAgKzI3NywxMCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19z
aW5nbGVfc21hcnRfcmVwYWludHNfcHJvY2VzcyhFd2tfVmlld19TbWFydF9EYXRhKiBzbQogCiAg
ICAgZXdrX3ZpZXdfbGF5b3V0X2lmX25lZWRlZF9yZWN1cnNpdmUoc21hcnREYXRhLT5fcHJpdik7
CiAKLSAgICBwciA9IGV3a192aWV3X3JlcGFpbnRzX3BvcChzbWFydERhdGEtPl9wcml2LCAmY291
bnQpOwotICAgIHByX2VuZCA9IHByICsgY291bnQ7Ci0gICAgZm9yICg7IHByIDwgcHJfZW5kOyBw
cisrKQotICAgICAgICBlaW5hX3RpbGVyX3JlY3RfYWRkKHRpbGVyLCBwcik7CisgICAgcGFpbnRS
ZXF1ZXN0ID0gZXdrX3ZpZXdfcmVwYWludHNfcG9wKHNtYXJ0RGF0YS0+X3ByaXYsICZjb3VudCk7
CisgICAgcGFpbnRSZXF1ZXN0RW5kID0gcGFpbnRSZXF1ZXN0ICsgY291bnQ7CisgICAgZm9yICg7
IHBhaW50UmVxdWVzdCA8IHBhaW50UmVxdWVzdEVuZDsgcGFpbnRSZXF1ZXN0KyspCisgICAgICAg
IGVpbmFfdGlsZXJfcmVjdF9hZGQodGlsZXIsIHBhaW50UmVxdWVzdCk7CiAKICAgICBpdGVyYXRv
ciA9IGVpbmFfdGlsZXJfaXRlcmF0b3JfbmV3KHRpbGVyKTsKICAgICBpZiAoIWl0ZXJhdG9yKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcAppbmRleCAzMTAxYzEyLi41
YThkMTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKQEAgLTc3
LDEyICs3NywxMiBAQCBzdGF0aWMgdm9pZCogX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJvY2Vz
c19wcmUodm9pZCogZGF0YSwgRXZhc19PYmplY3QqIGV3a1ZpZQogCiBzdGF0aWMgRXZhc19PYmpl
Y3QqIF9ld2tfdmlld190aWxlZF9zbWFydF9iYWNraW5nX3N0b3JlX2FkZChFd2tfVmlld19TbWFy
dF9EYXRhKiBzbWFydERhdGEpCiB7Ci0gICAgRXZhc19PYmplY3QqIGJzID0gZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfYWRkKHNtYXJ0RGF0YS0+YmFzZS5ldmFzKTsKKyAgICBFdmFzX09iamVjdCog
YmFja2luZ1N0b3JlID0gZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfYWRkKHNtYXJ0RGF0YS0+YmFz
ZS5ldmFzKTsKICAgICBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9yZW5kZXJfY2Jfc2V0Ci0gICAg
ICAgIChicywgX2V3a192aWV3X3RpbGVkX3JlbmRlcl9jYiwgc21hcnREYXRhLT5fcHJpdik7Cisg
ICAgICAgIChiYWNraW5nU3RvcmUsIF9ld2tfdmlld190aWxlZF9yZW5kZXJfY2IsIHNtYXJ0RGF0
YS0+X3ByaXYpOwogICAgIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3VwZGF0ZXNfcHJvY2Vzc19w
cmVfc2V0Ci0gICAgICAgIChicywgX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJvY2Vzc19wcmUs
IHNtYXJ0RGF0YS0+X3ByaXYpOwotICAgIHJldHVybiBiczsKKyAgICAgICAgKGJhY2tpbmdTdG9y
ZSwgX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJvY2Vzc19wcmUsIHNtYXJ0RGF0YS0+X3ByaXYp
OworICAgIHJldHVybiBiYWNraW5nU3RvcmU7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC05NywxNyAr
OTcsMTcgQEAgX2V3a192aWV3X3RpbGVkX2NvbnRlbnRzX3NpemVfY2hhbmdlZF9jYih2b2lkKiBk
YXRhLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCoKIAogc3RhdGljIHZvaWQgX2V3a192aWV3
X3RpbGVkX3NtYXJ0X2FkZChFdmFzX09iamVjdCogZXdrVmlldykKIHsKLSAgICBFd2tfVmlld19T
bWFydF9EYXRhKiBzZDsKKyAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGE7CiAKICAg
ICBfcGFyZW50X3NjLnNjLmFkZChld2tWaWV3KTsKIAotICAgIHNkID0gc3RhdGljX2Nhc3Q8RXdr
X1ZpZXdfU21hcnRfRGF0YSo+KGV2YXNfb2JqZWN0X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpKTsK
LSAgICBpZiAoIXNkKQorICAgIHNtYXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0
X0RhdGEqPihldmFzX29iamVjdF9zbWFydF9kYXRhX2dldChld2tWaWV3KSk7CisgICAgaWYgKCFz
bWFydERhdGEpCiAgICAgICAgIHJldHVybjsKIAogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxi
YWNrX2FkZCgKLSAgICAgICAgc2QtPm1haW5fZnJhbWUsICJjb250ZW50cyxzaXplLGNoYW5nZWQi
LAotICAgICAgICBfZXdrX3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2NiLCBzZCk7
CisgICAgICAgIHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSwgImNvbnRlbnRzLHNpemUsY2hhbmdlZCIs
CisgICAgICAgIF9ld2tfdmlld190aWxlZF9jb250ZW50c19zaXplX2NoYW5nZWRfY2IsIHNtYXJ0
RGF0YSk7CiB9CiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3RpbGVkX3NtYXJ0X3Njcm9s
bHNfcHJvY2VzcyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCkBAIC0zOTIsMTQgKzM5
MiwxNCBAQCBFdmFzX09iamVjdCogZXdrX3ZpZXdfdGlsZWRfYWRkKEV2YXMqIGNhbnZhcykKIAog
RXdrX1RpbGVfVW51c2VkX0NhY2hlKiBld2tfdmlld190aWxlZF91bnVzZWRfY2FjaGVfZ2V0KGNv
bnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewotICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNk
ID0gZXdrX3ZpZXdfc21hcnRfZGF0YV9nZXQoZXdrVmlldyk7Ci0gICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKHNkLCAwKTsKLSAgICByZXR1cm4gZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfdGlsZV91bnVzZWRfY2FjaGVfZ2V0KHNkLT5iYWNraW5nX3N0b3JlKTsKKyAgICBFd2tfVmll
d19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBld2tfdmlld19zbWFydF9kYXRhX2dldChld2tWaWV3
KTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnREYXRhLCAwKTsKKyAg
ICByZXR1cm4gZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2FjaGVfZ2V0KHNt
YXJ0RGF0YS0+YmFja2luZ19zdG9yZSk7CiB9CiAKIHZvaWQgZXdrX3ZpZXdfdGlsZWRfdW51c2Vk
X2NhY2hlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiBj
YWNoZSkKIHsKLSAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzZCA9IGV3a192aWV3X3NtYXJ0X2Rh
dGFfZ2V0KGV3a1ZpZXcpOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNkKTsKLSAg
ICBld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX3VudXNlZF9jYWNoZV9zZXQoc2QtPmJhY2tp
bmdfc3RvcmUsIGNhY2hlKTsKKyAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBl
d2tfdmlld19zbWFydF9kYXRhX2dldChld2tWaWV3KTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTihzbWFydERhdGEpOworICAgIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfdW51
c2VkX2NhY2hlX3NldChzbWFydERhdGEtPmJhY2tpbmdfc3RvcmUsIGNhY2hlKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122714</attachid>
            <date>2012-01-16 22:13:26 -0800</date>
            <delta_ts>2012-01-19 01:22:19 -0800</delta_ts>
            <desc>rename callback function</desc>
            <filename>revised_patch.patch</filename>
            <type>text/plain</type>
            <size>63140</size>
            <attacher name="JungJik Lee">jungjik.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCBkMjE1MDQxLi41MmVkNGIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNzcgQEAKKzIwMTItMDEtMTYgIEp1bmdKaWsgTGVlICA8anVuZ2ppay5sZWVAc2Ft
c3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRhcHQgQysrIHN0eWxlIGFuZCBNb2RpZnkgdG8g
d2Via2l0LXN0eWxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzYzNzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNb2RpZnkgdGhlIGNvZGUgdG8gd2Via2l0LXN0eWxlIGFuZCBhZGFwdCB0byBDKysgc3R5
bGUgbmFtaW5nLgorICAgICAgICBUaGUgbG9naWMgb2YgdGhlIGNvZGUgaXMgbm90IGNoYW5nZWQu
CisKKyAgICAgICAgKiBld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuY3BwOgorICAgICAgICAo
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfYXNzb2NpYXRlKToKKyAgICAgICAgKF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Rpc3NvY2lhdGUpOgorICAgICAgICAoX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9wcm9jZXNzX3NpbmdsZSk6CisgICAg
ICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKToKKyAgICAgICAgKF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfaXRlbV9zbW9vdGhfc2NhbGVfc2V0KToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV92aWV3X2NvbHNfZW5kX2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfdmlld19yb3dzX2FsbF9kZWwpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3JlbmRlcik6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfbWVtX2Ri
Zyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2lnX3Vzcik6CisgICAgICAg
IChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRkKToKKyAgICAgICAgKF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9yZWNhbGNfcmVuZGVyZXJzKToKKyAgICAgICAgKF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV92aWV3X2RiZyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfdmlld193cmFwX2xlZnQpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Zp
ZXdfcmVmaWxsKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bvc19h
cHBseSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfY2FsY3VsYXRl
X29mZnNldF9mb3JjZSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRf
Y2FsY3VsYXRlX29mZnNldCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21h
cnRfY2FsY3VsYXRlX3Bvcyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21h
cnRfY2FsY3VsYXRlKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxf
ZnVsbF9vZmZzZXRfc2V0X2ludGVybmFsKToKKyAgICAgICAgKGV3a190aWxlZF9iYWNraW5nX3N0
b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXQpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfem9vbV9zZXRfaW50ZXJuYWwpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfem9vbV93ZWFrX3NldCk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9m
aXhfb2Zmc2V0cyk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9mbHVzaCk6Cisg
ICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lvbik6CisgICAg
ICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlbGF0aXZlX3JhZGl1cyk6
CisgICAgICAgICogZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmg6CisgICAgICAgICogZXdr
L2V3a190aWxlZF9tYXRyaXguY3BwOgorICAgICAgICAoX2V3a190aWxlX21hdHJpeF9jZWxsX2Zy
ZWUpOgorICAgICAgICAoX2V3a190aWxlX21hdHJpeF90aWxlX2ZyZWUpOgorICAgICAgICAoZXdr
X3RpbGVfbWF0cml4X25ldyk6CisgICAgICAgIChld2tfdGlsZV9tYXRyaXhfZnJlZSk6CisgICAg
ICAgIChld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldCk6CisgICAgICAgIChld2tfdGls
ZV9tYXRyaXhfdGlsZV9leGFjdF9nZXQpOgorICAgICAgICAoZXdrX3RpbGVfbWF0cml4X3RpbGVf
bmV3KToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF90aWxlX3B1dCk6CisgICAgICAgIChld2tf
dGlsZV9tYXRyaXhfZGJnKToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF9mcmVlemUpOgorICAg
ICAgICAoZXdrX3RpbGVfbWF0cml4X3RoYXcpOgorICAgICAgICAqIGV3ay9ld2tfdGlsZWRfbW9k
ZWwuY3BwOgorICAgICAgICAoZXdrX3RpbGVfdXBkYXRlc19wcm9jZXNzKToKKyAgICAgICAgKGV3
a190aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1dCk6CisgICAgICAgIChld2tfdGlsZV91bnVzZWRf
Y2FjaGVfZGJnKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX2V3a192
aWV3X3NtYXJ0X2ZvY3VzX2luKToKKyAgICAgICAgKGV3a192aWV3X3ByZV9yZW5kZXJfcmVnaW9u
KToKKyAgICAgICAgKGV3a192aWV3X3Rvb2xiYXJzX3Zpc2libGVfZ2V0KToKKyAgICAgICAgKGV3
a192aWV3X3N0YXR1c2Jhcl92aXNpYmxlX2dldCk6CisgICAgICAgIChld2tfdmlld19zY3JvbGxi
YXJzX3Zpc2libGVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X21lbnViYXJfdmlzaWJsZV9nZXQp
OgorICAgICAgICAoZXdrX3ZpZXdfem9vbV9yYW5nZV9zZXQpOgorICAgICAgICAqIGV3ay9ld2tf
dmlld19zaW5nbGUuY3BwOgorICAgICAgICAoX2V3a192aWV3X3NpbmdsZV9zbWFydF9yZXBhaW50
c19wcm9jZXNzKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXdfdGlsZWQuY3BwOgorICAgICAgICAo
X2V3a192aWV3X3RpbGVkX3NtYXJ0X2JhY2tpbmdfc3RvcmVfYWRkKToKKyAgICAgICAgKF9ld2tf
dmlld190aWxlZF9zbWFydF9hZGQpOgorICAgICAgICAoZXdrX3ZpZXdfdGlsZWRfdW51c2VkX2Nh
Y2hlX2dldCk6CisgICAgICAgIChld2tfdmlld190aWxlZF91bnVzZWRfY2FjaGVfc2V0KToKKwog
MjAxMi0wMS0xNiAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgW0VGTF0gQnVpbGQgZml4IHdoZW4gdXNpbmcgcGFuZ28gYXMgZm9udCBiYWNrZW5kcy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuY3BwCmlu
ZGV4IGZmYzY3MWMuLmNjNTEwYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a190aWxlZF9iYWNraW5nX3N0b3JlLmNwcApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX0V3a19U
aWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0gewogICAgIHN0cnVjdCB7CiAgICAgICAgIEV2YXNfQ29v
cmQgeCwgeSwgd2lkdGgsIGhlaWdodDsKICAgICB9IGdlb21ldHJ5OwotICAgIGJvb2wgc21vb3Ro
X3NjYWxlOworICAgIGJvb2wgc21vb3RoU2NhbGU7CiB9OwogCiBzdHJ1Y3QgX0V3a19UaWxlZF9C
YWNraW5nX1N0b3JlX1ByZV9SZW5kZXJfUmVxdWVzdCB7CkBAIC02MSw3ICs2MSw3IEBAIHN0cnVj
dCBfRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSB7CiAgICAgc3RydWN0IHsKICAgICAgICAg
RWluYV9Jbmxpc3QqKiBpdGVtczsKICAgICAgICAgRXZhc19Db29yZCB4LCB5LCB3aWR0aCwgaGVp
Z2h0OwotICAgICAgICBsb25nIGNvbHMsIHJvd3M7CisgICAgICAgIGxvbmcgY29sdW1ucywgcm93
czsKICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgIEV2YXNfQ29vcmQgd2lkdGgsIGhlaWdo
dDsKICAgICAgICAgICAgIGZsb2F0IHpvb207CkBAIC03MSw3ICs3MSw3IEBAIHN0cnVjdCBfRXdr
X1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSB7CiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAg
ICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgIEV2YXNfQ29vcmQgeCwgeTsKLSAgICAgICAgICAg
IH0gY3VyLCBvbGQsIGJhc2UsIHpvb21DZW50ZXI7CisgICAgICAgICAgICB9IGN1cnJlbnQsIG9s
ZCwgYmFzZSwgem9vbUNlbnRlcjsKICAgICAgICAgfSBvZmZzZXQ7CiAgICAgICAgIGJvb2wgdmlz
aWJsZSA6IDE7CiAgICAgfSB2aWV3OwpAQCAtMTA4LDcgKzEwOCw3IEBAIHN0cnVjdCBfRXdrX1Rp
bGVkX0JhY2tpbmdfU3RvcmVfRGF0YSB7CiAgICAgICAgIGJvb2wgb2Zmc2V0IDogMTsKICAgICB9
IGNoYW5nZWQ7CiAjaWZkZWYgREVCVUdfTUVNX0xFQUtTCi0gICAgRWNvcmVfRXZlbnRfSGFuZGxl
ciogc2lnX3VzcjsKKyAgICBFY29yZV9FdmVudF9IYW5kbGVyKiBzaWduYWxVc2VyOwogI2VuZGlm
CiB9OwogCkBAIC0yMDMsMTMgKzIwMywxMyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfaXRlbV9yZXNpemUoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaQogc3Rh
dGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfYXNzb2NpYXRlKEV3a19UaWxl
ZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYsIEV3a19UaWxlKiB0aWxlLCBFd2tfVGlsZWRfQmFj
a2luZ19TdG9yZV9JdGVtKiBpdGVtKQogewogICAgIGlmIChpdGVtLT50aWxlKQotICAgICAgICBD
UklUSUNBTCgiaXQtPnRpbGU9JXAsIGJ1dCBpdCBzaG91bGQgYmUgMCEiLCBpdGVtLT50aWxlKTsK
KyAgICAgICAgQ1JJVElDQUwoIml0ZW0tPnRpbGU9JXAsIGJ1dCBpdCBzaG91bGQgYmUgMCEiLCBp
dGVtLT50aWxlKTsKICAgICBpdGVtLT50aWxlID0gdGlsZTsKICAgICBldmFzX29iamVjdF9tb3Zl
KGl0ZW0tPnRpbGUtPmltYWdlLCBpdGVtLT5nZW9tZXRyeS54LCBpdGVtLT5nZW9tZXRyeS55KTsK
ICAgICBldmFzX29iamVjdF9yZXNpemUoaXRlbS0+dGlsZS0+aW1hZ2UsIGl0ZW0tPmdlb21ldHJ5
LndpZHRoLCBpdGVtLT5nZW9tZXRyeS5oZWlnaHQpOwogICAgIGV2YXNfb2JqZWN0X2ltYWdlX2Zp
bGxfc2V0CiAgICAgICAgIChpdGVtLT50aWxlLT5pbWFnZSwgMCwgMCwgaXRlbS0+Z2VvbWV0cnku
d2lkdGgsIGl0ZW0tPmdlb21ldHJ5LmhlaWdodCk7Ci0gICAgZXZhc19vYmplY3RfaW1hZ2Vfc21v
b3RoX3NjYWxlX3NldChpdGVtLT50aWxlLT5pbWFnZSwgaXRlbS0+c21vb3RoX3NjYWxlKTsKKyAg
ICBldmFzX29iamVjdF9pbWFnZV9zbW9vdGhfc2NhbGVfc2V0KGl0ZW0tPnRpbGUtPmltYWdlLCBp
dGVtLT5zbW9vdGhTY2FsZSk7CiAgICAgZXZhc19vYmplY3RfaW1hZ2VfYWxwaGFfc2V0KGl0ZW0t
PnRpbGUtPmltYWdlLCBwcml2LT52aWV3LnRpbGUuaGFzQWxwaGEpOwogCiAgICAgaWYgKCFld2tf
dGlsZV92aXNpYmxlX2dldCh0aWxlKSkKQEAgLTIyMCwxMyArMjIwLDEzIEBAIHN0YXRpYyB2b2lk
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Fzc29jaWF0ZShFd2tfVGlsZWRfQmFja2lu
Z19TdG9yZV9EYXRhCiAKIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxl
X2Rpc3NvY2lhdGUoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiwgRXdrX1RpbGVk
X0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbSwgZG91YmxlIGxhc3RVc2VkKQogewotICAgIEV3a19U
aWxlX1VudXNlZF9DYWNoZSogdGlsZWRVbnVzZWRDYWNoZTsKKyAgICBFd2tfVGlsZV9VbnVzZWRf
Q2FjaGUqIHRpbGVVbnVzZWRDYWNoZTsKICAgICBld2tfdGlsZV9oaWRlKGl0ZW0tPnRpbGUpOwog
ICAgIGlmICghZXdrX3RpbGVfdmlzaWJsZV9nZXQoaXRlbS0+dGlsZSkpCiAgICAgICAgIGV2YXNf
b2JqZWN0X3NtYXJ0X21lbWJlcl9kZWwoaXRlbS0+dGlsZS0+aW1hZ2UpOwogICAgIGV3a190aWxl
X21hdHJpeF90aWxlX3B1dChwcml2LT5tb2RlbC5tYXRyaXgsIGl0ZW0tPnRpbGUsIGxhc3RVc2Vk
KTsKLSAgICB0aWxlZFVudXNlZENhY2hlID0gZXdrX3RpbGVfbWF0cml4X3VudXNlZF9jYWNoZV9n
ZXQocHJpdi0+bW9kZWwubWF0cml4KTsKLSAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfYXV0b19m
bHVzaCh0aWxlZFVudXNlZENhY2hlKTsKKyAgICB0aWxlVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9t
YXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgpOworICAgIGV3a190aWxl
X3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGVVbnVzZWRDYWNoZSk7CiAKICAgICBpdGVtLT50
aWxlID0gMDsKIH0KQEAgLTMwNCwxNCArMzA0LDE0IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfY2xlYXIoRXdrX1RpbGVkX0JhY2tpbmdf
CiAgICAgfQogfQogCi0vKiBhc3N1bWVzIHByaXYtPnByb2Nlc3MucHJlX2NiIHdhcyBjYWxsZWQg
aWYgcmVxdWlyZWQhICovCisvKiBhc3N1bWVzIHByaXYtPnByb2Nlc3MucHJlQ2FsbGJhY2sgd2Fz
IGNhbGxlZCBpZiByZXF1aXJlZCEgKi8KIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfcHJvY2Vzc19zaW5nbGUoRXdrX1RpbGVkX0JhY2tpbmdf
U3RvcmVfRGF0YSogcHJpdikKIHsKICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9QcmVfUmVu
ZGVyX1JlcXVlc3QqIHJlcXVlc3Q7CiAgICAgRWluYV9SZWN0YW5nbGUgYXJlYTsKICAgICBFd2tf
VGlsZV9NYXRyaXgqIHRpbGVNYXRyaXggPSBwcml2LT5tb2RlbC5tYXRyaXg7CiAgICAgRXdrX1Rp
bGUqIHRpbGU7Ci0gICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlZFVudXNlZENhY2hlOwor
ICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlOwogICAgIHVuc2lnbmVk
IGxvbmcgY29sdW1uLCByb3c7CiAgICAgZmxvYXQgem9vbTsKICAgICBkb3VibGUgbGFzdF91c2Vk
ID0gZWNvcmVfbG9vcF90aW1lX2dldCgpOwpAQCAtMzQ4LDggKzM0OCw4IEBAIHN0YXRpYyB2b2lk
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfcHJvY2Vzc19zaW5n
bGUoRXdrX1RpbGVkCiAKIGVuZDoKICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3Jl
bmRlcl9yZXF1ZXN0X2RlbChwcml2LCByZXF1ZXN0KTsKLSAgICB0aWxlZFVudXNlZENhY2hlID0g
ZXdrX3RpbGVfbWF0cml4X3VudXNlZF9jYWNoZV9nZXQocHJpdi0+bW9kZWwubWF0cml4KTsKLSAg
ICBld2tfdGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0aWxlZFVudXNlZENhY2hlKTsKKyAg
ICB0aWxlVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2
LT5tb2RlbC5tYXRyaXgpOworICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKHRp
bGVVbnVzZWRDYWNoZSk7CiB9CiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX2l0ZW1fcHJvY2Vzc19pZGxlcl9jYih2b2lkKiBkYXRhKQpAQCAtNDMwLDE4ICs0MzAs
MTggQEAgc3RhdGljIGlubGluZSBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0
ZW1fZmlsbChFd2tfVGlsZWRfQmFja2luZ19TdG8KIAogICAgICAgICBpZiAoaXRlbS0+dGlsZSkg
ewogICAgICAgICAgICAgRXdrX1RpbGUqIG9sZCA9IGl0ZW0tPnRpbGU7Ci0gICAgICAgICAgICBp
ZiAob2xkLT5yb3cgIT0gY3VycmVudFJvdyB8fCBvbGQtPmNvbCAhPSBjdXJyZW50Q29sdW1uIHx8
IG9sZC0+em9vbSAhPSB6b29tKQorICAgICAgICAgICAgaWYgKG9sZC0+cm93ICE9IGN1cnJlbnRS
b3cgfHwgb2xkLT5jb2x1bW4gIT0gY3VycmVudENvbHVtbiB8fCBvbGQtPnpvb20gIT0gem9vbSkK
ICAgICAgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV9kaXNzb2NpYXRl
KHByaXYsIGl0ZW0sIGxhc3RVc2VkKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG9sZC0+cm93ID09
IGN1cnJlbnRSb3cgJiYgb2xkLT5jb2wgPT0gY3VycmVudENvbHVtbiAmJiBvbGQtPnpvb20gPT0g
em9vbSkKKyAgICAgICAgICAgIGVsc2UgaWYgKG9sZC0+cm93ID09IGN1cnJlbnRSb3cgJiYgb2xk
LT5jb2x1bW4gPT0gY3VycmVudENvbHVtbiAmJiBvbGQtPnpvb20gPT0gem9vbSkKICAgICAgICAg
ICAgICAgICBnb3RvIGVuZDsKICAgICAgICAgfQogCiAgICAgICAgIHRpbGUgPSBld2tfdGlsZV9t
YXRyaXhfdGlsZV9leGFjdF9nZXQocHJpdi0+bW9kZWwubWF0cml4LCBjdXJyZW50Q29sdW1uLCBj
dXJyZW50Um93LCB6b29tKTsKIAogICAgICAgICBpZiAoIXRpbGUpIHsKLSAgICAgICAgICAgIC8q
IE5PVEU6IGl0IG5ldmVyIHJldHVybnMgMCBpZiBpdC0+dGlsZSB3YXMgc2V0ISAqLworICAgICAg
ICAgICAgLyogTk9URTogaXQgbmV2ZXIgcmV0dXJucyAwIGlmIGl0ZW0tPnRpbGUgd2FzIHNldCEg
Ki8KICAgICAgICAgICAgIGlmIChpdGVtLT50aWxlKSB7Ci0gICAgICAgICAgICAgICAgQ1JJVElD
QUwoIml0LT50aWxlPSVwLCBidXQgaXQgc2hvdWxkIGJlIDAhIiwgaXRlbS0+dGlsZSk7CisgICAg
ICAgICAgICAgICAgQ1JJVElDQUwoIml0ZW0tPnRpbGU9JXAsIGJ1dCBpdCBzaG91bGQgYmUgMCEi
LCBpdGVtLT50aWxlKTsKICAgICAgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
dGlsZV9kaXNzb2NpYXRlKHByaXYsIGl0ZW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0VXNlZCk7CiAgICAgICAgICAgICB9CkBA
IC00ODYsNyArNDg2LDcgQEAgc3RhdGljIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2FkZChFd2tfVGlsZWQKIAogICAgIGl0ZW0tPnRp
bGUgPSAwOwogCi0gICAgaXRlbS0+c21vb3RoX3NjYWxlID0gcHJpdi0+dmlldy50aWxlLnpvb21X
ZWFrU21vb3RoU2NhbGU7CisgICAgaXRlbS0+c21vb3RoU2NhbGUgPSBwcml2LT52aWV3LnRpbGUu
em9vbVdlYWtTbW9vdGhTY2FsZTsKICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9t
b3ZlKGl0ZW0sIHgsIHkpOwogICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Jlc2l6
ZShpdGVtLCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQpOwogICAgIGlmICghX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX2l0ZW1fZmlsbChwcml2LCBpdGVtLCBjb2x1bW4sIHJvdykpIHsKQEAgLTUwOSw3
ICs1MDksNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9kZWwo
RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdgogCiBzdGF0aWMgdm9pZCBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9zbW9vdGhfc2NhbGVfc2V0KEV3a19UaWxlZF9CYWNraW5n
X1N0b3JlX0l0ZW0qIGl0ZW0sIEVpbmFfQm9vbCBzbW9vdGhTY2FsZSkKIHsKLSAgICBpZiAoaXRl
bS0+c21vb3RoX3NjYWxlID09IHNtb290aFNjYWxlKQorICAgIGlmIChpdGVtLT5zbW9vdGhTY2Fs
ZSA9PSBzbW9vdGhTY2FsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGl0ZW0tPnRpbGUp
CkBAIC01NDgsMTYgKzU0OCwxNiBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV92aWV3X2NvbHNfZW5kX2FkZChFd2tfVGlsZWRfQmFja2luZ19TdAogICAgIHVuc2ln
bmVkIGludCBpLCByb3cgPSByb3dMaXN0IC0gcHJpdi0+dmlldy5pdGVtczsKIAogICAgIGZvciAo
aSA9IDA7IGkgPCBjb3VudDsgaSsrLCBiYXNlQ29sdW1uKyspIHsKLSAgICAgICAgRXdrX1RpbGVk
X0JhY2tpbmdfU3RvcmVfSXRlbSogaXQ7CisgICAgICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3Jl
X0l0ZW0qIGl0ZW07CiAKLSAgICAgICAgaXQgPSBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRl
bV9hZGQocHJpdiwgYmFzZUNvbHVtbiwgcm93KTsKLSAgICAgICAgaWYgKCFpdCkgeworICAgICAg
ICBpdGVtID0gX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fYWRkKHByaXYsIGJhc2VDb2x1
bW4sIHJvdyk7CisgICAgICAgIGlmICghaXRlbSkgewogICAgICAgICAgICAgQ1JJVElDQUwoImZh
aWxlZCB0byBhZGQgY29sdW1uICV1IG9mICV1IGluIHJvdyAldS4iLCBpLCBjb3VudCwgcm93KTsK
ICAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X2NvbHNfZW5kX2RlbChw
cml2LCByb3dMaXN0LCBpKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQog
Ci0gICAgICAgICpyb3dMaXN0ID0gZWluYV9pbmxpc3RfYXBwZW5kKCpyb3dMaXN0LCBFSU5BX0lO
TElTVF9HRVQoaXQpKTsKKyAgICAgICAgKnJvd0xpc3QgPSBlaW5hX2lubGlzdF9hcHBlbmQoKnJv
d0xpc3QsIEVJTkFfSU5MSVNUX0dFVChpdGVtKSk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwog
fQpAQCAtNTkxLDcgKzU5MSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV92aWV3X3Jvd3NfYWxsX2RlbChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9ECiAKICAgICBmcmVl
KHByaXYtPnZpZXcuaXRlbXMpOwogICAgIHByaXYtPnZpZXcuaXRlbXMgPSAwOwotICAgIHByaXYt
PnZpZXcuY29scyA9IDA7CisgICAgcHJpdi0+dmlldy5jb2x1bW5zID0gMDsKICAgICBwcml2LT52
aWV3LnJvd3MgPSAwOwogfQogCkBAIC02MDAsNyArNjAwLDcgQEAgc3RhdGljIHZvaWQgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3JlbmRlcih2b2lkKiBkYXRhLCBFd2tfVGlsZSogdGlsZSwgY29u
c3QgRWkKICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2ID0gc3RhdGljX2Nh
c3Q8RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSo+KGRhdGEpOwogCiAgICAgSU5GKCJUT0RP
ICVwICh2aXNpYmxlPyAlZCkgWyVsdSwlbHVdICVkLCVkICsgJWR4JWQiLAotICAgICAgICB0aWxl
LCB0aWxlLT52aXNpYmxlLCB0aWxlLT5jb2wsIHRpbGUtPnJvdywgYXJlYS0+eCwgYXJlYS0+eSwg
YXJlYS0+dywgYXJlYS0+aCk7CisgICAgICAgIHRpbGUsIHRpbGUtPnZpc2libGUsIHRpbGUtPmNv
bHVtbiwgdGlsZS0+cm93LCBhcmVhLT54LCBhcmVhLT55LCBhcmVhLT53LCBhcmVhLT5oKTsKIAog
ICAgIGlmICghdGlsZS0+dmlzaWJsZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjU3LDcgKzY1Nyw3
IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9tZW1fZGJnKEV3a19UaWxl
ZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYpCiAgICAgcnVuKys7CiAKICAgICBwcmludGYoIlxu
LS0tIEJFR0lOIERFQlVHIFRJTEVEIEJBQ0tJTkcgU1RPUkUgTUVNT1JZIFslZF0gLS1cbiIKLSAg
ICAgICAgICAgInQ9JTAuMmYsIG9iaj0lcCwgcHJpdj0lcCwgdmlldy5pdGVtcz0lcCwgbWF0cml4
PSVwXG4iLAorICAgICAgICAgICAidGlsZT0lMC4yZiwgb2JqPSVwLCBwcml2PSVwLCB2aWV3Lml0
ZW1zPSVwLCBtYXRyaXg9JXBcbiIsCiAgICAgICAgICAgIHJ1biwgZWNvcmVfbG9vcF90aW1lX2dl
dCgpLAogICAgICAgICAgICBwcml2LT5zZWxmLCBwcml2LCBwcml2LT52aWV3Lml0ZW1zLCBwcml2
LT5tb2RlbC5tYXRyaXgpOwogCkBAIC02NjksMTMgKzY2OSwxMyBAQCBzdGF0aWMgdm9pZCBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfbWVtX2RiZyhFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRh
KiBwcml2KQogCiBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zaWdf
dXNyKHZvaWQqIGRhdGEsIGludCB0eXBlLCB2b2lkKiBldmVudCkKIHsKLSAgICBFY29yZV9FdmVu
dF9TaWduYWxfVXNlciogc2lnID0gKEVjb3JlX0V2ZW50X1NpZ25hbF9Vc2VyKilldmVudDsKKyAg
ICBFY29yZV9FdmVudF9TaWduYWxfVXNlciogc2lnbmFsVXNlciA9IChFY29yZV9FdmVudF9TaWdu
YWxfVXNlciopZXZlbnQ7CiAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiA9
IChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKilkYXRhOwogCi0gICAgaWYgKHNpZy0+bnVt
YmVyID09IDIpIHsKLSAgICAgICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxpZVVudXNlZENh
Y2hlOwotICAgICAgICB0aWxpZVVudXNlZENhY2hlID0gZXdrX3RpbGVfbWF0cml4X3VudXNlZF9j
YWNoZV9nZXQocHJpdi0+bW9kZWwubWF0cml4KTsKLSAgICAgICAgZXdrX3RpbGVfdW51c2VkX2Nh
Y2hlX2F1dG9fZmx1c2godGlsaWVVbnVzZWRDYWNoZSk7CisgICAgaWYgKHNpZ25hbFVzZXItPm51
bWJlciA9PSAyKSB7CisgICAgICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENh
Y2hlOworICAgICAgICB0aWxlVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9tYXRyaXhfdW51c2VkX2Nh
Y2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgpOworICAgICAgICBld2tfdGlsZV91bnVzZWRfY2Fj
aGVfYXV0b19mbHVzaCh0aWxlVW51c2VkQ2FjaGUpOwogICAgIH0KIAogICAgIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV92aWV3X2RiZyhwcml2KTsKQEAgLTY5OCw4ICs2OTgsOCBAQCBzdGF0aWMg
dm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRkKEV2YXNfT2JqZWN0KiBld2tC
YWNraW5nU3RvcmUpCiAgICAgcHJpdi0+dmlldy50aWxlLnpvb20gPSAxLjA7CiAgICAgcHJpdi0+
dmlldy50aWxlLndpZHRoID0gREVGQVVMVF9USUxFX1c7CiAgICAgcHJpdi0+dmlldy50aWxlLmhl
aWdodCA9IERFRkFVTFRfVElMRV9IOwotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ID0gMDsK
LSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSA9IDA7CisgICAgcHJpdi0+dmlldy5vZmZzZXQu
Y3VycmVudC54ID0gMDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgPSAwOwogICAg
IHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54ID0gMDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQu
eSA9IDA7CiAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ID0gMDsKQEAgLTczNCw3ICs3MzQs
NyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRkKEV2YXNf
T2JqZWN0KiBld2tCYWNraW5nU3RvcmUpCiAgICAgZXZhc19vYmplY3RfY2xpcF9zZXQocHJpdi0+
Y29udGVudHNDbGlwcGVyLCBwcml2LT5iYXNlLmNsaXBwZXIpOwogCiAjaWZkZWYgREVCVUdfTUVN
X0xFQUtTCi0gICAgcHJpdi0+c2lnX3VzciA9IGVjb3JlX2V2ZW50X2hhbmRsZXJfYWRkCisgICAg
cHJpdi0+c2lnbmFsVXNlciA9IGVjb3JlX2V2ZW50X2hhbmRsZXJfYWRkCiAgICAgICAgICAgICAg
ICAgICAgICAgICAoRUNPUkVfRVZFTlRfU0lHTkFMX1VTRVIsIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9zaWdfdXNyLCBwcml2KTsKICNlbmRpZgogfQpAQCAtODI5LDEzICs4MjksMTMgQEAgc3Rh
dGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3JlY2FsY19yZW5kZXJlcnMoRXdrX1Rp
bGVkX0JhY2tpbmdfU3RvcmVfRGEKICAgICBjb2x1bW5zID0gMSArIHN0YXRpY19jYXN0PGludD4o
Y2VpbCh3aWR0aCAvIHN0YXRpY19jYXN0PGZsb2F0Pih0aWxlV2lkdGgpKSk7CiAgICAgcm93cyA9
IDEgKyBzdGF0aWNfY2FzdDxpbnQ+KGNlaWwoaGVpZ2h0IC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRp
bGVIZWlnaHQpKSk7CiAKLSAgICBJTkYoImV3a0JhY2tpbmdTdG9yZSVwIG5ldyBncmlkIHNpemUg
Y29sczogJWxkLCByb3dzOiAlbGQsIHdhcyAlbGQsICVsZCIsCi0gICAgICAgIHByaXYtPnNlbGYs
IGNvbHVtbnMsIHJvd3MsIHByaXYtPnZpZXcuY29scywgcHJpdi0+dmlldy5yb3dzKTsKKyAgICBJ
TkYoImV3a0JhY2tpbmdTdG9yZSVwIG5ldyBncmlkIHNpemUgY29sdW1uczogJWxkLCByb3dzOiAl
bGQsIHdhcyAlbGQsICVsZCIsCisgICAgICAgIHByaXYtPnNlbGYsIGNvbHVtbnMsIHJvd3MsIHBy
aXYtPnZpZXcuY29sdW1ucywgcHJpdi0+dmlldy5yb3dzKTsKIAotICAgIGlmIChwcml2LT52aWV3
LmNvbHMgPT0gY29sdW1ucyAmJiBwcml2LT52aWV3LnJvd3MgPT0gcm93cykKKyAgICBpZiAocHJp
di0+dmlldy5jb2x1bW5zID09IGNvbHVtbnMgJiYgcHJpdi0+dmlldy5yb3dzID09IHJvd3MpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIG9sZENvbHMgPSBwcml2LT52aWV3LmNvbHM7CisgICAgb2xk
Q29scyA9IHByaXYtPnZpZXcuY29sdW1uczsKICAgICBvbGRSb3dzID0gcHJpdi0+dmlldy5yb3dz
OwogCiAgICAgaWYgKHJvd3MgPCBvbGRSb3dzKSB7CkBAIC04NTEsMTQgKzg1MSwxNCBAQCBzdGF0
aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVjYWxjX3JlbmRlcmVycyhFd2tfVGls
ZWRfQmFja2luZ19TdG9yZV9EYQogCiAgICAgcHJpdi0+dmlldy5pdGVtcyA9IHN0YXRpY19jYXN0
PEVpbmFfSW5saXN0Kio+KG5ld0l0ZW1zKTsKICAgICBwcml2LT52aWV3LnJvd3MgPSByb3dzOwot
ICAgIHByaXYtPnZpZXcuY29scyA9IGNvbHVtbnM7CisgICAgcHJpdi0+dmlldy5jb2x1bW5zID0g
Y29sdW1uczsKICAgICBpZiAocm93cyA+IG9sZFJvd3MpIHsKICAgICAgICAgRWluYV9Jbmxpc3Qq
KiBzdGFydCA9IHByaXYtPnZpZXcuaXRlbXMgKyBvbGRSb3dzOwogICAgICAgICBFaW5hX0lubGlz
dCoqIGVuZCA9IHByaXYtPnZpZXcuaXRlbXMgKyByb3dzOwogICAgICAgICBmb3IgKDsgc3RhcnQg
PCBlbmQ7IHN0YXJ0KyspIHsKICAgICAgICAgICAgICpzdGFydCA9IDA7Ci0gICAgICAgICAgICBF
aW5hX0Jvb2wgciA9IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X2NvbHNfZW5kX2FkZChw
cml2LCBzdGFydCwgMCwgY29sdW1ucyk7Ci0gICAgICAgICAgICBpZiAoIXIpIHsKKyAgICAgICAg
ICAgIEVpbmFfQm9vbCByZXN1bHQgPSBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19jb2xz
X2VuZF9hZGQocHJpdiwgc3RhcnQsIDAsIGNvbHVtbnMpOworICAgICAgICAgICAgaWYgKCFyZXN1
bHQpIHsKICAgICAgICAgICAgICAgICBDUklUSUNBTCgiZmFpbGVkIHRvIGFsbG9jYXRlICVsZCBj
b2x1bW5zIiwgY29sdW1ucyk7CiAgICAgICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX3ZpZXdfcm93c19yYW5nZV9kZWwocHJpdiwgcHJpdi0+dmlldy5pdGVtcyArIG9sZFJvd3Ms
IHN0YXJ0KTsKICAgICAgICAgICAgICAgICBwcml2LT52aWV3LnJvd3MgPSBvbGRSb3dzOwpAQCAt
OTE0LDExICs5MTQsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV92aWV3X2RiZyhjb25zdCBFd2tfVGlsZWRfQmFja2luZ19TdG8KIHsKICAgICBFaW5hX0lu
bGlzdCoqIHN0YXJ0LCAqKmVuZDsKICAgICBwcmludGYoInRpbGVzPSUybGQsJTJsZCAgbW9kZWw9
JTJsZCwlMmxkIFslZHglZF0gYmFzZT0lKzNsZCwlKzRsZCBvZmZzZXQ9JSs0ZCwlKzRkIG9sZD0l
KzRkLCUrNGQgYmFzZT0lKzNkLCUrM2RcbiIsCi0gICAgICAgICAgIHByaXYtPnZpZXcuY29scywg
cHJpdi0+dmlldy5yb3dzLAorICAgICAgICAgICBwcml2LT52aWV3LmNvbHVtbnMsIHByaXYtPnZp
ZXcucm93cywKICAgICAgICAgICAgcHJpdi0+bW9kZWwuY3VycmVudC5jb2x1bW5zLCBwcml2LT5t
b2RlbC5jdXJyZW50LnJvd3MsCiAgICAgICAgICAgIHByaXYtPm1vZGVsLndpZHRoLCBwcml2LT5t
b2RlbC5oZWlnaHQsCiAgICAgICAgICAgIHByaXYtPm1vZGVsLmJhc2UuY29sdW1uLCBwcml2LT5t
b2RlbC5iYXNlLnJvdywKLSAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngsIHByaXYt
PnZpZXcub2Zmc2V0LmN1ci55LAorICAgICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
LngsIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSwKICAgICAgICAgICAgcHJpdi0+dmlldy5v
ZmZzZXQub2xkLngsIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55LAogICAgICAgICAgICBwcml2LT52
aWV3Lm9mZnNldC5iYXNlLngsIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueSk7CiAKQEAgLTkzMyw3
ICs5MzMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Zp
ZXdfZGJnKGNvbnN0IEV3a19UaWxlZF9CYWNraW5nX1N0bwogICAgICAgICAgICAgaWYgKCFpdGVt
LT50aWxlKQogICAgICAgICAgICAgICAgIHByaW50ZigiICAgICAgICAgICAgOyIpOwogICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHByaW50ZigiJThwICVsdSwlbHU7IiwgaXRlbS0+
dGlsZSwgaXRlbS0+dGlsZS0+Y29sLCBpdGVtLT50aWxlLT5yb3cpOworICAgICAgICAgICAgICAg
IHByaW50ZigiJThwICVsdSwlbHU7IiwgaXRlbS0+dGlsZSwgaXRlbS0+dGlsZS0+Y29sdW1uLCBp
dGVtLT50aWxlLT5yb3cpOwogICAgICAgICB9CiAgICAgICAgIHByaW50ZigiXG4iKTsKICAgICB9
CkBAIC0xMDQxLDIyICsxMDQxLDIyIEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV92aWV3X3dyYXBfZG93bihFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAgKiBAaW50
ZXJuYWwKICAqIE1vdmUgbGVmdC1tb3N0IChmaXJzdCkgY29sdW1uIHJpZ2h0IGFzIGxhc3QgKHJp
Z2h0LW1vc3QpLgogICoKLSAqIFRoZSBmaW5hbCByZXN1bHQgaXMgdmlzdWFsbHkgdGhlIHNhbWUs
IGJ1dCBsb2dpY2FsbHkgdGhlIGZpcnN0IGNvbCB0aGF0CisgKiBUaGUgZmluYWwgcmVzdWx0IGlz
IHZpc3VhbGx5IHRoZSBzYW1lLCBidXQgbG9naWNhbGx5IHRoZSBmaXJzdCBjb2x1bW4gdGhhdAog
ICogd2VudCBvdXQgb2Ygc2NyZWVuIGlzIG5vdyBhdCBsYXN0IGFuZCBmaWxsZWQgd2l0aCBuZXcg
bW9kZWwgaXRlbXMuCiAgKgogICogVGhpcyBpcyB3b3J0aCBqdXN0IHdoZW4gQGEgY291bnQgaXMg
c21hbGxlciB0aGFuIEBjCi0gKiBwcml2LT52aWV3LmNvbHMsIGFmdGVyIHRoYXQgb25lIGlzIHJl
ZmlsbGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CisgKiBwcml2LT52aWV3LmNvbHVtbnMsIGFm
dGVyIHRoYXQgb25lIGlzIHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CiAgKiBpcyBi
ZXR0ZXIgdG8gdHJpZ2dlciBmdWxsIHJlZmlsbC4KICAqCiAgKiBAcGFyYW0gY291bnQgdGhlIG51
bWJlciBvZiB0aW1lcyB0byByZXBlYXQgdGhlIHByb2Nlc3MuCiAgKi8KIHN0YXRpYyB2b2lkIF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBfbGVmdChFd2tfVGlsZWRfQmFja2luZ19T
dG9yZV9EYXRhKiBwcml2LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSwgdW5zaWduZWQgaW50
IGNvdW50KQogewotICAgIHVuc2lnbmVkIGludCByb3csIGxhc3RDb2x1bW4gPSBwcml2LT52aWV3
LmNvbHMgLSAxOworICAgIHVuc2lnbmVkIGludCByb3csIGxhc3RDb2x1bW4gPSBwcml2LT52aWV3
LmNvbHVtbnMgLSAxOwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoID0gcHJpdi0+dmlldy50aWxl
LndpZHRoOwogICAgIEV2YXNfQ29vcmQgdGlsZUhlaWdodCA9IHByaXYtPnZpZXcudGlsZS5oZWln
aHQ7CiAgICAgRXZhc19Db29yZCBvZmZzZXRYID0gcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ICsg
Y291bnQgKiB0aWxlV2lkdGg7Ci0gICAgRXZhc19Db29yZCBveSA9IHkgKyBwcml2LT52aWV3Lm9m
ZnNldC5iYXNlLnk7CisgICAgRXZhc19Db29yZCBvZmZzZXRZID0geSArIHByaXYtPnZpZXcub2Zm
c2V0LmJhc2UueTsKICAgICBFaW5hX0lubGlzdCoqIGl0ZXJhdG9yOwogICAgIEVpbmFfSW5saXN0
KiogaXRlcmF0b3JFbmQ7CiAgICAgdW5zaWduZWQgaW50IGJhc2VDb2x1bW4gPSBsYXN0Q29sdW1u
IC0gY291bnQgKyAxOwpAQCAtMTA3NywxMCArMTA3NywxMCBAQCBzdGF0aWMgdm9pZCBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfdmlld193cmFwX2xlZnQoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVf
RGF0YQogICAgICAgICAgICAgaXQgPSBFSU5BX0lOTElTVF9DT05UQUlORVJfR0VUKCppdGVyYXRv
ciwgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSk7CiAgICAgICAgICAgICAqaXRlcmF0b3Ig
PSBlaW5hX2lubGlzdF9kZW1vdGUoKml0ZXJhdG9yLCAqaXRlcmF0b3IpOwogCi0gICAgICAgICAg
ICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0LCB0aWxlUG9zaXRpb25YLCBv
eSk7CisgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0LCB0
aWxlUG9zaXRpb25YLCBvZmZzZXRZKTsKICAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9pdGVtX2ZpbGwocHJpdiwgaXQsIGNvbHVtbiwgcm93KTsKICAgICAgICAgfQotICAgICAg
ICBveSArPSB0aWxlSGVpZ2h0OworICAgICAgICBvZmZzZXRZICs9IHRpbGVIZWlnaHQ7CiAgICAg
fQogCiAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ID0gb2Zmc2V0WDsKQEAgLTEwOTAsMTEg
KzEwOTAsMTEgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3Jh
cF9sZWZ0KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKICAqIEBpbnRlcm5hbAogICogTW92
ZSByaWdodC1tb3N0IChsYXN0KSBjb2x1bW4gbGVmdCBhcyBmaXJzdCAobGVmdC1tb3N0KS4KICAq
Ci0gKiBUaGUgZmluYWwgcmVzdWx0IGlzIHZpc3VhbGx5IHRoZSBzYW1lLCBidXQgbG9naWNhbGx5
IHRoZSBsYXN0IGNvbCB0aGF0CisgKiBUaGUgZmluYWwgcmVzdWx0IGlzIHZpc3VhbGx5IHRoZSBz
YW1lLCBidXQgbG9naWNhbGx5IHRoZSBsYXN0IGNvbHVtbiB0aGF0CiAgKiB3ZW50IG91dCBvZiBz
Y3JlZW4gaXMgbm93IGF0IGZpcnN0IGFuZCBmaWxsZWQgd2l0aCBuZXcgbW9kZWwgaXRlbXMuCiAg
KgogICogVGhpcyBpcyB3b3J0aCBqdXN0IHdoZW4gQGEgY291bnQgaXMgc21hbGxlciB0aGFuIEBj
Ci0gKiBwcml2LT52aWV3LmNvbHMsIGFmdGVyIHRoYXQgb25lIGlzIHJlZmlsbGluZyB0aGUgd2hv
bGUgbWF0cml4IHNvIGl0CisgKiBwcml2LT52aWV3LmNvbHVtbnMsIGFmdGVyIHRoYXQgb25lIGlz
IHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CiAgKiBpcyBiZXR0ZXIgdG8gdHJpZ2dl
ciBmdWxsIHJlZmlsbC4KICAqCiAgKiBAcGFyYW0gY291bnQgdGhlIG51bWJlciBvZiB0aW1lcyB0
byByZXBlYXQgdGhlIHByb2Nlc3MuCkBAIC0xMTM4LDcgKzExMzgsNyBAQCBzdGF0aWMgdm9pZCBf
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19yZWZpbGwoRXdrX1RpbGVkX0JhY2tpbmdfU3Rv
cmVfRGF0YSogcAogewogICAgIEVpbmFfSW5saXN0KiogaXRlcmF0b3IsICoqaXRlcmF0b3JFbmQ7
CiAgICAgRXZhc19Db29yZCBiYXNlVGlsZVBvc2l0aW9uWCwgdGlsZVBvc2l0aW9uWSwgdGlsZVdp
ZHRoLCB0aWxlSGVpZ2h0OwotICAgIHVuc2lnbmVkIGludCByOworICAgIHVuc2lnbmVkIGludCBy
b3c7CiAKICAgICBldmFzX29iamVjdF9tb3ZlKHByaXYtPmJhc2UuY2xpcHBlciwgeCwgeSk7CiAK
QEAgLTExNTAsMTkgKzExNTAsMTkgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX3ZpZXdfcmVmaWxsKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHAKIAogICAgIGl0
ZXJhdG9yID0gcHJpdi0+dmlldy5pdGVtczsKICAgICBpdGVyYXRvckVuZCA9IGl0ZXJhdG9yICsg
cHJpdi0+dmlldy5yb3dzOwotICAgIHIgPSAwOworICAgIHJvdyA9IDA7CiAKICAgICBwcml2LT5t
b2RlbC5iYXNlLmNvbHVtbiAtPSBzdGVwWDsKICAgICBwcml2LT5tb2RlbC5iYXNlLnJvdyAtPSBz
dGVwWTsKIAotICAgIGZvciAoOyBpdGVyYXRvciA8IGl0ZXJhdG9yRW5kOyBpdGVyYXRvcisrLCBy
KyspIHsKKyAgICBmb3IgKDsgaXRlcmF0b3IgPCBpdGVyYXRvckVuZDsgaXRlcmF0b3IrKywgcm93
KyspIHsKICAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbTsKICAgICAg
ICAgRXZhc19Db29yZCBuZXdUaWxlUG9zaXRpb25YID0gYmFzZVRpbGVQb3NpdGlvblg7Ci0gICAg
ICAgIHVuc2lnbmVkIGludCBjb3VudCA9IDA7CisgICAgICAgIHVuc2lnbmVkIGludCBjb2x1bW4g
PSAwOwogICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKCppdGVyYXRvciwgaXRlbSkgewotICAg
ICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fZmlsbChwcml2LCBpdGVtLCBj
b3VudCwgcik7CisgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxs
KHByaXYsIGl0ZW0sIGNvbHVtbiwgcm93KTsKICAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9pdGVtX21vdmUoaXRlbSwgbmV3VGlsZVBvc2l0aW9uWCwgdGlsZVBvc2l0aW9uWSk7
Ci0gICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgY29sdW1uKys7CiAgICAgICAgICAg
ICBuZXdUaWxlUG9zaXRpb25YICs9IHRpbGVXaWR0aDsKICAgICAgICAgfQogICAgICAgICB0aWxl
UG9zaXRpb25ZICs9IHRpbGVIZWlnaHQ7CkBAIC0xMTg1LDEwICsxMTg1LDEwIEBAIHN0YXRpYyB2
b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bvc19hcHBseShFd2tfVGlsZWRfQmFj
a2luZ19TdG9yZV9EYXRhCiAgICAgaXRlcmF0b3IgPSBwcml2LT52aWV3Lml0ZW1zOwogICAgIGl0
ZXJhdG9yRW5kID0gaXRlcmF0b3IgKyBwcml2LT52aWV3LnJvd3M7CiAgICAgZm9yICg7IGl0ZXJh
dG9yIDwgaXRlcmF0b3JFbmQ7IGl0ZXJhdG9yKyspIHsKLSAgICAgICAgRXdrX1RpbGVkX0JhY2tp
bmdfU3RvcmVfSXRlbSogaXQ7CisgICAgICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0q
IGl0ZW07CiAgICAgICAgIEV2YXNfQ29vcmQgb3ggPSBiYXNlVGlsZVBvc2l0aW9uWDsKLSAgICAg
ICAgRUlOQV9JTkxJU1RfRk9SRUFDSCgqaXRlcmF0b3IsIGl0KSB7Ci0gICAgICAgICAgICBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0LCBveCwgYmFzZVRpbGVQb3NpdGlvblkp
OworICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKCppdGVyYXRvciwgaXRlbSkgeworICAgICAg
ICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fbW92ZShpdGVtLCBveCwgYmFzZVRp
bGVQb3NpdGlvblkpOwogICAgICAgICAgICAgb3ggKz0gdGlsZVdpZHRoOwogICAgICAgICB9CiAg
ICAgICAgIGJhc2VUaWxlUG9zaXRpb25ZICs9IHRpbGVIZWlnaHQ7CkBAIC0xMTk3LDI4ICsxMTk3
LDI4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bvc19hcHBs
eShFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAKIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGVfb2Zmc2V0X2ZvcmNlKEV3a19UaWxlZF9CYWNr
aW5nX1N0b3JlX0RhdGEqIHByaXYpCiB7Ci0gICAgRXZhc19Db29yZCBkZWx0YVggPSBwcml2LT52
aWV3Lm9mZnNldC5jdXIueCAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54OwotICAgIEV2YXNfQ29v
cmQgZGVsdGFZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgLSBwcml2LT52aWV3Lm9mZnNldC5v
bGQueTsKKyAgICBFdmFzX0Nvb3JkIGRlbHRhWCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQu
eCAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54OworICAgIEV2YXNfQ29vcmQgZGVsdGFZID0gcHJp
di0+dmlldy5vZmZzZXQuY3VycmVudC55IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLnk7CiAgICAg
RXZhc19Db29yZCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQ7CiAgICAgaW50IHN0ZXBZLCBzdGVwWDsK
IAogICAgIElORigiZXdrQmFja2luZ1N0b3JlJXAsIG9mZnNldDogJSs0ZCwgJSs0ZCAoJSs0ZCwg
JSs0ZCkiLAotICAgICAgICBwcml2LT5zZWxmLCBkZWx0YVgsIGRlbHRhWSwgcHJpdi0+dmlldy5v
ZmZzZXQuY3VyLngsIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55KTsKKyAgICAgICAgcHJpdi0+c2Vs
ZiwgZGVsdGFYLCBkZWx0YVksIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCwgcHJpdi0+dmll
dy5vZmZzZXQuY3VycmVudC55KTsKIAogICAgIHRpbGVXaWR0aCA9IHByaXYtPnZpZXcudGlsZS53
aWR0aDsKICAgICB0aWxlSGVpZ2h0ID0gcHJpdi0+dmlldy50aWxlLmhlaWdodDsKIAotICAgIGxv
bmcgbmV3Q29sdW1uID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci54IC8gdGlsZVdpZHRoOworICAg
IGxvbmcgbmV3Q29sdW1uID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAvIHRpbGVXaWR0
aDsKICAgICBzdGVwWCA9IHByaXYtPm1vZGVsLmJhc2UuY29sdW1uIC0gbmV3Q29sdW1uOwotICAg
IGxvbmcgbmV3Um93ID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci55IC8gdGlsZUhlaWdodDsKKyAg
ICBsb25nIG5ld1JvdyA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgLyB0aWxlSGVpZ2h0
OwogICAgIHN0ZXBZID0gcHJpdi0+bW9kZWwuYmFzZS5yb3cgLSBuZXdSb3c7CiAKLSAgICBwcml2
LT52aWV3Lm9mZnNldC5vbGQueCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAgIHByaXYt
PnZpZXcub2Zmc2V0Lm9sZC55ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7CisgICAgcHJpdi0+
dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAgcHJp
di0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAgICAg
ZXZhc19vYmplY3RfbW92ZSgKICAgICAgICAgcHJpdi0+Y29udGVudHNDbGlwcGVyLAotICAgICAg
ICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCArIHByaXYtPnZpZXcueCwKLSAgICAgICAgcHJpdi0+
dmlldy5vZmZzZXQuY3VyLnkgKyBwcml2LT52aWV3LnkpOworICAgICAgICBwcml2LT52aWV3Lm9m
ZnNldC5jdXJyZW50LnggKyBwcml2LT52aWV3LngsCisgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0
LmN1cnJlbnQueSArIHByaXYtPnZpZXcueSk7CiAKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNl
LnggKz0gZGVsdGFYIC0gc3RlcFggKiB0aWxlV2lkdGg7CiAgICAgcHJpdi0+dmlldy5vZmZzZXQu
YmFzZS55ICs9IGRlbHRhWSAtIHN0ZXBZICogdGlsZUhlaWdodDsKQEAgLTEyMjksMTMgKzEyMjks
MTMgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0
ZV9vZmZzZXRfZm9yY2UoRXdrX1RpbGVkX0JhY2sKIAogc3RhdGljIHZvaWQgX2V3a190aWxlZF9i
YWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9vZmZzZXQoRXdrX1RpbGVkX0JhY2tpbmdfU3Rv
cmVfRGF0YSogcHJpdiwgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHkpCiB7Ci0gICAgRXZhc19D
b29yZCBkZWx0YVggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueCAtIHByaXYtPnZpZXcub2Zmc2V0
Lm9sZC54OwotICAgIEV2YXNfQ29vcmQgZGVsdGFZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkg
LSBwcml2LT52aWV3Lm9mZnNldC5vbGQueTsKKyAgICBFdmFzX0Nvb3JkIGRlbHRhWCA9IHByaXYt
PnZpZXcub2Zmc2V0LmN1cnJlbnQueCAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54OworICAgIEV2
YXNfQ29vcmQgZGVsdGFZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55IC0gcHJpdi0+dmll
dy5vZmZzZXQub2xkLnk7CiAgICAgRXZhc19Db29yZCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQ7CiAg
ICAgaW50IHN0ZXBZLCBzdGVwWDsKIAogICAgIElORigiZXdrQmFja2luZ1N0b3JlJXAsIG9mZnNl
dDogJSs0ZCwgJSs0ZCAoJSs0ZCwgJSs0ZCkiLAotICAgICAgICBwcml2LT5zZWxmLCBkZWx0YVgs
IGRlbHRhWSwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngsIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55
KTsKKyAgICAgICAgcHJpdi0+c2VsZiwgZGVsdGFYLCBkZWx0YVksIHByaXYtPnZpZXcub2Zmc2V0
LmN1cnJlbnQueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55KTsKIAogICAgIGlmICghZGVs
dGFYICYmICFkZWx0YVkpCiAgICAgICAgIHJldHVybjsKQEAgLTEyNDMsMjAgKzEyNDMsMjAgQEAg
c3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9vZmZz
ZXQoRXdrX1RpbGVkX0JhY2tpbmdfU3QKICAgICB0aWxlV2lkdGggPSBwcml2LT52aWV3LnRpbGUu
d2lkdGg7CiAgICAgdGlsZUhlaWdodCA9IHByaXYtPnZpZXcudGlsZS5oZWlnaHQ7CiAKLSAgICBs
b25nIG5ld0NvbCA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXIueCAvIHRpbGVXaWR0aDsKKyAgICBs
b25nIG5ld0NvbCA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggLyB0aWxlV2lkdGg7CiAg
ICAgc3RlcFggPSBwcml2LT5tb2RlbC5iYXNlLmNvbHVtbiAtIG5ld0NvbDsKLSAgICBsb25nIG5l
d1JvdyA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXIueSAvIHRpbGVIZWlnaHQ7CisgICAgbG9uZyBu
ZXdSb3cgPSAtcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55IC8gdGlsZUhlaWdodDsKICAgICBz
dGVwWSA9IHByaXYtPm1vZGVsLmJhc2Uucm93IC0gbmV3Um93OwogCi0gICAgcHJpdi0+dmlldy5v
ZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueDsKLSAgICBwcml2LT52aWV3Lm9m
ZnNldC5vbGQueSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OworICAgIHByaXYtPnZpZXcub2Zm
c2V0Lm9sZC54ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54OworICAgIHByaXYtPnZpZXcu
b2Zmc2V0Lm9sZC55ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55OwogICAgIGV2YXNfb2Jq
ZWN0X21vdmUoCiAgICAgICAgIHByaXYtPmNvbnRlbnRzQ2xpcHBlciwKLSAgICAgICAgcHJpdi0+
dmlldy5vZmZzZXQuY3VyLnggKyBwcml2LT52aWV3LngsCi0gICAgICAgIHByaXYtPnZpZXcub2Zm
c2V0LmN1ci55ICsgcHJpdi0+dmlldy55KTsKKyAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3Vy
cmVudC54ICsgcHJpdi0+dmlldy54LAorICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
LnkgKyBwcml2LT52aWV3LnkpOwogCi0gICAgaWYgKChzdGVwWCA8IDAgJiYgc3RlcFggPD0gLXBy
aXYtPnZpZXcuY29scykKLSAgICAgICAgfHwgKHN0ZXBYID4gMCAmJiBzdGVwWCA+PSBwcml2LT52
aWV3LmNvbHMpCisgICAgaWYgKChzdGVwWCA8IDAgJiYgc3RlcFggPD0gLXByaXYtPnZpZXcuY29s
dW1ucykKKyAgICAgICAgfHwgKHN0ZXBYID4gMCAmJiBzdGVwWCA+PSBwcml2LT52aWV3LmNvbHVt
bnMpCiAgICAgICAgIHx8IChzdGVwWSA8IDAgJiYgc3RlcFkgPD0gLXByaXYtPnZpZXcucm93cykK
ICAgICAgICAgfHwgKHN0ZXBZID4gMCAmJiBzdGVwWSA+PSBwcml2LT52aWV3LnJvd3MpKSB7CiAK
QEAgLTEyOTEsOCArMTI5MSw4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9zbWFydF9jYWxjdWxhdGVfcG9zKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlCiAgICAgcHJpdi0+
dmlldy55ID0geTsKICAgICBldmFzX29iamVjdF9tb3ZlKAogICAgICAgICBwcml2LT5jb250ZW50
c0NsaXBwZXIsCi0gICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ICsgcHJpdi0+dmlldy54
LAotICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSArIHByaXYtPnZpZXcueSk7CisgICAg
ICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCArIHByaXYtPnZpZXcueCwKKyAgICAgICAg
cHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55ICsgcHJpdi0+dmlldy55KTsKIH0KIAogc3RhdGlj
IHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZpbGxfcmVuZGVyZXJzKEV3a19UaWxlZF9C
YWNraW5nX1N0b3JlX0RhdGEqIHByaXYpCkBAIC0xMzgxLDEwICsxMzgxLDEwIEBAIHN0YXRpYyB2
b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGUoRXZhc19PYmplY3Qq
IGV3a0JhY2tpbmdTdG9yCiAgICAgICAgIHx8IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCA8PSAt
IHByaXYtPnZpZXcudGlsZS53aWR0aAogICAgICAgICB8fCBwcml2LT52aWV3Lm9mZnNldC5iYXNl
LnkgPiAwCiAgICAgICAgIHx8IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueSA8PSAtIHByaXYtPnZp
ZXcudGlsZS5oZWlnaHQpCi0gICAgICAgIEVSUigiaW5jb3JyZWN0IGJhc2Ugb2Zmc2V0ICUrNGQs
JSs0ZCwgdGlsZT0lZHglZCwgY3VyPSUrNGQsJSs0ZFxuIiwKKyAgICAgICAgRVJSKCJpbmNvcnJl
Y3QgYmFzZSBvZmZzZXQgJSs0ZCwlKzRkLCB0aWxlPSVkeCVkLCBjdXJyZW50PSUrNGQsJSs0ZFxu
IiwKICAgICAgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCwgcHJpdi0+dmlldy5vZmZz
ZXQuYmFzZS55LAogICAgICAgICAgICAgcHJpdi0+dmlldy50aWxlLndpZHRoLCBwcml2LT52aWV3
LnRpbGUuaGVpZ2h0LAotICAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngsIHByaXYt
PnZpZXcub2Zmc2V0LmN1ci55KTsKKyAgICAgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJl
bnQueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55KTsKIAogfQogCkBAIC0xNDQ4LDggKzE0
NDgsOCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxf
ZnVsbF9vZmZzZXRfc2V0X2ludGVybmFsKEV3a19UaQogICAgIGlmIChwcml2LT5yZW5kZXIuZGlz
YWJsZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1
ci54ID0geDsKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSA9IHk7CisgICAgcHJpdi0+dmll
dy5vZmZzZXQuY3VycmVudC54ID0geDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnkg
PSB5OwogCiAgICAgcHJpdi0+Y2hhbmdlZC5vZmZzZXQgPSB0cnVlOwogICAgIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9jaGFuZ2VkKHByaXYpOwpAQCAtMTQ2Miw3ICsxNDYyLDcgQEAgRWluYV9C
b29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXQoRXZhc19P
YmplY3QqIGV3a0JhY2tpbmcKICAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVwLCB4PSVkLCB5PSVk
IiwgZXdrQmFja2luZ1N0b3JlLCB4LCB5KTsKIAogICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJO
KGV3a0JhY2tpbmdTdG9yZSwgcHJpdiwgZmFsc2UpOwotICAgIGlmICh4ID09IHByaXYtPnZpZXcu
b2Zmc2V0LmN1ci54ICYmIHkgPT0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkpCisgICAgaWYgKHgg
PT0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ICYmIHkgPT0gcHJpdi0+dmlldy5vZmZzZXQu
Y3VycmVudC55KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBfZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3NldF9pbnRlcm5hbChwcml2LCB4LCB5
KTsKQEAgLTE0NzcsMTMgKzE0NzcsMTMgQEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0
b3JlX3Njcm9sbF9mdWxsX29mZnNldF9hZGQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmcKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Nj
cm9sbF9mdWxsX29mZnNldF9zZXRfaW50ZXJuYWwKLSAgICAgICAgICAgICAgIChwcml2LCBwcml2
LT52aWV3Lm9mZnNldC5jdXIueCArIGRlbHRhWCwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgKyBk
ZWx0YVkpOworICAgICAgICAgICAgICAgKHByaXYsIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQu
eCArIGRlbHRhWCwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55ICsgZGVsdGFZKTsKIH0KIAog
c3RhdGljIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV9zZXRfaW50ZXJu
YWwoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiwgZmxvYXQqIHpvb20sIEV2YXNf
Q29vcmQgY3VycmVudFgsIEV2YXNfQ29vcmQgY3VycmVudFksIEV2YXNfQ29vcmQqIG9mZnNldFgs
IEV2YXNfQ29vcmQqIG9mZnNldFkpCiB7Ci0gICAgKm9mZnNldFggPSBwcml2LT52aWV3Lm9mZnNl
dC5jdXIueDsKLSAgICAqb2Zmc2V0WSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OworICAgICpv
ZmZzZXRYID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54OworICAgICpvZmZzZXRZID0gcHJp
di0+dmlldy5vZmZzZXQuY3VycmVudC55OwogCiAgICAgaWYgKGZhYnNmKHByaXYtPnZpZXcudGls
ZS56b29tIC0gKnpvb20pIDwgWk9PTV9TVEVQX01JTikgewogICAgICAgICBEQkcoImlnbm9yZWQg
YXMgem9vbSBkaWZmZXJlbmNlIGlzIDwgJWY6ICVmIiwKQEAgLTE1MTQsMTAgKzE1MTQsMTAgQEAg
c3RhdGljIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV9zZXRfaW50ZXJu
YWwoRXdrX1RpbGVkX0JhY2tpbmdfU3QKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAg
IEVpbmFfSW5saXN0KiogaXRlcmF0b3IsICoqaXRlcmF0b3JFbmQ7Ci0gICAgRXdrX1RpbGVkX0Jh
Y2tpbmdfU3RvcmVfSXRlbSogaXQ7CisgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSog
aXRlbTsKIAotICAgIEV2YXNfQ29vcmQgbmV3WCA9IGN1cnJlbnRYICsgKHByaXYtPnZpZXcub2Zm
c2V0LmN1ci54IC0gY3VycmVudFgpICogc2NhbGU7Ci0gICAgRXZhc19Db29yZCBuZXdZID0gY3Vy
cmVudFkgKyAocHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgLSBjdXJyZW50WSkgKiBzY2FsZTsKKyAg
ICBFdmFzX0Nvb3JkIG5ld1ggPSBjdXJyZW50WCArIChwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
LnggLSBjdXJyZW50WCkgKiBzY2FsZTsKKyAgICBFdmFzX0Nvb3JkIG5ld1kgPSBjdXJyZW50WSAr
IChwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgLSBjdXJyZW50WSkgKiBzY2FsZTsKIAogICAg
IEV2YXNfQ29vcmQgbW9kZWxXaWR0aCA9IHByaXYtPm1vZGVsLndpZHRoICogc2NhbGU7CiAgICAg
RXZhc19Db29yZCBtb2RlbEhlaWdodCA9IHByaXYtPm1vZGVsLmhlaWdodCAqIHNjYWxlOwpAQCAt
MTU0MSwxNSArMTU0MSwxNSBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV96b29tX3NldF9pbnRlcm5hbChFd2tfVGlsZWRfQmFja2luZ19TdAogICAgIHByaXYtPmNo
YW5nZWQubW9kZWwgPSB0cnVlOwogICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9jaGFuZ2Vk
KHByaXYpOwogCi0gICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggPSBuZXdYOwotICAgIHByaXYt
PnZpZXcub2Zmc2V0LmN1ci55ID0gbmV3WTsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
LnggPSBuZXdYOworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSA9IG5ld1k7CiAgICAg
cHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ID0gYmFzZVg7CiAgICAgcHJpdi0+dmlldy5vZmZzZXQu
YmFzZS55ID0gYmFzZVk7CiAKLSAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCA9IHByaXYtPnZp
ZXcub2Zmc2V0LmN1ci54OwotICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0gcHJpdi0+dmll
dy5vZmZzZXQuY3VyLnk7Ci0gICAgKm9mZnNldFggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueDsK
LSAgICAqb2Zmc2V0WSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OworICAgIHByaXYtPnZpZXcu
b2Zmc2V0Lm9sZC54ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54OworICAgIHByaXYtPnZp
ZXcub2Zmc2V0Lm9sZC55ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55OworICAgICpvZmZz
ZXRYID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54OworICAgICpvZmZzZXRZID0gcHJpdi0+
dmlldy5vZmZzZXQuY3VycmVudC55OwogCiAgICAgZXZhc19vYmplY3RfbW92ZSgKICAgICAgICAg
cHJpdi0+Y29udGVudHNDbGlwcGVyLApAQCAtMTU2OCw5ICsxNTY4LDkgQEAgc3RhdGljIEVpbmFf
Qm9vbCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV9zZXRfaW50ZXJuYWwoRXdrX1RpbGVk
X0JhY2tpbmdfU3QKICAgICAgICAgRXZhc19Db29yZCB0aWxlUG9zaXRpb25YID0gYmFzZVRpbGVQ
b3NpdGlvblg7CiAgICAgICAgIEVpbmFfSW5saXN0KiBsc3QgPSAqaXRlcmF0b3I7CiAKLSAgICAg
ICAgRUlOQV9JTkxJU1RfRk9SRUFDSChsc3QsIGl0KSB7Ci0gICAgICAgICAgICBfZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0LCB0aWxlUG9zaXRpb25YLCB0aWxlUG9zaXRpb25Z
KTsKLSAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Jlc2l6ZShpdCwg
dGlsZVdpZHRoLCB0aWxlSGVpZ2h0KTsKKyAgICAgICAgRUlOQV9JTkxJU1RfRk9SRUFDSChsc3Qs
IGl0ZW0pIHsKKyAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUo
aXRlbSwgdGlsZVBvc2l0aW9uWCwgdGlsZVBvc2l0aW9uWSk7CisgICAgICAgICAgICBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9yZXNpemUoaXRlbSwgdGlsZVdpZHRoLCB0aWxlSGVpZ2h0
KTsKICAgICAgICAgICAgIHRpbGVQb3NpdGlvblggKz0gdGlsZVdpZHRoOwogICAgICAgICB9CiAg
ICAgICAgIHRpbGVQb3NpdGlvblkgKz0gdGlsZUhlaWdodDsKQEAgLTE2MTMsOCArMTYxMyw4IEBA
IEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3dlYWtfc2V0KEV2YXNfT2Jq
ZWN0KiBld2tCYWNraW5nU3RvcmUsIGZsCiAKICAgICBpbnQgdnJvd3MgPSBzdGF0aWNfY2FzdDxp
bnQ+KGNlaWwocHJpdi0+dmlldy5oZWlnaHQgL3N0YXRpY19jYXN0PGZsb2F0Pih0aWxlSGVpZ2h0
KSkgKyAxKTsKICAgICBpbnQgdmNvbHMgPSBzdGF0aWNfY2FzdDxpbnQ+KGNlaWwocHJpdi0+dmll
dy53aWR0aCAvIHN0YXRpY19jYXN0PGZsb2F0Pih0aWxlV2lkdGgpKSArIDEpOwotICAgIEV2YXNf
Q29vcmQgbmV3WCA9IGN1cnJlbnRYICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1ci54IC0gY3VycmVu
dFgpICogc2NhbGU7Ci0gICAgRXZhc19Db29yZCBuZXdZID0gY3VycmVudFkgKyAocHJpdi0+dmll
dy5vZmZzZXQuY3VyLnkgLSBjdXJyZW50WSkgKiBzY2FsZTsKKyAgICBFdmFzX0Nvb3JkIG5ld1gg
PSBjdXJyZW50WCArIChwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggLSBjdXJyZW50WCkgKiBz
Y2FsZTsKKyAgICBFdmFzX0Nvb3JkIG5ld1kgPSBjdXJyZW50WSArIChwcml2LT52aWV3Lm9mZnNl
dC5jdXJyZW50LnkgLSBjdXJyZW50WSkgKiBzY2FsZTsKICAgICBFdmFzX0Nvb3JkIGJhc2VYID0g
bmV3WCAlIHRpbGVXaWR0aDsKICAgICBFdmFzX0Nvb3JkIGJhc2VZID0gbmV3WSAlIHRpbGVIZWln
aHQ7CiAgICAgdW5zaWduZWQgbG9uZyBiYXNlUm93ID0gLW5ld1kgLyB0aWxlSGVpZ2h0OwpAQCAt
MTYyNiw3ICsxNjI2LDcgQEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21f
d2Vha19zZXQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgZmwKICAgICAgICAgcmVDYWxj
dWxhdGUgPSB0cnVlOwogICAgIH0KIAotICAgIGlmICh2cm93cyA+IHByaXYtPnZpZXcucm93cyB8
fCB2Y29scyA+IHByaXYtPnZpZXcuY29scykKKyAgICBpZiAodnJvd3MgPiBwcml2LT52aWV3LnJv
d3MgfHwgdmNvbHMgPiBwcml2LT52aWV3LmNvbHVtbnMpCiAgICAgICAgIHJlQ2FsY3VsYXRlID0g
dHJ1ZTsKIAogICAgIGlmIChyZUNhbGN1bGF0ZSkgewpAQCAtMTY2Nyw4ICsxNjY3LDggQEAgdm9p
ZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9maXhfb2Zmc2V0cyhFdmFzX09iamVjdCogZXdrQmFj
a2luZ1N0b3JlLCBFdmFzX0Nvb3IKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNr
aW5nU3RvcmUsIHByaXYpOwogICAgIEVpbmFfSW5saXN0KiogaXRlcmF0b3IsICoqaXRlcmF0b3JF
bmQ7CiAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbTsKLSAgICBFdmFzX0Nv
b3JkIG5ld1ggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueDsKLSAgICBFdmFzX0Nvb3JkIG5ld1kg
PSBwcml2LT52aWV3Lm9mZnNldC5jdXIueTsKKyAgICBFdmFzX0Nvb3JkIG5ld1ggPSBwcml2LT52
aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAgRXZhc19Db29yZCBuZXdZID0gcHJpdi0+dmlldy5v
ZmZzZXQuY3VycmVudC55OwogICAgIEV2YXNfQ29vcmQgYmFzZVggPSBwcml2LT52aWV3Lm9mZnNl
dC5iYXNlLng7CiAgICAgRXZhc19Db29yZCBiYXNlWSA9IHByaXYtPnZpZXcub2Zmc2V0LmJhc2Uu
eTsKICAgICBFdmFzX0Nvb3JkIHRpbGVXaWR0aCA9IHByaXYtPnZpZXcudGlsZS53aWR0aDsKQEAg
LTE2OTYsOCArMTY5Niw4IEBAIHZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZml4X29mZnNl
dHMoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgRXZhc19Db29yCiAgICAgICAgIHByaXYt
Pm1vZGVsLmJhc2Uucm93ID0gLW5ld1kgLyB0aWxlSGVpZ2h0OwogICAgIH0KIAotICAgIHByaXYt
PnZpZXcub2Zmc2V0LmN1ci54ID0gbmV3WDsKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSA9
IG5ld1k7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ID0gbmV3WDsKKyAgICBwcml2
LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgPSBuZXdZOwogICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9s
ZC54ID0gbmV3WDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueSA9IG5ld1k7CiAgICAgcHJp
di0+dmlldy5vZmZzZXQuYmFzZS54ID0gYmFzZVg7CkBAIC0xODE1LDggKzE4MTUsOCBAQCB2b2lk
IGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZsdXNoKEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3Rv
cmUpCiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2KTsK
ICAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSA9IDA7CiAKLSAgICBw
cml2LT52aWV3Lm9mZnNldC5jdXIueCA9IDA7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkg
PSAwOworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCA9IDA7CisgICAgcHJpdi0+dmll
dy5vZmZzZXQuY3VycmVudC55ID0gMDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCA9IDA7
CiAgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSAwOwogICAgIHByaXYtPnZpZXcub2Zmc2V0
LmJhc2UueCA9IDA7CkBAIC0xOTU2LDcgKzE5NTYsNyBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZWdpb24oRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9y
ZQogewogICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdiwg
ZmFsc2UpOwogICAgIEVpbmFfVGlsZV9HcmlkX1NsaWNlciBzbGljZXI7Ci0gICAgY29uc3QgRWlu
YV9UaWxlX0dyaWRfSW5mbyogaW5mbzsKKyAgICBjb25zdCBFaW5hX1RpbGVfR3JpZF9JbmZvKiBn
cmlkSW5mbzsKICAgICBFdmFzX0Nvb3JkIHRpbGVXaWR0aCwgdGlsZUhlaWdodDsKICAgICBFd2tf
VGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZTsKIApAQCAtMTk3MCwxMCArMTk3MCwx
MCBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZWdpb24o
RXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogCi0gICAgd2hpbGUgKGVpbmFfdGlsZV9ncmlkX3NsaWNlcl9uZXh0KCZzbGljZXIsICZpbmZv
KSkgewotICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIGMgPSBpbmZvLT5jb2w7Ci0gICAgICAg
IGNvbnN0IHVuc2lnbmVkIGxvbmcgciA9IGluZm8tPnJvdzsKLSAgICAgICAgaWYgKCFfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0X2FkZChwcml2LCBjLCByLCB6b29t
KSkKKyAgICB3aGlsZSAoZWluYV90aWxlX2dyaWRfc2xpY2VyX25leHQoJnNsaWNlciwgJmdyaWRJ
bmZvKSkgeworICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIGNvbHVtbiA9IGdyaWRJbmZvLT5j
b2w7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgcm93ID0gZ3JpZEluZm8tPnJvdzsKKyAg
ICAgICAgaWYgKCFfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0X2Fk
ZChwcml2LCBjb2x1bW4sIHJvdywgem9vbSkpCiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAK
QEAgLTE5OTcsNyArMTk5Nyw3IEBAIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9w
cmVfcmVuZGVyX3JlbGF0aXZlX3JhZGl1cyhFdmFzX09iamVjdCogZXdrQmFjCiAgICAgZW5kUm93
ID0gc3RkOjptaW4ocHJpdi0+bW9kZWwuY3VycmVudC5yb3dzIC0gMSwKICAgICAgICAgICAgICAg
ICAgICAgICAgcHJpdi0+bW9kZWwuYmFzZS5yb3cgKyBwcml2LT52aWV3LnJvd3MgKyBuIC0gMSk7
CiAgICAgZW5kQ29sID0gc3RkOjptaW4ocHJpdi0+bW9kZWwuY3VycmVudC5jb2x1bW5zIC0gMSwK
LSAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+bW9kZWwuYmFzZS5jb2x1bW4gKyBwcml2LT52
aWV3LmNvbHMgKyBuIC0gMSk7CisgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPm1vZGVsLmJh
c2UuY29sdW1uICsgcHJpdi0+dmlldy5jb2x1bW5zICsgbiAtIDEpOwogCiAgICAgSU5GKCJzdGFy
dFJvdz0lbHUsIGVuZFJvdz0lbHUsIHN0YXJ0Q29sPSVsdSwgZW5kQ29sPSVsdSIsCiAgICAgICAg
IHN0YXJ0Um93LCBlbmRSb3csIHN0YXJ0Q29sLCBlbmRDb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuaAppbmRleCA0NDc0MGNiLi5hYmQ4NmQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUu
aApAQCAtNjQsNyArNjQsNyBAQCBzdHJ1Y3QgX0V3a19UaWxlX1N0YXRzIHsKIHN0cnVjdCBfRXdr
X1RpbGUgewogICAgIEVpbmFfVGlsZXIqIHVwZGF0ZXM7ICAgIC8qKjwgdXBkYXRlZC9kaXJ0eSBh
cmVhcyAqLwogICAgIEV3a19UaWxlX1N0YXRzIHN0YXRzOyAgICAgICAvKio8IHRpbGUgdXNhZ2Ug
c3RhdGlzdGljcyAqLwotICAgIHVuc2lnbmVkIGxvbmcgY29sLCByb3c7IC8qKjwgdGlsZSB0aWxl
IHBvc2l0aW9uICovCisgICAgdW5zaWduZWQgbG9uZyBjb2x1bW4sIHJvdzsgLyoqPCB0aWxlIHRp
bGUgcG9zaXRpb24gKi8KICAgICBFdmFzX0Nvb3JkIHgsIHk7ICAgICAgICAvKio8IHRpbGUgY29v
cmRpbmF0ZSBwb3NpdGlvbiAqLwogCiAgICAgLyoqIE5ldmVyIGV2ZXIgY2hhbmdlIHRob3NlIGFm
dGVyIHRpbGUgaXMgY3JlYXRlZCAocmVzcGVjdCBjb25zdCEpICovCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21hdHJpeC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3RpbGVkX21hdHJpeC5jcHAKaW5kZXggOTVlMjMxOS4uODcyMzhiZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tYXRyaXguY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbWF0cml4LmNwcApAQCAtNDQsNyArNDQsNyBA
QCB0eXBlZGVmIHN0cnVjdCBfRXdrX1RpbGVfTWF0cml4X0VudHJ5IEV3a19UaWxlX01hdHJpeF9F
bnRyeTsKIHN0cnVjdCBfRXdrX1RpbGVfTWF0cml4IHsKICAgICBFaW5hX01hdHJpeHNwYXJzZSog
bWF0cml4OwogICAgIEVpbmFfSW5saXN0KiBtYXRyaWNlczsKLSAgICBFd2tfVGlsZV9VbnVzZWRf
Q2FjaGUqIHRpbGllVW51c2VkQ2FjaGU7CisgICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxl
VW51c2VkQ2FjaGU7CiAgICAgRXZhc19Db2xvcnNwYWNlIGNzcGFjZTsKICAgICBzdHJ1Y3Qgewog
ICAgICAgICB2b2lkICgqY2FsbGJhY2spKHZvaWQqIGRhdGEsIEV3a19UaWxlKiB0aWxlLCBjb25z
dCBFaW5hX1JlY3RhbmdsZSogdXBkYXRlKTsKQEAgLTk0LDcgKzk0LDcgQEAgc3RhdGljIHZvaWQg
X2V3a190aWxlX21hdHJpeF9jZWxsX2ZyZWUodm9pZCogdXNlckRhdGEsIHZvaWQqIGNlbGxEYXRh
KQogICAgIGlmICghdGlsZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZXdrX3RpbGVfdW51c2Vk
X2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlKTsKKyAgICBld2tfdGls
ZV91bnVzZWRfY2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiAKICAg
ICBpZiAodGlsZS0+dXBkYXRlcyB8fCB0aWxlLT5zdGF0cy5mdWxsX3VwZGF0ZSkKICAgICAgICAg
dGlsZU1hdHJpeC0+dXBkYXRlcyA9IGVpbmFfbGlzdF9yZW1vdmUodGlsZU1hdHJpeC0+dXBkYXRl
cywgdGlsZSk7CkBAIC0xMDIsOCArMTAyLDggQEAgc3RhdGljIHZvaWQgX2V3a190aWxlX21hdHJp
eF9jZWxsX2ZyZWUodm9pZCogdXNlckRhdGEsIHZvaWQqIGNlbGxEYXRhKQogICAgIGlmICh0aWxl
LT52aXNpYmxlKQogICAgICAgICBFUlIoImZyZWVpbmcgY2VsbCB0aGF0IGlzIHZpc2libGUsIGxl
YWtpbmcgdGlsZSAlcCIsIHRpbGUpOwogICAgIGVsc2UgewotICAgICAgICBpZiAoIWV3a190aWxl
X3VudXNlZF9jYWNoZV90aWxlX2dldCh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlLCB0aWxl
KSkKLSAgICAgICAgICAgIEVSUigidGlsZSAlcCB3YXMgbm90IGluIGNhY2hlICVwPyBsZWFraW5n
Li4uIiwgdGlsZSwgdGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgICAgIGlmICgh
ZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfZ2V0KHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNo
ZSwgdGlsZSkpCisgICAgICAgICAgICBFUlIoInRpbGUgJXAgd2FzIG5vdCBpbiBjYWNoZSAlcD8g
bGVha2luZy4uLiIsIHRpbGUsIHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiAgICAgICAg
IGVsc2UgewogICAgICAgICAgICAgRXdrX1RpbGVfTWF0cml4X0VudHJ5KiBlbnRyeTsKICAgICAg
ICAgICAgIERCRygidGlsZSBjZWxsIGRvZXMgbm90IGV4aXN0IGFueW1vcmUsIGZyZWUgaXQgJXAi
LCB0aWxlKTsKQEAgLTEyMSw3ICsxMjEsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVfbWF0cml4
X2NlbGxfZnJlZSh2b2lkKiB1c2VyRGF0YSwgdm9pZCogY2VsbERhdGEpCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGhhdyh0aWxlTWF0cml4LT50aWxpZVVu
dXNlZENhY2hlKTsKKyAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGhhdyh0aWxlTWF0cml4LT50
aWxlVW51c2VkQ2FjaGUpOwogfQogCiAvKiBjYWxsZWQgd2hlbiBjYWNoZSBvZiB1bnVzZWQgdGls
ZSBpcyBmbHVzaGVkICovCkBAIC0xMzcsNyArMTM3LDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxl
X21hdHJpeF90aWxlX2ZyZWUodm9pZCogZGF0YSwgRXdrX1RpbGUqIHRpbGUpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBpZiAoIWVpbmFfbWF0cml4c3BhcnNlX2NlbGxfaWR4X2dldChl
bnRyeS0+bWF0cml4LCB0aWxlLT5yb3csIHRpbGUtPmNvbCwgJmNlbGwpKSB7CisgICAgaWYgKCFl
aW5hX21hdHJpeHNwYXJzZV9jZWxsX2lkeF9nZXQoZW50cnktPm1hdHJpeCwgdGlsZS0+cm93LCB0
aWxlLT5jb2x1bW4sICZjZWxsKSkgewogCiAgICAgICAgIEVSUigicmVtb3ZpbmcgdGlsZSAlcCB0
aGF0IHdhcyBub3QgaW4gdGhlIG1hdHJpeD8gTGVha2luZy4uLiIsIHRpbGUpOwogICAgICAgICBy
ZXR1cm47CkBAIC0yMTEsMTAgKzIxMSwxMCBAQCBFd2tfVGlsZV9NYXRyaXgqIGV3a190aWxlX21h
dHJpeF9uZXcoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUsIHVucwogICAg
IGV3a190aWxlX21hdHJpeF96b29tX2xldmVsX3NldCh0aWxlTWF0cml4LCB6b29tTGV2ZWwpOwog
CiAgICAgaWYgKHRpbGVVbnVzZWRDYWNoZSkKLSAgICAgICAgdGlsZU1hdHJpeC0+dGlsaWVVbnVz
ZWRDYWNoZSA9IGV3a190aWxlX3VudXNlZF9jYWNoZV9yZWYodGlsZVVudXNlZENhY2hlKTsKKyAg
ICAgICAgdGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlID0gZXdrX3RpbGVfdW51c2VkX2NhY2hl
X3JlZih0aWxlVW51c2VkQ2FjaGUpOwogICAgIGVsc2UgewotICAgICAgICB0aWxlTWF0cml4LT50
aWxpZVVudXNlZENhY2hlID0gZXdrX3RpbGVfdW51c2VkX2NhY2hlX25ldyhERUZBVUxUX0NBQ0hF
X1NJWkUpOwotICAgICAgICBpZiAoIXRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpIHsKKyAg
ICAgICAgdGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlID0gZXdrX3RpbGVfdW51c2VkX2NhY2hl
X25ldyhERUZBVUxUX0NBQ0hFX1NJWkUpOworICAgICAgICBpZiAoIXRpbGVNYXRyaXgtPnRpbGVV
bnVzZWRDYWNoZSkgewogICAgICAgICAgICAgRVJSKCJubyBjYWNoZSBvZiB1bnVzZWQgdGlsZSEi
KTsKICAgICAgICAgICAgIGVpbmFfbWF0cml4c3BhcnNlX2ZyZWUodGlsZU1hdHJpeC0+bWF0cml4
KTsKICAgICAgICAgICAgIGZyZWUodGlsZU1hdHJpeCk7CkBAIC0yOTgsNyArMjk4LDcgQEAgdm9p
ZCBld2tfdGlsZV9tYXRyaXhfZnJlZShFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgpCiAKICAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTih0aWxlTWF0cml4KTsKIAotICAgIGV3a190aWxl
X3VudXNlZF9jYWNoZV9mcmVlemUodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAg
ZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUp
OwogICAgIGV3a190aWxlX21hdHJpeF9pbnZhbGlkYXRlKHRpbGVNYXRyaXgpOwogICAgIGVudHJ5
ID0gRUlOQV9JTkxJU1RfQ09OVEFJTkVSX0dFVCh0aWxlTWF0cml4LT5tYXRyaWNlcywgRXdrX1Rp
bGVfTWF0cml4X0VudHJ5KTsKICAgICBlaW5hX21hdHJpeHNwYXJzZV9mcmVlKGVudHJ5LT5tYXRy
aXgpOwpAQCAtMzA2LDggKzMwNiw4IEBAIHZvaWQgZXdrX3RpbGVfbWF0cml4X2ZyZWUoRXdrX1Rp
bGVfTWF0cml4KiB0aWxlTWF0cml4KQogICAgIGZyZWUoZW50cnkpOwogICAgIHRpbGVNYXRyaXgt
Pm1hdHJpY2VzID0gMDsKIAotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3KHRpbGVNYXRy
aXgtPnRpbGllVW51c2VkQ2FjaGUpOwotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV91bnJlZih0
aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlKTsKKyAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVf
dGhhdyh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOworICAgIGV3a190aWxlX3VudXNlZF9j
YWNoZV91bnJlZih0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogCiAjaWZkZWYgREVCVUdf
TUVNX0xFQUtTCiAgICAgdGlsZXMgPSB0aWxlTWF0cml4LT5zdGF0cy50aWxlcy5hbGxvY2F0ZWQg
LSB0aWxlTWF0cml4LT5zdGF0cy50aWxlcy5mcmVlZDsKQEAgLTM1NSw3ICszNTUsNyBAQCB2b2lk
IGV3a190aWxlX21hdHJpeF9yZXNpemUoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4LCB1bnNp
Z25lZCBsb25nIGNvbHMsIHVucwogRXdrX1RpbGVfVW51c2VkX0NhY2hlKiBld2tfdGlsZV9tYXRy
aXhfdW51c2VkX2NhY2hlX2dldChjb25zdCBFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgpCiB7
CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHRpbGVNYXRyaXgsIDApOwotICAg
IHJldHVybiB0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlOworICAgIHJldHVybiB0aWxlTWF0
cml4LT50aWxlVW51c2VkQ2FjaGU7CiB9CiAKIC8qKgpAQCAtMzkwLDcgKzM5MCw3IEBAIEV3a19U
aWxlKiBld2tfdGlsZV9tYXRyaXhfdGlsZV9leGFjdF9nZXQoRXdrX1RpbGVfTWF0cml4KiB0aWxl
TWF0cml4LCB1bnNpZ25lZCBsCiAKIGVuZDoKICAgICBpZiAoIXRpbGUtPnZpc2libGUpIHsKLSAg
ICAgICAgaWYgKCFld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9nZXQodGlsZU1hdHJpeC0+dGls
aWVVbnVzZWRDYWNoZSwgdGlsZSkpCisgICAgICAgIGlmICghZXdrX3RpbGVfdW51c2VkX2NhY2hl
X3RpbGVfZ2V0KHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSwgdGlsZSkpCiAgICAgICAgICAg
ICBXUk4oIkV3a19UaWxlIHdhcyB1bnVzZWQgYnV0IG5vdCBpbiBjYWNoZT8gYnVnISIpOwogICAg
IH0KIApAQCAtNDU5LDcgKzQ1OSw3IEBAIEV3a19UaWxlKiBld2tfdGlsZV9tYXRyaXhfdGlsZV9u
ZXcoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4LCBFdmFzKiBjYW52YXMsIHVuCiAgICAgICAg
IHJldHVybiAwOwogICAgIH0KIAotICAgIHRpbGUtPmNvbCA9IGNvbHVtbjsKKyAgICB0aWxlLT5j
b2x1bW4gPSBjb2x1bW47CiAgICAgdGlsZS0+cm93ID0gcm93OwogICAgIHRpbGUtPnggPSBjb2x1
bW4gKiB0aWxlV2lkdGg7CiAgICAgdGlsZS0+eSA9IHJvdyAqIHRpbGVIZWlnaHQ7CkBAIC00ODYs
NyArNDg2LDcgQEAgRXdrX1RpbGUqIGV3a190aWxlX21hdHJpeF90aWxlX25ldyhFd2tfVGlsZV9N
YXRyaXgqIHRpbGVNYXRyaXgsIEV2YXMqIGNhbnZhcywgdW4KICAqIHVudXNlZCBjYWNoZS4KICAq
CiAgKiBAcGFyYW0gdGlsZU1hdHJpeCB0aGUgdGlsZSBtYXRyaXggdG8gcmV0dXJuIHRpbGUgdG8u
Ci0gKiBAcGFyYW0gdCB0aGUgdGlsZSBpbnN0YW5jZSB0byByZXR1cm4sIG11c3QgQGIgbm90IGJl
IEBjIDAuCisgKiBAcGFyYW0gdGlsZSB0aGUgdGlsZSBpbnN0YW5jZSB0byByZXR1cm4sIG11c3Qg
QGIgbm90IGJlIEBjIDAuCiAgKiBAcGFyYW0gbGFzdF91c2VkIHRpbWUgaW4gd2hpY2ggdGlsZS53
aWR0aGFzIGxhc3QgdXNlZC4KICAqCiAgKiBAcmV0dXJuICN0cnVlIG9uIHN1Y2Nlc3Mgb3IgI2Zh
bHNlIG9uIGZhaWx1cmUuCkBAIC01MDAsNyArNTAwLDcgQEAgRWluYV9Cb29sIGV3a190aWxlX21h
dHJpeF90aWxlX3B1dChFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgsIEV3a19UaWxlKiB0aWxl
LAogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHRpbGUtPnN0YXRzLmxhc3RfdXNlZCA9IGxh
c3RVc2VkOwotICAgIHJldHVybiBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQodGlsZU1h
dHJpeC0+dGlsaWVVbnVzZWRDYWNoZSwgdGlsZSwgX2V3a190aWxlX21hdHJpeF90aWxlX2ZyZWUs
IHRpbGVNYXRyaXgpOworICAgIHJldHVybiBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQo
dGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlLCB0aWxlLCBfZXdrX3RpbGVfbWF0cml4X3RpbGVf
ZnJlZSwgdGlsZU1hdHJpeCk7CiB9CiAKIEVpbmFfQm9vbCBld2tfdGlsZV9tYXRyaXhfdGlsZV91
cGRhdGUoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4LCB1bnNpZ25lZCBsb25nIGNvbCwgdW5z
aWduZWQgbG9uZyByb3csIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiB1cGRhdGUpCkBAIC03MDYsNyAr
NzA2LDcgQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfZGJnKGNvbnN0IEV3a19UaWxlX01hdHJpeCog
dGlsZU1hdHJpeCkKICAgICAgICAgICAgICAgICBwcmludGYoIlxuIik7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBwcmludGYoIiUzbHUsJTNsdSAlMTBwOiIsIGNvbHVtbiwgcm93LCB0aWxl
KTsKLSAgICAgICAgICAgIHByaW50ZigiIFslM2x1LCUzbHUgKyAlZHglZCBAICUwLjNmXSVjIiwg
dGlsZS0+Y29sLCB0aWxlLT5yb3csIHRpbGUtPndpZHRoLCB0aWxlLT5oZWlnaHQsIHRpbGUtPnpv
b20sIHRpbGUtPnZpc2libGUgPyAnKicgOiAnICcpOworICAgICAgICAgICAgcHJpbnRmKCIgWyUz
bHUsJTNsdSArICVkeCVkIEAgJTAuM2ZdJWMiLCB0aWxlLT5jb2x1bW4sIHRpbGUtPnJvdywgdGls
ZS0+d2lkdGgsIHRpbGUtPmhlaWdodCwgdGlsZS0+em9vbSwgdGlsZS0+dmlzaWJsZSA/ICcqJyA6
ICcgJyk7CiAgICAgICAgICAgICBwcmludGYoIlxuIik7CiAgICAgICAgIH0KICAgICB9CkBAIC03
MTQsNyArNzE0LDcgQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfZGJnKGNvbnN0IEV3a19UaWxlX01h
dHJpeCogdGlsZU1hdHJpeCkKICAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgIGVpbmFfaXRlcmF0
b3JfZnJlZShpdGVyYXRvcik7CiAKLSAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfZGJnKHRpbGVN
YXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9kYmco
dGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlKTsKIH0KIAogLyoqCkBAIC03MzAsNyArNzMwLDcg
QEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfZnJlZXplKEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJp
eCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTih0aWxlTWF0cml4KTsKICAgICBp
ZiAoIXRpbGVNYXRyaXgtPmZyb3plbikKLSAgICAgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2Zy
ZWV6ZSh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlKTsKKyAgICAgICAgZXdrX3RpbGVfdW51
c2VkX2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogICAgIHRpbGVN
YXRyaXgtPmZyb3plbisrOwogfQogCkBAIC03NTAsNSArNzUwLDUgQEAgdm9pZCBld2tfdGlsZV9t
YXRyaXhfdGhhdyhFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgpCiAKICAgICB0aWxlTWF0cml4
LT5mcm96ZW4tLTsKICAgICBpZiAoIXRpbGVNYXRyaXgtPmZyb3plbikKLSAgICAgICAgZXdrX3Rp
bGVfdW51c2VkX2NhY2hlX3RoYXcodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAg
ICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3KHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNo
ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21vZGVs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbW9kZWwuY3BwCmluZGV4IDg0
MDQ4Y2IuLjg3ZmE4M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGls
ZWRfbW9kZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbW9kZWwu
Y3BwCkBAIC0zNDUsMTYgKzM0NSwxNiBAQCB2b2lkIGV3a190aWxlX3VwZGF0ZXNfcHJvY2VzcyhF
d2tfVGlsZSogdGlsZSwgdm9pZCAoKmNhbGxiYWNrKSh2b2lkKiBkYXRhLCBFd2tfVAogICAgICAg
ICByZWN0LmggPSB0aWxlLT5oZWlnaHQ7CiAjaWZkZWYgVElMRV9TVEFUU19BQ0NPVU5UX1JFTkRF
Ul9USU1FCiAgICAgICAgIHN0cnVjdCB0aW1ldmFsIHRpbWV2OwotICAgICAgICBkb3VibGUgcmVu
ZGVyX3N0YXJ0OworICAgICAgICBkb3VibGUgcmVuZGVyU3RhcnRUaW1lOwogICAgICAgICBnZXR0
aW1lb2ZkYXkoJnRpbWV2LCAwKTsKLSAgICAgICAgcmVuZGVyX3N0YXJ0aWxlID0gKGRvdWJsZSl0
aW1ldi50dl9zZWMgKworICAgICAgICByZW5kZXJTdGFydFRpbWUgPSAoZG91YmxlKXRpbWV2LnR2
X3NlYyArCiAgICAgICAgICAgICAgICAgICAgICAgICgoKGRvdWJsZSl0aW1ldi50dl91c2VjKSAv
IDEwMDAwMDApOwogI2VuZGlmCiAgICAgICAgIGNhbGxiYWNrKCh2b2lkKilkYXRhLCB0aWxlLCAm
cmVjdCk7CiAjaWZkZWYgVElMRV9TVEFUU19BQ0NPVU5UX1JFTkRFUl9USU1FCiAgICAgICAgIGdl
dHRpbWVvZmRheSgmdGltZXYsIDApOwogICAgICAgICB0aWxlLT5zdGF0cy5yZW5kZXJfdGltZSA9
IChkb3VibGUpdGltZXYudHZfc2VjICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
KChkb3VibGUpdGltZXYudHZfdXNlYykgLyAxMDAwMDAwKSAtIHJlbmRlcl9zdGFydDsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoKChkb3VibGUpdGltZXYudHZfdXNlYykgLyAxMDAw
MDAwKSAtIHJlbmRlclN0YXJ0VGltZTsKICNlbmRpZgogICAgIH0gZWxzZSBpZiAodGlsZS0+dXBk
YXRlcykgewogICAgICAgICBFaW5hX0l0ZXJhdG9yKiBpdHIgPSBlaW5hX3RpbGVyX2l0ZXJhdG9y
X25ldyh0aWxlLT51cGRhdGVzKTsKQEAgLTUyMCw3ICs1MjAsNyBAQCB2b2lkIGV3a190aWxlX3Vu
dXNlZF9jYWNoZV9jbGVhcihFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSkK
IH0KIAogLyoqCi0gKiBoZWlnaHRvbGQgcmVmZXJlbmNlIHRvIGNhY2hlLgorICogSG9sZCByZWZl
cmVuY2UgdG8gY2FjaGUuCiAgKgogICogQHJldHVybiBzYW1lIHBvaW50ZXIgYXMgdGFrZW4uCiAg
KgpAQCAtNjMwLDcgKzYzMCw3IEBAIHZvaWQgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2F1dG9fZmx1
c2goRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUpCiAgKiBGcmVlemUgY2Fj
aGUgdG8gbm90IGRvIG1haW50ZW5hbmNlIHRhc2tzLgogICoKICAqIE1haW50ZW5hbmNlIHRhc2tz
IG9wdGltaXplIGNhY2hlIHVzYWdlLCBidXQgbWF5YmUgd2Uga25vdyB3ZSBzaG91bGQKLSAqIGhl
aWdodG9sZCBvbiB0aGVtIHVudGlsIHdlIGRvIHRoZSBsYXN0IG9wZXJhdGlvbiwgaW4gdGhpcyBj
YXNlIHdlIGZyZWV6ZQorICogaG9sZCBvbiB0aGVtIHVudGlsIHdlIGRvIHRoZSBsYXN0IG9wZXJh
dGlvbiwgaW4gdGhpcyBjYXNlIHdlIGZyZWV6ZQogICogd2hpbGUgb3BlcmF0aW5nIGFuZCB0aGVu
IHRoYXcgd2hlbiB3ZSdyZSBkb25lLgogICoKICAqIEBzZWUgZXdrX3RpbGVfdW51c2VkX2NhY2hl
X3RoYXcoKQpAQCAtNzA3LDggKzcwNyw4IEBAIEVpbmFfQm9vbCBld2tfdGlsZV91bnVzZWRfY2Fj
aGVfdGlsZV9nZXQoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUsCiAgKiBi
ZWNhdXNlIHVzdWFsbHkgd2Ugd2FudCBhIGxhenkgb3BlcmF0aW9uIGZvciBiZXR0ZXIgcGVyZm9y
bWFuY2UuCiAgKgogICogQHBhcmFtIHRpbGVVbnVzZWRDYWNoZSBjYWNoZSBvZiB1bnVzZWQgdGls
ZXMKLSAqIEBwYXJhbSB0IHRpbGUgdG8gYmUgYWRkZWQgdG8gY2FjaGUuCi0gKiBAcGFyYW0gdGls
ZV9mcmVlX2NiIGZ1bmN0aW9uIHVzZWQgdG8gZnJlZSB0aWxlcy4KKyAqIEBwYXJhbSB0aWxlIHRp
bGUgdG8gYmUgYWRkZWQgdG8gY2FjaGUuCisgKiBAcGFyYW0gdGlsZUZyZWVDYWxsYmFjayBmdW5j
dGlvbiB1c2VkIHRvIGZyZWUgdGlsZXMuCiAgKiBAcGFyYW0gZGF0YSBjb250ZXh0IHRvIGdpdmUg
YmFjayB0byBAYSB0aWxlX2ZyZWVfY2IgYXMgZmlyc3QgYXJndW1lbnQuCiAgKgogICogQHJldHVy
biAjdHJ1ZSBvbiBzdWNjZXNzLCAjZmFsc2Ugb3RoZXJ3aXNlLiBJZiBAYyB0aWxlLT52aXNpYmxl
CkBAIC03MTYsNyArNzE2LDcgQEAgRWluYV9Cb29sIGV3a190aWxlX3VudXNlZF9jYWNoZV90aWxl
X2dldChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSwKICAqCiAgKiBAc2Vl
IGV3a190aWxlX3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKCkKICAqLwotRWluYV9Cb29sIGV3a190
aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1dChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVz
ZWRDYWNoZSwgRXdrX1RpbGUqIHRpbGUsIHZvaWQgKCogdGlsZUZyZWVDYikodm9pZCogZGF0YSwg
RXdrX1RpbGUqIHRpbGUpLCBjb25zdCB2b2lkKiBkYXRhKQorRWluYV9Cb29sIGV3a190aWxlX3Vu
dXNlZF9jYWNoZV90aWxlX3B1dChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNo
ZSwgRXdrX1RpbGUqIHRpbGUsIHZvaWQgKCogdGlsZUZyZWVDYWxsYmFjaykodm9pZCogZGF0YSwg
RXdrX1RpbGUqIHRpbGUpLCBjb25zdCB2b2lkKiBkYXRhKQogewogICAgIEV3a19UaWxlX1VudXNl
ZF9DYWNoZV9FbnRyeSogdW51c2VkQ2FjaGVFbnRyeTsKIApAQCAtNzM3LDcgKzczNyw3IEBAIEVp
bmFfQm9vbCBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQoRXdrX1RpbGVfVW51c2VkX0Nh
Y2hlKiB0aWxlVW51c2VkQ2FjaGUsCiAKICAgICB1bnVzZWRDYWNoZUVudHJ5LT50aWxlID0gdGls
ZTsKICAgICB1bnVzZWRDYWNoZUVudHJ5LT53ZWlnaHQgPSAwOyAvKiBjYWxjdWxhdGVkIGp1c3Qg
YmVmb3JlIHNvcnQgKi8KLSAgICB1bnVzZWRDYWNoZUVudHJ5LT50aWxlX2ZyZWUuY2FsbGJhY2sg
PSB0aWxlRnJlZUNiOworICAgIHVudXNlZENhY2hlRW50cnktPnRpbGVfZnJlZS5jYWxsYmFjayA9
IHRpbGVGcmVlQ2FsbGJhY2s7CiAgICAgdW51c2VkQ2FjaGVFbnRyeS0+dGlsZV9mcmVlLmRhdGEg
PSAodm9pZCopZGF0YTsKIAogICAgIHRpbGVVbnVzZWRDYWNoZS0+ZW50cmllcy5jb3VudCsrOwpA
QCAtNzU4LDcgKzc1OCw3IEBAIHZvaWQgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2RiZyhjb25zdCBF
d2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSkKICAgICBFSU5BX0xJU1RfRk9S
RUFDSCh0aWxlVW51c2VkQ2FjaGUtPmVudHJpZXMubGlzdCwgbGlzdCwgaXRlbSkgewogICAgICAg
ICBjb25zdCBFd2tfVGlsZSogdGlsZSA9IHN0YXRpY19jYXN0PEV3a19UaWxlX1VudXNlZF9DYWNo
ZV9FbnRyeSo+KGl0ZW0pLT50aWxlOwogICAgICAgICBwcmludGYoIiBbJTNsdSwlM2x1ICsgJWR4
JWQgQCAlMC4zZl0lYyIsCi0gICAgICAgICAgICAgICB0aWxlLT5jb2wsIHRpbGUtPnJvdywgdGls
ZS0+d2lkdGgsIHRpbGUtPmhlaWdodCwgdGlsZS0+em9vbSwKKyAgICAgICAgICAgICAgIHRpbGUt
PmNvbHVtbiwgdGlsZS0+cm93LCB0aWxlLT53aWR0aCwgdGlsZS0+aGVpZ2h0LCB0aWxlLT56b29t
LAogICAgICAgICAgICAgICAgdGlsZS0+dmlzaWJsZSA/ICcqJyA6ICcgJyk7CiAKICAgICAgICAg
aWYgKCEoY291bnQgJSA0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDUzNTQw
MGIuLjEwYzQ1YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMjE2LDYwICsy
MTYsNjAgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogI2lmbmRlZiBFV0tfVFlQ
RV9DSEVDSwogI2RlZmluZSBFV0tfVklFV19UWVBFX0NIRUNLKGV3a1ZpZXcsIC4uLikgZG8geyB9
IHdoaWxlICgwKQogI2Vsc2UKLSNkZWZpbmUgRVdLX1ZJRVdfVFlQRV9DSEVDSyhld2tWaWV3LCAu
Li4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBkbyB7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICAgICAgY29uc3QgY2hhciogX3RtcF9vdHlwZSA9IGV2YXNfb2JqZWN0X3R5cGVfZ2V0
KGV3a1ZpZXcpOyAgICAgICAgICAgICAgIFwKLSAgICAgICAgY29uc3QgRXZhc19TbWFydCogX3Rt
cF9zID0gZXZhc19vYmplY3Rfc21hcnRfc21hcnRfZ2V0KGV3a1ZpZXcpOyAgICAgIFwKLSAgICAg
ICAgaWYgKEVJTkFfVU5MSUtFTFkoIV90bXBfcykpIHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICAgICAgICAgIEVJTkFfTE9HX0NSSVQgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAoIiVwICglcykg
aXMgbm90IGEgc21hcnQgb2JqZWN0ISIsIGV3a1ZpZXcsICAgICAgICAgICAgICAgICAgIFwKLSAg
ICAgICAgICAgICAgICBfdG1wX290eXBlID8gX3RtcF9vdHlwZSA6ICIobnVsbCkiKTsgICAgICAg
ICAgICAgICAgICAgXAotICAgICAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICB9ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAg
ICBjb25zdCBFdmFzX1NtYXJ0X0NsYXNzKiBfdG1wX3NjID0gZXZhc19zbWFydF9jbGFzc19nZXQo
X3RtcF9zKTsgXAotICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWSghX3RtcF9zYykpIHsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgRUlOQV9MT0dfQ1JJVCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAg
ICAgICAgICgiJXAgKCVzKSBpcyBub3QgYSBzbWFydCBvYmplY3QhIiwgZXdrVmlldywgICAgICAg
ICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgIF90bXBfb3R5cGUgPyBfdG1wX290eXBlIDog
IihudWxsKSIpOyAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4gX19WQV9B
UkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAg
IH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgICAgIGlmIChFSU5BX1VOTElLRUxZKF90bXBfc2MtPmRhdGEgIT0gRVdL
X1ZJRVdfVFlQRV9TVFIpKSB7ICAgICAgICBcCi0gICAgICAgICAgICBFSU5BX0xPR19DUklUICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAg
ICAgICAgKCIlcCAoJXMpIGlzIG5vdCBvZiBhbiBld2tfdmlldyAobmVlZCAlcCwgZ290ICVwKSEi
LCAgICBcCi0gICAgICAgICAgICAgICAgZXdrVmlldywgX3RtcF9vdHlwZSA/IF90bXBfb3R5cGUg
OiAiKG51bGwpIiwgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICBFV0tfVklFV19U
WVBFX1NUUiwgX3RtcF9zYy0+ZGF0YSk7ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAg
ICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBFV0tfVklFV19UWVBFX0NIRUNLKGV3
a1ZpZXcsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBkbyB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgICAgIGNvbnN0IGNoYXIqIF90bXBfb3R5cGUgPSBldmFzX29iamVj
dF90eXBlX2dldChld2tWaWV3KTsgICAgICAgICAgICAgXAorICAgICAgICBjb25zdCBFdmFzX1Nt
YXJ0KiBfdG1wX3MgPSBldmFzX29iamVjdF9zbWFydF9zbWFydF9nZXQoZXdrVmlldyk7ICAgIFwK
KyAgICAgICAgaWYgKEVJTkFfVU5MSUtFTFkoIV90bXBfcykpIHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBFSU5BX0xPR19DUklUICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAg
ICAgICgiJXAgKCVzKSBpcyBub3QgYSBzbWFydCBvYmplY3QhIiwgZXdrVmlldywgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgICAgICAgICBfdG1wX290eXBlID8gX3RtcF9vdHlwZSA6ICIobnVs
bCkiKTsgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICByZXR1cm4gX19WQV9B
UkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY29uc3QgRXZhc19TbWFydF9DbGFzcyogX3RtcF9z
YyA9IGV2YXNfc21hcnRfY2xhc3NfZ2V0KF90bXBfcyk7ICAgICBcCisgICAgICAgIGlmIChFSU5B
X1VOTElLRUxZKCFfdG1wX3NjKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgRUlOQV9MT0dfQ1JJVCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAoIiVwICglcykgaXMg
bm90IGEgc21hcnQgb2JqZWN0ISIsIGV3a1ZpZXcsICAgICAgICAgICAgICAgICBcCisgICAgICAg
ICAgICAgICAgX3RtcF9vdHlwZSA/IF90bXBfb3R5cGUgOiAiKG51bGwpIik7ICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgICAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgICAgIGlmIChFSU5BX1VOTElLRUxZKF90bXBfc2MtPmRhdGEgIT0gRVdLX1ZJRVdfVFlQ
RV9TVFIpKSB7ICAgICAgICAgICAgXAorICAgICAgICAgICAgRUlOQV9MT0dfQ1JJVCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAg
ICAgICAoIiVwICglcykgaXMgbm90IG9mIGFuIGV3a192aWV3IChuZWVkICVwLCBnb3QgJXApISIs
ICAgICAgICBcCisgICAgICAgICAgICAgICAgZXdrVmlldywgX3RtcF9vdHlwZSA/IF90bXBfb3R5
cGUgOiAiKG51bGwpIiwgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIEVXS19WSUVX
X1RZUEVfU1RSLCBfdG1wX3NjLT5kYXRhKTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICAgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIH0gd2hpbGUgKDAp
CiAjZW5kaWYKIAotI2RlZmluZSBFV0tfVklFV19TRF9HRVQoZXdrVmlldywgcHRyKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBFd2tfVmlld19TbWFydF9EYXRhKiBwdHIg
PSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZXZhc19vYmplY3Rfc21hcnRfZGF0
YV9nZXQoZXdrVmlldykpCisjZGVmaW5lIEVXS19WSUVXX1NEX0dFVChld2tWaWV3LCBwb2ludGVy
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEV3a19WaWV3X1NtYXJ0
X0RhdGEqIHBvaW50ZXIgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZXZhc19v
YmplY3Rfc21hcnRfZGF0YV9nZXQoZXdrVmlldykpCiAKLSNkZWZpbmUgRVdLX1ZJRVdfU0RfR0VU
X09SX1JFVFVSTihld2tWaWV3LCBwdHIsIC4uLikgICAgICAgICAgXAotICAgIEVXS19WSUVXX1RZ
UEVfQ0hFQ0soZXdrVmlldywgX19WQV9BUkdTX18pOyAgICAgICAgICAgICAgICBcCi0gICAgRVdL
X1ZJRVdfU0RfR0VUKGV3a1ZpZXcsIHB0cik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBpZiAoIXB0cikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgICAgICBDUklUSUNBTCgibm8gc21hcnQgZGF0YSBmb3Igb2JqZWN0ICVwICglcykiLCAg
ICBcCi0gICAgICAgICAgICAgICAgIGV3a1ZpZXcsIGV2YXNfb2JqZWN0X3R5cGVfZ2V0KGV3a1Zp
ZXcpKTsgICAgICAgICAgIFwKLSAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3
a1ZpZXcsIHBvaW50ZXIsIC4uLikgICAgICAgICAgICAgICAgICAgIFwKKyAgICBFV0tfVklFV19U
WVBFX0NIRUNLKGV3a1ZpZXcsIF9fVkFfQVJHU19fKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgRVdLX1ZJRVdfU0RfR0VUKGV3a1ZpZXcsIHBvaW50ZXIpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICghcG9pbnRlcikgeyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg
ICAgQ1JJVElDQUwoIm5vIHNtYXJ0IGRhdGEgZm9yIG9iamVjdCAlcCAoJXMpIiwgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgIGV3a1ZpZXcsIGV2YXNfb2JqZWN0X3R5
cGVfZ2V0KGV3a1ZpZXcpKTsgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gX19W
QV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKICAgICB9CiAKLSNkZWZpbmUgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwdHIpICAg
ICAgICAgICAgICBcCi0gICAgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhICpwdHIgPSBzbWFydERhdGEt
Pl9wcml2CisjZGVmaW5lIEVXS19WSUVXX1BSSVZfR0VUKHNtYXJ0RGF0YSwgcG9pbnRlcikgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIEV3a19WaWV3X1ByaXZhdGVfRGF0YSog
cG9pbnRlciA9IHNtYXJ0RGF0YS0+X3ByaXYKIAotI2RlZmluZSBFV0tfVklFV19QUklWX0dFVF9P
Ul9SRVRVUk4oc21hcnREYXRhLCBwdHIsIC4uLikgICAgICAgICAgICAgICBcCi0gICAgRVdLX1ZJ
RVdfUFJJVl9HRVQoc21hcnREYXRhLCBwdHIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBpZiAoIXB0cikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgICAgIENSSVRJQ0FMKCJubyBwcml2YXRlIGRhdGEgZm9yIG9i
amVjdCAlcCAoJXMpIiwgICAgICAgICAgXAotICAgICAgICAgICAgICAgICBzbWFydERhdGEtPnNl
bGYsIGV2YXNfb2JqZWN0X3R5cGVfZ2V0KHNtYXJ0RGF0YS0+c2VsZikpOyAgICAgXAotICAgICAg
ICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyNkZWZpbmUgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcG9pbnRl
ciwgLi4uKSAgICAgICAgICAgICAgICBcCisgICAgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRh
LCBwb2ludGVyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICgh
cG9pbnRlcikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgQ1JJVElDQUwoIm5vIHByaXZhdGUgZGF0YSBmb3Igb2JqZWN0
ICVwICglcykiLCAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgIHNtYXJ0
RGF0YS0+c2VsZiwgZXZhc19vYmplY3RfdHlwZV9nZXQoc21hcnREYXRhLT5zZWxmKSk7ICAgXAor
ICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKICAgICB9CiAKLSNkZWZpbmUgRVdLX1ZJRVdfVElMRURfVFlQ
RV9DSEVDS19PUl9SRVRVUk4oZXdrVmlldywgLi4uKSBcCi0gICAgaWYgKCFldmFzX29iamVjdF9z
bWFydF90eXBlX2NoZWNrKGV3a1ZpZXcsICJFd2tfVmlld19UaWxlZCIpKSB7IFwKLSAgICAgICAg
SU5GKCJvYmplY3QgaXMgbm90IGEgaW5zdGFuY2Ugb2YgRXdrX1ZpZXdfVGlsZWQiKTsgXAotICAg
ICAgICByZXR1cm4gX19WQV9BUkdTX187IFwKKyNkZWZpbmUgRVdLX1ZJRVdfVElMRURfVFlQRV9D
SEVDS19PUl9SRVRVUk4oZXdrVmlldywgLi4uKSAgICAgICAgICAgICAgICAgICBcCisgICAgaWYg
KCFldmFzX29iamVjdF9zbWFydF90eXBlX2NoZWNrKGV3a1ZpZXcsICJFd2tfVmlld19UaWxlZCIp
KSB7ICAgICAgICAgXAorICAgICAgICBJTkYoIm9iamVjdCBpcyBub3QgYSBpbnN0YW5jZSBvZiBF
d2tfVmlld19UaWxlZCIpOyAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIF9fVkFf
QVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CiAgICAgfQogCiBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfY2hhbmdlZChFd2tfVmlld19T
bWFydF9EYXRhKiBzbWFydERhdGEpCkBAIC00MTAsMTIgKzQxMCwxMiBAQCBzdGF0aWMgdm9pZCBf
ZXdrX3ZpZXdfc2Nyb2xsc19mbHVzaChFd2tfVmlld19Qcml2YXRlX0RhdGEqIHByaXYpCiBzdGF0
aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9mb2N1c19pbihFd2tfVmlld19TbWFydF9EYXRh
KiBzbWFydERhdGEpCiB7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwcml2KTsK
LSAgICBXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXIqIGZjID0gcHJpdi0+cGFnZS0+Zm9jdXNDb250
cm9sbGVyKCk7Ci0gICAgREJHKCJld2tWaWV3PSVwLCBmYz0lcCIsIHNtYXJ0RGF0YS0+c2VsZiwg
ZmMpOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChmYywgZmFsc2UpOworICAg
IFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlciogZm9jdXNDb250cm9sbGVyID0gcHJpdi0+cGFnZS0+
Zm9jdXNDb250cm9sbGVyKCk7CisgICAgREJHKCJld2tWaWV3PSVwLCBmb2N1c0NvbnRyb2xsZXI9
JXAiLCBzbWFydERhdGEtPnNlbGYsIGZvY3VzQ29udHJvbGxlcik7CisgICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKGZvY3VzQ29udHJvbGxlciwgZmFsc2UpOwogCi0gICAgZmMtPnNl
dEFjdGl2ZSh0cnVlKTsKLSAgICBmYy0+c2V0Rm9jdXNlZCh0cnVlKTsKKyAgICBmb2N1c0NvbnRy
b2xsZXItPnNldEFjdGl2ZSh0cnVlKTsKKyAgICBmb2N1c0NvbnRyb2xsZXItPnNldEZvY3VzZWQo
dHJ1ZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTE3OTAsNyArMTc5MCw3IEBAIEVpbmFf
Qm9vbCBld2tfdmlld19wcmVfcmVuZGVyX3JlZ2lvbihFdmFzX09iamVjdCogZXdrVmlldywgRXZh
c19Db29yZCB4LCBFdmFzX0NvCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3
LCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21h
cnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFM
KHNtYXJ0RGF0YS0+YXBpLT5wcmVfcmVuZGVyX3JlZ2lvbiwgZmFsc2UpOwotICAgIGZsb2F0IGN1
cl96b29tOworICAgIGZsb2F0IGN1cnJlbnRab29tOwogICAgIEV2YXNfQ29vcmQgY29udGVudHNX
aWR0aCwgY29udGVudHNIZWlnaHQ7CiAKICAgICAvKiBXaGVuIGRvaW5nIGFuaW1hdGVkIHpvb20g
aXQncyBub3QgcG9zc2libGUgdG8gY2FsbCBwcmUtcmVuZGVyIHNpbmNlIGl0CkBAIC0xNzk5LDE1
ICsxNzk5LDE1IEBAIEVpbmFfQm9vbCBld2tfdmlld19wcmVfcmVuZGVyX3JlZ2lvbihFdmFzX09i
amVjdCogZXdrVmlldywgRXZhc19Db29yZCB4LCBFdmFzX0NvCiAgICAgaWYgKHByaXYtPmFuaW1h
dGVkWm9vbS5hbmltYXRvcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgY3VyX3pvb20g
PSBld2tfZnJhbWVfcGFnZV96b29tX2dldChzbWFydERhdGEtPm1haW5fZnJhbWUpOworICAgIGN1
cnJlbnRab29tID0gZXdrX2ZyYW1lX3BhZ2Vfem9vbV9nZXQoc21hcnREYXRhLT5tYWluX2ZyYW1l
KTsKIAotICAgIGlmIChjdXJfem9vbSA8IDAuMDAwMDEpCisgICAgaWYgKGN1cnJlbnRab29tIDwg
MC4wMDAwMSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZXdrX2ZyYW1lX2NvbnRl
bnRzX3NpemVfZ2V0KHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSwgJmNvbnRlbnRzV2lkdGgsICZjb250
ZW50c0hlaWdodCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGNvbnRlbnRzV2lkdGgg
Kj0gem9vbSAvIGN1cl96b29tOwotICAgIGNvbnRlbnRzSGVpZ2h0ICo9IHpvb20gLyBjdXJfem9v
bTsKKyAgICBjb250ZW50c1dpZHRoICo9IHpvb20gLyBjdXJyZW50Wm9vbTsKKyAgICBjb250ZW50
c0hlaWdodCAqPSB6b29tIC8gY3VycmVudFpvb207CiAgICAgREJHKCJyZWdpb24gJWQsJWQrJWR4
JWQgQCAlZiBjb250ZW50cz0lZHglZCIsIHgsIHksIHdpZHRoLCBoZWlnaHQsIHpvb20sIGNvbnRl
bnRzV2lkdGgsIGNvbnRlbnRzSGVpZ2h0KTsKIAogICAgIGlmICh4ICsgd2lkdGggPiBjb250ZW50
c1dpZHRoKQpAQCAtMjk1Nyw4ICsyOTU3LDggQEAgdm9pZCBld2tfdmlld19yZXN0b3JlX3N0YXRl
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJhbWUpCiAgKiBAcGFyYW0gZXdr
VmlldyBDdXJyZW50IHZpZXcuCiAgKiBAcGFyYW0gamF2YXNjcmlwdCBAYyB0cnVlIGlmIHRoZSBu
ZXcgd2luZG93IGlzIG9yaWdpbmF0ZWQgZnJvbSBqYXZhc2NyaXB0LAogICogQGMgZmFsc2Ugb3Ro
ZXJ3aXNlCi0gKiBAcGFyYW0gd2lkdGhpbmRvd19mZWF0dXJlcyBGZWF0dXJlcyBvZiB0aGUgbmV3
IHdpbmRvdyBiZWluZyBjcmVhdGVkLiBJZiBpdCdzIEBjCi0gKiBOVUxMLCBpdCB3aWxsIGJlIGNy
ZWF0ZWQgYSB3aW5kb3cgd2l0aCBkZWZhdWx0IGZlYXR1cmVzLgorICogQHBhcmFtIHdpbmRvd19m
ZWF0dXJlcyBGZWF0dXJlcyBvZiB0aGUgbmV3IHdpbmRvdyBiZWluZyBjcmVhdGVkLiBJZiBpdCdz
IEBjCisgKiAwLCBpdCB3aWxsIGJlIGNyZWF0ZWQgYSB3aW5kb3cgd2l0aCBkZWZhdWx0IGZlYXR1
cmVzLgogICoKICAqIEByZXR1cm4gTmV3IHZpZXcsIGluIGNhc2Ugc21hcnQgY2xhc3MgaW1wbGVt
ZW50cyB0aGUgY3JlYXRpb24gb2YgbmV3IHdpbmRvd3M7CiAgKiBlbHNlLCBjdXJyZW50IHZpZXcg
QHBhcmFtIGV3a1ZpZXcgb3IgQGMgMCBvbiBmYWlsdXJlLgpAQCAtMzA1MCw3ICszMDUwLDcgQEAg
dm9pZCBld2tfdmlld190b29sYmFyc192aXNpYmxlX3NldChFdmFzX09iamVjdCogZXdrVmlldywg
Ym9vbCB2aXNpYmxlKQogICovCiB2b2lkIGV3a192aWV3X3Rvb2xiYXJzX3Zpc2libGVfZ2V0KEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBib29sKiB2aXNpYmxlKQogewotICAgIERCRygiJXMsIG89JXAi
LCBfX2Z1bmNfXywgZXdrVmlldyk7CisgICAgREJHKCIlcywgZXdrVmlldz0lcCIsIF9fZnVuY19f
LCBld2tWaWV3KTsKICAgICAqdmlzaWJsZSA9IGZhbHNlOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0
X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgInRvb2xiYXJzLHZpc2libGUsZ2V0IiwgdmlzaWJsZSk7
CiB9CkBAIC0zMDgzLDcgKzMwODMsNyBAQCB2b2lkIGV3a192aWV3X3N0YXR1c2Jhcl92aXNpYmxl
X3NldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCAgdmlzaWJsZSkKICAqLwogdm9pZCBld2tf
dmlld19zdGF0dXNiYXJfdmlzaWJsZV9nZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wqIHZp
c2libGUpCiB7Ci0gICAgREJHKCIlcywgbz0lcCIsIF9fZnVuY19fLCBld2tWaWV3KTsKKyAgICBE
QkcoIiVzLCBld2tWaWV3PSVwIiwgX19mdW5jX18sIGV3a1ZpZXcpOwogICAgICp2aXNpYmxlID0g
ZmFsc2U7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tWaWV3LCAic3Rh
dHVzYmFyLHZpc2libGUsZ2V0IiwgdmlzaWJsZSk7CiB9CkBAIC0zMTMyLDcgKzMxMzIsNyBAQCB2
b2lkIGV3a192aWV3X3Njcm9sbGJhcnNfdmlzaWJsZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcs
IGJvb2wgdmlzaWJsZSkKICAqLwogdm9pZCBld2tfdmlld19zY3JvbGxiYXJzX3Zpc2libGVfZ2V0
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sKiB2aXNpYmxlKQogewotICAgIERCRygiJXMsIG89
JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CisgICAgREJHKCIlcywgZXdrVmlldz0lcCIsIF9fZnVu
Y19fLCBld2tWaWV3KTsKICAgICAqdmlzaWJsZSA9IGZhbHNlOwogICAgIGV2YXNfb2JqZWN0X3Nt
YXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgInNjcm9sbGJhcnMsdmlzaWJsZSxnZXQiLCB2aXNp
YmxlKTsKIH0KQEAgLTMxNjUsNyArMzE2NSw3IEBAIHZvaWQgZXdrX3ZpZXdfbWVudWJhcl92aXNp
YmxlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCB2aXNpYmxlKQogICovCiB2b2lkIGV3
a192aWV3X21lbnViYXJfdmlzaWJsZV9nZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wqIHZp
c2libGUpCiB7Ci0gICAgREJHKCIlcywgbz0lcCIsIF9fZnVuY19fLCBld2tWaWV3KTsKKyAgICBE
QkcoIiVzLCBld2tWaWV3PSVwIiwgX19mdW5jX18sIGV3a1ZpZXcpOwogICAgICp2aXNpYmxlID0g
ZmFsc2U7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tWaWV3LCAibWVu
dWJhcix2aXNpYmxlLGdldCIsIHZpc2libGUpOwogfQpAQCAtMzU5MSw3ICszNTkxLDcgQEAgRWlu
YV9Cb29sIGV3a192aWV3X3pvb21fcmFuZ2Vfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBmbG9h
dCBtaW5TY2FsZSwgZmxvYXQgbWEKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21h
cnREYXRhLCBwcml2LCBmYWxzZSk7CiAKICAgICBpZiAobWF4U2NhbGUgPCBtaW5TY2FsZSkgewot
ICAgICAgICBXUk4oIm1pbl9zY2FsZSBpcyBsYXJnZXIgdGhhbiBtYXhfc2NhbGUiKTsKKyAgICAg
ICAgV1JOKCJtaW5TY2FsZSBpcyBsYXJnZXIgdGhhbiBtYXhTY2FsZSIpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXdfc2luZ2xlLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19zaW5nbGUu
Y3BwCmluZGV4IGVkNzI2MzMuLjhmNzQ5OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlld19zaW5nbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlld19zaW5nbGUuY3BwCkBAIC05LDcgKzksNyBAQAogCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
LSAgICBNRVJjaEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAKICAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCkBAIC0yMDks
OCArMjA5LDggQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X3JlcGFp
bnRzX3Byb2Nlc3MoRXdrX1ZpZXdfU21hcnRfRGF0YSogc20KICAgICBFdmFzX0Nvb3JkIG93LCBv
aDsKICAgICB2b2lkKiBwaXhlbHM7CiAgICAgRWluYV9SZWN0YW5nbGUqIHJlY3Q7Ci0gICAgY29u
c3QgRWluYV9SZWN0YW5nbGUqIHByOwotICAgIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBwcl9lbmQ7
CisgICAgY29uc3QgRWluYV9SZWN0YW5nbGUqIHBhaW50UmVxdWVzdDsKKyAgICBjb25zdCBFaW5h
X1JlY3RhbmdsZSogcGFpbnRSZXF1ZXN0RW5kOwogICAgIEVpbmFfVGlsZXIqIHRpbGVyOwogICAg
IEVpbmFfSXRlcmF0b3IqIGl0ZXJhdG9yOwogICAgIGNhaXJvX3N0YXR1c190IHN0YXR1czsKQEAg
LTI3NywxMCArMjc3LDEwIEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NpbmdsZV9zbWFy
dF9yZXBhaW50c19wcm9jZXNzKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtCiAKICAgICBld2tfdmll
d19sYXlvdXRfaWZfbmVlZGVkX3JlY3Vyc2l2ZShzbWFydERhdGEtPl9wcml2KTsKIAotICAgIHBy
ID0gZXdrX3ZpZXdfcmVwYWludHNfcG9wKHNtYXJ0RGF0YS0+X3ByaXYsICZjb3VudCk7Ci0gICAg
cHJfZW5kID0gcHIgKyBjb3VudDsKLSAgICBmb3IgKDsgcHIgPCBwcl9lbmQ7IHByKyspCi0gICAg
ICAgIGVpbmFfdGlsZXJfcmVjdF9hZGQodGlsZXIsIHByKTsKKyAgICBwYWludFJlcXVlc3QgPSBl
d2tfdmlld19yZXBhaW50c19wb3Aoc21hcnREYXRhLT5fcHJpdiwgJmNvdW50KTsKKyAgICBwYWlu
dFJlcXVlc3RFbmQgPSBwYWludFJlcXVlc3QgKyBjb3VudDsKKyAgICBmb3IgKDsgcGFpbnRSZXF1
ZXN0IDwgcGFpbnRSZXF1ZXN0RW5kOyBwYWludFJlcXVlc3QrKykKKyAgICAgICAgZWluYV90aWxl
cl9yZWN0X2FkZCh0aWxlciwgcGFpbnRSZXF1ZXN0KTsKIAogICAgIGl0ZXJhdG9yID0gZWluYV90
aWxlcl9pdGVyYXRvcl9uZXcodGlsZXIpOwogICAgIGlmICghaXRlcmF0b3IpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwCmluZGV4IDMxMDFjMTIuLjVhOGQxN2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcApAQCAtNzcsMTIgKzc3LDEy
IEBAIHN0YXRpYyB2b2lkKiBfZXdrX3ZpZXdfdGlsZWRfdXBkYXRlc19wcm9jZXNzX3ByZSh2b2lk
KiBkYXRhLCBFdmFzX09iamVjdCogZXdrVmllCiAKIHN0YXRpYyBFdmFzX09iamVjdCogX2V3a192
aWV3X3RpbGVkX3NtYXJ0X2JhY2tpbmdfc3RvcmVfYWRkKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNt
YXJ0RGF0YSkKIHsKLSAgICBFdmFzX09iamVjdCogYnMgPSBld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9hZGQoc21hcnREYXRhLT5iYXNlLmV2YXMpOworICAgIEV2YXNfT2JqZWN0KiBiYWNraW5nU3Rv
cmUgPSBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9hZGQoc21hcnREYXRhLT5iYXNlLmV2YXMpOwog
ICAgIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3JlbmRlcl9jYl9zZXQKLSAgICAgICAgKGJzLCBf
ZXdrX3ZpZXdfdGlsZWRfcmVuZGVyX2NiLCBzbWFydERhdGEtPl9wcml2KTsKKyAgICAgICAgKGJh
Y2tpbmdTdG9yZSwgX2V3a192aWV3X3RpbGVkX3JlbmRlcl9jYiwgc21hcnREYXRhLT5fcHJpdik7
CiAgICAgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdXBkYXRlc19wcm9jZXNzX3ByZV9zZXQKLSAg
ICAgICAgKGJzLCBfZXdrX3ZpZXdfdGlsZWRfdXBkYXRlc19wcm9jZXNzX3ByZSwgc21hcnREYXRh
LT5fcHJpdik7Ci0gICAgcmV0dXJuIGJzOworICAgICAgICAoYmFja2luZ1N0b3JlLCBfZXdrX3Zp
ZXdfdGlsZWRfdXBkYXRlc19wcm9jZXNzX3ByZSwgc21hcnREYXRhLT5fcHJpdik7CisgICAgcmV0
dXJuIGJhY2tpbmdTdG9yZTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTk3LDE3ICs5NywxNyBAQCBf
ZXdrX3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2NiKHZvaWQqIGRhdGEsIEV2YXNf
T2JqZWN0KiBld2tWaWV3LCB2b2lkKgogCiBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfdGlsZWRfc21h
cnRfYWRkKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewotICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEq
IHNkOworICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YTsKIAogICAgIF9wYXJlbnRf
c2Muc2MuYWRkKGV3a1ZpZXcpOwogCi0gICAgc2QgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFy
dF9EYXRhKj4oZXZhc19vYmplY3Rfc21hcnRfZGF0YV9nZXQoZXdrVmlldykpOwotICAgIGlmICgh
c2QpCisgICAgc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGV2
YXNfb2JqZWN0X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpKTsKKyAgICBpZiAoIXNtYXJ0RGF0YSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKAot
ICAgICAgICBzZC0+bWFpbl9mcmFtZSwgImNvbnRlbnRzLHNpemUsY2hhbmdlZCIsCi0gICAgICAg
IF9ld2tfdmlld190aWxlZF9jb250ZW50c19zaXplX2NoYW5nZWRfY2IsIHNkKTsKKyAgICAgICAg
c21hcnREYXRhLT5tYWluX2ZyYW1lLCAiY29udGVudHMsc2l6ZSxjaGFuZ2VkIiwKKyAgICAgICAg
X2V3a192aWV3X3RpbGVkX2NvbnRlbnRzX3NpemVfY2hhbmdlZF9jYiwgc21hcnREYXRhKTsKIH0K
IAogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfdGlsZWRfc21hcnRfc2Nyb2xsc19wcm9jZXNz
KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKQEAgLTM5MiwxNCArMzkyLDE0IEBAIEV2
YXNfT2JqZWN0KiBld2tfdmlld190aWxlZF9hZGQoRXZhcyogY2FudmFzKQogCiBFd2tfVGlsZV9V
bnVzZWRfQ2FjaGUqIGV3a192aWV3X3RpbGVkX3VudXNlZF9jYWNoZV9nZXQoY29uc3QgRXZhc19P
YmplY3QqIGV3a1ZpZXcpCiB7Ci0gICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBld2tfdmll
d19zbWFydF9kYXRhX2dldChld2tWaWV3KTsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwoc2QsIDApOwotICAgIHJldHVybiBld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX3Vu
dXNlZF9jYWNoZV9nZXQoc2QtPmJhY2tpbmdfc3RvcmUpOworICAgIEV3a19WaWV3X1NtYXJ0X0Rh
dGEqIHNtYXJ0RGF0YSA9IGV3a192aWV3X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpOworICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzbWFydERhdGEsIDApOworICAgIHJldHVybiBl
d2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX3VudXNlZF9jYWNoZV9nZXQoc21hcnREYXRhLT5i
YWNraW5nX3N0b3JlKTsKIH0KIAogdm9pZCBld2tfdmlld190aWxlZF91bnVzZWRfY2FjaGVfc2V0
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIGNhY2hlKQogewot
ICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gZXdrX3ZpZXdfc21hcnRfZGF0YV9nZXQoZXdr
Vmlldyk7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oc2QpOwotICAgIGV3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3RpbGVfdW51c2VkX2NhY2hlX3NldChzZC0+YmFja2luZ19zdG9yZSwg
Y2FjaGUpOworICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9IGV3a192aWV3X3Nt
YXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpOworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNt
YXJ0RGF0YSk7CisgICAgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2FjaGVf
c2V0KHNtYXJ0RGF0YS0+YmFja2luZ19zdG9yZSwgY2FjaGUpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123090</attachid>
            <date>2012-01-19 01:22:19 -0800</date>
            <delta_ts>2012-01-19 04:10:50 -0800</delta_ts>
            <desc>rebased_newly</desc>
            <filename>new_rebased.patch</filename>
            <type>text/plain</type>
            <size>63148</size>
            <attacher name="JungJik Lee">jungjik.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCBkODdlMDRjLi4zYzVkZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNzcgQEAKKzIwMTItMDEtMTkgIEp1bmdKaWsgTGVlICA8anVuZ2ppay5sZWVAc2Ft
c3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRhcHQgQysrIHN0eWxlIGFuZCBNb2RpZnkgdG8g
d2Via2l0LXN0eWxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzYzNzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNb2RpZnkgdGhlIGNvZGUgdG8gd2Via2l0LXN0eWxlIGFuZCBhZGFwdCB0byBDKysgc3R5
bGUgbmFtaW5nLgorICAgICAgICBUaGUgbG9naWMgb2YgdGhlIGNvZGUgaXMgbm90IGNoYW5nZWQu
CisKKyAgICAgICAgKiBld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuY3BwOgorICAgICAgICAo
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfYXNzb2NpYXRlKToKKyAgICAgICAgKF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Rpc3NvY2lhdGUpOgorICAgICAgICAoX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9wcm9jZXNzX3NpbmdsZSk6CisgICAg
ICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKToKKyAgICAgICAgKF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfaXRlbV9zbW9vdGhfc2NhbGVfc2V0KToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV92aWV3X2NvbHNfZW5kX2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfdmlld19yb3dzX2FsbF9kZWwpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3JlbmRlcik6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfbWVtX2Ri
Zyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2lnX3Vzcik6CisgICAgICAg
IChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRkKToKKyAgICAgICAgKF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9yZWNhbGNfcmVuZGVyZXJzKToKKyAgICAgICAgKF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV92aWV3X2RiZyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfdmlld193cmFwX2xlZnQpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Zp
ZXdfcmVmaWxsKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bvc19h
cHBseSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfY2FsY3VsYXRl
X29mZnNldF9mb3JjZSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRf
Y2FsY3VsYXRlX29mZnNldCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21h
cnRfY2FsY3VsYXRlX3Bvcyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21h
cnRfY2FsY3VsYXRlKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxf
ZnVsbF9vZmZzZXRfc2V0X2ludGVybmFsKToKKyAgICAgICAgKGV3a190aWxlZF9iYWNraW5nX3N0
b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXQpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfem9vbV9zZXRfaW50ZXJuYWwpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfem9vbV93ZWFrX3NldCk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9m
aXhfb2Zmc2V0cyk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9mbHVzaCk6Cisg
ICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lvbik6CisgICAg
ICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlbGF0aXZlX3JhZGl1cyk6
CisgICAgICAgICogZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmg6CisgICAgICAgICogZXdr
L2V3a190aWxlZF9tYXRyaXguY3BwOgorICAgICAgICAoX2V3a190aWxlX21hdHJpeF9jZWxsX2Zy
ZWUpOgorICAgICAgICAoX2V3a190aWxlX21hdHJpeF90aWxlX2ZyZWUpOgorICAgICAgICAoZXdr
X3RpbGVfbWF0cml4X25ldyk6CisgICAgICAgIChld2tfdGlsZV9tYXRyaXhfZnJlZSk6CisgICAg
ICAgIChld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldCk6CisgICAgICAgIChld2tfdGls
ZV9tYXRyaXhfdGlsZV9leGFjdF9nZXQpOgorICAgICAgICAoZXdrX3RpbGVfbWF0cml4X3RpbGVf
bmV3KToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF90aWxlX3B1dCk6CisgICAgICAgIChld2tf
dGlsZV9tYXRyaXhfZGJnKToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF9mcmVlemUpOgorICAg
ICAgICAoZXdrX3RpbGVfbWF0cml4X3RoYXcpOgorICAgICAgICAqIGV3ay9ld2tfdGlsZWRfbW9k
ZWwuY3BwOgorICAgICAgICAoZXdrX3RpbGVfdXBkYXRlc19wcm9jZXNzKToKKyAgICAgICAgKGV3
a190aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1dCk6CisgICAgICAgIChld2tfdGlsZV91bnVzZWRf
Y2FjaGVfZGJnKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX2V3a192
aWV3X3NtYXJ0X2ZvY3VzX2luKToKKyAgICAgICAgKGV3a192aWV3X3ByZV9yZW5kZXJfcmVnaW9u
KToKKyAgICAgICAgKGV3a192aWV3X3Rvb2xiYXJzX3Zpc2libGVfZ2V0KToKKyAgICAgICAgKGV3
a192aWV3X3N0YXR1c2Jhcl92aXNpYmxlX2dldCk6CisgICAgICAgIChld2tfdmlld19zY3JvbGxi
YXJzX3Zpc2libGVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X21lbnViYXJfdmlzaWJsZV9nZXQp
OgorICAgICAgICAoZXdrX3ZpZXdfem9vbV9yYW5nZV9zZXQpOgorICAgICAgICAqIGV3ay9ld2tf
dmlld19zaW5nbGUuY3BwOgorICAgICAgICAoX2V3a192aWV3X3NpbmdsZV9zbWFydF9yZXBhaW50
c19wcm9jZXNzKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXdfdGlsZWQuY3BwOgorICAgICAgICAo
X2V3a192aWV3X3RpbGVkX3NtYXJ0X2JhY2tpbmdfc3RvcmVfYWRkKToKKyAgICAgICAgKF9ld2tf
dmlld190aWxlZF9zbWFydF9hZGQpOgorICAgICAgICAoZXdrX3ZpZXdfdGlsZWRfdW51c2VkX2Nh
Y2hlX2dldCk6CisgICAgICAgIChld2tfdmlld190aWxlZF91bnVzZWRfY2FjaGVfc2V0KToKKwog
MjAxMi0wMS0xNyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAg
ICAgICAgIFtFRkxdIFVzZSBzdGF0aWMgY29uc3QgaW5zdGVkIG9mICNkZWZpbmUgbWFjcm8uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUu
Y3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmNwcApp
bmRleCA0Y2RkNzJkLi5iYmU5NDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9Fd2tf
VGlsZWRfQmFja2luZ19TdG9yZV9JdGVtIHsKICAgICBzdHJ1Y3QgewogICAgICAgICBFdmFzX0Nv
b3JkIHgsIHksIHdpZHRoLCBoZWlnaHQ7CiAgICAgfSBnZW9tZXRyeTsKLSAgICBib29sIHNtb290
aF9zY2FsZTsKKyAgICBib29sIHNtb290aFNjYWxlOwogfTsKIAogc3RydWN0IF9Fd2tfVGlsZWRf
QmFja2luZ19TdG9yZV9QcmVfUmVuZGVyX1JlcXVlc3QgewpAQCAtNjEsNyArNjEsNyBAQCBzdHJ1
Y3QgX0V3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEgewogICAgIHN0cnVjdCB7CiAgICAgICAg
IEVpbmFfSW5saXN0KiogaXRlbXM7CiAgICAgICAgIEV2YXNfQ29vcmQgeCwgeSwgd2lkdGgsIGhl
aWdodDsKLSAgICAgICAgbG9uZyBjb2xzLCByb3dzOworICAgICAgICBsb25nIGNvbHVtbnMsIHJv
d3M7CiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICBFdmFzX0Nvb3JkIHdpZHRoLCBoZWln
aHQ7CiAgICAgICAgICAgICBmbG9hdCB6b29tOwpAQCAtNzEsNyArNzEsNyBAQCBzdHJ1Y3QgX0V3
a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEgewogICAgICAgICBzdHJ1Y3QgewogICAgICAgICAg
ICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICBFdmFzX0Nvb3JkIHgsIHk7Ci0gICAgICAgICAg
ICB9IGN1ciwgb2xkLCBiYXNlLCB6b29tQ2VudGVyOworICAgICAgICAgICAgfSBjdXJyZW50LCBv
bGQsIGJhc2UsIHpvb21DZW50ZXI7CiAgICAgICAgIH0gb2Zmc2V0OwogICAgICAgICBib29sIHZp
c2libGUgOiAxOwogICAgIH0gdmlldzsKQEAgLTEwOCw3ICsxMDgsNyBAQCBzdHJ1Y3QgX0V3a19U
aWxlZF9CYWNraW5nX1N0b3JlX0RhdGEgewogICAgICAgICBib29sIG9mZnNldCA6IDE7CiAgICAg
fSBjaGFuZ2VkOwogI2lmZGVmIERFQlVHX01FTV9MRUFLUwotICAgIEVjb3JlX0V2ZW50X0hhbmRs
ZXIqIHNpZ191c3I7CisgICAgRWNvcmVfRXZlbnRfSGFuZGxlciogc2lnbmFsVXNlcjsKICNlbmRp
ZgogfTsKIApAQCAtMjAzLDEzICsyMDMsMTMgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX2l0ZW1fcmVzaXplKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGkKIHN0
YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Fzc29jaWF0ZShFd2tfVGls
ZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2LCBFd2tfVGlsZSogdGlsZSwgRXdrX1RpbGVkX0Jh
Y2tpbmdfU3RvcmVfSXRlbSogaXRlbSkKIHsKICAgICBpZiAoaXRlbS0+dGlsZSkKLSAgICAgICAg
Q1JJVElDQUwoIml0LT50aWxlPSVwLCBidXQgaXQgc2hvdWxkIGJlIDAhIiwgaXRlbS0+dGlsZSk7
CisgICAgICAgIENSSVRJQ0FMKCJpdGVtLT50aWxlPSVwLCBidXQgaXQgc2hvdWxkIGJlIDAhIiwg
aXRlbS0+dGlsZSk7CiAgICAgaXRlbS0+dGlsZSA9IHRpbGU7CiAgICAgZXZhc19vYmplY3RfbW92
ZShpdGVtLT50aWxlLT5pbWFnZSwgaXRlbS0+Z2VvbWV0cnkueCwgaXRlbS0+Z2VvbWV0cnkueSk7
CiAgICAgZXZhc19vYmplY3RfcmVzaXplKGl0ZW0tPnRpbGUtPmltYWdlLCBpdGVtLT5nZW9tZXRy
eS53aWR0aCwgaXRlbS0+Z2VvbWV0cnkuaGVpZ2h0KTsKICAgICBldmFzX29iamVjdF9pbWFnZV9m
aWxsX3NldAogICAgICAgICAoaXRlbS0+dGlsZS0+aW1hZ2UsIDAsIDAsIGl0ZW0tPmdlb21ldHJ5
LndpZHRoLCBpdGVtLT5nZW9tZXRyeS5oZWlnaHQpOwotICAgIGV2YXNfb2JqZWN0X2ltYWdlX3Nt
b290aF9zY2FsZV9zZXQoaXRlbS0+dGlsZS0+aW1hZ2UsIGl0ZW0tPnNtb290aF9zY2FsZSk7Cisg
ICAgZXZhc19vYmplY3RfaW1hZ2Vfc21vb3RoX3NjYWxlX3NldChpdGVtLT50aWxlLT5pbWFnZSwg
aXRlbS0+c21vb3RoU2NhbGUpOwogICAgIGV2YXNfb2JqZWN0X2ltYWdlX2FscGhhX3NldChpdGVt
LT50aWxlLT5pbWFnZSwgcHJpdi0+dmlldy50aWxlLmhhc0FscGhhKTsKIAogICAgIGlmICghZXdr
X3RpbGVfdmlzaWJsZV9nZXQodGlsZSkpCkBAIC0yMjAsMTMgKzIyMCwxMyBAQCBzdGF0aWMgdm9p
ZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV9hc3NvY2lhdGUoRXdrX1RpbGVkX0JhY2tp
bmdfU3RvcmVfRGF0YQogCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGls
ZV9kaXNzb2NpYXRlKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYsIEV3a19UaWxl
ZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0ZW0sIGRvdWJsZSBsYXN0VXNlZCkKIHsKLSAgICBFd2tf
VGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVkVW51c2VkQ2FjaGU7CisgICAgRXdrX1RpbGVfVW51c2Vk
X0NhY2hlKiB0aWxlVW51c2VkQ2FjaGU7CiAgICAgZXdrX3RpbGVfaGlkZShpdGVtLT50aWxlKTsK
ICAgICBpZiAoIWV3a190aWxlX3Zpc2libGVfZ2V0KGl0ZW0tPnRpbGUpKQogICAgICAgICBldmFz
X29iamVjdF9zbWFydF9tZW1iZXJfZGVsKGl0ZW0tPnRpbGUtPmltYWdlKTsKICAgICBld2tfdGls
ZV9tYXRyaXhfdGlsZV9wdXQocHJpdi0+bW9kZWwubWF0cml4LCBpdGVtLT50aWxlLCBsYXN0VXNl
ZCk7Ci0gICAgdGlsZWRVbnVzZWRDYWNoZSA9IGV3a190aWxlX21hdHJpeF91bnVzZWRfY2FjaGVf
Z2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7Ci0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2F1dG9f
Zmx1c2godGlsZWRVbnVzZWRDYWNoZSk7CisgICAgdGlsZVVudXNlZENhY2hlID0gZXdrX3RpbGVf
bWF0cml4X3VudXNlZF9jYWNoZV9nZXQocHJpdi0+bW9kZWwubWF0cml4KTsKKyAgICBld2tfdGls
ZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0aWxlVW51c2VkQ2FjaGUpOwogCiAgICAgaXRlbS0+
dGlsZSA9IDA7CiB9CkBAIC0zMDQsMTQgKzMwNCwxNCBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0X2NsZWFyKEV3a19UaWxlZF9CYWNraW5n
XwogICAgIH0KIH0KIAotLyogYXNzdW1lcyBwcml2LT5wcm9jZXNzLnByZV9jYiB3YXMgY2FsbGVk
IGlmIHJlcXVpcmVkISAqLworLyogYXNzdW1lcyBwcml2LT5wcm9jZXNzLnByZUNhbGxiYWNrIHdh
cyBjYWxsZWQgaWYgcmVxdWlyZWQhICovCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0X3Byb2Nlc3Nfc2luZ2xlKEV3a19UaWxlZF9CYWNraW5n
X1N0b3JlX0RhdGEqIHByaXYpCiB7CiAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfUHJlX1Jl
bmRlcl9SZXF1ZXN0KiByZXF1ZXN0OwogICAgIEVpbmFfUmVjdGFuZ2xlIGFyZWE7CiAgICAgRXdr
X1RpbGVfTWF0cml4KiB0aWxlTWF0cml4ID0gcHJpdi0+bW9kZWwubWF0cml4OwogICAgIEV3a19U
aWxlKiB0aWxlOwotICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZWRVbnVzZWRDYWNoZTsK
KyAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZTsKICAgICB1bnNpZ25l
ZCBsb25nIGNvbHVtbiwgcm93OwogICAgIGZsb2F0IHpvb207CiAgICAgZG91YmxlIGxhc3RfdXNl
ZCA9IGVjb3JlX2xvb3BfdGltZV9nZXQoKTsKQEAgLTM0OCw4ICszNDgsOCBAQCBzdGF0aWMgdm9p
ZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0X3Byb2Nlc3Nfc2lu
Z2xlKEV3a19UaWxlZAogCiBlbmQ6CiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9y
ZW5kZXJfcmVxdWVzdF9kZWwocHJpdiwgcmVxdWVzdCk7Ci0gICAgdGlsZWRVbnVzZWRDYWNoZSA9
IGV3a190aWxlX21hdHJpeF91bnVzZWRfY2FjaGVfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7Ci0g
ICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2F1dG9fZmx1c2godGlsZWRVbnVzZWRDYWNoZSk7Cisg
ICAgdGlsZVVudXNlZENhY2hlID0gZXdrX3RpbGVfbWF0cml4X3VudXNlZF9jYWNoZV9nZXQocHJp
di0+bW9kZWwubWF0cml4KTsKKyAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0
aWxlVW51c2VkQ2FjaGUpOwogfQogCiBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9pdGVtX3Byb2Nlc3NfaWRsZXJfY2Iodm9pZCogZGF0YSkKQEAgLTQzMCwxOCArNDMw
LDE4IEBAIHN0YXRpYyBpbmxpbmUgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9p
dGVtX2ZpbGwoRXdrX1RpbGVkX0JhY2tpbmdfU3RvCiAKICAgICAgICAgaWYgKGl0ZW0tPnRpbGUp
IHsKICAgICAgICAgICAgIEV3a19UaWxlKiBvbGQgPSBpdGVtLT50aWxlOwotICAgICAgICAgICAg
aWYgKG9sZC0+cm93ICE9IGN1cnJlbnRSb3cgfHwgb2xkLT5jb2wgIT0gY3VycmVudENvbHVtbiB8
fCBvbGQtPnpvb20gIT0gem9vbSkKKyAgICAgICAgICAgIGlmIChvbGQtPnJvdyAhPSBjdXJyZW50
Um93IHx8IG9sZC0+Y29sdW1uICE9IGN1cnJlbnRDb2x1bW4gfHwgb2xkLT56b29tICE9IHpvb20p
CiAgICAgICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfZGlzc29jaWF0
ZShwcml2LCBpdGVtLCBsYXN0VXNlZCk7Ci0gICAgICAgICAgICBlbHNlIGlmIChvbGQtPnJvdyA9
PSBjdXJyZW50Um93ICYmIG9sZC0+Y29sID09IGN1cnJlbnRDb2x1bW4gJiYgb2xkLT56b29tID09
IHpvb20pCisgICAgICAgICAgICBlbHNlIGlmIChvbGQtPnJvdyA9PSBjdXJyZW50Um93ICYmIG9s
ZC0+Y29sdW1uID09IGN1cnJlbnRDb2x1bW4gJiYgb2xkLT56b29tID09IHpvb20pCiAgICAgICAg
ICAgICAgICAgZ290byBlbmQ7CiAgICAgICAgIH0KIAogICAgICAgICB0aWxlID0gZXdrX3RpbGVf
bWF0cml4X3RpbGVfZXhhY3RfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCwgY3VycmVudENvbHVtbiwg
Y3VycmVudFJvdywgem9vbSk7CiAKICAgICAgICAgaWYgKCF0aWxlKSB7Ci0gICAgICAgICAgICAv
KiBOT1RFOiBpdCBuZXZlciByZXR1cm5zIDAgaWYgaXQtPnRpbGUgd2FzIHNldCEgKi8KKyAgICAg
ICAgICAgIC8qIE5PVEU6IGl0IG5ldmVyIHJldHVybnMgMCBpZiBpdGVtLT50aWxlIHdhcyBzZXQh
ICovCiAgICAgICAgICAgICBpZiAoaXRlbS0+dGlsZSkgewotICAgICAgICAgICAgICAgIENSSVRJ
Q0FMKCJpdC0+dGlsZT0lcCwgYnV0IGl0IHNob3VsZCBiZSAwISIsIGl0ZW0tPnRpbGUpOworICAg
ICAgICAgICAgICAgIENSSVRJQ0FMKCJpdGVtLT50aWxlPSVwLCBidXQgaXQgc2hvdWxkIGJlIDAh
IiwgaXRlbS0+dGlsZSk7CiAgICAgICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3RpbGVfZGlzc29jaWF0ZShwcml2LCBpdGVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFVzZWQpOwogICAgICAgICAgICAgfQpA
QCAtNDg2LDcgKzQ4Niw3IEBAIHN0YXRpYyBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBf
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9hZGQoRXdrX1RpbGVkCiAKICAgICBpdGVtLT50
aWxlID0gMDsKIAotICAgIGl0ZW0tPnNtb290aF9zY2FsZSA9IHByaXYtPnZpZXcudGlsZS56b29t
V2Vha1Ntb290aFNjYWxlOworICAgIGl0ZW0tPnNtb290aFNjYWxlID0gcHJpdi0+dmlldy50aWxl
Lnpvb21XZWFrU21vb3RoU2NhbGU7CiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1f
bW92ZShpdGVtLCB4LCB5KTsKICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9yZXNp
emUoaXRlbSwgdGlsZVdpZHRoLCB0aWxlSGVpZ2h0KTsKICAgICBpZiAoIV9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9pdGVtX2ZpbGwocHJpdiwgaXRlbSwgY29sdW1uLCByb3cpKSB7CkBAIC01MDks
NyArNTA5LDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fZGVs
KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYKIAogc3RhdGljIHZvaWQgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fc21vb3RoX3NjYWxlX3NldChFd2tfVGlsZWRfQmFja2lu
Z19TdG9yZV9JdGVtKiBpdGVtLCBFaW5hX0Jvb2wgc21vb3RoU2NhbGUpCiB7Ci0gICAgaWYgKGl0
ZW0tPnNtb290aF9zY2FsZSA9PSBzbW9vdGhTY2FsZSkKKyAgICBpZiAoaXRlbS0+c21vb3RoU2Nh
bGUgPT0gc21vb3RoU2NhbGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChpdGVtLT50aWxl
KQpAQCAtNTQ4LDE2ICs1NDgsMTYgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfdmlld19jb2xzX2VuZF9hZGQoRXdrX1RpbGVkX0JhY2tpbmdfU3QKICAgICB1bnNp
Z25lZCBpbnQgaSwgcm93ID0gcm93TGlzdCAtIHByaXYtPnZpZXcuaXRlbXM7CiAKICAgICBmb3Ig
KGkgPSAwOyBpIDwgY291bnQ7IGkrKywgYmFzZUNvbHVtbisrKSB7Ci0gICAgICAgIEV3a19UaWxl
ZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0OworICAgICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9JdGVtKiBpdGVtOwogCi0gICAgICAgIGl0ID0gX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0
ZW1fYWRkKHByaXYsIGJhc2VDb2x1bW4sIHJvdyk7Ci0gICAgICAgIGlmICghaXQpIHsKKyAgICAg
ICAgaXRlbSA9IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2FkZChwcml2LCBiYXNlQ29s
dW1uLCByb3cpOworICAgICAgICBpZiAoIWl0ZW0pIHsKICAgICAgICAgICAgIENSSVRJQ0FMKCJm
YWlsZWQgdG8gYWRkIGNvbHVtbiAldSBvZiAldSBpbiByb3cgJXUuIiwgaSwgY291bnQsIHJvdyk7
CiAgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19jb2xzX2VuZF9kZWwo
cHJpdiwgcm93TGlzdCwgaSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0K
IAotICAgICAgICAqcm93TGlzdCA9IGVpbmFfaW5saXN0X2FwcGVuZCgqcm93TGlzdCwgRUlOQV9J
TkxJU1RfR0VUKGl0KSk7CisgICAgICAgICpyb3dMaXN0ID0gZWluYV9pbmxpc3RfYXBwZW5kKCpy
b3dMaXN0LCBFSU5BX0lOTElTVF9HRVQoaXRlbSkpOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsK
IH0KQEAgLTU5MSw3ICs1OTEsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfdmlld19yb3dzX2FsbF9kZWwoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRAogCiAgICAgZnJl
ZShwcml2LT52aWV3Lml0ZW1zKTsKICAgICBwcml2LT52aWV3Lml0ZW1zID0gMDsKLSAgICBwcml2
LT52aWV3LmNvbHMgPSAwOworICAgIHByaXYtPnZpZXcuY29sdW1ucyA9IDA7CiAgICAgcHJpdi0+
dmlldy5yb3dzID0gMDsKIH0KIApAQCAtNjAwLDcgKzYwMCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9yZW5kZXIodm9pZCogZGF0YSwgRXdrX1RpbGUqIHRpbGUsIGNv
bnN0IEVpCiAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiA9IHN0YXRpY19j
YXN0PEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqPihkYXRhKTsKIAogICAgIElORigiVE9E
TyAlcCAodmlzaWJsZT8gJWQpIFslbHUsJWx1XSAlZCwlZCArICVkeCVkIiwKLSAgICAgICAgdGls
ZSwgdGlsZS0+dmlzaWJsZSwgdGlsZS0+Y29sLCB0aWxlLT5yb3csIGFyZWEtPngsIGFyZWEtPnks
IGFyZWEtPncsIGFyZWEtPmgpOworICAgICAgICB0aWxlLCB0aWxlLT52aXNpYmxlLCB0aWxlLT5j
b2x1bW4sIHRpbGUtPnJvdywgYXJlYS0+eCwgYXJlYS0+eSwgYXJlYS0+dywgYXJlYS0+aCk7CiAK
ICAgICBpZiAoIXRpbGUtPnZpc2libGUpCiAgICAgICAgIHJldHVybjsKQEAgLTY1Nyw3ICs2NTcs
NyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfbWVtX2RiZyhFd2tfVGls
ZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2KQogICAgIHJ1bisrOwogCiAgICAgcHJpbnRmKCJc
bi0tLSBCRUdJTiBERUJVRyBUSUxFRCBCQUNLSU5HIFNUT1JFIE1FTU9SWSBbJWRdIC0tXG4iCi0g
ICAgICAgICAgICJ0PSUwLjJmLCBvYmo9JXAsIHByaXY9JXAsIHZpZXcuaXRlbXM9JXAsIG1hdHJp
eD0lcFxuIiwKKyAgICAgICAgICAgInRpbGU9JTAuMmYsIG9iaj0lcCwgcHJpdj0lcCwgdmlldy5p
dGVtcz0lcCwgbWF0cml4PSVwXG4iLAogICAgICAgICAgICBydW4sIGVjb3JlX2xvb3BfdGltZV9n
ZXQoKSwKICAgICAgICAgICAgcHJpdi0+c2VsZiwgcHJpdiwgcHJpdi0+dmlldy5pdGVtcywgcHJp
di0+bW9kZWwubWF0cml4KTsKIApAQCAtNjY5LDEzICs2NjksMTMgQEAgc3RhdGljIHZvaWQgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX21lbV9kYmcoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0
YSogcHJpdikKIAogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2ln
X3Vzcih2b2lkKiBkYXRhLCBpbnQgdHlwZSwgdm9pZCogZXZlbnQpCiB7Ci0gICAgRWNvcmVfRXZl
bnRfU2lnbmFsX1VzZXIqIHNpZyA9IChFY29yZV9FdmVudF9TaWduYWxfVXNlciopZXZlbnQ7Cisg
ICAgRWNvcmVfRXZlbnRfU2lnbmFsX1VzZXIqIHNpZ25hbFVzZXIgPSAoRWNvcmVfRXZlbnRfU2ln
bmFsX1VzZXIqKWV2ZW50OwogICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYg
PSAoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSopZGF0YTsKIAotICAgIGlmIChzaWctPm51
bWJlciA9PSAyKSB7Ci0gICAgICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsaWVVbnVzZWRD
YWNoZTsKLSAgICAgICAgdGlsaWVVbnVzZWRDYWNoZSA9IGV3a190aWxlX21hdHJpeF91bnVzZWRf
Y2FjaGVfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7Ci0gICAgICAgIGV3a190aWxlX3VudXNlZF9j
YWNoZV9hdXRvX2ZsdXNoKHRpbGllVW51c2VkQ2FjaGUpOworICAgIGlmIChzaWduYWxVc2VyLT5u
dW1iZXIgPT0gMikgeworICAgICAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRD
YWNoZTsKKyAgICAgICAgdGlsZVVudXNlZENhY2hlID0gZXdrX3RpbGVfbWF0cml4X3VudXNlZF9j
YWNoZV9nZXQocHJpdi0+bW9kZWwubWF0cml4KTsKKyAgICAgICAgZXdrX3RpbGVfdW51c2VkX2Nh
Y2hlX2F1dG9fZmx1c2godGlsZVVudXNlZENhY2hlKTsKICAgICB9CiAKICAgICBfZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfdmlld19kYmcocHJpdik7CkBAIC02OTgsOCArNjk4LDggQEAgc3RhdGlj
IHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2FkZChFdmFzX09iamVjdCogZXdr
QmFja2luZ1N0b3JlKQogICAgIHByaXYtPnZpZXcudGlsZS56b29tID0gMS4wOwogICAgIHByaXYt
PnZpZXcudGlsZS53aWR0aCA9IGRlZmF1bHRUaWxlV2lkdGg7CiAgICAgcHJpdi0+dmlldy50aWxl
LmhlaWdodCA9IGRlZmF1bHRUaWxlSGVpZ3RoOwotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54
ID0gMDsKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSA9IDA7CisgICAgcHJpdi0+dmlldy5v
ZmZzZXQuY3VycmVudC54ID0gMDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgPSAw
OwogICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54ID0gMDsKICAgICBwcml2LT52aWV3Lm9mZnNl
dC5vbGQueSA9IDA7CiAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ID0gMDsKQEAgLTczNCw3
ICs3MzQsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRk
KEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUpCiAgICAgZXZhc19vYmplY3RfY2xpcF9zZXQo
cHJpdi0+Y29udGVudHNDbGlwcGVyLCBwcml2LT5iYXNlLmNsaXBwZXIpOwogCiAjaWZkZWYgREVC
VUdfTUVNX0xFQUtTCi0gICAgcHJpdi0+c2lnX3VzciA9IGVjb3JlX2V2ZW50X2hhbmRsZXJfYWRk
CisgICAgcHJpdi0+c2lnbmFsVXNlciA9IGVjb3JlX2V2ZW50X2hhbmRsZXJfYWRkCiAgICAgICAg
ICAgICAgICAgICAgICAgICAoRUNPUkVfRVZFTlRfU0lHTkFMX1VTRVIsIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9zaWdfdXNyLCBwcml2KTsKICNlbmRpZgogfQpAQCAtODI5LDEzICs4MjksMTMg
QEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3JlY2FsY19yZW5kZXJlcnMo
RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGEKICAgICBjb2x1bW5zID0gMSArIHN0YXRpY19jYXN0
PGludD4oY2VpbCh3aWR0aCAvIHN0YXRpY19jYXN0PGZsb2F0Pih0aWxlV2lkdGgpKSk7CiAgICAg
cm93cyA9IDEgKyBzdGF0aWNfY2FzdDxpbnQ+KGNlaWwoaGVpZ2h0IC8gc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHRpbGVIZWlnaHQpKSk7CiAKLSAgICBJTkYoImV3a0JhY2tpbmdTdG9yZSVwIG5ldyBncmlk
IHNpemUgY29sczogJWxkLCByb3dzOiAlbGQsIHdhcyAlbGQsICVsZCIsCi0gICAgICAgIHByaXYt
PnNlbGYsIGNvbHVtbnMsIHJvd3MsIHByaXYtPnZpZXcuY29scywgcHJpdi0+dmlldy5yb3dzKTsK
KyAgICBJTkYoImV3a0JhY2tpbmdTdG9yZSVwIG5ldyBncmlkIHNpemUgY29sdW1uczogJWxkLCBy
b3dzOiAlbGQsIHdhcyAlbGQsICVsZCIsCisgICAgICAgIHByaXYtPnNlbGYsIGNvbHVtbnMsIHJv
d3MsIHByaXYtPnZpZXcuY29sdW1ucywgcHJpdi0+dmlldy5yb3dzKTsKIAotICAgIGlmIChwcml2
LT52aWV3LmNvbHMgPT0gY29sdW1ucyAmJiBwcml2LT52aWV3LnJvd3MgPT0gcm93cykKKyAgICBp
ZiAocHJpdi0+dmlldy5jb2x1bW5zID09IGNvbHVtbnMgJiYgcHJpdi0+dmlldy5yb3dzID09IHJv
d3MpCiAgICAgICAgIHJldHVybjsKIAotICAgIG9sZENvbHMgPSBwcml2LT52aWV3LmNvbHM7Cisg
ICAgb2xkQ29scyA9IHByaXYtPnZpZXcuY29sdW1uczsKICAgICBvbGRSb3dzID0gcHJpdi0+dmll
dy5yb3dzOwogCiAgICAgaWYgKHJvd3MgPCBvbGRSb3dzKSB7CkBAIC04NTEsMTQgKzg1MSwxNCBA
QCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVjYWxjX3JlbmRlcmVycyhF
d2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYQogCiAgICAgcHJpdi0+dmlldy5pdGVtcyA9IHN0YXRp
Y19jYXN0PEVpbmFfSW5saXN0Kio+KG5ld0l0ZW1zKTsKICAgICBwcml2LT52aWV3LnJvd3MgPSBy
b3dzOwotICAgIHByaXYtPnZpZXcuY29scyA9IGNvbHVtbnM7CisgICAgcHJpdi0+dmlldy5jb2x1
bW5zID0gY29sdW1uczsKICAgICBpZiAocm93cyA+IG9sZFJvd3MpIHsKICAgICAgICAgRWluYV9J
bmxpc3QqKiBzdGFydCA9IHByaXYtPnZpZXcuaXRlbXMgKyBvbGRSb3dzOwogICAgICAgICBFaW5h
X0lubGlzdCoqIGVuZCA9IHByaXYtPnZpZXcuaXRlbXMgKyByb3dzOwogICAgICAgICBmb3IgKDsg
c3RhcnQgPCBlbmQ7IHN0YXJ0KyspIHsKICAgICAgICAgICAgICpzdGFydCA9IDA7Ci0gICAgICAg
ICAgICBFaW5hX0Jvb2wgciA9IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X2NvbHNfZW5k
X2FkZChwcml2LCBzdGFydCwgMCwgY29sdW1ucyk7Ci0gICAgICAgICAgICBpZiAoIXIpIHsKKyAg
ICAgICAgICAgIEVpbmFfQm9vbCByZXN1bHQgPSBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmll
d19jb2xzX2VuZF9hZGQocHJpdiwgc3RhcnQsIDAsIGNvbHVtbnMpOworICAgICAgICAgICAgaWYg
KCFyZXN1bHQpIHsKICAgICAgICAgICAgICAgICBDUklUSUNBTCgiZmFpbGVkIHRvIGFsbG9jYXRl
ICVsZCBjb2x1bW5zIiwgY29sdW1ucyk7CiAgICAgICAgICAgICAgICAgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3ZpZXdfcm93c19yYW5nZV9kZWwocHJpdiwgcHJpdi0+dmlldy5pdGVtcyArIG9s
ZFJvd3MsIHN0YXJ0KTsKICAgICAgICAgICAgICAgICBwcml2LT52aWV3LnJvd3MgPSBvbGRSb3dz
OwpAQCAtOTE0LDExICs5MTQsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV92aWV3X2RiZyhjb25zdCBFd2tfVGlsZWRfQmFja2luZ19TdG8KIHsKICAgICBF
aW5hX0lubGlzdCoqIHN0YXJ0LCAqKmVuZDsKICAgICBwcmludGYoInRpbGVzPSUybGQsJTJsZCAg
bW9kZWw9JTJsZCwlMmxkIFslZHglZF0gYmFzZT0lKzNsZCwlKzRsZCBvZmZzZXQ9JSs0ZCwlKzRk
IG9sZD0lKzRkLCUrNGQgYmFzZT0lKzNkLCUrM2RcbiIsCi0gICAgICAgICAgIHByaXYtPnZpZXcu
Y29scywgcHJpdi0+dmlldy5yb3dzLAorICAgICAgICAgICBwcml2LT52aWV3LmNvbHVtbnMsIHBy
aXYtPnZpZXcucm93cywKICAgICAgICAgICAgcHJpdi0+bW9kZWwuY3VycmVudC5jb2x1bW5zLCBw
cml2LT5tb2RlbC5jdXJyZW50LnJvd3MsCiAgICAgICAgICAgIHByaXYtPm1vZGVsLndpZHRoLCBw
cml2LT5tb2RlbC5oZWlnaHQsCiAgICAgICAgICAgIHByaXYtPm1vZGVsLmJhc2UuY29sdW1uLCBw
cml2LT5tb2RlbC5iYXNlLnJvdywKLSAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngs
IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55LAorICAgICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5j
dXJyZW50LngsIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSwKICAgICAgICAgICAgcHJpdi0+
dmlldy5vZmZzZXQub2xkLngsIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55LAogICAgICAgICAgICBw
cml2LT52aWV3Lm9mZnNldC5iYXNlLngsIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueSk7CiAKQEAg
LTkzMyw3ICs5MzMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX3ZpZXdfZGJnKGNvbnN0IEV3a19UaWxlZF9CYWNraW5nX1N0bwogICAgICAgICAgICAgaWYg
KCFpdGVtLT50aWxlKQogICAgICAgICAgICAgICAgIHByaW50ZigiICAgICAgICAgICAgOyIpOwog
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHByaW50ZigiJThwICVsdSwlbHU7Iiwg
aXRlbS0+dGlsZSwgaXRlbS0+dGlsZS0+Y29sLCBpdGVtLT50aWxlLT5yb3cpOworICAgICAgICAg
ICAgICAgIHByaW50ZigiJThwICVsdSwlbHU7IiwgaXRlbS0+dGlsZSwgaXRlbS0+dGlsZS0+Y29s
dW1uLCBpdGVtLT50aWxlLT5yb3cpOwogICAgICAgICB9CiAgICAgICAgIHByaW50ZigiXG4iKTsK
ICAgICB9CkBAIC0xMDQxLDIyICsxMDQxLDIyIEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV92aWV3X3dyYXBfZG93bihFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAg
KiBAaW50ZXJuYWwKICAqIE1vdmUgbGVmdC1tb3N0IChmaXJzdCkgY29sdW1uIHJpZ2h0IGFzIGxh
c3QgKHJpZ2h0LW1vc3QpLgogICoKLSAqIFRoZSBmaW5hbCByZXN1bHQgaXMgdmlzdWFsbHkgdGhl
IHNhbWUsIGJ1dCBsb2dpY2FsbHkgdGhlIGZpcnN0IGNvbCB0aGF0CisgKiBUaGUgZmluYWwgcmVz
dWx0IGlzIHZpc3VhbGx5IHRoZSBzYW1lLCBidXQgbG9naWNhbGx5IHRoZSBmaXJzdCBjb2x1bW4g
dGhhdAogICogd2VudCBvdXQgb2Ygc2NyZWVuIGlzIG5vdyBhdCBsYXN0IGFuZCBmaWxsZWQgd2l0
aCBuZXcgbW9kZWwgaXRlbXMuCiAgKgogICogVGhpcyBpcyB3b3J0aCBqdXN0IHdoZW4gQGEgY291
bnQgaXMgc21hbGxlciB0aGFuIEBjCi0gKiBwcml2LT52aWV3LmNvbHMsIGFmdGVyIHRoYXQgb25l
IGlzIHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CisgKiBwcml2LT52aWV3LmNvbHVt
bnMsIGFmdGVyIHRoYXQgb25lIGlzIHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CiAg
KiBpcyBiZXR0ZXIgdG8gdHJpZ2dlciBmdWxsIHJlZmlsbC4KICAqCiAgKiBAcGFyYW0gY291bnQg
dGhlIG51bWJlciBvZiB0aW1lcyB0byByZXBlYXQgdGhlIHByb2Nlc3MuCiAgKi8KIHN0YXRpYyB2
b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBfbGVmdChFd2tfVGlsZWRfQmFj
a2luZ19TdG9yZV9EYXRhKiBwcml2LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSwgdW5zaWdu
ZWQgaW50IGNvdW50KQogewotICAgIHVuc2lnbmVkIGludCByb3csIGxhc3RDb2x1bW4gPSBwcml2
LT52aWV3LmNvbHMgLSAxOworICAgIHVuc2lnbmVkIGludCByb3csIGxhc3RDb2x1bW4gPSBwcml2
LT52aWV3LmNvbHVtbnMgLSAxOwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoID0gcHJpdi0+dmll
dy50aWxlLndpZHRoOwogICAgIEV2YXNfQ29vcmQgdGlsZUhlaWdodCA9IHByaXYtPnZpZXcudGls
ZS5oZWlnaHQ7CiAgICAgRXZhc19Db29yZCBvZmZzZXRYID0gcHJpdi0+dmlldy5vZmZzZXQuYmFz
ZS54ICsgY291bnQgKiB0aWxlV2lkdGg7Ci0gICAgRXZhc19Db29yZCBveSA9IHkgKyBwcml2LT52
aWV3Lm9mZnNldC5iYXNlLnk7CisgICAgRXZhc19Db29yZCBvZmZzZXRZID0geSArIHByaXYtPnZp
ZXcub2Zmc2V0LmJhc2UueTsKICAgICBFaW5hX0lubGlzdCoqIGl0ZXJhdG9yOwogICAgIEVpbmFf
SW5saXN0KiogaXRlcmF0b3JFbmQ7CiAgICAgdW5zaWduZWQgaW50IGJhc2VDb2x1bW4gPSBsYXN0
Q29sdW1uIC0gY291bnQgKyAxOwpAQCAtMTA3NywxMCArMTA3NywxMCBAQCBzdGF0aWMgdm9pZCBf
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld193cmFwX2xlZnQoRXdrX1RpbGVkX0JhY2tpbmdf
U3RvcmVfRGF0YQogICAgICAgICAgICAgaXQgPSBFSU5BX0lOTElTVF9DT05UQUlORVJfR0VUKCpp
dGVyYXRvciwgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSk7CiAgICAgICAgICAgICAqaXRl
cmF0b3IgPSBlaW5hX2lubGlzdF9kZW1vdGUoKml0ZXJhdG9yLCAqaXRlcmF0b3IpOwogCi0gICAg
ICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0LCB0aWxlUG9zaXRp
b25YLCBveSk7CisgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3Zl
KGl0LCB0aWxlUG9zaXRpb25YLCBvZmZzZXRZKTsKICAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9pdGVtX2ZpbGwocHJpdiwgaXQsIGNvbHVtbiwgcm93KTsKICAgICAgICAgfQot
ICAgICAgICBveSArPSB0aWxlSGVpZ2h0OworICAgICAgICBvZmZzZXRZICs9IHRpbGVIZWlnaHQ7
CiAgICAgfQogCiAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ID0gb2Zmc2V0WDsKQEAgLTEw
OTAsMTEgKzEwOTAsMTEgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Zp
ZXdfd3JhcF9sZWZ0KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKICAqIEBpbnRlcm5hbAog
ICogTW92ZSByaWdodC1tb3N0IChsYXN0KSBjb2x1bW4gbGVmdCBhcyBmaXJzdCAobGVmdC1tb3N0
KS4KICAqCi0gKiBUaGUgZmluYWwgcmVzdWx0IGlzIHZpc3VhbGx5IHRoZSBzYW1lLCBidXQgbG9n
aWNhbGx5IHRoZSBsYXN0IGNvbCB0aGF0CisgKiBUaGUgZmluYWwgcmVzdWx0IGlzIHZpc3VhbGx5
IHRoZSBzYW1lLCBidXQgbG9naWNhbGx5IHRoZSBsYXN0IGNvbHVtbiB0aGF0CiAgKiB3ZW50IG91
dCBvZiBzY3JlZW4gaXMgbm93IGF0IGZpcnN0IGFuZCBmaWxsZWQgd2l0aCBuZXcgbW9kZWwgaXRl
bXMuCiAgKgogICogVGhpcyBpcyB3b3J0aCBqdXN0IHdoZW4gQGEgY291bnQgaXMgc21hbGxlciB0
aGFuIEBjCi0gKiBwcml2LT52aWV3LmNvbHMsIGFmdGVyIHRoYXQgb25lIGlzIHJlZmlsbGluZyB0
aGUgd2hvbGUgbWF0cml4IHNvIGl0CisgKiBwcml2LT52aWV3LmNvbHVtbnMsIGFmdGVyIHRoYXQg
b25lIGlzIHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CiAgKiBpcyBiZXR0ZXIgdG8g
dHJpZ2dlciBmdWxsIHJlZmlsbC4KICAqCiAgKiBAcGFyYW0gY291bnQgdGhlIG51bWJlciBvZiB0
aW1lcyB0byByZXBlYXQgdGhlIHByb2Nlc3MuCkBAIC0xMTM4LDcgKzExMzgsNyBAQCBzdGF0aWMg
dm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19yZWZpbGwoRXdrX1RpbGVkX0JhY2tp
bmdfU3RvcmVfRGF0YSogcAogewogICAgIEVpbmFfSW5saXN0KiogaXRlcmF0b3IsICoqaXRlcmF0
b3JFbmQ7CiAgICAgRXZhc19Db29yZCBiYXNlVGlsZVBvc2l0aW9uWCwgdGlsZVBvc2l0aW9uWSwg
dGlsZVdpZHRoLCB0aWxlSGVpZ2h0OwotICAgIHVuc2lnbmVkIGludCByOworICAgIHVuc2lnbmVk
IGludCByb3c7CiAKICAgICBldmFzX29iamVjdF9tb3ZlKHByaXYtPmJhc2UuY2xpcHBlciwgeCwg
eSk7CiAKQEAgLTExNTAsMTkgKzExNTAsMTkgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3ZpZXdfcmVmaWxsKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHAKIAog
ICAgIGl0ZXJhdG9yID0gcHJpdi0+dmlldy5pdGVtczsKICAgICBpdGVyYXRvckVuZCA9IGl0ZXJh
dG9yICsgcHJpdi0+dmlldy5yb3dzOwotICAgIHIgPSAwOworICAgIHJvdyA9IDA7CiAKICAgICBw
cml2LT5tb2RlbC5iYXNlLmNvbHVtbiAtPSBzdGVwWDsKICAgICBwcml2LT5tb2RlbC5iYXNlLnJv
dyAtPSBzdGVwWTsKIAotICAgIGZvciAoOyBpdGVyYXRvciA8IGl0ZXJhdG9yRW5kOyBpdGVyYXRv
cisrLCByKyspIHsKKyAgICBmb3IgKDsgaXRlcmF0b3IgPCBpdGVyYXRvckVuZDsgaXRlcmF0b3Ir
Kywgcm93KyspIHsKICAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbTsK
ICAgICAgICAgRXZhc19Db29yZCBuZXdUaWxlUG9zaXRpb25YID0gYmFzZVRpbGVQb3NpdGlvblg7
Ci0gICAgICAgIHVuc2lnbmVkIGludCBjb3VudCA9IDA7CisgICAgICAgIHVuc2lnbmVkIGludCBj
b2x1bW4gPSAwOwogICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKCppdGVyYXRvciwgaXRlbSkg
ewotICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fZmlsbChwcml2LCBp
dGVtLCBjb3VudCwgcik7CisgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRl
bV9maWxsKHByaXYsIGl0ZW0sIGNvbHVtbiwgcm93KTsKICAgICAgICAgICAgIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXRlbSwgbmV3VGlsZVBvc2l0aW9uWCwgdGlsZVBvc2l0
aW9uWSk7Ci0gICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgY29sdW1uKys7CiAgICAg
ICAgICAgICBuZXdUaWxlUG9zaXRpb25YICs9IHRpbGVXaWR0aDsKICAgICAgICAgfQogICAgICAg
ICB0aWxlUG9zaXRpb25ZICs9IHRpbGVIZWlnaHQ7CkBAIC0xMTg1LDEwICsxMTg1LDEwIEBAIHN0
YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bvc19hcHBseShFd2tfVGls
ZWRfQmFja2luZ19TdG9yZV9EYXRhCiAgICAgaXRlcmF0b3IgPSBwcml2LT52aWV3Lml0ZW1zOwog
ICAgIGl0ZXJhdG9yRW5kID0gaXRlcmF0b3IgKyBwcml2LT52aWV3LnJvd3M7CiAgICAgZm9yICg7
IGl0ZXJhdG9yIDwgaXRlcmF0b3JFbmQ7IGl0ZXJhdG9yKyspIHsKLSAgICAgICAgRXdrX1RpbGVk
X0JhY2tpbmdfU3RvcmVfSXRlbSogaXQ7CisgICAgICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3Jl
X0l0ZW0qIGl0ZW07CiAgICAgICAgIEV2YXNfQ29vcmQgb3ggPSBiYXNlVGlsZVBvc2l0aW9uWDsK
LSAgICAgICAgRUlOQV9JTkxJU1RfRk9SRUFDSCgqaXRlcmF0b3IsIGl0KSB7Ci0gICAgICAgICAg
ICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0LCBveCwgYmFzZVRpbGVQb3Np
dGlvblkpOworICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKCppdGVyYXRvciwgaXRlbSkgewor
ICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fbW92ZShpdGVtLCBveCwg
YmFzZVRpbGVQb3NpdGlvblkpOwogICAgICAgICAgICAgb3ggKz0gdGlsZVdpZHRoOwogICAgICAg
ICB9CiAgICAgICAgIGJhc2VUaWxlUG9zaXRpb25ZICs9IHRpbGVIZWlnaHQ7CkBAIC0xMTk3LDI4
ICsxMTk3LDI4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bv
c19hcHBseShFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAKIHN0YXRpYyB2b2lkIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGVfb2Zmc2V0X2ZvcmNlKEV3a19UaWxl
ZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYpCiB7Ci0gICAgRXZhc19Db29yZCBkZWx0YVggPSBw
cml2LT52aWV3Lm9mZnNldC5jdXIueCAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54OwotICAgIEV2
YXNfQ29vcmQgZGVsdGFZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgLSBwcml2LT52aWV3Lm9m
ZnNldC5vbGQueTsKKyAgICBFdmFzX0Nvb3JkIGRlbHRhWCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1
cnJlbnQueCAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54OworICAgIEV2YXNfQ29vcmQgZGVsdGFZ
ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLnk7
CiAgICAgRXZhc19Db29yZCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQ7CiAgICAgaW50IHN0ZXBZLCBz
dGVwWDsKIAogICAgIElORigiZXdrQmFja2luZ1N0b3JlJXAsIG9mZnNldDogJSs0ZCwgJSs0ZCAo
JSs0ZCwgJSs0ZCkiLAotICAgICAgICBwcml2LT5zZWxmLCBkZWx0YVgsIGRlbHRhWSwgcHJpdi0+
dmlldy5vZmZzZXQuY3VyLngsIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55KTsKKyAgICAgICAgcHJp
di0+c2VsZiwgZGVsdGFYLCBkZWx0YVksIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCwgcHJp
di0+dmlldy5vZmZzZXQuY3VycmVudC55KTsKIAogICAgIHRpbGVXaWR0aCA9IHByaXYtPnZpZXcu
dGlsZS53aWR0aDsKICAgICB0aWxlSGVpZ2h0ID0gcHJpdi0+dmlldy50aWxlLmhlaWdodDsKIAot
ICAgIGxvbmcgbmV3Q29sdW1uID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci54IC8gdGlsZVdpZHRo
OworICAgIGxvbmcgbmV3Q29sdW1uID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAvIHRp
bGVXaWR0aDsKICAgICBzdGVwWCA9IHByaXYtPm1vZGVsLmJhc2UuY29sdW1uIC0gbmV3Q29sdW1u
OwotICAgIGxvbmcgbmV3Um93ID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci55IC8gdGlsZUhlaWdo
dDsKKyAgICBsb25nIG5ld1JvdyA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgLyB0aWxl
SGVpZ2h0OwogICAgIHN0ZXBZID0gcHJpdi0+bW9kZWwuYmFzZS5yb3cgLSBuZXdSb3c7CiAKLSAg
ICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAg
IHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7CisgICAg
cHJpdi0+dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7Cisg
ICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7
CiAgICAgZXZhc19vYmplY3RfbW92ZSgKICAgICAgICAgcHJpdi0+Y29udGVudHNDbGlwcGVyLAot
ICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCArIHByaXYtPnZpZXcueCwKLSAgICAgICAg
cHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgKyBwcml2LT52aWV3LnkpOworICAgICAgICBwcml2LT52
aWV3Lm9mZnNldC5jdXJyZW50LnggKyBwcml2LT52aWV3LngsCisgICAgICAgIHByaXYtPnZpZXcu
b2Zmc2V0LmN1cnJlbnQueSArIHByaXYtPnZpZXcueSk7CiAKICAgICBwcml2LT52aWV3Lm9mZnNl
dC5iYXNlLnggKz0gZGVsdGFYIC0gc3RlcFggKiB0aWxlV2lkdGg7CiAgICAgcHJpdi0+dmlldy5v
ZmZzZXQuYmFzZS55ICs9IGRlbHRhWSAtIHN0ZXBZICogdGlsZUhlaWdodDsKQEAgLTEyMjksMTMg
KzEyMjksMTMgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2Nh
bGN1bGF0ZV9vZmZzZXRfZm9yY2UoRXdrX1RpbGVkX0JhY2sKIAogc3RhdGljIHZvaWQgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9vZmZzZXQoRXdrX1RpbGVkX0JhY2tp
bmdfU3RvcmVfRGF0YSogcHJpdiwgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHkpCiB7Ci0gICAg
RXZhc19Db29yZCBkZWx0YVggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueCAtIHByaXYtPnZpZXcu
b2Zmc2V0Lm9sZC54OwotICAgIEV2YXNfQ29vcmQgZGVsdGFZID0gcHJpdi0+dmlldy5vZmZzZXQu
Y3VyLnkgLSBwcml2LT52aWV3Lm9mZnNldC5vbGQueTsKKyAgICBFdmFzX0Nvb3JkIGRlbHRhWCA9
IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54Owor
ICAgIEV2YXNfQ29vcmQgZGVsdGFZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55IC0gcHJp
di0+dmlldy5vZmZzZXQub2xkLnk7CiAgICAgRXZhc19Db29yZCB0aWxlV2lkdGgsIHRpbGVIZWln
aHQ7CiAgICAgaW50IHN0ZXBZLCBzdGVwWDsKIAogICAgIElORigiZXdrQmFja2luZ1N0b3JlJXAs
IG9mZnNldDogJSs0ZCwgJSs0ZCAoJSs0ZCwgJSs0ZCkiLAotICAgICAgICBwcml2LT5zZWxmLCBk
ZWx0YVgsIGRlbHRhWSwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngsIHByaXYtPnZpZXcub2Zmc2V0
LmN1ci55KTsKKyAgICAgICAgcHJpdi0+c2VsZiwgZGVsdGFYLCBkZWx0YVksIHByaXYtPnZpZXcu
b2Zmc2V0LmN1cnJlbnQueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55KTsKIAogICAgIGlm
ICghZGVsdGFYICYmICFkZWx0YVkpCiAgICAgICAgIHJldHVybjsKQEAgLTEyNDMsMjAgKzEyNDMs
MjAgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0
ZV9vZmZzZXQoRXdrX1RpbGVkX0JhY2tpbmdfU3QKICAgICB0aWxlV2lkdGggPSBwcml2LT52aWV3
LnRpbGUud2lkdGg7CiAgICAgdGlsZUhlaWdodCA9IHByaXYtPnZpZXcudGlsZS5oZWlnaHQ7CiAK
LSAgICBsb25nIG5ld0NvbCA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXIueCAvIHRpbGVXaWR0aDsK
KyAgICBsb25nIG5ld0NvbCA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggLyB0aWxlV2lk
dGg7CiAgICAgc3RlcFggPSBwcml2LT5tb2RlbC5iYXNlLmNvbHVtbiAtIG5ld0NvbDsKLSAgICBs
b25nIG5ld1JvdyA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXIueSAvIHRpbGVIZWlnaHQ7CisgICAg
bG9uZyBuZXdSb3cgPSAtcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55IC8gdGlsZUhlaWdodDsK
ICAgICBzdGVwWSA9IHByaXYtPm1vZGVsLmJhc2Uucm93IC0gbmV3Um93OwogCi0gICAgcHJpdi0+
dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueDsKLSAgICBwcml2LT52
aWV3Lm9mZnNldC5vbGQueSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OworICAgIHByaXYtPnZp
ZXcub2Zmc2V0Lm9sZC54ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54OworICAgIHByaXYt
PnZpZXcub2Zmc2V0Lm9sZC55ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55OwogICAgIGV2
YXNfb2JqZWN0X21vdmUoCiAgICAgICAgIHByaXYtPmNvbnRlbnRzQ2xpcHBlciwKLSAgICAgICAg
cHJpdi0+dmlldy5vZmZzZXQuY3VyLnggKyBwcml2LT52aWV3LngsCi0gICAgICAgIHByaXYtPnZp
ZXcub2Zmc2V0LmN1ci55ICsgcHJpdi0+dmlldy55KTsKKyAgICAgICAgcHJpdi0+dmlldy5vZmZz
ZXQuY3VycmVudC54ICsgcHJpdi0+dmlldy54LAorICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5j
dXJyZW50LnkgKyBwcml2LT52aWV3LnkpOwogCi0gICAgaWYgKChzdGVwWCA8IDAgJiYgc3RlcFgg
PD0gLXByaXYtPnZpZXcuY29scykKLSAgICAgICAgfHwgKHN0ZXBYID4gMCAmJiBzdGVwWCA+PSBw
cml2LT52aWV3LmNvbHMpCisgICAgaWYgKChzdGVwWCA8IDAgJiYgc3RlcFggPD0gLXByaXYtPnZp
ZXcuY29sdW1ucykKKyAgICAgICAgfHwgKHN0ZXBYID4gMCAmJiBzdGVwWCA+PSBwcml2LT52aWV3
LmNvbHVtbnMpCiAgICAgICAgIHx8IChzdGVwWSA8IDAgJiYgc3RlcFkgPD0gLXByaXYtPnZpZXcu
cm93cykKICAgICAgICAgfHwgKHN0ZXBZID4gMCAmJiBzdGVwWSA+PSBwcml2LT52aWV3LnJvd3Mp
KSB7CiAKQEAgLTEyOTEsOCArMTI5MSw4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9zbWFydF9jYWxjdWxhdGVfcG9zKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlCiAgICAg
cHJpdi0+dmlldy55ID0geTsKICAgICBldmFzX29iamVjdF9tb3ZlKAogICAgICAgICBwcml2LT5j
b250ZW50c0NsaXBwZXIsCi0gICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ICsgcHJpdi0+
dmlldy54LAotICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSArIHByaXYtPnZpZXcueSk7
CisgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCArIHByaXYtPnZpZXcueCwKKyAg
ICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55ICsgcHJpdi0+dmlldy55KTsKIH0KIAog
c3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZpbGxfcmVuZGVyZXJzKEV3a19U
aWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYpCkBAIC0xMzgxLDEwICsxMzgxLDEwIEBAIHN0
YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGUoRXZhc19P
YmplY3QqIGV3a0JhY2tpbmdTdG9yCiAgICAgICAgIHx8IHByaXYtPnZpZXcub2Zmc2V0LmJhc2Uu
eCA8PSAtIHByaXYtPnZpZXcudGlsZS53aWR0aAogICAgICAgICB8fCBwcml2LT52aWV3Lm9mZnNl
dC5iYXNlLnkgPiAwCiAgICAgICAgIHx8IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueSA8PSAtIHBy
aXYtPnZpZXcudGlsZS5oZWlnaHQpCi0gICAgICAgIEVSUigiaW5jb3JyZWN0IGJhc2Ugb2Zmc2V0
ICUrNGQsJSs0ZCwgdGlsZT0lZHglZCwgY3VyPSUrNGQsJSs0ZFxuIiwKKyAgICAgICAgRVJSKCJp
bmNvcnJlY3QgYmFzZSBvZmZzZXQgJSs0ZCwlKzRkLCB0aWxlPSVkeCVkLCBjdXJyZW50PSUrNGQs
JSs0ZFxuIiwKICAgICAgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCwgcHJpdi0+dmll
dy5vZmZzZXQuYmFzZS55LAogICAgICAgICAgICAgcHJpdi0+dmlldy50aWxlLndpZHRoLCBwcml2
LT52aWV3LnRpbGUuaGVpZ2h0LAotICAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngs
IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55KTsKKyAgICAgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0
LmN1cnJlbnQueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55KTsKIAogfQogCkBAIC0xNDQ4
LDggKzE0NDgsOCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9z
Y3JvbGxfZnVsbF9vZmZzZXRfc2V0X2ludGVybmFsKEV3a19UaQogICAgIGlmIChwcml2LT5yZW5k
ZXIuZGlzYWJsZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHByaXYtPnZpZXcub2Zm
c2V0LmN1ci54ID0geDsKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSA9IHk7CisgICAgcHJp
di0+dmlldy5vZmZzZXQuY3VycmVudC54ID0geDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJy
ZW50LnkgPSB5OwogCiAgICAgcHJpdi0+Y2hhbmdlZC5vZmZzZXQgPSB0cnVlOwogICAgIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9jaGFuZ2VkKHByaXYpOwpAQCAtMTQ2Miw3ICsxNDYyLDcgQEAg
RWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXQo
RXZhc19PYmplY3QqIGV3a0JhY2tpbmcKICAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVwLCB4PSVk
LCB5PSVkIiwgZXdrQmFja2luZ1N0b3JlLCB4LCB5KTsKIAogICAgIFBSSVZfREFUQV9HRVRfT1Jf
UkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdiwgZmFsc2UpOwotICAgIGlmICh4ID09IHByaXYt
PnZpZXcub2Zmc2V0LmN1ci54ICYmIHkgPT0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkpCisgICAg
aWYgKHggPT0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ICYmIHkgPT0gcHJpdi0+dmlldy5v
ZmZzZXQuY3VycmVudC55KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3NldF9pbnRlcm5hbChwcml2
LCB4LCB5KTsKQEAgLTE0NzcsMTMgKzE0NzcsMTMgQEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9hZGQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmcK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXRfaW50ZXJuYWwKLSAgICAgICAgICAgICAgIChwcml2
LCBwcml2LT52aWV3Lm9mZnNldC5jdXIueCArIGRlbHRhWCwgcHJpdi0+dmlldy5vZmZzZXQuY3Vy
LnkgKyBkZWx0YVkpOworICAgICAgICAgICAgICAgKHByaXYsIHByaXYtPnZpZXcub2Zmc2V0LmN1
cnJlbnQueCArIGRlbHRhWCwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55ICsgZGVsdGFZKTsK
IH0KIAogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV9zZXRf
aW50ZXJuYWwoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiwgZmxvYXQqIHpvb20s
IEV2YXNfQ29vcmQgY3VycmVudFgsIEV2YXNfQ29vcmQgY3VycmVudFksIEV2YXNfQ29vcmQqIG9m
ZnNldFgsIEV2YXNfQ29vcmQqIG9mZnNldFkpCiB7Ci0gICAgKm9mZnNldFggPSBwcml2LT52aWV3
Lm9mZnNldC5jdXIueDsKLSAgICAqb2Zmc2V0WSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55Owor
ICAgICpvZmZzZXRYID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54OworICAgICpvZmZzZXRZ
ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55OwogCiAgICAgaWYgKGZhYnNmKHByaXYtPnZp
ZXcudGlsZS56b29tIC0gKnpvb20pIDwgem9vbVN0ZXBNaW5pbXVtKSB7CiAgICAgICAgIERCRygi
aWdub3JlZCBhcyB6b29tIGRpZmZlcmVuY2UgaXMgPCAlZjogJWYiLApAQCAtMTUxNCwxMCArMTUx
NCwxMCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3Nl
dF9pbnRlcm5hbChFd2tfVGlsZWRfQmFja2luZ19TdAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRvciwgKippdGVyYXRvckVuZDsKLSAgICBFd2tf
VGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdDsKKyAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9JdGVtKiBpdGVtOwogCi0gICAgRXZhc19Db29yZCBuZXdYID0gY3VycmVudFggKyAocHJpdi0+
dmlldy5vZmZzZXQuY3VyLnggLSBjdXJyZW50WCkgKiBzY2FsZTsKLSAgICBFdmFzX0Nvb3JkIG5l
d1kgPSBjdXJyZW50WSArIChwcml2LT52aWV3Lm9mZnNldC5jdXIueSAtIGN1cnJlbnRZKSAqIHNj
YWxlOworICAgIEV2YXNfQ29vcmQgbmV3WCA9IGN1cnJlbnRYICsgKHByaXYtPnZpZXcub2Zmc2V0
LmN1cnJlbnQueCAtIGN1cnJlbnRYKSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3WSA9IGN1
cnJlbnRZICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSAtIGN1cnJlbnRZKSAqIHNjYWxl
OwogCiAgICAgRXZhc19Db29yZCBtb2RlbFdpZHRoID0gcHJpdi0+bW9kZWwud2lkdGggKiBzY2Fs
ZTsKICAgICBFdmFzX0Nvb3JkIG1vZGVsSGVpZ2h0ID0gcHJpdi0+bW9kZWwuaGVpZ2h0ICogc2Nh
bGU7CkBAIC0xNTQxLDE1ICsxNTQxLDE1IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9i
YWNraW5nX3N0b3JlX3pvb21fc2V0X2ludGVybmFsKEV3a19UaWxlZF9CYWNraW5nX1N0CiAgICAg
cHJpdi0+Y2hhbmdlZC5tb2RlbCA9IHRydWU7CiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X2NoYW5nZWQocHJpdik7CiAKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCA9IG5ld1g7Ci0g
ICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgPSBuZXdZOworICAgIHByaXYtPnZpZXcub2Zmc2V0
LmN1cnJlbnQueCA9IG5ld1g7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55ID0gbmV3
WTsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSBiYXNlWDsKICAgICBwcml2LT52aWV3
Lm9mZnNldC5iYXNlLnkgPSBiYXNlWTsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54ID0g
cHJpdi0+dmlldy5vZmZzZXQuY3VyLng7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBw
cml2LT52aWV3Lm9mZnNldC5jdXIueTsKLSAgICAqb2Zmc2V0WCA9IHByaXYtPnZpZXcub2Zmc2V0
LmN1ci54OwotICAgICpvZmZzZXRZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7CisgICAgcHJp
di0+dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAg
cHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7Cisg
ICAgKm9mZnNldFggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAgKm9mZnNldFkg
PSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAKICAgICBldmFzX29iamVjdF9tb3ZlKAog
ICAgICAgICBwcml2LT5jb250ZW50c0NsaXBwZXIsCkBAIC0xNTY4LDkgKzE1NjgsOSBAQCBzdGF0
aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3NldF9pbnRlcm5hbChF
d2tfVGlsZWRfQmFja2luZ19TdAogICAgICAgICBFdmFzX0Nvb3JkIHRpbGVQb3NpdGlvblggPSBi
YXNlVGlsZVBvc2l0aW9uWDsKICAgICAgICAgRWluYV9Jbmxpc3QqIGxzdCA9ICppdGVyYXRvcjsK
IAotICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKGxzdCwgaXQpIHsKLSAgICAgICAgICAgIF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXQsIHRpbGVQb3NpdGlvblgsIHRpbGVQ
b3NpdGlvblkpOwotICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fcmVz
aXplKGl0LCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQpOworICAgICAgICBFSU5BX0lOTElTVF9GT1JF
QUNIKGxzdCwgaXRlbSkgeworICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0
ZW1fbW92ZShpdGVtLCB0aWxlUG9zaXRpb25YLCB0aWxlUG9zaXRpb25ZKTsKKyAgICAgICAgICAg
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Jlc2l6ZShpdGVtLCB0aWxlV2lkdGgsIHRp
bGVIZWlnaHQpOwogICAgICAgICAgICAgdGlsZVBvc2l0aW9uWCArPSB0aWxlV2lkdGg7CiAgICAg
ICAgIH0KICAgICAgICAgdGlsZVBvc2l0aW9uWSArPSB0aWxlSGVpZ2h0OwpAQCAtMTYxMyw4ICsx
NjEzLDggQEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fd2Vha19zZXQo
RXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgZmwKIAogICAgIGludCB2cm93cyA9IHN0YXRp
Y19jYXN0PGludD4oY2VpbChwcml2LT52aWV3LmhlaWdodCAvc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRp
bGVIZWlnaHQpKSArIDEpOwogICAgIGludCB2Y29scyA9IHN0YXRpY19jYXN0PGludD4oY2VpbChw
cml2LT52aWV3LndpZHRoIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVXaWR0aCkpICsgMSk7Ci0g
ICAgRXZhc19Db29yZCBuZXdYID0gY3VycmVudFggKyAocHJpdi0+dmlldy5vZmZzZXQuY3VyLngg
LSBjdXJyZW50WCkgKiBzY2FsZTsKLSAgICBFdmFzX0Nvb3JkIG5ld1kgPSBjdXJyZW50WSArIChw
cml2LT52aWV3Lm9mZnNldC5jdXIueSAtIGN1cnJlbnRZKSAqIHNjYWxlOworICAgIEV2YXNfQ29v
cmQgbmV3WCA9IGN1cnJlbnRYICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAtIGN1cnJl
bnRYKSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3WSA9IGN1cnJlbnRZICsgKHByaXYtPnZp
ZXcub2Zmc2V0LmN1cnJlbnQueSAtIGN1cnJlbnRZKSAqIHNjYWxlOwogICAgIEV2YXNfQ29vcmQg
YmFzZVggPSBuZXdYICUgdGlsZVdpZHRoOwogICAgIEV2YXNfQ29vcmQgYmFzZVkgPSBuZXdZICUg
dGlsZUhlaWdodDsKICAgICB1bnNpZ25lZCBsb25nIGJhc2VSb3cgPSAtbmV3WSAvIHRpbGVIZWln
aHQ7CkBAIC0xNjI2LDcgKzE2MjYsNyBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfem9vbV93ZWFrX3NldChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBmbAogICAgICAg
ICByZUNhbGN1bGF0ZSA9IHRydWU7CiAgICAgfQogCi0gICAgaWYgKHZyb3dzID4gcHJpdi0+dmll
dy5yb3dzIHx8IHZjb2xzID4gcHJpdi0+dmlldy5jb2xzKQorICAgIGlmICh2cm93cyA+IHByaXYt
PnZpZXcucm93cyB8fCB2Y29scyA+IHByaXYtPnZpZXcuY29sdW1ucykKICAgICAgICAgcmVDYWxj
dWxhdGUgPSB0cnVlOwogCiAgICAgaWYgKHJlQ2FsY3VsYXRlKSB7CkBAIC0xNjY3LDggKzE2Njcs
OCBAQCB2b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZpeF9vZmZzZXRzKEV2YXNfT2JqZWN0
KiBld2tCYWNraW5nU3RvcmUsIEV2YXNfQ29vcgogICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJO
KGV3a0JhY2tpbmdTdG9yZSwgcHJpdik7CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRvciwgKipp
dGVyYXRvckVuZDsKICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVtOwotICAg
IEV2YXNfQ29vcmQgbmV3WCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAgIEV2YXNfQ29v
cmQgbmV3WSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OworICAgIEV2YXNfQ29vcmQgbmV3WCA9
IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueDsKKyAgICBFdmFzX0Nvb3JkIG5ld1kgPSBwcml2
LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAgICAgRXZhc19Db29yZCBiYXNlWCA9IHByaXYtPnZp
ZXcub2Zmc2V0LmJhc2UueDsKICAgICBFdmFzX0Nvb3JkIGJhc2VZID0gcHJpdi0+dmlldy5vZmZz
ZXQuYmFzZS55OwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoID0gcHJpdi0+dmlldy50aWxlLndp
ZHRoOwpAQCAtMTY5Niw4ICsxNjk2LDggQEAgdm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9m
aXhfb2Zmc2V0cyhFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBFdmFzX0Nvb3IKICAgICAg
ICAgcHJpdi0+bW9kZWwuYmFzZS5yb3cgPSAtbmV3WSAvIHRpbGVIZWlnaHQ7CiAgICAgfQogCi0g
ICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggPSBuZXdYOwotICAgIHByaXYtPnZpZXcub2Zmc2V0
LmN1ci55ID0gbmV3WTsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggPSBuZXdYOwor
ICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSA9IG5ld1k7CiAgICAgcHJpdi0+dmlldy5v
ZmZzZXQub2xkLnggPSBuZXdYOwogICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0gbmV3WTsK
ICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSBiYXNlWDsKQEAgLTE4MTUsOCArMTgxNSw4
IEBAIHZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZmx1c2goRXZhc19PYmplY3QqIGV3a0Jh
Y2tpbmdTdG9yZSkKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUs
IHByaXYpOwogICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlID0gMDsK
IAotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ID0gMDsKLSAgICBwcml2LT52aWV3Lm9mZnNl
dC5jdXIueSA9IDA7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ID0gMDsKKyAgICBw
cml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgPSAwOwogICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9s
ZC54ID0gMDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueSA9IDA7CiAgICAgcHJpdi0+dmll
dy5vZmZzZXQuYmFzZS54ID0gMDsKQEAgLTE5NTYsNyArMTk1Niw3IEBAIEVpbmFfQm9vbCBld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lvbihFdmFzX09iamVjdCogZXdrQmFj
a2luZ1N0b3JlCiB7CiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3Jl
LCBwcml2LCBmYWxzZSk7CiAgICAgRWluYV9UaWxlX0dyaWRfU2xpY2VyIHNsaWNlcjsKLSAgICBj
b25zdCBFaW5hX1RpbGVfR3JpZF9JbmZvKiBpbmZvOworICAgIGNvbnN0IEVpbmFfVGlsZV9Hcmlk
X0luZm8qIGdyaWRJbmZvOwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoLCB0aWxlSGVpZ2h0Owog
ICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlOwogCkBAIC0xOTcwLDEw
ICsxOTcwLDEwIEBAIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVy
X3JlZ2lvbihFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKLSAgICB3aGlsZSAoZWluYV90aWxlX2dyaWRfc2xpY2VyX25leHQoJnNsaWNl
ciwgJmluZm8pKSB7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgYyA9IGluZm8tPmNvbDsK
LSAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyByID0gaW5mby0+cm93OwotICAgICAgICBpZiAo
IV9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfYWRkKHByaXYsIGMs
IHIsIHpvb20pKQorICAgIHdoaWxlIChlaW5hX3RpbGVfZ3JpZF9zbGljZXJfbmV4dCgmc2xpY2Vy
LCAmZ3JpZEluZm8pKSB7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgY29sdW1uID0gZ3Jp
ZEluZm8tPmNvbDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyByb3cgPSBncmlkSW5mby0+
cm93OworICAgICAgICBpZiAoIV9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3Jl
cXVlc3RfYWRkKHByaXYsIGNvbHVtbiwgcm93LCB6b29tKSkKICAgICAgICAgICAgIGJyZWFrOwog
ICAgIH0KIApAQCAtMTk5Nyw3ICsxOTk3LDcgQEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5n
X3N0b3JlX3ByZV9yZW5kZXJfcmVsYXRpdmVfcmFkaXVzKEV2YXNfT2JqZWN0KiBld2tCYWMKICAg
ICBlbmRSb3cgPSBzdGQ6Om1pbihwcml2LT5tb2RlbC5jdXJyZW50LnJvd3MgLSAxLAogICAgICAg
ICAgICAgICAgICAgICAgICBwcml2LT5tb2RlbC5iYXNlLnJvdyArIHByaXYtPnZpZXcucm93cyAr
IG4gLSAxKTsKICAgICBlbmRDb2wgPSBzdGQ6Om1pbihwcml2LT5tb2RlbC5jdXJyZW50LmNvbHVt
bnMgLSAxLAotICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5tb2RlbC5iYXNlLmNvbHVtbiAr
IHByaXYtPnZpZXcuY29scyArIG4gLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+
bW9kZWwuYmFzZS5jb2x1bW4gKyBwcml2LT52aWV3LmNvbHVtbnMgKyBuIC0gMSk7CiAKICAgICBJ
TkYoInN0YXJ0Um93PSVsdSwgZW5kUm93PSVsdSwgc3RhcnRDb2w9JWx1LCBlbmRDb2w9JWx1IiwK
ICAgICAgICAgc3RhcnRSb3csIGVuZFJvdywgc3RhcnRDb2wsIGVuZENvbCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5oCmluZGV4IGU5M2NjZjcu
Ljc0MDNlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZS5oCkBAIC02NCw3ICs2NCw3IEBAIHN0cnVjdCBfRXdrX1RpbGVfU3RhdHMgewogc3Ry
dWN0IF9Fd2tfVGlsZSB7CiAgICAgRWluYV9UaWxlciogdXBkYXRlczsgICAgLyoqPCB1cGRhdGVk
L2RpcnR5IGFyZWFzICovCiAgICAgRXdrX1RpbGVfU3RhdHMgc3RhdHM7ICAgICAgIC8qKjwgdGls
ZSB1c2FnZSBzdGF0aXN0aWNzICovCi0gICAgdW5zaWduZWQgbG9uZyBjb2wsIHJvdzsgLyoqPCB0
aWxlIHRpbGUgcG9zaXRpb24gKi8KKyAgICB1bnNpZ25lZCBsb25nIGNvbHVtbiwgcm93OyAvKio8
IHRpbGUgdGlsZSBwb3NpdGlvbiAqLwogICAgIEV2YXNfQ29vcmQgeCwgeTsgICAgICAgIC8qKjwg
dGlsZSBjb29yZGluYXRlIHBvc2l0aW9uICovCiAKICAgICAvKiogTmV2ZXIgZXZlciBjaGFuZ2Ug
dGhvc2UgYWZ0ZXIgdGlsZSBpcyBjcmVhdGVkIChyZXNwZWN0IGNvbnN0ISkgKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbWF0cml4LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbWF0cml4LmNwcAppbmRleCBhYjA2MDQyLi5kOWEwZjBh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21hdHJpeC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tYXRyaXguY3BwCkBAIC00NCw3
ICs0NCw3IEBAIHR5cGVkZWYgc3RydWN0IF9Fd2tfVGlsZV9NYXRyaXhfRW50cnkgRXdrX1RpbGVf
TWF0cml4X0VudHJ5Owogc3RydWN0IF9Fd2tfVGlsZV9NYXRyaXggewogICAgIEVpbmFfTWF0cml4
c3BhcnNlKiBtYXRyaXg7CiAgICAgRWluYV9Jbmxpc3QqIG1hdHJpY2VzOwotICAgIEV3a19UaWxl
X1VudXNlZF9DYWNoZSogdGlsaWVVbnVzZWRDYWNoZTsKKyAgICBFd2tfVGlsZV9VbnVzZWRfQ2Fj
aGUqIHRpbGVVbnVzZWRDYWNoZTsKICAgICBFdmFzX0NvbG9yc3BhY2UgY3NwYWNlOwogICAgIHN0
cnVjdCB7CiAgICAgICAgIHZvaWQgKCpjYWxsYmFjaykodm9pZCogZGF0YSwgRXdrX1RpbGUqIHRp
bGUsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiB1cGRhdGUpOwpAQCAtOTQsNyArOTQsNyBAQCBzdGF0
aWMgdm9pZCBfZXdrX3RpbGVfbWF0cml4X2NlbGxfZnJlZSh2b2lkKiB1c2VyRGF0YSwgdm9pZCog
Y2VsbERhdGEpCiAgICAgaWYgKCF0aWxlKQogICAgICAgICByZXR1cm47CiAKLSAgICBld2tfdGls
ZV91bnVzZWRfY2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAg
IGV3a190aWxlX3VudXNlZF9jYWNoZV9mcmVlemUodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hl
KTsKIAogICAgIGlmICh0aWxlLT51cGRhdGVzIHx8IHRpbGUtPnN0YXRzLmZ1bGxfdXBkYXRlKQog
ICAgICAgICB0aWxlTWF0cml4LT51cGRhdGVzID0gZWluYV9saXN0X3JlbW92ZSh0aWxlTWF0cml4
LT51cGRhdGVzLCB0aWxlKTsKQEAgLTEwMiw4ICsxMDIsOCBAQCBzdGF0aWMgdm9pZCBfZXdrX3Rp
bGVfbWF0cml4X2NlbGxfZnJlZSh2b2lkKiB1c2VyRGF0YSwgdm9pZCogY2VsbERhdGEpCiAgICAg
aWYgKHRpbGUtPnZpc2libGUpCiAgICAgICAgIEVSUigiZnJlZWluZyBjZWxsIHRoYXQgaXMgdmlz
aWJsZSwgbGVha2luZyB0aWxlICVwIiwgdGlsZSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGlmICgh
ZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfZ2V0KHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2Fj
aGUsIHRpbGUpKQotICAgICAgICAgICAgRVJSKCJ0aWxlICVwIHdhcyBub3QgaW4gY2FjaGUgJXA/
IGxlYWtpbmcuLi4iLCB0aWxlLCB0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlKTsKKyAgICAg
ICAgaWYgKCFld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9nZXQodGlsZU1hdHJpeC0+dGlsZVVu
dXNlZENhY2hlLCB0aWxlKSkKKyAgICAgICAgICAgIEVSUigidGlsZSAlcCB3YXMgbm90IGluIGNh
Y2hlICVwPyBsZWFraW5nLi4uIiwgdGlsZSwgdGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlKTsK
ICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBFd2tfVGlsZV9NYXRyaXhfRW50cnkqIGVudHJ5
OwogICAgICAgICAgICAgREJHKCJ0aWxlIGNlbGwgZG9lcyBub3QgZXhpc3QgYW55bW9yZSwgZnJl
ZSBpdCAlcCIsIHRpbGUpOwpAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGls
ZV9tYXRyaXhfY2VsbF9mcmVlKHZvaWQqIHVzZXJEYXRhLCB2b2lkKiBjZWxsRGF0YSkKICAgICAg
ICAgfQogICAgIH0KIAotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3KHRpbGVNYXRyaXgt
PnRpbGllVW51c2VkQ2FjaGUpOworICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3KHRpbGVN
YXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiB9CiAKIC8qIGNhbGxlZCB3aGVuIGNhY2hlIG9mIHVu
dXNlZCB0aWxlIGlzIGZsdXNoZWQgKi8KQEAgLTEzNyw3ICsxMzcsNyBAQCBzdGF0aWMgdm9pZCBf
ZXdrX3RpbGVfbWF0cml4X3RpbGVfZnJlZSh2b2lkKiBkYXRhLCBFd2tfVGlsZSogdGlsZSkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghZWluYV9tYXRyaXhzcGFyc2VfY2VsbF9p
ZHhfZ2V0KGVudHJ5LT5tYXRyaXgsIHRpbGUtPnJvdywgdGlsZS0+Y29sLCAmY2VsbCkpIHsKKyAg
ICBpZiAoIWVpbmFfbWF0cml4c3BhcnNlX2NlbGxfaWR4X2dldChlbnRyeS0+bWF0cml4LCB0aWxl
LT5yb3csIHRpbGUtPmNvbHVtbiwgJmNlbGwpKSB7CiAKICAgICAgICAgRVJSKCJyZW1vdmluZyB0
aWxlICVwIHRoYXQgd2FzIG5vdCBpbiB0aGUgbWF0cml4PyBMZWFraW5nLi4uIiwgdGlsZSk7CiAg
ICAgICAgIHJldHVybjsKQEAgLTIxMSwxMCArMjExLDEwIEBAIEV3a19UaWxlX01hdHJpeCogZXdr
X3RpbGVfbWF0cml4X25ldyhFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSwg
dW5zCiAgICAgZXdrX3RpbGVfbWF0cml4X3pvb21fbGV2ZWxfc2V0KHRpbGVNYXRyaXgsIHpvb21M
ZXZlbCk7CiAKICAgICBpZiAodGlsZVVudXNlZENhY2hlKQotICAgICAgICB0aWxlTWF0cml4LT50
aWxpZVVudXNlZENhY2hlID0gZXdrX3RpbGVfdW51c2VkX2NhY2hlX3JlZih0aWxlVW51c2VkQ2Fj
aGUpOworICAgICAgICB0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUgPSBld2tfdGlsZV91bnVz
ZWRfY2FjaGVfcmVmKHRpbGVVbnVzZWRDYWNoZSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIHRpbGVN
YXRyaXgtPnRpbGllVW51c2VkQ2FjaGUgPSBld2tfdGlsZV91bnVzZWRfY2FjaGVfbmV3KERFRkFV
TFRfQ0FDSEVfU0laRSk7Ci0gICAgICAgIGlmICghdGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNo
ZSkgeworICAgICAgICB0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUgPSBld2tfdGlsZV91bnVz
ZWRfY2FjaGVfbmV3KERFRkFVTFRfQ0FDSEVfU0laRSk7CisgICAgICAgIGlmICghdGlsZU1hdHJp
eC0+dGlsZVVudXNlZENhY2hlKSB7CiAgICAgICAgICAgICBFUlIoIm5vIGNhY2hlIG9mIHVudXNl
ZCB0aWxlISIpOwogICAgICAgICAgICAgZWluYV9tYXRyaXhzcGFyc2VfZnJlZSh0aWxlTWF0cml4
LT5tYXRyaXgpOwogICAgICAgICAgICAgZnJlZSh0aWxlTWF0cml4KTsKQEAgLTI5OCw3ICsyOTgs
NyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9mcmVlKEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJp
eCkKIAogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHRpbGVNYXRyaXgpOwogCi0gICAg
ZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hl
KTsKKyAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGVVbnVz
ZWRDYWNoZSk7CiAgICAgZXdrX3RpbGVfbWF0cml4X2ludmFsaWRhdGUodGlsZU1hdHJpeCk7CiAg
ICAgZW50cnkgPSBFSU5BX0lOTElTVF9DT05UQUlORVJfR0VUKHRpbGVNYXRyaXgtPm1hdHJpY2Vz
LCBFd2tfVGlsZV9NYXRyaXhfRW50cnkpOwogICAgIGVpbmFfbWF0cml4c3BhcnNlX2ZyZWUoZW50
cnktPm1hdHJpeCk7CkBAIC0zMDYsOCArMzA2LDggQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfZnJl
ZShFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgpCiAgICAgZnJlZShlbnRyeSk7CiAgICAgdGls
ZU1hdHJpeC0+bWF0cmljZXMgPSAwOwogCi0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXco
dGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7Ci0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hl
X3VucmVmKHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgIGV3a190aWxlX3VudXNl
ZF9jYWNoZV90aGF3KHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVf
dW51c2VkX2NhY2hlX3VucmVmKHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiAKICNpZmRl
ZiBERUJVR19NRU1fTEVBS1MKICAgICB0aWxlcyA9IHRpbGVNYXRyaXgtPnN0YXRzLnRpbGVzLmFs
bG9jYXRlZCAtIHRpbGVNYXRyaXgtPnN0YXRzLnRpbGVzLmZyZWVkOwpAQCAtMzU1LDcgKzM1NSw3
IEBAIHZvaWQgZXdrX3RpbGVfbWF0cml4X3Jlc2l6ZShFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRy
aXgsIHVuc2lnbmVkIGxvbmcgY29scywgdW5zCiBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIGV3a190
aWxlX21hdHJpeF91bnVzZWRfY2FjaGVfZ2V0KGNvbnN0IEV3a19UaWxlX01hdHJpeCogdGlsZU1h
dHJpeCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwodGlsZU1hdHJpeCwg
MCk7Ci0gICAgcmV0dXJuIHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGU7CisgICAgcmV0dXJu
IHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZTsKIH0KIAogLyoqCkBAIC0zOTAsNyArMzkwLDcg
QEAgRXdrX1RpbGUqIGV3a190aWxlX21hdHJpeF90aWxlX2V4YWN0X2dldChFd2tfVGlsZV9NYXRy
aXgqIHRpbGVNYXRyaXgsIHVuc2lnbmVkIGwKIAogZW5kOgogICAgIGlmICghdGlsZS0+dmlzaWJs
ZSkgewotICAgICAgICBpZiAoIWV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX2dldCh0aWxlTWF0
cml4LT50aWxpZVVudXNlZENhY2hlLCB0aWxlKSkKKyAgICAgICAgaWYgKCFld2tfdGlsZV91bnVz
ZWRfY2FjaGVfdGlsZV9nZXQodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlLCB0aWxlKSkKICAg
ICAgICAgICAgIFdSTigiRXdrX1RpbGUgd2FzIHVudXNlZCBidXQgbm90IGluIGNhY2hlPyBidWch
Iik7CiAgICAgfQogCkBAIC00NTksNyArNDU5LDcgQEAgRXdrX1RpbGUqIGV3a190aWxlX21hdHJp
eF90aWxlX25ldyhFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgsIEV2YXMqIGNhbnZhcywgdW4K
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgdGlsZS0+Y29sID0gY29sdW1uOworICAg
IHRpbGUtPmNvbHVtbiA9IGNvbHVtbjsKICAgICB0aWxlLT5yb3cgPSByb3c7CiAgICAgdGlsZS0+
eCA9IGNvbHVtbiAqIHRpbGVXaWR0aDsKICAgICB0aWxlLT55ID0gcm93ICogdGlsZUhlaWdodDsK
QEAgLTQ4Niw3ICs0ODYsNyBAQCBFd2tfVGlsZSogZXdrX3RpbGVfbWF0cml4X3RpbGVfbmV3KEV3
a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCwgRXZhcyogY2FudmFzLCB1bgogICogdW51c2VkIGNh
Y2hlLgogICoKICAqIEBwYXJhbSB0aWxlTWF0cml4IHRoZSB0aWxlIG1hdHJpeCB0byByZXR1cm4g
dGlsZSB0by4KLSAqIEBwYXJhbSB0IHRoZSB0aWxlIGluc3RhbmNlIHRvIHJldHVybiwgbXVzdCBA
YiBub3QgYmUgQGMgMC4KKyAqIEBwYXJhbSB0aWxlIHRoZSB0aWxlIGluc3RhbmNlIHRvIHJldHVy
biwgbXVzdCBAYiBub3QgYmUgQGMgMC4KICAqIEBwYXJhbSBsYXN0X3VzZWQgdGltZSBpbiB3aGlj
aCB0aWxlLndpZHRoYXMgbGFzdCB1c2VkLgogICoKICAqIEByZXR1cm4gI3RydWUgb24gc3VjY2Vz
cyBvciAjZmFsc2Ugb24gZmFpbHVyZS4KQEAgLTUwMCw3ICs1MDAsNyBAQCBFaW5hX0Jvb2wgZXdr
X3RpbGVfbWF0cml4X3RpbGVfcHV0KEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCwgRXdrX1Rp
bGUqIHRpbGUsCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgdGlsZS0+c3RhdHMubGFzdF91
c2VkID0gbGFzdFVzZWQ7Ci0gICAgcmV0dXJuIGV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1
dCh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlLCB0aWxlLCBfZXdrX3RpbGVfbWF0cml4X3Rp
bGVfZnJlZSwgdGlsZU1hdHJpeCk7CisgICAgcmV0dXJuIGV3a190aWxlX3VudXNlZF9jYWNoZV90
aWxlX3B1dCh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUsIHRpbGUsIF9ld2tfdGlsZV9tYXRy
aXhfdGlsZV9mcmVlLCB0aWxlTWF0cml4KTsKIH0KIAogRWluYV9Cb29sIGV3a190aWxlX21hdHJp
eF90aWxlX3VwZGF0ZShFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgsIHVuc2lnbmVkIGxvbmcg
Y29sLCB1bnNpZ25lZCBsb25nIHJvdywgY29uc3QgRWluYV9SZWN0YW5nbGUqIHVwZGF0ZSkKQEAg
LTcwNiw3ICs3MDYsNyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9kYmcoY29uc3QgRXdrX1RpbGVf
TWF0cml4KiB0aWxlTWF0cml4KQogICAgICAgICAgICAgICAgIHByaW50ZigiXG4iKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIHByaW50ZigiJTNsdSwlM2x1ICUxMHA6IiwgY29sdW1uLCBy
b3csIHRpbGUpOwotICAgICAgICAgICAgcHJpbnRmKCIgWyUzbHUsJTNsdSArICVkeCVkIEAgJTAu
M2ZdJWMiLCB0aWxlLT5jb2wsIHRpbGUtPnJvdywgdGlsZS0+d2lkdGgsIHRpbGUtPmhlaWdodCwg
dGlsZS0+em9vbSwgdGlsZS0+dmlzaWJsZSA/ICcqJyA6ICcgJyk7CisgICAgICAgICAgICBwcmlu
dGYoIiBbJTNsdSwlM2x1ICsgJWR4JWQgQCAlMC4zZl0lYyIsIHRpbGUtPmNvbHVtbiwgdGlsZS0+
cm93LCB0aWxlLT53aWR0aCwgdGlsZS0+aGVpZ2h0LCB0aWxlLT56b29tLCB0aWxlLT52aXNpYmxl
ID8gJyonIDogJyAnKTsKICAgICAgICAgICAgIHByaW50ZigiXG4iKTsKICAgICAgICAgfQogICAg
IH0KQEAgLTcxNCw3ICs3MTQsNyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9kYmcoY29uc3QgRXdr
X1RpbGVfTWF0cml4KiB0aWxlTWF0cml4KQogICAgICAgICBwcmludGYoIlxuIik7CiAgICAgZWlu
YV9pdGVyYXRvcl9mcmVlKGl0ZXJhdG9yKTsKIAotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9k
YmcodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVfdW51c2VkX2Nh
Y2hlX2RiZyh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogfQogCiAvKioKQEAgLTczMCw3
ICs3MzAsNyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9mcmVlemUoRXdrX1RpbGVfTWF0cml4KiB0
aWxlTWF0cml4KQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHRpbGVNYXRyaXgp
OwogICAgIGlmICghdGlsZU1hdHJpeC0+ZnJvemVuKQotICAgICAgICBld2tfdGlsZV91bnVzZWRf
Y2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgICAgICBld2tf
dGlsZV91bnVzZWRfY2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiAg
ICAgdGlsZU1hdHJpeC0+ZnJvemVuKys7CiB9CiAKQEAgLTc1MCw1ICs3NTAsNSBAQCB2b2lkIGV3
a190aWxlX21hdHJpeF90aGF3KEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCkKIAogICAgIHRp
bGVNYXRyaXgtPmZyb3plbi0tOwogICAgIGlmICghdGlsZU1hdHJpeC0+ZnJvemVuKQotICAgICAg
ICBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGhhdyh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hl
KTsKKyAgICAgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXcodGlsZU1hdHJpeC0+dGlsZVVu
dXNlZENhY2hlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGls
ZWRfbW9kZWwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tb2RlbC5jcHAK
aW5kZXggODQwNDhjYi4uODdmYTgzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a190aWxlZF9tb2RlbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxl
ZF9tb2RlbC5jcHAKQEAgLTM0NSwxNiArMzQ1LDE2IEBAIHZvaWQgZXdrX3RpbGVfdXBkYXRlc19w
cm9jZXNzKEV3a19UaWxlKiB0aWxlLCB2b2lkICgqY2FsbGJhY2spKHZvaWQqIGRhdGEsIEV3a19U
CiAgICAgICAgIHJlY3QuaCA9IHRpbGUtPmhlaWdodDsKICNpZmRlZiBUSUxFX1NUQVRTX0FDQ09V
TlRfUkVOREVSX1RJTUUKICAgICAgICAgc3RydWN0IHRpbWV2YWwgdGltZXY7Ci0gICAgICAgIGRv
dWJsZSByZW5kZXJfc3RhcnQ7CisgICAgICAgIGRvdWJsZSByZW5kZXJTdGFydFRpbWU7CiAgICAg
ICAgIGdldHRpbWVvZmRheSgmdGltZXYsIDApOwotICAgICAgICByZW5kZXJfc3RhcnRpbGUgPSAo
ZG91YmxlKXRpbWV2LnR2X3NlYyArCisgICAgICAgIHJlbmRlclN0YXJ0VGltZSA9IChkb3VibGUp
dGltZXYudHZfc2VjICsKICAgICAgICAgICAgICAgICAgICAgICAgKCgoZG91YmxlKXRpbWV2LnR2
X3VzZWMpIC8gMTAwMDAwMCk7CiAjZW5kaWYKICAgICAgICAgY2FsbGJhY2soKHZvaWQqKWRhdGEs
IHRpbGUsICZyZWN0KTsKICNpZmRlZiBUSUxFX1NUQVRTX0FDQ09VTlRfUkVOREVSX1RJTUUKICAg
ICAgICAgZ2V0dGltZW9mZGF5KCZ0aW1ldiwgMCk7CiAgICAgICAgIHRpbGUtPnN0YXRzLnJlbmRl
cl90aW1lID0gKGRvdWJsZSl0aW1ldi50dl9zZWMgKwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgoKGRvdWJsZSl0aW1ldi50dl91c2VjKSAvIDEwMDAwMDApIC0gcmVuZGVyX3N0YXJ0
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoKGRvdWJsZSl0aW1ldi50dl91c2Vj
KSAvIDEwMDAwMDApIC0gcmVuZGVyU3RhcnRUaW1lOwogI2VuZGlmCiAgICAgfSBlbHNlIGlmICh0
aWxlLT51cGRhdGVzKSB7CiAgICAgICAgIEVpbmFfSXRlcmF0b3IqIGl0ciA9IGVpbmFfdGlsZXJf
aXRlcmF0b3JfbmV3KHRpbGUtPnVwZGF0ZXMpOwpAQCAtNTIwLDcgKzUyMCw3IEBAIHZvaWQgZXdr
X3RpbGVfdW51c2VkX2NhY2hlX2NsZWFyKEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNl
ZENhY2hlKQogfQogCiAvKioKLSAqIGhlaWdodG9sZCByZWZlcmVuY2UgdG8gY2FjaGUuCisgKiBI
b2xkIHJlZmVyZW5jZSB0byBjYWNoZS4KICAqCiAgKiBAcmV0dXJuIHNhbWUgcG9pbnRlciBhcyB0
YWtlbi4KICAqCkBAIC02MzAsNyArNjMwLDcgQEAgdm9pZCBld2tfdGlsZV91bnVzZWRfY2FjaGVf
YXV0b19mbHVzaChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSkKICAqIEZy
ZWV6ZSBjYWNoZSB0byBub3QgZG8gbWFpbnRlbmFuY2UgdGFza3MuCiAgKgogICogTWFpbnRlbmFu
Y2UgdGFza3Mgb3B0aW1pemUgY2FjaGUgdXNhZ2UsIGJ1dCBtYXliZSB3ZSBrbm93IHdlIHNob3Vs
ZAotICogaGVpZ2h0b2xkIG9uIHRoZW0gdW50aWwgd2UgZG8gdGhlIGxhc3Qgb3BlcmF0aW9uLCBp
biB0aGlzIGNhc2Ugd2UgZnJlZXplCisgKiBob2xkIG9uIHRoZW0gdW50aWwgd2UgZG8gdGhlIGxh
c3Qgb3BlcmF0aW9uLCBpbiB0aGlzIGNhc2Ugd2UgZnJlZXplCiAgKiB3aGlsZSBvcGVyYXRpbmcg
YW5kIHRoZW4gdGhhdyB3aGVuIHdlJ3JlIGRvbmUuCiAgKgogICogQHNlZSBld2tfdGlsZV91bnVz
ZWRfY2FjaGVfdGhhdygpCkBAIC03MDcsOCArNzA3LDggQEAgRWluYV9Cb29sIGV3a190aWxlX3Vu
dXNlZF9jYWNoZV90aWxlX2dldChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNo
ZSwKICAqIGJlY2F1c2UgdXN1YWxseSB3ZSB3YW50IGEgbGF6eSBvcGVyYXRpb24gZm9yIGJldHRl
ciBwZXJmb3JtYW5jZS4KICAqCiAgKiBAcGFyYW0gdGlsZVVudXNlZENhY2hlIGNhY2hlIG9mIHVu
dXNlZCB0aWxlcwotICogQHBhcmFtIHQgdGlsZSB0byBiZSBhZGRlZCB0byBjYWNoZS4KLSAqIEBw
YXJhbSB0aWxlX2ZyZWVfY2IgZnVuY3Rpb24gdXNlZCB0byBmcmVlIHRpbGVzLgorICogQHBhcmFt
IHRpbGUgdGlsZSB0byBiZSBhZGRlZCB0byBjYWNoZS4KKyAqIEBwYXJhbSB0aWxlRnJlZUNhbGxi
YWNrIGZ1bmN0aW9uIHVzZWQgdG8gZnJlZSB0aWxlcy4KICAqIEBwYXJhbSBkYXRhIGNvbnRleHQg
dG8gZ2l2ZSBiYWNrIHRvIEBhIHRpbGVfZnJlZV9jYiBhcyBmaXJzdCBhcmd1bWVudC4KICAqCiAg
KiBAcmV0dXJuICN0cnVlIG9uIHN1Y2Nlc3MsICNmYWxzZSBvdGhlcndpc2UuIElmIEBjIHRpbGUt
PnZpc2libGUKQEAgLTcxNiw3ICs3MTYsNyBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVfdW51c2VkX2Nh
Y2hlX3RpbGVfZ2V0KEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlLAogICoK
ICAqIEBzZWUgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2F1dG9fZmx1c2goKQogICovCi1FaW5hX0Jv
b2wgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfcHV0KEV3a19UaWxlX1VudXNlZF9DYWNoZSog
dGlsZVVudXNlZENhY2hlLCBFd2tfVGlsZSogdGlsZSwgdm9pZCAoKiB0aWxlRnJlZUNiKSh2b2lk
KiBkYXRhLCBFd2tfVGlsZSogdGlsZSksIGNvbnN0IHZvaWQqIGRhdGEpCitFaW5hX0Jvb2wgZXdr
X3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfcHV0KEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVu
dXNlZENhY2hlLCBFd2tfVGlsZSogdGlsZSwgdm9pZCAoKiB0aWxlRnJlZUNhbGxiYWNrKSh2b2lk
KiBkYXRhLCBFd2tfVGlsZSogdGlsZSksIGNvbnN0IHZvaWQqIGRhdGEpCiB7CiAgICAgRXdrX1Rp
bGVfVW51c2VkX0NhY2hlX0VudHJ5KiB1bnVzZWRDYWNoZUVudHJ5OwogCkBAIC03MzcsNyArNzM3
LDcgQEAgRWluYV9Cb29sIGV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1dChFd2tfVGlsZV9V
bnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSwKIAogICAgIHVudXNlZENhY2hlRW50cnktPnRp
bGUgPSB0aWxlOwogICAgIHVudXNlZENhY2hlRW50cnktPndlaWdodCA9IDA7IC8qIGNhbGN1bGF0
ZWQganVzdCBiZWZvcmUgc29ydCAqLwotICAgIHVudXNlZENhY2hlRW50cnktPnRpbGVfZnJlZS5j
YWxsYmFjayA9IHRpbGVGcmVlQ2I7CisgICAgdW51c2VkQ2FjaGVFbnRyeS0+dGlsZV9mcmVlLmNh
bGxiYWNrID0gdGlsZUZyZWVDYWxsYmFjazsKICAgICB1bnVzZWRDYWNoZUVudHJ5LT50aWxlX2Zy
ZWUuZGF0YSA9ICh2b2lkKilkYXRhOwogCiAgICAgdGlsZVVudXNlZENhY2hlLT5lbnRyaWVzLmNv
dW50Kys7CkBAIC03NTgsNyArNzU4LDcgQEAgdm9pZCBld2tfdGlsZV91bnVzZWRfY2FjaGVfZGJn
KGNvbnN0IEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlKQogICAgIEVJTkFf
TElTVF9GT1JFQUNIKHRpbGVVbnVzZWRDYWNoZS0+ZW50cmllcy5saXN0LCBsaXN0LCBpdGVtKSB7
CiAgICAgICAgIGNvbnN0IEV3a19UaWxlKiB0aWxlID0gc3RhdGljX2Nhc3Q8RXdrX1RpbGVfVW51
c2VkX0NhY2hlX0VudHJ5Kj4oaXRlbSktPnRpbGU7CiAgICAgICAgIHByaW50ZigiIFslM2x1LCUz
bHUgKyAlZHglZCBAICUwLjNmXSVjIiwKLSAgICAgICAgICAgICAgIHRpbGUtPmNvbCwgdGlsZS0+
cm93LCB0aWxlLT53aWR0aCwgdGlsZS0+aGVpZ2h0LCB0aWxlLT56b29tLAorICAgICAgICAgICAg
ICAgdGlsZS0+Y29sdW1uLCB0aWxlLT5yb3csIHRpbGUtPndpZHRoLCB0aWxlLT5oZWlnaHQsIHRp
bGUtPnpvb20sCiAgICAgICAgICAgICAgICB0aWxlLT52aXNpYmxlID8gJyonIDogJyAnKTsKIAog
ICAgICAgICBpZiAoIShjb3VudCAlIDQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5k
ZXggZjMzODViZC4uZjNkZGQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0y
MTYsNjAgKzIxNiw2MCBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAjaWZuZGVm
IEVXS19UWVBFX0NIRUNLCiAjZGVmaW5lIEVXS19WSUVXX1RZUEVfQ0hFQ0soZXdrVmlldywgLi4u
KSBkbyB7IH0gd2hpbGUgKDApCiAjZWxzZQotI2RlZmluZSBFV0tfVklFV19UWVBFX0NIRUNLKGV3
a1ZpZXcsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGRv
IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgICAgICBjb25zdCBjaGFyKiBfdG1wX290eXBlID0gZXZhc19vYmplY3Rf
dHlwZV9nZXQoZXdrVmlldyk7ICAgICAgICAgICAgICAgXAotICAgICAgICBjb25zdCBFdmFzX1Nt
YXJ0KiBfdG1wX3MgPSBldmFzX29iamVjdF9zbWFydF9zbWFydF9nZXQoZXdrVmlldyk7ICAgICAg
XAotICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWSghX3RtcF9zKSkgeyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgRUlOQV9MT0dfQ1JJVCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICgi
JXAgKCVzKSBpcyBub3QgYSBzbWFydCBvYmplY3QhIiwgZXdrVmlldywgICAgICAgICAgICAgICAg
ICAgXAotICAgICAgICAgICAgICAgIF90bXBfb3R5cGUgPyBfdG1wX290eXBlIDogIihudWxsKSIp
OyAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIH0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgICAgIGNvbnN0IEV2YXNfU21hcnRfQ2xhc3MqIF90bXBfc2MgPSBldmFzX3NtYXJ0X2Ns
YXNzX2dldChfdG1wX3MpOyBcCi0gICAgICAgIGlmIChFSU5BX1VOTElLRUxZKCFfdG1wX3NjKSkg
eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBFSU5BX0xP
R19DUklUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgICAgICAgICAgKCIlcCAoJXMpIGlzIG5vdCBhIHNtYXJ0IG9iamVjdCEiLCBld2tWaWV3
LCAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgX3RtcF9vdHlwZSA/IF90bXBf
b3R5cGUgOiAiKG51bGwpIik7ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHJldHVy
biBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgaWYgKEVJTkFfVU5MSUtFTFkoX3RtcF9zYy0+ZGF0
YSAhPSBld2tWaWV3VHlwZVN0cmluZykpIHsgICAgICAgIFwKLSAgICAgICAgICAgIEVJTkFfTE9H
X0NSSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICAgICAgICAgICAgICAoIiVwICglcykgaXMgbm90IG9mIGFuIGV3a192aWV3IChuZWVkICVwLCBn
b3QgJXApISIsICAgIFwKLSAgICAgICAgICAgICAgICBld2tWaWV3LCBfdG1wX290eXBlID8gX3Rt
cF9vdHlwZSA6ICIobnVsbCkiLCAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgIGV3
a1ZpZXdUeXBlU3RyaW5nLCBfdG1wX3NjLT5kYXRhKTsgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIEVXS19WSUVXX1RZUEVf
Q0hFQ0soZXdrVmlldywgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY29uc3QgY2hhciogX3RtcF9vdHlwZSA9IGV2
YXNfb2JqZWN0X3R5cGVfZ2V0KGV3a1ZpZXcpOyAgICAgICAgICAgICBcCisgICAgICAgIGNvbnN0
IEV2YXNfU21hcnQqIF90bXBfcyA9IGV2YXNfb2JqZWN0X3NtYXJ0X3NtYXJ0X2dldChld2tWaWV3
KTsgICAgXAorICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWSghX3RtcF9zKSkgeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIEVJTkFfTE9HX0NSSVQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgICAgICAgICAgKCIlcCAoJXMpIGlzIG5vdCBhIHNtYXJ0IG9iamVjdCEiLCBld2tWaWV3LCAg
ICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIF90bXBfb3R5cGUgPyBfdG1wX290eXBl
IDogIihudWxsKSIpOyAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHJldHVy
biBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBjb25zdCBFdmFzX1NtYXJ0X0NsYXNz
KiBfdG1wX3NjID0gZXZhc19zbWFydF9jbGFzc19nZXQoX3RtcF9zKTsgICAgIFwKKyAgICAgICAg
aWYgKEVJTkFfVU5MSUtFTFkoIV90bXBfc2MpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgICAgICAgICBFSU5BX0xPR19DUklUICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICgiJXAg
KCVzKSBpcyBub3QgYSBzbWFydCBvYmplY3QhIiwgZXdrVmlldywgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgICAgICAgICBfdG1wX290eXBlID8gX3RtcF9vdHlwZSA6ICIobnVsbCkiKTsgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgaWYgKEVJTkFfVU5MSUtFTFkoX3RtcF9zYy0+ZGF0YSAhPSBld2tW
aWV3VHlwZVN0cmluZykpIHsgICAgICAgICAgICBcCisgICAgICAgICAgICBFSU5BX0xPR19DUklU
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICAgICAgICAgICgiJXAgKCVzKSBpcyBub3Qgb2YgYW4gZXdrX3ZpZXcgKG5lZWQgJXAsIGdv
dCAlcCkhIiwgICAgICAgIFwKKyAgICAgICAgICAgICAgICBld2tWaWV3LCBfdG1wX290eXBlID8g
X3RtcF9vdHlwZSA6ICIobnVsbCkiLCAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAg
ZXdrVmlld1R5cGVTdHJpbmcsIF90bXBfc2MtPmRhdGEpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfSB3
aGlsZSAoMCkKICNlbmRpZgogCi0jZGVmaW5lIEVXS19WSUVXX1NEX0dFVChld2tWaWV3LCBwdHIp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIEV3a19WaWV3X1NtYXJ0X0Rh
dGEqIHB0ciA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihldmFzX29iamVjdF9z
bWFydF9kYXRhX2dldChld2tWaWV3KSkKKyNkZWZpbmUgRVdLX1ZJRVdfU0RfR0VUKGV3a1ZpZXcs
IHBvaW50ZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRXdrX1Zp
ZXdfU21hcnRfRGF0YSogcG9pbnRlciA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEq
PihldmFzX29iamVjdF9zbWFydF9kYXRhX2dldChld2tWaWV3KSkKIAotI2RlZmluZSBFV0tfVklF
V19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHB0ciwgLi4uKSAgICAgICAgICBcCi0gICAgRVdL
X1ZJRVdfVFlQRV9DSEVDSyhld2tWaWV3LCBfX1ZBX0FSR1NfXyk7ICAgICAgICAgICAgICAgIFwK
LSAgICBFV0tfVklFV19TRF9HRVQoZXdrVmlldywgcHRyKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIGlmICghcHRyKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgICAgIENSSVRJQ0FMKCJubyBzbWFydCBkYXRhIGZvciBvYmplY3QgJXAg
KCVzKSIsICAgIFwKLSAgICAgICAgICAgICAgICAgZXdrVmlldywgZXZhc19vYmplY3RfdHlwZV9n
ZXQoZXdrVmlldykpOyAgICAgICAgICAgXAotICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIEVXS19WSUVXX1NEX0dFVF9PUl9S
RVRVUk4oZXdrVmlldywgcG9pbnRlciwgLi4uKSAgICAgICAgICAgICAgICAgICAgXAorICAgIEVX
S19WSUVXX1RZUEVfQ0hFQ0soZXdrVmlldywgX19WQV9BUkdTX18pOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICBFV0tfVklFV19TRF9HRVQoZXdrVmlldywgcG9pbnRlcik7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCFwb2ludGVyKSB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgICAgICBDUklUSUNBTCgibm8gc21hcnQgZGF0YSBmb3Igb2JqZWN0ICVwICglcykiLCAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgZXdrVmlldywgZXZhc19v
YmplY3RfdHlwZV9nZXQoZXdrVmlldykpOyAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJl
dHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAogICAgIH0KIAotI2RlZmluZSBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEs
IHB0cikgICAgICAgICAgICAgIFwKLSAgICBFd2tfVmlld19Qcml2YXRlX0RhdGEgKnB0ciA9IHNt
YXJ0RGF0YS0+X3ByaXYKKyNkZWZpbmUgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwb2lu
dGVyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhKiBwb2ludGVyID0gc21hcnREYXRhLT5fcHJpdgogCi0jZGVmaW5lIEVXS19WSUVXX1BS
SVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHB0ciwgLi4uKSAgICAgICAgICAgICAgIFwKLSAg
ICBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEsIHB0cik7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIGlmICghcHRyKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgQ1JJVElDQUwoIm5vIHByaXZhdGUgZGF0
YSBmb3Igb2JqZWN0ICVwICglcykiLCAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgIHNtYXJ0
RGF0YS0+c2VsZiwgZXZhc19vYmplY3RfdHlwZV9nZXQoc21hcnREYXRhLT5zZWxmKSk7ICAgICBc
Ci0gICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorI2RlZmluZSBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRh
LCBwb2ludGVyLCAuLi4pICAgICAgICAgICAgICAgIFwKKyAgICBFV0tfVklFV19QUklWX0dFVChz
bWFydERhdGEsIHBvaW50ZXIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgaWYgKCFwb2ludGVyKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBDUklUSUNBTCgibm8gcHJpdmF0ZSBkYXRhIGZv
ciBvYmplY3QgJXAgKCVzKSIsICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg
ICAgc21hcnREYXRhLT5zZWxmLCBldmFzX29iamVjdF90eXBlX2dldChzbWFydERhdGEtPnNlbGYp
KTsgICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIH0KIAotI2RlZmluZSBFV0tfVklFV19U
SUxFRF9UWVBFX0NIRUNLX09SX1JFVFVSTihld2tWaWV3LCAuLi4pIFwKLSAgICBpZiAoIWV2YXNf
b2JqZWN0X3NtYXJ0X3R5cGVfY2hlY2soZXdrVmlldywgIkV3a19WaWV3X1RpbGVkIikpIHsgXAot
ICAgICAgICBJTkYoIm9iamVjdCBpcyBub3QgYSBpbnN0YW5jZSBvZiBFd2tfVmlld19UaWxlZCIp
OyBcCi0gICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgXAorI2RlZmluZSBFV0tfVklFV19USUxF
RF9UWVBFX0NIRUNLX09SX1JFVFVSTihld2tWaWV3LCAuLi4pICAgICAgICAgICAgICAgICAgIFwK
KyAgICBpZiAoIWV2YXNfb2JqZWN0X3NtYXJ0X3R5cGVfY2hlY2soZXdrVmlldywgIkV3a19WaWV3
X1RpbGVkIikpIHsgICAgICAgICBcCisgICAgICAgIElORigib2JqZWN0IGlzIG5vdCBhIGluc3Rh
bmNlIG9mIEV3a19WaWV3X1RpbGVkIik7ICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1
cm4gX19WQV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKICAgICB9CiAKIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9jaGFuZ2VkKEV3
a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKQEAgLTQxMCwxMiArNDEwLDEyIEBAIHN0YXRp
YyB2b2lkIF9ld2tfdmlld19zY3JvbGxzX2ZsdXNoKEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJp
dikKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2ZvY3VzX2luKEV3a19WaWV3X1Nt
YXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIHsKICAgICBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEs
IHByaXYpOwotICAgIFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlciogZmMgPSBwcml2LT5wYWdlLT5m
b2N1c0NvbnRyb2xsZXIoKTsKLSAgICBEQkcoImV3a1ZpZXc9JXAsIGZjPSVwIiwgc21hcnREYXRh
LT5zZWxmLCBmYyk7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGZjLCBmYWxz
ZSk7CisgICAgV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyKiBmb2N1c0NvbnRyb2xsZXIgPSBwcml2
LT5wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKTsKKyAgICBEQkcoImV3a1ZpZXc9JXAsIGZvY3VzQ29u
dHJvbGxlcj0lcCIsIHNtYXJ0RGF0YS0+c2VsZiwgZm9jdXNDb250cm9sbGVyKTsKKyAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZm9jdXNDb250cm9sbGVyLCBmYWxzZSk7CiAKLSAg
ICBmYy0+c2V0QWN0aXZlKHRydWUpOwotICAgIGZjLT5zZXRGb2N1c2VkKHRydWUpOworICAgIGZv
Y3VzQ29udHJvbGxlci0+c2V0QWN0aXZlKHRydWUpOworICAgIGZvY3VzQ29udHJvbGxlci0+c2V0
Rm9jdXNlZCh0cnVlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTc5MCw3ICsxNzkwLDcg
QEAgRWluYV9Cb29sIGV3a192aWV3X3ByZV9yZW5kZXJfcmVnaW9uKEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ28KICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJO
KGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JF
VFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoc21hcnREYXRhLT5hcGktPnByZV9yZW5kZXJfcmVnaW9uLCBmYWxzZSk7Ci0gICAg
ZmxvYXQgY3VyX3pvb207CisgICAgZmxvYXQgY3VycmVudFpvb207CiAgICAgRXZhc19Db29yZCBj
b250ZW50c1dpZHRoLCBjb250ZW50c0hlaWdodDsKIAogICAgIC8qIFdoZW4gZG9pbmcgYW5pbWF0
ZWQgem9vbSBpdCdzIG5vdCBwb3NzaWJsZSB0byBjYWxsIHByZS1yZW5kZXIgc2luY2UgaXQKQEAg
LTE3OTksMTUgKzE3OTksMTUgQEAgRWluYV9Cb29sIGV3a192aWV3X3ByZV9yZW5kZXJfcmVnaW9u
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ28KICAgICBpZiAocHJp
di0+YW5pbWF0ZWRab29tLmFuaW1hdG9yKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBj
dXJfem9vbSA9IGV3a19mcmFtZV9wYWdlX3pvb21fZ2V0KHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSk7
CisgICAgY3VycmVudFpvb20gPSBld2tfZnJhbWVfcGFnZV96b29tX2dldChzbWFydERhdGEtPm1h
aW5fZnJhbWUpOwogCi0gICAgaWYgKGN1cl96b29tIDwgMC4wMDAwMSkKKyAgICBpZiAoY3VycmVu
dFpvb20gPCAwLjAwMDAxKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFld2tfZnJh
bWVfY29udGVudHNfc2l6ZV9nZXQoc21hcnREYXRhLT5tYWluX2ZyYW1lLCAmY29udGVudHNXaWR0
aCwgJmNvbnRlbnRzSGVpZ2h0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgY29udGVu
dHNXaWR0aCAqPSB6b29tIC8gY3VyX3pvb207Ci0gICAgY29udGVudHNIZWlnaHQgKj0gem9vbSAv
IGN1cl96b29tOworICAgIGNvbnRlbnRzV2lkdGggKj0gem9vbSAvIGN1cnJlbnRab29tOworICAg
IGNvbnRlbnRzSGVpZ2h0ICo9IHpvb20gLyBjdXJyZW50Wm9vbTsKICAgICBEQkcoInJlZ2lvbiAl
ZCwlZCslZHglZCBAICVmIGNvbnRlbnRzPSVkeCVkIiwgeCwgeSwgd2lkdGgsIGhlaWdodCwgem9v
bSwgY29udGVudHNXaWR0aCwgY29udGVudHNIZWlnaHQpOwogCiAgICAgaWYgKHggKyB3aWR0aCA+
IGNvbnRlbnRzV2lkdGgpCkBAIC0yOTU3LDggKzI5NTcsOCBAQCB2b2lkIGV3a192aWV3X3Jlc3Rv
cmVfc3RhdGUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSkKICAqIEBw
YXJhbSBld2tWaWV3IEN1cnJlbnQgdmlldy4KICAqIEBwYXJhbSBqYXZhc2NyaXB0IEBjIHRydWUg
aWYgdGhlIG5ldyB3aW5kb3cgaXMgb3JpZ2luYXRlZCBmcm9tIGphdmFzY3JpcHQsCiAgKiBAYyBm
YWxzZSBvdGhlcndpc2UKLSAqIEBwYXJhbSB3aWR0aGluZG93X2ZlYXR1cmVzIEZlYXR1cmVzIG9m
IHRoZSBuZXcgd2luZG93IGJlaW5nIGNyZWF0ZWQuIElmIGl0J3MgQGMKLSAqIE5VTEwsIGl0IHdp
bGwgYmUgY3JlYXRlZCBhIHdpbmRvdyB3aXRoIGRlZmF1bHQgZmVhdHVyZXMuCisgKiBAcGFyYW0g
d2luZG93X2ZlYXR1cmVzIEZlYXR1cmVzIG9mIHRoZSBuZXcgd2luZG93IGJlaW5nIGNyZWF0ZWQu
IElmIGl0J3MgQGMKKyAqIDAsIGl0IHdpbGwgYmUgY3JlYXRlZCBhIHdpbmRvdyB3aXRoIGRlZmF1
bHQgZmVhdHVyZXMuCiAgKgogICogQHJldHVybiBOZXcgdmlldywgaW4gY2FzZSBzbWFydCBjbGFz
cyBpbXBsZW1lbnRzIHRoZSBjcmVhdGlvbiBvZiBuZXcgd2luZG93czsKICAqIGVsc2UsIGN1cnJl
bnQgdmlldyBAcGFyYW0gZXdrVmlldyBvciBAYyAwIG9uIGZhaWx1cmUuCkBAIC0zMDUwLDcgKzMw
NTAsNyBAQCB2b2lkIGV3a192aWV3X3Rvb2xiYXJzX3Zpc2libGVfc2V0KEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBib29sIHZpc2libGUpCiAgKi8KIHZvaWQgZXdrX3ZpZXdfdG9vbGJhcnNfdmlzaWJs
ZV9nZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wqIHZpc2libGUpCiB7Ci0gICAgREJHKCIl
cywgbz0lcCIsIF9fZnVuY19fLCBld2tWaWV3KTsKKyAgICBEQkcoIiVzLCBld2tWaWV3PSVwIiwg
X19mdW5jX18sIGV3a1ZpZXcpOwogICAgICp2aXNpYmxlID0gZmFsc2U7CiAgICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tWaWV3LCAidG9vbGJhcnMsdmlzaWJsZSxnZXQiLCB2
aXNpYmxlKTsKIH0KQEAgLTMwODMsNyArMzA4Myw3IEBAIHZvaWQgZXdrX3ZpZXdfc3RhdHVzYmFy
X3Zpc2libGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sICB2aXNpYmxlKQogICovCiB2
b2lkIGV3a192aWV3X3N0YXR1c2Jhcl92aXNpYmxlX2dldChFdmFzX09iamVjdCogZXdrVmlldywg
Ym9vbCogdmlzaWJsZSkKIHsKLSAgICBEQkcoIiVzLCBvPSVwIiwgX19mdW5jX18sIGV3a1ZpZXcp
OworICAgIERCRygiJXMsIGV3a1ZpZXc9JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CiAgICAgKnZp
c2libGUgPSBmYWxzZTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1Zp
ZXcsICJzdGF0dXNiYXIsdmlzaWJsZSxnZXQiLCB2aXNpYmxlKTsKIH0KQEAgLTMxMzIsNyArMzEz
Miw3IEBAIHZvaWQgZXdrX3ZpZXdfc2Nyb2xsYmFyc192aXNpYmxlX3NldChFdmFzX09iamVjdCog
ZXdrVmlldywgYm9vbCB2aXNpYmxlKQogICovCiB2b2lkIGV3a192aWV3X3Njcm9sbGJhcnNfdmlz
aWJsZV9nZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wqIHZpc2libGUpCiB7Ci0gICAgREJH
KCIlcywgbz0lcCIsIF9fZnVuY19fLCBld2tWaWV3KTsKKyAgICBEQkcoIiVzLCBld2tWaWV3PSVw
IiwgX19mdW5jX18sIGV3a1ZpZXcpOwogICAgICp2aXNpYmxlID0gZmFsc2U7CiAgICAgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tWaWV3LCAic2Nyb2xsYmFycyx2aXNpYmxlLGdl
dCIsIHZpc2libGUpOwogfQpAQCAtMzE2NSw3ICszMTY1LDcgQEAgdm9pZCBld2tfdmlld19tZW51
YmFyX3Zpc2libGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIHZpc2libGUpCiAgKi8K
IHZvaWQgZXdrX3ZpZXdfbWVudWJhcl92aXNpYmxlX2dldChFdmFzX09iamVjdCogZXdrVmlldywg
Ym9vbCogdmlzaWJsZSkKIHsKLSAgICBEQkcoIiVzLCBvPSVwIiwgX19mdW5jX18sIGV3a1ZpZXcp
OworICAgIERCRygiJXMsIGV3a1ZpZXc9JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CiAgICAgKnZp
c2libGUgPSBmYWxzZTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1Zp
ZXcsICJtZW51YmFyLHZpc2libGUsZ2V0IiwgdmlzaWJsZSk7CiB9CkBAIC0zNTkxLDcgKzM1OTEs
NyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfem9vbV9yYW5nZV9zZXQoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIGZsb2F0IG1pblNjYWxlLCBmbG9hdCBtYQogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JF
VFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKIAogICAgIGlmIChtYXhTY2FsZSA8IG1pblNj
YWxlKSB7Ci0gICAgICAgIFdSTigibWluX3NjYWxlIGlzIGxhcmdlciB0aGFuIG1heF9zY2FsZSIp
OworICAgICAgICBXUk4oIm1pblNjYWxlIGlzIGxhcmdlciB0aGFuIG1heFNjYWxlIik7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlld19zaW5nbGUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
X3NpbmdsZS5jcHAKaW5kZXggZWQ3MjYzMy4uOGY3NDk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3X3NpbmdsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a192aWV3X3NpbmdsZS5jcHAKQEAgLTksNyArOSw3IEBACiAKICAgICBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICAg
ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgotICAgIE1FUmNoQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICAgICBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIAogICAgIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
QEAgLTIwOSw4ICsyMDksOCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zaW5nbGVfc21h
cnRfcmVwYWludHNfcHJvY2VzcyhFd2tfVmlld19TbWFydF9EYXRhKiBzbQogICAgIEV2YXNfQ29v
cmQgb3csIG9oOwogICAgIHZvaWQqIHBpeGVsczsKICAgICBFaW5hX1JlY3RhbmdsZSogcmVjdDsK
LSAgICBjb25zdCBFaW5hX1JlY3RhbmdsZSogcHI7Ci0gICAgY29uc3QgRWluYV9SZWN0YW5nbGUq
IHByX2VuZDsKKyAgICBjb25zdCBFaW5hX1JlY3RhbmdsZSogcGFpbnRSZXF1ZXN0OworICAgIGNv
bnN0IEVpbmFfUmVjdGFuZ2xlKiBwYWludFJlcXVlc3RFbmQ7CiAgICAgRWluYV9UaWxlciogdGls
ZXI7CiAgICAgRWluYV9JdGVyYXRvciogaXRlcmF0b3I7CiAgICAgY2Fpcm9fc3RhdHVzX3Qgc3Rh
dHVzOwpAQCAtMjc3LDEwICsyNzcsMTAgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc2lu
Z2xlX3NtYXJ0X3JlcGFpbnRzX3Byb2Nlc3MoRXdrX1ZpZXdfU21hcnRfRGF0YSogc20KIAogICAg
IGV3a192aWV3X2xheW91dF9pZl9uZWVkZWRfcmVjdXJzaXZlKHNtYXJ0RGF0YS0+X3ByaXYpOwog
Ci0gICAgcHIgPSBld2tfdmlld19yZXBhaW50c19wb3Aoc21hcnREYXRhLT5fcHJpdiwgJmNvdW50
KTsKLSAgICBwcl9lbmQgPSBwciArIGNvdW50OwotICAgIGZvciAoOyBwciA8IHByX2VuZDsgcHIr
KykKLSAgICAgICAgZWluYV90aWxlcl9yZWN0X2FkZCh0aWxlciwgcHIpOworICAgIHBhaW50UmVx
dWVzdCA9IGV3a192aWV3X3JlcGFpbnRzX3BvcChzbWFydERhdGEtPl9wcml2LCAmY291bnQpOwor
ICAgIHBhaW50UmVxdWVzdEVuZCA9IHBhaW50UmVxdWVzdCArIGNvdW50OworICAgIGZvciAoOyBw
YWludFJlcXVlc3QgPCBwYWludFJlcXVlc3RFbmQ7IHBhaW50UmVxdWVzdCsrKQorICAgICAgICBl
aW5hX3RpbGVyX3JlY3RfYWRkKHRpbGVyLCBwYWludFJlcXVlc3QpOwogCiAgICAgaXRlcmF0b3Ig
PSBlaW5hX3RpbGVyX2l0ZXJhdG9yX25ldyh0aWxlcik7CiAgICAgaWYgKCFpdGVyYXRvcikgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKaW5kZXggYjcyZDZhZS4uNGU5
ZDgyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVkLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwCkBAIC03Nywx
MiArNzcsMTIgQEAgc3RhdGljIHZvaWQqIF9ld2tfdmlld190aWxlZF91cGRhdGVzX3Byb2Nlc3Nf
cHJlKHZvaWQqIGRhdGEsIEV2YXNfT2JqZWN0KiBld2tWaWUKIAogc3RhdGljIEV2YXNfT2JqZWN0
KiBfZXdrX3ZpZXdfdGlsZWRfc21hcnRfYmFja2luZ19zdG9yZV9hZGQoRXdrX1ZpZXdfU21hcnRf
RGF0YSogc21hcnREYXRhKQogewotICAgIEV2YXNfT2JqZWN0KiBicyA9IGV3a190aWxlZF9iYWNr
aW5nX3N0b3JlX2FkZChzbWFydERhdGEtPmJhc2UuZXZhcyk7CisgICAgRXZhc19PYmplY3QqIGJh
Y2tpbmdTdG9yZSA9IGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2FkZChzbWFydERhdGEtPmJhc2Uu
ZXZhcyk7CiAgICAgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVuZGVyX2NiX3NldAotICAgICAg
ICAoYnMsIF9ld2tfdmlld190aWxlZF9yZW5kZXJfY2IsIHNtYXJ0RGF0YS0+X3ByaXYpOworICAg
ICAgICAoYmFja2luZ1N0b3JlLCBfZXdrX3ZpZXdfdGlsZWRfcmVuZGVyX2NiLCBzbWFydERhdGEt
Pl9wcml2KTsKICAgICBld2tfdGlsZWRfYmFja2luZ19zdG9yZV91cGRhdGVzX3Byb2Nlc3NfcHJl
X3NldAotICAgICAgICAoYnMsIF9ld2tfdmlld190aWxlZF91cGRhdGVzX3Byb2Nlc3NfcHJlLCBz
bWFydERhdGEtPl9wcml2KTsKLSAgICByZXR1cm4gYnM7CisgICAgICAgIChiYWNraW5nU3RvcmUs
IF9ld2tfdmlld190aWxlZF91cGRhdGVzX3Byb2Nlc3NfcHJlLCBzbWFydERhdGEtPl9wcml2KTsK
KyAgICByZXR1cm4gYmFja2luZ1N0b3JlOwogfQogCiBzdGF0aWMgdm9pZApAQCAtOTcsMTcgKzk3
LDE3IEBAIF9ld2tfdmlld190aWxlZF9jb250ZW50c19zaXplX2NoYW5nZWRfY2Iodm9pZCogZGF0
YSwgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqCiAKIHN0YXRpYyB2b2lkIF9ld2tfdmlld190
aWxlZF9zbWFydF9hZGQoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7Ci0gICAgRXdrX1ZpZXdfU21h
cnRfRGF0YSogc2Q7CisgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhOwogCiAgICAg
X3BhcmVudF9zYy5zYy5hZGQoZXdrVmlldyk7CiAKLSAgICBzZCA9IHN0YXRpY19jYXN0PEV3a19W
aWV3X1NtYXJ0X0RhdGEqPihldmFzX29iamVjdF9zbWFydF9kYXRhX2dldChld2tWaWV3KSk7Ci0g
ICAgaWYgKCFzZCkKKyAgICBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9E
YXRhKj4oZXZhc19vYmplY3Rfc21hcnRfZGF0YV9nZXQoZXdrVmlldykpOworICAgIGlmICghc21h
cnREYXRhKQogICAgICAgICByZXR1cm47CiAKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFj
a19hZGQoCi0gICAgICAgIHNkLT5tYWluX2ZyYW1lLCAiY29udGVudHMsc2l6ZSxjaGFuZ2VkIiwK
LSAgICAgICAgX2V3a192aWV3X3RpbGVkX2NvbnRlbnRzX3NpemVfY2hhbmdlZF9jYiwgc2QpOwor
ICAgICAgICBzbWFydERhdGEtPm1haW5fZnJhbWUsICJjb250ZW50cyxzaXplLGNoYW5nZWQiLAor
ICAgICAgICBfZXdrX3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2NiLCBzbWFydERh
dGEpOwogfQogCiBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld190aWxlZF9zbWFydF9zY3JvbGxz
X3Byb2Nlc3MoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQpAQCAtMzkyLDE0ICszOTIs
MTQgQEAgRXZhc19PYmplY3QqIGV3a192aWV3X3RpbGVkX2FkZChFdmFzKiBjYW52YXMpCiAKIEV3
a19UaWxlX1VudXNlZF9DYWNoZSogZXdrX3ZpZXdfdGlsZWRfdW51c2VkX2NhY2hlX2dldChjb25z
dCBFdmFzX09iamVjdCogZXdrVmlldykKIHsKLSAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzZCA9
IGV3a192aWV3X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpOwotICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChzZCwgMCk7Ci0gICAgcmV0dXJuIGV3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3RpbGVfdW51c2VkX2NhY2hlX2dldChzZC0+YmFja2luZ19zdG9yZSk7CisgICAgRXdrX1ZpZXdf
U21hcnRfRGF0YSogc21hcnREYXRhID0gZXdrX3ZpZXdfc21hcnRfZGF0YV9nZXQoZXdrVmlldyk7
CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNtYXJ0RGF0YSwgMCk7CisgICAg
cmV0dXJuIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfdW51c2VkX2NhY2hlX2dldChzbWFy
dERhdGEtPmJhY2tpbmdfc3RvcmUpOwogfQogCiB2b2lkIGV3a192aWV3X3RpbGVkX3VudXNlZF9j
YWNoZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV3a19UaWxlX1VudXNlZF9DYWNoZSogY2Fj
aGUpCiB7Ci0gICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBld2tfdmlld19zbWFydF9kYXRh
X2dldChld2tWaWV3KTsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihzZCk7Ci0gICAg
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2FjaGVfc2V0KHNkLT5iYWNraW5n
X3N0b3JlLCBjYWNoZSk7CisgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gZXdr
X3ZpZXdfc21hcnRfZGF0YV9nZXQoZXdrVmlldyk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk4oc21hcnREYXRhKTsKKyAgICBld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX3VudXNl
ZF9jYWNoZV9zZXQoc21hcnREYXRhLT5iYWNraW5nX3N0b3JlLCBjYWNoZSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123096</attachid>
            <date>2012-01-19 03:34:26 -0800</date>
            <delta_ts>2012-01-19 04:10:50 -0800</delta_ts>
            <desc>spelling fixed.</desc>
            <filename>minor_fix.patch</filename>
            <type>text/plain</type>
            <size>63148</size>
            <attacher name="JungJik Lee">jungjik.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCBkODdlMDRjLi5mZWMzOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNzcgQEAKKzIwMTItMDEtMTkgIEp1bmdKaWsgTGVlICA8anVuZ2ppay5sZWVAc2Ft
c3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRvcHQgQysrIHN0eWxlIGFuZCBNb2RpZnkgdG8g
d2Via2l0LXN0eWxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzYzNzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNb2RpZnkgdGhlIGNvZGUgdG8gd2Via2l0LXN0eWxlIGFuZCBhZG9wdCB0byBDKysgc3R5
bGUgbmFtaW5nLgorICAgICAgICBUaGUgbG9naWMgb2YgdGhlIGNvZGUgaXMgbm90IGNoYW5nZWQu
CisKKyAgICAgICAgKiBld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuY3BwOgorICAgICAgICAo
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfYXNzb2NpYXRlKToKKyAgICAgICAgKF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Rpc3NvY2lhdGUpOgorICAgICAgICAoX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9wcm9jZXNzX3NpbmdsZSk6CisgICAg
ICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKToKKyAgICAgICAgKF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfaXRlbV9zbW9vdGhfc2NhbGVfc2V0KToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV92aWV3X2NvbHNfZW5kX2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfdmlld19yb3dzX2FsbF9kZWwpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3JlbmRlcik6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfbWVtX2Ri
Zyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2lnX3Vzcik6CisgICAgICAg
IChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRkKToKKyAgICAgICAgKF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9yZWNhbGNfcmVuZGVyZXJzKToKKyAgICAgICAgKF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV92aWV3X2RiZyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfdmlld193cmFwX2xlZnQpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Zp
ZXdfcmVmaWxsKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bvc19h
cHBseSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfY2FsY3VsYXRl
X29mZnNldF9mb3JjZSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRf
Y2FsY3VsYXRlX29mZnNldCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21h
cnRfY2FsY3VsYXRlX3Bvcyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21h
cnRfY2FsY3VsYXRlKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxf
ZnVsbF9vZmZzZXRfc2V0X2ludGVybmFsKToKKyAgICAgICAgKGV3a190aWxlZF9iYWNraW5nX3N0
b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXQpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfem9vbV9zZXRfaW50ZXJuYWwpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfem9vbV93ZWFrX3NldCk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9m
aXhfb2Zmc2V0cyk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9mbHVzaCk6Cisg
ICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lvbik6CisgICAg
ICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlbGF0aXZlX3JhZGl1cyk6
CisgICAgICAgICogZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmg6CisgICAgICAgICogZXdr
L2V3a190aWxlZF9tYXRyaXguY3BwOgorICAgICAgICAoX2V3a190aWxlX21hdHJpeF9jZWxsX2Zy
ZWUpOgorICAgICAgICAoX2V3a190aWxlX21hdHJpeF90aWxlX2ZyZWUpOgorICAgICAgICAoZXdr
X3RpbGVfbWF0cml4X25ldyk6CisgICAgICAgIChld2tfdGlsZV9tYXRyaXhfZnJlZSk6CisgICAg
ICAgIChld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldCk6CisgICAgICAgIChld2tfdGls
ZV9tYXRyaXhfdGlsZV9leGFjdF9nZXQpOgorICAgICAgICAoZXdrX3RpbGVfbWF0cml4X3RpbGVf
bmV3KToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF90aWxlX3B1dCk6CisgICAgICAgIChld2tf
dGlsZV9tYXRyaXhfZGJnKToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF9mcmVlemUpOgorICAg
ICAgICAoZXdrX3RpbGVfbWF0cml4X3RoYXcpOgorICAgICAgICAqIGV3ay9ld2tfdGlsZWRfbW9k
ZWwuY3BwOgorICAgICAgICAoZXdrX3RpbGVfdXBkYXRlc19wcm9jZXNzKToKKyAgICAgICAgKGV3
a190aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1dCk6CisgICAgICAgIChld2tfdGlsZV91bnVzZWRf
Y2FjaGVfZGJnKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX2V3a192
aWV3X3NtYXJ0X2ZvY3VzX2luKToKKyAgICAgICAgKGV3a192aWV3X3ByZV9yZW5kZXJfcmVnaW9u
KToKKyAgICAgICAgKGV3a192aWV3X3Rvb2xiYXJzX3Zpc2libGVfZ2V0KToKKyAgICAgICAgKGV3
a192aWV3X3N0YXR1c2Jhcl92aXNpYmxlX2dldCk6CisgICAgICAgIChld2tfdmlld19zY3JvbGxi
YXJzX3Zpc2libGVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X21lbnViYXJfdmlzaWJsZV9nZXQp
OgorICAgICAgICAoZXdrX3ZpZXdfem9vbV9yYW5nZV9zZXQpOgorICAgICAgICAqIGV3ay9ld2tf
dmlld19zaW5nbGUuY3BwOgorICAgICAgICAoX2V3a192aWV3X3NpbmdsZV9zbWFydF9yZXBhaW50
c19wcm9jZXNzKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXdfdGlsZWQuY3BwOgorICAgICAgICAo
X2V3a192aWV3X3RpbGVkX3NtYXJ0X2JhY2tpbmdfc3RvcmVfYWRkKToKKyAgICAgICAgKF9ld2tf
dmlld190aWxlZF9zbWFydF9hZGQpOgorICAgICAgICAoZXdrX3ZpZXdfdGlsZWRfdW51c2VkX2Nh
Y2hlX2dldCk6CisgICAgICAgIChld2tfdmlld190aWxlZF91bnVzZWRfY2FjaGVfc2V0KToKKwog
MjAxMi0wMS0xNyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAg
ICAgICAgIFtFRkxdIFVzZSBzdGF0aWMgY29uc3QgaW5zdGVkIG9mICNkZWZpbmUgbWFjcm8uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUu
Y3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmNwcApp
bmRleCA0Y2RkNzJkLi5iYmU5NDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9Fd2tf
VGlsZWRfQmFja2luZ19TdG9yZV9JdGVtIHsKICAgICBzdHJ1Y3QgewogICAgICAgICBFdmFzX0Nv
b3JkIHgsIHksIHdpZHRoLCBoZWlnaHQ7CiAgICAgfSBnZW9tZXRyeTsKLSAgICBib29sIHNtb290
aF9zY2FsZTsKKyAgICBib29sIHNtb290aFNjYWxlOwogfTsKIAogc3RydWN0IF9Fd2tfVGlsZWRf
QmFja2luZ19TdG9yZV9QcmVfUmVuZGVyX1JlcXVlc3QgewpAQCAtNjEsNyArNjEsNyBAQCBzdHJ1
Y3QgX0V3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEgewogICAgIHN0cnVjdCB7CiAgICAgICAg
IEVpbmFfSW5saXN0KiogaXRlbXM7CiAgICAgICAgIEV2YXNfQ29vcmQgeCwgeSwgd2lkdGgsIGhl
aWdodDsKLSAgICAgICAgbG9uZyBjb2xzLCByb3dzOworICAgICAgICBsb25nIGNvbHVtbnMsIHJv
d3M7CiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICBFdmFzX0Nvb3JkIHdpZHRoLCBoZWln
aHQ7CiAgICAgICAgICAgICBmbG9hdCB6b29tOwpAQCAtNzEsNyArNzEsNyBAQCBzdHJ1Y3QgX0V3
a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEgewogICAgICAgICBzdHJ1Y3QgewogICAgICAgICAg
ICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICBFdmFzX0Nvb3JkIHgsIHk7Ci0gICAgICAgICAg
ICB9IGN1ciwgb2xkLCBiYXNlLCB6b29tQ2VudGVyOworICAgICAgICAgICAgfSBjdXJyZW50LCBv
bGQsIGJhc2UsIHpvb21DZW50ZXI7CiAgICAgICAgIH0gb2Zmc2V0OwogICAgICAgICBib29sIHZp
c2libGUgOiAxOwogICAgIH0gdmlldzsKQEAgLTEwOCw3ICsxMDgsNyBAQCBzdHJ1Y3QgX0V3a19U
aWxlZF9CYWNraW5nX1N0b3JlX0RhdGEgewogICAgICAgICBib29sIG9mZnNldCA6IDE7CiAgICAg
fSBjaGFuZ2VkOwogI2lmZGVmIERFQlVHX01FTV9MRUFLUwotICAgIEVjb3JlX0V2ZW50X0hhbmRs
ZXIqIHNpZ191c3I7CisgICAgRWNvcmVfRXZlbnRfSGFuZGxlciogc2lnbmFsVXNlcjsKICNlbmRp
ZgogfTsKIApAQCAtMjAzLDEzICsyMDMsMTMgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX2l0ZW1fcmVzaXplKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGkKIHN0
YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Fzc29jaWF0ZShFd2tfVGls
ZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2LCBFd2tfVGlsZSogdGlsZSwgRXdrX1RpbGVkX0Jh
Y2tpbmdfU3RvcmVfSXRlbSogaXRlbSkKIHsKICAgICBpZiAoaXRlbS0+dGlsZSkKLSAgICAgICAg
Q1JJVElDQUwoIml0LT50aWxlPSVwLCBidXQgaXQgc2hvdWxkIGJlIDAhIiwgaXRlbS0+dGlsZSk7
CisgICAgICAgIENSSVRJQ0FMKCJpdGVtLT50aWxlPSVwLCBidXQgaXQgc2hvdWxkIGJlIDAhIiwg
aXRlbS0+dGlsZSk7CiAgICAgaXRlbS0+dGlsZSA9IHRpbGU7CiAgICAgZXZhc19vYmplY3RfbW92
ZShpdGVtLT50aWxlLT5pbWFnZSwgaXRlbS0+Z2VvbWV0cnkueCwgaXRlbS0+Z2VvbWV0cnkueSk7
CiAgICAgZXZhc19vYmplY3RfcmVzaXplKGl0ZW0tPnRpbGUtPmltYWdlLCBpdGVtLT5nZW9tZXRy
eS53aWR0aCwgaXRlbS0+Z2VvbWV0cnkuaGVpZ2h0KTsKICAgICBldmFzX29iamVjdF9pbWFnZV9m
aWxsX3NldAogICAgICAgICAoaXRlbS0+dGlsZS0+aW1hZ2UsIDAsIDAsIGl0ZW0tPmdlb21ldHJ5
LndpZHRoLCBpdGVtLT5nZW9tZXRyeS5oZWlnaHQpOwotICAgIGV2YXNfb2JqZWN0X2ltYWdlX3Nt
b290aF9zY2FsZV9zZXQoaXRlbS0+dGlsZS0+aW1hZ2UsIGl0ZW0tPnNtb290aF9zY2FsZSk7Cisg
ICAgZXZhc19vYmplY3RfaW1hZ2Vfc21vb3RoX3NjYWxlX3NldChpdGVtLT50aWxlLT5pbWFnZSwg
aXRlbS0+c21vb3RoU2NhbGUpOwogICAgIGV2YXNfb2JqZWN0X2ltYWdlX2FscGhhX3NldChpdGVt
LT50aWxlLT5pbWFnZSwgcHJpdi0+dmlldy50aWxlLmhhc0FscGhhKTsKIAogICAgIGlmICghZXdr
X3RpbGVfdmlzaWJsZV9nZXQodGlsZSkpCkBAIC0yMjAsMTMgKzIyMCwxMyBAQCBzdGF0aWMgdm9p
ZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV9hc3NvY2lhdGUoRXdrX1RpbGVkX0JhY2tp
bmdfU3RvcmVfRGF0YQogCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGls
ZV9kaXNzb2NpYXRlKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYsIEV3a19UaWxl
ZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0ZW0sIGRvdWJsZSBsYXN0VXNlZCkKIHsKLSAgICBFd2tf
VGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVkVW51c2VkQ2FjaGU7CisgICAgRXdrX1RpbGVfVW51c2Vk
X0NhY2hlKiB0aWxlVW51c2VkQ2FjaGU7CiAgICAgZXdrX3RpbGVfaGlkZShpdGVtLT50aWxlKTsK
ICAgICBpZiAoIWV3a190aWxlX3Zpc2libGVfZ2V0KGl0ZW0tPnRpbGUpKQogICAgICAgICBldmFz
X29iamVjdF9zbWFydF9tZW1iZXJfZGVsKGl0ZW0tPnRpbGUtPmltYWdlKTsKICAgICBld2tfdGls
ZV9tYXRyaXhfdGlsZV9wdXQocHJpdi0+bW9kZWwubWF0cml4LCBpdGVtLT50aWxlLCBsYXN0VXNl
ZCk7Ci0gICAgdGlsZWRVbnVzZWRDYWNoZSA9IGV3a190aWxlX21hdHJpeF91bnVzZWRfY2FjaGVf
Z2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7Ci0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2F1dG9f
Zmx1c2godGlsZWRVbnVzZWRDYWNoZSk7CisgICAgdGlsZVVudXNlZENhY2hlID0gZXdrX3RpbGVf
bWF0cml4X3VudXNlZF9jYWNoZV9nZXQocHJpdi0+bW9kZWwubWF0cml4KTsKKyAgICBld2tfdGls
ZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0aWxlVW51c2VkQ2FjaGUpOwogCiAgICAgaXRlbS0+
dGlsZSA9IDA7CiB9CkBAIC0zMDQsMTQgKzMwNCwxNCBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0X2NsZWFyKEV3a19UaWxlZF9CYWNraW5n
XwogICAgIH0KIH0KIAotLyogYXNzdW1lcyBwcml2LT5wcm9jZXNzLnByZV9jYiB3YXMgY2FsbGVk
IGlmIHJlcXVpcmVkISAqLworLyogYXNzdW1lcyBwcml2LT5wcm9jZXNzLnByZUNhbGxiYWNrIHdh
cyBjYWxsZWQgaWYgcmVxdWlyZWQhICovCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0X3Byb2Nlc3Nfc2luZ2xlKEV3a19UaWxlZF9CYWNraW5n
X1N0b3JlX0RhdGEqIHByaXYpCiB7CiAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfUHJlX1Jl
bmRlcl9SZXF1ZXN0KiByZXF1ZXN0OwogICAgIEVpbmFfUmVjdGFuZ2xlIGFyZWE7CiAgICAgRXdr
X1RpbGVfTWF0cml4KiB0aWxlTWF0cml4ID0gcHJpdi0+bW9kZWwubWF0cml4OwogICAgIEV3a19U
aWxlKiB0aWxlOwotICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZWRVbnVzZWRDYWNoZTsK
KyAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZTsKICAgICB1bnNpZ25l
ZCBsb25nIGNvbHVtbiwgcm93OwogICAgIGZsb2F0IHpvb207CiAgICAgZG91YmxlIGxhc3RfdXNl
ZCA9IGVjb3JlX2xvb3BfdGltZV9nZXQoKTsKQEAgLTM0OCw4ICszNDgsOCBAQCBzdGF0aWMgdm9p
ZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0X3Byb2Nlc3Nfc2lu
Z2xlKEV3a19UaWxlZAogCiBlbmQ6CiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9y
ZW5kZXJfcmVxdWVzdF9kZWwocHJpdiwgcmVxdWVzdCk7Ci0gICAgdGlsZWRVbnVzZWRDYWNoZSA9
IGV3a190aWxlX21hdHJpeF91bnVzZWRfY2FjaGVfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7Ci0g
ICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2F1dG9fZmx1c2godGlsZWRVbnVzZWRDYWNoZSk7Cisg
ICAgdGlsZVVudXNlZENhY2hlID0gZXdrX3RpbGVfbWF0cml4X3VudXNlZF9jYWNoZV9nZXQocHJp
di0+bW9kZWwubWF0cml4KTsKKyAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0
aWxlVW51c2VkQ2FjaGUpOwogfQogCiBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9pdGVtX3Byb2Nlc3NfaWRsZXJfY2Iodm9pZCogZGF0YSkKQEAgLTQzMCwxOCArNDMw
LDE4IEBAIHN0YXRpYyBpbmxpbmUgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9p
dGVtX2ZpbGwoRXdrX1RpbGVkX0JhY2tpbmdfU3RvCiAKICAgICAgICAgaWYgKGl0ZW0tPnRpbGUp
IHsKICAgICAgICAgICAgIEV3a19UaWxlKiBvbGQgPSBpdGVtLT50aWxlOwotICAgICAgICAgICAg
aWYgKG9sZC0+cm93ICE9IGN1cnJlbnRSb3cgfHwgb2xkLT5jb2wgIT0gY3VycmVudENvbHVtbiB8
fCBvbGQtPnpvb20gIT0gem9vbSkKKyAgICAgICAgICAgIGlmIChvbGQtPnJvdyAhPSBjdXJyZW50
Um93IHx8IG9sZC0+Y29sdW1uICE9IGN1cnJlbnRDb2x1bW4gfHwgb2xkLT56b29tICE9IHpvb20p
CiAgICAgICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfZGlzc29jaWF0
ZShwcml2LCBpdGVtLCBsYXN0VXNlZCk7Ci0gICAgICAgICAgICBlbHNlIGlmIChvbGQtPnJvdyA9
PSBjdXJyZW50Um93ICYmIG9sZC0+Y29sID09IGN1cnJlbnRDb2x1bW4gJiYgb2xkLT56b29tID09
IHpvb20pCisgICAgICAgICAgICBlbHNlIGlmIChvbGQtPnJvdyA9PSBjdXJyZW50Um93ICYmIG9s
ZC0+Y29sdW1uID09IGN1cnJlbnRDb2x1bW4gJiYgb2xkLT56b29tID09IHpvb20pCiAgICAgICAg
ICAgICAgICAgZ290byBlbmQ7CiAgICAgICAgIH0KIAogICAgICAgICB0aWxlID0gZXdrX3RpbGVf
bWF0cml4X3RpbGVfZXhhY3RfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCwgY3VycmVudENvbHVtbiwg
Y3VycmVudFJvdywgem9vbSk7CiAKICAgICAgICAgaWYgKCF0aWxlKSB7Ci0gICAgICAgICAgICAv
KiBOT1RFOiBpdCBuZXZlciByZXR1cm5zIDAgaWYgaXQtPnRpbGUgd2FzIHNldCEgKi8KKyAgICAg
ICAgICAgIC8qIE5PVEU6IGl0IG5ldmVyIHJldHVybnMgMCBpZiBpdGVtLT50aWxlIHdhcyBzZXQh
ICovCiAgICAgICAgICAgICBpZiAoaXRlbS0+dGlsZSkgewotICAgICAgICAgICAgICAgIENSSVRJ
Q0FMKCJpdC0+dGlsZT0lcCwgYnV0IGl0IHNob3VsZCBiZSAwISIsIGl0ZW0tPnRpbGUpOworICAg
ICAgICAgICAgICAgIENSSVRJQ0FMKCJpdGVtLT50aWxlPSVwLCBidXQgaXQgc2hvdWxkIGJlIDAh
IiwgaXRlbS0+dGlsZSk7CiAgICAgICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3RpbGVfZGlzc29jaWF0ZShwcml2LCBpdGVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFVzZWQpOwogICAgICAgICAgICAgfQpA
QCAtNDg2LDcgKzQ4Niw3IEBAIHN0YXRpYyBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBf
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9hZGQoRXdrX1RpbGVkCiAKICAgICBpdGVtLT50
aWxlID0gMDsKIAotICAgIGl0ZW0tPnNtb290aF9zY2FsZSA9IHByaXYtPnZpZXcudGlsZS56b29t
V2Vha1Ntb290aFNjYWxlOworICAgIGl0ZW0tPnNtb290aFNjYWxlID0gcHJpdi0+dmlldy50aWxl
Lnpvb21XZWFrU21vb3RoU2NhbGU7CiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1f
bW92ZShpdGVtLCB4LCB5KTsKICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9yZXNp
emUoaXRlbSwgdGlsZVdpZHRoLCB0aWxlSGVpZ2h0KTsKICAgICBpZiAoIV9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9pdGVtX2ZpbGwocHJpdiwgaXRlbSwgY29sdW1uLCByb3cpKSB7CkBAIC01MDks
NyArNTA5LDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fZGVs
KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYKIAogc3RhdGljIHZvaWQgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fc21vb3RoX3NjYWxlX3NldChFd2tfVGlsZWRfQmFja2lu
Z19TdG9yZV9JdGVtKiBpdGVtLCBFaW5hX0Jvb2wgc21vb3RoU2NhbGUpCiB7Ci0gICAgaWYgKGl0
ZW0tPnNtb290aF9zY2FsZSA9PSBzbW9vdGhTY2FsZSkKKyAgICBpZiAoaXRlbS0+c21vb3RoU2Nh
bGUgPT0gc21vb3RoU2NhbGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChpdGVtLT50aWxl
KQpAQCAtNTQ4LDE2ICs1NDgsMTYgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfdmlld19jb2xzX2VuZF9hZGQoRXdrX1RpbGVkX0JhY2tpbmdfU3QKICAgICB1bnNp
Z25lZCBpbnQgaSwgcm93ID0gcm93TGlzdCAtIHByaXYtPnZpZXcuaXRlbXM7CiAKICAgICBmb3Ig
KGkgPSAwOyBpIDwgY291bnQ7IGkrKywgYmFzZUNvbHVtbisrKSB7Ci0gICAgICAgIEV3a19UaWxl
ZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0OworICAgICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9JdGVtKiBpdGVtOwogCi0gICAgICAgIGl0ID0gX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0
ZW1fYWRkKHByaXYsIGJhc2VDb2x1bW4sIHJvdyk7Ci0gICAgICAgIGlmICghaXQpIHsKKyAgICAg
ICAgaXRlbSA9IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2FkZChwcml2LCBiYXNlQ29s
dW1uLCByb3cpOworICAgICAgICBpZiAoIWl0ZW0pIHsKICAgICAgICAgICAgIENSSVRJQ0FMKCJm
YWlsZWQgdG8gYWRkIGNvbHVtbiAldSBvZiAldSBpbiByb3cgJXUuIiwgaSwgY291bnQsIHJvdyk7
CiAgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19jb2xzX2VuZF9kZWwo
cHJpdiwgcm93TGlzdCwgaSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0K
IAotICAgICAgICAqcm93TGlzdCA9IGVpbmFfaW5saXN0X2FwcGVuZCgqcm93TGlzdCwgRUlOQV9J
TkxJU1RfR0VUKGl0KSk7CisgICAgICAgICpyb3dMaXN0ID0gZWluYV9pbmxpc3RfYXBwZW5kKCpy
b3dMaXN0LCBFSU5BX0lOTElTVF9HRVQoaXRlbSkpOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsK
IH0KQEAgLTU5MSw3ICs1OTEsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfdmlld19yb3dzX2FsbF9kZWwoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRAogCiAgICAgZnJl
ZShwcml2LT52aWV3Lml0ZW1zKTsKICAgICBwcml2LT52aWV3Lml0ZW1zID0gMDsKLSAgICBwcml2
LT52aWV3LmNvbHMgPSAwOworICAgIHByaXYtPnZpZXcuY29sdW1ucyA9IDA7CiAgICAgcHJpdi0+
dmlldy5yb3dzID0gMDsKIH0KIApAQCAtNjAwLDcgKzYwMCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9yZW5kZXIodm9pZCogZGF0YSwgRXdrX1RpbGUqIHRpbGUsIGNv
bnN0IEVpCiAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiA9IHN0YXRpY19j
YXN0PEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqPihkYXRhKTsKIAogICAgIElORigiVE9E
TyAlcCAodmlzaWJsZT8gJWQpIFslbHUsJWx1XSAlZCwlZCArICVkeCVkIiwKLSAgICAgICAgdGls
ZSwgdGlsZS0+dmlzaWJsZSwgdGlsZS0+Y29sLCB0aWxlLT5yb3csIGFyZWEtPngsIGFyZWEtPnks
IGFyZWEtPncsIGFyZWEtPmgpOworICAgICAgICB0aWxlLCB0aWxlLT52aXNpYmxlLCB0aWxlLT5j
b2x1bW4sIHRpbGUtPnJvdywgYXJlYS0+eCwgYXJlYS0+eSwgYXJlYS0+dywgYXJlYS0+aCk7CiAK
ICAgICBpZiAoIXRpbGUtPnZpc2libGUpCiAgICAgICAgIHJldHVybjsKQEAgLTY1Nyw3ICs2NTcs
NyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfbWVtX2RiZyhFd2tfVGls
ZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2KQogICAgIHJ1bisrOwogCiAgICAgcHJpbnRmKCJc
bi0tLSBCRUdJTiBERUJVRyBUSUxFRCBCQUNLSU5HIFNUT1JFIE1FTU9SWSBbJWRdIC0tXG4iCi0g
ICAgICAgICAgICJ0PSUwLjJmLCBvYmo9JXAsIHByaXY9JXAsIHZpZXcuaXRlbXM9JXAsIG1hdHJp
eD0lcFxuIiwKKyAgICAgICAgICAgInRpbGU9JTAuMmYsIG9iaj0lcCwgcHJpdj0lcCwgdmlldy5p
dGVtcz0lcCwgbWF0cml4PSVwXG4iLAogICAgICAgICAgICBydW4sIGVjb3JlX2xvb3BfdGltZV9n
ZXQoKSwKICAgICAgICAgICAgcHJpdi0+c2VsZiwgcHJpdiwgcHJpdi0+dmlldy5pdGVtcywgcHJp
di0+bW9kZWwubWF0cml4KTsKIApAQCAtNjY5LDEzICs2NjksMTMgQEAgc3RhdGljIHZvaWQgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX21lbV9kYmcoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0
YSogcHJpdikKIAogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2ln
X3Vzcih2b2lkKiBkYXRhLCBpbnQgdHlwZSwgdm9pZCogZXZlbnQpCiB7Ci0gICAgRWNvcmVfRXZl
bnRfU2lnbmFsX1VzZXIqIHNpZyA9IChFY29yZV9FdmVudF9TaWduYWxfVXNlciopZXZlbnQ7Cisg
ICAgRWNvcmVfRXZlbnRfU2lnbmFsX1VzZXIqIHNpZ25hbFVzZXIgPSAoRWNvcmVfRXZlbnRfU2ln
bmFsX1VzZXIqKWV2ZW50OwogICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYg
PSAoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSopZGF0YTsKIAotICAgIGlmIChzaWctPm51
bWJlciA9PSAyKSB7Ci0gICAgICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsaWVVbnVzZWRD
YWNoZTsKLSAgICAgICAgdGlsaWVVbnVzZWRDYWNoZSA9IGV3a190aWxlX21hdHJpeF91bnVzZWRf
Y2FjaGVfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7Ci0gICAgICAgIGV3a190aWxlX3VudXNlZF9j
YWNoZV9hdXRvX2ZsdXNoKHRpbGllVW51c2VkQ2FjaGUpOworICAgIGlmIChzaWduYWxVc2VyLT5u
dW1iZXIgPT0gMikgeworICAgICAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRD
YWNoZTsKKyAgICAgICAgdGlsZVVudXNlZENhY2hlID0gZXdrX3RpbGVfbWF0cml4X3VudXNlZF9j
YWNoZV9nZXQocHJpdi0+bW9kZWwubWF0cml4KTsKKyAgICAgICAgZXdrX3RpbGVfdW51c2VkX2Nh
Y2hlX2F1dG9fZmx1c2godGlsZVVudXNlZENhY2hlKTsKICAgICB9CiAKICAgICBfZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfdmlld19kYmcocHJpdik7CkBAIC02OTgsOCArNjk4LDggQEAgc3RhdGlj
IHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2FkZChFdmFzX09iamVjdCogZXdr
QmFja2luZ1N0b3JlKQogICAgIHByaXYtPnZpZXcudGlsZS56b29tID0gMS4wOwogICAgIHByaXYt
PnZpZXcudGlsZS53aWR0aCA9IGRlZmF1bHRUaWxlV2lkdGg7CiAgICAgcHJpdi0+dmlldy50aWxl
LmhlaWdodCA9IGRlZmF1bHRUaWxlSGVpZ3RoOwotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54
ID0gMDsKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSA9IDA7CisgICAgcHJpdi0+dmlldy5v
ZmZzZXQuY3VycmVudC54ID0gMDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgPSAw
OwogICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54ID0gMDsKICAgICBwcml2LT52aWV3Lm9mZnNl
dC5vbGQueSA9IDA7CiAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ID0gMDsKQEAgLTczNCw3
ICs3MzQsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRk
KEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUpCiAgICAgZXZhc19vYmplY3RfY2xpcF9zZXQo
cHJpdi0+Y29udGVudHNDbGlwcGVyLCBwcml2LT5iYXNlLmNsaXBwZXIpOwogCiAjaWZkZWYgREVC
VUdfTUVNX0xFQUtTCi0gICAgcHJpdi0+c2lnX3VzciA9IGVjb3JlX2V2ZW50X2hhbmRsZXJfYWRk
CisgICAgcHJpdi0+c2lnbmFsVXNlciA9IGVjb3JlX2V2ZW50X2hhbmRsZXJfYWRkCiAgICAgICAg
ICAgICAgICAgICAgICAgICAoRUNPUkVfRVZFTlRfU0lHTkFMX1VTRVIsIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9zaWdfdXNyLCBwcml2KTsKICNlbmRpZgogfQpAQCAtODI5LDEzICs4MjksMTMg
QEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3JlY2FsY19yZW5kZXJlcnMo
RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGEKICAgICBjb2x1bW5zID0gMSArIHN0YXRpY19jYXN0
PGludD4oY2VpbCh3aWR0aCAvIHN0YXRpY19jYXN0PGZsb2F0Pih0aWxlV2lkdGgpKSk7CiAgICAg
cm93cyA9IDEgKyBzdGF0aWNfY2FzdDxpbnQ+KGNlaWwoaGVpZ2h0IC8gc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHRpbGVIZWlnaHQpKSk7CiAKLSAgICBJTkYoImV3a0JhY2tpbmdTdG9yZSVwIG5ldyBncmlk
IHNpemUgY29sczogJWxkLCByb3dzOiAlbGQsIHdhcyAlbGQsICVsZCIsCi0gICAgICAgIHByaXYt
PnNlbGYsIGNvbHVtbnMsIHJvd3MsIHByaXYtPnZpZXcuY29scywgcHJpdi0+dmlldy5yb3dzKTsK
KyAgICBJTkYoImV3a0JhY2tpbmdTdG9yZSVwIG5ldyBncmlkIHNpemUgY29sdW1uczogJWxkLCBy
b3dzOiAlbGQsIHdhcyAlbGQsICVsZCIsCisgICAgICAgIHByaXYtPnNlbGYsIGNvbHVtbnMsIHJv
d3MsIHByaXYtPnZpZXcuY29sdW1ucywgcHJpdi0+dmlldy5yb3dzKTsKIAotICAgIGlmIChwcml2
LT52aWV3LmNvbHMgPT0gY29sdW1ucyAmJiBwcml2LT52aWV3LnJvd3MgPT0gcm93cykKKyAgICBp
ZiAocHJpdi0+dmlldy5jb2x1bW5zID09IGNvbHVtbnMgJiYgcHJpdi0+dmlldy5yb3dzID09IHJv
d3MpCiAgICAgICAgIHJldHVybjsKIAotICAgIG9sZENvbHMgPSBwcml2LT52aWV3LmNvbHM7Cisg
ICAgb2xkQ29scyA9IHByaXYtPnZpZXcuY29sdW1uczsKICAgICBvbGRSb3dzID0gcHJpdi0+dmll
dy5yb3dzOwogCiAgICAgaWYgKHJvd3MgPCBvbGRSb3dzKSB7CkBAIC04NTEsMTQgKzg1MSwxNCBA
QCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVjYWxjX3JlbmRlcmVycyhF
d2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYQogCiAgICAgcHJpdi0+dmlldy5pdGVtcyA9IHN0YXRp
Y19jYXN0PEVpbmFfSW5saXN0Kio+KG5ld0l0ZW1zKTsKICAgICBwcml2LT52aWV3LnJvd3MgPSBy
b3dzOwotICAgIHByaXYtPnZpZXcuY29scyA9IGNvbHVtbnM7CisgICAgcHJpdi0+dmlldy5jb2x1
bW5zID0gY29sdW1uczsKICAgICBpZiAocm93cyA+IG9sZFJvd3MpIHsKICAgICAgICAgRWluYV9J
bmxpc3QqKiBzdGFydCA9IHByaXYtPnZpZXcuaXRlbXMgKyBvbGRSb3dzOwogICAgICAgICBFaW5h
X0lubGlzdCoqIGVuZCA9IHByaXYtPnZpZXcuaXRlbXMgKyByb3dzOwogICAgICAgICBmb3IgKDsg
c3RhcnQgPCBlbmQ7IHN0YXJ0KyspIHsKICAgICAgICAgICAgICpzdGFydCA9IDA7Ci0gICAgICAg
ICAgICBFaW5hX0Jvb2wgciA9IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X2NvbHNfZW5k
X2FkZChwcml2LCBzdGFydCwgMCwgY29sdW1ucyk7Ci0gICAgICAgICAgICBpZiAoIXIpIHsKKyAg
ICAgICAgICAgIEVpbmFfQm9vbCByZXN1bHQgPSBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmll
d19jb2xzX2VuZF9hZGQocHJpdiwgc3RhcnQsIDAsIGNvbHVtbnMpOworICAgICAgICAgICAgaWYg
KCFyZXN1bHQpIHsKICAgICAgICAgICAgICAgICBDUklUSUNBTCgiZmFpbGVkIHRvIGFsbG9jYXRl
ICVsZCBjb2x1bW5zIiwgY29sdW1ucyk7CiAgICAgICAgICAgICAgICAgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3ZpZXdfcm93c19yYW5nZV9kZWwocHJpdiwgcHJpdi0+dmlldy5pdGVtcyArIG9s
ZFJvd3MsIHN0YXJ0KTsKICAgICAgICAgICAgICAgICBwcml2LT52aWV3LnJvd3MgPSBvbGRSb3dz
OwpAQCAtOTE0LDExICs5MTQsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV92aWV3X2RiZyhjb25zdCBFd2tfVGlsZWRfQmFja2luZ19TdG8KIHsKICAgICBF
aW5hX0lubGlzdCoqIHN0YXJ0LCAqKmVuZDsKICAgICBwcmludGYoInRpbGVzPSUybGQsJTJsZCAg
bW9kZWw9JTJsZCwlMmxkIFslZHglZF0gYmFzZT0lKzNsZCwlKzRsZCBvZmZzZXQ9JSs0ZCwlKzRk
IG9sZD0lKzRkLCUrNGQgYmFzZT0lKzNkLCUrM2RcbiIsCi0gICAgICAgICAgIHByaXYtPnZpZXcu
Y29scywgcHJpdi0+dmlldy5yb3dzLAorICAgICAgICAgICBwcml2LT52aWV3LmNvbHVtbnMsIHBy
aXYtPnZpZXcucm93cywKICAgICAgICAgICAgcHJpdi0+bW9kZWwuY3VycmVudC5jb2x1bW5zLCBw
cml2LT5tb2RlbC5jdXJyZW50LnJvd3MsCiAgICAgICAgICAgIHByaXYtPm1vZGVsLndpZHRoLCBw
cml2LT5tb2RlbC5oZWlnaHQsCiAgICAgICAgICAgIHByaXYtPm1vZGVsLmJhc2UuY29sdW1uLCBw
cml2LT5tb2RlbC5iYXNlLnJvdywKLSAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngs
IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55LAorICAgICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5j
dXJyZW50LngsIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSwKICAgICAgICAgICAgcHJpdi0+
dmlldy5vZmZzZXQub2xkLngsIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55LAogICAgICAgICAgICBw
cml2LT52aWV3Lm9mZnNldC5iYXNlLngsIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueSk7CiAKQEAg
LTkzMyw3ICs5MzMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX3ZpZXdfZGJnKGNvbnN0IEV3a19UaWxlZF9CYWNraW5nX1N0bwogICAgICAgICAgICAgaWYg
KCFpdGVtLT50aWxlKQogICAgICAgICAgICAgICAgIHByaW50ZigiICAgICAgICAgICAgOyIpOwog
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHByaW50ZigiJThwICVsdSwlbHU7Iiwg
aXRlbS0+dGlsZSwgaXRlbS0+dGlsZS0+Y29sLCBpdGVtLT50aWxlLT5yb3cpOworICAgICAgICAg
ICAgICAgIHByaW50ZigiJThwICVsdSwlbHU7IiwgaXRlbS0+dGlsZSwgaXRlbS0+dGlsZS0+Y29s
dW1uLCBpdGVtLT50aWxlLT5yb3cpOwogICAgICAgICB9CiAgICAgICAgIHByaW50ZigiXG4iKTsK
ICAgICB9CkBAIC0xMDQxLDIyICsxMDQxLDIyIEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV92aWV3X3dyYXBfZG93bihFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAg
KiBAaW50ZXJuYWwKICAqIE1vdmUgbGVmdC1tb3N0IChmaXJzdCkgY29sdW1uIHJpZ2h0IGFzIGxh
c3QgKHJpZ2h0LW1vc3QpLgogICoKLSAqIFRoZSBmaW5hbCByZXN1bHQgaXMgdmlzdWFsbHkgdGhl
IHNhbWUsIGJ1dCBsb2dpY2FsbHkgdGhlIGZpcnN0IGNvbCB0aGF0CisgKiBUaGUgZmluYWwgcmVz
dWx0IGlzIHZpc3VhbGx5IHRoZSBzYW1lLCBidXQgbG9naWNhbGx5IHRoZSBmaXJzdCBjb2x1bW4g
dGhhdAogICogd2VudCBvdXQgb2Ygc2NyZWVuIGlzIG5vdyBhdCBsYXN0IGFuZCBmaWxsZWQgd2l0
aCBuZXcgbW9kZWwgaXRlbXMuCiAgKgogICogVGhpcyBpcyB3b3J0aCBqdXN0IHdoZW4gQGEgY291
bnQgaXMgc21hbGxlciB0aGFuIEBjCi0gKiBwcml2LT52aWV3LmNvbHMsIGFmdGVyIHRoYXQgb25l
IGlzIHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CisgKiBwcml2LT52aWV3LmNvbHVt
bnMsIGFmdGVyIHRoYXQgb25lIGlzIHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CiAg
KiBpcyBiZXR0ZXIgdG8gdHJpZ2dlciBmdWxsIHJlZmlsbC4KICAqCiAgKiBAcGFyYW0gY291bnQg
dGhlIG51bWJlciBvZiB0aW1lcyB0byByZXBlYXQgdGhlIHByb2Nlc3MuCiAgKi8KIHN0YXRpYyB2
b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBfbGVmdChFd2tfVGlsZWRfQmFj
a2luZ19TdG9yZV9EYXRhKiBwcml2LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSwgdW5zaWdu
ZWQgaW50IGNvdW50KQogewotICAgIHVuc2lnbmVkIGludCByb3csIGxhc3RDb2x1bW4gPSBwcml2
LT52aWV3LmNvbHMgLSAxOworICAgIHVuc2lnbmVkIGludCByb3csIGxhc3RDb2x1bW4gPSBwcml2
LT52aWV3LmNvbHVtbnMgLSAxOwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoID0gcHJpdi0+dmll
dy50aWxlLndpZHRoOwogICAgIEV2YXNfQ29vcmQgdGlsZUhlaWdodCA9IHByaXYtPnZpZXcudGls
ZS5oZWlnaHQ7CiAgICAgRXZhc19Db29yZCBvZmZzZXRYID0gcHJpdi0+dmlldy5vZmZzZXQuYmFz
ZS54ICsgY291bnQgKiB0aWxlV2lkdGg7Ci0gICAgRXZhc19Db29yZCBveSA9IHkgKyBwcml2LT52
aWV3Lm9mZnNldC5iYXNlLnk7CisgICAgRXZhc19Db29yZCBvZmZzZXRZID0geSArIHByaXYtPnZp
ZXcub2Zmc2V0LmJhc2UueTsKICAgICBFaW5hX0lubGlzdCoqIGl0ZXJhdG9yOwogICAgIEVpbmFf
SW5saXN0KiogaXRlcmF0b3JFbmQ7CiAgICAgdW5zaWduZWQgaW50IGJhc2VDb2x1bW4gPSBsYXN0
Q29sdW1uIC0gY291bnQgKyAxOwpAQCAtMTA3NywxMCArMTA3NywxMCBAQCBzdGF0aWMgdm9pZCBf
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld193cmFwX2xlZnQoRXdrX1RpbGVkX0JhY2tpbmdf
U3RvcmVfRGF0YQogICAgICAgICAgICAgaXQgPSBFSU5BX0lOTElTVF9DT05UQUlORVJfR0VUKCpp
dGVyYXRvciwgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSk7CiAgICAgICAgICAgICAqaXRl
cmF0b3IgPSBlaW5hX2lubGlzdF9kZW1vdGUoKml0ZXJhdG9yLCAqaXRlcmF0b3IpOwogCi0gICAg
ICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0LCB0aWxlUG9zaXRp
b25YLCBveSk7CisgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3Zl
KGl0LCB0aWxlUG9zaXRpb25YLCBvZmZzZXRZKTsKICAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9pdGVtX2ZpbGwocHJpdiwgaXQsIGNvbHVtbiwgcm93KTsKICAgICAgICAgfQot
ICAgICAgICBveSArPSB0aWxlSGVpZ2h0OworICAgICAgICBvZmZzZXRZICs9IHRpbGVIZWlnaHQ7
CiAgICAgfQogCiAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ID0gb2Zmc2V0WDsKQEAgLTEw
OTAsMTEgKzEwOTAsMTEgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Zp
ZXdfd3JhcF9sZWZ0KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKICAqIEBpbnRlcm5hbAog
ICogTW92ZSByaWdodC1tb3N0IChsYXN0KSBjb2x1bW4gbGVmdCBhcyBmaXJzdCAobGVmdC1tb3N0
KS4KICAqCi0gKiBUaGUgZmluYWwgcmVzdWx0IGlzIHZpc3VhbGx5IHRoZSBzYW1lLCBidXQgbG9n
aWNhbGx5IHRoZSBsYXN0IGNvbCB0aGF0CisgKiBUaGUgZmluYWwgcmVzdWx0IGlzIHZpc3VhbGx5
IHRoZSBzYW1lLCBidXQgbG9naWNhbGx5IHRoZSBsYXN0IGNvbHVtbiB0aGF0CiAgKiB3ZW50IG91
dCBvZiBzY3JlZW4gaXMgbm93IGF0IGZpcnN0IGFuZCBmaWxsZWQgd2l0aCBuZXcgbW9kZWwgaXRl
bXMuCiAgKgogICogVGhpcyBpcyB3b3J0aCBqdXN0IHdoZW4gQGEgY291bnQgaXMgc21hbGxlciB0
aGFuIEBjCi0gKiBwcml2LT52aWV3LmNvbHMsIGFmdGVyIHRoYXQgb25lIGlzIHJlZmlsbGluZyB0
aGUgd2hvbGUgbWF0cml4IHNvIGl0CisgKiBwcml2LT52aWV3LmNvbHVtbnMsIGFmdGVyIHRoYXQg
b25lIGlzIHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CiAgKiBpcyBiZXR0ZXIgdG8g
dHJpZ2dlciBmdWxsIHJlZmlsbC4KICAqCiAgKiBAcGFyYW0gY291bnQgdGhlIG51bWJlciBvZiB0
aW1lcyB0byByZXBlYXQgdGhlIHByb2Nlc3MuCkBAIC0xMTM4LDcgKzExMzgsNyBAQCBzdGF0aWMg
dm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19yZWZpbGwoRXdrX1RpbGVkX0JhY2tp
bmdfU3RvcmVfRGF0YSogcAogewogICAgIEVpbmFfSW5saXN0KiogaXRlcmF0b3IsICoqaXRlcmF0
b3JFbmQ7CiAgICAgRXZhc19Db29yZCBiYXNlVGlsZVBvc2l0aW9uWCwgdGlsZVBvc2l0aW9uWSwg
dGlsZVdpZHRoLCB0aWxlSGVpZ2h0OwotICAgIHVuc2lnbmVkIGludCByOworICAgIHVuc2lnbmVk
IGludCByb3c7CiAKICAgICBldmFzX29iamVjdF9tb3ZlKHByaXYtPmJhc2UuY2xpcHBlciwgeCwg
eSk7CiAKQEAgLTExNTAsMTkgKzExNTAsMTkgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3ZpZXdfcmVmaWxsKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHAKIAog
ICAgIGl0ZXJhdG9yID0gcHJpdi0+dmlldy5pdGVtczsKICAgICBpdGVyYXRvckVuZCA9IGl0ZXJh
dG9yICsgcHJpdi0+dmlldy5yb3dzOwotICAgIHIgPSAwOworICAgIHJvdyA9IDA7CiAKICAgICBw
cml2LT5tb2RlbC5iYXNlLmNvbHVtbiAtPSBzdGVwWDsKICAgICBwcml2LT5tb2RlbC5iYXNlLnJv
dyAtPSBzdGVwWTsKIAotICAgIGZvciAoOyBpdGVyYXRvciA8IGl0ZXJhdG9yRW5kOyBpdGVyYXRv
cisrLCByKyspIHsKKyAgICBmb3IgKDsgaXRlcmF0b3IgPCBpdGVyYXRvckVuZDsgaXRlcmF0b3Ir
Kywgcm93KyspIHsKICAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbTsK
ICAgICAgICAgRXZhc19Db29yZCBuZXdUaWxlUG9zaXRpb25YID0gYmFzZVRpbGVQb3NpdGlvblg7
Ci0gICAgICAgIHVuc2lnbmVkIGludCBjb3VudCA9IDA7CisgICAgICAgIHVuc2lnbmVkIGludCBj
b2x1bW4gPSAwOwogICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKCppdGVyYXRvciwgaXRlbSkg
ewotICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fZmlsbChwcml2LCBp
dGVtLCBjb3VudCwgcik7CisgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRl
bV9maWxsKHByaXYsIGl0ZW0sIGNvbHVtbiwgcm93KTsKICAgICAgICAgICAgIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXRlbSwgbmV3VGlsZVBvc2l0aW9uWCwgdGlsZVBvc2l0
aW9uWSk7Ci0gICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgY29sdW1uKys7CiAgICAg
ICAgICAgICBuZXdUaWxlUG9zaXRpb25YICs9IHRpbGVXaWR0aDsKICAgICAgICAgfQogICAgICAg
ICB0aWxlUG9zaXRpb25ZICs9IHRpbGVIZWlnaHQ7CkBAIC0xMTg1LDEwICsxMTg1LDEwIEBAIHN0
YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bvc19hcHBseShFd2tfVGls
ZWRfQmFja2luZ19TdG9yZV9EYXRhCiAgICAgaXRlcmF0b3IgPSBwcml2LT52aWV3Lml0ZW1zOwog
ICAgIGl0ZXJhdG9yRW5kID0gaXRlcmF0b3IgKyBwcml2LT52aWV3LnJvd3M7CiAgICAgZm9yICg7
IGl0ZXJhdG9yIDwgaXRlcmF0b3JFbmQ7IGl0ZXJhdG9yKyspIHsKLSAgICAgICAgRXdrX1RpbGVk
X0JhY2tpbmdfU3RvcmVfSXRlbSogaXQ7CisgICAgICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3Jl
X0l0ZW0qIGl0ZW07CiAgICAgICAgIEV2YXNfQ29vcmQgb3ggPSBiYXNlVGlsZVBvc2l0aW9uWDsK
LSAgICAgICAgRUlOQV9JTkxJU1RfRk9SRUFDSCgqaXRlcmF0b3IsIGl0KSB7Ci0gICAgICAgICAg
ICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0LCBveCwgYmFzZVRpbGVQb3Np
dGlvblkpOworICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKCppdGVyYXRvciwgaXRlbSkgewor
ICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fbW92ZShpdGVtLCBveCwg
YmFzZVRpbGVQb3NpdGlvblkpOwogICAgICAgICAgICAgb3ggKz0gdGlsZVdpZHRoOwogICAgICAg
ICB9CiAgICAgICAgIGJhc2VUaWxlUG9zaXRpb25ZICs9IHRpbGVIZWlnaHQ7CkBAIC0xMTk3LDI4
ICsxMTk3LDI4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bv
c19hcHBseShFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAKIHN0YXRpYyB2b2lkIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGVfb2Zmc2V0X2ZvcmNlKEV3a19UaWxl
ZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYpCiB7Ci0gICAgRXZhc19Db29yZCBkZWx0YVggPSBw
cml2LT52aWV3Lm9mZnNldC5jdXIueCAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54OwotICAgIEV2
YXNfQ29vcmQgZGVsdGFZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgLSBwcml2LT52aWV3Lm9m
ZnNldC5vbGQueTsKKyAgICBFdmFzX0Nvb3JkIGRlbHRhWCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1
cnJlbnQueCAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54OworICAgIEV2YXNfQ29vcmQgZGVsdGFZ
ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLnk7
CiAgICAgRXZhc19Db29yZCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQ7CiAgICAgaW50IHN0ZXBZLCBz
dGVwWDsKIAogICAgIElORigiZXdrQmFja2luZ1N0b3JlJXAsIG9mZnNldDogJSs0ZCwgJSs0ZCAo
JSs0ZCwgJSs0ZCkiLAotICAgICAgICBwcml2LT5zZWxmLCBkZWx0YVgsIGRlbHRhWSwgcHJpdi0+
dmlldy5vZmZzZXQuY3VyLngsIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55KTsKKyAgICAgICAgcHJp
di0+c2VsZiwgZGVsdGFYLCBkZWx0YVksIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCwgcHJp
di0+dmlldy5vZmZzZXQuY3VycmVudC55KTsKIAogICAgIHRpbGVXaWR0aCA9IHByaXYtPnZpZXcu
dGlsZS53aWR0aDsKICAgICB0aWxlSGVpZ2h0ID0gcHJpdi0+dmlldy50aWxlLmhlaWdodDsKIAot
ICAgIGxvbmcgbmV3Q29sdW1uID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci54IC8gdGlsZVdpZHRo
OworICAgIGxvbmcgbmV3Q29sdW1uID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAvIHRp
bGVXaWR0aDsKICAgICBzdGVwWCA9IHByaXYtPm1vZGVsLmJhc2UuY29sdW1uIC0gbmV3Q29sdW1u
OwotICAgIGxvbmcgbmV3Um93ID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci55IC8gdGlsZUhlaWdo
dDsKKyAgICBsb25nIG5ld1JvdyA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgLyB0aWxl
SGVpZ2h0OwogICAgIHN0ZXBZID0gcHJpdi0+bW9kZWwuYmFzZS5yb3cgLSBuZXdSb3c7CiAKLSAg
ICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAg
IHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7CisgICAg
cHJpdi0+dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7Cisg
ICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7
CiAgICAgZXZhc19vYmplY3RfbW92ZSgKICAgICAgICAgcHJpdi0+Y29udGVudHNDbGlwcGVyLAot
ICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCArIHByaXYtPnZpZXcueCwKLSAgICAgICAg
cHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgKyBwcml2LT52aWV3LnkpOworICAgICAgICBwcml2LT52
aWV3Lm9mZnNldC5jdXJyZW50LnggKyBwcml2LT52aWV3LngsCisgICAgICAgIHByaXYtPnZpZXcu
b2Zmc2V0LmN1cnJlbnQueSArIHByaXYtPnZpZXcueSk7CiAKICAgICBwcml2LT52aWV3Lm9mZnNl
dC5iYXNlLnggKz0gZGVsdGFYIC0gc3RlcFggKiB0aWxlV2lkdGg7CiAgICAgcHJpdi0+dmlldy5v
ZmZzZXQuYmFzZS55ICs9IGRlbHRhWSAtIHN0ZXBZICogdGlsZUhlaWdodDsKQEAgLTEyMjksMTMg
KzEyMjksMTMgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2Nh
bGN1bGF0ZV9vZmZzZXRfZm9yY2UoRXdrX1RpbGVkX0JhY2sKIAogc3RhdGljIHZvaWQgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9vZmZzZXQoRXdrX1RpbGVkX0JhY2tp
bmdfU3RvcmVfRGF0YSogcHJpdiwgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHkpCiB7Ci0gICAg
RXZhc19Db29yZCBkZWx0YVggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueCAtIHByaXYtPnZpZXcu
b2Zmc2V0Lm9sZC54OwotICAgIEV2YXNfQ29vcmQgZGVsdGFZID0gcHJpdi0+dmlldy5vZmZzZXQu
Y3VyLnkgLSBwcml2LT52aWV3Lm9mZnNldC5vbGQueTsKKyAgICBFdmFzX0Nvb3JkIGRlbHRhWCA9
IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54Owor
ICAgIEV2YXNfQ29vcmQgZGVsdGFZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55IC0gcHJp
di0+dmlldy5vZmZzZXQub2xkLnk7CiAgICAgRXZhc19Db29yZCB0aWxlV2lkdGgsIHRpbGVIZWln
aHQ7CiAgICAgaW50IHN0ZXBZLCBzdGVwWDsKIAogICAgIElORigiZXdrQmFja2luZ1N0b3JlJXAs
IG9mZnNldDogJSs0ZCwgJSs0ZCAoJSs0ZCwgJSs0ZCkiLAotICAgICAgICBwcml2LT5zZWxmLCBk
ZWx0YVgsIGRlbHRhWSwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngsIHByaXYtPnZpZXcub2Zmc2V0
LmN1ci55KTsKKyAgICAgICAgcHJpdi0+c2VsZiwgZGVsdGFYLCBkZWx0YVksIHByaXYtPnZpZXcu
b2Zmc2V0LmN1cnJlbnQueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55KTsKIAogICAgIGlm
ICghZGVsdGFYICYmICFkZWx0YVkpCiAgICAgICAgIHJldHVybjsKQEAgLTEyNDMsMjAgKzEyNDMs
MjAgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0
ZV9vZmZzZXQoRXdrX1RpbGVkX0JhY2tpbmdfU3QKICAgICB0aWxlV2lkdGggPSBwcml2LT52aWV3
LnRpbGUud2lkdGg7CiAgICAgdGlsZUhlaWdodCA9IHByaXYtPnZpZXcudGlsZS5oZWlnaHQ7CiAK
LSAgICBsb25nIG5ld0NvbCA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXIueCAvIHRpbGVXaWR0aDsK
KyAgICBsb25nIG5ld0NvbCA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggLyB0aWxlV2lk
dGg7CiAgICAgc3RlcFggPSBwcml2LT5tb2RlbC5iYXNlLmNvbHVtbiAtIG5ld0NvbDsKLSAgICBs
b25nIG5ld1JvdyA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXIueSAvIHRpbGVIZWlnaHQ7CisgICAg
bG9uZyBuZXdSb3cgPSAtcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55IC8gdGlsZUhlaWdodDsK
ICAgICBzdGVwWSA9IHByaXYtPm1vZGVsLmJhc2Uucm93IC0gbmV3Um93OwogCi0gICAgcHJpdi0+
dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueDsKLSAgICBwcml2LT52
aWV3Lm9mZnNldC5vbGQueSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OworICAgIHByaXYtPnZp
ZXcub2Zmc2V0Lm9sZC54ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54OworICAgIHByaXYt
PnZpZXcub2Zmc2V0Lm9sZC55ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55OwogICAgIGV2
YXNfb2JqZWN0X21vdmUoCiAgICAgICAgIHByaXYtPmNvbnRlbnRzQ2xpcHBlciwKLSAgICAgICAg
cHJpdi0+dmlldy5vZmZzZXQuY3VyLnggKyBwcml2LT52aWV3LngsCi0gICAgICAgIHByaXYtPnZp
ZXcub2Zmc2V0LmN1ci55ICsgcHJpdi0+dmlldy55KTsKKyAgICAgICAgcHJpdi0+dmlldy5vZmZz
ZXQuY3VycmVudC54ICsgcHJpdi0+dmlldy54LAorICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5j
dXJyZW50LnkgKyBwcml2LT52aWV3LnkpOwogCi0gICAgaWYgKChzdGVwWCA8IDAgJiYgc3RlcFgg
PD0gLXByaXYtPnZpZXcuY29scykKLSAgICAgICAgfHwgKHN0ZXBYID4gMCAmJiBzdGVwWCA+PSBw
cml2LT52aWV3LmNvbHMpCisgICAgaWYgKChzdGVwWCA8IDAgJiYgc3RlcFggPD0gLXByaXYtPnZp
ZXcuY29sdW1ucykKKyAgICAgICAgfHwgKHN0ZXBYID4gMCAmJiBzdGVwWCA+PSBwcml2LT52aWV3
LmNvbHVtbnMpCiAgICAgICAgIHx8IChzdGVwWSA8IDAgJiYgc3RlcFkgPD0gLXByaXYtPnZpZXcu
cm93cykKICAgICAgICAgfHwgKHN0ZXBZID4gMCAmJiBzdGVwWSA+PSBwcml2LT52aWV3LnJvd3Mp
KSB7CiAKQEAgLTEyOTEsOCArMTI5MSw4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9zbWFydF9jYWxjdWxhdGVfcG9zKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlCiAgICAg
cHJpdi0+dmlldy55ID0geTsKICAgICBldmFzX29iamVjdF9tb3ZlKAogICAgICAgICBwcml2LT5j
b250ZW50c0NsaXBwZXIsCi0gICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ICsgcHJpdi0+
dmlldy54LAotICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSArIHByaXYtPnZpZXcueSk7
CisgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCArIHByaXYtPnZpZXcueCwKKyAg
ICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55ICsgcHJpdi0+dmlldy55KTsKIH0KIAog
c3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZpbGxfcmVuZGVyZXJzKEV3a19U
aWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYpCkBAIC0xMzgxLDEwICsxMzgxLDEwIEBAIHN0
YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGUoRXZhc19P
YmplY3QqIGV3a0JhY2tpbmdTdG9yCiAgICAgICAgIHx8IHByaXYtPnZpZXcub2Zmc2V0LmJhc2Uu
eCA8PSAtIHByaXYtPnZpZXcudGlsZS53aWR0aAogICAgICAgICB8fCBwcml2LT52aWV3Lm9mZnNl
dC5iYXNlLnkgPiAwCiAgICAgICAgIHx8IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueSA8PSAtIHBy
aXYtPnZpZXcudGlsZS5oZWlnaHQpCi0gICAgICAgIEVSUigiaW5jb3JyZWN0IGJhc2Ugb2Zmc2V0
ICUrNGQsJSs0ZCwgdGlsZT0lZHglZCwgY3VyPSUrNGQsJSs0ZFxuIiwKKyAgICAgICAgRVJSKCJp
bmNvcnJlY3QgYmFzZSBvZmZzZXQgJSs0ZCwlKzRkLCB0aWxlPSVkeCVkLCBjdXJyZW50PSUrNGQs
JSs0ZFxuIiwKICAgICAgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCwgcHJpdi0+dmll
dy5vZmZzZXQuYmFzZS55LAogICAgICAgICAgICAgcHJpdi0+dmlldy50aWxlLndpZHRoLCBwcml2
LT52aWV3LnRpbGUuaGVpZ2h0LAotICAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngs
IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55KTsKKyAgICAgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0
LmN1cnJlbnQueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55KTsKIAogfQogCkBAIC0xNDQ4
LDggKzE0NDgsOCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9z
Y3JvbGxfZnVsbF9vZmZzZXRfc2V0X2ludGVybmFsKEV3a19UaQogICAgIGlmIChwcml2LT5yZW5k
ZXIuZGlzYWJsZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHByaXYtPnZpZXcub2Zm
c2V0LmN1ci54ID0geDsKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSA9IHk7CisgICAgcHJp
di0+dmlldy5vZmZzZXQuY3VycmVudC54ID0geDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJy
ZW50LnkgPSB5OwogCiAgICAgcHJpdi0+Y2hhbmdlZC5vZmZzZXQgPSB0cnVlOwogICAgIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9jaGFuZ2VkKHByaXYpOwpAQCAtMTQ2Miw3ICsxNDYyLDcgQEAg
RWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXQo
RXZhc19PYmplY3QqIGV3a0JhY2tpbmcKICAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVwLCB4PSVk
LCB5PSVkIiwgZXdrQmFja2luZ1N0b3JlLCB4LCB5KTsKIAogICAgIFBSSVZfREFUQV9HRVRfT1Jf
UkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdiwgZmFsc2UpOwotICAgIGlmICh4ID09IHByaXYt
PnZpZXcub2Zmc2V0LmN1ci54ICYmIHkgPT0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkpCisgICAg
aWYgKHggPT0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ICYmIHkgPT0gcHJpdi0+dmlldy5v
ZmZzZXQuY3VycmVudC55KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3NldF9pbnRlcm5hbChwcml2
LCB4LCB5KTsKQEAgLTE0NzcsMTMgKzE0NzcsMTMgQEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9hZGQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmcK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXRfaW50ZXJuYWwKLSAgICAgICAgICAgICAgIChwcml2
LCBwcml2LT52aWV3Lm9mZnNldC5jdXIueCArIGRlbHRhWCwgcHJpdi0+dmlldy5vZmZzZXQuY3Vy
LnkgKyBkZWx0YVkpOworICAgICAgICAgICAgICAgKHByaXYsIHByaXYtPnZpZXcub2Zmc2V0LmN1
cnJlbnQueCArIGRlbHRhWCwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55ICsgZGVsdGFZKTsK
IH0KIAogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV9zZXRf
aW50ZXJuYWwoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiwgZmxvYXQqIHpvb20s
IEV2YXNfQ29vcmQgY3VycmVudFgsIEV2YXNfQ29vcmQgY3VycmVudFksIEV2YXNfQ29vcmQqIG9m
ZnNldFgsIEV2YXNfQ29vcmQqIG9mZnNldFkpCiB7Ci0gICAgKm9mZnNldFggPSBwcml2LT52aWV3
Lm9mZnNldC5jdXIueDsKLSAgICAqb2Zmc2V0WSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55Owor
ICAgICpvZmZzZXRYID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54OworICAgICpvZmZzZXRZ
ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55OwogCiAgICAgaWYgKGZhYnNmKHByaXYtPnZp
ZXcudGlsZS56b29tIC0gKnpvb20pIDwgem9vbVN0ZXBNaW5pbXVtKSB7CiAgICAgICAgIERCRygi
aWdub3JlZCBhcyB6b29tIGRpZmZlcmVuY2UgaXMgPCAlZjogJWYiLApAQCAtMTUxNCwxMCArMTUx
NCwxMCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3Nl
dF9pbnRlcm5hbChFd2tfVGlsZWRfQmFja2luZ19TdAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRvciwgKippdGVyYXRvckVuZDsKLSAgICBFd2tf
VGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdDsKKyAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9JdGVtKiBpdGVtOwogCi0gICAgRXZhc19Db29yZCBuZXdYID0gY3VycmVudFggKyAocHJpdi0+
dmlldy5vZmZzZXQuY3VyLnggLSBjdXJyZW50WCkgKiBzY2FsZTsKLSAgICBFdmFzX0Nvb3JkIG5l
d1kgPSBjdXJyZW50WSArIChwcml2LT52aWV3Lm9mZnNldC5jdXIueSAtIGN1cnJlbnRZKSAqIHNj
YWxlOworICAgIEV2YXNfQ29vcmQgbmV3WCA9IGN1cnJlbnRYICsgKHByaXYtPnZpZXcub2Zmc2V0
LmN1cnJlbnQueCAtIGN1cnJlbnRYKSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3WSA9IGN1
cnJlbnRZICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSAtIGN1cnJlbnRZKSAqIHNjYWxl
OwogCiAgICAgRXZhc19Db29yZCBtb2RlbFdpZHRoID0gcHJpdi0+bW9kZWwud2lkdGggKiBzY2Fs
ZTsKICAgICBFdmFzX0Nvb3JkIG1vZGVsSGVpZ2h0ID0gcHJpdi0+bW9kZWwuaGVpZ2h0ICogc2Nh
bGU7CkBAIC0xNTQxLDE1ICsxNTQxLDE1IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9i
YWNraW5nX3N0b3JlX3pvb21fc2V0X2ludGVybmFsKEV3a19UaWxlZF9CYWNraW5nX1N0CiAgICAg
cHJpdi0+Y2hhbmdlZC5tb2RlbCA9IHRydWU7CiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X2NoYW5nZWQocHJpdik7CiAKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCA9IG5ld1g7Ci0g
ICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgPSBuZXdZOworICAgIHByaXYtPnZpZXcub2Zmc2V0
LmN1cnJlbnQueCA9IG5ld1g7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55ID0gbmV3
WTsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSBiYXNlWDsKICAgICBwcml2LT52aWV3
Lm9mZnNldC5iYXNlLnkgPSBiYXNlWTsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54ID0g
cHJpdi0+dmlldy5vZmZzZXQuY3VyLng7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBw
cml2LT52aWV3Lm9mZnNldC5jdXIueTsKLSAgICAqb2Zmc2V0WCA9IHByaXYtPnZpZXcub2Zmc2V0
LmN1ci54OwotICAgICpvZmZzZXRZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7CisgICAgcHJp
di0+dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAg
cHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7Cisg
ICAgKm9mZnNldFggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAgKm9mZnNldFkg
PSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAKICAgICBldmFzX29iamVjdF9tb3ZlKAog
ICAgICAgICBwcml2LT5jb250ZW50c0NsaXBwZXIsCkBAIC0xNTY4LDkgKzE1NjgsOSBAQCBzdGF0
aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3NldF9pbnRlcm5hbChF
d2tfVGlsZWRfQmFja2luZ19TdAogICAgICAgICBFdmFzX0Nvb3JkIHRpbGVQb3NpdGlvblggPSBi
YXNlVGlsZVBvc2l0aW9uWDsKICAgICAgICAgRWluYV9Jbmxpc3QqIGxzdCA9ICppdGVyYXRvcjsK
IAotICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKGxzdCwgaXQpIHsKLSAgICAgICAgICAgIF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXQsIHRpbGVQb3NpdGlvblgsIHRpbGVQ
b3NpdGlvblkpOwotICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fcmVz
aXplKGl0LCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQpOworICAgICAgICBFSU5BX0lOTElTVF9GT1JF
QUNIKGxzdCwgaXRlbSkgeworICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0
ZW1fbW92ZShpdGVtLCB0aWxlUG9zaXRpb25YLCB0aWxlUG9zaXRpb25ZKTsKKyAgICAgICAgICAg
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Jlc2l6ZShpdGVtLCB0aWxlV2lkdGgsIHRp
bGVIZWlnaHQpOwogICAgICAgICAgICAgdGlsZVBvc2l0aW9uWCArPSB0aWxlV2lkdGg7CiAgICAg
ICAgIH0KICAgICAgICAgdGlsZVBvc2l0aW9uWSArPSB0aWxlSGVpZ2h0OwpAQCAtMTYxMyw4ICsx
NjEzLDggQEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fd2Vha19zZXQo
RXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgZmwKIAogICAgIGludCB2cm93cyA9IHN0YXRp
Y19jYXN0PGludD4oY2VpbChwcml2LT52aWV3LmhlaWdodCAvc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRp
bGVIZWlnaHQpKSArIDEpOwogICAgIGludCB2Y29scyA9IHN0YXRpY19jYXN0PGludD4oY2VpbChw
cml2LT52aWV3LndpZHRoIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVXaWR0aCkpICsgMSk7Ci0g
ICAgRXZhc19Db29yZCBuZXdYID0gY3VycmVudFggKyAocHJpdi0+dmlldy5vZmZzZXQuY3VyLngg
LSBjdXJyZW50WCkgKiBzY2FsZTsKLSAgICBFdmFzX0Nvb3JkIG5ld1kgPSBjdXJyZW50WSArIChw
cml2LT52aWV3Lm9mZnNldC5jdXIueSAtIGN1cnJlbnRZKSAqIHNjYWxlOworICAgIEV2YXNfQ29v
cmQgbmV3WCA9IGN1cnJlbnRYICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAtIGN1cnJl
bnRYKSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3WSA9IGN1cnJlbnRZICsgKHByaXYtPnZp
ZXcub2Zmc2V0LmN1cnJlbnQueSAtIGN1cnJlbnRZKSAqIHNjYWxlOwogICAgIEV2YXNfQ29vcmQg
YmFzZVggPSBuZXdYICUgdGlsZVdpZHRoOwogICAgIEV2YXNfQ29vcmQgYmFzZVkgPSBuZXdZICUg
dGlsZUhlaWdodDsKICAgICB1bnNpZ25lZCBsb25nIGJhc2VSb3cgPSAtbmV3WSAvIHRpbGVIZWln
aHQ7CkBAIC0xNjI2LDcgKzE2MjYsNyBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfem9vbV93ZWFrX3NldChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBmbAogICAgICAg
ICByZUNhbGN1bGF0ZSA9IHRydWU7CiAgICAgfQogCi0gICAgaWYgKHZyb3dzID4gcHJpdi0+dmll
dy5yb3dzIHx8IHZjb2xzID4gcHJpdi0+dmlldy5jb2xzKQorICAgIGlmICh2cm93cyA+IHByaXYt
PnZpZXcucm93cyB8fCB2Y29scyA+IHByaXYtPnZpZXcuY29sdW1ucykKICAgICAgICAgcmVDYWxj
dWxhdGUgPSB0cnVlOwogCiAgICAgaWYgKHJlQ2FsY3VsYXRlKSB7CkBAIC0xNjY3LDggKzE2Njcs
OCBAQCB2b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZpeF9vZmZzZXRzKEV2YXNfT2JqZWN0
KiBld2tCYWNraW5nU3RvcmUsIEV2YXNfQ29vcgogICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJO
KGV3a0JhY2tpbmdTdG9yZSwgcHJpdik7CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRvciwgKipp
dGVyYXRvckVuZDsKICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVtOwotICAg
IEV2YXNfQ29vcmQgbmV3WCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAgIEV2YXNfQ29v
cmQgbmV3WSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OworICAgIEV2YXNfQ29vcmQgbmV3WCA9
IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueDsKKyAgICBFdmFzX0Nvb3JkIG5ld1kgPSBwcml2
LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAgICAgRXZhc19Db29yZCBiYXNlWCA9IHByaXYtPnZp
ZXcub2Zmc2V0LmJhc2UueDsKICAgICBFdmFzX0Nvb3JkIGJhc2VZID0gcHJpdi0+dmlldy5vZmZz
ZXQuYmFzZS55OwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoID0gcHJpdi0+dmlldy50aWxlLndp
ZHRoOwpAQCAtMTY5Niw4ICsxNjk2LDggQEAgdm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9m
aXhfb2Zmc2V0cyhFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBFdmFzX0Nvb3IKICAgICAg
ICAgcHJpdi0+bW9kZWwuYmFzZS5yb3cgPSAtbmV3WSAvIHRpbGVIZWlnaHQ7CiAgICAgfQogCi0g
ICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggPSBuZXdYOwotICAgIHByaXYtPnZpZXcub2Zmc2V0
LmN1ci55ID0gbmV3WTsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggPSBuZXdYOwor
ICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSA9IG5ld1k7CiAgICAgcHJpdi0+dmlldy5v
ZmZzZXQub2xkLnggPSBuZXdYOwogICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0gbmV3WTsK
ICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSBiYXNlWDsKQEAgLTE4MTUsOCArMTgxNSw4
IEBAIHZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZmx1c2goRXZhc19PYmplY3QqIGV3a0Jh
Y2tpbmdTdG9yZSkKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUs
IHByaXYpOwogICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlID0gMDsK
IAotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ID0gMDsKLSAgICBwcml2LT52aWV3Lm9mZnNl
dC5jdXIueSA9IDA7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ID0gMDsKKyAgICBw
cml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgPSAwOwogICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9s
ZC54ID0gMDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueSA9IDA7CiAgICAgcHJpdi0+dmll
dy5vZmZzZXQuYmFzZS54ID0gMDsKQEAgLTE5NTYsNyArMTk1Niw3IEBAIEVpbmFfQm9vbCBld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lvbihFdmFzX09iamVjdCogZXdrQmFj
a2luZ1N0b3JlCiB7CiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3Jl
LCBwcml2LCBmYWxzZSk7CiAgICAgRWluYV9UaWxlX0dyaWRfU2xpY2VyIHNsaWNlcjsKLSAgICBj
b25zdCBFaW5hX1RpbGVfR3JpZF9JbmZvKiBpbmZvOworICAgIGNvbnN0IEVpbmFfVGlsZV9Hcmlk
X0luZm8qIGdyaWRJbmZvOwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoLCB0aWxlSGVpZ2h0Owog
ICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlOwogCkBAIC0xOTcwLDEw
ICsxOTcwLDEwIEBAIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVy
X3JlZ2lvbihFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKLSAgICB3aGlsZSAoZWluYV90aWxlX2dyaWRfc2xpY2VyX25leHQoJnNsaWNl
ciwgJmluZm8pKSB7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgYyA9IGluZm8tPmNvbDsK
LSAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyByID0gaW5mby0+cm93OwotICAgICAgICBpZiAo
IV9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfYWRkKHByaXYsIGMs
IHIsIHpvb20pKQorICAgIHdoaWxlIChlaW5hX3RpbGVfZ3JpZF9zbGljZXJfbmV4dCgmc2xpY2Vy
LCAmZ3JpZEluZm8pKSB7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgY29sdW1uID0gZ3Jp
ZEluZm8tPmNvbDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyByb3cgPSBncmlkSW5mby0+
cm93OworICAgICAgICBpZiAoIV9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3Jl
cXVlc3RfYWRkKHByaXYsIGNvbHVtbiwgcm93LCB6b29tKSkKICAgICAgICAgICAgIGJyZWFrOwog
ICAgIH0KIApAQCAtMTk5Nyw3ICsxOTk3LDcgQEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5n
X3N0b3JlX3ByZV9yZW5kZXJfcmVsYXRpdmVfcmFkaXVzKEV2YXNfT2JqZWN0KiBld2tCYWMKICAg
ICBlbmRSb3cgPSBzdGQ6Om1pbihwcml2LT5tb2RlbC5jdXJyZW50LnJvd3MgLSAxLAogICAgICAg
ICAgICAgICAgICAgICAgICBwcml2LT5tb2RlbC5iYXNlLnJvdyArIHByaXYtPnZpZXcucm93cyAr
IG4gLSAxKTsKICAgICBlbmRDb2wgPSBzdGQ6Om1pbihwcml2LT5tb2RlbC5jdXJyZW50LmNvbHVt
bnMgLSAxLAotICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5tb2RlbC5iYXNlLmNvbHVtbiAr
IHByaXYtPnZpZXcuY29scyArIG4gLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+
bW9kZWwuYmFzZS5jb2x1bW4gKyBwcml2LT52aWV3LmNvbHVtbnMgKyBuIC0gMSk7CiAKICAgICBJ
TkYoInN0YXJ0Um93PSVsdSwgZW5kUm93PSVsdSwgc3RhcnRDb2w9JWx1LCBlbmRDb2w9JWx1IiwK
ICAgICAgICAgc3RhcnRSb3csIGVuZFJvdywgc3RhcnRDb2wsIGVuZENvbCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5oCmluZGV4IGU5M2NjZjcu
Ljc0MDNlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZS5oCkBAIC02NCw3ICs2NCw3IEBAIHN0cnVjdCBfRXdrX1RpbGVfU3RhdHMgewogc3Ry
dWN0IF9Fd2tfVGlsZSB7CiAgICAgRWluYV9UaWxlciogdXBkYXRlczsgICAgLyoqPCB1cGRhdGVk
L2RpcnR5IGFyZWFzICovCiAgICAgRXdrX1RpbGVfU3RhdHMgc3RhdHM7ICAgICAgIC8qKjwgdGls
ZSB1c2FnZSBzdGF0aXN0aWNzICovCi0gICAgdW5zaWduZWQgbG9uZyBjb2wsIHJvdzsgLyoqPCB0
aWxlIHRpbGUgcG9zaXRpb24gKi8KKyAgICB1bnNpZ25lZCBsb25nIGNvbHVtbiwgcm93OyAvKio8
IHRpbGUgdGlsZSBwb3NpdGlvbiAqLwogICAgIEV2YXNfQ29vcmQgeCwgeTsgICAgICAgIC8qKjwg
dGlsZSBjb29yZGluYXRlIHBvc2l0aW9uICovCiAKICAgICAvKiogTmV2ZXIgZXZlciBjaGFuZ2Ug
dGhvc2UgYWZ0ZXIgdGlsZSBpcyBjcmVhdGVkIChyZXNwZWN0IGNvbnN0ISkgKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbWF0cml4LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbWF0cml4LmNwcAppbmRleCBhYjA2MDQyLi5kOWEwZjBh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21hdHJpeC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tYXRyaXguY3BwCkBAIC00NCw3
ICs0NCw3IEBAIHR5cGVkZWYgc3RydWN0IF9Fd2tfVGlsZV9NYXRyaXhfRW50cnkgRXdrX1RpbGVf
TWF0cml4X0VudHJ5Owogc3RydWN0IF9Fd2tfVGlsZV9NYXRyaXggewogICAgIEVpbmFfTWF0cml4
c3BhcnNlKiBtYXRyaXg7CiAgICAgRWluYV9Jbmxpc3QqIG1hdHJpY2VzOwotICAgIEV3a19UaWxl
X1VudXNlZF9DYWNoZSogdGlsaWVVbnVzZWRDYWNoZTsKKyAgICBFd2tfVGlsZV9VbnVzZWRfQ2Fj
aGUqIHRpbGVVbnVzZWRDYWNoZTsKICAgICBFdmFzX0NvbG9yc3BhY2UgY3NwYWNlOwogICAgIHN0
cnVjdCB7CiAgICAgICAgIHZvaWQgKCpjYWxsYmFjaykodm9pZCogZGF0YSwgRXdrX1RpbGUqIHRp
bGUsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiB1cGRhdGUpOwpAQCAtOTQsNyArOTQsNyBAQCBzdGF0
aWMgdm9pZCBfZXdrX3RpbGVfbWF0cml4X2NlbGxfZnJlZSh2b2lkKiB1c2VyRGF0YSwgdm9pZCog
Y2VsbERhdGEpCiAgICAgaWYgKCF0aWxlKQogICAgICAgICByZXR1cm47CiAKLSAgICBld2tfdGls
ZV91bnVzZWRfY2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAg
IGV3a190aWxlX3VudXNlZF9jYWNoZV9mcmVlemUodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hl
KTsKIAogICAgIGlmICh0aWxlLT51cGRhdGVzIHx8IHRpbGUtPnN0YXRzLmZ1bGxfdXBkYXRlKQog
ICAgICAgICB0aWxlTWF0cml4LT51cGRhdGVzID0gZWluYV9saXN0X3JlbW92ZSh0aWxlTWF0cml4
LT51cGRhdGVzLCB0aWxlKTsKQEAgLTEwMiw4ICsxMDIsOCBAQCBzdGF0aWMgdm9pZCBfZXdrX3Rp
bGVfbWF0cml4X2NlbGxfZnJlZSh2b2lkKiB1c2VyRGF0YSwgdm9pZCogY2VsbERhdGEpCiAgICAg
aWYgKHRpbGUtPnZpc2libGUpCiAgICAgICAgIEVSUigiZnJlZWluZyBjZWxsIHRoYXQgaXMgdmlz
aWJsZSwgbGVha2luZyB0aWxlICVwIiwgdGlsZSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGlmICgh
ZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfZ2V0KHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2Fj
aGUsIHRpbGUpKQotICAgICAgICAgICAgRVJSKCJ0aWxlICVwIHdhcyBub3QgaW4gY2FjaGUgJXA/
IGxlYWtpbmcuLi4iLCB0aWxlLCB0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlKTsKKyAgICAg
ICAgaWYgKCFld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9nZXQodGlsZU1hdHJpeC0+dGlsZVVu
dXNlZENhY2hlLCB0aWxlKSkKKyAgICAgICAgICAgIEVSUigidGlsZSAlcCB3YXMgbm90IGluIGNh
Y2hlICVwPyBsZWFraW5nLi4uIiwgdGlsZSwgdGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlKTsK
ICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBFd2tfVGlsZV9NYXRyaXhfRW50cnkqIGVudHJ5
OwogICAgICAgICAgICAgREJHKCJ0aWxlIGNlbGwgZG9lcyBub3QgZXhpc3QgYW55bW9yZSwgZnJl
ZSBpdCAlcCIsIHRpbGUpOwpAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGls
ZV9tYXRyaXhfY2VsbF9mcmVlKHZvaWQqIHVzZXJEYXRhLCB2b2lkKiBjZWxsRGF0YSkKICAgICAg
ICAgfQogICAgIH0KIAotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3KHRpbGVNYXRyaXgt
PnRpbGllVW51c2VkQ2FjaGUpOworICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3KHRpbGVN
YXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiB9CiAKIC8qIGNhbGxlZCB3aGVuIGNhY2hlIG9mIHVu
dXNlZCB0aWxlIGlzIGZsdXNoZWQgKi8KQEAgLTEzNyw3ICsxMzcsNyBAQCBzdGF0aWMgdm9pZCBf
ZXdrX3RpbGVfbWF0cml4X3RpbGVfZnJlZSh2b2lkKiBkYXRhLCBFd2tfVGlsZSogdGlsZSkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghZWluYV9tYXRyaXhzcGFyc2VfY2VsbF9p
ZHhfZ2V0KGVudHJ5LT5tYXRyaXgsIHRpbGUtPnJvdywgdGlsZS0+Y29sLCAmY2VsbCkpIHsKKyAg
ICBpZiAoIWVpbmFfbWF0cml4c3BhcnNlX2NlbGxfaWR4X2dldChlbnRyeS0+bWF0cml4LCB0aWxl
LT5yb3csIHRpbGUtPmNvbHVtbiwgJmNlbGwpKSB7CiAKICAgICAgICAgRVJSKCJyZW1vdmluZyB0
aWxlICVwIHRoYXQgd2FzIG5vdCBpbiB0aGUgbWF0cml4PyBMZWFraW5nLi4uIiwgdGlsZSk7CiAg
ICAgICAgIHJldHVybjsKQEAgLTIxMSwxMCArMjExLDEwIEBAIEV3a19UaWxlX01hdHJpeCogZXdr
X3RpbGVfbWF0cml4X25ldyhFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSwg
dW5zCiAgICAgZXdrX3RpbGVfbWF0cml4X3pvb21fbGV2ZWxfc2V0KHRpbGVNYXRyaXgsIHpvb21M
ZXZlbCk7CiAKICAgICBpZiAodGlsZVVudXNlZENhY2hlKQotICAgICAgICB0aWxlTWF0cml4LT50
aWxpZVVudXNlZENhY2hlID0gZXdrX3RpbGVfdW51c2VkX2NhY2hlX3JlZih0aWxlVW51c2VkQ2Fj
aGUpOworICAgICAgICB0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUgPSBld2tfdGlsZV91bnVz
ZWRfY2FjaGVfcmVmKHRpbGVVbnVzZWRDYWNoZSk7CiAgICAgZWxzZSB7Ci0gICAgICAgIHRpbGVN
YXRyaXgtPnRpbGllVW51c2VkQ2FjaGUgPSBld2tfdGlsZV91bnVzZWRfY2FjaGVfbmV3KERFRkFV
TFRfQ0FDSEVfU0laRSk7Ci0gICAgICAgIGlmICghdGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNo
ZSkgeworICAgICAgICB0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUgPSBld2tfdGlsZV91bnVz
ZWRfY2FjaGVfbmV3KERFRkFVTFRfQ0FDSEVfU0laRSk7CisgICAgICAgIGlmICghdGlsZU1hdHJp
eC0+dGlsZVVudXNlZENhY2hlKSB7CiAgICAgICAgICAgICBFUlIoIm5vIGNhY2hlIG9mIHVudXNl
ZCB0aWxlISIpOwogICAgICAgICAgICAgZWluYV9tYXRyaXhzcGFyc2VfZnJlZSh0aWxlTWF0cml4
LT5tYXRyaXgpOwogICAgICAgICAgICAgZnJlZSh0aWxlTWF0cml4KTsKQEAgLTI5OCw3ICsyOTgs
NyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9mcmVlKEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJp
eCkKIAogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHRpbGVNYXRyaXgpOwogCi0gICAg
ZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hl
KTsKKyAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGVVbnVz
ZWRDYWNoZSk7CiAgICAgZXdrX3RpbGVfbWF0cml4X2ludmFsaWRhdGUodGlsZU1hdHJpeCk7CiAg
ICAgZW50cnkgPSBFSU5BX0lOTElTVF9DT05UQUlORVJfR0VUKHRpbGVNYXRyaXgtPm1hdHJpY2Vz
LCBFd2tfVGlsZV9NYXRyaXhfRW50cnkpOwogICAgIGVpbmFfbWF0cml4c3BhcnNlX2ZyZWUoZW50
cnktPm1hdHJpeCk7CkBAIC0zMDYsOCArMzA2LDggQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfZnJl
ZShFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgpCiAgICAgZnJlZShlbnRyeSk7CiAgICAgdGls
ZU1hdHJpeC0+bWF0cmljZXMgPSAwOwogCi0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXco
dGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7Ci0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hl
X3VucmVmKHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgIGV3a190aWxlX3VudXNl
ZF9jYWNoZV90aGF3KHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVf
dW51c2VkX2NhY2hlX3VucmVmKHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiAKICNpZmRl
ZiBERUJVR19NRU1fTEVBS1MKICAgICB0aWxlcyA9IHRpbGVNYXRyaXgtPnN0YXRzLnRpbGVzLmFs
bG9jYXRlZCAtIHRpbGVNYXRyaXgtPnN0YXRzLnRpbGVzLmZyZWVkOwpAQCAtMzU1LDcgKzM1NSw3
IEBAIHZvaWQgZXdrX3RpbGVfbWF0cml4X3Jlc2l6ZShFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRy
aXgsIHVuc2lnbmVkIGxvbmcgY29scywgdW5zCiBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIGV3a190
aWxlX21hdHJpeF91bnVzZWRfY2FjaGVfZ2V0KGNvbnN0IEV3a19UaWxlX01hdHJpeCogdGlsZU1h
dHJpeCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwodGlsZU1hdHJpeCwg
MCk7Ci0gICAgcmV0dXJuIHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGU7CisgICAgcmV0dXJu
IHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZTsKIH0KIAogLyoqCkBAIC0zOTAsNyArMzkwLDcg
QEAgRXdrX1RpbGUqIGV3a190aWxlX21hdHJpeF90aWxlX2V4YWN0X2dldChFd2tfVGlsZV9NYXRy
aXgqIHRpbGVNYXRyaXgsIHVuc2lnbmVkIGwKIAogZW5kOgogICAgIGlmICghdGlsZS0+dmlzaWJs
ZSkgewotICAgICAgICBpZiAoIWV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX2dldCh0aWxlTWF0
cml4LT50aWxpZVVudXNlZENhY2hlLCB0aWxlKSkKKyAgICAgICAgaWYgKCFld2tfdGlsZV91bnVz
ZWRfY2FjaGVfdGlsZV9nZXQodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlLCB0aWxlKSkKICAg
ICAgICAgICAgIFdSTigiRXdrX1RpbGUgd2FzIHVudXNlZCBidXQgbm90IGluIGNhY2hlPyBidWch
Iik7CiAgICAgfQogCkBAIC00NTksNyArNDU5LDcgQEAgRXdrX1RpbGUqIGV3a190aWxlX21hdHJp
eF90aWxlX25ldyhFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgsIEV2YXMqIGNhbnZhcywgdW4K
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgdGlsZS0+Y29sID0gY29sdW1uOworICAg
IHRpbGUtPmNvbHVtbiA9IGNvbHVtbjsKICAgICB0aWxlLT5yb3cgPSByb3c7CiAgICAgdGlsZS0+
eCA9IGNvbHVtbiAqIHRpbGVXaWR0aDsKICAgICB0aWxlLT55ID0gcm93ICogdGlsZUhlaWdodDsK
QEAgLTQ4Niw3ICs0ODYsNyBAQCBFd2tfVGlsZSogZXdrX3RpbGVfbWF0cml4X3RpbGVfbmV3KEV3
a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCwgRXZhcyogY2FudmFzLCB1bgogICogdW51c2VkIGNh
Y2hlLgogICoKICAqIEBwYXJhbSB0aWxlTWF0cml4IHRoZSB0aWxlIG1hdHJpeCB0byByZXR1cm4g
dGlsZSB0by4KLSAqIEBwYXJhbSB0IHRoZSB0aWxlIGluc3RhbmNlIHRvIHJldHVybiwgbXVzdCBA
YiBub3QgYmUgQGMgMC4KKyAqIEBwYXJhbSB0aWxlIHRoZSB0aWxlIGluc3RhbmNlIHRvIHJldHVy
biwgbXVzdCBAYiBub3QgYmUgQGMgMC4KICAqIEBwYXJhbSBsYXN0X3VzZWQgdGltZSBpbiB3aGlj
aCB0aWxlLndpZHRoYXMgbGFzdCB1c2VkLgogICoKICAqIEByZXR1cm4gI3RydWUgb24gc3VjY2Vz
cyBvciAjZmFsc2Ugb24gZmFpbHVyZS4KQEAgLTUwMCw3ICs1MDAsNyBAQCBFaW5hX0Jvb2wgZXdr
X3RpbGVfbWF0cml4X3RpbGVfcHV0KEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCwgRXdrX1Rp
bGUqIHRpbGUsCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgdGlsZS0+c3RhdHMubGFzdF91
c2VkID0gbGFzdFVzZWQ7Ci0gICAgcmV0dXJuIGV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1
dCh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlLCB0aWxlLCBfZXdrX3RpbGVfbWF0cml4X3Rp
bGVfZnJlZSwgdGlsZU1hdHJpeCk7CisgICAgcmV0dXJuIGV3a190aWxlX3VudXNlZF9jYWNoZV90
aWxlX3B1dCh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUsIHRpbGUsIF9ld2tfdGlsZV9tYXRy
aXhfdGlsZV9mcmVlLCB0aWxlTWF0cml4KTsKIH0KIAogRWluYV9Cb29sIGV3a190aWxlX21hdHJp
eF90aWxlX3VwZGF0ZShFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgsIHVuc2lnbmVkIGxvbmcg
Y29sLCB1bnNpZ25lZCBsb25nIHJvdywgY29uc3QgRWluYV9SZWN0YW5nbGUqIHVwZGF0ZSkKQEAg
LTcwNiw3ICs3MDYsNyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9kYmcoY29uc3QgRXdrX1RpbGVf
TWF0cml4KiB0aWxlTWF0cml4KQogICAgICAgICAgICAgICAgIHByaW50ZigiXG4iKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIHByaW50ZigiJTNsdSwlM2x1ICUxMHA6IiwgY29sdW1uLCBy
b3csIHRpbGUpOwotICAgICAgICAgICAgcHJpbnRmKCIgWyUzbHUsJTNsdSArICVkeCVkIEAgJTAu
M2ZdJWMiLCB0aWxlLT5jb2wsIHRpbGUtPnJvdywgdGlsZS0+d2lkdGgsIHRpbGUtPmhlaWdodCwg
dGlsZS0+em9vbSwgdGlsZS0+dmlzaWJsZSA/ICcqJyA6ICcgJyk7CisgICAgICAgICAgICBwcmlu
dGYoIiBbJTNsdSwlM2x1ICsgJWR4JWQgQCAlMC4zZl0lYyIsIHRpbGUtPmNvbHVtbiwgdGlsZS0+
cm93LCB0aWxlLT53aWR0aCwgdGlsZS0+aGVpZ2h0LCB0aWxlLT56b29tLCB0aWxlLT52aXNpYmxl
ID8gJyonIDogJyAnKTsKICAgICAgICAgICAgIHByaW50ZigiXG4iKTsKICAgICAgICAgfQogICAg
IH0KQEAgLTcxNCw3ICs3MTQsNyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9kYmcoY29uc3QgRXdr
X1RpbGVfTWF0cml4KiB0aWxlTWF0cml4KQogICAgICAgICBwcmludGYoIlxuIik7CiAgICAgZWlu
YV9pdGVyYXRvcl9mcmVlKGl0ZXJhdG9yKTsKIAotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9k
YmcodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVfdW51c2VkX2Nh
Y2hlX2RiZyh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogfQogCiAvKioKQEAgLTczMCw3
ICs3MzAsNyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9mcmVlemUoRXdrX1RpbGVfTWF0cml4KiB0
aWxlTWF0cml4KQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHRpbGVNYXRyaXgp
OwogICAgIGlmICghdGlsZU1hdHJpeC0+ZnJvemVuKQotICAgICAgICBld2tfdGlsZV91bnVzZWRf
Y2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgICAgICBld2tf
dGlsZV91bnVzZWRfY2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiAg
ICAgdGlsZU1hdHJpeC0+ZnJvemVuKys7CiB9CiAKQEAgLTc1MCw1ICs3NTAsNSBAQCB2b2lkIGV3
a190aWxlX21hdHJpeF90aGF3KEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCkKIAogICAgIHRp
bGVNYXRyaXgtPmZyb3plbi0tOwogICAgIGlmICghdGlsZU1hdHJpeC0+ZnJvemVuKQotICAgICAg
ICBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGhhdyh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hl
KTsKKyAgICAgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXcodGlsZU1hdHJpeC0+dGlsZVVu
dXNlZENhY2hlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGls
ZWRfbW9kZWwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tb2RlbC5jcHAK
aW5kZXggODQwNDhjYi4uODdmYTgzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a190aWxlZF9tb2RlbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxl
ZF9tb2RlbC5jcHAKQEAgLTM0NSwxNiArMzQ1LDE2IEBAIHZvaWQgZXdrX3RpbGVfdXBkYXRlc19w
cm9jZXNzKEV3a19UaWxlKiB0aWxlLCB2b2lkICgqY2FsbGJhY2spKHZvaWQqIGRhdGEsIEV3a19U
CiAgICAgICAgIHJlY3QuaCA9IHRpbGUtPmhlaWdodDsKICNpZmRlZiBUSUxFX1NUQVRTX0FDQ09V
TlRfUkVOREVSX1RJTUUKICAgICAgICAgc3RydWN0IHRpbWV2YWwgdGltZXY7Ci0gICAgICAgIGRv
dWJsZSByZW5kZXJfc3RhcnQ7CisgICAgICAgIGRvdWJsZSByZW5kZXJTdGFydFRpbWU7CiAgICAg
ICAgIGdldHRpbWVvZmRheSgmdGltZXYsIDApOwotICAgICAgICByZW5kZXJfc3RhcnRpbGUgPSAo
ZG91YmxlKXRpbWV2LnR2X3NlYyArCisgICAgICAgIHJlbmRlclN0YXJ0VGltZSA9IChkb3VibGUp
dGltZXYudHZfc2VjICsKICAgICAgICAgICAgICAgICAgICAgICAgKCgoZG91YmxlKXRpbWV2LnR2
X3VzZWMpIC8gMTAwMDAwMCk7CiAjZW5kaWYKICAgICAgICAgY2FsbGJhY2soKHZvaWQqKWRhdGEs
IHRpbGUsICZyZWN0KTsKICNpZmRlZiBUSUxFX1NUQVRTX0FDQ09VTlRfUkVOREVSX1RJTUUKICAg
ICAgICAgZ2V0dGltZW9mZGF5KCZ0aW1ldiwgMCk7CiAgICAgICAgIHRpbGUtPnN0YXRzLnJlbmRl
cl90aW1lID0gKGRvdWJsZSl0aW1ldi50dl9zZWMgKwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgoKGRvdWJsZSl0aW1ldi50dl91c2VjKSAvIDEwMDAwMDApIC0gcmVuZGVyX3N0YXJ0
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoKGRvdWJsZSl0aW1ldi50dl91c2Vj
KSAvIDEwMDAwMDApIC0gcmVuZGVyU3RhcnRUaW1lOwogI2VuZGlmCiAgICAgfSBlbHNlIGlmICh0
aWxlLT51cGRhdGVzKSB7CiAgICAgICAgIEVpbmFfSXRlcmF0b3IqIGl0ciA9IGVpbmFfdGlsZXJf
aXRlcmF0b3JfbmV3KHRpbGUtPnVwZGF0ZXMpOwpAQCAtNTIwLDcgKzUyMCw3IEBAIHZvaWQgZXdr
X3RpbGVfdW51c2VkX2NhY2hlX2NsZWFyKEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNl
ZENhY2hlKQogfQogCiAvKioKLSAqIGhlaWdodG9sZCByZWZlcmVuY2UgdG8gY2FjaGUuCisgKiBI
b2xkIHJlZmVyZW5jZSB0byBjYWNoZS4KICAqCiAgKiBAcmV0dXJuIHNhbWUgcG9pbnRlciBhcyB0
YWtlbi4KICAqCkBAIC02MzAsNyArNjMwLDcgQEAgdm9pZCBld2tfdGlsZV91bnVzZWRfY2FjaGVf
YXV0b19mbHVzaChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSkKICAqIEZy
ZWV6ZSBjYWNoZSB0byBub3QgZG8gbWFpbnRlbmFuY2UgdGFza3MuCiAgKgogICogTWFpbnRlbmFu
Y2UgdGFza3Mgb3B0aW1pemUgY2FjaGUgdXNhZ2UsIGJ1dCBtYXliZSB3ZSBrbm93IHdlIHNob3Vs
ZAotICogaGVpZ2h0b2xkIG9uIHRoZW0gdW50aWwgd2UgZG8gdGhlIGxhc3Qgb3BlcmF0aW9uLCBp
biB0aGlzIGNhc2Ugd2UgZnJlZXplCisgKiBob2xkIG9uIHRoZW0gdW50aWwgd2UgZG8gdGhlIGxh
c3Qgb3BlcmF0aW9uLCBpbiB0aGlzIGNhc2Ugd2UgZnJlZXplCiAgKiB3aGlsZSBvcGVyYXRpbmcg
YW5kIHRoZW4gdGhhdyB3aGVuIHdlJ3JlIGRvbmUuCiAgKgogICogQHNlZSBld2tfdGlsZV91bnVz
ZWRfY2FjaGVfdGhhdygpCkBAIC03MDcsOCArNzA3LDggQEAgRWluYV9Cb29sIGV3a190aWxlX3Vu
dXNlZF9jYWNoZV90aWxlX2dldChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNo
ZSwKICAqIGJlY2F1c2UgdXN1YWxseSB3ZSB3YW50IGEgbGF6eSBvcGVyYXRpb24gZm9yIGJldHRl
ciBwZXJmb3JtYW5jZS4KICAqCiAgKiBAcGFyYW0gdGlsZVVudXNlZENhY2hlIGNhY2hlIG9mIHVu
dXNlZCB0aWxlcwotICogQHBhcmFtIHQgdGlsZSB0byBiZSBhZGRlZCB0byBjYWNoZS4KLSAqIEBw
YXJhbSB0aWxlX2ZyZWVfY2IgZnVuY3Rpb24gdXNlZCB0byBmcmVlIHRpbGVzLgorICogQHBhcmFt
IHRpbGUgdGlsZSB0byBiZSBhZGRlZCB0byBjYWNoZS4KKyAqIEBwYXJhbSB0aWxlRnJlZUNhbGxi
YWNrIGZ1bmN0aW9uIHVzZWQgdG8gZnJlZSB0aWxlcy4KICAqIEBwYXJhbSBkYXRhIGNvbnRleHQg
dG8gZ2l2ZSBiYWNrIHRvIEBhIHRpbGVfZnJlZV9jYiBhcyBmaXJzdCBhcmd1bWVudC4KICAqCiAg
KiBAcmV0dXJuICN0cnVlIG9uIHN1Y2Nlc3MsICNmYWxzZSBvdGhlcndpc2UuIElmIEBjIHRpbGUt
PnZpc2libGUKQEAgLTcxNiw3ICs3MTYsNyBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVfdW51c2VkX2Nh
Y2hlX3RpbGVfZ2V0KEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlLAogICoK
ICAqIEBzZWUgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2F1dG9fZmx1c2goKQogICovCi1FaW5hX0Jv
b2wgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfcHV0KEV3a19UaWxlX1VudXNlZF9DYWNoZSog
dGlsZVVudXNlZENhY2hlLCBFd2tfVGlsZSogdGlsZSwgdm9pZCAoKiB0aWxlRnJlZUNiKSh2b2lk
KiBkYXRhLCBFd2tfVGlsZSogdGlsZSksIGNvbnN0IHZvaWQqIGRhdGEpCitFaW5hX0Jvb2wgZXdr
X3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfcHV0KEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVu
dXNlZENhY2hlLCBFd2tfVGlsZSogdGlsZSwgdm9pZCAoKiB0aWxlRnJlZUNhbGxiYWNrKSh2b2lk
KiBkYXRhLCBFd2tfVGlsZSogdGlsZSksIGNvbnN0IHZvaWQqIGRhdGEpCiB7CiAgICAgRXdrX1Rp
bGVfVW51c2VkX0NhY2hlX0VudHJ5KiB1bnVzZWRDYWNoZUVudHJ5OwogCkBAIC03MzcsNyArNzM3
LDcgQEAgRWluYV9Cb29sIGV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1dChFd2tfVGlsZV9V
bnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSwKIAogICAgIHVudXNlZENhY2hlRW50cnktPnRp
bGUgPSB0aWxlOwogICAgIHVudXNlZENhY2hlRW50cnktPndlaWdodCA9IDA7IC8qIGNhbGN1bGF0
ZWQganVzdCBiZWZvcmUgc29ydCAqLwotICAgIHVudXNlZENhY2hlRW50cnktPnRpbGVfZnJlZS5j
YWxsYmFjayA9IHRpbGVGcmVlQ2I7CisgICAgdW51c2VkQ2FjaGVFbnRyeS0+dGlsZV9mcmVlLmNh
bGxiYWNrID0gdGlsZUZyZWVDYWxsYmFjazsKICAgICB1bnVzZWRDYWNoZUVudHJ5LT50aWxlX2Zy
ZWUuZGF0YSA9ICh2b2lkKilkYXRhOwogCiAgICAgdGlsZVVudXNlZENhY2hlLT5lbnRyaWVzLmNv
dW50Kys7CkBAIC03NTgsNyArNzU4LDcgQEAgdm9pZCBld2tfdGlsZV91bnVzZWRfY2FjaGVfZGJn
KGNvbnN0IEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlKQogICAgIEVJTkFf
TElTVF9GT1JFQUNIKHRpbGVVbnVzZWRDYWNoZS0+ZW50cmllcy5saXN0LCBsaXN0LCBpdGVtKSB7
CiAgICAgICAgIGNvbnN0IEV3a19UaWxlKiB0aWxlID0gc3RhdGljX2Nhc3Q8RXdrX1RpbGVfVW51
c2VkX0NhY2hlX0VudHJ5Kj4oaXRlbSktPnRpbGU7CiAgICAgICAgIHByaW50ZigiIFslM2x1LCUz
bHUgKyAlZHglZCBAICUwLjNmXSVjIiwKLSAgICAgICAgICAgICAgIHRpbGUtPmNvbCwgdGlsZS0+
cm93LCB0aWxlLT53aWR0aCwgdGlsZS0+aGVpZ2h0LCB0aWxlLT56b29tLAorICAgICAgICAgICAg
ICAgdGlsZS0+Y29sdW1uLCB0aWxlLT5yb3csIHRpbGUtPndpZHRoLCB0aWxlLT5oZWlnaHQsIHRp
bGUtPnpvb20sCiAgICAgICAgICAgICAgICB0aWxlLT52aXNpYmxlID8gJyonIDogJyAnKTsKIAog
ICAgICAgICBpZiAoIShjb3VudCAlIDQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5k
ZXggZjMzODViZC4uZjNkZGQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0y
MTYsNjAgKzIxNiw2MCBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAjaWZuZGVm
IEVXS19UWVBFX0NIRUNLCiAjZGVmaW5lIEVXS19WSUVXX1RZUEVfQ0hFQ0soZXdrVmlldywgLi4u
KSBkbyB7IH0gd2hpbGUgKDApCiAjZWxzZQotI2RlZmluZSBFV0tfVklFV19UWVBFX0NIRUNLKGV3
a1ZpZXcsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGRv
IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgICAgICBjb25zdCBjaGFyKiBfdG1wX290eXBlID0gZXZhc19vYmplY3Rf
dHlwZV9nZXQoZXdrVmlldyk7ICAgICAgICAgICAgICAgXAotICAgICAgICBjb25zdCBFdmFzX1Nt
YXJ0KiBfdG1wX3MgPSBldmFzX29iamVjdF9zbWFydF9zbWFydF9nZXQoZXdrVmlldyk7ICAgICAg
XAotICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWSghX3RtcF9zKSkgeyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgRUlOQV9MT0dfQ1JJVCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICgi
JXAgKCVzKSBpcyBub3QgYSBzbWFydCBvYmplY3QhIiwgZXdrVmlldywgICAgICAgICAgICAgICAg
ICAgXAotICAgICAgICAgICAgICAgIF90bXBfb3R5cGUgPyBfdG1wX290eXBlIDogIihudWxsKSIp
OyAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIH0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgICAgIGNvbnN0IEV2YXNfU21hcnRfQ2xhc3MqIF90bXBfc2MgPSBldmFzX3NtYXJ0X2Ns
YXNzX2dldChfdG1wX3MpOyBcCi0gICAgICAgIGlmIChFSU5BX1VOTElLRUxZKCFfdG1wX3NjKSkg
eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBFSU5BX0xP
R19DUklUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgICAgICAgICAgKCIlcCAoJXMpIGlzIG5vdCBhIHNtYXJ0IG9iamVjdCEiLCBld2tWaWV3
LCAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgX3RtcF9vdHlwZSA/IF90bXBf
b3R5cGUgOiAiKG51bGwpIik7ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHJldHVy
biBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgaWYgKEVJTkFfVU5MSUtFTFkoX3RtcF9zYy0+ZGF0
YSAhPSBld2tWaWV3VHlwZVN0cmluZykpIHsgICAgICAgIFwKLSAgICAgICAgICAgIEVJTkFfTE9H
X0NSSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICAgICAgICAgICAgICAoIiVwICglcykgaXMgbm90IG9mIGFuIGV3a192aWV3IChuZWVkICVwLCBn
b3QgJXApISIsICAgIFwKLSAgICAgICAgICAgICAgICBld2tWaWV3LCBfdG1wX290eXBlID8gX3Rt
cF9vdHlwZSA6ICIobnVsbCkiLCAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgIGV3
a1ZpZXdUeXBlU3RyaW5nLCBfdG1wX3NjLT5kYXRhKTsgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIEVXS19WSUVXX1RZUEVf
Q0hFQ0soZXdrVmlldywgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY29uc3QgY2hhciogX3RtcF9vdHlwZSA9IGV2
YXNfb2JqZWN0X3R5cGVfZ2V0KGV3a1ZpZXcpOyAgICAgICAgICAgICBcCisgICAgICAgIGNvbnN0
IEV2YXNfU21hcnQqIF90bXBfcyA9IGV2YXNfb2JqZWN0X3NtYXJ0X3NtYXJ0X2dldChld2tWaWV3
KTsgICAgXAorICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWSghX3RtcF9zKSkgeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIEVJTkFfTE9HX0NSSVQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgICAgICAgICAgKCIlcCAoJXMpIGlzIG5vdCBhIHNtYXJ0IG9iamVjdCEiLCBld2tWaWV3LCAg
ICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIF90bXBfb3R5cGUgPyBfdG1wX290eXBl
IDogIihudWxsKSIpOyAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHJldHVy
biBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBjb25zdCBFdmFzX1NtYXJ0X0NsYXNz
KiBfdG1wX3NjID0gZXZhc19zbWFydF9jbGFzc19nZXQoX3RtcF9zKTsgICAgIFwKKyAgICAgICAg
aWYgKEVJTkFfVU5MSUtFTFkoIV90bXBfc2MpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgICAgICAgICBFSU5BX0xPR19DUklUICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICgiJXAg
KCVzKSBpcyBub3QgYSBzbWFydCBvYmplY3QhIiwgZXdrVmlldywgICAgICAgICAgICAgICAgIFwK
KyAgICAgICAgICAgICAgICBfdG1wX290eXBlID8gX3RtcF9vdHlwZSA6ICIobnVsbCkiKTsgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgaWYgKEVJTkFfVU5MSUtFTFkoX3RtcF9zYy0+ZGF0YSAhPSBld2tW
aWV3VHlwZVN0cmluZykpIHsgICAgICAgICAgICBcCisgICAgICAgICAgICBFSU5BX0xPR19DUklU
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
ICAgICAgICAgICAgICgiJXAgKCVzKSBpcyBub3Qgb2YgYW4gZXdrX3ZpZXcgKG5lZWQgJXAsIGdv
dCAlcCkhIiwgICAgICAgIFwKKyAgICAgICAgICAgICAgICBld2tWaWV3LCBfdG1wX290eXBlID8g
X3RtcF9vdHlwZSA6ICIobnVsbCkiLCAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAg
ZXdrVmlld1R5cGVTdHJpbmcsIF90bXBfc2MtPmRhdGEpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAorICAgICAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfSB3
aGlsZSAoMCkKICNlbmRpZgogCi0jZGVmaW5lIEVXS19WSUVXX1NEX0dFVChld2tWaWV3LCBwdHIp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIEV3a19WaWV3X1NtYXJ0X0Rh
dGEqIHB0ciA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihldmFzX29iamVjdF9z
bWFydF9kYXRhX2dldChld2tWaWV3KSkKKyNkZWZpbmUgRVdLX1ZJRVdfU0RfR0VUKGV3a1ZpZXcs
IHBvaW50ZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRXdrX1Zp
ZXdfU21hcnRfRGF0YSogcG9pbnRlciA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEq
PihldmFzX29iamVjdF9zbWFydF9kYXRhX2dldChld2tWaWV3KSkKIAotI2RlZmluZSBFV0tfVklF
V19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHB0ciwgLi4uKSAgICAgICAgICBcCi0gICAgRVdL
X1ZJRVdfVFlQRV9DSEVDSyhld2tWaWV3LCBfX1ZBX0FSR1NfXyk7ICAgICAgICAgICAgICAgIFwK
LSAgICBFV0tfVklFV19TRF9HRVQoZXdrVmlldywgcHRyKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgIGlmICghcHRyKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgICAgIENSSVRJQ0FMKCJubyBzbWFydCBkYXRhIGZvciBvYmplY3QgJXAg
KCVzKSIsICAgIFwKLSAgICAgICAgICAgICAgICAgZXdrVmlldywgZXZhc19vYmplY3RfdHlwZV9n
ZXQoZXdrVmlldykpOyAgICAgICAgICAgXAotICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIEVXS19WSUVXX1NEX0dFVF9PUl9S
RVRVUk4oZXdrVmlldywgcG9pbnRlciwgLi4uKSAgICAgICAgICAgICAgICAgICAgXAorICAgIEVX
S19WSUVXX1RZUEVfQ0hFQ0soZXdrVmlldywgX19WQV9BUkdTX18pOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICBFV0tfVklFV19TRF9HRVQoZXdrVmlldywgcG9pbnRlcik7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCFwb2ludGVyKSB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAorICAgICAgICBDUklUSUNBTCgibm8gc21hcnQgZGF0YSBmb3Igb2JqZWN0ICVwICglcykiLCAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgZXdrVmlldywgZXZhc19v
YmplY3RfdHlwZV9nZXQoZXdrVmlldykpOyAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJl
dHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAogICAgIH0KIAotI2RlZmluZSBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEs
IHB0cikgICAgICAgICAgICAgIFwKLSAgICBFd2tfVmlld19Qcml2YXRlX0RhdGEgKnB0ciA9IHNt
YXJ0RGF0YS0+X3ByaXYKKyNkZWZpbmUgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwb2lu
dGVyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhKiBwb2ludGVyID0gc21hcnREYXRhLT5fcHJpdgogCi0jZGVmaW5lIEVXS19WSUVXX1BS
SVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHB0ciwgLi4uKSAgICAgICAgICAgICAgIFwKLSAg
ICBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEsIHB0cik7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgIGlmICghcHRyKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgQ1JJVElDQUwoIm5vIHByaXZhdGUgZGF0
YSBmb3Igb2JqZWN0ICVwICglcykiLCAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgIHNtYXJ0
RGF0YS0+c2VsZiwgZXZhc19vYmplY3RfdHlwZV9nZXQoc21hcnREYXRhLT5zZWxmKSk7ICAgICBc
Ci0gICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorI2RlZmluZSBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRh
LCBwb2ludGVyLCAuLi4pICAgICAgICAgICAgICAgIFwKKyAgICBFV0tfVklFV19QUklWX0dFVChz
bWFydERhdGEsIHBvaW50ZXIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgaWYgKCFwb2ludGVyKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBDUklUSUNBTCgibm8gcHJpdmF0ZSBkYXRhIGZv
ciBvYmplY3QgJXAgKCVzKSIsICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAg
ICAgc21hcnREYXRhLT5zZWxmLCBldmFzX29iamVjdF90eXBlX2dldChzbWFydERhdGEtPnNlbGYp
KTsgICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIH0KIAotI2RlZmluZSBFV0tfVklFV19U
SUxFRF9UWVBFX0NIRUNLX09SX1JFVFVSTihld2tWaWV3LCAuLi4pIFwKLSAgICBpZiAoIWV2YXNf
b2JqZWN0X3NtYXJ0X3R5cGVfY2hlY2soZXdrVmlldywgIkV3a19WaWV3X1RpbGVkIikpIHsgXAot
ICAgICAgICBJTkYoIm9iamVjdCBpcyBub3QgYSBpbnN0YW5jZSBvZiBFd2tfVmlld19UaWxlZCIp
OyBcCi0gICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgXAorI2RlZmluZSBFV0tfVklFV19USUxF
RF9UWVBFX0NIRUNLX09SX1JFVFVSTihld2tWaWV3LCAuLi4pICAgICAgICAgICAgICAgICAgIFwK
KyAgICBpZiAoIWV2YXNfb2JqZWN0X3NtYXJ0X3R5cGVfY2hlY2soZXdrVmlldywgIkV3a19WaWV3
X1RpbGVkIikpIHsgICAgICAgICBcCisgICAgICAgIElORigib2JqZWN0IGlzIG5vdCBhIGluc3Rh
bmNlIG9mIEV3a19WaWV3X1RpbGVkIik7ICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1
cm4gX19WQV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKICAgICB9CiAKIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9jaGFuZ2VkKEV3
a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKQEAgLTQxMCwxMiArNDEwLDEyIEBAIHN0YXRp
YyB2b2lkIF9ld2tfdmlld19zY3JvbGxzX2ZsdXNoKEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJp
dikKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2ZvY3VzX2luKEV3a19WaWV3X1Nt
YXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIHsKICAgICBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEs
IHByaXYpOwotICAgIFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlciogZmMgPSBwcml2LT5wYWdlLT5m
b2N1c0NvbnRyb2xsZXIoKTsKLSAgICBEQkcoImV3a1ZpZXc9JXAsIGZjPSVwIiwgc21hcnREYXRh
LT5zZWxmLCBmYyk7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGZjLCBmYWxz
ZSk7CisgICAgV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyKiBmb2N1c0NvbnRyb2xsZXIgPSBwcml2
LT5wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKTsKKyAgICBEQkcoImV3a1ZpZXc9JXAsIGZvY3VzQ29u
dHJvbGxlcj0lcCIsIHNtYXJ0RGF0YS0+c2VsZiwgZm9jdXNDb250cm9sbGVyKTsKKyAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZm9jdXNDb250cm9sbGVyLCBmYWxzZSk7CiAKLSAg
ICBmYy0+c2V0QWN0aXZlKHRydWUpOwotICAgIGZjLT5zZXRGb2N1c2VkKHRydWUpOworICAgIGZv
Y3VzQ29udHJvbGxlci0+c2V0QWN0aXZlKHRydWUpOworICAgIGZvY3VzQ29udHJvbGxlci0+c2V0
Rm9jdXNlZCh0cnVlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTc5MCw3ICsxNzkwLDcg
QEAgRWluYV9Cb29sIGV3a192aWV3X3ByZV9yZW5kZXJfcmVnaW9uKEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ28KICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJO
KGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JF
VFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoc21hcnREYXRhLT5hcGktPnByZV9yZW5kZXJfcmVnaW9uLCBmYWxzZSk7Ci0gICAg
ZmxvYXQgY3VyX3pvb207CisgICAgZmxvYXQgY3VycmVudFpvb207CiAgICAgRXZhc19Db29yZCBj
b250ZW50c1dpZHRoLCBjb250ZW50c0hlaWdodDsKIAogICAgIC8qIFdoZW4gZG9pbmcgYW5pbWF0
ZWQgem9vbSBpdCdzIG5vdCBwb3NzaWJsZSB0byBjYWxsIHByZS1yZW5kZXIgc2luY2UgaXQKQEAg
LTE3OTksMTUgKzE3OTksMTUgQEAgRWluYV9Cb29sIGV3a192aWV3X3ByZV9yZW5kZXJfcmVnaW9u
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ28KICAgICBpZiAocHJp
di0+YW5pbWF0ZWRab29tLmFuaW1hdG9yKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBj
dXJfem9vbSA9IGV3a19mcmFtZV9wYWdlX3pvb21fZ2V0KHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSk7
CisgICAgY3VycmVudFpvb20gPSBld2tfZnJhbWVfcGFnZV96b29tX2dldChzbWFydERhdGEtPm1h
aW5fZnJhbWUpOwogCi0gICAgaWYgKGN1cl96b29tIDwgMC4wMDAwMSkKKyAgICBpZiAoY3VycmVu
dFpvb20gPCAwLjAwMDAxKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFld2tfZnJh
bWVfY29udGVudHNfc2l6ZV9nZXQoc21hcnREYXRhLT5tYWluX2ZyYW1lLCAmY29udGVudHNXaWR0
aCwgJmNvbnRlbnRzSGVpZ2h0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgY29udGVu
dHNXaWR0aCAqPSB6b29tIC8gY3VyX3pvb207Ci0gICAgY29udGVudHNIZWlnaHQgKj0gem9vbSAv
IGN1cl96b29tOworICAgIGNvbnRlbnRzV2lkdGggKj0gem9vbSAvIGN1cnJlbnRab29tOworICAg
IGNvbnRlbnRzSGVpZ2h0ICo9IHpvb20gLyBjdXJyZW50Wm9vbTsKICAgICBEQkcoInJlZ2lvbiAl
ZCwlZCslZHglZCBAICVmIGNvbnRlbnRzPSVkeCVkIiwgeCwgeSwgd2lkdGgsIGhlaWdodCwgem9v
bSwgY29udGVudHNXaWR0aCwgY29udGVudHNIZWlnaHQpOwogCiAgICAgaWYgKHggKyB3aWR0aCA+
IGNvbnRlbnRzV2lkdGgpCkBAIC0yOTU3LDggKzI5NTcsOCBAQCB2b2lkIGV3a192aWV3X3Jlc3Rv
cmVfc3RhdGUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSkKICAqIEBw
YXJhbSBld2tWaWV3IEN1cnJlbnQgdmlldy4KICAqIEBwYXJhbSBqYXZhc2NyaXB0IEBjIHRydWUg
aWYgdGhlIG5ldyB3aW5kb3cgaXMgb3JpZ2luYXRlZCBmcm9tIGphdmFzY3JpcHQsCiAgKiBAYyBm
YWxzZSBvdGhlcndpc2UKLSAqIEBwYXJhbSB3aWR0aGluZG93X2ZlYXR1cmVzIEZlYXR1cmVzIG9m
IHRoZSBuZXcgd2luZG93IGJlaW5nIGNyZWF0ZWQuIElmIGl0J3MgQGMKLSAqIE5VTEwsIGl0IHdp
bGwgYmUgY3JlYXRlZCBhIHdpbmRvdyB3aXRoIGRlZmF1bHQgZmVhdHVyZXMuCisgKiBAcGFyYW0g
d2luZG93X2ZlYXR1cmVzIEZlYXR1cmVzIG9mIHRoZSBuZXcgd2luZG93IGJlaW5nIGNyZWF0ZWQu
IElmIGl0J3MgQGMKKyAqIDAsIGl0IHdpbGwgYmUgY3JlYXRlZCBhIHdpbmRvdyB3aXRoIGRlZmF1
bHQgZmVhdHVyZXMuCiAgKgogICogQHJldHVybiBOZXcgdmlldywgaW4gY2FzZSBzbWFydCBjbGFz
cyBpbXBsZW1lbnRzIHRoZSBjcmVhdGlvbiBvZiBuZXcgd2luZG93czsKICAqIGVsc2UsIGN1cnJl
bnQgdmlldyBAcGFyYW0gZXdrVmlldyBvciBAYyAwIG9uIGZhaWx1cmUuCkBAIC0zMDUwLDcgKzMw
NTAsNyBAQCB2b2lkIGV3a192aWV3X3Rvb2xiYXJzX3Zpc2libGVfc2V0KEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBib29sIHZpc2libGUpCiAgKi8KIHZvaWQgZXdrX3ZpZXdfdG9vbGJhcnNfdmlzaWJs
ZV9nZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wqIHZpc2libGUpCiB7Ci0gICAgREJHKCIl
cywgbz0lcCIsIF9fZnVuY19fLCBld2tWaWV3KTsKKyAgICBEQkcoIiVzLCBld2tWaWV3PSVwIiwg
X19mdW5jX18sIGV3a1ZpZXcpOwogICAgICp2aXNpYmxlID0gZmFsc2U7CiAgICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tWaWV3LCAidG9vbGJhcnMsdmlzaWJsZSxnZXQiLCB2
aXNpYmxlKTsKIH0KQEAgLTMwODMsNyArMzA4Myw3IEBAIHZvaWQgZXdrX3ZpZXdfc3RhdHVzYmFy
X3Zpc2libGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sICB2aXNpYmxlKQogICovCiB2
b2lkIGV3a192aWV3X3N0YXR1c2Jhcl92aXNpYmxlX2dldChFdmFzX09iamVjdCogZXdrVmlldywg
Ym9vbCogdmlzaWJsZSkKIHsKLSAgICBEQkcoIiVzLCBvPSVwIiwgX19mdW5jX18sIGV3a1ZpZXcp
OworICAgIERCRygiJXMsIGV3a1ZpZXc9JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CiAgICAgKnZp
c2libGUgPSBmYWxzZTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1Zp
ZXcsICJzdGF0dXNiYXIsdmlzaWJsZSxnZXQiLCB2aXNpYmxlKTsKIH0KQEAgLTMxMzIsNyArMzEz
Miw3IEBAIHZvaWQgZXdrX3ZpZXdfc2Nyb2xsYmFyc192aXNpYmxlX3NldChFdmFzX09iamVjdCog
ZXdrVmlldywgYm9vbCB2aXNpYmxlKQogICovCiB2b2lkIGV3a192aWV3X3Njcm9sbGJhcnNfdmlz
aWJsZV9nZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wqIHZpc2libGUpCiB7Ci0gICAgREJH
KCIlcywgbz0lcCIsIF9fZnVuY19fLCBld2tWaWV3KTsKKyAgICBEQkcoIiVzLCBld2tWaWV3PSVw
IiwgX19mdW5jX18sIGV3a1ZpZXcpOwogICAgICp2aXNpYmxlID0gZmFsc2U7CiAgICAgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tWaWV3LCAic2Nyb2xsYmFycyx2aXNpYmxlLGdl
dCIsIHZpc2libGUpOwogfQpAQCAtMzE2NSw3ICszMTY1LDcgQEAgdm9pZCBld2tfdmlld19tZW51
YmFyX3Zpc2libGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIHZpc2libGUpCiAgKi8K
IHZvaWQgZXdrX3ZpZXdfbWVudWJhcl92aXNpYmxlX2dldChFdmFzX09iamVjdCogZXdrVmlldywg
Ym9vbCogdmlzaWJsZSkKIHsKLSAgICBEQkcoIiVzLCBvPSVwIiwgX19mdW5jX18sIGV3a1ZpZXcp
OworICAgIERCRygiJXMsIGV3a1ZpZXc9JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CiAgICAgKnZp
c2libGUgPSBmYWxzZTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1Zp
ZXcsICJtZW51YmFyLHZpc2libGUsZ2V0IiwgdmlzaWJsZSk7CiB9CkBAIC0zNTkxLDcgKzM1OTEs
NyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfem9vbV9yYW5nZV9zZXQoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIGZsb2F0IG1pblNjYWxlLCBmbG9hdCBtYQogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JF
VFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKIAogICAgIGlmIChtYXhTY2FsZSA8IG1pblNj
YWxlKSB7Ci0gICAgICAgIFdSTigibWluX3NjYWxlIGlzIGxhcmdlciB0aGFuIG1heF9zY2FsZSIp
OworICAgICAgICBXUk4oIm1pblNjYWxlIGlzIGxhcmdlciB0aGFuIG1heFNjYWxlIik7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlld19zaW5nbGUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
X3NpbmdsZS5jcHAKaW5kZXggZWQ3MjYzMy4uOGY3NDk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3X3NpbmdsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a192aWV3X3NpbmdsZS5jcHAKQEAgLTksNyArOSw3IEBACiAKICAgICBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICAg
ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgotICAgIE1FUmNoQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICAgICBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIAogICAgIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
QEAgLTIwOSw4ICsyMDksOCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zaW5nbGVfc21h
cnRfcmVwYWludHNfcHJvY2VzcyhFd2tfVmlld19TbWFydF9EYXRhKiBzbQogICAgIEV2YXNfQ29v
cmQgb3csIG9oOwogICAgIHZvaWQqIHBpeGVsczsKICAgICBFaW5hX1JlY3RhbmdsZSogcmVjdDsK
LSAgICBjb25zdCBFaW5hX1JlY3RhbmdsZSogcHI7Ci0gICAgY29uc3QgRWluYV9SZWN0YW5nbGUq
IHByX2VuZDsKKyAgICBjb25zdCBFaW5hX1JlY3RhbmdsZSogcGFpbnRSZXF1ZXN0OworICAgIGNv
bnN0IEVpbmFfUmVjdGFuZ2xlKiBwYWludFJlcXVlc3RFbmQ7CiAgICAgRWluYV9UaWxlciogdGls
ZXI7CiAgICAgRWluYV9JdGVyYXRvciogaXRlcmF0b3I7CiAgICAgY2Fpcm9fc3RhdHVzX3Qgc3Rh
dHVzOwpAQCAtMjc3LDEwICsyNzcsMTAgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc2lu
Z2xlX3NtYXJ0X3JlcGFpbnRzX3Byb2Nlc3MoRXdrX1ZpZXdfU21hcnRfRGF0YSogc20KIAogICAg
IGV3a192aWV3X2xheW91dF9pZl9uZWVkZWRfcmVjdXJzaXZlKHNtYXJ0RGF0YS0+X3ByaXYpOwog
Ci0gICAgcHIgPSBld2tfdmlld19yZXBhaW50c19wb3Aoc21hcnREYXRhLT5fcHJpdiwgJmNvdW50
KTsKLSAgICBwcl9lbmQgPSBwciArIGNvdW50OwotICAgIGZvciAoOyBwciA8IHByX2VuZDsgcHIr
KykKLSAgICAgICAgZWluYV90aWxlcl9yZWN0X2FkZCh0aWxlciwgcHIpOworICAgIHBhaW50UmVx
dWVzdCA9IGV3a192aWV3X3JlcGFpbnRzX3BvcChzbWFydERhdGEtPl9wcml2LCAmY291bnQpOwor
ICAgIHBhaW50UmVxdWVzdEVuZCA9IHBhaW50UmVxdWVzdCArIGNvdW50OworICAgIGZvciAoOyBw
YWludFJlcXVlc3QgPCBwYWludFJlcXVlc3RFbmQ7IHBhaW50UmVxdWVzdCsrKQorICAgICAgICBl
aW5hX3RpbGVyX3JlY3RfYWRkKHRpbGVyLCBwYWludFJlcXVlc3QpOwogCiAgICAgaXRlcmF0b3Ig
PSBlaW5hX3RpbGVyX2l0ZXJhdG9yX25ldyh0aWxlcik7CiAgICAgaWYgKCFpdGVyYXRvcikgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKaW5kZXggYjcyZDZhZS4uNGU5
ZDgyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVkLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwCkBAIC03Nywx
MiArNzcsMTIgQEAgc3RhdGljIHZvaWQqIF9ld2tfdmlld190aWxlZF91cGRhdGVzX3Byb2Nlc3Nf
cHJlKHZvaWQqIGRhdGEsIEV2YXNfT2JqZWN0KiBld2tWaWUKIAogc3RhdGljIEV2YXNfT2JqZWN0
KiBfZXdrX3ZpZXdfdGlsZWRfc21hcnRfYmFja2luZ19zdG9yZV9hZGQoRXdrX1ZpZXdfU21hcnRf
RGF0YSogc21hcnREYXRhKQogewotICAgIEV2YXNfT2JqZWN0KiBicyA9IGV3a190aWxlZF9iYWNr
aW5nX3N0b3JlX2FkZChzbWFydERhdGEtPmJhc2UuZXZhcyk7CisgICAgRXZhc19PYmplY3QqIGJh
Y2tpbmdTdG9yZSA9IGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2FkZChzbWFydERhdGEtPmJhc2Uu
ZXZhcyk7CiAgICAgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVuZGVyX2NiX3NldAotICAgICAg
ICAoYnMsIF9ld2tfdmlld190aWxlZF9yZW5kZXJfY2IsIHNtYXJ0RGF0YS0+X3ByaXYpOworICAg
ICAgICAoYmFja2luZ1N0b3JlLCBfZXdrX3ZpZXdfdGlsZWRfcmVuZGVyX2NiLCBzbWFydERhdGEt
Pl9wcml2KTsKICAgICBld2tfdGlsZWRfYmFja2luZ19zdG9yZV91cGRhdGVzX3Byb2Nlc3NfcHJl
X3NldAotICAgICAgICAoYnMsIF9ld2tfdmlld190aWxlZF91cGRhdGVzX3Byb2Nlc3NfcHJlLCBz
bWFydERhdGEtPl9wcml2KTsKLSAgICByZXR1cm4gYnM7CisgICAgICAgIChiYWNraW5nU3RvcmUs
IF9ld2tfdmlld190aWxlZF91cGRhdGVzX3Byb2Nlc3NfcHJlLCBzbWFydERhdGEtPl9wcml2KTsK
KyAgICByZXR1cm4gYmFja2luZ1N0b3JlOwogfQogCiBzdGF0aWMgdm9pZApAQCAtOTcsMTcgKzk3
LDE3IEBAIF9ld2tfdmlld190aWxlZF9jb250ZW50c19zaXplX2NoYW5nZWRfY2Iodm9pZCogZGF0
YSwgRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqCiAKIHN0YXRpYyB2b2lkIF9ld2tfdmlld190
aWxlZF9zbWFydF9hZGQoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7Ci0gICAgRXdrX1ZpZXdfU21h
cnRfRGF0YSogc2Q7CisgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhOwogCiAgICAg
X3BhcmVudF9zYy5zYy5hZGQoZXdrVmlldyk7CiAKLSAgICBzZCA9IHN0YXRpY19jYXN0PEV3a19W
aWV3X1NtYXJ0X0RhdGEqPihldmFzX29iamVjdF9zbWFydF9kYXRhX2dldChld2tWaWV3KSk7Ci0g
ICAgaWYgKCFzZCkKKyAgICBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9E
YXRhKj4oZXZhc19vYmplY3Rfc21hcnRfZGF0YV9nZXQoZXdrVmlldykpOworICAgIGlmICghc21h
cnREYXRhKQogICAgICAgICByZXR1cm47CiAKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFj
a19hZGQoCi0gICAgICAgIHNkLT5tYWluX2ZyYW1lLCAiY29udGVudHMsc2l6ZSxjaGFuZ2VkIiwK
LSAgICAgICAgX2V3a192aWV3X3RpbGVkX2NvbnRlbnRzX3NpemVfY2hhbmdlZF9jYiwgc2QpOwor
ICAgICAgICBzbWFydERhdGEtPm1haW5fZnJhbWUsICJjb250ZW50cyxzaXplLGNoYW5nZWQiLAor
ICAgICAgICBfZXdrX3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2NiLCBzbWFydERh
dGEpOwogfQogCiBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld190aWxlZF9zbWFydF9zY3JvbGxz
X3Byb2Nlc3MoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQpAQCAtMzkyLDE0ICszOTIs
MTQgQEAgRXZhc19PYmplY3QqIGV3a192aWV3X3RpbGVkX2FkZChFdmFzKiBjYW52YXMpCiAKIEV3
a19UaWxlX1VudXNlZF9DYWNoZSogZXdrX3ZpZXdfdGlsZWRfdW51c2VkX2NhY2hlX2dldChjb25z
dCBFdmFzX09iamVjdCogZXdrVmlldykKIHsKLSAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzZCA9
IGV3a192aWV3X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpOwotICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChzZCwgMCk7Ci0gICAgcmV0dXJuIGV3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3RpbGVfdW51c2VkX2NhY2hlX2dldChzZC0+YmFja2luZ19zdG9yZSk7CisgICAgRXdrX1ZpZXdf
U21hcnRfRGF0YSogc21hcnREYXRhID0gZXdrX3ZpZXdfc21hcnRfZGF0YV9nZXQoZXdrVmlldyk7
CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNtYXJ0RGF0YSwgMCk7CisgICAg
cmV0dXJuIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfdW51c2VkX2NhY2hlX2dldChzbWFy
dERhdGEtPmJhY2tpbmdfc3RvcmUpOwogfQogCiB2b2lkIGV3a192aWV3X3RpbGVkX3VudXNlZF9j
YWNoZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV3a19UaWxlX1VudXNlZF9DYWNoZSogY2Fj
aGUpCiB7Ci0gICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBld2tfdmlld19zbWFydF9kYXRh
X2dldChld2tWaWV3KTsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihzZCk7Ci0gICAg
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2FjaGVfc2V0KHNkLT5iYWNraW5n
X3N0b3JlLCBjYWNoZSk7CisgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gZXdr
X3ZpZXdfc21hcnRfZGF0YV9nZXQoZXdrVmlldyk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk4oc21hcnREYXRhKTsKKyAgICBld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX3VudXNl
ZF9jYWNoZV9zZXQoc21hcnREYXRhLT5iYWNraW5nX3N0b3JlLCBjYWNoZSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123101</attachid>
            <date>2012-01-19 04:10:50 -0800</date>
            <delta_ts>2012-01-29 05:01:20 -0800</delta_ts>
            <desc>fixed by comments.</desc>
            <filename>new_patch.patch</filename>
            <type>text/plain</type>
            <size>61280</size>
            <attacher name="JungJik Lee">jungjik.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCBkODdlMDRjLi43ZDU5YWUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNzcgQEAKKzIwMTItMDEtMTkgIEp1bmdKaWsgTGVlICA8anVuZ2ppay5sZWVAc2Ft
c3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gQWRvcHQgQysrIHN0eWxlIHVzaW5nIGNhbWVsQ2Fz
ZSBhbmQgZnVsbCB2YXJpYWJsZSBuYW1lcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc2Mzc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTW9kaWZ5IHRoZSBjb2RlIHRvIHVzZSBjYW1lbENhc2UgYW5kIHNw
ZWxsIG91dCB2YXJpYWJsZSBuYW1lcyBpbnN0ZWFkIG9mIHVzaW5nIGFiYnJldmlhdGlvbnMuCisg
ICAgICAgIFRoZSBsb2dpYyBvZiB0aGUgY29kZSBpcyBub3QgY2hhbmdlZC4KKworICAgICAgICAq
IGV3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5jcHA6CisgICAgICAgIChfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfdGlsZV9hc3NvY2lhdGUpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3RpbGVfZGlzc29jaWF0ZSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfcHJlX3JlbmRlcl9yZXF1ZXN0X3Byb2Nlc3Nfc2luZ2xlKToKKyAgICAgICAgKF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9pdGVtX2ZpbGwpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX2l0ZW1fYWRkKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVt
X3Ntb290aF9zY2FsZV9zZXQpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Zp
ZXdfY29sc19lbmRfYWRkKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3
X3Jvd3NfYWxsX2RlbCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVuZGVy
KToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9tZW1fZGJnKToKKyAgICAgICAg
KF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zaWdfdXNyKToKKyAgICAgICAgKF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9zbWFydF9hZGQpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX3JlY2FsY19yZW5kZXJlcnMpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3ZpZXdfZGJnKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBf
bGVmdCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19yZWZpbGwpOgor
ICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfcG9zX2FwcGx5KToKKyAgICAg
ICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGVfb2Zmc2V0X2ZvcmNl
KToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGVfb2Zm
c2V0KToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGVf
cG9zKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGUp
OgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9z
ZXRfaW50ZXJuYWwpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1
bGxfb2Zmc2V0X3NldCk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxf
ZnVsbF9vZmZzZXRfYWRkKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29t
X3NldF9pbnRlcm5hbCk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3dl
YWtfc2V0KToKKyAgICAgICAgKGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZpeF9vZmZzZXRzKToK
KyAgICAgICAgKGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZsdXNoKToKKyAgICAgICAgKGV3a190
aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVnaW9uKToKKyAgICAgICAgKGV3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVsYXRpdmVfcmFkaXVzKToKKyAgICAgICAgKiBl
d2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuaDoKKyAgICAgICAgKiBld2svZXdrX3RpbGVkX21h
dHJpeC5jcHA6CisgICAgICAgIChfZXdrX3RpbGVfbWF0cml4X2NlbGxfZnJlZSk6CisgICAgICAg
IChfZXdrX3RpbGVfbWF0cml4X3RpbGVfZnJlZSk6CisgICAgICAgIChld2tfdGlsZV9tYXRyaXhf
bmV3KToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF9mcmVlKToKKyAgICAgICAgKGV3a190aWxl
X21hdHJpeF91bnVzZWRfY2FjaGVfZ2V0KToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF90aWxl
X2V4YWN0X2dldCk6CisgICAgICAgIChld2tfdGlsZV9tYXRyaXhfdGlsZV9uZXcpOgorICAgICAg
ICAoZXdrX3RpbGVfbWF0cml4X3RpbGVfcHV0KToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF9k
YmcpOgorICAgICAgICAoZXdrX3RpbGVfbWF0cml4X2ZyZWV6ZSk6CisgICAgICAgIChld2tfdGls
ZV9tYXRyaXhfdGhhdyk6CisgICAgICAgICogZXdrL2V3a190aWxlZF9tb2RlbC5jcHA6CisgICAg
ICAgIChld2tfdGlsZV91cGRhdGVzX3Byb2Nlc3MpOgorICAgICAgICAoZXdrX3RpbGVfdW51c2Vk
X2NhY2hlX3RpbGVfcHV0KToKKyAgICAgICAgKGV3a190aWxlX3VudXNlZF9jYWNoZV9kYmcpOgor
ICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfZm9j
dXNfaW4pOgorICAgICAgICAoZXdrX3ZpZXdfcHJlX3JlbmRlcl9yZWdpb24pOgorICAgICAgICAo
ZXdrX3ZpZXdfdG9vbGJhcnNfdmlzaWJsZV9nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc3RhdHVz
YmFyX3Zpc2libGVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3Njcm9sbGJhcnNfdmlzaWJsZV9n
ZXQpOgorICAgICAgICAoZXdrX3ZpZXdfbWVudWJhcl92aXNpYmxlX2dldCk6CisgICAgICAgIChl
d2tfdmlld196b29tX3JhbmdlX3NldCk6CisgICAgICAgICogZXdrL2V3a192aWV3X3NpbmdsZS5j
cHA6CisgICAgICAgIChfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X3JlcGFpbnRzX3Byb2Nlc3MpOgor
ICAgICAgICAqIGV3ay9ld2tfdmlld190aWxlZC5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfdGls
ZWRfc21hcnRfYmFja2luZ19zdG9yZV9hZGQpOgorICAgICAgICAoX2V3a192aWV3X3RpbGVkX3Nt
YXJ0X2FkZCk6CisgICAgICAgIChld2tfdmlld190aWxlZF91bnVzZWRfY2FjaGVfZ2V0KToKKyAg
ICAgICAgKGV3a192aWV3X3RpbGVkX3VudXNlZF9jYWNoZV9zZXQpOgorCiAyMDEyLTAxLTE3ICBH
eXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0g
VXNlIHN0YXRpYyBjb25zdCBpbnN0ZWQgb2YgI2RlZmluZSBtYWNyby4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuY3BwCmluZGV4IDRjZGQ3MmQu
LmJiZTk0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlLmNwcApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX0V3a19UaWxlZF9CYWNraW5n
X1N0b3JlX0l0ZW0gewogICAgIHN0cnVjdCB7CiAgICAgICAgIEV2YXNfQ29vcmQgeCwgeSwgd2lk
dGgsIGhlaWdodDsKICAgICB9IGdlb21ldHJ5OwotICAgIGJvb2wgc21vb3RoX3NjYWxlOworICAg
IGJvb2wgc21vb3RoU2NhbGU7CiB9OwogCiBzdHJ1Y3QgX0V3a19UaWxlZF9CYWNraW5nX1N0b3Jl
X1ByZV9SZW5kZXJfUmVxdWVzdCB7CkBAIC02MSw3ICs2MSw3IEBAIHN0cnVjdCBfRXdrX1RpbGVk
X0JhY2tpbmdfU3RvcmVfRGF0YSB7CiAgICAgc3RydWN0IHsKICAgICAgICAgRWluYV9Jbmxpc3Qq
KiBpdGVtczsKICAgICAgICAgRXZhc19Db29yZCB4LCB5LCB3aWR0aCwgaGVpZ2h0OwotICAgICAg
ICBsb25nIGNvbHMsIHJvd3M7CisgICAgICAgIGxvbmcgY29sdW1ucywgcm93czsKICAgICAgICAg
c3RydWN0IHsKICAgICAgICAgICAgIEV2YXNfQ29vcmQgd2lkdGgsIGhlaWdodDsKICAgICAgICAg
ICAgIGZsb2F0IHpvb207CkBAIC03MSw3ICs3MSw3IEBAIHN0cnVjdCBfRXdrX1RpbGVkX0JhY2tp
bmdfU3RvcmVfRGF0YSB7CiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICBzdHJ1Y3Qgewog
ICAgICAgICAgICAgICAgIEV2YXNfQ29vcmQgeCwgeTsKLSAgICAgICAgICAgIH0gY3VyLCBvbGQs
IGJhc2UsIHpvb21DZW50ZXI7CisgICAgICAgICAgICB9IGN1cnJlbnQsIG9sZCwgYmFzZSwgem9v
bUNlbnRlcjsKICAgICAgICAgfSBvZmZzZXQ7CiAgICAgICAgIGJvb2wgdmlzaWJsZSA6IDE7CiAg
ICAgfSB2aWV3OwpAQCAtMTA4LDcgKzEwOCw3IEBAIHN0cnVjdCBfRXdrX1RpbGVkX0JhY2tpbmdf
U3RvcmVfRGF0YSB7CiAgICAgICAgIGJvb2wgb2Zmc2V0IDogMTsKICAgICB9IGNoYW5nZWQ7CiAj
aWZkZWYgREVCVUdfTUVNX0xFQUtTCi0gICAgRWNvcmVfRXZlbnRfSGFuZGxlciogc2lnX3VzcjsK
KyAgICBFY29yZV9FdmVudF9IYW5kbGVyKiBzaWduYWxVc2VyOwogI2VuZGlmCiB9OwogCkBAIC0y
MDMsMTMgKzIwMywxMyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRl
bV9yZXNpemUoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaQogc3RhdGljIHZvaWQgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfYXNzb2NpYXRlKEV3a19UaWxlZF9CYWNraW5nX1N0
b3JlX0RhdGEqIHByaXYsIEV3a19UaWxlKiB0aWxlLCBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9J
dGVtKiBpdGVtKQogewogICAgIGlmIChpdGVtLT50aWxlKQotICAgICAgICBDUklUSUNBTCgiaXQt
PnRpbGU9JXAsIGJ1dCBpdCBzaG91bGQgYmUgMCEiLCBpdGVtLT50aWxlKTsKKyAgICAgICAgQ1JJ
VElDQUwoIml0ZW0tPnRpbGU9JXAsIGJ1dCBpdCBzaG91bGQgYmUgMCEiLCBpdGVtLT50aWxlKTsK
ICAgICBpdGVtLT50aWxlID0gdGlsZTsKICAgICBldmFzX29iamVjdF9tb3ZlKGl0ZW0tPnRpbGUt
PmltYWdlLCBpdGVtLT5nZW9tZXRyeS54LCBpdGVtLT5nZW9tZXRyeS55KTsKICAgICBldmFzX29i
amVjdF9yZXNpemUoaXRlbS0+dGlsZS0+aW1hZ2UsIGl0ZW0tPmdlb21ldHJ5LndpZHRoLCBpdGVt
LT5nZW9tZXRyeS5oZWlnaHQpOwogICAgIGV2YXNfb2JqZWN0X2ltYWdlX2ZpbGxfc2V0CiAgICAg
ICAgIChpdGVtLT50aWxlLT5pbWFnZSwgMCwgMCwgaXRlbS0+Z2VvbWV0cnkud2lkdGgsIGl0ZW0t
Pmdlb21ldHJ5LmhlaWdodCk7Ci0gICAgZXZhc19vYmplY3RfaW1hZ2Vfc21vb3RoX3NjYWxlX3Nl
dChpdGVtLT50aWxlLT5pbWFnZSwgaXRlbS0+c21vb3RoX3NjYWxlKTsKKyAgICBldmFzX29iamVj
dF9pbWFnZV9zbW9vdGhfc2NhbGVfc2V0KGl0ZW0tPnRpbGUtPmltYWdlLCBpdGVtLT5zbW9vdGhT
Y2FsZSk7CiAgICAgZXZhc19vYmplY3RfaW1hZ2VfYWxwaGFfc2V0KGl0ZW0tPnRpbGUtPmltYWdl
LCBwcml2LT52aWV3LnRpbGUuaGFzQWxwaGEpOwogCiAgICAgaWYgKCFld2tfdGlsZV92aXNpYmxl
X2dldCh0aWxlKSkKQEAgLTIyMCwxMyArMjIwLDEzIEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV90aWxlX2Fzc29jaWF0ZShFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRh
CiAKIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Rpc3NvY2lhdGUo
RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiwgRXdrX1RpbGVkX0JhY2tpbmdfU3Rv
cmVfSXRlbSogaXRlbSwgZG91YmxlIGxhc3RVc2VkKQogewotICAgIEV3a19UaWxlX1VudXNlZF9D
YWNoZSogdGlsZWRVbnVzZWRDYWNoZTsKKyAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVV
bnVzZWRDYWNoZTsKICAgICBld2tfdGlsZV9oaWRlKGl0ZW0tPnRpbGUpOwogICAgIGlmICghZXdr
X3RpbGVfdmlzaWJsZV9nZXQoaXRlbS0+dGlsZSkpCiAgICAgICAgIGV2YXNfb2JqZWN0X3NtYXJ0
X21lbWJlcl9kZWwoaXRlbS0+dGlsZS0+aW1hZ2UpOwogICAgIGV3a190aWxlX21hdHJpeF90aWxl
X3B1dChwcml2LT5tb2RlbC5tYXRyaXgsIGl0ZW0tPnRpbGUsIGxhc3RVc2VkKTsKLSAgICB0aWxl
ZFVudXNlZENhY2hlID0gZXdrX3RpbGVfbWF0cml4X3VudXNlZF9jYWNoZV9nZXQocHJpdi0+bW9k
ZWwubWF0cml4KTsKLSAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0aWxlZFVu
dXNlZENhY2hlKTsKKyAgICB0aWxlVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9tYXRyaXhfdW51c2Vk
X2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgpOworICAgIGV3a190aWxlX3VudXNlZF9jYWNo
ZV9hdXRvX2ZsdXNoKHRpbGVVbnVzZWRDYWNoZSk7CiAKICAgICBpdGVtLT50aWxlID0gMDsKIH0K
QEAgLTMwNCwxNCArMzA0LDE0IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9wcmVfcmVuZGVyX3JlcXVlc3RfY2xlYXIoRXdrX1RpbGVkX0JhY2tpbmdfCiAgICAgfQogfQog
Ci0vKiBhc3N1bWVzIHByaXYtPnByb2Nlc3MucHJlX2NiIHdhcyBjYWxsZWQgaWYgcmVxdWlyZWQh
ICovCisvKiBhc3N1bWVzIHByaXYtPnByb2Nlc3MucHJlQ2FsbGJhY2sgd2FzIGNhbGxlZCBpZiBy
ZXF1aXJlZCEgKi8KIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVu
ZGVyX3JlcXVlc3RfcHJvY2Vzc19zaW5nbGUoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSog
cHJpdikKIHsKICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9QcmVfUmVuZGVyX1JlcXVlc3Qq
IHJlcXVlc3Q7CiAgICAgRWluYV9SZWN0YW5nbGUgYXJlYTsKICAgICBFd2tfVGlsZV9NYXRyaXgq
IHRpbGVNYXRyaXggPSBwcml2LT5tb2RlbC5tYXRyaXg7CiAgICAgRXdrX1RpbGUqIHRpbGU7Ci0g
ICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlZFVudXNlZENhY2hlOworICAgIEV3a19UaWxl
X1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlOwogICAgIHVuc2lnbmVkIGxvbmcgY29sdW1u
LCByb3c7CiAgICAgZmxvYXQgem9vbTsKICAgICBkb3VibGUgbGFzdF91c2VkID0gZWNvcmVfbG9v
cF90aW1lX2dldCgpOwpAQCAtMzQ4LDggKzM0OCw4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfcHJvY2Vzc19zaW5nbGUoRXdrX1RpbGVk
CiAKIGVuZDoKICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0
X2RlbChwcml2LCByZXF1ZXN0KTsKLSAgICB0aWxlZFVudXNlZENhY2hlID0gZXdrX3RpbGVfbWF0
cml4X3VudXNlZF9jYWNoZV9nZXQocHJpdi0+bW9kZWwubWF0cml4KTsKLSAgICBld2tfdGlsZV91
bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0aWxlZFVudXNlZENhY2hlKTsKKyAgICB0aWxlVW51c2Vk
Q2FjaGUgPSBld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRy
aXgpOworICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGVVbnVzZWRDYWNo
ZSk7CiB9CiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1f
cHJvY2Vzc19pZGxlcl9jYih2b2lkKiBkYXRhKQpAQCAtNDMwLDE4ICs0MzAsMTggQEAgc3RhdGlj
IGlubGluZSBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fZmlsbChFd2tf
VGlsZWRfQmFja2luZ19TdG8KIAogICAgICAgICBpZiAoaXRlbS0+dGlsZSkgewogICAgICAgICAg
ICAgRXdrX1RpbGUqIG9sZCA9IGl0ZW0tPnRpbGU7Ci0gICAgICAgICAgICBpZiAob2xkLT5yb3cg
IT0gY3VycmVudFJvdyB8fCBvbGQtPmNvbCAhPSBjdXJyZW50Q29sdW1uIHx8IG9sZC0+em9vbSAh
PSB6b29tKQorICAgICAgICAgICAgaWYgKG9sZC0+cm93ICE9IGN1cnJlbnRSb3cgfHwgb2xkLT5j
b2x1bW4gIT0gY3VycmVudENvbHVtbiB8fCBvbGQtPnpvb20gIT0gem9vbSkKICAgICAgICAgICAg
ICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV9kaXNzb2NpYXRlKHByaXYsIGl0ZW0s
IGxhc3RVc2VkKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG9sZC0+cm93ID09IGN1cnJlbnRSb3cg
JiYgb2xkLT5jb2wgPT0gY3VycmVudENvbHVtbiAmJiBvbGQtPnpvb20gPT0gem9vbSkKKyAgICAg
ICAgICAgIGVsc2UgaWYgKG9sZC0+cm93ID09IGN1cnJlbnRSb3cgJiYgb2xkLT5jb2x1bW4gPT0g
Y3VycmVudENvbHVtbiAmJiBvbGQtPnpvb20gPT0gem9vbSkKICAgICAgICAgICAgICAgICBnb3Rv
IGVuZDsKICAgICAgICAgfQogCiAgICAgICAgIHRpbGUgPSBld2tfdGlsZV9tYXRyaXhfdGlsZV9l
eGFjdF9nZXQocHJpdi0+bW9kZWwubWF0cml4LCBjdXJyZW50Q29sdW1uLCBjdXJyZW50Um93LCB6
b29tKTsKIAogICAgICAgICBpZiAoIXRpbGUpIHsKLSAgICAgICAgICAgIC8qIE5PVEU6IGl0IG5l
dmVyIHJldHVybnMgMCBpZiBpdC0+dGlsZSB3YXMgc2V0ISAqLworICAgICAgICAgICAgLyogTk9U
RTogaXQgbmV2ZXIgcmV0dXJucyAwIGlmIGl0ZW0tPnRpbGUgd2FzIHNldCEgKi8KICAgICAgICAg
ICAgIGlmIChpdGVtLT50aWxlKSB7Ci0gICAgICAgICAgICAgICAgQ1JJVElDQUwoIml0LT50aWxl
PSVwLCBidXQgaXQgc2hvdWxkIGJlIDAhIiwgaXRlbS0+dGlsZSk7CisgICAgICAgICAgICAgICAg
Q1JJVElDQUwoIml0ZW0tPnRpbGU9JXAsIGJ1dCBpdCBzaG91bGQgYmUgMCEiLCBpdGVtLT50aWxl
KTsKICAgICAgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV9kaXNzb2Np
YXRlKHByaXYsIGl0ZW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBsYXN0VXNlZCk7CiAgICAgICAgICAgICB9CkBAIC00ODYsNyArNDg2
LDcgQEAgc3RhdGljIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9pdGVtX2FkZChFd2tfVGlsZWQKIAogICAgIGl0ZW0tPnRpbGUgPSAwOwogCi0g
ICAgaXRlbS0+c21vb3RoX3NjYWxlID0gcHJpdi0+dmlldy50aWxlLnpvb21XZWFrU21vb3RoU2Nh
bGU7CisgICAgaXRlbS0+c21vb3RoU2NhbGUgPSBwcml2LT52aWV3LnRpbGUuem9vbVdlYWtTbW9v
dGhTY2FsZTsKICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0ZW0sIHgs
IHkpOwogICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Jlc2l6ZShpdGVtLCB0aWxl
V2lkdGgsIHRpbGVIZWlnaHQpOwogICAgIGlmICghX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0
ZW1fZmlsbChwcml2LCBpdGVtLCBjb2x1bW4sIHJvdykpIHsKQEAgLTUwOSw3ICs1MDksNyBAQCBz
dGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9kZWwoRXdrX1RpbGVkX0Jh
Y2tpbmdfU3RvcmVfRGF0YSogcHJpdgogCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfaXRlbV9zbW9vdGhfc2NhbGVfc2V0KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0q
IGl0ZW0sIEVpbmFfQm9vbCBzbW9vdGhTY2FsZSkKIHsKLSAgICBpZiAoaXRlbS0+c21vb3RoX3Nj
YWxlID09IHNtb290aFNjYWxlKQorICAgIGlmIChpdGVtLT5zbW9vdGhTY2FsZSA9PSBzbW9vdGhT
Y2FsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGl0ZW0tPnRpbGUpCkBAIC01NDgsMTYg
KzU0OCwxNiBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3
X2NvbHNfZW5kX2FkZChFd2tfVGlsZWRfQmFja2luZ19TdAogICAgIHVuc2lnbmVkIGludCBpLCBy
b3cgPSByb3dMaXN0IC0gcHJpdi0+dmlldy5pdGVtczsKIAogICAgIGZvciAoaSA9IDA7IGkgPCBj
b3VudDsgaSsrLCBiYXNlQ29sdW1uKyspIHsKLSAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3Rv
cmVfSXRlbSogaXQ7CisgICAgICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0ZW07
CiAKLSAgICAgICAgaXQgPSBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9hZGQocHJpdiwg
YmFzZUNvbHVtbiwgcm93KTsKLSAgICAgICAgaWYgKCFpdCkgeworICAgICAgICBpdGVtID0gX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fYWRkKHByaXYsIGJhc2VDb2x1bW4sIHJvdyk7Cisg
ICAgICAgIGlmICghaXRlbSkgewogICAgICAgICAgICAgQ1JJVElDQUwoImZhaWxlZCB0byBhZGQg
Y29sdW1uICV1IG9mICV1IGluIHJvdyAldS4iLCBpLCBjb3VudCwgcm93KTsKICAgICAgICAgICAg
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X2NvbHNfZW5kX2RlbChwcml2LCByb3dMaXN0
LCBpKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCi0gICAgICAgICpy
b3dMaXN0ID0gZWluYV9pbmxpc3RfYXBwZW5kKCpyb3dMaXN0LCBFSU5BX0lOTElTVF9HRVQoaXQp
KTsKKyAgICAgICAgKnJvd0xpc3QgPSBlaW5hX2lubGlzdF9hcHBlbmQoKnJvd0xpc3QsIEVJTkFf
SU5MSVNUX0dFVChpdGVtKSk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNTkxLDcg
KzU5MSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Jvd3Nf
YWxsX2RlbChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9ECiAKICAgICBmcmVlKHByaXYtPnZpZXcu
aXRlbXMpOwogICAgIHByaXYtPnZpZXcuaXRlbXMgPSAwOwotICAgIHByaXYtPnZpZXcuY29scyA9
IDA7CisgICAgcHJpdi0+dmlldy5jb2x1bW5zID0gMDsKICAgICBwcml2LT52aWV3LnJvd3MgPSAw
OwogfQogCkBAIC02MDAsNyArNjAwLDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3JlbmRlcih2b2lkKiBkYXRhLCBFd2tfVGlsZSogdGlsZSwgY29uc3QgRWkKICAgICBF
d2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2ID0gc3RhdGljX2Nhc3Q8RXdrX1RpbGVk
X0JhY2tpbmdfU3RvcmVfRGF0YSo+KGRhdGEpOwogCiAgICAgSU5GKCJUT0RPICVwICh2aXNpYmxl
PyAlZCkgWyVsdSwlbHVdICVkLCVkICsgJWR4JWQiLAotICAgICAgICB0aWxlLCB0aWxlLT52aXNp
YmxlLCB0aWxlLT5jb2wsIHRpbGUtPnJvdywgYXJlYS0+eCwgYXJlYS0+eSwgYXJlYS0+dywgYXJl
YS0+aCk7CisgICAgICAgIHRpbGUsIHRpbGUtPnZpc2libGUsIHRpbGUtPmNvbHVtbiwgdGlsZS0+
cm93LCBhcmVhLT54LCBhcmVhLT55LCBhcmVhLT53LCBhcmVhLT5oKTsKIAogICAgIGlmICghdGls
ZS0+dmlzaWJsZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjU3LDcgKzY1Nyw3IEBAIHN0YXRpYyB2
b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9tZW1fZGJnKEV3a19UaWxlZF9CYWNraW5nX1N0
b3JlX0RhdGEqIHByaXYpCiAgICAgcnVuKys7CiAKICAgICBwcmludGYoIlxuLS0tIEJFR0lOIERF
QlVHIFRJTEVEIEJBQ0tJTkcgU1RPUkUgTUVNT1JZIFslZF0gLS1cbiIKLSAgICAgICAgICAgInQ9
JTAuMmYsIG9iaj0lcCwgcHJpdj0lcCwgdmlldy5pdGVtcz0lcCwgbWF0cml4PSVwXG4iLAorICAg
ICAgICAgICAidGlsZT0lMC4yZiwgb2JqPSVwLCBwcml2PSVwLCB2aWV3Lml0ZW1zPSVwLCBtYXRy
aXg9JXBcbiIsCiAgICAgICAgICAgIHJ1biwgZWNvcmVfbG9vcF90aW1lX2dldCgpLAogICAgICAg
ICAgICBwcml2LT5zZWxmLCBwcml2LCBwcml2LT52aWV3Lml0ZW1zLCBwcml2LT5tb2RlbC5tYXRy
aXgpOwogCkBAIC02NjksMTMgKzY2OSwxMyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfbWVtX2RiZyhFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2KQogCiBz
dGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zaWdfdXNyKHZvaWQqIGRh
dGEsIGludCB0eXBlLCB2b2lkKiBldmVudCkKIHsKLSAgICBFY29yZV9FdmVudF9TaWduYWxfVXNl
ciogc2lnID0gKEVjb3JlX0V2ZW50X1NpZ25hbF9Vc2VyKilldmVudDsKKyAgICBFY29yZV9FdmVu
dF9TaWduYWxfVXNlciogc2lnbmFsVXNlciA9IChFY29yZV9FdmVudF9TaWduYWxfVXNlciopZXZl
bnQ7CiAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiA9IChFd2tfVGlsZWRf
QmFja2luZ19TdG9yZV9EYXRhKilkYXRhOwogCi0gICAgaWYgKHNpZy0+bnVtYmVyID09IDIpIHsK
LSAgICAgICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxpZVVudXNlZENhY2hlOwotICAgICAg
ICB0aWxpZVVudXNlZENhY2hlID0gZXdrX3RpbGVfbWF0cml4X3VudXNlZF9jYWNoZV9nZXQocHJp
di0+bW9kZWwubWF0cml4KTsKLSAgICAgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2F1dG9fZmx1
c2godGlsaWVVbnVzZWRDYWNoZSk7CisgICAgaWYgKHNpZ25hbFVzZXItPm51bWJlciA9PSAyKSB7
CisgICAgICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlOworICAgICAg
ICB0aWxlVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2
LT5tb2RlbC5tYXRyaXgpOworICAgICAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVz
aCh0aWxlVW51c2VkQ2FjaGUpOwogICAgIH0KIAogICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV92aWV3X2RiZyhwcml2KTsKQEAgLTY5OCw4ICs2OTgsOCBAQCBzdGF0aWMgdm9pZCBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRkKEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUp
CiAgICAgcHJpdi0+dmlldy50aWxlLnpvb20gPSAxLjA7CiAgICAgcHJpdi0+dmlldy50aWxlLndp
ZHRoID0gZGVmYXVsdFRpbGVXaWR0aDsKICAgICBwcml2LT52aWV3LnRpbGUuaGVpZ2h0ID0gZGVm
YXVsdFRpbGVIZWlndGg7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggPSAwOwotICAgIHBy
aXYtPnZpZXcub2Zmc2V0LmN1ci55ID0gMDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
LnggPSAwOworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSA9IDA7CiAgICAgcHJpdi0+
dmlldy5vZmZzZXQub2xkLnggPSAwOwogICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0gMDsK
ICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSAwOwpAQCAtNzM0LDcgKzczNCw3IEBAIHN0
YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9hZGQoRXZhc19PYmplY3Qq
IGV3a0JhY2tpbmdTdG9yZSkKICAgICBldmFzX29iamVjdF9jbGlwX3NldChwcml2LT5jb250ZW50
c0NsaXBwZXIsIHByaXYtPmJhc2UuY2xpcHBlcik7CiAKICNpZmRlZiBERUJVR19NRU1fTEVBS1MK
LSAgICBwcml2LT5zaWdfdXNyID0gZWNvcmVfZXZlbnRfaGFuZGxlcl9hZGQKKyAgICBwcml2LT5z
aWduYWxVc2VyID0gZWNvcmVfZXZlbnRfaGFuZGxlcl9hZGQKICAgICAgICAgICAgICAgICAgICAg
ICAgIChFQ09SRV9FVkVOVF9TSUdOQUxfVVNFUiwgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Np
Z191c3IsIHByaXYpOwogI2VuZGlmCiB9CkBAIC04MjksMTMgKzgyOSwxMyBAQCBzdGF0aWMgdm9p
ZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVjYWxjX3JlbmRlcmVycyhFd2tfVGlsZWRfQmFj
a2luZ19TdG9yZV9EYQogICAgIGNvbHVtbnMgPSAxICsgc3RhdGljX2Nhc3Q8aW50PihjZWlsKHdp
ZHRoIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVXaWR0aCkpKTsKICAgICByb3dzID0gMSArIHN0
YXRpY19jYXN0PGludD4oY2VpbChoZWlnaHQgLyBzdGF0aWNfY2FzdDxmbG9hdD4odGlsZUhlaWdo
dCkpKTsKIAotICAgIElORigiZXdrQmFja2luZ1N0b3JlJXAgbmV3IGdyaWQgc2l6ZSBjb2xzOiAl
bGQsIHJvd3M6ICVsZCwgd2FzICVsZCwgJWxkIiwKLSAgICAgICAgcHJpdi0+c2VsZiwgY29sdW1u
cywgcm93cywgcHJpdi0+dmlldy5jb2xzLCBwcml2LT52aWV3LnJvd3MpOworICAgIElORigiZXdr
QmFja2luZ1N0b3JlJXAgbmV3IGdyaWQgc2l6ZSBjb2x1bW5zOiAlbGQsIHJvd3M6ICVsZCwgd2Fz
ICVsZCwgJWxkIiwKKyAgICAgICAgcHJpdi0+c2VsZiwgY29sdW1ucywgcm93cywgcHJpdi0+dmll
dy5jb2x1bW5zLCBwcml2LT52aWV3LnJvd3MpOwogCi0gICAgaWYgKHByaXYtPnZpZXcuY29scyA9
PSBjb2x1bW5zICYmIHByaXYtPnZpZXcucm93cyA9PSByb3dzKQorICAgIGlmIChwcml2LT52aWV3
LmNvbHVtbnMgPT0gY29sdW1ucyAmJiBwcml2LT52aWV3LnJvd3MgPT0gcm93cykKICAgICAgICAg
cmV0dXJuOwogCi0gICAgb2xkQ29scyA9IHByaXYtPnZpZXcuY29sczsKKyAgICBvbGRDb2xzID0g
cHJpdi0+dmlldy5jb2x1bW5zOwogICAgIG9sZFJvd3MgPSBwcml2LT52aWV3LnJvd3M7CiAKICAg
ICBpZiAocm93cyA8IG9sZFJvd3MpIHsKQEAgLTg1MSwxNCArODUxLDE0IEBAIHN0YXRpYyB2b2lk
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9yZWNhbGNfcmVuZGVyZXJzKEV3a19UaWxlZF9CYWNr
aW5nX1N0b3JlX0RhCiAKICAgICBwcml2LT52aWV3Lml0ZW1zID0gc3RhdGljX2Nhc3Q8RWluYV9J
bmxpc3QqKj4obmV3SXRlbXMpOwogICAgIHByaXYtPnZpZXcucm93cyA9IHJvd3M7Ci0gICAgcHJp
di0+dmlldy5jb2xzID0gY29sdW1uczsKKyAgICBwcml2LT52aWV3LmNvbHVtbnMgPSBjb2x1bW5z
OwogICAgIGlmIChyb3dzID4gb2xkUm93cykgewogICAgICAgICBFaW5hX0lubGlzdCoqIHN0YXJ0
ID0gcHJpdi0+dmlldy5pdGVtcyArIG9sZFJvd3M7CiAgICAgICAgIEVpbmFfSW5saXN0KiogZW5k
ID0gcHJpdi0+dmlldy5pdGVtcyArIHJvd3M7CiAgICAgICAgIGZvciAoOyBzdGFydCA8IGVuZDsg
c3RhcnQrKykgewogICAgICAgICAgICAgKnN0YXJ0ID0gMDsKLSAgICAgICAgICAgIEVpbmFfQm9v
bCByID0gX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfY29sc19lbmRfYWRkKHByaXYsIHN0
YXJ0LCAwLCBjb2x1bW5zKTsKLSAgICAgICAgICAgIGlmICghcikgeworICAgICAgICAgICAgRWlu
YV9Cb29sIHJlc3VsdCA9IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X2NvbHNfZW5kX2Fk
ZChwcml2LCBzdGFydCwgMCwgY29sdW1ucyk7CisgICAgICAgICAgICBpZiAoIXJlc3VsdCkgewog
ICAgICAgICAgICAgICAgIENSSVRJQ0FMKCJmYWlsZWQgdG8gYWxsb2NhdGUgJWxkIGNvbHVtbnMi
LCBjb2x1bW5zKTsKICAgICAgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmll
d19yb3dzX3JhbmdlX2RlbChwcml2LCBwcml2LT52aWV3Lml0ZW1zICsgb2xkUm93cywgc3RhcnQp
OwogICAgICAgICAgICAgICAgIHByaXYtPnZpZXcucm93cyA9IG9sZFJvd3M7CkBAIC05MTQsMTEg
KzkxNCwxMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Zp
ZXdfZGJnKGNvbnN0IEV3a19UaWxlZF9CYWNraW5nX1N0bwogewogICAgIEVpbmFfSW5saXN0Kiog
c3RhcnQsICoqZW5kOwogICAgIHByaW50ZigidGlsZXM9JTJsZCwlMmxkICBtb2RlbD0lMmxkLCUy
bGQgWyVkeCVkXSBiYXNlPSUrM2xkLCUrNGxkIG9mZnNldD0lKzRkLCUrNGQgb2xkPSUrNGQsJSs0
ZCBiYXNlPSUrM2QsJSszZFxuIiwKLSAgICAgICAgICAgcHJpdi0+dmlldy5jb2xzLCBwcml2LT52
aWV3LnJvd3MsCisgICAgICAgICAgIHByaXYtPnZpZXcuY29sdW1ucywgcHJpdi0+dmlldy5yb3dz
LAogICAgICAgICAgICBwcml2LT5tb2RlbC5jdXJyZW50LmNvbHVtbnMsIHByaXYtPm1vZGVsLmN1
cnJlbnQucm93cywKICAgICAgICAgICAgcHJpdi0+bW9kZWwud2lkdGgsIHByaXYtPm1vZGVsLmhl
aWdodCwKICAgICAgICAgICAgcHJpdi0+bW9kZWwuYmFzZS5jb2x1bW4sIHByaXYtPm1vZGVsLmJh
c2Uucm93LAotICAgICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCwgcHJpdi0+dmlldy5v
ZmZzZXQuY3VyLnksCisgICAgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCwgcHJp
di0+dmlldy5vZmZzZXQuY3VycmVudC55LAogICAgICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5v
bGQueCwgcHJpdi0+dmlldy5vZmZzZXQub2xkLnksCiAgICAgICAgICAgIHByaXYtPnZpZXcub2Zm
c2V0LmJhc2UueCwgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS55KTsKIApAQCAtOTMzLDcgKzkzMyw3
IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19kYmco
Y29uc3QgRXdrX1RpbGVkX0JhY2tpbmdfU3RvCiAgICAgICAgICAgICBpZiAoIWl0ZW0tPnRpbGUp
CiAgICAgICAgICAgICAgICAgcHJpbnRmKCIgICAgICAgICAgICA7Iik7CiAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgcHJpbnRmKCIlOHAgJWx1LCVsdTsiLCBpdGVtLT50aWxlLCBp
dGVtLT50aWxlLT5jb2wsIGl0ZW0tPnRpbGUtPnJvdyk7CisgICAgICAgICAgICAgICAgcHJpbnRm
KCIlOHAgJWx1LCVsdTsiLCBpdGVtLT50aWxlLCBpdGVtLT50aWxlLT5jb2x1bW4sIGl0ZW0tPnRp
bGUtPnJvdyk7CiAgICAgICAgIH0KICAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgIH0KQEAgLTEw
NDEsMjIgKzEwNDEsMjIgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Zp
ZXdfd3JhcF9kb3duKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKICAqIEBpbnRlcm5hbAog
ICogTW92ZSBsZWZ0LW1vc3QgKGZpcnN0KSBjb2x1bW4gcmlnaHQgYXMgbGFzdCAocmlnaHQtbW9z
dCkuCiAgKgotICogVGhlIGZpbmFsIHJlc3VsdCBpcyB2aXN1YWxseSB0aGUgc2FtZSwgYnV0IGxv
Z2ljYWxseSB0aGUgZmlyc3QgY29sIHRoYXQKKyAqIFRoZSBmaW5hbCByZXN1bHQgaXMgdmlzdWFs
bHkgdGhlIHNhbWUsIGJ1dCBsb2dpY2FsbHkgdGhlIGZpcnN0IGNvbHVtbiB0aGF0CiAgKiB3ZW50
IG91dCBvZiBzY3JlZW4gaXMgbm93IGF0IGxhc3QgYW5kIGZpbGxlZCB3aXRoIG5ldyBtb2RlbCBp
dGVtcy4KICAqCiAgKiBUaGlzIGlzIHdvcnRoIGp1c3Qgd2hlbiBAYSBjb3VudCBpcyBzbWFsbGVy
IHRoYW4gQGMKLSAqIHByaXYtPnZpZXcuY29scywgYWZ0ZXIgdGhhdCBvbmUgaXMgcmVmaWxsaW5n
IHRoZSB3aG9sZSBtYXRyaXggc28gaXQKKyAqIHByaXYtPnZpZXcuY29sdW1ucywgYWZ0ZXIgdGhh
dCBvbmUgaXMgcmVmaWxsaW5nIHRoZSB3aG9sZSBtYXRyaXggc28gaXQKICAqIGlzIGJldHRlciB0
byB0cmlnZ2VyIGZ1bGwgcmVmaWxsLgogICoKICAqIEBwYXJhbSBjb3VudCB0aGUgbnVtYmVyIG9m
IHRpbWVzIHRvIHJlcGVhdCB0aGUgcHJvY2Vzcy4KICAqLwogc3RhdGljIHZvaWQgX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF9sZWZ0KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0Rh
dGEqIHByaXYsIEV2YXNfQ29vcmQgeCwgRXZhc19Db29yZCB5LCB1bnNpZ25lZCBpbnQgY291bnQp
CiB7Ci0gICAgdW5zaWduZWQgaW50IHJvdywgbGFzdENvbHVtbiA9IHByaXYtPnZpZXcuY29scyAt
IDE7CisgICAgdW5zaWduZWQgaW50IHJvdywgbGFzdENvbHVtbiA9IHByaXYtPnZpZXcuY29sdW1u
cyAtIDE7CiAgICAgRXZhc19Db29yZCB0aWxlV2lkdGggPSBwcml2LT52aWV3LnRpbGUud2lkdGg7
CiAgICAgRXZhc19Db29yZCB0aWxlSGVpZ2h0ID0gcHJpdi0+dmlldy50aWxlLmhlaWdodDsKICAg
ICBFdmFzX0Nvb3JkIG9mZnNldFggPSBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggKyBjb3VudCAq
IHRpbGVXaWR0aDsKLSAgICBFdmFzX0Nvb3JkIG95ID0geSArIHByaXYtPnZpZXcub2Zmc2V0LmJh
c2UueTsKKyAgICBFdmFzX0Nvb3JkIG9mZnNldFkgPSB5ICsgcHJpdi0+dmlldy5vZmZzZXQuYmFz
ZS55OwogICAgIEVpbmFfSW5saXN0KiogaXRlcmF0b3I7CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVy
YXRvckVuZDsKICAgICB1bnNpZ25lZCBpbnQgYmFzZUNvbHVtbiA9IGxhc3RDb2x1bW4gLSBjb3Vu
dCArIDE7CkBAIC0xMDc3LDEwICsxMDc3LDEwIEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV92aWV3X3dyYXBfbGVmdChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAg
ICAgICAgICAgICBpdCA9IEVJTkFfSU5MSVNUX0NPTlRBSU5FUl9HRVQoKml0ZXJhdG9yLCBFd2tf
VGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKTsKICAgICAgICAgICAgICppdGVyYXRvciA9IGVpbmFf
aW5saXN0X2RlbW90ZSgqaXRlcmF0b3IsICppdGVyYXRvcik7CiAKLSAgICAgICAgICAgIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXQsIHRpbGVQb3NpdGlvblgsIG95KTsKKyAg
ICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXQsIHRpbGVQb3Np
dGlvblgsIG9mZnNldFkpOwogICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0
ZW1fZmlsbChwcml2LCBpdCwgY29sdW1uLCByb3cpOwogICAgICAgICB9Ci0gICAgICAgIG95ICs9
IHRpbGVIZWlnaHQ7CisgICAgICAgIG9mZnNldFkgKz0gdGlsZUhlaWdodDsKICAgICB9CiAKICAg
ICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSBvZmZzZXRYOwpAQCAtMTA5MCwxMSArMTA5MCwx
MSBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld193cmFwX2xlZnQo
RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YQogICogQGludGVybmFsCiAgKiBNb3ZlIHJpZ2h0
LW1vc3QgKGxhc3QpIGNvbHVtbiBsZWZ0IGFzIGZpcnN0IChsZWZ0LW1vc3QpLgogICoKLSAqIFRo
ZSBmaW5hbCByZXN1bHQgaXMgdmlzdWFsbHkgdGhlIHNhbWUsIGJ1dCBsb2dpY2FsbHkgdGhlIGxh
c3QgY29sIHRoYXQKKyAqIFRoZSBmaW5hbCByZXN1bHQgaXMgdmlzdWFsbHkgdGhlIHNhbWUsIGJ1
dCBsb2dpY2FsbHkgdGhlIGxhc3QgY29sdW1uIHRoYXQKICAqIHdlbnQgb3V0IG9mIHNjcmVlbiBp
cyBub3cgYXQgZmlyc3QgYW5kIGZpbGxlZCB3aXRoIG5ldyBtb2RlbCBpdGVtcy4KICAqCiAgKiBU
aGlzIGlzIHdvcnRoIGp1c3Qgd2hlbiBAYSBjb3VudCBpcyBzbWFsbGVyIHRoYW4gQGMKLSAqIHBy
aXYtPnZpZXcuY29scywgYWZ0ZXIgdGhhdCBvbmUgaXMgcmVmaWxsaW5nIHRoZSB3aG9sZSBtYXRy
aXggc28gaXQKKyAqIHByaXYtPnZpZXcuY29sdW1ucywgYWZ0ZXIgdGhhdCBvbmUgaXMgcmVmaWxs
aW5nIHRoZSB3aG9sZSBtYXRyaXggc28gaXQKICAqIGlzIGJldHRlciB0byB0cmlnZ2VyIGZ1bGwg
cmVmaWxsLgogICoKICAqIEBwYXJhbSBjb3VudCB0aGUgbnVtYmVyIG9mIHRpbWVzIHRvIHJlcGVh
dCB0aGUgcHJvY2Vzcy4KQEAgLTExMzgsNyArMTEzOCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV92aWV3X3JlZmlsbChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRh
KiBwCiB7CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRvciwgKippdGVyYXRvckVuZDsKICAgICBF
dmFzX0Nvb3JkIGJhc2VUaWxlUG9zaXRpb25YLCB0aWxlUG9zaXRpb25ZLCB0aWxlV2lkdGgsIHRp
bGVIZWlnaHQ7Ci0gICAgdW5zaWduZWQgaW50IHI7CisgICAgdW5zaWduZWQgaW50IHJvdzsKIAog
ICAgIGV2YXNfb2JqZWN0X21vdmUocHJpdi0+YmFzZS5jbGlwcGVyLCB4LCB5KTsKIApAQCAtMTE1
MCwxOSArMTE1MCwxOSBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmll
d19yZWZpbGwoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcAogCiAgICAgaXRlcmF0b3Ig
PSBwcml2LT52aWV3Lml0ZW1zOwogICAgIGl0ZXJhdG9yRW5kID0gaXRlcmF0b3IgKyBwcml2LT52
aWV3LnJvd3M7Ci0gICAgciA9IDA7CisgICAgcm93ID0gMDsKIAogICAgIHByaXYtPm1vZGVsLmJh
c2UuY29sdW1uIC09IHN0ZXBYOwogICAgIHByaXYtPm1vZGVsLmJhc2Uucm93IC09IHN0ZXBZOwog
Ci0gICAgZm9yICg7IGl0ZXJhdG9yIDwgaXRlcmF0b3JFbmQ7IGl0ZXJhdG9yKyssIHIrKykgewor
ICAgIGZvciAoOyBpdGVyYXRvciA8IGl0ZXJhdG9yRW5kOyBpdGVyYXRvcisrLCByb3crKykgewog
ICAgICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVtOwogICAgICAgICBFdmFz
X0Nvb3JkIG5ld1RpbGVQb3NpdGlvblggPSBiYXNlVGlsZVBvc2l0aW9uWDsKLSAgICAgICAgdW5z
aWduZWQgaW50IGNvdW50ID0gMDsKKyAgICAgICAgdW5zaWduZWQgaW50IGNvbHVtbiA9IDA7CiAg
ICAgICAgIEVJTkFfSU5MSVNUX0ZPUkVBQ0goKml0ZXJhdG9yLCBpdGVtKSB7Ci0gICAgICAgICAg
ICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKHByaXYsIGl0ZW0sIGNvdW50LCBy
KTsKKyAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2ZpbGwocHJpdiwg
aXRlbSwgY29sdW1uLCByb3cpOwogICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X2l0ZW1fbW92ZShpdGVtLCBuZXdUaWxlUG9zaXRpb25YLCB0aWxlUG9zaXRpb25ZKTsKLSAgICAg
ICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICBjb2x1bW4rKzsKICAgICAgICAgICAgIG5ld1Rp
bGVQb3NpdGlvblggKz0gdGlsZVdpZHRoOwogICAgICAgICB9CiAgICAgICAgIHRpbGVQb3NpdGlv
blkgKz0gdGlsZUhlaWdodDsKQEAgLTExODUsMTAgKzExODUsMTAgQEAgc3RhdGljIHZvaWQgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfcG9zX2FwcGx5KEV3a19UaWxlZF9CYWNraW5nX1N0
b3JlX0RhdGEKICAgICBpdGVyYXRvciA9IHByaXYtPnZpZXcuaXRlbXM7CiAgICAgaXRlcmF0b3JF
bmQgPSBpdGVyYXRvciArIHByaXYtPnZpZXcucm93czsKICAgICBmb3IgKDsgaXRlcmF0b3IgPCBp
dGVyYXRvckVuZDsgaXRlcmF0b3IrKykgewotICAgICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9JdGVtKiBpdDsKKyAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbTsK
ICAgICAgICAgRXZhc19Db29yZCBveCA9IGJhc2VUaWxlUG9zaXRpb25YOwotICAgICAgICBFSU5B
X0lOTElTVF9GT1JFQUNIKCppdGVyYXRvciwgaXQpIHsKLSAgICAgICAgICAgIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXQsIG94LCBiYXNlVGlsZVBvc2l0aW9uWSk7CisgICAg
ICAgIEVJTkFfSU5MSVNUX0ZPUkVBQ0goKml0ZXJhdG9yLCBpdGVtKSB7CisgICAgICAgICAgICBf
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0ZW0sIG94LCBiYXNlVGlsZVBvc2l0
aW9uWSk7CiAgICAgICAgICAgICBveCArPSB0aWxlV2lkdGg7CiAgICAgICAgIH0KICAgICAgICAg
YmFzZVRpbGVQb3NpdGlvblkgKz0gdGlsZUhlaWdodDsKQEAgLTExOTcsMjggKzExOTcsMjggQEAg
c3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfcG9zX2FwcGx5KEV3a19U
aWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKIAogc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9vZmZzZXRfZm9yY2UoRXdrX1RpbGVkX0JhY2tpbmdfU3Rv
cmVfRGF0YSogcHJpdikKIHsKLSAgICBFdmFzX0Nvb3JkIGRlbHRhWCA9IHByaXYtPnZpZXcub2Zm
c2V0LmN1ci54IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLng7Ci0gICAgRXZhc19Db29yZCBkZWx0
YVkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueSAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55Owor
ICAgIEV2YXNfQ29vcmQgZGVsdGFYID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54IC0gcHJp
di0+dmlldy5vZmZzZXQub2xkLng7CisgICAgRXZhc19Db29yZCBkZWx0YVkgPSBwcml2LT52aWV3
Lm9mZnNldC5jdXJyZW50LnkgLSBwcml2LT52aWV3Lm9mZnNldC5vbGQueTsKICAgICBFdmFzX0Nv
b3JkIHRpbGVXaWR0aCwgdGlsZUhlaWdodDsKICAgICBpbnQgc3RlcFksIHN0ZXBYOwogCiAgICAg
SU5GKCJld2tCYWNraW5nU3RvcmUlcCwgb2Zmc2V0OiAlKzRkLCAlKzRkICglKzRkLCAlKzRkKSIs
Ci0gICAgICAgIHByaXYtPnNlbGYsIGRlbHRhWCwgZGVsdGFZLCBwcml2LT52aWV3Lm9mZnNldC5j
dXIueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkpOworICAgICAgICBwcml2LT5zZWxmLCBkZWx0
YVgsIGRlbHRhWSwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54LCBwcml2LT52aWV3Lm9mZnNl
dC5jdXJyZW50LnkpOwogCiAgICAgdGlsZVdpZHRoID0gcHJpdi0+dmlldy50aWxlLndpZHRoOwog
ICAgIHRpbGVIZWlnaHQgPSBwcml2LT52aWV3LnRpbGUuaGVpZ2h0OwogCi0gICAgbG9uZyBuZXdD
b2x1bW4gPSAtcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggLyB0aWxlV2lkdGg7CisgICAgbG9uZyBu
ZXdDb2x1bW4gPSAtcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54IC8gdGlsZVdpZHRoOwogICAg
IHN0ZXBYID0gcHJpdi0+bW9kZWwuYmFzZS5jb2x1bW4gLSBuZXdDb2x1bW47Ci0gICAgbG9uZyBu
ZXdSb3cgPSAtcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgLyB0aWxlSGVpZ2h0OworICAgIGxvbmcg
bmV3Um93ID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSAvIHRpbGVIZWlnaHQ7CiAgICAg
c3RlcFkgPSBwcml2LT5tb2RlbC5iYXNlLnJvdyAtIG5ld1JvdzsKIAotICAgIHByaXYtPnZpZXcu
b2Zmc2V0Lm9sZC54ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLng7Ci0gICAgcHJpdi0+dmlldy5v
ZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueTsKKyAgICBwcml2LT52aWV3Lm9m
ZnNldC5vbGQueCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueDsKKyAgICBwcml2LT52aWV3
Lm9mZnNldC5vbGQueSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueTsKICAgICBldmFzX29i
amVjdF9tb3ZlKAogICAgICAgICBwcml2LT5jb250ZW50c0NsaXBwZXIsCi0gICAgICAgIHByaXYt
PnZpZXcub2Zmc2V0LmN1ci54ICsgcHJpdi0+dmlldy54LAotICAgICAgICBwcml2LT52aWV3Lm9m
ZnNldC5jdXIueSArIHByaXYtPnZpZXcueSk7CisgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1
cnJlbnQueCArIHByaXYtPnZpZXcueCwKKyAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVu
dC55ICsgcHJpdi0+dmlldy55KTsKIAogICAgIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCArPSBk
ZWx0YVggLSBzdGVwWCAqIHRpbGVXaWR0aDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnkg
Kz0gZGVsdGFZIC0gc3RlcFkgKiB0aWxlSGVpZ2h0OwpAQCAtMTIyOSwxMyArMTIyOSwxMyBAQCBz
dGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfY2FsY3VsYXRlX29mZnNl
dF9mb3JjZShFd2tfVGlsZWRfQmFjawogCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfc21hcnRfY2FsY3VsYXRlX29mZnNldChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRh
KiBwcml2LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSkKIHsKLSAgICBFdmFzX0Nvb3JkIGRl
bHRhWCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLng7
Ci0gICAgRXZhc19Db29yZCBkZWx0YVkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueSAtIHByaXYt
PnZpZXcub2Zmc2V0Lm9sZC55OworICAgIEV2YXNfQ29vcmQgZGVsdGFYID0gcHJpdi0+dmlldy5v
ZmZzZXQuY3VycmVudC54IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLng7CisgICAgRXZhc19Db29y
ZCBkZWx0YVkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgLSBwcml2LT52aWV3Lm9mZnNl
dC5vbGQueTsKICAgICBFdmFzX0Nvb3JkIHRpbGVXaWR0aCwgdGlsZUhlaWdodDsKICAgICBpbnQg
c3RlcFksIHN0ZXBYOwogCiAgICAgSU5GKCJld2tCYWNraW5nU3RvcmUlcCwgb2Zmc2V0OiAlKzRk
LCAlKzRkICglKzRkLCAlKzRkKSIsCi0gICAgICAgIHByaXYtPnNlbGYsIGRlbHRhWCwgZGVsdGFZ
LCBwcml2LT52aWV3Lm9mZnNldC5jdXIueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkpOworICAg
ICAgICBwcml2LT5zZWxmLCBkZWx0YVgsIGRlbHRhWSwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVu
dC54LCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkpOwogCiAgICAgaWYgKCFkZWx0YVggJiYg
IWRlbHRhWSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTI0MywyMCArMTI0MywyMCBAQCBzdGF0aWMg
dm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfY2FsY3VsYXRlX29mZnNldChFd2tf
VGlsZWRfQmFja2luZ19TdAogICAgIHRpbGVXaWR0aCA9IHByaXYtPnZpZXcudGlsZS53aWR0aDsK
ICAgICB0aWxlSGVpZ2h0ID0gcHJpdi0+dmlldy50aWxlLmhlaWdodDsKIAotICAgIGxvbmcgbmV3
Q29sID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci54IC8gdGlsZVdpZHRoOworICAgIGxvbmcgbmV3
Q29sID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAvIHRpbGVXaWR0aDsKICAgICBzdGVw
WCA9IHByaXYtPm1vZGVsLmJhc2UuY29sdW1uIC0gbmV3Q29sOwotICAgIGxvbmcgbmV3Um93ID0g
LXByaXYtPnZpZXcub2Zmc2V0LmN1ci55IC8gdGlsZUhlaWdodDsKKyAgICBsb25nIG5ld1JvdyA9
IC1wcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgLyB0aWxlSGVpZ2h0OwogICAgIHN0ZXBZID0g
cHJpdi0+bW9kZWwuYmFzZS5yb3cgLSBuZXdSb3c7CiAKLSAgICBwcml2LT52aWV3Lm9mZnNldC5v
bGQueCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9s
ZC55ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7CisgICAgcHJpdi0+dmlldy5vZmZzZXQub2xk
LnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAgcHJpdi0+dmlldy5vZmZzZXQu
b2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAgICAgZXZhc19vYmplY3RfbW92
ZSgKICAgICAgICAgcHJpdi0+Y29udGVudHNDbGlwcGVyLAotICAgICAgICBwcml2LT52aWV3Lm9m
ZnNldC5jdXIueCArIHByaXYtPnZpZXcueCwKLSAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3Vy
LnkgKyBwcml2LT52aWV3LnkpOworICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lngg
KyBwcml2LT52aWV3LngsCisgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSArIHBy
aXYtPnZpZXcueSk7CiAKLSAgICBpZiAoKHN0ZXBYIDwgMCAmJiBzdGVwWCA8PSAtcHJpdi0+dmll
dy5jb2xzKQotICAgICAgICB8fCAoc3RlcFggPiAwICYmIHN0ZXBYID49IHByaXYtPnZpZXcuY29s
cykKKyAgICBpZiAoKHN0ZXBYIDwgMCAmJiBzdGVwWCA8PSAtcHJpdi0+dmlldy5jb2x1bW5zKQor
ICAgICAgICB8fCAoc3RlcFggPiAwICYmIHN0ZXBYID49IHByaXYtPnZpZXcuY29sdW1ucykKICAg
ICAgICAgfHwgKHN0ZXBZIDwgMCAmJiBzdGVwWSA8PSAtcHJpdi0+dmlldy5yb3dzKQogICAgICAg
ICB8fCAoc3RlcFkgPiAwICYmIHN0ZXBZID49IHByaXYtPnZpZXcucm93cykpIHsKIApAQCAtMTI5
MSw4ICsxMjkxLDggQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0
X2NhbGN1bGF0ZV9wb3MoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmUKICAgICBwcml2LT52aWV3Lnkg
PSB5OwogICAgIGV2YXNfb2JqZWN0X21vdmUoCiAgICAgICAgIHByaXYtPmNvbnRlbnRzQ2xpcHBl
ciwKLSAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggKyBwcml2LT52aWV3LngsCi0gICAg
ICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ICsgcHJpdi0+dmlldy55KTsKKyAgICAgICAgcHJp
di0+dmlldy5vZmZzZXQuY3VycmVudC54ICsgcHJpdi0+dmlldy54LAorICAgICAgICBwcml2LT52
aWV3Lm9mZnNldC5jdXJyZW50LnkgKyBwcml2LT52aWV3LnkpOwogfQogCiBzdGF0aWMgdm9pZCBf
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZmlsbF9yZW5kZXJlcnMoRXdrX1RpbGVkX0JhY2tpbmdf
U3RvcmVfRGF0YSogcHJpdikKQEAgLTEzODEsMTAgKzEzODEsMTAgQEAgc3RhdGljIHZvaWQgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZShFdmFzX09iamVjdCogZXdrQmFj
a2luZ1N0b3IKICAgICAgICAgfHwgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54IDw9IC0gcHJpdi0+
dmlldy50aWxlLndpZHRoCiAgICAgICAgIHx8IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueSA+IDAK
ICAgICAgICAgfHwgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS55IDw9IC0gcHJpdi0+dmlldy50aWxl
LmhlaWdodCkKLSAgICAgICAgRVJSKCJpbmNvcnJlY3QgYmFzZSBvZmZzZXQgJSs0ZCwlKzRkLCB0
aWxlPSVkeCVkLCBjdXI9JSs0ZCwlKzRkXG4iLAorICAgICAgICBFUlIoImluY29ycmVjdCBiYXNl
IG9mZnNldCAlKzRkLCUrNGQsIHRpbGU9JWR4JWQsIGN1cnJlbnQ9JSs0ZCwlKzRkXG4iLAogICAg
ICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54LCBwcml2LT52aWV3Lm9mZnNldC5iYXNl
LnksCiAgICAgICAgICAgICBwcml2LT52aWV3LnRpbGUud2lkdGgsIHByaXYtPnZpZXcudGlsZS5o
ZWlnaHQsCi0gICAgICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCwgcHJpdi0+dmlldy5v
ZmZzZXQuY3VyLnkpOworICAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54LCBw
cml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkpOwogCiB9CiAKQEAgLTE0NDgsOCArMTQ0OCw4IEBA
IHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29m
ZnNldF9zZXRfaW50ZXJuYWwoRXdrX1RpCiAgICAgaWYgKHByaXYtPnJlbmRlci5kaXNhYmxlZCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggPSB4
OwotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ID0geTsKKyAgICBwcml2LT52aWV3Lm9mZnNl
dC5jdXJyZW50LnggPSB4OworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSA9IHk7CiAK
ICAgICBwcml2LT5jaGFuZ2VkLm9mZnNldCA9IHRydWU7CiAgICAgX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX2NoYW5nZWQocHJpdik7CkBAIC0xNDYyLDcgKzE0NjIsNyBAQCBFaW5hX0Jvb2wgZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3NldChFdmFzX09iamVjdCog
ZXdrQmFja2luZwogICAgIERCRygiZXdrQmFja2luZ1N0b3JlJXAsIHg9JWQsIHk9JWQiLCBld2tC
YWNraW5nU3RvcmUsIHgsIHkpOwogCiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFj
a2luZ1N0b3JlLCBwcml2LCBmYWxzZSk7Ci0gICAgaWYgKHggPT0gcHJpdi0+dmlldy5vZmZzZXQu
Y3VyLnggJiYgeSA9PSBwcml2LT52aWV3Lm9mZnNldC5jdXIueSkKKyAgICBpZiAoeCA9PSBwcml2
LT52aWV3Lm9mZnNldC5jdXJyZW50LnggJiYgeSA9PSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
LnkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcmV0dXJuIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0X2ludGVybmFsKHByaXYsIHgsIHkpOwpAQCAt
MTQ3NywxMyArMTQ3NywxMyBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Ny
b2xsX2Z1bGxfb2Zmc2V0X2FkZChFdmFzX09iamVjdCogZXdrQmFja2luZwogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAogICAgIHJldHVybiBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1
bGxfb2Zmc2V0X3NldF9pbnRlcm5hbAotICAgICAgICAgICAgICAgKHByaXYsIHByaXYtPnZpZXcu
b2Zmc2V0LmN1ci54ICsgZGVsdGFYLCBwcml2LT52aWV3Lm9mZnNldC5jdXIueSArIGRlbHRhWSk7
CisgICAgICAgICAgICAgICAocHJpdiwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ICsgZGVs
dGFYLCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgKyBkZWx0YVkpOwogfQogCiBzdGF0aWMg
RWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3NldF9pbnRlcm5hbChFd2tf
VGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2LCBmbG9hdCogem9vbSwgRXZhc19Db29yZCBj
dXJyZW50WCwgRXZhc19Db29yZCBjdXJyZW50WSwgRXZhc19Db29yZCogb2Zmc2V0WCwgRXZhc19D
b29yZCogb2Zmc2V0WSkKIHsKLSAgICAqb2Zmc2V0WCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54
OwotICAgICpvZmZzZXRZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7CisgICAgKm9mZnNldFgg
PSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAgKm9mZnNldFkgPSBwcml2LT52aWV3
Lm9mZnNldC5jdXJyZW50Lnk7CiAKICAgICBpZiAoZmFic2YocHJpdi0+dmlldy50aWxlLnpvb20g
LSAqem9vbSkgPCB6b29tU3RlcE1pbmltdW0pIHsKICAgICAgICAgREJHKCJpZ25vcmVkIGFzIHpv
b20gZGlmZmVyZW5jZSBpcyA8ICVmOiAlZiIsCkBAIC0xNTE0LDEwICsxNTE0LDEwIEBAIHN0YXRp
YyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fc2V0X2ludGVybmFsKEV3
a19UaWxlZF9CYWNraW5nX1N0CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBFaW5h
X0lubGlzdCoqIGl0ZXJhdG9yLCAqKml0ZXJhdG9yRW5kOwotICAgIEV3a19UaWxlZF9CYWNraW5n
X1N0b3JlX0l0ZW0qIGl0OworICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0ZW07
CiAKLSAgICBFdmFzX0Nvb3JkIG5ld1ggPSBjdXJyZW50WCArIChwcml2LT52aWV3Lm9mZnNldC5j
dXIueCAtIGN1cnJlbnRYKSAqIHNjYWxlOwotICAgIEV2YXNfQ29vcmQgbmV3WSA9IGN1cnJlbnRZ
ICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1ci55IC0gY3VycmVudFkpICogc2NhbGU7CisgICAgRXZh
c19Db29yZCBuZXdYID0gY3VycmVudFggKyAocHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54IC0g
Y3VycmVudFgpICogc2NhbGU7CisgICAgRXZhc19Db29yZCBuZXdZID0gY3VycmVudFkgKyAocHJp
di0+dmlldy5vZmZzZXQuY3VycmVudC55IC0gY3VycmVudFkpICogc2NhbGU7CiAKICAgICBFdmFz
X0Nvb3JkIG1vZGVsV2lkdGggPSBwcml2LT5tb2RlbC53aWR0aCAqIHNjYWxlOwogICAgIEV2YXNf
Q29vcmQgbW9kZWxIZWlnaHQgPSBwcml2LT5tb2RlbC5oZWlnaHQgKiBzY2FsZTsKQEAgLTE1NDEs
MTUgKzE1NDEsMTUgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
em9vbV9zZXRfaW50ZXJuYWwoRXdrX1RpbGVkX0JhY2tpbmdfU3QKICAgICBwcml2LT5jaGFuZ2Vk
Lm1vZGVsID0gdHJ1ZTsKICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfY2hhbmdlZChwcml2
KTsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ID0gbmV3WDsKLSAgICBwcml2LT52aWV3
Lm9mZnNldC5jdXIueSA9IG5ld1k7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ID0g
bmV3WDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgPSBuZXdZOwogICAgIHByaXYt
PnZpZXcub2Zmc2V0LmJhc2UueCA9IGJhc2VYOwogICAgIHByaXYtPnZpZXcub2Zmc2V0LmJhc2Uu
eSA9IGJhc2VZOwogCi0gICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9m
ZnNldC5jdXIueDsKLSAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueSA9IHByaXYtPnZpZXcub2Zm
c2V0LmN1ci55OwotICAgICpvZmZzZXRYID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLng7Ci0gICAg
Km9mZnNldFkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueTsKKyAgICBwcml2LT52aWV3Lm9mZnNl
dC5vbGQueCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueDsKKyAgICBwcml2LT52aWV3Lm9m
ZnNldC5vbGQueSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueTsKKyAgICAqb2Zmc2V0WCA9
IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueDsKKyAgICAqb2Zmc2V0WSA9IHByaXYtPnZpZXcu
b2Zmc2V0LmN1cnJlbnQueTsKIAogICAgIGV2YXNfb2JqZWN0X21vdmUoCiAgICAgICAgIHByaXYt
PmNvbnRlbnRzQ2xpcHBlciwKQEAgLTE1NjgsOSArMTU2OCw5IEBAIHN0YXRpYyBFaW5hX0Jvb2wg
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fc2V0X2ludGVybmFsKEV3a19UaWxlZF9CYWNr
aW5nX1N0CiAgICAgICAgIEV2YXNfQ29vcmQgdGlsZVBvc2l0aW9uWCA9IGJhc2VUaWxlUG9zaXRp
b25YOwogICAgICAgICBFaW5hX0lubGlzdCogbHN0ID0gKml0ZXJhdG9yOwogCi0gICAgICAgIEVJ
TkFfSU5MSVNUX0ZPUkVBQ0gobHN0LCBpdCkgewotICAgICAgICAgICAgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX2l0ZW1fbW92ZShpdCwgdGlsZVBvc2l0aW9uWCwgdGlsZVBvc2l0aW9uWSk7Ci0g
ICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9yZXNpemUoaXQsIHRpbGVX
aWR0aCwgdGlsZUhlaWdodCk7CisgICAgICAgIEVJTkFfSU5MSVNUX0ZPUkVBQ0gobHN0LCBpdGVt
KSB7CisgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0ZW0s
IHRpbGVQb3NpdGlvblgsIHRpbGVQb3NpdGlvblkpOworICAgICAgICAgICAgX2V3a190aWxlZF9i
YWNraW5nX3N0b3JlX2l0ZW1fcmVzaXplKGl0ZW0sIHRpbGVXaWR0aCwgdGlsZUhlaWdodCk7CiAg
ICAgICAgICAgICB0aWxlUG9zaXRpb25YICs9IHRpbGVXaWR0aDsKICAgICAgICAgfQogICAgICAg
ICB0aWxlUG9zaXRpb25ZICs9IHRpbGVIZWlnaHQ7CkBAIC0xNjEzLDggKzE2MTMsOCBAQCBFaW5h
X0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV93ZWFrX3NldChFdmFzX09iamVjdCog
ZXdrQmFja2luZ1N0b3JlLCBmbAogCiAgICAgaW50IHZyb3dzID0gc3RhdGljX2Nhc3Q8aW50Pihj
ZWlsKHByaXYtPnZpZXcuaGVpZ2h0IC9zdGF0aWNfY2FzdDxmbG9hdD4odGlsZUhlaWdodCkpICsg
MSk7CiAgICAgaW50IHZjb2xzID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsKHByaXYtPnZpZXcud2lk
dGggLyBzdGF0aWNfY2FzdDxmbG9hdD4odGlsZVdpZHRoKSkgKyAxKTsKLSAgICBFdmFzX0Nvb3Jk
IG5ld1ggPSBjdXJyZW50WCArIChwcml2LT52aWV3Lm9mZnNldC5jdXIueCAtIGN1cnJlbnRYKSAq
IHNjYWxlOwotICAgIEV2YXNfQ29vcmQgbmV3WSA9IGN1cnJlbnRZICsgKHByaXYtPnZpZXcub2Zm
c2V0LmN1ci55IC0gY3VycmVudFkpICogc2NhbGU7CisgICAgRXZhc19Db29yZCBuZXdYID0gY3Vy
cmVudFggKyAocHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54IC0gY3VycmVudFgpICogc2NhbGU7
CisgICAgRXZhc19Db29yZCBuZXdZID0gY3VycmVudFkgKyAocHJpdi0+dmlldy5vZmZzZXQuY3Vy
cmVudC55IC0gY3VycmVudFkpICogc2NhbGU7CiAgICAgRXZhc19Db29yZCBiYXNlWCA9IG5ld1gg
JSB0aWxlV2lkdGg7CiAgICAgRXZhc19Db29yZCBiYXNlWSA9IG5ld1kgJSB0aWxlSGVpZ2h0Owog
ICAgIHVuc2lnbmVkIGxvbmcgYmFzZVJvdyA9IC1uZXdZIC8gdGlsZUhlaWdodDsKQEAgLTE2MjYs
NyArMTYyNiw3IEBAIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3dlYWtf
c2V0KEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIGZsCiAgICAgICAgIHJlQ2FsY3VsYXRl
ID0gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAodnJvd3MgPiBwcml2LT52aWV3LnJvd3MgfHwgdmNv
bHMgPiBwcml2LT52aWV3LmNvbHMpCisgICAgaWYgKHZyb3dzID4gcHJpdi0+dmlldy5yb3dzIHx8
IHZjb2xzID4gcHJpdi0+dmlldy5jb2x1bW5zKQogICAgICAgICByZUNhbGN1bGF0ZSA9IHRydWU7
CiAKICAgICBpZiAocmVDYWxjdWxhdGUpIHsKQEAgLTE2NjcsOCArMTY2Nyw4IEBAIHZvaWQgZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfZml4X29mZnNldHMoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdT
dG9yZSwgRXZhc19Db29yCiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0
b3JlLCBwcml2KTsKICAgICBFaW5hX0lubGlzdCoqIGl0ZXJhdG9yLCAqKml0ZXJhdG9yRW5kOwog
ICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0ZW07Ci0gICAgRXZhc19Db29yZCBu
ZXdYID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLng7Ci0gICAgRXZhc19Db29yZCBuZXdZID0gcHJp
di0+dmlldy5vZmZzZXQuY3VyLnk7CisgICAgRXZhc19Db29yZCBuZXdYID0gcHJpdi0+dmlldy5v
ZmZzZXQuY3VycmVudC54OworICAgIEV2YXNfQ29vcmQgbmV3WSA9IHByaXYtPnZpZXcub2Zmc2V0
LmN1cnJlbnQueTsKICAgICBFdmFzX0Nvb3JkIGJhc2VYID0gcHJpdi0+dmlldy5vZmZzZXQuYmFz
ZS54OwogICAgIEV2YXNfQ29vcmQgYmFzZVkgPSBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnk7CiAg
ICAgRXZhc19Db29yZCB0aWxlV2lkdGggPSBwcml2LT52aWV3LnRpbGUud2lkdGg7CkBAIC0xNjk2
LDggKzE2OTYsOCBAQCB2b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZpeF9vZmZzZXRzKEV2
YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIEV2YXNfQ29vcgogICAgICAgICBwcml2LT5tb2Rl
bC5iYXNlLnJvdyA9IC1uZXdZIC8gdGlsZUhlaWdodDsKICAgICB9CiAKLSAgICBwcml2LT52aWV3
Lm9mZnNldC5jdXIueCA9IG5ld1g7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgPSBuZXdZ
OworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCA9IG5ld1g7CisgICAgcHJpdi0+dmll
dy5vZmZzZXQuY3VycmVudC55ID0gbmV3WTsKICAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCA9
IG5ld1g7CiAgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBuZXdZOwogICAgIHByaXYtPnZp
ZXcub2Zmc2V0LmJhc2UueCA9IGJhc2VYOwpAQCAtMTgxNSw4ICsxODE1LDggQEAgdm9pZCBld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9mbHVzaChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlKQog
ICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdik7CiAgICAg
RXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUgPSAwOwogCi0gICAgcHJpdi0+
dmlldy5vZmZzZXQuY3VyLnggPSAwOwotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ID0gMDsK
KyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggPSAwOworICAgIHByaXYtPnZpZXcub2Zm
c2V0LmN1cnJlbnQueSA9IDA7CiAgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnggPSAwOwogICAg
IHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0gMDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNl
LnggPSAwOwpAQCAtMTk1Niw3ICsxOTU2LDcgQEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5n
X3N0b3JlX3ByZV9yZW5kZXJfcmVnaW9uKEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUKIHsK
ICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUsIHByaXYsIGZhbHNl
KTsKICAgICBFaW5hX1RpbGVfR3JpZF9TbGljZXIgc2xpY2VyOwotICAgIGNvbnN0IEVpbmFfVGls
ZV9HcmlkX0luZm8qIGluZm87CisgICAgY29uc3QgRWluYV9UaWxlX0dyaWRfSW5mbyogZ3JpZElu
Zm87CiAgICAgRXZhc19Db29yZCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQ7CiAgICAgRXdrX1RpbGVf
VW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGU7CiAKQEAgLTE5NzAsMTAgKzE5NzAsMTAgQEAg
RWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVnaW9uKEV2YXNf
T2JqZWN0KiBld2tCYWNraW5nU3RvcmUKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAot
ICAgIHdoaWxlIChlaW5hX3RpbGVfZ3JpZF9zbGljZXJfbmV4dCgmc2xpY2VyLCAmaW5mbykpIHsK
LSAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBjID0gaW5mby0+Y29sOwotICAgICAgICBjb25z
dCB1bnNpZ25lZCBsb25nIHIgPSBpbmZvLT5yb3c7Ci0gICAgICAgIGlmICghX2V3a190aWxlZF9i
YWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9hZGQocHJpdiwgYywgciwgem9vbSkpCisg
ICAgd2hpbGUgKGVpbmFfdGlsZV9ncmlkX3NsaWNlcl9uZXh0KCZzbGljZXIsICZncmlkSW5mbykp
IHsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBjb2x1bW4gPSBncmlkSW5mby0+Y29sOwor
ICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIHJvdyA9IGdyaWRJbmZvLT5yb3c7CisgICAgICAg
IGlmICghX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9hZGQocHJp
diwgY29sdW1uLCByb3csIHpvb20pKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC0x
OTk3LDcgKzE5OTcsNyBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3Jl
bmRlcl9yZWxhdGl2ZV9yYWRpdXMoRXZhc19PYmplY3QqIGV3a0JhYwogICAgIGVuZFJvdyA9IHN0
ZDo6bWluKHByaXYtPm1vZGVsLmN1cnJlbnQucm93cyAtIDEsCiAgICAgICAgICAgICAgICAgICAg
ICAgIHByaXYtPm1vZGVsLmJhc2Uucm93ICsgcHJpdi0+dmlldy5yb3dzICsgbiAtIDEpOwogICAg
IGVuZENvbCA9IHN0ZDo6bWluKHByaXYtPm1vZGVsLmN1cnJlbnQuY29sdW1ucyAtIDEsCi0gICAg
ICAgICAgICAgICAgICAgICAgIHByaXYtPm1vZGVsLmJhc2UuY29sdW1uICsgcHJpdi0+dmlldy5j
b2xzICsgbiAtIDEpOworICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5tb2RlbC5iYXNlLmNv
bHVtbiArIHByaXYtPnZpZXcuY29sdW1ucyArIG4gLSAxKTsKIAogICAgIElORigic3RhcnRSb3c9
JWx1LCBlbmRSb3c9JWx1LCBzdGFydENvbD0lbHUsIGVuZENvbD0lbHUiLAogICAgICAgICBzdGFy
dFJvdywgZW5kUm93LCBzdGFydENvbCwgZW5kQ29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5oIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmgKaW5kZXggZTkzY2NmNy4uNzQwM2VmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmgK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmgKQEAg
LTY0LDcgKzY0LDcgQEAgc3RydWN0IF9Fd2tfVGlsZV9TdGF0cyB7CiBzdHJ1Y3QgX0V3a19UaWxl
IHsKICAgICBFaW5hX1RpbGVyKiB1cGRhdGVzOyAgICAvKio8IHVwZGF0ZWQvZGlydHkgYXJlYXMg
Ki8KICAgICBFd2tfVGlsZV9TdGF0cyBzdGF0czsgICAgICAgLyoqPCB0aWxlIHVzYWdlIHN0YXRp
c3RpY3MgKi8KLSAgICB1bnNpZ25lZCBsb25nIGNvbCwgcm93OyAvKio8IHRpbGUgdGlsZSBwb3Np
dGlvbiAqLworICAgIHVuc2lnbmVkIGxvbmcgY29sdW1uLCByb3c7IC8qKjwgdGlsZSB0aWxlIHBv
c2l0aW9uICovCiAgICAgRXZhc19Db29yZCB4LCB5OyAgICAgICAgLyoqPCB0aWxlIGNvb3JkaW5h
dGUgcG9zaXRpb24gKi8KIAogICAgIC8qKiBOZXZlciBldmVyIGNoYW5nZSB0aG9zZSBhZnRlciB0
aWxlIGlzIGNyZWF0ZWQgKHJlc3BlY3QgY29uc3QhKSAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a190aWxlZF9tYXRyaXguY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a190aWxlZF9tYXRyaXguY3BwCmluZGV4IGFiMDYwNDIuLmQ5YTBmMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbWF0cml4LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21hdHJpeC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdHlw
ZWRlZiBzdHJ1Y3QgX0V3a19UaWxlX01hdHJpeF9FbnRyeSBFd2tfVGlsZV9NYXRyaXhfRW50cnk7
CiBzdHJ1Y3QgX0V3a19UaWxlX01hdHJpeCB7CiAgICAgRWluYV9NYXRyaXhzcGFyc2UqIG1hdHJp
eDsKICAgICBFaW5hX0lubGlzdCogbWF0cmljZXM7Ci0gICAgRXdrX1RpbGVfVW51c2VkX0NhY2hl
KiB0aWxpZVVudXNlZENhY2hlOworICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNl
ZENhY2hlOwogICAgIEV2YXNfQ29sb3JzcGFjZSBjc3BhY2U7CiAgICAgc3RydWN0IHsKICAgICAg
ICAgdm9pZCAoKmNhbGxiYWNrKSh2b2lkKiBkYXRhLCBFd2tfVGlsZSogdGlsZSwgY29uc3QgRWlu
YV9SZWN0YW5nbGUqIHVwZGF0ZSk7CkBAIC05NCw3ICs5NCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tf
dGlsZV9tYXRyaXhfY2VsbF9mcmVlKHZvaWQqIHVzZXJEYXRhLCB2b2lkKiBjZWxsRGF0YSkKICAg
ICBpZiAoIXRpbGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGV3a190aWxlX3VudXNlZF9jYWNo
ZV9mcmVlemUodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVfdW51
c2VkX2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogCiAgICAgaWYg
KHRpbGUtPnVwZGF0ZXMgfHwgdGlsZS0+c3RhdHMuZnVsbF91cGRhdGUpCiAgICAgICAgIHRpbGVN
YXRyaXgtPnVwZGF0ZXMgPSBlaW5hX2xpc3RfcmVtb3ZlKHRpbGVNYXRyaXgtPnVwZGF0ZXMsIHRp
bGUpOwpAQCAtMTAyLDggKzEwMiw4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZV9tYXRyaXhfY2Vs
bF9mcmVlKHZvaWQqIHVzZXJEYXRhLCB2b2lkKiBjZWxsRGF0YSkKICAgICBpZiAodGlsZS0+dmlz
aWJsZSkKICAgICAgICAgRVJSKCJmcmVlaW5nIGNlbGwgdGhhdCBpcyB2aXNpYmxlLCBsZWFraW5n
IHRpbGUgJXAiLCB0aWxlKTsKICAgICBlbHNlIHsKLSAgICAgICAgaWYgKCFld2tfdGlsZV91bnVz
ZWRfY2FjaGVfdGlsZV9nZXQodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSwgdGlsZSkpCi0g
ICAgICAgICAgICBFUlIoInRpbGUgJXAgd2FzIG5vdCBpbiBjYWNoZSAlcD8gbGVha2luZy4uLiIs
IHRpbGUsIHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgICAgICBpZiAoIWV3a190
aWxlX3VudXNlZF9jYWNoZV90aWxlX2dldCh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUsIHRp
bGUpKQorICAgICAgICAgICAgRVJSKCJ0aWxlICVwIHdhcyBub3QgaW4gY2FjaGUgJXA/IGxlYWtp
bmcuLi4iLCB0aWxlLCB0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogICAgICAgICBlbHNl
IHsKICAgICAgICAgICAgIEV3a19UaWxlX01hdHJpeF9FbnRyeSogZW50cnk7CiAgICAgICAgICAg
ICBEQkcoInRpbGUgY2VsbCBkb2VzIG5vdCBleGlzdCBhbnltb3JlLCBmcmVlIGl0ICVwIiwgdGls
ZSk7CkBAIC0xMjEsNyArMTIxLDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlX21hdHJpeF9jZWxs
X2ZyZWUodm9pZCogdXNlckRhdGEsIHZvaWQqIGNlbGxEYXRhKQogICAgICAgICB9CiAgICAgfQog
Ci0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXcodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRD
YWNoZSk7CisgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXcodGlsZU1hdHJpeC0+dGlsZVVu
dXNlZENhY2hlKTsKIH0KIAogLyogY2FsbGVkIHdoZW4gY2FjaGUgb2YgdW51c2VkIHRpbGUgaXMg
Zmx1c2hlZCAqLwpAQCAtMTM3LDcgKzEzNyw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZV9tYXRy
aXhfdGlsZV9mcmVlKHZvaWQqIGRhdGEsIEV3a19UaWxlKiB0aWxlKQogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgaWYgKCFlaW5hX21hdHJpeHNwYXJzZV9jZWxsX2lkeF9nZXQoZW50cnkt
Pm1hdHJpeCwgdGlsZS0+cm93LCB0aWxlLT5jb2wsICZjZWxsKSkgeworICAgIGlmICghZWluYV9t
YXRyaXhzcGFyc2VfY2VsbF9pZHhfZ2V0KGVudHJ5LT5tYXRyaXgsIHRpbGUtPnJvdywgdGlsZS0+
Y29sdW1uLCAmY2VsbCkpIHsKIAogICAgICAgICBFUlIoInJlbW92aW5nIHRpbGUgJXAgdGhhdCB3
YXMgbm90IGluIHRoZSBtYXRyaXg/IExlYWtpbmcuLi4iLCB0aWxlKTsKICAgICAgICAgcmV0dXJu
OwpAQCAtMjExLDEwICsyMTEsMTAgQEAgRXdrX1RpbGVfTWF0cml4KiBld2tfdGlsZV9tYXRyaXhf
bmV3KEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlLCB1bnMKICAgICBld2tf
dGlsZV9tYXRyaXhfem9vbV9sZXZlbF9zZXQodGlsZU1hdHJpeCwgem9vbUxldmVsKTsKIAogICAg
IGlmICh0aWxlVW51c2VkQ2FjaGUpCi0gICAgICAgIHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2Fj
aGUgPSBld2tfdGlsZV91bnVzZWRfY2FjaGVfcmVmKHRpbGVVbnVzZWRDYWNoZSk7CisgICAgICAg
IHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSA9IGV3a190aWxlX3VudXNlZF9jYWNoZV9yZWYo
dGlsZVVudXNlZENhY2hlKTsKICAgICBlbHNlIHsKLSAgICAgICAgdGlsZU1hdHJpeC0+dGlsaWVV
bnVzZWRDYWNoZSA9IGV3a190aWxlX3VudXNlZF9jYWNoZV9uZXcoREVGQVVMVF9DQUNIRV9TSVpF
KTsKLSAgICAgICAgaWYgKCF0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlKSB7CisgICAgICAg
IHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSA9IGV3a190aWxlX3VudXNlZF9jYWNoZV9uZXco
REVGQVVMVF9DQUNIRV9TSVpFKTsKKyAgICAgICAgaWYgKCF0aWxlTWF0cml4LT50aWxlVW51c2Vk
Q2FjaGUpIHsKICAgICAgICAgICAgIEVSUigibm8gY2FjaGUgb2YgdW51c2VkIHRpbGUhIik7CiAg
ICAgICAgICAgICBlaW5hX21hdHJpeHNwYXJzZV9mcmVlKHRpbGVNYXRyaXgtPm1hdHJpeCk7CiAg
ICAgICAgICAgICBmcmVlKHRpbGVNYXRyaXgpOwpAQCAtMjk4LDcgKzI5OCw3IEBAIHZvaWQgZXdr
X3RpbGVfbWF0cml4X2ZyZWUoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4KQogCiAgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk4odGlsZU1hdHJpeCk7CiAKLSAgICBld2tfdGlsZV91bnVz
ZWRfY2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgIGV3a190
aWxlX3VudXNlZF9jYWNoZV9mcmVlemUodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlKTsKICAg
ICBld2tfdGlsZV9tYXRyaXhfaW52YWxpZGF0ZSh0aWxlTWF0cml4KTsKICAgICBlbnRyeSA9IEVJ
TkFfSU5MSVNUX0NPTlRBSU5FUl9HRVQodGlsZU1hdHJpeC0+bWF0cmljZXMsIEV3a19UaWxlX01h
dHJpeF9FbnRyeSk7CiAgICAgZWluYV9tYXRyaXhzcGFyc2VfZnJlZShlbnRyeS0+bWF0cml4KTsK
QEAgLTMwNiw4ICszMDYsOCBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9mcmVlKEV3a19UaWxlX01h
dHJpeCogdGlsZU1hdHJpeCkKICAgICBmcmVlKGVudHJ5KTsKICAgICB0aWxlTWF0cml4LT5tYXRy
aWNlcyA9IDA7CiAKLSAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGhhdyh0aWxlTWF0cml4LT50
aWxpZVVudXNlZENhY2hlKTsKLSAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfdW5yZWYodGlsZU1h
dHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXco
dGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlKTsKKyAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVf
dW5yZWYodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlKTsKIAogI2lmZGVmIERFQlVHX01FTV9M
RUFLUwogICAgIHRpbGVzID0gdGlsZU1hdHJpeC0+c3RhdHMudGlsZXMuYWxsb2NhdGVkIC0gdGls
ZU1hdHJpeC0+c3RhdHMudGlsZXMuZnJlZWQ7CkBAIC0zNTUsNyArMzU1LDcgQEAgdm9pZCBld2tf
dGlsZV9tYXRyaXhfcmVzaXplKEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCwgdW5zaWduZWQg
bG9uZyBjb2xzLCB1bnMKIEV3a19UaWxlX1VudXNlZF9DYWNoZSogZXdrX3RpbGVfbWF0cml4X3Vu
dXNlZF9jYWNoZV9nZXQoY29uc3QgRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4KQogewogICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTCh0aWxlTWF0cml4LCAwKTsKLSAgICByZXR1
cm4gdGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZTsKKyAgICByZXR1cm4gdGlsZU1hdHJpeC0+
dGlsZVVudXNlZENhY2hlOwogfQogCiAvKioKQEAgLTM5MCw3ICszOTAsNyBAQCBFd2tfVGlsZSog
ZXdrX3RpbGVfbWF0cml4X3RpbGVfZXhhY3RfZ2V0KEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJp
eCwgdW5zaWduZWQgbAogCiBlbmQ6CiAgICAgaWYgKCF0aWxlLT52aXNpYmxlKSB7Ci0gICAgICAg
IGlmICghZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfZ2V0KHRpbGVNYXRyaXgtPnRpbGllVW51
c2VkQ2FjaGUsIHRpbGUpKQorICAgICAgICBpZiAoIWV3a190aWxlX3VudXNlZF9jYWNoZV90aWxl
X2dldCh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUsIHRpbGUpKQogICAgICAgICAgICAgV1JO
KCJFd2tfVGlsZSB3YXMgdW51c2VkIGJ1dCBub3QgaW4gY2FjaGU/IGJ1ZyEiKTsKICAgICB9CiAK
QEAgLTQ1OSw3ICs0NTksNyBAQCBFd2tfVGlsZSogZXdrX3RpbGVfbWF0cml4X3RpbGVfbmV3KEV3
a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCwgRXZhcyogY2FudmFzLCB1bgogICAgICAgICByZXR1
cm4gMDsKICAgICB9CiAKLSAgICB0aWxlLT5jb2wgPSBjb2x1bW47CisgICAgdGlsZS0+Y29sdW1u
ID0gY29sdW1uOwogICAgIHRpbGUtPnJvdyA9IHJvdzsKICAgICB0aWxlLT54ID0gY29sdW1uICog
dGlsZVdpZHRoOwogICAgIHRpbGUtPnkgPSByb3cgKiB0aWxlSGVpZ2h0OwpAQCAtNDg2LDcgKzQ4
Niw3IEBAIEV3a19UaWxlKiBld2tfdGlsZV9tYXRyaXhfdGlsZV9uZXcoRXdrX1RpbGVfTWF0cml4
KiB0aWxlTWF0cml4LCBFdmFzKiBjYW52YXMsIHVuCiAgKiB1bnVzZWQgY2FjaGUuCiAgKgogICog
QHBhcmFtIHRpbGVNYXRyaXggdGhlIHRpbGUgbWF0cml4IHRvIHJldHVybiB0aWxlIHRvLgotICog
QHBhcmFtIHQgdGhlIHRpbGUgaW5zdGFuY2UgdG8gcmV0dXJuLCBtdXN0IEBiIG5vdCBiZSBAYyAw
LgorICogQHBhcmFtIHRpbGUgdGhlIHRpbGUgaW5zdGFuY2UgdG8gcmV0dXJuLCBtdXN0IEBiIG5v
dCBiZSBAYyAwLgogICogQHBhcmFtIGxhc3RfdXNlZCB0aW1lIGluIHdoaWNoIHRpbGUud2lkdGhh
cyBsYXN0IHVzZWQuCiAgKgogICogQHJldHVybiAjdHJ1ZSBvbiBzdWNjZXNzIG9yICNmYWxzZSBv
biBmYWlsdXJlLgpAQCAtNTAwLDcgKzUwMCw3IEBAIEVpbmFfQm9vbCBld2tfdGlsZV9tYXRyaXhf
dGlsZV9wdXQoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4LCBFd2tfVGlsZSogdGlsZSwKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKICAgICB0aWxlLT5zdGF0cy5sYXN0X3VzZWQgPSBsYXN0VXNl
ZDsKLSAgICByZXR1cm4gZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfcHV0KHRpbGVNYXRyaXgt
PnRpbGllVW51c2VkQ2FjaGUsIHRpbGUsIF9ld2tfdGlsZV9tYXRyaXhfdGlsZV9mcmVlLCB0aWxl
TWF0cml4KTsKKyAgICByZXR1cm4gZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfcHV0KHRpbGVN
YXRyaXgtPnRpbGVVbnVzZWRDYWNoZSwgdGlsZSwgX2V3a190aWxlX21hdHJpeF90aWxlX2ZyZWUs
IHRpbGVNYXRyaXgpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3RpbGVfbWF0cml4X3RpbGVfdXBkYXRl
KEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCwgdW5zaWduZWQgbG9uZyBjb2wsIHVuc2lnbmVk
IGxvbmcgcm93LCBjb25zdCBFaW5hX1JlY3RhbmdsZSogdXBkYXRlKQpAQCAtNzA2LDcgKzcwNiw3
IEBAIHZvaWQgZXdrX3RpbGVfbWF0cml4X2RiZyhjb25zdCBFd2tfVGlsZV9NYXRyaXgqIHRpbGVN
YXRyaXgpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgcHJpbnRmKCIlM2x1LCUzbHUgJTEwcDoiLCBjb2x1bW4sIHJvdywgdGlsZSk7Ci0g
ICAgICAgICAgICBwcmludGYoIiBbJTNsdSwlM2x1ICsgJWR4JWQgQCAlMC4zZl0lYyIsIHRpbGUt
PmNvbCwgdGlsZS0+cm93LCB0aWxlLT53aWR0aCwgdGlsZS0+aGVpZ2h0LCB0aWxlLT56b29tLCB0
aWxlLT52aXNpYmxlID8gJyonIDogJyAnKTsKKyAgICAgICAgICAgIHByaW50ZigiIFslM2x1LCUz
bHUgKyAlZHglZCBAICUwLjNmXSVjIiwgdGlsZS0+Y29sdW1uLCB0aWxlLT5yb3csIHRpbGUtPndp
ZHRoLCB0aWxlLT5oZWlnaHQsIHRpbGUtPnpvb20sIHRpbGUtPnZpc2libGUgPyAnKicgOiAnICcp
OwogICAgICAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgICAgICB9CiAgICAgfQpAQCAtNzE0LDcg
KzcxNCw3IEBAIHZvaWQgZXdrX3RpbGVfbWF0cml4X2RiZyhjb25zdCBFd2tfVGlsZV9NYXRyaXgq
IHRpbGVNYXRyaXgpCiAgICAgICAgIHByaW50ZigiXG4iKTsKICAgICBlaW5hX2l0ZXJhdG9yX2Zy
ZWUoaXRlcmF0b3IpOwogCi0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2RiZyh0aWxlTWF0cml4
LT50aWxpZVVudXNlZENhY2hlKTsKKyAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfZGJnKHRpbGVN
YXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiB9CiAKIC8qKgpAQCAtNzMwLDcgKzczMCw3IEBAIHZv
aWQgZXdrX3RpbGVfbWF0cml4X2ZyZWV6ZShFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgpCiB7
CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4odGlsZU1hdHJpeCk7CiAgICAgaWYgKCF0
aWxlTWF0cml4LT5mcm96ZW4pCi0gICAgICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9mcmVlemUo
dGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgICAgIGV3a190aWxlX3VudXNlZF9j
YWNoZV9mcmVlemUodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlKTsKICAgICB0aWxlTWF0cml4
LT5mcm96ZW4rKzsKIH0KIApAQCAtNzUwLDUgKzc1MCw1IEBAIHZvaWQgZXdrX3RpbGVfbWF0cml4
X3RoYXcoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4KQogCiAgICAgdGlsZU1hdHJpeC0+ZnJv
emVuLS07CiAgICAgaWYgKCF0aWxlTWF0cml4LT5mcm96ZW4pCi0gICAgICAgIGV3a190aWxlX3Vu
dXNlZF9jYWNoZV90aGF3KHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgICAgICBl
d2tfdGlsZV91bnVzZWRfY2FjaGVfdGhhdyh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tb2RlbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21vZGVsLmNwcAppbmRleCA4NDA0OGNi
Li44N2ZhODNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21v
ZGVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21vZGVsLmNwcApA
QCAtMzQ1LDE2ICszNDUsMTYgQEAgdm9pZCBld2tfdGlsZV91cGRhdGVzX3Byb2Nlc3MoRXdrX1Rp
bGUqIHRpbGUsIHZvaWQgKCpjYWxsYmFjaykodm9pZCogZGF0YSwgRXdrX1QKICAgICAgICAgcmVj
dC5oID0gdGlsZS0+aGVpZ2h0OwogI2lmZGVmIFRJTEVfU1RBVFNfQUNDT1VOVF9SRU5ERVJfVElN
RQogICAgICAgICBzdHJ1Y3QgdGltZXZhbCB0aW1ldjsKLSAgICAgICAgZG91YmxlIHJlbmRlcl9z
dGFydDsKKyAgICAgICAgZG91YmxlIHJlbmRlclN0YXJ0VGltZTsKICAgICAgICAgZ2V0dGltZW9m
ZGF5KCZ0aW1ldiwgMCk7Ci0gICAgICAgIHJlbmRlcl9zdGFydGlsZSA9IChkb3VibGUpdGltZXYu
dHZfc2VjICsKKyAgICAgICAgcmVuZGVyU3RhcnRUaW1lID0gKGRvdWJsZSl0aW1ldi50dl9zZWMg
KwogICAgICAgICAgICAgICAgICAgICAgICAoKChkb3VibGUpdGltZXYudHZfdXNlYykgLyAxMDAw
MDAwKTsKICNlbmRpZgogICAgICAgICBjYWxsYmFjaygodm9pZCopZGF0YSwgdGlsZSwgJnJlY3Qp
OwogI2lmZGVmIFRJTEVfU1RBVFNfQUNDT1VOVF9SRU5ERVJfVElNRQogICAgICAgICBnZXR0aW1l
b2ZkYXkoJnRpbWV2LCAwKTsKICAgICAgICAgdGlsZS0+c3RhdHMucmVuZGVyX3RpbWUgPSAoZG91
YmxlKXRpbWV2LnR2X3NlYyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgoZG91
YmxlKXRpbWV2LnR2X3VzZWMpIC8gMTAwMDAwMCkgLSByZW5kZXJfc3RhcnQ7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKCgoZG91YmxlKXRpbWV2LnR2X3VzZWMpIC8gMTAwMDAwMCkg
LSByZW5kZXJTdGFydFRpbWU7CiAjZW5kaWYKICAgICB9IGVsc2UgaWYgKHRpbGUtPnVwZGF0ZXMp
IHsKICAgICAgICAgRWluYV9JdGVyYXRvciogaXRyID0gZWluYV90aWxlcl9pdGVyYXRvcl9uZXco
dGlsZS0+dXBkYXRlcyk7CkBAIC01MjAsNyArNTIwLDcgQEAgdm9pZCBld2tfdGlsZV91bnVzZWRf
Y2FjaGVfY2xlYXIoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUpCiB9CiAK
IC8qKgotICogaGVpZ2h0b2xkIHJlZmVyZW5jZSB0byBjYWNoZS4KKyAqIEhvbGQgcmVmZXJlbmNl
IHRvIGNhY2hlLgogICoKICAqIEByZXR1cm4gc2FtZSBwb2ludGVyIGFzIHRha2VuLgogICoKQEAg
LTYzMCw3ICs2MzAsNyBAQCB2b2lkIGV3a190aWxlX3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKEV3
a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlKQogICogRnJlZXplIGNhY2hlIHRv
IG5vdCBkbyBtYWludGVuYW5jZSB0YXNrcy4KICAqCiAgKiBNYWludGVuYW5jZSB0YXNrcyBvcHRp
bWl6ZSBjYWNoZSB1c2FnZSwgYnV0IG1heWJlIHdlIGtub3cgd2Ugc2hvdWxkCi0gKiBoZWlnaHRv
bGQgb24gdGhlbSB1bnRpbCB3ZSBkbyB0aGUgbGFzdCBvcGVyYXRpb24sIGluIHRoaXMgY2FzZSB3
ZSBmcmVlemUKKyAqIGhvbGQgb24gdGhlbSB1bnRpbCB3ZSBkbyB0aGUgbGFzdCBvcGVyYXRpb24s
IGluIHRoaXMgY2FzZSB3ZSBmcmVlemUKICAqIHdoaWxlIG9wZXJhdGluZyBhbmQgdGhlbiB0aGF3
IHdoZW4gd2UncmUgZG9uZS4KICAqCiAgKiBAc2VlIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3
KCkKQEAgLTcwNyw4ICs3MDcsOCBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3Rp
bGVfZ2V0KEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlLAogICogYmVjYXVz
ZSB1c3VhbGx5IHdlIHdhbnQgYSBsYXp5IG9wZXJhdGlvbiBmb3IgYmV0dGVyIHBlcmZvcm1hbmNl
LgogICoKICAqIEBwYXJhbSB0aWxlVW51c2VkQ2FjaGUgY2FjaGUgb2YgdW51c2VkIHRpbGVzCi0g
KiBAcGFyYW0gdCB0aWxlIHRvIGJlIGFkZGVkIHRvIGNhY2hlLgotICogQHBhcmFtIHRpbGVfZnJl
ZV9jYiBmdW5jdGlvbiB1c2VkIHRvIGZyZWUgdGlsZXMuCisgKiBAcGFyYW0gdGlsZSB0aWxlIHRv
IGJlIGFkZGVkIHRvIGNhY2hlLgorICogQHBhcmFtIHRpbGVGcmVlQ2FsbGJhY2sgZnVuY3Rpb24g
dXNlZCB0byBmcmVlIHRpbGVzLgogICogQHBhcmFtIGRhdGEgY29udGV4dCB0byBnaXZlIGJhY2sg
dG8gQGEgdGlsZV9mcmVlX2NiIGFzIGZpcnN0IGFyZ3VtZW50LgogICoKICAqIEByZXR1cm4gI3Ry
dWUgb24gc3VjY2VzcywgI2ZhbHNlIG90aGVyd2lzZS4gSWYgQGMgdGlsZS0+dmlzaWJsZQpAQCAt
NzE2LDcgKzcxNiw3IEBAIEVpbmFfQm9vbCBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9nZXQo
RXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUsCiAgKgogICogQHNlZSBld2tf
dGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCgpCiAgKi8KLUVpbmFfQm9vbCBld2tfdGlsZV91
bnVzZWRfY2FjaGVfdGlsZV9wdXQoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2Fj
aGUsIEV3a19UaWxlKiB0aWxlLCB2b2lkICgqIHRpbGVGcmVlQ2IpKHZvaWQqIGRhdGEsIEV3a19U
aWxlKiB0aWxlKSwgY29uc3Qgdm9pZCogZGF0YSkKK0VpbmFfQm9vbCBld2tfdGlsZV91bnVzZWRf
Y2FjaGVfdGlsZV9wdXQoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUsIEV3
a19UaWxlKiB0aWxlLCB2b2lkICgqIHRpbGVGcmVlQ2FsbGJhY2spKHZvaWQqIGRhdGEsIEV3a19U
aWxlKiB0aWxlKSwgY29uc3Qgdm9pZCogZGF0YSkKIHsKICAgICBFd2tfVGlsZV9VbnVzZWRfQ2Fj
aGVfRW50cnkqIHVudXNlZENhY2hlRW50cnk7CiAKQEAgLTczNyw3ICs3MzcsNyBAQCBFaW5hX0Jv
b2wgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfcHV0KEV3a19UaWxlX1VudXNlZF9DYWNoZSog
dGlsZVVudXNlZENhY2hlLAogCiAgICAgdW51c2VkQ2FjaGVFbnRyeS0+dGlsZSA9IHRpbGU7CiAg
ICAgdW51c2VkQ2FjaGVFbnRyeS0+d2VpZ2h0ID0gMDsgLyogY2FsY3VsYXRlZCBqdXN0IGJlZm9y
ZSBzb3J0ICovCi0gICAgdW51c2VkQ2FjaGVFbnRyeS0+dGlsZV9mcmVlLmNhbGxiYWNrID0gdGls
ZUZyZWVDYjsKKyAgICB1bnVzZWRDYWNoZUVudHJ5LT50aWxlX2ZyZWUuY2FsbGJhY2sgPSB0aWxl
RnJlZUNhbGxiYWNrOwogICAgIHVudXNlZENhY2hlRW50cnktPnRpbGVfZnJlZS5kYXRhID0gKHZv
aWQqKWRhdGE7CiAKICAgICB0aWxlVW51c2VkQ2FjaGUtPmVudHJpZXMuY291bnQrKzsKQEAgLTc1
OCw3ICs3NTgsNyBAQCB2b2lkIGV3a190aWxlX3VudXNlZF9jYWNoZV9kYmcoY29uc3QgRXdrX1Rp
bGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUpCiAgICAgRUlOQV9MSVNUX0ZPUkVBQ0go
dGlsZVVudXNlZENhY2hlLT5lbnRyaWVzLmxpc3QsIGxpc3QsIGl0ZW0pIHsKICAgICAgICAgY29u
c3QgRXdrX1RpbGUqIHRpbGUgPSBzdGF0aWNfY2FzdDxFd2tfVGlsZV9VbnVzZWRfQ2FjaGVfRW50
cnkqPihpdGVtKS0+dGlsZTsKICAgICAgICAgcHJpbnRmKCIgWyUzbHUsJTNsdSArICVkeCVkIEAg
JTAuM2ZdJWMiLAotICAgICAgICAgICAgICAgdGlsZS0+Y29sLCB0aWxlLT5yb3csIHRpbGUtPndp
ZHRoLCB0aWxlLT5oZWlnaHQsIHRpbGUtPnpvb20sCisgICAgICAgICAgICAgICB0aWxlLT5jb2x1
bW4sIHRpbGUtPnJvdywgdGlsZS0+d2lkdGgsIHRpbGUtPmhlaWdodCwgdGlsZS0+em9vbSwKICAg
ICAgICAgICAgICAgIHRpbGUtPnZpc2libGUgPyAnKicgOiAnICcpOwogCiAgICAgICAgIGlmICgh
KGNvdW50ICUgNCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCBmMzM4NWJkLi4z
MTU4MzhjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0yMTYsNTQgKzIxNiw1
NCBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAjaWZuZGVmIEVXS19UWVBFX0NI
RUNLCiAjZGVmaW5lIEVXS19WSUVXX1RZUEVfQ0hFQ0soZXdrVmlldywgLi4uKSBkbyB7IH0gd2hp
bGUgKDApCiAjZWxzZQotI2RlZmluZSBFV0tfVklFV19UWVBFX0NIRUNLKGV3a1ZpZXcsIC4uLikg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGRvIHsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgICAgICBjb25zdCBjaGFyKiBfdG1wX290eXBlID0gZXZhc19vYmplY3RfdHlwZV9nZXQoZXdr
Vmlldyk7ICAgICAgICAgICAgICAgXAotICAgICAgICBjb25zdCBFdmFzX1NtYXJ0KiBfdG1wX3Mg
PSBldmFzX29iamVjdF9zbWFydF9zbWFydF9nZXQoZXdrVmlldyk7ICAgICAgXAotICAgICAgICBp
ZiAoRUlOQV9VTkxJS0VMWSghX3RtcF9zKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgICAgICAgICAgRUlOQV9MT0dfQ1JJVCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICgiJXAgKCVzKSBpcyBu
b3QgYSBzbWFydCBvYmplY3QhIiwgZXdrVmlldywgICAgICAgICAgICAgICAgICAgXAotICAgICAg
ICAgICAgICAgIF90bXBfb3R5cGUgPyBfdG1wX290eXBlIDogIihudWxsKSIpOyAgICAgICAgICAg
ICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIH0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIEVX
S19WSUVXX1RZUEVfQ0hFQ0soZXdrVmlldywgLi4uKSBcCisgICAgZG8geyBcCisgICAgICAgIGNv
bnN0IGNoYXIqIF90bXBfb3R5cGUgPSBldmFzX29iamVjdF90eXBlX2dldChld2tWaWV3KTsgXAor
ICAgICAgICBjb25zdCBFdmFzX1NtYXJ0KiBfdG1wX3MgPSBldmFzX29iamVjdF9zbWFydF9zbWFy
dF9nZXQoZXdrVmlldyk7IFwKKyAgICAgICAgaWYgKEVJTkFfVU5MSUtFTFkoIV90bXBfcykpIHsg
XAorICAgICAgICAgICAgRUlOQV9MT0dfQ1JJVCBcCisgICAgICAgICAgICAgICAgKCIlcCAoJXMp
IGlzIG5vdCBhIHNtYXJ0IG9iamVjdCEiLCBld2tWaWV3LCBcCisgICAgICAgICAgICAgICAgX3Rt
cF9vdHlwZSA/IF90bXBfb3R5cGUgOiAiKG51bGwpIik7IFwKKyAgICAgICAgICAgIHJldHVybiBf
X1ZBX0FSR1NfXzsgXAorICAgICAgICB9IFwKICAgICAgICAgY29uc3QgRXZhc19TbWFydF9DbGFz
cyogX3RtcF9zYyA9IGV2YXNfc21hcnRfY2xhc3NfZ2V0KF90bXBfcyk7IFwKLSAgICAgICAgaWYg
KEVJTkFfVU5MSUtFTFkoIV90bXBfc2MpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICAgICAgICAgIEVJTkFfTE9HX0NSSVQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAoIiVwICglcykgaXMgbm90
IGEgc21hcnQgb2JqZWN0ISIsIGV3a1ZpZXcsICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAg
ICAgICAgICBfdG1wX290eXBlID8gX3RtcF9vdHlwZSA6ICIobnVsbCkiKTsgICAgICAgICAgICAg
ICAgICAgXAotICAgICAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBpZiAo
RUlOQV9VTkxJS0VMWShfdG1wX3NjLT5kYXRhICE9IGV3a1ZpZXdUeXBlU3RyaW5nKSkgeyAgICAg
ICAgXAotICAgICAgICAgICAgRUlOQV9MT0dfQ1JJVCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICgiJXAgKCVzKSBpcyBub3Qg
b2YgYW4gZXdrX3ZpZXcgKG5lZWQgJXAsIGdvdCAlcCkhIiwgICAgXAotICAgICAgICAgICAgICAg
IGV3a1ZpZXcsIF90bXBfb3R5cGUgPyBfdG1wX290eXBlIDogIihudWxsKSIsICAgICAgICAgICAg
ICAgICBcCi0gICAgICAgICAgICAgICAgZXdrVmlld1R5cGVTdHJpbmcsIF90bXBfc2MtPmRhdGEp
OyAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgfSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyAgICAgICAgaWYgKEVJTkFfVU5MSUtFTFkoIV90bXBfc2MpKSB7IFwKKyAgICAgICAgICAg
IEVJTkFfTE9HX0NSSVQgXAorICAgICAgICAgICAgICAgICgiJXAgKCVzKSBpcyBub3QgYSBzbWFy
dCBvYmplY3QhIiwgZXdrVmlldywgXAorICAgICAgICAgICAgICAgIF90bXBfb3R5cGUgPyBfdG1w
X290eXBlIDogIihudWxsKSIpOyBcCisgICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187IFwK
KyAgICAgICAgfSBcCisgICAgICAgIGlmIChFSU5BX1VOTElLRUxZKF90bXBfc2MtPmRhdGEgIT0g
ZXdrVmlld1R5cGVTdHJpbmcpKSB7IFwKKyAgICAgICAgICAgIEVJTkFfTE9HX0NSSVQgXAorICAg
ICAgICAgICAgICAgICgiJXAgKCVzKSBpcyBub3Qgb2YgYW4gZXdrX3ZpZXcgKG5lZWQgJXAsIGdv
dCAlcCkhIiwgXAorICAgICAgICAgICAgICAgIGV3a1ZpZXcsIF90bXBfb3R5cGUgPyBfdG1wX290
eXBlIDogIihudWxsKSIsIFwKKyAgICAgICAgICAgICAgICBld2tWaWV3VHlwZVN0cmluZywgX3Rt
cF9zYy0+ZGF0YSk7IFwKKyAgICAgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgXAorICAgICAg
ICB9IFwKICAgICB9IHdoaWxlICgwKQogI2VuZGlmCiAKLSNkZWZpbmUgRVdLX1ZJRVdfU0RfR0VU
KGV3a1ZpZXcsIHB0cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRXdr
X1ZpZXdfU21hcnRfRGF0YSogcHRyID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+
KGV2YXNfb2JqZWN0X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpKQorI2RlZmluZSBFV0tfVklFV19T
RF9HRVQoZXdrVmlldywgcG9pbnRlcikgXAorICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHBvaW50
ZXIgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZXZhc19vYmplY3Rfc21hcnRf
ZGF0YV9nZXQoZXdrVmlldykpCiAKLSNkZWZpbmUgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihl
d2tWaWV3LCBwdHIsIC4uLikgICAgICAgICAgXAotICAgIEVXS19WSUVXX1RZUEVfQ0hFQ0soZXdr
VmlldywgX19WQV9BUkdTX18pOyAgICAgICAgICAgICAgICBcCi0gICAgRVdLX1ZJRVdfU0RfR0VU
KGV3a1ZpZXcsIHB0cik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBpZiAoIXB0
cikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBD
UklUSUNBTCgibm8gc21hcnQgZGF0YSBmb3Igb2JqZWN0ICVwICglcykiLCAgICBcCi0gICAgICAg
ICAgICAgICAgIGV3a1ZpZXcsIGV2YXNfb2JqZWN0X3R5cGVfZ2V0KGV3a1ZpZXcpKTsgICAgICAg
ICAgIFwKLSAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorI2RlZmluZSBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBvaW50
ZXIsIC4uLikgXAorICAgIEVXS19WSUVXX1RZUEVfQ0hFQ0soZXdrVmlldywgX19WQV9BUkdTX18p
OyBcCisgICAgRVdLX1ZJRVdfU0RfR0VUKGV3a1ZpZXcsIHBvaW50ZXIpOyBcCisgICAgaWYgKCFw
b2ludGVyKSB7IFwKKyAgICAgICAgQ1JJVElDQUwoIm5vIHNtYXJ0IGRhdGEgZm9yIG9iamVjdCAl
cCAoJXMpIiwgXAorICAgICAgICAgICAgICAgICBld2tWaWV3LCBldmFzX29iamVjdF90eXBlX2dl
dChld2tWaWV3KSk7IFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyBcCiAgICAgfQogCi0j
ZGVmaW5lIEVXS19WSUVXX1BSSVZfR0VUKHNtYXJ0RGF0YSwgcHRyKSAgICAgICAgICAgICAgXAot
ICAgIEV3a19WaWV3X1ByaXZhdGVfRGF0YSAqcHRyID0gc21hcnREYXRhLT5fcHJpdgorI2RlZmlu
ZSBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEsIHBvaW50ZXIpIFwKKyAgICBFd2tfVmlld19Q
cml2YXRlX0RhdGEqIHBvaW50ZXIgPSBzbWFydERhdGEtPl9wcml2CiAKLSNkZWZpbmUgRVdLX1ZJ
RVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHRyLCAuLi4pICAgICAgICAgICAgICAg
XAotICAgIEVXS19WSUVXX1BSSVZfR0VUKHNtYXJ0RGF0YSwgcHRyKTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgaWYgKCFwdHIpIHsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBDUklUSUNBTCgibm8gcHJpdmF0
ZSBkYXRhIGZvciBvYmplY3QgJXAgKCVzKSIsICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAg
c21hcnREYXRhLT5zZWxmLCBldmFzX29iamVjdF90eXBlX2dldChzbWFydERhdGEtPnNlbGYpKTsg
ICAgIFwKLSAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisjZGVmaW5lIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFy
dERhdGEsIHBvaW50ZXIsIC4uLikgXAorICAgIEVXS19WSUVXX1BSSVZfR0VUKHNtYXJ0RGF0YSwg
cG9pbnRlcik7IFwKKyAgICBpZiAoIXBvaW50ZXIpIHsgXAorICAgICAgICBDUklUSUNBTCgibm8g
cHJpdmF0ZSBkYXRhIGZvciBvYmplY3QgJXAgKCVzKSIsIFwKKyAgICAgICAgICAgICAgICAgc21h
cnREYXRhLT5zZWxmLCBldmFzX29iamVjdF90eXBlX2dldChzbWFydERhdGEtPnNlbGYpKTsgXAor
ICAgICAgICByZXR1cm4gX19WQV9BUkdTX187IFwKICAgICB9CiAKICNkZWZpbmUgRVdLX1ZJRVdf
VElMRURfVFlQRV9DSEVDS19PUl9SRVRVUk4oZXdrVmlldywgLi4uKSBcCkBAIC00MTAsMTIgKzQx
MCwxMiBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc2Nyb2xsc19mbHVzaChFd2tfVmlld19Qcml2
YXRlX0RhdGEqIHByaXYpCiBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9mb2N1c19p
bihFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiB7CiAgICAgRVdLX1ZJRVdfUFJJVl9H
RVQoc21hcnREYXRhLCBwcml2KTsKLSAgICBXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXIqIGZjID0g
cHJpdi0+cGFnZS0+Zm9jdXNDb250cm9sbGVyKCk7Ci0gICAgREJHKCJld2tWaWV3PSVwLCBmYz0l
cCIsIHNtYXJ0RGF0YS0+c2VsZiwgZmMpOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChmYywgZmFsc2UpOworICAgIFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlciogZm9jdXNDb250
cm9sbGVyID0gcHJpdi0+cGFnZS0+Zm9jdXNDb250cm9sbGVyKCk7CisgICAgREJHKCJld2tWaWV3
PSVwLCBmb2N1c0NvbnRyb2xsZXI9JXAiLCBzbWFydERhdGEtPnNlbGYsIGZvY3VzQ29udHJvbGxl
cik7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGZvY3VzQ29udHJvbGxlciwg
ZmFsc2UpOwogCi0gICAgZmMtPnNldEFjdGl2ZSh0cnVlKTsKLSAgICBmYy0+c2V0Rm9jdXNlZCh0
cnVlKTsKKyAgICBmb2N1c0NvbnRyb2xsZXItPnNldEFjdGl2ZSh0cnVlKTsKKyAgICBmb2N1c0Nv
bnRyb2xsZXItPnNldEZvY3VzZWQodHJ1ZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTE3
OTAsNyArMTc5MCw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19wcmVfcmVuZGVyX3JlZ2lvbihFdmFz
X09iamVjdCogZXdrVmlldywgRXZhc19Db29yZCB4LCBFdmFzX0NvCiAgICAgRVdLX1ZJRVdfU0Rf
R0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBFV0tfVklFV19Q
UklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKHNtYXJ0RGF0YS0+YXBpLT5wcmVfcmVuZGVyX3JlZ2lvbiwg
ZmFsc2UpOwotICAgIGZsb2F0IGN1cl96b29tOworICAgIGZsb2F0IGN1cnJlbnRab29tOwogICAg
IEV2YXNfQ29vcmQgY29udGVudHNXaWR0aCwgY29udGVudHNIZWlnaHQ7CiAKICAgICAvKiBXaGVu
IGRvaW5nIGFuaW1hdGVkIHpvb20gaXQncyBub3QgcG9zc2libGUgdG8gY2FsbCBwcmUtcmVuZGVy
IHNpbmNlIGl0CkBAIC0xNzk5LDE1ICsxNzk5LDE1IEBAIEVpbmFfQm9vbCBld2tfdmlld19wcmVf
cmVuZGVyX3JlZ2lvbihFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19Db29yZCB4LCBFdmFzX0Nv
CiAgICAgaWYgKHByaXYtPmFuaW1hdGVkWm9vbS5hbmltYXRvcikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgY3VyX3pvb20gPSBld2tfZnJhbWVfcGFnZV96b29tX2dldChzbWFydERhdGEt
Pm1haW5fZnJhbWUpOworICAgIGN1cnJlbnRab29tID0gZXdrX2ZyYW1lX3BhZ2Vfem9vbV9nZXQo
c21hcnREYXRhLT5tYWluX2ZyYW1lKTsKIAotICAgIGlmIChjdXJfem9vbSA8IDAuMDAwMDEpCisg
ICAgaWYgKGN1cnJlbnRab29tIDwgMC4wMDAwMSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmICghZXdrX2ZyYW1lX2NvbnRlbnRzX3NpemVfZ2V0KHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSwg
JmNvbnRlbnRzV2lkdGgsICZjb250ZW50c0hlaWdodCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIGNvbnRlbnRzV2lkdGggKj0gem9vbSAvIGN1cl96b29tOwotICAgIGNvbnRlbnRzSGVp
Z2h0ICo9IHpvb20gLyBjdXJfem9vbTsKKyAgICBjb250ZW50c1dpZHRoICo9IHpvb20gLyBjdXJy
ZW50Wm9vbTsKKyAgICBjb250ZW50c0hlaWdodCAqPSB6b29tIC8gY3VycmVudFpvb207CiAgICAg
REJHKCJyZWdpb24gJWQsJWQrJWR4JWQgQCAlZiBjb250ZW50cz0lZHglZCIsIHgsIHksIHdpZHRo
LCBoZWlnaHQsIHpvb20sIGNvbnRlbnRzV2lkdGgsIGNvbnRlbnRzSGVpZ2h0KTsKIAogICAgIGlm
ICh4ICsgd2lkdGggPiBjb250ZW50c1dpZHRoKQpAQCAtMjk1Nyw4ICsyOTU3LDggQEAgdm9pZCBl
d2tfdmlld19yZXN0b3JlX3N0YXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCog
ZnJhbWUpCiAgKiBAcGFyYW0gZXdrVmlldyBDdXJyZW50IHZpZXcuCiAgKiBAcGFyYW0gamF2YXNj
cmlwdCBAYyB0cnVlIGlmIHRoZSBuZXcgd2luZG93IGlzIG9yaWdpbmF0ZWQgZnJvbSBqYXZhc2Ny
aXB0LAogICogQGMgZmFsc2Ugb3RoZXJ3aXNlCi0gKiBAcGFyYW0gd2lkdGhpbmRvd19mZWF0dXJl
cyBGZWF0dXJlcyBvZiB0aGUgbmV3IHdpbmRvdyBiZWluZyBjcmVhdGVkLiBJZiBpdCdzIEBjCi0g
KiBOVUxMLCBpdCB3aWxsIGJlIGNyZWF0ZWQgYSB3aW5kb3cgd2l0aCBkZWZhdWx0IGZlYXR1cmVz
LgorICogQHBhcmFtIHdpbmRvd19mZWF0dXJlcyBGZWF0dXJlcyBvZiB0aGUgbmV3IHdpbmRvdyBi
ZWluZyBjcmVhdGVkLiBJZiBpdCdzIEBjCisgKiAwLCBpdCB3aWxsIGJlIGNyZWF0ZWQgYSB3aW5k
b3cgd2l0aCBkZWZhdWx0IGZlYXR1cmVzLgogICoKICAqIEByZXR1cm4gTmV3IHZpZXcsIGluIGNh
c2Ugc21hcnQgY2xhc3MgaW1wbGVtZW50cyB0aGUgY3JlYXRpb24gb2YgbmV3IHdpbmRvd3M7CiAg
KiBlbHNlLCBjdXJyZW50IHZpZXcgQHBhcmFtIGV3a1ZpZXcgb3IgQGMgMCBvbiBmYWlsdXJlLgpA
QCAtMzA1MCw3ICszMDUwLDcgQEAgdm9pZCBld2tfdmlld190b29sYmFyc192aXNpYmxlX3NldChF
dmFzX09iamVjdCogZXdrVmlldywgYm9vbCB2aXNpYmxlKQogICovCiB2b2lkIGV3a192aWV3X3Rv
b2xiYXJzX3Zpc2libGVfZ2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sKiB2aXNpYmxlKQog
ewotICAgIERCRygiJXMsIG89JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CisgICAgREJHKCIlcywg
ZXdrVmlldz0lcCIsIF9fZnVuY19fLCBld2tWaWV3KTsKICAgICAqdmlzaWJsZSA9IGZhbHNlOwog
ICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgInRvb2xiYXJzLHZp
c2libGUsZ2V0IiwgdmlzaWJsZSk7CiB9CkBAIC0zMDgzLDcgKzMwODMsNyBAQCB2b2lkIGV3a192
aWV3X3N0YXR1c2Jhcl92aXNpYmxlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCAgdmlz
aWJsZSkKICAqLwogdm9pZCBld2tfdmlld19zdGF0dXNiYXJfdmlzaWJsZV9nZXQoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIGJvb2wqIHZpc2libGUpCiB7Ci0gICAgREJHKCIlcywgbz0lcCIsIF9fZnVu
Y19fLCBld2tWaWV3KTsKKyAgICBEQkcoIiVzLCBld2tWaWV3PSVwIiwgX19mdW5jX18sIGV3a1Zp
ZXcpOwogICAgICp2aXNpYmxlID0gZmFsc2U7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJh
Y2tfY2FsbChld2tWaWV3LCAic3RhdHVzYmFyLHZpc2libGUsZ2V0IiwgdmlzaWJsZSk7CiB9CkBA
IC0zMTMyLDcgKzMxMzIsNyBAQCB2b2lkIGV3a192aWV3X3Njcm9sbGJhcnNfdmlzaWJsZV9zZXQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgdmlzaWJsZSkKICAqLwogdm9pZCBld2tfdmlld19z
Y3JvbGxiYXJzX3Zpc2libGVfZ2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sKiB2aXNpYmxl
KQogewotICAgIERCRygiJXMsIG89JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CisgICAgREJHKCIl
cywgZXdrVmlldz0lcCIsIF9fZnVuY19fLCBld2tWaWV3KTsKICAgICAqdmlzaWJsZSA9IGZhbHNl
OwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgInNjcm9sbGJh
cnMsdmlzaWJsZSxnZXQiLCB2aXNpYmxlKTsKIH0KQEAgLTMxNjUsNyArMzE2NSw3IEBAIHZvaWQg
ZXdrX3ZpZXdfbWVudWJhcl92aXNpYmxlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCB2
aXNpYmxlKQogICovCiB2b2lkIGV3a192aWV3X21lbnViYXJfdmlzaWJsZV9nZXQoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIGJvb2wqIHZpc2libGUpCiB7Ci0gICAgREJHKCIlcywgbz0lcCIsIF9fZnVu
Y19fLCBld2tWaWV3KTsKKyAgICBEQkcoIiVzLCBld2tWaWV3PSVwIiwgX19mdW5jX18sIGV3a1Zp
ZXcpOwogICAgICp2aXNpYmxlID0gZmFsc2U7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJh
Y2tfY2FsbChld2tWaWV3LCAibWVudWJhcix2aXNpYmxlLGdldCIsIHZpc2libGUpOwogfQpAQCAt
MzU5MSw3ICszNTkxLDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3pvb21fcmFuZ2Vfc2V0KEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBmbG9hdCBtaW5TY2FsZSwgZmxvYXQgbWEKICAgICBFV0tfVklFV19Q
UklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAKICAgICBpZiAobWF4
U2NhbGUgPCBtaW5TY2FsZSkgewotICAgICAgICBXUk4oIm1pbl9zY2FsZSBpcyBsYXJnZXIgdGhh
biBtYXhfc2NhbGUiKTsKKyAgICAgICAgV1JOKCJtaW5TY2FsZSBpcyBsYXJnZXIgdGhhbiBtYXhT
Y2FsZSIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfc2luZ2xlLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlld19zaW5nbGUuY3BwCmluZGV4IGVkNzI2MzMuLjhmNzQ5OTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19zaW5nbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19zaW5nbGUuY3BwCkBAIC05LDcgKzksNyBAQAogCiAg
ICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCiAgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJjaEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgICAgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAKICAgICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCkBAIC0yMDksOCArMjA5LDggQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3Zp
ZXdfc2luZ2xlX3NtYXJ0X3JlcGFpbnRzX3Byb2Nlc3MoRXdrX1ZpZXdfU21hcnRfRGF0YSogc20K
ICAgICBFdmFzX0Nvb3JkIG93LCBvaDsKICAgICB2b2lkKiBwaXhlbHM7CiAgICAgRWluYV9SZWN0
YW5nbGUqIHJlY3Q7Ci0gICAgY29uc3QgRWluYV9SZWN0YW5nbGUqIHByOwotICAgIGNvbnN0IEVp
bmFfUmVjdGFuZ2xlKiBwcl9lbmQ7CisgICAgY29uc3QgRWluYV9SZWN0YW5nbGUqIHBhaW50UmVx
dWVzdDsKKyAgICBjb25zdCBFaW5hX1JlY3RhbmdsZSogcGFpbnRSZXF1ZXN0RW5kOwogICAgIEVp
bmFfVGlsZXIqIHRpbGVyOwogICAgIEVpbmFfSXRlcmF0b3IqIGl0ZXJhdG9yOwogICAgIGNhaXJv
X3N0YXR1c190IHN0YXR1czsKQEAgLTI3NywxMCArMjc3LDEwIEBAIHN0YXRpYyBFaW5hX0Jvb2wg
X2V3a192aWV3X3NpbmdsZV9zbWFydF9yZXBhaW50c19wcm9jZXNzKEV3a19WaWV3X1NtYXJ0X0Rh
dGEqIHNtCiAKICAgICBld2tfdmlld19sYXlvdXRfaWZfbmVlZGVkX3JlY3Vyc2l2ZShzbWFydERh
dGEtPl9wcml2KTsKIAotICAgIHByID0gZXdrX3ZpZXdfcmVwYWludHNfcG9wKHNtYXJ0RGF0YS0+
X3ByaXYsICZjb3VudCk7Ci0gICAgcHJfZW5kID0gcHIgKyBjb3VudDsKLSAgICBmb3IgKDsgcHIg
PCBwcl9lbmQ7IHByKyspCi0gICAgICAgIGVpbmFfdGlsZXJfcmVjdF9hZGQodGlsZXIsIHByKTsK
KyAgICBwYWludFJlcXVlc3QgPSBld2tfdmlld19yZXBhaW50c19wb3Aoc21hcnREYXRhLT5fcHJp
diwgJmNvdW50KTsKKyAgICBwYWludFJlcXVlc3RFbmQgPSBwYWludFJlcXVlc3QgKyBjb3VudDsK
KyAgICBmb3IgKDsgcGFpbnRSZXF1ZXN0IDwgcGFpbnRSZXF1ZXN0RW5kOyBwYWludFJlcXVlc3Qr
KykKKyAgICAgICAgZWluYV90aWxlcl9yZWN0X2FkZCh0aWxlciwgcGFpbnRSZXF1ZXN0KTsKIAog
ICAgIGl0ZXJhdG9yID0gZWluYV90aWxlcl9pdGVyYXRvcl9uZXcodGlsZXIpOwogICAgIGlmICgh
aXRlcmF0b3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190
aWxlZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwCmluZGV4
IGI3MmQ2YWUuLjRlOWQ4MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlld190aWxlZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVk
LmNwcApAQCAtNzcsMTIgKzc3LDEyIEBAIHN0YXRpYyB2b2lkKiBfZXdrX3ZpZXdfdGlsZWRfdXBk
YXRlc19wcm9jZXNzX3ByZSh2b2lkKiBkYXRhLCBFdmFzX09iamVjdCogZXdrVmllCiAKIHN0YXRp
YyBFdmFzX09iamVjdCogX2V3a192aWV3X3RpbGVkX3NtYXJ0X2JhY2tpbmdfc3RvcmVfYWRkKEV3
a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIHsKLSAgICBFdmFzX09iamVjdCogYnMgPSBl
d2tfdGlsZWRfYmFja2luZ19zdG9yZV9hZGQoc21hcnREYXRhLT5iYXNlLmV2YXMpOworICAgIEV2
YXNfT2JqZWN0KiBiYWNraW5nU3RvcmUgPSBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9hZGQoc21h
cnREYXRhLT5iYXNlLmV2YXMpOwogICAgIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3JlbmRlcl9j
Yl9zZXQKLSAgICAgICAgKGJzLCBfZXdrX3ZpZXdfdGlsZWRfcmVuZGVyX2NiLCBzbWFydERhdGEt
Pl9wcml2KTsKKyAgICAgICAgKGJhY2tpbmdTdG9yZSwgX2V3a192aWV3X3RpbGVkX3JlbmRlcl9j
Yiwgc21hcnREYXRhLT5fcHJpdik7CiAgICAgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdXBkYXRl
c19wcm9jZXNzX3ByZV9zZXQKLSAgICAgICAgKGJzLCBfZXdrX3ZpZXdfdGlsZWRfdXBkYXRlc19w
cm9jZXNzX3ByZSwgc21hcnREYXRhLT5fcHJpdik7Ci0gICAgcmV0dXJuIGJzOworICAgICAgICAo
YmFja2luZ1N0b3JlLCBfZXdrX3ZpZXdfdGlsZWRfdXBkYXRlc19wcm9jZXNzX3ByZSwgc21hcnRE
YXRhLT5fcHJpdik7CisgICAgcmV0dXJuIGJhY2tpbmdTdG9yZTsKIH0KIAogc3RhdGljIHZvaWQK
QEAgLTk3LDE3ICs5NywxNyBAQCBfZXdrX3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2Vk
X2NiKHZvaWQqIGRhdGEsIEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKgogCiBzdGF0aWMgdm9p
ZCBfZXdrX3ZpZXdfdGlsZWRfc21hcnRfYWRkKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewotICAg
IEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkOworICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0
RGF0YTsKIAogICAgIF9wYXJlbnRfc2Muc2MuYWRkKGV3a1ZpZXcpOwogCi0gICAgc2QgPSBzdGF0
aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZXZhc19vYmplY3Rfc21hcnRfZGF0YV9nZXQo
ZXdrVmlldykpOwotICAgIGlmICghc2QpCisgICAgc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdr
X1ZpZXdfU21hcnRfRGF0YSo+KGV2YXNfb2JqZWN0X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpKTsK
KyAgICBpZiAoIXNtYXJ0RGF0YSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZXZhc19vYmplY3Rf
c21hcnRfY2FsbGJhY2tfYWRkKAotICAgICAgICBzZC0+bWFpbl9mcmFtZSwgImNvbnRlbnRzLHNp
emUsY2hhbmdlZCIsCi0gICAgICAgIF9ld2tfdmlld190aWxlZF9jb250ZW50c19zaXplX2NoYW5n
ZWRfY2IsIHNkKTsKKyAgICAgICAgc21hcnREYXRhLT5tYWluX2ZyYW1lLCAiY29udGVudHMsc2l6
ZSxjaGFuZ2VkIiwKKyAgICAgICAgX2V3a192aWV3X3RpbGVkX2NvbnRlbnRzX3NpemVfY2hhbmdl
ZF9jYiwgc21hcnREYXRhKTsKIH0KIAogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfdGlsZWRf
c21hcnRfc2Nyb2xsc19wcm9jZXNzKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKQEAg
LTM5MiwxNCArMzkyLDE0IEBAIEV2YXNfT2JqZWN0KiBld2tfdmlld190aWxlZF9hZGQoRXZhcyog
Y2FudmFzKQogCiBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIGV3a192aWV3X3RpbGVkX3VudXNlZF9j
YWNoZV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7Ci0gICAgRXdrX1ZpZXdfU21h
cnRfRGF0YSogc2QgPSBld2tfdmlld19zbWFydF9kYXRhX2dldChld2tWaWV3KTsKLSAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc2QsIDApOwotICAgIHJldHVybiBld2tfdGlsZWRf
YmFja2luZ19zdG9yZV90aWxlX3VudXNlZF9jYWNoZV9nZXQoc2QtPmJhY2tpbmdfc3RvcmUpOwor
ICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9IGV3a192aWV3X3NtYXJ0X2RhdGFf
Z2V0KGV3a1ZpZXcpOworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzbWFydERh
dGEsIDApOworICAgIHJldHVybiBld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX3VudXNlZF9j
YWNoZV9nZXQoc21hcnREYXRhLT5iYWNraW5nX3N0b3JlKTsKIH0KIAogdm9pZCBld2tfdmlld190
aWxlZF91bnVzZWRfY2FjaGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfVGlsZV9VbnVz
ZWRfQ2FjaGUqIGNhY2hlKQogewotICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gZXdrX3Zp
ZXdfc21hcnRfZGF0YV9nZXQoZXdrVmlldyk7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk4oc2QpOwotICAgIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfdW51c2VkX2NhY2hlX3Nl
dChzZC0+YmFja2luZ19zdG9yZSwgY2FjaGUpOworICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNt
YXJ0RGF0YSA9IGV3a192aWV3X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpOworICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOKHNtYXJ0RGF0YSk7CisgICAgZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfdGlsZV91bnVzZWRfY2FjaGVfc2V0KHNtYXJ0RGF0YS0+YmFja2luZ19zdG9yZSwgY2FjaGUp
OwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124463</attachid>
            <date>2012-01-29 05:01:20 -0800</date>
            <delta_ts>2012-01-29 23:00:27 -0800</delta_ts>
            <desc>new style patch</desc>
            <filename>new_style.patch</filename>
            <type>text/plain</type>
            <size>78978</size>
            <attacher name="JungJik Lee">jungjik.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA4OGQzYWU5Li44MTYxNGYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTAxIEBACisyMDEyLTAxLTI5ICBKdW5nSmlrIExlZSAgPGp1bmdqaWsubGVlQHNh
bXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIEFkb3B0IEMrKyBzdHlsZSB1c2luZyBjYW1lbENh
c2UgYW5kIGZ1bGwgdmFyaWFibGUgbmFtZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03NjM3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1vZGlmeSB0aGUgY29kZSB0byB1c2UgY2FtZWxDYXNlIGFuZCBz
cGVsbCBvdXQgdmFyaWFibGUgbmFtZXMgaW5zdGVhZCBvZiB1c2luZyBhYmJyZXZpYXRpb25zLgor
ICAgICAgICBNb2RpZnkgdGhlIGNvbW1lbnRzIHdoaWNoIGRvIG5vdCBtYXRjaCB3aXRoIGFjdHVh
bCBwYXJhbWV0ZXJzIGFuZCBjb3JyZWN0IG1pc3NwZWxsZWQgd29yZHMuCisgICAgICAgIFRoZSBs
b2dpYyBvZiB0aGUgY29kZSBpcyBub3QgY2hhbmdlZC4KKworICAgICAgICAqIGV3ay9ld2tfZnJh
bWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1lX3NlbGVjdGlvbl9nZXQpOgorICAgICAgICAoZXdr
X2ZyYW1lX2ZlZWRfZm9jdXNfaW4pOgorICAgICAgICAoRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKToK
KyAgICAgICAgKiBld2svZXdrX2hpc3RvcnkuY3BwOgorICAgICAgICAoZXdrX2hpc3RvcnlfaXRl
bV9uZXcpOgorICAgICAgICAoZXdrX2hpc3RvcnlfaXRlbV90aXRsZV9nZXQpOgorICAgICAgICAo
ZXdrX2hpc3RvcnlfaXRlbV90aXRsZV9hbHRlcm5hdGVfZ2V0KToKKyAgICAgICAgKGV3a19oaXN0
b3J5X2l0ZW1fdXJpX2dldCk6CisgICAgICAgIChld2tfaGlzdG9yeV9pdGVtX3VyaV9vcmlnaW5h
bF9nZXQpOgorICAgICAgICAqIGV3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5jcHA6CisgICAg
ICAgIChfRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSk6CisgICAgICAgIChfRXdrX1RpbGVk
X0JhY2tpbmdfU3RvcmVfRGF0YSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
dGlsZV9hc3NvY2lhdGUpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVf
ZGlzc29jaWF0ZSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRl
cl9yZXF1ZXN0X2NsZWFyKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVf
cmVuZGVyX3JlcXVlc3RfcHJvY2Vzc19zaW5nbGUpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX2l0ZW1fZmlsbCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
aXRlbV9hZGQpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fc21vb3Ro
X3NjYWxlX3NldCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19jb2xz
X2VuZF9hZGQpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfcm93c19h
bGxfZGVsKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9yZW5kZXIpOgorICAg
ICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX21lbV9kYmcpOgorICAgICAgICAoX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3NpZ191c3IpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3NtYXJ0X2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21h
cnRfZGVsKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9tb3ZlKToK
KyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9yZXNpemUpOgorICAgICAg
ICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3JlY2FsY19yZW5kZXJlcnMpOgorICAgICAgICAo
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfZGJnKToKKyAgICAgICAgKF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV92aWV3X3dyYXBfdXApOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3ZpZXdfd3JhcF9kb3duKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV92aWV3X3dyYXBfbGVmdCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmll
d19yZWZpbGwpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfcG9zX2Fw
cGx5KToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGVf
b2Zmc2V0X2ZvcmNlKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9j
YWxjdWxhdGVfb2Zmc2V0KToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFy
dF9jYWxjdWxhdGVfcG9zKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFy
dF9jYWxjdWxhdGUpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9m
dWxsX29mZnNldF9zZXRfaW50ZXJuYWwpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3NldCk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfYWRkKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV96b29tX3NldF9pbnRlcm5hbCk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19z
dG9yZV96b29tX3NldCk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3dl
YWtfc2V0KToKKyAgICAgICAgKGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZpeF9vZmZzZXRzKToK
KyAgICAgICAgKGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZsdXNoKToKKyAgICAgICAgKGV3a190
aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVnaW9uKToKKyAgICAgICAgKGV3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVsYXRpdmVfcmFkaXVzKToKKyAgICAgICAgKiBl
d2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuaDoKKyAgICAgICAgKF9Fd2tfVGlsZSk6CisgICAg
ICAgICogZXdrL2V3a190aWxlZF9tYXRyaXguY3BwOgorICAgICAgICAoX0V3a19UaWxlX01hdHJp
eCk6CisgICAgICAgIChfZXdrX3RpbGVfbWF0cml4X2NlbGxfZnJlZSk6CisgICAgICAgIChfZXdr
X3RpbGVfbWF0cml4X3RpbGVfZnJlZSk6CisgICAgICAgIChld2tfdGlsZV9tYXRyaXhfbmV3KToK
KyAgICAgICAgKGV3a190aWxlX21hdHJpeF9mcmVlKToKKyAgICAgICAgKGV3a190aWxlX21hdHJp
eF91bnVzZWRfY2FjaGVfZ2V0KToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF90aWxlX2V4YWN0
X2dldCk6CisgICAgICAgIChld2tfdGlsZV9tYXRyaXhfdGlsZV9uZXcpOgorICAgICAgICAoZXdr
X3RpbGVfbWF0cml4X3RpbGVfcHV0KToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF9kYmcpOgor
ICAgICAgICAoZXdrX3RpbGVfbWF0cml4X2ZyZWV6ZSk6CisgICAgICAgIChld2tfdGlsZV9tYXRy
aXhfdGhhdyk6CisgICAgICAgICogZXdrL2V3a190aWxlZF9tb2RlbC5jcHA6CisgICAgICAgICh0
aWxlX2FjY291bnQpOgorICAgICAgICAoZXdrX3RpbGVfdXBkYXRlc19wcm9jZXNzKToKKyAgICAg
ICAgKGV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1dCk6CisgICAgICAgIChld2tfdGlsZV91
bnVzZWRfY2FjaGVfZGJnKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAo
X2V3a192aWV3X3NtYXJ0X2ZvY3VzX2luKToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9wcmVf
cmVuZGVyX3JlZ2lvbik6CisgICAgICAgIChld2tfdmlld19wcmVfcmVuZGVyX3JlZ2lvbik6Cisg
ICAgICAgIChld2tfdmlld190b29sYmFyc192aXNpYmxlX2dldCk6CisgICAgICAgIChld2tfdmll
d19zdGF0dXNiYXJfdmlzaWJsZV9nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2Nyb2xsYmFyc192
aXNpYmxlX2dldCk6CisgICAgICAgIChld2tfdmlld19tZW51YmFyX3Zpc2libGVfZ2V0KToKKyAg
ICAgICAgKGV3a192aWV3X3pvb21fcmFuZ2Vfc2V0KToKKyAgICAgICAgKiBld2svZXdrX3ZpZXdf
c2luZ2xlLmNwcDoKKyAgICAgICAgKF9ld2tfdmlld19zaW5nbGVfc21hcnRfcmVwYWludHNfcHJv
Y2Vzcyk6CisgICAgICAgICogZXdrL2V3a192aWV3X3RpbGVkLmNwcDoKKyAgICAgICAgKF9ld2tf
dmlld190aWxlZF9zbWFydF9iYWNraW5nX3N0b3JlX2FkZCk6CisgICAgICAgIChfZXdrX3ZpZXdf
dGlsZWRfc21hcnRfYWRkKToKKyAgICAgICAgKGV3a192aWV3X3RpbGVkX3VudXNlZF9jYWNoZV9n
ZXQpOgorICAgICAgICAoZXdrX3ZpZXdfdGlsZWRfdW51c2VkX2NhY2hlX3NldCk6CisKIDIwMTIt
MDEtMjYgIFRvbWFzeiBNb3Jhd3NraSAgPHQubW9yYXdza2lAc2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgW0VGTF0gQWRkZWQgbWlzc2luZyBORVRTQ0FQRV9QTFVHSU5fQVBJIG1hY3JvLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAppbmRleCA5NjFmYTBiLi44YmExOGRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtODYsMjggKzg2LDI4IEBAIHN0cnVjdCBFaW5hX0l0
ZXJhdG9yX0V3a19GcmFtZSB7CiAjaWZuZGVmIEVXS19UWVBFX0NIRUNLCiAjZGVmaW5lIEVXS19G
UkFNRV9UWVBFX0NIRUNLKGV3a0ZyYW1lLCAuLi4pIGRvIHsgfSB3aGlsZSAoMCkKICNlbHNlCi0j
ZGVmaW5lIEVXS19GUkFNRV9UWVBFX0NIRUNLKGV3a0ZyYW1lLCAuLi4pICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBjb25zdCBj
aGFyKiBfdG1wX290eXBlID0gZXZhc19vYmplY3RfdHlwZV9nZXQoZXdrRnJhbWUpOyAgICAgICAg
ICAgICAgIFwKLSAgICAgICAgaWYgKEVJTkFfVU5MSUtFTFkoX3RtcF9vdHlwZSAhPSBFV0tfRlJB
TUVfVFlQRV9TVFIpKSB7ICAgICAgICAgIFwKLSAgICAgICAgICAgIEVJTkFfTE9HX0NSSVQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAg
ICAgICAoIiVwICglcykgaXMgbm90IG9mIGFuIGV3a19mcmFtZSEiLCBld2tGcmFtZSwgICAgICAg
ICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgX3RtcF9vdHlwZSA/IF90bXBfb3R5cGUgOiAi
KG51bGwpIik7ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4gX19WQV9B
UkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAg
IH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisjZGVmaW5lIEVXS19GUkFNRV9UWVBFX0NIRUNLKGV3a0ZyYW1lLCAuLi4pIFwK
KyAgICBkbyB7IFwKKyAgICAgICAgY29uc3QgY2hhciogX3RtcF9vdHlwZSA9IGV2YXNfb2JqZWN0
X3R5cGVfZ2V0KGV3a0ZyYW1lKTsgXAorICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWShfdG1wX290
eXBlICE9IEVXS19GUkFNRV9UWVBFX1NUUikpIHsgXAorICAgICAgICAgICAgRUlOQV9MT0dfQ1JJ
VCBcCisgICAgICAgICAgICAgICAgKCIlcCAoJXMpIGlzIG5vdCBvZiBhbiBld2tfZnJhbWUhIiwg
ZXdrRnJhbWUsIFwKKyAgICAgICAgICAgICAgICBfdG1wX290eXBlID8gX3RtcF9vdHlwZSA6ICIo
bnVsbCkiKTsgXAorICAgICAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyBcCisgICAgICAgIH0g
XAogICAgIH0gd2hpbGUgKDApCiAjZW5kaWYKIAotI2RlZmluZSBFV0tfRlJBTUVfU0RfR0VUKGV3
a0ZyYW1lLCBwdHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRXdrX0Zy
YW1lX1NtYXJ0X0RhdGEqIHB0ciA9IHN0YXRpY19jYXN0PEV3a19GcmFtZV9TbWFydF9EYXRhKj4o
ZXZhc19vYmplY3Rfc21hcnRfZGF0YV9nZXQoZXdrRnJhbWUpKQorI2RlZmluZSBFV0tfRlJBTUVf
U0RfR0VUKGV3a0ZyYW1lLCBwb2ludGVyKSBcCisgICAgRXdrX0ZyYW1lX1NtYXJ0X0RhdGEqIHBv
aW50ZXIgPSBzdGF0aWNfY2FzdDxFd2tfRnJhbWVfU21hcnRfRGF0YSo+KGV2YXNfb2JqZWN0X3Nt
YXJ0X2RhdGFfZ2V0KGV3a0ZyYW1lKSkKIAotI2RlZmluZSBFV0tfRlJBTUVfU0RfR0VUX09SX1JF
VFVSTihld2tGcmFtZSwgcHRyLCAuLi4pICAgICAgICAgXAotICAgIEVXS19GUkFNRV9UWVBFX0NI
RUNLKGV3a0ZyYW1lLCBfX1ZBX0FSR1NfXyk7ICAgICAgICAgICAgICAgXAotICAgIEVXS19GUkFN
RV9TRF9HRVQoZXdrRnJhbWUsIHB0cik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IGlmICghcHRyKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgIENSSVRJQ0FMKCJubyBzbWFydCBkYXRhIGZvciBvYmplY3QgJXAgKCVzKSIsICAgIFwK
LSAgICAgICAgICAgICAgICAgZXdrRnJhbWUsIGV2YXNfb2JqZWN0X3R5cGVfZ2V0KGV3a0ZyYW1l
KSk7ICAgICAgICAgICBcCi0gICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4oZXdr
RnJhbWUsIHBvaW50ZXIsIC4uLikgXAorICAgIEVXS19GUkFNRV9UWVBFX0NIRUNLKGV3a0ZyYW1l
LCBfX1ZBX0FSR1NfXyk7IFwKKyAgICBFV0tfRlJBTUVfU0RfR0VUKGV3a0ZyYW1lLCBwb2ludGVy
KTsgXAorICAgIGlmICghcG9pbnRlcikgeyBcCisgICAgICAgIENSSVRJQ0FMKCJubyBzbWFydCBk
YXRhIGZvciBvYmplY3QgJXAgKCVzKSIsIFwKKyAgICAgICAgICAgICAgICAgZXdrRnJhbWUsIGV2
YXNfb2JqZWN0X3R5cGVfZ2V0KGV3a0ZyYW1lKSk7IFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJH
U19fOyBcCiAgICAgfQogCiBzdGF0aWMgRXZhc19TbWFydF9DbGFzcyBfcGFyZW50X3NjID0gRVZB
U19TTUFSVF9DTEFTU19JTklUX05VTEw7CkBAIC00NjgsMTAgKzQ2OCwxMCBAQCBjaGFyKiBld2tf
ZnJhbWVfc2VsZWN0aW9uX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrRnJhbWUpCiB7CiAgICAg
RVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4oZXdrRnJhbWUsIHNtYXJ0RGF0YSwgMCk7CiAgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNtYXJ0RGF0YS0+ZnJhbWUsIDApOwotICAg
IFdURjo6Q1N0cmluZyBzID0gc21hcnREYXRhLT5mcmFtZS0+ZWRpdG9yKCktPnNlbGVjdGVkVGV4
dCgpLnV0ZjgoKTsKLSAgICBpZiAocy5pc051bGwoKSkKKyAgICBXVEY6OkNTdHJpbmcgc2VsZWN0
ZWRUZXh0ID0gc21hcnREYXRhLT5mcmFtZS0+ZWRpdG9yKCktPnNlbGVjdGVkVGV4dCgpLnV0Zjgo
KTsKKyAgICBpZiAoc2VsZWN0ZWRUZXh0LmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gMDsKLSAg
ICByZXR1cm4gc3RyZHVwKHMuZGF0YSgpKTsKKyAgICByZXR1cm4gc3RyZHVwKHNlbGVjdGVkVGV4
dC5kYXRhKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX2ZyYW1lX3RleHRfc2VhcmNoKGNvbnN0IEV2
YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgY2hhciogdGV4dCwgRWluYV9Cb29sIGNhc2VTZW5z
aXRpdmUsIEVpbmFfQm9vbCBmb3J3YXJkLCBFaW5hX0Jvb2wgd3JhcCkKQEAgLTgzNCw4ICs4MzQs
OCBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZlZWRfZm9jdXNfaW4oRXZhc19PYmplY3QqIGV3a0Zy
YW1lKQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBzbWFydERh
dGEsIGZhbHNlKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnREYXRh
LT5mcmFtZSwgZmFsc2UpOwotICAgIFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlciogYyA9IHNtYXJ0
RGF0YS0+ZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCk7Ci0gICAgYy0+c2V0Rm9jdXNl
ZEZyYW1lKHNtYXJ0RGF0YS0+ZnJhbWUpOworICAgIFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlciog
Zm9jdXNDb250cm9sbGVyID0gc21hcnREYXRhLT5mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xs
ZXIoKTsKKyAgICBmb2N1c0NvbnRyb2xsZXItPnNldEZvY3VzZWRGcmFtZShzbWFydERhdGEtPmZy
YW1lKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTc3NCw3ICsxNzc0LDcgQEAgdm9pZCBl
d2tfZnJhbWVfbWl4ZWRfY29udGVudF9ydW5fc2V0KEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgYm9v
bCBoYXNSdW4pCiAKIG5hbWVzcGFjZSBFV0tQcml2YXRlIHsKIAotV2ViQ29yZTo6RnJhbWUgKmNv
cmVGcmFtZShjb25zdCBFdmFzX09iamVjdCAqZXdrRnJhbWUpCitXZWJDb3JlOjpGcmFtZSogY29y
ZUZyYW1lKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKIHsKICAgICBFV0tfRlJBTUVfU0Rf
R0VUX09SX1JFVFVSTihld2tGcmFtZSwgc21hcnREYXRhLCAwKTsKICAgICByZXR1cm4gc21hcnRE
YXRhLT5mcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaGlzdG9y
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2hpc3RvcnkuY3BwCmluZGV4IGEzOTg3
NTkuLmVkMWI5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaGlzdG9y
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19oaXN0b3J5LmNwcApAQCAtMjU1
LDkgKzI1NSw5IEBAIEV3a19IaXN0b3J5X0l0ZW0qIGV3a19oaXN0b3J5X2l0ZW1fbmV3X2Zyb21f
Y29yZShXZWJDb3JlOjpIaXN0b3J5SXRlbSogY29yZSkKIAogRXdrX0hpc3RvcnlfSXRlbSogZXdr
X2hpc3RvcnlfaXRlbV9uZXcoY29uc3QgY2hhciogdXJpLCBjb25zdCBjaGFyKiB0aXRsZSkKIHsK
LSAgICBXVEY6OlN0cmluZyB1ID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHVyaSk7Ci0gICAgV1RG
OjpTdHJpbmcgdCA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOCh0aXRsZSk7Ci0gICAgV1RGOjpSZWZQ
dHI8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+IGNvcmUgPSBXZWJDb3JlOjpIaXN0b3J5SXRlbTo6Y3Jl
YXRlKHUsIHQsIDApOworICAgIFdURjo6U3RyaW5nIHVyaVN0cmluZyA9IFdURjo6U3RyaW5nOjpm
cm9tVVRGOCh1cmkpOworICAgIFdURjo6U3RyaW5nIHRpdGxlU3RyaW5nID0gV1RGOjpTdHJpbmc6
OmZyb21VVEY4KHRpdGxlKTsKKyAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpIaXN0b3J5SXRlbT4g
Y29yZSA9IFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpjcmVhdGUodXJpU3RyaW5nLCB0aXRsZVN0cmlu
ZywgMCk7CiAgICAgRXdrX0hpc3RvcnlfSXRlbSogaXRlbSA9IGV3a19oaXN0b3J5X2l0ZW1fbmV3
X2Zyb21fY29yZShjb3JlLnJlbGVhc2UoKS5sZWFrUmVmKCkpOwogICAgIHJldHVybiBpdGVtOwog
fQpAQCAtMjg3LDE5ICsyODcsMTkgQEAgY29uc3QgY2hhciogZXdrX2hpc3RvcnlfaXRlbV90aXRs
ZV9nZXQoY29uc3QgRXdrX0hpc3RvcnlfSXRlbSogaXRlbSkKIHsKICAgICBFV0tfSElTVE9SWV9J
VEVNX0NPUkVfR0VUX09SX1JFVFVSTihpdGVtLCBjb3JlLCAwKTsKICAgICAvLyBoaWRlIHRoZSBm
b2xsb3dpbmcgb3B0aW16YXRpb24gZnJvbSBvdXRzaWRlCi0gICAgRXdrX0hpc3RvcnlfSXRlbSog
aXRlbTEgPSBjb25zdF9jYXN0PEV3a19IaXN0b3J5X0l0ZW0qPihpdGVtKTsKLSAgICBlaW5hX3N0
cmluZ3NoYXJlX3JlcGxhY2UoJml0ZW0xLT50aXRsZSwgY29yZS0+dGl0bGUoKS51dGY4KCkuZGF0
YSgpKTsKLSAgICByZXR1cm4gaXRlbTEtPnRpdGxlOworICAgIEV3a19IaXN0b3J5X0l0ZW0qIGhp
c3RvcnlJdGVtID0gY29uc3RfY2FzdDxFd2tfSGlzdG9yeV9JdGVtKj4oaXRlbSk7CisgICAgZWlu
YV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZoaXN0b3J5SXRlbS0+dGl0bGUsIGNvcmUtPnRpdGxlKCku
dXRmOCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIGhpc3RvcnlJdGVtLT50aXRsZTsKIH0KIAogY29u
c3QgY2hhciogZXdrX2hpc3RvcnlfaXRlbV90aXRsZV9hbHRlcm5hdGVfZ2V0KGNvbnN0IEV3a19I
aXN0b3J5X0l0ZW0qIGl0ZW0pCiB7CiAgICAgRVdLX0hJU1RPUllfSVRFTV9DT1JFX0dFVF9PUl9S
RVRVUk4oaXRlbSwgY29yZSwgMCk7CiAgICAgLy8gaGlkZSB0aGUgZm9sbG93aW5nIG9wdGltemF0
aW9uIGZyb20gb3V0c2lkZQotICAgIEV3a19IaXN0b3J5X0l0ZW0qIGl0ZW0xID0gY29uc3RfY2Fz
dDxFd2tfSGlzdG9yeV9JdGVtKj4oaXRlbSk7Ci0gICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNl
KCZpdGVtMS0+YWx0ZXJuYXRlVGl0bGUsCisgICAgRXdrX0hpc3RvcnlfSXRlbSogaGlzdG9yeUl0
ZW0gPSBjb25zdF9jYXN0PEV3a19IaXN0b3J5X0l0ZW0qPihpdGVtKTsKKyAgICBlaW5hX3N0cmlu
Z3NoYXJlX3JlcGxhY2UoJmhpc3RvcnlJdGVtLT5hbHRlcm5hdGVUaXRsZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29yZS0+YWx0ZXJuYXRlVGl0bGUoKS51dGY4KCkuZGF0YSgpKTsK
LSAgICByZXR1cm4gaXRlbTEtPmFsdGVybmF0ZVRpdGxlOworICAgIHJldHVybiBoaXN0b3J5SXRl
bS0+YWx0ZXJuYXRlVGl0bGU7CiB9CiAKIHZvaWQgZXdrX2hpc3RvcnlfaXRlbV90aXRsZV9hbHRl
cm5hdGVfc2V0KEV3a19IaXN0b3J5X0l0ZW0qIGl0ZW0sIGNvbnN0IGNoYXIqIHRpdGxlKQpAQCAt
MzE0LDE5ICszMTQsMTkgQEAgY29uc3QgY2hhciogZXdrX2hpc3RvcnlfaXRlbV91cmlfZ2V0KGNv
bnN0IEV3a19IaXN0b3J5X0l0ZW0qIGl0ZW0pCiB7CiAgICAgRVdLX0hJU1RPUllfSVRFTV9DT1JF
X0dFVF9PUl9SRVRVUk4oaXRlbSwgY29yZSwgMCk7CiAgICAgLy8gaGlkZSB0aGUgZm9sbG93aW5n
IG9wdGltemF0aW9uIGZyb20gb3V0c2lkZQotICAgIEV3a19IaXN0b3J5X0l0ZW0qIGkgPSBjb25z
dF9jYXN0PEV3a19IaXN0b3J5X0l0ZW0qPigoaXRlbSkpOwotICAgIGVpbmFfc3RyaW5nc2hhcmVf
cmVwbGFjZSgmaS0+dXJpLCBjb3JlLT51cmxTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBy
ZXR1cm4gaS0+dXJpOworICAgIEV3a19IaXN0b3J5X0l0ZW0qIGhpc3RvcnlJdGVtID0gY29uc3Rf
Y2FzdDxFd2tfSGlzdG9yeV9JdGVtKj4oKGl0ZW0pKTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX3Jl
cGxhY2UoJmhpc3RvcnlJdGVtLT51cmksIGNvcmUtPnVybFN0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OworICAgIHJldHVybiBoaXN0b3J5SXRlbS0+dXJpOwogfQogCiBjb25zdCBjaGFyKiBld2tfaGlz
dG9yeV9pdGVtX3VyaV9vcmlnaW5hbF9nZXQoY29uc3QgRXdrX0hpc3RvcnlfSXRlbSogaXRlbSkK
IHsKICAgICBFV0tfSElTVE9SWV9JVEVNX0NPUkVfR0VUX09SX1JFVFVSTihpdGVtLCBjb3JlLCAw
KTsKICAgICAvLyBoaWRlIHRoZSBmb2xsb3dpbmcgb3B0aW16YXRpb24gZnJvbSBvdXRzaWRlCi0g
ICAgRXdrX0hpc3RvcnlfSXRlbSogaSA9IGNvbnN0X2Nhc3Q8RXdrX0hpc3RvcnlfSXRlbSo+KGl0
ZW0pOwotICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmaS0+b3JpZ2luYWxVcmksCisgICAg
RXdrX0hpc3RvcnlfSXRlbSogaGlzdG9yeUl0ZW0gPSBjb25zdF9jYXN0PEV3a19IaXN0b3J5X0l0
ZW0qPihpdGVtKTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJmhpc3RvcnlJdGVtLT5v
cmlnaW5hbFVyaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29yZS0+b3JpZ2luYWxV
UkxTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICByZXR1cm4gaS0+b3JpZ2luYWxVcmk7Cisg
ICAgcmV0dXJuIGhpc3RvcnlJdGVtLT5vcmlnaW5hbFVyaTsKIH0KIAogZG91YmxlIGV3a19oaXN0
b3J5X2l0ZW1fdGltZV9sYXN0X3Zpc2l0ZWRfZ2V0KGNvbnN0IEV3a19IaXN0b3J5X0l0ZW0qIGl0
ZW0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
LmNwcAppbmRleCA0Y2RkNzJkLi4zMGRmNjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNs
dWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KIAotI2RlZmluZSBJRFgoY29sLCBy
b3csIHJvd3NwYW4pIChjb2wgKyAocm93ICogcm93c3BhbikpCisjZGVmaW5lIElEWChjb2x1bW4s
IHJvdywgcm93c3BhbikgKGNvbHVtbiArIChyb3cgKiByb3dzcGFuKSkKIAogdHlwZWRlZiBzdHJ1
Y3QgX0V3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVf
RGF0YTsKIHR5cGVkZWYgc3RydWN0IF9Fd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtIEV3a19U
aWxlZF9CYWNraW5nX1N0b3JlX0l0ZW07CkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfRXdrX1Rp
bGVkX0JhY2tpbmdfU3RvcmVfSXRlbSB7CiAgICAgc3RydWN0IHsKICAgICAgICAgRXZhc19Db29y
ZCB4LCB5LCB3aWR0aCwgaGVpZ2h0OwogICAgIH0gZ2VvbWV0cnk7Ci0gICAgYm9vbCBzbW9vdGhf
c2NhbGU7CisgICAgYm9vbCBzbW9vdGhTY2FsZTsKIH07CiAKIHN0cnVjdCBfRXdrX1RpbGVkX0Jh
Y2tpbmdfU3RvcmVfUHJlX1JlbmRlcl9SZXF1ZXN0IHsKQEAgLTYxLDcgKzYxLDcgQEAgc3RydWN0
IF9Fd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhIHsKICAgICBzdHJ1Y3QgewogICAgICAgICBF
aW5hX0lubGlzdCoqIGl0ZW1zOwogICAgICAgICBFdmFzX0Nvb3JkIHgsIHksIHdpZHRoLCBoZWln
aHQ7Ci0gICAgICAgIGxvbmcgY29scywgcm93czsKKyAgICAgICAgbG9uZyBjb2x1bW5zLCByb3dz
OwogICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgRXZhc19Db29yZCB3aWR0aCwgaGVpZ2h0
OwogICAgICAgICAgICAgZmxvYXQgem9vbTsKQEAgLTcxLDcgKzcxLDcgQEAgc3RydWN0IF9Fd2tf
VGlsZWRfQmFja2luZ19TdG9yZV9EYXRhIHsKICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAg
IHN0cnVjdCB7CiAgICAgICAgICAgICAgICAgRXZhc19Db29yZCB4LCB5OwotICAgICAgICAgICAg
fSBjdXIsIG9sZCwgYmFzZSwgem9vbUNlbnRlcjsKKyAgICAgICAgICAgIH0gY3VycmVudCwgb2xk
LCBiYXNlLCB6b29tQ2VudGVyOwogICAgICAgICB9IG9mZnNldDsKICAgICAgICAgYm9vbCB2aXNp
YmxlIDogMTsKICAgICB9IHZpZXc7CkBAIC0xMDgsMTggKzEwOCwxOCBAQCBzdHJ1Y3QgX0V3a19U
aWxlZF9CYWNraW5nX1N0b3JlX0RhdGEgewogICAgICAgICBib29sIG9mZnNldCA6IDE7CiAgICAg
fSBjaGFuZ2VkOwogI2lmZGVmIERFQlVHX01FTV9MRUFLUwotICAgIEVjb3JlX0V2ZW50X0hhbmRs
ZXIqIHNpZ191c3I7CisgICAgRWNvcmVfRXZlbnRfSGFuZGxlciogc2lnbmFsVXNlcjsKICNlbmRp
ZgogfTsKIAogc3RhdGljIEV2YXNfU21hcnRfQ2xhc3MgX3BhcmVudF9zYyA9IEVWQVNfU01BUlRf
Q0xBU1NfSU5JVF9OVUxMOwogaW50IF9ld2tfdGlsZWRfbG9nX2RvbSA9IC0xOwogCi0jZGVmaW5l
IFBSSVZfREFUQV9HRVRfT1JfUkVUVVJOKG9iaiwgcHRyLCAuLi4pICAgICAgICAgICAgICAgICAg
ICAgICBcCisjZGVmaW5lIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJOKG9iaiwgcHRyLCAuLi4pIFwK
ICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwdHIgPSBzdGF0aWNfY2FzdDxFd2tf
VGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKj4oZXZhc19vYmplY3Rfc21hcnRfZGF0YV9nZXQob2Jq
KSk7IFwKLSAgICBpZiAoIXB0cikgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgQ1JJVElDQUwoIm5vIHByaXZhdGUgZGF0YSBp
biBvYmo9JXAiLCBvYmopOyAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgcmV0dXJuIF9fVkFf
QVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBp
ZiAoIXB0cikgeyBcCisgICAgICAgIENSSVRJQ0FMKCJubyBwcml2YXRlIGRhdGEgaW4gb2JqPSVw
Iiwgb2JqKTsgXAorICAgICAgICByZXR1cm4gX19WQV9BUkdTX187IFwKICAgICB9CiAKIHN0YXRp
YyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9maWxsX3JlbmRlcmVycyhFd2tfVGlsZWRf
QmFja2luZ19TdG9yZV9EYXRhKiBwcml2KTsKQEAgLTIwMywxMyArMjAzLDEzIEBAIHN0YXRpYyB2
b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Jlc2l6ZShFd2tfVGlsZWRfQmFja2lu
Z19TdG9yZV9JdGVtKiBpCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGls
ZV9hc3NvY2lhdGUoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiwgRXdrX1RpbGUq
IHRpbGUsIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0ZW0pCiB7CiAgICAgaWYgKGl0
ZW0tPnRpbGUpCi0gICAgICAgIENSSVRJQ0FMKCJpdC0+dGlsZT0lcCwgYnV0IGl0IHNob3VsZCBi
ZSAwISIsIGl0ZW0tPnRpbGUpOworICAgICAgICBDUklUSUNBTCgiaXRlbS0+dGlsZT0lcCwgYnV0
IGl0IHNob3VsZCBiZSAwISIsIGl0ZW0tPnRpbGUpOwogICAgIGl0ZW0tPnRpbGUgPSB0aWxlOwog
ICAgIGV2YXNfb2JqZWN0X21vdmUoaXRlbS0+dGlsZS0+aW1hZ2UsIGl0ZW0tPmdlb21ldHJ5Lngs
IGl0ZW0tPmdlb21ldHJ5LnkpOwogICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShpdGVtLT50aWxlLT5p
bWFnZSwgaXRlbS0+Z2VvbWV0cnkud2lkdGgsIGl0ZW0tPmdlb21ldHJ5LmhlaWdodCk7CiAgICAg
ZXZhc19vYmplY3RfaW1hZ2VfZmlsbF9zZXQKICAgICAgICAgKGl0ZW0tPnRpbGUtPmltYWdlLCAw
LCAwLCBpdGVtLT5nZW9tZXRyeS53aWR0aCwgaXRlbS0+Z2VvbWV0cnkuaGVpZ2h0KTsKLSAgICBl
dmFzX29iamVjdF9pbWFnZV9zbW9vdGhfc2NhbGVfc2V0KGl0ZW0tPnRpbGUtPmltYWdlLCBpdGVt
LT5zbW9vdGhfc2NhbGUpOworICAgIGV2YXNfb2JqZWN0X2ltYWdlX3Ntb290aF9zY2FsZV9zZXQo
aXRlbS0+dGlsZS0+aW1hZ2UsIGl0ZW0tPnNtb290aFNjYWxlKTsKICAgICBldmFzX29iamVjdF9p
bWFnZV9hbHBoYV9zZXQoaXRlbS0+dGlsZS0+aW1hZ2UsIHByaXYtPnZpZXcudGlsZS5oYXNBbHBo
YSk7CiAKICAgICBpZiAoIWV3a190aWxlX3Zpc2libGVfZ2V0KHRpbGUpKQpAQCAtMjIwLDEzICsy
MjAsMTMgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfYXNzb2Np
YXRlKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKIAogc3RhdGljIHZvaWQgX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3RpbGVfZGlzc29jaWF0ZShFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9E
YXRhKiBwcml2LCBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVtLCBkb3VibGUgbGFz
dFVzZWQpCiB7Ci0gICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlZFVudXNlZENhY2hlOwor
ICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlOwogICAgIGV3a190aWxl
X2hpZGUoaXRlbS0+dGlsZSk7CiAgICAgaWYgKCFld2tfdGlsZV92aXNpYmxlX2dldChpdGVtLT50
aWxlKSkKICAgICAgICAgZXZhc19vYmplY3Rfc21hcnRfbWVtYmVyX2RlbChpdGVtLT50aWxlLT5p
bWFnZSk7CiAgICAgZXdrX3RpbGVfbWF0cml4X3RpbGVfcHV0KHByaXYtPm1vZGVsLm1hdHJpeCwg
aXRlbS0+dGlsZSwgbGFzdFVzZWQpOwotICAgIHRpbGVkVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9t
YXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgpOwotICAgIGV3a190aWxl
X3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGVkVW51c2VkQ2FjaGUpOworICAgIHRpbGVVbnVz
ZWRDYWNoZSA9IGV3a190aWxlX21hdHJpeF91bnVzZWRfY2FjaGVfZ2V0KHByaXYtPm1vZGVsLm1h
dHJpeCk7CisgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2F1dG9fZmx1c2godGlsZVVudXNlZENh
Y2hlKTsKIAogICAgIGl0ZW0tPnRpbGUgPSAwOwogfQpAQCAtMjkyLDI2ICsyOTIsMjYgQEAgc3Rh
dGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9mbHVz
aChFd2tfVGlsZWRfQmFja2luZ18KIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9wcmVfcmVuZGVyX3JlcXVlc3RfY2xlYXIoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSog
cHJpdikKIHsKICAgICBFaW5hX0lubGlzdCoqIHByZVJlbmRlckxpc3QgPSAmcHJpdi0+cmVuZGVy
LnByZVJlbmRlclJlcXVlc3RzOwotICAgIEVpbmFfSW5saXN0KiBpdGVyID0gKnByZVJlbmRlckxp
c3QsICp0bXA7CisgICAgRWluYV9Jbmxpc3QqIGl0ZXIgPSAqcHJlUmVuZGVyTGlzdCwgKm5leHQ7
CiAgICAgd2hpbGUgKGl0ZXIpIHsKICAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfUHJl
X1JlbmRlcl9SZXF1ZXN0KiByZXF1ZXN0ID0KICAgICAgICAgICAgIEVJTkFfSU5MSVNUX0NPTlRB
SU5FUl9HRVQoCiAgICAgICAgICAgICAgICAgaXRlciwgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVf
UHJlX1JlbmRlcl9SZXF1ZXN0KTsKLSAgICAgICAgdG1wID0gaXRlci0+bmV4dDsKKyAgICAgICAg
bmV4dCA9IGl0ZXItPm5leHQ7CiAgICAgICAgICpwcmVSZW5kZXJMaXN0ID0gZWluYV9pbmxpc3Rf
cmVtb3ZlKCpwcmVSZW5kZXJMaXN0LCBpdGVyKTsKLSAgICAgICAgaXRlciA9IHRtcDsKKyAgICAg
ICAgaXRlciA9IG5leHQ7CiAgICAgICAgIGZyZWUocmVxdWVzdCk7CiAgICAgfQogfQogCi0vKiBh
c3N1bWVzIHByaXYtPnByb2Nlc3MucHJlX2NiIHdhcyBjYWxsZWQgaWYgcmVxdWlyZWQhICovCisv
KiBhc3N1bWVzIHByaXYtPnByb2Nlc3MucHJlQ2FsbGJhY2sgd2FzIGNhbGxlZCBpZiByZXF1aXJl
ZCEgKi8KIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3Jl
cXVlc3RfcHJvY2Vzc19zaW5nbGUoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdikK
IHsKICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9QcmVfUmVuZGVyX1JlcXVlc3QqIHJlcXVl
c3Q7CiAgICAgRWluYV9SZWN0YW5nbGUgYXJlYTsKICAgICBFd2tfVGlsZV9NYXRyaXgqIHRpbGVN
YXRyaXggPSBwcml2LT5tb2RlbC5tYXRyaXg7CiAgICAgRXdrX1RpbGUqIHRpbGU7Ci0gICAgRXdr
X1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlZFVudXNlZENhY2hlOworICAgIEV3a19UaWxlX1VudXNl
ZF9DYWNoZSogdGlsZVVudXNlZENhY2hlOwogICAgIHVuc2lnbmVkIGxvbmcgY29sdW1uLCByb3c7
CiAgICAgZmxvYXQgem9vbTsKICAgICBkb3VibGUgbGFzdF91c2VkID0gZWNvcmVfbG9vcF90aW1l
X2dldCgpOwpAQCAtMzQ4LDggKzM0OCw4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfcHJvY2Vzc19zaW5nbGUoRXdrX1RpbGVkCiAKIGVu
ZDoKICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0X2RlbChw
cml2LCByZXF1ZXN0KTsKLSAgICB0aWxlZFVudXNlZENhY2hlID0gZXdrX3RpbGVfbWF0cml4X3Vu
dXNlZF9jYWNoZV9nZXQocHJpdi0+bW9kZWwubWF0cml4KTsKLSAgICBld2tfdGlsZV91bnVzZWRf
Y2FjaGVfYXV0b19mbHVzaCh0aWxlZFVudXNlZENhY2hlKTsKKyAgICB0aWxlVW51c2VkQ2FjaGUg
PSBld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgpOwor
ICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGVVbnVzZWRDYWNoZSk7CiB9
CiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fcHJvY2Vz
c19pZGxlcl9jYih2b2lkKiBkYXRhKQpAQCAtNDMwLDE4ICs0MzAsMTggQEAgc3RhdGljIGlubGlu
ZSBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fZmlsbChFd2tfVGlsZWRf
QmFja2luZ19TdG8KIAogICAgICAgICBpZiAoaXRlbS0+dGlsZSkgewogICAgICAgICAgICAgRXdr
X1RpbGUqIG9sZCA9IGl0ZW0tPnRpbGU7Ci0gICAgICAgICAgICBpZiAob2xkLT5yb3cgIT0gY3Vy
cmVudFJvdyB8fCBvbGQtPmNvbCAhPSBjdXJyZW50Q29sdW1uIHx8IG9sZC0+em9vbSAhPSB6b29t
KQorICAgICAgICAgICAgaWYgKG9sZC0+cm93ICE9IGN1cnJlbnRSb3cgfHwgb2xkLT5jb2x1bW4g
IT0gY3VycmVudENvbHVtbiB8fCBvbGQtPnpvb20gIT0gem9vbSkKICAgICAgICAgICAgICAgICBf
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV9kaXNzb2NpYXRlKHByaXYsIGl0ZW0sIGxhc3RV
c2VkKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG9sZC0+cm93ID09IGN1cnJlbnRSb3cgJiYgb2xk
LT5jb2wgPT0gY3VycmVudENvbHVtbiAmJiBvbGQtPnpvb20gPT0gem9vbSkKKyAgICAgICAgICAg
IGVsc2UgaWYgKG9sZC0+cm93ID09IGN1cnJlbnRSb3cgJiYgb2xkLT5jb2x1bW4gPT0gY3VycmVu
dENvbHVtbiAmJiBvbGQtPnpvb20gPT0gem9vbSkKICAgICAgICAgICAgICAgICBnb3RvIGVuZDsK
ICAgICAgICAgfQogCiAgICAgICAgIHRpbGUgPSBld2tfdGlsZV9tYXRyaXhfdGlsZV9leGFjdF9n
ZXQocHJpdi0+bW9kZWwubWF0cml4LCBjdXJyZW50Q29sdW1uLCBjdXJyZW50Um93LCB6b29tKTsK
IAogICAgICAgICBpZiAoIXRpbGUpIHsKLSAgICAgICAgICAgIC8qIE5PVEU6IGl0IG5ldmVyIHJl
dHVybnMgMCBpZiBpdC0+dGlsZSB3YXMgc2V0ISAqLworICAgICAgICAgICAgLyogTk9URTogaXQg
bmV2ZXIgcmV0dXJucyAwIGlmIGl0ZW0tPnRpbGUgd2FzIHNldCEgKi8KICAgICAgICAgICAgIGlm
IChpdGVtLT50aWxlKSB7Ci0gICAgICAgICAgICAgICAgQ1JJVElDQUwoIml0LT50aWxlPSVwLCBi
dXQgaXQgc2hvdWxkIGJlIDAhIiwgaXRlbS0+dGlsZSk7CisgICAgICAgICAgICAgICAgQ1JJVElD
QUwoIml0ZW0tPnRpbGU9JXAsIGJ1dCBpdCBzaG91bGQgYmUgMCEiLCBpdGVtLT50aWxlKTsKICAg
ICAgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV9kaXNzb2NpYXRlKHBy
aXYsIGl0ZW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsYXN0VXNlZCk7CiAgICAgICAgICAgICB9CkBAIC00NzMsNyArNDczLDcgQEAg
c3RhdGljIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9pdGVtX2FkZChFd2tfVGlsZWQKICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVt
KiBpdGVtOwogICAgIEV2YXNfQ29vcmQgeCwgeSwgdGlsZVdpZHRoLCB0aWxlSGVpZ2h0OwogCi0g
ICAgREJHKCJld2tCYWNraW5nU3RvcmUlcCIsIHByaXYtPnNlbGYpOworICAgIERCRygiZXdrQmFj
a2luZ1N0b3JlPSVwIiwgcHJpdi0+c2VsZik7CiAKICAgICBpdGVtID0gc3RhdGljX2Nhc3Q8RXdr
X1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSo+KG1hbGxvYyhzaXplb2YoKml0ZW0pKSk7CiAgICAg
aWYgKCFpdGVtKQpAQCAtNDgxLDEyICs0ODEsMTIgQEAgc3RhdGljIEV3a19UaWxlZF9CYWNraW5n
X1N0b3JlX0l0ZW0qIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2FkZChFd2tfVGlsZWQK
IAogICAgIHRpbGVXaWR0aCA9IHByaXYtPnZpZXcudGlsZS53aWR0aDsKICAgICB0aWxlSGVpZ2h0
ID0gcHJpdi0+dmlldy50aWxlLmhlaWdodDsKLSAgICB4ID0gcHJpdi0+dmlldy5vZmZzZXQuYmFz
ZS54ICsgcHJpdi0+dmlldy54ICsgdGlsZVdpZHRoICAqY29sdW1uOwotICAgIHkgPSBwcml2LT52
aWV3Lm9mZnNldC5iYXNlLnkgKyBwcml2LT52aWV3LnkgKyB0aWxlSGVpZ2h0ICAqcm93OworICAg
IHggPSBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggKyBwcml2LT52aWV3LnggKyB0aWxlV2lkdGgg
KiBjb2x1bW47CisgICAgeSA9IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueSArIHByaXYtPnZpZXcu
eSArIHRpbGVIZWlnaHQgKiByb3c7CiAKICAgICBpdGVtLT50aWxlID0gMDsKIAotICAgIGl0ZW0t
PnNtb290aF9zY2FsZSA9IHByaXYtPnZpZXcudGlsZS56b29tV2Vha1Ntb290aFNjYWxlOworICAg
IGl0ZW0tPnNtb290aFNjYWxlID0gcHJpdi0+dmlldy50aWxlLnpvb21XZWFrU21vb3RoU2NhbGU7
CiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fbW92ZShpdGVtLCB4LCB5KTsKICAg
ICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9yZXNpemUoaXRlbSwgdGlsZVdpZHRoLCB0
aWxlSGVpZ2h0KTsKICAgICBpZiAoIV9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2ZpbGwo
cHJpdiwgaXRlbSwgY29sdW1uLCByb3cpKSB7CkBAIC01MDksNyArNTA5LDcgQEAgc3RhdGljIHZv
aWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fZGVsKEV3a19UaWxlZF9CYWNraW5nX1N0
b3JlX0RhdGEqIHByaXYKIAogc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0
ZW1fc21vb3RoX3NjYWxlX3NldChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVtLCBF
aW5hX0Jvb2wgc21vb3RoU2NhbGUpCiB7Ci0gICAgaWYgKGl0ZW0tPnNtb290aF9zY2FsZSA9PSBz
bW9vdGhTY2FsZSkKKyAgICBpZiAoaXRlbS0+c21vb3RoU2NhbGUgPT0gc21vb3RoU2NhbGUpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGlmIChpdGVtLT50aWxlKQpAQCAtNTQ4LDE2ICs1NDgsMTYg
QEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19jb2xzX2Vu
ZF9hZGQoRXdrX1RpbGVkX0JhY2tpbmdfU3QKICAgICB1bnNpZ25lZCBpbnQgaSwgcm93ID0gcm93
TGlzdCAtIHByaXYtPnZpZXcuaXRlbXM7CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkr
KywgYmFzZUNvbHVtbisrKSB7Ci0gICAgICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0q
IGl0OworICAgICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVtOwogCi0gICAg
ICAgIGl0ID0gX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fYWRkKHByaXYsIGJhc2VDb2x1
bW4sIHJvdyk7Ci0gICAgICAgIGlmICghaXQpIHsKKyAgICAgICAgaXRlbSA9IF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9pdGVtX2FkZChwcml2LCBiYXNlQ29sdW1uLCByb3cpOworICAgICAgICBp
ZiAoIWl0ZW0pIHsKICAgICAgICAgICAgIENSSVRJQ0FMKCJmYWlsZWQgdG8gYWRkIGNvbHVtbiAl
dSBvZiAldSBpbiByb3cgJXUuIiwgaSwgY291bnQsIHJvdyk7CiAgICAgICAgICAgICBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfdmlld19jb2xzX2VuZF9kZWwocHJpdiwgcm93TGlzdCwgaSk7CiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICAqcm93TGlzdCA9
IGVpbmFfaW5saXN0X2FwcGVuZCgqcm93TGlzdCwgRUlOQV9JTkxJU1RfR0VUKGl0KSk7CisgICAg
ICAgICpyb3dMaXN0ID0gZWluYV9pbmxpc3RfYXBwZW5kKCpyb3dMaXN0LCBFSU5BX0lOTElTVF9H
RVQoaXRlbSkpOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTU5MSw3ICs1OTEsNyBA
QCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19yb3dzX2FsbF9kZWwo
RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRAogCiAgICAgZnJlZShwcml2LT52aWV3Lml0ZW1zKTsK
ICAgICBwcml2LT52aWV3Lml0ZW1zID0gMDsKLSAgICBwcml2LT52aWV3LmNvbHMgPSAwOworICAg
IHByaXYtPnZpZXcuY29sdW1ucyA9IDA7CiAgICAgcHJpdi0+dmlldy5yb3dzID0gMDsKIH0KIApA
QCAtNjAwLDcgKzYwMCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9y
ZW5kZXIodm9pZCogZGF0YSwgRXdrX1RpbGUqIHRpbGUsIGNvbnN0IEVpCiAgICAgRXdrX1RpbGVk
X0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiA9IHN0YXRpY19jYXN0PEV3a19UaWxlZF9CYWNraW5n
X1N0b3JlX0RhdGEqPihkYXRhKTsKIAogICAgIElORigiVE9ETyAlcCAodmlzaWJsZT8gJWQpIFsl
bHUsJWx1XSAlZCwlZCArICVkeCVkIiwKLSAgICAgICAgdGlsZSwgdGlsZS0+dmlzaWJsZSwgdGls
ZS0+Y29sLCB0aWxlLT5yb3csIGFyZWEtPngsIGFyZWEtPnksIGFyZWEtPncsIGFyZWEtPmgpOwor
ICAgICAgICB0aWxlLCB0aWxlLT52aXNpYmxlLCB0aWxlLT5jb2x1bW4sIHRpbGUtPnJvdywgYXJl
YS0+eCwgYXJlYS0+eSwgYXJlYS0+dywgYXJlYS0+aCk7CiAKICAgICBpZiAoIXRpbGUtPnZpc2li
bGUpCiAgICAgICAgIHJldHVybjsKQEAgLTY1Nyw3ICs2NTcsNyBAQCBzdGF0aWMgdm9pZCBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfbWVtX2RiZyhFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRh
KiBwcml2KQogICAgIHJ1bisrOwogCiAgICAgcHJpbnRmKCJcbi0tLSBCRUdJTiBERUJVRyBUSUxF
RCBCQUNLSU5HIFNUT1JFIE1FTU9SWSBbJWRdIC0tXG4iCi0gICAgICAgICAgICJ0PSUwLjJmLCBv
Ymo9JXAsIHByaXY9JXAsIHZpZXcuaXRlbXM9JXAsIG1hdHJpeD0lcFxuIiwKKyAgICAgICAgICAg
InRpbGU9JTAuMmYsIG9iaj0lcCwgcHJpdj0lcCwgdmlldy5pdGVtcz0lcCwgbWF0cml4PSVwXG4i
LAogICAgICAgICAgICBydW4sIGVjb3JlX2xvb3BfdGltZV9nZXQoKSwKICAgICAgICAgICAgcHJp
di0+c2VsZiwgcHJpdiwgcHJpdi0+dmlldy5pdGVtcywgcHJpdi0+bW9kZWwubWF0cml4KTsKIApA
QCAtNjY5LDEzICs2NjksMTMgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X21lbV9kYmcoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdikKIAogc3RhdGljIEVp
bmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2lnX3Vzcih2b2lkKiBkYXRhLCBpbnQg
dHlwZSwgdm9pZCogZXZlbnQpCiB7Ci0gICAgRWNvcmVfRXZlbnRfU2lnbmFsX1VzZXIqIHNpZyA9
IChFY29yZV9FdmVudF9TaWduYWxfVXNlciopZXZlbnQ7CisgICAgRWNvcmVfRXZlbnRfU2lnbmFs
X1VzZXIqIHNpZ25hbFVzZXIgPSAoRWNvcmVfRXZlbnRfU2lnbmFsX1VzZXIqKWV2ZW50OwogICAg
IEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYgPSAoRXdrX1RpbGVkX0JhY2tpbmdf
U3RvcmVfRGF0YSopZGF0YTsKIAotICAgIGlmIChzaWctPm51bWJlciA9PSAyKSB7Ci0gICAgICAg
IEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsaWVVbnVzZWRDYWNoZTsKLSAgICAgICAgdGlsaWVV
bnVzZWRDYWNoZSA9IGV3a190aWxlX21hdHJpeF91bnVzZWRfY2FjaGVfZ2V0KHByaXYtPm1vZGVs
Lm1hdHJpeCk7Ci0gICAgICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGll
VW51c2VkQ2FjaGUpOworICAgIGlmIChzaWduYWxVc2VyLT5udW1iZXIgPT0gMikgeworICAgICAg
ICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZTsKKyAgICAgICAgdGlsZVVu
dXNlZENhY2hlID0gZXdrX3RpbGVfbWF0cml4X3VudXNlZF9jYWNoZV9nZXQocHJpdi0+bW9kZWwu
bWF0cml4KTsKKyAgICAgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2F1dG9fZmx1c2godGlsZVVu
dXNlZENhY2hlKTsKICAgICB9CiAKICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19k
YmcocHJpdik7CkBAIC02OTgsOCArNjk4LDggQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3NtYXJ0X2FkZChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlKQogICAgIHBy
aXYtPnZpZXcudGlsZS56b29tID0gMS4wOwogICAgIHByaXYtPnZpZXcudGlsZS53aWR0aCA9IGRl
ZmF1bHRUaWxlV2lkdGg7CiAgICAgcHJpdi0+dmlldy50aWxlLmhlaWdodCA9IGRlZmF1bHRUaWxl
SGVpZ3RoOwotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ID0gMDsKLSAgICBwcml2LT52aWV3
Lm9mZnNldC5jdXIueSA9IDA7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ID0gMDsK
KyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgPSAwOwogICAgIHByaXYtPnZpZXcub2Zm
c2V0Lm9sZC54ID0gMDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueSA9IDA7CiAgICAgcHJp
di0+dmlldy5vZmZzZXQuYmFzZS54ID0gMDsKQEAgLTczNCw3ICs3MzQsNyBAQCBzdGF0aWMgdm9p
ZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRkKEV2YXNfT2JqZWN0KiBld2tCYWNr
aW5nU3RvcmUpCiAgICAgZXZhc19vYmplY3RfY2xpcF9zZXQocHJpdi0+Y29udGVudHNDbGlwcGVy
LCBwcml2LT5iYXNlLmNsaXBwZXIpOwogCiAjaWZkZWYgREVCVUdfTUVNX0xFQUtTCi0gICAgcHJp
di0+c2lnX3VzciA9IGVjb3JlX2V2ZW50X2hhbmRsZXJfYWRkCisgICAgcHJpdi0+c2lnbmFsVXNl
ciA9IGVjb3JlX2V2ZW50X2hhbmRsZXJfYWRkCiAgICAgICAgICAgICAgICAgICAgICAgICAoRUNP
UkVfRVZFTlRfU0lHTkFMX1VTRVIsIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zaWdfdXNyLCBw
cml2KTsKICNlbmRpZgogfQpAQCAtNzQyLDcgKzc0Miw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9zbWFydF9hZGQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSkK
IHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9kZWwoRXZhc19PYmpl
Y3QqIGV3a0JhY2tpbmdTdG9yZSkKIHsKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tC
YWNraW5nU3RvcmUsIHByaXYpOwotICAgIERCRygiZXdrQmFja2luZ1N0b3JlJXAiLCBld2tCYWNr
aW5nU3RvcmUpOworICAgIERCRygiZXdrQmFja2luZ1N0b3JlPSVwIiwgZXdrQmFja2luZ1N0b3Jl
KTsKICAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZTsKIAogICAgIHRp
bGVVbnVzZWRDYWNoZSA9IGV3a190aWxlX21hdHJpeF91bnVzZWRfY2FjaGVfZ2V0KHByaXYtPm1v
ZGVsLm1hdHJpeCk7CkBAIC03NzQsNyArNzc0LDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9i
YWNraW5nX3N0b3JlX3NtYXJ0X2RlbChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlKQogCiBz
dGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfbW92ZShFdmFzX09iamVj
dCogZXdrQmFja2luZ1N0b3JlLCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSkKIHsKLSAgICBE
QkcoImV3a0JhY2tpbmdTdG9yZSVwLCBuZXcgcG9zOiAlZHglZCIsIGV3a0JhY2tpbmdTdG9yZSwg
eCwgeSk7CisgICAgREJHKCJld2tCYWNraW5nU3RvcmU9JXAsIG5ldyBwb3M6ICVkeCVkIiwgZXdr
QmFja2luZ1N0b3JlLCB4LCB5KTsKIAogICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJOKGV3a0Jh
Y2tpbmdTdG9yZSwgcHJpdik7CiAKQEAgLTc5MCw3ICs3OTAsNyBAQCBzdGF0aWMgdm9pZCBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfbW92ZShFdmFzX09iamVjdCogZXdrQmFja2luZ1N0
b3JlLCBFdgogCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfcmVz
aXplKEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIEV2YXNfQ29vcmQgd2lkdGgsIEV2YXNf
Q29vcmQgaGVpZ2h0KQogewotICAgIERCRygiZXdrQmFja2luZ1N0b3JlJXAsIG5ldyBzaXplOiAl
ZHglZCIsIGV3a0JhY2tpbmdTdG9yZSwgd2lkdGgsIGhlaWdodCk7CisgICAgREJHKCJld2tCYWNr
aW5nU3RvcmU9JXAsIG5ldyBzaXplOiAlZHglZCIsIGV3a0JhY2tpbmdTdG9yZSwgd2lkdGgsIGhl
aWdodCk7CiAKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUsIHBy
aXYpOwogCkBAIC04MjQsMTggKzgyNCwxOCBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfc21hcnRfaGlkZShFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlKQogc3RhdGlj
IHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3JlY2FsY19yZW5kZXJlcnMoRXdrX1RpbGVk
X0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiwgRXZhc19Db29yZCB3aWR0aCwgRXZhc19Db29yZCBo
ZWlnaHQsIEV2YXNfQ29vcmQgdGlsZVdpZHRoLCBFdmFzX0Nvb3JkIHRpbGVIZWlnaHQpCiB7CiAg
ICAgbG9uZyBjb2x1bW5zLCByb3dzLCBvbGRSb3dzLCBvbGRDb2xzOwotICAgIElORigiZXdrQmFj
a2luZ1N0b3JlJXAsIG5ldyBzaXplOiAlZHglZCIsIHByaXYtPnNlbGYsIHdpZHRoLCBoZWlnaHQp
OworICAgIElORigiZXdrQmFja2luZ1N0b3JlPSVwLCBuZXcgc2l6ZTogJWR4JWQiLCBwcml2LT5z
ZWxmLCB3aWR0aCwgaGVpZ2h0KTsKIAogICAgIGNvbHVtbnMgPSAxICsgc3RhdGljX2Nhc3Q8aW50
PihjZWlsKHdpZHRoIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVXaWR0aCkpKTsKICAgICByb3dz
ID0gMSArIHN0YXRpY19jYXN0PGludD4oY2VpbChoZWlnaHQgLyBzdGF0aWNfY2FzdDxmbG9hdD4o
dGlsZUhlaWdodCkpKTsKIAotICAgIElORigiZXdrQmFja2luZ1N0b3JlJXAgbmV3IGdyaWQgc2l6
ZSBjb2xzOiAlbGQsIHJvd3M6ICVsZCwgd2FzICVsZCwgJWxkIiwKLSAgICAgICAgcHJpdi0+c2Vs
ZiwgY29sdW1ucywgcm93cywgcHJpdi0+dmlldy5jb2xzLCBwcml2LT52aWV3LnJvd3MpOworICAg
IElORigiZXdrQmFja2luZ1N0b3JlPSVwIG5ldyBncmlkIHNpemUgY29sdW1uczogJWxkLCByb3dz
OiAlbGQsIHdhcyAlbGQsICVsZCIsCisgICAgICAgIHByaXYtPnNlbGYsIGNvbHVtbnMsIHJvd3Ms
IHByaXYtPnZpZXcuY29sdW1ucywgcHJpdi0+dmlldy5yb3dzKTsKIAotICAgIGlmIChwcml2LT52
aWV3LmNvbHMgPT0gY29sdW1ucyAmJiBwcml2LT52aWV3LnJvd3MgPT0gcm93cykKKyAgICBpZiAo
cHJpdi0+dmlldy5jb2x1bW5zID09IGNvbHVtbnMgJiYgcHJpdi0+dmlldy5yb3dzID09IHJvd3Mp
CiAgICAgICAgIHJldHVybjsKIAotICAgIG9sZENvbHMgPSBwcml2LT52aWV3LmNvbHM7CisgICAg
b2xkQ29scyA9IHByaXYtPnZpZXcuY29sdW1uczsKICAgICBvbGRSb3dzID0gcHJpdi0+dmlldy5y
b3dzOwogCiAgICAgaWYgKHJvd3MgPCBvbGRSb3dzKSB7CkBAIC04NTEsMTQgKzg1MSwxNCBAQCBz
dGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVjYWxjX3JlbmRlcmVycyhFd2tf
VGlsZWRfQmFja2luZ19TdG9yZV9EYQogCiAgICAgcHJpdi0+dmlldy5pdGVtcyA9IHN0YXRpY19j
YXN0PEVpbmFfSW5saXN0Kio+KG5ld0l0ZW1zKTsKICAgICBwcml2LT52aWV3LnJvd3MgPSByb3dz
OwotICAgIHByaXYtPnZpZXcuY29scyA9IGNvbHVtbnM7CisgICAgcHJpdi0+dmlldy5jb2x1bW5z
ID0gY29sdW1uczsKICAgICBpZiAocm93cyA+IG9sZFJvd3MpIHsKICAgICAgICAgRWluYV9Jbmxp
c3QqKiBzdGFydCA9IHByaXYtPnZpZXcuaXRlbXMgKyBvbGRSb3dzOwogICAgICAgICBFaW5hX0lu
bGlzdCoqIGVuZCA9IHByaXYtPnZpZXcuaXRlbXMgKyByb3dzOwogICAgICAgICBmb3IgKDsgc3Rh
cnQgPCBlbmQ7IHN0YXJ0KyspIHsKICAgICAgICAgICAgICpzdGFydCA9IDA7Ci0gICAgICAgICAg
ICBFaW5hX0Jvb2wgciA9IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X2NvbHNfZW5kX2Fk
ZChwcml2LCBzdGFydCwgMCwgY29sdW1ucyk7Ci0gICAgICAgICAgICBpZiAoIXIpIHsKKyAgICAg
ICAgICAgIEVpbmFfQm9vbCByZXN1bHQgPSBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19j
b2xzX2VuZF9hZGQocHJpdiwgc3RhcnQsIDAsIGNvbHVtbnMpOworICAgICAgICAgICAgaWYgKCFy
ZXN1bHQpIHsKICAgICAgICAgICAgICAgICBDUklUSUNBTCgiZmFpbGVkIHRvIGFsbG9jYXRlICVs
ZCBjb2x1bW5zIiwgY29sdW1ucyk7CiAgICAgICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3ZpZXdfcm93c19yYW5nZV9kZWwocHJpdiwgcHJpdi0+dmlldy5pdGVtcyArIG9sZFJv
d3MsIHN0YXJ0KTsKICAgICAgICAgICAgICAgICBwcml2LT52aWV3LnJvd3MgPSBvbGRSb3dzOwpA
QCAtOTE0LDExICs5MTQsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV92aWV3X2RiZyhjb25zdCBFd2tfVGlsZWRfQmFja2luZ19TdG8KIHsKICAgICBFaW5h
X0lubGlzdCoqIHN0YXJ0LCAqKmVuZDsKICAgICBwcmludGYoInRpbGVzPSUybGQsJTJsZCAgbW9k
ZWw9JTJsZCwlMmxkIFslZHglZF0gYmFzZT0lKzNsZCwlKzRsZCBvZmZzZXQ9JSs0ZCwlKzRkIG9s
ZD0lKzRkLCUrNGQgYmFzZT0lKzNkLCUrM2RcbiIsCi0gICAgICAgICAgIHByaXYtPnZpZXcuY29s
cywgcHJpdi0+dmlldy5yb3dzLAorICAgICAgICAgICBwcml2LT52aWV3LmNvbHVtbnMsIHByaXYt
PnZpZXcucm93cywKICAgICAgICAgICAgcHJpdi0+bW9kZWwuY3VycmVudC5jb2x1bW5zLCBwcml2
LT5tb2RlbC5jdXJyZW50LnJvd3MsCiAgICAgICAgICAgIHByaXYtPm1vZGVsLndpZHRoLCBwcml2
LT5tb2RlbC5oZWlnaHQsCiAgICAgICAgICAgIHByaXYtPm1vZGVsLmJhc2UuY29sdW1uLCBwcml2
LT5tb2RlbC5iYXNlLnJvdywKLSAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngsIHBy
aXYtPnZpZXcub2Zmc2V0LmN1ci55LAorICAgICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJy
ZW50LngsIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSwKICAgICAgICAgICAgcHJpdi0+dmll
dy5vZmZzZXQub2xkLngsIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55LAogICAgICAgICAgICBwcml2
LT52aWV3Lm9mZnNldC5iYXNlLngsIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueSk7CiAKQEAgLTkz
Myw3ICs5MzMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3ZpZXdfZGJnKGNvbnN0IEV3a19UaWxlZF9CYWNraW5nX1N0bwogICAgICAgICAgICAgaWYgKCFp
dGVtLT50aWxlKQogICAgICAgICAgICAgICAgIHByaW50ZigiICAgICAgICAgICAgOyIpOwogICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHByaW50ZigiJThwICVsdSwlbHU7IiwgaXRl
bS0+dGlsZSwgaXRlbS0+dGlsZS0+Y29sLCBpdGVtLT50aWxlLT5yb3cpOworICAgICAgICAgICAg
ICAgIHByaW50ZigiJThwICVsdSwlbHU7IiwgaXRlbS0+dGlsZSwgaXRlbS0+dGlsZS0+Y29sdW1u
LCBpdGVtLT50aWxlLT5yb3cpOwogICAgICAgICB9CiAgICAgICAgIHByaW50ZigiXG4iKTsKICAg
ICB9CkBAIC05NzEsNyArOTcxLDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX3ZpZXdfd3JhcF91cChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKgogICAgICAgICBF
aW5hX0lubGlzdCogdGVtcCA9ICppdGVyYXRvclN0YXJ0OwogICAgICAgICBFd2tfVGlsZWRfQmFj
a2luZ19TdG9yZV9JdGVtKiBpdGVtOwogICAgICAgICBFdmFzX0Nvb3JkIHRpbGVQb3NpdGlvblgg
PSBvcmlnaW5YOwotICAgICAgICBpbnQgY291bnQxID0gMDsKKyAgICAgICAgaW50IGNvbHVtbiA9
IDA7CiAKICAgICAgICAgZm9yIChpdGVyYXRvckxpc3QgPSBpdGVyYXRvclN0YXJ0OyBpdGVyYXRv
ckxpc3QgPCBpdGVyYXRvckVuZDsgaXRlcmF0b3JMaXN0KyspCiAgICAgICAgICAgICAqaXRlcmF0
b3JMaXN0ID0gKihpdGVyYXRvckxpc3QgKyAxKTsKQEAgLTk4MSw4ICs5ODEsOCBAQCBzdGF0aWMg
dm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld193cmFwX3VwKEV3a19UaWxlZF9CYWNr
aW5nX1N0b3JlX0RhdGEqCiAgICAgICAgIEVJTkFfSU5MSVNUX0ZPUkVBQ0godGVtcCwgaXRlbSkg
ewogICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fbW92ZShpdGVtLCB0
aWxlUG9zaXRpb25YLCB0aWxlUG9zaXRpb25ZKTsKICAgICAgICAgICAgIHRpbGVQb3NpdGlvblgg
Kz0gdGlsZVdpZHRoOwotICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1f
ZmlsbChwcml2LCBpdGVtLCBjb3VudDEsIGxhc3RSb3cpOwotICAgICAgICAgICAgY291bnQxKys7
CisgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKHByaXYsIGl0
ZW0sIGNvbHVtbiwgbGFzdFJvdyk7CisgICAgICAgICAgICBjb2x1bW4rKzsKICAgICAgICAgfQog
ICAgICAgICB0aWxlUG9zaXRpb25ZICs9IHRpbGVIZWlnaHQ7CiAgICAgfQpAQCAtMTAxOSw3ICsx
MDE5LDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF9k
b3duKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKICAgICAgICAgRWluYV9Jbmxpc3QqIHRl
bXAgPSAqaXRlcmF0b3JTdGFydDsKICAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRl
bSogaXRlbTsKICAgICAgICAgRXZhc19Db29yZCB0aWxlUG9zaXRpb25YID0gb3JpZ2luWDsKLSAg
ICAgICAgaW50IGNvdW50MSA9IDA7CisgICAgICAgIGludCBjb2x1bW4gPSAwOwogCiAgICAgICAg
IGZvciAoaXRlcmF0b3JMaXN0ID0gaXRlcmF0b3JTdGFydDsgaXRlcmF0b3JMaXN0ID4gaXRlcmF0
b3JFbmQ7IGl0ZXJhdG9yTGlzdC0tKQogICAgICAgICAgICAgKml0ZXJhdG9yTGlzdCA9ICooaXRl
cmF0b3JMaXN0IC0gMSk7CkBAIC0xMDI5LDggKzEwMjksOCBAQCBzdGF0aWMgdm9pZCBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfdmlld193cmFwX2Rvd24oRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVf
RGF0YQogICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKHRlbXAsIGl0ZW0pIHsKICAgICAgICAg
ICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXRlbSwgdGlsZVBvc2l0aW9u
WCwgdGlsZVBvc2l0aW9uWSk7CiAgICAgICAgICAgICB0aWxlUG9zaXRpb25YICs9IHRpbGVXaWR0
aDsKLSAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2ZpbGwocHJpdiwg
aXRlbSwgY291bnQxLCAwKTsKLSAgICAgICAgICAgIGNvdW50MSsrOworICAgICAgICAgICAgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fZmlsbChwcml2LCBpdGVtLCBjb2x1bW4sIDApOwor
ICAgICAgICAgICAgY29sdW1uKys7CiAgICAgICAgIH0KICAgICAgICAgdGlsZVBvc2l0aW9uWSAt
PSB0aWxlSGVpZ2h0OwogICAgIH0KQEAgLTEwNDEsMjIgKzEwNDEsMjIgQEAgc3RhdGljIHZvaWQg
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF9kb3duKEV3a19UaWxlZF9CYWNraW5n
X1N0b3JlX0RhdGEKICAqIEBpbnRlcm5hbAogICogTW92ZSBsZWZ0LW1vc3QgKGZpcnN0KSBjb2x1
bW4gcmlnaHQgYXMgbGFzdCAocmlnaHQtbW9zdCkuCiAgKgotICogVGhlIGZpbmFsIHJlc3VsdCBp
cyB2aXN1YWxseSB0aGUgc2FtZSwgYnV0IGxvZ2ljYWxseSB0aGUgZmlyc3QgY29sIHRoYXQKKyAq
IFRoZSBmaW5hbCByZXN1bHQgaXMgdmlzdWFsbHkgdGhlIHNhbWUsIGJ1dCBsb2dpY2FsbHkgdGhl
IGZpcnN0IGNvbHVtbiB0aGF0CiAgKiB3ZW50IG91dCBvZiBzY3JlZW4gaXMgbm93IGF0IGxhc3Qg
YW5kIGZpbGxlZCB3aXRoIG5ldyBtb2RlbCBpdGVtcy4KICAqCiAgKiBUaGlzIGlzIHdvcnRoIGp1
c3Qgd2hlbiBAYSBjb3VudCBpcyBzbWFsbGVyIHRoYW4gQGMKLSAqIHByaXYtPnZpZXcuY29scywg
YWZ0ZXIgdGhhdCBvbmUgaXMgcmVmaWxsaW5nIHRoZSB3aG9sZSBtYXRyaXggc28gaXQKKyAqIHBy
aXYtPnZpZXcuY29sdW1ucywgYWZ0ZXIgdGhhdCBvbmUgaXMgcmVmaWxsaW5nIHRoZSB3aG9sZSBt
YXRyaXggc28gaXQKICAqIGlzIGJldHRlciB0byB0cmlnZ2VyIGZ1bGwgcmVmaWxsLgogICoKICAq
IEBwYXJhbSBjb3VudCB0aGUgbnVtYmVyIG9mIHRpbWVzIHRvIHJlcGVhdCB0aGUgcHJvY2Vzcy4K
ICAqLwogc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF9sZWZ0
KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYsIEV2YXNfQ29vcmQgeCwgRXZhc19D
b29yZCB5LCB1bnNpZ25lZCBpbnQgY291bnQpCiB7Ci0gICAgdW5zaWduZWQgaW50IHJvdywgbGFz
dENvbHVtbiA9IHByaXYtPnZpZXcuY29scyAtIDE7CisgICAgdW5zaWduZWQgaW50IHJvdywgbGFz
dENvbHVtbiA9IHByaXYtPnZpZXcuY29sdW1ucyAtIDE7CiAgICAgRXZhc19Db29yZCB0aWxlV2lk
dGggPSBwcml2LT52aWV3LnRpbGUud2lkdGg7CiAgICAgRXZhc19Db29yZCB0aWxlSGVpZ2h0ID0g
cHJpdi0+dmlldy50aWxlLmhlaWdodDsKICAgICBFdmFzX0Nvb3JkIG9mZnNldFggPSBwcml2LT52
aWV3Lm9mZnNldC5iYXNlLnggKyBjb3VudCAqIHRpbGVXaWR0aDsKLSAgICBFdmFzX0Nvb3JkIG95
ID0geSArIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueTsKKyAgICBFdmFzX0Nvb3JkIG9mZnNldFkg
PSB5ICsgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS55OwogICAgIEVpbmFfSW5saXN0KiogaXRlcmF0
b3I7CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRvckVuZDsKICAgICB1bnNpZ25lZCBpbnQgYmFz
ZUNvbHVtbiA9IGxhc3RDb2x1bW4gLSBjb3VudCArIDE7CkBAIC0xMDc3LDEwICsxMDc3LDEwIEBA
IHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBfbGVmdChFd2tf
VGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAgICAgICAgICAgICBpdCA9IEVJTkFfSU5MSVNUX0NP
TlRBSU5FUl9HRVQoKml0ZXJhdG9yLCBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKTsKICAg
ICAgICAgICAgICppdGVyYXRvciA9IGVpbmFfaW5saXN0X2RlbW90ZSgqaXRlcmF0b3IsICppdGVy
YXRvcik7CiAKLSAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUo
aXQsIHRpbGVQb3NpdGlvblgsIG95KTsKKyAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9pdGVtX21vdmUoaXQsIHRpbGVQb3NpdGlvblgsIG9mZnNldFkpOwogICAgICAgICAgICAg
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fZmlsbChwcml2LCBpdCwgY29sdW1uLCByb3cp
OwogICAgICAgICB9Ci0gICAgICAgIG95ICs9IHRpbGVIZWlnaHQ7CisgICAgICAgIG9mZnNldFkg
Kz0gdGlsZUhlaWdodDsKICAgICB9CiAKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSBv
ZmZzZXRYOwpAQCAtMTA5MCwxMSArMTA5MCwxMSBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfdmlld193cmFwX2xlZnQoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YQog
ICogQGludGVybmFsCiAgKiBNb3ZlIHJpZ2h0LW1vc3QgKGxhc3QpIGNvbHVtbiBsZWZ0IGFzIGZp
cnN0IChsZWZ0LW1vc3QpLgogICoKLSAqIFRoZSBmaW5hbCByZXN1bHQgaXMgdmlzdWFsbHkgdGhl
IHNhbWUsIGJ1dCBsb2dpY2FsbHkgdGhlIGxhc3QgY29sIHRoYXQKKyAqIFRoZSBmaW5hbCByZXN1
bHQgaXMgdmlzdWFsbHkgdGhlIHNhbWUsIGJ1dCBsb2dpY2FsbHkgdGhlIGxhc3QgY29sdW1uIHRo
YXQKICAqIHdlbnQgb3V0IG9mIHNjcmVlbiBpcyBub3cgYXQgZmlyc3QgYW5kIGZpbGxlZCB3aXRo
IG5ldyBtb2RlbCBpdGVtcy4KICAqCiAgKiBUaGlzIGlzIHdvcnRoIGp1c3Qgd2hlbiBAYSBjb3Vu
dCBpcyBzbWFsbGVyIHRoYW4gQGMKLSAqIHByaXYtPnZpZXcuY29scywgYWZ0ZXIgdGhhdCBvbmUg
aXMgcmVmaWxsaW5nIHRoZSB3aG9sZSBtYXRyaXggc28gaXQKKyAqIHByaXYtPnZpZXcuY29sdW1u
cywgYWZ0ZXIgdGhhdCBvbmUgaXMgcmVmaWxsaW5nIHRoZSB3aG9sZSBtYXRyaXggc28gaXQKICAq
IGlzIGJldHRlciB0byB0cmlnZ2VyIGZ1bGwgcmVmaWxsLgogICoKICAqIEBwYXJhbSBjb3VudCB0
aGUgbnVtYmVyIG9mIHRpbWVzIHRvIHJlcGVhdCB0aGUgcHJvY2Vzcy4KQEAgLTExMzgsNyArMTEz
OCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3JlZmlsbChF
d2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwCiB7CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVy
YXRvciwgKippdGVyYXRvckVuZDsKICAgICBFdmFzX0Nvb3JkIGJhc2VUaWxlUG9zaXRpb25YLCB0
aWxlUG9zaXRpb25ZLCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQ7Ci0gICAgdW5zaWduZWQgaW50IHI7
CisgICAgdW5zaWduZWQgaW50IHJvdzsKIAogICAgIGV2YXNfb2JqZWN0X21vdmUocHJpdi0+YmFz
ZS5jbGlwcGVyLCB4LCB5KTsKIApAQCAtMTE1MCwxOSArMTE1MCwxOSBAQCBzdGF0aWMgdm9pZCBf
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19yZWZpbGwoRXdrX1RpbGVkX0JhY2tpbmdfU3Rv
cmVfRGF0YSogcAogCiAgICAgaXRlcmF0b3IgPSBwcml2LT52aWV3Lml0ZW1zOwogICAgIGl0ZXJh
dG9yRW5kID0gaXRlcmF0b3IgKyBwcml2LT52aWV3LnJvd3M7Ci0gICAgciA9IDA7CisgICAgcm93
ID0gMDsKIAogICAgIHByaXYtPm1vZGVsLmJhc2UuY29sdW1uIC09IHN0ZXBYOwogICAgIHByaXYt
Pm1vZGVsLmJhc2Uucm93IC09IHN0ZXBZOwogCi0gICAgZm9yICg7IGl0ZXJhdG9yIDwgaXRlcmF0
b3JFbmQ7IGl0ZXJhdG9yKyssIHIrKykgeworICAgIGZvciAoOyBpdGVyYXRvciA8IGl0ZXJhdG9y
RW5kOyBpdGVyYXRvcisrLCByb3crKykgewogICAgICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9JdGVtKiBpdGVtOwogICAgICAgICBFdmFzX0Nvb3JkIG5ld1RpbGVQb3NpdGlvblggPSBiYXNl
VGlsZVBvc2l0aW9uWDsKLSAgICAgICAgdW5zaWduZWQgaW50IGNvdW50ID0gMDsKKyAgICAgICAg
dW5zaWduZWQgaW50IGNvbHVtbiA9IDA7CiAgICAgICAgIEVJTkFfSU5MSVNUX0ZPUkVBQ0goKml0
ZXJhdG9yLCBpdGVtKSB7Ci0gICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRl
bV9maWxsKHByaXYsIGl0ZW0sIGNvdW50LCByKTsKKyAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9pdGVtX2ZpbGwocHJpdiwgaXRlbSwgY29sdW1uLCByb3cpOwogICAgICAgICAg
ICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fbW92ZShpdGVtLCBuZXdUaWxlUG9zaXRp
b25YLCB0aWxlUG9zaXRpb25ZKTsKLSAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICBj
b2x1bW4rKzsKICAgICAgICAgICAgIG5ld1RpbGVQb3NpdGlvblggKz0gdGlsZVdpZHRoOwogICAg
ICAgICB9CiAgICAgICAgIHRpbGVQb3NpdGlvblkgKz0gdGlsZUhlaWdodDsKQEAgLTExODUsMTEg
KzExODUsMTEgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfcG9z
X2FwcGx5KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKICAgICBpdGVyYXRvciA9IHByaXYt
PnZpZXcuaXRlbXM7CiAgICAgaXRlcmF0b3JFbmQgPSBpdGVyYXRvciArIHByaXYtPnZpZXcucm93
czsKICAgICBmb3IgKDsgaXRlcmF0b3IgPCBpdGVyYXRvckVuZDsgaXRlcmF0b3IrKykgewotICAg
ICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdDsKLSAgICAgICAgRXZhc19Db29y
ZCBveCA9IGJhc2VUaWxlUG9zaXRpb25YOwotICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKCpp
dGVyYXRvciwgaXQpIHsKLSAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVt
X21vdmUoaXQsIG94LCBiYXNlVGlsZVBvc2l0aW9uWSk7Ci0gICAgICAgICAgICBveCArPSB0aWxl
V2lkdGg7CisgICAgICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0ZW07CisgICAg
ICAgIEV2YXNfQ29vcmQgb2Zmc2V0WCA9IGJhc2VUaWxlUG9zaXRpb25YOworICAgICAgICBFSU5B
X0lOTElTVF9GT1JFQUNIKCppdGVyYXRvciwgaXRlbSkgeworICAgICAgICAgICAgX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX2l0ZW1fbW92ZShpdGVtLCBvZmZzZXRYLCBiYXNlVGlsZVBvc2l0aW9u
WSk7CisgICAgICAgICAgICBvZmZzZXRYICs9IHRpbGVXaWR0aDsKICAgICAgICAgfQogICAgICAg
ICBiYXNlVGlsZVBvc2l0aW9uWSArPSB0aWxlSGVpZ2h0OwogICAgIH0KQEAgLTExOTcsMjggKzEx
OTcsMjggQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfcG9zX2Fw
cGx5KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKIAogc3RhdGljIHZvaWQgX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9vZmZzZXRfZm9yY2UoRXdrX1RpbGVkX0Jh
Y2tpbmdfU3RvcmVfRGF0YSogcHJpdikKIHsKLSAgICBFdmFzX0Nvb3JkIGRlbHRhWCA9IHByaXYt
PnZpZXcub2Zmc2V0LmN1ci54IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLng7Ci0gICAgRXZhc19D
b29yZCBkZWx0YVkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueSAtIHByaXYtPnZpZXcub2Zmc2V0
Lm9sZC55OworICAgIEV2YXNfQ29vcmQgZGVsdGFYID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVu
dC54IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLng7CisgICAgRXZhc19Db29yZCBkZWx0YVkgPSBw
cml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgLSBwcml2LT52aWV3Lm9mZnNldC5vbGQueTsKICAg
ICBFdmFzX0Nvb3JkIHRpbGVXaWR0aCwgdGlsZUhlaWdodDsKICAgICBpbnQgc3RlcFksIHN0ZXBY
OwogCi0gICAgSU5GKCJld2tCYWNraW5nU3RvcmUlcCwgb2Zmc2V0OiAlKzRkLCAlKzRkICglKzRk
LCAlKzRkKSIsCi0gICAgICAgIHByaXYtPnNlbGYsIGRlbHRhWCwgZGVsdGFZLCBwcml2LT52aWV3
Lm9mZnNldC5jdXIueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkpOworICAgIElORigiZXdrQmFj
a2luZ1N0b3JlPSVwLCBvZmZzZXQ6ICUrNGQsICUrNGQgKCUrNGQsICUrNGQpIiwKKyAgICAgICAg
cHJpdi0+c2VsZiwgZGVsdGFYLCBkZWx0YVksIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCwg
cHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55KTsKIAogICAgIHRpbGVXaWR0aCA9IHByaXYtPnZp
ZXcudGlsZS53aWR0aDsKICAgICB0aWxlSGVpZ2h0ID0gcHJpdi0+dmlldy50aWxlLmhlaWdodDsK
IAotICAgIGxvbmcgbmV3Q29sdW1uID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci54IC8gdGlsZVdp
ZHRoOworICAgIGxvbmcgbmV3Q29sdW1uID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAv
IHRpbGVXaWR0aDsKICAgICBzdGVwWCA9IHByaXYtPm1vZGVsLmJhc2UuY29sdW1uIC0gbmV3Q29s
dW1uOwotICAgIGxvbmcgbmV3Um93ID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci55IC8gdGlsZUhl
aWdodDsKKyAgICBsb25nIG5ld1JvdyA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgLyB0
aWxlSGVpZ2h0OwogICAgIHN0ZXBZID0gcHJpdi0+bW9kZWwuYmFzZS5yb3cgLSBuZXdSb3c7CiAK
LSAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54Owot
ICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7Cisg
ICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7
CisgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
Lnk7CiAgICAgZXZhc19vYmplY3RfbW92ZSgKICAgICAgICAgcHJpdi0+Y29udGVudHNDbGlwcGVy
LAotICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCArIHByaXYtPnZpZXcueCwKLSAgICAg
ICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgKyBwcml2LT52aWV3LnkpOworICAgICAgICBwcml2
LT52aWV3Lm9mZnNldC5jdXJyZW50LnggKyBwcml2LT52aWV3LngsCisgICAgICAgIHByaXYtPnZp
ZXcub2Zmc2V0LmN1cnJlbnQueSArIHByaXYtPnZpZXcueSk7CiAKICAgICBwcml2LT52aWV3Lm9m
ZnNldC5iYXNlLnggKz0gZGVsdGFYIC0gc3RlcFggKiB0aWxlV2lkdGg7CiAgICAgcHJpdi0+dmll
dy5vZmZzZXQuYmFzZS55ICs9IGRlbHRhWSAtIHN0ZXBZICogdGlsZUhlaWdodDsKQEAgLTEyMjks
MTMgKzEyMjksMTMgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0
X2NhbGN1bGF0ZV9vZmZzZXRfZm9yY2UoRXdrX1RpbGVkX0JhY2sKIAogc3RhdGljIHZvaWQgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9vZmZzZXQoRXdrX1RpbGVkX0Jh
Y2tpbmdfU3RvcmVfRGF0YSogcHJpdiwgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHkpCiB7Ci0g
ICAgRXZhc19Db29yZCBkZWx0YVggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueCAtIHByaXYtPnZp
ZXcub2Zmc2V0Lm9sZC54OwotICAgIEV2YXNfQ29vcmQgZGVsdGFZID0gcHJpdi0+dmlldy5vZmZz
ZXQuY3VyLnkgLSBwcml2LT52aWV3Lm9mZnNldC5vbGQueTsKKyAgICBFdmFzX0Nvb3JkIGRlbHRh
WCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54
OworICAgIEV2YXNfQ29vcmQgZGVsdGFZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55IC0g
cHJpdi0+dmlldy5vZmZzZXQub2xkLnk7CiAgICAgRXZhc19Db29yZCB0aWxlV2lkdGgsIHRpbGVI
ZWlnaHQ7CiAgICAgaW50IHN0ZXBZLCBzdGVwWDsKIAotICAgIElORigiZXdrQmFja2luZ1N0b3Jl
JXAsIG9mZnNldDogJSs0ZCwgJSs0ZCAoJSs0ZCwgJSs0ZCkiLAotICAgICAgICBwcml2LT5zZWxm
LCBkZWx0YVgsIGRlbHRhWSwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngsIHByaXYtPnZpZXcub2Zm
c2V0LmN1ci55KTsKKyAgICBJTkYoImV3a0JhY2tpbmdTdG9yZT0lcCwgb2Zmc2V0OiAlKzRkLCAl
KzRkICglKzRkLCAlKzRkKSIsCisgICAgICAgIHByaXYtPnNlbGYsIGRlbHRhWCwgZGVsdGFZLCBw
cml2LT52aWV3Lm9mZnNldC5jdXJyZW50LngsIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSk7
CiAKICAgICBpZiAoIWRlbHRhWCAmJiAhZGVsdGFZKQogICAgICAgICByZXR1cm47CkBAIC0xMjQz
LDIwICsxMjQzLDIwIEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFy
dF9jYWxjdWxhdGVfb2Zmc2V0KEV3a19UaWxlZF9CYWNraW5nX1N0CiAgICAgdGlsZVdpZHRoID0g
cHJpdi0+dmlldy50aWxlLndpZHRoOwogICAgIHRpbGVIZWlnaHQgPSBwcml2LT52aWV3LnRpbGUu
aGVpZ2h0OwogCi0gICAgbG9uZyBuZXdDb2wgPSAtcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggLyB0
aWxlV2lkdGg7CisgICAgbG9uZyBuZXdDb2wgPSAtcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54
IC8gdGlsZVdpZHRoOwogICAgIHN0ZXBYID0gcHJpdi0+bW9kZWwuYmFzZS5jb2x1bW4gLSBuZXdD
b2w7Ci0gICAgbG9uZyBuZXdSb3cgPSAtcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgLyB0aWxlSGVp
Z2h0OworICAgIGxvbmcgbmV3Um93ID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSAvIHRp
bGVIZWlnaHQ7CiAgICAgc3RlcFkgPSBwcml2LT5tb2RlbC5iYXNlLnJvdyAtIG5ld1JvdzsKIAot
ICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLng7Ci0g
ICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueTsKKyAg
ICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueDsK
KyAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQu
eTsKICAgICBldmFzX29iamVjdF9tb3ZlKAogICAgICAgICBwcml2LT5jb250ZW50c0NsaXBwZXIs
Ci0gICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ICsgcHJpdi0+dmlldy54LAotICAgICAg
ICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSArIHByaXYtPnZpZXcueSk7CisgICAgICAgIHByaXYt
PnZpZXcub2Zmc2V0LmN1cnJlbnQueCArIHByaXYtPnZpZXcueCwKKyAgICAgICAgcHJpdi0+dmll
dy5vZmZzZXQuY3VycmVudC55ICsgcHJpdi0+dmlldy55KTsKIAotICAgIGlmICgoc3RlcFggPCAw
ICYmIHN0ZXBYIDw9IC1wcml2LT52aWV3LmNvbHMpCi0gICAgICAgIHx8IChzdGVwWCA+IDAgJiYg
c3RlcFggPj0gcHJpdi0+dmlldy5jb2xzKQorICAgIGlmICgoc3RlcFggPCAwICYmIHN0ZXBYIDw9
IC1wcml2LT52aWV3LmNvbHVtbnMpCisgICAgICAgIHx8IChzdGVwWCA+IDAgJiYgc3RlcFggPj0g
cHJpdi0+dmlldy5jb2x1bW5zKQogICAgICAgICB8fCAoc3RlcFkgPCAwICYmIHN0ZXBZIDw9IC1w
cml2LT52aWV3LnJvd3MpCiAgICAgICAgIHx8IChzdGVwWSA+IDAgJiYgc3RlcFkgPj0gcHJpdi0+
dmlldy5yb3dzKSkgewogCkBAIC0xMjkxLDggKzEyOTEsOCBAQCBzdGF0aWMgdm9pZCBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfY2FsY3VsYXRlX3BvcyhFd2tfVGlsZWRfQmFja2luZ19T
dG9yZQogICAgIHByaXYtPnZpZXcueSA9IHk7CiAgICAgZXZhc19vYmplY3RfbW92ZSgKICAgICAg
ICAgcHJpdi0+Y29udGVudHNDbGlwcGVyLAotICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIu
eCArIHByaXYtPnZpZXcueCwKLSAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgKyBwcml2
LT52aWV3LnkpOworICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggKyBwcml2LT52
aWV3LngsCisgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSArIHByaXYtPnZpZXcu
eSk7CiB9CiAKIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9maWxsX3JlbmRl
cmVycyhFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2KQpAQCAtMTMxNCw3ICsxMzE0
LDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0
ZShFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3IKICAgICBFdmFzX0Nvb3JkIHgsIHksIHdpZHRo
LCBoZWlnaHQ7CiAKICAgICBldmFzX29iamVjdF9nZW9tZXRyeV9nZXQoZXdrQmFja2luZ1N0b3Jl
LCAmeCwgJnksICZ3aWR0aCwgJmhlaWdodCk7Ci0gICAgREJHKCJld2tCYWNraW5nU3RvcmUlcCBh
dCAlZCwlZCArICVkeCVkIiwgZXdrQmFja2luZ1N0b3JlLCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTsK
KyAgICBEQkcoImV3a0JhY2tpbmdTdG9yZT0lcCBhdCAlZCwlZCArICVkeCVkIiwgZXdrQmFja2lu
Z1N0b3JlLCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKIAogICAgIFBSSVZfREFUQV9HRVRfT1JfUkVU
VVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdik7CiAKQEAgLTEzODEsMTAgKzEzODEsMTAgQEAgc3Rh
dGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZShFdmFzX09i
amVjdCogZXdrQmFja2luZ1N0b3IKICAgICAgICAgfHwgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54
IDw9IC0gcHJpdi0+dmlldy50aWxlLndpZHRoCiAgICAgICAgIHx8IHByaXYtPnZpZXcub2Zmc2V0
LmJhc2UueSA+IDAKICAgICAgICAgfHwgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS55IDw9IC0gcHJp
di0+dmlldy50aWxlLmhlaWdodCkKLSAgICAgICAgRVJSKCJpbmNvcnJlY3QgYmFzZSBvZmZzZXQg
JSs0ZCwlKzRkLCB0aWxlPSVkeCVkLCBjdXI9JSs0ZCwlKzRkXG4iLAorICAgICAgICBFUlIoImlu
Y29ycmVjdCBiYXNlIG9mZnNldCAlKzRkLCUrNGQsIHRpbGU9JWR4JWQsIGN1cnJlbnQ9JSs0ZCwl
KzRkXG4iLAogICAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54LCBwcml2LT52aWV3
Lm9mZnNldC5iYXNlLnksCiAgICAgICAgICAgICBwcml2LT52aWV3LnRpbGUud2lkdGgsIHByaXYt
PnZpZXcudGlsZS5oZWlnaHQsCi0gICAgICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCwg
cHJpdi0+dmlldy5vZmZzZXQuY3VyLnkpOworICAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQu
Y3VycmVudC54LCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkpOwogCiB9CiAKQEAgLTE0NDgs
OCArMTQ0OCw4IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Nj
cm9sbF9mdWxsX29mZnNldF9zZXRfaW50ZXJuYWwoRXdrX1RpCiAgICAgaWYgKHByaXYtPnJlbmRl
ci5kaXNhYmxlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcHJpdi0+dmlldy5vZmZz
ZXQuY3VyLnggPSB4OwotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ID0geTsKKyAgICBwcml2
LT52aWV3Lm9mZnNldC5jdXJyZW50LnggPSB4OworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJl
bnQueSA9IHk7CiAKICAgICBwcml2LT5jaGFuZ2VkLm9mZnNldCA9IHRydWU7CiAgICAgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX2NoYW5nZWQocHJpdik7CkBAIC0xNDU5LDEwICsxNDU5LDEwIEBA
IHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29m
ZnNldF9zZXRfaW50ZXJuYWwoRXdrX1RpCiAKIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0KEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUs
IEV2YXNfQ29vcmQgeCwgRXZhc19Db29yZCB5KQogewotICAgIERCRygiZXdrQmFja2luZ1N0b3Jl
JXAsIHg9JWQsIHk9JWQiLCBld2tCYWNraW5nU3RvcmUsIHgsIHkpOworICAgIERCRygiZXdrQmFj
a2luZ1N0b3JlPSVwLCB4PSVkLCB5PSVkIiwgZXdrQmFja2luZ1N0b3JlLCB4LCB5KTsKIAogICAg
IFBSSVZfREFUQV9HRVRfT1JfUkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdiwgZmFsc2UpOwot
ICAgIGlmICh4ID09IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ICYmIHkgPT0gcHJpdi0+dmlldy5v
ZmZzZXQuY3VyLnkpCisgICAgaWYgKHggPT0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ICYm
IHkgPT0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55KQogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAogICAgIHJldHVybiBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0
X3NldF9pbnRlcm5hbChwcml2LCB4LCB5KTsKQEAgLTE0NzAsMjAgKzE0NzAsMjAgQEAgRWluYV9C
b29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXQoRXZhc19P
YmplY3QqIGV3a0JhY2tpbmcKIAogRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3Nj
cm9sbF9mdWxsX29mZnNldF9hZGQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgRXZhc19D
b29yZCBkZWx0YVgsIEV2YXNfQ29vcmQgZGVsdGFZKQogewotICAgIERCRygiZXdrQmFja2luZ1N0
b3JlJXAsIGRlbHRhWD0lZCwgZGVsdGFZPSVkIiwgZXdrQmFja2luZ1N0b3JlLCBkZWx0YVgsIGRl
bHRhWSk7CisgICAgREJHKCJld2tCYWNraW5nU3RvcmU9JXAsIGRlbHRhWD0lZCwgZGVsdGFZPSVk
IiwgZXdrQmFja2luZ1N0b3JlLCBkZWx0YVgsIGRlbHRhWSk7CiAKICAgICBQUklWX0RBVEFfR0VU
X09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUsIHByaXYsIGZhbHNlKTsKICAgICBpZiAoIWRlbHRh
WCAmJiAhZGVsdGFZKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVybiBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3NldF9pbnRlcm5hbAotICAgICAg
ICAgICAgICAgKHByaXYsIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ICsgZGVsdGFYLCBwcml2LT52
aWV3Lm9mZnNldC5jdXIueSArIGRlbHRhWSk7CisgICAgICAgICAgICAgICAocHJpdiwgcHJpdi0+
dmlldy5vZmZzZXQuY3VycmVudC54ICsgZGVsdGFYLCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
LnkgKyBkZWx0YVkpOwogfQogCiBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV96b29tX3NldF9pbnRlcm5hbChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2
LCBmbG9hdCogem9vbSwgRXZhc19Db29yZCBjdXJyZW50WCwgRXZhc19Db29yZCBjdXJyZW50WSwg
RXZhc19Db29yZCogb2Zmc2V0WCwgRXZhc19Db29yZCogb2Zmc2V0WSkKIHsKLSAgICAqb2Zmc2V0
WCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAgICpvZmZzZXRZID0gcHJpdi0+dmlldy5v
ZmZzZXQuY3VyLnk7CisgICAgKm9mZnNldFggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7
CisgICAgKm9mZnNldFkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAKICAgICBpZiAo
ZmFic2YocHJpdi0+dmlldy50aWxlLnpvb20gLSAqem9vbSkgPCB6b29tU3RlcE1pbmltdW0pIHsK
ICAgICAgICAgREJHKCJpZ25vcmVkIGFzIHpvb20gZGlmZmVyZW5jZSBpcyA8ICVmOiAlZiIsCkBA
IC0xNTE0LDEwICsxNTE0LDEwIEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3pvb21fc2V0X2ludGVybmFsKEV3a19UaWxlZF9CYWNraW5nX1N0CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KICAgICBFaW5hX0lubGlzdCoqIGl0ZXJhdG9yLCAqKml0ZXJhdG9y
RW5kOwotICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0OworICAgIEV3a19UaWxl
ZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0ZW07CiAKLSAgICBFdmFzX0Nvb3JkIG5ld1ggPSBjdXJy
ZW50WCArIChwcml2LT52aWV3Lm9mZnNldC5jdXIueCAtIGN1cnJlbnRYKSAqIHNjYWxlOwotICAg
IEV2YXNfQ29vcmQgbmV3WSA9IGN1cnJlbnRZICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1ci55IC0g
Y3VycmVudFkpICogc2NhbGU7CisgICAgRXZhc19Db29yZCBuZXdYID0gY3VycmVudFggKyAocHJp
di0+dmlldy5vZmZzZXQuY3VycmVudC54IC0gY3VycmVudFgpICogc2NhbGU7CisgICAgRXZhc19D
b29yZCBuZXdZID0gY3VycmVudFkgKyAocHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55IC0gY3Vy
cmVudFkpICogc2NhbGU7CiAKICAgICBFdmFzX0Nvb3JkIG1vZGVsV2lkdGggPSBwcml2LT5tb2Rl
bC53aWR0aCAqIHNjYWxlOwogICAgIEV2YXNfQ29vcmQgbW9kZWxIZWlnaHQgPSBwcml2LT5tb2Rl
bC5oZWlnaHQgKiBzY2FsZTsKQEAgLTE1NDEsMTUgKzE1NDEsMTUgQEAgc3RhdGljIEVpbmFfQm9v
bCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV9zZXRfaW50ZXJuYWwoRXdrX1RpbGVkX0Jh
Y2tpbmdfU3QKICAgICBwcml2LT5jaGFuZ2VkLm1vZGVsID0gdHJ1ZTsKICAgICBfZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfY2hhbmdlZChwcml2KTsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1
ci54ID0gbmV3WDsKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSA9IG5ld1k7CisgICAgcHJp
di0+dmlldy5vZmZzZXQuY3VycmVudC54ID0gbmV3WDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5j
dXJyZW50LnkgPSBuZXdZOwogICAgIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCA9IGJhc2VYOwog
ICAgIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueSA9IGJhc2VZOwogCi0gICAgcHJpdi0+dmlldy5v
ZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueDsKLSAgICBwcml2LT52aWV3Lm9m
ZnNldC5vbGQueSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OwotICAgICpvZmZzZXRYID0gcHJp
di0+dmlldy5vZmZzZXQuY3VyLng7Ci0gICAgKm9mZnNldFkgPSBwcml2LT52aWV3Lm9mZnNldC5j
dXIueTsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1
cnJlbnQueDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueSA9IHByaXYtPnZpZXcub2Zmc2V0
LmN1cnJlbnQueTsKKyAgICAqb2Zmc2V0WCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueDsK
KyAgICAqb2Zmc2V0WSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueTsKIAogICAgIGV2YXNf
b2JqZWN0X21vdmUoCiAgICAgICAgIHByaXYtPmNvbnRlbnRzQ2xpcHBlciwKQEAgLTE1NjgsOSAr
MTU2OCw5IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21f
c2V0X2ludGVybmFsKEV3a19UaWxlZF9CYWNraW5nX1N0CiAgICAgICAgIEV2YXNfQ29vcmQgdGls
ZVBvc2l0aW9uWCA9IGJhc2VUaWxlUG9zaXRpb25YOwogICAgICAgICBFaW5hX0lubGlzdCogbHN0
ID0gKml0ZXJhdG9yOwogCi0gICAgICAgIEVJTkFfSU5MSVNUX0ZPUkVBQ0gobHN0LCBpdCkgewot
ICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fbW92ZShpdCwgdGlsZVBv
c2l0aW9uWCwgdGlsZVBvc2l0aW9uWSk7Ci0gICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfaXRlbV9yZXNpemUoaXQsIHRpbGVXaWR0aCwgdGlsZUhlaWdodCk7CisgICAgICAgIEVJ
TkFfSU5MSVNUX0ZPUkVBQ0gobHN0LCBpdGVtKSB7CisgICAgICAgICAgICBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0ZW0sIHRpbGVQb3NpdGlvblgsIHRpbGVQb3NpdGlvblkp
OworICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fcmVzaXplKGl0ZW0s
IHRpbGVXaWR0aCwgdGlsZUhlaWdodCk7CiAgICAgICAgICAgICB0aWxlUG9zaXRpb25YICs9IHRp
bGVXaWR0aDsKICAgICAgICAgfQogICAgICAgICB0aWxlUG9zaXRpb25ZICs9IHRpbGVIZWlnaHQ7
CkBAIC0xNTgxLDcgKzE1ODEsNyBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV96b29tX3NldF9pbnRlcm5hbChFd2tfVGlsZWRfQmFja2luZ19TdAogCiBFaW5hX0Jv
b2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV9zZXQoRXZhc19PYmplY3QqIGV3a0JhY2tp
bmdTdG9yZSwgZmxvYXQqIHpvb20sIEV2YXNfQ29vcmQgY3VycmVudFgsIEV2YXNfQ29vcmQgY3Vy
cmVudFksIEV2YXNfQ29vcmQqIG9mZnNldFgsIEV2YXNfQ29vcmQqIG9mZnNldFkpCiB7Ci0gICAg
REJHKCJld2tCYWNraW5nU3RvcmUlcCwgem9vbT0lZiIsIGV3a0JhY2tpbmdTdG9yZSwgKnpvb20p
OworICAgIERCRygiZXdrQmFja2luZ1N0b3JlPSVwLCB6b29tPSVmIiwgZXdrQmFja2luZ1N0b3Jl
LCAqem9vbSk7CiAKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUs
IHByaXYsIGZhbHNlKTsKIApAQCAtMTU5MCw3ICsxNTkwLDcgQEAgRWluYV9Cb29sIGV3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3pvb21fc2V0KEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIGZs
b2F0KgogCiBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV93ZWFrX3NldChF
dmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBmbG9hdCB6b29tLCBFdmFzX0Nvb3JkIGN1cnJl
bnRYLCBFdmFzX0Nvb3JkIGN1cnJlbnRZKQogewotICAgIERCRygiZXdrQmFja2luZ1N0b3JlJXAs
IHpvb209JWYiLCBld2tCYWNraW5nU3RvcmUsIHpvb20pOworICAgIERCRygiZXdrQmFja2luZ1N0
b3JlPSVwLCB6b29tPSVmIiwgZXdrQmFja2luZ1N0b3JlLCB6b29tKTsKICAgICBQUklWX0RBVEFf
R0VUX09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUsIHByaXYsIGZhbHNlKTsKICAgICBpZiAoIXBy
aXYtPnZpZXcud2lkdGggfHwgIXByaXYtPnZpZXcuaGVpZ2h0KQogICAgICAgICByZXR1cm4gZmFs
c2U7CkBAIC0xNjEzLDggKzE2MTMsOCBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfem9vbV93ZWFrX3NldChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBmbAogCiAgICAg
aW50IHZyb3dzID0gc3RhdGljX2Nhc3Q8aW50PihjZWlsKHByaXYtPnZpZXcuaGVpZ2h0IC9zdGF0
aWNfY2FzdDxmbG9hdD4odGlsZUhlaWdodCkpICsgMSk7CiAgICAgaW50IHZjb2xzID0gc3RhdGlj
X2Nhc3Q8aW50PihjZWlsKHByaXYtPnZpZXcud2lkdGggLyBzdGF0aWNfY2FzdDxmbG9hdD4odGls
ZVdpZHRoKSkgKyAxKTsKLSAgICBFdmFzX0Nvb3JkIG5ld1ggPSBjdXJyZW50WCArIChwcml2LT52
aWV3Lm9mZnNldC5jdXIueCAtIGN1cnJlbnRYKSAqIHNjYWxlOwotICAgIEV2YXNfQ29vcmQgbmV3
WSA9IGN1cnJlbnRZICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1ci55IC0gY3VycmVudFkpICogc2Nh
bGU7CisgICAgRXZhc19Db29yZCBuZXdYID0gY3VycmVudFggKyAocHJpdi0+dmlldy5vZmZzZXQu
Y3VycmVudC54IC0gY3VycmVudFgpICogc2NhbGU7CisgICAgRXZhc19Db29yZCBuZXdZID0gY3Vy
cmVudFkgKyAocHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55IC0gY3VycmVudFkpICogc2NhbGU7
CiAgICAgRXZhc19Db29yZCBiYXNlWCA9IG5ld1ggJSB0aWxlV2lkdGg7CiAgICAgRXZhc19Db29y
ZCBiYXNlWSA9IG5ld1kgJSB0aWxlSGVpZ2h0OwogICAgIHVuc2lnbmVkIGxvbmcgYmFzZVJvdyA9
IC1uZXdZIC8gdGlsZUhlaWdodDsKQEAgLTE2MjYsNyArMTYyNiw3IEBAIEVpbmFfQm9vbCBld2tf
dGlsZWRfYmFja2luZ19zdG9yZV96b29tX3dlYWtfc2V0KEV2YXNfT2JqZWN0KiBld2tCYWNraW5n
U3RvcmUsIGZsCiAgICAgICAgIHJlQ2FsY3VsYXRlID0gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAo
dnJvd3MgPiBwcml2LT52aWV3LnJvd3MgfHwgdmNvbHMgPiBwcml2LT52aWV3LmNvbHMpCisgICAg
aWYgKHZyb3dzID4gcHJpdi0+dmlldy5yb3dzIHx8IHZjb2xzID4gcHJpdi0+dmlldy5jb2x1bW5z
KQogICAgICAgICByZUNhbGN1bGF0ZSA9IHRydWU7CiAKICAgICBpZiAocmVDYWxjdWxhdGUpIHsK
QEAgLTE2NjcsOCArMTY2Nyw4IEBAIHZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZml4X29m
ZnNldHMoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgRXZhc19Db29yCiAgICAgUFJJVl9E
QVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2KTsKICAgICBFaW5hX0lubGlz
dCoqIGl0ZXJhdG9yLCAqKml0ZXJhdG9yRW5kOwogICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3Jl
X0l0ZW0qIGl0ZW07Ci0gICAgRXZhc19Db29yZCBuZXdYID0gcHJpdi0+dmlldy5vZmZzZXQuY3Vy
Lng7Ci0gICAgRXZhc19Db29yZCBuZXdZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7CisgICAg
RXZhc19Db29yZCBuZXdYID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54OworICAgIEV2YXNf
Q29vcmQgbmV3WSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueTsKICAgICBFdmFzX0Nvb3Jk
IGJhc2VYID0gcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54OwogICAgIEV2YXNfQ29vcmQgYmFzZVkg
PSBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnk7CiAgICAgRXZhc19Db29yZCB0aWxlV2lkdGggPSBw
cml2LT52aWV3LnRpbGUud2lkdGg7CkBAIC0xNjk2LDggKzE2OTYsOCBAQCB2b2lkIGV3a190aWxl
ZF9iYWNraW5nX3N0b3JlX2ZpeF9vZmZzZXRzKEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUs
IEV2YXNfQ29vcgogICAgICAgICBwcml2LT5tb2RlbC5iYXNlLnJvdyA9IC1uZXdZIC8gdGlsZUhl
aWdodDsKICAgICB9CiAKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCA9IG5ld1g7Ci0gICAg
cHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgPSBuZXdZOworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1
cnJlbnQueCA9IG5ld1g7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55ID0gbmV3WTsK
ICAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCA9IG5ld1g7CiAgICAgcHJpdi0+dmlldy5vZmZz
ZXQub2xkLnkgPSBuZXdZOwogICAgIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCA9IGJhc2VYOwpA
QCAtMTgxNSw4ICsxODE1LDggQEAgdm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9mbHVzaChF
dmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlKQogICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJO
KGV3a0JhY2tpbmdTdG9yZSwgcHJpdik7CiAgICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxl
VW51c2VkQ2FjaGUgPSAwOwogCi0gICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggPSAwOwotICAg
IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ID0gMDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJy
ZW50LnggPSAwOworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSA9IDA7CiAgICAgcHJp
di0+dmlldy5vZmZzZXQub2xkLnggPSAwOwogICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0g
MDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSAwOwpAQCAtMTk1Niw3ICsxOTU2LDcg
QEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVnaW9uKEV2
YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUKIHsKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVS
Tihld2tCYWNraW5nU3RvcmUsIHByaXYsIGZhbHNlKTsKICAgICBFaW5hX1RpbGVfR3JpZF9TbGlj
ZXIgc2xpY2VyOwotICAgIGNvbnN0IEVpbmFfVGlsZV9HcmlkX0luZm8qIGluZm87CisgICAgY29u
c3QgRWluYV9UaWxlX0dyaWRfSW5mbyogZ3JpZEluZm87CiAgICAgRXZhc19Db29yZCB0aWxlV2lk
dGgsIHRpbGVIZWlnaHQ7CiAgICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2Fj
aGU7CiAKQEAgLTE5NzAsMTAgKzE5NzAsMTAgQEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5n
X3N0b3JlX3ByZV9yZW5kZXJfcmVnaW9uKEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHdoaWxlIChlaW5hX3RpbGVfZ3JpZF9z
bGljZXJfbmV4dCgmc2xpY2VyLCAmaW5mbykpIHsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgbG9u
ZyBjID0gaW5mby0+Y29sOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIHIgPSBpbmZvLT5y
b3c7Ci0gICAgICAgIGlmICghX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVx
dWVzdF9hZGQocHJpdiwgYywgciwgem9vbSkpCisgICAgd2hpbGUgKGVpbmFfdGlsZV9ncmlkX3Ns
aWNlcl9uZXh0KCZzbGljZXIsICZncmlkSW5mbykpIHsKKyAgICAgICAgY29uc3QgdW5zaWduZWQg
bG9uZyBjb2x1bW4gPSBncmlkSW5mby0+Y29sOworICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25n
IHJvdyA9IGdyaWRJbmZvLT5yb3c7CisgICAgICAgIGlmICghX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9hZGQocHJpdiwgY29sdW1uLCByb3csIHpvb20pKQogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC0xOTk3LDcgKzE5OTcsNyBAQCBFaW5hX0Jvb2wg
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZWxhdGl2ZV9yYWRpdXMoRXZhc19P
YmplY3QqIGV3a0JhYwogICAgIGVuZFJvdyA9IHN0ZDo6bWluKHByaXYtPm1vZGVsLmN1cnJlbnQu
cm93cyAtIDEsCiAgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPm1vZGVsLmJhc2Uucm93ICsg
cHJpdi0+dmlldy5yb3dzICsgbiAtIDEpOwogICAgIGVuZENvbCA9IHN0ZDo6bWluKHByaXYtPm1v
ZGVsLmN1cnJlbnQuY29sdW1ucyAtIDEsCi0gICAgICAgICAgICAgICAgICAgICAgIHByaXYtPm1v
ZGVsLmJhc2UuY29sdW1uICsgcHJpdi0+dmlldy5jb2xzICsgbiAtIDEpOworICAgICAgICAgICAg
ICAgICAgICAgICBwcml2LT5tb2RlbC5iYXNlLmNvbHVtbiArIHByaXYtPnZpZXcuY29sdW1ucyAr
IG4gLSAxKTsKIAogICAgIElORigic3RhcnRSb3c9JWx1LCBlbmRSb3c9JWx1LCBzdGFydENvbD0l
bHUsIGVuZENvbD0lbHUiLAogICAgICAgICBzdGFydFJvdywgZW5kUm93LCBzdGFydENvbCwgZW5k
Q29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
LmgKaW5kZXggZTkzY2NmNy4uNzQwM2VmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmgKQEAgLTY0LDcgKzY0LDcgQEAgc3RydWN0IF9Fd2tf
VGlsZV9TdGF0cyB7CiBzdHJ1Y3QgX0V3a19UaWxlIHsKICAgICBFaW5hX1RpbGVyKiB1cGRhdGVz
OyAgICAvKio8IHVwZGF0ZWQvZGlydHkgYXJlYXMgKi8KICAgICBFd2tfVGlsZV9TdGF0cyBzdGF0
czsgICAgICAgLyoqPCB0aWxlIHVzYWdlIHN0YXRpc3RpY3MgKi8KLSAgICB1bnNpZ25lZCBsb25n
IGNvbCwgcm93OyAvKio8IHRpbGUgdGlsZSBwb3NpdGlvbiAqLworICAgIHVuc2lnbmVkIGxvbmcg
Y29sdW1uLCByb3c7IC8qKjwgdGlsZSB0aWxlIHBvc2l0aW9uICovCiAgICAgRXZhc19Db29yZCB4
LCB5OyAgICAgICAgLyoqPCB0aWxlIGNvb3JkaW5hdGUgcG9zaXRpb24gKi8KIAogICAgIC8qKiBO
ZXZlciBldmVyIGNoYW5nZSB0aG9zZSBhZnRlciB0aWxlIGlzIGNyZWF0ZWQgKHJlc3BlY3QgY29u
c3QhKSAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tYXRy
aXguY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tYXRyaXguY3BwCmluZGV4
IGFiMDYwNDIuLjVkOTkxYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dGlsZWRfbWF0cml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21h
dHJpeC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0V3a19UaWxlX01hdHJp
eF9FbnRyeSBFd2tfVGlsZV9NYXRyaXhfRW50cnk7CiBzdHJ1Y3QgX0V3a19UaWxlX01hdHJpeCB7
CiAgICAgRWluYV9NYXRyaXhzcGFyc2UqIG1hdHJpeDsKICAgICBFaW5hX0lubGlzdCogbWF0cmlj
ZXM7Ci0gICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxpZVVudXNlZENhY2hlOworICAgIEV3
a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlOwogICAgIEV2YXNfQ29sb3JzcGFj
ZSBjc3BhY2U7CiAgICAgc3RydWN0IHsKICAgICAgICAgdm9pZCAoKmNhbGxiYWNrKSh2b2lkKiBk
YXRhLCBFd2tfVGlsZSogdGlsZSwgY29uc3QgRWluYV9SZWN0YW5nbGUqIHVwZGF0ZSk7CkBAIC05
NCw3ICs5NCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZV9tYXRyaXhfY2VsbF9mcmVlKHZvaWQq
IHVzZXJEYXRhLCB2b2lkKiBjZWxsRGF0YSkKICAgICBpZiAoIXRpbGUpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9mcmVlemUodGlsZU1hdHJpeC0+dGlsaWVV
bnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4
LT50aWxlVW51c2VkQ2FjaGUpOwogCiAgICAgaWYgKHRpbGUtPnVwZGF0ZXMgfHwgdGlsZS0+c3Rh
dHMuZnVsbF91cGRhdGUpCiAgICAgICAgIHRpbGVNYXRyaXgtPnVwZGF0ZXMgPSBlaW5hX2xpc3Rf
cmVtb3ZlKHRpbGVNYXRyaXgtPnVwZGF0ZXMsIHRpbGUpOwpAQCAtMTAyLDggKzEwMiw4IEBAIHN0
YXRpYyB2b2lkIF9ld2tfdGlsZV9tYXRyaXhfY2VsbF9mcmVlKHZvaWQqIHVzZXJEYXRhLCB2b2lk
KiBjZWxsRGF0YSkKICAgICBpZiAodGlsZS0+dmlzaWJsZSkKICAgICAgICAgRVJSKCJmcmVlaW5n
IGNlbGwgdGhhdCBpcyB2aXNpYmxlLCBsZWFraW5nIHRpbGUgJXAiLCB0aWxlKTsKICAgICBlbHNl
IHsKLSAgICAgICAgaWYgKCFld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9nZXQodGlsZU1hdHJp
eC0+dGlsaWVVbnVzZWRDYWNoZSwgdGlsZSkpCi0gICAgICAgICAgICBFUlIoInRpbGUgJXAgd2Fz
IG5vdCBpbiBjYWNoZSAlcD8gbGVha2luZy4uLiIsIHRpbGUsIHRpbGVNYXRyaXgtPnRpbGllVW51
c2VkQ2FjaGUpOworICAgICAgICBpZiAoIWV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX2dldCh0
aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUsIHRpbGUpKQorICAgICAgICAgICAgRVJSKCJ0aWxl
ICVwIHdhcyBub3QgaW4gY2FjaGUgJXA/IGxlYWtpbmcuLi4iLCB0aWxlLCB0aWxlTWF0cml4LT50
aWxlVW51c2VkQ2FjaGUpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEV3a19UaWxlX01h
dHJpeF9FbnRyeSogZW50cnk7CiAgICAgICAgICAgICBEQkcoInRpbGUgY2VsbCBkb2VzIG5vdCBl
eGlzdCBhbnltb3JlLCBmcmVlIGl0ICVwIiwgdGlsZSk7CkBAIC0xMjEsNyArMTIxLDcgQEAgc3Rh
dGljIHZvaWQgX2V3a190aWxlX21hdHJpeF9jZWxsX2ZyZWUodm9pZCogdXNlckRhdGEsIHZvaWQq
IGNlbGxEYXRhKQogICAgICAgICB9CiAgICAgfQogCi0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hl
X3RoYXcodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVfdW51c2Vk
X2NhY2hlX3RoYXcodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlKTsKIH0KIAogLyogY2FsbGVk
IHdoZW4gY2FjaGUgb2YgdW51c2VkIHRpbGUgaXMgZmx1c2hlZCAqLwpAQCAtMTM3LDcgKzEzNyw3
IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZV9tYXRyaXhfdGlsZV9mcmVlKHZvaWQqIGRhdGEsIEV3
a19UaWxlKiB0aWxlKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFlaW5hX21h
dHJpeHNwYXJzZV9jZWxsX2lkeF9nZXQoZW50cnktPm1hdHJpeCwgdGlsZS0+cm93LCB0aWxlLT5j
b2wsICZjZWxsKSkgeworICAgIGlmICghZWluYV9tYXRyaXhzcGFyc2VfY2VsbF9pZHhfZ2V0KGVu
dHJ5LT5tYXRyaXgsIHRpbGUtPnJvdywgdGlsZS0+Y29sdW1uLCAmY2VsbCkpIHsKIAogICAgICAg
ICBFUlIoInJlbW92aW5nIHRpbGUgJXAgdGhhdCB3YXMgbm90IGluIHRoZSBtYXRyaXg/IExlYWtp
bmcuLi4iLCB0aWxlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTg0LDcgKzE4NCw3IEBAIHN0YXRp
YyB2b2lkIF9ld2tfdGlsZV9tYXRyaXhfdGlsZV9mcmVlKHZvaWQqIGRhdGEsIEV3a19UaWxlKiB0
aWxlKQogICogZXhpc3RpbmcgdGlsZXMgYW5kIGdpdmUgdGhlbSBiYWNrLCBhbGxvd2luZyB0aGVt
IHRvIGJlCiAgKiBmcmVlZC9yZXBsYWNlZCBieSB0aGUgY2FjaGUuCiAgKgotICogQHBhcmFtIHR1
YyBjYWNoZSBvZiB1bnVzZWQgdGlsZXMgb3IgQGMgMCB0byBjcmVhdGUgb25lCisgKiBAcGFyYW0g
dGlsZVVudXNlZENhY2hlIGNhY2hlIG9mIHVudXNlZCB0aWxlcyBvciBAYyAwIHRvIGNyZWF0ZSBv
bmUKICAqICAgICAgICBhdXRvbWF0aWNhbGx5LgogICogQHBhcmFtIGNvbHVtbnMgbnVtYmVyIG9m
IGNvbHVtbnMgaW4gdGhlIG1hdHJpeC4KICAqIEBwYXJhbSByb3dzIG51bWJlciBvZiByb3dzIGlu
IHRoZSBtYXRyaXguCkBAIC0yMTEsMTAgKzIxMSwxMCBAQCBFd2tfVGlsZV9NYXRyaXgqIGV3a190
aWxlX21hdHJpeF9uZXcoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUsIHVu
cwogICAgIGV3a190aWxlX21hdHJpeF96b29tX2xldmVsX3NldCh0aWxlTWF0cml4LCB6b29tTGV2
ZWwpOwogCiAgICAgaWYgKHRpbGVVbnVzZWRDYWNoZSkKLSAgICAgICAgdGlsZU1hdHJpeC0+dGls
aWVVbnVzZWRDYWNoZSA9IGV3a190aWxlX3VudXNlZF9jYWNoZV9yZWYodGlsZVVudXNlZENhY2hl
KTsKKyAgICAgICAgdGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlID0gZXdrX3RpbGVfdW51c2Vk
X2NhY2hlX3JlZih0aWxlVW51c2VkQ2FjaGUpOwogICAgIGVsc2UgewotICAgICAgICB0aWxlTWF0
cml4LT50aWxpZVVudXNlZENhY2hlID0gZXdrX3RpbGVfdW51c2VkX2NhY2hlX25ldyhERUZBVUxU
X0NBQ0hFX1NJWkUpOwotICAgICAgICBpZiAoIXRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUp
IHsKKyAgICAgICAgdGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlID0gZXdrX3RpbGVfdW51c2Vk
X2NhY2hlX25ldyhERUZBVUxUX0NBQ0hFX1NJWkUpOworICAgICAgICBpZiAoIXRpbGVNYXRyaXgt
PnRpbGVVbnVzZWRDYWNoZSkgewogICAgICAgICAgICAgRVJSKCJubyBjYWNoZSBvZiB1bnVzZWQg
dGlsZSEiKTsKICAgICAgICAgICAgIGVpbmFfbWF0cml4c3BhcnNlX2ZyZWUodGlsZU1hdHJpeC0+
bWF0cml4KTsKICAgICAgICAgICAgIGZyZWUodGlsZU1hdHJpeCk7CkBAIC0yOTgsNyArMjk4LDcg
QEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfZnJlZShFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgp
CiAKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTih0aWxlTWF0cml4KTsKIAotICAgIGV3
a190aWxlX3VudXNlZF9jYWNoZV9mcmVlemUodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7
CisgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxlVW51c2Vk
Q2FjaGUpOwogICAgIGV3a190aWxlX21hdHJpeF9pbnZhbGlkYXRlKHRpbGVNYXRyaXgpOwogICAg
IGVudHJ5ID0gRUlOQV9JTkxJU1RfQ09OVEFJTkVSX0dFVCh0aWxlTWF0cml4LT5tYXRyaWNlcywg
RXdrX1RpbGVfTWF0cml4X0VudHJ5KTsKICAgICBlaW5hX21hdHJpeHNwYXJzZV9mcmVlKGVudHJ5
LT5tYXRyaXgpOwpAQCAtMzA2LDggKzMwNiw4IEBAIHZvaWQgZXdrX3RpbGVfbWF0cml4X2ZyZWUo
RXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4KQogICAgIGZyZWUoZW50cnkpOwogICAgIHRpbGVN
YXRyaXgtPm1hdHJpY2VzID0gMDsKIAotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3KHRp
bGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOwotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV91
bnJlZih0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlKTsKKyAgICBld2tfdGlsZV91bnVzZWRf
Y2FjaGVfdGhhdyh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOworICAgIGV3a190aWxlX3Vu
dXNlZF9jYWNoZV91bnJlZih0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogCiAjaWZkZWYg
REVCVUdfTUVNX0xFQUtTCiAgICAgdGlsZXMgPSB0aWxlTWF0cml4LT5zdGF0cy50aWxlcy5hbGxv
Y2F0ZWQgLSB0aWxlTWF0cml4LT5zdGF0cy50aWxlcy5mcmVlZDsKQEAgLTM1NSw3ICszNTUsNyBA
QCB2b2lkIGV3a190aWxlX21hdHJpeF9yZXNpemUoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4
LCB1bnNpZ25lZCBsb25nIGNvbHMsIHVucwogRXdrX1RpbGVfVW51c2VkX0NhY2hlKiBld2tfdGls
ZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChjb25zdCBFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRy
aXgpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHRpbGVNYXRyaXgsIDAp
OwotICAgIHJldHVybiB0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlOworICAgIHJldHVybiB0
aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGU7CiB9CiAKIC8qKgpAQCAtMzkwLDcgKzM5MCw3IEBA
IEV3a19UaWxlKiBld2tfdGlsZV9tYXRyaXhfdGlsZV9leGFjdF9nZXQoRXdrX1RpbGVfTWF0cml4
KiB0aWxlTWF0cml4LCB1bnNpZ25lZCBsCiAKIGVuZDoKICAgICBpZiAoIXRpbGUtPnZpc2libGUp
IHsKLSAgICAgICAgaWYgKCFld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9nZXQodGlsZU1hdHJp
eC0+dGlsaWVVbnVzZWRDYWNoZSwgdGlsZSkpCisgICAgICAgIGlmICghZXdrX3RpbGVfdW51c2Vk
X2NhY2hlX3RpbGVfZ2V0KHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSwgdGlsZSkpCiAgICAg
ICAgICAgICBXUk4oIkV3a19UaWxlIHdhcyB1bnVzZWQgYnV0IG5vdCBpbiBjYWNoZT8gYnVnISIp
OwogICAgIH0KIApAQCAtNDU5LDcgKzQ1OSw3IEBAIEV3a19UaWxlKiBld2tfdGlsZV9tYXRyaXhf
dGlsZV9uZXcoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4LCBFdmFzKiBjYW52YXMsIHVuCiAg
ICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIHRpbGUtPmNvbCA9IGNvbHVtbjsKKyAgICB0
aWxlLT5jb2x1bW4gPSBjb2x1bW47CiAgICAgdGlsZS0+cm93ID0gcm93OwogICAgIHRpbGUtPngg
PSBjb2x1bW4gKiB0aWxlV2lkdGg7CiAgICAgdGlsZS0+eSA9IHJvdyAqIHRpbGVIZWlnaHQ7CkBA
IC00ODYsNyArNDg2LDcgQEAgRXdrX1RpbGUqIGV3a190aWxlX21hdHJpeF90aWxlX25ldyhFd2tf
VGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgsIEV2YXMqIGNhbnZhcywgdW4KICAqIHVudXNlZCBjYWNo
ZS4KICAqCiAgKiBAcGFyYW0gdGlsZU1hdHJpeCB0aGUgdGlsZSBtYXRyaXggdG8gcmV0dXJuIHRp
bGUgdG8uCi0gKiBAcGFyYW0gdCB0aGUgdGlsZSBpbnN0YW5jZSB0byByZXR1cm4sIG11c3QgQGIg
bm90IGJlIEBjIDAuCisgKiBAcGFyYW0gdGlsZSB0aGUgdGlsZSBpbnN0YW5jZSB0byByZXR1cm4s
IG11c3QgQGIgbm90IGJlIEBjIDAuCiAgKiBAcGFyYW0gbGFzdF91c2VkIHRpbWUgaW4gd2hpY2gg
dGlsZS53aWR0aGFzIGxhc3QgdXNlZC4KICAqCiAgKiBAcmV0dXJuICN0cnVlIG9uIHN1Y2Nlc3Mg
b3IgI2ZhbHNlIG9uIGZhaWx1cmUuCkBAIC01MDAsNyArNTAwLDcgQEAgRWluYV9Cb29sIGV3a190
aWxlX21hdHJpeF90aWxlX3B1dChFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgsIEV3a19UaWxl
KiB0aWxlLAogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHRpbGUtPnN0YXRzLmxhc3RfdXNl
ZCA9IGxhc3RVc2VkOwotICAgIHJldHVybiBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQo
dGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSwgdGlsZSwgX2V3a190aWxlX21hdHJpeF90aWxl
X2ZyZWUsIHRpbGVNYXRyaXgpOworICAgIHJldHVybiBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGls
ZV9wdXQodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlLCB0aWxlLCBfZXdrX3RpbGVfbWF0cml4
X3RpbGVfZnJlZSwgdGlsZU1hdHJpeCk7CiB9CiAKIEVpbmFfQm9vbCBld2tfdGlsZV9tYXRyaXhf
dGlsZV91cGRhdGUoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4LCB1bnNpZ25lZCBsb25nIGNv
bCwgdW5zaWduZWQgbG9uZyByb3csIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiB1cGRhdGUpCkBAIC03
MDYsNyArNzA2LDcgQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfZGJnKGNvbnN0IEV3a19UaWxlX01h
dHJpeCogdGlsZU1hdHJpeCkKICAgICAgICAgICAgICAgICBwcmludGYoIlxuIik7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBwcmludGYoIiUzbHUsJTNsdSAlMTBwOiIsIGNvbHVtbiwgcm93
LCB0aWxlKTsKLSAgICAgICAgICAgIHByaW50ZigiIFslM2x1LCUzbHUgKyAlZHglZCBAICUwLjNm
XSVjIiwgdGlsZS0+Y29sLCB0aWxlLT5yb3csIHRpbGUtPndpZHRoLCB0aWxlLT5oZWlnaHQsIHRp
bGUtPnpvb20sIHRpbGUtPnZpc2libGUgPyAnKicgOiAnICcpOworICAgICAgICAgICAgcHJpbnRm
KCIgWyUzbHUsJTNsdSArICVkeCVkIEAgJTAuM2ZdJWMiLCB0aWxlLT5jb2x1bW4sIHRpbGUtPnJv
dywgdGlsZS0+d2lkdGgsIHRpbGUtPmhlaWdodCwgdGlsZS0+em9vbSwgdGlsZS0+dmlzaWJsZSA/
ICcqJyA6ICcgJyk7CiAgICAgICAgICAgICBwcmludGYoIlxuIik7CiAgICAgICAgIH0KICAgICB9
CkBAIC03MTQsNyArNzE0LDcgQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfZGJnKGNvbnN0IEV3a19U
aWxlX01hdHJpeCogdGlsZU1hdHJpeCkKICAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgIGVpbmFf
aXRlcmF0b3JfZnJlZShpdGVyYXRvcik7CiAKLSAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfZGJn
KHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgIGV3a190aWxlX3VudXNlZF9jYWNo
ZV9kYmcodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlKTsKIH0KIAogLyoqCkBAIC03MzAsNyAr
NzMwLDcgQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfZnJlZXplKEV3a19UaWxlX01hdHJpeCogdGls
ZU1hdHJpeCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTih0aWxlTWF0cml4KTsK
ICAgICBpZiAoIXRpbGVNYXRyaXgtPmZyb3plbikKLSAgICAgICAgZXdrX3RpbGVfdW51c2VkX2Nh
Y2hlX2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlKTsKKyAgICAgICAgZXdrX3Rp
bGVfdW51c2VkX2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogICAg
IHRpbGVNYXRyaXgtPmZyb3plbisrOwogfQogCkBAIC03NTAsNSArNzUwLDUgQEAgdm9pZCBld2tf
dGlsZV9tYXRyaXhfdGhhdyhFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgpCiAKICAgICB0aWxl
TWF0cml4LT5mcm96ZW4tLTsKICAgICBpZiAoIXRpbGVNYXRyaXgtPmZyb3plbikKLSAgICAgICAg
ZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXcodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7
CisgICAgICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3KHRpbGVNYXRyaXgtPnRpbGVVbnVz
ZWRDYWNoZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVk
X21vZGVsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbW9kZWwuY3BwCmlu
ZGV4IDg0MDQ4Y2IuLjg3ZmE4M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdGlsZWRfbW9kZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRf
bW9kZWwuY3BwCkBAIC0zNDUsMTYgKzM0NSwxNiBAQCB2b2lkIGV3a190aWxlX3VwZGF0ZXNfcHJv
Y2VzcyhFd2tfVGlsZSogdGlsZSwgdm9pZCAoKmNhbGxiYWNrKSh2b2lkKiBkYXRhLCBFd2tfVAog
ICAgICAgICByZWN0LmggPSB0aWxlLT5oZWlnaHQ7CiAjaWZkZWYgVElMRV9TVEFUU19BQ0NPVU5U
X1JFTkRFUl9USU1FCiAgICAgICAgIHN0cnVjdCB0aW1ldmFsIHRpbWV2OwotICAgICAgICBkb3Vi
bGUgcmVuZGVyX3N0YXJ0OworICAgICAgICBkb3VibGUgcmVuZGVyU3RhcnRUaW1lOwogICAgICAg
ICBnZXR0aW1lb2ZkYXkoJnRpbWV2LCAwKTsKLSAgICAgICAgcmVuZGVyX3N0YXJ0aWxlID0gKGRv
dWJsZSl0aW1ldi50dl9zZWMgKworICAgICAgICByZW5kZXJTdGFydFRpbWUgPSAoZG91YmxlKXRp
bWV2LnR2X3NlYyArCiAgICAgICAgICAgICAgICAgICAgICAgICgoKGRvdWJsZSl0aW1ldi50dl91
c2VjKSAvIDEwMDAwMDApOwogI2VuZGlmCiAgICAgICAgIGNhbGxiYWNrKCh2b2lkKilkYXRhLCB0
aWxlLCAmcmVjdCk7CiAjaWZkZWYgVElMRV9TVEFUU19BQ0NPVU5UX1JFTkRFUl9USU1FCiAgICAg
ICAgIGdldHRpbWVvZmRheSgmdGltZXYsIDApOwogICAgICAgICB0aWxlLT5zdGF0cy5yZW5kZXJf
dGltZSA9IChkb3VibGUpdGltZXYudHZfc2VjICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoKChkb3VibGUpdGltZXYudHZfdXNlYykgLyAxMDAwMDAwKSAtIHJlbmRlcl9zdGFydDsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChkb3VibGUpdGltZXYudHZfdXNlYykg
LyAxMDAwMDAwKSAtIHJlbmRlclN0YXJ0VGltZTsKICNlbmRpZgogICAgIH0gZWxzZSBpZiAodGls
ZS0+dXBkYXRlcykgewogICAgICAgICBFaW5hX0l0ZXJhdG9yKiBpdHIgPSBlaW5hX3RpbGVyX2l0
ZXJhdG9yX25ldyh0aWxlLT51cGRhdGVzKTsKQEAgLTUyMCw3ICs1MjAsNyBAQCB2b2lkIGV3a190
aWxlX3VudXNlZF9jYWNoZV9jbGVhcihFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRD
YWNoZSkKIH0KIAogLyoqCi0gKiBoZWlnaHRvbGQgcmVmZXJlbmNlIHRvIGNhY2hlLgorICogSG9s
ZCByZWZlcmVuY2UgdG8gY2FjaGUuCiAgKgogICogQHJldHVybiBzYW1lIHBvaW50ZXIgYXMgdGFr
ZW4uCiAgKgpAQCAtNjMwLDcgKzYzMCw3IEBAIHZvaWQgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2F1
dG9fZmx1c2goRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUpCiAgKiBGcmVl
emUgY2FjaGUgdG8gbm90IGRvIG1haW50ZW5hbmNlIHRhc2tzLgogICoKICAqIE1haW50ZW5hbmNl
IHRhc2tzIG9wdGltaXplIGNhY2hlIHVzYWdlLCBidXQgbWF5YmUgd2Uga25vdyB3ZSBzaG91bGQK
LSAqIGhlaWdodG9sZCBvbiB0aGVtIHVudGlsIHdlIGRvIHRoZSBsYXN0IG9wZXJhdGlvbiwgaW4g
dGhpcyBjYXNlIHdlIGZyZWV6ZQorICogaG9sZCBvbiB0aGVtIHVudGlsIHdlIGRvIHRoZSBsYXN0
IG9wZXJhdGlvbiwgaW4gdGhpcyBjYXNlIHdlIGZyZWV6ZQogICogd2hpbGUgb3BlcmF0aW5nIGFu
ZCB0aGVuIHRoYXcgd2hlbiB3ZSdyZSBkb25lLgogICoKICAqIEBzZWUgZXdrX3RpbGVfdW51c2Vk
X2NhY2hlX3RoYXcoKQpAQCAtNzA3LDggKzcwNyw4IEBAIEVpbmFfQm9vbCBld2tfdGlsZV91bnVz
ZWRfY2FjaGVfdGlsZV9nZXQoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUs
CiAgKiBiZWNhdXNlIHVzdWFsbHkgd2Ugd2FudCBhIGxhenkgb3BlcmF0aW9uIGZvciBiZXR0ZXIg
cGVyZm9ybWFuY2UuCiAgKgogICogQHBhcmFtIHRpbGVVbnVzZWRDYWNoZSBjYWNoZSBvZiB1bnVz
ZWQgdGlsZXMKLSAqIEBwYXJhbSB0IHRpbGUgdG8gYmUgYWRkZWQgdG8gY2FjaGUuCi0gKiBAcGFy
YW0gdGlsZV9mcmVlX2NiIGZ1bmN0aW9uIHVzZWQgdG8gZnJlZSB0aWxlcy4KKyAqIEBwYXJhbSB0
aWxlIHRpbGUgdG8gYmUgYWRkZWQgdG8gY2FjaGUuCisgKiBAcGFyYW0gdGlsZUZyZWVDYWxsYmFj
ayBmdW5jdGlvbiB1c2VkIHRvIGZyZWUgdGlsZXMuCiAgKiBAcGFyYW0gZGF0YSBjb250ZXh0IHRv
IGdpdmUgYmFjayB0byBAYSB0aWxlX2ZyZWVfY2IgYXMgZmlyc3QgYXJndW1lbnQuCiAgKgogICog
QHJldHVybiAjdHJ1ZSBvbiBzdWNjZXNzLCAjZmFsc2Ugb3RoZXJ3aXNlLiBJZiBAYyB0aWxlLT52
aXNpYmxlCkBAIC03MTYsNyArNzE2LDcgQEAgRWluYV9Cb29sIGV3a190aWxlX3VudXNlZF9jYWNo
ZV90aWxlX2dldChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSwKICAqCiAg
KiBAc2VlIGV3a190aWxlX3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKCkKICAqLwotRWluYV9Cb29s
IGV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1dChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRp
bGVVbnVzZWRDYWNoZSwgRXdrX1RpbGUqIHRpbGUsIHZvaWQgKCogdGlsZUZyZWVDYikodm9pZCog
ZGF0YSwgRXdrX1RpbGUqIHRpbGUpLCBjb25zdCB2b2lkKiBkYXRhKQorRWluYV9Cb29sIGV3a190
aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1dChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVz
ZWRDYWNoZSwgRXdrX1RpbGUqIHRpbGUsIHZvaWQgKCogdGlsZUZyZWVDYWxsYmFjaykodm9pZCog
ZGF0YSwgRXdrX1RpbGUqIHRpbGUpLCBjb25zdCB2b2lkKiBkYXRhKQogewogICAgIEV3a19UaWxl
X1VudXNlZF9DYWNoZV9FbnRyeSogdW51c2VkQ2FjaGVFbnRyeTsKIApAQCAtNzM3LDcgKzczNyw3
IEBAIEVpbmFfQm9vbCBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQoRXdrX1RpbGVfVW51
c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUsCiAKICAgICB1bnVzZWRDYWNoZUVudHJ5LT50aWxl
ID0gdGlsZTsKICAgICB1bnVzZWRDYWNoZUVudHJ5LT53ZWlnaHQgPSAwOyAvKiBjYWxjdWxhdGVk
IGp1c3QgYmVmb3JlIHNvcnQgKi8KLSAgICB1bnVzZWRDYWNoZUVudHJ5LT50aWxlX2ZyZWUuY2Fs
bGJhY2sgPSB0aWxlRnJlZUNiOworICAgIHVudXNlZENhY2hlRW50cnktPnRpbGVfZnJlZS5jYWxs
YmFjayA9IHRpbGVGcmVlQ2FsbGJhY2s7CiAgICAgdW51c2VkQ2FjaGVFbnRyeS0+dGlsZV9mcmVl
LmRhdGEgPSAodm9pZCopZGF0YTsKIAogICAgIHRpbGVVbnVzZWRDYWNoZS0+ZW50cmllcy5jb3Vu
dCsrOwpAQCAtNzU4LDcgKzc1OCw3IEBAIHZvaWQgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2RiZyhj
b25zdCBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSkKICAgICBFSU5BX0xJ
U1RfRk9SRUFDSCh0aWxlVW51c2VkQ2FjaGUtPmVudHJpZXMubGlzdCwgbGlzdCwgaXRlbSkgewog
ICAgICAgICBjb25zdCBFd2tfVGlsZSogdGlsZSA9IHN0YXRpY19jYXN0PEV3a19UaWxlX1VudXNl
ZF9DYWNoZV9FbnRyeSo+KGl0ZW0pLT50aWxlOwogICAgICAgICBwcmludGYoIiBbJTNsdSwlM2x1
ICsgJWR4JWQgQCAlMC4zZl0lYyIsCi0gICAgICAgICAgICAgICB0aWxlLT5jb2wsIHRpbGUtPnJv
dywgdGlsZS0+d2lkdGgsIHRpbGUtPmhlaWdodCwgdGlsZS0+em9vbSwKKyAgICAgICAgICAgICAg
IHRpbGUtPmNvbHVtbiwgdGlsZS0+cm93LCB0aWxlLT53aWR0aCwgdGlsZS0+aGVpZ2h0LCB0aWxl
LT56b29tLAogICAgICAgICAgICAgICAgdGlsZS0+dmlzaWJsZSA/ICcqJyA6ICcgJyk7CiAKICAg
ICAgICAgaWYgKCEoY291bnQgJSA0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4
IGE2OGJiYWIuLmZkMjVmNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMjE2
LDU0ICsyMTYsNTQgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogI2lmbmRlZiBF
V0tfVFlQRV9DSEVDSwogI2RlZmluZSBFV0tfVklFV19UWVBFX0NIRUNLKGV3a1ZpZXcsIC4uLikg
ZG8geyB9IHdoaWxlICgwKQogI2Vsc2UKLSNkZWZpbmUgRVdLX1ZJRVdfVFlQRV9DSEVDSyhld2tW
aWV3LCAuLi4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBkbyB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICAgICAgY29uc3QgY2hhciogX3RtcF9vdHlwZSA9IGV2YXNfb2JqZWN0X3R5
cGVfZ2V0KGV3a1ZpZXcpOyAgICAgICAgICAgICAgIFwKLSAgICAgICAgY29uc3QgRXZhc19TbWFy
dCogX3RtcF9zID0gZXZhc19vYmplY3Rfc21hcnRfc21hcnRfZ2V0KGV3a1ZpZXcpOyAgICAgIFwK
LSAgICAgICAgaWYgKEVJTkFfVU5MSUtFTFkoIV90bXBfcykpIHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIEVJTkFfTE9HX0NSSVQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAoIiVw
ICglcykgaXMgbm90IGEgc21hcnQgb2JqZWN0ISIsIGV3a1ZpZXcsICAgICAgICAgICAgICAgICAg
IFwKLSAgICAgICAgICAgICAgICBfdG1wX290eXBlID8gX3RtcF9vdHlwZSA6ICIobnVsbCkiKTsg
ICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICB9ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
I2RlZmluZSBFV0tfVklFV19UWVBFX0NIRUNLKGV3a1ZpZXcsIC4uLikgXAorICAgIGRvIHsgXAor
ICAgICAgICBjb25zdCBjaGFyKiBfdG1wX290eXBlID0gZXZhc19vYmplY3RfdHlwZV9nZXQoZXdr
Vmlldyk7IFwKKyAgICAgICAgY29uc3QgRXZhc19TbWFydCogX3RtcF9zID0gZXZhc19vYmplY3Rf
c21hcnRfc21hcnRfZ2V0KGV3a1ZpZXcpOyBcCisgICAgICAgIGlmIChFSU5BX1VOTElLRUxZKCFf
dG1wX3MpKSB7IFwKKyAgICAgICAgICAgIEVJTkFfTE9HX0NSSVQgXAorICAgICAgICAgICAgICAg
ICgiJXAgKCVzKSBpcyBub3QgYSBzbWFydCBvYmplY3QhIiwgZXdrVmlldywgXAorICAgICAgICAg
ICAgICAgIF90bXBfb3R5cGUgPyBfdG1wX290eXBlIDogIihudWxsKSIpOyBcCisgICAgICAgICAg
ICByZXR1cm4gX19WQV9BUkdTX187IFwKKyAgICAgICAgfSBcCiAgICAgICAgIGNvbnN0IEV2YXNf
U21hcnRfQ2xhc3MqIF90bXBfc2MgPSBldmFzX3NtYXJ0X2NsYXNzX2dldChfdG1wX3MpOyBcCi0g
ICAgICAgIGlmIChFSU5BX1VOTElLRUxZKCFfdG1wX3NjKSkgeyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBFSU5BX0xPR19DUklUICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgKCIlcCAo
JXMpIGlzIG5vdCBhIHNtYXJ0IG9iamVjdCEiLCBld2tWaWV3LCAgICAgICAgICAgICAgICAgICBc
Ci0gICAgICAgICAgICAgICAgX3RtcF9vdHlwZSA/IF90bXBfb3R5cGUgOiAiKG51bGwpIik7ICAg
ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgfSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICAgICAgaWYgKEVJTkFfVU5MSUtFTFkoX3RtcF9zYy0+ZGF0YSAhPSBld2tWaWV3VHlwZVN0cmlu
ZykpIHsgICAgICAgIFwKLSAgICAgICAgICAgIEVJTkFfTE9HX0NSSVQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAoIiVwICgl
cykgaXMgbm90IG9mIGFuIGV3a192aWV3IChuZWVkICVwLCBnb3QgJXApISIsICAgIFwKLSAgICAg
ICAgICAgICAgICBld2tWaWV3LCBfdG1wX290eXBlID8gX3RtcF9vdHlwZSA6ICIobnVsbCkiLCAg
ICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgIGV3a1ZpZXdUeXBlU3RyaW5nLCBfdG1w
X3NjLT5kYXRhKTsgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4gX19W
QV9BUkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
ICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgICAgIGlmIChFSU5BX1VOTElLRUxZKCFfdG1wX3NjKSkgeyBcCisg
ICAgICAgICAgICBFSU5BX0xPR19DUklUIFwKKyAgICAgICAgICAgICAgICAoIiVwICglcykgaXMg
bm90IGEgc21hcnQgb2JqZWN0ISIsIGV3a1ZpZXcsIFwKKyAgICAgICAgICAgICAgICBfdG1wX290
eXBlID8gX3RtcF9vdHlwZSA6ICIobnVsbCkiKTsgXAorICAgICAgICAgICAgcmV0dXJuIF9fVkFf
QVJHU19fOyBcCisgICAgICAgIH0gXAorICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWShfdG1wX3Nj
LT5kYXRhICE9IGV3a1ZpZXdUeXBlU3RyaW5nKSkgeyBcCisgICAgICAgICAgICBFSU5BX0xPR19D
UklUIFwKKyAgICAgICAgICAgICAgICAoIiVwICglcykgaXMgbm90IG9mIGFuIGV3a192aWV3IChu
ZWVkICVwLCBnb3QgJXApISIsIFwKKyAgICAgICAgICAgICAgICBld2tWaWV3LCBfdG1wX290eXBl
ID8gX3RtcF9vdHlwZSA6ICIobnVsbCkiLCBcCisgICAgICAgICAgICAgICAgZXdrVmlld1R5cGVT
dHJpbmcsIF90bXBfc2MtPmRhdGEpOyBcCisgICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187
IFwKKyAgICAgICAgfSBcCiAgICAgfSB3aGlsZSAoMCkKICNlbmRpZgogCi0jZGVmaW5lIEVXS19W
SUVXX1NEX0dFVChld2tWaWV3LCBwdHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHB0ciA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1Nt
YXJ0X0RhdGEqPihldmFzX29iamVjdF9zbWFydF9kYXRhX2dldChld2tWaWV3KSkKKyNkZWZpbmUg
RVdLX1ZJRVdfU0RfR0VUKGV3a1ZpZXcsIHBvaW50ZXIpIFwKKyAgICBFd2tfVmlld19TbWFydF9E
YXRhKiBwb2ludGVyID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGV2YXNfb2Jq
ZWN0X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpKQogCi0jZGVmaW5lIEVXS19WSUVXX1NEX0dFVF9P
Ul9SRVRVUk4oZXdrVmlldywgcHRyLCAuLi4pICAgICAgICAgIFwKLSAgICBFV0tfVklFV19UWVBF
X0NIRUNLKGV3a1ZpZXcsIF9fVkFfQVJHU19fKTsgICAgICAgICAgICAgICAgXAotICAgIEVXS19W
SUVXX1NEX0dFVChld2tWaWV3LCBwdHIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgaWYgKCFwdHIpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICAgICAgQ1JJVElDQUwoIm5vIHNtYXJ0IGRhdGEgZm9yIG9iamVjdCAlcCAoJXMpIiwgICAg
XAotICAgICAgICAgICAgICAgICBld2tWaWV3LCBldmFzX29iamVjdF90eXBlX2dldChld2tWaWV3
KSk7ICAgICAgICAgICBcCi0gICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tW
aWV3LCBwb2ludGVyLCAuLi4pIFwKKyAgICBFV0tfVklFV19UWVBFX0NIRUNLKGV3a1ZpZXcsIF9f
VkFfQVJHU19fKTsgXAorICAgIEVXS19WSUVXX1NEX0dFVChld2tWaWV3LCBwb2ludGVyKTsgXAor
ICAgIGlmICghcG9pbnRlcikgeyBcCisgICAgICAgIENSSVRJQ0FMKCJubyBzbWFydCBkYXRhIGZv
ciBvYmplY3QgJXAgKCVzKSIsIFwKKyAgICAgICAgICAgICAgICAgZXdrVmlldywgZXZhc19vYmpl
Y3RfdHlwZV9nZXQoZXdrVmlldykpOyBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgXAog
ICAgIH0KIAotI2RlZmluZSBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEsIHB0cikgICAgICAg
ICAgICAgIFwKLSAgICBFd2tfVmlld19Qcml2YXRlX0RhdGEgKnB0ciA9IHNtYXJ0RGF0YS0+X3By
aXYKKyNkZWZpbmUgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwb2ludGVyKSBcCisgICAg
RXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBwb2ludGVyID0gc21hcnREYXRhLT5fcHJpdgogCi0jZGVm
aW5lIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHB0ciwgLi4uKSAgICAg
ICAgICAgICAgIFwKLSAgICBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEsIHB0cik7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGlmICghcHRyKSB7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgQ1JJVElDQUwo
Im5vIHByaXZhdGUgZGF0YSBmb3Igb2JqZWN0ICVwICglcykiLCAgICAgICAgICBcCi0gICAgICAg
ICAgICAgICAgIHNtYXJ0RGF0YS0+c2VsZiwgZXZhc19vYmplY3RfdHlwZV9nZXQoc21hcnREYXRh
LT5zZWxmKSk7ICAgICBcCi0gICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBFV0tfVklFV19QUklWX0dFVF9PUl9S
RVRVUk4oc21hcnREYXRhLCBwb2ludGVyLCAuLi4pIFwKKyAgICBFV0tfVklFV19QUklWX0dFVChz
bWFydERhdGEsIHBvaW50ZXIpOyBcCisgICAgaWYgKCFwb2ludGVyKSB7IFwKKyAgICAgICAgQ1JJ
VElDQUwoIm5vIHByaXZhdGUgZGF0YSBmb3Igb2JqZWN0ICVwICglcykiLCBcCisgICAgICAgICAg
ICAgICAgIHNtYXJ0RGF0YS0+c2VsZiwgZXZhc19vYmplY3RfdHlwZV9nZXQoc21hcnREYXRhLT5z
ZWxmKSk7IFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyBcCiAgICAgfQogCiAjZGVmaW5l
IEVXS19WSUVXX1RJTEVEX1RZUEVfQ0hFQ0tfT1JfUkVUVVJOKGV3a1ZpZXcsIC4uLikgXApAQCAt
NDEwLDEyICs0MTAsMTIgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3Njcm9sbHNfZmx1c2goRXdr
X1ZpZXdfUHJpdmF0ZV9EYXRhKiBwcml2KQogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21h
cnRfZm9jdXNfaW4oRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogewogICAgIEVXS19W
SUVXX1BSSVZfR0VUKHNtYXJ0RGF0YSwgcHJpdik7Ci0gICAgV2ViQ29yZTo6Rm9jdXNDb250cm9s
bGVyKiBmYyA9IHByaXYtPnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpOwotICAgIERCRygiZXdrVmll
dz0lcCwgZmM9JXAiLCBzbWFydERhdGEtPnNlbGYsIGZjKTsKLSAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwoZmMsIGZhbHNlKTsKKyAgICBXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXIq
IGZvY3VzQ29udHJvbGxlciA9IHByaXYtPnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpOworICAgIERC
RygiZXdrVmlldz0lcCwgZm9jdXNDb250cm9sbGVyPSVwIiwgc21hcnREYXRhLT5zZWxmLCBmb2N1
c0NvbnRyb2xsZXIpOworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChmb2N1c0Nv
bnRyb2xsZXIsIGZhbHNlKTsKIAotICAgIGZjLT5zZXRBY3RpdmUodHJ1ZSk7Ci0gICAgZmMtPnNl
dEZvY3VzZWQodHJ1ZSk7CisgICAgZm9jdXNDb250cm9sbGVyLT5zZXRBY3RpdmUodHJ1ZSk7Cisg
ICAgZm9jdXNDb250cm9sbGVyLT5zZXRGb2N1c2VkKHRydWUpOwogICAgIHJldHVybiB0cnVlOwog
fQogCkBAIC05OTQsNyArOTk0LDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X2ZsdXNo
KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIAogc3RhdGljIEVpbmFfQm9vbCBfZXdr
X3ZpZXdfc21hcnRfcHJlX3JlbmRlcl9yZWdpb24oRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnRE
YXRhLCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSwgRXZhc19Db29yZCB3aWR0aCwgRXZhc19D
b29yZCBoZWlnaHQsIGZsb2F0IHpvb20pCiB7Ci0gICAgV1JOKCJub3Qgc3VwcG9ydGVkIGJ5IGVu
Z2luZS4gc21hcnREQXRhPSVwIGFyZWE9JWQsJWQrJWR4JWQsIHpvb209JWYiLAorICAgIFdSTigi
bm90IHN1cHBvcnRlZCBieSBlbmdpbmUuIHNtYXJ0RGF0YT0lcCBhcmVhPSVkLCVkKyVkeCVkLCB6
b29tPSVmIiwKICAgICAgICAgc21hcnREYXRhLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCB6b29tKTsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC0xNzkwLDcgKzE3OTAsNyBAQCBFaW5hX0Jvb2wgZXdr
X3ZpZXdfcHJlX3JlbmRlcl9yZWdpb24oRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfQ29vcmQg
eCwgRXZhc19DbwogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnRE
YXRhLCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwg
cHJpdiwgZmFsc2UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzbWFydERh
dGEtPmFwaS0+cHJlX3JlbmRlcl9yZWdpb24sIGZhbHNlKTsKLSAgICBmbG9hdCBjdXJfem9vbTsK
KyAgICBmbG9hdCBjdXJyZW50Wm9vbTsKICAgICBFdmFzX0Nvb3JkIGNvbnRlbnRzV2lkdGgsIGNv
bnRlbnRzSGVpZ2h0OwogCiAgICAgLyogV2hlbiBkb2luZyBhbmltYXRlZCB6b29tIGl0J3Mgbm90
IHBvc3NpYmxlIHRvIGNhbGwgcHJlLXJlbmRlciBzaW5jZSBpdApAQCAtMTc5OSwxNSArMTc5OSwx
NSBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfcHJlX3JlbmRlcl9yZWdpb24oRXZhc19PYmplY3QqIGV3
a1ZpZXcsIEV2YXNfQ29vcmQgeCwgRXZhc19DbwogICAgIGlmIChwcml2LT5hbmltYXRlZFpvb20u
YW5pbWF0b3IpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGN1cl96b29tID0gZXdrX2Zy
YW1lX3BhZ2Vfem9vbV9nZXQoc21hcnREYXRhLT5tYWluX2ZyYW1lKTsKKyAgICBjdXJyZW50Wm9v
bSA9IGV3a19mcmFtZV9wYWdlX3pvb21fZ2V0KHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSk7CiAKLSAg
ICBpZiAoY3VyX3pvb20gPCAwLjAwMDAxKQorICAgIGlmIChjdXJyZW50Wm9vbSA8IDAuMDAwMDEp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWV3a19mcmFtZV9jb250ZW50c19zaXpl
X2dldChzbWFydERhdGEtPm1haW5fZnJhbWUsICZjb250ZW50c1dpZHRoLCAmY29udGVudHNIZWln
aHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBjb250ZW50c1dpZHRoICo9IHpvb20g
LyBjdXJfem9vbTsKLSAgICBjb250ZW50c0hlaWdodCAqPSB6b29tIC8gY3VyX3pvb207CisgICAg
Y29udGVudHNXaWR0aCAqPSB6b29tIC8gY3VycmVudFpvb207CisgICAgY29udGVudHNIZWlnaHQg
Kj0gem9vbSAvIGN1cnJlbnRab29tOwogICAgIERCRygicmVnaW9uICVkLCVkKyVkeCVkIEAgJWYg
Y29udGVudHM9JWR4JWQiLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCB6b29tLCBjb250ZW50c1dpZHRo
LCBjb250ZW50c0hlaWdodCk7CiAKICAgICBpZiAoeCArIHdpZHRoID4gY29udGVudHNXaWR0aCkK
QEAgLTI5NTcsOCArMjk1Nyw4IEBAIHZvaWQgZXdrX3ZpZXdfcmVzdG9yZV9zdGF0ZShFdmFzX09i
amVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lKQogICogQHBhcmFtIGV3a1ZpZXcgQ3Vy
cmVudCB2aWV3LgogICogQHBhcmFtIGphdmFzY3JpcHQgQGMgdHJ1ZSBpZiB0aGUgbmV3IHdpbmRv
dyBpcyBvcmlnaW5hdGVkIGZyb20gamF2YXNjcmlwdCwKICAqIEBjIGZhbHNlIG90aGVyd2lzZQot
ICogQHBhcmFtIHdpZHRoaW5kb3dfZmVhdHVyZXMgRmVhdHVyZXMgb2YgdGhlIG5ldyB3aW5kb3cg
YmVpbmcgY3JlYXRlZC4gSWYgaXQncyBAYwotICogTlVMTCwgaXQgd2lsbCBiZSBjcmVhdGVkIGEg
d2luZG93IHdpdGggZGVmYXVsdCBmZWF0dXJlcy4KKyAqIEBwYXJhbSB3aW5kb3dfZmVhdHVyZXMg
RmVhdHVyZXMgb2YgdGhlIG5ldyB3aW5kb3cgYmVpbmcgY3JlYXRlZC4gSWYgaXQncyBAYworICog
MCwgaXQgd2lsbCBiZSBjcmVhdGVkIGEgd2luZG93IHdpdGggZGVmYXVsdCBmZWF0dXJlcy4KICAq
CiAgKiBAcmV0dXJuIE5ldyB2aWV3LCBpbiBjYXNlIHNtYXJ0IGNsYXNzIGltcGxlbWVudHMgdGhl
IGNyZWF0aW9uIG9mIG5ldyB3aW5kb3dzOwogICogZWxzZSwgY3VycmVudCB2aWV3IEBwYXJhbSBl
d2tWaWV3IG9yIEBjIDAgb24gZmFpbHVyZS4KQEAgLTMwNTAsNyArMzA1MCw3IEBAIHZvaWQgZXdr
X3ZpZXdfdG9vbGJhcnNfdmlzaWJsZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgdmlz
aWJsZSkKICAqLwogdm9pZCBld2tfdmlld190b29sYmFyc192aXNpYmxlX2dldChFdmFzX09iamVj
dCogZXdrVmlldywgYm9vbCogdmlzaWJsZSkKIHsKLSAgICBEQkcoIiVzLCBvPSVwIiwgX19mdW5j
X18sIGV3a1ZpZXcpOworICAgIERCRygiJXMsIGV3a1ZpZXc9JXAiLCBfX2Z1bmNfXywgZXdrVmll
dyk7CiAgICAgKnZpc2libGUgPSBmYWxzZTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFj
a19jYWxsKGV3a1ZpZXcsICJ0b29sYmFycyx2aXNpYmxlLGdldCIsIHZpc2libGUpOwogfQpAQCAt
MzA4Myw3ICszMDgzLDcgQEAgdm9pZCBld2tfdmlld19zdGF0dXNiYXJfdmlzaWJsZV9zZXQoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgIHZpc2libGUpCiAgKi8KIHZvaWQgZXdrX3ZpZXdfc3Rh
dHVzYmFyX3Zpc2libGVfZ2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sKiB2aXNpYmxlKQog
ewotICAgIERCRygiJXMsIG89JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CisgICAgREJHKCIlcywg
ZXdrVmlldz0lcCIsIF9fZnVuY19fLCBld2tWaWV3KTsKICAgICAqdmlzaWJsZSA9IGZhbHNlOwog
ICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgInN0YXR1c2Jhcix2
aXNpYmxlLGdldCIsIHZpc2libGUpOwogfQpAQCAtMzEzMiw3ICszMTMyLDcgQEAgdm9pZCBld2tf
dmlld19zY3JvbGxiYXJzX3Zpc2libGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIHZp
c2libGUpCiAgKi8KIHZvaWQgZXdrX3ZpZXdfc2Nyb2xsYmFyc192aXNpYmxlX2dldChFdmFzX09i
amVjdCogZXdrVmlldywgYm9vbCogdmlzaWJsZSkKIHsKLSAgICBEQkcoIiVzLCBvPSVwIiwgX19m
dW5jX18sIGV3a1ZpZXcpOworICAgIERCRygiJXMsIGV3a1ZpZXc9JXAiLCBfX2Z1bmNfXywgZXdr
Vmlldyk7CiAgICAgKnZpc2libGUgPSBmYWxzZTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxs
YmFja19jYWxsKGV3a1ZpZXcsICJzY3JvbGxiYXJzLHZpc2libGUsZ2V0IiwgdmlzaWJsZSk7CiB9
CkBAIC0zMTY1LDcgKzMxNjUsNyBAQCB2b2lkIGV3a192aWV3X21lbnViYXJfdmlzaWJsZV9zZXQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgdmlzaWJsZSkKICAqLwogdm9pZCBld2tfdmlld19t
ZW51YmFyX3Zpc2libGVfZ2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sKiB2aXNpYmxlKQog
ewotICAgIERCRygiJXMsIG89JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CisgICAgREJHKCIlcywg
ZXdrVmlldz0lcCIsIF9fZnVuY19fLCBld2tWaWV3KTsKICAgICAqdmlzaWJsZSA9IGZhbHNlOwog
ICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgIm1lbnViYXIsdmlz
aWJsZSxnZXQiLCB2aXNpYmxlKTsKIH0KQEAgLTM1OTMsNyArMzU5Myw3IEBAIEVpbmFfQm9vbCBl
d2tfdmlld196b29tX3JhbmdlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgZmxvYXQgbWluU2Nh
bGUsIGZsb2F0IG1hCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwg
cHJpdiwgZmFsc2UpOwogCiAgICAgaWYgKG1heFNjYWxlIDwgbWluU2NhbGUpIHsKLSAgICAgICAg
V1JOKCJtaW5fc2NhbGUgaXMgbGFyZ2VyIHRoYW4gbWF4X3NjYWxlIik7CisgICAgICAgIFdSTigi
bWluU2NhbGUgaXMgbGFyZ2VyIHRoYW4gbWF4U2NhbGUiKTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3Np
bmdsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfc2luZ2xlLmNwcAppbmRl
eCBlZDcyNjMzLi44Zjc0OTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXdfc2luZ2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfc2lu
Z2xlLmNwcApAQCAtOSw3ICs5LDcgQEAKIAogICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVS
Y2hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQogICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgogCiAgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQpAQCAtMjA5LDggKzIwOSw4
IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NpbmdsZV9zbWFydF9yZXBhaW50c19wcm9j
ZXNzKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtCiAgICAgRXZhc19Db29yZCBvdywgb2g7CiAgICAg
dm9pZCogcGl4ZWxzOwogICAgIEVpbmFfUmVjdGFuZ2xlKiByZWN0OwotICAgIGNvbnN0IEVpbmFf
UmVjdGFuZ2xlKiBwcjsKLSAgICBjb25zdCBFaW5hX1JlY3RhbmdsZSogcHJfZW5kOworICAgIGNv
bnN0IEVpbmFfUmVjdGFuZ2xlKiBwYWludFJlcXVlc3Q7CisgICAgY29uc3QgRWluYV9SZWN0YW5n
bGUqIHBhaW50UmVxdWVzdEVuZDsKICAgICBFaW5hX1RpbGVyKiB0aWxlcjsKICAgICBFaW5hX0l0
ZXJhdG9yKiBpdGVyYXRvcjsKICAgICBjYWlyb19zdGF0dXNfdCBzdGF0dXM7CkBAIC0yNzcsMTAg
KzI3NywxMCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zaW5nbGVfc21hcnRfcmVwYWlu
dHNfcHJvY2VzcyhFd2tfVmlld19TbWFydF9EYXRhKiBzbQogCiAgICAgZXdrX3ZpZXdfbGF5b3V0
X2lmX25lZWRlZF9yZWN1cnNpdmUoc21hcnREYXRhLT5fcHJpdik7CiAKLSAgICBwciA9IGV3a192
aWV3X3JlcGFpbnRzX3BvcChzbWFydERhdGEtPl9wcml2LCAmY291bnQpOwotICAgIHByX2VuZCA9
IHByICsgY291bnQ7Ci0gICAgZm9yICg7IHByIDwgcHJfZW5kOyBwcisrKQotICAgICAgICBlaW5h
X3RpbGVyX3JlY3RfYWRkKHRpbGVyLCBwcik7CisgICAgcGFpbnRSZXF1ZXN0ID0gZXdrX3ZpZXdf
cmVwYWludHNfcG9wKHNtYXJ0RGF0YS0+X3ByaXYsICZjb3VudCk7CisgICAgcGFpbnRSZXF1ZXN0
RW5kID0gcGFpbnRSZXF1ZXN0ICsgY291bnQ7CisgICAgZm9yICg7IHBhaW50UmVxdWVzdCA8IHBh
aW50UmVxdWVzdEVuZDsgcGFpbnRSZXF1ZXN0KyspCisgICAgICAgIGVpbmFfdGlsZXJfcmVjdF9h
ZGQodGlsZXIsIHBhaW50UmVxdWVzdCk7CiAKICAgICBpdGVyYXRvciA9IGVpbmFfdGlsZXJfaXRl
cmF0b3JfbmV3KHRpbGVyKTsKICAgICBpZiAoIWl0ZXJhdG9yKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwIGIvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a192aWV3X3RpbGVkLmNwcAppbmRleCBiNzJkNmFlLi40ZTlkODJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKQEAgLTc3LDEyICs3NywxMiBAQCBzdGF0
aWMgdm9pZCogX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJvY2Vzc19wcmUodm9pZCogZGF0YSwg
RXZhc19PYmplY3QqIGV3a1ZpZQogCiBzdGF0aWMgRXZhc19PYmplY3QqIF9ld2tfdmlld190aWxl
ZF9zbWFydF9iYWNraW5nX3N0b3JlX2FkZChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEp
CiB7Ci0gICAgRXZhc19PYmplY3QqIGJzID0gZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfYWRkKHNt
YXJ0RGF0YS0+YmFzZS5ldmFzKTsKKyAgICBFdmFzX09iamVjdCogYmFja2luZ1N0b3JlID0gZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfYWRkKHNtYXJ0RGF0YS0+YmFzZS5ldmFzKTsKICAgICBld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9yZW5kZXJfY2Jfc2V0Ci0gICAgICAgIChicywgX2V3a192aWV3
X3RpbGVkX3JlbmRlcl9jYiwgc21hcnREYXRhLT5fcHJpdik7CisgICAgICAgIChiYWNraW5nU3Rv
cmUsIF9ld2tfdmlld190aWxlZF9yZW5kZXJfY2IsIHNtYXJ0RGF0YS0+X3ByaXYpOwogICAgIGV3
a190aWxlZF9iYWNraW5nX3N0b3JlX3VwZGF0ZXNfcHJvY2Vzc19wcmVfc2V0Ci0gICAgICAgIChi
cywgX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJvY2Vzc19wcmUsIHNtYXJ0RGF0YS0+X3ByaXYp
OwotICAgIHJldHVybiBiczsKKyAgICAgICAgKGJhY2tpbmdTdG9yZSwgX2V3a192aWV3X3RpbGVk
X3VwZGF0ZXNfcHJvY2Vzc19wcmUsIHNtYXJ0RGF0YS0+X3ByaXYpOworICAgIHJldHVybiBiYWNr
aW5nU3RvcmU7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC05NywxNyArOTcsMTcgQEAgX2V3a192aWV3
X3RpbGVkX2NvbnRlbnRzX3NpemVfY2hhbmdlZF9jYih2b2lkKiBkYXRhLCBFdmFzX09iamVjdCog
ZXdrVmlldywgdm9pZCoKIAogc3RhdGljIHZvaWQgX2V3a192aWV3X3RpbGVkX3NtYXJ0X2FkZChF
dmFzX09iamVjdCogZXdrVmlldykKIHsKLSAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzZDsKKyAg
ICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGE7CiAKICAgICBfcGFyZW50X3NjLnNjLmFk
ZChld2tWaWV3KTsKIAotICAgIHNkID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+
KGV2YXNfb2JqZWN0X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpKTsKLSAgICBpZiAoIXNkKQorICAg
IHNtYXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihldmFzX29iamVj
dF9zbWFydF9kYXRhX2dldChld2tWaWV3KSk7CisgICAgaWYgKCFzbWFydERhdGEpCiAgICAgICAg
IHJldHVybjsKIAogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCgKLSAgICAgICAg
c2QtPm1haW5fZnJhbWUsICJjb250ZW50cyxzaXplLGNoYW5nZWQiLAotICAgICAgICBfZXdrX3Zp
ZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2NiLCBzZCk7CisgICAgICAgIHNtYXJ0RGF0
YS0+bWFpbl9mcmFtZSwgImNvbnRlbnRzLHNpemUsY2hhbmdlZCIsCisgICAgICAgIF9ld2tfdmll
d190aWxlZF9jb250ZW50c19zaXplX2NoYW5nZWRfY2IsIHNtYXJ0RGF0YSk7CiB9CiAKIHN0YXRp
YyBFaW5hX0Jvb2wgX2V3a192aWV3X3RpbGVkX3NtYXJ0X3Njcm9sbHNfcHJvY2VzcyhFd2tfVmll
d19TbWFydF9EYXRhKiBzbWFydERhdGEpCkBAIC0zOTIsMTQgKzM5MiwxNCBAQCBFdmFzX09iamVj
dCogZXdrX3ZpZXdfdGlsZWRfYWRkKEV2YXMqIGNhbnZhcykKIAogRXdrX1RpbGVfVW51c2VkX0Nh
Y2hlKiBld2tfdmlld190aWxlZF91bnVzZWRfY2FjaGVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBl
d2tWaWV3KQogewotICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gZXdrX3ZpZXdfc21hcnRf
ZGF0YV9nZXQoZXdrVmlldyk7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNk
LCAwKTsKLSAgICByZXR1cm4gZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2Fj
aGVfZ2V0KHNkLT5iYWNraW5nX3N0b3JlKTsKKyAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFy
dERhdGEgPSBld2tfdmlld19zbWFydF9kYXRhX2dldChld2tWaWV3KTsKKyAgICBFSU5BX1NBRkVU
WV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnREYXRhLCAwKTsKKyAgICByZXR1cm4gZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2FjaGVfZ2V0KHNtYXJ0RGF0YS0+YmFja2luZ19z
dG9yZSk7CiB9CiAKIHZvaWQgZXdrX3ZpZXdfdGlsZWRfdW51c2VkX2NhY2hlX3NldChFdmFzX09i
amVjdCogZXdrVmlldywgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiBjYWNoZSkKIHsKLSAgICBFd2tf
Vmlld19TbWFydF9EYXRhKiBzZCA9IGV3a192aWV3X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpOwot
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNkKTsKLSAgICBld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV90aWxlX3VudXNlZF9jYWNoZV9zZXQoc2QtPmJhY2tpbmdfc3RvcmUsIGNhY2hlKTsK
KyAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBld2tfdmlld19zbWFydF9kYXRh
X2dldChld2tWaWV3KTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihzbWFydERhdGEp
OworICAgIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfdW51c2VkX2NhY2hlX3NldChzbWFy
dERhdGEtPmJhY2tpbmdfc3RvcmUsIGNhY2hlKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124498</attachid>
            <date>2012-01-29 23:00:27 -0800</date>
            <delta_ts>2012-01-31 03:48:25 -0800</delta_ts>
            <desc>fix history uri &amp; title name</desc>
            <filename>new_style.patch</filename>
            <type>text/plain</type>
            <size>78982</size>
            <attacher name="JungJik Lee">jungjik.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCA4OGQzYWU5Li44MTYxNGYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTAxIEBACisyMDEyLTAxLTI5ICBKdW5nSmlrIExlZSAgPGp1bmdqaWsubGVlQHNh
bXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIEFkb3B0IEMrKyBzdHlsZSB1c2luZyBjYW1lbENh
c2UgYW5kIGZ1bGwgdmFyaWFibGUgbmFtZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03NjM3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1vZGlmeSB0aGUgY29kZSB0byB1c2UgY2FtZWxDYXNlIGFuZCBz
cGVsbCBvdXQgdmFyaWFibGUgbmFtZXMgaW5zdGVhZCBvZiB1c2luZyBhYmJyZXZpYXRpb25zLgor
ICAgICAgICBNb2RpZnkgdGhlIGNvbW1lbnRzIHdoaWNoIGRvIG5vdCBtYXRjaCB3aXRoIGFjdHVh
bCBwYXJhbWV0ZXJzIGFuZCBjb3JyZWN0IG1pc3NwZWxsZWQgd29yZHMuCisgICAgICAgIFRoZSBs
b2dpYyBvZiB0aGUgY29kZSBpcyBub3QgY2hhbmdlZC4KKworICAgICAgICAqIGV3ay9ld2tfZnJh
bWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1lX3NlbGVjdGlvbl9nZXQpOgorICAgICAgICAoZXdr
X2ZyYW1lX2ZlZWRfZm9jdXNfaW4pOgorICAgICAgICAoRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKToK
KyAgICAgICAgKiBld2svZXdrX2hpc3RvcnkuY3BwOgorICAgICAgICAoZXdrX2hpc3RvcnlfaXRl
bV9uZXcpOgorICAgICAgICAoZXdrX2hpc3RvcnlfaXRlbV90aXRsZV9nZXQpOgorICAgICAgICAo
ZXdrX2hpc3RvcnlfaXRlbV90aXRsZV9hbHRlcm5hdGVfZ2V0KToKKyAgICAgICAgKGV3a19oaXN0
b3J5X2l0ZW1fdXJpX2dldCk6CisgICAgICAgIChld2tfaGlzdG9yeV9pdGVtX3VyaV9vcmlnaW5h
bF9nZXQpOgorICAgICAgICAqIGV3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5jcHA6CisgICAg
ICAgIChfRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSk6CisgICAgICAgIChfRXdrX1RpbGVk
X0JhY2tpbmdfU3RvcmVfRGF0YSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
dGlsZV9hc3NvY2lhdGUpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVf
ZGlzc29jaWF0ZSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRl
cl9yZXF1ZXN0X2NsZWFyKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVf
cmVuZGVyX3JlcXVlc3RfcHJvY2Vzc19zaW5nbGUpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX2l0ZW1fZmlsbCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
aXRlbV9hZGQpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fc21vb3Ro
X3NjYWxlX3NldCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19jb2xz
X2VuZF9hZGQpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfcm93c19h
bGxfZGVsKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9yZW5kZXIpOgorICAg
ICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX21lbV9kYmcpOgorICAgICAgICAoX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3NpZ191c3IpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3NtYXJ0X2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21h
cnRfZGVsKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9tb3ZlKToK
KyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9yZXNpemUpOgorICAgICAg
ICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3JlY2FsY19yZW5kZXJlcnMpOgorICAgICAgICAo
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfZGJnKToKKyAgICAgICAgKF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV92aWV3X3dyYXBfdXApOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3ZpZXdfd3JhcF9kb3duKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV92aWV3X3dyYXBfbGVmdCk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmll
d19yZWZpbGwpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfcG9zX2Fw
cGx5KToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGVf
b2Zmc2V0X2ZvcmNlKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9j
YWxjdWxhdGVfb2Zmc2V0KToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFy
dF9jYWxjdWxhdGVfcG9zKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFy
dF9jYWxjdWxhdGUpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9m
dWxsX29mZnNldF9zZXRfaW50ZXJuYWwpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3NldCk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfYWRkKToKKyAgICAgICAgKF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV96b29tX3NldF9pbnRlcm5hbCk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19z
dG9yZV96b29tX3NldCk6CisgICAgICAgIChld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3dl
YWtfc2V0KToKKyAgICAgICAgKGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZpeF9vZmZzZXRzKToK
KyAgICAgICAgKGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZsdXNoKToKKyAgICAgICAgKGV3a190
aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVnaW9uKToKKyAgICAgICAgKGV3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVsYXRpdmVfcmFkaXVzKToKKyAgICAgICAgKiBl
d2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuaDoKKyAgICAgICAgKF9Fd2tfVGlsZSk6CisgICAg
ICAgICogZXdrL2V3a190aWxlZF9tYXRyaXguY3BwOgorICAgICAgICAoX0V3a19UaWxlX01hdHJp
eCk6CisgICAgICAgIChfZXdrX3RpbGVfbWF0cml4X2NlbGxfZnJlZSk6CisgICAgICAgIChfZXdr
X3RpbGVfbWF0cml4X3RpbGVfZnJlZSk6CisgICAgICAgIChld2tfdGlsZV9tYXRyaXhfbmV3KToK
KyAgICAgICAgKGV3a190aWxlX21hdHJpeF9mcmVlKToKKyAgICAgICAgKGV3a190aWxlX21hdHJp
eF91bnVzZWRfY2FjaGVfZ2V0KToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF90aWxlX2V4YWN0
X2dldCk6CisgICAgICAgIChld2tfdGlsZV9tYXRyaXhfdGlsZV9uZXcpOgorICAgICAgICAoZXdr
X3RpbGVfbWF0cml4X3RpbGVfcHV0KToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF9kYmcpOgor
ICAgICAgICAoZXdrX3RpbGVfbWF0cml4X2ZyZWV6ZSk6CisgICAgICAgIChld2tfdGlsZV9tYXRy
aXhfdGhhdyk6CisgICAgICAgICogZXdrL2V3a190aWxlZF9tb2RlbC5jcHA6CisgICAgICAgICh0
aWxlX2FjY291bnQpOgorICAgICAgICAoZXdrX3RpbGVfdXBkYXRlc19wcm9jZXNzKToKKyAgICAg
ICAgKGV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1dCk6CisgICAgICAgIChld2tfdGlsZV91
bnVzZWRfY2FjaGVfZGJnKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAo
X2V3a192aWV3X3NtYXJ0X2ZvY3VzX2luKToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9wcmVf
cmVuZGVyX3JlZ2lvbik6CisgICAgICAgIChld2tfdmlld19wcmVfcmVuZGVyX3JlZ2lvbik6Cisg
ICAgICAgIChld2tfdmlld190b29sYmFyc192aXNpYmxlX2dldCk6CisgICAgICAgIChld2tfdmll
d19zdGF0dXNiYXJfdmlzaWJsZV9nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2Nyb2xsYmFyc192
aXNpYmxlX2dldCk6CisgICAgICAgIChld2tfdmlld19tZW51YmFyX3Zpc2libGVfZ2V0KToKKyAg
ICAgICAgKGV3a192aWV3X3pvb21fcmFuZ2Vfc2V0KToKKyAgICAgICAgKiBld2svZXdrX3ZpZXdf
c2luZ2xlLmNwcDoKKyAgICAgICAgKF9ld2tfdmlld19zaW5nbGVfc21hcnRfcmVwYWludHNfcHJv
Y2Vzcyk6CisgICAgICAgICogZXdrL2V3a192aWV3X3RpbGVkLmNwcDoKKyAgICAgICAgKF9ld2tf
dmlld190aWxlZF9zbWFydF9iYWNraW5nX3N0b3JlX2FkZCk6CisgICAgICAgIChfZXdrX3ZpZXdf
dGlsZWRfc21hcnRfYWRkKToKKyAgICAgICAgKGV3a192aWV3X3RpbGVkX3VudXNlZF9jYWNoZV9n
ZXQpOgorICAgICAgICAoZXdrX3ZpZXdfdGlsZWRfdW51c2VkX2NhY2hlX3NldCk6CisKIDIwMTIt
MDEtMjYgIFRvbWFzeiBNb3Jhd3NraSAgPHQubW9yYXdza2lAc2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgW0VGTF0gQWRkZWQgbWlzc2luZyBORVRTQ0FQRV9QTFVHSU5fQVBJIG1hY3JvLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAppbmRleCA5NjFmYTBiLi44YmExOGRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtODYsMjggKzg2LDI4IEBAIHN0cnVjdCBFaW5hX0l0
ZXJhdG9yX0V3a19GcmFtZSB7CiAjaWZuZGVmIEVXS19UWVBFX0NIRUNLCiAjZGVmaW5lIEVXS19G
UkFNRV9UWVBFX0NIRUNLKGV3a0ZyYW1lLCAuLi4pIGRvIHsgfSB3aGlsZSAoMCkKICNlbHNlCi0j
ZGVmaW5lIEVXS19GUkFNRV9UWVBFX0NIRUNLKGV3a0ZyYW1lLCAuLi4pICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBjb25zdCBj
aGFyKiBfdG1wX290eXBlID0gZXZhc19vYmplY3RfdHlwZV9nZXQoZXdrRnJhbWUpOyAgICAgICAg
ICAgICAgIFwKLSAgICAgICAgaWYgKEVJTkFfVU5MSUtFTFkoX3RtcF9vdHlwZSAhPSBFV0tfRlJB
TUVfVFlQRV9TVFIpKSB7ICAgICAgICAgIFwKLSAgICAgICAgICAgIEVJTkFfTE9HX0NSSVQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAg
ICAgICAoIiVwICglcykgaXMgbm90IG9mIGFuIGV3a19mcmFtZSEiLCBld2tGcmFtZSwgICAgICAg
ICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgX3RtcF9vdHlwZSA/IF90bXBfb3R5cGUgOiAi
KG51bGwpIik7ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4gX19WQV9B
UkdTX187ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAg
IH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisjZGVmaW5lIEVXS19GUkFNRV9UWVBFX0NIRUNLKGV3a0ZyYW1lLCAuLi4pIFwK
KyAgICBkbyB7IFwKKyAgICAgICAgY29uc3QgY2hhciogX3RtcF9vdHlwZSA9IGV2YXNfb2JqZWN0
X3R5cGVfZ2V0KGV3a0ZyYW1lKTsgXAorICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWShfdG1wX290
eXBlICE9IEVXS19GUkFNRV9UWVBFX1NUUikpIHsgXAorICAgICAgICAgICAgRUlOQV9MT0dfQ1JJ
VCBcCisgICAgICAgICAgICAgICAgKCIlcCAoJXMpIGlzIG5vdCBvZiBhbiBld2tfZnJhbWUhIiwg
ZXdrRnJhbWUsIFwKKyAgICAgICAgICAgICAgICBfdG1wX290eXBlID8gX3RtcF9vdHlwZSA6ICIo
bnVsbCkiKTsgXAorICAgICAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyBcCisgICAgICAgIH0g
XAogICAgIH0gd2hpbGUgKDApCiAjZW5kaWYKIAotI2RlZmluZSBFV0tfRlJBTUVfU0RfR0VUKGV3
a0ZyYW1lLCBwdHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgRXdrX0Zy
YW1lX1NtYXJ0X0RhdGEqIHB0ciA9IHN0YXRpY19jYXN0PEV3a19GcmFtZV9TbWFydF9EYXRhKj4o
ZXZhc19vYmplY3Rfc21hcnRfZGF0YV9nZXQoZXdrRnJhbWUpKQorI2RlZmluZSBFV0tfRlJBTUVf
U0RfR0VUKGV3a0ZyYW1lLCBwb2ludGVyKSBcCisgICAgRXdrX0ZyYW1lX1NtYXJ0X0RhdGEqIHBv
aW50ZXIgPSBzdGF0aWNfY2FzdDxFd2tfRnJhbWVfU21hcnRfRGF0YSo+KGV2YXNfb2JqZWN0X3Nt
YXJ0X2RhdGFfZ2V0KGV3a0ZyYW1lKSkKIAotI2RlZmluZSBFV0tfRlJBTUVfU0RfR0VUX09SX1JF
VFVSTihld2tGcmFtZSwgcHRyLCAuLi4pICAgICAgICAgXAotICAgIEVXS19GUkFNRV9UWVBFX0NI
RUNLKGV3a0ZyYW1lLCBfX1ZBX0FSR1NfXyk7ICAgICAgICAgICAgICAgXAotICAgIEVXS19GUkFN
RV9TRF9HRVQoZXdrRnJhbWUsIHB0cik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
IGlmICghcHRyKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgIENSSVRJQ0FMKCJubyBzbWFydCBkYXRhIGZvciBvYmplY3QgJXAgKCVzKSIsICAgIFwK
LSAgICAgICAgICAgICAgICAgZXdrRnJhbWUsIGV2YXNfb2JqZWN0X3R5cGVfZ2V0KGV3a0ZyYW1l
KSk7ICAgICAgICAgICBcCi0gICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4oZXdr
RnJhbWUsIHBvaW50ZXIsIC4uLikgXAorICAgIEVXS19GUkFNRV9UWVBFX0NIRUNLKGV3a0ZyYW1l
LCBfX1ZBX0FSR1NfXyk7IFwKKyAgICBFV0tfRlJBTUVfU0RfR0VUKGV3a0ZyYW1lLCBwb2ludGVy
KTsgXAorICAgIGlmICghcG9pbnRlcikgeyBcCisgICAgICAgIENSSVRJQ0FMKCJubyBzbWFydCBk
YXRhIGZvciBvYmplY3QgJXAgKCVzKSIsIFwKKyAgICAgICAgICAgICAgICAgZXdrRnJhbWUsIGV2
YXNfb2JqZWN0X3R5cGVfZ2V0KGV3a0ZyYW1lKSk7IFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJH
U19fOyBcCiAgICAgfQogCiBzdGF0aWMgRXZhc19TbWFydF9DbGFzcyBfcGFyZW50X3NjID0gRVZB
U19TTUFSVF9DTEFTU19JTklUX05VTEw7CkBAIC00NjgsMTAgKzQ2OCwxMCBAQCBjaGFyKiBld2tf
ZnJhbWVfc2VsZWN0aW9uX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrRnJhbWUpCiB7CiAgICAg
RVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4oZXdrRnJhbWUsIHNtYXJ0RGF0YSwgMCk7CiAgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNtYXJ0RGF0YS0+ZnJhbWUsIDApOwotICAg
IFdURjo6Q1N0cmluZyBzID0gc21hcnREYXRhLT5mcmFtZS0+ZWRpdG9yKCktPnNlbGVjdGVkVGV4
dCgpLnV0ZjgoKTsKLSAgICBpZiAocy5pc051bGwoKSkKKyAgICBXVEY6OkNTdHJpbmcgc2VsZWN0
ZWRUZXh0ID0gc21hcnREYXRhLT5mcmFtZS0+ZWRpdG9yKCktPnNlbGVjdGVkVGV4dCgpLnV0Zjgo
KTsKKyAgICBpZiAoc2VsZWN0ZWRUZXh0LmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gMDsKLSAg
ICByZXR1cm4gc3RyZHVwKHMuZGF0YSgpKTsKKyAgICByZXR1cm4gc3RyZHVwKHNlbGVjdGVkVGV4
dC5kYXRhKCkpOwogfQogCiBFaW5hX0Jvb2wgZXdrX2ZyYW1lX3RleHRfc2VhcmNoKGNvbnN0IEV2
YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgY2hhciogdGV4dCwgRWluYV9Cb29sIGNhc2VTZW5z
aXRpdmUsIEVpbmFfQm9vbCBmb3J3YXJkLCBFaW5hX0Jvb2wgd3JhcCkKQEAgLTgzNCw4ICs4MzQs
OCBAQCBFaW5hX0Jvb2wgZXdrX2ZyYW1lX2ZlZWRfZm9jdXNfaW4oRXZhc19PYmplY3QqIGV3a0Zy
YW1lKQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBzbWFydERh
dGEsIGZhbHNlKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnREYXRh
LT5mcmFtZSwgZmFsc2UpOwotICAgIFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlciogYyA9IHNtYXJ0
RGF0YS0+ZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCk7Ci0gICAgYy0+c2V0Rm9jdXNl
ZEZyYW1lKHNtYXJ0RGF0YS0+ZnJhbWUpOworICAgIFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlciog
Zm9jdXNDb250cm9sbGVyID0gc21hcnREYXRhLT5mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xs
ZXIoKTsKKyAgICBmb2N1c0NvbnRyb2xsZXItPnNldEZvY3VzZWRGcmFtZShzbWFydERhdGEtPmZy
YW1lKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTc3NCw3ICsxNzc0LDcgQEAgdm9pZCBl
d2tfZnJhbWVfbWl4ZWRfY29udGVudF9ydW5fc2V0KEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgYm9v
bCBoYXNSdW4pCiAKIG5hbWVzcGFjZSBFV0tQcml2YXRlIHsKIAotV2ViQ29yZTo6RnJhbWUgKmNv
cmVGcmFtZShjb25zdCBFdmFzX09iamVjdCAqZXdrRnJhbWUpCitXZWJDb3JlOjpGcmFtZSogY29y
ZUZyYW1lKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKIHsKICAgICBFV0tfRlJBTUVfU0Rf
R0VUX09SX1JFVFVSTihld2tGcmFtZSwgc21hcnREYXRhLCAwKTsKICAgICByZXR1cm4gc21hcnRE
YXRhLT5mcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaGlzdG9y
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2hpc3RvcnkuY3BwCmluZGV4IGEzOTg3
NTkuLmZhZWYwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaGlzdG9y
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19oaXN0b3J5LmNwcApAQCAtMjU1
LDkgKzI1NSw5IEBAIEV3a19IaXN0b3J5X0l0ZW0qIGV3a19oaXN0b3J5X2l0ZW1fbmV3X2Zyb21f
Y29yZShXZWJDb3JlOjpIaXN0b3J5SXRlbSogY29yZSkKIAogRXdrX0hpc3RvcnlfSXRlbSogZXdr
X2hpc3RvcnlfaXRlbV9uZXcoY29uc3QgY2hhciogdXJpLCBjb25zdCBjaGFyKiB0aXRsZSkKIHsK
LSAgICBXVEY6OlN0cmluZyB1ID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHVyaSk7Ci0gICAgV1RG
OjpTdHJpbmcgdCA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOCh0aXRsZSk7Ci0gICAgV1RGOjpSZWZQ
dHI8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+IGNvcmUgPSBXZWJDb3JlOjpIaXN0b3J5SXRlbTo6Y3Jl
YXRlKHUsIHQsIDApOworICAgIFdURjo6U3RyaW5nIGhpc3RvcnlVcmkgPSBXVEY6OlN0cmluZzo6
ZnJvbVVURjgodXJpKTsKKyAgICBXVEY6OlN0cmluZyBoaXN0b3J5VGl0bGUgPSBXVEY6OlN0cmlu
Zzo6ZnJvbVVURjgodGl0bGUpOworICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6Okhpc3RvcnlJdGVt
PiBjb3JlID0gV2ViQ29yZTo6SGlzdG9yeUl0ZW06OmNyZWF0ZShoaXN0b3J5VXJpLCBoaXN0b3J5
VGl0bGUsIDApOwogICAgIEV3a19IaXN0b3J5X0l0ZW0qIGl0ZW0gPSBld2tfaGlzdG9yeV9pdGVt
X25ld19mcm9tX2NvcmUoY29yZS5yZWxlYXNlKCkubGVha1JlZigpKTsKICAgICByZXR1cm4gaXRl
bTsKIH0KQEAgLTI4NywxOSArMjg3LDE5IEBAIGNvbnN0IGNoYXIqIGV3a19oaXN0b3J5X2l0ZW1f
dGl0bGVfZ2V0KGNvbnN0IEV3a19IaXN0b3J5X0l0ZW0qIGl0ZW0pCiB7CiAgICAgRVdLX0hJU1RP
UllfSVRFTV9DT1JFX0dFVF9PUl9SRVRVUk4oaXRlbSwgY29yZSwgMCk7CiAgICAgLy8gaGlkZSB0
aGUgZm9sbG93aW5nIG9wdGltemF0aW9uIGZyb20gb3V0c2lkZQotICAgIEV3a19IaXN0b3J5X0l0
ZW0qIGl0ZW0xID0gY29uc3RfY2FzdDxFd2tfSGlzdG9yeV9JdGVtKj4oaXRlbSk7Ci0gICAgZWlu
YV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZpdGVtMS0+dGl0bGUsIGNvcmUtPnRpdGxlKCkudXRmOCgp
LmRhdGEoKSk7Ci0gICAgcmV0dXJuIGl0ZW0xLT50aXRsZTsKKyAgICBFd2tfSGlzdG9yeV9JdGVt
KiBoaXN0b3J5SXRlbSA9IGNvbnN0X2Nhc3Q8RXdrX0hpc3RvcnlfSXRlbSo+KGl0ZW0pOworICAg
IGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmaGlzdG9yeUl0ZW0tPnRpdGxlLCBjb3JlLT50aXRs
ZSgpLnV0ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBoaXN0b3J5SXRlbS0+dGl0bGU7CiB9CiAK
IGNvbnN0IGNoYXIqIGV3a19oaXN0b3J5X2l0ZW1fdGl0bGVfYWx0ZXJuYXRlX2dldChjb25zdCBF
d2tfSGlzdG9yeV9JdGVtKiBpdGVtKQogewogICAgIEVXS19ISVNUT1JZX0lURU1fQ09SRV9HRVRf
T1JfUkVUVVJOKGl0ZW0sIGNvcmUsIDApOwogICAgIC8vIGhpZGUgdGhlIGZvbGxvd2luZyBvcHRp
bXphdGlvbiBmcm9tIG91dHNpZGUKLSAgICBFd2tfSGlzdG9yeV9JdGVtKiBpdGVtMSA9IGNvbnN0
X2Nhc3Q8RXdrX0hpc3RvcnlfSXRlbSo+KGl0ZW0pOwotICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVw
bGFjZSgmaXRlbTEtPmFsdGVybmF0ZVRpdGxlLAorICAgIEV3a19IaXN0b3J5X0l0ZW0qIGhpc3Rv
cnlJdGVtID0gY29uc3RfY2FzdDxFd2tfSGlzdG9yeV9JdGVtKj4oaXRlbSk7CisgICAgZWluYV9z
dHJpbmdzaGFyZV9yZXBsYWNlKCZoaXN0b3J5SXRlbS0+YWx0ZXJuYXRlVGl0bGUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvcmUtPmFsdGVybmF0ZVRpdGxlKCkudXRmOCgpLmRhdGEo
KSk7Ci0gICAgcmV0dXJuIGl0ZW0xLT5hbHRlcm5hdGVUaXRsZTsKKyAgICByZXR1cm4gaGlzdG9y
eUl0ZW0tPmFsdGVybmF0ZVRpdGxlOwogfQogCiB2b2lkIGV3a19oaXN0b3J5X2l0ZW1fdGl0bGVf
YWx0ZXJuYXRlX3NldChFd2tfSGlzdG9yeV9JdGVtKiBpdGVtLCBjb25zdCBjaGFyKiB0aXRsZSkK
QEAgLTMxNCwxOSArMzE0LDE5IEBAIGNvbnN0IGNoYXIqIGV3a19oaXN0b3J5X2l0ZW1fdXJpX2dl
dChjb25zdCBFd2tfSGlzdG9yeV9JdGVtKiBpdGVtKQogewogICAgIEVXS19ISVNUT1JZX0lURU1f
Q09SRV9HRVRfT1JfUkVUVVJOKGl0ZW0sIGNvcmUsIDApOwogICAgIC8vIGhpZGUgdGhlIGZvbGxv
d2luZyBvcHRpbXphdGlvbiBmcm9tIG91dHNpZGUKLSAgICBFd2tfSGlzdG9yeV9JdGVtKiBpID0g
Y29uc3RfY2FzdDxFd2tfSGlzdG9yeV9JdGVtKj4oKGl0ZW0pKTsKLSAgICBlaW5hX3N0cmluZ3No
YXJlX3JlcGxhY2UoJmktPnVyaSwgY29yZS0+dXJsU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgcmV0dXJuIGktPnVyaTsKKyAgICBFd2tfSGlzdG9yeV9JdGVtKiBoaXN0b3J5SXRlbSA9IGNv
bnN0X2Nhc3Q8RXdrX0hpc3RvcnlfSXRlbSo+KChpdGVtKSk7CisgICAgZWluYV9zdHJpbmdzaGFy
ZV9yZXBsYWNlKCZoaXN0b3J5SXRlbS0+dXJpLCBjb3JlLT51cmxTdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKKyAgICByZXR1cm4gaGlzdG9yeUl0ZW0tPnVyaTsKIH0KIAogY29uc3QgY2hhciogZXdr
X2hpc3RvcnlfaXRlbV91cmlfb3JpZ2luYWxfZ2V0KGNvbnN0IEV3a19IaXN0b3J5X0l0ZW0qIGl0
ZW0pCiB7CiAgICAgRVdLX0hJU1RPUllfSVRFTV9DT1JFX0dFVF9PUl9SRVRVUk4oaXRlbSwgY29y
ZSwgMCk7CiAgICAgLy8gaGlkZSB0aGUgZm9sbG93aW5nIG9wdGltemF0aW9uIGZyb20gb3V0c2lk
ZQotICAgIEV3a19IaXN0b3J5X0l0ZW0qIGkgPSBjb25zdF9jYXN0PEV3a19IaXN0b3J5X0l0ZW0q
PihpdGVtKTsKLSAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJmktPm9yaWdpbmFsVXJpLAor
ICAgIEV3a19IaXN0b3J5X0l0ZW0qIGhpc3RvcnlJdGVtID0gY29uc3RfY2FzdDxFd2tfSGlzdG9y
eV9JdGVtKj4oaXRlbSk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZoaXN0b3J5SXRl
bS0+b3JpZ2luYWxVcmksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcmUtPm9yaWdp
bmFsVVJMU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIGktPm9yaWdpbmFsVXJp
OworICAgIHJldHVybiBoaXN0b3J5SXRlbS0+b3JpZ2luYWxVcmk7CiB9CiAKIGRvdWJsZSBld2tf
aGlzdG9yeV9pdGVtX3RpbWVfbGFzdF92aXNpdGVkX2dldChjb25zdCBFd2tfSGlzdG9yeV9JdGVt
KiBpdGVtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZS5jcHAKaW5kZXggNGNkZDcyZC4uMzBkZjYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAj
aW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAKLSNkZWZpbmUgSURYKGNv
bCwgcm93LCByb3dzcGFuKSAoY29sICsgKHJvdyAqIHJvd3NwYW4pKQorI2RlZmluZSBJRFgoY29s
dW1uLCByb3csIHJvd3NwYW4pIChjb2x1bW4gKyAocm93ICogcm93c3BhbikpCiAKIHR5cGVkZWYg
c3RydWN0IF9Fd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhIEV3a19UaWxlZF9CYWNraW5nX1N0
b3JlX0RhdGE7CiB0eXBlZGVmIHN0cnVjdCBfRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSBF
d2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtOwpAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX0V3
a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0gewogICAgIHN0cnVjdCB7CiAgICAgICAgIEV2YXNf
Q29vcmQgeCwgeSwgd2lkdGgsIGhlaWdodDsKICAgICB9IGdlb21ldHJ5OwotICAgIGJvb2wgc21v
b3RoX3NjYWxlOworICAgIGJvb2wgc21vb3RoU2NhbGU7CiB9OwogCiBzdHJ1Y3QgX0V3a19UaWxl
ZF9CYWNraW5nX1N0b3JlX1ByZV9SZW5kZXJfUmVxdWVzdCB7CkBAIC02MSw3ICs2MSw3IEBAIHN0
cnVjdCBfRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSB7CiAgICAgc3RydWN0IHsKICAgICAg
ICAgRWluYV9Jbmxpc3QqKiBpdGVtczsKICAgICAgICAgRXZhc19Db29yZCB4LCB5LCB3aWR0aCwg
aGVpZ2h0OwotICAgICAgICBsb25nIGNvbHMsIHJvd3M7CisgICAgICAgIGxvbmcgY29sdW1ucywg
cm93czsKICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgIEV2YXNfQ29vcmQgd2lkdGgsIGhl
aWdodDsKICAgICAgICAgICAgIGZsb2F0IHpvb207CkBAIC03MSw3ICs3MSw3IEBAIHN0cnVjdCBf
RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSB7CiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAg
ICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgIEV2YXNfQ29vcmQgeCwgeTsKLSAgICAgICAg
ICAgIH0gY3VyLCBvbGQsIGJhc2UsIHpvb21DZW50ZXI7CisgICAgICAgICAgICB9IGN1cnJlbnQs
IG9sZCwgYmFzZSwgem9vbUNlbnRlcjsKICAgICAgICAgfSBvZmZzZXQ7CiAgICAgICAgIGJvb2wg
dmlzaWJsZSA6IDE7CiAgICAgfSB2aWV3OwpAQCAtMTA4LDE4ICsxMDgsMTggQEAgc3RydWN0IF9F
d2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhIHsKICAgICAgICAgYm9vbCBvZmZzZXQgOiAxOwog
ICAgIH0gY2hhbmdlZDsKICNpZmRlZiBERUJVR19NRU1fTEVBS1MKLSAgICBFY29yZV9FdmVudF9I
YW5kbGVyKiBzaWdfdXNyOworICAgIEVjb3JlX0V2ZW50X0hhbmRsZXIqIHNpZ25hbFVzZXI7CiAj
ZW5kaWYKIH07CiAKIHN0YXRpYyBFdmFzX1NtYXJ0X0NsYXNzIF9wYXJlbnRfc2MgPSBFVkFTX1NN
QVJUX0NMQVNTX0lOSVRfTlVMTDsKIGludCBfZXdrX3RpbGVkX2xvZ19kb20gPSAtMTsKIAotI2Rl
ZmluZSBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihvYmosIHB0ciwgLi4uKSAgICAgICAgICAgICAg
ICAgICAgICAgXAorI2RlZmluZSBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihvYmosIHB0ciwgLi4u
KSBcCiAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHRyID0gc3RhdGljX2Nhc3Q8
RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSo+KGV2YXNfb2JqZWN0X3NtYXJ0X2RhdGFfZ2V0
KG9iaikpOyBcCi0gICAgaWYgKCFwdHIpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIENSSVRJQ0FMKCJubyBwcml2YXRlIGRh
dGEgaW4gb2JqPSVwIiwgb2JqKTsgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHJldHVybiBf
X1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgaWYgKCFwdHIpIHsgXAorICAgICAgICBDUklUSUNBTCgibm8gcHJpdmF0ZSBkYXRhIGluIG9i
aj0lcCIsIG9iaik7IFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyBcCiAgICAgfQogCiBz
dGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZmlsbF9yZW5kZXJlcnMoRXdrX1Rp
bGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdik7CkBAIC0yMDMsMTMgKzIwMywxMyBAQCBzdGF0
aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9yZXNpemUoRXdrX1RpbGVkX0Jh
Y2tpbmdfU3RvcmVfSXRlbSogaQogc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3RpbGVfYXNzb2NpYXRlKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYsIEV3a19U
aWxlKiB0aWxlLCBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVtKQogewogICAgIGlm
IChpdGVtLT50aWxlKQotICAgICAgICBDUklUSUNBTCgiaXQtPnRpbGU9JXAsIGJ1dCBpdCBzaG91
bGQgYmUgMCEiLCBpdGVtLT50aWxlKTsKKyAgICAgICAgQ1JJVElDQUwoIml0ZW0tPnRpbGU9JXAs
IGJ1dCBpdCBzaG91bGQgYmUgMCEiLCBpdGVtLT50aWxlKTsKICAgICBpdGVtLT50aWxlID0gdGls
ZTsKICAgICBldmFzX29iamVjdF9tb3ZlKGl0ZW0tPnRpbGUtPmltYWdlLCBpdGVtLT5nZW9tZXRy
eS54LCBpdGVtLT5nZW9tZXRyeS55KTsKICAgICBldmFzX29iamVjdF9yZXNpemUoaXRlbS0+dGls
ZS0+aW1hZ2UsIGl0ZW0tPmdlb21ldHJ5LndpZHRoLCBpdGVtLT5nZW9tZXRyeS5oZWlnaHQpOwog
ICAgIGV2YXNfb2JqZWN0X2ltYWdlX2ZpbGxfc2V0CiAgICAgICAgIChpdGVtLT50aWxlLT5pbWFn
ZSwgMCwgMCwgaXRlbS0+Z2VvbWV0cnkud2lkdGgsIGl0ZW0tPmdlb21ldHJ5LmhlaWdodCk7Ci0g
ICAgZXZhc19vYmplY3RfaW1hZ2Vfc21vb3RoX3NjYWxlX3NldChpdGVtLT50aWxlLT5pbWFnZSwg
aXRlbS0+c21vb3RoX3NjYWxlKTsKKyAgICBldmFzX29iamVjdF9pbWFnZV9zbW9vdGhfc2NhbGVf
c2V0KGl0ZW0tPnRpbGUtPmltYWdlLCBpdGVtLT5zbW9vdGhTY2FsZSk7CiAgICAgZXZhc19vYmpl
Y3RfaW1hZ2VfYWxwaGFfc2V0KGl0ZW0tPnRpbGUtPmltYWdlLCBwcml2LT52aWV3LnRpbGUuaGFz
QWxwaGEpOwogCiAgICAgaWYgKCFld2tfdGlsZV92aXNpYmxlX2dldCh0aWxlKSkKQEAgLTIyMCwx
MyArMjIwLDEzIEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Fz
c29jaWF0ZShFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAKIHN0YXRpYyB2b2lkIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Rpc3NvY2lhdGUoRXdrX1RpbGVkX0JhY2tpbmdfU3Rv
cmVfRGF0YSogcHJpdiwgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbSwgZG91Ymxl
IGxhc3RVc2VkKQogewotICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZWRVbnVzZWRDYWNo
ZTsKKyAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZTsKICAgICBld2tf
dGlsZV9oaWRlKGl0ZW0tPnRpbGUpOwogICAgIGlmICghZXdrX3RpbGVfdmlzaWJsZV9nZXQoaXRl
bS0+dGlsZSkpCiAgICAgICAgIGV2YXNfb2JqZWN0X3NtYXJ0X21lbWJlcl9kZWwoaXRlbS0+dGls
ZS0+aW1hZ2UpOwogICAgIGV3a190aWxlX21hdHJpeF90aWxlX3B1dChwcml2LT5tb2RlbC5tYXRy
aXgsIGl0ZW0tPnRpbGUsIGxhc3RVc2VkKTsKLSAgICB0aWxlZFVudXNlZENhY2hlID0gZXdrX3Rp
bGVfbWF0cml4X3VudXNlZF9jYWNoZV9nZXQocHJpdi0+bW9kZWwubWF0cml4KTsKLSAgICBld2tf
dGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0aWxlZFVudXNlZENhY2hlKTsKKyAgICB0aWxl
VW51c2VkQ2FjaGUgPSBld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5tb2Rl
bC5tYXRyaXgpOworICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGVVbnVz
ZWRDYWNoZSk7CiAKICAgICBpdGVtLT50aWxlID0gMDsKIH0KQEAgLTI5MiwyNiArMjkyLDI2IEBA
IHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3Rf
Zmx1c2goRXdrX1RpbGVkX0JhY2tpbmdfCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0X2NsZWFyKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0Rh
dGEqIHByaXYpCiB7CiAgICAgRWluYV9Jbmxpc3QqKiBwcmVSZW5kZXJMaXN0ID0gJnByaXYtPnJl
bmRlci5wcmVSZW5kZXJSZXF1ZXN0czsKLSAgICBFaW5hX0lubGlzdCogaXRlciA9ICpwcmVSZW5k
ZXJMaXN0LCAqdG1wOworICAgIEVpbmFfSW5saXN0KiBpdGVyID0gKnByZVJlbmRlckxpc3QsICpu
ZXh0OwogICAgIHdoaWxlIChpdGVyKSB7CiAgICAgICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3Jl
X1ByZV9SZW5kZXJfUmVxdWVzdCogcmVxdWVzdCA9CiAgICAgICAgICAgICBFSU5BX0lOTElTVF9D
T05UQUlORVJfR0VUKAogICAgICAgICAgICAgICAgIGl0ZXIsIEV3a19UaWxlZF9CYWNraW5nX1N0
b3JlX1ByZV9SZW5kZXJfUmVxdWVzdCk7Ci0gICAgICAgIHRtcCA9IGl0ZXItPm5leHQ7CisgICAg
ICAgIG5leHQgPSBpdGVyLT5uZXh0OwogICAgICAgICAqcHJlUmVuZGVyTGlzdCA9IGVpbmFfaW5s
aXN0X3JlbW92ZSgqcHJlUmVuZGVyTGlzdCwgaXRlcik7Ci0gICAgICAgIGl0ZXIgPSB0bXA7Cisg
ICAgICAgIGl0ZXIgPSBuZXh0OwogICAgICAgICBmcmVlKHJlcXVlc3QpOwogICAgIH0KIH0KIAot
LyogYXNzdW1lcyBwcml2LT5wcm9jZXNzLnByZV9jYiB3YXMgY2FsbGVkIGlmIHJlcXVpcmVkISAq
LworLyogYXNzdW1lcyBwcml2LT5wcm9jZXNzLnByZUNhbGxiYWNrIHdhcyBjYWxsZWQgaWYgcmVx
dWlyZWQhICovCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRl
cl9yZXF1ZXN0X3Byb2Nlc3Nfc2luZ2xlKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHBy
aXYpCiB7CiAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfUHJlX1JlbmRlcl9SZXF1ZXN0KiBy
ZXF1ZXN0OwogICAgIEVpbmFfUmVjdGFuZ2xlIGFyZWE7CiAgICAgRXdrX1RpbGVfTWF0cml4KiB0
aWxlTWF0cml4ID0gcHJpdi0+bW9kZWwubWF0cml4OwogICAgIEV3a19UaWxlKiB0aWxlOwotICAg
IEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZWRVbnVzZWRDYWNoZTsKKyAgICBFd2tfVGlsZV9V
bnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZTsKICAgICB1bnNpZ25lZCBsb25nIGNvbHVtbiwg
cm93OwogICAgIGZsb2F0IHpvb207CiAgICAgZG91YmxlIGxhc3RfdXNlZCA9IGVjb3JlX2xvb3Bf
dGltZV9nZXQoKTsKQEAgLTM0OCw4ICszNDgsOCBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0X3Byb2Nlc3Nfc2luZ2xlKEV3a19UaWxlZAog
CiBlbmQ6CiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9k
ZWwocHJpdiwgcmVxdWVzdCk7Ci0gICAgdGlsZWRVbnVzZWRDYWNoZSA9IGV3a190aWxlX21hdHJp
eF91bnVzZWRfY2FjaGVfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7Ci0gICAgZXdrX3RpbGVfdW51
c2VkX2NhY2hlX2F1dG9fZmx1c2godGlsZWRVbnVzZWRDYWNoZSk7CisgICAgdGlsZVVudXNlZENh
Y2hlID0gZXdrX3RpbGVfbWF0cml4X3VudXNlZF9jYWNoZV9nZXQocHJpdi0+bW9kZWwubWF0cml4
KTsKKyAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0aWxlVW51c2VkQ2FjaGUp
OwogfQogCiBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3By
b2Nlc3NfaWRsZXJfY2Iodm9pZCogZGF0YSkKQEAgLTQzMCwxOCArNDMwLDE4IEBAIHN0YXRpYyBp
bmxpbmUgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2ZpbGwoRXdrX1Rp
bGVkX0JhY2tpbmdfU3RvCiAKICAgICAgICAgaWYgKGl0ZW0tPnRpbGUpIHsKICAgICAgICAgICAg
IEV3a19UaWxlKiBvbGQgPSBpdGVtLT50aWxlOwotICAgICAgICAgICAgaWYgKG9sZC0+cm93ICE9
IGN1cnJlbnRSb3cgfHwgb2xkLT5jb2wgIT0gY3VycmVudENvbHVtbiB8fCBvbGQtPnpvb20gIT0g
em9vbSkKKyAgICAgICAgICAgIGlmIChvbGQtPnJvdyAhPSBjdXJyZW50Um93IHx8IG9sZC0+Y29s
dW1uICE9IGN1cnJlbnRDb2x1bW4gfHwgb2xkLT56b29tICE9IHpvb20pCiAgICAgICAgICAgICAg
ICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfZGlzc29jaWF0ZShwcml2LCBpdGVtLCBs
YXN0VXNlZCk7Ci0gICAgICAgICAgICBlbHNlIGlmIChvbGQtPnJvdyA9PSBjdXJyZW50Um93ICYm
IG9sZC0+Y29sID09IGN1cnJlbnRDb2x1bW4gJiYgb2xkLT56b29tID09IHpvb20pCisgICAgICAg
ICAgICBlbHNlIGlmIChvbGQtPnJvdyA9PSBjdXJyZW50Um93ICYmIG9sZC0+Y29sdW1uID09IGN1
cnJlbnRDb2x1bW4gJiYgb2xkLT56b29tID09IHpvb20pCiAgICAgICAgICAgICAgICAgZ290byBl
bmQ7CiAgICAgICAgIH0KIAogICAgICAgICB0aWxlID0gZXdrX3RpbGVfbWF0cml4X3RpbGVfZXhh
Y3RfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCwgY3VycmVudENvbHVtbiwgY3VycmVudFJvdywgem9v
bSk7CiAKICAgICAgICAgaWYgKCF0aWxlKSB7Ci0gICAgICAgICAgICAvKiBOT1RFOiBpdCBuZXZl
ciByZXR1cm5zIDAgaWYgaXQtPnRpbGUgd2FzIHNldCEgKi8KKyAgICAgICAgICAgIC8qIE5PVEU6
IGl0IG5ldmVyIHJldHVybnMgMCBpZiBpdGVtLT50aWxlIHdhcyBzZXQhICovCiAgICAgICAgICAg
ICBpZiAoaXRlbS0+dGlsZSkgewotICAgICAgICAgICAgICAgIENSSVRJQ0FMKCJpdC0+dGlsZT0l
cCwgYnV0IGl0IHNob3VsZCBiZSAwISIsIGl0ZW0tPnRpbGUpOworICAgICAgICAgICAgICAgIENS
SVRJQ0FMKCJpdGVtLT50aWxlPSVwLCBidXQgaXQgc2hvdWxkIGJlIDAhIiwgaXRlbS0+dGlsZSk7
CiAgICAgICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfZGlzc29jaWF0
ZShwcml2LCBpdGVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGFzdFVzZWQpOwogICAgICAgICAgICAgfQpAQCAtNDczLDcgKzQ3Myw3
IEBAIHN0YXRpYyBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfaXRlbV9hZGQoRXdrX1RpbGVkCiAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVf
SXRlbSogaXRlbTsKICAgICBFdmFzX0Nvb3JkIHgsIHksIHRpbGVXaWR0aCwgdGlsZUhlaWdodDsK
IAotICAgIERCRygiZXdrQmFja2luZ1N0b3JlJXAiLCBwcml2LT5zZWxmKTsKKyAgICBEQkcoImV3
a0JhY2tpbmdTdG9yZT0lcCIsIHByaXYtPnNlbGYpOwogCiAgICAgaXRlbSA9IHN0YXRpY19jYXN0
PEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qPihtYWxsb2Moc2l6ZW9mKCppdGVtKSkpOwog
ICAgIGlmICghaXRlbSkKQEAgLTQ4MSwxMiArNDgxLDEyIEBAIHN0YXRpYyBFd2tfVGlsZWRfQmFj
a2luZ19TdG9yZV9JdGVtKiBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9hZGQoRXdrX1Rp
bGVkCiAKICAgICB0aWxlV2lkdGggPSBwcml2LT52aWV3LnRpbGUud2lkdGg7CiAgICAgdGlsZUhl
aWdodCA9IHByaXYtPnZpZXcudGlsZS5oZWlnaHQ7Ci0gICAgeCA9IHByaXYtPnZpZXcub2Zmc2V0
LmJhc2UueCArIHByaXYtPnZpZXcueCArIHRpbGVXaWR0aCAgKmNvbHVtbjsKLSAgICB5ID0gcHJp
di0+dmlldy5vZmZzZXQuYmFzZS55ICsgcHJpdi0+dmlldy55ICsgdGlsZUhlaWdodCAgKnJvdzsK
KyAgICB4ID0gcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ICsgcHJpdi0+dmlldy54ICsgdGlsZVdp
ZHRoICogY29sdW1uOworICAgIHkgPSBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnkgKyBwcml2LT52
aWV3LnkgKyB0aWxlSGVpZ2h0ICogcm93OwogCiAgICAgaXRlbS0+dGlsZSA9IDA7CiAKLSAgICBp
dGVtLT5zbW9vdGhfc2NhbGUgPSBwcml2LT52aWV3LnRpbGUuem9vbVdlYWtTbW9vdGhTY2FsZTsK
KyAgICBpdGVtLT5zbW9vdGhTY2FsZSA9IHByaXYtPnZpZXcudGlsZS56b29tV2Vha1Ntb290aFNj
YWxlOwogICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXRlbSwgeCwgeSk7
CiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fcmVzaXplKGl0ZW0sIHRpbGVXaWR0
aCwgdGlsZUhlaWdodCk7CiAgICAgaWYgKCFfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9m
aWxsKHByaXYsIGl0ZW0sIGNvbHVtbiwgcm93KSkgewpAQCAtNTA5LDcgKzUwOSw3IEBAIHN0YXRp
YyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2RlbChFd2tfVGlsZWRfQmFja2lu
Z19TdG9yZV9EYXRhKiBwcml2CiAKIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9pdGVtX3Ntb290aF9zY2FsZV9zZXQoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRl
bSwgRWluYV9Cb29sIHNtb290aFNjYWxlKQogewotICAgIGlmIChpdGVtLT5zbW9vdGhfc2NhbGUg
PT0gc21vb3RoU2NhbGUpCisgICAgaWYgKGl0ZW0tPnNtb290aFNjYWxlID09IHNtb290aFNjYWxl
KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoaXRlbS0+dGlsZSkKQEAgLTU0OCwxNiArNTQ4
LDE2IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfY29s
c19lbmRfYWRkKEV3a19UaWxlZF9CYWNraW5nX1N0CiAgICAgdW5zaWduZWQgaW50IGksIHJvdyA9
IHJvd0xpc3QgLSBwcml2LT52aWV3Lml0ZW1zOwogCiAgICAgZm9yIChpID0gMDsgaSA8IGNvdW50
OyBpKyssIGJhc2VDb2x1bW4rKykgewotICAgICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9J
dGVtKiBpdDsKKyAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbTsKIAot
ICAgICAgICBpdCA9IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2FkZChwcml2LCBiYXNl
Q29sdW1uLCByb3cpOwotICAgICAgICBpZiAoIWl0KSB7CisgICAgICAgIGl0ZW0gPSBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9hZGQocHJpdiwgYmFzZUNvbHVtbiwgcm93KTsKKyAgICAg
ICAgaWYgKCFpdGVtKSB7CiAgICAgICAgICAgICBDUklUSUNBTCgiZmFpbGVkIHRvIGFkZCBjb2x1
bW4gJXUgb2YgJXUgaW4gcm93ICV1LiIsIGksIGNvdW50LCByb3cpOwogICAgICAgICAgICAgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfY29sc19lbmRfZGVsKHByaXYsIHJvd0xpc3QsIGkp
OwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKLSAgICAgICAgKnJvd0xp
c3QgPSBlaW5hX2lubGlzdF9hcHBlbmQoKnJvd0xpc3QsIEVJTkFfSU5MSVNUX0dFVChpdCkpOwor
ICAgICAgICAqcm93TGlzdCA9IGVpbmFfaW5saXN0X2FwcGVuZCgqcm93TGlzdCwgRUlOQV9JTkxJ
U1RfR0VUKGl0ZW0pKTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC01OTEsNyArNTkx
LDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfcm93c19hbGxf
ZGVsKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0QKIAogICAgIGZyZWUocHJpdi0+dmlldy5pdGVt
cyk7CiAgICAgcHJpdi0+dmlldy5pdGVtcyA9IDA7Ci0gICAgcHJpdi0+dmlldy5jb2xzID0gMDsK
KyAgICBwcml2LT52aWV3LmNvbHVtbnMgPSAwOwogICAgIHByaXYtPnZpZXcucm93cyA9IDA7CiB9
CiAKQEAgLTYwMCw3ICs2MDAsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfcmVuZGVyKHZvaWQqIGRhdGEsIEV3a19UaWxlKiB0aWxlLCBjb25zdCBFaQogICAgIEV3a19U
aWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYgPSBzdGF0aWNfY2FzdDxFd2tfVGlsZWRfQmFj
a2luZ19TdG9yZV9EYXRhKj4oZGF0YSk7CiAKICAgICBJTkYoIlRPRE8gJXAgKHZpc2libGU/ICVk
KSBbJWx1LCVsdV0gJWQsJWQgKyAlZHglZCIsCi0gICAgICAgIHRpbGUsIHRpbGUtPnZpc2libGUs
IHRpbGUtPmNvbCwgdGlsZS0+cm93LCBhcmVhLT54LCBhcmVhLT55LCBhcmVhLT53LCBhcmVhLT5o
KTsKKyAgICAgICAgdGlsZSwgdGlsZS0+dmlzaWJsZSwgdGlsZS0+Y29sdW1uLCB0aWxlLT5yb3cs
IGFyZWEtPngsIGFyZWEtPnksIGFyZWEtPncsIGFyZWEtPmgpOwogCiAgICAgaWYgKCF0aWxlLT52
aXNpYmxlKQogICAgICAgICByZXR1cm47CkBAIC02NTcsNyArNjU3LDcgQEAgc3RhdGljIHZvaWQg
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX21lbV9kYmcoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVf
RGF0YSogcHJpdikKICAgICBydW4rKzsKIAogICAgIHByaW50ZigiXG4tLS0gQkVHSU4gREVCVUcg
VElMRUQgQkFDS0lORyBTVE9SRSBNRU1PUlkgWyVkXSAtLVxuIgotICAgICAgICAgICAidD0lMC4y
Ziwgb2JqPSVwLCBwcml2PSVwLCB2aWV3Lml0ZW1zPSVwLCBtYXRyaXg9JXBcbiIsCisgICAgICAg
ICAgICJ0aWxlPSUwLjJmLCBvYmo9JXAsIHByaXY9JXAsIHZpZXcuaXRlbXM9JXAsIG1hdHJpeD0l
cFxuIiwKICAgICAgICAgICAgcnVuLCBlY29yZV9sb29wX3RpbWVfZ2V0KCksCiAgICAgICAgICAg
IHByaXYtPnNlbGYsIHByaXYsIHByaXYtPnZpZXcuaXRlbXMsIHByaXYtPm1vZGVsLm1hdHJpeCk7
CiAKQEAgLTY2OSwxMyArNjY5LDEzIEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9tZW1fZGJnKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYpCiAKIHN0YXRp
YyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NpZ191c3Iodm9pZCogZGF0YSwg
aW50IHR5cGUsIHZvaWQqIGV2ZW50KQogewotICAgIEVjb3JlX0V2ZW50X1NpZ25hbF9Vc2VyKiBz
aWcgPSAoRWNvcmVfRXZlbnRfU2lnbmFsX1VzZXIqKWV2ZW50OworICAgIEVjb3JlX0V2ZW50X1Np
Z25hbF9Vc2VyKiBzaWduYWxVc2VyID0gKEVjb3JlX0V2ZW50X1NpZ25hbF9Vc2VyKilldmVudDsK
ICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2ID0gKEV3a19UaWxlZF9CYWNr
aW5nX1N0b3JlX0RhdGEqKWRhdGE7CiAKLSAgICBpZiAoc2lnLT5udW1iZXIgPT0gMikgewotICAg
ICAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGllVW51c2VkQ2FjaGU7Ci0gICAgICAgIHRp
bGllVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5t
b2RlbC5tYXRyaXgpOwotICAgICAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0
aWxpZVVudXNlZENhY2hlKTsKKyAgICBpZiAoc2lnbmFsVXNlci0+bnVtYmVyID09IDIpIHsKKyAg
ICAgICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGU7CisgICAgICAgIHRp
bGVVbnVzZWRDYWNoZSA9IGV3a190aWxlX21hdHJpeF91bnVzZWRfY2FjaGVfZ2V0KHByaXYtPm1v
ZGVsLm1hdHJpeCk7CisgICAgICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKHRp
bGVVbnVzZWRDYWNoZSk7CiAgICAgfQogCiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Zp
ZXdfZGJnKHByaXYpOwpAQCAtNjk4LDggKzY5OCw4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9zbWFydF9hZGQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKICAg
ICBwcml2LT52aWV3LnRpbGUuem9vbSA9IDEuMDsKICAgICBwcml2LT52aWV3LnRpbGUud2lkdGgg
PSBkZWZhdWx0VGlsZVdpZHRoOwogICAgIHByaXYtPnZpZXcudGlsZS5oZWlnaHQgPSBkZWZhdWx0
VGlsZUhlaWd0aDsKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCA9IDA7Ci0gICAgcHJpdi0+
dmlldy5vZmZzZXQuY3VyLnkgPSAwOworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCA9
IDA7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55ID0gMDsKICAgICBwcml2LT52aWV3
Lm9mZnNldC5vbGQueCA9IDA7CiAgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSAwOwogICAg
IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCA9IDA7CkBAIC03MzQsNyArNzM0LDcgQEAgc3RhdGlj
IHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2FkZChFdmFzX09iamVjdCogZXdr
QmFja2luZ1N0b3JlKQogICAgIGV2YXNfb2JqZWN0X2NsaXBfc2V0KHByaXYtPmNvbnRlbnRzQ2xp
cHBlciwgcHJpdi0+YmFzZS5jbGlwcGVyKTsKIAogI2lmZGVmIERFQlVHX01FTV9MRUFLUwotICAg
IHByaXYtPnNpZ191c3IgPSBlY29yZV9ldmVudF9oYW5kbGVyX2FkZAorICAgIHByaXYtPnNpZ25h
bFVzZXIgPSBlY29yZV9ldmVudF9oYW5kbGVyX2FkZAogICAgICAgICAgICAgICAgICAgICAgICAg
KEVDT1JFX0VWRU5UX1NJR05BTF9VU0VSLCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2lnX3Vz
ciwgcHJpdik7CiAjZW5kaWYKIH0KQEAgLTc0Miw3ICs3NDIsNyBAQCBzdGF0aWMgdm9pZCBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRkKEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3Rv
cmUpCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfZGVsKEV2YXNf
T2JqZWN0KiBld2tCYWNraW5nU3RvcmUpCiB7CiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4o
ZXdrQmFja2luZ1N0b3JlLCBwcml2KTsKLSAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVwIiwgZXdr
QmFja2luZ1N0b3JlKTsKKyAgICBEQkcoImV3a0JhY2tpbmdTdG9yZT0lcCIsIGV3a0JhY2tpbmdT
dG9yZSk7CiAgICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGU7CiAKICAg
ICB0aWxlVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2
LT5tb2RlbC5tYXRyaXgpOwpAQCAtNzc0LDcgKzc3NCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9zbWFydF9kZWwoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSkK
IAogc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X21vdmUoRXZhc19P
YmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHkpCiB7Ci0g
ICAgREJHKCJld2tCYWNraW5nU3RvcmUlcCwgbmV3IHBvczogJWR4JWQiLCBld2tCYWNraW5nU3Rv
cmUsIHgsIHkpOworICAgIERCRygiZXdrQmFja2luZ1N0b3JlPSVwLCBuZXcgcG9zOiAlZHglZCIs
IGV3a0JhY2tpbmdTdG9yZSwgeCwgeSk7CiAKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihl
d2tCYWNraW5nU3RvcmUsIHByaXYpOwogCkBAIC03OTAsNyArNzkwLDcgQEAgc3RhdGljIHZvaWQg
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X21vdmUoRXZhc19PYmplY3QqIGV3a0JhY2tp
bmdTdG9yZSwgRXYKIAogc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0
X3Jlc2l6ZShFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBFdmFzX0Nvb3JkIHdpZHRoLCBF
dmFzX0Nvb3JkIGhlaWdodCkKIHsKLSAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVwLCBuZXcgc2l6
ZTogJWR4JWQiLCBld2tCYWNraW5nU3RvcmUsIHdpZHRoLCBoZWlnaHQpOworICAgIERCRygiZXdr
QmFja2luZ1N0b3JlPSVwLCBuZXcgc2l6ZTogJWR4JWQiLCBld2tCYWNraW5nU3RvcmUsIHdpZHRo
LCBoZWlnaHQpOwogCiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3Jl
LCBwcml2KTsKIApAQCAtODI0LDE4ICs4MjQsMTggQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9i
YWNraW5nX3N0b3JlX3NtYXJ0X2hpZGUoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKIHN0
YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9yZWNhbGNfcmVuZGVyZXJzKEV3a19U
aWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYsIEV2YXNfQ29vcmQgd2lkdGgsIEV2YXNfQ29v
cmQgaGVpZ2h0LCBFdmFzX0Nvb3JkIHRpbGVXaWR0aCwgRXZhc19Db29yZCB0aWxlSGVpZ2h0KQog
ewogICAgIGxvbmcgY29sdW1ucywgcm93cywgb2xkUm93cywgb2xkQ29sczsKLSAgICBJTkYoImV3
a0JhY2tpbmdTdG9yZSVwLCBuZXcgc2l6ZTogJWR4JWQiLCBwcml2LT5zZWxmLCB3aWR0aCwgaGVp
Z2h0KTsKKyAgICBJTkYoImV3a0JhY2tpbmdTdG9yZT0lcCwgbmV3IHNpemU6ICVkeCVkIiwgcHJp
di0+c2VsZiwgd2lkdGgsIGhlaWdodCk7CiAKICAgICBjb2x1bW5zID0gMSArIHN0YXRpY19jYXN0
PGludD4oY2VpbCh3aWR0aCAvIHN0YXRpY19jYXN0PGZsb2F0Pih0aWxlV2lkdGgpKSk7CiAgICAg
cm93cyA9IDEgKyBzdGF0aWNfY2FzdDxpbnQ+KGNlaWwoaGVpZ2h0IC8gc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHRpbGVIZWlnaHQpKSk7CiAKLSAgICBJTkYoImV3a0JhY2tpbmdTdG9yZSVwIG5ldyBncmlk
IHNpemUgY29sczogJWxkLCByb3dzOiAlbGQsIHdhcyAlbGQsICVsZCIsCi0gICAgICAgIHByaXYt
PnNlbGYsIGNvbHVtbnMsIHJvd3MsIHByaXYtPnZpZXcuY29scywgcHJpdi0+dmlldy5yb3dzKTsK
KyAgICBJTkYoImV3a0JhY2tpbmdTdG9yZT0lcCBuZXcgZ3JpZCBzaXplIGNvbHVtbnM6ICVsZCwg
cm93czogJWxkLCB3YXMgJWxkLCAlbGQiLAorICAgICAgICBwcml2LT5zZWxmLCBjb2x1bW5zLCBy
b3dzLCBwcml2LT52aWV3LmNvbHVtbnMsIHByaXYtPnZpZXcucm93cyk7CiAKLSAgICBpZiAocHJp
di0+dmlldy5jb2xzID09IGNvbHVtbnMgJiYgcHJpdi0+dmlldy5yb3dzID09IHJvd3MpCisgICAg
aWYgKHByaXYtPnZpZXcuY29sdW1ucyA9PSBjb2x1bW5zICYmIHByaXYtPnZpZXcucm93cyA9PSBy
b3dzKQogICAgICAgICByZXR1cm47CiAKLSAgICBvbGRDb2xzID0gcHJpdi0+dmlldy5jb2xzOwor
ICAgIG9sZENvbHMgPSBwcml2LT52aWV3LmNvbHVtbnM7CiAgICAgb2xkUm93cyA9IHByaXYtPnZp
ZXcucm93czsKIAogICAgIGlmIChyb3dzIDwgb2xkUm93cykgewpAQCAtODUxLDE0ICs4NTEsMTQg
QEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3JlY2FsY19yZW5kZXJlcnMo
RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGEKIAogICAgIHByaXYtPnZpZXcuaXRlbXMgPSBzdGF0
aWNfY2FzdDxFaW5hX0lubGlzdCoqPihuZXdJdGVtcyk7CiAgICAgcHJpdi0+dmlldy5yb3dzID0g
cm93czsKLSAgICBwcml2LT52aWV3LmNvbHMgPSBjb2x1bW5zOworICAgIHByaXYtPnZpZXcuY29s
dW1ucyA9IGNvbHVtbnM7CiAgICAgaWYgKHJvd3MgPiBvbGRSb3dzKSB7CiAgICAgICAgIEVpbmFf
SW5saXN0Kiogc3RhcnQgPSBwcml2LT52aWV3Lml0ZW1zICsgb2xkUm93czsKICAgICAgICAgRWlu
YV9Jbmxpc3QqKiBlbmQgPSBwcml2LT52aWV3Lml0ZW1zICsgcm93czsKICAgICAgICAgZm9yICg7
IHN0YXJ0IDwgZW5kOyBzdGFydCsrKSB7CiAgICAgICAgICAgICAqc3RhcnQgPSAwOwotICAgICAg
ICAgICAgRWluYV9Cb29sIHIgPSBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19jb2xzX2Vu
ZF9hZGQocHJpdiwgc3RhcnQsIDAsIGNvbHVtbnMpOwotICAgICAgICAgICAgaWYgKCFyKSB7Cisg
ICAgICAgICAgICBFaW5hX0Jvb2wgcmVzdWx0ID0gX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Zp
ZXdfY29sc19lbmRfYWRkKHByaXYsIHN0YXJ0LCAwLCBjb2x1bW5zKTsKKyAgICAgICAgICAgIGlm
ICghcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgQ1JJVElDQUwoImZhaWxlZCB0byBhbGxvY2F0
ZSAlbGQgY29sdW1ucyIsIGNvbHVtbnMpOwogICAgICAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV92aWV3X3Jvd3NfcmFuZ2VfZGVsKHByaXYsIHByaXYtPnZpZXcuaXRlbXMgKyBv
bGRSb3dzLCBzdGFydCk7CiAgICAgICAgICAgICAgICAgcHJpdi0+dmlldy5yb3dzID0gb2xkUm93
czsKQEAgLTkxNCwxMSArOTE0LDExIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfdmlld19kYmcoY29uc3QgRXdrX1RpbGVkX0JhY2tpbmdfU3RvCiB7CiAgICAg
RWluYV9Jbmxpc3QqKiBzdGFydCwgKiplbmQ7CiAgICAgcHJpbnRmKCJ0aWxlcz0lMmxkLCUybGQg
IG1vZGVsPSUybGQsJTJsZCBbJWR4JWRdIGJhc2U9JSszbGQsJSs0bGQgb2Zmc2V0PSUrNGQsJSs0
ZCBvbGQ9JSs0ZCwlKzRkIGJhc2U9JSszZCwlKzNkXG4iLAotICAgICAgICAgICBwcml2LT52aWV3
LmNvbHMsIHByaXYtPnZpZXcucm93cywKKyAgICAgICAgICAgcHJpdi0+dmlldy5jb2x1bW5zLCBw
cml2LT52aWV3LnJvd3MsCiAgICAgICAgICAgIHByaXYtPm1vZGVsLmN1cnJlbnQuY29sdW1ucywg
cHJpdi0+bW9kZWwuY3VycmVudC5yb3dzLAogICAgICAgICAgICBwcml2LT5tb2RlbC53aWR0aCwg
cHJpdi0+bW9kZWwuaGVpZ2h0LAogICAgICAgICAgICBwcml2LT5tb2RlbC5iYXNlLmNvbHVtbiwg
cHJpdi0+bW9kZWwuYmFzZS5yb3csCi0gICAgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54
LCBwcml2LT52aWV3Lm9mZnNldC5jdXIueSwKKyAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQu
Y3VycmVudC54LCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnksCiAgICAgICAgICAgIHByaXYt
PnZpZXcub2Zmc2V0Lm9sZC54LCBwcml2LT52aWV3Lm9mZnNldC5vbGQueSwKICAgICAgICAgICAg
cHJpdi0+dmlldy5vZmZzZXQuYmFzZS54LCBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnkpOwogCkBA
IC05MzMsNyArOTMzLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV92aWV3X2RiZyhjb25zdCBFd2tfVGlsZWRfQmFja2luZ19TdG8KICAgICAgICAgICAgIGlm
ICghaXRlbS0+dGlsZSkKICAgICAgICAgICAgICAgICBwcmludGYoIiAgICAgICAgICAgIDsiKTsK
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBwcmludGYoIiU4cCAlbHUsJWx1OyIs
IGl0ZW0tPnRpbGUsIGl0ZW0tPnRpbGUtPmNvbCwgaXRlbS0+dGlsZS0+cm93KTsKKyAgICAgICAg
ICAgICAgICBwcmludGYoIiU4cCAlbHUsJWx1OyIsIGl0ZW0tPnRpbGUsIGl0ZW0tPnRpbGUtPmNv
bHVtbiwgaXRlbS0+dGlsZS0+cm93KTsKICAgICAgICAgfQogICAgICAgICBwcmludGYoIlxuIik7
CiAgICAgfQpAQCAtOTcxLDcgKzk3MSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV92aWV3X3dyYXBfdXAoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSoKICAgICAg
ICAgRWluYV9Jbmxpc3QqIHRlbXAgPSAqaXRlcmF0b3JTdGFydDsKICAgICAgICAgRXdrX1RpbGVk
X0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbTsKICAgICAgICAgRXZhc19Db29yZCB0aWxlUG9zaXRp
b25YID0gb3JpZ2luWDsKLSAgICAgICAgaW50IGNvdW50MSA9IDA7CisgICAgICAgIGludCBjb2x1
bW4gPSAwOwogCiAgICAgICAgIGZvciAoaXRlcmF0b3JMaXN0ID0gaXRlcmF0b3JTdGFydDsgaXRl
cmF0b3JMaXN0IDwgaXRlcmF0b3JFbmQ7IGl0ZXJhdG9yTGlzdCsrKQogICAgICAgICAgICAgKml0
ZXJhdG9yTGlzdCA9ICooaXRlcmF0b3JMaXN0ICsgMSk7CkBAIC05ODEsOCArOTgxLDggQEAgc3Rh
dGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF91cChFd2tfVGlsZWRf
QmFja2luZ19TdG9yZV9EYXRhKgogICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKHRlbXAsIGl0
ZW0pIHsKICAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXRl
bSwgdGlsZVBvc2l0aW9uWCwgdGlsZVBvc2l0aW9uWSk7CiAgICAgICAgICAgICB0aWxlUG9zaXRp
b25YICs9IHRpbGVXaWR0aDsKLSAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9p
dGVtX2ZpbGwocHJpdiwgaXRlbSwgY291bnQxLCBsYXN0Um93KTsKLSAgICAgICAgICAgIGNvdW50
MSsrOworICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fZmlsbChwcml2
LCBpdGVtLCBjb2x1bW4sIGxhc3RSb3cpOworICAgICAgICAgICAgY29sdW1uKys7CiAgICAgICAg
IH0KICAgICAgICAgdGlsZVBvc2l0aW9uWSArPSB0aWxlSGVpZ2h0OwogICAgIH0KQEAgLTEwMTks
NyArMTAxOSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3dy
YXBfZG93bihFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAgICAgICAgIEVpbmFfSW5saXN0
KiB0ZW1wID0gKml0ZXJhdG9yU3RhcnQ7CiAgICAgICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3Jl
X0l0ZW0qIGl0ZW07CiAgICAgICAgIEV2YXNfQ29vcmQgdGlsZVBvc2l0aW9uWCA9IG9yaWdpblg7
Ci0gICAgICAgIGludCBjb3VudDEgPSAwOworICAgICAgICBpbnQgY29sdW1uID0gMDsKIAogICAg
ICAgICBmb3IgKGl0ZXJhdG9yTGlzdCA9IGl0ZXJhdG9yU3RhcnQ7IGl0ZXJhdG9yTGlzdCA+IGl0
ZXJhdG9yRW5kOyBpdGVyYXRvckxpc3QtLSkKICAgICAgICAgICAgICppdGVyYXRvckxpc3QgPSAq
KGl0ZXJhdG9yTGlzdCAtIDEpOwpAQCAtMTAyOSw4ICsxMDI5LDggQEAgc3RhdGljIHZvaWQgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF9kb3duKEV3a19UaWxlZF9CYWNraW5nX1N0
b3JlX0RhdGEKICAgICAgICAgRUlOQV9JTkxJU1RfRk9SRUFDSCh0ZW1wLCBpdGVtKSB7CiAgICAg
ICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0ZW0sIHRpbGVQb3Np
dGlvblgsIHRpbGVQb3NpdGlvblkpOwogICAgICAgICAgICAgdGlsZVBvc2l0aW9uWCArPSB0aWxl
V2lkdGg7Ci0gICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKHBy
aXYsIGl0ZW0sIGNvdW50MSwgMCk7Ci0gICAgICAgICAgICBjb3VudDErKzsKKyAgICAgICAgICAg
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2ZpbGwocHJpdiwgaXRlbSwgY29sdW1uLCAw
KTsKKyAgICAgICAgICAgIGNvbHVtbisrOwogICAgICAgICB9CiAgICAgICAgIHRpbGVQb3NpdGlv
blkgLT0gdGlsZUhlaWdodDsKICAgICB9CkBAIC0xMDQxLDIyICsxMDQxLDIyIEBAIHN0YXRpYyB2
b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBfZG93bihFd2tfVGlsZWRfQmFj
a2luZ19TdG9yZV9EYXRhCiAgKiBAaW50ZXJuYWwKICAqIE1vdmUgbGVmdC1tb3N0IChmaXJzdCkg
Y29sdW1uIHJpZ2h0IGFzIGxhc3QgKHJpZ2h0LW1vc3QpLgogICoKLSAqIFRoZSBmaW5hbCByZXN1
bHQgaXMgdmlzdWFsbHkgdGhlIHNhbWUsIGJ1dCBsb2dpY2FsbHkgdGhlIGZpcnN0IGNvbCB0aGF0
CisgKiBUaGUgZmluYWwgcmVzdWx0IGlzIHZpc3VhbGx5IHRoZSBzYW1lLCBidXQgbG9naWNhbGx5
IHRoZSBmaXJzdCBjb2x1bW4gdGhhdAogICogd2VudCBvdXQgb2Ygc2NyZWVuIGlzIG5vdyBhdCBs
YXN0IGFuZCBmaWxsZWQgd2l0aCBuZXcgbW9kZWwgaXRlbXMuCiAgKgogICogVGhpcyBpcyB3b3J0
aCBqdXN0IHdoZW4gQGEgY291bnQgaXMgc21hbGxlciB0aGFuIEBjCi0gKiBwcml2LT52aWV3LmNv
bHMsIGFmdGVyIHRoYXQgb25lIGlzIHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0Cisg
KiBwcml2LT52aWV3LmNvbHVtbnMsIGFmdGVyIHRoYXQgb25lIGlzIHJlZmlsbGluZyB0aGUgd2hv
bGUgbWF0cml4IHNvIGl0CiAgKiBpcyBiZXR0ZXIgdG8gdHJpZ2dlciBmdWxsIHJlZmlsbC4KICAq
CiAgKiBAcGFyYW0gY291bnQgdGhlIG51bWJlciBvZiB0aW1lcyB0byByZXBlYXQgdGhlIHByb2Nl
c3MuCiAgKi8KIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBf
bGVmdChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2LCBFdmFzX0Nvb3JkIHgsIEV2
YXNfQ29vcmQgeSwgdW5zaWduZWQgaW50IGNvdW50KQogewotICAgIHVuc2lnbmVkIGludCByb3cs
IGxhc3RDb2x1bW4gPSBwcml2LT52aWV3LmNvbHMgLSAxOworICAgIHVuc2lnbmVkIGludCByb3cs
IGxhc3RDb2x1bW4gPSBwcml2LT52aWV3LmNvbHVtbnMgLSAxOwogICAgIEV2YXNfQ29vcmQgdGls
ZVdpZHRoID0gcHJpdi0+dmlldy50aWxlLndpZHRoOwogICAgIEV2YXNfQ29vcmQgdGlsZUhlaWdo
dCA9IHByaXYtPnZpZXcudGlsZS5oZWlnaHQ7CiAgICAgRXZhc19Db29yZCBvZmZzZXRYID0gcHJp
di0+dmlldy5vZmZzZXQuYmFzZS54ICsgY291bnQgKiB0aWxlV2lkdGg7Ci0gICAgRXZhc19Db29y
ZCBveSA9IHkgKyBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnk7CisgICAgRXZhc19Db29yZCBvZmZz
ZXRZID0geSArIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueTsKICAgICBFaW5hX0lubGlzdCoqIGl0
ZXJhdG9yOwogICAgIEVpbmFfSW5saXN0KiogaXRlcmF0b3JFbmQ7CiAgICAgdW5zaWduZWQgaW50
IGJhc2VDb2x1bW4gPSBsYXN0Q29sdW1uIC0gY291bnQgKyAxOwpAQCAtMTA3NywxMCArMTA3Nywx
MCBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld193cmFwX2xlZnQo
RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YQogICAgICAgICAgICAgaXQgPSBFSU5BX0lOTElT
VF9DT05UQUlORVJfR0VUKCppdGVyYXRvciwgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSk7
CiAgICAgICAgICAgICAqaXRlcmF0b3IgPSBlaW5hX2lubGlzdF9kZW1vdGUoKml0ZXJhdG9yLCAq
aXRlcmF0b3IpOwogCi0gICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9t
b3ZlKGl0LCB0aWxlUG9zaXRpb25YLCBveSk7CisgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfaXRlbV9tb3ZlKGl0LCB0aWxlUG9zaXRpb25YLCBvZmZzZXRZKTsKICAgICAgICAg
ICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2ZpbGwocHJpdiwgaXQsIGNvbHVtbiwg
cm93KTsKICAgICAgICAgfQotICAgICAgICBveSArPSB0aWxlSGVpZ2h0OworICAgICAgICBvZmZz
ZXRZICs9IHRpbGVIZWlnaHQ7CiAgICAgfQogCiAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54
ID0gb2Zmc2V0WDsKQEAgLTEwOTAsMTEgKzEwOTAsMTEgQEAgc3RhdGljIHZvaWQgX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF9sZWZ0KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0Rh
dGEKICAqIEBpbnRlcm5hbAogICogTW92ZSByaWdodC1tb3N0IChsYXN0KSBjb2x1bW4gbGVmdCBh
cyBmaXJzdCAobGVmdC1tb3N0KS4KICAqCi0gKiBUaGUgZmluYWwgcmVzdWx0IGlzIHZpc3VhbGx5
IHRoZSBzYW1lLCBidXQgbG9naWNhbGx5IHRoZSBsYXN0IGNvbCB0aGF0CisgKiBUaGUgZmluYWwg
cmVzdWx0IGlzIHZpc3VhbGx5IHRoZSBzYW1lLCBidXQgbG9naWNhbGx5IHRoZSBsYXN0IGNvbHVt
biB0aGF0CiAgKiB3ZW50IG91dCBvZiBzY3JlZW4gaXMgbm93IGF0IGZpcnN0IGFuZCBmaWxsZWQg
d2l0aCBuZXcgbW9kZWwgaXRlbXMuCiAgKgogICogVGhpcyBpcyB3b3J0aCBqdXN0IHdoZW4gQGEg
Y291bnQgaXMgc21hbGxlciB0aGFuIEBjCi0gKiBwcml2LT52aWV3LmNvbHMsIGFmdGVyIHRoYXQg
b25lIGlzIHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CisgKiBwcml2LT52aWV3LmNv
bHVtbnMsIGFmdGVyIHRoYXQgb25lIGlzIHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0
CiAgKiBpcyBiZXR0ZXIgdG8gdHJpZ2dlciBmdWxsIHJlZmlsbC4KICAqCiAgKiBAcGFyYW0gY291
bnQgdGhlIG51bWJlciBvZiB0aW1lcyB0byByZXBlYXQgdGhlIHByb2Nlc3MuCkBAIC0xMTM4LDcg
KzExMzgsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19yZWZp
bGwoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcAogewogICAgIEVpbmFfSW5saXN0Kiog
aXRlcmF0b3IsICoqaXRlcmF0b3JFbmQ7CiAgICAgRXZhc19Db29yZCBiYXNlVGlsZVBvc2l0aW9u
WCwgdGlsZVBvc2l0aW9uWSwgdGlsZVdpZHRoLCB0aWxlSGVpZ2h0OwotICAgIHVuc2lnbmVkIGlu
dCByOworICAgIHVuc2lnbmVkIGludCByb3c7CiAKICAgICBldmFzX29iamVjdF9tb3ZlKHByaXYt
PmJhc2UuY2xpcHBlciwgeCwgeSk7CiAKQEAgLTExNTAsMTkgKzExNTAsMTkgQEAgc3RhdGljIHZv
aWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfcmVmaWxsKEV3a19UaWxlZF9CYWNraW5n
X1N0b3JlX0RhdGEqIHAKIAogICAgIGl0ZXJhdG9yID0gcHJpdi0+dmlldy5pdGVtczsKICAgICBp
dGVyYXRvckVuZCA9IGl0ZXJhdG9yICsgcHJpdi0+dmlldy5yb3dzOwotICAgIHIgPSAwOworICAg
IHJvdyA9IDA7CiAKICAgICBwcml2LT5tb2RlbC5iYXNlLmNvbHVtbiAtPSBzdGVwWDsKICAgICBw
cml2LT5tb2RlbC5iYXNlLnJvdyAtPSBzdGVwWTsKIAotICAgIGZvciAoOyBpdGVyYXRvciA8IGl0
ZXJhdG9yRW5kOyBpdGVyYXRvcisrLCByKyspIHsKKyAgICBmb3IgKDsgaXRlcmF0b3IgPCBpdGVy
YXRvckVuZDsgaXRlcmF0b3IrKywgcm93KyspIHsKICAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdf
U3RvcmVfSXRlbSogaXRlbTsKICAgICAgICAgRXZhc19Db29yZCBuZXdUaWxlUG9zaXRpb25YID0g
YmFzZVRpbGVQb3NpdGlvblg7Ci0gICAgICAgIHVuc2lnbmVkIGludCBjb3VudCA9IDA7CisgICAg
ICAgIHVuc2lnbmVkIGludCBjb2x1bW4gPSAwOwogICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNI
KCppdGVyYXRvciwgaXRlbSkgewotICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X2l0ZW1fZmlsbChwcml2LCBpdGVtLCBjb3VudCwgcik7CisgICAgICAgICAgICBfZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKHByaXYsIGl0ZW0sIGNvbHVtbiwgcm93KTsKICAgICAg
ICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXRlbSwgbmV3VGlsZVBv
c2l0aW9uWCwgdGlsZVBvc2l0aW9uWSk7Ci0gICAgICAgICAgICBjb3VudCsrOworICAgICAgICAg
ICAgY29sdW1uKys7CiAgICAgICAgICAgICBuZXdUaWxlUG9zaXRpb25YICs9IHRpbGVXaWR0aDsK
ICAgICAgICAgfQogICAgICAgICB0aWxlUG9zaXRpb25ZICs9IHRpbGVIZWlnaHQ7CkBAIC0xMTg1
LDExICsxMTg1LDExIEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3
X3Bvc19hcHBseShFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAgICAgaXRlcmF0b3IgPSBw
cml2LT52aWV3Lml0ZW1zOwogICAgIGl0ZXJhdG9yRW5kID0gaXRlcmF0b3IgKyBwcml2LT52aWV3
LnJvd3M7CiAgICAgZm9yICg7IGl0ZXJhdG9yIDwgaXRlcmF0b3JFbmQ7IGl0ZXJhdG9yKyspIHsK
LSAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXQ7Ci0gICAgICAgIEV2YXNf
Q29vcmQgb3ggPSBiYXNlVGlsZVBvc2l0aW9uWDsKLSAgICAgICAgRUlOQV9JTkxJU1RfRk9SRUFD
SCgqaXRlcmF0b3IsIGl0KSB7Ci0gICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
aXRlbV9tb3ZlKGl0LCBveCwgYmFzZVRpbGVQb3NpdGlvblkpOwotICAgICAgICAgICAgb3ggKz0g
dGlsZVdpZHRoOworICAgICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVtOwor
ICAgICAgICBFdmFzX0Nvb3JkIG9mZnNldFggPSBiYXNlVGlsZVBvc2l0aW9uWDsKKyAgICAgICAg
RUlOQV9JTkxJU1RfRk9SRUFDSCgqaXRlcmF0b3IsIGl0ZW0pIHsKKyAgICAgICAgICAgIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXRlbSwgb2Zmc2V0WCwgYmFzZVRpbGVQb3Np
dGlvblkpOworICAgICAgICAgICAgb2Zmc2V0WCArPSB0aWxlV2lkdGg7CiAgICAgICAgIH0KICAg
ICAgICAgYmFzZVRpbGVQb3NpdGlvblkgKz0gdGlsZUhlaWdodDsKICAgICB9CkBAIC0xMTk3LDI4
ICsxMTk3LDI4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bv
c19hcHBseShFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAKIHN0YXRpYyB2b2lkIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGVfb2Zmc2V0X2ZvcmNlKEV3a19UaWxl
ZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYpCiB7Ci0gICAgRXZhc19Db29yZCBkZWx0YVggPSBw
cml2LT52aWV3Lm9mZnNldC5jdXIueCAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54OwotICAgIEV2
YXNfQ29vcmQgZGVsdGFZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgLSBwcml2LT52aWV3Lm9m
ZnNldC5vbGQueTsKKyAgICBFdmFzX0Nvb3JkIGRlbHRhWCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1
cnJlbnQueCAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54OworICAgIEV2YXNfQ29vcmQgZGVsdGFZ
ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLnk7
CiAgICAgRXZhc19Db29yZCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQ7CiAgICAgaW50IHN0ZXBZLCBz
dGVwWDsKIAotICAgIElORigiZXdrQmFja2luZ1N0b3JlJXAsIG9mZnNldDogJSs0ZCwgJSs0ZCAo
JSs0ZCwgJSs0ZCkiLAotICAgICAgICBwcml2LT5zZWxmLCBkZWx0YVgsIGRlbHRhWSwgcHJpdi0+
dmlldy5vZmZzZXQuY3VyLngsIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55KTsKKyAgICBJTkYoImV3
a0JhY2tpbmdTdG9yZT0lcCwgb2Zmc2V0OiAlKzRkLCAlKzRkICglKzRkLCAlKzRkKSIsCisgICAg
ICAgIHByaXYtPnNlbGYsIGRlbHRhWCwgZGVsdGFZLCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
LngsIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSk7CiAKICAgICB0aWxlV2lkdGggPSBwcml2
LT52aWV3LnRpbGUud2lkdGg7CiAgICAgdGlsZUhlaWdodCA9IHByaXYtPnZpZXcudGlsZS5oZWln
aHQ7CiAKLSAgICBsb25nIG5ld0NvbHVtbiA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXIueCAvIHRp
bGVXaWR0aDsKKyAgICBsb25nIG5ld0NvbHVtbiA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
LnggLyB0aWxlV2lkdGg7CiAgICAgc3RlcFggPSBwcml2LT5tb2RlbC5iYXNlLmNvbHVtbiAtIG5l
d0NvbHVtbjsKLSAgICBsb25nIG5ld1JvdyA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXIueSAvIHRp
bGVIZWlnaHQ7CisgICAgbG9uZyBuZXdSb3cgPSAtcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55
IC8gdGlsZUhlaWdodDsKICAgICBzdGVwWSA9IHByaXYtPm1vZGVsLmJhc2Uucm93IC0gbmV3Um93
OwogCi0gICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIu
eDsKLSAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55
OworICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVu
dC54OworICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0gcHJpdi0+dmlldy5vZmZzZXQuY3Vy
cmVudC55OwogICAgIGV2YXNfb2JqZWN0X21vdmUoCiAgICAgICAgIHByaXYtPmNvbnRlbnRzQ2xp
cHBlciwKLSAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggKyBwcml2LT52aWV3LngsCi0g
ICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ICsgcHJpdi0+dmlldy55KTsKKyAgICAgICAg
cHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ICsgcHJpdi0+dmlldy54LAorICAgICAgICBwcml2
LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgKyBwcml2LT52aWV3LnkpOwogCiAgICAgcHJpdi0+dmll
dy5vZmZzZXQuYmFzZS54ICs9IGRlbHRhWCAtIHN0ZXBYICogdGlsZVdpZHRoOwogICAgIHByaXYt
PnZpZXcub2Zmc2V0LmJhc2UueSArPSBkZWx0YVkgLSBzdGVwWSAqIHRpbGVIZWlnaHQ7CkBAIC0x
MjI5LDEzICsxMjI5LDEzIEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9z
bWFydF9jYWxjdWxhdGVfb2Zmc2V0X2ZvcmNlKEV3a19UaWxlZF9CYWNrCiAKIHN0YXRpYyB2b2lk
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGVfb2Zmc2V0KEV3a19UaWxl
ZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYsIEV2YXNfQ29vcmQgeCwgRXZhc19Db29yZCB5KQog
ewotICAgIEV2YXNfQ29vcmQgZGVsdGFYID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggLSBwcml2
LT52aWV3Lm9mZnNldC5vbGQueDsKLSAgICBFdmFzX0Nvb3JkIGRlbHRhWSA9IHByaXYtPnZpZXcu
b2Zmc2V0LmN1ci55IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLnk7CisgICAgRXZhc19Db29yZCBk
ZWx0YVggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggLSBwcml2LT52aWV3Lm9mZnNldC5v
bGQueDsKKyAgICBFdmFzX0Nvb3JkIGRlbHRhWSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQu
eSAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55OwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoLCB0
aWxlSGVpZ2h0OwogICAgIGludCBzdGVwWSwgc3RlcFg7CiAKLSAgICBJTkYoImV3a0JhY2tpbmdT
dG9yZSVwLCBvZmZzZXQ6ICUrNGQsICUrNGQgKCUrNGQsICUrNGQpIiwKLSAgICAgICAgcHJpdi0+
c2VsZiwgZGVsdGFYLCBkZWx0YVksIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54LCBwcml2LT52aWV3
Lm9mZnNldC5jdXIueSk7CisgICAgSU5GKCJld2tCYWNraW5nU3RvcmU9JXAsIG9mZnNldDogJSs0
ZCwgJSs0ZCAoJSs0ZCwgJSs0ZCkiLAorICAgICAgICBwcml2LT5zZWxmLCBkZWx0YVgsIGRlbHRh
WSwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54LCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
LnkpOwogCiAgICAgaWYgKCFkZWx0YVggJiYgIWRlbHRhWSkKICAgICAgICAgcmV0dXJuOwpAQCAt
MTI0MywyMCArMTI0MywyMCBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
c21hcnRfY2FsY3VsYXRlX29mZnNldChFd2tfVGlsZWRfQmFja2luZ19TdAogICAgIHRpbGVXaWR0
aCA9IHByaXYtPnZpZXcudGlsZS53aWR0aDsKICAgICB0aWxlSGVpZ2h0ID0gcHJpdi0+dmlldy50
aWxlLmhlaWdodDsKIAotICAgIGxvbmcgbmV3Q29sID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci54
IC8gdGlsZVdpZHRoOworICAgIGxvbmcgbmV3Q29sID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1cnJl
bnQueCAvIHRpbGVXaWR0aDsKICAgICBzdGVwWCA9IHByaXYtPm1vZGVsLmJhc2UuY29sdW1uIC0g
bmV3Q29sOwotICAgIGxvbmcgbmV3Um93ID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci55IC8gdGls
ZUhlaWdodDsKKyAgICBsb25nIG5ld1JvdyA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnkg
LyB0aWxlSGVpZ2h0OwogICAgIHN0ZXBZID0gcHJpdi0+bW9kZWwuYmFzZS5yb3cgLSBuZXdSb3c7
CiAKLSAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54
OwotICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7
CisgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
Lng7CisgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJy
ZW50Lnk7CiAgICAgZXZhc19vYmplY3RfbW92ZSgKICAgICAgICAgcHJpdi0+Y29udGVudHNDbGlw
cGVyLAotICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCArIHByaXYtPnZpZXcueCwKLSAg
ICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgKyBwcml2LT52aWV3LnkpOworICAgICAgICBw
cml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggKyBwcml2LT52aWV3LngsCisgICAgICAgIHByaXYt
PnZpZXcub2Zmc2V0LmN1cnJlbnQueSArIHByaXYtPnZpZXcueSk7CiAKLSAgICBpZiAoKHN0ZXBY
IDwgMCAmJiBzdGVwWCA8PSAtcHJpdi0+dmlldy5jb2xzKQotICAgICAgICB8fCAoc3RlcFggPiAw
ICYmIHN0ZXBYID49IHByaXYtPnZpZXcuY29scykKKyAgICBpZiAoKHN0ZXBYIDwgMCAmJiBzdGVw
WCA8PSAtcHJpdi0+dmlldy5jb2x1bW5zKQorICAgICAgICB8fCAoc3RlcFggPiAwICYmIHN0ZXBY
ID49IHByaXYtPnZpZXcuY29sdW1ucykKICAgICAgICAgfHwgKHN0ZXBZIDwgMCAmJiBzdGVwWSA8
PSAtcHJpdi0+dmlldy5yb3dzKQogICAgICAgICB8fCAoc3RlcFkgPiAwICYmIHN0ZXBZID49IHBy
aXYtPnZpZXcucm93cykpIHsKIApAQCAtMTI5MSw4ICsxMjkxLDggQEAgc3RhdGljIHZvaWQgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9wb3MoRXdrX1RpbGVkX0JhY2tp
bmdfU3RvcmUKICAgICBwcml2LT52aWV3LnkgPSB5OwogICAgIGV2YXNfb2JqZWN0X21vdmUoCiAg
ICAgICAgIHByaXYtPmNvbnRlbnRzQ2xpcHBlciwKLSAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQu
Y3VyLnggKyBwcml2LT52aWV3LngsCi0gICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ICsg
cHJpdi0+dmlldy55KTsKKyAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ICsgcHJp
di0+dmlldy54LAorICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgKyBwcml2LT52
aWV3LnkpOwogfQogCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZmlsbF9y
ZW5kZXJlcnMoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdikKQEAgLTEzMTQsNyAr
MTMxNCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxj
dWxhdGUoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yCiAgICAgRXZhc19Db29yZCB4LCB5LCB3
aWR0aCwgaGVpZ2h0OwogCiAgICAgZXZhc19vYmplY3RfZ2VvbWV0cnlfZ2V0KGV3a0JhY2tpbmdT
dG9yZSwgJngsICZ5LCAmd2lkdGgsICZoZWlnaHQpOwotICAgIERCRygiZXdrQmFja2luZ1N0b3Jl
JXAgYXQgJWQsJWQgKyAlZHglZCIsIGV3a0JhY2tpbmdTdG9yZSwgeCwgeSwgd2lkdGgsIGhlaWdo
dCk7CisgICAgREJHKCJld2tCYWNraW5nU3RvcmU9JXAgYXQgJWQsJWQgKyAlZHglZCIsIGV3a0Jh
Y2tpbmdTdG9yZSwgeCwgeSwgd2lkdGgsIGhlaWdodCk7CiAKICAgICBQUklWX0RBVEFfR0VUX09S
X1JFVFVSTihld2tCYWNraW5nU3RvcmUsIHByaXYpOwogCkBAIC0xMzgxLDEwICsxMzgxLDEwIEBA
IHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGUoRXZh
c19PYmplY3QqIGV3a0JhY2tpbmdTdG9yCiAgICAgICAgIHx8IHByaXYtPnZpZXcub2Zmc2V0LmJh
c2UueCA8PSAtIHByaXYtPnZpZXcudGlsZS53aWR0aAogICAgICAgICB8fCBwcml2LT52aWV3Lm9m
ZnNldC5iYXNlLnkgPiAwCiAgICAgICAgIHx8IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueSA8PSAt
IHByaXYtPnZpZXcudGlsZS5oZWlnaHQpCi0gICAgICAgIEVSUigiaW5jb3JyZWN0IGJhc2Ugb2Zm
c2V0ICUrNGQsJSs0ZCwgdGlsZT0lZHglZCwgY3VyPSUrNGQsJSs0ZFxuIiwKKyAgICAgICAgRVJS
KCJpbmNvcnJlY3QgYmFzZSBvZmZzZXQgJSs0ZCwlKzRkLCB0aWxlPSVkeCVkLCBjdXJyZW50PSUr
NGQsJSs0ZFxuIiwKICAgICAgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCwgcHJpdi0+
dmlldy5vZmZzZXQuYmFzZS55LAogICAgICAgICAgICAgcHJpdi0+dmlldy50aWxlLndpZHRoLCBw
cml2LT52aWV3LnRpbGUuaGVpZ2h0LAotICAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3Vy
LngsIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55KTsKKyAgICAgICAgICAgIHByaXYtPnZpZXcub2Zm
c2V0LmN1cnJlbnQueCwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55KTsKIAogfQogCkBAIC0x
NDQ4LDggKzE0NDgsOCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0X2ludGVybmFsKEV3a19UaQogICAgIGlmIChwcml2LT5y
ZW5kZXIuZGlzYWJsZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHByaXYtPnZpZXcu
b2Zmc2V0LmN1ci54ID0geDsKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSA9IHk7CisgICAg
cHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ID0geDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5j
dXJyZW50LnkgPSB5OwogCiAgICAgcHJpdi0+Y2hhbmdlZC5vZmZzZXQgPSB0cnVlOwogICAgIF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV9jaGFuZ2VkKHByaXYpOwpAQCAtMTQ1OSwxMCArMTQ1OSwx
MCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVs
bF9vZmZzZXRfc2V0X2ludGVybmFsKEV3a19UaQogCiBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3NldChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0
b3JlLCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSkKIHsKLSAgICBEQkcoImV3a0JhY2tpbmdT
dG9yZSVwLCB4PSVkLCB5PSVkIiwgZXdrQmFja2luZ1N0b3JlLCB4LCB5KTsKKyAgICBEQkcoImV3
a0JhY2tpbmdTdG9yZT0lcCwgeD0lZCwgeT0lZCIsIGV3a0JhY2tpbmdTdG9yZSwgeCwgeSk7CiAK
ICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUsIHByaXYsIGZhbHNl
KTsKLSAgICBpZiAoeCA9PSBwcml2LT52aWV3Lm9mZnNldC5jdXIueCAmJiB5ID09IHByaXYtPnZp
ZXcub2Zmc2V0LmN1ci55KQorICAgIGlmICh4ID09IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQu
eCAmJiB5ID09IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKICAgICByZXR1cm4gX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29m
ZnNldF9zZXRfaW50ZXJuYWwocHJpdiwgeCwgeSk7CkBAIC0xNDcwLDIwICsxNDcwLDIwIEBAIEVp
bmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0KEV2
YXNfT2JqZWN0KiBld2tCYWNraW5nCiAKIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9zY3JvbGxfZnVsbF9vZmZzZXRfYWRkKEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIEV2
YXNfQ29vcmQgZGVsdGFYLCBFdmFzX0Nvb3JkIGRlbHRhWSkKIHsKLSAgICBEQkcoImV3a0JhY2tp
bmdTdG9yZSVwLCBkZWx0YVg9JWQsIGRlbHRhWT0lZCIsIGV3a0JhY2tpbmdTdG9yZSwgZGVsdGFY
LCBkZWx0YVkpOworICAgIERCRygiZXdrQmFja2luZ1N0b3JlPSVwLCBkZWx0YVg9JWQsIGRlbHRh
WT0lZCIsIGV3a0JhY2tpbmdTdG9yZSwgZGVsdGFYLCBkZWx0YVkpOwogCiAgICAgUFJJVl9EQVRB
X0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2LCBmYWxzZSk7CiAgICAgaWYgKCFk
ZWx0YVggJiYgIWRlbHRhWSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXRfaW50ZXJuYWwKLSAg
ICAgICAgICAgICAgIChwcml2LCBwcml2LT52aWV3Lm9mZnNldC5jdXIueCArIGRlbHRhWCwgcHJp
di0+dmlldy5vZmZzZXQuY3VyLnkgKyBkZWx0YVkpOworICAgICAgICAgICAgICAgKHByaXYsIHBy
aXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCArIGRlbHRhWCwgcHJpdi0+dmlldy5vZmZzZXQuY3Vy
cmVudC55ICsgZGVsdGFZKTsKIH0KIAogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfem9vbV9zZXRfaW50ZXJuYWwoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSog
cHJpdiwgZmxvYXQqIHpvb20sIEV2YXNfQ29vcmQgY3VycmVudFgsIEV2YXNfQ29vcmQgY3VycmVu
dFksIEV2YXNfQ29vcmQqIG9mZnNldFgsIEV2YXNfQ29vcmQqIG9mZnNldFkpCiB7Ci0gICAgKm9m
ZnNldFggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueDsKLSAgICAqb2Zmc2V0WSA9IHByaXYtPnZp
ZXcub2Zmc2V0LmN1ci55OworICAgICpvZmZzZXRYID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVu
dC54OworICAgICpvZmZzZXRZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55OwogCiAgICAg
aWYgKGZhYnNmKHByaXYtPnZpZXcudGlsZS56b29tIC0gKnpvb20pIDwgem9vbVN0ZXBNaW5pbXVt
KSB7CiAgICAgICAgIERCRygiaWdub3JlZCBhcyB6b29tIGRpZmZlcmVuY2UgaXMgPCAlZjogJWYi
LApAQCAtMTUxNCwxMCArMTUxNCwxMCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV96b29tX3NldF9pbnRlcm5hbChFd2tfVGlsZWRfQmFja2luZ19TdAogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRvciwgKippdGVy
YXRvckVuZDsKLSAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdDsKKyAgICBFd2tf
VGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVtOwogCi0gICAgRXZhc19Db29yZCBuZXdYID0g
Y3VycmVudFggKyAocHJpdi0+dmlldy5vZmZzZXQuY3VyLnggLSBjdXJyZW50WCkgKiBzY2FsZTsK
LSAgICBFdmFzX0Nvb3JkIG5ld1kgPSBjdXJyZW50WSArIChwcml2LT52aWV3Lm9mZnNldC5jdXIu
eSAtIGN1cnJlbnRZKSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3WCA9IGN1cnJlbnRYICsg
KHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAtIGN1cnJlbnRYKSAqIHNjYWxlOworICAgIEV2
YXNfQ29vcmQgbmV3WSA9IGN1cnJlbnRZICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSAt
IGN1cnJlbnRZKSAqIHNjYWxlOwogCiAgICAgRXZhc19Db29yZCBtb2RlbFdpZHRoID0gcHJpdi0+
bW9kZWwud2lkdGggKiBzY2FsZTsKICAgICBFdmFzX0Nvb3JkIG1vZGVsSGVpZ2h0ID0gcHJpdi0+
bW9kZWwuaGVpZ2h0ICogc2NhbGU7CkBAIC0xNTQxLDE1ICsxNTQxLDE1IEBAIHN0YXRpYyBFaW5h
X0Jvb2wgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fc2V0X2ludGVybmFsKEV3a19UaWxl
ZF9CYWNraW5nX1N0CiAgICAgcHJpdi0+Y2hhbmdlZC5tb2RlbCA9IHRydWU7CiAgICAgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX2NoYW5nZWQocHJpdik7CiAKLSAgICBwcml2LT52aWV3Lm9mZnNl
dC5jdXIueCA9IG5ld1g7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgPSBuZXdZOworICAg
IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCA9IG5ld1g7CisgICAgcHJpdi0+dmlldy5vZmZz
ZXQuY3VycmVudC55ID0gbmV3WTsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSBiYXNl
WDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnkgPSBiYXNlWTsKIAotICAgIHByaXYtPnZp
ZXcub2Zmc2V0Lm9sZC54ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLng7Ci0gICAgcHJpdi0+dmll
dy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueTsKLSAgICAqb2Zmc2V0WCA9
IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAgICpvZmZzZXRZID0gcHJpdi0+dmlldy5vZmZz
ZXQuY3VyLnk7CisgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNl
dC5jdXJyZW50Lng7CisgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9m
ZnNldC5jdXJyZW50Lnk7CisgICAgKm9mZnNldFggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
Lng7CisgICAgKm9mZnNldFkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAKICAgICBl
dmFzX29iamVjdF9tb3ZlKAogICAgICAgICBwcml2LT5jb250ZW50c0NsaXBwZXIsCkBAIC0xNTY4
LDkgKzE1NjgsOSBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96
b29tX3NldF9pbnRlcm5hbChFd2tfVGlsZWRfQmFja2luZ19TdAogICAgICAgICBFdmFzX0Nvb3Jk
IHRpbGVQb3NpdGlvblggPSBiYXNlVGlsZVBvc2l0aW9uWDsKICAgICAgICAgRWluYV9Jbmxpc3Qq
IGxzdCA9ICppdGVyYXRvcjsKIAotICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKGxzdCwgaXQp
IHsKLSAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXQsIHRp
bGVQb3NpdGlvblgsIHRpbGVQb3NpdGlvblkpOwotICAgICAgICAgICAgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX2l0ZW1fcmVzaXplKGl0LCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQpOworICAgICAg
ICBFSU5BX0lOTElTVF9GT1JFQUNIKGxzdCwgaXRlbSkgeworICAgICAgICAgICAgX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX2l0ZW1fbW92ZShpdGVtLCB0aWxlUG9zaXRpb25YLCB0aWxlUG9zaXRp
b25ZKTsKKyAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Jlc2l6ZShp
dGVtLCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQpOwogICAgICAgICAgICAgdGlsZVBvc2l0aW9uWCAr
PSB0aWxlV2lkdGg7CiAgICAgICAgIH0KICAgICAgICAgdGlsZVBvc2l0aW9uWSArPSB0aWxlSGVp
Z2h0OwpAQCAtMTU4MSw3ICsxNTgxLDcgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfem9vbV9zZXRfaW50ZXJuYWwoRXdrX1RpbGVkX0JhY2tpbmdfU3QKIAogRWlu
YV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fc2V0KEV2YXNfT2JqZWN0KiBld2tC
YWNraW5nU3RvcmUsIGZsb2F0KiB6b29tLCBFdmFzX0Nvb3JkIGN1cnJlbnRYLCBFdmFzX0Nvb3Jk
IGN1cnJlbnRZLCBFdmFzX0Nvb3JkKiBvZmZzZXRYLCBFdmFzX0Nvb3JkKiBvZmZzZXRZKQogewot
ICAgIERCRygiZXdrQmFja2luZ1N0b3JlJXAsIHpvb209JWYiLCBld2tCYWNraW5nU3RvcmUsICp6
b29tKTsKKyAgICBEQkcoImV3a0JhY2tpbmdTdG9yZT0lcCwgem9vbT0lZiIsIGV3a0JhY2tpbmdT
dG9yZSwgKnpvb20pOwogCiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0
b3JlLCBwcml2LCBmYWxzZSk7CiAKQEAgLTE1OTAsNyArMTU5MCw3IEBAIEVpbmFfQm9vbCBld2tf
dGlsZWRfYmFja2luZ19zdG9yZV96b29tX3NldChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3Jl
LCBmbG9hdCoKIAogRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fd2Vha19z
ZXQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgZmxvYXQgem9vbSwgRXZhc19Db29yZCBj
dXJyZW50WCwgRXZhc19Db29yZCBjdXJyZW50WSkKIHsKLSAgICBEQkcoImV3a0JhY2tpbmdTdG9y
ZSVwLCB6b29tPSVmIiwgZXdrQmFja2luZ1N0b3JlLCB6b29tKTsKKyAgICBEQkcoImV3a0JhY2tp
bmdTdG9yZT0lcCwgem9vbT0lZiIsIGV3a0JhY2tpbmdTdG9yZSwgem9vbSk7CiAgICAgUFJJVl9E
QVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2LCBmYWxzZSk7CiAgICAgaWYg
KCFwcml2LT52aWV3LndpZHRoIHx8ICFwcml2LT52aWV3LmhlaWdodCkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtMTYxMyw4ICsxNjEzLDggQEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5n
X3N0b3JlX3pvb21fd2Vha19zZXQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgZmwKIAog
ICAgIGludCB2cm93cyA9IHN0YXRpY19jYXN0PGludD4oY2VpbChwcml2LT52aWV3LmhlaWdodCAv
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVIZWlnaHQpKSArIDEpOwogICAgIGludCB2Y29scyA9IHN0
YXRpY19jYXN0PGludD4oY2VpbChwcml2LT52aWV3LndpZHRoIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+
KHRpbGVXaWR0aCkpICsgMSk7Ci0gICAgRXZhc19Db29yZCBuZXdYID0gY3VycmVudFggKyAocHJp
di0+dmlldy5vZmZzZXQuY3VyLnggLSBjdXJyZW50WCkgKiBzY2FsZTsKLSAgICBFdmFzX0Nvb3Jk
IG5ld1kgPSBjdXJyZW50WSArIChwcml2LT52aWV3Lm9mZnNldC5jdXIueSAtIGN1cnJlbnRZKSAq
IHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3WCA9IGN1cnJlbnRYICsgKHByaXYtPnZpZXcub2Zm
c2V0LmN1cnJlbnQueCAtIGN1cnJlbnRYKSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3WSA9
IGN1cnJlbnRZICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSAtIGN1cnJlbnRZKSAqIHNj
YWxlOwogICAgIEV2YXNfQ29vcmQgYmFzZVggPSBuZXdYICUgdGlsZVdpZHRoOwogICAgIEV2YXNf
Q29vcmQgYmFzZVkgPSBuZXdZICUgdGlsZUhlaWdodDsKICAgICB1bnNpZ25lZCBsb25nIGJhc2VS
b3cgPSAtbmV3WSAvIHRpbGVIZWlnaHQ7CkBAIC0xNjI2LDcgKzE2MjYsNyBAQCBFaW5hX0Jvb2wg
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV93ZWFrX3NldChFdmFzX09iamVjdCogZXdrQmFj
a2luZ1N0b3JlLCBmbAogICAgICAgICByZUNhbGN1bGF0ZSA9IHRydWU7CiAgICAgfQogCi0gICAg
aWYgKHZyb3dzID4gcHJpdi0+dmlldy5yb3dzIHx8IHZjb2xzID4gcHJpdi0+dmlldy5jb2xzKQor
ICAgIGlmICh2cm93cyA+IHByaXYtPnZpZXcucm93cyB8fCB2Y29scyA+IHByaXYtPnZpZXcuY29s
dW1ucykKICAgICAgICAgcmVDYWxjdWxhdGUgPSB0cnVlOwogCiAgICAgaWYgKHJlQ2FsY3VsYXRl
KSB7CkBAIC0xNjY3LDggKzE2NjcsOCBAQCB2b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2Zp
eF9vZmZzZXRzKEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIEV2YXNfQ29vcgogICAgIFBS
SVZfREFUQV9HRVRfT1JfUkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdik7CiAgICAgRWluYV9J
bmxpc3QqKiBpdGVyYXRvciwgKippdGVyYXRvckVuZDsKICAgICBFd2tfVGlsZWRfQmFja2luZ19T
dG9yZV9JdGVtKiBpdGVtOwotICAgIEV2YXNfQ29vcmQgbmV3WCA9IHByaXYtPnZpZXcub2Zmc2V0
LmN1ci54OwotICAgIEV2YXNfQ29vcmQgbmV3WSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55Owor
ICAgIEV2YXNfQ29vcmQgbmV3WCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueDsKKyAgICBF
dmFzX0Nvb3JkIG5ld1kgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAgICAgRXZhc19D
b29yZCBiYXNlWCA9IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueDsKICAgICBFdmFzX0Nvb3JkIGJh
c2VZID0gcHJpdi0+dmlldy5vZmZzZXQuYmFzZS55OwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRo
ID0gcHJpdi0+dmlldy50aWxlLndpZHRoOwpAQCAtMTY5Niw4ICsxNjk2LDggQEAgdm9pZCBld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9maXhfb2Zmc2V0cyhFdmFzX09iamVjdCogZXdrQmFja2luZ1N0
b3JlLCBFdmFzX0Nvb3IKICAgICAgICAgcHJpdi0+bW9kZWwuYmFzZS5yb3cgPSAtbmV3WSAvIHRp
bGVIZWlnaHQ7CiAgICAgfQogCi0gICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggPSBuZXdYOwot
ICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ID0gbmV3WTsKKyAgICBwcml2LT52aWV3Lm9mZnNl
dC5jdXJyZW50LnggPSBuZXdYOworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSA9IG5l
d1k7CiAgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnggPSBuZXdYOwogICAgIHByaXYtPnZpZXcu
b2Zmc2V0Lm9sZC55ID0gbmV3WTsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSBiYXNl
WDsKQEAgLTE4MTUsOCArMTgxNSw4IEBAIHZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZmx1
c2goRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKICAgICBQUklWX0RBVEFfR0VUX09SX1JF
VFVSTihld2tCYWNraW5nU3RvcmUsIHByaXYpOwogICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSog
dGlsZVVudXNlZENhY2hlID0gMDsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ID0gMDsK
LSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSA9IDA7CisgICAgcHJpdi0+dmlldy5vZmZzZXQu
Y3VycmVudC54ID0gMDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgPSAwOwogICAg
IHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54ID0gMDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQu
eSA9IDA7CiAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ID0gMDsKQEAgLTE5NTYsNyArMTk1
Niw3IEBAIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lv
bihFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlCiB7CiAgICAgUFJJVl9EQVRBX0dFVF9PUl9S
RVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2LCBmYWxzZSk7CiAgICAgRWluYV9UaWxlX0dyaWRf
U2xpY2VyIHNsaWNlcjsKLSAgICBjb25zdCBFaW5hX1RpbGVfR3JpZF9JbmZvKiBpbmZvOworICAg
IGNvbnN0IEVpbmFfVGlsZV9HcmlkX0luZm8qIGdyaWRJbmZvOwogICAgIEV2YXNfQ29vcmQgdGls
ZVdpZHRoLCB0aWxlSGVpZ2h0OwogICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNl
ZENhY2hlOwogCkBAIC0xOTcwLDEwICsxOTcwLDEwIEBAIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lvbihFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3Jl
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICB3aGlsZSAoZWluYV90aWxlX2dy
aWRfc2xpY2VyX25leHQoJnNsaWNlciwgJmluZm8pKSB7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVk
IGxvbmcgYyA9IGluZm8tPmNvbDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyByID0gaW5m
by0+cm93OwotICAgICAgICBpZiAoIV9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVy
X3JlcXVlc3RfYWRkKHByaXYsIGMsIHIsIHpvb20pKQorICAgIHdoaWxlIChlaW5hX3RpbGVfZ3Jp
ZF9zbGljZXJfbmV4dCgmc2xpY2VyLCAmZ3JpZEluZm8pKSB7CisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIGxvbmcgY29sdW1uID0gZ3JpZEluZm8tPmNvbDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQg
bG9uZyByb3cgPSBncmlkSW5mby0+cm93OworICAgICAgICBpZiAoIV9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfYWRkKHByaXYsIGNvbHVtbiwgcm93LCB6b29tKSkK
ICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtMTk5Nyw3ICsxOTk3LDcgQEAgRWluYV9C
b29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVsYXRpdmVfcmFkaXVzKEV2
YXNfT2JqZWN0KiBld2tCYWMKICAgICBlbmRSb3cgPSBzdGQ6Om1pbihwcml2LT5tb2RlbC5jdXJy
ZW50LnJvd3MgLSAxLAogICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5tb2RlbC5iYXNlLnJv
dyArIHByaXYtPnZpZXcucm93cyArIG4gLSAxKTsKICAgICBlbmRDb2wgPSBzdGQ6Om1pbihwcml2
LT5tb2RlbC5jdXJyZW50LmNvbHVtbnMgLSAxLAotICAgICAgICAgICAgICAgICAgICAgICBwcml2
LT5tb2RlbC5iYXNlLmNvbHVtbiArIHByaXYtPnZpZXcuY29scyArIG4gLSAxKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgcHJpdi0+bW9kZWwuYmFzZS5jb2x1bW4gKyBwcml2LT52aWV3LmNvbHVt
bnMgKyBuIC0gMSk7CiAKICAgICBJTkYoInN0YXJ0Um93PSVsdSwgZW5kUm93PSVsdSwgc3RhcnRD
b2w9JWx1LCBlbmRDb2w9JWx1IiwKICAgICAgICAgc3RhcnRSb3csIGVuZFJvdywgc3RhcnRDb2ws
IGVuZENvbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZS5oCmluZGV4IGU5M2NjZjcuLjc0MDNlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5oCkBAIC02NCw3ICs2NCw3IEBAIHN0cnVjdCBf
RXdrX1RpbGVfU3RhdHMgewogc3RydWN0IF9Fd2tfVGlsZSB7CiAgICAgRWluYV9UaWxlciogdXBk
YXRlczsgICAgLyoqPCB1cGRhdGVkL2RpcnR5IGFyZWFzICovCiAgICAgRXdrX1RpbGVfU3RhdHMg
c3RhdHM7ICAgICAgIC8qKjwgdGlsZSB1c2FnZSBzdGF0aXN0aWNzICovCi0gICAgdW5zaWduZWQg
bG9uZyBjb2wsIHJvdzsgLyoqPCB0aWxlIHRpbGUgcG9zaXRpb24gKi8KKyAgICB1bnNpZ25lZCBs
b25nIGNvbHVtbiwgcm93OyAvKio8IHRpbGUgdGlsZSBwb3NpdGlvbiAqLwogICAgIEV2YXNfQ29v
cmQgeCwgeTsgICAgICAgIC8qKjwgdGlsZSBjb29yZGluYXRlIHBvc2l0aW9uICovCiAKICAgICAv
KiogTmV2ZXIgZXZlciBjaGFuZ2UgdGhvc2UgYWZ0ZXIgdGlsZSBpcyBjcmVhdGVkIChyZXNwZWN0
IGNvbnN0ISkgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRf
bWF0cml4LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbWF0cml4LmNwcApp
bmRleCBhYjA2MDQyLi41ZDk5MWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3RpbGVkX21hdHJpeC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxl
ZF9tYXRyaXguY3BwCkBAIC00NCw3ICs0NCw3IEBAIHR5cGVkZWYgc3RydWN0IF9Fd2tfVGlsZV9N
YXRyaXhfRW50cnkgRXdrX1RpbGVfTWF0cml4X0VudHJ5Owogc3RydWN0IF9Fd2tfVGlsZV9NYXRy
aXggewogICAgIEVpbmFfTWF0cml4c3BhcnNlKiBtYXRyaXg7CiAgICAgRWluYV9Jbmxpc3QqIG1h
dHJpY2VzOwotICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsaWVVbnVzZWRDYWNoZTsKKyAg
ICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZTsKICAgICBFdmFzX0NvbG9y
c3BhY2UgY3NwYWNlOwogICAgIHN0cnVjdCB7CiAgICAgICAgIHZvaWQgKCpjYWxsYmFjaykodm9p
ZCogZGF0YSwgRXdrX1RpbGUqIHRpbGUsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiB1cGRhdGUpOwpA
QCAtOTQsNyArOTQsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVfbWF0cml4X2NlbGxfZnJlZSh2
b2lkKiB1c2VyRGF0YSwgdm9pZCogY2VsbERhdGEpCiAgICAgaWYgKCF0aWxlKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRp
bGllVW51c2VkQ2FjaGUpOworICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9mcmVlemUodGlsZU1h
dHJpeC0+dGlsZVVudXNlZENhY2hlKTsKIAogICAgIGlmICh0aWxlLT51cGRhdGVzIHx8IHRpbGUt
PnN0YXRzLmZ1bGxfdXBkYXRlKQogICAgICAgICB0aWxlTWF0cml4LT51cGRhdGVzID0gZWluYV9s
aXN0X3JlbW92ZSh0aWxlTWF0cml4LT51cGRhdGVzLCB0aWxlKTsKQEAgLTEwMiw4ICsxMDIsOCBA
QCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVfbWF0cml4X2NlbGxfZnJlZSh2b2lkKiB1c2VyRGF0YSwg
dm9pZCogY2VsbERhdGEpCiAgICAgaWYgKHRpbGUtPnZpc2libGUpCiAgICAgICAgIEVSUigiZnJl
ZWluZyBjZWxsIHRoYXQgaXMgdmlzaWJsZSwgbGVha2luZyB0aWxlICVwIiwgdGlsZSk7CiAgICAg
ZWxzZSB7Ci0gICAgICAgIGlmICghZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfZ2V0KHRpbGVN
YXRyaXgtPnRpbGllVW51c2VkQ2FjaGUsIHRpbGUpKQotICAgICAgICAgICAgRVJSKCJ0aWxlICVw
IHdhcyBub3QgaW4gY2FjaGUgJXA/IGxlYWtpbmcuLi4iLCB0aWxlLCB0aWxlTWF0cml4LT50aWxp
ZVVudXNlZENhY2hlKTsKKyAgICAgICAgaWYgKCFld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9n
ZXQodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlLCB0aWxlKSkKKyAgICAgICAgICAgIEVSUigi
dGlsZSAlcCB3YXMgbm90IGluIGNhY2hlICVwPyBsZWFraW5nLi4uIiwgdGlsZSwgdGlsZU1hdHJp
eC0+dGlsZVVudXNlZENhY2hlKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBFd2tfVGls
ZV9NYXRyaXhfRW50cnkqIGVudHJ5OwogICAgICAgICAgICAgREJHKCJ0aWxlIGNlbGwgZG9lcyBu
b3QgZXhpc3QgYW55bW9yZSwgZnJlZSBpdCAlcCIsIHRpbGUpOwpAQCAtMTIxLDcgKzEyMSw3IEBA
IHN0YXRpYyB2b2lkIF9ld2tfdGlsZV9tYXRyaXhfY2VsbF9mcmVlKHZvaWQqIHVzZXJEYXRhLCB2
b2lkKiBjZWxsRGF0YSkKICAgICAgICAgfQogICAgIH0KIAotICAgIGV3a190aWxlX3VudXNlZF9j
YWNoZV90aGF3KHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgIGV3a190aWxlX3Vu
dXNlZF9jYWNoZV90aGF3KHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiB9CiAKIC8qIGNh
bGxlZCB3aGVuIGNhY2hlIG9mIHVudXNlZCB0aWxlIGlzIGZsdXNoZWQgKi8KQEAgLTEzNyw3ICsx
MzcsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVfbWF0cml4X3RpbGVfZnJlZSh2b2lkKiBkYXRh
LCBFd2tfVGlsZSogdGlsZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghZWlu
YV9tYXRyaXhzcGFyc2VfY2VsbF9pZHhfZ2V0KGVudHJ5LT5tYXRyaXgsIHRpbGUtPnJvdywgdGls
ZS0+Y29sLCAmY2VsbCkpIHsKKyAgICBpZiAoIWVpbmFfbWF0cml4c3BhcnNlX2NlbGxfaWR4X2dl
dChlbnRyeS0+bWF0cml4LCB0aWxlLT5yb3csIHRpbGUtPmNvbHVtbiwgJmNlbGwpKSB7CiAKICAg
ICAgICAgRVJSKCJyZW1vdmluZyB0aWxlICVwIHRoYXQgd2FzIG5vdCBpbiB0aGUgbWF0cml4PyBM
ZWFraW5nLi4uIiwgdGlsZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTE4NCw3ICsxODQsNyBAQCBz
dGF0aWMgdm9pZCBfZXdrX3RpbGVfbWF0cml4X3RpbGVfZnJlZSh2b2lkKiBkYXRhLCBFd2tfVGls
ZSogdGlsZSkKICAqIGV4aXN0aW5nIHRpbGVzIGFuZCBnaXZlIHRoZW0gYmFjaywgYWxsb3dpbmcg
dGhlbSB0byBiZQogICogZnJlZWQvcmVwbGFjZWQgYnkgdGhlIGNhY2hlLgogICoKLSAqIEBwYXJh
bSB0dWMgY2FjaGUgb2YgdW51c2VkIHRpbGVzIG9yIEBjIDAgdG8gY3JlYXRlIG9uZQorICogQHBh
cmFtIHRpbGVVbnVzZWRDYWNoZSBjYWNoZSBvZiB1bnVzZWQgdGlsZXMgb3IgQGMgMCB0byBjcmVh
dGUgb25lCiAgKiAgICAgICAgYXV0b21hdGljYWxseS4KICAqIEBwYXJhbSBjb2x1bW5zIG51bWJl
ciBvZiBjb2x1bW5zIGluIHRoZSBtYXRyaXguCiAgKiBAcGFyYW0gcm93cyBudW1iZXIgb2Ygcm93
cyBpbiB0aGUgbWF0cml4LgpAQCAtMjExLDEwICsyMTEsMTAgQEAgRXdrX1RpbGVfTWF0cml4KiBl
d2tfdGlsZV9tYXRyaXhfbmV3KEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hl
LCB1bnMKICAgICBld2tfdGlsZV9tYXRyaXhfem9vbV9sZXZlbF9zZXQodGlsZU1hdHJpeCwgem9v
bUxldmVsKTsKIAogICAgIGlmICh0aWxlVW51c2VkQ2FjaGUpCi0gICAgICAgIHRpbGVNYXRyaXgt
PnRpbGllVW51c2VkQ2FjaGUgPSBld2tfdGlsZV91bnVzZWRfY2FjaGVfcmVmKHRpbGVVbnVzZWRD
YWNoZSk7CisgICAgICAgIHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSA9IGV3a190aWxlX3Vu
dXNlZF9jYWNoZV9yZWYodGlsZVVudXNlZENhY2hlKTsKICAgICBlbHNlIHsKLSAgICAgICAgdGls
ZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSA9IGV3a190aWxlX3VudXNlZF9jYWNoZV9uZXcoREVG
QVVMVF9DQUNIRV9TSVpFKTsKLSAgICAgICAgaWYgKCF0aWxlTWF0cml4LT50aWxpZVVudXNlZENh
Y2hlKSB7CisgICAgICAgIHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSA9IGV3a190aWxlX3Vu
dXNlZF9jYWNoZV9uZXcoREVGQVVMVF9DQUNIRV9TSVpFKTsKKyAgICAgICAgaWYgKCF0aWxlTWF0
cml4LT50aWxlVW51c2VkQ2FjaGUpIHsKICAgICAgICAgICAgIEVSUigibm8gY2FjaGUgb2YgdW51
c2VkIHRpbGUhIik7CiAgICAgICAgICAgICBlaW5hX21hdHJpeHNwYXJzZV9mcmVlKHRpbGVNYXRy
aXgtPm1hdHJpeCk7CiAgICAgICAgICAgICBmcmVlKHRpbGVNYXRyaXgpOwpAQCAtMjk4LDcgKzI5
OCw3IEBAIHZvaWQgZXdrX3RpbGVfbWF0cml4X2ZyZWUoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0
cml4KQogCiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4odGlsZU1hdHJpeCk7CiAKLSAg
ICBld2tfdGlsZV91bnVzZWRfY2FjaGVfZnJlZXplKHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2Fj
aGUpOworICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9mcmVlemUodGlsZU1hdHJpeC0+dGlsZVVu
dXNlZENhY2hlKTsKICAgICBld2tfdGlsZV9tYXRyaXhfaW52YWxpZGF0ZSh0aWxlTWF0cml4KTsK
ICAgICBlbnRyeSA9IEVJTkFfSU5MSVNUX0NPTlRBSU5FUl9HRVQodGlsZU1hdHJpeC0+bWF0cmlj
ZXMsIEV3a19UaWxlX01hdHJpeF9FbnRyeSk7CiAgICAgZWluYV9tYXRyaXhzcGFyc2VfZnJlZShl
bnRyeS0+bWF0cml4KTsKQEAgLTMwNiw4ICszMDYsOCBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9m
cmVlKEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCkKICAgICBmcmVlKGVudHJ5KTsKICAgICB0
aWxlTWF0cml4LT5tYXRyaWNlcyA9IDA7CiAKLSAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGhh
dyh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlKTsKLSAgICBld2tfdGlsZV91bnVzZWRfY2Fj
aGVfdW5yZWYodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVfdW51
c2VkX2NhY2hlX3RoYXcodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlKTsKKyAgICBld2tfdGls
ZV91bnVzZWRfY2FjaGVfdW5yZWYodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlKTsKIAogI2lm
ZGVmIERFQlVHX01FTV9MRUFLUwogICAgIHRpbGVzID0gdGlsZU1hdHJpeC0+c3RhdHMudGlsZXMu
YWxsb2NhdGVkIC0gdGlsZU1hdHJpeC0+c3RhdHMudGlsZXMuZnJlZWQ7CkBAIC0zNTUsNyArMzU1
LDcgQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfcmVzaXplKEV3a19UaWxlX01hdHJpeCogdGlsZU1h
dHJpeCwgdW5zaWduZWQgbG9uZyBjb2xzLCB1bnMKIEV3a19UaWxlX1VudXNlZF9DYWNoZSogZXdr
X3RpbGVfbWF0cml4X3VudXNlZF9jYWNoZV9nZXQoY29uc3QgRXdrX1RpbGVfTWF0cml4KiB0aWxl
TWF0cml4KQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTCh0aWxlTWF0cml4
LCAwKTsKLSAgICByZXR1cm4gdGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZTsKKyAgICByZXR1
cm4gdGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlOwogfQogCiAvKioKQEAgLTM5MCw3ICszOTAs
NyBAQCBFd2tfVGlsZSogZXdrX3RpbGVfbWF0cml4X3RpbGVfZXhhY3RfZ2V0KEV3a19UaWxlX01h
dHJpeCogdGlsZU1hdHJpeCwgdW5zaWduZWQgbAogCiBlbmQ6CiAgICAgaWYgKCF0aWxlLT52aXNp
YmxlKSB7Ci0gICAgICAgIGlmICghZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfZ2V0KHRpbGVN
YXRyaXgtPnRpbGllVW51c2VkQ2FjaGUsIHRpbGUpKQorICAgICAgICBpZiAoIWV3a190aWxlX3Vu
dXNlZF9jYWNoZV90aWxlX2dldCh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUsIHRpbGUpKQog
ICAgICAgICAgICAgV1JOKCJFd2tfVGlsZSB3YXMgdW51c2VkIGJ1dCBub3QgaW4gY2FjaGU/IGJ1
ZyEiKTsKICAgICB9CiAKQEAgLTQ1OSw3ICs0NTksNyBAQCBFd2tfVGlsZSogZXdrX3RpbGVfbWF0
cml4X3RpbGVfbmV3KEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCwgRXZhcyogY2FudmFzLCB1
bgogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICB0aWxlLT5jb2wgPSBjb2x1bW47Cisg
ICAgdGlsZS0+Y29sdW1uID0gY29sdW1uOwogICAgIHRpbGUtPnJvdyA9IHJvdzsKICAgICB0aWxl
LT54ID0gY29sdW1uICogdGlsZVdpZHRoOwogICAgIHRpbGUtPnkgPSByb3cgKiB0aWxlSGVpZ2h0
OwpAQCAtNDg2LDcgKzQ4Niw3IEBAIEV3a19UaWxlKiBld2tfdGlsZV9tYXRyaXhfdGlsZV9uZXco
RXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4LCBFdmFzKiBjYW52YXMsIHVuCiAgKiB1bnVzZWQg
Y2FjaGUuCiAgKgogICogQHBhcmFtIHRpbGVNYXRyaXggdGhlIHRpbGUgbWF0cml4IHRvIHJldHVy
biB0aWxlIHRvLgotICogQHBhcmFtIHQgdGhlIHRpbGUgaW5zdGFuY2UgdG8gcmV0dXJuLCBtdXN0
IEBiIG5vdCBiZSBAYyAwLgorICogQHBhcmFtIHRpbGUgdGhlIHRpbGUgaW5zdGFuY2UgdG8gcmV0
dXJuLCBtdXN0IEBiIG5vdCBiZSBAYyAwLgogICogQHBhcmFtIGxhc3RfdXNlZCB0aW1lIGluIHdo
aWNoIHRpbGUud2lkdGhhcyBsYXN0IHVzZWQuCiAgKgogICogQHJldHVybiAjdHJ1ZSBvbiBzdWNj
ZXNzIG9yICNmYWxzZSBvbiBmYWlsdXJlLgpAQCAtNTAwLDcgKzUwMCw3IEBAIEVpbmFfQm9vbCBl
d2tfdGlsZV9tYXRyaXhfdGlsZV9wdXQoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4LCBFd2tf
VGlsZSogdGlsZSwKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICB0aWxlLT5zdGF0cy5sYXN0
X3VzZWQgPSBsYXN0VXNlZDsKLSAgICByZXR1cm4gZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVf
cHV0KHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUsIHRpbGUsIF9ld2tfdGlsZV9tYXRyaXhf
dGlsZV9mcmVlLCB0aWxlTWF0cml4KTsKKyAgICByZXR1cm4gZXdrX3RpbGVfdW51c2VkX2NhY2hl
X3RpbGVfcHV0KHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSwgdGlsZSwgX2V3a190aWxlX21h
dHJpeF90aWxlX2ZyZWUsIHRpbGVNYXRyaXgpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3RpbGVfbWF0
cml4X3RpbGVfdXBkYXRlKEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCwgdW5zaWduZWQgbG9u
ZyBjb2wsIHVuc2lnbmVkIGxvbmcgcm93LCBjb25zdCBFaW5hX1JlY3RhbmdsZSogdXBkYXRlKQpA
QCAtNzA2LDcgKzcwNiw3IEBAIHZvaWQgZXdrX3RpbGVfbWF0cml4X2RiZyhjb25zdCBFd2tfVGls
ZV9NYXRyaXgqIHRpbGVNYXRyaXgpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCJcbiIpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgcHJpbnRmKCIlM2x1LCUzbHUgJTEwcDoiLCBjb2x1bW4s
IHJvdywgdGlsZSk7Ci0gICAgICAgICAgICBwcmludGYoIiBbJTNsdSwlM2x1ICsgJWR4JWQgQCAl
MC4zZl0lYyIsIHRpbGUtPmNvbCwgdGlsZS0+cm93LCB0aWxlLT53aWR0aCwgdGlsZS0+aGVpZ2h0
LCB0aWxlLT56b29tLCB0aWxlLT52aXNpYmxlID8gJyonIDogJyAnKTsKKyAgICAgICAgICAgIHBy
aW50ZigiIFslM2x1LCUzbHUgKyAlZHglZCBAICUwLjNmXSVjIiwgdGlsZS0+Y29sdW1uLCB0aWxl
LT5yb3csIHRpbGUtPndpZHRoLCB0aWxlLT5oZWlnaHQsIHRpbGUtPnpvb20sIHRpbGUtPnZpc2li
bGUgPyAnKicgOiAnICcpOwogICAgICAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtNzE0LDcgKzcxNCw3IEBAIHZvaWQgZXdrX3RpbGVfbWF0cml4X2RiZyhjb25zdCBF
d2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgpCiAgICAgICAgIHByaW50ZigiXG4iKTsKICAgICBl
aW5hX2l0ZXJhdG9yX2ZyZWUoaXRlcmF0b3IpOwogCi0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hl
X2RiZyh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlKTsKKyAgICBld2tfdGlsZV91bnVzZWRf
Y2FjaGVfZGJnKHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiB9CiAKIC8qKgpAQCAtNzMw
LDcgKzczMCw3IEBAIHZvaWQgZXdrX3RpbGVfbWF0cml4X2ZyZWV6ZShFd2tfVGlsZV9NYXRyaXgq
IHRpbGVNYXRyaXgpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4odGlsZU1hdHJp
eCk7CiAgICAgaWYgKCF0aWxlTWF0cml4LT5mcm96ZW4pCi0gICAgICAgIGV3a190aWxlX3VudXNl
ZF9jYWNoZV9mcmVlemUodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgICAgIGV3
a190aWxlX3VudXNlZF9jYWNoZV9mcmVlemUodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlKTsK
ICAgICB0aWxlTWF0cml4LT5mcm96ZW4rKzsKIH0KIApAQCAtNzUwLDUgKzc1MCw1IEBAIHZvaWQg
ZXdrX3RpbGVfbWF0cml4X3RoYXcoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4KQogCiAgICAg
dGlsZU1hdHJpeC0+ZnJvemVuLS07CiAgICAgaWYgKCF0aWxlTWF0cml4LT5mcm96ZW4pCi0gICAg
ICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3KHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2Fj
aGUpOworICAgICAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGhhdyh0aWxlTWF0cml4LT50aWxl
VW51c2VkQ2FjaGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190
aWxlZF9tb2RlbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21vZGVsLmNw
cAppbmRleCA4NDA0OGNiLi44N2ZhODNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3RpbGVkX21vZGVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Rp
bGVkX21vZGVsLmNwcApAQCAtMzQ1LDE2ICszNDUsMTYgQEAgdm9pZCBld2tfdGlsZV91cGRhdGVz
X3Byb2Nlc3MoRXdrX1RpbGUqIHRpbGUsIHZvaWQgKCpjYWxsYmFjaykodm9pZCogZGF0YSwgRXdr
X1QKICAgICAgICAgcmVjdC5oID0gdGlsZS0+aGVpZ2h0OwogI2lmZGVmIFRJTEVfU1RBVFNfQUND
T1VOVF9SRU5ERVJfVElNRQogICAgICAgICBzdHJ1Y3QgdGltZXZhbCB0aW1ldjsKLSAgICAgICAg
ZG91YmxlIHJlbmRlcl9zdGFydDsKKyAgICAgICAgZG91YmxlIHJlbmRlclN0YXJ0VGltZTsKICAg
ICAgICAgZ2V0dGltZW9mZGF5KCZ0aW1ldiwgMCk7Ci0gICAgICAgIHJlbmRlcl9zdGFydGlsZSA9
IChkb3VibGUpdGltZXYudHZfc2VjICsKKyAgICAgICAgcmVuZGVyU3RhcnRUaW1lID0gKGRvdWJs
ZSl0aW1ldi50dl9zZWMgKwogICAgICAgICAgICAgICAgICAgICAgICAoKChkb3VibGUpdGltZXYu
dHZfdXNlYykgLyAxMDAwMDAwKTsKICNlbmRpZgogICAgICAgICBjYWxsYmFjaygodm9pZCopZGF0
YSwgdGlsZSwgJnJlY3QpOwogI2lmZGVmIFRJTEVfU1RBVFNfQUNDT1VOVF9SRU5ERVJfVElNRQog
ICAgICAgICBnZXR0aW1lb2ZkYXkoJnRpbWV2LCAwKTsKICAgICAgICAgdGlsZS0+c3RhdHMucmVu
ZGVyX3RpbWUgPSAoZG91YmxlKXRpbWV2LnR2X3NlYyArCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCgoZG91YmxlKXRpbWV2LnR2X3VzZWMpIC8gMTAwMDAwMCkgLSByZW5kZXJfc3Rh
cnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgoZG91YmxlKXRpbWV2LnR2X3Vz
ZWMpIC8gMTAwMDAwMCkgLSByZW5kZXJTdGFydFRpbWU7CiAjZW5kaWYKICAgICB9IGVsc2UgaWYg
KHRpbGUtPnVwZGF0ZXMpIHsKICAgICAgICAgRWluYV9JdGVyYXRvciogaXRyID0gZWluYV90aWxl
cl9pdGVyYXRvcl9uZXcodGlsZS0+dXBkYXRlcyk7CkBAIC01MjAsNyArNTIwLDcgQEAgdm9pZCBl
d2tfdGlsZV91bnVzZWRfY2FjaGVfY2xlYXIoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51
c2VkQ2FjaGUpCiB9CiAKIC8qKgotICogaGVpZ2h0b2xkIHJlZmVyZW5jZSB0byBjYWNoZS4KKyAq
IEhvbGQgcmVmZXJlbmNlIHRvIGNhY2hlLgogICoKICAqIEByZXR1cm4gc2FtZSBwb2ludGVyIGFz
IHRha2VuLgogICoKQEAgLTYzMCw3ICs2MzAsNyBAQCB2b2lkIGV3a190aWxlX3VudXNlZF9jYWNo
ZV9hdXRvX2ZsdXNoKEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlKQogICog
RnJlZXplIGNhY2hlIHRvIG5vdCBkbyBtYWludGVuYW5jZSB0YXNrcy4KICAqCiAgKiBNYWludGVu
YW5jZSB0YXNrcyBvcHRpbWl6ZSBjYWNoZSB1c2FnZSwgYnV0IG1heWJlIHdlIGtub3cgd2Ugc2hv
dWxkCi0gKiBoZWlnaHRvbGQgb24gdGhlbSB1bnRpbCB3ZSBkbyB0aGUgbGFzdCBvcGVyYXRpb24s
IGluIHRoaXMgY2FzZSB3ZSBmcmVlemUKKyAqIGhvbGQgb24gdGhlbSB1bnRpbCB3ZSBkbyB0aGUg
bGFzdCBvcGVyYXRpb24sIGluIHRoaXMgY2FzZSB3ZSBmcmVlemUKICAqIHdoaWxlIG9wZXJhdGlu
ZyBhbmQgdGhlbiB0aGF3IHdoZW4gd2UncmUgZG9uZS4KICAqCiAgKiBAc2VlIGV3a190aWxlX3Vu
dXNlZF9jYWNoZV90aGF3KCkKQEAgLTcwNyw4ICs3MDcsOCBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVf
dW51c2VkX2NhY2hlX3RpbGVfZ2V0KEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENh
Y2hlLAogICogYmVjYXVzZSB1c3VhbGx5IHdlIHdhbnQgYSBsYXp5IG9wZXJhdGlvbiBmb3IgYmV0
dGVyIHBlcmZvcm1hbmNlLgogICoKICAqIEBwYXJhbSB0aWxlVW51c2VkQ2FjaGUgY2FjaGUgb2Yg
dW51c2VkIHRpbGVzCi0gKiBAcGFyYW0gdCB0aWxlIHRvIGJlIGFkZGVkIHRvIGNhY2hlLgotICog
QHBhcmFtIHRpbGVfZnJlZV9jYiBmdW5jdGlvbiB1c2VkIHRvIGZyZWUgdGlsZXMuCisgKiBAcGFy
YW0gdGlsZSB0aWxlIHRvIGJlIGFkZGVkIHRvIGNhY2hlLgorICogQHBhcmFtIHRpbGVGcmVlQ2Fs
bGJhY2sgZnVuY3Rpb24gdXNlZCB0byBmcmVlIHRpbGVzLgogICogQHBhcmFtIGRhdGEgY29udGV4
dCB0byBnaXZlIGJhY2sgdG8gQGEgdGlsZV9mcmVlX2NiIGFzIGZpcnN0IGFyZ3VtZW50LgogICoK
ICAqIEByZXR1cm4gI3RydWUgb24gc3VjY2VzcywgI2ZhbHNlIG90aGVyd2lzZS4gSWYgQGMgdGls
ZS0+dmlzaWJsZQpAQCAtNzE2LDcgKzcxNiw3IEBAIEVpbmFfQm9vbCBld2tfdGlsZV91bnVzZWRf
Y2FjaGVfdGlsZV9nZXQoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUsCiAg
KgogICogQHNlZSBld2tfdGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCgpCiAgKi8KLUVpbmFf
Qm9vbCBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQoRXdrX1RpbGVfVW51c2VkX0NhY2hl
KiB0aWxlVW51c2VkQ2FjaGUsIEV3a19UaWxlKiB0aWxlLCB2b2lkICgqIHRpbGVGcmVlQ2IpKHZv
aWQqIGRhdGEsIEV3a19UaWxlKiB0aWxlKSwgY29uc3Qgdm9pZCogZGF0YSkKK0VpbmFfQm9vbCBl
d2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxl
VW51c2VkQ2FjaGUsIEV3a19UaWxlKiB0aWxlLCB2b2lkICgqIHRpbGVGcmVlQ2FsbGJhY2spKHZv
aWQqIGRhdGEsIEV3a19UaWxlKiB0aWxlKSwgY29uc3Qgdm9pZCogZGF0YSkKIHsKICAgICBFd2tf
VGlsZV9VbnVzZWRfQ2FjaGVfRW50cnkqIHVudXNlZENhY2hlRW50cnk7CiAKQEAgLTczNyw3ICs3
MzcsNyBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfcHV0KEV3a19UaWxl
X1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlLAogCiAgICAgdW51c2VkQ2FjaGVFbnRyeS0+
dGlsZSA9IHRpbGU7CiAgICAgdW51c2VkQ2FjaGVFbnRyeS0+d2VpZ2h0ID0gMDsgLyogY2FsY3Vs
YXRlZCBqdXN0IGJlZm9yZSBzb3J0ICovCi0gICAgdW51c2VkQ2FjaGVFbnRyeS0+dGlsZV9mcmVl
LmNhbGxiYWNrID0gdGlsZUZyZWVDYjsKKyAgICB1bnVzZWRDYWNoZUVudHJ5LT50aWxlX2ZyZWUu
Y2FsbGJhY2sgPSB0aWxlRnJlZUNhbGxiYWNrOwogICAgIHVudXNlZENhY2hlRW50cnktPnRpbGVf
ZnJlZS5kYXRhID0gKHZvaWQqKWRhdGE7CiAKICAgICB0aWxlVW51c2VkQ2FjaGUtPmVudHJpZXMu
Y291bnQrKzsKQEAgLTc1OCw3ICs3NTgsNyBAQCB2b2lkIGV3a190aWxlX3VudXNlZF9jYWNoZV9k
YmcoY29uc3QgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUpCiAgICAgRUlO
QV9MSVNUX0ZPUkVBQ0godGlsZVVudXNlZENhY2hlLT5lbnRyaWVzLmxpc3QsIGxpc3QsIGl0ZW0p
IHsKICAgICAgICAgY29uc3QgRXdrX1RpbGUqIHRpbGUgPSBzdGF0aWNfY2FzdDxFd2tfVGlsZV9V
bnVzZWRfQ2FjaGVfRW50cnkqPihpdGVtKS0+dGlsZTsKICAgICAgICAgcHJpbnRmKCIgWyUzbHUs
JTNsdSArICVkeCVkIEAgJTAuM2ZdJWMiLAotICAgICAgICAgICAgICAgdGlsZS0+Y29sLCB0aWxl
LT5yb3csIHRpbGUtPndpZHRoLCB0aWxlLT5oZWlnaHQsIHRpbGUtPnpvb20sCisgICAgICAgICAg
ICAgICB0aWxlLT5jb2x1bW4sIHRpbGUtPnJvdywgdGlsZS0+d2lkdGgsIHRpbGUtPmhlaWdodCwg
dGlsZS0+em9vbSwKICAgICAgICAgICAgICAgIHRpbGUtPnZpc2libGUgPyAnKicgOiAnICcpOwog
CiAgICAgICAgIGlmICghKGNvdW50ICUgNCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApp
bmRleCBhNjhiYmFiLi5mZDI1ZjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAg
LTIxNiw1NCArMjE2LDU0IEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICNpZm5k
ZWYgRVdLX1RZUEVfQ0hFQ0sKICNkZWZpbmUgRVdLX1ZJRVdfVFlQRV9DSEVDSyhld2tWaWV3LCAu
Li4pIGRvIHsgfSB3aGlsZSAoMCkKICNlbHNlCi0jZGVmaW5lIEVXS19WSUVXX1RZUEVfQ0hFQ0so
ZXdrVmlldywgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgICAgIGNvbnN0IGNoYXIqIF90bXBfb3R5cGUgPSBldmFzX29iamVj
dF90eXBlX2dldChld2tWaWV3KTsgICAgICAgICAgICAgICBcCi0gICAgICAgIGNvbnN0IEV2YXNf
U21hcnQqIF90bXBfcyA9IGV2YXNfb2JqZWN0X3NtYXJ0X3NtYXJ0X2dldChld2tWaWV3KTsgICAg
ICBcCi0gICAgICAgIGlmIChFSU5BX1VOTElLRUxZKCFfdG1wX3MpKSB7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBFSU5BX0xPR19DUklUICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAg
KCIlcCAoJXMpIGlzIG5vdCBhIHNtYXJ0IG9iamVjdCEiLCBld2tWaWV3LCAgICAgICAgICAgICAg
ICAgICBcCi0gICAgICAgICAgICAgICAgX3RtcF9vdHlwZSA/IF90bXBfb3R5cGUgOiAiKG51bGwp
Iik7ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgfSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKKyNkZWZpbmUgRVdLX1ZJRVdfVFlQRV9DSEVDSyhld2tWaWV3LCAuLi4pIFwKKyAgICBkbyB7
IFwKKyAgICAgICAgY29uc3QgY2hhciogX3RtcF9vdHlwZSA9IGV2YXNfb2JqZWN0X3R5cGVfZ2V0
KGV3a1ZpZXcpOyBcCisgICAgICAgIGNvbnN0IEV2YXNfU21hcnQqIF90bXBfcyA9IGV2YXNfb2Jq
ZWN0X3NtYXJ0X3NtYXJ0X2dldChld2tWaWV3KTsgXAorICAgICAgICBpZiAoRUlOQV9VTkxJS0VM
WSghX3RtcF9zKSkgeyBcCisgICAgICAgICAgICBFSU5BX0xPR19DUklUIFwKKyAgICAgICAgICAg
ICAgICAoIiVwICglcykgaXMgbm90IGEgc21hcnQgb2JqZWN0ISIsIGV3a1ZpZXcsIFwKKyAgICAg
ICAgICAgICAgICBfdG1wX290eXBlID8gX3RtcF9vdHlwZSA6ICIobnVsbCkiKTsgXAorICAgICAg
ICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyBcCisgICAgICAgIH0gXAogICAgICAgICBjb25zdCBF
dmFzX1NtYXJ0X0NsYXNzKiBfdG1wX3NjID0gZXZhc19zbWFydF9jbGFzc19nZXQoX3RtcF9zKTsg
XAotICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWSghX3RtcF9zYykpIHsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgRUlOQV9MT0dfQ1JJVCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICgi
JXAgKCVzKSBpcyBub3QgYSBzbWFydCBvYmplY3QhIiwgZXdrVmlldywgICAgICAgICAgICAgICAg
ICAgXAotICAgICAgICAgICAgICAgIF90bXBfb3R5cGUgPyBfdG1wX290eXBlIDogIihudWxsKSIp
OyAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIH0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgICAgIGlmIChFSU5BX1VOTElLRUxZKF90bXBfc2MtPmRhdGEgIT0gZXdrVmlld1R5cGVT
dHJpbmcpKSB7ICAgICAgICBcCi0gICAgICAgICAgICBFSU5BX0xPR19DUklUICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgKCIl
cCAoJXMpIGlzIG5vdCBvZiBhbiBld2tfdmlldyAobmVlZCAlcCwgZ290ICVwKSEiLCAgICBcCi0g
ICAgICAgICAgICAgICAgZXdrVmlldywgX3RtcF9vdHlwZSA/IF90bXBfb3R5cGUgOiAiKG51bGwp
IiwgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICBld2tWaWV3VHlwZVN0cmluZywg
X3RtcF9zYy0+ZGF0YSk7ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgcmV0dXJu
IF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWSghX3RtcF9zYykpIHsg
XAorICAgICAgICAgICAgRUlOQV9MT0dfQ1JJVCBcCisgICAgICAgICAgICAgICAgKCIlcCAoJXMp
IGlzIG5vdCBhIHNtYXJ0IG9iamVjdCEiLCBld2tWaWV3LCBcCisgICAgICAgICAgICAgICAgX3Rt
cF9vdHlwZSA/IF90bXBfb3R5cGUgOiAiKG51bGwpIik7IFwKKyAgICAgICAgICAgIHJldHVybiBf
X1ZBX0FSR1NfXzsgXAorICAgICAgICB9IFwKKyAgICAgICAgaWYgKEVJTkFfVU5MSUtFTFkoX3Rt
cF9zYy0+ZGF0YSAhPSBld2tWaWV3VHlwZVN0cmluZykpIHsgXAorICAgICAgICAgICAgRUlOQV9M
T0dfQ1JJVCBcCisgICAgICAgICAgICAgICAgKCIlcCAoJXMpIGlzIG5vdCBvZiBhbiBld2tfdmll
dyAobmVlZCAlcCwgZ290ICVwKSEiLCBcCisgICAgICAgICAgICAgICAgZXdrVmlldywgX3RtcF9v
dHlwZSA/IF90bXBfb3R5cGUgOiAiKG51bGwpIiwgXAorICAgICAgICAgICAgICAgIGV3a1ZpZXdU
eXBlU3RyaW5nLCBfdG1wX3NjLT5kYXRhKTsgXAorICAgICAgICAgICAgcmV0dXJuIF9fVkFfQVJH
U19fOyBcCisgICAgICAgIH0gXAogICAgIH0gd2hpbGUgKDApCiAjZW5kaWYKIAotI2RlZmluZSBF
V0tfVklFV19TRF9HRVQoZXdrVmlldywgcHRyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICBFd2tfVmlld19TbWFydF9EYXRhKiBwdHIgPSBzdGF0aWNfY2FzdDxFd2tfVmll
d19TbWFydF9EYXRhKj4oZXZhc19vYmplY3Rfc21hcnRfZGF0YV9nZXQoZXdrVmlldykpCisjZGVm
aW5lIEVXS19WSUVXX1NEX0dFVChld2tWaWV3LCBwb2ludGVyKSBcCisgICAgRXdrX1ZpZXdfU21h
cnRfRGF0YSogcG9pbnRlciA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihldmFz
X29iamVjdF9zbWFydF9kYXRhX2dldChld2tWaWV3KSkKIAotI2RlZmluZSBFV0tfVklFV19TRF9H
RVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHB0ciwgLi4uKSAgICAgICAgICBcCi0gICAgRVdLX1ZJRVdf
VFlQRV9DSEVDSyhld2tWaWV3LCBfX1ZBX0FSR1NfXyk7ICAgICAgICAgICAgICAgIFwKLSAgICBF
V0tfVklFV19TRF9HRVQoZXdrVmlldywgcHRyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgIGlmICghcHRyKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgICAgIENSSVRJQ0FMKCJubyBzbWFydCBkYXRhIGZvciBvYmplY3QgJXAgKCVzKSIs
ICAgIFwKLSAgICAgICAgICAgICAgICAgZXdrVmlldywgZXZhc19vYmplY3RfdHlwZV9nZXQoZXdr
VmlldykpOyAgICAgICAgICAgXAotICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4o
ZXdrVmlldywgcG9pbnRlciwgLi4uKSBcCisgICAgRVdLX1ZJRVdfVFlQRV9DSEVDSyhld2tWaWV3
LCBfX1ZBX0FSR1NfXyk7IFwKKyAgICBFV0tfVklFV19TRF9HRVQoZXdrVmlldywgcG9pbnRlcik7
IFwKKyAgICBpZiAoIXBvaW50ZXIpIHsgXAorICAgICAgICBDUklUSUNBTCgibm8gc21hcnQgZGF0
YSBmb3Igb2JqZWN0ICVwICglcykiLCBcCisgICAgICAgICAgICAgICAgIGV3a1ZpZXcsIGV2YXNf
b2JqZWN0X3R5cGVfZ2V0KGV3a1ZpZXcpKTsgXAorICAgICAgICByZXR1cm4gX19WQV9BUkdTX187
IFwKICAgICB9CiAKLSNkZWZpbmUgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwdHIpICAg
ICAgICAgICAgICBcCi0gICAgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhICpwdHIgPSBzbWFydERhdGEt
Pl9wcml2CisjZGVmaW5lIEVXS19WSUVXX1BSSVZfR0VUKHNtYXJ0RGF0YSwgcG9pbnRlcikgXAor
ICAgIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcG9pbnRlciA9IHNtYXJ0RGF0YS0+X3ByaXYKIAot
I2RlZmluZSBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwdHIsIC4uLikg
ICAgICAgICAgICAgICBcCi0gICAgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwdHIpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBpZiAoIXB0cikgeyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIENSSVRJ
Q0FMKCJubyBwcml2YXRlIGRhdGEgZm9yIG9iamVjdCAlcCAoJXMpIiwgICAgICAgICAgXAotICAg
ICAgICAgICAgICAgICBzbWFydERhdGEtPnNlbGYsIGV2YXNfb2JqZWN0X3R5cGVfZ2V0KHNtYXJ0
RGF0YS0+c2VsZikpOyAgICAgXAotICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgRVdLX1ZJRVdfUFJJVl9HRVRf
T1JfUkVUVVJOKHNtYXJ0RGF0YSwgcG9pbnRlciwgLi4uKSBcCisgICAgRVdLX1ZJRVdfUFJJVl9H
RVQoc21hcnREYXRhLCBwb2ludGVyKTsgXAorICAgIGlmICghcG9pbnRlcikgeyBcCisgICAgICAg
IENSSVRJQ0FMKCJubyBwcml2YXRlIGRhdGEgZm9yIG9iamVjdCAlcCAoJXMpIiwgXAorICAgICAg
ICAgICAgICAgICBzbWFydERhdGEtPnNlbGYsIGV2YXNfb2JqZWN0X3R5cGVfZ2V0KHNtYXJ0RGF0
YS0+c2VsZikpOyBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgXAogICAgIH0KIAogI2Rl
ZmluZSBFV0tfVklFV19USUxFRF9UWVBFX0NIRUNLX09SX1JFVFVSTihld2tWaWV3LCAuLi4pIFwK
QEAgLTQxMCwxMiArNDEwLDEyIEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zY3JvbGxzX2ZsdXNo
KEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdikKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3
X3NtYXJ0X2ZvY3VzX2luKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIHsKICAgICBF
V0tfVklFV19QUklWX0dFVChzbWFydERhdGEsIHByaXYpOwotICAgIFdlYkNvcmU6OkZvY3VzQ29u
dHJvbGxlciogZmMgPSBwcml2LT5wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKTsKLSAgICBEQkcoImV3
a1ZpZXc9JXAsIGZjPSVwIiwgc21hcnREYXRhLT5zZWxmLCBmYyk7Ci0gICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKGZjLCBmYWxzZSk7CisgICAgV2ViQ29yZTo6Rm9jdXNDb250cm9s
bGVyKiBmb2N1c0NvbnRyb2xsZXIgPSBwcml2LT5wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKTsKKyAg
ICBEQkcoImV3a1ZpZXc9JXAsIGZvY3VzQ29udHJvbGxlcj0lcCIsIHNtYXJ0RGF0YS0+c2VsZiwg
Zm9jdXNDb250cm9sbGVyKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZm9j
dXNDb250cm9sbGVyLCBmYWxzZSk7CiAKLSAgICBmYy0+c2V0QWN0aXZlKHRydWUpOwotICAgIGZj
LT5zZXRGb2N1c2VkKHRydWUpOworICAgIGZvY3VzQ29udHJvbGxlci0+c2V0QWN0aXZlKHRydWUp
OworICAgIGZvY3VzQ29udHJvbGxlci0+c2V0Rm9jdXNlZCh0cnVlKTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApAQCAtOTk0LDcgKzk5NCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9m
bHVzaChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAKIHN0YXRpYyBFaW5hX0Jvb2wg
X2V3a192aWV3X3NtYXJ0X3ByZV9yZW5kZXJfcmVnaW9uKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNt
YXJ0RGF0YSwgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHksIEV2YXNfQ29vcmQgd2lkdGgsIEV2
YXNfQ29vcmQgaGVpZ2h0LCBmbG9hdCB6b29tKQogewotICAgIFdSTigibm90IHN1cHBvcnRlZCBi
eSBlbmdpbmUuIHNtYXJ0REF0YT0lcCBhcmVhPSVkLCVkKyVkeCVkLCB6b29tPSVmIiwKKyAgICBX
Uk4oIm5vdCBzdXBwb3J0ZWQgYnkgZW5naW5lLiBzbWFydERhdGE9JXAgYXJlYT0lZCwlZCslZHgl
ZCwgem9vbT0lZiIsCiAgICAgICAgIHNtYXJ0RGF0YSwgeCwgeSwgd2lkdGgsIGhlaWdodCwgem9v
bSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMTc5MCw3ICsxNzkwLDcgQEAgRWluYV9Cb29s
IGV3a192aWV3X3ByZV9yZW5kZXJfcmVnaW9uKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nv
b3JkIHgsIEV2YXNfQ28KICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNt
YXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERh
dGEsIHByaXYsIGZhbHNlKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc21h
cnREYXRhLT5hcGktPnByZV9yZW5kZXJfcmVnaW9uLCBmYWxzZSk7Ci0gICAgZmxvYXQgY3VyX3pv
b207CisgICAgZmxvYXQgY3VycmVudFpvb207CiAgICAgRXZhc19Db29yZCBjb250ZW50c1dpZHRo
LCBjb250ZW50c0hlaWdodDsKIAogICAgIC8qIFdoZW4gZG9pbmcgYW5pbWF0ZWQgem9vbSBpdCdz
IG5vdCBwb3NzaWJsZSB0byBjYWxsIHByZS1yZW5kZXIgc2luY2UgaXQKQEAgLTE3OTksMTUgKzE3
OTksMTUgQEAgRWluYV9Cb29sIGV3a192aWV3X3ByZV9yZW5kZXJfcmVnaW9uKEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ28KICAgICBpZiAocHJpdi0+YW5pbWF0ZWRa
b29tLmFuaW1hdG9yKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBjdXJfem9vbSA9IGV3
a19mcmFtZV9wYWdlX3pvb21fZ2V0KHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSk7CisgICAgY3VycmVu
dFpvb20gPSBld2tfZnJhbWVfcGFnZV96b29tX2dldChzbWFydERhdGEtPm1haW5fZnJhbWUpOwog
Ci0gICAgaWYgKGN1cl96b29tIDwgMC4wMDAwMSkKKyAgICBpZiAoY3VycmVudFpvb20gPCAwLjAw
MDAxKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFld2tfZnJhbWVfY29udGVudHNf
c2l6ZV9nZXQoc21hcnREYXRhLT5tYWluX2ZyYW1lLCAmY29udGVudHNXaWR0aCwgJmNvbnRlbnRz
SGVpZ2h0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgY29udGVudHNXaWR0aCAqPSB6
b29tIC8gY3VyX3pvb207Ci0gICAgY29udGVudHNIZWlnaHQgKj0gem9vbSAvIGN1cl96b29tOwor
ICAgIGNvbnRlbnRzV2lkdGggKj0gem9vbSAvIGN1cnJlbnRab29tOworICAgIGNvbnRlbnRzSGVp
Z2h0ICo9IHpvb20gLyBjdXJyZW50Wm9vbTsKICAgICBEQkcoInJlZ2lvbiAlZCwlZCslZHglZCBA
ICVmIGNvbnRlbnRzPSVkeCVkIiwgeCwgeSwgd2lkdGgsIGhlaWdodCwgem9vbSwgY29udGVudHNX
aWR0aCwgY29udGVudHNIZWlnaHQpOwogCiAgICAgaWYgKHggKyB3aWR0aCA+IGNvbnRlbnRzV2lk
dGgpCkBAIC0yOTU3LDggKzI5NTcsOCBAQCB2b2lkIGV3a192aWV3X3Jlc3RvcmVfc3RhdGUoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSkKICAqIEBwYXJhbSBld2tWaWV3
IEN1cnJlbnQgdmlldy4KICAqIEBwYXJhbSBqYXZhc2NyaXB0IEBjIHRydWUgaWYgdGhlIG5ldyB3
aW5kb3cgaXMgb3JpZ2luYXRlZCBmcm9tIGphdmFzY3JpcHQsCiAgKiBAYyBmYWxzZSBvdGhlcndp
c2UKLSAqIEBwYXJhbSB3aWR0aGluZG93X2ZlYXR1cmVzIEZlYXR1cmVzIG9mIHRoZSBuZXcgd2lu
ZG93IGJlaW5nIGNyZWF0ZWQuIElmIGl0J3MgQGMKLSAqIE5VTEwsIGl0IHdpbGwgYmUgY3JlYXRl
ZCBhIHdpbmRvdyB3aXRoIGRlZmF1bHQgZmVhdHVyZXMuCisgKiBAcGFyYW0gd2luZG93X2ZlYXR1
cmVzIEZlYXR1cmVzIG9mIHRoZSBuZXcgd2luZG93IGJlaW5nIGNyZWF0ZWQuIElmIGl0J3MgQGMK
KyAqIDAsIGl0IHdpbGwgYmUgY3JlYXRlZCBhIHdpbmRvdyB3aXRoIGRlZmF1bHQgZmVhdHVyZXMu
CiAgKgogICogQHJldHVybiBOZXcgdmlldywgaW4gY2FzZSBzbWFydCBjbGFzcyBpbXBsZW1lbnRz
IHRoZSBjcmVhdGlvbiBvZiBuZXcgd2luZG93czsKICAqIGVsc2UsIGN1cnJlbnQgdmlldyBAcGFy
YW0gZXdrVmlldyBvciBAYyAwIG9uIGZhaWx1cmUuCkBAIC0zMDUwLDcgKzMwNTAsNyBAQCB2b2lk
IGV3a192aWV3X3Rvb2xiYXJzX3Zpc2libGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29s
IHZpc2libGUpCiAgKi8KIHZvaWQgZXdrX3ZpZXdfdG9vbGJhcnNfdmlzaWJsZV9nZXQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGJvb2wqIHZpc2libGUpCiB7Ci0gICAgREJHKCIlcywgbz0lcCIsIF9f
ZnVuY19fLCBld2tWaWV3KTsKKyAgICBEQkcoIiVzLCBld2tWaWV3PSVwIiwgX19mdW5jX18sIGV3
a1ZpZXcpOwogICAgICp2aXNpYmxlID0gZmFsc2U7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2Fs
bGJhY2tfY2FsbChld2tWaWV3LCAidG9vbGJhcnMsdmlzaWJsZSxnZXQiLCB2aXNpYmxlKTsKIH0K
QEAgLTMwODMsNyArMzA4Myw3IEBAIHZvaWQgZXdrX3ZpZXdfc3RhdHVzYmFyX3Zpc2libGVfc2V0
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sICB2aXNpYmxlKQogICovCiB2b2lkIGV3a192aWV3
X3N0YXR1c2Jhcl92aXNpYmxlX2dldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCogdmlzaWJs
ZSkKIHsKLSAgICBEQkcoIiVzLCBvPSVwIiwgX19mdW5jX18sIGV3a1ZpZXcpOworICAgIERCRygi
JXMsIGV3a1ZpZXc9JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CiAgICAgKnZpc2libGUgPSBmYWxz
ZTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJzdGF0dXNi
YXIsdmlzaWJsZSxnZXQiLCB2aXNpYmxlKTsKIH0KQEAgLTMxMzIsNyArMzEzMiw3IEBAIHZvaWQg
ZXdrX3ZpZXdfc2Nyb2xsYmFyc192aXNpYmxlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgYm9v
bCB2aXNpYmxlKQogICovCiB2b2lkIGV3a192aWV3X3Njcm9sbGJhcnNfdmlzaWJsZV9nZXQoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIGJvb2wqIHZpc2libGUpCiB7Ci0gICAgREJHKCIlcywgbz0lcCIs
IF9fZnVuY19fLCBld2tWaWV3KTsKKyAgICBEQkcoIiVzLCBld2tWaWV3PSVwIiwgX19mdW5jX18s
IGV3a1ZpZXcpOwogICAgICp2aXNpYmxlID0gZmFsc2U7CiAgICAgZXZhc19vYmplY3Rfc21hcnRf
Y2FsbGJhY2tfY2FsbChld2tWaWV3LCAic2Nyb2xsYmFycyx2aXNpYmxlLGdldCIsIHZpc2libGUp
OwogfQpAQCAtMzE2NSw3ICszMTY1LDcgQEAgdm9pZCBld2tfdmlld19tZW51YmFyX3Zpc2libGVf
c2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIHZpc2libGUpCiAgKi8KIHZvaWQgZXdrX3Zp
ZXdfbWVudWJhcl92aXNpYmxlX2dldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCogdmlzaWJs
ZSkKIHsKLSAgICBEQkcoIiVzLCBvPSVwIiwgX19mdW5jX18sIGV3a1ZpZXcpOworICAgIERCRygi
JXMsIGV3a1ZpZXc9JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CiAgICAgKnZpc2libGUgPSBmYWxz
ZTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJtZW51YmFy
LHZpc2libGUsZ2V0IiwgdmlzaWJsZSk7CiB9CkBAIC0zNTkzLDcgKzM1OTMsNyBAQCBFaW5hX0Jv
b2wgZXdrX3ZpZXdfem9vbV9yYW5nZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGZsb2F0IG1p
blNjYWxlLCBmbG9hdCBtYQogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERh
dGEsIHByaXYsIGZhbHNlKTsKIAogICAgIGlmIChtYXhTY2FsZSA8IG1pblNjYWxlKSB7Ci0gICAg
ICAgIFdSTigibWluX3NjYWxlIGlzIGxhcmdlciB0aGFuIG1heF9zY2FsZSIpOworICAgICAgICBX
Uk4oIm1pblNjYWxlIGlzIGxhcmdlciB0aGFuIG1heFNjYWxlIik7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
d19zaW5nbGUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3NpbmdsZS5jcHAK
aW5kZXggZWQ3MjYzMy4uOGY3NDk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a192aWV3X3NpbmdsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
X3NpbmdsZS5jcHAKQEAgLTksNyArOSw3IEBACiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICAgICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAg
IE1FUmNoQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KIAogICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKQEAgLTIwOSw4ICsy
MDksOCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zaW5nbGVfc21hcnRfcmVwYWludHNf
cHJvY2VzcyhFd2tfVmlld19TbWFydF9EYXRhKiBzbQogICAgIEV2YXNfQ29vcmQgb3csIG9oOwog
ICAgIHZvaWQqIHBpeGVsczsKICAgICBFaW5hX1JlY3RhbmdsZSogcmVjdDsKLSAgICBjb25zdCBF
aW5hX1JlY3RhbmdsZSogcHI7Ci0gICAgY29uc3QgRWluYV9SZWN0YW5nbGUqIHByX2VuZDsKKyAg
ICBjb25zdCBFaW5hX1JlY3RhbmdsZSogcGFpbnRSZXF1ZXN0OworICAgIGNvbnN0IEVpbmFfUmVj
dGFuZ2xlKiBwYWludFJlcXVlc3RFbmQ7CiAgICAgRWluYV9UaWxlciogdGlsZXI7CiAgICAgRWlu
YV9JdGVyYXRvciogaXRlcmF0b3I7CiAgICAgY2Fpcm9fc3RhdHVzX3Qgc3RhdHVzOwpAQCAtMjc3
LDEwICsyNzcsMTAgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X3Jl
cGFpbnRzX3Byb2Nlc3MoRXdrX1ZpZXdfU21hcnRfRGF0YSogc20KIAogICAgIGV3a192aWV3X2xh
eW91dF9pZl9uZWVkZWRfcmVjdXJzaXZlKHNtYXJ0RGF0YS0+X3ByaXYpOwogCi0gICAgcHIgPSBl
d2tfdmlld19yZXBhaW50c19wb3Aoc21hcnREYXRhLT5fcHJpdiwgJmNvdW50KTsKLSAgICBwcl9l
bmQgPSBwciArIGNvdW50OwotICAgIGZvciAoOyBwciA8IHByX2VuZDsgcHIrKykKLSAgICAgICAg
ZWluYV90aWxlcl9yZWN0X2FkZCh0aWxlciwgcHIpOworICAgIHBhaW50UmVxdWVzdCA9IGV3a192
aWV3X3JlcGFpbnRzX3BvcChzbWFydERhdGEtPl9wcml2LCAmY291bnQpOworICAgIHBhaW50UmVx
dWVzdEVuZCA9IHBhaW50UmVxdWVzdCArIGNvdW50OworICAgIGZvciAoOyBwYWludFJlcXVlc3Qg
PCBwYWludFJlcXVlc3RFbmQ7IHBhaW50UmVxdWVzdCsrKQorICAgICAgICBlaW5hX3RpbGVyX3Jl
Y3RfYWRkKHRpbGVyLCBwYWludFJlcXVlc3QpOwogCiAgICAgaXRlcmF0b3IgPSBlaW5hX3RpbGVy
X2l0ZXJhdG9yX25ldyh0aWxlcik7CiAgICAgaWYgKCFpdGVyYXRvcikgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKaW5kZXggYjcyZDZhZS4uNGU5ZDgyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwCkBAIC03NywxMiArNzcsMTIgQEAg
c3RhdGljIHZvaWQqIF9ld2tfdmlld190aWxlZF91cGRhdGVzX3Byb2Nlc3NfcHJlKHZvaWQqIGRh
dGEsIEV2YXNfT2JqZWN0KiBld2tWaWUKIAogc3RhdGljIEV2YXNfT2JqZWN0KiBfZXdrX3ZpZXdf
dGlsZWRfc21hcnRfYmFja2luZ19zdG9yZV9hZGQoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnRE
YXRhKQogewotICAgIEV2YXNfT2JqZWN0KiBicyA9IGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2Fk
ZChzbWFydERhdGEtPmJhc2UuZXZhcyk7CisgICAgRXZhc19PYmplY3QqIGJhY2tpbmdTdG9yZSA9
IGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2FkZChzbWFydERhdGEtPmJhc2UuZXZhcyk7CiAgICAg
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVuZGVyX2NiX3NldAotICAgICAgICAoYnMsIF9ld2tf
dmlld190aWxlZF9yZW5kZXJfY2IsIHNtYXJ0RGF0YS0+X3ByaXYpOworICAgICAgICAoYmFja2lu
Z1N0b3JlLCBfZXdrX3ZpZXdfdGlsZWRfcmVuZGVyX2NiLCBzbWFydERhdGEtPl9wcml2KTsKICAg
ICBld2tfdGlsZWRfYmFja2luZ19zdG9yZV91cGRhdGVzX3Byb2Nlc3NfcHJlX3NldAotICAgICAg
ICAoYnMsIF9ld2tfdmlld190aWxlZF91cGRhdGVzX3Byb2Nlc3NfcHJlLCBzbWFydERhdGEtPl9w
cml2KTsKLSAgICByZXR1cm4gYnM7CisgICAgICAgIChiYWNraW5nU3RvcmUsIF9ld2tfdmlld190
aWxlZF91cGRhdGVzX3Byb2Nlc3NfcHJlLCBzbWFydERhdGEtPl9wcml2KTsKKyAgICByZXR1cm4g
YmFja2luZ1N0b3JlOwogfQogCiBzdGF0aWMgdm9pZApAQCAtOTcsMTcgKzk3LDE3IEBAIF9ld2tf
dmlld190aWxlZF9jb250ZW50c19zaXplX2NoYW5nZWRfY2Iodm9pZCogZGF0YSwgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIHZvaWQqCiAKIHN0YXRpYyB2b2lkIF9ld2tfdmlld190aWxlZF9zbWFydF9h
ZGQoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7Ci0gICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2Q7
CisgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhOwogCiAgICAgX3BhcmVudF9zYy5z
Yy5hZGQoZXdrVmlldyk7CiAKLSAgICBzZCA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0Rh
dGEqPihldmFzX29iamVjdF9zbWFydF9kYXRhX2dldChld2tWaWV3KSk7Ci0gICAgaWYgKCFzZCkK
KyAgICBzbWFydERhdGEgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFydF9EYXRhKj4oZXZhc19v
YmplY3Rfc21hcnRfZGF0YV9nZXQoZXdrVmlldykpOworICAgIGlmICghc21hcnREYXRhKQogICAg
ICAgICByZXR1cm47CiAKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoCi0gICAg
ICAgIHNkLT5tYWluX2ZyYW1lLCAiY29udGVudHMsc2l6ZSxjaGFuZ2VkIiwKLSAgICAgICAgX2V3
a192aWV3X3RpbGVkX2NvbnRlbnRzX3NpemVfY2hhbmdlZF9jYiwgc2QpOworICAgICAgICBzbWFy
dERhdGEtPm1haW5fZnJhbWUsICJjb250ZW50cyxzaXplLGNoYW5nZWQiLAorICAgICAgICBfZXdr
X3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2NiLCBzbWFydERhdGEpOwogfQogCiBz
dGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld190aWxlZF9zbWFydF9zY3JvbGxzX3Byb2Nlc3MoRXdr
X1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQpAQCAtMzkyLDE0ICszOTIsMTQgQEAgRXZhc19P
YmplY3QqIGV3a192aWV3X3RpbGVkX2FkZChFdmFzKiBjYW52YXMpCiAKIEV3a19UaWxlX1VudXNl
ZF9DYWNoZSogZXdrX3ZpZXdfdGlsZWRfdW51c2VkX2NhY2hlX2dldChjb25zdCBFdmFzX09iamVj
dCogZXdrVmlldykKIHsKLSAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzZCA9IGV3a192aWV3X3Nt
YXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChzZCwgMCk7Ci0gICAgcmV0dXJuIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfdW51c2Vk
X2NhY2hlX2dldChzZC0+YmFja2luZ19zdG9yZSk7CisgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSog
c21hcnREYXRhID0gZXdrX3ZpZXdfc21hcnRfZGF0YV9nZXQoZXdrVmlldyk7CisgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNtYXJ0RGF0YSwgMCk7CisgICAgcmV0dXJuIGV3a190
aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfdW51c2VkX2NhY2hlX2dldChzbWFydERhdGEtPmJhY2tp
bmdfc3RvcmUpOwogfQogCiB2b2lkIGV3a192aWV3X3RpbGVkX3VudXNlZF9jYWNoZV9zZXQoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIEV3a19UaWxlX1VudXNlZF9DYWNoZSogY2FjaGUpCiB7Ci0gICAg
RXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBld2tfdmlld19zbWFydF9kYXRhX2dldChld2tWaWV3
KTsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihzZCk7Ci0gICAgZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2FjaGVfc2V0KHNkLT5iYWNraW5nX3N0b3JlLCBjYWNo
ZSk7CisgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhID0gZXdrX3ZpZXdfc21hcnRf
ZGF0YV9nZXQoZXdrVmlldyk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oc21hcnRE
YXRhKTsKKyAgICBld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX3VudXNlZF9jYWNoZV9zZXQo
c21hcnREYXRhLT5iYWNraW5nX3N0b3JlLCBjYWNoZSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124703</attachid>
            <date>2012-01-31 03:48:25 -0800</date>
            <delta_ts>2012-01-31 18:33:37 -0800</delta_ts>
            <desc>new style patch</desc>
            <filename>new_style.patch</filename>
            <type>text/plain</type>
            <size>96498</size>
            <attacher name="JungJik Lee">jungjik.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCBiNzViMTYwLi5lOWEzNTEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTEwIEBACisyMDEyLTAxLTMxICBKdW5nSmlrIExlZSAgPGp1bmdqaWsubGVlQHNh
bXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIEFkb3B0IEMrKyBzdHlsZSB1c2luZyBjYW1lbENh
c2UgYW5kIGZ1bGwgdmFyaWFibGUgbmFtZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03NjM3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1vZGlmeSB0aGUgY29kZSB0byB1c2UgY2FtZWxDYXNlIGFuZCBz
cGVsbCBvdXQgdmFyaWFibGUgbmFtZXMgaW5zdGVhZCBvZiB1c2luZyBhYmJyZXZpYXRpb25zLgor
ICAgICAgICBNb2RpZnkgdGhlIGNvbW1lbnRzIHdoaWNoIGRvIG5vdCBtYXRjaCB3aXRoIGFjdHVh
bCBwYXJhbWV0ZXJzIGFuZCBjb3JyZWN0IG1pc3NwZWxsZWQgd29yZHMuCisgICAgICAgIEFkb3B0
IEVGTCBDb2Rpbmcgc3R5bGUgaW4gaGVhZGVyIGZpbGVzLgorICAgICAgICBUaGUgbG9naWMgb2Yg
dGhlIGNvZGUgaXMgbm90IGNoYW5nZWQuCisKKyAgICAgICAgKiBld2svZXdrX2Nvb2tpZXMuaDoK
KyAgICAgICAgKiBld2svZXdrX2ZyYW1lLmNwcDoKKyAgICAgICAgKGV3a19mcmFtZV9zZWxlY3Rp
b25fZ2V0KToKKyAgICAgICAgKGV3a19mcmFtZV9mZWVkX2ZvY3VzX2luKToKKyAgICAgICAgKEVX
S1ByaXZhdGU6OmNvcmVGcmFtZSk6CisgICAgICAgICogZXdrL2V3a19mcmFtZS5oOgorICAgICAg
ICAqIGV3ay9ld2tfaGlzdG9yeS5jcHA6CisgICAgICAgIChld2tfaGlzdG9yeV9pdGVtX25ldyk6
CisgICAgICAgIChld2tfaGlzdG9yeV9pdGVtX3RpdGxlX2dldCk6CisgICAgICAgIChld2tfaGlz
dG9yeV9pdGVtX3RpdGxlX2FsdGVybmF0ZV9nZXQpOgorICAgICAgICAoZXdrX2hpc3RvcnlfaXRl
bV91cmlfZ2V0KToKKyAgICAgICAgKGV3a19oaXN0b3J5X2l0ZW1fdXJpX29yaWdpbmFsX2dldCk6
CisgICAgICAgICogZXdrL2V3a19uZXR3b3JrLmg6CisgICAgICAgICogZXdrL2V3a190aWxlZF9i
YWNraW5nX3N0b3JlLmNwcDoKKyAgICAgICAgKF9Fd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVt
KToKKyAgICAgICAgKF9Fd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKToKKyAgICAgICAgKF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Fzc29jaWF0ZSk6CisgICAgICAgIChfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfdGlsZV9kaXNzb2NpYXRlKToKKyAgICAgICAgKF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfY2xlYXIpOgorICAgICAgICAoX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9wcm9jZXNzX3NpbmdsZSk6Cisg
ICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKToKKyAgICAgICAgKF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfaXRlbV9zbW9vdGhfc2NhbGVfc2V0KToKKyAgICAgICAgKF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV92aWV3X2NvbHNfZW5kX2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfdmlld19yb3dzX2FsbF9kZWwpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3JlbmRlcik6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfbWVt
X2RiZyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2lnX3Vzcik6CisgICAg
ICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRkKToKKyAgICAgICAgKF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9kZWwpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3NtYXJ0X21vdmUpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3NtYXJ0X3Jlc2l6ZSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVjYWxj
X3JlbmRlcmVycyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19kYmcp
OgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF91cCk6CisgICAg
ICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld193cmFwX2Rvd24pOgorICAgICAgICAo
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF9sZWZ0KToKKyAgICAgICAgKF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3JlZmlsbCk6CisgICAgICAgIChfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfdmlld19wb3NfYXBwbHkpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9vZmZzZXRfZm9yY2UpOgorICAgICAgICAoX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9vZmZzZXQpOgorICAgICAgICAoX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9wb3MpOgorICAgICAgICAoX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZSk6CisgICAgICAgIChfZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3NldF9pbnRlcm5hbCk6CisgICAgICAg
IChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0KToKKyAgICAg
ICAgKGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9hZGQpOgorICAg
ICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fc2V0X2ludGVybmFsKToKKyAgICAg
ICAgKGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fc2V0KToKKyAgICAgICAgKGV3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3pvb21fd2Vha19zZXQpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfZml4X29mZnNldHMpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
Zmx1c2gpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZWdp
b24pOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZWxhdGl2
ZV9yYWRpdXMpOgorICAgICAgICAqIGV3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5oOgorICAg
ICAgICAoX0V3a19UaWxlKToKKyAgICAgICAgKiBld2svZXdrX3RpbGVkX21hdHJpeC5jcHA6Cisg
ICAgICAgIChfRXdrX1RpbGVfTWF0cml4KToKKyAgICAgICAgKF9ld2tfdGlsZV9tYXRyaXhfY2Vs
bF9mcmVlKToKKyAgICAgICAgKF9ld2tfdGlsZV9tYXRyaXhfdGlsZV9mcmVlKToKKyAgICAgICAg
KGV3a190aWxlX21hdHJpeF9uZXcpOgorICAgICAgICAoZXdrX3RpbGVfbWF0cml4X2ZyZWUpOgor
ICAgICAgICAoZXdrX3RpbGVfbWF0cml4X3VudXNlZF9jYWNoZV9nZXQpOgorICAgICAgICAoZXdr
X3RpbGVfbWF0cml4X3RpbGVfZXhhY3RfZ2V0KToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF90
aWxlX25ldyk6CisgICAgICAgIChld2tfdGlsZV9tYXRyaXhfdGlsZV9wdXQpOgorICAgICAgICAo
ZXdrX3RpbGVfbWF0cml4X2RiZyk6CisgICAgICAgIChld2tfdGlsZV9tYXRyaXhfZnJlZXplKToK
KyAgICAgICAgKGV3a190aWxlX21hdHJpeF90aGF3KToKKyAgICAgICAgKiBld2svZXdrX3RpbGVk
X21hdHJpeC5oOgorICAgICAgICAqIGV3ay9ld2tfdGlsZWRfbW9kZWwuY3BwOgorICAgICAgICAo
dGlsZV9hY2NvdW50KToKKyAgICAgICAgKGV3a190aWxlX3VwZGF0ZXNfcHJvY2Vzcyk6CisgICAg
ICAgIChld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQpOgorICAgICAgICAoZXdrX3RpbGVf
dW51c2VkX2NhY2hlX2RiZyk6CisgICAgICAgICogZXdrL2V3a190aWxlZF9tb2RlbC5oOgorICAg
ICAgICAqIGV3ay9ld2tfdXRpbC5oOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAg
ICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9m
b2N1c19pbik6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfcHJlX3JlbmRlcl9yZWdpb24pOgor
ICAgICAgICAoZXdrX3ZpZXdfcHJlX3JlbmRlcl9yZWdpb24pOgorICAgICAgICAoZXdrX3ZpZXdf
dG9vbGJhcnNfdmlzaWJsZV9nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc3RhdHVzYmFyX3Zpc2li
bGVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3Njcm9sbGJhcnNfdmlzaWJsZV9nZXQpOgorICAg
ICAgICAoZXdrX3ZpZXdfbWVudWJhcl92aXNpYmxlX2dldCk6CisgICAgICAgIChld2tfdmlld196
b29tX3JhbmdlX3NldCk6CisgICAgICAgICogZXdrL2V3a192aWV3Lmg6CisgICAgICAgICogZXdr
L2V3a192aWV3X3NpbmdsZS5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X3Jl
cGFpbnRzX3Byb2Nlc3MpOgorICAgICAgICAqIGV3ay9ld2tfdmlld190aWxlZC5jcHA6CisgICAg
ICAgIChfZXdrX3ZpZXdfdGlsZWRfc21hcnRfYmFja2luZ19zdG9yZV9hZGQpOgorICAgICAgICAo
X2V3a192aWV3X3RpbGVkX3NtYXJ0X2FkZCk6CisgICAgICAgIChld2tfdmlld190aWxlZF91bnVz
ZWRfY2FjaGVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3RpbGVkX3VudXNlZF9jYWNoZV9zZXQp
OgorCiAyMDEyLTAxLTMwICBFdW5zb2wgUGFyayAgPGV1bnNvbDQ3LnBhcmtAc2Ftc3VuZy5jb20+
CiAKICAgICAgICAgW0VGTF0gRGVmaW5lIHRoZSBuYW1lcyBvZiB2aWV3IHNtYXJ0IGNsYXNzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nvb2tpZXMuaCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5oCmluZGV4IGFjZDE1NTkuLjQwZTY5ZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5oCkBAIC05NSw3ICs5NSw3IEBAIEVBUEkgdm9pZCAg
ICAgICAgICAgICAgIGV3a19jb29raWVzX2NsZWFyKHZvaWQpOwogICoKICAqIEByZXR1cm4gYW4g
QGMgRWluYV9MaXN0IHdpdGggYWxsIHRoZSBjb29raWVzIGluIHRoZSBjb29raWUgamFyCiAgKi8K
LUVBUEkgRWluYV9MaXN0KiAgICAgICAgIGV3a19jb29raWVzX2dldF9hbGwodm9pZCk7CitFQVBJ
IEVpbmFfTGlzdCAgICAgICAgICAqZXdrX2Nvb2tpZXNfZ2V0X2FsbCh2b2lkKTsKIAogLyoqCiAg
KiBEZWxldGVzIGEgY29va2llIGZyb20gdGhlIGNvb2tpZSBqYXIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfZnJhbWUuY3BwCmluZGV4IDk2MWZhMGIuLjhiYTE4ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfZnJhbWUuY3BwCkBAIC04NiwyOCArODYsMjggQEAgc3RydWN0IEVpbmFfSXRlcmF0b3JfRXdr
X0ZyYW1lIHsKICNpZm5kZWYgRVdLX1RZUEVfQ0hFQ0sKICNkZWZpbmUgRVdLX0ZSQU1FX1RZUEVf
Q0hFQ0soZXdrRnJhbWUsIC4uLikgZG8geyB9IHdoaWxlICgwKQogI2Vsc2UKLSNkZWZpbmUgRVdL
X0ZSQU1FX1RZUEVfQ0hFQ0soZXdrRnJhbWUsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGNvbnN0IGNoYXIqIF90bXBf
b3R5cGUgPSBldmFzX29iamVjdF90eXBlX2dldChld2tGcmFtZSk7ICAgICAgICAgICAgICAgXAot
ICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWShfdG1wX290eXBlICE9IEVXS19GUkFNRV9UWVBFX1NU
UikpIHsgICAgICAgICAgXAotICAgICAgICAgICAgRUlOQV9MT0dfQ1JJVCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICgiJXAg
KCVzKSBpcyBub3Qgb2YgYW4gZXdrX2ZyYW1lISIsIGV3a0ZyYW1lLCAgICAgICAgICAgICAgICAg
IFwKLSAgICAgICAgICAgICAgICBfdG1wX290eXBlID8gX3RtcF9vdHlwZSA6ICIobnVsbCkiKTsg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgfSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyNkZWZpbmUgRVdLX0ZSQU1FX1RZUEVfQ0hFQ0soZXdrRnJhbWUsIC4uLikgXAorICAgIGRvIHsg
XAorICAgICAgICBjb25zdCBjaGFyKiBfdG1wX290eXBlID0gZXZhc19vYmplY3RfdHlwZV9nZXQo
ZXdrRnJhbWUpOyBcCisgICAgICAgIGlmIChFSU5BX1VOTElLRUxZKF90bXBfb3R5cGUgIT0gRVdL
X0ZSQU1FX1RZUEVfU1RSKSkgeyBcCisgICAgICAgICAgICBFSU5BX0xPR19DUklUIFwKKyAgICAg
ICAgICAgICAgICAoIiVwICglcykgaXMgbm90IG9mIGFuIGV3a19mcmFtZSEiLCBld2tGcmFtZSwg
XAorICAgICAgICAgICAgICAgIF90bXBfb3R5cGUgPyBfdG1wX290eXBlIDogIihudWxsKSIpOyBc
CisgICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187IFwKKyAgICAgICAgfSBcCiAgICAgfSB3
aGlsZSAoMCkKICNlbmRpZgogCi0jZGVmaW5lIEVXS19GUkFNRV9TRF9HRVQoZXdrRnJhbWUsIHB0
cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBFd2tfRnJhbWVfU21hcnRf
RGF0YSogcHRyID0gc3RhdGljX2Nhc3Q8RXdrX0ZyYW1lX1NtYXJ0X0RhdGEqPihldmFzX29iamVj
dF9zbWFydF9kYXRhX2dldChld2tGcmFtZSkpCisjZGVmaW5lIEVXS19GUkFNRV9TRF9HRVQoZXdr
RnJhbWUsIHBvaW50ZXIpIFwKKyAgICBFd2tfRnJhbWVfU21hcnRfRGF0YSogcG9pbnRlciA9IHN0
YXRpY19jYXN0PEV3a19GcmFtZV9TbWFydF9EYXRhKj4oZXZhc19vYmplY3Rfc21hcnRfZGF0YV9n
ZXQoZXdrRnJhbWUpKQogCi0jZGVmaW5lIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKGV3a0Zy
YW1lLCBwdHIsIC4uLikgICAgICAgICBcCi0gICAgRVdLX0ZSQU1FX1RZUEVfQ0hFQ0soZXdrRnJh
bWUsIF9fVkFfQVJHU19fKTsgICAgICAgICAgICAgICBcCi0gICAgRVdLX0ZSQU1FX1NEX0dFVChl
d2tGcmFtZSwgcHRyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgaWYgKCFwdHIp
IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgQ1JJ
VElDQUwoIm5vIHNtYXJ0IGRhdGEgZm9yIG9iamVjdCAlcCAoJXMpIiwgICAgXAotICAgICAgICAg
ICAgICAgICBld2tGcmFtZSwgZXZhc19vYmplY3RfdHlwZV9nZXQoZXdrRnJhbWUpKTsgICAgICAg
ICAgIFwKLSAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorI2RlZmluZSBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgcG9p
bnRlciwgLi4uKSBcCisgICAgRVdLX0ZSQU1FX1RZUEVfQ0hFQ0soZXdrRnJhbWUsIF9fVkFfQVJH
U19fKTsgXAorICAgIEVXS19GUkFNRV9TRF9HRVQoZXdrRnJhbWUsIHBvaW50ZXIpOyBcCisgICAg
aWYgKCFwb2ludGVyKSB7IFwKKyAgICAgICAgQ1JJVElDQUwoIm5vIHNtYXJ0IGRhdGEgZm9yIG9i
amVjdCAlcCAoJXMpIiwgXAorICAgICAgICAgICAgICAgICBld2tGcmFtZSwgZXZhc19vYmplY3Rf
dHlwZV9nZXQoZXdrRnJhbWUpKTsgXAorICAgICAgICByZXR1cm4gX19WQV9BUkdTX187IFwKICAg
ICB9CiAKIHN0YXRpYyBFdmFzX1NtYXJ0X0NsYXNzIF9wYXJlbnRfc2MgPSBFVkFTX1NNQVJUX0NM
QVNTX0lOSVRfTlVMTDsKQEAgLTQ2OCwxMCArNDY4LDEwIEBAIGNoYXIqIGV3a19mcmFtZV9zZWxl
Y3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKIHsKICAgICBFV0tfRlJBTUVf
U0RfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgc21hcnREYXRhLCAwKTsKICAgICBFSU5BX1NBRkVU
WV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnREYXRhLT5mcmFtZSwgMCk7Ci0gICAgV1RGOjpDU3Ry
aW5nIHMgPSBzbWFydERhdGEtPmZyYW1lLT5lZGl0b3IoKS0+c2VsZWN0ZWRUZXh0KCkudXRmOCgp
OwotICAgIGlmIChzLmlzTnVsbCgpKQorICAgIFdURjo6Q1N0cmluZyBzZWxlY3RlZFRleHQgPSBz
bWFydERhdGEtPmZyYW1lLT5lZGl0b3IoKS0+c2VsZWN0ZWRUZXh0KCkudXRmOCgpOworICAgIGlm
IChzZWxlY3RlZFRleHQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBz
dHJkdXAocy5kYXRhKCkpOworICAgIHJldHVybiBzdHJkdXAoc2VsZWN0ZWRUZXh0LmRhdGEoKSk7
CiB9CiAKIEVpbmFfQm9vbCBld2tfZnJhbWVfdGV4dF9zZWFyY2goY29uc3QgRXZhc19PYmplY3Qq
IGV3a0ZyYW1lLCBjb25zdCBjaGFyKiB0ZXh0LCBFaW5hX0Jvb2wgY2FzZVNlbnNpdGl2ZSwgRWlu
YV9Cb29sIGZvcndhcmQsIEVpbmFfQm9vbCB3cmFwKQpAQCAtODM0LDggKzgzNCw4IEBAIEVpbmFf
Qm9vbCBld2tfZnJhbWVfZmVlZF9mb2N1c19pbihFdmFzX09iamVjdCogZXdrRnJhbWUpCiB7CiAg
ICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4oZXdrRnJhbWUsIHNtYXJ0RGF0YSwgZmFsc2Up
OwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzbWFydERhdGEtPmZyYW1lLCBm
YWxzZSk7Ci0gICAgV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyKiBjID0gc21hcnREYXRhLT5mcmFt
ZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKTsKLSAgICBjLT5zZXRGb2N1c2VkRnJhbWUoc21h
cnREYXRhLT5mcmFtZSk7CisgICAgV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyKiBmb2N1c0NvbnRy
b2xsZXIgPSBzbWFydERhdGEtPmZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpOworICAg
IGZvY3VzQ29udHJvbGxlci0+c2V0Rm9jdXNlZEZyYW1lKHNtYXJ0RGF0YS0+ZnJhbWUpOwogICAg
IHJldHVybiB0cnVlOwogfQogCkBAIC0xNzc0LDcgKzE3NzQsNyBAQCB2b2lkIGV3a19mcmFtZV9t
aXhlZF9jb250ZW50X3J1bl9zZXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBib29sIGhhc1J1bikK
IAogbmFtZXNwYWNlIEVXS1ByaXZhdGUgewogCi1XZWJDb3JlOjpGcmFtZSAqY29yZUZyYW1lKGNv
bnN0IEV2YXNfT2JqZWN0ICpld2tGcmFtZSkKK1dlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUoY29u
c3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVU
VVJOKGV3a0ZyYW1lLCBzbWFydERhdGEsIDApOwogICAgIHJldHVybiBzbWFydERhdGEtPmZyYW1l
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oIGIvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCmluZGV4IDBkZjhjNTEuLmY3NDU1NWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKQEAgLTg1Nyw3ICs4NTcsNyBAQCBFQVBJIEVpbmFfTGlz
dCAqZXdrX2ZyYW1lX3Jlc291cmNlc19sb2NhdGlvbl9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8p
OwogICogQHJldHVybiBBIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgKHdoaWNoIG11c3QgYmUgZnJl
ZWQgYnkgdGhlIGNhbGxlciB3aXRoIEBjIGZyZWUoKSkKICAqICAgICAgICAgb3IgQGMgMCBpbiBj
YXNlIG9mIGZhaWx1cmUuCiAgKi8KLUVBUEkgY2hhciogZXdrX2ZyYW1lX3BsYWluX3RleHRfZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0KiBvKTsKK0VBUEkgY2hhciAqZXdrX2ZyYW1lX3BsYWluX3RleHRf
Z2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKIAogLyoqCiAgKiBSZXR1cm5zIHdoZXRoZXIgdGhl
IGZyYW1lIGhhcyBkaXNwbGF5ZWQgbWl4ZWQgY29udGVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfaGlzdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X2hpc3RvcnkuY3BwCmluZGV4IGEzOTg3NTkuLmZhZWYwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfaGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19oaXN0b3J5LmNwcApAQCAtMjU1LDkgKzI1NSw5IEBAIEV3a19IaXN0b3J5X0l0ZW0qIGV3
a19oaXN0b3J5X2l0ZW1fbmV3X2Zyb21fY29yZShXZWJDb3JlOjpIaXN0b3J5SXRlbSogY29yZSkK
IAogRXdrX0hpc3RvcnlfSXRlbSogZXdrX2hpc3RvcnlfaXRlbV9uZXcoY29uc3QgY2hhciogdXJp
LCBjb25zdCBjaGFyKiB0aXRsZSkKIHsKLSAgICBXVEY6OlN0cmluZyB1ID0gV1RGOjpTdHJpbmc6
OmZyb21VVEY4KHVyaSk7Ci0gICAgV1RGOjpTdHJpbmcgdCA9IFdURjo6U3RyaW5nOjpmcm9tVVRG
OCh0aXRsZSk7Ci0gICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+IGNvcmUgPSBX
ZWJDb3JlOjpIaXN0b3J5SXRlbTo6Y3JlYXRlKHUsIHQsIDApOworICAgIFdURjo6U3RyaW5nIGhp
c3RvcnlVcmkgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodXJpKTsKKyAgICBXVEY6OlN0cmluZyBo
aXN0b3J5VGl0bGUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodGl0bGUpOworICAgIFdURjo6UmVm
UHRyPFdlYkNvcmU6Okhpc3RvcnlJdGVtPiBjb3JlID0gV2ViQ29yZTo6SGlzdG9yeUl0ZW06OmNy
ZWF0ZShoaXN0b3J5VXJpLCBoaXN0b3J5VGl0bGUsIDApOwogICAgIEV3a19IaXN0b3J5X0l0ZW0q
IGl0ZW0gPSBld2tfaGlzdG9yeV9pdGVtX25ld19mcm9tX2NvcmUoY29yZS5yZWxlYXNlKCkubGVh
a1JlZigpKTsKICAgICByZXR1cm4gaXRlbTsKIH0KQEAgLTI4NywxOSArMjg3LDE5IEBAIGNvbnN0
IGNoYXIqIGV3a19oaXN0b3J5X2l0ZW1fdGl0bGVfZ2V0KGNvbnN0IEV3a19IaXN0b3J5X0l0ZW0q
IGl0ZW0pCiB7CiAgICAgRVdLX0hJU1RPUllfSVRFTV9DT1JFX0dFVF9PUl9SRVRVUk4oaXRlbSwg
Y29yZSwgMCk7CiAgICAgLy8gaGlkZSB0aGUgZm9sbG93aW5nIG9wdGltemF0aW9uIGZyb20gb3V0
c2lkZQotICAgIEV3a19IaXN0b3J5X0l0ZW0qIGl0ZW0xID0gY29uc3RfY2FzdDxFd2tfSGlzdG9y
eV9JdGVtKj4oaXRlbSk7Ci0gICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZpdGVtMS0+dGl0
bGUsIGNvcmUtPnRpdGxlKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIGl0ZW0xLT50aXRs
ZTsKKyAgICBFd2tfSGlzdG9yeV9JdGVtKiBoaXN0b3J5SXRlbSA9IGNvbnN0X2Nhc3Q8RXdrX0hp
c3RvcnlfSXRlbSo+KGl0ZW0pOworICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmaGlzdG9y
eUl0ZW0tPnRpdGxlLCBjb3JlLT50aXRsZSgpLnV0ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBo
aXN0b3J5SXRlbS0+dGl0bGU7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a19oaXN0b3J5X2l0ZW1fdGl0
bGVfYWx0ZXJuYXRlX2dldChjb25zdCBFd2tfSGlzdG9yeV9JdGVtKiBpdGVtKQogewogICAgIEVX
S19ISVNUT1JZX0lURU1fQ09SRV9HRVRfT1JfUkVUVVJOKGl0ZW0sIGNvcmUsIDApOwogICAgIC8v
IGhpZGUgdGhlIGZvbGxvd2luZyBvcHRpbXphdGlvbiBmcm9tIG91dHNpZGUKLSAgICBFd2tfSGlz
dG9yeV9JdGVtKiBpdGVtMSA9IGNvbnN0X2Nhc3Q8RXdrX0hpc3RvcnlfSXRlbSo+KGl0ZW0pOwot
ICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmaXRlbTEtPmFsdGVybmF0ZVRpdGxlLAorICAg
IEV3a19IaXN0b3J5X0l0ZW0qIGhpc3RvcnlJdGVtID0gY29uc3RfY2FzdDxFd2tfSGlzdG9yeV9J
dGVtKj4oaXRlbSk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZoaXN0b3J5SXRlbS0+
YWx0ZXJuYXRlVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcmUtPmFsdGVy
bmF0ZVRpdGxlKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIGl0ZW0xLT5hbHRlcm5hdGVU
aXRsZTsKKyAgICByZXR1cm4gaGlzdG9yeUl0ZW0tPmFsdGVybmF0ZVRpdGxlOwogfQogCiB2b2lk
IGV3a19oaXN0b3J5X2l0ZW1fdGl0bGVfYWx0ZXJuYXRlX3NldChFd2tfSGlzdG9yeV9JdGVtKiBp
dGVtLCBjb25zdCBjaGFyKiB0aXRsZSkKQEAgLTMxNCwxOSArMzE0LDE5IEBAIGNvbnN0IGNoYXIq
IGV3a19oaXN0b3J5X2l0ZW1fdXJpX2dldChjb25zdCBFd2tfSGlzdG9yeV9JdGVtKiBpdGVtKQog
ewogICAgIEVXS19ISVNUT1JZX0lURU1fQ09SRV9HRVRfT1JfUkVUVVJOKGl0ZW0sIGNvcmUsIDAp
OwogICAgIC8vIGhpZGUgdGhlIGZvbGxvd2luZyBvcHRpbXphdGlvbiBmcm9tIG91dHNpZGUKLSAg
ICBFd2tfSGlzdG9yeV9JdGVtKiBpID0gY29uc3RfY2FzdDxFd2tfSGlzdG9yeV9JdGVtKj4oKGl0
ZW0pKTsKLSAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJmktPnVyaSwgY29yZS0+dXJsU3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIGktPnVyaTsKKyAgICBFd2tfSGlzdG9y
eV9JdGVtKiBoaXN0b3J5SXRlbSA9IGNvbnN0X2Nhc3Q8RXdrX0hpc3RvcnlfSXRlbSo+KChpdGVt
KSk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZoaXN0b3J5SXRlbS0+dXJpLCBjb3Jl
LT51cmxTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gaGlzdG9yeUl0ZW0tPnVy
aTsKIH0KIAogY29uc3QgY2hhciogZXdrX2hpc3RvcnlfaXRlbV91cmlfb3JpZ2luYWxfZ2V0KGNv
bnN0IEV3a19IaXN0b3J5X0l0ZW0qIGl0ZW0pCiB7CiAgICAgRVdLX0hJU1RPUllfSVRFTV9DT1JF
X0dFVF9PUl9SRVRVUk4oaXRlbSwgY29yZSwgMCk7CiAgICAgLy8gaGlkZSB0aGUgZm9sbG93aW5n
IG9wdGltemF0aW9uIGZyb20gb3V0c2lkZQotICAgIEV3a19IaXN0b3J5X0l0ZW0qIGkgPSBjb25z
dF9jYXN0PEV3a19IaXN0b3J5X0l0ZW0qPihpdGVtKTsKLSAgICBlaW5hX3N0cmluZ3NoYXJlX3Jl
cGxhY2UoJmktPm9yaWdpbmFsVXJpLAorICAgIEV3a19IaXN0b3J5X0l0ZW0qIGhpc3RvcnlJdGVt
ID0gY29uc3RfY2FzdDxFd2tfSGlzdG9yeV9JdGVtKj4oaXRlbSk7CisgICAgZWluYV9zdHJpbmdz
aGFyZV9yZXBsYWNlKCZoaXN0b3J5SXRlbS0+b3JpZ2luYWxVcmksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvcmUtPm9yaWdpbmFsVVJMU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgcmV0dXJuIGktPm9yaWdpbmFsVXJpOworICAgIHJldHVybiBoaXN0b3J5SXRlbS0+b3JpZ2lu
YWxVcmk7CiB9CiAKIGRvdWJsZSBld2tfaGlzdG9yeV9pdGVtX3RpbWVfbGFzdF92aXNpdGVkX2dl
dChjb25zdCBFd2tfSGlzdG9yeV9JdGVtKiBpdGVtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19uZXR3b3JrLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX25ldHdv
cmsuaAppbmRleCA2MTJjMmY3Li4zOTc3ZTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX25ldHdvcmsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX25ldHdv
cmsuaApAQCAtMTE5LDcgKzExOSw3IEBAIEVBUEkgdm9pZCAgICAgICAgICAgICBld2tfbmV0d29y
a190bHNfY2FfY2VydGlmaWNhdGVzX3BhdGhfc2V0KGNvbnN0IGNoYXIgKnBhdGgpCiAgKiBAcmV0
dXJuIFRoZSBkZWZhdWx0IEBjIFNvdXBTZXNzaW9uIGluIHVzZSwgb3IgQGMgTlVMTCBpZiBhbm90
aGVyIG5ldHdvcmsKICAqICAgICAgICAgYmFja2VuZCB3YXMgdXNlZC4KICAqLwotRUFQSSBTb3Vw
U2Vzc2lvbiogICAgIGV3a19uZXR3b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dldCh2b2lkKTsK
K0VBUEkgU291cFNlc3Npb24gICAgICpld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9n
ZXQodm9pZCk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5jcHAKaW5kZXggNGNkZDcyZC4uMzBkZjYw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9iYWNraW5nX3N0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmUuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8
c3RyaW5nLmg+CiAKLSNkZWZpbmUgSURYKGNvbCwgcm93LCByb3dzcGFuKSAoY29sICsgKHJvdyAq
IHJvd3NwYW4pKQorI2RlZmluZSBJRFgoY29sdW1uLCByb3csIHJvd3NwYW4pIChjb2x1bW4gKyAo
cm93ICogcm93c3BhbikpCiAKIHR5cGVkZWYgc3RydWN0IF9Fd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9EYXRhIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGE7CiB0eXBlZGVmIHN0cnVjdCBfRXdr
X1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtOwpA
QCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX0V3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0gewog
ICAgIHN0cnVjdCB7CiAgICAgICAgIEV2YXNfQ29vcmQgeCwgeSwgd2lkdGgsIGhlaWdodDsKICAg
ICB9IGdlb21ldHJ5OwotICAgIGJvb2wgc21vb3RoX3NjYWxlOworICAgIGJvb2wgc21vb3RoU2Nh
bGU7CiB9OwogCiBzdHJ1Y3QgX0V3a19UaWxlZF9CYWNraW5nX1N0b3JlX1ByZV9SZW5kZXJfUmVx
dWVzdCB7CkBAIC02MSw3ICs2MSw3IEBAIHN0cnVjdCBfRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVf
RGF0YSB7CiAgICAgc3RydWN0IHsKICAgICAgICAgRWluYV9Jbmxpc3QqKiBpdGVtczsKICAgICAg
ICAgRXZhc19Db29yZCB4LCB5LCB3aWR0aCwgaGVpZ2h0OwotICAgICAgICBsb25nIGNvbHMsIHJv
d3M7CisgICAgICAgIGxvbmcgY29sdW1ucywgcm93czsKICAgICAgICAgc3RydWN0IHsKICAgICAg
ICAgICAgIEV2YXNfQ29vcmQgd2lkdGgsIGhlaWdodDsKICAgICAgICAgICAgIGZsb2F0IHpvb207
CkBAIC03MSw3ICs3MSw3IEBAIHN0cnVjdCBfRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSB7
CiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAg
IEV2YXNfQ29vcmQgeCwgeTsKLSAgICAgICAgICAgIH0gY3VyLCBvbGQsIGJhc2UsIHpvb21DZW50
ZXI7CisgICAgICAgICAgICB9IGN1cnJlbnQsIG9sZCwgYmFzZSwgem9vbUNlbnRlcjsKICAgICAg
ICAgfSBvZmZzZXQ7CiAgICAgICAgIGJvb2wgdmlzaWJsZSA6IDE7CiAgICAgfSB2aWV3OwpAQCAt
MTA4LDE4ICsxMDgsMTggQEAgc3RydWN0IF9Fd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhIHsK
ICAgICAgICAgYm9vbCBvZmZzZXQgOiAxOwogICAgIH0gY2hhbmdlZDsKICNpZmRlZiBERUJVR19N
RU1fTEVBS1MKLSAgICBFY29yZV9FdmVudF9IYW5kbGVyKiBzaWdfdXNyOworICAgIEVjb3JlX0V2
ZW50X0hhbmRsZXIqIHNpZ25hbFVzZXI7CiAjZW5kaWYKIH07CiAKIHN0YXRpYyBFdmFzX1NtYXJ0
X0NsYXNzIF9wYXJlbnRfc2MgPSBFVkFTX1NNQVJUX0NMQVNTX0lOSVRfTlVMTDsKIGludCBfZXdr
X3RpbGVkX2xvZ19kb20gPSAtMTsKIAotI2RlZmluZSBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihv
YmosIHB0ciwgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBQUklWX0RBVEFf
R0VUX09SX1JFVFVSTihvYmosIHB0ciwgLi4uKSBcCiAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3Rv
cmVfRGF0YSogcHRyID0gc3RhdGljX2Nhc3Q8RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSo+
KGV2YXNfb2JqZWN0X3NtYXJ0X2RhdGFfZ2V0KG9iaikpOyBcCi0gICAgaWYgKCFwdHIpIHsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
ICAgIENSSVRJQ0FMKCJubyBwcml2YXRlIGRhdGEgaW4gb2JqPSVwIiwgb2JqKTsgICAgICAgICAg
ICAgICAgICBcCi0gICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCFwdHIpIHsgXAorICAgICAgICBDUklU
SUNBTCgibm8gcHJpdmF0ZSBkYXRhIGluIG9iaj0lcCIsIG9iaik7IFwKKyAgICAgICAgcmV0dXJu
IF9fVkFfQVJHU19fOyBcCiAgICAgfQogCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfZmlsbF9yZW5kZXJlcnMoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdik7
CkBAIC0yMDMsMTMgKzIwMywxMyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfaXRlbV9yZXNpemUoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaQogc3RhdGljIHZv
aWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfYXNzb2NpYXRlKEV3a19UaWxlZF9CYWNr
aW5nX1N0b3JlX0RhdGEqIHByaXYsIEV3a19UaWxlKiB0aWxlLCBFd2tfVGlsZWRfQmFja2luZ19T
dG9yZV9JdGVtKiBpdGVtKQogewogICAgIGlmIChpdGVtLT50aWxlKQotICAgICAgICBDUklUSUNB
TCgiaXQtPnRpbGU9JXAsIGJ1dCBpdCBzaG91bGQgYmUgMCEiLCBpdGVtLT50aWxlKTsKKyAgICAg
ICAgQ1JJVElDQUwoIml0ZW0tPnRpbGU9JXAsIGJ1dCBpdCBzaG91bGQgYmUgMCEiLCBpdGVtLT50
aWxlKTsKICAgICBpdGVtLT50aWxlID0gdGlsZTsKICAgICBldmFzX29iamVjdF9tb3ZlKGl0ZW0t
PnRpbGUtPmltYWdlLCBpdGVtLT5nZW9tZXRyeS54LCBpdGVtLT5nZW9tZXRyeS55KTsKICAgICBl
dmFzX29iamVjdF9yZXNpemUoaXRlbS0+dGlsZS0+aW1hZ2UsIGl0ZW0tPmdlb21ldHJ5LndpZHRo
LCBpdGVtLT5nZW9tZXRyeS5oZWlnaHQpOwogICAgIGV2YXNfb2JqZWN0X2ltYWdlX2ZpbGxfc2V0
CiAgICAgICAgIChpdGVtLT50aWxlLT5pbWFnZSwgMCwgMCwgaXRlbS0+Z2VvbWV0cnkud2lkdGgs
IGl0ZW0tPmdlb21ldHJ5LmhlaWdodCk7Ci0gICAgZXZhc19vYmplY3RfaW1hZ2Vfc21vb3RoX3Nj
YWxlX3NldChpdGVtLT50aWxlLT5pbWFnZSwgaXRlbS0+c21vb3RoX3NjYWxlKTsKKyAgICBldmFz
X29iamVjdF9pbWFnZV9zbW9vdGhfc2NhbGVfc2V0KGl0ZW0tPnRpbGUtPmltYWdlLCBpdGVtLT5z
bW9vdGhTY2FsZSk7CiAgICAgZXZhc19vYmplY3RfaW1hZ2VfYWxwaGFfc2V0KGl0ZW0tPnRpbGUt
PmltYWdlLCBwcml2LT52aWV3LnRpbGUuaGFzQWxwaGEpOwogCiAgICAgaWYgKCFld2tfdGlsZV92
aXNpYmxlX2dldCh0aWxlKSkKQEAgLTIyMCwxMyArMjIwLDEzIEBAIHN0YXRpYyB2b2lkIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Fzc29jaWF0ZShFd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9EYXRhCiAKIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Rpc3Nv
Y2lhdGUoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiwgRXdrX1RpbGVkX0JhY2tp
bmdfU3RvcmVfSXRlbSogaXRlbSwgZG91YmxlIGxhc3RVc2VkKQogewotICAgIEV3a19UaWxlX1Vu
dXNlZF9DYWNoZSogdGlsZWRVbnVzZWRDYWNoZTsKKyAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUq
IHRpbGVVbnVzZWRDYWNoZTsKICAgICBld2tfdGlsZV9oaWRlKGl0ZW0tPnRpbGUpOwogICAgIGlm
ICghZXdrX3RpbGVfdmlzaWJsZV9nZXQoaXRlbS0+dGlsZSkpCiAgICAgICAgIGV2YXNfb2JqZWN0
X3NtYXJ0X21lbWJlcl9kZWwoaXRlbS0+dGlsZS0+aW1hZ2UpOwogICAgIGV3a190aWxlX21hdHJp
eF90aWxlX3B1dChwcml2LT5tb2RlbC5tYXRyaXgsIGl0ZW0tPnRpbGUsIGxhc3RVc2VkKTsKLSAg
ICB0aWxlZFVudXNlZENhY2hlID0gZXdrX3RpbGVfbWF0cml4X3VudXNlZF9jYWNoZV9nZXQocHJp
di0+bW9kZWwubWF0cml4KTsKLSAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0
aWxlZFVudXNlZENhY2hlKTsKKyAgICB0aWxlVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9tYXRyaXhf
dW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgpOworICAgIGV3a190aWxlX3VudXNl
ZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGVVbnVzZWRDYWNoZSk7CiAKICAgICBpdGVtLT50aWxlID0g
MDsKIH0KQEAgLTI5MiwyNiArMjkyLDI2IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfZmx1c2goRXdrX1RpbGVkX0JhY2tpbmdfCiBzdGF0
aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0X2NsZWFy
KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYpCiB7CiAgICAgRWluYV9Jbmxpc3Qq
KiBwcmVSZW5kZXJMaXN0ID0gJnByaXYtPnJlbmRlci5wcmVSZW5kZXJSZXF1ZXN0czsKLSAgICBF
aW5hX0lubGlzdCogaXRlciA9ICpwcmVSZW5kZXJMaXN0LCAqdG1wOworICAgIEVpbmFfSW5saXN0
KiBpdGVyID0gKnByZVJlbmRlckxpc3QsICpuZXh0OwogICAgIHdoaWxlIChpdGVyKSB7CiAgICAg
ICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX1ByZV9SZW5kZXJfUmVxdWVzdCogcmVxdWVzdCA9
CiAgICAgICAgICAgICBFSU5BX0lOTElTVF9DT05UQUlORVJfR0VUKAogICAgICAgICAgICAgICAg
IGl0ZXIsIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX1ByZV9SZW5kZXJfUmVxdWVzdCk7Ci0gICAg
ICAgIHRtcCA9IGl0ZXItPm5leHQ7CisgICAgICAgIG5leHQgPSBpdGVyLT5uZXh0OwogICAgICAg
ICAqcHJlUmVuZGVyTGlzdCA9IGVpbmFfaW5saXN0X3JlbW92ZSgqcHJlUmVuZGVyTGlzdCwgaXRl
cik7Ci0gICAgICAgIGl0ZXIgPSB0bXA7CisgICAgICAgIGl0ZXIgPSBuZXh0OwogICAgICAgICBm
cmVlKHJlcXVlc3QpOwogICAgIH0KIH0KIAotLyogYXNzdW1lcyBwcml2LT5wcm9jZXNzLnByZV9j
YiB3YXMgY2FsbGVkIGlmIHJlcXVpcmVkISAqLworLyogYXNzdW1lcyBwcml2LT5wcm9jZXNzLnBy
ZUNhbGxiYWNrIHdhcyBjYWxsZWQgaWYgcmVxdWlyZWQhICovCiBzdGF0aWMgdm9pZCBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0X3Byb2Nlc3Nfc2luZ2xlKEV3a19U
aWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYpCiB7CiAgICAgRXdrX1RpbGVkX0JhY2tpbmdf
U3RvcmVfUHJlX1JlbmRlcl9SZXF1ZXN0KiByZXF1ZXN0OwogICAgIEVpbmFfUmVjdGFuZ2xlIGFy
ZWE7CiAgICAgRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4ID0gcHJpdi0+bW9kZWwubWF0cml4
OwogICAgIEV3a19UaWxlKiB0aWxlOwotICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZWRV
bnVzZWRDYWNoZTsKKyAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZTsK
ICAgICB1bnNpZ25lZCBsb25nIGNvbHVtbiwgcm93OwogICAgIGZsb2F0IHpvb207CiAgICAgZG91
YmxlIGxhc3RfdXNlZCA9IGVjb3JlX2xvb3BfdGltZV9nZXQoKTsKQEAgLTM0OCw4ICszNDgsOCBA
QCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0
X3Byb2Nlc3Nfc2luZ2xlKEV3a19UaWxlZAogCiBlbmQ6CiAgICAgX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9kZWwocHJpdiwgcmVxdWVzdCk7Ci0gICAgdGlsZWRV
bnVzZWRDYWNoZSA9IGV3a190aWxlX21hdHJpeF91bnVzZWRfY2FjaGVfZ2V0KHByaXYtPm1vZGVs
Lm1hdHJpeCk7Ci0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2F1dG9fZmx1c2godGlsZWRVbnVz
ZWRDYWNoZSk7CisgICAgdGlsZVVudXNlZENhY2hlID0gZXdrX3RpbGVfbWF0cml4X3VudXNlZF9j
YWNoZV9nZXQocHJpdi0+bW9kZWwubWF0cml4KTsKKyAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVf
YXV0b19mbHVzaCh0aWxlVW51c2VkQ2FjaGUpOwogfQogCiBzdGF0aWMgRWluYV9Cb29sIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Byb2Nlc3NfaWRsZXJfY2Iodm9pZCogZGF0YSkKQEAg
LTQzMCwxOCArNDMwLDE4IEBAIHN0YXRpYyBpbmxpbmUgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9pdGVtX2ZpbGwoRXdrX1RpbGVkX0JhY2tpbmdfU3RvCiAKICAgICAgICAgaWYg
KGl0ZW0tPnRpbGUpIHsKICAgICAgICAgICAgIEV3a19UaWxlKiBvbGQgPSBpdGVtLT50aWxlOwot
ICAgICAgICAgICAgaWYgKG9sZC0+cm93ICE9IGN1cnJlbnRSb3cgfHwgb2xkLT5jb2wgIT0gY3Vy
cmVudENvbHVtbiB8fCBvbGQtPnpvb20gIT0gem9vbSkKKyAgICAgICAgICAgIGlmIChvbGQtPnJv
dyAhPSBjdXJyZW50Um93IHx8IG9sZC0+Y29sdW1uICE9IGN1cnJlbnRDb2x1bW4gfHwgb2xkLT56
b29tICE9IHpvb20pCiAgICAgICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Rp
bGVfZGlzc29jaWF0ZShwcml2LCBpdGVtLCBsYXN0VXNlZCk7Ci0gICAgICAgICAgICBlbHNlIGlm
IChvbGQtPnJvdyA9PSBjdXJyZW50Um93ICYmIG9sZC0+Y29sID09IGN1cnJlbnRDb2x1bW4gJiYg
b2xkLT56b29tID09IHpvb20pCisgICAgICAgICAgICBlbHNlIGlmIChvbGQtPnJvdyA9PSBjdXJy
ZW50Um93ICYmIG9sZC0+Y29sdW1uID09IGN1cnJlbnRDb2x1bW4gJiYgb2xkLT56b29tID09IHpv
b20pCiAgICAgICAgICAgICAgICAgZ290byBlbmQ7CiAgICAgICAgIH0KIAogICAgICAgICB0aWxl
ID0gZXdrX3RpbGVfbWF0cml4X3RpbGVfZXhhY3RfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCwgY3Vy
cmVudENvbHVtbiwgY3VycmVudFJvdywgem9vbSk7CiAKICAgICAgICAgaWYgKCF0aWxlKSB7Ci0g
ICAgICAgICAgICAvKiBOT1RFOiBpdCBuZXZlciByZXR1cm5zIDAgaWYgaXQtPnRpbGUgd2FzIHNl
dCEgKi8KKyAgICAgICAgICAgIC8qIE5PVEU6IGl0IG5ldmVyIHJldHVybnMgMCBpZiBpdGVtLT50
aWxlIHdhcyBzZXQhICovCiAgICAgICAgICAgICBpZiAoaXRlbS0+dGlsZSkgewotICAgICAgICAg
ICAgICAgIENSSVRJQ0FMKCJpdC0+dGlsZT0lcCwgYnV0IGl0IHNob3VsZCBiZSAwISIsIGl0ZW0t
PnRpbGUpOworICAgICAgICAgICAgICAgIENSSVRJQ0FMKCJpdGVtLT50aWxlPSVwLCBidXQgaXQg
c2hvdWxkIGJlIDAhIiwgaXRlbS0+dGlsZSk7CiAgICAgICAgICAgICAgICAgX2V3a190aWxlZF9i
YWNraW5nX3N0b3JlX3RpbGVfZGlzc29jaWF0ZShwcml2LCBpdGVtLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFVzZWQpOwogICAg
ICAgICAgICAgfQpAQCAtNDczLDcgKzQ3Myw3IEBAIHN0YXRpYyBFd2tfVGlsZWRfQmFja2luZ19T
dG9yZV9JdGVtKiBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9hZGQoRXdrX1RpbGVkCiAg
ICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbTsKICAgICBFdmFzX0Nvb3JkIHgs
IHksIHRpbGVXaWR0aCwgdGlsZUhlaWdodDsKIAotICAgIERCRygiZXdrQmFja2luZ1N0b3JlJXAi
LCBwcml2LT5zZWxmKTsKKyAgICBEQkcoImV3a0JhY2tpbmdTdG9yZT0lcCIsIHByaXYtPnNlbGYp
OwogCiAgICAgaXRlbSA9IHN0YXRpY19jYXN0PEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0q
PihtYWxsb2Moc2l6ZW9mKCppdGVtKSkpOwogICAgIGlmICghaXRlbSkKQEAgLTQ4MSwxMiArNDgx
LDEyIEBAIHN0YXRpYyBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfaXRlbV9hZGQoRXdrX1RpbGVkCiAKICAgICB0aWxlV2lkdGggPSBwcml2LT52
aWV3LnRpbGUud2lkdGg7CiAgICAgdGlsZUhlaWdodCA9IHByaXYtPnZpZXcudGlsZS5oZWlnaHQ7
Ci0gICAgeCA9IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCArIHByaXYtPnZpZXcueCArIHRpbGVX
aWR0aCAgKmNvbHVtbjsKLSAgICB5ID0gcHJpdi0+dmlldy5vZmZzZXQuYmFzZS55ICsgcHJpdi0+
dmlldy55ICsgdGlsZUhlaWdodCAgKnJvdzsKKyAgICB4ID0gcHJpdi0+dmlldy5vZmZzZXQuYmFz
ZS54ICsgcHJpdi0+dmlldy54ICsgdGlsZVdpZHRoICogY29sdW1uOworICAgIHkgPSBwcml2LT52
aWV3Lm9mZnNldC5iYXNlLnkgKyBwcml2LT52aWV3LnkgKyB0aWxlSGVpZ2h0ICogcm93OwogCiAg
ICAgaXRlbS0+dGlsZSA9IDA7CiAKLSAgICBpdGVtLT5zbW9vdGhfc2NhbGUgPSBwcml2LT52aWV3
LnRpbGUuem9vbVdlYWtTbW9vdGhTY2FsZTsKKyAgICBpdGVtLT5zbW9vdGhTY2FsZSA9IHByaXYt
PnZpZXcudGlsZS56b29tV2Vha1Ntb290aFNjYWxlOwogICAgIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9pdGVtX21vdmUoaXRlbSwgeCwgeSk7CiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X2l0ZW1fcmVzaXplKGl0ZW0sIHRpbGVXaWR0aCwgdGlsZUhlaWdodCk7CiAgICAgaWYgKCFfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKHByaXYsIGl0ZW0sIGNvbHVtbiwgcm93KSkg
ewpAQCAtNTA5LDcgKzUwOSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9pdGVtX2RlbChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2CiAKIHN0YXRpYyB2
b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Ntb290aF9zY2FsZV9zZXQoRXdrX1Rp
bGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbSwgRWluYV9Cb29sIHNtb290aFNjYWxlKQogewot
ICAgIGlmIChpdGVtLT5zbW9vdGhfc2NhbGUgPT0gc21vb3RoU2NhbGUpCisgICAgaWYgKGl0ZW0t
PnNtb290aFNjYWxlID09IHNtb290aFNjYWxlKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAo
aXRlbS0+dGlsZSkKQEAgLTU0OCwxNiArNTQ4LDE2IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfY29sc19lbmRfYWRkKEV3a19UaWxlZF9CYWNraW5nX1N0
CiAgICAgdW5zaWduZWQgaW50IGksIHJvdyA9IHJvd0xpc3QgLSBwcml2LT52aWV3Lml0ZW1zOwog
CiAgICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyssIGJhc2VDb2x1bW4rKykgewotICAgICAg
ICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdDsKKyAgICAgICAgRXdrX1RpbGVkX0Jh
Y2tpbmdfU3RvcmVfSXRlbSogaXRlbTsKIAotICAgICAgICBpdCA9IF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9pdGVtX2FkZChwcml2LCBiYXNlQ29sdW1uLCByb3cpOwotICAgICAgICBpZiAoIWl0
KSB7CisgICAgICAgIGl0ZW0gPSBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9hZGQocHJp
diwgYmFzZUNvbHVtbiwgcm93KTsKKyAgICAgICAgaWYgKCFpdGVtKSB7CiAgICAgICAgICAgICBD
UklUSUNBTCgiZmFpbGVkIHRvIGFkZCBjb2x1bW4gJXUgb2YgJXUgaW4gcm93ICV1LiIsIGksIGNv
dW50LCByb3cpOwogICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfY29s
c19lbmRfZGVsKHByaXYsIHJvd0xpc3QsIGkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICB9CiAKLSAgICAgICAgKnJvd0xpc3QgPSBlaW5hX2lubGlzdF9hcHBlbmQoKnJvd0xp
c3QsIEVJTkFfSU5MSVNUX0dFVChpdCkpOworICAgICAgICAqcm93TGlzdCA9IGVpbmFfaW5saXN0
X2FwcGVuZCgqcm93TGlzdCwgRUlOQV9JTkxJU1RfR0VUKGl0ZW0pKTsKICAgICB9CiAgICAgcmV0
dXJuIHRydWU7CiB9CkBAIC01OTEsNyArNTkxLDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9i
YWNraW5nX3N0b3JlX3ZpZXdfcm93c19hbGxfZGVsKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0QK
IAogICAgIGZyZWUocHJpdi0+dmlldy5pdGVtcyk7CiAgICAgcHJpdi0+dmlldy5pdGVtcyA9IDA7
Ci0gICAgcHJpdi0+dmlldy5jb2xzID0gMDsKKyAgICBwcml2LT52aWV3LmNvbHVtbnMgPSAwOwog
ICAgIHByaXYtPnZpZXcucm93cyA9IDA7CiB9CiAKQEAgLTYwMCw3ICs2MDAsNyBAQCBzdGF0aWMg
dm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVuZGVyKHZvaWQqIGRhdGEsIEV3a19UaWxl
KiB0aWxlLCBjb25zdCBFaQogICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYg
PSBzdGF0aWNfY2FzdDxFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKj4oZGF0YSk7CiAKICAg
ICBJTkYoIlRPRE8gJXAgKHZpc2libGU/ICVkKSBbJWx1LCVsdV0gJWQsJWQgKyAlZHglZCIsCi0g
ICAgICAgIHRpbGUsIHRpbGUtPnZpc2libGUsIHRpbGUtPmNvbCwgdGlsZS0+cm93LCBhcmVhLT54
LCBhcmVhLT55LCBhcmVhLT53LCBhcmVhLT5oKTsKKyAgICAgICAgdGlsZSwgdGlsZS0+dmlzaWJs
ZSwgdGlsZS0+Y29sdW1uLCB0aWxlLT5yb3csIGFyZWEtPngsIGFyZWEtPnksIGFyZWEtPncsIGFy
ZWEtPmgpOwogCiAgICAgaWYgKCF0aWxlLT52aXNpYmxlKQogICAgICAgICByZXR1cm47CkBAIC02
NTcsNyArNjU3LDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX21lbV9k
YmcoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdikKICAgICBydW4rKzsKIAogICAg
IHByaW50ZigiXG4tLS0gQkVHSU4gREVCVUcgVElMRUQgQkFDS0lORyBTVE9SRSBNRU1PUlkgWyVk
XSAtLVxuIgotICAgICAgICAgICAidD0lMC4yZiwgb2JqPSVwLCBwcml2PSVwLCB2aWV3Lml0ZW1z
PSVwLCBtYXRyaXg9JXBcbiIsCisgICAgICAgICAgICJ0aWxlPSUwLjJmLCBvYmo9JXAsIHByaXY9
JXAsIHZpZXcuaXRlbXM9JXAsIG1hdHJpeD0lcFxuIiwKICAgICAgICAgICAgcnVuLCBlY29yZV9s
b29wX3RpbWVfZ2V0KCksCiAgICAgICAgICAgIHByaXYtPnNlbGYsIHByaXYsIHByaXYtPnZpZXcu
aXRlbXMsIHByaXYtPm1vZGVsLm1hdHJpeCk7CiAKQEAgLTY2OSwxMyArNjY5LDEzIEBAIHN0YXRp
YyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9tZW1fZGJnKEV3a19UaWxlZF9CYWNraW5n
X1N0b3JlX0RhdGEqIHByaXYpCiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3NpZ191c3Iodm9pZCogZGF0YSwgaW50IHR5cGUsIHZvaWQqIGV2ZW50KQogewotICAg
IEVjb3JlX0V2ZW50X1NpZ25hbF9Vc2VyKiBzaWcgPSAoRWNvcmVfRXZlbnRfU2lnbmFsX1VzZXIq
KWV2ZW50OworICAgIEVjb3JlX0V2ZW50X1NpZ25hbF9Vc2VyKiBzaWduYWxVc2VyID0gKEVjb3Jl
X0V2ZW50X1NpZ25hbF9Vc2VyKilldmVudDsKICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9E
YXRhKiBwcml2ID0gKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqKWRhdGE7CiAKLSAgICBp
ZiAoc2lnLT5udW1iZXIgPT0gMikgewotICAgICAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRp
bGllVW51c2VkQ2FjaGU7Ci0gICAgICAgIHRpbGllVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9tYXRy
aXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgpOwotICAgICAgICBld2tfdGls
ZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0aWxpZVVudXNlZENhY2hlKTsKKyAgICBpZiAoc2ln
bmFsVXNlci0+bnVtYmVyID09IDIpIHsKKyAgICAgICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0
aWxlVW51c2VkQ2FjaGU7CisgICAgICAgIHRpbGVVbnVzZWRDYWNoZSA9IGV3a190aWxlX21hdHJp
eF91bnVzZWRfY2FjaGVfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7CisgICAgICAgIGV3a190aWxl
X3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGVVbnVzZWRDYWNoZSk7CiAgICAgfQogCiAgICAg
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfZGJnKHByaXYpOwpAQCAtNjk4LDggKzY5OCw4
IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9hZGQoRXZhc19P
YmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKICAgICBwcml2LT52aWV3LnRpbGUuem9vbSA9IDEuMDsK
ICAgICBwcml2LT52aWV3LnRpbGUud2lkdGggPSBkZWZhdWx0VGlsZVdpZHRoOwogICAgIHByaXYt
PnZpZXcudGlsZS5oZWlnaHQgPSBkZWZhdWx0VGlsZUhlaWd0aDsKLSAgICBwcml2LT52aWV3Lm9m
ZnNldC5jdXIueCA9IDA7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgPSAwOworICAgIHBy
aXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCA9IDA7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3Vy
cmVudC55ID0gMDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCA9IDA7CiAgICAgcHJpdi0+
dmlldy5vZmZzZXQub2xkLnkgPSAwOwogICAgIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCA9IDA7
CkBAIC03MzQsNyArNzM0LDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3NtYXJ0X2FkZChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlKQogICAgIGV2YXNfb2JqZWN0
X2NsaXBfc2V0KHByaXYtPmNvbnRlbnRzQ2xpcHBlciwgcHJpdi0+YmFzZS5jbGlwcGVyKTsKIAog
I2lmZGVmIERFQlVHX01FTV9MRUFLUwotICAgIHByaXYtPnNpZ191c3IgPSBlY29yZV9ldmVudF9o
YW5kbGVyX2FkZAorICAgIHByaXYtPnNpZ25hbFVzZXIgPSBlY29yZV9ldmVudF9oYW5kbGVyX2Fk
ZAogICAgICAgICAgICAgICAgICAgICAgICAgKEVDT1JFX0VWRU5UX1NJR05BTF9VU0VSLCBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfc2lnX3VzciwgcHJpdik7CiAjZW5kaWYKIH0KQEAgLTc0Miw3
ICs3NDIsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRk
KEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUpCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfc21hcnRfZGVsKEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUpCiB7CiAg
ICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2KTsKLSAgICBE
QkcoImV3a0JhY2tpbmdTdG9yZSVwIiwgZXdrQmFja2luZ1N0b3JlKTsKKyAgICBEQkcoImV3a0Jh
Y2tpbmdTdG9yZT0lcCIsIGV3a0JhY2tpbmdTdG9yZSk7CiAgICAgRXdrX1RpbGVfVW51c2VkX0Nh
Y2hlKiB0aWxlVW51c2VkQ2FjaGU7CiAKICAgICB0aWxlVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9t
YXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgpOwpAQCAtNzc0LDcgKzc3
NCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9kZWwoRXZh
c19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKIAogc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3NtYXJ0X21vdmUoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgRXZhc19D
b29yZCB4LCBFdmFzX0Nvb3JkIHkpCiB7Ci0gICAgREJHKCJld2tCYWNraW5nU3RvcmUlcCwgbmV3
IHBvczogJWR4JWQiLCBld2tCYWNraW5nU3RvcmUsIHgsIHkpOworICAgIERCRygiZXdrQmFja2lu
Z1N0b3JlPSVwLCBuZXcgcG9zOiAlZHglZCIsIGV3a0JhY2tpbmdTdG9yZSwgeCwgeSk7CiAKICAg
ICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUsIHByaXYpOwogCkBAIC03
OTAsNyArNzkwLDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0
X21vdmUoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgRXYKIAogc3RhdGljIHZvaWQgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X3Jlc2l6ZShFdmFzX09iamVjdCogZXdrQmFja2lu
Z1N0b3JlLCBFdmFzX0Nvb3JkIHdpZHRoLCBFdmFzX0Nvb3JkIGhlaWdodCkKIHsKLSAgICBEQkco
ImV3a0JhY2tpbmdTdG9yZSVwLCBuZXcgc2l6ZTogJWR4JWQiLCBld2tCYWNraW5nU3RvcmUsIHdp
ZHRoLCBoZWlnaHQpOworICAgIERCRygiZXdrQmFja2luZ1N0b3JlPSVwLCBuZXcgc2l6ZTogJWR4
JWQiLCBld2tCYWNraW5nU3RvcmUsIHdpZHRoLCBoZWlnaHQpOwogCiAgICAgUFJJVl9EQVRBX0dF
VF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2KTsKIApAQCAtODI0LDE4ICs4MjQsMTgg
QEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2hpZGUoRXZhc19P
YmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9yZWNhbGNfcmVuZGVyZXJzKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYs
IEV2YXNfQ29vcmQgd2lkdGgsIEV2YXNfQ29vcmQgaGVpZ2h0LCBFdmFzX0Nvb3JkIHRpbGVXaWR0
aCwgRXZhc19Db29yZCB0aWxlSGVpZ2h0KQogewogICAgIGxvbmcgY29sdW1ucywgcm93cywgb2xk
Um93cywgb2xkQ29sczsKLSAgICBJTkYoImV3a0JhY2tpbmdTdG9yZSVwLCBuZXcgc2l6ZTogJWR4
JWQiLCBwcml2LT5zZWxmLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICBJTkYoImV3a0JhY2tpbmdTdG9y
ZT0lcCwgbmV3IHNpemU6ICVkeCVkIiwgcHJpdi0+c2VsZiwgd2lkdGgsIGhlaWdodCk7CiAKICAg
ICBjb2x1bW5zID0gMSArIHN0YXRpY19jYXN0PGludD4oY2VpbCh3aWR0aCAvIHN0YXRpY19jYXN0
PGZsb2F0Pih0aWxlV2lkdGgpKSk7CiAgICAgcm93cyA9IDEgKyBzdGF0aWNfY2FzdDxpbnQ+KGNl
aWwoaGVpZ2h0IC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVIZWlnaHQpKSk7CiAKLSAgICBJTkYo
ImV3a0JhY2tpbmdTdG9yZSVwIG5ldyBncmlkIHNpemUgY29sczogJWxkLCByb3dzOiAlbGQsIHdh
cyAlbGQsICVsZCIsCi0gICAgICAgIHByaXYtPnNlbGYsIGNvbHVtbnMsIHJvd3MsIHByaXYtPnZp
ZXcuY29scywgcHJpdi0+dmlldy5yb3dzKTsKKyAgICBJTkYoImV3a0JhY2tpbmdTdG9yZT0lcCBu
ZXcgZ3JpZCBzaXplIGNvbHVtbnM6ICVsZCwgcm93czogJWxkLCB3YXMgJWxkLCAlbGQiLAorICAg
ICAgICBwcml2LT5zZWxmLCBjb2x1bW5zLCByb3dzLCBwcml2LT52aWV3LmNvbHVtbnMsIHByaXYt
PnZpZXcucm93cyk7CiAKLSAgICBpZiAocHJpdi0+dmlldy5jb2xzID09IGNvbHVtbnMgJiYgcHJp
di0+dmlldy5yb3dzID09IHJvd3MpCisgICAgaWYgKHByaXYtPnZpZXcuY29sdW1ucyA9PSBjb2x1
bW5zICYmIHByaXYtPnZpZXcucm93cyA9PSByb3dzKQogICAgICAgICByZXR1cm47CiAKLSAgICBv
bGRDb2xzID0gcHJpdi0+dmlldy5jb2xzOworICAgIG9sZENvbHMgPSBwcml2LT52aWV3LmNvbHVt
bnM7CiAgICAgb2xkUm93cyA9IHByaXYtPnZpZXcucm93czsKIAogICAgIGlmIChyb3dzIDwgb2xk
Um93cykgewpAQCAtODUxLDE0ICs4NTEsMTQgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3JlY2FsY19yZW5kZXJlcnMoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGEKIAog
ICAgIHByaXYtPnZpZXcuaXRlbXMgPSBzdGF0aWNfY2FzdDxFaW5hX0lubGlzdCoqPihuZXdJdGVt
cyk7CiAgICAgcHJpdi0+dmlldy5yb3dzID0gcm93czsKLSAgICBwcml2LT52aWV3LmNvbHMgPSBj
b2x1bW5zOworICAgIHByaXYtPnZpZXcuY29sdW1ucyA9IGNvbHVtbnM7CiAgICAgaWYgKHJvd3Mg
PiBvbGRSb3dzKSB7CiAgICAgICAgIEVpbmFfSW5saXN0Kiogc3RhcnQgPSBwcml2LT52aWV3Lml0
ZW1zICsgb2xkUm93czsKICAgICAgICAgRWluYV9Jbmxpc3QqKiBlbmQgPSBwcml2LT52aWV3Lml0
ZW1zICsgcm93czsKICAgICAgICAgZm9yICg7IHN0YXJ0IDwgZW5kOyBzdGFydCsrKSB7CiAgICAg
ICAgICAgICAqc3RhcnQgPSAwOwotICAgICAgICAgICAgRWluYV9Cb29sIHIgPSBfZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfdmlld19jb2xzX2VuZF9hZGQocHJpdiwgc3RhcnQsIDAsIGNvbHVtbnMp
OwotICAgICAgICAgICAgaWYgKCFyKSB7CisgICAgICAgICAgICBFaW5hX0Jvb2wgcmVzdWx0ID0g
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfY29sc19lbmRfYWRkKHByaXYsIHN0YXJ0LCAw
LCBjb2x1bW5zKTsKKyAgICAgICAgICAgIGlmICghcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAg
Q1JJVElDQUwoImZhaWxlZCB0byBhbGxvY2F0ZSAlbGQgY29sdW1ucyIsIGNvbHVtbnMpOwogICAg
ICAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Jvd3NfcmFuZ2VfZGVs
KHByaXYsIHByaXYtPnZpZXcuaXRlbXMgKyBvbGRSb3dzLCBzdGFydCk7CiAgICAgICAgICAgICAg
ICAgcHJpdi0+dmlldy5yb3dzID0gb2xkUm93czsKQEAgLTkxNCwxMSArOTE0LDExIEBAIHN0YXRp
YyBpbmxpbmUgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19kYmcoY29uc3QgRXdr
X1RpbGVkX0JhY2tpbmdfU3RvCiB7CiAgICAgRWluYV9Jbmxpc3QqKiBzdGFydCwgKiplbmQ7CiAg
ICAgcHJpbnRmKCJ0aWxlcz0lMmxkLCUybGQgIG1vZGVsPSUybGQsJTJsZCBbJWR4JWRdIGJhc2U9
JSszbGQsJSs0bGQgb2Zmc2V0PSUrNGQsJSs0ZCBvbGQ9JSs0ZCwlKzRkIGJhc2U9JSszZCwlKzNk
XG4iLAotICAgICAgICAgICBwcml2LT52aWV3LmNvbHMsIHByaXYtPnZpZXcucm93cywKKyAgICAg
ICAgICAgcHJpdi0+dmlldy5jb2x1bW5zLCBwcml2LT52aWV3LnJvd3MsCiAgICAgICAgICAgIHBy
aXYtPm1vZGVsLmN1cnJlbnQuY29sdW1ucywgcHJpdi0+bW9kZWwuY3VycmVudC5yb3dzLAogICAg
ICAgICAgICBwcml2LT5tb2RlbC53aWR0aCwgcHJpdi0+bW9kZWwuaGVpZ2h0LAogICAgICAgICAg
ICBwcml2LT5tb2RlbC5iYXNlLmNvbHVtbiwgcHJpdi0+bW9kZWwuYmFzZS5yb3csCi0gICAgICAg
ICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54LCBwcml2LT52aWV3Lm9mZnNldC5jdXIueSwKKyAg
ICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54LCBwcml2LT52aWV3Lm9mZnNldC5j
dXJyZW50LnksCiAgICAgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54LCBwcml2LT52aWV3
Lm9mZnNldC5vbGQueSwKICAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54LCBwcml2
LT52aWV3Lm9mZnNldC5iYXNlLnkpOwogCkBAIC05MzMsNyArOTMzLDcgQEAgc3RhdGljIGlubGlu
ZSB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X2RiZyhjb25zdCBFd2tfVGlsZWRf
QmFja2luZ19TdG8KICAgICAgICAgICAgIGlmICghaXRlbS0+dGlsZSkKICAgICAgICAgICAgICAg
ICBwcmludGYoIiAgICAgICAgICAgIDsiKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBwcmludGYoIiU4cCAlbHUsJWx1OyIsIGl0ZW0tPnRpbGUsIGl0ZW0tPnRpbGUtPmNvbCwg
aXRlbS0+dGlsZS0+cm93KTsKKyAgICAgICAgICAgICAgICBwcmludGYoIiU4cCAlbHUsJWx1OyIs
IGl0ZW0tPnRpbGUsIGl0ZW0tPnRpbGUtPmNvbHVtbiwgaXRlbS0+dGlsZS0+cm93KTsKICAgICAg
ICAgfQogICAgICAgICBwcmludGYoIlxuIik7CiAgICAgfQpAQCAtOTcxLDcgKzk3MSw3IEBAIHN0
YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBfdXAoRXdrX1RpbGVk
X0JhY2tpbmdfU3RvcmVfRGF0YSoKICAgICAgICAgRWluYV9Jbmxpc3QqIHRlbXAgPSAqaXRlcmF0
b3JTdGFydDsKICAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbTsKICAg
ICAgICAgRXZhc19Db29yZCB0aWxlUG9zaXRpb25YID0gb3JpZ2luWDsKLSAgICAgICAgaW50IGNv
dW50MSA9IDA7CisgICAgICAgIGludCBjb2x1bW4gPSAwOwogCiAgICAgICAgIGZvciAoaXRlcmF0
b3JMaXN0ID0gaXRlcmF0b3JTdGFydDsgaXRlcmF0b3JMaXN0IDwgaXRlcmF0b3JFbmQ7IGl0ZXJh
dG9yTGlzdCsrKQogICAgICAgICAgICAgKml0ZXJhdG9yTGlzdCA9ICooaXRlcmF0b3JMaXN0ICsg
MSk7CkBAIC05ODEsOCArOTgxLDggQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX3ZpZXdfd3JhcF91cChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKgogICAgICAgICBF
SU5BX0lOTElTVF9GT1JFQUNIKHRlbXAsIGl0ZW0pIHsKICAgICAgICAgICAgIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXRlbSwgdGlsZVBvc2l0aW9uWCwgdGlsZVBvc2l0aW9u
WSk7CiAgICAgICAgICAgICB0aWxlUG9zaXRpb25YICs9IHRpbGVXaWR0aDsKLSAgICAgICAgICAg
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2ZpbGwocHJpdiwgaXRlbSwgY291bnQxLCBs
YXN0Um93KTsKLSAgICAgICAgICAgIGNvdW50MSsrOworICAgICAgICAgICAgX2V3a190aWxlZF9i
YWNraW5nX3N0b3JlX2l0ZW1fZmlsbChwcml2LCBpdGVtLCBjb2x1bW4sIGxhc3RSb3cpOworICAg
ICAgICAgICAgY29sdW1uKys7CiAgICAgICAgIH0KICAgICAgICAgdGlsZVBvc2l0aW9uWSArPSB0
aWxlSGVpZ2h0OwogICAgIH0KQEAgLTEwMTksNyArMTAxOSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBfZG93bihFd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9EYXRhCiAgICAgICAgIEVpbmFfSW5saXN0KiB0ZW1wID0gKml0ZXJhdG9yU3RhcnQ7CiAgICAg
ICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0ZW07CiAgICAgICAgIEV2YXNfQ29v
cmQgdGlsZVBvc2l0aW9uWCA9IG9yaWdpblg7Ci0gICAgICAgIGludCBjb3VudDEgPSAwOworICAg
ICAgICBpbnQgY29sdW1uID0gMDsKIAogICAgICAgICBmb3IgKGl0ZXJhdG9yTGlzdCA9IGl0ZXJh
dG9yU3RhcnQ7IGl0ZXJhdG9yTGlzdCA+IGl0ZXJhdG9yRW5kOyBpdGVyYXRvckxpc3QtLSkKICAg
ICAgICAgICAgICppdGVyYXRvckxpc3QgPSAqKGl0ZXJhdG9yTGlzdCAtIDEpOwpAQCAtMTAyOSw4
ICsxMDI5LDggQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3Jh
cF9kb3duKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKICAgICAgICAgRUlOQV9JTkxJU1Rf
Rk9SRUFDSCh0ZW1wLCBpdGVtKSB7CiAgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfaXRlbV9tb3ZlKGl0ZW0sIHRpbGVQb3NpdGlvblgsIHRpbGVQb3NpdGlvblkpOwogICAgICAg
ICAgICAgdGlsZVBvc2l0aW9uWCArPSB0aWxlV2lkdGg7Ci0gICAgICAgICAgICBfZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKHByaXYsIGl0ZW0sIGNvdW50MSwgMCk7Ci0gICAgICAg
ICAgICBjb3VudDErKzsKKyAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVt
X2ZpbGwocHJpdiwgaXRlbSwgY29sdW1uLCAwKTsKKyAgICAgICAgICAgIGNvbHVtbisrOwogICAg
ICAgICB9CiAgICAgICAgIHRpbGVQb3NpdGlvblkgLT0gdGlsZUhlaWdodDsKICAgICB9CkBAIC0x
MDQxLDIyICsxMDQxLDIyIEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92
aWV3X3dyYXBfZG93bihFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAgKiBAaW50ZXJuYWwK
ICAqIE1vdmUgbGVmdC1tb3N0IChmaXJzdCkgY29sdW1uIHJpZ2h0IGFzIGxhc3QgKHJpZ2h0LW1v
c3QpLgogICoKLSAqIFRoZSBmaW5hbCByZXN1bHQgaXMgdmlzdWFsbHkgdGhlIHNhbWUsIGJ1dCBs
b2dpY2FsbHkgdGhlIGZpcnN0IGNvbCB0aGF0CisgKiBUaGUgZmluYWwgcmVzdWx0IGlzIHZpc3Vh
bGx5IHRoZSBzYW1lLCBidXQgbG9naWNhbGx5IHRoZSBmaXJzdCBjb2x1bW4gdGhhdAogICogd2Vu
dCBvdXQgb2Ygc2NyZWVuIGlzIG5vdyBhdCBsYXN0IGFuZCBmaWxsZWQgd2l0aCBuZXcgbW9kZWwg
aXRlbXMuCiAgKgogICogVGhpcyBpcyB3b3J0aCBqdXN0IHdoZW4gQGEgY291bnQgaXMgc21hbGxl
ciB0aGFuIEBjCi0gKiBwcml2LT52aWV3LmNvbHMsIGFmdGVyIHRoYXQgb25lIGlzIHJlZmlsbGlu
ZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CisgKiBwcml2LT52aWV3LmNvbHVtbnMsIGFmdGVyIHRo
YXQgb25lIGlzIHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CiAgKiBpcyBiZXR0ZXIg
dG8gdHJpZ2dlciBmdWxsIHJlZmlsbC4KICAqCiAgKiBAcGFyYW0gY291bnQgdGhlIG51bWJlciBv
ZiB0aW1lcyB0byByZXBlYXQgdGhlIHByb2Nlc3MuCiAgKi8KIHN0YXRpYyB2b2lkIF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBfbGVmdChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9E
YXRhKiBwcml2LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSwgdW5zaWduZWQgaW50IGNvdW50
KQogewotICAgIHVuc2lnbmVkIGludCByb3csIGxhc3RDb2x1bW4gPSBwcml2LT52aWV3LmNvbHMg
LSAxOworICAgIHVuc2lnbmVkIGludCByb3csIGxhc3RDb2x1bW4gPSBwcml2LT52aWV3LmNvbHVt
bnMgLSAxOwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoID0gcHJpdi0+dmlldy50aWxlLndpZHRo
OwogICAgIEV2YXNfQ29vcmQgdGlsZUhlaWdodCA9IHByaXYtPnZpZXcudGlsZS5oZWlnaHQ7CiAg
ICAgRXZhc19Db29yZCBvZmZzZXRYID0gcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ICsgY291bnQg
KiB0aWxlV2lkdGg7Ci0gICAgRXZhc19Db29yZCBveSA9IHkgKyBwcml2LT52aWV3Lm9mZnNldC5i
YXNlLnk7CisgICAgRXZhc19Db29yZCBvZmZzZXRZID0geSArIHByaXYtPnZpZXcub2Zmc2V0LmJh
c2UueTsKICAgICBFaW5hX0lubGlzdCoqIGl0ZXJhdG9yOwogICAgIEVpbmFfSW5saXN0KiogaXRl
cmF0b3JFbmQ7CiAgICAgdW5zaWduZWQgaW50IGJhc2VDb2x1bW4gPSBsYXN0Q29sdW1uIC0gY291
bnQgKyAxOwpAQCAtMTA3NywxMCArMTA3NywxMCBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfdmlld193cmFwX2xlZnQoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YQog
ICAgICAgICAgICAgaXQgPSBFSU5BX0lOTElTVF9DT05UQUlORVJfR0VUKCppdGVyYXRvciwgRXdr
X1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSk7CiAgICAgICAgICAgICAqaXRlcmF0b3IgPSBlaW5h
X2lubGlzdF9kZW1vdGUoKml0ZXJhdG9yLCAqaXRlcmF0b3IpOwogCi0gICAgICAgICAgICBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0LCB0aWxlUG9zaXRpb25YLCBveSk7Cisg
ICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0LCB0aWxlUG9z
aXRpb25YLCBvZmZzZXRZKTsKICAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9p
dGVtX2ZpbGwocHJpdiwgaXQsIGNvbHVtbiwgcm93KTsKICAgICAgICAgfQotICAgICAgICBveSAr
PSB0aWxlSGVpZ2h0OworICAgICAgICBvZmZzZXRZICs9IHRpbGVIZWlnaHQ7CiAgICAgfQogCiAg
ICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ID0gb2Zmc2V0WDsKQEAgLTEwOTAsMTEgKzEwOTAs
MTEgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF9sZWZ0
KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKICAqIEBpbnRlcm5hbAogICogTW92ZSByaWdo
dC1tb3N0IChsYXN0KSBjb2x1bW4gbGVmdCBhcyBmaXJzdCAobGVmdC1tb3N0KS4KICAqCi0gKiBU
aGUgZmluYWwgcmVzdWx0IGlzIHZpc3VhbGx5IHRoZSBzYW1lLCBidXQgbG9naWNhbGx5IHRoZSBs
YXN0IGNvbCB0aGF0CisgKiBUaGUgZmluYWwgcmVzdWx0IGlzIHZpc3VhbGx5IHRoZSBzYW1lLCBi
dXQgbG9naWNhbGx5IHRoZSBsYXN0IGNvbHVtbiB0aGF0CiAgKiB3ZW50IG91dCBvZiBzY3JlZW4g
aXMgbm93IGF0IGZpcnN0IGFuZCBmaWxsZWQgd2l0aCBuZXcgbW9kZWwgaXRlbXMuCiAgKgogICog
VGhpcyBpcyB3b3J0aCBqdXN0IHdoZW4gQGEgY291bnQgaXMgc21hbGxlciB0aGFuIEBjCi0gKiBw
cml2LT52aWV3LmNvbHMsIGFmdGVyIHRoYXQgb25lIGlzIHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0
cml4IHNvIGl0CisgKiBwcml2LT52aWV3LmNvbHVtbnMsIGFmdGVyIHRoYXQgb25lIGlzIHJlZmls
bGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CiAgKiBpcyBiZXR0ZXIgdG8gdHJpZ2dlciBmdWxs
IHJlZmlsbC4KICAqCiAgKiBAcGFyYW0gY291bnQgdGhlIG51bWJlciBvZiB0aW1lcyB0byByZXBl
YXQgdGhlIHByb2Nlc3MuCkBAIC0xMTM4LDcgKzExMzgsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfdmlld19yZWZpbGwoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0
YSogcAogewogICAgIEVpbmFfSW5saXN0KiogaXRlcmF0b3IsICoqaXRlcmF0b3JFbmQ7CiAgICAg
RXZhc19Db29yZCBiYXNlVGlsZVBvc2l0aW9uWCwgdGlsZVBvc2l0aW9uWSwgdGlsZVdpZHRoLCB0
aWxlSGVpZ2h0OwotICAgIHVuc2lnbmVkIGludCByOworICAgIHVuc2lnbmVkIGludCByb3c7CiAK
ICAgICBldmFzX29iamVjdF9tb3ZlKHByaXYtPmJhc2UuY2xpcHBlciwgeCwgeSk7CiAKQEAgLTEx
NTAsMTkgKzExNTAsMTkgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Zp
ZXdfcmVmaWxsKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHAKIAogICAgIGl0ZXJhdG9y
ID0gcHJpdi0+dmlldy5pdGVtczsKICAgICBpdGVyYXRvckVuZCA9IGl0ZXJhdG9yICsgcHJpdi0+
dmlldy5yb3dzOwotICAgIHIgPSAwOworICAgIHJvdyA9IDA7CiAKICAgICBwcml2LT5tb2RlbC5i
YXNlLmNvbHVtbiAtPSBzdGVwWDsKICAgICBwcml2LT5tb2RlbC5iYXNlLnJvdyAtPSBzdGVwWTsK
IAotICAgIGZvciAoOyBpdGVyYXRvciA8IGl0ZXJhdG9yRW5kOyBpdGVyYXRvcisrLCByKyspIHsK
KyAgICBmb3IgKDsgaXRlcmF0b3IgPCBpdGVyYXRvckVuZDsgaXRlcmF0b3IrKywgcm93KyspIHsK
ICAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbTsKICAgICAgICAgRXZh
c19Db29yZCBuZXdUaWxlUG9zaXRpb25YID0gYmFzZVRpbGVQb3NpdGlvblg7Ci0gICAgICAgIHVu
c2lnbmVkIGludCBjb3VudCA9IDA7CisgICAgICAgIHVuc2lnbmVkIGludCBjb2x1bW4gPSAwOwog
ICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKCppdGVyYXRvciwgaXRlbSkgewotICAgICAgICAg
ICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fZmlsbChwcml2LCBpdGVtLCBjb3VudCwg
cik7CisgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKHByaXYs
IGl0ZW0sIGNvbHVtbiwgcm93KTsKICAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9pdGVtX21vdmUoaXRlbSwgbmV3VGlsZVBvc2l0aW9uWCwgdGlsZVBvc2l0aW9uWSk7Ci0gICAg
ICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgY29sdW1uKys7CiAgICAgICAgICAgICBuZXdU
aWxlUG9zaXRpb25YICs9IHRpbGVXaWR0aDsKICAgICAgICAgfQogICAgICAgICB0aWxlUG9zaXRp
b25ZICs9IHRpbGVIZWlnaHQ7CkBAIC0xMTg1LDExICsxMTg1LDExIEBAIHN0YXRpYyB2b2lkIF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bvc19hcHBseShFd2tfVGlsZWRfQmFja2luZ19T
dG9yZV9EYXRhCiAgICAgaXRlcmF0b3IgPSBwcml2LT52aWV3Lml0ZW1zOwogICAgIGl0ZXJhdG9y
RW5kID0gaXRlcmF0b3IgKyBwcml2LT52aWV3LnJvd3M7CiAgICAgZm9yICg7IGl0ZXJhdG9yIDwg
aXRlcmF0b3JFbmQ7IGl0ZXJhdG9yKyspIHsKLSAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3Rv
cmVfSXRlbSogaXQ7Ci0gICAgICAgIEV2YXNfQ29vcmQgb3ggPSBiYXNlVGlsZVBvc2l0aW9uWDsK
LSAgICAgICAgRUlOQV9JTkxJU1RfRk9SRUFDSCgqaXRlcmF0b3IsIGl0KSB7Ci0gICAgICAgICAg
ICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0LCBveCwgYmFzZVRpbGVQb3Np
dGlvblkpOwotICAgICAgICAgICAgb3ggKz0gdGlsZVdpZHRoOworICAgICAgICBFd2tfVGlsZWRf
QmFja2luZ19TdG9yZV9JdGVtKiBpdGVtOworICAgICAgICBFdmFzX0Nvb3JkIG9mZnNldFggPSBi
YXNlVGlsZVBvc2l0aW9uWDsKKyAgICAgICAgRUlOQV9JTkxJU1RfRk9SRUFDSCgqaXRlcmF0b3Is
IGl0ZW0pIHsKKyAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUo
aXRlbSwgb2Zmc2V0WCwgYmFzZVRpbGVQb3NpdGlvblkpOworICAgICAgICAgICAgb2Zmc2V0WCAr
PSB0aWxlV2lkdGg7CiAgICAgICAgIH0KICAgICAgICAgYmFzZVRpbGVQb3NpdGlvblkgKz0gdGls
ZUhlaWdodDsKICAgICB9CkBAIC0xMTk3LDI4ICsxMTk3LDI4IEBAIHN0YXRpYyB2b2lkIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bvc19hcHBseShFd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9EYXRhCiAKIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxj
dWxhdGVfb2Zmc2V0X2ZvcmNlKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYpCiB7
Ci0gICAgRXZhc19Db29yZCBkZWx0YVggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueCAtIHByaXYt
PnZpZXcub2Zmc2V0Lm9sZC54OwotICAgIEV2YXNfQ29vcmQgZGVsdGFZID0gcHJpdi0+dmlldy5v
ZmZzZXQuY3VyLnkgLSBwcml2LT52aWV3Lm9mZnNldC5vbGQueTsKKyAgICBFdmFzX0Nvb3JkIGRl
bHRhWCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAtIHByaXYtPnZpZXcub2Zmc2V0Lm9s
ZC54OworICAgIEV2YXNfQ29vcmQgZGVsdGFZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55
IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLnk7CiAgICAgRXZhc19Db29yZCB0aWxlV2lkdGgsIHRp
bGVIZWlnaHQ7CiAgICAgaW50IHN0ZXBZLCBzdGVwWDsKIAotICAgIElORigiZXdrQmFja2luZ1N0
b3JlJXAsIG9mZnNldDogJSs0ZCwgJSs0ZCAoJSs0ZCwgJSs0ZCkiLAotICAgICAgICBwcml2LT5z
ZWxmLCBkZWx0YVgsIGRlbHRhWSwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngsIHByaXYtPnZpZXcu
b2Zmc2V0LmN1ci55KTsKKyAgICBJTkYoImV3a0JhY2tpbmdTdG9yZT0lcCwgb2Zmc2V0OiAlKzRk
LCAlKzRkICglKzRkLCAlKzRkKSIsCisgICAgICAgIHByaXYtPnNlbGYsIGRlbHRhWCwgZGVsdGFZ
LCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LngsIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQu
eSk7CiAKICAgICB0aWxlV2lkdGggPSBwcml2LT52aWV3LnRpbGUud2lkdGg7CiAgICAgdGlsZUhl
aWdodCA9IHByaXYtPnZpZXcudGlsZS5oZWlnaHQ7CiAKLSAgICBsb25nIG5ld0NvbHVtbiA9IC1w
cml2LT52aWV3Lm9mZnNldC5jdXIueCAvIHRpbGVXaWR0aDsKKyAgICBsb25nIG5ld0NvbHVtbiA9
IC1wcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggLyB0aWxlV2lkdGg7CiAgICAgc3RlcFggPSBw
cml2LT5tb2RlbC5iYXNlLmNvbHVtbiAtIG5ld0NvbHVtbjsKLSAgICBsb25nIG5ld1JvdyA9IC1w
cml2LT52aWV3Lm9mZnNldC5jdXIueSAvIHRpbGVIZWlnaHQ7CisgICAgbG9uZyBuZXdSb3cgPSAt
cHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55IC8gdGlsZUhlaWdodDsKICAgICBzdGVwWSA9IHBy
aXYtPm1vZGVsLmJhc2Uucm93IC0gbmV3Um93OwogCi0gICAgcHJpdi0+dmlldy5vZmZzZXQub2xk
LnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueDsKLSAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQu
eSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OworICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54
ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54OworICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9s
ZC55ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55OwogICAgIGV2YXNfb2JqZWN0X21vdmUo
CiAgICAgICAgIHByaXYtPmNvbnRlbnRzQ2xpcHBlciwKLSAgICAgICAgcHJpdi0+dmlldy5vZmZz
ZXQuY3VyLnggKyBwcml2LT52aWV3LngsCi0gICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55
ICsgcHJpdi0+dmlldy55KTsKKyAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ICsg
cHJpdi0+dmlldy54LAorICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgKyBwcml2
LT52aWV3LnkpOwogCiAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ICs9IGRlbHRhWCAtIHN0
ZXBYICogdGlsZVdpZHRoOwogICAgIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueSArPSBkZWx0YVkg
LSBzdGVwWSAqIHRpbGVIZWlnaHQ7CkBAIC0xMjI5LDEzICsxMjI5LDEzIEBAIHN0YXRpYyB2b2lk
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGVfb2Zmc2V0X2ZvcmNlKEV3
a19UaWxlZF9CYWNrCiAKIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFy
dF9jYWxjdWxhdGVfb2Zmc2V0KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYsIEV2
YXNfQ29vcmQgeCwgRXZhc19Db29yZCB5KQogewotICAgIEV2YXNfQ29vcmQgZGVsdGFYID0gcHJp
di0+dmlldy5vZmZzZXQuY3VyLnggLSBwcml2LT52aWV3Lm9mZnNldC5vbGQueDsKLSAgICBFdmFz
X0Nvb3JkIGRlbHRhWSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55IC0gcHJpdi0+dmlldy5vZmZz
ZXQub2xkLnk7CisgICAgRXZhc19Db29yZCBkZWx0YVggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJy
ZW50LnggLSBwcml2LT52aWV3Lm9mZnNldC5vbGQueDsKKyAgICBFdmFzX0Nvb3JkIGRlbHRhWSA9
IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55Owog
ICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoLCB0aWxlSGVpZ2h0OwogICAgIGludCBzdGVwWSwgc3Rl
cFg7CiAKLSAgICBJTkYoImV3a0JhY2tpbmdTdG9yZSVwLCBvZmZzZXQ6ICUrNGQsICUrNGQgKCUr
NGQsICUrNGQpIiwKLSAgICAgICAgcHJpdi0+c2VsZiwgZGVsdGFYLCBkZWx0YVksIHByaXYtPnZp
ZXcub2Zmc2V0LmN1ci54LCBwcml2LT52aWV3Lm9mZnNldC5jdXIueSk7CisgICAgSU5GKCJld2tC
YWNraW5nU3RvcmU9JXAsIG9mZnNldDogJSs0ZCwgJSs0ZCAoJSs0ZCwgJSs0ZCkiLAorICAgICAg
ICBwcml2LT5zZWxmLCBkZWx0YVgsIGRlbHRhWSwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54
LCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkpOwogCiAgICAgaWYgKCFkZWx0YVggJiYgIWRl
bHRhWSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTI0MywyMCArMTI0MywyMCBAQCBzdGF0aWMgdm9p
ZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfY2FsY3VsYXRlX29mZnNldChFd2tfVGls
ZWRfQmFja2luZ19TdAogICAgIHRpbGVXaWR0aCA9IHByaXYtPnZpZXcudGlsZS53aWR0aDsKICAg
ICB0aWxlSGVpZ2h0ID0gcHJpdi0+dmlldy50aWxlLmhlaWdodDsKIAotICAgIGxvbmcgbmV3Q29s
ID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci54IC8gdGlsZVdpZHRoOworICAgIGxvbmcgbmV3Q29s
ID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAvIHRpbGVXaWR0aDsKICAgICBzdGVwWCA9
IHByaXYtPm1vZGVsLmJhc2UuY29sdW1uIC0gbmV3Q29sOwotICAgIGxvbmcgbmV3Um93ID0gLXBy
aXYtPnZpZXcub2Zmc2V0LmN1ci55IC8gdGlsZUhlaWdodDsKKyAgICBsb25nIG5ld1JvdyA9IC1w
cml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgLyB0aWxlSGVpZ2h0OwogICAgIHN0ZXBZID0gcHJp
di0+bW9kZWwuYmFzZS5yb3cgLSBuZXdSb3c7CiAKLSAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQu
eCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55
ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7CisgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLngg
PSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAgcHJpdi0+dmlldy5vZmZzZXQub2xk
LnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAgICAgZXZhc19vYmplY3RfbW92ZSgK
ICAgICAgICAgcHJpdi0+Y29udGVudHNDbGlwcGVyLAotICAgICAgICBwcml2LT52aWV3Lm9mZnNl
dC5jdXIueCArIHByaXYtPnZpZXcueCwKLSAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkg
KyBwcml2LT52aWV3LnkpOworICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggKyBw
cml2LT52aWV3LngsCisgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSArIHByaXYt
PnZpZXcueSk7CiAKLSAgICBpZiAoKHN0ZXBYIDwgMCAmJiBzdGVwWCA8PSAtcHJpdi0+dmlldy5j
b2xzKQotICAgICAgICB8fCAoc3RlcFggPiAwICYmIHN0ZXBYID49IHByaXYtPnZpZXcuY29scykK
KyAgICBpZiAoKHN0ZXBYIDwgMCAmJiBzdGVwWCA8PSAtcHJpdi0+dmlldy5jb2x1bW5zKQorICAg
ICAgICB8fCAoc3RlcFggPiAwICYmIHN0ZXBYID49IHByaXYtPnZpZXcuY29sdW1ucykKICAgICAg
ICAgfHwgKHN0ZXBZIDwgMCAmJiBzdGVwWSA8PSAtcHJpdi0+dmlldy5yb3dzKQogICAgICAgICB8
fCAoc3RlcFkgPiAwICYmIHN0ZXBZID49IHByaXYtPnZpZXcucm93cykpIHsKIApAQCAtMTI5MSw4
ICsxMjkxLDggQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2Nh
bGN1bGF0ZV9wb3MoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmUKICAgICBwcml2LT52aWV3LnkgPSB5
OwogICAgIGV2YXNfb2JqZWN0X21vdmUoCiAgICAgICAgIHByaXYtPmNvbnRlbnRzQ2xpcHBlciwK
LSAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggKyBwcml2LT52aWV3LngsCi0gICAgICAg
IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ICsgcHJpdi0+dmlldy55KTsKKyAgICAgICAgcHJpdi0+
dmlldy5vZmZzZXQuY3VycmVudC54ICsgcHJpdi0+dmlldy54LAorICAgICAgICBwcml2LT52aWV3
Lm9mZnNldC5jdXJyZW50LnkgKyBwcml2LT52aWV3LnkpOwogfQogCiBzdGF0aWMgdm9pZCBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfZmlsbF9yZW5kZXJlcnMoRXdrX1RpbGVkX0JhY2tpbmdfU3Rv
cmVfRGF0YSogcHJpdikKQEAgLTEzMTQsNyArMTMxNCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGUoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdT
dG9yCiAgICAgRXZhc19Db29yZCB4LCB5LCB3aWR0aCwgaGVpZ2h0OwogCiAgICAgZXZhc19vYmpl
Y3RfZ2VvbWV0cnlfZ2V0KGV3a0JhY2tpbmdTdG9yZSwgJngsICZ5LCAmd2lkdGgsICZoZWlnaHQp
OwotICAgIERCRygiZXdrQmFja2luZ1N0b3JlJXAgYXQgJWQsJWQgKyAlZHglZCIsIGV3a0JhY2tp
bmdTdG9yZSwgeCwgeSwgd2lkdGgsIGhlaWdodCk7CisgICAgREJHKCJld2tCYWNraW5nU3RvcmU9
JXAgYXQgJWQsJWQgKyAlZHglZCIsIGV3a0JhY2tpbmdTdG9yZSwgeCwgeSwgd2lkdGgsIGhlaWdo
dCk7CiAKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUsIHByaXYp
OwogCkBAIC0xMzgxLDEwICsxMzgxLDEwIEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9zbWFydF9jYWxjdWxhdGUoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yCiAgICAg
ICAgIHx8IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCA8PSAtIHByaXYtPnZpZXcudGlsZS53aWR0
aAogICAgICAgICB8fCBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnkgPiAwCiAgICAgICAgIHx8IHBy
aXYtPnZpZXcub2Zmc2V0LmJhc2UueSA8PSAtIHByaXYtPnZpZXcudGlsZS5oZWlnaHQpCi0gICAg
ICAgIEVSUigiaW5jb3JyZWN0IGJhc2Ugb2Zmc2V0ICUrNGQsJSs0ZCwgdGlsZT0lZHglZCwgY3Vy
PSUrNGQsJSs0ZFxuIiwKKyAgICAgICAgRVJSKCJpbmNvcnJlY3QgYmFzZSBvZmZzZXQgJSs0ZCwl
KzRkLCB0aWxlPSVkeCVkLCBjdXJyZW50PSUrNGQsJSs0ZFxuIiwKICAgICAgICAgICAgIHByaXYt
PnZpZXcub2Zmc2V0LmJhc2UueCwgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS55LAogICAgICAgICAg
ICAgcHJpdi0+dmlldy50aWxlLndpZHRoLCBwcml2LT52aWV3LnRpbGUuaGVpZ2h0LAotICAgICAg
ICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngsIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55KTsK
KyAgICAgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCwgcHJpdi0+dmlldy5vZmZz
ZXQuY3VycmVudC55KTsKIAogfQogCkBAIC0xNDQ4LDggKzE0NDgsOCBAQCBzdGF0aWMgRWluYV9C
b29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0X2ludGVy
bmFsKEV3a19UaQogICAgIGlmIChwcml2LT5yZW5kZXIuZGlzYWJsZWQpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ID0geDsKLSAgICBwcml2LT52
aWV3Lm9mZnNldC5jdXIueSA9IHk7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ID0g
eDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgPSB5OwogCiAgICAgcHJpdi0+Y2hh
bmdlZC5vZmZzZXQgPSB0cnVlOwogICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9jaGFuZ2Vk
KHByaXYpOwpAQCAtMTQ1OSwxMCArMTQ1OSwxMCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0X2ludGVybmFsKEV3a19UaQog
CiBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3Nl
dChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQg
eSkKIHsKLSAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVwLCB4PSVkLCB5PSVkIiwgZXdrQmFja2lu
Z1N0b3JlLCB4LCB5KTsKKyAgICBEQkcoImV3a0JhY2tpbmdTdG9yZT0lcCwgeD0lZCwgeT0lZCIs
IGV3a0JhY2tpbmdTdG9yZSwgeCwgeSk7CiAKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihl
d2tCYWNraW5nU3RvcmUsIHByaXYsIGZhbHNlKTsKLSAgICBpZiAoeCA9PSBwcml2LT52aWV3Lm9m
ZnNldC5jdXIueCAmJiB5ID09IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55KQorICAgIGlmICh4ID09
IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAmJiB5ID09IHByaXYtPnZpZXcub2Zmc2V0LmN1
cnJlbnQueSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gX2V3a190aWxlZF9i
YWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXRfaW50ZXJuYWwocHJpdiwgeCwgeSk7
CkBAIC0xNDcwLDIwICsxNDcwLDIwIEBAIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0KEV2YXNfT2JqZWN0KiBld2tCYWNraW5nCiAKIEVpbmFf
Qm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfYWRkKEV2YXNf
T2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIEV2YXNfQ29vcmQgZGVsdGFYLCBFdmFzX0Nvb3JkIGRl
bHRhWSkKIHsKLSAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVwLCBkZWx0YVg9JWQsIGRlbHRhWT0l
ZCIsIGV3a0JhY2tpbmdTdG9yZSwgZGVsdGFYLCBkZWx0YVkpOworICAgIERCRygiZXdrQmFja2lu
Z1N0b3JlPSVwLCBkZWx0YVg9JWQsIGRlbHRhWT0lZCIsIGV3a0JhY2tpbmdTdG9yZSwgZGVsdGFY
LCBkZWx0YVkpOwogCiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3Jl
LCBwcml2LCBmYWxzZSk7CiAgICAgaWYgKCFkZWx0YVggJiYgIWRlbHRhWSkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKICAgICByZXR1cm4gX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9m
dWxsX29mZnNldF9zZXRfaW50ZXJuYWwKLSAgICAgICAgICAgICAgIChwcml2LCBwcml2LT52aWV3
Lm9mZnNldC5jdXIueCArIGRlbHRhWCwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgKyBkZWx0YVkp
OworICAgICAgICAgICAgICAgKHByaXYsIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCArIGRl
bHRhWCwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55ICsgZGVsdGFZKTsKIH0KIAogc3RhdGlj
IEVpbmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV9zZXRfaW50ZXJuYWwoRXdr
X1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiwgZmxvYXQqIHpvb20sIEV2YXNfQ29vcmQg
Y3VycmVudFgsIEV2YXNfQ29vcmQgY3VycmVudFksIEV2YXNfQ29vcmQqIG9mZnNldFgsIEV2YXNf
Q29vcmQqIG9mZnNldFkpCiB7Ci0gICAgKm9mZnNldFggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIu
eDsKLSAgICAqb2Zmc2V0WSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OworICAgICpvZmZzZXRY
ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54OworICAgICpvZmZzZXRZID0gcHJpdi0+dmll
dy5vZmZzZXQuY3VycmVudC55OwogCiAgICAgaWYgKGZhYnNmKHByaXYtPnZpZXcudGlsZS56b29t
IC0gKnpvb20pIDwgem9vbVN0ZXBNaW5pbXVtKSB7CiAgICAgICAgIERCRygiaWdub3JlZCBhcyB6
b29tIGRpZmZlcmVuY2UgaXMgPCAlZjogJWYiLApAQCAtMTUxNCwxMCArMTUxNCwxMCBAQCBzdGF0
aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3NldF9pbnRlcm5hbChF
d2tfVGlsZWRfQmFja2luZ19TdAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgRWlu
YV9Jbmxpc3QqKiBpdGVyYXRvciwgKippdGVyYXRvckVuZDsKLSAgICBFd2tfVGlsZWRfQmFja2lu
Z19TdG9yZV9JdGVtKiBpdDsKKyAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVt
OwogCi0gICAgRXZhc19Db29yZCBuZXdYID0gY3VycmVudFggKyAocHJpdi0+dmlldy5vZmZzZXQu
Y3VyLnggLSBjdXJyZW50WCkgKiBzY2FsZTsKLSAgICBFdmFzX0Nvb3JkIG5ld1kgPSBjdXJyZW50
WSArIChwcml2LT52aWV3Lm9mZnNldC5jdXIueSAtIGN1cnJlbnRZKSAqIHNjYWxlOworICAgIEV2
YXNfQ29vcmQgbmV3WCA9IGN1cnJlbnRYICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAt
IGN1cnJlbnRYKSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3WSA9IGN1cnJlbnRZICsgKHBy
aXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSAtIGN1cnJlbnRZKSAqIHNjYWxlOwogCiAgICAgRXZh
c19Db29yZCBtb2RlbFdpZHRoID0gcHJpdi0+bW9kZWwud2lkdGggKiBzY2FsZTsKICAgICBFdmFz
X0Nvb3JkIG1vZGVsSGVpZ2h0ID0gcHJpdi0+bW9kZWwuaGVpZ2h0ICogc2NhbGU7CkBAIC0xNTQx
LDE1ICsxNTQxLDE1IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3pvb21fc2V0X2ludGVybmFsKEV3a19UaWxlZF9CYWNraW5nX1N0CiAgICAgcHJpdi0+Y2hhbmdl
ZC5tb2RlbCA9IHRydWU7CiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2NoYW5nZWQocHJp
dik7CiAKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCA9IG5ld1g7Ci0gICAgcHJpdi0+dmll
dy5vZmZzZXQuY3VyLnkgPSBuZXdZOworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCA9
IG5ld1g7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55ID0gbmV3WTsKICAgICBwcml2
LT52aWV3Lm9mZnNldC5iYXNlLnggPSBiYXNlWDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNl
LnkgPSBiYXNlWTsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54ID0gcHJpdi0+dmlldy5v
ZmZzZXQuY3VyLng7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9m
ZnNldC5jdXIueTsKLSAgICAqb2Zmc2V0WCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAg
ICpvZmZzZXRZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7CisgICAgcHJpdi0+dmlldy5vZmZz
ZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAgcHJpdi0+dmlldy5v
ZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CisgICAgKm9mZnNldFgg
PSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAgKm9mZnNldFkgPSBwcml2LT52aWV3
Lm9mZnNldC5jdXJyZW50Lnk7CiAKICAgICBldmFzX29iamVjdF9tb3ZlKAogICAgICAgICBwcml2
LT5jb250ZW50c0NsaXBwZXIsCkBAIC0xNTY4LDkgKzE1NjgsOSBAQCBzdGF0aWMgRWluYV9Cb29s
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3NldF9pbnRlcm5hbChFd2tfVGlsZWRfQmFj
a2luZ19TdAogICAgICAgICBFdmFzX0Nvb3JkIHRpbGVQb3NpdGlvblggPSBiYXNlVGlsZVBvc2l0
aW9uWDsKICAgICAgICAgRWluYV9Jbmxpc3QqIGxzdCA9ICppdGVyYXRvcjsKIAotICAgICAgICBF
SU5BX0lOTElTVF9GT1JFQUNIKGxzdCwgaXQpIHsKLSAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9pdGVtX21vdmUoaXQsIHRpbGVQb3NpdGlvblgsIHRpbGVQb3NpdGlvblkpOwot
ICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fcmVzaXplKGl0LCB0aWxl
V2lkdGgsIHRpbGVIZWlnaHQpOworICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKGxzdCwgaXRl
bSkgeworICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fbW92ZShpdGVt
LCB0aWxlUG9zaXRpb25YLCB0aWxlUG9zaXRpb25ZKTsKKyAgICAgICAgICAgIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9pdGVtX3Jlc2l6ZShpdGVtLCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQpOwog
ICAgICAgICAgICAgdGlsZVBvc2l0aW9uWCArPSB0aWxlV2lkdGg7CiAgICAgICAgIH0KICAgICAg
ICAgdGlsZVBvc2l0aW9uWSArPSB0aWxlSGVpZ2h0OwpAQCAtMTU4MSw3ICsxNTgxLDcgQEAgc3Rh
dGljIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV9zZXRfaW50ZXJuYWwo
RXdrX1RpbGVkX0JhY2tpbmdfU3QKIAogRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3pvb21fc2V0KEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIGZsb2F0KiB6b29tLCBFdmFz
X0Nvb3JkIGN1cnJlbnRYLCBFdmFzX0Nvb3JkIGN1cnJlbnRZLCBFdmFzX0Nvb3JkKiBvZmZzZXRY
LCBFdmFzX0Nvb3JkKiBvZmZzZXRZKQogewotICAgIERCRygiZXdrQmFja2luZ1N0b3JlJXAsIHpv
b209JWYiLCBld2tCYWNraW5nU3RvcmUsICp6b29tKTsKKyAgICBEQkcoImV3a0JhY2tpbmdTdG9y
ZT0lcCwgem9vbT0lZiIsIGV3a0JhY2tpbmdTdG9yZSwgKnpvb20pOwogCiAgICAgUFJJVl9EQVRB
X0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2LCBmYWxzZSk7CiAKQEAgLTE1OTAs
NyArMTU5MCw3IEBAIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3NldChF
dmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBmbG9hdCoKIAogRWluYV9Cb29sIGV3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3pvb21fd2Vha19zZXQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9y
ZSwgZmxvYXQgem9vbSwgRXZhc19Db29yZCBjdXJyZW50WCwgRXZhc19Db29yZCBjdXJyZW50WSkK
IHsKLSAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVwLCB6b29tPSVmIiwgZXdrQmFja2luZ1N0b3Jl
LCB6b29tKTsKKyAgICBEQkcoImV3a0JhY2tpbmdTdG9yZT0lcCwgem9vbT0lZiIsIGV3a0JhY2tp
bmdTdG9yZSwgem9vbSk7CiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0
b3JlLCBwcml2LCBmYWxzZSk7CiAgICAgaWYgKCFwcml2LT52aWV3LndpZHRoIHx8ICFwcml2LT52
aWV3LmhlaWdodCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTYxMyw4ICsxNjEzLDggQEAg
RWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fd2Vha19zZXQoRXZhc19PYmpl
Y3QqIGV3a0JhY2tpbmdTdG9yZSwgZmwKIAogICAgIGludCB2cm93cyA9IHN0YXRpY19jYXN0PGlu
dD4oY2VpbChwcml2LT52aWV3LmhlaWdodCAvc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVIZWlnaHQp
KSArIDEpOwogICAgIGludCB2Y29scyA9IHN0YXRpY19jYXN0PGludD4oY2VpbChwcml2LT52aWV3
LndpZHRoIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVXaWR0aCkpICsgMSk7Ci0gICAgRXZhc19D
b29yZCBuZXdYID0gY3VycmVudFggKyAocHJpdi0+dmlldy5vZmZzZXQuY3VyLnggLSBjdXJyZW50
WCkgKiBzY2FsZTsKLSAgICBFdmFzX0Nvb3JkIG5ld1kgPSBjdXJyZW50WSArIChwcml2LT52aWV3
Lm9mZnNldC5jdXIueSAtIGN1cnJlbnRZKSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3WCA9
IGN1cnJlbnRYICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAtIGN1cnJlbnRYKSAqIHNj
YWxlOworICAgIEV2YXNfQ29vcmQgbmV3WSA9IGN1cnJlbnRZICsgKHByaXYtPnZpZXcub2Zmc2V0
LmN1cnJlbnQueSAtIGN1cnJlbnRZKSAqIHNjYWxlOwogICAgIEV2YXNfQ29vcmQgYmFzZVggPSBu
ZXdYICUgdGlsZVdpZHRoOwogICAgIEV2YXNfQ29vcmQgYmFzZVkgPSBuZXdZICUgdGlsZUhlaWdo
dDsKICAgICB1bnNpZ25lZCBsb25nIGJhc2VSb3cgPSAtbmV3WSAvIHRpbGVIZWlnaHQ7CkBAIC0x
NjI2LDcgKzE2MjYsNyBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV93
ZWFrX3NldChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBmbAogICAgICAgICByZUNhbGN1
bGF0ZSA9IHRydWU7CiAgICAgfQogCi0gICAgaWYgKHZyb3dzID4gcHJpdi0+dmlldy5yb3dzIHx8
IHZjb2xzID4gcHJpdi0+dmlldy5jb2xzKQorICAgIGlmICh2cm93cyA+IHByaXYtPnZpZXcucm93
cyB8fCB2Y29scyA+IHByaXYtPnZpZXcuY29sdW1ucykKICAgICAgICAgcmVDYWxjdWxhdGUgPSB0
cnVlOwogCiAgICAgaWYgKHJlQ2FsY3VsYXRlKSB7CkBAIC0xNjY3LDggKzE2NjcsOCBAQCB2b2lk
IGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZpeF9vZmZzZXRzKEV2YXNfT2JqZWN0KiBld2tCYWNr
aW5nU3RvcmUsIEV2YXNfQ29vcgogICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJOKGV3a0JhY2tp
bmdTdG9yZSwgcHJpdik7CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRvciwgKippdGVyYXRvckVu
ZDsKICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVtOwotICAgIEV2YXNfQ29v
cmQgbmV3WCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAgIEV2YXNfQ29vcmQgbmV3WSA9
IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OworICAgIEV2YXNfQ29vcmQgbmV3WCA9IHByaXYtPnZp
ZXcub2Zmc2V0LmN1cnJlbnQueDsKKyAgICBFdmFzX0Nvb3JkIG5ld1kgPSBwcml2LT52aWV3Lm9m
ZnNldC5jdXJyZW50Lnk7CiAgICAgRXZhc19Db29yZCBiYXNlWCA9IHByaXYtPnZpZXcub2Zmc2V0
LmJhc2UueDsKICAgICBFdmFzX0Nvb3JkIGJhc2VZID0gcHJpdi0+dmlldy5vZmZzZXQuYmFzZS55
OwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoID0gcHJpdi0+dmlldy50aWxlLndpZHRoOwpAQCAt
MTY5Niw4ICsxNjk2LDggQEAgdm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9maXhfb2Zmc2V0
cyhFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBFdmFzX0Nvb3IKICAgICAgICAgcHJpdi0+
bW9kZWwuYmFzZS5yb3cgPSAtbmV3WSAvIHRpbGVIZWlnaHQ7CiAgICAgfQogCi0gICAgcHJpdi0+
dmlldy5vZmZzZXQuY3VyLnggPSBuZXdYOwotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ID0g
bmV3WTsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggPSBuZXdYOworICAgIHByaXYt
PnZpZXcub2Zmc2V0LmN1cnJlbnQueSA9IG5ld1k7CiAgICAgcHJpdi0+dmlldy5vZmZzZXQub2xk
LnggPSBuZXdYOwogICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0gbmV3WTsKICAgICBwcml2
LT52aWV3Lm9mZnNldC5iYXNlLnggPSBiYXNlWDsKQEAgLTE4MTUsOCArMTgxNSw4IEBAIHZvaWQg
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZmx1c2goRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9y
ZSkKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUsIHByaXYpOwog
ICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlID0gMDsKIAotICAgIHBy
aXYtPnZpZXcub2Zmc2V0LmN1ci54ID0gMDsKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSA9
IDA7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ID0gMDsKKyAgICBwcml2LT52aWV3
Lm9mZnNldC5jdXJyZW50LnkgPSAwOwogICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54ID0gMDsK
ICAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueSA9IDA7CiAgICAgcHJpdi0+dmlldy5vZmZzZXQu
YmFzZS54ID0gMDsKQEAgLTE5NTYsNyArMTk1Niw3IEBAIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lvbihFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3Jl
CiB7CiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2LCBm
YWxzZSk7CiAgICAgRWluYV9UaWxlX0dyaWRfU2xpY2VyIHNsaWNlcjsKLSAgICBjb25zdCBFaW5h
X1RpbGVfR3JpZF9JbmZvKiBpbmZvOworICAgIGNvbnN0IEVpbmFfVGlsZV9HcmlkX0luZm8qIGdy
aWRJbmZvOwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoLCB0aWxlSGVpZ2h0OwogICAgIEV3a19U
aWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlOwogCkBAIC0xOTcwLDEwICsxOTcwLDEw
IEBAIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lvbihF
dmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKLSAgICB3aGlsZSAoZWluYV90aWxlX2dyaWRfc2xpY2VyX25leHQoJnNsaWNlciwgJmluZm8p
KSB7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgYyA9IGluZm8tPmNvbDsKLSAgICAgICAg
Y29uc3QgdW5zaWduZWQgbG9uZyByID0gaW5mby0+cm93OwotICAgICAgICBpZiAoIV9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfYWRkKHByaXYsIGMsIHIsIHpvb20p
KQorICAgIHdoaWxlIChlaW5hX3RpbGVfZ3JpZF9zbGljZXJfbmV4dCgmc2xpY2VyLCAmZ3JpZElu
Zm8pKSB7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgY29sdW1uID0gZ3JpZEluZm8tPmNv
bDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyByb3cgPSBncmlkSW5mby0+cm93OworICAg
ICAgICBpZiAoIV9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfYWRk
KHByaXYsIGNvbHVtbiwgcm93LCB6b29tKSkKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIApA
QCAtMTk5Nyw3ICsxOTk3LDcgQEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3By
ZV9yZW5kZXJfcmVsYXRpdmVfcmFkaXVzKEV2YXNfT2JqZWN0KiBld2tCYWMKICAgICBlbmRSb3cg
PSBzdGQ6Om1pbihwcml2LT5tb2RlbC5jdXJyZW50LnJvd3MgLSAxLAogICAgICAgICAgICAgICAg
ICAgICAgICBwcml2LT5tb2RlbC5iYXNlLnJvdyArIHByaXYtPnZpZXcucm93cyArIG4gLSAxKTsK
ICAgICBlbmRDb2wgPSBzdGQ6Om1pbihwcml2LT5tb2RlbC5jdXJyZW50LmNvbHVtbnMgLSAxLAot
ICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5tb2RlbC5iYXNlLmNvbHVtbiArIHByaXYtPnZp
ZXcuY29scyArIG4gLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+bW9kZWwuYmFz
ZS5jb2x1bW4gKyBwcml2LT52aWV3LmNvbHVtbnMgKyBuIC0gMSk7CiAKICAgICBJTkYoInN0YXJ0
Um93PSVsdSwgZW5kUm93PSVsdSwgc3RhcnRDb2w9JWx1LCBlbmRDb2w9JWx1IiwKICAgICAgICAg
c3RhcnRSb3csIGVuZFJvdywgc3RhcnRDb2wsIGVuZENvbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5oCmluZGV4IGU5M2NjZjcuLjdiOGNlMGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9y
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5o
CkBAIC02Miw5ICs2Miw5IEBAIHN0cnVjdCBfRXdrX1RpbGVfU3RhdHMgewogfTsKIAogc3RydWN0
IF9Fd2tfVGlsZSB7Ci0gICAgRWluYV9UaWxlciogdXBkYXRlczsgICAgLyoqPCB1cGRhdGVkL2Rp
cnR5IGFyZWFzICovCisgICAgRWluYV9UaWxlciAqdXBkYXRlczsgICAgLyoqPCB1cGRhdGVkL2Rp
cnR5IGFyZWFzICovCiAgICAgRXdrX1RpbGVfU3RhdHMgc3RhdHM7ICAgICAgIC8qKjwgdGlsZSB1
c2FnZSBzdGF0aXN0aWNzICovCi0gICAgdW5zaWduZWQgbG9uZyBjb2wsIHJvdzsgLyoqPCB0aWxl
IHRpbGUgcG9zaXRpb24gKi8KKyAgICB1bnNpZ25lZCBsb25nIGNvbHVtbiwgcm93OyAvKio8IHRp
bGUgdGlsZSBwb3NpdGlvbiAqLwogICAgIEV2YXNfQ29vcmQgeCwgeTsgICAgICAgIC8qKjwgdGls
ZSBjb29yZGluYXRlIHBvc2l0aW9uICovCiAKICAgICAvKiogTmV2ZXIgZXZlciBjaGFuZ2UgdGhv
c2UgYWZ0ZXIgdGlsZSBpcyBjcmVhdGVkIChyZXNwZWN0IGNvbnN0ISkgKi8KQEAgLTc2LDQ1ICs3
Niw0NSBAQCBzdHJ1Y3QgX0V3a19UaWxlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKiBhbGlnbmVtZW50IQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
LwogICAgIGludCB2aXNpYmxlOyAgICAgICAgICAgICAgICAgIC8qKjwgdmlzaWJpbGl0eSBjb3Vu
dGVyIG9mIHRoaXMgdGlsZSAqLwotICAgIEV2YXNfT2JqZWN0KiBpbWFnZTsgICAgICAgICAgIC8q
KjwgRXZhcyBJbWFnZSwgdGhlIHRpbGUgdG8gYmUgcmVuZGVyZWQgKi8KLSAgICB1aW50OF90KiBw
aXhlbHM7CisgICAgRXZhc19PYmplY3QgKmltYWdlOyAgICAgICAgICAgLyoqPCBFdmFzIEltYWdl
LCB0aGUgdGlsZSB0byBiZSByZW5kZXJlZCAqLworICAgIHVpbnQ4X3QgKnBpeGVsczsKIH07CiAK
ICNpbmNsdWRlICJld2tfdGlsZWRfbWF0cml4LmgiCiAjaW5jbHVkZSAiZXdrX3RpbGVkX21vZGVs
LmgiCiAKIC8qIHZpZXcgKi8KLUV2YXNfT2JqZWN0KiBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9h
ZGQoRXZhcyogZSk7Ci0KLXZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVuZGVyX2NiX3Nl
dChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sICgqY2IpKHZvaWQqIGRhdGEsIEV3a19UaWxlKiB0
LCBjb25zdCBFaW5hX1JlY3RhbmdsZSogYXJlYSksIGNvbnN0IHZvaWQqIGRhdGEpOwotCi1FaW5h
X0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3NldChFdmFz
X09iamVjdCogbywgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHkpOwotRWluYV9Cb29sIGV3a190
aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9hZGQoRXZhc19PYmplY3QqIG8s
IEV2YXNfQ29vcmQgZHgsIEV2YXNfQ29vcmQgZHkpOwotRWluYV9Cb29sIGV3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3Njcm9sbF9pbm5lcl9vZmZzZXRfYWRkKEV2YXNfT2JqZWN0KiBvLCBFdmFzX0Nv
b3JkIGR4LCBFdmFzX0Nvb3JkIGR5LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSwgRXZhc19D
b29yZCB3LCBFdmFzX0Nvb3JkIGgpOwotCi1FaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfem9vbV9zZXQoRXZhc19PYmplY3QqIG8sIGZsb2F0KiB6b29tLCBFdmFzX0Nvb3JkIGN4LCBF
dmFzX0Nvb3JkIGN5LCBFdmFzX0Nvb3JkKiBvZmZ4LCBFdmFzX0Nvb3JkKiBvZmZ5KTsKLUVpbmFf
Qm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3dlYWtfc2V0KEV2YXNfT2JqZWN0KiBv
LCBmbG9hdCB6b29tLCBFdmFzX0Nvb3JkIGN4LCBFdmFzX0Nvb3JkIGN5KTsKLXZvaWQgZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfZml4X29mZnNldHMoRXZhc19PYmplY3QqIG8sIEV2YXNfQ29vcmQg
dywgRXZhc19Db29yZCBoKTsKLXZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV93ZWFr
X3Ntb290aF9zY2FsZV9zZXQoRXZhc19PYmplY3QqIG8sIEVpbmFfQm9vbCBzbW9vdGhfc2NhbGUp
Owotdm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9hbHBoYV9zZXQoRXZhc19PYmplY3QqIG8s
IEVpbmFfQm9vbCBoYXNfYWxwaGEpOwotRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3VwZGF0ZShFdmFzX09iamVjdCogbywgY29uc3QgRWluYV9SZWN0YW5nbGUqIHVwZGF0ZSk7Ci12
b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3VwZGF0ZXNfcHJvY2Vzc19wcmVfc2V0KEV2YXNf
T2JqZWN0KiBvLCB2b2lkKigqY2IpKHZvaWQqIGRhdGEsIEV2YXNfT2JqZWN0ICpvKSwgY29uc3Qg
dm9pZCogZGF0YSk7Ci12b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3VwZGF0ZXNfcHJvY2Vz
c19wb3N0X3NldChFdmFzX09iamVjdCogbywgdm9pZCooKmNiKSh2b2lkKiBkYXRhLCB2b2lkKiBw
cmVfZGF0YSwgRXZhc19PYmplY3QgKm8pLCBjb25zdCB2b2lkKiBkYXRhKTsKLXZvaWQgZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfdXBkYXRlc19wcm9jZXNzKEV2YXNfT2JqZWN0KiBvKTsKLXZvaWQg
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdXBkYXRlc19jbGVhcihFdmFzX09iamVjdCogbyk7Ci12
b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2NvbnRlbnRzX3Jlc2l6ZShFdmFzX09iamVjdCog
bywgRXZhc19Db29yZCB3aWR0aCwgRXZhc19Db29yZCBoZWlnaHQpOwotdm9pZCBld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9kaXNhYmxlZF91cGRhdGVfc2V0KEV2YXNfT2JqZWN0KiBvLCBFaW5hX0Jv
b2wgdmFsdWUpOwotdm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9mbHVzaChFdmFzX09iamVj
dCogbyk7Ci12b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2VuYWJsZV9zY2FsZV9zZXQoRXZh
c19PYmplY3QqIG8sIEVpbmFfQm9vbCB2YWx1ZSk7Ci0KLUV3a19UaWxlX1VudXNlZF9DYWNoZSog
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2FjaGVfZ2V0KGNvbnN0IEV2YXNf
T2JqZWN0KiBvKTsKLXZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2Fj
aGVfc2V0KEV2YXNfT2JqZWN0KiBvLCBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHR1Yyk7Ci0KLUVp
bmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lvbihFdmFzX09i
amVjdCogbywgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHksIEV2YXNfQ29vcmQgdywgRXZhc19D
b29yZCBoLCBmbG9hdCB6b29tKTsKLUVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9w
cmVfcmVuZGVyX3JlbGF0aXZlX3JhZGl1cyhFdmFzX09iamVjdCogbywgdW5zaWduZWQgaW50IG4s
IGZsb2F0IHpvb20pOwotRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5k
ZXJfc3BpcmFsX3F1ZXVlKEV2YXNfT2JqZWN0KiBvLCBFaW5hX1JlY3RhbmdsZSogdmlld19yZWN0
LCBFaW5hX1JlY3RhbmdsZSogcmVuZGVyX3JlY3QsIGludCBtYXhfbWVtb3J5LCBmbG9hdCB6b29t
KTsKLXZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9jYW5jZWwoRXZhc19P
YmplY3QqIG8pOwotCi1FaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZGlzYWJsZV9y
ZW5kZXIoRXZhc19PYmplY3QqIG8pOwotRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3Jl
X2VuYWJsZV9yZW5kZXIoRXZhc19PYmplY3QqIG8pOworRXZhc19PYmplY3QgKmV3a190aWxlZF9i
YWNraW5nX3N0b3JlX2FkZChFdmFzICplKTsKKwordm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9yZW5kZXJfY2Jfc2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgKCpjYikodm9pZCAqZGF0
YSwgRXdrX1RpbGUgKnQsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlICphcmVhKSwgY29uc3Qgdm9pZCAq
ZGF0YSk7CisKK0VpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVsbF9v
ZmZzZXRfc2V0KEV2YXNfT2JqZWN0ICpvLCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSk7CitF
aW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X2FkZChF
dmFzX09iamVjdCAqbywgRXZhc19Db29yZCBkeCwgRXZhc19Db29yZCBkeSk7CitFaW5hX0Jvb2wg
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2lubmVyX29mZnNldF9hZGQoRXZhc19PYmpl
Y3QgKm8sIEV2YXNfQ29vcmQgZHgsIEV2YXNfQ29vcmQgZHksIEV2YXNfQ29vcmQgeCwgRXZhc19D
b29yZCB5LCBFdmFzX0Nvb3JkIHcsIEV2YXNfQ29vcmQgaCk7CisKK0VpbmFfQm9vbCBld2tfdGls
ZWRfYmFja2luZ19zdG9yZV96b29tX3NldChFdmFzX09iamVjdCAqbywgZmxvYXQgKnpvb20sIEV2
YXNfQ29vcmQgY3gsIEV2YXNfQ29vcmQgY3ksIEV2YXNfQ29vcmQgKm9mZngsIEV2YXNfQ29vcmQg
Km9mZnkpOworRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fd2Vha19zZXQo
RXZhc19PYmplY3QgKm8sIGZsb2F0IHpvb20sIEV2YXNfQ29vcmQgY3gsIEV2YXNfQ29vcmQgY3kp
Owordm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9maXhfb2Zmc2V0cyhFdmFzX09iamVjdCAq
bywgRXZhc19Db29yZCB3LCBFdmFzX0Nvb3JkIGgpOwordm9pZCBld2tfdGlsZWRfYmFja2luZ19z
dG9yZV96b29tX3dlYWtfc21vb3RoX3NjYWxlX3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29s
IHNtb290aF9zY2FsZSk7Cit2b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2FscGhhX3NldChF
dmFzX09iamVjdCAqbywgRWluYV9Cb29sIGhhc19hbHBoYSk7CitFaW5hX0Jvb2wgZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfdXBkYXRlKEV2YXNfT2JqZWN0ICpvLCBjb25zdCBFaW5hX1JlY3Rhbmds
ZSAqdXBkYXRlKTsKK3ZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdXBkYXRlc19wcm9jZXNz
X3ByZV9zZXQoRXZhc19PYmplY3QgKm8sIHZvaWQqKCpjYikodm9pZCAqZGF0YSwgRXZhc19PYmpl
Y3QgKm8pLCBjb25zdCB2b2lkICpkYXRhKTsKK3ZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
dXBkYXRlc19wcm9jZXNzX3Bvc3Rfc2V0KEV2YXNfT2JqZWN0ICpvLCB2b2lkKigqY2IpKHZvaWQg
KmRhdGEsIHZvaWQgKnByZV9kYXRhLCBFdmFzX09iamVjdCAqbyksIGNvbnN0IHZvaWQgKmRhdGEp
Owordm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV91cGRhdGVzX3Byb2Nlc3MoRXZhc19PYmpl
Y3QgKm8pOwordm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV91cGRhdGVzX2NsZWFyKEV2YXNf
T2JqZWN0ICpvKTsKK3ZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfY29udGVudHNfcmVzaXpl
KEV2YXNfT2JqZWN0ICpvLCBFdmFzX0Nvb3JkIHdpZHRoLCBFdmFzX0Nvb3JkIGhlaWdodCk7Cit2
b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2Rpc2FibGVkX3VwZGF0ZV9zZXQoRXZhc19PYmpl
Y3QgKm8sIEVpbmFfQm9vbCB2YWx1ZSk7Cit2b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2Zs
dXNoKEV2YXNfT2JqZWN0ICpvKTsKK3ZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZW5hYmxl
X3NjYWxlX3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIHZhbHVlKTsKKworRXdrX1RpbGVf
VW51c2VkX0NhY2hlICpld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX3VudXNlZF9jYWNoZV9n
ZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwordm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV90
aWxlX3VudXNlZF9jYWNoZV9zZXQoRXZhc19PYmplY3QgKm8sIEV3a19UaWxlX1VudXNlZF9DYWNo
ZSAqdHVjKTsKKworRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJf
cmVnaW9uKEV2YXNfT2JqZWN0ICpvLCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSwgRXZhc19D
b29yZCB3LCBFdmFzX0Nvb3JkIGgsIGZsb2F0IHpvb20pOworRWluYV9Cb29sIGV3a190aWxlZF9i
YWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVsYXRpdmVfcmFkaXVzKEV2YXNfT2JqZWN0ICpvLCB1
bnNpZ25lZCBpbnQgbiwgZmxvYXQgem9vbSk7CitFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfcHJlX3JlbmRlcl9zcGlyYWxfcXVldWUoRXZhc19PYmplY3QgKm8sIEVpbmFfUmVjdGFu
Z2xlKiB2aWV3X3JlY3QsIEVpbmFfUmVjdGFuZ2xlICpyZW5kZXJfcmVjdCwgaW50IG1heF9tZW1v
cnksIGZsb2F0IHpvb20pOwordm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVy
X2NhbmNlbChFdmFzX09iamVjdCAqbyk7CisKK0VpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9kaXNhYmxlX3JlbmRlcihFdmFzX09iamVjdCAqbyk7CitFaW5hX0Jvb2wgZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfZW5hYmxlX3JlbmRlcihFdmFzX09iamVjdCAqbyk7CiAjZW5kaWYgLy8g
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a190aWxlZF9tYXRyaXguY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxl
ZF9tYXRyaXguY3BwCmluZGV4IGFiMDYwNDIuLjVkOTkxYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbWF0cml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3RpbGVkX21hdHJpeC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX0V3a19UaWxlX01hdHJpeF9FbnRyeSBFd2tfVGlsZV9NYXRyaXhfRW50cnk7CiBzdHJ1Y3Qg
X0V3a19UaWxlX01hdHJpeCB7CiAgICAgRWluYV9NYXRyaXhzcGFyc2UqIG1hdHJpeDsKICAgICBF
aW5hX0lubGlzdCogbWF0cmljZXM7Ci0gICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxpZVVu
dXNlZENhY2hlOworICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlOwog
ICAgIEV2YXNfQ29sb3JzcGFjZSBjc3BhY2U7CiAgICAgc3RydWN0IHsKICAgICAgICAgdm9pZCAo
KmNhbGxiYWNrKSh2b2lkKiBkYXRhLCBFd2tfVGlsZSogdGlsZSwgY29uc3QgRWluYV9SZWN0YW5n
bGUqIHVwZGF0ZSk7CkBAIC05NCw3ICs5NCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZV9tYXRy
aXhfY2VsbF9mcmVlKHZvaWQqIHVzZXJEYXRhLCB2b2lkKiBjZWxsRGF0YSkKICAgICBpZiAoIXRp
bGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9mcmVlemUo
dGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hl
X2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogCiAgICAgaWYgKHRpbGUtPnVw
ZGF0ZXMgfHwgdGlsZS0+c3RhdHMuZnVsbF91cGRhdGUpCiAgICAgICAgIHRpbGVNYXRyaXgtPnVw
ZGF0ZXMgPSBlaW5hX2xpc3RfcmVtb3ZlKHRpbGVNYXRyaXgtPnVwZGF0ZXMsIHRpbGUpOwpAQCAt
MTAyLDggKzEwMiw4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZV9tYXRyaXhfY2VsbF9mcmVlKHZv
aWQqIHVzZXJEYXRhLCB2b2lkKiBjZWxsRGF0YSkKICAgICBpZiAodGlsZS0+dmlzaWJsZSkKICAg
ICAgICAgRVJSKCJmcmVlaW5nIGNlbGwgdGhhdCBpcyB2aXNpYmxlLCBsZWFraW5nIHRpbGUgJXAi
LCB0aWxlKTsKICAgICBlbHNlIHsKLSAgICAgICAgaWYgKCFld2tfdGlsZV91bnVzZWRfY2FjaGVf
dGlsZV9nZXQodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSwgdGlsZSkpCi0gICAgICAgICAg
ICBFUlIoInRpbGUgJXAgd2FzIG5vdCBpbiBjYWNoZSAlcD8gbGVha2luZy4uLiIsIHRpbGUsIHRp
bGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgICAgICBpZiAoIWV3a190aWxlX3VudXNl
ZF9jYWNoZV90aWxlX2dldCh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUsIHRpbGUpKQorICAg
ICAgICAgICAgRVJSKCJ0aWxlICVwIHdhcyBub3QgaW4gY2FjaGUgJXA/IGxlYWtpbmcuLi4iLCB0
aWxlLCB0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogICAgICAgICBlbHNlIHsKICAgICAg
ICAgICAgIEV3a19UaWxlX01hdHJpeF9FbnRyeSogZW50cnk7CiAgICAgICAgICAgICBEQkcoInRp
bGUgY2VsbCBkb2VzIG5vdCBleGlzdCBhbnltb3JlLCBmcmVlIGl0ICVwIiwgdGlsZSk7CkBAIC0x
MjEsNyArMTIxLDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlX21hdHJpeF9jZWxsX2ZyZWUodm9p
ZCogdXNlckRhdGEsIHZvaWQqIGNlbGxEYXRhKQogICAgICAgICB9CiAgICAgfQogCi0gICAgZXdr
X3RpbGVfdW51c2VkX2NhY2hlX3RoYXcodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7Cisg
ICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXcodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hl
KTsKIH0KIAogLyogY2FsbGVkIHdoZW4gY2FjaGUgb2YgdW51c2VkIHRpbGUgaXMgZmx1c2hlZCAq
LwpAQCAtMTM3LDcgKzEzNyw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZV9tYXRyaXhfdGlsZV9m
cmVlKHZvaWQqIGRhdGEsIEV3a19UaWxlKiB0aWxlKQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgaWYgKCFlaW5hX21hdHJpeHNwYXJzZV9jZWxsX2lkeF9nZXQoZW50cnktPm1hdHJpeCwg
dGlsZS0+cm93LCB0aWxlLT5jb2wsICZjZWxsKSkgeworICAgIGlmICghZWluYV9tYXRyaXhzcGFy
c2VfY2VsbF9pZHhfZ2V0KGVudHJ5LT5tYXRyaXgsIHRpbGUtPnJvdywgdGlsZS0+Y29sdW1uLCAm
Y2VsbCkpIHsKIAogICAgICAgICBFUlIoInJlbW92aW5nIHRpbGUgJXAgdGhhdCB3YXMgbm90IGlu
IHRoZSBtYXRyaXg/IExlYWtpbmcuLi4iLCB0aWxlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTg0
LDcgKzE4NCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZV9tYXRyaXhfdGlsZV9mcmVlKHZvaWQq
IGRhdGEsIEV3a19UaWxlKiB0aWxlKQogICogZXhpc3RpbmcgdGlsZXMgYW5kIGdpdmUgdGhlbSBi
YWNrLCBhbGxvd2luZyB0aGVtIHRvIGJlCiAgKiBmcmVlZC9yZXBsYWNlZCBieSB0aGUgY2FjaGUu
CiAgKgotICogQHBhcmFtIHR1YyBjYWNoZSBvZiB1bnVzZWQgdGlsZXMgb3IgQGMgMCB0byBjcmVh
dGUgb25lCisgKiBAcGFyYW0gdGlsZVVudXNlZENhY2hlIGNhY2hlIG9mIHVudXNlZCB0aWxlcyBv
ciBAYyAwIHRvIGNyZWF0ZSBvbmUKICAqICAgICAgICBhdXRvbWF0aWNhbGx5LgogICogQHBhcmFt
IGNvbHVtbnMgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIG1hdHJpeC4KICAqIEBwYXJhbSByb3dz
IG51bWJlciBvZiByb3dzIGluIHRoZSBtYXRyaXguCkBAIC0yMTEsMTAgKzIxMSwxMCBAQCBFd2tf
VGlsZV9NYXRyaXgqIGV3a190aWxlX21hdHJpeF9uZXcoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0
aWxlVW51c2VkQ2FjaGUsIHVucwogICAgIGV3a190aWxlX21hdHJpeF96b29tX2xldmVsX3NldCh0
aWxlTWF0cml4LCB6b29tTGV2ZWwpOwogCiAgICAgaWYgKHRpbGVVbnVzZWRDYWNoZSkKLSAgICAg
ICAgdGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSA9IGV3a190aWxlX3VudXNlZF9jYWNoZV9y
ZWYodGlsZVVudXNlZENhY2hlKTsKKyAgICAgICAgdGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hl
ID0gZXdrX3RpbGVfdW51c2VkX2NhY2hlX3JlZih0aWxlVW51c2VkQ2FjaGUpOwogICAgIGVsc2Ug
ewotICAgICAgICB0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlID0gZXdrX3RpbGVfdW51c2Vk
X2NhY2hlX25ldyhERUZBVUxUX0NBQ0hFX1NJWkUpOwotICAgICAgICBpZiAoIXRpbGVNYXRyaXgt
PnRpbGllVW51c2VkQ2FjaGUpIHsKKyAgICAgICAgdGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hl
ID0gZXdrX3RpbGVfdW51c2VkX2NhY2hlX25ldyhERUZBVUxUX0NBQ0hFX1NJWkUpOworICAgICAg
ICBpZiAoIXRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSkgewogICAgICAgICAgICAgRVJSKCJu
byBjYWNoZSBvZiB1bnVzZWQgdGlsZSEiKTsKICAgICAgICAgICAgIGVpbmFfbWF0cml4c3BhcnNl
X2ZyZWUodGlsZU1hdHJpeC0+bWF0cml4KTsKICAgICAgICAgICAgIGZyZWUodGlsZU1hdHJpeCk7
CkBAIC0yOTgsNyArMjk4LDcgQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfZnJlZShFd2tfVGlsZV9N
YXRyaXgqIHRpbGVNYXRyaXgpCiAKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTih0aWxl
TWF0cml4KTsKIAotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9mcmVlemUodGlsZU1hdHJpeC0+
dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZSh0aWxl
TWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogICAgIGV3a190aWxlX21hdHJpeF9pbnZhbGlkYXRl
KHRpbGVNYXRyaXgpOwogICAgIGVudHJ5ID0gRUlOQV9JTkxJU1RfQ09OVEFJTkVSX0dFVCh0aWxl
TWF0cml4LT5tYXRyaWNlcywgRXdrX1RpbGVfTWF0cml4X0VudHJ5KTsKICAgICBlaW5hX21hdHJp
eHNwYXJzZV9mcmVlKGVudHJ5LT5tYXRyaXgpOwpAQCAtMzA2LDggKzMwNiw4IEBAIHZvaWQgZXdr
X3RpbGVfbWF0cml4X2ZyZWUoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4KQogICAgIGZyZWUo
ZW50cnkpOwogICAgIHRpbGVNYXRyaXgtPm1hdHJpY2VzID0gMDsKIAotICAgIGV3a190aWxlX3Vu
dXNlZF9jYWNoZV90aGF3KHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOwotICAgIGV3a190
aWxlX3VudXNlZF9jYWNoZV91bnJlZih0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlKTsKKyAg
ICBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGhhdyh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUp
OworICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV91bnJlZih0aWxlTWF0cml4LT50aWxlVW51c2Vk
Q2FjaGUpOwogCiAjaWZkZWYgREVCVUdfTUVNX0xFQUtTCiAgICAgdGlsZXMgPSB0aWxlTWF0cml4
LT5zdGF0cy50aWxlcy5hbGxvY2F0ZWQgLSB0aWxlTWF0cml4LT5zdGF0cy50aWxlcy5mcmVlZDsK
QEAgLTM1NSw3ICszNTUsNyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9yZXNpemUoRXdrX1RpbGVf
TWF0cml4KiB0aWxlTWF0cml4LCB1bnNpZ25lZCBsb25nIGNvbHMsIHVucwogRXdrX1RpbGVfVW51
c2VkX0NhY2hlKiBld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChjb25zdCBFd2tfVGls
ZV9NYXRyaXgqIHRpbGVNYXRyaXgpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5f
VkFMKHRpbGVNYXRyaXgsIDApOwotICAgIHJldHVybiB0aWxlTWF0cml4LT50aWxpZVVudXNlZENh
Y2hlOworICAgIHJldHVybiB0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGU7CiB9CiAKIC8qKgpA
QCAtMzkwLDcgKzM5MCw3IEBAIEV3a19UaWxlKiBld2tfdGlsZV9tYXRyaXhfdGlsZV9leGFjdF9n
ZXQoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4LCB1bnNpZ25lZCBsCiAKIGVuZDoKICAgICBp
ZiAoIXRpbGUtPnZpc2libGUpIHsKLSAgICAgICAgaWYgKCFld2tfdGlsZV91bnVzZWRfY2FjaGVf
dGlsZV9nZXQodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSwgdGlsZSkpCisgICAgICAgIGlm
ICghZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfZ2V0KHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRD
YWNoZSwgdGlsZSkpCiAgICAgICAgICAgICBXUk4oIkV3a19UaWxlIHdhcyB1bnVzZWQgYnV0IG5v
dCBpbiBjYWNoZT8gYnVnISIpOwogICAgIH0KIApAQCAtNDU5LDcgKzQ1OSw3IEBAIEV3a19UaWxl
KiBld2tfdGlsZV9tYXRyaXhfdGlsZV9uZXcoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4LCBF
dmFzKiBjYW52YXMsIHVuCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIHRpbGUtPmNv
bCA9IGNvbHVtbjsKKyAgICB0aWxlLT5jb2x1bW4gPSBjb2x1bW47CiAgICAgdGlsZS0+cm93ID0g
cm93OwogICAgIHRpbGUtPnggPSBjb2x1bW4gKiB0aWxlV2lkdGg7CiAgICAgdGlsZS0+eSA9IHJv
dyAqIHRpbGVIZWlnaHQ7CkBAIC00ODYsNyArNDg2LDcgQEAgRXdrX1RpbGUqIGV3a190aWxlX21h
dHJpeF90aWxlX25ldyhFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgsIEV2YXMqIGNhbnZhcywg
dW4KICAqIHVudXNlZCBjYWNoZS4KICAqCiAgKiBAcGFyYW0gdGlsZU1hdHJpeCB0aGUgdGlsZSBt
YXRyaXggdG8gcmV0dXJuIHRpbGUgdG8uCi0gKiBAcGFyYW0gdCB0aGUgdGlsZSBpbnN0YW5jZSB0
byByZXR1cm4sIG11c3QgQGIgbm90IGJlIEBjIDAuCisgKiBAcGFyYW0gdGlsZSB0aGUgdGlsZSBp
bnN0YW5jZSB0byByZXR1cm4sIG11c3QgQGIgbm90IGJlIEBjIDAuCiAgKiBAcGFyYW0gbGFzdF91
c2VkIHRpbWUgaW4gd2hpY2ggdGlsZS53aWR0aGFzIGxhc3QgdXNlZC4KICAqCiAgKiBAcmV0dXJu
ICN0cnVlIG9uIHN1Y2Nlc3Mgb3IgI2ZhbHNlIG9uIGZhaWx1cmUuCkBAIC01MDAsNyArNTAwLDcg
QEAgRWluYV9Cb29sIGV3a190aWxlX21hdHJpeF90aWxlX3B1dChFd2tfVGlsZV9NYXRyaXgqIHRp
bGVNYXRyaXgsIEV3a19UaWxlKiB0aWxlLAogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHRp
bGUtPnN0YXRzLmxhc3RfdXNlZCA9IGxhc3RVc2VkOwotICAgIHJldHVybiBld2tfdGlsZV91bnVz
ZWRfY2FjaGVfdGlsZV9wdXQodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSwgdGlsZSwgX2V3
a190aWxlX21hdHJpeF90aWxlX2ZyZWUsIHRpbGVNYXRyaXgpOworICAgIHJldHVybiBld2tfdGls
ZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlLCB0aWxl
LCBfZXdrX3RpbGVfbWF0cml4X3RpbGVfZnJlZSwgdGlsZU1hdHJpeCk7CiB9CiAKIEVpbmFfQm9v
bCBld2tfdGlsZV9tYXRyaXhfdGlsZV91cGRhdGUoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4
LCB1bnNpZ25lZCBsb25nIGNvbCwgdW5zaWduZWQgbG9uZyByb3csIGNvbnN0IEVpbmFfUmVjdGFu
Z2xlKiB1cGRhdGUpCkBAIC03MDYsNyArNzA2LDcgQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfZGJn
KGNvbnN0IEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCkKICAgICAgICAgICAgICAgICBwcmlu
dGYoIlxuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwcmludGYoIiUzbHUsJTNsdSAl
MTBwOiIsIGNvbHVtbiwgcm93LCB0aWxlKTsKLSAgICAgICAgICAgIHByaW50ZigiIFslM2x1LCUz
bHUgKyAlZHglZCBAICUwLjNmXSVjIiwgdGlsZS0+Y29sLCB0aWxlLT5yb3csIHRpbGUtPndpZHRo
LCB0aWxlLT5oZWlnaHQsIHRpbGUtPnpvb20sIHRpbGUtPnZpc2libGUgPyAnKicgOiAnICcpOwor
ICAgICAgICAgICAgcHJpbnRmKCIgWyUzbHUsJTNsdSArICVkeCVkIEAgJTAuM2ZdJWMiLCB0aWxl
LT5jb2x1bW4sIHRpbGUtPnJvdywgdGlsZS0+d2lkdGgsIHRpbGUtPmhlaWdodCwgdGlsZS0+em9v
bSwgdGlsZS0+dmlzaWJsZSA/ICcqJyA6ICcgJyk7CiAgICAgICAgICAgICBwcmludGYoIlxuIik7
CiAgICAgICAgIH0KICAgICB9CkBAIC03MTQsNyArNzE0LDcgQEAgdm9pZCBld2tfdGlsZV9tYXRy
aXhfZGJnKGNvbnN0IEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCkKICAgICAgICAgcHJpbnRm
KCJcbiIpOwogICAgIGVpbmFfaXRlcmF0b3JfZnJlZShpdGVyYXRvcik7CiAKLSAgICBld2tfdGls
ZV91bnVzZWRfY2FjaGVfZGJnKHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgIGV3
a190aWxlX3VudXNlZF9jYWNoZV9kYmcodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlKTsKIH0K
IAogLyoqCkBAIC03MzAsNyArNzMwLDcgQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfZnJlZXplKEV3
a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTih0aWxlTWF0cml4KTsKICAgICBpZiAoIXRpbGVNYXRyaXgtPmZyb3plbikKLSAgICAgICAg
ZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hl
KTsKKyAgICAgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxl
VW51c2VkQ2FjaGUpOwogICAgIHRpbGVNYXRyaXgtPmZyb3plbisrOwogfQogCkBAIC03NTAsNSAr
NzUwLDUgQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfdGhhdyhFd2tfVGlsZV9NYXRyaXgqIHRpbGVN
YXRyaXgpCiAKICAgICB0aWxlTWF0cml4LT5mcm96ZW4tLTsKICAgICBpZiAoIXRpbGVNYXRyaXgt
PmZyb3plbikKLSAgICAgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXcodGlsZU1hdHJpeC0+
dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3KHRp
bGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3RpbGVkX21hdHJpeC5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190
aWxlZF9tYXRyaXguaAppbmRleCBmZTZiNjY4Li41NDBjMjlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21hdHJpeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdGlsZWRfbWF0cml4LmgKQEAgLTI2LDM2ICsyNiwzNCBAQAogI2luY2x1ZGUgPEV2
YXMuaD4KIAogLyogbWF0cml4IG9mIHRpbGVzICovCi1Fd2tfVGlsZV9NYXRyaXgqIGV3a190aWxl
X21hdHJpeF9uZXcoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUsIHVuc2ln
bmVkIGxvbmcgY29sdW1ucywgdW5zaWduZWQgbG9uZyByb3dzLCBmbG9hdCB6b29tTGV2ZWwsIEV2
YXNfQ29sb3JzcGFjZSBjb2xvclNwYWNlLCB2b2lkICgqcmVuZGVyX2NhbGxiYWNrKSh2b2lkKiBk
YXRhLCBFd2tfVGlsZSogdGlsZSwgY29uc3QgRWluYV9SZWN0YW5nbGUqIHVwZGF0ZSksIGNvbnN0
IHZvaWQqIHJlbmRlckRhdGEpOwotdm9pZCBld2tfdGlsZV9tYXRyaXhfZnJlZShFd2tfVGlsZV9N
YXRyaXgqIHRtKTsKK0V3a19UaWxlX01hdHJpeCAqZXdrX3RpbGVfbWF0cml4X25ldyhFd2tfVGls
ZV9VbnVzZWRfQ2FjaGUgKnRpbGVVbnVzZWRDYWNoZSwgdW5zaWduZWQgbG9uZyBjb2x1bW5zLCB1
bnNpZ25lZCBsb25nIHJvd3MsIGZsb2F0IHpvb21MZXZlbCwgRXZhc19Db2xvcnNwYWNlIGNvbG9y
U3BhY2UsIHZvaWQgKCpyZW5kZXJfY2FsbGJhY2spKHZvaWQgKmRhdGEsIEV3a19UaWxlICp0aWxl
LCBjb25zdCBFaW5hX1JlY3RhbmdsZSAqdXBkYXRlKSwgY29uc3Qgdm9pZCAqcmVuZGVyRGF0YSk7
Cit2b2lkIGV3a190aWxlX21hdHJpeF9mcmVlKEV3a19UaWxlX01hdHJpeCAqdG0pOwogCi12b2lk
IGV3a190aWxlX21hdHJpeF9yZXNpemUoRXdrX1RpbGVfTWF0cml4KiB0bSwgdW5zaWduZWQgbG9u
ZyBjb2xzLCB1bnNpZ25lZCBsb25nIHJvd3MpOwotdm9pZCBld2tfdGlsZV9tYXRyaXhfem9vbV9s
ZXZlbF9zZXQoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4LCBmbG9hdCB6b29tKTsKLXZvaWQg
ZXdrX3RpbGVfbWF0cml4X2ludmFsaWRhdGUoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4KTsK
K3ZvaWQgZXdrX3RpbGVfbWF0cml4X3Jlc2l6ZShFd2tfVGlsZV9NYXRyaXggKnRtLCB1bnNpZ25l
ZCBsb25nIGNvbHMsIHVuc2lnbmVkIGxvbmcgcm93cyk7Cit2b2lkIGV3a190aWxlX21hdHJpeF96
b29tX2xldmVsX3NldChFd2tfVGlsZV9NYXRyaXggKnRpbGVNYXRyaXgsIGZsb2F0IHpvb20pOwor
dm9pZCBld2tfdGlsZV9tYXRyaXhfaW52YWxpZGF0ZShFd2tfVGlsZV9NYXRyaXggKnRpbGVNYXRy
aXgpOwogCi1Fd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIGV3a190aWxlX21hdHJpeF91bnVzZWRfY2Fj
aGVfZ2V0KGNvbnN0IEV3a19UaWxlX01hdHJpeCogdG0pOworRXdrX1RpbGVfVW51c2VkX0NhY2hl
ICpld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChjb25zdCBFd2tfVGlsZV9NYXRyaXgg
KnRtKTsKIAotRXdrX1RpbGUqIGV3a190aWxlX21hdHJpeF90aWxlX2V4YWN0X2dldChFd2tfVGls
ZV9NYXRyaXgqIHRtLCB1bnNpZ25lZCBsb25nIGNvbCwgdW5zaWduZWQgbG9uZyByb3csIGZsb2F0
IHpvb20pOwotRWluYV9Cb29sIGV3a190aWxlX21hdHJpeF90aWxlX2V4YWN0X2V4aXN0cyhFd2tf
VGlsZV9NYXRyaXgqIHRtLCB1bnNpZ25lZCBsb25nIGNvbCwgdW5zaWduZWQgbG9uZyByb3csIGZs
b2F0IHpvb20pOwotRXdrX1RpbGUqIGV3a190aWxlX21hdHJpeF90aWxlX25lYXJlc3RfZ2V0KEV3
a19UaWxlX01hdHJpeCogdG0sIHVuc2lnbmVkIGxvbmcgY29sLCB1bnNpZ25lZCBsb25nIHJvdywg
ZmxvYXQgem9vbSk7Ci1Fd2tfVGlsZSogZXdrX3RpbGVfbWF0cml4X3RpbGVfbmV3KEV3a19UaWxl
X01hdHJpeCogdG0sIEV2YXMqIGV2YXMsIHVuc2lnbmVkIGxvbmcgY29sLCB1bnNpZ25lZCBsb25n
IHJvdywgZmxvYXQgem9vbSk7Ci1FaW5hX0Jvb2wgZXdrX3RpbGVfbWF0cml4X3RpbGVfcHV0KEV3
a19UaWxlX01hdHJpeCogdG0sIEV3a19UaWxlKiB0LCBkb3VibGUgbGFzdF91c2VkKTsKK0V3a19U
aWxlICpld2tfdGlsZV9tYXRyaXhfdGlsZV9leGFjdF9nZXQoRXdrX1RpbGVfTWF0cml4ICp0bSwg
dW5zaWduZWQgbG9uZyBjb2wsIHVuc2lnbmVkIGxvbmcgcm93LCBmbG9hdCB6b29tKTsKK0VpbmFf
Qm9vbCBld2tfdGlsZV9tYXRyaXhfdGlsZV9leGFjdF9leGlzdHMoRXdrX1RpbGVfTWF0cml4ICp0
bSwgdW5zaWduZWQgbG9uZyBjb2wsIHVuc2lnbmVkIGxvbmcgcm93LCBmbG9hdCB6b29tKTsKK0V3
a19UaWxlICpld2tfdGlsZV9tYXRyaXhfdGlsZV9uZWFyZXN0X2dldChFd2tfVGlsZV9NYXRyaXgg
KnRtLCB1bnNpZ25lZCBsb25nIGNvbCwgdW5zaWduZWQgbG9uZyByb3csIGZsb2F0IHpvb20pOwor
RXdrX1RpbGUgKmV3a190aWxlX21hdHJpeF90aWxlX25ldyhFd2tfVGlsZV9NYXRyaXggKnRtLCBF
dmFzICpldmFzLCB1bnNpZ25lZCBsb25nIGNvbCwgdW5zaWduZWQgbG9uZyByb3csIGZsb2F0IHpv
b20pOworRWluYV9Cb29sIGV3a190aWxlX21hdHJpeF90aWxlX3B1dChFd2tfVGlsZV9NYXRyaXgg
KnRtLCBFd2tfVGlsZSAqdCwgZG91YmxlIGxhc3RfdXNlZCk7CiAKLUVpbmFfQm9vbCBld2tfdGls
ZV9tYXRyaXhfdGlsZV91cGRhdGUoRXdrX1RpbGVfTWF0cml4KiB0bSwgdW5zaWduZWQgbG9uZyBj
b2wsIHVuc2lnbmVkIGxvbmcgcm93LCBjb25zdCBFaW5hX1JlY3RhbmdsZSogdXBkYXRlKTsKLUVp
bmFfQm9vbCBld2tfdGlsZV9tYXRyaXhfdGlsZV91cGRhdGVfZnVsbChFd2tfVGlsZV9NYXRyaXgq
IHRtLCB1bnNpZ25lZCBsb25nIGNvbCwgdW5zaWduZWQgbG9uZyByb3cpOwotdm9pZCBld2tfdGls
ZV9tYXRyaXhfdGlsZV91cGRhdGVzX2NsZWFyKEV3a19UaWxlX01hdHJpeCogdG0sIEV3a19UaWxl
KiB0KTsKK0VpbmFfQm9vbCBld2tfdGlsZV9tYXRyaXhfdGlsZV91cGRhdGUoRXdrX1RpbGVfTWF0
cml4ICp0bSwgdW5zaWduZWQgbG9uZyBjb2wsIHVuc2lnbmVkIGxvbmcgcm93LCBjb25zdCBFaW5h
X1JlY3RhbmdsZSAqdXBkYXRlKTsKK0VpbmFfQm9vbCBld2tfdGlsZV9tYXRyaXhfdGlsZV91cGRh
dGVfZnVsbChFd2tfVGlsZV9NYXRyaXggKnRtLCB1bnNpZ25lZCBsb25nIGNvbCwgdW5zaWduZWQg
bG9uZyByb3cpOwordm9pZCBld2tfdGlsZV9tYXRyaXhfdGlsZV91cGRhdGVzX2NsZWFyKEV3a19U
aWxlX01hdHJpeCAqdG0sIEV3a19UaWxlICp0KTsKIAotRWluYV9Cb29sIGV3a190aWxlX21hdHJp
eF91cGRhdGUoRXdrX1RpbGVfTWF0cml4KiB0bSwgY29uc3QgRWluYV9SZWN0YW5nbGUqIHVwZGF0
ZSwgZmxvYXQgem9vbSk7Ci12b2lkIGV3a190aWxlX21hdHJpeF91cGRhdGVzX3Byb2Nlc3MoRXdr
X1RpbGVfTWF0cml4KiB0bSk7Ci12b2lkIGV3a190aWxlX21hdHJpeF91cGRhdGVzX2NsZWFyKEV3
a19UaWxlX01hdHJpeCogdG0pOwotdm9pZCBld2tfdGlsZV9tYXRyaXhfZnJlZXplKEV3a19UaWxl
X01hdHJpeCogdG0pOwotdm9pZCBld2tfdGlsZV9tYXRyaXhfdGhhdyhFd2tfVGlsZV9NYXRyaXgq
IHRtKTsKK0VpbmFfQm9vbCBld2tfdGlsZV9tYXRyaXhfdXBkYXRlKEV3a19UaWxlX01hdHJpeCAq
dG0sIGNvbnN0IEVpbmFfUmVjdGFuZ2xlICp1cGRhdGUsIGZsb2F0IHpvb20pOwordm9pZCBld2tf
dGlsZV9tYXRyaXhfdXBkYXRlc19wcm9jZXNzKEV3a19UaWxlX01hdHJpeCAqdG0pOwordm9pZCBl
d2tfdGlsZV9tYXRyaXhfdXBkYXRlc19jbGVhcihFd2tfVGlsZV9NYXRyaXggKnRtKTsKK3ZvaWQg
ZXdrX3RpbGVfbWF0cml4X2ZyZWV6ZShFd2tfVGlsZV9NYXRyaXggKnRtKTsKK3ZvaWQgZXdrX3Rp
bGVfbWF0cml4X3RoYXcoRXdrX1RpbGVfTWF0cml4ICp0bSk7CiAKIC8vIHJlbW92ZSBtZSEKLXZv
aWQgZXdrX3RpbGVfbWF0cml4X2RiZyhjb25zdCBFd2tfVGlsZV9NYXRyaXgqIHRtKTsKLXZvaWQg
ZXdrX3RpbGVfdW51c2VkX2NhY2hlX2RiZyhjb25zdCBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHR1
Yyk7Cit2b2lkIGV3a190aWxlX21hdHJpeF9kYmcoY29uc3QgRXdrX1RpbGVfTWF0cml4ICp0bSk7
Cit2b2lkIGV3a190aWxlX3VudXNlZF9jYWNoZV9kYmcoY29uc3QgRXdrX1RpbGVfVW51c2VkX0Nh
Y2hlICp0dWMpOwogdm9pZCBld2tfdGlsZV9hY2NvdW50aW5nX2RiZygpOwogCi0KICNlbmRpZiAv
LyBld2tfdGlsZWRfbWF0cml4X2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a190aWxlZF9tb2RlbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21v
ZGVsLmNwcAppbmRleCA4NDA0OGNiLi44N2ZhODNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3RpbGVkX21vZGVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3RpbGVkX21vZGVsLmNwcApAQCAtMzQ1LDE2ICszNDUsMTYgQEAgdm9pZCBld2tfdGlsZV91
cGRhdGVzX3Byb2Nlc3MoRXdrX1RpbGUqIHRpbGUsIHZvaWQgKCpjYWxsYmFjaykodm9pZCogZGF0
YSwgRXdrX1QKICAgICAgICAgcmVjdC5oID0gdGlsZS0+aGVpZ2h0OwogI2lmZGVmIFRJTEVfU1RB
VFNfQUNDT1VOVF9SRU5ERVJfVElNRQogICAgICAgICBzdHJ1Y3QgdGltZXZhbCB0aW1ldjsKLSAg
ICAgICAgZG91YmxlIHJlbmRlcl9zdGFydDsKKyAgICAgICAgZG91YmxlIHJlbmRlclN0YXJ0VGlt
ZTsKICAgICAgICAgZ2V0dGltZW9mZGF5KCZ0aW1ldiwgMCk7Ci0gICAgICAgIHJlbmRlcl9zdGFy
dGlsZSA9IChkb3VibGUpdGltZXYudHZfc2VjICsKKyAgICAgICAgcmVuZGVyU3RhcnRUaW1lID0g
KGRvdWJsZSl0aW1ldi50dl9zZWMgKwogICAgICAgICAgICAgICAgICAgICAgICAoKChkb3VibGUp
dGltZXYudHZfdXNlYykgLyAxMDAwMDAwKTsKICNlbmRpZgogICAgICAgICBjYWxsYmFjaygodm9p
ZCopZGF0YSwgdGlsZSwgJnJlY3QpOwogI2lmZGVmIFRJTEVfU1RBVFNfQUNDT1VOVF9SRU5ERVJf
VElNRQogICAgICAgICBnZXR0aW1lb2ZkYXkoJnRpbWV2LCAwKTsKICAgICAgICAgdGlsZS0+c3Rh
dHMucmVuZGVyX3RpbWUgPSAoZG91YmxlKXRpbWV2LnR2X3NlYyArCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKCgoZG91YmxlKXRpbWV2LnR2X3VzZWMpIC8gMTAwMDAwMCkgLSByZW5k
ZXJfc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgoZG91YmxlKXRpbWV2
LnR2X3VzZWMpIC8gMTAwMDAwMCkgLSByZW5kZXJTdGFydFRpbWU7CiAjZW5kaWYKICAgICB9IGVs
c2UgaWYgKHRpbGUtPnVwZGF0ZXMpIHsKICAgICAgICAgRWluYV9JdGVyYXRvciogaXRyID0gZWlu
YV90aWxlcl9pdGVyYXRvcl9uZXcodGlsZS0+dXBkYXRlcyk7CkBAIC01MjAsNyArNTIwLDcgQEAg
dm9pZCBld2tfdGlsZV91bnVzZWRfY2FjaGVfY2xlYXIoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0
aWxlVW51c2VkQ2FjaGUpCiB9CiAKIC8qKgotICogaGVpZ2h0b2xkIHJlZmVyZW5jZSB0byBjYWNo
ZS4KKyAqIEhvbGQgcmVmZXJlbmNlIHRvIGNhY2hlLgogICoKICAqIEByZXR1cm4gc2FtZSBwb2lu
dGVyIGFzIHRha2VuLgogICoKQEAgLTYzMCw3ICs2MzAsNyBAQCB2b2lkIGV3a190aWxlX3VudXNl
ZF9jYWNoZV9hdXRvX2ZsdXNoKEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hl
KQogICogRnJlZXplIGNhY2hlIHRvIG5vdCBkbyBtYWludGVuYW5jZSB0YXNrcy4KICAqCiAgKiBN
YWludGVuYW5jZSB0YXNrcyBvcHRpbWl6ZSBjYWNoZSB1c2FnZSwgYnV0IG1heWJlIHdlIGtub3cg
d2Ugc2hvdWxkCi0gKiBoZWlnaHRvbGQgb24gdGhlbSB1bnRpbCB3ZSBkbyB0aGUgbGFzdCBvcGVy
YXRpb24sIGluIHRoaXMgY2FzZSB3ZSBmcmVlemUKKyAqIGhvbGQgb24gdGhlbSB1bnRpbCB3ZSBk
byB0aGUgbGFzdCBvcGVyYXRpb24sIGluIHRoaXMgY2FzZSB3ZSBmcmVlemUKICAqIHdoaWxlIG9w
ZXJhdGluZyBhbmQgdGhlbiB0aGF3IHdoZW4gd2UncmUgZG9uZS4KICAqCiAgKiBAc2VlIGV3a190
aWxlX3VudXNlZF9jYWNoZV90aGF3KCkKQEAgLTcwNyw4ICs3MDcsOCBAQCBFaW5hX0Jvb2wgZXdr
X3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfZ2V0KEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVu
dXNlZENhY2hlLAogICogYmVjYXVzZSB1c3VhbGx5IHdlIHdhbnQgYSBsYXp5IG9wZXJhdGlvbiBm
b3IgYmV0dGVyIHBlcmZvcm1hbmNlLgogICoKICAqIEBwYXJhbSB0aWxlVW51c2VkQ2FjaGUgY2Fj
aGUgb2YgdW51c2VkIHRpbGVzCi0gKiBAcGFyYW0gdCB0aWxlIHRvIGJlIGFkZGVkIHRvIGNhY2hl
LgotICogQHBhcmFtIHRpbGVfZnJlZV9jYiBmdW5jdGlvbiB1c2VkIHRvIGZyZWUgdGlsZXMuCisg
KiBAcGFyYW0gdGlsZSB0aWxlIHRvIGJlIGFkZGVkIHRvIGNhY2hlLgorICogQHBhcmFtIHRpbGVG
cmVlQ2FsbGJhY2sgZnVuY3Rpb24gdXNlZCB0byBmcmVlIHRpbGVzLgogICogQHBhcmFtIGRhdGEg
Y29udGV4dCB0byBnaXZlIGJhY2sgdG8gQGEgdGlsZV9mcmVlX2NiIGFzIGZpcnN0IGFyZ3VtZW50
LgogICoKICAqIEByZXR1cm4gI3RydWUgb24gc3VjY2VzcywgI2ZhbHNlIG90aGVyd2lzZS4gSWYg
QGMgdGlsZS0+dmlzaWJsZQpAQCAtNzE2LDcgKzcxNiw3IEBAIEVpbmFfQm9vbCBld2tfdGlsZV91
bnVzZWRfY2FjaGVfdGlsZV9nZXQoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2Fj
aGUsCiAgKgogICogQHNlZSBld2tfdGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCgpCiAgKi8K
LUVpbmFfQm9vbCBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQoRXdrX1RpbGVfVW51c2Vk
X0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUsIEV3a19UaWxlKiB0aWxlLCB2b2lkICgqIHRpbGVGcmVl
Q2IpKHZvaWQqIGRhdGEsIEV3a19UaWxlKiB0aWxlKSwgY29uc3Qgdm9pZCogZGF0YSkKK0VpbmFf
Qm9vbCBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQoRXdrX1RpbGVfVW51c2VkX0NhY2hl
KiB0aWxlVW51c2VkQ2FjaGUsIEV3a19UaWxlKiB0aWxlLCB2b2lkICgqIHRpbGVGcmVlQ2FsbGJh
Y2spKHZvaWQqIGRhdGEsIEV3a19UaWxlKiB0aWxlKSwgY29uc3Qgdm9pZCogZGF0YSkKIHsKICAg
ICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGVfRW50cnkqIHVudXNlZENhY2hlRW50cnk7CiAKQEAgLTcz
Nyw3ICs3MzcsNyBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfcHV0KEV3
a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlLAogCiAgICAgdW51c2VkQ2FjaGVF
bnRyeS0+dGlsZSA9IHRpbGU7CiAgICAgdW51c2VkQ2FjaGVFbnRyeS0+d2VpZ2h0ID0gMDsgLyog
Y2FsY3VsYXRlZCBqdXN0IGJlZm9yZSBzb3J0ICovCi0gICAgdW51c2VkQ2FjaGVFbnRyeS0+dGls
ZV9mcmVlLmNhbGxiYWNrID0gdGlsZUZyZWVDYjsKKyAgICB1bnVzZWRDYWNoZUVudHJ5LT50aWxl
X2ZyZWUuY2FsbGJhY2sgPSB0aWxlRnJlZUNhbGxiYWNrOwogICAgIHVudXNlZENhY2hlRW50cnkt
PnRpbGVfZnJlZS5kYXRhID0gKHZvaWQqKWRhdGE7CiAKICAgICB0aWxlVW51c2VkQ2FjaGUtPmVu
dHJpZXMuY291bnQrKzsKQEAgLTc1OCw3ICs3NTgsNyBAQCB2b2lkIGV3a190aWxlX3VudXNlZF9j
YWNoZV9kYmcoY29uc3QgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUpCiAg
ICAgRUlOQV9MSVNUX0ZPUkVBQ0godGlsZVVudXNlZENhY2hlLT5lbnRyaWVzLmxpc3QsIGxpc3Qs
IGl0ZW0pIHsKICAgICAgICAgY29uc3QgRXdrX1RpbGUqIHRpbGUgPSBzdGF0aWNfY2FzdDxFd2tf
VGlsZV9VbnVzZWRfQ2FjaGVfRW50cnkqPihpdGVtKS0+dGlsZTsKICAgICAgICAgcHJpbnRmKCIg
WyUzbHUsJTNsdSArICVkeCVkIEAgJTAuM2ZdJWMiLAotICAgICAgICAgICAgICAgdGlsZS0+Y29s
LCB0aWxlLT5yb3csIHRpbGUtPndpZHRoLCB0aWxlLT5oZWlnaHQsIHRpbGUtPnpvb20sCisgICAg
ICAgICAgICAgICB0aWxlLT5jb2x1bW4sIHRpbGUtPnJvdywgdGlsZS0+d2lkdGgsIHRpbGUtPmhl
aWdodCwgdGlsZS0+em9vbSwKICAgICAgICAgICAgICAgIHRpbGUtPnZpc2libGUgPyAnKicgOiAn
ICcpOwogCiAgICAgICAgIGlmICghKGNvdW50ICUgNCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3RpbGVkX21vZGVsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3RpbGVkX21vZGVsLmgKaW5kZXggNTg3MTZjNS4uZGFhZjIxMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tb2RlbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdGlsZWRfbW9kZWwuaApAQCAtMjYsMzIgKzI2LDMxIEBACiAjaW5jbHVkZSA8RXZh
cy5oPgogCiAvKiBtb2RlbCAqLwotRXdrX1RpbGUqIGV3a190aWxlX25ldyhFdmFzKiBldmFzLCBF
dmFzX0Nvb3JkIHcsIEV2YXNfQ29vcmQgaCwgZmxvYXQgem9vbSwgRXZhc19Db2xvcnNwYWNlIGNz
cGFjZSk7Ci12b2lkIGV3a190aWxlX2ZyZWUoRXdrX1RpbGUqIHQpOwotdm9pZCBld2tfdGlsZV91
bnVzZWRfY2FjaGVfY2xlYXIoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0dWMpOwotdm9pZCBld2tf
dGlsZV9zaG93KEV3a19UaWxlKiB0KTsKLXZvaWQgZXdrX3RpbGVfaGlkZShFd2tfVGlsZSogdCk7
Ci1zaXplX3QgZXdrX3RpbGVfbWVtb3J5X3NpemVfZ2V0KGNvbnN0IEV3a19UaWxlKiB0KTsKLUVp
bmFfQm9vbCBld2tfdGlsZV92aXNpYmxlX2dldChFd2tfVGlsZSogdCk7Ci12b2lkIGV3a190aWxl
X3VwZGF0ZV9mdWxsKEV3a19UaWxlKiB0KTsKLXZvaWQgZXdrX3RpbGVfdXBkYXRlX2FyZWEoRXdr
X1RpbGUqIHQsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiByKTsKLXZvaWQgZXdrX3RpbGVfdXBkYXRl
c19wcm9jZXNzKEV3a19UaWxlKiB0LCB2b2lkICgqY2IpKHZvaWQqIGRhdGEsIEV3a19UaWxlKiB0
LCBjb25zdCBFaW5hX1JlY3RhbmdsZSogdXBkYXRlKSwgY29uc3Qgdm9pZCogZGF0YSk7Ci12b2lk
IGV3a190aWxlX3VwZGF0ZXNfY2xlYXIoRXdrX1RpbGUqIHQpOworRXdrX1RpbGUgKmV3a190aWxl
X25ldyhFdmFzICpldmFzLCBFdmFzX0Nvb3JkIHcsIEV2YXNfQ29vcmQgaCwgZmxvYXQgem9vbSwg
RXZhc19Db2xvcnNwYWNlIGNzcGFjZSk7Cit2b2lkIGV3a190aWxlX2ZyZWUoRXdrX1RpbGUgKnQp
Owordm9pZCBld2tfdGlsZV91bnVzZWRfY2FjaGVfY2xlYXIoRXdrX1RpbGVfVW51c2VkX0NhY2hl
ICp0dWMpOwordm9pZCBld2tfdGlsZV9zaG93KEV3a19UaWxlICp0KTsKK3ZvaWQgZXdrX3RpbGVf
aGlkZShFd2tfVGlsZSAqdCk7CitzaXplX3QgZXdrX3RpbGVfbWVtb3J5X3NpemVfZ2V0KGNvbnN0
IEV3a19UaWxlICp0KTsKK0VpbmFfQm9vbCBld2tfdGlsZV92aXNpYmxlX2dldChFd2tfVGlsZSAq
dCk7Cit2b2lkIGV3a190aWxlX3VwZGF0ZV9mdWxsKEV3a19UaWxlICp0KTsKK3ZvaWQgZXdrX3Rp
bGVfdXBkYXRlX2FyZWEoRXdrX1RpbGUgKnQsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlICpyKTsKK3Zv
aWQgZXdrX3RpbGVfdXBkYXRlc19wcm9jZXNzKEV3a19UaWxlICp0LCB2b2lkICgqY2IpKHZvaWQg
KmRhdGEsIEV3a19UaWxlICp0LCBjb25zdCBFaW5hX1JlY3RhbmdsZSAqdXBkYXRlKSwgY29uc3Qg
dm9pZCAqZGF0YSk7Cit2b2lkIGV3a190aWxlX3VwZGF0ZXNfY2xlYXIoRXdrX1RpbGUgKnQpOwog
CiAvKiBjYWNoZSBvZiB1bnVzZWQgdGlsZXMgKi8KLUV3a19UaWxlX1VudXNlZF9DYWNoZSogZXdr
X3RpbGVfdW51c2VkX2NhY2hlX25ldyhzaXplX3QgbWF4KTsKLXZvaWQgZXdrX3RpbGVfdW51c2Vk
X2NhY2hlX2xvY2tfYXJlYShFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHR1YywgRXZhc19Db29yZCB4
LCBFdmFzX0Nvb3JkIHksIEV2YXNfQ29vcmQgdywgRXZhc19Db29yZCBoLCBmbG9hdCB6b29tKTsK
LXZvaWQgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3VubG9ja19hcmVhKEV3a19UaWxlX1VudXNlZF9D
YWNoZSogdHVjKTsKLUV3a19UaWxlX1VudXNlZF9DYWNoZSogZXdrX3RpbGVfdW51c2VkX2NhY2hl
X3JlZihFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHR1Yyk7Ci12b2lkIGV3a190aWxlX3VudXNlZF9j
YWNoZV91bnJlZihFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHR1Yyk7CitFd2tfVGlsZV9VbnVzZWRf
Q2FjaGUgKmV3a190aWxlX3VudXNlZF9jYWNoZV9uZXcoc2l6ZV90IG1heCk7Cit2b2lkIGV3a190
aWxlX3VudXNlZF9jYWNoZV9sb2NrX2FyZWEoRXdrX1RpbGVfVW51c2VkX0NhY2hlICp0dWMsIEV2
YXNfQ29vcmQgeCwgRXZhc19Db29yZCB5LCBFdmFzX0Nvb3JkIHcsIEV2YXNfQ29vcmQgaCwgZmxv
YXQgem9vbSk7Cit2b2lkIGV3a190aWxlX3VudXNlZF9jYWNoZV91bmxvY2tfYXJlYShFd2tfVGls
ZV9VbnVzZWRfQ2FjaGUgKnR1Yyk7CitFd2tfVGlsZV9VbnVzZWRfQ2FjaGUgKmV3a190aWxlX3Vu
dXNlZF9jYWNoZV9yZWYoRXdrX1RpbGVfVW51c2VkX0NhY2hlICp0dWMpOwordm9pZCBld2tfdGls
ZV91bnVzZWRfY2FjaGVfdW5yZWYoRXdrX1RpbGVfVW51c2VkX0NhY2hlICp0dWMpOwogCi12b2lk
IGV3a190aWxlX3VudXNlZF9jYWNoZV9kaXJ0eShFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHR1Yyk7
Cit2b2lkIGV3a190aWxlX3VudXNlZF9jYWNoZV9kaXJ0eShFd2tfVGlsZV9VbnVzZWRfQ2FjaGUg
KnR1Yyk7CiAKLXZvaWQgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZShFd2tfVGlsZV9VbnVz
ZWRfQ2FjaGUqIHR1Yyk7Ci12b2lkIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3KEV3a19UaWxl
X1VudXNlZF9DYWNoZSogdHVjKTsKK3ZvaWQgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZShF
d2tfVGlsZV9VbnVzZWRfQ2FjaGUgKnR1Yyk7Cit2b2lkIGV3a190aWxlX3VudXNlZF9jYWNoZV90
aGF3KEV3a19UaWxlX1VudXNlZF9DYWNoZSAqdHVjKTsKIAotRWluYV9Cb29sIGV3a190aWxlX3Vu
dXNlZF9jYWNoZV90aWxlX2dldChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHR1YywgRXdrX1RpbGUq
IHQpOwotRWluYV9Cb29sIGV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1dChFd2tfVGlsZV9V
bnVzZWRfQ2FjaGUqIHR1YywgRXdrX1RpbGUqIHQsIHZvaWQgKCogdGlsZV9mcmVlX2NiKSh2b2lk
KiBkYXRhLCBFd2tfVGlsZSogdCksIGNvbnN0IHZvaWQqIGRhdGEpOworRWluYV9Cb29sIGV3a190
aWxlX3VudXNlZF9jYWNoZV90aWxlX2dldChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUgKnR1YywgRXdr
X1RpbGUgKnQpOworRWluYV9Cb29sIGV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1dChFd2tf
VGlsZV9VbnVzZWRfQ2FjaGUgKnR1YywgRXdrX1RpbGUgKnQsIHZvaWQgKCogdGlsZV9mcmVlX2Ni
KSh2b2lkICpkYXRhLCBFd2tfVGlsZSAqdCksIGNvbnN0IHZvaWQgKmRhdGEpOwogCiAjZW5kaWYg
Ly8gZXdrX3RpbGVkX21vZGVsX2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a191dGlsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3V0aWwuaAppbmRleCAyMzcx
ODg4Li4zYjMyZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3V0aWwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3V0aWwuaApAQCAtMjksNiArMjksNiBA
QAogI2luY2x1ZGUgPEV2YXMuaD4KICNpbmNsdWRlIDxjYWlyby5oPgogCi1FdmFzX09iamVjdCog
ZXdrX3V0aWxfaW1hZ2VfZnJvbV9jYWlyb19zdXJmYWNlX2FkZChFdmFzKiBjYW52YXMsIGNhaXJv
X3N1cmZhY2VfdCogc3VyZmFjZSk7CitFdmFzX09iamVjdCAqZXdrX3V0aWxfaW1hZ2VfZnJvbV9j
YWlyb19zdXJmYWNlX2FkZChFdmFzICpjYW52YXMsIGNhaXJvX3N1cmZhY2VfdCAqc3VyZmFjZSk7
CiAKICNlbmRpZiAvLyBld2tfdXRpbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRl
eCA4NTNiMzQyLi4zZDlhZmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTIx
Niw1NCArMjE2LDU0IEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICNpZm5kZWYg
RVdLX1RZUEVfQ0hFQ0sKICNkZWZpbmUgRVdLX1ZJRVdfVFlQRV9DSEVDSyhld2tWaWV3LCAuLi4p
IGRvIHsgfSB3aGlsZSAoMCkKICNlbHNlCi0jZGVmaW5lIEVXS19WSUVXX1RZUEVfQ0hFQ0soZXdr
VmlldywgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgZG8g
eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgICAgIGNvbnN0IGNoYXIqIF90bXBfb3R5cGUgPSBldmFzX29iamVjdF90
eXBlX2dldChld2tWaWV3KTsgICAgICAgICAgICAgICBcCi0gICAgICAgIGNvbnN0IEV2YXNfU21h
cnQqIF90bXBfcyA9IGV2YXNfb2JqZWN0X3NtYXJ0X3NtYXJ0X2dldChld2tWaWV3KTsgICAgICBc
Ci0gICAgICAgIGlmIChFSU5BX1VOTElLRUxZKCFfdG1wX3MpKSB7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBFSU5BX0xPR19DUklUICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgKCIl
cCAoJXMpIGlzIG5vdCBhIHNtYXJ0IG9iamVjdCEiLCBld2tWaWV3LCAgICAgICAgICAgICAgICAg
ICBcCi0gICAgICAgICAgICAgICAgX3RtcF9vdHlwZSA/IF90bXBfb3R5cGUgOiAiKG51bGwpIik7
ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgfSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyNkZWZpbmUgRVdLX1ZJRVdfVFlQRV9DSEVDSyhld2tWaWV3LCAuLi4pIFwKKyAgICBkbyB7IFwK
KyAgICAgICAgY29uc3QgY2hhciogX3RtcF9vdHlwZSA9IGV2YXNfb2JqZWN0X3R5cGVfZ2V0KGV3
a1ZpZXcpOyBcCisgICAgICAgIGNvbnN0IEV2YXNfU21hcnQqIF90bXBfcyA9IGV2YXNfb2JqZWN0
X3NtYXJ0X3NtYXJ0X2dldChld2tWaWV3KTsgXAorICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWSgh
X3RtcF9zKSkgeyBcCisgICAgICAgICAgICBFSU5BX0xPR19DUklUIFwKKyAgICAgICAgICAgICAg
ICAoIiVwICglcykgaXMgbm90IGEgc21hcnQgb2JqZWN0ISIsIGV3a1ZpZXcsIFwKKyAgICAgICAg
ICAgICAgICBfdG1wX290eXBlID8gX3RtcF9vdHlwZSA6ICIobnVsbCkiKTsgXAorICAgICAgICAg
ICAgcmV0dXJuIF9fVkFfQVJHU19fOyBcCisgICAgICAgIH0gXAogICAgICAgICBjb25zdCBFdmFz
X1NtYXJ0X0NsYXNzKiBfdG1wX3NjID0gZXZhc19zbWFydF9jbGFzc19nZXQoX3RtcF9zKTsgXAot
ICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWSghX3RtcF9zYykpIHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgRUlOQV9MT0dfQ1JJVCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICgiJXAg
KCVzKSBpcyBub3QgYSBzbWFydCBvYmplY3QhIiwgZXdrVmlldywgICAgICAgICAgICAgICAgICAg
XAotICAgICAgICAgICAgICAgIF90bXBfb3R5cGUgPyBfdG1wX290eXBlIDogIihudWxsKSIpOyAg
ICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIH0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgIGlmIChFSU5BX1VOTElLRUxZKF90bXBfc2MtPmRhdGEgIT0gZXdrVmlld1R5cGVTdHJp
bmcpKSB7ICAgICAgICBcCi0gICAgICAgICAgICBFSU5BX0xPR19DUklUICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgKCIlcCAo
JXMpIGlzIG5vdCBvZiBhbiBld2tfdmlldyAobmVlZCAlcCwgZ290ICVwKSEiLCAgICBcCi0gICAg
ICAgICAgICAgICAgZXdrVmlldywgX3RtcF9vdHlwZSA/IF90bXBfb3R5cGUgOiAiKG51bGwpIiwg
ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICBld2tWaWV3VHlwZVN0cmluZywgX3Rt
cF9zYy0+ZGF0YSk7ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgcmV0dXJuIF9f
VkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
ICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWSghX3RtcF9zYykpIHsgXAor
ICAgICAgICAgICAgRUlOQV9MT0dfQ1JJVCBcCisgICAgICAgICAgICAgICAgKCIlcCAoJXMpIGlz
IG5vdCBhIHNtYXJ0IG9iamVjdCEiLCBld2tWaWV3LCBcCisgICAgICAgICAgICAgICAgX3RtcF9v
dHlwZSA/IF90bXBfb3R5cGUgOiAiKG51bGwpIik7IFwKKyAgICAgICAgICAgIHJldHVybiBfX1ZB
X0FSR1NfXzsgXAorICAgICAgICB9IFwKKyAgICAgICAgaWYgKEVJTkFfVU5MSUtFTFkoX3RtcF9z
Yy0+ZGF0YSAhPSBld2tWaWV3VHlwZVN0cmluZykpIHsgXAorICAgICAgICAgICAgRUlOQV9MT0df
Q1JJVCBcCisgICAgICAgICAgICAgICAgKCIlcCAoJXMpIGlzIG5vdCBvZiBhbiBld2tfdmlldyAo
bmVlZCAlcCwgZ290ICVwKSEiLCBcCisgICAgICAgICAgICAgICAgZXdrVmlldywgX3RtcF9vdHlw
ZSA/IF90bXBfb3R5cGUgOiAiKG51bGwpIiwgXAorICAgICAgICAgICAgICAgIGV3a1ZpZXdUeXBl
U3RyaW5nLCBfdG1wX3NjLT5kYXRhKTsgXAorICAgICAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19f
OyBcCisgICAgICAgIH0gXAogICAgIH0gd2hpbGUgKDApCiAjZW5kaWYKIAotI2RlZmluZSBFV0tf
VklFV19TRF9HRVQoZXdrVmlldywgcHRyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBFd2tfVmlld19TbWFydF9EYXRhKiBwdHIgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19T
bWFydF9EYXRhKj4oZXZhc19vYmplY3Rfc21hcnRfZGF0YV9nZXQoZXdrVmlldykpCisjZGVmaW5l
IEVXS19WSUVXX1NEX0dFVChld2tWaWV3LCBwb2ludGVyKSBcCisgICAgRXdrX1ZpZXdfU21hcnRf
RGF0YSogcG9pbnRlciA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihldmFzX29i
amVjdF9zbWFydF9kYXRhX2dldChld2tWaWV3KSkKIAotI2RlZmluZSBFV0tfVklFV19TRF9HRVRf
T1JfUkVUVVJOKGV3a1ZpZXcsIHB0ciwgLi4uKSAgICAgICAgICBcCi0gICAgRVdLX1ZJRVdfVFlQ
RV9DSEVDSyhld2tWaWV3LCBfX1ZBX0FSR1NfXyk7ICAgICAgICAgICAgICAgIFwKLSAgICBFV0tf
VklFV19TRF9HRVQoZXdrVmlldywgcHRyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIGlmICghcHRyKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgICAgIENSSVRJQ0FMKCJubyBzbWFydCBkYXRhIGZvciBvYmplY3QgJXAgKCVzKSIsICAg
IFwKLSAgICAgICAgICAgICAgICAgZXdrVmlldywgZXZhc19vYmplY3RfdHlwZV9nZXQoZXdrVmll
dykpOyAgICAgICAgICAgXAotICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdr
VmlldywgcG9pbnRlciwgLi4uKSBcCisgICAgRVdLX1ZJRVdfVFlQRV9DSEVDSyhld2tWaWV3LCBf
X1ZBX0FSR1NfXyk7IFwKKyAgICBFV0tfVklFV19TRF9HRVQoZXdrVmlldywgcG9pbnRlcik7IFwK
KyAgICBpZiAoIXBvaW50ZXIpIHsgXAorICAgICAgICBDUklUSUNBTCgibm8gc21hcnQgZGF0YSBm
b3Igb2JqZWN0ICVwICglcykiLCBcCisgICAgICAgICAgICAgICAgIGV3a1ZpZXcsIGV2YXNfb2Jq
ZWN0X3R5cGVfZ2V0KGV3a1ZpZXcpKTsgXAorICAgICAgICByZXR1cm4gX19WQV9BUkdTX187IFwK
ICAgICB9CiAKLSNkZWZpbmUgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwdHIpICAgICAg
ICAgICAgICBcCi0gICAgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhICpwdHIgPSBzbWFydERhdGEtPl9w
cml2CisjZGVmaW5lIEVXS19WSUVXX1BSSVZfR0VUKHNtYXJ0RGF0YSwgcG9pbnRlcikgXAorICAg
IEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcG9pbnRlciA9IHNtYXJ0RGF0YS0+X3ByaXYKIAotI2Rl
ZmluZSBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwdHIsIC4uLikgICAg
ICAgICAgICAgICBcCi0gICAgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwdHIpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBpZiAoIXB0cikgeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIENSSVRJQ0FM
KCJubyBwcml2YXRlIGRhdGEgZm9yIG9iamVjdCAlcCAoJXMpIiwgICAgICAgICAgXAotICAgICAg
ICAgICAgICAgICBzbWFydERhdGEtPnNlbGYsIGV2YXNfb2JqZWN0X3R5cGVfZ2V0KHNtYXJ0RGF0
YS0+c2VsZikpOyAgICAgXAotICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgRVdLX1ZJRVdfUFJJVl9HRVRfT1Jf
UkVUVVJOKHNtYXJ0RGF0YSwgcG9pbnRlciwgLi4uKSBcCisgICAgRVdLX1ZJRVdfUFJJVl9HRVQo
c21hcnREYXRhLCBwb2ludGVyKTsgXAorICAgIGlmICghcG9pbnRlcikgeyBcCisgICAgICAgIENS
SVRJQ0FMKCJubyBwcml2YXRlIGRhdGEgZm9yIG9iamVjdCAlcCAoJXMpIiwgXAorICAgICAgICAg
ICAgICAgICBzbWFydERhdGEtPnNlbGYsIGV2YXNfb2JqZWN0X3R5cGVfZ2V0KHNtYXJ0RGF0YS0+
c2VsZikpOyBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgXAogICAgIH0KIAogI2RlZmlu
ZSBFV0tfVklFV19USUxFRF9UWVBFX0NIRUNLX09SX1JFVFVSTihld2tWaWV3LCAuLi4pIFwKQEAg
LTQxMCwxMiArNDEwLDEyIEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zY3JvbGxzX2ZsdXNoKEV3
a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdikKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3Nt
YXJ0X2ZvY3VzX2luKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIHsKICAgICBFV0tf
VklFV19QUklWX0dFVChzbWFydERhdGEsIHByaXYpOwotICAgIFdlYkNvcmU6OkZvY3VzQ29udHJv
bGxlciogZmMgPSBwcml2LT5wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKTsKLSAgICBEQkcoImV3a1Zp
ZXc9JXAsIGZjPSVwIiwgc21hcnREYXRhLT5zZWxmLCBmYyk7Ci0gICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKGZjLCBmYWxzZSk7CisgICAgV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVy
KiBmb2N1c0NvbnRyb2xsZXIgPSBwcml2LT5wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKTsKKyAgICBE
QkcoImV3a1ZpZXc9JXAsIGZvY3VzQ29udHJvbGxlcj0lcCIsIHNtYXJ0RGF0YS0+c2VsZiwgZm9j
dXNDb250cm9sbGVyKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZm9jdXND
b250cm9sbGVyLCBmYWxzZSk7CiAKLSAgICBmYy0+c2V0QWN0aXZlKHRydWUpOwotICAgIGZjLT5z
ZXRGb2N1c2VkKHRydWUpOworICAgIGZvY3VzQ29udHJvbGxlci0+c2V0QWN0aXZlKHRydWUpOwor
ICAgIGZvY3VzQ29udHJvbGxlci0+c2V0Rm9jdXNlZCh0cnVlKTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApAQCAtOTk0LDcgKzk5NCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9mbHVz
aChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3
a192aWV3X3NtYXJ0X3ByZV9yZW5kZXJfcmVnaW9uKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0
RGF0YSwgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHksIEV2YXNfQ29vcmQgd2lkdGgsIEV2YXNf
Q29vcmQgaGVpZ2h0LCBmbG9hdCB6b29tKQogewotICAgIFdSTigibm90IHN1cHBvcnRlZCBieSBl
bmdpbmUuIHNtYXJ0REF0YT0lcCBhcmVhPSVkLCVkKyVkeCVkLCB6b29tPSVmIiwKKyAgICBXUk4o
Im5vdCBzdXBwb3J0ZWQgYnkgZW5naW5lLiBzbWFydERhdGE9JXAgYXJlYT0lZCwlZCslZHglZCwg
em9vbT0lZiIsCiAgICAgICAgIHNtYXJ0RGF0YSwgeCwgeSwgd2lkdGgsIGhlaWdodCwgem9vbSk7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMTc5MCw3ICsxNzkwLDcgQEAgRWluYV9Cb29sIGV3
a192aWV3X3ByZV9yZW5kZXJfcmVnaW9uKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nvb3Jk
IHgsIEV2YXNfQ28KICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0
RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEs
IHByaXYsIGZhbHNlKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnRE
YXRhLT5hcGktPnByZV9yZW5kZXJfcmVnaW9uLCBmYWxzZSk7Ci0gICAgZmxvYXQgY3VyX3pvb207
CisgICAgZmxvYXQgY3VycmVudFpvb207CiAgICAgRXZhc19Db29yZCBjb250ZW50c1dpZHRoLCBj
b250ZW50c0hlaWdodDsKIAogICAgIC8qIFdoZW4gZG9pbmcgYW5pbWF0ZWQgem9vbSBpdCdzIG5v
dCBwb3NzaWJsZSB0byBjYWxsIHByZS1yZW5kZXIgc2luY2UgaXQKQEAgLTE3OTksMTUgKzE3OTks
MTUgQEAgRWluYV9Cb29sIGV3a192aWV3X3ByZV9yZW5kZXJfcmVnaW9uKEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ28KICAgICBpZiAocHJpdi0+YW5pbWF0ZWRab29t
LmFuaW1hdG9yKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBjdXJfem9vbSA9IGV3a19m
cmFtZV9wYWdlX3pvb21fZ2V0KHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSk7CisgICAgY3VycmVudFpv
b20gPSBld2tfZnJhbWVfcGFnZV96b29tX2dldChzbWFydERhdGEtPm1haW5fZnJhbWUpOwogCi0g
ICAgaWYgKGN1cl96b29tIDwgMC4wMDAwMSkKKyAgICBpZiAoY3VycmVudFpvb20gPCAwLjAwMDAx
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFld2tfZnJhbWVfY29udGVudHNfc2l6
ZV9nZXQoc21hcnREYXRhLT5tYWluX2ZyYW1lLCAmY29udGVudHNXaWR0aCwgJmNvbnRlbnRzSGVp
Z2h0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgY29udGVudHNXaWR0aCAqPSB6b29t
IC8gY3VyX3pvb207Ci0gICAgY29udGVudHNIZWlnaHQgKj0gem9vbSAvIGN1cl96b29tOworICAg
IGNvbnRlbnRzV2lkdGggKj0gem9vbSAvIGN1cnJlbnRab29tOworICAgIGNvbnRlbnRzSGVpZ2h0
ICo9IHpvb20gLyBjdXJyZW50Wm9vbTsKICAgICBEQkcoInJlZ2lvbiAlZCwlZCslZHglZCBAICVm
IGNvbnRlbnRzPSVkeCVkIiwgeCwgeSwgd2lkdGgsIGhlaWdodCwgem9vbSwgY29udGVudHNXaWR0
aCwgY29udGVudHNIZWlnaHQpOwogCiAgICAgaWYgKHggKyB3aWR0aCA+IGNvbnRlbnRzV2lkdGgp
CkBAIC0yOTU3LDggKzI5NTcsOCBAQCB2b2lkIGV3a192aWV3X3Jlc3RvcmVfc3RhdGUoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSkKICAqIEBwYXJhbSBld2tWaWV3IEN1
cnJlbnQgdmlldy4KICAqIEBwYXJhbSBqYXZhc2NyaXB0IEBjIHRydWUgaWYgdGhlIG5ldyB3aW5k
b3cgaXMgb3JpZ2luYXRlZCBmcm9tIGphdmFzY3JpcHQsCiAgKiBAYyBmYWxzZSBvdGhlcndpc2UK
LSAqIEBwYXJhbSB3aWR0aGluZG93X2ZlYXR1cmVzIEZlYXR1cmVzIG9mIHRoZSBuZXcgd2luZG93
IGJlaW5nIGNyZWF0ZWQuIElmIGl0J3MgQGMKLSAqIE5VTEwsIGl0IHdpbGwgYmUgY3JlYXRlZCBh
IHdpbmRvdyB3aXRoIGRlZmF1bHQgZmVhdHVyZXMuCisgKiBAcGFyYW0gd2luZG93X2ZlYXR1cmVz
IEZlYXR1cmVzIG9mIHRoZSBuZXcgd2luZG93IGJlaW5nIGNyZWF0ZWQuIElmIGl0J3MgQGMKKyAq
IDAsIGl0IHdpbGwgYmUgY3JlYXRlZCBhIHdpbmRvdyB3aXRoIGRlZmF1bHQgZmVhdHVyZXMuCiAg
KgogICogQHJldHVybiBOZXcgdmlldywgaW4gY2FzZSBzbWFydCBjbGFzcyBpbXBsZW1lbnRzIHRo
ZSBjcmVhdGlvbiBvZiBuZXcgd2luZG93czsKICAqIGVsc2UsIGN1cnJlbnQgdmlldyBAcGFyYW0g
ZXdrVmlldyBvciBAYyAwIG9uIGZhaWx1cmUuCkBAIC0zMDUwLDcgKzMwNTAsNyBAQCB2b2lkIGV3
a192aWV3X3Rvb2xiYXJzX3Zpc2libGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIHZp
c2libGUpCiAgKi8KIHZvaWQgZXdrX3ZpZXdfdG9vbGJhcnNfdmlzaWJsZV9nZXQoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIGJvb2wqIHZpc2libGUpCiB7Ci0gICAgREJHKCIlcywgbz0lcCIsIF9fZnVu
Y19fLCBld2tWaWV3KTsKKyAgICBEQkcoIiVzLCBld2tWaWV3PSVwIiwgX19mdW5jX18sIGV3a1Zp
ZXcpOwogICAgICp2aXNpYmxlID0gZmFsc2U7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJh
Y2tfY2FsbChld2tWaWV3LCAidG9vbGJhcnMsdmlzaWJsZSxnZXQiLCB2aXNpYmxlKTsKIH0KQEAg
LTMwODMsNyArMzA4Myw3IEBAIHZvaWQgZXdrX3ZpZXdfc3RhdHVzYmFyX3Zpc2libGVfc2V0KEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBib29sICB2aXNpYmxlKQogICovCiB2b2lkIGV3a192aWV3X3N0
YXR1c2Jhcl92aXNpYmxlX2dldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCogdmlzaWJsZSkK
IHsKLSAgICBEQkcoIiVzLCBvPSVwIiwgX19mdW5jX18sIGV3a1ZpZXcpOworICAgIERCRygiJXMs
IGV3a1ZpZXc9JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CiAgICAgKnZpc2libGUgPSBmYWxzZTsK
ICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJzdGF0dXNiYXIs
dmlzaWJsZSxnZXQiLCB2aXNpYmxlKTsKIH0KQEAgLTMxMzIsNyArMzEzMiw3IEBAIHZvaWQgZXdr
X3ZpZXdfc2Nyb2xsYmFyc192aXNpYmxlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCB2
aXNpYmxlKQogICovCiB2b2lkIGV3a192aWV3X3Njcm9sbGJhcnNfdmlzaWJsZV9nZXQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGJvb2wqIHZpc2libGUpCiB7Ci0gICAgREJHKCIlcywgbz0lcCIsIF9f
ZnVuY19fLCBld2tWaWV3KTsKKyAgICBEQkcoIiVzLCBld2tWaWV3PSVwIiwgX19mdW5jX18sIGV3
a1ZpZXcpOwogICAgICp2aXNpYmxlID0gZmFsc2U7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2Fs
bGJhY2tfY2FsbChld2tWaWV3LCAic2Nyb2xsYmFycyx2aXNpYmxlLGdldCIsIHZpc2libGUpOwog
fQpAQCAtMzE2NSw3ICszMTY1LDcgQEAgdm9pZCBld2tfdmlld19tZW51YmFyX3Zpc2libGVfc2V0
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIHZpc2libGUpCiAgKi8KIHZvaWQgZXdrX3ZpZXdf
bWVudWJhcl92aXNpYmxlX2dldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCogdmlzaWJsZSkK
IHsKLSAgICBEQkcoIiVzLCBvPSVwIiwgX19mdW5jX18sIGV3a1ZpZXcpOworICAgIERCRygiJXMs
IGV3a1ZpZXc9JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CiAgICAgKnZpc2libGUgPSBmYWxzZTsK
ICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJtZW51YmFyLHZp
c2libGUsZ2V0IiwgdmlzaWJsZSk7CiB9CkBAIC0zNTkzLDcgKzM1OTMsNyBAQCBFaW5hX0Jvb2wg
ZXdrX3ZpZXdfem9vbV9yYW5nZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGZsb2F0IG1pblNj
YWxlLCBmbG9hdCBtYQogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEs
IHByaXYsIGZhbHNlKTsKIAogICAgIGlmIChtYXhTY2FsZSA8IG1pblNjYWxlKSB7Ci0gICAgICAg
IFdSTigibWluX3NjYWxlIGlzIGxhcmdlciB0aGFuIG1heF9zY2FsZSIpOworICAgICAgICBXUk4o
Im1pblNjYWxlIGlzIGxhcmdlciB0aGFuIG1heFNjYWxlIik7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5o
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKaW5kZXggYTQzMzUzNy4uZDM0NzRh
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKQEAgLTE0NDIsNyArMTQ0Miw3IEBAIEVBUEkg
RWluYV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdfZW5hYmxlX3BsdWdpbnNfc2V0KEV2YXNfT2Jq
ZWN0ICpvLCBFaW5hX0Jvb2wKICAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBmcmFtZSBm
bGF0dGVuaW5nIGZlYXR1cmUgaXMgZW5hYmxlZCwKICAqICAgICAgICAgQGMgRUlOQV9GQUxTRSBp
ZiBub3Qgb3Igb24gZmFpbHVyZQogICovCi1FQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0
aW5nX2VuYWJsZV9mcmFtZV9mbGF0dGVuaW5nX2dldChjb25zdCBFdmFzX09iamVjdCogbyk7CitF
QVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX2VuYWJsZV9mcmFtZV9mbGF0dGVuaW5n
X2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CiAKIC8qKgogICogRW5hYmxlcy9kaXNhYmxlcyB0
aGUgZnJhbWUgZmxhdHRlbmluZyBmZWF0dXJlLgpAQCAtMTQ1Myw3ICsxNDUzLDcgQEAgRUFQSSBF
aW5hX0Jvb2wgICAgZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVfZnJhbWVfZmxhdHRlbmluZ19nZXQo
Y29uc3QgRXZhc19PYmplY3QKICAqCiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNz
IG9yIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZQogICovCi1FQVBJIEVpbmFfQm9vbCAgICBld2tf
dmlld19zZXR0aW5nX2VuYWJsZV9mcmFtZV9mbGF0dGVuaW5nX3NldChFdmFzX09iamVjdCogbywg
RWluYV9Cb29sIGVuYWJsZSk7CitFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX2Vu
YWJsZV9mcmFtZV9mbGF0dGVuaW5nX3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIGVuYWJs
ZSk7CiAKIC8qKgogICogUXVlcmllcyBpZiB0aGUgc2NyaXB0cyBjYW4gb3BlbiB0aGUgbmV3IHdp
bmRvd3MuCkBAIC0yMjg4LDcgKzIyODgsNyBAQCB0eXBlZGVmIGVudW0gX0V3a19QYWdlX1Zpc2li
aWxpdHlfU3RhdGUgRXdrX1BhZ2VfVmlzaWJpbGl0eV9TdGF0ZTsKICAqCiAgKiBAcmV0dXJuIEBj
IEVJTkFfVFJVRSBvbiBzdWNjZXNzIG9yIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZS4KICAqLwot
RUFQSSBFaW5hX0Jvb2wgZXdrX3ZpZXdfdmlzaWJpbGl0eV9zdGF0ZV9zZXQoRXZhc19PYmplY3Qq
IG8sIEV3a19QYWdlX1Zpc2liaWxpdHlfU3RhdGUgcGFnZV92aXNpYmxlX3N0YXRlLCBFaW5hX0Jv
b2wgaW5pdGlhbF9zdGF0ZSk7CitFQVBJIEVpbmFfQm9vbCBld2tfdmlld192aXNpYmlsaXR5X3N0
YXRlX3NldChFdmFzX09iamVjdCAqbywgRXdrX1BhZ2VfVmlzaWJpbGl0eV9TdGF0ZSBwYWdlX3Zp
c2libGVfc3RhdGUsIEVpbmFfQm9vbCBpbml0aWFsX3N0YXRlKTsKIAogLyoqCiAgKiBHZXRzIHRo
ZSB2aXNpYmlsaXR5IHN0YXRlIG9mIHRoZSBwYWdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3X3NpbmdsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXdfc2luZ2xlLmNwcAppbmRleCBlNWU4ZWVmLi5jNzA4NGM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfc2luZ2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXdfc2luZ2xlLmNwcApAQCAtOSw3ICs5LDcgQEAKIAogICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAogICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gICAgTUVSY2hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogICAgIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogCiAgICAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQpAQCAtMjA5LDggKzIwOSw4IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3Npbmds
ZV9zbWFydF9yZXBhaW50c19wcm9jZXNzKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtCiAgICAgRXZh
c19Db29yZCBvdywgb2g7CiAgICAgdm9pZCogcGl4ZWxzOwogICAgIEVpbmFfUmVjdGFuZ2xlKiBy
ZWN0OwotICAgIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBwcjsKLSAgICBjb25zdCBFaW5hX1JlY3Rh
bmdsZSogcHJfZW5kOworICAgIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBwYWludFJlcXVlc3Q7Cisg
ICAgY29uc3QgRWluYV9SZWN0YW5nbGUqIHBhaW50UmVxdWVzdEVuZDsKICAgICBFaW5hX1RpbGVy
KiB0aWxlcjsKICAgICBFaW5hX0l0ZXJhdG9yKiBpdGVyYXRvcjsKICAgICBjYWlyb19zdGF0dXNf
dCBzdGF0dXM7CkBAIC0yNzcsMTAgKzI3NywxMCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmll
d19zaW5nbGVfc21hcnRfcmVwYWludHNfcHJvY2VzcyhFd2tfVmlld19TbWFydF9EYXRhKiBzbQog
CiAgICAgZXdrX3ZpZXdfbGF5b3V0X2lmX25lZWRlZF9yZWN1cnNpdmUoc21hcnREYXRhLT5fcHJp
dik7CiAKLSAgICBwciA9IGV3a192aWV3X3JlcGFpbnRzX3BvcChzbWFydERhdGEtPl9wcml2LCAm
Y291bnQpOwotICAgIHByX2VuZCA9IHByICsgY291bnQ7Ci0gICAgZm9yICg7IHByIDwgcHJfZW5k
OyBwcisrKQotICAgICAgICBlaW5hX3RpbGVyX3JlY3RfYWRkKHRpbGVyLCBwcik7CisgICAgcGFp
bnRSZXF1ZXN0ID0gZXdrX3ZpZXdfcmVwYWludHNfcG9wKHNtYXJ0RGF0YS0+X3ByaXYsICZjb3Vu
dCk7CisgICAgcGFpbnRSZXF1ZXN0RW5kID0gcGFpbnRSZXF1ZXN0ICsgY291bnQ7CisgICAgZm9y
ICg7IHBhaW50UmVxdWVzdCA8IHBhaW50UmVxdWVzdEVuZDsgcGFpbnRSZXF1ZXN0KyspCisgICAg
ICAgIGVpbmFfdGlsZXJfcmVjdF9hZGQodGlsZXIsIHBhaW50UmVxdWVzdCk7CiAKICAgICBpdGVy
YXRvciA9IGVpbmFfdGlsZXJfaXRlcmF0b3JfbmV3KHRpbGVyKTsKICAgICBpZiAoIWl0ZXJhdG9y
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3Bw
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcAppbmRleCBlNWI4MjYz
Li4yOTZlYjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGls
ZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKQEAg
LTc3LDEyICs3NywxMiBAQCBzdGF0aWMgdm9pZCogX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJv
Y2Vzc19wcmUodm9pZCogZGF0YSwgRXZhc19PYmplY3QqIGV3a1ZpZQogCiBzdGF0aWMgRXZhc19P
YmplY3QqIF9ld2tfdmlld190aWxlZF9zbWFydF9iYWNraW5nX3N0b3JlX2FkZChFd2tfVmlld19T
bWFydF9EYXRhKiBzbWFydERhdGEpCiB7Ci0gICAgRXZhc19PYmplY3QqIGJzID0gZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfYWRkKHNtYXJ0RGF0YS0+YmFzZS5ldmFzKTsKKyAgICBFdmFzX09iamVj
dCogYmFja2luZ1N0b3JlID0gZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfYWRkKHNtYXJ0RGF0YS0+
YmFzZS5ldmFzKTsKICAgICBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9yZW5kZXJfY2Jfc2V0Ci0g
ICAgICAgIChicywgX2V3a192aWV3X3RpbGVkX3JlbmRlcl9jYiwgc21hcnREYXRhLT5fcHJpdik7
CisgICAgICAgIChiYWNraW5nU3RvcmUsIF9ld2tfdmlld190aWxlZF9yZW5kZXJfY2IsIHNtYXJ0
RGF0YS0+X3ByaXYpOwogICAgIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3VwZGF0ZXNfcHJvY2Vz
c19wcmVfc2V0Ci0gICAgICAgIChicywgX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJvY2Vzc19w
cmUsIHNtYXJ0RGF0YS0+X3ByaXYpOwotICAgIHJldHVybiBiczsKKyAgICAgICAgKGJhY2tpbmdT
dG9yZSwgX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJvY2Vzc19wcmUsIHNtYXJ0RGF0YS0+X3By
aXYpOworICAgIHJldHVybiBiYWNraW5nU3RvcmU7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC05Nywx
NyArOTcsMTcgQEAgX2V3a192aWV3X3RpbGVkX2NvbnRlbnRzX3NpemVfY2hhbmdlZF9jYih2b2lk
KiBkYXRhLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCoKIAogc3RhdGljIHZvaWQgX2V3a192
aWV3X3RpbGVkX3NtYXJ0X2FkZChFdmFzX09iamVjdCogZXdrVmlldykKIHsKLSAgICBFd2tfVmll
d19TbWFydF9EYXRhKiBzZDsKKyAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGE7CiAK
ICAgICBfcGFyZW50X3NjLnNjLmFkZChld2tWaWV3KTsKIAotICAgIHNkID0gc3RhdGljX2Nhc3Q8
RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGV2YXNfb2JqZWN0X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcp
KTsKLSAgICBpZiAoIXNkKQorICAgIHNtYXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1Nt
YXJ0X0RhdGEqPihldmFzX29iamVjdF9zbWFydF9kYXRhX2dldChld2tWaWV3KSk7CisgICAgaWYg
KCFzbWFydERhdGEpCiAgICAgICAgIHJldHVybjsKIAogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2FkZCgKLSAgICAgICAgc2QtPm1haW5fZnJhbWUsICJjb250ZW50cyxzaXplLGNoYW5n
ZWQiLAotICAgICAgICBfZXdrX3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2NiLCBz
ZCk7CisgICAgICAgIHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSwgImNvbnRlbnRzLHNpemUsY2hhbmdl
ZCIsCisgICAgICAgIF9ld2tfdmlld190aWxlZF9jb250ZW50c19zaXplX2NoYW5nZWRfY2IsIHNt
YXJ0RGF0YSk7CiB9CiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3RpbGVkX3NtYXJ0X3Nj
cm9sbHNfcHJvY2VzcyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCkBAIC0zOTIsMTQg
KzM5MiwxNCBAQCBFdmFzX09iamVjdCogZXdrX3ZpZXdfdGlsZWRfYWRkKEV2YXMqIGNhbnZhcykK
IAogRXdrX1RpbGVfVW51c2VkX0NhY2hlKiBld2tfdmlld190aWxlZF91bnVzZWRfY2FjaGVfZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewotICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEq
IHNkID0gZXdrX3ZpZXdfc21hcnRfZGF0YV9nZXQoZXdrVmlldyk7Ci0gICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKHNkLCAwKTsKLSAgICByZXR1cm4gZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfdGlsZV91bnVzZWRfY2FjaGVfZ2V0KHNkLT5iYWNraW5nX3N0b3JlKTsKKyAgICBFd2tf
Vmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBld2tfdmlld19zbWFydF9kYXRhX2dldChld2tW
aWV3KTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnREYXRhLCAwKTsK
KyAgICByZXR1cm4gZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2FjaGVfZ2V0
KHNtYXJ0RGF0YS0+YmFja2luZ19zdG9yZSk7CiB9CiAKIHZvaWQgZXdrX3ZpZXdfdGlsZWRfdW51
c2VkX2NhY2hlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRXdrX1RpbGVfVW51c2VkX0NhY2hl
KiBjYWNoZSkKIHsKLSAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzZCA9IGV3a192aWV3X3NtYXJ0
X2RhdGFfZ2V0KGV3a1ZpZXcpOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNkKTsK
LSAgICBld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX3VudXNlZF9jYWNoZV9zZXQoc2QtPmJh
Y2tpbmdfc3RvcmUsIGNhY2hlKTsKKyAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEg
PSBld2tfdmlld19zbWFydF9kYXRhX2dldChld2tWaWV3KTsKKyAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTihzbWFydERhdGEpOworICAgIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVf
dW51c2VkX2NhY2hlX3NldChzbWFydERhdGEtPmJhY2tpbmdfc3RvcmUsIGNhY2hlKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124866</attachid>
            <date>2012-01-31 18:33:37 -0800</date>
            <delta_ts>2012-02-01 01:05:59 -0800</delta_ts>
            <desc>new style patch</desc>
            <filename>new_style.patch</filename>
            <type>text/plain</type>
            <size>96498</size>
            <attacher name="JungJik Lee">jungjik.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCBiNzViMTYwLi5lOWEzNTEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTEwIEBACisyMDEyLTAxLTMxICBKdW5nSmlrIExlZSAgPGp1bmdqaWsubGVlQHNh
bXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIEFkb3B0IEMrKyBzdHlsZSB1c2luZyBjYW1lbENh
c2UgYW5kIGZ1bGwgdmFyaWFibGUgbmFtZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03NjM3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1vZGlmeSB0aGUgY29kZSB0byB1c2UgY2FtZWxDYXNlIGFuZCBz
cGVsbCBvdXQgdmFyaWFibGUgbmFtZXMgaW5zdGVhZCBvZiB1c2luZyBhYmJyZXZpYXRpb25zLgor
ICAgICAgICBNb2RpZnkgdGhlIGNvbW1lbnRzIHdoaWNoIGRvIG5vdCBtYXRjaCB3aXRoIGFjdHVh
bCBwYXJhbWV0ZXJzIGFuZCBjb3JyZWN0IG1pc3NwZWxsZWQgd29yZHMuCisgICAgICAgIEFkb3B0
IEVGTCBDb2Rpbmcgc3R5bGUgaW4gaGVhZGVyIGZpbGVzLgorICAgICAgICBUaGUgbG9naWMgb2Yg
dGhlIGNvZGUgaXMgbm90IGNoYW5nZWQuCisKKyAgICAgICAgKiBld2svZXdrX2Nvb2tpZXMuaDoK
KyAgICAgICAgKiBld2svZXdrX2ZyYW1lLmNwcDoKKyAgICAgICAgKGV3a19mcmFtZV9zZWxlY3Rp
b25fZ2V0KToKKyAgICAgICAgKGV3a19mcmFtZV9mZWVkX2ZvY3VzX2luKToKKyAgICAgICAgKEVX
S1ByaXZhdGU6OmNvcmVGcmFtZSk6CisgICAgICAgICogZXdrL2V3a19mcmFtZS5oOgorICAgICAg
ICAqIGV3ay9ld2tfaGlzdG9yeS5jcHA6CisgICAgICAgIChld2tfaGlzdG9yeV9pdGVtX25ldyk6
CisgICAgICAgIChld2tfaGlzdG9yeV9pdGVtX3RpdGxlX2dldCk6CisgICAgICAgIChld2tfaGlz
dG9yeV9pdGVtX3RpdGxlX2FsdGVybmF0ZV9nZXQpOgorICAgICAgICAoZXdrX2hpc3RvcnlfaXRl
bV91cmlfZ2V0KToKKyAgICAgICAgKGV3a19oaXN0b3J5X2l0ZW1fdXJpX29yaWdpbmFsX2dldCk6
CisgICAgICAgICogZXdrL2V3a19uZXR3b3JrLmg6CisgICAgICAgICogZXdrL2V3a190aWxlZF9i
YWNraW5nX3N0b3JlLmNwcDoKKyAgICAgICAgKF9Fd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVt
KToKKyAgICAgICAgKF9Fd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKToKKyAgICAgICAgKF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Fzc29jaWF0ZSk6CisgICAgICAgIChfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfdGlsZV9kaXNzb2NpYXRlKToKKyAgICAgICAgKF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfY2xlYXIpOgorICAgICAgICAoX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9wcm9jZXNzX3NpbmdsZSk6Cisg
ICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKToKKyAgICAgICAgKF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfaXRlbV9zbW9vdGhfc2NhbGVfc2V0KToKKyAgICAgICAgKF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV92aWV3X2NvbHNfZW5kX2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfdmlld19yb3dzX2FsbF9kZWwpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3JlbmRlcik6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfbWVt
X2RiZyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2lnX3Vzcik6CisgICAg
ICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRkKToKKyAgICAgICAgKF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9kZWwpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3NtYXJ0X21vdmUpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3NtYXJ0X3Jlc2l6ZSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVjYWxj
X3JlbmRlcmVycyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19kYmcp
OgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF91cCk6CisgICAg
ICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld193cmFwX2Rvd24pOgorICAgICAgICAo
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF9sZWZ0KToKKyAgICAgICAgKF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3JlZmlsbCk6CisgICAgICAgIChfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfdmlld19wb3NfYXBwbHkpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9vZmZzZXRfZm9yY2UpOgorICAgICAgICAoX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9vZmZzZXQpOgorICAgICAgICAoX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9wb3MpOgorICAgICAgICAoX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZSk6CisgICAgICAgIChfZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3NldF9pbnRlcm5hbCk6CisgICAgICAg
IChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0KToKKyAgICAg
ICAgKGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9hZGQpOgorICAg
ICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fc2V0X2ludGVybmFsKToKKyAgICAg
ICAgKGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fc2V0KToKKyAgICAgICAgKGV3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3pvb21fd2Vha19zZXQpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfZml4X29mZnNldHMpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
Zmx1c2gpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZWdp
b24pOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZWxhdGl2
ZV9yYWRpdXMpOgorICAgICAgICAqIGV3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5oOgorICAg
ICAgICAoX0V3a19UaWxlKToKKyAgICAgICAgKiBld2svZXdrX3RpbGVkX21hdHJpeC5jcHA6Cisg
ICAgICAgIChfRXdrX1RpbGVfTWF0cml4KToKKyAgICAgICAgKF9ld2tfdGlsZV9tYXRyaXhfY2Vs
bF9mcmVlKToKKyAgICAgICAgKF9ld2tfdGlsZV9tYXRyaXhfdGlsZV9mcmVlKToKKyAgICAgICAg
KGV3a190aWxlX21hdHJpeF9uZXcpOgorICAgICAgICAoZXdrX3RpbGVfbWF0cml4X2ZyZWUpOgor
ICAgICAgICAoZXdrX3RpbGVfbWF0cml4X3VudXNlZF9jYWNoZV9nZXQpOgorICAgICAgICAoZXdr
X3RpbGVfbWF0cml4X3RpbGVfZXhhY3RfZ2V0KToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF90
aWxlX25ldyk6CisgICAgICAgIChld2tfdGlsZV9tYXRyaXhfdGlsZV9wdXQpOgorICAgICAgICAo
ZXdrX3RpbGVfbWF0cml4X2RiZyk6CisgICAgICAgIChld2tfdGlsZV9tYXRyaXhfZnJlZXplKToK
KyAgICAgICAgKGV3a190aWxlX21hdHJpeF90aGF3KToKKyAgICAgICAgKiBld2svZXdrX3RpbGVk
X21hdHJpeC5oOgorICAgICAgICAqIGV3ay9ld2tfdGlsZWRfbW9kZWwuY3BwOgorICAgICAgICAo
dGlsZV9hY2NvdW50KToKKyAgICAgICAgKGV3a190aWxlX3VwZGF0ZXNfcHJvY2Vzcyk6CisgICAg
ICAgIChld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQpOgorICAgICAgICAoZXdrX3RpbGVf
dW51c2VkX2NhY2hlX2RiZyk6CisgICAgICAgICogZXdrL2V3a190aWxlZF9tb2RlbC5oOgorICAg
ICAgICAqIGV3ay9ld2tfdXRpbC5oOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAg
ICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9m
b2N1c19pbik6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfcHJlX3JlbmRlcl9yZWdpb24pOgor
ICAgICAgICAoZXdrX3ZpZXdfcHJlX3JlbmRlcl9yZWdpb24pOgorICAgICAgICAoZXdrX3ZpZXdf
dG9vbGJhcnNfdmlzaWJsZV9nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc3RhdHVzYmFyX3Zpc2li
bGVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3Njcm9sbGJhcnNfdmlzaWJsZV9nZXQpOgorICAg
ICAgICAoZXdrX3ZpZXdfbWVudWJhcl92aXNpYmxlX2dldCk6CisgICAgICAgIChld2tfdmlld196
b29tX3JhbmdlX3NldCk6CisgICAgICAgICogZXdrL2V3a192aWV3Lmg6CisgICAgICAgICogZXdr
L2V3a192aWV3X3NpbmdsZS5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X3Jl
cGFpbnRzX3Byb2Nlc3MpOgorICAgICAgICAqIGV3ay9ld2tfdmlld190aWxlZC5jcHA6CisgICAg
ICAgIChfZXdrX3ZpZXdfdGlsZWRfc21hcnRfYmFja2luZ19zdG9yZV9hZGQpOgorICAgICAgICAo
X2V3a192aWV3X3RpbGVkX3NtYXJ0X2FkZCk6CisgICAgICAgIChld2tfdmlld190aWxlZF91bnVz
ZWRfY2FjaGVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3RpbGVkX3VudXNlZF9jYWNoZV9zZXQp
OgorCiAyMDEyLTAxLTMwICBFdW5zb2wgUGFyayAgPGV1bnNvbDQ3LnBhcmtAc2Ftc3VuZy5jb20+
CiAKICAgICAgICAgW0VGTF0gRGVmaW5lIHRoZSBuYW1lcyBvZiB2aWV3IHNtYXJ0IGNsYXNzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nvb2tpZXMuaCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5oCmluZGV4IGFjZDE1NTkuLjQwZTY5ZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5oCkBAIC05NSw3ICs5NSw3IEBAIEVBUEkgdm9pZCAg
ICAgICAgICAgICAgIGV3a19jb29raWVzX2NsZWFyKHZvaWQpOwogICoKICAqIEByZXR1cm4gYW4g
QGMgRWluYV9MaXN0IHdpdGggYWxsIHRoZSBjb29raWVzIGluIHRoZSBjb29raWUgamFyCiAgKi8K
LUVBUEkgRWluYV9MaXN0KiAgICAgICAgIGV3a19jb29raWVzX2dldF9hbGwodm9pZCk7CitFQVBJ
IEVpbmFfTGlzdCAgICAgICAgICAqZXdrX2Nvb2tpZXNfZ2V0X2FsbCh2b2lkKTsKIAogLyoqCiAg
KiBEZWxldGVzIGEgY29va2llIGZyb20gdGhlIGNvb2tpZSBqYXIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfZnJhbWUuY3BwCmluZGV4IDk2MWZhMGIuLjhiYTE4ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfZnJhbWUuY3BwCkBAIC04NiwyOCArODYsMjggQEAgc3RydWN0IEVpbmFfSXRlcmF0b3JfRXdr
X0ZyYW1lIHsKICNpZm5kZWYgRVdLX1RZUEVfQ0hFQ0sKICNkZWZpbmUgRVdLX0ZSQU1FX1RZUEVf
Q0hFQ0soZXdrRnJhbWUsIC4uLikgZG8geyB9IHdoaWxlICgwKQogI2Vsc2UKLSNkZWZpbmUgRVdL
X0ZSQU1FX1RZUEVfQ0hFQ0soZXdrRnJhbWUsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGNvbnN0IGNoYXIqIF90bXBf
b3R5cGUgPSBldmFzX29iamVjdF90eXBlX2dldChld2tGcmFtZSk7ICAgICAgICAgICAgICAgXAot
ICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWShfdG1wX290eXBlICE9IEVXS19GUkFNRV9UWVBFX1NU
UikpIHsgICAgICAgICAgXAotICAgICAgICAgICAgRUlOQV9MT0dfQ1JJVCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICgiJXAg
KCVzKSBpcyBub3Qgb2YgYW4gZXdrX2ZyYW1lISIsIGV3a0ZyYW1lLCAgICAgICAgICAgICAgICAg
IFwKLSAgICAgICAgICAgICAgICBfdG1wX290eXBlID8gX3RtcF9vdHlwZSA6ICIobnVsbCkiKTsg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgfSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyNkZWZpbmUgRVdLX0ZSQU1FX1RZUEVfQ0hFQ0soZXdrRnJhbWUsIC4uLikgXAorICAgIGRvIHsg
XAorICAgICAgICBjb25zdCBjaGFyKiBfdG1wX290eXBlID0gZXZhc19vYmplY3RfdHlwZV9nZXQo
ZXdrRnJhbWUpOyBcCisgICAgICAgIGlmIChFSU5BX1VOTElLRUxZKF90bXBfb3R5cGUgIT0gRVdL
X0ZSQU1FX1RZUEVfU1RSKSkgeyBcCisgICAgICAgICAgICBFSU5BX0xPR19DUklUIFwKKyAgICAg
ICAgICAgICAgICAoIiVwICglcykgaXMgbm90IG9mIGFuIGV3a19mcmFtZSEiLCBld2tGcmFtZSwg
XAorICAgICAgICAgICAgICAgIF90bXBfb3R5cGUgPyBfdG1wX290eXBlIDogIihudWxsKSIpOyBc
CisgICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187IFwKKyAgICAgICAgfSBcCiAgICAgfSB3
aGlsZSAoMCkKICNlbmRpZgogCi0jZGVmaW5lIEVXS19GUkFNRV9TRF9HRVQoZXdrRnJhbWUsIHB0
cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBFd2tfRnJhbWVfU21hcnRf
RGF0YSogcHRyID0gc3RhdGljX2Nhc3Q8RXdrX0ZyYW1lX1NtYXJ0X0RhdGEqPihldmFzX29iamVj
dF9zbWFydF9kYXRhX2dldChld2tGcmFtZSkpCisjZGVmaW5lIEVXS19GUkFNRV9TRF9HRVQoZXdr
RnJhbWUsIHBvaW50ZXIpIFwKKyAgICBFd2tfRnJhbWVfU21hcnRfRGF0YSogcG9pbnRlciA9IHN0
YXRpY19jYXN0PEV3a19GcmFtZV9TbWFydF9EYXRhKj4oZXZhc19vYmplY3Rfc21hcnRfZGF0YV9n
ZXQoZXdrRnJhbWUpKQogCi0jZGVmaW5lIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKGV3a0Zy
YW1lLCBwdHIsIC4uLikgICAgICAgICBcCi0gICAgRVdLX0ZSQU1FX1RZUEVfQ0hFQ0soZXdrRnJh
bWUsIF9fVkFfQVJHU19fKTsgICAgICAgICAgICAgICBcCi0gICAgRVdLX0ZSQU1FX1NEX0dFVChl
d2tGcmFtZSwgcHRyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgaWYgKCFwdHIp
IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgQ1JJ
VElDQUwoIm5vIHNtYXJ0IGRhdGEgZm9yIG9iamVjdCAlcCAoJXMpIiwgICAgXAotICAgICAgICAg
ICAgICAgICBld2tGcmFtZSwgZXZhc19vYmplY3RfdHlwZV9nZXQoZXdrRnJhbWUpKTsgICAgICAg
ICAgIFwKLSAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAorI2RlZmluZSBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgcG9p
bnRlciwgLi4uKSBcCisgICAgRVdLX0ZSQU1FX1RZUEVfQ0hFQ0soZXdrRnJhbWUsIF9fVkFfQVJH
U19fKTsgXAorICAgIEVXS19GUkFNRV9TRF9HRVQoZXdrRnJhbWUsIHBvaW50ZXIpOyBcCisgICAg
aWYgKCFwb2ludGVyKSB7IFwKKyAgICAgICAgQ1JJVElDQUwoIm5vIHNtYXJ0IGRhdGEgZm9yIG9i
amVjdCAlcCAoJXMpIiwgXAorICAgICAgICAgICAgICAgICBld2tGcmFtZSwgZXZhc19vYmplY3Rf
dHlwZV9nZXQoZXdrRnJhbWUpKTsgXAorICAgICAgICByZXR1cm4gX19WQV9BUkdTX187IFwKICAg
ICB9CiAKIHN0YXRpYyBFdmFzX1NtYXJ0X0NsYXNzIF9wYXJlbnRfc2MgPSBFVkFTX1NNQVJUX0NM
QVNTX0lOSVRfTlVMTDsKQEAgLTQ2OCwxMCArNDY4LDEwIEBAIGNoYXIqIGV3a19mcmFtZV9zZWxl
Y3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKIHsKICAgICBFV0tfRlJBTUVf
U0RfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgc21hcnREYXRhLCAwKTsKICAgICBFSU5BX1NBRkVU
WV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnREYXRhLT5mcmFtZSwgMCk7Ci0gICAgV1RGOjpDU3Ry
aW5nIHMgPSBzbWFydERhdGEtPmZyYW1lLT5lZGl0b3IoKS0+c2VsZWN0ZWRUZXh0KCkudXRmOCgp
OwotICAgIGlmIChzLmlzTnVsbCgpKQorICAgIFdURjo6Q1N0cmluZyBzZWxlY3RlZFRleHQgPSBz
bWFydERhdGEtPmZyYW1lLT5lZGl0b3IoKS0+c2VsZWN0ZWRUZXh0KCkudXRmOCgpOworICAgIGlm
IChzZWxlY3RlZFRleHQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBz
dHJkdXAocy5kYXRhKCkpOworICAgIHJldHVybiBzdHJkdXAoc2VsZWN0ZWRUZXh0LmRhdGEoKSk7
CiB9CiAKIEVpbmFfQm9vbCBld2tfZnJhbWVfdGV4dF9zZWFyY2goY29uc3QgRXZhc19PYmplY3Qq
IGV3a0ZyYW1lLCBjb25zdCBjaGFyKiB0ZXh0LCBFaW5hX0Jvb2wgY2FzZVNlbnNpdGl2ZSwgRWlu
YV9Cb29sIGZvcndhcmQsIEVpbmFfQm9vbCB3cmFwKQpAQCAtODM0LDggKzgzNCw4IEBAIEVpbmFf
Qm9vbCBld2tfZnJhbWVfZmVlZF9mb2N1c19pbihFdmFzX09iamVjdCogZXdrRnJhbWUpCiB7CiAg
ICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4oZXdrRnJhbWUsIHNtYXJ0RGF0YSwgZmFsc2Up
OwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzbWFydERhdGEtPmZyYW1lLCBm
YWxzZSk7Ci0gICAgV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyKiBjID0gc21hcnREYXRhLT5mcmFt
ZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKTsKLSAgICBjLT5zZXRGb2N1c2VkRnJhbWUoc21h
cnREYXRhLT5mcmFtZSk7CisgICAgV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyKiBmb2N1c0NvbnRy
b2xsZXIgPSBzbWFydERhdGEtPmZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpOworICAg
IGZvY3VzQ29udHJvbGxlci0+c2V0Rm9jdXNlZEZyYW1lKHNtYXJ0RGF0YS0+ZnJhbWUpOwogICAg
IHJldHVybiB0cnVlOwogfQogCkBAIC0xNzc0LDcgKzE3NzQsNyBAQCB2b2lkIGV3a19mcmFtZV9t
aXhlZF9jb250ZW50X3J1bl9zZXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBib29sIGhhc1J1bikK
IAogbmFtZXNwYWNlIEVXS1ByaXZhdGUgewogCi1XZWJDb3JlOjpGcmFtZSAqY29yZUZyYW1lKGNv
bnN0IEV2YXNfT2JqZWN0ICpld2tGcmFtZSkKK1dlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUoY29u
c3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogewogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVU
VVJOKGV3a0ZyYW1lLCBzbWFydERhdGEsIDApOwogICAgIHJldHVybiBzbWFydERhdGEtPmZyYW1l
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oIGIvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCmluZGV4IDBkZjhjNTEuLmY3NDU1NWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKQEAgLTg1Nyw3ICs4NTcsNyBAQCBFQVBJIEVpbmFfTGlz
dCAqZXdrX2ZyYW1lX3Jlc291cmNlc19sb2NhdGlvbl9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8p
OwogICogQHJldHVybiBBIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgKHdoaWNoIG11c3QgYmUgZnJl
ZWQgYnkgdGhlIGNhbGxlciB3aXRoIEBjIGZyZWUoKSkKICAqICAgICAgICAgb3IgQGMgMCBpbiBj
YXNlIG9mIGZhaWx1cmUuCiAgKi8KLUVBUEkgY2hhciogZXdrX2ZyYW1lX3BsYWluX3RleHRfZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0KiBvKTsKK0VBUEkgY2hhciAqZXdrX2ZyYW1lX3BsYWluX3RleHRf
Z2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKIAogLyoqCiAgKiBSZXR1cm5zIHdoZXRoZXIgdGhl
IGZyYW1lIGhhcyBkaXNwbGF5ZWQgbWl4ZWQgY29udGVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfaGlzdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X2hpc3RvcnkuY3BwCmluZGV4IGEzOTg3NTkuLmZhZWYwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfaGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19oaXN0b3J5LmNwcApAQCAtMjU1LDkgKzI1NSw5IEBAIEV3a19IaXN0b3J5X0l0ZW0qIGV3
a19oaXN0b3J5X2l0ZW1fbmV3X2Zyb21fY29yZShXZWJDb3JlOjpIaXN0b3J5SXRlbSogY29yZSkK
IAogRXdrX0hpc3RvcnlfSXRlbSogZXdrX2hpc3RvcnlfaXRlbV9uZXcoY29uc3QgY2hhciogdXJp
LCBjb25zdCBjaGFyKiB0aXRsZSkKIHsKLSAgICBXVEY6OlN0cmluZyB1ID0gV1RGOjpTdHJpbmc6
OmZyb21VVEY4KHVyaSk7Ci0gICAgV1RGOjpTdHJpbmcgdCA9IFdURjo6U3RyaW5nOjpmcm9tVVRG
OCh0aXRsZSk7Ci0gICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+IGNvcmUgPSBX
ZWJDb3JlOjpIaXN0b3J5SXRlbTo6Y3JlYXRlKHUsIHQsIDApOworICAgIFdURjo6U3RyaW5nIGhp
c3RvcnlVcmkgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodXJpKTsKKyAgICBXVEY6OlN0cmluZyBo
aXN0b3J5VGl0bGUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodGl0bGUpOworICAgIFdURjo6UmVm
UHRyPFdlYkNvcmU6Okhpc3RvcnlJdGVtPiBjb3JlID0gV2ViQ29yZTo6SGlzdG9yeUl0ZW06OmNy
ZWF0ZShoaXN0b3J5VXJpLCBoaXN0b3J5VGl0bGUsIDApOwogICAgIEV3a19IaXN0b3J5X0l0ZW0q
IGl0ZW0gPSBld2tfaGlzdG9yeV9pdGVtX25ld19mcm9tX2NvcmUoY29yZS5yZWxlYXNlKCkubGVh
a1JlZigpKTsKICAgICByZXR1cm4gaXRlbTsKIH0KQEAgLTI4NywxOSArMjg3LDE5IEBAIGNvbnN0
IGNoYXIqIGV3a19oaXN0b3J5X2l0ZW1fdGl0bGVfZ2V0KGNvbnN0IEV3a19IaXN0b3J5X0l0ZW0q
IGl0ZW0pCiB7CiAgICAgRVdLX0hJU1RPUllfSVRFTV9DT1JFX0dFVF9PUl9SRVRVUk4oaXRlbSwg
Y29yZSwgMCk7CiAgICAgLy8gaGlkZSB0aGUgZm9sbG93aW5nIG9wdGltemF0aW9uIGZyb20gb3V0
c2lkZQotICAgIEV3a19IaXN0b3J5X0l0ZW0qIGl0ZW0xID0gY29uc3RfY2FzdDxFd2tfSGlzdG9y
eV9JdGVtKj4oaXRlbSk7Ci0gICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZpdGVtMS0+dGl0
bGUsIGNvcmUtPnRpdGxlKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIGl0ZW0xLT50aXRs
ZTsKKyAgICBFd2tfSGlzdG9yeV9JdGVtKiBoaXN0b3J5SXRlbSA9IGNvbnN0X2Nhc3Q8RXdrX0hp
c3RvcnlfSXRlbSo+KGl0ZW0pOworICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmaGlzdG9y
eUl0ZW0tPnRpdGxlLCBjb3JlLT50aXRsZSgpLnV0ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBo
aXN0b3J5SXRlbS0+dGl0bGU7CiB9CiAKIGNvbnN0IGNoYXIqIGV3a19oaXN0b3J5X2l0ZW1fdGl0
bGVfYWx0ZXJuYXRlX2dldChjb25zdCBFd2tfSGlzdG9yeV9JdGVtKiBpdGVtKQogewogICAgIEVX
S19ISVNUT1JZX0lURU1fQ09SRV9HRVRfT1JfUkVUVVJOKGl0ZW0sIGNvcmUsIDApOwogICAgIC8v
IGhpZGUgdGhlIGZvbGxvd2luZyBvcHRpbXphdGlvbiBmcm9tIG91dHNpZGUKLSAgICBFd2tfSGlz
dG9yeV9JdGVtKiBpdGVtMSA9IGNvbnN0X2Nhc3Q8RXdrX0hpc3RvcnlfSXRlbSo+KGl0ZW0pOwot
ICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmaXRlbTEtPmFsdGVybmF0ZVRpdGxlLAorICAg
IEV3a19IaXN0b3J5X0l0ZW0qIGhpc3RvcnlJdGVtID0gY29uc3RfY2FzdDxFd2tfSGlzdG9yeV9J
dGVtKj4oaXRlbSk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZoaXN0b3J5SXRlbS0+
YWx0ZXJuYXRlVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcmUtPmFsdGVy
bmF0ZVRpdGxlKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIGl0ZW0xLT5hbHRlcm5hdGVU
aXRsZTsKKyAgICByZXR1cm4gaGlzdG9yeUl0ZW0tPmFsdGVybmF0ZVRpdGxlOwogfQogCiB2b2lk
IGV3a19oaXN0b3J5X2l0ZW1fdGl0bGVfYWx0ZXJuYXRlX3NldChFd2tfSGlzdG9yeV9JdGVtKiBp
dGVtLCBjb25zdCBjaGFyKiB0aXRsZSkKQEAgLTMxNCwxOSArMzE0LDE5IEBAIGNvbnN0IGNoYXIq
IGV3a19oaXN0b3J5X2l0ZW1fdXJpX2dldChjb25zdCBFd2tfSGlzdG9yeV9JdGVtKiBpdGVtKQog
ewogICAgIEVXS19ISVNUT1JZX0lURU1fQ09SRV9HRVRfT1JfUkVUVVJOKGl0ZW0sIGNvcmUsIDAp
OwogICAgIC8vIGhpZGUgdGhlIGZvbGxvd2luZyBvcHRpbXphdGlvbiBmcm9tIG91dHNpZGUKLSAg
ICBFd2tfSGlzdG9yeV9JdGVtKiBpID0gY29uc3RfY2FzdDxFd2tfSGlzdG9yeV9JdGVtKj4oKGl0
ZW0pKTsKLSAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJmktPnVyaSwgY29yZS0+dXJsU3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIGktPnVyaTsKKyAgICBFd2tfSGlzdG9y
eV9JdGVtKiBoaXN0b3J5SXRlbSA9IGNvbnN0X2Nhc3Q8RXdrX0hpc3RvcnlfSXRlbSo+KChpdGVt
KSk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZoaXN0b3J5SXRlbS0+dXJpLCBjb3Jl
LT51cmxTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gaGlzdG9yeUl0ZW0tPnVy
aTsKIH0KIAogY29uc3QgY2hhciogZXdrX2hpc3RvcnlfaXRlbV91cmlfb3JpZ2luYWxfZ2V0KGNv
bnN0IEV3a19IaXN0b3J5X0l0ZW0qIGl0ZW0pCiB7CiAgICAgRVdLX0hJU1RPUllfSVRFTV9DT1JF
X0dFVF9PUl9SRVRVUk4oaXRlbSwgY29yZSwgMCk7CiAgICAgLy8gaGlkZSB0aGUgZm9sbG93aW5n
IG9wdGltemF0aW9uIGZyb20gb3V0c2lkZQotICAgIEV3a19IaXN0b3J5X0l0ZW0qIGkgPSBjb25z
dF9jYXN0PEV3a19IaXN0b3J5X0l0ZW0qPihpdGVtKTsKLSAgICBlaW5hX3N0cmluZ3NoYXJlX3Jl
cGxhY2UoJmktPm9yaWdpbmFsVXJpLAorICAgIEV3a19IaXN0b3J5X0l0ZW0qIGhpc3RvcnlJdGVt
ID0gY29uc3RfY2FzdDxFd2tfSGlzdG9yeV9JdGVtKj4oaXRlbSk7CisgICAgZWluYV9zdHJpbmdz
aGFyZV9yZXBsYWNlKCZoaXN0b3J5SXRlbS0+b3JpZ2luYWxVcmksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvcmUtPm9yaWdpbmFsVVJMU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgcmV0dXJuIGktPm9yaWdpbmFsVXJpOworICAgIHJldHVybiBoaXN0b3J5SXRlbS0+b3JpZ2lu
YWxVcmk7CiB9CiAKIGRvdWJsZSBld2tfaGlzdG9yeV9pdGVtX3RpbWVfbGFzdF92aXNpdGVkX2dl
dChjb25zdCBFd2tfSGlzdG9yeV9JdGVtKiBpdGVtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19uZXR3b3JrLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX25ldHdv
cmsuaAppbmRleCA2MTJjMmY3Li4zOTc3ZTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX25ldHdvcmsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX25ldHdv
cmsuaApAQCAtMTE5LDcgKzExOSw3IEBAIEVBUEkgdm9pZCAgICAgICAgICAgICBld2tfbmV0d29y
a190bHNfY2FfY2VydGlmaWNhdGVzX3BhdGhfc2V0KGNvbnN0IGNoYXIgKnBhdGgpCiAgKiBAcmV0
dXJuIFRoZSBkZWZhdWx0IEBjIFNvdXBTZXNzaW9uIGluIHVzZSwgb3IgQGMgTlVMTCBpZiBhbm90
aGVyIG5ldHdvcmsKICAqICAgICAgICAgYmFja2VuZCB3YXMgdXNlZC4KICAqLwotRUFQSSBTb3Vw
U2Vzc2lvbiogICAgIGV3a19uZXR3b3JrX2RlZmF1bHRfc291cF9zZXNzaW9uX2dldCh2b2lkKTsK
K0VBUEkgU291cFNlc3Npb24gICAgICpld2tfbmV0d29ya19kZWZhdWx0X3NvdXBfc2Vzc2lvbl9n
ZXQodm9pZCk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5jcHAKaW5kZXggNGNkZDcyZC4uMzBkZjYw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9iYWNraW5nX3N0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmUuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8
c3RyaW5nLmg+CiAKLSNkZWZpbmUgSURYKGNvbCwgcm93LCByb3dzcGFuKSAoY29sICsgKHJvdyAq
IHJvd3NwYW4pKQorI2RlZmluZSBJRFgoY29sdW1uLCByb3csIHJvd3NwYW4pIChjb2x1bW4gKyAo
cm93ICogcm93c3BhbikpCiAKIHR5cGVkZWYgc3RydWN0IF9Fd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9EYXRhIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGE7CiB0eXBlZGVmIHN0cnVjdCBfRXdr
X1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtOwpA
QCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX0V3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0gewog
ICAgIHN0cnVjdCB7CiAgICAgICAgIEV2YXNfQ29vcmQgeCwgeSwgd2lkdGgsIGhlaWdodDsKICAg
ICB9IGdlb21ldHJ5OwotICAgIGJvb2wgc21vb3RoX3NjYWxlOworICAgIGJvb2wgc21vb3RoU2Nh
bGU7CiB9OwogCiBzdHJ1Y3QgX0V3a19UaWxlZF9CYWNraW5nX1N0b3JlX1ByZV9SZW5kZXJfUmVx
dWVzdCB7CkBAIC02MSw3ICs2MSw3IEBAIHN0cnVjdCBfRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVf
RGF0YSB7CiAgICAgc3RydWN0IHsKICAgICAgICAgRWluYV9Jbmxpc3QqKiBpdGVtczsKICAgICAg
ICAgRXZhc19Db29yZCB4LCB5LCB3aWR0aCwgaGVpZ2h0OwotICAgICAgICBsb25nIGNvbHMsIHJv
d3M7CisgICAgICAgIGxvbmcgY29sdW1ucywgcm93czsKICAgICAgICAgc3RydWN0IHsKICAgICAg
ICAgICAgIEV2YXNfQ29vcmQgd2lkdGgsIGhlaWdodDsKICAgICAgICAgICAgIGZsb2F0IHpvb207
CkBAIC03MSw3ICs3MSw3IEBAIHN0cnVjdCBfRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSB7
CiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAg
IEV2YXNfQ29vcmQgeCwgeTsKLSAgICAgICAgICAgIH0gY3VyLCBvbGQsIGJhc2UsIHpvb21DZW50
ZXI7CisgICAgICAgICAgICB9IGN1cnJlbnQsIG9sZCwgYmFzZSwgem9vbUNlbnRlcjsKICAgICAg
ICAgfSBvZmZzZXQ7CiAgICAgICAgIGJvb2wgdmlzaWJsZSA6IDE7CiAgICAgfSB2aWV3OwpAQCAt
MTA4LDE4ICsxMDgsMTggQEAgc3RydWN0IF9Fd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhIHsK
ICAgICAgICAgYm9vbCBvZmZzZXQgOiAxOwogICAgIH0gY2hhbmdlZDsKICNpZmRlZiBERUJVR19N
RU1fTEVBS1MKLSAgICBFY29yZV9FdmVudF9IYW5kbGVyKiBzaWdfdXNyOworICAgIEVjb3JlX0V2
ZW50X0hhbmRsZXIqIHNpZ25hbFVzZXI7CiAjZW5kaWYKIH07CiAKIHN0YXRpYyBFdmFzX1NtYXJ0
X0NsYXNzIF9wYXJlbnRfc2MgPSBFVkFTX1NNQVJUX0NMQVNTX0lOSVRfTlVMTDsKIGludCBfZXdr
X3RpbGVkX2xvZ19kb20gPSAtMTsKIAotI2RlZmluZSBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihv
YmosIHB0ciwgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBQUklWX0RBVEFf
R0VUX09SX1JFVFVSTihvYmosIHB0ciwgLi4uKSBcCiAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3Rv
cmVfRGF0YSogcHRyID0gc3RhdGljX2Nhc3Q8RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSo+
KGV2YXNfb2JqZWN0X3NtYXJ0X2RhdGFfZ2V0KG9iaikpOyBcCi0gICAgaWYgKCFwdHIpIHsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
ICAgIENSSVRJQ0FMKCJubyBwcml2YXRlIGRhdGEgaW4gb2JqPSVwIiwgb2JqKTsgICAgICAgICAg
ICAgICAgICBcCi0gICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCFwdHIpIHsgXAorICAgICAgICBDUklU
SUNBTCgibm8gcHJpdmF0ZSBkYXRhIGluIG9iaj0lcCIsIG9iaik7IFwKKyAgICAgICAgcmV0dXJu
IF9fVkFfQVJHU19fOyBcCiAgICAgfQogCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfZmlsbF9yZW5kZXJlcnMoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdik7
CkBAIC0yMDMsMTMgKzIwMywxMyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfaXRlbV9yZXNpemUoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaQogc3RhdGljIHZv
aWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfYXNzb2NpYXRlKEV3a19UaWxlZF9CYWNr
aW5nX1N0b3JlX0RhdGEqIHByaXYsIEV3a19UaWxlKiB0aWxlLCBFd2tfVGlsZWRfQmFja2luZ19T
dG9yZV9JdGVtKiBpdGVtKQogewogICAgIGlmIChpdGVtLT50aWxlKQotICAgICAgICBDUklUSUNB
TCgiaXQtPnRpbGU9JXAsIGJ1dCBpdCBzaG91bGQgYmUgMCEiLCBpdGVtLT50aWxlKTsKKyAgICAg
ICAgQ1JJVElDQUwoIml0ZW0tPnRpbGU9JXAsIGJ1dCBpdCBzaG91bGQgYmUgMCEiLCBpdGVtLT50
aWxlKTsKICAgICBpdGVtLT50aWxlID0gdGlsZTsKICAgICBldmFzX29iamVjdF9tb3ZlKGl0ZW0t
PnRpbGUtPmltYWdlLCBpdGVtLT5nZW9tZXRyeS54LCBpdGVtLT5nZW9tZXRyeS55KTsKICAgICBl
dmFzX29iamVjdF9yZXNpemUoaXRlbS0+dGlsZS0+aW1hZ2UsIGl0ZW0tPmdlb21ldHJ5LndpZHRo
LCBpdGVtLT5nZW9tZXRyeS5oZWlnaHQpOwogICAgIGV2YXNfb2JqZWN0X2ltYWdlX2ZpbGxfc2V0
CiAgICAgICAgIChpdGVtLT50aWxlLT5pbWFnZSwgMCwgMCwgaXRlbS0+Z2VvbWV0cnkud2lkdGgs
IGl0ZW0tPmdlb21ldHJ5LmhlaWdodCk7Ci0gICAgZXZhc19vYmplY3RfaW1hZ2Vfc21vb3RoX3Nj
YWxlX3NldChpdGVtLT50aWxlLT5pbWFnZSwgaXRlbS0+c21vb3RoX3NjYWxlKTsKKyAgICBldmFz
X29iamVjdF9pbWFnZV9zbW9vdGhfc2NhbGVfc2V0KGl0ZW0tPnRpbGUtPmltYWdlLCBpdGVtLT5z
bW9vdGhTY2FsZSk7CiAgICAgZXZhc19vYmplY3RfaW1hZ2VfYWxwaGFfc2V0KGl0ZW0tPnRpbGUt
PmltYWdlLCBwcml2LT52aWV3LnRpbGUuaGFzQWxwaGEpOwogCiAgICAgaWYgKCFld2tfdGlsZV92
aXNpYmxlX2dldCh0aWxlKSkKQEAgLTIyMCwxMyArMjIwLDEzIEBAIHN0YXRpYyB2b2lkIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Fzc29jaWF0ZShFd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9EYXRhCiAKIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Rpc3Nv
Y2lhdGUoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiwgRXdrX1RpbGVkX0JhY2tp
bmdfU3RvcmVfSXRlbSogaXRlbSwgZG91YmxlIGxhc3RVc2VkKQogewotICAgIEV3a19UaWxlX1Vu
dXNlZF9DYWNoZSogdGlsZWRVbnVzZWRDYWNoZTsKKyAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUq
IHRpbGVVbnVzZWRDYWNoZTsKICAgICBld2tfdGlsZV9oaWRlKGl0ZW0tPnRpbGUpOwogICAgIGlm
ICghZXdrX3RpbGVfdmlzaWJsZV9nZXQoaXRlbS0+dGlsZSkpCiAgICAgICAgIGV2YXNfb2JqZWN0
X3NtYXJ0X21lbWJlcl9kZWwoaXRlbS0+dGlsZS0+aW1hZ2UpOwogICAgIGV3a190aWxlX21hdHJp
eF90aWxlX3B1dChwcml2LT5tb2RlbC5tYXRyaXgsIGl0ZW0tPnRpbGUsIGxhc3RVc2VkKTsKLSAg
ICB0aWxlZFVudXNlZENhY2hlID0gZXdrX3RpbGVfbWF0cml4X3VudXNlZF9jYWNoZV9nZXQocHJp
di0+bW9kZWwubWF0cml4KTsKLSAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0
aWxlZFVudXNlZENhY2hlKTsKKyAgICB0aWxlVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9tYXRyaXhf
dW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgpOworICAgIGV3a190aWxlX3VudXNl
ZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGVVbnVzZWRDYWNoZSk7CiAKICAgICBpdGVtLT50aWxlID0g
MDsKIH0KQEAgLTI5MiwyNiArMjkyLDI2IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfZmx1c2goRXdrX1RpbGVkX0JhY2tpbmdfCiBzdGF0
aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0X2NsZWFy
KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYpCiB7CiAgICAgRWluYV9Jbmxpc3Qq
KiBwcmVSZW5kZXJMaXN0ID0gJnByaXYtPnJlbmRlci5wcmVSZW5kZXJSZXF1ZXN0czsKLSAgICBF
aW5hX0lubGlzdCogaXRlciA9ICpwcmVSZW5kZXJMaXN0LCAqdG1wOworICAgIEVpbmFfSW5saXN0
KiBpdGVyID0gKnByZVJlbmRlckxpc3QsICpuZXh0OwogICAgIHdoaWxlIChpdGVyKSB7CiAgICAg
ICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX1ByZV9SZW5kZXJfUmVxdWVzdCogcmVxdWVzdCA9
CiAgICAgICAgICAgICBFSU5BX0lOTElTVF9DT05UQUlORVJfR0VUKAogICAgICAgICAgICAgICAg
IGl0ZXIsIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX1ByZV9SZW5kZXJfUmVxdWVzdCk7Ci0gICAg
ICAgIHRtcCA9IGl0ZXItPm5leHQ7CisgICAgICAgIG5leHQgPSBpdGVyLT5uZXh0OwogICAgICAg
ICAqcHJlUmVuZGVyTGlzdCA9IGVpbmFfaW5saXN0X3JlbW92ZSgqcHJlUmVuZGVyTGlzdCwgaXRl
cik7Ci0gICAgICAgIGl0ZXIgPSB0bXA7CisgICAgICAgIGl0ZXIgPSBuZXh0OwogICAgICAgICBm
cmVlKHJlcXVlc3QpOwogICAgIH0KIH0KIAotLyogYXNzdW1lcyBwcml2LT5wcm9jZXNzLnByZV9j
YiB3YXMgY2FsbGVkIGlmIHJlcXVpcmVkISAqLworLyogYXNzdW1lcyBwcml2LT5wcm9jZXNzLnBy
ZUNhbGxiYWNrIHdhcyBjYWxsZWQgaWYgcmVxdWlyZWQhICovCiBzdGF0aWMgdm9pZCBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0X3Byb2Nlc3Nfc2luZ2xlKEV3a19U
aWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYpCiB7CiAgICAgRXdrX1RpbGVkX0JhY2tpbmdf
U3RvcmVfUHJlX1JlbmRlcl9SZXF1ZXN0KiByZXF1ZXN0OwogICAgIEVpbmFfUmVjdGFuZ2xlIGFy
ZWE7CiAgICAgRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4ID0gcHJpdi0+bW9kZWwubWF0cml4
OwogICAgIEV3a19UaWxlKiB0aWxlOwotICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZWRV
bnVzZWRDYWNoZTsKKyAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZTsK
ICAgICB1bnNpZ25lZCBsb25nIGNvbHVtbiwgcm93OwogICAgIGZsb2F0IHpvb207CiAgICAgZG91
YmxlIGxhc3RfdXNlZCA9IGVjb3JlX2xvb3BfdGltZV9nZXQoKTsKQEAgLTM0OCw4ICszNDgsOCBA
QCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0
X3Byb2Nlc3Nfc2luZ2xlKEV3a19UaWxlZAogCiBlbmQ6CiAgICAgX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9kZWwocHJpdiwgcmVxdWVzdCk7Ci0gICAgdGlsZWRV
bnVzZWRDYWNoZSA9IGV3a190aWxlX21hdHJpeF91bnVzZWRfY2FjaGVfZ2V0KHByaXYtPm1vZGVs
Lm1hdHJpeCk7Ci0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2F1dG9fZmx1c2godGlsZWRVbnVz
ZWRDYWNoZSk7CisgICAgdGlsZVVudXNlZENhY2hlID0gZXdrX3RpbGVfbWF0cml4X3VudXNlZF9j
YWNoZV9nZXQocHJpdi0+bW9kZWwubWF0cml4KTsKKyAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVf
YXV0b19mbHVzaCh0aWxlVW51c2VkQ2FjaGUpOwogfQogCiBzdGF0aWMgRWluYV9Cb29sIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Byb2Nlc3NfaWRsZXJfY2Iodm9pZCogZGF0YSkKQEAg
LTQzMCwxOCArNDMwLDE4IEBAIHN0YXRpYyBpbmxpbmUgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9pdGVtX2ZpbGwoRXdrX1RpbGVkX0JhY2tpbmdfU3RvCiAKICAgICAgICAgaWYg
KGl0ZW0tPnRpbGUpIHsKICAgICAgICAgICAgIEV3a19UaWxlKiBvbGQgPSBpdGVtLT50aWxlOwot
ICAgICAgICAgICAgaWYgKG9sZC0+cm93ICE9IGN1cnJlbnRSb3cgfHwgb2xkLT5jb2wgIT0gY3Vy
cmVudENvbHVtbiB8fCBvbGQtPnpvb20gIT0gem9vbSkKKyAgICAgICAgICAgIGlmIChvbGQtPnJv
dyAhPSBjdXJyZW50Um93IHx8IG9sZC0+Y29sdW1uICE9IGN1cnJlbnRDb2x1bW4gfHwgb2xkLT56
b29tICE9IHpvb20pCiAgICAgICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Rp
bGVfZGlzc29jaWF0ZShwcml2LCBpdGVtLCBsYXN0VXNlZCk7Ci0gICAgICAgICAgICBlbHNlIGlm
IChvbGQtPnJvdyA9PSBjdXJyZW50Um93ICYmIG9sZC0+Y29sID09IGN1cnJlbnRDb2x1bW4gJiYg
b2xkLT56b29tID09IHpvb20pCisgICAgICAgICAgICBlbHNlIGlmIChvbGQtPnJvdyA9PSBjdXJy
ZW50Um93ICYmIG9sZC0+Y29sdW1uID09IGN1cnJlbnRDb2x1bW4gJiYgb2xkLT56b29tID09IHpv
b20pCiAgICAgICAgICAgICAgICAgZ290byBlbmQ7CiAgICAgICAgIH0KIAogICAgICAgICB0aWxl
ID0gZXdrX3RpbGVfbWF0cml4X3RpbGVfZXhhY3RfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCwgY3Vy
cmVudENvbHVtbiwgY3VycmVudFJvdywgem9vbSk7CiAKICAgICAgICAgaWYgKCF0aWxlKSB7Ci0g
ICAgICAgICAgICAvKiBOT1RFOiBpdCBuZXZlciByZXR1cm5zIDAgaWYgaXQtPnRpbGUgd2FzIHNl
dCEgKi8KKyAgICAgICAgICAgIC8qIE5PVEU6IGl0IG5ldmVyIHJldHVybnMgMCBpZiBpdGVtLT50
aWxlIHdhcyBzZXQhICovCiAgICAgICAgICAgICBpZiAoaXRlbS0+dGlsZSkgewotICAgICAgICAg
ICAgICAgIENSSVRJQ0FMKCJpdC0+dGlsZT0lcCwgYnV0IGl0IHNob3VsZCBiZSAwISIsIGl0ZW0t
PnRpbGUpOworICAgICAgICAgICAgICAgIENSSVRJQ0FMKCJpdGVtLT50aWxlPSVwLCBidXQgaXQg
c2hvdWxkIGJlIDAhIiwgaXRlbS0+dGlsZSk7CiAgICAgICAgICAgICAgICAgX2V3a190aWxlZF9i
YWNraW5nX3N0b3JlX3RpbGVfZGlzc29jaWF0ZShwcml2LCBpdGVtLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFVzZWQpOwogICAg
ICAgICAgICAgfQpAQCAtNDczLDcgKzQ3Myw3IEBAIHN0YXRpYyBFd2tfVGlsZWRfQmFja2luZ19T
dG9yZV9JdGVtKiBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9hZGQoRXdrX1RpbGVkCiAg
ICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbTsKICAgICBFdmFzX0Nvb3JkIHgs
IHksIHRpbGVXaWR0aCwgdGlsZUhlaWdodDsKIAotICAgIERCRygiZXdrQmFja2luZ1N0b3JlJXAi
LCBwcml2LT5zZWxmKTsKKyAgICBEQkcoImV3a0JhY2tpbmdTdG9yZT0lcCIsIHByaXYtPnNlbGYp
OwogCiAgICAgaXRlbSA9IHN0YXRpY19jYXN0PEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0q
PihtYWxsb2Moc2l6ZW9mKCppdGVtKSkpOwogICAgIGlmICghaXRlbSkKQEAgLTQ4MSwxMiArNDgx
LDEyIEBAIHN0YXRpYyBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfaXRlbV9hZGQoRXdrX1RpbGVkCiAKICAgICB0aWxlV2lkdGggPSBwcml2LT52
aWV3LnRpbGUud2lkdGg7CiAgICAgdGlsZUhlaWdodCA9IHByaXYtPnZpZXcudGlsZS5oZWlnaHQ7
Ci0gICAgeCA9IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCArIHByaXYtPnZpZXcueCArIHRpbGVX
aWR0aCAgKmNvbHVtbjsKLSAgICB5ID0gcHJpdi0+dmlldy5vZmZzZXQuYmFzZS55ICsgcHJpdi0+
dmlldy55ICsgdGlsZUhlaWdodCAgKnJvdzsKKyAgICB4ID0gcHJpdi0+dmlldy5vZmZzZXQuYmFz
ZS54ICsgcHJpdi0+dmlldy54ICsgdGlsZVdpZHRoICogY29sdW1uOworICAgIHkgPSBwcml2LT52
aWV3Lm9mZnNldC5iYXNlLnkgKyBwcml2LT52aWV3LnkgKyB0aWxlSGVpZ2h0ICogcm93OwogCiAg
ICAgaXRlbS0+dGlsZSA9IDA7CiAKLSAgICBpdGVtLT5zbW9vdGhfc2NhbGUgPSBwcml2LT52aWV3
LnRpbGUuem9vbVdlYWtTbW9vdGhTY2FsZTsKKyAgICBpdGVtLT5zbW9vdGhTY2FsZSA9IHByaXYt
PnZpZXcudGlsZS56b29tV2Vha1Ntb290aFNjYWxlOwogICAgIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9pdGVtX21vdmUoaXRlbSwgeCwgeSk7CiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X2l0ZW1fcmVzaXplKGl0ZW0sIHRpbGVXaWR0aCwgdGlsZUhlaWdodCk7CiAgICAgaWYgKCFfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKHByaXYsIGl0ZW0sIGNvbHVtbiwgcm93KSkg
ewpAQCAtNTA5LDcgKzUwOSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9pdGVtX2RlbChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2CiAKIHN0YXRpYyB2
b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Ntb290aF9zY2FsZV9zZXQoRXdrX1Rp
bGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbSwgRWluYV9Cb29sIHNtb290aFNjYWxlKQogewot
ICAgIGlmIChpdGVtLT5zbW9vdGhfc2NhbGUgPT0gc21vb3RoU2NhbGUpCisgICAgaWYgKGl0ZW0t
PnNtb290aFNjYWxlID09IHNtb290aFNjYWxlKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAo
aXRlbS0+dGlsZSkKQEAgLTU0OCwxNiArNTQ4LDE2IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfY29sc19lbmRfYWRkKEV3a19UaWxlZF9CYWNraW5nX1N0
CiAgICAgdW5zaWduZWQgaW50IGksIHJvdyA9IHJvd0xpc3QgLSBwcml2LT52aWV3Lml0ZW1zOwog
CiAgICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyssIGJhc2VDb2x1bW4rKykgewotICAgICAg
ICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdDsKKyAgICAgICAgRXdrX1RpbGVkX0Jh
Y2tpbmdfU3RvcmVfSXRlbSogaXRlbTsKIAotICAgICAgICBpdCA9IF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9pdGVtX2FkZChwcml2LCBiYXNlQ29sdW1uLCByb3cpOwotICAgICAgICBpZiAoIWl0
KSB7CisgICAgICAgIGl0ZW0gPSBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9hZGQocHJp
diwgYmFzZUNvbHVtbiwgcm93KTsKKyAgICAgICAgaWYgKCFpdGVtKSB7CiAgICAgICAgICAgICBD
UklUSUNBTCgiZmFpbGVkIHRvIGFkZCBjb2x1bW4gJXUgb2YgJXUgaW4gcm93ICV1LiIsIGksIGNv
dW50LCByb3cpOwogICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfY29s
c19lbmRfZGVsKHByaXYsIHJvd0xpc3QsIGkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICB9CiAKLSAgICAgICAgKnJvd0xpc3QgPSBlaW5hX2lubGlzdF9hcHBlbmQoKnJvd0xp
c3QsIEVJTkFfSU5MSVNUX0dFVChpdCkpOworICAgICAgICAqcm93TGlzdCA9IGVpbmFfaW5saXN0
X2FwcGVuZCgqcm93TGlzdCwgRUlOQV9JTkxJU1RfR0VUKGl0ZW0pKTsKICAgICB9CiAgICAgcmV0
dXJuIHRydWU7CiB9CkBAIC01OTEsNyArNTkxLDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9i
YWNraW5nX3N0b3JlX3ZpZXdfcm93c19hbGxfZGVsKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0QK
IAogICAgIGZyZWUocHJpdi0+dmlldy5pdGVtcyk7CiAgICAgcHJpdi0+dmlldy5pdGVtcyA9IDA7
Ci0gICAgcHJpdi0+dmlldy5jb2xzID0gMDsKKyAgICBwcml2LT52aWV3LmNvbHVtbnMgPSAwOwog
ICAgIHByaXYtPnZpZXcucm93cyA9IDA7CiB9CiAKQEAgLTYwMCw3ICs2MDAsNyBAQCBzdGF0aWMg
dm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVuZGVyKHZvaWQqIGRhdGEsIEV3a19UaWxl
KiB0aWxlLCBjb25zdCBFaQogICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYg
PSBzdGF0aWNfY2FzdDxFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKj4oZGF0YSk7CiAKICAg
ICBJTkYoIlRPRE8gJXAgKHZpc2libGU/ICVkKSBbJWx1LCVsdV0gJWQsJWQgKyAlZHglZCIsCi0g
ICAgICAgIHRpbGUsIHRpbGUtPnZpc2libGUsIHRpbGUtPmNvbCwgdGlsZS0+cm93LCBhcmVhLT54
LCBhcmVhLT55LCBhcmVhLT53LCBhcmVhLT5oKTsKKyAgICAgICAgdGlsZSwgdGlsZS0+dmlzaWJs
ZSwgdGlsZS0+Y29sdW1uLCB0aWxlLT5yb3csIGFyZWEtPngsIGFyZWEtPnksIGFyZWEtPncsIGFy
ZWEtPmgpOwogCiAgICAgaWYgKCF0aWxlLT52aXNpYmxlKQogICAgICAgICByZXR1cm47CkBAIC02
NTcsNyArNjU3LDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX21lbV9k
YmcoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdikKICAgICBydW4rKzsKIAogICAg
IHByaW50ZigiXG4tLS0gQkVHSU4gREVCVUcgVElMRUQgQkFDS0lORyBTVE9SRSBNRU1PUlkgWyVk
XSAtLVxuIgotICAgICAgICAgICAidD0lMC4yZiwgb2JqPSVwLCBwcml2PSVwLCB2aWV3Lml0ZW1z
PSVwLCBtYXRyaXg9JXBcbiIsCisgICAgICAgICAgICJ0aWxlPSUwLjJmLCBvYmo9JXAsIHByaXY9
JXAsIHZpZXcuaXRlbXM9JXAsIG1hdHJpeD0lcFxuIiwKICAgICAgICAgICAgcnVuLCBlY29yZV9s
b29wX3RpbWVfZ2V0KCksCiAgICAgICAgICAgIHByaXYtPnNlbGYsIHByaXYsIHByaXYtPnZpZXcu
aXRlbXMsIHByaXYtPm1vZGVsLm1hdHJpeCk7CiAKQEAgLTY2OSwxMyArNjY5LDEzIEBAIHN0YXRp
YyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9tZW1fZGJnKEV3a19UaWxlZF9CYWNraW5n
X1N0b3JlX0RhdGEqIHByaXYpCiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3NpZ191c3Iodm9pZCogZGF0YSwgaW50IHR5cGUsIHZvaWQqIGV2ZW50KQogewotICAg
IEVjb3JlX0V2ZW50X1NpZ25hbF9Vc2VyKiBzaWcgPSAoRWNvcmVfRXZlbnRfU2lnbmFsX1VzZXIq
KWV2ZW50OworICAgIEVjb3JlX0V2ZW50X1NpZ25hbF9Vc2VyKiBzaWduYWxVc2VyID0gKEVjb3Jl
X0V2ZW50X1NpZ25hbF9Vc2VyKilldmVudDsKICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9E
YXRhKiBwcml2ID0gKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqKWRhdGE7CiAKLSAgICBp
ZiAoc2lnLT5udW1iZXIgPT0gMikgewotICAgICAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRp
bGllVW51c2VkQ2FjaGU7Ci0gICAgICAgIHRpbGllVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9tYXRy
aXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgpOwotICAgICAgICBld2tfdGls
ZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0aWxpZVVudXNlZENhY2hlKTsKKyAgICBpZiAoc2ln
bmFsVXNlci0+bnVtYmVyID09IDIpIHsKKyAgICAgICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0
aWxlVW51c2VkQ2FjaGU7CisgICAgICAgIHRpbGVVbnVzZWRDYWNoZSA9IGV3a190aWxlX21hdHJp
eF91bnVzZWRfY2FjaGVfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7CisgICAgICAgIGV3a190aWxl
X3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGVVbnVzZWRDYWNoZSk7CiAgICAgfQogCiAgICAg
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfZGJnKHByaXYpOwpAQCAtNjk4LDggKzY5OCw4
IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9hZGQoRXZhc19P
YmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKICAgICBwcml2LT52aWV3LnRpbGUuem9vbSA9IDEuMDsK
ICAgICBwcml2LT52aWV3LnRpbGUud2lkdGggPSBkZWZhdWx0VGlsZVdpZHRoOwogICAgIHByaXYt
PnZpZXcudGlsZS5oZWlnaHQgPSBkZWZhdWx0VGlsZUhlaWd0aDsKLSAgICBwcml2LT52aWV3Lm9m
ZnNldC5jdXIueCA9IDA7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgPSAwOworICAgIHBy
aXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCA9IDA7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3Vy
cmVudC55ID0gMDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueCA9IDA7CiAgICAgcHJpdi0+
dmlldy5vZmZzZXQub2xkLnkgPSAwOwogICAgIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCA9IDA7
CkBAIC03MzQsNyArNzM0LDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3NtYXJ0X2FkZChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlKQogICAgIGV2YXNfb2JqZWN0
X2NsaXBfc2V0KHByaXYtPmNvbnRlbnRzQ2xpcHBlciwgcHJpdi0+YmFzZS5jbGlwcGVyKTsKIAog
I2lmZGVmIERFQlVHX01FTV9MRUFLUwotICAgIHByaXYtPnNpZ191c3IgPSBlY29yZV9ldmVudF9o
YW5kbGVyX2FkZAorICAgIHByaXYtPnNpZ25hbFVzZXIgPSBlY29yZV9ldmVudF9oYW5kbGVyX2Fk
ZAogICAgICAgICAgICAgICAgICAgICAgICAgKEVDT1JFX0VWRU5UX1NJR05BTF9VU0VSLCBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfc2lnX3VzciwgcHJpdik7CiAjZW5kaWYKIH0KQEAgLTc0Miw3
ICs3NDIsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRk
KEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUpCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfc21hcnRfZGVsKEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUpCiB7CiAg
ICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2KTsKLSAgICBE
QkcoImV3a0JhY2tpbmdTdG9yZSVwIiwgZXdrQmFja2luZ1N0b3JlKTsKKyAgICBEQkcoImV3a0Jh
Y2tpbmdTdG9yZT0lcCIsIGV3a0JhY2tpbmdTdG9yZSk7CiAgICAgRXdrX1RpbGVfVW51c2VkX0Nh
Y2hlKiB0aWxlVW51c2VkQ2FjaGU7CiAKICAgICB0aWxlVW51c2VkQ2FjaGUgPSBld2tfdGlsZV9t
YXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgpOwpAQCAtNzc0LDcgKzc3
NCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9kZWwoRXZh
c19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKIAogc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3NtYXJ0X21vdmUoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgRXZhc19D
b29yZCB4LCBFdmFzX0Nvb3JkIHkpCiB7Ci0gICAgREJHKCJld2tCYWNraW5nU3RvcmUlcCwgbmV3
IHBvczogJWR4JWQiLCBld2tCYWNraW5nU3RvcmUsIHgsIHkpOworICAgIERCRygiZXdrQmFja2lu
Z1N0b3JlPSVwLCBuZXcgcG9zOiAlZHglZCIsIGV3a0JhY2tpbmdTdG9yZSwgeCwgeSk7CiAKICAg
ICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUsIHByaXYpOwogCkBAIC03
OTAsNyArNzkwLDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0
X21vdmUoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgRXYKIAogc3RhdGljIHZvaWQgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X3Jlc2l6ZShFdmFzX09iamVjdCogZXdrQmFja2lu
Z1N0b3JlLCBFdmFzX0Nvb3JkIHdpZHRoLCBFdmFzX0Nvb3JkIGhlaWdodCkKIHsKLSAgICBEQkco
ImV3a0JhY2tpbmdTdG9yZSVwLCBuZXcgc2l6ZTogJWR4JWQiLCBld2tCYWNraW5nU3RvcmUsIHdp
ZHRoLCBoZWlnaHQpOworICAgIERCRygiZXdrQmFja2luZ1N0b3JlPSVwLCBuZXcgc2l6ZTogJWR4
JWQiLCBld2tCYWNraW5nU3RvcmUsIHdpZHRoLCBoZWlnaHQpOwogCiAgICAgUFJJVl9EQVRBX0dF
VF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2KTsKIApAQCAtODI0LDE4ICs4MjQsMTgg
QEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2hpZGUoRXZhc19P
YmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9yZWNhbGNfcmVuZGVyZXJzKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYs
IEV2YXNfQ29vcmQgd2lkdGgsIEV2YXNfQ29vcmQgaGVpZ2h0LCBFdmFzX0Nvb3JkIHRpbGVXaWR0
aCwgRXZhc19Db29yZCB0aWxlSGVpZ2h0KQogewogICAgIGxvbmcgY29sdW1ucywgcm93cywgb2xk
Um93cywgb2xkQ29sczsKLSAgICBJTkYoImV3a0JhY2tpbmdTdG9yZSVwLCBuZXcgc2l6ZTogJWR4
JWQiLCBwcml2LT5zZWxmLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICBJTkYoImV3a0JhY2tpbmdTdG9y
ZT0lcCwgbmV3IHNpemU6ICVkeCVkIiwgcHJpdi0+c2VsZiwgd2lkdGgsIGhlaWdodCk7CiAKICAg
ICBjb2x1bW5zID0gMSArIHN0YXRpY19jYXN0PGludD4oY2VpbCh3aWR0aCAvIHN0YXRpY19jYXN0
PGZsb2F0Pih0aWxlV2lkdGgpKSk7CiAgICAgcm93cyA9IDEgKyBzdGF0aWNfY2FzdDxpbnQ+KGNl
aWwoaGVpZ2h0IC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVIZWlnaHQpKSk7CiAKLSAgICBJTkYo
ImV3a0JhY2tpbmdTdG9yZSVwIG5ldyBncmlkIHNpemUgY29sczogJWxkLCByb3dzOiAlbGQsIHdh
cyAlbGQsICVsZCIsCi0gICAgICAgIHByaXYtPnNlbGYsIGNvbHVtbnMsIHJvd3MsIHByaXYtPnZp
ZXcuY29scywgcHJpdi0+dmlldy5yb3dzKTsKKyAgICBJTkYoImV3a0JhY2tpbmdTdG9yZT0lcCBu
ZXcgZ3JpZCBzaXplIGNvbHVtbnM6ICVsZCwgcm93czogJWxkLCB3YXMgJWxkLCAlbGQiLAorICAg
ICAgICBwcml2LT5zZWxmLCBjb2x1bW5zLCByb3dzLCBwcml2LT52aWV3LmNvbHVtbnMsIHByaXYt
PnZpZXcucm93cyk7CiAKLSAgICBpZiAocHJpdi0+dmlldy5jb2xzID09IGNvbHVtbnMgJiYgcHJp
di0+dmlldy5yb3dzID09IHJvd3MpCisgICAgaWYgKHByaXYtPnZpZXcuY29sdW1ucyA9PSBjb2x1
bW5zICYmIHByaXYtPnZpZXcucm93cyA9PSByb3dzKQogICAgICAgICByZXR1cm47CiAKLSAgICBv
bGRDb2xzID0gcHJpdi0+dmlldy5jb2xzOworICAgIG9sZENvbHMgPSBwcml2LT52aWV3LmNvbHVt
bnM7CiAgICAgb2xkUm93cyA9IHByaXYtPnZpZXcucm93czsKIAogICAgIGlmIChyb3dzIDwgb2xk
Um93cykgewpAQCAtODUxLDE0ICs4NTEsMTQgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3JlY2FsY19yZW5kZXJlcnMoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGEKIAog
ICAgIHByaXYtPnZpZXcuaXRlbXMgPSBzdGF0aWNfY2FzdDxFaW5hX0lubGlzdCoqPihuZXdJdGVt
cyk7CiAgICAgcHJpdi0+dmlldy5yb3dzID0gcm93czsKLSAgICBwcml2LT52aWV3LmNvbHMgPSBj
b2x1bW5zOworICAgIHByaXYtPnZpZXcuY29sdW1ucyA9IGNvbHVtbnM7CiAgICAgaWYgKHJvd3Mg
PiBvbGRSb3dzKSB7CiAgICAgICAgIEVpbmFfSW5saXN0Kiogc3RhcnQgPSBwcml2LT52aWV3Lml0
ZW1zICsgb2xkUm93czsKICAgICAgICAgRWluYV9Jbmxpc3QqKiBlbmQgPSBwcml2LT52aWV3Lml0
ZW1zICsgcm93czsKICAgICAgICAgZm9yICg7IHN0YXJ0IDwgZW5kOyBzdGFydCsrKSB7CiAgICAg
ICAgICAgICAqc3RhcnQgPSAwOwotICAgICAgICAgICAgRWluYV9Cb29sIHIgPSBfZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfdmlld19jb2xzX2VuZF9hZGQocHJpdiwgc3RhcnQsIDAsIGNvbHVtbnMp
OwotICAgICAgICAgICAgaWYgKCFyKSB7CisgICAgICAgICAgICBFaW5hX0Jvb2wgcmVzdWx0ID0g
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfY29sc19lbmRfYWRkKHByaXYsIHN0YXJ0LCAw
LCBjb2x1bW5zKTsKKyAgICAgICAgICAgIGlmICghcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAg
Q1JJVElDQUwoImZhaWxlZCB0byBhbGxvY2F0ZSAlbGQgY29sdW1ucyIsIGNvbHVtbnMpOwogICAg
ICAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Jvd3NfcmFuZ2VfZGVs
KHByaXYsIHByaXYtPnZpZXcuaXRlbXMgKyBvbGRSb3dzLCBzdGFydCk7CiAgICAgICAgICAgICAg
ICAgcHJpdi0+dmlldy5yb3dzID0gb2xkUm93czsKQEAgLTkxNCwxMSArOTE0LDExIEBAIHN0YXRp
YyBpbmxpbmUgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19kYmcoY29uc3QgRXdr
X1RpbGVkX0JhY2tpbmdfU3RvCiB7CiAgICAgRWluYV9Jbmxpc3QqKiBzdGFydCwgKiplbmQ7CiAg
ICAgcHJpbnRmKCJ0aWxlcz0lMmxkLCUybGQgIG1vZGVsPSUybGQsJTJsZCBbJWR4JWRdIGJhc2U9
JSszbGQsJSs0bGQgb2Zmc2V0PSUrNGQsJSs0ZCBvbGQ9JSs0ZCwlKzRkIGJhc2U9JSszZCwlKzNk
XG4iLAotICAgICAgICAgICBwcml2LT52aWV3LmNvbHMsIHByaXYtPnZpZXcucm93cywKKyAgICAg
ICAgICAgcHJpdi0+dmlldy5jb2x1bW5zLCBwcml2LT52aWV3LnJvd3MsCiAgICAgICAgICAgIHBy
aXYtPm1vZGVsLmN1cnJlbnQuY29sdW1ucywgcHJpdi0+bW9kZWwuY3VycmVudC5yb3dzLAogICAg
ICAgICAgICBwcml2LT5tb2RlbC53aWR0aCwgcHJpdi0+bW9kZWwuaGVpZ2h0LAogICAgICAgICAg
ICBwcml2LT5tb2RlbC5iYXNlLmNvbHVtbiwgcHJpdi0+bW9kZWwuYmFzZS5yb3csCi0gICAgICAg
ICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54LCBwcml2LT52aWV3Lm9mZnNldC5jdXIueSwKKyAg
ICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54LCBwcml2LT52aWV3Lm9mZnNldC5j
dXJyZW50LnksCiAgICAgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54LCBwcml2LT52aWV3
Lm9mZnNldC5vbGQueSwKICAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54LCBwcml2
LT52aWV3Lm9mZnNldC5iYXNlLnkpOwogCkBAIC05MzMsNyArOTMzLDcgQEAgc3RhdGljIGlubGlu
ZSB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X2RiZyhjb25zdCBFd2tfVGlsZWRf
QmFja2luZ19TdG8KICAgICAgICAgICAgIGlmICghaXRlbS0+dGlsZSkKICAgICAgICAgICAgICAg
ICBwcmludGYoIiAgICAgICAgICAgIDsiKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBwcmludGYoIiU4cCAlbHUsJWx1OyIsIGl0ZW0tPnRpbGUsIGl0ZW0tPnRpbGUtPmNvbCwg
aXRlbS0+dGlsZS0+cm93KTsKKyAgICAgICAgICAgICAgICBwcmludGYoIiU4cCAlbHUsJWx1OyIs
IGl0ZW0tPnRpbGUsIGl0ZW0tPnRpbGUtPmNvbHVtbiwgaXRlbS0+dGlsZS0+cm93KTsKICAgICAg
ICAgfQogICAgICAgICBwcmludGYoIlxuIik7CiAgICAgfQpAQCAtOTcxLDcgKzk3MSw3IEBAIHN0
YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBfdXAoRXdrX1RpbGVk
X0JhY2tpbmdfU3RvcmVfRGF0YSoKICAgICAgICAgRWluYV9Jbmxpc3QqIHRlbXAgPSAqaXRlcmF0
b3JTdGFydDsKICAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbTsKICAg
ICAgICAgRXZhc19Db29yZCB0aWxlUG9zaXRpb25YID0gb3JpZ2luWDsKLSAgICAgICAgaW50IGNv
dW50MSA9IDA7CisgICAgICAgIGludCBjb2x1bW4gPSAwOwogCiAgICAgICAgIGZvciAoaXRlcmF0
b3JMaXN0ID0gaXRlcmF0b3JTdGFydDsgaXRlcmF0b3JMaXN0IDwgaXRlcmF0b3JFbmQ7IGl0ZXJh
dG9yTGlzdCsrKQogICAgICAgICAgICAgKml0ZXJhdG9yTGlzdCA9ICooaXRlcmF0b3JMaXN0ICsg
MSk7CkBAIC05ODEsOCArOTgxLDggQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX3ZpZXdfd3JhcF91cChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKgogICAgICAgICBF
SU5BX0lOTElTVF9GT1JFQUNIKHRlbXAsIGl0ZW0pIHsKICAgICAgICAgICAgIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXRlbSwgdGlsZVBvc2l0aW9uWCwgdGlsZVBvc2l0aW9u
WSk7CiAgICAgICAgICAgICB0aWxlUG9zaXRpb25YICs9IHRpbGVXaWR0aDsKLSAgICAgICAgICAg
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2ZpbGwocHJpdiwgaXRlbSwgY291bnQxLCBs
YXN0Um93KTsKLSAgICAgICAgICAgIGNvdW50MSsrOworICAgICAgICAgICAgX2V3a190aWxlZF9i
YWNraW5nX3N0b3JlX2l0ZW1fZmlsbChwcml2LCBpdGVtLCBjb2x1bW4sIGxhc3RSb3cpOworICAg
ICAgICAgICAgY29sdW1uKys7CiAgICAgICAgIH0KICAgICAgICAgdGlsZVBvc2l0aW9uWSArPSB0
aWxlSGVpZ2h0OwogICAgIH0KQEAgLTEwMTksNyArMTAxOSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBfZG93bihFd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9EYXRhCiAgICAgICAgIEVpbmFfSW5saXN0KiB0ZW1wID0gKml0ZXJhdG9yU3RhcnQ7CiAgICAg
ICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0ZW07CiAgICAgICAgIEV2YXNfQ29v
cmQgdGlsZVBvc2l0aW9uWCA9IG9yaWdpblg7Ci0gICAgICAgIGludCBjb3VudDEgPSAwOworICAg
ICAgICBpbnQgY29sdW1uID0gMDsKIAogICAgICAgICBmb3IgKGl0ZXJhdG9yTGlzdCA9IGl0ZXJh
dG9yU3RhcnQ7IGl0ZXJhdG9yTGlzdCA+IGl0ZXJhdG9yRW5kOyBpdGVyYXRvckxpc3QtLSkKICAg
ICAgICAgICAgICppdGVyYXRvckxpc3QgPSAqKGl0ZXJhdG9yTGlzdCAtIDEpOwpAQCAtMTAyOSw4
ICsxMDI5LDggQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3Jh
cF9kb3duKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKICAgICAgICAgRUlOQV9JTkxJU1Rf
Rk9SRUFDSCh0ZW1wLCBpdGVtKSB7CiAgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfaXRlbV9tb3ZlKGl0ZW0sIHRpbGVQb3NpdGlvblgsIHRpbGVQb3NpdGlvblkpOwogICAgICAg
ICAgICAgdGlsZVBvc2l0aW9uWCArPSB0aWxlV2lkdGg7Ci0gICAgICAgICAgICBfZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKHByaXYsIGl0ZW0sIGNvdW50MSwgMCk7Ci0gICAgICAg
ICAgICBjb3VudDErKzsKKyAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVt
X2ZpbGwocHJpdiwgaXRlbSwgY29sdW1uLCAwKTsKKyAgICAgICAgICAgIGNvbHVtbisrOwogICAg
ICAgICB9CiAgICAgICAgIHRpbGVQb3NpdGlvblkgLT0gdGlsZUhlaWdodDsKICAgICB9CkBAIC0x
MDQxLDIyICsxMDQxLDIyIEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92
aWV3X3dyYXBfZG93bihFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAgKiBAaW50ZXJuYWwK
ICAqIE1vdmUgbGVmdC1tb3N0IChmaXJzdCkgY29sdW1uIHJpZ2h0IGFzIGxhc3QgKHJpZ2h0LW1v
c3QpLgogICoKLSAqIFRoZSBmaW5hbCByZXN1bHQgaXMgdmlzdWFsbHkgdGhlIHNhbWUsIGJ1dCBs
b2dpY2FsbHkgdGhlIGZpcnN0IGNvbCB0aGF0CisgKiBUaGUgZmluYWwgcmVzdWx0IGlzIHZpc3Vh
bGx5IHRoZSBzYW1lLCBidXQgbG9naWNhbGx5IHRoZSBmaXJzdCBjb2x1bW4gdGhhdAogICogd2Vu
dCBvdXQgb2Ygc2NyZWVuIGlzIG5vdyBhdCBsYXN0IGFuZCBmaWxsZWQgd2l0aCBuZXcgbW9kZWwg
aXRlbXMuCiAgKgogICogVGhpcyBpcyB3b3J0aCBqdXN0IHdoZW4gQGEgY291bnQgaXMgc21hbGxl
ciB0aGFuIEBjCi0gKiBwcml2LT52aWV3LmNvbHMsIGFmdGVyIHRoYXQgb25lIGlzIHJlZmlsbGlu
ZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CisgKiBwcml2LT52aWV3LmNvbHVtbnMsIGFmdGVyIHRo
YXQgb25lIGlzIHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CiAgKiBpcyBiZXR0ZXIg
dG8gdHJpZ2dlciBmdWxsIHJlZmlsbC4KICAqCiAgKiBAcGFyYW0gY291bnQgdGhlIG51bWJlciBv
ZiB0aW1lcyB0byByZXBlYXQgdGhlIHByb2Nlc3MuCiAgKi8KIHN0YXRpYyB2b2lkIF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBfbGVmdChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9E
YXRhKiBwcml2LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSwgdW5zaWduZWQgaW50IGNvdW50
KQogewotICAgIHVuc2lnbmVkIGludCByb3csIGxhc3RDb2x1bW4gPSBwcml2LT52aWV3LmNvbHMg
LSAxOworICAgIHVuc2lnbmVkIGludCByb3csIGxhc3RDb2x1bW4gPSBwcml2LT52aWV3LmNvbHVt
bnMgLSAxOwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoID0gcHJpdi0+dmlldy50aWxlLndpZHRo
OwogICAgIEV2YXNfQ29vcmQgdGlsZUhlaWdodCA9IHByaXYtPnZpZXcudGlsZS5oZWlnaHQ7CiAg
ICAgRXZhc19Db29yZCBvZmZzZXRYID0gcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ICsgY291bnQg
KiB0aWxlV2lkdGg7Ci0gICAgRXZhc19Db29yZCBveSA9IHkgKyBwcml2LT52aWV3Lm9mZnNldC5i
YXNlLnk7CisgICAgRXZhc19Db29yZCBvZmZzZXRZID0geSArIHByaXYtPnZpZXcub2Zmc2V0LmJh
c2UueTsKICAgICBFaW5hX0lubGlzdCoqIGl0ZXJhdG9yOwogICAgIEVpbmFfSW5saXN0KiogaXRl
cmF0b3JFbmQ7CiAgICAgdW5zaWduZWQgaW50IGJhc2VDb2x1bW4gPSBsYXN0Q29sdW1uIC0gY291
bnQgKyAxOwpAQCAtMTA3NywxMCArMTA3NywxMCBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfdmlld193cmFwX2xlZnQoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YQog
ICAgICAgICAgICAgaXQgPSBFSU5BX0lOTElTVF9DT05UQUlORVJfR0VUKCppdGVyYXRvciwgRXdr
X1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSk7CiAgICAgICAgICAgICAqaXRlcmF0b3IgPSBlaW5h
X2lubGlzdF9kZW1vdGUoKml0ZXJhdG9yLCAqaXRlcmF0b3IpOwogCi0gICAgICAgICAgICBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0LCB0aWxlUG9zaXRpb25YLCBveSk7Cisg
ICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0LCB0aWxlUG9z
aXRpb25YLCBvZmZzZXRZKTsKICAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9p
dGVtX2ZpbGwocHJpdiwgaXQsIGNvbHVtbiwgcm93KTsKICAgICAgICAgfQotICAgICAgICBveSAr
PSB0aWxlSGVpZ2h0OworICAgICAgICBvZmZzZXRZICs9IHRpbGVIZWlnaHQ7CiAgICAgfQogCiAg
ICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ID0gb2Zmc2V0WDsKQEAgLTEwOTAsMTEgKzEwOTAs
MTEgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF9sZWZ0
KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKICAqIEBpbnRlcm5hbAogICogTW92ZSByaWdo
dC1tb3N0IChsYXN0KSBjb2x1bW4gbGVmdCBhcyBmaXJzdCAobGVmdC1tb3N0KS4KICAqCi0gKiBU
aGUgZmluYWwgcmVzdWx0IGlzIHZpc3VhbGx5IHRoZSBzYW1lLCBidXQgbG9naWNhbGx5IHRoZSBs
YXN0IGNvbCB0aGF0CisgKiBUaGUgZmluYWwgcmVzdWx0IGlzIHZpc3VhbGx5IHRoZSBzYW1lLCBi
dXQgbG9naWNhbGx5IHRoZSBsYXN0IGNvbHVtbiB0aGF0CiAgKiB3ZW50IG91dCBvZiBzY3JlZW4g
aXMgbm93IGF0IGZpcnN0IGFuZCBmaWxsZWQgd2l0aCBuZXcgbW9kZWwgaXRlbXMuCiAgKgogICog
VGhpcyBpcyB3b3J0aCBqdXN0IHdoZW4gQGEgY291bnQgaXMgc21hbGxlciB0aGFuIEBjCi0gKiBw
cml2LT52aWV3LmNvbHMsIGFmdGVyIHRoYXQgb25lIGlzIHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0
cml4IHNvIGl0CisgKiBwcml2LT52aWV3LmNvbHVtbnMsIGFmdGVyIHRoYXQgb25lIGlzIHJlZmls
bGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CiAgKiBpcyBiZXR0ZXIgdG8gdHJpZ2dlciBmdWxs
IHJlZmlsbC4KICAqCiAgKiBAcGFyYW0gY291bnQgdGhlIG51bWJlciBvZiB0aW1lcyB0byByZXBl
YXQgdGhlIHByb2Nlc3MuCkBAIC0xMTM4LDcgKzExMzgsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfdmlld19yZWZpbGwoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0
YSogcAogewogICAgIEVpbmFfSW5saXN0KiogaXRlcmF0b3IsICoqaXRlcmF0b3JFbmQ7CiAgICAg
RXZhc19Db29yZCBiYXNlVGlsZVBvc2l0aW9uWCwgdGlsZVBvc2l0aW9uWSwgdGlsZVdpZHRoLCB0
aWxlSGVpZ2h0OwotICAgIHVuc2lnbmVkIGludCByOworICAgIHVuc2lnbmVkIGludCByb3c7CiAK
ICAgICBldmFzX29iamVjdF9tb3ZlKHByaXYtPmJhc2UuY2xpcHBlciwgeCwgeSk7CiAKQEAgLTEx
NTAsMTkgKzExNTAsMTkgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Zp
ZXdfcmVmaWxsKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHAKIAogICAgIGl0ZXJhdG9y
ID0gcHJpdi0+dmlldy5pdGVtczsKICAgICBpdGVyYXRvckVuZCA9IGl0ZXJhdG9yICsgcHJpdi0+
dmlldy5yb3dzOwotICAgIHIgPSAwOworICAgIHJvdyA9IDA7CiAKICAgICBwcml2LT5tb2RlbC5i
YXNlLmNvbHVtbiAtPSBzdGVwWDsKICAgICBwcml2LT5tb2RlbC5iYXNlLnJvdyAtPSBzdGVwWTsK
IAotICAgIGZvciAoOyBpdGVyYXRvciA8IGl0ZXJhdG9yRW5kOyBpdGVyYXRvcisrLCByKyspIHsK
KyAgICBmb3IgKDsgaXRlcmF0b3IgPCBpdGVyYXRvckVuZDsgaXRlcmF0b3IrKywgcm93KyspIHsK
ICAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbTsKICAgICAgICAgRXZh
c19Db29yZCBuZXdUaWxlUG9zaXRpb25YID0gYmFzZVRpbGVQb3NpdGlvblg7Ci0gICAgICAgIHVu
c2lnbmVkIGludCBjb3VudCA9IDA7CisgICAgICAgIHVuc2lnbmVkIGludCBjb2x1bW4gPSAwOwog
ICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKCppdGVyYXRvciwgaXRlbSkgewotICAgICAgICAg
ICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fZmlsbChwcml2LCBpdGVtLCBjb3VudCwg
cik7CisgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKHByaXYs
IGl0ZW0sIGNvbHVtbiwgcm93KTsKICAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9pdGVtX21vdmUoaXRlbSwgbmV3VGlsZVBvc2l0aW9uWCwgdGlsZVBvc2l0aW9uWSk7Ci0gICAg
ICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgY29sdW1uKys7CiAgICAgICAgICAgICBuZXdU
aWxlUG9zaXRpb25YICs9IHRpbGVXaWR0aDsKICAgICAgICAgfQogICAgICAgICB0aWxlUG9zaXRp
b25ZICs9IHRpbGVIZWlnaHQ7CkBAIC0xMTg1LDExICsxMTg1LDExIEBAIHN0YXRpYyB2b2lkIF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bvc19hcHBseShFd2tfVGlsZWRfQmFja2luZ19T
dG9yZV9EYXRhCiAgICAgaXRlcmF0b3IgPSBwcml2LT52aWV3Lml0ZW1zOwogICAgIGl0ZXJhdG9y
RW5kID0gaXRlcmF0b3IgKyBwcml2LT52aWV3LnJvd3M7CiAgICAgZm9yICg7IGl0ZXJhdG9yIDwg
aXRlcmF0b3JFbmQ7IGl0ZXJhdG9yKyspIHsKLSAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3Rv
cmVfSXRlbSogaXQ7Ci0gICAgICAgIEV2YXNfQ29vcmQgb3ggPSBiYXNlVGlsZVBvc2l0aW9uWDsK
LSAgICAgICAgRUlOQV9JTkxJU1RfRk9SRUFDSCgqaXRlcmF0b3IsIGl0KSB7Ci0gICAgICAgICAg
ICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0LCBveCwgYmFzZVRpbGVQb3Np
dGlvblkpOwotICAgICAgICAgICAgb3ggKz0gdGlsZVdpZHRoOworICAgICAgICBFd2tfVGlsZWRf
QmFja2luZ19TdG9yZV9JdGVtKiBpdGVtOworICAgICAgICBFdmFzX0Nvb3JkIG9mZnNldFggPSBi
YXNlVGlsZVBvc2l0aW9uWDsKKyAgICAgICAgRUlOQV9JTkxJU1RfRk9SRUFDSCgqaXRlcmF0b3Is
IGl0ZW0pIHsKKyAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUo
aXRlbSwgb2Zmc2V0WCwgYmFzZVRpbGVQb3NpdGlvblkpOworICAgICAgICAgICAgb2Zmc2V0WCAr
PSB0aWxlV2lkdGg7CiAgICAgICAgIH0KICAgICAgICAgYmFzZVRpbGVQb3NpdGlvblkgKz0gdGls
ZUhlaWdodDsKICAgICB9CkBAIC0xMTk3LDI4ICsxMTk3LDI4IEBAIHN0YXRpYyB2b2lkIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bvc19hcHBseShFd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9EYXRhCiAKIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxj
dWxhdGVfb2Zmc2V0X2ZvcmNlKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYpCiB7
Ci0gICAgRXZhc19Db29yZCBkZWx0YVggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueCAtIHByaXYt
PnZpZXcub2Zmc2V0Lm9sZC54OwotICAgIEV2YXNfQ29vcmQgZGVsdGFZID0gcHJpdi0+dmlldy5v
ZmZzZXQuY3VyLnkgLSBwcml2LT52aWV3Lm9mZnNldC5vbGQueTsKKyAgICBFdmFzX0Nvb3JkIGRl
bHRhWCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAtIHByaXYtPnZpZXcub2Zmc2V0Lm9s
ZC54OworICAgIEV2YXNfQ29vcmQgZGVsdGFZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55
IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLnk7CiAgICAgRXZhc19Db29yZCB0aWxlV2lkdGgsIHRp
bGVIZWlnaHQ7CiAgICAgaW50IHN0ZXBZLCBzdGVwWDsKIAotICAgIElORigiZXdrQmFja2luZ1N0
b3JlJXAsIG9mZnNldDogJSs0ZCwgJSs0ZCAoJSs0ZCwgJSs0ZCkiLAotICAgICAgICBwcml2LT5z
ZWxmLCBkZWx0YVgsIGRlbHRhWSwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngsIHByaXYtPnZpZXcu
b2Zmc2V0LmN1ci55KTsKKyAgICBJTkYoImV3a0JhY2tpbmdTdG9yZT0lcCwgb2Zmc2V0OiAlKzRk
LCAlKzRkICglKzRkLCAlKzRkKSIsCisgICAgICAgIHByaXYtPnNlbGYsIGRlbHRhWCwgZGVsdGFZ
LCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LngsIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQu
eSk7CiAKICAgICB0aWxlV2lkdGggPSBwcml2LT52aWV3LnRpbGUud2lkdGg7CiAgICAgdGlsZUhl
aWdodCA9IHByaXYtPnZpZXcudGlsZS5oZWlnaHQ7CiAKLSAgICBsb25nIG5ld0NvbHVtbiA9IC1w
cml2LT52aWV3Lm9mZnNldC5jdXIueCAvIHRpbGVXaWR0aDsKKyAgICBsb25nIG5ld0NvbHVtbiA9
IC1wcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggLyB0aWxlV2lkdGg7CiAgICAgc3RlcFggPSBw
cml2LT5tb2RlbC5iYXNlLmNvbHVtbiAtIG5ld0NvbHVtbjsKLSAgICBsb25nIG5ld1JvdyA9IC1w
cml2LT52aWV3Lm9mZnNldC5jdXIueSAvIHRpbGVIZWlnaHQ7CisgICAgbG9uZyBuZXdSb3cgPSAt
cHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55IC8gdGlsZUhlaWdodDsKICAgICBzdGVwWSA9IHBy
aXYtPm1vZGVsLmJhc2Uucm93IC0gbmV3Um93OwogCi0gICAgcHJpdi0+dmlldy5vZmZzZXQub2xk
LnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueDsKLSAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQu
eSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OworICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54
ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54OworICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9s
ZC55ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55OwogICAgIGV2YXNfb2JqZWN0X21vdmUo
CiAgICAgICAgIHByaXYtPmNvbnRlbnRzQ2xpcHBlciwKLSAgICAgICAgcHJpdi0+dmlldy5vZmZz
ZXQuY3VyLnggKyBwcml2LT52aWV3LngsCi0gICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55
ICsgcHJpdi0+dmlldy55KTsKKyAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ICsg
cHJpdi0+dmlldy54LAorICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgKyBwcml2
LT52aWV3LnkpOwogCiAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ICs9IGRlbHRhWCAtIHN0
ZXBYICogdGlsZVdpZHRoOwogICAgIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueSArPSBkZWx0YVkg
LSBzdGVwWSAqIHRpbGVIZWlnaHQ7CkBAIC0xMjI5LDEzICsxMjI5LDEzIEBAIHN0YXRpYyB2b2lk
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGVfb2Zmc2V0X2ZvcmNlKEV3
a19UaWxlZF9CYWNrCiAKIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFy
dF9jYWxjdWxhdGVfb2Zmc2V0KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYsIEV2
YXNfQ29vcmQgeCwgRXZhc19Db29yZCB5KQogewotICAgIEV2YXNfQ29vcmQgZGVsdGFYID0gcHJp
di0+dmlldy5vZmZzZXQuY3VyLnggLSBwcml2LT52aWV3Lm9mZnNldC5vbGQueDsKLSAgICBFdmFz
X0Nvb3JkIGRlbHRhWSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55IC0gcHJpdi0+dmlldy5vZmZz
ZXQub2xkLnk7CisgICAgRXZhc19Db29yZCBkZWx0YVggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJy
ZW50LnggLSBwcml2LT52aWV3Lm9mZnNldC5vbGQueDsKKyAgICBFdmFzX0Nvb3JkIGRlbHRhWSA9
IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55Owog
ICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoLCB0aWxlSGVpZ2h0OwogICAgIGludCBzdGVwWSwgc3Rl
cFg7CiAKLSAgICBJTkYoImV3a0JhY2tpbmdTdG9yZSVwLCBvZmZzZXQ6ICUrNGQsICUrNGQgKCUr
NGQsICUrNGQpIiwKLSAgICAgICAgcHJpdi0+c2VsZiwgZGVsdGFYLCBkZWx0YVksIHByaXYtPnZp
ZXcub2Zmc2V0LmN1ci54LCBwcml2LT52aWV3Lm9mZnNldC5jdXIueSk7CisgICAgSU5GKCJld2tC
YWNraW5nU3RvcmU9JXAsIG9mZnNldDogJSs0ZCwgJSs0ZCAoJSs0ZCwgJSs0ZCkiLAorICAgICAg
ICBwcml2LT5zZWxmLCBkZWx0YVgsIGRlbHRhWSwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54
LCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkpOwogCiAgICAgaWYgKCFkZWx0YVggJiYgIWRl
bHRhWSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTI0MywyMCArMTI0MywyMCBAQCBzdGF0aWMgdm9p
ZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfY2FsY3VsYXRlX29mZnNldChFd2tfVGls
ZWRfQmFja2luZ19TdAogICAgIHRpbGVXaWR0aCA9IHByaXYtPnZpZXcudGlsZS53aWR0aDsKICAg
ICB0aWxlSGVpZ2h0ID0gcHJpdi0+dmlldy50aWxlLmhlaWdodDsKIAotICAgIGxvbmcgbmV3Q29s
ID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci54IC8gdGlsZVdpZHRoOworICAgIGxvbmcgbmV3Q29s
ID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAvIHRpbGVXaWR0aDsKICAgICBzdGVwWCA9
IHByaXYtPm1vZGVsLmJhc2UuY29sdW1uIC0gbmV3Q29sOwotICAgIGxvbmcgbmV3Um93ID0gLXBy
aXYtPnZpZXcub2Zmc2V0LmN1ci55IC8gdGlsZUhlaWdodDsKKyAgICBsb25nIG5ld1JvdyA9IC1w
cml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgLyB0aWxlSGVpZ2h0OwogICAgIHN0ZXBZID0gcHJp
di0+bW9kZWwuYmFzZS5yb3cgLSBuZXdSb3c7CiAKLSAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQu
eCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55
ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7CisgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLngg
PSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAgcHJpdi0+dmlldy5vZmZzZXQub2xk
LnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAgICAgZXZhc19vYmplY3RfbW92ZSgK
ICAgICAgICAgcHJpdi0+Y29udGVudHNDbGlwcGVyLAotICAgICAgICBwcml2LT52aWV3Lm9mZnNl
dC5jdXIueCArIHByaXYtPnZpZXcueCwKLSAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkg
KyBwcml2LT52aWV3LnkpOworICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggKyBw
cml2LT52aWV3LngsCisgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSArIHByaXYt
PnZpZXcueSk7CiAKLSAgICBpZiAoKHN0ZXBYIDwgMCAmJiBzdGVwWCA8PSAtcHJpdi0+dmlldy5j
b2xzKQotICAgICAgICB8fCAoc3RlcFggPiAwICYmIHN0ZXBYID49IHByaXYtPnZpZXcuY29scykK
KyAgICBpZiAoKHN0ZXBYIDwgMCAmJiBzdGVwWCA8PSAtcHJpdi0+dmlldy5jb2x1bW5zKQorICAg
ICAgICB8fCAoc3RlcFggPiAwICYmIHN0ZXBYID49IHByaXYtPnZpZXcuY29sdW1ucykKICAgICAg
ICAgfHwgKHN0ZXBZIDwgMCAmJiBzdGVwWSA8PSAtcHJpdi0+dmlldy5yb3dzKQogICAgICAgICB8
fCAoc3RlcFkgPiAwICYmIHN0ZXBZID49IHByaXYtPnZpZXcucm93cykpIHsKIApAQCAtMTI5MSw4
ICsxMjkxLDggQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2Nh
bGN1bGF0ZV9wb3MoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmUKICAgICBwcml2LT52aWV3LnkgPSB5
OwogICAgIGV2YXNfb2JqZWN0X21vdmUoCiAgICAgICAgIHByaXYtPmNvbnRlbnRzQ2xpcHBlciwK
LSAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggKyBwcml2LT52aWV3LngsCi0gICAgICAg
IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ICsgcHJpdi0+dmlldy55KTsKKyAgICAgICAgcHJpdi0+
dmlldy5vZmZzZXQuY3VycmVudC54ICsgcHJpdi0+dmlldy54LAorICAgICAgICBwcml2LT52aWV3
Lm9mZnNldC5jdXJyZW50LnkgKyBwcml2LT52aWV3LnkpOwogfQogCiBzdGF0aWMgdm9pZCBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfZmlsbF9yZW5kZXJlcnMoRXdrX1RpbGVkX0JhY2tpbmdfU3Rv
cmVfRGF0YSogcHJpdikKQEAgLTEzMTQsNyArMTMxNCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGUoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdT
dG9yCiAgICAgRXZhc19Db29yZCB4LCB5LCB3aWR0aCwgaGVpZ2h0OwogCiAgICAgZXZhc19vYmpl
Y3RfZ2VvbWV0cnlfZ2V0KGV3a0JhY2tpbmdTdG9yZSwgJngsICZ5LCAmd2lkdGgsICZoZWlnaHQp
OwotICAgIERCRygiZXdrQmFja2luZ1N0b3JlJXAgYXQgJWQsJWQgKyAlZHglZCIsIGV3a0JhY2tp
bmdTdG9yZSwgeCwgeSwgd2lkdGgsIGhlaWdodCk7CisgICAgREJHKCJld2tCYWNraW5nU3RvcmU9
JXAgYXQgJWQsJWQgKyAlZHglZCIsIGV3a0JhY2tpbmdTdG9yZSwgeCwgeSwgd2lkdGgsIGhlaWdo
dCk7CiAKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUsIHByaXYp
OwogCkBAIC0xMzgxLDEwICsxMzgxLDEwIEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9zbWFydF9jYWxjdWxhdGUoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yCiAgICAg
ICAgIHx8IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCA8PSAtIHByaXYtPnZpZXcudGlsZS53aWR0
aAogICAgICAgICB8fCBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnkgPiAwCiAgICAgICAgIHx8IHBy
aXYtPnZpZXcub2Zmc2V0LmJhc2UueSA8PSAtIHByaXYtPnZpZXcudGlsZS5oZWlnaHQpCi0gICAg
ICAgIEVSUigiaW5jb3JyZWN0IGJhc2Ugb2Zmc2V0ICUrNGQsJSs0ZCwgdGlsZT0lZHglZCwgY3Vy
PSUrNGQsJSs0ZFxuIiwKKyAgICAgICAgRVJSKCJpbmNvcnJlY3QgYmFzZSBvZmZzZXQgJSs0ZCwl
KzRkLCB0aWxlPSVkeCVkLCBjdXJyZW50PSUrNGQsJSs0ZFxuIiwKICAgICAgICAgICAgIHByaXYt
PnZpZXcub2Zmc2V0LmJhc2UueCwgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS55LAogICAgICAgICAg
ICAgcHJpdi0+dmlldy50aWxlLndpZHRoLCBwcml2LT52aWV3LnRpbGUuaGVpZ2h0LAotICAgICAg
ICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngsIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55KTsK
KyAgICAgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCwgcHJpdi0+dmlldy5vZmZz
ZXQuY3VycmVudC55KTsKIAogfQogCkBAIC0xNDQ4LDggKzE0NDgsOCBAQCBzdGF0aWMgRWluYV9C
b29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0X2ludGVy
bmFsKEV3a19UaQogICAgIGlmIChwcml2LT5yZW5kZXIuZGlzYWJsZWQpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ID0geDsKLSAgICBwcml2LT52
aWV3Lm9mZnNldC5jdXIueSA9IHk7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ID0g
eDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgPSB5OwogCiAgICAgcHJpdi0+Y2hh
bmdlZC5vZmZzZXQgPSB0cnVlOwogICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9jaGFuZ2Vk
KHByaXYpOwpAQCAtMTQ1OSwxMCArMTQ1OSwxMCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0X2ludGVybmFsKEV3a19UaQog
CiBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3Nl
dChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQg
eSkKIHsKLSAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVwLCB4PSVkLCB5PSVkIiwgZXdrQmFja2lu
Z1N0b3JlLCB4LCB5KTsKKyAgICBEQkcoImV3a0JhY2tpbmdTdG9yZT0lcCwgeD0lZCwgeT0lZCIs
IGV3a0JhY2tpbmdTdG9yZSwgeCwgeSk7CiAKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihl
d2tCYWNraW5nU3RvcmUsIHByaXYsIGZhbHNlKTsKLSAgICBpZiAoeCA9PSBwcml2LT52aWV3Lm9m
ZnNldC5jdXIueCAmJiB5ID09IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55KQorICAgIGlmICh4ID09
IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAmJiB5ID09IHByaXYtPnZpZXcub2Zmc2V0LmN1
cnJlbnQueSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gX2V3a190aWxlZF9i
YWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXRfaW50ZXJuYWwocHJpdiwgeCwgeSk7
CkBAIC0xNDcwLDIwICsxNDcwLDIwIEBAIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0KEV2YXNfT2JqZWN0KiBld2tCYWNraW5nCiAKIEVpbmFf
Qm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfYWRkKEV2YXNf
T2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIEV2YXNfQ29vcmQgZGVsdGFYLCBFdmFzX0Nvb3JkIGRl
bHRhWSkKIHsKLSAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVwLCBkZWx0YVg9JWQsIGRlbHRhWT0l
ZCIsIGV3a0JhY2tpbmdTdG9yZSwgZGVsdGFYLCBkZWx0YVkpOworICAgIERCRygiZXdrQmFja2lu
Z1N0b3JlPSVwLCBkZWx0YVg9JWQsIGRlbHRhWT0lZCIsIGV3a0JhY2tpbmdTdG9yZSwgZGVsdGFY
LCBkZWx0YVkpOwogCiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3Jl
LCBwcml2LCBmYWxzZSk7CiAgICAgaWYgKCFkZWx0YVggJiYgIWRlbHRhWSkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKICAgICByZXR1cm4gX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9m
dWxsX29mZnNldF9zZXRfaW50ZXJuYWwKLSAgICAgICAgICAgICAgIChwcml2LCBwcml2LT52aWV3
Lm9mZnNldC5jdXIueCArIGRlbHRhWCwgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgKyBkZWx0YVkp
OworICAgICAgICAgICAgICAgKHByaXYsIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCArIGRl
bHRhWCwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55ICsgZGVsdGFZKTsKIH0KIAogc3RhdGlj
IEVpbmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV9zZXRfaW50ZXJuYWwoRXdr
X1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiwgZmxvYXQqIHpvb20sIEV2YXNfQ29vcmQg
Y3VycmVudFgsIEV2YXNfQ29vcmQgY3VycmVudFksIEV2YXNfQ29vcmQqIG9mZnNldFgsIEV2YXNf
Q29vcmQqIG9mZnNldFkpCiB7Ci0gICAgKm9mZnNldFggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIu
eDsKLSAgICAqb2Zmc2V0WSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OworICAgICpvZmZzZXRY
ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54OworICAgICpvZmZzZXRZID0gcHJpdi0+dmll
dy5vZmZzZXQuY3VycmVudC55OwogCiAgICAgaWYgKGZhYnNmKHByaXYtPnZpZXcudGlsZS56b29t
IC0gKnpvb20pIDwgem9vbVN0ZXBNaW5pbXVtKSB7CiAgICAgICAgIERCRygiaWdub3JlZCBhcyB6
b29tIGRpZmZlcmVuY2UgaXMgPCAlZjogJWYiLApAQCAtMTUxNCwxMCArMTUxNCwxMCBAQCBzdGF0
aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3NldF9pbnRlcm5hbChF
d2tfVGlsZWRfQmFja2luZ19TdAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgRWlu
YV9Jbmxpc3QqKiBpdGVyYXRvciwgKippdGVyYXRvckVuZDsKLSAgICBFd2tfVGlsZWRfQmFja2lu
Z19TdG9yZV9JdGVtKiBpdDsKKyAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVt
OwogCi0gICAgRXZhc19Db29yZCBuZXdYID0gY3VycmVudFggKyAocHJpdi0+dmlldy5vZmZzZXQu
Y3VyLnggLSBjdXJyZW50WCkgKiBzY2FsZTsKLSAgICBFdmFzX0Nvb3JkIG5ld1kgPSBjdXJyZW50
WSArIChwcml2LT52aWV3Lm9mZnNldC5jdXIueSAtIGN1cnJlbnRZKSAqIHNjYWxlOworICAgIEV2
YXNfQ29vcmQgbmV3WCA9IGN1cnJlbnRYICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAt
IGN1cnJlbnRYKSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3WSA9IGN1cnJlbnRZICsgKHBy
aXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSAtIGN1cnJlbnRZKSAqIHNjYWxlOwogCiAgICAgRXZh
c19Db29yZCBtb2RlbFdpZHRoID0gcHJpdi0+bW9kZWwud2lkdGggKiBzY2FsZTsKICAgICBFdmFz
X0Nvb3JkIG1vZGVsSGVpZ2h0ID0gcHJpdi0+bW9kZWwuaGVpZ2h0ICogc2NhbGU7CkBAIC0xNTQx
LDE1ICsxNTQxLDE1IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3pvb21fc2V0X2ludGVybmFsKEV3a19UaWxlZF9CYWNraW5nX1N0CiAgICAgcHJpdi0+Y2hhbmdl
ZC5tb2RlbCA9IHRydWU7CiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2NoYW5nZWQocHJp
dik7CiAKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCA9IG5ld1g7Ci0gICAgcHJpdi0+dmll
dy5vZmZzZXQuY3VyLnkgPSBuZXdZOworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCA9
IG5ld1g7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55ID0gbmV3WTsKICAgICBwcml2
LT52aWV3Lm9mZnNldC5iYXNlLnggPSBiYXNlWDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNl
LnkgPSBiYXNlWTsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54ID0gcHJpdi0+dmlldy5v
ZmZzZXQuY3VyLng7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9m
ZnNldC5jdXIueTsKLSAgICAqb2Zmc2V0WCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAg
ICpvZmZzZXRZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7CisgICAgcHJpdi0+dmlldy5vZmZz
ZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAgcHJpdi0+dmlldy5v
ZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CisgICAgKm9mZnNldFgg
PSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAgKm9mZnNldFkgPSBwcml2LT52aWV3
Lm9mZnNldC5jdXJyZW50Lnk7CiAKICAgICBldmFzX29iamVjdF9tb3ZlKAogICAgICAgICBwcml2
LT5jb250ZW50c0NsaXBwZXIsCkBAIC0xNTY4LDkgKzE1NjgsOSBAQCBzdGF0aWMgRWluYV9Cb29s
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3NldF9pbnRlcm5hbChFd2tfVGlsZWRfQmFj
a2luZ19TdAogICAgICAgICBFdmFzX0Nvb3JkIHRpbGVQb3NpdGlvblggPSBiYXNlVGlsZVBvc2l0
aW9uWDsKICAgICAgICAgRWluYV9Jbmxpc3QqIGxzdCA9ICppdGVyYXRvcjsKIAotICAgICAgICBF
SU5BX0lOTElTVF9GT1JFQUNIKGxzdCwgaXQpIHsKLSAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9pdGVtX21vdmUoaXQsIHRpbGVQb3NpdGlvblgsIHRpbGVQb3NpdGlvblkpOwot
ICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fcmVzaXplKGl0LCB0aWxl
V2lkdGgsIHRpbGVIZWlnaHQpOworICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKGxzdCwgaXRl
bSkgeworICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fbW92ZShpdGVt
LCB0aWxlUG9zaXRpb25YLCB0aWxlUG9zaXRpb25ZKTsKKyAgICAgICAgICAgIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9pdGVtX3Jlc2l6ZShpdGVtLCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQpOwog
ICAgICAgICAgICAgdGlsZVBvc2l0aW9uWCArPSB0aWxlV2lkdGg7CiAgICAgICAgIH0KICAgICAg
ICAgdGlsZVBvc2l0aW9uWSArPSB0aWxlSGVpZ2h0OwpAQCAtMTU4MSw3ICsxNTgxLDcgQEAgc3Rh
dGljIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV9zZXRfaW50ZXJuYWwo
RXdrX1RpbGVkX0JhY2tpbmdfU3QKIAogRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3pvb21fc2V0KEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIGZsb2F0KiB6b29tLCBFdmFz
X0Nvb3JkIGN1cnJlbnRYLCBFdmFzX0Nvb3JkIGN1cnJlbnRZLCBFdmFzX0Nvb3JkKiBvZmZzZXRY
LCBFdmFzX0Nvb3JkKiBvZmZzZXRZKQogewotICAgIERCRygiZXdrQmFja2luZ1N0b3JlJXAsIHpv
b209JWYiLCBld2tCYWNraW5nU3RvcmUsICp6b29tKTsKKyAgICBEQkcoImV3a0JhY2tpbmdTdG9y
ZT0lcCwgem9vbT0lZiIsIGV3a0JhY2tpbmdTdG9yZSwgKnpvb20pOwogCiAgICAgUFJJVl9EQVRB
X0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2LCBmYWxzZSk7CiAKQEAgLTE1OTAs
NyArMTU5MCw3IEBAIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3NldChF
dmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBmbG9hdCoKIAogRWluYV9Cb29sIGV3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3pvb21fd2Vha19zZXQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9y
ZSwgZmxvYXQgem9vbSwgRXZhc19Db29yZCBjdXJyZW50WCwgRXZhc19Db29yZCBjdXJyZW50WSkK
IHsKLSAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVwLCB6b29tPSVmIiwgZXdrQmFja2luZ1N0b3Jl
LCB6b29tKTsKKyAgICBEQkcoImV3a0JhY2tpbmdTdG9yZT0lcCwgem9vbT0lZiIsIGV3a0JhY2tp
bmdTdG9yZSwgem9vbSk7CiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0
b3JlLCBwcml2LCBmYWxzZSk7CiAgICAgaWYgKCFwcml2LT52aWV3LndpZHRoIHx8ICFwcml2LT52
aWV3LmhlaWdodCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTYxMyw4ICsxNjEzLDggQEAg
RWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fd2Vha19zZXQoRXZhc19PYmpl
Y3QqIGV3a0JhY2tpbmdTdG9yZSwgZmwKIAogICAgIGludCB2cm93cyA9IHN0YXRpY19jYXN0PGlu
dD4oY2VpbChwcml2LT52aWV3LmhlaWdodCAvc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVIZWlnaHQp
KSArIDEpOwogICAgIGludCB2Y29scyA9IHN0YXRpY19jYXN0PGludD4oY2VpbChwcml2LT52aWV3
LndpZHRoIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVXaWR0aCkpICsgMSk7Ci0gICAgRXZhc19D
b29yZCBuZXdYID0gY3VycmVudFggKyAocHJpdi0+dmlldy5vZmZzZXQuY3VyLnggLSBjdXJyZW50
WCkgKiBzY2FsZTsKLSAgICBFdmFzX0Nvb3JkIG5ld1kgPSBjdXJyZW50WSArIChwcml2LT52aWV3
Lm9mZnNldC5jdXIueSAtIGN1cnJlbnRZKSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3WCA9
IGN1cnJlbnRYICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAtIGN1cnJlbnRYKSAqIHNj
YWxlOworICAgIEV2YXNfQ29vcmQgbmV3WSA9IGN1cnJlbnRZICsgKHByaXYtPnZpZXcub2Zmc2V0
LmN1cnJlbnQueSAtIGN1cnJlbnRZKSAqIHNjYWxlOwogICAgIEV2YXNfQ29vcmQgYmFzZVggPSBu
ZXdYICUgdGlsZVdpZHRoOwogICAgIEV2YXNfQ29vcmQgYmFzZVkgPSBuZXdZICUgdGlsZUhlaWdo
dDsKICAgICB1bnNpZ25lZCBsb25nIGJhc2VSb3cgPSAtbmV3WSAvIHRpbGVIZWlnaHQ7CkBAIC0x
NjI2LDcgKzE2MjYsNyBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV93
ZWFrX3NldChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBmbAogICAgICAgICByZUNhbGN1
bGF0ZSA9IHRydWU7CiAgICAgfQogCi0gICAgaWYgKHZyb3dzID4gcHJpdi0+dmlldy5yb3dzIHx8
IHZjb2xzID4gcHJpdi0+dmlldy5jb2xzKQorICAgIGlmICh2cm93cyA+IHByaXYtPnZpZXcucm93
cyB8fCB2Y29scyA+IHByaXYtPnZpZXcuY29sdW1ucykKICAgICAgICAgcmVDYWxjdWxhdGUgPSB0
cnVlOwogCiAgICAgaWYgKHJlQ2FsY3VsYXRlKSB7CkBAIC0xNjY3LDggKzE2NjcsOCBAQCB2b2lk
IGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZpeF9vZmZzZXRzKEV2YXNfT2JqZWN0KiBld2tCYWNr
aW5nU3RvcmUsIEV2YXNfQ29vcgogICAgIFBSSVZfREFUQV9HRVRfT1JfUkVUVVJOKGV3a0JhY2tp
bmdTdG9yZSwgcHJpdik7CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRvciwgKippdGVyYXRvckVu
ZDsKICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVtOwotICAgIEV2YXNfQ29v
cmQgbmV3WCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAgIEV2YXNfQ29vcmQgbmV3WSA9
IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OworICAgIEV2YXNfQ29vcmQgbmV3WCA9IHByaXYtPnZp
ZXcub2Zmc2V0LmN1cnJlbnQueDsKKyAgICBFdmFzX0Nvb3JkIG5ld1kgPSBwcml2LT52aWV3Lm9m
ZnNldC5jdXJyZW50Lnk7CiAgICAgRXZhc19Db29yZCBiYXNlWCA9IHByaXYtPnZpZXcub2Zmc2V0
LmJhc2UueDsKICAgICBFdmFzX0Nvb3JkIGJhc2VZID0gcHJpdi0+dmlldy5vZmZzZXQuYmFzZS55
OwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoID0gcHJpdi0+dmlldy50aWxlLndpZHRoOwpAQCAt
MTY5Niw4ICsxNjk2LDggQEAgdm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9maXhfb2Zmc2V0
cyhFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBFdmFzX0Nvb3IKICAgICAgICAgcHJpdi0+
bW9kZWwuYmFzZS5yb3cgPSAtbmV3WSAvIHRpbGVIZWlnaHQ7CiAgICAgfQogCi0gICAgcHJpdi0+
dmlldy5vZmZzZXQuY3VyLnggPSBuZXdYOwotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ID0g
bmV3WTsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggPSBuZXdYOworICAgIHByaXYt
PnZpZXcub2Zmc2V0LmN1cnJlbnQueSA9IG5ld1k7CiAgICAgcHJpdi0+dmlldy5vZmZzZXQub2xk
LnggPSBuZXdYOwogICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0gbmV3WTsKICAgICBwcml2
LT52aWV3Lm9mZnNldC5iYXNlLnggPSBiYXNlWDsKQEAgLTE4MTUsOCArMTgxNSw4IEBAIHZvaWQg
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZmx1c2goRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9y
ZSkKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUsIHByaXYpOwog
ICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlID0gMDsKIAotICAgIHBy
aXYtPnZpZXcub2Zmc2V0LmN1ci54ID0gMDsKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSA9
IDA7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ID0gMDsKKyAgICBwcml2LT52aWV3
Lm9mZnNldC5jdXJyZW50LnkgPSAwOwogICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54ID0gMDsK
ICAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueSA9IDA7CiAgICAgcHJpdi0+dmlldy5vZmZzZXQu
YmFzZS54ID0gMDsKQEAgLTE5NTYsNyArMTk1Niw3IEBAIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lvbihFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3Jl
CiB7CiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2LCBm
YWxzZSk7CiAgICAgRWluYV9UaWxlX0dyaWRfU2xpY2VyIHNsaWNlcjsKLSAgICBjb25zdCBFaW5h
X1RpbGVfR3JpZF9JbmZvKiBpbmZvOworICAgIGNvbnN0IEVpbmFfVGlsZV9HcmlkX0luZm8qIGdy
aWRJbmZvOwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoLCB0aWxlSGVpZ2h0OwogICAgIEV3a19U
aWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlOwogCkBAIC0xOTcwLDEwICsxOTcwLDEw
IEBAIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lvbihF
dmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKLSAgICB3aGlsZSAoZWluYV90aWxlX2dyaWRfc2xpY2VyX25leHQoJnNsaWNlciwgJmluZm8p
KSB7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgYyA9IGluZm8tPmNvbDsKLSAgICAgICAg
Y29uc3QgdW5zaWduZWQgbG9uZyByID0gaW5mby0+cm93OwotICAgICAgICBpZiAoIV9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfYWRkKHByaXYsIGMsIHIsIHpvb20p
KQorICAgIHdoaWxlIChlaW5hX3RpbGVfZ3JpZF9zbGljZXJfbmV4dCgmc2xpY2VyLCAmZ3JpZElu
Zm8pKSB7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgY29sdW1uID0gZ3JpZEluZm8tPmNv
bDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyByb3cgPSBncmlkSW5mby0+cm93OworICAg
ICAgICBpZiAoIV9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfYWRk
KHByaXYsIGNvbHVtbiwgcm93LCB6b29tKSkKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIApA
QCAtMTk5Nyw3ICsxOTk3LDcgQEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3By
ZV9yZW5kZXJfcmVsYXRpdmVfcmFkaXVzKEV2YXNfT2JqZWN0KiBld2tCYWMKICAgICBlbmRSb3cg
PSBzdGQ6Om1pbihwcml2LT5tb2RlbC5jdXJyZW50LnJvd3MgLSAxLAogICAgICAgICAgICAgICAg
ICAgICAgICBwcml2LT5tb2RlbC5iYXNlLnJvdyArIHByaXYtPnZpZXcucm93cyArIG4gLSAxKTsK
ICAgICBlbmRDb2wgPSBzdGQ6Om1pbihwcml2LT5tb2RlbC5jdXJyZW50LmNvbHVtbnMgLSAxLAot
ICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5tb2RlbC5iYXNlLmNvbHVtbiArIHByaXYtPnZp
ZXcuY29scyArIG4gLSAxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+bW9kZWwuYmFz
ZS5jb2x1bW4gKyBwcml2LT52aWV3LmNvbHVtbnMgKyBuIC0gMSk7CiAKICAgICBJTkYoInN0YXJ0
Um93PSVsdSwgZW5kUm93PSVsdSwgc3RhcnRDb2w9JWx1LCBlbmRDb2w9JWx1IiwKICAgICAgICAg
c3RhcnRSb3csIGVuZFJvdywgc3RhcnRDb2wsIGVuZENvbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5oCmluZGV4IGU5M2NjZjcuLjdiOGNlMGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9y
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5o
CkBAIC02Miw5ICs2Miw5IEBAIHN0cnVjdCBfRXdrX1RpbGVfU3RhdHMgewogfTsKIAogc3RydWN0
IF9Fd2tfVGlsZSB7Ci0gICAgRWluYV9UaWxlciogdXBkYXRlczsgICAgLyoqPCB1cGRhdGVkL2Rp
cnR5IGFyZWFzICovCisgICAgRWluYV9UaWxlciAqdXBkYXRlczsgICAgLyoqPCB1cGRhdGVkL2Rp
cnR5IGFyZWFzICovCiAgICAgRXdrX1RpbGVfU3RhdHMgc3RhdHM7ICAgICAgIC8qKjwgdGlsZSB1
c2FnZSBzdGF0aXN0aWNzICovCi0gICAgdW5zaWduZWQgbG9uZyBjb2wsIHJvdzsgLyoqPCB0aWxl
IHRpbGUgcG9zaXRpb24gKi8KKyAgICB1bnNpZ25lZCBsb25nIGNvbHVtbiwgcm93OyAvKio8IHRp
bGUgdGlsZSBwb3NpdGlvbiAqLwogICAgIEV2YXNfQ29vcmQgeCwgeTsgICAgICAgIC8qKjwgdGls
ZSBjb29yZGluYXRlIHBvc2l0aW9uICovCiAKICAgICAvKiogTmV2ZXIgZXZlciBjaGFuZ2UgdGhv
c2UgYWZ0ZXIgdGlsZSBpcyBjcmVhdGVkIChyZXNwZWN0IGNvbnN0ISkgKi8KQEAgLTc2LDQ1ICs3
Niw0NSBAQCBzdHJ1Y3QgX0V3a19UaWxlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKiBhbGlnbmVtZW50IQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
LwogICAgIGludCB2aXNpYmxlOyAgICAgICAgICAgICAgICAgIC8qKjwgdmlzaWJpbGl0eSBjb3Vu
dGVyIG9mIHRoaXMgdGlsZSAqLwotICAgIEV2YXNfT2JqZWN0KiBpbWFnZTsgICAgICAgICAgIC8q
KjwgRXZhcyBJbWFnZSwgdGhlIHRpbGUgdG8gYmUgcmVuZGVyZWQgKi8KLSAgICB1aW50OF90KiBw
aXhlbHM7CisgICAgRXZhc19PYmplY3QgKmltYWdlOyAgICAgICAgICAgLyoqPCBFdmFzIEltYWdl
LCB0aGUgdGlsZSB0byBiZSByZW5kZXJlZCAqLworICAgIHVpbnQ4X3QgKnBpeGVsczsKIH07CiAK
ICNpbmNsdWRlICJld2tfdGlsZWRfbWF0cml4LmgiCiAjaW5jbHVkZSAiZXdrX3RpbGVkX21vZGVs
LmgiCiAKIC8qIHZpZXcgKi8KLUV2YXNfT2JqZWN0KiBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9h
ZGQoRXZhcyogZSk7Ci0KLXZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVuZGVyX2NiX3Nl
dChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sICgqY2IpKHZvaWQqIGRhdGEsIEV3a19UaWxlKiB0
LCBjb25zdCBFaW5hX1JlY3RhbmdsZSogYXJlYSksIGNvbnN0IHZvaWQqIGRhdGEpOwotCi1FaW5h
X0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3NldChFdmFz
X09iamVjdCogbywgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHkpOwotRWluYV9Cb29sIGV3a190
aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9hZGQoRXZhc19PYmplY3QqIG8s
IEV2YXNfQ29vcmQgZHgsIEV2YXNfQ29vcmQgZHkpOwotRWluYV9Cb29sIGV3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3Njcm9sbF9pbm5lcl9vZmZzZXRfYWRkKEV2YXNfT2JqZWN0KiBvLCBFdmFzX0Nv
b3JkIGR4LCBFdmFzX0Nvb3JkIGR5LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSwgRXZhc19D
b29yZCB3LCBFdmFzX0Nvb3JkIGgpOwotCi1FaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfem9vbV9zZXQoRXZhc19PYmplY3QqIG8sIGZsb2F0KiB6b29tLCBFdmFzX0Nvb3JkIGN4LCBF
dmFzX0Nvb3JkIGN5LCBFdmFzX0Nvb3JkKiBvZmZ4LCBFdmFzX0Nvb3JkKiBvZmZ5KTsKLUVpbmFf
Qm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3dlYWtfc2V0KEV2YXNfT2JqZWN0KiBv
LCBmbG9hdCB6b29tLCBFdmFzX0Nvb3JkIGN4LCBFdmFzX0Nvb3JkIGN5KTsKLXZvaWQgZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfZml4X29mZnNldHMoRXZhc19PYmplY3QqIG8sIEV2YXNfQ29vcmQg
dywgRXZhc19Db29yZCBoKTsKLXZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV93ZWFr
X3Ntb290aF9zY2FsZV9zZXQoRXZhc19PYmplY3QqIG8sIEVpbmFfQm9vbCBzbW9vdGhfc2NhbGUp
Owotdm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9hbHBoYV9zZXQoRXZhc19PYmplY3QqIG8s
IEVpbmFfQm9vbCBoYXNfYWxwaGEpOwotRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3VwZGF0ZShFdmFzX09iamVjdCogbywgY29uc3QgRWluYV9SZWN0YW5nbGUqIHVwZGF0ZSk7Ci12
b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3VwZGF0ZXNfcHJvY2Vzc19wcmVfc2V0KEV2YXNf
T2JqZWN0KiBvLCB2b2lkKigqY2IpKHZvaWQqIGRhdGEsIEV2YXNfT2JqZWN0ICpvKSwgY29uc3Qg
dm9pZCogZGF0YSk7Ci12b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3VwZGF0ZXNfcHJvY2Vz
c19wb3N0X3NldChFdmFzX09iamVjdCogbywgdm9pZCooKmNiKSh2b2lkKiBkYXRhLCB2b2lkKiBw
cmVfZGF0YSwgRXZhc19PYmplY3QgKm8pLCBjb25zdCB2b2lkKiBkYXRhKTsKLXZvaWQgZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfdXBkYXRlc19wcm9jZXNzKEV2YXNfT2JqZWN0KiBvKTsKLXZvaWQg
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdXBkYXRlc19jbGVhcihFdmFzX09iamVjdCogbyk7Ci12
b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2NvbnRlbnRzX3Jlc2l6ZShFdmFzX09iamVjdCog
bywgRXZhc19Db29yZCB3aWR0aCwgRXZhc19Db29yZCBoZWlnaHQpOwotdm9pZCBld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9kaXNhYmxlZF91cGRhdGVfc2V0KEV2YXNfT2JqZWN0KiBvLCBFaW5hX0Jv
b2wgdmFsdWUpOwotdm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9mbHVzaChFdmFzX09iamVj
dCogbyk7Ci12b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2VuYWJsZV9zY2FsZV9zZXQoRXZh
c19PYmplY3QqIG8sIEVpbmFfQm9vbCB2YWx1ZSk7Ci0KLUV3a19UaWxlX1VudXNlZF9DYWNoZSog
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2FjaGVfZ2V0KGNvbnN0IEV2YXNf
T2JqZWN0KiBvKTsKLXZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2Fj
aGVfc2V0KEV2YXNfT2JqZWN0KiBvLCBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHR1Yyk7Ci0KLUVp
bmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lvbihFdmFzX09i
amVjdCogbywgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHksIEV2YXNfQ29vcmQgdywgRXZhc19D
b29yZCBoLCBmbG9hdCB6b29tKTsKLUVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9w
cmVfcmVuZGVyX3JlbGF0aXZlX3JhZGl1cyhFdmFzX09iamVjdCogbywgdW5zaWduZWQgaW50IG4s
IGZsb2F0IHpvb20pOwotRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5k
ZXJfc3BpcmFsX3F1ZXVlKEV2YXNfT2JqZWN0KiBvLCBFaW5hX1JlY3RhbmdsZSogdmlld19yZWN0
LCBFaW5hX1JlY3RhbmdsZSogcmVuZGVyX3JlY3QsIGludCBtYXhfbWVtb3J5LCBmbG9hdCB6b29t
KTsKLXZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9jYW5jZWwoRXZhc19P
YmplY3QqIG8pOwotCi1FaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZGlzYWJsZV9y
ZW5kZXIoRXZhc19PYmplY3QqIG8pOwotRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3Jl
X2VuYWJsZV9yZW5kZXIoRXZhc19PYmplY3QqIG8pOworRXZhc19PYmplY3QgKmV3a190aWxlZF9i
YWNraW5nX3N0b3JlX2FkZChFdmFzICplKTsKKwordm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9yZW5kZXJfY2Jfc2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgKCpjYikodm9pZCAqZGF0
YSwgRXdrX1RpbGUgKnQsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlICphcmVhKSwgY29uc3Qgdm9pZCAq
ZGF0YSk7CisKK0VpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVsbF9v
ZmZzZXRfc2V0KEV2YXNfT2JqZWN0ICpvLCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSk7CitF
aW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X2FkZChF
dmFzX09iamVjdCAqbywgRXZhc19Db29yZCBkeCwgRXZhc19Db29yZCBkeSk7CitFaW5hX0Jvb2wg
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2lubmVyX29mZnNldF9hZGQoRXZhc19PYmpl
Y3QgKm8sIEV2YXNfQ29vcmQgZHgsIEV2YXNfQ29vcmQgZHksIEV2YXNfQ29vcmQgeCwgRXZhc19D
b29yZCB5LCBFdmFzX0Nvb3JkIHcsIEV2YXNfQ29vcmQgaCk7CisKK0VpbmFfQm9vbCBld2tfdGls
ZWRfYmFja2luZ19zdG9yZV96b29tX3NldChFdmFzX09iamVjdCAqbywgZmxvYXQgKnpvb20sIEV2
YXNfQ29vcmQgY3gsIEV2YXNfQ29vcmQgY3ksIEV2YXNfQ29vcmQgKm9mZngsIEV2YXNfQ29vcmQg
Km9mZnkpOworRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fd2Vha19zZXQo
RXZhc19PYmplY3QgKm8sIGZsb2F0IHpvb20sIEV2YXNfQ29vcmQgY3gsIEV2YXNfQ29vcmQgY3kp
Owordm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9maXhfb2Zmc2V0cyhFdmFzX09iamVjdCAq
bywgRXZhc19Db29yZCB3LCBFdmFzX0Nvb3JkIGgpOwordm9pZCBld2tfdGlsZWRfYmFja2luZ19z
dG9yZV96b29tX3dlYWtfc21vb3RoX3NjYWxlX3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29s
IHNtb290aF9zY2FsZSk7Cit2b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2FscGhhX3NldChF
dmFzX09iamVjdCAqbywgRWluYV9Cb29sIGhhc19hbHBoYSk7CitFaW5hX0Jvb2wgZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfdXBkYXRlKEV2YXNfT2JqZWN0ICpvLCBjb25zdCBFaW5hX1JlY3Rhbmds
ZSAqdXBkYXRlKTsKK3ZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdXBkYXRlc19wcm9jZXNz
X3ByZV9zZXQoRXZhc19PYmplY3QgKm8sIHZvaWQqKCpjYikodm9pZCAqZGF0YSwgRXZhc19PYmpl
Y3QgKm8pLCBjb25zdCB2b2lkICpkYXRhKTsKK3ZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
dXBkYXRlc19wcm9jZXNzX3Bvc3Rfc2V0KEV2YXNfT2JqZWN0ICpvLCB2b2lkKigqY2IpKHZvaWQg
KmRhdGEsIHZvaWQgKnByZV9kYXRhLCBFdmFzX09iamVjdCAqbyksIGNvbnN0IHZvaWQgKmRhdGEp
Owordm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV91cGRhdGVzX3Byb2Nlc3MoRXZhc19PYmpl
Y3QgKm8pOwordm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV91cGRhdGVzX2NsZWFyKEV2YXNf
T2JqZWN0ICpvKTsKK3ZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfY29udGVudHNfcmVzaXpl
KEV2YXNfT2JqZWN0ICpvLCBFdmFzX0Nvb3JkIHdpZHRoLCBFdmFzX0Nvb3JkIGhlaWdodCk7Cit2
b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2Rpc2FibGVkX3VwZGF0ZV9zZXQoRXZhc19PYmpl
Y3QgKm8sIEVpbmFfQm9vbCB2YWx1ZSk7Cit2b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2Zs
dXNoKEV2YXNfT2JqZWN0ICpvKTsKK3ZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZW5hYmxl
X3NjYWxlX3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIHZhbHVlKTsKKworRXdrX1RpbGVf
VW51c2VkX0NhY2hlICpld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX3VudXNlZF9jYWNoZV9n
ZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwordm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV90
aWxlX3VudXNlZF9jYWNoZV9zZXQoRXZhc19PYmplY3QgKm8sIEV3a19UaWxlX1VudXNlZF9DYWNo
ZSAqdHVjKTsKKworRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJf
cmVnaW9uKEV2YXNfT2JqZWN0ICpvLCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSwgRXZhc19D
b29yZCB3LCBFdmFzX0Nvb3JkIGgsIGZsb2F0IHpvb20pOworRWluYV9Cb29sIGV3a190aWxlZF9i
YWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVsYXRpdmVfcmFkaXVzKEV2YXNfT2JqZWN0ICpvLCB1
bnNpZ25lZCBpbnQgbiwgZmxvYXQgem9vbSk7CitFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfcHJlX3JlbmRlcl9zcGlyYWxfcXVldWUoRXZhc19PYmplY3QgKm8sIEVpbmFfUmVjdGFu
Z2xlKiB2aWV3X3JlY3QsIEVpbmFfUmVjdGFuZ2xlICpyZW5kZXJfcmVjdCwgaW50IG1heF9tZW1v
cnksIGZsb2F0IHpvb20pOwordm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVy
X2NhbmNlbChFdmFzX09iamVjdCAqbyk7CisKK0VpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9kaXNhYmxlX3JlbmRlcihFdmFzX09iamVjdCAqbyk7CitFaW5hX0Jvb2wgZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfZW5hYmxlX3JlbmRlcihFdmFzX09iamVjdCAqbyk7CiAjZW5kaWYgLy8g
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a190aWxlZF9tYXRyaXguY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxl
ZF9tYXRyaXguY3BwCmluZGV4IGFiMDYwNDIuLjVkOTkxYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbWF0cml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3RpbGVkX21hdHJpeC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX0V3a19UaWxlX01hdHJpeF9FbnRyeSBFd2tfVGlsZV9NYXRyaXhfRW50cnk7CiBzdHJ1Y3Qg
X0V3a19UaWxlX01hdHJpeCB7CiAgICAgRWluYV9NYXRyaXhzcGFyc2UqIG1hdHJpeDsKICAgICBF
aW5hX0lubGlzdCogbWF0cmljZXM7Ci0gICAgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxpZVVu
dXNlZENhY2hlOworICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlOwog
ICAgIEV2YXNfQ29sb3JzcGFjZSBjc3BhY2U7CiAgICAgc3RydWN0IHsKICAgICAgICAgdm9pZCAo
KmNhbGxiYWNrKSh2b2lkKiBkYXRhLCBFd2tfVGlsZSogdGlsZSwgY29uc3QgRWluYV9SZWN0YW5n
bGUqIHVwZGF0ZSk7CkBAIC05NCw3ICs5NCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZV9tYXRy
aXhfY2VsbF9mcmVlKHZvaWQqIHVzZXJEYXRhLCB2b2lkKiBjZWxsRGF0YSkKICAgICBpZiAoIXRp
bGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9mcmVlemUo
dGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hl
X2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogCiAgICAgaWYgKHRpbGUtPnVw
ZGF0ZXMgfHwgdGlsZS0+c3RhdHMuZnVsbF91cGRhdGUpCiAgICAgICAgIHRpbGVNYXRyaXgtPnVw
ZGF0ZXMgPSBlaW5hX2xpc3RfcmVtb3ZlKHRpbGVNYXRyaXgtPnVwZGF0ZXMsIHRpbGUpOwpAQCAt
MTAyLDggKzEwMiw4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZV9tYXRyaXhfY2VsbF9mcmVlKHZv
aWQqIHVzZXJEYXRhLCB2b2lkKiBjZWxsRGF0YSkKICAgICBpZiAodGlsZS0+dmlzaWJsZSkKICAg
ICAgICAgRVJSKCJmcmVlaW5nIGNlbGwgdGhhdCBpcyB2aXNpYmxlLCBsZWFraW5nIHRpbGUgJXAi
LCB0aWxlKTsKICAgICBlbHNlIHsKLSAgICAgICAgaWYgKCFld2tfdGlsZV91bnVzZWRfY2FjaGVf
dGlsZV9nZXQodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSwgdGlsZSkpCi0gICAgICAgICAg
ICBFUlIoInRpbGUgJXAgd2FzIG5vdCBpbiBjYWNoZSAlcD8gbGVha2luZy4uLiIsIHRpbGUsIHRp
bGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgICAgICBpZiAoIWV3a190aWxlX3VudXNl
ZF9jYWNoZV90aWxlX2dldCh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUsIHRpbGUpKQorICAg
ICAgICAgICAgRVJSKCJ0aWxlICVwIHdhcyBub3QgaW4gY2FjaGUgJXA/IGxlYWtpbmcuLi4iLCB0
aWxlLCB0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogICAgICAgICBlbHNlIHsKICAgICAg
ICAgICAgIEV3a19UaWxlX01hdHJpeF9FbnRyeSogZW50cnk7CiAgICAgICAgICAgICBEQkcoInRp
bGUgY2VsbCBkb2VzIG5vdCBleGlzdCBhbnltb3JlLCBmcmVlIGl0ICVwIiwgdGlsZSk7CkBAIC0x
MjEsNyArMTIxLDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlX21hdHJpeF9jZWxsX2ZyZWUodm9p
ZCogdXNlckRhdGEsIHZvaWQqIGNlbGxEYXRhKQogICAgICAgICB9CiAgICAgfQogCi0gICAgZXdr
X3RpbGVfdW51c2VkX2NhY2hlX3RoYXcodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7Cisg
ICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXcodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hl
KTsKIH0KIAogLyogY2FsbGVkIHdoZW4gY2FjaGUgb2YgdW51c2VkIHRpbGUgaXMgZmx1c2hlZCAq
LwpAQCAtMTM3LDcgKzEzNyw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZV9tYXRyaXhfdGlsZV9m
cmVlKHZvaWQqIGRhdGEsIEV3a19UaWxlKiB0aWxlKQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgaWYgKCFlaW5hX21hdHJpeHNwYXJzZV9jZWxsX2lkeF9nZXQoZW50cnktPm1hdHJpeCwg
dGlsZS0+cm93LCB0aWxlLT5jb2wsICZjZWxsKSkgeworICAgIGlmICghZWluYV9tYXRyaXhzcGFy
c2VfY2VsbF9pZHhfZ2V0KGVudHJ5LT5tYXRyaXgsIHRpbGUtPnJvdywgdGlsZS0+Y29sdW1uLCAm
Y2VsbCkpIHsKIAogICAgICAgICBFUlIoInJlbW92aW5nIHRpbGUgJXAgdGhhdCB3YXMgbm90IGlu
IHRoZSBtYXRyaXg/IExlYWtpbmcuLi4iLCB0aWxlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTg0
LDcgKzE4NCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZV9tYXRyaXhfdGlsZV9mcmVlKHZvaWQq
IGRhdGEsIEV3a19UaWxlKiB0aWxlKQogICogZXhpc3RpbmcgdGlsZXMgYW5kIGdpdmUgdGhlbSBi
YWNrLCBhbGxvd2luZyB0aGVtIHRvIGJlCiAgKiBmcmVlZC9yZXBsYWNlZCBieSB0aGUgY2FjaGUu
CiAgKgotICogQHBhcmFtIHR1YyBjYWNoZSBvZiB1bnVzZWQgdGlsZXMgb3IgQGMgMCB0byBjcmVh
dGUgb25lCisgKiBAcGFyYW0gdGlsZVVudXNlZENhY2hlIGNhY2hlIG9mIHVudXNlZCB0aWxlcyBv
ciBAYyAwIHRvIGNyZWF0ZSBvbmUKICAqICAgICAgICBhdXRvbWF0aWNhbGx5LgogICogQHBhcmFt
IGNvbHVtbnMgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIG1hdHJpeC4KICAqIEBwYXJhbSByb3dz
IG51bWJlciBvZiByb3dzIGluIHRoZSBtYXRyaXguCkBAIC0yMTEsMTAgKzIxMSwxMCBAQCBFd2tf
VGlsZV9NYXRyaXgqIGV3a190aWxlX21hdHJpeF9uZXcoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0
aWxlVW51c2VkQ2FjaGUsIHVucwogICAgIGV3a190aWxlX21hdHJpeF96b29tX2xldmVsX3NldCh0
aWxlTWF0cml4LCB6b29tTGV2ZWwpOwogCiAgICAgaWYgKHRpbGVVbnVzZWRDYWNoZSkKLSAgICAg
ICAgdGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSA9IGV3a190aWxlX3VudXNlZF9jYWNoZV9y
ZWYodGlsZVVudXNlZENhY2hlKTsKKyAgICAgICAgdGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hl
ID0gZXdrX3RpbGVfdW51c2VkX2NhY2hlX3JlZih0aWxlVW51c2VkQ2FjaGUpOwogICAgIGVsc2Ug
ewotICAgICAgICB0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlID0gZXdrX3RpbGVfdW51c2Vk
X2NhY2hlX25ldyhERUZBVUxUX0NBQ0hFX1NJWkUpOwotICAgICAgICBpZiAoIXRpbGVNYXRyaXgt
PnRpbGllVW51c2VkQ2FjaGUpIHsKKyAgICAgICAgdGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hl
ID0gZXdrX3RpbGVfdW51c2VkX2NhY2hlX25ldyhERUZBVUxUX0NBQ0hFX1NJWkUpOworICAgICAg
ICBpZiAoIXRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSkgewogICAgICAgICAgICAgRVJSKCJu
byBjYWNoZSBvZiB1bnVzZWQgdGlsZSEiKTsKICAgICAgICAgICAgIGVpbmFfbWF0cml4c3BhcnNl
X2ZyZWUodGlsZU1hdHJpeC0+bWF0cml4KTsKICAgICAgICAgICAgIGZyZWUodGlsZU1hdHJpeCk7
CkBAIC0yOTgsNyArMjk4LDcgQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfZnJlZShFd2tfVGlsZV9N
YXRyaXgqIHRpbGVNYXRyaXgpCiAKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTih0aWxl
TWF0cml4KTsKIAotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9mcmVlemUodGlsZU1hdHJpeC0+
dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZSh0aWxl
TWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogICAgIGV3a190aWxlX21hdHJpeF9pbnZhbGlkYXRl
KHRpbGVNYXRyaXgpOwogICAgIGVudHJ5ID0gRUlOQV9JTkxJU1RfQ09OVEFJTkVSX0dFVCh0aWxl
TWF0cml4LT5tYXRyaWNlcywgRXdrX1RpbGVfTWF0cml4X0VudHJ5KTsKICAgICBlaW5hX21hdHJp
eHNwYXJzZV9mcmVlKGVudHJ5LT5tYXRyaXgpOwpAQCAtMzA2LDggKzMwNiw4IEBAIHZvaWQgZXdr
X3RpbGVfbWF0cml4X2ZyZWUoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4KQogICAgIGZyZWUo
ZW50cnkpOwogICAgIHRpbGVNYXRyaXgtPm1hdHJpY2VzID0gMDsKIAotICAgIGV3a190aWxlX3Vu
dXNlZF9jYWNoZV90aGF3KHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOwotICAgIGV3a190
aWxlX3VudXNlZF9jYWNoZV91bnJlZih0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hlKTsKKyAg
ICBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGhhdyh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUp
OworICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV91bnJlZih0aWxlTWF0cml4LT50aWxlVW51c2Vk
Q2FjaGUpOwogCiAjaWZkZWYgREVCVUdfTUVNX0xFQUtTCiAgICAgdGlsZXMgPSB0aWxlTWF0cml4
LT5zdGF0cy50aWxlcy5hbGxvY2F0ZWQgLSB0aWxlTWF0cml4LT5zdGF0cy50aWxlcy5mcmVlZDsK
QEAgLTM1NSw3ICszNTUsNyBAQCB2b2lkIGV3a190aWxlX21hdHJpeF9yZXNpemUoRXdrX1RpbGVf
TWF0cml4KiB0aWxlTWF0cml4LCB1bnNpZ25lZCBsb25nIGNvbHMsIHVucwogRXdrX1RpbGVfVW51
c2VkX0NhY2hlKiBld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChjb25zdCBFd2tfVGls
ZV9NYXRyaXgqIHRpbGVNYXRyaXgpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5f
VkFMKHRpbGVNYXRyaXgsIDApOwotICAgIHJldHVybiB0aWxlTWF0cml4LT50aWxpZVVudXNlZENh
Y2hlOworICAgIHJldHVybiB0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGU7CiB9CiAKIC8qKgpA
QCAtMzkwLDcgKzM5MCw3IEBAIEV3a19UaWxlKiBld2tfdGlsZV9tYXRyaXhfdGlsZV9leGFjdF9n
ZXQoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4LCB1bnNpZ25lZCBsCiAKIGVuZDoKICAgICBp
ZiAoIXRpbGUtPnZpc2libGUpIHsKLSAgICAgICAgaWYgKCFld2tfdGlsZV91bnVzZWRfY2FjaGVf
dGlsZV9nZXQodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSwgdGlsZSkpCisgICAgICAgIGlm
ICghZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfZ2V0KHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRD
YWNoZSwgdGlsZSkpCiAgICAgICAgICAgICBXUk4oIkV3a19UaWxlIHdhcyB1bnVzZWQgYnV0IG5v
dCBpbiBjYWNoZT8gYnVnISIpOwogICAgIH0KIApAQCAtNDU5LDcgKzQ1OSw3IEBAIEV3a19UaWxl
KiBld2tfdGlsZV9tYXRyaXhfdGlsZV9uZXcoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4LCBF
dmFzKiBjYW52YXMsIHVuCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIHRpbGUtPmNv
bCA9IGNvbHVtbjsKKyAgICB0aWxlLT5jb2x1bW4gPSBjb2x1bW47CiAgICAgdGlsZS0+cm93ID0g
cm93OwogICAgIHRpbGUtPnggPSBjb2x1bW4gKiB0aWxlV2lkdGg7CiAgICAgdGlsZS0+eSA9IHJv
dyAqIHRpbGVIZWlnaHQ7CkBAIC00ODYsNyArNDg2LDcgQEAgRXdrX1RpbGUqIGV3a190aWxlX21h
dHJpeF90aWxlX25ldyhFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgsIEV2YXMqIGNhbnZhcywg
dW4KICAqIHVudXNlZCBjYWNoZS4KICAqCiAgKiBAcGFyYW0gdGlsZU1hdHJpeCB0aGUgdGlsZSBt
YXRyaXggdG8gcmV0dXJuIHRpbGUgdG8uCi0gKiBAcGFyYW0gdCB0aGUgdGlsZSBpbnN0YW5jZSB0
byByZXR1cm4sIG11c3QgQGIgbm90IGJlIEBjIDAuCisgKiBAcGFyYW0gdGlsZSB0aGUgdGlsZSBp
bnN0YW5jZSB0byByZXR1cm4sIG11c3QgQGIgbm90IGJlIEBjIDAuCiAgKiBAcGFyYW0gbGFzdF91
c2VkIHRpbWUgaW4gd2hpY2ggdGlsZS53aWR0aGFzIGxhc3QgdXNlZC4KICAqCiAgKiBAcmV0dXJu
ICN0cnVlIG9uIHN1Y2Nlc3Mgb3IgI2ZhbHNlIG9uIGZhaWx1cmUuCkBAIC01MDAsNyArNTAwLDcg
QEAgRWluYV9Cb29sIGV3a190aWxlX21hdHJpeF90aWxlX3B1dChFd2tfVGlsZV9NYXRyaXgqIHRp
bGVNYXRyaXgsIEV3a19UaWxlKiB0aWxlLAogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHRp
bGUtPnN0YXRzLmxhc3RfdXNlZCA9IGxhc3RVc2VkOwotICAgIHJldHVybiBld2tfdGlsZV91bnVz
ZWRfY2FjaGVfdGlsZV9wdXQodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSwgdGlsZSwgX2V3
a190aWxlX21hdHJpeF90aWxlX2ZyZWUsIHRpbGVNYXRyaXgpOworICAgIHJldHVybiBld2tfdGls
ZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlLCB0aWxl
LCBfZXdrX3RpbGVfbWF0cml4X3RpbGVfZnJlZSwgdGlsZU1hdHJpeCk7CiB9CiAKIEVpbmFfQm9v
bCBld2tfdGlsZV9tYXRyaXhfdGlsZV91cGRhdGUoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4
LCB1bnNpZ25lZCBsb25nIGNvbCwgdW5zaWduZWQgbG9uZyByb3csIGNvbnN0IEVpbmFfUmVjdGFu
Z2xlKiB1cGRhdGUpCkBAIC03MDYsNyArNzA2LDcgQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfZGJn
KGNvbnN0IEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCkKICAgICAgICAgICAgICAgICBwcmlu
dGYoIlxuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwcmludGYoIiUzbHUsJTNsdSAl
MTBwOiIsIGNvbHVtbiwgcm93LCB0aWxlKTsKLSAgICAgICAgICAgIHByaW50ZigiIFslM2x1LCUz
bHUgKyAlZHglZCBAICUwLjNmXSVjIiwgdGlsZS0+Y29sLCB0aWxlLT5yb3csIHRpbGUtPndpZHRo
LCB0aWxlLT5oZWlnaHQsIHRpbGUtPnpvb20sIHRpbGUtPnZpc2libGUgPyAnKicgOiAnICcpOwor
ICAgICAgICAgICAgcHJpbnRmKCIgWyUzbHUsJTNsdSArICVkeCVkIEAgJTAuM2ZdJWMiLCB0aWxl
LT5jb2x1bW4sIHRpbGUtPnJvdywgdGlsZS0+d2lkdGgsIHRpbGUtPmhlaWdodCwgdGlsZS0+em9v
bSwgdGlsZS0+dmlzaWJsZSA/ICcqJyA6ICcgJyk7CiAgICAgICAgICAgICBwcmludGYoIlxuIik7
CiAgICAgICAgIH0KICAgICB9CkBAIC03MTQsNyArNzE0LDcgQEAgdm9pZCBld2tfdGlsZV9tYXRy
aXhfZGJnKGNvbnN0IEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCkKICAgICAgICAgcHJpbnRm
KCJcbiIpOwogICAgIGVpbmFfaXRlcmF0b3JfZnJlZShpdGVyYXRvcik7CiAKLSAgICBld2tfdGls
ZV91bnVzZWRfY2FjaGVfZGJnKHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgIGV3
a190aWxlX3VudXNlZF9jYWNoZV9kYmcodGlsZU1hdHJpeC0+dGlsZVVudXNlZENhY2hlKTsKIH0K
IAogLyoqCkBAIC03MzAsNyArNzMwLDcgQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfZnJlZXplKEV3
a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTih0aWxlTWF0cml4KTsKICAgICBpZiAoIXRpbGVNYXRyaXgtPmZyb3plbikKLSAgICAgICAg
ZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hl
KTsKKyAgICAgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxl
VW51c2VkQ2FjaGUpOwogICAgIHRpbGVNYXRyaXgtPmZyb3plbisrOwogfQogCkBAIC03NTAsNSAr
NzUwLDUgQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfdGhhdyhFd2tfVGlsZV9NYXRyaXgqIHRpbGVN
YXRyaXgpCiAKICAgICB0aWxlTWF0cml4LT5mcm96ZW4tLTsKICAgICBpZiAoIXRpbGVNYXRyaXgt
PmZyb3plbikKLSAgICAgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXcodGlsZU1hdHJpeC0+
dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3KHRp
bGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3RpbGVkX21hdHJpeC5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190
aWxlZF9tYXRyaXguaAppbmRleCBmZTZiNjY4Li41NDBjMjlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21hdHJpeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdGlsZWRfbWF0cml4LmgKQEAgLTI2LDM2ICsyNiwzNCBAQAogI2luY2x1ZGUgPEV2
YXMuaD4KIAogLyogbWF0cml4IG9mIHRpbGVzICovCi1Fd2tfVGlsZV9NYXRyaXgqIGV3a190aWxl
X21hdHJpeF9uZXcoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUsIHVuc2ln
bmVkIGxvbmcgY29sdW1ucywgdW5zaWduZWQgbG9uZyByb3dzLCBmbG9hdCB6b29tTGV2ZWwsIEV2
YXNfQ29sb3JzcGFjZSBjb2xvclNwYWNlLCB2b2lkICgqcmVuZGVyX2NhbGxiYWNrKSh2b2lkKiBk
YXRhLCBFd2tfVGlsZSogdGlsZSwgY29uc3QgRWluYV9SZWN0YW5nbGUqIHVwZGF0ZSksIGNvbnN0
IHZvaWQqIHJlbmRlckRhdGEpOwotdm9pZCBld2tfdGlsZV9tYXRyaXhfZnJlZShFd2tfVGlsZV9N
YXRyaXgqIHRtKTsKK0V3a19UaWxlX01hdHJpeCAqZXdrX3RpbGVfbWF0cml4X25ldyhFd2tfVGls
ZV9VbnVzZWRfQ2FjaGUgKnRpbGVVbnVzZWRDYWNoZSwgdW5zaWduZWQgbG9uZyBjb2x1bW5zLCB1
bnNpZ25lZCBsb25nIHJvd3MsIGZsb2F0IHpvb21MZXZlbCwgRXZhc19Db2xvcnNwYWNlIGNvbG9y
U3BhY2UsIHZvaWQgKCpyZW5kZXJfY2FsbGJhY2spKHZvaWQgKmRhdGEsIEV3a19UaWxlICp0aWxl
LCBjb25zdCBFaW5hX1JlY3RhbmdsZSAqdXBkYXRlKSwgY29uc3Qgdm9pZCAqcmVuZGVyRGF0YSk7
Cit2b2lkIGV3a190aWxlX21hdHJpeF9mcmVlKEV3a19UaWxlX01hdHJpeCAqdG0pOwogCi12b2lk
IGV3a190aWxlX21hdHJpeF9yZXNpemUoRXdrX1RpbGVfTWF0cml4KiB0bSwgdW5zaWduZWQgbG9u
ZyBjb2xzLCB1bnNpZ25lZCBsb25nIHJvd3MpOwotdm9pZCBld2tfdGlsZV9tYXRyaXhfem9vbV9s
ZXZlbF9zZXQoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4LCBmbG9hdCB6b29tKTsKLXZvaWQg
ZXdrX3RpbGVfbWF0cml4X2ludmFsaWRhdGUoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4KTsK
K3ZvaWQgZXdrX3RpbGVfbWF0cml4X3Jlc2l6ZShFd2tfVGlsZV9NYXRyaXggKnRtLCB1bnNpZ25l
ZCBsb25nIGNvbHMsIHVuc2lnbmVkIGxvbmcgcm93cyk7Cit2b2lkIGV3a190aWxlX21hdHJpeF96
b29tX2xldmVsX3NldChFd2tfVGlsZV9NYXRyaXggKnRpbGVNYXRyaXgsIGZsb2F0IHpvb20pOwor
dm9pZCBld2tfdGlsZV9tYXRyaXhfaW52YWxpZGF0ZShFd2tfVGlsZV9NYXRyaXggKnRpbGVNYXRy
aXgpOwogCi1Fd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIGV3a190aWxlX21hdHJpeF91bnVzZWRfY2Fj
aGVfZ2V0KGNvbnN0IEV3a19UaWxlX01hdHJpeCogdG0pOworRXdrX1RpbGVfVW51c2VkX0NhY2hl
ICpld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChjb25zdCBFd2tfVGlsZV9NYXRyaXgg
KnRtKTsKIAotRXdrX1RpbGUqIGV3a190aWxlX21hdHJpeF90aWxlX2V4YWN0X2dldChFd2tfVGls
ZV9NYXRyaXgqIHRtLCB1bnNpZ25lZCBsb25nIGNvbCwgdW5zaWduZWQgbG9uZyByb3csIGZsb2F0
IHpvb20pOwotRWluYV9Cb29sIGV3a190aWxlX21hdHJpeF90aWxlX2V4YWN0X2V4aXN0cyhFd2tf
VGlsZV9NYXRyaXgqIHRtLCB1bnNpZ25lZCBsb25nIGNvbCwgdW5zaWduZWQgbG9uZyByb3csIGZs
b2F0IHpvb20pOwotRXdrX1RpbGUqIGV3a190aWxlX21hdHJpeF90aWxlX25lYXJlc3RfZ2V0KEV3
a19UaWxlX01hdHJpeCogdG0sIHVuc2lnbmVkIGxvbmcgY29sLCB1bnNpZ25lZCBsb25nIHJvdywg
ZmxvYXQgem9vbSk7Ci1Fd2tfVGlsZSogZXdrX3RpbGVfbWF0cml4X3RpbGVfbmV3KEV3a19UaWxl
X01hdHJpeCogdG0sIEV2YXMqIGV2YXMsIHVuc2lnbmVkIGxvbmcgY29sLCB1bnNpZ25lZCBsb25n
IHJvdywgZmxvYXQgem9vbSk7Ci1FaW5hX0Jvb2wgZXdrX3RpbGVfbWF0cml4X3RpbGVfcHV0KEV3
a19UaWxlX01hdHJpeCogdG0sIEV3a19UaWxlKiB0LCBkb3VibGUgbGFzdF91c2VkKTsKK0V3a19U
aWxlICpld2tfdGlsZV9tYXRyaXhfdGlsZV9leGFjdF9nZXQoRXdrX1RpbGVfTWF0cml4ICp0bSwg
dW5zaWduZWQgbG9uZyBjb2wsIHVuc2lnbmVkIGxvbmcgcm93LCBmbG9hdCB6b29tKTsKK0VpbmFf
Qm9vbCBld2tfdGlsZV9tYXRyaXhfdGlsZV9leGFjdF9leGlzdHMoRXdrX1RpbGVfTWF0cml4ICp0
bSwgdW5zaWduZWQgbG9uZyBjb2wsIHVuc2lnbmVkIGxvbmcgcm93LCBmbG9hdCB6b29tKTsKK0V3
a19UaWxlICpld2tfdGlsZV9tYXRyaXhfdGlsZV9uZWFyZXN0X2dldChFd2tfVGlsZV9NYXRyaXgg
KnRtLCB1bnNpZ25lZCBsb25nIGNvbCwgdW5zaWduZWQgbG9uZyByb3csIGZsb2F0IHpvb20pOwor
RXdrX1RpbGUgKmV3a190aWxlX21hdHJpeF90aWxlX25ldyhFd2tfVGlsZV9NYXRyaXggKnRtLCBF
dmFzICpldmFzLCB1bnNpZ25lZCBsb25nIGNvbCwgdW5zaWduZWQgbG9uZyByb3csIGZsb2F0IHpv
b20pOworRWluYV9Cb29sIGV3a190aWxlX21hdHJpeF90aWxlX3B1dChFd2tfVGlsZV9NYXRyaXgg
KnRtLCBFd2tfVGlsZSAqdCwgZG91YmxlIGxhc3RfdXNlZCk7CiAKLUVpbmFfQm9vbCBld2tfdGls
ZV9tYXRyaXhfdGlsZV91cGRhdGUoRXdrX1RpbGVfTWF0cml4KiB0bSwgdW5zaWduZWQgbG9uZyBj
b2wsIHVuc2lnbmVkIGxvbmcgcm93LCBjb25zdCBFaW5hX1JlY3RhbmdsZSogdXBkYXRlKTsKLUVp
bmFfQm9vbCBld2tfdGlsZV9tYXRyaXhfdGlsZV91cGRhdGVfZnVsbChFd2tfVGlsZV9NYXRyaXgq
IHRtLCB1bnNpZ25lZCBsb25nIGNvbCwgdW5zaWduZWQgbG9uZyByb3cpOwotdm9pZCBld2tfdGls
ZV9tYXRyaXhfdGlsZV91cGRhdGVzX2NsZWFyKEV3a19UaWxlX01hdHJpeCogdG0sIEV3a19UaWxl
KiB0KTsKK0VpbmFfQm9vbCBld2tfdGlsZV9tYXRyaXhfdGlsZV91cGRhdGUoRXdrX1RpbGVfTWF0
cml4ICp0bSwgdW5zaWduZWQgbG9uZyBjb2wsIHVuc2lnbmVkIGxvbmcgcm93LCBjb25zdCBFaW5h
X1JlY3RhbmdsZSAqdXBkYXRlKTsKK0VpbmFfQm9vbCBld2tfdGlsZV9tYXRyaXhfdGlsZV91cGRh
dGVfZnVsbChFd2tfVGlsZV9NYXRyaXggKnRtLCB1bnNpZ25lZCBsb25nIGNvbCwgdW5zaWduZWQg
bG9uZyByb3cpOwordm9pZCBld2tfdGlsZV9tYXRyaXhfdGlsZV91cGRhdGVzX2NsZWFyKEV3a19U
aWxlX01hdHJpeCAqdG0sIEV3a19UaWxlICp0KTsKIAotRWluYV9Cb29sIGV3a190aWxlX21hdHJp
eF91cGRhdGUoRXdrX1RpbGVfTWF0cml4KiB0bSwgY29uc3QgRWluYV9SZWN0YW5nbGUqIHVwZGF0
ZSwgZmxvYXQgem9vbSk7Ci12b2lkIGV3a190aWxlX21hdHJpeF91cGRhdGVzX3Byb2Nlc3MoRXdr
X1RpbGVfTWF0cml4KiB0bSk7Ci12b2lkIGV3a190aWxlX21hdHJpeF91cGRhdGVzX2NsZWFyKEV3
a19UaWxlX01hdHJpeCogdG0pOwotdm9pZCBld2tfdGlsZV9tYXRyaXhfZnJlZXplKEV3a19UaWxl
X01hdHJpeCogdG0pOwotdm9pZCBld2tfdGlsZV9tYXRyaXhfdGhhdyhFd2tfVGlsZV9NYXRyaXgq
IHRtKTsKK0VpbmFfQm9vbCBld2tfdGlsZV9tYXRyaXhfdXBkYXRlKEV3a19UaWxlX01hdHJpeCAq
dG0sIGNvbnN0IEVpbmFfUmVjdGFuZ2xlICp1cGRhdGUsIGZsb2F0IHpvb20pOwordm9pZCBld2tf
dGlsZV9tYXRyaXhfdXBkYXRlc19wcm9jZXNzKEV3a19UaWxlX01hdHJpeCAqdG0pOwordm9pZCBl
d2tfdGlsZV9tYXRyaXhfdXBkYXRlc19jbGVhcihFd2tfVGlsZV9NYXRyaXggKnRtKTsKK3ZvaWQg
ZXdrX3RpbGVfbWF0cml4X2ZyZWV6ZShFd2tfVGlsZV9NYXRyaXggKnRtKTsKK3ZvaWQgZXdrX3Rp
bGVfbWF0cml4X3RoYXcoRXdrX1RpbGVfTWF0cml4ICp0bSk7CiAKIC8vIHJlbW92ZSBtZSEKLXZv
aWQgZXdrX3RpbGVfbWF0cml4X2RiZyhjb25zdCBFd2tfVGlsZV9NYXRyaXgqIHRtKTsKLXZvaWQg
ZXdrX3RpbGVfdW51c2VkX2NhY2hlX2RiZyhjb25zdCBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHR1
Yyk7Cit2b2lkIGV3a190aWxlX21hdHJpeF9kYmcoY29uc3QgRXdrX1RpbGVfTWF0cml4ICp0bSk7
Cit2b2lkIGV3a190aWxlX3VudXNlZF9jYWNoZV9kYmcoY29uc3QgRXdrX1RpbGVfVW51c2VkX0Nh
Y2hlICp0dWMpOwogdm9pZCBld2tfdGlsZV9hY2NvdW50aW5nX2RiZygpOwogCi0KICNlbmRpZiAv
LyBld2tfdGlsZWRfbWF0cml4X2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a190aWxlZF9tb2RlbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21v
ZGVsLmNwcAppbmRleCA4NDA0OGNiLi44N2ZhODNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3RpbGVkX21vZGVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3RpbGVkX21vZGVsLmNwcApAQCAtMzQ1LDE2ICszNDUsMTYgQEAgdm9pZCBld2tfdGlsZV91
cGRhdGVzX3Byb2Nlc3MoRXdrX1RpbGUqIHRpbGUsIHZvaWQgKCpjYWxsYmFjaykodm9pZCogZGF0
YSwgRXdrX1QKICAgICAgICAgcmVjdC5oID0gdGlsZS0+aGVpZ2h0OwogI2lmZGVmIFRJTEVfU1RB
VFNfQUNDT1VOVF9SRU5ERVJfVElNRQogICAgICAgICBzdHJ1Y3QgdGltZXZhbCB0aW1ldjsKLSAg
ICAgICAgZG91YmxlIHJlbmRlcl9zdGFydDsKKyAgICAgICAgZG91YmxlIHJlbmRlclN0YXJ0VGlt
ZTsKICAgICAgICAgZ2V0dGltZW9mZGF5KCZ0aW1ldiwgMCk7Ci0gICAgICAgIHJlbmRlcl9zdGFy
dGlsZSA9IChkb3VibGUpdGltZXYudHZfc2VjICsKKyAgICAgICAgcmVuZGVyU3RhcnRUaW1lID0g
KGRvdWJsZSl0aW1ldi50dl9zZWMgKwogICAgICAgICAgICAgICAgICAgICAgICAoKChkb3VibGUp
dGltZXYudHZfdXNlYykgLyAxMDAwMDAwKTsKICNlbmRpZgogICAgICAgICBjYWxsYmFjaygodm9p
ZCopZGF0YSwgdGlsZSwgJnJlY3QpOwogI2lmZGVmIFRJTEVfU1RBVFNfQUNDT1VOVF9SRU5ERVJf
VElNRQogICAgICAgICBnZXR0aW1lb2ZkYXkoJnRpbWV2LCAwKTsKICAgICAgICAgdGlsZS0+c3Rh
dHMucmVuZGVyX3RpbWUgPSAoZG91YmxlKXRpbWV2LnR2X3NlYyArCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKCgoZG91YmxlKXRpbWV2LnR2X3VzZWMpIC8gMTAwMDAwMCkgLSByZW5k
ZXJfc3RhcnQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgoZG91YmxlKXRpbWV2
LnR2X3VzZWMpIC8gMTAwMDAwMCkgLSByZW5kZXJTdGFydFRpbWU7CiAjZW5kaWYKICAgICB9IGVs
c2UgaWYgKHRpbGUtPnVwZGF0ZXMpIHsKICAgICAgICAgRWluYV9JdGVyYXRvciogaXRyID0gZWlu
YV90aWxlcl9pdGVyYXRvcl9uZXcodGlsZS0+dXBkYXRlcyk7CkBAIC01MjAsNyArNTIwLDcgQEAg
dm9pZCBld2tfdGlsZV91bnVzZWRfY2FjaGVfY2xlYXIoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0
aWxlVW51c2VkQ2FjaGUpCiB9CiAKIC8qKgotICogaGVpZ2h0b2xkIHJlZmVyZW5jZSB0byBjYWNo
ZS4KKyAqIEhvbGQgcmVmZXJlbmNlIHRvIGNhY2hlLgogICoKICAqIEByZXR1cm4gc2FtZSBwb2lu
dGVyIGFzIHRha2VuLgogICoKQEAgLTYzMCw3ICs2MzAsNyBAQCB2b2lkIGV3a190aWxlX3VudXNl
ZF9jYWNoZV9hdXRvX2ZsdXNoKEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hl
KQogICogRnJlZXplIGNhY2hlIHRvIG5vdCBkbyBtYWludGVuYW5jZSB0YXNrcy4KICAqCiAgKiBN
YWludGVuYW5jZSB0YXNrcyBvcHRpbWl6ZSBjYWNoZSB1c2FnZSwgYnV0IG1heWJlIHdlIGtub3cg
d2Ugc2hvdWxkCi0gKiBoZWlnaHRvbGQgb24gdGhlbSB1bnRpbCB3ZSBkbyB0aGUgbGFzdCBvcGVy
YXRpb24sIGluIHRoaXMgY2FzZSB3ZSBmcmVlemUKKyAqIGhvbGQgb24gdGhlbSB1bnRpbCB3ZSBk
byB0aGUgbGFzdCBvcGVyYXRpb24sIGluIHRoaXMgY2FzZSB3ZSBmcmVlemUKICAqIHdoaWxlIG9w
ZXJhdGluZyBhbmQgdGhlbiB0aGF3IHdoZW4gd2UncmUgZG9uZS4KICAqCiAgKiBAc2VlIGV3a190
aWxlX3VudXNlZF9jYWNoZV90aGF3KCkKQEAgLTcwNyw4ICs3MDcsOCBAQCBFaW5hX0Jvb2wgZXdr
X3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfZ2V0KEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVu
dXNlZENhY2hlLAogICogYmVjYXVzZSB1c3VhbGx5IHdlIHdhbnQgYSBsYXp5IG9wZXJhdGlvbiBm
b3IgYmV0dGVyIHBlcmZvcm1hbmNlLgogICoKICAqIEBwYXJhbSB0aWxlVW51c2VkQ2FjaGUgY2Fj
aGUgb2YgdW51c2VkIHRpbGVzCi0gKiBAcGFyYW0gdCB0aWxlIHRvIGJlIGFkZGVkIHRvIGNhY2hl
LgotICogQHBhcmFtIHRpbGVfZnJlZV9jYiBmdW5jdGlvbiB1c2VkIHRvIGZyZWUgdGlsZXMuCisg
KiBAcGFyYW0gdGlsZSB0aWxlIHRvIGJlIGFkZGVkIHRvIGNhY2hlLgorICogQHBhcmFtIHRpbGVG
cmVlQ2FsbGJhY2sgZnVuY3Rpb24gdXNlZCB0byBmcmVlIHRpbGVzLgogICogQHBhcmFtIGRhdGEg
Y29udGV4dCB0byBnaXZlIGJhY2sgdG8gQGEgdGlsZV9mcmVlX2NiIGFzIGZpcnN0IGFyZ3VtZW50
LgogICoKICAqIEByZXR1cm4gI3RydWUgb24gc3VjY2VzcywgI2ZhbHNlIG90aGVyd2lzZS4gSWYg
QGMgdGlsZS0+dmlzaWJsZQpAQCAtNzE2LDcgKzcxNiw3IEBAIEVpbmFfQm9vbCBld2tfdGlsZV91
bnVzZWRfY2FjaGVfdGlsZV9nZXQoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2Fj
aGUsCiAgKgogICogQHNlZSBld2tfdGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCgpCiAgKi8K
LUVpbmFfQm9vbCBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQoRXdrX1RpbGVfVW51c2Vk
X0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUsIEV3a19UaWxlKiB0aWxlLCB2b2lkICgqIHRpbGVGcmVl
Q2IpKHZvaWQqIGRhdGEsIEV3a19UaWxlKiB0aWxlKSwgY29uc3Qgdm9pZCogZGF0YSkKK0VpbmFf
Qm9vbCBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQoRXdrX1RpbGVfVW51c2VkX0NhY2hl
KiB0aWxlVW51c2VkQ2FjaGUsIEV3a19UaWxlKiB0aWxlLCB2b2lkICgqIHRpbGVGcmVlQ2FsbGJh
Y2spKHZvaWQqIGRhdGEsIEV3a19UaWxlKiB0aWxlKSwgY29uc3Qgdm9pZCogZGF0YSkKIHsKICAg
ICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGVfRW50cnkqIHVudXNlZENhY2hlRW50cnk7CiAKQEAgLTcz
Nyw3ICs3MzcsNyBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfcHV0KEV3
a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlLAogCiAgICAgdW51c2VkQ2FjaGVF
bnRyeS0+dGlsZSA9IHRpbGU7CiAgICAgdW51c2VkQ2FjaGVFbnRyeS0+d2VpZ2h0ID0gMDsgLyog
Y2FsY3VsYXRlZCBqdXN0IGJlZm9yZSBzb3J0ICovCi0gICAgdW51c2VkQ2FjaGVFbnRyeS0+dGls
ZV9mcmVlLmNhbGxiYWNrID0gdGlsZUZyZWVDYjsKKyAgICB1bnVzZWRDYWNoZUVudHJ5LT50aWxl
X2ZyZWUuY2FsbGJhY2sgPSB0aWxlRnJlZUNhbGxiYWNrOwogICAgIHVudXNlZENhY2hlRW50cnkt
PnRpbGVfZnJlZS5kYXRhID0gKHZvaWQqKWRhdGE7CiAKICAgICB0aWxlVW51c2VkQ2FjaGUtPmVu
dHJpZXMuY291bnQrKzsKQEAgLTc1OCw3ICs3NTgsNyBAQCB2b2lkIGV3a190aWxlX3VudXNlZF9j
YWNoZV9kYmcoY29uc3QgRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUpCiAg
ICAgRUlOQV9MSVNUX0ZPUkVBQ0godGlsZVVudXNlZENhY2hlLT5lbnRyaWVzLmxpc3QsIGxpc3Qs
IGl0ZW0pIHsKICAgICAgICAgY29uc3QgRXdrX1RpbGUqIHRpbGUgPSBzdGF0aWNfY2FzdDxFd2tf
VGlsZV9VbnVzZWRfQ2FjaGVfRW50cnkqPihpdGVtKS0+dGlsZTsKICAgICAgICAgcHJpbnRmKCIg
WyUzbHUsJTNsdSArICVkeCVkIEAgJTAuM2ZdJWMiLAotICAgICAgICAgICAgICAgdGlsZS0+Y29s
LCB0aWxlLT5yb3csIHRpbGUtPndpZHRoLCB0aWxlLT5oZWlnaHQsIHRpbGUtPnpvb20sCisgICAg
ICAgICAgICAgICB0aWxlLT5jb2x1bW4sIHRpbGUtPnJvdywgdGlsZS0+d2lkdGgsIHRpbGUtPmhl
aWdodCwgdGlsZS0+em9vbSwKICAgICAgICAgICAgICAgIHRpbGUtPnZpc2libGUgPyAnKicgOiAn
ICcpOwogCiAgICAgICAgIGlmICghKGNvdW50ICUgNCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3RpbGVkX21vZGVsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3RpbGVkX21vZGVsLmgKaW5kZXggNTg3MTZjNS4uZGFhZjIxMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tb2RlbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdGlsZWRfbW9kZWwuaApAQCAtMjYsMzIgKzI2LDMxIEBACiAjaW5jbHVkZSA8RXZh
cy5oPgogCiAvKiBtb2RlbCAqLwotRXdrX1RpbGUqIGV3a190aWxlX25ldyhFdmFzKiBldmFzLCBF
dmFzX0Nvb3JkIHcsIEV2YXNfQ29vcmQgaCwgZmxvYXQgem9vbSwgRXZhc19Db2xvcnNwYWNlIGNz
cGFjZSk7Ci12b2lkIGV3a190aWxlX2ZyZWUoRXdrX1RpbGUqIHQpOwotdm9pZCBld2tfdGlsZV91
bnVzZWRfY2FjaGVfY2xlYXIoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0dWMpOwotdm9pZCBld2tf
dGlsZV9zaG93KEV3a19UaWxlKiB0KTsKLXZvaWQgZXdrX3RpbGVfaGlkZShFd2tfVGlsZSogdCk7
Ci1zaXplX3QgZXdrX3RpbGVfbWVtb3J5X3NpemVfZ2V0KGNvbnN0IEV3a19UaWxlKiB0KTsKLUVp
bmFfQm9vbCBld2tfdGlsZV92aXNpYmxlX2dldChFd2tfVGlsZSogdCk7Ci12b2lkIGV3a190aWxl
X3VwZGF0ZV9mdWxsKEV3a19UaWxlKiB0KTsKLXZvaWQgZXdrX3RpbGVfdXBkYXRlX2FyZWEoRXdr
X1RpbGUqIHQsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiByKTsKLXZvaWQgZXdrX3RpbGVfdXBkYXRl
c19wcm9jZXNzKEV3a19UaWxlKiB0LCB2b2lkICgqY2IpKHZvaWQqIGRhdGEsIEV3a19UaWxlKiB0
LCBjb25zdCBFaW5hX1JlY3RhbmdsZSogdXBkYXRlKSwgY29uc3Qgdm9pZCogZGF0YSk7Ci12b2lk
IGV3a190aWxlX3VwZGF0ZXNfY2xlYXIoRXdrX1RpbGUqIHQpOworRXdrX1RpbGUgKmV3a190aWxl
X25ldyhFdmFzICpldmFzLCBFdmFzX0Nvb3JkIHcsIEV2YXNfQ29vcmQgaCwgZmxvYXQgem9vbSwg
RXZhc19Db2xvcnNwYWNlIGNzcGFjZSk7Cit2b2lkIGV3a190aWxlX2ZyZWUoRXdrX1RpbGUgKnQp
Owordm9pZCBld2tfdGlsZV91bnVzZWRfY2FjaGVfY2xlYXIoRXdrX1RpbGVfVW51c2VkX0NhY2hl
ICp0dWMpOwordm9pZCBld2tfdGlsZV9zaG93KEV3a19UaWxlICp0KTsKK3ZvaWQgZXdrX3RpbGVf
aGlkZShFd2tfVGlsZSAqdCk7CitzaXplX3QgZXdrX3RpbGVfbWVtb3J5X3NpemVfZ2V0KGNvbnN0
IEV3a19UaWxlICp0KTsKK0VpbmFfQm9vbCBld2tfdGlsZV92aXNpYmxlX2dldChFd2tfVGlsZSAq
dCk7Cit2b2lkIGV3a190aWxlX3VwZGF0ZV9mdWxsKEV3a19UaWxlICp0KTsKK3ZvaWQgZXdrX3Rp
bGVfdXBkYXRlX2FyZWEoRXdrX1RpbGUgKnQsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlICpyKTsKK3Zv
aWQgZXdrX3RpbGVfdXBkYXRlc19wcm9jZXNzKEV3a19UaWxlICp0LCB2b2lkICgqY2IpKHZvaWQg
KmRhdGEsIEV3a19UaWxlICp0LCBjb25zdCBFaW5hX1JlY3RhbmdsZSAqdXBkYXRlKSwgY29uc3Qg
dm9pZCAqZGF0YSk7Cit2b2lkIGV3a190aWxlX3VwZGF0ZXNfY2xlYXIoRXdrX1RpbGUgKnQpOwog
CiAvKiBjYWNoZSBvZiB1bnVzZWQgdGlsZXMgKi8KLUV3a19UaWxlX1VudXNlZF9DYWNoZSogZXdr
X3RpbGVfdW51c2VkX2NhY2hlX25ldyhzaXplX3QgbWF4KTsKLXZvaWQgZXdrX3RpbGVfdW51c2Vk
X2NhY2hlX2xvY2tfYXJlYShFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHR1YywgRXZhc19Db29yZCB4
LCBFdmFzX0Nvb3JkIHksIEV2YXNfQ29vcmQgdywgRXZhc19Db29yZCBoLCBmbG9hdCB6b29tKTsK
LXZvaWQgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3VubG9ja19hcmVhKEV3a19UaWxlX1VudXNlZF9D
YWNoZSogdHVjKTsKLUV3a19UaWxlX1VudXNlZF9DYWNoZSogZXdrX3RpbGVfdW51c2VkX2NhY2hl
X3JlZihFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHR1Yyk7Ci12b2lkIGV3a190aWxlX3VudXNlZF9j
YWNoZV91bnJlZihFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHR1Yyk7CitFd2tfVGlsZV9VbnVzZWRf
Q2FjaGUgKmV3a190aWxlX3VudXNlZF9jYWNoZV9uZXcoc2l6ZV90IG1heCk7Cit2b2lkIGV3a190
aWxlX3VudXNlZF9jYWNoZV9sb2NrX2FyZWEoRXdrX1RpbGVfVW51c2VkX0NhY2hlICp0dWMsIEV2
YXNfQ29vcmQgeCwgRXZhc19Db29yZCB5LCBFdmFzX0Nvb3JkIHcsIEV2YXNfQ29vcmQgaCwgZmxv
YXQgem9vbSk7Cit2b2lkIGV3a190aWxlX3VudXNlZF9jYWNoZV91bmxvY2tfYXJlYShFd2tfVGls
ZV9VbnVzZWRfQ2FjaGUgKnR1Yyk7CitFd2tfVGlsZV9VbnVzZWRfQ2FjaGUgKmV3a190aWxlX3Vu
dXNlZF9jYWNoZV9yZWYoRXdrX1RpbGVfVW51c2VkX0NhY2hlICp0dWMpOwordm9pZCBld2tfdGls
ZV91bnVzZWRfY2FjaGVfdW5yZWYoRXdrX1RpbGVfVW51c2VkX0NhY2hlICp0dWMpOwogCi12b2lk
IGV3a190aWxlX3VudXNlZF9jYWNoZV9kaXJ0eShFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHR1Yyk7
Cit2b2lkIGV3a190aWxlX3VudXNlZF9jYWNoZV9kaXJ0eShFd2tfVGlsZV9VbnVzZWRfQ2FjaGUg
KnR1Yyk7CiAKLXZvaWQgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZShFd2tfVGlsZV9VbnVz
ZWRfQ2FjaGUqIHR1Yyk7Ci12b2lkIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3KEV3a19UaWxl
X1VudXNlZF9DYWNoZSogdHVjKTsKK3ZvaWQgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZShF
d2tfVGlsZV9VbnVzZWRfQ2FjaGUgKnR1Yyk7Cit2b2lkIGV3a190aWxlX3VudXNlZF9jYWNoZV90
aGF3KEV3a19UaWxlX1VudXNlZF9DYWNoZSAqdHVjKTsKIAotRWluYV9Cb29sIGV3a190aWxlX3Vu
dXNlZF9jYWNoZV90aWxlX2dldChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHR1YywgRXdrX1RpbGUq
IHQpOwotRWluYV9Cb29sIGV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1dChFd2tfVGlsZV9V
bnVzZWRfQ2FjaGUqIHR1YywgRXdrX1RpbGUqIHQsIHZvaWQgKCogdGlsZV9mcmVlX2NiKSh2b2lk
KiBkYXRhLCBFd2tfVGlsZSogdCksIGNvbnN0IHZvaWQqIGRhdGEpOworRWluYV9Cb29sIGV3a190
aWxlX3VudXNlZF9jYWNoZV90aWxlX2dldChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUgKnR1YywgRXdr
X1RpbGUgKnQpOworRWluYV9Cb29sIGV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1dChFd2tf
VGlsZV9VbnVzZWRfQ2FjaGUgKnR1YywgRXdrX1RpbGUgKnQsIHZvaWQgKCogdGlsZV9mcmVlX2Ni
KSh2b2lkICpkYXRhLCBFd2tfVGlsZSAqdCksIGNvbnN0IHZvaWQgKmRhdGEpOwogCiAjZW5kaWYg
Ly8gZXdrX3RpbGVkX21vZGVsX2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a191dGlsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3V0aWwuaAppbmRleCAyMzcx
ODg4Li4zYjMyZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3V0aWwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3V0aWwuaApAQCAtMjksNiArMjksNiBA
QAogI2luY2x1ZGUgPEV2YXMuaD4KICNpbmNsdWRlIDxjYWlyby5oPgogCi1FdmFzX09iamVjdCog
ZXdrX3V0aWxfaW1hZ2VfZnJvbV9jYWlyb19zdXJmYWNlX2FkZChFdmFzKiBjYW52YXMsIGNhaXJv
X3N1cmZhY2VfdCogc3VyZmFjZSk7CitFdmFzX09iamVjdCAqZXdrX3V0aWxfaW1hZ2VfZnJvbV9j
YWlyb19zdXJmYWNlX2FkZChFdmFzICpjYW52YXMsIGNhaXJvX3N1cmZhY2VfdCAqc3VyZmFjZSk7
CiAKICNlbmRpZiAvLyBld2tfdXRpbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRl
eCA4NTNiMzQyLi4zZDlhZmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTIx
Niw1NCArMjE2LDU0IEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICNpZm5kZWYg
RVdLX1RZUEVfQ0hFQ0sKICNkZWZpbmUgRVdLX1ZJRVdfVFlQRV9DSEVDSyhld2tWaWV3LCAuLi4p
IGRvIHsgfSB3aGlsZSAoMCkKICNlbHNlCi0jZGVmaW5lIEVXS19WSUVXX1RZUEVfQ0hFQ0soZXdr
VmlldywgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgZG8g
eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgICAgIGNvbnN0IGNoYXIqIF90bXBfb3R5cGUgPSBldmFzX29iamVjdF90
eXBlX2dldChld2tWaWV3KTsgICAgICAgICAgICAgICBcCi0gICAgICAgIGNvbnN0IEV2YXNfU21h
cnQqIF90bXBfcyA9IGV2YXNfb2JqZWN0X3NtYXJ0X3NtYXJ0X2dldChld2tWaWV3KTsgICAgICBc
Ci0gICAgICAgIGlmIChFSU5BX1VOTElLRUxZKCFfdG1wX3MpKSB7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBFSU5BX0xPR19DUklUICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgKCIl
cCAoJXMpIGlzIG5vdCBhIHNtYXJ0IG9iamVjdCEiLCBld2tWaWV3LCAgICAgICAgICAgICAgICAg
ICBcCi0gICAgICAgICAgICAgICAgX3RtcF9vdHlwZSA/IF90bXBfb3R5cGUgOiAiKG51bGwpIik7
ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgfSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyNkZWZpbmUgRVdLX1ZJRVdfVFlQRV9DSEVDSyhld2tWaWV3LCAuLi4pIFwKKyAgICBkbyB7IFwK
KyAgICAgICAgY29uc3QgY2hhciogX3RtcF9vdHlwZSA9IGV2YXNfb2JqZWN0X3R5cGVfZ2V0KGV3
a1ZpZXcpOyBcCisgICAgICAgIGNvbnN0IEV2YXNfU21hcnQqIF90bXBfcyA9IGV2YXNfb2JqZWN0
X3NtYXJ0X3NtYXJ0X2dldChld2tWaWV3KTsgXAorICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWSgh
X3RtcF9zKSkgeyBcCisgICAgICAgICAgICBFSU5BX0xPR19DUklUIFwKKyAgICAgICAgICAgICAg
ICAoIiVwICglcykgaXMgbm90IGEgc21hcnQgb2JqZWN0ISIsIGV3a1ZpZXcsIFwKKyAgICAgICAg
ICAgICAgICBfdG1wX290eXBlID8gX3RtcF9vdHlwZSA6ICIobnVsbCkiKTsgXAorICAgICAgICAg
ICAgcmV0dXJuIF9fVkFfQVJHU19fOyBcCisgICAgICAgIH0gXAogICAgICAgICBjb25zdCBFdmFz
X1NtYXJ0X0NsYXNzKiBfdG1wX3NjID0gZXZhc19zbWFydF9jbGFzc19nZXQoX3RtcF9zKTsgXAot
ICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWSghX3RtcF9zYykpIHsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgRUlOQV9MT0dfQ1JJVCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICgiJXAg
KCVzKSBpcyBub3QgYSBzbWFydCBvYmplY3QhIiwgZXdrVmlldywgICAgICAgICAgICAgICAgICAg
XAotICAgICAgICAgICAgICAgIF90bXBfb3R5cGUgPyBfdG1wX290eXBlIDogIihudWxsKSIpOyAg
ICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIH0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgIGlmIChFSU5BX1VOTElLRUxZKF90bXBfc2MtPmRhdGEgIT0gZXdrVmlld1R5cGVTdHJp
bmcpKSB7ICAgICAgICBcCi0gICAgICAgICAgICBFSU5BX0xPR19DUklUICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgKCIlcCAo
JXMpIGlzIG5vdCBvZiBhbiBld2tfdmlldyAobmVlZCAlcCwgZ290ICVwKSEiLCAgICBcCi0gICAg
ICAgICAgICAgICAgZXdrVmlldywgX3RtcF9vdHlwZSA/IF90bXBfb3R5cGUgOiAiKG51bGwpIiwg
ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICBld2tWaWV3VHlwZVN0cmluZywgX3Rt
cF9zYy0+ZGF0YSk7ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgcmV0dXJuIF9f
VkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
ICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWSghX3RtcF9zYykpIHsgXAor
ICAgICAgICAgICAgRUlOQV9MT0dfQ1JJVCBcCisgICAgICAgICAgICAgICAgKCIlcCAoJXMpIGlz
IG5vdCBhIHNtYXJ0IG9iamVjdCEiLCBld2tWaWV3LCBcCisgICAgICAgICAgICAgICAgX3RtcF9v
dHlwZSA/IF90bXBfb3R5cGUgOiAiKG51bGwpIik7IFwKKyAgICAgICAgICAgIHJldHVybiBfX1ZB
X0FSR1NfXzsgXAorICAgICAgICB9IFwKKyAgICAgICAgaWYgKEVJTkFfVU5MSUtFTFkoX3RtcF9z
Yy0+ZGF0YSAhPSBld2tWaWV3VHlwZVN0cmluZykpIHsgXAorICAgICAgICAgICAgRUlOQV9MT0df
Q1JJVCBcCisgICAgICAgICAgICAgICAgKCIlcCAoJXMpIGlzIG5vdCBvZiBhbiBld2tfdmlldyAo
bmVlZCAlcCwgZ290ICVwKSEiLCBcCisgICAgICAgICAgICAgICAgZXdrVmlldywgX3RtcF9vdHlw
ZSA/IF90bXBfb3R5cGUgOiAiKG51bGwpIiwgXAorICAgICAgICAgICAgICAgIGV3a1ZpZXdUeXBl
U3RyaW5nLCBfdG1wX3NjLT5kYXRhKTsgXAorICAgICAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19f
OyBcCisgICAgICAgIH0gXAogICAgIH0gd2hpbGUgKDApCiAjZW5kaWYKIAotI2RlZmluZSBFV0tf
VklFV19TRF9HRVQoZXdrVmlldywgcHRyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICBFd2tfVmlld19TbWFydF9EYXRhKiBwdHIgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19T
bWFydF9EYXRhKj4oZXZhc19vYmplY3Rfc21hcnRfZGF0YV9nZXQoZXdrVmlldykpCisjZGVmaW5l
IEVXS19WSUVXX1NEX0dFVChld2tWaWV3LCBwb2ludGVyKSBcCisgICAgRXdrX1ZpZXdfU21hcnRf
RGF0YSogcG9pbnRlciA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihldmFzX29i
amVjdF9zbWFydF9kYXRhX2dldChld2tWaWV3KSkKIAotI2RlZmluZSBFV0tfVklFV19TRF9HRVRf
T1JfUkVUVVJOKGV3a1ZpZXcsIHB0ciwgLi4uKSAgICAgICAgICBcCi0gICAgRVdLX1ZJRVdfVFlQ
RV9DSEVDSyhld2tWaWV3LCBfX1ZBX0FSR1NfXyk7ICAgICAgICAgICAgICAgIFwKLSAgICBFV0tf
VklFV19TRF9HRVQoZXdrVmlldywgcHRyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgIGlmICghcHRyKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgICAgIENSSVRJQ0FMKCJubyBzbWFydCBkYXRhIGZvciBvYmplY3QgJXAgKCVzKSIsICAg
IFwKLSAgICAgICAgICAgICAgICAgZXdrVmlldywgZXZhc19vYmplY3RfdHlwZV9nZXQoZXdrVmll
dykpOyAgICAgICAgICAgXAotICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisjZGVmaW5lIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdr
VmlldywgcG9pbnRlciwgLi4uKSBcCisgICAgRVdLX1ZJRVdfVFlQRV9DSEVDSyhld2tWaWV3LCBf
X1ZBX0FSR1NfXyk7IFwKKyAgICBFV0tfVklFV19TRF9HRVQoZXdrVmlldywgcG9pbnRlcik7IFwK
KyAgICBpZiAoIXBvaW50ZXIpIHsgXAorICAgICAgICBDUklUSUNBTCgibm8gc21hcnQgZGF0YSBm
b3Igb2JqZWN0ICVwICglcykiLCBcCisgICAgICAgICAgICAgICAgIGV3a1ZpZXcsIGV2YXNfb2Jq
ZWN0X3R5cGVfZ2V0KGV3a1ZpZXcpKTsgXAorICAgICAgICByZXR1cm4gX19WQV9BUkdTX187IFwK
ICAgICB9CiAKLSNkZWZpbmUgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwdHIpICAgICAg
ICAgICAgICBcCi0gICAgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhICpwdHIgPSBzbWFydERhdGEtPl9w
cml2CisjZGVmaW5lIEVXS19WSUVXX1BSSVZfR0VUKHNtYXJ0RGF0YSwgcG9pbnRlcikgXAorICAg
IEV3a19WaWV3X1ByaXZhdGVfRGF0YSogcG9pbnRlciA9IHNtYXJ0RGF0YS0+X3ByaXYKIAotI2Rl
ZmluZSBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwdHIsIC4uLikgICAg
ICAgICAgICAgICBcCi0gICAgRVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwdHIpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBpZiAoIXB0cikgeyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIENSSVRJQ0FM
KCJubyBwcml2YXRlIGRhdGEgZm9yIG9iamVjdCAlcCAoJXMpIiwgICAgICAgICAgXAotICAgICAg
ICAgICAgICAgICBzbWFydERhdGEtPnNlbGYsIGV2YXNfb2JqZWN0X3R5cGVfZ2V0KHNtYXJ0RGF0
YS0+c2VsZikpOyAgICAgXAotICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgRVdLX1ZJRVdfUFJJVl9HRVRfT1Jf
UkVUVVJOKHNtYXJ0RGF0YSwgcG9pbnRlciwgLi4uKSBcCisgICAgRVdLX1ZJRVdfUFJJVl9HRVQo
c21hcnREYXRhLCBwb2ludGVyKTsgXAorICAgIGlmICghcG9pbnRlcikgeyBcCisgICAgICAgIENS
SVRJQ0FMKCJubyBwcml2YXRlIGRhdGEgZm9yIG9iamVjdCAlcCAoJXMpIiwgXAorICAgICAgICAg
ICAgICAgICBzbWFydERhdGEtPnNlbGYsIGV2YXNfb2JqZWN0X3R5cGVfZ2V0KHNtYXJ0RGF0YS0+
c2VsZikpOyBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgXAogICAgIH0KIAogI2RlZmlu
ZSBFV0tfVklFV19USUxFRF9UWVBFX0NIRUNLX09SX1JFVFVSTihld2tWaWV3LCAuLi4pIFwKQEAg
LTQxMCwxMiArNDEwLDEyIEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zY3JvbGxzX2ZsdXNoKEV3
a19WaWV3X1ByaXZhdGVfRGF0YSogcHJpdikKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3Nt
YXJ0X2ZvY3VzX2luKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIHsKICAgICBFV0tf
VklFV19QUklWX0dFVChzbWFydERhdGEsIHByaXYpOwotICAgIFdlYkNvcmU6OkZvY3VzQ29udHJv
bGxlciogZmMgPSBwcml2LT5wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKTsKLSAgICBEQkcoImV3a1Zp
ZXc9JXAsIGZjPSVwIiwgc21hcnREYXRhLT5zZWxmLCBmYyk7Ci0gICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk5fVkFMKGZjLCBmYWxzZSk7CisgICAgV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVy
KiBmb2N1c0NvbnRyb2xsZXIgPSBwcml2LT5wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKTsKKyAgICBE
QkcoImV3a1ZpZXc9JXAsIGZvY3VzQ29udHJvbGxlcj0lcCIsIHNtYXJ0RGF0YS0+c2VsZiwgZm9j
dXNDb250cm9sbGVyKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZm9jdXND
b250cm9sbGVyLCBmYWxzZSk7CiAKLSAgICBmYy0+c2V0QWN0aXZlKHRydWUpOwotICAgIGZjLT5z
ZXRGb2N1c2VkKHRydWUpOworICAgIGZvY3VzQ29udHJvbGxlci0+c2V0QWN0aXZlKHRydWUpOwor
ICAgIGZvY3VzQ29udHJvbGxlci0+c2V0Rm9jdXNlZCh0cnVlKTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApAQCAtOTk0LDcgKzk5NCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19zbWFydF9mbHVz
aChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3
a192aWV3X3NtYXJ0X3ByZV9yZW5kZXJfcmVnaW9uKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0
RGF0YSwgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHksIEV2YXNfQ29vcmQgd2lkdGgsIEV2YXNf
Q29vcmQgaGVpZ2h0LCBmbG9hdCB6b29tKQogewotICAgIFdSTigibm90IHN1cHBvcnRlZCBieSBl
bmdpbmUuIHNtYXJ0REF0YT0lcCBhcmVhPSVkLCVkKyVkeCVkLCB6b29tPSVmIiwKKyAgICBXUk4o
Im5vdCBzdXBwb3J0ZWQgYnkgZW5naW5lLiBzbWFydERhdGE9JXAgYXJlYT0lZCwlZCslZHglZCwg
em9vbT0lZiIsCiAgICAgICAgIHNtYXJ0RGF0YSwgeCwgeSwgd2lkdGgsIGhlaWdodCwgem9vbSk7
CiAgICAgcmV0dXJuIGZhbHNlOwogfQpAQCAtMTc5MCw3ICsxNzkwLDcgQEAgRWluYV9Cb29sIGV3
a192aWV3X3ByZV9yZW5kZXJfcmVnaW9uKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX0Nvb3Jk
IHgsIEV2YXNfQ28KICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0
RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEs
IHByaXYsIGZhbHNlKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnRE
YXRhLT5hcGktPnByZV9yZW5kZXJfcmVnaW9uLCBmYWxzZSk7Ci0gICAgZmxvYXQgY3VyX3pvb207
CisgICAgZmxvYXQgY3VycmVudFpvb207CiAgICAgRXZhc19Db29yZCBjb250ZW50c1dpZHRoLCBj
b250ZW50c0hlaWdodDsKIAogICAgIC8qIFdoZW4gZG9pbmcgYW5pbWF0ZWQgem9vbSBpdCdzIG5v
dCBwb3NzaWJsZSB0byBjYWxsIHByZS1yZW5kZXIgc2luY2UgaXQKQEAgLTE3OTksMTUgKzE3OTks
MTUgQEAgRWluYV9Cb29sIGV3a192aWV3X3ByZV9yZW5kZXJfcmVnaW9uKEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ28KICAgICBpZiAocHJpdi0+YW5pbWF0ZWRab29t
LmFuaW1hdG9yKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBjdXJfem9vbSA9IGV3a19m
cmFtZV9wYWdlX3pvb21fZ2V0KHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSk7CisgICAgY3VycmVudFpv
b20gPSBld2tfZnJhbWVfcGFnZV96b29tX2dldChzbWFydERhdGEtPm1haW5fZnJhbWUpOwogCi0g
ICAgaWYgKGN1cl96b29tIDwgMC4wMDAwMSkKKyAgICBpZiAoY3VycmVudFpvb20gPCAwLjAwMDAx
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFld2tfZnJhbWVfY29udGVudHNfc2l6
ZV9nZXQoc21hcnREYXRhLT5tYWluX2ZyYW1lLCAmY29udGVudHNXaWR0aCwgJmNvbnRlbnRzSGVp
Z2h0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgY29udGVudHNXaWR0aCAqPSB6b29t
IC8gY3VyX3pvb207Ci0gICAgY29udGVudHNIZWlnaHQgKj0gem9vbSAvIGN1cl96b29tOworICAg
IGNvbnRlbnRzV2lkdGggKj0gem9vbSAvIGN1cnJlbnRab29tOworICAgIGNvbnRlbnRzSGVpZ2h0
ICo9IHpvb20gLyBjdXJyZW50Wm9vbTsKICAgICBEQkcoInJlZ2lvbiAlZCwlZCslZHglZCBAICVm
IGNvbnRlbnRzPSVkeCVkIiwgeCwgeSwgd2lkdGgsIGhlaWdodCwgem9vbSwgY29udGVudHNXaWR0
aCwgY29udGVudHNIZWlnaHQpOwogCiAgICAgaWYgKHggKyB3aWR0aCA+IGNvbnRlbnRzV2lkdGgp
CkBAIC0yOTU3LDggKzI5NTcsOCBAQCB2b2lkIGV3a192aWV3X3Jlc3RvcmVfc3RhdGUoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSkKICAqIEBwYXJhbSBld2tWaWV3IEN1
cnJlbnQgdmlldy4KICAqIEBwYXJhbSBqYXZhc2NyaXB0IEBjIHRydWUgaWYgdGhlIG5ldyB3aW5k
b3cgaXMgb3JpZ2luYXRlZCBmcm9tIGphdmFzY3JpcHQsCiAgKiBAYyBmYWxzZSBvdGhlcndpc2UK
LSAqIEBwYXJhbSB3aWR0aGluZG93X2ZlYXR1cmVzIEZlYXR1cmVzIG9mIHRoZSBuZXcgd2luZG93
IGJlaW5nIGNyZWF0ZWQuIElmIGl0J3MgQGMKLSAqIE5VTEwsIGl0IHdpbGwgYmUgY3JlYXRlZCBh
IHdpbmRvdyB3aXRoIGRlZmF1bHQgZmVhdHVyZXMuCisgKiBAcGFyYW0gd2luZG93X2ZlYXR1cmVz
IEZlYXR1cmVzIG9mIHRoZSBuZXcgd2luZG93IGJlaW5nIGNyZWF0ZWQuIElmIGl0J3MgQGMKKyAq
IDAsIGl0IHdpbGwgYmUgY3JlYXRlZCBhIHdpbmRvdyB3aXRoIGRlZmF1bHQgZmVhdHVyZXMuCiAg
KgogICogQHJldHVybiBOZXcgdmlldywgaW4gY2FzZSBzbWFydCBjbGFzcyBpbXBsZW1lbnRzIHRo
ZSBjcmVhdGlvbiBvZiBuZXcgd2luZG93czsKICAqIGVsc2UsIGN1cnJlbnQgdmlldyBAcGFyYW0g
ZXdrVmlldyBvciBAYyAwIG9uIGZhaWx1cmUuCkBAIC0zMDUwLDcgKzMwNTAsNyBAQCB2b2lkIGV3
a192aWV3X3Rvb2xiYXJzX3Zpc2libGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIHZp
c2libGUpCiAgKi8KIHZvaWQgZXdrX3ZpZXdfdG9vbGJhcnNfdmlzaWJsZV9nZXQoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIGJvb2wqIHZpc2libGUpCiB7Ci0gICAgREJHKCIlcywgbz0lcCIsIF9fZnVu
Y19fLCBld2tWaWV3KTsKKyAgICBEQkcoIiVzLCBld2tWaWV3PSVwIiwgX19mdW5jX18sIGV3a1Zp
ZXcpOwogICAgICp2aXNpYmxlID0gZmFsc2U7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJh
Y2tfY2FsbChld2tWaWV3LCAidG9vbGJhcnMsdmlzaWJsZSxnZXQiLCB2aXNpYmxlKTsKIH0KQEAg
LTMwODMsNyArMzA4Myw3IEBAIHZvaWQgZXdrX3ZpZXdfc3RhdHVzYmFyX3Zpc2libGVfc2V0KEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBib29sICB2aXNpYmxlKQogICovCiB2b2lkIGV3a192aWV3X3N0
YXR1c2Jhcl92aXNpYmxlX2dldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCogdmlzaWJsZSkK
IHsKLSAgICBEQkcoIiVzLCBvPSVwIiwgX19mdW5jX18sIGV3a1ZpZXcpOworICAgIERCRygiJXMs
IGV3a1ZpZXc9JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CiAgICAgKnZpc2libGUgPSBmYWxzZTsK
ICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJzdGF0dXNiYXIs
dmlzaWJsZSxnZXQiLCB2aXNpYmxlKTsKIH0KQEAgLTMxMzIsNyArMzEzMiw3IEBAIHZvaWQgZXdr
X3ZpZXdfc2Nyb2xsYmFyc192aXNpYmxlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCB2
aXNpYmxlKQogICovCiB2b2lkIGV3a192aWV3X3Njcm9sbGJhcnNfdmlzaWJsZV9nZXQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGJvb2wqIHZpc2libGUpCiB7Ci0gICAgREJHKCIlcywgbz0lcCIsIF9f
ZnVuY19fLCBld2tWaWV3KTsKKyAgICBEQkcoIiVzLCBld2tWaWV3PSVwIiwgX19mdW5jX18sIGV3
a1ZpZXcpOwogICAgICp2aXNpYmxlID0gZmFsc2U7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2Fs
bGJhY2tfY2FsbChld2tWaWV3LCAic2Nyb2xsYmFycyx2aXNpYmxlLGdldCIsIHZpc2libGUpOwog
fQpAQCAtMzE2NSw3ICszMTY1LDcgQEAgdm9pZCBld2tfdmlld19tZW51YmFyX3Zpc2libGVfc2V0
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIHZpc2libGUpCiAgKi8KIHZvaWQgZXdrX3ZpZXdf
bWVudWJhcl92aXNpYmxlX2dldChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCogdmlzaWJsZSkK
IHsKLSAgICBEQkcoIiVzLCBvPSVwIiwgX19mdW5jX18sIGV3a1ZpZXcpOworICAgIERCRygiJXMs
IGV3a1ZpZXc9JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CiAgICAgKnZpc2libGUgPSBmYWxzZTsK
ICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJtZW51YmFyLHZp
c2libGUsZ2V0IiwgdmlzaWJsZSk7CiB9CkBAIC0zNTkzLDcgKzM1OTMsNyBAQCBFaW5hX0Jvb2wg
ZXdrX3ZpZXdfem9vbV9yYW5nZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGZsb2F0IG1pblNj
YWxlLCBmbG9hdCBtYQogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEs
IHByaXYsIGZhbHNlKTsKIAogICAgIGlmIChtYXhTY2FsZSA8IG1pblNjYWxlKSB7Ci0gICAgICAg
IFdSTigibWluX3NjYWxlIGlzIGxhcmdlciB0aGFuIG1heF9zY2FsZSIpOworICAgICAgICBXUk4o
Im1pblNjYWxlIGlzIGxhcmdlciB0aGFuIG1heFNjYWxlIik7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5o
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKaW5kZXggYTQzMzUzNy4uZDM0NzRh
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKQEAgLTE0NDIsNyArMTQ0Miw3IEBAIEVBUEkg
RWluYV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdfZW5hYmxlX3BsdWdpbnNfc2V0KEV2YXNfT2Jq
ZWN0ICpvLCBFaW5hX0Jvb2wKICAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIGlmIHRoZSBmcmFtZSBm
bGF0dGVuaW5nIGZlYXR1cmUgaXMgZW5hYmxlZCwKICAqICAgICAgICAgQGMgRUlOQV9GQUxTRSBp
ZiBub3Qgb3Igb24gZmFpbHVyZQogICovCi1FQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0
aW5nX2VuYWJsZV9mcmFtZV9mbGF0dGVuaW5nX2dldChjb25zdCBFdmFzX09iamVjdCogbyk7CitF
QVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX2VuYWJsZV9mcmFtZV9mbGF0dGVuaW5n
X2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CiAKIC8qKgogICogRW5hYmxlcy9kaXNhYmxlcyB0
aGUgZnJhbWUgZmxhdHRlbmluZyBmZWF0dXJlLgpAQCAtMTQ1Myw3ICsxNDUzLDcgQEAgRUFQSSBF
aW5hX0Jvb2wgICAgZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVfZnJhbWVfZmxhdHRlbmluZ19nZXQo
Y29uc3QgRXZhc19PYmplY3QKICAqCiAgKiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBvbiBzdWNjZXNz
IG9yIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZQogICovCi1FQVBJIEVpbmFfQm9vbCAgICBld2tf
dmlld19zZXR0aW5nX2VuYWJsZV9mcmFtZV9mbGF0dGVuaW5nX3NldChFdmFzX09iamVjdCogbywg
RWluYV9Cb29sIGVuYWJsZSk7CitFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19zZXR0aW5nX2Vu
YWJsZV9mcmFtZV9mbGF0dGVuaW5nX3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIGVuYWJs
ZSk7CiAKIC8qKgogICogUXVlcmllcyBpZiB0aGUgc2NyaXB0cyBjYW4gb3BlbiB0aGUgbmV3IHdp
bmRvd3MuCkBAIC0yMjg4LDcgKzIyODgsNyBAQCB0eXBlZGVmIGVudW0gX0V3a19QYWdlX1Zpc2li
aWxpdHlfU3RhdGUgRXdrX1BhZ2VfVmlzaWJpbGl0eV9TdGF0ZTsKICAqCiAgKiBAcmV0dXJuIEBj
IEVJTkFfVFJVRSBvbiBzdWNjZXNzIG9yIEBjIEVJTkFfRkFMU0Ugb24gZmFpbHVyZS4KICAqLwot
RUFQSSBFaW5hX0Jvb2wgZXdrX3ZpZXdfdmlzaWJpbGl0eV9zdGF0ZV9zZXQoRXZhc19PYmplY3Qq
IG8sIEV3a19QYWdlX1Zpc2liaWxpdHlfU3RhdGUgcGFnZV92aXNpYmxlX3N0YXRlLCBFaW5hX0Jv
b2wgaW5pdGlhbF9zdGF0ZSk7CitFQVBJIEVpbmFfQm9vbCBld2tfdmlld192aXNpYmlsaXR5X3N0
YXRlX3NldChFdmFzX09iamVjdCAqbywgRXdrX1BhZ2VfVmlzaWJpbGl0eV9TdGF0ZSBwYWdlX3Zp
c2libGVfc3RhdGUsIEVpbmFfQm9vbCBpbml0aWFsX3N0YXRlKTsKIAogLyoqCiAgKiBHZXRzIHRo
ZSB2aXNpYmlsaXR5IHN0YXRlIG9mIHRoZSBwYWdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3X3NpbmdsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXdfc2luZ2xlLmNwcAppbmRleCBlNWU4ZWVmLi5jNzA4NGM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfc2luZ2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXdfc2luZ2xlLmNwcApAQCAtOSw3ICs5LDcgQEAKIAogICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAogICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gICAgTUVSY2hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogICAgIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogCiAgICAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQpAQCAtMjA5LDggKzIwOSw4IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3Npbmds
ZV9zbWFydF9yZXBhaW50c19wcm9jZXNzKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtCiAgICAgRXZh
c19Db29yZCBvdywgb2g7CiAgICAgdm9pZCogcGl4ZWxzOwogICAgIEVpbmFfUmVjdGFuZ2xlKiBy
ZWN0OwotICAgIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBwcjsKLSAgICBjb25zdCBFaW5hX1JlY3Rh
bmdsZSogcHJfZW5kOworICAgIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBwYWludFJlcXVlc3Q7Cisg
ICAgY29uc3QgRWluYV9SZWN0YW5nbGUqIHBhaW50UmVxdWVzdEVuZDsKICAgICBFaW5hX1RpbGVy
KiB0aWxlcjsKICAgICBFaW5hX0l0ZXJhdG9yKiBpdGVyYXRvcjsKICAgICBjYWlyb19zdGF0dXNf
dCBzdGF0dXM7CkBAIC0yNzcsMTAgKzI3NywxMCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmll
d19zaW5nbGVfc21hcnRfcmVwYWludHNfcHJvY2VzcyhFd2tfVmlld19TbWFydF9EYXRhKiBzbQog
CiAgICAgZXdrX3ZpZXdfbGF5b3V0X2lmX25lZWRlZF9yZWN1cnNpdmUoc21hcnREYXRhLT5fcHJp
dik7CiAKLSAgICBwciA9IGV3a192aWV3X3JlcGFpbnRzX3BvcChzbWFydERhdGEtPl9wcml2LCAm
Y291bnQpOwotICAgIHByX2VuZCA9IHByICsgY291bnQ7Ci0gICAgZm9yICg7IHByIDwgcHJfZW5k
OyBwcisrKQotICAgICAgICBlaW5hX3RpbGVyX3JlY3RfYWRkKHRpbGVyLCBwcik7CisgICAgcGFp
bnRSZXF1ZXN0ID0gZXdrX3ZpZXdfcmVwYWludHNfcG9wKHNtYXJ0RGF0YS0+X3ByaXYsICZjb3Vu
dCk7CisgICAgcGFpbnRSZXF1ZXN0RW5kID0gcGFpbnRSZXF1ZXN0ICsgY291bnQ7CisgICAgZm9y
ICg7IHBhaW50UmVxdWVzdCA8IHBhaW50UmVxdWVzdEVuZDsgcGFpbnRSZXF1ZXN0KyspCisgICAg
ICAgIGVpbmFfdGlsZXJfcmVjdF9hZGQodGlsZXIsIHBhaW50UmVxdWVzdCk7CiAKICAgICBpdGVy
YXRvciA9IGVpbmFfdGlsZXJfaXRlcmF0b3JfbmV3KHRpbGVyKTsKICAgICBpZiAoIWl0ZXJhdG9y
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3Bw
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcAppbmRleCBlNWI4MjYz
Li4yOTZlYjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXdfdGls
ZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKQEAg
LTc3LDEyICs3NywxMiBAQCBzdGF0aWMgdm9pZCogX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJv
Y2Vzc19wcmUodm9pZCogZGF0YSwgRXZhc19PYmplY3QqIGV3a1ZpZQogCiBzdGF0aWMgRXZhc19P
YmplY3QqIF9ld2tfdmlld190aWxlZF9zbWFydF9iYWNraW5nX3N0b3JlX2FkZChFd2tfVmlld19T
bWFydF9EYXRhKiBzbWFydERhdGEpCiB7Ci0gICAgRXZhc19PYmplY3QqIGJzID0gZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfYWRkKHNtYXJ0RGF0YS0+YmFzZS5ldmFzKTsKKyAgICBFdmFzX09iamVj
dCogYmFja2luZ1N0b3JlID0gZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfYWRkKHNtYXJ0RGF0YS0+
YmFzZS5ldmFzKTsKICAgICBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9yZW5kZXJfY2Jfc2V0Ci0g
ICAgICAgIChicywgX2V3a192aWV3X3RpbGVkX3JlbmRlcl9jYiwgc21hcnREYXRhLT5fcHJpdik7
CisgICAgICAgIChiYWNraW5nU3RvcmUsIF9ld2tfdmlld190aWxlZF9yZW5kZXJfY2IsIHNtYXJ0
RGF0YS0+X3ByaXYpOwogICAgIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3VwZGF0ZXNfcHJvY2Vz
c19wcmVfc2V0Ci0gICAgICAgIChicywgX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJvY2Vzc19w
cmUsIHNtYXJ0RGF0YS0+X3ByaXYpOwotICAgIHJldHVybiBiczsKKyAgICAgICAgKGJhY2tpbmdT
dG9yZSwgX2V3a192aWV3X3RpbGVkX3VwZGF0ZXNfcHJvY2Vzc19wcmUsIHNtYXJ0RGF0YS0+X3By
aXYpOworICAgIHJldHVybiBiYWNraW5nU3RvcmU7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC05Nywx
NyArOTcsMTcgQEAgX2V3a192aWV3X3RpbGVkX2NvbnRlbnRzX3NpemVfY2hhbmdlZF9jYih2b2lk
KiBkYXRhLCBFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCoKIAogc3RhdGljIHZvaWQgX2V3a192
aWV3X3RpbGVkX3NtYXJ0X2FkZChFdmFzX09iamVjdCogZXdrVmlldykKIHsKLSAgICBFd2tfVmll
d19TbWFydF9EYXRhKiBzZDsKKyAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGE7CiAK
ICAgICBfcGFyZW50X3NjLnNjLmFkZChld2tWaWV3KTsKIAotICAgIHNkID0gc3RhdGljX2Nhc3Q8
RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGV2YXNfb2JqZWN0X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcp
KTsKLSAgICBpZiAoIXNkKQorICAgIHNtYXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1Nt
YXJ0X0RhdGEqPihldmFzX29iamVjdF9zbWFydF9kYXRhX2dldChld2tWaWV3KSk7CisgICAgaWYg
KCFzbWFydERhdGEpCiAgICAgICAgIHJldHVybjsKIAogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2FkZCgKLSAgICAgICAgc2QtPm1haW5fZnJhbWUsICJjb250ZW50cyxzaXplLGNoYW5n
ZWQiLAotICAgICAgICBfZXdrX3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2NiLCBz
ZCk7CisgICAgICAgIHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSwgImNvbnRlbnRzLHNpemUsY2hhbmdl
ZCIsCisgICAgICAgIF9ld2tfdmlld190aWxlZF9jb250ZW50c19zaXplX2NoYW5nZWRfY2IsIHNt
YXJ0RGF0YSk7CiB9CiAKIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3RpbGVkX3NtYXJ0X3Nj
cm9sbHNfcHJvY2VzcyhFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCkBAIC0zOTIsMTQg
KzM5MiwxNCBAQCBFdmFzX09iamVjdCogZXdrX3ZpZXdfdGlsZWRfYWRkKEV2YXMqIGNhbnZhcykK
IAogRXdrX1RpbGVfVW51c2VkX0NhY2hlKiBld2tfdmlld190aWxlZF91bnVzZWRfY2FjaGVfZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewotICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEq
IHNkID0gZXdrX3ZpZXdfc21hcnRfZGF0YV9nZXQoZXdrVmlldyk7Ci0gICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKHNkLCAwKTsKLSAgICByZXR1cm4gZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfdGlsZV91bnVzZWRfY2FjaGVfZ2V0KHNkLT5iYWNraW5nX3N0b3JlKTsKKyAgICBFd2tf
Vmlld19TbWFydF9EYXRhKiBzbWFydERhdGEgPSBld2tfdmlld19zbWFydF9kYXRhX2dldChld2tW
aWV3KTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnREYXRhLCAwKTsK
KyAgICByZXR1cm4gZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2FjaGVfZ2V0
KHNtYXJ0RGF0YS0+YmFja2luZ19zdG9yZSk7CiB9CiAKIHZvaWQgZXdrX3ZpZXdfdGlsZWRfdW51
c2VkX2NhY2hlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgRXdrX1RpbGVfVW51c2VkX0NhY2hl
KiBjYWNoZSkKIHsKLSAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzZCA9IGV3a192aWV3X3NtYXJ0
X2RhdGFfZ2V0KGV3a1ZpZXcpOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNkKTsK
LSAgICBld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX3VudXNlZF9jYWNoZV9zZXQoc2QtPmJh
Y2tpbmdfc3RvcmUsIGNhY2hlKTsKKyAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEg
PSBld2tfdmlld19zbWFydF9kYXRhX2dldChld2tWaWV3KTsKKyAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTihzbWFydERhdGEpOworICAgIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVf
dW51c2VkX2NhY2hlX3NldChzbWFydERhdGEtPmJhY2tpbmdfc3RvcmUsIGNhY2hlKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124901</attachid>
            <date>2012-02-01 01:05:59 -0800</date>
            <delta_ts>2012-02-06 21:44:35 -0800</delta_ts>
            <desc>fixed style patch</desc>
            <filename>new_style.patch</filename>
            <type>text/plain</type>
            <size>96485</size>
            <attacher name="JungJik Lee">jungjik.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwppbmRleCBkZDk0Yzg1Li45OGE0YTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTEwIEBACisyMDEyLTAyLTAxICBKdW5nSmlrIExlZSAgPGp1bmdqaWsubGVlQHNh
bXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIEFkb3B0IEMrKyBzdHlsZSB1c2luZyBjYW1lbENh
c2UgYW5kIGZ1bGwgdmFyaWFibGUgbmFtZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03NjM3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1vZGlmeSB0aGUgY29kZSB0byB1c2UgY2FtZWxDYXNlIGFuZCBz
cGVsbCBvdXQgdmFyaWFibGUgbmFtZXMgaW5zdGVhZCBvZiB1c2luZyBhYmJyZXZpYXRpb25zLgor
ICAgICAgICBNb2RpZnkgdGhlIGNvbW1lbnRzIHdoaWNoIGRvIG5vdCBtYXRjaCB3aXRoIGFjdHVh
bCBwYXJhbWV0ZXJzIGFuZCBjb3JyZWN0IG1pc3NwZWxsZWQgd29yZHMuCisgICAgICAgIEFkb3B0
IEVGTCBDb2Rpbmcgc3R5bGUgaW4gaGVhZGVyIGZpbGVzLgorICAgICAgICBUaGUgbG9naWMgb2Yg
dGhlIGNvZGUgaXMgbm90IGNoYW5nZWQuCisKKyAgICAgICAgKiBld2svZXdrX2Nvb2tpZXMuaDoK
KyAgICAgICAgKiBld2svZXdrX2ZyYW1lLmNwcDoKKyAgICAgICAgKGV3a19mcmFtZV9zZWxlY3Rp
b25fZ2V0KToKKyAgICAgICAgKGV3a19mcmFtZV9mZWVkX2ZvY3VzX2luKToKKyAgICAgICAgKEVX
S1ByaXZhdGU6OmNvcmVGcmFtZSk6CisgICAgICAgICogZXdrL2V3a19mcmFtZS5oOgorICAgICAg
ICAqIGV3ay9ld2tfaGlzdG9yeS5jcHA6CisgICAgICAgIChld2tfaGlzdG9yeV9pdGVtX25ldyk6
CisgICAgICAgIChld2tfaGlzdG9yeV9pdGVtX3RpdGxlX2dldCk6CisgICAgICAgIChld2tfaGlz
dG9yeV9pdGVtX3RpdGxlX2FsdGVybmF0ZV9nZXQpOgorICAgICAgICAoZXdrX2hpc3RvcnlfaXRl
bV91cmlfZ2V0KToKKyAgICAgICAgKGV3a19oaXN0b3J5X2l0ZW1fdXJpX29yaWdpbmFsX2dldCk6
CisgICAgICAgICogZXdrL2V3a19uZXR3b3JrLmg6CisgICAgICAgICogZXdrL2V3a190aWxlZF9i
YWNraW5nX3N0b3JlLmNwcDoKKyAgICAgICAgKF9Fd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVt
KToKKyAgICAgICAgKF9Fd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhKToKKyAgICAgICAgKF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Fzc29jaWF0ZSk6CisgICAgICAgIChfZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfdGlsZV9kaXNzb2NpYXRlKToKKyAgICAgICAgKF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfY2xlYXIpOgorICAgICAgICAoX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9wcm9jZXNzX3NpbmdsZSk6Cisg
ICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKToKKyAgICAgICAgKF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfaXRlbV9zbW9vdGhfc2NhbGVfc2V0KToKKyAgICAgICAgKF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV92aWV3X2NvbHNfZW5kX2FkZCk6CisgICAgICAgIChfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfdmlld19yb3dzX2FsbF9kZWwpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3JlbmRlcik6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfbWVt
X2RiZyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2lnX3Vzcik6CisgICAg
ICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfYWRkKToKKyAgICAgICAgKF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9kZWwpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3NtYXJ0X21vdmUpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3NtYXJ0X3Jlc2l6ZSk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVjYWxj
X3JlbmRlcmVycyk6CisgICAgICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19kYmcp
OgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF91cCk6CisgICAg
ICAgIChfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld193cmFwX2Rvd24pOgorICAgICAgICAo
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF9sZWZ0KToKKyAgICAgICAgKF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3JlZmlsbCk6CisgICAgICAgIChfZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfdmlld19wb3NfYXBwbHkpOgorICAgICAgICAoX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9vZmZzZXRfZm9yY2UpOgorICAgICAgICAoX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9vZmZzZXQpOgorICAgICAgICAoX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9wb3MpOgorICAgICAgICAoX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZSk6CisgICAgICAgIChfZXdrX3RpbGVk
X2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1bGxfb2Zmc2V0X3NldF9pbnRlcm5hbCk6CisgICAgICAg
IChld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0KToKKyAgICAg
ICAgKGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9hZGQpOgorICAg
ICAgICAoX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fc2V0X2ludGVybmFsKToKKyAgICAg
ICAgKGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fc2V0KToKKyAgICAgICAgKGV3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3pvb21fd2Vha19zZXQpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfZml4X29mZnNldHMpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
Zmx1c2gpOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZWdp
b24pOgorICAgICAgICAoZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZWxhdGl2
ZV9yYWRpdXMpOgorICAgICAgICAqIGV3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5oOgorICAg
ICAgICAoX0V3a19UaWxlKToKKyAgICAgICAgKiBld2svZXdrX3RpbGVkX21hdHJpeC5jcHA6Cisg
ICAgICAgIChfRXdrX1RpbGVfTWF0cml4KToKKyAgICAgICAgKF9ld2tfdGlsZV9tYXRyaXhfY2Vs
bF9mcmVlKToKKyAgICAgICAgKF9ld2tfdGlsZV9tYXRyaXhfdGlsZV9mcmVlKToKKyAgICAgICAg
KGV3a190aWxlX21hdHJpeF9uZXcpOgorICAgICAgICAoZXdrX3RpbGVfbWF0cml4X2ZyZWUpOgor
ICAgICAgICAoZXdrX3RpbGVfbWF0cml4X3VudXNlZF9jYWNoZV9nZXQpOgorICAgICAgICAoZXdr
X3RpbGVfbWF0cml4X3RpbGVfZXhhY3RfZ2V0KToKKyAgICAgICAgKGV3a190aWxlX21hdHJpeF90
aWxlX25ldyk6CisgICAgICAgIChld2tfdGlsZV9tYXRyaXhfdGlsZV9wdXQpOgorICAgICAgICAo
ZXdrX3RpbGVfbWF0cml4X2RiZyk6CisgICAgICAgIChld2tfdGlsZV9tYXRyaXhfZnJlZXplKToK
KyAgICAgICAgKGV3a190aWxlX21hdHJpeF90aGF3KToKKyAgICAgICAgKiBld2svZXdrX3RpbGVk
X21hdHJpeC5oOgorICAgICAgICAqIGV3ay9ld2tfdGlsZWRfbW9kZWwuY3BwOgorICAgICAgICAo
dGlsZV9hY2NvdW50KToKKyAgICAgICAgKGV3a190aWxlX3VwZGF0ZXNfcHJvY2Vzcyk6CisgICAg
ICAgIChld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQpOgorICAgICAgICAoZXdrX3RpbGVf
dW51c2VkX2NhY2hlX2RiZyk6CisgICAgICAgICogZXdrL2V3a190aWxlZF9tb2RlbC5oOgorICAg
ICAgICAqIGV3ay9ld2tfdXRpbC5oOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6CisgICAg
ICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9m
b2N1c19pbik6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfcHJlX3JlbmRlcl9yZWdpb24pOgor
ICAgICAgICAoZXdrX3ZpZXdfcHJlX3JlbmRlcl9yZWdpb24pOgorICAgICAgICAoZXdrX3ZpZXdf
dG9vbGJhcnNfdmlzaWJsZV9nZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc3RhdHVzYmFyX3Zpc2li
bGVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3Njcm9sbGJhcnNfdmlzaWJsZV9nZXQpOgorICAg
ICAgICAoZXdrX3ZpZXdfbWVudWJhcl92aXNpYmxlX2dldCk6CisgICAgICAgIChld2tfdmlld196
b29tX3JhbmdlX3NldCk6CisgICAgICAgICogZXdrL2V3a192aWV3Lmg6CisgICAgICAgICogZXdr
L2V3a192aWV3X3NpbmdsZS5jcHA6CisgICAgICAgIChfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X3Jl
cGFpbnRzX3Byb2Nlc3MpOgorICAgICAgICAqIGV3ay9ld2tfdmlld190aWxlZC5jcHA6CisgICAg
ICAgIChfZXdrX3ZpZXdfdGlsZWRfc21hcnRfYmFja2luZ19zdG9yZV9hZGQpOgorICAgICAgICAo
X2V3a192aWV3X3RpbGVkX3NtYXJ0X2FkZCk6CisgICAgICAgIChld2tfdmlld190aWxlZF91bnVz
ZWRfY2FjaGVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3RpbGVkX3VudXNlZF9jYWNoZV9zZXQp
OgorCiAyMDEyLTAxLTMxICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAog
ICAgICAgICBbRUZMXSBBZGQgYmFzaWMgRFJUL0VmbCBpbXBsZW1lbnRhdGlvbiB0byBzdXBwb3J0
IHZpZXdwb3J0IHRlc3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nv
b2tpZXMuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5oCmluZGV4IGFjZDE1
NTkuLjQwZTY5ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29va2ll
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29va2llcy5oCkBAIC05NSw3ICs5
NSw3IEBAIEVBUEkgdm9pZCAgICAgICAgICAgICAgIGV3a19jb29raWVzX2NsZWFyKHZvaWQpOwog
ICoKICAqIEByZXR1cm4gYW4gQGMgRWluYV9MaXN0IHdpdGggYWxsIHRoZSBjb29raWVzIGluIHRo
ZSBjb29raWUgamFyCiAgKi8KLUVBUEkgRWluYV9MaXN0KiAgICAgICAgIGV3a19jb29raWVzX2dl
dF9hbGwodm9pZCk7CitFQVBJIEVpbmFfTGlzdCAgICAgICAgICAqZXdrX2Nvb2tpZXNfZ2V0X2Fs
bCh2b2lkKTsKIAogLyoqCiAgKiBEZWxldGVzIGEgY29va2llIGZyb20gdGhlIGNvb2tpZSBqYXIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCmluZGV4IDk2MWZhMGIuLjhiYTE4ZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCkBAIC04NiwyOCArODYsMjggQEAgc3RydWN0
IEVpbmFfSXRlcmF0b3JfRXdrX0ZyYW1lIHsKICNpZm5kZWYgRVdLX1RZUEVfQ0hFQ0sKICNkZWZp
bmUgRVdLX0ZSQU1FX1RZUEVfQ0hFQ0soZXdrRnJhbWUsIC4uLikgZG8geyB9IHdoaWxlICgwKQog
I2Vsc2UKLSNkZWZpbmUgRVdLX0ZSQU1FX1RZUEVfQ0hFQ0soZXdrRnJhbWUsIC4uLikgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgZG8geyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAg
IGNvbnN0IGNoYXIqIF90bXBfb3R5cGUgPSBldmFzX29iamVjdF90eXBlX2dldChld2tGcmFtZSk7
ICAgICAgICAgICAgICAgXAotICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWShfdG1wX290eXBlICE9
IEVXS19GUkFNRV9UWVBFX1NUUikpIHsgICAgICAgICAgXAotICAgICAgICAgICAgRUlOQV9MT0df
Q1JJVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
ICAgICAgICAgICAgICgiJXAgKCVzKSBpcyBub3Qgb2YgYW4gZXdrX2ZyYW1lISIsIGV3a0ZyYW1l
LCAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICBfdG1wX290eXBlID8gX3RtcF9v
dHlwZSA6ICIobnVsbCkiKTsgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHJldHVy
biBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgRVdLX0ZSQU1FX1RZUEVfQ0hFQ0soZXdrRnJhbWUs
IC4uLikgXAorICAgIGRvIHsgXAorICAgICAgICBjb25zdCBjaGFyKiBfdG1wX290eXBlID0gZXZh
c19vYmplY3RfdHlwZV9nZXQoZXdrRnJhbWUpOyBcCisgICAgICAgIGlmIChFSU5BX1VOTElLRUxZ
KF90bXBfb3R5cGUgIT0gRVdLX0ZSQU1FX1RZUEVfU1RSKSkgeyBcCisgICAgICAgICAgICBFSU5B
X0xPR19DUklUIFwKKyAgICAgICAgICAgICAgICAoIiVwICglcykgaXMgbm90IG9mIGFuIGV3a19m
cmFtZSEiLCBld2tGcmFtZSwgXAorICAgICAgICAgICAgICAgIF90bXBfb3R5cGUgPyBfdG1wX290
eXBlIDogIihudWxsKSIpOyBcCisgICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187IFwKKyAg
ICAgICAgfSBcCiAgICAgfSB3aGlsZSAoMCkKICNlbmRpZgogCi0jZGVmaW5lIEVXS19GUkFNRV9T
RF9HRVQoZXdrRnJhbWUsIHB0cikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICBFd2tfRnJhbWVfU21hcnRfRGF0YSogcHRyID0gc3RhdGljX2Nhc3Q8RXdrX0ZyYW1lX1NtYXJ0
X0RhdGEqPihldmFzX29iamVjdF9zbWFydF9kYXRhX2dldChld2tGcmFtZSkpCisjZGVmaW5lIEVX
S19GUkFNRV9TRF9HRVQoZXdrRnJhbWUsIHBvaW50ZXIpIFwKKyAgICBFd2tfRnJhbWVfU21hcnRf
RGF0YSogcG9pbnRlciA9IHN0YXRpY19jYXN0PEV3a19GcmFtZV9TbWFydF9EYXRhKj4oZXZhc19v
YmplY3Rfc21hcnRfZGF0YV9nZXQoZXdrRnJhbWUpKQogCi0jZGVmaW5lIEVXS19GUkFNRV9TRF9H
RVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBwdHIsIC4uLikgICAgICAgICBcCi0gICAgRVdLX0ZSQU1F
X1RZUEVfQ0hFQ0soZXdrRnJhbWUsIF9fVkFfQVJHU19fKTsgICAgICAgICAgICAgICBcCi0gICAg
RVdLX0ZSQU1FX1NEX0dFVChld2tGcmFtZSwgcHRyKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgaWYgKCFwdHIpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICAgICAgQ1JJVElDQUwoIm5vIHNtYXJ0IGRhdGEgZm9yIG9iamVjdCAlcCAoJXMp
IiwgICAgXAotICAgICAgICAgICAgICAgICBld2tGcmFtZSwgZXZhc19vYmplY3RfdHlwZV9nZXQo
ZXdrRnJhbWUpKTsgICAgICAgICAgIFwKLSAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBFV0tfRlJBTUVfU0RfR0VUX09SX1JF
VFVSTihld2tGcmFtZSwgcG9pbnRlciwgLi4uKSBcCisgICAgRVdLX0ZSQU1FX1RZUEVfQ0hFQ0so
ZXdrRnJhbWUsIF9fVkFfQVJHU19fKTsgXAorICAgIEVXS19GUkFNRV9TRF9HRVQoZXdrRnJhbWUs
IHBvaW50ZXIpOyBcCisgICAgaWYgKCFwb2ludGVyKSB7IFwKKyAgICAgICAgQ1JJVElDQUwoIm5v
IHNtYXJ0IGRhdGEgZm9yIG9iamVjdCAlcCAoJXMpIiwgXAorICAgICAgICAgICAgICAgICBld2tG
cmFtZSwgZXZhc19vYmplY3RfdHlwZV9nZXQoZXdrRnJhbWUpKTsgXAorICAgICAgICByZXR1cm4g
X19WQV9BUkdTX187IFwKICAgICB9CiAKIHN0YXRpYyBFdmFzX1NtYXJ0X0NsYXNzIF9wYXJlbnRf
c2MgPSBFVkFTX1NNQVJUX0NMQVNTX0lOSVRfTlVMTDsKQEAgLTQ2OCwxMCArNDY4LDEwIEBAIGNo
YXIqIGV3a19mcmFtZV9zZWxlY3Rpb25fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSkK
IHsKICAgICBFV0tfRlJBTUVfU0RfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgc21hcnREYXRhLCAw
KTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoc21hcnREYXRhLT5mcmFtZSwg
MCk7Ci0gICAgV1RGOjpDU3RyaW5nIHMgPSBzbWFydERhdGEtPmZyYW1lLT5lZGl0b3IoKS0+c2Vs
ZWN0ZWRUZXh0KCkudXRmOCgpOwotICAgIGlmIChzLmlzTnVsbCgpKQorICAgIFdURjo6Q1N0cmlu
ZyBzZWxlY3RlZFRleHQgPSBzbWFydERhdGEtPmZyYW1lLT5lZGl0b3IoKS0+c2VsZWN0ZWRUZXh0
KCkudXRmOCgpOworICAgIGlmIChzZWxlY3RlZFRleHQuaXNOdWxsKCkpCiAgICAgICAgIHJldHVy
biAwOwotICAgIHJldHVybiBzdHJkdXAocy5kYXRhKCkpOworICAgIHJldHVybiBzdHJkdXAoc2Vs
ZWN0ZWRUZXh0LmRhdGEoKSk7CiB9CiAKIEVpbmFfQm9vbCBld2tfZnJhbWVfdGV4dF9zZWFyY2go
Y29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBjb25zdCBjaGFyKiB0ZXh0LCBFaW5hX0Jvb2wg
Y2FzZVNlbnNpdGl2ZSwgRWluYV9Cb29sIGZvcndhcmQsIEVpbmFfQm9vbCB3cmFwKQpAQCAtODM0
LDggKzgzNCw4IEBAIEVpbmFfQm9vbCBld2tfZnJhbWVfZmVlZF9mb2N1c19pbihFdmFzX09iamVj
dCogZXdrRnJhbWUpCiB7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4oZXdrRnJhbWUs
IHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChz
bWFydERhdGEtPmZyYW1lLCBmYWxzZSk7Ci0gICAgV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyKiBj
ID0gc21hcnREYXRhLT5mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKTsKLSAgICBjLT5z
ZXRGb2N1c2VkRnJhbWUoc21hcnREYXRhLT5mcmFtZSk7CisgICAgV2ViQ29yZTo6Rm9jdXNDb250
cm9sbGVyKiBmb2N1c0NvbnRyb2xsZXIgPSBzbWFydERhdGEtPmZyYW1lLT5wYWdlKCktPmZvY3Vz
Q29udHJvbGxlcigpOworICAgIGZvY3VzQ29udHJvbGxlci0+c2V0Rm9jdXNlZEZyYW1lKHNtYXJ0
RGF0YS0+ZnJhbWUpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xNzc0LDcgKzE3NzQsNyBA
QCB2b2lkIGV3a19mcmFtZV9taXhlZF9jb250ZW50X3J1bl9zZXQoRXZhc19PYmplY3QqIGV3a0Zy
YW1lLCBib29sIGhhc1J1bikKIAogbmFtZXNwYWNlIEVXS1ByaXZhdGUgewogCi1XZWJDb3JlOjpG
cmFtZSAqY29yZUZyYW1lKGNvbnN0IEV2YXNfT2JqZWN0ICpld2tGcmFtZSkKK1dlYkNvcmU6OkZy
YW1lKiBjb3JlRnJhbWUoY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogewogICAgIEVXS19G
UkFNRV9TRF9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBzbWFydERhdGEsIDApOwogICAgIHJldHVy
biBzbWFydERhdGEtPmZyYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19mcmFtZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCmluZGV4IDBkZjhj
NTEuLmY3NDU1NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKQEAgLTg1Nyw3ICs4NTcs
NyBAQCBFQVBJIEVpbmFfTGlzdCAqZXdrX2ZyYW1lX3Jlc291cmNlc19sb2NhdGlvbl9nZXQoY29u
c3QgRXZhc19PYmplY3QgKm8pOwogICogQHJldHVybiBBIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcg
KHdoaWNoIG11c3QgYmUgZnJlZWQgYnkgdGhlIGNhbGxlciB3aXRoIEBjIGZyZWUoKSkKICAqICAg
ICAgICAgb3IgQGMgMCBpbiBjYXNlIG9mIGZhaWx1cmUuCiAgKi8KLUVBUEkgY2hhciogZXdrX2Zy
YW1lX3BsYWluX3RleHRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBvKTsKK0VBUEkgY2hhciAqZXdr
X2ZyYW1lX3BsYWluX3RleHRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKIAogLyoqCiAgKiBS
ZXR1cm5zIHdoZXRoZXIgdGhlIGZyYW1lIGhhcyBkaXNwbGF5ZWQgbWl4ZWQgY29udGVudC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaGlzdG9yeS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2hpc3RvcnkuY3BwCmluZGV4IGEzOTg3NTkuLmZhZWYwYzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfaGlzdG9yeS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19oaXN0b3J5LmNwcApAQCAtMjU1LDkgKzI1NSw5IEBAIEV3
a19IaXN0b3J5X0l0ZW0qIGV3a19oaXN0b3J5X2l0ZW1fbmV3X2Zyb21fY29yZShXZWJDb3JlOjpI
aXN0b3J5SXRlbSogY29yZSkKIAogRXdrX0hpc3RvcnlfSXRlbSogZXdrX2hpc3RvcnlfaXRlbV9u
ZXcoY29uc3QgY2hhciogdXJpLCBjb25zdCBjaGFyKiB0aXRsZSkKIHsKLSAgICBXVEY6OlN0cmlu
ZyB1ID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHVyaSk7Ci0gICAgV1RGOjpTdHJpbmcgdCA9IFdU
Rjo6U3RyaW5nOjpmcm9tVVRGOCh0aXRsZSk7Ci0gICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6SGlz
dG9yeUl0ZW0+IGNvcmUgPSBXZWJDb3JlOjpIaXN0b3J5SXRlbTo6Y3JlYXRlKHUsIHQsIDApOwor
ICAgIFdURjo6U3RyaW5nIGhpc3RvcnlVcmkgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodXJpKTsK
KyAgICBXVEY6OlN0cmluZyBoaXN0b3J5VGl0bGUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodGl0
bGUpOworICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6Okhpc3RvcnlJdGVtPiBjb3JlID0gV2ViQ29y
ZTo6SGlzdG9yeUl0ZW06OmNyZWF0ZShoaXN0b3J5VXJpLCBoaXN0b3J5VGl0bGUsIDApOwogICAg
IEV3a19IaXN0b3J5X0l0ZW0qIGl0ZW0gPSBld2tfaGlzdG9yeV9pdGVtX25ld19mcm9tX2NvcmUo
Y29yZS5yZWxlYXNlKCkubGVha1JlZigpKTsKICAgICByZXR1cm4gaXRlbTsKIH0KQEAgLTI4Nywx
OSArMjg3LDE5IEBAIGNvbnN0IGNoYXIqIGV3a19oaXN0b3J5X2l0ZW1fdGl0bGVfZ2V0KGNvbnN0
IEV3a19IaXN0b3J5X0l0ZW0qIGl0ZW0pCiB7CiAgICAgRVdLX0hJU1RPUllfSVRFTV9DT1JFX0dF
VF9PUl9SRVRVUk4oaXRlbSwgY29yZSwgMCk7CiAgICAgLy8gaGlkZSB0aGUgZm9sbG93aW5nIG9w
dGltemF0aW9uIGZyb20gb3V0c2lkZQotICAgIEV3a19IaXN0b3J5X0l0ZW0qIGl0ZW0xID0gY29u
c3RfY2FzdDxFd2tfSGlzdG9yeV9JdGVtKj4oaXRlbSk7Ci0gICAgZWluYV9zdHJpbmdzaGFyZV9y
ZXBsYWNlKCZpdGVtMS0+dGl0bGUsIGNvcmUtPnRpdGxlKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAg
cmV0dXJuIGl0ZW0xLT50aXRsZTsKKyAgICBFd2tfSGlzdG9yeV9JdGVtKiBoaXN0b3J5SXRlbSA9
IGNvbnN0X2Nhc3Q8RXdrX0hpc3RvcnlfSXRlbSo+KGl0ZW0pOworICAgIGVpbmFfc3RyaW5nc2hh
cmVfcmVwbGFjZSgmaGlzdG9yeUl0ZW0tPnRpdGxlLCBjb3JlLT50aXRsZSgpLnV0ZjgoKS5kYXRh
KCkpOworICAgIHJldHVybiBoaXN0b3J5SXRlbS0+dGl0bGU7CiB9CiAKIGNvbnN0IGNoYXIqIGV3
a19oaXN0b3J5X2l0ZW1fdGl0bGVfYWx0ZXJuYXRlX2dldChjb25zdCBFd2tfSGlzdG9yeV9JdGVt
KiBpdGVtKQogewogICAgIEVXS19ISVNUT1JZX0lURU1fQ09SRV9HRVRfT1JfUkVUVVJOKGl0ZW0s
IGNvcmUsIDApOwogICAgIC8vIGhpZGUgdGhlIGZvbGxvd2luZyBvcHRpbXphdGlvbiBmcm9tIG91
dHNpZGUKLSAgICBFd2tfSGlzdG9yeV9JdGVtKiBpdGVtMSA9IGNvbnN0X2Nhc3Q8RXdrX0hpc3Rv
cnlfSXRlbSo+KGl0ZW0pOwotICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmaXRlbTEtPmFs
dGVybmF0ZVRpdGxlLAorICAgIEV3a19IaXN0b3J5X0l0ZW0qIGhpc3RvcnlJdGVtID0gY29uc3Rf
Y2FzdDxFd2tfSGlzdG9yeV9JdGVtKj4oaXRlbSk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBs
YWNlKCZoaXN0b3J5SXRlbS0+YWx0ZXJuYXRlVGl0bGUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvcmUtPmFsdGVybmF0ZVRpdGxlKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJu
IGl0ZW0xLT5hbHRlcm5hdGVUaXRsZTsKKyAgICByZXR1cm4gaGlzdG9yeUl0ZW0tPmFsdGVybmF0
ZVRpdGxlOwogfQogCiB2b2lkIGV3a19oaXN0b3J5X2l0ZW1fdGl0bGVfYWx0ZXJuYXRlX3NldChF
d2tfSGlzdG9yeV9JdGVtKiBpdGVtLCBjb25zdCBjaGFyKiB0aXRsZSkKQEAgLTMxNCwxOSArMzE0
LDE5IEBAIGNvbnN0IGNoYXIqIGV3a19oaXN0b3J5X2l0ZW1fdXJpX2dldChjb25zdCBFd2tfSGlz
dG9yeV9JdGVtKiBpdGVtKQogewogICAgIEVXS19ISVNUT1JZX0lURU1fQ09SRV9HRVRfT1JfUkVU
VVJOKGl0ZW0sIGNvcmUsIDApOwogICAgIC8vIGhpZGUgdGhlIGZvbGxvd2luZyBvcHRpbXphdGlv
biBmcm9tIG91dHNpZGUKLSAgICBFd2tfSGlzdG9yeV9JdGVtKiBpID0gY29uc3RfY2FzdDxFd2tf
SGlzdG9yeV9JdGVtKj4oKGl0ZW0pKTsKLSAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJmkt
PnVyaSwgY29yZS0+dXJsU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIGktPnVy
aTsKKyAgICBFd2tfSGlzdG9yeV9JdGVtKiBoaXN0b3J5SXRlbSA9IGNvbnN0X2Nhc3Q8RXdrX0hp
c3RvcnlfSXRlbSo+KChpdGVtKSk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZoaXN0
b3J5SXRlbS0+dXJpLCBjb3JlLT51cmxTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1
cm4gaGlzdG9yeUl0ZW0tPnVyaTsKIH0KIAogY29uc3QgY2hhciogZXdrX2hpc3RvcnlfaXRlbV91
cmlfb3JpZ2luYWxfZ2V0KGNvbnN0IEV3a19IaXN0b3J5X0l0ZW0qIGl0ZW0pCiB7CiAgICAgRVdL
X0hJU1RPUllfSVRFTV9DT1JFX0dFVF9PUl9SRVRVUk4oaXRlbSwgY29yZSwgMCk7CiAgICAgLy8g
aGlkZSB0aGUgZm9sbG93aW5nIG9wdGltemF0aW9uIGZyb20gb3V0c2lkZQotICAgIEV3a19IaXN0
b3J5X0l0ZW0qIGkgPSBjb25zdF9jYXN0PEV3a19IaXN0b3J5X0l0ZW0qPihpdGVtKTsKLSAgICBl
aW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJmktPm9yaWdpbmFsVXJpLAorICAgIEV3a19IaXN0b3J5
X0l0ZW0qIGhpc3RvcnlJdGVtID0gY29uc3RfY2FzdDxFd2tfSGlzdG9yeV9JdGVtKj4oaXRlbSk7
CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZoaXN0b3J5SXRlbS0+b3JpZ2luYWxVcmks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcmUtPm9yaWdpbmFsVVJMU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIGktPm9yaWdpbmFsVXJpOworICAgIHJldHVybiBo
aXN0b3J5SXRlbS0+b3JpZ2luYWxVcmk7CiB9CiAKIGRvdWJsZSBld2tfaGlzdG9yeV9pdGVtX3Rp
bWVfbGFzdF92aXNpdGVkX2dldChjb25zdCBFd2tfSGlzdG9yeV9JdGVtKiBpdGVtKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19uZXR3b3JrLmggYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX25ldHdvcmsuaAppbmRleCA2MTJjMmY3Li4zOTc3ZTk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX25ldHdvcmsuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX25ldHdvcmsuaApAQCAtMTE5LDcgKzExOSw3IEBAIEVBUEkgdm9pZCAgICAg
ICAgICAgICBld2tfbmV0d29ya190bHNfY2FfY2VydGlmaWNhdGVzX3BhdGhfc2V0KGNvbnN0IGNo
YXIgKnBhdGgpCiAgKiBAcmV0dXJuIFRoZSBkZWZhdWx0IEBjIFNvdXBTZXNzaW9uIGluIHVzZSwg
b3IgQGMgTlVMTCBpZiBhbm90aGVyIG5ldHdvcmsKICAqICAgICAgICAgYmFja2VuZCB3YXMgdXNl
ZC4KICAqLwotRUFQSSBTb3VwU2Vzc2lvbiogICAgIGV3a19uZXR3b3JrX2RlZmF1bHRfc291cF9z
ZXNzaW9uX2dldCh2b2lkKTsKK0VBUEkgU291cFNlc3Npb24gICAgICpld2tfbmV0d29ya19kZWZh
dWx0X3NvdXBfc2Vzc2lvbl9nZXQodm9pZCk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9iYWNraW5nX3N0b3JlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5jcHAKaW5k
ZXggNGNkZDcyZC4uMzBkZjYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a190aWxlZF9iYWNraW5nX3N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmUuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSA8c3Rk
bGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAKLSNkZWZpbmUgSURYKGNvbCwgcm93LCByb3dz
cGFuKSAoY29sICsgKHJvdyAqIHJvd3NwYW4pKQorI2RlZmluZSBJRFgoY29sdW1uLCByb3csIHJv
d3NwYW4pIChjb2x1bW4gKyAocm93ICogcm93c3BhbikpCiAKIHR5cGVkZWYgc3RydWN0IF9Fd2tf
VGlsZWRfQmFja2luZ19TdG9yZV9EYXRhIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGE7CiB0
eXBlZGVmIHN0cnVjdCBfRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSBFd2tfVGlsZWRfQmFj
a2luZ19TdG9yZV9JdGVtOwpAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX0V3a19UaWxlZF9CYWNr
aW5nX1N0b3JlX0l0ZW0gewogICAgIHN0cnVjdCB7CiAgICAgICAgIEV2YXNfQ29vcmQgeCwgeSwg
d2lkdGgsIGhlaWdodDsKICAgICB9IGdlb21ldHJ5OwotICAgIGJvb2wgc21vb3RoX3NjYWxlOwor
ICAgIGJvb2wgc21vb3RoU2NhbGU7CiB9OwogCiBzdHJ1Y3QgX0V3a19UaWxlZF9CYWNraW5nX1N0
b3JlX1ByZV9SZW5kZXJfUmVxdWVzdCB7CkBAIC02MSw3ICs2MSw3IEBAIHN0cnVjdCBfRXdrX1Rp
bGVkX0JhY2tpbmdfU3RvcmVfRGF0YSB7CiAgICAgc3RydWN0IHsKICAgICAgICAgRWluYV9Jbmxp
c3QqKiBpdGVtczsKICAgICAgICAgRXZhc19Db29yZCB4LCB5LCB3aWR0aCwgaGVpZ2h0OwotICAg
ICAgICBsb25nIGNvbHMsIHJvd3M7CisgICAgICAgIGxvbmcgY29sdW1ucywgcm93czsKICAgICAg
ICAgc3RydWN0IHsKICAgICAgICAgICAgIEV2YXNfQ29vcmQgd2lkdGgsIGhlaWdodDsKICAgICAg
ICAgICAgIGZsb2F0IHpvb207CkBAIC03MSw3ICs3MSw3IEBAIHN0cnVjdCBfRXdrX1RpbGVkX0Jh
Y2tpbmdfU3RvcmVfRGF0YSB7CiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICBzdHJ1Y3Qg
ewogICAgICAgICAgICAgICAgIEV2YXNfQ29vcmQgeCwgeTsKLSAgICAgICAgICAgIH0gY3VyLCBv
bGQsIGJhc2UsIHpvb21DZW50ZXI7CisgICAgICAgICAgICB9IGN1cnJlbnQsIG9sZCwgYmFzZSwg
em9vbUNlbnRlcjsKICAgICAgICAgfSBvZmZzZXQ7CiAgICAgICAgIGJvb2wgdmlzaWJsZSA6IDE7
CiAgICAgfSB2aWV3OwpAQCAtMTA4LDE4ICsxMDgsMTggQEAgc3RydWN0IF9Fd2tfVGlsZWRfQmFj
a2luZ19TdG9yZV9EYXRhIHsKICAgICAgICAgYm9vbCBvZmZzZXQgOiAxOwogICAgIH0gY2hhbmdl
ZDsKICNpZmRlZiBERUJVR19NRU1fTEVBS1MKLSAgICBFY29yZV9FdmVudF9IYW5kbGVyKiBzaWdf
dXNyOworICAgIEVjb3JlX0V2ZW50X0hhbmRsZXIqIHNpZ25hbFVzZXI7CiAjZW5kaWYKIH07CiAK
IHN0YXRpYyBFdmFzX1NtYXJ0X0NsYXNzIF9wYXJlbnRfc2MgPSBFVkFTX1NNQVJUX0NMQVNTX0lO
SVRfTlVMTDsKIGludCBfZXdrX3RpbGVkX2xvZ19kb20gPSAtMTsKIAotI2RlZmluZSBQUklWX0RB
VEFfR0VUX09SX1JFVFVSTihvYmosIHB0ciwgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgXAor
I2RlZmluZSBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihvYmosIHB0ciwgLi4uKSBcCiAgICAgRXdr
X1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHRyID0gc3RhdGljX2Nhc3Q8RXdrX1RpbGVkX0Jh
Y2tpbmdfU3RvcmVfRGF0YSo+KGV2YXNfb2JqZWN0X3NtYXJ0X2RhdGFfZ2V0KG9iaikpOyBcCi0g
ICAgaWYgKCFwdHIpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gICAgICAgIENSSVRJQ0FMKCJubyBwcml2YXRlIGRhdGEgaW4gb2JqPSVw
Iiwgb2JqKTsgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCFwdHIp
IHsgXAorICAgICAgICBDUklUSUNBTCgibm8gcHJpdmF0ZSBkYXRhIGluIG9iaj0lcCIsIG9iaik7
IFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyBcCiAgICAgfQogCiBzdGF0aWMgdm9pZCBf
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZmlsbF9yZW5kZXJlcnMoRXdrX1RpbGVkX0JhY2tpbmdf
U3RvcmVfRGF0YSogcHJpdik7CkBAIC0yMDMsMTMgKzIwMywxMyBAQCBzdGF0aWMgdm9pZCBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9yZXNpemUoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVf
SXRlbSogaQogc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfYXNzb2Np
YXRlKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYsIEV3a19UaWxlKiB0aWxlLCBF
d2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVtKQogewogICAgIGlmIChpdGVtLT50aWxl
KQotICAgICAgICBDUklUSUNBTCgiaXQtPnRpbGU9JXAsIGJ1dCBpdCBzaG91bGQgYmUgMCEiLCBp
dGVtLT50aWxlKTsKKyAgICAgICAgQ1JJVElDQUwoIml0ZW0tPnRpbGU9JXAsIGJ1dCBpdCBzaG91
bGQgYmUgMCEiLCBpdGVtLT50aWxlKTsKICAgICBpdGVtLT50aWxlID0gdGlsZTsKICAgICBldmFz
X29iamVjdF9tb3ZlKGl0ZW0tPnRpbGUtPmltYWdlLCBpdGVtLT5nZW9tZXRyeS54LCBpdGVtLT5n
ZW9tZXRyeS55KTsKICAgICBldmFzX29iamVjdF9yZXNpemUoaXRlbS0+dGlsZS0+aW1hZ2UsIGl0
ZW0tPmdlb21ldHJ5LndpZHRoLCBpdGVtLT5nZW9tZXRyeS5oZWlnaHQpOwogICAgIGV2YXNfb2Jq
ZWN0X2ltYWdlX2ZpbGxfc2V0CiAgICAgICAgIChpdGVtLT50aWxlLT5pbWFnZSwgMCwgMCwgaXRl
bS0+Z2VvbWV0cnkud2lkdGgsIGl0ZW0tPmdlb21ldHJ5LmhlaWdodCk7Ci0gICAgZXZhc19vYmpl
Y3RfaW1hZ2Vfc21vb3RoX3NjYWxlX3NldChpdGVtLT50aWxlLT5pbWFnZSwgaXRlbS0+c21vb3Ro
X3NjYWxlKTsKKyAgICBldmFzX29iamVjdF9pbWFnZV9zbW9vdGhfc2NhbGVfc2V0KGl0ZW0tPnRp
bGUtPmltYWdlLCBpdGVtLT5zbW9vdGhTY2FsZSk7CiAgICAgZXZhc19vYmplY3RfaW1hZ2VfYWxw
aGFfc2V0KGl0ZW0tPnRpbGUtPmltYWdlLCBwcml2LT52aWV3LnRpbGUuaGFzQWxwaGEpOwogCiAg
ICAgaWYgKCFld2tfdGlsZV92aXNpYmxlX2dldCh0aWxlKSkKQEAgLTIyMCwxMyArMjIwLDEzIEBA
IHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX2Fzc29jaWF0ZShFd2tf
VGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAKIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV90aWxlX2Rpc3NvY2lhdGUoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJp
diwgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbSwgZG91YmxlIGxhc3RVc2VkKQog
ewotICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZWRVbnVzZWRDYWNoZTsKKyAgICBFd2tf
VGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZTsKICAgICBld2tfdGlsZV9oaWRlKGl0
ZW0tPnRpbGUpOwogICAgIGlmICghZXdrX3RpbGVfdmlzaWJsZV9nZXQoaXRlbS0+dGlsZSkpCiAg
ICAgICAgIGV2YXNfb2JqZWN0X3NtYXJ0X21lbWJlcl9kZWwoaXRlbS0+dGlsZS0+aW1hZ2UpOwog
ICAgIGV3a190aWxlX21hdHJpeF90aWxlX3B1dChwcml2LT5tb2RlbC5tYXRyaXgsIGl0ZW0tPnRp
bGUsIGxhc3RVc2VkKTsKLSAgICB0aWxlZFVudXNlZENhY2hlID0gZXdrX3RpbGVfbWF0cml4X3Vu
dXNlZF9jYWNoZV9nZXQocHJpdi0+bW9kZWwubWF0cml4KTsKLSAgICBld2tfdGlsZV91bnVzZWRf
Y2FjaGVfYXV0b19mbHVzaCh0aWxlZFVudXNlZENhY2hlKTsKKyAgICB0aWxlVW51c2VkQ2FjaGUg
PSBld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgpOwor
ICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGVVbnVzZWRDYWNoZSk7CiAK
ICAgICBpdGVtLT50aWxlID0gMDsKIH0KQEAgLTI5MiwyNiArMjkyLDI2IEBAIHN0YXRpYyB2b2lk
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfZmx1c2goRXdrX1Rp
bGVkX0JhY2tpbmdfCiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3Jl
bmRlcl9yZXF1ZXN0X2NsZWFyKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYpCiB7
CiAgICAgRWluYV9Jbmxpc3QqKiBwcmVSZW5kZXJMaXN0ID0gJnByaXYtPnJlbmRlci5wcmVSZW5k
ZXJSZXF1ZXN0czsKLSAgICBFaW5hX0lubGlzdCogaXRlciA9ICpwcmVSZW5kZXJMaXN0LCAqdG1w
OworICAgIEVpbmFfSW5saXN0KiBpdGVyID0gKnByZVJlbmRlckxpc3QsICpuZXh0OwogICAgIHdo
aWxlIChpdGVyKSB7CiAgICAgICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX1ByZV9SZW5kZXJf
UmVxdWVzdCogcmVxdWVzdCA9CiAgICAgICAgICAgICBFSU5BX0lOTElTVF9DT05UQUlORVJfR0VU
KAogICAgICAgICAgICAgICAgIGl0ZXIsIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX1ByZV9SZW5k
ZXJfUmVxdWVzdCk7Ci0gICAgICAgIHRtcCA9IGl0ZXItPm5leHQ7CisgICAgICAgIG5leHQgPSBp
dGVyLT5uZXh0OwogICAgICAgICAqcHJlUmVuZGVyTGlzdCA9IGVpbmFfaW5saXN0X3JlbW92ZSgq
cHJlUmVuZGVyTGlzdCwgaXRlcik7Ci0gICAgICAgIGl0ZXIgPSB0bXA7CisgICAgICAgIGl0ZXIg
PSBuZXh0OwogICAgICAgICBmcmVlKHJlcXVlc3QpOwogICAgIH0KIH0KIAotLyogYXNzdW1lcyBw
cml2LT5wcm9jZXNzLnByZV9jYiB3YXMgY2FsbGVkIGlmIHJlcXVpcmVkISAqLworLyogYXNzdW1l
cyBwcml2LT5wcm9jZXNzLnByZUNhbGxiYWNrIHdhcyBjYWxsZWQgaWYgcmVxdWlyZWQhICovCiBz
dGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9yZXF1ZXN0X3By
b2Nlc3Nfc2luZ2xlKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYpCiB7CiAgICAg
RXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfUHJlX1JlbmRlcl9SZXF1ZXN0KiByZXF1ZXN0OwogICAg
IEVpbmFfUmVjdGFuZ2xlIGFyZWE7CiAgICAgRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4ID0g
cHJpdi0+bW9kZWwubWF0cml4OwogICAgIEV3a19UaWxlKiB0aWxlOwotICAgIEV3a19UaWxlX1Vu
dXNlZF9DYWNoZSogdGlsZWRVbnVzZWRDYWNoZTsKKyAgICBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUq
IHRpbGVVbnVzZWRDYWNoZTsKICAgICB1bnNpZ25lZCBsb25nIGNvbHVtbiwgcm93OwogICAgIGZs
b2F0IHpvb207CiAgICAgZG91YmxlIGxhc3RfdXNlZCA9IGVjb3JlX2xvb3BfdGltZV9nZXQoKTsK
QEAgLTM0OCw4ICszNDgsOCBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
cHJlX3JlbmRlcl9yZXF1ZXN0X3Byb2Nlc3Nfc2luZ2xlKEV3a19UaWxlZAogCiBlbmQ6CiAgICAg
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVxdWVzdF9kZWwocHJpdiwgcmVx
dWVzdCk7Ci0gICAgdGlsZWRVbnVzZWRDYWNoZSA9IGV3a190aWxlX21hdHJpeF91bnVzZWRfY2Fj
aGVfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7Ci0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2F1
dG9fZmx1c2godGlsZWRVbnVzZWRDYWNoZSk7CisgICAgdGlsZVVudXNlZENhY2hlID0gZXdrX3Rp
bGVfbWF0cml4X3VudXNlZF9jYWNoZV9nZXQocHJpdi0+bW9kZWwubWF0cml4KTsKKyAgICBld2tf
dGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0aWxlVW51c2VkQ2FjaGUpOwogfQogCiBzdGF0
aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Byb2Nlc3NfaWRsZXJf
Y2Iodm9pZCogZGF0YSkKQEAgLTQzMCwxOCArNDMwLDE4IEBAIHN0YXRpYyBpbmxpbmUgRWluYV9C
b29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2ZpbGwoRXdrX1RpbGVkX0JhY2tpbmdf
U3RvCiAKICAgICAgICAgaWYgKGl0ZW0tPnRpbGUpIHsKICAgICAgICAgICAgIEV3a19UaWxlKiBv
bGQgPSBpdGVtLT50aWxlOwotICAgICAgICAgICAgaWYgKG9sZC0+cm93ICE9IGN1cnJlbnRSb3cg
fHwgb2xkLT5jb2wgIT0gY3VycmVudENvbHVtbiB8fCBvbGQtPnpvb20gIT0gem9vbSkKKyAgICAg
ICAgICAgIGlmIChvbGQtPnJvdyAhPSBjdXJyZW50Um93IHx8IG9sZC0+Y29sdW1uICE9IGN1cnJl
bnRDb2x1bW4gfHwgb2xkLT56b29tICE9IHpvb20pCiAgICAgICAgICAgICAgICAgX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3RpbGVfZGlzc29jaWF0ZShwcml2LCBpdGVtLCBsYXN0VXNlZCk7Ci0g
ICAgICAgICAgICBlbHNlIGlmIChvbGQtPnJvdyA9PSBjdXJyZW50Um93ICYmIG9sZC0+Y29sID09
IGN1cnJlbnRDb2x1bW4gJiYgb2xkLT56b29tID09IHpvb20pCisgICAgICAgICAgICBlbHNlIGlm
IChvbGQtPnJvdyA9PSBjdXJyZW50Um93ICYmIG9sZC0+Y29sdW1uID09IGN1cnJlbnRDb2x1bW4g
JiYgb2xkLT56b29tID09IHpvb20pCiAgICAgICAgICAgICAgICAgZ290byBlbmQ7CiAgICAgICAg
IH0KIAogICAgICAgICB0aWxlID0gZXdrX3RpbGVfbWF0cml4X3RpbGVfZXhhY3RfZ2V0KHByaXYt
Pm1vZGVsLm1hdHJpeCwgY3VycmVudENvbHVtbiwgY3VycmVudFJvdywgem9vbSk7CiAKICAgICAg
ICAgaWYgKCF0aWxlKSB7Ci0gICAgICAgICAgICAvKiBOT1RFOiBpdCBuZXZlciByZXR1cm5zIDAg
aWYgaXQtPnRpbGUgd2FzIHNldCEgKi8KKyAgICAgICAgICAgIC8qIE5PVEU6IGl0IG5ldmVyIHJl
dHVybnMgMCBpZiBpdGVtLT50aWxlIHdhcyBzZXQhICovCiAgICAgICAgICAgICBpZiAoaXRlbS0+
dGlsZSkgewotICAgICAgICAgICAgICAgIENSSVRJQ0FMKCJpdC0+dGlsZT0lcCwgYnV0IGl0IHNo
b3VsZCBiZSAwISIsIGl0ZW0tPnRpbGUpOworICAgICAgICAgICAgICAgIENSSVRJQ0FMKCJpdGVt
LT50aWxlPSVwLCBidXQgaXQgc2hvdWxkIGJlIDAhIiwgaXRlbS0+dGlsZSk7CiAgICAgICAgICAg
ICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3RpbGVfZGlzc29jaWF0ZShwcml2LCBpdGVt
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbGFzdFVzZWQpOwogICAgICAgICAgICAgfQpAQCAtNDczLDcgKzQ3Myw3IEBAIHN0YXRpYyBF
d2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRl
bV9hZGQoRXdrX1RpbGVkCiAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbTsK
ICAgICBFdmFzX0Nvb3JkIHgsIHksIHRpbGVXaWR0aCwgdGlsZUhlaWdodDsKIAotICAgIERCRygi
ZXdrQmFja2luZ1N0b3JlJXAiLCBwcml2LT5zZWxmKTsKKyAgICBEQkcoImV3a0JhY2tpbmdTdG9y
ZT0lcCIsIHByaXYtPnNlbGYpOwogCiAgICAgaXRlbSA9IHN0YXRpY19jYXN0PEV3a19UaWxlZF9C
YWNraW5nX1N0b3JlX0l0ZW0qPihtYWxsb2Moc2l6ZW9mKCppdGVtKSkpOwogICAgIGlmICghaXRl
bSkKQEAgLTQ4MSwxMiArNDgxLDEyIEBAIHN0YXRpYyBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9J
dGVtKiBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9hZGQoRXdrX1RpbGVkCiAKICAgICB0
aWxlV2lkdGggPSBwcml2LT52aWV3LnRpbGUud2lkdGg7CiAgICAgdGlsZUhlaWdodCA9IHByaXYt
PnZpZXcudGlsZS5oZWlnaHQ7Ci0gICAgeCA9IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCArIHBy
aXYtPnZpZXcueCArIHRpbGVXaWR0aCAgKmNvbHVtbjsKLSAgICB5ID0gcHJpdi0+dmlldy5vZmZz
ZXQuYmFzZS55ICsgcHJpdi0+dmlldy55ICsgdGlsZUhlaWdodCAgKnJvdzsKKyAgICB4ID0gcHJp
di0+dmlldy5vZmZzZXQuYmFzZS54ICsgcHJpdi0+dmlldy54ICsgdGlsZVdpZHRoICogY29sdW1u
OworICAgIHkgPSBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnkgKyBwcml2LT52aWV3LnkgKyB0aWxl
SGVpZ2h0ICogcm93OwogCiAgICAgaXRlbS0+dGlsZSA9IDA7CiAKLSAgICBpdGVtLT5zbW9vdGhf
c2NhbGUgPSBwcml2LT52aWV3LnRpbGUuem9vbVdlYWtTbW9vdGhTY2FsZTsKKyAgICBpdGVtLT5z
bW9vdGhTY2FsZSA9IHByaXYtPnZpZXcudGlsZS56b29tV2Vha1Ntb290aFNjYWxlOwogICAgIF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXRlbSwgeCwgeSk7CiAgICAgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fcmVzaXplKGl0ZW0sIHRpbGVXaWR0aCwgdGlsZUhlaWdo
dCk7CiAgICAgaWYgKCFfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKHByaXYsIGl0
ZW0sIGNvbHVtbiwgcm93KSkgewpAQCAtNTA5LDcgKzUwOSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2RlbChFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRh
KiBwcml2CiAKIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Ntb290
aF9zY2FsZV9zZXQoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbSwgRWluYV9Cb29s
IHNtb290aFNjYWxlKQogewotICAgIGlmIChpdGVtLT5zbW9vdGhfc2NhbGUgPT0gc21vb3RoU2Nh
bGUpCisgICAgaWYgKGl0ZW0tPnNtb290aFNjYWxlID09IHNtb290aFNjYWxlKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAoaXRlbS0+dGlsZSkKQEAgLTU0OCwxNiArNTQ4LDE2IEBAIHN0YXRp
YyBFaW5hX0Jvb2wgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfY29sc19lbmRfYWRkKEV3
a19UaWxlZF9CYWNraW5nX1N0CiAgICAgdW5zaWduZWQgaW50IGksIHJvdyA9IHJvd0xpc3QgLSBw
cml2LT52aWV3Lml0ZW1zOwogCiAgICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyssIGJhc2VD
b2x1bW4rKykgewotICAgICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdDsKKyAg
ICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXRlbTsKIAotICAgICAgICBpdCA9
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2FkZChwcml2LCBiYXNlQ29sdW1uLCByb3cp
OwotICAgICAgICBpZiAoIWl0KSB7CisgICAgICAgIGl0ZW0gPSBfZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfaXRlbV9hZGQocHJpdiwgYmFzZUNvbHVtbiwgcm93KTsKKyAgICAgICAgaWYgKCFpdGVt
KSB7CiAgICAgICAgICAgICBDUklUSUNBTCgiZmFpbGVkIHRvIGFkZCBjb2x1bW4gJXUgb2YgJXUg
aW4gcm93ICV1LiIsIGksIGNvdW50LCByb3cpOwogICAgICAgICAgICAgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3ZpZXdfY29sc19lbmRfZGVsKHByaXYsIHJvd0xpc3QsIGkpOwogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKLSAgICAgICAgKnJvd0xpc3QgPSBlaW5hX2lu
bGlzdF9hcHBlbmQoKnJvd0xpc3QsIEVJTkFfSU5MSVNUX0dFVChpdCkpOworICAgICAgICAqcm93
TGlzdCA9IGVpbmFfaW5saXN0X2FwcGVuZCgqcm93TGlzdCwgRUlOQV9JTkxJU1RfR0VUKGl0ZW0p
KTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC01OTEsNyArNTkxLDcgQEAgc3RhdGlj
IHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfcm93c19hbGxfZGVsKEV3a19UaWxl
ZF9CYWNraW5nX1N0b3JlX0QKIAogICAgIGZyZWUocHJpdi0+dmlldy5pdGVtcyk7CiAgICAgcHJp
di0+dmlldy5pdGVtcyA9IDA7Ci0gICAgcHJpdi0+dmlldy5jb2xzID0gMDsKKyAgICBwcml2LT52
aWV3LmNvbHVtbnMgPSAwOwogICAgIHByaXYtPnZpZXcucm93cyA9IDA7CiB9CiAKQEAgLTYwMCw3
ICs2MDAsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcmVuZGVyKHZv
aWQqIGRhdGEsIEV3a19UaWxlKiB0aWxlLCBjb25zdCBFaQogICAgIEV3a19UaWxlZF9CYWNraW5n
X1N0b3JlX0RhdGEqIHByaXYgPSBzdGF0aWNfY2FzdDxFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9E
YXRhKj4oZGF0YSk7CiAKICAgICBJTkYoIlRPRE8gJXAgKHZpc2libGU/ICVkKSBbJWx1LCVsdV0g
JWQsJWQgKyAlZHglZCIsCi0gICAgICAgIHRpbGUsIHRpbGUtPnZpc2libGUsIHRpbGUtPmNvbCwg
dGlsZS0+cm93LCBhcmVhLT54LCBhcmVhLT55LCBhcmVhLT53LCBhcmVhLT5oKTsKKyAgICAgICAg
dGlsZSwgdGlsZS0+dmlzaWJsZSwgdGlsZS0+Y29sdW1uLCB0aWxlLT5yb3csIGFyZWEtPngsIGFy
ZWEtPnksIGFyZWEtPncsIGFyZWEtPmgpOwogCiAgICAgaWYgKCF0aWxlLT52aXNpYmxlKQogICAg
ICAgICByZXR1cm47CkBAIC02NTcsNyArNjU3LDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9i
YWNraW5nX3N0b3JlX21lbV9kYmcoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdikK
ICAgICBydW4rKzsKIAogICAgIHByaW50ZigiXG4tLS0gQkVHSU4gREVCVUcgVElMRUQgQkFDS0lO
RyBTVE9SRSBNRU1PUlkgWyVkXSAtLVxuIgotICAgICAgICAgICAidD0lMC4yZiwgb2JqPSVwLCBw
cml2PSVwLCB2aWV3Lml0ZW1zPSVwLCBtYXRyaXg9JXBcbiIsCisgICAgICAgICAgICJ0aWxlPSUw
LjJmLCBvYmo9JXAsIHByaXY9JXAsIHZpZXcuaXRlbXM9JXAsIG1hdHJpeD0lcFxuIiwKICAgICAg
ICAgICAgcnVuLCBlY29yZV9sb29wX3RpbWVfZ2V0KCksCiAgICAgICAgICAgIHByaXYtPnNlbGYs
IHByaXYsIHByaXYtPnZpZXcuaXRlbXMsIHByaXYtPm1vZGVsLm1hdHJpeCk7CiAKQEAgLTY2OSwx
MyArNjY5LDEzIEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9tZW1fZGJn
KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEqIHByaXYpCiAKIHN0YXRpYyBFaW5hX0Jvb2wg
X2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NpZ191c3Iodm9pZCogZGF0YSwgaW50IHR5cGUsIHZv
aWQqIGV2ZW50KQogewotICAgIEVjb3JlX0V2ZW50X1NpZ25hbF9Vc2VyKiBzaWcgPSAoRWNvcmVf
RXZlbnRfU2lnbmFsX1VzZXIqKWV2ZW50OworICAgIEVjb3JlX0V2ZW50X1NpZ25hbF9Vc2VyKiBz
aWduYWxVc2VyID0gKEVjb3JlX0V2ZW50X1NpZ25hbF9Vc2VyKilldmVudDsKICAgICBFd2tfVGls
ZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2ID0gKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0Rh
dGEqKWRhdGE7CiAKLSAgICBpZiAoc2lnLT5udW1iZXIgPT0gMikgewotICAgICAgICBFd2tfVGls
ZV9VbnVzZWRfQ2FjaGUqIHRpbGllVW51c2VkQ2FjaGU7Ci0gICAgICAgIHRpbGllVW51c2VkQ2Fj
aGUgPSBld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRyaXgp
OwotICAgICAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfYXV0b19mbHVzaCh0aWxpZVVudXNlZENh
Y2hlKTsKKyAgICBpZiAoc2lnbmFsVXNlci0+bnVtYmVyID09IDIpIHsKKyAgICAgICAgRXdrX1Rp
bGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGU7CisgICAgICAgIHRpbGVVbnVzZWRDYWNo
ZSA9IGV3a190aWxlX21hdHJpeF91bnVzZWRfY2FjaGVfZ2V0KHByaXYtPm1vZGVsLm1hdHJpeCk7
CisgICAgICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKHRpbGVVbnVzZWRDYWNo
ZSk7CiAgICAgfQogCiAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfZGJnKHByaXYp
OwpAQCAtNjk4LDggKzY5OCw4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9zbWFydF9hZGQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKICAgICBwcml2LT52aWV3
LnRpbGUuem9vbSA9IDEuMDsKICAgICBwcml2LT52aWV3LnRpbGUud2lkdGggPSBkZWZhdWx0VGls
ZVdpZHRoOwogICAgIHByaXYtPnZpZXcudGlsZS5oZWlnaHQgPSBkZWZhdWx0VGlsZUhlaWd0aDsK
LSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCA9IDA7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQu
Y3VyLnkgPSAwOworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCA9IDA7CisgICAgcHJp
di0+dmlldy5vZmZzZXQuY3VycmVudC55ID0gMDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQu
eCA9IDA7CiAgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSAwOwogICAgIHByaXYtPnZpZXcu
b2Zmc2V0LmJhc2UueCA9IDA7CkBAIC03MzQsNyArNzM0LDcgQEAgc3RhdGljIHZvaWQgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X2FkZChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3Jl
KQogICAgIGV2YXNfb2JqZWN0X2NsaXBfc2V0KHByaXYtPmNvbnRlbnRzQ2xpcHBlciwgcHJpdi0+
YmFzZS5jbGlwcGVyKTsKIAogI2lmZGVmIERFQlVHX01FTV9MRUFLUwotICAgIHByaXYtPnNpZ191
c3IgPSBlY29yZV9ldmVudF9oYW5kbGVyX2FkZAorICAgIHByaXYtPnNpZ25hbFVzZXIgPSBlY29y
ZV9ldmVudF9oYW5kbGVyX2FkZAogICAgICAgICAgICAgICAgICAgICAgICAgKEVDT1JFX0VWRU5U
X1NJR05BTF9VU0VSLCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2lnX3VzciwgcHJpdik7CiAj
ZW5kaWYKIH0KQEAgLTc0Miw3ICs3NDIsNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfc21hcnRfYWRkKEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUpCiBzdGF0aWMg
dm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfZGVsKEV2YXNfT2JqZWN0KiBld2tC
YWNraW5nU3RvcmUpCiB7CiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0
b3JlLCBwcml2KTsKLSAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVwIiwgZXdrQmFja2luZ1N0b3Jl
KTsKKyAgICBEQkcoImV3a0JhY2tpbmdTdG9yZT0lcCIsIGV3a0JhY2tpbmdTdG9yZSk7CiAgICAg
RXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGU7CiAKICAgICB0aWxlVW51c2Vk
Q2FjaGUgPSBld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hlX2dldChwcml2LT5tb2RlbC5tYXRy
aXgpOwpAQCAtNzc0LDcgKzc3NCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9zbWFydF9kZWwoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKIAogc3RhdGljIHZv
aWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X21vdmUoRXZhc19PYmplY3QqIGV3a0Jh
Y2tpbmdTdG9yZSwgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHkpCiB7Ci0gICAgREJHKCJld2tC
YWNraW5nU3RvcmUlcCwgbmV3IHBvczogJWR4JWQiLCBld2tCYWNraW5nU3RvcmUsIHgsIHkpOwor
ICAgIERCRygiZXdrQmFja2luZ1N0b3JlPSVwLCBuZXcgcG9zOiAlZHglZCIsIGV3a0JhY2tpbmdT
dG9yZSwgeCwgeSk7CiAKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3Rv
cmUsIHByaXYpOwogCkBAIC03OTAsNyArNzkwLDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9i
YWNraW5nX3N0b3JlX3NtYXJ0X21vdmUoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgRXYK
IAogc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3NtYXJ0X3Jlc2l6ZShFdmFz
X09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBFdmFzX0Nvb3JkIHdpZHRoLCBFdmFzX0Nvb3JkIGhl
aWdodCkKIHsKLSAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVwLCBuZXcgc2l6ZTogJWR4JWQiLCBl
d2tCYWNraW5nU3RvcmUsIHdpZHRoLCBoZWlnaHQpOworICAgIERCRygiZXdrQmFja2luZ1N0b3Jl
PSVwLCBuZXcgc2l6ZTogJWR4JWQiLCBld2tCYWNraW5nU3RvcmUsIHdpZHRoLCBoZWlnaHQpOwog
CiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2KTsKIApA
QCAtODI0LDE4ICs4MjQsMTggQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3Jl
X3NtYXJ0X2hpZGUoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSkKIHN0YXRpYyB2b2lkIF9l
d2tfdGlsZWRfYmFja2luZ19zdG9yZV9yZWNhbGNfcmVuZGVyZXJzKEV3a19UaWxlZF9CYWNraW5n
X1N0b3JlX0RhdGEqIHByaXYsIEV2YXNfQ29vcmQgd2lkdGgsIEV2YXNfQ29vcmQgaGVpZ2h0LCBF
dmFzX0Nvb3JkIHRpbGVXaWR0aCwgRXZhc19Db29yZCB0aWxlSGVpZ2h0KQogewogICAgIGxvbmcg
Y29sdW1ucywgcm93cywgb2xkUm93cywgb2xkQ29sczsKLSAgICBJTkYoImV3a0JhY2tpbmdTdG9y
ZSVwLCBuZXcgc2l6ZTogJWR4JWQiLCBwcml2LT5zZWxmLCB3aWR0aCwgaGVpZ2h0KTsKKyAgICBJ
TkYoImV3a0JhY2tpbmdTdG9yZT0lcCwgbmV3IHNpemU6ICVkeCVkIiwgcHJpdi0+c2VsZiwgd2lk
dGgsIGhlaWdodCk7CiAKICAgICBjb2x1bW5zID0gMSArIHN0YXRpY19jYXN0PGludD4oY2VpbCh3
aWR0aCAvIHN0YXRpY19jYXN0PGZsb2F0Pih0aWxlV2lkdGgpKSk7CiAgICAgcm93cyA9IDEgKyBz
dGF0aWNfY2FzdDxpbnQ+KGNlaWwoaGVpZ2h0IC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVIZWln
aHQpKSk7CiAKLSAgICBJTkYoImV3a0JhY2tpbmdTdG9yZSVwIG5ldyBncmlkIHNpemUgY29sczog
JWxkLCByb3dzOiAlbGQsIHdhcyAlbGQsICVsZCIsCi0gICAgICAgIHByaXYtPnNlbGYsIGNvbHVt
bnMsIHJvd3MsIHByaXYtPnZpZXcuY29scywgcHJpdi0+dmlldy5yb3dzKTsKKyAgICBJTkYoImV3
a0JhY2tpbmdTdG9yZT0lcCBuZXcgZ3JpZCBzaXplIGNvbHVtbnM6ICVsZCwgcm93czogJWxkLCB3
YXMgJWxkLCAlbGQiLAorICAgICAgICBwcml2LT5zZWxmLCBjb2x1bW5zLCByb3dzLCBwcml2LT52
aWV3LmNvbHVtbnMsIHByaXYtPnZpZXcucm93cyk7CiAKLSAgICBpZiAocHJpdi0+dmlldy5jb2xz
ID09IGNvbHVtbnMgJiYgcHJpdi0+dmlldy5yb3dzID09IHJvd3MpCisgICAgaWYgKHByaXYtPnZp
ZXcuY29sdW1ucyA9PSBjb2x1bW5zICYmIHByaXYtPnZpZXcucm93cyA9PSByb3dzKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBvbGRDb2xzID0gcHJpdi0+dmlldy5jb2xzOworICAgIG9sZENvbHMg
PSBwcml2LT52aWV3LmNvbHVtbnM7CiAgICAgb2xkUm93cyA9IHByaXYtPnZpZXcucm93czsKIAog
ICAgIGlmIChyb3dzIDwgb2xkUm93cykgewpAQCAtODUxLDE0ICs4NTEsMTQgQEAgc3RhdGljIHZv
aWQgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3JlY2FsY19yZW5kZXJlcnMoRXdrX1RpbGVkX0Jh
Y2tpbmdfU3RvcmVfRGEKIAogICAgIHByaXYtPnZpZXcuaXRlbXMgPSBzdGF0aWNfY2FzdDxFaW5h
X0lubGlzdCoqPihuZXdJdGVtcyk7CiAgICAgcHJpdi0+dmlldy5yb3dzID0gcm93czsKLSAgICBw
cml2LT52aWV3LmNvbHMgPSBjb2x1bW5zOworICAgIHByaXYtPnZpZXcuY29sdW1ucyA9IGNvbHVt
bnM7CiAgICAgaWYgKHJvd3MgPiBvbGRSb3dzKSB7CiAgICAgICAgIEVpbmFfSW5saXN0Kiogc3Rh
cnQgPSBwcml2LT52aWV3Lml0ZW1zICsgb2xkUm93czsKICAgICAgICAgRWluYV9Jbmxpc3QqKiBl
bmQgPSBwcml2LT52aWV3Lml0ZW1zICsgcm93czsKICAgICAgICAgZm9yICg7IHN0YXJ0IDwgZW5k
OyBzdGFydCsrKSB7CiAgICAgICAgICAgICAqc3RhcnQgPSAwOwotICAgICAgICAgICAgRWluYV9C
b29sIHIgPSBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19jb2xzX2VuZF9hZGQocHJpdiwg
c3RhcnQsIDAsIGNvbHVtbnMpOwotICAgICAgICAgICAgaWYgKCFyKSB7CisgICAgICAgICAgICBF
aW5hX0Jvb2wgcmVzdWx0ID0gX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfY29sc19lbmRf
YWRkKHByaXYsIHN0YXJ0LCAwLCBjb2x1bW5zKTsKKyAgICAgICAgICAgIGlmICghcmVzdWx0KSB7
CiAgICAgICAgICAgICAgICAgQ1JJVElDQUwoImZhaWxlZCB0byBhbGxvY2F0ZSAlbGQgY29sdW1u
cyIsIGNvbHVtbnMpOwogICAgICAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92
aWV3X3Jvd3NfcmFuZ2VfZGVsKHByaXYsIHByaXYtPnZpZXcuaXRlbXMgKyBvbGRSb3dzLCBzdGFy
dCk7CiAgICAgICAgICAgICAgICAgcHJpdi0+dmlldy5yb3dzID0gb2xkUm93czsKQEAgLTkxNCwx
MSArOTE0LDExIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
dmlld19kYmcoY29uc3QgRXdrX1RpbGVkX0JhY2tpbmdfU3RvCiB7CiAgICAgRWluYV9Jbmxpc3Qq
KiBzdGFydCwgKiplbmQ7CiAgICAgcHJpbnRmKCJ0aWxlcz0lMmxkLCUybGQgIG1vZGVsPSUybGQs
JTJsZCBbJWR4JWRdIGJhc2U9JSszbGQsJSs0bGQgb2Zmc2V0PSUrNGQsJSs0ZCBvbGQ9JSs0ZCwl
KzRkIGJhc2U9JSszZCwlKzNkXG4iLAotICAgICAgICAgICBwcml2LT52aWV3LmNvbHMsIHByaXYt
PnZpZXcucm93cywKKyAgICAgICAgICAgcHJpdi0+dmlldy5jb2x1bW5zLCBwcml2LT52aWV3LnJv
d3MsCiAgICAgICAgICAgIHByaXYtPm1vZGVsLmN1cnJlbnQuY29sdW1ucywgcHJpdi0+bW9kZWwu
Y3VycmVudC5yb3dzLAogICAgICAgICAgICBwcml2LT5tb2RlbC53aWR0aCwgcHJpdi0+bW9kZWwu
aGVpZ2h0LAogICAgICAgICAgICBwcml2LT5tb2RlbC5iYXNlLmNvbHVtbiwgcHJpdi0+bW9kZWwu
YmFzZS5yb3csCi0gICAgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54LCBwcml2LT52aWV3
Lm9mZnNldC5jdXIueSwKKyAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54LCBw
cml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnksCiAgICAgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0
Lm9sZC54LCBwcml2LT52aWV3Lm9mZnNldC5vbGQueSwKICAgICAgICAgICAgcHJpdi0+dmlldy5v
ZmZzZXQuYmFzZS54LCBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnkpOwogCkBAIC05MzMsNyArOTMz
LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X2Ri
Zyhjb25zdCBFd2tfVGlsZWRfQmFja2luZ19TdG8KICAgICAgICAgICAgIGlmICghaXRlbS0+dGls
ZSkKICAgICAgICAgICAgICAgICBwcmludGYoIiAgICAgICAgICAgIDsiKTsKICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBwcmludGYoIiU4cCAlbHUsJWx1OyIsIGl0ZW0tPnRpbGUs
IGl0ZW0tPnRpbGUtPmNvbCwgaXRlbS0+dGlsZS0+cm93KTsKKyAgICAgICAgICAgICAgICBwcmlu
dGYoIiU4cCAlbHUsJWx1OyIsIGl0ZW0tPnRpbGUsIGl0ZW0tPnRpbGUtPmNvbHVtbiwgaXRlbS0+
dGlsZS0+cm93KTsKICAgICAgICAgfQogICAgICAgICBwcmludGYoIlxuIik7CiAgICAgfQpAQCAt
OTcxLDcgKzk3MSw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3
X3dyYXBfdXAoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSoKICAgICAgICAgRWluYV9Jbmxp
c3QqIHRlbXAgPSAqaXRlcmF0b3JTdGFydDsKICAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3Rv
cmVfSXRlbSogaXRlbTsKICAgICAgICAgRXZhc19Db29yZCB0aWxlUG9zaXRpb25YID0gb3JpZ2lu
WDsKLSAgICAgICAgaW50IGNvdW50MSA9IDA7CisgICAgICAgIGludCBjb2x1bW4gPSAwOwogCiAg
ICAgICAgIGZvciAoaXRlcmF0b3JMaXN0ID0gaXRlcmF0b3JTdGFydDsgaXRlcmF0b3JMaXN0IDwg
aXRlcmF0b3JFbmQ7IGl0ZXJhdG9yTGlzdCsrKQogICAgICAgICAgICAgKml0ZXJhdG9yTGlzdCA9
ICooaXRlcmF0b3JMaXN0ICsgMSk7CkBAIC05ODEsOCArOTgxLDggQEAgc3RhdGljIHZvaWQgX2V3
a190aWxlZF9iYWNraW5nX3N0b3JlX3ZpZXdfd3JhcF91cChFd2tfVGlsZWRfQmFja2luZ19TdG9y
ZV9EYXRhKgogICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKHRlbXAsIGl0ZW0pIHsKICAgICAg
ICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXRlbSwgdGlsZVBvc2l0
aW9uWCwgdGlsZVBvc2l0aW9uWSk7CiAgICAgICAgICAgICB0aWxlUG9zaXRpb25YICs9IHRpbGVX
aWR0aDsKLSAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX2ZpbGwocHJp
diwgaXRlbSwgY291bnQxLCBsYXN0Um93KTsKLSAgICAgICAgICAgIGNvdW50MSsrOworICAgICAg
ICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fZmlsbChwcml2LCBpdGVtLCBjb2x1
bW4sIGxhc3RSb3cpOworICAgICAgICAgICAgY29sdW1uKys7CiAgICAgICAgIH0KICAgICAgICAg
dGlsZVBvc2l0aW9uWSArPSB0aWxlSGVpZ2h0OwogICAgIH0KQEAgLTEwMTksNyArMTAxOSw3IEBA
IHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBfZG93bihFd2tf
VGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAgICAgICAgIEVpbmFfSW5saXN0KiB0ZW1wID0gKml0
ZXJhdG9yU3RhcnQ7CiAgICAgICAgIEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0l0ZW0qIGl0ZW07
CiAgICAgICAgIEV2YXNfQ29vcmQgdGlsZVBvc2l0aW9uWCA9IG9yaWdpblg7Ci0gICAgICAgIGlu
dCBjb3VudDEgPSAwOworICAgICAgICBpbnQgY29sdW1uID0gMDsKIAogICAgICAgICBmb3IgKGl0
ZXJhdG9yTGlzdCA9IGl0ZXJhdG9yU3RhcnQ7IGl0ZXJhdG9yTGlzdCA+IGl0ZXJhdG9yRW5kOyBp
dGVyYXRvckxpc3QtLSkKICAgICAgICAgICAgICppdGVyYXRvckxpc3QgPSAqKGl0ZXJhdG9yTGlz
dCAtIDEpOwpAQCAtMTAyOSw4ICsxMDI5LDggQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3ZpZXdfd3JhcF9kb3duKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKICAg
ICAgICAgRUlOQV9JTkxJU1RfRk9SRUFDSCh0ZW1wLCBpdGVtKSB7CiAgICAgICAgICAgICBfZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0ZW0sIHRpbGVQb3NpdGlvblgsIHRpbGVQ
b3NpdGlvblkpOwogICAgICAgICAgICAgdGlsZVBvc2l0aW9uWCArPSB0aWxlV2lkdGg7Ci0gICAg
ICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9maWxsKHByaXYsIGl0ZW0sIGNv
dW50MSwgMCk7Ci0gICAgICAgICAgICBjb3VudDErKzsKKyAgICAgICAgICAgIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9pdGVtX2ZpbGwocHJpdiwgaXRlbSwgY29sdW1uLCAwKTsKKyAgICAgICAg
ICAgIGNvbHVtbisrOwogICAgICAgICB9CiAgICAgICAgIHRpbGVQb3NpdGlvblkgLT0gdGlsZUhl
aWdodDsKICAgICB9CkBAIC0xMDQxLDIyICsxMDQxLDIyIEBAIHN0YXRpYyB2b2lkIF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBfZG93bihFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9E
YXRhCiAgKiBAaW50ZXJuYWwKICAqIE1vdmUgbGVmdC1tb3N0IChmaXJzdCkgY29sdW1uIHJpZ2h0
IGFzIGxhc3QgKHJpZ2h0LW1vc3QpLgogICoKLSAqIFRoZSBmaW5hbCByZXN1bHQgaXMgdmlzdWFs
bHkgdGhlIHNhbWUsIGJ1dCBsb2dpY2FsbHkgdGhlIGZpcnN0IGNvbCB0aGF0CisgKiBUaGUgZmlu
YWwgcmVzdWx0IGlzIHZpc3VhbGx5IHRoZSBzYW1lLCBidXQgbG9naWNhbGx5IHRoZSBmaXJzdCBj
b2x1bW4gdGhhdAogICogd2VudCBvdXQgb2Ygc2NyZWVuIGlzIG5vdyBhdCBsYXN0IGFuZCBmaWxs
ZWQgd2l0aCBuZXcgbW9kZWwgaXRlbXMuCiAgKgogICogVGhpcyBpcyB3b3J0aCBqdXN0IHdoZW4g
QGEgY291bnQgaXMgc21hbGxlciB0aGFuIEBjCi0gKiBwcml2LT52aWV3LmNvbHMsIGFmdGVyIHRo
YXQgb25lIGlzIHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CisgKiBwcml2LT52aWV3
LmNvbHVtbnMsIGFmdGVyIHRoYXQgb25lIGlzIHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0cml4IHNv
IGl0CiAgKiBpcyBiZXR0ZXIgdG8gdHJpZ2dlciBmdWxsIHJlZmlsbC4KICAqCiAgKiBAcGFyYW0g
Y291bnQgdGhlIG51bWJlciBvZiB0aW1lcyB0byByZXBlYXQgdGhlIHByb2Nlc3MuCiAgKi8KIHN0
YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3dyYXBfbGVmdChFd2tfVGls
ZWRfQmFja2luZ19TdG9yZV9EYXRhKiBwcml2LCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQgeSwg
dW5zaWduZWQgaW50IGNvdW50KQogewotICAgIHVuc2lnbmVkIGludCByb3csIGxhc3RDb2x1bW4g
PSBwcml2LT52aWV3LmNvbHMgLSAxOworICAgIHVuc2lnbmVkIGludCByb3csIGxhc3RDb2x1bW4g
PSBwcml2LT52aWV3LmNvbHVtbnMgLSAxOwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoID0gcHJp
di0+dmlldy50aWxlLndpZHRoOwogICAgIEV2YXNfQ29vcmQgdGlsZUhlaWdodCA9IHByaXYtPnZp
ZXcudGlsZS5oZWlnaHQ7CiAgICAgRXZhc19Db29yZCBvZmZzZXRYID0gcHJpdi0+dmlldy5vZmZz
ZXQuYmFzZS54ICsgY291bnQgKiB0aWxlV2lkdGg7Ci0gICAgRXZhc19Db29yZCBveSA9IHkgKyBw
cml2LT52aWV3Lm9mZnNldC5iYXNlLnk7CisgICAgRXZhc19Db29yZCBvZmZzZXRZID0geSArIHBy
aXYtPnZpZXcub2Zmc2V0LmJhc2UueTsKICAgICBFaW5hX0lubGlzdCoqIGl0ZXJhdG9yOwogICAg
IEVpbmFfSW5saXN0KiogaXRlcmF0b3JFbmQ7CiAgICAgdW5zaWduZWQgaW50IGJhc2VDb2x1bW4g
PSBsYXN0Q29sdW1uIC0gY291bnQgKyAxOwpAQCAtMTA3NywxMCArMTA3NywxMCBAQCBzdGF0aWMg
dm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld193cmFwX2xlZnQoRXdrX1RpbGVkX0Jh
Y2tpbmdfU3RvcmVfRGF0YQogICAgICAgICAgICAgaXQgPSBFSU5BX0lOTElTVF9DT05UQUlORVJf
R0VUKCppdGVyYXRvciwgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSk7CiAgICAgICAgICAg
ICAqaXRlcmF0b3IgPSBlaW5hX2lubGlzdF9kZW1vdGUoKml0ZXJhdG9yLCAqaXRlcmF0b3IpOwog
Ci0gICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0LCB0aWxl
UG9zaXRpb25YLCBveSk7CisgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRl
bV9tb3ZlKGl0LCB0aWxlUG9zaXRpb25YLCBvZmZzZXRZKTsKICAgICAgICAgICAgIF9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9pdGVtX2ZpbGwocHJpdiwgaXQsIGNvbHVtbiwgcm93KTsKICAgICAg
ICAgfQotICAgICAgICBveSArPSB0aWxlSGVpZ2h0OworICAgICAgICBvZmZzZXRZICs9IHRpbGVI
ZWlnaHQ7CiAgICAgfQogCiAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ID0gb2Zmc2V0WDsK
QEAgLTEwOTAsMTEgKzEwOTAsMTEgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX3ZpZXdfd3JhcF9sZWZ0KEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEKICAqIEBpbnRl
cm5hbAogICogTW92ZSByaWdodC1tb3N0IChsYXN0KSBjb2x1bW4gbGVmdCBhcyBmaXJzdCAobGVm
dC1tb3N0KS4KICAqCi0gKiBUaGUgZmluYWwgcmVzdWx0IGlzIHZpc3VhbGx5IHRoZSBzYW1lLCBi
dXQgbG9naWNhbGx5IHRoZSBsYXN0IGNvbCB0aGF0CisgKiBUaGUgZmluYWwgcmVzdWx0IGlzIHZp
c3VhbGx5IHRoZSBzYW1lLCBidXQgbG9naWNhbGx5IHRoZSBsYXN0IGNvbHVtbiB0aGF0CiAgKiB3
ZW50IG91dCBvZiBzY3JlZW4gaXMgbm93IGF0IGZpcnN0IGFuZCBmaWxsZWQgd2l0aCBuZXcgbW9k
ZWwgaXRlbXMuCiAgKgogICogVGhpcyBpcyB3b3J0aCBqdXN0IHdoZW4gQGEgY291bnQgaXMgc21h
bGxlciB0aGFuIEBjCi0gKiBwcml2LT52aWV3LmNvbHMsIGFmdGVyIHRoYXQgb25lIGlzIHJlZmls
bGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CisgKiBwcml2LT52aWV3LmNvbHVtbnMsIGFmdGVy
IHRoYXQgb25lIGlzIHJlZmlsbGluZyB0aGUgd2hvbGUgbWF0cml4IHNvIGl0CiAgKiBpcyBiZXR0
ZXIgdG8gdHJpZ2dlciBmdWxsIHJlZmlsbC4KICAqCiAgKiBAcGFyYW0gY291bnQgdGhlIG51bWJl
ciBvZiB0aW1lcyB0byByZXBlYXQgdGhlIHByb2Nlc3MuCkBAIC0xMTM4LDcgKzExMzgsNyBAQCBz
dGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdmlld19yZWZpbGwoRXdrX1RpbGVk
X0JhY2tpbmdfU3RvcmVfRGF0YSogcAogewogICAgIEVpbmFfSW5saXN0KiogaXRlcmF0b3IsICoq
aXRlcmF0b3JFbmQ7CiAgICAgRXZhc19Db29yZCBiYXNlVGlsZVBvc2l0aW9uWCwgdGlsZVBvc2l0
aW9uWSwgdGlsZVdpZHRoLCB0aWxlSGVpZ2h0OwotICAgIHVuc2lnbmVkIGludCByOworICAgIHVu
c2lnbmVkIGludCByb3c7CiAKICAgICBldmFzX29iamVjdF9tb3ZlKHByaXYtPmJhc2UuY2xpcHBl
ciwgeCwgeSk7CiAKQEAgLTExNTAsMTkgKzExNTAsMTkgQEAgc3RhdGljIHZvaWQgX2V3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3ZpZXdfcmVmaWxsKEV3a19UaWxlZF9CYWNraW5nX1N0b3JlX0RhdGEq
IHAKIAogICAgIGl0ZXJhdG9yID0gcHJpdi0+dmlldy5pdGVtczsKICAgICBpdGVyYXRvckVuZCA9
IGl0ZXJhdG9yICsgcHJpdi0+dmlldy5yb3dzOwotICAgIHIgPSAwOworICAgIHJvdyA9IDA7CiAK
ICAgICBwcml2LT5tb2RlbC5iYXNlLmNvbHVtbiAtPSBzdGVwWDsKICAgICBwcml2LT5tb2RlbC5i
YXNlLnJvdyAtPSBzdGVwWTsKIAotICAgIGZvciAoOyBpdGVyYXRvciA8IGl0ZXJhdG9yRW5kOyBp
dGVyYXRvcisrLCByKyspIHsKKyAgICBmb3IgKDsgaXRlcmF0b3IgPCBpdGVyYXRvckVuZDsgaXRl
cmF0b3IrKywgcm93KyspIHsKICAgICAgICAgRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSog
aXRlbTsKICAgICAgICAgRXZhc19Db29yZCBuZXdUaWxlUG9zaXRpb25YID0gYmFzZVRpbGVQb3Np
dGlvblg7Ci0gICAgICAgIHVuc2lnbmVkIGludCBjb3VudCA9IDA7CisgICAgICAgIHVuc2lnbmVk
IGludCBjb2x1bW4gPSAwOwogICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKCppdGVyYXRvciwg
aXRlbSkgewotICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0ZW1fZmlsbChw
cml2LCBpdGVtLCBjb3VudCwgcik7CisgICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfaXRlbV9maWxsKHByaXYsIGl0ZW0sIGNvbHVtbiwgcm93KTsKICAgICAgICAgICAgIF9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXRlbSwgbmV3VGlsZVBvc2l0aW9uWCwgdGls
ZVBvc2l0aW9uWSk7Ci0gICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgY29sdW1uKys7
CiAgICAgICAgICAgICBuZXdUaWxlUG9zaXRpb25YICs9IHRpbGVXaWR0aDsKICAgICAgICAgfQog
ICAgICAgICB0aWxlUG9zaXRpb25ZICs9IHRpbGVIZWlnaHQ7CkBAIC0xMTg1LDExICsxMTg1LDEx
IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bvc19hcHBseShF
d2tfVGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAgICAgaXRlcmF0b3IgPSBwcml2LT52aWV3Lml0
ZW1zOwogICAgIGl0ZXJhdG9yRW5kID0gaXRlcmF0b3IgKyBwcml2LT52aWV3LnJvd3M7CiAgICAg
Zm9yICg7IGl0ZXJhdG9yIDwgaXRlcmF0b3JFbmQ7IGl0ZXJhdG9yKyspIHsKLSAgICAgICAgRXdr
X1RpbGVkX0JhY2tpbmdfU3RvcmVfSXRlbSogaXQ7Ci0gICAgICAgIEV2YXNfQ29vcmQgb3ggPSBi
YXNlVGlsZVBvc2l0aW9uWDsKLSAgICAgICAgRUlOQV9JTkxJU1RfRk9SRUFDSCgqaXRlcmF0b3Is
IGl0KSB7Ci0gICAgICAgICAgICBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaXRlbV9tb3ZlKGl0
LCBveCwgYmFzZVRpbGVQb3NpdGlvblkpOwotICAgICAgICAgICAgb3ggKz0gdGlsZVdpZHRoOwor
ICAgICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdGVtOworICAgICAgICBFdmFz
X0Nvb3JkIG9mZnNldFggPSBiYXNlVGlsZVBvc2l0aW9uWDsKKyAgICAgICAgRUlOQV9JTkxJU1Rf
Rk9SRUFDSCgqaXRlcmF0b3IsIGl0ZW0pIHsKKyAgICAgICAgICAgIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9pdGVtX21vdmUoaXRlbSwgb2Zmc2V0WCwgYmFzZVRpbGVQb3NpdGlvblkpOworICAg
ICAgICAgICAgb2Zmc2V0WCArPSB0aWxlV2lkdGg7CiAgICAgICAgIH0KICAgICAgICAgYmFzZVRp
bGVQb3NpdGlvblkgKz0gdGlsZUhlaWdodDsKICAgICB9CkBAIC0xMTk3LDI4ICsxMTk3LDI4IEBA
IHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV92aWV3X3Bvc19hcHBseShFd2tf
VGlsZWRfQmFja2luZ19TdG9yZV9EYXRhCiAKIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9zbWFydF9jYWxjdWxhdGVfb2Zmc2V0X2ZvcmNlKEV3a19UaWxlZF9CYWNraW5nX1N0
b3JlX0RhdGEqIHByaXYpCiB7Ci0gICAgRXZhc19Db29yZCBkZWx0YVggPSBwcml2LT52aWV3Lm9m
ZnNldC5jdXIueCAtIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC54OwotICAgIEV2YXNfQ29vcmQgZGVs
dGFZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgLSBwcml2LT52aWV3Lm9mZnNldC5vbGQueTsK
KyAgICBFdmFzX0Nvb3JkIGRlbHRhWCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAtIHBy
aXYtPnZpZXcub2Zmc2V0Lm9sZC54OworICAgIEV2YXNfQ29vcmQgZGVsdGFZID0gcHJpdi0+dmll
dy5vZmZzZXQuY3VycmVudC55IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLnk7CiAgICAgRXZhc19D
b29yZCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQ7CiAgICAgaW50IHN0ZXBZLCBzdGVwWDsKIAotICAg
IElORigiZXdrQmFja2luZ1N0b3JlJXAsIG9mZnNldDogJSs0ZCwgJSs0ZCAoJSs0ZCwgJSs0ZCki
LAotICAgICAgICBwcml2LT5zZWxmLCBkZWx0YVgsIGRlbHRhWSwgcHJpdi0+dmlldy5vZmZzZXQu
Y3VyLngsIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55KTsKKyAgICBJTkYoImV3a0JhY2tpbmdTdG9y
ZT0lcCwgb2Zmc2V0OiAlKzRkLCAlKzRkICglKzRkLCAlKzRkKSIsCisgICAgICAgIHByaXYtPnNl
bGYsIGRlbHRhWCwgZGVsdGFZLCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LngsIHByaXYtPnZp
ZXcub2Zmc2V0LmN1cnJlbnQueSk7CiAKICAgICB0aWxlV2lkdGggPSBwcml2LT52aWV3LnRpbGUu
d2lkdGg7CiAgICAgdGlsZUhlaWdodCA9IHByaXYtPnZpZXcudGlsZS5oZWlnaHQ7CiAKLSAgICBs
b25nIG5ld0NvbHVtbiA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXIueCAvIHRpbGVXaWR0aDsKKyAg
ICBsb25nIG5ld0NvbHVtbiA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnggLyB0aWxlV2lk
dGg7CiAgICAgc3RlcFggPSBwcml2LT5tb2RlbC5iYXNlLmNvbHVtbiAtIG5ld0NvbHVtbjsKLSAg
ICBsb25nIG5ld1JvdyA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXIueSAvIHRpbGVIZWlnaHQ7Cisg
ICAgbG9uZyBuZXdSb3cgPSAtcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55IC8gdGlsZUhlaWdo
dDsKICAgICBzdGVwWSA9IHByaXYtPm1vZGVsLmJhc2Uucm93IC0gbmV3Um93OwogCi0gICAgcHJp
di0+dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueDsKLSAgICBwcml2
LT52aWV3Lm9mZnNldC5vbGQueSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OworICAgIHByaXYt
PnZpZXcub2Zmc2V0Lm9sZC54ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54OworICAgIHBy
aXYtPnZpZXcub2Zmc2V0Lm9sZC55ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55OwogICAg
IGV2YXNfb2JqZWN0X21vdmUoCiAgICAgICAgIHByaXYtPmNvbnRlbnRzQ2xpcHBlciwKLSAgICAg
ICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggKyBwcml2LT52aWV3LngsCi0gICAgICAgIHByaXYt
PnZpZXcub2Zmc2V0LmN1ci55ICsgcHJpdi0+dmlldy55KTsKKyAgICAgICAgcHJpdi0+dmlldy5v
ZmZzZXQuY3VycmVudC54ICsgcHJpdi0+dmlldy54LAorICAgICAgICBwcml2LT52aWV3Lm9mZnNl
dC5jdXJyZW50LnkgKyBwcml2LT52aWV3LnkpOwogCiAgICAgcHJpdi0+dmlldy5vZmZzZXQuYmFz
ZS54ICs9IGRlbHRhWCAtIHN0ZXBYICogdGlsZVdpZHRoOwogICAgIHByaXYtPnZpZXcub2Zmc2V0
LmJhc2UueSArPSBkZWx0YVkgLSBzdGVwWSAqIHRpbGVIZWlnaHQ7CkBAIC0xMjI5LDEzICsxMjI5
LDEzIEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxh
dGVfb2Zmc2V0X2ZvcmNlKEV3a19UaWxlZF9CYWNrCiAKIHN0YXRpYyB2b2lkIF9ld2tfdGlsZWRf
YmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGVfb2Zmc2V0KEV3a19UaWxlZF9CYWNraW5nX1N0
b3JlX0RhdGEqIHByaXYsIEV2YXNfQ29vcmQgeCwgRXZhc19Db29yZCB5KQogewotICAgIEV2YXNf
Q29vcmQgZGVsdGFYID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggLSBwcml2LT52aWV3Lm9mZnNl
dC5vbGQueDsKLSAgICBFdmFzX0Nvb3JkIGRlbHRhWSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55
IC0gcHJpdi0+dmlldy5vZmZzZXQub2xkLnk7CisgICAgRXZhc19Db29yZCBkZWx0YVggPSBwcml2
LT52aWV3Lm9mZnNldC5jdXJyZW50LnggLSBwcml2LT52aWV3Lm9mZnNldC5vbGQueDsKKyAgICBF
dmFzX0Nvb3JkIGRlbHRhWSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSAtIHByaXYtPnZp
ZXcub2Zmc2V0Lm9sZC55OwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoLCB0aWxlSGVpZ2h0Owog
ICAgIGludCBzdGVwWSwgc3RlcFg7CiAKLSAgICBJTkYoImV3a0JhY2tpbmdTdG9yZSVwLCBvZmZz
ZXQ6ICUrNGQsICUrNGQgKCUrNGQsICUrNGQpIiwKLSAgICAgICAgcHJpdi0+c2VsZiwgZGVsdGFY
LCBkZWx0YVksIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54LCBwcml2LT52aWV3Lm9mZnNldC5jdXIu
eSk7CisgICAgSU5GKCJld2tCYWNraW5nU3RvcmU9JXAsIG9mZnNldDogJSs0ZCwgJSs0ZCAoJSs0
ZCwgJSs0ZCkiLAorICAgICAgICBwcml2LT5zZWxmLCBkZWx0YVgsIGRlbHRhWSwgcHJpdi0+dmll
dy5vZmZzZXQuY3VycmVudC54LCBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkpOwogCiAgICAg
aWYgKCFkZWx0YVggJiYgIWRlbHRhWSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTI0MywyMCArMTI0
MywyMCBAQCBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc21hcnRfY2FsY3Vs
YXRlX29mZnNldChFd2tfVGlsZWRfQmFja2luZ19TdAogICAgIHRpbGVXaWR0aCA9IHByaXYtPnZp
ZXcudGlsZS53aWR0aDsKICAgICB0aWxlSGVpZ2h0ID0gcHJpdi0+dmlldy50aWxlLmhlaWdodDsK
IAotICAgIGxvbmcgbmV3Q29sID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci54IC8gdGlsZVdpZHRo
OworICAgIGxvbmcgbmV3Q29sID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAvIHRpbGVX
aWR0aDsKICAgICBzdGVwWCA9IHByaXYtPm1vZGVsLmJhc2UuY29sdW1uIC0gbmV3Q29sOwotICAg
IGxvbmcgbmV3Um93ID0gLXByaXYtPnZpZXcub2Zmc2V0LmN1ci55IC8gdGlsZUhlaWdodDsKKyAg
ICBsb25nIG5ld1JvdyA9IC1wcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgLyB0aWxlSGVpZ2h0
OwogICAgIHN0ZXBZID0gcHJpdi0+bW9kZWwuYmFzZS5yb3cgLSBuZXdSb3c7CiAKLSAgICBwcml2
LT52aWV3Lm9mZnNldC5vbGQueCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAgIHByaXYt
PnZpZXcub2Zmc2V0Lm9sZC55ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7CisgICAgcHJpdi0+
dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAgcHJp
di0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAgICAg
ZXZhc19vYmplY3RfbW92ZSgKICAgICAgICAgcHJpdi0+Y29udGVudHNDbGlwcGVyLAotICAgICAg
ICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCArIHByaXYtPnZpZXcueCwKLSAgICAgICAgcHJpdi0+
dmlldy5vZmZzZXQuY3VyLnkgKyBwcml2LT52aWV3LnkpOworICAgICAgICBwcml2LT52aWV3Lm9m
ZnNldC5jdXJyZW50LnggKyBwcml2LT52aWV3LngsCisgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0
LmN1cnJlbnQueSArIHByaXYtPnZpZXcueSk7CiAKLSAgICBpZiAoKHN0ZXBYIDwgMCAmJiBzdGVw
WCA8PSAtcHJpdi0+dmlldy5jb2xzKQotICAgICAgICB8fCAoc3RlcFggPiAwICYmIHN0ZXBYID49
IHByaXYtPnZpZXcuY29scykKKyAgICBpZiAoKHN0ZXBYIDwgMCAmJiBzdGVwWCA8PSAtcHJpdi0+
dmlldy5jb2x1bW5zKQorICAgICAgICB8fCAoc3RlcFggPiAwICYmIHN0ZXBYID49IHByaXYtPnZp
ZXcuY29sdW1ucykKICAgICAgICAgfHwgKHN0ZXBZIDwgMCAmJiBzdGVwWSA8PSAtcHJpdi0+dmll
dy5yb3dzKQogICAgICAgICB8fCAoc3RlcFkgPiAwICYmIHN0ZXBZID49IHByaXYtPnZpZXcucm93
cykpIHsKIApAQCAtMTI5MSw4ICsxMjkxLDggQEAgc3RhdGljIHZvaWQgX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3NtYXJ0X2NhbGN1bGF0ZV9wb3MoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmUKICAg
ICBwcml2LT52aWV3LnkgPSB5OwogICAgIGV2YXNfb2JqZWN0X21vdmUoCiAgICAgICAgIHByaXYt
PmNvbnRlbnRzQ2xpcHBlciwKLSAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggKyBwcml2
LT52aWV3LngsCi0gICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci55ICsgcHJpdi0+dmlldy55
KTsKKyAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ICsgcHJpdi0+dmlldy54LAor
ICAgICAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgKyBwcml2LT52aWV3LnkpOwogfQog
CiBzdGF0aWMgdm9pZCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZmlsbF9yZW5kZXJlcnMoRXdr
X1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdikKQEAgLTEzMTQsNyArMTMxNCw3IEBAIHN0
YXRpYyB2b2lkIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGUoRXZhc19P
YmplY3QqIGV3a0JhY2tpbmdTdG9yCiAgICAgRXZhc19Db29yZCB4LCB5LCB3aWR0aCwgaGVpZ2h0
OwogCiAgICAgZXZhc19vYmplY3RfZ2VvbWV0cnlfZ2V0KGV3a0JhY2tpbmdTdG9yZSwgJngsICZ5
LCAmd2lkdGgsICZoZWlnaHQpOwotICAgIERCRygiZXdrQmFja2luZ1N0b3JlJXAgYXQgJWQsJWQg
KyAlZHglZCIsIGV3a0JhY2tpbmdTdG9yZSwgeCwgeSwgd2lkdGgsIGhlaWdodCk7CisgICAgREJH
KCJld2tCYWNraW5nU3RvcmU9JXAgYXQgJWQsJWQgKyAlZHglZCIsIGV3a0JhY2tpbmdTdG9yZSwg
eCwgeSwgd2lkdGgsIGhlaWdodCk7CiAKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tC
YWNraW5nU3RvcmUsIHByaXYpOwogCkBAIC0xMzgxLDEwICsxMzgxLDEwIEBAIHN0YXRpYyB2b2lk
IF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zbWFydF9jYWxjdWxhdGUoRXZhc19PYmplY3QqIGV3
a0JhY2tpbmdTdG9yCiAgICAgICAgIHx8IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCA8PSAtIHBy
aXYtPnZpZXcudGlsZS53aWR0aAogICAgICAgICB8fCBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnkg
PiAwCiAgICAgICAgIHx8IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueSA8PSAtIHByaXYtPnZpZXcu
dGlsZS5oZWlnaHQpCi0gICAgICAgIEVSUigiaW5jb3JyZWN0IGJhc2Ugb2Zmc2V0ICUrNGQsJSs0
ZCwgdGlsZT0lZHglZCwgY3VyPSUrNGQsJSs0ZFxuIiwKKyAgICAgICAgRVJSKCJpbmNvcnJlY3Qg
YmFzZSBvZmZzZXQgJSs0ZCwlKzRkLCB0aWxlPSVkeCVkLCBjdXJyZW50PSUrNGQsJSs0ZFxuIiwK
ICAgICAgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueCwgcHJpdi0+dmlldy5vZmZzZXQu
YmFzZS55LAogICAgICAgICAgICAgcHJpdi0+dmlldy50aWxlLndpZHRoLCBwcml2LT52aWV3LnRp
bGUuaGVpZ2h0LAotICAgICAgICAgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLngsIHByaXYtPnZp
ZXcub2Zmc2V0LmN1ci55KTsKKyAgICAgICAgICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQu
eCwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55KTsKIAogfQogCkBAIC0xNDQ4LDggKzE0NDgs
OCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVs
bF9vZmZzZXRfc2V0X2ludGVybmFsKEV3a19UaQogICAgIGlmIChwcml2LT5yZW5kZXIuZGlzYWJs
ZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54
ID0geDsKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueSA9IHk7CisgICAgcHJpdi0+dmlldy5v
ZmZzZXQuY3VycmVudC54ID0geDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgPSB5
OwogCiAgICAgcHJpdi0+Y2hhbmdlZC5vZmZzZXQgPSB0cnVlOwogICAgIF9ld2tfdGlsZWRfYmFj
a2luZ19zdG9yZV9jaGFuZ2VkKHByaXYpOwpAQCAtMTQ1OSwxMCArMTQ1OSwxMCBAQCBzdGF0aWMg
RWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0
X2ludGVybmFsKEV3a19UaQogCiBFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Ny
b2xsX2Z1bGxfb2Zmc2V0X3NldChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBFdmFzX0Nv
b3JkIHgsIEV2YXNfQ29vcmQgeSkKIHsKLSAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVwLCB4PSVk
LCB5PSVkIiwgZXdrQmFja2luZ1N0b3JlLCB4LCB5KTsKKyAgICBEQkcoImV3a0JhY2tpbmdTdG9y
ZT0lcCwgeD0lZCwgeT0lZCIsIGV3a0JhY2tpbmdTdG9yZSwgeCwgeSk7CiAKICAgICBQUklWX0RB
VEFfR0VUX09SX1JFVFVSTihld2tCYWNraW5nU3RvcmUsIHByaXYsIGZhbHNlKTsKLSAgICBpZiAo
eCA9PSBwcml2LT52aWV3Lm9mZnNldC5jdXIueCAmJiB5ID09IHByaXYtPnZpZXcub2Zmc2V0LmN1
ci55KQorICAgIGlmICh4ID09IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueCAmJiB5ID09IHBy
aXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBy
ZXR1cm4gX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXRfaW50
ZXJuYWwocHJpdiwgeCwgeSk7CkBAIC0xNDcwLDIwICsxNDcwLDIwIEBAIEVpbmFfQm9vbCBld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0KEV2YXNfT2JqZWN0KiBl
d2tCYWNraW5nCiAKIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9zY3JvbGxfZnVs
bF9vZmZzZXRfYWRkKEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIEV2YXNfQ29vcmQgZGVs
dGFYLCBFdmFzX0Nvb3JkIGRlbHRhWSkKIHsKLSAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVwLCBk
ZWx0YVg9JWQsIGRlbHRhWT0lZCIsIGV3a0JhY2tpbmdTdG9yZSwgZGVsdGFYLCBkZWx0YVkpOwor
ICAgIERCRygiZXdrQmFja2luZ1N0b3JlPSVwLCBkZWx0YVg9JWQsIGRlbHRhWT0lZCIsIGV3a0Jh
Y2tpbmdTdG9yZSwgZGVsdGFYLCBkZWx0YVkpOwogCiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRV
Uk4oZXdrQmFja2luZ1N0b3JlLCBwcml2LCBmYWxzZSk7CiAgICAgaWYgKCFkZWx0YVggJiYgIWRl
bHRhWSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICByZXR1cm4gX2V3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9zZXRfaW50ZXJuYWwKLSAgICAgICAgICAgICAg
IChwcml2LCBwcml2LT52aWV3Lm9mZnNldC5jdXIueCArIGRlbHRhWCwgcHJpdi0+dmlldy5vZmZz
ZXQuY3VyLnkgKyBkZWx0YVkpOworICAgICAgICAgICAgICAgKHByaXYsIHByaXYtPnZpZXcub2Zm
c2V0LmN1cnJlbnQueCArIGRlbHRhWCwgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55ICsgZGVs
dGFZKTsKIH0KIAogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfem9v
bV9zZXRfaW50ZXJuYWwoRXdrX1RpbGVkX0JhY2tpbmdfU3RvcmVfRGF0YSogcHJpdiwgZmxvYXQq
IHpvb20sIEV2YXNfQ29vcmQgY3VycmVudFgsIEV2YXNfQ29vcmQgY3VycmVudFksIEV2YXNfQ29v
cmQqIG9mZnNldFgsIEV2YXNfQ29vcmQqIG9mZnNldFkpCiB7Ci0gICAgKm9mZnNldFggPSBwcml2
LT52aWV3Lm9mZnNldC5jdXIueDsKLSAgICAqb2Zmc2V0WSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1
ci55OworICAgICpvZmZzZXRYID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54OworICAgICpv
ZmZzZXRZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55OwogCiAgICAgaWYgKGZhYnNmKHBy
aXYtPnZpZXcudGlsZS56b29tIC0gKnpvb20pIDwgem9vbVN0ZXBNaW5pbXVtKSB7CiAgICAgICAg
IERCRygiaWdub3JlZCBhcyB6b29tIGRpZmZlcmVuY2UgaXMgPCAlZjogJWYiLApAQCAtMTUxNCwx
MCArMTUxNCwxMCBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96
b29tX3NldF9pbnRlcm5hbChFd2tfVGlsZWRfQmFja2luZ19TdAogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVyYXRvciwgKippdGVyYXRvckVuZDsKLSAg
ICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBpdDsKKyAgICBFd2tfVGlsZWRfQmFja2lu
Z19TdG9yZV9JdGVtKiBpdGVtOwogCi0gICAgRXZhc19Db29yZCBuZXdYID0gY3VycmVudFggKyAo
cHJpdi0+dmlldy5vZmZzZXQuY3VyLnggLSBjdXJyZW50WCkgKiBzY2FsZTsKLSAgICBFdmFzX0Nv
b3JkIG5ld1kgPSBjdXJyZW50WSArIChwcml2LT52aWV3Lm9mZnNldC5jdXIueSAtIGN1cnJlbnRZ
KSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3WCA9IGN1cnJlbnRYICsgKHByaXYtPnZpZXcu
b2Zmc2V0LmN1cnJlbnQueCAtIGN1cnJlbnRYKSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3
WSA9IGN1cnJlbnRZICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSAtIGN1cnJlbnRZKSAq
IHNjYWxlOwogCiAgICAgRXZhc19Db29yZCBtb2RlbFdpZHRoID0gcHJpdi0+bW9kZWwud2lkdGgg
KiBzY2FsZTsKICAgICBFdmFzX0Nvb3JkIG1vZGVsSGVpZ2h0ID0gcHJpdi0+bW9kZWwuaGVpZ2h0
ICogc2NhbGU7CkBAIC0xNTQxLDE1ICsxNTQxLDE1IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a190
aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fc2V0X2ludGVybmFsKEV3a19UaWxlZF9CYWNraW5nX1N0
CiAgICAgcHJpdi0+Y2hhbmdlZC5tb2RlbCA9IHRydWU7CiAgICAgX2V3a190aWxlZF9iYWNraW5n
X3N0b3JlX2NoYW5nZWQocHJpdik7CiAKLSAgICBwcml2LT52aWV3Lm9mZnNldC5jdXIueCA9IG5l
d1g7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnkgPSBuZXdZOworICAgIHByaXYtPnZpZXcu
b2Zmc2V0LmN1cnJlbnQueCA9IG5ld1g7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC55
ID0gbmV3WTsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSBiYXNlWDsKICAgICBwcml2
LT52aWV3Lm9mZnNldC5iYXNlLnkgPSBiYXNlWTsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9s
ZC54ID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLng7Ci0gICAgcHJpdi0+dmlldy5vZmZzZXQub2xk
LnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXIueTsKLSAgICAqb2Zmc2V0WCA9IHByaXYtPnZpZXcu
b2Zmc2V0LmN1ci54OwotICAgICpvZmZzZXRZID0gcHJpdi0+dmlldy5vZmZzZXQuY3VyLnk7Cisg
ICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7
CisgICAgcHJpdi0+dmlldy5vZmZzZXQub2xkLnkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50
Lnk7CisgICAgKm9mZnNldFggPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lng7CisgICAgKm9m
ZnNldFkgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAKICAgICBldmFzX29iamVjdF9t
b3ZlKAogICAgICAgICBwcml2LT5jb250ZW50c0NsaXBwZXIsCkBAIC0xNTY4LDkgKzE1NjgsOSBA
QCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3NldF9pbnRl
cm5hbChFd2tfVGlsZWRfQmFja2luZ19TdAogICAgICAgICBFdmFzX0Nvb3JkIHRpbGVQb3NpdGlv
blggPSBiYXNlVGlsZVBvc2l0aW9uWDsKICAgICAgICAgRWluYV9Jbmxpc3QqIGxzdCA9ICppdGVy
YXRvcjsKIAotICAgICAgICBFSU5BX0lOTElTVF9GT1JFQUNIKGxzdCwgaXQpIHsKLSAgICAgICAg
ICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX21vdmUoaXQsIHRpbGVQb3NpdGlvblgs
IHRpbGVQb3NpdGlvblkpOwotICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0b3JlX2l0
ZW1fcmVzaXplKGl0LCB0aWxlV2lkdGgsIHRpbGVIZWlnaHQpOworICAgICAgICBFSU5BX0lOTElT
VF9GT1JFQUNIKGxzdCwgaXRlbSkgeworICAgICAgICAgICAgX2V3a190aWxlZF9iYWNraW5nX3N0
b3JlX2l0ZW1fbW92ZShpdGVtLCB0aWxlUG9zaXRpb25YLCB0aWxlUG9zaXRpb25ZKTsKKyAgICAg
ICAgICAgIF9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9pdGVtX3Jlc2l6ZShpdGVtLCB0aWxlV2lk
dGgsIHRpbGVIZWlnaHQpOwogICAgICAgICAgICAgdGlsZVBvc2l0aW9uWCArPSB0aWxlV2lkdGg7
CiAgICAgICAgIH0KICAgICAgICAgdGlsZVBvc2l0aW9uWSArPSB0aWxlSGVpZ2h0OwpAQCAtMTU4
MSw3ICsxNTgxLDcgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVf
em9vbV9zZXRfaW50ZXJuYWwoRXdrX1RpbGVkX0JhY2tpbmdfU3QKIAogRWluYV9Cb29sIGV3a190
aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fc2V0KEV2YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUs
IGZsb2F0KiB6b29tLCBFdmFzX0Nvb3JkIGN1cnJlbnRYLCBFdmFzX0Nvb3JkIGN1cnJlbnRZLCBF
dmFzX0Nvb3JkKiBvZmZzZXRYLCBFdmFzX0Nvb3JkKiBvZmZzZXRZKQogewotICAgIERCRygiZXdr
QmFja2luZ1N0b3JlJXAsIHpvb209JWYiLCBld2tCYWNraW5nU3RvcmUsICp6b29tKTsKKyAgICBE
QkcoImV3a0JhY2tpbmdTdG9yZT0lcCwgem9vbT0lZiIsIGV3a0JhY2tpbmdTdG9yZSwgKnpvb20p
OwogCiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2LCBm
YWxzZSk7CiAKQEAgLTE1OTAsNyArMTU5MCw3IEBAIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV96b29tX3NldChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBmbG9hdCoKIAog
RWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21fd2Vha19zZXQoRXZhc19PYmpl
Y3QqIGV3a0JhY2tpbmdTdG9yZSwgZmxvYXQgem9vbSwgRXZhc19Db29yZCBjdXJyZW50WCwgRXZh
c19Db29yZCBjdXJyZW50WSkKIHsKLSAgICBEQkcoImV3a0JhY2tpbmdTdG9yZSVwLCB6b29tPSVm
IiwgZXdrQmFja2luZ1N0b3JlLCB6b29tKTsKKyAgICBEQkcoImV3a0JhY2tpbmdTdG9yZT0lcCwg
em9vbT0lZiIsIGV3a0JhY2tpbmdTdG9yZSwgem9vbSk7CiAgICAgUFJJVl9EQVRBX0dFVF9PUl9S
RVRVUk4oZXdrQmFja2luZ1N0b3JlLCBwcml2LCBmYWxzZSk7CiAgICAgaWYgKCFwcml2LT52aWV3
LndpZHRoIHx8ICFwcml2LT52aWV3LmhlaWdodCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MTYxMyw4ICsxNjEzLDggQEAgRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3pvb21f
d2Vha19zZXQoRXZhc19PYmplY3QqIGV3a0JhY2tpbmdTdG9yZSwgZmwKIAogICAgIGludCB2cm93
cyA9IHN0YXRpY19jYXN0PGludD4oY2VpbChwcml2LT52aWV3LmhlaWdodCAvc3RhdGljX2Nhc3Q8
ZmxvYXQ+KHRpbGVIZWlnaHQpKSArIDEpOwogICAgIGludCB2Y29scyA9IHN0YXRpY19jYXN0PGlu
dD4oY2VpbChwcml2LT52aWV3LndpZHRoIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHRpbGVXaWR0aCkp
ICsgMSk7Ci0gICAgRXZhc19Db29yZCBuZXdYID0gY3VycmVudFggKyAocHJpdi0+dmlldy5vZmZz
ZXQuY3VyLnggLSBjdXJyZW50WCkgKiBzY2FsZTsKLSAgICBFdmFzX0Nvb3JkIG5ld1kgPSBjdXJy
ZW50WSArIChwcml2LT52aWV3Lm9mZnNldC5jdXIueSAtIGN1cnJlbnRZKSAqIHNjYWxlOworICAg
IEV2YXNfQ29vcmQgbmV3WCA9IGN1cnJlbnRYICsgKHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQu
eCAtIGN1cnJlbnRYKSAqIHNjYWxlOworICAgIEV2YXNfQ29vcmQgbmV3WSA9IGN1cnJlbnRZICsg
KHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSAtIGN1cnJlbnRZKSAqIHNjYWxlOwogICAgIEV2
YXNfQ29vcmQgYmFzZVggPSBuZXdYICUgdGlsZVdpZHRoOwogICAgIEV2YXNfQ29vcmQgYmFzZVkg
PSBuZXdZICUgdGlsZUhlaWdodDsKICAgICB1bnNpZ25lZCBsb25nIGJhc2VSb3cgPSAtbmV3WSAv
IHRpbGVIZWlnaHQ7CkBAIC0xNjI2LDcgKzE2MjYsNyBAQCBFaW5hX0Jvb2wgZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfem9vbV93ZWFrX3NldChFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBm
bAogICAgICAgICByZUNhbGN1bGF0ZSA9IHRydWU7CiAgICAgfQogCi0gICAgaWYgKHZyb3dzID4g
cHJpdi0+dmlldy5yb3dzIHx8IHZjb2xzID4gcHJpdi0+dmlldy5jb2xzKQorICAgIGlmICh2cm93
cyA+IHByaXYtPnZpZXcucm93cyB8fCB2Y29scyA+IHByaXYtPnZpZXcuY29sdW1ucykKICAgICAg
ICAgcmVDYWxjdWxhdGUgPSB0cnVlOwogCiAgICAgaWYgKHJlQ2FsY3VsYXRlKSB7CkBAIC0xNjY3
LDggKzE2NjcsOCBAQCB2b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2ZpeF9vZmZzZXRzKEV2
YXNfT2JqZWN0KiBld2tCYWNraW5nU3RvcmUsIEV2YXNfQ29vcgogICAgIFBSSVZfREFUQV9HRVRf
T1JfUkVUVVJOKGV3a0JhY2tpbmdTdG9yZSwgcHJpdik7CiAgICAgRWluYV9Jbmxpc3QqKiBpdGVy
YXRvciwgKippdGVyYXRvckVuZDsKICAgICBFd2tfVGlsZWRfQmFja2luZ19TdG9yZV9JdGVtKiBp
dGVtOwotICAgIEV2YXNfQ29vcmQgbmV3WCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci54OwotICAg
IEV2YXNfQ29vcmQgbmV3WSA9IHByaXYtPnZpZXcub2Zmc2V0LmN1ci55OworICAgIEV2YXNfQ29v
cmQgbmV3WCA9IHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueDsKKyAgICBFdmFzX0Nvb3JkIG5l
d1kgPSBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lnk7CiAgICAgRXZhc19Db29yZCBiYXNlWCA9
IHByaXYtPnZpZXcub2Zmc2V0LmJhc2UueDsKICAgICBFdmFzX0Nvb3JkIGJhc2VZID0gcHJpdi0+
dmlldy5vZmZzZXQuYmFzZS55OwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoID0gcHJpdi0+dmll
dy50aWxlLndpZHRoOwpAQCAtMTY5Niw4ICsxNjk2LDggQEAgdm9pZCBld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9maXhfb2Zmc2V0cyhFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlLCBFdmFzX0Nv
b3IKICAgICAgICAgcHJpdi0+bW9kZWwuYmFzZS5yb3cgPSAtbmV3WSAvIHRpbGVIZWlnaHQ7CiAg
ICAgfQogCi0gICAgcHJpdi0+dmlldy5vZmZzZXQuY3VyLnggPSBuZXdYOwotICAgIHByaXYtPnZp
ZXcub2Zmc2V0LmN1ci55ID0gbmV3WTsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50Lngg
PSBuZXdYOworICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1cnJlbnQueSA9IG5ld1k7CiAgICAgcHJp
di0+dmlldy5vZmZzZXQub2xkLnggPSBuZXdYOwogICAgIHByaXYtPnZpZXcub2Zmc2V0Lm9sZC55
ID0gbmV3WTsKICAgICBwcml2LT52aWV3Lm9mZnNldC5iYXNlLnggPSBiYXNlWDsKQEAgLTE4MTUs
OCArMTgxNSw4IEBAIHZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZmx1c2goRXZhc19PYmpl
Y3QqIGV3a0JhY2tpbmdTdG9yZSkKICAgICBQUklWX0RBVEFfR0VUX09SX1JFVFVSTihld2tCYWNr
aW5nU3RvcmUsIHByaXYpOwogICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENh
Y2hlID0gMDsKIAotICAgIHByaXYtPnZpZXcub2Zmc2V0LmN1ci54ID0gMDsKLSAgICBwcml2LT52
aWV3Lm9mZnNldC5jdXIueSA9IDA7CisgICAgcHJpdi0+dmlldy5vZmZzZXQuY3VycmVudC54ID0g
MDsKKyAgICBwcml2LT52aWV3Lm9mZnNldC5jdXJyZW50LnkgPSAwOwogICAgIHByaXYtPnZpZXcu
b2Zmc2V0Lm9sZC54ID0gMDsKICAgICBwcml2LT52aWV3Lm9mZnNldC5vbGQueSA9IDA7CiAgICAg
cHJpdi0+dmlldy5vZmZzZXQuYmFzZS54ID0gMDsKQEAgLTE5NTYsNyArMTk1Niw3IEBAIEVpbmFf
Qm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlZ2lvbihFdmFzX09iamVj
dCogZXdrQmFja2luZ1N0b3JlCiB7CiAgICAgUFJJVl9EQVRBX0dFVF9PUl9SRVRVUk4oZXdrQmFj
a2luZ1N0b3JlLCBwcml2LCBmYWxzZSk7CiAgICAgRWluYV9UaWxlX0dyaWRfU2xpY2VyIHNsaWNl
cjsKLSAgICBjb25zdCBFaW5hX1RpbGVfR3JpZF9JbmZvKiBpbmZvOworICAgIGNvbnN0IEVpbmFf
VGlsZV9HcmlkX0luZm8qIGdyaWRJbmZvOwogICAgIEV2YXNfQ29vcmQgdGlsZVdpZHRoLCB0aWxl
SGVpZ2h0OwogICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSogdGlsZVVudXNlZENhY2hlOwogCkBA
IC0xOTcwLDEwICsxOTcwLDEwIEBAIEVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9w
cmVfcmVuZGVyX3JlZ2lvbihFdmFzX09iamVjdCogZXdrQmFja2luZ1N0b3JlCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKLSAgICB3aGlsZSAoZWluYV90aWxlX2dyaWRfc2xpY2VyX25l
eHQoJnNsaWNlciwgJmluZm8pKSB7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgYyA9IGlu
Zm8tPmNvbDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyByID0gaW5mby0+cm93OwotICAg
ICAgICBpZiAoIV9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlcXVlc3RfYWRk
KHByaXYsIGMsIHIsIHpvb20pKQorICAgIHdoaWxlIChlaW5hX3RpbGVfZ3JpZF9zbGljZXJfbmV4
dCgmc2xpY2VyLCAmZ3JpZEluZm8pKSB7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgY29s
dW1uID0gZ3JpZEluZm8tPmNvbDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyByb3cgPSBn
cmlkSW5mby0+cm93OworICAgICAgICBpZiAoIV9ld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVf
cmVuZGVyX3JlcXVlc3RfYWRkKHByaXYsIGNvbHVtbiwgcm93LCB6b29tKSkKICAgICAgICAgICAg
IGJyZWFrOwogICAgIH0KIApAQCAtMTk5Nyw3ICsxOTk3LDcgQEAgRWluYV9Cb29sIGV3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVsYXRpdmVfcmFkaXVzKEV2YXNfT2JqZWN0KiBl
d2tCYWMKICAgICBlbmRSb3cgPSBzdGQ6Om1pbihwcml2LT5tb2RlbC5jdXJyZW50LnJvd3MgLSAx
LAogICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5tb2RlbC5iYXNlLnJvdyArIHByaXYtPnZp
ZXcucm93cyArIG4gLSAxKTsKICAgICBlbmRDb2wgPSBzdGQ6Om1pbihwcml2LT5tb2RlbC5jdXJy
ZW50LmNvbHVtbnMgLSAxLAotICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5tb2RlbC5iYXNl
LmNvbHVtbiArIHByaXYtPnZpZXcuY29scyArIG4gLSAxKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgcHJpdi0+bW9kZWwuYmFzZS5jb2x1bW4gKyBwcml2LT52aWV3LmNvbHVtbnMgKyBuIC0gMSk7
CiAKICAgICBJTkYoInN0YXJ0Um93PSVsdSwgZW5kUm93PSVsdSwgc3RhcnRDb2w9JWx1LCBlbmRD
b2w9JWx1IiwKICAgICAgICAgc3RhcnRSb3csIGVuZFJvdywgc3RhcnRDb2wsIGVuZENvbCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmUu
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfYmFja2luZ19zdG9yZS5oCmluZGV4
IGU5M2NjZjcuLjdiOGNlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dGlsZWRfYmFja2luZ19zdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGls
ZWRfYmFja2luZ19zdG9yZS5oCkBAIC02Miw5ICs2Miw5IEBAIHN0cnVjdCBfRXdrX1RpbGVfU3Rh
dHMgewogfTsKIAogc3RydWN0IF9Fd2tfVGlsZSB7Ci0gICAgRWluYV9UaWxlciogdXBkYXRlczsg
ICAgLyoqPCB1cGRhdGVkL2RpcnR5IGFyZWFzICovCisgICAgRWluYV9UaWxlciAqdXBkYXRlczsg
ICAgLyoqPCB1cGRhdGVkL2RpcnR5IGFyZWFzICovCiAgICAgRXdrX1RpbGVfU3RhdHMgc3RhdHM7
ICAgICAgIC8qKjwgdGlsZSB1c2FnZSBzdGF0aXN0aWNzICovCi0gICAgdW5zaWduZWQgbG9uZyBj
b2wsIHJvdzsgLyoqPCB0aWxlIHRpbGUgcG9zaXRpb24gKi8KKyAgICB1bnNpZ25lZCBsb25nIGNv
bHVtbiwgcm93OyAvKio8IHRpbGUgdGlsZSBwb3NpdGlvbiAqLwogICAgIEV2YXNfQ29vcmQgeCwg
eTsgICAgICAgIC8qKjwgdGlsZSBjb29yZGluYXRlIHBvc2l0aW9uICovCiAKICAgICAvKiogTmV2
ZXIgZXZlciBjaGFuZ2UgdGhvc2UgYWZ0ZXIgdGlsZSBpcyBjcmVhdGVkIChyZXNwZWN0IGNvbnN0
ISkgKi8KQEAgLTc2LDQ1ICs3Niw0NSBAQCBzdHJ1Y3QgX0V3a19UaWxlIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKiBhbGlnbmVtZW50IQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqLwogICAgIGludCB2aXNpYmxlOyAgICAgICAgICAgICAgICAgIC8q
KjwgdmlzaWJpbGl0eSBjb3VudGVyIG9mIHRoaXMgdGlsZSAqLwotICAgIEV2YXNfT2JqZWN0KiBp
bWFnZTsgICAgICAgICAgIC8qKjwgRXZhcyBJbWFnZSwgdGhlIHRpbGUgdG8gYmUgcmVuZGVyZWQg
Ki8KLSAgICB1aW50OF90KiBwaXhlbHM7CisgICAgRXZhc19PYmplY3QgKmltYWdlOyAgICAgICAg
ICAgLyoqPCBFdmFzIEltYWdlLCB0aGUgdGlsZSB0byBiZSByZW5kZXJlZCAqLworICAgIHVpbnQ4
X3QgKnBpeGVsczsKIH07CiAKICNpbmNsdWRlICJld2tfdGlsZWRfbWF0cml4LmgiCiAjaW5jbHVk
ZSAiZXdrX3RpbGVkX21vZGVsLmgiCiAKIC8qIHZpZXcgKi8KLUV2YXNfT2JqZWN0KiBld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9hZGQoRXZhcyogZSk7Ci0KLXZvaWQgZXdrX3RpbGVkX2JhY2tpbmdf
c3RvcmVfcmVuZGVyX2NiX3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sICgqY2IpKHZvaWQq
IGRhdGEsIEV3a19UaWxlKiB0LCBjb25zdCBFaW5hX1JlY3RhbmdsZSogYXJlYSksIGNvbnN0IHZv
aWQqIGRhdGEpOwotCi1FaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2Z1
bGxfb2Zmc2V0X3NldChFdmFzX09iamVjdCogbywgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHkp
OwotRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9mdWxsX29mZnNldF9h
ZGQoRXZhc19PYmplY3QqIG8sIEV2YXNfQ29vcmQgZHgsIEV2YXNfQ29vcmQgZHkpOwotRWluYV9C
b29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3Njcm9sbF9pbm5lcl9vZmZzZXRfYWRkKEV2YXNf
T2JqZWN0KiBvLCBFdmFzX0Nvb3JkIGR4LCBFdmFzX0Nvb3JkIGR5LCBFdmFzX0Nvb3JkIHgsIEV2
YXNfQ29vcmQgeSwgRXZhc19Db29yZCB3LCBFdmFzX0Nvb3JkIGgpOwotCi1FaW5hX0Jvb2wgZXdr
X3RpbGVkX2JhY2tpbmdfc3RvcmVfem9vbV9zZXQoRXZhc19PYmplY3QqIG8sIGZsb2F0KiB6b29t
LCBFdmFzX0Nvb3JkIGN4LCBFdmFzX0Nvb3JkIGN5LCBFdmFzX0Nvb3JkKiBvZmZ4LCBFdmFzX0Nv
b3JkKiBvZmZ5KTsKLUVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3dlYWtf
c2V0KEV2YXNfT2JqZWN0KiBvLCBmbG9hdCB6b29tLCBFdmFzX0Nvb3JkIGN4LCBFdmFzX0Nvb3Jk
IGN5KTsKLXZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZml4X29mZnNldHMoRXZhc19PYmpl
Y3QqIG8sIEV2YXNfQ29vcmQgdywgRXZhc19Db29yZCBoKTsKLXZvaWQgZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfem9vbV93ZWFrX3Ntb290aF9zY2FsZV9zZXQoRXZhc19PYmplY3QqIG8sIEVpbmFf
Qm9vbCBzbW9vdGhfc2NhbGUpOwotdm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9hbHBoYV9z
ZXQoRXZhc19PYmplY3QqIG8sIEVpbmFfQm9vbCBoYXNfYWxwaGEpOwotRWluYV9Cb29sIGV3a190
aWxlZF9iYWNraW5nX3N0b3JlX3VwZGF0ZShFdmFzX09iamVjdCogbywgY29uc3QgRWluYV9SZWN0
YW5nbGUqIHVwZGF0ZSk7Ci12b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3VwZGF0ZXNfcHJv
Y2Vzc19wcmVfc2V0KEV2YXNfT2JqZWN0KiBvLCB2b2lkKigqY2IpKHZvaWQqIGRhdGEsIEV2YXNf
T2JqZWN0ICpvKSwgY29uc3Qgdm9pZCogZGF0YSk7Ci12b2lkIGV3a190aWxlZF9iYWNraW5nX3N0
b3JlX3VwZGF0ZXNfcHJvY2Vzc19wb3N0X3NldChFdmFzX09iamVjdCogbywgdm9pZCooKmNiKSh2
b2lkKiBkYXRhLCB2b2lkKiBwcmVfZGF0YSwgRXZhc19PYmplY3QgKm8pLCBjb25zdCB2b2lkKiBk
YXRhKTsKLXZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdXBkYXRlc19wcm9jZXNzKEV2YXNf
T2JqZWN0KiBvKTsKLXZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdXBkYXRlc19jbGVhcihF
dmFzX09iamVjdCogbyk7Ci12b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2NvbnRlbnRzX3Jl
c2l6ZShFdmFzX09iamVjdCogbywgRXZhc19Db29yZCB3aWR0aCwgRXZhc19Db29yZCBoZWlnaHQp
Owotdm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9kaXNhYmxlZF91cGRhdGVfc2V0KEV2YXNf
T2JqZWN0KiBvLCBFaW5hX0Jvb2wgdmFsdWUpOwotdm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9mbHVzaChFdmFzX09iamVjdCogbyk7Ci12b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2Vu
YWJsZV9zY2FsZV9zZXQoRXZhc19PYmplY3QqIG8sIEVpbmFfQm9vbCB2YWx1ZSk7Ci0KLUV3a19U
aWxlX1VudXNlZF9DYWNoZSogZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2Fj
aGVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBvKTsKLXZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfdGlsZV91bnVzZWRfY2FjaGVfc2V0KEV2YXNfT2JqZWN0KiBvLCBFd2tfVGlsZV9VbnVzZWRf
Q2FjaGUqIHR1Yyk7Ci0KLUVpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9wcmVfcmVu
ZGVyX3JlZ2lvbihFdmFzX09iamVjdCogbywgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHksIEV2
YXNfQ29vcmQgdywgRXZhc19Db29yZCBoLCBmbG9hdCB6b29tKTsKLUVpbmFfQm9vbCBld2tfdGls
ZWRfYmFja2luZ19zdG9yZV9wcmVfcmVuZGVyX3JlbGF0aXZlX3JhZGl1cyhFdmFzX09iamVjdCog
bywgdW5zaWduZWQgaW50IG4sIGZsb2F0IHpvb20pOwotRWluYV9Cb29sIGV3a190aWxlZF9iYWNr
aW5nX3N0b3JlX3ByZV9yZW5kZXJfc3BpcmFsX3F1ZXVlKEV2YXNfT2JqZWN0KiBvLCBFaW5hX1Jl
Y3RhbmdsZSogdmlld19yZWN0LCBFaW5hX1JlY3RhbmdsZSogcmVuZGVyX3JlY3QsIGludCBtYXhf
bWVtb3J5LCBmbG9hdCB6b29tKTsKLXZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3Jl
bmRlcl9jYW5jZWwoRXZhc19PYmplY3QqIG8pOwotCi1FaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tp
bmdfc3RvcmVfZGlzYWJsZV9yZW5kZXIoRXZhc19PYmplY3QqIG8pOwotRWluYV9Cb29sIGV3a190
aWxlZF9iYWNraW5nX3N0b3JlX2VuYWJsZV9yZW5kZXIoRXZhc19PYmplY3QqIG8pOworRXZhc19P
YmplY3QgKmV3a190aWxlZF9iYWNraW5nX3N0b3JlX2FkZChFdmFzICplKTsKKwordm9pZCBld2tf
dGlsZWRfYmFja2luZ19zdG9yZV9yZW5kZXJfY2Jfc2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jv
b2wgKCpjYikodm9pZCAqZGF0YSwgRXdrX1RpbGUgKnQsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlICph
cmVhKSwgY29uc3Qgdm9pZCAqZGF0YSk7CisKK0VpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19z
dG9yZV9zY3JvbGxfZnVsbF9vZmZzZXRfc2V0KEV2YXNfT2JqZWN0ICpvLCBFdmFzX0Nvb3JkIHgs
IEV2YXNfQ29vcmQgeSk7CitFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xs
X2Z1bGxfb2Zmc2V0X2FkZChFdmFzX09iamVjdCAqbywgRXZhc19Db29yZCBkeCwgRXZhc19Db29y
ZCBkeSk7CitFaW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfc2Nyb2xsX2lubmVyX29m
ZnNldF9hZGQoRXZhc19PYmplY3QgKm8sIEV2YXNfQ29vcmQgZHgsIEV2YXNfQ29vcmQgZHksIEV2
YXNfQ29vcmQgeCwgRXZhc19Db29yZCB5LCBFdmFzX0Nvb3JkIHcsIEV2YXNfQ29vcmQgaCk7CisK
K0VpbmFfQm9vbCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3NldChFdmFzX09iamVjdCAq
bywgZmxvYXQgKnpvb20sIEV2YXNfQ29vcmQgY3gsIEV2YXNfQ29vcmQgY3ksIEV2YXNfQ29vcmQg
Km9mZngsIEV2YXNfQ29vcmQgKm9mZnkpOworRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0
b3JlX3pvb21fd2Vha19zZXQoRXZhc19PYmplY3QgKm8sIGZsb2F0IHpvb20sIEV2YXNfQ29vcmQg
Y3gsIEV2YXNfQ29vcmQgY3kpOwordm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9maXhfb2Zm
c2V0cyhFdmFzX09iamVjdCAqbywgRXZhc19Db29yZCB3LCBFdmFzX0Nvb3JkIGgpOwordm9pZCBl
d2tfdGlsZWRfYmFja2luZ19zdG9yZV96b29tX3dlYWtfc21vb3RoX3NjYWxlX3NldChFdmFzX09i
amVjdCAqbywgRWluYV9Cb29sIHNtb290aF9zY2FsZSk7Cit2b2lkIGV3a190aWxlZF9iYWNraW5n
X3N0b3JlX2FscGhhX3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIGhhc19hbHBoYSk7CitF
aW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdXBkYXRlKEV2YXNfT2JqZWN0ICpvLCBj
b25zdCBFaW5hX1JlY3RhbmdsZSAqdXBkYXRlKTsKK3ZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfdXBkYXRlc19wcm9jZXNzX3ByZV9zZXQoRXZhc19PYmplY3QgKm8sIHZvaWQqKCpjYikodm9p
ZCAqZGF0YSwgRXZhc19PYmplY3QgKm8pLCBjb25zdCB2b2lkICpkYXRhKTsKK3ZvaWQgZXdrX3Rp
bGVkX2JhY2tpbmdfc3RvcmVfdXBkYXRlc19wcm9jZXNzX3Bvc3Rfc2V0KEV2YXNfT2JqZWN0ICpv
LCB2b2lkKigqY2IpKHZvaWQgKmRhdGEsIHZvaWQgKnByZV9kYXRhLCBFdmFzX09iamVjdCAqbyks
IGNvbnN0IHZvaWQgKmRhdGEpOwordm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV91cGRhdGVz
X3Byb2Nlc3MoRXZhc19PYmplY3QgKm8pOwordm9pZCBld2tfdGlsZWRfYmFja2luZ19zdG9yZV91
cGRhdGVzX2NsZWFyKEV2YXNfT2JqZWN0ICpvKTsKK3ZvaWQgZXdrX3RpbGVkX2JhY2tpbmdfc3Rv
cmVfY29udGVudHNfcmVzaXplKEV2YXNfT2JqZWN0ICpvLCBFdmFzX0Nvb3JkIHdpZHRoLCBFdmFz
X0Nvb3JkIGhlaWdodCk7Cit2b2lkIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX2Rpc2FibGVkX3Vw
ZGF0ZV9zZXQoRXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbCB2YWx1ZSk7Cit2b2lkIGV3a190aWxl
ZF9iYWNraW5nX3N0b3JlX2ZsdXNoKEV2YXNfT2JqZWN0ICpvKTsKK3ZvaWQgZXdrX3RpbGVkX2Jh
Y2tpbmdfc3RvcmVfZW5hYmxlX3NjYWxlX3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sIHZh
bHVlKTsKKworRXdrX1RpbGVfVW51c2VkX0NhY2hlICpld2tfdGlsZWRfYmFja2luZ19zdG9yZV90
aWxlX3VudXNlZF9jYWNoZV9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwordm9pZCBld2tfdGls
ZWRfYmFja2luZ19zdG9yZV90aWxlX3VudXNlZF9jYWNoZV9zZXQoRXZhc19PYmplY3QgKm8sIEV3
a19UaWxlX1VudXNlZF9DYWNoZSAqdHVjKTsKKworRWluYV9Cb29sIGV3a190aWxlZF9iYWNraW5n
X3N0b3JlX3ByZV9yZW5kZXJfcmVnaW9uKEV2YXNfT2JqZWN0ICpvLCBFdmFzX0Nvb3JkIHgsIEV2
YXNfQ29vcmQgeSwgRXZhc19Db29yZCB3LCBFdmFzX0Nvb3JkIGgsIGZsb2F0IHpvb20pOworRWlu
YV9Cb29sIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3ByZV9yZW5kZXJfcmVsYXRpdmVfcmFkaXVz
KEV2YXNfT2JqZWN0ICpvLCB1bnNpZ25lZCBpbnQgbiwgZmxvYXQgem9vbSk7CitFaW5hX0Jvb2wg
ZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfcHJlX3JlbmRlcl9zcGlyYWxfcXVldWUoRXZhc19PYmpl
Y3QgKm8sIEVpbmFfUmVjdGFuZ2xlKiB2aWV3X3JlY3QsIEVpbmFfUmVjdGFuZ2xlICpyZW5kZXJf
cmVjdCwgaW50IG1heF9tZW1vcnksIGZsb2F0IHpvb20pOwordm9pZCBld2tfdGlsZWRfYmFja2lu
Z19zdG9yZV9wcmVfcmVuZGVyX2NhbmNlbChFdmFzX09iamVjdCAqbyk7CisKK0VpbmFfQm9vbCBl
d2tfdGlsZWRfYmFja2luZ19zdG9yZV9kaXNhYmxlX3JlbmRlcihFdmFzX09iamVjdCAqbyk7CitF
aW5hX0Jvb2wgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfZW5hYmxlX3JlbmRlcihFdmFzX09iamVj
dCAqbyk7CiAjZW5kaWYgLy8gZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxlZF9tYXRyaXguY3BwIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a190aWxlZF9tYXRyaXguY3BwCmluZGV4IGFiMDYwNDIuLjVkOTkxYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbWF0cml4LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21hdHJpeC5jcHAKQEAgLTQ0LDcgKzQ0
LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0V3a19UaWxlX01hdHJpeF9FbnRyeSBFd2tfVGlsZV9NYXRy
aXhfRW50cnk7CiBzdHJ1Y3QgX0V3a19UaWxlX01hdHJpeCB7CiAgICAgRWluYV9NYXRyaXhzcGFy
c2UqIG1hdHJpeDsKICAgICBFaW5hX0lubGlzdCogbWF0cmljZXM7Ci0gICAgRXdrX1RpbGVfVW51
c2VkX0NhY2hlKiB0aWxpZVVudXNlZENhY2hlOworICAgIEV3a19UaWxlX1VudXNlZF9DYWNoZSog
dGlsZVVudXNlZENhY2hlOwogICAgIEV2YXNfQ29sb3JzcGFjZSBjc3BhY2U7CiAgICAgc3RydWN0
IHsKICAgICAgICAgdm9pZCAoKmNhbGxiYWNrKSh2b2lkKiBkYXRhLCBFd2tfVGlsZSogdGlsZSwg
Y29uc3QgRWluYV9SZWN0YW5nbGUqIHVwZGF0ZSk7CkBAIC05NCw3ICs5NCw3IEBAIHN0YXRpYyB2
b2lkIF9ld2tfdGlsZV9tYXRyaXhfY2VsbF9mcmVlKHZvaWQqIHVzZXJEYXRhLCB2b2lkKiBjZWxs
RGF0YSkKICAgICBpZiAoIXRpbGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGV3a190aWxlX3Vu
dXNlZF9jYWNoZV9mcmVlemUodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgZXdr
X3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwog
CiAgICAgaWYgKHRpbGUtPnVwZGF0ZXMgfHwgdGlsZS0+c3RhdHMuZnVsbF91cGRhdGUpCiAgICAg
ICAgIHRpbGVNYXRyaXgtPnVwZGF0ZXMgPSBlaW5hX2xpc3RfcmVtb3ZlKHRpbGVNYXRyaXgtPnVw
ZGF0ZXMsIHRpbGUpOwpAQCAtMTAyLDggKzEwMiw4IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZV9t
YXRyaXhfY2VsbF9mcmVlKHZvaWQqIHVzZXJEYXRhLCB2b2lkKiBjZWxsRGF0YSkKICAgICBpZiAo
dGlsZS0+dmlzaWJsZSkKICAgICAgICAgRVJSKCJmcmVlaW5nIGNlbGwgdGhhdCBpcyB2aXNpYmxl
LCBsZWFraW5nIHRpbGUgJXAiLCB0aWxlKTsKICAgICBlbHNlIHsKLSAgICAgICAgaWYgKCFld2tf
dGlsZV91bnVzZWRfY2FjaGVfdGlsZV9nZXQodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSwg
dGlsZSkpCi0gICAgICAgICAgICBFUlIoInRpbGUgJXAgd2FzIG5vdCBpbiBjYWNoZSAlcD8gbGVh
a2luZy4uLiIsIHRpbGUsIHRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpOworICAgICAgICBp
ZiAoIWV3a190aWxlX3VudXNlZF9jYWNoZV90aWxlX2dldCh0aWxlTWF0cml4LT50aWxlVW51c2Vk
Q2FjaGUsIHRpbGUpKQorICAgICAgICAgICAgRVJSKCJ0aWxlICVwIHdhcyBub3QgaW4gY2FjaGUg
JXA/IGxlYWtpbmcuLi4iLCB0aWxlLCB0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgIEV3a19UaWxlX01hdHJpeF9FbnRyeSogZW50cnk7CiAg
ICAgICAgICAgICBEQkcoInRpbGUgY2VsbCBkb2VzIG5vdCBleGlzdCBhbnltb3JlLCBmcmVlIGl0
ICVwIiwgdGlsZSk7CkBAIC0xMjEsNyArMTIxLDcgQEAgc3RhdGljIHZvaWQgX2V3a190aWxlX21h
dHJpeF9jZWxsX2ZyZWUodm9pZCogdXNlckRhdGEsIHZvaWQqIGNlbGxEYXRhKQogICAgICAgICB9
CiAgICAgfQogCi0gICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXcodGlsZU1hdHJpeC0+dGls
aWVVbnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXcodGlsZU1hdHJp
eC0+dGlsZVVudXNlZENhY2hlKTsKIH0KIAogLyogY2FsbGVkIHdoZW4gY2FjaGUgb2YgdW51c2Vk
IHRpbGUgaXMgZmx1c2hlZCAqLwpAQCAtMTM3LDcgKzEzNyw3IEBAIHN0YXRpYyB2b2lkIF9ld2tf
dGlsZV9tYXRyaXhfdGlsZV9mcmVlKHZvaWQqIGRhdGEsIEV3a19UaWxlKiB0aWxlKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFlaW5hX21hdHJpeHNwYXJzZV9jZWxsX2lkeF9n
ZXQoZW50cnktPm1hdHJpeCwgdGlsZS0+cm93LCB0aWxlLT5jb2wsICZjZWxsKSkgeworICAgIGlm
ICghZWluYV9tYXRyaXhzcGFyc2VfY2VsbF9pZHhfZ2V0KGVudHJ5LT5tYXRyaXgsIHRpbGUtPnJv
dywgdGlsZS0+Y29sdW1uLCAmY2VsbCkpIHsKIAogICAgICAgICBFUlIoInJlbW92aW5nIHRpbGUg
JXAgdGhhdCB3YXMgbm90IGluIHRoZSBtYXRyaXg/IExlYWtpbmcuLi4iLCB0aWxlKTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTg0LDcgKzE4NCw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdGlsZV9tYXRy
aXhfdGlsZV9mcmVlKHZvaWQqIGRhdGEsIEV3a19UaWxlKiB0aWxlKQogICogZXhpc3RpbmcgdGls
ZXMgYW5kIGdpdmUgdGhlbSBiYWNrLCBhbGxvd2luZyB0aGVtIHRvIGJlCiAgKiBmcmVlZC9yZXBs
YWNlZCBieSB0aGUgY2FjaGUuCiAgKgotICogQHBhcmFtIHR1YyBjYWNoZSBvZiB1bnVzZWQgdGls
ZXMgb3IgQGMgMCB0byBjcmVhdGUgb25lCisgKiBAcGFyYW0gdGlsZVVudXNlZENhY2hlIGNhY2hl
IG9mIHVudXNlZCB0aWxlcyBvciBAYyAwIHRvIGNyZWF0ZSBvbmUKICAqICAgICAgICBhdXRvbWF0
aWNhbGx5LgogICogQHBhcmFtIGNvbHVtbnMgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIG1hdHJp
eC4KICAqIEBwYXJhbSByb3dzIG51bWJlciBvZiByb3dzIGluIHRoZSBtYXRyaXguCkBAIC0yMTEs
MTAgKzIxMSwxMCBAQCBFd2tfVGlsZV9NYXRyaXgqIGV3a190aWxlX21hdHJpeF9uZXcoRXdrX1Rp
bGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUsIHVucwogICAgIGV3a190aWxlX21hdHJp
eF96b29tX2xldmVsX3NldCh0aWxlTWF0cml4LCB6b29tTGV2ZWwpOwogCiAgICAgaWYgKHRpbGVV
bnVzZWRDYWNoZSkKLSAgICAgICAgdGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSA9IGV3a190
aWxlX3VudXNlZF9jYWNoZV9yZWYodGlsZVVudXNlZENhY2hlKTsKKyAgICAgICAgdGlsZU1hdHJp
eC0+dGlsZVVudXNlZENhY2hlID0gZXdrX3RpbGVfdW51c2VkX2NhY2hlX3JlZih0aWxlVW51c2Vk
Q2FjaGUpOwogICAgIGVsc2UgewotICAgICAgICB0aWxlTWF0cml4LT50aWxpZVVudXNlZENhY2hl
ID0gZXdrX3RpbGVfdW51c2VkX2NhY2hlX25ldyhERUZBVUxUX0NBQ0hFX1NJWkUpOwotICAgICAg
ICBpZiAoIXRpbGVNYXRyaXgtPnRpbGllVW51c2VkQ2FjaGUpIHsKKyAgICAgICAgdGlsZU1hdHJp
eC0+dGlsZVVudXNlZENhY2hlID0gZXdrX3RpbGVfdW51c2VkX2NhY2hlX25ldyhERUZBVUxUX0NB
Q0hFX1NJWkUpOworICAgICAgICBpZiAoIXRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSkgewog
ICAgICAgICAgICAgRVJSKCJubyBjYWNoZSBvZiB1bnVzZWQgdGlsZSEiKTsKICAgICAgICAgICAg
IGVpbmFfbWF0cml4c3BhcnNlX2ZyZWUodGlsZU1hdHJpeC0+bWF0cml4KTsKICAgICAgICAgICAg
IGZyZWUodGlsZU1hdHJpeCk7CkBAIC0yOTgsNyArMjk4LDcgQEAgdm9pZCBld2tfdGlsZV9tYXRy
aXhfZnJlZShFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgpCiAKICAgICBFSU5BX1NBRkVUWV9P
Tl9OVUxMX1JFVFVSTih0aWxlTWF0cml4KTsKIAotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9m
cmVlemUodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgZXdrX3RpbGVfdW51c2Vk
X2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogICAgIGV3a190aWxl
X21hdHJpeF9pbnZhbGlkYXRlKHRpbGVNYXRyaXgpOwogICAgIGVudHJ5ID0gRUlOQV9JTkxJU1Rf
Q09OVEFJTkVSX0dFVCh0aWxlTWF0cml4LT5tYXRyaWNlcywgRXdrX1RpbGVfTWF0cml4X0VudHJ5
KTsKICAgICBlaW5hX21hdHJpeHNwYXJzZV9mcmVlKGVudHJ5LT5tYXRyaXgpOwpAQCAtMzA2LDgg
KzMwNiw4IEBAIHZvaWQgZXdrX3RpbGVfbWF0cml4X2ZyZWUoRXdrX1RpbGVfTWF0cml4KiB0aWxl
TWF0cml4KQogICAgIGZyZWUoZW50cnkpOwogICAgIHRpbGVNYXRyaXgtPm1hdHJpY2VzID0gMDsK
IAotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV90aGF3KHRpbGVNYXRyaXgtPnRpbGllVW51c2Vk
Q2FjaGUpOwotICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV91bnJlZih0aWxlTWF0cml4LT50aWxp
ZVVudXNlZENhY2hlKTsKKyAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGhhdyh0aWxlTWF0cml4
LT50aWxlVW51c2VkQ2FjaGUpOworICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV91bnJlZih0aWxl
TWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogCiAjaWZkZWYgREVCVUdfTUVNX0xFQUtTCiAgICAg
dGlsZXMgPSB0aWxlTWF0cml4LT5zdGF0cy50aWxlcy5hbGxvY2F0ZWQgLSB0aWxlTWF0cml4LT5z
dGF0cy50aWxlcy5mcmVlZDsKQEAgLTM1NSw3ICszNTUsNyBAQCB2b2lkIGV3a190aWxlX21hdHJp
eF9yZXNpemUoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4LCB1bnNpZ25lZCBsb25nIGNvbHMs
IHVucwogRXdrX1RpbGVfVW51c2VkX0NhY2hlKiBld2tfdGlsZV9tYXRyaXhfdW51c2VkX2NhY2hl
X2dldChjb25zdCBFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgpCiB7CiAgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKHRpbGVNYXRyaXgsIDApOwotICAgIHJldHVybiB0aWxlTWF0
cml4LT50aWxpZVVudXNlZENhY2hlOworICAgIHJldHVybiB0aWxlTWF0cml4LT50aWxlVW51c2Vk
Q2FjaGU7CiB9CiAKIC8qKgpAQCAtMzkwLDcgKzM5MCw3IEBAIEV3a19UaWxlKiBld2tfdGlsZV9t
YXRyaXhfdGlsZV9leGFjdF9nZXQoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4LCB1bnNpZ25l
ZCBsCiAKIGVuZDoKICAgICBpZiAoIXRpbGUtPnZpc2libGUpIHsKLSAgICAgICAgaWYgKCFld2tf
dGlsZV91bnVzZWRfY2FjaGVfdGlsZV9nZXQodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSwg
dGlsZSkpCisgICAgICAgIGlmICghZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfZ2V0KHRpbGVN
YXRyaXgtPnRpbGVVbnVzZWRDYWNoZSwgdGlsZSkpCiAgICAgICAgICAgICBXUk4oIkV3a19UaWxl
IHdhcyB1bnVzZWQgYnV0IG5vdCBpbiBjYWNoZT8gYnVnISIpOwogICAgIH0KIApAQCAtNDU5LDcg
KzQ1OSw3IEBAIEV3a19UaWxlKiBld2tfdGlsZV9tYXRyaXhfdGlsZV9uZXcoRXdrX1RpbGVfTWF0
cml4KiB0aWxlTWF0cml4LCBFdmFzKiBjYW52YXMsIHVuCiAgICAgICAgIHJldHVybiAwOwogICAg
IH0KIAotICAgIHRpbGUtPmNvbCA9IGNvbHVtbjsKKyAgICB0aWxlLT5jb2x1bW4gPSBjb2x1bW47
CiAgICAgdGlsZS0+cm93ID0gcm93OwogICAgIHRpbGUtPnggPSBjb2x1bW4gKiB0aWxlV2lkdGg7
CiAgICAgdGlsZS0+eSA9IHJvdyAqIHRpbGVIZWlnaHQ7CkBAIC00ODYsNyArNDg2LDcgQEAgRXdr
X1RpbGUqIGV3a190aWxlX21hdHJpeF90aWxlX25ldyhFd2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRy
aXgsIEV2YXMqIGNhbnZhcywgdW4KICAqIHVudXNlZCBjYWNoZS4KICAqCiAgKiBAcGFyYW0gdGls
ZU1hdHJpeCB0aGUgdGlsZSBtYXRyaXggdG8gcmV0dXJuIHRpbGUgdG8uCi0gKiBAcGFyYW0gdCB0
aGUgdGlsZSBpbnN0YW5jZSB0byByZXR1cm4sIG11c3QgQGIgbm90IGJlIEBjIDAuCisgKiBAcGFy
YW0gdGlsZSB0aGUgdGlsZSBpbnN0YW5jZSB0byByZXR1cm4sIG11c3QgQGIgbm90IGJlIEBjIDAu
CiAgKiBAcGFyYW0gbGFzdF91c2VkIHRpbWUgaW4gd2hpY2ggdGlsZS53aWR0aGFzIGxhc3QgdXNl
ZC4KICAqCiAgKiBAcmV0dXJuICN0cnVlIG9uIHN1Y2Nlc3Mgb3IgI2ZhbHNlIG9uIGZhaWx1cmUu
CkBAIC01MDAsNyArNTAwLDcgQEAgRWluYV9Cb29sIGV3a190aWxlX21hdHJpeF90aWxlX3B1dChF
d2tfVGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgsIEV3a19UaWxlKiB0aWxlLAogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAogICAgIHRpbGUtPnN0YXRzLmxhc3RfdXNlZCA9IGxhc3RVc2VkOwotICAgIHJl
dHVybiBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQodGlsZU1hdHJpeC0+dGlsaWVVbnVz
ZWRDYWNoZSwgdGlsZSwgX2V3a190aWxlX21hdHJpeF90aWxlX2ZyZWUsIHRpbGVNYXRyaXgpOwor
ICAgIHJldHVybiBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQodGlsZU1hdHJpeC0+dGls
ZVVudXNlZENhY2hlLCB0aWxlLCBfZXdrX3RpbGVfbWF0cml4X3RpbGVfZnJlZSwgdGlsZU1hdHJp
eCk7CiB9CiAKIEVpbmFfQm9vbCBld2tfdGlsZV9tYXRyaXhfdGlsZV91cGRhdGUoRXdrX1RpbGVf
TWF0cml4KiB0aWxlTWF0cml4LCB1bnNpZ25lZCBsb25nIGNvbCwgdW5zaWduZWQgbG9uZyByb3cs
IGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiB1cGRhdGUpCkBAIC03MDYsNyArNzA2LDcgQEAgdm9pZCBl
d2tfdGlsZV9tYXRyaXhfZGJnKGNvbnN0IEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCkKICAg
ICAgICAgICAgICAgICBwcmludGYoIlxuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBw
cmludGYoIiUzbHUsJTNsdSAlMTBwOiIsIGNvbHVtbiwgcm93LCB0aWxlKTsKLSAgICAgICAgICAg
IHByaW50ZigiIFslM2x1LCUzbHUgKyAlZHglZCBAICUwLjNmXSVjIiwgdGlsZS0+Y29sLCB0aWxl
LT5yb3csIHRpbGUtPndpZHRoLCB0aWxlLT5oZWlnaHQsIHRpbGUtPnpvb20sIHRpbGUtPnZpc2li
bGUgPyAnKicgOiAnICcpOworICAgICAgICAgICAgcHJpbnRmKCIgWyUzbHUsJTNsdSArICVkeCVk
IEAgJTAuM2ZdJWMiLCB0aWxlLT5jb2x1bW4sIHRpbGUtPnJvdywgdGlsZS0+d2lkdGgsIHRpbGUt
PmhlaWdodCwgdGlsZS0+em9vbSwgdGlsZS0+dmlzaWJsZSA/ICcqJyA6ICcgJyk7CiAgICAgICAg
ICAgICBwcmludGYoIlxuIik7CiAgICAgICAgIH0KICAgICB9CkBAIC03MTQsNyArNzE0LDcgQEAg
dm9pZCBld2tfdGlsZV9tYXRyaXhfZGJnKGNvbnN0IEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJp
eCkKICAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgIGVpbmFfaXRlcmF0b3JfZnJlZShpdGVyYXRv
cik7CiAKLSAgICBld2tfdGlsZV91bnVzZWRfY2FjaGVfZGJnKHRpbGVNYXRyaXgtPnRpbGllVW51
c2VkQ2FjaGUpOworICAgIGV3a190aWxlX3VudXNlZF9jYWNoZV9kYmcodGlsZU1hdHJpeC0+dGls
ZVVudXNlZENhY2hlKTsKIH0KIAogLyoqCkBAIC03MzAsNyArNzMwLDcgQEAgdm9pZCBld2tfdGls
ZV9tYXRyaXhfZnJlZXplKEV3a19UaWxlX01hdHJpeCogdGlsZU1hdHJpeCkKIHsKICAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTih0aWxlTWF0cml4KTsKICAgICBpZiAoIXRpbGVNYXRyaXgt
PmZyb3plbikKLSAgICAgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6ZSh0aWxlTWF0cml4
LT50aWxpZVVudXNlZENhY2hlKTsKKyAgICAgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2ZyZWV6
ZSh0aWxlTWF0cml4LT50aWxlVW51c2VkQ2FjaGUpOwogICAgIHRpbGVNYXRyaXgtPmZyb3plbisr
OwogfQogCkBAIC03NTAsNSArNzUwLDUgQEAgdm9pZCBld2tfdGlsZV9tYXRyaXhfdGhhdyhFd2tf
VGlsZV9NYXRyaXgqIHRpbGVNYXRyaXgpCiAKICAgICB0aWxlTWF0cml4LT5mcm96ZW4tLTsKICAg
ICBpZiAoIXRpbGVNYXRyaXgtPmZyb3plbikKLSAgICAgICAgZXdrX3RpbGVfdW51c2VkX2NhY2hl
X3RoYXcodGlsZU1hdHJpeC0+dGlsaWVVbnVzZWRDYWNoZSk7CisgICAgICAgIGV3a190aWxlX3Vu
dXNlZF9jYWNoZV90aGF3KHRpbGVNYXRyaXgtPnRpbGVVbnVzZWRDYWNoZSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21hdHJpeC5oIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a190aWxlZF9tYXRyaXguaAppbmRleCBmZTZiNjY4Li45OGI5NTkyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21hdHJpeC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbWF0cml4LmgKQEAgLTI2LDM2ICsyNiwz
NCBAQAogI2luY2x1ZGUgPEV2YXMuaD4KIAogLyogbWF0cml4IG9mIHRpbGVzICovCi1Fd2tfVGls
ZV9NYXRyaXgqIGV3a190aWxlX21hdHJpeF9uZXcoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxl
VW51c2VkQ2FjaGUsIHVuc2lnbmVkIGxvbmcgY29sdW1ucywgdW5zaWduZWQgbG9uZyByb3dzLCBm
bG9hdCB6b29tTGV2ZWwsIEV2YXNfQ29sb3JzcGFjZSBjb2xvclNwYWNlLCB2b2lkICgqcmVuZGVy
X2NhbGxiYWNrKSh2b2lkKiBkYXRhLCBFd2tfVGlsZSogdGlsZSwgY29uc3QgRWluYV9SZWN0YW5n
bGUqIHVwZGF0ZSksIGNvbnN0IHZvaWQqIHJlbmRlckRhdGEpOwotdm9pZCBld2tfdGlsZV9tYXRy
aXhfZnJlZShFd2tfVGlsZV9NYXRyaXgqIHRtKTsKK0V3a19UaWxlX01hdHJpeCAqZXdrX3RpbGVf
bWF0cml4X25ldyhFd2tfVGlsZV9VbnVzZWRfQ2FjaGUgKnR1YywgdW5zaWduZWQgbG9uZyBjb2xz
LCB1bnNpZ25lZCBsb25nIHJvd3MsIGZsb2F0IHpvb21fbGV2ZWwsIEV2YXNfQ29sb3JzcGFjZSBj
b2xvcl9zcGFjZSwgdm9pZCAoKnJlbmRlcl9jYWxsYmFjaykodm9pZCAqZGF0YSwgRXdrX1RpbGUg
KnQsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlICp1cGRhdGUpLCBjb25zdCB2b2lkICpyZW5kZXJfZGF0
YSk7Cit2b2lkIGV3a190aWxlX21hdHJpeF9mcmVlKEV3a19UaWxlX01hdHJpeCAqdG0pOwogCi12
b2lkIGV3a190aWxlX21hdHJpeF9yZXNpemUoRXdrX1RpbGVfTWF0cml4KiB0bSwgdW5zaWduZWQg
bG9uZyBjb2xzLCB1bnNpZ25lZCBsb25nIHJvd3MpOwotdm9pZCBld2tfdGlsZV9tYXRyaXhfem9v
bV9sZXZlbF9zZXQoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4LCBmbG9hdCB6b29tKTsKLXZv
aWQgZXdrX3RpbGVfbWF0cml4X2ludmFsaWRhdGUoRXdrX1RpbGVfTWF0cml4KiB0aWxlTWF0cml4
KTsKK3ZvaWQgZXdrX3RpbGVfbWF0cml4X3Jlc2l6ZShFd2tfVGlsZV9NYXRyaXggKnRtLCB1bnNp
Z25lZCBsb25nIGNvbHMsIHVuc2lnbmVkIGxvbmcgcm93cyk7Cit2b2lkIGV3a190aWxlX21hdHJp
eF96b29tX2xldmVsX3NldChFd2tfVGlsZV9NYXRyaXggKnRtLCBmbG9hdCB6b29tKTsKK3ZvaWQg
ZXdrX3RpbGVfbWF0cml4X2ludmFsaWRhdGUoRXdrX1RpbGVfTWF0cml4ICp0bSk7CiAKLUV3a19U
aWxlX1VudXNlZF9DYWNoZSogZXdrX3RpbGVfbWF0cml4X3VudXNlZF9jYWNoZV9nZXQoY29uc3Qg
RXdrX1RpbGVfTWF0cml4KiB0bSk7CitFd2tfVGlsZV9VbnVzZWRfQ2FjaGUgKmV3a190aWxlX21h
dHJpeF91bnVzZWRfY2FjaGVfZ2V0KGNvbnN0IEV3a19UaWxlX01hdHJpeCAqdG0pOwogCi1Fd2tf
VGlsZSogZXdrX3RpbGVfbWF0cml4X3RpbGVfZXhhY3RfZ2V0KEV3a19UaWxlX01hdHJpeCogdG0s
IHVuc2lnbmVkIGxvbmcgY29sLCB1bnNpZ25lZCBsb25nIHJvdywgZmxvYXQgem9vbSk7Ci1FaW5h
X0Jvb2wgZXdrX3RpbGVfbWF0cml4X3RpbGVfZXhhY3RfZXhpc3RzKEV3a19UaWxlX01hdHJpeCog
dG0sIHVuc2lnbmVkIGxvbmcgY29sLCB1bnNpZ25lZCBsb25nIHJvdywgZmxvYXQgem9vbSk7Ci1F
d2tfVGlsZSogZXdrX3RpbGVfbWF0cml4X3RpbGVfbmVhcmVzdF9nZXQoRXdrX1RpbGVfTWF0cml4
KiB0bSwgdW5zaWduZWQgbG9uZyBjb2wsIHVuc2lnbmVkIGxvbmcgcm93LCBmbG9hdCB6b29tKTsK
LUV3a19UaWxlKiBld2tfdGlsZV9tYXRyaXhfdGlsZV9uZXcoRXdrX1RpbGVfTWF0cml4KiB0bSwg
RXZhcyogZXZhcywgdW5zaWduZWQgbG9uZyBjb2wsIHVuc2lnbmVkIGxvbmcgcm93LCBmbG9hdCB6
b29tKTsKLUVpbmFfQm9vbCBld2tfdGlsZV9tYXRyaXhfdGlsZV9wdXQoRXdrX1RpbGVfTWF0cml4
KiB0bSwgRXdrX1RpbGUqIHQsIGRvdWJsZSBsYXN0X3VzZWQpOworRXdrX1RpbGUgKmV3a190aWxl
X21hdHJpeF90aWxlX2V4YWN0X2dldChFd2tfVGlsZV9NYXRyaXggKnRtLCB1bnNpZ25lZCBsb25n
IGNvbCwgdW5zaWduZWQgbG9uZyByb3csIGZsb2F0IHpvb20pOworRWluYV9Cb29sIGV3a190aWxl
X21hdHJpeF90aWxlX2V4YWN0X2V4aXN0cyhFd2tfVGlsZV9NYXRyaXggKnRtLCB1bnNpZ25lZCBs
b25nIGNvbCwgdW5zaWduZWQgbG9uZyByb3csIGZsb2F0IHpvb20pOworRXdrX1RpbGUgKmV3a190
aWxlX21hdHJpeF90aWxlX25lYXJlc3RfZ2V0KEV3a19UaWxlX01hdHJpeCAqdG0sIHVuc2lnbmVk
IGxvbmcgY29sLCB1bnNpZ25lZCBsb25nIHJvdywgZmxvYXQgem9vbSk7CitFd2tfVGlsZSAqZXdr
X3RpbGVfbWF0cml4X3RpbGVfbmV3KEV3a19UaWxlX01hdHJpeCAqdG0sIEV2YXMgKmV2YXMsIHVu
c2lnbmVkIGxvbmcgY29sLCB1bnNpZ25lZCBsb25nIHJvdywgZmxvYXQgem9vbSk7CitFaW5hX0Jv
b2wgZXdrX3RpbGVfbWF0cml4X3RpbGVfcHV0KEV3a19UaWxlX01hdHJpeCAqdG0sIEV3a19UaWxl
ICp0LCBkb3VibGUgbGFzdF91c2VkKTsKIAotRWluYV9Cb29sIGV3a190aWxlX21hdHJpeF90aWxl
X3VwZGF0ZShFd2tfVGlsZV9NYXRyaXgqIHRtLCB1bnNpZ25lZCBsb25nIGNvbCwgdW5zaWduZWQg
bG9uZyByb3csIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiB1cGRhdGUpOwotRWluYV9Cb29sIGV3a190
aWxlX21hdHJpeF90aWxlX3VwZGF0ZV9mdWxsKEV3a19UaWxlX01hdHJpeCogdG0sIHVuc2lnbmVk
IGxvbmcgY29sLCB1bnNpZ25lZCBsb25nIHJvdyk7Ci12b2lkIGV3a190aWxlX21hdHJpeF90aWxl
X3VwZGF0ZXNfY2xlYXIoRXdrX1RpbGVfTWF0cml4KiB0bSwgRXdrX1RpbGUqIHQpOworRWluYV9C
b29sIGV3a190aWxlX21hdHJpeF90aWxlX3VwZGF0ZShFd2tfVGlsZV9NYXRyaXggKnRtLCB1bnNp
Z25lZCBsb25nIGNvbCwgdW5zaWduZWQgbG9uZyByb3csIGNvbnN0IEVpbmFfUmVjdGFuZ2xlICp1
cGRhdGUpOworRWluYV9Cb29sIGV3a190aWxlX21hdHJpeF90aWxlX3VwZGF0ZV9mdWxsKEV3a19U
aWxlX01hdHJpeCAqdG0sIHVuc2lnbmVkIGxvbmcgY29sLCB1bnNpZ25lZCBsb25nIHJvdyk7Cit2
b2lkIGV3a190aWxlX21hdHJpeF90aWxlX3VwZGF0ZXNfY2xlYXIoRXdrX1RpbGVfTWF0cml4ICp0
bSwgRXdrX1RpbGUgKnQpOwogCi1FaW5hX0Jvb2wgZXdrX3RpbGVfbWF0cml4X3VwZGF0ZShFd2tf
VGlsZV9NYXRyaXgqIHRtLCBjb25zdCBFaW5hX1JlY3RhbmdsZSogdXBkYXRlLCBmbG9hdCB6b29t
KTsKLXZvaWQgZXdrX3RpbGVfbWF0cml4X3VwZGF0ZXNfcHJvY2VzcyhFd2tfVGlsZV9NYXRyaXgq
IHRtKTsKLXZvaWQgZXdrX3RpbGVfbWF0cml4X3VwZGF0ZXNfY2xlYXIoRXdrX1RpbGVfTWF0cml4
KiB0bSk7Ci12b2lkIGV3a190aWxlX21hdHJpeF9mcmVlemUoRXdrX1RpbGVfTWF0cml4KiB0bSk7
Ci12b2lkIGV3a190aWxlX21hdHJpeF90aGF3KEV3a19UaWxlX01hdHJpeCogdG0pOworRWluYV9C
b29sIGV3a190aWxlX21hdHJpeF91cGRhdGUoRXdrX1RpbGVfTWF0cml4ICp0bSwgY29uc3QgRWlu
YV9SZWN0YW5nbGUgKnVwZGF0ZSwgZmxvYXQgem9vbSk7Cit2b2lkIGV3a190aWxlX21hdHJpeF91
cGRhdGVzX3Byb2Nlc3MoRXdrX1RpbGVfTWF0cml4ICp0bSk7Cit2b2lkIGV3a190aWxlX21hdHJp
eF91cGRhdGVzX2NsZWFyKEV3a19UaWxlX01hdHJpeCAqdG0pOwordm9pZCBld2tfdGlsZV9tYXRy
aXhfZnJlZXplKEV3a19UaWxlX01hdHJpeCAqdG0pOwordm9pZCBld2tfdGlsZV9tYXRyaXhfdGhh
dyhFd2tfVGlsZV9NYXRyaXggKnRtKTsKIAogLy8gcmVtb3ZlIG1lIQotdm9pZCBld2tfdGlsZV9t
YXRyaXhfZGJnKGNvbnN0IEV3a19UaWxlX01hdHJpeCogdG0pOwotdm9pZCBld2tfdGlsZV91bnVz
ZWRfY2FjaGVfZGJnKGNvbnN0IEV3a19UaWxlX1VudXNlZF9DYWNoZSogdHVjKTsKK3ZvaWQgZXdr
X3RpbGVfbWF0cml4X2RiZyhjb25zdCBFd2tfVGlsZV9NYXRyaXggKnRtKTsKK3ZvaWQgZXdrX3Rp
bGVfdW51c2VkX2NhY2hlX2RiZyhjb25zdCBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUgKnR1Yyk7CiB2
b2lkIGV3a190aWxlX2FjY291bnRpbmdfZGJnKCk7CiAKLQogI2VuZGlmIC8vIGV3a190aWxlZF9t
YXRyaXhfaAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3RpbGVkX21v
ZGVsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbW9kZWwuY3BwCmluZGV4
IDg0MDQ4Y2IuLjg3ZmE4M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dGlsZWRfbW9kZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbW9k
ZWwuY3BwCkBAIC0zNDUsMTYgKzM0NSwxNiBAQCB2b2lkIGV3a190aWxlX3VwZGF0ZXNfcHJvY2Vz
cyhFd2tfVGlsZSogdGlsZSwgdm9pZCAoKmNhbGxiYWNrKSh2b2lkKiBkYXRhLCBFd2tfVAogICAg
ICAgICByZWN0LmggPSB0aWxlLT5oZWlnaHQ7CiAjaWZkZWYgVElMRV9TVEFUU19BQ0NPVU5UX1JF
TkRFUl9USU1FCiAgICAgICAgIHN0cnVjdCB0aW1ldmFsIHRpbWV2OwotICAgICAgICBkb3VibGUg
cmVuZGVyX3N0YXJ0OworICAgICAgICBkb3VibGUgcmVuZGVyU3RhcnRUaW1lOwogICAgICAgICBn
ZXR0aW1lb2ZkYXkoJnRpbWV2LCAwKTsKLSAgICAgICAgcmVuZGVyX3N0YXJ0aWxlID0gKGRvdWJs
ZSl0aW1ldi50dl9zZWMgKworICAgICAgICByZW5kZXJTdGFydFRpbWUgPSAoZG91YmxlKXRpbWV2
LnR2X3NlYyArCiAgICAgICAgICAgICAgICAgICAgICAgICgoKGRvdWJsZSl0aW1ldi50dl91c2Vj
KSAvIDEwMDAwMDApOwogI2VuZGlmCiAgICAgICAgIGNhbGxiYWNrKCh2b2lkKilkYXRhLCB0aWxl
LCAmcmVjdCk7CiAjaWZkZWYgVElMRV9TVEFUU19BQ0NPVU5UX1JFTkRFUl9USU1FCiAgICAgICAg
IGdldHRpbWVvZmRheSgmdGltZXYsIDApOwogICAgICAgICB0aWxlLT5zdGF0cy5yZW5kZXJfdGlt
ZSA9IChkb3VibGUpdGltZXYudHZfc2VjICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoKChkb3VibGUpdGltZXYudHZfdXNlYykgLyAxMDAwMDAwKSAtIHJlbmRlcl9zdGFydDsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChkb3VibGUpdGltZXYudHZfdXNlYykgLyAx
MDAwMDAwKSAtIHJlbmRlclN0YXJ0VGltZTsKICNlbmRpZgogICAgIH0gZWxzZSBpZiAodGlsZS0+
dXBkYXRlcykgewogICAgICAgICBFaW5hX0l0ZXJhdG9yKiBpdHIgPSBlaW5hX3RpbGVyX2l0ZXJh
dG9yX25ldyh0aWxlLT51cGRhdGVzKTsKQEAgLTUyMCw3ICs1MjAsNyBAQCB2b2lkIGV3a190aWxl
X3VudXNlZF9jYWNoZV9jbGVhcihFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNo
ZSkKIH0KIAogLyoqCi0gKiBoZWlnaHRvbGQgcmVmZXJlbmNlIHRvIGNhY2hlLgorICogSG9sZCBy
ZWZlcmVuY2UgdG8gY2FjaGUuCiAgKgogICogQHJldHVybiBzYW1lIHBvaW50ZXIgYXMgdGFrZW4u
CiAgKgpAQCAtNjMwLDcgKzYzMCw3IEBAIHZvaWQgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2F1dG9f
Zmx1c2goRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUpCiAgKiBGcmVlemUg
Y2FjaGUgdG8gbm90IGRvIG1haW50ZW5hbmNlIHRhc2tzLgogICoKICAqIE1haW50ZW5hbmNlIHRh
c2tzIG9wdGltaXplIGNhY2hlIHVzYWdlLCBidXQgbWF5YmUgd2Uga25vdyB3ZSBzaG91bGQKLSAq
IGhlaWdodG9sZCBvbiB0aGVtIHVudGlsIHdlIGRvIHRoZSBsYXN0IG9wZXJhdGlvbiwgaW4gdGhp
cyBjYXNlIHdlIGZyZWV6ZQorICogaG9sZCBvbiB0aGVtIHVudGlsIHdlIGRvIHRoZSBsYXN0IG9w
ZXJhdGlvbiwgaW4gdGhpcyBjYXNlIHdlIGZyZWV6ZQogICogd2hpbGUgb3BlcmF0aW5nIGFuZCB0
aGVuIHRoYXcgd2hlbiB3ZSdyZSBkb25lLgogICoKICAqIEBzZWUgZXdrX3RpbGVfdW51c2VkX2Nh
Y2hlX3RoYXcoKQpAQCAtNzA3LDggKzcwNyw4IEBAIEVpbmFfQm9vbCBld2tfdGlsZV91bnVzZWRf
Y2FjaGVfdGlsZV9nZXQoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUsCiAg
KiBiZWNhdXNlIHVzdWFsbHkgd2Ugd2FudCBhIGxhenkgb3BlcmF0aW9uIGZvciBiZXR0ZXIgcGVy
Zm9ybWFuY2UuCiAgKgogICogQHBhcmFtIHRpbGVVbnVzZWRDYWNoZSBjYWNoZSBvZiB1bnVzZWQg
dGlsZXMKLSAqIEBwYXJhbSB0IHRpbGUgdG8gYmUgYWRkZWQgdG8gY2FjaGUuCi0gKiBAcGFyYW0g
dGlsZV9mcmVlX2NiIGZ1bmN0aW9uIHVzZWQgdG8gZnJlZSB0aWxlcy4KKyAqIEBwYXJhbSB0aWxl
IHRpbGUgdG8gYmUgYWRkZWQgdG8gY2FjaGUuCisgKiBAcGFyYW0gdGlsZUZyZWVDYWxsYmFjayBm
dW5jdGlvbiB1c2VkIHRvIGZyZWUgdGlsZXMuCiAgKiBAcGFyYW0gZGF0YSBjb250ZXh0IHRvIGdp
dmUgYmFjayB0byBAYSB0aWxlX2ZyZWVfY2IgYXMgZmlyc3QgYXJndW1lbnQuCiAgKgogICogQHJl
dHVybiAjdHJ1ZSBvbiBzdWNjZXNzLCAjZmFsc2Ugb3RoZXJ3aXNlLiBJZiBAYyB0aWxlLT52aXNp
YmxlCkBAIC03MTYsNyArNzE2LDcgQEAgRWluYV9Cb29sIGV3a190aWxlX3VudXNlZF9jYWNoZV90
aWxlX2dldChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSwKICAqCiAgKiBA
c2VlIGV3a190aWxlX3VudXNlZF9jYWNoZV9hdXRvX2ZsdXNoKCkKICAqLwotRWluYV9Cb29sIGV3
a190aWxlX3VudXNlZF9jYWNoZV90aWxlX3B1dChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVV
bnVzZWRDYWNoZSwgRXdrX1RpbGUqIHRpbGUsIHZvaWQgKCogdGlsZUZyZWVDYikodm9pZCogZGF0
YSwgRXdrX1RpbGUqIHRpbGUpLCBjb25zdCB2b2lkKiBkYXRhKQorRWluYV9Cb29sIGV3a190aWxl
X3VudXNlZF9jYWNoZV90aWxlX3B1dChFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRD
YWNoZSwgRXdrX1RpbGUqIHRpbGUsIHZvaWQgKCogdGlsZUZyZWVDYWxsYmFjaykodm9pZCogZGF0
YSwgRXdrX1RpbGUqIHRpbGUpLCBjb25zdCB2b2lkKiBkYXRhKQogewogICAgIEV3a19UaWxlX1Vu
dXNlZF9DYWNoZV9FbnRyeSogdW51c2VkQ2FjaGVFbnRyeTsKIApAQCAtNzM3LDcgKzczNyw3IEBA
IEVpbmFfQm9vbCBld2tfdGlsZV91bnVzZWRfY2FjaGVfdGlsZV9wdXQoRXdrX1RpbGVfVW51c2Vk
X0NhY2hlKiB0aWxlVW51c2VkQ2FjaGUsCiAKICAgICB1bnVzZWRDYWNoZUVudHJ5LT50aWxlID0g
dGlsZTsKICAgICB1bnVzZWRDYWNoZUVudHJ5LT53ZWlnaHQgPSAwOyAvKiBjYWxjdWxhdGVkIGp1
c3QgYmVmb3JlIHNvcnQgKi8KLSAgICB1bnVzZWRDYWNoZUVudHJ5LT50aWxlX2ZyZWUuY2FsbGJh
Y2sgPSB0aWxlRnJlZUNiOworICAgIHVudXNlZENhY2hlRW50cnktPnRpbGVfZnJlZS5jYWxsYmFj
ayA9IHRpbGVGcmVlQ2FsbGJhY2s7CiAgICAgdW51c2VkQ2FjaGVFbnRyeS0+dGlsZV9mcmVlLmRh
dGEgPSAodm9pZCopZGF0YTsKIAogICAgIHRpbGVVbnVzZWRDYWNoZS0+ZW50cmllcy5jb3VudCsr
OwpAQCAtNzU4LDcgKzc1OCw3IEBAIHZvaWQgZXdrX3RpbGVfdW51c2VkX2NhY2hlX2RiZyhjb25z
dCBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHRpbGVVbnVzZWRDYWNoZSkKICAgICBFSU5BX0xJU1Rf
Rk9SRUFDSCh0aWxlVW51c2VkQ2FjaGUtPmVudHJpZXMubGlzdCwgbGlzdCwgaXRlbSkgewogICAg
ICAgICBjb25zdCBFd2tfVGlsZSogdGlsZSA9IHN0YXRpY19jYXN0PEV3a19UaWxlX1VudXNlZF9D
YWNoZV9FbnRyeSo+KGl0ZW0pLT50aWxlOwogICAgICAgICBwcmludGYoIiBbJTNsdSwlM2x1ICsg
JWR4JWQgQCAlMC4zZl0lYyIsCi0gICAgICAgICAgICAgICB0aWxlLT5jb2wsIHRpbGUtPnJvdywg
dGlsZS0+d2lkdGgsIHRpbGUtPmhlaWdodCwgdGlsZS0+em9vbSwKKyAgICAgICAgICAgICAgIHRp
bGUtPmNvbHVtbiwgdGlsZS0+cm93LCB0aWxlLT53aWR0aCwgdGlsZS0+aGVpZ2h0LCB0aWxlLT56
b29tLAogICAgICAgICAgICAgICAgdGlsZS0+dmlzaWJsZSA/ICcqJyA6ICcgJyk7CiAKICAgICAg
ICAgaWYgKCEoY291bnQgJSA0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdGlsZWRfbW9kZWwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdGlsZWRfbW9kZWwu
aAppbmRleCA1ODcxNmM1Li5kYWFmMjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3RpbGVkX21vZGVsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a190aWxl
ZF9tb2RlbC5oCkBAIC0yNiwzMiArMjYsMzEgQEAKICNpbmNsdWRlIDxFdmFzLmg+CiAKIC8qIG1v
ZGVsICovCi1Fd2tfVGlsZSogZXdrX3RpbGVfbmV3KEV2YXMqIGV2YXMsIEV2YXNfQ29vcmQgdywg
RXZhc19Db29yZCBoLCBmbG9hdCB6b29tLCBFdmFzX0NvbG9yc3BhY2UgY3NwYWNlKTsKLXZvaWQg
ZXdrX3RpbGVfZnJlZShFd2tfVGlsZSogdCk7Ci12b2lkIGV3a190aWxlX3VudXNlZF9jYWNoZV9j
bGVhcihFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIHR1Yyk7Ci12b2lkIGV3a190aWxlX3Nob3coRXdr
X1RpbGUqIHQpOwotdm9pZCBld2tfdGlsZV9oaWRlKEV3a19UaWxlKiB0KTsKLXNpemVfdCBld2tf
dGlsZV9tZW1vcnlfc2l6ZV9nZXQoY29uc3QgRXdrX1RpbGUqIHQpOwotRWluYV9Cb29sIGV3a190
aWxlX3Zpc2libGVfZ2V0KEV3a19UaWxlKiB0KTsKLXZvaWQgZXdrX3RpbGVfdXBkYXRlX2Z1bGwo
RXdrX1RpbGUqIHQpOwotdm9pZCBld2tfdGlsZV91cGRhdGVfYXJlYShFd2tfVGlsZSogdCwgY29u
c3QgRWluYV9SZWN0YW5nbGUqIHIpOwotdm9pZCBld2tfdGlsZV91cGRhdGVzX3Byb2Nlc3MoRXdr
X1RpbGUqIHQsIHZvaWQgKCpjYikodm9pZCogZGF0YSwgRXdrX1RpbGUqIHQsIGNvbnN0IEVpbmFf
UmVjdGFuZ2xlKiB1cGRhdGUpLCBjb25zdCB2b2lkKiBkYXRhKTsKLXZvaWQgZXdrX3RpbGVfdXBk
YXRlc19jbGVhcihFd2tfVGlsZSogdCk7CitFd2tfVGlsZSAqZXdrX3RpbGVfbmV3KEV2YXMgKmV2
YXMsIEV2YXNfQ29vcmQgdywgRXZhc19Db29yZCBoLCBmbG9hdCB6b29tLCBFdmFzX0NvbG9yc3Bh
Y2UgY3NwYWNlKTsKK3ZvaWQgZXdrX3RpbGVfZnJlZShFd2tfVGlsZSAqdCk7Cit2b2lkIGV3a190
aWxlX3VudXNlZF9jYWNoZV9jbGVhcihFd2tfVGlsZV9VbnVzZWRfQ2FjaGUgKnR1Yyk7Cit2b2lk
IGV3a190aWxlX3Nob3coRXdrX1RpbGUgKnQpOwordm9pZCBld2tfdGlsZV9oaWRlKEV3a19UaWxl
ICp0KTsKK3NpemVfdCBld2tfdGlsZV9tZW1vcnlfc2l6ZV9nZXQoY29uc3QgRXdrX1RpbGUgKnQp
OworRWluYV9Cb29sIGV3a190aWxlX3Zpc2libGVfZ2V0KEV3a19UaWxlICp0KTsKK3ZvaWQgZXdr
X3RpbGVfdXBkYXRlX2Z1bGwoRXdrX1RpbGUgKnQpOwordm9pZCBld2tfdGlsZV91cGRhdGVfYXJl
YShFd2tfVGlsZSAqdCwgY29uc3QgRWluYV9SZWN0YW5nbGUgKnIpOwordm9pZCBld2tfdGlsZV91
cGRhdGVzX3Byb2Nlc3MoRXdrX1RpbGUgKnQsIHZvaWQgKCpjYikodm9pZCAqZGF0YSwgRXdrX1Rp
bGUgKnQsIGNvbnN0IEVpbmFfUmVjdGFuZ2xlICp1cGRhdGUpLCBjb25zdCB2b2lkICpkYXRhKTsK
K3ZvaWQgZXdrX3RpbGVfdXBkYXRlc19jbGVhcihFd2tfVGlsZSAqdCk7CiAKIC8qIGNhY2hlIG9m
IHVudXNlZCB0aWxlcyAqLwotRXdrX1RpbGVfVW51c2VkX0NhY2hlKiBld2tfdGlsZV91bnVzZWRf
Y2FjaGVfbmV3KHNpemVfdCBtYXgpOwotdm9pZCBld2tfdGlsZV91bnVzZWRfY2FjaGVfbG9ja19h
cmVhKEV3a19UaWxlX1VudXNlZF9DYWNoZSogdHVjLCBFdmFzX0Nvb3JkIHgsIEV2YXNfQ29vcmQg
eSwgRXZhc19Db29yZCB3LCBFdmFzX0Nvb3JkIGgsIGZsb2F0IHpvb20pOwotdm9pZCBld2tfdGls
ZV91bnVzZWRfY2FjaGVfdW5sb2NrX2FyZWEoRXdrX1RpbGVfVW51c2VkX0NhY2hlKiB0dWMpOwot
RXdrX1RpbGVfVW51c2VkX0NhY2hlKiBld2tfdGlsZV91bnVzZWRfY2FjaGVfcmVmKEV3a19UaWxl
X1VudXNlZF9DYWNoZSogdHVjKTsKLXZvaWQgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3VucmVmKEV3
a19UaWxlX1VudXNlZF9DYWNoZSogdHVjKTsKK0V3a19UaWxlX1VudXNlZF9DYWNoZSAqZXdrX3Rp
bGVfdW51c2VkX2NhY2hlX25ldyhzaXplX3QgbWF4KTsKK3ZvaWQgZXdrX3RpbGVfdW51c2VkX2Nh
Y2hlX2xvY2tfYXJlYShFd2tfVGlsZV9VbnVzZWRfQ2FjaGUgKnR1YywgRXZhc19Db29yZCB4LCBF
dmFzX0Nvb3JkIHksIEV2YXNfQ29vcmQgdywgRXZhc19Db29yZCBoLCBmbG9hdCB6b29tKTsKK3Zv
aWQgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3VubG9ja19hcmVhKEV3a19UaWxlX1VudXNlZF9DYWNo
ZSAqdHVjKTsKK0V3a19UaWxlX1VudXNlZF9DYWNoZSAqZXdrX3RpbGVfdW51c2VkX2NhY2hlX3Jl
ZihFd2tfVGlsZV9VbnVzZWRfQ2FjaGUgKnR1Yyk7Cit2b2lkIGV3a190aWxlX3VudXNlZF9jYWNo
ZV91bnJlZihFd2tfVGlsZV9VbnVzZWRfQ2FjaGUgKnR1Yyk7CiAKLXZvaWQgZXdrX3RpbGVfdW51
c2VkX2NhY2hlX2RpcnR5KEV3a19UaWxlX1VudXNlZF9DYWNoZSogdHVjKTsKK3ZvaWQgZXdrX3Rp
bGVfdW51c2VkX2NhY2hlX2RpcnR5KEV3a19UaWxlX1VudXNlZF9DYWNoZSAqdHVjKTsKIAotdm9p
ZCBld2tfdGlsZV91bnVzZWRfY2FjaGVfZnJlZXplKEV3a19UaWxlX1VudXNlZF9DYWNoZSogdHVj
KTsKLXZvaWQgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXcoRXdrX1RpbGVfVW51c2VkX0NhY2hl
KiB0dWMpOwordm9pZCBld2tfdGlsZV91bnVzZWRfY2FjaGVfZnJlZXplKEV3a19UaWxlX1VudXNl
ZF9DYWNoZSAqdHVjKTsKK3ZvaWQgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RoYXcoRXdrX1RpbGVf
VW51c2VkX0NhY2hlICp0dWMpOwogCi1FaW5hX0Jvb2wgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3Rp
bGVfZ2V0KEV3a19UaWxlX1VudXNlZF9DYWNoZSogdHVjLCBFd2tfVGlsZSogdCk7Ci1FaW5hX0Jv
b2wgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfcHV0KEV3a19UaWxlX1VudXNlZF9DYWNoZSog
dHVjLCBFd2tfVGlsZSogdCwgdm9pZCAoKiB0aWxlX2ZyZWVfY2IpKHZvaWQqIGRhdGEsIEV3a19U
aWxlKiB0KSwgY29uc3Qgdm9pZCogZGF0YSk7CitFaW5hX0Jvb2wgZXdrX3RpbGVfdW51c2VkX2Nh
Y2hlX3RpbGVfZ2V0KEV3a19UaWxlX1VudXNlZF9DYWNoZSAqdHVjLCBFd2tfVGlsZSAqdCk7CitF
aW5hX0Jvb2wgZXdrX3RpbGVfdW51c2VkX2NhY2hlX3RpbGVfcHV0KEV3a19UaWxlX1VudXNlZF9D
YWNoZSAqdHVjLCBFd2tfVGlsZSAqdCwgdm9pZCAoKiB0aWxlX2ZyZWVfY2IpKHZvaWQgKmRhdGEs
IEV3a19UaWxlICp0KSwgY29uc3Qgdm9pZCAqZGF0YSk7CiAKICNlbmRpZiAvLyBld2tfdGlsZWRf
bW9kZWxfaAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3V0aWwuaCBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdXRpbC5oCmluZGV4IDIzNzE4ODguLjNiMzJkOWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdXRpbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfdXRpbC5oCkBAIC0yOSw2ICsyOSw2IEBACiAjaW5jbHVkZSA8
RXZhcy5oPgogI2luY2x1ZGUgPGNhaXJvLmg+CiAKLUV2YXNfT2JqZWN0KiBld2tfdXRpbF9pbWFn
ZV9mcm9tX2NhaXJvX3N1cmZhY2VfYWRkKEV2YXMqIGNhbnZhcywgY2Fpcm9fc3VyZmFjZV90KiBz
dXJmYWNlKTsKK0V2YXNfT2JqZWN0ICpld2tfdXRpbF9pbWFnZV9mcm9tX2NhaXJvX3N1cmZhY2Vf
YWRkKEV2YXMgKmNhbnZhcywgY2Fpcm9fc3VyZmFjZV90ICpzdXJmYWNlKTsKIAogI2VuZGlmIC8v
IGV3a191dGlsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDg1M2IzNDIuLjNk
OWFmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMjE2LDU0ICsyMTYsNTQg
QEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogI2lmbmRlZiBFV0tfVFlQRV9DSEVD
SwogI2RlZmluZSBFV0tfVklFV19UWVBFX0NIRUNLKGV3a1ZpZXcsIC4uLikgZG8geyB9IHdoaWxl
ICgwKQogI2Vsc2UKLSNkZWZpbmUgRVdLX1ZJRVdfVFlQRV9DSEVDSyhld2tWaWV3LCAuLi4pICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBkbyB7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICAgICAgY29uc3QgY2hhciogX3RtcF9vdHlwZSA9IGV2YXNfb2JqZWN0X3R5cGVfZ2V0KGV3a1Zp
ZXcpOyAgICAgICAgICAgICAgIFwKLSAgICAgICAgY29uc3QgRXZhc19TbWFydCogX3RtcF9zID0g
ZXZhc19vYmplY3Rfc21hcnRfc21hcnRfZ2V0KGV3a1ZpZXcpOyAgICAgIFwKLSAgICAgICAgaWYg
KEVJTkFfVU5MSUtFTFkoIV90bXBfcykpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICAgICAgICAgIEVJTkFfTE9HX0NSSVQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAoIiVwICglcykgaXMgbm90
IGEgc21hcnQgb2JqZWN0ISIsIGV3a1ZpZXcsICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAg
ICAgICAgICBfdG1wX290eXBlID8gX3RtcF9vdHlwZSA6ICIobnVsbCkiKTsgICAgICAgICAgICAg
ICAgICAgXAotICAgICAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSBFV0tf
VklFV19UWVBFX0NIRUNLKGV3a1ZpZXcsIC4uLikgXAorICAgIGRvIHsgXAorICAgICAgICBjb25z
dCBjaGFyKiBfdG1wX290eXBlID0gZXZhc19vYmplY3RfdHlwZV9nZXQoZXdrVmlldyk7IFwKKyAg
ICAgICAgY29uc3QgRXZhc19TbWFydCogX3RtcF9zID0gZXZhc19vYmplY3Rfc21hcnRfc21hcnRf
Z2V0KGV3a1ZpZXcpOyBcCisgICAgICAgIGlmIChFSU5BX1VOTElLRUxZKCFfdG1wX3MpKSB7IFwK
KyAgICAgICAgICAgIEVJTkFfTE9HX0NSSVQgXAorICAgICAgICAgICAgICAgICgiJXAgKCVzKSBp
cyBub3QgYSBzbWFydCBvYmplY3QhIiwgZXdrVmlldywgXAorICAgICAgICAgICAgICAgIF90bXBf
b3R5cGUgPyBfdG1wX290eXBlIDogIihudWxsKSIpOyBcCisgICAgICAgICAgICByZXR1cm4gX19W
QV9BUkdTX187IFwKKyAgICAgICAgfSBcCiAgICAgICAgIGNvbnN0IEV2YXNfU21hcnRfQ2xhc3Mq
IF90bXBfc2MgPSBldmFzX3NtYXJ0X2NsYXNzX2dldChfdG1wX3MpOyBcCi0gICAgICAgIGlmIChF
SU5BX1VOTElLRUxZKCFfdG1wX3NjKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgICAgICAgICBFSU5BX0xPR19DUklUICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgKCIlcCAoJXMpIGlzIG5vdCBh
IHNtYXJ0IG9iamVjdCEiLCBld2tWaWV3LCAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAg
ICAgICAgX3RtcF9vdHlwZSA/IF90bXBfb3R5cGUgOiAiKG51bGwpIik7ICAgICAgICAgICAgICAg
ICAgIFwKLSAgICAgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgaWYgKEVJ
TkFfVU5MSUtFTFkoX3RtcF9zYy0+ZGF0YSAhPSBld2tWaWV3VHlwZVN0cmluZykpIHsgICAgICAg
IFwKLSAgICAgICAgICAgIEVJTkFfTE9HX0NSSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAoIiVwICglcykgaXMgbm90IG9m
IGFuIGV3a192aWV3IChuZWVkICVwLCBnb3QgJXApISIsICAgIFwKLSAgICAgICAgICAgICAgICBl
d2tWaWV3LCBfdG1wX290eXBlID8gX3RtcF9vdHlwZSA6ICIobnVsbCkiLCAgICAgICAgICAgICAg
ICAgXAotICAgICAgICAgICAgICAgIGV3a1ZpZXdUeXBlU3RyaW5nLCBfdG1wX3NjLT5kYXRhKTsg
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIH0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgICAgIGlmIChFSU5BX1VOTElLRUxZKCFfdG1wX3NjKSkgeyBcCisgICAgICAgICAgICBF
SU5BX0xPR19DUklUIFwKKyAgICAgICAgICAgICAgICAoIiVwICglcykgaXMgbm90IGEgc21hcnQg
b2JqZWN0ISIsIGV3a1ZpZXcsIFwKKyAgICAgICAgICAgICAgICBfdG1wX290eXBlID8gX3RtcF9v
dHlwZSA6ICIobnVsbCkiKTsgXAorICAgICAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyBcCisg
ICAgICAgIH0gXAorICAgICAgICBpZiAoRUlOQV9VTkxJS0VMWShfdG1wX3NjLT5kYXRhICE9IGV3
a1ZpZXdUeXBlU3RyaW5nKSkgeyBcCisgICAgICAgICAgICBFSU5BX0xPR19DUklUIFwKKyAgICAg
ICAgICAgICAgICAoIiVwICglcykgaXMgbm90IG9mIGFuIGV3a192aWV3IChuZWVkICVwLCBnb3Qg
JXApISIsIFwKKyAgICAgICAgICAgICAgICBld2tWaWV3LCBfdG1wX290eXBlID8gX3RtcF9vdHlw
ZSA6ICIobnVsbCkiLCBcCisgICAgICAgICAgICAgICAgZXdrVmlld1R5cGVTdHJpbmcsIF90bXBf
c2MtPmRhdGEpOyBcCisgICAgICAgICAgICByZXR1cm4gX19WQV9BUkdTX187IFwKKyAgICAgICAg
fSBcCiAgICAgfSB3aGlsZSAoMCkKICNlbmRpZgogCi0jZGVmaW5lIEVXS19WSUVXX1NEX0dFVChl
d2tWaWV3LCBwdHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIEV3a19W
aWV3X1NtYXJ0X0RhdGEqIHB0ciA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihl
dmFzX29iamVjdF9zbWFydF9kYXRhX2dldChld2tWaWV3KSkKKyNkZWZpbmUgRVdLX1ZJRVdfU0Rf
R0VUKGV3a1ZpZXcsIHBvaW50ZXIpIFwKKyAgICBFd2tfVmlld19TbWFydF9EYXRhKiBwb2ludGVy
ID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGV2YXNfb2JqZWN0X3NtYXJ0X2Rh
dGFfZ2V0KGV3a1ZpZXcpKQogCi0jZGVmaW5lIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdr
VmlldywgcHRyLCAuLi4pICAgICAgICAgIFwKLSAgICBFV0tfVklFV19UWVBFX0NIRUNLKGV3a1Zp
ZXcsIF9fVkFfQVJHU19fKTsgICAgICAgICAgICAgICAgXAotICAgIEVXS19WSUVXX1NEX0dFVChl
d2tWaWV3LCBwdHIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgaWYgKCFwdHIp
IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgQ1JJ
VElDQUwoIm5vIHNtYXJ0IGRhdGEgZm9yIG9iamVjdCAlcCAoJXMpIiwgICAgXAotICAgICAgICAg
ICAgICAgICBld2tWaWV3LCBldmFzX29iamVjdF90eXBlX2dldChld2tWaWV3KSk7ICAgICAgICAg
ICBcCi0gICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyNkZWZpbmUgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwb2ludGVy
LCAuLi4pIFwKKyAgICBFV0tfVklFV19UWVBFX0NIRUNLKGV3a1ZpZXcsIF9fVkFfQVJHU19fKTsg
XAorICAgIEVXS19WSUVXX1NEX0dFVChld2tWaWV3LCBwb2ludGVyKTsgXAorICAgIGlmICghcG9p
bnRlcikgeyBcCisgICAgICAgIENSSVRJQ0FMKCJubyBzbWFydCBkYXRhIGZvciBvYmplY3QgJXAg
KCVzKSIsIFwKKyAgICAgICAgICAgICAgICAgZXdrVmlldywgZXZhc19vYmplY3RfdHlwZV9nZXQo
ZXdrVmlldykpOyBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgXAogICAgIH0KIAotI2Rl
ZmluZSBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEsIHB0cikgICAgICAgICAgICAgIFwKLSAg
ICBFd2tfVmlld19Qcml2YXRlX0RhdGEgKnB0ciA9IHNtYXJ0RGF0YS0+X3ByaXYKKyNkZWZpbmUg
RVdLX1ZJRVdfUFJJVl9HRVQoc21hcnREYXRhLCBwb2ludGVyKSBcCisgICAgRXdrX1ZpZXdfUHJp
dmF0ZV9EYXRhKiBwb2ludGVyID0gc21hcnREYXRhLT5fcHJpdgogCi0jZGVmaW5lIEVXS19WSUVX
X1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHB0ciwgLi4uKSAgICAgICAgICAgICAgIFwK
LSAgICBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEsIHB0cik7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgIGlmICghcHRyKSB7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgQ1JJVElDQUwoIm5vIHByaXZhdGUg
ZGF0YSBmb3Igb2JqZWN0ICVwICglcykiLCAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgIHNt
YXJ0RGF0YS0+c2VsZiwgZXZhc19vYmplY3RfdHlwZV9nZXQoc21hcnREYXRhLT5zZWxmKSk7ICAg
ICBcCi0gICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorI2RlZmluZSBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnRE
YXRhLCBwb2ludGVyLCAuLi4pIFwKKyAgICBFV0tfVklFV19QUklWX0dFVChzbWFydERhdGEsIHBv
aW50ZXIpOyBcCisgICAgaWYgKCFwb2ludGVyKSB7IFwKKyAgICAgICAgQ1JJVElDQUwoIm5vIHBy
aXZhdGUgZGF0YSBmb3Igb2JqZWN0ICVwICglcykiLCBcCisgICAgICAgICAgICAgICAgIHNtYXJ0
RGF0YS0+c2VsZiwgZXZhc19vYmplY3RfdHlwZV9nZXQoc21hcnREYXRhLT5zZWxmKSk7IFwKKyAg
ICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyBcCiAgICAgfQogCiAjZGVmaW5lIEVXS19WSUVXX1RJ
TEVEX1RZUEVfQ0hFQ0tfT1JfUkVUVVJOKGV3a1ZpZXcsIC4uLikgXApAQCAtNDEwLDEyICs0MTAs
MTIgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3Njcm9sbHNfZmx1c2goRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhKiBwcml2KQogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfZm9jdXNfaW4o
RXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQogewogICAgIEVXS19WSUVXX1BSSVZfR0VU
KHNtYXJ0RGF0YSwgcHJpdik7Ci0gICAgV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyKiBmYyA9IHBy
aXYtPnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpOwotICAgIERCRygiZXdrVmlldz0lcCwgZmM9JXAi
LCBzbWFydERhdGEtPnNlbGYsIGZjKTsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwoZmMsIGZhbHNlKTsKKyAgICBXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXIqIGZvY3VzQ29udHJv
bGxlciA9IHByaXYtPnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpOworICAgIERCRygiZXdrVmlldz0l
cCwgZm9jdXNDb250cm9sbGVyPSVwIiwgc21hcnREYXRhLT5zZWxmLCBmb2N1c0NvbnRyb2xsZXIp
OworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChmb2N1c0NvbnRyb2xsZXIsIGZh
bHNlKTsKIAotICAgIGZjLT5zZXRBY3RpdmUodHJ1ZSk7Ci0gICAgZmMtPnNldEZvY3VzZWQodHJ1
ZSk7CisgICAgZm9jdXNDb250cm9sbGVyLT5zZXRBY3RpdmUodHJ1ZSk7CisgICAgZm9jdXNDb250
cm9sbGVyLT5zZXRGb2N1c2VkKHRydWUpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC05OTQs
NyArOTk0LDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X2ZsdXNoKEV3a19WaWV3X1Nt
YXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIAogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRf
cHJlX3JlbmRlcl9yZWdpb24oRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCBFdmFzX0Nv
b3JkIHgsIEV2YXNfQ29vcmQgeSwgRXZhc19Db29yZCB3aWR0aCwgRXZhc19Db29yZCBoZWlnaHQs
IGZsb2F0IHpvb20pCiB7Ci0gICAgV1JOKCJub3Qgc3VwcG9ydGVkIGJ5IGVuZ2luZS4gc21hcnRE
QXRhPSVwIGFyZWE9JWQsJWQrJWR4JWQsIHpvb209JWYiLAorICAgIFdSTigibm90IHN1cHBvcnRl
ZCBieSBlbmdpbmUuIHNtYXJ0RGF0YT0lcCBhcmVhPSVkLCVkKyVkeCVkLCB6b29tPSVmIiwKICAg
ICAgICAgc21hcnREYXRhLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCB6b29tKTsKICAgICByZXR1cm4g
ZmFsc2U7CiB9CkBAIC0xNzkwLDcgKzE3OTAsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfcHJlX3Jl
bmRlcl9yZWdpb24oRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfQ29vcmQgeCwgRXZhc19Dbwog
ICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7
CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2Up
OwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzbWFydERhdGEtPmFwaS0+cHJl
X3JlbmRlcl9yZWdpb24sIGZhbHNlKTsKLSAgICBmbG9hdCBjdXJfem9vbTsKKyAgICBmbG9hdCBj
dXJyZW50Wm9vbTsKICAgICBFdmFzX0Nvb3JkIGNvbnRlbnRzV2lkdGgsIGNvbnRlbnRzSGVpZ2h0
OwogCiAgICAgLyogV2hlbiBkb2luZyBhbmltYXRlZCB6b29tIGl0J3Mgbm90IHBvc3NpYmxlIHRv
IGNhbGwgcHJlLXJlbmRlciBzaW5jZSBpdApAQCAtMTc5OSwxNSArMTc5OSwxNSBAQCBFaW5hX0Jv
b2wgZXdrX3ZpZXdfcHJlX3JlbmRlcl9yZWdpb24oRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNf
Q29vcmQgeCwgRXZhc19DbwogICAgIGlmIChwcml2LT5hbmltYXRlZFpvb20uYW5pbWF0b3IpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGN1cl96b29tID0gZXdrX2ZyYW1lX3BhZ2Vfem9v
bV9nZXQoc21hcnREYXRhLT5tYWluX2ZyYW1lKTsKKyAgICBjdXJyZW50Wm9vbSA9IGV3a19mcmFt
ZV9wYWdlX3pvb21fZ2V0KHNtYXJ0RGF0YS0+bWFpbl9mcmFtZSk7CiAKLSAgICBpZiAoY3VyX3pv
b20gPCAwLjAwMDAxKQorICAgIGlmIChjdXJyZW50Wm9vbSA8IDAuMDAwMDEpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICBpZiAoIWV3a19mcmFtZV9jb250ZW50c19zaXplX2dldChzbWFydERh
dGEtPm1haW5fZnJhbWUsICZjb250ZW50c1dpZHRoLCAmY29udGVudHNIZWlnaHQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBjb250ZW50c1dpZHRoICo9IHpvb20gLyBjdXJfem9vbTsK
LSAgICBjb250ZW50c0hlaWdodCAqPSB6b29tIC8gY3VyX3pvb207CisgICAgY29udGVudHNXaWR0
aCAqPSB6b29tIC8gY3VycmVudFpvb207CisgICAgY29udGVudHNIZWlnaHQgKj0gem9vbSAvIGN1
cnJlbnRab29tOwogICAgIERCRygicmVnaW9uICVkLCVkKyVkeCVkIEAgJWYgY29udGVudHM9JWR4
JWQiLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCB6b29tLCBjb250ZW50c1dpZHRoLCBjb250ZW50c0hl
aWdodCk7CiAKICAgICBpZiAoeCArIHdpZHRoID4gY29udGVudHNXaWR0aCkKQEAgLTI5NTcsOCAr
Mjk1Nyw4IEBAIHZvaWQgZXdrX3ZpZXdfcmVzdG9yZV9zdGF0ZShFdmFzX09iamVjdCogZXdrVmll
dywgRXZhc19PYmplY3QqIGZyYW1lKQogICogQHBhcmFtIGV3a1ZpZXcgQ3VycmVudCB2aWV3Lgog
ICogQHBhcmFtIGphdmFzY3JpcHQgQGMgdHJ1ZSBpZiB0aGUgbmV3IHdpbmRvdyBpcyBvcmlnaW5h
dGVkIGZyb20gamF2YXNjcmlwdCwKICAqIEBjIGZhbHNlIG90aGVyd2lzZQotICogQHBhcmFtIHdp
ZHRoaW5kb3dfZmVhdHVyZXMgRmVhdHVyZXMgb2YgdGhlIG5ldyB3aW5kb3cgYmVpbmcgY3JlYXRl
ZC4gSWYgaXQncyBAYwotICogTlVMTCwgaXQgd2lsbCBiZSBjcmVhdGVkIGEgd2luZG93IHdpdGgg
ZGVmYXVsdCBmZWF0dXJlcy4KKyAqIEBwYXJhbSB3aW5kb3dfZmVhdHVyZXMgRmVhdHVyZXMgb2Yg
dGhlIG5ldyB3aW5kb3cgYmVpbmcgY3JlYXRlZC4gSWYgaXQncyBAYworICogMCwgaXQgd2lsbCBi
ZSBjcmVhdGVkIGEgd2luZG93IHdpdGggZGVmYXVsdCBmZWF0dXJlcy4KICAqCiAgKiBAcmV0dXJu
IE5ldyB2aWV3LCBpbiBjYXNlIHNtYXJ0IGNsYXNzIGltcGxlbWVudHMgdGhlIGNyZWF0aW9uIG9m
IG5ldyB3aW5kb3dzOwogICogZWxzZSwgY3VycmVudCB2aWV3IEBwYXJhbSBld2tWaWV3IG9yIEBj
IDAgb24gZmFpbHVyZS4KQEAgLTMwNTAsNyArMzA1MCw3IEBAIHZvaWQgZXdrX3ZpZXdfdG9vbGJh
cnNfdmlzaWJsZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgdmlzaWJsZSkKICAqLwog
dm9pZCBld2tfdmlld190b29sYmFyc192aXNpYmxlX2dldChFdmFzX09iamVjdCogZXdrVmlldywg
Ym9vbCogdmlzaWJsZSkKIHsKLSAgICBEQkcoIiVzLCBvPSVwIiwgX19mdW5jX18sIGV3a1ZpZXcp
OworICAgIERCRygiJXMsIGV3a1ZpZXc9JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CiAgICAgKnZp
c2libGUgPSBmYWxzZTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1Zp
ZXcsICJ0b29sYmFycyx2aXNpYmxlLGdldCIsIHZpc2libGUpOwogfQpAQCAtMzA4Myw3ICszMDgz
LDcgQEAgdm9pZCBld2tfdmlld19zdGF0dXNiYXJfdmlzaWJsZV9zZXQoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIGJvb2wgIHZpc2libGUpCiAgKi8KIHZvaWQgZXdrX3ZpZXdfc3RhdHVzYmFyX3Zpc2li
bGVfZ2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sKiB2aXNpYmxlKQogewotICAgIERCRygi
JXMsIG89JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CisgICAgREJHKCIlcywgZXdrVmlldz0lcCIs
IF9fZnVuY19fLCBld2tWaWV3KTsKICAgICAqdmlzaWJsZSA9IGZhbHNlOwogICAgIGV2YXNfb2Jq
ZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgInN0YXR1c2Jhcix2aXNpYmxlLGdldCIs
IHZpc2libGUpOwogfQpAQCAtMzEzMiw3ICszMTMyLDcgQEAgdm9pZCBld2tfdmlld19zY3JvbGxi
YXJzX3Zpc2libGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIHZpc2libGUpCiAgKi8K
IHZvaWQgZXdrX3ZpZXdfc2Nyb2xsYmFyc192aXNpYmxlX2dldChFdmFzX09iamVjdCogZXdrVmll
dywgYm9vbCogdmlzaWJsZSkKIHsKLSAgICBEQkcoIiVzLCBvPSVwIiwgX19mdW5jX18sIGV3a1Zp
ZXcpOworICAgIERCRygiJXMsIGV3a1ZpZXc9JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CiAgICAg
KnZpc2libGUgPSBmYWxzZTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3
a1ZpZXcsICJzY3JvbGxiYXJzLHZpc2libGUsZ2V0IiwgdmlzaWJsZSk7CiB9CkBAIC0zMTY1LDcg
KzMxNjUsNyBAQCB2b2lkIGV3a192aWV3X21lbnViYXJfdmlzaWJsZV9zZXQoRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIGJvb2wgdmlzaWJsZSkKICAqLwogdm9pZCBld2tfdmlld19tZW51YmFyX3Zpc2li
bGVfZ2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sKiB2aXNpYmxlKQogewotICAgIERCRygi
JXMsIG89JXAiLCBfX2Z1bmNfXywgZXdrVmlldyk7CisgICAgREJHKCIlcywgZXdrVmlldz0lcCIs
IF9fZnVuY19fLCBld2tWaWV3KTsKICAgICAqdmlzaWJsZSA9IGZhbHNlOwogICAgIGV2YXNfb2Jq
ZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgIm1lbnViYXIsdmlzaWJsZSxnZXQiLCB2
aXNpYmxlKTsKIH0KQEAgLTM1OTMsNyArMzU5Myw3IEBAIEVpbmFfQm9vbCBld2tfdmlld196b29t
X3JhbmdlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgZmxvYXQgbWluU2NhbGUsIGZsb2F0IG1h
CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2Up
OwogCiAgICAgaWYgKG1heFNjYWxlIDwgbWluU2NhbGUpIHsKLSAgICAgICAgV1JOKCJtaW5fc2Nh
bGUgaXMgbGFyZ2VyIHRoYW4gbWF4X3NjYWxlIik7CisgICAgICAgIFdSTigibWluU2NhbGUgaXMg
bGFyZ2VyIHRoYW4gbWF4U2NhbGUiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmggYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuaAppbmRleCBhNDMzNTM3Li5kMzQ3NGE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXcuaApAQCAtMTQ0Miw3ICsxNDQyLDcgQEAgRUFQSSBFaW5hX0Jvb2wgICAg
ZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVfcGx1Z2luc19zZXQoRXZhc19PYmplY3QgKm8sIEVpbmFf
Qm9vbAogICogQHJldHVybiBAYyBFSU5BX1RSVUUgaWYgdGhlIGZyYW1lIGZsYXR0ZW5pbmcgZmVh
dHVyZSBpcyBlbmFibGVkLAogICogICAgICAgICBAYyBFSU5BX0ZBTFNFIGlmIG5vdCBvciBvbiBm
YWlsdXJlCiAgKi8KLUVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdfZW5hYmxlX2Zy
YW1lX2ZsYXR0ZW5pbmdfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBvKTsKK0VBUEkgRWluYV9Cb29s
ICAgIGV3a192aWV3X3NldHRpbmdfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmdfZ2V0KGNvbnN0IEV2
YXNfT2JqZWN0ICpvKTsKIAogLyoqCiAgKiBFbmFibGVzL2Rpc2FibGVzIHRoZSBmcmFtZSBmbGF0
dGVuaW5nIGZlYXR1cmUuCkBAIC0xNDUzLDcgKzE0NTMsNyBAQCBFQVBJIEVpbmFfQm9vbCAgICBl
d2tfdmlld19zZXR0aW5nX2VuYWJsZV9mcmFtZV9mbGF0dGVuaW5nX2dldChjb25zdCBFdmFzX09i
amVjdAogICoKICAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9uIHN1Y2Nlc3Mgb3IgQGMgRUlOQV9G
QUxTRSBvbiBmYWlsdXJlCiAgKi8KLUVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdf
ZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmdfc2V0KEV2YXNfT2JqZWN0KiBvLCBFaW5hX0Jvb2wgZW5h
YmxlKTsKK0VBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3NldHRpbmdfZW5hYmxlX2ZyYW1lX2Zs
YXR0ZW5pbmdfc2V0KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wgZW5hYmxlKTsKIAogLyoqCiAg
KiBRdWVyaWVzIGlmIHRoZSBzY3JpcHRzIGNhbiBvcGVuIHRoZSBuZXcgd2luZG93cy4KQEAgLTIy
ODgsNyArMjI4OCw3IEBAIHR5cGVkZWYgZW51bSBfRXdrX1BhZ2VfVmlzaWJpbGl0eV9TdGF0ZSBF
d2tfUGFnZV9WaXNpYmlsaXR5X1N0YXRlOwogICoKICAqIEByZXR1cm4gQGMgRUlOQV9UUlVFIG9u
IHN1Y2Nlc3Mgb3IgQGMgRUlOQV9GQUxTRSBvbiBmYWlsdXJlLgogICovCi1FQVBJIEVpbmFfQm9v
bCBld2tfdmlld192aXNpYmlsaXR5X3N0YXRlX3NldChFdmFzX09iamVjdCogbywgRXdrX1BhZ2Vf
VmlzaWJpbGl0eV9TdGF0ZSBwYWdlX3Zpc2libGVfc3RhdGUsIEVpbmFfQm9vbCBpbml0aWFsX3N0
YXRlKTsKK0VBUEkgRWluYV9Cb29sIGV3a192aWV3X3Zpc2liaWxpdHlfc3RhdGVfc2V0KEV2YXNf
T2JqZWN0ICpvLCBFd2tfUGFnZV9WaXNpYmlsaXR5X1N0YXRlIHBhZ2VfdmlzaWJsZV9zdGF0ZSwg
RWluYV9Cb29sIGluaXRpYWxfc3RhdGUpOwogCiAvKioKICAqIEdldHMgdGhlIHZpc2liaWxpdHkg
c3RhdGUgb2YgdGhlIHBhZ2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXdfc2luZ2xlLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld19zaW5nbGUu
Y3BwCmluZGV4IDUyNjUyNGIuLjQ5ODFlZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlld19zaW5nbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlld19zaW5nbGUuY3BwCkBAIC05LDcgKzksNyBAQAogCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
LSAgICBNRVJjaEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAKICAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCkBAIC0yMTYs
OCArMjE2LDggQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc2luZ2xlX3NtYXJ0X3JlcGFp
bnRzX3Byb2Nlc3MoRXdrX1ZpZXdfU21hcnRfRGF0YSogc20KICAgICBFdmFzX0Nvb3JkIG93LCBv
aDsKICAgICB2b2lkKiBwaXhlbHM7CiAgICAgRWluYV9SZWN0YW5nbGUqIHJlY3Q7Ci0gICAgY29u
c3QgRWluYV9SZWN0YW5nbGUqIHByOwotICAgIGNvbnN0IEVpbmFfUmVjdGFuZ2xlKiBwcl9lbmQ7
CisgICAgY29uc3QgRWluYV9SZWN0YW5nbGUqIHBhaW50UmVxdWVzdDsKKyAgICBjb25zdCBFaW5h
X1JlY3RhbmdsZSogcGFpbnRSZXF1ZXN0RW5kOwogICAgIEVpbmFfVGlsZXIqIHRpbGVyOwogICAg
IEVpbmFfSXRlcmF0b3IqIGl0ZXJhdG9yOwogICAgIGNhaXJvX3N0YXR1c190IHN0YXR1czsKQEAg
LTI4NCwxMCArMjg0LDEwIEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NpbmdsZV9zbWFy
dF9yZXBhaW50c19wcm9jZXNzKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtCiAKICAgICBld2tfdmll
d19sYXlvdXRfaWZfbmVlZGVkX3JlY3Vyc2l2ZShzbWFydERhdGEtPl9wcml2KTsKIAotICAgIHBy
ID0gZXdrX3ZpZXdfcmVwYWludHNfcG9wKHNtYXJ0RGF0YS0+X3ByaXYsICZjb3VudCk7Ci0gICAg
cHJfZW5kID0gcHIgKyBjb3VudDsKLSAgICBmb3IgKDsgcHIgPCBwcl9lbmQ7IHByKyspCi0gICAg
ICAgIGVpbmFfdGlsZXJfcmVjdF9hZGQodGlsZXIsIHByKTsKKyAgICBwYWludFJlcXVlc3QgPSBl
d2tfdmlld19yZXBhaW50c19wb3Aoc21hcnREYXRhLT5fcHJpdiwgJmNvdW50KTsKKyAgICBwYWlu
dFJlcXVlc3RFbmQgPSBwYWludFJlcXVlc3QgKyBjb3VudDsKKyAgICBmb3IgKDsgcGFpbnRSZXF1
ZXN0IDwgcGFpbnRSZXF1ZXN0RW5kOyBwYWludFJlcXVlc3QrKykKKyAgICAgICAgZWluYV90aWxl
cl9yZWN0X2FkZCh0aWxlciwgcGFpbnRSZXF1ZXN0KTsKIAogICAgIGl0ZXJhdG9yID0gZWluYV90
aWxlcl9pdGVyYXRvcl9uZXcodGlsZXIpOwogICAgIGlmICghaXRlcmF0b3IpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXdfdGlsZWQuY3BwCmluZGV4IGU1YjgyNjMuLjI5NmViNzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlld190aWxlZC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3X3RpbGVkLmNwcApAQCAtNzcsMTIgKzc3LDEy
IEBAIHN0YXRpYyB2b2lkKiBfZXdrX3ZpZXdfdGlsZWRfdXBkYXRlc19wcm9jZXNzX3ByZSh2b2lk
KiBkYXRhLCBFdmFzX09iamVjdCogZXdrVmllCiAKIHN0YXRpYyBFdmFzX09iamVjdCogX2V3a192
aWV3X3RpbGVkX3NtYXJ0X2JhY2tpbmdfc3RvcmVfYWRkKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNt
YXJ0RGF0YSkKIHsKLSAgICBFdmFzX09iamVjdCogYnMgPSBld2tfdGlsZWRfYmFja2luZ19zdG9y
ZV9hZGQoc21hcnREYXRhLT5iYXNlLmV2YXMpOworICAgIEV2YXNfT2JqZWN0KiBiYWNraW5nU3Rv
cmUgPSBld2tfdGlsZWRfYmFja2luZ19zdG9yZV9hZGQoc21hcnREYXRhLT5iYXNlLmV2YXMpOwog
ICAgIGV3a190aWxlZF9iYWNraW5nX3N0b3JlX3JlbmRlcl9jYl9zZXQKLSAgICAgICAgKGJzLCBf
ZXdrX3ZpZXdfdGlsZWRfcmVuZGVyX2NiLCBzbWFydERhdGEtPl9wcml2KTsKKyAgICAgICAgKGJh
Y2tpbmdTdG9yZSwgX2V3a192aWV3X3RpbGVkX3JlbmRlcl9jYiwgc21hcnREYXRhLT5fcHJpdik7
CiAgICAgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdXBkYXRlc19wcm9jZXNzX3ByZV9zZXQKLSAg
ICAgICAgKGJzLCBfZXdrX3ZpZXdfdGlsZWRfdXBkYXRlc19wcm9jZXNzX3ByZSwgc21hcnREYXRh
LT5fcHJpdik7Ci0gICAgcmV0dXJuIGJzOworICAgICAgICAoYmFja2luZ1N0b3JlLCBfZXdrX3Zp
ZXdfdGlsZWRfdXBkYXRlc19wcm9jZXNzX3ByZSwgc21hcnREYXRhLT5fcHJpdik7CisgICAgcmV0
dXJuIGJhY2tpbmdTdG9yZTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTk3LDE3ICs5NywxNyBAQCBf
ZXdrX3ZpZXdfdGlsZWRfY29udGVudHNfc2l6ZV9jaGFuZ2VkX2NiKHZvaWQqIGRhdGEsIEV2YXNf
T2JqZWN0KiBld2tWaWV3LCB2b2lkKgogCiBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfdGlsZWRfc21h
cnRfYWRkKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogewotICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEq
IHNkOworICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YTsKIAogICAgIF9wYXJlbnRf
c2Muc2MuYWRkKGV3a1ZpZXcpOwogCi0gICAgc2QgPSBzdGF0aWNfY2FzdDxFd2tfVmlld19TbWFy
dF9EYXRhKj4oZXZhc19vYmplY3Rfc21hcnRfZGF0YV9nZXQoZXdrVmlldykpOwotICAgIGlmICgh
c2QpCisgICAgc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+KGV2
YXNfb2JqZWN0X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpKTsKKyAgICBpZiAoIXNtYXJ0RGF0YSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKAot
ICAgICAgICBzZC0+bWFpbl9mcmFtZSwgImNvbnRlbnRzLHNpemUsY2hhbmdlZCIsCi0gICAgICAg
IF9ld2tfdmlld190aWxlZF9jb250ZW50c19zaXplX2NoYW5nZWRfY2IsIHNkKTsKKyAgICAgICAg
c21hcnREYXRhLT5tYWluX2ZyYW1lLCAiY29udGVudHMsc2l6ZSxjaGFuZ2VkIiwKKyAgICAgICAg
X2V3a192aWV3X3RpbGVkX2NvbnRlbnRzX3NpemVfY2hhbmdlZF9jYiwgc21hcnREYXRhKTsKIH0K
IAogc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfdGlsZWRfc21hcnRfc2Nyb2xsc19wcm9jZXNz
KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKQEAgLTM5MiwxNCArMzkyLDE0IEBAIEV2
YXNfT2JqZWN0KiBld2tfdmlld190aWxlZF9hZGQoRXZhcyogY2FudmFzKQogCiBFd2tfVGlsZV9V
bnVzZWRfQ2FjaGUqIGV3a192aWV3X3RpbGVkX3VudXNlZF9jYWNoZV9nZXQoY29uc3QgRXZhc19P
YmplY3QqIGV3a1ZpZXcpCiB7Ci0gICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBld2tfdmll
d19zbWFydF9kYXRhX2dldChld2tWaWV3KTsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwoc2QsIDApOwotICAgIHJldHVybiBld2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX3Vu
dXNlZF9jYWNoZV9nZXQoc2QtPmJhY2tpbmdfc3RvcmUpOworICAgIEV3a19WaWV3X1NtYXJ0X0Rh
dGEqIHNtYXJ0RGF0YSA9IGV3a192aWV3X3NtYXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpOworICAgIEVJ
TkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzbWFydERhdGEsIDApOworICAgIHJldHVybiBl
d2tfdGlsZWRfYmFja2luZ19zdG9yZV90aWxlX3VudXNlZF9jYWNoZV9nZXQoc21hcnREYXRhLT5i
YWNraW5nX3N0b3JlKTsKIH0KIAogdm9pZCBld2tfdmlld190aWxlZF91bnVzZWRfY2FjaGVfc2V0
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfVGlsZV9VbnVzZWRfQ2FjaGUqIGNhY2hlKQogewot
ICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gZXdrX3ZpZXdfc21hcnRfZGF0YV9nZXQoZXdr
Vmlldyk7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oc2QpOwotICAgIGV3a190aWxl
ZF9iYWNraW5nX3N0b3JlX3RpbGVfdW51c2VkX2NhY2hlX3NldChzZC0+YmFja2luZ19zdG9yZSwg
Y2FjaGUpOworICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9IGV3a192aWV3X3Nt
YXJ0X2RhdGFfZ2V0KGV3a1ZpZXcpOworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNt
YXJ0RGF0YSk7CisgICAgZXdrX3RpbGVkX2JhY2tpbmdfc3RvcmVfdGlsZV91bnVzZWRfY2FjaGVf
c2V0KHNtYXJ0RGF0YS0+YmFja2luZ19zdG9yZSwgY2FjaGUpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>