<?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>123201</bug_id>
          
          <creation_ts>2013-10-23 05:15:45 -0700</creation_ts>
          <short_desc>[WK2] [GTK] Allow running the web process with an arbitrary prefix command</short_desc>
          <delta_ts>2013-10-28 03:34:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alberto Garcia">berto</reporter>
          <assigned_to name="Alberto Garcia">berto</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>gustavo</cc>
    
    <cc>sergio</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>942646</commentid>
    <comment_count>0</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-10-23 05:15:45 -0700</bug_when>
    <thetext>I think it would be useful to have a way to pass an arbitrary prefix
to the command line when launching the web process in order to debug
webkit more easily. Similar to what the EFL or the (former) Qt port
do.

I wrote a patch that uses the WEB_PROCESS_CMD_PREFIX environment
variable for that purpose.

Example:

$ WEB_PROCESS_CMD_PREFIX=&apos;/usr/bin/gdbserver localhost:8080&apos; WebKitBuild/Debug/Programs/MiniBrowser

and in a different terminal:

$ gdb WebKitBuild/Debug/Programs/.libs/WebKitWebProcess
(gdb) target remote localhost:8080</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942647</commentid>
    <comment_count>1</comment_count>
      <attachid>214946</attachid>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-10-23 05:25:01 -0700</bug_when>
    <thetext>Created attachment 214946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942718</commentid>
    <comment_count>2</comment_count>
      <attachid>214946</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-10-23 09:49:36 -0700</bug_when>
    <thetext>Comment on attachment 214946
Patch

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

Think the idea is a great one, would prefer the impl to be simplified a bit.

