<?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>26718</bug_id>
          
          <creation_ts>2009-06-25 04:18:19 -0700</creation_ts>
          <short_desc>[Gtk] Add support for javascript windows for DRT</short_desc>
          <delta_ts>2009-07-13 03:01:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jan Alonzo">jmalonzo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>128158</commentid>
    <comment_count>0</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-25 04:18:19 -0700</bug_when>
    <thetext>The Gtk port&apos;s DRT need to support javascript windows so we can run, at least, some of the http/tests/security tests, and possibly tests that use LayoutTestController::canOpenWindows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128169</commentid>
    <comment_count>1</comment_count>
      <attachid>31854</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-25 05:03:20 -0700</bug_when>
    <thetext>Created attachment 31854
Gtk DRT JS windows support

This patch adds a new property: javascript-can-open-windows and a new signal close-web-view to tell the clients that the window will be closing soon. This signal is also the other half of create-web-view which is already an API in WebKitGtk.

These two features are needed to get JS windows support in Gtk DRT. I&apos;ve also unskip the tests that now run because of this (there&apos;s probably more but this set will do for now).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128389</commentid>
    <comment_count>2</comment_count>
      <attachid>31854</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-06-25 22:13:19 -0700</bug_when>
    <thetext>Comment on attachment 31854
Gtk DRT JS windows support

&gt;          Reviewed by Holger Freyther.
&gt; diff --git a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
&gt; index 5023d5c..a08e4f9 100644
&gt; --- a/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
&gt; +++ b/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp
&gt; @@ -215,7 +215,10 @@ void ChromeClient::setResizable(bool)
&gt;  
&gt;  void ChromeClient::closeWindowSoon()
&gt;  {
&gt; -    notImplemented();
&gt; +    webkit_web_view_set_group_name(m_webView, &quot;&quot;);

What&apos;s this for?

&gt; +    webkit_web_view_stop_loading(m_webView);
&gt; +
&gt; +    g_signal_emit_by_name(m_webView, &quot;close-web-view&quot;);
&gt;  }

In some cases it&apos;s good to have a way to ask the user if he wants to cancel the closing action (ie, return TRUE to prevent closing). For example, the case were forms are modified and not submitted when closing a window can be handled in two ways I guess: &apos;close-web-view&apos;, call view_has_modified_forms, if it has show a dialog asking, return what the user wants to close-request. Another option, I guess, is to just have higher level APIs for this (&apos;close-with-modified-forms&apos; signal).

Not sure what makes most sense here, but just commenting :)


