<?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>13542</bug_id>
          
          <creation_ts>2007-04-29 09:11:57 -0700</creation_ts>
          <short_desc>gdklauncher doesnt change URL in adress GTKEntry</short_desc>
          <delta_ts>2007-12-17 12:55:49 -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>New Bugs</component>
          <version>523.x (Safari 3)</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>0</everconfirmed>
          <reporter name="Kulyk Nazar">schamane</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>11804</commentid>
    <comment_count>0</comment_count>
    <who name="Kulyk Nazar">schamane</who>
    <bug_when>2007-04-29 09:11:57 -0700</bug_when>
    <thetext>gdklauncher doesnt change adress ind adress line on startup, after input new URL and after clicking on link befor new page is loaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11805</commentid>
    <comment_count>1</comment_count>
      <attachid>14267</attachid>
    <who name="Kulyk Nazar">schamane</who>
    <bug_when>2007-04-29 09:13:20 -0700</bug_when>
    <thetext>Created attachment 14267
change-url-0.1.patch

Just what i could find out at this moment. I dont find any possibility to change URL on starting new page load.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10300</commentid>
    <comment_count>2</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-05-11 11:47:13 -0700</bug_when>
    <thetext>I&apos;m not an expert on GdkLauncher, but I don&apos;t think this is the right place to update the URL. You want it to happen at a point that is a bottleneck for loading, ideally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8840</commentid>
    <comment_count>3</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-05-29 10:37:16 -0700</bug_when>
    <thetext>Using .ascii() feels wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8851</commentid>
    <comment_count>4</comment_count>
      <attachid>14267</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-05-29 11:47:51 -0700</bug_when>
    <thetext>Comment on attachment 14267
change-url-0.1.patch

After discussion with Holger and Alp, it seems this change is probably not the best way to fix the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3763</commentid>
    <comment_count>5</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-07-24 17:58:52 -0700</bug_when>
    <thetext>This bug was indirectly solved by bug #14678, so it should be marked as &quot;fixed&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-09-24 06:04:53 -0700</bug_when>
    <thetext>This is &quot;fixed&quot; to some extent: the URL will update in response to the title-changed signal.  That is not really the correct time to update the URL, so for this to be considered &quot;fixed&quot; I would think this would need to be hooked up to a more appropriate signal.  I think a more appropriate time may be in response to FrameLoaderClient::dispatchDidStartProvisionalLoad, but this is not exposed in any fashion at the Gtk API level.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64361</commentid>
    <comment_count>7</comment_count>
      <attachid>17928</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2007-12-16 03:12:25 -0800</bug_when>
    <thetext>Created attachment 17928
fix and add safe API

I followed a bit how Qt handled this and found this solution which seems to be safe, and most of all remove the ugly URI passing trough title-changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64398</commentid>
    <comment_count>8</comment_count>
      <attachid>17936</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2007-12-16 10:39:54 -0800</bug_when>
    <thetext>Created attachment 17936
new patch

In the previous patch i duplicated the _frame_get_location (mine was _frame_get_uri, would be this more gtk-y?).
Also i didn&apos;t add any uri-related API to the webview, as you can see in the GtkLauncher the location is retrieved from the main frame.
Didn&apos;t add any property because other variables don&apos;t have any property.
Notice how get_location won&apos;t return a const string anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64437</commentid>
    <comment_count>9</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-12-16 16:49:46 -0800</bug_when>
    <thetext>Most of these changes look correct. I think the end result is not entirely the right thing though.

What should happen (IMO) is that a signal should be emitted from FrameLoaderClient::dispatchDidCommitLoad and that gdklauncher should listen to this signal and update the URL at that point. Once the load is committed, the URL should update.

I&apos;ll r+ this for now because it seems like a good improvement pending availability of the right signals in the API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64438</commentid>
    <comment_count>10</comment_count>
      <attachid>17936</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-12-16 16:50:08 -0800</bug_when>
    <thetext>Comment on attachment 17936
new patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64453</commentid>
    <comment_count>11</comment_count>
      <attachid>17936</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-12-16 17:54:31 -0800</bug_when>
    <thetext>Comment on attachment 17936
new patch

Switching back to review?

alp points out that normal Gtk+ API practice is to return a &quot;const gchar*&quot; and require the caller to g_strdup the string if it wants to save a copy. In this case, that would mean caching the value from converting prettyURL() in a variable in the private struct, as was done before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64456</commentid>
    <comment_count>12</comment_count>
      <attachid>17936</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-16 18:06:07 -0800</bug_when>
    <thetext>Comment on attachment 17936
new patch

&gt;Index: WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
&gt;===================================================================
&gt;--- WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp	(revision 28768)
&gt;+++ WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp	(working copy)
&gt;@@ -503,7 +503,11 @@
&gt; 
&gt; void FrameLoaderClient::dispatchDidReceiveTitle(const String&amp; title)
&gt; {
&gt;-    notImplemented();
&gt;+    WebKitWebView* page = getViewFromFrame(m_frame);
&gt;+
&gt;+    g_signal_emit_by_name(m_frame, &quot;title-changed&quot;, title.utf8().data());
&gt;+    if (m_frame == webkit_web_view_get_main_frame(page))
&gt;+        g_signal_emit_by_name(page, &quot;title-changed&quot;, title.utf8().data());
&gt; }

Looks good.

