<?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>24259</bug_id>
          
          <creation_ts>2009-02-28 04:03:23 -0800</creation_ts>
          <short_desc>[Gtk] get the HTTP layout tests going</short_desc>
          <delta_ts>2009-03-01 11:25:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Jan Alonzo">jmalonzo</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>111609</commentid>
    <comment_count>0</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-02-28 04:03:23 -0800</bug_when>
    <thetext>We should get the HTTP tests working so we can test navigation, xhr, etc...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111610</commentid>
    <comment_count>1</comment_count>
      <attachid>28113</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-02-28 04:21:31 -0800</bug_when>
    <thetext>Created attachment 28113
added necessary API additions and fixes for dumping the back/forward list, etc..

This patch adds support for dumping the back forward list history items, dumping plain/text as text, and history item API additions (currently private) and fixes to get the dumping of history items working.

Currently 111 tests are passing. All failed tests or untested folders are currently skipped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111663</commentid>
    <comment_count>2</comment_count>
      <attachid>28130</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-02-28 20:24:45 -0800</bug_when>
    <thetext>Created attachment 28130
history item fixes and API additions for dumping a history item</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111666</commentid>
    <comment_count>3</comment_count>
      <attachid>28132</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-02-28 20:51:14 -0800</bug_when>
    <thetext>Created attachment 28132
DRT - support for dumping the back/forward history items and navigation and back/forward fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111670</commentid>
    <comment_count>4</comment_count>
      <attachid>28134</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-02-28 21:21:20 -0800</bug_when>
    <thetext>Created attachment 28134
dump according to the frame&apos;s mime type. Also enable the http tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111694</commentid>
    <comment_count>5</comment_count>
      <attachid>28134</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-03-01 07:13:06 -0800</bug_when>
    <thetext>Comment on attachment 28134
dump according to the frame&apos;s mime type. Also enable the http tests

&gt; Index: WebKit/WebKit/gtk/webkit/webkitprivate.h
&gt; ===================================================================
&gt; --- WebKit.orig/WebKit/gtk/webkit/webkitprivate.h	2009-03-01 15:56:10.000000000 +1100
&gt; +++ WebKit/WebKit/gtk/webkit/webkitprivate.h	2009-03-01 15:57:53.000000000 +1100
&gt; @@ -158,6 +158,10 @@
&gt;      void
&gt;      webkit_web_policy_decision_cancel (WebKitWebPolicyDecision* decision);
&gt;  
&gt; +    // FIXME: move this functionality into a &apos;WebKitWebDataSource&apos; once implemented
&gt; +    WEBKIT_API gchar*
&gt; +    webkit_web_frame_get_response_mime_type(WebKitWebFrame* frame);
&gt; +
&gt;      // FIXME: Move these to webkitwebframe.h once their API has been discussed.
&gt;  
&gt;      WEBKIT_API GSList*
&gt; Index: WebKit/WebKit/gtk/webkit/webkitwebframe.cpp
&gt; ===================================================================
&gt; --- WebKit.orig/WebKit/gtk/webkit/webkitwebframe.cpp	2009-03-01 15:58:07.000000000 +1100
&gt; +++ WebKit/WebKit/gtk/webkit/webkitwebframe.cpp	2009-03-01 15:59:16.000000000 +1100
&gt; @@ -5,6 +5,7 @@
&gt;   * Copyright (C) 2008 Christian Dywan &lt;christian@imendio.com&gt;
&gt;   * Copyright (C) 2008 Collabora Ltd.
&gt;   * Copyright (C) 2008 Nuanti Ltd.
&gt; + * Copyright (C) 2009 Jan Alonzo &lt;jmalonzo@gmail.com&gt;
&gt;   *
&gt;   * This library is free software; you can redistribute it and/or
&gt;   * modify it under the terms of the GNU Library General Public
&gt; @@ -31,6 +32,7 @@
&gt;  
&gt;  #include &quot;AnimationController.h&quot;
&gt;  #include &quot;CString.h&quot;
&gt; +#include &quot;DocumentLoader.h&quot;
&gt;  #include &quot;FrameLoader.h&quot;
&gt;  #include &quot;FrameLoaderClientGtk.h&quot;
&gt;  #include &quot;FrameTree.h&quot;
&gt; @@ -717,4 +719,12 @@
&gt;      return controller-&gt;numberOfActiveAnimations();
&gt;  }
&gt;  
&gt; +gchar* webkit_web_frame_get_response_mime_type(WebKitWebFrame* frame)
&gt; +{
&gt; +    Frame* coreFrame = core(frame);
&gt; +    DocumentLoader* docLoader = coreFrame-&gt;loader()-&gt;documentLoader();
&gt; +    String mimeType = docLoader-&gt;responseMIMEType();
&gt; +    return g_strdup(mimeType.utf8().data());
&gt; +}
&gt; +
&gt;  }
&gt; Index: WebKit/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp
&gt; ===================================================================
&gt; --- WebKit.orig/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp	2009-03-01 16:01:06.000000000 +1100
&gt; +++ WebKit/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp	2009-03-01 16:02:35.000000000 +1100
&gt; @@ -57,6 +57,7 @@
&gt;  extern gchar* webkit_web_frame_get_inner_text(WebKitWebFrame* frame);
&gt;  extern gchar* webkit_web_frame_dump_render_tree(WebKitWebFrame* frame);
&gt;  extern void webkit_web_settings_add_extra_plugin_directory(WebKitWebView* view, const gchar* directory);
&gt; +extern gchar* webkit_web_frame_get_response_mime_type(WebKitWebFrame* frame);
&gt;  }
&gt;  
&gt;  volatile bool done;
&gt; @@ -221,11 +222,13 @@
&gt;  void dump()
&gt;  {
&gt;      invalidateAnyPreviousWaitToDumpWatchdog();

&gt; -        bool dumpAsText = gLayoutTestController-&gt;dumpAsText();
&gt; -        // FIXME: Also dump text resuls as text.
&gt; +        dumpAsText = g_ascii_strcasecmp(responseMimeType, &quot;text/plain&quot;);

g_free(responseMImeType) missing here?

looks good so far. It might be wise to land this patch last though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111706</commentid>
    <comment_count>6</comment_count>
      <attachid>28130</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-03-01 08:07:07 -0800</bug_when>
    <thetext>Comment on attachment 28130
history item fixes and API additions for dumping a history item


&gt; -    priv-&gt;historyItem = WebCore::HistoryItem::create();
&gt; -    webkit_history_item_add(webHistoryItem, priv-&gt;historyItem.get());
&gt; +    RefPtr&lt;WebCore::HistoryItem&gt; item = WebCore::HistoryItem::create();
&gt; +    priv-&gt;historyItem = item.get();
&gt; +    webkit_history_item_add(webHistoryItem, priv-&gt;historyItem);

make that a item.release()?



&gt;      return webHistoryItem;
&gt;  }
&gt; @@ -323,8 +312,9 @@
&gt;      WebKitWebHistoryItem* webHistoryItem = WEBKIT_WEB_HISTORY_ITEM(g_object_new(WEBKIT_TYPE_WEB_HISTORY_ITEM, NULL));
&gt;      WebKitWebHistoryItemPrivate* priv = webHistoryItem-&gt;priv;
&gt;  
&gt; -    priv-&gt;historyItem = WebCore::HistoryItem::create(historyUri, historyTitle, 0);
&gt; -    webkit_history_item_add(webHistoryItem, priv-&gt;historyItem.get());
&gt; +    RefPtr&lt;WebCore::HistoryItem&gt; item = WebCore::HistoryItem::create(historyUri, historyTitle, 0);
&gt; +    priv-&gt;historyItem = item.get();
&gt; +    webkit_history_item_add(webHistoryItem, priv-&gt;historyItem);


another release()? I&apos;m a bit scared with the change to PassRefPtr... but let me take another look.



&gt; +    WebCore::CString t = item-&gt;target().utf8();
&gt; +    return t.data();

strdup? the printf() in the DRT might be a bit dangerous.


okay, the other bits look fine. before landing please coordinate with xan/kov to not conflict with their release work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111710</commentid>
    <comment_count>7</comment_count>
      <attachid>28132</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-03-01 08:26:54 -0800</bug_when>
    <thetext>Comment on attachment 28132
DRT - support for dumping the back/forward history items and navigation and back/forward fixes


&gt; +static WebKitWebHistoryItem* prevTestBFItem = NULL; // current b/f item at the end of the previous test

please move the comment to the above line.



&gt; +static void dumpHistoryItem(WebKitWebHistoryItem* item, int indent, bool current)
&gt; +{
&gt; +    assert(item != NULL);

ASSERT(item); to use WTF




&gt; +static void dumpBackForwardListForWebView(WebKitWebView* view)
&gt; +{
&gt; +    printf(&quot;\n============== Back Forward List ==============\n&quot;);
&gt; +    WebKitWebBackForwardList* bfList = webkit_web_view_get_back_forward_list(view);
&gt; +
&gt; +    // Print out all items in the list after prevTestBFItem, which was from the previous test
&gt; +    // Gather items from the end of the list, the print them out from oldest to newest
&gt; +    GList* itemsToPrint = NULL;
&gt; +    gint forwardListCount = webkit_web_back_forward_list_get_forward_length(bfList);
&gt; +    for (int i = forwardListCount; i &gt; 0; i--) {
&gt; +        WebKitWebHistoryItem* item = webkit_web_back_forward_list_get_nth_item(bfList, i);
&gt; +        // something is wrong if the item from the last test is in the forward part of the b/f list
&gt; +        assert(item != prevTestBFItem);

ASSERT?



please coordinate with kov/xan for the release.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111720</commentid>
    <comment_count>8</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-03-01 11:23:15 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 28134 [review])
&gt; &gt; Index: WebKit/WebKit/gtk/webkit/webkitprivate.h
&gt; &gt; ===================================================================
&gt; &gt; --- WebKit.orig/WebKit/gtk/webkit/webkitprivate.h	2009-03-01 15:56:10.000000000 +1100
&gt; &gt; +++ WebKit/WebKit/gtk/webkit/webkitprivate.h	2009-03-01 15:57:53.000000000 +1100
&gt; &gt; @@ -158,6 +158,10 @@
&gt; &gt;      void
&gt; &gt;      webkit_web_policy_decision_cancel (WebKitWebPolicyDecision* decision);
&gt; &gt;  
&gt; &gt; +    // FIXME: move this functionality into a &apos;WebKitWebDataSource&apos; once implemented
&gt; &gt; +    WEBKIT_API gchar*
&gt; &gt; +    webkit_web_frame_get_response_mime_type(WebKitWebFrame* frame);
&gt; &gt; +
&gt; &gt;      // FIXME: Move these to webkitwebframe.h once their API has been discussed.
&gt; &gt;  
&gt; &gt;      WEBKIT_API GSList*
&gt; &gt; Index: WebKit/WebKit/gtk/webkit/webkitwebframe.cpp
&gt; &gt; ===================================================================
&gt; &gt; --- WebKit.orig/WebKit/gtk/webkit/webkitwebframe.cpp	2009-03-01 15:58:07.000000000 +1100
&gt; &gt; +++ WebKit/WebKit/gtk/webkit/webkitwebframe.cpp	2009-03-01 15:59:16.000000000 +1100
&gt; &gt; @@ -5,6 +5,7 @@
&gt; &gt;   * Copyright (C) 2008 Christian Dywan &lt;christian@imendio.com&gt;
&gt; &gt;   * Copyright (C) 2008 Collabora Ltd.
&gt; &gt;   * Copyright (C) 2008 Nuanti Ltd.
&gt; &gt; + * Copyright (C) 2009 Jan Alonzo &lt;jmalonzo@gmail.com&gt;
&gt; &gt;   *
&gt; &gt;   * This library is free software; you can redistribute it and/or
&gt; &gt;   * modify it under the terms of the GNU Library General Public
&gt; &gt; @@ -31,6 +32,7 @@
&gt; &gt;  
&gt; &gt;  #include &quot;AnimationController.h&quot;
&gt; &gt;  #include &quot;CString.h&quot;
&gt; &gt; +#include &quot;DocumentLoader.h&quot;
&gt; &gt;  #include &quot;FrameLoader.h&quot;
&gt; &gt;  #include &quot;FrameLoaderClientGtk.h&quot;
&gt; &gt;  #include &quot;FrameTree.h&quot;
&gt; &gt; @@ -717,4 +719,12 @@
&gt; &gt;      return controller-&gt;numberOfActiveAnimations();
&gt; &gt;  }
&gt; &gt;  
&gt; &gt; +gchar* webkit_web_frame_get_response_mime_type(WebKitWebFrame* frame)
&gt; &gt; +{
&gt; &gt; +    Frame* coreFrame = core(frame);
&gt; &gt; +    DocumentLoader* docLoader = coreFrame-&gt;loader()-&gt;documentLoader();
&gt; &gt; +    String mimeType = docLoader-&gt;responseMIMEType();
&gt; &gt; +    return g_strdup(mimeType.utf8().data());
&gt; &gt; +}
&gt; &gt; +
&gt; &gt;  }
&gt; &gt; Index: WebKit/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp
&gt; &gt; ===================================================================
&gt; &gt; --- WebKit.orig/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp	2009-03-01 16:01:06.000000000 +1100
&gt; &gt; +++ WebKit/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp	2009-03-01 16:02:35.000000000 +1100
&gt; &gt; @@ -57,6 +57,7 @@
&gt; &gt;  extern gchar* webkit_web_frame_get_inner_text(WebKitWebFrame* frame);
&gt; &gt;  extern gchar* webkit_web_frame_dump_render_tree(WebKitWebFrame* frame);
&gt; &gt;  extern void webkit_web_settings_add_extra_plugin_directory(WebKitWebView* view, const gchar* directory);
&gt; &gt; +extern gchar* webkit_web_frame_get_response_mime_type(WebKitWebFrame* frame);
&gt; &gt;  }
&gt; &gt;  
&gt; &gt;  volatile bool done;
&gt; &gt; @@ -221,11 +222,13 @@
&gt; &gt;  void dump()
&gt; &gt;  {
&gt; &gt;      invalidateAnyPreviousWaitToDumpWatchdog();
&gt; 
&gt; &gt; -        bool dumpAsText = gLayoutTestController-&gt;dumpAsText();
&gt; &gt; -        // FIXME: Also dump text resuls as text.
&gt; &gt; +        dumpAsText = g_ascii_strcasecmp(responseMimeType, &quot;text/plain&quot;);
&gt; 
&gt; g_free(responseMImeType) missing here?
&gt; 
&gt; looks good so far. It might be wise to land this patch last though.
&gt; 

Landed in r41341</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111721</commentid>
    <comment_count>9</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-03-01 11:24:12 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 28132 [review])
