<?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>63966</bug_id>
          
          <creation_ts>2011-07-05 18:59:35 -0700</creation_ts>
          <short_desc>[EFL] Add url bar to EWebLauncher and MiniBrowser/Efl.</short_desc>
          <delta_ts>2012-09-03 00:32:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          <dependson>92070</dependson>
    
    <dependson>95670</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Hyerim Bae">hyerim.bae</reporter>
          <assigned_to name="Ryuan Choi">ryuan.choi</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hyerim.bae</cc>
    
    <cc>joone</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>432553</commentid>
    <comment_count>0</comment_count>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-05 18:59:35 -0700</bug_when>
    <thetext>Add url bar to EWebLauncher.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432555</commentid>
    <comment_count>1</comment_count>
      <attachid>99777</attachid>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-05 19:05:41 -0700</bug_when>
    <thetext>Created attachment 99777
Add url bar to EWebLauncher.

This patch is for adding URL bar to EWebLauncher(EFL) sample program.
When a user clicks a URL bar, the whole text in the bar will be selected.
Then the user can navigate to the site where he or she intends to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432556</commentid>
    <comment_count>2</comment_count>
      <attachid>99778</attachid>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-05 19:06:33 -0700</bug_when>
    <thetext>Created attachment 99778
Snapshot of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432606</commentid>
    <comment_count>3</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-07-05 20:59:57 -0700</bug_when>
    <thetext>LGTM. Kubo and Lucas, how do you think about it ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432738</commentid>
    <comment_count>4</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-07-06 05:59:50 -0700</bug_when>
    <thetext>Apart from the comments below, I would much rather if the patch was changed to use Edje instead of using textblock directly: most of the code in this patch simply does a lot of manual work which should not be required in an application in the 21st century :)

&gt; Tools/ChangeLog:10
&gt; +        Then the user can navigate to the site where he or she intends to do.

The &quot;do&quot; is not needed here.

&gt; Tools/EWebLauncher/main.c:762
&gt; +    Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down*) event_info;

This kind of cast is not needed.

&gt; Tools/EWebLauncher/main.c:952
&gt; +            snprintf(full_url, 4096, &quot;http://%s&quot;, url);

As this code is used in two different places, it would be good to factor it out into a separate function (or even provide it as a utility function in ewk later. eve needs to do the same thing in its code).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433136</commentid>
    <comment_count>5</comment_count>
      <attachid>99777</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-07-06 17:32:43 -0700</bug_when>
    <thetext>Comment on attachment 99777
Add url bar to EWebLauncher.

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

&gt; Tools/EWebLauncher/main.c:1110
&gt; +    createUrlBar();

How do you think about adding new function to initialize common code like ecore_evas between createUrlBar and browserCreate.
And then you can check before calling createUrlBar whether it returns EXIT_SUCCESS.

BTW, we use two different naming rules, createUrlBar and browserCreate :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433154</commentid>
    <comment_count>6</comment_count>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-06 18:49:32 -0700</bug_when>
    <thetext>I&apos;ll modify what you mentioned below.
Also, regarding using textblock, you are absolutely right.
However, the Edje can&apos;t receive the user input key value directly as far as I know.
That&apos;s why I used the textblock and handle it manually.


(In reply to comment #4)
&gt; Apart from the comments below, I would much rather if the patch was changed to use Edje instead of using textblock directly: most of the code in this patch simply does a lot of manual work which should not be required in an application in the 21st century :)
&gt; &gt; Tools/ChangeLog:10
&gt; &gt; +        Then the user can navigate to the site where he or she intends to do.
&gt; The &quot;do&quot; is not needed here.
&gt; &gt; Tools/EWebLauncher/main.c:762
&gt; &gt; +    Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down*) event_info;
&gt; This kind of cast is not needed.
&gt; &gt; Tools/EWebLauncher/main.c:952
&gt; &gt; +            snprintf(full_url, 4096, &quot;http://%s&quot;, url);
&gt; As this code is used in two different places, it would be good to factor it out into a separate function (or even provide it as a utility function in ewk later. eve needs to do the same thing in its code).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433371</commentid>
    <comment_count>7</comment_count>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-07 03:30:51 -0700</bug_when>
    <thetext>Also, if I use &apos;edje entry&apos; without the &apos;elementary&apos;, It&apos;s more complicated than using the &apos;textblock&apos; directly.
That means I should implement the &apos;elementary entry widget&apos; with using the &apos;edje entry&apos;.
It&apos;s much more easy to use the &apos;elementary entry&apos; directly instead, but as you know, the webkit can&apos;t has a elementary dependency.

(In reply to comment #6)
&gt; I&apos;ll modify what you mentioned below.
&gt; Also, regarding using textblock, you are absolutely right.
&gt; However, the Edje can&apos;t receive the user input key value directly as far as I know.
&gt; That&apos;s why I used the textblock and handle it manually.
&gt; (In reply to comment #4)
&gt; &gt; Apart from the comments below, I would much rather if the patch was changed to use Edje instead of using textblock directly: most of the code in this patch simply does a lot of manual work which should not be required in an application in the 21st century :)
&gt; &gt; &gt; Tools/ChangeLog:10
&gt; &gt; &gt; +        Then the user can navigate to the site where he or she intends to do.
&gt; &gt; The &quot;do&quot; is not needed here.
&gt; &gt; &gt; Tools/EWebLauncher/main.c:762
&gt; &gt; &gt; +    Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down*) event_info;
&gt; &gt; This kind of cast is not needed.
&gt; &gt; &gt; Tools/EWebLauncher/main.c:952
&gt; &gt; &gt; +            snprintf(full_url, 4096, &quot;http://%s&quot;, url);
&gt; &gt; As this code is used in two different places, it would be good to factor it out into a separate function (or even provide it as a utility function in ewk later. eve needs to do the same thing in its code).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433430</commentid>
    <comment_count>8</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-07-07 07:34:48 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I&apos;ll modify what you mentioned below.
&gt; Also, regarding using textblock, you are absolutely right.
&gt; However, the Edje can&apos;t receive the user input key value directly as far as I know.
&gt; That&apos;s why I used the textblock and handle it manually.

Are you really sure using Edje is more troublesome than doing all the work done in this patch? Using an entry and then using edje_object_signal_callback_add to check if Enter was pressed should require less code than using textblock directly, shouldn&apos;t it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433883</commentid>
    <comment_count>9</comment_count>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-07 21:14:39 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; I&apos;ll modify what you mentioned below.
&gt; &gt; Also, regarding using textblock, you are absolutely right.
&gt; &gt; However, the Edje can&apos;t receive the user input key value directly as far as I know.
&gt; &gt; That&apos;s why I used the textblock and handle it manually.
&gt; Are you really sure using Edje is more troublesome than doing all the work done in this patch? Using an entry and then using edje_object_signal_callback_add to check if Enter was pressed should require less code than using textblock directly, shouldn&apos;t it?

Okay, I&apos;ll try to do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435498</commentid>
    <comment_count>10</comment_count>
      <attachid>100443</attachid>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-12 00:01:46 -0700</bug_when>
    <thetext>Created attachment 100443
Another patch using edje.

Another patch using edje which Kubo recommanded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435499</commentid>
    <comment_count>11</comment_count>
      <attachid>100443</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-07-12 00:04:32 -0700</bug_when>
    <thetext>Comment on attachment 100443
Another patch using edje.

Next time, please give r? and c?.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435569</commentid>
    <comment_count>12</comment_count>
      <attachid>100443</attachid>
    <who name="Lucas De Marchi">lucas.de.marchi</who>
    <bug_when>2011-07-12 04:42:39 -0700</bug_when>
    <thetext>Comment on attachment 100443
Another patch using edje.

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

Are those &quot;if (!app)&quot;, &quot;if (!app || !ev | ...)&quot; really necessary? Seems like over protection. Just guarantee that the function cannot be called with NULL pointers. Since most of them come from evas_object_event_*, you can be sure they are not NULL.

&gt; Tools/EWebLauncher/main.c:507
&gt; +    if (!app || !ev)
&gt; +        return;

why?

&gt; Tools/EWebLauncher/main.c:536
&gt; +    if (!app || !ev)
&gt; +        return;

why?

&gt; Tools/EWebLauncher/main.c:667
&gt; +    if (!app)
&gt; +        return;

why?

&gt; Tools/EWebLauncher/main.c:717
&gt; +                memset(full_url, 0x00, len);

You don&apos;t need this. Set only the last byte as &apos;\0&apos;

&gt; Tools/EWebLauncher/main.c:747
&gt; +            ewk_view_uri_set(app-&gt;browser, full_url);
&gt; +            evas_object_focus_set(app-&gt;browser, EINA_TRUE);
&gt; +
&gt; +            if (full_url)
&gt; +                free(full_url);

Why this is not after char *full_url?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436128</commentid>
    <comment_count>13</comment_count>
      <attachid>100600</attachid>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-12 18:05:44 -0700</bug_when>
    <thetext>Created attachment 100600
patch for Lucas&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436503</commentid>
    <comment_count>14</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-07-13 10:25:08 -0700</bug_when>
    <thetext>Informal r-.

I&apos;m still not convinced that all this is needed. EWebLauncher currently has 911 LOC. With this patch (which is supposed to simply add an input box) it goes up to 1260 LOC. I know this is mostly not your fault, as we simply do not have a ready-made input box without using Elementary. But even so, the EDC could still be trimmed down a bit more -- most of the focus and cursor stuff can be just removed, as EWebLauncher is supposed to be kept as simple as possible. IMO the EDC should have the absolute bare minimum to just let a user edit text and press Enter.

&gt; Tools/CMakeListsEfl.txt:52
&gt; +

Extra newline.

&gt; Tools/CMakeListsEfl.txt:68
&gt; +                ${TOOLS_DIR}/EWebLauncher/entry.edc ENTRY_EDJ_PATH

This is wrong, you need ${ENTRY_EDJ_PATH}.

&gt; Tools/CMakeListsEfl.txt:71
&gt; +ADD_DEPENDENCIES(${WebKit_LIBRARY_NAME} entry.edj)

This feels hackish, is it really needed?

&gt; Tools/CMakeListsEfl.txt:72
&gt; +

Extra newline.

&gt; Tools/ChangeLog:8
&gt; +        This patch is for adding URL bar to EWebLauncher(EFL) sample program.

The reviewers usually prefer that ChangeLog entries do not begin with &quot;This patch does ...&quot;. As you already said that this patch adds a URL bar to EWebLauncher above, you can start this longer description with the following line.

&gt; Tools/EWebLauncher/entry.edc:1
&gt; +

The EDC files in ewk usually have copyright headers, so this one should have one too.

&gt; Tools/EWebLauncher/main.c:703
&gt; +            full_url = (char *)malloc(len);

The cast is not needed.

&gt; Tools/EWebLauncher/main.c:705
&gt; +                full_url[len]=&apos;\0&apos;;

Coding style: spaces before and after the &apos;=&apos;.

&gt; Tools/EWebLauncher/main.c:732
&gt; +            if (full_url)

ewk_view_uri_set will return EINA_FALSE if full_uri is NULL to, so the check could be moved up:

if (full_url) {
  ewk_view_uri_set(...);
  free(full_url);
}

&gt; Tools/EWebLauncher/main.c:733
&gt; +                free(full_url);

This call crashes EWebLauncher if I run it with MALLOC_CHECK_=3:

*** glibc detected *** /home/rakuco/dev/webkit/drt/WebKitBuild/Debug-efl/Programs/EWebLauncher: free(): invalid pointer: 0x081a0d70 ***

&gt; Tools/EWebLauncher/main.c:882
&gt; +        if (full_url)

Ditto about moving the check up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436803</commentid>
    <comment_count>15</comment_count>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-13 17:57:42 -0700</bug_when>
    <thetext>(In reply to comment #14)

&gt; &gt; Tools/CMakeListsEfl.txt:71
&gt; &gt; +ADD_DEPENDENCIES(${WebKit_LIBRARY_NAME} entry.edj)
&gt; This feels hackish, is it really needed?

I found that without above line, the entry.edc can&apos;t be compiled with edje cc.
The edje compiler ignore the entry.edc without above line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436808</commentid>
    <comment_count>16</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2011-07-13 18:01:29 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; 
&gt; &gt; &gt; Tools/CMakeListsEfl.txt:71
&gt; &gt; &gt; +ADD_DEPENDENCIES(${WebKit_LIBRARY_NAME} entry.edj)
&gt; &gt; This feels hackish, is it really needed?
&gt; 
&gt; I found that without above line, the entry.edc can&apos;t be compiled with edje cc.
&gt; The edje compiler ignore the entry.edc without above line.

No, kubo is riggt.

please try to test using Programs/EWebLauncher instead of ${WebKit_LIBRARY_NAME}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436832</commentid>
    <comment_count>17</comment_count>
      <attachid>100751</attachid>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-13 18:37:06 -0700</bug_when>
    <thetext>Created attachment 100751
patch for kubo&apos;s comment.

Modify according to kubo&apos;s comment, and trim down the entry.edc as short as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436923</commentid>
    <comment_count>18</comment_count>
      <attachid>100751</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-07-13 21:37:16 -0700</bug_when>
    <thetext>Comment on attachment 100751
patch for kubo&apos;s comment.

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

&gt; Tools/EWebLauncher/entry.edc:4
&gt; +    Copyright (C) 2009,2010 Samsung Electronics

Change 2009,2010 with 2011.

&gt; Tools/EWebLauncher/entry.edc:28
&gt; +      data.item: &quot;default_font_size&quot; &quot;16&quot;;

I think font size is a little big. Could you cut it down a little ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436925</commentid>
    <comment_count>19</comment_count>
      <attachid>100766</attachid>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-13 21:54:50 -0700</bug_when>
    <thetext>Created attachment 100766
Make a font size to 12, modify the copy right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437075</commentid>
    <comment_count>20</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-07-14 07:24:04 -0700</bug_when>
    <thetext>Still r-, as some concerns have not been addressed yet. The EDC still looks too big for my taste 

&gt; Tools/CMakeListsEfl.txt:65
&gt; +ADD_CUSTOM_TARGET(entry.edj

This target name still rubs me in a wrong way. What if you do what Source/WebKit/efl/CMakeListsEfl.txt does and use ADD_CUSTOM_COMMAND with the proper dependencies instead of using this? If it doesn&apos;t work, please use a more specific name, such as &quot;Programs/EWebLauncher_theme&quot;.

&gt; Tools/EWebLauncher/entry.edc:32
&gt; +            base: &quot;font=Roman font_size=16 color=&quot;ENTRY_TEXT_COLOR_INC&quot; wrap=mixed&quot;;

The font size here is still 16.

&gt; Tools/EWebLauncher/main.c:705
&gt; +                full_url[len] = &apos;\0&apos;;

I don&apos;t understand why you are doing this, as this is the faulty call which causes some bad memory management issues that I described in my previous review.

If you set the MALLOC_CHECK_ environment variable to 3, run EWebLauncher and go to &quot;webkit.org&quot; (without the &quot;http://&quot; before), the program will crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437519</commentid>
    <comment_count>21</comment_count>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-14 21:00:28 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; &gt; Tools/CMakeListsEfl.txt:65
&gt; &gt; +ADD_CUSTOM_TARGET(entry.edj
&gt; This target name still rubs me in a wrong way. What if you do what Source/WebKit/efl/CMakeListsEfl.txt does and use ADD_CUSTOM_COMMAND with the proper dependencies instead of using this? If it doesn&apos;t work, please use a more specific name, such as &quot;Programs/EWebLauncher_theme&quot;.

I failed to use ADD_CUSTOM_COMMAND, so I may use the ADD_CUSTOM_TARGET. The target name can&apos;t have slash(/), how about &quot;EWEbLauncher_entry_theme&quot; instead ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437805</commentid>
    <comment_count>22</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-07-15 09:52:18 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; &gt; Tools/CMakeListsEfl.txt:65
&gt; &gt; &gt; +ADD_CUSTOM_TARGET(entry.edj
&gt; &gt; This target name still rubs me in a wrong way. What if you do what Source/WebKit/efl/CMakeListsEfl.txt does and use ADD_CUSTOM_COMMAND with the proper dependencies instead of using this? If it doesn&apos;t work, please use a more specific name, such as &quot;Programs/EWebLauncher_theme&quot;.
&gt; 
&gt; I failed to use ADD_CUSTOM_COMMAND, so I may use the ADD_CUSTOM_TARGET. The target name can&apos;t have slash(/), how about &quot;EWEbLauncher_entry_theme&quot; instead ?

In the worst case, yes, but I&apos;d appreciate if you could describe what problems you had with ADD_CUSTOM_COMMAND first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438412</commentid>
    <comment_count>23</comment_count>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-18 05:29:22 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; (In reply to comment #20)
&gt; &gt; &gt; &gt; Tools/CMakeListsEfl.txt:65
&gt; &gt; &gt; &gt; +ADD_CUSTOM_TARGET(entry.edj
&gt; &gt; &gt; This target name still rubs me in a wrong way. What if you do what Source/WebKit/efl/CMakeListsEfl.txt does and use ADD_CUSTOM_COMMAND with the proper dependencies instead of using this? If it doesn&apos;t work, please use a more specific name, such as &quot;Programs/EWebLauncher_theme&quot;.
&gt; &gt; 
&gt; &gt; I failed to use ADD_CUSTOM_COMMAND, so I may use the ADD_CUSTOM_TARGET. The target name can&apos;t have slash(/), how about &quot;EWEbLauncher_entry_theme&quot; instead ?
&gt; In the worst case, yes, but I&apos;d appreciate if you could describe what problems you had with ADD_CUSTOM_COMMAND first.

I tried to use ADD_CUSTOM_COMMAND like below instead of ADD_CUSTOM_TARGET.
However, the entry.edc can&apos;t be compiled at all. Do you know what&apos;s the reason?
It&apos;s a troublesome problem that I have.

ADD_CUSTOM_COMMAND(
  OUTPUT ${ENTRY_EDJ_PATH}
  COMMAND ${EDJE_CC_EXECUTABLE} -v -id ${TOOLS_DIR}/EWebLauncher/entry.edc ${ENTRY_EDJ_PATH}
  DEPENDS
     ${TOOLS_DIR}/EWebLauncher/entry.edc
  VERBATIM
)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438437</commentid>
    <comment_count>24</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-07-18 06:42:31 -0700</bug_when>
    <thetext>Please take a look at CMake&apos;s explanation for the add_custom_command option [1]. If you use this first form of the command:

  &quot;A target created in the same directory (CMakeLists.txt file) that specifies any output of the custom command as a source file is given a rule to generate the file using the command at build time&quot;

If you choose the other form:

  &quot;The second signature adds a custom command to a target such as a library or executable. This is useful for performing an operation before or after building the target. The command becomes part of the target and will only execute when the target itself is built. If the target is already built, the command will not execute.&quot;

Notice how Source/WebKit/efl/CMakeListsEfl.txt does

  LIST(APPEND WebKit_SOURCES
       ${WebKit_THEME}
  )

according to what is described in the documentation of the first form of the command.

[1] http://www.cmake.org/cmake/help/cmake-2-8-docs.html#command:add_custom_command</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441584</commentid>
    <comment_count>25</comment_count>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-25 01:53:32 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Please take a look at CMake&apos;s explanation for the add_custom_command option [1]. If you use this first form of the command:
&gt;   &quot;A target created in the same directory (CMakeLists.txt file) that specifies any output of the custom command as a source file is given a rule to generate the file using the command at build time&quot;
&gt; If you choose the other form:
&gt;   &quot;The second signature adds a custom command to a target such as a library or executable. This is useful for performing an operation before or after building the target. The command becomes part of the target and will only execute when the target itself is built. If the target is already built, the command will not execute.&quot;
&gt; Notice how Source/WebKit/efl/CMakeListsEfl.txt does
&gt;   LIST(APPEND WebKit_SOURCES
&gt;        ${WebKit_THEME}
&gt;   )
&gt; according to what is described in the documentation of the first form of the command.
&gt; [1] http://www.cmake.org/cmake/help/cmake-2-8-docs.html#command:add_custom_command

How about this one?

ADD_CUSTOM_COMMAND(TARGET Programs/EWebLauncher
                   COMMAND ${EDJE_CC_EXECUTABLE} -v ${TOOLS_DIR}/EWebLauncher/entry.edc ${ENTRY_EDJ_PATH}
                   DEPENDS
                      ${TOOLS_DIR}/EWebLauncher/entry.edc
                   VERBATIM
)

LIST(APPEND EWebLauncher_SOURCES
     ${ENTRY_EDJ_PATH}
)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441687</commentid>
    <comment_count>26</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-07-25 09:18:56 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; How about this one?
&gt; 
&gt; ADD_CUSTOM_COMMAND(TARGET Programs/EWebLauncher
&gt;                    COMMAND ${EDJE_CC_EXECUTABLE} -v ${TOOLS_DIR}/EWebLauncher/entry.edc ${ENTRY_EDJ_PATH}
&gt;                    DEPENDS
&gt;                       ${TOOLS_DIR}/EWebLauncher/entry.edc
&gt;                    VERBATIM
&gt; )
&gt; 
&gt; LIST(APPEND EWebLauncher_SOURCES
&gt;      ${ENTRY_EDJ_PATH}
&gt; )

If you have verified it works, it&apos;s OK to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442032</commentid>
    <comment_count>27</comment_count>
      <attachid>101954</attachid>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-25 17:47:56 -0700</bug_when>
    <thetext>Created attachment 101954
patch for kubo&apos;s comment.

Minimize the edc file.
Make the font size to 14, it&apos;s more proper I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442185</commentid>
    <comment_count>28</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-07-26 05:35:24 -0700</bug_when>
    <thetext>&gt; Tools/ChangeLog:3
&gt; +        Reviewed by NOBODY (OOPS!).

The ChangeLog format has changed recently, and the &quot;Reviewed by&quot; line should come after the bug URL.

&gt; Tools/EWebLauncher/entry.edc:29
&gt; +            base: &quot;font=Roman font_size=14 color=#000000 wrap=mixed&quot;;

A few patches ago you said you were going to make the font size 12. Why have you chosen 14 now?

&gt; Tools/EWebLauncher/main.c:710
&gt; +                full_url[len-1] = &apos;\0&apos;;

This is not needed. sprintf(3) already adds the trailing null byte, as it comes automatically from the string you added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442679</commentid>
    <comment_count>29</comment_count>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-26 18:31:17 -0700</bug_when>
    <thetext>\&gt; &gt; Tools/EWebLauncher/entry.edc:29
&gt; &gt; +            base: &quot;font=Roman font_size=14 color=#000000 wrap=mixed&quot;;
&gt; A few patches ago you said you were going to make the font size 12. Why have you chosen 14 now?

font size 12 is too small, 14 is more proper I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442681</commentid>
    <comment_count>30</comment_count>
      <attachid>102086</attachid>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-26 18:38:17 -0700</bug_when>
    <thetext>Created attachment 102086
patch for kubo&apos;s comment.

Remove unnecessary exception code.
Modify the change log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442685</commentid>
    <comment_count>31</comment_count>
      <attachid>102086</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-07-26 18:42:03 -0700</bug_when>
    <thetext>Comment on attachment 102086
patch for kubo&apos;s comment.

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

&gt; Tools/EWebLauncher/entry.edc:86
&gt; +            description { state: &quot;default&quot; 0.0;

Why do you put &quot;state: &quot;default&quot; 0.0&quot; on new line?

&gt; Tools/EWebLauncher/entry.edc:129
&gt; +            description { state: &quot;default&quot; 0.0;

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442686</commentid>
    <comment_count>32</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-07-26 18:44:06 -0700</bug_when>
    <thetext>One more thing. Please do not modify patch directly when you update patch. If If you modify patch directly, style and build bot fail to merge.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442691</commentid>
    <comment_count>33</comment_count>
      <attachid>102089</attachid>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-26 18:50:42 -0700</bug_when>
    <thetext>Created attachment 102089
patch for kubo&apos;s &amp; kuyung&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442693</commentid>
    <comment_count>34</comment_count>
    <who name="Hyerim Bae">hyerim.bae</who>
    <bug_when>2011-07-26 18:52:34 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; Created an attachment (id=102089) [details]
&gt; patch for kubo&apos;s &amp; kuyung&apos;s comments.

Okay, I&apos;ll upload the patch later. Plz ignore the patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470137</commentid>
    <comment_count>35</comment_count>
      <attachid>102089</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-09-20 10:11:04 -0700</bug_when>
    <thetext>Comment on attachment 102089
patch for kubo&apos;s &amp; kuyung&apos;s comments.

Clearing flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675525</commentid>
    <comment_count>36</comment_count>
      <attachid>153752</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-07-23 01:18:35 -0700</bug_when>
    <thetext>Created attachment 153752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676284</commentid>
    <comment_count>37</comment_count>
      <attachid>153752</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-23 18:33:51 -0700</bug_when>
    <thetext>Comment on attachment 153752
Patch

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

There were sometimes difficulties whenever I test patches via EWebLauncher. So, I hope that this patch is landed successfully.

&gt; Tools/EWebLauncher/ControlTheme/entry.edc:44
&gt; +            source4: &quot;control/entry/cursor/default&quot;; // cursorover

What is cursorover ? Do you mean &quot;cursor over&quot; ?

In addition, I wonder what does *source4* mean.

&gt; Tools/EWebLauncher/main.c:726
&gt; +

It looks this is unneeded line.

&gt; Tools/EWebLauncher/main.c:755
&gt; +    urlBarDestroy(((ELauncher*)app)-&gt;urlBar);

Nit : g/(ELauncher*)/(ELauncher *)/g

&gt; Tools/EWebLauncher/main.c:777
&gt; +    const char *defaultTheme = THEME_DIR&quot;/default.edj&quot;;

NIT : Use _ for defaultTheme.

&gt; Tools/EWebLauncher/url_bar.c:34
&gt; +getUriWithProtocol(const char *url)

In my opinion, EWebLauncher is EFL simple application. So, it is good to adhere EFL coding style.

&gt; Tools/EWebLauncher/url_bar.c:38
&gt; +        char *token = strstr(url, &quot;://&quot;);

Because this is EFL application, If possible, I would like to recommend to use *eina_stringshare_strlen* instead of strlen.

&gt; Tools/EWebLauncher/url_bar.c:57
&gt; +    UrlBar *urlBar = (UrlBar*)data;

s/(UrlBar*)/(UrlBar *)/g

&gt; Tools/EWebLauncher/url_bar.c:79
&gt; +    UrlBar *urlBar = (UrlBar*)data;

ditto.

&gt; Tools/EWebLauncher/url_bar.c:90
&gt; +    UrlBar *urlBar = (UrlBar*)data;

ditto.

&gt; Tools/EWebLauncher/url_bar.c:96
&gt; +urlBarCreate(Evas_Object* webView, int width)

ditto.

&gt; Tools/EWebLauncher/url_bar.c:99
&gt; +    UrlBar *urlBar;

ditto.

&gt; Tools/EWebLauncher/url_bar.c:135
&gt; +urlBarDestroy(UrlBar *urlBar)

ditto.

&gt; Tools/EWebLauncher/url_bar.c:150
&gt; +urlBarSetURL(UrlBar *urlBar, const char* url)

Nit : Move &apos;*&apos; to variable side. In addition, s/urlBar/url_bar/g

&gt; Tools/EWebLauncher/url_bar.h:37
&gt; +typedef struct _UrlBar {

Good to use _ as below

typedef struct _Url_Bar {

&gt; Tools/EWebLauncher/url_bar.h:45
&gt; +void urlBarSetURL(UrlBar *urlBar, const char* url);

Nit : Move &apos;*&apos; to variable side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676401</commentid>
    <comment_count>38</comment_count>
      <attachid>153963</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-07-23 22:40:38 -0700</bug_when>
    <thetext>Created attachment 153963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676402</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-23 22:44:19 -0700</bug_when>
    <thetext>Attachment 153963 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Tools/CMakeLists.txt&apos;, u&apos;Tools/ChangeLog&apos;,...&quot; exit_code: 1
Tools/EWebLauncher/url_bar.c:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676410</commentid>
    <comment_count>40</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-07-23 22:57:18 -0700</bug_when>
    <thetext>(In reply to comment #37)
&gt; (From update of attachment 153752 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=153752&amp;action=review
&gt; 
&gt; There were sometimes difficulties whenever I test patches via EWebLauncher. So, I hope that this patch is landed successfully.
&gt; 
&gt; &gt; Tools/EWebLauncher/ControlTheme/entry.edc:44
&gt; &gt; +            source4: &quot;control/entry/cursor/default&quot;; // cursorover
&gt; 
&gt; What is cursorover ? Do you mean &quot;cursor over&quot; ?

Yes, I did.

&gt; 
&gt; In addition, I wonder what does *source4* mean.
&gt; 

source4 is used for group to be loaded and used for cursor display OVER the cursor position.
Related url is http://docs.enlightenment.org/auto/edje/edcref.html

(In reply to comment #39)
&gt; Attachment 153963 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Tools/CMakeLists.txt&apos;, u&apos;Tools/ChangeLog&apos;,...&quot; exit_code: 1
&gt; Tools/EWebLauncher/url_bar.c:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
&gt; Total errors found: 1 in 10 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

Strange, EWebLauncher did not use config.h before.

To fix this style issue,
 1) add config.h in source and include several path to EWebLauncher build script such WEBCORE_DIR, WTF_DIR, WEBCORE_DIR/platform and so on.
 2) skip this rule for EWebLauncher.

I am not sure what is better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676608</commentid>
    <comment_count>41</comment_count>
      <attachid>154007</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-07-24 03:29:32 -0700</bug_when>
    <thetext>Created attachment 154007
rebased for style bot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676610</commentid>
    <comment_count>42</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-24 03:31:15 -0700</bug_when>
    <thetext>Attachment 154007 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Tools/CMakeLists.txt&apos;, u&apos;Tools/ChangeLog&apos;,...&quot; exit_code: 1
Tools/EWebLauncher/url_bar.c:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676614</commentid>
    <comment_count>43</comment_count>
      <attachid>154008</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-07-24 03:38:16 -0700</bug_when>
    <thetext>Created attachment 154008
rebased for style bot2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687822</commentid>
    <comment_count>44</comment_count>
      <attachid>156613</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-08-06 00:28:13 -0700</bug_when>
    <thetext>Created attachment 156613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688709</commentid>
    <comment_count>45</comment_count>
      <attachid>156613</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-06 19:43:32 -0700</bug_when>
    <thetext>Comment on attachment 156613
Patch

It seems to me there is no critical problems in latest patch. If there is no objection to land this patch anymore, I agree to land this patch. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702750</commentid>
    <comment_count>46</comment_count>
      <attachid>156613</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-08-23 00:09:02 -0700</bug_when>
    <thetext>Comment on attachment 156613
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702770</commentid>
    <comment_count>47</comment_count>
      <attachid>156613</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-08-23 00:34:08 -0700</bug_when>
    <thetext>Comment on attachment 156613
Patch

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

&gt; Tools/EWebLauncher/url_bar.c:42
&gt; +{
&gt; +    const char *url = edje_object_part_text_get(urlBar-&gt;entry, &quot;url.text&quot;);
&gt; +    if (!url || !strlen(url))
&gt; +        return NULL;
&gt; +
&gt; +    if (!strstr(url, &quot;://&quot;))
&gt; +        return eina_stringshare_printf(&quot;http://%s&quot;, url);
&gt; +    return eina_stringshare_add(url);
&gt; +}

Qt has some method urlFromUserInput, you should have a look at that</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702891</commentid>
    <comment_count>48</comment_count>
      <attachid>160135</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-08-23 05:20:16 -0700</bug_when>
    <thetext>Created attachment 160135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702917</commentid>
    <comment_count>49</comment_count>
      <attachid>160135</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-23 06:04:25 -0700</bug_when>
    <thetext>Comment on attachment 160135
Patch

Clearing flags on attachment: 160135

Committed r126419: &lt;http://trac.webkit.org/changeset/126419&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702918</commentid>
    <comment_count>50</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-23 06:04:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99777</attachid>
            <date>2011-07-05 19:05:41 -0700</date>
            <delta_ts>2011-07-12 00:01:46 -0700</delta_ts>
            <desc>Add url bar to EWebLauncher.</desc>
            <filename>patch-[20110701]-[hyerim.bae@samsung.com]-[EWebLauncherurlbar].patch</filename>
            <type>text/plain</type>
            <size>15229</size>
            <attacher name="Hyerim Bae">hyerim.bae</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMGE0
ZmVhLi4zNjY3NjIyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDctMDEgIEh5ZXJpbSBCYWUgIDxoeWVyaW0u
YmFlQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFtFRkxdIEFkZCB1cmwgYmFyIHRvIEVXZWJMYXVuY2hlci4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTY2CisKKyAgICAgICAgVGhp
cyBwYXRjaCBpcyBmb3IgYWRkaW5nIFVSTCBiYXIgdG8gRVdlYkxhdW5jaGVyKEVGTCkgc2FtcGxl
IHByb2dyYW0uCisgICAgICAgIFdoZW4gYSB1c2VyIGNsaWNrcyBhIFVSTCBiYXIsIHRoZSB3aG9s
ZSB0ZXh0IGluIHRoZSBiYXIgd2lsbCBiZSBzZWxlY3RlZC4KKyAgICAgICAgVGhlbiB0aGUgdXNl
ciBjYW4gbmF2aWdhdGUgdG8gdGhlIHNpdGUgd2hlcmUgaGUgb3Igc2hlIGludGVuZHMgdG8gZG8u
CisKKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvbWFpbi5jOgorICAgICAgICAob25fZWNvcmVfZXZh
c19yZXNpemUpOgorICAgICAgICAob25fdXJsX2NoYW5nZWQpOgorICAgICAgICAob25fbW91c2Vf
ZG93bik6CisgICAgICAgIChvbl9icm93c2VyX2RlbCk6CisgICAgICAgIChvbl91cmxiYXJfa2V5
X2Rvd24pOgorICAgICAgICAob25fdXJsYmFyX21vdXNlX2Rvd24pOgorICAgICAgICAob25fdXJs
YmFyX2ZvY3VzX291dCk6CisgICAgICAgIChvbl91cmxiYXJfZm9jdXNfaW4pOgorICAgICAgICAo
Y3JlYXRlVXJsQmFyKToKKyAgICAgICAgKGJyb3dzZXJDcmVhdGUpOgorICAgICAgICAobWFpbik6
CisKIDIwMTEtMDYtMjkgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVu
Y2hlci9tYWluLmMgYi9Ub29scy9FV2ViTGF1bmNoZXIvbWFpbi5jCm9sZCBtb2RlIDEwMDY0NApu
ZXcgbW9kZSAxMDA3NTUKaW5kZXggZDNiYjVhMS4uYWRkYzY3YwotLS0gYS9Ub29scy9FV2ViTGF1
bmNoZXIvbWFpbi5jCisrKyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMKQEAgLTI5LDcgKzI5
LDYgQEAKIAogI2luY2x1ZGUgIkVXZWJLaXQuaCIKIAotI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5j
bHVkZSA8RWNvcmUuaD4KICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWNvcmVf
RmlsZS5oPgpAQCAtMzcsNiArMzYsNyBAQAogI2luY2x1ZGUgPEVjb3JlX1guaD4KICNpbmNsdWRl
IDxFZGplLmg+CiAjaW5jbHVkZSA8RXZhcy5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVk
ZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAg
LTQ3LDYgKzQ3LDcgQEAKIAogI2RlZmluZSBERUZBVUxUX1dJRFRIICAgICAgODAwCiAjZGVmaW5l
IERFRkFVTFRfSEVJR0hUICAgICA2MDAKKyNkZWZpbmUgVVJMX0JBUl9IRUlHSFQgICAgIDMwCiAj
ZGVmaW5lIERFRkFVTFRfWk9PTV9JTklUICAxLjAKIAogI2RlZmluZSBpbmZvKGZvcm1hdCwgYXJn
cy4uLikgICAgICAgXApAQCAtMTUwLDYgKzE1MSwxNSBAQCB0eXBlZGVmIHN0cnVjdCBfRUxhdW5j
aGVyIHsKICAgICBFdmFzICpldmFzOwogICAgIEV2YXNfT2JqZWN0ICpiZzsKICAgICBFdmFzX09i
amVjdCAqYnJvd3NlcjsKKyAgICBFdmFzX09iamVjdCAqdXJsQmFyQXJlYTsKKyAgICBFdmFzX09i
amVjdCAqdXJsQmFyVGV4dDsKKyAgICBFdmFzX09iamVjdCAqdXJsQmFyVGV4dFNlbGVjdGVkUmVj
dDsKKyAgICBFdmFzX1RleHRibG9ja19DdXJzb3IgKmN1cnNvcjsKKyAgICBFdmFzX09iamVjdCAq
Y3Vyc29yQmFyOworICAgIEVpbmFfQm9vbCBpc1NlbGVjdGVkQWxsOworICAgIEV2YXNfVGV4dGJs
b2NrX1N0eWxlICpub3JtYWxTdHlsZTsKKyAgICBFdmFzX1RleHRibG9ja19TdHlsZSAqc2VsZWN0
ZWRTdHlsZTsKKwogICAgIGNvbnN0IGNoYXIgKnRoZW1lOwogICAgIGNvbnN0IGNoYXIgKnVzZXJB
Z2VudDsKICAgICBjb25zdCBjaGFyICpiYWNraW5nU3RvcmU7CkBAIC0xNjAsNiArMTcwLDkgQEAg
dHlwZWRlZiBzdHJ1Y3QgX0VMYXVuY2hlciB7CiBzdGF0aWMgdm9pZCBicm93c2VyRGVzdHJveShF
Y29yZV9FdmFzICplZSk7CiBzdGF0aWMgdm9pZCBjbG9zZVdpbmRvdyhFY29yZV9FdmFzICplZSk7
CiBzdGF0aWMgaW50IGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICp0
aGVtZSwgY29uc3QgY2hhciAqdXNlckFnZW50LCBFaW5hX1JlY3RhbmdsZSBnZW9tZXRyeSwgY29u
c3QgY2hhciAqZW5naW5lLCBjb25zdCBjaGFyICpiYWNraW5nU3RvcmUsIHVuc2lnbmVkIGNoYXIg
aXNGbGF0dGVuaW5nLCB1bnNpZ25lZCBjaGFyIGlzRnVsbHNjcmVlbiwgY29uc3QgY2hhciAqZGF0
YWJhc2VQYXRoKTsKK3N0YXRpYyB2b2lkIG9uX3VybGJhcl9rZXlfZG93bih2b2lkICpkYXRhLCBF
dmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKTsKK3N0YXRpYyB2b2lk
IG9uX3VybGJhcl9tb3VzZV9kb3duKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpv
YmosIHZvaWQgKmV2ZW50X2luZm8pOworc3RhdGljIHZvaWQgb25fdXJsYmFyX2ZvY3VzX291dCh2
b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKTsK
IAogc3RhdGljIHZvaWQKIHByaW50X2hpc3RvcnkoRWluYV9MaXN0ICpsaXN0KQpAQCAtMjIzLDYg
KzIzNiw3IEBAIG9uX2Vjb3JlX2V2YXNfcmVzaXplKEVjb3JlX0V2YXMgKmVlKQogewogICAgIEV2
YXNfT2JqZWN0ICp3ZWJ2aWV3OwogICAgIEV2YXNfT2JqZWN0ICpiZzsKKyAgICBFdmFzX09iamVj
dCAqdXJsQmFyQXJlYTsKICAgICBpbnQgdywgaDsKIAogICAgIGVjb3JlX2V2YXNfZ2VvbWV0cnlf
Z2V0KGVlLCBOVUxMLCBOVUxMLCAmdywgJmgpOwpAQCAtMjMyLDggKzI0NiwxMiBAQCBvbl9lY29y
ZV9ldmFzX3Jlc2l6ZShFY29yZV9FdmFzICplZSkKICAgICBldmFzX29iamVjdF9yZXNpemUoYmcs
IHcsIGgpOwogCiAgICAgd2VidmlldyA9IGV2YXNfb2JqZWN0X25hbWVfZmluZChlY29yZV9ldmFz
X2dldChlZSksICJicm93c2VyIik7Ci0gICAgZXZhc19vYmplY3RfbW92ZSh3ZWJ2aWV3LCAxMCwg
MTApOwotICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZSh3ZWJ2aWV3LCB3IC0gMjAsIGggLSAyMCk7Cisg
ICAgZXZhc19vYmplY3RfbW92ZSh3ZWJ2aWV3LCA1LCA1ICsgVVJMX0JBUl9IRUlHSFQpOworICAg
IGV2YXNfb2JqZWN0X3Jlc2l6ZSh3ZWJ2aWV3LCB3IC0gMTAsIGggLSBVUkxfQkFSX0hFSUdIVCAt
IDEwKTsKKworICAgIHVybEJhckFyZWEgPSBldmFzX29iamVjdF9uYW1lX2ZpbmQoZWNvcmVfZXZh
c19nZXQoZWUpLCAidXJsQmFyQXJlYSIpOworICAgIGV2YXNfb2JqZWN0X21vdmUodXJsQmFyQXJl
YSwgNSwgMCk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKHVybEJhckFyZWEsIHcgLSAxMCwgVVJM
X0JBUl9IRUlHSFQpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtNDc0LDEwICs0OTIsMjMgQEAgb25f
dmlld3BvcnRfY2hhbmdlZCh2b2lkKiB1c2VyX2RhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2
b2lkKiBldmVudF9pbmZvKQogfQogCiBzdGF0aWMgdm9pZAotb25fbW91c2VfZG93bih2b2lkKiBk
YXRhLCBFdmFzKiBlLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5mbykKK29u
X3VybF9jaGFuZ2VkKHZvaWQgKnVzZXJfZGF0YSwgRXZhc19PYmplY3QgKndlYnZpZXcsIHZvaWQg
KmV2ZW50X2luZm8pCit7CisgICAgRUxhdW5jaGVyICphcHAgPSAoRUxhdW5jaGVyICopdXNlcl9k
YXRhOworICAgIGNvbnN0IGNoYXIgKnVybCA9IGV3a19mcmFtZV91cmlfZ2V0KGV3a192aWV3X2Zy
YW1lX21haW5fZ2V0KHdlYnZpZXcpKTsKKyAgICBldmFzX29iamVjdF90ZXh0YmxvY2tfdGV4dF9t
YXJrdXBfc2V0KGFwcC0+dXJsQmFyVGV4dCwgdXJsKTsKK30KKworc3RhdGljIHZvaWQKK29uX21v
dXNlX2Rvd24odm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKndlYnZpZXcsIHZvaWQg
KmV2ZW50X2luZm8pCiB7CiAgICAgRXZhc19FdmVudF9Nb3VzZV9Eb3duICpldiA9IChFdmFzX0V2
ZW50X01vdXNlX0Rvd24qKSBldmVudF9pbmZvOwotICAgIGlmIChldi0+YnV0dG9uID09IDIpCisg
ICAgRUxhdW5jaGVyICphcHAgPSAoRUxhdW5jaGVyICopZGF0YTsKKworICAgIGlmIChldi0+YnV0
dG9uID09IDEpIHsKKyAgICAgICAgaWYgKGV2YXNfb2JqZWN0X2ZvY3VzX2dldCh3ZWJ2aWV3KSA9
PSBFSU5BX0ZBTFNFKQorICAgICAgICAgICAgZXZhc19vYmplY3RfZm9jdXNfc2V0KHdlYnZpZXcs
IEVJTkFfVFJVRSk7CisgICAgfSBlbHNlIGlmIChldi0+YnV0dG9uID09IDIpCiAgICAgICAgIGV2
YXNfb2JqZWN0X2ZvY3VzX3NldCh3ZWJ2aWV3LCAhZXZhc19vYmplY3RfZm9jdXNfZ2V0KHdlYnZp
ZXcpKTsKIH0KIApAQCAtNjMxLDYgKzY2MiwxMCBAQCBvbl9icm93c2VyX2RlbCh2b2lkICpkYXRh
LCBFdmFzICpldmFzLCBFdmFzX09iamVjdCAqYnJvd3Nlciwgdm9pZCAqZXZlbnQpCiAgICAgZXZh
c19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKGFwcC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19G
T0NVU19JTiwgb25fZm9jdXNfaW4pOwogICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2Rl
bChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfRk9DVVNfT1VULCBvbl9mb2N1c19vdXQpOwog
ICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FM
TEJBQ0tfREVMLCBvbl9icm93c2VyX2RlbCk7CisKKyAgICBldmFzX29iamVjdF9ldmVudF9jYWxs
YmFja19kZWwoYXBwLT51cmxCYXJBcmVhLCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBvbl91cmxi
YXJfa2V5X2Rvd24pOworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChhcHAtPnVy
bEJhckFyZWEsIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfRE9XTiwgb25fdXJsYmFyX21vdXNlX2Rvd24p
OworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChhcHAtPnVybEJhckFyZWEsIEVW
QVNfQ0FMTEJBQ0tfRk9DVVNfT1VULCBvbl91cmxiYXJfZm9jdXNfb3V0KTsKIH0KIAogc3RhdGlj
IHZvaWQKQEAgLTY2MCw2ICs2OTUsMTY3IEBAIHF1aXQoRWluYV9Cb29sIHN1Y2Nlc3MsIGNvbnN0
IGNoYXIgKm1zZykKICAgICByZXR1cm4gRVhJVF9TVUNDRVNTOwogfQogCitzdGF0aWMgdm9pZAor
b25fdXJsYmFyX2tleV9kb3duKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmos
IHZvaWQgKmV2ZW50X2luZm8pCit7CisgICAgRXZhc19FdmVudF9LZXlfRG93biAqZXYgPSAoRXZh
c19FdmVudF9LZXlfRG93biopIGV2ZW50X2luZm87CisgICAgRUxhdW5jaGVyICphcHAgPSBkYXRh
OworCisgICAgaWYgKCFldiB8fCAhYXBwIHx8ICFldi0+a2V5KQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoIXN0cmNtcChldi0+a2V5LCAiRXNjYXBlIikpIHsKKyAgICAgICAgY2xvc2VXaW5k
b3coYXBwLT5lZSk7CisgICAgfSBlbHNlIGlmICghc3RyY21wKGV2LT5rZXksICJSZXR1cm4iKSkg
eworICAgICAgICBjb25zdCBjaGFyICp1cmwgPSBldmFzX29iamVjdF90ZXh0YmxvY2tfdGV4dF9t
YXJrdXBfZ2V0KGFwcC0+dXJsQmFyVGV4dCk7CisgICAgICAgIGlmICh1cmwgJiYgc3RybGVuKHVy
bCkpIHsKKyAgICAgICAgICAgIGNoYXIgKnRva2VuID0gc3Ryc3RyKHVybCwgIjovLyIpOworICAg
ICAgICAgICAgaWYgKCF0b2tlbikgeworICAgICAgICAgICAgICAgIGNoYXIgZnVsbF91cmxbNDA5
Nl0gPSB7MCwgfTsKKyAgICAgICAgICAgICAgICBzbnByaW50ZihmdWxsX3VybCwgNDA5NiwgImh0
dHA6Ly8lcyIsIHVybCk7CisgICAgICAgICAgICAgICAgZXdrX3ZpZXdfdXJpX3NldChhcHAtPmJy
b3dzZXIsIGZ1bGxfdXJsKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGV3
a192aWV3X3VyaV9zZXQoYXBwLT5icm93c2VyLCB1cmwpOworCisgICAgICAgICAgICBldmFzX29i
amVjdF9oaWRlKGFwcC0+dXJsQmFyVGV4dFNlbGVjdGVkUmVjdCk7CisgICAgICAgICAgICBldmFz
X29iamVjdF90ZXh0YmxvY2tfc3R5bGVfc2V0KGFwcC0+dXJsQmFyVGV4dCwgYXBwLT5ub3JtYWxT
dHlsZSk7CisKKyAgICAgICAgICAgIGFwcC0+aXNTZWxlY3RlZEFsbCA9IEVJTkFfRkFMU0U7CisK
KyAgICAgICAgICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldChhcHAtPmJyb3dzZXIsIEVJTkFfVFJV
RSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKChldi0+c3RyaW5nICYmIHN0cmxlbihldi0+
c3RyaW5nKSA9PSAxKSB8fCAhc3RyY21wKGV2LT5rZXksICJCYWNrU3BhY2UiKSkgeworICAgICAg
ICBpZiAoYXBwLT5pc1NlbGVjdGVkQWxsKSB7CisgICAgICAgICAgICBldmFzX29iamVjdF90ZXh0
YmxvY2tfdGV4dF9tYXJrdXBfc2V0KGFwcC0+dXJsQmFyVGV4dCwgIiIpOworCisgICAgICAgICAg
ICBldmFzX29iamVjdF9oaWRlKGFwcC0+dXJsQmFyVGV4dFNlbGVjdGVkUmVjdCk7CisgICAgICAg
ICAgICBldmFzX29iamVjdF90ZXh0YmxvY2tfc3R5bGVfc2V0KGFwcC0+dXJsQmFyVGV4dCwgYXBw
LT5ub3JtYWxTdHlsZSk7CisKKyAgICAgICAgICAgIGFwcC0+aXNTZWxlY3RlZEFsbCA9IEVJTkFf
RkFMU0U7CisgICAgICAgIH0KKworICAgICAgICBldmFzX3RleHRibG9ja19jdXJzb3JfcG9zX3Nl
dChhcHAtPmN1cnNvciwgMCk7CisgICAgICAgIGludCB0ZXh0X2NvdW50ID0gMDsKKyAgICAgICAg
d2hpbGUgKGV2YXNfdGV4dGJsb2NrX2N1cnNvcl9jaGFyX25leHQoYXBwLT5jdXJzb3IpID09IEVJ
TkFfVFJVRSkKKyAgICAgICAgICAgIHRleHRfY291bnQrKzsKKworICAgICAgICBpZiAoIXN0cmNt
cChldi0+a2V5LCAiQmFja1NwYWNlIikpIHsKKyAgICAgICAgICAgIGV2YXNfdGV4dGJsb2NrX2N1
cnNvcl9wb3Nfc2V0KGFwcC0+Y3Vyc29yLCB0ZXh0X2NvdW50IC0gMSk7CisgICAgICAgICAgICBl
dmFzX3RleHRibG9ja19jdXJzb3JfY2hhcl9kZWxldGUoYXBwLT5jdXJzb3IpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgZXZhc190ZXh0YmxvY2tfY3Vyc29yX3Bvc19zZXQoYXBwLT5j
dXJzb3IsIHRleHRfY291bnQpOworICAgICAgICAgICAgZXZhc190ZXh0YmxvY2tfY3Vyc29yX3Rl
eHRfYXBwZW5kKGFwcC0+Y3Vyc29yLCBldi0+c3RyaW5nKTsKKyAgICAgICAgICAgIGV2YXNfdGV4
dGJsb2NrX2N1cnNvcl9jaGFyX25leHQoYXBwLT5jdXJzb3IpOworICAgICAgICB9CisKKyAgICAg
ICAgaW50IHgsIHksIHcsIGg7CisgICAgICAgIGV2YXNfdGV4dGJsb2NrX2N1cnNvcl9nZW9tZXRy
eV9nZXQoYXBwLT5jdXJzb3IsICZ4LCAmeSwgJncsICZoLCBOVUxMLCBFVkFTX1RFWFRCTE9DS19D
VVJTT1JfQkVGT1JFKTsKKworICAgICAgICBldmFzX29iamVjdF9tb3ZlKGFwcC0+Y3Vyc29yQmFy
LCB4ICsgMTAsIDMpOworICAgICAgICBldmFzX29iamVjdF9zaG93KGFwcC0+Y3Vyc29yQmFyKTsK
KyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCitvbl91cmxiYXJfbW91c2VfZG93bih2b2lkKiBkYXRh
LCBFdmFzKiBlLCBFdmFzX09iamVjdCogb2JqLCB2b2lkKiBldmVudF9pbmZvKQoreworICAgIEV2
YXNfRXZlbnRfTW91c2VfRG93biAqZXYgPSAoRXZhc19FdmVudF9Nb3VzZV9Eb3duKikgZXZlbnRf
aW5mbzsKKyAgICBFTGF1bmNoZXIgKmFwcCA9IGRhdGE7CisKKyAgICBpZiAoIWV2IHx8ICFhcHAp
CisgICAgICAgIHJldHVybjsKKworICAgIGluZm8oIlslczolZF0gZXYtPmJ1dHRvbj0lZFxuIiwg
X19mdW5jX18sIF9fTElORV9fLCBldi0+YnV0dG9uKTsKKyAgICBpZiAoZXYtPmJ1dHRvbiA9PSAx
KSB7CisgICAgICAgIGlmIChldmFzX29iamVjdF9mb2N1c19nZXQob2JqKSA9PSBFSU5BX0ZBTFNF
KSB7CisgICAgICAgICAgICBldmFzX3RleHRibG9ja19jdXJzb3JfcG9zX3NldChhcHAtPmN1cnNv
ciwgMCk7CisgICAgICAgICAgICBpbnQgdGV4dF9jb3VudCA9IDA7CisgICAgICAgICAgICB3aGls
ZSAoZXZhc190ZXh0YmxvY2tfY3Vyc29yX2NoYXJfbmV4dChhcHAtPmN1cnNvcikgPT0gRUlOQV9U
UlVFKQorICAgICAgICAgICAgICAgIHRleHRfY291bnQrKzsKKworICAgICAgICAgICAgZXZhc190
ZXh0YmxvY2tfY3Vyc29yX3Bvc19zZXQoYXBwLT5jdXJzb3IsIHRleHRfY291bnQpOworICAgICAg
ICAgICAgaW50IHgsIHksIHcsIGg7CisgICAgICAgICAgICBldmFzX3RleHRibG9ja19jdXJzb3Jf
bGluZV9nZW9tZXRyeV9nZXQoYXBwLT5jdXJzb3IsIE5VTEwsIE5VTEwsICZ3LCAmaCk7CisgICAg
ICAgICAgICBpbmZvKCJbJXM6JWRdIHRleHRfY291bnQ9JWQsIHc9JWQsIGg9JWRcbiIsIF9fZnVu
Y19fLCBfX0xJTkVfXywgdGV4dF9jb3VudCwgdywgaCk7CisKKyAgICAgICAgICAgIC8vIHNob3cg
c2VsZWN0IGFsbCBiZyByZWN0LgorICAgICAgICAgICAgZXZhc19vYmplY3RfZ2VvbWV0cnlfZ2V0
KGFwcC0+dXJsQmFyVGV4dCwgJngsICZ5LCBOVUxMLCBOVUxMKTsKKyAgICAgICAgICAgIGV2YXNf
b2JqZWN0X21vdmUoYXBwLT51cmxCYXJUZXh0U2VsZWN0ZWRSZWN0LCB4LCB5KTsKKyAgICAgICAg
ICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShhcHAtPnVybEJhclRleHRTZWxlY3RlZFJlY3QsIHcsIGgp
OworICAgICAgICAgICAgZXZhc19vYmplY3Rfc2hvdyhhcHAtPnVybEJhclRleHRTZWxlY3RlZFJl
Y3QpOworCisgICAgICAgICAgICBldmFzX29iamVjdF90ZXh0YmxvY2tfc3R5bGVfc2V0KGFwcC0+
dXJsQmFyVGV4dCwgYXBwLT5zZWxlY3RlZFN0eWxlKTsKKworICAgICAgICAgICAgYXBwLT5pc1Nl
bGVjdGVkQWxsID0gRUlOQV9UUlVFOworCisgICAgICAgICAgICBldmFzX29iamVjdF9mb2N1c19z
ZXQob2JqLCBFSU5BX1RSVUUpOworICAgICAgICB9CisgICAgfQorfQorCitzdGF0aWMgdm9pZAor
b25fdXJsYmFyX2ZvY3VzX291dCh2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqb2Jq
LCB2b2lkICpldmVudF9pbmZvKQoreworICAgIEVMYXVuY2hlciAqYXBwID0gZGF0YTsKKyAgICBp
ZiAoIWFwcCkKKyAgICAgICAgcmV0dXJuOworICAgIGV2YXNfb2JqZWN0X2hpZGUoYXBwLT51cmxC
YXJUZXh0U2VsZWN0ZWRSZWN0KTsKKyAgICBldmFzX29iamVjdF9oaWRlKGFwcC0+Y3Vyc29yQmFy
KTsKKworICAgIGV2YXNfb2JqZWN0X3RleHRibG9ja19zdHlsZV9zZXQoYXBwLT51cmxCYXJUZXh0
LCBhcHAtPm5vcm1hbFN0eWxlKTsKKworICAgIGFwcC0+aXNTZWxlY3RlZEFsbCA9IEVJTkFfRkFM
U0U7Cit9CisKK3N0YXRpYyBpbnQKK2NyZWF0ZVVybEJhcigpCit7CisgICAgRUxhdW5jaGVyICph
cHAgPSAoRUxhdW5jaGVyKikgZWluYV9saXN0X2RhdGFfZ2V0KHdpbmRvd3MpOworICAgIGlmICgh
YXBwKQorICAgICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6IGNvdWxkIG5vdCBn
ZXQgRVdlYkxhdW5jaGVyIHdpbmRvd1xuIik7CisKKyAgICBhcHAtPnVybEJhckFyZWEgPSBldmFz
X29iamVjdF9yZWN0YW5nbGVfYWRkKGFwcC0+ZXZhcyk7CisgICAgZXZhc19vYmplY3RfbmFtZV9z
ZXQoYXBwLT51cmxCYXJBcmVhLCAidXJsQmFyQXJlYSIpOworICAgIGV2YXNfb2JqZWN0X2NvbG9y
X3NldChhcHAtPnVybEJhckFyZWEsIDI1NSwgMjU1LCAyNTUsIDI1NSk7CisgICAgZXZhc19vYmpl
Y3RfbW92ZShhcHAtPnVybEJhckFyZWEsIDUsIDApOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShh
cHAtPnVybEJhckFyZWEsIERFRkFVTFRfV0lEVEggLSAxMCwgVVJMX0JBUl9IRUlHSFQpOworICAg
IGV2YXNfb2JqZWN0X3Nob3coYXBwLT51cmxCYXJBcmVhKTsKKworICAgIGV2YXNfb2JqZWN0X2V2
ZW50X2NhbGxiYWNrX2FkZChhcHAtPnVybEJhckFyZWEsIEVWQVNfQ0FMTEJBQ0tfS0VZX0RPV04s
IG9uX3VybGJhcl9rZXlfZG93biwgYXBwKTsKKyAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFj
a19hZGQoYXBwLT51cmxCYXJBcmVhLCBFVkFTX0NBTExCQUNLX01PVVNFX0RPV04sIG9uX3VybGJh
cl9tb3VzZV9kb3duLCBhcHApOworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChh
cHAtPnVybEJhckFyZWEsIEVWQVNfQ0FMTEJBQ0tfRk9DVVNfT1VULCBvbl91cmxiYXJfZm9jdXNf
b3V0LCBhcHApOworCisgICAgYXBwLT51cmxCYXJUZXh0U2VsZWN0ZWRSZWN0ID0gZXZhc19vYmpl
Y3RfcmVjdGFuZ2xlX2FkZChhcHAtPmV2YXMpOworICAgIGV2YXNfb2JqZWN0X25hbWVfc2V0KGFw
cC0+dXJsQmFyVGV4dFNlbGVjdGVkUmVjdCwgInVybEJhclRleHRTZWxlY3RlZFJlY3QiKTsKKyAg
ICBldmFzX29iamVjdF9jb2xvcl9zZXQoYXBwLT51cmxCYXJUZXh0U2VsZWN0ZWRSZWN0LCAwLCAx
MjgsIDI1NSwgMjU1KTsKKyAgICBldmFzX29iamVjdF9yZXBlYXRfZXZlbnRzX3NldChhcHAtPnVy
bEJhclRleHRTZWxlY3RlZFJlY3QsIEVJTkFfVFJVRSk7CisKKyAgICBhcHAtPmN1cnNvckJhciA9
IGV2YXNfb2JqZWN0X3JlY3RhbmdsZV9hZGQoYXBwLT5ldmFzKTsKKyAgICBldmFzX29iamVjdF9u
YW1lX3NldChhcHAtPmN1cnNvckJhciwgImN1cnNvckJhciIpOworICAgIGV2YXNfb2JqZWN0X2Nv
bG9yX3NldChhcHAtPmN1cnNvckJhciwgMCwgMCwgMCwgMjU1KTsKKyAgICBldmFzX29iamVjdF9y
ZXNpemUoYXBwLT5jdXJzb3JCYXIsIDEsIFVSTF9CQVJfSEVJR0hUIC0gNik7CisKKyAgICBhcHAt
Pm5vcm1hbFN0eWxlID0gZXZhc190ZXh0YmxvY2tfc3R5bGVfbmV3KCk7CisgICAgZXZhc190ZXh0
YmxvY2tfc3R5bGVfc2V0KGFwcC0+bm9ybWFsU3R5bGUsICJERUZBVUxUPSdmb250PUZPTlRfQ09O
VEVOVCBmb250X3NpemU9MTQgY29sb3I9IzAwMDAwMGZmIHZhbGlnbj1taWRkbGUgYWxpZ249bGVm
dCB3cmFwPXdvcmQnIik7CisKKyAgICBhcHAtPnNlbGVjdGVkU3R5bGUgPSBldmFzX3RleHRibG9j
a19zdHlsZV9uZXcoKTsKKyAgICBldmFzX3RleHRibG9ja19zdHlsZV9zZXQoYXBwLT5zZWxlY3Rl
ZFN0eWxlLCAiREVGQVVMVD0nZm9udD1GT05UX0NPTlRFTlQgZm9udF9zaXplPTE0IGNvbG9yPSNm
ZmZmZmZmZiB2YWxpZ249bWlkZGxlIGFsaWduPWxlZnQgd3JhcD13b3JkJyIpOworCisgICAgYXBw
LT51cmxCYXJUZXh0ID0gZXZhc19vYmplY3RfdGV4dGJsb2NrX2FkZChhcHAtPmV2YXMpOworICAg
IGV2YXNfb2JqZWN0X3RleHRibG9ja19zdHlsZV9zZXQoYXBwLT51cmxCYXJUZXh0LCBhcHAtPm5v
cm1hbFN0eWxlKTsKKworICAgIGV2YXNfb2JqZWN0X25hbWVfc2V0KGFwcC0+dXJsQmFyVGV4dCwg
InVybEJhclRleHQiKTsKKyAgICBldmFzX29iamVjdF9tb3ZlKGFwcC0+dXJsQmFyVGV4dCwgMTAs
IDMpOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShhcHAtPnVybEJhclRleHQsIERFRkFVTFRfV0lE
VEggLSAyMCwgVVJMX0JBUl9IRUlHSFQgLSA2KTsKKyAgICBldmFzX29iamVjdF90ZXh0YmxvY2tf
dGV4dF9tYXJrdXBfc2V0KGFwcC0+dXJsQmFyVGV4dCwgIiIpOworICAgIGV2YXNfb2JqZWN0X3Jl
cGVhdF9ldmVudHNfc2V0KGFwcC0+dXJsQmFyVGV4dCwgRUlOQV9UUlVFKTsKKyAgICBldmFzX29i
amVjdF9zaG93KGFwcC0+dXJsQmFyVGV4dCk7CisKKyAgICBhcHAtPmN1cnNvciA9IGV2YXNfb2Jq
ZWN0X3RleHRibG9ja19jdXJzb3JfbmV3KGFwcC0+dXJsQmFyVGV4dCk7CisgICAgZXZhc190ZXh0
YmxvY2tfY3Vyc29yX3Bvc19zZXQoYXBwLT5jdXJzb3IsIDApOworCisgICAgcmV0dXJuIDE7Cit9
CiBzdGF0aWMgaW50CiBicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAq
dGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9SZWN0YW5nbGUgZ2VvbWV0cnksIGNv
bnN0IGNoYXIgKmVuZ2luZSwgY29uc3QgY2hhciAqYmFja2luZ1N0b3JlLCB1bnNpZ25lZCBjaGFy
IGlzRmxhdHRlbmluZywgdW5zaWduZWQgY2hhciBpc0Z1bGxzY3JlZW4sIGNvbnN0IGNoYXIgKmRh
dGFiYXNlUGF0aCkKIHsKQEAgLTY3Miw3ICs4NjgsNyBAQCBicm93c2VyQ3JlYXRlKGNvbnN0IGNo
YXIgKnVybCwgY29uc3QgY2hhciAqdGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9S
ZQogICAgIGlmICghYXBwKQogICAgICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6
IGNvdWxkIG5vdCBjcmVhdGUgRVdlYkxhdW5jaGVyIHdpbmRvd1xuIik7CiAKLSAgICBhcHAtPmVl
ID0gZWNvcmVfZXZhc19uZXcoZW5naW5lLCAwLCAwLCBnZW9tZXRyeS53LCBnZW9tZXRyeS5oLCBO
VUxMKTsKKyAgICBhcHAtPmVlID0gZWNvcmVfZXZhc19uZXcoZW5naW5lLCAwLCAwLCBnZW9tZXRy
eS53LCBnZW9tZXRyeS5oICsgVVJMX0JBUl9IRUlHSFQsIE5VTEwpOwogCiAgICAgaWYgKCFhcHAt
PmVlKQogICAgICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6IGNvdWxkIG5vdCBj
b25zdHJ1Y3QgZXZhcy1lY29yZVxuIik7CkBAIC02OTMsMTIgKzg4OSwxMyBAQCBicm93c2VyQ3Jl
YXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqdGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJB
Z2VudCwgRWluYV9SZQogICAgIGFwcC0+dXNlckFnZW50ID0gdXNlckFnZW50OwogICAgIGFwcC0+
YmFja2luZ1N0b3JlID0gYmFja2luZ1N0b3JlOwogICAgIGFwcC0+aXNGbGF0dGVuaW5nID0gaXNG
bGF0dGVuaW5nOworICAgIGFwcC0+aXNTZWxlY3RlZEFsbCA9IEVJTkFfRkFMU0U7CiAKICAgICBh
cHAtPmJnID0gZXZhc19vYmplY3RfcmVjdGFuZ2xlX2FkZChhcHAtPmV2YXMpOwogICAgIGV2YXNf
b2JqZWN0X25hbWVfc2V0KGFwcC0+YmcsICJiZyIpOwotICAgIGV2YXNfb2JqZWN0X2NvbG9yX3Nl
dChhcHAtPmJnLCAyNTUsIDAsIDI1NSwgMjU1KTsKKyAgICBldmFzX29iamVjdF9jb2xvcl9zZXQo
YXBwLT5iZywgNjAsIDc1LCA5OCwgMjU1KTsKICAgICBldmFzX29iamVjdF9tb3ZlKGFwcC0+Ymcs
IDAsIDApOwotICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShhcHAtPmJnLCBnZW9tZXRyeS53LCBnZW9t
ZXRyeS5oKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUoYXBwLT5iZywgZ2VvbWV0cnkudywgZ2Vv
bWV0cnkuaCArIFVSTF9CQVJfSEVJR0hUKTsKICAgICBldmFzX29iamVjdF9sYXllcl9zZXQoYXBw
LT5iZywgRVZBU19MQVlFUl9NSU4pOwogICAgIGV2YXNfb2JqZWN0X3Nob3coYXBwLT5iZyk7CiAK
QEAgLTczNSw2ICs5MzIsOCBAQCBicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3Qg
Y2hhciAqdGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9SZQogICAgIGV2YXNfb2Jq
ZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJ0b29sdGlwLHRleHQsc2V0Iiwg
b25fdG9vbHRpcF90ZXh0X3NldCwgYXBwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFj
a19hZGQoYXBwLT5icm93c2VyLCAiaW5wdXRtZXRob2QsY2hhbmdlZCIsIG9uX2lucHV0bWV0aG9k
X2NoYW5nZWQsIGFwcCk7CiAKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBw
LT5icm93c2VyLCAidXJpLGNoYW5nZWQiLCBvbl91cmxfY2hhbmdlZCwgYXBwKTsKKwogLyogICAg
IGV3a19jYWxsYmFja19yZXNpemVfcmVxdWVzdGVkX2FkZChhcHAtPmJyb3dzZXIsIG9uX3Jlc2l6
ZV9yZXF1ZXN0ZWQsIGFwcC0+ZWUpOyAqLwogCiAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJh
Y2tfYWRkKGFwcC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19LRVlfRE9XTiwgb25fa2V5X2Rvd24s
IGFwcCk7CkBAIC03NDMsMTEgKzk0MiwxOCBAQCBicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVy
bCwgY29uc3QgY2hhciAqdGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9SZQogICAg
IGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJB
Q0tfRk9DVVNfT1VULCBvbl9mb2N1c19vdXQsIGFwcCk7CiAgICAgZXZhc19vYmplY3RfZXZlbnRf
Y2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19ERUwsIG9uX2Jyb3dzZXJf
ZGVsLCBhcHApOwogCi0gICAgZXZhc19vYmplY3RfbW92ZShhcHAtPmJyb3dzZXIsIDEwLCAxMCk7
Ci0gICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YnJvd3NlciwgZ2VvbWV0cnkudyAtIDIwLCBn
ZW9tZXRyeS5oIC0gMjApOworICAgIGV2YXNfb2JqZWN0X21vdmUoYXBwLT5icm93c2VyLCA1LCA1
ICsgVVJMX0JBUl9IRUlHSFQpOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShhcHAtPmJyb3dzZXIs
IGdlb21ldHJ5LncgLSAxMCwgZ2VvbWV0cnkuaCAtIDEwKTsKIAotICAgIGlmICh1cmwgJiYgKHVy
bFswXSAhPSAnXDAnKSkKLSAgICAgICAgZXdrX3ZpZXdfdXJpX3NldChhcHAtPmJyb3dzZXIsIHVy
bCk7CisgICAgaWYgKHVybCAmJiAodXJsWzBdICE9ICdcMCcpKSB7CisgICAgICAgIGNoYXIgKnRv
a2VuID0gc3Ryc3RyKHVybCwgIjovLyIpOworICAgICAgICBpZiAoIXRva2VuKSB7CisgICAgICAg
ICAgICBjaGFyIGZ1bGxfdXJsWzQwOTZdID0gezAsIH07CisgICAgICAgICAgICBzbnByaW50Zihm
dWxsX3VybCwgNDA5NiwgImh0dHA6Ly8lcyIsIHVybCk7CisgICAgICAgICAgICBld2tfdmlld191
cmlfc2V0KGFwcC0+YnJvd3NlciwgZnVsbF91cmwpOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIGV3a192aWV3X3VyaV9zZXQoYXBwLT5icm93c2VyLCB1cmwpOworICAgIH0KIAogICAgIGV2
YXNfb2JqZWN0X3Nob3coYXBwLT5icm93c2VyKTsKICAgICBlY29yZV9ldmFzX3Nob3coYXBwLT5l
ZSk7CkBAIC05MDEsNiArMTEwNyw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAg
ICAgICAgZXdrX3NldHRpbmdzX3Byb3h5X3VyaV9zZXQocHJveHlVcmkpOwogCiAgICAgYnJvd3Nl
ckNyZWF0ZSh1cmwsIHRoZW1lUGF0aCwgdXNlckFnZW50LCBnZW9tZXRyeSwgZW5naW5lLCBiYWNr
aW5nU3RvcmUsIGlzRmxhdHRlbmluZywgaXNGdWxsc2NyZWVuLCBwYXRoKTsKKyAgICBjcmVhdGVV
cmxCYXIoKTsKICAgICBlY29yZV9ldmVudF9oYW5kbGVyX2FkZChFQ09SRV9FVkVOVF9TSUdOQUxf
RVhJVCwgbWFpbl9zaWduYWxfZXhpdCwgJndpbmRvd3MpOwogCiAgICAgZWNvcmVfbWFpbl9sb29w
X2JlZ2luKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>99778</attachid>
            <date>2011-07-05 19:06:33 -0700</date>
            <delta_ts>2011-07-05 19:06:33 -0700</delta_ts>
            <desc>Snapshot of this patch.</desc>
            <filename>201107011445308_WOSA6PXJ.png</filename>
            <type>image/x-png</type>
            <size>47235</size>
            <attacher name="Hyerim Bae">hyerim.bae</attacher>
            
              <data encoding="base64">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
bru3HxhPfPweNDdvGhMSDI7/EhPdOkccPzYmU+X9+alTusOHtUT0wgup+fkWx9XfeuutkpIS90vr
5qf07g5cYqKTekhIMGRnO79auVn4+3ia/PnqrdXRlL355p3hw2/J/7RagYgyM81Tprh1OXAsgNEo
nT+vrzGbm1uT1bZa7prRKCUmGsrKRBelEkXRfrWqGHI2b5YLWq12+vTpO3bsKCsra9KkyeLFi594
4onaFNu5Q4cOjRw58qmnnlq5cmWNmX/77beRI0fyfEXJzWbzhAkTPvvsMyIqKCiwa8Fbt25deHh4
z549iejOnTubN29ev369TqcrLy93s2y3b5uWL8/JzrY88YT/mDFB1vRjx8qsf+/fX5qZWXkmq9XM
6NFBjtkOHCi9c6fKCa9UMvI2bbPV6J13Mlu39goM5O3SY2PFxx/3lf/OyjIPHZrs68t5e7Pnz+u/
/DKuQweNXMjjx8vsjvnhw9otWwr+/e8G1hS9Xrxyxd0qcv99ffVV4blz9qccEYWG8m+8Ee7m7r7+
urB7d9+mTdVu5s/Pt3TteuPkySYBAZybq8hWrMjV6cS33qoo2FNPpbz0UnD37r5EdOxYZR3Wqqpd
cL9yDh3SHj9eNnduhG2ibZFqtGxZzvLlOUaj5OXFzp8f8cILwe6u6Uxw8KULF5pGRyvj4q5cvtzM
z6+Gej50SHv7tsn6kuNo7Ng68t92H5i5czPbtvUeOjTANnHXruITJ3QffBApvzxxoiwx0WhdyrL0
7LPOt2a1b19pcbGTy0xAAN+vn5/rwv9l5s7NLC938g0eEMC9/Xblof/nPzOLigS7PKJIly/rMzJa
yS/Xrs1bsiTHutRolI4daxwbqyRnH5t27a5/8klM164+8lKLRere3ffECecPUl25csXpLfeSJTlf
fJEvSaRQMB9+GNm/v7+cbre7S5fKP/kkV68Xx46t07dvZc3f3ffGnDlOaiw93fTooz6rV8e4WXjr
h5nu9Wli5eZpUl0JPXc05ZC0USNVdLRCTjl9Wu/nxwYG8levVkbttSrAnTump55KuXGjuW2ibbaZ
MzN27iyWt6NSMUTUv7//ypXRTrfmolqIaNmynF9/tW9rIKIePXxnzAizvlyzJk+nc3JmhYby1q8O
Ilq9Ou/jj3Pq11clJRmHDAlYvDhKnhjLrlTujM2qXZg1dOjQX375pVmzZo0bN/7xxx+HDh16/Pjx
Dh06uL8FOydOnFi0aFHbtm0LCgq0WicV5Gj48OHW+DEnJycmJqZz587WpdYpwohIkqQrV67YTmhh
u9QdhYWWPn2SZs8Or1dPNX9+ZkqKcc6cCMdsixdnN2/uFRFR8dFcujTHGmbZKioS5Puq99/PfuON
MJ5n1OralcfqtdfC4uNVLjJMn54+dmydl18OIaKLF/VDh9766qt6776bRUSOwXdurvnPNLq4/772
7Clp1Ej90EPeduk+PndZD+64cqU8IcFw544pIMCrViuaTJLtyVFeLvK8k5OlVlXtgvuVk5Njtg1T
auvDD7N37Cg6dapJVJTy0qXy//u/pJgYZa9edx9e7N4dHxqqIKL8fIs7b3nFitzISIV8JSMip7Uq
KyqyiKL9R1OvFw2Gyt2UlAjW5gqzWfr00zzb70qnzp7VzZ2b6Zi+cGHdByfM6tLFx7EdRasV5s3L
tA2zNm+u57ju778bJk1Ks7586aWQl14Kkf/Ozjb37JkoXxSdys+31PaGxM6qVbmHDpWeP99UrWYT
Egx9+yYdPdo4JsZ+j7duGYcPT/7ww6igIO6NN+7k5VmeecbJ1ya5fWp88019x3WXLMkpK7MPQ12w
fpjv7WmSmWl+772s6dPDGjZUuXmaVMdzR/M//9GdPFklArt61RAZqXjqqSrHxbEA27cXHjqkJWff
eMnJRp1OkCRiGJIkEgT7j/TSpVFLl0aZzZKv74WiojZeXnd/LRgzJmjAAH+7xNOndfv3V5nUyt+f
Uyjsv3Oys822Xx1Hjmg/+yzvwoVmGg1rMklPPpm8cWP+3cXZcpjlbu7Dhw//8ssvERERZ86c8fb2
XrZs2cyZM1etWvXll18S0e3bt5cuXZqcnNywYcMZM2ZER0dXl3j06NGNGzdmZmaGhIRcvny5devW
/v6VVZOZmblkyZLExMT4+PiZM2fKqzglSdKUKVNCQkIOHz68atUqIrL2Hsq+//7727dvp6WlnT59
Wo4FTSZTmzZtMjIyOnbs6M5b3rChYOTIQLnqt2+v36zZtTffDHd6VXj++Tpt2lR8CyxdmuOYgYhG
jgyU/1i4MOvll0OCguybo9x37pzesSXc359r2bIikjhzRr9iRUXVtWnjzbIUGanYvTueiAICLtqt
uHNn8fnz+rIy0fZrKzfXvHFjQVycUm6/caFW76tDB82fv5JptaLTRu/gYPtdm83SO+9kvvFG+IQJ
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
MQsAAEAKYhYAAIAUxCwAAAApiFkAAABSELMAAACkIGYBAABIQcwCAACQgpgFAAAgBTELAABACmIW
AACAFMQsAAAAKYhZAAAAUhCzAAAApCBmAQAASEHMAgAAkIKYBQAAIAUxCwAAQApiFgAAgBTELAAA
ACmIWQAAAFIQswAAAKQgZgEAAEhBzAIAAJCCmAUAACAFMQsAAEAKYhYAAIAUxCwAAAApiFkAAABS
ELMAAACkIGYBAABIQcwCAACQgpgFAAAgBTELAABACmIWAACAFMQsAAAAKYhZAAAAUhCzAAAApCBm
AQAASEHMAgAAkIKYBQAAIAUxCwAAQApiFgAAgBTELAAAACmIWQAAAFIQswAAAKQgZgEAAEhBzAIA
AJCCmAUAACAFMQsAAEAKYhYAAIAUxCwAAAApiFkAAABSELMAAACkIGYBAABIQcwCAACQgpgFAAAg
BTELAABACmIWAACAFMQsAAAAKYhZAAAAUhCzAAAApCBmAQAASEHMAgAAkIKYBQAAIAUxCwAAQApi
FgAAgBTELAAAACmIWQAAAFIQswAAAKQgZgEAAEhBzAIAAJCCmAUAACAFMQsAAEAKYhYAAIAUxCwA
AAApiFkAAABSELMAAACkIGYBAABIQcwCAACQgpgFAAAgBTELAABACmIWAACAFMQsAAAAKYhZAAAA
UhCzAAAApCBmAQAASEHMAgAAkIKYBQAAIAUxCwAAQApiFgAAgBTELAAAACmIWQAAAFIQswAAAKQg
ZgEAAEhBzAIAAJCCmAUAACAFMQsAAEAKYhYAAIAUxCwAAAApiFkAAABSELMAAACkIGYBAABIQcwC
AACQgpgFAAAgBTELAABACmIWAACAFMQsAAAAKYhZAAAAUhCzAAAApCBmAQAASEHMAgAAkIKYBQAA
IAUxCwAAQApiFgAAgBTELAAAACmIWQAAAFIQswAAAKQgZgEAAEhBzAIAAJCCmAUAACAFMQsAAEAK
YhYAAIAUxCwAAAApiFkAAABSELMAAACkIGYBAABIcebErPISx2N3HDjVW9ENtq5v2LCyTgjxp9/l
1lY52554/vz5Vqu1I4t1Ob3dsHHd7eZLd3m7abt6elX8b+r4q+azZ2vTgd0tQog//S63rvq4N4jD
7snLtbY0uf0LO3iMdeOh2C6323toX4v/v3Znqal0fv5hmejYaUEIcfOlu7phQ3EaaOOAD6kLR3IH
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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100443</attachid>
            <date>2011-07-12 00:01:46 -0700</date>
            <delta_ts>2011-07-12 18:05:44 -0700</delta_ts>
            <desc>Another patch using edje.</desc>
            <filename>patch-[20110708]-[hyerim.bae@samsung.com]-[EWebLauncherurlbar].patch</filename>
            <type>text/plain</type>
            <size>19898</size>
            <attacher name="Hyerim Bae">hyerim.bae</attacher>
            
              <data encoding="base64">Y29tbWl0IDUxMTFiY2FhYTk5NzlhM2Y4Mzc0YzVkZWNlOTgyNGQ3MTM0MDAyNGYKQXV0aG9yOiBI
eWVyaW0gQmFlIDxoeWVyaW0uYmFlQHNhbXN1bmcuY29tPgpEYXRlOiAgIE1vbiBKdWwgMTEgMTU6
MTg6NTYgMjAxMSArMDkwMAoKICAgIHBhdGNoLVsyMDExMDcwOF0tW2h5ZXJpbS5iYWVAc2Ftc3Vu
Zy5jb21dLVtFV2ViTGF1bmNoZXJ1cmxiYXJdLnBhdGNoCgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ01h
a2VMaXN0c0VmbC50eHQgYi9Ub29scy9DTWFrZUxpc3RzRWZsLnR4dApvbGQgbW9kZSAxMDA2NDQK
bmV3IG1vZGUgMTAwNzU1CmluZGV4IDI0ZWY4NWMuLjUyZmRiMjUKLS0tIGEvVG9vbHMvQ01ha2VM
aXN0c0VmbC50eHQKKysrIGIvVG9vbHMvQ01ha2VMaXN0c0VmbC50eHQKQEAgLTQ5LDYgKzQ5LDEw
IEBAIElGIChXVEZfVVNFX0NVUkwpCiAgIExJU1QoQVBQRU5EIEVXZWJMYXVuY2hlcl9MSU5LX0ZM
QUdTICR7Q1VSTF9MREZMQUdTfSkKIEVORElGICgpCiAKKworU0VUKEVOVFJZX0VESl9QQVRIICIk
e0NNQUtFX0JJTkFSWV9ESVJ9L1Byb2dyYW1zL2VudHJ5LmVkaiIpCitBRERfREVGSU5JVElPTlMo
LURFTlRSWV9FREpfUEFUSD1cIiR7RU5UUllfRURKX1BBVEh9XCIpCisKICMgT3ZlcnJpZGUgZGF0
YSBkaXJlY3RvcnkuIFdlIGFsd2F5cyB3YW50IHRvIGdldCBhIGZyZXNoIHRoZW1lLgogUkVNT1ZF
X0RFRklOSVRJT05TKC1EREFUQV9ESVI9XCIke0RBVEFfRElSfVwiKQogQUREX0RFRklOSVRJT05T
KC1EREFUQV9ESVI9XCIke0JVSUxEX0RBVEFfRElSfVwiKQpAQCAtNTcsMyArNjEsMTIgQEAgSU5D
TFVERV9ESVJFQ1RPUklFUygke0VXZWJMYXVuY2hlcl9JTkNMVURFX0RJUkVDVE9SSUVTfSkKIEFE
RF9FWEVDVVRBQkxFKFByb2dyYW1zL0VXZWJMYXVuY2hlciAke0VXZWJMYXVuY2hlcl9TT1VSQ0VT
fSkKIFRBUkdFVF9MSU5LX0xJQlJBUklFUyhQcm9ncmFtcy9FV2ViTGF1bmNoZXIgJHtFV2ViTGF1
bmNoZXJfTElCUkFSSUVTfSkKIEFERF9UQVJHRVRfUFJPUEVSVElFUyhQcm9ncmFtcy9FV2ViTGF1
bmNoZXIgTElOS19GTEFHUyAiJHtFV2ViTGF1bmNoZXJfTElOS19GTEFHU30iKQorCisjIGVudHJ5
LmVkagorQUREX0NVU1RPTV9UQVJHRVQoZW50cnkuZWRqCisgICAgICAgICAgICAgICAgQ09NTUFO
RCBlZGplX2NjIC1pZCAke1RPT0xTX0RJUn0vRVdlYkxhdW5jaGVyL2ltYWdlcworICAgICAgICAg
ICAgICAgICR7VE9PTFNfRElSfS9FV2ViTGF1bmNoZXIvZW50cnkuZWRjIEVOVFJZX0VESl9QQVRI
CisgICAgICAgICAgICAgICAgREVQRU5EUyAke1RPT0xTX0RJUn0vRVdlYkxhdW5jaGVyL2VudHJ5
LmVkYworKQorQUREX0RFUEVOREVOQ0lFUygke1dlYktpdF9MSUJSQVJZX05BTUV9IGVudHJ5LmVk
aikKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCm9sZCBt
b2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggOTFlMzJmNC4uOWQ4ZDhhMQotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIw
MTEtMDctMTAgIEh5ZXJpbSBCYWUgIDxoeWVyaW0uYmFlQHNhbXN1bmcuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtFRkxdIEFkZCB1cmwgYmFy
IHRvIEVXZWJMYXVuY2hlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTYzOTY2CisKKyAgICAgICAgVGhpcyBwYXRjaCBpcyBmb3IgYWRkaW5nIFVSTCBi
YXIgdG8gRVdlYkxhdW5jaGVyKEVGTCkgc2FtcGxlIHByb2dyYW0uCisgICAgICAgIFdoZW4gYSB1
c2VyIGNsaWNrcyBhIFVSTCBiYXIsIHRoZSB3aG9sZSB0ZXh0IGluIHRoZSBiYXIgd2lsbCBiZSBz
ZWxlY3RlZC4KKyAgICAgICAgVGhlbiB0aGUgdXNlciBjYW4gbmF2aWdhdGUgdG8gdGhlIHNpdGUg
d2hlcmUgaGUgb3Igc2hlIGludGVuZHMgdG8uCisKKyAgICAgICAgKiBDTWFrZUxpc3RzRWZsLnR4
dDoKKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvZW50cnkuZWRjCisgICAgICAgICogRVdlYkxhdW5j
aGVyL21haW4uYzoKKyAgICAgICAgKG9uX2Vjb3JlX2V2YXNfcmVzaXplKToKKyAgICAgICAgKG9u
X3VybF9jaGFuZ2VkKToKKyAgICAgICAgKG9uX21vdXNlX2Rvd24pOgorICAgICAgICAob25fa2V5
X2Rvd24pOgorICAgICAgICAob25fYnJvd3Nlcl9kZWwpOgorICAgICAgICAoZ2V0VXJpV2l0aFBy
b3RvY29sKToKKyAgICAgICAgKG9uX3VybGJhcl9rZXlfZG93bik6CisgICAgICAgIChvbl91cmxi
YXJfbW91c2VfZG93bik6CisgICAgICAgIChvbl91cmxiYXJfZm9jdXNfb3V0KToKKyAgICAgICAg
KHVybEJhckNyZWF0ZSk6CisgICAgICAgIChicm93c2VyQ3JlYXRlKToKKwogMjAxMS0wNy0xMCAg
S2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTGV0IHBs
dWdpbnMgcGFydGljaXBhdGUgaW4gZm9ybSBzdWJtaXNzaW9uCmRpZmYgLS1naXQgYS9Ub29scy9F
V2ViTGF1bmNoZXIvZW50cnkuZWRjIGIvVG9vbHMvRVdlYkxhdW5jaGVyL2VudHJ5LmVkYwpuZXcg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYWEwMTdhCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvRVdlYkxhdW5jaGVyL2VudHJ5LmVkYwpAQCAtMCwwICsxLDIxMyBAQAorCisjZGVm
aW5lIEVOVFJZX1RFWFRfQ09MT1JfSU5DICIjMDAwMDAwIgorI2RlZmluZSBFTlRSWV9DVVJTT1Jf
Q09MT1JfSU5DIDAgMCAwIDI1NQorI2RlZmluZSBFTlRSWV9QUkVFRElUX0JBQ0tHUk9VTkRfQ09M
T1JfSU5DICIjMDAwMDAwIgorI2RlZmluZSBFTlRSWV9QUkVFRElUX1RFWFRfQ09MT1JfSU5DICIj
RkZGRkZGIgorCitjb2xsZWN0aW9ucyB7CisgICBncm91cCB7CisgICAgICBuYW1lOiAiRVdlYkxh
dW5jaGVyL2VudHJ5L2Jhc2UvZGVmYXVsdCI7CisgICAgICBkYXRhLml0ZW06ICJkZWZhdWx0X2Zv
bnRfc2l6ZSIgIjE2IjsKKyAgICAgIGRhdGEuaXRlbTogIm1pbl9mb250X3NpemUiICI4IjsKKyAg
ICAgIGRhdGEuaXRlbTogIm1heF9mb250X3NpemUiICI2MCI7CisgICAgICBzdHlsZXMKKyAgICAg
IHsKKyAgICAgICAgIHN0eWxlIHsKKyAgICAgICAgICAgIG5hbWU6ICJlbnRyeV90ZXh0YmxvY2tf
c3R5bGUiOworICAgICAgICAgICAgYmFzZTogImZvbnQ9Um9tYW4gZm9udF9zaXplPTE2IGNvbG9y
PSJFTlRSWV9URVhUX0NPTE9SX0lOQyIgd3JhcD1taXhlZCI7CisgICAgICAgICAgICB0YWc6ICAi
YnIiICJcbiI7CisgICAgICAgICAgICB0YWc6ICAicHMiICJwcyI7CisgICAgICAgICAgICB0YWc6
ICAidGFiIiAiXHQiOworICAgICAgICAgICAgdGFnOiAgImVtIiAiKyBmb250PU9ibGlxdWUiOwor
ICAgICAgICAgICAgdGFnOiAgImIiICIrIGZvbnQ9Qm9sZCI7CisgICAgICAgICAgICB0YWc6ICAi
bGluayIgIisgY29sb3I9IzgwMCB1bmRlcmxpbmU9b24gdW5kZXJsaW5lX2NvbG9yPSM4MDA4IjsK
KyAgICAgICAgICAgIHRhZzogICJoaWxpZ2h0IiAiKyBmb250PUJvbGQiOworICAgICAgICAgICAg
dGFnOiAgInByZWVkaXQiICIrIHVuZGVybGluZT1vbiB1bmRlcmxpbmVfY29sb3I9IkVOVFJZX1BS
RUVESVRfQkFDS0dST1VORF9DT0xPUl9JTkMiIjsKKyAgICAgICAgICAgIHRhZzogICJwcmVlZGl0
X3NlbCIgIisgYmFja2luZz1vbiBiYWNraW5nX2NvbG9yPSJFTlRSWV9QUkVFRElUX0JBQ0tHUk9V
TkRfQ09MT1JfSU5DIiBjb2xvcj0iRU5UUllfUFJFRURJVF9URVhUX0NPTE9SX0lOQyIiOworICAg
ICAgICAgfQorICAgICAgfQorICAgICAgZGF0YSB7CisgICAgICAgICBpdGVtOiBjb250ZXh0X21l
bnVfb3JpZW50YXRpb24gImhvcml6b250YWwiOworICAgICAgfQorICAgICAgcGFydHMgeworICAg
ICAgICAgcGFydCB7CisgICAgICAgICAgICBuYW1lOiAiZW50cnkuc3dhbGxvdy5iYWNrZ3JvdW5k
IjsKKyAgICAgICAgICAgIHR5cGU6IFNXQUxMT1c7CisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7
IHN0YXRlOiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgdmlzaWJsZTogMTsKKyAgICAg
ICAgICAgICAgIHJlbDEgeyByZWxhdGl2ZTogMCAwOyB0bzogInVybC50ZXh0IjsgfQorICAgICAg
ICAgICAgICAgcmVsMiB7IHJlbGF0aXZlOiAxIDE7IHRvOiAidXJsLnRleHQiOyB9CisgICAgICAg
ICAgICB9CisgICAgICAgICB9CisgICAgICB9CisgICAgICBwYXJ0cyB7CisgICAgICAgICBwYXJ0
IHsKKyAgICAgICAgICAgIG5hbWU6ICJ1cmwudGV4dCI7CisgICAgICAgICAgICB0eXBlOiBURVhU
QkxPQ0s7CisgICAgICAgICAgICBtb3VzZV9ldmVudHM6IDE7CisgICAgICAgICAgICBzY2FsZTog
MTsKKyAgICAgICAgICAgIGVudHJ5X21vZGU6IEVESVRBQkxFOworICAgICAgICAgICAgbXVsdGls
aW5lOiAxOworICAgICAgICAgICAgc291cmNlOiAiRVdlYkxhdW5jaGVyL2VudHJ5L3NlbGVjdGlv
bi9kZWZhdWx0IjsgLy8gc2VsZWN0aW9uIHVuZGVyCisgICAgICAgICAgICBzb3VyY2U0OiAiRVdl
YkxhdW5jaGVyL2VudHJ5L2N1cnNvci9kZWZhdWx0IjsgLy8gY3Vyc29yb3ZlcgorICAgICAgICAg
ICAgc291cmNlNTogIkVXZWJMYXVuY2hlci9lbnRyeS9hbmNob3IvZGVmYXVsdCI7IC8vIGFuY2hv
ciB1bmRlcgorICAgICAgICAgICAgZGVzY3JpcHRpb24geyBzdGF0ZTogImRlZmF1bHQiIDAuMDsK
KyAgICAgICAgICAgICAgIGZpeGVkOiAxIDA7CisgICAgICAgICAgICAgICB0ZXh0IHsKKyAgICAg
ICAgICAgICAgICAgIHN0eWxlOiAiZW50cnlfdGV4dGJsb2NrX3N0eWxlIjsKKyAgICAgICAgICAg
ICAgICAgIG1pbjogMCAxOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg
ICAgfQorICAgICAgfQorICAgICAgcHJvZ3JhbXMgeworICAgICAgICAgcHJvZ3JhbSB7CisgICAg
ICAgICAgICBuYW1lOiAiZm9jdXMiOworICAgICAgICAgICAgc2lnbmFsOiAibG9hZCI7CisgICAg
ICAgICAgICBzb3VyY2U6ICIiOworICAgICAgICAgICAgYWN0aW9uOiBGT0NVU19TRVQ7CisgICAg
ICAgICAgICB0YXJnZXQ6ICJ1cmwudGV4dCI7CisgICAgICAgICB9CisgICAgICB9CisgICB9CisK
KyAgIGdyb3VwIHsKKyAgICAgIG5hbWU6ICJFV2ViTGF1bmNoZXIvZW50cnkvY3Vyc29yL2RlZmF1
bHQiOworICAgICAgcGFydHMgeworICAgICAgICAgcGFydCB7CisgICAgICAgICAgICBuYW1lOiAi
Y2xpcDIiOworICAgICAgICAgICAgdHlwZTogUkVDVDsKKyAgICAgICAgICAgIG1vdXNlX2V2ZW50
czogMDsKKyAgICAgICAgICAgIHNjYWxlOiAxOworICAgICAgICAgICAgZGVzY3JpcHRpb24geyBz
dGF0ZTogImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgICAgIHJlbDEudG86ICJjbGlwIjsKKyAg
ICAgICAgICAgICAgIHJlbDIudG86ICJjbGlwIjsKKyAgICAgICAgICAgICAgIHZpc2libGU6IDA7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7IHN0YXRlOiAiZm9jdXNl
ZCIgMC4wOworICAgICAgICAgICAgICAgaW5oZXJpdDogImRlZmF1bHQiIDAuMDsKKyAgICAgICAg
ICAgICAgIHZpc2libGU6IDE7CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgICBw
YXJ0IHsKKyAgICAgICAgICAgIG5hbWU6ICJjbGlwIjsKKyAgICAgICAgICAgIHR5cGU6IFJFQ1Q7
CisgICAgICAgICAgICBtb3VzZV9ldmVudHM6IDA7CisgICAgICAgICAgICBzY2FsZTogMTsKKyAg
ICAgICAgICAgIGNsaXBfdG86ICJjbGlwMiI7CisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7IHN0
YXRlOiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgcmVsMS5vZmZzZXQ6IC0xMCAwOwor
ICAgICAgICAgICAgICAgcmVsMi5vZmZzZXQ6IDkgOTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGRlc2NyaXB0aW9uIHsgc3RhdGU6ICJoaWRkZW4iIDAuMDsKKyAgICAgICAgICAgICAgIGlu
aGVyaXQ6ICJkZWZhdWx0IiAwLjA7CisgICAgICAgICAgICAgICB2aXNpYmxlOiAwOworICAgICAg
ICAgICAgfQorICAgICAgICAgfQorICAgICAgICAgcGFydCB7CisgICAgICAgICAgICBuYW1lOiAi
YmFzZSI7CisgICAgICAgICAgICBtb3VzZV9ldmVudHM6IDA7CisgICAgICAgICAgICBzY2FsZTog
MTsKKyAgICAgICAgICAgIGNsaXBfdG86ICJjbGlwIjsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9u
IHsgc3RhdGU6ICJkZWZhdWx0IiAwLjA7CisgICAgICAgICAgICAgICBtaW46IDIgMjsKKyAgICAg
ICAgICAgICAgIGFsaWduOiAwLjUgMS4wOworICAgICAgICAgICAgICAgY29sb3I6IDAgMCAwIDA7
CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgICBwYXJ0IHsKKyAgICAgICAgICAg
IG5hbWU6ICJnbG93IjsKKyAgICAgICAgICAgIHR5cGU6IFJFQ1Q7CisgICAgICAgICAgICBtb3Vz
ZV9ldmVudHM6IDA7CisgICAgICAgICAgICBzY2FsZTogMTsKKyAgICAgICAgICAgIGNsaXBfdG86
ICJjbGlwMiI7CisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7IHN0YXRlOiAiZGVmYXVsdCIgMC4w
OworICAgICAgICAgICAgICAgbWluOiAxIDA7CisgICAgICAgICAgICAgICBmaXhlZDogMSAwOwor
ICAgICAgICAgICAgICAgYWxpZ246IDAuNSAwLjU7CisgICAgICAgICAgICAgICB2aXNpYmxlOiAx
OworICAgICAgICAgICAgICAgcmVsMSB7CisgICAgICAgICAgICAgICAgICByZWxhdGl2ZTogMC4w
ICAwLjA7CisgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAgMjsKKyAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgIHJlbDIgeworICAgICAgICAgICAgICAgICAgcmVsYXRpdmU6IDAuMCAg
MS4wOworICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwIC0yOworICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgY29sb3I6IEVOVFJZX0NVUlNPUl9DT0xPUl9JTkM7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7IHN0YXRlOiAiaGlkZGVuIiAwLjA7CisgICAg
ICAgICAgICAgICBpbmhlcml0OiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgY29sb3I6
ICAwIDAgMCAwOworICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgfQorICAgICAgcHJv
Z3JhbXMgeworICAgICAgICAgcHJvZ3JhbSB7CisgICAgICAgICAgICBuYW1lOiAic2hvdyI7Cisg
ICAgICAgICAgICBhY3Rpb246IFNUQVRFX1NFVCAiaGlkZGVuIiAwLjA7CisgICAgICAgICAgICBp
bjogMC42IDAuMDsKKyAgICAgICAgICAgIHRhcmdldDogImdsb3ciOworICAgICAgICAgICAgYWZ0
ZXI6ICJzaG93NCI7CisgICAgICAgICB9CisgICAgICAgICBwcm9ncmFtIHsKKyAgICAgICAgICAg
IG5hbWU6ICJzaG93NCI7CisgICAgICAgICAgICBhY3Rpb246IFNUQVRFX1NFVCAiZGVmYXVsdCIg
MC4wOworICAgICAgICAgICAgaW46IDAuNiAwLjA7CisgICAgICAgICAgICB0YXJnZXQ6ICJnbG93
IjsKKyAgICAgICAgICAgIGFmdGVyOiAic2hvdyI7CisgICAgICAgICB9CisgICAgICAgICBwcm9n
cmFtIHsKKyAgICAgICAgICAgIG5hbWU6ICJmb2N1c2VkIjsKKyAgICAgICAgICAgIHNpZ25hbDog
ImVudHJ5LGFjdGlvbixmb2N1cyI7CisgICAgICAgICAgICBzb3VyY2U6ICJlbnRyeSI7CisgICAg
ICAgICAgICBhY3Rpb246IFNUQVRFX1NFVCAiZm9jdXNlZCIgMC4wOworICAgICAgICAgICAgdGFy
Z2V0OiAiY2xpcDIiOworICAgICAgICAgICAgYWZ0ZXI6ICJzaG93NCI7CisgICAgICAgICB9Cisg
ICAgICAgICBwcm9ncmFtIHsKKyAgICAgICAgICAgIG5hbWU6ICJ1bmZvY3VzZWQiOworICAgICAg
ICAgICAgc2lnbmFsOiAiZW50cnksYWN0aW9uLHVuZm9jdXMiOworICAgICAgICAgICAgc291cmNl
OiAiZW50cnkiOworICAgICAgICAgICAgYWN0aW9uOiBTVEFURV9TRVQgImRlZmF1bHQiIDAuMDsK
KyAgICAgICAgICAgIHRhcmdldDogImNsaXAyIjsKKyAgICAgICAgICAgIGFmdGVyOiAic3RvcF9n
bG93IjsKKyAgICAgICAgIH0KKyAgICAgICAgIHByb2dyYW0geworICAgICAgICAgICAgbmFtZTog
InN0b3BfZ2xvdyI7CisgICAgICAgICAgICBhY3Rpb246IEFDVElPTl9TVE9QOworICAgICAgICAg
ICAgdGFyZ2V0OiAic2hvdyI7CisgICAgICAgICAgICB0YXJnZXQ6ICJzaG93NCI7CisgICAgICAg
ICB9CisgICAgICB9CisgICB9CisKKyAgIGdyb3VwIHsKKyAgICAgIG5hbWU6ICJFV2ViTGF1bmNo
ZXIvZW50cnkvc2VsZWN0aW9uL2RlZmF1bHQiOworICAgICAgcGFydHMgeworICAgICAgICAgcGFy
dCB7CisgICAgICAgICAgICBuYW1lOiAiYmciOworICAgICAgICAgICAgdHlwZTogUkVDVDsKKyAg
ICAgICAgICAgIHNjYWxlOiAxOworICAgICAgICAgICAgbW91c2VfZXZlbnRzOiAwOworICAgICAg
ICAgICAgZGVzY3JpcHRpb24geyBzdGF0ZTogImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgICAg
IGNvbG9yOiAxMzggMTgzIDIyMyAxMjg7CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAg
ICB9CisgICB9CisKKyAgIGdyb3VwIHsKKyAgICAgIG5hbWU6ICJFV2ViTGF1bmNoZXIvZW50cnkv
YW5jaG9yL2RlZmF1bHQiOworICAgICAgcGFydHMgeworICAgICAgICAgcGFydCB7CisgICAgICAg
ICAgICBuYW1lOiAiYmciOworICAgICAgICAgICAgdHlwZTogUkVDVDsKKyAgICAgICAgICAgIG1v
dXNlX2V2ZW50czogMDsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uIHsgc3RhdGU6ICJkZWZhdWx0
IiAwLjA7CisgICAgICAgICAgICAgICBjb2xvcjogMTI4IDAgMCA2NDsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgIH0KKyAgICAgIH0KKyAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVu
Y2hlci9tYWluLmMgYi9Ub29scy9FV2ViTGF1bmNoZXIvbWFpbi5jCm9sZCBtb2RlIDEwMDY0NApu
ZXcgbW9kZSAxMDA3NTUKaW5kZXggZDNiYjVhMS4uODkxYzFkZAotLS0gYS9Ub29scy9FV2ViTGF1
bmNoZXIvbWFpbi5jCisrKyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMKQEAgLTI5LDcgKzI5
LDYgQEAKIAogI2luY2x1ZGUgIkVXZWJLaXQuaCIKIAotI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5j
bHVkZSA8RWNvcmUuaD4KICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWNvcmVf
RmlsZS5oPgpAQCAtMzcsNiArMzYsNyBAQAogI2luY2x1ZGUgPEVjb3JlX1guaD4KICNpbmNsdWRl
IDxFZGplLmg+CiAjaW5jbHVkZSA8RXZhcy5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVk
ZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAg
LTQ3LDYgKzQ3LDcgQEAKIAogI2RlZmluZSBERUZBVUxUX1dJRFRIICAgICAgODAwCiAjZGVmaW5l
IERFRkFVTFRfSEVJR0hUICAgICA2MDAKKyNkZWZpbmUgVVJMX0JBUl9IRUlHSFQgICAgIDMwCiAj
ZGVmaW5lIERFRkFVTFRfWk9PTV9JTklUICAxLjAKIAogI2RlZmluZSBpbmZvKGZvcm1hdCwgYXJn
cy4uLikgICAgICAgXApAQCAtMTUwLDYgKzE1MSw4IEBAIHR5cGVkZWYgc3RydWN0IF9FTGF1bmNo
ZXIgewogICAgIEV2YXMgKmV2YXM7CiAgICAgRXZhc19PYmplY3QgKmJnOwogICAgIEV2YXNfT2Jq
ZWN0ICpicm93c2VyOworICAgIEV2YXNfT2JqZWN0ICp1cmxCYXJBcmVhOworICAgIEV2YXNfT2Jq
ZWN0ICp1cmxFbnRyeTsKICAgICBjb25zdCBjaGFyICp0aGVtZTsKICAgICBjb25zdCBjaGFyICp1
c2VyQWdlbnQ7CiAgICAgY29uc3QgY2hhciAqYmFja2luZ1N0b3JlOwpAQCAtMTYwLDYgKzE2Myw5
IEBAIHR5cGVkZWYgc3RydWN0IF9FTGF1bmNoZXIgewogc3RhdGljIHZvaWQgYnJvd3NlckRlc3Ry
b3koRWNvcmVfRXZhcyAqZWUpOwogc3RhdGljIHZvaWQgY2xvc2VXaW5kb3coRWNvcmVfRXZhcyAq
ZWUpOwogc3RhdGljIGludCBicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hh
ciAqdGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9SZWN0YW5nbGUgZ2VvbWV0cnks
IGNvbnN0IGNoYXIgKmVuZ2luZSwgY29uc3QgY2hhciAqYmFja2luZ1N0b3JlLCB1bnNpZ25lZCBj
aGFyIGlzRmxhdHRlbmluZywgdW5zaWduZWQgY2hhciBpc0Z1bGxzY3JlZW4sIGNvbnN0IGNoYXIg
KmRhdGFiYXNlUGF0aCk7CitzdGF0aWMgdm9pZCBvbl91cmxiYXJfa2V5X2Rvd24odm9pZCAqZGF0
YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKm9iaiwgdm9pZCAqZXZlbnRfaW5mbyk7CitzdGF0aWMg
dm9pZCBvbl91cmxiYXJfbW91c2VfZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVj
dCAqb2JqLCB2b2lkICpldmVudF9pbmZvKTsKK3N0YXRpYyB2b2lkIG9uX3VybGJhcl9mb2N1c19v
dXQodm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKm9iaiwgdm9pZCAqZXZlbnRfaW5m
byk7CiAKIHN0YXRpYyB2b2lkCiBwcmludF9oaXN0b3J5KEVpbmFfTGlzdCAqbGlzdCkKQEAgLTIy
Myw2ICsyMjksNyBAQCBvbl9lY29yZV9ldmFzX3Jlc2l6ZShFY29yZV9FdmFzICplZSkKIHsKICAg
ICBFdmFzX09iamVjdCAqd2VidmlldzsKICAgICBFdmFzX09iamVjdCAqYmc7CisgICAgRXZhc19P
YmplY3QgKnVybEJhckFyZWE7CiAgICAgaW50IHcsIGg7CiAKICAgICBlY29yZV9ldmFzX2dlb21l
dHJ5X2dldChlZSwgTlVMTCwgTlVMTCwgJncsICZoKTsKQEAgLTIzMiw4ICsyMzksMTIgQEAgb25f
ZWNvcmVfZXZhc19yZXNpemUoRWNvcmVfRXZhcyAqZWUpCiAgICAgZXZhc19vYmplY3RfcmVzaXpl
KGJnLCB3LCBoKTsKIAogICAgIHdlYnZpZXcgPSBldmFzX29iamVjdF9uYW1lX2ZpbmQoZWNvcmVf
ZXZhc19nZXQoZWUpLCAiYnJvd3NlciIpOwotICAgIGV2YXNfb2JqZWN0X21vdmUod2Vidmlldywg
MTAsIDEwKTsKLSAgICBldmFzX29iamVjdF9yZXNpemUod2VidmlldywgdyAtIDIwLCBoIC0gMjAp
OworICAgIGV2YXNfb2JqZWN0X21vdmUod2VidmlldywgNSwgNSArIFVSTF9CQVJfSEVJR0hUKTsK
KyAgICBldmFzX29iamVjdF9yZXNpemUod2VidmlldywgdyAtIDEwLCBoIC0gVVJMX0JBUl9IRUlH
SFQgLSAxMCk7CisKKyAgICB1cmxCYXJBcmVhID0gZXZhc19vYmplY3RfbmFtZV9maW5kKGVjb3Jl
X2V2YXNfZ2V0KGVlKSwgInVybEJhckFyZWEiKTsKKyAgICBldmFzX29iamVjdF9tb3ZlKHVybEJh
ckFyZWEsIDUsIDApOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZSh1cmxCYXJBcmVhLCB3IC0gMTAs
IFVSTF9CQVJfSEVJR0hUKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTQ3NCwxMCArNDg1LDMyIEBA
IG9uX3ZpZXdwb3J0X2NoYW5nZWQodm9pZCogdXNlcl9kYXRhLCBFdmFzX09iamVjdCogd2Vidmll
dywgdm9pZCogZXZlbnRfaW5mbykKIH0KIAogc3RhdGljIHZvaWQKLW9uX21vdXNlX2Rvd24odm9p
ZCogZGF0YSwgRXZhcyogZSwgRXZhc19PYmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2ZW50X2luZm8p
Citvbl91cmxfY2hhbmdlZCh2b2lkICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2
b2lkICpldmVudF9pbmZvKQoreworICAgIEVMYXVuY2hlciAqYXBwID0gKEVMYXVuY2hlciAqKXVz
ZXJfZGF0YTsKKworICAgIGlmICghYXBwIHx8ICF3ZWJ2aWV3KQorICAgICAgICByZXR1cm47CisK
KyAgICBjb25zdCBjaGFyICp1cmwgPSBld2tfZnJhbWVfdXJpX2dldChld2tfdmlld19mcmFtZV9t
YWluX2dldCh3ZWJ2aWV3KSk7CisgICAgaW5mbygiWyVzOiVkXXVybD1bJXNdXG4iLCBfX2Z1bmNf
XywgX19MSU5FX18sIHVybCk7CisgICAgZWRqZV9vYmplY3RfcGFydF90ZXh0X3NldChhcHAtPnVy
bEVudHJ5LCAidXJsLnRleHQiLCB1cmwpOworfQorCitzdGF0aWMgdm9pZAorb25fbW91c2VfZG93
bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqd2Vidmlldywgdm9pZCAqZXZlbnRf
aW5mbykKIHsKLSAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24gKmV2ID0gKEV2YXNfRXZlbnRfTW91
c2VfRG93biopIGV2ZW50X2luZm87Ci0gICAgaWYgKGV2LT5idXR0b24gPT0gMikKKyAgICBFdmFz
X0V2ZW50X01vdXNlX0Rvd24gKmV2ID0gZXZlbnRfaW5mbzsKKyAgICBFTGF1bmNoZXIgKmFwcCA9
IChFTGF1bmNoZXIgKilkYXRhOworCisgICAgaWYgKCFhcHAgfHwgIWV2KQorICAgICAgICByZXR1
cm47CisKKyAgICBpbmZvKCJbJXM6JWRdZXYtPmJ1dHRvbj0lZFxuIiwgX19mdW5jX18sIF9fTElO
RV9fLCBldi0+YnV0dG9uKTsKKworICAgIGlmIChldi0+YnV0dG9uID09IDEpCisgICAgICAgIGV2
YXNfb2JqZWN0X2ZvY3VzX3NldCh3ZWJ2aWV3LCBFSU5BX1RSVUUpOworICAgIGVsc2UgaWYgKGV2
LT5idXR0b24gPT0gMikKICAgICAgICAgZXZhc19vYmplY3RfZm9jdXNfc2V0KHdlYnZpZXcsICFl
dmFzX29iamVjdF9mb2N1c19nZXQod2VidmlldykpOwogfQogCkBAIC00OTYsOCArNTI5LDEyIEBA
IG9uX2ZvY3VzX2luKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQg
KmV2ZW50X2luZm8pCiBzdGF0aWMgdm9pZAogb25fa2V5X2Rvd24odm9pZCAqZGF0YSwgRXZhcyAq
ZSwgRXZhc19PYmplY3QgKm9iaiwgdm9pZCAqZXZlbnRfaW5mbykKIHsKLSAgICBFdmFzX0V2ZW50
X0tleV9Eb3duICpldiA9IChFdmFzX0V2ZW50X0tleV9Eb3duKikgZXZlbnRfaW5mbzsKKyAgICBF
dmFzX0V2ZW50X0tleV9Eb3duICpldiA9IGV2ZW50X2luZm87CiAgICAgRUxhdW5jaGVyICphcHAg
PSBkYXRhOworCisgICAgaWYgKCFhcHAgfHwgIWV2KQorICAgICAgICByZXR1cm47CisKICAgICBz
dGF0aWMgY29uc3QgY2hhciAqZW5jb2RpbmdzW10gPSB7CiAgICAgICAgICJJU08tODg1OS0xIiwK
ICAgICAgICAgIlVURi04IiwKQEAgLTYyNiwxMSArNjYzLDE4IEBAIG9uX2Jyb3dzZXJfZGVsKHZv
aWQgKmRhdGEsIEV2YXMgKmV2YXMsIEV2YXNfT2JqZWN0ICpicm93c2VyLCB2b2lkICpldmVudCkK
IHsKICAgICBFTGF1bmNoZXIgKmFwcCA9IChFTGF1bmNoZXIqKSBkYXRhOwogCisgICAgaWYgKCFh
cHApCisgICAgICAgIHJldHVybjsKKwogICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2Rl
bChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfS0VZX0RPV04sIG9uX2tleV9kb3duKTsKICAg
ICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwoYXBwLT5icm93c2VyLCBFVkFTX0NBTExC
QUNLX01PVVNFX0RPV04sIG9uX21vdXNlX2Rvd24pOwogICAgIGV2YXNfb2JqZWN0X2V2ZW50X2Nh
bGxiYWNrX2RlbChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfRk9DVVNfSU4sIG9uX2ZvY3Vz
X2luKTsKICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwoYXBwLT5icm93c2VyLCBF
VkFTX0NBTExCQUNLX0ZPQ1VTX09VVCwgb25fZm9jdXNfb3V0KTsKICAgICBldmFzX29iamVjdF9l
dmVudF9jYWxsYmFja19kZWwoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0RFTCwgb25fYnJv
d3Nlcl9kZWwpOworCisgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKGFwcC0+dXJs
RW50cnksIEVWQVNfQ0FMTEJBQ0tfS0VZX0RPV04sIG9uX3VybGJhcl9rZXlfZG93bik7CisgICAg
ZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKGFwcC0+dXJsRW50cnksIEVWQVNfQ0FMTEJB
Q0tfTU9VU0VfRE9XTiwgb25fdXJsYmFyX21vdXNlX2Rvd24pOworICAgIGV2YXNfb2JqZWN0X2V2
ZW50X2NhbGxiYWNrX2RlbChhcHAtPnVybEVudHJ5LCBFVkFTX0NBTExCQUNLX0ZPQ1VTX09VVCwg
b25fdXJsYmFyX2ZvY3VzX291dCk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC02NjAsNiArNzA0LDEw
NyBAQCBxdWl0KEVpbmFfQm9vbCBzdWNjZXNzLCBjb25zdCBjaGFyICptc2cpCiAgICAgcmV0dXJu
IEVYSVRfU1VDQ0VTUzsKIH0KIAorc3RhdGljIGNoYXIgKgorZ2V0VXJpV2l0aFByb3RvY29sKGNv
bnN0IGNoYXIgKnVybCkKK3sKKyAgICBjaGFyICpmdWxsX3VybCA9IE5VTEw7CisgICAgaWYgKHVy
bCAmJiBzdHJsZW4odXJsKSkgeworICAgICAgICBjaGFyICp0b2tlbiA9IHN0cnN0cih1cmwsICI6
Ly8iKTsKKyAgICAgICAgaWYgKCF0b2tlbikgeworICAgICAgICAgICAgaW50IGxlbiA9IHN0cmxl
bih1cmwpICsgc3RybGVuKCJodHRwOi8vIikgKyAxOworICAgICAgICAgICAgZnVsbF91cmwgPSAo
Y2hhciAqKW1hbGxvYyhsZW4pOworICAgICAgICAgICAgaWYgKGZ1bGxfdXJsKSB7CisgICAgICAg
ICAgICAgICAgbWVtc2V0KGZ1bGxfdXJsLCAweDAwLCBsZW4pOworICAgICAgICAgICAgICAgIHNw
cmludGYoZnVsbF91cmwsICJodHRwOi8vJXMiLCB1cmwpOworICAgICAgICAgICAgICAgIHJldHVy
biBmdWxsX3VybDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAg
ICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHN0cmR1cCh1cmwpOworfQorCitzdGF0aWMgdm9p
ZAorb25fdXJsYmFyX2tleV9kb3duKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpv
YmosIHZvaWQgKmV2ZW50X2luZm8pCit7CisgICAgRXZhc19FdmVudF9LZXlfRG93biAqZXYgPSBl
dmVudF9pbmZvOworICAgIEVMYXVuY2hlciAqYXBwID0gZGF0YTsKKworICAgIGlmICghZXYgfHwg
IWFwcCB8fCAhZXYtPmtleSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFzdHJjbXAoZXYt
PmtleSwgIkVzY2FwZSIpKSB7CisgICAgICAgIGNsb3NlV2luZG93KGFwcC0+ZWUpOworICAgIH0g
ZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAiUmV0dXJuIikpIHsKKyAgICAgICAgY29uc3QgY2hh
ciAqdXJsID0gZWRqZV9vYmplY3RfcGFydF90ZXh0X2dldChhcHAtPnVybEVudHJ5LCAidXJsLnRl
eHQiKTsKKyAgICAgICAgaWYgKHVybCAmJiBzdHJsZW4odXJsKSkgeworICAgICAgICAgICAgY2hh
ciAqZnVsbF91cmwgPSBnZXRVcmlXaXRoUHJvdG9jb2wodXJsKTsKKyAgICAgICAgICAgIGV3a192
aWV3X3VyaV9zZXQoYXBwLT5icm93c2VyLCBmdWxsX3VybCk7CisgICAgICAgICAgICBldmFzX29i
amVjdF9mb2N1c19zZXQoYXBwLT5icm93c2VyLCBFSU5BX1RSVUUpOworCisgICAgICAgICAgICBp
ZiAoZnVsbF91cmwpCisgICAgICAgICAgICAgICAgZnJlZShmdWxsX3VybCk7CisgICAgICAgIH0K
KyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCitvbl91cmxiYXJfbW91c2VfZG93bih2b2lkICpkYXRh
LCBFdmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQoreworICAgIEV2
YXNfRXZlbnRfTW91c2VfRG93biAqZXYgPSBldmVudF9pbmZvOworICAgIEVMYXVuY2hlciAqYXBw
ID0gZGF0YTsKKworICAgIGlmICghZXYgfHwgIWFwcCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKGV2LT5idXR0b24gPT0gMSkgeworICAgICAgICBldmFzX29iamVjdF9mb2N1c19zZXQoYXBw
LT51cmxFbnRyeSwgRUlOQV9UUlVFKTsKKyAgICAgICAgZWRqZV9vYmplY3Rfc2lnbmFsX2VtaXQo
YXBwLT51cmxFbnRyeSwgImVudHJ5LGFjdGlvbixmb2N1cyIsICJlbnRyeSIpOworICAgIH0KK30K
Kworc3RhdGljIHZvaWQKK29uX3VybGJhcl9mb2N1c19vdXQodm9pZCAqZGF0YSwgRXZhcyAqZSwg
RXZhc19PYmplY3QgKm9iaiwgdm9pZCAqZXZlbnRfaW5mbykKK3sKKyAgICBFTGF1bmNoZXIgKmFw
cCA9IGRhdGE7CisKKyAgICBpZiAoIWFwcCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZWRqZV9v
YmplY3Rfc2lnbmFsX2VtaXQoYXBwLT51cmxFbnRyeSwgImVudHJ5LGFjdGlvbix1bmZvY3VzIiwg
ImVudHJ5Iik7Cit9CisKK3N0YXRpYyBpbnQKK3VybEJhckNyZWF0ZShFTGF1bmNoZXIgKmFwcCkK
K3sKKyAgICBpZiAoIWFwcCkKKyAgICAgICAgcmV0dXJuIHF1aXQoRUlOQV9GQUxTRSwgIkVSUk9S
OiBjb3VsZCBub3QgZ2V0IEVXZWJMYXVuY2hlciB3aW5kb3dcbiIpOworCisgICAgYXBwLT51cmxC
YXJBcmVhID0gZXZhc19vYmplY3RfcmVjdGFuZ2xlX2FkZChhcHAtPmV2YXMpOworICAgIGV2YXNf
b2JqZWN0X25hbWVfc2V0KGFwcC0+dXJsQmFyQXJlYSwgInVybEJhckFyZWEiKTsKKyAgICBldmFz
X29iamVjdF9jb2xvcl9zZXQoYXBwLT51cmxCYXJBcmVhLCAyNTUsIDI1NSwgMjU1LCAyNTUpOwor
ICAgIGV2YXNfb2JqZWN0X21vdmUoYXBwLT51cmxCYXJBcmVhLCA1LCAwKTsKKyAgICBldmFzX29i
amVjdF9yZXNpemUoYXBwLT51cmxCYXJBcmVhLCBERUZBVUxUX1dJRFRIIC0gMTAsIFVSTF9CQVJf
SEVJR0hUKTsKKyAgICBldmFzX29iamVjdF9zaG93KGFwcC0+dXJsQmFyQXJlYSk7CisKKyAgICBF
dmFzICpldmFzID0gZXZhc19vYmplY3RfZXZhc19nZXQoYXBwLT51cmxCYXJBcmVhKTsKKyAgICBh
cHAtPnVybEVudHJ5ID0gZWRqZV9vYmplY3RfYWRkKGV2YXMpOworICAgIEVpbmFfQm9vbCByZXQg
PSBlZGplX29iamVjdF9maWxlX3NldChhcHAtPnVybEVudHJ5LCBFTlRSWV9FREpfUEFUSCwgIkVX
ZWJMYXVuY2hlci9lbnRyeS9iYXNlL2RlZmF1bHQiKTsKKworICAgIGlmICghcmV0KQorICAgICAg
ICBpbmZvKCJlZGplX29iamVjdF9maWxlX3NldCBmYWlsZWRcbiIpOworCisgICAgZWRqZV9vYmpl
Y3RfcGFydF90ZXh0X3NldChhcHAtPnVybEVudHJ5LCAidXJsLnRleHQiLCAiIik7CisgICAgZXZh
c19vYmplY3RfbW92ZShhcHAtPnVybEVudHJ5LCAxMCwgMyk7CisgICAgZXZhc19vYmplY3RfcmVz
aXplKGFwcC0+dXJsRW50cnksIERFRkFVTFRfV0lEVEggLSAyMCwgVVJMX0JBUl9IRUlHSFQgLSA2
KTsKKyAgICBldmFzX29iamVjdF9zaG93KGFwcC0+dXJsRW50cnkpOworICAgIGV2YXNfb2JqZWN0
X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAtPnVybEVudHJ5LCBFVkFTX0NBTExCQUNLX01PVVNFX0RP
V04sIG9uX3VybGJhcl9tb3VzZV9kb3duLCBhcHApOworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2Nh
bGxiYWNrX2FkZChhcHAtPnVybEVudHJ5LCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBvbl91cmxi
YXJfa2V5X2Rvd24sIGFwcCk7CisgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKGFw
cC0+dXJsRW50cnksIEVWQVNfQ0FMTEJBQ0tfRk9DVVNfT1VULCBvbl91cmxiYXJfZm9jdXNfb3V0
LCBhcHApOworICAgIHJldHVybiAxOworfQorCiBzdGF0aWMgaW50CiBicm93c2VyQ3JlYXRlKGNv
bnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqdGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwg
RWluYV9SZWN0YW5nbGUgZ2VvbWV0cnksIGNvbnN0IGNoYXIgKmVuZ2luZSwgY29uc3QgY2hhciAq
YmFja2luZ1N0b3JlLCB1bnNpZ25lZCBjaGFyIGlzRmxhdHRlbmluZywgdW5zaWduZWQgY2hhciBp
c0Z1bGxzY3JlZW4sIGNvbnN0IGNoYXIgKmRhdGFiYXNlUGF0aCkKIHsKQEAgLTY3Miw3ICs4MTcs
NyBAQCBicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqdGhlbWUsIGNv
bnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9SZQogICAgIGlmICghYXBwKQogICAgICAgICByZXR1
cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6IGNvdWxkIG5vdCBjcmVhdGUgRVdlYkxhdW5jaGVy
IHdpbmRvd1xuIik7CiAKLSAgICBhcHAtPmVlID0gZWNvcmVfZXZhc19uZXcoZW5naW5lLCAwLCAw
LCBnZW9tZXRyeS53LCBnZW9tZXRyeS5oLCBOVUxMKTsKKyAgICBhcHAtPmVlID0gZWNvcmVfZXZh
c19uZXcoZW5naW5lLCAwLCAwLCBnZW9tZXRyeS53LCBnZW9tZXRyeS5oICsgVVJMX0JBUl9IRUlH
SFQsIE5VTEwpOwogCiAgICAgaWYgKCFhcHAtPmVlKQogICAgICAgICByZXR1cm4gcXVpdChFSU5B
X0ZBTFNFLCAiRVJST1I6IGNvdWxkIG5vdCBjb25zdHJ1Y3QgZXZhcy1lY29yZVxuIik7CkBAIC02
OTYsOSArODQxLDkgQEAgYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IGNoYXIg
KnRoZW1lLCBjb25zdCBjaGFyICp1c2VyQWdlbnQsIEVpbmFfUmUKIAogICAgIGFwcC0+YmcgPSBl
dmFzX29iamVjdF9yZWN0YW5nbGVfYWRkKGFwcC0+ZXZhcyk7CiAgICAgZXZhc19vYmplY3RfbmFt
ZV9zZXQoYXBwLT5iZywgImJnIik7Ci0gICAgZXZhc19vYmplY3RfY29sb3Jfc2V0KGFwcC0+Ymcs
IDI1NSwgMCwgMjU1LCAyNTUpOworICAgIGV2YXNfb2JqZWN0X2NvbG9yX3NldChhcHAtPmJnLCA2
MCwgNzUsIDk4LCAyNTUpOwogICAgIGV2YXNfb2JqZWN0X21vdmUoYXBwLT5iZywgMCwgMCk7Ci0g
ICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YmcsIGdlb21ldHJ5LncsIGdlb21ldHJ5LmgpOwor
ICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShhcHAtPmJnLCBnZW9tZXRyeS53LCBnZW9tZXRyeS5oICsg
VVJMX0JBUl9IRUlHSFQpOwogICAgIGV2YXNfb2JqZWN0X2xheWVyX3NldChhcHAtPmJnLCBFVkFT
X0xBWUVSX01JTik7CiAgICAgZXZhc19vYmplY3Rfc2hvdyhhcHAtPmJnKTsKIApAQCAtNzM1LDYg
Kzg4MCw4IEBAIGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICp0aGVt
ZSwgY29uc3QgY2hhciAqdXNlckFnZW50LCBFaW5hX1JlCiAgICAgZXZhc19vYmplY3Rfc21hcnRf
Y2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgInRvb2x0aXAsdGV4dCxzZXQiLCBvbl90b29sdGlw
X3RleHRfc2V0LCBhcHApOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAt
PmJyb3dzZXIsICJpbnB1dG1ldGhvZCxjaGFuZ2VkIiwgb25faW5wdXRtZXRob2RfY2hhbmdlZCwg
YXBwKTsKIAorICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIs
ICJ1cmksY2hhbmdlZCIsIG9uX3VybF9jaGFuZ2VkLCBhcHApOworCiAvKiAgICAgZXdrX2NhbGxi
YWNrX3Jlc2l6ZV9yZXF1ZXN0ZWRfYWRkKGFwcC0+YnJvd3Nlciwgb25fcmVzaXplX3JlcXVlc3Rl
ZCwgYXBwLT5lZSk7ICovCiAKICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQoYXBw
LT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBvbl9rZXlfZG93biwgYXBwKTsKQEAg
LTc0MywxMSArODkwLDE2IEBAIGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBj
aGFyICp0aGVtZSwgY29uc3QgY2hhciAqdXNlckFnZW50LCBFaW5hX1JlCiAgICAgZXZhc19vYmpl
Y3RfZXZlbnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19GT0NVU19P
VVQsIG9uX2ZvY3VzX291dCwgYXBwKTsKICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19h
ZGQoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0RFTCwgb25fYnJvd3Nlcl9kZWwsIGFwcCk7
CiAKLSAgICBldmFzX29iamVjdF9tb3ZlKGFwcC0+YnJvd3NlciwgMTAsIDEwKTsKLSAgICBldmFz
X29iamVjdF9yZXNpemUoYXBwLT5icm93c2VyLCBnZW9tZXRyeS53IC0gMjAsIGdlb21ldHJ5Lmgg
LSAyMCk7CisgICAgZXZhc19vYmplY3RfbW92ZShhcHAtPmJyb3dzZXIsIDUsIDUgKyBVUkxfQkFS
X0hFSUdIVCk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YnJvd3NlciwgZ2VvbWV0cnku
dyAtIDEwLCBnZW9tZXRyeS5oIC0gMTApOworCisgICAgaWYgKHVybCAmJiAodXJsWzBdICE9ICdc
MCcpKSB7CisgICAgICAgIGNoYXIgKmZ1bGxfdXJsID0gZ2V0VXJpV2l0aFByb3RvY29sKHVybCk7
CisgICAgICAgIGV3a192aWV3X3VyaV9zZXQoYXBwLT5icm93c2VyLCBmdWxsX3VybCk7CiAKLSAg
ICBpZiAodXJsICYmICh1cmxbMF0gIT0gJ1wwJykpCi0gICAgICAgIGV3a192aWV3X3VyaV9zZXQo
YXBwLT5icm93c2VyLCB1cmwpOworICAgICAgICBpZiAoZnVsbF91cmwpCisgICAgICAgICAgICBm
cmVlKGZ1bGxfdXJsKTsKKyAgICB9CiAKICAgICBldmFzX29iamVjdF9zaG93KGFwcC0+YnJvd3Nl
cik7CiAgICAgZWNvcmVfZXZhc19zaG93KGFwcC0+ZWUpOwpAQCAtNzU2LDYgKzkwOCw4IEBAIGJy
b3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICp0aGVtZSwgY29uc3QgY2hh
ciAqdXNlckFnZW50LCBFaW5hX1JlCiAKICAgICB3aW5kb3dzID0gZWluYV9saXN0X2FwcGVuZCh3
aW5kb3dzLCBhcHApOwogCisgICAgdXJsQmFyQ3JlYXRlKGFwcCk7CisKICAgICByZXR1cm4gMTsK
IH0KIAo=
</data>
<flag name="review"
          id="95110"
          type_id="1"
          status="-"
          setter="lucas.de.marchi"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100600</attachid>
            <date>2011-07-12 18:05:44 -0700</date>
            <delta_ts>2011-07-13 18:37:06 -0700</delta_ts>
            <desc>patch for Lucas&apos;s comment.</desc>
            <filename>patch-[20110712]-[hyerim.bae@samsung.com]-[EWebLauncherurlbar].patch</filename>
            <type>text/plain</type>
            <size>19400</size>
            <attacher name="Hyerim Bae">hyerim.bae</attacher>
            
              <data encoding="base64">Y29tbWl0IDc5ZTdkYWNjZTM1YjUyMzIyODgwM2JhYTcyOTUzMTZhMTdhNzAzMGIKQXV0aG9yOiBI
eWVyaW0gQmFlIDxoeWVyaW0uYmFlQHNhbXN1bmcuY29tPgpEYXRlOiAgIFdlZCBKdWwgMTMgMDk6
NTk6MjIgMjAxMSArMDkwMAoKICAgIHBhdGNoLVsyMDExMDcxMndxXS1baHllcmltLmJhZUBzYW1z
dW5nLmNvbV0tW0VXZWJMYXVuY2hlcnVybGJhcl0ucGF0Y2gKCmRpZmYgLS1naXQgYS9Ub29scy9D
TWFrZUxpc3RzRWZsLnR4dCBiL1Rvb2xzL0NNYWtlTGlzdHNFZmwudHh0Cm9sZCBtb2RlIDEwMDY0
NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMjRlZjg1Yy4uNTJmZGIyNQotLS0gYS9Ub29scy9DTWFr
ZUxpc3RzRWZsLnR4dAorKysgYi9Ub29scy9DTWFrZUxpc3RzRWZsLnR4dApAQCAtNDksNiArNDks
MTAgQEAgSUYgKFdURl9VU0VfQ1VSTCkKICAgTElTVChBUFBFTkQgRVdlYkxhdW5jaGVyX0xJTktf
RkxBR1MgJHtDVVJMX0xERkxBR1N9KQogRU5ESUYgKCkKIAorCitTRVQoRU5UUllfRURKX1BBVEgg
IiR7Q01BS0VfQklOQVJZX0RJUn0vUHJvZ3JhbXMvZW50cnkuZWRqIikKK0FERF9ERUZJTklUSU9O
UygtREVOVFJZX0VESl9QQVRIPVwiJHtFTlRSWV9FREpfUEFUSH1cIikKKwogIyBPdmVycmlkZSBk
YXRhIGRpcmVjdG9yeS4gV2UgYWx3YXlzIHdhbnQgdG8gZ2V0IGEgZnJlc2ggdGhlbWUuCiBSRU1P
VkVfREVGSU5JVElPTlMoLUREQVRBX0RJUj1cIiR7REFUQV9ESVJ9XCIpCiBBRERfREVGSU5JVElP
TlMoLUREQVRBX0RJUj1cIiR7QlVJTERfREFUQV9ESVJ9XCIpCkBAIC01NywzICs2MSwxMiBAQCBJ
TkNMVURFX0RJUkVDVE9SSUVTKCR7RVdlYkxhdW5jaGVyX0lOQ0xVREVfRElSRUNUT1JJRVN9KQog
QUREX0VYRUNVVEFCTEUoUHJvZ3JhbXMvRVdlYkxhdW5jaGVyICR7RVdlYkxhdW5jaGVyX1NPVVJD
RVN9KQogVEFSR0VUX0xJTktfTElCUkFSSUVTKFByb2dyYW1zL0VXZWJMYXVuY2hlciAke0VXZWJM
YXVuY2hlcl9MSUJSQVJJRVN9KQogQUREX1RBUkdFVF9QUk9QRVJUSUVTKFByb2dyYW1zL0VXZWJM
YXVuY2hlciBMSU5LX0ZMQUdTICIke0VXZWJMYXVuY2hlcl9MSU5LX0ZMQUdTfSIpCisKKyMgZW50
cnkuZWRqCitBRERfQ1VTVE9NX1RBUkdFVChlbnRyeS5lZGoKKyAgICAgICAgICAgICAgICBDT01N
QU5EIGVkamVfY2MgLWlkICR7VE9PTFNfRElSfS9FV2ViTGF1bmNoZXIvaW1hZ2VzCisgICAgICAg
ICAgICAgICAgJHtUT09MU19ESVJ9L0VXZWJMYXVuY2hlci9lbnRyeS5lZGMgRU5UUllfRURKX1BB
VEgKKyAgICAgICAgICAgICAgICBERVBFTkRTICR7VE9PTFNfRElSfS9FV2ViTGF1bmNoZXIvZW50
cnkuZWRjCispCitBRERfREVQRU5ERU5DSUVTKCR7V2ViS2l0X0xJQlJBUllfTkFNRX0gZW50cnku
ZWRqKQorCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggYjRhMmU5MC4uMGVlNDRlZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDExLTA3LTEyICBIeWVyaW0gQmFlICA8
aHllcmltLmJhZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbRUZMXSBBZGQgdXJsIGJhciB0byBFV2ViTGF1bmNoZXIuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzk2NgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaXMgZm9yIGFkZGluZyBVUkwgYmFyIHRvIEVXZWJMYXVuY2hlcihFRkwp
IHNhbXBsZSBwcm9ncmFtLgorICAgICAgICBXaGVuIGEgdXNlciBjbGlja3MgYSBVUkwgYmFyLCB0
aGUgd2hvbGUgdGV4dCBpbiB0aGUgYmFyIHdpbGwgYmUgc2VsZWN0ZWQuCisgICAgICAgIFRoZW4g
dGhlIHVzZXIgY2FuIG5hdmlnYXRlIHRvIHRoZSBzaXRlIHdoZXJlIGhlIG9yIHNoZSBpbnRlbmRz
IHRvLgorCisgICAgICAgICogQ01ha2VMaXN0c0VmbC50eHQ6CisgICAgICAgICogRVdlYkxhdW5j
aGVyL2VudHJ5LmVkYworICAgICAgICAqIEVXZWJMYXVuY2hlci9tYWluLmM6CisgICAgICAgIChv
bl9lY29yZV9ldmFzX3Jlc2l6ZSk6CisgICAgICAgIChvbl91cmxfY2hhbmdlZCk6CisgICAgICAg
IChvbl9tb3VzZV9kb3duKToKKyAgICAgICAgKG9uX2tleV9kb3duKToKKyAgICAgICAgKG9uX2Jy
b3dzZXJfZGVsKToKKyAgICAgICAgKGdldFVyaVdpdGhQcm90b2NvbCk6CisgICAgICAgIChvbl91
cmxiYXJfa2V5X2Rvd24pOgorICAgICAgICAob25fdXJsYmFyX21vdXNlX2Rvd24pOgorICAgICAg
ICAob25fdXJsYmFyX2ZvY3VzX291dCk6CisgICAgICAgICh1cmxCYXJDcmVhdGUpOgorICAgICAg
ICAoYnJvd3NlckNyZWF0ZSk6CisKIDIwMTEtMDctMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBUd2VhayBzb21lIFVJIGluIGdhcmRlbi1vLW1hdGljIG5vdyB0
aGF0IHRoZSB0cmVlIGFjdHVhbGx5IGhhcyBhCmRpZmYgLS1naXQgYS9Ub29scy9FV2ViTGF1bmNo
ZXIvZW50cnkuZWRjIGIvVG9vbHMvRVdlYkxhdW5jaGVyL2VudHJ5LmVkYwpuZXcgZmlsZSBtb2Rl
IDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYWEwMTdhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
RVdlYkxhdW5jaGVyL2VudHJ5LmVkYwpAQCAtMCwwICsxLDIxMyBAQAorCisjZGVmaW5lIEVOVFJZ
X1RFWFRfQ09MT1JfSU5DICIjMDAwMDAwIgorI2RlZmluZSBFTlRSWV9DVVJTT1JfQ09MT1JfSU5D
IDAgMCAwIDI1NQorI2RlZmluZSBFTlRSWV9QUkVFRElUX0JBQ0tHUk9VTkRfQ09MT1JfSU5DICIj
MDAwMDAwIgorI2RlZmluZSBFTlRSWV9QUkVFRElUX1RFWFRfQ09MT1JfSU5DICIjRkZGRkZGIgor
Citjb2xsZWN0aW9ucyB7CisgICBncm91cCB7CisgICAgICBuYW1lOiAiRVdlYkxhdW5jaGVyL2Vu
dHJ5L2Jhc2UvZGVmYXVsdCI7CisgICAgICBkYXRhLml0ZW06ICJkZWZhdWx0X2ZvbnRfc2l6ZSIg
IjE2IjsKKyAgICAgIGRhdGEuaXRlbTogIm1pbl9mb250X3NpemUiICI4IjsKKyAgICAgIGRhdGEu
aXRlbTogIm1heF9mb250X3NpemUiICI2MCI7CisgICAgICBzdHlsZXMKKyAgICAgIHsKKyAgICAg
ICAgIHN0eWxlIHsKKyAgICAgICAgICAgIG5hbWU6ICJlbnRyeV90ZXh0YmxvY2tfc3R5bGUiOwor
ICAgICAgICAgICAgYmFzZTogImZvbnQ9Um9tYW4gZm9udF9zaXplPTE2IGNvbG9yPSJFTlRSWV9U
RVhUX0NPTE9SX0lOQyIgd3JhcD1taXhlZCI7CisgICAgICAgICAgICB0YWc6ICAiYnIiICJcbiI7
CisgICAgICAgICAgICB0YWc6ICAicHMiICJwcyI7CisgICAgICAgICAgICB0YWc6ICAidGFiIiAi
XHQiOworICAgICAgICAgICAgdGFnOiAgImVtIiAiKyBmb250PU9ibGlxdWUiOworICAgICAgICAg
ICAgdGFnOiAgImIiICIrIGZvbnQ9Qm9sZCI7CisgICAgICAgICAgICB0YWc6ICAibGluayIgIisg
Y29sb3I9IzgwMCB1bmRlcmxpbmU9b24gdW5kZXJsaW5lX2NvbG9yPSM4MDA4IjsKKyAgICAgICAg
ICAgIHRhZzogICJoaWxpZ2h0IiAiKyBmb250PUJvbGQiOworICAgICAgICAgICAgdGFnOiAgInBy
ZWVkaXQiICIrIHVuZGVybGluZT1vbiB1bmRlcmxpbmVfY29sb3I9IkVOVFJZX1BSRUVESVRfQkFD
S0dST1VORF9DT0xPUl9JTkMiIjsKKyAgICAgICAgICAgIHRhZzogICJwcmVlZGl0X3NlbCIgIisg
YmFja2luZz1vbiBiYWNraW5nX2NvbG9yPSJFTlRSWV9QUkVFRElUX0JBQ0tHUk9VTkRfQ09MT1Jf
SU5DIiBjb2xvcj0iRU5UUllfUFJFRURJVF9URVhUX0NPTE9SX0lOQyIiOworICAgICAgICAgfQor
ICAgICAgfQorICAgICAgZGF0YSB7CisgICAgICAgICBpdGVtOiBjb250ZXh0X21lbnVfb3JpZW50
YXRpb24gImhvcml6b250YWwiOworICAgICAgfQorICAgICAgcGFydHMgeworICAgICAgICAgcGFy
dCB7CisgICAgICAgICAgICBuYW1lOiAiZW50cnkuc3dhbGxvdy5iYWNrZ3JvdW5kIjsKKyAgICAg
ICAgICAgIHR5cGU6IFNXQUxMT1c7CisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7IHN0YXRlOiAi
ZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgdmlzaWJsZTogMTsKKyAgICAgICAgICAgICAg
IHJlbDEgeyByZWxhdGl2ZTogMCAwOyB0bzogInVybC50ZXh0IjsgfQorICAgICAgICAgICAgICAg
cmVsMiB7IHJlbGF0aXZlOiAxIDE7IHRvOiAidXJsLnRleHQiOyB9CisgICAgICAgICAgICB9Cisg
ICAgICAgICB9CisgICAgICB9CisgICAgICBwYXJ0cyB7CisgICAgICAgICBwYXJ0IHsKKyAgICAg
ICAgICAgIG5hbWU6ICJ1cmwudGV4dCI7CisgICAgICAgICAgICB0eXBlOiBURVhUQkxPQ0s7Cisg
ICAgICAgICAgICBtb3VzZV9ldmVudHM6IDE7CisgICAgICAgICAgICBzY2FsZTogMTsKKyAgICAg
ICAgICAgIGVudHJ5X21vZGU6IEVESVRBQkxFOworICAgICAgICAgICAgbXVsdGlsaW5lOiAxOwor
ICAgICAgICAgICAgc291cmNlOiAiRVdlYkxhdW5jaGVyL2VudHJ5L3NlbGVjdGlvbi9kZWZhdWx0
IjsgLy8gc2VsZWN0aW9uIHVuZGVyCisgICAgICAgICAgICBzb3VyY2U0OiAiRVdlYkxhdW5jaGVy
L2VudHJ5L2N1cnNvci9kZWZhdWx0IjsgLy8gY3Vyc29yb3ZlcgorICAgICAgICAgICAgc291cmNl
NTogIkVXZWJMYXVuY2hlci9lbnRyeS9hbmNob3IvZGVmYXVsdCI7IC8vIGFuY2hvciB1bmRlcgor
ICAgICAgICAgICAgZGVzY3JpcHRpb24geyBzdGF0ZTogImRlZmF1bHQiIDAuMDsKKyAgICAgICAg
ICAgICAgIGZpeGVkOiAxIDA7CisgICAgICAgICAgICAgICB0ZXh0IHsKKyAgICAgICAgICAgICAg
ICAgIHN0eWxlOiAiZW50cnlfdGV4dGJsb2NrX3N0eWxlIjsKKyAgICAgICAgICAgICAgICAgIG1p
bjogMCAxOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgfQorICAg
ICAgfQorICAgICAgcHJvZ3JhbXMgeworICAgICAgICAgcHJvZ3JhbSB7CisgICAgICAgICAgICBu
YW1lOiAiZm9jdXMiOworICAgICAgICAgICAgc2lnbmFsOiAibG9hZCI7CisgICAgICAgICAgICBz
b3VyY2U6ICIiOworICAgICAgICAgICAgYWN0aW9uOiBGT0NVU19TRVQ7CisgICAgICAgICAgICB0
YXJnZXQ6ICJ1cmwudGV4dCI7CisgICAgICAgICB9CisgICAgICB9CisgICB9CisKKyAgIGdyb3Vw
IHsKKyAgICAgIG5hbWU6ICJFV2ViTGF1bmNoZXIvZW50cnkvY3Vyc29yL2RlZmF1bHQiOworICAg
ICAgcGFydHMgeworICAgICAgICAgcGFydCB7CisgICAgICAgICAgICBuYW1lOiAiY2xpcDIiOwor
ICAgICAgICAgICAgdHlwZTogUkVDVDsKKyAgICAgICAgICAgIG1vdXNlX2V2ZW50czogMDsKKyAg
ICAgICAgICAgIHNjYWxlOiAxOworICAgICAgICAgICAgZGVzY3JpcHRpb24geyBzdGF0ZTogImRl
ZmF1bHQiIDAuMDsKKyAgICAgICAgICAgICAgIHJlbDEudG86ICJjbGlwIjsKKyAgICAgICAgICAg
ICAgIHJlbDIudG86ICJjbGlwIjsKKyAgICAgICAgICAgICAgIHZpc2libGU6IDA7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7IHN0YXRlOiAiZm9jdXNlZCIgMC4wOwor
ICAgICAgICAgICAgICAgaW5oZXJpdDogImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgICAgIHZp
c2libGU6IDE7CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgICBwYXJ0IHsKKyAg
ICAgICAgICAgIG5hbWU6ICJjbGlwIjsKKyAgICAgICAgICAgIHR5cGU6IFJFQ1Q7CisgICAgICAg
ICAgICBtb3VzZV9ldmVudHM6IDA7CisgICAgICAgICAgICBzY2FsZTogMTsKKyAgICAgICAgICAg
IGNsaXBfdG86ICJjbGlwMiI7CisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7IHN0YXRlOiAiZGVm
YXVsdCIgMC4wOworICAgICAgICAgICAgICAgcmVsMS5vZmZzZXQ6IC0xMCAwOworICAgICAgICAg
ICAgICAgcmVsMi5vZmZzZXQ6IDkgOTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlc2Ny
aXB0aW9uIHsgc3RhdGU6ICJoaWRkZW4iIDAuMDsKKyAgICAgICAgICAgICAgIGluaGVyaXQ6ICJk
ZWZhdWx0IiAwLjA7CisgICAgICAgICAgICAgICB2aXNpYmxlOiAwOworICAgICAgICAgICAgfQor
ICAgICAgICAgfQorICAgICAgICAgcGFydCB7CisgICAgICAgICAgICBuYW1lOiAiYmFzZSI7Cisg
ICAgICAgICAgICBtb3VzZV9ldmVudHM6IDA7CisgICAgICAgICAgICBzY2FsZTogMTsKKyAgICAg
ICAgICAgIGNsaXBfdG86ICJjbGlwIjsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uIHsgc3RhdGU6
ICJkZWZhdWx0IiAwLjA7CisgICAgICAgICAgICAgICBtaW46IDIgMjsKKyAgICAgICAgICAgICAg
IGFsaWduOiAwLjUgMS4wOworICAgICAgICAgICAgICAgY29sb3I6IDAgMCAwIDA7CisgICAgICAg
ICAgICB9CisgICAgICAgICB9CisgICAgICAgICBwYXJ0IHsKKyAgICAgICAgICAgIG5hbWU6ICJn
bG93IjsKKyAgICAgICAgICAgIHR5cGU6IFJFQ1Q7CisgICAgICAgICAgICBtb3VzZV9ldmVudHM6
IDA7CisgICAgICAgICAgICBzY2FsZTogMTsKKyAgICAgICAgICAgIGNsaXBfdG86ICJjbGlwMiI7
CisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7IHN0YXRlOiAiZGVmYXVsdCIgMC4wOworICAgICAg
ICAgICAgICAgbWluOiAxIDA7CisgICAgICAgICAgICAgICBmaXhlZDogMSAwOworICAgICAgICAg
ICAgICAgYWxpZ246IDAuNSAwLjU7CisgICAgICAgICAgICAgICB2aXNpYmxlOiAxOworICAgICAg
ICAgICAgICAgcmVsMSB7CisgICAgICAgICAgICAgICAgICByZWxhdGl2ZTogMC4wICAwLjA7Cisg
ICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAgMjsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgIHJlbDIgeworICAgICAgICAgICAgICAgICAgcmVsYXRpdmU6IDAuMCAgMS4wOworICAg
ICAgICAgICAgICAgICAgb2Zmc2V0OiAwIC0yOworICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgY29sb3I6IEVOVFJZX0NVUlNPUl9DT0xPUl9JTkM7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBkZXNjcmlwdGlvbiB7IHN0YXRlOiAiaGlkZGVuIiAwLjA7CisgICAgICAgICAgICAg
ICBpbmhlcml0OiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgY29sb3I6ICAwIDAgMCAw
OworICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgfQorICAgICAgcHJvZ3JhbXMgewor
ICAgICAgICAgcHJvZ3JhbSB7CisgICAgICAgICAgICBuYW1lOiAic2hvdyI7CisgICAgICAgICAg
ICBhY3Rpb246IFNUQVRFX1NFVCAiaGlkZGVuIiAwLjA7CisgICAgICAgICAgICBpbjogMC42IDAu
MDsKKyAgICAgICAgICAgIHRhcmdldDogImdsb3ciOworICAgICAgICAgICAgYWZ0ZXI6ICJzaG93
NCI7CisgICAgICAgICB9CisgICAgICAgICBwcm9ncmFtIHsKKyAgICAgICAgICAgIG5hbWU6ICJz
aG93NCI7CisgICAgICAgICAgICBhY3Rpb246IFNUQVRFX1NFVCAiZGVmYXVsdCIgMC4wOworICAg
ICAgICAgICAgaW46IDAuNiAwLjA7CisgICAgICAgICAgICB0YXJnZXQ6ICJnbG93IjsKKyAgICAg
ICAgICAgIGFmdGVyOiAic2hvdyI7CisgICAgICAgICB9CisgICAgICAgICBwcm9ncmFtIHsKKyAg
ICAgICAgICAgIG5hbWU6ICJmb2N1c2VkIjsKKyAgICAgICAgICAgIHNpZ25hbDogImVudHJ5LGFj
dGlvbixmb2N1cyI7CisgICAgICAgICAgICBzb3VyY2U6ICJlbnRyeSI7CisgICAgICAgICAgICBh
Y3Rpb246IFNUQVRFX1NFVCAiZm9jdXNlZCIgMC4wOworICAgICAgICAgICAgdGFyZ2V0OiAiY2xp
cDIiOworICAgICAgICAgICAgYWZ0ZXI6ICJzaG93NCI7CisgICAgICAgICB9CisgICAgICAgICBw
cm9ncmFtIHsKKyAgICAgICAgICAgIG5hbWU6ICJ1bmZvY3VzZWQiOworICAgICAgICAgICAgc2ln
bmFsOiAiZW50cnksYWN0aW9uLHVuZm9jdXMiOworICAgICAgICAgICAgc291cmNlOiAiZW50cnki
OworICAgICAgICAgICAgYWN0aW9uOiBTVEFURV9TRVQgImRlZmF1bHQiIDAuMDsKKyAgICAgICAg
ICAgIHRhcmdldDogImNsaXAyIjsKKyAgICAgICAgICAgIGFmdGVyOiAic3RvcF9nbG93IjsKKyAg
ICAgICAgIH0KKyAgICAgICAgIHByb2dyYW0geworICAgICAgICAgICAgbmFtZTogInN0b3BfZ2xv
dyI7CisgICAgICAgICAgICBhY3Rpb246IEFDVElPTl9TVE9QOworICAgICAgICAgICAgdGFyZ2V0
OiAic2hvdyI7CisgICAgICAgICAgICB0YXJnZXQ6ICJzaG93NCI7CisgICAgICAgICB9CisgICAg
ICB9CisgICB9CisKKyAgIGdyb3VwIHsKKyAgICAgIG5hbWU6ICJFV2ViTGF1bmNoZXIvZW50cnkv
c2VsZWN0aW9uL2RlZmF1bHQiOworICAgICAgcGFydHMgeworICAgICAgICAgcGFydCB7CisgICAg
ICAgICAgICBuYW1lOiAiYmciOworICAgICAgICAgICAgdHlwZTogUkVDVDsKKyAgICAgICAgICAg
IHNjYWxlOiAxOworICAgICAgICAgICAgbW91c2VfZXZlbnRzOiAwOworICAgICAgICAgICAgZGVz
Y3JpcHRpb24geyBzdGF0ZTogImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgICAgIGNvbG9yOiAx
MzggMTgzIDIyMyAxMjg7CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICB9CisgICB9
CisKKyAgIGdyb3VwIHsKKyAgICAgIG5hbWU6ICJFV2ViTGF1bmNoZXIvZW50cnkvYW5jaG9yL2Rl
ZmF1bHQiOworICAgICAgcGFydHMgeworICAgICAgICAgcGFydCB7CisgICAgICAgICAgICBuYW1l
OiAiYmciOworICAgICAgICAgICAgdHlwZTogUkVDVDsKKyAgICAgICAgICAgIG1vdXNlX2V2ZW50
czogMDsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uIHsgc3RhdGU6ICJkZWZhdWx0IiAwLjA7Cisg
ICAgICAgICAgICAgICBjb2xvcjogMTI4IDAgMCA2NDsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
IH0KKyAgICAgIH0KKyAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWlu
LmMgYi9Ub29scy9FV2ViTGF1bmNoZXIvbWFpbi5jCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAx
MDA3NTUKaW5kZXggZDNiYjVhMS4uNmRhZjlhMgotLS0gYS9Ub29scy9FV2ViTGF1bmNoZXIvbWFp
bi5jCisrKyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMKQEAgLTI5LDcgKzI5LDYgQEAKIAog
I2luY2x1ZGUgIkVXZWJLaXQuaCIKIAotI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8RWNv
cmUuaD4KICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWNvcmVfRmlsZS5oPgpA
QCAtMzcsNiArMzYsNyBAQAogI2luY2x1ZGUgPEVjb3JlX1guaD4KICNpbmNsdWRlIDxFZGplLmg+
CiAjaW5jbHVkZSA8RXZhcy5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8bGltaXRz
Lmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAgLTQ3LDYgKzQ3
LDcgQEAKIAogI2RlZmluZSBERUZBVUxUX1dJRFRIICAgICAgODAwCiAjZGVmaW5lIERFRkFVTFRf
SEVJR0hUICAgICA2MDAKKyNkZWZpbmUgVVJMX0JBUl9IRUlHSFQgICAgIDMwCiAjZGVmaW5lIERF
RkFVTFRfWk9PTV9JTklUICAxLjAKIAogI2RlZmluZSBpbmZvKGZvcm1hdCwgYXJncy4uLikgICAg
ICAgXApAQCAtMTUwLDYgKzE1MSw4IEBAIHR5cGVkZWYgc3RydWN0IF9FTGF1bmNoZXIgewogICAg
IEV2YXMgKmV2YXM7CiAgICAgRXZhc19PYmplY3QgKmJnOwogICAgIEV2YXNfT2JqZWN0ICpicm93
c2VyOworICAgIEV2YXNfT2JqZWN0ICp1cmxCYXJBcmVhOworICAgIEV2YXNfT2JqZWN0ICp1cmxF
bnRyeTsKICAgICBjb25zdCBjaGFyICp0aGVtZTsKICAgICBjb25zdCBjaGFyICp1c2VyQWdlbnQ7
CiAgICAgY29uc3QgY2hhciAqYmFja2luZ1N0b3JlOwpAQCAtMTYwLDYgKzE2Myw5IEBAIHR5cGVk
ZWYgc3RydWN0IF9FTGF1bmNoZXIgewogc3RhdGljIHZvaWQgYnJvd3NlckRlc3Ryb3koRWNvcmVf
RXZhcyAqZWUpOwogc3RhdGljIHZvaWQgY2xvc2VXaW5kb3coRWNvcmVfRXZhcyAqZWUpOwogc3Rh
dGljIGludCBicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqdGhlbWUs
IGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9SZWN0YW5nbGUgZ2VvbWV0cnksIGNvbnN0IGNo
YXIgKmVuZ2luZSwgY29uc3QgY2hhciAqYmFja2luZ1N0b3JlLCB1bnNpZ25lZCBjaGFyIGlzRmxh
dHRlbmluZywgdW5zaWduZWQgY2hhciBpc0Z1bGxzY3JlZW4sIGNvbnN0IGNoYXIgKmRhdGFiYXNl
UGF0aCk7CitzdGF0aWMgdm9pZCBvbl91cmxiYXJfa2V5X2Rvd24odm9pZCAqZGF0YSwgRXZhcyAq
ZSwgRXZhc19PYmplY3QgKm9iaiwgdm9pZCAqZXZlbnRfaW5mbyk7CitzdGF0aWMgdm9pZCBvbl91
cmxiYXJfbW91c2VfZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2
b2lkICpldmVudF9pbmZvKTsKK3N0YXRpYyB2b2lkIG9uX3VybGJhcl9mb2N1c19vdXQodm9pZCAq
ZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKm9iaiwgdm9pZCAqZXZlbnRfaW5mbyk7CiAKIHN0
YXRpYyB2b2lkCiBwcmludF9oaXN0b3J5KEVpbmFfTGlzdCAqbGlzdCkKQEAgLTIyMyw2ICsyMjks
NyBAQCBvbl9lY29yZV9ldmFzX3Jlc2l6ZShFY29yZV9FdmFzICplZSkKIHsKICAgICBFdmFzX09i
amVjdCAqd2VidmlldzsKICAgICBFdmFzX09iamVjdCAqYmc7CisgICAgRXZhc19PYmplY3QgKnVy
bEJhckFyZWE7CiAgICAgaW50IHcsIGg7CiAKICAgICBlY29yZV9ldmFzX2dlb21ldHJ5X2dldChl
ZSwgTlVMTCwgTlVMTCwgJncsICZoKTsKQEAgLTIzMiw4ICsyMzksMTIgQEAgb25fZWNvcmVfZXZh
c19yZXNpemUoRWNvcmVfRXZhcyAqZWUpCiAgICAgZXZhc19vYmplY3RfcmVzaXplKGJnLCB3LCBo
KTsKIAogICAgIHdlYnZpZXcgPSBldmFzX29iamVjdF9uYW1lX2ZpbmQoZWNvcmVfZXZhc19nZXQo
ZWUpLCAiYnJvd3NlciIpOwotICAgIGV2YXNfb2JqZWN0X21vdmUod2VidmlldywgMTAsIDEwKTsK
LSAgICBldmFzX29iamVjdF9yZXNpemUod2VidmlldywgdyAtIDIwLCBoIC0gMjApOworICAgIGV2
YXNfb2JqZWN0X21vdmUod2VidmlldywgNSwgNSArIFVSTF9CQVJfSEVJR0hUKTsKKyAgICBldmFz
X29iamVjdF9yZXNpemUod2VidmlldywgdyAtIDEwLCBoIC0gVVJMX0JBUl9IRUlHSFQgLSAxMCk7
CisKKyAgICB1cmxCYXJBcmVhID0gZXZhc19vYmplY3RfbmFtZV9maW5kKGVjb3JlX2V2YXNfZ2V0
KGVlKSwgInVybEJhckFyZWEiKTsKKyAgICBldmFzX29iamVjdF9tb3ZlKHVybEJhckFyZWEsIDUs
IDApOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZSh1cmxCYXJBcmVhLCB3IC0gMTAsIFVSTF9CQVJf
SEVJR0hUKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTQ3NCwxMCArNDg1LDI2IEBAIG9uX3ZpZXdw
b3J0X2NoYW5nZWQodm9pZCogdXNlcl9kYXRhLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCog
ZXZlbnRfaW5mbykKIH0KIAogc3RhdGljIHZvaWQKLW9uX21vdXNlX2Rvd24odm9pZCogZGF0YSwg
RXZhcyogZSwgRXZhc19PYmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2ZW50X2luZm8pCitvbl91cmxf
Y2hhbmdlZCh2b2lkICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2b2lkICpldmVu
dF9pbmZvKQoreworICAgIEVMYXVuY2hlciAqYXBwID0gKEVMYXVuY2hlciAqKXVzZXJfZGF0YTsK
KworICAgIGNvbnN0IGNoYXIgKnVybCA9IGV3a19mcmFtZV91cmlfZ2V0KGV3a192aWV3X2ZyYW1l
X21haW5fZ2V0KHdlYnZpZXcpKTsKKyAgICBpbmZvKCJbJXM6JWRddXJsPVslc11cbiIsIF9fZnVu
Y19fLCBfX0xJTkVfXywgdXJsKTsKKyAgICBlZGplX29iamVjdF9wYXJ0X3RleHRfc2V0KGFwcC0+
dXJsRW50cnksICJ1cmwudGV4dCIsIHVybCk7Cit9CisKK3N0YXRpYyB2b2lkCitvbl9tb3VzZV9k
b3duKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2b2lkICpldmVu
dF9pbmZvKQogewotICAgIEV2YXNfRXZlbnRfTW91c2VfRG93biAqZXYgPSAoRXZhc19FdmVudF9N
b3VzZV9Eb3duKikgZXZlbnRfaW5mbzsKLSAgICBpZiAoZXYtPmJ1dHRvbiA9PSAyKQorICAgIEV2
YXNfRXZlbnRfTW91c2VfRG93biAqZXYgPSBldmVudF9pbmZvOworICAgIEVMYXVuY2hlciAqYXBw
ID0gKEVMYXVuY2hlciAqKWRhdGE7CisKKyAgICBpbmZvKCJbJXM6JWRdZXYtPmJ1dHRvbj0lZFxu
IiwgX19mdW5jX18sIF9fTElORV9fLCBldi0+YnV0dG9uKTsKKworICAgIGlmIChldi0+YnV0dG9u
ID09IDEpCisgICAgICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldCh3ZWJ2aWV3LCBFSU5BX1RSVUUp
OworICAgIGVsc2UgaWYgKGV2LT5idXR0b24gPT0gMikKICAgICAgICAgZXZhc19vYmplY3RfZm9j
dXNfc2V0KHdlYnZpZXcsICFldmFzX29iamVjdF9mb2N1c19nZXQod2VidmlldykpOwogfQogCkBA
IC00OTYsOCArNTIzLDkgQEAgb25fZm9jdXNfaW4odm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19P
YmplY3QgKm9iaiwgdm9pZCAqZXZlbnRfaW5mbykKIHN0YXRpYyB2b2lkCiBvbl9rZXlfZG93bih2
b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQog
ewotICAgIEV2YXNfRXZlbnRfS2V5X0Rvd24gKmV2ID0gKEV2YXNfRXZlbnRfS2V5X0Rvd24qKSBl
dmVudF9pbmZvOworICAgIEV2YXNfRXZlbnRfS2V5X0Rvd24gKmV2ID0gZXZlbnRfaW5mbzsKICAg
ICBFTGF1bmNoZXIgKmFwcCA9IGRhdGE7CisKICAgICBzdGF0aWMgY29uc3QgY2hhciAqZW5jb2Rp
bmdzW10gPSB7CiAgICAgICAgICJJU08tODg1OS0xIiwKICAgICAgICAgIlVURi04IiwKQEAgLTYz
MSw2ICs2NTksMTAgQEAgb25fYnJvd3Nlcl9kZWwodm9pZCAqZGF0YSwgRXZhcyAqZXZhcywgRXZh
c19PYmplY3QgKmJyb3dzZXIsIHZvaWQgKmV2ZW50KQogICAgIGV2YXNfb2JqZWN0X2V2ZW50X2Nh
bGxiYWNrX2RlbChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfRk9DVVNfSU4sIG9uX2ZvY3Vz
X2luKTsKICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwoYXBwLT5icm93c2VyLCBF
VkFTX0NBTExCQUNLX0ZPQ1VTX09VVCwgb25fZm9jdXNfb3V0KTsKICAgICBldmFzX29iamVjdF9l
dmVudF9jYWxsYmFja19kZWwoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0RFTCwgb25fYnJv
d3Nlcl9kZWwpOworCisgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKGFwcC0+dXJs
RW50cnksIEVWQVNfQ0FMTEJBQ0tfS0VZX0RPV04sIG9uX3VybGJhcl9rZXlfZG93bik7CisgICAg
ZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKGFwcC0+dXJsRW50cnksIEVWQVNfQ0FMTEJB
Q0tfTU9VU0VfRE9XTiwgb25fdXJsYmFyX21vdXNlX2Rvd24pOworICAgIGV2YXNfb2JqZWN0X2V2
ZW50X2NhbGxiYWNrX2RlbChhcHAtPnVybEVudHJ5LCBFVkFTX0NBTExCQUNLX0ZPQ1VTX09VVCwg
b25fdXJsYmFyX2ZvY3VzX291dCk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC02NjAsNiArNjkyLDEw
MSBAQCBxdWl0KEVpbmFfQm9vbCBzdWNjZXNzLCBjb25zdCBjaGFyICptc2cpCiAgICAgcmV0dXJu
IEVYSVRfU1VDQ0VTUzsKIH0KIAorc3RhdGljIGNoYXIgKgorZ2V0VXJpV2l0aFByb3RvY29sKGNv
bnN0IGNoYXIgKnVybCkKK3sKKyAgICBjaGFyICpmdWxsX3VybCA9IE5VTEw7CisgICAgaWYgKHVy
bCAmJiBzdHJsZW4odXJsKSkgeworICAgICAgICBjaGFyICp0b2tlbiA9IHN0cnN0cih1cmwsICI6
Ly8iKTsKKyAgICAgICAgaWYgKCF0b2tlbikgeworICAgICAgICAgICAgaW50IGxlbiA9IHN0cmxl
bih1cmwpICsgc3RybGVuKCJodHRwOi8vIikgKyAxOworICAgICAgICAgICAgZnVsbF91cmwgPSAo
Y2hhciAqKW1hbGxvYyhsZW4pOworICAgICAgICAgICAgaWYgKGZ1bGxfdXJsKSB7CisgICAgICAg
ICAgICAgICAgZnVsbF91cmxbbGVuXT0nXDAnOworICAgICAgICAgICAgICAgIHNwcmludGYoZnVs
bF91cmwsICJodHRwOi8vJXMiLCB1cmwpOworICAgICAgICAgICAgICAgIHJldHVybiBmdWxsX3Vy
bDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9Cisg
ICAgfQorCisgICAgcmV0dXJuIHN0cmR1cCh1cmwpOworfQorCitzdGF0aWMgdm9pZAorb25fdXJs
YmFyX2tleV9kb3duKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQg
KmV2ZW50X2luZm8pCit7CisgICAgRXZhc19FdmVudF9LZXlfRG93biAqZXYgPSBldmVudF9pbmZv
OworICAgIEVMYXVuY2hlciAqYXBwID0gZGF0YTsKKworICAgIGlmICghZXYtPmtleSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKCFzdHJjbXAoZXYtPmtleSwgIkVzY2FwZSIpKSB7CisgICAg
ICAgIGNsb3NlV2luZG93KGFwcC0+ZWUpOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5
LCAiUmV0dXJuIikpIHsKKyAgICAgICAgY29uc3QgY2hhciAqdXJsID0gZWRqZV9vYmplY3RfcGFy
dF90ZXh0X2dldChhcHAtPnVybEVudHJ5LCAidXJsLnRleHQiKTsKKyAgICAgICAgaWYgKHVybCAm
JiBzdHJsZW4odXJsKSkgeworICAgICAgICAgICAgY2hhciAqZnVsbF91cmwgPSBnZXRVcmlXaXRo
UHJvdG9jb2wodXJsKTsKKyAgICAgICAgICAgIGV3a192aWV3X3VyaV9zZXQoYXBwLT5icm93c2Vy
LCBmdWxsX3VybCk7CisgICAgICAgICAgICBpZiAoZnVsbF91cmwpCisgICAgICAgICAgICAgICAg
ZnJlZShmdWxsX3VybCk7CisKKyAgICAgICAgICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldChhcHAt
PmJyb3dzZXIsIEVJTkFfVFJVRSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyB2b2lk
Citvbl91cmxiYXJfbW91c2VfZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAq
b2JqLCB2b2lkICpldmVudF9pbmZvKQoreworICAgIEV2YXNfRXZlbnRfTW91c2VfRG93biAqZXYg
PSBldmVudF9pbmZvOworICAgIEVMYXVuY2hlciAqYXBwID0gZGF0YTsKKworICAgIGlmIChldi0+
YnV0dG9uID09IDEpIHsKKyAgICAgICAgZXZhc19vYmplY3RfZm9jdXNfc2V0KGFwcC0+dXJsRW50
cnksIEVJTkFfVFJVRSk7CisgICAgICAgIGVkamVfb2JqZWN0X3NpZ25hbF9lbWl0KGFwcC0+dXJs
RW50cnksICJlbnRyeSxhY3Rpb24sZm9jdXMiLCAiZW50cnkiKTsKKyAgICB9Cit9CisKK3N0YXRp
YyB2b2lkCitvbl91cmxiYXJfZm9jdXNfb3V0KHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2Jq
ZWN0ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pCit7CisgICAgRUxhdW5jaGVyICphcHAgPSBkYXRh
OworCisgICAgZWRqZV9vYmplY3Rfc2lnbmFsX2VtaXQoYXBwLT51cmxFbnRyeSwgImVudHJ5LGFj
dGlvbix1bmZvY3VzIiwgImVudHJ5Iik7Cit9CisKK3N0YXRpYyBpbnQKK3VybEJhckNyZWF0ZShF
TGF1bmNoZXIgKmFwcCkKK3sKKyAgICBpZiAoIWFwcCkKKyAgICAgICAgcmV0dXJuIHF1aXQoRUlO
QV9GQUxTRSwgIkVSUk9SOiBjb3VsZCBub3QgZ2V0IEVXZWJMYXVuY2hlciB3aW5kb3dcbiIpOwor
CisgICAgYXBwLT51cmxCYXJBcmVhID0gZXZhc19vYmplY3RfcmVjdGFuZ2xlX2FkZChhcHAtPmV2
YXMpOworICAgIGV2YXNfb2JqZWN0X25hbWVfc2V0KGFwcC0+dXJsQmFyQXJlYSwgInVybEJhckFy
ZWEiKTsKKyAgICBldmFzX29iamVjdF9jb2xvcl9zZXQoYXBwLT51cmxCYXJBcmVhLCAyNTUsIDI1
NSwgMjU1LCAyNTUpOworICAgIGV2YXNfb2JqZWN0X21vdmUoYXBwLT51cmxCYXJBcmVhLCA1LCAw
KTsKKyAgICBldmFzX29iamVjdF9yZXNpemUoYXBwLT51cmxCYXJBcmVhLCBERUZBVUxUX1dJRFRI
IC0gMTAsIFVSTF9CQVJfSEVJR0hUKTsKKyAgICBldmFzX29iamVjdF9zaG93KGFwcC0+dXJsQmFy
QXJlYSk7CisKKyAgICBFdmFzICpldmFzID0gZXZhc19vYmplY3RfZXZhc19nZXQoYXBwLT51cmxC
YXJBcmVhKTsKKyAgICBhcHAtPnVybEVudHJ5ID0gZWRqZV9vYmplY3RfYWRkKGV2YXMpOworICAg
IEVpbmFfQm9vbCByZXQgPSBlZGplX29iamVjdF9maWxlX3NldChhcHAtPnVybEVudHJ5LCBFTlRS
WV9FREpfUEFUSCwgIkVXZWJMYXVuY2hlci9lbnRyeS9iYXNlL2RlZmF1bHQiKTsKKworICAgIGlm
ICghcmV0KQorICAgICAgICBpbmZvKCJlZGplX29iamVjdF9maWxlX3NldCBmYWlsZWRcbiIpOwor
CisgICAgZWRqZV9vYmplY3RfcGFydF90ZXh0X3NldChhcHAtPnVybEVudHJ5LCAidXJsLnRleHQi
LCAiIik7CisgICAgZXZhc19vYmplY3RfbW92ZShhcHAtPnVybEVudHJ5LCAxMCwgMyk7CisgICAg
ZXZhc19vYmplY3RfcmVzaXplKGFwcC0+dXJsRW50cnksIERFRkFVTFRfV0lEVEggLSAyMCwgVVJM
X0JBUl9IRUlHSFQgLSA2KTsKKyAgICBldmFzX29iamVjdF9zaG93KGFwcC0+dXJsRW50cnkpOwor
ICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAtPnVybEVudHJ5LCBFVkFTX0NB
TExCQUNLX01PVVNFX0RPV04sIG9uX3VybGJhcl9tb3VzZV9kb3duLCBhcHApOworICAgIGV2YXNf
b2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAtPnVybEVudHJ5LCBFVkFTX0NBTExCQUNLX0tF
WV9ET1dOLCBvbl91cmxiYXJfa2V5X2Rvd24sIGFwcCk7CisgICAgZXZhc19vYmplY3RfZXZlbnRf
Y2FsbGJhY2tfYWRkKGFwcC0+dXJsRW50cnksIEVWQVNfQ0FMTEJBQ0tfRk9DVVNfT1VULCBvbl91
cmxiYXJfZm9jdXNfb3V0LCBhcHApOworICAgIHJldHVybiAxOworfQorCiBzdGF0aWMgaW50CiBi
cm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqdGhlbWUsIGNvbnN0IGNo
YXIgKnVzZXJBZ2VudCwgRWluYV9SZWN0YW5nbGUgZ2VvbWV0cnksIGNvbnN0IGNoYXIgKmVuZ2lu
ZSwgY29uc3QgY2hhciAqYmFja2luZ1N0b3JlLCB1bnNpZ25lZCBjaGFyIGlzRmxhdHRlbmluZywg
dW5zaWduZWQgY2hhciBpc0Z1bGxzY3JlZW4sIGNvbnN0IGNoYXIgKmRhdGFiYXNlUGF0aCkKIHsK
QEAgLTY3Miw3ICs3OTksNyBAQCBicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3Qg
Y2hhciAqdGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9SZQogICAgIGlmICghYXBw
KQogICAgICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6IGNvdWxkIG5vdCBjcmVh
dGUgRVdlYkxhdW5jaGVyIHdpbmRvd1xuIik7CiAKLSAgICBhcHAtPmVlID0gZWNvcmVfZXZhc19u
ZXcoZW5naW5lLCAwLCAwLCBnZW9tZXRyeS53LCBnZW9tZXRyeS5oLCBOVUxMKTsKKyAgICBhcHAt
PmVlID0gZWNvcmVfZXZhc19uZXcoZW5naW5lLCAwLCAwLCBnZW9tZXRyeS53LCBnZW9tZXRyeS5o
ICsgVVJMX0JBUl9IRUlHSFQsIE5VTEwpOwogCiAgICAgaWYgKCFhcHAtPmVlKQogICAgICAgICBy
ZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6IGNvdWxkIG5vdCBjb25zdHJ1Y3QgZXZhcy1l
Y29yZVxuIik7CkBAIC02OTYsOSArODIzLDkgQEAgYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1
cmwsIGNvbnN0IGNoYXIgKnRoZW1lLCBjb25zdCBjaGFyICp1c2VyQWdlbnQsIEVpbmFfUmUKIAog
ICAgIGFwcC0+YmcgPSBldmFzX29iamVjdF9yZWN0YW5nbGVfYWRkKGFwcC0+ZXZhcyk7CiAgICAg
ZXZhc19vYmplY3RfbmFtZV9zZXQoYXBwLT5iZywgImJnIik7Ci0gICAgZXZhc19vYmplY3RfY29s
b3Jfc2V0KGFwcC0+YmcsIDI1NSwgMCwgMjU1LCAyNTUpOworICAgIGV2YXNfb2JqZWN0X2NvbG9y
X3NldChhcHAtPmJnLCA2MCwgNzUsIDk4LCAyNTUpOwogICAgIGV2YXNfb2JqZWN0X21vdmUoYXBw
LT5iZywgMCwgMCk7Ci0gICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YmcsIGdlb21ldHJ5Lncs
IGdlb21ldHJ5LmgpOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShhcHAtPmJnLCBnZW9tZXRyeS53
LCBnZW9tZXRyeS5oICsgVVJMX0JBUl9IRUlHSFQpOwogICAgIGV2YXNfb2JqZWN0X2xheWVyX3Nl
dChhcHAtPmJnLCBFVkFTX0xBWUVSX01JTik7CiAgICAgZXZhc19vYmplY3Rfc2hvdyhhcHAtPmJn
KTsKIApAQCAtNzM1LDYgKzg2Miw4IEBAIGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBj
b25zdCBjaGFyICp0aGVtZSwgY29uc3QgY2hhciAqdXNlckFnZW50LCBFaW5hX1JlCiAgICAgZXZh
c19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgInRvb2x0aXAsdGV4dCxz
ZXQiLCBvbl90b29sdGlwX3RleHRfc2V0LCBhcHApOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJpbnB1dG1ldGhvZCxjaGFuZ2VkIiwgb25faW5wdXRt
ZXRob2RfY2hhbmdlZCwgYXBwKTsKIAorICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2Fk
ZChhcHAtPmJyb3dzZXIsICJ1cmksY2hhbmdlZCIsIG9uX3VybF9jaGFuZ2VkLCBhcHApOworCiAv
KiAgICAgZXdrX2NhbGxiYWNrX3Jlc2l6ZV9yZXF1ZXN0ZWRfYWRkKGFwcC0+YnJvd3Nlciwgb25f
cmVzaXplX3JlcXVlc3RlZCwgYXBwLT5lZSk7ICovCiAKICAgICBldmFzX29iamVjdF9ldmVudF9j
YWxsYmFja19hZGQoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBvbl9rZXlf
ZG93biwgYXBwKTsKQEAgLTc0MywxMSArODcyLDE2IEBAIGJyb3dzZXJDcmVhdGUoY29uc3QgY2hh
ciAqdXJsLCBjb25zdCBjaGFyICp0aGVtZSwgY29uc3QgY2hhciAqdXNlckFnZW50LCBFaW5hX1Jl
CiAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgRVZBU19D
QUxMQkFDS19GT0NVU19PVVQsIG9uX2ZvY3VzX291dCwgYXBwKTsKICAgICBldmFzX29iamVjdF9l
dmVudF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0RFTCwgb25fYnJv
d3Nlcl9kZWwsIGFwcCk7CiAKLSAgICBldmFzX29iamVjdF9tb3ZlKGFwcC0+YnJvd3NlciwgMTAs
IDEwKTsKLSAgICBldmFzX29iamVjdF9yZXNpemUoYXBwLT5icm93c2VyLCBnZW9tZXRyeS53IC0g
MjAsIGdlb21ldHJ5LmggLSAyMCk7CisgICAgZXZhc19vYmplY3RfbW92ZShhcHAtPmJyb3dzZXIs
IDUsIDUgKyBVUkxfQkFSX0hFSUdIVCk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YnJv
d3NlciwgZ2VvbWV0cnkudyAtIDEwLCBnZW9tZXRyeS5oIC0gMTApOwogCi0gICAgaWYgKHVybCAm
JiAodXJsWzBdICE9ICdcMCcpKQotICAgICAgICBld2tfdmlld191cmlfc2V0KGFwcC0+YnJvd3Nl
ciwgdXJsKTsKKyAgICBpZiAodXJsICYmICh1cmxbMF0gIT0gJ1wwJykpIHsKKyAgICAgICAgY2hh
ciAqZnVsbF91cmwgPSBnZXRVcmlXaXRoUHJvdG9jb2wodXJsKTsKKyAgICAgICAgZXdrX3ZpZXdf
dXJpX3NldChhcHAtPmJyb3dzZXIsIGZ1bGxfdXJsKTsKKworICAgICAgICBpZiAoZnVsbF91cmwp
CisgICAgICAgICAgICBmcmVlKGZ1bGxfdXJsKTsKKyAgICB9CiAKICAgICBldmFzX29iamVjdF9z
aG93KGFwcC0+YnJvd3Nlcik7CiAgICAgZWNvcmVfZXZhc19zaG93KGFwcC0+ZWUpOwpAQCAtNzU2
LDYgKzg5MCw4IEBAIGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICp0
aGVtZSwgY29uc3QgY2hhciAqdXNlckFnZW50LCBFaW5hX1JlCiAKICAgICB3aW5kb3dzID0gZWlu
YV9saXN0X2FwcGVuZCh3aW5kb3dzLCBhcHApOwogCisgICAgdXJsQmFyQ3JlYXRlKGFwcCk7CisK
ICAgICByZXR1cm4gMTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100751</attachid>
            <date>2011-07-13 18:37:06 -0700</date>
            <delta_ts>2011-07-13 21:54:50 -0700</delta_ts>
            <desc>patch for kubo&apos;s comment.</desc>
            <filename>patch-[20110714]-[hyerim.bae@samsung.com]-[EWebLauncherurlbar].patch</filename>
            <type>text/plain</type>
            <size>18427</size>
            <attacher name="Hyerim Bae">hyerim.bae</attacher>
            
              <data encoding="base64">Y29tbWl0IDk1YTFlNTM2YmQ1ZDliN2ZhODE5NzRlZTI0YzI5N2Y3YmRkOGJjNGEKQXV0aG9yOiBI
eWVyaW0gQmFlIDxoeWVyaW0uYmFlQHNhbXN1bmcuY29tPgpEYXRlOiAgIFRodSBKdWwgMTQgMTA6
MzI6MjcgMjAxMSArMDkwMAoKICAgIHBhdGNoLVsyMDExMDcxNF0tW2h5ZXJpbS5iYWVAc2Ftc3Vu
Zy5jb21dLVtFV2ViTGF1bmNoZXJ1cmxiYXJdLnBhdGNoCgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ01h
a2VMaXN0c0VmbC50eHQgYi9Ub29scy9DTWFrZUxpc3RzRWZsLnR4dApvbGQgbW9kZSAxMDA2NDQK
bmV3IG1vZGUgMTAwNzU1CmluZGV4IDI0ZWY4NWMuLjg5ZjJlYjQKLS0tIGEvVG9vbHMvQ01ha2VM
aXN0c0VmbC50eHQKKysrIGIvVG9vbHMvQ01ha2VMaXN0c0VmbC50eHQKQEAgLTQ5LDYgKzQ5LDkg
QEAgSUYgKFdURl9VU0VfQ1VSTCkKICAgTElTVChBUFBFTkQgRVdlYkxhdW5jaGVyX0xJTktfRkxB
R1MgJHtDVVJMX0xERkxBR1N9KQogRU5ESUYgKCkKIAorU0VUKEVOVFJZX0VESl9QQVRIICIke0NN
QUtFX0JJTkFSWV9ESVJ9L1Byb2dyYW1zL2VudHJ5LmVkaiIpCitBRERfREVGSU5JVElPTlMoLURF
TlRSWV9FREpfUEFUSD1cIiR7RU5UUllfRURKX1BBVEh9XCIpCisKICMgT3ZlcnJpZGUgZGF0YSBk
aXJlY3RvcnkuIFdlIGFsd2F5cyB3YW50IHRvIGdldCBhIGZyZXNoIHRoZW1lLgogUkVNT1ZFX0RF
RklOSVRJT05TKC1EREFUQV9ESVI9XCIke0RBVEFfRElSfVwiKQogQUREX0RFRklOSVRJT05TKC1E
REFUQV9ESVI9XCIke0JVSUxEX0RBVEFfRElSfVwiKQpAQCAtNTcsMyArNjAsMTEgQEAgSU5DTFVE
RV9ESVJFQ1RPUklFUygke0VXZWJMYXVuY2hlcl9JTkNMVURFX0RJUkVDVE9SSUVTfSkKIEFERF9F
WEVDVVRBQkxFKFByb2dyYW1zL0VXZWJMYXVuY2hlciAke0VXZWJMYXVuY2hlcl9TT1VSQ0VTfSkK
IFRBUkdFVF9MSU5LX0xJQlJBUklFUyhQcm9ncmFtcy9FV2ViTGF1bmNoZXIgJHtFV2ViTGF1bmNo
ZXJfTElCUkFSSUVTfSkKIEFERF9UQVJHRVRfUFJPUEVSVElFUyhQcm9ncmFtcy9FV2ViTGF1bmNo
ZXIgTElOS19GTEFHUyAiJHtFV2ViTGF1bmNoZXJfTElOS19GTEFHU30iKQorCisjIGVudHJ5LmVk
agorQUREX0NVU1RPTV9UQVJHRVQoZW50cnkuZWRqCisgICAgICAgICAgICAgICAgQ09NTUFORCBl
ZGplX2NjIC1pZCAke1RPT0xTX0RJUn0vRVdlYkxhdW5jaGVyL2ltYWdlcworICAgICAgICAgICAg
ICAgICR7VE9PTFNfRElSfS9FV2ViTGF1bmNoZXIvZW50cnkuZWRjICR7RU5UUllfRURKX1BBVEh9
CisgICAgICAgICAgICAgICAgREVQRU5EUyAke1RPT0xTX0RJUn0vRVdlYkxhdW5jaGVyL2VudHJ5
LmVkYworKQorQUREX0RFUEVOREVOQ0lFUyhQcm9ncmFtcy9FV2ViTGF1bmNoZXIgZW50cnkuZWRq
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCm9sZCBtb2Rl
IDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggY2U1MzViMi4uYTA4YmQxZQotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEt
MDctMTMgIEh5ZXJpbSBCYWUgIDxoeWVyaW0uYmFlQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtFRkxdIEFkZCB1cmwgYmFyIHRv
IEVXZWJMYXVuY2hlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYzOTY2CisKKyAgICAgICAgV2hlbiBhIHVzZXIgY2xpY2tzIGEgVVJMIGJhciwgdGhl
IHdob2xlIHRleHQgaW4gdGhlIGJhciB3aWxsIGJlIHNlbGVjdGVkLgorICAgICAgICBUaGVuIHRo
ZSB1c2VyIGNhbiBuYXZpZ2F0ZSB0byB0aGUgc2l0ZSB3aGVyZSBoZSBvciBzaGUgaW50ZW5kcyB0
by4KKworICAgICAgICAqIENNYWtlTGlzdHNFZmwudHh0OgorICAgICAgICAqIEVXZWJMYXVuY2hl
ci9lbnRyeS5lZGMKKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvbWFpbi5jOgorICAgICAgICAob25f
ZWNvcmVfZXZhc19yZXNpemUpOgorICAgICAgICAob25fdXJsX2NoYW5nZWQpOgorICAgICAgICAo
b25fbW91c2VfZG93bik6CisgICAgICAgIChvbl9rZXlfZG93bik6CisgICAgICAgIChvbl9icm93
c2VyX2RlbCk6CisgICAgICAgIChnZXRVcmlXaXRoUHJvdG9jb2wpOgorICAgICAgICAob25fdXJs
YmFyX2tleV9kb3duKToKKyAgICAgICAgKG9uX3VybGJhcl9tb3VzZV9kb3duKToKKyAgICAgICAg
KG9uX3VybGJhcl9mb2N1c19vdXQpOgorICAgICAgICAodXJsQmFyQ3JlYXRlKToKKyAgICAgICAg
KGJyb3dzZXJDcmVhdGUpOgorCiAyMDExLTA3LTEzICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0
Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OOiBHaXRUZXN0V2l0aE1vY2sudGVzdF9jcmVhdGVf
cGF0Y2ggZmFpbHMKZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci9lbnRyeS5lZGMgYi9U
b29scy9FV2ViTGF1bmNoZXIvZW50cnkuZWRjCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAw
MDAwMDAuLjQ1NDliNGUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9FV2ViTGF1bmNoZXIvZW50
cnkuZWRjCkBAIC0wLDAgKzEsMTc2IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAwOCwyMDA5
IElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQorICAgIENvcHlyaWdodCAoQykg
MjAwOSwyMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgICAgQ29weXJpZ2h0IChDKSAy
MDA5LDIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcworCisgICAgVGhpcyBmaWxlIGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
ICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorCisgICAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNkZWZpbmUgRU5UUllfVEVYVF9DT0xPUl9JTkMg
IiMwMDAwMDAiCisjZGVmaW5lIEVOVFJZX0NVUlNPUl9DT0xPUl9JTkMgMCAwIDAgMjU1CisKK2Nv
bGxlY3Rpb25zIHsKKyAgIGdyb3VwIHsKKyAgICAgIG5hbWU6ICJFV2ViTGF1bmNoZXIvZW50cnkv
YmFzZS9kZWZhdWx0IjsKKyAgICAgIGRhdGEuaXRlbTogImRlZmF1bHRfZm9udF9zaXplIiAiMTYi
OworICAgICAgc3R5bGVzCisgICAgICB7CisgICAgICAgICBzdHlsZSB7CisgICAgICAgICAgICBu
YW1lOiAiZW50cnlfdGV4dGJsb2NrX3N0eWxlIjsKKyAgICAgICAgICAgIGJhc2U6ICJmb250PVJv
bWFuIGZvbnRfc2l6ZT0xNiBjb2xvcj0iRU5UUllfVEVYVF9DT0xPUl9JTkMiIHdyYXA9bWl4ZWQi
OworICAgICAgICAgfQorICAgICAgfQorICAgICAgcGFydHMgeworICAgICAgICAgcGFydCB7Cisg
ICAgICAgICAgICBuYW1lOiAiZW50cnkuc3dhbGxvdy5iYWNrZ3JvdW5kIjsKKyAgICAgICAgICAg
IHR5cGU6IFNXQUxMT1c7CisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7IHN0YXRlOiAiZGVmYXVs
dCIgMC4wOworICAgICAgICAgICAgICAgdmlzaWJsZTogMTsKKyAgICAgICAgICAgICAgIHJlbDEg
eyByZWxhdGl2ZTogMCAwOyB0bzogInVybC50ZXh0IjsgfQorICAgICAgICAgICAgICAgcmVsMiB7
IHJlbGF0aXZlOiAxIDE7IHRvOiAidXJsLnRleHQiOyB9CisgICAgICAgICAgICB9CisgICAgICAg
ICB9CisgICAgICB9CisgICAgICBwYXJ0cyB7CisgICAgICAgICBwYXJ0IHsKKyAgICAgICAgICAg
IG5hbWU6ICJ1cmwudGV4dCI7CisgICAgICAgICAgICB0eXBlOiBURVhUQkxPQ0s7CisgICAgICAg
ICAgICBtb3VzZV9ldmVudHM6IDE7CisgICAgICAgICAgICBzY2FsZTogMTsKKyAgICAgICAgICAg
IGVudHJ5X21vZGU6IEVESVRBQkxFOworICAgICAgICAgICAgbXVsdGlsaW5lOiAxOworICAgICAg
ICAgICAgc291cmNlOiAiRVdlYkxhdW5jaGVyL2VudHJ5L3NlbGVjdGlvbi9kZWZhdWx0IjsgLy8g
c2VsZWN0aW9uIHVuZGVyCisgICAgICAgICAgICBzb3VyY2U0OiAiRVdlYkxhdW5jaGVyL2VudHJ5
L2N1cnNvci9kZWZhdWx0IjsgLy8gY3Vyc29yb3ZlcgorICAgICAgICAgICAgZGVzY3JpcHRpb24g
eyBzdGF0ZTogImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgICAgIGZpeGVkOiAxIDA7CisgICAg
ICAgICAgICAgICB0ZXh0IHsKKyAgICAgICAgICAgICAgICAgIHN0eWxlOiAiZW50cnlfdGV4dGJs
b2NrX3N0eWxlIjsKKyAgICAgICAgICAgICAgICAgIG1pbjogMCAxOworICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgfQorICAgICAgcHJvZ3JhbXMgewor
ICAgICAgICAgcHJvZ3JhbSB7CisgICAgICAgICAgICBuYW1lOiAiZm9jdXMiOworICAgICAgICAg
ICAgc2lnbmFsOiAibG9hZCI7CisgICAgICAgICAgICBzb3VyY2U6ICIiOworICAgICAgICAgICAg
YWN0aW9uOiBGT0NVU19TRVQ7CisgICAgICAgICAgICB0YXJnZXQ6ICJ1cmwudGV4dCI7CisgICAg
ICAgICB9CisgICAgICB9CisgICB9CisKKyAgIGdyb3VwIHsKKyAgICAgIG5hbWU6ICJFV2ViTGF1
bmNoZXIvZW50cnkvY3Vyc29yL2RlZmF1bHQiOworICAgICAgcGFydHMgeworICAgICAgICAgcGFy
dCB7CisgICAgICAgICAgICBuYW1lOiAiY2xpcDIiOworICAgICAgICAgICAgdHlwZTogUkVDVDsK
KyAgICAgICAgICAgIG1vdXNlX2V2ZW50czogMDsKKyAgICAgICAgICAgIHNjYWxlOiAxOworICAg
ICAgICAgICAgZGVzY3JpcHRpb24geyBzdGF0ZTogImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAg
ICAgIHJlbDEudG86ICJjbGlwIjsKKyAgICAgICAgICAgICAgIHJlbDIudG86ICJjbGlwIjsKKyAg
ICAgICAgICAgICAgIHZpc2libGU6IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkZXNj
cmlwdGlvbiB7IHN0YXRlOiAiZm9jdXNlZCIgMC4wOworICAgICAgICAgICAgICAgaW5oZXJpdDog
ImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgICAgIHZpc2libGU6IDE7CisgICAgICAgICAgICB9
CisgICAgICAgICB9CisgICAgICAgICBwYXJ0IHsKKyAgICAgICAgICAgIG5hbWU6ICJjbGlwIjsK
KyAgICAgICAgICAgIHR5cGU6IFJFQ1Q7CisgICAgICAgICAgICBtb3VzZV9ldmVudHM6IDA7Cisg
ICAgICAgICAgICBzY2FsZTogMTsKKyAgICAgICAgICAgIGNsaXBfdG86ICJjbGlwMiI7CisgICAg
ICAgICAgICBkZXNjcmlwdGlvbiB7IHN0YXRlOiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAg
ICAgcmVsMS5vZmZzZXQ6IC0xMCAwOworICAgICAgICAgICAgICAgcmVsMi5vZmZzZXQ6IDkgOTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlc2NyaXB0aW9uIHsgc3RhdGU6ICJoaWRkZW4i
IDAuMDsKKyAgICAgICAgICAgICAgIGluaGVyaXQ6ICJkZWZhdWx0IiAwLjA7CisgICAgICAgICAg
ICAgICB2aXNpYmxlOiAwOworICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgICAgcGFy
dCB7CisgICAgICAgICAgICBuYW1lOiAiYmFzZSI7CisgICAgICAgICAgICBtb3VzZV9ldmVudHM6
IDA7CisgICAgICAgICAgICBzY2FsZTogMTsKKyAgICAgICAgICAgIGNsaXBfdG86ICJjbGlwIjsK
KyAgICAgICAgICAgIGRlc2NyaXB0aW9uIHsgc3RhdGU6ICJkZWZhdWx0IiAwLjA7CisgICAgICAg
ICAgICAgICBtaW46IDIgMjsKKyAgICAgICAgICAgICAgIGFsaWduOiAwLjUgMS4wOworICAgICAg
ICAgICAgICAgY29sb3I6IDAgMCAwIDA7CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAg
ICAgICBwYXJ0IHsKKyAgICAgICAgICAgIG5hbWU6ICJnbG93IjsKKyAgICAgICAgICAgIHR5cGU6
IFJFQ1Q7CisgICAgICAgICAgICBtb3VzZV9ldmVudHM6IDA7CisgICAgICAgICAgICBzY2FsZTog
MTsKKyAgICAgICAgICAgIGNsaXBfdG86ICJjbGlwMiI7CisgICAgICAgICAgICBkZXNjcmlwdGlv
biB7IHN0YXRlOiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgbWluOiAxIDA7CisgICAg
ICAgICAgICAgICBmaXhlZDogMSAwOworICAgICAgICAgICAgICAgYWxpZ246IDAuNSAwLjU7Cisg
ICAgICAgICAgICAgICB2aXNpYmxlOiAxOworICAgICAgICAgICAgICAgcmVsMSB7CisgICAgICAg
ICAgICAgICAgICByZWxhdGl2ZTogMC4wICAwLjA7CisgICAgICAgICAgICAgICAgICBvZmZzZXQ6
IDAgMjsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIHJlbDIgeworICAgICAgICAg
ICAgICAgICAgcmVsYXRpdmU6IDAuMCAgMS4wOworICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAw
IC0yOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgY29sb3I6IEVOVFJZX0NVUlNP
Ul9DT0xPUl9JTkM7CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICB9CisgICAgICBw
cm9ncmFtcyB7CisgICAgICAgICBwcm9ncmFtIHsKKyAgICAgICAgICAgIG5hbWU6ICJmb2N1c2Vk
IjsKKyAgICAgICAgICAgIHNpZ25hbDogImVudHJ5LGFjdGlvbixmb2N1cyI7CisgICAgICAgICAg
ICBzb3VyY2U6ICJlbnRyeSI7CisgICAgICAgICAgICBhY3Rpb246IFNUQVRFX1NFVCAiZm9jdXNl
ZCIgMC4wOworICAgICAgICAgICAgdGFyZ2V0OiAiY2xpcDIiOworICAgICAgICAgfQorICAgICAg
ICAgcHJvZ3JhbSB7CisgICAgICAgICAgICBuYW1lOiAidW5mb2N1c2VkIjsKKyAgICAgICAgICAg
IHNpZ25hbDogImVudHJ5LGFjdGlvbix1bmZvY3VzIjsKKyAgICAgICAgICAgIHNvdXJjZTogImVu
dHJ5IjsKKyAgICAgICAgICAgIGFjdGlvbjogU1RBVEVfU0VUICJkZWZhdWx0IiAwLjA7CisgICAg
ICAgICAgICB0YXJnZXQ6ICJjbGlwMiI7CisgICAgICAgICB9CisgICAgICB9CisgICB9CisKKyAg
IGdyb3VwIHsKKyAgICAgIG5hbWU6ICJFV2ViTGF1bmNoZXIvZW50cnkvc2VsZWN0aW9uL2RlZmF1
bHQiOworICAgICAgcGFydHMgeworICAgICAgICAgcGFydCB7CisgICAgICAgICAgICBuYW1lOiAi
YmciOworICAgICAgICAgICAgdHlwZTogUkVDVDsKKyAgICAgICAgICAgIHNjYWxlOiAxOworICAg
ICAgICAgICAgbW91c2VfZXZlbnRzOiAwOworICAgICAgICAgICAgZGVzY3JpcHRpb24geyBzdGF0
ZTogImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgICAgIGNvbG9yOiAxMzggMTgzIDIyMyAxMjg7
CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICB9CisgICB9Cit9CmRpZmYgLS1naXQg
YS9Ub29scy9FV2ViTGF1bmNoZXIvbWFpbi5jIGIvVG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYwpv
bGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IGQzYmI1YTEuLmZkZjdhOWMKLS0t
IGEvVG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYworKysgYi9Ub29scy9FV2ViTGF1bmNoZXIvbWFp
bi5jCkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbmNsdWRlICJFV2ViS2l0LmgiCiAKLSNpbmNsdWRl
IDxjdHlwZS5oPgogI2luY2x1ZGUgPEVjb3JlLmg+CiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgog
I2luY2x1ZGUgPEVjb3JlX0ZpbGUuaD4KQEAgLTM3LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxFY29y
ZV9YLmg+CiAjaW5jbHVkZSA8RWRqZS5oPgogI2luY2x1ZGUgPEV2YXMuaD4KKyNpbmNsdWRlIDxj
dHlwZS5oPgogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVk
ZSA8c3RkbGliLmg+CkBAIC00Nyw2ICs0Nyw3IEBACiAKICNkZWZpbmUgREVGQVVMVF9XSURUSCAg
ICAgIDgwMAogI2RlZmluZSBERUZBVUxUX0hFSUdIVCAgICAgNjAwCisjZGVmaW5lIFVSTF9CQVJf
SEVJR0hUICAgICAzMAogI2RlZmluZSBERUZBVUxUX1pPT01fSU5JVCAgMS4wCiAKICNkZWZpbmUg
aW5mbyhmb3JtYXQsIGFyZ3MuLi4pICAgICAgIFwKQEAgLTE1MCw2ICsxNTEsOCBAQCB0eXBlZGVm
IHN0cnVjdCBfRUxhdW5jaGVyIHsKICAgICBFdmFzICpldmFzOwogICAgIEV2YXNfT2JqZWN0ICpi
ZzsKICAgICBFdmFzX09iamVjdCAqYnJvd3NlcjsKKyAgICBFdmFzX09iamVjdCAqdXJsQmFyQXJl
YTsKKyAgICBFdmFzX09iamVjdCAqdXJsRW50cnk7CiAgICAgY29uc3QgY2hhciAqdGhlbWU7CiAg
ICAgY29uc3QgY2hhciAqdXNlckFnZW50OwogICAgIGNvbnN0IGNoYXIgKmJhY2tpbmdTdG9yZTsK
QEAgLTE2MCw2ICsxNjMsOSBAQCB0eXBlZGVmIHN0cnVjdCBfRUxhdW5jaGVyIHsKIHN0YXRpYyB2
b2lkIGJyb3dzZXJEZXN0cm95KEVjb3JlX0V2YXMgKmVlKTsKIHN0YXRpYyB2b2lkIGNsb3NlV2lu
ZG93KEVjb3JlX0V2YXMgKmVlKTsKIHN0YXRpYyBpbnQgYnJvd3NlckNyZWF0ZShjb25zdCBjaGFy
ICp1cmwsIGNvbnN0IGNoYXIgKnRoZW1lLCBjb25zdCBjaGFyICp1c2VyQWdlbnQsIEVpbmFfUmVj
dGFuZ2xlIGdlb21ldHJ5LCBjb25zdCBjaGFyICplbmdpbmUsIGNvbnN0IGNoYXIgKmJhY2tpbmdT
dG9yZSwgdW5zaWduZWQgY2hhciBpc0ZsYXR0ZW5pbmcsIHVuc2lnbmVkIGNoYXIgaXNGdWxsc2Ny
ZWVuLCBjb25zdCBjaGFyICpkYXRhYmFzZVBhdGgpOworc3RhdGljIHZvaWQgb25fdXJsYmFyX2tl
eV9kb3duKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50
X2luZm8pOworc3RhdGljIHZvaWQgb25fdXJsYmFyX21vdXNlX2Rvd24odm9pZCAqZGF0YSwgRXZh
cyAqZSwgRXZhc19PYmplY3QgKm9iaiwgdm9pZCAqZXZlbnRfaW5mbyk7CitzdGF0aWMgdm9pZCBv
bl91cmxiYXJfZm9jdXNfb3V0KHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmos
IHZvaWQgKmV2ZW50X2luZm8pOwogCiBzdGF0aWMgdm9pZAogcHJpbnRfaGlzdG9yeShFaW5hX0xp
c3QgKmxpc3QpCkBAIC0yMjMsNiArMjI5LDcgQEAgb25fZWNvcmVfZXZhc19yZXNpemUoRWNvcmVf
RXZhcyAqZWUpCiB7CiAgICAgRXZhc19PYmplY3QgKndlYnZpZXc7CiAgICAgRXZhc19PYmplY3Qg
KmJnOworICAgIEV2YXNfT2JqZWN0ICp1cmxCYXJBcmVhOwogICAgIGludCB3LCBoOwogCiAgICAg
ZWNvcmVfZXZhc19nZW9tZXRyeV9nZXQoZWUsIE5VTEwsIE5VTEwsICZ3LCAmaCk7CkBAIC0yMzIs
OCArMjM5LDEyIEBAIG9uX2Vjb3JlX2V2YXNfcmVzaXplKEVjb3JlX0V2YXMgKmVlKQogICAgIGV2
YXNfb2JqZWN0X3Jlc2l6ZShiZywgdywgaCk7CiAKICAgICB3ZWJ2aWV3ID0gZXZhc19vYmplY3Rf
bmFtZV9maW5kKGVjb3JlX2V2YXNfZ2V0KGVlKSwgImJyb3dzZXIiKTsKLSAgICBldmFzX29iamVj
dF9tb3ZlKHdlYnZpZXcsIDEwLCAxMCk7Ci0gICAgZXZhc19vYmplY3RfcmVzaXplKHdlYnZpZXcs
IHcgLSAyMCwgaCAtIDIwKTsKKyAgICBldmFzX29iamVjdF9tb3ZlKHdlYnZpZXcsIDUsIDUgKyBV
UkxfQkFSX0hFSUdIVCk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKHdlYnZpZXcsIHcgLSAxMCwg
aCAtIFVSTF9CQVJfSEVJR0hUIC0gMTApOworCisgICAgdXJsQmFyQXJlYSA9IGV2YXNfb2JqZWN0
X25hbWVfZmluZChlY29yZV9ldmFzX2dldChlZSksICJ1cmxCYXJBcmVhIik7CisgICAgZXZhc19v
YmplY3RfbW92ZSh1cmxCYXJBcmVhLCA1LCAwKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUodXJs
QmFyQXJlYSwgdyAtIDEwLCBVUkxfQkFSX0hFSUdIVCk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC00
NzQsMTAgKzQ4NSwyNiBAQCBvbl92aWV3cG9ydF9jaGFuZ2VkKHZvaWQqIHVzZXJfZGF0YSwgRXZh
c19PYmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2ZW50X2luZm8pCiB9CiAKIHN0YXRpYyB2b2lkCi1v
bl9tb3VzZV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqIGUsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2
b2lkKiBldmVudF9pbmZvKQorb25fdXJsX2NoYW5nZWQodm9pZCAqdXNlcl9kYXRhLCBFdmFzX09i
amVjdCAqd2Vidmlldywgdm9pZCAqZXZlbnRfaW5mbykKK3sKKyAgICBFTGF1bmNoZXIgKmFwcCA9
IChFTGF1bmNoZXIgKil1c2VyX2RhdGE7CisKKyAgICBjb25zdCBjaGFyICp1cmwgPSBld2tfZnJh
bWVfdXJpX2dldChld2tfdmlld19mcmFtZV9tYWluX2dldCh3ZWJ2aWV3KSk7CisgICAgaW5mbygi
WyVzOiVkXXVybD1bJXNdXG4iLCBfX2Z1bmNfXywgX19MSU5FX18sIHVybCk7CisgICAgZWRqZV9v
YmplY3RfcGFydF90ZXh0X3NldChhcHAtPnVybEVudHJ5LCAidXJsLnRleHQiLCB1cmwpOworfQor
CitzdGF0aWMgdm9pZAorb25fbW91c2VfZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09i
amVjdCAqd2Vidmlldywgdm9pZCAqZXZlbnRfaW5mbykKIHsKLSAgICBFdmFzX0V2ZW50X01vdXNl
X0Rvd24gKmV2ID0gKEV2YXNfRXZlbnRfTW91c2VfRG93biopIGV2ZW50X2luZm87Ci0gICAgaWYg
KGV2LT5idXR0b24gPT0gMikKKyAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24gKmV2ID0gZXZlbnRf
aW5mbzsKKyAgICBFTGF1bmNoZXIgKmFwcCA9IChFTGF1bmNoZXIgKilkYXRhOworCisgICAgaW5m
bygiWyVzOiVkXWV2LT5idXR0b249JWRcbiIsIF9fZnVuY19fLCBfX0xJTkVfXywgZXYtPmJ1dHRv
bik7CisKKyAgICBpZiAoZXYtPmJ1dHRvbiA9PSAxKQorICAgICAgICBldmFzX29iamVjdF9mb2N1
c19zZXQod2VidmlldywgRUlOQV9UUlVFKTsKKyAgICBlbHNlIGlmIChldi0+YnV0dG9uID09IDIp
CiAgICAgICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldCh3ZWJ2aWV3LCAhZXZhc19vYmplY3RfZm9j
dXNfZ2V0KHdlYnZpZXcpKTsKIH0KIApAQCAtNDk2LDggKzUyMyw5IEBAIG9uX2ZvY3VzX2luKHZv
aWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pCiBz
dGF0aWMgdm9pZAogb25fa2V5X2Rvd24odm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3Qg
Km9iaiwgdm9pZCAqZXZlbnRfaW5mbykKIHsKLSAgICBFdmFzX0V2ZW50X0tleV9Eb3duICpldiA9
IChFdmFzX0V2ZW50X0tleV9Eb3duKikgZXZlbnRfaW5mbzsKKyAgICBFdmFzX0V2ZW50X0tleV9E
b3duICpldiA9IGV2ZW50X2luZm87CiAgICAgRUxhdW5jaGVyICphcHAgPSBkYXRhOworCiAgICAg
c3RhdGljIGNvbnN0IGNoYXIgKmVuY29kaW5nc1tdID0gewogICAgICAgICAiSVNPLTg4NTktMSIs
CiAgICAgICAgICJVVEYtOCIsCkBAIC02MzEsNiArNjU5LDEwIEBAIG9uX2Jyb3dzZXJfZGVsKHZv
aWQgKmRhdGEsIEV2YXMgKmV2YXMsIEV2YXNfT2JqZWN0ICpicm93c2VyLCB2b2lkICpldmVudCkK
ICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwoYXBwLT5icm93c2VyLCBFVkFTX0NB
TExCQUNLX0ZPQ1VTX0lOLCBvbl9mb2N1c19pbik7CiAgICAgZXZhc19vYmplY3RfZXZlbnRfY2Fs
bGJhY2tfZGVsKGFwcC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19GT0NVU19PVVQsIG9uX2ZvY3Vz
X291dCk7CiAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKGFwcC0+YnJvd3Nlciwg
RVZBU19DQUxMQkFDS19ERUwsIG9uX2Jyb3dzZXJfZGVsKTsKKworICAgIGV2YXNfb2JqZWN0X2V2
ZW50X2NhbGxiYWNrX2RlbChhcHAtPnVybEVudHJ5LCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBv
bl91cmxiYXJfa2V5X2Rvd24pOworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChh
cHAtPnVybEVudHJ5LCBFVkFTX0NBTExCQUNLX01PVVNFX0RPV04sIG9uX3VybGJhcl9tb3VzZV9k
b3duKTsKKyAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwoYXBwLT51cmxFbnRyeSwg
RVZBU19DQUxMQkFDS19GT0NVU19PVVQsIG9uX3VybGJhcl9mb2N1c19vdXQpOwogfQogCiBzdGF0
aWMgdm9pZApAQCAtNjYwLDYgKzY5MiwxMDEgQEAgcXVpdChFaW5hX0Jvb2wgc3VjY2VzcywgY29u
c3QgY2hhciAqbXNnKQogICAgIHJldHVybiBFWElUX1NVQ0NFU1M7CiB9CiAKK3N0YXRpYyBjaGFy
ICoKK2dldFVyaVdpdGhQcm90b2NvbChjb25zdCBjaGFyICp1cmwpCit7CisgICAgY2hhciAqZnVs
bF91cmwgPSBOVUxMOworICAgIGlmICh1cmwgJiYgc3RybGVuKHVybCkpIHsKKyAgICAgICAgY2hh
ciAqdG9rZW4gPSBzdHJzdHIodXJsLCAiOi8vIik7CisgICAgICAgIGlmICghdG9rZW4pIHsKKyAg
ICAgICAgICAgIGludCBsZW4gPSBzdHJsZW4odXJsKSArIHN0cmxlbigiaHR0cDovLyIpICsgMTsK
KyAgICAgICAgICAgIGZ1bGxfdXJsID0gbWFsbG9jKGxlbik7CisgICAgICAgICAgICBpZiAoZnVs
bF91cmwpIHsKKyAgICAgICAgICAgICAgICBmdWxsX3VybFtsZW5dID0gJ1wwJzsKKyAgICAgICAg
ICAgICAgICBzcHJpbnRmKGZ1bGxfdXJsLCAiaHR0cDovLyVzIiwgdXJsKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gZnVsbF91cmw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4g
TlVMTDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBzdHJkdXAodXJsKTsKK30KKwor
c3RhdGljIHZvaWQKK29uX3VybGJhcl9rZXlfZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFz
X09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQoreworICAgIEV2YXNfRXZlbnRfS2V5X0Rv
d24gKmV2ID0gZXZlbnRfaW5mbzsKKyAgICBFTGF1bmNoZXIgKmFwcCA9IGRhdGE7CisKKyAgICBp
ZiAoIWV2LT5rZXkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghc3RyY21wKGV2LT5rZXks
ICJFc2NhcGUiKSkgeworICAgICAgICBjbG9zZVdpbmRvdyhhcHAtPmVlKTsKKyAgICB9IGVsc2Ug
aWYgKCFzdHJjbXAoZXYtPmtleSwgIlJldHVybiIpKSB7CisgICAgICAgIGNvbnN0IGNoYXIgKnVy
bCA9IGVkamVfb2JqZWN0X3BhcnRfdGV4dF9nZXQoYXBwLT51cmxFbnRyeSwgInVybC50ZXh0Iik7
CisgICAgICAgIGlmICh1cmwgJiYgc3RybGVuKHVybCkpIHsKKyAgICAgICAgICAgIGNoYXIgKmZ1
bGxfdXJsID0gZ2V0VXJpV2l0aFByb3RvY29sKHVybCk7CisgICAgICAgICAgICBpZiAoZnVsbF91
cmwpIHsKKyAgICAgICAgICAgICAgICBld2tfdmlld191cmlfc2V0KGFwcC0+YnJvd3NlciwgZnVs
bF91cmwpOworICAgICAgICAgICAgICAgIGZyZWUoZnVsbF91cmwpOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgZXZhc19vYmplY3RfZm9jdXNfc2V0KGFwcC0+YnJvd3NlciwgRUlOQV9UUlVF
KTsKKyAgICAgICAgfQorICAgIH0KK30KKworc3RhdGljIHZvaWQKK29uX3VybGJhcl9tb3VzZV9k
b3duKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2lu
Zm8pCit7CisgICAgRXZhc19FdmVudF9Nb3VzZV9Eb3duICpldiA9IGV2ZW50X2luZm87CisgICAg
RUxhdW5jaGVyICphcHAgPSBkYXRhOworCisgICAgaWYgKGV2LT5idXR0b24gPT0gMSkgeworICAg
ICAgICBldmFzX29iamVjdF9mb2N1c19zZXQoYXBwLT51cmxFbnRyeSwgRUlOQV9UUlVFKTsKKyAg
ICAgICAgZWRqZV9vYmplY3Rfc2lnbmFsX2VtaXQoYXBwLT51cmxFbnRyeSwgImVudHJ5LGFjdGlv
bixmb2N1cyIsICJlbnRyeSIpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK29uX3VybGJhcl9m
b2N1c19vdXQodm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKm9iaiwgdm9pZCAqZXZl
bnRfaW5mbykKK3sKKyAgICBFTGF1bmNoZXIgKmFwcCA9IGRhdGE7CisKKyAgICBlZGplX29iamVj
dF9zaWduYWxfZW1pdChhcHAtPnVybEVudHJ5LCAiZW50cnksYWN0aW9uLHVuZm9jdXMiLCAiZW50
cnkiKTsKK30KKworc3RhdGljIGludAordXJsQmFyQ3JlYXRlKEVMYXVuY2hlciAqYXBwKQorewor
ICAgIGlmICghYXBwKQorICAgICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6IGNv
dWxkIG5vdCBnZXQgRVdlYkxhdW5jaGVyIHdpbmRvd1xuIik7CisKKyAgICBhcHAtPnVybEJhckFy
ZWEgPSBldmFzX29iamVjdF9yZWN0YW5nbGVfYWRkKGFwcC0+ZXZhcyk7CisgICAgZXZhc19vYmpl
Y3RfbmFtZV9zZXQoYXBwLT51cmxCYXJBcmVhLCAidXJsQmFyQXJlYSIpOworICAgIGV2YXNfb2Jq
ZWN0X2NvbG9yX3NldChhcHAtPnVybEJhckFyZWEsIDI1NSwgMjU1LCAyNTUsIDI1NSk7CisgICAg
ZXZhc19vYmplY3RfbW92ZShhcHAtPnVybEJhckFyZWEsIDUsIDApOworICAgIGV2YXNfb2JqZWN0
X3Jlc2l6ZShhcHAtPnVybEJhckFyZWEsIERFRkFVTFRfV0lEVEggLSAxMCwgVVJMX0JBUl9IRUlH
SFQpOworICAgIGV2YXNfb2JqZWN0X3Nob3coYXBwLT51cmxCYXJBcmVhKTsKKworICAgIEV2YXMg
KmV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dldChhcHAtPnVybEJhckFyZWEpOworICAgIGFwcC0+
dXJsRW50cnkgPSBlZGplX29iamVjdF9hZGQoZXZhcyk7CisgICAgRWluYV9Cb29sIHJldCA9IGVk
amVfb2JqZWN0X2ZpbGVfc2V0KGFwcC0+dXJsRW50cnksIEVOVFJZX0VESl9QQVRILCAiRVdlYkxh
dW5jaGVyL2VudHJ5L2Jhc2UvZGVmYXVsdCIpOworCisgICAgaWYgKCFyZXQpCisgICAgICAgIGlu
Zm8oImVkamVfb2JqZWN0X2ZpbGVfc2V0IGZhaWxlZFxuIik7CisKKyAgICBlZGplX29iamVjdF9w
YXJ0X3RleHRfc2V0KGFwcC0+dXJsRW50cnksICJ1cmwudGV4dCIsICIiKTsKKyAgICBldmFzX29i
amVjdF9tb3ZlKGFwcC0+dXJsRW50cnksIDEwLCAzKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUo
YXBwLT51cmxFbnRyeSwgREVGQVVMVF9XSURUSCAtIDIwLCBVUkxfQkFSX0hFSUdIVCAtIDYpOwor
ICAgIGV2YXNfb2JqZWN0X3Nob3coYXBwLT51cmxFbnRyeSk7CisgICAgZXZhc19vYmplY3RfZXZl
bnRfY2FsbGJhY2tfYWRkKGFwcC0+dXJsRW50cnksIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfRE9XTiwg
b25fdXJsYmFyX21vdXNlX2Rvd24sIGFwcCk7CisgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJh
Y2tfYWRkKGFwcC0+dXJsRW50cnksIEVWQVNfQ0FMTEJBQ0tfS0VZX0RPV04sIG9uX3VybGJhcl9r
ZXlfZG93biwgYXBwKTsKKyAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQoYXBwLT51
cmxFbnRyeSwgRVZBU19DQUxMQkFDS19GT0NVU19PVVQsIG9uX3VybGJhcl9mb2N1c19vdXQsIGFw
cCk7CisgICAgcmV0dXJuIDE7Cit9CisKIHN0YXRpYyBpbnQKIGJyb3dzZXJDcmVhdGUoY29uc3Qg
Y2hhciAqdXJsLCBjb25zdCBjaGFyICp0aGVtZSwgY29uc3QgY2hhciAqdXNlckFnZW50LCBFaW5h
X1JlY3RhbmdsZSBnZW9tZXRyeSwgY29uc3QgY2hhciAqZW5naW5lLCBjb25zdCBjaGFyICpiYWNr
aW5nU3RvcmUsIHVuc2lnbmVkIGNoYXIgaXNGbGF0dGVuaW5nLCB1bnNpZ25lZCBjaGFyIGlzRnVs
bHNjcmVlbiwgY29uc3QgY2hhciAqZGF0YWJhc2VQYXRoKQogewpAQCAtNjcyLDcgKzc5OSw3IEBA
IGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICp0aGVtZSwgY29uc3Qg
Y2hhciAqdXNlckFnZW50LCBFaW5hX1JlCiAgICAgaWYgKCFhcHApCiAgICAgICAgIHJldHVybiBx
dWl0KEVJTkFfRkFMU0UsICJFUlJPUjogY291bGQgbm90IGNyZWF0ZSBFV2ViTGF1bmNoZXIgd2lu
ZG93XG4iKTsKIAotICAgIGFwcC0+ZWUgPSBlY29yZV9ldmFzX25ldyhlbmdpbmUsIDAsIDAsIGdl
b21ldHJ5LncsIGdlb21ldHJ5LmgsIE5VTEwpOworICAgIGFwcC0+ZWUgPSBlY29yZV9ldmFzX25l
dyhlbmdpbmUsIDAsIDAsIGdlb21ldHJ5LncsIGdlb21ldHJ5LmggKyBVUkxfQkFSX0hFSUdIVCwg
TlVMTCk7CiAKICAgICBpZiAoIWFwcC0+ZWUpCiAgICAgICAgIHJldHVybiBxdWl0KEVJTkFfRkFM
U0UsICJFUlJPUjogY291bGQgbm90IGNvbnN0cnVjdCBldmFzLWVjb3JlXG4iKTsKQEAgLTY5Niw5
ICs4MjMsOSBAQCBicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqdGhl
bWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9SZQogCiAgICAgYXBwLT5iZyA9IGV2YXNf
b2JqZWN0X3JlY3RhbmdsZV9hZGQoYXBwLT5ldmFzKTsKICAgICBldmFzX29iamVjdF9uYW1lX3Nl
dChhcHAtPmJnLCAiYmciKTsKLSAgICBldmFzX29iamVjdF9jb2xvcl9zZXQoYXBwLT5iZywgMjU1
LCAwLCAyNTUsIDI1NSk7CisgICAgZXZhc19vYmplY3RfY29sb3Jfc2V0KGFwcC0+YmcsIDYwLCA3
NSwgOTgsIDI1NSk7CiAgICAgZXZhc19vYmplY3RfbW92ZShhcHAtPmJnLCAwLCAwKTsKLSAgICBl
dmFzX29iamVjdF9yZXNpemUoYXBwLT5iZywgZ2VvbWV0cnkudywgZ2VvbWV0cnkuaCk7CisgICAg
ZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YmcsIGdlb21ldHJ5LncsIGdlb21ldHJ5LmggKyBVUkxf
QkFSX0hFSUdIVCk7CiAgICAgZXZhc19vYmplY3RfbGF5ZXJfc2V0KGFwcC0+YmcsIEVWQVNfTEFZ
RVJfTUlOKTsKICAgICBldmFzX29iamVjdF9zaG93KGFwcC0+YmcpOwogCkBAIC03MzUsNiArODYy
LDggQEAgYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IGNoYXIgKnRoZW1lLCBj
b25zdCBjaGFyICp1c2VyQWdlbnQsIEVpbmFfUmUKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxs
YmFja19hZGQoYXBwLT5icm93c2VyLCAidG9vbHRpcCx0ZXh0LHNldCIsIG9uX3Rvb2x0aXBfdGV4
dF9zZXQsIGFwcCk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJv
d3NlciwgImlucHV0bWV0aG9kLGNoYW5nZWQiLCBvbl9pbnB1dG1ldGhvZF9jaGFuZ2VkLCBhcHAp
OwogCisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgInVy
aSxjaGFuZ2VkIiwgb25fdXJsX2NoYW5nZWQsIGFwcCk7CisKIC8qICAgICBld2tfY2FsbGJhY2tf
cmVzaXplX3JlcXVlc3RlZF9hZGQoYXBwLT5icm93c2VyLCBvbl9yZXNpemVfcmVxdWVzdGVkLCBh
cHAtPmVlKTsgKi8KIAogICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAtPmJy
b3dzZXIsIEVWQVNfQ0FMTEJBQ0tfS0VZX0RPV04sIG9uX2tleV9kb3duLCBhcHApOwpAQCAtNzQz
LDExICs4NzIsMTYgQEAgYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IGNoYXIg
KnRoZW1lLCBjb25zdCBjaGFyICp1c2VyQWdlbnQsIEVpbmFfUmUKICAgICBldmFzX29iamVjdF9l
dmVudF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0ZPQ1VTX09VVCwg
b25fZm9jdXNfb3V0LCBhcHApOwogICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChh
cHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfREVMLCBvbl9icm93c2VyX2RlbCwgYXBwKTsKIAot
ICAgIGV2YXNfb2JqZWN0X21vdmUoYXBwLT5icm93c2VyLCAxMCwgMTApOwotICAgIGV2YXNfb2Jq
ZWN0X3Jlc2l6ZShhcHAtPmJyb3dzZXIsIGdlb21ldHJ5LncgLSAyMCwgZ2VvbWV0cnkuaCAtIDIw
KTsKKyAgICBldmFzX29iamVjdF9tb3ZlKGFwcC0+YnJvd3NlciwgNSwgNSArIFVSTF9CQVJfSEVJ
R0hUKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUoYXBwLT5icm93c2VyLCBnZW9tZXRyeS53IC0g
MTAsIGdlb21ldHJ5LmggLSAxMCk7CiAKLSAgICBpZiAodXJsICYmICh1cmxbMF0gIT0gJ1wwJykp
Ci0gICAgICAgIGV3a192aWV3X3VyaV9zZXQoYXBwLT5icm93c2VyLCB1cmwpOworICAgIGlmICh1
cmwgJiYgKHVybFswXSAhPSAnXDAnKSkgeworICAgICAgICBjaGFyICpmdWxsX3VybCA9IGdldFVy
aVdpdGhQcm90b2NvbCh1cmwpOworICAgICAgICBpZiAoZnVsbF91cmwpIHsKKyAgICAgICAgICAg
IGV3a192aWV3X3VyaV9zZXQoYXBwLT5icm93c2VyLCBmdWxsX3VybCk7CisgICAgICAgICAgICBm
cmVlKGZ1bGxfdXJsKTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIGV2YXNfb2JqZWN0X3Nob3co
YXBwLT5icm93c2VyKTsKICAgICBlY29yZV9ldmFzX3Nob3coYXBwLT5lZSk7CkBAIC03NTYsNiAr
ODkwLDggQEAgYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IGNoYXIgKnRoZW1l
LCBjb25zdCBjaGFyICp1c2VyQWdlbnQsIEVpbmFfUmUKIAogICAgIHdpbmRvd3MgPSBlaW5hX2xp
c3RfYXBwZW5kKHdpbmRvd3MsIGFwcCk7CiAKKyAgICB1cmxCYXJDcmVhdGUoYXBwKTsKKwogICAg
IHJldHVybiAxOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100766</attachid>
            <date>2011-07-13 21:54:50 -0700</date>
            <delta_ts>2011-07-25 17:47:56 -0700</delta_ts>
            <desc>Make a font size to 12, modify the copy right.</desc>
            <filename>patch-[20110714]-[hyerim.bae@samsung.com]-[EWebLauncherurlbar].patch</filename>
            <type>text/plain</type>
            <size>18378</size>
            <attacher name="Hyerim Bae">hyerim.bae</attacher>
            
              <data encoding="base64">Y29tbWl0IDk1YTFlNTM2YmQ1ZDliN2ZhODE5NzRlZTI0YzI5N2Y3YmRkOGJjNGEKQXV0aG9yOiBI
eWVyaW0gQmFlIDxoeWVyaW0uYmFlQHNhbXN1bmcuY29tPgpEYXRlOiAgIFRodSBKdWwgMTQgMTA6
MzI6MjcgMjAxMSArMDkwMAoKICAgIHBhdGNoLVsyMDExMDcxNF0tW2h5ZXJpbS5iYWVAc2Ftc3Vu
Zy5jb21dLVtFV2ViTGF1bmNoZXJ1cmxiYXJdLnBhdGNoCgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ01h
a2VMaXN0c0VmbC50eHQgYi9Ub29scy9DTWFrZUxpc3RzRWZsLnR4dApvbGQgbW9kZSAxMDA2NDQK
bmV3IG1vZGUgMTAwNzU1CmluZGV4IDI0ZWY4NWMuLjg5ZjJlYjQKLS0tIGEvVG9vbHMvQ01ha2VM
aXN0c0VmbC50eHQKKysrIGIvVG9vbHMvQ01ha2VMaXN0c0VmbC50eHQKQEAgLTQ5LDYgKzQ5LDkg
QEAgSUYgKFdURl9VU0VfQ1VSTCkKICAgTElTVChBUFBFTkQgRVdlYkxhdW5jaGVyX0xJTktfRkxB
R1MgJHtDVVJMX0xERkxBR1N9KQogRU5ESUYgKCkKIAorU0VUKEVOVFJZX0VESl9QQVRIICIke0NN
QUtFX0JJTkFSWV9ESVJ9L1Byb2dyYW1zL2VudHJ5LmVkaiIpCitBRERfREVGSU5JVElPTlMoLURF
TlRSWV9FREpfUEFUSD1cIiR7RU5UUllfRURKX1BBVEh9XCIpCisKICMgT3ZlcnJpZGUgZGF0YSBk
aXJlY3RvcnkuIFdlIGFsd2F5cyB3YW50IHRvIGdldCBhIGZyZXNoIHRoZW1lLgogUkVNT1ZFX0RF
RklOSVRJT05TKC1EREFUQV9ESVI9XCIke0RBVEFfRElSfVwiKQogQUREX0RFRklOSVRJT05TKC1E
REFUQV9ESVI9XCIke0JVSUxEX0RBVEFfRElSfVwiKQpAQCAtNTcsMyArNjAsMTEgQEAgSU5DTFVE
RV9ESVJFQ1RPUklFUygke0VXZWJMYXVuY2hlcl9JTkNMVURFX0RJUkVDVE9SSUVTfSkKIEFERF9F
WEVDVVRBQkxFKFByb2dyYW1zL0VXZWJMYXVuY2hlciAke0VXZWJMYXVuY2hlcl9TT1VSQ0VTfSkK
IFRBUkdFVF9MSU5LX0xJQlJBUklFUyhQcm9ncmFtcy9FV2ViTGF1bmNoZXIgJHtFV2ViTGF1bmNo
ZXJfTElCUkFSSUVTfSkKIEFERF9UQVJHRVRfUFJPUEVSVElFUyhQcm9ncmFtcy9FV2ViTGF1bmNo
ZXIgTElOS19GTEFHUyAiJHtFV2ViTGF1bmNoZXJfTElOS19GTEFHU30iKQorCisjIGVudHJ5LmVk
agorQUREX0NVU1RPTV9UQVJHRVQoZW50cnkuZWRqCisgICAgICAgICAgICAgICAgQ09NTUFORCBl
ZGplX2NjIC1pZCAke1RPT0xTX0RJUn0vRVdlYkxhdW5jaGVyL2ltYWdlcworICAgICAgICAgICAg
ICAgICR7VE9PTFNfRElSfS9FV2ViTGF1bmNoZXIvZW50cnkuZWRjICR7RU5UUllfRURKX1BBVEh9
CisgICAgICAgICAgICAgICAgREVQRU5EUyAke1RPT0xTX0RJUn0vRVdlYkxhdW5jaGVyL2VudHJ5
LmVkYworKQorQUREX0RFUEVOREVOQ0lFUyhQcm9ncmFtcy9FV2ViTGF1bmNoZXIgZW50cnkuZWRq
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCm9sZCBtb2Rl
IDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggY2U1MzViMi4uYTA4YmQxZQotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEt
MDctMTMgIEh5ZXJpbSBCYWUgIDxoeWVyaW0uYmFlQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtFRkxdIEFkZCB1cmwgYmFyIHRv
IEVXZWJMYXVuY2hlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYzOTY2CisKKyAgICAgICAgV2hlbiBhIHVzZXIgY2xpY2tzIGEgVVJMIGJhciwgdGhl
IHdob2xlIHRleHQgaW4gdGhlIGJhciB3aWxsIGJlIHNlbGVjdGVkLgorICAgICAgICBUaGVuIHRo
ZSB1c2VyIGNhbiBuYXZpZ2F0ZSB0byB0aGUgc2l0ZSB3aGVyZSBoZSBvciBzaGUgaW50ZW5kcyB0
by4KKworICAgICAgICAqIENNYWtlTGlzdHNFZmwudHh0OgorICAgICAgICAqIEVXZWJMYXVuY2hl
ci9lbnRyeS5lZGMKKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvbWFpbi5jOgorICAgICAgICAob25f
ZWNvcmVfZXZhc19yZXNpemUpOgorICAgICAgICAob25fdXJsX2NoYW5nZWQpOgorICAgICAgICAo
b25fbW91c2VfZG93bik6CisgICAgICAgIChvbl9rZXlfZG93bik6CisgICAgICAgIChvbl9icm93
c2VyX2RlbCk6CisgICAgICAgIChnZXRVcmlXaXRoUHJvdG9jb2wpOgorICAgICAgICAob25fdXJs
YmFyX2tleV9kb3duKToKKyAgICAgICAgKG9uX3VybGJhcl9tb3VzZV9kb3duKToKKyAgICAgICAg
KG9uX3VybGJhcl9mb2N1c19vdXQpOgorICAgICAgICAodXJsQmFyQ3JlYXRlKToKKyAgICAgICAg
KGJyb3dzZXJDcmVhdGUpOgorCiAyMDExLTA3LTEzICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0
Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OOiBHaXRUZXN0V2l0aE1vY2sudGVzdF9jcmVhdGVf
cGF0Y2ggZmFpbHMKZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci9lbnRyeS5lZGMgYi9U
b29scy9FV2ViTGF1bmNoZXIvZW50cnkuZWRjCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAw
MDAwMDAuLjQ1NDliNGUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9FV2ViTGF1bmNoZXIvZW50
cnkuZWRjCkBAIC0wLDAgKzEsMTc1IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAwOCwyMDA5
IElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQorICAgIENvcHlyaWdodCAoQykg
MjAwOSwyMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgICAgQ29weXJpZ2h0IChDKSAy
MDExIFNhbXN1bmcgRWxlY3Ryb25pY3MKKworICAgIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKworICAgIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisqLworCisjZGVmaW5lIEVOVFJZX1RFWFRfQ09MT1JfSU5DICIjMDAw
MDAwIgorI2RlZmluZSBFTlRSWV9DVVJTT1JfQ09MT1JfSU5DIDAgMCAwIDI1NQorCitjb2xsZWN0
aW9ucyB7CisgICBncm91cCB7CisgICAgICBuYW1lOiAiRVdlYkxhdW5jaGVyL2VudHJ5L2Jhc2Uv
ZGVmYXVsdCI7CisgICAgICBzdHlsZXMKKyAgICAgIHsKKyAgICAgICAgIHN0eWxlIHsKKyAgICAg
ICAgICAgIG5hbWU6ICJlbnRyeV90ZXh0YmxvY2tfc3R5bGUiOworICAgICAgICAgICAgYmFzZTog
ImZvbnQ9Um9tYW4gZm9udF9zaXplPTE2IGNvbG9yPSJFTlRSWV9URVhUX0NPTE9SX0lOQyIgd3Jh
cD1taXhlZCI7CisgICAgICAgICB9CisgICAgICB9CisgICAgICBwYXJ0cyB7CisgICAgICAgICBw
YXJ0IHsKKyAgICAgICAgICAgIG5hbWU6ICJlbnRyeS5zd2FsbG93LmJhY2tncm91bmQiOworICAg
ICAgICAgICAgdHlwZTogU1dBTExPVzsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uIHsgc3RhdGU6
ICJkZWZhdWx0IiAwLjA7CisgICAgICAgICAgICAgICB2aXNpYmxlOiAxOworICAgICAgICAgICAg
ICAgcmVsMSB7IHJlbGF0aXZlOiAwIDA7IHRvOiAidXJsLnRleHQiOyB9CisgICAgICAgICAgICAg
ICByZWwyIHsgcmVsYXRpdmU6IDEgMTsgdG86ICJ1cmwudGV4dCI7IH0KKyAgICAgICAgICAgIH0K
KyAgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHBhcnRzIHsKKyAgICAgICAgIHBhcnQgeworICAg
ICAgICAgICAgbmFtZTogInVybC50ZXh0IjsKKyAgICAgICAgICAgIHR5cGU6IFRFWFRCTE9DSzsK
KyAgICAgICAgICAgIG1vdXNlX2V2ZW50czogMTsKKyAgICAgICAgICAgIHNjYWxlOiAxOworICAg
ICAgICAgICAgZW50cnlfbW9kZTogRURJVEFCTEU7CisgICAgICAgICAgICBtdWx0aWxpbmU6IDE7
CisgICAgICAgICAgICBzb3VyY2U6ICJFV2ViTGF1bmNoZXIvZW50cnkvc2VsZWN0aW9uL2RlZmF1
bHQiOyAvLyBzZWxlY3Rpb24gdW5kZXIKKyAgICAgICAgICAgIHNvdXJjZTQ6ICJFV2ViTGF1bmNo
ZXIvZW50cnkvY3Vyc29yL2RlZmF1bHQiOyAvLyBjdXJzb3JvdmVyCisgICAgICAgICAgICBkZXNj
cmlwdGlvbiB7IHN0YXRlOiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgZml4ZWQ6IDEg
MDsKKyAgICAgICAgICAgICAgIHRleHQgeworICAgICAgICAgICAgICAgICAgc3R5bGU6ICJlbnRy
eV90ZXh0YmxvY2tfc3R5bGUiOworICAgICAgICAgICAgICAgICAgbWluOiAwIDE7CisgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICB9CisgICAgICBwcm9n
cmFtcyB7CisgICAgICAgICBwcm9ncmFtIHsKKyAgICAgICAgICAgIG5hbWU6ICJmb2N1cyI7Cisg
ICAgICAgICAgICBzaWduYWw6ICJsb2FkIjsKKyAgICAgICAgICAgIHNvdXJjZTogIiI7CisgICAg
ICAgICAgICBhY3Rpb246IEZPQ1VTX1NFVDsKKyAgICAgICAgICAgIHRhcmdldDogInVybC50ZXh0
IjsKKyAgICAgICAgIH0KKyAgICAgIH0KKyAgIH0KKworICAgZ3JvdXAgeworICAgICAgbmFtZTog
IkVXZWJMYXVuY2hlci9lbnRyeS9jdXJzb3IvZGVmYXVsdCI7CisgICAgICBwYXJ0cyB7CisgICAg
ICAgICBwYXJ0IHsKKyAgICAgICAgICAgIG5hbWU6ICJjbGlwMiI7CisgICAgICAgICAgICB0eXBl
OiBSRUNUOworICAgICAgICAgICAgbW91c2VfZXZlbnRzOiAwOworICAgICAgICAgICAgc2NhbGU6
IDE7CisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7IHN0YXRlOiAiZGVmYXVsdCIgMC4wOworICAg
ICAgICAgICAgICAgcmVsMS50bzogImNsaXAiOworICAgICAgICAgICAgICAgcmVsMi50bzogImNs
aXAiOworICAgICAgICAgICAgICAgdmlzaWJsZTogMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGRlc2NyaXB0aW9uIHsgc3RhdGU6ICJmb2N1c2VkIiAwLjA7CisgICAgICAgICAgICAgICBp
bmhlcml0OiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgdmlzaWJsZTogMTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgICAgIHBhcnQgeworICAgICAgICAgICAgbmFtZTog
ImNsaXAiOworICAgICAgICAgICAgdHlwZTogUkVDVDsKKyAgICAgICAgICAgIG1vdXNlX2V2ZW50
czogMDsKKyAgICAgICAgICAgIHNjYWxlOiAxOworICAgICAgICAgICAgY2xpcF90bzogImNsaXAy
IjsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uIHsgc3RhdGU6ICJkZWZhdWx0IiAwLjA7CisgICAg
ICAgICAgICAgICByZWwxLm9mZnNldDogLTEwIDA7CisgICAgICAgICAgICAgICByZWwyLm9mZnNl
dDogOSA5OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVzY3JpcHRpb24geyBzdGF0ZTog
ImhpZGRlbiIgMC4wOworICAgICAgICAgICAgICAgaW5oZXJpdDogImRlZmF1bHQiIDAuMDsKKyAg
ICAgICAgICAgICAgIHZpc2libGU6IDA7CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAg
ICAgICBwYXJ0IHsKKyAgICAgICAgICAgIG5hbWU6ICJiYXNlIjsKKyAgICAgICAgICAgIG1vdXNl
X2V2ZW50czogMDsKKyAgICAgICAgICAgIHNjYWxlOiAxOworICAgICAgICAgICAgY2xpcF90bzog
ImNsaXAiOworICAgICAgICAgICAgZGVzY3JpcHRpb24geyBzdGF0ZTogImRlZmF1bHQiIDAuMDsK
KyAgICAgICAgICAgICAgIG1pbjogMiAyOworICAgICAgICAgICAgICAgYWxpZ246IDAuNSAxLjA7
CisgICAgICAgICAgICAgICBjb2xvcjogMCAwIDAgMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
IH0KKyAgICAgICAgIHBhcnQgeworICAgICAgICAgICAgbmFtZTogImdsb3ciOworICAgICAgICAg
ICAgdHlwZTogUkVDVDsKKyAgICAgICAgICAgIG1vdXNlX2V2ZW50czogMDsKKyAgICAgICAgICAg
IHNjYWxlOiAxOworICAgICAgICAgICAgY2xpcF90bzogImNsaXAyIjsKKyAgICAgICAgICAgIGRl
c2NyaXB0aW9uIHsgc3RhdGU6ICJkZWZhdWx0IiAwLjA7CisgICAgICAgICAgICAgICBtaW46IDEg
MDsKKyAgICAgICAgICAgICAgIGZpeGVkOiAxIDA7CisgICAgICAgICAgICAgICBhbGlnbjogMC41
IDAuNTsKKyAgICAgICAgICAgICAgIHZpc2libGU6IDE7CisgICAgICAgICAgICAgICByZWwxIHsK
KyAgICAgICAgICAgICAgICAgIHJlbGF0aXZlOiAwLjAgIDAuMDsKKyAgICAgICAgICAgICAgICAg
IG9mZnNldDogMCAyOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgcmVsMiB7Cisg
ICAgICAgICAgICAgICAgICByZWxhdGl2ZTogMC4wICAxLjA7CisgICAgICAgICAgICAgICAgICBv
ZmZzZXQ6IDAgLTI7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBjb2xvcjogRU5U
UllfQ1VSU09SX0NPTE9SX0lOQzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgIH0K
KyAgICAgIHByb2dyYW1zIHsKKyAgICAgICAgIHByb2dyYW0geworICAgICAgICAgICAgbmFtZTog
ImZvY3VzZWQiOworICAgICAgICAgICAgc2lnbmFsOiAiZW50cnksYWN0aW9uLGZvY3VzIjsKKyAg
ICAgICAgICAgIHNvdXJjZTogImVudHJ5IjsKKyAgICAgICAgICAgIGFjdGlvbjogU1RBVEVfU0VU
ICJmb2N1c2VkIiAwLjA7CisgICAgICAgICAgICB0YXJnZXQ6ICJjbGlwMiI7CisgICAgICAgICB9
CisgICAgICAgICBwcm9ncmFtIHsKKyAgICAgICAgICAgIG5hbWU6ICJ1bmZvY3VzZWQiOworICAg
ICAgICAgICAgc2lnbmFsOiAiZW50cnksYWN0aW9uLHVuZm9jdXMiOworICAgICAgICAgICAgc291
cmNlOiAiZW50cnkiOworICAgICAgICAgICAgYWN0aW9uOiBTVEFURV9TRVQgImRlZmF1bHQiIDAu
MDsKKyAgICAgICAgICAgIHRhcmdldDogImNsaXAyIjsKKyAgICAgICAgIH0KKyAgICAgIH0KKyAg
IH0KKworICAgZ3JvdXAgeworICAgICAgbmFtZTogIkVXZWJMYXVuY2hlci9lbnRyeS9zZWxlY3Rp
b24vZGVmYXVsdCI7CisgICAgICBwYXJ0cyB7CisgICAgICAgICBwYXJ0IHsKKyAgICAgICAgICAg
IG5hbWU6ICJiZyI7CisgICAgICAgICAgICB0eXBlOiBSRUNUOworICAgICAgICAgICAgc2NhbGU6
IDE7CisgICAgICAgICAgICBtb3VzZV9ldmVudHM6IDA7CisgICAgICAgICAgICBkZXNjcmlwdGlv
biB7IHN0YXRlOiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgY29sb3I6IDEzOCAxODMg
MjIzIDEyODsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgIH0KKyAgIH0KK30KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMgYi9Ub29scy9FV2ViTGF1bmNoZXIv
bWFpbi5jCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggZDNiYjVhMS4uZmRm
N2E5YwotLS0gYS9Ub29scy9FV2ViTGF1bmNoZXIvbWFpbi5jCisrKyBiL1Rvb2xzL0VXZWJMYXVu
Y2hlci9tYWluLmMKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgIkVXZWJLaXQuaCIKIAot
I2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8RWNvcmUuaD4KICNpbmNsdWRlIDxFY29yZV9F
dmFzLmg+CiAjaW5jbHVkZSA8RWNvcmVfRmlsZS5oPgpAQCAtMzcsNiArMzYsNyBAQAogI2luY2x1
ZGUgPEVjb3JlX1guaD4KICNpbmNsdWRlIDxFZGplLmg+CiAjaW5jbHVkZSA8RXZhcy5oPgorI2lu
Y2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4K
ICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAgLTQ3LDYgKzQ3LDcgQEAKIAogI2RlZmluZSBERUZBVUxU
X1dJRFRIICAgICAgODAwCiAjZGVmaW5lIERFRkFVTFRfSEVJR0hUICAgICA2MDAKKyNkZWZpbmUg
VVJMX0JBUl9IRUlHSFQgICAgIDMwCiAjZGVmaW5lIERFRkFVTFRfWk9PTV9JTklUICAxLjAKIAog
I2RlZmluZSBpbmZvKGZvcm1hdCwgYXJncy4uLikgICAgICAgXApAQCAtMTUwLDYgKzE1MSw4IEBA
IHR5cGVkZWYgc3RydWN0IF9FTGF1bmNoZXIgewogICAgIEV2YXMgKmV2YXM7CiAgICAgRXZhc19P
YmplY3QgKmJnOwogICAgIEV2YXNfT2JqZWN0ICpicm93c2VyOworICAgIEV2YXNfT2JqZWN0ICp1
cmxCYXJBcmVhOworICAgIEV2YXNfT2JqZWN0ICp1cmxFbnRyeTsKICAgICBjb25zdCBjaGFyICp0
aGVtZTsKICAgICBjb25zdCBjaGFyICp1c2VyQWdlbnQ7CiAgICAgY29uc3QgY2hhciAqYmFja2lu
Z1N0b3JlOwpAQCAtMTYwLDYgKzE2Myw5IEBAIHR5cGVkZWYgc3RydWN0IF9FTGF1bmNoZXIgewog
c3RhdGljIHZvaWQgYnJvd3NlckRlc3Ryb3koRWNvcmVfRXZhcyAqZWUpOwogc3RhdGljIHZvaWQg
Y2xvc2VXaW5kb3coRWNvcmVfRXZhcyAqZWUpOwogc3RhdGljIGludCBicm93c2VyQ3JlYXRlKGNv
bnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqdGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwg
RWluYV9SZWN0YW5nbGUgZ2VvbWV0cnksIGNvbnN0IGNoYXIgKmVuZ2luZSwgY29uc3QgY2hhciAq
YmFja2luZ1N0b3JlLCB1bnNpZ25lZCBjaGFyIGlzRmxhdHRlbmluZywgdW5zaWduZWQgY2hhciBp
c0Z1bGxzY3JlZW4sIGNvbnN0IGNoYXIgKmRhdGFiYXNlUGF0aCk7CitzdGF0aWMgdm9pZCBvbl91
cmxiYXJfa2V5X2Rvd24odm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKm9iaiwgdm9p
ZCAqZXZlbnRfaW5mbyk7CitzdGF0aWMgdm9pZCBvbl91cmxiYXJfbW91c2VfZG93bih2b2lkICpk
YXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKTsKK3N0YXRp
YyB2b2lkIG9uX3VybGJhcl9mb2N1c19vdXQodm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmpl
Y3QgKm9iaiwgdm9pZCAqZXZlbnRfaW5mbyk7CiAKIHN0YXRpYyB2b2lkCiBwcmludF9oaXN0b3J5
KEVpbmFfTGlzdCAqbGlzdCkKQEAgLTIyMyw2ICsyMjksNyBAQCBvbl9lY29yZV9ldmFzX3Jlc2l6
ZShFY29yZV9FdmFzICplZSkKIHsKICAgICBFdmFzX09iamVjdCAqd2VidmlldzsKICAgICBFdmFz
X09iamVjdCAqYmc7CisgICAgRXZhc19PYmplY3QgKnVybEJhckFyZWE7CiAgICAgaW50IHcsIGg7
CiAKICAgICBlY29yZV9ldmFzX2dlb21ldHJ5X2dldChlZSwgTlVMTCwgTlVMTCwgJncsICZoKTsK
QEAgLTIzMiw4ICsyMzksMTIgQEAgb25fZWNvcmVfZXZhc19yZXNpemUoRWNvcmVfRXZhcyAqZWUp
CiAgICAgZXZhc19vYmplY3RfcmVzaXplKGJnLCB3LCBoKTsKIAogICAgIHdlYnZpZXcgPSBldmFz
X29iamVjdF9uYW1lX2ZpbmQoZWNvcmVfZXZhc19nZXQoZWUpLCAiYnJvd3NlciIpOwotICAgIGV2
YXNfb2JqZWN0X21vdmUod2VidmlldywgMTAsIDEwKTsKLSAgICBldmFzX29iamVjdF9yZXNpemUo
d2VidmlldywgdyAtIDIwLCBoIC0gMjApOworICAgIGV2YXNfb2JqZWN0X21vdmUod2Vidmlldywg
NSwgNSArIFVSTF9CQVJfSEVJR0hUKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUod2Vidmlldywg
dyAtIDEwLCBoIC0gVVJMX0JBUl9IRUlHSFQgLSAxMCk7CisKKyAgICB1cmxCYXJBcmVhID0gZXZh
c19vYmplY3RfbmFtZV9maW5kKGVjb3JlX2V2YXNfZ2V0KGVlKSwgInVybEJhckFyZWEiKTsKKyAg
ICBldmFzX29iamVjdF9tb3ZlKHVybEJhckFyZWEsIDUsIDApOworICAgIGV2YXNfb2JqZWN0X3Jl
c2l6ZSh1cmxCYXJBcmVhLCB3IC0gMTAsIFVSTF9CQVJfSEVJR0hUKTsKIH0KIAogc3RhdGljIHZv
aWQKQEAgLTQ3NCwxMCArNDg1LDI2IEBAIG9uX3ZpZXdwb3J0X2NoYW5nZWQodm9pZCogdXNlcl9k
YXRhLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5mbykKIH0KIAogc3RhdGlj
IHZvaWQKLW9uX21vdXNlX2Rvd24odm9pZCogZGF0YSwgRXZhcyogZSwgRXZhc19PYmplY3QqIHdl
YnZpZXcsIHZvaWQqIGV2ZW50X2luZm8pCitvbl91cmxfY2hhbmdlZCh2b2lkICp1c2VyX2RhdGEs
IEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2b2lkICpldmVudF9pbmZvKQoreworICAgIEVMYXVuY2hl
ciAqYXBwID0gKEVMYXVuY2hlciAqKXVzZXJfZGF0YTsKKworICAgIGNvbnN0IGNoYXIgKnVybCA9
IGV3a19mcmFtZV91cmlfZ2V0KGV3a192aWV3X2ZyYW1lX21haW5fZ2V0KHdlYnZpZXcpKTsKKyAg
ICBpbmZvKCJbJXM6JWRddXJsPVslc11cbiIsIF9fZnVuY19fLCBfX0xJTkVfXywgdXJsKTsKKyAg
ICBlZGplX29iamVjdF9wYXJ0X3RleHRfc2V0KGFwcC0+dXJsRW50cnksICJ1cmwudGV4dCIsIHVy
bCk7Cit9CisKK3N0YXRpYyB2b2lkCitvbl9tb3VzZV9kb3duKHZvaWQgKmRhdGEsIEV2YXMgKmUs
IEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2b2lkICpldmVudF9pbmZvKQogewotICAgIEV2YXNfRXZl
bnRfTW91c2VfRG93biAqZXYgPSAoRXZhc19FdmVudF9Nb3VzZV9Eb3duKikgZXZlbnRfaW5mbzsK
LSAgICBpZiAoZXYtPmJ1dHRvbiA9PSAyKQorICAgIEV2YXNfRXZlbnRfTW91c2VfRG93biAqZXYg
PSBldmVudF9pbmZvOworICAgIEVMYXVuY2hlciAqYXBwID0gKEVMYXVuY2hlciAqKWRhdGE7CisK
KyAgICBpbmZvKCJbJXM6JWRdZXYtPmJ1dHRvbj0lZFxuIiwgX19mdW5jX18sIF9fTElORV9fLCBl
di0+YnV0dG9uKTsKKworICAgIGlmIChldi0+YnV0dG9uID09IDEpCisgICAgICAgIGV2YXNfb2Jq
ZWN0X2ZvY3VzX3NldCh3ZWJ2aWV3LCBFSU5BX1RSVUUpOworICAgIGVsc2UgaWYgKGV2LT5idXR0
b24gPT0gMikKICAgICAgICAgZXZhc19vYmplY3RfZm9jdXNfc2V0KHdlYnZpZXcsICFldmFzX29i
amVjdF9mb2N1c19nZXQod2VidmlldykpOwogfQogCkBAIC00OTYsOCArNTIzLDkgQEAgb25fZm9j
dXNfaW4odm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKm9iaiwgdm9pZCAqZXZlbnRf
aW5mbykKIHN0YXRpYyB2b2lkCiBvbl9rZXlfZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFz
X09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQogewotICAgIEV2YXNfRXZlbnRfS2V5X0Rv
d24gKmV2ID0gKEV2YXNfRXZlbnRfS2V5X0Rvd24qKSBldmVudF9pbmZvOworICAgIEV2YXNfRXZl
bnRfS2V5X0Rvd24gKmV2ID0gZXZlbnRfaW5mbzsKICAgICBFTGF1bmNoZXIgKmFwcCA9IGRhdGE7
CisKICAgICBzdGF0aWMgY29uc3QgY2hhciAqZW5jb2RpbmdzW10gPSB7CiAgICAgICAgICJJU08t
ODg1OS0xIiwKICAgICAgICAgIlVURi04IiwKQEAgLTYzMSw2ICs2NTksMTAgQEAgb25fYnJvd3Nl
cl9kZWwodm9pZCAqZGF0YSwgRXZhcyAqZXZhcywgRXZhc19PYmplY3QgKmJyb3dzZXIsIHZvaWQg
KmV2ZW50KQogICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChhcHAtPmJyb3dzZXIs
IEVWQVNfQ0FMTEJBQ0tfRk9DVVNfSU4sIG9uX2ZvY3VzX2luKTsKICAgICBldmFzX29iamVjdF9l
dmVudF9jYWxsYmFja19kZWwoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0ZPQ1VTX09VVCwg
b25fZm9jdXNfb3V0KTsKICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwoYXBwLT5i
cm93c2VyLCBFVkFTX0NBTExCQUNLX0RFTCwgb25fYnJvd3Nlcl9kZWwpOworCisgICAgZXZhc19v
YmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKGFwcC0+dXJsRW50cnksIEVWQVNfQ0FMTEJBQ0tfS0VZ
X0RPV04sIG9uX3VybGJhcl9rZXlfZG93bik7CisgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJh
Y2tfZGVsKGFwcC0+dXJsRW50cnksIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfRE9XTiwgb25fdXJsYmFy
X21vdXNlX2Rvd24pOworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChhcHAtPnVy
bEVudHJ5LCBFVkFTX0NBTExCQUNLX0ZPQ1VTX09VVCwgb25fdXJsYmFyX2ZvY3VzX291dCk7CiB9
CiAKIHN0YXRpYyB2b2lkCkBAIC02NjAsNiArNjkyLDEwMSBAQCBxdWl0KEVpbmFfQm9vbCBzdWNj
ZXNzLCBjb25zdCBjaGFyICptc2cpCiAgICAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsKIH0KIAorc3Rh
dGljIGNoYXIgKgorZ2V0VXJpV2l0aFByb3RvY29sKGNvbnN0IGNoYXIgKnVybCkKK3sKKyAgICBj
aGFyICpmdWxsX3VybCA9IE5VTEw7CisgICAgaWYgKHVybCAmJiBzdHJsZW4odXJsKSkgeworICAg
ICAgICBjaGFyICp0b2tlbiA9IHN0cnN0cih1cmwsICI6Ly8iKTsKKyAgICAgICAgaWYgKCF0b2tl
bikgeworICAgICAgICAgICAgaW50IGxlbiA9IHN0cmxlbih1cmwpICsgc3RybGVuKCJodHRwOi8v
IikgKyAxOworICAgICAgICAgICAgZnVsbF91cmwgPSBtYWxsb2MobGVuKTsKKyAgICAgICAgICAg
IGlmIChmdWxsX3VybCkgeworICAgICAgICAgICAgICAgIGZ1bGxfdXJsW2xlbl0gPSAnXDAnOwor
ICAgICAgICAgICAgICAgIHNwcmludGYoZnVsbF91cmwsICJodHRwOi8vJXMiLCB1cmwpOworICAg
ICAgICAgICAgICAgIHJldHVybiBmdWxsX3VybDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHN0cmR1cCh1cmwp
OworfQorCitzdGF0aWMgdm9pZAorb25fdXJsYmFyX2tleV9kb3duKHZvaWQgKmRhdGEsIEV2YXMg
KmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pCit7CisgICAgRXZhc19FdmVu
dF9LZXlfRG93biAqZXYgPSBldmVudF9pbmZvOworICAgIEVMYXVuY2hlciAqYXBwID0gZGF0YTsK
KworICAgIGlmICghZXYtPmtleSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFzdHJjbXAo
ZXYtPmtleSwgIkVzY2FwZSIpKSB7CisgICAgICAgIGNsb3NlV2luZG93KGFwcC0+ZWUpOworICAg
IH0gZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAiUmV0dXJuIikpIHsKKyAgICAgICAgY29uc3Qg
Y2hhciAqdXJsID0gZWRqZV9vYmplY3RfcGFydF90ZXh0X2dldChhcHAtPnVybEVudHJ5LCAidXJs
LnRleHQiKTsKKyAgICAgICAgaWYgKHVybCAmJiBzdHJsZW4odXJsKSkgeworICAgICAgICAgICAg
Y2hhciAqZnVsbF91cmwgPSBnZXRVcmlXaXRoUHJvdG9jb2wodXJsKTsKKyAgICAgICAgICAgIGlm
IChmdWxsX3VybCkgeworICAgICAgICAgICAgICAgIGV3a192aWV3X3VyaV9zZXQoYXBwLT5icm93
c2VyLCBmdWxsX3VybCk7CisgICAgICAgICAgICAgICAgZnJlZShmdWxsX3VybCk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBldmFzX29iamVjdF9mb2N1c19zZXQoYXBwLT5icm93c2VyLCBF
SU5BX1RSVUUpOworICAgICAgICB9CisgICAgfQorfQorCitzdGF0aWMgdm9pZAorb25fdXJsYmFy
X21vdXNlX2Rvd24odm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKm9iaiwgdm9pZCAq
ZXZlbnRfaW5mbykKK3sKKyAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24gKmV2ID0gZXZlbnRfaW5m
bzsKKyAgICBFTGF1bmNoZXIgKmFwcCA9IGRhdGE7CisKKyAgICBpZiAoZXYtPmJ1dHRvbiA9PSAx
KSB7CisgICAgICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldChhcHAtPnVybEVudHJ5LCBFSU5BX1RS
VUUpOworICAgICAgICBlZGplX29iamVjdF9zaWduYWxfZW1pdChhcHAtPnVybEVudHJ5LCAiZW50
cnksYWN0aW9uLGZvY3VzIiwgImVudHJ5Iik7CisgICAgfQorfQorCitzdGF0aWMgdm9pZAorb25f
dXJsYmFyX2ZvY3VzX291dCh2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2
b2lkICpldmVudF9pbmZvKQoreworICAgIEVMYXVuY2hlciAqYXBwID0gZGF0YTsKKworICAgIGVk
amVfb2JqZWN0X3NpZ25hbF9lbWl0KGFwcC0+dXJsRW50cnksICJlbnRyeSxhY3Rpb24sdW5mb2N1
cyIsICJlbnRyeSIpOworfQorCitzdGF0aWMgaW50Cit1cmxCYXJDcmVhdGUoRUxhdW5jaGVyICph
cHApCit7CisgICAgaWYgKCFhcHApCisgICAgICAgIHJldHVybiBxdWl0KEVJTkFfRkFMU0UsICJF
UlJPUjogY291bGQgbm90IGdldCBFV2ViTGF1bmNoZXIgd2luZG93XG4iKTsKKworICAgIGFwcC0+
dXJsQmFyQXJlYSA9IGV2YXNfb2JqZWN0X3JlY3RhbmdsZV9hZGQoYXBwLT5ldmFzKTsKKyAgICBl
dmFzX29iamVjdF9uYW1lX3NldChhcHAtPnVybEJhckFyZWEsICJ1cmxCYXJBcmVhIik7CisgICAg
ZXZhc19vYmplY3RfY29sb3Jfc2V0KGFwcC0+dXJsQmFyQXJlYSwgMjU1LCAyNTUsIDI1NSwgMjU1
KTsKKyAgICBldmFzX29iamVjdF9tb3ZlKGFwcC0+dXJsQmFyQXJlYSwgNSwgMCk7CisgICAgZXZh
c19vYmplY3RfcmVzaXplKGFwcC0+dXJsQmFyQXJlYSwgREVGQVVMVF9XSURUSCAtIDEwLCBVUkxf
QkFSX0hFSUdIVCk7CisgICAgZXZhc19vYmplY3Rfc2hvdyhhcHAtPnVybEJhckFyZWEpOworCisg
ICAgRXZhcyAqZXZhcyA9IGV2YXNfb2JqZWN0X2V2YXNfZ2V0KGFwcC0+dXJsQmFyQXJlYSk7Cisg
ICAgYXBwLT51cmxFbnRyeSA9IGVkamVfb2JqZWN0X2FkZChldmFzKTsKKyAgICBFaW5hX0Jvb2wg
cmV0ID0gZWRqZV9vYmplY3RfZmlsZV9zZXQoYXBwLT51cmxFbnRyeSwgRU5UUllfRURKX1BBVEgs
ICJFV2ViTGF1bmNoZXIvZW50cnkvYmFzZS9kZWZhdWx0Iik7CisKKyAgICBpZiAoIXJldCkKKyAg
ICAgICAgaW5mbygiZWRqZV9vYmplY3RfZmlsZV9zZXQgZmFpbGVkXG4iKTsKKworICAgIGVkamVf
b2JqZWN0X3BhcnRfdGV4dF9zZXQoYXBwLT51cmxFbnRyeSwgInVybC50ZXh0IiwgIiIpOworICAg
IGV2YXNfb2JqZWN0X21vdmUoYXBwLT51cmxFbnRyeSwgMTAsIDMpOworICAgIGV2YXNfb2JqZWN0
X3Jlc2l6ZShhcHAtPnVybEVudHJ5LCBERUZBVUxUX1dJRFRIIC0gMjAsIFVSTF9CQVJfSEVJR0hU
IC0gNik7CisgICAgZXZhc19vYmplY3Rfc2hvdyhhcHAtPnVybEVudHJ5KTsKKyAgICBldmFzX29i
amVjdF9ldmVudF9jYWxsYmFja19hZGQoYXBwLT51cmxFbnRyeSwgRVZBU19DQUxMQkFDS19NT1VT
RV9ET1dOLCBvbl91cmxiYXJfbW91c2VfZG93biwgYXBwKTsKKyAgICBldmFzX29iamVjdF9ldmVu
dF9jYWxsYmFja19hZGQoYXBwLT51cmxFbnRyeSwgRVZBU19DQUxMQkFDS19LRVlfRE9XTiwgb25f
dXJsYmFyX2tleV9kb3duLCBhcHApOworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2Fk
ZChhcHAtPnVybEVudHJ5LCBFVkFTX0NBTExCQUNLX0ZPQ1VTX09VVCwgb25fdXJsYmFyX2ZvY3Vz
X291dCwgYXBwKTsKKyAgICByZXR1cm4gMTsKK30KKwogc3RhdGljIGludAogYnJvd3NlckNyZWF0
ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IGNoYXIgKnRoZW1lLCBjb25zdCBjaGFyICp1c2VyQWdl
bnQsIEVpbmFfUmVjdGFuZ2xlIGdlb21ldHJ5LCBjb25zdCBjaGFyICplbmdpbmUsIGNvbnN0IGNo
YXIgKmJhY2tpbmdTdG9yZSwgdW5zaWduZWQgY2hhciBpc0ZsYXR0ZW5pbmcsIHVuc2lnbmVkIGNo
YXIgaXNGdWxsc2NyZWVuLCBjb25zdCBjaGFyICpkYXRhYmFzZVBhdGgpCiB7CkBAIC02NzIsNyAr
Nzk5LDcgQEAgYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IGNoYXIgKnRoZW1l
LCBjb25zdCBjaGFyICp1c2VyQWdlbnQsIEVpbmFfUmUKICAgICBpZiAoIWFwcCkKICAgICAgICAg
cmV0dXJuIHF1aXQoRUlOQV9GQUxTRSwgIkVSUk9SOiBjb3VsZCBub3QgY3JlYXRlIEVXZWJMYXVu
Y2hlciB3aW5kb3dcbiIpOwogCi0gICAgYXBwLT5lZSA9IGVjb3JlX2V2YXNfbmV3KGVuZ2luZSwg
MCwgMCwgZ2VvbWV0cnkudywgZ2VvbWV0cnkuaCwgTlVMTCk7CisgICAgYXBwLT5lZSA9IGVjb3Jl
X2V2YXNfbmV3KGVuZ2luZSwgMCwgMCwgZ2VvbWV0cnkudywgZ2VvbWV0cnkuaCArIFVSTF9CQVJf
SEVJR0hULCBOVUxMKTsKIAogICAgIGlmICghYXBwLT5lZSkKICAgICAgICAgcmV0dXJuIHF1aXQo
RUlOQV9GQUxTRSwgIkVSUk9SOiBjb3VsZCBub3QgY29uc3RydWN0IGV2YXMtZWNvcmVcbiIpOwpA
QCAtNjk2LDkgKzgyMyw5IEBAIGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBj
aGFyICp0aGVtZSwgY29uc3QgY2hhciAqdXNlckFnZW50LCBFaW5hX1JlCiAKICAgICBhcHAtPmJn
ID0gZXZhc19vYmplY3RfcmVjdGFuZ2xlX2FkZChhcHAtPmV2YXMpOwogICAgIGV2YXNfb2JqZWN0
X25hbWVfc2V0KGFwcC0+YmcsICJiZyIpOwotICAgIGV2YXNfb2JqZWN0X2NvbG9yX3NldChhcHAt
PmJnLCAyNTUsIDAsIDI1NSwgMjU1KTsKKyAgICBldmFzX29iamVjdF9jb2xvcl9zZXQoYXBwLT5i
ZywgNjAsIDc1LCA5OCwgMjU1KTsKICAgICBldmFzX29iamVjdF9tb3ZlKGFwcC0+YmcsIDAsIDAp
OwotICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShhcHAtPmJnLCBnZW9tZXRyeS53LCBnZW9tZXRyeS5o
KTsKKyAgICBldmFzX29iamVjdF9yZXNpemUoYXBwLT5iZywgZ2VvbWV0cnkudywgZ2VvbWV0cnku
aCArIFVSTF9CQVJfSEVJR0hUKTsKICAgICBldmFzX29iamVjdF9sYXllcl9zZXQoYXBwLT5iZywg
RVZBU19MQVlFUl9NSU4pOwogICAgIGV2YXNfb2JqZWN0X3Nob3coYXBwLT5iZyk7CiAKQEAgLTcz
NSw2ICs4NjIsOCBAQCBicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAq
dGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9SZQogICAgIGV2YXNfb2JqZWN0X3Nt
YXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJ0b29sdGlwLHRleHQsc2V0Iiwgb25fdG9v
bHRpcF90ZXh0X3NldCwgYXBwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQo
YXBwLT5icm93c2VyLCAiaW5wdXRtZXRob2QsY2hhbmdlZCIsIG9uX2lucHV0bWV0aG9kX2NoYW5n
ZWQsIGFwcCk7CiAKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBwLT5icm93
c2VyLCAidXJpLGNoYW5nZWQiLCBvbl91cmxfY2hhbmdlZCwgYXBwKTsKKwogLyogICAgIGV3a19j
YWxsYmFja19yZXNpemVfcmVxdWVzdGVkX2FkZChhcHAtPmJyb3dzZXIsIG9uX3Jlc2l6ZV9yZXF1
ZXN0ZWQsIGFwcC0+ZWUpOyAqLwogCiAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRk
KGFwcC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19LRVlfRE9XTiwgb25fa2V5X2Rvd24sIGFwcCk7
CkBAIC03NDMsMTEgKzg3MiwxNiBAQCBicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29u
c3QgY2hhciAqdGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9SZQogICAgIGV2YXNf
b2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfRk9D
VVNfT1VULCBvbl9mb2N1c19vdXQsIGFwcCk7CiAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJh
Y2tfYWRkKGFwcC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19ERUwsIG9uX2Jyb3dzZXJfZGVsLCBh
cHApOwogCi0gICAgZXZhc19vYmplY3RfbW92ZShhcHAtPmJyb3dzZXIsIDEwLCAxMCk7Ci0gICAg
ZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YnJvd3NlciwgZ2VvbWV0cnkudyAtIDIwLCBnZW9tZXRy
eS5oIC0gMjApOworICAgIGV2YXNfb2JqZWN0X21vdmUoYXBwLT5icm93c2VyLCA1LCA1ICsgVVJM
X0JBUl9IRUlHSFQpOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShhcHAtPmJyb3dzZXIsIGdlb21l
dHJ5LncgLSAxMCwgZ2VvbWV0cnkuaCAtIDEwKTsKIAotICAgIGlmICh1cmwgJiYgKHVybFswXSAh
PSAnXDAnKSkKLSAgICAgICAgZXdrX3ZpZXdfdXJpX3NldChhcHAtPmJyb3dzZXIsIHVybCk7Cisg
ICAgaWYgKHVybCAmJiAodXJsWzBdICE9ICdcMCcpKSB7CisgICAgICAgIGNoYXIgKmZ1bGxfdXJs
ID0gZ2V0VXJpV2l0aFByb3RvY29sKHVybCk7CisgICAgICAgIGlmIChmdWxsX3VybCkgeworICAg
ICAgICAgICAgZXdrX3ZpZXdfdXJpX3NldChhcHAtPmJyb3dzZXIsIGZ1bGxfdXJsKTsKKyAgICAg
ICAgICAgIGZyZWUoZnVsbF91cmwpOworICAgICAgICB9CisgICAgfQogCiAgICAgZXZhc19vYmpl
Y3Rfc2hvdyhhcHAtPmJyb3dzZXIpOwogICAgIGVjb3JlX2V2YXNfc2hvdyhhcHAtPmVlKTsKQEAg
LTc1Niw2ICs4OTAsOCBAQCBicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hh
ciAqdGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9SZQogCiAgICAgd2luZG93cyA9
IGVpbmFfbGlzdF9hcHBlbmQod2luZG93cywgYXBwKTsKIAorICAgIHVybEJhckNyZWF0ZShhcHAp
OworCiAgICAgcmV0dXJuIDE7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101954</attachid>
            <date>2011-07-25 17:47:56 -0700</date>
            <delta_ts>2011-07-26 18:38:17 -0700</delta_ts>
            <desc>patch for kubo&apos;s comment.</desc>
            <filename>patch-[20110726]-[hyerim.bae@samsung.com]-[EWebLauncherurlbar].patch</filename>
            <type>text/plain</type>
            <size>17194</size>
            <attacher name="Hyerim Bae">hyerim.bae</attacher>
            
              <data encoding="base64">Y29tbWl0IDNmY2ZjNDM4MGE0ODZhMTBkNzE0NmIyMGU4YTYyNjFjZDlhMWE5MDcKQXV0aG9yOiBI
eWVyaW0gQmFlIDxoeWVyaW0uYmFlQHNhbXN1bmcuY29tPgpEYXRlOiAgIFR1ZSBKdWwgMjYgMDk6
MzM6MjcgMjAxMSArMDkwMAoKICAgIHBhdGNoLVsyMDExMDcyNl0tW2h5ZXJpbS5iYWVAc2Ftc3Vu
Zy5jb21dLVtFV2ViTGF1bmNoZXJ1cmxiYXJdLnBhdGNoCgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ01h
a2VMaXN0c0VmbC50eHQgYi9Ub29scy9DTWFrZUxpc3RzRWZsLnR4dApvbGQgbW9kZSAxMDA2NDQK
bmV3IG1vZGUgMTAwNzU1CmluZGV4IDI0ZWY4NWMuLmZmYzY0ODUKLS0tIGEvVG9vbHMvQ01ha2VM
aXN0c0VmbC50eHQKKysrIGIvVG9vbHMvQ01ha2VMaXN0c0VmbC50eHQKQEAgLTQ5LDYgKzQ5LDkg
QEAgSUYgKFdURl9VU0VfQ1VSTCkKICAgTElTVChBUFBFTkQgRVdlYkxhdW5jaGVyX0xJTktfRkxB
R1MgJHtDVVJMX0xERkxBR1N9KQogRU5ESUYgKCkKIAorU0VUKEVOVFJZX0VESl9QQVRIICIke0NN
QUtFX0JJTkFSWV9ESVJ9L1Byb2dyYW1zL2VudHJ5LmVkaiIpCitBRERfREVGSU5JVElPTlMoLURF
TlRSWV9FREpfUEFUSD1cIiR7RU5UUllfRURKX1BBVEh9XCIpCisKICMgT3ZlcnJpZGUgZGF0YSBk
aXJlY3RvcnkuIFdlIGFsd2F5cyB3YW50IHRvIGdldCBhIGZyZXNoIHRoZW1lLgogUkVNT1ZFX0RF
RklOSVRJT05TKC1EREFUQV9ESVI9XCIke0RBVEFfRElSfVwiKQogQUREX0RFRklOSVRJT05TKC1E
REFUQV9ESVI9XCIke0JVSUxEX0RBVEFfRElSfVwiKQpAQCAtNTcsMyArNjAsMTQgQEAgSU5DTFVE
RV9ESVJFQ1RPUklFUygke0VXZWJMYXVuY2hlcl9JTkNMVURFX0RJUkVDVE9SSUVTfSkKIEFERF9F
WEVDVVRBQkxFKFByb2dyYW1zL0VXZWJMYXVuY2hlciAke0VXZWJMYXVuY2hlcl9TT1VSQ0VTfSkK
IFRBUkdFVF9MSU5LX0xJQlJBUklFUyhQcm9ncmFtcy9FV2ViTGF1bmNoZXIgJHtFV2ViTGF1bmNo
ZXJfTElCUkFSSUVTfSkKIEFERF9UQVJHRVRfUFJPUEVSVElFUyhQcm9ncmFtcy9FV2ViTGF1bmNo
ZXIgTElOS19GTEFHUyAiJHtFV2ViTGF1bmNoZXJfTElOS19GTEFHU30iKQorCitBRERfQ1VTVE9N
X0NPTU1BTkQoVEFSR0VUIFByb2dyYW1zL0VXZWJMYXVuY2hlcgorICAgICAgICAgICAgICAgICAg
IENPTU1BTkQgJHtFREpFX0NDX0VYRUNVVEFCTEV9IC12ICR7VE9PTFNfRElSfS9FV2ViTGF1bmNo
ZXIvZW50cnkuZWRjICR7RU5UUllfRURKX1BBVEh9CisgICAgICAgICAgICAgICAgICAgREVQRU5E
UworICAgICAgICAgICAgICAgICAgICAgICR7VE9PTFNfRElSfS9FV2ViTGF1bmNoZXIvZW50cnku
ZWRjCisgICAgICAgICAgICAgICAgICAgVkVSQkFUSU0KKykKKworTElTVChBUFBFTkQgRVdlYkxh
dW5jaGVyX1NPVVJDRVMKKyAgICAgJHtFTlRSWV9FREpfUEFUSH0KKykKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUg
MTAwNzU1CmluZGV4IGFlNjUxYjQuLmE5YTFjN2IKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDExLTA3LTI1ICBIeWVyaW0gQmFl
ICA8aHllcmltLmJhZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbRUZMXSBBZGQgdXJsIGJhciB0byBFV2ViTGF1bmNoZXIuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzk2NgorCisg
ICAgICAgIFVzZXJzIGNhbiBuYXZpZ2F0ZSB0byB0aGUgc2l0ZSB3aGVyZSBoZSBvciBzaGUgaW50
ZW5kcyB0byB0aHJvdWdoIHRoZSBVUkwgYmFyLgorCisgICAgICAgICogQ01ha2VMaXN0c0VmbC50
eHQ6CisgICAgICAgICogRVdlYkxhdW5jaGVyL2VudHJ5LmVkYworICAgICAgICAqIEVXZWJMYXVu
Y2hlci9tYWluLmM6CisgICAgICAgIChvbl9lY29yZV9ldmFzX3Jlc2l6ZSk6CisgICAgICAgIChv
bl91cmxfY2hhbmdlZCk6CisgICAgICAgIChvbl9tb3VzZV9kb3duKToKKyAgICAgICAgKG9uX2tl
eV9kb3duKToKKyAgICAgICAgKG9uX2Jyb3dzZXJfZGVsKToKKyAgICAgICAgKGdldFVyaVdpdGhQ
cm90b2NvbCk6CisgICAgICAgIChvbl91cmxiYXJfa2V5X2Rvd24pOgorICAgICAgICAob25fdXJs
YmFyX21vdXNlX2Rvd24pOgorICAgICAgICAob25fdXJsYmFyX2ZvY3VzX291dCk6CisgICAgICAg
ICh1cmxCYXJDcmVhdGUpOgorICAgICAgICAoYnJvd3NlckNyZWF0ZSk6CisKIDIwMTEtMDctMjUg
IFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSWdub3Jl
IGxpbmUgZW5kaW5ncyBpbiBDaGFuZ2VMb2dUZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvRVdlYkxh
dW5jaGVyL2VudHJ5LmVkYyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9lbnRyeS5lZGMKbmV3IGZpbGUg
bW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGQwMmUwZgotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL0VXZWJMYXVuY2hlci9lbnRyeS5lZGMKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgICAgQ29w
eXJpZ2h0IChDKSAyMDA4LDIwMDkgSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lh
CisgICAgQ29weXJpZ2h0IChDKSAyMDA5LDIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMK
KyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworCisgICAgVGhpcyBm
aWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAg
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKK2NvbGxlY3Rpb25zIHsK
KyAgIGdyb3VwIHsKKyAgICAgIG5hbWU6ICJFV2ViTGF1bmNoZXIvZW50cnkvYmFzZS9kZWZhdWx0
IjsKKyAgICAgIHN0eWxlcworICAgICAgeworICAgICAgICAgc3R5bGUgeworICAgICAgICAgICAg
bmFtZTogImVudHJ5X3RleHRibG9ja19zdHlsZSI7CisgICAgICAgICAgICBiYXNlOiAiZm9udD1S
b21hbiBmb250X3NpemU9MTQgY29sb3I9IzAwMDAwMCB3cmFwPW1peGVkIjsKKyAgICAgICAgIH0K
KyAgICAgIH0KKyAgICAgIHBhcnRzIHsKKyAgICAgICAgIHBhcnQgeworICAgICAgICAgICAgbmFt
ZTogInVybC50ZXh0IjsKKyAgICAgICAgICAgIHR5cGU6IFRFWFRCTE9DSzsKKyAgICAgICAgICAg
IG1vdXNlX2V2ZW50czogMTsKKyAgICAgICAgICAgIHNjYWxlOiAxOworICAgICAgICAgICAgZW50
cnlfbW9kZTogRURJVEFCTEU7CisgICAgICAgICAgICBtdWx0aWxpbmU6IDE7CisgICAgICAgICAg
ICBzb3VyY2U6ICJFV2ViTGF1bmNoZXIvZW50cnkvc2VsZWN0aW9uL2RlZmF1bHQiOyAvLyBzZWxl
Y3Rpb24gdW5kZXIKKyAgICAgICAgICAgIHNvdXJjZTQ6ICJFV2ViTGF1bmNoZXIvZW50cnkvY3Vy
c29yL2RlZmF1bHQiOyAvLyBjdXJzb3JvdmVyCisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7IHN0
YXRlOiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgZml4ZWQ6IDEgMDsKKyAgICAgICAg
ICAgICAgIHRleHQgeworICAgICAgICAgICAgICAgICAgc3R5bGU6ICJlbnRyeV90ZXh0YmxvY2tf
c3R5bGUiOworICAgICAgICAgICAgICAgICAgbWluOiAwIDE7CisgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICB9CisgICAgICBwcm9ncmFtcyB7CisgICAg
ICAgICBwcm9ncmFtIHsKKyAgICAgICAgICAgIG5hbWU6ICJmb2N1cyI7CisgICAgICAgICAgICBz
aWduYWw6ICJsb2FkIjsKKyAgICAgICAgICAgIHNvdXJjZTogIiI7CisgICAgICAgICAgICBhY3Rp
b246IEZPQ1VTX1NFVDsKKyAgICAgICAgICAgIHRhcmdldDogInVybC50ZXh0IjsKKyAgICAgICAg
IH0KKyAgICAgIH0KKyAgIH0KKworICAgZ3JvdXAgeworICAgICAgbmFtZTogIkVXZWJMYXVuY2hl
ci9lbnRyeS9jdXJzb3IvZGVmYXVsdCI7CisgICAgICBwYXJ0cyB7CisgICAgICAgICBwYXJ0IHsK
KyAgICAgICAgICAgIG5hbWU6ICJjbGlwIjsKKyAgICAgICAgICAgIHR5cGU6IFJFQ1Q7CisgICAg
ICAgICAgICBtb3VzZV9ldmVudHM6IDA7CisgICAgICAgICAgICBzY2FsZTogMTsKKyAgICAgICAg
ICAgIGRlc2NyaXB0aW9uIHsgc3RhdGU6ICJkZWZhdWx0IiAwLjA7CisgICAgICAgICAgICAgICBy
ZWwxLm9mZnNldDogLTEwIDA7CisgICAgICAgICAgICAgICByZWwyLm9mZnNldDogOSA5OworICAg
ICAgICAgICAgICAgdmlzaWJsZTogMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlc2Ny
aXB0aW9uIHsgc3RhdGU6ICJmb2N1c2VkIiAwLjA7CisgICAgICAgICAgICAgICBpbmhlcml0OiAi
ZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgdmlzaWJsZTogMTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgIH0KKyAgICAgICAgIHBhcnQgeworICAgICAgICAgICAgbmFtZTogImN1cnNvciI7
CisgICAgICAgICAgICB0eXBlOiBSRUNUOworICAgICAgICAgICAgbW91c2VfZXZlbnRzOiAwOwor
ICAgICAgICAgICAgc2NhbGU6IDE7CisgICAgICAgICAgICBjbGlwX3RvOiAiY2xpcCI7CisgICAg
ICAgICAgICBkZXNjcmlwdGlvbiB7IHN0YXRlOiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAg
ICAgbWluOiAxIDA7CisgICAgICAgICAgICAgICBmaXhlZDogMSAwOworICAgICAgICAgICAgICAg
YWxpZ246IDAuNSAwLjU7CisgICAgICAgICAgICAgICB2aXNpYmxlOiAxOworICAgICAgICAgICAg
ICAgcmVsMSB7CisgICAgICAgICAgICAgICAgICByZWxhdGl2ZTogMC4wICAwLjA7CisgICAgICAg
ICAgICAgICAgICBvZmZzZXQ6IDAgMjsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
IHJlbDIgeworICAgICAgICAgICAgICAgICAgcmVsYXRpdmU6IDAuMCAgMS4wOworICAgICAgICAg
ICAgICAgICAgb2Zmc2V0OiAwIC0yOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
Y29sb3I6IDAgMCAwIDI1NTsgLy8gY3Vyc29yIGNvbG9yCisgICAgICAgICAgICB9CisgICAgICAg
ICB9CisgICAgICB9CisgICAgICBwcm9ncmFtcyB7CisgICAgICAgICBwcm9ncmFtIHsKKyAgICAg
ICAgICAgIG5hbWU6ICJmb2N1c2VkIjsKKyAgICAgICAgICAgIHNpZ25hbDogImVudHJ5LGFjdGlv
bixmb2N1cyI7CisgICAgICAgICAgICBzb3VyY2U6ICJlbnRyeSI7CisgICAgICAgICAgICBhY3Rp
b246IFNUQVRFX1NFVCAiZm9jdXNlZCIgMC4wOworICAgICAgICAgICAgdGFyZ2V0OiAiY2xpcCI7
CisgICAgICAgICB9CisgICAgICAgICBwcm9ncmFtIHsKKyAgICAgICAgICAgIG5hbWU6ICJ1bmZv
Y3VzZWQiOworICAgICAgICAgICAgc2lnbmFsOiAiZW50cnksYWN0aW9uLHVuZm9jdXMiOworICAg
ICAgICAgICAgc291cmNlOiAiZW50cnkiOworICAgICAgICAgICAgYWN0aW9uOiBTVEFURV9TRVQg
ImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgIHRhcmdldDogImNsaXAiOworICAgICAgICAgfQor
ICAgICAgfQorICAgfQorCisgICBncm91cCB7CisgICAgICBuYW1lOiAiRVdlYkxhdW5jaGVyL2Vu
dHJ5L3NlbGVjdGlvbi9kZWZhdWx0IjsKKyAgICAgIHBhcnRzIHsKKyAgICAgICAgIHBhcnQgewor
ICAgICAgICAgICAgbmFtZTogImJnIjsKKyAgICAgICAgICAgIHR5cGU6IFJFQ1Q7CisgICAgICAg
ICAgICBzY2FsZTogMTsKKyAgICAgICAgICAgIG1vdXNlX2V2ZW50czogMDsKKyAgICAgICAgICAg
IGRlc2NyaXB0aW9uIHsgc3RhdGU6ICJkZWZhdWx0IiAwLjA7CisgICAgICAgICAgICAgICBjb2xv
cjogMTM4IDE4MyAyMjMgMTI4OworICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgfQor
ICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYyBiL1Rvb2xzL0VX
ZWJMYXVuY2hlci9tYWluLmMKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA2
YWU5ZjNkLi4xYTFhYjdjCi0tLSBhL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMKKysrIGIvVG9v
bHMvRVdlYkxhdW5jaGVyL21haW4uYwpAQCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVkZSAiRVdl
YktpdC5oIgogCi0jaW5jbHVkZSA8Y3R5cGUuaD4KICNpbmNsdWRlIDxFY29yZS5oPgogI2luY2x1
ZGUgPEVjb3JlX0V2YXMuaD4KICNpbmNsdWRlIDxFY29yZV9GaWxlLmg+CkBAIC0zNyw2ICszNiw3
IEBACiAjaW5jbHVkZSA8RWNvcmVfWC5oPgogI2luY2x1ZGUgPEVkamUuaD4KICNpbmNsdWRlIDxF
dmFzLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRl
IDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtNDcsNiArNDcsNyBAQAogCiAjZGVm
aW5lIERFRkFVTFRfV0lEVEggICAgICA4MDAKICNkZWZpbmUgREVGQVVMVF9IRUlHSFQgICAgIDYw
MAorI2RlZmluZSBVUkxfQkFSX0hFSUdIVCAgICAgMzAKICNkZWZpbmUgREVGQVVMVF9aT09NX0lO
SVQgIDEuMAogCiAjZGVmaW5lIGluZm8oZm9ybWF0LCBhcmdzLi4uKSAgICAgICBcCkBAIC0xNTAs
NiArMTUxLDggQEAgdHlwZWRlZiBzdHJ1Y3QgX0VMYXVuY2hlciB7CiAgICAgRXZhcyAqZXZhczsK
ICAgICBFdmFzX09iamVjdCAqYmc7CiAgICAgRXZhc19PYmplY3QgKmJyb3dzZXI7CisgICAgRXZh
c19PYmplY3QgKnVybEJhckFyZWE7CisgICAgRXZhc19PYmplY3QgKnVybEVudHJ5OwogICAgIGNv
bnN0IGNoYXIgKnRoZW1lOwogICAgIGNvbnN0IGNoYXIgKnVzZXJBZ2VudDsKICAgICBjb25zdCBj
aGFyICpiYWNraW5nU3RvcmU7CkBAIC0xNjAsNiArMTYzLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgX0VM
YXVuY2hlciB7CiBzdGF0aWMgdm9pZCBicm93c2VyRGVzdHJveShFY29yZV9FdmFzICplZSk7CiBz
dGF0aWMgdm9pZCBjbG9zZVdpbmRvdyhFY29yZV9FdmFzICplZSk7CiBzdGF0aWMgaW50IGJyb3dz
ZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICp0aGVtZSwgY29uc3QgY2hhciAq
dXNlckFnZW50LCBFaW5hX1JlY3RhbmdsZSBnZW9tZXRyeSwgY29uc3QgY2hhciAqZW5naW5lLCBj
b25zdCBjaGFyICpiYWNraW5nU3RvcmUsIHVuc2lnbmVkIGNoYXIgaXNGbGF0dGVuaW5nLCB1bnNp
Z25lZCBjaGFyIGlzRnVsbHNjcmVlbiwgY29uc3QgY2hhciAqZGF0YWJhc2VQYXRoKTsKK3N0YXRp
YyB2b2lkIG9uX3VybGJhcl9rZXlfZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVj
dCAqb2JqLCB2b2lkICpldmVudF9pbmZvKTsKK3N0YXRpYyB2b2lkIG9uX3VybGJhcl9tb3VzZV9k
b3duKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2lu
Zm8pOworc3RhdGljIHZvaWQgb25fdXJsYmFyX2ZvY3VzX291dCh2b2lkICpkYXRhLCBFdmFzICpl
LCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKTsKIAogc3RhdGljIHZvaWQKIHBy
aW50X2hpc3RvcnkoRWluYV9MaXN0ICpsaXN0KQpAQCAtMjIzLDYgKzIyOSw3IEBAIG9uX2Vjb3Jl
X2V2YXNfcmVzaXplKEVjb3JlX0V2YXMgKmVlKQogewogICAgIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3
OwogICAgIEV2YXNfT2JqZWN0ICpiZzsKKyAgICBFdmFzX09iamVjdCAqdXJsQmFyQXJlYTsKICAg
ICBpbnQgdywgaDsKIAogICAgIGVjb3JlX2V2YXNfZ2VvbWV0cnlfZ2V0KGVlLCBOVUxMLCBOVUxM
LCAmdywgJmgpOwpAQCAtMjMyLDggKzIzOSwxMiBAQCBvbl9lY29yZV9ldmFzX3Jlc2l6ZShFY29y
ZV9FdmFzICplZSkKICAgICBldmFzX29iamVjdF9yZXNpemUoYmcsIHcsIGgpOwogCiAgICAgd2Vi
dmlldyA9IGV2YXNfb2JqZWN0X25hbWVfZmluZChlY29yZV9ldmFzX2dldChlZSksICJicm93c2Vy
Iik7Ci0gICAgZXZhc19vYmplY3RfbW92ZSh3ZWJ2aWV3LCAxMCwgMTApOwotICAgIGV2YXNfb2Jq
ZWN0X3Jlc2l6ZSh3ZWJ2aWV3LCB3IC0gMjAsIGggLSAyMCk7CisgICAgZXZhc19vYmplY3RfbW92
ZSh3ZWJ2aWV3LCA1LCA1ICsgVVJMX0JBUl9IRUlHSFQpOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6
ZSh3ZWJ2aWV3LCB3IC0gMTAsIGggLSBVUkxfQkFSX0hFSUdIVCAtIDEwKTsKKworICAgIHVybEJh
ckFyZWEgPSBldmFzX29iamVjdF9uYW1lX2ZpbmQoZWNvcmVfZXZhc19nZXQoZWUpLCAidXJsQmFy
QXJlYSIpOworICAgIGV2YXNfb2JqZWN0X21vdmUodXJsQmFyQXJlYSwgNSwgMCk7CisgICAgZXZh
c19vYmplY3RfcmVzaXplKHVybEJhckFyZWEsIHcgLSAxMCwgVVJMX0JBUl9IRUlHSFQpOwogfQog
CiBzdGF0aWMgdm9pZApAQCAtNDc0LDEwICs0ODUsMjYgQEAgb25fdmlld3BvcnRfY2hhbmdlZCh2
b2lkKiB1c2VyX2RhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2b2lkKiBldmVudF9pbmZvKQog
fQogCiBzdGF0aWMgdm9pZAotb25fbW91c2VfZG93bih2b2lkKiBkYXRhLCBFdmFzKiBlLCBFdmFz
X09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5mbykKK29uX3VybF9jaGFuZ2VkKHZvaWQg
KnVzZXJfZGF0YSwgRXZhc19PYmplY3QgKndlYnZpZXcsIHZvaWQgKmV2ZW50X2luZm8pCit7Cisg
ICAgRUxhdW5jaGVyICphcHAgPSAoRUxhdW5jaGVyICopdXNlcl9kYXRhOworCisgICAgY29uc3Qg
Y2hhciAqdXJsID0gZXdrX2ZyYW1lX3VyaV9nZXQoZXdrX3ZpZXdfZnJhbWVfbWFpbl9nZXQod2Vi
dmlldykpOworICAgIGluZm8oIlslczolZF11cmw9WyVzXVxuIiwgX19mdW5jX18sIF9fTElORV9f
LCB1cmwpOworICAgIGVkamVfb2JqZWN0X3BhcnRfdGV4dF9zZXQoYXBwLT51cmxFbnRyeSwgInVy
bC50ZXh0IiwgdXJsKTsKK30KKworc3RhdGljIHZvaWQKK29uX21vdXNlX2Rvd24odm9pZCAqZGF0
YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKndlYnZpZXcsIHZvaWQgKmV2ZW50X2luZm8pCiB7Ci0g
ICAgRXZhc19FdmVudF9Nb3VzZV9Eb3duICpldiA9IChFdmFzX0V2ZW50X01vdXNlX0Rvd24qKSBl
dmVudF9pbmZvOwotICAgIGlmIChldi0+YnV0dG9uID09IDIpCisgICAgRXZhc19FdmVudF9Nb3Vz
ZV9Eb3duICpldiA9IGV2ZW50X2luZm87CisgICAgRUxhdW5jaGVyICphcHAgPSAoRUxhdW5jaGVy
ICopZGF0YTsKKworICAgIGluZm8oIlslczolZF1ldi0+YnV0dG9uPSVkXG4iLCBfX2Z1bmNfXywg
X19MSU5FX18sIGV2LT5idXR0b24pOworCisgICAgaWYgKGV2LT5idXR0b24gPT0gMSkKKyAgICAg
ICAgZXZhc19vYmplY3RfZm9jdXNfc2V0KHdlYnZpZXcsIEVJTkFfVFJVRSk7CisgICAgZWxzZSBp
ZiAoZXYtPmJ1dHRvbiA9PSAyKQogICAgICAgICBldmFzX29iamVjdF9mb2N1c19zZXQod2Vidmll
dywgIWV2YXNfb2JqZWN0X2ZvY3VzX2dldCh3ZWJ2aWV3KSk7CiB9CiAKQEAgLTQ5Niw4ICs1MjMs
OSBAQCBvbl9mb2N1c19pbih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2
b2lkICpldmVudF9pbmZvKQogc3RhdGljIHZvaWQKIG9uX2tleV9kb3duKHZvaWQgKmRhdGEsIEV2
YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pCiB7Ci0gICAgRXZhc19F
dmVudF9LZXlfRG93biAqZXYgPSAoRXZhc19FdmVudF9LZXlfRG93biopIGV2ZW50X2luZm87Cisg
ICAgRXZhc19FdmVudF9LZXlfRG93biAqZXYgPSBldmVudF9pbmZvOwogICAgIEVMYXVuY2hlciAq
YXBwID0gZGF0YTsKKwogICAgIHN0YXRpYyBjb25zdCBjaGFyICplbmNvZGluZ3NbXSA9IHsKICAg
ICAgICAgIklTTy04ODU5LTEiLAogICAgICAgICAiVVRGLTgiLApAQCAtNjM2LDYgKzY2NCwxMCBA
QCBvbl9icm93c2VyX2RlbCh2b2lkICpkYXRhLCBFdmFzICpldmFzLCBFdmFzX09iamVjdCAqYnJv
d3Nlciwgdm9pZCAqZXZlbnQpCiAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKGFw
cC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19GT0NVU19JTiwgb25fZm9jdXNfaW4pOwogICAgIGV2
YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tf
Rk9DVVNfT1VULCBvbl9mb2N1c19vdXQpOwogICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNr
X2RlbChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfREVMLCBvbl9icm93c2VyX2RlbCk7CisK
KyAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwoYXBwLT51cmxFbnRyeSwgRVZBU19D
QUxMQkFDS19LRVlfRE9XTiwgb25fdXJsYmFyX2tleV9kb3duKTsKKyAgICBldmFzX29iamVjdF9l
dmVudF9jYWxsYmFja19kZWwoYXBwLT51cmxFbnRyeSwgRVZBU19DQUxMQkFDS19NT1VTRV9ET1dO
LCBvbl91cmxiYXJfbW91c2VfZG93bik7CisgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tf
ZGVsKGFwcC0+dXJsRW50cnksIEVWQVNfQ0FMTEJBQ0tfRk9DVVNfT1VULCBvbl91cmxiYXJfZm9j
dXNfb3V0KTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTY2NSw2ICs2OTcsMTAxIEBAIHF1aXQoRWlu
YV9Cb29sIHN1Y2Nlc3MsIGNvbnN0IGNoYXIgKm1zZykKICAgICByZXR1cm4gRVhJVF9TVUNDRVNT
OwogfQogCitzdGF0aWMgY2hhciAqCitnZXRVcmlXaXRoUHJvdG9jb2woY29uc3QgY2hhciAqdXJs
KQoreworICAgIGNoYXIgKmZ1bGxfdXJsID0gTlVMTDsKKyAgICBpZiAodXJsICYmIHN0cmxlbih1
cmwpKSB7CisgICAgICAgIGNoYXIgKnRva2VuID0gc3Ryc3RyKHVybCwgIjovLyIpOworICAgICAg
ICBpZiAoIXRva2VuKSB7CisgICAgICAgICAgICBpbnQgbGVuID0gc3RybGVuKHVybCkgKyBzdHJs
ZW4oImh0dHA6Ly8iKSArIDE7CisgICAgICAgICAgICBmdWxsX3VybCA9IG1hbGxvYyhsZW4pOwor
ICAgICAgICAgICAgaWYgKGZ1bGxfdXJsKSB7CisgICAgICAgICAgICAgICAgZnVsbF91cmxbbGVu
LTFdID0gJ1wwJzsKKyAgICAgICAgICAgICAgICBzcHJpbnRmKGZ1bGxfdXJsLCAiaHR0cDovLyVz
IiwgdXJsKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVsbF91cmw7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVy
biBzdHJkdXAodXJsKTsKK30KKworc3RhdGljIHZvaWQKK29uX3VybGJhcl9rZXlfZG93bih2b2lk
ICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQorewor
ICAgIEV2YXNfRXZlbnRfS2V5X0Rvd24gKmV2ID0gZXZlbnRfaW5mbzsKKyAgICBFTGF1bmNoZXIg
KmFwcCA9IGRhdGE7CisKKyAgICBpZiAoIWV2LT5rZXkpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmICghc3RyY21wKGV2LT5rZXksICJFc2NhcGUiKSkgeworICAgICAgICBjbG9zZVdpbmRvdyhh
cHAtPmVlKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAoZXYtPmtleSwgIlJldHVybiIpKSB7Cisg
ICAgICAgIGNvbnN0IGNoYXIgKnVybCA9IGVkamVfb2JqZWN0X3BhcnRfdGV4dF9nZXQoYXBwLT51
cmxFbnRyeSwgInVybC50ZXh0Iik7CisgICAgICAgIGlmICh1cmwgJiYgc3RybGVuKHVybCkpIHsK
KyAgICAgICAgICAgIGNoYXIgKmZ1bGxfdXJsID0gZ2V0VXJpV2l0aFByb3RvY29sKHVybCk7Cisg
ICAgICAgICAgICBpZiAoZnVsbF91cmwpIHsKKyAgICAgICAgICAgICAgICBld2tfdmlld191cmlf
c2V0KGFwcC0+YnJvd3NlciwgZnVsbF91cmwpOworICAgICAgICAgICAgICAgIGZyZWUoZnVsbF91
cmwpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZXZhc19vYmplY3RfZm9jdXNfc2V0KGFw
cC0+YnJvd3NlciwgRUlOQV9UUlVFKTsKKyAgICAgICAgfQorICAgIH0KK30KKworc3RhdGljIHZv
aWQKK29uX3VybGJhcl9tb3VzZV9kb3duKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0
ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pCit7CisgICAgRXZhc19FdmVudF9Nb3VzZV9Eb3duICpl
diA9IGV2ZW50X2luZm87CisgICAgRUxhdW5jaGVyICphcHAgPSBkYXRhOworCisgICAgaWYgKGV2
LT5idXR0b24gPT0gMSkgeworICAgICAgICBldmFzX29iamVjdF9mb2N1c19zZXQoYXBwLT51cmxF
bnRyeSwgRUlOQV9UUlVFKTsKKyAgICAgICAgZWRqZV9vYmplY3Rfc2lnbmFsX2VtaXQoYXBwLT51
cmxFbnRyeSwgImVudHJ5LGFjdGlvbixmb2N1cyIsICJlbnRyeSIpOworICAgIH0KK30KKworc3Rh
dGljIHZvaWQKK29uX3VybGJhcl9mb2N1c19vdXQodm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19P
YmplY3QgKm9iaiwgdm9pZCAqZXZlbnRfaW5mbykKK3sKKyAgICBFTGF1bmNoZXIgKmFwcCA9IGRh
dGE7CisKKyAgICBlZGplX29iamVjdF9zaWduYWxfZW1pdChhcHAtPnVybEVudHJ5LCAiZW50cnks
YWN0aW9uLHVuZm9jdXMiLCAiZW50cnkiKTsKK30KKworc3RhdGljIGludAordXJsQmFyQ3JlYXRl
KEVMYXVuY2hlciAqYXBwKQoreworICAgIGlmICghYXBwKQorICAgICAgICByZXR1cm4gcXVpdChF
SU5BX0ZBTFNFLCAiRVJST1I6IGNvdWxkIG5vdCBnZXQgRVdlYkxhdW5jaGVyIHdpbmRvd1xuIik7
CisKKyAgICBhcHAtPnVybEJhckFyZWEgPSBldmFzX29iamVjdF9yZWN0YW5nbGVfYWRkKGFwcC0+
ZXZhcyk7CisgICAgZXZhc19vYmplY3RfbmFtZV9zZXQoYXBwLT51cmxCYXJBcmVhLCAidXJsQmFy
QXJlYSIpOworICAgIGV2YXNfb2JqZWN0X2NvbG9yX3NldChhcHAtPnVybEJhckFyZWEsIDI1NSwg
MjU1LCAyNTUsIDI1NSk7CisgICAgZXZhc19vYmplY3RfbW92ZShhcHAtPnVybEJhckFyZWEsIDUs
IDApOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShhcHAtPnVybEJhckFyZWEsIERFRkFVTFRfV0lE
VEggLSAxMCwgVVJMX0JBUl9IRUlHSFQpOworICAgIGV2YXNfb2JqZWN0X3Nob3coYXBwLT51cmxC
YXJBcmVhKTsKKworICAgIEV2YXMgKmV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dldChhcHAtPnVy
bEJhckFyZWEpOworICAgIGFwcC0+dXJsRW50cnkgPSBlZGplX29iamVjdF9hZGQoZXZhcyk7Cisg
ICAgRWluYV9Cb29sIHJldCA9IGVkamVfb2JqZWN0X2ZpbGVfc2V0KGFwcC0+dXJsRW50cnksIEVO
VFJZX0VESl9QQVRILCAiRVdlYkxhdW5jaGVyL2VudHJ5L2Jhc2UvZGVmYXVsdCIpOworCisgICAg
aWYgKCFyZXQpCisgICAgICAgIGluZm8oImVkamVfb2JqZWN0X2ZpbGVfc2V0IGZhaWxlZFxuIik7
CisKKyAgICBlZGplX29iamVjdF9wYXJ0X3RleHRfc2V0KGFwcC0+dXJsRW50cnksICJ1cmwudGV4
dCIsICIiKTsKKyAgICBldmFzX29iamVjdF9tb3ZlKGFwcC0+dXJsRW50cnksIDEwLCAzKTsKKyAg
ICBldmFzX29iamVjdF9yZXNpemUoYXBwLT51cmxFbnRyeSwgREVGQVVMVF9XSURUSCAtIDIwLCBV
UkxfQkFSX0hFSUdIVCAtIDYpOworICAgIGV2YXNfb2JqZWN0X3Nob3coYXBwLT51cmxFbnRyeSk7
CisgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKGFwcC0+dXJsRW50cnksIEVWQVNf
Q0FMTEJBQ0tfTU9VU0VfRE9XTiwgb25fdXJsYmFyX21vdXNlX2Rvd24sIGFwcCk7CisgICAgZXZh
c19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKGFwcC0+dXJsRW50cnksIEVWQVNfQ0FMTEJBQ0tf
S0VZX0RPV04sIG9uX3VybGJhcl9rZXlfZG93biwgYXBwKTsKKyAgICBldmFzX29iamVjdF9ldmVu
dF9jYWxsYmFja19hZGQoYXBwLT51cmxFbnRyeSwgRVZBU19DQUxMQkFDS19GT0NVU19PVVQsIG9u
X3VybGJhcl9mb2N1c19vdXQsIGFwcCk7CisgICAgcmV0dXJuIDE7Cit9CisKIHN0YXRpYyBpbnQK
IGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICp0aGVtZSwgY29uc3Qg
Y2hhciAqdXNlckFnZW50LCBFaW5hX1JlY3RhbmdsZSBnZW9tZXRyeSwgY29uc3QgY2hhciAqZW5n
aW5lLCBjb25zdCBjaGFyICpiYWNraW5nU3RvcmUsIHVuc2lnbmVkIGNoYXIgaXNGbGF0dGVuaW5n
LCB1bnNpZ25lZCBjaGFyIGlzRnVsbHNjcmVlbiwgY29uc3QgY2hhciAqZGF0YWJhc2VQYXRoKQog
ewpAQCAtNjc3LDcgKzgwNCw3IEBAIGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25z
dCBjaGFyICp0aGVtZSwgY29uc3QgY2hhciAqdXNlckFnZW50LCBFaW5hX1JlCiAgICAgaWYgKCFh
cHApCiAgICAgICAgIHJldHVybiBxdWl0KEVJTkFfRkFMU0UsICJFUlJPUjogY291bGQgbm90IGNy
ZWF0ZSBFV2ViTGF1bmNoZXIgd2luZG93XG4iKTsKIAotICAgIGFwcC0+ZWUgPSBlY29yZV9ldmFz
X25ldyhlbmdpbmUsIDAsIDAsIGdlb21ldHJ5LncsIGdlb21ldHJ5LmgsIE5VTEwpOworICAgIGFw
cC0+ZWUgPSBlY29yZV9ldmFzX25ldyhlbmdpbmUsIDAsIDAsIGdlb21ldHJ5LncsIGdlb21ldHJ5
LmggKyBVUkxfQkFSX0hFSUdIVCwgTlVMTCk7CiAKICAgICBpZiAoIWFwcC0+ZWUpCiAgICAgICAg
IHJldHVybiBxdWl0KEVJTkFfRkFMU0UsICJFUlJPUjogY291bGQgbm90IGNvbnN0cnVjdCBldmFz
LWVjb3JlXG4iKTsKQEAgLTcwMSw5ICs4MjgsOSBAQCBicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIg
KnVybCwgY29uc3QgY2hhciAqdGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9SZQog
CiAgICAgYXBwLT5iZyA9IGV2YXNfb2JqZWN0X3JlY3RhbmdsZV9hZGQoYXBwLT5ldmFzKTsKICAg
ICBldmFzX29iamVjdF9uYW1lX3NldChhcHAtPmJnLCAiYmciKTsKLSAgICBldmFzX29iamVjdF9j
b2xvcl9zZXQoYXBwLT5iZywgMjU1LCAwLCAyNTUsIDI1NSk7CisgICAgZXZhc19vYmplY3RfY29s
b3Jfc2V0KGFwcC0+YmcsIDYwLCA3NSwgOTgsIDI1NSk7CiAgICAgZXZhc19vYmplY3RfbW92ZShh
cHAtPmJnLCAwLCAwKTsKLSAgICBldmFzX29iamVjdF9yZXNpemUoYXBwLT5iZywgZ2VvbWV0cnku
dywgZ2VvbWV0cnkuaCk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YmcsIGdlb21ldHJ5
LncsIGdlb21ldHJ5LmggKyBVUkxfQkFSX0hFSUdIVCk7CiAgICAgZXZhc19vYmplY3RfbGF5ZXJf
c2V0KGFwcC0+YmcsIEVWQVNfTEFZRVJfTUlOKTsKICAgICBldmFzX29iamVjdF9zaG93KGFwcC0+
YmcpOwogCkBAIC03NDAsNiArODY3LDggQEAgYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmws
IGNvbnN0IGNoYXIgKnRoZW1lLCBjb25zdCBjaGFyICp1c2VyQWdlbnQsIEVpbmFfUmUKICAgICBl
dmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCAidG9vbHRpcCx0ZXh0
LHNldCIsIG9uX3Rvb2x0aXBfdGV4dF9zZXQsIGFwcCk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRf
Y2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgImlucHV0bWV0aG9kLGNoYW5nZWQiLCBvbl9pbnB1
dG1ldGhvZF9jaGFuZ2VkLCBhcHApOwogCisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
YWRkKGFwcC0+YnJvd3NlciwgInVyaSxjaGFuZ2VkIiwgb25fdXJsX2NoYW5nZWQsIGFwcCk7CisK
IC8qICAgICBld2tfY2FsbGJhY2tfcmVzaXplX3JlcXVlc3RlZF9hZGQoYXBwLT5icm93c2VyLCBv
bl9yZXNpemVfcmVxdWVzdGVkLCBhcHAtPmVlKTsgKi8KIAogICAgIGV2YXNfb2JqZWN0X2V2ZW50
X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfS0VZX0RPV04sIG9uX2tl
eV9kb3duLCBhcHApOwpAQCAtNzQ4LDExICs4NzcsMTYgQEAgYnJvd3NlckNyZWF0ZShjb25zdCBj
aGFyICp1cmwsIGNvbnN0IGNoYXIgKnRoZW1lLCBjb25zdCBjaGFyICp1c2VyQWdlbnQsIEVpbmFf
UmUKICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCBFVkFT
X0NBTExCQUNLX0ZPQ1VTX09VVCwgb25fZm9jdXNfb3V0LCBhcHApOwogICAgIGV2YXNfb2JqZWN0
X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfREVMLCBvbl9i
cm93c2VyX2RlbCwgYXBwKTsKIAotICAgIGV2YXNfb2JqZWN0X21vdmUoYXBwLT5icm93c2VyLCAx
MCwgMTApOwotICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShhcHAtPmJyb3dzZXIsIGdlb21ldHJ5Lncg
LSAyMCwgZ2VvbWV0cnkuaCAtIDIwKTsKKyAgICBldmFzX29iamVjdF9tb3ZlKGFwcC0+YnJvd3Nl
ciwgNSwgNSArIFVSTF9CQVJfSEVJR0hUKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUoYXBwLT5i
cm93c2VyLCBnZW9tZXRyeS53IC0gMTAsIGdlb21ldHJ5LmggLSAxMCk7CiAKLSAgICBpZiAodXJs
ICYmICh1cmxbMF0gIT0gJ1wwJykpCi0gICAgICAgIGV3a192aWV3X3VyaV9zZXQoYXBwLT5icm93
c2VyLCB1cmwpOworICAgIGlmICh1cmwgJiYgKHVybFswXSAhPSAnXDAnKSkgeworICAgICAgICBj
aGFyICpmdWxsX3VybCA9IGdldFVyaVdpdGhQcm90b2NvbCh1cmwpOworICAgICAgICBpZiAoZnVs
bF91cmwpIHsKKyAgICAgICAgICAgIGV3a192aWV3X3VyaV9zZXQoYXBwLT5icm93c2VyLCBmdWxs
X3VybCk7CisgICAgICAgICAgICBmcmVlKGZ1bGxfdXJsKTsKKyAgICAgICAgfQorICAgIH0KIAog
ICAgIGV2YXNfb2JqZWN0X3Nob3coYXBwLT5icm93c2VyKTsKICAgICBlY29yZV9ldmFzX3Nob3co
YXBwLT5lZSk7CkBAIC03NjEsNiArODk1LDggQEAgYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1
cmwsIGNvbnN0IGNoYXIgKnRoZW1lLCBjb25zdCBjaGFyICp1c2VyQWdlbnQsIEVpbmFfUmUKIAog
ICAgIHdpbmRvd3MgPSBlaW5hX2xpc3RfYXBwZW5kKHdpbmRvd3MsIGFwcCk7CiAKKyAgICB1cmxC
YXJDcmVhdGUoYXBwKTsKKwogICAgIHJldHVybiAxOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102086</attachid>
            <date>2011-07-26 18:38:17 -0700</date>
            <delta_ts>2011-07-26 18:50:42 -0700</delta_ts>
            <desc>patch for kubo&apos;s comment.</desc>
            <filename>patch-[20110726]-[hyerim.bae@samsung.com]-[EWebLauncherurlbar].patch</filename>
            <type>text/plain</type>
            <size>17153</size>
            <attacher name="Hyerim Bae">hyerim.bae</attacher>
            
              <data encoding="base64">Y29tbWl0IDNmY2ZjNDM4MGE0ODZhMTBkNzE0NmIyMGU4YTYyNjFjZDlhMWE5MDcKQXV0aG9yOiBI
eWVyaW0gQmFlIDxoeWVyaW0uYmFlQHNhbXN1bmcuY29tPgpEYXRlOiAgIFR1ZSBKdWwgMjYgMDk6
MzM6MjcgMjAxMSArMDkwMAoKICAgIHBhdGNoLVsyMDExMDcyNl0tW2h5ZXJpbS5iYWVAc2Ftc3Vu
Zy5jb21dLVtFV2ViTGF1bmNoZXJ1cmxiYXJdLnBhdGNoCgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ01h
a2VMaXN0c0VmbC50eHQgYi9Ub29scy9DTWFrZUxpc3RzRWZsLnR4dApvbGQgbW9kZSAxMDA2NDQK
bmV3IG1vZGUgMTAwNzU1CmluZGV4IDI0ZWY4NWMuLmZmYzY0ODUKLS0tIGEvVG9vbHMvQ01ha2VM
aXN0c0VmbC50eHQKKysrIGIvVG9vbHMvQ01ha2VMaXN0c0VmbC50eHQKQEAgLTQ5LDYgKzQ5LDkg
QEAgSUYgKFdURl9VU0VfQ1VSTCkKICAgTElTVChBUFBFTkQgRVdlYkxhdW5jaGVyX0xJTktfRkxB
R1MgJHtDVVJMX0xERkxBR1N9KQogRU5ESUYgKCkKIAorU0VUKEVOVFJZX0VESl9QQVRIICIke0NN
QUtFX0JJTkFSWV9ESVJ9L1Byb2dyYW1zL2VudHJ5LmVkaiIpCitBRERfREVGSU5JVElPTlMoLURF
TlRSWV9FREpfUEFUSD1cIiR7RU5UUllfRURKX1BBVEh9XCIpCisKICMgT3ZlcnJpZGUgZGF0YSBk
aXJlY3RvcnkuIFdlIGFsd2F5cyB3YW50IHRvIGdldCBhIGZyZXNoIHRoZW1lLgogUkVNT1ZFX0RF
RklOSVRJT05TKC1EREFUQV9ESVI9XCIke0RBVEFfRElSfVwiKQogQUREX0RFRklOSVRJT05TKC1E
REFUQV9ESVI9XCIke0JVSUxEX0RBVEFfRElSfVwiKQpAQCAtNTcsMyArNjAsMTQgQEAgSU5DTFVE
RV9ESVJFQ1RPUklFUygke0VXZWJMYXVuY2hlcl9JTkNMVURFX0RJUkVDVE9SSUVTfSkKIEFERF9F
WEVDVVRBQkxFKFByb2dyYW1zL0VXZWJMYXVuY2hlciAke0VXZWJMYXVuY2hlcl9TT1VSQ0VTfSkK
IFRBUkdFVF9MSU5LX0xJQlJBUklFUyhQcm9ncmFtcy9FV2ViTGF1bmNoZXIgJHtFV2ViTGF1bmNo
ZXJfTElCUkFSSUVTfSkKIEFERF9UQVJHRVRfUFJPUEVSVElFUyhQcm9ncmFtcy9FV2ViTGF1bmNo
ZXIgTElOS19GTEFHUyAiJHtFV2ViTGF1bmNoZXJfTElOS19GTEFHU30iKQorCitBRERfQ1VTVE9N
X0NPTU1BTkQoVEFSR0VUIFByb2dyYW1zL0VXZWJMYXVuY2hlcgorICAgICAgICAgICAgICAgICAg
IENPTU1BTkQgJHtFREpFX0NDX0VYRUNVVEFCTEV9IC12ICR7VE9PTFNfRElSfS9FV2ViTGF1bmNo
ZXIvZW50cnkuZWRjICR7RU5UUllfRURKX1BBVEh9CisgICAgICAgICAgICAgICAgICAgREVQRU5E
UworICAgICAgICAgICAgICAgICAgICAgICR7VE9PTFNfRElSfS9FV2ViTGF1bmNoZXIvZW50cnku
ZWRjCisgICAgICAgICAgICAgICAgICAgVkVSQkFUSU0KKykKKworTElTVChBUFBFTkQgRVdlYkxh
dW5jaGVyX1NPVVJDRVMKKyAgICAgJHtFTlRSWV9FREpfUEFUSH0KKykKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUg
MTAwNzU1CmluZGV4IGFlNjUxYjQuLmE5YTFjN2IKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDExLTA3LTI1ICBIeWVyaW0gQmFl
ICA8aHllcmltLmJhZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgdXJsIGJhciB0
byBFV2ViTGF1bmNoZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02Mzk2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZXJzIGNhbiBuYXZpZ2F0ZSB0byB0aGUgc2l0ZSB3aGVyZSBoZSBvciBzaGUgaW50
ZW5kcyB0byB0aHJvdWdoIHRoZSBVUkwgYmFyLgorCisgICAgICAgICogQ01ha2VMaXN0c0VmbC50
eHQ6CisgICAgICAgICogRVdlYkxhdW5jaGVyL2VudHJ5LmVkYworICAgICAgICAqIEVXZWJMYXVu
Y2hlci9tYWluLmM6CisgICAgICAgIChvbl9lY29yZV9ldmFzX3Jlc2l6ZSk6CisgICAgICAgIChv
bl91cmxfY2hhbmdlZCk6CisgICAgICAgIChvbl9tb3VzZV9kb3duKToKKyAgICAgICAgKG9uX2tl
eV9kb3duKToKKyAgICAgICAgKG9uX2Jyb3dzZXJfZGVsKToKKyAgICAgICAgKGdldFVyaVdpdGhQ
cm90b2NvbCk6CisgICAgICAgIChvbl91cmxiYXJfa2V5X2Rvd24pOgorICAgICAgICAob25fdXJs
YmFyX21vdXNlX2Rvd24pOgorICAgICAgICAob25fdXJsYmFyX2ZvY3VzX291dCk6CisgICAgICAg
ICh1cmxCYXJDcmVhdGUpOgorICAgICAgICAoYnJvd3NlckNyZWF0ZSk6CisKIDIwMTEtMDctMjUg
IFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSWdub3Jl
IGxpbmUgZW5kaW5ncyBpbiBDaGFuZ2VMb2dUZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvRVdlYkxh
dW5jaGVyL2VudHJ5LmVkYyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9lbnRyeS5lZGMKbmV3IGZpbGUg
bW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGQwMmUwZgotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL0VXZWJMYXVuY2hlci9lbnRyeS5lZGMKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgICAgQ29w
eXJpZ2h0IChDKSAyMDA4LDIwMDkgSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lh
CisgICAgQ29weXJpZ2h0IChDKSAyMDA5LDIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMK
KyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworCisgICAgVGhpcyBm
aWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAg
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKK2NvbGxlY3Rpb25zIHsK
KyAgIGdyb3VwIHsKKyAgICAgIG5hbWU6ICJFV2ViTGF1bmNoZXIvZW50cnkvYmFzZS9kZWZhdWx0
IjsKKyAgICAgIHN0eWxlcworICAgICAgeworICAgICAgICAgc3R5bGUgeworICAgICAgICAgICAg
bmFtZTogImVudHJ5X3RleHRibG9ja19zdHlsZSI7CisgICAgICAgICAgICBiYXNlOiAiZm9udD1S
b21hbiBmb250X3NpemU9MTQgY29sb3I9IzAwMDAwMCB3cmFwPW1peGVkIjsKKyAgICAgICAgIH0K
KyAgICAgIH0KKyAgICAgIHBhcnRzIHsKKyAgICAgICAgIHBhcnQgeworICAgICAgICAgICAgbmFt
ZTogInVybC50ZXh0IjsKKyAgICAgICAgICAgIHR5cGU6IFRFWFRCTE9DSzsKKyAgICAgICAgICAg
IG1vdXNlX2V2ZW50czogMTsKKyAgICAgICAgICAgIHNjYWxlOiAxOworICAgICAgICAgICAgZW50
cnlfbW9kZTogRURJVEFCTEU7CisgICAgICAgICAgICBtdWx0aWxpbmU6IDE7CisgICAgICAgICAg
ICBzb3VyY2U6ICJFV2ViTGF1bmNoZXIvZW50cnkvc2VsZWN0aW9uL2RlZmF1bHQiOyAvLyBzZWxl
Y3Rpb24gdW5kZXIKKyAgICAgICAgICAgIHNvdXJjZTQ6ICJFV2ViTGF1bmNoZXIvZW50cnkvY3Vy
c29yL2RlZmF1bHQiOyAvLyBjdXJzb3JvdmVyCisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7IHN0
YXRlOiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgZml4ZWQ6IDEgMDsKKyAgICAgICAg
ICAgICAgIHRleHQgeworICAgICAgICAgICAgICAgICAgc3R5bGU6ICJlbnRyeV90ZXh0YmxvY2tf
c3R5bGUiOworICAgICAgICAgICAgICAgICAgbWluOiAwIDE7CisgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICB9CisgICAgICBwcm9ncmFtcyB7CisgICAg
ICAgICBwcm9ncmFtIHsKKyAgICAgICAgICAgIG5hbWU6ICJmb2N1cyI7CisgICAgICAgICAgICBz
aWduYWw6ICJsb2FkIjsKKyAgICAgICAgICAgIHNvdXJjZTogIiI7CisgICAgICAgICAgICBhY3Rp
b246IEZPQ1VTX1NFVDsKKyAgICAgICAgICAgIHRhcmdldDogInVybC50ZXh0IjsKKyAgICAgICAg
IH0KKyAgICAgIH0KKyAgIH0KKworICAgZ3JvdXAgeworICAgICAgbmFtZTogIkVXZWJMYXVuY2hl
ci9lbnRyeS9jdXJzb3IvZGVmYXVsdCI7CisgICAgICBwYXJ0cyB7CisgICAgICAgICBwYXJ0IHsK
KyAgICAgICAgICAgIG5hbWU6ICJjbGlwIjsKKyAgICAgICAgICAgIHR5cGU6IFJFQ1Q7CisgICAg
ICAgICAgICBtb3VzZV9ldmVudHM6IDA7CisgICAgICAgICAgICBzY2FsZTogMTsKKyAgICAgICAg
ICAgIGRlc2NyaXB0aW9uIHsgc3RhdGU6ICJkZWZhdWx0IiAwLjA7CisgICAgICAgICAgICAgICBy
ZWwxLm9mZnNldDogLTEwIDA7CisgICAgICAgICAgICAgICByZWwyLm9mZnNldDogOSA5OworICAg
ICAgICAgICAgICAgdmlzaWJsZTogMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlc2Ny
aXB0aW9uIHsgc3RhdGU6ICJmb2N1c2VkIiAwLjA7CisgICAgICAgICAgICAgICBpbmhlcml0OiAi
ZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgdmlzaWJsZTogMTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgIH0KKyAgICAgICAgIHBhcnQgeworICAgICAgICAgICAgbmFtZTogImN1cnNvciI7
CisgICAgICAgICAgICB0eXBlOiBSRUNUOworICAgICAgICAgICAgbW91c2VfZXZlbnRzOiAwOwor
ICAgICAgICAgICAgc2NhbGU6IDE7CisgICAgICAgICAgICBjbGlwX3RvOiAiY2xpcCI7CisgICAg
ICAgICAgICBkZXNjcmlwdGlvbiB7IHN0YXRlOiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAg
ICAgbWluOiAxIDA7CisgICAgICAgICAgICAgICBmaXhlZDogMSAwOworICAgICAgICAgICAgICAg
YWxpZ246IDAuNSAwLjU7CisgICAgICAgICAgICAgICB2aXNpYmxlOiAxOworICAgICAgICAgICAg
ICAgcmVsMSB7CisgICAgICAgICAgICAgICAgICByZWxhdGl2ZTogMC4wICAwLjA7CisgICAgICAg
ICAgICAgICAgICBvZmZzZXQ6IDAgMjsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
IHJlbDIgeworICAgICAgICAgICAgICAgICAgcmVsYXRpdmU6IDAuMCAgMS4wOworICAgICAgICAg
ICAgICAgICAgb2Zmc2V0OiAwIC0yOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
Y29sb3I6IDAgMCAwIDI1NTsgLy8gY3Vyc29yIGNvbG9yCisgICAgICAgICAgICB9CisgICAgICAg
ICB9CisgICAgICB9CisgICAgICBwcm9ncmFtcyB7CisgICAgICAgICBwcm9ncmFtIHsKKyAgICAg
ICAgICAgIG5hbWU6ICJmb2N1c2VkIjsKKyAgICAgICAgICAgIHNpZ25hbDogImVudHJ5LGFjdGlv
bixmb2N1cyI7CisgICAgICAgICAgICBzb3VyY2U6ICJlbnRyeSI7CisgICAgICAgICAgICBhY3Rp
b246IFNUQVRFX1NFVCAiZm9jdXNlZCIgMC4wOworICAgICAgICAgICAgdGFyZ2V0OiAiY2xpcCI7
CisgICAgICAgICB9CisgICAgICAgICBwcm9ncmFtIHsKKyAgICAgICAgICAgIG5hbWU6ICJ1bmZv
Y3VzZWQiOworICAgICAgICAgICAgc2lnbmFsOiAiZW50cnksYWN0aW9uLHVuZm9jdXMiOworICAg
ICAgICAgICAgc291cmNlOiAiZW50cnkiOworICAgICAgICAgICAgYWN0aW9uOiBTVEFURV9TRVQg
ImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgIHRhcmdldDogImNsaXAiOworICAgICAgICAgfQor
ICAgICAgfQorICAgfQorCisgICBncm91cCB7CisgICAgICBuYW1lOiAiRVdlYkxhdW5jaGVyL2Vu
dHJ5L3NlbGVjdGlvbi9kZWZhdWx0IjsKKyAgICAgIHBhcnRzIHsKKyAgICAgICAgIHBhcnQgewor
ICAgICAgICAgICAgbmFtZTogImJnIjsKKyAgICAgICAgICAgIHR5cGU6IFJFQ1Q7CisgICAgICAg
ICAgICBzY2FsZTogMTsKKyAgICAgICAgICAgIG1vdXNlX2V2ZW50czogMDsKKyAgICAgICAgICAg
IGRlc2NyaXB0aW9uIHsgc3RhdGU6ICJkZWZhdWx0IiAwLjA7CisgICAgICAgICAgICAgICBjb2xv
cjogMTM4IDE4MyAyMjMgMTI4OworICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgfQor
ICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYyBiL1Rvb2xzL0VX
ZWJMYXVuY2hlci9tYWluLmMKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA2
YWU5ZjNkLi4xYTFhYjdjCi0tLSBhL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMKKysrIGIvVG9v
bHMvRVdlYkxhdW5jaGVyL21haW4uYwpAQCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVkZSAiRVdl
YktpdC5oIgogCi0jaW5jbHVkZSA8Y3R5cGUuaD4KICNpbmNsdWRlIDxFY29yZS5oPgogI2luY2x1
ZGUgPEVjb3JlX0V2YXMuaD4KICNpbmNsdWRlIDxFY29yZV9GaWxlLmg+CkBAIC0zNyw2ICszNiw3
IEBACiAjaW5jbHVkZSA8RWNvcmVfWC5oPgogI2luY2x1ZGUgPEVkamUuaD4KICNpbmNsdWRlIDxF
dmFzLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRl
IDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgpAQCAtNDcsNiArNDcsNyBAQAogCiAjZGVm
aW5lIERFRkFVTFRfV0lEVEggICAgICA4MDAKICNkZWZpbmUgREVGQVVMVF9IRUlHSFQgICAgIDYw
MAorI2RlZmluZSBVUkxfQkFSX0hFSUdIVCAgICAgMzAKICNkZWZpbmUgREVGQVVMVF9aT09NX0lO
SVQgIDEuMAogCiAjZGVmaW5lIGluZm8oZm9ybWF0LCBhcmdzLi4uKSAgICAgICBcCkBAIC0xNTAs
NiArMTUxLDggQEAgdHlwZWRlZiBzdHJ1Y3QgX0VMYXVuY2hlciB7CiAgICAgRXZhcyAqZXZhczsK
ICAgICBFdmFzX09iamVjdCAqYmc7CiAgICAgRXZhc19PYmplY3QgKmJyb3dzZXI7CisgICAgRXZh
c19PYmplY3QgKnVybEJhckFyZWE7CisgICAgRXZhc19PYmplY3QgKnVybEVudHJ5OwogICAgIGNv
bnN0IGNoYXIgKnRoZW1lOwogICAgIGNvbnN0IGNoYXIgKnVzZXJBZ2VudDsKICAgICBjb25zdCBj
aGFyICpiYWNraW5nU3RvcmU7CkBAIC0xNjAsNiArMTYzLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgX0VM
YXVuY2hlciB7CiBzdGF0aWMgdm9pZCBicm93c2VyRGVzdHJveShFY29yZV9FdmFzICplZSk7CiBz
dGF0aWMgdm9pZCBjbG9zZVdpbmRvdyhFY29yZV9FdmFzICplZSk7CiBzdGF0aWMgaW50IGJyb3dz
ZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICp0aGVtZSwgY29uc3QgY2hhciAq
dXNlckFnZW50LCBFaW5hX1JlY3RhbmdsZSBnZW9tZXRyeSwgY29uc3QgY2hhciAqZW5naW5lLCBj
b25zdCBjaGFyICpiYWNraW5nU3RvcmUsIHVuc2lnbmVkIGNoYXIgaXNGbGF0dGVuaW5nLCB1bnNp
Z25lZCBjaGFyIGlzRnVsbHNjcmVlbiwgY29uc3QgY2hhciAqZGF0YWJhc2VQYXRoKTsKK3N0YXRp
YyB2b2lkIG9uX3VybGJhcl9rZXlfZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVj
dCAqb2JqLCB2b2lkICpldmVudF9pbmZvKTsKK3N0YXRpYyB2b2lkIG9uX3VybGJhcl9tb3VzZV9k
b3duKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2lu
Zm8pOworc3RhdGljIHZvaWQgb25fdXJsYmFyX2ZvY3VzX291dCh2b2lkICpkYXRhLCBFdmFzICpl
LCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKTsKIAogc3RhdGljIHZvaWQKIHBy
aW50X2hpc3RvcnkoRWluYV9MaXN0ICpsaXN0KQpAQCAtMjIzLDYgKzIyOSw3IEBAIG9uX2Vjb3Jl
X2V2YXNfcmVzaXplKEVjb3JlX0V2YXMgKmVlKQogewogICAgIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3
OwogICAgIEV2YXNfT2JqZWN0ICpiZzsKKyAgICBFdmFzX09iamVjdCAqdXJsQmFyQXJlYTsKICAg
ICBpbnQgdywgaDsKIAogICAgIGVjb3JlX2V2YXNfZ2VvbWV0cnlfZ2V0KGVlLCBOVUxMLCBOVUxM
LCAmdywgJmgpOwpAQCAtMjMyLDggKzIzOSwxMiBAQCBvbl9lY29yZV9ldmFzX3Jlc2l6ZShFY29y
ZV9FdmFzICplZSkKICAgICBldmFzX29iamVjdF9yZXNpemUoYmcsIHcsIGgpOwogCiAgICAgd2Vi
dmlldyA9IGV2YXNfb2JqZWN0X25hbWVfZmluZChlY29yZV9ldmFzX2dldChlZSksICJicm93c2Vy
Iik7Ci0gICAgZXZhc19vYmplY3RfbW92ZSh3ZWJ2aWV3LCAxMCwgMTApOwotICAgIGV2YXNfb2Jq
ZWN0X3Jlc2l6ZSh3ZWJ2aWV3LCB3IC0gMjAsIGggLSAyMCk7CisgICAgZXZhc19vYmplY3RfbW92
ZSh3ZWJ2aWV3LCA1LCA1ICsgVVJMX0JBUl9IRUlHSFQpOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6
ZSh3ZWJ2aWV3LCB3IC0gMTAsIGggLSBVUkxfQkFSX0hFSUdIVCAtIDEwKTsKKworICAgIHVybEJh
ckFyZWEgPSBldmFzX29iamVjdF9uYW1lX2ZpbmQoZWNvcmVfZXZhc19nZXQoZWUpLCAidXJsQmFy
QXJlYSIpOworICAgIGV2YXNfb2JqZWN0X21vdmUodXJsQmFyQXJlYSwgNSwgMCk7CisgICAgZXZh
c19vYmplY3RfcmVzaXplKHVybEJhckFyZWEsIHcgLSAxMCwgVVJMX0JBUl9IRUlHSFQpOwogfQog
CiBzdGF0aWMgdm9pZApAQCAtNDc0LDEwICs0ODUsMjYgQEAgb25fdmlld3BvcnRfY2hhbmdlZCh2
b2lkKiB1c2VyX2RhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2b2lkKiBldmVudF9pbmZvKQog
fQogCiBzdGF0aWMgdm9pZAotb25fbW91c2VfZG93bih2b2lkKiBkYXRhLCBFdmFzKiBlLCBFdmFz
X09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5mbykKK29uX3VybF9jaGFuZ2VkKHZvaWQg
KnVzZXJfZGF0YSwgRXZhc19PYmplY3QgKndlYnZpZXcsIHZvaWQgKmV2ZW50X2luZm8pCit7Cisg
ICAgRUxhdW5jaGVyICphcHAgPSAoRUxhdW5jaGVyICopdXNlcl9kYXRhOworCisgICAgY29uc3Qg
Y2hhciAqdXJsID0gZXdrX2ZyYW1lX3VyaV9nZXQoZXdrX3ZpZXdfZnJhbWVfbWFpbl9nZXQod2Vi
dmlldykpOworICAgIGluZm8oIlslczolZF11cmw9WyVzXVxuIiwgX19mdW5jX18sIF9fTElORV9f
LCB1cmwpOworICAgIGVkamVfb2JqZWN0X3BhcnRfdGV4dF9zZXQoYXBwLT51cmxFbnRyeSwgInVy
bC50ZXh0IiwgdXJsKTsKK30KKworc3RhdGljIHZvaWQKK29uX21vdXNlX2Rvd24odm9pZCAqZGF0
YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKndlYnZpZXcsIHZvaWQgKmV2ZW50X2luZm8pCiB7Ci0g
ICAgRXZhc19FdmVudF9Nb3VzZV9Eb3duICpldiA9IChFdmFzX0V2ZW50X01vdXNlX0Rvd24qKSBl
dmVudF9pbmZvOwotICAgIGlmIChldi0+YnV0dG9uID09IDIpCisgICAgRXZhc19FdmVudF9Nb3Vz
ZV9Eb3duICpldiA9IGV2ZW50X2luZm87CisgICAgRUxhdW5jaGVyICphcHAgPSAoRUxhdW5jaGVy
ICopZGF0YTsKKworICAgIGluZm8oIlslczolZF1ldi0+YnV0dG9uPSVkXG4iLCBfX2Z1bmNfXywg
X19MSU5FX18sIGV2LT5idXR0b24pOworCisgICAgaWYgKGV2LT5idXR0b24gPT0gMSkKKyAgICAg
ICAgZXZhc19vYmplY3RfZm9jdXNfc2V0KHdlYnZpZXcsIEVJTkFfVFJVRSk7CisgICAgZWxzZSBp
ZiAoZXYtPmJ1dHRvbiA9PSAyKQogICAgICAgICBldmFzX29iamVjdF9mb2N1c19zZXQod2Vidmll
dywgIWV2YXNfb2JqZWN0X2ZvY3VzX2dldCh3ZWJ2aWV3KSk7CiB9CiAKQEAgLTQ5Niw4ICs1MjMs
OSBAQCBvbl9mb2N1c19pbih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2
b2lkICpldmVudF9pbmZvKQogc3RhdGljIHZvaWQKIG9uX2tleV9kb3duKHZvaWQgKmRhdGEsIEV2
YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pCiB7Ci0gICAgRXZhc19F
dmVudF9LZXlfRG93biAqZXYgPSAoRXZhc19FdmVudF9LZXlfRG93biopIGV2ZW50X2luZm87Cisg
ICAgRXZhc19FdmVudF9LZXlfRG93biAqZXYgPSBldmVudF9pbmZvOwogICAgIEVMYXVuY2hlciAq
YXBwID0gZGF0YTsKKwogICAgIHN0YXRpYyBjb25zdCBjaGFyICplbmNvZGluZ3NbXSA9IHsKICAg
ICAgICAgIklTTy04ODU5LTEiLAogICAgICAgICAiVVRGLTgiLApAQCAtNjM2LDYgKzY2NCwxMCBA
QCBvbl9icm93c2VyX2RlbCh2b2lkICpkYXRhLCBFdmFzICpldmFzLCBFdmFzX09iamVjdCAqYnJv
d3Nlciwgdm9pZCAqZXZlbnQpCiAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKGFw
cC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19GT0NVU19JTiwgb25fZm9jdXNfaW4pOwogICAgIGV2
YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tf
Rk9DVVNfT1VULCBvbl9mb2N1c19vdXQpOwogICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNr
X2RlbChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfREVMLCBvbl9icm93c2VyX2RlbCk7CisK
KyAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwoYXBwLT51cmxFbnRyeSwgRVZBU19D
QUxMQkFDS19LRVlfRE9XTiwgb25fdXJsYmFyX2tleV9kb3duKTsKKyAgICBldmFzX29iamVjdF9l
dmVudF9jYWxsYmFja19kZWwoYXBwLT51cmxFbnRyeSwgRVZBU19DQUxMQkFDS19NT1VTRV9ET1dO
LCBvbl91cmxiYXJfbW91c2VfZG93bik7CisgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tf
ZGVsKGFwcC0+dXJsRW50cnksIEVWQVNfQ0FMTEJBQ0tfRk9DVVNfT1VULCBvbl91cmxiYXJfZm9j
dXNfb3V0KTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTY2NSw2ICs2OTYsMTAxIEBAIHF1aXQoRWlu
YV9Cb29sIHN1Y2Nlc3MsIGNvbnN0IGNoYXIgKm1zZykKICAgICByZXR1cm4gRVhJVF9TVUNDRVNT
OwogfQogCitzdGF0aWMgY2hhciAqCitnZXRVcmlXaXRoUHJvdG9jb2woY29uc3QgY2hhciAqdXJs
KQoreworICAgIGNoYXIgKmZ1bGxfdXJsID0gTlVMTDsKKyAgICBpZiAodXJsICYmIHN0cmxlbih1
cmwpKSB7CisgICAgICAgIGNoYXIgKnRva2VuID0gc3Ryc3RyKHVybCwgIjovLyIpOworICAgICAg
ICBpZiAoIXRva2VuKSB7CisgICAgICAgICAgICBpbnQgbGVuID0gc3RybGVuKHVybCkgKyBzdHJs
ZW4oImh0dHA6Ly8iKSArIDE7CisgICAgICAgICAgICBmdWxsX3VybCA9IG1hbGxvYyhsZW4pOwor
ICAgICAgICAgICAgaWYgKGZ1bGxfdXJsKSB7CisgICAgICAgICAgICAgICAgc3ByaW50ZihmdWxs
X3VybCwgImh0dHA6Ly8lcyIsIHVybCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bGxfdXJs
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICByZXR1cm4gc3RyZHVwKHVybCk7Cit9CisKK3N0YXRpYyB2b2lkCitvbl91cmxi
YXJfa2V5X2Rvd24odm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKm9iaiwgdm9pZCAq
ZXZlbnRfaW5mbykKK3sKKyAgICBFdmFzX0V2ZW50X0tleV9Eb3duICpldiA9IGV2ZW50X2luZm87
CisgICAgRUxhdW5jaGVyICphcHAgPSBkYXRhOworCisgICAgaWYgKCFldi0+a2V5KQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoIXN0cmNtcChldi0+a2V5LCAiRXNjYXBlIikpIHsKKyAgICAg
ICAgY2xvc2VXaW5kb3coYXBwLT5lZSk7CisgICAgfSBlbHNlIGlmICghc3RyY21wKGV2LT5rZXks
ICJSZXR1cm4iKSkgeworICAgICAgICBjb25zdCBjaGFyICp1cmwgPSBlZGplX29iamVjdF9wYXJ0
X3RleHRfZ2V0KGFwcC0+dXJsRW50cnksICJ1cmwudGV4dCIpOworICAgICAgICBpZiAodXJsICYm
IHN0cmxlbih1cmwpKSB7CisgICAgICAgICAgICBjaGFyICpmdWxsX3VybCA9IGdldFVyaVdpdGhQ
cm90b2NvbCh1cmwpOworICAgICAgICAgICAgaWYgKGZ1bGxfdXJsKSB7CisgICAgICAgICAgICAg
ICAgZXdrX3ZpZXdfdXJpX3NldChhcHAtPmJyb3dzZXIsIGZ1bGxfdXJsKTsKKyAgICAgICAgICAg
ICAgICBmcmVlKGZ1bGxfdXJsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGV2YXNfb2Jq
ZWN0X2ZvY3VzX3NldChhcHAtPmJyb3dzZXIsIEVJTkFfVFJVRSk7CisgICAgICAgIH0KKyAgICB9
Cit9CisKK3N0YXRpYyB2b2lkCitvbl91cmxiYXJfbW91c2VfZG93bih2b2lkICpkYXRhLCBFdmFz
ICplLCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQoreworICAgIEV2YXNfRXZl
bnRfTW91c2VfRG93biAqZXYgPSBldmVudF9pbmZvOworICAgIEVMYXVuY2hlciAqYXBwID0gZGF0
YTsKKworICAgIGlmIChldi0+YnV0dG9uID09IDEpIHsKKyAgICAgICAgZXZhc19vYmplY3RfZm9j
dXNfc2V0KGFwcC0+dXJsRW50cnksIEVJTkFfVFJVRSk7CisgICAgICAgIGVkamVfb2JqZWN0X3Np
Z25hbF9lbWl0KGFwcC0+dXJsRW50cnksICJlbnRyeSxhY3Rpb24sZm9jdXMiLCAiZW50cnkiKTsK
KyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCitvbl91cmxiYXJfZm9jdXNfb3V0KHZvaWQgKmRhdGEs
IEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pCit7CisgICAgRUxh
dW5jaGVyICphcHAgPSBkYXRhOworCisgICAgZWRqZV9vYmplY3Rfc2lnbmFsX2VtaXQoYXBwLT51
cmxFbnRyeSwgImVudHJ5LGFjdGlvbix1bmZvY3VzIiwgImVudHJ5Iik7Cit9CisKK3N0YXRpYyBp
bnQKK3VybEJhckNyZWF0ZShFTGF1bmNoZXIgKmFwcCkKK3sKKyAgICBpZiAoIWFwcCkKKyAgICAg
ICAgcmV0dXJuIHF1aXQoRUlOQV9GQUxTRSwgIkVSUk9SOiBjb3VsZCBub3QgZ2V0IEVXZWJMYXVu
Y2hlciB3aW5kb3dcbiIpOworCisgICAgYXBwLT51cmxCYXJBcmVhID0gZXZhc19vYmplY3RfcmVj
dGFuZ2xlX2FkZChhcHAtPmV2YXMpOworICAgIGV2YXNfb2JqZWN0X25hbWVfc2V0KGFwcC0+dXJs
QmFyQXJlYSwgInVybEJhckFyZWEiKTsKKyAgICBldmFzX29iamVjdF9jb2xvcl9zZXQoYXBwLT51
cmxCYXJBcmVhLCAyNTUsIDI1NSwgMjU1LCAyNTUpOworICAgIGV2YXNfb2JqZWN0X21vdmUoYXBw
LT51cmxCYXJBcmVhLCA1LCAwKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUoYXBwLT51cmxCYXJB
cmVhLCBERUZBVUxUX1dJRFRIIC0gMTAsIFVSTF9CQVJfSEVJR0hUKTsKKyAgICBldmFzX29iamVj
dF9zaG93KGFwcC0+dXJsQmFyQXJlYSk7CisKKyAgICBFdmFzICpldmFzID0gZXZhc19vYmplY3Rf
ZXZhc19nZXQoYXBwLT51cmxCYXJBcmVhKTsKKyAgICBhcHAtPnVybEVudHJ5ID0gZWRqZV9vYmpl
Y3RfYWRkKGV2YXMpOworICAgIEVpbmFfQm9vbCByZXQgPSBlZGplX29iamVjdF9maWxlX3NldChh
cHAtPnVybEVudHJ5LCBFTlRSWV9FREpfUEFUSCwgIkVXZWJMYXVuY2hlci9lbnRyeS9iYXNlL2Rl
ZmF1bHQiKTsKKworICAgIGlmICghcmV0KQorICAgICAgICBpbmZvKCJlZGplX29iamVjdF9maWxl
X3NldCBmYWlsZWRcbiIpOworCisgICAgZWRqZV9vYmplY3RfcGFydF90ZXh0X3NldChhcHAtPnVy
bEVudHJ5LCAidXJsLnRleHQiLCAiIik7CisgICAgZXZhc19vYmplY3RfbW92ZShhcHAtPnVybEVu
dHJ5LCAxMCwgMyk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+dXJsRW50cnksIERFRkFV
TFRfV0lEVEggLSAyMCwgVVJMX0JBUl9IRUlHSFQgLSA2KTsKKyAgICBldmFzX29iamVjdF9zaG93
KGFwcC0+dXJsRW50cnkpOworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAt
PnVybEVudHJ5LCBFVkFTX0NBTExCQUNLX01PVVNFX0RPV04sIG9uX3VybGJhcl9tb3VzZV9kb3du
LCBhcHApOworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAtPnVybEVudHJ5
LCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBvbl91cmxiYXJfa2V5X2Rvd24sIGFwcCk7CisgICAg
ZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKGFwcC0+dXJsRW50cnksIEVWQVNfQ0FMTEJB
Q0tfRk9DVVNfT1VULCBvbl91cmxiYXJfZm9jdXNfb3V0LCBhcHApOworICAgIHJldHVybiAxOwor
fQorCiBzdGF0aWMgaW50CiBicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hh
ciAqdGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9SZWN0YW5nbGUgZ2VvbWV0cnks
IGNvbnN0IGNoYXIgKmVuZ2luZSwgY29uc3QgY2hhciAqYmFja2luZ1N0b3JlLCB1bnNpZ25lZCBj
aGFyIGlzRmxhdHRlbmluZywgdW5zaWduZWQgY2hhciBpc0Z1bGxzY3JlZW4sIGNvbnN0IGNoYXIg
KmRhdGFiYXNlUGF0aCkKIHsKQEAgLTY3Nyw3ICs4MDQsNyBAQCBicm93c2VyQ3JlYXRlKGNvbnN0
IGNoYXIgKnVybCwgY29uc3QgY2hhciAqdGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWlu
YV9SZQogICAgIGlmICghYXBwKQogICAgICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJS
T1I6IGNvdWxkIG5vdCBjcmVhdGUgRVdlYkxhdW5jaGVyIHdpbmRvd1xuIik7CiAKLSAgICBhcHAt
PmVlID0gZWNvcmVfZXZhc19uZXcoZW5naW5lLCAwLCAwLCBnZW9tZXRyeS53LCBnZW9tZXRyeS5o
LCBOVUxMKTsKKyAgICBhcHAtPmVlID0gZWNvcmVfZXZhc19uZXcoZW5naW5lLCAwLCAwLCBnZW9t
ZXRyeS53LCBnZW9tZXRyeS5oICsgVVJMX0JBUl9IRUlHSFQsIE5VTEwpOwogCiAgICAgaWYgKCFh
cHAtPmVlKQogICAgICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6IGNvdWxkIG5v
dCBjb25zdHJ1Y3QgZXZhcy1lY29yZVxuIik7CkBAIC03MDEsOSArODI4LDkgQEAgYnJvd3NlckNy
ZWF0ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IGNoYXIgKnRoZW1lLCBjb25zdCBjaGFyICp1c2Vy
QWdlbnQsIEVpbmFfUmUKIAogICAgIGFwcC0+YmcgPSBldmFzX29iamVjdF9yZWN0YW5nbGVfYWRk
KGFwcC0+ZXZhcyk7CiAgICAgZXZhc19vYmplY3RfbmFtZV9zZXQoYXBwLT5iZywgImJnIik7Ci0g
ICAgZXZhc19vYmplY3RfY29sb3Jfc2V0KGFwcC0+YmcsIDI1NSwgMCwgMjU1LCAyNTUpOworICAg
IGV2YXNfb2JqZWN0X2NvbG9yX3NldChhcHAtPmJnLCA2MCwgNzUsIDk4LCAyNTUpOwogICAgIGV2
YXNfb2JqZWN0X21vdmUoYXBwLT5iZywgMCwgMCk7Ci0gICAgZXZhc19vYmplY3RfcmVzaXplKGFw
cC0+YmcsIGdlb21ldHJ5LncsIGdlb21ldHJ5LmgpOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShh
cHAtPmJnLCBnZW9tZXRyeS53LCBnZW9tZXRyeS5oICsgVVJMX0JBUl9IRUlHSFQpOwogICAgIGV2
YXNfb2JqZWN0X2xheWVyX3NldChhcHAtPmJnLCBFVkFTX0xBWUVSX01JTik7CiAgICAgZXZhc19v
YmplY3Rfc2hvdyhhcHAtPmJnKTsKIApAQCAtNzQwLDYgKzg2Nyw4IEBAIGJyb3dzZXJDcmVhdGUo
Y29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICp0aGVtZSwgY29uc3QgY2hhciAqdXNlckFnZW50
LCBFaW5hX1JlCiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3Nl
ciwgInRvb2x0aXAsdGV4dCxzZXQiLCBvbl90b29sdGlwX3RleHRfc2V0LCBhcHApOwogICAgIGV2
YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJpbnB1dG1ldGhvZCxj
aGFuZ2VkIiwgb25faW5wdXRtZXRob2RfY2hhbmdlZCwgYXBwKTsKIAorICAgIGV2YXNfb2JqZWN0
X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJ1cmksY2hhbmdlZCIsIG9uX3VybF9j
aGFuZ2VkLCBhcHApOworCiAvKiAgICAgZXdrX2NhbGxiYWNrX3Jlc2l6ZV9yZXF1ZXN0ZWRfYWRk
KGFwcC0+YnJvd3Nlciwgb25fcmVzaXplX3JlcXVlc3RlZCwgYXBwLT5lZSk7ICovCiAKICAgICBl
dmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNL
X0tFWV9ET1dOLCBvbl9rZXlfZG93biwgYXBwKTsKQEAgLTc0OCwxMSArODc3LDE2IEBAIGJyb3dz
ZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICp0aGVtZSwgY29uc3QgY2hhciAq
dXNlckFnZW50LCBFaW5hX1JlCiAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKGFw
cC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19GT0NVU19PVVQsIG9uX2ZvY3VzX291dCwgYXBwKTsK
ICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCBFVkFTX0NB
TExCQUNLX0RFTCwgb25fYnJvd3Nlcl9kZWwsIGFwcCk7CiAKLSAgICBldmFzX29iamVjdF9tb3Zl
KGFwcC0+YnJvd3NlciwgMTAsIDEwKTsKLSAgICBldmFzX29iamVjdF9yZXNpemUoYXBwLT5icm93
c2VyLCBnZW9tZXRyeS53IC0gMjAsIGdlb21ldHJ5LmggLSAyMCk7CisgICAgZXZhc19vYmplY3Rf
bW92ZShhcHAtPmJyb3dzZXIsIDUsIDUgKyBVUkxfQkFSX0hFSUdIVCk7CisgICAgZXZhc19vYmpl
Y3RfcmVzaXplKGFwcC0+YnJvd3NlciwgZ2VvbWV0cnkudyAtIDEwLCBnZW9tZXRyeS5oIC0gMTAp
OwogCi0gICAgaWYgKHVybCAmJiAodXJsWzBdICE9ICdcMCcpKQotICAgICAgICBld2tfdmlld191
cmlfc2V0KGFwcC0+YnJvd3NlciwgdXJsKTsKKyAgICBpZiAodXJsICYmICh1cmxbMF0gIT0gJ1ww
JykpIHsKKyAgICAgICAgY2hhciAqZnVsbF91cmwgPSBnZXRVcmlXaXRoUHJvdG9jb2wodXJsKTsK
KyAgICAgICAgaWYgKGZ1bGxfdXJsKSB7CisgICAgICAgICAgICBld2tfdmlld191cmlfc2V0KGFw
cC0+YnJvd3NlciwgZnVsbF91cmwpOworICAgICAgICAgICAgZnJlZShmdWxsX3VybCk7CisgICAg
ICAgIH0KKyAgICB9CiAKICAgICBldmFzX29iamVjdF9zaG93KGFwcC0+YnJvd3Nlcik7CiAgICAg
ZWNvcmVfZXZhc19zaG93KGFwcC0+ZWUpOwpAQCAtNzYxLDYgKzg5NSw4IEBAIGJyb3dzZXJDcmVh
dGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICp0aGVtZSwgY29uc3QgY2hhciAqdXNlckFn
ZW50LCBFaW5hX1JlCiAKICAgICB3aW5kb3dzID0gZWluYV9saXN0X2FwcGVuZCh3aW5kb3dzLCBh
cHApOwogCisgICAgdXJsQmFyQ3JlYXRlKGFwcCk7CisKICAgICByZXR1cm4gMTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102089</attachid>
            <date>2011-07-26 18:50:42 -0700</date>
            <delta_ts>2012-07-23 01:18:16 -0700</delta_ts>
            <desc>patch for kubo&apos;s &amp; kuyung&apos;s comments.</desc>
            <filename>patch-[20110726]-[hyerim.bae@samsung.com]-[EWebLauncherurlbar].patch</filename>
            <type>text/plain</type>
            <size>17233</size>
            <attacher name="Hyerim Bae">hyerim.bae</attacher>
            
              <data encoding="base64">Y29tbWl0IDNmY2ZjNDM4MGE0ODZhMTBkNzE0NmIyMGU4YTYyNjFjZDlhMWE5MDcKQXV0aG9yOiBI
eWVyaW0gQmFlIDxoeWVyaW0uYmFlQHNhbXN1bmcuY29tPgpEYXRlOiAgIFR1ZSBKdWwgMjYgMDk6
MzM6MjcgMjAxMSArMDkwMAoKICAgIHBhdGNoLVsyMDExMDcyNl0tW2h5ZXJpbS5iYWVAc2Ftc3Vu
Zy5jb21dLVtFV2ViTGF1bmNoZXJ1cmxiYXJdLnBhdGNoCgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ01h
a2VMaXN0c0VmbC50eHQgYi9Ub29scy9DTWFrZUxpc3RzRWZsLnR4dApvbGQgbW9kZSAxMDA2NDQK
bmV3IG1vZGUgMTAwNzU1CmluZGV4IDI0ZWY4NWMuLmZmYzY0ODUKLS0tIGEvVG9vbHMvQ01ha2VM
aXN0c0VmbC50eHQKKysrIGIvVG9vbHMvQ01ha2VMaXN0c0VmbC50eHQKQEAgLTQ5LDYgKzQ5LDkg
QEAgSUYgKFdURl9VU0VfQ1VSTCkKICAgTElTVChBUFBFTkQgRVdlYkxhdW5jaGVyX0xJTktfRkxB
R1MgJHtDVVJMX0xERkxBR1N9KQogRU5ESUYgKCkKIAorU0VUKEVOVFJZX0VESl9QQVRIICIke0NN
QUtFX0JJTkFSWV9ESVJ9L1Byb2dyYW1zL2VudHJ5LmVkaiIpCitBRERfREVGSU5JVElPTlMoLURF
TlRSWV9FREpfUEFUSD1cIiR7RU5UUllfRURKX1BBVEh9XCIpCisKICMgT3ZlcnJpZGUgZGF0YSBk
aXJlY3RvcnkuIFdlIGFsd2F5cyB3YW50IHRvIGdldCBhIGZyZXNoIHRoZW1lLgogUkVNT1ZFX0RF
RklOSVRJT05TKC1EREFUQV9ESVI9XCIke0RBVEFfRElSfVwiKQogQUREX0RFRklOSVRJT05TKC1E
REFUQV9ESVI9XCIke0JVSUxEX0RBVEFfRElSfVwiKQpAQCAtNTcsMyArNjAsMTQgQEAgSU5DTFVE
RV9ESVJFQ1RPUklFUygke0VXZWJMYXVuY2hlcl9JTkNMVURFX0RJUkVDVE9SSUVTfSkKIEFERF9F
WEVDVVRBQkxFKFByb2dyYW1zL0VXZWJMYXVuY2hlciAke0VXZWJMYXVuY2hlcl9TT1VSQ0VTfSkK
IFRBUkdFVF9MSU5LX0xJQlJBUklFUyhQcm9ncmFtcy9FV2ViTGF1bmNoZXIgJHtFV2ViTGF1bmNo
ZXJfTElCUkFSSUVTfSkKIEFERF9UQVJHRVRfUFJPUEVSVElFUyhQcm9ncmFtcy9FV2ViTGF1bmNo
ZXIgTElOS19GTEFHUyAiJHtFV2ViTGF1bmNoZXJfTElOS19GTEFHU30iKQorCitBRERfQ1VTVE9N
X0NPTU1BTkQoVEFSR0VUIFByb2dyYW1zL0VXZWJMYXVuY2hlcgorICAgICAgICAgICAgICAgICAg
IENPTU1BTkQgJHtFREpFX0NDX0VYRUNVVEFCTEV9IC12ICR7VE9PTFNfRElSfS9FV2ViTGF1bmNo
ZXIvZW50cnkuZWRjICR7RU5UUllfRURKX1BBVEh9CisgICAgICAgICAgICAgICAgICAgREVQRU5E
UworICAgICAgICAgICAgICAgICAgICAgICR7VE9PTFNfRElSfS9FV2ViTGF1bmNoZXIvZW50cnku
ZWRjCisgICAgICAgICAgICAgICAgICAgVkVSQkFUSU0KKykKKworTElTVChBUFBFTkQgRVdlYkxh
dW5jaGVyX1NPVVJDRVMKKyAgICAgJHtFTlRSWV9FREpfUEFUSH0KKykKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUg
MTAwNzU1CmluZGV4IGFlNjUxYjQuLmE5YTFjN2IKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDExLTA3LTI1ICBIeWVyaW0gQmFl
ICA8aHllcmltLmJhZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgdXJsIGJhciB0
byBFV2ViTGF1bmNoZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02Mzk2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZXJzIGNhbiBuYXZpZ2F0ZSB0byB0aGUgc2l0ZSB3aGVyZSBoZSBvciBzaGUgaW50
ZW5kcyB0byB0aHJvdWdoIHRoZSBVUkwgYmFyLgorCisgICAgICAgICogQ01ha2VMaXN0c0VmbC50
eHQ6CisgICAgICAgICogRVdlYkxhdW5jaGVyL2VudHJ5LmVkYworICAgICAgICAqIEVXZWJMYXVu
Y2hlci9tYWluLmM6CisgICAgICAgIChvbl9lY29yZV9ldmFzX3Jlc2l6ZSk6CisgICAgICAgIChv
bl91cmxfY2hhbmdlZCk6CisgICAgICAgIChvbl9tb3VzZV9kb3duKToKKyAgICAgICAgKG9uX2tl
eV9kb3duKToKKyAgICAgICAgKG9uX2Jyb3dzZXJfZGVsKToKKyAgICAgICAgKGdldFVyaVdpdGhQ
cm90b2NvbCk6CisgICAgICAgIChvbl91cmxiYXJfa2V5X2Rvd24pOgorICAgICAgICAob25fdXJs
YmFyX21vdXNlX2Rvd24pOgorICAgICAgICAob25fdXJsYmFyX2ZvY3VzX291dCk6CisgICAgICAg
ICh1cmxCYXJDcmVhdGUpOgorICAgICAgICAoYnJvd3NlckNyZWF0ZSk6CisKIDIwMTEtMDctMjUg
IFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSWdub3Jl
IGxpbmUgZW5kaW5ncyBpbiBDaGFuZ2VMb2dUZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvRVdlYkxh
dW5jaGVyL2VudHJ5LmVkYyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9lbnRyeS5lZGMKbmV3IGZpbGUg
bW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGQwMmUwZgotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL0VXZWJMYXVuY2hlci9lbnRyeS5lZGMKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisgICAgQ29w
eXJpZ2h0IChDKSAyMDA4LDIwMDkgSU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lh
CisgICAgQ29weXJpZ2h0IChDKSAyMDA5LDIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMK
KyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworCisgICAgVGhpcyBm
aWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAg
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKK2NvbGxlY3Rpb25zIHsK
KyAgIGdyb3VwIHsKKyAgICAgIG5hbWU6ICJFV2ViTGF1bmNoZXIvZW50cnkvYmFzZS9kZWZhdWx0
IjsKKyAgICAgIHN0eWxlcworICAgICAgeworICAgICAgICAgc3R5bGUgeworICAgICAgICAgICAg
bmFtZTogImVudHJ5X3RleHRibG9ja19zdHlsZSI7CisgICAgICAgICAgICBiYXNlOiAiZm9udD1S
b21hbiBmb250X3NpemU9MTQgY29sb3I9IzAwMDAwMCB3cmFwPW1peGVkIjsKKyAgICAgICAgIH0K
KyAgICAgIH0KKyAgICAgIHBhcnRzIHsKKyAgICAgICAgIHBhcnQgeworICAgICAgICAgICAgbmFt
ZTogInVybC50ZXh0IjsKKyAgICAgICAgICAgIHR5cGU6IFRFWFRCTE9DSzsKKyAgICAgICAgICAg
IG1vdXNlX2V2ZW50czogMTsKKyAgICAgICAgICAgIHNjYWxlOiAxOworICAgICAgICAgICAgZW50
cnlfbW9kZTogRURJVEFCTEU7CisgICAgICAgICAgICBtdWx0aWxpbmU6IDE7CisgICAgICAgICAg
ICBzb3VyY2U6ICJFV2ViTGF1bmNoZXIvZW50cnkvc2VsZWN0aW9uL2RlZmF1bHQiOyAvLyBzZWxl
Y3Rpb24gdW5kZXIKKyAgICAgICAgICAgIHNvdXJjZTQ6ICJFV2ViTGF1bmNoZXIvZW50cnkvY3Vy
c29yL2RlZmF1bHQiOyAvLyBjdXJzb3JvdmVyCisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7Cisg
ICAgICAgICAgICAgICBzdGF0ZTogImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgICAgIGZpeGVk
OiAxIDA7CisgICAgICAgICAgICAgICB0ZXh0IHsKKyAgICAgICAgICAgICAgICAgIHN0eWxlOiAi
ZW50cnlfdGV4dGJsb2NrX3N0eWxlIjsKKyAgICAgICAgICAgICAgICAgIG1pbjogMCAxOworICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgfQorICAgICAg
cHJvZ3JhbXMgeworICAgICAgICAgcHJvZ3JhbSB7CisgICAgICAgICAgICBuYW1lOiAiZm9jdXMi
OworICAgICAgICAgICAgc2lnbmFsOiAibG9hZCI7CisgICAgICAgICAgICBzb3VyY2U6ICIiOwor
ICAgICAgICAgICAgYWN0aW9uOiBGT0NVU19TRVQ7CisgICAgICAgICAgICB0YXJnZXQ6ICJ1cmwu
dGV4dCI7CisgICAgICAgICB9CisgICAgICB9CisgICB9CisKKyAgIGdyb3VwIHsKKyAgICAgIG5h
bWU6ICJFV2ViTGF1bmNoZXIvZW50cnkvY3Vyc29yL2RlZmF1bHQiOworICAgICAgcGFydHMgewor
ICAgICAgICAgcGFydCB7CisgICAgICAgICAgICBuYW1lOiAiY2xpcCI7CisgICAgICAgICAgICB0
eXBlOiBSRUNUOworICAgICAgICAgICAgbW91c2VfZXZlbnRzOiAwOworICAgICAgICAgICAgc2Nh
bGU6IDE7CisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7CisgICAgICAgICAgICAgICBzdGF0ZTog
ImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgICAgIHJlbDEub2Zmc2V0OiAtMTAgMDsKKyAgICAg
ICAgICAgICAgIHJlbDIub2Zmc2V0OiA5IDk7CisgICAgICAgICAgICAgICB2aXNpYmxlOiAwOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVzY3JpcHRpb24geworICAgICAgICAgICAgICAg
c3RhdGU6ICJmb2N1c2VkIiAwLjA7CisgICAgICAgICAgICAgICBpbmhlcml0OiAiZGVmYXVsdCIg
MC4wOworICAgICAgICAgICAgICAgdmlzaWJsZTogMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
IH0KKyAgICAgICAgIHBhcnQgeworICAgICAgICAgICAgbmFtZTogImN1cnNvciI7CisgICAgICAg
ICAgICB0eXBlOiBSRUNUOworICAgICAgICAgICAgbW91c2VfZXZlbnRzOiAwOworICAgICAgICAg
ICAgc2NhbGU6IDE7CisgICAgICAgICAgICBjbGlwX3RvOiAiY2xpcCI7CisgICAgICAgICAgICBk
ZXNjcmlwdGlvbiB7CisgICAgICAgICAgICAgICBzdGF0ZTogImRlZmF1bHQiIDAuMDsKKyAgICAg
ICAgICAgICAgIG1pbjogMSAwOworICAgICAgICAgICAgICAgZml4ZWQ6IDEgMDsKKyAgICAgICAg
ICAgICAgIGFsaWduOiAwLjUgMC41OworICAgICAgICAgICAgICAgdmlzaWJsZTogMTsKKyAgICAg
ICAgICAgICAgIHJlbDEgeworICAgICAgICAgICAgICAgICAgcmVsYXRpdmU6IDAuMCAgMC4wOwor
ICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwIDI7CisgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICByZWwyIHsKKyAgICAgICAgICAgICAgICAgIHJlbGF0aXZlOiAwLjAgIDEuMDsKKyAg
ICAgICAgICAgICAgICAgIG9mZnNldDogMCAtMjsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgIGNvbG9yOiAwIDAgMCAyNTU7IC8vIGN1cnNvciBjb2xvcgorICAgICAgICAgICAgfQor
ICAgICAgICAgfQorICAgICAgfQorICAgICAgcHJvZ3JhbXMgeworICAgICAgICAgcHJvZ3JhbSB7
CisgICAgICAgICAgICBuYW1lOiAiZm9jdXNlZCI7CisgICAgICAgICAgICBzaWduYWw6ICJlbnRy
eSxhY3Rpb24sZm9jdXMiOworICAgICAgICAgICAgc291cmNlOiAiZW50cnkiOworICAgICAgICAg
ICAgYWN0aW9uOiBTVEFURV9TRVQgImZvY3VzZWQiIDAuMDsKKyAgICAgICAgICAgIHRhcmdldDog
ImNsaXAiOworICAgICAgICAgfQorICAgICAgICAgcHJvZ3JhbSB7CisgICAgICAgICAgICBuYW1l
OiAidW5mb2N1c2VkIjsKKyAgICAgICAgICAgIHNpZ25hbDogImVudHJ5LGFjdGlvbix1bmZvY3Vz
IjsKKyAgICAgICAgICAgIHNvdXJjZTogImVudHJ5IjsKKyAgICAgICAgICAgIGFjdGlvbjogU1RB
VEVfU0VUICJkZWZhdWx0IiAwLjA7CisgICAgICAgICAgICB0YXJnZXQ6ICJjbGlwIjsKKyAgICAg
ICAgIH0KKyAgICAgIH0KKyAgIH0KKworICAgZ3JvdXAgeworICAgICAgbmFtZTogIkVXZWJMYXVu
Y2hlci9lbnRyeS9zZWxlY3Rpb24vZGVmYXVsdCI7CisgICAgICBwYXJ0cyB7CisgICAgICAgICBw
YXJ0IHsKKyAgICAgICAgICAgIG5hbWU6ICJiZyI7CisgICAgICAgICAgICB0eXBlOiBSRUNUOwor
ICAgICAgICAgICAgc2NhbGU6IDE7CisgICAgICAgICAgICBtb3VzZV9ldmVudHM6IDA7CisgICAg
ICAgICAgICBkZXNjcmlwdGlvbiB7CisgICAgICAgICAgICAgICBzdGF0ZTogImRlZmF1bHQiIDAu
MDsKKyAgICAgICAgICAgICAgIGNvbG9yOiAxMzggMTgzIDIyMyAxMjg7CisgICAgICAgICAgICB9
CisgICAgICAgICB9CisgICAgICB9CisgICB9Cit9CmRpZmYgLS1naXQgYS9Ub29scy9FV2ViTGF1
bmNoZXIvbWFpbi5jIGIvVG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYwpvbGQgbW9kZSAxMDA2NDQK
bmV3IG1vZGUgMTAwNzU1CmluZGV4IDZhZTlmM2QuLjFhMWFiN2MKLS0tIGEvVG9vbHMvRVdlYkxh
dW5jaGVyL21haW4uYworKysgYi9Ub29scy9FV2ViTGF1bmNoZXIvbWFpbi5jCkBAIC0yOSw3ICsy
OSw2IEBACiAKICNpbmNsdWRlICJFV2ViS2l0LmgiCiAKLSNpbmNsdWRlIDxjdHlwZS5oPgogI2lu
Y2x1ZGUgPEVjb3JlLmg+CiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgogI2luY2x1ZGUgPEVjb3Jl
X0ZpbGUuaD4KQEAgLTM3LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxFY29yZV9YLmg+CiAjaW5jbHVk
ZSA8RWRqZS5oPgogI2luY2x1ZGUgPEV2YXMuaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgogI2luY2x1
ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CkBA
IC00Nyw2ICs0Nyw3IEBACiAKICNkZWZpbmUgREVGQVVMVF9XSURUSCAgICAgIDgwMAogI2RlZmlu
ZSBERUZBVUxUX0hFSUdIVCAgICAgNjAwCisjZGVmaW5lIFVSTF9CQVJfSEVJR0hUICAgICAzMAog
I2RlZmluZSBERUZBVUxUX1pPT01fSU5JVCAgMS4wCiAKICNkZWZpbmUgaW5mbyhmb3JtYXQsIGFy
Z3MuLi4pICAgICAgIFwKQEAgLTE1MCw2ICsxNTEsOCBAQCB0eXBlZGVmIHN0cnVjdCBfRUxhdW5j
aGVyIHsKICAgICBFdmFzICpldmFzOwogICAgIEV2YXNfT2JqZWN0ICpiZzsKICAgICBFdmFzX09i
amVjdCAqYnJvd3NlcjsKKyAgICBFdmFzX09iamVjdCAqdXJsQmFyQXJlYTsKKyAgICBFdmFzX09i
amVjdCAqdXJsRW50cnk7CiAgICAgY29uc3QgY2hhciAqdGhlbWU7CiAgICAgY29uc3QgY2hhciAq
dXNlckFnZW50OwogICAgIGNvbnN0IGNoYXIgKmJhY2tpbmdTdG9yZTsKQEAgLTE2MCw2ICsxNjMs
OSBAQCB0eXBlZGVmIHN0cnVjdCBfRUxhdW5jaGVyIHsKIHN0YXRpYyB2b2lkIGJyb3dzZXJEZXN0
cm95KEVjb3JlX0V2YXMgKmVlKTsKIHN0YXRpYyB2b2lkIGNsb3NlV2luZG93KEVjb3JlX0V2YXMg
KmVlKTsKIHN0YXRpYyBpbnQgYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IGNo
YXIgKnRoZW1lLCBjb25zdCBjaGFyICp1c2VyQWdlbnQsIEVpbmFfUmVjdGFuZ2xlIGdlb21ldHJ5
LCBjb25zdCBjaGFyICplbmdpbmUsIGNvbnN0IGNoYXIgKmJhY2tpbmdTdG9yZSwgdW5zaWduZWQg
Y2hhciBpc0ZsYXR0ZW5pbmcsIHVuc2lnbmVkIGNoYXIgaXNGdWxsc2NyZWVuLCBjb25zdCBjaGFy
ICpkYXRhYmFzZVBhdGgpOworc3RhdGljIHZvaWQgb25fdXJsYmFyX2tleV9kb3duKHZvaWQgKmRh
dGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pOworc3RhdGlj
IHZvaWQgb25fdXJsYmFyX21vdXNlX2Rvd24odm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmpl
Y3QgKm9iaiwgdm9pZCAqZXZlbnRfaW5mbyk7CitzdGF0aWMgdm9pZCBvbl91cmxiYXJfZm9jdXNf
b3V0KHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2lu
Zm8pOwogCiBzdGF0aWMgdm9pZAogcHJpbnRfaGlzdG9yeShFaW5hX0xpc3QgKmxpc3QpCkBAIC0y
MjMsNiArMjI5LDcgQEAgb25fZWNvcmVfZXZhc19yZXNpemUoRWNvcmVfRXZhcyAqZWUpCiB7CiAg
ICAgRXZhc19PYmplY3QgKndlYnZpZXc7CiAgICAgRXZhc19PYmplY3QgKmJnOworICAgIEV2YXNf
T2JqZWN0ICp1cmxCYXJBcmVhOwogICAgIGludCB3LCBoOwogCiAgICAgZWNvcmVfZXZhc19nZW9t
ZXRyeV9nZXQoZWUsIE5VTEwsIE5VTEwsICZ3LCAmaCk7CkBAIC0yMzIsOCArMjM5LDEyIEBAIG9u
X2Vjb3JlX2V2YXNfcmVzaXplKEVjb3JlX0V2YXMgKmVlKQogICAgIGV2YXNfb2JqZWN0X3Jlc2l6
ZShiZywgdywgaCk7CiAKICAgICB3ZWJ2aWV3ID0gZXZhc19vYmplY3RfbmFtZV9maW5kKGVjb3Jl
X2V2YXNfZ2V0KGVlKSwgImJyb3dzZXIiKTsKLSAgICBldmFzX29iamVjdF9tb3ZlKHdlYnZpZXcs
IDEwLCAxMCk7Ci0gICAgZXZhc19vYmplY3RfcmVzaXplKHdlYnZpZXcsIHcgLSAyMCwgaCAtIDIw
KTsKKyAgICBldmFzX29iamVjdF9tb3ZlKHdlYnZpZXcsIDUsIDUgKyBVUkxfQkFSX0hFSUdIVCk7
CisgICAgZXZhc19vYmplY3RfcmVzaXplKHdlYnZpZXcsIHcgLSAxMCwgaCAtIFVSTF9CQVJfSEVJ
R0hUIC0gMTApOworCisgICAgdXJsQmFyQXJlYSA9IGV2YXNfb2JqZWN0X25hbWVfZmluZChlY29y
ZV9ldmFzX2dldChlZSksICJ1cmxCYXJBcmVhIik7CisgICAgZXZhc19vYmplY3RfbW92ZSh1cmxC
YXJBcmVhLCA1LCAwKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUodXJsQmFyQXJlYSwgdyAtIDEw
LCBVUkxfQkFSX0hFSUdIVCk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC00NzQsMTAgKzQ4NSwyNiBA
QCBvbl92aWV3cG9ydF9jaGFuZ2VkKHZvaWQqIHVzZXJfZGF0YSwgRXZhc19PYmplY3QqIHdlYnZp
ZXcsIHZvaWQqIGV2ZW50X2luZm8pCiB9CiAKIHN0YXRpYyB2b2lkCi1vbl9tb3VzZV9kb3duKHZv
aWQqIGRhdGEsIEV2YXMqIGUsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2b2lkKiBldmVudF9pbmZv
KQorb25fdXJsX2NoYW5nZWQodm9pZCAqdXNlcl9kYXRhLCBFdmFzX09iamVjdCAqd2Vidmlldywg
dm9pZCAqZXZlbnRfaW5mbykKK3sKKyAgICBFTGF1bmNoZXIgKmFwcCA9IChFTGF1bmNoZXIgKil1
c2VyX2RhdGE7CisKKyAgICBjb25zdCBjaGFyICp1cmwgPSBld2tfZnJhbWVfdXJpX2dldChld2tf
dmlld19mcmFtZV9tYWluX2dldCh3ZWJ2aWV3KSk7CisgICAgaW5mbygiWyVzOiVkXXVybD1bJXNd
XG4iLCBfX2Z1bmNfXywgX19MSU5FX18sIHVybCk7CisgICAgZWRqZV9vYmplY3RfcGFydF90ZXh0
X3NldChhcHAtPnVybEVudHJ5LCAidXJsLnRleHQiLCB1cmwpOworfQorCitzdGF0aWMgdm9pZAor
b25fbW91c2VfZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqd2Vidmlldywg
dm9pZCAqZXZlbnRfaW5mbykKIHsKLSAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24gKmV2ID0gKEV2
YXNfRXZlbnRfTW91c2VfRG93biopIGV2ZW50X2luZm87Ci0gICAgaWYgKGV2LT5idXR0b24gPT0g
MikKKyAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24gKmV2ID0gZXZlbnRfaW5mbzsKKyAgICBFTGF1
bmNoZXIgKmFwcCA9IChFTGF1bmNoZXIgKilkYXRhOworCisgICAgaW5mbygiWyVzOiVkXWV2LT5i
dXR0b249JWRcbiIsIF9fZnVuY19fLCBfX0xJTkVfXywgZXYtPmJ1dHRvbik7CisKKyAgICBpZiAo
ZXYtPmJ1dHRvbiA9PSAxKQorICAgICAgICBldmFzX29iamVjdF9mb2N1c19zZXQod2Vidmlldywg
RUlOQV9UUlVFKTsKKyAgICBlbHNlIGlmIChldi0+YnV0dG9uID09IDIpCiAgICAgICAgIGV2YXNf
b2JqZWN0X2ZvY3VzX3NldCh3ZWJ2aWV3LCAhZXZhc19vYmplY3RfZm9jdXNfZ2V0KHdlYnZpZXcp
KTsKIH0KIApAQCAtNDk2LDggKzUyMyw5IEBAIG9uX2ZvY3VzX2luKHZvaWQgKmRhdGEsIEV2YXMg
KmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pCiBzdGF0aWMgdm9pZAogb25f
a2V5X2Rvd24odm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKm9iaiwgdm9pZCAqZXZl
bnRfaW5mbykKIHsKLSAgICBFdmFzX0V2ZW50X0tleV9Eb3duICpldiA9IChFdmFzX0V2ZW50X0tl
eV9Eb3duKikgZXZlbnRfaW5mbzsKKyAgICBFdmFzX0V2ZW50X0tleV9Eb3duICpldiA9IGV2ZW50
X2luZm87CiAgICAgRUxhdW5jaGVyICphcHAgPSBkYXRhOworCiAgICAgc3RhdGljIGNvbnN0IGNo
YXIgKmVuY29kaW5nc1tdID0gewogICAgICAgICAiSVNPLTg4NTktMSIsCiAgICAgICAgICJVVEYt
OCIsCkBAIC02MzYsNiArNjY0LDEwIEBAIG9uX2Jyb3dzZXJfZGVsKHZvaWQgKmRhdGEsIEV2YXMg
KmV2YXMsIEV2YXNfT2JqZWN0ICpicm93c2VyLCB2b2lkICpldmVudCkKICAgICBldmFzX29iamVj
dF9ldmVudF9jYWxsYmFja19kZWwoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0ZPQ1VTX0lO
LCBvbl9mb2N1c19pbik7CiAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKGFwcC0+
YnJvd3NlciwgRVZBU19DQUxMQkFDS19GT0NVU19PVVQsIG9uX2ZvY3VzX291dCk7CiAgICAgZXZh
c19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKGFwcC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19E
RUwsIG9uX2Jyb3dzZXJfZGVsKTsKKworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2Rl
bChhcHAtPnVybEVudHJ5LCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBvbl91cmxiYXJfa2V5X2Rv
d24pOworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChhcHAtPnVybEVudHJ5LCBF
VkFTX0NBTExCQUNLX01PVVNFX0RPV04sIG9uX3VybGJhcl9tb3VzZV9kb3duKTsKKyAgICBldmFz
X29iamVjdF9ldmVudF9jYWxsYmFja19kZWwoYXBwLT51cmxFbnRyeSwgRVZBU19DQUxMQkFDS19G
T0NVU19PVVQsIG9uX3VybGJhcl9mb2N1c19vdXQpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtNjY1
LDYgKzY5NiwxMDEgQEAgcXVpdChFaW5hX0Jvb2wgc3VjY2VzcywgY29uc3QgY2hhciAqbXNnKQog
ICAgIHJldHVybiBFWElUX1NVQ0NFU1M7CiB9CiAKK3N0YXRpYyBjaGFyICoKK2dldFVyaVdpdGhQ
cm90b2NvbChjb25zdCBjaGFyICp1cmwpCit7CisgICAgY2hhciAqZnVsbF91cmwgPSBOVUxMOwor
ICAgIGlmICh1cmwgJiYgc3RybGVuKHVybCkpIHsKKyAgICAgICAgY2hhciAqdG9rZW4gPSBzdHJz
dHIodXJsLCAiOi8vIik7CisgICAgICAgIGlmICghdG9rZW4pIHsKKyAgICAgICAgICAgIGludCBs
ZW4gPSBzdHJsZW4odXJsKSArIHN0cmxlbigiaHR0cDovLyIpICsgMTsKKyAgICAgICAgICAgIGZ1
bGxfdXJsID0gbWFsbG9jKGxlbik7CisgICAgICAgICAgICBpZiAoZnVsbF91cmwpIHsKKyAgICAg
ICAgICAgICAgICBzcHJpbnRmKGZ1bGxfdXJsLCAiaHR0cDovLyVzIiwgdXJsKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gZnVsbF91cmw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1
cm4gTlVMTDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBzdHJkdXAodXJsKTsKK30K
Kworc3RhdGljIHZvaWQKK29uX3VybGJhcl9rZXlfZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBF
dmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQoreworICAgIEV2YXNfRXZlbnRfS2V5
X0Rvd24gKmV2ID0gZXZlbnRfaW5mbzsKKyAgICBFTGF1bmNoZXIgKmFwcCA9IGRhdGE7CisKKyAg
ICBpZiAoIWV2LT5rZXkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghc3RyY21wKGV2LT5r
ZXksICJFc2NhcGUiKSkgeworICAgICAgICBjbG9zZVdpbmRvdyhhcHAtPmVlKTsKKyAgICB9IGVs
c2UgaWYgKCFzdHJjbXAoZXYtPmtleSwgIlJldHVybiIpKSB7CisgICAgICAgIGNvbnN0IGNoYXIg
KnVybCA9IGVkamVfb2JqZWN0X3BhcnRfdGV4dF9nZXQoYXBwLT51cmxFbnRyeSwgInVybC50ZXh0
Iik7CisgICAgICAgIGlmICh1cmwgJiYgc3RybGVuKHVybCkpIHsKKyAgICAgICAgICAgIGNoYXIg
KmZ1bGxfdXJsID0gZ2V0VXJpV2l0aFByb3RvY29sKHVybCk7CisgICAgICAgICAgICBpZiAoZnVs
bF91cmwpIHsKKyAgICAgICAgICAgICAgICBld2tfdmlld191cmlfc2V0KGFwcC0+YnJvd3Nlciwg
ZnVsbF91cmwpOworICAgICAgICAgICAgICAgIGZyZWUoZnVsbF91cmwpOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgZXZhc19vYmplY3RfZm9jdXNfc2V0KGFwcC0+YnJvd3NlciwgRUlOQV9U
UlVFKTsKKyAgICAgICAgfQorICAgIH0KK30KKworc3RhdGljIHZvaWQKK29uX3VybGJhcl9tb3Vz
ZV9kb3duKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50
X2luZm8pCit7CisgICAgRXZhc19FdmVudF9Nb3VzZV9Eb3duICpldiA9IGV2ZW50X2luZm87Cisg
ICAgRUxhdW5jaGVyICphcHAgPSBkYXRhOworCisgICAgaWYgKGV2LT5idXR0b24gPT0gMSkgewor
ICAgICAgICBldmFzX29iamVjdF9mb2N1c19zZXQoYXBwLT51cmxFbnRyeSwgRUlOQV9UUlVFKTsK
KyAgICAgICAgZWRqZV9vYmplY3Rfc2lnbmFsX2VtaXQoYXBwLT51cmxFbnRyeSwgImVudHJ5LGFj
dGlvbixmb2N1cyIsICJlbnRyeSIpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK29uX3VybGJh
cl9mb2N1c19vdXQodm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKm9iaiwgdm9pZCAq
ZXZlbnRfaW5mbykKK3sKKyAgICBFTGF1bmNoZXIgKmFwcCA9IGRhdGE7CisKKyAgICBlZGplX29i
amVjdF9zaWduYWxfZW1pdChhcHAtPnVybEVudHJ5LCAiZW50cnksYWN0aW9uLHVuZm9jdXMiLCAi
ZW50cnkiKTsKK30KKworc3RhdGljIGludAordXJsQmFyQ3JlYXRlKEVMYXVuY2hlciAqYXBwKQor
eworICAgIGlmICghYXBwKQorICAgICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6
IGNvdWxkIG5vdCBnZXQgRVdlYkxhdW5jaGVyIHdpbmRvd1xuIik7CisKKyAgICBhcHAtPnVybEJh
ckFyZWEgPSBldmFzX29iamVjdF9yZWN0YW5nbGVfYWRkKGFwcC0+ZXZhcyk7CisgICAgZXZhc19v
YmplY3RfbmFtZV9zZXQoYXBwLT51cmxCYXJBcmVhLCAidXJsQmFyQXJlYSIpOworICAgIGV2YXNf
b2JqZWN0X2NvbG9yX3NldChhcHAtPnVybEJhckFyZWEsIDI1NSwgMjU1LCAyNTUsIDI1NSk7Cisg
ICAgZXZhc19vYmplY3RfbW92ZShhcHAtPnVybEJhckFyZWEsIDUsIDApOworICAgIGV2YXNfb2Jq
ZWN0X3Jlc2l6ZShhcHAtPnVybEJhckFyZWEsIERFRkFVTFRfV0lEVEggLSAxMCwgVVJMX0JBUl9I
RUlHSFQpOworICAgIGV2YXNfb2JqZWN0X3Nob3coYXBwLT51cmxCYXJBcmVhKTsKKworICAgIEV2
YXMgKmV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dldChhcHAtPnVybEJhckFyZWEpOworICAgIGFw
cC0+dXJsRW50cnkgPSBlZGplX29iamVjdF9hZGQoZXZhcyk7CisgICAgRWluYV9Cb29sIHJldCA9
IGVkamVfb2JqZWN0X2ZpbGVfc2V0KGFwcC0+dXJsRW50cnksIEVOVFJZX0VESl9QQVRILCAiRVdl
YkxhdW5jaGVyL2VudHJ5L2Jhc2UvZGVmYXVsdCIpOworCisgICAgaWYgKCFyZXQpCisgICAgICAg
IGluZm8oImVkamVfb2JqZWN0X2ZpbGVfc2V0IGZhaWxlZFxuIik7CisKKyAgICBlZGplX29iamVj
dF9wYXJ0X3RleHRfc2V0KGFwcC0+dXJsRW50cnksICJ1cmwudGV4dCIsICIiKTsKKyAgICBldmFz
X29iamVjdF9tb3ZlKGFwcC0+dXJsRW50cnksIDEwLCAzKTsKKyAgICBldmFzX29iamVjdF9yZXNp
emUoYXBwLT51cmxFbnRyeSwgREVGQVVMVF9XSURUSCAtIDIwLCBVUkxfQkFSX0hFSUdIVCAtIDYp
OworICAgIGV2YXNfb2JqZWN0X3Nob3coYXBwLT51cmxFbnRyeSk7CisgICAgZXZhc19vYmplY3Rf
ZXZlbnRfY2FsbGJhY2tfYWRkKGFwcC0+dXJsRW50cnksIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfRE9X
Tiwgb25fdXJsYmFyX21vdXNlX2Rvd24sIGFwcCk7CisgICAgZXZhc19vYmplY3RfZXZlbnRfY2Fs
bGJhY2tfYWRkKGFwcC0+dXJsRW50cnksIEVWQVNfQ0FMTEJBQ0tfS0VZX0RPV04sIG9uX3VybGJh
cl9rZXlfZG93biwgYXBwKTsKKyAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQoYXBw
LT51cmxFbnRyeSwgRVZBU19DQUxMQkFDS19GT0NVU19PVVQsIG9uX3VybGJhcl9mb2N1c19vdXQs
IGFwcCk7CisgICAgcmV0dXJuIDE7Cit9CisKIHN0YXRpYyBpbnQKIGJyb3dzZXJDcmVhdGUoY29u
c3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICp0aGVtZSwgY29uc3QgY2hhciAqdXNlckFnZW50LCBF
aW5hX1JlY3RhbmdsZSBnZW9tZXRyeSwgY29uc3QgY2hhciAqZW5naW5lLCBjb25zdCBjaGFyICpi
YWNraW5nU3RvcmUsIHVuc2lnbmVkIGNoYXIgaXNGbGF0dGVuaW5nLCB1bnNpZ25lZCBjaGFyIGlz
RnVsbHNjcmVlbiwgY29uc3QgY2hhciAqZGF0YWJhc2VQYXRoKQogewpAQCAtNjc3LDcgKzgwNCw3
IEBAIGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICp0aGVtZSwgY29u
c3QgY2hhciAqdXNlckFnZW50LCBFaW5hX1JlCiAgICAgaWYgKCFhcHApCiAgICAgICAgIHJldHVy
biBxdWl0KEVJTkFfRkFMU0UsICJFUlJPUjogY291bGQgbm90IGNyZWF0ZSBFV2ViTGF1bmNoZXIg
d2luZG93XG4iKTsKIAotICAgIGFwcC0+ZWUgPSBlY29yZV9ldmFzX25ldyhlbmdpbmUsIDAsIDAs
IGdlb21ldHJ5LncsIGdlb21ldHJ5LmgsIE5VTEwpOworICAgIGFwcC0+ZWUgPSBlY29yZV9ldmFz
X25ldyhlbmdpbmUsIDAsIDAsIGdlb21ldHJ5LncsIGdlb21ldHJ5LmggKyBVUkxfQkFSX0hFSUdI
VCwgTlVMTCk7CiAKICAgICBpZiAoIWFwcC0+ZWUpCiAgICAgICAgIHJldHVybiBxdWl0KEVJTkFf
RkFMU0UsICJFUlJPUjogY291bGQgbm90IGNvbnN0cnVjdCBldmFzLWVjb3JlXG4iKTsKQEAgLTcw
MSw5ICs4MjgsOSBAQCBicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAq
dGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9SZQogCiAgICAgYXBwLT5iZyA9IGV2
YXNfb2JqZWN0X3JlY3RhbmdsZV9hZGQoYXBwLT5ldmFzKTsKICAgICBldmFzX29iamVjdF9uYW1l
X3NldChhcHAtPmJnLCAiYmciKTsKLSAgICBldmFzX29iamVjdF9jb2xvcl9zZXQoYXBwLT5iZywg
MjU1LCAwLCAyNTUsIDI1NSk7CisgICAgZXZhc19vYmplY3RfY29sb3Jfc2V0KGFwcC0+YmcsIDYw
LCA3NSwgOTgsIDI1NSk7CiAgICAgZXZhc19vYmplY3RfbW92ZShhcHAtPmJnLCAwLCAwKTsKLSAg
ICBldmFzX29iamVjdF9yZXNpemUoYXBwLT5iZywgZ2VvbWV0cnkudywgZ2VvbWV0cnkuaCk7Cisg
ICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YmcsIGdlb21ldHJ5LncsIGdlb21ldHJ5LmggKyBV
UkxfQkFSX0hFSUdIVCk7CiAgICAgZXZhc19vYmplY3RfbGF5ZXJfc2V0KGFwcC0+YmcsIEVWQVNf
TEFZRVJfTUlOKTsKICAgICBldmFzX29iamVjdF9zaG93KGFwcC0+YmcpOwogCkBAIC03NDAsNiAr
ODY3LDggQEAgYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IGNoYXIgKnRoZW1l
LCBjb25zdCBjaGFyICp1c2VyQWdlbnQsIEVpbmFfUmUKICAgICBldmFzX29iamVjdF9zbWFydF9j
YWxsYmFja19hZGQoYXBwLT5icm93c2VyLCAidG9vbHRpcCx0ZXh0LHNldCIsIG9uX3Rvb2x0aXBf
dGV4dF9zZXQsIGFwcCk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+
YnJvd3NlciwgImlucHV0bWV0aG9kLGNoYW5nZWQiLCBvbl9pbnB1dG1ldGhvZF9jaGFuZ2VkLCBh
cHApOwogCisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3Nlciwg
InVyaSxjaGFuZ2VkIiwgb25fdXJsX2NoYW5nZWQsIGFwcCk7CisKIC8qICAgICBld2tfY2FsbGJh
Y2tfcmVzaXplX3JlcXVlc3RlZF9hZGQoYXBwLT5icm93c2VyLCBvbl9yZXNpemVfcmVxdWVzdGVk
LCBhcHAtPmVlKTsgKi8KIAogICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAt
PmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfS0VZX0RPV04sIG9uX2tleV9kb3duLCBhcHApOwpAQCAt
NzQ4LDExICs4NzcsMTYgQEAgYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IGNo
YXIgKnRoZW1lLCBjb25zdCBjaGFyICp1c2VyQWdlbnQsIEVpbmFfUmUKICAgICBldmFzX29iamVj
dF9ldmVudF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0ZPQ1VTX09V
VCwgb25fZm9jdXNfb3V0LCBhcHApOwogICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2Fk
ZChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfREVMLCBvbl9icm93c2VyX2RlbCwgYXBwKTsK
IAotICAgIGV2YXNfb2JqZWN0X21vdmUoYXBwLT5icm93c2VyLCAxMCwgMTApOwotICAgIGV2YXNf
b2JqZWN0X3Jlc2l6ZShhcHAtPmJyb3dzZXIsIGdlb21ldHJ5LncgLSAyMCwgZ2VvbWV0cnkuaCAt
IDIwKTsKKyAgICBldmFzX29iamVjdF9tb3ZlKGFwcC0+YnJvd3NlciwgNSwgNSArIFVSTF9CQVJf
SEVJR0hUKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUoYXBwLT5icm93c2VyLCBnZW9tZXRyeS53
IC0gMTAsIGdlb21ldHJ5LmggLSAxMCk7CiAKLSAgICBpZiAodXJsICYmICh1cmxbMF0gIT0gJ1ww
JykpCi0gICAgICAgIGV3a192aWV3X3VyaV9zZXQoYXBwLT5icm93c2VyLCB1cmwpOworICAgIGlm
ICh1cmwgJiYgKHVybFswXSAhPSAnXDAnKSkgeworICAgICAgICBjaGFyICpmdWxsX3VybCA9IGdl
dFVyaVdpdGhQcm90b2NvbCh1cmwpOworICAgICAgICBpZiAoZnVsbF91cmwpIHsKKyAgICAgICAg
ICAgIGV3a192aWV3X3VyaV9zZXQoYXBwLT5icm93c2VyLCBmdWxsX3VybCk7CisgICAgICAgICAg
ICBmcmVlKGZ1bGxfdXJsKTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIGV2YXNfb2JqZWN0X3No
b3coYXBwLT5icm93c2VyKTsKICAgICBlY29yZV9ldmFzX3Nob3coYXBwLT5lZSk7CkBAIC03NjEs
NiArODk1LDggQEAgYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IGNoYXIgKnRo
ZW1lLCBjb25zdCBjaGFyICp1c2VyQWdlbnQsIEVpbmFfUmUKIAogICAgIHdpbmRvd3MgPSBlaW5h
X2xpc3RfYXBwZW5kKHdpbmRvd3MsIGFwcCk7CiAKKyAgICB1cmxCYXJDcmVhdGUoYXBwKTsKKwog
ICAgIHJldHVybiAxOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153752</attachid>
            <date>2012-07-23 01:18:35 -0700</date>
            <delta_ts>2012-07-23 22:40:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63966-20120723171826.patch</filename>
            <type>text/plain</type>
            <size>22479</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMzAxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjM2NzllY2U4YjYyZjUzMTk0Yzg0MzQ4NzkzMDhmNjQ2
M2MzMDY0MC4uZWRhOGQwOWVmNDhkNmEzY2VhNzRjYmI4NTliYTU5Yjk0YTUyMTBjOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0
IEBACisyMDEyLTA3LTIzICBIeWVyaW0gQmFlICA8aHllcmltLmJhZUBzYW1zdW5nLmNvbT4sIFJ5
dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIEFkZCB1
cmwgYmFyIHRvIEVXZWJMYXVuY2hlciBhbmQgTWluaUJyb3dzZXIvRWZsLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5NjYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFV2ViTGF1bmNoZXIgYW5kIE1pbmlC
cm93c2VyL0VmbCBkaWQgbm90IGhhdmUgZnVuY3Rpb25hbGl0eSB0aGF0IHVzZXJzCisgICAgICAg
IG5hdmlnYXRlcyB0aGUgc2l0ZSB3aGljaCB0aGV5IHdhbnQuCisgICAgICAgIFRoaXMgcGF0Y2gg
YWRkcyB0aGUgdXJsYmFyIGFuZCBmdW5jdGlvbmFsaXR5IHRvIGxvYWQgdXJsIHdoaWNoIHVzZXJz
IHdhbnQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgQWRkZWQgdG8gc2hh
cmUgdXJsYmFyIHRoZW1lIGZvciBib3RoIEVXZWJMYXVuY2hlciBhbmQgTWluaUJyb3dzZXIvRWZs
LgorICAgICAgICAqIEVXZWJMYXVuY2hlci9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgQWRkZWQg
dXJsYmFyLmMgYW5kIGRlcGVuZGVuY3kgb2YgdXJsYmFyIHRoZW1lLgorICAgICAgICBJbiBhZGRp
dGlvbiwgY2hhbmdlZCBtYWNybyBuYW1lIHRvIFRIRU1FX0RJUiB0byBzaGFyZSB0aGUgY29kZSBl
YXNpbHkuCisgICAgICAgICogRVdlYkxhdW5jaGVyL0NvbnRyb2xUaGVtZS9DTWFrZUxpc3RzLnR4
dDogQWRkZWQgZm9yIHVybGJhciB0aGVtZS4KKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvQ29udHJv
bFRoZW1lL2VudHJ5LmVkYzogSW1wbGVtZW50ZWQgdXJsYmFyIHRoZW1lLgorICAgICAgICAqIEVX
ZWJMYXVuY2hlci9tYWluLmM6CisgICAgICAgIEltcGxlbWVudGVkIHRvIHVzZSB0aGUgdXJsYmFy
LgorICAgICAgICBJbiBhZGRpdGlvbiwgcmVtb3ZlIHVubmVjZXNzYXJ5IGJvcmRlciBvZiB3ZWJ2
aWV3IHRvIGNvbnRyb2wgd2VidmlldyBhbmQgdXJsYmFyIGVhc2lseS4KKyAgICAgICAgKF9FTGF1
bmNoZXIpOgorICAgICAgICAob25fdXJsX2NoYW5nZWQpOgorICAgICAgICAoYnJvd3NlckNyZWF0
ZSk6CisgICAgICAgIChjbG9zZVdpbmRvdyk6CisgICAgICAgIChmaW5kVGhlbWVQYXRoKToKKyAg
ICAgICAgKiBFV2ViTGF1bmNoZXIvdXJsX2Jhci5jOiBJbXBsZW1lbnRlZCBmdW5jdGlvbmFsaXR5
IG9mIHRoZSB1cmxiYXIuCisgICAgICAgIChnZXRVcmlXaXRoUHJvdG9jb2wpOgorICAgICAgICAo
b25fdXJsYmFyX2tleV9kb3duKToKKyAgICAgICAgKG9uX3VybGJhcl9tb3VzZV9kb3duKToKKyAg
ICAgICAgKG9uX3VybGJhcl9mb2N1c19vdXQpOgorICAgICAgICAodXJsQmFyQ3JlYXRlKToKKyAg
ICAgICAgKHVybEJhckRlc3Ryb3kpOgorICAgICAgICAodXJsQmFyU2V0VVJMKToKKyAgICAgICAg
KiBFV2ViTGF1bmNoZXIvdXJsX2Jhci5oOiBBZGRlZC4KKyAgICAgICAgKiBNaW5pQnJvd3Nlci9l
ZmwvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogTWluaUJyb3dzZXIvZWZsL21haW4uYzogSW1w
bGVtZW50ZWQgdG8gdXNlIHRoZSB1cmxiYXIuCisgICAgICAgIChfTWluaUJyb3dzZXIpOgorICAg
ICAgICAob25fdXJsX2NoYW5nZWQpOgorICAgICAgICAoYnJvd3NlckNyZWF0ZSk6CisKIDIwMTIt
MDctMjMgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbmFt
ZSBFTkFCTEVfTUVURVJfVEFHIGFuZCBFTkFCTEVfUFJPR1JFU1NfVEFHIHRvIEVOQUJMRV9NRVRF
Ul9FTEVNRU5UIGFuZCBFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCByZXNwZWN0aXZlbHkKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvQ01ha2VMaXN0cy50eHQKaW5kZXgg
MmYyYjYwY2QzZjgwMGFhNmZhNThkMmQ1NzYyNGM5ZDIwZDJhYWM2OC4uOTUxYzI0MWVjNGMwZmM1
ZjMxMWE5ZTE2ZDA5ODBiYjEzYTdiYjg5OCAxMDA2NDQKLS0tIGEvVG9vbHMvQ01ha2VMaXN0cy50
eHQKKysrIGIvVG9vbHMvQ01ha2VMaXN0cy50eHQKQEAgLTMsNiArMyw4IEBAIElGIChFTkFCTEVf
V0VCS0lUMikKIEVORElGICgpCiAKIElGICgiJHtQT1JUfSIgU1RSRVFVQUwgIkVmbCIpCisgICAg
QUREX1NVQkRJUkVDVE9SWShFV2ViTGF1bmNoZXIvQ29udHJvbFRoZW1lKQorCiAgICAgSUYgKEVO
QUJMRV9XRUJLSVQpCiAgICAgICAgIEFERF9TVUJESVJFQ1RPUlkoRHVtcFJlbmRlclRyZWUvZWZs
KQogICAgICAgICBBRERfU1VCRElSRUNUT1JZKEVXZWJMYXVuY2hlcikKZGlmZiAtLWdpdCBhL1Rv
b2xzL0VXZWJMYXVuY2hlci9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL0VXZWJMYXVuY2hlci9DTWFr
ZUxpc3RzLnR4dAppbmRleCBmMmMyNjNmMzM1ZTVlMTQxOWFmN2VjMzBiY2U0NzAwOTliMzViMDBh
Li4xMmE3ZThiMGQzMTg4NjE0NjM2ZDZhN2M1NzIyNWExYzE3ZWRlMmUyIDEwMDY0NAotLS0gYS9U
b29scy9FV2ViTGF1bmNoZXIvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvRVdlYkxhdW5jaGVy
L0NNYWtlTGlzdHMudHh0CkBAIC0xLDQgKzEsNSBAQAogU0VUKEVXZWJMYXVuY2hlcl9TT1VSQ0VT
CisgICAgJHtUT09MU19ESVJ9L0VXZWJMYXVuY2hlci91cmxfYmFyLmMKICAgICAke1RPT0xTX0RJ
Un0vRVdlYkxhdW5jaGVyL21haW4uYwogKQogCkBAIC0zNiwxMCArMzcsMTIgQEAgU0VUKEVXZWJM
YXVuY2hlcl9MSU5LX0ZMQUdTCiAgICAgJHtMSUJTT1VQMjRfTERGTEFHU30KICkKIAotQUREX0RF
RklOSVRJT05TKC1EREFUQV9ESVI9XCIke1RIRU1FX0JJTkFSWV9ESVJ9XCIpCitBRERfREVGSU5J
VElPTlMoLURUSEVNRV9ESVI9XCIke1RIRU1FX0JJTkFSWV9ESVJ9XCIpCiAKIElOQ0xVREVfRElS
RUNUT1JJRVMoJHtFV2ViTGF1bmNoZXJfSU5DTFVERV9ESVJFQ1RPUklFU30pCiBBRERfRVhFQ1VU
QUJMRShFV2ViTGF1bmNoZXIgJHtFV2ViTGF1bmNoZXJfU09VUkNFU30pCiBUQVJHRVRfTElOS19M
SUJSQVJJRVMoRVdlYkxhdW5jaGVyICR7RVdlYkxhdW5jaGVyX0xJQlJBUklFU30pCiBBRERfVEFS
R0VUX1BST1BFUlRJRVMoRVdlYkxhdW5jaGVyIExJTktfRkxBR1MgIiR7RVdlYkxhdW5jaGVyX0xJ
TktfRkxBR1N9IikKIFNFVF9UQVJHRVRfUFJPUEVSVElFUyhFV2ViTGF1bmNoZXIgUFJPUEVSVElF
UyBGT0xERVIgIlRvb2xzIikKKworQUREX0RFUEVOREVOQ0lFUyhFV2ViTGF1bmNoZXIgQ29udHJv
bFRoZW1lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRVdlYkxhdW5jaGVyL0NvbnRyb2xUaGVtZS9DTWFr
ZUxpc3RzLnR4dCBiL1Rvb2xzL0VXZWJMYXVuY2hlci9Db250cm9sVGhlbWUvQ01ha2VMaXN0cy50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjhhYThjZjE5YWIzZmFjN2RjYjAwZGE0YzBhOTg1OGNlY2RjNDU4Mwot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9Db250cm9sVGhlbWUvQ01ha2VM
aXN0cy50eHQKQEAgLTAsMCArMSw4IEBACitTRVQoQ29udHJvbFRoZW1lX0RJUiAiJHtUT09MU19E
SVJ9L0VXZWJMYXVuY2hlci9Db250cm9sVGhlbWUiKQorCitBRERfQ1VTVE9NX1RBUkdFVChDb250
cm9sVGhlbWUgQUxMCisgICAgQ09NTUFORCAke0VESkVfQ0NfRVhFQ1VUQUJMRX0gLXYgJHtDb250
cm9sVGhlbWVfRElSfS9lbnRyeS5lZGMgJHtUSEVNRV9CSU5BUllfRElSfS9lbnRyeS5lZGoKKyAg
ICBERVBFTkRTCisgICAgICAgICR7Q29udHJvbFRoZW1lX0RJUn0vZW50cnkuZWRjCisgICAgVkVS
QkFUSU0KKykKZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci9Db250cm9sVGhlbWUvZW50
cnkuZWRjIGIvVG9vbHMvRVdlYkxhdW5jaGVyL0NvbnRyb2xUaGVtZS9lbnRyeS5lZGMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTU5ZWNkMjNmMWRlNzE0NTEzOGQ0MTg1ZjVhNjRhODBjZjFmYjBjYgotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9Db250cm9sVGhlbWUvZW50cnkuZWRjCkBAIC0w
LDAgKzEsMTQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25p
Y3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitjb2xsZWN0aW9ucyB7CisgICBncm91cCB7CisgICAgICBuYW1lOiAiY29udHJv
bC9lbnRyeS9iYXNlL2RlZmF1bHQiOworICAgICAgc3R5bGVzIHsKKyAgICAgICAgIHN0eWxlIHsK
KyAgICAgICAgICAgIG5hbWU6ICJlbnRyeV90ZXh0YmxvY2tfc3R5bGUiOworICAgICAgICAgICAg
YmFzZTogImZvbnQ9Um9tYW4gZm9udF9zaXplPTE0IGNvbG9yPSMwMDAwMDAgd3JhcD1taXhlZCI7
CisgICAgICAgICB9CisgICAgICB9CisgICAgICBwYXJ0cyB7CisgICAgICAgICBwYXJ0IHsKKyAg
ICAgICAgICAgIG5hbWU6ICJ1cmwudGV4dCI7CisgICAgICAgICAgICB0eXBlOiBURVhUQkxPQ0s7
CisgICAgICAgICAgICBtb3VzZV9ldmVudHM6IDE7CisgICAgICAgICAgICBzY2FsZTogMTsKKyAg
ICAgICAgICAgIGVudHJ5X21vZGU6IEVESVRBQkxFOworICAgICAgICAgICAgbXVsdGlsaW5lOiAx
OworICAgICAgICAgICAgc291cmNlOiAiY29udHJvbC9lbnRyeS9zZWxlY3Rpb24vZGVmYXVsdCI7
IC8vIHNlbGVjdGlvbiB1bmRlcgorICAgICAgICAgICAgc291cmNlNDogImNvbnRyb2wvZW50cnkv
Y3Vyc29yL2RlZmF1bHQiOyAvLyBjdXJzb3JvdmVyCisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7
CisgICAgICAgICAgICAgICBzdGF0ZTogImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgICAgIGZp
eGVkOiAxIDA7CisgICAgICAgICAgICAgICB0ZXh0IHsKKyAgICAgICAgICAgICAgICAgIHN0eWxl
OiAiZW50cnlfdGV4dGJsb2NrX3N0eWxlIjsKKyAgICAgICAgICAgICAgICAgIG1pbjogMCAxOwor
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgfQorICAg
ICAgcHJvZ3JhbXMgeworICAgICAgICAgcHJvZ3JhbSB7CisgICAgICAgICAgICBuYW1lOiAiZm9j
dXMiOworICAgICAgICAgICAgc2lnbmFsOiAibG9hZCI7CisgICAgICAgICAgICBzb3VyY2U6ICIi
OworICAgICAgICAgICAgYWN0aW9uOiBGT0NVU19TRVQ7CisgICAgICAgICAgICB0YXJnZXQ6ICJ1
cmwudGV4dCI7CisgICAgICAgICB9CisgICAgICB9CisgICB9CisKKyAgIGdyb3VwIHsKKyAgICAg
IG5hbWU6ICJjb250cm9sL2VudHJ5L2N1cnNvci9kZWZhdWx0IjsKKyAgICAgIHBhcnRzIHsKKyAg
ICAgICAgIHBhcnQgeworICAgICAgICAgICAgbmFtZTogImNsaXAiOworICAgICAgICAgICAgdHlw
ZTogUkVDVDsKKyAgICAgICAgICAgIG1vdXNlX2V2ZW50czogMDsKKyAgICAgICAgICAgIHNjYWxl
OiAxOworICAgICAgICAgICAgZGVzY3JpcHRpb24geworICAgICAgICAgICAgICAgc3RhdGU6ICJk
ZWZhdWx0IiAwLjA7CisgICAgICAgICAgICAgICByZWwxLm9mZnNldDogLTEwIDA7CisgICAgICAg
ICAgICAgICByZWwyLm9mZnNldDogOSA5OworICAgICAgICAgICAgICAgdmlzaWJsZTogMDsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlc2NyaXB0aW9uIHsKKyAgICAgICAgICAgICAgIHN0
YXRlOiAiZm9jdXNlZCIgMC4wOworICAgICAgICAgICAgICAgaW5oZXJpdDogImRlZmF1bHQiIDAu
MDsKKyAgICAgICAgICAgICAgIHZpc2libGU6IDE7CisgICAgICAgICAgICB9CisgICAgICAgICB9
CisgICAgICAgICBwYXJ0IHsKKyAgICAgICAgICAgIG5hbWU6ICJjdXJzb3IiOworICAgICAgICAg
ICAgdHlwZTogUkVDVDsKKyAgICAgICAgICAgIG1vdXNlX2V2ZW50czogMDsKKyAgICAgICAgICAg
IHNjYWxlOiAxOworICAgICAgICAgICAgY2xpcF90bzogImNsaXAiOworICAgICAgICAgICAgZGVz
Y3JpcHRpb24geworICAgICAgICAgICAgICAgc3RhdGU6ICJkZWZhdWx0IiAwLjA7CisgICAgICAg
ICAgICAgICBtaW46IDEgMDsKKyAgICAgICAgICAgICAgIGZpeGVkOiAxIDA7CisgICAgICAgICAg
ICAgICBhbGlnbjogMC41IDAuNTsKKyAgICAgICAgICAgICAgIHZpc2libGU6IDE7CisgICAgICAg
ICAgICAgICByZWwxIHsKKyAgICAgICAgICAgICAgICAgIHJlbGF0aXZlOiAwLjAgIDAuMDsKKyAg
ICAgICAgICAgICAgICAgIG9mZnNldDogMCAyOworICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgcmVsMiB7CisgICAgICAgICAgICAgICAgICByZWxhdGl2ZTogMC4wICAxLjA7CisgICAg
ICAgICAgICAgICAgICBvZmZzZXQ6IDAgLTI7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICBjb2xvcjogMCAwIDAgMjU1OyAvLyBjdXJzb3IgY29sb3IKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHByb2dyYW1zIHsKKyAgICAgICAgIHByb2dyYW0gewor
ICAgICAgICAgICAgbmFtZTogImZvY3VzZWQiOworICAgICAgICAgICAgc2lnbmFsOiAiZW50cnks
YWN0aW9uLGZvY3VzIjsKKyAgICAgICAgICAgIHNvdXJjZTogImVudHJ5IjsKKyAgICAgICAgICAg
IGFjdGlvbjogU1RBVEVfU0VUICJmb2N1c2VkIiAwLjA7CisgICAgICAgICAgICB0YXJnZXQ6ICJj
bGlwIjsKKyAgICAgICAgIH0KKyAgICAgICAgIHByb2dyYW0geworICAgICAgICAgICAgbmFtZTog
InVuZm9jdXNlZCI7CisgICAgICAgICAgICBzaWduYWw6ICJlbnRyeSxhY3Rpb24sdW5mb2N1cyI7
CisgICAgICAgICAgICBzb3VyY2U6ICJlbnRyeSI7CisgICAgICAgICAgICBhY3Rpb246IFNUQVRF
X1NFVCAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgdGFyZ2V0OiAiY2xpcCI7CisgICAgICAg
ICB9CisgICAgICB9CisgICB9CisKKyAgIGdyb3VwIHsKKyAgICAgIG5hbWU6ICJjb250cm9sL2Vu
dHJ5L3NlbGVjdGlvbi9kZWZhdWx0IjsKKyAgICAgIHBhcnRzIHsKKyAgICAgICAgIHBhcnQgewor
ICAgICAgICAgICAgbmFtZTogImJnIjsKKyAgICAgICAgICAgIHR5cGU6IFJFQ1Q7CisgICAgICAg
ICAgICBzY2FsZTogMTsKKyAgICAgICAgICAgIG1vdXNlX2V2ZW50czogMDsKKyAgICAgICAgICAg
IGRlc2NyaXB0aW9uIHsKKyAgICAgICAgICAgICAgIHN0YXRlOiAiZGVmYXVsdCIgMC4wOworICAg
ICAgICAgICAgICAgY29sb3I6IDEzOCAxODMgMjIzIDEyODsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgIH0KKyAgICAgIH0KKyAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci9t
YWluLmMgYi9Ub29scy9FV2ViTGF1bmNoZXIvbWFpbi5jCmluZGV4IDQwODlkNmVjYTI0YTM2MDk0
Njg1MTlhYWM5MzhmZTE4ZmVkMDRjNTguLmQwZmRkMWNiMWM1NTZkZWUwZTE4M2Y4YTQ3NWQxNjJi
NTExYTA4MjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMKKysrIGIvVG9v
bHMvRVdlYkxhdW5jaGVyL21haW4uYwpAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiRVdl
YktpdC5oIgogCi0jaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlICJ1cmxfYmFyLmgiCiAjaW5j
bHVkZSA8RWNvcmUuaD4KICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWNvcmVf
RmlsZS5oPgpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPEVjb3JlX1guaD4KICNpbmNsdWRl
IDxFZGplLmg+CiAjaW5jbHVkZSA8RXZhcy5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVk
ZSA8aW50dHlwZXMuaD4KICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpA
QCAtMTQzLDYgKzE0NCw3IEBAIHR5cGVkZWYgc3RydWN0IF9FTGF1bmNoZXIgewogICAgIEV2YXMg
KmV2YXM7CiAgICAgRXZhc19PYmplY3QgKmJnOwogICAgIEV2YXNfT2JqZWN0ICpicm93c2VyOwor
ICAgIFVybEJhciAqdXJsQmFyOwogICAgIGNvbnN0IGNoYXIgKnRoZW1lOwogICAgIGNvbnN0IGNo
YXIgKnVzZXJBZ2VudDsKICAgICBjb25zdCBjaGFyICpiYWNraW5nU3RvcmU7CkBAIC00MDIsNiAr
NDA0LDEzIEBAIG9uX2lucHV0bWV0aG9kX2NoYW5nZWQodm9pZCogdXNlcl9kYXRhLCBFdmFzX09i
amVjdCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5mbykKIH0KIAogc3RhdGljIHZvaWQKK29uX3Vy
bF9jaGFuZ2VkKHZvaWQqIHVzZXJfZGF0YSwgRXZhc19PYmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2
ZW50X2luZm8pCit7CisgICAgRUxhdW5jaGVyICphcHAgPSAoRUxhdW5jaGVyICopdXNlcl9kYXRh
OworICAgIHVybEJhclNldFVSTChhcHAtPnVybEJhciwgZXdrX3ZpZXdfdXJpX2dldChhcHAtPmJy
b3dzZXIpKTsKK30KKworc3RhdGljIHZvaWQKIG9uX21vdXNlX2Rvd24odm9pZCogZGF0YSwgRXZh
cyogZSwgRXZhc19PYmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2ZW50X2luZm8pCiB7CiAgICAgRXZh
c19FdmVudF9Nb3VzZV9Eb3duICpldiA9IChFdmFzX0V2ZW50X01vdXNlX0Rvd24qKSBldmVudF9p
bmZvOwpAQCAtNjk1LDYgKzcwNCw3IEBAIGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBj
b25zdCBjaGFyICp0aGVtZSwgY29uc3QgY2hhciAqdXNlckFnZW50LCBFaW5hX1JlCiAgICAgZXZh
c19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgIm1lbnViYXIsdmlzaWJs
ZSxnZXQiLCBvbl9tZW51YmFyX3Zpc2libGVfZ2V0LCBhcHApOwogICAgIGV2YXNfb2JqZWN0X3Nt
YXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJ0b29sdGlwLHRleHQsc2V0Iiwgb25fdG9v
bHRpcF90ZXh0X3NldCwgYXBwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQo
YXBwLT5icm93c2VyLCAiaW5wdXRtZXRob2QsY2hhbmdlZCIsIG9uX2lucHV0bWV0aG9kX2NoYW5n
ZWQsIGFwcCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3Nl
ciwgInVyaSxjaGFuZ2VkIiwgb25fdXJsX2NoYW5nZWQsIGFwcCk7CiAKIC8qICAgICBld2tfY2Fs
bGJhY2tfcmVzaXplX3JlcXVlc3RlZF9hZGQoYXBwLT5icm93c2VyLCBvbl9yZXNpemVfcmVxdWVz
dGVkLCBhcHAtPmVlKTsgKi8KIApAQCAtNzA0LDEzICs3MTQsMTYgQEAgYnJvd3NlckNyZWF0ZShj
b25zdCBjaGFyICp1cmwsIGNvbnN0IGNoYXIgKnRoZW1lLCBjb25zdCBjaGFyICp1c2VyQWdlbnQs
IEVpbmFfUmUKICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQoYXBwLT5icm93c2Vy
LCBFVkFTX0NBTExCQUNLX0ZPQ1VTX09VVCwgb25fZm9jdXNfb3V0LCBhcHApOwogICAgIGV2YXNf
b2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfREVM
LCBvbl9icm93c2VyX2RlbCwgYXBwKTsKIAotICAgIGV2YXNfb2JqZWN0X21vdmUoYXBwLT5icm93
c2VyLCAxMCwgMTApOwotICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShhcHAtPmJyb3dzZXIsIGdlb21l
dHJ5LncgLSAyMCwgZ2VvbWV0cnkuaCAtIDIwKTsKKyAgICBhcHAtPnVybEJhciA9IHVybEJhckNy
ZWF0ZShhcHAtPmJyb3dzZXIsIERFRkFVTFRfV0lEVEgpOworCisgICAgZXZhc19vYmplY3RfbW92
ZShhcHAtPmJyb3dzZXIsIDAsIFVSTEJBUl9IRUlHSFQpOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6
ZShhcHAtPmJyb3dzZXIsIGdlb21ldHJ5LncsIGdlb21ldHJ5LmggLSBVUkxCQVJfSEVJR0hUKTsK
IAogICAgIGlmICh1cmwgJiYgKHVybFswXSAhPSAnXDAnKSkKICAgICAgICAgZXdrX3ZpZXdfdXJp
X3NldChhcHAtPmJyb3dzZXIsIHVybCk7CiAKICAgICBldmFzX29iamVjdF9zaG93KGFwcC0+YnJv
d3Nlcik7CisKICAgICBlY29yZV9ldmFzX3Nob3coYXBwLT5lZSk7CiAKICAgICBldmFzX29iamVj
dF9mb2N1c19zZXQoYXBwLT5icm93c2VyLCBFSU5BX1RSVUUpOwpAQCAtNzM5LDYgKzc1Miw3IEBA
IGNsb3NlV2luZG93KEVjb3JlX0V2YXMgKmVlKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQog
ICAgIHdpbmRvd3MgPSBlaW5hX2xpc3RfcmVtb3ZlKHdpbmRvd3MsIGFwcCk7CisgICAgdXJsQmFy
RGVzdHJveSgoKEVMYXVuY2hlciopYXBwKS0+dXJsQmFyKTsKICAgICBicm93c2VyRGVzdHJveShl
ZSk7CiAgICAgZnJlZShhcHApOwogfQpAQCAtNzYwLDcgKzc3NCw3IEBAIG1haW5fc2lnbmFsX2V4
aXQodm9pZCAqZGF0YSwgaW50IGV2X3R5cGUsIHZvaWQgKmV2KQogc3RhdGljIGNoYXIgKgogZmlu
ZFRoZW1lUGF0aChjb25zdCBjaGFyICp0aGVtZSkKIHsKLSAgICBjb25zdCBjaGFyICpkZWZhdWx0
VGhlbWUgPSBEQVRBX0RJUiIvZGVmYXVsdC5lZGoiOworICAgIGNvbnN0IGNoYXIgKmRlZmF1bHRU
aGVtZSA9IFRIRU1FX0RJUiIvZGVmYXVsdC5lZGoiOwogICAgIGNoYXIgKnJwYXRoOwogICAgIHN0
cnVjdCBzdGF0IHN0OwogCmRpZmYgLS1naXQgYS9Ub29scy9FV2ViTGF1bmNoZXIvdXJsX2Jhci5j
IGIvVG9vbHMvRVdlYkxhdW5jaGVyL3VybF9iYXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NGVkM2Q3ZWVlYzcz
ZmJlZTJiYTY1ODQ3MjYxZTdjZTE0ODM1ZTBkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRVdl
YkxhdW5jaGVyL3VybF9iYXIuYwpAQCAtMCwwICsxLDE1NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgInVybF9iYXIuaCIKKworI2luY2x1ZGUgPEVkamUuaD4KKworI2RlZmluZSBQQURE
SU5HX1NJWkUgNQorCitzdGF0aWMgY2hhciAqCitnZXRVcmlXaXRoUHJvdG9jb2woY29uc3QgY2hh
ciAqdXJsKQoreworICAgIGNoYXIgKmZ1bGxfdXJsID0gTlVMTDsKKyAgICBpZiAodXJsICYmIHN0
cmxlbih1cmwpKSB7CisgICAgICAgIGNoYXIgKnRva2VuID0gc3Ryc3RyKHVybCwgIjovLyIpOwor
ICAgICAgICBpZiAoIXRva2VuKSB7CisgICAgICAgICAgICBpbnQgbGVuID0gc3RybGVuKHVybCkg
KyBzdHJsZW4oImh0dHA6Ly8iKSArIDE7CisgICAgICAgICAgICBmdWxsX3VybCA9IG1hbGxvYyhs
ZW4pOworICAgICAgICAgICAgaWYgKGZ1bGxfdXJsKSB7CisgICAgICAgICAgICAgICAgc3ByaW50
ZihmdWxsX3VybCwgImh0dHA6Ly8lcyIsIHVybCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZ1
bGxfdXJsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICByZXR1cm4gc3RyZHVwKHVybCk7Cit9CisKK3N0YXRpYyB2b2lkCitv
bl91cmxiYXJfa2V5X2Rvd24odm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKm9iaiwg
dm9pZCAqZXZlbnRfaW5mbykKK3sKKyAgICBFdmFzX0V2ZW50X0tleV9Eb3duICpldiA9IGV2ZW50
X2luZm87CisgICAgVXJsQmFyICp1cmxCYXIgPSAoVXJsQmFyKilkYXRhOworCisgICAgaWYgKCFl
di0+a2V5KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXN0cmNtcChldi0+a2V5LCAiUmV0
dXJuIikpIHsKKyAgICAgICAgY29uc3QgY2hhciAqdXJsID0gZWRqZV9vYmplY3RfcGFydF90ZXh0
X2dldCh1cmxCYXItPmVudHJ5LCAidXJsLnRleHQiKTsKKyAgICAgICAgaWYgKHVybCAmJiBzdHJs
ZW4odXJsKSkgeworICAgICAgICAgICAgY2hhciAqZnVsbF91cmwgPSBnZXRVcmlXaXRoUHJvdG9j
b2wodXJsKTsKKyAgICAgICAgICAgIGlmIChmdWxsX3VybCkgeworICAgICAgICAgICAgICAgIGV3
a192aWV3X3VyaV9zZXQodXJsQmFyLT53ZWJWaWV3LCBmdWxsX3VybCk7CisgICAgICAgICAgICAg
ICAgZnJlZShmdWxsX3VybCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBldmFzX29iamVj
dF9mb2N1c19zZXQodXJsQmFyLT53ZWJWaWV3LCBFSU5BX1RSVUUpOworICAgICAgICB9CisgICAg
fQorfQorCitzdGF0aWMgdm9pZAorb25fdXJsYmFyX21vdXNlX2Rvd24odm9pZCAqZGF0YSwgRXZh
cyAqZSwgRXZhc19PYmplY3QgKm9iaiwgdm9pZCAqZXZlbnRfaW5mbykKK3sKKyAgICBFdmFzX0V2
ZW50X01vdXNlX0Rvd24gKmV2ID0gZXZlbnRfaW5mbzsKKyAgICBVcmxCYXIgKnVybEJhciA9IChV
cmxCYXIqKWRhdGE7CisKKyAgICBpZiAoZXYtPmJ1dHRvbiA9PSAxKSB7CisgICAgICAgIGV2YXNf
b2JqZWN0X2ZvY3VzX3NldCh1cmxCYXItPmVudHJ5LCBFSU5BX1RSVUUpOworICAgICAgICBlZGpl
X29iamVjdF9zaWduYWxfZW1pdCh1cmxCYXItPmVudHJ5LCAiZW50cnksYWN0aW9uLGZvY3VzIiwg
ImVudHJ5Iik7CisgICAgfQorfQorCitzdGF0aWMgdm9pZAorb25fdXJsYmFyX2ZvY3VzX291dCh2
b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQor
eworICAgIFVybEJhciAqdXJsQmFyID0gKFVybEJhciopZGF0YTsKKworICAgIGVkamVfb2JqZWN0
X3NpZ25hbF9lbWl0KHVybEJhci0+ZW50cnksICJlbnRyeSxhY3Rpb24sdW5mb2N1cyIsICJlbnRy
eSIpOworfQorCitVcmxCYXIgKgordXJsQmFyQ3JlYXRlKEV2YXNfT2JqZWN0KiB3ZWJWaWV3LCBp
bnQgd2lkdGgpCit7CisgICAgRXZhcyAqZXZhczsKKyAgICBVcmxCYXIgKnVybEJhcjsKKyAgICBp
ZiAoIXdlYlZpZXcpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGV2YXMgPSBldmFzX29iamVj
dF9ldmFzX2dldCh3ZWJWaWV3KTsKKworICAgIHVybEJhciA9IChVcmxCYXIqKW1hbGxvYyhzaXpl
b2YoVXJsQmFyKSk7CisgICAgdXJsQmFyLT53ZWJWaWV3ID0gd2ViVmlldzsKKworICAgIHVybEJh
ci0+YXJlYSA9IGV2YXNfb2JqZWN0X3JlY3RhbmdsZV9hZGQoZXZhcyk7CisgICAgZXZhc19vYmpl
Y3RfbmFtZV9zZXQodXJsQmFyLT5hcmVhLCAidXJsQmFyQXJlYSIpOworICAgIGV2YXNfb2JqZWN0
X2NvbG9yX3NldCh1cmxCYXItPmFyZWEsIDI1NSwgMjU1LCAyNTUsIDI1NSk7CisgICAgZXZhc19v
YmplY3RfbW92ZSh1cmxCYXItPmFyZWEsIDAsIDApOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZSh1
cmxCYXItPmFyZWEsIHdpZHRoLCBVUkxCQVJfSEVJR0hUKTsKKyAgICBldmFzX29iamVjdF9zaG93
KHVybEJhci0+YXJlYSk7CisKKyAgICB1cmxCYXItPmVudHJ5ID0gZWRqZV9vYmplY3RfYWRkKGV2
YXMpOworICAgIEVpbmFfQm9vbCByZXQgPSBlZGplX29iamVjdF9maWxlX3NldCh1cmxCYXItPmVu
dHJ5LCBUSEVNRV9ESVIiL2VudHJ5LmVkaiIsICJjb250cm9sL2VudHJ5L2Jhc2UvZGVmYXVsdCIp
OworICAgIGlmICghcmV0KSB7CisgICAgICAgIGV2YXNfb2JqZWN0X2RlbCh1cmxCYXItPmFyZWEp
OworCisgICAgICAgIGZyZWUodXJsQmFyKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQor
CisgICAgZWRqZV9vYmplY3RfcGFydF90ZXh0X3NldCh1cmxCYXItPmVudHJ5LCAidXJsLnRleHQi
LCAiIik7CisgICAgZXZhc19vYmplY3RfbW92ZSh1cmxCYXItPmVudHJ5LCBQQURESU5HX1NJWkUs
IFBBRERJTkdfU0laRSk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKHVybEJhci0+ZW50cnksIHdp
ZHRoIC0gUEFERElOR19TSVpFICogMiwgVVJMQkFSX0hFSUdIVCAtIFBBRERJTkdfU0laRSAqIDIp
OworICAgIGV2YXNfb2JqZWN0X3Nob3codXJsQmFyLT5lbnRyeSk7CisgICAgZXZhc19vYmplY3Rf
ZXZlbnRfY2FsbGJhY2tfYWRkKHVybEJhci0+ZW50cnksIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfRE9X
Tiwgb25fdXJsYmFyX21vdXNlX2Rvd24sIHVybEJhcik7CisgICAgZXZhc19vYmplY3RfZXZlbnRf
Y2FsbGJhY2tfYWRkKHVybEJhci0+ZW50cnksIEVWQVNfQ0FMTEJBQ0tfS0VZX0RPV04sIG9uX3Vy
bGJhcl9rZXlfZG93biwgdXJsQmFyKTsKKyAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19h
ZGQodXJsQmFyLT5lbnRyeSwgRVZBU19DQUxMQkFDS19GT0NVU19PVVQsIG9uX3VybGJhcl9mb2N1
c19vdXQsIHVybEJhcik7CisKKyAgICByZXR1cm4gdXJsQmFyOworfQorCit2b2lkCit1cmxCYXJE
ZXN0cm95KFVybEJhciAqdXJsQmFyKQoreworICAgIGlmICghdXJsQmFyKQorICAgICAgICByZXR1
cm47CisKKyAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwodXJsQmFyLT5lbnRyeSwg
RVZBU19DQUxMQkFDS19LRVlfRE9XTiwgb25fdXJsYmFyX2tleV9kb3duKTsKKyAgICBldmFzX29i
amVjdF9ldmVudF9jYWxsYmFja19kZWwodXJsQmFyLT5lbnRyeSwgRVZBU19DQUxMQkFDS19NT1VT
RV9ET1dOLCBvbl91cmxiYXJfbW91c2VfZG93bik7CisgICAgZXZhc19vYmplY3RfZXZlbnRfY2Fs
bGJhY2tfZGVsKHVybEJhci0+ZW50cnksIEVWQVNfQ0FMTEJBQ0tfRk9DVVNfT1VULCBvbl91cmxi
YXJfZm9jdXNfb3V0KTsKKworICAgIGV2YXNfb2JqZWN0X2RlbCh1cmxCYXItPmFyZWEpOworICAg
IGV2YXNfb2JqZWN0X2RlbCh1cmxCYXItPmVudHJ5KTsKKyAgICBmcmVlKHVybEJhcik7Cit9CisK
K3ZvaWQKK3VybEJhclNldFVSTChVcmxCYXIgKnVybEJhciwgY29uc3QgY2hhciogdXJsKQorewor
ICAgIGlmICghdXJsQmFyIHx8ICF1cmwpCisgICAgICAgIHJldHVybjsKKworICAgIGVkamVfb2Jq
ZWN0X3BhcnRfdGV4dF9zZXQodXJsQmFyLT5lbnRyeSwgInVybC50ZXh0IiwgdXJsKTsKK30KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci91cmxfYmFyLmggYi9Ub29scy9FV2ViTGF1bmNo
ZXIvdXJsX2Jhci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzYWQzZWNjNWEyOTMwOGYwMjhkMmViMDA1ZDgzYjQ4
YWQ5YzE5YWUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9FV2ViTGF1bmNoZXIvdXJsX2Jhci5o
CkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVj
dHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgdXJsX2Jhcl9oCisjZGVmaW5lIHVybF9iYXJfaAorCisj
aWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKyNpbmNsdWRlIDxFdmFz
Lmg+CisKKyNkZWZpbmUgVVJMQkFSX0hFSUdIVCAzMAorCit0eXBlZGVmIHN0cnVjdCBfVXJsQmFy
IHsKKyAgICBFdmFzX09iamVjdCAqd2ViVmlldzsKKyAgICBFdmFzX09iamVjdCAqYXJlYTsKKyAg
ICBFdmFzX09iamVjdCAqZW50cnk7Cit9IFVybEJhcjsKKworVXJsQmFyICp1cmxCYXJDcmVhdGUo
RXZhc19PYmplY3QqIHdlYnZpZXcsIGludCB3aWR0aCk7Cit2b2lkIHVybEJhckRlc3Ryb3koVXJs
QmFyICp1cmxCYXIpOwordm9pZCB1cmxCYXJTZXRVUkwoVXJsQmFyICp1cmxCYXIsIGNvbnN0IGNo
YXIqIHVybCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisjZW5kaWYgLy8gdXJs
X2Jhcl9oCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvQ01ha2VMaXN0cy50eHQg
Yi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvQ01ha2VMaXN0cy50eHQKaW5kZXggNTljZmM0ZmQxZmU0
MGE2YjhmMWNhZThjM2EyMDE5NzIzZmRjNzAzOS4uNjE1Yzc5ZWFhZThhZGFlNjdhZGMxMmYwODRj
NzA4MzAyMDZiZjNkMCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL0NNYWtlTGlz
dHMudHh0CisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9DTWFrZUxpc3RzLnR4dApAQCAtMSw2
ICsxLDcgQEAKIFNFVChNaW5pQnJvd3Nlcl9ESVIgIiR7VE9PTFNfRElSfS9NaW5pQnJvd3Nlci9l
ZmwiKQogCiBTRVQoTWluaUJyb3dzZXJfU09VUkNFUworICAgICR7VE9PTFNfRElSfS9FV2ViTGF1
bmNoZXIvdXJsX2Jhci5jCiAgICAgJHtNaW5pQnJvd3Nlcl9ESVJ9L21haW4uYwogKQogCkBAIC0x
MCw2ICsxMSw3IEBAIFNFVChNaW5pQnJvd3Nlcl9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgJHtF
REpFX0lOQ0xVREVfRElSU30KICAgICAke0VGTERFUFNfSU5DTFVERV9ESVJTfQogICAgICR7RVZB
U19JTkNMVURFX0RJUlN9CisgICAgJHtUT09MU19ESVJ9L0VXZWJMYXVuY2hlcgogICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsCiAgICAgJHtXRUJLSVQyX0RJUn0KICAgICAke0RF
UklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vaW5jbHVkZQpAQCAtNjYsMyArNjgsNCBAQCBTRVRf
VEFSR0VUX1BST1BFUlRJRVMoTWluaUJyb3dzZXIgUFJPUEVSVElFUyBGT0xERVIgIlRvb2xzIikK
IAogQUREX0RFUEVOREVOQ0lFUyhNaW5pQnJvd3NlciBmb3J3YXJkaW5nLWhlYWRlck1pbmlCcm93
c2VyRWZsKQogQUREX0RFUEVOREVOQ0lFUyhNaW5pQnJvd3NlciBmb3J3YXJkaW5nLWhlYWRlck1p
bmlCcm93c2VyU291cCkKK0FERF9ERVBFTkRFTkNJRVMoTWluaUJyb3dzZXIgVGhlbWVDb250cm9s
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYyBiL1Rvb2xzL01pbmlC
cm93c2VyL2VmbC9tYWluLmMKaW5kZXggYjEwNDI4OWU3MGExOWJlYjJiNmFlOTk3MzJiYjBlNWEw
NTQ5YmVkZS4uYjVmZTk1ZjRiMzFkYWIxMWRkYjU2OTFmMTk0MzA0YjA4ODcyYTdlMCAxMDA2NDQK
LS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nl
ci9lZmwvbWFpbi5jCkBAIC0xOCw2ICsxOCw3IEBACiAgKi8KIAogI2luY2x1ZGUgIkVXZWJLaXQy
LmgiCisjaW5jbHVkZSAidXJsX2Jhci5oIgogI2luY2x1ZGUgPEVjb3JlLmg+CiAjaW5jbHVkZSA8
RWNvcmVfRXZhcy5oPgogI2luY2x1ZGUgPEVpbmEuaD4KQEAgLTQxLDYgKzQyLDcgQEAgdHlwZWRl
ZiBzdHJ1Y3QgX01pbmlCcm93c2VyIHsKICAgICBFdmFzICpldmFzOwogICAgIEV2YXNfT2JqZWN0
ICpiZzsKICAgICBFdmFzX09iamVjdCAqYnJvd3NlcjsKKyAgICBVcmxCYXIgKnVybEJhcjsKIH0g
TWluaUJyb3dzZXI7CiAKIHN0YXRpYyBFaW5hX0Jvb2wgbWFpbl9zaWduYWxfZXhpdCh2b2lkICpk
YXRhLCBpbnQgZXZfdHlwZSwgdm9pZCAqZXYpCkBAIC0xMzIsNiArMTM0LDEzIEBAIG9uX3RpdGxl
X2NoYW5nZWQodm9pZCAqdXNlcl9kYXRhLCBFdmFzX09iamVjdCAqd2Vidmlldywgdm9pZCAqZXZl
bnRfaW5mbykKIH0KIAogc3RhdGljIHZvaWQKK29uX3VybF9jaGFuZ2VkKHZvaWQgKnVzZXJfZGF0
YSwgRXZhc19PYmplY3QgKndlYnZpZXcsIHZvaWQgKmV2ZW50X2luZm8pCit7CisgICAgTWluaUJy
b3dzZXIgKmFwcCA9IChNaW5pQnJvd3NlciAqKXVzZXJfZGF0YTsKKyAgICB1cmxCYXJTZXRVUkwo
YXBwLT51cmxCYXIsIGV3a192aWV3X3VyaV9nZXQoYXBwLT5icm93c2VyKSk7Cit9CisKK3N0YXRp
YyB2b2lkCiBvbl9wcm9ncmVzcyh2b2lkICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3
LCB2b2lkICpldmVudF9pbmZvKQogewogICAgIE1pbmlCcm93c2VyICphcHAgPSAoTWluaUJyb3dz
ZXIgKil1c2VyX2RhdGE7CkBAIC0xODUsMTQgKzE5NCwxOCBAQCBzdGF0aWMgTWluaUJyb3dzZXIg
KmJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsKQogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJsb2FkLGVycm9yIiwgb25fZXJyb3IsIGFwcCk7CiAg
ICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgImxvYWQscHJv
Z3Jlc3MiLCBvbl9wcm9ncmVzcywgYXBwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFj
a19hZGQoYXBwLT5icm93c2VyLCAidGl0bGUsY2hhbmdlZCIsIG9uX3RpdGxlX2NoYW5nZWQsIGFw
cCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgInVy
aSxjaGFuZ2VkIiwgb25fdXJsX2NoYW5nZWQsIGFwcCk7CiAKICAgICBldmFzX29iamVjdF9ldmVu
dF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBvbl9r
ZXlfZG93biwgYXBwKTsKIAogICAgIGV2YXNfb2JqZWN0X3NpemVfaGludF93ZWlnaHRfc2V0KGFw
cC0+YnJvd3NlciwgRVZBU19ISU5UX0VYUEFORCwgRVZBU19ISU5UX0VYUEFORCk7Ci0gICAgZXZh
c19vYmplY3RfcmVzaXplKGFwcC0+YnJvd3NlciwgREVGQVVMVF9XSURUSCwgREVGQVVMVF9IRUlH
SFQpOworICAgIGV2YXNfb2JqZWN0X21vdmUoYXBwLT5icm93c2VyLCAwLCBVUkxCQVJfSEVJR0hU
KTsKKyAgICBldmFzX29iamVjdF9yZXNpemUoYXBwLT5icm93c2VyLCBERUZBVUxUX1dJRFRILCBE
RUZBVUxUX0hFSUdIVCAtIFVSTEJBUl9IRUlHSFQpOwogICAgIGV2YXNfb2JqZWN0X3Nob3coYXBw
LT5icm93c2VyKTsKICAgICBldmFzX29iamVjdF9mb2N1c19zZXQoYXBwLT5icm93c2VyLCBFSU5B
X1RSVUUpOwogCisgICAgYXBwLT51cmxCYXIgPSB1cmxCYXJDcmVhdGUoYXBwLT5icm93c2VyLCBE
RUZBVUxUX1dJRFRIKTsKKwogICAgIGV3a192aWV3X3VyaV9zZXQoYXBwLT5icm93c2VyLCB1cmwp
OwogCiAgICAgcmV0dXJuIGFwcDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153963</attachid>
            <date>2012-07-23 22:40:38 -0700</date>
            <delta_ts>2012-07-24 03:29:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63966-20120724144028.patch</filename>
            <type>text/plain</type>
            <size>22489</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNDE0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjhlMDNlN2U2N2QxNjBmY2QzMzEyODRiYjkzMjkzNzc0
N2NhYzlmZS4uZWU2MDRmYTU4MzFlY2U0MjhmZmNiZWQwZjJhMDVlMWRiNDdmMDE1OSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0
IEBACisyMDEyLTA3LTIzICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbRUZMXSBBZGQgdXJsIGJhciB0byBFV2ViTGF1bmNoZXIgYW5kIE1pbmlCcm93c2Vy
L0VmbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYz
OTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRVdl
YkxhdW5jaGVyIGFuZCBNaW5pQnJvd3Nlci9FZmwgZGlkIG5vdCBoYXZlIGZ1bmN0aW9uYWxpdHkg
dGhhdCB1c2VycworICAgICAgICBuYXZpZ2F0ZXMgdGhlIHNpdGUgd2hpY2ggdGhleSB3YW50Lgor
ICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIHVybGJhciBhbmQgZnVuY3Rpb25hbGl0eSB0byBs
b2FkIHVybCB3aGljaCB1c2VycyB3YW50LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgIEFkZGVkIHRvIHNoYXJlIHVybGJhciB0aGVtZSBmb3IgYm90aCBFV2ViTGF1bmNoZXIg
YW5kIE1pbmlCcm93c2VyL0VmbC4KKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgIEFkZGVkIHVybGJhci5jIGFuZCBkZXBlbmRlbmN5IG9mIHVybGJhciB0aGVt
ZS4KKyAgICAgICAgSW4gYWRkaXRpb24sIGNoYW5nZWQgbWFjcm8gbmFtZSB0byBUSEVNRV9ESVIg
dG8gc2hhcmUgdGhlIGNvZGUgZWFzaWx5LgorICAgICAgICAqIEVXZWJMYXVuY2hlci9Db250cm9s
VGhlbWUvQ01ha2VMaXN0cy50eHQ6IEFkZGVkIGZvciB1cmxiYXIgdGhlbWUuCisgICAgICAgICog
RVdlYkxhdW5jaGVyL0NvbnRyb2xUaGVtZS9lbnRyeS5lZGM6IEltcGxlbWVudGVkIHVybGJhciB0
aGVtZS4KKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvbWFpbi5jOgorICAgICAgICBJbXBsZW1lbnRl
ZCB0byB1c2UgdGhlIHVybGJhci4KKyAgICAgICAgSW4gYWRkaXRpb24sIHJlbW92ZSB1bm5lY2Vz
c2FyeSBib3JkZXIgb2Ygd2VidmlldyB0byBjb250cm9sIHdlYnZpZXcgYW5kIHVybGJhciBlYXNp
bHkuCisgICAgICAgIChfRUxhdW5jaGVyKToKKyAgICAgICAgKG9uX3VybF9jaGFuZ2VkKToKKyAg
ICAgICAgKGJyb3dzZXJDcmVhdGUpOgorICAgICAgICAoY2xvc2VXaW5kb3cpOgorICAgICAgICAo
ZmluZFRoZW1lUGF0aCk6CisgICAgICAgICogRVdlYkxhdW5jaGVyL3VybF9iYXIuYzogSW1wbGVt
ZW50ZWQgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdXJsYmFyLgorICAgICAgICAoX3VybF9iYXJfdXJp
X3dpdGhfcHJvdG9jb2xfZ2V0KToKKyAgICAgICAgKG9uX3VybGJhcl9rZXlfZG93bik6CisgICAg
ICAgIChvbl91cmxiYXJfbW91c2VfZG93bik6CisgICAgICAgIChvbl91cmxiYXJfZm9jdXNfb3V0
KToKKyAgICAgICAgKHVybF9iYXJfYWRkKToKKyAgICAgICAgKHVybF9iYXJfZGVsKToKKyAgICAg
ICAgKHVybF9iYXJfdXJsX3NldCk6CisgICAgICAgICogRVdlYkxhdW5jaGVyL3VybF9iYXIuaDog
QWRkZWQuCisgICAgICAgICogTWluaUJyb3dzZXIvZWZsL0NNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIE1pbmlCcm93c2VyL2VmbC9tYWluLmM6IEltcGxlbWVudGVkIHRvIHVzZSB0aGUgdXJsYmFy
LgorICAgICAgICAoX01pbmlCcm93c2VyKToKKyAgICAgICAgKG9uX3VybF9jaGFuZ2VkKToKKyAg
ICAgICAgKGJyb3dzZXJDcmVhdGUpOgorCiAyMDEyLTA3LTIzICBEaXJrIFByYW5rZSAgPGRwcmFu
a2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjMz
NjAuCmRpZmYgLS1naXQgYS9Ub29scy9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDJmMmI2MGNkM2Y4MDBhYTZmYTU4ZDJkNTc2MjRjOWQyMGQyYWFjNjguLjk1MWMy
NDFlYzRjMGZjNWYzMTFhOWUxNmQwOTgwYmIxM2E3YmI4OTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NN
YWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL0NNYWtlTGlzdHMudHh0CkBAIC0zLDYgKzMsOCBAQCBJ
RiAoRU5BQkxFX1dFQktJVDIpCiBFTkRJRiAoKQogCiBJRiAoIiR7UE9SVH0iIFNUUkVRVUFMICJF
ZmwiKQorICAgIEFERF9TVUJESVJFQ1RPUlkoRVdlYkxhdW5jaGVyL0NvbnRyb2xUaGVtZSkKKwog
ICAgIElGIChFTkFCTEVfV0VCS0lUKQogICAgICAgICBBRERfU1VCRElSRUNUT1JZKER1bXBSZW5k
ZXJUcmVlL2VmbCkKICAgICAgICAgQUREX1NVQkRJUkVDVE9SWShFV2ViTGF1bmNoZXIpCmRpZmYg
LS1naXQgYS9Ub29scy9FV2ViTGF1bmNoZXIvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9FV2ViTGF1
bmNoZXIvQ01ha2VMaXN0cy50eHQKaW5kZXggZjJjMjYzZjMzNWU1ZTE0MTlhZjdlYzMwYmNlNDcw
MDk5YjM1YjAwYS4uMTJhN2U4YjBkMzE4ODYxNDYzNmQ2YTdjNTcyMjVhMWMxN2VkZTJlMiAxMDA2
NDQKLS0tIGEvVG9vbHMvRVdlYkxhdW5jaGVyL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL0VX
ZWJMYXVuY2hlci9DTWFrZUxpc3RzLnR4dApAQCAtMSw0ICsxLDUgQEAKIFNFVChFV2ViTGF1bmNo
ZXJfU09VUkNFUworICAgICR7VE9PTFNfRElSfS9FV2ViTGF1bmNoZXIvdXJsX2Jhci5jCiAgICAg
JHtUT09MU19ESVJ9L0VXZWJMYXVuY2hlci9tYWluLmMKICkKIApAQCAtMzYsMTAgKzM3LDEyIEBA
IFNFVChFV2ViTGF1bmNoZXJfTElOS19GTEFHUwogICAgICR7TElCU09VUDI0X0xERkxBR1N9CiAp
CiAKLUFERF9ERUZJTklUSU9OUygtRERBVEFfRElSPVwiJHtUSEVNRV9CSU5BUllfRElSfVwiKQor
QUREX0RFRklOSVRJT05TKC1EVEhFTUVfRElSPVwiJHtUSEVNRV9CSU5BUllfRElSfVwiKQogCiBJ
TkNMVURFX0RJUkVDVE9SSUVTKCR7RVdlYkxhdW5jaGVyX0lOQ0xVREVfRElSRUNUT1JJRVN9KQog
QUREX0VYRUNVVEFCTEUoRVdlYkxhdW5jaGVyICR7RVdlYkxhdW5jaGVyX1NPVVJDRVN9KQogVEFS
R0VUX0xJTktfTElCUkFSSUVTKEVXZWJMYXVuY2hlciAke0VXZWJMYXVuY2hlcl9MSUJSQVJJRVN9
KQogQUREX1RBUkdFVF9QUk9QRVJUSUVTKEVXZWJMYXVuY2hlciBMSU5LX0ZMQUdTICIke0VXZWJM
YXVuY2hlcl9MSU5LX0ZMQUdTfSIpCiBTRVRfVEFSR0VUX1BST1BFUlRJRVMoRVdlYkxhdW5jaGVy
IFBST1BFUlRJRVMgRk9MREVSICJUb29scyIpCisKK0FERF9ERVBFTkRFTkNJRVMoRVdlYkxhdW5j
aGVyIENvbnRyb2xUaGVtZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci9Db250cm9s
VGhlbWUvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9FV2ViTGF1bmNoZXIvQ29udHJvbFRoZW1lL0NN
YWtlTGlzdHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4YWE4Y2YxOWFiM2ZhYzdkY2IwMGRhNGMwYTk4NThj
ZWNkYzQ1ODMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9FV2ViTGF1bmNoZXIvQ29udHJvbFRo
ZW1lL0NNYWtlTGlzdHMudHh0CkBAIC0wLDAgKzEsOCBAQAorU0VUKENvbnRyb2xUaGVtZV9ESVIg
IiR7VE9PTFNfRElSfS9FV2ViTGF1bmNoZXIvQ29udHJvbFRoZW1lIikKKworQUREX0NVU1RPTV9U
QVJHRVQoQ29udHJvbFRoZW1lIEFMTAorICAgIENPTU1BTkQgJHtFREpFX0NDX0VYRUNVVEFCTEV9
IC12ICR7Q29udHJvbFRoZW1lX0RJUn0vZW50cnkuZWRjICR7VEhFTUVfQklOQVJZX0RJUn0vZW50
cnkuZWRqCisgICAgREVQRU5EUworICAgICAgICAke0NvbnRyb2xUaGVtZV9ESVJ9L2VudHJ5LmVk
YworICAgIFZFUkJBVElNCispCmRpZmYgLS1naXQgYS9Ub29scy9FV2ViTGF1bmNoZXIvQ29udHJv
bFRoZW1lL2VudHJ5LmVkYyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9Db250cm9sVGhlbWUvZW50cnku
ZWRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjM4OGZiYjQ5ZDFjZmYxYTVkMjNkODgxYmVmOTAxYmNmMDIzOTIyZGYK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9FV2ViTGF1bmNoZXIvQ29udHJvbFRoZW1lL2VudHJ5
LmVkYwpAQCAtMCwwICsxLDE0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5n
IEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworY29sbGVjdGlvbnMgeworICAgZ3JvdXAgeworICAgICAgbmFt
ZTogImNvbnRyb2wvZW50cnkvYmFzZS9kZWZhdWx0IjsKKyAgICAgIHN0eWxlcyB7CisgICAgICAg
ICBzdHlsZSB7CisgICAgICAgICAgICBuYW1lOiAiZW50cnlfdGV4dGJsb2NrX3N0eWxlIjsKKyAg
ICAgICAgICAgIGJhc2U6ICJmb250PVJvbWFuIGZvbnRfc2l6ZT0xNCBjb2xvcj0jMDAwMDAwIHdy
YXA9bWl4ZWQiOworICAgICAgICAgfQorICAgICAgfQorICAgICAgcGFydHMgeworICAgICAgICAg
cGFydCB7CisgICAgICAgICAgICBuYW1lOiAidXJsLnRleHQiOworICAgICAgICAgICAgdHlwZTog
VEVYVEJMT0NLOworICAgICAgICAgICAgbW91c2VfZXZlbnRzOiAxOworICAgICAgICAgICAgc2Nh
bGU6IDE7CisgICAgICAgICAgICBlbnRyeV9tb2RlOiBFRElUQUJMRTsKKyAgICAgICAgICAgIG11
bHRpbGluZTogMTsKKyAgICAgICAgICAgIHNvdXJjZTogImNvbnRyb2wvZW50cnkvc2VsZWN0aW9u
L2RlZmF1bHQiOyAvLyBzZWxlY3Rpb24gdW5kZXIKKyAgICAgICAgICAgIHNvdXJjZTQ6ICJjb250
cm9sL2VudHJ5L2N1cnNvci9kZWZhdWx0IjsgLy8gY3Vyc29yIG92ZXIKKyAgICAgICAgICAgIGRl
c2NyaXB0aW9uIHsKKyAgICAgICAgICAgICAgIHN0YXRlOiAiZGVmYXVsdCIgMC4wOworICAgICAg
ICAgICAgICAgZml4ZWQ6IDEgMDsKKyAgICAgICAgICAgICAgIHRleHQgeworICAgICAgICAgICAg
ICAgICAgc3R5bGU6ICJlbnRyeV90ZXh0YmxvY2tfc3R5bGUiOworICAgICAgICAgICAgICAgICAg
bWluOiAwIDE7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICB9Cisg
ICAgICB9CisgICAgICBwcm9ncmFtcyB7CisgICAgICAgICBwcm9ncmFtIHsKKyAgICAgICAgICAg
IG5hbWU6ICJmb2N1cyI7CisgICAgICAgICAgICBzaWduYWw6ICJsb2FkIjsKKyAgICAgICAgICAg
IHNvdXJjZTogIiI7CisgICAgICAgICAgICBhY3Rpb246IEZPQ1VTX1NFVDsKKyAgICAgICAgICAg
IHRhcmdldDogInVybC50ZXh0IjsKKyAgICAgICAgIH0KKyAgICAgIH0KKyAgIH0KKworICAgZ3Jv
dXAgeworICAgICAgbmFtZTogImNvbnRyb2wvZW50cnkvY3Vyc29yL2RlZmF1bHQiOworICAgICAg
cGFydHMgeworICAgICAgICAgcGFydCB7CisgICAgICAgICAgICBuYW1lOiAiY2xpcCI7CisgICAg
ICAgICAgICB0eXBlOiBSRUNUOworICAgICAgICAgICAgbW91c2VfZXZlbnRzOiAwOworICAgICAg
ICAgICAgc2NhbGU6IDE7CisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7CisgICAgICAgICAgICAg
ICBzdGF0ZTogImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgICAgIHJlbDEub2Zmc2V0OiAtMTAg
MDsKKyAgICAgICAgICAgICAgIHJlbDIub2Zmc2V0OiA5IDk7CisgICAgICAgICAgICAgICB2aXNp
YmxlOiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVzY3JpcHRpb24geworICAgICAg
ICAgICAgICAgc3RhdGU6ICJmb2N1c2VkIiAwLjA7CisgICAgICAgICAgICAgICBpbmhlcml0OiAi
ZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgdmlzaWJsZTogMTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgIH0KKyAgICAgICAgIHBhcnQgeworICAgICAgICAgICAgbmFtZTogImN1cnNvciI7
CisgICAgICAgICAgICB0eXBlOiBSRUNUOworICAgICAgICAgICAgbW91c2VfZXZlbnRzOiAwOwor
ICAgICAgICAgICAgc2NhbGU6IDE7CisgICAgICAgICAgICBjbGlwX3RvOiAiY2xpcCI7CisgICAg
ICAgICAgICBkZXNjcmlwdGlvbiB7CisgICAgICAgICAgICAgICBzdGF0ZTogImRlZmF1bHQiIDAu
MDsKKyAgICAgICAgICAgICAgIG1pbjogMSAwOworICAgICAgICAgICAgICAgZml4ZWQ6IDEgMDsK
KyAgICAgICAgICAgICAgIGFsaWduOiAwLjUgMC41OworICAgICAgICAgICAgICAgdmlzaWJsZTog
MTsKKyAgICAgICAgICAgICAgIHJlbDEgeworICAgICAgICAgICAgICAgICAgcmVsYXRpdmU6IDAu
MCAgMC4wOworICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwIDI7CisgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICByZWwyIHsKKyAgICAgICAgICAgICAgICAgIHJlbGF0aXZlOiAwLjAg
IDEuMDsKKyAgICAgICAgICAgICAgICAgIG9mZnNldDogMCAtMjsKKyAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgIGNvbG9yOiAwIDAgMCAyNTU7IC8vIGN1cnNvciBjb2xvcgorICAgICAg
ICAgICAgfQorICAgICAgICAgfQorICAgICAgfQorICAgICAgcHJvZ3JhbXMgeworICAgICAgICAg
cHJvZ3JhbSB7CisgICAgICAgICAgICBuYW1lOiAiZm9jdXNlZCI7CisgICAgICAgICAgICBzaWdu
YWw6ICJlbnRyeSxhY3Rpb24sZm9jdXMiOworICAgICAgICAgICAgc291cmNlOiAiZW50cnkiOwor
ICAgICAgICAgICAgYWN0aW9uOiBTVEFURV9TRVQgImZvY3VzZWQiIDAuMDsKKyAgICAgICAgICAg
IHRhcmdldDogImNsaXAiOworICAgICAgICAgfQorICAgICAgICAgcHJvZ3JhbSB7CisgICAgICAg
ICAgICBuYW1lOiAidW5mb2N1c2VkIjsKKyAgICAgICAgICAgIHNpZ25hbDogImVudHJ5LGFjdGlv
bix1bmZvY3VzIjsKKyAgICAgICAgICAgIHNvdXJjZTogImVudHJ5IjsKKyAgICAgICAgICAgIGFj
dGlvbjogU1RBVEVfU0VUICJkZWZhdWx0IiAwLjA7CisgICAgICAgICAgICB0YXJnZXQ6ICJjbGlw
IjsKKyAgICAgICAgIH0KKyAgICAgIH0KKyAgIH0KKworICAgZ3JvdXAgeworICAgICAgbmFtZTog
ImNvbnRyb2wvZW50cnkvc2VsZWN0aW9uL2RlZmF1bHQiOworICAgICAgcGFydHMgeworICAgICAg
ICAgcGFydCB7CisgICAgICAgICAgICBuYW1lOiAiYmciOworICAgICAgICAgICAgdHlwZTogUkVD
VDsKKyAgICAgICAgICAgIHNjYWxlOiAxOworICAgICAgICAgICAgbW91c2VfZXZlbnRzOiAwOwor
ICAgICAgICAgICAgZGVzY3JpcHRpb24geworICAgICAgICAgICAgICAgc3RhdGU6ICJkZWZhdWx0
IiAwLjA7CisgICAgICAgICAgICAgICBjb2xvcjogMTM4IDE4MyAyMjMgMTI4OworICAgICAgICAg
ICAgfQorICAgICAgICAgfQorICAgICAgfQorICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRVdl
YkxhdW5jaGVyL21haW4uYyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMKaW5kZXggNDA4OWQ2
ZWNhMjRhMzYwOTQ2ODUxOWFhYzkzOGZlMThmZWQwNGM1OC4uMDY3MDNjZmY5NjVmYmY2MTY4NWRm
ZWEwODFkNWNkYTc3OGNmNzEyOSAxMDA2NDQKLS0tIGEvVG9vbHMvRVdlYkxhdW5jaGVyL21haW4u
YworKysgYi9Ub29scy9FV2ViTGF1bmNoZXIvbWFpbi5jCkBAIC0zMCw3ICszMCw3IEBACiAKICNp
bmNsdWRlICJFV2ViS2l0LmgiCiAKLSNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgInVybF9i
YXIuaCIKICNpbmNsdWRlIDxFY29yZS5oPgogI2luY2x1ZGUgPEVjb3JlX0V2YXMuaD4KICNpbmNs
dWRlIDxFY29yZV9GaWxlLmg+CkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8RWNvcmVfWC5o
PgogI2luY2x1ZGUgPEVkamUuaD4KICNpbmNsdWRlIDxFdmFzLmg+CisjaW5jbHVkZSA8Y3R5cGUu
aD4KICNpbmNsdWRlIDxpbnR0eXBlcy5oPgogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUg
PHN0ZGlvLmg+CkBAIC0xNDMsNiArMTQ0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0VMYXVuY2hlciB7
CiAgICAgRXZhcyAqZXZhczsKICAgICBFdmFzX09iamVjdCAqYmc7CiAgICAgRXZhc19PYmplY3Qg
KmJyb3dzZXI7CisgICAgVXJsX0JhciAqdXJsX2JhcjsKICAgICBjb25zdCBjaGFyICp0aGVtZTsK
ICAgICBjb25zdCBjaGFyICp1c2VyQWdlbnQ7CiAgICAgY29uc3QgY2hhciAqYmFja2luZ1N0b3Jl
OwpAQCAtNDAyLDYgKzQwNCwxMyBAQCBvbl9pbnB1dG1ldGhvZF9jaGFuZ2VkKHZvaWQqIHVzZXJf
ZGF0YSwgRXZhc19PYmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2ZW50X2luZm8pCiB9CiAKIHN0YXRp
YyB2b2lkCitvbl91cmxfY2hhbmdlZCh2b2lkKiB1c2VyX2RhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2
aWV3LCB2b2lkKiBldmVudF9pbmZvKQoreworICAgIEVMYXVuY2hlciAqYXBwID0gKEVMYXVuY2hl
ciAqKXVzZXJfZGF0YTsKKyAgICB1cmxfYmFyX3VybF9zZXQoYXBwLT51cmxfYmFyLCBld2tfdmll
d191cmlfZ2V0KGFwcC0+YnJvd3NlcikpOworfQorCitzdGF0aWMgdm9pZAogb25fbW91c2VfZG93
bih2b2lkKiBkYXRhLCBFdmFzKiBlLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRf
aW5mbykKIHsKICAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24gKmV2ID0gKEV2YXNfRXZlbnRfTW91
c2VfRG93biopIGV2ZW50X2luZm87CkBAIC02OTUsNiArNzA0LDcgQEAgYnJvd3NlckNyZWF0ZShj
b25zdCBjaGFyICp1cmwsIGNvbnN0IGNoYXIgKnRoZW1lLCBjb25zdCBjaGFyICp1c2VyQWdlbnQs
IEVpbmFfUmUKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBwLT5icm93c2Vy
LCAibWVudWJhcix2aXNpYmxlLGdldCIsIG9uX21lbnViYXJfdmlzaWJsZV9nZXQsIGFwcCk7CiAg
ICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgInRvb2x0aXAs
dGV4dCxzZXQiLCBvbl90b29sdGlwX3RleHRfc2V0LCBhcHApOwogICAgIGV2YXNfb2JqZWN0X3Nt
YXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJpbnB1dG1ldGhvZCxjaGFuZ2VkIiwgb25f
aW5wdXRtZXRob2RfY2hhbmdlZCwgYXBwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFj
a19hZGQoYXBwLT5icm93c2VyLCAidXJpLGNoYW5nZWQiLCBvbl91cmxfY2hhbmdlZCwgYXBwKTsK
IAogLyogICAgIGV3a19jYWxsYmFja19yZXNpemVfcmVxdWVzdGVkX2FkZChhcHAtPmJyb3dzZXIs
IG9uX3Jlc2l6ZV9yZXF1ZXN0ZWQsIGFwcC0+ZWUpOyAqLwogCkBAIC03MDQsOCArNzE0LDEwIEBA
IGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICp0aGVtZSwgY29uc3Qg
Y2hhciAqdXNlckFnZW50LCBFaW5hX1JlCiAgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tf
YWRkKGFwcC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19GT0NVU19PVVQsIG9uX2ZvY3VzX291dCwg
YXBwKTsKICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCBF
VkFTX0NBTExCQUNLX0RFTCwgb25fYnJvd3Nlcl9kZWwsIGFwcCk7CiAKLSAgICBldmFzX29iamVj
dF9tb3ZlKGFwcC0+YnJvd3NlciwgMTAsIDEwKTsKLSAgICBldmFzX29iamVjdF9yZXNpemUoYXBw
LT5icm93c2VyLCBnZW9tZXRyeS53IC0gMjAsIGdlb21ldHJ5LmggLSAyMCk7CisgICAgYXBwLT51
cmxfYmFyID0gdXJsX2Jhcl9hZGQoYXBwLT5icm93c2VyLCBERUZBVUxUX1dJRFRIKTsKKworICAg
IGV2YXNfb2JqZWN0X21vdmUoYXBwLT5icm93c2VyLCAwLCBVUkxfQkFSX0hFSUdIVCk7CisgICAg
ZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YnJvd3NlciwgZ2VvbWV0cnkudywgZ2VvbWV0cnkuaCAt
IFVSTF9CQVJfSEVJR0hUKTsKIAogICAgIGlmICh1cmwgJiYgKHVybFswXSAhPSAnXDAnKSkKICAg
ICAgICAgZXdrX3ZpZXdfdXJpX3NldChhcHAtPmJyb3dzZXIsIHVybCk7CkBAIC03MzksNiArNzUx
LDcgQEAgY2xvc2VXaW5kb3coRWNvcmVfRXZhcyAqZWUpCiAgICAgICAgICAgICBicmVhazsKICAg
ICB9CiAgICAgd2luZG93cyA9IGVpbmFfbGlzdF9yZW1vdmUod2luZG93cywgYXBwKTsKKyAgICB1
cmxfYmFyX2RlbCgoKEVMYXVuY2hlciAqKWFwcCktPnVybF9iYXIpOwogICAgIGJyb3dzZXJEZXN0
cm95KGVlKTsKICAgICBmcmVlKGFwcCk7CiB9CkBAIC03NjAsMTIgKzc3MywxMiBAQCBtYWluX3Np
Z25hbF9leGl0KHZvaWQgKmRhdGEsIGludCBldl90eXBlLCB2b2lkICpldikKIHN0YXRpYyBjaGFy
ICoKIGZpbmRUaGVtZVBhdGgoY29uc3QgY2hhciAqdGhlbWUpCiB7Ci0gICAgY29uc3QgY2hhciAq
ZGVmYXVsdFRoZW1lID0gREFUQV9ESVIiL2RlZmF1bHQuZWRqIjsKKyAgICBjb25zdCBjaGFyICpk
ZWZhdWx0X3RoZW1lID0gVEhFTUVfRElSIi9kZWZhdWx0LmVkaiI7CiAgICAgY2hhciAqcnBhdGg7
CiAgICAgc3RydWN0IHN0YXQgc3Q7CiAKICAgICBpZiAoIXRoZW1lKQotICAgICAgICB0aGVtZSA9
IGRlZmF1bHRUaGVtZTsKKyAgICAgICAgdGhlbWUgPSBkZWZhdWx0X3RoZW1lOwogCiAgICAgcnBh
dGggPSBlY29yZV9maWxlX3JlYWxwYXRoKHRoZW1lKTsKICAgICBpZiAoIXN0cmxlbihycGF0aCkg
fHwgc3RhdChycGF0aCwgJnN0KSkgewpkaWZmIC0tZ2l0IGEvVG9vbHMvRVdlYkxhdW5jaGVyL3Vy
bF9iYXIuYyBiL1Rvb2xzL0VXZWJMYXVuY2hlci91cmxfYmFyLmMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGRkZGNi
YzEyZTFkZjYxNjI0MDM4M2Y4NDlmMTZlZGMzMThlNDMzZQotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL0VXZWJMYXVuY2hlci91cmxfYmFyLmMKQEAgLTAsMCArMSwxNTUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJ1cmxf
YmFyLmgiCisKKyNpbmNsdWRlIDxFZGplLmg+CisKKyNkZWZpbmUgUEFERElOR19TSVpFIDUKKwor
c3RhdGljIGNoYXIgKgorX3VybF9iYXJfdXJpX3dpdGhfcHJvdG9jb2xfZ2V0KGNvbnN0IGNoYXIg
KnVybCkKK3sKKyAgICBjaGFyICpmdWxsX3VybCA9IE5VTEw7CisgICAgaWYgKHVybCAmJiBzdHJs
ZW4odXJsKSkgeworICAgICAgICBjaGFyICp0b2tlbiA9IHN0cnN0cih1cmwsICI6Ly8iKTsKKyAg
ICAgICAgaWYgKCF0b2tlbikgeworICAgICAgICAgICAgaW50IGxlbiA9IHN0cmxlbih1cmwpICsg
c3RybGVuKCJodHRwOi8vIikgKyAxOworICAgICAgICAgICAgZnVsbF91cmwgPSBtYWxsb2MobGVu
KTsKKyAgICAgICAgICAgIGlmIChmdWxsX3VybCkgeworICAgICAgICAgICAgICAgIHNwcmludGYo
ZnVsbF91cmwsICJodHRwOi8vJXMiLCB1cmwpOworICAgICAgICAgICAgICAgIHJldHVybiBmdWxs
X3VybDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9
CisgICAgfQorCisgICAgcmV0dXJuIHN0cmR1cCh1cmwpOworfQorCitzdGF0aWMgdm9pZAorb25f
dXJsYmFyX2tleV9kb3duKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZv
aWQgKmV2ZW50X2luZm8pCit7CisgICAgRXZhc19FdmVudF9LZXlfRG93biAqZXYgPSBldmVudF9p
bmZvOworICAgIFVybF9CYXIgKnVybEJhciA9IChVcmxfQmFyICopZGF0YTsKKworICAgIGlmICgh
ZXYtPmtleSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFzdHJjbXAoZXYtPmtleSwgIlJl
dHVybiIpKSB7CisgICAgICAgIGNvbnN0IGNoYXIgKnVybCA9IGVkamVfb2JqZWN0X3BhcnRfdGV4
dF9nZXQodXJsQmFyLT5lbnRyeSwgInVybC50ZXh0Iik7CisgICAgICAgIGlmICh1cmwgJiYgc3Ry
bGVuKHVybCkpIHsKKyAgICAgICAgICAgIGNoYXIgKmZ1bGxfdXJsID0gX3VybF9iYXJfdXJpX3dp
dGhfcHJvdG9jb2xfZ2V0KHVybCk7CisgICAgICAgICAgICBpZiAoZnVsbF91cmwpIHsKKyAgICAg
ICAgICAgICAgICBld2tfdmlld191cmlfc2V0KHVybEJhci0+d2ViVmlldywgZnVsbF91cmwpOwor
ICAgICAgICAgICAgICAgIGZyZWUoZnVsbF91cmwpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgZXZhc19vYmplY3RfZm9jdXNfc2V0KHVybEJhci0+d2ViVmlldywgRUlOQV9UUlVFKTsKKyAg
ICAgICAgfQorICAgIH0KK30KKworc3RhdGljIHZvaWQKK29uX3VybGJhcl9tb3VzZV9kb3duKHZv
aWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pCit7
CisgICAgRXZhc19FdmVudF9Nb3VzZV9Eb3duICpldiA9IGV2ZW50X2luZm87CisgICAgVXJsX0Jh
ciAqdXJsQmFyID0gKFVybF9CYXIgKilkYXRhOworCisgICAgaWYgKGV2LT5idXR0b24gPT0gMSkg
eworICAgICAgICBldmFzX29iamVjdF9mb2N1c19zZXQodXJsQmFyLT5lbnRyeSwgRUlOQV9UUlVF
KTsKKyAgICAgICAgZWRqZV9vYmplY3Rfc2lnbmFsX2VtaXQodXJsQmFyLT5lbnRyeSwgImVudHJ5
LGFjdGlvbixmb2N1cyIsICJlbnRyeSIpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK29uX3Vy
bGJhcl9mb2N1c19vdXQodm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKm9iaiwgdm9p
ZCAqZXZlbnRfaW5mbykKK3sKKyAgICBVcmxfQmFyICp1cmxCYXIgPSAoVXJsX0JhciAqKWRhdGE7
CisKKyAgICBlZGplX29iamVjdF9zaWduYWxfZW1pdCh1cmxCYXItPmVudHJ5LCAiZW50cnksYWN0
aW9uLHVuZm9jdXMiLCAiZW50cnkiKTsKK30KKworVXJsX0JhciAqCit1cmxfYmFyX2FkZChFdmFz
X09iamVjdCAqd2ViVmlldywgaW50IHdpZHRoKQoreworICAgIEV2YXMgKmV2YXM7CisgICAgVXJs
X0JhciAqdXJsX2JhcjsKKyAgICBpZiAoIXdlYlZpZXcpCisgICAgICAgIHJldHVybiBOVUxMOwor
ICAgIGV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dldCh3ZWJWaWV3KTsKKworICAgIHVybF9iYXIg
PSAoVXJsX0JhciAqKW1hbGxvYyhzaXplb2YoVXJsX0JhcikpOworICAgIHVybF9iYXItPndlYlZp
ZXcgPSB3ZWJWaWV3OworCisgICAgdXJsX2Jhci0+YXJlYSA9IGV2YXNfb2JqZWN0X3JlY3Rhbmds
ZV9hZGQoZXZhcyk7CisgICAgZXZhc19vYmplY3RfbmFtZV9zZXQodXJsX2Jhci0+YXJlYSwgInVy
bF9iYXJBcmVhIik7CisgICAgZXZhc19vYmplY3RfY29sb3Jfc2V0KHVybF9iYXItPmFyZWEsIDI1
NSwgMjU1LCAyNTUsIDI1NSk7CisgICAgZXZhc19vYmplY3RfbW92ZSh1cmxfYmFyLT5hcmVhLCAw
LCAwKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUodXJsX2Jhci0+YXJlYSwgd2lkdGgsIFVSTF9C
QVJfSEVJR0hUKTsKKyAgICBldmFzX29iamVjdF9zaG93KHVybF9iYXItPmFyZWEpOworCisgICAg
dXJsX2Jhci0+ZW50cnkgPSBlZGplX29iamVjdF9hZGQoZXZhcyk7CisgICAgRWluYV9Cb29sIHJl
dCA9IGVkamVfb2JqZWN0X2ZpbGVfc2V0KHVybF9iYXItPmVudHJ5LCBUSEVNRV9ESVIiL2VudHJ5
LmVkaiIsICJjb250cm9sL2VudHJ5L2Jhc2UvZGVmYXVsdCIpOworICAgIGlmICghcmV0KSB7Cisg
ICAgICAgIGV2YXNfb2JqZWN0X2RlbCh1cmxfYmFyLT5hcmVhKTsKKworICAgICAgICBmcmVlKHVy
bF9iYXIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBlZGplX29iamVjdF9w
YXJ0X3RleHRfc2V0KHVybF9iYXItPmVudHJ5LCAidXJsLnRleHQiLCAiIik7CisgICAgZXZhc19v
YmplY3RfbW92ZSh1cmxfYmFyLT5lbnRyeSwgUEFERElOR19TSVpFLCBQQURESU5HX1NJWkUpOwor
ICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZSh1cmxfYmFyLT5lbnRyeSwgd2lkdGggLSBQQURESU5HX1NJ
WkUgKiAyLCBVUkxfQkFSX0hFSUdIVCAtIFBBRERJTkdfU0laRSAqIDIpOworICAgIGV2YXNfb2Jq
ZWN0X3Nob3codXJsX2Jhci0+ZW50cnkpOworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNr
X2FkZCh1cmxfYmFyLT5lbnRyeSwgRVZBU19DQUxMQkFDS19NT1VTRV9ET1dOLCBvbl91cmxiYXJf
bW91c2VfZG93biwgdXJsX2Jhcik7CisgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRk
KHVybF9iYXItPmVudHJ5LCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBvbl91cmxiYXJfa2V5X2Rv
d24sIHVybF9iYXIpOworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZCh1cmxfYmFy
LT5lbnRyeSwgRVZBU19DQUxMQkFDS19GT0NVU19PVVQsIG9uX3VybGJhcl9mb2N1c19vdXQsIHVy
bF9iYXIpOworCisgICAgcmV0dXJuIHVybF9iYXI7Cit9CisKK3ZvaWQKK3VybF9iYXJfZGVsKFVy
bF9CYXIgKnVybEJhcikKK3sKKyAgICBpZiAoIXVybEJhcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKHVybEJhci0+ZW50cnksIEVWQVNfQ0FM
TEJBQ0tfS0VZX0RPV04sIG9uX3VybGJhcl9rZXlfZG93bik7CisgICAgZXZhc19vYmplY3RfZXZl
bnRfY2FsbGJhY2tfZGVsKHVybEJhci0+ZW50cnksIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfRE9XTiwg
b25fdXJsYmFyX21vdXNlX2Rvd24pOworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2Rl
bCh1cmxCYXItPmVudHJ5LCBFVkFTX0NBTExCQUNLX0ZPQ1VTX09VVCwgb25fdXJsYmFyX2ZvY3Vz
X291dCk7CisKKyAgICBldmFzX29iamVjdF9kZWwodXJsQmFyLT5hcmVhKTsKKyAgICBldmFzX29i
amVjdF9kZWwodXJsQmFyLT5lbnRyeSk7CisgICAgZnJlZSh1cmxCYXIpOworfQorCit2b2lkCit1
cmxfYmFyX3VybF9zZXQoVXJsX0JhciAqdXJsQmFyLCBjb25zdCBjaGFyICp1cmwpCit7CisgICAg
aWYgKCF1cmxCYXIgfHwgIXVybCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZWRqZV9vYmplY3Rf
cGFydF90ZXh0X3NldCh1cmxCYXItPmVudHJ5LCAidXJsLnRleHQiLCB1cmwpOworfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRVdlYkxhdW5jaGVyL3VybF9iYXIuaCBiL1Rvb2xzL0VXZWJMYXVuY2hlci91
cmxfYmFyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDcyNTc2ZmI1ODhhZjMzZTljZjIzYjJjMGZmNGQyMjFlZTk1
MjY4NQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0VXZWJMYXVuY2hlci91cmxfYmFyLmgKQEAg
LTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9u
aWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiB1cmxfYmFyX2gKKyNkZWZpbmUgdXJsX2Jhcl9oCisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworI2luY2x1ZGUgPEV2YXMuaD4K
KworI2RlZmluZSBVUkxfQkFSX0hFSUdIVCAzMAorCit0eXBlZGVmIHN0cnVjdCBfVXJsX0JhciB7
CisgICAgRXZhc19PYmplY3QgKndlYlZpZXc7CisgICAgRXZhc19PYmplY3QgKmFyZWE7CisgICAg
RXZhc19PYmplY3QgKmVudHJ5OworfSBVcmxfQmFyOworCitVcmxfQmFyICp1cmxfYmFyX2FkZChF
dmFzX09iamVjdCogd2VidmlldywgaW50IHdpZHRoKTsKK3ZvaWQgdXJsX2Jhcl9kZWwoVXJsX0Jh
ciAqdXJsQmFyKTsKK3ZvaWQgdXJsX2Jhcl91cmxfc2V0KFVybF9CYXIgKnVybEJhciwgY29uc3Qg
Y2hhciAqdXJsKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKyNlbmRpZiAvLyB1
cmxfYmFyX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9DTWFrZUxpc3RzLnR4
dCBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9DTWFrZUxpc3RzLnR4dAppbmRleCA1OWNmYzRmZDFm
ZTQwYTZiOGYxY2FlOGMzYTIwMTk3MjNmZGM3MDM5Li42MTVjNzllYWFlOGFkYWU2N2FkYzEyZjA4
NGM3MDgzMDIwNmJmM2QwIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvQ01ha2VM
aXN0cy50eHQKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL0NNYWtlTGlzdHMudHh0CkBAIC0x
LDYgKzEsNyBAQAogU0VUKE1pbmlCcm93c2VyX0RJUiAiJHtUT09MU19ESVJ9L01pbmlCcm93c2Vy
L2VmbCIpCiAKIFNFVChNaW5pQnJvd3Nlcl9TT1VSQ0VTCisgICAgJHtUT09MU19ESVJ9L0VXZWJM
YXVuY2hlci91cmxfYmFyLmMKICAgICAke01pbmlCcm93c2VyX0RJUn0vbWFpbi5jCiApCiAKQEAg
LTEwLDYgKzExLDcgQEAgU0VUKE1pbmlCcm93c2VyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAk
e0VESkVfSU5DTFVERV9ESVJTfQogICAgICR7RUZMREVQU19JTkNMVURFX0RJUlN9CiAgICAgJHtF
VkFTX0lOQ0xVREVfRElSU30KKyAgICAke1RPT0xTX0RJUn0vRVdlYkxhdW5jaGVyCiAgICAgJHtX
RUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9lZmwKICAgICAke1dFQktJVDJfRElSfQogICAgICR7
REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9pbmNsdWRlCkBAIC02NiwzICs2OCw0IEBAIFNF
VF9UQVJHRVRfUFJPUEVSVElFUyhNaW5pQnJvd3NlciBQUk9QRVJUSUVTIEZPTERFUiAiVG9vbHMi
KQogCiBBRERfREVQRU5ERU5DSUVTKE1pbmlCcm93c2VyIGZvcndhcmRpbmctaGVhZGVyTWluaUJy
b3dzZXJFZmwpCiBBRERfREVQRU5ERU5DSUVTKE1pbmlCcm93c2VyIGZvcndhcmRpbmctaGVhZGVy
TWluaUJyb3dzZXJTb3VwKQorQUREX0RFUEVOREVOQ0lFUyhNaW5pQnJvd3NlciBUaGVtZUNvbnRy
b2wpCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jIGIvVG9vbHMvTWlu
aUJyb3dzZXIvZWZsL21haW4uYwppbmRleCBiMTA0Mjg5ZTcwYTE5YmViMmI2YWU5OTczMmJiMGU1
YTA1NDliZWRlLi5mNWM0YTRjMmI3MjEzMjYzNjY4OGIyOTk1YTVmMTFjYzQ3NjgxZmU4IDEwMDY0
NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCisrKyBiL1Rvb2xzL01pbmlCcm93
c2VyL2VmbC9tYWluLmMKQEAgLTE4LDYgKzE4LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiRVdlYktp
dDIuaCIKKyNpbmNsdWRlICJ1cmxfYmFyLmgiCiAjaW5jbHVkZSA8RWNvcmUuaD4KICNpbmNsdWRl
IDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWluYS5oPgpAQCAtNDEsNiArNDIsNyBAQCB0eXBl
ZGVmIHN0cnVjdCBfTWluaUJyb3dzZXIgewogICAgIEV2YXMgKmV2YXM7CiAgICAgRXZhc19PYmpl
Y3QgKmJnOwogICAgIEV2YXNfT2JqZWN0ICpicm93c2VyOworICAgIFVybF9CYXIgKnVybF9iYXI7
CiB9IE1pbmlCcm93c2VyOwogCiBzdGF0aWMgRWluYV9Cb29sIG1haW5fc2lnbmFsX2V4aXQodm9p
ZCAqZGF0YSwgaW50IGV2X3R5cGUsIHZvaWQgKmV2KQpAQCAtMTMyLDYgKzEzNCwxMyBAQCBvbl90
aXRsZV9jaGFuZ2VkKHZvaWQgKnVzZXJfZGF0YSwgRXZhc19PYmplY3QgKndlYnZpZXcsIHZvaWQg
KmV2ZW50X2luZm8pCiB9CiAKIHN0YXRpYyB2b2lkCitvbl91cmxfY2hhbmdlZCh2b2lkICp1c2Vy
X2RhdGEsIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2b2lkICpldmVudF9pbmZvKQoreworICAgIE1p
bmlCcm93c2VyICphcHAgPSAoTWluaUJyb3dzZXIgKil1c2VyX2RhdGE7CisgICAgdXJsX2Jhcl91
cmxfc2V0KGFwcC0+dXJsX2JhciwgZXdrX3ZpZXdfdXJpX2dldChhcHAtPmJyb3dzZXIpKTsKK30K
Kworc3RhdGljIHZvaWQKIG9uX3Byb2dyZXNzKHZvaWQgKnVzZXJfZGF0YSwgRXZhc19PYmplY3Qg
KndlYnZpZXcsIHZvaWQgKmV2ZW50X2luZm8pCiB7CiAgICAgTWluaUJyb3dzZXIgKmFwcCA9IChN
aW5pQnJvd3NlciAqKXVzZXJfZGF0YTsKQEAgLTE4NSwxNCArMTk0LDE4IEBAIHN0YXRpYyBNaW5p
QnJvd3NlciAqYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmwpCiAgICAgZXZhc19vYmplY3Rf
c21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgImxvYWQsZXJyb3IiLCBvbl9lcnJvciwg
YXBwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCAi
bG9hZCxwcm9ncmVzcyIsIG9uX3Byb2dyZXNzLCBhcHApOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0
X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJ0aXRsZSxjaGFuZ2VkIiwgb25fdGl0bGVfY2hh
bmdlZCwgYXBwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBwLT5icm93
c2VyLCAidXJpLGNoYW5nZWQiLCBvbl91cmxfY2hhbmdlZCwgYXBwKTsKIAogICAgIGV2YXNfb2Jq
ZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfS0VZX0RP
V04sIG9uX2tleV9kb3duLCBhcHApOwogCiAgICAgZXZhc19vYmplY3Rfc2l6ZV9oaW50X3dlaWdo
dF9zZXQoYXBwLT5icm93c2VyLCBFVkFTX0hJTlRfRVhQQU5ELCBFVkFTX0hJTlRfRVhQQU5EKTsK
LSAgICBldmFzX29iamVjdF9yZXNpemUoYXBwLT5icm93c2VyLCBERUZBVUxUX1dJRFRILCBERUZB
VUxUX0hFSUdIVCk7CisgICAgZXZhc19vYmplY3RfbW92ZShhcHAtPmJyb3dzZXIsIDAsIFVSTF9C
QVJfSEVJR0hUKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUoYXBwLT5icm93c2VyLCBERUZBVUxU
X1dJRFRILCBERUZBVUxUX0hFSUdIVCAtIFVSTF9CQVJfSEVJR0hUKTsKICAgICBldmFzX29iamVj
dF9zaG93KGFwcC0+YnJvd3Nlcik7CiAgICAgZXZhc19vYmplY3RfZm9jdXNfc2V0KGFwcC0+YnJv
d3NlciwgRUlOQV9UUlVFKTsKIAorICAgIGFwcC0+dXJsX2JhciA9IHVybF9iYXJfYWRkKGFwcC0+
YnJvd3NlciwgREVGQVVMVF9XSURUSCk7CisKICAgICBld2tfdmlld191cmlfc2V0KGFwcC0+YnJv
d3NlciwgdXJsKTsKIAogICAgIHJldHVybiBhcHA7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154007</attachid>
            <date>2012-07-24 03:29:32 -0700</date>
            <delta_ts>2012-07-24 03:38:07 -0700</delta_ts>
            <desc>rebased for style bot</desc>
            <filename>bug-63966-20120724192923.patch</filename>
            <type>text/plain</type>
            <size>22580</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNDUxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWJiMjQ1OTNiOTRmMDBhZjY1NDA3YzQ2ZDZlYTQyZjE1
YmQyNmQ0YS4uNWE5MGJjMWMyMjE1NzE1NTg5ZjczOTJjNDA5ZWY4YTYxOWVmYjA2NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ2
IEBACiAyMDEyLTA3LTI0ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAor
ICAgICAgICBbRUZMXSBBZGQgdXJsIGJhciB0byBFV2ViTGF1bmNoZXIgYW5kIE1pbmlCcm93c2Vy
L0VmbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYz
OTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRVdl
YkxhdW5jaGVyIGFuZCBNaW5pQnJvd3Nlci9FZmwgZGlkIG5vdCBoYXZlIGZ1bmN0aW9uYWxpdHkg
dGhhdCB1c2VycworICAgICAgICBuYXZpZ2F0ZXMgdGhlIHNpdGUgd2hpY2ggdGhleSB3YW50Lgor
ICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIHVybGJhciBhbmQgZnVuY3Rpb25hbGl0eSB0byBs
b2FkIHVybCB3aGljaCB1c2VycyB3YW50LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgIEFkZGVkIHRvIHNoYXJlIHVybGJhciB0aGVtZSBmb3IgYm90aCBFV2ViTGF1bmNoZXIg
YW5kIE1pbmlCcm93c2VyL0VmbC4KKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgIEFkZGVkIHVybGJhci5jIGFuZCBkZXBlbmRlbmN5IG9mIHVybGJhciB0aGVt
ZS4KKyAgICAgICAgSW4gYWRkaXRpb24sIGNoYW5nZWQgbWFjcm8gbmFtZSB0byBUSEVNRV9ESVIg
dG8gc2hhcmUgdGhlIGNvZGUgZWFzaWx5LgorICAgICAgICAqIEVXZWJMYXVuY2hlci9Db250cm9s
VGhlbWUvQ01ha2VMaXN0cy50eHQ6IEFkZGVkIGZvciB1cmxiYXIgdGhlbWUuCisgICAgICAgICog
RVdlYkxhdW5jaGVyL0NvbnRyb2xUaGVtZS9lbnRyeS5lZGM6IEltcGxlbWVudGVkIHVybGJhciB0
aGVtZS4KKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvbWFpbi5jOgorICAgICAgICBJbXBsZW1lbnRl
ZCB0byB1c2UgdGhlIHVybGJhci4KKyAgICAgICAgSW4gYWRkaXRpb24sIHJlbW92ZSB1bm5lY2Vz
c2FyeSBib3JkZXIgb2Ygd2VidmlldyB0byBjb250cm9sIHdlYnZpZXcgYW5kIHVybGJhciBlYXNp
bHkuCisgICAgICAgIChfRUxhdW5jaGVyKToKKyAgICAgICAgKG9uX3VybF9jaGFuZ2VkKToKKyAg
ICAgICAgKGJyb3dzZXJDcmVhdGUpOgorICAgICAgICAoY2xvc2VXaW5kb3cpOgorICAgICAgICAo
ZmluZFRoZW1lUGF0aCk6CisgICAgICAgICogRVdlYkxhdW5jaGVyL3VybF9iYXIuYzogSW1wbGVt
ZW50ZWQgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdXJsYmFyLgorICAgICAgICAoX3VybF9iYXJfdXJp
X3dpdGhfcHJvdG9jb2xfZ2V0KToKKyAgICAgICAgKG9uX3VybGJhcl9rZXlfZG93bik6CisgICAg
ICAgIChvbl91cmxiYXJfbW91c2VfZG93bik6CisgICAgICAgIChvbl91cmxiYXJfZm9jdXNfb3V0
KToKKyAgICAgICAgKHVybF9iYXJfYWRkKToKKyAgICAgICAgKHVybF9iYXJfZGVsKToKKyAgICAg
ICAgKHVybF9iYXJfdXJsX3NldCk6CisgICAgICAgICogRVdlYkxhdW5jaGVyL3VybF9iYXIuaDog
QWRkZWQuCisgICAgICAgICogTWluaUJyb3dzZXIvZWZsL0NNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIE1pbmlCcm93c2VyL2VmbC9tYWluLmM6IEltcGxlbWVudGVkIHRvIHVzZSB0aGUgdXJsYmFy
LgorICAgICAgICAoX01pbmlCcm93c2VyKToKKyAgICAgICAgKG9uX3VybF9jaGFuZ2VkKToKKyAg
ICAgICAgKGJyb3dzZXJDcmVhdGUpOgorCisyMDEyLTA3LTI0ICBSeXVhbiBDaG9pICA8cnl1YW4u
Y2hvaUBzYW1zdW5nLmNvbT4KKwogICAgICAgICBbRUZMXSBFV2ViTGF1bmNoZXIgc2hvdWxkIG5v
dCByZXF1aXJlIGNvbmZpZy5oIGluIHRoZSBzdHlsZSBjaGVjawogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTIwNzAKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
Q01ha2VMaXN0cy50eHQgYi9Ub29scy9DTWFrZUxpc3RzLnR4dAppbmRleCAyZjJiNjBjZDNmODAw
YWE2ZmE1OGQyZDU3NjI0YzlkMjBkMmFhYzY4Li45NTFjMjQxZWM0YzBmYzVmMzExYTllMTZkMDk4
MGJiMTNhN2JiODk4IDEwMDY0NAotLS0gYS9Ub29scy9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29s
cy9DTWFrZUxpc3RzLnR4dApAQCAtMyw2ICszLDggQEAgSUYgKEVOQUJMRV9XRUJLSVQyKQogRU5E
SUYgKCkKIAogSUYgKCIke1BPUlR9IiBTVFJFUVVBTCAiRWZsIikKKyAgICBBRERfU1VCRElSRUNU
T1JZKEVXZWJMYXVuY2hlci9Db250cm9sVGhlbWUpCisKICAgICBJRiAoRU5BQkxFX1dFQktJVCkK
ICAgICAgICAgQUREX1NVQkRJUkVDVE9SWShEdW1wUmVuZGVyVHJlZS9lZmwpCiAgICAgICAgIEFE
RF9TVUJESVJFQ1RPUlkoRVdlYkxhdW5jaGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRVdlYkxhdW5j
aGVyL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvRVdlYkxhdW5jaGVyL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGYyYzI2M2YzMzVlNWUxNDE5YWY3ZWMzMGJjZTQ3MDA5OWIzNWIwMGEuLjEyYTdlOGIwZDMx
ODg2MTQ2MzZkNmE3YzU3MjI1YTFjMTdlZGUyZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0VXZWJMYXVu
Y2hlci9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9FV2ViTGF1bmNoZXIvQ01ha2VMaXN0cy50
eHQKQEAgLTEsNCArMSw1IEBACiBTRVQoRVdlYkxhdW5jaGVyX1NPVVJDRVMKKyAgICAke1RPT0xT
X0RJUn0vRVdlYkxhdW5jaGVyL3VybF9iYXIuYwogICAgICR7VE9PTFNfRElSfS9FV2ViTGF1bmNo
ZXIvbWFpbi5jCiApCiAKQEAgLTM2LDEwICszNywxMiBAQCBTRVQoRVdlYkxhdW5jaGVyX0xJTktf
RkxBR1MKICAgICAke0xJQlNPVVAyNF9MREZMQUdTfQogKQogCi1BRERfREVGSU5JVElPTlMoLURE
QVRBX0RJUj1cIiR7VEhFTUVfQklOQVJZX0RJUn1cIikKK0FERF9ERUZJTklUSU9OUygtRFRIRU1F
X0RJUj1cIiR7VEhFTUVfQklOQVJZX0RJUn1cIikKIAogSU5DTFVERV9ESVJFQ1RPUklFUygke0VX
ZWJMYXVuY2hlcl9JTkNMVURFX0RJUkVDVE9SSUVTfSkKIEFERF9FWEVDVVRBQkxFKEVXZWJMYXVu
Y2hlciAke0VXZWJMYXVuY2hlcl9TT1VSQ0VTfSkKIFRBUkdFVF9MSU5LX0xJQlJBUklFUyhFV2Vi
TGF1bmNoZXIgJHtFV2ViTGF1bmNoZXJfTElCUkFSSUVTfSkKIEFERF9UQVJHRVRfUFJPUEVSVElF
UyhFV2ViTGF1bmNoZXIgTElOS19GTEFHUyAiJHtFV2ViTGF1bmNoZXJfTElOS19GTEFHU30iKQog
U0VUX1RBUkdFVF9QUk9QRVJUSUVTKEVXZWJMYXVuY2hlciBQUk9QRVJUSUVTIEZPTERFUiAiVG9v
bHMiKQorCitBRERfREVQRU5ERU5DSUVTKEVXZWJMYXVuY2hlciBDb250cm9sVGhlbWUpCmRpZmYg
LS1naXQgYS9Ub29scy9FV2ViTGF1bmNoZXIvQ29udHJvbFRoZW1lL0NNYWtlTGlzdHMudHh0IGIv
VG9vbHMvRVdlYkxhdW5jaGVyL0NvbnRyb2xUaGVtZS9DTWFrZUxpc3RzLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42OGFhOGNmMTlhYjNmYWM3ZGNiMDBkYTRjMGE5ODU4Y2VjZGM0NTgzCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvRVdlYkxhdW5jaGVyL0NvbnRyb2xUaGVtZS9DTWFrZUxpc3RzLnR4dApAQCAt
MCwwICsxLDggQEAKK1NFVChDb250cm9sVGhlbWVfRElSICIke1RPT0xTX0RJUn0vRVdlYkxhdW5j
aGVyL0NvbnRyb2xUaGVtZSIpCisKK0FERF9DVVNUT01fVEFSR0VUKENvbnRyb2xUaGVtZSBBTEwK
KyAgICBDT01NQU5EICR7RURKRV9DQ19FWEVDVVRBQkxFfSAtdiAke0NvbnRyb2xUaGVtZV9ESVJ9
L2VudHJ5LmVkYyAke1RIRU1FX0JJTkFSWV9ESVJ9L2VudHJ5LmVkagorICAgIERFUEVORFMKKyAg
ICAgICAgJHtDb250cm9sVGhlbWVfRElSfS9lbnRyeS5lZGMKKyAgICBWRVJCQVRJTQorKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRVdlYkxhdW5jaGVyL0NvbnRyb2xUaGVtZS9lbnRyeS5lZGMgYi9Ub29s
cy9FV2ViTGF1bmNoZXIvQ29udHJvbFRoZW1lL2VudHJ5LmVkYwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODhmYmI0
OWQxY2ZmMWE1ZDIzZDg4MWJlZjkwMWJjZjAyMzkyMmRmCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvRVdlYkxhdW5jaGVyL0NvbnRyb2xUaGVtZS9lbnRyeS5lZGMKQEAgLTAsMCArMSwxNDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2Nv
bGxlY3Rpb25zIHsKKyAgIGdyb3VwIHsKKyAgICAgIG5hbWU6ICJjb250cm9sL2VudHJ5L2Jhc2Uv
ZGVmYXVsdCI7CisgICAgICBzdHlsZXMgeworICAgICAgICAgc3R5bGUgeworICAgICAgICAgICAg
bmFtZTogImVudHJ5X3RleHRibG9ja19zdHlsZSI7CisgICAgICAgICAgICBiYXNlOiAiZm9udD1S
b21hbiBmb250X3NpemU9MTQgY29sb3I9IzAwMDAwMCB3cmFwPW1peGVkIjsKKyAgICAgICAgIH0K
KyAgICAgIH0KKyAgICAgIHBhcnRzIHsKKyAgICAgICAgIHBhcnQgeworICAgICAgICAgICAgbmFt
ZTogInVybC50ZXh0IjsKKyAgICAgICAgICAgIHR5cGU6IFRFWFRCTE9DSzsKKyAgICAgICAgICAg
IG1vdXNlX2V2ZW50czogMTsKKyAgICAgICAgICAgIHNjYWxlOiAxOworICAgICAgICAgICAgZW50
cnlfbW9kZTogRURJVEFCTEU7CisgICAgICAgICAgICBtdWx0aWxpbmU6IDE7CisgICAgICAgICAg
ICBzb3VyY2U6ICJjb250cm9sL2VudHJ5L3NlbGVjdGlvbi9kZWZhdWx0IjsgLy8gc2VsZWN0aW9u
IHVuZGVyCisgICAgICAgICAgICBzb3VyY2U0OiAiY29udHJvbC9lbnRyeS9jdXJzb3IvZGVmYXVs
dCI7IC8vIGN1cnNvciBvdmVyCisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7CisgICAgICAgICAg
ICAgICBzdGF0ZTogImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgICAgIGZpeGVkOiAxIDA7Cisg
ICAgICAgICAgICAgICB0ZXh0IHsKKyAgICAgICAgICAgICAgICAgIHN0eWxlOiAiZW50cnlfdGV4
dGJsb2NrX3N0eWxlIjsKKyAgICAgICAgICAgICAgICAgIG1pbjogMCAxOworICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgfQorICAgICAgcHJvZ3JhbXMg
eworICAgICAgICAgcHJvZ3JhbSB7CisgICAgICAgICAgICBuYW1lOiAiZm9jdXMiOworICAgICAg
ICAgICAgc2lnbmFsOiAibG9hZCI7CisgICAgICAgICAgICBzb3VyY2U6ICIiOworICAgICAgICAg
ICAgYWN0aW9uOiBGT0NVU19TRVQ7CisgICAgICAgICAgICB0YXJnZXQ6ICJ1cmwudGV4dCI7Cisg
ICAgICAgICB9CisgICAgICB9CisgICB9CisKKyAgIGdyb3VwIHsKKyAgICAgIG5hbWU6ICJjb250
cm9sL2VudHJ5L2N1cnNvci9kZWZhdWx0IjsKKyAgICAgIHBhcnRzIHsKKyAgICAgICAgIHBhcnQg
eworICAgICAgICAgICAgbmFtZTogImNsaXAiOworICAgICAgICAgICAgdHlwZTogUkVDVDsKKyAg
ICAgICAgICAgIG1vdXNlX2V2ZW50czogMDsKKyAgICAgICAgICAgIHNjYWxlOiAxOworICAgICAg
ICAgICAgZGVzY3JpcHRpb24geworICAgICAgICAgICAgICAgc3RhdGU6ICJkZWZhdWx0IiAwLjA7
CisgICAgICAgICAgICAgICByZWwxLm9mZnNldDogLTEwIDA7CisgICAgICAgICAgICAgICByZWwy
Lm9mZnNldDogOSA5OworICAgICAgICAgICAgICAgdmlzaWJsZTogMDsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGRlc2NyaXB0aW9uIHsKKyAgICAgICAgICAgICAgIHN0YXRlOiAiZm9jdXNl
ZCIgMC4wOworICAgICAgICAgICAgICAgaW5oZXJpdDogImRlZmF1bHQiIDAuMDsKKyAgICAgICAg
ICAgICAgIHZpc2libGU6IDE7CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgICBw
YXJ0IHsKKyAgICAgICAgICAgIG5hbWU6ICJjdXJzb3IiOworICAgICAgICAgICAgdHlwZTogUkVD
VDsKKyAgICAgICAgICAgIG1vdXNlX2V2ZW50czogMDsKKyAgICAgICAgICAgIHNjYWxlOiAxOwor
ICAgICAgICAgICAgY2xpcF90bzogImNsaXAiOworICAgICAgICAgICAgZGVzY3JpcHRpb24gewor
ICAgICAgICAgICAgICAgc3RhdGU6ICJkZWZhdWx0IiAwLjA7CisgICAgICAgICAgICAgICBtaW46
IDEgMDsKKyAgICAgICAgICAgICAgIGZpeGVkOiAxIDA7CisgICAgICAgICAgICAgICBhbGlnbjog
MC41IDAuNTsKKyAgICAgICAgICAgICAgIHZpc2libGU6IDE7CisgICAgICAgICAgICAgICByZWwx
IHsKKyAgICAgICAgICAgICAgICAgIHJlbGF0aXZlOiAwLjAgIDAuMDsKKyAgICAgICAgICAgICAg
ICAgIG9mZnNldDogMCAyOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgcmVsMiB7
CisgICAgICAgICAgICAgICAgICByZWxhdGl2ZTogMC4wICAxLjA7CisgICAgICAgICAgICAgICAg
ICBvZmZzZXQ6IDAgLTI7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBjb2xvcjog
MCAwIDAgMjU1OyAvLyBjdXJzb3IgY29sb3IKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAg
ICAgIH0KKyAgICAgIHByb2dyYW1zIHsKKyAgICAgICAgIHByb2dyYW0geworICAgICAgICAgICAg
bmFtZTogImZvY3VzZWQiOworICAgICAgICAgICAgc2lnbmFsOiAiZW50cnksYWN0aW9uLGZvY3Vz
IjsKKyAgICAgICAgICAgIHNvdXJjZTogImVudHJ5IjsKKyAgICAgICAgICAgIGFjdGlvbjogU1RB
VEVfU0VUICJmb2N1c2VkIiAwLjA7CisgICAgICAgICAgICB0YXJnZXQ6ICJjbGlwIjsKKyAgICAg
ICAgIH0KKyAgICAgICAgIHByb2dyYW0geworICAgICAgICAgICAgbmFtZTogInVuZm9jdXNlZCI7
CisgICAgICAgICAgICBzaWduYWw6ICJlbnRyeSxhY3Rpb24sdW5mb2N1cyI7CisgICAgICAgICAg
ICBzb3VyY2U6ICJlbnRyeSI7CisgICAgICAgICAgICBhY3Rpb246IFNUQVRFX1NFVCAiZGVmYXVs
dCIgMC4wOworICAgICAgICAgICAgdGFyZ2V0OiAiY2xpcCI7CisgICAgICAgICB9CisgICAgICB9
CisgICB9CisKKyAgIGdyb3VwIHsKKyAgICAgIG5hbWU6ICJjb250cm9sL2VudHJ5L3NlbGVjdGlv
bi9kZWZhdWx0IjsKKyAgICAgIHBhcnRzIHsKKyAgICAgICAgIHBhcnQgeworICAgICAgICAgICAg
bmFtZTogImJnIjsKKyAgICAgICAgICAgIHR5cGU6IFJFQ1Q7CisgICAgICAgICAgICBzY2FsZTog
MTsKKyAgICAgICAgICAgIG1vdXNlX2V2ZW50czogMDsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9u
IHsKKyAgICAgICAgICAgICAgIHN0YXRlOiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAg
Y29sb3I6IDEzOCAxODMgMjIzIDEyODsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAg
IH0KKyAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMgYi9Ub29s
cy9FV2ViTGF1bmNoZXIvbWFpbi5jCmluZGV4IDQwODlkNmVjYTI0YTM2MDk0Njg1MTlhYWM5Mzhm
ZTE4ZmVkMDRjNTguLjA2NzAzY2ZmOTY1ZmJmNjE2ODVkZmVhMDgxZDVjZGE3NzhjZjcxMjkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMKKysrIGIvVG9vbHMvRVdlYkxhdW5j
aGVyL21haW4uYwpAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiRVdlYktpdC5oIgogCi0j
aW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlICJ1cmxfYmFyLmgiCiAjaW5jbHVkZSA8RWNvcmUu
aD4KICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWNvcmVfRmlsZS5oPgpAQCAt
MzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPEVjb3JlX1guaD4KICNpbmNsdWRlIDxFZGplLmg+CiAj
aW5jbHVkZSA8RXZhcy5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8aW50dHlwZXMu
aD4KICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMTQzLDYgKzE0
NCw3IEBAIHR5cGVkZWYgc3RydWN0IF9FTGF1bmNoZXIgewogICAgIEV2YXMgKmV2YXM7CiAgICAg
RXZhc19PYmplY3QgKmJnOwogICAgIEV2YXNfT2JqZWN0ICpicm93c2VyOworICAgIFVybF9CYXIg
KnVybF9iYXI7CiAgICAgY29uc3QgY2hhciAqdGhlbWU7CiAgICAgY29uc3QgY2hhciAqdXNlckFn
ZW50OwogICAgIGNvbnN0IGNoYXIgKmJhY2tpbmdTdG9yZTsKQEAgLTQwMiw2ICs0MDQsMTMgQEAg
b25faW5wdXRtZXRob2RfY2hhbmdlZCh2b2lkKiB1c2VyX2RhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2
aWV3LCB2b2lkKiBldmVudF9pbmZvKQogfQogCiBzdGF0aWMgdm9pZAorb25fdXJsX2NoYW5nZWQo
dm9pZCogdXNlcl9kYXRhLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5mbykK
K3sKKyAgICBFTGF1bmNoZXIgKmFwcCA9IChFTGF1bmNoZXIgKil1c2VyX2RhdGE7CisgICAgdXJs
X2Jhcl91cmxfc2V0KGFwcC0+dXJsX2JhciwgZXdrX3ZpZXdfdXJpX2dldChhcHAtPmJyb3dzZXIp
KTsKK30KKworc3RhdGljIHZvaWQKIG9uX21vdXNlX2Rvd24odm9pZCogZGF0YSwgRXZhcyogZSwg
RXZhc19PYmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2ZW50X2luZm8pCiB7CiAgICAgRXZhc19FdmVu
dF9Nb3VzZV9Eb3duICpldiA9IChFdmFzX0V2ZW50X01vdXNlX0Rvd24qKSBldmVudF9pbmZvOwpA
QCAtNjk1LDYgKzcwNCw3IEBAIGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBj
aGFyICp0aGVtZSwgY29uc3QgY2hhciAqdXNlckFnZW50LCBFaW5hX1JlCiAgICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgIm1lbnViYXIsdmlzaWJsZSxnZXQi
LCBvbl9tZW51YmFyX3Zpc2libGVfZ2V0LCBhcHApOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJ0b29sdGlwLHRleHQsc2V0Iiwgb25fdG9vbHRpcF90
ZXh0X3NldCwgYXBwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBwLT5i
cm93c2VyLCAiaW5wdXRtZXRob2QsY2hhbmdlZCIsIG9uX2lucHV0bWV0aG9kX2NoYW5nZWQsIGFw
cCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgInVy
aSxjaGFuZ2VkIiwgb25fdXJsX2NoYW5nZWQsIGFwcCk7CiAKIC8qICAgICBld2tfY2FsbGJhY2tf
cmVzaXplX3JlcXVlc3RlZF9hZGQoYXBwLT5icm93c2VyLCBvbl9yZXNpemVfcmVxdWVzdGVkLCBh
cHAtPmVlKTsgKi8KIApAQCAtNzA0LDggKzcxNCwxMCBAQCBicm93c2VyQ3JlYXRlKGNvbnN0IGNo
YXIgKnVybCwgY29uc3QgY2hhciAqdGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9S
ZQogICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsIEVWQVNf
Q0FMTEJBQ0tfRk9DVVNfT1VULCBvbl9mb2N1c19vdXQsIGFwcCk7CiAgICAgZXZhc19vYmplY3Rf
ZXZlbnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19ERUwsIG9uX2Jy
b3dzZXJfZGVsLCBhcHApOwogCi0gICAgZXZhc19vYmplY3RfbW92ZShhcHAtPmJyb3dzZXIsIDEw
LCAxMCk7Ci0gICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YnJvd3NlciwgZ2VvbWV0cnkudyAt
IDIwLCBnZW9tZXRyeS5oIC0gMjApOworICAgIGFwcC0+dXJsX2JhciA9IHVybF9iYXJfYWRkKGFw
cC0+YnJvd3NlciwgREVGQVVMVF9XSURUSCk7CisKKyAgICBldmFzX29iamVjdF9tb3ZlKGFwcC0+
YnJvd3NlciwgMCwgVVJMX0JBUl9IRUlHSFQpOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShhcHAt
PmJyb3dzZXIsIGdlb21ldHJ5LncsIGdlb21ldHJ5LmggLSBVUkxfQkFSX0hFSUdIVCk7CiAKICAg
ICBpZiAodXJsICYmICh1cmxbMF0gIT0gJ1wwJykpCiAgICAgICAgIGV3a192aWV3X3VyaV9zZXQo
YXBwLT5icm93c2VyLCB1cmwpOwpAQCAtNzM5LDYgKzc1MSw3IEBAIGNsb3NlV2luZG93KEVjb3Jl
X0V2YXMgKmVlKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHdpbmRvd3MgPSBlaW5h
X2xpc3RfcmVtb3ZlKHdpbmRvd3MsIGFwcCk7CisgICAgdXJsX2Jhcl9kZWwoKChFTGF1bmNoZXIg
KilhcHApLT51cmxfYmFyKTsKICAgICBicm93c2VyRGVzdHJveShlZSk7CiAgICAgZnJlZShhcHAp
OwogfQpAQCAtNzYwLDEyICs3NzMsMTIgQEAgbWFpbl9zaWduYWxfZXhpdCh2b2lkICpkYXRhLCBp
bnQgZXZfdHlwZSwgdm9pZCAqZXYpCiBzdGF0aWMgY2hhciAqCiBmaW5kVGhlbWVQYXRoKGNvbnN0
IGNoYXIgKnRoZW1lKQogewotICAgIGNvbnN0IGNoYXIgKmRlZmF1bHRUaGVtZSA9IERBVEFfRElS
Ii9kZWZhdWx0LmVkaiI7CisgICAgY29uc3QgY2hhciAqZGVmYXVsdF90aGVtZSA9IFRIRU1FX0RJ
UiIvZGVmYXVsdC5lZGoiOwogICAgIGNoYXIgKnJwYXRoOwogICAgIHN0cnVjdCBzdGF0IHN0Owog
CiAgICAgaWYgKCF0aGVtZSkKLSAgICAgICAgdGhlbWUgPSBkZWZhdWx0VGhlbWU7CisgICAgICAg
IHRoZW1lID0gZGVmYXVsdF90aGVtZTsKIAogICAgIHJwYXRoID0gZWNvcmVfZmlsZV9yZWFscGF0
aCh0aGVtZSk7CiAgICAgaWYgKCFzdHJsZW4ocnBhdGgpIHx8IHN0YXQocnBhdGgsICZzdCkpIHsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci91cmxfYmFyLmMgYi9Ub29scy9FV2ViTGF1
bmNoZXIvdXJsX2Jhci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkZGRjYmMxMmUxZGY2MTYyNDAzODNmODQ5ZjE2
ZWRjMzE4ZTQzM2UKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9FV2ViTGF1bmNoZXIvdXJsX2Jh
ci5jCkBAIC0wLDAgKzEsMTU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcg
RWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAidXJsX2Jhci5oIgorCisjaW5jbHVkZSA8RWRq
ZS5oPgorCisjZGVmaW5lIFBBRERJTkdfU0laRSA1CisKK3N0YXRpYyBjaGFyICoKK191cmxfYmFy
X3VyaV93aXRoX3Byb3RvY29sX2dldChjb25zdCBjaGFyICp1cmwpCit7CisgICAgY2hhciAqZnVs
bF91cmwgPSBOVUxMOworICAgIGlmICh1cmwgJiYgc3RybGVuKHVybCkpIHsKKyAgICAgICAgY2hh
ciAqdG9rZW4gPSBzdHJzdHIodXJsLCAiOi8vIik7CisgICAgICAgIGlmICghdG9rZW4pIHsKKyAg
ICAgICAgICAgIGludCBsZW4gPSBzdHJsZW4odXJsKSArIHN0cmxlbigiaHR0cDovLyIpICsgMTsK
KyAgICAgICAgICAgIGZ1bGxfdXJsID0gbWFsbG9jKGxlbik7CisgICAgICAgICAgICBpZiAoZnVs
bF91cmwpIHsKKyAgICAgICAgICAgICAgICBzcHJpbnRmKGZ1bGxfdXJsLCAiaHR0cDovLyVzIiwg
dXJsKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVsbF91cmw7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBz
dHJkdXAodXJsKTsKK30KKworc3RhdGljIHZvaWQKK29uX3VybGJhcl9rZXlfZG93bih2b2lkICpk
YXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQoreworICAg
IEV2YXNfRXZlbnRfS2V5X0Rvd24gKmV2ID0gZXZlbnRfaW5mbzsKKyAgICBVcmxfQmFyICp1cmxC
YXIgPSAoVXJsX0JhciAqKWRhdGE7CisKKyAgICBpZiAoIWV2LT5rZXkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmICghc3RyY21wKGV2LT5rZXksICJSZXR1cm4iKSkgeworICAgICAgICBjb25z
dCBjaGFyICp1cmwgPSBlZGplX29iamVjdF9wYXJ0X3RleHRfZ2V0KHVybEJhci0+ZW50cnksICJ1
cmwudGV4dCIpOworICAgICAgICBpZiAodXJsICYmIHN0cmxlbih1cmwpKSB7CisgICAgICAgICAg
ICBjaGFyICpmdWxsX3VybCA9IF91cmxfYmFyX3VyaV93aXRoX3Byb3RvY29sX2dldCh1cmwpOwor
ICAgICAgICAgICAgaWYgKGZ1bGxfdXJsKSB7CisgICAgICAgICAgICAgICAgZXdrX3ZpZXdfdXJp
X3NldCh1cmxCYXItPndlYlZpZXcsIGZ1bGxfdXJsKTsKKyAgICAgICAgICAgICAgICBmcmVlKGZ1
bGxfdXJsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3Nl
dCh1cmxCYXItPndlYlZpZXcsIEVJTkFfVFJVRSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0
YXRpYyB2b2lkCitvbl91cmxiYXJfbW91c2VfZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFz
X09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQoreworICAgIEV2YXNfRXZlbnRfTW91c2Vf
RG93biAqZXYgPSBldmVudF9pbmZvOworICAgIFVybF9CYXIgKnVybEJhciA9IChVcmxfQmFyICop
ZGF0YTsKKworICAgIGlmIChldi0+YnV0dG9uID09IDEpIHsKKyAgICAgICAgZXZhc19vYmplY3Rf
Zm9jdXNfc2V0KHVybEJhci0+ZW50cnksIEVJTkFfVFJVRSk7CisgICAgICAgIGVkamVfb2JqZWN0
X3NpZ25hbF9lbWl0KHVybEJhci0+ZW50cnksICJlbnRyeSxhY3Rpb24sZm9jdXMiLCAiZW50cnki
KTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCitvbl91cmxiYXJfZm9jdXNfb3V0KHZvaWQgKmRh
dGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pCit7CisgICAg
VXJsX0JhciAqdXJsQmFyID0gKFVybF9CYXIgKilkYXRhOworCisgICAgZWRqZV9vYmplY3Rfc2ln
bmFsX2VtaXQodXJsQmFyLT5lbnRyeSwgImVudHJ5LGFjdGlvbix1bmZvY3VzIiwgImVudHJ5Iik7
Cit9CisKK1VybF9CYXIgKgordXJsX2Jhcl9hZGQoRXZhc19PYmplY3QgKndlYlZpZXcsIGludCB3
aWR0aCkKK3sKKyAgICBFdmFzICpldmFzOworICAgIFVybF9CYXIgKnVybF9iYXI7CisgICAgaWYg
KCF3ZWJWaWV3KQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBldmFzID0gZXZhc19vYmplY3Rf
ZXZhc19nZXQod2ViVmlldyk7CisKKyAgICB1cmxfYmFyID0gKFVybF9CYXIgKiltYWxsb2Moc2l6
ZW9mKFVybF9CYXIpKTsKKyAgICB1cmxfYmFyLT53ZWJWaWV3ID0gd2ViVmlldzsKKworICAgIHVy
bF9iYXItPmFyZWEgPSBldmFzX29iamVjdF9yZWN0YW5nbGVfYWRkKGV2YXMpOworICAgIGV2YXNf
b2JqZWN0X25hbWVfc2V0KHVybF9iYXItPmFyZWEsICJ1cmxfYmFyQXJlYSIpOworICAgIGV2YXNf
b2JqZWN0X2NvbG9yX3NldCh1cmxfYmFyLT5hcmVhLCAyNTUsIDI1NSwgMjU1LCAyNTUpOworICAg
IGV2YXNfb2JqZWN0X21vdmUodXJsX2Jhci0+YXJlYSwgMCwgMCk7CisgICAgZXZhc19vYmplY3Rf
cmVzaXplKHVybF9iYXItPmFyZWEsIHdpZHRoLCBVUkxfQkFSX0hFSUdIVCk7CisgICAgZXZhc19v
YmplY3Rfc2hvdyh1cmxfYmFyLT5hcmVhKTsKKworICAgIHVybF9iYXItPmVudHJ5ID0gZWRqZV9v
YmplY3RfYWRkKGV2YXMpOworICAgIEVpbmFfQm9vbCByZXQgPSBlZGplX29iamVjdF9maWxlX3Nl
dCh1cmxfYmFyLT5lbnRyeSwgVEhFTUVfRElSIi9lbnRyeS5lZGoiLCAiY29udHJvbC9lbnRyeS9i
YXNlL2RlZmF1bHQiKTsKKyAgICBpZiAoIXJldCkgeworICAgICAgICBldmFzX29iamVjdF9kZWwo
dXJsX2Jhci0+YXJlYSk7CisKKyAgICAgICAgZnJlZSh1cmxfYmFyKTsKKyAgICAgICAgcmV0dXJu
IE5VTEw7CisgICAgfQorCisgICAgZWRqZV9vYmplY3RfcGFydF90ZXh0X3NldCh1cmxfYmFyLT5l
bnRyeSwgInVybC50ZXh0IiwgIiIpOworICAgIGV2YXNfb2JqZWN0X21vdmUodXJsX2Jhci0+ZW50
cnksIFBBRERJTkdfU0laRSwgUEFERElOR19TSVpFKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUo
dXJsX2Jhci0+ZW50cnksIHdpZHRoIC0gUEFERElOR19TSVpFICogMiwgVVJMX0JBUl9IRUlHSFQg
LSBQQURESU5HX1NJWkUgKiAyKTsKKyAgICBldmFzX29iamVjdF9zaG93KHVybF9iYXItPmVudHJ5
KTsKKyAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQodXJsX2Jhci0+ZW50cnksIEVW
QVNfQ0FMTEJBQ0tfTU9VU0VfRE9XTiwgb25fdXJsYmFyX21vdXNlX2Rvd24sIHVybF9iYXIpOwor
ICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZCh1cmxfYmFyLT5lbnRyeSwgRVZBU19D
QUxMQkFDS19LRVlfRE9XTiwgb25fdXJsYmFyX2tleV9kb3duLCB1cmxfYmFyKTsKKyAgICBldmFz
X29iamVjdF9ldmVudF9jYWxsYmFja19hZGQodXJsX2Jhci0+ZW50cnksIEVWQVNfQ0FMTEJBQ0tf
Rk9DVVNfT1VULCBvbl91cmxiYXJfZm9jdXNfb3V0LCB1cmxfYmFyKTsKKworICAgIHJldHVybiB1
cmxfYmFyOworfQorCit2b2lkCit1cmxfYmFyX2RlbChVcmxfQmFyICp1cmxCYXIpCit7CisgICAg
aWYgKCF1cmxCYXIpCisgICAgICAgIHJldHVybjsKKworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2Nh
bGxiYWNrX2RlbCh1cmxCYXItPmVudHJ5LCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBvbl91cmxi
YXJfa2V5X2Rvd24pOworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbCh1cmxCYXIt
PmVudHJ5LCBFVkFTX0NBTExCQUNLX01PVVNFX0RPV04sIG9uX3VybGJhcl9tb3VzZV9kb3duKTsK
KyAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwodXJsQmFyLT5lbnRyeSwgRVZBU19D
QUxMQkFDS19GT0NVU19PVVQsIG9uX3VybGJhcl9mb2N1c19vdXQpOworCisgICAgZXZhc19vYmpl
Y3RfZGVsKHVybEJhci0+YXJlYSk7CisgICAgZXZhc19vYmplY3RfZGVsKHVybEJhci0+ZW50cnkp
OworICAgIGZyZWUodXJsQmFyKTsKK30KKwordm9pZAordXJsX2Jhcl91cmxfc2V0KFVybF9CYXIg
KnVybEJhciwgY29uc3QgY2hhciAqdXJsKQoreworICAgIGlmICghdXJsQmFyIHx8ICF1cmwpCisg
ICAgICAgIHJldHVybjsKKworICAgIGVkamVfb2JqZWN0X3BhcnRfdGV4dF9zZXQodXJsQmFyLT5l
bnRyeSwgInVybC50ZXh0IiwgdXJsKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hl
ci91cmxfYmFyLmggYi9Ub29scy9FV2ViTGF1bmNoZXIvdXJsX2Jhci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3
MjU3NmZiNTg4YWYzM2U5Y2YyM2IyYzBmZjRkMjIxZWU5NTI2ODUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9FV2ViTGF1bmNoZXIvdXJsX2Jhci5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgdXJs
X2Jhcl9oCisjZGVmaW5lIHVybF9iYXJfaAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAi
QyIgeworI2VuZGlmCisKKyNpbmNsdWRlIDxFdmFzLmg+CisKKyNkZWZpbmUgVVJMX0JBUl9IRUlH
SFQgMzAKKwordHlwZWRlZiBzdHJ1Y3QgX1VybF9CYXIgeworICAgIEV2YXNfT2JqZWN0ICp3ZWJW
aWV3OworICAgIEV2YXNfT2JqZWN0ICphcmVhOworICAgIEV2YXNfT2JqZWN0ICplbnRyeTsKK30g
VXJsX0JhcjsKKworVXJsX0JhciAqdXJsX2Jhcl9hZGQoRXZhc19PYmplY3QqIHdlYnZpZXcsIGlu
dCB3aWR0aCk7Cit2b2lkIHVybF9iYXJfZGVsKFVybF9CYXIgKnVybEJhcik7Cit2b2lkIHVybF9i
YXJfdXJsX3NldChVcmxfQmFyICp1cmxCYXIsIGNvbnN0IGNoYXIgKnVybCk7CisKKyNpZmRlZiBf
X2NwbHVzcGx1cworfQorI2VuZGlmCisjZW5kaWYgLy8gdXJsX2Jhcl9oCmRpZmYgLS1naXQgYS9U
b29scy9NaW5pQnJvd3Nlci9lZmwvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9NaW5pQnJvd3Nlci9l
ZmwvQ01ha2VMaXN0cy50eHQKaW5kZXggNTljZmM0ZmQxZmU0MGE2YjhmMWNhZThjM2EyMDE5NzIz
ZmRjNzAzOS4uNjE1Yzc5ZWFhZThhZGFlNjdhZGMxMmYwODRjNzA4MzAyMDZiZjNkMCAxMDA2NDQK
LS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL01p
bmlCcm93c2VyL2VmbC9DTWFrZUxpc3RzLnR4dApAQCAtMSw2ICsxLDcgQEAKIFNFVChNaW5pQnJv
d3Nlcl9ESVIgIiR7VE9PTFNfRElSfS9NaW5pQnJvd3Nlci9lZmwiKQogCiBTRVQoTWluaUJyb3dz
ZXJfU09VUkNFUworICAgICR7VE9PTFNfRElSfS9FV2ViTGF1bmNoZXIvdXJsX2Jhci5jCiAgICAg
JHtNaW5pQnJvd3Nlcl9ESVJ9L21haW4uYwogKQogCkBAIC0xMCw2ICsxMSw3IEBAIFNFVChNaW5p
QnJvd3Nlcl9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgJHtFREpFX0lOQ0xVREVfRElSU30KICAg
ICAke0VGTERFUFNfSU5DTFVERV9ESVJTfQogICAgICR7RVZBU19JTkNMVURFX0RJUlN9CisgICAg
JHtUT09MU19ESVJ9L0VXZWJMYXVuY2hlcgogICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9B
UEkvZWZsCiAgICAgJHtXRUJLSVQyX0RJUn0KICAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVQy
X0RJUn0vaW5jbHVkZQpAQCAtNjYsMyArNjgsNCBAQCBTRVRfVEFSR0VUX1BST1BFUlRJRVMoTWlu
aUJyb3dzZXIgUFJPUEVSVElFUyBGT0xERVIgIlRvb2xzIikKIAogQUREX0RFUEVOREVOQ0lFUyhN
aW5pQnJvd3NlciBmb3J3YXJkaW5nLWhlYWRlck1pbmlCcm93c2VyRWZsKQogQUREX0RFUEVOREVO
Q0lFUyhNaW5pQnJvd3NlciBmb3J3YXJkaW5nLWhlYWRlck1pbmlCcm93c2VyU291cCkKK0FERF9E
RVBFTkRFTkNJRVMoTWluaUJyb3dzZXIgVGhlbWVDb250cm9sKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
TWluaUJyb3dzZXIvZWZsL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKaW5k
ZXggYjEwNDI4OWU3MGExOWJlYjJiNmFlOTk3MzJiYjBlNWEwNTQ5YmVkZS4uZjVjNGE0YzJiNzIx
MzI2MzY2ODhiMjk5NWE1ZjExY2M0NzY4MWZlOCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dz
ZXIvZWZsL21haW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCkBAIC0xOCw2
ICsxOCw3IEBACiAgKi8KIAogI2luY2x1ZGUgIkVXZWJLaXQyLmgiCisjaW5jbHVkZSAidXJsX2Jh
ci5oIgogI2luY2x1ZGUgPEVjb3JlLmg+CiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgogI2luY2x1
ZGUgPEVpbmEuaD4KQEAgLTQxLDYgKzQyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX01pbmlCcm93c2Vy
IHsKICAgICBFdmFzICpldmFzOwogICAgIEV2YXNfT2JqZWN0ICpiZzsKICAgICBFdmFzX09iamVj
dCAqYnJvd3NlcjsKKyAgICBVcmxfQmFyICp1cmxfYmFyOwogfSBNaW5pQnJvd3NlcjsKIAogc3Rh
dGljIEVpbmFfQm9vbCBtYWluX3NpZ25hbF9leGl0KHZvaWQgKmRhdGEsIGludCBldl90eXBlLCB2
b2lkICpldikKQEAgLTEzMiw2ICsxMzQsMTMgQEAgb25fdGl0bGVfY2hhbmdlZCh2b2lkICp1c2Vy
X2RhdGEsIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2b2lkICpldmVudF9pbmZvKQogfQogCiBzdGF0
aWMgdm9pZAorb25fdXJsX2NoYW5nZWQodm9pZCAqdXNlcl9kYXRhLCBFdmFzX09iamVjdCAqd2Vi
dmlldywgdm9pZCAqZXZlbnRfaW5mbykKK3sKKyAgICBNaW5pQnJvd3NlciAqYXBwID0gKE1pbmlC
cm93c2VyICopdXNlcl9kYXRhOworICAgIHVybF9iYXJfdXJsX3NldChhcHAtPnVybF9iYXIsIGV3
a192aWV3X3VyaV9nZXQoYXBwLT5icm93c2VyKSk7Cit9CisKK3N0YXRpYyB2b2lkCiBvbl9wcm9n
cmVzcyh2b2lkICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2b2lkICpldmVudF9p
bmZvKQogewogICAgIE1pbmlCcm93c2VyICphcHAgPSAoTWluaUJyb3dzZXIgKil1c2VyX2RhdGE7
CkBAIC0xODUsMTQgKzE5NCwxOCBAQCBzdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJDcmVhdGUo
Y29uc3QgY2hhciAqdXJsKQogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAt
PmJyb3dzZXIsICJsb2FkLGVycm9yIiwgb25fZXJyb3IsIGFwcCk7CiAgICAgZXZhc19vYmplY3Rf
c21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgImxvYWQscHJvZ3Jlc3MiLCBvbl9wcm9n
cmVzcywgYXBwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBwLT5icm93
c2VyLCAidGl0bGUsY2hhbmdlZCIsIG9uX3RpdGxlX2NoYW5nZWQsIGFwcCk7CisgICAgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgInVyaSxjaGFuZ2VkIiwgb25f
dXJsX2NoYW5nZWQsIGFwcCk7CiAKICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQo
YXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBvbl9rZXlfZG93biwgYXBwKTsK
IAogICAgIGV2YXNfb2JqZWN0X3NpemVfaGludF93ZWlnaHRfc2V0KGFwcC0+YnJvd3NlciwgRVZB
U19ISU5UX0VYUEFORCwgRVZBU19ISU5UX0VYUEFORCk7Ci0gICAgZXZhc19vYmplY3RfcmVzaXpl
KGFwcC0+YnJvd3NlciwgREVGQVVMVF9XSURUSCwgREVGQVVMVF9IRUlHSFQpOworICAgIGV2YXNf
b2JqZWN0X21vdmUoYXBwLT5icm93c2VyLCAwLCBVUkxfQkFSX0hFSUdIVCk7CisgICAgZXZhc19v
YmplY3RfcmVzaXplKGFwcC0+YnJvd3NlciwgREVGQVVMVF9XSURUSCwgREVGQVVMVF9IRUlHSFQg
LSBVUkxfQkFSX0hFSUdIVCk7CiAgICAgZXZhc19vYmplY3Rfc2hvdyhhcHAtPmJyb3dzZXIpOwog
ICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldChhcHAtPmJyb3dzZXIsIEVJTkFfVFJVRSk7CiAKKyAg
ICBhcHAtPnVybF9iYXIgPSB1cmxfYmFyX2FkZChhcHAtPmJyb3dzZXIsIERFRkFVTFRfV0lEVEgp
OworCiAgICAgZXdrX3ZpZXdfdXJpX3NldChhcHAtPmJyb3dzZXIsIHVybCk7CiAKICAgICByZXR1
cm4gYXBwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154008</attachid>
            <date>2012-07-24 03:38:16 -0700</date>
            <delta_ts>2012-08-06 00:28:02 -0700</delta_ts>
            <desc>rebased for style bot2</desc>
            <filename>bug-63966-20120724193807.patch</filename>
            <type>text/plain</type>
            <size>22580</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNDUxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWJiMjQ1OTNiOTRmMDBhZjY1NDA3YzQ2ZDZlYTQyZjE1
YmQyNmQ0YS4uNWE5MGJjMWMyMjE1NzE1NTg5ZjczOTJjNDA5ZWY4YTYxOWVmYjA2NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ2
IEBACiAyMDEyLTA3LTI0ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAor
ICAgICAgICBbRUZMXSBBZGQgdXJsIGJhciB0byBFV2ViTGF1bmNoZXIgYW5kIE1pbmlCcm93c2Vy
L0VmbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYz
OTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRVdl
YkxhdW5jaGVyIGFuZCBNaW5pQnJvd3Nlci9FZmwgZGlkIG5vdCBoYXZlIGZ1bmN0aW9uYWxpdHkg
dGhhdCB1c2VycworICAgICAgICBuYXZpZ2F0ZXMgdGhlIHNpdGUgd2hpY2ggdGhleSB3YW50Lgor
ICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIHVybGJhciBhbmQgZnVuY3Rpb25hbGl0eSB0byBs
b2FkIHVybCB3aGljaCB1c2VycyB3YW50LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgIEFkZGVkIHRvIHNoYXJlIHVybGJhciB0aGVtZSBmb3IgYm90aCBFV2ViTGF1bmNoZXIg
YW5kIE1pbmlCcm93c2VyL0VmbC4KKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgIEFkZGVkIHVybGJhci5jIGFuZCBkZXBlbmRlbmN5IG9mIHVybGJhciB0aGVt
ZS4KKyAgICAgICAgSW4gYWRkaXRpb24sIGNoYW5nZWQgbWFjcm8gbmFtZSB0byBUSEVNRV9ESVIg
dG8gc2hhcmUgdGhlIGNvZGUgZWFzaWx5LgorICAgICAgICAqIEVXZWJMYXVuY2hlci9Db250cm9s
VGhlbWUvQ01ha2VMaXN0cy50eHQ6IEFkZGVkIGZvciB1cmxiYXIgdGhlbWUuCisgICAgICAgICog
RVdlYkxhdW5jaGVyL0NvbnRyb2xUaGVtZS9lbnRyeS5lZGM6IEltcGxlbWVudGVkIHVybGJhciB0
aGVtZS4KKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvbWFpbi5jOgorICAgICAgICBJbXBsZW1lbnRl
ZCB0byB1c2UgdGhlIHVybGJhci4KKyAgICAgICAgSW4gYWRkaXRpb24sIHJlbW92ZSB1bm5lY2Vz
c2FyeSBib3JkZXIgb2Ygd2VidmlldyB0byBjb250cm9sIHdlYnZpZXcgYW5kIHVybGJhciBlYXNp
bHkuCisgICAgICAgIChfRUxhdW5jaGVyKToKKyAgICAgICAgKG9uX3VybF9jaGFuZ2VkKToKKyAg
ICAgICAgKGJyb3dzZXJDcmVhdGUpOgorICAgICAgICAoY2xvc2VXaW5kb3cpOgorICAgICAgICAo
ZmluZFRoZW1lUGF0aCk6CisgICAgICAgICogRVdlYkxhdW5jaGVyL3VybF9iYXIuYzogSW1wbGVt
ZW50ZWQgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdXJsYmFyLgorICAgICAgICAoX3VybF9iYXJfdXJp
X3dpdGhfcHJvdG9jb2xfZ2V0KToKKyAgICAgICAgKG9uX3VybGJhcl9rZXlfZG93bik6CisgICAg
ICAgIChvbl91cmxiYXJfbW91c2VfZG93bik6CisgICAgICAgIChvbl91cmxiYXJfZm9jdXNfb3V0
KToKKyAgICAgICAgKHVybF9iYXJfYWRkKToKKyAgICAgICAgKHVybF9iYXJfZGVsKToKKyAgICAg
ICAgKHVybF9iYXJfdXJsX3NldCk6CisgICAgICAgICogRVdlYkxhdW5jaGVyL3VybF9iYXIuaDog
QWRkZWQuCisgICAgICAgICogTWluaUJyb3dzZXIvZWZsL0NNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIE1pbmlCcm93c2VyL2VmbC9tYWluLmM6IEltcGxlbWVudGVkIHRvIHVzZSB0aGUgdXJsYmFy
LgorICAgICAgICAoX01pbmlCcm93c2VyKToKKyAgICAgICAgKG9uX3VybF9jaGFuZ2VkKToKKyAg
ICAgICAgKGJyb3dzZXJDcmVhdGUpOgorCisyMDEyLTA3LTI0ICBSeXVhbiBDaG9pICA8cnl1YW4u
Y2hvaUBzYW1zdW5nLmNvbT4KKwogICAgICAgICBbRUZMXSBFV2ViTGF1bmNoZXIgc2hvdWxkIG5v
dCByZXF1aXJlIGNvbmZpZy5oIGluIHRoZSBzdHlsZSBjaGVjawogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTIwNzAKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
Q01ha2VMaXN0cy50eHQgYi9Ub29scy9DTWFrZUxpc3RzLnR4dAppbmRleCAyZjJiNjBjZDNmODAw
YWE2ZmE1OGQyZDU3NjI0YzlkMjBkMmFhYzY4Li45NTFjMjQxZWM0YzBmYzVmMzExYTllMTZkMDk4
MGJiMTNhN2JiODk4IDEwMDY0NAotLS0gYS9Ub29scy9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29s
cy9DTWFrZUxpc3RzLnR4dApAQCAtMyw2ICszLDggQEAgSUYgKEVOQUJMRV9XRUJLSVQyKQogRU5E
SUYgKCkKIAogSUYgKCIke1BPUlR9IiBTVFJFUVVBTCAiRWZsIikKKyAgICBBRERfU1VCRElSRUNU
T1JZKEVXZWJMYXVuY2hlci9Db250cm9sVGhlbWUpCisKICAgICBJRiAoRU5BQkxFX1dFQktJVCkK
ICAgICAgICAgQUREX1NVQkRJUkVDVE9SWShEdW1wUmVuZGVyVHJlZS9lZmwpCiAgICAgICAgIEFE
RF9TVUJESVJFQ1RPUlkoRVdlYkxhdW5jaGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRVdlYkxhdW5j
aGVyL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvRVdlYkxhdW5jaGVyL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGYyYzI2M2YzMzVlNWUxNDE5YWY3ZWMzMGJjZTQ3MDA5OWIzNWIwMGEuLjEyYTdlOGIwZDMx
ODg2MTQ2MzZkNmE3YzU3MjI1YTFjMTdlZGUyZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0VXZWJMYXVu
Y2hlci9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9FV2ViTGF1bmNoZXIvQ01ha2VMaXN0cy50
eHQKQEAgLTEsNCArMSw1IEBACiBTRVQoRVdlYkxhdW5jaGVyX1NPVVJDRVMKKyAgICAke1RPT0xT
X0RJUn0vRVdlYkxhdW5jaGVyL3VybF9iYXIuYwogICAgICR7VE9PTFNfRElSfS9FV2ViTGF1bmNo
ZXIvbWFpbi5jCiApCiAKQEAgLTM2LDEwICszNywxMiBAQCBTRVQoRVdlYkxhdW5jaGVyX0xJTktf
RkxBR1MKICAgICAke0xJQlNPVVAyNF9MREZMQUdTfQogKQogCi1BRERfREVGSU5JVElPTlMoLURE
QVRBX0RJUj1cIiR7VEhFTUVfQklOQVJZX0RJUn1cIikKK0FERF9ERUZJTklUSU9OUygtRFRIRU1F
X0RJUj1cIiR7VEhFTUVfQklOQVJZX0RJUn1cIikKIAogSU5DTFVERV9ESVJFQ1RPUklFUygke0VX
ZWJMYXVuY2hlcl9JTkNMVURFX0RJUkVDVE9SSUVTfSkKIEFERF9FWEVDVVRBQkxFKEVXZWJMYXVu
Y2hlciAke0VXZWJMYXVuY2hlcl9TT1VSQ0VTfSkKIFRBUkdFVF9MSU5LX0xJQlJBUklFUyhFV2Vi
TGF1bmNoZXIgJHtFV2ViTGF1bmNoZXJfTElCUkFSSUVTfSkKIEFERF9UQVJHRVRfUFJPUEVSVElF
UyhFV2ViTGF1bmNoZXIgTElOS19GTEFHUyAiJHtFV2ViTGF1bmNoZXJfTElOS19GTEFHU30iKQog
U0VUX1RBUkdFVF9QUk9QRVJUSUVTKEVXZWJMYXVuY2hlciBQUk9QRVJUSUVTIEZPTERFUiAiVG9v
bHMiKQorCitBRERfREVQRU5ERU5DSUVTKEVXZWJMYXVuY2hlciBDb250cm9sVGhlbWUpCmRpZmYg
LS1naXQgYS9Ub29scy9FV2ViTGF1bmNoZXIvQ29udHJvbFRoZW1lL0NNYWtlTGlzdHMudHh0IGIv
VG9vbHMvRVdlYkxhdW5jaGVyL0NvbnRyb2xUaGVtZS9DTWFrZUxpc3RzLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42OGFhOGNmMTlhYjNmYWM3ZGNiMDBkYTRjMGE5ODU4Y2VjZGM0NTgzCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvRVdlYkxhdW5jaGVyL0NvbnRyb2xUaGVtZS9DTWFrZUxpc3RzLnR4dApAQCAt
MCwwICsxLDggQEAKK1NFVChDb250cm9sVGhlbWVfRElSICIke1RPT0xTX0RJUn0vRVdlYkxhdW5j
aGVyL0NvbnRyb2xUaGVtZSIpCisKK0FERF9DVVNUT01fVEFSR0VUKENvbnRyb2xUaGVtZSBBTEwK
KyAgICBDT01NQU5EICR7RURKRV9DQ19FWEVDVVRBQkxFfSAtdiAke0NvbnRyb2xUaGVtZV9ESVJ9
L2VudHJ5LmVkYyAke1RIRU1FX0JJTkFSWV9ESVJ9L2VudHJ5LmVkagorICAgIERFUEVORFMKKyAg
ICAgICAgJHtDb250cm9sVGhlbWVfRElSfS9lbnRyeS5lZGMKKyAgICBWRVJCQVRJTQorKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRVdlYkxhdW5jaGVyL0NvbnRyb2xUaGVtZS9lbnRyeS5lZGMgYi9Ub29s
cy9FV2ViTGF1bmNoZXIvQ29udHJvbFRoZW1lL2VudHJ5LmVkYwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODhmYmI0
OWQxY2ZmMWE1ZDIzZDg4MWJlZjkwMWJjZjAyMzkyMmRmCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvRVdlYkxhdW5jaGVyL0NvbnRyb2xUaGVtZS9lbnRyeS5lZGMKQEAgLTAsMCArMSwxNDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2Nv
bGxlY3Rpb25zIHsKKyAgIGdyb3VwIHsKKyAgICAgIG5hbWU6ICJjb250cm9sL2VudHJ5L2Jhc2Uv
ZGVmYXVsdCI7CisgICAgICBzdHlsZXMgeworICAgICAgICAgc3R5bGUgeworICAgICAgICAgICAg
bmFtZTogImVudHJ5X3RleHRibG9ja19zdHlsZSI7CisgICAgICAgICAgICBiYXNlOiAiZm9udD1S
b21hbiBmb250X3NpemU9MTQgY29sb3I9IzAwMDAwMCB3cmFwPW1peGVkIjsKKyAgICAgICAgIH0K
KyAgICAgIH0KKyAgICAgIHBhcnRzIHsKKyAgICAgICAgIHBhcnQgeworICAgICAgICAgICAgbmFt
ZTogInVybC50ZXh0IjsKKyAgICAgICAgICAgIHR5cGU6IFRFWFRCTE9DSzsKKyAgICAgICAgICAg
IG1vdXNlX2V2ZW50czogMTsKKyAgICAgICAgICAgIHNjYWxlOiAxOworICAgICAgICAgICAgZW50
cnlfbW9kZTogRURJVEFCTEU7CisgICAgICAgICAgICBtdWx0aWxpbmU6IDE7CisgICAgICAgICAg
ICBzb3VyY2U6ICJjb250cm9sL2VudHJ5L3NlbGVjdGlvbi9kZWZhdWx0IjsgLy8gc2VsZWN0aW9u
IHVuZGVyCisgICAgICAgICAgICBzb3VyY2U0OiAiY29udHJvbC9lbnRyeS9jdXJzb3IvZGVmYXVs
dCI7IC8vIGN1cnNvciBvdmVyCisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7CisgICAgICAgICAg
ICAgICBzdGF0ZTogImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgICAgIGZpeGVkOiAxIDA7Cisg
ICAgICAgICAgICAgICB0ZXh0IHsKKyAgICAgICAgICAgICAgICAgIHN0eWxlOiAiZW50cnlfdGV4
dGJsb2NrX3N0eWxlIjsKKyAgICAgICAgICAgICAgICAgIG1pbjogMCAxOworICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgfQorICAgICAgcHJvZ3JhbXMg
eworICAgICAgICAgcHJvZ3JhbSB7CisgICAgICAgICAgICBuYW1lOiAiZm9jdXMiOworICAgICAg
ICAgICAgc2lnbmFsOiAibG9hZCI7CisgICAgICAgICAgICBzb3VyY2U6ICIiOworICAgICAgICAg
ICAgYWN0aW9uOiBGT0NVU19TRVQ7CisgICAgICAgICAgICB0YXJnZXQ6ICJ1cmwudGV4dCI7Cisg
ICAgICAgICB9CisgICAgICB9CisgICB9CisKKyAgIGdyb3VwIHsKKyAgICAgIG5hbWU6ICJjb250
cm9sL2VudHJ5L2N1cnNvci9kZWZhdWx0IjsKKyAgICAgIHBhcnRzIHsKKyAgICAgICAgIHBhcnQg
eworICAgICAgICAgICAgbmFtZTogImNsaXAiOworICAgICAgICAgICAgdHlwZTogUkVDVDsKKyAg
ICAgICAgICAgIG1vdXNlX2V2ZW50czogMDsKKyAgICAgICAgICAgIHNjYWxlOiAxOworICAgICAg
ICAgICAgZGVzY3JpcHRpb24geworICAgICAgICAgICAgICAgc3RhdGU6ICJkZWZhdWx0IiAwLjA7
CisgICAgICAgICAgICAgICByZWwxLm9mZnNldDogLTEwIDA7CisgICAgICAgICAgICAgICByZWwy
Lm9mZnNldDogOSA5OworICAgICAgICAgICAgICAgdmlzaWJsZTogMDsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGRlc2NyaXB0aW9uIHsKKyAgICAgICAgICAgICAgIHN0YXRlOiAiZm9jdXNl
ZCIgMC4wOworICAgICAgICAgICAgICAgaW5oZXJpdDogImRlZmF1bHQiIDAuMDsKKyAgICAgICAg
ICAgICAgIHZpc2libGU6IDE7CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgICBw
YXJ0IHsKKyAgICAgICAgICAgIG5hbWU6ICJjdXJzb3IiOworICAgICAgICAgICAgdHlwZTogUkVD
VDsKKyAgICAgICAgICAgIG1vdXNlX2V2ZW50czogMDsKKyAgICAgICAgICAgIHNjYWxlOiAxOwor
ICAgICAgICAgICAgY2xpcF90bzogImNsaXAiOworICAgICAgICAgICAgZGVzY3JpcHRpb24gewor
ICAgICAgICAgICAgICAgc3RhdGU6ICJkZWZhdWx0IiAwLjA7CisgICAgICAgICAgICAgICBtaW46
IDEgMDsKKyAgICAgICAgICAgICAgIGZpeGVkOiAxIDA7CisgICAgICAgICAgICAgICBhbGlnbjog
MC41IDAuNTsKKyAgICAgICAgICAgICAgIHZpc2libGU6IDE7CisgICAgICAgICAgICAgICByZWwx
IHsKKyAgICAgICAgICAgICAgICAgIHJlbGF0aXZlOiAwLjAgIDAuMDsKKyAgICAgICAgICAgICAg
ICAgIG9mZnNldDogMCAyOworICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgcmVsMiB7
CisgICAgICAgICAgICAgICAgICByZWxhdGl2ZTogMC4wICAxLjA7CisgICAgICAgICAgICAgICAg
ICBvZmZzZXQ6IDAgLTI7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBjb2xvcjog
MCAwIDAgMjU1OyAvLyBjdXJzb3IgY29sb3IKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAg
ICAgIH0KKyAgICAgIHByb2dyYW1zIHsKKyAgICAgICAgIHByb2dyYW0geworICAgICAgICAgICAg
bmFtZTogImZvY3VzZWQiOworICAgICAgICAgICAgc2lnbmFsOiAiZW50cnksYWN0aW9uLGZvY3Vz
IjsKKyAgICAgICAgICAgIHNvdXJjZTogImVudHJ5IjsKKyAgICAgICAgICAgIGFjdGlvbjogU1RB
VEVfU0VUICJmb2N1c2VkIiAwLjA7CisgICAgICAgICAgICB0YXJnZXQ6ICJjbGlwIjsKKyAgICAg
ICAgIH0KKyAgICAgICAgIHByb2dyYW0geworICAgICAgICAgICAgbmFtZTogInVuZm9jdXNlZCI7
CisgICAgICAgICAgICBzaWduYWw6ICJlbnRyeSxhY3Rpb24sdW5mb2N1cyI7CisgICAgICAgICAg
ICBzb3VyY2U6ICJlbnRyeSI7CisgICAgICAgICAgICBhY3Rpb246IFNUQVRFX1NFVCAiZGVmYXVs
dCIgMC4wOworICAgICAgICAgICAgdGFyZ2V0OiAiY2xpcCI7CisgICAgICAgICB9CisgICAgICB9
CisgICB9CisKKyAgIGdyb3VwIHsKKyAgICAgIG5hbWU6ICJjb250cm9sL2VudHJ5L3NlbGVjdGlv
bi9kZWZhdWx0IjsKKyAgICAgIHBhcnRzIHsKKyAgICAgICAgIHBhcnQgeworICAgICAgICAgICAg
bmFtZTogImJnIjsKKyAgICAgICAgICAgIHR5cGU6IFJFQ1Q7CisgICAgICAgICAgICBzY2FsZTog
MTsKKyAgICAgICAgICAgIG1vdXNlX2V2ZW50czogMDsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9u
IHsKKyAgICAgICAgICAgICAgIHN0YXRlOiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAg
Y29sb3I6IDEzOCAxODMgMjIzIDEyODsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAg
IH0KKyAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMgYi9Ub29s
cy9FV2ViTGF1bmNoZXIvbWFpbi5jCmluZGV4IDQwODlkNmVjYTI0YTM2MDk0Njg1MTlhYWM5Mzhm
ZTE4ZmVkMDRjNTguLjA2NzAzY2ZmOTY1ZmJmNjE2ODVkZmVhMDgxZDVjZGE3NzhjZjcxMjkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMKKysrIGIvVG9vbHMvRVdlYkxhdW5j
aGVyL21haW4uYwpAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiRVdlYktpdC5oIgogCi0j
aW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlICJ1cmxfYmFyLmgiCiAjaW5jbHVkZSA8RWNvcmUu
aD4KICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWNvcmVfRmlsZS5oPgpAQCAt
MzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPEVjb3JlX1guaD4KICNpbmNsdWRlIDxFZGplLmg+CiAj
aW5jbHVkZSA8RXZhcy5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8aW50dHlwZXMu
aD4KICNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMTQzLDYgKzE0
NCw3IEBAIHR5cGVkZWYgc3RydWN0IF9FTGF1bmNoZXIgewogICAgIEV2YXMgKmV2YXM7CiAgICAg
RXZhc19PYmplY3QgKmJnOwogICAgIEV2YXNfT2JqZWN0ICpicm93c2VyOworICAgIFVybF9CYXIg
KnVybF9iYXI7CiAgICAgY29uc3QgY2hhciAqdGhlbWU7CiAgICAgY29uc3QgY2hhciAqdXNlckFn
ZW50OwogICAgIGNvbnN0IGNoYXIgKmJhY2tpbmdTdG9yZTsKQEAgLTQwMiw2ICs0MDQsMTMgQEAg
b25faW5wdXRtZXRob2RfY2hhbmdlZCh2b2lkKiB1c2VyX2RhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2
aWV3LCB2b2lkKiBldmVudF9pbmZvKQogfQogCiBzdGF0aWMgdm9pZAorb25fdXJsX2NoYW5nZWQo
dm9pZCogdXNlcl9kYXRhLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5mbykK
K3sKKyAgICBFTGF1bmNoZXIgKmFwcCA9IChFTGF1bmNoZXIgKil1c2VyX2RhdGE7CisgICAgdXJs
X2Jhcl91cmxfc2V0KGFwcC0+dXJsX2JhciwgZXdrX3ZpZXdfdXJpX2dldChhcHAtPmJyb3dzZXIp
KTsKK30KKworc3RhdGljIHZvaWQKIG9uX21vdXNlX2Rvd24odm9pZCogZGF0YSwgRXZhcyogZSwg
RXZhc19PYmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2ZW50X2luZm8pCiB7CiAgICAgRXZhc19FdmVu
dF9Nb3VzZV9Eb3duICpldiA9IChFdmFzX0V2ZW50X01vdXNlX0Rvd24qKSBldmVudF9pbmZvOwpA
QCAtNjk1LDYgKzcwNCw3IEBAIGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBj
aGFyICp0aGVtZSwgY29uc3QgY2hhciAqdXNlckFnZW50LCBFaW5hX1JlCiAgICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgIm1lbnViYXIsdmlzaWJsZSxnZXQi
LCBvbl9tZW51YmFyX3Zpc2libGVfZ2V0LCBhcHApOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJ0b29sdGlwLHRleHQsc2V0Iiwgb25fdG9vbHRpcF90
ZXh0X3NldCwgYXBwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBwLT5i
cm93c2VyLCAiaW5wdXRtZXRob2QsY2hhbmdlZCIsIG9uX2lucHV0bWV0aG9kX2NoYW5nZWQsIGFw
cCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgInVy
aSxjaGFuZ2VkIiwgb25fdXJsX2NoYW5nZWQsIGFwcCk7CiAKIC8qICAgICBld2tfY2FsbGJhY2tf
cmVzaXplX3JlcXVlc3RlZF9hZGQoYXBwLT5icm93c2VyLCBvbl9yZXNpemVfcmVxdWVzdGVkLCBh
cHAtPmVlKTsgKi8KIApAQCAtNzA0LDggKzcxNCwxMCBAQCBicm93c2VyQ3JlYXRlKGNvbnN0IGNo
YXIgKnVybCwgY29uc3QgY2hhciAqdGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9S
ZQogICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsIEVWQVNf
Q0FMTEJBQ0tfRk9DVVNfT1VULCBvbl9mb2N1c19vdXQsIGFwcCk7CiAgICAgZXZhc19vYmplY3Rf
ZXZlbnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19ERUwsIG9uX2Jy
b3dzZXJfZGVsLCBhcHApOwogCi0gICAgZXZhc19vYmplY3RfbW92ZShhcHAtPmJyb3dzZXIsIDEw
LCAxMCk7Ci0gICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YnJvd3NlciwgZ2VvbWV0cnkudyAt
IDIwLCBnZW9tZXRyeS5oIC0gMjApOworICAgIGFwcC0+dXJsX2JhciA9IHVybF9iYXJfYWRkKGFw
cC0+YnJvd3NlciwgREVGQVVMVF9XSURUSCk7CisKKyAgICBldmFzX29iamVjdF9tb3ZlKGFwcC0+
YnJvd3NlciwgMCwgVVJMX0JBUl9IRUlHSFQpOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShhcHAt
PmJyb3dzZXIsIGdlb21ldHJ5LncsIGdlb21ldHJ5LmggLSBVUkxfQkFSX0hFSUdIVCk7CiAKICAg
ICBpZiAodXJsICYmICh1cmxbMF0gIT0gJ1wwJykpCiAgICAgICAgIGV3a192aWV3X3VyaV9zZXQo
YXBwLT5icm93c2VyLCB1cmwpOwpAQCAtNzM5LDYgKzc1MSw3IEBAIGNsb3NlV2luZG93KEVjb3Jl
X0V2YXMgKmVlKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHdpbmRvd3MgPSBlaW5h
X2xpc3RfcmVtb3ZlKHdpbmRvd3MsIGFwcCk7CisgICAgdXJsX2Jhcl9kZWwoKChFTGF1bmNoZXIg
KilhcHApLT51cmxfYmFyKTsKICAgICBicm93c2VyRGVzdHJveShlZSk7CiAgICAgZnJlZShhcHAp
OwogfQpAQCAtNzYwLDEyICs3NzMsMTIgQEAgbWFpbl9zaWduYWxfZXhpdCh2b2lkICpkYXRhLCBp
bnQgZXZfdHlwZSwgdm9pZCAqZXYpCiBzdGF0aWMgY2hhciAqCiBmaW5kVGhlbWVQYXRoKGNvbnN0
IGNoYXIgKnRoZW1lKQogewotICAgIGNvbnN0IGNoYXIgKmRlZmF1bHRUaGVtZSA9IERBVEFfRElS
Ii9kZWZhdWx0LmVkaiI7CisgICAgY29uc3QgY2hhciAqZGVmYXVsdF90aGVtZSA9IFRIRU1FX0RJ
UiIvZGVmYXVsdC5lZGoiOwogICAgIGNoYXIgKnJwYXRoOwogICAgIHN0cnVjdCBzdGF0IHN0Owog
CiAgICAgaWYgKCF0aGVtZSkKLSAgICAgICAgdGhlbWUgPSBkZWZhdWx0VGhlbWU7CisgICAgICAg
IHRoZW1lID0gZGVmYXVsdF90aGVtZTsKIAogICAgIHJwYXRoID0gZWNvcmVfZmlsZV9yZWFscGF0
aCh0aGVtZSk7CiAgICAgaWYgKCFzdHJsZW4ocnBhdGgpIHx8IHN0YXQocnBhdGgsICZzdCkpIHsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hlci91cmxfYmFyLmMgYi9Ub29scy9FV2ViTGF1
bmNoZXIvdXJsX2Jhci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkZGRjYmMxMmUxZGY2MTYyNDAzODNmODQ5ZjE2
ZWRjMzE4ZTQzM2UKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9FV2ViTGF1bmNoZXIvdXJsX2Jh
ci5jCkBAIC0wLDAgKzEsMTU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcg
RWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAidXJsX2Jhci5oIgorCisjaW5jbHVkZSA8RWRq
ZS5oPgorCisjZGVmaW5lIFBBRERJTkdfU0laRSA1CisKK3N0YXRpYyBjaGFyICoKK191cmxfYmFy
X3VyaV93aXRoX3Byb3RvY29sX2dldChjb25zdCBjaGFyICp1cmwpCit7CisgICAgY2hhciAqZnVs
bF91cmwgPSBOVUxMOworICAgIGlmICh1cmwgJiYgc3RybGVuKHVybCkpIHsKKyAgICAgICAgY2hh
ciAqdG9rZW4gPSBzdHJzdHIodXJsLCAiOi8vIik7CisgICAgICAgIGlmICghdG9rZW4pIHsKKyAg
ICAgICAgICAgIGludCBsZW4gPSBzdHJsZW4odXJsKSArIHN0cmxlbigiaHR0cDovLyIpICsgMTsK
KyAgICAgICAgICAgIGZ1bGxfdXJsID0gbWFsbG9jKGxlbik7CisgICAgICAgICAgICBpZiAoZnVs
bF91cmwpIHsKKyAgICAgICAgICAgICAgICBzcHJpbnRmKGZ1bGxfdXJsLCAiaHR0cDovLyVzIiwg
dXJsKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVsbF91cmw7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBz
dHJkdXAodXJsKTsKK30KKworc3RhdGljIHZvaWQKK29uX3VybGJhcl9rZXlfZG93bih2b2lkICpk
YXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQoreworICAg
IEV2YXNfRXZlbnRfS2V5X0Rvd24gKmV2ID0gZXZlbnRfaW5mbzsKKyAgICBVcmxfQmFyICp1cmxC
YXIgPSAoVXJsX0JhciAqKWRhdGE7CisKKyAgICBpZiAoIWV2LT5rZXkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmICghc3RyY21wKGV2LT5rZXksICJSZXR1cm4iKSkgeworICAgICAgICBjb25z
dCBjaGFyICp1cmwgPSBlZGplX29iamVjdF9wYXJ0X3RleHRfZ2V0KHVybEJhci0+ZW50cnksICJ1
cmwudGV4dCIpOworICAgICAgICBpZiAodXJsICYmIHN0cmxlbih1cmwpKSB7CisgICAgICAgICAg
ICBjaGFyICpmdWxsX3VybCA9IF91cmxfYmFyX3VyaV93aXRoX3Byb3RvY29sX2dldCh1cmwpOwor
ICAgICAgICAgICAgaWYgKGZ1bGxfdXJsKSB7CisgICAgICAgICAgICAgICAgZXdrX3ZpZXdfdXJp
X3NldCh1cmxCYXItPndlYlZpZXcsIGZ1bGxfdXJsKTsKKyAgICAgICAgICAgICAgICBmcmVlKGZ1
bGxfdXJsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3Nl
dCh1cmxCYXItPndlYlZpZXcsIEVJTkFfVFJVRSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0
YXRpYyB2b2lkCitvbl91cmxiYXJfbW91c2VfZG93bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFz
X09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQoreworICAgIEV2YXNfRXZlbnRfTW91c2Vf
RG93biAqZXYgPSBldmVudF9pbmZvOworICAgIFVybF9CYXIgKnVybEJhciA9IChVcmxfQmFyICop
ZGF0YTsKKworICAgIGlmIChldi0+YnV0dG9uID09IDEpIHsKKyAgICAgICAgZXZhc19vYmplY3Rf
Zm9jdXNfc2V0KHVybEJhci0+ZW50cnksIEVJTkFfVFJVRSk7CisgICAgICAgIGVkamVfb2JqZWN0
X3NpZ25hbF9lbWl0KHVybEJhci0+ZW50cnksICJlbnRyeSxhY3Rpb24sZm9jdXMiLCAiZW50cnki
KTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCitvbl91cmxiYXJfZm9jdXNfb3V0KHZvaWQgKmRh
dGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pCit7CisgICAg
VXJsX0JhciAqdXJsQmFyID0gKFVybF9CYXIgKilkYXRhOworCisgICAgZWRqZV9vYmplY3Rfc2ln
bmFsX2VtaXQodXJsQmFyLT5lbnRyeSwgImVudHJ5LGFjdGlvbix1bmZvY3VzIiwgImVudHJ5Iik7
Cit9CisKK1VybF9CYXIgKgordXJsX2Jhcl9hZGQoRXZhc19PYmplY3QgKndlYlZpZXcsIGludCB3
aWR0aCkKK3sKKyAgICBFdmFzICpldmFzOworICAgIFVybF9CYXIgKnVybF9iYXI7CisgICAgaWYg
KCF3ZWJWaWV3KQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBldmFzID0gZXZhc19vYmplY3Rf
ZXZhc19nZXQod2ViVmlldyk7CisKKyAgICB1cmxfYmFyID0gKFVybF9CYXIgKiltYWxsb2Moc2l6
ZW9mKFVybF9CYXIpKTsKKyAgICB1cmxfYmFyLT53ZWJWaWV3ID0gd2ViVmlldzsKKworICAgIHVy
bF9iYXItPmFyZWEgPSBldmFzX29iamVjdF9yZWN0YW5nbGVfYWRkKGV2YXMpOworICAgIGV2YXNf
b2JqZWN0X25hbWVfc2V0KHVybF9iYXItPmFyZWEsICJ1cmxfYmFyQXJlYSIpOworICAgIGV2YXNf
b2JqZWN0X2NvbG9yX3NldCh1cmxfYmFyLT5hcmVhLCAyNTUsIDI1NSwgMjU1LCAyNTUpOworICAg
IGV2YXNfb2JqZWN0X21vdmUodXJsX2Jhci0+YXJlYSwgMCwgMCk7CisgICAgZXZhc19vYmplY3Rf
cmVzaXplKHVybF9iYXItPmFyZWEsIHdpZHRoLCBVUkxfQkFSX0hFSUdIVCk7CisgICAgZXZhc19v
YmplY3Rfc2hvdyh1cmxfYmFyLT5hcmVhKTsKKworICAgIHVybF9iYXItPmVudHJ5ID0gZWRqZV9v
YmplY3RfYWRkKGV2YXMpOworICAgIEVpbmFfQm9vbCByZXQgPSBlZGplX29iamVjdF9maWxlX3Nl
dCh1cmxfYmFyLT5lbnRyeSwgVEhFTUVfRElSIi9lbnRyeS5lZGoiLCAiY29udHJvbC9lbnRyeS9i
YXNlL2RlZmF1bHQiKTsKKyAgICBpZiAoIXJldCkgeworICAgICAgICBldmFzX29iamVjdF9kZWwo
dXJsX2Jhci0+YXJlYSk7CisKKyAgICAgICAgZnJlZSh1cmxfYmFyKTsKKyAgICAgICAgcmV0dXJu
IE5VTEw7CisgICAgfQorCisgICAgZWRqZV9vYmplY3RfcGFydF90ZXh0X3NldCh1cmxfYmFyLT5l
bnRyeSwgInVybC50ZXh0IiwgIiIpOworICAgIGV2YXNfb2JqZWN0X21vdmUodXJsX2Jhci0+ZW50
cnksIFBBRERJTkdfU0laRSwgUEFERElOR19TSVpFKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUo
dXJsX2Jhci0+ZW50cnksIHdpZHRoIC0gUEFERElOR19TSVpFICogMiwgVVJMX0JBUl9IRUlHSFQg
LSBQQURESU5HX1NJWkUgKiAyKTsKKyAgICBldmFzX29iamVjdF9zaG93KHVybF9iYXItPmVudHJ5
KTsKKyAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQodXJsX2Jhci0+ZW50cnksIEVW
QVNfQ0FMTEJBQ0tfTU9VU0VfRE9XTiwgb25fdXJsYmFyX21vdXNlX2Rvd24sIHVybF9iYXIpOwor
ICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZCh1cmxfYmFyLT5lbnRyeSwgRVZBU19D
QUxMQkFDS19LRVlfRE9XTiwgb25fdXJsYmFyX2tleV9kb3duLCB1cmxfYmFyKTsKKyAgICBldmFz
X29iamVjdF9ldmVudF9jYWxsYmFja19hZGQodXJsX2Jhci0+ZW50cnksIEVWQVNfQ0FMTEJBQ0tf
Rk9DVVNfT1VULCBvbl91cmxiYXJfZm9jdXNfb3V0LCB1cmxfYmFyKTsKKworICAgIHJldHVybiB1
cmxfYmFyOworfQorCit2b2lkCit1cmxfYmFyX2RlbChVcmxfQmFyICp1cmxCYXIpCit7CisgICAg
aWYgKCF1cmxCYXIpCisgICAgICAgIHJldHVybjsKKworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2Nh
bGxiYWNrX2RlbCh1cmxCYXItPmVudHJ5LCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBvbl91cmxi
YXJfa2V5X2Rvd24pOworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbCh1cmxCYXIt
PmVudHJ5LCBFVkFTX0NBTExCQUNLX01PVVNFX0RPV04sIG9uX3VybGJhcl9tb3VzZV9kb3duKTsK
KyAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwodXJsQmFyLT5lbnRyeSwgRVZBU19D
QUxMQkFDS19GT0NVU19PVVQsIG9uX3VybGJhcl9mb2N1c19vdXQpOworCisgICAgZXZhc19vYmpl
Y3RfZGVsKHVybEJhci0+YXJlYSk7CisgICAgZXZhc19vYmplY3RfZGVsKHVybEJhci0+ZW50cnkp
OworICAgIGZyZWUodXJsQmFyKTsKK30KKwordm9pZAordXJsX2Jhcl91cmxfc2V0KFVybF9CYXIg
KnVybEJhciwgY29uc3QgY2hhciAqdXJsKQoreworICAgIGlmICghdXJsQmFyIHx8ICF1cmwpCisg
ICAgICAgIHJldHVybjsKKworICAgIGVkamVfb2JqZWN0X3BhcnRfdGV4dF9zZXQodXJsQmFyLT5l
bnRyeSwgInVybC50ZXh0IiwgdXJsKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVuY2hl
ci91cmxfYmFyLmggYi9Ub29scy9FV2ViTGF1bmNoZXIvdXJsX2Jhci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3
MjU3NmZiNTg4YWYzM2U5Y2YyM2IyYzBmZjRkMjIxZWU5NTI2ODUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9FV2ViTGF1bmNoZXIvdXJsX2Jhci5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgdXJs
X2Jhcl9oCisjZGVmaW5lIHVybF9iYXJfaAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAi
QyIgeworI2VuZGlmCisKKyNpbmNsdWRlIDxFdmFzLmg+CisKKyNkZWZpbmUgVVJMX0JBUl9IRUlH
SFQgMzAKKwordHlwZWRlZiBzdHJ1Y3QgX1VybF9CYXIgeworICAgIEV2YXNfT2JqZWN0ICp3ZWJW
aWV3OworICAgIEV2YXNfT2JqZWN0ICphcmVhOworICAgIEV2YXNfT2JqZWN0ICplbnRyeTsKK30g
VXJsX0JhcjsKKworVXJsX0JhciAqdXJsX2Jhcl9hZGQoRXZhc19PYmplY3QqIHdlYnZpZXcsIGlu
dCB3aWR0aCk7Cit2b2lkIHVybF9iYXJfZGVsKFVybF9CYXIgKnVybEJhcik7Cit2b2lkIHVybF9i
YXJfdXJsX3NldChVcmxfQmFyICp1cmxCYXIsIGNvbnN0IGNoYXIgKnVybCk7CisKKyNpZmRlZiBf
X2NwbHVzcGx1cworfQorI2VuZGlmCisjZW5kaWYgLy8gdXJsX2Jhcl9oCmRpZmYgLS1naXQgYS9U
b29scy9NaW5pQnJvd3Nlci9lZmwvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9NaW5pQnJvd3Nlci9l
ZmwvQ01ha2VMaXN0cy50eHQKaW5kZXggNTljZmM0ZmQxZmU0MGE2YjhmMWNhZThjM2EyMDE5NzIz
ZmRjNzAzOS4uNjE1Yzc5ZWFhZThhZGFlNjdhZGMxMmYwODRjNzA4MzAyMDZiZjNkMCAxMDA2NDQK
LS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL01p
bmlCcm93c2VyL2VmbC9DTWFrZUxpc3RzLnR4dApAQCAtMSw2ICsxLDcgQEAKIFNFVChNaW5pQnJv
d3Nlcl9ESVIgIiR7VE9PTFNfRElSfS9NaW5pQnJvd3Nlci9lZmwiKQogCiBTRVQoTWluaUJyb3dz
ZXJfU09VUkNFUworICAgICR7VE9PTFNfRElSfS9FV2ViTGF1bmNoZXIvdXJsX2Jhci5jCiAgICAg
JHtNaW5pQnJvd3Nlcl9ESVJ9L21haW4uYwogKQogCkBAIC0xMCw2ICsxMSw3IEBAIFNFVChNaW5p
QnJvd3Nlcl9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgJHtFREpFX0lOQ0xVREVfRElSU30KICAg
ICAke0VGTERFUFNfSU5DTFVERV9ESVJTfQogICAgICR7RVZBU19JTkNMVURFX0RJUlN9CisgICAg
JHtUT09MU19ESVJ9L0VXZWJMYXVuY2hlcgogICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9B
UEkvZWZsCiAgICAgJHtXRUJLSVQyX0RJUn0KICAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVQy
X0RJUn0vaW5jbHVkZQpAQCAtNjYsMyArNjgsNCBAQCBTRVRfVEFSR0VUX1BST1BFUlRJRVMoTWlu
aUJyb3dzZXIgUFJPUEVSVElFUyBGT0xERVIgIlRvb2xzIikKIAogQUREX0RFUEVOREVOQ0lFUyhN
aW5pQnJvd3NlciBmb3J3YXJkaW5nLWhlYWRlck1pbmlCcm93c2VyRWZsKQogQUREX0RFUEVOREVO
Q0lFUyhNaW5pQnJvd3NlciBmb3J3YXJkaW5nLWhlYWRlck1pbmlCcm93c2VyU291cCkKK0FERF9E
RVBFTkRFTkNJRVMoTWluaUJyb3dzZXIgVGhlbWVDb250cm9sKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
TWluaUJyb3dzZXIvZWZsL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKaW5k
ZXggYjEwNDI4OWU3MGExOWJlYjJiNmFlOTk3MzJiYjBlNWEwNTQ5YmVkZS4uZjVjNGE0YzJiNzIx
MzI2MzY2ODhiMjk5NWE1ZjExY2M0NzY4MWZlOCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dz
ZXIvZWZsL21haW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCkBAIC0xOCw2
ICsxOCw3IEBACiAgKi8KIAogI2luY2x1ZGUgIkVXZWJLaXQyLmgiCisjaW5jbHVkZSAidXJsX2Jh
ci5oIgogI2luY2x1ZGUgPEVjb3JlLmg+CiAjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgogI2luY2x1
ZGUgPEVpbmEuaD4KQEAgLTQxLDYgKzQyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX01pbmlCcm93c2Vy
IHsKICAgICBFdmFzICpldmFzOwogICAgIEV2YXNfT2JqZWN0ICpiZzsKICAgICBFdmFzX09iamVj
dCAqYnJvd3NlcjsKKyAgICBVcmxfQmFyICp1cmxfYmFyOwogfSBNaW5pQnJvd3NlcjsKIAogc3Rh
dGljIEVpbmFfQm9vbCBtYWluX3NpZ25hbF9leGl0KHZvaWQgKmRhdGEsIGludCBldl90eXBlLCB2
b2lkICpldikKQEAgLTEzMiw2ICsxMzQsMTMgQEAgb25fdGl0bGVfY2hhbmdlZCh2b2lkICp1c2Vy
X2RhdGEsIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2b2lkICpldmVudF9pbmZvKQogfQogCiBzdGF0
aWMgdm9pZAorb25fdXJsX2NoYW5nZWQodm9pZCAqdXNlcl9kYXRhLCBFdmFzX09iamVjdCAqd2Vi
dmlldywgdm9pZCAqZXZlbnRfaW5mbykKK3sKKyAgICBNaW5pQnJvd3NlciAqYXBwID0gKE1pbmlC
cm93c2VyICopdXNlcl9kYXRhOworICAgIHVybF9iYXJfdXJsX3NldChhcHAtPnVybF9iYXIsIGV3
a192aWV3X3VyaV9nZXQoYXBwLT5icm93c2VyKSk7Cit9CisKK3N0YXRpYyB2b2lkCiBvbl9wcm9n
cmVzcyh2b2lkICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2b2lkICpldmVudF9p
bmZvKQogewogICAgIE1pbmlCcm93c2VyICphcHAgPSAoTWluaUJyb3dzZXIgKil1c2VyX2RhdGE7
CkBAIC0xODUsMTQgKzE5NCwxOCBAQCBzdGF0aWMgTWluaUJyb3dzZXIgKmJyb3dzZXJDcmVhdGUo
Y29uc3QgY2hhciAqdXJsKQogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAt
PmJyb3dzZXIsICJsb2FkLGVycm9yIiwgb25fZXJyb3IsIGFwcCk7CiAgICAgZXZhc19vYmplY3Rf
c21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgImxvYWQscHJvZ3Jlc3MiLCBvbl9wcm9n
cmVzcywgYXBwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBwLT5icm93
c2VyLCAidGl0bGUsY2hhbmdlZCIsIG9uX3RpdGxlX2NoYW5nZWQsIGFwcCk7CisgICAgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgInVyaSxjaGFuZ2VkIiwgb25f
dXJsX2NoYW5nZWQsIGFwcCk7CiAKICAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQo
YXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBvbl9rZXlfZG93biwgYXBwKTsK
IAogICAgIGV2YXNfb2JqZWN0X3NpemVfaGludF93ZWlnaHRfc2V0KGFwcC0+YnJvd3NlciwgRVZB
U19ISU5UX0VYUEFORCwgRVZBU19ISU5UX0VYUEFORCk7Ci0gICAgZXZhc19vYmplY3RfcmVzaXpl
KGFwcC0+YnJvd3NlciwgREVGQVVMVF9XSURUSCwgREVGQVVMVF9IRUlHSFQpOworICAgIGV2YXNf
b2JqZWN0X21vdmUoYXBwLT5icm93c2VyLCAwLCBVUkxfQkFSX0hFSUdIVCk7CisgICAgZXZhc19v
YmplY3RfcmVzaXplKGFwcC0+YnJvd3NlciwgREVGQVVMVF9XSURUSCwgREVGQVVMVF9IRUlHSFQg
LSBVUkxfQkFSX0hFSUdIVCk7CiAgICAgZXZhc19vYmplY3Rfc2hvdyhhcHAtPmJyb3dzZXIpOwog
ICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldChhcHAtPmJyb3dzZXIsIEVJTkFfVFJVRSk7CiAKKyAg
ICBhcHAtPnVybF9iYXIgPSB1cmxfYmFyX2FkZChhcHAtPmJyb3dzZXIsIERFRkFVTFRfV0lEVEgp
OworCiAgICAgZXdrX3ZpZXdfdXJpX3NldChhcHAtPmJyb3dzZXIsIHVybCk7CiAKICAgICByZXR1
cm4gYXBwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156613</attachid>
            <date>2012-08-06 00:28:13 -0700</date>
            <delta_ts>2012-08-23 05:20:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63966-20120806162749.patch</filename>
            <type>text/plain</type>
            <size>22205</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NzMxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjE4ODM3YWVjMzM1ZTEwYjhlZTlkNmFlZDRmZjIwNjgz
YjUwYmUwMy4uNmVmZjI2M2JiODAzNGVkNDdlODI5ZDAzYzljYzBhNTUwMmY1YTc3YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0
IEBACisyMDEyLTA4LTA1ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbRUZMXSBBZGQgdXJsIGJhciB0byBFV2ViTGF1bmNoZXIgYW5kIE1pbmlCcm93c2Vy
L0VmbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYz
OTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRVdl
YkxhdW5jaGVyIGFuZCBNaW5pQnJvd3Nlci9FZmwgZGlkIG5vdCBoYXZlIGZ1bmN0aW9uYWxpdHkg
dGhhdCB1c2VycworICAgICAgICBuYXZpZ2F0ZXMgdGhlIHNpdGUgd2hpY2ggdGhleSB3YW50Lgor
ICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIHVybGJhciBhbmQgZnVuY3Rpb25hbGl0eSB0byBs
b2FkIHVybCB3aGljaCB1c2VycyB3YW50LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgIEFkZGVkIHRvIHNoYXJlIHVybGJhciB0aGVtZSBmb3IgYm90aCBFV2ViTGF1bmNoZXIg
YW5kIE1pbmlCcm93c2VyL0VmbC4KKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgIEFkZGVkIHVybGJhci5jIGFuZCBkZXBlbmRlbmN5IG9mIHVybGJhciB0aGVt
ZS4KKyAgICAgICAgSW4gYWRkaXRpb24sIGNoYW5nZWQgbWFjcm8gbmFtZSB0byBUSEVNRV9ESVIg
dG8gc2hhcmUgdGhlIGNvZGUgZWFzaWx5LgorICAgICAgICAqIEVXZWJMYXVuY2hlci9Db250cm9s
VGhlbWUvQ01ha2VMaXN0cy50eHQ6IEFkZGVkIGZvciB1cmxiYXIgdGhlbWUuCisgICAgICAgICog
RVdlYkxhdW5jaGVyL0NvbnRyb2xUaGVtZS9lbnRyeS5lZGM6IEltcGxlbWVudGVkIHVybGJhciB0
aGVtZS4KKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvbWFpbi5jOgorICAgICAgICBJbXBsZW1lbnRl
ZCB0byB1c2UgdGhlIHVybGJhci4KKyAgICAgICAgSW4gYWRkaXRpb24sIHJlbW92ZSB1bm5lY2Vz
c2FyeSBib3JkZXIgb2Ygd2VidmlldyB0byBjb250cm9sIHdlYnZpZXcgYW5kIHVybGJhciBlYXNp
bHkuCisgICAgICAgIChfRUxhdW5jaGVyKToKKyAgICAgICAgKG9uX3VybF9jaGFuZ2VkKToKKyAg
ICAgICAgKGJyb3dzZXJDcmVhdGUpOgorICAgICAgICAoY2xvc2VXaW5kb3cpOgorICAgICAgICAo
ZmluZFRoZW1lUGF0aCk6CisgICAgICAgICogRVdlYkxhdW5jaGVyL3VybF9iYXIuYzogSW1wbGVt
ZW50ZWQgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdXJsYmFyLgorICAgICAgICAoX3VybF9iYXJfdXJs
X2dldF93aXRoX3Byb3RvY29sKToKKyAgICAgICAgKG9uX3VybGJhcl9rZXlfZG93bik6CisgICAg
ICAgIChvbl91cmxiYXJfbW91c2VfZG93bik6CisgICAgICAgIChvbl91cmxiYXJfZm9jdXNfb3V0
KToKKyAgICAgICAgKHVybF9iYXJfYWRkKToKKyAgICAgICAgKHVybF9iYXJfZGVsKToKKyAgICAg
ICAgKHVybF9iYXJfdXJsX3NldCk6CisgICAgICAgICogRVdlYkxhdW5jaGVyL3VybF9iYXIuaDog
QWRkZWQuCisgICAgICAgICogTWluaUJyb3dzZXIvZWZsL0NNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIE1pbmlCcm93c2VyL2VmbC9tYWluLmM6IEltcGxlbWVudGVkIHRvIHVzZSB0aGUgdXJsYmFy
LgorICAgICAgICAoX01pbmlCcm93c2VyKToKKyAgICAgICAgKG9uX3VybF9jaGFuZ2VkKToKKyAg
ICAgICAgKGJyb3dzZXJDcmVhdGUpOgorCiAyMDEyLTA4LTA1ICBHeXV5b3VuZyBLaW0gIDxneXV5
b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gQ2hhbmdlIG15IGVt
YWlsIGFkZHJlc3MgZm9yIHdhdGNoIGxpc3QuCmRpZmYgLS1naXQgYS9Ub29scy9DTWFrZUxpc3Rz
LnR4dCBiL1Rvb2xzL0NNYWtlTGlzdHMudHh0CmluZGV4IGFlZDcxNDQyZTZkYjU4Y2M3MGQzNjgz
M2FjN2E1ZDUzZTg5ZTY5ZGYuLjFhNmE2OWJlODI2MWJkYmZiZDQyOWYxMGU3ZDZhNDExY2ZlZTVk
Y2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL0NNYWtlTGlz
dHMudHh0CkBAIC0zLDYgKzMsOCBAQCBJRiAoRU5BQkxFX1dFQktJVDIpCiBFTkRJRiAoKQogCiBJ
RiAoIiR7UE9SVH0iIFNUUkVRVUFMICJFZmwiKQorICAgIEFERF9TVUJESVJFQ1RPUlkoRVdlYkxh
dW5jaGVyL0NvbnRyb2xUaGVtZSkKKwogICAgIElGIChFTkFCTEVfV0VCS0lUKQogICAgICAgICBB
RERfU1VCRElSRUNUT1JZKER1bXBSZW5kZXJUcmVlL2VmbCkKICAgICAgICAgQUREX1NVQkRJUkVD
VE9SWShFV2ViTGF1bmNoZXIpCmRpZmYgLS1naXQgYS9Ub29scy9FV2ViTGF1bmNoZXIvQ01ha2VM
aXN0cy50eHQgYi9Ub29scy9FV2ViTGF1bmNoZXIvQ01ha2VMaXN0cy50eHQKaW5kZXggZjJjMjYz
ZjMzNWU1ZTE0MTlhZjdlYzMwYmNlNDcwMDk5YjM1YjAwYS4uMTJhN2U4YjBkMzE4ODYxNDYzNmQ2
YTdjNTcyMjVhMWMxN2VkZTJlMiAxMDA2NDQKLS0tIGEvVG9vbHMvRVdlYkxhdW5jaGVyL0NNYWtl
TGlzdHMudHh0CisrKyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9DTWFrZUxpc3RzLnR4dApAQCAtMSw0
ICsxLDUgQEAKIFNFVChFV2ViTGF1bmNoZXJfU09VUkNFUworICAgICR7VE9PTFNfRElSfS9FV2Vi
TGF1bmNoZXIvdXJsX2Jhci5jCiAgICAgJHtUT09MU19ESVJ9L0VXZWJMYXVuY2hlci9tYWluLmMK
ICkKIApAQCAtMzYsMTAgKzM3LDEyIEBAIFNFVChFV2ViTGF1bmNoZXJfTElOS19GTEFHUwogICAg
ICR7TElCU09VUDI0X0xERkxBR1N9CiApCiAKLUFERF9ERUZJTklUSU9OUygtRERBVEFfRElSPVwi
JHtUSEVNRV9CSU5BUllfRElSfVwiKQorQUREX0RFRklOSVRJT05TKC1EVEhFTUVfRElSPVwiJHtU
SEVNRV9CSU5BUllfRElSfVwiKQogCiBJTkNMVURFX0RJUkVDVE9SSUVTKCR7RVdlYkxhdW5jaGVy
X0lOQ0xVREVfRElSRUNUT1JJRVN9KQogQUREX0VYRUNVVEFCTEUoRVdlYkxhdW5jaGVyICR7RVdl
YkxhdW5jaGVyX1NPVVJDRVN9KQogVEFSR0VUX0xJTktfTElCUkFSSUVTKEVXZWJMYXVuY2hlciAk
e0VXZWJMYXVuY2hlcl9MSUJSQVJJRVN9KQogQUREX1RBUkdFVF9QUk9QRVJUSUVTKEVXZWJMYXVu
Y2hlciBMSU5LX0ZMQUdTICIke0VXZWJMYXVuY2hlcl9MSU5LX0ZMQUdTfSIpCiBTRVRfVEFSR0VU
X1BST1BFUlRJRVMoRVdlYkxhdW5jaGVyIFBST1BFUlRJRVMgRk9MREVSICJUb29scyIpCisKK0FE
RF9ERVBFTkRFTkNJRVMoRVdlYkxhdW5jaGVyIENvbnRyb2xUaGVtZSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0VXZWJMYXVuY2hlci9Db250cm9sVGhlbWUvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9FV2Vi
TGF1bmNoZXIvQ29udHJvbFRoZW1lL0NNYWtlTGlzdHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4YWE4Y2Yx
OWFiM2ZhYzdkY2IwMGRhNGMwYTk4NThjZWNkYzQ1ODMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9FV2ViTGF1bmNoZXIvQ29udHJvbFRoZW1lL0NNYWtlTGlzdHMudHh0CkBAIC0wLDAgKzEsOCBA
QAorU0VUKENvbnRyb2xUaGVtZV9ESVIgIiR7VE9PTFNfRElSfS9FV2ViTGF1bmNoZXIvQ29udHJv
bFRoZW1lIikKKworQUREX0NVU1RPTV9UQVJHRVQoQ29udHJvbFRoZW1lIEFMTAorICAgIENPTU1B
TkQgJHtFREpFX0NDX0VYRUNVVEFCTEV9IC12ICR7Q29udHJvbFRoZW1lX0RJUn0vZW50cnkuZWRj
ICR7VEhFTUVfQklOQVJZX0RJUn0vZW50cnkuZWRqCisgICAgREVQRU5EUworICAgICAgICAke0Nv
bnRyb2xUaGVtZV9ESVJ9L2VudHJ5LmVkYworICAgIFZFUkJBVElNCispCmRpZmYgLS1naXQgYS9U
b29scy9FV2ViTGF1bmNoZXIvQ29udHJvbFRoZW1lL2VudHJ5LmVkYyBiL1Rvb2xzL0VXZWJMYXVu
Y2hlci9Db250cm9sVGhlbWUvZW50cnkuZWRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4OGZiYjQ5ZDFjZmYxYTVk
MjNkODgxYmVmOTAxYmNmMDIzOTIyZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9FV2ViTGF1
bmNoZXIvQ29udHJvbFRoZW1lL2VudHJ5LmVkYwpAQCAtMCwwICsxLDE0MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworY29sbGVjdGlvbnMg
eworICAgZ3JvdXAgeworICAgICAgbmFtZTogImNvbnRyb2wvZW50cnkvYmFzZS9kZWZhdWx0IjsK
KyAgICAgIHN0eWxlcyB7CisgICAgICAgICBzdHlsZSB7CisgICAgICAgICAgICBuYW1lOiAiZW50
cnlfdGV4dGJsb2NrX3N0eWxlIjsKKyAgICAgICAgICAgIGJhc2U6ICJmb250PVJvbWFuIGZvbnRf
c2l6ZT0xNCBjb2xvcj0jMDAwMDAwIHdyYXA9bWl4ZWQiOworICAgICAgICAgfQorICAgICAgfQor
ICAgICAgcGFydHMgeworICAgICAgICAgcGFydCB7CisgICAgICAgICAgICBuYW1lOiAidXJsLnRl
eHQiOworICAgICAgICAgICAgdHlwZTogVEVYVEJMT0NLOworICAgICAgICAgICAgbW91c2VfZXZl
bnRzOiAxOworICAgICAgICAgICAgc2NhbGU6IDE7CisgICAgICAgICAgICBlbnRyeV9tb2RlOiBF
RElUQUJMRTsKKyAgICAgICAgICAgIG11bHRpbGluZTogMTsKKyAgICAgICAgICAgIHNvdXJjZTog
ImNvbnRyb2wvZW50cnkvc2VsZWN0aW9uL2RlZmF1bHQiOyAvLyBzZWxlY3Rpb24gdW5kZXIKKyAg
ICAgICAgICAgIHNvdXJjZTQ6ICJjb250cm9sL2VudHJ5L2N1cnNvci9kZWZhdWx0IjsgLy8gY3Vy
c29yIG92ZXIKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uIHsKKyAgICAgICAgICAgICAgIHN0YXRl
OiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgZml4ZWQ6IDEgMDsKKyAgICAgICAgICAg
ICAgIHRleHQgeworICAgICAgICAgICAgICAgICAgc3R5bGU6ICJlbnRyeV90ZXh0YmxvY2tfc3R5
bGUiOworICAgICAgICAgICAgICAgICAgbWluOiAwIDE7CisgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9CisgICAgICAgICB9CisgICAgICB9CisgICAgICBwcm9ncmFtcyB7CisgICAgICAg
ICBwcm9ncmFtIHsKKyAgICAgICAgICAgIG5hbWU6ICJmb2N1cyI7CisgICAgICAgICAgICBzaWdu
YWw6ICJsb2FkIjsKKyAgICAgICAgICAgIHNvdXJjZTogIiI7CisgICAgICAgICAgICBhY3Rpb246
IEZPQ1VTX1NFVDsKKyAgICAgICAgICAgIHRhcmdldDogInVybC50ZXh0IjsKKyAgICAgICAgIH0K
KyAgICAgIH0KKyAgIH0KKworICAgZ3JvdXAgeworICAgICAgbmFtZTogImNvbnRyb2wvZW50cnkv
Y3Vyc29yL2RlZmF1bHQiOworICAgICAgcGFydHMgeworICAgICAgICAgcGFydCB7CisgICAgICAg
ICAgICBuYW1lOiAiY2xpcCI7CisgICAgICAgICAgICB0eXBlOiBSRUNUOworICAgICAgICAgICAg
bW91c2VfZXZlbnRzOiAwOworICAgICAgICAgICAgc2NhbGU6IDE7CisgICAgICAgICAgICBkZXNj
cmlwdGlvbiB7CisgICAgICAgICAgICAgICBzdGF0ZTogImRlZmF1bHQiIDAuMDsKKyAgICAgICAg
ICAgICAgIHJlbDEub2Zmc2V0OiAtMTAgMDsKKyAgICAgICAgICAgICAgIHJlbDIub2Zmc2V0OiA5
IDk7CisgICAgICAgICAgICAgICB2aXNpYmxlOiAwOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgZGVzY3JpcHRpb24geworICAgICAgICAgICAgICAgc3RhdGU6ICJmb2N1c2VkIiAwLjA7Cisg
ICAgICAgICAgICAgICBpbmhlcml0OiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgdmlz
aWJsZTogMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgICAgIHBhcnQgeworICAg
ICAgICAgICAgbmFtZTogImN1cnNvciI7CisgICAgICAgICAgICB0eXBlOiBSRUNUOworICAgICAg
ICAgICAgbW91c2VfZXZlbnRzOiAwOworICAgICAgICAgICAgc2NhbGU6IDE7CisgICAgICAgICAg
ICBjbGlwX3RvOiAiY2xpcCI7CisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7CisgICAgICAgICAg
ICAgICBzdGF0ZTogImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgICAgIG1pbjogMSAwOworICAg
ICAgICAgICAgICAgZml4ZWQ6IDEgMDsKKyAgICAgICAgICAgICAgIGFsaWduOiAwLjUgMC41Owor
ICAgICAgICAgICAgICAgdmlzaWJsZTogMTsKKyAgICAgICAgICAgICAgIHJlbDEgeworICAgICAg
ICAgICAgICAgICAgcmVsYXRpdmU6IDAuMCAgMC4wOworICAgICAgICAgICAgICAgICAgb2Zmc2V0
OiAwIDI7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICByZWwyIHsKKyAgICAgICAg
ICAgICAgICAgIHJlbGF0aXZlOiAwLjAgIDEuMDsKKyAgICAgICAgICAgICAgICAgIG9mZnNldDog
MCAtMjsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGNvbG9yOiAwIDAgMCAyNTU7
IC8vIGN1cnNvciBjb2xvcgorICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgfQorICAg
ICAgcHJvZ3JhbXMgeworICAgICAgICAgcHJvZ3JhbSB7CisgICAgICAgICAgICBuYW1lOiAiZm9j
dXNlZCI7CisgICAgICAgICAgICBzaWduYWw6ICJlbnRyeSxhY3Rpb24sZm9jdXMiOworICAgICAg
ICAgICAgc291cmNlOiAiZW50cnkiOworICAgICAgICAgICAgYWN0aW9uOiBTVEFURV9TRVQgImZv
Y3VzZWQiIDAuMDsKKyAgICAgICAgICAgIHRhcmdldDogImNsaXAiOworICAgICAgICAgfQorICAg
ICAgICAgcHJvZ3JhbSB7CisgICAgICAgICAgICBuYW1lOiAidW5mb2N1c2VkIjsKKyAgICAgICAg
ICAgIHNpZ25hbDogImVudHJ5LGFjdGlvbix1bmZvY3VzIjsKKyAgICAgICAgICAgIHNvdXJjZTog
ImVudHJ5IjsKKyAgICAgICAgICAgIGFjdGlvbjogU1RBVEVfU0VUICJkZWZhdWx0IiAwLjA7Cisg
ICAgICAgICAgICB0YXJnZXQ6ICJjbGlwIjsKKyAgICAgICAgIH0KKyAgICAgIH0KKyAgIH0KKwor
ICAgZ3JvdXAgeworICAgICAgbmFtZTogImNvbnRyb2wvZW50cnkvc2VsZWN0aW9uL2RlZmF1bHQi
OworICAgICAgcGFydHMgeworICAgICAgICAgcGFydCB7CisgICAgICAgICAgICBuYW1lOiAiYmci
OworICAgICAgICAgICAgdHlwZTogUkVDVDsKKyAgICAgICAgICAgIHNjYWxlOiAxOworICAgICAg
ICAgICAgbW91c2VfZXZlbnRzOiAwOworICAgICAgICAgICAgZGVzY3JpcHRpb24geworICAgICAg
ICAgICAgICAgc3RhdGU6ICJkZWZhdWx0IiAwLjA7CisgICAgICAgICAgICAgICBjb2xvcjogMTM4
IDE4MyAyMjMgMTI4OworICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgfQorICAgfQor
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYyBiL1Rvb2xzL0VXZWJMYXVu
Y2hlci9tYWluLmMKaW5kZXggNDA4OWQ2ZWNhMjRhMzYwOTQ2ODUxOWFhYzkzOGZlMThmZWQwNGM1
OC4uMDY3MDNjZmY5NjVmYmY2MTY4NWRmZWEwODFkNWNkYTc3OGNmNzEyOSAxMDA2NDQKLS0tIGEv
VG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYworKysgYi9Ub29scy9FV2ViTGF1bmNoZXIvbWFpbi5j
CkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNsdWRlICJFV2ViS2l0LmgiCiAKLSNpbmNsdWRlIDxj
dHlwZS5oPgorI2luY2x1ZGUgInVybF9iYXIuaCIKICNpbmNsdWRlIDxFY29yZS5oPgogI2luY2x1
ZGUgPEVjb3JlX0V2YXMuaD4KICNpbmNsdWRlIDxFY29yZV9GaWxlLmg+CkBAIC0zOCw2ICszOCw3
IEBACiAjaW5jbHVkZSA8RWNvcmVfWC5oPgogI2luY2x1ZGUgPEVkamUuaD4KICNpbmNsdWRlIDxF
dmFzLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KICNpbmNsdWRlIDxpbnR0eXBlcy5oPgogI2luY2x1
ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC0xNDMsNiArMTQ0LDcgQEAgdHlw
ZWRlZiBzdHJ1Y3QgX0VMYXVuY2hlciB7CiAgICAgRXZhcyAqZXZhczsKICAgICBFdmFzX09iamVj
dCAqYmc7CiAgICAgRXZhc19PYmplY3QgKmJyb3dzZXI7CisgICAgVXJsX0JhciAqdXJsX2JhcjsK
ICAgICBjb25zdCBjaGFyICp0aGVtZTsKICAgICBjb25zdCBjaGFyICp1c2VyQWdlbnQ7CiAgICAg
Y29uc3QgY2hhciAqYmFja2luZ1N0b3JlOwpAQCAtNDAyLDYgKzQwNCwxMyBAQCBvbl9pbnB1dG1l
dGhvZF9jaGFuZ2VkKHZvaWQqIHVzZXJfZGF0YSwgRXZhc19PYmplY3QqIHdlYnZpZXcsIHZvaWQq
IGV2ZW50X2luZm8pCiB9CiAKIHN0YXRpYyB2b2lkCitvbl91cmxfY2hhbmdlZCh2b2lkKiB1c2Vy
X2RhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2b2lkKiBldmVudF9pbmZvKQoreworICAgIEVM
YXVuY2hlciAqYXBwID0gKEVMYXVuY2hlciAqKXVzZXJfZGF0YTsKKyAgICB1cmxfYmFyX3VybF9z
ZXQoYXBwLT51cmxfYmFyLCBld2tfdmlld191cmlfZ2V0KGFwcC0+YnJvd3NlcikpOworfQorCitz
dGF0aWMgdm9pZAogb25fbW91c2VfZG93bih2b2lkKiBkYXRhLCBFdmFzKiBlLCBFdmFzX09iamVj
dCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5mbykKIHsKICAgICBFdmFzX0V2ZW50X01vdXNlX0Rv
d24gKmV2ID0gKEV2YXNfRXZlbnRfTW91c2VfRG93biopIGV2ZW50X2luZm87CkBAIC02OTUsNiAr
NzA0LDcgQEAgYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IGNoYXIgKnRoZW1l
LCBjb25zdCBjaGFyICp1c2VyQWdlbnQsIEVpbmFfUmUKICAgICBldmFzX29iamVjdF9zbWFydF9j
YWxsYmFja19hZGQoYXBwLT5icm93c2VyLCAibWVudWJhcix2aXNpYmxlLGdldCIsIG9uX21lbnVi
YXJfdmlzaWJsZV9nZXQsIGFwcCk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRk
KGFwcC0+YnJvd3NlciwgInRvb2x0aXAsdGV4dCxzZXQiLCBvbl90b29sdGlwX3RleHRfc2V0LCBh
cHApOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJp
bnB1dG1ldGhvZCxjaGFuZ2VkIiwgb25faW5wdXRtZXRob2RfY2hhbmdlZCwgYXBwKTsKKyAgICBl
dmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCAidXJpLGNoYW5nZWQi
LCBvbl91cmxfY2hhbmdlZCwgYXBwKTsKIAogLyogICAgIGV3a19jYWxsYmFja19yZXNpemVfcmVx
dWVzdGVkX2FkZChhcHAtPmJyb3dzZXIsIG9uX3Jlc2l6ZV9yZXF1ZXN0ZWQsIGFwcC0+ZWUpOyAq
LwogCkBAIC03MDQsOCArNzE0LDEwIEBAIGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBj
b25zdCBjaGFyICp0aGVtZSwgY29uc3QgY2hhciAqdXNlckFnZW50LCBFaW5hX1JlCiAgICAgZXZh
c19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19G
T0NVU19PVVQsIG9uX2ZvY3VzX291dCwgYXBwKTsKICAgICBldmFzX29iamVjdF9ldmVudF9jYWxs
YmFja19hZGQoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0RFTCwgb25fYnJvd3Nlcl9kZWws
IGFwcCk7CiAKLSAgICBldmFzX29iamVjdF9tb3ZlKGFwcC0+YnJvd3NlciwgMTAsIDEwKTsKLSAg
ICBldmFzX29iamVjdF9yZXNpemUoYXBwLT5icm93c2VyLCBnZW9tZXRyeS53IC0gMjAsIGdlb21l
dHJ5LmggLSAyMCk7CisgICAgYXBwLT51cmxfYmFyID0gdXJsX2Jhcl9hZGQoYXBwLT5icm93c2Vy
LCBERUZBVUxUX1dJRFRIKTsKKworICAgIGV2YXNfb2JqZWN0X21vdmUoYXBwLT5icm93c2VyLCAw
LCBVUkxfQkFSX0hFSUdIVCk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YnJvd3Nlciwg
Z2VvbWV0cnkudywgZ2VvbWV0cnkuaCAtIFVSTF9CQVJfSEVJR0hUKTsKIAogICAgIGlmICh1cmwg
JiYgKHVybFswXSAhPSAnXDAnKSkKICAgICAgICAgZXdrX3ZpZXdfdXJpX3NldChhcHAtPmJyb3dz
ZXIsIHVybCk7CkBAIC03MzksNiArNzUxLDcgQEAgY2xvc2VXaW5kb3coRWNvcmVfRXZhcyAqZWUp
CiAgICAgICAgICAgICBicmVhazsKICAgICB9CiAgICAgd2luZG93cyA9IGVpbmFfbGlzdF9yZW1v
dmUod2luZG93cywgYXBwKTsKKyAgICB1cmxfYmFyX2RlbCgoKEVMYXVuY2hlciAqKWFwcCktPnVy
bF9iYXIpOwogICAgIGJyb3dzZXJEZXN0cm95KGVlKTsKICAgICBmcmVlKGFwcCk7CiB9CkBAIC03
NjAsMTIgKzc3MywxMiBAQCBtYWluX3NpZ25hbF9leGl0KHZvaWQgKmRhdGEsIGludCBldl90eXBl
LCB2b2lkICpldikKIHN0YXRpYyBjaGFyICoKIGZpbmRUaGVtZVBhdGgoY29uc3QgY2hhciAqdGhl
bWUpCiB7Ci0gICAgY29uc3QgY2hhciAqZGVmYXVsdFRoZW1lID0gREFUQV9ESVIiL2RlZmF1bHQu
ZWRqIjsKKyAgICBjb25zdCBjaGFyICpkZWZhdWx0X3RoZW1lID0gVEhFTUVfRElSIi9kZWZhdWx0
LmVkaiI7CiAgICAgY2hhciAqcnBhdGg7CiAgICAgc3RydWN0IHN0YXQgc3Q7CiAKICAgICBpZiAo
IXRoZW1lKQotICAgICAgICB0aGVtZSA9IGRlZmF1bHRUaGVtZTsKKyAgICAgICAgdGhlbWUgPSBk
ZWZhdWx0X3RoZW1lOwogCiAgICAgcnBhdGggPSBlY29yZV9maWxlX3JlYWxwYXRoKHRoZW1lKTsK
ICAgICBpZiAoIXN0cmxlbihycGF0aCkgfHwgc3RhdChycGF0aCwgJnN0KSkgewpkaWZmIC0tZ2l0
IGEvVG9vbHMvRVdlYkxhdW5jaGVyL3VybF9iYXIuYyBiL1Rvb2xzL0VXZWJMYXVuY2hlci91cmxf
YmFyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTNkNDQxN2NmN2IwMTlmN2M5YjExZDdmOTE0OTI4ZGFkZWUxZTk3
OAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0VXZWJMYXVuY2hlci91cmxfYmFyLmMKQEAgLTAs
MCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmlj
cworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJ1cmxfYmFyLmgiCisKKyNpbmNsdWRlIDxFZGplLmg+CisKKyNk
ZWZpbmUgUEFERElOR19TSVpFIDUKKworc3RhdGljIGNvbnN0IGNoYXIgKgorX3VybF9iYXJfdXJs
X2dldF93aXRoX3Byb3RvY29sKFVybF9CYXIgKnVybEJhcikKK3sKKyAgICBjb25zdCBjaGFyICp1
cmwgPSBlZGplX29iamVjdF9wYXJ0X3RleHRfZ2V0KHVybEJhci0+ZW50cnksICJ1cmwudGV4dCIp
OworICAgIGlmICghdXJsIHx8ICFzdHJsZW4odXJsKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisK
KyAgICBpZiAoIXN0cnN0cih1cmwsICI6Ly8iKSkKKyAgICAgICAgcmV0dXJuIGVpbmFfc3RyaW5n
c2hhcmVfcHJpbnRmKCJodHRwOi8vJXMiLCB1cmwpOworICAgIHJldHVybiBlaW5hX3N0cmluZ3No
YXJlX2FkZCh1cmwpOworfQorCitzdGF0aWMgdm9pZAorb25fdXJsYmFyX2tleV9kb3duKHZvaWQg
KmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pCit7Cisg
ICAgRXZhc19FdmVudF9LZXlfRG93biAqZXYgPSBldmVudF9pbmZvOworICAgIFVybF9CYXIgKnVy
bEJhciA9IChVcmxfQmFyICopZGF0YTsKKworICAgIGlmICghZXYtPmtleSB8fCBzdHJjbXAoZXYt
PmtleSwgIlJldHVybiIpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBjaGFyICp1cmwg
PSBfdXJsX2Jhcl91cmxfZ2V0X3dpdGhfcHJvdG9jb2wodXJsQmFyKTsKKyAgICBpZiAodXJsKSB7
CisgICAgICAgIGV3a192aWV3X3VyaV9zZXQodXJsQmFyLT53ZWJWaWV3LCB1cmwpOworICAgICAg
ICBlaW5hX3N0cmluZ3NoYXJlX2RlbCh1cmwpOworICAgIH0KKyAgICBldmFzX29iamVjdF9mb2N1
c19zZXQodXJsQmFyLT53ZWJWaWV3LCBFSU5BX1RSVUUpOworfQorCitzdGF0aWMgdm9pZAorb25f
dXJsYmFyX21vdXNlX2Rvd24odm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKm9iaiwg
dm9pZCAqZXZlbnRfaW5mbykKK3sKKyAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24gKmV2ID0gZXZl
bnRfaW5mbzsKKyAgICBVcmxfQmFyICp1cmxCYXIgPSAoVXJsX0JhciAqKWRhdGE7CisKKyAgICBp
ZiAoZXYtPmJ1dHRvbiA9PSAxKSB7CisgICAgICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldCh1cmxC
YXItPmVudHJ5LCBFSU5BX1RSVUUpOworICAgICAgICBlZGplX29iamVjdF9zaWduYWxfZW1pdCh1
cmxCYXItPmVudHJ5LCAiZW50cnksYWN0aW9uLGZvY3VzIiwgImVudHJ5Iik7CisgICAgfQorfQor
CitzdGF0aWMgdm9pZAorb25fdXJsYmFyX2ZvY3VzX291dCh2b2lkICpkYXRhLCBFdmFzICplLCBF
dmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQoreworICAgIFVybF9CYXIgKnVybEJh
ciA9IChVcmxfQmFyICopZGF0YTsKKworICAgIGVkamVfb2JqZWN0X3NpZ25hbF9lbWl0KHVybEJh
ci0+ZW50cnksICJlbnRyeSxhY3Rpb24sdW5mb2N1cyIsICJlbnRyeSIpOworfQorCitVcmxfQmFy
ICoKK3VybF9iYXJfYWRkKEV2YXNfT2JqZWN0ICp3ZWJWaWV3LCBpbnQgd2lkdGgpCit7CisgICAg
RXZhcyAqZXZhczsKKyAgICBVcmxfQmFyICp1cmxfYmFyOworICAgIGlmICghd2ViVmlldykKKyAg
ICAgICAgcmV0dXJuIE5VTEw7CisgICAgZXZhcyA9IGV2YXNfb2JqZWN0X2V2YXNfZ2V0KHdlYlZp
ZXcpOworCisgICAgdXJsX2JhciA9IChVcmxfQmFyICopbWFsbG9jKHNpemVvZihVcmxfQmFyKSk7
CisgICAgdXJsX2Jhci0+d2ViVmlldyA9IHdlYlZpZXc7CisKKyAgICB1cmxfYmFyLT5hcmVhID0g
ZXZhc19vYmplY3RfcmVjdGFuZ2xlX2FkZChldmFzKTsKKyAgICBldmFzX29iamVjdF9uYW1lX3Nl
dCh1cmxfYmFyLT5hcmVhLCAidXJsX2JhckFyZWEiKTsKKyAgICBldmFzX29iamVjdF9jb2xvcl9z
ZXQodXJsX2Jhci0+YXJlYSwgMjU1LCAyNTUsIDI1NSwgMjU1KTsKKyAgICBldmFzX29iamVjdF9t
b3ZlKHVybF9iYXItPmFyZWEsIDAsIDApOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZSh1cmxfYmFy
LT5hcmVhLCB3aWR0aCwgVVJMX0JBUl9IRUlHSFQpOworICAgIGV2YXNfb2JqZWN0X3Nob3codXJs
X2Jhci0+YXJlYSk7CisKKyAgICB1cmxfYmFyLT5lbnRyeSA9IGVkamVfb2JqZWN0X2FkZChldmFz
KTsKKyAgICBFaW5hX0Jvb2wgcmV0ID0gZWRqZV9vYmplY3RfZmlsZV9zZXQodXJsX2Jhci0+ZW50
cnksIFRIRU1FX0RJUiIvZW50cnkuZWRqIiwgImNvbnRyb2wvZW50cnkvYmFzZS9kZWZhdWx0Iik7
CisgICAgaWYgKCFyZXQpIHsKKyAgICAgICAgZXZhc19vYmplY3RfZGVsKHVybF9iYXItPmFyZWEp
OworCisgICAgICAgIGZyZWUodXJsX2Jhcik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0K
KworICAgIGVkamVfb2JqZWN0X3BhcnRfdGV4dF9zZXQodXJsX2Jhci0+ZW50cnksICJ1cmwudGV4
dCIsICIiKTsKKyAgICBldmFzX29iamVjdF9tb3ZlKHVybF9iYXItPmVudHJ5LCBQQURESU5HX1NJ
WkUsIFBBRERJTkdfU0laRSk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKHVybF9iYXItPmVudHJ5
LCB3aWR0aCAtIFBBRERJTkdfU0laRSAqIDIsIFVSTF9CQVJfSEVJR0hUIC0gUEFERElOR19TSVpF
ICogMik7CisgICAgZXZhc19vYmplY3Rfc2hvdyh1cmxfYmFyLT5lbnRyeSk7CisgICAgZXZhc19v
YmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKHVybF9iYXItPmVudHJ5LCBFVkFTX0NBTExCQUNLX01P
VVNFX0RPV04sIG9uX3VybGJhcl9tb3VzZV9kb3duLCB1cmxfYmFyKTsKKyAgICBldmFzX29iamVj
dF9ldmVudF9jYWxsYmFja19hZGQodXJsX2Jhci0+ZW50cnksIEVWQVNfQ0FMTEJBQ0tfS0VZX0RP
V04sIG9uX3VybGJhcl9rZXlfZG93biwgdXJsX2Jhcik7CisgICAgZXZhc19vYmplY3RfZXZlbnRf
Y2FsbGJhY2tfYWRkKHVybF9iYXItPmVudHJ5LCBFVkFTX0NBTExCQUNLX0ZPQ1VTX09VVCwgb25f
dXJsYmFyX2ZvY3VzX291dCwgdXJsX2Jhcik7CisKKyAgICByZXR1cm4gdXJsX2JhcjsKK30KKwor
dm9pZAordXJsX2Jhcl9kZWwoVXJsX0JhciAqdXJsQmFyKQoreworICAgIGlmICghdXJsQmFyKQor
ICAgICAgICByZXR1cm47CisKKyAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwodXJs
QmFyLT5lbnRyeSwgRVZBU19DQUxMQkFDS19LRVlfRE9XTiwgb25fdXJsYmFyX2tleV9kb3duKTsK
KyAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwodXJsQmFyLT5lbnRyeSwgRVZBU19D
QUxMQkFDS19NT1VTRV9ET1dOLCBvbl91cmxiYXJfbW91c2VfZG93bik7CisgICAgZXZhc19vYmpl
Y3RfZXZlbnRfY2FsbGJhY2tfZGVsKHVybEJhci0+ZW50cnksIEVWQVNfQ0FMTEJBQ0tfRk9DVVNf
T1VULCBvbl91cmxiYXJfZm9jdXNfb3V0KTsKKworICAgIGV2YXNfb2JqZWN0X2RlbCh1cmxCYXIt
PmFyZWEpOworICAgIGV2YXNfb2JqZWN0X2RlbCh1cmxCYXItPmVudHJ5KTsKKyAgICBmcmVlKHVy
bEJhcik7Cit9CisKK3ZvaWQKK3VybF9iYXJfdXJsX3NldChVcmxfQmFyICp1cmxCYXIsIGNvbnN0
IGNoYXIgKnVybCkKK3sKKyAgICBpZiAoIXVybEJhciB8fCAhdXJsKQorICAgICAgICByZXR1cm47
CisKKyAgICBlZGplX29iamVjdF9wYXJ0X3RleHRfc2V0KHVybEJhci0+ZW50cnksICJ1cmwudGV4
dCIsIHVybCk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9FV2ViTGF1bmNoZXIvdXJsX2Jhci5oIGIv
VG9vbHMvRVdlYkxhdW5jaGVyL3VybF9iYXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzI1NzZmYjU4OGFmMzNl
OWNmMjNiMmMwZmY0ZDIyMWVlOTUyNjg1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRVdlYkxh
dW5jaGVyL3VybF9iYXIuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIHVybF9iYXJfaAorI2RlZmlu
ZSB1cmxfYmFyX2gKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgor
CisjaW5jbHVkZSA8RXZhcy5oPgorCisjZGVmaW5lIFVSTF9CQVJfSEVJR0hUIDMwCisKK3R5cGVk
ZWYgc3RydWN0IF9VcmxfQmFyIHsKKyAgICBFdmFzX09iamVjdCAqd2ViVmlldzsKKyAgICBFdmFz
X09iamVjdCAqYXJlYTsKKyAgICBFdmFzX09iamVjdCAqZW50cnk7Cit9IFVybF9CYXI7CisKK1Vy
bF9CYXIgKnVybF9iYXJfYWRkKEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCBpbnQgd2lkdGgpOwordm9p
ZCB1cmxfYmFyX2RlbChVcmxfQmFyICp1cmxCYXIpOwordm9pZCB1cmxfYmFyX3VybF9zZXQoVXJs
X0JhciAqdXJsQmFyLCBjb25zdCBjaGFyICp1cmwpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30K
KyNlbmRpZgorI2VuZGlmIC8vIHVybF9iYXJfaApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dz
ZXIvZWZsL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL0NNYWtlTGlzdHMu
dHh0CmluZGV4IGZjNGZjZjM3MGUxNTc1ZjhjY2FkM2U2M2ZkN2I5ZjM1ZmNiMDNiOTYuLjUxODgx
NDk4ZGFmZTUzNGQxMTlhZGQ3YjI0NjkyNzBkYjMxYjQ0OTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01p
bmlCcm93c2VyL2VmbC9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwv
Q01ha2VMaXN0cy50eHQKQEAgLTEsNiArMSw3IEBACiBTRVQoTWluaUJyb3dzZXJfRElSICIke1RP
T0xTX0RJUn0vTWluaUJyb3dzZXIvZWZsIikKIAogU0VUKE1pbmlCcm93c2VyX1NPVVJDRVMKKyAg
ICAke1RPT0xTX0RJUn0vRVdlYkxhdW5jaGVyL3VybF9iYXIuYwogICAgICR7TWluaUJyb3dzZXJf
RElSfS9tYWluLmMKICkKIApAQCAtMTAsNiArMTEsNyBAQCBTRVQoTWluaUJyb3dzZXJfSU5DTFVE
RV9ESVJFQ1RPUklFUwogICAgICR7RURKRV9JTkNMVURFX0RJUlN9CiAgICAgJHtFRkxERVBTX0lO
Q0xVREVfRElSU30KICAgICAke0VWQVNfSU5DTFVERV9ESVJTfQorICAgICR7VE9PTFNfRElSfS9F
V2ViTGF1bmNoZXIKICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL2VmbAogICAgICR7
V0VCS0lUMl9ESVJ9CiAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UKQEAgLTU0LDMgKzU2
LDUgQEAgQUREX0VYRUNVVEFCTEUoTWluaUJyb3dzZXIgJHtNaW5pQnJvd3Nlcl9TT1VSQ0VTfSkK
IFRBUkdFVF9MSU5LX0xJQlJBUklFUyhNaW5pQnJvd3NlciAke01pbmlCcm93c2VyX0xJQlJBUklF
U30pCiBBRERfVEFSR0VUX1BST1BFUlRJRVMoTWluaUJyb3dzZXIgTElOS19GTEFHUyAiJHtNaW5p
QnJvd3Nlcl9MSU5LX0ZMQUdTfSIpCiBTRVRfVEFSR0VUX1BST1BFUlRJRVMoTWluaUJyb3dzZXIg
UFJPUEVSVElFUyBGT0xERVIgIlRvb2xzIikKKworQUREX0RFUEVOREVOQ0lFUyhNaW5pQnJvd3Nl
ciBUaGVtZUNvbnRyb2wpCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5j
IGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYwppbmRleCAwMjYzMGYxYTgyNzAzZDZhOWIz
ZTJlNThlMzQyMDU5NmVkZTg2NjVhLi4xY2JmNzg0NGFlMDllNjhiZmVjOGE4ODhhN2NhNDMwMmVj
MjgwODlkIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCisrKyBiL1Rv
b2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMKQEAgLTE4LDYgKzE4LDcgQEAKICAqLwogCiAjaW5j
bHVkZSAiRVdlYktpdDIuaCIKKyNpbmNsdWRlICJ1cmxfYmFyLmgiCiAjaW5jbHVkZSA8RWNvcmUu
aD4KICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWluYS5oPgpAQCAtNDEsNiAr
NDIsNyBAQCB0eXBlZGVmIHN0cnVjdCBfTWluaUJyb3dzZXIgewogICAgIEV2YXMgKmV2YXM7CiAg
ICAgRXZhc19PYmplY3QgKmJnOwogICAgIEV2YXNfT2JqZWN0ICpicm93c2VyOworICAgIFVybF9C
YXIgKnVybF9iYXI7CiB9IE1pbmlCcm93c2VyOwogCiBzdGF0aWMgY29uc3QgRWNvcmVfR2V0b3B0
IG9wdGlvbnMgPSB7CkBAIC0xNTUsNiArMTU3LDEzIEBAIG9uX3RpdGxlX2NoYW5nZWQodm9pZCAq
dXNlcl9kYXRhLCBFdmFzX09iamVjdCAqd2Vidmlldywgdm9pZCAqZXZlbnRfaW5mbykKIH0KIAog
c3RhdGljIHZvaWQKK29uX3VybF9jaGFuZ2VkKHZvaWQgKnVzZXJfZGF0YSwgRXZhc19PYmplY3Qg
KndlYnZpZXcsIHZvaWQgKmV2ZW50X2luZm8pCit7CisgICAgTWluaUJyb3dzZXIgKmFwcCA9IChN
aW5pQnJvd3NlciAqKXVzZXJfZGF0YTsKKyAgICB1cmxfYmFyX3VybF9zZXQoYXBwLT51cmxfYmFy
LCBld2tfdmlld191cmlfZ2V0KGFwcC0+YnJvd3NlcikpOworfQorCitzdGF0aWMgdm9pZAogb25f
cHJvZ3Jlc3Modm9pZCAqdXNlcl9kYXRhLCBFdmFzX09iamVjdCAqd2Vidmlldywgdm9pZCAqZXZl
bnRfaW5mbykKIHsKICAgICBNaW5pQnJvd3NlciAqYXBwID0gKE1pbmlCcm93c2VyICopdXNlcl9k
YXRhOwpAQCAtMjI0LDE0ICsyMzMsMTggQEAgc3RhdGljIE1pbmlCcm93c2VyICpicm93c2VyQ3Jl
YXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqZW5naW5lKQogICAgIGV2YXNfb2JqZWN0
X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJsb2FkLGVycm9yIiwgb25fZXJyb3Is
IGFwcCk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3Nlciwg
ImxvYWQscHJvZ3Jlc3MiLCBvbl9wcm9ncmVzcywgYXBwKTsKICAgICBldmFzX29iamVjdF9zbWFy
dF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCAidGl0bGUsY2hhbmdlZCIsIG9uX3RpdGxlX2No
YW5nZWQsIGFwcCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJv
d3NlciwgInVyaSxjaGFuZ2VkIiwgb25fdXJsX2NoYW5nZWQsIGFwcCk7CiAKICAgICBldmFzX29i
amVjdF9ldmVudF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0tFWV9E
T1dOLCBvbl9rZXlfZG93biwgYXBwKTsKIAogICAgIGV2YXNfb2JqZWN0X3NpemVfaGludF93ZWln
aHRfc2V0KGFwcC0+YnJvd3NlciwgRVZBU19ISU5UX0VYUEFORCwgRVZBU19ISU5UX0VYUEFORCk7
Ci0gICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YnJvd3NlciwgREVGQVVMVF9XSURUSCwgREVG
QVVMVF9IRUlHSFQpOworICAgIGV2YXNfb2JqZWN0X21vdmUoYXBwLT5icm93c2VyLCAwLCBVUkxf
QkFSX0hFSUdIVCk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YnJvd3NlciwgREVGQVVM
VF9XSURUSCwgREVGQVVMVF9IRUlHSFQgLSBVUkxfQkFSX0hFSUdIVCk7CiAgICAgZXZhc19vYmpl
Y3Rfc2hvdyhhcHAtPmJyb3dzZXIpOwogICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldChhcHAtPmJy
b3dzZXIsIEVJTkFfVFJVRSk7CiAKKyAgICBhcHAtPnVybF9iYXIgPSB1cmxfYmFyX2FkZChhcHAt
PmJyb3dzZXIsIERFRkFVTFRfV0lEVEgpOworCiAgICAgZXdrX3ZpZXdfdXJpX3NldChhcHAtPmJy
b3dzZXIsIHVybCk7CiAKICAgICByZXR1cm4gYXBwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160135</attachid>
            <date>2012-08-23 05:20:16 -0700</date>
            <delta_ts>2012-08-23 06:04:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63966-20120823212011.patch</filename>
            <type>text/plain</type>
            <size>22256</size>
            <attacher name="Ryuan Choi">ryuan.choi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NDExCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDhhNjkxMWQzYmJkNjU4ZmViYWRiNGY4ZWNiMDc0NWYy
MDcxZjVkYy4uMWM0MjRkMDVkNTFjMWYyYzgyYzIwMjNkMjkwNjY4NGM3NDY2NzBjYSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0
IEBACisyMDEyLTA4LTIzICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbRUZMXSBBZGQgdXJsIGJhciB0byBFV2ViTGF1bmNoZXIgYW5kIE1pbmlCcm93c2Vy
L0VmbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYz
OTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRVdl
YkxhdW5jaGVyIGFuZCBNaW5pQnJvd3Nlci9FZmwgZGlkIG5vdCBoYXZlIGZ1bmN0aW9uYWxpdHkg
dGhhdCB1c2VycworICAgICAgICBuYXZpZ2F0ZXMgdGhlIHNpdGUgd2hpY2ggdGhleSB3YW50Lgor
ICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIHVybGJhciBhbmQgZnVuY3Rpb25hbGl0eSB0byBs
b2FkIHVybCB3aGljaCB1c2VycyB3YW50LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgIEFkZGVkIHRvIHNoYXJlIHVybGJhciB0aGVtZSBmb3IgYm90aCBFV2ViTGF1bmNoZXIg
YW5kIE1pbmlCcm93c2VyL0VmbC4KKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgIEFkZGVkIHVybGJhci5jIGFuZCBkZXBlbmRlbmN5IG9mIHVybGJhciB0aGVt
ZS4KKyAgICAgICAgSW4gYWRkaXRpb24sIGNoYW5nZWQgbWFjcm8gbmFtZSB0byBUSEVNRV9ESVIg
dG8gc2hhcmUgdGhlIGNvZGUgZWFzaWx5LgorICAgICAgICAqIEVXZWJMYXVuY2hlci9Db250cm9s
VGhlbWUvQ01ha2VMaXN0cy50eHQ6IEFkZGVkIGZvciB1cmxiYXIgdGhlbWUuCisgICAgICAgICog
RVdlYkxhdW5jaGVyL0NvbnRyb2xUaGVtZS9lbnRyeS5lZGM6IEltcGxlbWVudGVkIHVybGJhciB0
aGVtZS4KKyAgICAgICAgKiBFV2ViTGF1bmNoZXIvbWFpbi5jOgorICAgICAgICBJbXBsZW1lbnRl
ZCB0byB1c2UgdGhlIHVybGJhci4KKyAgICAgICAgSW4gYWRkaXRpb24sIHJlbW92ZSB1bm5lY2Vz
c2FyeSBib3JkZXIgb2Ygd2VidmlldyB0byBjb250cm9sIHdlYnZpZXcgYW5kIHVybGJhciBlYXNp
bHkuCisgICAgICAgIChfRUxhdW5jaGVyKToKKyAgICAgICAgKG9uX3VybF9jaGFuZ2VkKToKKyAg
ICAgICAgKGJyb3dzZXJDcmVhdGUpOgorICAgICAgICAoY2xvc2VXaW5kb3cpOgorICAgICAgICAo
ZmluZFRoZW1lUGF0aCk6CisgICAgICAgICogRVdlYkxhdW5jaGVyL3VybF9iYXIuYzogSW1wbGVt
ZW50ZWQgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdXJsYmFyLgorICAgICAgICAoX3VybF9iYXJfdXJs
X2dldF93aXRoX3Byb3RvY29sKToKKyAgICAgICAgKG9uX3VybGJhcl9rZXlfZG93bik6CisgICAg
ICAgIChvbl91cmxiYXJfbW91c2VfZG93bik6CisgICAgICAgIChvbl91cmxiYXJfZm9jdXNfb3V0
KToKKyAgICAgICAgKHVybF9iYXJfYWRkKToKKyAgICAgICAgKHVybF9iYXJfZGVsKToKKyAgICAg
ICAgKHVybF9iYXJfdXJsX3NldCk6CisgICAgICAgICogRVdlYkxhdW5jaGVyL3VybF9iYXIuaDog
QWRkZWQuCisgICAgICAgICogTWluaUJyb3dzZXIvZWZsL0NNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIE1pbmlCcm93c2VyL2VmbC9tYWluLmM6IEltcGxlbWVudGVkIHRvIHVzZSB0aGUgdXJsYmFy
LgorICAgICAgICAoX01pbmlCcm93c2VyKToKKyAgICAgICAgKG9uX3VybF9jaGFuZ2VkKToKKyAg
ICAgICAgKGJyb3dzZXJDcmVhdGUpOgorCiAyMDEyLTA4LTIzICDDgWTDoW0gS2FsbGFpICA8a2Fk
YW1AaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEFkZGluZyBteXNlbGYg
dG8gY29tbWl0dGVycyBsaXN0LgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ01ha2VMaXN0cy50eHQgYi9U
b29scy9DTWFrZUxpc3RzLnR4dAppbmRleCBhZWQ3MTQ0MmU2ZGI1OGNjNzBkMzY4MzNhYzdhNWQ1
M2U4OWU2OWRmLi4xYTZhNjliZTgyNjFiZGJmYmQ0MjlmMTBlN2Q2YTQxMWNmZWU1ZGNkIDEwMDY0
NAotLS0gYS9Ub29scy9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9DTWFrZUxpc3RzLnR4dApA
QCAtMyw2ICszLDggQEAgSUYgKEVOQUJMRV9XRUJLSVQyKQogRU5ESUYgKCkKIAogSUYgKCIke1BP
UlR9IiBTVFJFUVVBTCAiRWZsIikKKyAgICBBRERfU1VCRElSRUNUT1JZKEVXZWJMYXVuY2hlci9D
b250cm9sVGhlbWUpCisKICAgICBJRiAoRU5BQkxFX1dFQktJVCkKICAgICAgICAgQUREX1NVQkRJ
UkVDVE9SWShEdW1wUmVuZGVyVHJlZS9lZmwpCiAgICAgICAgIEFERF9TVUJESVJFQ1RPUlkoRVdl
YkxhdW5jaGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRVdlYkxhdW5jaGVyL0NNYWtlTGlzdHMudHh0
IGIvVG9vbHMvRVdlYkxhdW5jaGVyL0NNYWtlTGlzdHMudHh0CmluZGV4IDNjNDg5YTRmZDkwYzEx
NWQ2ODA1MjBmODA5MzAzYmNjMzljZTZhODMuLmJkODc5YWQyYWM0ZmFlODkyYzdkYWRmMTZhMDkx
YmU0N2QxYjEzMDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0VXZWJMYXVuY2hlci9DTWFrZUxpc3RzLnR4
dAorKysgYi9Ub29scy9FV2ViTGF1bmNoZXIvQ01ha2VMaXN0cy50eHQKQEAgLTEsNCArMSw1IEBA
CiBTRVQoRVdlYkxhdW5jaGVyX1NPVVJDRVMKKyAgICAke1RPT0xTX0RJUn0vRVdlYkxhdW5jaGVy
L3VybF9iYXIuYwogICAgICR7VE9PTFNfRElSfS9FV2ViTGF1bmNoZXIvbWFpbi5jCiApCiAKQEAg
LTM1LDEwICszNiwxMiBAQCBTRVQoRVdlYkxhdW5jaGVyX0xJTktfRkxBR1MKICAgICAke0VWQVNf
TERGTEFHU30KICkKIAotQUREX0RFRklOSVRJT05TKC1EREFUQV9ESVI9XCIke1RIRU1FX0JJTkFS
WV9ESVJ9XCIpCitBRERfREVGSU5JVElPTlMoLURUSEVNRV9ESVI9XCIke1RIRU1FX0JJTkFSWV9E
SVJ9XCIpCiAKIElOQ0xVREVfRElSRUNUT1JJRVMoJHtFV2ViTGF1bmNoZXJfSU5DTFVERV9ESVJF
Q1RPUklFU30pCiBBRERfRVhFQ1VUQUJMRShFV2ViTGF1bmNoZXIgJHtFV2ViTGF1bmNoZXJfU09V
UkNFU30pCiBUQVJHRVRfTElOS19MSUJSQVJJRVMoRVdlYkxhdW5jaGVyICR7RVdlYkxhdW5jaGVy
X0xJQlJBUklFU30pCiBBRERfVEFSR0VUX1BST1BFUlRJRVMoRVdlYkxhdW5jaGVyIExJTktfRkxB
R1MgIiR7RVdlYkxhdW5jaGVyX0xJTktfRkxBR1N9IikKIFNFVF9UQVJHRVRfUFJPUEVSVElFUyhF
V2ViTGF1bmNoZXIgUFJPUEVSVElFUyBGT0xERVIgIlRvb2xzIikKKworQUREX0RFUEVOREVOQ0lF
UyhFV2ViTGF1bmNoZXIgQ29udHJvbFRoZW1lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRVdlYkxhdW5j
aGVyL0NvbnRyb2xUaGVtZS9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL0VXZWJMYXVuY2hlci9Db250
cm9sVGhlbWUvQ01ha2VMaXN0cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjhhYThjZjE5YWIzZmFjN2RjYjAw
ZGE0YzBhOTg1OGNlY2RjNDU4MwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0VXZWJMYXVuY2hl
ci9Db250cm9sVGhlbWUvQ01ha2VMaXN0cy50eHQKQEAgLTAsMCArMSw4IEBACitTRVQoQ29udHJv
bFRoZW1lX0RJUiAiJHtUT09MU19ESVJ9L0VXZWJMYXVuY2hlci9Db250cm9sVGhlbWUiKQorCitB
RERfQ1VTVE9NX1RBUkdFVChDb250cm9sVGhlbWUgQUxMCisgICAgQ09NTUFORCAke0VESkVfQ0Nf
RVhFQ1VUQUJMRX0gLXYgJHtDb250cm9sVGhlbWVfRElSfS9lbnRyeS5lZGMgJHtUSEVNRV9CSU5B
UllfRElSfS9lbnRyeS5lZGoKKyAgICBERVBFTkRTCisgICAgICAgICR7Q29udHJvbFRoZW1lX0RJ
Un0vZW50cnkuZWRjCisgICAgVkVSQkFUSU0KKykKZGlmZiAtLWdpdCBhL1Rvb2xzL0VXZWJMYXVu
Y2hlci9Db250cm9sVGhlbWUvZW50cnkuZWRjIGIvVG9vbHMvRVdlYkxhdW5jaGVyL0NvbnRyb2xU
aGVtZS9lbnRyeS5lZGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ExYTVmNzM5YjgwZDg3YTYyYjc0N2E3MGZhMjcy
ZTk5ODY1ZjYzNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9Db250cm9s
VGhlbWUvZW50cnkuZWRjCkBAIC0wLDAgKzEsMTQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitjb2xsZWN0aW9ucyB7CisgICBncm91cCB7
CisgICAgICBuYW1lOiAiY29udHJvbC9lbnRyeS9iYXNlL2RlZmF1bHQiOworICAgICAgc3R5bGVz
IHsKKyAgICAgICAgIHN0eWxlIHsKKyAgICAgICAgICAgIG5hbWU6ICJlbnRyeV90ZXh0YmxvY2tf
c3R5bGUiOworICAgICAgICAgICAgYmFzZTogImZvbnQ9Um9tYW4gZm9udF9zaXplPTE0IGNvbG9y
PSMwMDAwMDAgd3JhcD1taXhlZCI7CisgICAgICAgICB9CisgICAgICB9CisgICAgICBwYXJ0cyB7
CisgICAgICAgICBwYXJ0IHsKKyAgICAgICAgICAgIG5hbWU6ICJ1cmwudGV4dCI7CisgICAgICAg
ICAgICB0eXBlOiBURVhUQkxPQ0s7CisgICAgICAgICAgICBtb3VzZV9ldmVudHM6IDE7CisgICAg
ICAgICAgICBzY2FsZTogMTsKKyAgICAgICAgICAgIGVudHJ5X21vZGU6IEVESVRBQkxFOworICAg
ICAgICAgICAgbXVsdGlsaW5lOiAwOworICAgICAgICAgICAgc291cmNlOiAiY29udHJvbC9lbnRy
eS9zZWxlY3Rpb24vZGVmYXVsdCI7IC8vIHNlbGVjdGlvbiB1bmRlcgorICAgICAgICAgICAgc291
cmNlNDogImNvbnRyb2wvZW50cnkvY3Vyc29yL2RlZmF1bHQiOyAvLyBjdXJzb3Igb3ZlcgorICAg
ICAgICAgICAgZGVzY3JpcHRpb24geworICAgICAgICAgICAgICAgc3RhdGU6ICJkZWZhdWx0IiAw
LjA7CisgICAgICAgICAgICAgICBmaXhlZDogMSAwOworICAgICAgICAgICAgICAgdGV4dCB7Cisg
ICAgICAgICAgICAgICAgICBzdHlsZTogImVudHJ5X3RleHRibG9ja19zdHlsZSI7CisgICAgICAg
ICAgICAgICAgICBtaW46IDAgMTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgIH0KKyAgICAgIH0KKyAgICAgIHByb2dyYW1zIHsKKyAgICAgICAgIHByb2dyYW0gewor
ICAgICAgICAgICAgbmFtZTogImZvY3VzIjsKKyAgICAgICAgICAgIHNpZ25hbDogImxvYWQiOwor
ICAgICAgICAgICAgc291cmNlOiAiIjsKKyAgICAgICAgICAgIGFjdGlvbjogRk9DVVNfU0VUOwor
ICAgICAgICAgICAgdGFyZ2V0OiAidXJsLnRleHQiOworICAgICAgICAgfQorICAgICAgfQorICAg
fQorCisgICBncm91cCB7CisgICAgICBuYW1lOiAiY29udHJvbC9lbnRyeS9jdXJzb3IvZGVmYXVs
dCI7CisgICAgICBwYXJ0cyB7CisgICAgICAgICBwYXJ0IHsKKyAgICAgICAgICAgIG5hbWU6ICJj
bGlwIjsKKyAgICAgICAgICAgIHR5cGU6IFJFQ1Q7CisgICAgICAgICAgICBtb3VzZV9ldmVudHM6
IDA7CisgICAgICAgICAgICBzY2FsZTogMTsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uIHsKKyAg
ICAgICAgICAgICAgIHN0YXRlOiAiZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgcmVsMS5v
ZmZzZXQ6IC0xMCAwOworICAgICAgICAgICAgICAgcmVsMi5vZmZzZXQ6IDkgOTsKKyAgICAgICAg
ICAgICAgIHZpc2libGU6IDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkZXNjcmlwdGlv
biB7CisgICAgICAgICAgICAgICBzdGF0ZTogImZvY3VzZWQiIDAuMDsKKyAgICAgICAgICAgICAg
IGluaGVyaXQ6ICJkZWZhdWx0IiAwLjA7CisgICAgICAgICAgICAgICB2aXNpYmxlOiAxOworICAg
ICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgICAgcGFydCB7CisgICAgICAgICAgICBuYW1l
OiAiY3Vyc29yIjsKKyAgICAgICAgICAgIHR5cGU6IFJFQ1Q7CisgICAgICAgICAgICBtb3VzZV9l
dmVudHM6IDA7CisgICAgICAgICAgICBzY2FsZTogMTsKKyAgICAgICAgICAgIGNsaXBfdG86ICJj
bGlwIjsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uIHsKKyAgICAgICAgICAgICAgIHN0YXRlOiAi
ZGVmYXVsdCIgMC4wOworICAgICAgICAgICAgICAgbWluOiAxIDA7CisgICAgICAgICAgICAgICBm
aXhlZDogMSAwOworICAgICAgICAgICAgICAgYWxpZ246IDAuNSAwLjU7CisgICAgICAgICAgICAg
ICB2aXNpYmxlOiAxOworICAgICAgICAgICAgICAgcmVsMSB7CisgICAgICAgICAgICAgICAgICBy
ZWxhdGl2ZTogMC4wICAwLjA7CisgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAgMjsKKyAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIHJlbDIgeworICAgICAgICAgICAgICAgICAgcmVs
YXRpdmU6IDAuMCAgMS4wOworICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwIC0yOworICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgY29sb3I6IDAgMCAwIDI1NTsgLy8gY3Vyc29yIGNv
bG9yCisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICB9CisgICAgICBwcm9ncmFtcyB7
CisgICAgICAgICBwcm9ncmFtIHsKKyAgICAgICAgICAgIG5hbWU6ICJmb2N1c2VkIjsKKyAgICAg
ICAgICAgIHNpZ25hbDogImVudHJ5LGFjdGlvbixmb2N1cyI7CisgICAgICAgICAgICBzb3VyY2U6
ICJlbnRyeSI7CisgICAgICAgICAgICBhY3Rpb246IFNUQVRFX1NFVCAiZm9jdXNlZCIgMC4wOwor
ICAgICAgICAgICAgdGFyZ2V0OiAiY2xpcCI7CisgICAgICAgICB9CisgICAgICAgICBwcm9ncmFt
IHsKKyAgICAgICAgICAgIG5hbWU6ICJ1bmZvY3VzZWQiOworICAgICAgICAgICAgc2lnbmFsOiAi
ZW50cnksYWN0aW9uLHVuZm9jdXMiOworICAgICAgICAgICAgc291cmNlOiAiZW50cnkiOworICAg
ICAgICAgICAgYWN0aW9uOiBTVEFURV9TRVQgImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgIHRh
cmdldDogImNsaXAiOworICAgICAgICAgfQorICAgICAgfQorICAgfQorCisgICBncm91cCB7Cisg
ICAgICBuYW1lOiAiY29udHJvbC9lbnRyeS9zZWxlY3Rpb24vZGVmYXVsdCI7CisgICAgICBwYXJ0
cyB7CisgICAgICAgICBwYXJ0IHsKKyAgICAgICAgICAgIG5hbWU6ICJiZyI7CisgICAgICAgICAg
ICB0eXBlOiBSRUNUOworICAgICAgICAgICAgc2NhbGU6IDE7CisgICAgICAgICAgICBtb3VzZV9l
dmVudHM6IDA7CisgICAgICAgICAgICBkZXNjcmlwdGlvbiB7CisgICAgICAgICAgICAgICBzdGF0
ZTogImRlZmF1bHQiIDAuMDsKKyAgICAgICAgICAgICAgIGNvbG9yOiAxMzggMTgzIDIyMyAxMjg7
CisgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICB9CisgICB9Cit9CmRpZmYgLS1naXQg
YS9Ub29scy9FV2ViTGF1bmNoZXIvbWFpbi5jIGIvVG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYwpp
bmRleCA0MDg5ZDZlY2EyNGEzNjA5NDY4NTE5YWFjOTM4ZmUxOGZlZDA0YzU4Li4wNjcwM2NmZjk2
NWZiZjYxNjg1ZGZlYTA4MWQ1Y2RhNzc4Y2Y3MTI5IDEwMDY0NAotLS0gYS9Ub29scy9FV2ViTGF1
bmNoZXIvbWFpbi5jCisrKyBiL1Rvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMKQEAgLTMwLDcgKzMw
LDcgQEAKIAogI2luY2x1ZGUgIkVXZWJLaXQuaCIKIAotI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5j
bHVkZSAidXJsX2Jhci5oIgogI2luY2x1ZGUgPEVjb3JlLmg+CiAjaW5jbHVkZSA8RWNvcmVfRXZh
cy5oPgogI2luY2x1ZGUgPEVjb3JlX0ZpbGUuaD4KQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRl
IDxFY29yZV9YLmg+CiAjaW5jbHVkZSA8RWRqZS5oPgogI2luY2x1ZGUgPEV2YXMuaD4KKyNpbmNs
dWRlIDxjdHlwZS5oPgogI2luY2x1ZGUgPGludHR5cGVzLmg+CiAjaW5jbHVkZSA8bGltaXRzLmg+
CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTE0Myw2ICsxNDQsNyBAQCB0eXBlZGVmIHN0cnVjdCBf
RUxhdW5jaGVyIHsKICAgICBFdmFzICpldmFzOwogICAgIEV2YXNfT2JqZWN0ICpiZzsKICAgICBF
dmFzX09iamVjdCAqYnJvd3NlcjsKKyAgICBVcmxfQmFyICp1cmxfYmFyOwogICAgIGNvbnN0IGNo
YXIgKnRoZW1lOwogICAgIGNvbnN0IGNoYXIgKnVzZXJBZ2VudDsKICAgICBjb25zdCBjaGFyICpi
YWNraW5nU3RvcmU7CkBAIC00MDIsNiArNDA0LDEzIEBAIG9uX2lucHV0bWV0aG9kX2NoYW5nZWQo
dm9pZCogdXNlcl9kYXRhLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5mbykK
IH0KIAogc3RhdGljIHZvaWQKK29uX3VybF9jaGFuZ2VkKHZvaWQqIHVzZXJfZGF0YSwgRXZhc19P
YmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2ZW50X2luZm8pCit7CisgICAgRUxhdW5jaGVyICphcHAg
PSAoRUxhdW5jaGVyICopdXNlcl9kYXRhOworICAgIHVybF9iYXJfdXJsX3NldChhcHAtPnVybF9i
YXIsIGV3a192aWV3X3VyaV9nZXQoYXBwLT5icm93c2VyKSk7Cit9CisKK3N0YXRpYyB2b2lkCiBv
bl9tb3VzZV9kb3duKHZvaWQqIGRhdGEsIEV2YXMqIGUsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2
b2lkKiBldmVudF9pbmZvKQogewogICAgIEV2YXNfRXZlbnRfTW91c2VfRG93biAqZXYgPSAoRXZh
c19FdmVudF9Nb3VzZV9Eb3duKikgZXZlbnRfaW5mbzsKQEAgLTY5NSw2ICs3MDQsNyBAQCBicm93
c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqdGhlbWUsIGNvbnN0IGNoYXIg
KnVzZXJBZ2VudCwgRWluYV9SZQogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChh
cHAtPmJyb3dzZXIsICJtZW51YmFyLHZpc2libGUsZ2V0Iiwgb25fbWVudWJhcl92aXNpYmxlX2dl
dCwgYXBwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBwLT5icm93c2Vy
LCAidG9vbHRpcCx0ZXh0LHNldCIsIG9uX3Rvb2x0aXBfdGV4dF9zZXQsIGFwcCk7CiAgICAgZXZh
c19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgImlucHV0bWV0aG9kLGNo
YW5nZWQiLCBvbl9pbnB1dG1ldGhvZF9jaGFuZ2VkLCBhcHApOworICAgIGV2YXNfb2JqZWN0X3Nt
YXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJ1cmksY2hhbmdlZCIsIG9uX3VybF9jaGFu
Z2VkLCBhcHApOwogCiAvKiAgICAgZXdrX2NhbGxiYWNrX3Jlc2l6ZV9yZXF1ZXN0ZWRfYWRkKGFw
cC0+YnJvd3Nlciwgb25fcmVzaXplX3JlcXVlc3RlZCwgYXBwLT5lZSk7ICovCiAKQEAgLTcwNCw4
ICs3MTQsMTAgQEAgYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmwsIGNvbnN0IGNoYXIgKnRo
ZW1lLCBjb25zdCBjaGFyICp1c2VyQWdlbnQsIEVpbmFfUmUKICAgICBldmFzX29iamVjdF9ldmVu
dF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0ZPQ1VTX09VVCwgb25f
Zm9jdXNfb3V0LCBhcHApOwogICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAt
PmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfREVMLCBvbl9icm93c2VyX2RlbCwgYXBwKTsKIAotICAg
IGV2YXNfb2JqZWN0X21vdmUoYXBwLT5icm93c2VyLCAxMCwgMTApOwotICAgIGV2YXNfb2JqZWN0
X3Jlc2l6ZShhcHAtPmJyb3dzZXIsIGdlb21ldHJ5LncgLSAyMCwgZ2VvbWV0cnkuaCAtIDIwKTsK
KyAgICBhcHAtPnVybF9iYXIgPSB1cmxfYmFyX2FkZChhcHAtPmJyb3dzZXIsIERFRkFVTFRfV0lE
VEgpOworCisgICAgZXZhc19vYmplY3RfbW92ZShhcHAtPmJyb3dzZXIsIDAsIFVSTF9CQVJfSEVJ
R0hUKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUoYXBwLT5icm93c2VyLCBnZW9tZXRyeS53LCBn
ZW9tZXRyeS5oIC0gVVJMX0JBUl9IRUlHSFQpOwogCiAgICAgaWYgKHVybCAmJiAodXJsWzBdICE9
ICdcMCcpKQogICAgICAgICBld2tfdmlld191cmlfc2V0KGFwcC0+YnJvd3NlciwgdXJsKTsKQEAg
LTczOSw2ICs3NTEsNyBAQCBjbG9zZVdpbmRvdyhFY29yZV9FdmFzICplZSkKICAgICAgICAgICAg
IGJyZWFrOwogICAgIH0KICAgICB3aW5kb3dzID0gZWluYV9saXN0X3JlbW92ZSh3aW5kb3dzLCBh
cHApOworICAgIHVybF9iYXJfZGVsKCgoRUxhdW5jaGVyICopYXBwKS0+dXJsX2Jhcik7CiAgICAg
YnJvd3NlckRlc3Ryb3koZWUpOwogICAgIGZyZWUoYXBwKTsKIH0KQEAgLTc2MCwxMiArNzczLDEy
IEBAIG1haW5fc2lnbmFsX2V4aXQodm9pZCAqZGF0YSwgaW50IGV2X3R5cGUsIHZvaWQgKmV2KQog
c3RhdGljIGNoYXIgKgogZmluZFRoZW1lUGF0aChjb25zdCBjaGFyICp0aGVtZSkKIHsKLSAgICBj
b25zdCBjaGFyICpkZWZhdWx0VGhlbWUgPSBEQVRBX0RJUiIvZGVmYXVsdC5lZGoiOworICAgIGNv
bnN0IGNoYXIgKmRlZmF1bHRfdGhlbWUgPSBUSEVNRV9ESVIiL2RlZmF1bHQuZWRqIjsKICAgICBj
aGFyICpycGF0aDsKICAgICBzdHJ1Y3Qgc3RhdCBzdDsKIAogICAgIGlmICghdGhlbWUpCi0gICAg
ICAgIHRoZW1lID0gZGVmYXVsdFRoZW1lOworICAgICAgICB0aGVtZSA9IGRlZmF1bHRfdGhlbWU7
CiAKICAgICBycGF0aCA9IGVjb3JlX2ZpbGVfcmVhbHBhdGgodGhlbWUpOwogICAgIGlmICghc3Ry
bGVuKHJwYXRoKSB8fCBzdGF0KHJwYXRoLCAmc3QpKSB7CmRpZmYgLS1naXQgYS9Ub29scy9FV2Vi
TGF1bmNoZXIvdXJsX2Jhci5jIGIvVG9vbHMvRVdlYkxhdW5jaGVyL3VybF9iYXIuYwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40ZWM2YjFiMjgxZDhhYTczZmE4YzNkNWUyY2IwYThmMzMyMjNiYTAzCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvRVdlYkxhdW5jaGVyL3VybF9iYXIuYwpAQCAtMCwwICsxLDE0MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgInVybF9iYXIuaCIKKworI2luY2x1ZGUgPEVkamUuaD4KKyNpbmNsdWRlIDxFY29yZV9G
aWxlLmg+CisKKyNkZWZpbmUgUEFERElOR19TSVpFIDUKKworc3RhdGljIGNvbnN0IGNoYXIgKgor
X3VybF9iYXJfdXJsX2dldF93aXRoX3Byb3RvY29sKFVybF9CYXIgKnVybEJhcikKK3sKKyAgICBj
b25zdCBjaGFyICp1cmwgPSBlZGplX29iamVjdF9wYXJ0X3RleHRfZ2V0KHVybEJhci0+ZW50cnks
ICJ1cmwudGV4dCIpOworICAgIGlmIChlY29yZV9maWxlX2V4aXN0cyh1cmwpKQorICAgICAgICBy
ZXR1cm4gZWluYV9zdHJpbmdzaGFyZV9wcmludGYoImZpbGU6Ly8lcyIsIHVybCk7CisKKyAgICBp
ZiAoIXN0cnN0cih1cmwsICI6Ly8iKSkKKyAgICAgICAgcmV0dXJuIGVpbmFfc3RyaW5nc2hhcmVf
cHJpbnRmKCJodHRwOi8vJXMiLCB1cmwpOworICAgIHJldHVybiBlaW5hX3N0cmluZ3NoYXJlX2Fk
ZCh1cmwpOworfQorCitzdGF0aWMgdm9pZAorb25fdXJsYmFyX2tleV9kb3duKHZvaWQgKmRhdGEs
IEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQgKmV2ZW50X2luZm8pCit7CisgICAgRXZh
c19FdmVudF9LZXlfRG93biAqZXYgPSBldmVudF9pbmZvOworICAgIFVybF9CYXIgKnVybEJhciA9
IChVcmxfQmFyICopZGF0YTsKKworICAgIGlmICghZXYtPmtleSB8fCBzdHJjbXAoZXYtPmtleSwg
IlJldHVybiIpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBjaGFyICp1cmwgPSBfdXJs
X2Jhcl91cmxfZ2V0X3dpdGhfcHJvdG9jb2wodXJsQmFyKTsKKyAgICBpZiAodXJsKSB7CisgICAg
ICAgIGV3a192aWV3X3VyaV9zZXQodXJsQmFyLT53ZWJWaWV3LCB1cmwpOworICAgICAgICBlaW5h
X3N0cmluZ3NoYXJlX2RlbCh1cmwpOworICAgIH0KKyAgICBldmFzX29iamVjdF9mb2N1c19zZXQo
dXJsQmFyLT53ZWJWaWV3LCBFSU5BX1RSVUUpOworfQorCitzdGF0aWMgdm9pZAorb25fdXJsYmFy
X21vdXNlX2Rvd24odm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKm9iaiwgdm9pZCAq
ZXZlbnRfaW5mbykKK3sKKyAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24gKmV2ID0gZXZlbnRfaW5m
bzsKKyAgICBVcmxfQmFyICp1cmxCYXIgPSAoVXJsX0JhciAqKWRhdGE7CisKKyAgICBpZiAoZXYt
PmJ1dHRvbiA9PSAxKSB7CisgICAgICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldCh1cmxCYXItPmVu
dHJ5LCBFSU5BX1RSVUUpOworICAgICAgICBlZGplX29iamVjdF9zaWduYWxfZW1pdCh1cmxCYXIt
PmVudHJ5LCAiZW50cnksYWN0aW9uLGZvY3VzIiwgImVudHJ5Iik7CisgICAgfQorfQorCitzdGF0
aWMgdm9pZAorb25fdXJsYmFyX2ZvY3VzX291dCh2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09i
amVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQoreworICAgIFVybF9CYXIgKnVybEJhciA9IChV
cmxfQmFyICopZGF0YTsKKworICAgIGVkamVfb2JqZWN0X3NpZ25hbF9lbWl0KHVybEJhci0+ZW50
cnksICJlbnRyeSxhY3Rpb24sdW5mb2N1cyIsICJlbnRyeSIpOworfQorCitVcmxfQmFyICoKK3Vy
bF9iYXJfYWRkKEV2YXNfT2JqZWN0ICp3ZWJWaWV3LCBpbnQgd2lkdGgpCit7CisgICAgRXZhcyAq
ZXZhczsKKyAgICBVcmxfQmFyICp1cmxfYmFyOworICAgIGlmICghd2ViVmlldykKKyAgICAgICAg
cmV0dXJuIE5VTEw7CisgICAgZXZhcyA9IGV2YXNfb2JqZWN0X2V2YXNfZ2V0KHdlYlZpZXcpOwor
CisgICAgdXJsX2JhciA9IChVcmxfQmFyICopbWFsbG9jKHNpemVvZihVcmxfQmFyKSk7CisgICAg
dXJsX2Jhci0+d2ViVmlldyA9IHdlYlZpZXc7CisKKyAgICB1cmxfYmFyLT5hcmVhID0gZXZhc19v
YmplY3RfcmVjdGFuZ2xlX2FkZChldmFzKTsKKyAgICBldmFzX29iamVjdF9uYW1lX3NldCh1cmxf
YmFyLT5hcmVhLCAidXJsX2JhckFyZWEiKTsKKyAgICBldmFzX29iamVjdF9jb2xvcl9zZXQodXJs
X2Jhci0+YXJlYSwgMjU1LCAyNTUsIDI1NSwgMjU1KTsKKyAgICBldmFzX29iamVjdF9tb3ZlKHVy
bF9iYXItPmFyZWEsIDAsIDApOworICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZSh1cmxfYmFyLT5hcmVh
LCB3aWR0aCwgVVJMX0JBUl9IRUlHSFQpOworICAgIGV2YXNfb2JqZWN0X3Nob3codXJsX2Jhci0+
YXJlYSk7CisKKyAgICB1cmxfYmFyLT5lbnRyeSA9IGVkamVfb2JqZWN0X2FkZChldmFzKTsKKyAg
ICBFaW5hX0Jvb2wgcmV0ID0gZWRqZV9vYmplY3RfZmlsZV9zZXQodXJsX2Jhci0+ZW50cnksIFRI
RU1FX0RJUiIvZW50cnkuZWRqIiwgImNvbnRyb2wvZW50cnkvYmFzZS9kZWZhdWx0Iik7CisgICAg
aWYgKCFyZXQpIHsKKyAgICAgICAgZXZhc19vYmplY3RfZGVsKHVybF9iYXItPmFyZWEpOworCisg
ICAgICAgIGZyZWUodXJsX2Jhcik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAg
IGVkamVfb2JqZWN0X3BhcnRfdGV4dF9zZXQodXJsX2Jhci0+ZW50cnksICJ1cmwudGV4dCIsICIi
KTsKKyAgICBldmFzX29iamVjdF9tb3ZlKHVybF9iYXItPmVudHJ5LCBQQURESU5HX1NJWkUsIFBB
RERJTkdfU0laRSk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKHVybF9iYXItPmVudHJ5LCB3aWR0
aCAtIFBBRERJTkdfU0laRSAqIDIsIFVSTF9CQVJfSEVJR0hUIC0gUEFERElOR19TSVpFICogMik7
CisgICAgZXZhc19vYmplY3Rfc2hvdyh1cmxfYmFyLT5lbnRyeSk7CisgICAgZXZhc19vYmplY3Rf
ZXZlbnRfY2FsbGJhY2tfYWRkKHVybF9iYXItPmVudHJ5LCBFVkFTX0NBTExCQUNLX01PVVNFX0RP
V04sIG9uX3VybGJhcl9tb3VzZV9kb3duLCB1cmxfYmFyKTsKKyAgICBldmFzX29iamVjdF9ldmVu
dF9jYWxsYmFja19hZGQodXJsX2Jhci0+ZW50cnksIEVWQVNfQ0FMTEJBQ0tfS0VZX0RPV04sIG9u
X3VybGJhcl9rZXlfZG93biwgdXJsX2Jhcik7CisgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJh
Y2tfYWRkKHVybF9iYXItPmVudHJ5LCBFVkFTX0NBTExCQUNLX0ZPQ1VTX09VVCwgb25fdXJsYmFy
X2ZvY3VzX291dCwgdXJsX2Jhcik7CisKKyAgICByZXR1cm4gdXJsX2JhcjsKK30KKwordm9pZAor
dXJsX2Jhcl9kZWwoVXJsX0JhciAqdXJsQmFyKQoreworICAgIGlmICghdXJsQmFyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwodXJsQmFyLT5l
bnRyeSwgRVZBU19DQUxMQkFDS19LRVlfRE9XTiwgb25fdXJsYmFyX2tleV9kb3duKTsKKyAgICBl
dmFzX29iamVjdF9ldmVudF9jYWxsYmFja19kZWwodXJsQmFyLT5lbnRyeSwgRVZBU19DQUxMQkFD
S19NT1VTRV9ET1dOLCBvbl91cmxiYXJfbW91c2VfZG93bik7CisgICAgZXZhc19vYmplY3RfZXZl
bnRfY2FsbGJhY2tfZGVsKHVybEJhci0+ZW50cnksIEVWQVNfQ0FMTEJBQ0tfRk9DVVNfT1VULCBv
bl91cmxiYXJfZm9jdXNfb3V0KTsKKworICAgIGV2YXNfb2JqZWN0X2RlbCh1cmxCYXItPmFyZWEp
OworICAgIGV2YXNfb2JqZWN0X2RlbCh1cmxCYXItPmVudHJ5KTsKKyAgICBmcmVlKHVybEJhcik7
Cit9CisKK3ZvaWQKK3VybF9iYXJfdXJsX3NldChVcmxfQmFyICp1cmxCYXIsIGNvbnN0IGNoYXIg
KnVybCkKK3sKKyAgICBpZiAoIXVybEJhciB8fCAhdXJsKQorICAgICAgICByZXR1cm47CisKKyAg
ICBlZGplX29iamVjdF9wYXJ0X3RleHRfc2V0KHVybEJhci0+ZW50cnksICJ1cmwudGV4dCIsIHVy
bCk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9FV2ViTGF1bmNoZXIvdXJsX2Jhci5oIGIvVG9vbHMv
RVdlYkxhdW5jaGVyL3VybF9iYXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzI1NzZmYjU4OGFmMzNlOWNmMjNi
MmMwZmY0ZDIyMWVlOTUyNjg1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRVdlYkxhdW5jaGVy
L3VybF9iYXIuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNh
bXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIHVybF9iYXJfaAorI2RlZmluZSB1cmxf
YmFyX2gKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisjaW5j
bHVkZSA8RXZhcy5oPgorCisjZGVmaW5lIFVSTF9CQVJfSEVJR0hUIDMwCisKK3R5cGVkZWYgc3Ry
dWN0IF9VcmxfQmFyIHsKKyAgICBFdmFzX09iamVjdCAqd2ViVmlldzsKKyAgICBFdmFzX09iamVj
dCAqYXJlYTsKKyAgICBFdmFzX09iamVjdCAqZW50cnk7Cit9IFVybF9CYXI7CisKK1VybF9CYXIg
KnVybF9iYXJfYWRkKEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCBpbnQgd2lkdGgpOwordm9pZCB1cmxf
YmFyX2RlbChVcmxfQmFyICp1cmxCYXIpOwordm9pZCB1cmxfYmFyX3VybF9zZXQoVXJsX0JhciAq
dXJsQmFyLCBjb25zdCBjaGFyICp1cmwpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRp
ZgorI2VuZGlmIC8vIHVybF9iYXJfaApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZWZs
L0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDc1M2M0NDk1YTNkNjRiNzBiYWFkY2Q0OGYyM2YzMzQwM2E5ZTYzMDguLjc5YWIzZTVmYmQy
OTczNGFmNWM0ZTNjZjk0ZDkwZWIyODQzMmI3NWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93
c2VyL2VmbC9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvQ01ha2VM
aXN0cy50eHQKQEAgLTEsNiArMSw3IEBACiBTRVQoTWluaUJyb3dzZXJfRElSICIke1RPT0xTX0RJ
Un0vTWluaUJyb3dzZXIvZWZsIikKIAogU0VUKE1pbmlCcm93c2VyX1NPVVJDRVMKKyAgICAke1RP
T0xTX0RJUn0vRVdlYkxhdW5jaGVyL3VybF9iYXIuYwogICAgICR7TWluaUJyb3dzZXJfRElSfS9t
YWluLmMKICkKIApAQCAtMTAsNiArMTEsNyBAQCBTRVQoTWluaUJyb3dzZXJfSU5DTFVERV9ESVJF
Q1RPUklFUwogICAgICR7RURKRV9JTkNMVURFX0RJUlN9CiAgICAgJHtFRkxERVBTX0lOQ0xVREVf
RElSU30KICAgICAke0VWQVNfSU5DTFVERV9ESVJTfQorICAgICR7VE9PTFNfRElSfS9FV2ViTGF1
bmNoZXIKICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL2VmbAogICAgICR7V0VCS0lU
Ml9ESVJ9CiAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UKQEAgLTU0LDMgKzU2LDUgQEAg
QUREX0VYRUNVVEFCTEUoTWluaUJyb3dzZXIgJHtNaW5pQnJvd3Nlcl9TT1VSQ0VTfSkKIFRBUkdF
VF9MSU5LX0xJQlJBUklFUyhNaW5pQnJvd3NlciAke01pbmlCcm93c2VyX0xJQlJBUklFU30pCiBB
RERfVEFSR0VUX1BST1BFUlRJRVMoTWluaUJyb3dzZXIgTElOS19GTEFHUyAiJHtNaW5pQnJvd3Nl
cl9MSU5LX0ZMQUdTfSIpCiBTRVRfVEFSR0VUX1BST1BFUlRJRVMoTWluaUJyb3dzZXIgUFJPUEVS
VElFUyBGT0xERVIgIlRvb2xzIikKKworQUREX0RFUEVOREVOQ0lFUyhNaW5pQnJvd3NlciBUaGVt
ZUNvbnRyb2wpCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jIGIvVG9v
bHMvTWluaUJyb3dzZXIvZWZsL21haW4uYwppbmRleCAwMjYzMGYxYTgyNzAzZDZhOWIzZTJlNThl
MzQyMDU5NmVkZTg2NjVhLi4xY2JmNzg0NGFlMDllNjhiZmVjOGE4ODhhN2NhNDMwMmVjMjgwODlk
IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCisrKyBiL1Rvb2xzL01p
bmlCcm93c2VyL2VmbC9tYWluLmMKQEAgLTE4LDYgKzE4LDcgQEAKICAqLwogCiAjaW5jbHVkZSAi
RVdlYktpdDIuaCIKKyNpbmNsdWRlICJ1cmxfYmFyLmgiCiAjaW5jbHVkZSA8RWNvcmUuaD4KICNp
bmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWluYS5oPgpAQCAtNDEsNiArNDIsNyBA
QCB0eXBlZGVmIHN0cnVjdCBfTWluaUJyb3dzZXIgewogICAgIEV2YXMgKmV2YXM7CiAgICAgRXZh
c19PYmplY3QgKmJnOwogICAgIEV2YXNfT2JqZWN0ICpicm93c2VyOworICAgIFVybF9CYXIgKnVy
bF9iYXI7CiB9IE1pbmlCcm93c2VyOwogCiBzdGF0aWMgY29uc3QgRWNvcmVfR2V0b3B0IG9wdGlv
bnMgPSB7CkBAIC0xNTUsNiArMTU3LDEzIEBAIG9uX3RpdGxlX2NoYW5nZWQodm9pZCAqdXNlcl9k
YXRhLCBFdmFzX09iamVjdCAqd2Vidmlldywgdm9pZCAqZXZlbnRfaW5mbykKIH0KIAogc3RhdGlj
IHZvaWQKK29uX3VybF9jaGFuZ2VkKHZvaWQgKnVzZXJfZGF0YSwgRXZhc19PYmplY3QgKndlYnZp
ZXcsIHZvaWQgKmV2ZW50X2luZm8pCit7CisgICAgTWluaUJyb3dzZXIgKmFwcCA9IChNaW5pQnJv
d3NlciAqKXVzZXJfZGF0YTsKKyAgICB1cmxfYmFyX3VybF9zZXQoYXBwLT51cmxfYmFyLCBld2tf
dmlld191cmlfZ2V0KGFwcC0+YnJvd3NlcikpOworfQorCitzdGF0aWMgdm9pZAogb25fcHJvZ3Jl
c3Modm9pZCAqdXNlcl9kYXRhLCBFdmFzX09iamVjdCAqd2Vidmlldywgdm9pZCAqZXZlbnRfaW5m
bykKIHsKICAgICBNaW5pQnJvd3NlciAqYXBwID0gKE1pbmlCcm93c2VyICopdXNlcl9kYXRhOwpA
QCAtMjI0LDE0ICsyMzMsMTggQEAgc3RhdGljIE1pbmlCcm93c2VyICpicm93c2VyQ3JlYXRlKGNv
bnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqZW5naW5lKQogICAgIGV2YXNfb2JqZWN0X3NtYXJ0
X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJsb2FkLGVycm9yIiwgb25fZXJyb3IsIGFwcCk7
CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgImxvYWQs
cHJvZ3Jlc3MiLCBvbl9wcm9ncmVzcywgYXBwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxs
YmFja19hZGQoYXBwLT5icm93c2VyLCAidGl0bGUsY2hhbmdlZCIsIG9uX3RpdGxlX2NoYW5nZWQs
IGFwcCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3Nlciwg
InVyaSxjaGFuZ2VkIiwgb25fdXJsX2NoYW5nZWQsIGFwcCk7CiAKICAgICBldmFzX29iamVjdF9l
dmVudF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBv
bl9rZXlfZG93biwgYXBwKTsKIAogICAgIGV2YXNfb2JqZWN0X3NpemVfaGludF93ZWlnaHRfc2V0
KGFwcC0+YnJvd3NlciwgRVZBU19ISU5UX0VYUEFORCwgRVZBU19ISU5UX0VYUEFORCk7Ci0gICAg
ZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YnJvd3NlciwgREVGQVVMVF9XSURUSCwgREVGQVVMVF9I
RUlHSFQpOworICAgIGV2YXNfb2JqZWN0X21vdmUoYXBwLT5icm93c2VyLCAwLCBVUkxfQkFSX0hF
SUdIVCk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YnJvd3NlciwgREVGQVVMVF9XSURU
SCwgREVGQVVMVF9IRUlHSFQgLSBVUkxfQkFSX0hFSUdIVCk7CiAgICAgZXZhc19vYmplY3Rfc2hv
dyhhcHAtPmJyb3dzZXIpOwogICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldChhcHAtPmJyb3dzZXIs
IEVJTkFfVFJVRSk7CiAKKyAgICBhcHAtPnVybF9iYXIgPSB1cmxfYmFyX2FkZChhcHAtPmJyb3dz
ZXIsIERFRkFVTFRfV0lEVEgpOworCiAgICAgZXdrX3ZpZXdfdXJpX3NldChhcHAtPmJyb3dzZXIs
IHVybCk7CiAKICAgICByZXR1cm4gYXBwOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>