&gt; 
&gt; 
&gt;@@ -633,14 +637,10 @@
&gt; 
&gt; void FrameLoaderClient::setTitle(const String&amp; title, const KURL&amp; url)
&gt; {
&gt;-    WebKitWebView* page = getViewFromFrame(m_frame);
&gt;-
&gt;-    CString titleString = title.utf8();
&gt;-    DeprecatedCString urlString = url.prettyURL().utf8();
&gt;-    g_signal_emit_by_name(m_frame, &quot;title-changed&quot;, titleString.data(), urlString.data());
&gt;-
&gt;-    if (m_frame == webkit_web_view_get_main_frame(page))
&gt;-        g_signal_emit_by_name(page, &quot;title-changed&quot;, titleString.data(), urlString.data());
&gt;+    WebKitWebFramePrivate* frameData = WEBKIT_WEB_FRAME_GET_PRIVATE(m_frame);
&gt;+    if (frameData-&gt;title)

No need for this check. g_free() is successful on NULLs.

&gt;+        g_free(frameData-&gt;title);
&gt;+    frameData-&gt;title = g_strdup(title.utf8().data());
&gt; }
&gt; 
&gt; void FrameLoaderClient::dispatchDidReceiveContentLength(DocumentLoader*, unsigned long identifier, int lengthReceived)
&gt;Index: WebKit/gtk/WebView/webkitwebframe.cpp
&gt;===================================================================
&gt;--- WebKit/gtk/WebView/webkitwebframe.cpp	(revision 28768)
&gt;+++ WebKit/gtk/WebView/webkitwebframe.cpp	(working copy)
&gt;@@ -55,8 +55,6 @@
&gt; 
&gt; static guint webkit_web_frame_signals[LAST_SIGNAL] = { 0, };
&gt; 
&gt;-static void webkit_web_frame_real_title_changed(WebKitWebFrame* frame, gchar* title, gchar* location);
&gt;-
&gt; G_DEFINE_TYPE(WebKitWebFrame, webkit_web_frame, G_TYPE_OBJECT)
&gt; 
&gt; static void webkit_web_frame_finalize(GObject* object)
&gt;@@ -65,7 +63,6 @@
&gt;     privateData-&gt;frame-&gt;loader()-&gt;cancelAndClear();
&gt;     g_free(privateData-&gt;name);
&gt;     g_free(privateData-&gt;title);
&gt;-    g_free(privateData-&gt;location);
&gt;     delete privateData-&gt;frame;
&gt; 
&gt;     G_OBJECT_CLASS(webkit_web_frame_parent_class)-&gt;finalize(object);
&gt;@@ -100,12 +97,12 @@
&gt;     webkit_web_frame_signals[TITLE_CHANGED] = g_signal_new(&quot;title-changed&quot;,
&gt;             G_TYPE_FROM_CLASS(frameClass),
&gt;             (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION),
&gt;-            G_STRUCT_OFFSET(WebKitWebFrameClass, title_changed),
&gt;+            0,                                               
&gt;             NULL,
&gt;             NULL,
&gt;-            webkit_marshal_VOID__STRING_STRING,
&gt;-            G_TYPE_NONE, 2,
&gt;-            G_TYPE_STRING, G_TYPE_STRING);
&gt;+            webkit_marshal_VOID__STRING,
&gt;+            G_TYPE_NONE, 1,
&gt;+            G_TYPE_STRING);
&gt; 
&gt;     webkit_web_frame_signals[HOVERING_OVER_LINK] = g_signal_new(&quot;hovering-over-link&quot;,
&gt;             G_TYPE_FROM_CLASS(frameClass),
&gt;@@ -117,23 +114,12 @@
&gt;             G_TYPE_NONE, 2,
&gt;             G_TYPE_STRING, G_TYPE_STRING);
&gt; 
&gt;-    frameClass-&gt;title_changed = webkit_web_frame_real_title_changed;
&gt;-
&gt;     /*
&gt;      * implementations of virtual methods
&gt;      */
&gt;     G_OBJECT_CLASS(frameClass)-&gt;finalize = webkit_web_frame_finalize;
&gt; }
&gt; 
&gt;-static void webkit_web_frame_real_title_changed(WebKitWebFrame* frame, gchar* title, gchar* location)
&gt;-{
&gt;-    WebKitWebFramePrivate* frameData = WEBKIT_WEB_FRAME_GET_PRIVATE(frame);
&gt;-    g_free(frameData-&gt;title);
&gt;-    g_free(frameData-&gt;location);
&gt;-    frameData-&gt;title = g_strdup(title);
&gt;-    frameData-&gt;location = g_strdup(location);
&gt;-}
&gt;-
&gt; static void webkit_web_frame_init(WebKitWebFrame* frame)
&gt; {
&gt;     // TODO: Move constructor code here.
&gt;@@ -167,7 +153,6 @@
&gt;     frameData-&gt;webView = webView;
&gt;     frameData-&gt;name = 0;
&gt;     frameData-&gt;title = 0;
&gt;-    frameData-&gt;location = 0;
&gt; 
&gt;     return frame;
&gt; }
&gt;@@ -199,12 +184,15 @@
&gt;     return frameData-&gt;title;
&gt; }
&gt; 
&gt;-const gchar* webkit_web_frame_get_location(WebKitWebFrame* frame)
&gt;+gchar* webkit_web_frame_get_location(WebKitWebFrame* frame)
&gt; {
&gt;     g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), NULL);
&gt; 
&gt;-    WebKitWebFramePrivate* frameData = WEBKIT_WEB_FRAME_GET_PRIVATE(frame);
&gt;-    return frameData-&gt;location;
&gt;+    KURL url = core(frame)-&gt;loader()-&gt;url();
&gt;+    if (url.isNull() || url.isEmpty())
&gt;+        return NULL;
&gt;+    else
&gt;+        return g_strdup(url.prettyURL().utf8().data());
&gt; }
&gt; 
&gt; /**
&gt;@@ -418,7 +406,6 @@
&gt;     return g_strdup(string.utf8().data());
&gt; }

This is bad. We really do have to return a const gchar*, even if that means caching the gchar* string in the class. The caller can&apos;t be expected to free the string.

The fix is good though, just needs to address these issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64499</commentid>
    <comment_count>13</comment_count>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2007-12-17 02:39:03 -0800</bug_when>
    <thetext>Ok, right.

Another question, location means stripping *:// from the URI in terms of files. I think location must be renamed to uri.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64506</commentid>
    <comment_count>14</comment_count>
      <attachid>17960</attachid>
    <who name="Luca Bruno">lethalman88</who>
    <bug_when>2007-12-17 04:35:18 -0800</bug_when>
    <thetext>Created attachment 17960
new signal load-committed and constant uri

Hi this patch updates the URI once first data is received in the frame, and at the same time emits load-committed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64553</commentid>
    <comment_count>15</comment_count>
      <attachid>17960</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-17 12:50:55 -0800</bug_when>
    <thetext>Comment on attachment 17960
new signal load-committed and constant uri

OK with the parameter fix we discussed for main.c</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64554</commentid>
    <comment_count>16</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-17 12:55:49 -0800</bug_when>
    <thetext>Landed in r28817.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14267</attachid>
            <date>2007-04-29 09:13:20 -0700</date>
            <delta_ts>2007-05-29 11:47:51 -0700</delta_ts>
            <desc>change-url-0.1.patch</desc>
            <filename>change-url-0.1.patch</filename>
            <type>text/plain</type>
            <size>1443</size>
            <attacher name="Kulyk Nazar">schamane</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDIxMTgyKQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMDQtMjkgIE5hemFyIEt1bHlrICA8c2No
YW1hbmVAbXllYnVyZy5uZXQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBHZGtMYXVuY2hlci9tYWluLmNwcDoKKyAgICAgICAgKGdvVG9VUkxCYXJU
ZXh0KToKKyAgICAgICAgKG1haW4pOgorICAgICAgICBDaGFuZ2UgYWRyZXNzIGlucHV0IGZpZWxk
IG9uIHN0YXJ0dXAgYW5kIGFmdGVyIHVybCBwYXJzaW5nLgorICAgICAgICBDaGFuZ2luZyBVUkwg
b24gbW91c2UgY2xpY2sgaXMgc3RlZWwgbmVlZGVkLgorCiAyMDA3LTA0LTI3ICBBZGFtIFJvYmVu
IDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llai4KSW5kZXg6
IFdlYktpdFRvb2xzL0dka0xhdW5jaGVyL21haW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRv
b2xzL0dka0xhdW5jaGVyL21haW4uY3BwCShyZXZpc2lvbiAyMTE4MikKKysrIFdlYktpdFRvb2xz
L0dka0xhdW5jaGVyL21haW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBAIHN0
YXRpYyB2b2lkIGdvVG9VUkxCYXJUZXh0KEd0a1dpZGdldCogdXIKIAogICAgIFN0cmluZyBwYXJz
ZWRVUkwgPSBhdXRvY29ycmVjdFVSTCh1cmwpOwogICAgIGdGcmFtZS0+bG9hZGVyKCktPmxvYWQo
UmVzb3VyY2VSZXF1ZXN0KHBhcnNlZFVSTCkpOworICAgIGd0a19lbnRyeV9zZXRfdGV4dChHVEtf
RU5UUlkoZ1VSTEJhckVudHJ5KSwgcGFyc2VkVVJMLmFzY2lpKCkuZGF0YSgpKTsKIH0KIAogc3Rh
dGljIHZvaWQgZ29CdXR0b25DbGlja2VkQ2FsbGJhY2soR3RrV2lkZ2V0KiB3aWRnZXQsIEd0a1dp
ZGdldCogZW50cnkpCkBAIC0yMDgsNiArMjA5LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIq
IGFyZ3ZbXSkgCiAgICAgZnJhbWVWaWV3LT5TY3JvbGxWaWV3OjpzZXREcmF3YWJsZShmcmFtZVdp
bmRvdy0+d2luZG93KTsKIAogICAgIGdGcmFtZS0+bG9hZGVyKCktPmxvYWQoUmVzb3VyY2VSZXF1
ZXN0KHVybCkpOworICAgIGd0a19lbnRyeV9zZXRfdGV4dChHVEtfRU5UUlkoZ1VSTEJhckVudHJ5
KSwgdXJsLmFzY2lpKCkuZGF0YSgpKTsKICAgICBndGtfbWFpbigpOwogI2lmIDAgLy8gRklYTUU6
IHRoaXMgY3Jhc2hlcyBhdCB0aGUgbW9tZW50LiBuZWVkcyB0byBwcm92aWRlIERyYWdDbGllbnQK
ICAgICBkZWxldGUgcGFnZTsK
</data>
<flag name="review"
          id="5811"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17928</attachid>
            <date>2007-12-16 03:12:25 -0800</date>
            <delta_ts>2007-12-16 10:39:54 -0800</delta_ts>
            <desc>fix and add safe API</desc>
            <filename>urichange.patch</filename>
            <type>text/plain</type>
            <size>9402</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwCShyZXZpc2lvbiAyODc2OCkKKysrIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDMsNyArNTAzLDEx
IEBACiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKGNv
bnN0IFN0cmluZyYgdGl0bGUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBXZWJLaXRX
ZWJWaWV3KiBwYWdlID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKworICAgIGdfc2lnbmFs
X2VtaXRfYnlfbmFtZShtX2ZyYW1lLCAidGl0bGUtY2hhbmdlZCIsIHRpdGxlLnV0ZjgoKS5kYXRh
KCkpOworICAgIGlmIChtX2ZyYW1lID09IHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZShw
YWdlKSkKKyAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHBhZ2UsICJ0aXRsZS1jaGFuZ2Vk
IiwgdGl0bGUudXRmOCgpLmRhdGEoKSk7CiB9CiAKIApAQCAtNjMzLDE0ICs2MzcsNiBAQAogCiB2
b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpzZXRUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25z
dCBLVVJMJiB1cmwpCiB7Ci0gICAgV2ViS2l0V2ViVmlldyogcGFnZSA9IGdldFZpZXdGcm9tRnJh
bWUobV9mcmFtZSk7Ci0KLSAgICBDU3RyaW5nIHRpdGxlU3RyaW5nID0gdGl0bGUudXRmOCgpOwot
ICAgIERlcHJlY2F0ZWRDU3RyaW5nIHVybFN0cmluZyA9IHVybC5wcmV0dHlVUkwoKS51dGY4KCk7
Ci0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUsICJ0aXRsZS1jaGFuZ2VkIiwgdGl0
bGVTdHJpbmcuZGF0YSgpLCB1cmxTdHJpbmcuZGF0YSgpKTsKLQotICAgIGlmIChtX2ZyYW1lID09
IHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZShwYWdlKSkKLSAgICAgICAgZ19zaWduYWxf
ZW1pdF9ieV9uYW1lKHBhZ2UsICJ0aXRsZS1jaGFuZ2VkIiwgdGl0bGVTdHJpbmcuZGF0YSgpLCB1
cmxTdHJpbmcuZGF0YSgpKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRSZWNlaXZlQ29udGVudExlbmd0aChEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgaW50IGxlbmd0aFJlY2VpdmVkKQpJbmRleDogV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NzY4KQorKysg
V2ViS2l0L2d0ay9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAw
Ny0xMi0xNiAgTHVjYSBCcnVubyAgPGxldGhhbG1hbjg4QGdtYWlsLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU0MgorICAgICAgICBnZGtsYXVuY2hlciBkb2VzbnQgY2hh
bmdlIFVSTCBpbiBhZHJlc3MgR1RLRW50cnkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERpZFJlY2VpdmVUaXRsZSk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50OjpzZXRUaXRsZSk6IG1vdmVkIHRvIGRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlCisg
ICAgICAgICogV2ViVmlldy93ZWJraXQtbWFyc2hhbC5saXN0OgorICAgICAgICAqIFdlYlZpZXcv
d2Via2l0d2ViZnJhbWUuY3BwOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF91cmkpOiBh
ZGRlZAorICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2ViZnJhbWUuaDoKKyAgICAgICAgKiBXZWJW
aWV3L3dlYmtpdHdlYnZpZXcuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9nZXRfdXJp
KTogYWRkZWQKKyAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuaDoKKwogMjAwNy0xMi0x
NCAgQWxwIFRva2VyICA8YWxwQGF0b2tlci5jb20+CiAKICAgICAgICAgRml4IGluY29uc2lzdGVu
dCBpbmRlbnRhdGlvbiBpbiB0aGUgbGljZW5zZSBoZWFkZXIuIE1hY2llaiB3YXMgcmlnaHQhCklu
ZGV4OiBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2ViZnJhbWUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJmcmFtZS5jcHAJKHJldmlzaW9uIDI4NzY4KQor
KysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYmZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTUsNyArNTUsNyBAQAogCiBzdGF0aWMgZ3VpbnQgd2Via2l0X3dlYl9mcmFtZV9zaWduYWxz
W0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKIAotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9y
ZWFsX3RpdGxlX2NoYW5nZWQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBnY2hhciogdGl0bGUsIGdj
aGFyKiBsb2NhdGlvbik7CitzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX3JlYWxfdGl0bGVf
Y2hhbmdlZChXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFyKiB0aXRsZSk7CiAKIEdf
REVGSU5FX1RZUEUoV2ViS2l0V2ViRnJhbWUsIHdlYmtpdF93ZWJfZnJhbWUsIEdfVFlQRV9PQkpF
Q1QpCiAKQEAgLTEwMyw5ICsxMDMsOSBAQAogICAgICAgICAgICAgR19TVFJVQ1RfT0ZGU0VUKFdl
YktpdFdlYkZyYW1lQ2xhc3MsIHRpdGxlX2NoYW5nZWQpLAogICAgICAgICAgICAgTlVMTCwKICAg
ICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19TVFJJTkdf
U1RSSU5HLAotICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCi0gICAgICAgICAgICBHX1RZUEVf
U1RSSU5HLCBHX1RZUEVfU1RSSU5HKTsKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURf
X1NUUklORywKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAxLAorICAgICAgICAgICAgR19UWVBF
X1NUUklORyk7CiAKICAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbSE9WRVJJTkdfT1ZFUl9M
SU5LXSA9IGdfc2lnbmFsX25ldygiaG92ZXJpbmctb3Zlci1saW5rIiwKICAgICAgICAgICAgIEdf
VFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLApAQCAtMTI1LDEzICsxMjUsMTIgQEAKICAgICBH
X09CSkVDVF9DTEFTUyhmcmFtZUNsYXNzKS0+ZmluYWxpemUgPSB3ZWJraXRfd2ViX2ZyYW1lX2Zp
bmFsaXplOwogfQogCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX3JlYWxfdGl0bGVfY2hh
bmdlZChXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGdjaGFyKiB0aXRsZSwgZ2NoYXIqIGxvY2F0aW9u
KQorc3RhdGljIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9yZWFsX3RpdGxlX2NoYW5nZWQoV2ViS2l0
V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogdGl0bGUpCiB7CiAgICAgV2ViS2l0V2ViRnJh
bWVQcml2YXRlKiBmcmFtZURhdGEgPSBXRUJLSVRfV0VCX0ZSQU1FX0dFVF9QUklWQVRFKGZyYW1l
KTsKLSAgICBnX2ZyZWUoZnJhbWVEYXRhLT50aXRsZSk7Ci0gICAgZ19mcmVlKGZyYW1lRGF0YS0+
bG9jYXRpb24pOworICAgIGlmIChmcmFtZURhdGEtPnRpdGxlKQorICAgICAgICBnX2ZyZWUoZnJh
bWVEYXRhLT50aXRsZSk7CiAgICAgZnJhbWVEYXRhLT50aXRsZSA9IGdfc3RyZHVwKHRpdGxlKTsK
LSAgICBmcmFtZURhdGEtPmxvY2F0aW9uID0gZ19zdHJkdXAobG9jYXRpb24pOwogfQogCiBzdGF0
aWMgdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX2luaXQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQpAQCAt
NDE4LDYgKzQxNywyNCBAQAogICAgIHJldHVybiBnX3N0cmR1cChzdHJpbmcudXRmOCgpLmRhdGEo
KSk7CiB9CiAKKy8qKgorICogd2Via2l0X3dlYl92aWV3X2dldF91cmk6CisgKiBAd2ViX3ZpZXc6
IGEgI1dlYktpdFdlYlZpZXcKKyAqCisgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGxvY2F0aW9uIGJl
aW5nIGRpc3BsYXllZCBpbiB0aGUgd2ViIGZyYW1lLgorICoKKyAqIFJldHVybiB2YWx1ZTogYSBu
ZXdseSBhbGxvY2F0ZWQgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgVVJJCisgKi8KK2dj
aGFyKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF91cmkoV2ViS2l0V2ViRnJhbWUqIHdlYkZyYW1lKQor
eworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUod2ViRnJhbWUp
LCBOVUxMKTsKKyAgICAKKyAgICBLVVJMIHVybCA9IGNvcmUod2ViRnJhbWUpLT5sb2FkZXIoKS0+
dXJsKCk7CisgICAgaWYgKHVybC5pc051bGwoKSB8fCB1cmwuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm4gTlVMTDsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBnX3N0cmR1cCh1cmwucHJldHR5
VVJMKCkudXRmOCgpLmRhdGEoKSk7Cit9CiAKICNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigyLDEwLDAp
CiAKSW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJmcmFtZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJmcmFtZS5oCShyZXZpc2lvbiAyODc2OCkK
KysrIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJmcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC00Myw3ICs0Myw3IEBACiBzdHJ1Y3QgX1dlYktpdFdlYkZyYW1lQ2xhc3MgewogICAgIEdPYmpl
Y3RDbGFzcyBwYXJlbnQ7CiAKLSAgICB2b2lkICgqdGl0bGVfY2hhbmdlZCkgKFdlYktpdFdlYkZy
YW1lKiBmcmFtZSwgZ2NoYXIqIHRpdGxlLCBnY2hhciogbG9jYXRpb24pOworICAgIHZvaWQgKCp0
aXRsZV9jaGFuZ2VkKSAoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogdGl0bGUp
OwogCiAgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CiAgICAgdm9pZCAoKl93
ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CkBAIC04OCw2ICs4OCw5IEBACiBXRUJLSVRfQVBJIEpT
R2xvYmFsQ29udGV4dFJlZgogd2Via2l0X3dlYl9mcmFtZV9nZXRfZ2xvYmFsX2NvbnRleHQgKFdl
YktpdFdlYkZyYW1lKiBmcmFtZSk7CiAKK1dFQktJVF9BUEkgZ2NoYXIqCit3ZWJraXRfd2ViX2Zy
YW1lX2dldF91cmkoV2ViS2l0V2ViRnJhbWUqIHdlYkZyYW1lKTsKKwogR19FTkRfREVDTFMKIAog
I2VuZGlmCkluZGV4OiBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0LW1hcnNoYWwubGlzdAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0LW1hcnNoYWwubGlzdAkocmV2aXNp
b24gMjg3NjgpCisrKyBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0LW1hcnNoYWwubGlzdAkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDQgQEAKK1ZPSUQ6U1RSSU5HCiBWT0lEOlNUUklORyxTVFJJ
TkcKIFZPSUQ6T0JKRUNULEJPT0xFQU4KIFZPSUQ6T0JKRUNULE9CSkVDVApJbmRleDogV2ViS2l0
L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsv
V2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcAkocmV2aXNpb24gMjg3NjgpCisrKyBXZWJLaXQvZ3Rr
L1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyNSw5ICs1MjUs
OSBAQAogICAgICAgICAgICAgMCwKICAgICAgICAgICAgIE5VTEwsCiAgICAgICAgICAgICBOVUxM
LAotICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fU1RSSU5HX1NUUklORywKLSAgICAg
ICAgICAgIEdfVFlQRV9OT05FLCAyLAotICAgICAgICAgICAgR19UWVBFX1NUUklORywgR19UWVBF
X1NUUklORyk7CisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19TVFJJTkcsCisgICAg
ICAgICAgICBHX1RZUEVfTk9ORSwgMSwKKyAgICAgICAgICAgIEdfVFlQRV9TVFJJTkcpOwogCiAg
ICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbSE9WRVJJTkdfT1ZFUl9MSU5LXSA9IGdfc2lnbmFs
X25ldygiaG92ZXJpbmctb3Zlci1saW5rIiwKICAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNT
KHdlYlZpZXdDbGFzcyksCkBAIC0xMDAwLDQgKzEwMDAsMjAgQEAKICAgICAgICAgbWFpbkZyYW1l
LT5yZW1vdmVFZGl0aW5nU3R5bGVGcm9tQm9keUVsZW1lbnQoKTsKIH0KIAorLyoqCisgKiB3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X3VyaToKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICoK
KyAqIFJldHVybnMgdGhlIGN1cnJlbnQgbG9jYXRpb24gYmVpbmcgZGlzcGxheWVkIGluIHRoZSB3
ZWIgdmlldy4KKyAqCisgKiBSZXR1cm4gdmFsdWU6IGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBj
b250YWluaW5nIHRoZSBjdXJyZW50IFVSSQorICovCitnY2hhciogd2Via2l0X3dlYl92aWV3X2dl
dF91cmkoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIE5VTEwpOworICAgIAorICAgIFdlYktpdFdl
YkZyYW1lKiB3ZWJGcmFtZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZSh3ZWJWaWV3
KTsKKyAgICByZXR1cm4gd2Via2l0X3dlYl9mcmFtZV9nZXRfdXJpKHdlYkZyYW1lKTsKIH0KKwor
fQpJbmRleDogV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5oCShyZXZpc2lvbiAyODc2OCkKKysr
IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTEy
NSw2ICsxMjUsOSBAQAogV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRh
YmxlIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgZ2Jvb2xlYW4gZmxhZyk7CiAKK1dFQktJVF9B
UEkgZ2NoYXIqCit3ZWJraXRfd2ViX3ZpZXdfZ2V0X3VyaShXZWJLaXRXZWJWaWV3KiB3ZWJfdmll
dyk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjg3NjgpCisr
KyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAor
MjAwNy0xMi0xNiAgTHVjYSBCcnVubyAgPGxldGhhbG1hbjg4QGdtYWlsLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworCWh0dHA6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzNTQyCisgICAgICAgIGdka2xhdW5jaGVyIGRvZXNudCBjaGFuZ2Ug
VVJMIGluIGFkcmVzcyBHVEtFbnRyeS4KKworICAgICAgICAqIEd0a0xhdW5jaGVyL21haW4uYzoK
KyAgICAgICAgKHRpdGxlX2NoYW5nZV9jYik6IHNldCBvbmx5IHRoZSB0aXRsZQorICAgICAgICAo
bG9hZF9maW5pc2hlZF9jYik6IHNldCB0aGUgY3VycmVudCBkaXNwbGF5ZWQgcGFnZSdzIFVSSSBp
biB1cmlfZW50cnkKKyAgICAgICAgKGNyZWF0ZV9icm93c2VyKTogY29ubmVjdCB0byBsb2FkLWZp
bmlzaGVkCisKIDIwMDctMTItMTUgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCkluZGV4OiBXZWJLaXRUb29scy9HdGtMYXVuY2hl
ci9tYWluLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvR3RrTGF1bmNoZXIvbWFpbi5jCShy
ZXZpc2lvbiAyODc2OCkKKysrIFdlYktpdFRvb2xzL0d0a0xhdW5jaGVyL21haW4uYwkod29ya2lu
ZyBjb3B5KQpAQCAtNjUsMTAgKzY1LDggQEAKIH0KIAogc3RhdGljIHZvaWQKLXRpdGxlX2NoYW5n
ZV9jYiAoV2ViS2l0V2ViVmlldyogcGFnZSwgY29uc3QgZ2NoYXIqIHRpdGxlLCBjb25zdCBnY2hh
ciogdXJpLCBncG9pbnRlciBkYXRhKQordGl0bGVfY2hhbmdlX2NiIChXZWJLaXRXZWJWaWV3KiBw
YWdlLCBjb25zdCBnY2hhciogdGl0bGUsIGdwb2ludGVyIGRhdGEpCiB7Ci0gICAgZ3RrX2VudHJ5
X3NldF90ZXh0IChHVEtfRU5UUlkgKHVyaV9lbnRyeSksIHVyaSk7Ci0KICAgICBpZiAobWFpbl90
aXRsZSkKICAgICAgICAgZ19mcmVlIChtYWluX3RpdGxlKTsKICAgICBtYWluX3RpdGxlID0gZ19z
dHJkdXAgKHRpdGxlKTsKQEAgLTgzLDYgKzgxLDE2IEBACiB9CiAKIHN0YXRpYyB2b2lkCitsb2Fk
X2ZpbmlzaGVkX2NiIChXZWJLaXRXZWJWaWV3KiBwYWdlLCBXZWJLaXRXZWJGcmFtZSogZnJhbWUs
IGdwb2ludGVyIGRhdGEpCit7CisgICAgZ2NoYXIqIHVyaSA9IHdlYmtpdF93ZWJfdmlld19nZXRf
dXJpKHBhZ2UpOworICAgIGlmICh1cmkpIHsKKyAgICAgICAgZ3RrX2VudHJ5X3NldF90ZXh0IChH
VEtfRU5UUlkgKHVyaV9lbnRyeSksIHVyaSk7CisgICAgICAgIGdfZnJlZSh1cmkpOworICAgIH0K
K30KKworc3RhdGljIHZvaWQKIGRlc3Ryb3lfY2IgKEd0a1dpZGdldCogd2lkZ2V0LCBncG9pbnRl
ciBkYXRhKQogewogICAgIGd0a19tYWluX3F1aXQgKCk7CkBAIC0xMTEsNiArMTE5LDcgQEAKIAog
ICAgIGdfc2lnbmFsX2Nvbm5lY3QgKEdfT0JKRUNUICh3ZWJfdmlldyksICJ0aXRsZS1jaGFuZ2Vk
IiwgR19DQUxMQkFDSyAodGl0bGVfY2hhbmdlX2NiKSwgd2ViX3ZpZXcpOwogICAgIGdfc2lnbmFs
X2Nvbm5lY3QgKEdfT0JKRUNUICh3ZWJfdmlldyksICJsb2FkLXByb2dyZXNzLWNoYW5nZWQiLCBH
X0NBTExCQUNLIChwcm9ncmVzc19jaGFuZ2VfY2IpLCB3ZWJfdmlldyk7CisgICAgZ19zaWduYWxf
Y29ubmVjdCAoR19PQkpFQ1QgKHdlYl92aWV3KSwgImxvYWQtZmluaXNoZWQiLCBHX0NBTExCQUNL
IChsb2FkX2ZpbmlzaGVkX2NiKSwgd2ViX3ZpZXcpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QgKEdf
T0JKRUNUICh3ZWJfdmlldyksICJob3ZlcmluZy1vdmVyLWxpbmsiLCBHX0NBTExCQUNLIChsaW5r
X2hvdmVyX2NiKSwgd2ViX3ZpZXcpOwogCiAgICAgcmV0dXJuIHNjcm9sbGVkX3dpbmRvdzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17936</attachid>
            <date>2007-12-16 10:39:54 -0800</date>
            <delta_ts>2007-12-17 04:35:18 -0800</delta_ts>
            <desc>new patch</desc>
            <filename>urichange.patch</filename>
            <type>text/plain</type>
            <size>10432</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwCShyZXZpc2lvbiAyODc2OCkKKysrIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDMsNyArNTAzLDEx
IEBACiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKGNv
bnN0IFN0cmluZyYgdGl0bGUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBXZWJLaXRX
ZWJWaWV3KiBwYWdlID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKworICAgIGdfc2lnbmFs
X2VtaXRfYnlfbmFtZShtX2ZyYW1lLCAidGl0bGUtY2hhbmdlZCIsIHRpdGxlLnV0ZjgoKS5kYXRh
KCkpOworICAgIGlmIChtX2ZyYW1lID09IHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZShw
YWdlKSkKKyAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHBhZ2UsICJ0aXRsZS1jaGFuZ2Vk
IiwgdGl0bGUudXRmOCgpLmRhdGEoKSk7CiB9CiAKIApAQCAtNjMzLDE0ICs2MzcsMTAgQEAKIAog
dm9pZCBGcmFtZUxvYWRlckNsaWVudDo6c2V0VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29u
c3QgS1VSTCYgdXJsKQogewotICAgIFdlYktpdFdlYlZpZXcqIHBhZ2UgPSBnZXRWaWV3RnJvbUZy
YW1lKG1fZnJhbWUpOwotCi0gICAgQ1N0cmluZyB0aXRsZVN0cmluZyA9IHRpdGxlLnV0ZjgoKTsK
LSAgICBEZXByZWNhdGVkQ1N0cmluZyB1cmxTdHJpbmcgPSB1cmwucHJldHR5VVJMKCkudXRmOCgp
OwotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX2ZyYW1lLCAidGl0bGUtY2hhbmdlZCIsIHRp
dGxlU3RyaW5nLmRhdGEoKSwgdXJsU3RyaW5nLmRhdGEoKSk7Ci0KLSAgICBpZiAobV9mcmFtZSA9
PSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUocGFnZSkpCi0gICAgICAgIGdfc2lnbmFs
X2VtaXRfYnlfbmFtZShwYWdlLCAidGl0bGUtY2hhbmdlZCIsIHRpdGxlU3RyaW5nLmRhdGEoKSwg
dXJsU3RyaW5nLmRhdGEoKSk7CisgICAgV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBmcmFtZURhdGEg
PSBXRUJLSVRfV0VCX0ZSQU1FX0dFVF9QUklWQVRFKG1fZnJhbWUpOworICAgIGlmIChmcmFtZURh
dGEtPnRpdGxlKQorICAgICAgICBnX2ZyZWUoZnJhbWVEYXRhLT50aXRsZSk7CisgICAgZnJhbWVE
YXRhLT50aXRsZSA9IGdfc3RyZHVwKHRpdGxlLnV0ZjgoKS5kYXRhKCkpOwogfQogCiB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKERvY3VtZW50
TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpCklu
ZGV4OiBXZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjg3NzMpCisrKyBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDA3LTEyLTE2ICBMdWNhIEJydW5vICA8bGV0aGFsbWFu
ODhAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTQyCisgICAg
ICAgIGdka2xhdW5jaGVyIGRvZXNudCBjaGFuZ2UgVVJMIGluIGFkcmVzcyBHVEtFbnRyeS4KKwor
ICAgICAgICBMZXQgRE9NRG9jdW1lbnQgb2JzZXJ2ZXJzIGRvIHRoZWlyIHdvcmsgYmVmb3JlIGVt
aXR0aW5nIHRpdGxlLWNoYW5nZWQuCisJCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUpOiBlbWl0IHRpdGxlLWNoYW5nZWQKKyAgICAgICAgKFdl
YktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnNldFRpdGxlKTogc2V0IHByaXZhdGUgdGl0bGUKKyAg
ICAgICAgKiBXZWJWaWV3L3dlYmtpdC1tYXJzaGFsLmxpc3Q6CisgICAgICAgICogV2ViVmlldy93
ZWJraXRwcml2YXRlLmg6CisJKF9XZWJLaXRXZWJGcmFtZVByaXZhdGUpOiByZW1vdmUgbG9jYXRp
b24KKyAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYmZyYW1lLmNwcDoKKwkod2Via2l0X3dlYl9m
cmFtZV9nZXRfbG9jYXRpb24pOiBnZXQgZnJvbSB0aGUgRnJhbWVMb2FkZXIgdGhlbiByZXR1cm4g
YSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nCisJKHdlYmtpdF93ZWJfZnJhbWVfcmVhbF90aXRsZV9j
aGFuZ2VkKTogcmVtb3ZlZCAoc2VlIEZyYW1lTG9hZGVyQ2xpZW50OjpzZXRUaXRsZSkKKwkod2Vi
a2l0X3dlYl9mcmFtZV9jbGFzc19pbml0KTogb25seSBwYXNzIHRoZSB0aXRsZSBpbiB0aXRsZS1j
aGFuZ2VkCisJKHdlYmtpdF93ZWJfZnJhbWVfZmluYWxpemUpOgorICAgICAgICAqIFdlYlZpZXcv
d2Via2l0d2ViZnJhbWUuaDoKKwkoX1dlYktpdFdlYkZyYW1lQ2xhc3MpOiByZW1vdmVkIHRpdGxl
X2NoYW5nZWQKKyAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwOgorCSh3ZWJraXRf
d2ViX3ZpZXdfY2xhc3NfaW5pdCk6CisKIDIwMDctMTItMTQgIEFscCBUb2tlciAgPGFscEBhdG9r
ZXIuY29tPgogCiAgICAgICAgIEZpeCBpbmNvbnNpc3RlbnQgaW5kZW50YXRpb24gaW4gdGhlIGxp
Y2Vuc2UgaGVhZGVyLiBNYWNpZWogd2FzIHJpZ2h0IQpJbmRleDogV2ViS2l0L2d0ay9XZWJWaWV3
L3dlYmtpdHdlYmZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Vi
a2l0d2ViZnJhbWUuY3BwCShyZXZpc2lvbiAyODc2OCkKKysrIFdlYktpdC9ndGsvV2ViVmlldy93
ZWJraXR3ZWJmcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDggKzU1LDYgQEAKIAogc3Rh
dGljIGd1aW50IHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07
CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfcmVhbF90aXRsZV9jaGFuZ2VkKFdlYktp
dFdlYkZyYW1lKiBmcmFtZSwgZ2NoYXIqIHRpdGxlLCBnY2hhciogbG9jYXRpb24pOwotCiBHX0RF
RklORV9UWVBFKFdlYktpdFdlYkZyYW1lLCB3ZWJraXRfd2ViX2ZyYW1lLCBHX1RZUEVfT0JKRUNU
KQogCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX2ZpbmFsaXplKEdPYmplY3QqIG9iamVj
dCkKQEAgLTY1LDcgKzYzLDYgQEAKICAgICBwcml2YXRlRGF0YS0+ZnJhbWUtPmxvYWRlcigpLT5j
YW5jZWxBbmRDbGVhcigpOwogICAgIGdfZnJlZShwcml2YXRlRGF0YS0+bmFtZSk7CiAgICAgZ19m
cmVlKHByaXZhdGVEYXRhLT50aXRsZSk7Ci0gICAgZ19mcmVlKHByaXZhdGVEYXRhLT5sb2NhdGlv
bik7CiAgICAgZGVsZXRlIHByaXZhdGVEYXRhLT5mcmFtZTsKIAogICAgIEdfT0JKRUNUX0NMQVNT
KHdlYmtpdF93ZWJfZnJhbWVfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKQEAgLTEw
MCwxMiArOTcsMTIgQEAKICAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbVElUTEVfQ0hBTkdF
RF0gPSBnX3NpZ25hbF9uZXcoInRpdGxlLWNoYW5nZWQiLAogICAgICAgICAgICAgR19UWVBFX0ZS
T01fQ0xBU1MoZnJhbWVDbGFzcyksCiAgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05B
TF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCi0gICAgICAgICAgICBHX1NUUlVDVF9PRkZT
RVQoV2ViS2l0V2ViRnJhbWVDbGFzcywgdGl0bGVfY2hhbmdlZCksCisgICAgICAgICAgICAwLCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICBOVUxMLAogICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZP
SURfX1NUUklOR19TVFJJTkcsCi0gICAgICAgICAgICBHX1RZUEVfTk9ORSwgMiwKLSAgICAgICAg
ICAgIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9TVFJJTkcpOworICAgICAgICAgICAgd2Via2l0X21h
cnNoYWxfVk9JRF9fU1RSSU5HLAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDEsCisgICAgICAg
ICAgICBHX1RZUEVfU1RSSU5HKTsKIAogICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tIT1ZF
UklOR19PVkVSX0xJTktdID0gZ19zaWduYWxfbmV3KCJob3ZlcmluZy1vdmVyLWxpbmsiLAogICAg
ICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFzcyksCkBAIC0xMTcsMjMgKzExNCwx
MiBAQAogICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCiAgICAgICAgICAgICBHX1RZUEVfU1RS
SU5HLCBHX1RZUEVfU1RSSU5HKTsKIAotICAgIGZyYW1lQ2xhc3MtPnRpdGxlX2NoYW5nZWQgPSB3
ZWJraXRfd2ViX2ZyYW1lX3JlYWxfdGl0bGVfY2hhbmdlZDsKLQogICAgIC8qCiAgICAgICogaW1w
bGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwogICAgICAqLwogICAgIEdfT0JKRUNUX0NM
QVNTKGZyYW1lQ2xhc3MpLT5maW5hbGl6ZSA9IHdlYmtpdF93ZWJfZnJhbWVfZmluYWxpemU7CiB9
CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfcmVhbF90aXRsZV9jaGFuZ2VkKFdlYktp
dFdlYkZyYW1lKiBmcmFtZSwgZ2NoYXIqIHRpdGxlLCBnY2hhciogbG9jYXRpb24pCi17Ci0gICAg
V2ViS2l0V2ViRnJhbWVQcml2YXRlKiBmcmFtZURhdGEgPSBXRUJLSVRfV0VCX0ZSQU1FX0dFVF9Q
UklWQVRFKGZyYW1lKTsKLSAgICBnX2ZyZWUoZnJhbWVEYXRhLT50aXRsZSk7Ci0gICAgZ19mcmVl
KGZyYW1lRGF0YS0+bG9jYXRpb24pOwotICAgIGZyYW1lRGF0YS0+dGl0bGUgPSBnX3N0cmR1cCh0
aXRsZSk7Ci0gICAgZnJhbWVEYXRhLT5sb2NhdGlvbiA9IGdfc3RyZHVwKGxvY2F0aW9uKTsKLX0K
LQogc3RhdGljIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9pbml0KFdlYktpdFdlYkZyYW1lKiBmcmFt
ZSkKIHsKICAgICAvLyBUT0RPOiBNb3ZlIGNvbnN0cnVjdG9yIGNvZGUgaGVyZS4KQEAgLTE2Nyw3
ICsxNTMsNiBAQAogICAgIGZyYW1lRGF0YS0+d2ViVmlldyA9IHdlYlZpZXc7CiAgICAgZnJhbWVE
YXRhLT5uYW1lID0gMDsKICAgICBmcmFtZURhdGEtPnRpdGxlID0gMDsKLSAgICBmcmFtZURhdGEt
PmxvY2F0aW9uID0gMDsKIAogICAgIHJldHVybiBmcmFtZTsKIH0KQEAgLTE5OSwxMiArMTg0LDE1
IEBACiAgICAgcmV0dXJuIGZyYW1lRGF0YS0+dGl0bGU7CiB9CiAKLWNvbnN0IGdjaGFyKiB3ZWJr
aXRfd2ViX2ZyYW1lX2dldF9sb2NhdGlvbihXZWJLaXRXZWJGcmFtZSogZnJhbWUpCitnY2hhciog
d2Via2l0X3dlYl9mcmFtZV9nZXRfbG9jYXRpb24oV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQogewog
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBOVUxM
KTsKIAotICAgIFdlYktpdFdlYkZyYW1lUHJpdmF0ZSogZnJhbWVEYXRhID0gV0VCS0lUX1dFQl9G
UkFNRV9HRVRfUFJJVkFURShmcmFtZSk7Ci0gICAgcmV0dXJuIGZyYW1lRGF0YS0+bG9jYXRpb247
CisgICAgS1VSTCB1cmwgPSBjb3JlKGZyYW1lKS0+bG9hZGVyKCktPnVybCgpOworICAgIGlmICh1
cmwuaXNOdWxsKCkgfHwgdXJsLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAg
ZWxzZQorICAgICAgICByZXR1cm4gZ19zdHJkdXAodXJsLnByZXR0eVVSTCgpLnV0ZjgoKS5kYXRh
KCkpOwogfQogCiAvKioKQEAgLTQxOCw3ICs0MDYsNiBAQAogICAgIHJldHVybiBnX3N0cmR1cChz
dHJpbmcudXRmOCgpLmRhdGEoKSk7CiB9CiAKLQogI2lmIEdUS19DSEVDS19WRVJTSU9OKDIsMTAs
MCkKIAogLy8gVGhpcyBjb3VsZCBiZSBzaGFyZWQgYmV0d2VlbiBwb3J0cyBvbmNlIGl0J3MgY29t
cGxldGUKSW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXQtbWFyc2hhbC5saXN0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXQtbWFyc2hhbC5saXN0CShyZXZpc2lv
biAyODc2OCkKKysrIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXQtbWFyc2hhbC5saXN0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNCBAQAorVk9JRDpTVFJJTkcKIFZPSUQ6U1RSSU5HLFNUUklO
RwogVk9JRDpPQkpFQ1QsQk9PTEVBTgogVk9JRDpPQkpFQ1QsT0JKRUNUCkluZGV4OiBXZWJLaXQv
Z3RrL1dlYlZpZXcvd2Via2l0d2ViZnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dl
YlZpZXcvd2Via2l0d2ViZnJhbWUuaAkocmV2aXNpb24gMjg3NjgpCisrKyBXZWJLaXQvZ3RrL1dl
YlZpZXcvd2Via2l0d2ViZnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTMgKzQzLDEyIEBA
CiBzdHJ1Y3QgX1dlYktpdFdlYkZyYW1lQ2xhc3MgewogICAgIEdPYmplY3RDbGFzcyBwYXJlbnQ7
CiAKLSAgICB2b2lkICgqdGl0bGVfY2hhbmdlZCkgKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgZ2No
YXIqIHRpdGxlLCBnY2hhciogbG9jYXRpb24pOwotCiAgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2
ZWQxKSAodm9pZCk7CiAgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CiAgICAg
dm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7CiAgICAgdm9pZCAoKl93ZWJraXRfcmVz
ZXJ2ZWQ0KSAodm9pZCk7CiAgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQ1KSAodm9pZCk7Cisg
ICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQ2KSAodm9pZCk7CiB9OwogCiBXRUJLSVRfQVBJIEdU
eXBlCkBAIC02Nyw3ICs2Niw3IEBACiBXRUJLSVRfQVBJIGNvbnN0IGdjaGFyKgogd2Via2l0X3dl
Yl9mcmFtZV9nZXRfdGl0bGUgKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7CiAKLVdFQktJVF9BUEkg
Y29uc3QgZ2NoYXIqCitXRUJLSVRfQVBJIGdjaGFyKgogd2Via2l0X3dlYl9mcmFtZV9nZXRfbG9j
YXRpb24gKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7CiAKIFdFQktJVF9BUEkgV2ViS2l0V2ViRnJh
bWUqCkluZGV4OiBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCShyZXZpc2lvbiAyODc2
OCkKKysrIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTI1LDkgKzUyNSw5IEBACiAgICAgICAgICAgICAwLAogICAgICAgICAgICAgTlVMTCwK
ICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19TVFJJ
TkdfU1RSSU5HLAotICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCi0gICAgICAgICAgICBHX1RZ
UEVfU1RSSU5HLCBHX1RZUEVfU1RSSU5HKTsKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZP
SURfX1NUUklORywKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAxLAorICAgICAgICAgICAgR19U
WVBFX1NUUklORyk7CiAKICAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tIT1ZFUklOR19PVkVS
X0xJTktdID0gZ19zaWduYWxfbmV3KCJob3ZlcmluZy1vdmVyLWxpbmsiLAogICAgICAgICAgICAg
R19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKSW5kZXg6IFdlYktpdC9ndGsvV2ViVmll
dy93ZWJraXRwcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtp
dHByaXZhdGUuaAkocmV2aXNpb24gMjg3NjgpCisrKyBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0
cHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw2IEBACiAKICAgICAgICAgZ2No
YXIqIG5hbWU7CiAgICAgICAgIGdjaGFyKiB0aXRsZTsKLSAgICAgICAgZ2NoYXIqIGxvY2F0aW9u
OwogICAgIH07CiAKICAgICAjZGVmaW5lIFdFQktJVF9ORVRXT1JLX1JFUVVFU1RfR0VUX1BSSVZB
VEUob2JqKSAgICAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKChvYmopLCBXRUJLSVRfVFlQ
RV9ORVRXT1JLX1JFUVVFU1QsIFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSkpCkluZGV4OiBX
ZWJLaXRUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODc3MykKKysrIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDEyIEBACisyMDA3LTEyLTE2ICBMdWNhIEJydW5vICA8bGV0aGFsbWFuODhA
Z21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogR3RrTGF1bmNoZXIvbWFpbi5jOgorICAgICAgICAodGl0bGVfY2hhbmdlX2NiKTogb25s
eSBzZXQgdGhlIHRpdGxlCisgICAgICAgIChsb2FkX2ZpbmlzaGVkX2NiKTogdXBkYXRlIHRoZSB1
cmkKKyAgICAgICAgKGNyZWF0ZV9icm93c2VyKToKKwogMjAwNy0xMi0xNiAgQWxleGV5IFByb3Nr
dXJ5YWtvdiAgPGFwQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCklu
ZGV4OiBXZWJLaXRUb29scy9HdGtMYXVuY2hlci9tYWluLmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
VG9vbHMvR3RrTGF1bmNoZXIvbWFpbi5jCShyZXZpc2lvbiAyODc2OCkKKysrIFdlYktpdFRvb2xz
L0d0a0xhdW5jaGVyL21haW4uYwkod29ya2luZyBjb3B5KQpAQCAtNjUsMTAgKzY1LDggQEAKIH0K
IAogc3RhdGljIHZvaWQKLXRpdGxlX2NoYW5nZV9jYiAoV2ViS2l0V2ViVmlldyogcGFnZSwgY29u
c3QgZ2NoYXIqIHRpdGxlLCBjb25zdCBnY2hhciogdXJpLCBncG9pbnRlciBkYXRhKQordGl0bGVf
Y2hhbmdlX2NiIChXZWJLaXRXZWJWaWV3KiBwYWdlLCBjb25zdCBnY2hhciogdGl0bGUsIGdwb2lu
dGVyIGRhdGEpCiB7Ci0gICAgZ3RrX2VudHJ5X3NldF90ZXh0IChHVEtfRU5UUlkgKHVyaV9lbnRy
eSksIHVyaSk7Ci0KICAgICBpZiAobWFpbl90aXRsZSkKICAgICAgICAgZ19mcmVlIChtYWluX3Rp
dGxlKTsKICAgICBtYWluX3RpdGxlID0gZ19zdHJkdXAgKHRpdGxlKTsKQEAgLTgzLDYgKzgxLDIw
IEBACiB9CiAKIHN0YXRpYyB2b2lkCitsb2FkX2ZpbmlzaGVkX2NiIChXZWJLaXRXZWJWaWV3KiBw
YWdlLCBXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGdwb2ludGVyIGRhdGEpCit7CisgICAgV2ViS2l0
V2ViRnJhbWUqIG1haW5fZnJhbWUgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUocGFn
ZSk7CisgICAgaWYgKG1haW5fZnJhbWUgIT0gZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAg
IGdjaGFyKiBsb2NhdGlvbiA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2xvY2F0aW9uKGZyYW1lKTsK
KyAgICBpZiAobG9jYXRpb24pIHsKKyAgICAgICAgZ3RrX2VudHJ5X3NldF90ZXh0IChHVEtfRU5U
UlkgKHVyaV9lbnRyeSksIGxvY2F0aW9uKTsKKyAgICAgICAgZ19mcmVlKGxvY2F0aW9uKTsKKyAg
ICB9Cit9CisKK3N0YXRpYyB2b2lkCiBkZXN0cm95X2NiIChHdGtXaWRnZXQqIHdpZGdldCwgZ3Bv
aW50ZXIgZGF0YSkKIHsKICAgICBndGtfbWFpbl9xdWl0ICgpOwpAQCAtMTExLDYgKzEyMyw3IEBA
CiAKICAgICBnX3NpZ25hbF9jb25uZWN0IChHX09CSkVDVCAod2ViX3ZpZXcpLCAidGl0bGUtY2hh
bmdlZCIsIEdfQ0FMTEJBQ0sgKHRpdGxlX2NoYW5nZV9jYiksIHdlYl92aWV3KTsKICAgICBnX3Np
Z25hbF9jb25uZWN0IChHX09CSkVDVCAod2ViX3ZpZXcpLCAibG9hZC1wcm9ncmVzcy1jaGFuZ2Vk
IiwgR19DQUxMQkFDSyAocHJvZ3Jlc3NfY2hhbmdlX2NiKSwgd2ViX3ZpZXcpOworICAgIGdfc2ln
bmFsX2Nvbm5lY3QgKEdfT0JKRUNUICh3ZWJfdmlldyksICJsb2FkLWZpbmlzaGVkIiwgR19DQUxM
QkFDSyAobG9hZF9maW5pc2hlZF9jYiksIHdlYl92aWV3KTsKICAgICBnX3NpZ25hbF9jb25uZWN0
IChHX09CSkVDVCAod2ViX3ZpZXcpLCAiaG92ZXJpbmctb3Zlci1saW5rIiwgR19DQUxMQkFDSyAo
bGlua19ob3Zlcl9jYiksIHdlYl92aWV3KTsKIAogICAgIHJldHVybiBzY3JvbGxlZF93aW5kb3c7
Cg==
</data>
<flag name="review"
          id="7769"
          type_id="1"
          status="-"
          setter="alp"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17960</attachid>
            <date>2007-12-17 04:35:18 -0800</date>
            <delta_ts>2007-12-17 12:50:55 -0800</delta_ts>
            <desc>new signal load-committed and constant uri</desc>
            <filename>urichange.patch</filename>
            <type>text/plain</type>
            <size>14258</size>
            <attacher name="Luca Bruno">lethalman88</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwCShyZXZpc2lvbiAyODgwMikKKysrIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDMsMTMgKzUwMywy
NyBAQAogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVUaXRsZShj
b25zdCBTdHJpbmcmIHRpdGxlKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgZ19zaWdu
YWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUsICJ0aXRsZS1jaGFuZ2VkIiwgdGl0bGUudXRmOCgpLmRh
dGEoKSk7CisKKyAgICBXZWJLaXRXZWJWaWV3KiBwYWdlID0gZ2V0Vmlld0Zyb21GcmFtZShtX2Zy
YW1lKTsKKyAgICBpZiAobV9mcmFtZSA9PSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUo
cGFnZSkpCisgICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShwYWdlLCAidGl0bGUtY2hhbmdl
ZCIsIG1fZnJhbWUsIHRpdGxlLnV0ZjgoKS5kYXRhKCkpOwogfQogCi0KIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICAvKiBVcGRhdGUgdGhlIFVSSSBvbmNlIGZpcnN0IGRhdGEgaGFzIGJlZW4gcmVjZWl2
ZWQuCisgICAgICogVGhpcyBtZWFucyB0aGUgVVJJIGlzIHZhbGlkIGFuZCBzdWNjZXNzZnVsbHkg
aWRlbnRpZnkgdGhlIHBhZ2UgdGhhdCdzIGdvaW5nIHRvIGJlIGxvYWRlZC4KKyAgICAgKi8KKyAg
ICBXZWJLaXRXZWJGcmFtZVByaXZhdGUqIGZyYW1lRGF0YSA9IFdFQktJVF9XRUJfRlJBTUVfR0VU
X1BSSVZBVEUobV9mcmFtZSk7CisgICAgZ19mcmVlKGZyYW1lRGF0YS0+dXJpKTsKKyAgICBmcmFt
ZURhdGEtPnVyaSA9IGdfc3RyZHVwKGNvcmUobV9mcmFtZSktPmxvYWRlcigpLT51cmwoKS5wcmV0
dHlVUkwoKS51dGY4KCkuZGF0YSgpKTsKKworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX2Zy
YW1lLCAibG9hZC1jb21taXR0ZWQiKTsKKworICAgIFdlYktpdFdlYlZpZXcqIHBhZ2UgPSBnZXRW
aWV3RnJvbUZyYW1lKG1fZnJhbWUpOworICAgIGlmIChtX2ZyYW1lID09IHdlYmtpdF93ZWJfdmll
d19nZXRfbWFpbl9mcmFtZShwYWdlKSkKKyAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHBh
Z2UsICJsb2FkLWNvbW1pdHRlZCIsIG1fZnJhbWUpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCgpCkBAIC02MzMsMTQgKzY0Nyw5IEBA
CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OnNldFRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUs
IGNvbnN0IEtVUkwmIHVybCkKIHsKLSAgICBXZWJLaXRXZWJWaWV3KiBwYWdlID0gZ2V0Vmlld0Zy
b21GcmFtZShtX2ZyYW1lKTsKLQotICAgIENTdHJpbmcgdGl0bGVTdHJpbmcgPSB0aXRsZS51dGY4
KCk7Ci0gICAgRGVwcmVjYXRlZENTdHJpbmcgdXJsU3RyaW5nID0gdXJsLnByZXR0eVVSTCgpLnV0
ZjgoKTsKLSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV9mcmFtZSwgInRpdGxlLWNoYW5nZWQi
LCB0aXRsZVN0cmluZy5kYXRhKCksIHVybFN0cmluZy5kYXRhKCkpOwotCi0gICAgaWYgKG1fZnJh
bWUgPT0gd2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lKHBhZ2UpKQotICAgICAgICBnX3Np
Z25hbF9lbWl0X2J5X25hbWUocGFnZSwgInRpdGxlLWNoYW5nZWQiLCB0aXRsZVN0cmluZy5kYXRh
KCksIHVybFN0cmluZy5kYXRhKCkpOworICAgIFdlYktpdFdlYkZyYW1lUHJpdmF0ZSogZnJhbWVE
YXRhID0gV0VCS0lUX1dFQl9GUkFNRV9HRVRfUFJJVkFURShtX2ZyYW1lKTsKKyAgICBnX2ZyZWUo
ZnJhbWVEYXRhLT50aXRsZSk7CisgICAgZnJhbWVEYXRhLT50aXRsZSA9IGdfc3RyZHVwKHRpdGxl
LnV0ZjgoKS5kYXRhKCkpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpCkluZGV4OiBXZWJLaXQvZ3RrL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24gMjg4MDIpCisrKyBX
ZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDA3
LTEyLTE3ICBMdWNhIEJydW5vICA8bGV0aGFsbWFuODhAZ21haWwuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNTQyCisgICAgICAgIGdka2xhdW5jaGVyIGRvZXNudCBjaGFu
Z2UgVVJMIGluIGFkcmVzcyBHVEtFbnRyeS4KKworICAgICAgICBMZXQgRE9NRG9jdW1lbnQgb2Jz
ZXJ2ZXJzIGRvIHRoZWlyIHdvcmsgYmVmb3JlIGVtaXR0aW5nIHRpdGxlLWNoYW5nZWQuCisgICAg
ICAgIFRoZSBsb2FkLWNvbW1pdHRlZCBzaWduYWwgaGFzIGJlZW4gYWRkZWQgZm9yIGJvdGggdGhl
IHZpZXcgYW5kIHRoZSBmcmFtZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGlkUmVjZWl2ZVRpdGxlKTogZW1pdCB0aXRsZS1jaGFuZ2VkCisgICAgICAgIChXZWJL
aXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpzZXRUaXRsZSk6IHNldCBwcml2YXRlIHRpdGxlCisgICAg
ICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENvbW1pdExvYWQpOiB1
cGRhdGUgdGhlIGZyYW1lIHVyaSBhbmQgZW1pdCBsb2FkLWNvbW1pdHRlZAorICAgICAgICAqIFdl
YlZpZXcvd2Via2l0LW1hcnNoYWwubGlzdDoKKyAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHByaXZh
dGUuaDoKKyAgICAgICAgKF9XZWJLaXRXZWJGcmFtZVByaXZhdGUpOiByZW5hbWUgbG9jYXRpb24g
dG8gdXJpCisgICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJmcmFtZS5jcHA6CisgICAgICAgICh3
ZWJraXRfd2ViX2ZyYW1lX2dldF9sb2NhdGlvbik6IHJlbmFtZWQgdG8gKl9nZXRfdXJpCisgICAg
ICAgICh3ZWJraXRfd2ViX2ZyYW1lX2dldF91cmkpOgorICAgICAgICAod2Via2l0X3dlYl9mcmFt
ZV9yZWFsX3RpdGxlX2NoYW5nZWQpOiByZW1vdmVkIChzZWUgRnJhbWVMb2FkZXJDbGllbnQ6OnNl
dFRpdGxlKQorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9jbGFzc19pbml0KTogcGFzcyB0aGUg
ZnJhbWUgYW5kIHRoZSB0aXRsZSBpbiB0aXRsZS1jaGFuZ2VkLCBub3QgdGhlIHVyaQorICAgICAg
ICAod2Via2l0X3dlYl9mcmFtZV9maW5hbGl6ZSk6CisgICAgICAgICogV2ViVmlldy93ZWJraXR3
ZWJmcmFtZS5oOgorICAgICAgICAoX1dlYktpdFdlYkZyYW1lQ2xhc3MpOiByZW1vdmVkIHRpdGxl
X2NoYW5nZWQKKyAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwOgorICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOiBwYXNzIG9ubHkgdGhlIHRpdGxlIGluIHRpdGxl
LWNoYW5nZWQKKwogMjAwNy0xMi0xNCAgQWxwIFRva2VyICA8YWxwQGF0b2tlci5jb20+CiAKICAg
ICAgICAgRml4IGluY29uc2lzdGVudCBpbmRlbnRhdGlvbiBpbiB0aGUgbGljZW5zZSBoZWFkZXIu
IE1hY2llaiB3YXMgcmlnaHQhCkluZGV4OiBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2ViZnJh
bWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJmcmFtZS5j
cHAJKHJldmlzaW9uIDI4ODAyKQorKysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYmZyYW1l
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQAogCiBlbnVtIHsKICAgICBDTEVB
UkVELAorICAgIExPQURfQ09NTUlUVEVELAogICAgIExPQURfRE9ORSwKICAgICBUSVRMRV9DSEFO
R0VELAogICAgIEhPVkVSSU5HX09WRVJfTElOSywKQEAgLTU1LDggKzU2LDYgQEAKIAogc3RhdGlj
IGd1aW50IHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CiAK
LXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfcmVhbF90aXRsZV9jaGFuZ2VkKFdlYktpdFdl
YkZyYW1lKiBmcmFtZSwgZ2NoYXIqIHRpdGxlLCBnY2hhciogbG9jYXRpb24pOwotCiBHX0RFRklO
RV9UWVBFKFdlYktpdFdlYkZyYW1lLCB3ZWJraXRfd2ViX2ZyYW1lLCBHX1RZUEVfT0JKRUNUKQog
CiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkK
QEAgLTY1LDcgKzY0LDcgQEAKICAgICBwcml2YXRlRGF0YS0+ZnJhbWUtPmxvYWRlcigpLT5jYW5j
ZWxBbmRDbGVhcigpOwogICAgIGdfZnJlZShwcml2YXRlRGF0YS0+bmFtZSk7CiAgICAgZ19mcmVl
KHByaXZhdGVEYXRhLT50aXRsZSk7Ci0gICAgZ19mcmVlKHByaXZhdGVEYXRhLT5sb2NhdGlvbik7
CisgICAgZ19mcmVlKHByaXZhdGVEYXRhLT51cmkpOwogICAgIGRlbGV0ZSBwcml2YXRlRGF0YS0+
ZnJhbWU7CiAKICAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfd2ViX2ZyYW1lX3BhcmVudF9jbGFz
cyktPmZpbmFsaXplKG9iamVjdCk7CkBAIC04Nyw2ICs4NiwxNSBAQAogICAgICAgICAgICAgZ19j
Y2xvc3VyZV9tYXJzaGFsX1ZPSURfX1ZPSUQsCiAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMCk7
CiAKKyAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbTE9BRF9DT01NSVRURURdID0gZ19zaWdu
YWxfbmV3KCJsb2FkLWNvbW1pdHRlZCIsCisgICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhm
cmFtZUNsYXNzKSwKKyAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNU
IHwgR19TSUdOQUxfQUNUSU9OKSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBOVUxMLAor
ICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19W
T0lELAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDApOworCiAgICAgd2Via2l0X3dlYl9mcmFt
ZV9zaWduYWxzW0xPQURfRE9ORV0gPSBnX3NpZ25hbF9uZXcoImxvYWQtZG9uZSIsCiAgICAgICAg
ICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKICAgICAgICAgICAgIChHU2lnbmFs
RmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKQEAgLTEwMCwxMiAr
MTA4LDEyIEBACiAgICAgd2Via2l0X3dlYl9mcmFtZV9zaWduYWxzW1RJVExFX0NIQU5HRURdID0g
Z19zaWduYWxfbmV3KCJ0aXRsZS1jaGFuZ2VkIiwKICAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NM
QVNTKGZyYW1lQ2xhc3MpLAogICAgICAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVO
X0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAotICAgICAgICAgICAgR19TVFJVQ1RfT0ZGU0VUKFdl
YktpdFdlYkZyYW1lQ2xhc3MsIHRpdGxlX2NoYW5nZWQpLAorICAgICAgICAgICAgMCwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgTlVM
TCwKICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19T
VFJJTkdfU1RSSU5HLAotICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCi0gICAgICAgICAgICBH
X1RZUEVfU1RSSU5HLCBHX1RZUEVfU1RSSU5HKTsKKyAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFs
X1ZPSURfX1NUUklORywKKyAgICAgICAgICAgIEdfVFlQRV9OT05FLCAxLAorICAgICAgICAgICAg
R19UWVBFX1NUUklORyk7CiAKICAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbSE9WRVJJTkdf
T1ZFUl9MSU5LXSA9IGdfc2lnbmFsX25ldygiaG92ZXJpbmctb3Zlci1saW5rIiwKICAgICAgICAg
ICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLApAQCAtMTE3LDIzICsxMjUsMTIgQEAK
ICAgICAgICAgICAgIEdfVFlQRV9OT05FLCAyLAogICAgICAgICAgICAgR19UWVBFX1NUUklORywg
R19UWVBFX1NUUklORyk7CiAKLSAgICBmcmFtZUNsYXNzLT50aXRsZV9jaGFuZ2VkID0gd2Via2l0
X3dlYl9mcmFtZV9yZWFsX3RpdGxlX2NoYW5nZWQ7Ci0KICAgICAvKgogICAgICAqIGltcGxlbWVu
dGF0aW9ucyBvZiB2aXJ0dWFsIG1ldGhvZHMKICAgICAgKi8KICAgICBHX09CSkVDVF9DTEFTUyhm
cmFtZUNsYXNzKS0+ZmluYWxpemUgPSB3ZWJraXRfd2ViX2ZyYW1lX2ZpbmFsaXplOwogfQogCi1z
dGF0aWMgdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX3JlYWxfdGl0bGVfY2hhbmdlZChXZWJLaXRXZWJG
cmFtZSogZnJhbWUsIGdjaGFyKiB0aXRsZSwgZ2NoYXIqIGxvY2F0aW9uKQotewotICAgIFdlYktp
dFdlYkZyYW1lUHJpdmF0ZSogZnJhbWVEYXRhID0gV0VCS0lUX1dFQl9GUkFNRV9HRVRfUFJJVkFU
RShmcmFtZSk7Ci0gICAgZ19mcmVlKGZyYW1lRGF0YS0+dGl0bGUpOwotICAgIGdfZnJlZShmcmFt
ZURhdGEtPmxvY2F0aW9uKTsKLSAgICBmcmFtZURhdGEtPnRpdGxlID0gZ19zdHJkdXAodGl0bGUp
OwotICAgIGZyYW1lRGF0YS0+bG9jYXRpb24gPSBnX3N0cmR1cChsb2NhdGlvbik7Ci19Ci0KIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfaW5pdChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiB7
CiAgICAgLy8gVE9ETzogTW92ZSBjb25zdHJ1Y3RvciBjb2RlIGhlcmUuCkBAIC0xNjcsNyArMTY0
LDcgQEAKICAgICBmcmFtZURhdGEtPndlYlZpZXcgPSB3ZWJWaWV3OwogICAgIGZyYW1lRGF0YS0+
bmFtZSA9IDA7CiAgICAgZnJhbWVEYXRhLT50aXRsZSA9IDA7Ci0gICAgZnJhbWVEYXRhLT5sb2Nh
dGlvbiA9IDA7CisgICAgZnJhbWVEYXRhLT51cmkgPSAwOwogCiAgICAgcmV0dXJuIGZyYW1lOwog
fQpAQCAtMTk5LDEyICsxOTYsMTIgQEAKICAgICByZXR1cm4gZnJhbWVEYXRhLT50aXRsZTsKIH0K
IAotY29uc3QgZ2NoYXIqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2xvY2F0aW9uKFdlYktpdFdlYkZy
YW1lKiBmcmFtZSkKK2NvbnN0IGdjaGFyKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF91cmkoV2ViS2l0
V2ViRnJhbWUqIGZyYW1lKQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19X
RUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKIAogICAgIFdlYktpdFdlYkZyYW1lUHJpdmF0ZSogZnJh
bWVEYXRhID0gV0VCS0lUX1dFQl9GUkFNRV9HRVRfUFJJVkFURShmcmFtZSk7Ci0gICAgcmV0dXJu
IGZyYW1lRGF0YS0+bG9jYXRpb247CisgICAgcmV0dXJuIGZyYW1lRGF0YS0+dXJpOwogfQogCiAv
KioKQEAgLTQxOCw3ICs0MTUsNiBAQAogICAgIHJldHVybiBnX3N0cmR1cChzdHJpbmcudXRmOCgp
LmRhdGEoKSk7CiB9CiAKLQogI2lmIEdUS19DSEVDS19WRVJTSU9OKDIsMTAsMCkKIAogLy8gVGhp
cyBjb3VsZCBiZSBzaGFyZWQgYmV0d2VlbiBwb3J0cyBvbmNlIGl0J3MgY29tcGxldGUKSW5kZXg6
IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJmcmFtZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9ndGsvV2ViVmlldy93ZWJraXR3ZWJmcmFtZS5oCShyZXZpc2lvbiAyODgwMikKKysrIFdlYktp
dC9ndGsvV2ViVmlldy93ZWJraXR3ZWJmcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MywxMyAr
NDMsMTIgQEAKIHN0cnVjdCBfV2ViS2l0V2ViRnJhbWVDbGFzcyB7CiAgICAgR09iamVjdENsYXNz
IHBhcmVudDsKIAotICAgIHZvaWQgKCp0aXRsZV9jaGFuZ2VkKSAoV2ViS2l0V2ViRnJhbWUqIGZy
YW1lLCBnY2hhciogdGl0bGUsIGdjaGFyKiBsb2NhdGlvbik7Ci0KICAgICB2b2lkICgqX3dlYmtp
dF9yZXNlcnZlZDEpICh2b2lkKTsKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lk
KTsKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKICAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDQpICh2b2lkKTsKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDUpICh2
b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDYpICh2b2lkKTsKIH07CiAKIFdFQktJ
VF9BUEkgR1R5cGUKQEAgLTY4LDcgKzY3LDcgQEAKIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3RpdGxl
IChXZWJLaXRXZWJGcmFtZSogZnJhbWUpOwogCiBXRUJLSVRfQVBJIGNvbnN0IGdjaGFyKgotd2Vi
a2l0X3dlYl9mcmFtZV9nZXRfbG9jYXRpb24gKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7Cit3ZWJr
aXRfd2ViX2ZyYW1lX2dldF91cmkgKFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7CiAKIFdFQktJVF9B
UEkgV2ViS2l0V2ViRnJhbWUqCiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9wYXJlbnQgKFdlYktpdFdl
YkZyYW1lKiBmcmFtZSk7CkluZGV4OiBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0LW1hcnNoYWwu
bGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0LW1hcnNoYWwubGlz
dAkocmV2aXNpb24gMjg4MDIpCisrKyBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0LW1hcnNoYWwu
bGlzdAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDggQEAKK1ZPSUQ6T0JKRUNUCitWT0lEOlNU
UklORwogVk9JRDpTVFJJTkcsU1RSSU5HCiBWT0lEOk9CSkVDVCxCT09MRUFOCitWT0lEOk9CSkVD
VCxTVFJJTkcKIFZPSUQ6T0JKRUNULE9CSkVDVAogVk9JRDpPQkpFQ1QsUE9JTlRFUixQT0lOVEVS
CiBCT09MRUFOOlNUUklORyxJTlQsU1RSSU5HCkluZGV4OiBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Vi
a2l0d2Vidmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdl
YnZpZXcuY3BwCShyZXZpc2lvbiAyODgwMikKKysrIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3
ZWJ2aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYsNyBAQAogICAgIE5BVklHQVRJ
T05fUkVRVUVTVEVELAogICAgIFdJTkRPV19PQkpFQ1RfQ0xFQVJFRCwKICAgICBMT0FEX1NUQVJU
RUQsCisgICAgTE9BRF9DT01NSVRURUQsCiAgICAgTE9BRF9QUk9HUkVTU19DSEFOR0VELAogICAg
IExPQURfRklOSVNIRUQsCiAgICAgVElUTEVfQ0hBTkdFRCwKQEAgLTMzMCw3ICszMzEsNyBAQAog
CiAgICAgd2luZG93ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVCh3ZWJWaWV3
KSk7CiAgICAgZGlhbG9nID0gZ3RrX21lc3NhZ2VfZGlhbG9nX25ldyhHVEtfV0lER0VUX1RPUExF
VkVMKHdpbmRvdykgPyBHVEtfV0lORE9XKHdpbmRvdykgOiAwLCBHVEtfRElBTE9HX0RFU1RST1lf
V0lUSF9QQVJFTlQsIG1lc3NhZ2VUeXBlLCBidXR0b25zLCAiJXMiLCBtZXNzYWdlKTsKLSAgICBn
Y2hhciogdGl0bGUgPSBnX3N0cmNvbmNhdCgiSmF2YVNjcmlwdCAtICIsIHdlYmtpdF93ZWJfZnJh
bWVfZ2V0X2xvY2F0aW9uKGZyYW1lKSwgTlVMTCk7CisgICAgZ2NoYXIqIHRpdGxlID0gZ19zdHJj
b25jYXQoIkphdmFTY3JpcHQgLSAiLCB3ZWJraXRfd2ViX2ZyYW1lX2dldF91cmkoZnJhbWUpLCBO
VUxMKTsKICAgICBndGtfd2luZG93X3NldF90aXRsZShHVEtfV0lORE9XKGRpYWxvZyksIHRpdGxl
KTsKICAgICBnX2ZyZWUodGl0bGUpOwogCkBAIC00OTUsNiArNDk2LDI0IEBACiAgICAgICAgICAg
ICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUpOwogCiAgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmll
dzo6bG9hZC1jb21taXR0ZWQ6CisgICAgICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IG9uIHdoaWNo
IHRoZSBzaWduYWwgaXMgZW1pdHRlZAorICAgICAqIEBmcmFtZTogdGhlIG1haW4gZnJhbWUgdGhh
dCByZWNlaXZlZCB0aGUgZmlyc3QgZGF0YQorICAgICAqCisgICAgICogV2hlbiBhICNXZWJLaXRX
ZWJGcmFtZSBsb2FkZWQgdGhlIGZpcnN0IGRhdGEgdGhpcyBzaWduYWwgaXMgZW1pdHRlZC4KKyAg
ICAgKi8KKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tMT0FEX0NPTU1JVFRFRF0gPSBnX3Np
Z25hbF9uZXcoImxvYWQtY29tbWl0dGVkIiwKKyAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNT
KHdlYlZpZXdDbGFzcyksCisgICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5f
TEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgTlVM
TCwKKyAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9J
RF9fT0JKRUNULAorICAgICAgICAgICAgR19UWVBFX05PTkUsIDEsCisgICAgICAgICAgICBXRUJL
SVRfVFlQRV9XRUJfRlJBTUUpOworCisKKyAgICAvKioKICAgICAgKiBXZWJLaXRXZWJWaWV3Ojps
b2FkLXByb2dyZXNzLWNoYW5nZWQ6CiAgICAgICogQHdlYl92aWV3OiB0aGUgI1dlYktpdFdlYlZp
ZXcKICAgICAgKiBAcHJvZ3Jlc3M6IHRoZSBnbG9iYWwgcHJvZ3Jlc3MKQEAgLTUxOSwxNSArNTM4
LDI0IEBACiAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMSwKICAgICAgICAgICAgIFdFQktJVF9U
WVBFX1dFQl9GUkFNRSk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJWaWV3Ojp0aXRsZS1j
aGFuZ2VkOgorICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgc2lnbmFs
IGlzIGVtaXR0ZWQKKyAgICAgKiBAZnJhbWU6IHRoZSBtYWluIGZyYW1lCisgICAgICogQHRpdGxl
OiB0aGUgbmV3IHRpdGxlCisgICAgICoKKyAgICAgKiBXaGVuIGEgI1dlYktpdFdlYkZyYW1lIGNo
YW5nZXMgdGhlIGRvY3VtZW50IHRpdGxlIHRoaXMgc2lnbmFsIGlzIGVtaXR0ZWQuCisgICAgICov
CiAgICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbVElUTEVfQ0hBTkdFRF0gPSBnX3NpZ25hbF9u
ZXcoInRpdGxlLWNoYW5nZWQiLAogICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmll
d0NsYXNzKSwKICAgICAgICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwg
R19TSUdOQUxfQUNUSU9OKSwKICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICBOVUxMLAogICAg
ICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX1NUUklOR19T
VFJJTkcsCisgICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfU1RSSU5HLAog
ICAgICAgICAgICAgR19UWVBFX05PTkUsIDIsCi0gICAgICAgICAgICBHX1RZUEVfU1RSSU5HLCBH
X1RZUEVfU1RSSU5HKTsKKyAgICAgICAgICAgIFdFQktJVF9UWVBFX1dFQl9GUkFNRSwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICBHX1RZUEVfU1RSSU5HKTsKIAogICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW0hP
VkVSSU5HX09WRVJfTElOS10gPSBnX3NpZ25hbF9uZXcoImhvdmVyaW5nLW92ZXItbGluayIsCiAg
ICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLApJbmRleDogV2ViS2l0
L2d0ay9XZWJWaWV3L3dlYmtpdHByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dl
YlZpZXcvd2Via2l0cHJpdmF0ZS5oCShyZXZpc2lvbiAyODgwMikKKysrIFdlYktpdC9ndGsvV2Vi
Vmlldy93ZWJraXRwcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAKIAog
ICAgICAgICBnY2hhciogbmFtZTsKICAgICAgICAgZ2NoYXIqIHRpdGxlOwotICAgICAgICBnY2hh
ciogbG9jYXRpb247CisgICAgICAgIGdjaGFyKiB1cmk7CiAgICAgfTsKIAogICAgICNkZWZpbmUg
V0VCS0lUX05FVFdPUktfUkVRVUVTVF9HRVRfUFJJVkFURShvYmopICAgIChHX1RZUEVfSU5TVEFO
Q0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCwgV2ViS2l0
TmV0d29ya1JlcXVlc3RQcml2YXRlKSkKSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4ODA1KQorKysgV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDct
MTItMTcgIEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM1NDIKKyAgICAgICAgZ2RrbGF1bmNoZXIgZG9lc250IGNoYW5n
ZSBVUkwgaW4gYWRyZXNzIEdUS0VudHJ5LgorCisgICAgICAgICogR3RrTGF1bmNoZXIvbWFpbi5j
OgorICAgICAgICAobG9hZF9jb21taXRfY2IpOiBhZGRlZAorICAgICAgICAodGl0bGVfY2hhbmdl
X2NiKToKKyAgICAgICAgKGNyZWF0ZV9icm93c2VyKToKKwogMjAwNy0xMi0xNiAgRGltaXRyaSBH
bGF6a292ICA8ZGltaXRyaUBnbGF6a292LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFt
IFJvYmVuLgpJbmRleDogV2ViS2l0VG9vbHMvR3RrTGF1bmNoZXIvbWFpbi5jCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdFRvb2xzL0d0a0xhdW5jaGVyL21haW4uYwkocmV2aXNpb24gMjg4MDIpCisrKyBX
ZWJLaXRUb29scy9HdGtMYXVuY2hlci9tYWluLmMJKHdvcmtpbmcgY29weSkKQEAgLTY1LDEwICs2
NSw4IEBACiB9CiAKIHN0YXRpYyB2b2lkCi10aXRsZV9jaGFuZ2VfY2IgKFdlYktpdFdlYlZpZXcq
IHBhZ2UsIGNvbnN0IGdjaGFyKiB0aXRsZSwgY29uc3QgZ2NoYXIqIHVyaSwgZ3BvaW50ZXIgZGF0
YSkKK3RpdGxlX2NoYW5nZV9jYiAoV2ViS2l0V2ViVmlldyogcGFnZSwgY29uc3QgZ2NoYXIqIHRp
dGxlLCBncG9pbnRlciBkYXRhKQogewotICAgIGd0a19lbnRyeV9zZXRfdGV4dCAoR1RLX0VOVFJZ
ICh1cmlfZW50cnkpLCB1cmkpOwotCiAgICAgaWYgKG1haW5fdGl0bGUpCiAgICAgICAgIGdfZnJl
ZSAobWFpbl90aXRsZSk7CiAgICAgbWFpbl90aXRsZSA9IGdfc3RyZHVwICh0aXRsZSk7CkBAIC04
Myw2ICs4MSwxNCBAQAogfQogCiBzdGF0aWMgdm9pZAorbG9hZF9jb21taXRfY2IgKFdlYktpdFdl
YlZpZXcqIHBhZ2UsIFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgZ3BvaW50ZXIgZGF0YSkKK3sKKyAg
ICBjb25zdCBnY2hhciogdXJpID0gd2Via2l0X3dlYl9mcmFtZV9nZXRfdXJpKGZyYW1lKTsKKyAg
ICBpZiAodXJpKQorICAgICAgICBndGtfZW50cnlfc2V0X3RleHQgKEdUS19FTlRSWSAodXJpX2Vu
dHJ5KSwgdXJpKTsKK30KKworc3RhdGljIHZvaWQKIGRlc3Ryb3lfY2IgKEd0a1dpZGdldCogd2lk
Z2V0LCBncG9pbnRlciBkYXRhKQogewogICAgIGd0a19tYWluX3F1aXQgKCk7CkBAIC0xMTEsNiAr
MTE3LDcgQEAKIAogICAgIGdfc2lnbmFsX2Nvbm5lY3QgKEdfT0JKRUNUICh3ZWJfdmlldyksICJ0
aXRsZS1jaGFuZ2VkIiwgR19DQUxMQkFDSyAodGl0bGVfY2hhbmdlX2NiKSwgd2ViX3ZpZXcpOwog
ICAgIGdfc2lnbmFsX2Nvbm5lY3QgKEdfT0JKRUNUICh3ZWJfdmlldyksICJsb2FkLXByb2dyZXNz
LWNoYW5nZWQiLCBHX0NBTExCQUNLIChwcm9ncmVzc19jaGFuZ2VfY2IpLCB3ZWJfdmlldyk7Cisg
ICAgZ19zaWduYWxfY29ubmVjdCAoR19PQkpFQ1QgKHdlYl92aWV3KSwgImxvYWQtY29tbWl0dGVk
IiwgR19DQUxMQkFDSyAobG9hZF9jb21taXRfY2IpLCB3ZWJfdmlldyk7CiAgICAgZ19zaWduYWxf
Y29ubmVjdCAoR19PQkpFQ1QgKHdlYl92aWV3KSwgImhvdmVyaW5nLW92ZXItbGluayIsIEdfQ0FM
TEJBQ0sgKGxpbmtfaG92ZXJfY2IpLCB3ZWJfdmlldyk7CiAKICAgICByZXR1cm4gc2Nyb2xsZWRf
d2luZG93Owo=
</data>
<flag name="review"
          id="7789"
          type_id="1"
          status="+"
          setter="alp"
    />
          </attachment>
      

    </bug>

</bugzilla>