&gt; +    /**
&gt; +    * WebKitWebSettings:javascript-can-open-windows
&gt; +    *
&gt; +    * Whether JavaScript can open windows automatically.
&gt; +    *
&gt; +    * Since 1.1.11
&gt; +    */
&gt; +    g_object_class_install_property(gobject_class,
&gt; +                                    PROP_JAVASCRIPT_CAN_OPEN_WINDOWS,
&gt; +                                    g_param_spec_boolean(&quot;javascript-can-open-windows&quot;,
&gt; +                                                         _(&quot;JavaScript can open windows automatically&quot;),
&gt; +                                                         _(&quot;Whether JavaScript can open windows automatically&quot;),
&gt; +                                                         FALSE,

Mmm, are we sure FALSE is the right default?

&gt;      /**
&gt; +     * WebKitWebView::close-web-view:
&gt; +     * @web_view: the object on which the signal is emitted
&gt; +     *
&gt; +     * Emitted when closing a window is requested.

So, I guess you mean view here and not window? Is this signal emitted when the widget is destroyed?


&gt; @@ -132,8 +136,10 @@ static gchar* dumpFramesAsText(WebKitWebFrame* frame)
&gt;  
&gt;      if (gLayoutTestController-&gt;dumpChildFramesAsText()) {
&gt;          GSList* children = webkit_web_frame_get_children(frame);
&gt; -        for (GSList* child = children; child; child = g_slist_next(child))
&gt; -           appendString(result, dumpFramesAsText((WebKitWebFrame*)children-&gt;data));
&gt; +        for (unsigned i = 0; i &lt; g_slist_length(children); ++i) {
&gt; +            WebKitWebFrame* childFrame = static_cast&lt;WebKitWebFrame*&gt;(g_slist_nth_data(children, i));
&gt; +            appendString(result, dumpFramesAsText(childFrame));
&gt; +        }

Mmm, why this?

&gt; +
&gt; +    // Also check if we still have opened webViews and free them.
&gt; +    if (gLayoutTestController-&gt;closeRemainingWindowsWhenComplete() || webViewList) {

Shouldn&apos;t that be an &amp;&amp; instead of ||? Or am I missunderstaning something.

&gt; +        while (webViewList) {
&gt; +            g_object_unref(WEBKIT_WEB_VIEW(webViewList-&gt;data));
&gt; +            webViewList = g_slist_next(webViewList);
&gt; +        }
&gt; +        g_slist_free(webViewList);
&gt; +        webViewList = 0;
&gt; +    }
&gt; +

&gt; +static WebKitWebView* webViewCreate(WebKitWebView*, WebKitWebFrame*);
&gt; +
&gt; +static WebKitWebView* createWebView()
&gt; +{
&gt; +    WebKitWebView* view = WEBKIT_WEB_VIEW(webkit_web_view_new());
&gt; +    webkit_web_view_set_group_name(view, &quot;org.webkit.gtk.DumpRenderTree&quot;);
&gt; +
&gt; +    g_signal_connect(G_OBJECT(view), &quot;load-started&quot;, G_CALLBACK(webViewLoadStarted), 0);
&gt; +    g_signal_connect(G_OBJECT(view), &quot;load-finished&quot;, G_CALLBACK(webViewLoadFinished), 0);
&gt; +    g_signal_connect(G_OBJECT(view), &quot;window-object-cleared&quot;, G_CALLBACK(webViewWindowObjectCleared), 0);
&gt; +    g_signal_connect(G_OBJECT(view), &quot;console-message&quot;, G_CALLBACK(webViewConsoleMessage), 0);
&gt; +    g_signal_connect(G_OBJECT(view), &quot;script-alert&quot;, G_CALLBACK(webViewScriptAlert), 0);
&gt; +    g_signal_connect(G_OBJECT(view), &quot;script-prompt&quot;, G_CALLBACK(webViewScriptPrompt), 0);
&gt; +    g_signal_connect(G_OBJECT(view), &quot;script-confirm&quot;, G_CALLBACK(webViewScriptConfirm), 0);
&gt; +    g_signal_connect(G_OBJECT(view), &quot;title-changed&quot;, G_CALLBACK(webViewTitleChanged), 0);
&gt; +    g_signal_connect(G_OBJECT(view), &quot;navigation-policy-decision-requested&quot;, G_CALLBACK(webViewNavigationPolicyDecisionRequested), 0);
&gt; +    g_signal_connect(G_OBJECT(view), &quot;status-bar-text-changed&quot;, G_CALLBACK(webViewStatusBarTextChanged), 0);
&gt; +    g_signal_connect(G_OBJECT(view), &quot;create-web-view&quot;, G_CALLBACK(webViewCreate), 0);
&gt; +    g_signal_connect(G_OBJECT(view), &quot;close-web-view&quot;, G_CALLBACK(webViewClose), 0);

While you are at it, g_signal_connect does not take a GObject as first parameter, so no need to cast. And you could use g_object_connect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128396</commentid>
    <comment_count>3</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-25 22:32:12 -0700</bug_when>
    <thetext>&gt; &gt;  
&gt; &gt;  void ChromeClient::closeWindowSoon()
&gt; &gt;  {
&gt; &gt; -    notImplemented();
&gt; &gt; +    webkit_web_view_set_group_name(m_webView, &quot;&quot;);
&gt; 
&gt; What&apos;s this for?



&gt; 
&gt; &gt; +    webkit_web_view_stop_loading(m_webView);
&gt; &gt; +
&gt; &gt; +    g_signal_emit_by_name(m_webView, &quot;close-web-view&quot;);
&gt; &gt;  }
&gt; 
&gt; In some cases it&apos;s good to have a way to ask the user if he wants to cancel the
&gt; closing action (ie, return TRUE to prevent closing). For example, the case were
&gt; forms are modified and not submitted when closing a window can be handled in
&gt; two ways I guess: &apos;close-web-view&apos;, call view_has_modified_forms, if it has
&gt; show a dialog asking, return what the user wants to close-request. Another
&gt; option, I guess, is to just have higher level APIs for this
&gt; (&apos;close-with-modified-forms&apos; signal).
&gt;
&gt; Not sure what makes most sense here, but just commenting :)
&gt;

I&apos;ll add a check if it&apos;s handled to give clients a way to do whatever before closing. Thanks :)

&gt; 
&gt; &gt; +    /**
&gt; &gt; +    * WebKitWebSettings:javascript-can-open-windows
&gt; &gt; +    *
&gt; &gt; +    * Whether JavaScript can open windows automatically.
&gt; &gt; +    *
&gt; &gt; +    * Since 1.1.11
&gt; &gt; +    */
&gt; &gt; +    g_object_class_install_property(gobject_class,
&gt; &gt; +                                    PROP_JAVASCRIPT_CAN_OPEN_WINDOWS,
&gt; &gt; +                                    g_param_spec_boolean(&quot;javascript-can-open-windows&quot;,
&gt; &gt; +                                                         _(&quot;JavaScript can open windows automatically&quot;),
&gt; &gt; +                                                         _(&quot;Whether JavaScript can open windows automatically&quot;),
&gt; &gt; +                                                         FALSE,
&gt; 
&gt; Mmm, are we sure FALSE is the right default?

It&apos;s defaulted to FALSE in WebCore::Settings that&apos;s why it&apos;s also FALSE here. Maybe we should set it to TRUE and let applications decide if they don&apos;t really want it.

&gt; 
&gt; &gt;      /**
&gt; &gt; +     * WebKitWebView::close-web-view:
&gt; &gt; +     * @web_view: the object on which the signal is emitted
&gt; &gt; +     *
&gt; &gt; +     * Emitted when closing a window is requested.
&gt; 
&gt; So, I guess you mean view here and not window? Is this signal emitted when the
&gt; widget is destroyed?

Should be view. This gets emitted when window.close() is called.

&gt; 
&gt; &gt; @@ -132,8 +136,10 @@ static gchar* dumpFramesAsText(WebKitWebFrame* frame)
&gt; &gt;  
&gt; &gt;      if (gLayoutTestController-&gt;dumpChildFramesAsText()) {
&gt; &gt;          GSList* children = webkit_web_frame_get_children(frame);
&gt; &gt; -        for (GSList* child = children; child; child = g_slist_next(child))
&gt; &gt; -           appendString(result, dumpFramesAsText((WebKitWebFrame*)children-&gt;data));
&gt; &gt; +        for (unsigned i = 0; i &lt; g_slist_length(children); ++i) {
&gt; &gt; +            WebKitWebFrame* childFrame = static_cast&lt;WebKitWebFrame*&gt;(g_slist_nth_data(children, i));
&gt; &gt; +            appendString(result, dumpFramesAsText(childFrame));
&gt; &gt; +        }
&gt; 
&gt; Mmm, why this?

This is a fix to get all the unskipped tests in this patch work. This seemed to fix it, but I think I know the reason why. I&apos;ll update.

&gt; &gt; +
&gt; &gt; +    // Also check if we still have opened webViews and free them.
&gt; &gt; +    if (gLayoutTestController-&gt;closeRemainingWindowsWhenComplete() || webViewList) {
&gt; 
&gt; Shouldn&apos;t that be an &amp;&amp; instead of ||? Or am I missunderstaning something.

No. The webViewList check is just so we cleanup properly. Some tests may have forgotten to call closeRemainingWindowsWhenComplete so this just makes sure we free those WebViews.

&gt; 
&gt; &gt; +        while (webViewList) {
&gt; &gt; +            g_object_unref(WEBKIT_WEB_VIEW(webViewList-&gt;data));
&gt; &gt; +            webViewList = g_slist_next(webViewList);
&gt; &gt; +        }
&gt; &gt; +        g_slist_free(webViewList);
&gt; &gt; +        webViewList = 0;
&gt; &gt; +    }
&gt; &gt; +
&gt; 
&gt; &gt; +static WebKitWebView* webViewCreate(WebKitWebView*, WebKitWebFrame*);
&gt; &gt; +
&gt; &gt; +static WebKitWebView* createWebView()
&gt; &gt; +{
&gt; &gt; +    WebKitWebView* view = WEBKIT_WEB_VIEW(webkit_web_view_new());
&gt; &gt; +    webkit_web_view_set_group_name(view, &quot;org.webkit.gtk.DumpRenderTree&quot;);
&gt; &gt; +
&gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;load-started&quot;, G_CALLBACK(webViewLoadStarted), 0);
&gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;load-finished&quot;, G_CALLBACK(webViewLoadFinished), 0);
&gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;window-object-cleared&quot;, G_CALLBACK(webViewWindowObjectCleared), 0);
&gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;console-message&quot;, G_CALLBACK(webViewConsoleMessage), 0);
&gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;script-alert&quot;, G_CALLBACK(webViewScriptAlert), 0);
&gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;script-prompt&quot;, G_CALLBACK(webViewScriptPrompt), 0);
&gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;script-confirm&quot;, G_CALLBACK(webViewScriptConfirm), 0);
&gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;title-changed&quot;, G_CALLBACK(webViewTitleChanged), 0);
&gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;navigation-policy-decision-requested&quot;, G_CALLBACK(webViewNavigationPolicyDecisionRequested), 0);
&gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;status-bar-text-changed&quot;, G_CALLBACK(webViewStatusBarTextChanged), 0);
&gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;create-web-view&quot;, G_CALLBACK(webViewCreate), 0);
&gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;close-web-view&quot;, G_CALLBACK(webViewClose), 0);
&gt; 
&gt; While you are at it, g_signal_connect does not take a GObject as first
&gt; parameter, so no need to cast. And you could use g_object_connect.

Ok, thanks for that. I&apos;ll post an update.
&gt; 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128455</commentid>
    <comment_count>4</comment_count>
      <attachid>31923</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-26 02:28:44 -0700</bug_when>
    <thetext>Created attachment 31923
updated based on xan&apos;s feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128456</commentid>
    <comment_count>5</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-26 02:36:37 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; &gt;  
&gt; &gt; &gt;  void ChromeClient::closeWindowSoon()
&gt; &gt; &gt;  {
&gt; &gt; &gt; -    notImplemented();
&gt; &gt; &gt; +    webkit_web_view_set_group_name(m_webView, &quot;&quot;);
&gt; &gt; 
&gt; &gt; What&apos;s this for?

We&apos;re closing the page (and maybe finalizing the WebView) so might be a good idea to set the group name to empty. Mac does it too, that&apos;s why I added it there as well :)

&gt; &gt; &gt; +    webkit_web_view_stop_loading(m_webView);
&gt; &gt; &gt; +
&gt; &gt; &gt; +    g_signal_emit_by_name(m_webView, &quot;close-web-view&quot;);
&gt; &gt; &gt;  }
&gt; &gt; 
&gt; &gt; In some cases it&apos;s good to have a way to ask the user if he wants to cancel the
&gt; &gt; closing action (ie, return TRUE to prevent closing). For example, the case were
&gt; &gt; forms are modified and not submitted when closing a window can be handled in
&gt; &gt; two ways I guess: &apos;close-web-view&apos;, call view_has_modified_forms, if it has
&gt; &gt; show a dialog asking, return what the user wants to close-request. Another
&gt; &gt; option, I guess, is to just have higher level APIs for this
&gt; &gt; (&apos;close-with-modified-forms&apos; signal).
&gt; &gt;
&gt; &gt; Not sure what makes most sense here, but just commenting :)
&gt; &gt;
&gt; 
&gt; I&apos;ll add a check if it&apos;s handled to give clients a way to do whatever before
&gt; closing. Thanks :)

I&apos;ve thought about it, but I don&apos;t think it makes sense. This gets emitted when JavaScript is used to close the window, not when a user closes a window/webview. If a form was filled out and unsubmitted, and the user suddenly wants to move away from the page, I think a better mechanism should handle that. Maybe popup a dialog on delete-event, but we don&apos;t have access to form data atm so I&apos;m not sure how to better handle this.

&gt; &gt; &gt; @@ -132,8 +136,10 @@ static gchar* dumpFramesAsText(WebKitWebFrame* frame)
&gt; &gt; &gt;  
&gt; &gt; &gt;      if (gLayoutTestController-&gt;dumpChildFramesAsText()) {
&gt; &gt; &gt;          GSList* children = webkit_web_frame_get_children(frame);
&gt; &gt; &gt; -        for (GSList* child = children; child; child = g_slist_next(child))
&gt; &gt; &gt; -           appendString(result, dumpFramesAsText((WebKitWebFrame*)children-&gt;data));
&gt; &gt; &gt; +        for (unsigned i = 0; i &lt; g_slist_length(children); ++i) {
&gt; &gt; &gt; +            WebKitWebFrame* childFrame = static_cast&lt;WebKitWebFrame*&gt;(g_slist_nth_data(children, i));
&gt; &gt; &gt; +            appendString(result, dumpFramesAsText(childFrame));
&gt; &gt; &gt; +        }
&gt; &gt; 
&gt; &gt; Mmm, why this?
&gt; 
&gt; This is a fix to get all the unskipped tests in this patch work. This seemed to
&gt; fix it, but I think I know the reason why. I&apos;ll update.

We were using children instead of child here. Fix was included in the patch.

&gt; &gt; &gt; +static WebKitWebView* createWebView()
&gt; &gt; &gt; +{
&gt; &gt; &gt; +    WebKitWebView* view = WEBKIT_WEB_VIEW(webkit_web_view_new());
&gt; &gt; &gt; +    webkit_web_view_set_group_name(view, &quot;org.webkit.gtk.DumpRenderTree&quot;);
&gt; &gt; &gt; +
&gt; &gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;load-started&quot;, G_CALLBACK(webViewLoadStarted), 0);
&gt; &gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;load-finished&quot;, G_CALLBACK(webViewLoadFinished), 0);
&gt; &gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;window-object-cleared&quot;, G_CALLBACK(webViewWindowObjectCleared), 0);
&gt; &gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;console-message&quot;, G_CALLBACK(webViewConsoleMessage), 0);
&gt; &gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;script-alert&quot;, G_CALLBACK(webViewScriptAlert), 0);
&gt; &gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;script-prompt&quot;, G_CALLBACK(webViewScriptPrompt), 0);
&gt; &gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;script-confirm&quot;, G_CALLBACK(webViewScriptConfirm), 0);
&gt; &gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;title-changed&quot;, G_CALLBACK(webViewTitleChanged), 0);
&gt; &gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;navigation-policy-decision-requested&quot;, G_CALLBACK(webViewNavigationPolicyDecisionRequested), 0);
&gt; &gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;status-bar-text-changed&quot;, G_CALLBACK(webViewStatusBarTextChanged), 0);
&gt; &gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;create-web-view&quot;, G_CALLBACK(webViewCreate), 0);
&gt; &gt; &gt; +    g_signal_connect(G_OBJECT(view), &quot;close-web-view&quot;, G_CALLBACK(webViewClose), 0);
&gt; &gt; 
&gt; &gt; While you are at it, g_signal_connect does not take a GObject as first
&gt; &gt; parameter, so no need to cast. And you could use g_object_connect.
&gt; 
&gt; Ok, thanks for that. I&apos;ll post an update.

Done. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128900</commentid>
    <comment_count>6</comment_count>
      <attachid>31923</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-06-29 15:10:08 -0700</bug_when>
    <thetext>Comment on attachment 31923
updated based on xan&apos;s feedback

&gt;  void ChromeClient::closeWindowSoon()
&gt;  {
&gt; -    notImplemented();
&gt; +    // Clear the page group name (because mac does!)
&gt; +    webkit_web_view_set_group_name(m_webView, &quot;&quot;);

Make this a FIXME. We still need to figure out how PageGroups will be useful, or not, for us.

&gt; +    webkit_web_view_stop_loading(m_webView);
&gt; +
&gt; +    g_signal_emit_by_name(m_webView, &quot;close-web-view&quot;);
&gt;  }

I wonder if the signal should be emitted first, and give the application the oportunity of avoiding the closing of the window. I think this was discussed already?

&gt; +    settings-&gt;setJavaScriptCanOpenWindowsAutomatically(javascriptCanOpenWindows);

The meaning of this setting is a bit nebulous to me. Without turning it on we were able to let javascript create new windows, so why do we need it now?

&gt; -void LayoutTestController::setPopupBlockingEnabled(bool popupBlockingEnabled)
&gt; +void LayoutTestController::setPopupBlockingEnabled(bool flag)
&gt;  {
&gt; -    // FIXME: implement
&gt; +    WebKitWebView* view = webkit_web_frame_get_web_view(mainFrame);
&gt; +    ASSERT(view);
&gt; +
&gt; +    WebKitWebSettings* settings = webkit_web_view_get_settings(view);
&gt; +    g_object_set(G_OBJECT(settings), &quot;javascript-can-open-windows&quot;, flag, NULL);
&gt; +
&gt;  }

hrm; this looks very wrong. Enabling popup blocking by setting javascript-can-open-windows to TRUE? I&apos;m under the impression that there is a misunderstanding about the meaning of this setting. I&apos;m going to say r-.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129222</commentid>
    <comment_count>7</comment_count>
      <attachid>32101</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-30 17:50:02 -0700</bug_when>
    <thetext>Created attachment 32101
patch addressing issues raised by Gustavo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129223</commentid>
    <comment_count>8</comment_count>
      <attachid>32102</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-30 18:01:15 -0700</bug_when>
    <thetext>Created attachment 32102
updated to fix the popup blocking flag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129224</commentid>
    <comment_count>9</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-06-30 18:02:09 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 31923 [review])
&gt; &gt;  void ChromeClient::closeWindowSoon()
&gt; &gt;  {
&gt; &gt; -    notImplemented();
&gt; &gt; +    // Clear the page group name (because mac does!)
&gt; &gt; +    webkit_web_view_set_group_name(m_webView, &quot;&quot;);
&gt; 
&gt; Make this a FIXME. We still need to figure out how PageGroups will be useful,
&gt; or not, for us.

I&apos;ve added a FIXME here. I&apos;ve added a comment where I&apos;ve used this function in DRT and why it&apos;s used there.

&gt; 
&gt; &gt; +    webkit_web_view_stop_loading(m_webView);
&gt; &gt; +
&gt; &gt; +    g_signal_emit_by_name(m_webView, &quot;close-web-view&quot;);
&gt; &gt;  }
&gt; 
&gt; I wonder if the signal should be emitted first, and give the application the
&gt; oportunity of avoiding the closing of the window. I think this was discussed
&gt; already?

I&apos;ve added my own reasoning in comment #5. But with the updated patch, I&apos;ve updated this to let the application handle the signal.

&gt; 
&gt; &gt; +    settings-&gt;setJavaScriptCanOpenWindowsAutomatically(javascriptCanOpenWindows);
&gt; 
&gt; The meaning of this setting is a bit nebulous to me. Without turning it on we
&gt; were able to let javascript create new windows, so why do we need it now?

As discussed in IRC, this is for opening windows that aren&apos;t initiated by a user action.

&gt; 
&gt; &gt; -void LayoutTestController::setPopupBlockingEnabled(bool popupBlockingEnabled)
&gt; &gt; +void LayoutTestController::setPopupBlockingEnabled(bool flag)
&gt; &gt;  {
&gt; &gt; -    // FIXME: implement
&gt; &gt; +    WebKitWebView* view = webkit_web_frame_get_web_view(mainFrame);
&gt; &gt; +    ASSERT(view);
&gt; &gt; +
&gt; &gt; +    WebKitWebSettings* settings = webkit_web_view_get_settings(view);
&gt; &gt; +    g_object_set(G_OBJECT(settings), &quot;javascript-can-open-windows&quot;, flag, NULL);
&gt; &gt; +
&gt; &gt;  }
&gt; 
&gt; hrm; this looks very wrong. Enabling popup blocking by setting
&gt; javascript-can-open-windows to TRUE? I&apos;m under the impression that there is a
&gt; misunderstanding about the meaning of this setting. I&apos;m going to say r-.

flag should&apos;ve been !flag. Fixed.

Thanks.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131166</commentid>
    <comment_count>10</comment_count>
      <attachid>32102</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-07-12 04:21:37 -0700</bug_when>
    <thetext>Comment on attachment 32102
updated to fix the popup blocking flag

&gt; +    /**
&gt; +    * WebKitWebSettings:javascript-can-open-windows
&gt; +    *
&gt; +    * Whether JavaScript can open popup windows automatically without user
&gt; +    * intervention.

I think I would like to have the name of that setting contain -automatically, to make it more obvious. So, javascript-can-open-windows-automatically. I know it gets a bit too long, but there&apos;s no way someone would confuse what it does. I&apos;m good if there&apos;s a consensus on keeping it this way, though.

&gt; +    gboolean                   (* close_web_view)         (WebKitWebView* web_view);
&gt; +

Probably need to remove one of the paddings because of this new class method. Or should we take the opportunity, break ABI, and also rename the library? =P

Take one out if you land before a decision is reached on breaking ABI, though.

Except for those two comments, r=me, with or without the rename, depending on what you and xan think. I&apos;m leaving the official r+ for Xan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131182</commentid>
    <comment_count>11</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-07-12 11:04:27 -0700</bug_when>
    <thetext>+++ b/WebKit/gtk/webkit/webkitwebview.cpp
@@ -117,6 +117,7 @@ enum {
     MIME_TYPE_POLICY_DECISION_REQUESTED,
     CREATE_WEB_VIEW,
     WEB_VIEW_READY,
+    CLOSE_WEB_VIEW,
     WINDOW_OBJECT_CLEARED,
     LOAD_STARTED,
     LOAD_COMMITTED,

Mmm, I believe this is an ABI break too.

I agree about adding the &apos;automatically&apos; bit to the name. Not sure about the renaming the library bit, although I guess that if we want to do it we should do it ASAP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131187</commentid>
    <comment_count>12</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-07-12 11:50:46 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; +++ b/WebKit/gtk/webkit/webkitwebview.cpp
&gt; @@ -117,6 +117,7 @@ enum {
&gt;      MIME_TYPE_POLICY_DECISION_REQUESTED,
&gt;      CREATE_WEB_VIEW,
&gt;      WEB_VIEW_READY,
&gt; +    CLOSE_WEB_VIEW,
&gt;      WINDOW_OBJECT_CLEARED,
&gt;      LOAD_STARTED,
&gt;      LOAD_COMMITTED,
&gt; 
&gt; Mmm, I believe this is an ABI break too.

Nevermind, kov pointed on IRC that it&apos;s not, since it&apos;s only used internally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131188</commentid>
    <comment_count>13</comment_count>
      <attachid>32102</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-07-12 12:09:48 -0700</bug_when>
    <thetext>Comment on attachment 32102
updated to fix the popup blocking flag

So, since Xan commented. r=me with the name change, the removal of one of the class method placeholders, and please reposition the signal in the enum.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131285</commentid>
    <comment_count>14</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-07-13 03:01:50 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 32102 [details])
&gt; So, since Xan commented. r=me with the name change, the removal of one of the
&gt; class method placeholders, and please reposition the signal in the enum.

Thanks. Landed in http://trac.webkit.org/changeset/45801</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31854</attachid>
            <date>2009-06-25 05:03:20 -0700</date>
            <delta_ts>2009-06-26 02:29:33 -0700</delta_ts>
            <desc>Gtk DRT JS windows support</desc>
            <filename>drt-multiview.patch</filename>
            <type>text/plain</type>
            <size>30109</size>
            <attacher name="Jan Alonzo">jmalonzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0OWMzNDUzLi4xMGViOGViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDYt
MjUgIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gQWRkIHN1cHBvcnQg
Zm9yIGphdmFzY3JpcHQgd2luZG93cyBmb3IgRFJUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjcxOAorCisgICAgICAgIFVuc2tpcCB0ZXN0cyB0aGF0
IG5vdyBwYXNzIGR1ZSB0byBzdXBwb3J0IGZvciBKUyB3aW5kb3dzIGluIEd0ayBEUlQuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKwogMjAwOS0wNi0yNCAgUm9iIEJ1aXMgIDxy
d2xidWlzQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBOaWtvLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvU2tpcHBlZAppbmRleCA2Y2FjNDkxLi4wNDQ0MzQwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
U2tpcHBlZApAQCAtMTYxMSwyNSArMTYxMSwxNSBAQCBmYXN0L2RvbS9udWxsLWRvY3VtZW50LWxv
Y2F0aW9uLXJlcGxhY2UtY3Jhc2guaHRtbAogZmFzdC9kb20vbnVsbC1kb2N1bWVudC13aW5kb3ct
b3Blbi1jcmFzaC5odG1sCiBmYXN0L2RvbS9vYmplY3QtZW1iZWQtcGx1Z2luLXNjcmlwdGluZy5o
dG1sCiBmYXN0L2RvbS9vYmplY3QtcGx1Z2luLWhpZGVzLXByb3BlcnRpZXMuaHRtbAotZmFzdC9k
b20vb3Blbi1hbmQtY2xvc2UtYnktRE9NLmh0bWwKIGZhc3QvZG9tL3RhYmluZGV4LWNsYW1wLmh0
bWwKLWZhc3QvZG9tL0RvY3VtZW50L2Vhcmx5LWRvY3VtZW50LWFjY2Vzcy5odG1sCiBmYXN0L2Rv
bS9IVE1MRG9jdW1lbnQvaGFzRm9jdXMuaHRtbAogZmFzdC9kb20vU2VsZWN0b3JBUEkvcmVzaWct
U2VsZWN0b3JzQVBJLXRlc3QueGh0bWwKIGZhc3QvZG9tL1N0eWxlU2hlZXQvb3duZXJOb2RlLWxp
ZmV0aW1lLTIuaHRtbAotZmFzdC9kb20vV2luZG93L2Nsb3N1cmUtYWNjZXNzLWFmdGVyLW5hdmln
YXRpb24td2luZG93Lmh0bWwKLWZhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3Vy
ZS13aW5kb3cuaHRtbAogZmFzdC9kb20vV2luZG93L25ldy13aW5kb3ctb3BlbmVyLmh0bWwKLWZh
c3QvZG9tL1dpbmRvdy9zZXR0aW5nLXByb3BlcnRpZXMtb24tY2xvc2VkLXdpbmRvdy5odG1sCiBm
YXN0L2RvbS9XaW5kb3cvd2Via2l0Q29udmVydFBvaW50Lmh0bWwKLWZhc3QvZG9tL1dpbmRvdy93
aW5kb3ctZWFybHktcHJvcGVydGllcy5odG1sCi1mYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1
cC1wcmVjZWRlbmNlLmh0bWwKIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctb25Gb2N1cy5odG1sCi1m
YXN0L2RvbS9XaW5kb3cvd2luZG93LW9wZW4tcGVuZGluZy11cmwuaHRtbAotZmFzdC9kb20vV2lu
ZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0bWwKIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcmVzaXpl
LWFuZC1tb3ZlLWFyZ3VtZW50cy5odG1sCiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXJlc2l6ZS5o
dG1sCi1mYXN0L2RvbS9XaW5kb3cvd2luZG93LXNjcmVlbi1wcm9wZXJ0aWVzLmh0bWwKIGZhc3Qv
ZG9tL1dpbmRvdy93aW5kb3cteHktcHJvcGVydGllcy5odG1sCiBmYXN0L2R5bmFtaWMvaG92ZXJl
ZC1kZXRhY2guaHRtbAogZmFzdC9keW5hbWljL3BhdXNlZC1ldmVudC1kaXNwYXRjaC5odG1sCkBA
IC0xNzk0LDcgKzE3ODQsNiBAQCBmYXN0L2pzL2RhdGUtYmlnLXNldGRhdGUuaHRtbAogZmFzdC9q
cy9leGNlcHRpb25zLXRocm93bi1pbi1jYWxsYmFja3MuaHRtbAogZmFzdC9qcy9uYXZpZ2F0b3It
bWltZVR5cGVzLWxlbmd0aC5odG1sCiBmYXN0L2xheWVycy9yZXNpemUtbGF5ZXItZGVsZXRpb24t
Y3Jhc2guaHRtbAotZmFzdC9sb2FkZXIvY2FuY2VsLWxvYWQtZHVyaW5nLXBvcnQtYmxvY2stdGlt
ZXIuaHRtbAogZmFzdC9sb2FkZXIvbWFpbi1kb2N1bWVudC11cmwtZm9yLW5vbi1odHRwLWxvYWRz
Lmh0bWwKIGZhc3QvbG9hZGVyL29udW5sb2FkLWZvcm0tc3VibWl0LWNyYXNoLTIuaHRtbAogZmFz
dC9sb2FkZXIvb251bmxvYWQtZm9ybS1zdWJtaXQtY3Jhc2guaHRtbApAQCAtMzc5NSwyOSArMzc4
NCwyMCBAQCBodHRwL3Rlc3RzL21pc2Mvc3VibWl0LWdldC1pbi11dGY3Lmh0bWwKIGh0dHAvdGVz
dHMvbWlzYy90ZXh0LXJlZnJlc2guaHRtbAogaHR0cC90ZXN0cy9taXNjL3RpbWVyLXZzLWxvYWRp
bmcuaHRtbAogaHR0cC90ZXN0cy9taXNjL3dpbmRvdy1kb3Qtc3RvcC5odG1sCi1odHRwL3Rlc3Rz
L21pc2Mvd2luZG93LW9wZW4tdGhlbi13cml0ZS5odG1sCiBodHRwL3Rlc3RzL25hdmlnYXRpb24v
YmFjay10by1zbG93LWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9kb2N1bWVudC1s
b2NhdGlvbi1jbGljay10aW1lb3V0Lmh0bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9kb2N1bWVu
dC1sb2NhdGlvbi1jbGljay5odG1sCiBodHRwL3Rlc3RzL25hdmlnYXRpb24vZG9jdW1lbnQtbG9j
YXRpb24tbW91c2VvdmVyLmh0bWwKLWh0dHAvdGVzdHMvbmF2aWdhdGlvbi9uZXctd2luZG93LXJl
ZGlyZWN0LWhpc3RvcnkuaHRtbAogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlbG9hZC1zdWJmcmFt
ZS1mcmFtZS5odG1sCiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVsb2FkLXN1YmZyYW1lLWlmcmFt
ZS5odG1sCiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVsb2FkLXN1YmZyYW1lLW9iamVjdC5odG1s
Ci1odHRwL3Rlc3RzL25hdmlnYXRpb24vdGFyZ2V0LWZyYW1lLWZyb20td2luZG93Lmh0bWwKIGh0
dHAvdGVzdHMvcGx1Z2lucy9ucGFwaS1yZXNwb25zZS1oZWFkZXJzLmh0bWwKIGh0dHAvdGVzdHMv
cGx1Z2lucy9wb3N0LXVybC1maWxlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3JlZGVudGlh
bHMtaW4tcmVmZXJlci5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1jYWxsYmFjay1leHBsaWNpdC1kb21haW4tREVOWS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLWZyYW1lLWFjY2Vzcy1kZWxldGUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1mcmFtZS1hY2Nlc3MtaGlzdG9yeS1wdXQuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1mcmFtZS1hY2Nlc3MtbG9jYXRpb24tcHV0Lmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3MtZnJhbWUtYWNjZXNzLXByaXZhdGUtYnJvd3NpbmcuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YVRy
YW5zZmVyLXNldC1kYXRhLWZpbGUtdXJsLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvZmVlZC11
cmxzLWZyb20tcmVtb3RlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvZnJhbWUtbG9hZGluZy12
aWEtZG9jdW1lbnQtd3JpdGUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9ob3N0LWNvbXBhcmUt
Y2FzZS1pbnNlbnNpdGl2ZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLUNTUy1mcm9t
LXJlbW90ZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLUphdmFTY3JpcHQtZnJvbS1y
ZW1vdGUuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pRnJhbWUtZnJvbS1yZW1vdGUu
aHRtbApAQCAtMzgyNSw5ICszODA1LDYgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFn
ZS1mcm9tLXJlbW90ZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLXZpZGVvLXBvc3Rl
ci1mcm9tLXJlbW90ZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLXZpZGVvLXNvdXJj
ZS1mcm9tLXJlbW90ZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLXZpZGVvLXNyYy1m
cm9tLXJlbW90ZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1wcm9wZXJ0aWVzLWNs
ZWFyLWRvbWFpbi5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1wcm9wZXJ0aWVzLWNs
ZWFyLXBvcnQuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS93aW5kb3ctcHJvcGVydGllcy1wYXNz
Lmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvWEZyYW1lT3B0aW9ucy94LWZyYW1lLW9wdGlvbnMt
ZGVueS1tZXRhLXRhZy1pbi1ib2R5Lmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvWEZyYW1lT3B0
aW9ucy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy1wYXJlbnQtc2FtZS1vcmlnaW4tYWxs
b3cuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0aW9u
cy1kZW55LW1ldGEtdGFnLXBhcmVudC1zYW1lLW9yaWdpbi1kZW55Lmh0bWwKQEAgLTM4MzUsNDgg
KzM4MTIsOCBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMveC1mcmFtZS1vcHRp
b25zLWRlbnktbWV0YS10YWcuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9YRnJhbWVPcHRpb25z
L3gtZnJhbWUtb3B0aW9ucy1kZW55Lmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvWEZyYW1lT3B0
aW9ucy94LWZyYW1lLW9wdGlvbnMtcGFyZW50LXNhbWUtb3JpZ2luLWFsbG93Lmh0bWwKIGh0dHAv
dGVzdHMvc2VjdXJpdHkvWEZyYW1lT3B0aW9ucy94LWZyYW1lLW9wdGlvbnMtcGFyZW50LXNhbWUt
b3JpZ2luLWRlbnkuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9hYm91dEJsYW5rL3NlY3VyaXR5
LWNvbnRleHQtZ3JhbmRjaGlsZHJlbi5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0Qmxh
bmsvc2VjdXJpdHktY29udGV4dC13aW5kb3ctb3Blbi5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5
L2Fib3V0Qmxhbmsvd2luZG93LW9wZW4tc2VsZi1hYm91dC1ibGFuay5odG1sCi1odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Fib3V0QmxhbmsveHNzLURFTklFRC1uYXZpZ2F0ZS1vcGVuZXItZG9jdW1lbnQt
d3JpdGUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9hYm91dEJsYW5rL3hzcy1ERU5JRUQtbmF2
aWdhdGUtb3BlbmVyLWphdmFzY3JpcHQtdXJsLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvYWJv
dXRCbGFuay94c3MtREVOSUVELXNldC1vcGVuZXIuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9j
b29raWVzL2RvY3VtZW50LW9wZW4uaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9kYXRhVVJML3hz
cy1ERU5JRUQtZnJvbS1kYXRhLXVybC1pbi1mb3JlaWduLWRvbWFpbi13aW5kb3ctb3Blbi5odG1s
Ci1odHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGFVUkwveHNzLURFTklFRC1mcm9tLWRhdGEtdXJsLXN1
Yi1mcmFtZS0yLWxldmVsLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YVVSTC94c3MtREVO
SUVELWZyb20tZGF0YS11cmwtc3ViLWZyYW1lLXRvLWRhdGEtdXJsLXN1Yi1mcmFtZS5odG1sCi1o
dHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGFVUkwveHNzLURFTklFRC1mcm9tLWphdmFzY3JpcHQtdXJs
LXdpbmRvdy1vcGVuLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YVVSTC94c3MtREVOSUVE
LXRvLWRhdGEtdXJsLWluLWZvcmVpZ24tZG9tYWluLXN1YmZyYW1lLWxvY2F0aW9uLWNoYW5nZS5o
dG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGFVUkwveHNzLURFTklFRC10by1kYXRhLXVybC1p
bi1mb3JlaWduLWRvbWFpbi1zdWJmcmFtZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGFV
UkwveHNzLURFTklFRC10by1kYXRhLXVybC1pbi1mb3JlaWduLWRvbWFpbi13aW5kb3ctb3Blbi5o
dG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGFVUkwveHNzLURFTklFRC10by1kYXRhLXVybC1z
dWItZnJhbWUtMi1sZXZlbC5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGFVUkwveHNzLURF
TklFRC10by1kYXRhLXVybC13aW5kb3ctb3Blbi5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2Zy
YW1lTmF2aWdhdGlvbi9ub3Qtb3BlbmVyLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZnJhbWVO
YXZpZ2F0aW9uL29wZW5lci5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2ZyYW1lTmF2aWdhdGlv
bi94c3MtQUxMT1dFRC10YXJnZXRlZC1zdWJmcmFtZS1uYXZpZ2F0aW9uLWNoYW5nZS5odG1sCi1o
dHRwL3Rlc3RzL3NlY3VyaXR5L2ZyYW1lTmF2aWdhdGlvbi94c3MtREVOSUVELXBsdWdpbi1uYXZp
Z2F0aW9uLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZnJhbWVOYXZpZ2F0aW9uL3hzcy1ERU5J
RUQtdGFyZ2V0ZWQtbGluay1uYXZpZ2F0aW9uLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2
YXNjcmlwdFVSTC9qYXZhc2NyaXB0VVJMLWV4ZWN1dGlvbi1jb250ZXh0LWZyYW1lLWxvY2F0aW9u
LWh0bWxkb20uaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML2phdmFzY3Jp
cHRVUkwtZXhlY3V0aW9uLWNvbnRleHQtZnJhbWUtc3JjLWdldEF0dHJpYnV0ZS12YWx1ZS5odG1s
Ci1odHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHRVUkwvamF2YXNjcmlwdFVSTC1leGVjdXRp
b24tY29udGV4dC1mcmFtZS1zcmMtaHRtbGRvbS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2ph
dmFzY3JpcHRVUkwvamF2YXNjcmlwdFVSTC1leGVjdXRpb24tY29udGV4dC1mcmFtZS1zcmMtc2V0
QXR0cmlidXRlLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC9qYXZhc2Ny
aXB0VVJMLWV4ZWN1dGlvbi1jb250ZXh0LWZyYW1lLXNyYy1zZXRBdHRyaWJ1dGVOUy5odG1sCi1o
dHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHRVUkwvamF2YXNjcmlwdFVSTC1leGVjdXRpb24t
Y29udGV4dC1mcmFtZS1zcmMtc2V0QXR0cmlidXRlTm9kZS5odG1sCi1odHRwL3Rlc3RzL3NlY3Vy
aXR5L2phdmFzY3JpcHRVUkwvamF2YXNjcmlwdFVSTC1leGVjdXRpb24tY29udGV4dC1mcmFtZS1z
cmMtc2V0QXR0cmlidXRlTm9kZU5TLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlw
dFVSTC94c3MtQUxMT1dFRC1mcm9tLWphdmFzY3JpcHQtdXJsLXN1Yi1mcmFtZS0yLWxldmVsLmh0
bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC94c3MtQUxMT1dFRC1mcm9tLWph
dmFzY3JpcHQtdXJsLXN1Yi1mcmFtZS10by1qYXZhc2NyaXB0LXVybC1zdWItZnJhbWUuaHRtbAot
aHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML3hzcy1BTExPV0VELWZyb20tamF2YXNj
cmlwdC11cmwtdG8tamF2c2NyaXB0LXVybC5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFz
Y3JpcHRVUkwveHNzLUFMTE9XRUQtZnJvbS1qYXZhc2NyaXB0LXVybC13aW5kb3ctb3Blbi5odG1s
Ci1odHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHRVUkwveHNzLUFMTE9XRUQtdG8tamF2YXNj
cmlwdC11cmwtZnJvbS1qYXZzY3JpcHQtdXJsLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2
YXNjcmlwdFVSTC94c3MtQUxMT1dFRC10by1qYXZhc2NyaXB0LXVybC1zdWItZnJhbWUtMi1sZXZl
bC5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHRVUkwveHNzLUFMTE9XRUQtdG8t
amF2YXNjcmlwdC11cmwtd2luZG93LW9wZW4uaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZh
c2NyaXB0VVJML3hzcy1ERU5JRUQtZnJvbS1qYXZhc2NyaXB0LXVybC1pbi1mb3JlaWduLWRvbWFp
bi1zdWJmcmFtZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHRVUkwveHNzLURF
TklFRC1mcm9tLWphdmFzY3JpcHQtdXJsLWluLWZvcmVpZ24tZG9tYWluLXdpbmRvdy1vcGVuLmh0
bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC94c3MtREVOSUVELXRvLWphdmFz
Y3JpcHQtdXJsLWluLWZvcmVpZ24tZG9tYWluLXN1YmZyYW1lLmh0bWwKLWh0dHAvdGVzdHMvc2Vj
dXJpdHkvamF2YXNjcmlwdFVSTC94c3MtREVOSUVELXRvLWphdmFzY3JpcHQtdXJsLWluLWZvcmVp
Z24tZG9tYWluLXdpbmRvdy1vcGVuLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbGlzdGVuZXIv
eHNzLXdpbmRvdy1vbmNsaWNrLWFkZEV2ZW50TGlzdGVuZXIuaHRtbAogaHR0cC90ZXN0cy9zZWN1
cml0eS9saXN0ZW5lci94c3Mtd2luZG93LW9uY2xpY2stc2hvcnRjdXQuaHRtbAotaHR0cC90ZXN0
cy9zZWN1cml0eS9vcmlnaW5IZWFkZXIvb3JpZ2luLWhlYWRlci1mb3ItZW1wdHkuaHRtbAogaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2xpbmstb3BlbnMtbmV3LXdpbmRvdy5odG1sCiBo
dHRwL3Rlc3RzL3dvcmtlcnMvdGV4dC1lbmNvZGluZy5odG1sCiBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2Fib3J0LXNob3VsZC1jYW5jZWwtbG9hZC5odG1sCkBAIC0zODg0LDcgKzM4MjEsNiBA
QCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLW5vbi1zaW1w
bGUtYWxsb3cuaHRtbAogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1i
YXNpYy1ub24tc2ltcGxlLWRlbnktY2FjaGVkLmh0bWwKIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtd2hpdGVsaXN0LXJlcXVlc3QtaGVhZGVycy5odG1sCiBo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Jhc2ljLWF1dGguaHRtbAotaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9jbG9zZS13aW5kb3cuaHRtbAogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9j
b29raWVzLmh0bWwKICNXZSBkb24ndCBzZWVtIHRvIHN1cHBvcnQgbmVpdGhlciBvZiB0aGVzZSBm
b3Igbm93CiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Nyb3NzLW9yaWdpbi1hdXRob3JpemF0
aW9uLmh0bWwKQEAgLTM4OTksNyArMzgzNSw2IEBAIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
Z2V0LWRhbmdlcm91cy1oZWFkZXJzLmh0bWwKIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0
aG9kcy1hc3luYy5odG1sCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMtbG93ZXIt
Y2FzZS5odG1sCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMuaHRtbAotaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9yZXF1ZXN0LWZyb20tcG9wdXAuaHRtbAogaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9yZXNwb25zZS1lbmNvZGluZy5odG1sCiBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3N0YXRlLWFmdGVyLW5ldHdvcmstZXJyb3IuaHRtbAogaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9zdGF0dXMtYWZ0ZXItYWJvcnQuaHRtbApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBiMDM4YTQ3Li45NjRjMmQ1IDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI2IEBACisyMDA5LTA2LTI1ICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFs
b256b0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFtHdGtdIEFkZCBzdXBwb3J0IGZvciBqYXZhc2NyaXB0IHdpbmRvd3MgZm9yIERS
VAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY3MTgK
KworICAgICAgICBBZGQgQVBJIHRvIHN1cHBvcnQgb3BlbmluZyBhbmQgY2xvc2luZyBvZiBKYXZh
U2NyaXB0IHdpbmRvd3MgYXV0b21hdGljYWxseS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y2xv
c2VXaW5kb3dTb29uKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgorICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3Nl
dHRpbmdzX2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19zZXRfcHJv
cGVydHkpOgorICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19nZXRfcHJvcGVydHkpOgorICAg
ICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jb3B5KToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6CisgICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKToKKyAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19zZXR0aW5nc19ub3RpZnkpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldF9n
cm91cF9uYW1lKToKKwogMjAwOS0wNi0yNCAgSmlhaHVhIEh1YW5nICA8amh1YW5namlhaHVhQGdt
YWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgYi9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggNTAyM2Q1Yy4u
YTA4ZTRmOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmNwcApAQCAtMjE1LDcgKzIxNSwxMCBAQCB2b2lkIENocm9tZUNsaWVudDo6c2V0UmVzaXphYmxl
KGJvb2wpCiAKIHZvaWQgQ2hyb21lQ2xpZW50OjpjbG9zZVdpbmRvd1Nvb24oKQogewotICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgd2Via2l0X3dlYl92aWV3X3NldF9ncm91cF9uYW1lKG1fd2Vi
VmlldywgIiIpOworICAgIHdlYmtpdF93ZWJfdmlld19zdG9wX2xvYWRpbmcobV93ZWJWaWV3KTsK
KworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlZpZXcsICJjbG9zZS13ZWItdmlldyIp
OwogfQogCiBib29sIENocm9tZUNsaWVudDo6Y2FuVGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9uKQpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCmluZGV4IDEzZmNkMTYuLmM1OWUxMGIgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAorKysgYi9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRwcml2YXRlLmgKQEAgLTIyNCw2ICsyMjQsOSBAQCBleHRlcm4gIkMiIHsKICAg
ICB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NlbGVjdGVkX3RleHQgKFdlYktpdFdlYlZpZXcqIHdlYl92
aWV3KTsKIAogICAgIFdFQktJVF9BUEkgdm9pZAorICAgIHdlYmtpdF93ZWJfdmlld19zZXRfZ3Jv
dXBfbmFtZShXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgY29uc3QgZ2NoYXIqIGdyb3VwX25hbWUp
OworCisgICAgV0VCS0lUX0FQSSB2b2lkCiAgICAgd2Via2l0X3dlYl9zZXR0aW5nc19hZGRfZXh0
cmFfcGx1Z2luX2RpcmVjdG9yeSAoV2ViS2l0V2ViVmlldyAqd2ViX3ZpZXcsIGNvbnN0IGdjaGFy
KiBkaXJlY3RvcnkpOwogCiAgICAgR1NMaXN0KgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0
dGluZ3MuY3BwCmluZGV4IDJmMTg4NmMuLjQ1YzQ2ZjIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJzZXR0aW5ncy5jcHAKQEAgLTMsNiArMyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
TnVhbnRpIEx0ZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgogICogQ29w
eXJpZ2h0IChDKSAyMDA4IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDkgSmFuIE1pY2hhZWwgQWxvbnpvCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTgxLDYg
KzgyLDcgQEAgc3RydWN0IF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGUgewogICAgIGdib29sZWFu
IGVuYWJsZV9odG1sNV9kYXRhYmFzZTsKICAgICBnYm9vbGVhbiBlbmFibGVfaHRtbDVfbG9jYWxf
c3RvcmFnZTsKICAgICBnYm9vbGVhbiBlbmFibGVfeHNzX2F1ZGl0b3I7CisgICAgZ2Jvb2xlYW4g
amF2YXNjcmlwdF9jYW5fb3Blbl93aW5kb3dzOwogfTsKIAogI2RlZmluZSBXRUJLSVRfV0VCX1NF
VFRJTkdTX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSgob2Jq
KSwgV0VCS0lUX1RZUEVfV0VCX1NFVFRJTkdTLCBXZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGUpKQpA
QCAtMTE1LDcgKzExNyw4IEBAIGVudW0gewogICAgIFBST1BfRU5BQkxFX0NBUkVUX0JST1dTSU5H
LAogICAgIFBST1BfRU5BQkxFX0hUTUw1X0RBVEFCQVNFLAogICAgIFBST1BfRU5BQkxFX0hUTUw1
X0xPQ0FMX1NUT1JBR0UsCi0gICAgUFJPUF9FTkFCTEVfWFNTX0FVRElUT1IKKyAgICBQUk9QX0VO
QUJMRV9YU1NfQVVESVRPUiwKKyAgICBQUk9QX0pBVkFTQ1JJUFRfQ0FOX09QRU5fV0lORE9XUwog
fTsKIAogc3RhdGljIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19maW5hbGl6ZShHT2JqZWN0KiBv
YmplY3QpOwpAQCAtNDc0LDYgKzQ3NywyMSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3NldHRp
bmdzX2NsYXNzX2luaXQoV2ViS2l0V2ViU2V0dGluZ3NDbGFzcyoga2xhc3MpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZs
YWdzKSk7CiAKKyAgICAvKioKKyAgICAqIFdlYktpdFdlYlNldHRpbmdzOmphdmFzY3JpcHQtY2Fu
LW9wZW4td2luZG93cworICAgICoKKyAgICAqIFdoZXRoZXIgSmF2YVNjcmlwdCBjYW4gb3BlbiB3
aW5kb3dzIGF1dG9tYXRpY2FsbHkuCisgICAgKgorICAgICogU2luY2UgMS4xLjExCisgICAgKi8K
KyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0pBVkFTQ1JJUFRfQ0FOX09QRU5f
V0lORE9XUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3Bl
Y19ib29sZWFuKCJqYXZhc2NyaXB0LWNhbi1vcGVuLXdpbmRvd3MiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiSmF2YVNjcmlwdCBj
YW4gb3BlbiB3aW5kb3dzIGF1dG9tYXRpY2FsbHkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIldoZXRoZXIgSmF2YVNjcmlwdCBj
YW4gb3BlbiB3aW5kb3dzIGF1dG9tYXRpY2FsbHkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKKwogICAg
IGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShrbGFzcywgc2l6ZW9mKFdlYktpdFdlYlNldHRpbmdz
UHJpdmF0ZSkpOwogfQogCkBAIC02MzksNiArNjU3LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl9zZXR0aW5nc19zZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBj
b24KICAgICBjYXNlIFBST1BfRU5BQkxFX1hTU19BVURJVE9SOgogICAgICAgICBwcml2LT5lbmFi
bGVfeHNzX2F1ZGl0b3IgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKTsKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBQUk9QX0pBVkFTQ1JJUFRfQ0FOX09QRU5fV0lORE9XUzoKKyAgICAgICAg
cHJpdi0+amF2YXNjcmlwdF9jYW5fb3Blbl93aW5kb3dzID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2
YWx1ZSk7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dB
Uk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKICAgICAgICAg
YnJlYWs7CkBAIC03MzUsNiArNzU2LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5n
c19nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmEKICAgICBj
YXNlIFBST1BfRU5BQkxFX1hTU19BVURJVE9SOgogICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFu
KHZhbHVlLCBwcml2LT5lbmFibGVfeHNzX2F1ZGl0b3IpOwogICAgICAgICBicmVhazsKKyAgICBj
YXNlIFBST1BfSkFWQVNDUklQVF9DQU5fT1BFTl9XSU5ET1dTOgorICAgICAgICBnX3ZhbHVlX3Nl
dF9ib29sZWFuKHZhbHVlLCBwcml2LT5qYXZhc2NyaXB0X2Nhbl9vcGVuX3dpbmRvd3MpOworICAg
ICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURf
UFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CiAgICAgICAgIGJyZWFrOwpAQCAt
Nzk0LDYgKzgxOCw3IEBAIFdlYktpdFdlYlNldHRpbmdzKiB3ZWJraXRfd2ViX3NldHRpbmdzX2Nv
cHkoV2ViS2l0V2ViU2V0dGluZ3MqIHdlYl9zZXR0aW5ncykKICAgICAgICAgICAgICAgICAgImVu
YWJsZS1odG1sNS1kYXRhYmFzZSIsIHByaXYtPmVuYWJsZV9odG1sNV9kYXRhYmFzZSwKICAgICAg
ICAgICAgICAgICAgImVuYWJsZS1odG1sNS1sb2NhbC1zdG9yYWdlIiwgcHJpdi0+ZW5hYmxlX2h0
bWw1X2xvY2FsX3N0b3JhZ2UsCiAgICAgICAgICAgICAgICAgICJlbmFibGUteHNzLWF1ZGl0b3Ii
LCBwcml2LT5lbmFibGVfeHNzX2F1ZGl0b3IsCisgICAgICAgICAgICAgICAgICJqYXZhc2NyaXB0
LWNhbi1vcGVuLXdpbmRvd3MiLCBwcml2LT5qYXZhc2NyaXB0X2Nhbl9vcGVuX3dpbmRvd3MsCiAg
ICAgICAgICAgICAgICAgIE5VTEwpKTsKIAogICAgIHJldHVybiBjb3B5OwpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCAwODcyZGFkLi5lNDQxODQ2IDEwMDY0NAotLS0gYS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcApAQCAtMTE3LDYgKzExNyw3IEBAIGVudW0gewogICAgIE1JTUVfVFlQ
RV9QT0xJQ1lfREVDSVNJT05fUkVRVUVTVEVELAogICAgIENSRUFURV9XRUJfVklFVywKICAgICBX
RUJfVklFV19SRUFEWSwKKyAgICBDTE9TRV9XRUJfVklFVywKICAgICBXSU5ET1dfT0JKRUNUX0NM
RUFSRUQsCiAgICAgTE9BRF9TVEFSVEVELAogICAgIExPQURfQ09NTUlUVEVELApAQCAtMTExMCw2
ICsxMTExLDIzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktp
dFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAgICAgICAgR19UWVBFX0JPT0xFQU4s
IDApOwogCiAgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmlldzo6Y2xvc2Utd2ViLXZpZXc6Cisg
ICAgICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRl
ZAorICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIGNsb3NpbmcgYSB3aW5kb3cgaXMgcmVxdWVz
dGVkLgorICAgICAqCisgICAgICogU2luY2UgMS4xLjExCisgICAgICovCisgICAgd2Via2l0X3dl
Yl92aWV3X3NpZ25hbHNbQ0xPU0VfV0VCX1ZJRVddID0gZ19zaWduYWxfbmV3KCJjbG9zZS13ZWIt
dmlldyIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAorICAg
ICAgICAgICAgKEdTaWduYWxGbGFncylHX1NJR05BTF9SVU5fTEFTVCwKKyAgICAgICAgICAgIDAs
CisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIGdfY2Ns
b3N1cmVfbWFyc2hhbF9WT0lEX19WT0lELAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDApOwor
CisgICAgLyoqCiAgICAgICogV2ViS2l0V2ViVmlldzo6bmF2aWdhdGlvbi1yZXF1ZXN0ZWQ6CiAg
ICAgICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRl
ZAogICAgICAqIEBmcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSB0aGF0IHJlcXVpcmVkIHRoZSBu
YXZpZ2F0aW9uCkBAIC0yMDUwLDcgKzIwNjgsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Zp
ZXdfdXBkYXRlX3NldHRpbmdzKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgZ2Jvb2xlYW4g
YXV0b0xvYWRJbWFnZXMsIGF1dG9TaHJpbmtJbWFnZXMsIHByaW50QmFja2dyb3VuZHMsCiAgICAg
ICAgIGVuYWJsZVNjcmlwdHMsIGVuYWJsZVBsdWdpbnMsIGVuYWJsZURldmVsb3BlckV4dHJhcywg
cmVzaXphYmxlVGV4dEFyZWFzLAogICAgICAgICBlbmFibGVQcml2YXRlQnJvd3NpbmcsIGVuYWJs
ZUNhcmV0QnJvd3NpbmcsIGVuYWJsZUhUTUw1RGF0YWJhc2UsIGVuYWJsZUhUTUw1TG9jYWxTdG9y
YWdlLAotICAgICAgICBlbmFibGVYU1NBdWRpdG9yOworICAgICAgICBlbmFibGVYU1NBdWRpdG9y
LCBqYXZhc2NyaXB0Q2FuT3BlbldpbmRvd3M7CiAKICAgICBnX29iamVjdF9nZXQod2ViU2V0dGlu
Z3MsCiAgICAgICAgICAgICAgICAgICJkZWZhdWx0LWVuY29kaW5nIiwgJmRlZmF1bHRFbmNvZGlu
ZywKQEAgLTIwNzMsNiArMjA5MSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld191cGRh
dGVfc2V0dGluZ3MoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICAgICAgICAgICAgICAgImVu
YWJsZS1odG1sNS1kYXRhYmFzZSIsICZlbmFibGVIVE1MNURhdGFiYXNlLAogICAgICAgICAgICAg
ICAgICAiZW5hYmxlLWh0bWw1LWxvY2FsLXN0b3JhZ2UiLCAmZW5hYmxlSFRNTDVMb2NhbFN0b3Jh
Z2UsCiAgICAgICAgICAgICAgICAgICJlbmFibGUteHNzLWF1ZGl0b3IiLCAmZW5hYmxlWFNTQXVk
aXRvciwKKyAgICAgICAgICAgICAgICAgImphdmFzY3JpcHQtY2FuLW9wZW4td2luZG93cyIsICZq
YXZhc2NyaXB0Q2FuT3BlbldpbmRvd3MsCiAgICAgICAgICAgICAgICAgIE5VTEwpOwogCiAgICAg
c2V0dGluZ3MtPnNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKGRlZmF1bHRFbmNvZGluZyk7CkBA
IC0yMDk1LDYgKzIxMTQsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3Nl
dHRpbmdzKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgc2V0dGluZ3MtPnNldERhdGFiYXNl
c0VuYWJsZWQoZW5hYmxlSFRNTDVEYXRhYmFzZSk7CiAgICAgc2V0dGluZ3MtPnNldExvY2FsU3Rv
cmFnZUVuYWJsZWQoZW5hYmxlSFRNTDVMb2NhbFN0b3JhZ2UpOwogICAgIHNldHRpbmdzLT5zZXRY
U1NBdWRpdG9yRW5hYmxlZChlbmFibGVYU1NBdWRpdG9yKTsKKyAgICBzZXR0aW5ncy0+c2V0SmF2
YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShqYXZhc2NyaXB0Q2FuT3BlbldpbmRv
d3MpOwogCiAgICAgZ19mcmVlKGRlZmF1bHRFbmNvZGluZyk7CiAgICAgZ19mcmVlKGN1cnNpdmVG
b250RmFtaWx5KTsKQEAgLTIxNzMsNiArMjE5Myw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJf
dmlld19zZXR0aW5nc19ub3RpZnkoV2ViS2l0V2ViU2V0dGluZ3MqIHdlYlNldHRpbmdzLCBHUGFy
CiAgICAgICAgIHNldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKGdfdmFsdWVfZ2V0X2Jv
b2xlYW4oJnZhbHVlKSk7CiAgICAgZWxzZSBpZiAobmFtZSA9PSBnX2ludGVybl9zdHJpbmcoImVu
YWJsZS14c3MtYXVkaXRvciIpKQogICAgICAgICBzZXR0aW5ncy0+c2V0WFNTQXVkaXRvckVuYWJs
ZWQoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFsdWUpKTsKKyAgICBlbHNlIGlmIChuYW1lID09IGdf
aW50ZXJuX3N0cmluZygiamF2YXNjcmlwdC1jYW4tb3Blbi13aW5kb3dzIikpCisgICAgICAgIHNl
dHRpbmdzLT5zZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGdfdmFsdWVf
Z2V0X2Jvb2xlYW4oJnZhbHVlKSk7CiAgICAgZWxzZSBpZiAoIWdfb2JqZWN0X2NsYXNzX2ZpbmRf
cHJvcGVydHkoR19PQkpFQ1RfR0VUX0NMQVNTKHdlYlNldHRpbmdzKSwgbmFtZSkpCiAgICAgICAg
IGdfd2FybmluZygiVW5leHBlY3RlZCBzZXR0aW5nICclcyciLCBuYW1lKTsKICAgICBnX3ZhbHVl
X3Vuc2V0KCZ2YWx1ZSk7CkBAIC0zMzgwLDMgKzM0MDIsMTUgQEAgdm9pZCB3ZWJraXRfd2ViX3Zp
ZXdfbW92ZV9jdXJzb3IoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR3RrTW92ZW1lbnRTdGVwIHN0
ZXAsIGcKICAgICBnYm9vbGVhbiBoYW5kbGVkOwogICAgIGdfc2lnbmFsX2VtaXQod2ViVmlldywg
d2Via2l0X3dlYl92aWV3X3NpZ25hbHNbTU9WRV9DVVJTT1JdLCAwLCBzdGVwLCBjb3VudCwgJmhh
bmRsZWQpOwogfQorCit2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfZ3JvdXBfbmFtZShXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogZ3JvdXBOYW1lKQoreworICAgIGdfcmV0dXJu
X2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKKworICAgIFdlYktpdFdlYlZp
ZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKKworICAgIGlmICghcHJpdi0+Y29yZVBh
Z2UpCisgICAgICAgIHJldHVybjsKKworICAgIHByaXYtPmNvcmVQYWdlLT5zZXRHcm91cE5hbWUo
U3RyaW5nOjpmcm9tVVRGOChncm91cE5hbWUpKTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCAyOGZjOGU3Li40NDA0ZWM0
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMDktMDYtMjUgIEphbiBNaWNoYWVsIEFsb256byAg
PGptYWxvbnpvQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW0d0a10gQWRkIHN1cHBvcnQgZm9yIGphdmFzY3JpcHQgd2luZG93cyBm
b3IgRFJUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
NjcxOAorCisgICAgICAgIFN1cHBvcnQgcnVubmluZyBvZiB0ZXN0cyB0aGF0IG9wZW4gYW5kIGNs
b3NlIEpTIHdpbmRvd3MgYXV0b21hdGljYWxseS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2d0ay9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChkdW1wRnJhbWVzQXNUZXh0KToKKyAg
ICAgICAgKGR1bXBCYWNrRm9yd2FyZExpc3RGb3JBbGxXZWJWaWV3cyk6CisgICAgICAgIChyZXNl
dFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAoZHVtcCk6
CisgICAgICAgIChydW5UZXN0KToKKyAgICAgICAgKHdlYlZpZXdDbG9zZSk6CisgICAgICAgIChj
cmVhdGVXZWJWaWV3KToKKyAgICAgICAgKHdlYlZpZXdDcmVhdGUpOgorICAgICAgICAobWFpbik6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlR3RrLmg6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcDoKKyAg
ICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjp3aW5kb3dDb3VudCk6CisgICAgICAgIChMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQpOgorCiAyMDA5LTA2LTI0
ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBN
YWNpZWogU3RhY2hvd2lhay4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsv
RHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGFiZGVjZjYuLjVjNTI4ZjYgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNTksNiAr
NTksNyBAQCBleHRlcm4gZ2NoYXIqIHdlYmtpdF93ZWJfZnJhbWVfZHVtcF9yZW5kZXJfdHJlZShX
ZWJLaXRXZWJGcmFtZSogZnJhbWUpOwogZXh0ZXJuIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19h
ZGRfZXh0cmFfcGx1Z2luX2RpcmVjdG9yeShXZWJLaXRXZWJWaWV3KiB2aWV3LCBjb25zdCBnY2hh
ciogZGlyZWN0b3J5KTsKIGV4dGVybiBnY2hhciogd2Via2l0X3dlYl9mcmFtZV9nZXRfcmVzcG9u
c2VfbWltZV90eXBlKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7CiBleHRlcm4gdm9pZCB3ZWJraXRf
d2ViX2ZyYW1lX2NsZWFyX21haW5fZnJhbWVfbmFtZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpOwor
ZXh0ZXJuIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9ncm91cF9uYW1lKFdlYktpdFdlYlZpZXcq
IHZpZXcsIGNvbnN0IGdjaGFyKiBncm91cE5hbWUpOwogfQogCiB2b2xhdGlsZSBib29sIGRvbmU7
CkBAIC03NCw2ICs3NSw5IEBAIFdlYktpdFdlYkZyYW1lKiB0b3BMb2FkaW5nRnJhbWUgPSAwOwog
Z3VpbnQgd2FpdFRvRHVtcFdhdGNoZG9nID0gMDsKIGJvb2wgd2FpdEZvclBvbGljeSA9IGZhbHNl
OwogCisvLyBUaGlzIGlzIGEgbGlzdCBvZiBvcGVuZWQgd2Vidmlld3MKK0dTTGlzdCogd2ViVmll
d0xpc3QgPSAwOworCiAvLyBjdXJyZW50IGIvZiBpdGVtIGF0IHRoZSBlbmQgb2YgdGhlIHByZXZp
b3VzIHRlc3QKIHN0YXRpYyBXZWJLaXRXZWJIaXN0b3J5SXRlbSogcHJldlRlc3RCRkl0ZW0gPSBO
VUxMOwogCkBAIC0xMzIsOCArMTM2LDEwIEBAIHN0YXRpYyBnY2hhciogZHVtcEZyYW1lc0FzVGV4
dChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiAKICAgICBpZiAoZ0xheW91dFRlc3RDb250cm9sbGVy
LT5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKSkgewogICAgICAgICBHU0xpc3QqIGNoaWxkcmVuID0g
d2Via2l0X3dlYl9mcmFtZV9nZXRfY2hpbGRyZW4oZnJhbWUpOwotICAgICAgICBmb3IgKEdTTGlz
dCogY2hpbGQgPSBjaGlsZHJlbjsgY2hpbGQ7IGNoaWxkID0gZ19zbGlzdF9uZXh0KGNoaWxkKSkK
LSAgICAgICAgICAgYXBwZW5kU3RyaW5nKHJlc3VsdCwgZHVtcEZyYW1lc0FzVGV4dCgoV2ViS2l0
V2ViRnJhbWUqKWNoaWxkcmVuLT5kYXRhKSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBnX3NsaXN0X2xlbmd0aChjaGlsZHJlbik7ICsraSkgeworICAgICAgICAgICAgV2ViS2l0
V2ViRnJhbWUqIGNoaWxkRnJhbWUgPSBzdGF0aWNfY2FzdDxXZWJLaXRXZWJGcmFtZSo+KGdfc2xp
c3RfbnRoX2RhdGEoY2hpbGRyZW4sIGkpKTsKKyAgICAgICAgICAgIGFwcGVuZFN0cmluZyhyZXN1
bHQsIGR1bXBGcmFtZXNBc1RleHQoY2hpbGRGcmFtZSkpOworICAgICAgICB9CiAgICAgICAgIGdf
c2xpc3RfZnJlZShjaGlsZHJlbik7CiAgICAgfQogCkBAIC0yMTUsNiArMjIxLDE3IEBAIHN0YXRp
YyB2b2lkIGR1bXBCYWNrRm9yd2FyZExpc3RGb3JXZWJWaWV3KFdlYktpdFdlYlZpZXcqIHZpZXcp
CiAgICAgcHJpbnRmKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PVxuIik7CiB9CiAKK3N0YXRpYyB2b2lkIGR1bXBCYWNrRm9yd2FyZExpc3RGb3JBbGxXZWJW
aWV3cygpCit7CisgICAgLy8gRHVtcCB0aGUgYmFjayBmb3J3YXJkIGxpc3Qgb2YgdGhlIG1haW4g
V2ViVmlldyBmaXJzdAorICAgIGR1bXBCYWNrRm9yd2FyZExpc3RGb3JXZWJWaWV3KHdlYlZpZXcp
OworCisgICAgLy8gUmV2ZXJzZSB0aGUgbGlzdCBzbyB3ZSBnZXQgdGhlIG9yZGVyIHJpZ2h0Cisg
ICAgR1NMaXN0KiB2aWV3TGlzdCA9IGdfc2xpc3RfcmV2ZXJzZSh3ZWJWaWV3TGlzdCk7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGdfc2xpc3RfbGVuZ3RoKHZpZXdMaXN0KTsgKytpKQor
ICAgICAgICBkdW1wQmFja0ZvcndhcmRMaXN0Rm9yV2ViVmlldyhXRUJLSVRfV0VCX1ZJRVcoZ19z
bGlzdF9udGhfZGF0YSh2aWV3TGlzdCwgaSkpKTsKK30KKwogc3RhdGljIHZvaWQgaW52YWxpZGF0
ZUFueVByZXZpb3VzV2FpdFRvRHVtcFdhdGNoZG9nKCkKIHsKICAgICBpZiAod2FpdFRvRHVtcFdh
dGNoZG9nKSB7CkBAIC0yMzUsNiArMjUyLDcgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJWaWV3VG9D
b25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkKICAgICAgICAgICAgICAgICAgImVuYWJsZS1o
dG1sNS1kYXRhYmFzZSIsIFRSVUUsCiAgICAgICAgICAgICAgICAgICJlbmFibGUtaHRtbDUtbG9j
YWwtc3RvcmFnZSIsIFRSVUUsCiAgICAgICAgICAgICAgICAgICJlbmFibGUteHNzLWF1ZGl0b3Ii
LCBUUlVFLAorICAgICAgICAgICAgICAgICAiamF2YXNjcmlwdC1jYW4tb3Blbi13aW5kb3dzIiwg
VFJVRSwKICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKICAgICB3ZWJraXRfd2ViX2ZyYW1lX2Ns
ZWFyX21haW5fZnJhbWVfbmFtZShtYWluRnJhbWUpOwpAQCAtMjgzLDExICszMDEsOCBAQCB2b2lk
IGR1bXAoKQogICAgICAgICAgICAgaWYgKCFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBBc1Rl
eHQoKSAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRE9NQXNXZWJBcmNoaXZlKCkgJiYg
IWdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcFNvdXJjZUFzV2ViQXJjaGl2ZSgpKQogICAgICAg
ICAgICAgICAgIGR1bXBGcmFtZVNjcm9sbFBvc2l0aW9uKG1haW5GcmFtZSk7CiAKLSAgICAgICAg
ICAgIGlmIChnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBCYWNrRm9yd2FyZExpc3QoKSkgewot
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBtdWx0aXBsZSB3aW5kb3dzIHN1cHBvcnQKLSAgICAg
ICAgICAgICAgICBkdW1wQmFja0ZvcndhcmRMaXN0Rm9yV2ViVmlldyh3ZWJWaWV3KTsKLQotICAg
ICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEJh
Y2tGb3J3YXJkTGlzdCgpKQorICAgICAgICAgICAgICAgIGR1bXBCYWNrRm9yd2FyZExpc3RGb3JB
bGxXZWJWaWV3cygpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHByaW50U2VwYXJhdG9ycykg
ewpAQCAtMzkxLDYgKzQwNiwxNyBAQCBzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYg
dGVzdFBhdGhPclVSTCkKICAgICB3aGlsZSAoIWRvbmUpCiAgICAgICAgIGdfbWFpbl9jb250ZXh0
X2l0ZXJhdGlvbihOVUxMLCBUUlVFKTsKIAorCisgICAgLy8gQWxzbyBjaGVjayBpZiB3ZSBzdGls
bCBoYXZlIG9wZW5lZCB3ZWJWaWV3cyBhbmQgZnJlZSB0aGVtLgorICAgIGlmIChnTGF5b3V0VGVz
dENvbnRyb2xsZXItPmNsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSgpIHx8IHdlYlZp
ZXdMaXN0KSB7CisgICAgICAgIHdoaWxlICh3ZWJWaWV3TGlzdCkgeworICAgICAgICAgICAgZ19v
YmplY3RfdW5yZWYoV0VCS0lUX1dFQl9WSUVXKHdlYlZpZXdMaXN0LT5kYXRhKSk7CisgICAgICAg
ICAgICB3ZWJWaWV3TGlzdCA9IGdfc2xpc3RfbmV4dCh3ZWJWaWV3TGlzdCk7CisgICAgICAgIH0K
KyAgICAgICAgZ19zbGlzdF9mcmVlKHdlYlZpZXdMaXN0KTsKKyAgICAgICAgd2ViVmlld0xpc3Qg
PSAwOworICAgIH0KKwogICAgIC8vIEEgYmxhbmsgbG9hZCBzZWVtcyB0byBiZSBuZWNlc3Nhcnkg
dG8gcmVzZXQgc3RhdGUgYWZ0ZXIgY2VydGFpbiB0ZXN0cy4KICAgICB3ZWJraXRfd2ViX3ZpZXdf
b3Blbih3ZWJWaWV3LCAiYWJvdXQ6YmxhbmsiKTsKIApAQCAtNTI5LDYgKzU1NSw1MiBAQCBzdGF0
aWMgdm9pZCB3ZWJWaWV3U3RhdHVzQmFyVGV4dENoYW5nZWQoV2ViS2l0V2ViVmlldyogdmlldywg
Y29uc3QgZ2NoYXIqIG1lc3NhZwogICAgIH0KIH0KIAorc3RhdGljIHZvaWQgd2ViVmlld0Nsb3Nl
KFdlYktpdFdlYlZpZXcqIHZpZXcpCit7CisgICAgQVNTRVJUKHZpZXcpOworCisgICAgd2ViVmll
d0xpc3QgPSBnX3NsaXN0X3JlbW92ZSh3ZWJWaWV3TGlzdCwgdmlldyk7CisgICAgZ19vYmplY3Rf
dW5yZWYodmlldyk7Cit9CisKKworc3RhdGljIFdlYktpdFdlYlZpZXcqIHdlYlZpZXdDcmVhdGUo
V2ViS2l0V2ViVmlldyosIFdlYktpdFdlYkZyYW1lKik7CisKK3N0YXRpYyBXZWJLaXRXZWJWaWV3
KiBjcmVhdGVXZWJWaWV3KCkKK3sKKyAgICBXZWJLaXRXZWJWaWV3KiB2aWV3ID0gV0VCS0lUX1dF
Ql9WSUVXKHdlYmtpdF93ZWJfdmlld19uZXcoKSk7CisgICAgd2Via2l0X3dlYl92aWV3X3NldF9n
cm91cF9uYW1lKHZpZXcsICJvcmcud2Via2l0Lmd0ay5EdW1wUmVuZGVyVHJlZSIpOworCisgICAg
Z19zaWduYWxfY29ubmVjdChHX09CSkVDVCh2aWV3KSwgImxvYWQtc3RhcnRlZCIsIEdfQ0FMTEJB
Q0sod2ViVmlld0xvYWRTdGFydGVkKSwgMCk7CisgICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVD
VCh2aWV3KSwgImxvYWQtZmluaXNoZWQiLCBHX0NBTExCQUNLKHdlYlZpZXdMb2FkRmluaXNoZWQp
LCAwKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKHZpZXcpLCAid2luZG93LW9iamVj
dC1jbGVhcmVkIiwgR19DQUxMQkFDSyh3ZWJWaWV3V2luZG93T2JqZWN0Q2xlYXJlZCksIDApOwor
ICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1QodmlldyksICJjb25zb2xlLW1lc3NhZ2UiLCBH
X0NBTExCQUNLKHdlYlZpZXdDb25zb2xlTWVzc2FnZSksIDApOworICAgIGdfc2lnbmFsX2Nvbm5l
Y3QoR19PQkpFQ1QodmlldyksICJzY3JpcHQtYWxlcnQiLCBHX0NBTExCQUNLKHdlYlZpZXdTY3Jp
cHRBbGVydCksIDApOworICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1QodmlldyksICJzY3Jp
cHQtcHJvbXB0IiwgR19DQUxMQkFDSyh3ZWJWaWV3U2NyaXB0UHJvbXB0KSwgMCk7CisgICAgZ19z
aWduYWxfY29ubmVjdChHX09CSkVDVCh2aWV3KSwgInNjcmlwdC1jb25maXJtIiwgR19DQUxMQkFD
Syh3ZWJWaWV3U2NyaXB0Q29uZmlybSksIDApOworICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpF
Q1QodmlldyksICJ0aXRsZS1jaGFuZ2VkIiwgR19DQUxMQkFDSyh3ZWJWaWV3VGl0bGVDaGFuZ2Vk
KSwgMCk7CisgICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVCh2aWV3KSwgIm5hdmlnYXRpb24t
cG9saWN5LWRlY2lzaW9uLXJlcXVlc3RlZCIsIEdfQ0FMTEJBQ0sod2ViVmlld05hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvblJlcXVlc3RlZCksIDApOworICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpF
Q1QodmlldyksICJzdGF0dXMtYmFyLXRleHQtY2hhbmdlZCIsIEdfQ0FMTEJBQ0sod2ViVmlld1N0
YXR1c0JhclRleHRDaGFuZ2VkKSwgMCk7CisgICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVCh2
aWV3KSwgImNyZWF0ZS13ZWItdmlldyIsIEdfQ0FMTEJBQ0sod2ViVmlld0NyZWF0ZSksIDApOwor
ICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1QodmlldyksICJjbG9zZS13ZWItdmlldyIsIEdf
Q0FMTEJBQ0sod2ViVmlld0Nsb3NlKSwgMCk7CisKKyAgICByZXR1cm4gdmlldzsKK30KKworc3Rh
dGljIFdlYktpdFdlYlZpZXcqIHdlYlZpZXdDcmVhdGUoV2ViS2l0V2ViVmlldyogdmlldywgV2Vi
S2l0V2ViRnJhbWUqIGZyYW1lKQoreworICAgIGlmICghZ0xheW91dFRlc3RDb250cm9sbGVyLT5j
YW5PcGVuV2luZG93cygpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8vIE1ha2Ugc3VyZSB0
aGF0IHdhaXRVbnRpbERvbmUgaGFzIGJlZW4gY2FsbGVkLgorICAgIEFTU0VSVChnTGF5b3V0VGVz
dENvbnRyb2xsZXItPndhaXRUb0R1bXAoKSk7CisKKyAgICBXZWJLaXRXZWJWaWV3KiBuZXdXZWJW
aWV3ID0gY3JlYXRlV2ViVmlldygpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKEdfT0JKRUNUKG5l
d1dlYlZpZXcpKTsKKyAgICB3ZWJWaWV3TGlzdCA9IGdfc2xpc3RfcHJlcGVuZCh3ZWJWaWV3TGlz
dCwgbmV3V2ViVmlldyk7CisgICAgcmV0dXJuIG5ld1dlYlZpZXc7Cit9CisKIGludCBtYWluKGlu
dCBhcmdjLCBjaGFyKiBhcmd2W10pCiB7CiAgICAgZ190aHJlYWRfaW5pdChOVUxMKTsKQEAgLTU1
NiwyMyArNjI4LDEyIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgZ3Rr
X2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUih3aW5kb3cpLCBjb250YWluZXIpOwogICAgIGd0
a193aWRnZXRfcmVhbGl6ZSh3aW5kb3cpOwogCi0gICAgd2ViVmlldyA9IFdFQktJVF9XRUJfVklF
Vyh3ZWJraXRfd2ViX3ZpZXdfbmV3KCkpOworICAgIHdlYlZpZXcgPSBjcmVhdGVXZWJWaWV3KCk7
CiAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihjb250YWluZXIpLCBHVEtfV0lE
R0VUKHdlYlZpZXcpKTsKICAgICBndGtfd2lkZ2V0X3JlYWxpemUoR1RLX1dJREdFVCh3ZWJWaWV3
KSk7CiAgICAgZ3RrX3dpZGdldF9zaG93X2FsbChjb250YWluZXIpOwogICAgIG1haW5GcmFtZSA9
IHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZSh3ZWJWaWV3KTsKIAotICAgIGdfc2lnbmFs
X2Nvbm5lY3QoR19PQkpFQ1Qod2ViVmlldyksICJsb2FkLXN0YXJ0ZWQiLCBHX0NBTExCQUNLKHdl
YlZpZXdMb2FkU3RhcnRlZCksIDApOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1Qod2Vi
VmlldyksICJsb2FkLWZpbmlzaGVkIiwgR19DQUxMQkFDSyh3ZWJWaWV3TG9hZEZpbmlzaGVkKSwg
MCk7Ci0gICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVCh3ZWJWaWV3KSwgIndpbmRvdy1vYmpl
Y3QtY2xlYXJlZCIsIEdfQ0FMTEJBQ0sod2ViVmlld1dpbmRvd09iamVjdENsZWFyZWQpLCAwKTsK
LSAgICBnX3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKHdlYlZpZXcpLCAiY29uc29sZS1tZXNzYWdl
IiwgR19DQUxMQkFDSyh3ZWJWaWV3Q29uc29sZU1lc3NhZ2UpLCAwKTsKLSAgICBnX3NpZ25hbF9j
b25uZWN0KEdfT0JKRUNUKHdlYlZpZXcpLCAic2NyaXB0LWFsZXJ0IiwgR19DQUxMQkFDSyh3ZWJW
aWV3U2NyaXB0QWxlcnQpLCAwKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKHdlYlZp
ZXcpLCAic2NyaXB0LXByb21wdCIsIEdfQ0FMTEJBQ0sod2ViVmlld1NjcmlwdFByb21wdCksIDAp
OwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1Qod2ViVmlldyksICJzY3JpcHQtY29uZmly
bSIsIEdfQ0FMTEJBQ0sod2ViVmlld1NjcmlwdENvbmZpcm0pLCAwKTsKLSAgICBnX3NpZ25hbF9j
b25uZWN0KEdfT0JKRUNUKHdlYlZpZXcpLCAidGl0bGUtY2hhbmdlZCIsIEdfQ0FMTEJBQ0sod2Vi
Vmlld1RpdGxlQ2hhbmdlZCksIDApOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1Qod2Vi
VmlldyksICJuYXZpZ2F0aW9uLXBvbGljeS1kZWNpc2lvbi1yZXF1ZXN0ZWQiLCBHX0NBTExCQUNL
KHdlYlZpZXdOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25SZXF1ZXN0ZWQpLCAwKTsKLSAgICBnX3Np
Z25hbF9jb25uZWN0KEdfT0JKRUNUKHdlYlZpZXcpLCAic3RhdHVzLWJhci10ZXh0LWNoYW5nZWQi
LCBHX0NBTExCQUNLKHdlYlZpZXdTdGF0dXNCYXJUZXh0Q2hhbmdlZCksIDApOwotCiAgICAgc2V0
RGVmYXVsdHNUb0NvbnNpc3RlbnRTdGF0ZVZhbHVlc0ZvclRlc3RpbmcoKTsKIAogICAgIGlmIChh
cmdjID09IG9wdGluZCsxICYmIHN0cmNtcChhcmd2W29wdGluZF0sICItIikgPT0gMCkgewpAQCAt
NTk0LDUgKzY1NSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAg
ICAgICBydW5UZXN0KGFyZ3ZbaV0pOwogICAgIH0KIAorICAgIGdfb2JqZWN0X3VucmVmKHdlYlZp
ZXcpOworCiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWVHdGsuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2d0ay9EdW1wUmVuZGVyVHJlZUd0ay5oCmluZGV4IDJjZTAxNGYuLjdhNWE0Y2YgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZUd0ay5o
CisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZUd0ay5o
CkBAIC0zMiwxMCArMzIsMTMgQEAKICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgogCisjaW5jbHVkZSA8Z2xpYi5oPgor
CiBleHRlcm4gV2ViS2l0V2ViRnJhbWUqIG1haW5GcmFtZTsKIGV4dGVybiBXZWJLaXRXZWJGcmFt
ZSogdG9wTG9hZGluZ0ZyYW1lOwogZXh0ZXJuIGd1aW50IHdhaXRUb0R1bXBXYXRjaGRvZzsKIGV4
dGVybiBib29sIHdhaXRGb3JQb2xpY3k7CitleHRlcm4gR1NMaXN0KiB3ZWJWaWV3TGlzdDsKIAog
Z2NoYXIqIEpTU3RyaW5nQ29weVVURjhDU3RyaW5nKEpTU3RyaW5nUmVmIGpzU3RyaW5nKTsKIApk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250
cm9sbGVyR3RrLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHAKaW5kZXggNDA5OTJjNi4uNmE4ZjcxMSAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAor
KysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJH
dGsuY3BwCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8
ZXJpY0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA4IE51YW50aSBMdGQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDkgSmFuIE1pY2hhZWwgQWxvbnpvIDxqbWFsb256b0BnbWFpbC5jb20+
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzMCw4ICsyMzEsOCBAQCB2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpzZXRXYWl0VG9EdW1wKGJvb2wgd2FpdFVudGlsRG9uZSkK
IAogaW50IExheW91dFRlc3RDb250cm9sbGVyOjp3aW5kb3dDb3VudCgpCiB7Ci0gICAgLy8gRklY
TUU6IGltcGxlbWVudAotICAgIHJldHVybiAxOworICAgIC8vICsxIC0+IGluY2x1ZGluZyB0aGUg
bWFpbiB2aWV3CisgICAgcmV0dXJuIGdfc2xpc3RfbGVuZ3RoKHdlYlZpZXdMaXN0KSArIDE7CiB9
CiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQo
Ym9vbCBmbGFnKQpAQCAtMjc5LDkgKzI4MCwxNCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKICAgICAvLyBG
SVhNRTogaW1wbGVtZW50CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBvcHVw
QmxvY2tpbmdFbmFibGVkKGJvb2wgcG9wdXBCbG9ja2luZ0VuYWJsZWQpCit2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sIGZsYWcpCiB7Ci0gICAg
Ly8gRklYTUU6IGltcGxlbWVudAorICAgIFdlYktpdFdlYlZpZXcqIHZpZXcgPSB3ZWJraXRfd2Vi
X2ZyYW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpOworICAgIEFTU0VSVCh2aWV3KTsKKworICAg
IFdlYktpdFdlYlNldHRpbmdzKiBzZXR0aW5ncyA9IHdlYmtpdF93ZWJfdmlld19nZXRfc2V0dGlu
Z3Modmlldyk7CisgICAgZ19vYmplY3Rfc2V0KEdfT0JKRUNUKHNldHRpbmdzKSwgImphdmFzY3Jp
cHQtY2FuLW9wZW4td2luZG93cyIsIGZsYWcsIE5VTEwpOworCiB9CiAKIGJvb2wgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OmVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZChKU1N0
cmluZ1JlZiBpZCkgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31923</attachid>
            <date>2009-06-26 02:28:44 -0700</date>
            <delta_ts>2009-06-30 17:49:57 -0700</delta_ts>
            <desc>updated based on xan&apos;s feedback</desc>
            <filename>bugzilla_requires_a_filename.patch</filename>
            <type>text/plain</type>
            <size>29924</size>
            <attacher name="Jan Alonzo">jmalonzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2ODNjNThmLi45ZjRmNjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDYt
MjYgIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gQWRkIHN1cHBvcnQg
Zm9yIGphdmFzY3JpcHQgd2luZG93cyBmb3IgRFJUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjcxOAorCisgICAgICAgIFVuc2tpcCB0ZXN0cyB0aGF0
IG5vdyBwYXNzIGR1ZSB0byBzdXBwb3J0IGZvciBKUyB3aW5kb3dzIGluIEd0ayBEUlQuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKwogMjAwOS0wNi0yNSAgQWxleGV5IFByb3Nr
dXJ5YWtvdiAgPGFwQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDVhYzVjMzguLjVkZTcxYzQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0xNjEzLDI1ICsxNjEzLDE1IEBAIGZhc3QvZG9tL251
bGwtZG9jdW1lbnQtbG9jYXRpb24tcmVwbGFjZS1jcmFzaC5odG1sCiBmYXN0L2RvbS9udWxsLWRv
Y3VtZW50LXdpbmRvdy1vcGVuLWNyYXNoLmh0bWwKIGZhc3QvZG9tL29iamVjdC1lbWJlZC1wbHVn
aW4tc2NyaXB0aW5nLmh0bWwKIGZhc3QvZG9tL29iamVjdC1wbHVnaW4taGlkZXMtcHJvcGVydGll
cy5odG1sCi1mYXN0L2RvbS9vcGVuLWFuZC1jbG9zZS1ieS1ET00uaHRtbAogZmFzdC9kb20vdGFi
aW5kZXgtY2xhbXAuaHRtbAotZmFzdC9kb20vRG9jdW1lbnQvZWFybHktZG9jdW1lbnQtYWNjZXNz
Lmh0bWwKIGZhc3QvZG9tL0hUTUxEb2N1bWVudC9oYXNGb2N1cy5odG1sCiBmYXN0L2RvbS9TZWxl
Y3RvckFQSS9yZXNpZy1TZWxlY3RvcnNBUEktdGVzdC54aHRtbAogZmFzdC9kb20vU3R5bGVTaGVl
dC9vd25lck5vZGUtbGlmZXRpbWUtMi5odG1sCi1mYXN0L2RvbS9XaW5kb3cvY2xvc3VyZS1hY2Nl
c3MtYWZ0ZXItbmF2aWdhdGlvbi13aW5kb3cuaHRtbAotZmFzdC9kb20vV2luZG93L2RvbS1hY2Nl
c3MtZnJvbS1jbG9zdXJlLXdpbmRvdy5odG1sCiBmYXN0L2RvbS9XaW5kb3cvbmV3LXdpbmRvdy1v
cGVuZXIuaHRtbAotZmFzdC9kb20vV2luZG93L3NldHRpbmctcHJvcGVydGllcy1vbi1jbG9zZWQt
d2luZG93Lmh0bWwKIGZhc3QvZG9tL1dpbmRvdy93ZWJraXRDb252ZXJ0UG9pbnQuaHRtbAotZmFz
dC9kb20vV2luZG93L3dpbmRvdy1lYXJseS1wcm9wZXJ0aWVzLmh0bWwKLWZhc3QvZG9tL1dpbmRv
dy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UuaHRtbAogZmFzdC9kb20vV2luZG93L3dpbmRvdy1v
bkZvY3VzLmh0bWwKLWZhc3QvZG9tL1dpbmRvdy93aW5kb3ctb3Blbi1wZW5kaW5nLXVybC5odG1s
Ci1mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMuaHRtbAogZmFzdC9kb20vV2luZG93
L3dpbmRvdy1yZXNpemUtYW5kLW1vdmUtYXJndW1lbnRzLmh0bWwKIGZhc3QvZG9tL1dpbmRvdy93
aW5kb3ctcmVzaXplLmh0bWwKLWZhc3QvZG9tL1dpbmRvdy93aW5kb3ctc2NyZWVuLXByb3BlcnRp
ZXMuaHRtbAogZmFzdC9kb20vV2luZG93L3dpbmRvdy14eS1wcm9wZXJ0aWVzLmh0bWwKIGZhc3Qv
ZHluYW1pYy9ob3ZlcmVkLWRldGFjaC5odG1sCiBmYXN0L2R5bmFtaWMvcGF1c2VkLWV2ZW50LWRp
c3BhdGNoLmh0bWwKQEAgLTE3OTcsNyArMTc4Nyw2IEBAIGZhc3QvanMvZGF0ZS1iaWctc2V0ZGF0
ZS5odG1sCiBmYXN0L2pzL2V4Y2VwdGlvbnMtdGhyb3duLWluLWNhbGxiYWNrcy5odG1sCiBmYXN0
L2pzL25hdmlnYXRvci1taW1lVHlwZXMtbGVuZ3RoLmh0bWwKIGZhc3QvbGF5ZXJzL3Jlc2l6ZS1s
YXllci1kZWxldGlvbi1jcmFzaC5odG1sCi1mYXN0L2xvYWRlci9jYW5jZWwtbG9hZC1kdXJpbmct
cG9ydC1ibG9jay10aW1lci5odG1sCiBmYXN0L2xvYWRlci9tYWluLWRvY3VtZW50LXVybC1mb3It
bm9uLWh0dHAtbG9hZHMuaHRtbAogZmFzdC9sb2FkZXIvb251bmxvYWQtZm9ybS1zdWJtaXQtY3Jh
c2gtMi5odG1sCiBmYXN0L2xvYWRlci9vbnVubG9hZC1mb3JtLXN1Ym1pdC1jcmFzaC5odG1sCkBA
IC0zNzk5LDI5ICszNzg4LDIwIEBAIGh0dHAvdGVzdHMvbWlzYy9zdWJtaXQtZ2V0LWluLXV0Zjcu
aHRtbAogaHR0cC90ZXN0cy9taXNjL3RleHQtcmVmcmVzaC5odG1sCiBodHRwL3Rlc3RzL21pc2Mv
dGltZXItdnMtbG9hZGluZy5odG1sCiBodHRwL3Rlc3RzL21pc2Mvd2luZG93LWRvdC1zdG9wLmh0
bWwKLWh0dHAvdGVzdHMvbWlzYy93aW5kb3ctb3Blbi10aGVuLXdyaXRlLmh0bWwKIGh0dHAvdGVz
dHMvbmF2aWdhdGlvbi9iYWNrLXRvLXNsb3ctZnJhbWUuaHRtbAogaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL2RvY3VtZW50LWxvY2F0aW9uLWNsaWNrLXRpbWVvdXQuaHRtbAogaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL2RvY3VtZW50LWxvY2F0aW9uLWNsaWNrLmh0bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlv
bi9kb2N1bWVudC1sb2NhdGlvbi1tb3VzZW92ZXIuaHRtbAotaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L25ldy13aW5kb3ctcmVkaXJlY3QtaGlzdG9yeS5odG1sCiBodHRwL3Rlc3RzL25hdmlnYXRpb24v
cmVsb2FkLXN1YmZyYW1lLWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWxvYWQt
c3ViZnJhbWUtaWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWxvYWQtc3ViZnJh
bWUtb2JqZWN0Lmh0bWwKLWh0dHAvdGVzdHMvbmF2aWdhdGlvbi90YXJnZXQtZnJhbWUtZnJvbS13
aW5kb3cuaHRtbAogaHR0cC90ZXN0cy9wbHVnaW5zL25wYXBpLXJlc3BvbnNlLWhlYWRlcnMuaHRt
bAogaHR0cC90ZXN0cy9wbHVnaW5zL3Bvc3QtdXJsLWZpbGUuaHRtbAogaHR0cC90ZXN0cy9zZWN1
cml0eS9jcmVkZW50aWFscy1pbi1yZWZlcmVyLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3MtZnJhbWUtYWNjZXNzLWNhbGxiYWNrLWV4cGxpY2l0LWRvbWFpbi1ERU5ZLmh0bWwKLWh0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWRlbGV0ZS5odG1sCi1odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1oaXN0b3J5LXB1dC5odG1sCi1odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1sb2NhdGlvbi1wdXQuaHRtbAotaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHJpdmF0ZS1icm93c2luZy5odG1sCiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbAogaHR0cC90ZXN0cy9z
ZWN1cml0eS9kYXRhVHJhbnNmZXItc2V0LWRhdGEtZmlsZS11cmwuaHRtbAogaHR0cC90ZXN0cy9z
ZWN1cml0eS9mZWVkLXVybHMtZnJvbS1yZW1vdGUuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9m
cmFtZS1sb2FkaW5nLXZpYS1kb2N1bWVudC13cml0ZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5
L2hvc3QtY29tcGFyZS1jYXNlLWluc2Vuc2l0aXZlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkv
bG9jYWwtQ1NTLWZyb20tcmVtb3RlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtSmF2
YVNjcmlwdC1mcm9tLXJlbW90ZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWlGcmFt
ZS1mcm9tLXJlbW90ZS5odG1sCkBAIC0zODI5LDkgKzM4MDksNiBAQCBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9j
YWwtdmlkZW8tcG9zdGVyLWZyb20tcmVtb3RlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9j
YWwtdmlkZW8tc291cmNlLWZyb20tcmVtb3RlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9j
YWwtdmlkZW8tc3JjLWZyb20tcmVtb3RlLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93
LXByb3BlcnRpZXMtY2xlYXItZG9tYWluLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93
LXByb3BlcnRpZXMtY2xlYXItcG9ydC5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1w
cm9wZXJ0aWVzLXBhc3MuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3gt
ZnJhbWUtb3B0aW9ucy1kZW55LW1ldGEtdGFnLWluLWJvZHkuaHRtbAogaHR0cC90ZXN0cy9zZWN1
cml0eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0aW9ucy1kZW55LW1ldGEtdGFnLXBhcmVudC1z
YW1lLW9yaWdpbi1hbGxvdy5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMv
eC1mcmFtZS1vcHRpb25zLWRlbnktbWV0YS10YWctcGFyZW50LXNhbWUtb3JpZ2luLWRlbnkuaHRt
bApAQCAtMzgzOSw0OCArMzgxNiw4IEBAIGh0dHAvdGVzdHMvc2VjdXJpdHkvWEZyYW1lT3B0aW9u
cy94LWZyYW1lLW9wdGlvbnMtZGVueS1tZXRhLXRhZy5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5
L1hGcmFtZU9wdGlvbnMveC1mcmFtZS1vcHRpb25zLWRlbnkuaHRtbAogaHR0cC90ZXN0cy9zZWN1
cml0eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0aW9ucy1wYXJlbnQtc2FtZS1vcmlnaW4tYWxs
b3cuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0aW9u
cy1wYXJlbnQtc2FtZS1vcmlnaW4tZGVueS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0
Qmxhbmsvc2VjdXJpdHktY29udGV4dC1ncmFuZGNoaWxkcmVuLmh0bWwKLWh0dHAvdGVzdHMvc2Vj
dXJpdHkvYWJvdXRCbGFuay9zZWN1cml0eS1jb250ZXh0LXdpbmRvdy1vcGVuLmh0bWwKLWh0dHAv
dGVzdHMvc2VjdXJpdHkvYWJvdXRCbGFuay93aW5kb3ctb3Blbi1zZWxmLWFib3V0LWJsYW5rLmh0
bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXRCbGFuay94c3MtREVOSUVELW5hdmlnYXRlLW9w
ZW5lci1kb2N1bWVudC13cml0ZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0Qmxhbmsv
eHNzLURFTklFRC1uYXZpZ2F0ZS1vcGVuZXItamF2YXNjcmlwdC11cmwuaHRtbAotaHR0cC90ZXN0
cy9zZWN1cml0eS9hYm91dEJsYW5rL3hzcy1ERU5JRUQtc2V0LW9wZW5lci5odG1sCi1odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nvb2tpZXMvZG9jdW1lbnQtb3Blbi5odG1sCi1odHRwL3Rlc3RzL3NlY3Vy
aXR5L2RhdGFVUkwveHNzLURFTklFRC1mcm9tLWRhdGEtdXJsLWluLWZvcmVpZ24tZG9tYWluLXdp
bmRvdy1vcGVuLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YVVSTC94c3MtREVOSUVELWZy
b20tZGF0YS11cmwtc3ViLWZyYW1lLTItbGV2ZWwuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9k
YXRhVVJML3hzcy1ERU5JRUQtZnJvbS1kYXRhLXVybC1zdWItZnJhbWUtdG8tZGF0YS11cmwtc3Vi
LWZyYW1lLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YVVSTC94c3MtREVOSUVELWZyb20t
amF2YXNjcmlwdC11cmwtd2luZG93LW9wZW4uaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9kYXRh
VVJML3hzcy1ERU5JRUQtdG8tZGF0YS11cmwtaW4tZm9yZWlnbi1kb21haW4tc3ViZnJhbWUtbG9j
YXRpb24tY2hhbmdlLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YVVSTC94c3MtREVOSUVE
LXRvLWRhdGEtdXJsLWluLWZvcmVpZ24tZG9tYWluLXN1YmZyYW1lLmh0bWwKLWh0dHAvdGVzdHMv
c2VjdXJpdHkvZGF0YVVSTC94c3MtREVOSUVELXRvLWRhdGEtdXJsLWluLWZvcmVpZ24tZG9tYWlu
LXdpbmRvdy1vcGVuLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YVVSTC94c3MtREVOSUVE
LXRvLWRhdGEtdXJsLXN1Yi1mcmFtZS0yLWxldmVsLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkv
ZGF0YVVSTC94c3MtREVOSUVELXRvLWRhdGEtdXJsLXdpbmRvdy1vcGVuLmh0bWwKLWh0dHAvdGVz
dHMvc2VjdXJpdHkvZnJhbWVOYXZpZ2F0aW9uL25vdC1vcGVuZXIuaHRtbAotaHR0cC90ZXN0cy9z
ZWN1cml0eS9mcmFtZU5hdmlnYXRpb24vb3BlbmVyLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkv
ZnJhbWVOYXZpZ2F0aW9uL3hzcy1BTExPV0VELXRhcmdldGVkLXN1YmZyYW1lLW5hdmlnYXRpb24t
Y2hhbmdlLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZnJhbWVOYXZpZ2F0aW9uL3hzcy1ERU5J
RUQtcGx1Z2luLW5hdmlnYXRpb24uaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9mcmFtZU5hdmln
YXRpb24veHNzLURFTklFRC10YXJnZXRlZC1saW5rLW5hdmlnYXRpb24uaHRtbAotaHR0cC90ZXN0
cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML2phdmFzY3JpcHRVUkwtZXhlY3V0aW9uLWNvbnRleHQt
ZnJhbWUtbG9jYXRpb24taHRtbGRvbS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3Jp
cHRVUkwvamF2YXNjcmlwdFVSTC1leGVjdXRpb24tY29udGV4dC1mcmFtZS1zcmMtZ2V0QXR0cmli
dXRlLXZhbHVlLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC9qYXZhc2Ny
aXB0VVJMLWV4ZWN1dGlvbi1jb250ZXh0LWZyYW1lLXNyYy1odG1sZG9tLmh0bWwKLWh0dHAvdGVz
dHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC9qYXZhc2NyaXB0VVJMLWV4ZWN1dGlvbi1jb250ZXh0
LWZyYW1lLXNyYy1zZXRBdHRyaWJ1dGUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2Ny
aXB0VVJML2phdmFzY3JpcHRVUkwtZXhlY3V0aW9uLWNvbnRleHQtZnJhbWUtc3JjLXNldEF0dHJp
YnV0ZU5TLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC9qYXZhc2NyaXB0
VVJMLWV4ZWN1dGlvbi1jb250ZXh0LWZyYW1lLXNyYy1zZXRBdHRyaWJ1dGVOb2RlLmh0bWwKLWh0
dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC9qYXZhc2NyaXB0VVJMLWV4ZWN1dGlvbi1j
b250ZXh0LWZyYW1lLXNyYy1zZXRBdHRyaWJ1dGVOb2RlTlMuaHRtbAotaHR0cC90ZXN0cy9zZWN1
cml0eS9qYXZhc2NyaXB0VVJML3hzcy1BTExPV0VELWZyb20tamF2YXNjcmlwdC11cmwtc3ViLWZy
YW1lLTItbGV2ZWwuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML3hzcy1B
TExPV0VELWZyb20tamF2YXNjcmlwdC11cmwtc3ViLWZyYW1lLXRvLWphdmFzY3JpcHQtdXJsLXN1
Yi1mcmFtZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHRVUkwveHNzLUFMTE9X
RUQtZnJvbS1qYXZhc2NyaXB0LXVybC10by1qYXZzY3JpcHQtdXJsLmh0bWwKLWh0dHAvdGVzdHMv
c2VjdXJpdHkvamF2YXNjcmlwdFVSTC94c3MtQUxMT1dFRC1mcm9tLWphdmFzY3JpcHQtdXJsLXdp
bmRvdy1vcGVuLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC94c3MtQUxM
T1dFRC10by1qYXZhc2NyaXB0LXVybC1mcm9tLWphdnNjcmlwdC11cmwuaHRtbAotaHR0cC90ZXN0
cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML3hzcy1BTExPV0VELXRvLWphdmFzY3JpcHQtdXJsLXN1
Yi1mcmFtZS0yLWxldmVsLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC94
c3MtQUxMT1dFRC10by1qYXZhc2NyaXB0LXVybC13aW5kb3ctb3Blbi5odG1sCi1odHRwL3Rlc3Rz
L3NlY3VyaXR5L2phdmFzY3JpcHRVUkwveHNzLURFTklFRC1mcm9tLWphdmFzY3JpcHQtdXJsLWlu
LWZvcmVpZ24tZG9tYWluLXN1YmZyYW1lLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNj
cmlwdFVSTC94c3MtREVOSUVELWZyb20tamF2YXNjcmlwdC11cmwtaW4tZm9yZWlnbi1kb21haW4t
d2luZG93LW9wZW4uaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML3hzcy1E
RU5JRUQtdG8tamF2YXNjcmlwdC11cmwtaW4tZm9yZWlnbi1kb21haW4tc3ViZnJhbWUuaHRtbAot
aHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML3hzcy1ERU5JRUQtdG8tamF2YXNjcmlw
dC11cmwtaW4tZm9yZWlnbi1kb21haW4td2luZG93LW9wZW4uaHRtbAogaHR0cC90ZXN0cy9zZWN1
cml0eS9saXN0ZW5lci94c3Mtd2luZG93LW9uY2xpY2stYWRkRXZlbnRMaXN0ZW5lci5odG1sCiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2xpc3RlbmVyL3hzcy13aW5kb3ctb25jbGljay1zaG9ydGN1dC5o
dG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L29yaWdpbkhlYWRlci9vcmlnaW4taGVhZGVyLWZvci1l
bXB0eS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvbGluay1vcGVucy1uZXct
d2luZG93Lmh0bWwKIGh0dHAvdGVzdHMvd29ya2Vycy90ZXh0LWVuY29kaW5nLmh0bWwKIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvYWJvcnQtc2hvdWxkLWNhbmNlbC1sb2FkLmh0bWwKQEAgLTM4
ODgsNyArMzgyNSw2IEBAIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wt
YmFzaWMtbm9uLXNpbXBsZS1hbGxvdy5odG1sCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Fj
Y2Vzcy1jb250cm9sLWJhc2ljLW5vbi1zaW1wbGUtZGVueS1jYWNoZWQuaHRtbAogaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1iYXNpYy13aGl0ZWxpc3QtcmVxdWVzdC1o
ZWFkZXJzLmh0bWwKIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYmFzaWMtYXV0aC5odG1sCi1o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Nsb3NlLXdpbmRvdy5odG1sCiBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L2Nvb2tpZXMuaHRtbAogI1dlIGRvbid0IHNlZW0gdG8gc3VwcG9ydCBuZWl0
aGVyIG9mIHRoZXNlIGZvciBub3cKIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY3Jvc3Mtb3Jp
Z2luLWF1dGhvcml6YXRpb24uaHRtbApAQCAtMzkwMyw3ICszODM5LDYgQEAgaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9nZXQtZGFuZ2Vyb3VzLWhlYWRlcnMuaHRtbAogaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9tZXRob2RzLWFzeW5jLmh0bWwKIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
bWV0aG9kcy1sb3dlci1jYXNlLmh0bWwKIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0aG9k
cy5odG1sCi1odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlcXVlc3QtZnJvbS1wb3B1cC5odG1s
CiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc3BvbnNlLWVuY29kaW5nLmh0bWwKIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3Qvc3RhdGUtYWZ0ZXItbmV0d29yay1lcnJvci5odG1sCiBodHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3N0YXR1cy1hZnRlci1hYm9ydC5odG1sCmRpZmYgLS1naXQg
YS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGIwMzhh
NDcuLjc4ZTYzMWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMDktMDYtMjYgIEphbiBNaWNoYWVs
IEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gQWRkIHN1cHBvcnQgZm9yIGphdmFzY3JpcHQg
d2luZG93cyBmb3IgRFJUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNjcxOAorCisgICAgICAgIEFkZCBBUEkgdG8gc3VwcG9ydCBvcGVuaW5nIGFuZCBj
bG9zaW5nIG9mIEphdmFTY3JpcHQgd2luZG93cyBhdXRvbWF0aWNhbGx5LgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50OjpjbG9zZVdpbmRvd1Nvb24pOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2
YXRlLmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKKyAgICAgICAg
KHdlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfd2ViX3Nl
dHRpbmdzX3NldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9w
cm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NvcHkpOgorICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFz
c19pbml0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOgorICAg
ICAgICAod2Via2l0X3dlYl92aWV3X3NldHRpbmdzX25vdGlmeSk6CisgICAgICAgICh3ZWJraXRf
d2ViX3ZpZXdfc2V0X2dyb3VwX25hbWUpOgorCiAyMDA5LTA2LTI0ICBKaWFodWEgSHVhbmcgIDxq
aHVhbmdqaWFodWFAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5
dGhlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcApp
bmRleCA1MDIzZDVjLi40MjNiZTkwIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuY3BwCkBAIC0yMTUsNyArMjE1LDExIEBAIHZvaWQgQ2hyb21lQ2xpZW50
OjpzZXRSZXNpemFibGUoYm9vbCkKIAogdm9pZCBDaHJvbWVDbGllbnQ6OmNsb3NlV2luZG93U29v
bigpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBDbGVhciB0aGUgcGFnZSBncm91
cCBuYW1lIChiZWNhdXNlIG1hYyBkb2VzISkKKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X2dyb3Vw
X25hbWUobV93ZWJWaWV3LCAiIik7CisgICAgd2Via2l0X3dlYl92aWV3X3N0b3BfbG9hZGluZyht
X3dlYlZpZXcpOworCisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgImNsb3Nl
LXdlYi12aWV3Iik7CiB9CiAKIGJvb2wgQ2hyb21lQ2xpZW50OjpjYW5UYWtlRm9jdXMoRm9jdXNE
aXJlY3Rpb24pCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgg
Yi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgKaW5kZXggMTNmY2QxNi4uYzU5ZTEw
YiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCisrKyBiL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaApAQCAtMjI0LDYgKzIyNCw5IEBAIGV4dGVy
biAiQyIgewogICAgIHdlYmtpdF93ZWJfdmlld19nZXRfc2VsZWN0ZWRfdGV4dCAoV2ViS2l0V2Vi
Vmlldyogd2ViX3ZpZXcpOwogCiAgICAgV0VCS0lUX0FQSSB2b2lkCisgICAgd2Via2l0X3dlYl92
aWV3X3NldF9ncm91cF9uYW1lKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBjb25zdCBnY2hhciog
Z3JvdXBfbmFtZSk7CisKKyAgICBXRUJLSVRfQVBJIHZvaWQKICAgICB3ZWJraXRfd2ViX3NldHRp
bmdzX2FkZF9leHRyYV9wbHVnaW5fZGlyZWN0b3J5IChXZWJLaXRXZWJWaWV3ICp3ZWJfdmlldywg
Y29uc3QgZ2NoYXIqIGRpcmVjdG9yeSk7CiAKICAgICBHU0xpc3QqCmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJzZXR0aW5ncy5jcHAKaW5kZXggMmYxODg2Yy4uZmU5YzQ1YyAxMDA2NDQKLS0tIGEv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCisrKyBiL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcApAQCAtMyw2ICszLDcgQEAKICAqIENvcHlyaWdo
dCAoQykgMjAwOCBOdWFudGkgTHRkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBM
dGQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKKyAq
IENvcHlyaWdodCAoQykgMjAwOSBKYW4gTWljaGFlbCBBbG9uem8KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwpAQCAtODEsNiArODIsNyBAQCBzdHJ1Y3QgX1dlYktpdFdlYlNldHRpbmdzUHJpdmF0ZSB7CiAg
ICAgZ2Jvb2xlYW4gZW5hYmxlX2h0bWw1X2RhdGFiYXNlOwogICAgIGdib29sZWFuIGVuYWJsZV9o
dG1sNV9sb2NhbF9zdG9yYWdlOwogICAgIGdib29sZWFuIGVuYWJsZV94c3NfYXVkaXRvcjsKKyAg
ICBnYm9vbGVhbiBqYXZhc2NyaXB0X2Nhbl9vcGVuX3dpbmRvd3M7CiB9OwogCiAjZGVmaW5lIFdF
QktJVF9XRUJfU0VUVElOR1NfR0VUX1BSSVZBVEUob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9Q
UklWQVRFKChvYmopLCBXRUJLSVRfVFlQRV9XRUJfU0VUVElOR1MsIFdlYktpdFdlYlNldHRpbmdz
UHJpdmF0ZSkpCkBAIC0xMTUsNyArMTE3LDggQEAgZW51bSB7CiAgICAgUFJPUF9FTkFCTEVfQ0FS
RVRfQlJPV1NJTkcsCiAgICAgUFJPUF9FTkFCTEVfSFRNTDVfREFUQUJBU0UsCiAgICAgUFJPUF9F
TkFCTEVfSFRNTDVfTE9DQUxfU1RPUkFHRSwKLSAgICBQUk9QX0VOQUJMRV9YU1NfQVVESVRPUgor
ICAgIFBST1BfRU5BQkxFX1hTU19BVURJVE9SLAorICAgIFBST1BfSkFWQVNDUklQVF9DQU5fT1BF
Tl9XSU5ET1dTCiB9OwogCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3NldHRpbmdzX2ZpbmFsaXpl
KEdPYmplY3QqIG9iamVjdCk7CkBAIC00NzQsNiArNDc3LDIxIEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdChXZWJLaXRXZWJTZXR0aW5nc0NsYXNzKiBrbGFzcykK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmxhZ3MpKTsKIAorICAgIC8qKgorICAgICogV2ViS2l0V2ViU2V0dGluZ3M6amF2
YXNjcmlwdC1jYW4tb3Blbi13aW5kb3dzCisgICAgKgorICAgICogV2hldGhlciBKYXZhU2NyaXB0
IGNhbiBvcGVuIHdpbmRvd3MgYXV0b21hdGljYWxseS4KKyAgICAqCisgICAgKiBTaW5jZSAxLjEu
MTEKKyAgICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9j
bGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfSkFWQVNDUklQ
VF9DQU5fT1BFTl9XSU5ET1dTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z19wYXJhbV9zcGVjX2Jvb2xlYW4oImphdmFzY3JpcHQtY2FuLW9wZW4td2luZG93cyIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJK
YXZhU2NyaXB0IGNhbiBvcGVuIHdpbmRvd3MgYXV0b21hdGljYWxseSIpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiV2hldGhlciBK
YXZhU2NyaXB0IGNhbiBvcGVuIHdpbmRvd3MgYXV0b21hdGljYWxseSIpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdz
KSk7CisKICAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUoa2xhc3MsIHNpemVvZihXZWJLaXRX
ZWJTZXR0aW5nc1ByaXZhdGUpKTsKIH0KIApAQCAtNjM5LDYgKzY1Nyw5IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQg
cHJvcF9pZCwgY29uCiAgICAgY2FzZSBQUk9QX0VOQUJMRV9YU1NfQVVESVRPUjoKICAgICAgICAg
cHJpdi0+ZW5hYmxlX3hzc19hdWRpdG9yID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7CiAg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9KQVZBU0NSSVBUX0NBTl9PUEVOX1dJTkRPV1M6
CisgICAgICAgIHByaXYtPmphdmFzY3JpcHRfY2FuX29wZW5fd2luZG93cyA9IGdfdmFsdWVfZ2V0
X2Jvb2xlYW4odmFsdWUpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBH
X09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7
CiAgICAgICAgIGJyZWFrOwpAQCAtNzM1LDYgKzc1Niw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93
ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwg
R1ZhCiAgICAgY2FzZSBQUk9QX0VOQUJMRV9YU1NfQVVESVRPUjoKICAgICAgICAgZ192YWx1ZV9z
ZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+ZW5hYmxlX3hzc19hdWRpdG9yKTsKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBQUk9QX0pBVkFTQ1JJUFRfQ0FOX09QRU5fV0lORE9XUzoKKyAgICAgICAg
Z192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+amF2YXNjcmlwdF9jYW5fb3Blbl93aW5k
b3dzKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FS
Tl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOwogICAgICAgICBi
cmVhazsKQEAgLTc5NCw2ICs4MTgsNyBAQCBXZWJLaXRXZWJTZXR0aW5ncyogd2Via2l0X3dlYl9z
ZXR0aW5nc19jb3B5KFdlYktpdFdlYlNldHRpbmdzKiB3ZWJfc2V0dGluZ3MpCiAgICAgICAgICAg
ICAgICAgICJlbmFibGUtaHRtbDUtZGF0YWJhc2UiLCBwcml2LT5lbmFibGVfaHRtbDVfZGF0YWJh
c2UsCiAgICAgICAgICAgICAgICAgICJlbmFibGUtaHRtbDUtbG9jYWwtc3RvcmFnZSIsIHByaXYt
PmVuYWJsZV9odG1sNV9sb2NhbF9zdG9yYWdlLAogICAgICAgICAgICAgICAgICAiZW5hYmxlLXhz
cy1hdWRpdG9yIiwgcHJpdi0+ZW5hYmxlX3hzc19hdWRpdG9yLAorICAgICAgICAgICAgICAgICAi
amF2YXNjcmlwdC1jYW4tb3Blbi13aW5kb3dzIiwgcHJpdi0+amF2YXNjcmlwdF9jYW5fb3Blbl93
aW5kb3dzLAogICAgICAgICAgICAgICAgICBOVUxMKSk7CiAKICAgICByZXR1cm4gY29weTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXggMDg3MmRhZC4uNzI2MDNiYSAxMDA2NDQK
LS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTExNyw2ICsxMTcsNyBAQCBlbnVtIHsKICAg
ICBNSU1FX1RZUEVfUE9MSUNZX0RFQ0lTSU9OX1JFUVVFU1RFRCwKICAgICBDUkVBVEVfV0VCX1ZJ
RVcsCiAgICAgV0VCX1ZJRVdfUkVBRFksCisgICAgQ0xPU0VfV0VCX1ZJRVcsCiAgICAgV0lORE9X
X09CSkVDVF9DTEVBUkVELAogICAgIExPQURfU1RBUlRFRCwKICAgICBMT0FEX0NPTU1JVFRFRCwK
QEAgLTExMTAsNiArMTExMSwyNCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3Nf
aW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAgICAgIEdfVFlQ
RV9CT09MRUFOLCAwKTsKIAogICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZpZXc6OmNsb3NlLXdl
Yi12aWV3OgorICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgc2lnbmFs
IGlzIGVtaXR0ZWQKKyAgICAgKgorICAgICAqIEVtaXR0ZWQgd2hlbiBjbG9zaW5nIGEgV2ViVmll
dyBpcyByZXF1ZXN0ZWQuIFRoaXMgb2NjdXJzIHdoZW4gYSBjYWxsCisgICAgICogaXMgbWFkZSBm
cm9tIEphdmFTY3JpcHQncyB3aW5kb3cuY2xvc2UgZnVuY3Rpb24uCisgICAgICoKKyAgICAgKiBT
aW5jZSAxLjEuMTEKKyAgICAgKi8KKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tDTE9TRV9X
RUJfVklFV10gPSBnX3NpZ25hbF9uZXcoImNsb3NlLXdlYi12aWV3IiwKKyAgICAgICAgICAgIEdf
VFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdz
KUdfU0lHTkFMX1JVTl9MQVNULAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIE5VTEwsCisg
ICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX1ZP
SUQsCisgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMCk7CisKKyAgICAvKioKICAgICAgKiBXZWJL
aXRXZWJWaWV3OjpuYXZpZ2F0aW9uLXJlcXVlc3RlZDoKICAgICAgKiBAd2ViX3ZpZXc6IHRoZSBv
YmplY3Qgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCiAgICAgICogQGZyYW1lOiB0aGUg
I1dlYktpdFdlYkZyYW1lIHRoYXQgcmVxdWlyZWQgdGhlIG5hdmlnYXRpb24KQEAgLTIwNTAsNyAr
MjA2OSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MoV2Vi
S2l0V2ViVmlldyogd2ViVmlldykKICAgICBnYm9vbGVhbiBhdXRvTG9hZEltYWdlcywgYXV0b1No
cmlua0ltYWdlcywgcHJpbnRCYWNrZ3JvdW5kcywKICAgICAgICAgZW5hYmxlU2NyaXB0cywgZW5h
YmxlUGx1Z2lucywgZW5hYmxlRGV2ZWxvcGVyRXh0cmFzLCByZXNpemFibGVUZXh0QXJlYXMsCiAg
ICAgICAgIGVuYWJsZVByaXZhdGVCcm93c2luZywgZW5hYmxlQ2FyZXRCcm93c2luZywgZW5hYmxl
SFRNTDVEYXRhYmFzZSwgZW5hYmxlSFRNTDVMb2NhbFN0b3JhZ2UsCi0gICAgICAgIGVuYWJsZVhT
U0F1ZGl0b3I7CisgICAgICAgIGVuYWJsZVhTU0F1ZGl0b3IsIGphdmFzY3JpcHRDYW5PcGVuV2lu
ZG93czsKIAogICAgIGdfb2JqZWN0X2dldCh3ZWJTZXR0aW5ncywKICAgICAgICAgICAgICAgICAg
ImRlZmF1bHQtZW5jb2RpbmciLCAmZGVmYXVsdEVuY29kaW5nLApAQCAtMjA3Myw2ICsyMDkyLDcg
QEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyhXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3KQogICAgICAgICAgICAgICAgICAiZW5hYmxlLWh0bWw1LWRhdGFiYXNlIiwg
JmVuYWJsZUhUTUw1RGF0YWJhc2UsCiAgICAgICAgICAgICAgICAgICJlbmFibGUtaHRtbDUtbG9j
YWwtc3RvcmFnZSIsICZlbmFibGVIVE1MNUxvY2FsU3RvcmFnZSwKICAgICAgICAgICAgICAgICAg
ImVuYWJsZS14c3MtYXVkaXRvciIsICZlbmFibGVYU1NBdWRpdG9yLAorICAgICAgICAgICAgICAg
ICAiamF2YXNjcmlwdC1jYW4tb3Blbi13aW5kb3dzIiwgJmphdmFzY3JpcHRDYW5PcGVuV2luZG93
cywKICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKICAgICBzZXR0aW5ncy0+c2V0RGVmYXVsdFRl
eHRFbmNvZGluZ05hbWUoZGVmYXVsdEVuY29kaW5nKTsKQEAgLTIwOTUsNiArMjExNSw3IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MoV2ViS2l0V2ViVmlldyog
d2ViVmlldykKICAgICBzZXR0aW5ncy0+c2V0RGF0YWJhc2VzRW5hYmxlZChlbmFibGVIVE1MNURh
dGFiYXNlKTsKICAgICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRW5hYmxlZChlbmFibGVIVE1M
NUxvY2FsU3RvcmFnZSk7CiAgICAgc2V0dGluZ3MtPnNldFhTU0F1ZGl0b3JFbmFibGVkKGVuYWJs
ZVhTU0F1ZGl0b3IpOworICAgIHNldHRpbmdzLT5zZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NB
dXRvbWF0aWNhbGx5KGphdmFzY3JpcHRDYW5PcGVuV2luZG93cyk7CiAKICAgICBnX2ZyZWUoZGVm
YXVsdEVuY29kaW5nKTsKICAgICBnX2ZyZWUoY3Vyc2l2ZUZvbnRGYW1pbHkpOwpAQCAtMjE3Myw2
ICsyMTk0LDggQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldHRpbmdzX25vdGlmeShX
ZWJLaXRXZWJTZXR0aW5ncyogd2ViU2V0dGluZ3MsIEdQYXIKICAgICAgICAgc2V0dGluZ3MtPnNl
dExvY2FsU3RvcmFnZUVuYWJsZWQoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFsdWUpKTsKICAgICBl
bHNlIGlmIChuYW1lID09IGdfaW50ZXJuX3N0cmluZygiZW5hYmxlLXhzcy1hdWRpdG9yIikpCiAg
ICAgICAgIHNldHRpbmdzLT5zZXRYU1NBdWRpdG9yRW5hYmxlZChnX3ZhbHVlX2dldF9ib29sZWFu
KCZ2YWx1ZSkpOworICAgIGVsc2UgaWYgKG5hbWUgPT0gZ19pbnRlcm5fc3RyaW5nKCJqYXZhc2Ny
aXB0LWNhbi1vcGVuLXdpbmRvd3MiKSkKKyAgICAgICAgc2V0dGluZ3MtPnNldEphdmFTY3JpcHRD
YW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFsdWUpKTsK
ICAgICBlbHNlIGlmICghZ19vYmplY3RfY2xhc3NfZmluZF9wcm9wZXJ0eShHX09CSkVDVF9HRVRf
Q0xBU1Mod2ViU2V0dGluZ3MpLCBuYW1lKSkKICAgICAgICAgZ193YXJuaW5nKCJVbmV4cGVjdGVk
IHNldHRpbmcgJyVzJyIsIG5hbWUpOwogICAgIGdfdmFsdWVfdW5zZXQoJnZhbHVlKTsKQEAgLTMz
ODAsMyArMzQwMywxNSBAQCB2b2lkIHdlYmtpdF93ZWJfdmlld19tb3ZlX2N1cnNvcihXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCBHdGtNb3ZlbWVudFN0ZXAgc3RlcCwgZwogICAgIGdib29sZWFuIGhh
bmRsZWQ7CiAgICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFs
c1tNT1ZFX0NVUlNPUl0sIDAsIHN0ZXAsIGNvdW50LCAmaGFuZGxlZCk7CiB9CisKK3ZvaWQgd2Vi
a2l0X3dlYl92aWV3X3NldF9ncm91cF9uYW1lKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0
IGdjaGFyKiBncm91cE5hbWUpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VC
X1ZJRVcod2ViVmlldykpOworCisgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3ZWJW
aWV3LT5wcml2OworCisgICAgaWYgKCFwcml2LT5jb3JlUGFnZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcHJpdi0+Y29yZVBhZ2UtPnNldEdyb3VwTmFtZShTdHJpbmc6OmZyb21VVEY4KGdyb3Vw
TmFtZSkpOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDI1MTc4ZmMuLjA4MzgyZGYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBA
QAorMjAwOS0wNi0yNiAgSmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR3RrXSBB
ZGQgc3VwcG9ydCBmb3IgamF2YXNjcmlwdCB3aW5kb3dzIGZvciBEUlQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2NzE4CisKKyAgICAgICAgU3VwcG9y
dCBydW5uaW5nIG9mIHRlc3RzIHRoYXQgb3BlbiBhbmQgY2xvc2UgSlMgd2luZG93cyBhdXRvbWF0
aWNhbGx5LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNw
cDoKKyAgICAgICAgKGR1bXBGcmFtZXNBc1RleHQpOgorICAgICAgICAoZHVtcEJhY2tGb3J3YXJk
TGlzdEZvckFsbFdlYlZpZXdzKToKKyAgICAgICAgKHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0
YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgIChkdW1wKToKKyAgICAgICAgKHJ1blRlc3QpOgor
ICAgICAgICAod2ViVmlld0Nsb3NlKToKKyAgICAgICAgKGNyZWF0ZVdlYlZpZXcpOgorICAgICAg
ICAod2ViVmlld0NyZWF0ZSk6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9ndGsvRHVtcFJlbmRlclRyZWVHdGsuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9n
dGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6OndpbmRvd0NvdW50KToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRQ
b3B1cEJsb2NraW5nRW5hYmxlZCk6CisKIDIwMDktMDYtMjUgIEphbiBNaWNoYWVsIEFsb256byAg
PGptYWxvbnpvQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVl
LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAK
aW5kZXggYWJkZWNmNi4uZGE3ZTZlYiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCkBAIC01OSw2ICs1OSw3IEBAIGV4dGVybiBnY2hh
ciogd2Via2l0X3dlYl9mcmFtZV9kdW1wX3JlbmRlcl90cmVlKFdlYktpdFdlYkZyYW1lKiBmcmFt
ZSk7CiBleHRlcm4gdm9pZCB3ZWJraXRfd2ViX3NldHRpbmdzX2FkZF9leHRyYV9wbHVnaW5fZGly
ZWN0b3J5KFdlYktpdFdlYlZpZXcqIHZpZXcsIGNvbnN0IGdjaGFyKiBkaXJlY3RvcnkpOwogZXh0
ZXJuIGdjaGFyKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9yZXNwb25zZV9taW1lX3R5cGUoV2ViS2l0
V2ViRnJhbWUqIGZyYW1lKTsKIGV4dGVybiB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfY2xlYXJfbWFp
bl9mcmFtZV9uYW1lKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7CitleHRlcm4gdm9pZCB3ZWJraXRf
d2ViX3ZpZXdfc2V0X2dyb3VwX25hbWUoV2ViS2l0V2ViVmlldyogdmlldywgY29uc3QgZ2NoYXIq
IGdyb3VwTmFtZSk7CiB9CiAKIHZvbGF0aWxlIGJvb2wgZG9uZTsKQEAgLTc0LDYgKzc1LDkgQEAg
V2ViS2l0V2ViRnJhbWUqIHRvcExvYWRpbmdGcmFtZSA9IDA7CiBndWludCB3YWl0VG9EdW1wV2F0
Y2hkb2cgPSAwOwogYm9vbCB3YWl0Rm9yUG9saWN5ID0gZmFsc2U7CiAKKy8vIFRoaXMgaXMgYSBs
aXN0IG9mIG9wZW5lZCB3ZWJ2aWV3cworR1NMaXN0KiB3ZWJWaWV3TGlzdCA9IDA7CisKIC8vIGN1
cnJlbnQgYi9mIGl0ZW0gYXQgdGhlIGVuZCBvZiB0aGUgcHJldmlvdXMgdGVzdAogc3RhdGljIFdl
YktpdFdlYkhpc3RvcnlJdGVtKiBwcmV2VGVzdEJGSXRlbSA9IE5VTEw7CiAKQEAgLTEzMyw3ICsx
MzcsNyBAQCBzdGF0aWMgZ2NoYXIqIGR1bXBGcmFtZXNBc1RleHQoV2ViS2l0V2ViRnJhbWUqIGZy
YW1lKQogICAgIGlmIChnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBDaGlsZEZyYW1lc0FzVGV4
dCgpKSB7CiAgICAgICAgIEdTTGlzdCogY2hpbGRyZW4gPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF9j
aGlsZHJlbihmcmFtZSk7CiAgICAgICAgIGZvciAoR1NMaXN0KiBjaGlsZCA9IGNoaWxkcmVuOyBj
aGlsZDsgY2hpbGQgPSBnX3NsaXN0X25leHQoY2hpbGQpKQotICAgICAgICAgICBhcHBlbmRTdHJp
bmcocmVzdWx0LCBkdW1wRnJhbWVzQXNUZXh0KChXZWJLaXRXZWJGcmFtZSopY2hpbGRyZW4tPmRh
dGEpKTsKKyAgICAgICAgICAgIGFwcGVuZFN0cmluZyhyZXN1bHQsIGR1bXBGcmFtZXNBc1RleHQo
c3RhdGljX2Nhc3Q8V2ViS2l0V2ViRnJhbWUqID4oY2hpbGQtPmRhdGEpKSk7CiAgICAgICAgIGdf
c2xpc3RfZnJlZShjaGlsZHJlbik7CiAgICAgfQogCkBAIC0yMTUsNiArMjE5LDE3IEBAIHN0YXRp
YyB2b2lkIGR1bXBCYWNrRm9yd2FyZExpc3RGb3JXZWJWaWV3KFdlYktpdFdlYlZpZXcqIHZpZXcp
CiAgICAgcHJpbnRmKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PVxuIik7CiB9CiAKK3N0YXRpYyB2b2lkIGR1bXBCYWNrRm9yd2FyZExpc3RGb3JBbGxXZWJW
aWV3cygpCit7CisgICAgLy8gRHVtcCB0aGUgYmFjayBmb3J3YXJkIGxpc3Qgb2YgdGhlIG1haW4g
V2ViVmlldyBmaXJzdAorICAgIGR1bXBCYWNrRm9yd2FyZExpc3RGb3JXZWJWaWV3KHdlYlZpZXcp
OworCisgICAgLy8gUmV2ZXJzZSB0aGUgbGlzdCBzbyB3ZSBnZXQgdGhlIG9yZGVyIHJpZ2h0Cisg
ICAgR1NMaXN0KiB2aWV3TGlzdCA9IGdfc2xpc3RfcmV2ZXJzZSh3ZWJWaWV3TGlzdCk7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGdfc2xpc3RfbGVuZ3RoKHZpZXdMaXN0KTsgKytpKQor
ICAgICAgICBkdW1wQmFja0ZvcndhcmRMaXN0Rm9yV2ViVmlldyhXRUJLSVRfV0VCX1ZJRVcoZ19z
bGlzdF9udGhfZGF0YSh2aWV3TGlzdCwgaSkpKTsKK30KKwogc3RhdGljIHZvaWQgaW52YWxpZGF0
ZUFueVByZXZpb3VzV2FpdFRvRHVtcFdhdGNoZG9nKCkKIHsKICAgICBpZiAod2FpdFRvRHVtcFdh
dGNoZG9nKSB7CkBAIC0yMzUsNiArMjUwLDcgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJWaWV3VG9D
b25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkKICAgICAgICAgICAgICAgICAgImVuYWJsZS1o
dG1sNS1kYXRhYmFzZSIsIFRSVUUsCiAgICAgICAgICAgICAgICAgICJlbmFibGUtaHRtbDUtbG9j
YWwtc3RvcmFnZSIsIFRSVUUsCiAgICAgICAgICAgICAgICAgICJlbmFibGUteHNzLWF1ZGl0b3Ii
LCBUUlVFLAorICAgICAgICAgICAgICAgICAiamF2YXNjcmlwdC1jYW4tb3Blbi13aW5kb3dzIiwg
VFJVRSwKICAgICAgICAgICAgICAgICAgTlVMTCk7CiAKICAgICB3ZWJraXRfd2ViX2ZyYW1lX2Ns
ZWFyX21haW5fZnJhbWVfbmFtZShtYWluRnJhbWUpOwpAQCAtMjgzLDExICsyOTksOCBAQCB2b2lk
IGR1bXAoKQogICAgICAgICAgICAgaWYgKCFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBBc1Rl
eHQoKSAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRE9NQXNXZWJBcmNoaXZlKCkgJiYg
IWdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcFNvdXJjZUFzV2ViQXJjaGl2ZSgpKQogICAgICAg
ICAgICAgICAgIGR1bXBGcmFtZVNjcm9sbFBvc2l0aW9uKG1haW5GcmFtZSk7CiAKLSAgICAgICAg
ICAgIGlmIChnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBCYWNrRm9yd2FyZExpc3QoKSkgewot
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBtdWx0aXBsZSB3aW5kb3dzIHN1cHBvcnQKLSAgICAg
ICAgICAgICAgICBkdW1wQmFja0ZvcndhcmRMaXN0Rm9yV2ViVmlldyh3ZWJWaWV3KTsKLQotICAg
ICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEJh
Y2tGb3J3YXJkTGlzdCgpKQorICAgICAgICAgICAgICAgIGR1bXBCYWNrRm9yd2FyZExpc3RGb3JB
bGxXZWJWaWV3cygpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHByaW50U2VwYXJhdG9ycykg
ewpAQCAtMzkxLDYgKzQwNCwxNyBAQCBzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYg
dGVzdFBhdGhPclVSTCkKICAgICB3aGlsZSAoIWRvbmUpCiAgICAgICAgIGdfbWFpbl9jb250ZXh0
X2l0ZXJhdGlvbihOVUxMLCBUUlVFKTsKIAorCisgICAgLy8gQWxzbyBjaGVjayBpZiB3ZSBzdGls
bCBoYXZlIG9wZW5lZCB3ZWJWaWV3cyBhbmQgZnJlZSB0aGVtLgorICAgIGlmIChnTGF5b3V0VGVz
dENvbnRyb2xsZXItPmNsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSgpIHx8IHdlYlZp
ZXdMaXN0KSB7CisgICAgICAgIHdoaWxlICh3ZWJWaWV3TGlzdCkgeworICAgICAgICAgICAgZ19v
YmplY3RfdW5yZWYoV0VCS0lUX1dFQl9WSUVXKHdlYlZpZXdMaXN0LT5kYXRhKSk7CisgICAgICAg
ICAgICB3ZWJWaWV3TGlzdCA9IGdfc2xpc3RfbmV4dCh3ZWJWaWV3TGlzdCk7CisgICAgICAgIH0K
KyAgICAgICAgZ19zbGlzdF9mcmVlKHdlYlZpZXdMaXN0KTsKKyAgICAgICAgd2ViVmlld0xpc3Qg
PSAwOworICAgIH0KKwogICAgIC8vIEEgYmxhbmsgbG9hZCBzZWVtcyB0byBiZSBuZWNlc3Nhcnkg
dG8gcmVzZXQgc3RhdGUgYWZ0ZXIgY2VydGFpbiB0ZXN0cy4KICAgICB3ZWJraXRfd2ViX3ZpZXdf
b3Blbih3ZWJWaWV3LCAiYWJvdXQ6YmxhbmsiKTsKIApAQCAtNTI5LDYgKzU1Myw1NCBAQCBzdGF0
aWMgdm9pZCB3ZWJWaWV3U3RhdHVzQmFyVGV4dENoYW5nZWQoV2ViS2l0V2ViVmlldyogdmlldywg
Y29uc3QgZ2NoYXIqIG1lc3NhZwogICAgIH0KIH0KIAorc3RhdGljIHZvaWQgd2ViVmlld0Nsb3Nl
KFdlYktpdFdlYlZpZXcqIHZpZXcpCit7CisgICAgQVNTRVJUKHZpZXcpOworCisgICAgd2ViVmll
d0xpc3QgPSBnX3NsaXN0X3JlbW92ZSh3ZWJWaWV3TGlzdCwgdmlldyk7CisgICAgZ19vYmplY3Rf
dW5yZWYodmlldyk7Cit9CisKKworc3RhdGljIFdlYktpdFdlYlZpZXcqIHdlYlZpZXdDcmVhdGUo
V2ViS2l0V2ViVmlldyosIFdlYktpdFdlYkZyYW1lKik7CisKK3N0YXRpYyBXZWJLaXRXZWJWaWV3
KiBjcmVhdGVXZWJWaWV3KCkKK3sKKyAgICBXZWJLaXRXZWJWaWV3KiB2aWV3ID0gV0VCS0lUX1dF
Ql9WSUVXKHdlYmtpdF93ZWJfdmlld19uZXcoKSk7CisgICAgd2Via2l0X3dlYl92aWV3X3NldF9n
cm91cF9uYW1lKHZpZXcsICJvcmcud2Via2l0Lmd0ay5EdW1wUmVuZGVyVHJlZSIpOworCisgICAg
Z19vYmplY3RfY29ubmVjdChHX09CSkVDVCh2aWV3KSwKKyAgICAgICAgICAgICAgICAgICAgICJz
aWduYWw6OmxvYWQtc3RhcnRlZCIsIHdlYlZpZXdMb2FkU3RhcnRlZCwgMCwKKyAgICAgICAgICAg
ICAgICAgICAgICJzaWduYWw6OmxvYWQtZmluaXNoZWQiLCB3ZWJWaWV3TG9hZEZpbmlzaGVkLCAw
LAorICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6d2luZG93LW9iamVjdC1jbGVhcmVkIiwg
d2ViVmlld1dpbmRvd09iamVjdENsZWFyZWQsIDAsCisgICAgICAgICAgICAgICAgICAgICAic2ln
bmFsOjpjb25zb2xlLW1lc3NhZ2UiLCB3ZWJWaWV3Q29uc29sZU1lc3NhZ2UsIDAsCisgICAgICAg
ICAgICAgICAgICAgICAic2lnbmFsOjpzY3JpcHQtYWxlcnQiLCB3ZWJWaWV3U2NyaXB0QWxlcnQs
IDAsCisgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjpzY3JpcHQtcHJvbXB0Iiwgd2ViVmll
d1NjcmlwdFByb21wdCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OnNjcmlwdC1j
b25maXJtIiwgd2ViVmlld1NjcmlwdENvbmZpcm0sIDAsCisgICAgICAgICAgICAgICAgICAgICAi
c2lnbmFsOjp0aXRsZS1jaGFuZ2VkIiwgd2ViVmlld1RpdGxlQ2hhbmdlZCwgMCwKKyAgICAgICAg
ICAgICAgICAgICAgICJzaWduYWw6Om5hdmlnYXRpb24tcG9saWN5LWRlY2lzaW9uLXJlcXVlc3Rl
ZCIsIHdlYlZpZXdOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25SZXF1ZXN0ZWQsIDAsCisgICAgICAg
ICAgICAgICAgICAgICAic2lnbmFsOjpzdGF0dXMtYmFyLXRleHQtY2hhbmdlZCIsIHdlYlZpZXdT
dGF0dXNCYXJUZXh0Q2hhbmdlZCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OmNy
ZWF0ZS13ZWItdmlldyIsIHdlYlZpZXdDcmVhdGUsIDAsCisgICAgICAgICAgICAgICAgICAgICAi
c2lnbmFsOjpjbG9zZS13ZWItdmlldyIsIHdlYlZpZXdDbG9zZSwgMCwKKyAgICAgICAgICAgICAg
ICAgICAgIE5VTEwpOworCisgICAgcmV0dXJuIHZpZXc7Cit9CisKK3N0YXRpYyBXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3Q3JlYXRlKFdlYktpdFdlYlZpZXcqIHZpZXcsIFdlYktpdFdlYkZyYW1lKiBm
cmFtZSkKK3sKKyAgICBpZiAoIWdMYXlvdXRUZXN0Q29udHJvbGxlci0+Y2FuT3BlbldpbmRvd3Mo
KSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyBNYWtlIHN1cmUgdGhhdCB3YWl0VW50aWxE
b25lIGhhcyBiZWVuIGNhbGxlZC4KKyAgICBBU1NFUlQoZ0xheW91dFRlc3RDb250cm9sbGVyLT53
YWl0VG9EdW1wKCkpOworCisgICAgV2ViS2l0V2ViVmlldyogbmV3V2ViVmlldyA9IGNyZWF0ZVdl
YlZpZXcoKTsKKyAgICBnX29iamVjdF9yZWZfc2luayhHX09CSkVDVChuZXdXZWJWaWV3KSk7Cisg
ICAgd2ViVmlld0xpc3QgPSBnX3NsaXN0X3ByZXBlbmQod2ViVmlld0xpc3QsIG5ld1dlYlZpZXcp
OworICAgIHJldHVybiBuZXdXZWJWaWV3OworfQorCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciog
YXJndltdKQogewogICAgIGdfdGhyZWFkX2luaXQoTlVMTCk7CkBAIC01NTYsMjMgKzYyOCwxMiBA
QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIGd0a19jb250YWluZXJfYWRk
KEdUS19DT05UQUlORVIod2luZG93KSwgY29udGFpbmVyKTsKICAgICBndGtfd2lkZ2V0X3JlYWxp
emUod2luZG93KTsKIAotICAgIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2Via2l0X3dlYl92
aWV3X25ldygpKTsKKyAgICB3ZWJWaWV3ID0gY3JlYXRlV2ViVmlldygpOwogICAgIGd0a19jb250
YWluZXJfYWRkKEdUS19DT05UQUlORVIoY29udGFpbmVyKSwgR1RLX1dJREdFVCh3ZWJWaWV3KSk7
CiAgICAgZ3RrX3dpZGdldF9yZWFsaXplKEdUS19XSURHRVQod2ViVmlldykpOwogICAgIGd0a193
aWRnZXRfc2hvd19hbGwoY29udGFpbmVyKTsKICAgICBtYWluRnJhbWUgPSB3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X21haW5fZnJhbWUod2ViVmlldyk7CiAKLSAgICBnX3NpZ25hbF9jb25uZWN0KEdfT0JK
RUNUKHdlYlZpZXcpLCAibG9hZC1zdGFydGVkIiwgR19DQUxMQkFDSyh3ZWJWaWV3TG9hZFN0YXJ0
ZWQpLCAwKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKHdlYlZpZXcpLCAibG9hZC1m
aW5pc2hlZCIsIEdfQ0FMTEJBQ0sod2ViVmlld0xvYWRGaW5pc2hlZCksIDApOwotICAgIGdfc2ln
bmFsX2Nvbm5lY3QoR19PQkpFQ1Qod2ViVmlldyksICJ3aW5kb3ctb2JqZWN0LWNsZWFyZWQiLCBH
X0NBTExCQUNLKHdlYlZpZXdXaW5kb3dPYmplY3RDbGVhcmVkKSwgMCk7Ci0gICAgZ19zaWduYWxf
Y29ubmVjdChHX09CSkVDVCh3ZWJWaWV3KSwgImNvbnNvbGUtbWVzc2FnZSIsIEdfQ0FMTEJBQ0so
d2ViVmlld0NvbnNvbGVNZXNzYWdlKSwgMCk7Ci0gICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVD
VCh3ZWJWaWV3KSwgInNjcmlwdC1hbGVydCIsIEdfQ0FMTEJBQ0sod2ViVmlld1NjcmlwdEFsZXJ0
KSwgMCk7Ci0gICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVCh3ZWJWaWV3KSwgInNjcmlwdC1w
cm9tcHQiLCBHX0NBTExCQUNLKHdlYlZpZXdTY3JpcHRQcm9tcHQpLCAwKTsKLSAgICBnX3NpZ25h
bF9jb25uZWN0KEdfT0JKRUNUKHdlYlZpZXcpLCAic2NyaXB0LWNvbmZpcm0iLCBHX0NBTExCQUNL
KHdlYlZpZXdTY3JpcHRDb25maXJtKSwgMCk7Ci0gICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVD
VCh3ZWJWaWV3KSwgInRpdGxlLWNoYW5nZWQiLCBHX0NBTExCQUNLKHdlYlZpZXdUaXRsZUNoYW5n
ZWQpLCAwKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKHdlYlZpZXcpLCAibmF2aWdh
dGlvbi1wb2xpY3ktZGVjaXNpb24tcmVxdWVzdGVkIiwgR19DQUxMQkFDSyh3ZWJWaWV3TmF2aWdh
dGlvblBvbGljeURlY2lzaW9uUmVxdWVzdGVkKSwgMCk7Ci0gICAgZ19zaWduYWxfY29ubmVjdChH
X09CSkVDVCh3ZWJWaWV3KSwgInN0YXR1cy1iYXItdGV4dC1jaGFuZ2VkIiwgR19DQUxMQkFDSyh3
ZWJWaWV3U3RhdHVzQmFyVGV4dENoYW5nZWQpLCAwKTsKLQogICAgIHNldERlZmF1bHRzVG9Db25z
aXN0ZW50U3RhdGVWYWx1ZXNGb3JUZXN0aW5nKCk7CiAKICAgICBpZiAoYXJnYyA9PSBvcHRpbmQr
MSAmJiBzdHJjbXAoYXJndltvcHRpbmRdLCAiLSIpID09IDApIHsKQEAgLTU5NCw1ICs2NTUsNyBA
QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAgICAgICAgcnVuVGVzdChh
cmd2W2ldKTsKICAgICB9CiAKKyAgICBnX29iamVjdF91bnJlZih3ZWJWaWV3KTsKKwogICAgIHJl
dHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1
bXBSZW5kZXJUcmVlR3RrLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJl
bmRlclRyZWVHdGsuaAppbmRleCAyY2UwMTRmLi43YTVhNGNmIDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWVHdGsuaAorKysgYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWVHdGsuaApAQCAtMzIsMTAgKzMy
LDEzIEBACiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0Jhc2UuaD4KIAorI2luY2x1ZGUgPGdsaWIuaD4KKwogZXh0ZXJuIFdlYktp
dFdlYkZyYW1lKiBtYWluRnJhbWU7CiBleHRlcm4gV2ViS2l0V2ViRnJhbWUqIHRvcExvYWRpbmdG
cmFtZTsKIGV4dGVybiBndWludCB3YWl0VG9EdW1wV2F0Y2hkb2c7CiBleHRlcm4gYm9vbCB3YWl0
Rm9yUG9saWN5OworZXh0ZXJuIEdTTGlzdCogd2ViVmlld0xpc3Q7CiAKIGdjaGFyKiBKU1N0cmlu
Z0NvcHlVVEY4Q1N0cmluZyhKU1N0cmluZ1JlZiBqc1N0cmluZyk7CiAKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsu
Y3BwCmluZGV4IDQwOTkyYzYuLjZhOGY3MTEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtMiw2
ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9y
Zz4KICAqIENvcHlyaWdodCAoQykgMjAwOCBOdWFudGkgTHRkLgorICogQ29weXJpZ2h0IChDKSAy
MDA5IEphbiBNaWNoYWVsIEFsb256byA8am1hbG9uem9AZ21haWwuY29tPgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yMzAsOCArMjMxLDggQEAgdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0V2FpdFRvRHVtcChib29sIHdhaXRVbnRpbERvbmUpCiAKIGludCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6d2luZG93Q291bnQoKQogewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
LSAgICByZXR1cm4gMTsKKyAgICAvLyArMSAtPiBpbmNsdWRpbmcgdGhlIG1haW4gdmlldworICAg
IHJldHVybiBnX3NsaXN0X2xlbmd0aCh3ZWJWaWV3TGlzdCkgKyAxOwogfQogCiB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wgZmxhZykKQEAg
LTI3OSw5ICsyODAsMTQgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCiAgICAgLy8gRklYTUU6IGltcGxlbWVu
dAogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRQb3B1cEJsb2NraW5nRW5hYmxl
ZChib29sIHBvcHVwQmxvY2tpbmdFbmFibGVkKQordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoYm9vbCBmbGFnKQogewotICAgIC8vIEZJWE1FOiBpbXBs
ZW1lbnQKKyAgICBXZWJLaXRXZWJWaWV3KiB2aWV3ID0gd2Via2l0X3dlYl9mcmFtZV9nZXRfd2Vi
X3ZpZXcobWFpbkZyYW1lKTsKKyAgICBBU1NFUlQodmlldyk7CisKKyAgICBXZWJLaXRXZWJTZXR0
aW5ncyogc2V0dGluZ3MgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NldHRpbmdzKHZpZXcpOworICAg
IGdfb2JqZWN0X3NldChHX09CSkVDVChzZXR0aW5ncyksICJqYXZhc2NyaXB0LWNhbi1vcGVuLXdp
bmRvd3MiLCBmbGFnLCBOVUxMKTsKKwogfQogCiBib29sIExheW91dFRlc3RDb250cm9sbGVyOjpl
bGVtZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRoSWQoSlNTdHJpbmdSZWYgaWQpIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32101</attachid>
            <date>2009-06-30 17:50:02 -0700</date>
            <delta_ts>2009-06-30 18:01:11 -0700</delta_ts>
            <desc>patch addressing issues raised by Gustavo</desc>
            <filename>bugzilla_requires_a_filename.patch</filename>
            <type>text/plain</type>
            <size>32324</size>
            <attacher name="Jan Alonzo">jmalonzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzNTlmZGY5Li5mOGI2YmNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDYt
MzAgIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gQWRkIHN1cHBvcnQg
Zm9yIGphdmFzY3JpcHQgd2luZG93cyBmb3IgRFJUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjcxOAorCisgICAgICAgIFVuc2tpcCB0ZXN0cyB0aGF0
IG5vdyBwYXNzIGR1ZSB0byBzdXBwb3J0IGZvciBKUyB3aW5kb3dzIGluIEd0ayBEUlQuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKwogMjAwOS0wNi0zMCAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTm8gcmV2aWV3LCByZXZlcnRpbmcgcjQ1Mzk2
LiAgKEdlb3JnZSBTdGFpa29zIGFncmVlcyB0aGUgY2hhbmdlIHdhcyB3cm9uZy4pCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9Ta2lwcGVkCmluZGV4IDM4MmU2YmYuLjQyMDc4ZjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkCkBAIC0xNjI0LDI1ICsxNjI0LDE1IEBAIGZhc3QvZG9tL251bGwtZG9jdW1lbnQt
bG9jYXRpb24tcmVwbGFjZS1jcmFzaC5odG1sCiBmYXN0L2RvbS9udWxsLWRvY3VtZW50LXdpbmRv
dy1vcGVuLWNyYXNoLmh0bWwKIGZhc3QvZG9tL29iamVjdC1lbWJlZC1wbHVnaW4tc2NyaXB0aW5n
Lmh0bWwKIGZhc3QvZG9tL29iamVjdC1wbHVnaW4taGlkZXMtcHJvcGVydGllcy5odG1sCi1mYXN0
L2RvbS9vcGVuLWFuZC1jbG9zZS1ieS1ET00uaHRtbAogZmFzdC9kb20vdGFiaW5kZXgtY2xhbXAu
aHRtbAotZmFzdC9kb20vRG9jdW1lbnQvZWFybHktZG9jdW1lbnQtYWNjZXNzLmh0bWwKIGZhc3Qv
ZG9tL0hUTUxEb2N1bWVudC9oYXNGb2N1cy5odG1sCiBmYXN0L2RvbS9TZWxlY3RvckFQSS9yZXNp
Zy1TZWxlY3RvcnNBUEktdGVzdC54aHRtbAogZmFzdC9kb20vU3R5bGVTaGVldC9vd25lck5vZGUt
bGlmZXRpbWUtMi5odG1sCi1mYXN0L2RvbS9XaW5kb3cvY2xvc3VyZS1hY2Nlc3MtYWZ0ZXItbmF2
aWdhdGlvbi13aW5kb3cuaHRtbAotZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9z
dXJlLXdpbmRvdy5odG1sCiBmYXN0L2RvbS9XaW5kb3cvbmV3LXdpbmRvdy1vcGVuZXIuaHRtbAot
ZmFzdC9kb20vV2luZG93L3NldHRpbmctcHJvcGVydGllcy1vbi1jbG9zZWQtd2luZG93Lmh0bWwK
IGZhc3QvZG9tL1dpbmRvdy93ZWJraXRDb252ZXJ0UG9pbnQuaHRtbAotZmFzdC9kb20vV2luZG93
L3dpbmRvdy1lYXJseS1wcm9wZXJ0aWVzLmh0bWwKLWZhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9v
a3VwLXByZWNlZGVuY2UuaHRtbAogZmFzdC9kb20vV2luZG93L3dpbmRvdy1vbkZvY3VzLmh0bWwK
LWZhc3QvZG9tL1dpbmRvdy93aW5kb3ctb3Blbi1wZW5kaW5nLXVybC5odG1sCi1mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnRpZXMuaHRtbAogZmFzdC9kb20vV2luZG93L3dpbmRvdy1yZXNp
emUtYW5kLW1vdmUtYXJndW1lbnRzLmh0bWwKIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcmVzaXpl
Lmh0bWwKLWZhc3QvZG9tL1dpbmRvdy93aW5kb3ctc2NyZWVuLXByb3BlcnRpZXMuaHRtbAogZmFz
dC9kb20vV2luZG93L3dpbmRvdy14eS1wcm9wZXJ0aWVzLmh0bWwKIGZhc3QvZHluYW1pYy9ob3Zl
cmVkLWRldGFjaC5odG1sCiBmYXN0L2R5bmFtaWMvcGF1c2VkLWV2ZW50LWRpc3BhdGNoLmh0bWwK
QEAgLTE4MDgsNyArMTc5OCw2IEBAIGZhc3QvanMvZGF0ZS1iaWctc2V0ZGF0ZS5odG1sCiBmYXN0
L2pzL2V4Y2VwdGlvbnMtdGhyb3duLWluLWNhbGxiYWNrcy5odG1sCiBmYXN0L2pzL25hdmlnYXRv
ci1taW1lVHlwZXMtbGVuZ3RoLmh0bWwKIGZhc3QvbGF5ZXJzL3Jlc2l6ZS1sYXllci1kZWxldGlv
bi1jcmFzaC5odG1sCi1mYXN0L2xvYWRlci9jYW5jZWwtbG9hZC1kdXJpbmctcG9ydC1ibG9jay10
aW1lci5odG1sCiBmYXN0L2xvYWRlci9tYWluLWRvY3VtZW50LXVybC1mb3Itbm9uLWh0dHAtbG9h
ZHMuaHRtbAogZmFzdC9sb2FkZXIvb251bmxvYWQtZm9ybS1zdWJtaXQtY3Jhc2gtMi5odG1sCiBm
YXN0L2xvYWRlci9vbnVubG9hZC1mb3JtLXN1Ym1pdC1jcmFzaC5odG1sCkBAIC0zODExLDI5ICsz
ODAwLDIwIEBAIGh0dHAvdGVzdHMvbWlzYy9zdWJtaXQtZ2V0LWluLXV0ZjcuaHRtbAogaHR0cC90
ZXN0cy9taXNjL3RleHQtcmVmcmVzaC5odG1sCiBodHRwL3Rlc3RzL21pc2MvdGltZXItdnMtbG9h
ZGluZy5odG1sCiBodHRwL3Rlc3RzL21pc2Mvd2luZG93LWRvdC1zdG9wLmh0bWwKLWh0dHAvdGVz
dHMvbWlzYy93aW5kb3ctb3Blbi10aGVuLXdyaXRlLmh0bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlv
bi9iYWNrLXRvLXNsb3ctZnJhbWUuaHRtbAogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2RvY3VtZW50
LWxvY2F0aW9uLWNsaWNrLXRpbWVvdXQuaHRtbAogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2RvY3Vt
ZW50LWxvY2F0aW9uLWNsaWNrLmh0bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9kb2N1bWVudC1s
b2NhdGlvbi1tb3VzZW92ZXIuaHRtbAotaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL25ldy13aW5kb3ct
cmVkaXJlY3QtaGlzdG9yeS5odG1sCiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVsb2FkLXN1YmZy
YW1lLWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWxvYWQtc3ViZnJhbWUtaWZy
YW1lLmh0bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWxvYWQtc3ViZnJhbWUtb2JqZWN0Lmh0
bWwKLWh0dHAvdGVzdHMvbmF2aWdhdGlvbi90YXJnZXQtZnJhbWUtZnJvbS13aW5kb3cuaHRtbAog
aHR0cC90ZXN0cy9wbHVnaW5zL25wYXBpLXJlc3BvbnNlLWhlYWRlcnMuaHRtbAogaHR0cC90ZXN0
cy9wbHVnaW5zL3Bvc3QtdXJsLWZpbGUuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9jcmVkZW50
aWFscy1pbi1yZWZlcmVyLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNj
ZXNzLWNhbGxiYWNrLWV4cGxpY2l0LWRvbWFpbi1ERU5ZLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWRlbGV0ZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLWZyYW1lLWFjY2Vzcy1oaXN0b3J5LXB1dC5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLWZyYW1lLWFjY2Vzcy1sb2NhdGlvbi1wdXQuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1mcmFtZS1hY2Nlc3MtcHJpdmF0ZS1icm93c2luZy5odG1sCiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9kYXRh
VHJhbnNmZXItc2V0LWRhdGEtZmlsZS11cmwuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9mZWVk
LXVybHMtZnJvbS1yZW1vdGUuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9mcmFtZS1sb2FkaW5n
LXZpYS1kb2N1bWVudC13cml0ZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2hvc3QtY29tcGFy
ZS1jYXNlLWluc2Vuc2l0aXZlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtQ1NTLWZy
b20tcmVtb3RlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtSmF2YVNjcmlwdC1mcm9t
LXJlbW90ZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWlGcmFtZS1mcm9tLXJlbW90
ZS5odG1sCkBAIC0zODQxLDkgKzM4MjEsNiBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWlt
YWdlLWZyb20tcmVtb3RlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tcG9z
dGVyLWZyb20tcmVtb3RlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tc291
cmNlLWZyb20tcmVtb3RlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tc3Jj
LWZyb20tcmVtb3RlLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LXByb3BlcnRpZXMt
Y2xlYXItZG9tYWluLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LXByb3BlcnRpZXMt
Y2xlYXItcG9ydC5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1wcm9wZXJ0aWVzLXBh
c3MuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0aW9u
cy1kZW55LW1ldGEtdGFnLWluLWJvZHkuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9YRnJhbWVP
cHRpb25zL3gtZnJhbWUtb3B0aW9ucy1kZW55LW1ldGEtdGFnLXBhcmVudC1zYW1lLW9yaWdpbi1h
bGxvdy5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMveC1mcmFtZS1vcHRp
b25zLWRlbnktbWV0YS10YWctcGFyZW50LXNhbWUtb3JpZ2luLWRlbnkuaHRtbApAQCAtMzg1MSw0
OCArMzgyOCw4IEBAIGh0dHAvdGVzdHMvc2VjdXJpdHkvWEZyYW1lT3B0aW9ucy94LWZyYW1lLW9w
dGlvbnMtZGVueS1tZXRhLXRhZy5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L1hGcmFtZU9wdGlv
bnMveC1mcmFtZS1vcHRpb25zLWRlbnkuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9YRnJhbWVP
cHRpb25zL3gtZnJhbWUtb3B0aW9ucy1wYXJlbnQtc2FtZS1vcmlnaW4tYWxsb3cuaHRtbAogaHR0
cC90ZXN0cy9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0aW9ucy1wYXJlbnQtc2Ft
ZS1vcmlnaW4tZGVueS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0Qmxhbmsvc2VjdXJp
dHktY29udGV4dC1ncmFuZGNoaWxkcmVuLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXRC
bGFuay9zZWN1cml0eS1jb250ZXh0LXdpbmRvdy1vcGVuLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJp
dHkvYWJvdXRCbGFuay93aW5kb3ctb3Blbi1zZWxmLWFib3V0LWJsYW5rLmh0bWwKLWh0dHAvdGVz
dHMvc2VjdXJpdHkvYWJvdXRCbGFuay94c3MtREVOSUVELW5hdmlnYXRlLW9wZW5lci1kb2N1bWVu
dC13cml0ZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0QmxhbmsveHNzLURFTklFRC1u
YXZpZ2F0ZS1vcGVuZXItamF2YXNjcmlwdC11cmwuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9h
Ym91dEJsYW5rL3hzcy1ERU5JRUQtc2V0LW9wZW5lci5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nvb2tpZXMvZG9jdW1lbnQtb3Blbi5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGFVUkwv
eHNzLURFTklFRC1mcm9tLWRhdGEtdXJsLWluLWZvcmVpZ24tZG9tYWluLXdpbmRvdy1vcGVuLmh0
bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YVVSTC94c3MtREVOSUVELWZyb20tZGF0YS11cmwt
c3ViLWZyYW1lLTItbGV2ZWwuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9kYXRhVVJML3hzcy1E
RU5JRUQtZnJvbS1kYXRhLXVybC1zdWItZnJhbWUtdG8tZGF0YS11cmwtc3ViLWZyYW1lLmh0bWwK
LWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YVVSTC94c3MtREVOSUVELWZyb20tamF2YXNjcmlwdC11
cmwtd2luZG93LW9wZW4uaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9kYXRhVVJML3hzcy1ERU5J
RUQtdG8tZGF0YS11cmwtaW4tZm9yZWlnbi1kb21haW4tc3ViZnJhbWUtbG9jYXRpb24tY2hhbmdl
Lmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YVVSTC94c3MtREVOSUVELXRvLWRhdGEtdXJs
LWluLWZvcmVpZ24tZG9tYWluLXN1YmZyYW1lLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0
YVVSTC94c3MtREVOSUVELXRvLWRhdGEtdXJsLWluLWZvcmVpZ24tZG9tYWluLXdpbmRvdy1vcGVu
Lmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YVVSTC94c3MtREVOSUVELXRvLWRhdGEtdXJs
LXN1Yi1mcmFtZS0yLWxldmVsLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YVVSTC94c3Mt
REVOSUVELXRvLWRhdGEtdXJsLXdpbmRvdy1vcGVuLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkv
ZnJhbWVOYXZpZ2F0aW9uL25vdC1vcGVuZXIuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9mcmFt
ZU5hdmlnYXRpb24vb3BlbmVyLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZnJhbWVOYXZpZ2F0
aW9uL3hzcy1BTExPV0VELXRhcmdldGVkLXN1YmZyYW1lLW5hdmlnYXRpb24tY2hhbmdlLmh0bWwK
LWh0dHAvdGVzdHMvc2VjdXJpdHkvZnJhbWVOYXZpZ2F0aW9uL3hzcy1ERU5JRUQtcGx1Z2luLW5h
dmlnYXRpb24uaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9mcmFtZU5hdmlnYXRpb24veHNzLURF
TklFRC10YXJnZXRlZC1saW5rLW5hdmlnYXRpb24uaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9q
YXZhc2NyaXB0VVJML2phdmFzY3JpcHRVUkwtZXhlY3V0aW9uLWNvbnRleHQtZnJhbWUtbG9jYXRp
b24taHRtbGRvbS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHRVUkwvamF2YXNj
cmlwdFVSTC1leGVjdXRpb24tY29udGV4dC1mcmFtZS1zcmMtZ2V0QXR0cmlidXRlLXZhbHVlLmh0
bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC9qYXZhc2NyaXB0VVJMLWV4ZWN1
dGlvbi1jb250ZXh0LWZyYW1lLXNyYy1odG1sZG9tLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkv
amF2YXNjcmlwdFVSTC9qYXZhc2NyaXB0VVJMLWV4ZWN1dGlvbi1jb250ZXh0LWZyYW1lLXNyYy1z
ZXRBdHRyaWJ1dGUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML2phdmFz
Y3JpcHRVUkwtZXhlY3V0aW9uLWNvbnRleHQtZnJhbWUtc3JjLXNldEF0dHJpYnV0ZU5TLmh0bWwK
LWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC9qYXZhc2NyaXB0VVJMLWV4ZWN1dGlv
bi1jb250ZXh0LWZyYW1lLXNyYy1zZXRBdHRyaWJ1dGVOb2RlLmh0bWwKLWh0dHAvdGVzdHMvc2Vj
dXJpdHkvamF2YXNjcmlwdFVSTC9qYXZhc2NyaXB0VVJMLWV4ZWN1dGlvbi1jb250ZXh0LWZyYW1l
LXNyYy1zZXRBdHRyaWJ1dGVOb2RlTlMuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2Ny
aXB0VVJML3hzcy1BTExPV0VELWZyb20tamF2YXNjcmlwdC11cmwtc3ViLWZyYW1lLTItbGV2ZWwu
aHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML3hzcy1BTExPV0VELWZyb20t
amF2YXNjcmlwdC11cmwtc3ViLWZyYW1lLXRvLWphdmFzY3JpcHQtdXJsLXN1Yi1mcmFtZS5odG1s
Ci1odHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHRVUkwveHNzLUFMTE9XRUQtZnJvbS1qYXZh
c2NyaXB0LXVybC10by1qYXZzY3JpcHQtdXJsLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2
YXNjcmlwdFVSTC94c3MtQUxMT1dFRC1mcm9tLWphdmFzY3JpcHQtdXJsLXdpbmRvdy1vcGVuLmh0
bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC94c3MtQUxMT1dFRC10by1qYXZh
c2NyaXB0LXVybC1mcm9tLWphdnNjcmlwdC11cmwuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9q
YXZhc2NyaXB0VVJML3hzcy1BTExPV0VELXRvLWphdmFzY3JpcHQtdXJsLXN1Yi1mcmFtZS0yLWxl
dmVsLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC94c3MtQUxMT1dFRC10
by1qYXZhc2NyaXB0LXVybC13aW5kb3ctb3Blbi5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2ph
dmFzY3JpcHRVUkwveHNzLURFTklFRC1mcm9tLWphdmFzY3JpcHQtdXJsLWluLWZvcmVpZ24tZG9t
YWluLXN1YmZyYW1lLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC94c3Mt
REVOSUVELWZyb20tamF2YXNjcmlwdC11cmwtaW4tZm9yZWlnbi1kb21haW4td2luZG93LW9wZW4u
aHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML3hzcy1ERU5JRUQtdG8tamF2
YXNjcmlwdC11cmwtaW4tZm9yZWlnbi1kb21haW4tc3ViZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9z
ZWN1cml0eS9qYXZhc2NyaXB0VVJML3hzcy1ERU5JRUQtdG8tamF2YXNjcmlwdC11cmwtaW4tZm9y
ZWlnbi1kb21haW4td2luZG93LW9wZW4uaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9saXN0ZW5l
ci94c3Mtd2luZG93LW9uY2xpY2stYWRkRXZlbnRMaXN0ZW5lci5odG1sCiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2xpc3RlbmVyL3hzcy13aW5kb3ctb25jbGljay1zaG9ydGN1dC5odG1sCi1odHRwL3Rl
c3RzL3NlY3VyaXR5L29yaWdpbkhlYWRlci9vcmlnaW4taGVhZGVyLWZvci1lbXB0eS5odG1sCiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvbGluay1vcGVucy1uZXctd2luZG93Lmh0bWwK
IGh0dHAvdGVzdHMvd29ya2Vycy90ZXh0LWVuY29kaW5nLmh0bWwKIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvYWJvcnQtc2hvdWxkLWNhbmNlbC1sb2FkLmh0bWwKQEAgLTM5MDAsNyArMzgzNyw2
IEBAIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtbm9uLXNp
bXBsZS1hbGxvdy5odG1sCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9s
LWJhc2ljLW5vbi1zaW1wbGUtZGVueS1jYWNoZWQuaHRtbAogaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9hY2Nlc3MtY29udHJvbC1iYXNpYy13aGl0ZWxpc3QtcmVxdWVzdC1oZWFkZXJzLmh0bWwK
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYmFzaWMtYXV0aC5odG1sCi1odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L2Nsb3NlLXdpbmRvdy5odG1sCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L2Nvb2tpZXMuaHRtbAogI1dlIGRvbid0IHNlZW0gdG8gc3VwcG9ydCBuZWl0aGVyIG9mIHRoZXNl
IGZvciBub3cKIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLWF1dGhvcml6
YXRpb24uaHRtbApAQCAtMzkxNSw3ICszODUxLDYgQEAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9nZXQtZGFuZ2Vyb3VzLWhlYWRlcnMuaHRtbAogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9t
ZXRob2RzLWFzeW5jLmh0bWwKIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0aG9kcy1sb3dl
ci1jYXNlLmh0bWwKIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0aG9kcy5odG1sCi1odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlcXVlc3QtZnJvbS1wb3B1cC5odG1sCiBodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3Jlc3BvbnNlLWVuY29kaW5nLmh0bWwKIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3Qvc3RhdGUtYWZ0ZXItbmV0d29yay1lcnJvci5odG1sCiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3N0YXR1cy1hZnRlci1hYm9ydC5odG1sCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGZkNDNlZDYuLmNmMjA0N2Ig
MTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMDktMDYtMzAgIEphbiBNaWNoYWVsIEFsb256byAgPGpt
YWxvbnpvQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW0d0a10gQWRkIHN1cHBvcnQgZm9yIGphdmFzY3JpcHQgd2luZG93cyBmb3Ig
RFJUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjcx
OAorCisgICAgICAgIEFkZCBBUEkgdG8gc3VwcG9ydCBvcGVuaW5nIGFuZCBjbG9zaW5nIG9mIEph
dmFTY3JpcHQgd2luZG93cyBhdXRvbWF0aWNhbGx5LgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpj
bG9zZVdpbmRvd1Nvb24pOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6CisgICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJf
c2V0dGluZ3NfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9w
cm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9wcm9wZXJ0eSk6Cisg
ICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NvcHkpOgorICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19yZWFsX2Nsb3NlX3dlYl92
aWV3KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAgICAgICAgKHdl
YmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3
X3NldHRpbmdzX25vdGlmeSk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X2dyb3VwX25h
bWUpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3Lmg6CisKIDIwMDktMDYtMjkgIFhh
biBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbiBB
bG9uem8uCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAK
aW5kZXggNTAyM2Q1Yy4uNTM2MjYyMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmNwcApAQCAtMjE1LDcgKzIxNSwxOCBAQCB2b2lkIENocm9tZUNsaWVu
dDo6c2V0UmVzaXphYmxlKGJvb2wpCiAKIHZvaWQgQ2hyb21lQ2xpZW50OjpjbG9zZVdpbmRvd1Nv
b24oKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgd2Via2l0X3dlYl92aWV3X3N0b3Bf
bG9hZGluZyhtX3dlYlZpZXcpOworCisgICAgZ2Jvb2xlYW4gaXNIYW5kbGVkID0gZmFsc2U7Cisg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgImNsb3NlLXdlYi12aWV3IiwgJmlz
SGFuZGxlZCk7CisKKyAgICBpZiAoaXNIYW5kbGVkKQorICAgICAgICByZXR1cm47CisKKyAgICAv
LyBGSVhNRTogc2hvdWxkIHdlIGNsZWFyIHRoZSBmcmFtZSBncm91cCBuYW1lIGhlcmUgZXhwbGlj
aXRseT8gTWFjIGRvZXMgaXQuCisgICAgLy8gQnV0IHRoaXMgZ2V0cyBjbGVhcmVkIGluIFBhZ2Un
cyBkZXN0cnVjdG9yIGFueXdheS4KKyAgICAvLyB3ZWJraXRfd2ViX3ZpZXdfc2V0X2dyb3VwX25h
bWUobV93ZWJWaWV3LCAiIik7CisgICAgZ19vYmplY3RfdW5yZWYobV93ZWJWaWV3KTsKIH0KIAog
Ym9vbCBDaHJvbWVDbGllbnQ6OmNhblRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbikKZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaCBiL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHByaXZhdGUuaAppbmRleCAxM2ZjZDE2Li5jNTllMTBiIDEwMDY0NAotLS0gYS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0cHJpdmF0ZS5oCkBAIC0yMjQsNiArMjI0LDkgQEAgZXh0ZXJuICJDIiB7CiAgICAgd2Via2l0
X3dlYl92aWV3X2dldF9zZWxlY3RlZF90ZXh0IChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7CiAK
ICAgICBXRUJLSVRfQVBJIHZvaWQKKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X2dyb3VwX25hbWUo
V2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIGNvbnN0IGdjaGFyKiBncm91cF9uYW1lKTsKKworICAg
IFdFQktJVF9BUEkgdm9pZAogICAgIHdlYmtpdF93ZWJfc2V0dGluZ3NfYWRkX2V4dHJhX3BsdWdp
bl9kaXJlY3RvcnkgKFdlYktpdFdlYlZpZXcgKndlYl92aWV3LCBjb25zdCBnY2hhciogZGlyZWN0
b3J5KTsKIAogICAgIEdTTGlzdCoKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnNldHRpbmdzLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNw
cAppbmRleCAyZjE4ODZjLi4xOTJlZjk3IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJzZXR0aW5ncy5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0
dGluZ3MuY3BwCkBAIC0zLDYgKzMsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA4IE51YW50aSBM
dGQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KICAqIENvcHlyaWdodCAo
QykgMjAwOCBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA5
IEphbiBNaWNoYWVsIEFsb256bwogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC04MSw2ICs4Miw3IEBA
IHN0cnVjdCBfV2ViS2l0V2ViU2V0dGluZ3NQcml2YXRlIHsKICAgICBnYm9vbGVhbiBlbmFibGVf
aHRtbDVfZGF0YWJhc2U7CiAgICAgZ2Jvb2xlYW4gZW5hYmxlX2h0bWw1X2xvY2FsX3N0b3JhZ2U7
CiAgICAgZ2Jvb2xlYW4gZW5hYmxlX3hzc19hdWRpdG9yOworICAgIGdib29sZWFuIGphdmFzY3Jp
cHRfY2FuX29wZW5fd2luZG93czsKIH07CiAKICNkZWZpbmUgV0VCS0lUX1dFQl9TRVRUSU5HU19H
RVRfUFJJVkFURShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJ
VF9UWVBFX1dFQl9TRVRUSU5HUywgV2ViS2l0V2ViU2V0dGluZ3NQcml2YXRlKSkKQEAgLTExNSw3
ICsxMTcsOCBAQCBlbnVtIHsKICAgICBQUk9QX0VOQUJMRV9DQVJFVF9CUk9XU0lORywKICAgICBQ
Uk9QX0VOQUJMRV9IVE1MNV9EQVRBQkFTRSwKICAgICBQUk9QX0VOQUJMRV9IVE1MNV9MT0NBTF9T
VE9SQUdFLAotICAgIFBST1BfRU5BQkxFX1hTU19BVURJVE9SCisgICAgUFJPUF9FTkFCTEVfWFNT
X0FVRElUT1IsCisgICAgUFJPUF9KQVZBU0NSSVBUX0NBTl9PUEVOX1dJTkRPV1MKIH07CiAKIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfc2V0dGluZ3NfZmluYWxpemUoR09iamVjdCogb2JqZWN0KTsK
QEAgLTQ3NCw2ICs0NzcsMjIgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19jbGFz
c19pbml0KFdlYktpdFdlYlNldHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwog
CisgICAgLyoqCisgICAgKiBXZWJLaXRXZWJTZXR0aW5nczpqYXZhc2NyaXB0LWNhbi1vcGVuLXdp
bmRvd3MKKyAgICAqCisgICAgKiBXaGV0aGVyIEphdmFTY3JpcHQgY2FuIG9wZW4gcG9wdXAgd2lu
ZG93cyBhdXRvbWF0aWNhbGx5IHdpdGhvdXQgdXNlcgorICAgICogaW50ZXJ2ZW50aW9uLgorICAg
ICoKKyAgICAqIFNpbmNlIDEuMS4xMQorICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUFJPUF9KQVZBU0NSSVBUX0NBTl9PUEVOX1dJTkRPV1MsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiamF2YXNjcmlwdC1jYW4t
b3Blbi13aW5kb3dzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF8oIkphdmFTY3JpcHQgY2FuIG9wZW4gd2luZG93cyBhdXRvbWF0aWNh
bGx5IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBfKCJXaGV0aGVyIEphdmFTY3JpcHQgY2FuIG9wZW4gd2luZG93cyBhdXRvbWF0aWNh
bGx5IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZsYWdzKSk7CisKICAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUo
a2xhc3MsIHNpemVvZihXZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGUpKTsKIH0KIApAQCAtNjM5LDYg
KzY1OCw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KEdP
YmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgY29uCiAgICAgY2FzZSBQUk9QX0VOQUJMRV9Y
U1NfQVVESVRPUjoKICAgICAgICAgcHJpdi0+ZW5hYmxlX3hzc19hdWRpdG9yID0gZ192YWx1ZV9n
ZXRfYm9vbGVhbih2YWx1ZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9KQVZBU0NS
SVBUX0NBTl9PUEVOX1dJTkRPV1M6CisgICAgICAgIHByaXYtPmphdmFzY3JpcHRfY2FuX29wZW5f
d2luZG93cyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOworICAgICAgICBicmVhazsKICAg
ICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2Jq
ZWN0LCBwcm9wX2lkLCBwc3BlYyk7CiAgICAgICAgIGJyZWFrOwpAQCAtNzM1LDYgKzc1Nyw5IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9i
amVjdCwgZ3VpbnQgcHJvcF9pZCwgR1ZhCiAgICAgY2FzZSBQUk9QX0VOQUJMRV9YU1NfQVVESVRP
UjoKICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+ZW5hYmxlX3hzc19h
dWRpdG9yKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0pBVkFTQ1JJUFRfQ0FOX09Q
RU5fV0lORE9XUzoKKyAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+amF2
YXNjcmlwdF9jYW5fb3Blbl93aW5kb3dzKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9p
ZCwgcHNwZWMpOwogICAgICAgICBicmVhazsKQEAgLTc5NCw2ICs4MTksNyBAQCBXZWJLaXRXZWJT
ZXR0aW5ncyogd2Via2l0X3dlYl9zZXR0aW5nc19jb3B5KFdlYktpdFdlYlNldHRpbmdzKiB3ZWJf
c2V0dGluZ3MpCiAgICAgICAgICAgICAgICAgICJlbmFibGUtaHRtbDUtZGF0YWJhc2UiLCBwcml2
LT5lbmFibGVfaHRtbDVfZGF0YWJhc2UsCiAgICAgICAgICAgICAgICAgICJlbmFibGUtaHRtbDUt
bG9jYWwtc3RvcmFnZSIsIHByaXYtPmVuYWJsZV9odG1sNV9sb2NhbF9zdG9yYWdlLAogICAgICAg
ICAgICAgICAgICAiZW5hYmxlLXhzcy1hdWRpdG9yIiwgcHJpdi0+ZW5hYmxlX3hzc19hdWRpdG9y
LAorICAgICAgICAgICAgICAgICAiamF2YXNjcmlwdC1jYW4tb3Blbi13aW5kb3dzIiwgcHJpdi0+
amF2YXNjcmlwdF9jYW5fb3Blbl93aW5kb3dzLAogICAgICAgICAgICAgICAgICBOVUxMKSk7CiAK
ICAgICByZXR1cm4gY29weTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXggNWIx
OTg1Ni4uMDBlNGUxYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmll
dy5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTExNyw2
ICsxMTcsNyBAQCBlbnVtIHsKICAgICBNSU1FX1RZUEVfUE9MSUNZX0RFQ0lTSU9OX1JFUVVFU1RF
RCwKICAgICBDUkVBVEVfV0VCX1ZJRVcsCiAgICAgV0VCX1ZJRVdfUkVBRFksCisgICAgQ0xPU0Vf
V0VCX1ZJRVcsCiAgICAgV0lORE9XX09CSkVDVF9DTEVBUkVELAogICAgIExPQURfU1RBUlRFRCwK
ICAgICBMT0FEX0NPTU1JVFRFRCwKQEAgLTY5MCw2ICs2OTEsMTEgQEAgc3RhdGljIGdib29sZWFu
IHdlYmtpdF93ZWJfdmlld19yZWFsX3dlYl92aWV3X3JlYWR5KFdlYktpdFdlYlZpZXcqKQogICAg
IHJldHVybiBGQUxTRTsKIH0KIAorc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19yZWFs
X2Nsb3NlX3dlYl92aWV3KFdlYktpdFdlYlZpZXcqKQoreworICAgIHJldHVybiBGQUxTRTsKK30K
Kwogc3RhdGljIFdlYktpdE5hdmlnYXRpb25SZXNwb25zZSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9u
YXZpZ2F0aW9uX3JlcXVlc3RlZChXZWJLaXRXZWJWaWV3KiwgV2ViS2l0V2ViRnJhbWUqLCBXZWJL
aXROZXR3b3JrUmVxdWVzdCopCiB7CiAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1JFU1BP
TlNFX0FDQ0VQVDsKQEAgLTExMTAsNiArMTExNiwyNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2Vi
X3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAg
ICAgICAgIEdfVFlQRV9CT09MRUFOLCAwKTsKIAogICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZp
ZXc6OmNsb3NlLXdlYi12aWV3OgorICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCBvbiB3aGlj
aCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKKyAgICAgKiBAcmV0dXJuOiAlVFJVRSB0byBzdG9wIGhh
bmRsZXJzIGZyb20gYmVpbmcgaW52b2tlZCBmb3IgdGhlIGV2ZW50IG9yCisgICAgICogJUZBTFNF
IHRvIHByb3BhZ2F0ZSB0aGUgZXZlbnQgZnVydGVyCisgICAgICoKKyAgICAgKiBFbWl0dGVkIHdo
ZW4gY2xvc2luZyBhIFdlYlZpZXcgaXMgcmVxdWVzdGVkLiBUaGlzIG9jY3VycyB3aGVuIGEgY2Fs
bAorICAgICAqIGlzIG1hZGUgZnJvbSBKYXZhU2NyaXB0J3Mgd2luZG93LmNsb3NlIGZ1bmN0aW9u
LgorICAgICAqCisgICAgICogU2luY2UgMS4xLjExCisgICAgICovCisgICAgd2Via2l0X3dlYl92
aWV3X3NpZ25hbHNbQ0xPU0VfV0VCX1ZJRVddID0gZ19zaWduYWxfbmV3KCJjbG9zZS13ZWItdmll
dyIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAorICAgICAg
ICAgICAgKEdTaWduYWxGbGFncylHX1NJR05BTF9SVU5fTEFTVCwKKyAgICAgICAgICAgIEdfU1RS
VUNUX09GRlNFVCAoV2ViS2l0V2ViVmlld0NsYXNzLCBjbG9zZV93ZWJfdmlldyksCisgICAgICAg
ICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCisgICAgICAgICAgICBOVUxM
LAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fVk9JRCwKKyAgICAgICAgICAg
IEdfVFlQRV9CT09MRUFOLCAwKTsKKworICAgIC8qKgogICAgICAqIFdlYktpdFdlYlZpZXc6Om5h
dmlnYXRpb24tcmVxdWVzdGVkOgogICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCBvbiB3aGlj
aCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKICAgICAgKiBAZnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJh
bWUgdGhhdCByZXF1aXJlZCB0aGUgbmF2aWdhdGlvbgpAQCAtMTcyMCw2ICsxNzQ2LDcgQEAgc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3
ZWJWaWV3Q2xhc3MpCiAgICAgICovCiAgICAgd2ViVmlld0NsYXNzLT5jcmVhdGVfd2ViX3ZpZXcg
PSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9jcmVhdGVfd2ViX3ZpZXc7CiAgICAgd2ViVmlld0NsYXNz
LT53ZWJfdmlld19yZWFkeSA9IHdlYmtpdF93ZWJfdmlld19yZWFsX3dlYl92aWV3X3JlYWR5Owor
ICAgIHdlYlZpZXdDbGFzcy0+Y2xvc2Vfd2ViX3ZpZXcgPSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9j
bG9zZV93ZWJfdmlldzsKICAgICB3ZWJWaWV3Q2xhc3MtPm5hdmlnYXRpb25fcmVxdWVzdGVkID0g
d2Via2l0X3dlYl92aWV3X3JlYWxfbmF2aWdhdGlvbl9yZXF1ZXN0ZWQ7CiAgICAgd2ViVmlld0Ns
YXNzLT53aW5kb3dfb2JqZWN0X2NsZWFyZWQgPSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF93aW5kb3df
b2JqZWN0X2NsZWFyZWQ7CiAgICAgd2ViVmlld0NsYXNzLT5jaG9vc2VfZmlsZSA9IHdlYmtpdF93
ZWJfdmlld19yZWFsX2Nob29zZV9maWxlOwpAQCAtMjA1MCw3ICsyMDc3LDcgQEAgc3RhdGljIHZv
aWQgd2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
KQogICAgIGdib29sZWFuIGF1dG9Mb2FkSW1hZ2VzLCBhdXRvU2hyaW5rSW1hZ2VzLCBwcmludEJh
Y2tncm91bmRzLAogICAgICAgICBlbmFibGVTY3JpcHRzLCBlbmFibGVQbHVnaW5zLCBlbmFibGVE
ZXZlbG9wZXJFeHRyYXMsIHJlc2l6YWJsZVRleHRBcmVhcywKICAgICAgICAgZW5hYmxlUHJpdmF0
ZUJyb3dzaW5nLCBlbmFibGVDYXJldEJyb3dzaW5nLCBlbmFibGVIVE1MNURhdGFiYXNlLCBlbmFi
bGVIVE1MNUxvY2FsU3RvcmFnZSwKLSAgICAgICAgZW5hYmxlWFNTQXVkaXRvcjsKKyAgICAgICAg
ZW5hYmxlWFNTQXVkaXRvciwgamF2YXNjcmlwdENhbk9wZW5XaW5kb3dzOwogCiAgICAgZ19vYmpl
Y3RfZ2V0KHdlYlNldHRpbmdzLAogICAgICAgICAgICAgICAgICAiZGVmYXVsdC1lbmNvZGluZyIs
ICZkZWZhdWx0RW5jb2RpbmcsCkBAIC0yMDczLDYgKzIxMDAsNyBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAg
ICAgICAgICAgICAgICJlbmFibGUtaHRtbDUtZGF0YWJhc2UiLCAmZW5hYmxlSFRNTDVEYXRhYmFz
ZSwKICAgICAgICAgICAgICAgICAgImVuYWJsZS1odG1sNS1sb2NhbC1zdG9yYWdlIiwgJmVuYWJs
ZUhUTUw1TG9jYWxTdG9yYWdlLAogICAgICAgICAgICAgICAgICAiZW5hYmxlLXhzcy1hdWRpdG9y
IiwgJmVuYWJsZVhTU0F1ZGl0b3IsCisgICAgICAgICAgICAgICAgICJqYXZhc2NyaXB0LWNhbi1v
cGVuLXdpbmRvd3MiLCAmamF2YXNjcmlwdENhbk9wZW5XaW5kb3dzLAogICAgICAgICAgICAgICAg
ICBOVUxMKTsKIAogICAgIHNldHRpbmdzLT5zZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShkZWZh
dWx0RW5jb2RpbmcpOwpAQCAtMjA5NSw2ICsyMTIzLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl92aWV3X3VwZGF0ZV9zZXR0aW5ncyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHNldHRp
bmdzLT5zZXREYXRhYmFzZXNFbmFibGVkKGVuYWJsZUhUTUw1RGF0YWJhc2UpOwogICAgIHNldHRp
bmdzLT5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKGVuYWJsZUhUTUw1TG9jYWxTdG9yYWdlKTsKICAg
ICBzZXR0aW5ncy0+c2V0WFNTQXVkaXRvckVuYWJsZWQoZW5hYmxlWFNTQXVkaXRvcik7CisgICAg
c2V0dGluZ3MtPnNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoamF2YXNj
cmlwdENhbk9wZW5XaW5kb3dzKTsKIAogICAgIGdfZnJlZShkZWZhdWx0RW5jb2RpbmcpOwogICAg
IGdfZnJlZShjdXJzaXZlRm9udEZhbWlseSk7CkBAIC0yMTczLDYgKzIyMDIsOCBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90aWZ5KFdlYktpdFdlYlNldHRpbmdzKiB3
ZWJTZXR0aW5ncywgR1BhcgogICAgICAgICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRW5hYmxl
ZChnX3ZhbHVlX2dldF9ib29sZWFuKCZ2YWx1ZSkpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gZ19p
bnRlcm5fc3RyaW5nKCJlbmFibGUteHNzLWF1ZGl0b3IiKSkKICAgICAgICAgc2V0dGluZ3MtPnNl
dFhTU0F1ZGl0b3JFbmFibGVkKGdfdmFsdWVfZ2V0X2Jvb2xlYW4oJnZhbHVlKSk7CisgICAgZWxz
ZSBpZiAobmFtZSA9PSBnX2ludGVybl9zdHJpbmcoImphdmFzY3JpcHQtY2FuLW9wZW4td2luZG93
cyIpKQorICAgICAgICBzZXR0aW5ncy0+c2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21h
dGljYWxseShnX3ZhbHVlX2dldF9ib29sZWFuKCZ2YWx1ZSkpOwogICAgIGVsc2UgaWYgKCFnX29i
amVjdF9jbGFzc19maW5kX3Byb3BlcnR5KEdfT0JKRUNUX0dFVF9DTEFTUyh3ZWJTZXR0aW5ncyks
IG5hbWUpKQogICAgICAgICBnX3dhcm5pbmcoIlVuZXhwZWN0ZWQgc2V0dGluZyAnJXMnIiwgbmFt
ZSk7CiAgICAgZ192YWx1ZV91bnNldCgmdmFsdWUpOwpAQCAtMzM4MCwzICszNDExLDE1IEBAIHZv
aWQgd2Via2l0X3dlYl92aWV3X21vdmVfY3Vyc29yKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEd0
a01vdmVtZW50U3RlcCBzdGVwLCBnCiAgICAgZ2Jvb2xlYW4gaGFuZGxlZDsKICAgICBnX3NpZ25h
bF9lbWl0KHdlYlZpZXcsIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW01PVkVfQ1VSU09SXSwgMCwg
c3RlcCwgY291bnQsICZoYW5kbGVkKTsKIH0KKwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2dy
b3VwX25hbWUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgZ2NoYXIqIGdyb3VwTmFtZSkK
K3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisK
KyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7CisKKyAgICBp
ZiAoIXByaXYtPmNvcmVQYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBwcml2LT5jb3JlUGFn
ZS0+c2V0R3JvdXBOYW1lKFN0cmluZzo6ZnJvbVVURjgoZ3JvdXBOYW1lKSk7Cit9CmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmggYi9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJ2aWV3LmgKaW5kZXggNjBkMzMwZS4uNThlYzVjZCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYnZpZXcuaApAQCAtNzQsNiArNzQsOCBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdDbGFz
cyB7CiAKICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgICAoKiB3ZWJfdmlld19yZWFkeSkg
ICAgICAgICAgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKIAorICAgIGdib29sZWFuICAgICAg
ICAgICAgICAgICAgICgqIGNsb3NlX3dlYl92aWV3KSAgICAgICAgIChXZWJLaXRXZWJWaWV3KiB3
ZWJfdmlldyk7CisKICAgICBXZWJLaXROYXZpZ2F0aW9uUmVzcG9uc2UgICAoKiBuYXZpZ2F0aW9u
X3JlcXVlc3RlZCkgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRX
ZWJGcmFtZSAgICAgICAqZnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0ICpyZXF1ZXN0KTsK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAwZjUzNTExLi5iYWQzYzQyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMDktMDYt
MzAgIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gQWRkIHN1cHBvcnQg
Zm9yIGphdmFzY3JpcHQgd2luZG93cyBmb3IgRFJUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjcxOAorCisgICAgICAgIFN1cHBvcnQgcnVubmluZyBv
ZiB0ZXN0cyB0aGF0IG9wZW4gYW5kIGNsb3NlIEpTIHdpbmRvd3MgYXV0b21hdGljYWxseS4KKwor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAg
IChkdW1wRnJhbWVzQXNUZXh0KToKKyAgICAgICAgKGR1bXBCYWNrRm9yd2FyZExpc3RGb3JBbGxX
ZWJWaWV3cyk6CisgICAgICAgIChyZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRl
c3RpbmcpOgorICAgICAgICAoZHVtcCk6CisgICAgICAgIChydW5UZXN0KToKKyAgICAgICAgKHdl
YlZpZXdDbG9zZSk6CisgICAgICAgIChjcmVhdGVXZWJWaWV3KToKKyAgICAgICAgKHdlYlZpZXdD
cmVhdGUpOgorICAgICAgICAobWFpbik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1
bXBSZW5kZXJUcmVlR3RrLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRl
c3RDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjp3aW5k
b3dDb3VudCk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UG9wdXBCbG9ja2lu
Z0VuYWJsZWQpOgorCiAyMDA5LTA2LTMwICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4K
IAogICAgICAgICBUeXBvIGZpeCBvbmx5LCBubyByZXZpZXcuCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBhYmRlY2Y2Li40OTFl
NTViIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRl
clRyZWUuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVy
VHJlZS5jcHAKQEAgLTU5LDYgKzU5LDcgQEAgZXh0ZXJuIGdjaGFyKiB3ZWJraXRfd2ViX2ZyYW1l
X2R1bXBfcmVuZGVyX3RyZWUoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKTsKIGV4dGVybiB2b2lkIHdl
YmtpdF93ZWJfc2V0dGluZ3NfYWRkX2V4dHJhX3BsdWdpbl9kaXJlY3RvcnkoV2ViS2l0V2ViVmll
dyogdmlldywgY29uc3QgZ2NoYXIqIGRpcmVjdG9yeSk7CiBleHRlcm4gZ2NoYXIqIHdlYmtpdF93
ZWJfZnJhbWVfZ2V0X3Jlc3BvbnNlX21pbWVfdHlwZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpOwog
ZXh0ZXJuIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9jbGVhcl9tYWluX2ZyYW1lX25hbWUoV2ViS2l0
V2ViRnJhbWUqIGZyYW1lKTsKK2V4dGVybiB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfZ3JvdXBf
bmFtZShXZWJLaXRXZWJWaWV3KiB2aWV3LCBjb25zdCBnY2hhciogZ3JvdXBOYW1lKTsKIH0KIAog
dm9sYXRpbGUgYm9vbCBkb25lOwpAQCAtNzQsNiArNzUsOSBAQCBXZWJLaXRXZWJGcmFtZSogdG9w
TG9hZGluZ0ZyYW1lID0gMDsKIGd1aW50IHdhaXRUb0R1bXBXYXRjaGRvZyA9IDA7CiBib29sIHdh
aXRGb3JQb2xpY3kgPSBmYWxzZTsKIAorLy8gVGhpcyBpcyBhIGxpc3Qgb2Ygb3BlbmVkIHdlYnZp
ZXdzCitHU0xpc3QqIHdlYlZpZXdMaXN0ID0gMDsKKwogLy8gY3VycmVudCBiL2YgaXRlbSBhdCB0
aGUgZW5kIG9mIHRoZSBwcmV2aW91cyB0ZXN0CiBzdGF0aWMgV2ViS2l0V2ViSGlzdG9yeUl0ZW0q
IHByZXZUZXN0QkZJdGVtID0gTlVMTDsKIApAQCAtMTMzLDcgKzEzNyw3IEBAIHN0YXRpYyBnY2hh
ciogZHVtcEZyYW1lc0FzVGV4dChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiAgICAgaWYgKGdMYXlv
dXRUZXN0Q29udHJvbGxlci0+ZHVtcENoaWxkRnJhbWVzQXNUZXh0KCkpIHsKICAgICAgICAgR1NM
aXN0KiBjaGlsZHJlbiA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2NoaWxkcmVuKGZyYW1lKTsKICAg
ICAgICAgZm9yIChHU0xpc3QqIGNoaWxkID0gY2hpbGRyZW47IGNoaWxkOyBjaGlsZCA9IGdfc2xp
c3RfbmV4dChjaGlsZCkpCi0gICAgICAgICAgIGFwcGVuZFN0cmluZyhyZXN1bHQsIGR1bXBGcmFt
ZXNBc1RleHQoKFdlYktpdFdlYkZyYW1lKiljaGlsZHJlbi0+ZGF0YSkpOworICAgICAgICAgICAg
YXBwZW5kU3RyaW5nKHJlc3VsdCwgZHVtcEZyYW1lc0FzVGV4dChzdGF0aWNfY2FzdDxXZWJLaXRX
ZWJGcmFtZSogPihjaGlsZC0+ZGF0YSkpKTsKICAgICAgICAgZ19zbGlzdF9mcmVlKGNoaWxkcmVu
KTsKICAgICB9CiAKQEAgLTIxNSw2ICsyMTksMTcgQEAgc3RhdGljIHZvaWQgZHVtcEJhY2tGb3J3
YXJkTGlzdEZvcldlYlZpZXcoV2ViS2l0V2ViVmlldyogdmlldykKICAgICBwcmludGYoIj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iKTsKIH0KIAorc3Rh
dGljIHZvaWQgZHVtcEJhY2tGb3J3YXJkTGlzdEZvckFsbFdlYlZpZXdzKCkKK3sKKyAgICAvLyBE
dW1wIHRoZSBiYWNrIGZvcndhcmQgbGlzdCBvZiB0aGUgbWFpbiBXZWJWaWV3IGZpcnN0CisgICAg
ZHVtcEJhY2tGb3J3YXJkTGlzdEZvcldlYlZpZXcod2ViVmlldyk7CisKKyAgICAvLyBUaGUgdmll
dyBsaXN0IGlzIHByZXBlbmRlZC4gUmV2ZXJzZSB0aGUgbGlzdCBzbyB3ZSBnZXQgdGhlIG9yZGVy
IHJpZ2h0LgorICAgIEdTTGlzdCogdmlld0xpc3QgPSBnX3NsaXN0X3JldmVyc2Uod2ViVmlld0xp
c3QpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBnX3NsaXN0X2xlbmd0aCh2aWV3TGlz
dCk7ICsraSkKKyAgICAgICAgZHVtcEJhY2tGb3J3YXJkTGlzdEZvcldlYlZpZXcoV0VCS0lUX1dF
Ql9WSUVXKGdfc2xpc3RfbnRoX2RhdGEodmlld0xpc3QsIGkpKSk7Cit9CisKIHN0YXRpYyB2b2lk
IGludmFsaWRhdGVBbnlQcmV2aW91c1dhaXRUb0R1bXBXYXRjaGRvZygpCiB7CiAgICAgaWYgKHdh
aXRUb0R1bXBXYXRjaGRvZykgewpAQCAtMjM1LDYgKzI1MCw3IEBAIHN0YXRpYyB2b2lkIHJlc2V0
V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAgICAgICAgICAgICAgICAg
ICJlbmFibGUtaHRtbDUtZGF0YWJhc2UiLCBUUlVFLAogICAgICAgICAgICAgICAgICAiZW5hYmxl
LWh0bWw1LWxvY2FsLXN0b3JhZ2UiLCBUUlVFLAogICAgICAgICAgICAgICAgICAiZW5hYmxlLXhz
cy1hdWRpdG9yIiwgVFJVRSwKKyAgICAgICAgICAgICAgICAgImphdmFzY3JpcHQtY2FuLW9wZW4t
d2luZG93cyIsIFRSVUUsCiAgICAgICAgICAgICAgICAgIE5VTEwpOwogCiAgICAgd2Via2l0X3dl
Yl9mcmFtZV9jbGVhcl9tYWluX2ZyYW1lX25hbWUobWFpbkZyYW1lKTsKQEAgLTI4MywxMSArMjk5
LDggQEAgdm9pZCBkdW1wKCkKICAgICAgICAgICAgIGlmICghZ0xheW91dFRlc3RDb250cm9sbGVy
LT5kdW1wQXNUZXh0KCkgJiYgIWdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcERPTUFzV2ViQXJj
aGl2ZSgpICYmICFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBTb3VyY2VBc1dlYkFyY2hpdmUo
KSkKICAgICAgICAgICAgICAgICBkdW1wRnJhbWVTY3JvbGxQb3NpdGlvbihtYWluRnJhbWUpOwog
Ci0gICAgICAgICAgICBpZiAoZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wQmFja0ZvcndhcmRM
aXN0KCkpIHsKLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogbXVsdGlwbGUgd2luZG93cyBzdXBw
b3J0Ci0gICAgICAgICAgICAgICAgZHVtcEJhY2tGb3J3YXJkTGlzdEZvcldlYlZpZXcod2ViVmll
dyk7Ci0KLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChnTGF5b3V0VGVzdENvbnRyb2xs
ZXItPmR1bXBCYWNrRm9yd2FyZExpc3QoKSkKKyAgICAgICAgICAgICAgICBkdW1wQmFja0Zvcndh
cmRMaXN0Rm9yQWxsV2ViVmlld3MoKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChwcmludFNl
cGFyYXRvcnMpIHsKQEAgLTM5MSw2ICs0MDQsMTcgQEAgc3RhdGljIHZvaWQgcnVuVGVzdChjb25z
dCBzdHJpbmcmIHRlc3RQYXRoT3JVUkwpCiAgICAgd2hpbGUgKCFkb25lKQogICAgICAgICBnX21h
aW5fY29udGV4dF9pdGVyYXRpb24oTlVMTCwgVFJVRSk7CiAKKworICAgIC8vIEFsc28gY2hlY2sg
aWYgd2Ugc3RpbGwgaGF2ZSBvcGVuZWQgd2ViVmlld3MgYW5kIGZyZWUgdGhlbS4KKyAgICBpZiAo
Z0xheW91dFRlc3RDb250cm9sbGVyLT5jbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUo
KSB8fCB3ZWJWaWV3TGlzdCkgeworICAgICAgICB3aGlsZSAod2ViVmlld0xpc3QpIHsKKyAgICAg
ICAgICAgIGdfb2JqZWN0X3VucmVmKFdFQktJVF9XRUJfVklFVyh3ZWJWaWV3TGlzdC0+ZGF0YSkp
OworICAgICAgICAgICAgd2ViVmlld0xpc3QgPSBnX3NsaXN0X25leHQod2ViVmlld0xpc3QpOwor
ICAgICAgICB9CisgICAgICAgIGdfc2xpc3RfZnJlZSh3ZWJWaWV3TGlzdCk7CisgICAgICAgIHdl
YlZpZXdMaXN0ID0gMDsKKyAgICB9CisKICAgICAvLyBBIGJsYW5rIGxvYWQgc2VlbXMgdG8gYmUg
bmVjZXNzYXJ5IHRvIHJlc2V0IHN0YXRlIGFmdGVyIGNlcnRhaW4gdGVzdHMuCiAgICAgd2Via2l0
X3dlYl92aWV3X29wZW4od2ViVmlldywgImFib3V0OmJsYW5rIik7CiAKQEAgLTUyOSw2ICs1NTMs
NTkgQEAgc3RhdGljIHZvaWQgd2ViVmlld1N0YXR1c0JhclRleHRDaGFuZ2VkKFdlYktpdFdlYlZp
ZXcqIHZpZXcsIGNvbnN0IGdjaGFyKiBtZXNzYWcKICAgICB9CiB9CiAKK3N0YXRpYyBnYm9vbGVh
biB3ZWJWaWV3Q2xvc2UoV2ViS2l0V2ViVmlldyogdmlldykKK3sKKyAgICBBU1NFUlQodmlldyk7
CisKKyAgICB3ZWJWaWV3TGlzdCA9IGdfc2xpc3RfcmVtb3ZlKHdlYlZpZXdMaXN0LCB2aWV3KTsK
KyAgICBnX29iamVjdF91bnJlZih2aWV3KTsKKworICAgIHJldHVybiBUUlVFOworfQorCisKK3N0
YXRpYyBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3Q3JlYXRlKFdlYktpdFdlYlZpZXcqLCBXZWJLaXRX
ZWJGcmFtZSopOworCitzdGF0aWMgV2ViS2l0V2ViVmlldyogY3JlYXRlV2ViVmlldygpCit7Cisg
ICAgV2ViS2l0V2ViVmlldyogdmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdf
bmV3KCkpOworCisgICAgLy8gRnJvbSBidWcgMTE3NTY6IFVzZSBhIGZyYW1lIGdyb3VwIG5hbWUg
Zm9yIGFsbCBXZWJWaWV3cyBjcmVhdGVkIGJ5CisgICAgLy8gRHVtcFJlbmRlclRyZWUgdG8gYWxs
b3cgdGVzdGluZyBvZiBjcm9zcy1wYWdlIGZyYW1lIGxvb2t1cC4KKyAgICB3ZWJraXRfd2ViX3Zp
ZXdfc2V0X2dyb3VwX25hbWUodmlldywgIm9yZy53ZWJraXQuZ3RrLkR1bXBSZW5kZXJUcmVlIik7
CisKKyAgICBnX29iamVjdF9jb25uZWN0KEdfT0JKRUNUKHZpZXcpLAorICAgICAgICAgICAgICAg
ICAgICAgInNpZ25hbDo6bG9hZC1zdGFydGVkIiwgd2ViVmlld0xvYWRTdGFydGVkLCAwLAorICAg
ICAgICAgICAgICAgICAgICAgInNpZ25hbDo6bG9hZC1maW5pc2hlZCIsIHdlYlZpZXdMb2FkRmlu
aXNoZWQsIDAsCisgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjp3aW5kb3ctb2JqZWN0LWNs
ZWFyZWQiLCB3ZWJWaWV3V2luZG93T2JqZWN0Q2xlYXJlZCwgMCwKKyAgICAgICAgICAgICAgICAg
ICAgICJzaWduYWw6OmNvbnNvbGUtbWVzc2FnZSIsIHdlYlZpZXdDb25zb2xlTWVzc2FnZSwgMCwK
KyAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OnNjcmlwdC1hbGVydCIsIHdlYlZpZXdTY3Jp
cHRBbGVydCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OnNjcmlwdC1wcm9tcHQi
LCB3ZWJWaWV3U2NyaXB0UHJvbXB0LCAwLAorICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6
c2NyaXB0LWNvbmZpcm0iLCB3ZWJWaWV3U2NyaXB0Q29uZmlybSwgMCwKKyAgICAgICAgICAgICAg
ICAgICAgICJzaWduYWw6OnRpdGxlLWNoYW5nZWQiLCB3ZWJWaWV3VGl0bGVDaGFuZ2VkLCAwLAor
ICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6bmF2aWdhdGlvbi1wb2xpY3ktZGVjaXNpb24t
cmVxdWVzdGVkIiwgd2ViVmlld05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvblJlcXVlc3RlZCwgMCwK
KyAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OnN0YXR1cy1iYXItdGV4dC1jaGFuZ2VkIiwg
d2ViVmlld1N0YXR1c0JhclRleHRDaGFuZ2VkLCAwLAorICAgICAgICAgICAgICAgICAgICAgInNp
Z25hbDo6Y3JlYXRlLXdlYi12aWV3Iiwgd2ViVmlld0NyZWF0ZSwgMCwKKyAgICAgICAgICAgICAg
ICAgICAgICJzaWduYWw6OmNsb3NlLXdlYi12aWV3Iiwgd2ViVmlld0Nsb3NlLCAwLAorICAgICAg
ICAgICAgICAgICAgICAgTlVMTCk7CisKKyAgICByZXR1cm4gdmlldzsKK30KKworc3RhdGljIFdl
YktpdFdlYlZpZXcqIHdlYlZpZXdDcmVhdGUoV2ViS2l0V2ViVmlldyogdmlldywgV2ViS2l0V2Vi
RnJhbWUqIGZyYW1lKQoreworICAgIGlmICghZ0xheW91dFRlc3RDb250cm9sbGVyLT5jYW5PcGVu
V2luZG93cygpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHdh
aXRVbnRpbERvbmUgaGFzIGJlZW4gY2FsbGVkLgorICAgIEFTU0VSVChnTGF5b3V0VGVzdENvbnRy
b2xsZXItPndhaXRUb0R1bXAoKSk7CisKKyAgICBXZWJLaXRXZWJWaWV3KiBuZXdXZWJWaWV3ID0g
Y3JlYXRlV2ViVmlldygpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKEdfT0JKRUNUKG5ld1dlYlZp
ZXcpKTsKKyAgICB3ZWJWaWV3TGlzdCA9IGdfc2xpc3RfcHJlcGVuZCh3ZWJWaWV3TGlzdCwgbmV3
V2ViVmlldyk7CisgICAgcmV0dXJuIG5ld1dlYlZpZXc7Cit9CisKIGludCBtYWluKGludCBhcmdj
LCBjaGFyKiBhcmd2W10pCiB7CiAgICAgZ190aHJlYWRfaW5pdChOVUxMKTsKQEAgLTU1NiwyMyAr
NjMzLDEyIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgZ3RrX2NvbnRh
aW5lcl9hZGQoR1RLX0NPTlRBSU5FUih3aW5kb3cpLCBjb250YWluZXIpOwogICAgIGd0a193aWRn
ZXRfcmVhbGl6ZSh3aW5kb3cpOwogCi0gICAgd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJr
aXRfd2ViX3ZpZXdfbmV3KCkpOworICAgIHdlYlZpZXcgPSBjcmVhdGVXZWJWaWV3KCk7CiAgICAg
Z3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihjb250YWluZXIpLCBHVEtfV0lER0VUKHdl
YlZpZXcpKTsKICAgICBndGtfd2lkZ2V0X3JlYWxpemUoR1RLX1dJREdFVCh3ZWJWaWV3KSk7CiAg
ICAgZ3RrX3dpZGdldF9zaG93X2FsbChjb250YWluZXIpOwogICAgIG1haW5GcmFtZSA9IHdlYmtp
dF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZSh3ZWJWaWV3KTsKIAotICAgIGdfc2lnbmFsX2Nvbm5l
Y3QoR19PQkpFQ1Qod2ViVmlldyksICJsb2FkLXN0YXJ0ZWQiLCBHX0NBTExCQUNLKHdlYlZpZXdM
b2FkU3RhcnRlZCksIDApOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1Qod2ViVmlldyks
ICJsb2FkLWZpbmlzaGVkIiwgR19DQUxMQkFDSyh3ZWJWaWV3TG9hZEZpbmlzaGVkKSwgMCk7Ci0g
ICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVCh3ZWJWaWV3KSwgIndpbmRvdy1vYmplY3QtY2xl
YXJlZCIsIEdfQ0FMTEJBQ0sod2ViVmlld1dpbmRvd09iamVjdENsZWFyZWQpLCAwKTsKLSAgICBn
X3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKHdlYlZpZXcpLCAiY29uc29sZS1tZXNzYWdlIiwgR19D
QUxMQkFDSyh3ZWJWaWV3Q29uc29sZU1lc3NhZ2UpLCAwKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0
KEdfT0JKRUNUKHdlYlZpZXcpLCAic2NyaXB0LWFsZXJ0IiwgR19DQUxMQkFDSyh3ZWJWaWV3U2Ny
aXB0QWxlcnQpLCAwKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKHdlYlZpZXcpLCAi
c2NyaXB0LXByb21wdCIsIEdfQ0FMTEJBQ0sod2ViVmlld1NjcmlwdFByb21wdCksIDApOwotICAg
IGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1Qod2ViVmlldyksICJzY3JpcHQtY29uZmlybSIsIEdf
Q0FMTEJBQ0sod2ViVmlld1NjcmlwdENvbmZpcm0pLCAwKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0
KEdfT0JKRUNUKHdlYlZpZXcpLCAidGl0bGUtY2hhbmdlZCIsIEdfQ0FMTEJBQ0sod2ViVmlld1Rp
dGxlQ2hhbmdlZCksIDApOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1Qod2ViVmlldyks
ICJuYXZpZ2F0aW9uLXBvbGljeS1kZWNpc2lvbi1yZXF1ZXN0ZWQiLCBHX0NBTExCQUNLKHdlYlZp
ZXdOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25SZXF1ZXN0ZWQpLCAwKTsKLSAgICBnX3NpZ25hbF9j
b25uZWN0KEdfT0JKRUNUKHdlYlZpZXcpLCAic3RhdHVzLWJhci10ZXh0LWNoYW5nZWQiLCBHX0NB
TExCQUNLKHdlYlZpZXdTdGF0dXNCYXJUZXh0Q2hhbmdlZCksIDApOwotCiAgICAgc2V0RGVmYXVs
dHNUb0NvbnNpc3RlbnRTdGF0ZVZhbHVlc0ZvclRlc3RpbmcoKTsKIAogICAgIGlmIChhcmdjID09
IG9wdGluZCsxICYmIHN0cmNtcChhcmd2W29wdGluZF0sICItIikgPT0gMCkgewpAQCAtNTk0LDUg
KzY2MCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgICAgICBy
dW5UZXN0KGFyZ3ZbaV0pOwogICAgIH0KIAorICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXcpOwor
CiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvRHVtcFJlbmRlclRyZWVHdGsuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9EdW1wUmVuZGVyVHJlZUd0ay5oCmluZGV4IDJjZTAxNGYuLjdhNWE0Y2YgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZUd0ay5oCisrKyBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZUd0ay5oCkBAIC0z
MiwxMCArMzIsMTMgQEAKICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgogCisjaW5jbHVkZSA8Z2xpYi5oPgorCiBleHRl
cm4gV2ViS2l0V2ViRnJhbWUqIG1haW5GcmFtZTsKIGV4dGVybiBXZWJLaXRXZWJGcmFtZSogdG9w
TG9hZGluZ0ZyYW1lOwogZXh0ZXJuIGd1aW50IHdhaXRUb0R1bXBXYXRjaGRvZzsKIGV4dGVybiBi
b29sIHdhaXRGb3JQb2xpY3k7CitleHRlcm4gR1NMaXN0KiB3ZWJWaWV3TGlzdDsKIAogZ2NoYXIq
IEpTU3RyaW5nQ29weVVURjhDU3RyaW5nKEpTU3RyaW5nUmVmIGpzU3RyaW5nKTsKIApkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVy
R3RrLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJv
bGxlckd0ay5jcHAKaW5kZXggNDA5OTJjNi4uNmE4ZjcxMSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3Bw
CkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3
ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA4IE51YW50aSBMdGQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDkgSmFuIE1pY2hhZWwgQWxvbnpvIDxqbWFsb256b0BnbWFpbC5jb20+CiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzMCw4ICsyMzEsOCBAQCB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRXYWl0VG9EdW1wKGJvb2wgd2FpdFVudGlsRG9uZSkKIAogaW50
IExheW91dFRlc3RDb250cm9sbGVyOjp3aW5kb3dDb3VudCgpCiB7Ci0gICAgLy8gRklYTUU6IGlt
cGxlbWVudAotICAgIHJldHVybiAxOworICAgIC8vICsxIC0+IGluY2x1ZGluZyB0aGUgbWFpbiB2
aWV3CisgICAgcmV0dXJuIGdfc2xpc3RfbGVuZ3RoKHdlYlZpZXdMaXN0KSArIDE7CiB9CiAKIHZv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBm
bGFnKQpAQCAtMjc5LDkgKzI4MCwxNCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKICAgICAvLyBGSVhNRTog
aW1wbGVtZW50CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBvcHVwQmxvY2tp
bmdFbmFibGVkKGJvb2wgcG9wdXBCbG9ja2luZ0VuYWJsZWQpCit2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sIGZsYWcpCiB7Ci0gICAgLy8gRklY
TUU6IGltcGxlbWVudAorICAgIFdlYktpdFdlYlZpZXcqIHZpZXcgPSB3ZWJraXRfd2ViX2ZyYW1l
X2dldF93ZWJfdmlldyhtYWluRnJhbWUpOworICAgIEFTU0VSVCh2aWV3KTsKKworICAgIFdlYktp
dFdlYlNldHRpbmdzKiBzZXR0aW5ncyA9IHdlYmtpdF93ZWJfdmlld19nZXRfc2V0dGluZ3Modmll
dyk7CisgICAgZ19vYmplY3Rfc2V0KEdfT0JKRUNUKHNldHRpbmdzKSwgImphdmFzY3JpcHQtY2Fu
LW9wZW4td2luZG93cyIsIGZsYWcsIE5VTEwpOworCiB9CiAKIGJvb2wgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZChKU1N0cmluZ1Jl
ZiBpZCk=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32102</attachid>
            <date>2009-06-30 18:01:15 -0700</date>
            <delta_ts>2009-07-12 12:09:48 -0700</delta_ts>
            <desc>updated to fix the popup blocking flag</desc>
            <filename>bugzilla_requires_a_filename.patch</filename>
            <type>text/plain</type>
            <size>32325</size>
            <attacher name="Jan Alonzo">jmalonzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzNTlmZGY5Li5mOGI2YmNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDYt
MzAgIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gQWRkIHN1cHBvcnQg
Zm9yIGphdmFzY3JpcHQgd2luZG93cyBmb3IgRFJUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjcxOAorCisgICAgICAgIFVuc2tpcCB0ZXN0cyB0aGF0
IG5vdyBwYXNzIGR1ZSB0byBzdXBwb3J0IGZvciBKUyB3aW5kb3dzIGluIEd0ayBEUlQuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKwogMjAwOS0wNi0zMCAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTm8gcmV2aWV3LCByZXZlcnRpbmcgcjQ1Mzk2
LiAgKEdlb3JnZSBTdGFpa29zIGFncmVlcyB0aGUgY2hhbmdlIHdhcyB3cm9uZy4pCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9Ta2lwcGVkCmluZGV4IDM4MmU2YmYuLjQyMDc4ZjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkCkBAIC0xNjI0LDI1ICsxNjI0LDE1IEBAIGZhc3QvZG9tL251bGwtZG9jdW1lbnQt
bG9jYXRpb24tcmVwbGFjZS1jcmFzaC5odG1sCiBmYXN0L2RvbS9udWxsLWRvY3VtZW50LXdpbmRv
dy1vcGVuLWNyYXNoLmh0bWwKIGZhc3QvZG9tL29iamVjdC1lbWJlZC1wbHVnaW4tc2NyaXB0aW5n
Lmh0bWwKIGZhc3QvZG9tL29iamVjdC1wbHVnaW4taGlkZXMtcHJvcGVydGllcy5odG1sCi1mYXN0
L2RvbS9vcGVuLWFuZC1jbG9zZS1ieS1ET00uaHRtbAogZmFzdC9kb20vdGFiaW5kZXgtY2xhbXAu
aHRtbAotZmFzdC9kb20vRG9jdW1lbnQvZWFybHktZG9jdW1lbnQtYWNjZXNzLmh0bWwKIGZhc3Qv
ZG9tL0hUTUxEb2N1bWVudC9oYXNGb2N1cy5odG1sCiBmYXN0L2RvbS9TZWxlY3RvckFQSS9yZXNp
Zy1TZWxlY3RvcnNBUEktdGVzdC54aHRtbAogZmFzdC9kb20vU3R5bGVTaGVldC9vd25lck5vZGUt
bGlmZXRpbWUtMi5odG1sCi1mYXN0L2RvbS9XaW5kb3cvY2xvc3VyZS1hY2Nlc3MtYWZ0ZXItbmF2
aWdhdGlvbi13aW5kb3cuaHRtbAotZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9z
dXJlLXdpbmRvdy5odG1sCiBmYXN0L2RvbS9XaW5kb3cvbmV3LXdpbmRvdy1vcGVuZXIuaHRtbAot
ZmFzdC9kb20vV2luZG93L3NldHRpbmctcHJvcGVydGllcy1vbi1jbG9zZWQtd2luZG93Lmh0bWwK
IGZhc3QvZG9tL1dpbmRvdy93ZWJraXRDb252ZXJ0UG9pbnQuaHRtbAotZmFzdC9kb20vV2luZG93
L3dpbmRvdy1lYXJseS1wcm9wZXJ0aWVzLmh0bWwKLWZhc3QvZG9tL1dpbmRvdy93aW5kb3ctbG9v
a3VwLXByZWNlZGVuY2UuaHRtbAogZmFzdC9kb20vV2luZG93L3dpbmRvdy1vbkZvY3VzLmh0bWwK
LWZhc3QvZG9tL1dpbmRvdy93aW5kb3ctb3Blbi1wZW5kaW5nLXVybC5odG1sCi1mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnRpZXMuaHRtbAogZmFzdC9kb20vV2luZG93L3dpbmRvdy1yZXNp
emUtYW5kLW1vdmUtYXJndW1lbnRzLmh0bWwKIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcmVzaXpl
Lmh0bWwKLWZhc3QvZG9tL1dpbmRvdy93aW5kb3ctc2NyZWVuLXByb3BlcnRpZXMuaHRtbAogZmFz
dC9kb20vV2luZG93L3dpbmRvdy14eS1wcm9wZXJ0aWVzLmh0bWwKIGZhc3QvZHluYW1pYy9ob3Zl
cmVkLWRldGFjaC5odG1sCiBmYXN0L2R5bmFtaWMvcGF1c2VkLWV2ZW50LWRpc3BhdGNoLmh0bWwK
QEAgLTE4MDgsNyArMTc5OCw2IEBAIGZhc3QvanMvZGF0ZS1iaWctc2V0ZGF0ZS5odG1sCiBmYXN0
L2pzL2V4Y2VwdGlvbnMtdGhyb3duLWluLWNhbGxiYWNrcy5odG1sCiBmYXN0L2pzL25hdmlnYXRv
ci1taW1lVHlwZXMtbGVuZ3RoLmh0bWwKIGZhc3QvbGF5ZXJzL3Jlc2l6ZS1sYXllci1kZWxldGlv
bi1jcmFzaC5odG1sCi1mYXN0L2xvYWRlci9jYW5jZWwtbG9hZC1kdXJpbmctcG9ydC1ibG9jay10
aW1lci5odG1sCiBmYXN0L2xvYWRlci9tYWluLWRvY3VtZW50LXVybC1mb3Itbm9uLWh0dHAtbG9h
ZHMuaHRtbAogZmFzdC9sb2FkZXIvb251bmxvYWQtZm9ybS1zdWJtaXQtY3Jhc2gtMi5odG1sCiBm
YXN0L2xvYWRlci9vbnVubG9hZC1mb3JtLXN1Ym1pdC1jcmFzaC5odG1sCkBAIC0zODExLDI5ICsz
ODAwLDIwIEBAIGh0dHAvdGVzdHMvbWlzYy9zdWJtaXQtZ2V0LWluLXV0ZjcuaHRtbAogaHR0cC90
ZXN0cy9taXNjL3RleHQtcmVmcmVzaC5odG1sCiBodHRwL3Rlc3RzL21pc2MvdGltZXItdnMtbG9h
ZGluZy5odG1sCiBodHRwL3Rlc3RzL21pc2Mvd2luZG93LWRvdC1zdG9wLmh0bWwKLWh0dHAvdGVz
dHMvbWlzYy93aW5kb3ctb3Blbi10aGVuLXdyaXRlLmh0bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlv
bi9iYWNrLXRvLXNsb3ctZnJhbWUuaHRtbAogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2RvY3VtZW50
LWxvY2F0aW9uLWNsaWNrLXRpbWVvdXQuaHRtbAogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2RvY3Vt
ZW50LWxvY2F0aW9uLWNsaWNrLmh0bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9kb2N1bWVudC1s
b2NhdGlvbi1tb3VzZW92ZXIuaHRtbAotaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL25ldy13aW5kb3ct
cmVkaXJlY3QtaGlzdG9yeS5odG1sCiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVsb2FkLXN1YmZy
YW1lLWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWxvYWQtc3ViZnJhbWUtaWZy
YW1lLmh0bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWxvYWQtc3ViZnJhbWUtb2JqZWN0Lmh0
bWwKLWh0dHAvdGVzdHMvbmF2aWdhdGlvbi90YXJnZXQtZnJhbWUtZnJvbS13aW5kb3cuaHRtbAog
aHR0cC90ZXN0cy9wbHVnaW5zL25wYXBpLXJlc3BvbnNlLWhlYWRlcnMuaHRtbAogaHR0cC90ZXN0
cy9wbHVnaW5zL3Bvc3QtdXJsLWZpbGUuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9jcmVkZW50
aWFscy1pbi1yZWZlcmVyLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNj
ZXNzLWNhbGxiYWNrLWV4cGxpY2l0LWRvbWFpbi1ERU5ZLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWRlbGV0ZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLWZyYW1lLWFjY2Vzcy1oaXN0b3J5LXB1dC5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLWZyYW1lLWFjY2Vzcy1sb2NhdGlvbi1wdXQuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1mcmFtZS1hY2Nlc3MtcHJpdmF0ZS1icm93c2luZy5odG1sCiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9kYXRh
VHJhbnNmZXItc2V0LWRhdGEtZmlsZS11cmwuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9mZWVk
LXVybHMtZnJvbS1yZW1vdGUuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9mcmFtZS1sb2FkaW5n
LXZpYS1kb2N1bWVudC13cml0ZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2hvc3QtY29tcGFy
ZS1jYXNlLWluc2Vuc2l0aXZlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtQ1NTLWZy
b20tcmVtb3RlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtSmF2YVNjcmlwdC1mcm9t
LXJlbW90ZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWlGcmFtZS1mcm9tLXJlbW90
ZS5odG1sCkBAIC0zODQxLDkgKzM4MjEsNiBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWlt
YWdlLWZyb20tcmVtb3RlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tcG9z
dGVyLWZyb20tcmVtb3RlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tc291
cmNlLWZyb20tcmVtb3RlLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tc3Jj
LWZyb20tcmVtb3RlLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LXByb3BlcnRpZXMt
Y2xlYXItZG9tYWluLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvd2luZG93LXByb3BlcnRpZXMt
Y2xlYXItcG9ydC5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3dpbmRvdy1wcm9wZXJ0aWVzLXBh
c3MuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0aW9u
cy1kZW55LW1ldGEtdGFnLWluLWJvZHkuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9YRnJhbWVP
cHRpb25zL3gtZnJhbWUtb3B0aW9ucy1kZW55LW1ldGEtdGFnLXBhcmVudC1zYW1lLW9yaWdpbi1h
bGxvdy5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L1hGcmFtZU9wdGlvbnMveC1mcmFtZS1vcHRp
b25zLWRlbnktbWV0YS10YWctcGFyZW50LXNhbWUtb3JpZ2luLWRlbnkuaHRtbApAQCAtMzg1MSw0
OCArMzgyOCw4IEBAIGh0dHAvdGVzdHMvc2VjdXJpdHkvWEZyYW1lT3B0aW9ucy94LWZyYW1lLW9w
dGlvbnMtZGVueS1tZXRhLXRhZy5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L1hGcmFtZU9wdGlv
bnMveC1mcmFtZS1vcHRpb25zLWRlbnkuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9YRnJhbWVP
cHRpb25zL3gtZnJhbWUtb3B0aW9ucy1wYXJlbnQtc2FtZS1vcmlnaW4tYWxsb3cuaHRtbAogaHR0
cC90ZXN0cy9zZWN1cml0eS9YRnJhbWVPcHRpb25zL3gtZnJhbWUtb3B0aW9ucy1wYXJlbnQtc2Ft
ZS1vcmlnaW4tZGVueS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0Qmxhbmsvc2VjdXJp
dHktY29udGV4dC1ncmFuZGNoaWxkcmVuLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvYWJvdXRC
bGFuay9zZWN1cml0eS1jb250ZXh0LXdpbmRvdy1vcGVuLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJp
dHkvYWJvdXRCbGFuay93aW5kb3ctb3Blbi1zZWxmLWFib3V0LWJsYW5rLmh0bWwKLWh0dHAvdGVz
dHMvc2VjdXJpdHkvYWJvdXRCbGFuay94c3MtREVOSUVELW5hdmlnYXRlLW9wZW5lci1kb2N1bWVu
dC13cml0ZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0QmxhbmsveHNzLURFTklFRC1u
YXZpZ2F0ZS1vcGVuZXItamF2YXNjcmlwdC11cmwuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9h
Ym91dEJsYW5rL3hzcy1ERU5JRUQtc2V0LW9wZW5lci5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nvb2tpZXMvZG9jdW1lbnQtb3Blbi5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2RhdGFVUkwv
eHNzLURFTklFRC1mcm9tLWRhdGEtdXJsLWluLWZvcmVpZ24tZG9tYWluLXdpbmRvdy1vcGVuLmh0
bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YVVSTC94c3MtREVOSUVELWZyb20tZGF0YS11cmwt
c3ViLWZyYW1lLTItbGV2ZWwuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9kYXRhVVJML3hzcy1E
RU5JRUQtZnJvbS1kYXRhLXVybC1zdWItZnJhbWUtdG8tZGF0YS11cmwtc3ViLWZyYW1lLmh0bWwK
LWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YVVSTC94c3MtREVOSUVELWZyb20tamF2YXNjcmlwdC11
cmwtd2luZG93LW9wZW4uaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9kYXRhVVJML3hzcy1ERU5J
RUQtdG8tZGF0YS11cmwtaW4tZm9yZWlnbi1kb21haW4tc3ViZnJhbWUtbG9jYXRpb24tY2hhbmdl
Lmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YVVSTC94c3MtREVOSUVELXRvLWRhdGEtdXJs
LWluLWZvcmVpZ24tZG9tYWluLXN1YmZyYW1lLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0
YVVSTC94c3MtREVOSUVELXRvLWRhdGEtdXJsLWluLWZvcmVpZ24tZG9tYWluLXdpbmRvdy1vcGVu
Lmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YVVSTC94c3MtREVOSUVELXRvLWRhdGEtdXJs
LXN1Yi1mcmFtZS0yLWxldmVsLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZGF0YVVSTC94c3Mt
REVOSUVELXRvLWRhdGEtdXJsLXdpbmRvdy1vcGVuLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkv
ZnJhbWVOYXZpZ2F0aW9uL25vdC1vcGVuZXIuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9mcmFt
ZU5hdmlnYXRpb24vb3BlbmVyLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvZnJhbWVOYXZpZ2F0
aW9uL3hzcy1BTExPV0VELXRhcmdldGVkLXN1YmZyYW1lLW5hdmlnYXRpb24tY2hhbmdlLmh0bWwK
LWh0dHAvdGVzdHMvc2VjdXJpdHkvZnJhbWVOYXZpZ2F0aW9uL3hzcy1ERU5JRUQtcGx1Z2luLW5h
dmlnYXRpb24uaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9mcmFtZU5hdmlnYXRpb24veHNzLURF
TklFRC10YXJnZXRlZC1saW5rLW5hdmlnYXRpb24uaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9q
YXZhc2NyaXB0VVJML2phdmFzY3JpcHRVUkwtZXhlY3V0aW9uLWNvbnRleHQtZnJhbWUtbG9jYXRp
b24taHRtbGRvbS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHRVUkwvamF2YXNj
cmlwdFVSTC1leGVjdXRpb24tY29udGV4dC1mcmFtZS1zcmMtZ2V0QXR0cmlidXRlLXZhbHVlLmh0
bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC9qYXZhc2NyaXB0VVJMLWV4ZWN1
dGlvbi1jb250ZXh0LWZyYW1lLXNyYy1odG1sZG9tLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkv
amF2YXNjcmlwdFVSTC9qYXZhc2NyaXB0VVJMLWV4ZWN1dGlvbi1jb250ZXh0LWZyYW1lLXNyYy1z
ZXRBdHRyaWJ1dGUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML2phdmFz
Y3JpcHRVUkwtZXhlY3V0aW9uLWNvbnRleHQtZnJhbWUtc3JjLXNldEF0dHJpYnV0ZU5TLmh0bWwK
LWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC9qYXZhc2NyaXB0VVJMLWV4ZWN1dGlv
bi1jb250ZXh0LWZyYW1lLXNyYy1zZXRBdHRyaWJ1dGVOb2RlLmh0bWwKLWh0dHAvdGVzdHMvc2Vj
dXJpdHkvamF2YXNjcmlwdFVSTC9qYXZhc2NyaXB0VVJMLWV4ZWN1dGlvbi1jb250ZXh0LWZyYW1l
LXNyYy1zZXRBdHRyaWJ1dGVOb2RlTlMuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2Ny
aXB0VVJML3hzcy1BTExPV0VELWZyb20tamF2YXNjcmlwdC11cmwtc3ViLWZyYW1lLTItbGV2ZWwu
aHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML3hzcy1BTExPV0VELWZyb20t
amF2YXNjcmlwdC11cmwtc3ViLWZyYW1lLXRvLWphdmFzY3JpcHQtdXJsLXN1Yi1mcmFtZS5odG1s
Ci1odHRwL3Rlc3RzL3NlY3VyaXR5L2phdmFzY3JpcHRVUkwveHNzLUFMTE9XRUQtZnJvbS1qYXZh
c2NyaXB0LXVybC10by1qYXZzY3JpcHQtdXJsLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2
YXNjcmlwdFVSTC94c3MtQUxMT1dFRC1mcm9tLWphdmFzY3JpcHQtdXJsLXdpbmRvdy1vcGVuLmh0
bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC94c3MtQUxMT1dFRC10by1qYXZh
c2NyaXB0LXVybC1mcm9tLWphdnNjcmlwdC11cmwuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9q
YXZhc2NyaXB0VVJML3hzcy1BTExPV0VELXRvLWphdmFzY3JpcHQtdXJsLXN1Yi1mcmFtZS0yLWxl
dmVsLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC94c3MtQUxMT1dFRC10
by1qYXZhc2NyaXB0LXVybC13aW5kb3ctb3Blbi5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L2ph
dmFzY3JpcHRVUkwveHNzLURFTklFRC1mcm9tLWphdmFzY3JpcHQtdXJsLWluLWZvcmVpZ24tZG9t
YWluLXN1YmZyYW1lLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvamF2YXNjcmlwdFVSTC94c3Mt
REVOSUVELWZyb20tamF2YXNjcmlwdC11cmwtaW4tZm9yZWlnbi1kb21haW4td2luZG93LW9wZW4u
aHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9qYXZhc2NyaXB0VVJML3hzcy1ERU5JRUQtdG8tamF2
YXNjcmlwdC11cmwtaW4tZm9yZWlnbi1kb21haW4tc3ViZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9z
ZWN1cml0eS9qYXZhc2NyaXB0VVJML3hzcy1ERU5JRUQtdG8tamF2YXNjcmlwdC11cmwtaW4tZm9y
ZWlnbi1kb21haW4td2luZG93LW9wZW4uaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9saXN0ZW5l
ci94c3Mtd2luZG93LW9uY2xpY2stYWRkRXZlbnRMaXN0ZW5lci5odG1sCiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2xpc3RlbmVyL3hzcy13aW5kb3ctb25jbGljay1zaG9ydGN1dC5odG1sCi1odHRwL3Rl
c3RzL3NlY3VyaXR5L29yaWdpbkhlYWRlci9vcmlnaW4taGVhZGVyLWZvci1lbXB0eS5odG1sCiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvbGluay1vcGVucy1uZXctd2luZG93Lmh0bWwK
IGh0dHAvdGVzdHMvd29ya2Vycy90ZXh0LWVuY29kaW5nLmh0bWwKIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvYWJvcnQtc2hvdWxkLWNhbmNlbC1sb2FkLmh0bWwKQEAgLTM5MDAsNyArMzgzNyw2
IEBAIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtbm9uLXNp
bXBsZS1hbGxvdy5odG1sCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9s
LWJhc2ljLW5vbi1zaW1wbGUtZGVueS1jYWNoZWQuaHRtbAogaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9hY2Nlc3MtY29udHJvbC1iYXNpYy13aGl0ZWxpc3QtcmVxdWVzdC1oZWFkZXJzLmh0bWwK
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYmFzaWMtYXV0aC5odG1sCi1odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L2Nsb3NlLXdpbmRvdy5odG1sCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L2Nvb2tpZXMuaHRtbAogI1dlIGRvbid0IHNlZW0gdG8gc3VwcG9ydCBuZWl0aGVyIG9mIHRoZXNl
IGZvciBub3cKIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLWF1dGhvcml6
YXRpb24uaHRtbApAQCAtMzkxNSw3ICszODUxLDYgQEAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9nZXQtZGFuZ2Vyb3VzLWhlYWRlcnMuaHRtbAogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9t
ZXRob2RzLWFzeW5jLmh0bWwKIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0aG9kcy1sb3dl
ci1jYXNlLmh0bWwKIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0aG9kcy5odG1sCi1odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlcXVlc3QtZnJvbS1wb3B1cC5odG1sCiBodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3Jlc3BvbnNlLWVuY29kaW5nLmh0bWwKIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3Qvc3RhdGUtYWZ0ZXItbmV0d29yay1lcnJvci5odG1sCiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3N0YXR1cy1hZnRlci1hYm9ydC5odG1sCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGZkNDNlZDYuLmNmMjA0N2Ig
MTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMDktMDYtMzAgIEphbiBNaWNoYWVsIEFsb256byAgPGpt
YWxvbnpvQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW0d0a10gQWRkIHN1cHBvcnQgZm9yIGphdmFzY3JpcHQgd2luZG93cyBmb3Ig
RFJUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjcx
OAorCisgICAgICAgIEFkZCBBUEkgdG8gc3VwcG9ydCBvcGVuaW5nIGFuZCBjbG9zaW5nIG9mIEph
dmFTY3JpcHQgd2luZG93cyBhdXRvbWF0aWNhbGx5LgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpj
bG9zZVdpbmRvd1Nvb24pOgorICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6CisgICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJf
c2V0dGluZ3NfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9w
cm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9wcm9wZXJ0eSk6Cisg
ICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NvcHkpOgorICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19yZWFsX2Nsb3NlX3dlYl92
aWV3KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAgICAgICAgKHdl
YmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3
X3NldHRpbmdzX25vdGlmeSk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X2dyb3VwX25h
bWUpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3Lmg6CisKIDIwMDktMDYtMjkgIFhh
biBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbiBB
bG9uem8uCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAK
aW5kZXggNTAyM2Q1Yy4uNTM2MjYyMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmNwcApAQCAtMjE1LDcgKzIxNSwxOCBAQCB2b2lkIENocm9tZUNsaWVu
dDo6c2V0UmVzaXphYmxlKGJvb2wpCiAKIHZvaWQgQ2hyb21lQ2xpZW50OjpjbG9zZVdpbmRvd1Nv
b24oKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgd2Via2l0X3dlYl92aWV3X3N0b3Bf
bG9hZGluZyhtX3dlYlZpZXcpOworCisgICAgZ2Jvb2xlYW4gaXNIYW5kbGVkID0gZmFsc2U7Cisg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgImNsb3NlLXdlYi12aWV3IiwgJmlz
SGFuZGxlZCk7CisKKyAgICBpZiAoaXNIYW5kbGVkKQorICAgICAgICByZXR1cm47CisKKyAgICAv
LyBGSVhNRTogc2hvdWxkIHdlIGNsZWFyIHRoZSBmcmFtZSBncm91cCBuYW1lIGhlcmUgZXhwbGlj
aXRseT8gTWFjIGRvZXMgaXQuCisgICAgLy8gQnV0IHRoaXMgZ2V0cyBjbGVhcmVkIGluIFBhZ2Un
cyBkZXN0cnVjdG9yIGFueXdheS4KKyAgICAvLyB3ZWJraXRfd2ViX3ZpZXdfc2V0X2dyb3VwX25h
bWUobV93ZWJWaWV3LCAiIik7CisgICAgZ19vYmplY3RfdW5yZWYobV93ZWJWaWV3KTsKIH0KIAog
Ym9vbCBDaHJvbWVDbGllbnQ6OmNhblRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbikKZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaCBiL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHByaXZhdGUuaAppbmRleCAxM2ZjZDE2Li5jNTllMTBiIDEwMDY0NAotLS0gYS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0cHJpdmF0ZS5oCkBAIC0yMjQsNiArMjI0LDkgQEAgZXh0ZXJuICJDIiB7CiAgICAgd2Via2l0
X3dlYl92aWV3X2dldF9zZWxlY3RlZF90ZXh0IChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7CiAK
ICAgICBXRUJLSVRfQVBJIHZvaWQKKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X2dyb3VwX25hbWUo
V2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIGNvbnN0IGdjaGFyKiBncm91cF9uYW1lKTsKKworICAg
IFdFQktJVF9BUEkgdm9pZAogICAgIHdlYmtpdF93ZWJfc2V0dGluZ3NfYWRkX2V4dHJhX3BsdWdp
bl9kaXJlY3RvcnkgKFdlYktpdFdlYlZpZXcgKndlYl92aWV3LCBjb25zdCBnY2hhciogZGlyZWN0
b3J5KTsKIAogICAgIEdTTGlzdCoKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnNldHRpbmdzLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNw
cAppbmRleCAyZjE4ODZjLi4xOTJlZjk3IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJzZXR0aW5ncy5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0
dGluZ3MuY3BwCkBAIC0zLDYgKzMsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA4IE51YW50aSBM
dGQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KICAqIENvcHlyaWdodCAo
QykgMjAwOCBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgorICogQ29weXJpZ2h0IChDKSAyMDA5
IEphbiBNaWNoYWVsIEFsb256bwogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC04MSw2ICs4Miw3IEBA
IHN0cnVjdCBfV2ViS2l0V2ViU2V0dGluZ3NQcml2YXRlIHsKICAgICBnYm9vbGVhbiBlbmFibGVf
aHRtbDVfZGF0YWJhc2U7CiAgICAgZ2Jvb2xlYW4gZW5hYmxlX2h0bWw1X2xvY2FsX3N0b3JhZ2U7
CiAgICAgZ2Jvb2xlYW4gZW5hYmxlX3hzc19hdWRpdG9yOworICAgIGdib29sZWFuIGphdmFzY3Jp
cHRfY2FuX29wZW5fd2luZG93czsKIH07CiAKICNkZWZpbmUgV0VCS0lUX1dFQl9TRVRUSU5HU19H
RVRfUFJJVkFURShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJ
VF9UWVBFX1dFQl9TRVRUSU5HUywgV2ViS2l0V2ViU2V0dGluZ3NQcml2YXRlKSkKQEAgLTExNSw3
ICsxMTcsOCBAQCBlbnVtIHsKICAgICBQUk9QX0VOQUJMRV9DQVJFVF9CUk9XU0lORywKICAgICBQ
Uk9QX0VOQUJMRV9IVE1MNV9EQVRBQkFTRSwKICAgICBQUk9QX0VOQUJMRV9IVE1MNV9MT0NBTF9T
VE9SQUdFLAotICAgIFBST1BfRU5BQkxFX1hTU19BVURJVE9SCisgICAgUFJPUF9FTkFCTEVfWFNT
X0FVRElUT1IsCisgICAgUFJPUF9KQVZBU0NSSVBUX0NBTl9PUEVOX1dJTkRPV1MKIH07CiAKIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfc2V0dGluZ3NfZmluYWxpemUoR09iamVjdCogb2JqZWN0KTsK
QEAgLTQ3NCw2ICs0NzcsMjIgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19jbGFz
c19pbml0KFdlYktpdFdlYlNldHRpbmdzQ2xhc3MqIGtsYXNzKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwog
CisgICAgLyoqCisgICAgKiBXZWJLaXRXZWJTZXR0aW5nczpqYXZhc2NyaXB0LWNhbi1vcGVuLXdp
bmRvd3MKKyAgICAqCisgICAgKiBXaGV0aGVyIEphdmFTY3JpcHQgY2FuIG9wZW4gcG9wdXAgd2lu
ZG93cyBhdXRvbWF0aWNhbGx5IHdpdGhvdXQgdXNlcgorICAgICogaW50ZXJ2ZW50aW9uLgorICAg
ICoKKyAgICAqIFNpbmNlIDEuMS4xMQorICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUFJPUF9KQVZBU0NSSVBUX0NBTl9PUEVOX1dJTkRPV1MsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiamF2YXNjcmlwdC1jYW4t
b3Blbi13aW5kb3dzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF8oIkphdmFTY3JpcHQgY2FuIG9wZW4gd2luZG93cyBhdXRvbWF0aWNh
bGx5IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBfKCJXaGV0aGVyIEphdmFTY3JpcHQgY2FuIG9wZW4gd2luZG93cyBhdXRvbWF0aWNh
bGx5IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZsYWdzKSk7CisKICAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUo
a2xhc3MsIHNpemVvZihXZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGUpKTsKIH0KIApAQCAtNjM5LDYg
KzY1OCw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KEdP
YmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgY29uCiAgICAgY2FzZSBQUk9QX0VOQUJMRV9Y
U1NfQVVESVRPUjoKICAgICAgICAgcHJpdi0+ZW5hYmxlX3hzc19hdWRpdG9yID0gZ192YWx1ZV9n
ZXRfYm9vbGVhbih2YWx1ZSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9KQVZBU0NS
SVBUX0NBTl9PUEVOX1dJTkRPV1M6CisgICAgICAgIHByaXYtPmphdmFzY3JpcHRfY2FuX29wZW5f
d2luZG93cyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOworICAgICAgICBicmVhazsKICAg
ICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2Jq
ZWN0LCBwcm9wX2lkLCBwc3BlYyk7CiAgICAgICAgIGJyZWFrOwpAQCAtNzM1LDYgKzc1Nyw5IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9i
amVjdCwgZ3VpbnQgcHJvcF9pZCwgR1ZhCiAgICAgY2FzZSBQUk9QX0VOQUJMRV9YU1NfQVVESVRP
UjoKICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+ZW5hYmxlX3hzc19h
dWRpdG9yKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0pBVkFTQ1JJUFRfQ0FOX09Q
RU5fV0lORE9XUzoKKyAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+amF2
YXNjcmlwdF9jYW5fb3Blbl93aW5kb3dzKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9p
ZCwgcHNwZWMpOwogICAgICAgICBicmVhazsKQEAgLTc5NCw2ICs4MTksNyBAQCBXZWJLaXRXZWJT
ZXR0aW5ncyogd2Via2l0X3dlYl9zZXR0aW5nc19jb3B5KFdlYktpdFdlYlNldHRpbmdzKiB3ZWJf
c2V0dGluZ3MpCiAgICAgICAgICAgICAgICAgICJlbmFibGUtaHRtbDUtZGF0YWJhc2UiLCBwcml2
LT5lbmFibGVfaHRtbDVfZGF0YWJhc2UsCiAgICAgICAgICAgICAgICAgICJlbmFibGUtaHRtbDUt
bG9jYWwtc3RvcmFnZSIsIHByaXYtPmVuYWJsZV9odG1sNV9sb2NhbF9zdG9yYWdlLAogICAgICAg
ICAgICAgICAgICAiZW5hYmxlLXhzcy1hdWRpdG9yIiwgcHJpdi0+ZW5hYmxlX3hzc19hdWRpdG9y
LAorICAgICAgICAgICAgICAgICAiamF2YXNjcmlwdC1jYW4tb3Blbi13aW5kb3dzIiwgcHJpdi0+
amF2YXNjcmlwdF9jYW5fb3Blbl93aW5kb3dzLAogICAgICAgICAgICAgICAgICBOVUxMKSk7CiAK
ICAgICByZXR1cm4gY29weTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5kZXggNWIx
OTg1Ni4uMDBlNGUxYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmll
dy5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTExNyw2
ICsxMTcsNyBAQCBlbnVtIHsKICAgICBNSU1FX1RZUEVfUE9MSUNZX0RFQ0lTSU9OX1JFUVVFU1RF
RCwKICAgICBDUkVBVEVfV0VCX1ZJRVcsCiAgICAgV0VCX1ZJRVdfUkVBRFksCisgICAgQ0xPU0Vf
V0VCX1ZJRVcsCiAgICAgV0lORE9XX09CSkVDVF9DTEVBUkVELAogICAgIExPQURfU1RBUlRFRCwK
ICAgICBMT0FEX0NPTU1JVFRFRCwKQEAgLTY5MCw2ICs2OTEsMTEgQEAgc3RhdGljIGdib29sZWFu
IHdlYmtpdF93ZWJfdmlld19yZWFsX3dlYl92aWV3X3JlYWR5KFdlYktpdFdlYlZpZXcqKQogICAg
IHJldHVybiBGQUxTRTsKIH0KIAorc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19yZWFs
X2Nsb3NlX3dlYl92aWV3KFdlYktpdFdlYlZpZXcqKQoreworICAgIHJldHVybiBGQUxTRTsKK30K
Kwogc3RhdGljIFdlYktpdE5hdmlnYXRpb25SZXNwb25zZSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9u
YXZpZ2F0aW9uX3JlcXVlc3RlZChXZWJLaXRXZWJWaWV3KiwgV2ViS2l0V2ViRnJhbWUqLCBXZWJL
aXROZXR3b3JrUmVxdWVzdCopCiB7CiAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1JFU1BP
TlNFX0FDQ0VQVDsKQEAgLTExMTAsNiArMTExNiwyNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2Vi
X3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAg
ICAgICAgIEdfVFlQRV9CT09MRUFOLCAwKTsKIAogICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZp
ZXc6OmNsb3NlLXdlYi12aWV3OgorICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCBvbiB3aGlj
aCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKKyAgICAgKiBAcmV0dXJuOiAlVFJVRSB0byBzdG9wIGhh
bmRsZXJzIGZyb20gYmVpbmcgaW52b2tlZCBmb3IgdGhlIGV2ZW50IG9yCisgICAgICogJUZBTFNF
IHRvIHByb3BhZ2F0ZSB0aGUgZXZlbnQgZnVydGVyCisgICAgICoKKyAgICAgKiBFbWl0dGVkIHdo
ZW4gY2xvc2luZyBhIFdlYlZpZXcgaXMgcmVxdWVzdGVkLiBUaGlzIG9jY3VycyB3aGVuIGEgY2Fs
bAorICAgICAqIGlzIG1hZGUgZnJvbSBKYXZhU2NyaXB0J3Mgd2luZG93LmNsb3NlIGZ1bmN0aW9u
LgorICAgICAqCisgICAgICogU2luY2UgMS4xLjExCisgICAgICovCisgICAgd2Via2l0X3dlYl92
aWV3X3NpZ25hbHNbQ0xPU0VfV0VCX1ZJRVddID0gZ19zaWduYWxfbmV3KCJjbG9zZS13ZWItdmll
dyIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAorICAgICAg
ICAgICAgKEdTaWduYWxGbGFncylHX1NJR05BTF9SVU5fTEFTVCwKKyAgICAgICAgICAgIEdfU1RS
VUNUX09GRlNFVCAoV2ViS2l0V2ViVmlld0NsYXNzLCBjbG9zZV93ZWJfdmlldyksCisgICAgICAg
ICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCisgICAgICAgICAgICBOVUxM
LAorICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fVk9JRCwKKyAgICAgICAgICAg
IEdfVFlQRV9CT09MRUFOLCAwKTsKKworICAgIC8qKgogICAgICAqIFdlYktpdFdlYlZpZXc6Om5h
dmlnYXRpb24tcmVxdWVzdGVkOgogICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCBvbiB3aGlj
aCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKICAgICAgKiBAZnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJh
bWUgdGhhdCByZXF1aXJlZCB0aGUgbmF2aWdhdGlvbgpAQCAtMTcyMCw2ICsxNzQ2LDcgQEAgc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3
ZWJWaWV3Q2xhc3MpCiAgICAgICovCiAgICAgd2ViVmlld0NsYXNzLT5jcmVhdGVfd2ViX3ZpZXcg
PSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9jcmVhdGVfd2ViX3ZpZXc7CiAgICAgd2ViVmlld0NsYXNz
LT53ZWJfdmlld19yZWFkeSA9IHdlYmtpdF93ZWJfdmlld19yZWFsX3dlYl92aWV3X3JlYWR5Owor
ICAgIHdlYlZpZXdDbGFzcy0+Y2xvc2Vfd2ViX3ZpZXcgPSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9j
bG9zZV93ZWJfdmlldzsKICAgICB3ZWJWaWV3Q2xhc3MtPm5hdmlnYXRpb25fcmVxdWVzdGVkID0g
d2Via2l0X3dlYl92aWV3X3JlYWxfbmF2aWdhdGlvbl9yZXF1ZXN0ZWQ7CiAgICAgd2ViVmlld0Ns
YXNzLT53aW5kb3dfb2JqZWN0X2NsZWFyZWQgPSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF93aW5kb3df
b2JqZWN0X2NsZWFyZWQ7CiAgICAgd2ViVmlld0NsYXNzLT5jaG9vc2VfZmlsZSA9IHdlYmtpdF93
ZWJfdmlld19yZWFsX2Nob29zZV9maWxlOwpAQCAtMjA1MCw3ICsyMDc3LDcgQEAgc3RhdGljIHZv
aWQgd2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
KQogICAgIGdib29sZWFuIGF1dG9Mb2FkSW1hZ2VzLCBhdXRvU2hyaW5rSW1hZ2VzLCBwcmludEJh
Y2tncm91bmRzLAogICAgICAgICBlbmFibGVTY3JpcHRzLCBlbmFibGVQbHVnaW5zLCBlbmFibGVE
ZXZlbG9wZXJFeHRyYXMsIHJlc2l6YWJsZVRleHRBcmVhcywKICAgICAgICAgZW5hYmxlUHJpdmF0
ZUJyb3dzaW5nLCBlbmFibGVDYXJldEJyb3dzaW5nLCBlbmFibGVIVE1MNURhdGFiYXNlLCBlbmFi
bGVIVE1MNUxvY2FsU3RvcmFnZSwKLSAgICAgICAgZW5hYmxlWFNTQXVkaXRvcjsKKyAgICAgICAg
ZW5hYmxlWFNTQXVkaXRvciwgamF2YXNjcmlwdENhbk9wZW5XaW5kb3dzOwogCiAgICAgZ19vYmpl
Y3RfZ2V0KHdlYlNldHRpbmdzLAogICAgICAgICAgICAgICAgICAiZGVmYXVsdC1lbmNvZGluZyIs
ICZkZWZhdWx0RW5jb2RpbmcsCkBAIC0yMDczLDYgKzIxMDAsNyBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAg
ICAgICAgICAgICAgICJlbmFibGUtaHRtbDUtZGF0YWJhc2UiLCAmZW5hYmxlSFRNTDVEYXRhYmFz
ZSwKICAgICAgICAgICAgICAgICAgImVuYWJsZS1odG1sNS1sb2NhbC1zdG9yYWdlIiwgJmVuYWJs
ZUhUTUw1TG9jYWxTdG9yYWdlLAogICAgICAgICAgICAgICAgICAiZW5hYmxlLXhzcy1hdWRpdG9y
IiwgJmVuYWJsZVhTU0F1ZGl0b3IsCisgICAgICAgICAgICAgICAgICJqYXZhc2NyaXB0LWNhbi1v
cGVuLXdpbmRvd3MiLCAmamF2YXNjcmlwdENhbk9wZW5XaW5kb3dzLAogICAgICAgICAgICAgICAg
ICBOVUxMKTsKIAogICAgIHNldHRpbmdzLT5zZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShkZWZh
dWx0RW5jb2RpbmcpOwpAQCAtMjA5NSw2ICsyMTIzLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl92aWV3X3VwZGF0ZV9zZXR0aW5ncyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHNldHRp
bmdzLT5zZXREYXRhYmFzZXNFbmFibGVkKGVuYWJsZUhUTUw1RGF0YWJhc2UpOwogICAgIHNldHRp
bmdzLT5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKGVuYWJsZUhUTUw1TG9jYWxTdG9yYWdlKTsKICAg
ICBzZXR0aW5ncy0+c2V0WFNTQXVkaXRvckVuYWJsZWQoZW5hYmxlWFNTQXVkaXRvcik7CisgICAg
c2V0dGluZ3MtPnNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoamF2YXNj
cmlwdENhbk9wZW5XaW5kb3dzKTsKIAogICAgIGdfZnJlZShkZWZhdWx0RW5jb2RpbmcpOwogICAg
IGdfZnJlZShjdXJzaXZlRm9udEZhbWlseSk7CkBAIC0yMTczLDYgKzIyMDIsOCBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90aWZ5KFdlYktpdFdlYlNldHRpbmdzKiB3
ZWJTZXR0aW5ncywgR1BhcgogICAgICAgICBzZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlRW5hYmxl
ZChnX3ZhbHVlX2dldF9ib29sZWFuKCZ2YWx1ZSkpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gZ19p
bnRlcm5fc3RyaW5nKCJlbmFibGUteHNzLWF1ZGl0b3IiKSkKICAgICAgICAgc2V0dGluZ3MtPnNl
dFhTU0F1ZGl0b3JFbmFibGVkKGdfdmFsdWVfZ2V0X2Jvb2xlYW4oJnZhbHVlKSk7CisgICAgZWxz
ZSBpZiAobmFtZSA9PSBnX2ludGVybl9zdHJpbmcoImphdmFzY3JpcHQtY2FuLW9wZW4td2luZG93
cyIpKQorICAgICAgICBzZXR0aW5ncy0+c2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21h
dGljYWxseShnX3ZhbHVlX2dldF9ib29sZWFuKCZ2YWx1ZSkpOwogICAgIGVsc2UgaWYgKCFnX29i
amVjdF9jbGFzc19maW5kX3Byb3BlcnR5KEdfT0JKRUNUX0dFVF9DTEFTUyh3ZWJTZXR0aW5ncyks
IG5hbWUpKQogICAgICAgICBnX3dhcm5pbmcoIlVuZXhwZWN0ZWQgc2V0dGluZyAnJXMnIiwgbmFt
ZSk7CiAgICAgZ192YWx1ZV91bnNldCgmdmFsdWUpOwpAQCAtMzM4MCwzICszNDExLDE1IEBAIHZv
aWQgd2Via2l0X3dlYl92aWV3X21vdmVfY3Vyc29yKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEd0
a01vdmVtZW50U3RlcCBzdGVwLCBnCiAgICAgZ2Jvb2xlYW4gaGFuZGxlZDsKICAgICBnX3NpZ25h
bF9lbWl0KHdlYlZpZXcsIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW01PVkVfQ1VSU09SXSwgMCwg
c3RlcCwgY291bnQsICZoYW5kbGVkKTsKIH0KKwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2dy
b3VwX25hbWUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgZ2NoYXIqIGdyb3VwTmFtZSkK
K3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisK
KyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7CisKKyAgICBp
ZiAoIXByaXYtPmNvcmVQYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBwcml2LT5jb3JlUGFn
ZS0+c2V0R3JvdXBOYW1lKFN0cmluZzo6ZnJvbVVURjgoZ3JvdXBOYW1lKSk7Cit9CmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmggYi9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJ2aWV3LmgKaW5kZXggNjBkMzMwZS4uNThlYzVjZCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5oCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYnZpZXcuaApAQCAtNzQsNiArNzQsOCBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdDbGFz
cyB7CiAKICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgICAoKiB3ZWJfdmlld19yZWFkeSkg
ICAgICAgICAgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKIAorICAgIGdib29sZWFuICAgICAg
ICAgICAgICAgICAgICgqIGNsb3NlX3dlYl92aWV3KSAgICAgICAgIChXZWJLaXRXZWJWaWV3KiB3
ZWJfdmlldyk7CisKICAgICBXZWJLaXROYXZpZ2F0aW9uUmVzcG9uc2UgICAoKiBuYXZpZ2F0aW9u
X3JlcXVlc3RlZCkgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRX
ZWJGcmFtZSAgICAgICAqZnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0ICpyZXF1ZXN0KTsK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAwZjUzNTExLi5iYWQzYzQyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMDktMDYt
MzAgIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gQWRkIHN1cHBvcnQg
Zm9yIGphdmFzY3JpcHQgd2luZG93cyBmb3IgRFJUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjcxOAorCisgICAgICAgIFN1cHBvcnQgcnVubmluZyBv
ZiB0ZXN0cyB0aGF0IG9wZW4gYW5kIGNsb3NlIEpTIHdpbmRvd3MgYXV0b21hdGljYWxseS4KKwor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAg
IChkdW1wRnJhbWVzQXNUZXh0KToKKyAgICAgICAgKGR1bXBCYWNrRm9yd2FyZExpc3RGb3JBbGxX
ZWJWaWV3cyk6CisgICAgICAgIChyZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRl
c3RpbmcpOgorICAgICAgICAoZHVtcCk6CisgICAgICAgIChydW5UZXN0KToKKyAgICAgICAgKHdl
YlZpZXdDbG9zZSk6CisgICAgICAgIChjcmVhdGVXZWJWaWV3KToKKyAgICAgICAgKHdlYlZpZXdD
cmVhdGUpOgorICAgICAgICAobWFpbik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1
bXBSZW5kZXJUcmVlR3RrLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRl
c3RDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjp3aW5k
b3dDb3VudCk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UG9wdXBCbG9ja2lu
Z0VuYWJsZWQpOgorCiAyMDA5LTA2LTMwICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4K
IAogICAgICAgICBUeXBvIGZpeCBvbmx5LCBubyByZXZpZXcuCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBhYmRlY2Y2Li40OTFl
NTViIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRl
clRyZWUuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVy
VHJlZS5jcHAKQEAgLTU5LDYgKzU5LDcgQEAgZXh0ZXJuIGdjaGFyKiB3ZWJraXRfd2ViX2ZyYW1l
X2R1bXBfcmVuZGVyX3RyZWUoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKTsKIGV4dGVybiB2b2lkIHdl
YmtpdF93ZWJfc2V0dGluZ3NfYWRkX2V4dHJhX3BsdWdpbl9kaXJlY3RvcnkoV2ViS2l0V2ViVmll
dyogdmlldywgY29uc3QgZ2NoYXIqIGRpcmVjdG9yeSk7CiBleHRlcm4gZ2NoYXIqIHdlYmtpdF93
ZWJfZnJhbWVfZ2V0X3Jlc3BvbnNlX21pbWVfdHlwZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpOwog
ZXh0ZXJuIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9jbGVhcl9tYWluX2ZyYW1lX25hbWUoV2ViS2l0
V2ViRnJhbWUqIGZyYW1lKTsKK2V4dGVybiB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfZ3JvdXBf
bmFtZShXZWJLaXRXZWJWaWV3KiB2aWV3LCBjb25zdCBnY2hhciogZ3JvdXBOYW1lKTsKIH0KIAog
dm9sYXRpbGUgYm9vbCBkb25lOwpAQCAtNzQsNiArNzUsOSBAQCBXZWJLaXRXZWJGcmFtZSogdG9w
TG9hZGluZ0ZyYW1lID0gMDsKIGd1aW50IHdhaXRUb0R1bXBXYXRjaGRvZyA9IDA7CiBib29sIHdh
aXRGb3JQb2xpY3kgPSBmYWxzZTsKIAorLy8gVGhpcyBpcyBhIGxpc3Qgb2Ygb3BlbmVkIHdlYnZp
ZXdzCitHU0xpc3QqIHdlYlZpZXdMaXN0ID0gMDsKKwogLy8gY3VycmVudCBiL2YgaXRlbSBhdCB0
aGUgZW5kIG9mIHRoZSBwcmV2aW91cyB0ZXN0CiBzdGF0aWMgV2ViS2l0V2ViSGlzdG9yeUl0ZW0q
IHByZXZUZXN0QkZJdGVtID0gTlVMTDsKIApAQCAtMTMzLDcgKzEzNyw3IEBAIHN0YXRpYyBnY2hh
ciogZHVtcEZyYW1lc0FzVGV4dChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiAgICAgaWYgKGdMYXlv
dXRUZXN0Q29udHJvbGxlci0+ZHVtcENoaWxkRnJhbWVzQXNUZXh0KCkpIHsKICAgICAgICAgR1NM
aXN0KiBjaGlsZHJlbiA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2NoaWxkcmVuKGZyYW1lKTsKICAg
ICAgICAgZm9yIChHU0xpc3QqIGNoaWxkID0gY2hpbGRyZW47IGNoaWxkOyBjaGlsZCA9IGdfc2xp
c3RfbmV4dChjaGlsZCkpCi0gICAgICAgICAgIGFwcGVuZFN0cmluZyhyZXN1bHQsIGR1bXBGcmFt
ZXNBc1RleHQoKFdlYktpdFdlYkZyYW1lKiljaGlsZHJlbi0+ZGF0YSkpOworICAgICAgICAgICAg
YXBwZW5kU3RyaW5nKHJlc3VsdCwgZHVtcEZyYW1lc0FzVGV4dChzdGF0aWNfY2FzdDxXZWJLaXRX
ZWJGcmFtZSogPihjaGlsZC0+ZGF0YSkpKTsKICAgICAgICAgZ19zbGlzdF9mcmVlKGNoaWxkcmVu
KTsKICAgICB9CiAKQEAgLTIxNSw2ICsyMTksMTcgQEAgc3RhdGljIHZvaWQgZHVtcEJhY2tGb3J3
YXJkTGlzdEZvcldlYlZpZXcoV2ViS2l0V2ViVmlldyogdmlldykKICAgICBwcmludGYoIj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iKTsKIH0KIAorc3Rh
dGljIHZvaWQgZHVtcEJhY2tGb3J3YXJkTGlzdEZvckFsbFdlYlZpZXdzKCkKK3sKKyAgICAvLyBE
dW1wIHRoZSBiYWNrIGZvcndhcmQgbGlzdCBvZiB0aGUgbWFpbiBXZWJWaWV3IGZpcnN0CisgICAg
ZHVtcEJhY2tGb3J3YXJkTGlzdEZvcldlYlZpZXcod2ViVmlldyk7CisKKyAgICAvLyBUaGUgdmll
dyBsaXN0IGlzIHByZXBlbmRlZC4gUmV2ZXJzZSB0aGUgbGlzdCBzbyB3ZSBnZXQgdGhlIG9yZGVy
IHJpZ2h0LgorICAgIEdTTGlzdCogdmlld0xpc3QgPSBnX3NsaXN0X3JldmVyc2Uod2ViVmlld0xp
c3QpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBnX3NsaXN0X2xlbmd0aCh2aWV3TGlz
dCk7ICsraSkKKyAgICAgICAgZHVtcEJhY2tGb3J3YXJkTGlzdEZvcldlYlZpZXcoV0VCS0lUX1dF
Ql9WSUVXKGdfc2xpc3RfbnRoX2RhdGEodmlld0xpc3QsIGkpKSk7Cit9CisKIHN0YXRpYyB2b2lk
IGludmFsaWRhdGVBbnlQcmV2aW91c1dhaXRUb0R1bXBXYXRjaGRvZygpCiB7CiAgICAgaWYgKHdh
aXRUb0R1bXBXYXRjaGRvZykgewpAQCAtMjM1LDYgKzI1MCw3IEBAIHN0YXRpYyB2b2lkIHJlc2V0
V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAgICAgICAgICAgICAgICAg
ICJlbmFibGUtaHRtbDUtZGF0YWJhc2UiLCBUUlVFLAogICAgICAgICAgICAgICAgICAiZW5hYmxl
LWh0bWw1LWxvY2FsLXN0b3JhZ2UiLCBUUlVFLAogICAgICAgICAgICAgICAgICAiZW5hYmxlLXhz
cy1hdWRpdG9yIiwgVFJVRSwKKyAgICAgICAgICAgICAgICAgImphdmFzY3JpcHQtY2FuLW9wZW4t
d2luZG93cyIsIFRSVUUsCiAgICAgICAgICAgICAgICAgIE5VTEwpOwogCiAgICAgd2Via2l0X3dl
Yl9mcmFtZV9jbGVhcl9tYWluX2ZyYW1lX25hbWUobWFpbkZyYW1lKTsKQEAgLTI4MywxMSArMjk5
LDggQEAgdm9pZCBkdW1wKCkKICAgICAgICAgICAgIGlmICghZ0xheW91dFRlc3RDb250cm9sbGVy
LT5kdW1wQXNUZXh0KCkgJiYgIWdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcERPTUFzV2ViQXJj
aGl2ZSgpICYmICFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBTb3VyY2VBc1dlYkFyY2hpdmUo
KSkKICAgICAgICAgICAgICAgICBkdW1wRnJhbWVTY3JvbGxQb3NpdGlvbihtYWluRnJhbWUpOwog
Ci0gICAgICAgICAgICBpZiAoZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wQmFja0ZvcndhcmRM
aXN0KCkpIHsKLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogbXVsdGlwbGUgd2luZG93cyBzdXBw
b3J0Ci0gICAgICAgICAgICAgICAgZHVtcEJhY2tGb3J3YXJkTGlzdEZvcldlYlZpZXcod2ViVmll
dyk7Ci0KLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChnTGF5b3V0VGVzdENvbnRyb2xs
ZXItPmR1bXBCYWNrRm9yd2FyZExpc3QoKSkKKyAgICAgICAgICAgICAgICBkdW1wQmFja0Zvcndh
cmRMaXN0Rm9yQWxsV2ViVmlld3MoKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChwcmludFNl
cGFyYXRvcnMpIHsKQEAgLTM5MSw2ICs0MDQsMTcgQEAgc3RhdGljIHZvaWQgcnVuVGVzdChjb25z
dCBzdHJpbmcmIHRlc3RQYXRoT3JVUkwpCiAgICAgd2hpbGUgKCFkb25lKQogICAgICAgICBnX21h
aW5fY29udGV4dF9pdGVyYXRpb24oTlVMTCwgVFJVRSk7CiAKKworICAgIC8vIEFsc28gY2hlY2sg
aWYgd2Ugc3RpbGwgaGF2ZSBvcGVuZWQgd2ViVmlld3MgYW5kIGZyZWUgdGhlbS4KKyAgICBpZiAo
Z0xheW91dFRlc3RDb250cm9sbGVyLT5jbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUo
KSB8fCB3ZWJWaWV3TGlzdCkgeworICAgICAgICB3aGlsZSAod2ViVmlld0xpc3QpIHsKKyAgICAg
ICAgICAgIGdfb2JqZWN0X3VucmVmKFdFQktJVF9XRUJfVklFVyh3ZWJWaWV3TGlzdC0+ZGF0YSkp
OworICAgICAgICAgICAgd2ViVmlld0xpc3QgPSBnX3NsaXN0X25leHQod2ViVmlld0xpc3QpOwor
ICAgICAgICB9CisgICAgICAgIGdfc2xpc3RfZnJlZSh3ZWJWaWV3TGlzdCk7CisgICAgICAgIHdl
YlZpZXdMaXN0ID0gMDsKKyAgICB9CisKICAgICAvLyBBIGJsYW5rIGxvYWQgc2VlbXMgdG8gYmUg
bmVjZXNzYXJ5IHRvIHJlc2V0IHN0YXRlIGFmdGVyIGNlcnRhaW4gdGVzdHMuCiAgICAgd2Via2l0
X3dlYl92aWV3X29wZW4od2ViVmlldywgImFib3V0OmJsYW5rIik7CiAKQEAgLTUyOSw2ICs1NTMs
NTkgQEAgc3RhdGljIHZvaWQgd2ViVmlld1N0YXR1c0JhclRleHRDaGFuZ2VkKFdlYktpdFdlYlZp
ZXcqIHZpZXcsIGNvbnN0IGdjaGFyKiBtZXNzYWcKICAgICB9CiB9CiAKK3N0YXRpYyBnYm9vbGVh
biB3ZWJWaWV3Q2xvc2UoV2ViS2l0V2ViVmlldyogdmlldykKK3sKKyAgICBBU1NFUlQodmlldyk7
CisKKyAgICB3ZWJWaWV3TGlzdCA9IGdfc2xpc3RfcmVtb3ZlKHdlYlZpZXdMaXN0LCB2aWV3KTsK
KyAgICBnX29iamVjdF91bnJlZih2aWV3KTsKKworICAgIHJldHVybiBUUlVFOworfQorCisKK3N0
YXRpYyBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3Q3JlYXRlKFdlYktpdFdlYlZpZXcqLCBXZWJLaXRX
ZWJGcmFtZSopOworCitzdGF0aWMgV2ViS2l0V2ViVmlldyogY3JlYXRlV2ViVmlldygpCit7Cisg
ICAgV2ViS2l0V2ViVmlldyogdmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJraXRfd2ViX3ZpZXdf
bmV3KCkpOworCisgICAgLy8gRnJvbSBidWcgMTE3NTY6IFVzZSBhIGZyYW1lIGdyb3VwIG5hbWUg
Zm9yIGFsbCBXZWJWaWV3cyBjcmVhdGVkIGJ5CisgICAgLy8gRHVtcFJlbmRlclRyZWUgdG8gYWxs
b3cgdGVzdGluZyBvZiBjcm9zcy1wYWdlIGZyYW1lIGxvb2t1cC4KKyAgICB3ZWJraXRfd2ViX3Zp
ZXdfc2V0X2dyb3VwX25hbWUodmlldywgIm9yZy53ZWJraXQuZ3RrLkR1bXBSZW5kZXJUcmVlIik7
CisKKyAgICBnX29iamVjdF9jb25uZWN0KEdfT0JKRUNUKHZpZXcpLAorICAgICAgICAgICAgICAg
ICAgICAgInNpZ25hbDo6bG9hZC1zdGFydGVkIiwgd2ViVmlld0xvYWRTdGFydGVkLCAwLAorICAg
ICAgICAgICAgICAgICAgICAgInNpZ25hbDo6bG9hZC1maW5pc2hlZCIsIHdlYlZpZXdMb2FkRmlu
aXNoZWQsIDAsCisgICAgICAgICAgICAgICAgICAgICAic2lnbmFsOjp3aW5kb3ctb2JqZWN0LWNs
ZWFyZWQiLCB3ZWJWaWV3V2luZG93T2JqZWN0Q2xlYXJlZCwgMCwKKyAgICAgICAgICAgICAgICAg
ICAgICJzaWduYWw6OmNvbnNvbGUtbWVzc2FnZSIsIHdlYlZpZXdDb25zb2xlTWVzc2FnZSwgMCwK
KyAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OnNjcmlwdC1hbGVydCIsIHdlYlZpZXdTY3Jp
cHRBbGVydCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OnNjcmlwdC1wcm9tcHQi
LCB3ZWJWaWV3U2NyaXB0UHJvbXB0LCAwLAorICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6
c2NyaXB0LWNvbmZpcm0iLCB3ZWJWaWV3U2NyaXB0Q29uZmlybSwgMCwKKyAgICAgICAgICAgICAg
ICAgICAgICJzaWduYWw6OnRpdGxlLWNoYW5nZWQiLCB3ZWJWaWV3VGl0bGVDaGFuZ2VkLCAwLAor
ICAgICAgICAgICAgICAgICAgICAgInNpZ25hbDo6bmF2aWdhdGlvbi1wb2xpY3ktZGVjaXNpb24t
cmVxdWVzdGVkIiwgd2ViVmlld05hdmlnYXRpb25Qb2xpY3lEZWNpc2lvblJlcXVlc3RlZCwgMCwK
KyAgICAgICAgICAgICAgICAgICAgICJzaWduYWw6OnN0YXR1cy1iYXItdGV4dC1jaGFuZ2VkIiwg
d2ViVmlld1N0YXR1c0JhclRleHRDaGFuZ2VkLCAwLAorICAgICAgICAgICAgICAgICAgICAgInNp
Z25hbDo6Y3JlYXRlLXdlYi12aWV3Iiwgd2ViVmlld0NyZWF0ZSwgMCwKKyAgICAgICAgICAgICAg
ICAgICAgICJzaWduYWw6OmNsb3NlLXdlYi12aWV3Iiwgd2ViVmlld0Nsb3NlLCAwLAorICAgICAg
ICAgICAgICAgICAgICAgTlVMTCk7CisKKyAgICByZXR1cm4gdmlldzsKK30KKworc3RhdGljIFdl
YktpdFdlYlZpZXcqIHdlYlZpZXdDcmVhdGUoV2ViS2l0V2ViVmlldyogdmlldywgV2ViS2l0V2Vi
RnJhbWUqIGZyYW1lKQoreworICAgIGlmICghZ0xheW91dFRlc3RDb250cm9sbGVyLT5jYW5PcGVu
V2luZG93cygpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHdh
aXRVbnRpbERvbmUgaGFzIGJlZW4gY2FsbGVkLgorICAgIEFTU0VSVChnTGF5b3V0VGVzdENvbnRy
b2xsZXItPndhaXRUb0R1bXAoKSk7CisKKyAgICBXZWJLaXRXZWJWaWV3KiBuZXdXZWJWaWV3ID0g
Y3JlYXRlV2ViVmlldygpOworICAgIGdfb2JqZWN0X3JlZl9zaW5rKEdfT0JKRUNUKG5ld1dlYlZp
ZXcpKTsKKyAgICB3ZWJWaWV3TGlzdCA9IGdfc2xpc3RfcHJlcGVuZCh3ZWJWaWV3TGlzdCwgbmV3
V2ViVmlldyk7CisgICAgcmV0dXJuIG5ld1dlYlZpZXc7Cit9CisKIGludCBtYWluKGludCBhcmdj
LCBjaGFyKiBhcmd2W10pCiB7CiAgICAgZ190aHJlYWRfaW5pdChOVUxMKTsKQEAgLTU1NiwyMyAr
NjMzLDEyIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgZ3RrX2NvbnRh
aW5lcl9hZGQoR1RLX0NPTlRBSU5FUih3aW5kb3cpLCBjb250YWluZXIpOwogICAgIGd0a193aWRn
ZXRfcmVhbGl6ZSh3aW5kb3cpOwogCi0gICAgd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3ZWJr
aXRfd2ViX3ZpZXdfbmV3KCkpOworICAgIHdlYlZpZXcgPSBjcmVhdGVXZWJWaWV3KCk7CiAgICAg
Z3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihjb250YWluZXIpLCBHVEtfV0lER0VUKHdl
YlZpZXcpKTsKICAgICBndGtfd2lkZ2V0X3JlYWxpemUoR1RLX1dJREdFVCh3ZWJWaWV3KSk7CiAg
ICAgZ3RrX3dpZGdldF9zaG93X2FsbChjb250YWluZXIpOwogICAgIG1haW5GcmFtZSA9IHdlYmtp
dF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZSh3ZWJWaWV3KTsKIAotICAgIGdfc2lnbmFsX2Nvbm5l
Y3QoR19PQkpFQ1Qod2ViVmlldyksICJsb2FkLXN0YXJ0ZWQiLCBHX0NBTExCQUNLKHdlYlZpZXdM
b2FkU3RhcnRlZCksIDApOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1Qod2ViVmlldyks
ICJsb2FkLWZpbmlzaGVkIiwgR19DQUxMQkFDSyh3ZWJWaWV3TG9hZEZpbmlzaGVkKSwgMCk7Ci0g
ICAgZ19zaWduYWxfY29ubmVjdChHX09CSkVDVCh3ZWJWaWV3KSwgIndpbmRvdy1vYmplY3QtY2xl
YXJlZCIsIEdfQ0FMTEJBQ0sod2ViVmlld1dpbmRvd09iamVjdENsZWFyZWQpLCAwKTsKLSAgICBn
X3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKHdlYlZpZXcpLCAiY29uc29sZS1tZXNzYWdlIiwgR19D
QUxMQkFDSyh3ZWJWaWV3Q29uc29sZU1lc3NhZ2UpLCAwKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0
KEdfT0JKRUNUKHdlYlZpZXcpLCAic2NyaXB0LWFsZXJ0IiwgR19DQUxMQkFDSyh3ZWJWaWV3U2Ny
aXB0QWxlcnQpLCAwKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KEdfT0JKRUNUKHdlYlZpZXcpLCAi
c2NyaXB0LXByb21wdCIsIEdfQ0FMTEJBQ0sod2ViVmlld1NjcmlwdFByb21wdCksIDApOwotICAg
IGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1Qod2ViVmlldyksICJzY3JpcHQtY29uZmlybSIsIEdf
Q0FMTEJBQ0sod2ViVmlld1NjcmlwdENvbmZpcm0pLCAwKTsKLSAgICBnX3NpZ25hbF9jb25uZWN0
KEdfT0JKRUNUKHdlYlZpZXcpLCAidGl0bGUtY2hhbmdlZCIsIEdfQ0FMTEJBQ0sod2ViVmlld1Rp
dGxlQ2hhbmdlZCksIDApOwotICAgIGdfc2lnbmFsX2Nvbm5lY3QoR19PQkpFQ1Qod2ViVmlldyks
ICJuYXZpZ2F0aW9uLXBvbGljeS1kZWNpc2lvbi1yZXF1ZXN0ZWQiLCBHX0NBTExCQUNLKHdlYlZp
ZXdOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25SZXF1ZXN0ZWQpLCAwKTsKLSAgICBnX3NpZ25hbF9j
b25uZWN0KEdfT0JKRUNUKHdlYlZpZXcpLCAic3RhdHVzLWJhci10ZXh0LWNoYW5nZWQiLCBHX0NB
TExCQUNLKHdlYlZpZXdTdGF0dXNCYXJUZXh0Q2hhbmdlZCksIDApOwotCiAgICAgc2V0RGVmYXVs
dHNUb0NvbnNpc3RlbnRTdGF0ZVZhbHVlc0ZvclRlc3RpbmcoKTsKIAogICAgIGlmIChhcmdjID09
IG9wdGluZCsxICYmIHN0cmNtcChhcmd2W29wdGluZF0sICItIikgPT0gMCkgewpAQCAtNTk0LDUg
KzY2MCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgICAgICBy
dW5UZXN0KGFyZ3ZbaV0pOwogICAgIH0KIAorICAgIGdfb2JqZWN0X3VucmVmKHdlYlZpZXcpOwor
CiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvRHVtcFJlbmRlclRyZWVHdGsuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9EdW1wUmVuZGVyVHJlZUd0ay5oCmluZGV4IDJjZTAxNGYuLjdhNWE0Y2YgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZUd0ay5oCisrKyBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZUd0ay5oCkBAIC0z
MiwxMCArMzIsMTMgQEAKICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgogCisjaW5jbHVkZSA8Z2xpYi5oPgorCiBleHRl
cm4gV2ViS2l0V2ViRnJhbWUqIG1haW5GcmFtZTsKIGV4dGVybiBXZWJLaXRXZWJGcmFtZSogdG9w
TG9hZGluZ0ZyYW1lOwogZXh0ZXJuIGd1aW50IHdhaXRUb0R1bXBXYXRjaGRvZzsKIGV4dGVybiBi
b29sIHdhaXRGb3JQb2xpY3k7CitleHRlcm4gR1NMaXN0KiB3ZWJWaWV3TGlzdDsKIAogZ2NoYXIq
IEpTU3RyaW5nQ29weVVURjhDU3RyaW5nKEpTU3RyaW5nUmVmIGpzU3RyaW5nKTsKIApkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVy
R3RrLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJv
bGxlckd0ay5jcHAKaW5kZXggNDA5OTJjNi4uNDY3YWFlYiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3Bw
CkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3
ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA4IE51YW50aSBMdGQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDkgSmFuIE1pY2hhZWwgQWxvbnpvIDxqbWFsb256b0BnbWFpbC5jb20+CiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzMCw4ICsyMzEsOCBAQCB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRXYWl0VG9EdW1wKGJvb2wgd2FpdFVudGlsRG9uZSkKIAogaW50
IExheW91dFRlc3RDb250cm9sbGVyOjp3aW5kb3dDb3VudCgpCiB7Ci0gICAgLy8gRklYTUU6IGlt
cGxlbWVudAotICAgIHJldHVybiAxOworICAgIC8vICsxIC0+IGluY2x1ZGluZyB0aGUgbWFpbiB2
aWV3CisgICAgcmV0dXJuIGdfc2xpc3RfbGVuZ3RoKHdlYlZpZXdMaXN0KSArIDE7CiB9CiAKIHZv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBm
bGFnKQpAQCAtMjc5LDkgKzI4MCwxNCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKICAgICAvLyBGSVhNRTog
aW1wbGVtZW50CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBvcHVwQmxvY2tp
bmdFbmFibGVkKGJvb2wgcG9wdXBCbG9ja2luZ0VuYWJsZWQpCit2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sIGZsYWcpCiB7Ci0gICAgLy8gRklY
TUU6IGltcGxlbWVudAorICAgIFdlYktpdFdlYlZpZXcqIHZpZXcgPSB3ZWJraXRfd2ViX2ZyYW1l
X2dldF93ZWJfdmlldyhtYWluRnJhbWUpOworICAgIEFTU0VSVCh2aWV3KTsKKworICAgIFdlYktp
dFdlYlNldHRpbmdzKiBzZXR0aW5ncyA9IHdlYmtpdF93ZWJfdmlld19nZXRfc2V0dGluZ3Modmll
dyk7CisgICAgZ19vYmplY3Rfc2V0KEdfT0JKRUNUKHNldHRpbmdzKSwgImphdmFzY3JpcHQtY2Fu
LW9wZW4td2luZG93cyIsICFmbGFnLCBOVUxMKTsKKwogfQogCiBib29sIExheW91dFRlc3RDb250
cm9sbGVyOjplbGVtZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRoSWQoSlNTdHJpbmdS
ZWYgaWQp
</data>
<flag name="review"
          id="16617"
          type_id="1"
          status="+"
          setter="gustavo"
    />
          </attachment>
      

    </bug>

</bugzilla>