&gt; 
&gt; &gt; +static WebKitWebHistoryItem* prevTestBFItem = NULL; // current b/f item at the end of the previous test
&gt; 
&gt; please move the comment to the above line.
&gt; 
&gt; 
&gt; 
&gt; &gt; +static void dumpHistoryItem(WebKitWebHistoryItem* item, int indent, bool current)
&gt; &gt; +{
&gt; &gt; +    assert(item != NULL);
&gt; 
&gt; ASSERT(item); to use WTF
&gt; 
&gt; 
&gt; 
&gt; 
&gt; &gt; +static void dumpBackForwardListForWebView(WebKitWebView* view)
&gt; &gt; +{
&gt; &gt; +    printf(&quot;\n============== Back Forward List ==============\n&quot;);
&gt; &gt; +    WebKitWebBackForwardList* bfList = webkit_web_view_get_back_forward_list(view);
&gt; &gt; +
&gt; &gt; +    // Print out all items in the list after prevTestBFItem, which was from the previous test
&gt; &gt; +    // Gather items from the end of the list, the print them out from oldest to newest
&gt; &gt; +    GList* itemsToPrint = NULL;
&gt; &gt; +    gint forwardListCount = webkit_web_back_forward_list_get_forward_length(bfList);
&gt; &gt; +    for (int i = forwardListCount; i &gt; 0; i--) {
&gt; &gt; +        WebKitWebHistoryItem* item = webkit_web_back_forward_list_get_nth_item(bfList, i);
&gt; &gt; +        // something is wrong if the item from the last test is in the forward part of the b/f list
&gt; &gt; +        assert(item != prevTestBFItem);
&gt; 
&gt; ASSERT?
&gt; 
&gt; 
&gt; 
&gt; please coordinate with kov/xan for the release.
&gt; 

Landed in r41340</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111722</commentid>
    <comment_count>10</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-03-01 11:25:03 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 28130 [review])
&gt; 
&gt; &gt; -    priv-&gt;historyItem = WebCore::HistoryItem::create();
&gt; &gt; -    webkit_history_item_add(webHistoryItem, priv-&gt;historyItem.get());
&gt; &gt; +    RefPtr&lt;WebCore::HistoryItem&gt; item = WebCore::HistoryItem::create();
&gt; &gt; +    priv-&gt;historyItem = item.get();
&gt; &gt; +    webkit_history_item_add(webHistoryItem, priv-&gt;historyItem);
&gt; 
&gt; make that a item.release()?
&gt; 
&gt; 
&gt; 
&gt; &gt;      return webHistoryItem;
&gt; &gt;  }
&gt; &gt; @@ -323,8 +312,9 @@
&gt; &gt;      WebKitWebHistoryItem* webHistoryItem = WEBKIT_WEB_HISTORY_ITEM(g_object_new(WEBKIT_TYPE_WEB_HISTORY_ITEM, NULL));
&gt; &gt;      WebKitWebHistoryItemPrivate* priv = webHistoryItem-&gt;priv;
&gt; &gt;  
&gt; &gt; -    priv-&gt;historyItem = WebCore::HistoryItem::create(historyUri, historyTitle, 0);
&gt; &gt; -    webkit_history_item_add(webHistoryItem, priv-&gt;historyItem.get());
&gt; &gt; +    RefPtr&lt;WebCore::HistoryItem&gt; item = WebCore::HistoryItem::create(historyUri, historyTitle, 0);
&gt; &gt; +    priv-&gt;historyItem = item.get();
&gt; &gt; +    webkit_history_item_add(webHistoryItem, priv-&gt;historyItem);
&gt; 
&gt; 
&gt; another release()? I&apos;m a bit scared with the change to PassRefPtr... but let me
&gt; take another look.
&gt; 
&gt; 
&gt; 
&gt; &gt; +    WebCore::CString t = item-&gt;target().utf8();
&gt; &gt; +    return t.data();
&gt; 
&gt; strdup? the printf() in the DRT might be a bit dangerous.
&gt; 
&gt; 
&gt; okay, the other bits look fine. before landing please coordinate with xan/kov
&gt; to not conflict with their release work.
&gt; 

Landed in r41339.

Thanks!

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28113</attachid>
            <date>2009-02-28 04:21:31 -0800</date>
            <delta_ts>2009-02-28 20:24:45 -0800</delta_ts>
            <desc>added necessary API additions and fixes for dumping the back/forward list, etc..</desc>
            <filename>gtk-drt-http-tests.patch</filename>
            <type>text/plain</type>
            <size>26045</size>
            <attacher name="Jan Alonzo">jmalonzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwN2NjMGNmLi5lODAzYWVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDIt
MjggIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gZ2V0IHRoZSBIVFRQ
IGxheW91dCB0ZXN0cyBnb2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjQyNTkKKworICAgICAgICBFbmFibGUgaHR0cCB0ZXN0cywgZXhjbHVkaW5n
IHRlc3RzL2ZvbGRlcnMgdGhhdCBmYWlsIG9yIHVudGVzdGVkCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvU2tpcHBlZDoKKwogMjAwOS0wMi0yNyAgTWF0dCBQZW5uaWcgIDxwZW5uaWdAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEh5YXR0LgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
U2tpcHBlZAppbmRleCBkYWM1YTEzLi40YTFjZGRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZApAQCAtMjE1MSw3ICsyMTUxLDYgQEAgY3NzMi4xCiBjc3MzCiBlZGl0aW5nCiBnZW9sb2NhdGlv
bgotaHR0cAogbWVkaWEKIHBsYXRmb3JtCiBwcmludGluZwpAQCAtMjIxNiwzICsyMjE1LDcyIEBA
IHBsdWdpbnMvbmV0c2NhcGUtZG9tLWFjY2Vzcy5odG1sCiAjIFRlc3RzIGluIHRyYW5zaXRpb25z
LyBkaXJlY3RvcnkKICMgVGVzdHMgZ2VuZXJhdGluZyBuZXcgcmVzdWx0cwogdHJhbnNpdGlvbnMv
dHJhbnNpdGlvbi1kcnQtYXBpLmh0bWwKKworCisjIEhUVFAgdGVzdHMKKyMgVGVzdHMgaW4gaHR0
cC8gZGlyZWN0b3J5CisKKyMgYmxhY2tsaXN0IHVudGVzdGVkL2ZhaWxpbmcgZm9sZGVycworaHR0
cC90ZXN0cy9hcHBjYWNoZQoraHR0cC90ZXN0cy9oaXN0b3J5CitodHRwL3Rlc3RzL21lZGlhCito
dHRwL3Rlc3RzL21pc2MKK2h0dHAvdGVzdHMvbmF2aWdhdGlvbgoraHR0cC90ZXN0cy9wbHVnaW5z
CitodHRwL3Rlc3RzL3NlY3VyaXR5CitodHRwL3Rlc3RzL3NzbAoraHR0cC90ZXN0cy93ZWJhcmNo
aXZlCitodHRwL3Rlc3RzL3dtbAorCisjIHRlc3RzIHRoYXQgZmFpbGVkCitodHRwL3Rlc3RzL2lu
Y3JlbWVudGFsL3Nsb3ctdXRmOC10ZXh0LnBsCitodHRwL3Rlc3RzL2xvYWRpbmcvYmFkLXNjaGVt
ZS1zdWJmcmFtZS5odG1sCitodHRwL3Rlc3RzL2xvYWRpbmcvYmFkLXNlcnZlci1zdWJmcmFtZS5o
dG1sCitodHRwL3Rlc3RzL2xvYWRpbmcvYmFzaWMuaHRtbAoraHR0cC90ZXN0cy9sb2FkaW5nL2Vt
cHR5LXN1YmZyYW1lLmh0bWwKK2h0dHAvdGVzdHMvbG9hZGluZy9nbWFpbC1hc3NlcnQtb24tbG9h
ZC5odG1sCitodHRwL3Rlc3RzL2xvYWRpbmcvbG9jYXRpb24taGFzaC1yZWxvYWQtY3ljbGUuaHRt
bAoraHR0cC90ZXN0cy9sb2FkaW5nL29ubG9hZC12cy1pbW1lZGlhdGUtcmVmcmVzaC5wbAoraHR0
cC90ZXN0cy9sb2FkaW5nL3Nsb3ctcGFyc2luZy1zdWJmcmFtZS5odG1sCitodHRwL3Rlc3RzL2xv
YWRpbmcvdGV4dC1jb250ZW50LXR5cGUtd2l0aC1iaW5hcnktZXh0ZW5zaW9uLmh0bWwKK2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvYWJvcnQtc2hvdWxkLWNhbmNlbC1sb2FkLmh0bWwKK2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvYmFzaWMtYXV0aC5odG1sCitodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2Nsb3NlLXdpbmRvdy5odG1sCitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2RlZmF1
bHQtY29udGVudC10eXBlLWRhc2hib2FyZC5odG1sCitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L2ZyYW1lLWxvYWQtY2FuY2VsbGVkLWFib3J0Lmh0bWwKK2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvbWV0aG9kcy1hc3luYy5odG1sCitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMt
bG93ZXItY2FzZS5odG1sCitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMuaHRtbAor
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9zdmctY3JlYXRlZC1ieS14aHItZGlzYWxsb3dlZC1p
bi1kYXNoYm9hcmQuaHRtbAoraHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC91cGxvYWQtb25sb2Fk
LWV2ZW50Lmh0bWwKK2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdXBsb2FkLW9ucHJvZ3Jlc3Mt
ZXZlbnQuaHRtbAoraHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC91cGxvYWQtcHJvZ3Jlc3MtZXZl
bnRzLmh0bWwKK2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveGhyLW9udW5sb2FkLmh0bWwKKwor
IyBUZXN0cyB0aGF0IHRpbWVkIG91dAoraHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9YTUxIdHRw
UmVxdWVzdEV4Y2VwdGlvbi5odG1sCitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Nvbm5lY3Rp
b24tZXJyb3Itc3luYy5odG1sCisKKyMgQ3Jhc2hpbmcgdGVzdHMKK2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3Qvd2ViLWFwcHMvMDAyLmh0bWwKKworIyBUZXN0cyB0aGF0IGhhZCBzdGRlcnIgb3V0
cHV0CitodHRwL3Rlc3RzL2luY3JlbWVudGFsL2ZyYW1lLWZvY3VzLWJlZm9yZS1sb2FkLmh0bWwK
K2h0dHAvdGVzdHMvaW5jcmVtZW50YWwvcGF1c2UtaW4tc2NyaXB0LWVsZW1lbnQucGwKK2h0dHAv
dGVzdHMvbXVsdGlwYXJ0L2ludmFsaWQtaW1hZ2UtZGF0YS1zdGFuZGFsb25lLmh0bWwKK2h0dHAv
dGVzdHMvbXVsdGlwYXJ0L2ludmFsaWQtaW1hZ2UtZGF0YS5odG1sCitodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L2Fib3J0LWNyYXNoLmh0bWwKK2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWJv
cnQtc2hvdWxkLWNhbmNlbC1sb2FkLmh0bWwKK2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYmFz
aWMtYXV0aC5odG1sCitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Nsb3NlLXdpbmRvdy5odG1s
CitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Nvb2tpZXMuaHRtbAoraHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9kZWZhdWx0LWNvbnRlbnQtdHlwZS1kYXNoYm9hcmQuaHRtbAoraHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC93ZWItYXBwcy8wMDMuaHRtbAoraHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC93ZWItYXBwcy8wMDQuaHRtbAorCisjIFRlc3RzIHRoYXQgaGFkIG5vIGV4cGVjdGVkIHJl
c3VsdHMgKHByb2JhYmx5IG5ldyk6CitodHRwL3Rlc3RzL2xvYWRpbmcvc2ltcGxlLXN1YmZyYW1l
Lmh0bWwKK2h0dHAvdGVzdHMvbG9jYWwvZmlsZS11cmwtc2VudC1hcy1yZWZlcmVyLmh0bWwKK2h0
dHAvdGVzdHMvbXVsdGlwYXJ0L2ludmFsaWQtaW1hZ2UtZGF0YS1zdGFuZGFsb25lLmh0bWwKK2h0
dHAvdGVzdHMvbXVsdGlwYXJ0L2ludmFsaWQtaW1hZ2UtZGF0YS5odG1sCitodHRwL3Rlc3RzL3Vy
aS9jc3MtaHJlZi5waHAKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKaW5kZXggYzExMDMxZC4uZmNhNGFiZiAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBA
QAorMjAwOS0wMi0yOCAgSmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR3RrXSBn
ZXQgdGhlIEhUVFAgbGF5b3V0IHRlc3RzIGdvaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDI1OQorCisgICAgICAgIEFkZGVkIG5lY2Vzc2FyeSBB
UEkgYWRkaXRpb25zIHRvIGltcGxlbWVudCBkdW1waW5nIG9mCisgICAgICAgIFdlYktpdFdlYkhp
c3RvcnlJdGVtcyBhbmQgZ2V0dGluZyB0aGUgcmVzcG9uc2UgTUlNRSB0eXBlLiBBbHNvIGZpeAor
ICAgICAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbTo6a2l0IHNvIHdlIGFsd2F5cyByZXR1cm4gYSBu
b24tbnVsbCBXZWJLaXRXZWJIaXN0b3J5SXRlbS4KKworICAgICAgICAqIHdlYmtpdC93ZWJraXRw
cml2YXRlLmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHA6
CisgICAgICAgIChfV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZTo6d2Via2l0X3dlYl9i
YWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2FyZF9saXN0X3dpdGhfbGltaXQpOgorICAgICAgICAo
X1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGU6OndlYmtpdF93ZWJfYmFja19mb3J3YXJk
X2xpc3RfZ2V0X2JhY2tfbGlzdF93aXRoX2xpbWl0KToKKyAgICAgICAgKF9XZWJLaXRXZWJCYWNr
Rm9yd2FyZExpc3RQcml2YXRlOjp3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9jdXJy
ZW50X2l0ZW0pOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6CisgICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcDoKKyAgICAgICAgKF9XZWJLaXRXZWJI
aXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRoX2NvcmVf
aXRlbSk6CisgICAgICAgIChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2Vi
X2hpc3RvcnlfaXRlbV9uZXcpOgorICAgICAgICAoX1dlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0
ZTo6d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhfZGF0YSk6CisgICAgICAgIChfV2Vi
S2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfbGFz
dF92aXNpdGVkX3RpbWUpOgorICAgICAgICAoX1dlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZTo6
d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X3RhcmdldCk6CisgICAgICAgIChfV2ViS2l0V2Vi
SGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9pc190YXJnZXRfaXRl
bSk6CisgICAgICAgIChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hp
c3RvcnlfaXRlbV9nZXRfY2hpbGRyZW4pOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAg
ICAgKFdlYktpdDo6a2l0KToKKwogMjAwOS0wMi0yNyAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8
Z25zQGdub21lLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KZGlmZiAt
LWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaCBiL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHByaXZhdGUuaAppbmRleCBmOTNlODQ5Li40ODlhOTJkIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0cHJpdmF0ZS5oCkBAIC01Nyw3ICs1Nyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAg
IFdlYktpdFdlYlZpZXcqIGtpdChXZWJDb3JlOjpQYWdlKik7CiAKICAgICBXZWJDb3JlOjpIaXN0
b3J5SXRlbSogY29yZShXZWJLaXRXZWJIaXN0b3J5SXRlbSopOwotICAgIFdlYktpdFdlYkhpc3Rv
cnlJdGVtKiBraXQoV2ViQ29yZTo6SGlzdG9yeUl0ZW0qKTsKKyAgICBXZWJLaXRXZWJIaXN0b3J5
SXRlbSoga2l0KFBhc3NSZWZQdHI8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+KTsKIAogICAgIFdlYkNv
cmU6OkJhY2tGb3J3YXJkTGlzdCogY29yZShXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqKTsKIApA
QCAtMTIzLDggKzEyMywxOSBAQCBleHRlcm4gIkMiIHsKICAgICB2b2lkCiAgICAgd2Via2l0X3dl
Yl9mcmFtZV9jb3JlX2ZyYW1lX2dvbmUoV2ViS2l0V2ViRnJhbWUqKTsKIAorICAgIC8vIFdlYktp
dFdlYkhpc3RvcnlJdGVtIHByaXZhdGUKICAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbSoKLSAgICB3
ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9uZXdfd2l0aF9jb3JlX2l0ZW0oV2ViQ29yZTo6SGlzdG9y
eUl0ZW0qKTsKKyAgICB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9uZXdfd2l0aF9jb3JlX2l0ZW0o
UGFzc1JlZlB0cjxXZWJDb3JlOjpIaXN0b3J5SXRlbT4gaGlzdG9yeUl0ZW0pOworCisgICAgV0VC
S0lUX0FQSSBHX0NPTlNUX1JFVFVSTiBnY2hhcioKKyAgICB3ZWJraXRfd2ViX2hpc3RvcnlfaXRl
bV9nZXRfdGFyZ2V0KFdlYktpdFdlYkhpc3RvcnlJdGVtKik7CisKKyAgICBXRUJLSVRfQVBJIGdi
b29sZWFuCisgICAgd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1faXNfdGFyZ2V0X2l0ZW0oV2ViS2l0
V2ViSGlzdG9yeUl0ZW0qKTsKKworICAgIFdFQktJVF9BUEkgR0xpc3QqCisgICAgd2Via2l0X3dl
Yl9oaXN0b3J5X2l0ZW1fZ2V0X2NoaWxkcmVuKFdlYktpdFdlYkhpc3RvcnlJdGVtKik7CisgICAg
Ly8gZW5kIFdlYktpdFdlYkhpc3RvcnlJdGVtIHByaXZhdGUKIAogICAgIHZvaWQKICAgICB3ZWJr
aXRfd2ViX2luc3BlY3Rvcl9zZXRfaW5zcGVjdG9yX2NsaWVudChXZWJLaXRXZWJJbnNwZWN0b3Iq
LCBXZWJLaXQ6Okluc3BlY3RvckNsaWVudCopOwpAQCAtMTQ3LDYgKzE1OCwxMCBAQCBleHRlcm4g
IkMiIHsKICAgICB2b2lkCiAgICAgd2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fY2FuY2VsIChX
ZWJLaXRXZWJQb2xpY3lEZWNpc2lvbiogZGVjaXNpb24pOwogCisgICAgLy8gRklYTUU6IG1vdmUg
dGhpcyBmdW5jdGlvbmFsaXR5IGludG8gYSAnV2ViS2l0V2ViRGF0YVNvdXJjZScgb25jZSBpbXBs
ZW1lbnRlZAorICAgIFdFQktJVF9BUEkgZ2NoYXIqCisgICAgd2Via2l0X3dlYl9mcmFtZV9nZXRf
cmVzcG9uc2VfbWltZV90eXBlKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7CisKICAgICAvLyBGSVhN
RTogTW92ZSB0aGVzZSB0byB3ZWJraXR3ZWJmcmFtZS5oIG9uY2UgdGhlaXIgQVBJIGhhcyBiZWVu
IGRpc2N1c3NlZC4KIAogICAgIFdFQktJVF9BUEkgR1NMaXN0KgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcCBiL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAKaW5kZXggY2JlYjcwZC4uZDIwMzNjNiAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNw
cAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwCkBA
IC0yOCw2ICsyOCw4IEBACiAKICNpbmNsdWRlICJCYWNrRm9yd2FyZExpc3QuaCIKICNpbmNsdWRl
ICJIaXN0b3J5SXRlbS5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgogCiAvKioKICAqIFNFQ1RJT046d2Via2l0d2ViYmFja2ZvcndhcmRsaXN0CkBA
IC0xODksNyArMTkxLDcgQEAgR0xpc3QqIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0
X2ZvcndhcmRfbGlzdF93aXRoX2xpbWl0KFdlYktpdFdlYkJhY2tGb3IKICAgICBiYWNrRm9yd2Fy
ZExpc3QtPmZvcndhcmRMaXN0V2l0aExpbWl0KGxpbWl0LCBpdGVtcyk7CiAKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgaXRlbXMuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgV2ViS2l0V2Vi
SGlzdG9yeUl0ZW0qIHdlYkhpc3RvcnlJdGVtID0gd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3
X3dpdGhfY29yZV9pdGVtKGl0ZW1zW2ldLmdldCgpKTsKKyAgICAgICAgV2ViS2l0V2ViSGlzdG9y
eUl0ZW0qIHdlYkhpc3RvcnlJdGVtID0gd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhf
Y29yZV9pdGVtKGl0ZW1zW2ldKTsKICAgICAgICAgZm9yd2FyZEl0ZW1zID0gZ19saXN0X3ByZXBl
bmQoZm9yd2FyZEl0ZW1zLCBnX29iamVjdF9yZWYod2ViSGlzdG9yeUl0ZW0pKTsKICAgICB9CiAK
QEAgLTIxOSw3ICsyMjEsNyBAQCBHTGlzdCogd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9n
ZXRfYmFja19saXN0X3dpdGhfbGltaXQoV2ViS2l0V2ViQmFja0ZvcndhcgogICAgIGJhY2tGb3J3
YXJkTGlzdC0+YmFja0xpc3RXaXRoTGltaXQobGltaXQsIGl0ZW1zKTsKIAogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBpdGVtcy5zaXplKCk7IGkrKykgewotICAgICAgICBXZWJLaXRXZWJI
aXN0b3J5SXRlbSogd2ViSGlzdG9yeUl0ZW0gPSB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9uZXdf
d2l0aF9jb3JlX2l0ZW0oaXRlbXNbaV0uZ2V0KCkpOworICAgICAgICBXZWJLaXRXZWJIaXN0b3J5
SXRlbSogd2ViSGlzdG9yeUl0ZW0gPSB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9uZXdfd2l0aF9j
b3JlX2l0ZW0oaXRlbXNbaV0pOwogICAgICAgICBiYWNrSXRlbXMgPSBnX2xpc3RfcHJlcGVuZChi
YWNrSXRlbXMsIGdfb2JqZWN0X3JlZih3ZWJIaXN0b3J5SXRlbSkpOwogICAgIH0KIApAQCAtMjY2
LDcgKzI2OCw2IEBAIFdlYktpdFdlYkhpc3RvcnlJdGVtKiB3ZWJraXRfd2ViX2JhY2tfZm9yd2Fy
ZF9saXN0X2dldF9jdXJyZW50X2l0ZW0oV2ViS2l0V2ViQmFjCiAgICAgICAgIHJldHVybiBOVUxM
OwogCiAgICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGhpc3RvcnlJdGVtID0gYmFja0ZvcndhcmRM
aXN0LT5jdXJyZW50SXRlbSgpOwotCiAgICAgcmV0dXJuIChoaXN0b3J5SXRlbSA/IGtpdChoaXN0
b3J5SXRlbSkgOiBOVUxMKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViZnJhbWUuY3BwIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCmlu
ZGV4IDdiNWRlZjUuLmUyYjEwYjYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYmZyYW1lLmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAK
QEAgLTUsNiArNSw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ2hyaXN0aWFuIER5d2FuIDxj
aHJpc3RpYW5AaW1lbmRpby5jb20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0
ZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBOdWFudGkgTHRkLgorICogQ29weXJpZ2h0IChDKSAy
MDA5IEphbiBBbG9uem8gPGptYWxvbnpvQGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtMzEsNiArMzIsNyBAQAogCiAjaW5jbHVkZSAiQW5pbWF0aW9uQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIkNTdHJpbmcuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKICNpbmNs
dWRlICJGcmFtZVRyZWUuaCIKQEAgLTcxNyw0ICs3MTksMTIgQEAgdW5zaWduZWQgaW50IHdlYmtp
dF93ZWJfZnJhbWVfbnVtYmVyX29mX2FjdGl2ZV9hbmltYXRpb25zKFdlYktpdFdlYkZyYW1lKiBm
cmFtZSkKICAgICByZXR1cm4gY29udHJvbGxlci0+bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCk7
CiB9CiAKK2djaGFyKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9yZXNwb25zZV9taW1lX3R5cGUoV2Vi
S2l0V2ViRnJhbWUqIGZyYW1lKQoreworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1l
KTsKKyAgICBEb2N1bWVudExvYWRlciogZG9jTG9hZGVyID0gY29yZUZyYW1lLT5sb2FkZXIoKS0+
ZG9jdW1lbnRMb2FkZXIoKTsKKyAgICBTdHJpbmcgbWltZVR5cGUgPSBkb2NMb2FkZXItPnJlc3Bv
bnNlTUlNRVR5cGUoKTsKKyAgICByZXR1cm4gZ19zdHJkdXAobWltZVR5cGUudXRmOCgpLmRhdGEo
KSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3Rv
cnlpdGVtLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcApp
bmRleCA4Y2RhYTkwLi4zNGQxYzdlIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJoaXN0b3J5aXRlbS5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlz
dG9yeWl0ZW0uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBK
YW4gTWljaGFlbCBDLiBBbG9uem8KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBKYW4gTWlj
aGFlbCBDLiBBbG9uem8KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNTMsNyArNTMsNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwogZXh0ZXJuICJDIiB7CiAKIHN0cnVjdCBfV2ViS2l0V2ViSGlz
dG9yeUl0ZW1Qcml2YXRlIHsKLSAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpIaXN0b3J5SXRlbT4g
aGlzdG9yeUl0ZW07CisgICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGhpc3RvcnlJdGVtOwogCiAg
ICAgV2ViQ29yZTo6Q1N0cmluZyB0aXRsZTsKICAgICBXZWJDb3JlOjpDU3RyaW5nIGFsdGVybmF0
ZVRpdGxlOwpAQCAtMjcwLDIxICsyNzAsOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2hpc3Rv
cnlfaXRlbV9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLAogfQog
CiAvKiBIZWxwZXIgZnVuY3Rpb24gdG8gY3JlYXRlIGEgbmV3IFdlYkhpc3RvcnlJdGVtIGluc3Rh
bmNlIHdoZW4gbmVlZGVkICovCi1XZWJLaXRXZWJIaXN0b3J5SXRlbSogd2Via2l0X3dlYl9oaXN0
b3J5X2l0ZW1fbmV3X3dpdGhfY29yZV9pdGVtKFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBpdGVtKQor
V2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRoX2Nv
cmVfaXRlbShQYXNzUmVmUHRyPFdlYkNvcmU6Okhpc3RvcnlJdGVtPiBoaXN0b3J5SXRlbSkKIHsK
LSAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbSogd2ViSGlzdG9yeUl0ZW0gPSBraXQoaXRlbSk7Ci0K
LSAgICBpZiAod2ViSGlzdG9yeUl0ZW0pCi0gICAgICAgIGdfb2JqZWN0X3JlZih3ZWJIaXN0b3J5
SXRlbSk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIHdlYkhpc3RvcnlJdGVtID0gV0VCS0lUX1dFQl9I
SVNUT1JZX0lURU0oZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9ISVNUT1JZX0lURU0sIE5V
TEwpKTsKLSAgICAgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlKiBwcml2ID0gd2ViSGlz
dG9yeUl0ZW0tPnByaXY7Ci0KLSAgICAgICAgcHJpdi0+aGlzdG9yeUl0ZW0gPSBpdGVtOwotICAg
ICAgICB3ZWJraXRfaGlzdG9yeV9pdGVtX2FkZCh3ZWJIaXN0b3J5SXRlbSwgcHJpdi0+aGlzdG9y
eUl0ZW0uZ2V0KCkpOwotICAgIH0KLQotICAgIHJldHVybiB3ZWJIaXN0b3J5SXRlbTsKKyAgICBy
ZXR1cm4ga2l0KGhpc3RvcnlJdGVtKTsKIH0KIAogCkBAIC0zMDAsOCArMjg4LDkgQEAgV2ViS2l0
V2ViSGlzdG9yeUl0ZW0qIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ldygpCiAgICAgV2ViS2l0
V2ViSGlzdG9yeUl0ZW0qIHdlYkhpc3RvcnlJdGVtID0gV0VCS0lUX1dFQl9ISVNUT1JZX0lURU0o
Z19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9ISVNUT1JZX0lURU0sIE5VTEwpKTsKICAgICBX
ZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGUqIHByaXYgPSB3ZWJIaXN0b3J5SXRlbS0+cHJpdjsK
IAotICAgIHByaXYtPmhpc3RvcnlJdGVtID0gV2ViQ29yZTo6SGlzdG9yeUl0ZW06OmNyZWF0ZSgp
OwotICAgIHdlYmtpdF9oaXN0b3J5X2l0ZW1fYWRkKHdlYkhpc3RvcnlJdGVtLCBwcml2LT5oaXN0
b3J5SXRlbS5nZXQoKSk7CisgICAgUmVmUHRyPFdlYkNvcmU6Okhpc3RvcnlJdGVtPiBpdGVtID0g
V2ViQ29yZTo6SGlzdG9yeUl0ZW06OmNyZWF0ZSgpOworICAgIHByaXYtPmhpc3RvcnlJdGVtID0g
aXRlbS5nZXQoKTsKKyAgICB3ZWJraXRfaGlzdG9yeV9pdGVtX2FkZCh3ZWJIaXN0b3J5SXRlbSwg
cHJpdi0+aGlzdG9yeUl0ZW0pOwogCiAgICAgcmV0dXJuIHdlYkhpc3RvcnlJdGVtOwogfQpAQCAt
MzIzLDggKzMxMiw5IEBAIFdlYktpdFdlYkhpc3RvcnlJdGVtKiB3ZWJraXRfd2ViX2hpc3Rvcnlf
aXRlbV9uZXdfd2l0aF9kYXRhKGNvbnN0IGdjaGFyKiB1cmksIGNvCiAgICAgV2ViS2l0V2ViSGlz
dG9yeUl0ZW0qIHdlYkhpc3RvcnlJdGVtID0gV0VCS0lUX1dFQl9ISVNUT1JZX0lURU0oZ19vYmpl
Y3RfbmV3KFdFQktJVF9UWVBFX1dFQl9ISVNUT1JZX0lURU0sIE5VTEwpKTsKICAgICBXZWJLaXRX
ZWJIaXN0b3J5SXRlbVByaXZhdGUqIHByaXYgPSB3ZWJIaXN0b3J5SXRlbS0+cHJpdjsKIAotICAg
IHByaXYtPmhpc3RvcnlJdGVtID0gV2ViQ29yZTo6SGlzdG9yeUl0ZW06OmNyZWF0ZShoaXN0b3J5
VXJpLCBoaXN0b3J5VGl0bGUsIDApOwotICAgIHdlYmtpdF9oaXN0b3J5X2l0ZW1fYWRkKHdlYkhp
c3RvcnlJdGVtLCBwcml2LT5oaXN0b3J5SXRlbS5nZXQoKSk7CisgICAgUmVmUHRyPFdlYkNvcmU6
Okhpc3RvcnlJdGVtPiBpdGVtID0gV2ViQ29yZTo6SGlzdG9yeUl0ZW06OmNyZWF0ZShoaXN0b3J5
VXJpLCBoaXN0b3J5VGl0bGUsIDApOworICAgIHByaXYtPmhpc3RvcnlJdGVtID0gaXRlbS5nZXQo
KTsKKyAgICB3ZWJraXRfaGlzdG9yeV9pdGVtX2FkZCh3ZWJIaXN0b3J5SXRlbSwgcHJpdi0+aGlz
dG9yeUl0ZW0pOwogCiAgICAgcmV0dXJuIHdlYkhpc3RvcnlJdGVtOwogfQpAQCAtNDQ2LDEyICs0
MzYsNTcgQEAgZ2RvdWJsZSB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfbGFzdF92aXNpdGVk
X3RpbWUoV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdlYkgKICAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfV0VCX0hJU1RPUllfSVRFTSh3ZWJIaXN0b3J5SXRlbSksIDApOwogCiAgICAg
V2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGl0ZW0gPSBjb3JlKFdFQktJVF9XRUJfSElTVE9SWV9JVEVN
KHdlYkhpc3RvcnlJdGVtKSk7Ci0KKyAKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChpdGVtICE9
IE5VTEwsIDApOwogCiAgICAgcmV0dXJuIGl0ZW0tPmxhc3RWaXNpdGVkVGltZSgpOwogfQogCisv
KiBwcml2YXRlIG1ldGhvZHMgKi8KKworR19DT05TVF9SRVRVUk4gZ2NoYXIqIHdlYmtpdF93ZWJf
aGlzdG9yeV9pdGVtX2dldF90YXJnZXQoV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdlYkhpc3RvcnlJ
dGVtKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfSElTVE9SWV9J
VEVNKHdlYkhpc3RvcnlJdGVtKSwgTlVMTCk7CisKKyAgICBXZWJDb3JlOjpIaXN0b3J5SXRlbSog
aXRlbSA9IGNvcmUod2ViSGlzdG9yeUl0ZW0pOworCisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
aXRlbSAhPSBOVUxMLCBOVUxMKTsKKworICAgIFdlYkNvcmU6OkNTdHJpbmcgdCA9IGl0ZW0tPnRh
cmdldCgpLnV0ZjgoKTsKKyAgICByZXR1cm4gdC5kYXRhKCk7Cit9CisKK2dib29sZWFuIHdlYmtp
dF93ZWJfaGlzdG9yeV9pdGVtX2lzX3RhcmdldF9pdGVtKFdlYktpdFdlYkhpc3RvcnlJdGVtKiB3
ZWJIaXN0b3J5SXRlbSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VC
X0hJU1RPUllfSVRFTSh3ZWJIaXN0b3J5SXRlbSksIE5VTEwpOworCisgICAgV2ViQ29yZTo6SGlz
dG9yeUl0ZW0qIGl0ZW0gPSBjb3JlKHdlYkhpc3RvcnlJdGVtKTsKKworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKGl0ZW0gIT0gTlVMTCwgTlVMTCk7CisKKyAgICByZXR1cm4gaXRlbS0+aXNUYXJn
ZXRJdGVtKCk7Cit9CisKK0dMaXN0KiB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfY2hpbGRy
ZW4oV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdlYkhpc3RvcnlJdGVtKQoreworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfSElTVE9SWV9JVEVNKHdlYkhpc3RvcnlJdGVtKSwg
TlVMTCk7CisKKyAgICBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaXRlbSA9IGNvcmUod2ViSGlzdG9y
eUl0ZW0pOworCisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoaXRlbSAhPSBOVUxMLCBOVUxMKTsK
KworICAgIGNvbnN0IFdlYkNvcmU6Okhpc3RvcnlJdGVtVmVjdG9yJiBjaGlsZHJlbiA9IGl0ZW0t
PmNoaWxkcmVuKCk7CisgICAgaWYgKCFjaGlsZHJlbi5zaXplKCkpCisgICAgICAgIHJldHVybiBO
VUxMOworCisgICAgdW5zaWduZWQgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKKyAgICBHTGlzdCog
a2lkcyA9IE5VTEw7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAg
ICAgICAga2lkcyA9IGdfbGlzdF9wcmVwZW5kKGtpZHMsIGtpdChjaGlsZHJlbltpXS5nZXQoKSkp
OworCisgICAgcmV0dXJuIGdfbGlzdF9yZXZlcnNlKGtpZHMpOworfQorCiB9IC8qIGVuZCBleHRl
cm4gIkMiICovCiAKIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBXZWJLaXQ6OmNvcmUoV2ViS2l0V2Vi
SGlzdG9yeUl0ZW0qIHdlYkhpc3RvcnlJdGVtKQpAQCAtNDU5LDE5ICs0OTQsMjkgQEAgV2ViQ29y
ZTo6SGlzdG9yeUl0ZW0qIFdlYktpdDo6Y29yZShXZWJLaXRXZWJIaXN0b3J5SXRlbSogd2ViSGlz
dG9yeUl0ZW0pCiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9ISVNUT1JZ
X0lURU0od2ViSGlzdG9yeUl0ZW0pLCBOVUxMKTsKIAogICAgIFdlYktpdFdlYkhpc3RvcnlJdGVt
UHJpdmF0ZSogcHJpdiA9IHdlYkhpc3RvcnlJdGVtLT5wcml2OwotICAgIFdURjo6UmVmUHRyPFdl
YkNvcmU6Okhpc3RvcnlJdGVtPiBoaXN0b3J5SXRlbSA9IHByaXYtPmhpc3RvcnlJdGVtOwogCi0g
ICAgcmV0dXJuIGhpc3RvcnlJdGVtID8gaGlzdG9yeUl0ZW0uZ2V0KCkgOiAwOworICAgIHJldHVy
biBwcml2LT5oaXN0b3J5SXRlbSA/IHByaXYtPmhpc3RvcnlJdGVtIDogMDsKIH0KIAotV2ViS2l0
V2ViSGlzdG9yeUl0ZW0qIFdlYktpdDo6a2l0KFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBoaXN0b3J5
SXRlbSkKK1dlYktpdFdlYkhpc3RvcnlJdGVtKiBXZWJLaXQ6OmtpdChQYXNzUmVmUHRyPFdlYkNv
cmU6Okhpc3RvcnlJdGVtPiBpdGVtKQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGhpc3Rv
cnlJdGVtICE9IE5VTEwsIE5VTEwpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGl0ZW0gIT0g
TlVMTCwgTlVMTCk7CisKKyAgICBSZWZQdHI8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+IGhpc3RvcnlJ
dGVtID0gaXRlbTsKIAogICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtKiB3ZWJIaXN0b3J5SXRlbTsK
ICAgICBHSGFzaFRhYmxlKiB0YWJsZSA9IHdlYmtpdF9oaXN0b3J5X2l0ZW1zKCk7CiAKLSAgICB3
ZWJIaXN0b3J5SXRlbSA9IChXZWJLaXRXZWJIaXN0b3J5SXRlbSopIGdfaGFzaF90YWJsZV9sb29r
dXAodGFibGUsIGhpc3RvcnlJdGVtKTsKKyAgICB3ZWJIaXN0b3J5SXRlbSA9IChXZWJLaXRXZWJI
aXN0b3J5SXRlbSopIGdfaGFzaF90YWJsZV9sb29rdXAodGFibGUsIGhpc3RvcnlJdGVtLmdldCgp
KTsKKworICAgIGlmICghd2ViSGlzdG9yeUl0ZW0pIHsKKyAgICAgICAgd2ViSGlzdG9yeUl0ZW0g
PSBXRUJLSVRfV0VCX0hJU1RPUllfSVRFTShnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VCX0hJ
U1RPUllfSVRFTSwgTlVMTCkpOworICAgICAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGUq
IHByaXYgPSB3ZWJIaXN0b3J5SXRlbS0+cHJpdjsKKworICAgICAgICBwcml2LT5oaXN0b3J5SXRl
bSA9IGhpc3RvcnlJdGVtLmdldCgpOworICAgICAgICB3ZWJraXRfaGlzdG9yeV9pdGVtX2FkZCh3
ZWJIaXN0b3J5SXRlbSwgcHJpdi0+aGlzdG9yeUl0ZW0pOworICAgIH0KKwogICAgIHJldHVybiB3
ZWJIaXN0b3J5SXRlbTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIv
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGIyODNjZDAuLjJjNzdiNjMgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAwOS0wMi0yOCAgSmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbR3RrXSBnZXQgdGhlIEhUVFAgbGF5b3V0IHRlc3RzIGdvaW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDI1OQorCisgICAgICAgIEltcGxlbWVu
dCBkdW1waW5nIG9mIFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCBoaXN0b3J5IGl0ZW1zIGFuZAor
ICAgICAgICByZXNwb25zZSBtaW1lIHR5cGUgd2hpY2ggaGVscHMgdXMgZGVjaWRlIHdoZXRoZXIg
dG8gZHVtcCB0ZXh0IG9yCisgICAgICAgIGR1bXAgdGhlIHJlbmRlciB0cmVlLgorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKGNvbXBh
cmVIaXN0b3J5SXRlbXMpOgorICAgICAgICAoZHVtcEhpc3RvcnlJdGVtKToKKyAgICAgICAgKGR1
bXBCYWNrRm9yd2FyZExpc3RGb3JXZWJWaWV3KToKKyAgICAgICAgKGR1bXApOgorICAgICAgICAo
cnVuVGVzdCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9s
bGVyR3RrLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpjbGVhckJhY2tGb3J3
YXJkTGlzdCk6IHVuY29tbWVudCBfYWRkX2l0ZW0KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9n
dGsvV29ya1F1ZXVlSXRlbUd0ay5jcHA6CisgICAgICAgIChCYWNrRm9yd2FyZEl0ZW06Omludm9r
ZSk6IEZpeCBpbXBsZW1lbnRhdGlvbgorCiAyMDA5LTAyLTI3ICBYYW4gTG9wZXogIDx4YW5AZ25v
bWUub3JnPgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3Yu
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRy
ZWUuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNw
cAppbmRleCA4ZmNlYmMwLi4zMDgwY2M5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CiAgKiBDb3B5cmln
aHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAbnVhbnRpLmNvbT4KKyAqIENvcHlyaWdodCAoQykg
MjAwOSBKYW4gQWxvbnpvIDxqbWFsb256b0BnbWFpbC5jb20+CiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTQ4LDcgKzQ5LDEyIEBACiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBl
eHRlcm4gIkMiIHsKKwogLy8gVGhpcyBBUEkgaXMgbm90IHlldCBwdWJsaWMuCitleHRlcm4gR19D
T05TVF9SRVRVUk4gZ2NoYXIqIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF90YXJnZXQoV2Vi
S2l0V2ViSGlzdG9yeUl0ZW0qKTsKK2V4dGVybiBnYm9vbGVhbiB3ZWJraXRfd2ViX2hpc3Rvcnlf
aXRlbV9pc190YXJnZXRfaXRlbShXZWJLaXRXZWJIaXN0b3J5SXRlbSopOworZXh0ZXJuIEdMaXN0
KiB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfY2hpbGRyZW4oV2ViS2l0V2ViSGlzdG9yeUl0
ZW0qKTsKK2V4dGVybiBnY2hhciogd2Via2l0X3dlYl9mcmFtZV9nZXRfcmVzcG9uc2VfbWltZV90
eXBlKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7CiBleHRlcm4gR1NMaXN0KiB3ZWJraXRfd2ViX2Zy
YW1lX2dldF9jaGlsZHJlbihXZWJLaXRXZWJGcmFtZSogZnJhbWUpOwogZXh0ZXJuIGdjaGFyKiB3
ZWJraXRfd2ViX2ZyYW1lX2dldF9pbm5lcl90ZXh0KFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7CiBl
eHRlcm4gZ2NoYXIqIHdlYmtpdF93ZWJfZnJhbWVfZHVtcF9yZW5kZXJfdHJlZShXZWJLaXRXZWJG
cmFtZSogZnJhbWUpOwpAQCAtNjYsOCArNzIsMTEgQEAgV2ViS2l0V2ViRnJhbWUqIG1haW5GcmFt
ZSA9IDA7CiBXZWJLaXRXZWJGcmFtZSogdG9wTG9hZGluZ0ZyYW1lID0gMDsKIGd1aW50IHdhaXRU
b0R1bXBXYXRjaGRvZyA9IDA7CiAKK3N0YXRpYyBXZWJLaXRXZWJIaXN0b3J5SXRlbSogcHJldlRl
c3RCRkl0ZW0gPSBOVUxMOyAvLyBjdXJyZW50IGIvZiBpdGVtIGF0IHRoZSBlbmQgb2YgdGhlIHBy
ZXZpb3VzIHRlc3QKKwogY29uc3QgdW5zaWduZWQgbWF4Vmlld0hlaWdodCA9IDYwMDsKIGNvbnN0
IHVuc2lnbmVkIG1heFZpZXdXaWR0aCA9IDgwMDsKK2NvbnN0IHVuc2lnbmVkIGhpc3RvcnlJdGVt
SW5kZW50ID0gODsKIAogc3RhdGljIGdjaGFyKiBhdXRvY29ycmVjdFVSTChjb25zdCBnY2hhciog
dXJsKQogewpAQCAtMTI4LDYgKzEzNyw4MSBAQCBzdGF0aWMgZ2NoYXIqIGR1bXBGcmFtZXNBc1Rl
eHQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRp
YyBnaW50IGNvbXBhcmVIaXN0b3J5SXRlbXMoZ3BvaW50ZXIqIGl0ZW0xLCBncG9pbnRlciogaXRl
bTIpCit7CisgICAgcmV0dXJuIGdfYXNjaWlfc3RyY2FzZWNtcCh3ZWJraXRfd2ViX2hpc3Rvcnlf
aXRlbV9nZXRfdGFyZ2V0KFdFQktJVF9XRUJfSElTVE9SWV9JVEVNKGl0ZW0xKSksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfdGFyZ2V0
KFdFQktJVF9XRUJfSElTVE9SWV9JVEVNKGl0ZW0yKSkpOworfQorCitzdGF0aWMgdm9pZCBkdW1w
SGlzdG9yeUl0ZW0oV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIGl0ZW0sIGludCBpbmRlbnQsIGJvb2wg
Y3VycmVudCkKK3sKKyAgICBhc3NlcnQoaXRlbSAhPSBOVUxMKTsKKyAgICBpbnQgc3RhcnQgPSAw
OworICAgIGdfb2JqZWN0X3JlZihpdGVtKTsKKyAgICBpZiAoY3VycmVudCkgeworICAgICAgICBw
cmludGYoImN1cnItPiIpOworICAgICAgICBzdGFydCA9IDY7CisgICAgfQorICAgIGZvciAoaW50
IGkgPSBzdGFydDsgaSA8IGluZGVudDsgaSsrKQorICAgICAgICBwdXRjaGFyKCcgJyk7CisgICAg
cHJpbnRmKCIlcyIsIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF91cmkoaXRlbSkpOworICAg
IGNvbnN0IGdjaGFyKiB0YXJnZXQgPSB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfdGFyZ2V0
KGl0ZW0pOworICAgIGlmICh0YXJnZXQgJiYgZ191dGY4X3N0cmxlbih0YXJnZXQsIDApID4gMCkK
KyAgICAgICAgcHJpbnRmKCIgKGluIGZyYW1lIFwiJXNcIikiLCB0YXJnZXQpOworICAgIGlmICh3
ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9pc190YXJnZXRfaXRlbShpdGVtKSkKKyAgICAgICAgcHJp
bnRmKCIgICoqbmF2IHRhcmdldCoqIik7CisgICAgcHV0Y2hhcignXG4nKTsKKyAgICBHTGlzdCog
a2lkcyA9IHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF9jaGlsZHJlbihpdGVtKTsKKyAgICBp
ZiAoa2lkcykgeworICAgICAgICAvLyBtdXN0IHNvcnQgdG8gZWxpbWluYXRlIGFyYml0cmFyeSBy
ZXN1bHQgb3JkZXJpbmcgd2hpY2ggZGVmZWF0cyByZXByb2R1Y2libGUgdGVzdGluZworICAgICAg
ICBraWRzID0gZ19saXN0X3NvcnQoa2lkcywgKEdDb21wYXJlRnVuYykgY29tcGFyZUhpc3RvcnlJ
dGVtcyk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBnX2xpc3RfbGVuZ3RoKGtp
ZHMpOyBpKyspCisgICAgICAgICAgICBkdW1wSGlzdG9yeUl0ZW0oV0VCS0lUX1dFQl9ISVNUT1JZ
X0lURU0oZ19saXN0X250aF9kYXRhKGtpZHMsIGkpKSwgaW5kZW50KzQsIEZBTFNFKTsKKyAgICB9
CisgICAgZ19vYmplY3RfdW5yZWYoaXRlbSk7Cit9CisKK3N0YXRpYyB2b2lkIGR1bXBCYWNrRm9y
d2FyZExpc3RGb3JXZWJWaWV3KFdlYktpdFdlYlZpZXcqIHZpZXcpCit7CisgICAgcHJpbnRmKCJc
bj09PT09PT09PT09PT09IEJhY2sgRm9yd2FyZCBMaXN0ID09PT09PT09PT09PT09XG4iKTsKKyAg
ICBXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIGJmTGlzdCA9IHdlYmtpdF93ZWJfdmlld19nZXRf
YmFja19mb3J3YXJkX2xpc3Qodmlldyk7CisKKyAgICAvLyBQcmludCBvdXQgYWxsIGl0ZW1zIGlu
IHRoZSBsaXN0IGFmdGVyIHByZXZUZXN0QkZJdGVtLCB3aGljaCB3YXMgZnJvbSB0aGUgcHJldmlv
dXMgdGVzdAorICAgIC8vIEdhdGhlciBpdGVtcyBmcm9tIHRoZSBlbmQgb2YgdGhlIGxpc3QsIHRo
ZSBwcmludCB0aGVtIG91dCBmcm9tIG9sZGVzdCB0byBuZXdlc3QKKyAgICBHTGlzdCogaXRlbXNU
b1ByaW50ID0gTlVMTDsKKyAgICBnaW50IGZvcndhcmRMaXN0Q291bnQgPSB3ZWJraXRfd2ViX2Jh
Y2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2xlbmd0aChiZkxpc3QpOworICAgIGZvciAoaW50
IGkgPSBmb3J3YXJkTGlzdENvdW50OyBpID4gMDsgaS0tKSB7CisgICAgICAgIFdlYktpdFdlYkhp
c3RvcnlJdGVtKiBpdGVtID0gd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfbnRoX2l0
ZW0oYmZMaXN0LCBpKTsKKyAgICAgICAgLy8gc29tZXRoaW5nIGlzIHdyb25nIGlmIHRoZSBpdGVt
IGZyb20gdGhlIGxhc3QgdGVzdCBpcyBpbiB0aGUgZm9yd2FyZCBwYXJ0IG9mIHRoZSBiL2YgbGlz
dAorICAgICAgICBhc3NlcnQoaXRlbSAhPSBwcmV2VGVzdEJGSXRlbSk7CisgICAgICAgIGdfb2Jq
ZWN0X3JlZihpdGVtKTsKKyAgICAgICAgaXRlbXNUb1ByaW50ID0gZ19saXN0X2FwcGVuZChpdGVt
c1RvUHJpbnQsIGl0ZW0pOworICAgIH0KKworICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtKiBjdXJy
ZW50SXRlbSA9IHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2N1cnJlbnRfaXRlbShi
Zkxpc3QpOworCisgICAgZ19vYmplY3RfcmVmKGN1cnJlbnRJdGVtKTsKKyAgICBpdGVtc1RvUHJp
bnQgPSBnX2xpc3RfYXBwZW5kKGl0ZW1zVG9QcmludCwgY3VycmVudEl0ZW0pOworCisgICAgZ2lu
dCBiYWNrTGlzdENvdW50ID0gd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfYmFja19s
ZW5ndGgoYmZMaXN0KTsKKyAgICBmb3IgKGludCBpID0gLTE7IGkgPj0gLShiYWNrTGlzdENvdW50
KTsgaS0tKSB7CisgICAgICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtKiBpdGVtID0gd2Via2l0X3dl
Yl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfbnRoX2l0ZW0oYmZMaXN0LCBpKTsKKyAgICAgICAgaWYg
KGl0ZW0gPT0gcHJldlRlc3RCRkl0ZW0pCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZ19v
YmplY3RfcmVmKGl0ZW0pOworICAgICAgICBpdGVtc1RvUHJpbnQgPSBnX2xpc3RfYXBwZW5kKGl0
ZW1zVG9QcmludCwgaXRlbSk7CisgICAgfQorCisgICAgZ2ludCBjdXJyZW50SXRlbUluZGV4ID0g
Z19saXN0X2xlbmd0aChpdGVtc1RvUHJpbnQpIC0gMTsKKyAgICBmb3IgKGludCBpID0gY3VycmVu
dEl0ZW1JbmRleDsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0q
IGl0ZW0gPSBXRUJLSVRfV0VCX0hJU1RPUllfSVRFTShnX2xpc3RfbnRoX2RhdGEoaXRlbXNUb1By
aW50LCBpKSk7CisgICAgICAgIGR1bXBIaXN0b3J5SXRlbShpdGVtLCBoaXN0b3J5SXRlbUluZGVu
dCwgaSA9PSBjdXJyZW50SXRlbUluZGV4KTsKKyAgICAgICAgZ19vYmplY3RfdW5yZWYoaXRlbSk7
CisgICAgfQorICAgIGdfbGlzdF9mcmVlKGl0ZW1zVG9QcmludCk7CisgICAgcHJpbnRmKCI9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIik7Cit9CisKIHN0
YXRpYyB2b2lkIGludmFsaWRhdGVBbnlQcmV2aW91c1dhaXRUb0R1bXBXYXRjaGRvZygpCiB7CiAg
ICAgaWYgKHdhaXRUb0R1bXBXYXRjaGRvZykgewpAQCAtMTM5LDE2ICsyMjMsMjEgQEAgc3RhdGlj
IHZvaWQgaW52YWxpZGF0ZUFueVByZXZpb3VzV2FpdFRvRHVtcFdhdGNoZG9nKCkKIHZvaWQgZHVt
cCgpCiB7CiAgICAgaW52YWxpZGF0ZUFueVByZXZpb3VzV2FpdFRvRHVtcFdhdGNoZG9nKCk7CisK
KyAgICBib29sIGR1bXBBc1RleHQgPSBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBBc1RleHQo
KTsKICAgICBpZiAoZHVtcFRyZWUpIHsKICAgICAgICAgY2hhciogcmVzdWx0ID0gMDsKKyAgICAg
ICAgZ2NoYXIqIHJlc3BvbnNlTWltZVR5cGUgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF9yZXNwb25z
ZV9taW1lX3R5cGUobWFpbkZyYW1lKTsKIAotICAgICAgICBib29sIGR1bXBBc1RleHQgPSBnTGF5
b3V0VGVzdENvbnRyb2xsZXItPmR1bXBBc1RleHQoKTsKLSAgICAgICAgLy8gRklYTUU6IEFsc28g
ZHVtcCB0ZXh0IHJlc3VscyBhcyB0ZXh0LgorICAgICAgICBkdW1wQXNUZXh0ID0gZ19hc2NpaV9z
dHJjYXNlY21wKHJlc3BvbnNlTWltZVR5cGUsICJ0ZXh0L3BsYWluIik7CiAgICAgICAgIGdMYXlv
dXRUZXN0Q29udHJvbGxlci0+c2V0RHVtcEFzVGV4dChkdW1wQXNUZXh0KTsKICAgICAgICAgaWYg
KGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEFzVGV4dCgpKQogICAgICAgICAgICAgcmVzdWx0
ID0gZHVtcEZyYW1lc0FzVGV4dChtYWluRnJhbWUpOwotICAgICAgICBlbHNlCisgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgcmVzdWx0ID0gd2Via2l0X3dlYl9mcmFtZV9kdW1wX3JlbmRlcl90
cmVlKG1haW5GcmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBwcmludGYoIkNvbnRlbnQtVHlw
ZTogJXNcbiIsIHJlc3BvbnNlTWltZVR5cGUpOwogCiAgICAgICAgIGlmICghcmVzdWx0KSB7CiAg
ICAgICAgICAgICBjb25zdCBjaGFyKiBlcnJvck1lc3NhZ2U7CkBAIC0xNjYsMTAgKzI1NSwxMiBA
QCB2b2lkIGR1bXAoKQogICAgICAgICAgICAgZ19mcmVlKHJlc3VsdCk7CiAgICAgICAgICAgICBp
ZiAoIWdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEFzVGV4dCgpICYmICFnTGF5b3V0VGVzdENv
bnRyb2xsZXItPmR1bXBET01Bc1dlYkFyY2hpdmUoKSAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVy
LT5kdW1wU291cmNlQXNXZWJBcmNoaXZlKCkpCiAgICAgICAgICAgICAgICAgZHVtcEZyYW1lU2Ny
b2xsUG9zaXRpb24obWFpbkZyYW1lKTsKLSAgICAgICAgfQogCi0gICAgICAgIGlmIChnTGF5b3V0
VGVzdENvbnRyb2xsZXItPmR1bXBCYWNrRm9yd2FyZExpc3QoKSkgewotICAgICAgICAgICAgLy8g
RklYTUU6IG5vdCBpbXBsZW1lbnRlZAorICAgICAgICAgICAgaWYgKGdMYXlvdXRUZXN0Q29udHJv
bGxlci0+ZHVtcEJhY2tGb3J3YXJkTGlzdCgpKSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6
IG11bHRpcGxlIHdpbmRvd3Mgc3VwcG9ydAorICAgICAgICAgICAgICAgIGR1bXBCYWNrRm9yd2Fy
ZExpc3RGb3JXZWJWaWV3KHdlYlZpZXcpOworICAgICAgICAgICAgICAgIDsKKyAgICAgICAgICAg
IH0KICAgICAgICAgfQogCiAgICAgICAgIGlmIChwcmludFNlcGFyYXRvcnMpIHsKQEAgLTI0OCw2
ICszMzksMTMgQEAgc3RhdGljIHZvaWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIHRlc3RQYXRoT3JV
UkwpCiAgICAgc2l6ZS5oZWlnaHQgPSBpc1NWR1czQ1Rlc3QgPyAzNjAgOiBtYXhWaWV3SGVpZ2h0
OwogICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShHVEtfV0lER0VUKHdlYlZpZXcpLCAmc2l6
ZSk7CiAKKyAgICBpZiAocHJldlRlc3RCRkl0ZW0pCisgICAgICAgIGdfb2JqZWN0X3VucmVmKHBy
ZXZUZXN0QkZJdGVtKTsKKyAgICBXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIGJmTGlzdCA9IHdl
YmtpdF93ZWJfdmlld19nZXRfYmFja19mb3J3YXJkX2xpc3Qod2ViVmlldyk7CisgICAgcHJldlRl
c3RCRkl0ZW0gPSB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9jdXJyZW50X2l0ZW0o
YmZMaXN0KTsKKyAgICBpZiAocHJldlRlc3RCRkl0ZW0pCisgICAgICAgIGdfb2JqZWN0X3JlZihw
cmV2VGVzdEJGSXRlbSk7CisKICAgICB3ZWJraXRfd2ViX3ZpZXdfb3Blbih3ZWJWaWV3LCB1cmwp
OwogCiAgICAgZ19mcmVlKHVybCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCA1NmFlMDFjLi41
NTcxZjMxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0
VGVzdENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTY5LDggKzY5LDcgQEAgdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJCYWNrRm9yd2FyZExpc3QoKQogICAgIGdpbnQgbGltaXQg
PSB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9saW1pdChsaXN0KTsKICAgICB3ZWJr
aXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X3NldF9saW1pdChsaXN0LCAwKTsKICAgICB3ZWJraXRf
d2ViX2JhY2tfZm9yd2FyZF9saXN0X3NldF9saW1pdChsaXN0LCBsaW1pdCk7Ci0gICAgLy8gRklY
TUU6IGltcGxlbWVudCBhZGRfaXRlbSgpCi0gICAgLy93ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9s
aXN0X2FkZF9pdGVtKGxpc3QsIGl0ZW0pOworICAgIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xp
c3RfYWRkX2l0ZW0obGlzdCwgaXRlbSk7CiAgICAgd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlz
dF9nb190b19pdGVtKGxpc3QsIGl0ZW0pOwogICAgIGdfb2JqZWN0X3VucmVmKGl0ZW0pOwogfQpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1dvcmtRdWV1ZUl0ZW1H
dGsuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1dvcmtRdWV1ZUl0ZW1HdGsu
Y3BwCmluZGV4IDU1MjY2NjcuLjAwMDBjOTIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ay9Xb3JrUXVldWVJdGVtR3RrLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvV29ya1F1ZXVlSXRlbUd0ay5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5
cmlnaHQgKEMpIDIwMDkgSmFuIEFsb256byA8am1hbG9uem9Ad2Via2l0Lm9yZz4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtNzAsNSArNzEsMTMgQEAgdm9pZCBTY3JpcHRJdGVtOjppbnZva2UoKSBj
b25zdAogdm9pZCBCYWNrRm9yd2FyZEl0ZW06Omludm9rZSgpIGNvbnN0CiB7CiAgICAgV2ViS2l0
V2ViVmlldyogd2ViVmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFt
ZSk7Ci0gICAgd2Via2l0X3dlYl92aWV3X2dvX2JhY2tfb3JfZm9yd2FyZCh3ZWJWaWV3LCBtX2hv
d0Zhcik7CisgICAgaWYgKG1faG93RmFyID09IDEpCisgICAgICAgIHdlYmtpdF93ZWJfdmlld19n
b19mb3J3YXJkKHdlYlZpZXcpOworICAgIGVsc2UgaWYgKG1faG93RmFyID09IC0xKQorICAgICAg
ICB3ZWJraXRfd2ViX3ZpZXdfZ29fYmFjayh3ZWJWaWV3KTsKKyAgICBlbHNlIHsKKyAgICAgICAg
V2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJCYWNrRm9yd2FyZExpc3QgPSB3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X2JhY2tfZm9yd2FyZF9saXN0KHdlYlZpZXcpOworICAgICAgICBXZWJLaXRXZWJI
aXN0b3J5SXRlbSogaXRlbSA9IHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X250aF9p
dGVtKHdlYkJhY2tGb3J3YXJkTGlzdCwgbV9ob3dGYXIpOworICAgICAgICB3ZWJraXRfd2ViX3Zp
ZXdfZ29fdG9fYmFja19mb3J3YXJkX2l0ZW0od2ViVmlldywgaXRlbSk7CisgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28130</attachid>
            <date>2009-02-28 20:24:45 -0800</date>
            <delta_ts>2009-03-01 08:07:07 -0800</delta_ts>
            <desc>history item fixes and API additions for dumping a history item</desc>
            <filename>gtk-drt-http-historyitem.patch</filename>
            <type>text/plain</type>
            <size>9538</size>
            <attacher name="Jan Alonzo">jmalonzo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9XZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQu
b3JpZy9XZWJLaXQvZ3RrL0NoYW5nZUxvZwkyMDA5LTAzLTAxIDE1OjE3OjA0LjAwMDAwMDAwMCAr
MTEwMAorKysgV2ViS2l0L1dlYktpdC9ndGsvQ2hhbmdlTG9nCTIwMDktMDMtMDEgMTU6MjI6MTku
MDAwMDAwMDAwICsxMTAwCkBAIC0xLDMgKzEsMjggQEAKKzIwMDktMDItMjggIEphbiBNaWNoYWVs
IEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gZ2V0IHRoZSBIVFRQIGxheW91dCB0ZXN0cyBn
b2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQy
NTkKKworICAgICAgICBDcmVhdGUgYSBXZWJLaXRXZWJIaXN0b3J5SXRlbSBmb3IgZWFjaCBXZWJD
b3JlOjpIaXN0b3J5SXRlbSB3aGVuCisgICAgICAgIG5lY2Vzc2FyeS4KKyAgICAgICAgQWRkIG5l
Y2Vzc2FyeSBBUEkgYWRkaXRpb25zIGZvciB1cyB0byBiZSBhYmxlIHRvIGR1bXAgYSBXZWJLaXRX
ZWJIaXN0b3J5SXRlbQorCisgICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKKyAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcDoKKyAgICAgICAgKF9XZWJL
aXRXZWJCYWNrRm9yd2FyZExpc3RQcml2YXRlOjp3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0
X2dldF9mb3J3YXJkX2xpc3Rfd2l0aF9saW1pdCk6CisgICAgICAgIChfV2ViS2l0V2ViQmFja0Zv
cndhcmRMaXN0UHJpdmF0ZTo6d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfYmFja19s
aXN0X3dpdGhfbGltaXQpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5j
cHA6CisgICAgICAgIChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hp
c3RvcnlfaXRlbV9uZXdfd2l0aF9jb3JlX2l0ZW0pOgorICAgICAgICAoX1dlYktpdFdlYkhpc3Rv
cnlJdGVtUHJpdmF0ZTo6d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3KToKKyAgICAgICAgKF9X
ZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193
aXRoX2RhdGEpOgorICAgICAgICAoX1dlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZTo6d2Via2l0
X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X3RhcmdldCk6CisgICAgICAgIChfV2ViS2l0V2ViSGlzdG9y
eUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9pc190YXJnZXRfaXRlbSk6Cisg
ICAgICAgIChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hpc3Rvcnlf
aXRlbV9nZXRfY2hpbGRyZW4pOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAgICAgKFdl
YktpdDo6a2l0KToKKwogMjAwOS0wMi0yOCAgQ2hyaXN0aWFuIER5d2FuICA8Y2hyaXN0aWFuQHR3
b3RvYXN0cy5kZT4KIAogICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCkluZGV4
OiBXZWJLaXQvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC5vcmlnL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAkyMDA5LTAzLTAx
IDE1OjE3OjA0LjAwMDAwMDAwMCArMTEwMAorKysgV2ViS2l0L1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHByaXZhdGUuaAkyMDA5LTAzLTAxIDE1OjIyOjE5LjAwMDAwMDAwMCArMTEwMApAQCAtNTcs
NyArNTcsNyBAQAogICAgIFdlYktpdFdlYlZpZXcqIGtpdChXZWJDb3JlOjpQYWdlKik7CiAKICAg
ICBXZWJDb3JlOjpIaXN0b3J5SXRlbSogY29yZShXZWJLaXRXZWJIaXN0b3J5SXRlbSopOwotICAg
IFdlYktpdFdlYkhpc3RvcnlJdGVtKiBraXQoV2ViQ29yZTo6SGlzdG9yeUl0ZW0qKTsKKyAgICBX
ZWJLaXRXZWJIaXN0b3J5SXRlbSoga2l0KFBhc3NSZWZQdHI8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+
KTsKIAogICAgIFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlzdCogY29yZShXZWJLaXRXZWJCYWNrRm9y
d2FyZExpc3QqKTsKIApAQCAtMTIzLDggKzEyMywxOSBAQAogICAgIHZvaWQKICAgICB3ZWJraXRf
d2ViX2ZyYW1lX2NvcmVfZnJhbWVfZ29uZShXZWJLaXRXZWJGcmFtZSopOwogCisgICAgLy8gV2Vi
S2l0V2ViSGlzdG9yeUl0ZW0gcHJpdmF0ZQogICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtKgotICAg
IHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRoX2NvcmVfaXRlbShXZWJDb3JlOjpIaXN0
b3J5SXRlbSopOworICAgIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRoX2NvcmVfaXRl
bShQYXNzUmVmUHRyPFdlYkNvcmU6Okhpc3RvcnlJdGVtPiBoaXN0b3J5SXRlbSk7CisKKyAgICBX
RUJLSVRfQVBJIEdfQ09OU1RfUkVUVVJOIGdjaGFyKgorICAgIHdlYmtpdF93ZWJfaGlzdG9yeV9p
dGVtX2dldF90YXJnZXQoV2ViS2l0V2ViSGlzdG9yeUl0ZW0qKTsKKworICAgIFdFQktJVF9BUEkg
Z2Jvb2xlYW4KKyAgICB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9pc190YXJnZXRfaXRlbShXZWJL
aXRXZWJIaXN0b3J5SXRlbSopOworCisgICAgV0VCS0lUX0FQSSBHTGlzdCoKKyAgICB3ZWJraXRf
d2ViX2hpc3RvcnlfaXRlbV9nZXRfY2hpbGRyZW4oV2ViS2l0V2ViSGlzdG9yeUl0ZW0qKTsKKyAg
ICAvLyBlbmQgV2ViS2l0V2ViSGlzdG9yeUl0ZW0gcHJpdmF0ZQogCiAgICAgdm9pZAogICAgIHdl
YmtpdF93ZWJfaW5zcGVjdG9yX3NldF9pbnNwZWN0b3JfY2xpZW50KFdlYktpdFdlYkluc3BlY3Rv
ciosIFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50Kik7CkluZGV4OiBXZWJLaXQvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQu
b3JpZy9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwCTIwMDkt
MDMtMDEgMTU6MTc6MDQuMDAwMDAwMDAwICsxMTAwCisrKyBXZWJLaXQvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcAkyMDA5LTAzLTAxIDE1OjIyOjE5LjAwMDAw
MDAwMCArMTEwMApAQCAtMTg5LDcgKzE4OSw3IEBACiAgICAgYmFja0ZvcndhcmRMaXN0LT5mb3J3
YXJkTGlzdFdpdGhMaW1pdChsaW1pdCwgaXRlbXMpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGl0ZW1zLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgIFdlYktpdFdlYkhpc3RvcnlJdGVt
KiB3ZWJIaXN0b3J5SXRlbSA9IHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRoX2NvcmVf
aXRlbShpdGVtc1tpXS5nZXQoKSk7CisgICAgICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtKiB3ZWJI
aXN0b3J5SXRlbSA9IHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRoX2NvcmVfaXRlbShp
dGVtc1tpXSk7CiAgICAgICAgIGZvcndhcmRJdGVtcyA9IGdfbGlzdF9wcmVwZW5kKGZvcndhcmRJ
dGVtcywgZ19vYmplY3RfcmVmKHdlYkhpc3RvcnlJdGVtKSk7CiAgICAgfQogCkBAIC0yMTksNyAr
MjE5LDcgQEAKICAgICBiYWNrRm9yd2FyZExpc3QtPmJhY2tMaXN0V2l0aExpbWl0KGxpbWl0LCBp
dGVtcyk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaXRlbXMuc2l6ZSgpOyBpKysp
IHsKLSAgICAgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdlYkhpc3RvcnlJdGVtID0gd2Via2l0
X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhfY29yZV9pdGVtKGl0ZW1zW2ldLmdldCgpKTsKKyAg
ICAgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdlYkhpc3RvcnlJdGVtID0gd2Via2l0X3dlYl9o
aXN0b3J5X2l0ZW1fbmV3X3dpdGhfY29yZV9pdGVtKGl0ZW1zW2ldKTsKICAgICAgICAgYmFja0l0
ZW1zID0gZ19saXN0X3ByZXBlbmQoYmFja0l0ZW1zLCBnX29iamVjdF9yZWYod2ViSGlzdG9yeUl0
ZW0pKTsKICAgICB9CiAKSW5kZXg6IFdlYktpdC9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJo
aXN0b3J5aXRlbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Lm9yaWcvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwCTIwMDktMDMtMDEgMTU6MTc6MDQuMDAwMDAwMDAw
ICsxMTAwCisrKyBXZWJLaXQvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0u
Y3BwCTIwMDktMDMtMDEgMTU6MjI6MTkuMDAwMDAwMDAwICsxMTAwCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBKYW4gTWljaGFlbCBDLiBBbG9uem8KKyAqIENvcHly
aWdodCAoQykgMjAwOCwgMjAwOSBKYW4gTWljaGFlbCBDLiBBbG9uem8KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtNTMsNyArNTMsNyBAQAogZXh0ZXJuICJDIiB7CiAKIHN0cnVjdCBfV2ViS2l0V2Vi
SGlzdG9yeUl0ZW1Qcml2YXRlIHsKLSAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpIaXN0b3J5SXRl
bT4gaGlzdG9yeUl0ZW07CisgICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGhpc3RvcnlJdGVtOwog
CiAgICAgV2ViQ29yZTo6Q1N0cmluZyB0aXRsZTsKICAgICBXZWJDb3JlOjpDU3RyaW5nIGFsdGVy
bmF0ZVRpdGxlOwpAQCAtMjcwLDIxICsyNzAsOSBAQAogfQogCiAvKiBIZWxwZXIgZnVuY3Rpb24g
dG8gY3JlYXRlIGEgbmV3IFdlYkhpc3RvcnlJdGVtIGluc3RhbmNlIHdoZW4gbmVlZGVkICovCi1X
ZWJLaXRXZWJIaXN0b3J5SXRlbSogd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhfY29y
ZV9pdGVtKFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBpdGVtKQorV2ViS2l0V2ViSGlzdG9yeUl0ZW0q
IHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRoX2NvcmVfaXRlbShQYXNzUmVmUHRyPFdl
YkNvcmU6Okhpc3RvcnlJdGVtPiBoaXN0b3J5SXRlbSkKIHsKLSAgICBXZWJLaXRXZWJIaXN0b3J5
SXRlbSogd2ViSGlzdG9yeUl0ZW0gPSBraXQoaXRlbSk7Ci0KLSAgICBpZiAod2ViSGlzdG9yeUl0
ZW0pCi0gICAgICAgIGdfb2JqZWN0X3JlZih3ZWJIaXN0b3J5SXRlbSk7Ci0gICAgZWxzZSB7Ci0g
ICAgICAgIHdlYkhpc3RvcnlJdGVtID0gV0VCS0lUX1dFQl9ISVNUT1JZX0lURU0oZ19vYmplY3Rf
bmV3KFdFQktJVF9UWVBFX1dFQl9ISVNUT1JZX0lURU0sIE5VTEwpKTsKLSAgICAgICAgV2ViS2l0
V2ViSGlzdG9yeUl0ZW1Qcml2YXRlKiBwcml2ID0gd2ViSGlzdG9yeUl0ZW0tPnByaXY7Ci0KLSAg
ICAgICAgcHJpdi0+aGlzdG9yeUl0ZW0gPSBpdGVtOwotICAgICAgICB3ZWJraXRfaGlzdG9yeV9p
dGVtX2FkZCh3ZWJIaXN0b3J5SXRlbSwgcHJpdi0+aGlzdG9yeUl0ZW0uZ2V0KCkpOwotICAgIH0K
LQotICAgIHJldHVybiB3ZWJIaXN0b3J5SXRlbTsKKyAgICByZXR1cm4ga2l0KGhpc3RvcnlJdGVt
KTsKIH0KIAogCkBAIC0zMDAsOCArMjg4LDkgQEAKICAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbSog
d2ViSGlzdG9yeUl0ZW0gPSBXRUJLSVRfV0VCX0hJU1RPUllfSVRFTShnX29iamVjdF9uZXcoV0VC
S0lUX1RZUEVfV0VCX0hJU1RPUllfSVRFTSwgTlVMTCkpOwogICAgIFdlYktpdFdlYkhpc3RvcnlJ
dGVtUHJpdmF0ZSogcHJpdiA9IHdlYkhpc3RvcnlJdGVtLT5wcml2OwogCi0gICAgcHJpdi0+aGlz
dG9yeUl0ZW0gPSBXZWJDb3JlOjpIaXN0b3J5SXRlbTo6Y3JlYXRlKCk7Ci0gICAgd2Via2l0X2hp
c3RvcnlfaXRlbV9hZGQod2ViSGlzdG9yeUl0ZW0sIHByaXYtPmhpc3RvcnlJdGVtLmdldCgpKTsK
KyAgICBSZWZQdHI8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+IGl0ZW0gPSBXZWJDb3JlOjpIaXN0b3J5
SXRlbTo6Y3JlYXRlKCk7CisgICAgcHJpdi0+aGlzdG9yeUl0ZW0gPSBpdGVtLmdldCgpOworICAg
IHdlYmtpdF9oaXN0b3J5X2l0ZW1fYWRkKHdlYkhpc3RvcnlJdGVtLCBwcml2LT5oaXN0b3J5SXRl
bSk7CiAKICAgICByZXR1cm4gd2ViSGlzdG9yeUl0ZW07CiB9CkBAIC0zMjMsOCArMzEyLDkgQEAK
ICAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbSogd2ViSGlzdG9yeUl0ZW0gPSBXRUJLSVRfV0VCX0hJ
U1RPUllfSVRFTShnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VCX0hJU1RPUllfSVRFTSwgTlVM
TCkpOwogICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZSogcHJpdiA9IHdlYkhpc3RvcnlJ
dGVtLT5wcml2OwogCi0gICAgcHJpdi0+aGlzdG9yeUl0ZW0gPSBXZWJDb3JlOjpIaXN0b3J5SXRl
bTo6Y3JlYXRlKGhpc3RvcnlVcmksIGhpc3RvcnlUaXRsZSwgMCk7Ci0gICAgd2Via2l0X2hpc3Rv
cnlfaXRlbV9hZGQod2ViSGlzdG9yeUl0ZW0sIHByaXYtPmhpc3RvcnlJdGVtLmdldCgpKTsKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+IGl0ZW0gPSBXZWJDb3JlOjpIaXN0b3J5SXRl
bTo6Y3JlYXRlKGhpc3RvcnlVcmksIGhpc3RvcnlUaXRsZSwgMCk7CisgICAgcHJpdi0+aGlzdG9y
eUl0ZW0gPSBpdGVtLmdldCgpOworICAgIHdlYmtpdF9oaXN0b3J5X2l0ZW1fYWRkKHdlYkhpc3Rv
cnlJdGVtLCBwcml2LT5oaXN0b3J5SXRlbSk7CiAKICAgICByZXR1cm4gd2ViSGlzdG9yeUl0ZW07
CiB9CkBAIC00NTIsNiArNDQyLDUxIEBACiAgICAgcmV0dXJuIGl0ZW0tPmxhc3RWaXNpdGVkVGlt
ZSgpOwogfQogCisvKiBwcml2YXRlIG1ldGhvZHMgKi8KKworR19DT05TVF9SRVRVUk4gZ2NoYXIq
IHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF90YXJnZXQoV2ViS2l0V2ViSGlzdG9yeUl0ZW0q
IHdlYkhpc3RvcnlJdGVtKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19X
RUJfSElTVE9SWV9JVEVNKHdlYkhpc3RvcnlJdGVtKSwgTlVMTCk7CisKKyAgICBXZWJDb3JlOjpI
aXN0b3J5SXRlbSogaXRlbSA9IGNvcmUod2ViSGlzdG9yeUl0ZW0pOworCisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoaXRlbSAhPSBOVUxMLCBOVUxMKTsKKworICAgIFdlYkNvcmU6OkNTdHJpbmcg
dCA9IGl0ZW0tPnRhcmdldCgpLnV0ZjgoKTsKKyAgICByZXR1cm4gdC5kYXRhKCk7Cit9CisKK2di
b29sZWFuIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2lzX3RhcmdldF9pdGVtKFdlYktpdFdlYkhp
c3RvcnlJdGVtKiB3ZWJIaXN0b3J5SXRlbSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfSVNfV0VCX0hJU1RPUllfSVRFTSh3ZWJIaXN0b3J5SXRlbSksIE5VTEwpOworCisgICAg
V2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGl0ZW0gPSBjb3JlKHdlYkhpc3RvcnlJdGVtKTsKKworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGl0ZW0gIT0gTlVMTCwgTlVMTCk7CisKKyAgICByZXR1cm4g
aXRlbS0+aXNUYXJnZXRJdGVtKCk7Cit9CisKK0dMaXN0KiB3ZWJraXRfd2ViX2hpc3RvcnlfaXRl
bV9nZXRfY2hpbGRyZW4oV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdlYkhpc3RvcnlJdGVtKQorewor
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfSElTVE9SWV9JVEVNKHdlYkhp
c3RvcnlJdGVtKSwgTlVMTCk7CisKKyAgICBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaXRlbSA9IGNv
cmUod2ViSGlzdG9yeUl0ZW0pOworCisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoaXRlbSAhPSBO
VUxMLCBOVUxMKTsKKworICAgIGNvbnN0IFdlYkNvcmU6Okhpc3RvcnlJdGVtVmVjdG9yJiBjaGls
ZHJlbiA9IGl0ZW0tPmNoaWxkcmVuKCk7CisgICAgaWYgKCFjaGlsZHJlbi5zaXplKCkpCisgICAg
ICAgIHJldHVybiBOVUxMOworCisgICAgdW5zaWduZWQgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsK
KyAgICBHTGlzdCoga2lkcyA9IE5VTEw7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNp
emU7ICsraSkKKyAgICAgICAga2lkcyA9IGdfbGlzdF9wcmVwZW5kKGtpZHMsIGtpdChjaGlsZHJl
bltpXS5nZXQoKSkpOworCisgICAgcmV0dXJuIGdfbGlzdF9yZXZlcnNlKGtpZHMpOworfQorCiB9
IC8qIGVuZCBleHRlcm4gIkMiICovCiAKIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBXZWJLaXQ6OmNv
cmUoV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdlYkhpc3RvcnlJdGVtKQpAQCAtNDU5LDE5ICs0OTQs
MjkgQEAKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0hJU1RPUllfSVRF
TSh3ZWJIaXN0b3J5SXRlbSksIE5VTEwpOwogCiAgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2
YXRlKiBwcml2ID0gd2ViSGlzdG9yeUl0ZW0tPnByaXY7Ci0gICAgV1RGOjpSZWZQdHI8V2ViQ29y
ZTo6SGlzdG9yeUl0ZW0+IGhpc3RvcnlJdGVtID0gcHJpdi0+aGlzdG9yeUl0ZW07CiAKLSAgICBy
ZXR1cm4gaGlzdG9yeUl0ZW0gPyBoaXN0b3J5SXRlbS5nZXQoKSA6IDA7CisgICAgcmV0dXJuIHBy
aXYtPmhpc3RvcnlJdGVtID8gcHJpdi0+aGlzdG9yeUl0ZW0gOiAwOwogfQogCi1XZWJLaXRXZWJI
aXN0b3J5SXRlbSogV2ViS2l0OjpraXQoV2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGhpc3RvcnlJdGVt
KQorV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIFdlYktpdDo6a2l0KFBhc3NSZWZQdHI8V2ViQ29yZTo6
SGlzdG9yeUl0ZW0+IGhpc3RvcnlJdGVtKQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGhp
c3RvcnlJdGVtICE9IE5VTEwsIE5VTEwpOwogCisgICAgUmVmUHRyPFdlYkNvcmU6Okhpc3RvcnlJ
dGVtPiBpdGVtID0gaGlzdG9yeUl0ZW07CisKICAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbSogd2Vi
SGlzdG9yeUl0ZW07CiAgICAgR0hhc2hUYWJsZSogdGFibGUgPSB3ZWJraXRfaGlzdG9yeV9pdGVt
cygpOwogCi0gICAgd2ViSGlzdG9yeUl0ZW0gPSAoV2ViS2l0V2ViSGlzdG9yeUl0ZW0qKSBnX2hh
c2hfdGFibGVfbG9va3VwKHRhYmxlLCBoaXN0b3J5SXRlbSk7CisgICAgd2ViSGlzdG9yeUl0ZW0g
PSAoV2ViS2l0V2ViSGlzdG9yeUl0ZW0qKSBnX2hhc2hfdGFibGVfbG9va3VwKHRhYmxlLCBpdGVt
LmdldCgpKTsKKworICAgIGlmICghd2ViSGlzdG9yeUl0ZW0pIHsKKyAgICAgICAgd2ViSGlzdG9y
eUl0ZW0gPSBXRUJLSVRfV0VCX0hJU1RPUllfSVRFTShnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVf
V0VCX0hJU1RPUllfSVRFTSwgTlVMTCkpOworICAgICAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbVBy
aXZhdGUqIHByaXYgPSB3ZWJIaXN0b3J5SXRlbS0+cHJpdjsKKworICAgICAgICBwcml2LT5oaXN0
b3J5SXRlbSA9IGl0ZW0uZ2V0KCk7CisgICAgICAgIHdlYmtpdF9oaXN0b3J5X2l0ZW1fYWRkKHdl
Ykhpc3RvcnlJdGVtLCBwcml2LT5oaXN0b3J5SXRlbSk7CisgICAgfQorCiAgICAgcmV0dXJuIHdl
Ykhpc3RvcnlJdGVtOwogfQogCg==
</data>
<flag name="review"
          id="13737"
          type_id="1"
          status="+"
          setter="zecke"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28132</attachid>
            <date>2009-02-28 20:51:14 -0800</date>
            <delta_ts>2009-03-01 08:26:54 -0800</delta_ts>
            <desc>DRT - support for dumping the back/forward history items and navigation and back/forward fixes</desc>
            <filename>backforward_drt_support.patch</filename>
            <type>text/plain</type>
            <size>7799</size>
            <attacher name="Jan Alonzo">jmalonzo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRy
ZWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC5vcmlnL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAJMjAwOS0wMy0wMSAxNTozODozNC4wMDAwMDAwMDAg
KzExMDAKKysrIFdlYktpdC9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRl
clRyZWUuY3BwCTIwMDktMDMtMDEgMTU6Mzk6MTYuMDAwMDAwMDAwICsxMTAwCkBAIC0xLDYgKzEs
NyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQu
b3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQG51YW50aS5jb20+Cisg
KiBDb3B5cmlnaHQgKEMpIDIwMDkgSmFuIEFsb256byA8am1hbG9uem9AZ21haWwuY29tPgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00OSw2ICs1MCw5IEBACiAKIGV4dGVybiAi
QyIgewogLy8gVGhpcyBBUEkgaXMgbm90IHlldCBwdWJsaWMuCitleHRlcm4gR19DT05TVF9SRVRV
Uk4gZ2NoYXIqIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF90YXJnZXQoV2ViS2l0V2ViSGlz
dG9yeUl0ZW0qKTsKK2V4dGVybiBnYm9vbGVhbiB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9pc190
YXJnZXRfaXRlbShXZWJLaXRXZWJIaXN0b3J5SXRlbSopOworZXh0ZXJuIEdMaXN0KiB3ZWJraXRf
d2ViX2hpc3RvcnlfaXRlbV9nZXRfY2hpbGRyZW4oV2ViS2l0V2ViSGlzdG9yeUl0ZW0qKTsKIGV4
dGVybiBHU0xpc3QqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2NoaWxkcmVuKFdlYktpdFdlYkZyYW1l
KiBmcmFtZSk7CiBleHRlcm4gZ2NoYXIqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2lubmVyX3RleHQo
V2ViS2l0V2ViRnJhbWUqIGZyYW1lKTsKIGV4dGVybiBnY2hhciogd2Via2l0X3dlYl9mcmFtZV9k
dW1wX3JlbmRlcl90cmVlKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7CkBAIC02Niw4ICs3MCwxMSBA
QAogV2ViS2l0V2ViRnJhbWUqIHRvcExvYWRpbmdGcmFtZSA9IDA7CiBndWludCB3YWl0VG9EdW1w
V2F0Y2hkb2cgPSAwOwogCitzdGF0aWMgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHByZXZUZXN0QkZJ
dGVtID0gTlVMTDsgLy8gY3VycmVudCBiL2YgaXRlbSBhdCB0aGUgZW5kIG9mIHRoZSBwcmV2aW91
cyB0ZXN0CisKIGNvbnN0IHVuc2lnbmVkIG1heFZpZXdIZWlnaHQgPSA2MDA7CiBjb25zdCB1bnNp
Z25lZCBtYXhWaWV3V2lkdGggPSA4MDA7Citjb25zdCB1bnNpZ25lZCBoaXN0b3J5SXRlbUluZGVu
dCA9IDg7CiAKIHN0YXRpYyBnY2hhciogYXV0b2NvcnJlY3RVUkwoY29uc3QgZ2NoYXIqIHVybCkK
IHsKQEAgLTEyOCw2ICsxMzUsODEgQEAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMg
Z2ludCBjb21wYXJlSGlzdG9yeUl0ZW1zKGdwb2ludGVyKiBpdGVtMSwgZ3BvaW50ZXIqIGl0ZW0y
KQoreworICAgIHJldHVybiBnX2FzY2lpX3N0cmNhc2VjbXAod2Via2l0X3dlYl9oaXN0b3J5X2l0
ZW1fZ2V0X3RhcmdldChXRUJLSVRfV0VCX0hJU1RPUllfSVRFTShpdGVtMSkpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X3RhcmdldChX
RUJLSVRfV0VCX0hJU1RPUllfSVRFTShpdGVtMikpKTsKK30KKworc3RhdGljIHZvaWQgZHVtcEhp
c3RvcnlJdGVtKFdlYktpdFdlYkhpc3RvcnlJdGVtKiBpdGVtLCBpbnQgaW5kZW50LCBib29sIGN1
cnJlbnQpCit7CisgICAgYXNzZXJ0KGl0ZW0gIT0gTlVMTCk7CisgICAgaW50IHN0YXJ0ID0gMDsK
KyAgICBnX29iamVjdF9yZWYoaXRlbSk7CisgICAgaWYgKGN1cnJlbnQpIHsKKyAgICAgICAgcHJp
bnRmKCJjdXJyLT4iKTsKKyAgICAgICAgc3RhcnQgPSA2OworICAgIH0KKyAgICBmb3IgKGludCBp
ID0gc3RhcnQ7IGkgPCBpbmRlbnQ7IGkrKykKKyAgICAgICAgcHV0Y2hhcignICcpOworICAgIHBy
aW50ZigiJXMiLCB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfdXJpKGl0ZW0pKTsKKyAgICBj
b25zdCBnY2hhciogdGFyZ2V0ID0gd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X3RhcmdldChp
dGVtKTsKKyAgICBpZiAodGFyZ2V0ICYmIGdfdXRmOF9zdHJsZW4odGFyZ2V0LCAwKSA+IDApCisg
ICAgICAgIHByaW50ZigiIChpbiBmcmFtZSBcIiVzXCIpIiwgdGFyZ2V0KTsKKyAgICBpZiAod2Vi
a2l0X3dlYl9oaXN0b3J5X2l0ZW1faXNfdGFyZ2V0X2l0ZW0oaXRlbSkpCisgICAgICAgIHByaW50
ZigiICAqKm5hdiB0YXJnZXQqKiIpOworICAgIHB1dGNoYXIoJ1xuJyk7CisgICAgR0xpc3QqIGtp
ZHMgPSB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfY2hpbGRyZW4oaXRlbSk7CisgICAgaWYg
KGtpZHMpIHsKKyAgICAgICAgLy8gbXVzdCBzb3J0IHRvIGVsaW1pbmF0ZSBhcmJpdHJhcnkgcmVz
dWx0IG9yZGVyaW5nIHdoaWNoIGRlZmVhdHMgcmVwcm9kdWNpYmxlIHRlc3RpbmcKKyAgICAgICAg
a2lkcyA9IGdfbGlzdF9zb3J0KGtpZHMsIChHQ29tcGFyZUZ1bmMpIGNvbXBhcmVIaXN0b3J5SXRl
bXMpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZ19saXN0X2xlbmd0aChraWRz
KTsgaSsrKQorICAgICAgICAgICAgZHVtcEhpc3RvcnlJdGVtKFdFQktJVF9XRUJfSElTVE9SWV9J
VEVNKGdfbGlzdF9udGhfZGF0YShraWRzLCBpKSksIGluZGVudCs0LCBGQUxTRSk7CisgICAgfQor
ICAgIGdfb2JqZWN0X3VucmVmKGl0ZW0pOworfQorCitzdGF0aWMgdm9pZCBkdW1wQmFja0Zvcndh
cmRMaXN0Rm9yV2ViVmlldyhXZWJLaXRXZWJWaWV3KiB2aWV3KQoreworICAgIHByaW50ZigiXG49
PT09PT09PT09PT09PSBCYWNrIEZvcndhcmQgTGlzdCA9PT09PT09PT09PT09PVxuIik7CisgICAg
V2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiBiZkxpc3QgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2Jh
Y2tfZm9yd2FyZF9saXN0KHZpZXcpOworCisgICAgLy8gUHJpbnQgb3V0IGFsbCBpdGVtcyBpbiB0
aGUgbGlzdCBhZnRlciBwcmV2VGVzdEJGSXRlbSwgd2hpY2ggd2FzIGZyb20gdGhlIHByZXZpb3Vz
IHRlc3QKKyAgICAvLyBHYXRoZXIgaXRlbXMgZnJvbSB0aGUgZW5kIG9mIHRoZSBsaXN0LCB0aGUg
cHJpbnQgdGhlbSBvdXQgZnJvbSBvbGRlc3QgdG8gbmV3ZXN0CisgICAgR0xpc3QqIGl0ZW1zVG9Q
cmludCA9IE5VTEw7CisgICAgZ2ludCBmb3J3YXJkTGlzdENvdW50ID0gd2Via2l0X3dlYl9iYWNr
X2ZvcndhcmRfbGlzdF9nZXRfZm9yd2FyZF9sZW5ndGgoYmZMaXN0KTsKKyAgICBmb3IgKGludCBp
ID0gZm9yd2FyZExpc3RDb3VudDsgaSA+IDA7IGktLSkgeworICAgICAgICBXZWJLaXRXZWJIaXN0
b3J5SXRlbSogaXRlbSA9IHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X250aF9pdGVt
KGJmTGlzdCwgaSk7CisgICAgICAgIC8vIHNvbWV0aGluZyBpcyB3cm9uZyBpZiB0aGUgaXRlbSBm
cm9tIHRoZSBsYXN0IHRlc3QgaXMgaW4gdGhlIGZvcndhcmQgcGFydCBvZiB0aGUgYi9mIGxpc3QK
KyAgICAgICAgYXNzZXJ0KGl0ZW0gIT0gcHJldlRlc3RCRkl0ZW0pOworICAgICAgICBnX29iamVj
dF9yZWYoaXRlbSk7CisgICAgICAgIGl0ZW1zVG9QcmludCA9IGdfbGlzdF9hcHBlbmQoaXRlbXNU
b1ByaW50LCBpdGVtKTsKKyAgICB9CisKKyAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbSogY3VycmVu
dEl0ZW0gPSB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9jdXJyZW50X2l0ZW0oYmZM
aXN0KTsKKworICAgIGdfb2JqZWN0X3JlZihjdXJyZW50SXRlbSk7CisgICAgaXRlbXNUb1ByaW50
ID0gZ19saXN0X2FwcGVuZChpdGVtc1RvUHJpbnQsIGN1cnJlbnRJdGVtKTsKKworICAgIGdpbnQg
YmFja0xpc3RDb3VudCA9IHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2JhY2tfbGVu
Z3RoKGJmTGlzdCk7CisgICAgZm9yIChpbnQgaSA9IC0xOyBpID49IC0oYmFja0xpc3RDb3VudCk7
IGktLSkgeworICAgICAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbSogaXRlbSA9IHdlYmtpdF93ZWJf
YmFja19mb3J3YXJkX2xpc3RfZ2V0X250aF9pdGVtKGJmTGlzdCwgaSk7CisgICAgICAgIGlmIChp
dGVtID09IHByZXZUZXN0QkZJdGVtKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGdfb2Jq
ZWN0X3JlZihpdGVtKTsKKyAgICAgICAgaXRlbXNUb1ByaW50ID0gZ19saXN0X2FwcGVuZChpdGVt
c1RvUHJpbnQsIGl0ZW0pOworICAgIH0KKworICAgIGdpbnQgY3VycmVudEl0ZW1JbmRleCA9IGdf
bGlzdF9sZW5ndGgoaXRlbXNUb1ByaW50KSAtIDE7CisgICAgZm9yIChpbnQgaSA9IGN1cnJlbnRJ
dGVtSW5kZXg7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtKiBp
dGVtID0gV0VCS0lUX1dFQl9ISVNUT1JZX0lURU0oZ19saXN0X250aF9kYXRhKGl0ZW1zVG9Qcmlu
dCwgaSkpOworICAgICAgICBkdW1wSGlzdG9yeUl0ZW0oaXRlbSwgaGlzdG9yeUl0ZW1JbmRlbnQs
IGkgPT0gY3VycmVudEl0ZW1JbmRleCk7CisgICAgICAgIGdfb2JqZWN0X3VucmVmKGl0ZW0pOwor
ICAgIH0KKyAgICBnX2xpc3RfZnJlZShpdGVtc1RvUHJpbnQpOworICAgIHByaW50ZigiPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIpOworfQorCiBzdGF0
aWMgdm9pZCBpbnZhbGlkYXRlQW55UHJldmlvdXNXYWl0VG9EdW1wV2F0Y2hkb2coKQogewogICAg
IGlmICh3YWl0VG9EdW1wV2F0Y2hkb2cpIHsKQEAgLTE2NiwxMCArMjQ4LDEyIEBACiAgICAgICAg
ICAgICBnX2ZyZWUocmVzdWx0KTsKICAgICAgICAgICAgIGlmICghZ0xheW91dFRlc3RDb250cm9s
bGVyLT5kdW1wQXNUZXh0KCkgJiYgIWdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcERPTUFzV2Vi
QXJjaGl2ZSgpICYmICFnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBTb3VyY2VBc1dlYkFyY2hp
dmUoKSkKICAgICAgICAgICAgICAgICBkdW1wRnJhbWVTY3JvbGxQb3NpdGlvbihtYWluRnJhbWUp
OwotICAgICAgICB9CiAKLSAgICAgICAgaWYgKGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEJh
Y2tGb3J3YXJkTGlzdCgpKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogbm90IGltcGxlbWVudGVk
CisgICAgICAgICAgICBpZiAoZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wQmFja0ZvcndhcmRM
aXN0KCkpIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogbXVsdGlwbGUgd2luZG93cyBzdXBw
b3J0CisgICAgICAgICAgICAgICAgZHVtcEJhY2tGb3J3YXJkTGlzdEZvcldlYlZpZXcod2ViVmll
dyk7CisKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGlmIChwcmludFNlcGFy
YXRvcnMpIHsKQEAgLTI0OCw2ICszMzIsMTQgQEAKICAgICBzaXplLmhlaWdodCA9IGlzU1ZHVzND
VGVzdCA/IDM2MCA6IG1heFZpZXdIZWlnaHQ7CiAgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRl
KEdUS19XSURHRVQod2ViVmlldyksICZzaXplKTsKIAorICAgIGlmIChwcmV2VGVzdEJGSXRlbSkK
KyAgICAgICAgZ19vYmplY3RfdW5yZWYocHJldlRlc3RCRkl0ZW0pOworICAgIFdlYktpdFdlYkJh
Y2tGb3J3YXJkTGlzdCogYmZMaXN0ID0gd2Via2l0X3dlYl92aWV3X2dldF9iYWNrX2ZvcndhcmRf
bGlzdCh3ZWJWaWV3KTsKKyAgICBwcmV2VGVzdEJGSXRlbSA9IHdlYmtpdF93ZWJfYmFja19mb3J3
YXJkX2xpc3RfZ2V0X2N1cnJlbnRfaXRlbShiZkxpc3QpOworICAgIGlmIChwcmV2VGVzdEJGSXRl
bSkKKyAgICAgICAgZ19vYmplY3RfcmVmKHByZXZUZXN0QkZJdGVtKTsKKworCiAgICAgd2Via2l0
X3dlYl92aWV3X29wZW4od2ViVmlldywgdXJsKTsKIAogICAgIGdfZnJlZSh1cmwpOwpJbmRleDog
V2ViS2l0L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxl
ckd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Lm9yaWcvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAkyMDA5LTAzLTAxIDE1OjM4OjM0
LjAwMDAwMDAwMCArMTEwMAorKysgV2ViS2l0L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAJMjAwOS0wMy0wMSAxNTozOToxNi4wMDAwMDAw
MDAgKzExMDAKQEAgLTY5LDggKzY5LDcgQEAKICAgICBnaW50IGxpbWl0ID0gd2Via2l0X3dlYl9i
YWNrX2ZvcndhcmRfbGlzdF9nZXRfbGltaXQobGlzdCk7CiAgICAgd2Via2l0X3dlYl9iYWNrX2Zv
cndhcmRfbGlzdF9zZXRfbGltaXQobGlzdCwgMCk7CiAgICAgd2Via2l0X3dlYl9iYWNrX2Zvcndh
cmRfbGlzdF9zZXRfbGltaXQobGlzdCwgbGltaXQpOwotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQg
YWRkX2l0ZW0oKQotICAgIC8vd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9hZGRfaXRlbShs
aXN0LCBpdGVtKTsKKyAgICB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2FkZF9pdGVtKGxp
c3QsIGl0ZW0pOwogICAgIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ29fdG9faXRlbShs
aXN0LCBpdGVtKTsKICAgICBnX29iamVjdF91bnJlZihpdGVtKTsKIH0KSW5kZXg6IFdlYktpdC9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvV29ya1F1ZXVlSXRlbUd0ay5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Lm9yaWcvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1dvcmtR
dWV1ZUl0ZW1HdGsuY3BwCTIwMDktMDMtMDEgMTU6Mzg6MzQuMDAwMDAwMDAwICsxMTAwCisrKyBX
ZWJLaXQvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1dvcmtRdWV1ZUl0ZW1HdGsuY3Bw
CTIwMDktMDMtMDEgMTU6Mzk6MTYuMDAwMDAwMDAwICsxMTAwCkBAIC03MCw1ICs3MCwxMyBAQAog
dm9pZCBCYWNrRm9yd2FyZEl0ZW06Omludm9rZSgpIGNvbnN0CiB7CiAgICAgV2ViS2l0V2ViVmll
dyogd2ViVmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSk7Ci0g
ICAgd2Via2l0X3dlYl92aWV3X2dvX2JhY2tfb3JfZm9yd2FyZCh3ZWJWaWV3LCBtX2hvd0Zhcik7
CisgICAgaWYgKG1faG93RmFyID09IDEpCisgICAgICAgIHdlYmtpdF93ZWJfdmlld19nb19mb3J3
YXJkKHdlYlZpZXcpOworICAgIGVsc2UgaWYgKG1faG93RmFyID09IC0xKQorICAgICAgICB3ZWJr
aXRfd2ViX3ZpZXdfZ29fYmFjayh3ZWJWaWV3KTsKKyAgICBlbHNlIHsKKyAgICAgICAgV2ViS2l0
V2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJCYWNrRm9yd2FyZExpc3QgPSB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X2JhY2tfZm9yd2FyZF9saXN0KHdlYlZpZXcpOworICAgICAgICBXZWJLaXRXZWJIaXN0b3J5
SXRlbSogaXRlbSA9IHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X250aF9pdGVtKHdl
YkJhY2tGb3J3YXJkTGlzdCwgbV9ob3dGYXIpOworICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfZ29f
dG9fYmFja19mb3J3YXJkX2l0ZW0od2ViVmlldywgaXRlbSk7CisgICAgfQogfQo=
</data>
<flag name="review"
          id="13738"
          type_id="1"
          status="+"
          setter="zecke"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28134</attachid>
            <date>2009-02-28 21:21:20 -0800</date>
            <delta_ts>2009-03-01 07:13:06 -0800</delta_ts>
            <desc>dump according to the frame&apos;s mime type. Also enable the http tests</desc>
            <filename>drt-response-mime-type.patch</filename>
            <type>text/plain</type>
            <size>8816</size>
            <attacher name="Jan Alonzo">jmalonzo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0Lm9yaWcvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCTIwMDkt
MDMtMDEgMTU6NTY6MTAuMDAwMDAwMDAwICsxMTAwCisrKyBXZWJLaXQvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0cHJpdmF0ZS5oCTIwMDktMDMtMDEgMTU6NTc6NTMuMDAwMDAwMDAwICsxMTAwCkBA
IC0xNTgsNiArMTU4LDEwIEBACiAgICAgdm9pZAogICAgIHdlYmtpdF93ZWJfcG9saWN5X2RlY2lz
aW9uX2NhbmNlbCAoV2ViS2l0V2ViUG9saWN5RGVjaXNpb24qIGRlY2lzaW9uKTsKIAorICAgIC8v
IEZJWE1FOiBtb3ZlIHRoaXMgZnVuY3Rpb25hbGl0eSBpbnRvIGEgJ1dlYktpdFdlYkRhdGFTb3Vy
Y2UnIG9uY2UgaW1wbGVtZW50ZWQKKyAgICBXRUJLSVRfQVBJIGdjaGFyKgorICAgIHdlYmtpdF93
ZWJfZnJhbWVfZ2V0X3Jlc3BvbnNlX21pbWVfdHlwZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpOwor
CiAgICAgLy8gRklYTUU6IE1vdmUgdGhlc2UgdG8gd2Via2l0d2ViZnJhbWUuaCBvbmNlIHRoZWly
IEFQSSBoYXMgYmVlbiBkaXNjdXNzZWQuCiAKICAgICBXRUJLSVRfQVBJIEdTTGlzdCoKSW5kZXg6
IFdlYktpdC9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0Lm9yaWcvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCTIwMDkt
MDMtMDEgMTU6NTg6MDcuMDAwMDAwMDAwICsxMTAwCisrKyBXZWJLaXQvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2ViZnJhbWUuY3BwCTIwMDktMDMtMDEgMTU6NTk6MTYuMDAwMDAwMDAwICsxMTAw
CkBAIC01LDYgKzUsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA4IENocmlzdGlhbiBEeXdhbiA8
Y2hyaXN0aWFuQGltZW5kaW8uY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBM
dGQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTnVhbnRpIEx0ZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwOSBKYW4gQWxvbnpvIDxqbWFsb256b0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTMxLDYgKzMyLDcgQEAKIAogI2luY2x1ZGUgIkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJDU3RyaW5nLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50R3RrLmgiCiAjaW5j
bHVkZSAiRnJhbWVUcmVlLmgiCkBAIC03MTcsNCArNzE5LDEyIEBACiAgICAgcmV0dXJuIGNvbnRy
b2xsZXItPm51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpOwogfQogCitnY2hhciogd2Via2l0X3dl
Yl9mcmFtZV9nZXRfcmVzcG9uc2VfbWltZV90eXBlKFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKK3sK
KyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7CisgICAgRG9jdW1lbnRMb2FkZXIq
IGRvY0xvYWRlciA9IGNvcmVGcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCk7CisgICAg
U3RyaW5nIG1pbWVUeXBlID0gZG9jTG9hZGVyLT5yZXNwb25zZU1JTUVUeXBlKCk7CisgICAgcmV0
dXJuIGdfc3RyZHVwKG1pbWVUeXBlLnV0ZjgoKS5kYXRhKCkpOworfQorCiB9CkluZGV4OiBXZWJL
aXQvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQub3JpZy9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVt
cFJlbmRlclRyZWUuY3BwCTIwMDktMDMtMDEgMTY6MDE6MDYuMDAwMDAwMDAwICsxMTAwCisrKyBX
ZWJLaXQvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAky
MDA5LTAzLTAxIDE2OjAyOjM1LjAwMDAwMDAwMCArMTEwMApAQCAtNTcsNiArNTcsNyBAQAogZXh0
ZXJuIGdjaGFyKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9pbm5lcl90ZXh0KFdlYktpdFdlYkZyYW1l
KiBmcmFtZSk7CiBleHRlcm4gZ2NoYXIqIHdlYmtpdF93ZWJfZnJhbWVfZHVtcF9yZW5kZXJfdHJl
ZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpOwogZXh0ZXJuIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5n
c19hZGRfZXh0cmFfcGx1Z2luX2RpcmVjdG9yeShXZWJLaXRXZWJWaWV3KiB2aWV3LCBjb25zdCBn
Y2hhciogZGlyZWN0b3J5KTsKK2V4dGVybiBnY2hhciogd2Via2l0X3dlYl9mcmFtZV9nZXRfcmVz
cG9uc2VfbWltZV90eXBlKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7CiB9CiAKIHZvbGF0aWxlIGJv
b2wgZG9uZTsKQEAgLTIyMSwxMSArMjIyLDEzIEBACiB2b2lkIGR1bXAoKQogewogICAgIGludmFs
aWRhdGVBbnlQcmV2aW91c1dhaXRUb0R1bXBXYXRjaGRvZygpOworCisgICAgYm9vbCBkdW1wQXNU
ZXh0ID0gZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wQXNUZXh0KCk7CiAgICAgaWYgKGR1bXBU
cmVlKSB7CiAgICAgICAgIGNoYXIqIHJlc3VsdCA9IDA7CisgICAgICAgIGdjaGFyKiByZXNwb25z
ZU1pbWVUeXBlID0gd2Via2l0X3dlYl9mcmFtZV9nZXRfcmVzcG9uc2VfbWltZV90eXBlKG1haW5G
cmFtZSk7CiAKLSAgICAgICAgYm9vbCBkdW1wQXNUZXh0ID0gZ0xheW91dFRlc3RDb250cm9sbGVy
LT5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIC8vIEZJWE1FOiBBbHNvIGR1bXAgdGV4dCByZXN1bHMg
YXMgdGV4dC4KKyAgICAgICAgZHVtcEFzVGV4dCA9IGdfYXNjaWlfc3RyY2FzZWNtcChyZXNwb25z
ZU1pbWVUeXBlLCAidGV4dC9wbGFpbiIpOwogICAgICAgICBnTGF5b3V0VGVzdENvbnRyb2xsZXIt
PnNldER1bXBBc1RleHQoZHVtcEFzVGV4dCk7CiAgICAgICAgIGlmIChnTGF5b3V0VGVzdENvbnRy
b2xsZXItPmR1bXBBc1RleHQoKSkKICAgICAgICAgICAgIHJlc3VsdCA9IGR1bXBGcmFtZXNBc1Rl
eHQobWFpbkZyYW1lKTsKSW5kZXg6IFdlYktpdC9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Lm9yaWcvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCTIwMDktMDMtMDEgMTY6
MTU6MjAuMDAwMDAwMDAwICsxMTAwCisrKyBXZWJLaXQvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCTIw
MDktMDMtMDEgMTY6MTU6NTcuMDAwMDAwMDAwICsxMTAwCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDkt
MDItMjggIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0d0a10gZ2V0IHRoZSBI
VFRQIGxheW91dCB0ZXN0cyBnb2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjQyNTkKKworICAgICAgICBFbmFibGUgaHR0cCB0ZXN0cywgZXhjbHVk
aW5nIHRlc3RzL2ZvbGRlcnMgdGhhdCBmYWlsIG9yIHVudGVzdGVkCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvU2tpcHBlZDoKKwogMjAwOS0wMi0yOCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBw
bGUuY29tPgogCiAgICAgICAgIC0gY29ycmVjdCBhIGNvbG9yIHByb2ZpbGUgbWlzbWF0Y2ggaW4g
ZXhwZWN0ZWQgcGl4ZWwgcmVzdWx0cwpJbmRleDogV2ViS2l0L0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC5vcmlnL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9Ta2lwcGVkCTIwMDktMDMtMDEgMTY6MDY6MTQuMDAwMDAwMDAwICsxMTAwCisrKyBX
ZWJLaXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJMjAwOS0wMy0wMSAxNjoxMDoy
Mi4wMDAwMDAwMDAgKzExMDAKQEAgLTIxNTEsNyArMjE1MSw2IEBACiBjc3MzCiBlZGl0aW5nCiBn
ZW9sb2NhdGlvbgotaHR0cAogbWVkaWEKIHBsYXRmb3JtCiBwcmludGluZwpAQCAtMjIxNiwzICsy
MjE1LDcyIEBACiAjIFRlc3RzIGluIHRyYW5zaXRpb25zLyBkaXJlY3RvcnkKICMgVGVzdHMgZ2Vu
ZXJhdGluZyBuZXcgcmVzdWx0cwogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1kcnQtYXBpLmh0bWwK
KworIyBIVFRQIHRlc3RzCisjIFRlc3RzIGluIGh0dHAvIGRpcmVjdG9yeQorCisjIGJsYWNrbGlz
dCB1bnRlc3RlZC9mYWlsaW5nIGZvbGRlcnMKK2h0dHAvdGVzdHMvYXBwY2FjaGUKK2h0dHAvdGVz
dHMvaGlzdG9yeQoraHR0cC90ZXN0cy9tZWRpYQoraHR0cC90ZXN0cy9taXNjCitodHRwL3Rlc3Rz
L25hdmlnYXRpb24KK2h0dHAvdGVzdHMvcGx1Z2lucworaHR0cC90ZXN0cy9zZWN1cml0eQoraHR0
cC90ZXN0cy9zc2wKK2h0dHAvdGVzdHMvd2ViYXJjaGl2ZQoraHR0cC90ZXN0cy93bWwKKworIyB0
ZXN0cyB0aGF0IGZhaWxlZAoraHR0cC90ZXN0cy9pbmNyZW1lbnRhbC9zbG93LXV0ZjgtdGV4dC5w
bAoraHR0cC90ZXN0cy9sb2FkaW5nL2JhZC1zY2hlbWUtc3ViZnJhbWUuaHRtbAoraHR0cC90ZXN0
cy9sb2FkaW5nL2JhZC1zZXJ2ZXItc3ViZnJhbWUuaHRtbAoraHR0cC90ZXN0cy9sb2FkaW5nL2Jh
c2ljLmh0bWwKK2h0dHAvdGVzdHMvbG9hZGluZy9lbXB0eS1zdWJmcmFtZS5odG1sCitodHRwL3Rl
c3RzL2xvYWRpbmcvZ21haWwtYXNzZXJ0LW9uLWxvYWQuaHRtbAoraHR0cC90ZXN0cy9sb2FkaW5n
L2xvY2F0aW9uLWhhc2gtcmVsb2FkLWN5Y2xlLmh0bWwKK2h0dHAvdGVzdHMvbG9hZGluZy9vbmxv
YWQtdnMtaW1tZWRpYXRlLXJlZnJlc2gucGwKK2h0dHAvdGVzdHMvbG9hZGluZy9zbG93LXBhcnNp
bmctc3ViZnJhbWUuaHRtbAoraHR0cC90ZXN0cy9sb2FkaW5nL3RleHQtY29udGVudC10eXBlLXdp
dGgtYmluYXJ5LWV4dGVuc2lvbi5odG1sCitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Fib3J0
LXNob3VsZC1jYW5jZWwtbG9hZC5odG1sCitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Jhc2lj
LWF1dGguaHRtbAoraHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9jbG9zZS13aW5kb3cuaHRtbAor
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9kZWZhdWx0LWNvbnRlbnQtdHlwZS1kYXNoYm9hcmQu
aHRtbAoraHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9mcmFtZS1sb2FkLWNhbmNlbGxlZC1hYm9y
dC5odG1sCitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMtYXN5bmMuaHRtbAoraHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9tZXRob2RzLWxvd2VyLWNhc2UuaHRtbAoraHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9tZXRob2RzLmh0bWwKK2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
c3ZnLWNyZWF0ZWQtYnkteGhyLWRpc2FsbG93ZWQtaW4tZGFzaGJvYXJkLmh0bWwKK2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvdXBsb2FkLW9ubG9hZC1ldmVudC5odG1sCitodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3VwbG9hZC1vbnByb2dyZXNzLWV2ZW50Lmh0bWwKK2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvdXBsb2FkLXByb2dyZXNzLWV2ZW50cy5odG1sCitodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3hoci1vbnVubG9hZC5odG1sCisKKyMgVGVzdHMgdGhhdCB0aW1lZCBvdXQKK2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaHRtbAoraHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9jb25uZWN0aW9uLWVycm9yLXN5bmMuaHRtbAorCisjIENy
YXNoaW5nIHRlc3RzCitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3dlYi1hcHBzLzAwMi5odG1s
CitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3plcm8tbGVuZ3RoLXJlc3BvbnNlLmh0bWwKKwor
IyBUZXN0cyB0aGF0IGhhZCBzdGRlcnIgb3V0cHV0CitodHRwL3Rlc3RzL2luY3JlbWVudGFsL2Zy
YW1lLWZvY3VzLWJlZm9yZS1sb2FkLmh0bWwKK2h0dHAvdGVzdHMvaW5jcmVtZW50YWwvcGF1c2Ut
aW4tc2NyaXB0LWVsZW1lbnQucGwKK2h0dHAvdGVzdHMvbXVsdGlwYXJ0L2ludmFsaWQtaW1hZ2Ut
ZGF0YS1zdGFuZGFsb25lLmh0bWwKK2h0dHAvdGVzdHMvbXVsdGlwYXJ0L2ludmFsaWQtaW1hZ2Ut
ZGF0YS5odG1sCitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Fib3J0LWNyYXNoLmh0bWwKK2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWJvcnQtc2hvdWxkLWNhbmNlbC1sb2FkLmh0bWwKK2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYmFzaWMtYXV0aC5odG1sCitodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L2Nsb3NlLXdpbmRvdy5odG1sCitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Nv
b2tpZXMuaHRtbAoraHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9kZWZhdWx0LWNvbnRlbnQtdHlw
ZS1kYXNoYm9hcmQuaHRtbAoraHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93ZWItYXBwcy8wMDMu
aHRtbAoraHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC93ZWItYXBwcy8wMDQuaHRtbAorCisjIFRl
c3RzIHRoYXQgaGFkIG5vIGV4cGVjdGVkIHJlc3VsdHMgKHByb2JhYmx5IG5ldyk6CitodHRwL3Rl
c3RzL2xvYWRpbmcvc2ltcGxlLXN1YmZyYW1lLmh0bWwKK2h0dHAvdGVzdHMvbG9jYWwvZmlsZS11
cmwtc2VudC1hcy1yZWZlcmVyLmh0bWwKK2h0dHAvdGVzdHMvbXVsdGlwYXJ0L2ludmFsaWQtaW1h
Z2UtZGF0YS1zdGFuZGFsb25lLmh0bWwKK2h0dHAvdGVzdHMvbXVsdGlwYXJ0L2ludmFsaWQtaW1h
Z2UtZGF0YS5odG1sCitodHRwL3Rlc3RzL3VyaS9jc3MtaHJlZi5waHAKSW5kZXg6IFdlYktpdC9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQub3JpZy9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwkyMDA5LTAzLTAxIDE2OjExOjMxLjAwMDAwMDAwMCArMTEwMAorKysgV2ViS2l0
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCTIwMDktMDMtMDEgMTY6MTU6MDcuMDAwMDAwMDAwICsxMTAw
CkBAIC01LDYgKzUsMjAgQEAKICAgICAgICAgW0d0a10gZ2V0IHRoZSBIVFRQIGxheW91dCB0ZXN0
cyBnb2luZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjQyNTkKIAorICAgICAgICBBZGRlZCBBUEkgdG8gZ2V0IHRoZSByZXNwb25zZSBtaW1lIHR5cGUg
ZnJvbSBhIGZyYW1lLiBXZSBuZWVkIHRoaXMKKyAgICAgICAgc28gd2UgY2FuIGRlY2lkZSBpZiB3
ZSBuZWVkIHRvIGR1bXAgdGhlIGZyYW1lIGFzIHRleHQgb3IgaXRzCisgICAgICAgIHJlbmRlciB0
cmVlCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgorICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJmcmFtZS5jcHA6CisKKzIwMDktMDItMjggIEphbiBNaWNoYWVsIEFsb256byAg
PGptYWxvbnpvQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgW0d0a10gZ2V0IHRoZSBIVFRQIGxheW91dCB0ZXN0cyBnb2luZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQyNTkKKwogICAg
ICAgICBDcmVhdGUgYSBXZWJLaXRXZWJIaXN0b3J5SXRlbSBmb3IgZWFjaCBXZWJDb3JlOjpIaXN0
b3J5SXRlbSB3aGVuCiAgICAgICAgIG5lY2Vzc2FyeS4KICAgICAgICAgQWRkIG5lY2Vzc2FyeSBB
UEkgYWRkaXRpb25zIGZvciB1cyB0byBiZSBhYmxlIHRvIGR1bXAgYSBXZWJLaXRXZWJIaXN0b3J5
SXRlbQpJbmRleDogV2ViS2l0L1dlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQub3JpZy9XZWJLaXRUb29scy9DaGFuZ2VMb2cJMjAwOS0wMy0wMSAxNjoxNjoxNC4wMDAw
MDAwMDAgKzExMDAKKysrIFdlYktpdC9XZWJLaXRUb29scy9DaGFuZ2VMb2cJMjAwOS0wMy0wMSAx
NjoxODoxNC4wMDAwMDAwMDAgKzExMDAKQEAgLTUsNiArNSwxOSBAQAogICAgICAgICBbR3RrXSBn
ZXQgdGhlIEhUVFAgbGF5b3V0IHRlc3RzIGdvaW5nCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDI1OQogCisgICAgICAgIERldGVybWluZSB0aGUgZnJh
bWUncyByZXNwb25zZSBhbmQgZGVjaWRlIHdoZXRoZXIgdG8gZHVtcCBhcyB0ZXh0CisgICAgICAg
IG9yIHRoZSByZW5kZXIgdHJlZQorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBS
ZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKGR1bXApOgorCisyMDA5LTAyLTI4ICBKYW4gTWljaGFl
bCBBbG9uem8gIDxqbWFsb256b0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHdGtdIGdldCB0aGUgSFRUUCBsYXlvdXQgdGVzdHMg
Z29pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0
MjU5CisKICAgICAgICAgSW1wbGVtZW50IGR1bXBpbmcgb2YgV2ViS2l0V2ViQmFja0ZvcndhcmRM
aXN0IGFuZCBpdHMgaGlzdG9yeQogICAgICAgICBpdGVtcy4KIAo=
</data>
<flag name="review"
          id="13740"
          type_id="1"
          status="+"
          setter="zecke"
    />
          </attachment>
      

    </bug>

</bugzilla>