&gt; Source/WebKit2/UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:104
&gt; +    if (!m_launchOptions.processCmdPrefix.isEmpty()) {
&gt; +        Vector&lt;String&gt; splitted;
&gt; +        m_launchOptions.processCmdPrefix.split(&apos; &apos;, splitted);
&gt; +        for (auto it = splitted.begin(); it != splitted.end(); it++)
&gt; +            prefixArgs.append(it-&gt;utf8());

Can we do away with this splitted intermediate vector? Are you doing this to make sure the CString is kept alive? I think it would be better to use g_strdup if that is the case - not a lot of overhead, way simpler code.

&gt; Source/WebKit2/UIProcess/gtk/WebProcessProxyGtk.cpp:29
&gt;  
&gt; +#include &lt;glib.h&gt;

This should not have an empty line.

&gt; Source/WebKit2/UIProcess/gtk/WebProcessProxyGtk.cpp:37
&gt; +    if (webProcessCmdPrefix &amp;&amp; *webProcessCmdPrefix)

Why do you do this check on the dereferenced pointer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942721</commentid>
    <comment_count>3</comment_count>
      <attachid>214946</attachid>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-10-23 09:58:51 -0700</bug_when>
    <thetext>Comment on attachment 214946
Patch

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

&gt; Source/WebKit2/UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:123
&gt;      if (!g_spawn_async(0, argv, 0, G_SPAWN_LEAVE_DESCRIPTORS_OPEN, childSetupFunction, GINT_TO_POINTER(sockets[1]), &amp;pid, &amp;error.outPtr())) {

Maybe we could add G_SPAWN_SEARCH_PATH to the spawn flags as well, so that we would be able to pass something like &quot;gdbserver localhost:8080&quot; to the WEB_PROCESS_CMD_PREFIX variable and find gdbserver on the PATH?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942723</commentid>
    <comment_count>4</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-10-23 10:11:37 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; Source/WebKit2/UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:104
&gt; &gt; +    if (!m_launchOptions.processCmdPrefix.isEmpty()) {
&gt; &gt; +        Vector&lt;String&gt; splitted;
&gt; &gt; +        m_launchOptions.processCmdPrefix.split(&apos; &apos;, splitted);
&gt; &gt; +        for (auto it = splitted.begin(); it != splitted.end(); it++)
&gt; &gt; +            prefixArgs.append(it-&gt;utf8());
&gt;
&gt; Can we do away with this splitted intermediate vector?

String::split() returns Strings, but we cannot get the raw data
directly from them.

Using only one vector&lt;String&gt; and something like

  argv[i++] = it-&gt;utf8().data();

won&apos;t work because the intermediate CStrings which hold the data are
immediately destroyed.

The problem of g_strdup() is that we have to free that memory manually
afterwards, but the rest of the contents of the argv vector are freed
automatically.

We can also duplicate all the strings in the argv vector, but I was
looking for a solution that doesn&apos;t add overhead to release builds.

&gt; &gt; Source/WebKit2/UIProcess/gtk/WebProcessProxyGtk.cpp:37
&gt; &gt; +    if (webProcessCmdPrefix &amp;&amp; *webProcessCmdPrefix)
&gt;
&gt; Why do you do this check on the dereferenced pointer?

It just checks that the string is not empty (this part is actually
copied from the EFL code).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942727</commentid>
    <comment_count>5</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-10-23 10:21:24 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Maybe we could add G_SPAWN_SEARCH_PATH to the spawn flags as well,
&gt; so that we would be able to pass something like &quot;gdbserver
&gt; localhost:8080&quot; to the WEB_PROCESS_CMD_PREFIX variable and find
&gt; gdbserver on the PATH?

Dunno, I guess we&apos;re always using the full path to spawn processes so
it should be safe to do it, but I&apos;m fine leaving it as it is now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942854</commentid>
    <comment_count>6</comment_count>
      <attachid>215001</attachid>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-10-23 14:54:54 -0700</bug_when>
    <thetext>Created attachment 215001
Patch

I fixed the style problem in WebProcessProxy.cpp but otherwise the
code is essentially the same.

I rewrote the ProcessLauncher::launchProcess() part so it&apos;s hopefully
a bit clearer now.

As I explained earlier I don&apos;t think it&apos;s easy to do without the
intermediate array. It&apos;s anyway necessary to split the string first in
order to know how much memory we need to allocate for argv.

In this patch I also put the prefixArgs vector inside the #ifndef NDEBUG
block, so for release builds the code is almost identical.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944028</commentid>
    <comment_count>7</comment_count>
      <attachid>215287</attachid>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-10-28 01:17:04 -0700</bug_when>
    <thetext>Created attachment 215287
Patch

The previous patch no longer applies, here&apos;s the rebased version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944030</commentid>
    <comment_count>8</comment_count>
      <attachid>215287</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-10-28 01:38:01 -0700</bug_when>
    <thetext>Comment on attachment 215287
Patch

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

This looks good to me. Thanks.

&gt; Source/WebKit2/UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:105
&gt; +    if (!m_launchOptions.processCmdPrefix.isEmpty()) {

You are preventing this from being empty in WebProcessProxy::platformGetLaunchOptions, so we could probably check whether it&apos;s null instead.

&gt; Source/WebKit2/UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:106
&gt; +        Vector&lt;String&gt; splitted;

I&apos;m not an English expert at all, but I think splitted doesn&apos;t exists. We could call this something like splitArgs or splitPrefixArgs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944033</commentid>
    <comment_count>9</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-10-28 01:56:41 -0700</bug_when>
    <thetext>(In reply to comment #8)

&gt; You are preventing this from being empty in
&gt; WebProcessProxy::platformGetLaunchOptions, so we could probably
&gt; check whether it&apos;s null instead.

&gt; I&apos;m not an English expert at all, but I think splitted doesn&apos;t
&gt; exists. We could call this something like splitArgs or
&gt; splitPrefixArgs

You&apos;re right in both cases, I&apos;ll fix these and commit. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944045</commentid>
    <comment_count>10</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-10-28 03:34:52 -0700</bug_when>
    <thetext>Committed r158105: &lt;http://trac.webkit.org/changeset/158105&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214946</attachid>
            <date>2013-10-23 05:25:01 -0700</date>
            <delta_ts>2013-10-23 14:54:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>123201.diff</filename>
            <type>text/plain</type>
            <size>4151</size>
            <attacher name="Alberto Garcia">berto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlZDMxY2ZmLi5jZTc1ZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTMtMTAtMjMgIEFsYmVydG8gR2FyY2lhICA8YmVydG9AaWdhbGlhLmNvbT4KKworICAg
ICAgICBbV0syXSBbR1RLXSBBbGxvdyBydW5uaW5nIHRoZSB3ZWIgcHJvY2VzcyB3aXRoIGFuIGFy
Yml0cmFyeSBwcmVmaXggY29tbWFuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTIzMjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTGF1bmNoIHRoZSB3ZWIgcHJvY2VzcyB1c2luZyBXRUJfUFJPQ0VTU19D
TURfUFJFRklYIGFzIGEKKyAgICAgICAgcHJlZml4LiBVc2VmdWwgZm9yIGRlYnVnZ2luZyB0aGUg
d2ViIHByb2Nlc3Mgd2l0aCBnZGIsIHZhbGdyaW5kLAorICAgICAgICBldGMuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwOgorICAgICAgICAoV2ViS2l0
OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9n
dGsvV2ViUHJvY2Vzc1Byb3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1By
b3h5OjpwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMpOgorCiAyMDEzLTEwLTIyICBCcmlhbiBIb2x0
ICA8YnJpYW4uaG9sdEBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQgV2ViS2l0MiBB
UEkgZm9yIFRMUyBlcnJvcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCBlZDRlMDMxLi5lN2E4YjNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCkBA
IC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCB1c2VYUEM7CiAjZW5kaWYKICNl
bmRpZgotI2lmIFBMQVRGT1JNKEVGTCkKKyNpZiBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdU
SykKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgIFN0cmluZyBwcm9jZXNzQ21kUHJlZml4OwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1By
b2Nlc3NMYXVuY2hlckd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIv
Z3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAKaW5kZXggZGQ4MDA1Ni4uMjEzMmFiOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNo
ZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJv
Y2Vzc0xhdW5jaGVyR3RrLmNwcApAQCAtNzQsNiArNzQsNyBAQCB2b2lkIFByb2Nlc3NMYXVuY2hl
cjo6bGF1bmNoUHJvY2VzcygpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBWZWN0b3I8
Q1N0cmluZz4gcHJlZml4QXJnczsKICAgICBTdHJpbmcgZXhlY3V0YWJsZVBhdGgsIHBsdWdpblBh
dGg7CiAgICAgQ1N0cmluZyByZWFsRXhlY3V0YWJsZVBhdGgsIHJlYWxQbHVnaW5QYXRoOwogICAg
IHN3aXRjaCAobV9sYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlKSB7CkBAIC05NSwxMyArOTYsMjgg
QEAgdm9pZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogICAgICAgICByZXR1cm47
CiAgICAgfQogCisjaWZuZGVmIE5ERUJVRworICAgIGlmICghbV9sYXVuY2hPcHRpb25zLnByb2Nl
c3NDbWRQcmVmaXguaXNFbXB0eSgpKSB7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHNwbGl0dGVk
OworICAgICAgICBtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc0NtZFByZWZpeC5zcGxpdCgnICcsIHNw
bGl0dGVkKTsKKyAgICAgICAgZm9yIChhdXRvIGl0ID0gc3BsaXR0ZWQuYmVnaW4oKTsgaXQgIT0g
c3BsaXR0ZWQuZW5kKCk7IGl0KyspCisgICAgICAgICAgICBwcmVmaXhBcmdzLmFwcGVuZChpdC0+
dXRmOCgpKTsKKyAgICB9CisjZW5kaWYKKwogICAgIHJlYWxFeGVjdXRhYmxlUGF0aCA9IGZpbGVT
eXN0ZW1SZXByZXNlbnRhdGlvbihleGVjdXRhYmxlUGF0aCk7CiAgICAgR093blB0cjxnY2hhcj4g
c29ja2V0KGdfc3RyZHVwX3ByaW50ZigiJWQiLCBzb2NrZXRzWzBdKSk7Ci0gICAgY2hhciogYXJn
dls0XTsKLSAgICBhcmd2WzBdID0gY29uc3RfY2FzdDxjaGFyKj4ocmVhbEV4ZWN1dGFibGVQYXRo
LmRhdGEoKSk7Ci0gICAgYXJndlsxXSA9IHNvY2tldC5nZXQoKTsKLSAgICBhcmd2WzJdID0gY29u
c3RfY2FzdDxjaGFyKj4ocmVhbFBsdWdpblBhdGguZGF0YSgpKTsKLSAgICBhcmd2WzNdID0gMDsK
KworICAgIC8vIENvbnN0cnVjdCB0aGUgYXJndiBhcnJheSB0byBsYXVuY2ggdGhlIHByb2Nlc3Mu
CisgICAgLy8gSWYgdGhlcmUncyBhIHByZWZpeCBjb21tYW5kLCBwdXQgaXQgYXQgdGhlIGJlZ2lu
bmluZy4KKyAgICBjaGFyKiogYXJndiA9IGdfbmV3YShjaGFyKiwgNCArIHByZWZpeEFyZ3Muc2l6
ZSgpKTsKKyAgICB1bnNpZ25lZCBpID0gMDsKKyAgICBmb3IgKGF1dG8gaXQgPSBwcmVmaXhBcmdz
LmJlZ2luKCk7IGl0ICE9IHByZWZpeEFyZ3MuZW5kKCk7IGl0KyspCisgICAgICAgIGFyZ3ZbaSsr
XSA9IGNvbnN0X2Nhc3Q8Y2hhcio+KGl0LT5kYXRhKCkpOworICAgIGFyZ3ZbaSsrXSA9IGNvbnN0
X2Nhc3Q8Y2hhcio+KHJlYWxFeGVjdXRhYmxlUGF0aC5kYXRhKCkpOworICAgIGFyZ3ZbaSsrXSA9
IHNvY2tldC5nZXQoKTsKKyAgICBhcmd2W2krK10gPSBjb25zdF9jYXN0PGNoYXIqPihyZWFsUGx1
Z2luUGF0aC5kYXRhKCkpOworICAgIGFyZ3ZbaSsrXSA9IDA7CiAKICAgICBHT3duUHRyPEdFcnJv
cj4gZXJyb3I7CiAgICAgaWYgKCFnX3NwYXduX2FzeW5jKDAsIGFyZ3YsIDAsIEdfU1BBV05fTEVB
VkVfREVTQ1JJUFRPUlNfT1BFTiwgY2hpbGRTZXR1cEZ1bmN0aW9uLCBHSU5UX1RPX1BPSU5URVIo
c29ja2V0c1sxXSksICZwaWQsICZlcnJvci5vdXRQdHIoKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc1Byb3h5R3RrLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc1Byb3h5R3RrLmNwcAppbmRleCBlOGIxNzNk
Li40NWUxOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBy
b2Nlc3NQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQ
cm9jZXNzUHJveHlHdGsuY3BwCkBAIC0yNiwxMCArMjYsMTkgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKIAorI2luY2x1ZGUgPGdsaWIuaD4KKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUdldExh
dW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikKK3ZvaWQgV2ViUHJv
Y2Vzc1Byb3h5OjpwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVu
Y2hPcHRpb25zJiBsYXVuY2hPcHRpb25zKQogeworI2lmbmRlZiBOREVCVUcKKyAgICBjb25zdCBj
aGFyKiB3ZWJQcm9jZXNzQ21kUHJlZml4ID0gZ19nZXRlbnYoIldFQl9QUk9DRVNTX0NNRF9QUkVG
SVgiKTsKKyAgICBpZiAod2ViUHJvY2Vzc0NtZFByZWZpeCAmJiAqd2ViUHJvY2Vzc0NtZFByZWZp
eCkKKyAgICAgICAgbGF1bmNoT3B0aW9ucy5wcm9jZXNzQ21kUHJlZml4ID0gU3RyaW5nOjpmcm9t
VVRGOCh3ZWJQcm9jZXNzQ21kUHJlZml4KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGxhdW5j
aE9wdGlvbnMpOworI2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="review"
          id="237567"
          type_id="1"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215001</attachid>
            <date>2013-10-23 14:54:54 -0700</date>
            <delta_ts>2013-10-28 01:17:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>123201.diff</filename>
            <type>text/plain</type>
            <size>3985</size>
            <attacher name="Alberto Garcia">berto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlZDMxY2ZmLi5jZTc1ZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTMtMTAtMjMgIEFsYmVydG8gR2FyY2lhICA8YmVydG9AaWdhbGlhLmNvbT4KKworICAg
ICAgICBbV0syXSBbR1RLXSBBbGxvdyBydW5uaW5nIHRoZSB3ZWIgcHJvY2VzcyB3aXRoIGFuIGFy
Yml0cmFyeSBwcmVmaXggY29tbWFuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTIzMjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTGF1bmNoIHRoZSB3ZWIgcHJvY2VzcyB1c2luZyBXRUJfUFJPQ0VTU19D
TURfUFJFRklYIGFzIGEKKyAgICAgICAgcHJlZml4LiBVc2VmdWwgZm9yIGRlYnVnZ2luZyB0aGUg
d2ViIHByb2Nlc3Mgd2l0aCBnZGIsIHZhbGdyaW5kLAorICAgICAgICBldGMuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwOgorICAgICAgICAoV2ViS2l0
OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9n
dGsvV2ViUHJvY2Vzc1Byb3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1By
b3h5OjpwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMpOgorCiAyMDEzLTEwLTIyICBCcmlhbiBIb2x0
ICA8YnJpYW4uaG9sdEBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQgV2ViS2l0MiBB
UEkgZm9yIFRMUyBlcnJvcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCBlZDRlMDMxLi5lN2E4YjNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCkBA
IC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCB1c2VYUEM7CiAjZW5kaWYKICNl
bmRpZgotI2lmIFBMQVRGT1JNKEVGTCkKKyNpZiBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdU
SykKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgIFN0cmluZyBwcm9jZXNzQ21kUHJlZml4OwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1By
b2Nlc3NMYXVuY2hlckd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIv
Z3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAKaW5kZXggZGQ4MDA1Ni4uZmQxNDg2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNo
ZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJv
Y2Vzc0xhdW5jaGVyR3RrLmNwcApAQCAtOTcsMTEgKzk3LDMxIEBAIHZvaWQgUHJvY2Vzc0xhdW5j
aGVyOjpsYXVuY2hQcm9jZXNzKCkKIAogICAgIHJlYWxFeGVjdXRhYmxlUGF0aCA9IGZpbGVTeXN0
ZW1SZXByZXNlbnRhdGlvbihleGVjdXRhYmxlUGF0aCk7CiAgICAgR093blB0cjxnY2hhcj4gc29j
a2V0KGdfc3RyZHVwX3ByaW50ZigiJWQiLCBzb2NrZXRzWzBdKSk7Ci0gICAgY2hhciogYXJndls0
XTsKLSAgICBhcmd2WzBdID0gY29uc3RfY2FzdDxjaGFyKj4ocmVhbEV4ZWN1dGFibGVQYXRoLmRh
dGEoKSk7Ci0gICAgYXJndlsxXSA9IHNvY2tldC5nZXQoKTsKLSAgICBhcmd2WzJdID0gY29uc3Rf
Y2FzdDxjaGFyKj4ocmVhbFBsdWdpblBhdGguZGF0YSgpKTsKLSAgICBhcmd2WzNdID0gMDsKKwor
ICAgIHVuc2lnbmVkIG5hcmdzID0gNDsgLy8gc2l6ZSBvZiB0aGUgYXJndiBhcnJheSBmb3IgZ19z
cGF3bl9hc3luYygpCisKKyNpZm5kZWYgTkRFQlVHCisgICAgVmVjdG9yPENTdHJpbmc+IHByZWZp
eEFyZ3M7CisgICAgaWYgKCFtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc0NtZFByZWZpeC5pc0VtcHR5
KCkpIHsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gc3BsaXR0ZWQ7CisgICAgICAgIG1fbGF1bmNo
T3B0aW9ucy5wcm9jZXNzQ21kUHJlZml4LnNwbGl0KCcgJywgc3BsaXR0ZWQpOworICAgICAgICBm
b3IgKGF1dG8gaXQgPSBzcGxpdHRlZC5iZWdpbigpOyBpdCAhPSBzcGxpdHRlZC5lbmQoKTsgaXQr
KykKKyAgICAgICAgICAgIHByZWZpeEFyZ3MuYXBwZW5kKGl0LT51dGY4KCkpOworICAgICAgICBu
YXJncyArPSBwcmVmaXhBcmdzLnNpemUoKTsKKyAgICB9CisjZW5kaWYKKworICAgIGNoYXIqKiBh
cmd2ID0gZ19uZXdhKGNoYXIqLCBuYXJncyk7CisgICAgdW5zaWduZWQgaSA9IDA7CisjaWZuZGVm
IE5ERUJVRworICAgIC8vIElmIHRoZXJlJ3MgYSBwcmVmaXggY29tbWFuZCwgcHV0IGl0IGJlZm9y
ZSB0aGUgcmVzdCBvZiB0aGUgYXJncy4KKyAgICBmb3IgKGF1dG8gaXQgPSBwcmVmaXhBcmdzLmJl
Z2luKCk7IGl0ICE9IHByZWZpeEFyZ3MuZW5kKCk7IGl0KyspCisgICAgICAgIGFyZ3ZbaSsrXSA9
IGNvbnN0X2Nhc3Q8Y2hhcio+KGl0LT5kYXRhKCkpOworI2VuZGlmCisgICAgYXJndltpKytdID0g
Y29uc3RfY2FzdDxjaGFyKj4ocmVhbEV4ZWN1dGFibGVQYXRoLmRhdGEoKSk7CisgICAgYXJndltp
KytdID0gc29ja2V0LmdldCgpOworICAgIGFyZ3ZbaSsrXSA9IGNvbnN0X2Nhc3Q8Y2hhcio+KHJl
YWxQbHVnaW5QYXRoLmRhdGEoKSk7CisgICAgYXJndltpKytdID0gMDsKIAogICAgIEdPd25QdHI8
R0Vycm9yPiBlcnJvcjsKICAgICBpZiAoIWdfc3Bhd25fYXN5bmMoMCwgYXJndiwgMCwgR19TUEFX
Tl9MRUFWRV9ERVNDUklQVE9SU19PUEVOLCBjaGlsZFNldHVwRnVuY3Rpb24sIEdJTlRfVE9fUE9J
TlRFUihzb2NrZXRzWzFdKSwgJnBpZCwgJmVycm9yLm91dFB0cigpKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQcm9jZXNzUHJveHlHdGsuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQcm9jZXNzUHJveHlHdGsuY3BwCmluZGV4IGU4
YjE3M2QuLjU5MDdkNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsv
V2ViUHJvY2Vzc1Byb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3Rr
L1dlYlByb2Nlc3NQcm94eUd0ay5jcHAKQEAgLTI1LDExICsyNSwxOSBAQAogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8Z2xpYi5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3Jt
R2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKQordm9pZCBX
ZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtR2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6
OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMpCiB7CisjaWZuZGVmIE5ERUJVRworICAgIGNv
bnN0IGNoYXIqIHdlYlByb2Nlc3NDbWRQcmVmaXggPSBnX2dldGVudigiV0VCX1BST0NFU1NfQ01E
X1BSRUZJWCIpOworICAgIGlmICh3ZWJQcm9jZXNzQ21kUHJlZml4ICYmICp3ZWJQcm9jZXNzQ21k
UHJlZml4KQorICAgICAgICBsYXVuY2hPcHRpb25zLnByb2Nlc3NDbWRQcmVmaXggPSBTdHJpbmc6
OmZyb21VVEY4KHdlYlByb2Nlc3NDbWRQcmVmaXgpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
bGF1bmNoT3B0aW9ucyk7CisjZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215287</attachid>
            <date>2013-10-28 01:17:04 -0700</date>
            <delta_ts>2013-10-28 01:38:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>123201.diff</filename>
            <type>text/plain</type>
            <size>4024</size>
            <attacher name="Alberto Garcia">berto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmYTc0ODI3Li45YTM3MTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTMtMTAtMjMgIEFsYmVydG8gR2FyY2lhICA8YmVydG9AaWdhbGlhLmNvbT4KKworICAg
ICAgICBbV0syXSBbR1RLXSBBbGxvdyBydW5uaW5nIHRoZSB3ZWIgcHJvY2VzcyB3aXRoIGFuIGFy
Yml0cmFyeSBwcmVmaXggY29tbWFuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTIzMjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTGF1bmNoIHRoZSB3ZWIgcHJvY2VzcyB1c2luZyBXRUJfUFJPQ0VTU19D
TURfUFJFRklYIGFzIGEKKyAgICAgICAgcHJlZml4LiBVc2VmdWwgZm9yIGRlYnVnZ2luZyB0aGUg
d2ViIHByb2Nlc3Mgd2l0aCBnZGIsIHZhbGdyaW5kLAorICAgICAgICBldGMuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwOgorICAgICAgICAoV2ViS2l0
OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9n
dGsvV2ViUHJvY2Vzc1Byb3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1By
b3h5OjpwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMpOgorCiAyMDEzLTEwLTI3ICBCcmFkeSBFaWRz
b24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJJY29uRGF0YWJhc2UgY2FuIG1p
c3MgcHJpdmF0ZSBicm93c2luZyBzdGF0ZSBjaGFuZ2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCmluZGV4IGVhNTE1MjcuLmM5
ZWIzNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9j
ZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJv
Y2Vzc0xhdW5jaGVyLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgICAgICBib29sIGV4
ZWN1dGFibGVIZWFwOwogICAgICAgICBib29sIHVzZVhQQzsKICNlbmRpZgotI2lmIFBMQVRGT1JN
KEVGTCkKKyNpZiBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdUSykKICNpZm5kZWYgTkRFQlVH
CiAgICAgICAgIFN0cmluZyBwcm9jZXNzQ21kUHJlZml4OwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hl
ckd0ay5jcHAKaW5kZXggZGQ4MDA1Ni4uZmQxNDg2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNw
cApAQCAtOTcsMTEgKzk3LDMxIEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNz
KCkKIAogICAgIHJlYWxFeGVjdXRhYmxlUGF0aCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihl
eGVjdXRhYmxlUGF0aCk7CiAgICAgR093blB0cjxnY2hhcj4gc29ja2V0KGdfc3RyZHVwX3ByaW50
ZigiJWQiLCBzb2NrZXRzWzBdKSk7Ci0gICAgY2hhciogYXJndls0XTsKLSAgICBhcmd2WzBdID0g
Y29uc3RfY2FzdDxjaGFyKj4ocmVhbEV4ZWN1dGFibGVQYXRoLmRhdGEoKSk7Ci0gICAgYXJndlsx
XSA9IHNvY2tldC5nZXQoKTsKLSAgICBhcmd2WzJdID0gY29uc3RfY2FzdDxjaGFyKj4ocmVhbFBs
dWdpblBhdGguZGF0YSgpKTsKLSAgICBhcmd2WzNdID0gMDsKKworICAgIHVuc2lnbmVkIG5hcmdz
ID0gNDsgLy8gc2l6ZSBvZiB0aGUgYXJndiBhcnJheSBmb3IgZ19zcGF3bl9hc3luYygpCisKKyNp
Zm5kZWYgTkRFQlVHCisgICAgVmVjdG9yPENTdHJpbmc+IHByZWZpeEFyZ3M7CisgICAgaWYgKCFt
X2xhdW5jaE9wdGlvbnMucHJvY2Vzc0NtZFByZWZpeC5pc0VtcHR5KCkpIHsKKyAgICAgICAgVmVj
dG9yPFN0cmluZz4gc3BsaXR0ZWQ7CisgICAgICAgIG1fbGF1bmNoT3B0aW9ucy5wcm9jZXNzQ21k
UHJlZml4LnNwbGl0KCcgJywgc3BsaXR0ZWQpOworICAgICAgICBmb3IgKGF1dG8gaXQgPSBzcGxp
dHRlZC5iZWdpbigpOyBpdCAhPSBzcGxpdHRlZC5lbmQoKTsgaXQrKykKKyAgICAgICAgICAgIHBy
ZWZpeEFyZ3MuYXBwZW5kKGl0LT51dGY4KCkpOworICAgICAgICBuYXJncyArPSBwcmVmaXhBcmdz
LnNpemUoKTsKKyAgICB9CisjZW5kaWYKKworICAgIGNoYXIqKiBhcmd2ID0gZ19uZXdhKGNoYXIq
LCBuYXJncyk7CisgICAgdW5zaWduZWQgaSA9IDA7CisjaWZuZGVmIE5ERUJVRworICAgIC8vIElm
IHRoZXJlJ3MgYSBwcmVmaXggY29tbWFuZCwgcHV0IGl0IGJlZm9yZSB0aGUgcmVzdCBvZiB0aGUg
YXJncy4KKyAgICBmb3IgKGF1dG8gaXQgPSBwcmVmaXhBcmdzLmJlZ2luKCk7IGl0ICE9IHByZWZp
eEFyZ3MuZW5kKCk7IGl0KyspCisgICAgICAgIGFyZ3ZbaSsrXSA9IGNvbnN0X2Nhc3Q8Y2hhcio+
KGl0LT5kYXRhKCkpOworI2VuZGlmCisgICAgYXJndltpKytdID0gY29uc3RfY2FzdDxjaGFyKj4o
cmVhbEV4ZWN1dGFibGVQYXRoLmRhdGEoKSk7CisgICAgYXJndltpKytdID0gc29ja2V0LmdldCgp
OworICAgIGFyZ3ZbaSsrXSA9IGNvbnN0X2Nhc3Q8Y2hhcio+KHJlYWxQbHVnaW5QYXRoLmRhdGEo
KSk7CisgICAgYXJndltpKytdID0gMDsKIAogICAgIEdPd25QdHI8R0Vycm9yPiBlcnJvcjsKICAg
ICBpZiAoIWdfc3Bhd25fYXN5bmMoMCwgYXJndiwgMCwgR19TUEFXTl9MRUFWRV9ERVNDUklQVE9S
U19PUEVOLCBjaGlsZFNldHVwRnVuY3Rpb24sIEdJTlRfVE9fUE9JTlRFUihzb2NrZXRzWzFdKSwg
JnBpZCwgJmVycm9yLm91dFB0cigpKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2d0ay9XZWJQcm9jZXNzUHJveHlHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2d0ay9XZWJQcm9jZXNzUHJveHlHdGsuY3BwCmluZGV4IGU4YjE3M2QuLjU5MDdkNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc1Byb3h5R3Rr
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NQcm94eUd0
ay5jcHAKQEAgLTI1LDExICsyNSwxOSBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8Z2xpYi5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtR2V0TGF1bmNoT3B0aW9ucyhQ
cm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBs
YXRmb3JtR2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxh
dW5jaE9wdGlvbnMpCiB7CisjaWZuZGVmIE5ERUJVRworICAgIGNvbnN0IGNoYXIqIHdlYlByb2Nl
c3NDbWRQcmVmaXggPSBnX2dldGVudigiV0VCX1BST0NFU1NfQ01EX1BSRUZJWCIpOworICAgIGlm
ICh3ZWJQcm9jZXNzQ21kUHJlZml4ICYmICp3ZWJQcm9jZXNzQ21kUHJlZml4KQorICAgICAgICBs
YXVuY2hPcHRpb25zLnByb2Nlc3NDbWRQcmVmaXggPSBTdHJpbmc6OmZyb21VVEY4KHdlYlByb2Nl
c3NDbWRQcmVmaXgpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obGF1bmNoT3B0aW9ucyk7Cisj
ZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>
<flag name="review"
          id="237981"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
          </attachment>
      

    </bug>

</bugzilla>