<?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>144921</bug_id>
          
          <creation_ts>2015-05-12 12:18:54 -0700</creation_ts>
          <short_desc>Enforce options coherency</short_desc>
          <delta_ts>2015-05-14 14:33:32 -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>JavaScriptCore</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="Basile Clement">basile_clement</reporter>
          <assigned_to name="Basile Clement">basile_clement</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1094221</commentid>
    <comment_count>0</comment_count>
      <attachid>252975</attachid>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-05-12 12:18:54 -0700</bug_when>
    <thetext>Created attachment 252975
Failing test

Running the following command segfaults on the system jsc:

$ jsc --useLLInt=false --useJIT=false native_call.js
OK
OK
Segmentation fault: 11

With a ToT debug build I get:

$ DYLD_FRAMEWORK_PATH=WebKitBuild/Debug/ WebKitBuild/Debug/jsc --useLLInt=false --useJIT=false native_call.js 
OK
ASSERTION FAILED: offset == static_cast&lt;int32_t&gt;(offset)
/Volumes/Data/secondary/OpenSource/Source/JavaScriptCore/assembler/X86Assembler.h(2327) : static void JSC::X86Assembler::setRel32(void *, void *)
1   0x10ad9d7e0 WTFCrash
2   0x10a3b9159 JSC::X86Assembler::setRel32(void*, void*)
3   0x10a98c0fd JSC::X86Assembler::relinkCall(void*, void*)
4   0x10a98c0d8 JSC::AbstractMacroAssembler&lt;JSC::X86Assembler, JSC::MacroAssemblerX86Common&gt;::repatchNearCall(JSC::CodeLocationNearCall, JSC::CodeLocationLabel)
5   0x10acb2861 JSC::RepatchBuffer::relink(JSC::CodeLocationNearCall, JSC::MacroAssemblerCodePtr)
6   0x10acaa408 JSC::linkFor(JSC::ExecState*, JSC::CallLinkInfo&amp;, JSC::CodeBlock*, JSC::JSFunction*, JSC::MacroAssemblerCodePtr, JSC::CodeSpecializationKind, JSC::RegisterPreservationMode)
7   0x10a9aa5ad linkFor
8   0x10a9a4cb6 operationLinkCall
9   0x2ec507e0103c
10  0x2ec507e01b5e
11  0x2ec507e016b4
12  0x10ab31a49 vmEntryToJavaScript
13  0x10a993c6a JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
14  0x10a9773a1 JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*)
15  0x10a4a03c0 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;, JSC::JSValue, JSC::JSValue*)
16  0x10a30fa24 runWithScripts(GlobalObject*, WTF::Vector&lt;Script, 0ul, WTF::CrashOnOverflow, 16ul&gt; const&amp;, bool)
17  0x10a30efe6 jscmain(int, char**)
18  0x10a30eb01 main
19  0x7fff904435c9 start
Segmentation fault: 11

The attachment uses print() but any native function seem to work as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094232</commentid>
    <comment_count>1</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-12 12:34:49 -0700</bug_when>
    <thetext>With --useJIT=false, I wonder why we&apos;re JITing code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094245</commentid>
    <comment_count>2</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-05-12 13:01:02 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; With --useJIT=false, I wonder why we&apos;re JITing code.

Indeed...
Looks like the culprit is around line 340 in runtime/Executable.cpp:

339     if (Options::useLLInt())
340         setupLLInt(vm, codeBlock.get());
341     else
342         setupJIT(vm, codeBlock.get());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094263</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-05-12 14:06:59 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; With --useJIT=false, I wonder why we&apos;re JITing code.
&gt; 
&gt; Indeed...
&gt; Looks like the culprit is around line 340 in runtime/Executable.cpp:
&gt; 
&gt; 339     if (Options::useLLInt())
&gt; 340         setupLLInt(vm, codeBlock.get());
&gt; 341     else
&gt; 342         setupJIT(vm, codeBlock.get());

If both useJIT and useLLInt are false, we don&apos;t have a path to execute JS.  We should add an early check that at least one of these options is true and fail if not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094265</commentid>
    <comment_count>4</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-05-12 14:08:56 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; With --useJIT=false, I wonder why we&apos;re JITing code.
&gt; &gt; 
&gt; &gt; Indeed...
&gt; &gt; Looks like the culprit is around line 340 in runtime/Executable.cpp:
&gt; &gt; 
&gt; &gt; 339     if (Options::useLLInt())
&gt; &gt; 340         setupLLInt(vm, codeBlock.get());
&gt; &gt; 341     else
&gt; &gt; 342         setupJIT(vm, codeBlock.get());
&gt; 
&gt; If both useJIT and useLLInt are false, we don&apos;t have a path to execute JS. 
&gt; We should add an early check that at least one of these options is true and
&gt; fail if not.

OK that makes sense ; I was not sure it was the case. I will put up a patch for failing early when both of those are false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094299</commentid>
    <comment_count>5</comment_count>
      <attachid>252993</attachid>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-05-12 15:49:35 -0700</bug_when>
    <thetext>Created attachment 252993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094308</commentid>
    <comment_count>6</comment_count>
      <attachid>252993</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-12 16:03:43 -0700</bug_when>
    <thetext>Comment on attachment 252993
Patch

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

&gt; Source/JavaScriptCore/runtime/Options.cpp:443
&gt; +bool Options::optionsAreCoherent(FILE* stream)

I think you should enforce these checks on all uses of JavaScriptCore, not just the esc executable.

How about converting this function to &quot;void Options::ensureOptionsAreCoherent()&quot; and calling it at the end of Options::initialize()?  You can print the error messages using dataLog(), and make it crash if the options are not coherent.

While it’s nice to be able to yield the decision of how to handle the error to the client app (e.g. jsc), I think that it may not be worth the effort for now.

Please also update the ChangeLog to reflect the change accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094309</commentid>
    <comment_count>7</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-05-12 16:11:15 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 252993 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=252993&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/Options.cpp:443
&gt; &gt; +bool Options::optionsAreCoherent(FILE* stream)
&gt; 
&gt; I think you should enforce these checks on all uses of JavaScriptCore, not
&gt; just the esc executable.
&gt; 
&gt; How about converting this function to &quot;void
&gt; Options::ensureOptionsAreCoherent()&quot; and calling it at the end of
&gt; Options::initialize()?  You can print the error messages using dataLog(),
&gt; and make it crash if the options are not coherent.
&gt; 
&gt; While it’s nice to be able to yield the decision of how to handle the error
&gt; to the client app (e.g. jsc), I think that it may not be worth the effort
&gt; for now.
&gt; 
&gt; Please also update the ChangeLog to reflect the change accordingly.

Correct me if I am wrong, but it seems that Options::initialize() is called first and only takes care of environment variables, while command line arguments are parsed later in jscmain.

Wouldn&apos;t your proposition then only handle

  JSC_useLLInt=false JSC_useJIT=false jsc script.js

while still having undefined behavior on

  jsc --useLLInt=false --useJIT=false script.js

?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094356</commentid>
    <comment_count>8</comment_count>
      <attachid>253005</attachid>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-05-12 18:49:02 -0700</bug_when>
    <thetext>Created attachment 253005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094363</commentid>
    <comment_count>9</comment_count>
      <attachid>253005</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-12 19:07:15 -0700</bug_when>
    <thetext>Comment on attachment 253005
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:14
&gt; +        (such as the jsc executable) should expicitely ask JSC::Options::initialize()

s/should expicitely/may/.  I don&apos;t think we need to make this a requirement.

&gt; Source/JavaScriptCore/ChangeLog:17
&gt; +        not to perform the option coherency check. They are then responsible to
&gt; +        check for coherency once all additional options have been set, and
&gt; +        before starting to execute JavaScript. This is also implemented for the

s/not to/to not/.
s/option/optional/.
s/They are responsible to check for coherency once all additional options have been set, and before starting/The client is responsible to check for coherency, if any additional options have been set, before starting/

&gt; Source/JavaScriptCore/runtime/InitializeThreading.cpp:52
&gt; +void initializeThreading(bool needsCoherentOptions)

Let&apos;s call the arg &quot;needsCoherentOptionsCheck&quot; instead.

&gt; Source/JavaScriptCore/runtime/Options.cpp:454
&gt; +bool Options::optionsAreCoherent(FILE* stream)
&gt; +{
&gt; +    bool coherent = true;
&gt; +    if (!(useLLInt() || useJIT())) {
&gt; +        coherent = false;
&gt; +        fprintf(stream, &quot;INCOHERENT OPTIONS: at least one of useLLInt or useJIT must be true\n&quot;);
&gt; +    }
&gt; +    return coherent;
&gt; +}

I still think you should use dataLog() here instead of fprintf().  This because JSC is sometimes used with clients where stdout is silenced.  Using WTF::dataLog() provides a mechanism where we can redirect the message to a file without changing the client code.  This is the common practice we employ throughout JSC code.

As a result, you can implement this function as &quot;void ensureOptionsAreCoherent()&quot; and have the call to CRASH() in here instead of in initialize().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094365</commentid>
    <comment_count>10</comment_count>
      <attachid>253005</attachid>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-05-12 19:32:17 -0700</bug_when>
    <thetext>Comment on attachment 253005
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/InitializeThreading.cpp:52
&gt;&gt; +void initializeThreading(bool needsCoherentOptions)
&gt; 
&gt; Let&apos;s call the arg &quot;needsCoherentOptionsCheck&quot; instead.

OK.

&gt;&gt; Source/JavaScriptCore/runtime/Options.cpp:454
&gt;&gt; +}
&gt; 
&gt; I still think you should use dataLog() here instead of fprintf().  This because JSC is sometimes used with clients where stdout is silenced.  Using WTF::dataLog() provides a mechanism where we can redirect the message to a file without changing the client code.  This is the common practice we employ throughout JSC code.
&gt; 
&gt; As a result, you can implement this function as &quot;void ensureOptionsAreCoherent()&quot; and have the call to CRASH() in here instead of in initialize().

OK, I was not aware of that. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094366</commentid>
    <comment_count>11</comment_count>
      <attachid>253008</attachid>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-05-12 19:35:20 -0700</bug_when>
    <thetext>Created attachment 253008
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094485</commentid>
    <comment_count>12</comment_count>
      <attachid>253008</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-13 10:37:52 -0700</bug_when>
    <thetext>Comment on attachment 253008
Patch

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

&gt; Source/JavaScriptCore/jsc.cpp:1218
&gt; +    JSC::initializeThreading(false);

We usually avoid boolean parameters like this because it&apos;s not possible to tell at the call site what the parameter means. The two ways to fix this are (1) use an enum instead of a bool (2) put the bool in a local variable that matches the name of the parameter.

That said, is it really worth all this complexity to avoid the startup coherency check? Even though jsc can set additional options on the command line, what&apos;s the harm in checking that the initial set of options passed through environment variables is coherent?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094489</commentid>
    <comment_count>13</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-05-13 10:44:14 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Comment on attachment 253008 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=253008&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/jsc.cpp:1218
&gt; &gt; +    JSC::initializeThreading(false);
&gt; 
&gt; We usually avoid boolean parameters like this because it&apos;s not possible to
&gt; tell at the call site what the parameter means. The two ways to fix this are
&gt; (1) use an enum instead of a bool (2) put the bool in a local variable that
&gt; matches the name of the parameter.

I was thinking of using option (2), which would avoid cluttering initializeThreading completely, I can change that.

&gt; 
&gt; That said, is it really worth all this complexity to avoid the startup
&gt; coherency check? Even though jsc can set additional options on the command
&gt; line, what&apos;s the harm in checking that the initial set of options passed
&gt; through environment variables is coherent?

The reason is that I wanted to avoid confusing error messages in a situation such as:

 $ export JSC_useLLInt=false
 $ ...
 $ JSC_useJIT=false jsc --useLLInt=true
 INCOHERENT OPTIONS: at least one of useLLInt or useJIT must be true

If you think that is not worth it, we can just have an unconditional call to ensureOptionsAreCoherent() in Options::initialize() and another one by the client app after changing the options.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094843</commentid>
    <comment_count>14</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-14 11:00:58 -0700</bug_when>
    <thetext>&gt; The reason is that I wanted to avoid confusing error messages in a situation
&gt; such as:
&gt; 
&gt;  $ export JSC_useLLInt=false
&gt;  $ ...
&gt;  $ JSC_useJIT=false jsc --useLLInt=true
&gt;  INCOHERENT OPTIONS: at least one of useLLInt or useJIT must be true
&gt; 
&gt; If you think that is not worth it, we can just have an unconditional call to
&gt; ensureOptionsAreCoherent() in Options::initialize() and another one by the
&gt; client app after changing the options.

I see your point here. Still, on balance, I think it&apos;s not worth it to worry about this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094854</commentid>
    <comment_count>15</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-05-14 11:34:17 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; &gt; The reason is that I wanted to avoid confusing error messages in a situation
&gt; &gt; such as:
&gt; &gt; 
&gt; &gt;  $ export JSC_useLLInt=false
&gt; &gt;  $ ...
&gt; &gt;  $ JSC_useJIT=false jsc --useLLInt=true
&gt; &gt;  INCOHERENT OPTIONS: at least one of useLLInt or useJIT must be true
&gt; &gt; 
&gt; &gt; If you think that is not worth it, we can just have an unconditional call to
&gt; &gt; ensureOptionsAreCoherent() in Options::initialize() and another one by the
&gt; &gt; client app after changing the options.
&gt; 
&gt; I see your point here. Still, on balance, I think it&apos;s not worth it to worry
&gt; about this case.

OK, simplifying this then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094901</commentid>
    <comment_count>16</comment_count>
      <attachid>253144</attachid>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-05-14 14:16:06 -0700</bug_when>
    <thetext>Created attachment 253144
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094908</commentid>
    <comment_count>17</comment_count>
      <attachid>253144</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-14 14:27:24 -0700</bug_when>
    <thetext>Comment on attachment 253144
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:15
&gt; +        Client applications able to add or change additional options  are

extra space between “options  are&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094913</commentid>
    <comment_count>18</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-05-14 14:33:32 -0700</bug_when>
    <thetext>Committed r184354: &lt;http://trac.webkit.org/changeset/184354&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>252975</attachid>
            <date>2015-05-12 12:18:54 -0700</date>
            <delta_ts>2015-05-12 12:18:54 -0700</delta_ts>
            <desc>Failing test</desc>
            <filename>native_call.js</filename>
            <type>application/x-javascript</type>
            <size>73</size>
            <attacher name="Basile Clement">basile_clement</attacher>
            
              <data encoding="base64">ZnVuY3Rpb24gZm9vKCkgewogICAgcHJpbnQoIk9LIik7Cn0Kbm9JbmxpbmUoZm9vKTsKCmZvbygp
Owpmb28oKTsKZm9vKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252993</attachid>
            <date>2015-05-12 15:49:35 -0700</date>
            <delta_ts>2015-05-12 18:49:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144921-20150512154814.patch</filename>
            <type>text/plain</type>
            <size>3350</size>
            <attacher name="Basile Clement">basile_clement</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0MjA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NWZhNGY5MzE1NmFmOTM4ZDg5ZWU4NDUwNDk5ZmY5MGYwY2VlZTcyLi4xMTIyZWI3MDgxMTU1NDZk
ZDk2M2IwYTZlZTE0MDc5MjY4MDZiM2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxNS0wNS0xMiAgQmFzaWxlIENsZW1lbnQgIDxiYXNpbGVfY2xlbWVudEBh
cHBsZS5jb20+CisKKyAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogb2Zmc2V0ID09IHN0YXRpY19j
YXN0PGludDMyX3Q+KG9mZnNldCkgd2l0aCB1c2VMTEludD1mYWxzZSBhbmQgdXNlSklUPWZhbHNl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ5MjEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBqc2Mgc2hv
dWxkIHJlZnVzZSB0byBydW4gd2hlbiB0aGUgb3B0aW9ucyBpdCBoYXMgYmVlbiBnaXZlbiBwcmV2
ZW50IGl0CisgICAgICAgIGZyb20gcnVubmluZyBwcm9wZXJseSwgcmF0aGVyIHRoYW4gcG9zc2li
bHkgY3Jhc2hpbmcgYXQgc29tZSBwb2ludAorICAgICAgICBkdXJpbmcgZXhlY3V0aW9uLgorICAg
ICAgICBPbmUgc3VjaCBjYXNlIGlzIHdoZW4gdXNlTExJbnQgYW5kIHVzZUpJVCBhcmUgYm90aCBm
YWxzZSwgd2hpY2ggd291bGQKKyAgICAgICAgcHJldmVudCB1cyBmcm9tIGV4ZWN1dGluZyBhbnkg
SlMgY29kZSBhdCBhbGwuCisKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoQ29tbWFuZExp
bmU6OnBhcnNlQXJndW1lbnRzKToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorICAg
ICAgICAoSlNDOjpPcHRpb25zOjpvcHRpb25zQXJlQ29oZXJlbnQpOiBBZGRlZC4KKyAgICAgICAg
KiBydW50aW1lL09wdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6b3B0aW9uc0FyZUNv
aGVyZW50KTogQWRkZWQuCisKIDIwMTUtMDUtMTIgIEdhYm9yIExva2kgIDxsb2tpQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgV29ya2Fyb3VuZCBmb3IgQ29ydGV4LUE1MyBlcnJhdHVtIDg0MzQxOQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvanNjLmNwcAppbmRleCAzY2IwZjM0NWEyY2I0YjQwYTQ4ZmZmYmFmMWJmZTZmM2Rh
MWUyNTkzLi5lZWU2OTAxOTM0MmYyYzY3OGZlN2I2NDVkNDFjYThjYzNkMWVkMDVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvanNjLmNwcApAQCAtMTQ3NSw2ICsxNDc1LDggQEAgdm9pZCBDb21tYW5kTGluZTo6cGFy
c2VBcmd1bWVudHMoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogCiAgICAgaWYgKG5lZWRUb0R1bXBP
cHRpb25zKQogICAgICAgICBKU0M6Ok9wdGlvbnM6OmR1bXBBbGxPcHRpb25zKEpTQzo6T3B0aW9u
czo6RHVtcExldmVsOjpWZXJib3NlLCAiQWxsIEpTQyBydW50aW1lIG9wdGlvbnM6Iiwgc3RkZXJy
KTsKKyAgICBpZiAoIUpTQzo6T3B0aW9uczo6b3B0aW9uc0FyZUNvaGVyZW50KCkpCisgICAgICAg
IGpzY0V4aXQoRVhJVF9GQUlMVVJFKTsKICAgICBpZiAobmVlZFRvRXhpdCkKICAgICAgICAganNj
RXhpdChFWElUX1NVQ0NFU1MpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmNwcAppbmRleCAyMThhMTQ0OGQxZDgxMjhiZmI3YWM4YzA5MmMyMTNhMjBjYjY1NmVkLi5l
YmJhYjFhYjllN2UwYjBkYWY5N2VkOTA1NjBmMDJjZjM2OTk5MjcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcApAQCAtNDQwLDYgKzQ0MCwxNiBAQCB2b2lkIE9w
dGlvbnM6OmR1bXBPcHRpb24oRHVtcExldmVsIGxldmVsLCBPcHRpb25JRCBpZCwgRklMRSogc3Ry
ZWFtLCBjb25zdCBjaGFyKgogICAgIGZwcmludGYoc3RyZWFtLCAiJXMiLCBmb290ZXIpOwogfQog
Citib29sIE9wdGlvbnM6Om9wdGlvbnNBcmVDb2hlcmVudChGSUxFKiBzdHJlYW0pCit7CisgICAg
Ym9vbCBjb2hlcmVudCA9IHRydWU7CisgICAgaWYgKCEodXNlTExJbnQoKSB8fCB1c2VKSVQoKSkp
IHsKKyAgICAgICAgY29oZXJlbnQgPSBmYWxzZTsKKyAgICAgICAgZnByaW50ZihzdHJlYW0sICJP
cHRpb25zIHVzZUxMSW50IGFuZCB1c2VKSVQgY2FuJ3QgYmUgYm90aCBmYWxzZS5cbiIpOworICAg
IH0KKyAgICByZXR1cm4gY29oZXJlbnQ7Cit9CisKIHZvaWQgT3B0aW9uOjpkdW1wKEZJTEUqIHN0
cmVhbSkgY29uc3QKIHsKICAgICBzd2l0Y2ggKHR5cGUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4IGI0ZWU3MDE1MDAzOGZhZjQ1MGQ5Y2I3YjEzODAyODlk
YzkyODBmM2YuLjk4MTVhNmVmMjgzODU2YmUyNDcwNjdkNmVjMDI1MDUyYzM2MmZmZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKQEAgLTM1MSw2ICszNTEsNyBAQCBw
dWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgc2V0T3B0aW9uKGNvbnN0
IGNoYXIqIGFyZyk7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgZHVtcEFsbE9w
dGlvbnMoRHVtcExldmVsLCBjb25zdCBjaGFyKiB0aXRsZSA9IG51bGxwdHIsIEZJTEUqIHN0cmVh
bSA9IHN0ZG91dCk7CiAgICAgc3RhdGljIHZvaWQgZHVtcE9wdGlvbihEdW1wTGV2ZWwsIE9wdGlv
bklELCBGSUxFKiBzdHJlYW0gPSBzdGRvdXQsIGNvbnN0IGNoYXIqIGhlYWRlciA9ICIiLCBjb25z
dCBjaGFyKiBmb290ZXIgPSAiIik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wg
b3B0aW9uc0FyZUNvaGVyZW50KEZJTEUqIHN0cmVhbSA9IHN0ZG91dCk7CiAKICAgICAvLyBEZWNs
YXJlIGFjY2Vzc29ycyBmb3IgZWFjaCBvcHRpb246CiAjZGVmaW5lIEZPUl9FQUNIX09QVElPTih0
eXBlXywgbmFtZV8sIGRlZmF1bHRWYWx1ZV8sIGRlc2NyaXB0aW9uXykgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253005</attachid>
            <date>2015-05-12 18:49:02 -0700</date>
            <delta_ts>2015-05-12 19:35:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144921-20150512184742.patch</filename>
            <type>text/plain</type>
            <size>7150</size>
            <attacher name="Basile Clement">basile_clement</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0MjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
NGE0NjU5Mzc5MjhjNWZkNmUzZjUxY2Q3NWZjZDIxNjRmYmRhNmQ1Li4xNmJhZTIyNDNjZWUwMTA3
ZjIzMzkxYWE4YWQzMzM5NzRhMWY0ZmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxNS0wNS0xMiAgQmFzaWxlIENsZW1lbnQgIDxiYXNpbGVfY2xlbWVudEBh
cHBsZS5jb20+CisKKyAgICAgICAgRW5mb3JjZSBvcHRpb25zIGNvaGVyZW5jeQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0OTIxCisKKyAgICAgICAg
SmF2YVNjcmlwdENvcmUgc2hvdWxkIGJlIGZhaWxpbmcgZWFybHkgd2hlbiB0aGUgb3B0aW9ucyBh
cmUgc2V0IGluIHN1Y2gKKyAgICAgICAgYSB3YXkgdGhhdCB3ZSBkb24ndCBoYXZlIGEgbWVhbmlu
Z2Z1bCB3YXkgdG8gZXhlY3V0ZSBKYXZhU2NyaXB0LCByYXRoZXIKKyAgICAgICAgdGhhbiBmYWls
aW5nIGZvciBvYnNjdXJlIHJlYXNvbnMgYXQgc29tZSBwb2ludCBkdXJpbmcgZXhlY3V0aW9uLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBmdW5jdGlvbiB0aGF0IGNoZWNrcyB3aGV0
aGVyIHRoZSBvcHRpb25zIGFyZSBzZXQKKyAgICAgICAgaW4gYSBjb2hlcmVudCB3YXksIGFuZCBt
YWtlcyBKU0M6Ok9wdGlvbnM6OmluaXRpYWxpemUoKSBjcmFzaCBieQorICAgICAgICBkZWZhdWx0
IHdoZW4gdGhlIGVudmlyb25tZW50IGVuZm9yY2VzIGluY29oZXJlbnQgb3B0aW9ucy4KKyAgICAg
ICAgQ2xpZW50IGFwcGxpY2F0aW9ucyB0aGF0IGFyZSBhYmxlIHRvIGFkZCBvciBjaGFuZ2UgYWRk
aXRpb25hbCBvcHRpb25zCisgICAgICAgIChzdWNoIGFzIHRoZSBqc2MgZXhlY3V0YWJsZSkgc2hv
dWxkIGV4cGljaXRlbHkgYXNrIEpTQzo6T3B0aW9uczo6aW5pdGlhbGl6ZSgpCisgICAgICAgIG5v
dCB0byBwZXJmb3JtIHRoZSBvcHRpb24gY29oZXJlbmN5IGNoZWNrLiBUaGV5IGFyZSB0aGVuIHJl
c3BvbnNpYmxlIHRvCisgICAgICAgIGNoZWNrIGZvciBjb2hlcmVuY3kgb25jZSBhbGwgYWRkaXRp
b25hbCBvcHRpb25zIGhhdmUgYmVlbiBzZXQsIGFuZAorICAgICAgICBiZWZvcmUgc3RhcnRpbmcg
dG8gZXhlY3V0ZSBKYXZhU2NyaXB0LiBUaGlzIGlzIGFsc28gaW1wbGVtZW50ZWQgZm9yIHRoZQor
ICAgICAgICBqc2MgZXhlY3V0YWJsZSBieSB0aGlzIHBhdGNoLgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKG1haW4p
OgorICAgICAgICAoQ29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKToKKyAgICAgICAgKiBydW50
aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuY3BwOgorICAgICAgICAoSlNDOjppbml0aWFsaXplVGhy
ZWFkaW5nKToKKyAgICAgICAgKiBydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaDoKKyAgICAg
ICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpPcHRpb25zOjppbml0aWFs
aXplKToKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6b3B0aW9uc0FyZUNvaGVyZW50KTogQWRkZWQu
CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmg6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6Om9w
dGlvbnNBcmVDb2hlcmVudCk6IEFkZGVkLgorCiAyMDE1LTA1LTEyICBCZW5qYW1pbiBQb3VsYWlu
ICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIE1ha2UgdGhlIE5lZ1plcm8g
YmFja3dhcmQgcHJvcGFnYXRlZCBmbGFncyBvZiBBcml0aE1vZCBzdHJpY3RlcgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
anNjLmNwcAppbmRleCAzY2IwZjM0NWEyY2I0YjQwYTQ4ZmZmYmFmMWJmZTZmM2RhMWUyNTkzLi42
ZmMwMzgyMTU2YWJmYzg0NDM0NjI3YWQyYjYwNWVmMTkwMzYwNTA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcApAQCAtMTIxNSw3ICsxMjE1LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2
KQogI2lmIEVOQUJMRShTQU1QTElOR19SRUdJT05TKQogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5U
aHJlYWQoKTsKICNlbmRpZgotICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOworICAgIEpT
Qzo6aW5pdGlhbGl6ZVRocmVhZGluZyhmYWxzZSk7CiAKICAgICBpZiAoY2hhciogdGltZW91dFN0
cmluZyA9IGdldGVudigiSlNDX3RpbWVvdXQiKSkgewogICAgICAgICBpZiAoc3NjYW5mKHRpbWVv
dXRTdHJpbmcsICIlbGYiLCAmc19kZXNpcmVkVGltZW91dCkgIT0gMSkgewpAQCAtMTQ3NSw2ICsx
NDc1LDggQEAgdm9pZCBDb21tYW5kTGluZTo6cGFyc2VBcmd1bWVudHMoaW50IGFyZ2MsIGNoYXIq
KiBhcmd2KQogCiAgICAgaWYgKG5lZWRUb0R1bXBPcHRpb25zKQogICAgICAgICBKU0M6Ok9wdGlv
bnM6OmR1bXBBbGxPcHRpb25zKEpTQzo6T3B0aW9uczo6RHVtcExldmVsOjpWZXJib3NlLCAiQWxs
IEpTQyBydW50aW1lIG9wdGlvbnM6Iiwgc3RkZXJyKTsKKyAgICBpZiAoIUpTQzo6T3B0aW9uczo6
b3B0aW9uc0FyZUNvaGVyZW50KHN0ZGVycikpCisgICAgICAgIGpzY0V4aXQoRVhJVF9GQUlMVVJF
KTsKICAgICBpZiAobmVlZFRvRXhpdCkKICAgICAgICAganNjRXhpdChFWElUX1NVQ0NFU1MpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5pdGlhbGl6ZVRo
cmVhZGluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXplVGhy
ZWFkaW5nLmNwcAppbmRleCAyZDdhZGJkMGRhNTI2MmM4NDYwOGIyNDNlYmEwYTA5MTJmNzE2ODBh
Li4yODYxZGZkZjM2ZTI4YjM1ZjA2N2QzMzNlZDBjMjFjZjFiMDcxMjg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmNwcApA
QCAtNDksMTUgKzQ5LDE1IEBAIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKIG5hbWVzcGFjZSBKU0Mg
ewogCi12b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQordm9pZCBpbml0aWFsaXplVGhyZWFkaW5n
KGJvb2wgbmVlZHNDb2hlcmVudE9wdGlvbnMpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFn
IGluaXRpYWxpemVUaHJlYWRpbmdPbmNlRmxhZzsKIAotICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRp
YWxpemVUaHJlYWRpbmdPbmNlRmxhZywgW117CisgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6
ZVRocmVhZGluZ09uY2VGbGFnLCBbbmVlZHNDb2hlcmVudE9wdGlvbnNdIHsKICAgICAgICAgV1RG
Ojpkb3VibGVfY29udmVyc2lvbjo6aW5pdGlhbGl6ZSgpOwogICAgICAgICBXVEY6OmluaXRpYWxp
emVUaHJlYWRpbmcoKTsKICAgICAgICAgR2xvYmFsSlNMb2NrOjppbml0aWFsaXplKCk7Ci0gICAg
ICAgIE9wdGlvbnM6OmluaXRpYWxpemUoKTsKKyAgICAgICAgT3B0aW9uczo6aW5pdGlhbGl6ZShu
ZWVkc0NvaGVyZW50T3B0aW9ucyk7CiAgICAgICAgIGlmIChPcHRpb25zOjpyZWNvcmRHQ1BhdXNl
VGltZXMoKSkKICAgICAgICAgICAgIEhlYXBTdGF0aXN0aWNzOjppbml0aWFsaXplKCk7CiAjaWYg
RU5BQkxFKFdSSVRFX0JBUlJJRVJfUFJPRklMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oCmluZGV4IDM5ODQ1YzI0MzlhMTQ0
MjBjMmI1ZGYxYjk4MWY5NDM0Njg2ZDIyMzkuLmE5YTkzNzhkMmY0NjlmYjNiZWYzNTk5YzNkOGM1
NjNiODc2NTRhMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
aXRpYWxpemVUaHJlYWRpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bml0aWFsaXplVGhyZWFkaW5nLmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
IC8vIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuIEl0
IGlzIHNhZmUgdG8gY2FsbCBpdCByZXBlYXRlZGx5LgogLy8gRGFyd2luIGlzIGFuIGV4Y2VwdGlv
biB0byB0aGlzIHJ1bGU6IGl0IGlzIE9LIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiBmcm9tIGFueSB0
aHJlYWQsIGV2ZW4gcmVlbnRyYW50bHkuCi1KU19FWFBPUlRfUFJJVkFURSB2b2lkIGluaXRpYWxp
emVUaHJlYWRpbmcoKTsKK0pTX0VYUE9SVF9QUklWQVRFIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGlu
Zyhib29sIG5lZWRzQ29oZXJlbnRPcHRpb25zID0gdHJ1ZSk7CiAKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAppbmRleCAyMThhMTQ0OGQxZDgxMjhiZmI3YWM4
YzA5MmMyMTNhMjBjYjY1NmVkLi5jMDU0YzVkZDI2YTdmZjk4NzAzODExYjE5ODE5YTgwNmRkYjVl
YjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcApAQCAtMzE2
LDcgKzMxNiw3IEBAIHN0YXRpYyB2b2lkIHJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMoKQogICAg
IEFTU0VSVCgoc3RhdGljX2Nhc3Q8aW50NjRfdD4oT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1p
emVBZnRlckxvbmdXYXJtVXAoKSkgPDwgT3B0aW9uczo6cmVvcHRpbWl6YXRpb25SZXRyeUNvdW50
ZXJNYXgoKSkgPD0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQz
Ml90Pjo6bWF4KCkpKTsKIH0KIAotdm9pZCBPcHRpb25zOjppbml0aWFsaXplKCkKK3ZvaWQgT3B0
aW9uczo6aW5pdGlhbGl6ZShib29sIG5lZWRzQ29oZXJlbnRPcHRpb25zKQogewogICAgIC8vIElu
aXRpYWxpemUgZWFjaCBvZiB0aGUgb3B0aW9ucyB3aXRoIHRoZWlyIGRlZmF1bHQgdmFsdWVzOgog
I2RlZmluZSBGT1JfRUFDSF9PUFRJT04odHlwZV8sIG5hbWVfLCBkZWZhdWx0VmFsdWVfLCBkZXNj
cmlwdGlvbl8pIFwKQEAgLTM3MCw2ICszNzAsOSBAQCB2b2lkIE9wdGlvbnM6OmluaXRpYWxpemUo
KQogICAgICAgICB9CiAgICAgICAgIGR1bXBBbGxPcHRpb25zKGxldmVsLCB0aXRsZSk7CiAgICAg
fQorCisgICAgaWYgKG5lZWRzQ29oZXJlbnRPcHRpb25zICYmICFvcHRpb25zQXJlQ29oZXJlbnQo
KSkKKyAgICAgICAgQ1JBU0goKTsKIH0KIAogLy8gUGFyc2VzIGEgc2luZ2xlIGNvbW1hbmQgbGlu
ZSBvcHRpb24gaW4gdGhlIGZvcm1hdCAiPG9wdGlvbk5hbWU+PTx2YWx1ZT4iCkBAIC00NDAsNiAr
NDQzLDE2IEBAIHZvaWQgT3B0aW9uczo6ZHVtcE9wdGlvbihEdW1wTGV2ZWwgbGV2ZWwsIE9wdGlv
bklEIGlkLCBGSUxFKiBzdHJlYW0sIGNvbnN0IGNoYXIqCiAgICAgZnByaW50ZihzdHJlYW0sICIl
cyIsIGZvb3Rlcik7CiB9CiAKK2Jvb2wgT3B0aW9uczo6b3B0aW9uc0FyZUNvaGVyZW50KEZJTEUq
IHN0cmVhbSkKK3sKKyAgICBib29sIGNvaGVyZW50ID0gdHJ1ZTsKKyAgICBpZiAoISh1c2VMTElu
dCgpIHx8IHVzZUpJVCgpKSkgeworICAgICAgICBjb2hlcmVudCA9IGZhbHNlOworICAgICAgICBm
cHJpbnRmKHN0cmVhbSwgIklOQ09IRVJFTlQgT1BUSU9OUzogYXQgbGVhc3Qgb25lIG9mIHVzZUxM
SW50IG9yIHVzZUpJVCBtdXN0IGJlIHRydWVcbiIpOworICAgIH0KKyAgICByZXR1cm4gY29oZXJl
bnQ7Cit9CisKIHZvaWQgT3B0aW9uOjpkdW1wKEZJTEUqIHN0cmVhbSkgY29uc3QKIHsKICAgICBz
d2l0Y2ggKHR5cGUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmlu
ZGV4IGI0ZWU3MDE1MDAzOGZhZjQ1MGQ5Y2I3YjEzODAyODlkYzkyODBmM2YuLmQ4ZDg4MGEyYzQz
ODc2NmM5N2M2ZmNhYWVmNDNiYzlhNGEwZjJiYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmgKQEAgLTM0NCwxMyArMzQ0LDE0IEBAIHB1YmxpYzoKICAgICAgICAgZ2NM
b2dMZXZlbFR5cGUsCiAgICAgfTsKIAotICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKTsKKyAg
ICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKGJvb2wgbmVlZHNDb2hlcmVudE9wdGlvbnMgPSB0cnVl
KTsKIAogICAgIC8vIFBhcnNlcyBhIHNpbmdsZSBjb21tYW5kIGxpbmUgb3B0aW9uIGluIHRoZSBm
b3JtYXQgIjxvcHRpb25OYW1lPj08dmFsdWU+IgogICAgIC8vIChubyBzcGFjZXMgYWxsb3dlZCkg
YW5kIHNldCB0aGUgc3BlY2lmaWVkIG9wdGlvbiBpZiBhcHByb3ByaWF0ZS4KICAgICBKU19FWFBP
UlRfUFJJVkFURSBzdGF0aWMgYm9vbCBzZXRPcHRpb24oY29uc3QgY2hhciogYXJnKTsKICAgICBK
U19FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBkdW1wQWxsT3B0aW9ucyhEdW1wTGV2ZWwsIGNv
bnN0IGNoYXIqIHRpdGxlID0gbnVsbHB0ciwgRklMRSogc3RyZWFtID0gc3Rkb3V0KTsKICAgICBz
dGF0aWMgdm9pZCBkdW1wT3B0aW9uKER1bXBMZXZlbCwgT3B0aW9uSUQsIEZJTEUqIHN0cmVhbSA9
IHN0ZG91dCwgY29uc3QgY2hhciogaGVhZGVyID0gIiIsIGNvbnN0IGNoYXIqIGZvb3RlciA9ICIi
KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBvcHRpb25zQXJlQ29oZXJlbnQo
RklMRSogc3RyZWFtID0gc3Rkb3V0KTsKIAogICAgIC8vIERlY2xhcmUgYWNjZXNzb3JzIGZvciBl
YWNoIG9wdGlvbjoKICNkZWZpbmUgRk9SX0VBQ0hfT1BUSU9OKHR5cGVfLCBuYW1lXywgZGVmYXVs
dFZhbHVlXywgZGVzY3JpcHRpb25fKSBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253008</attachid>
            <date>2015-05-12 19:35:20 -0700</date>
            <delta_ts>2015-05-14 14:16:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144921-20150512193359.patch</filename>
            <type>text/plain</type>
            <size>7104</size>
            <attacher name="Basile Clement">basile_clement</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0MjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
NGE0NjU5Mzc5MjhjNWZkNmUzZjUxY2Q3NWZjZDIxNjRmYmRhNmQ1Li44NTA5YTJkZTVmZGM5MjI3
MDY5OWMzMGU4YTJkMTAyMmY3OTY2YTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxNS0wNS0xMiAgQmFzaWxlIENsZW1lbnQgIDxiYXNpbGVfY2xlbWVudEBh
cHBsZS5jb20+CisKKyAgICAgICAgRW5mb3JjZSBvcHRpb25zIGNvaGVyZW5jeQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0OTIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSmF2YVNjcmlwdENvcmUgc2hv
dWxkIGJlIGZhaWxpbmcgZWFybHkgd2hlbiB0aGUgb3B0aW9ucyBhcmUgc2V0IGluIHN1Y2gKKyAg
ICAgICAgYSB3YXkgdGhhdCB3ZSBkb24ndCBoYXZlIGEgbWVhbmluZ2Z1bCB3YXkgdG8gZXhlY3V0
ZSBKYXZhU2NyaXB0LCByYXRoZXIKKyAgICAgICAgdGhhbiBmYWlsaW5nIGZvciBvYnNjdXJlIHJl
YXNvbnMgYXQgc29tZSBwb2ludCBkdXJpbmcgZXhlY3V0aW9uLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBhIG5ldyBmdW5jdGlvbiB0aGF0IGNoZWNrcyB3aGV0aGVyIHRoZSBvcHRpb25zIGFy
ZSBzZXQKKyAgICAgICAgaW4gYSBjb2hlcmVudCB3YXksIGFuZCBtYWtlcyBKU0M6Ok9wdGlvbnM6
OmluaXRpYWxpemUoKSBjcmFzaCBieQorICAgICAgICBkZWZhdWx0IHdoZW4gdGhlIGVudmlyb25t
ZW50IGVuZm9yY2VzIGluY29oZXJlbnQgb3B0aW9ucy4KKyAgICAgICAgQ2xpZW50IGFwcGxpY2F0
aW9ucyB0aGF0IGFyZSBhYmxlIHRvIGFkZCBvciBjaGFuZ2UgYWRkaXRpb25hbCBvcHRpb25zCisg
ICAgICAgIChzdWNoIGFzIHRoZSBqc2MgZXhlY3V0YWJsZSkgbWF5ICBhc2sgSlNDOjpPcHRpb25z
Ojppbml0aWFsaXplKCkKKyAgICAgICAgdG8gbm90IHBlcmZvcm0gdGhlIGNvaGVyZW5jeSBjaGVj
ay4gVGhlIGNsaWVudCBpcyByZXNwb25zaWJsZSB0byBjaGVjaworICAgICAgICBmb3IgY29oZXJl
bmN5LCBpZiBhbnkgYWRkaXRpb25hbCBvcHRpb25zIGhhdmUgYmVlbiBzZXQsIGJlZm9yZSBzdGFy
dGluZworICAgICAgICB0byBleGVjdXRlIEphdmFTY3JpcHQuIFRoaXMgaXMgYWxzbyBpbXBsZW1l
bnRlZCBmb3IgdGhlIGpzYyBleGVjdXRhYmxlCisgICAgICAgIGJ5IHRoaXMgcGF0Y2guCisKKyAg
ICAgICAgKiBqc2MuY3BwOgorICAgICAgICAobWFpbik6CisgICAgICAgIChDb21tYW5kTGluZTo6
cGFyc2VBcmd1bWVudHMpOgorICAgICAgICAqIHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5j
cHA6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHJ1bnRp
bWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5jcHA6
CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmluaXRpYWxpemUpOgorICAgICAgICAoSlNDOjpPcHRp
b25zOjpvcHRpb25zQXJlQ29oZXJlbnQpOiBBZGRlZC4KKyAgICAgICAgKiBydW50aW1lL09wdGlv
bnMuaDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6b3B0aW9uc0FyZUNvaGVyZW50KTogQWRkZWQu
CisKIDIwMTUtMDUtMTIgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0pTQ10gTWFrZSB0aGUgTmVnWmVybyBiYWNrd2FyZCBwcm9wYWdhdGVkIGZsYWdz
IG9mIEFyaXRoTW9kIHN0cmljdGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
anNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDNjYjBmMzQ1YTJj
YjRiNDBhNDhmZmZiYWYxYmZlNmYzZGExZTI1OTMuLjlhOGVlNDczMTY2YTQ1ODE4YTU0YWJkYzE0
Y2Y4MzI4MDdkNDgxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0xMjE1LDcgKzEyMTUsNyBA
QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAjaWYgRU5BQkxFKFNBTVBMSU5HX1JF
R0lPTlMpCiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZCgpOwogI2VuZGlmCi0gICAgSlND
Ojppbml0aWFsaXplVGhyZWFkaW5nKCk7CisgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKGZh
bHNlKTsKIAogICAgIGlmIChjaGFyKiB0aW1lb3V0U3RyaW5nID0gZ2V0ZW52KCJKU0NfdGltZW91
dCIpKSB7CiAgICAgICAgIGlmIChzc2NhbmYodGltZW91dFN0cmluZywgIiVsZiIsICZzX2Rlc2ly
ZWRUaW1lb3V0KSAhPSAxKSB7CkBAIC0xNDc1LDYgKzE0NzUsNyBAQCB2b2lkIENvbW1hbmRMaW5l
OjpwYXJzZUFyZ3VtZW50cyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAKICAgICBpZiAobmVlZFRv
RHVtcE9wdGlvbnMpCiAgICAgICAgIEpTQzo6T3B0aW9uczo6ZHVtcEFsbE9wdGlvbnMoSlNDOjpP
cHRpb25zOjpEdW1wTGV2ZWw6OlZlcmJvc2UsICJBbGwgSlNDIHJ1bnRpbWUgb3B0aW9uczoiLCBz
dGRlcnIpOworICAgIEpTQzo6T3B0aW9uczo6ZW5zdXJlT3B0aW9uc0FyZUNvaGVyZW50KCk7CiAg
ICAgaWYgKG5lZWRUb0V4aXQpCiAgICAgICAgIGpzY0V4aXQoRVhJVF9TVUNDRVNTKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luaXRpYWxpemVUaHJlYWRp
bmcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGlu
Zy5jcHAKaW5kZXggMmQ3YWRiZDBkYTUyNjJjODQ2MDhiMjQzZWJhMGEwOTEyZjcxNjgwYS4uOTFl
ODNjZTkwNDBmMTZlMDBmODU3NjAyN2UxYWE5MWU4NDI1Y2YyNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAKQEAgLTQ5
LDE1ICs0OSwxNSBAQCB1c2luZyBuYW1lc3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgSlNDIHsKIAot
dm9pZCBpbml0aWFsaXplVGhyZWFkaW5nKCkKK3ZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZyhib29s
IG5lZWRzQ29oZXJlbnRPcHRpb25zQ2hlY2spCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFn
IGluaXRpYWxpemVUaHJlYWRpbmdPbmNlRmxhZzsKIAotICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRp
YWxpemVUaHJlYWRpbmdPbmNlRmxhZywgW117CisgICAgc3RkOjpjYWxsX29uY2UoaW5pdGlhbGl6
ZVRocmVhZGluZ09uY2VGbGFnLCBbbmVlZHNDb2hlcmVudE9wdGlvbnNDaGVja10gewogICAgICAg
ICBXVEY6OmRvdWJsZV9jb252ZXJzaW9uOjppbml0aWFsaXplKCk7CiAgICAgICAgIFdURjo6aW5p
dGlhbGl6ZVRocmVhZGluZygpOwogICAgICAgICBHbG9iYWxKU0xvY2s6OmluaXRpYWxpemUoKTsK
LSAgICAgICAgT3B0aW9uczo6aW5pdGlhbGl6ZSgpOworICAgICAgICBPcHRpb25zOjppbml0aWFs
aXplKG5lZWRzQ29oZXJlbnRPcHRpb25zQ2hlY2spOwogICAgICAgICBpZiAoT3B0aW9uczo6cmVj
b3JkR0NQYXVzZVRpbWVzKCkpCiAgICAgICAgICAgICBIZWFwU3RhdGlzdGljczo6aW5pdGlhbGl6
ZSgpOwogI2lmIEVOQUJMRShXUklURV9CQVJSSUVSX1BST0ZJTElORykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaAppbmRleCAzOTg0
NWMyNDM5YTE0NDIwYzJiNWRmMWI5ODFmOTQzNDY4NmQyMjM5Li44ZGFiY2U0MjhiMjA2NTJhZDY3
NzY5OGE5MzQ0YmYxYmYxOTg4NDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAvLyBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIGZyb20gdGhlIG1haW4g
dGhyZWFkLiBJdCBpcyBzYWZlIHRvIGNhbGwgaXQgcmVwZWF0ZWRseS4KIC8vIERhcndpbiBpcyBh
biBleGNlcHRpb24gdG8gdGhpcyBydWxlOiBpdCBpcyBPSyB0byBjYWxsIHRoaXMgZnVuY3Rpb24g
ZnJvbSBhbnkgdGhyZWFkLCBldmVuIHJlZW50cmFudGx5LgotSlNfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBpbml0aWFsaXplVGhyZWFkaW5nKCk7CitKU19FWFBPUlRfUFJJVkFURSB2b2lkIGluaXRpYWxp
emVUaHJlYWRpbmcoYm9vbCBuZWVkc0NvaGVyZW50T3B0aW9uc0NoZWNrID0gdHJ1ZSk7CiAKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAppbmRleCAyMThhMTQ0
OGQxZDgxMjhiZmI3YWM4YzA5MmMyMTNhMjBjYjY1NmVkLi4yMjFlOWRhZmM2ZmVlY2JmMjRiYmQy
NzRiNTQ3MzFhYWZiYzk5MjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmNwcApAQCAtMzE2LDcgKzMxNiw3IEBAIHN0YXRpYyB2b2lkIHJlY29tcHV0ZURlcGVuZGVu
dE9wdGlvbnMoKQogICAgIEFTU0VSVCgoc3RhdGljX2Nhc3Q8aW50NjRfdD4oT3B0aW9uczo6dGhy
ZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSkgPDwgT3B0aW9uczo6cmVvcHRpbWl6
YXRpb25SZXRyeUNvdW50ZXJNYXgoKSkgPD0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oc3RkOjpudW1l
cmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpKTsKIH0KIAotdm9pZCBPcHRpb25zOjppbml0aWFs
aXplKCkKK3ZvaWQgT3B0aW9uczo6aW5pdGlhbGl6ZShib29sIG5lZWRzQ29oZXJlbnRPcHRpb25z
Q2hlY2spCiB7CiAgICAgLy8gSW5pdGlhbGl6ZSBlYWNoIG9mIHRoZSBvcHRpb25zIHdpdGggdGhl
aXIgZGVmYXVsdCB2YWx1ZXM6CiAjZGVmaW5lIEZPUl9FQUNIX09QVElPTih0eXBlXywgbmFtZV8s
IGRlZmF1bHRWYWx1ZV8sIGRlc2NyaXB0aW9uXykgXApAQCAtMzcwLDYgKzM3MCw5IEBAIHZvaWQg
T3B0aW9uczo6aW5pdGlhbGl6ZSgpCiAgICAgICAgIH0KICAgICAgICAgZHVtcEFsbE9wdGlvbnMo
bGV2ZWwsIHRpdGxlKTsKICAgICB9CisKKyAgICBpZiAobmVlZHNDb2hlcmVudE9wdGlvbnNDaGVj
aykKKyAgICAgICAgZW5zdXJlT3B0aW9uc0FyZUNvaGVyZW50KCk7CiB9CiAKIC8vIFBhcnNlcyBh
IHNpbmdsZSBjb21tYW5kIGxpbmUgb3B0aW9uIGluIHRoZSBmb3JtYXQgIjxvcHRpb25OYW1lPj08
dmFsdWU+IgpAQCAtNDQwLDYgKzQ0MywxNyBAQCB2b2lkIE9wdGlvbnM6OmR1bXBPcHRpb24oRHVt
cExldmVsIGxldmVsLCBPcHRpb25JRCBpZCwgRklMRSogc3RyZWFtLCBjb25zdCBjaGFyKgogICAg
IGZwcmludGYoc3RyZWFtLCAiJXMiLCBmb290ZXIpOwogfQogCit2b2lkIE9wdGlvbnM6OmVuc3Vy
ZU9wdGlvbnNBcmVDb2hlcmVudCgpCit7CisgICAgYm9vbCBjb2hlcmVudCA9IHRydWU7CisgICAg
aWYgKCEodXNlTExJbnQoKSB8fCB1c2VKSVQoKSkpIHsKKyAgICAgICAgY29oZXJlbnQgPSBmYWxz
ZTsKKyAgICAgICAgZGF0YUxvZygiSU5DT0hFUkVOVCBPUFRJT05TOiBhdCBsZWFzdCBvbmUgb2Yg
dXNlTExJbnQgb3IgdXNlSklUIG11c3QgYmUgdHJ1ZVxuIik7CisgICAgfQorICAgIGlmICghY29o
ZXJlbnQpCisgICAgICAgIENSQVNIKCk7Cit9CisKIHZvaWQgT3B0aW9uOjpkdW1wKEZJTEUqIHN0
cmVhbSkgY29uc3QKIHsKICAgICBzd2l0Y2ggKHR5cGUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4IGI0ZWU3MDE1MDAzOGZhZjQ1MGQ5Y2I3YjEzODAyODlk
YzkyODBmM2YuLmRmMDBjMzdkMDk5ZjUxYmM5ODA1MzBiMzJhZWIyNWM2M2JkMzdiODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKQEAgLTM0NCwxMyArMzQ0LDE0IEBA
IHB1YmxpYzoKICAgICAgICAgZ2NMb2dMZXZlbFR5cGUsCiAgICAgfTsKIAotICAgIHN0YXRpYyB2
b2lkIGluaXRpYWxpemUoKTsKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKGJvb2wgbmVlZHND
b2hlcmVudE9wdGlvbnNDaGVjayA9IHRydWUpOwogCiAgICAgLy8gUGFyc2VzIGEgc2luZ2xlIGNv
bW1hbmQgbGluZSBvcHRpb24gaW4gdGhlIGZvcm1hdCAiPG9wdGlvbk5hbWU+PTx2YWx1ZT4iCiAg
ICAgLy8gKG5vIHNwYWNlcyBhbGxvd2VkKSBhbmQgc2V0IHRoZSBzcGVjaWZpZWQgb3B0aW9uIGlm
IGFwcHJvcHJpYXRlLgogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29sIHNldE9wdGlv
bihjb25zdCBjaGFyKiBhcmcpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGR1
bXBBbGxPcHRpb25zKER1bXBMZXZlbCwgY29uc3QgY2hhciogdGl0bGUgPSBudWxscHRyLCBGSUxF
KiBzdHJlYW0gPSBzdGRvdXQpOwogICAgIHN0YXRpYyB2b2lkIGR1bXBPcHRpb24oRHVtcExldmVs
LCBPcHRpb25JRCwgRklMRSogc3RyZWFtID0gc3Rkb3V0LCBjb25zdCBjaGFyKiBoZWFkZXIgPSAi
IiwgY29uc3QgY2hhciogZm9vdGVyID0gIiIpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyB2b2lkIGVuc3VyZU9wdGlvbnNBcmVDb2hlcmVudCgpOwogCiAgICAgLy8gRGVjbGFyZSBhY2Nl
c3NvcnMgZm9yIGVhY2ggb3B0aW9uOgogI2RlZmluZSBGT1JfRUFDSF9PUFRJT04odHlwZV8sIG5h
bWVfLCBkZWZhdWx0VmFsdWVfLCBkZXNjcmlwdGlvbl8pIFwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253144</attachid>
            <date>2015-05-14 14:16:06 -0700</date>
            <delta_ts>2015-05-14 14:27:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144921-20150514141443.patch</filename>
            <type>text/plain</type>
            <size>3983</size>
            <attacher name="Basile Clement">basile_clement</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0MzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
OWViM2UyMmY4NGRjZDE1MDQ0ZDI5ZTcyZTllNGMzZTdiMzlkZjE4Li5hMDRlNDAwOWRjZjIzMGMx
YWJkMTgzZGJkYjQ2Zjg2OWI1MTRhODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxNS0wNS0xMiAgQmFzaWxlIENsZW1lbnQgIDxiYXNpbGVfY2xlbWVudEBh
cHBsZS5jb20+CisKKyAgICAgICAgRW5mb3JjZSBvcHRpb25zIGNvaGVyZW5jeQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0OTIxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSmF2YVNjcmlwdENvcmUgc2hv
dWxkIGJlIGZhaWxpbmcgZWFybHkgd2hlbiB0aGUgb3B0aW9ucyBhcmUgc2V0IGluIHN1Y2gKKyAg
ICAgICAgYSB3YXkgdGhhdCB3ZSBkb24ndCBoYXZlIGEgbWVhbmluZ2Z1bCB3YXkgdG8gZXhlY3V0
ZSBKYXZhU2NyaXB0LCByYXRoZXIKKyAgICAgICAgdGhhbiBmYWlsaW5nIGZvciBvYnNjdXJlIHJl
YXNvbnMgYXQgc29tZSBwb2ludCBkdXJpbmcgZXhlY3V0aW9uLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBhIG5ldyBmdW5jdGlvbiB0aGF0IGNoZWNrcyB3aGV0aGVyIHRoZSBvcHRpb25zIGFy
ZSBzZXQKKyAgICAgICAgaW4gYSBjb2hlcmVudCB3YXksIGFuZCBtYWtlcyBKU0M6Ok9wdGlvbnM6
OmluaXRpYWxpemUoKSBjcmFzaCB3aGVuIHRoZQorICAgICAgICBlbnZpcm9ubWVudCBlbmZvcmNl
cyBpbmNvaGVyZW50IG9wdGlvbnMuCisgICAgICAgIENsaWVudCBhcHBsaWNhdGlvbnMgYWJsZSB0
byBhZGQgb3IgY2hhbmdlIGFkZGl0aW9uYWwgb3B0aW9ucyAgYXJlCisgICAgICAgIHJlc3BvbnNp
YmxlIHRvIGNoZWNrIGZvciBjb2hlcmVuY3kgYWdhaW4gYmVmb3JlIHN0YXJ0aW5nIHRvIGFjdHVh
bGx5CisgICAgICAgIGV4ZWN1dGUgSmF2YVNjcmlwdCwgaWYgYW55IGFkZGl0aW9uYWwgb3B0aW9u
cyBoYXZlIGJlZW4gc2V0LiBUaGlzIGlzCisgICAgICAgIGltcGxlbWVudGVkIGZvciB0aGUganNj
IGV4ZWN1dGFibGUgaW4gdGhpcyBwYXRjaC4KKworICAgICAgICAqIGpzYy5jcHA6CisgICAgICAg
IChDb21tYW5kTGluZTo6cGFyc2VBcmd1bWVudHMpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9u
cy5jcHA6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmluaXRpYWxpemUpOgorICAgICAgICAoSlND
OjpPcHRpb25zOjplbnN1cmVPcHRpb25zQXJlQ29oZXJlbnQpOiBBZGRlZC4KKyAgICAgICAgKiBy
dW50aW1lL09wdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6ZW5zdXJlT3B0aW9uc0Fy
ZUNvaGVyZW50KTogQWRkZWQuCisKIDIwMTUtMDUtMTQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgQ2hhbmdlIHRoZSBzdGF0dXMgb2YgRVM2IHRhZ2dl
ZCB0ZW1wbGF0ZXMgdG8gRG9uZSBpbiBmZWF0dXJlcy5qc29uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmlu
ZGV4IDEwNmUxMzMwOWQzNThiMjljNzg4YjEyZjY3OGNlYTk4YzI2ZGE5NzMuLmEwZWM3NzA5NzE1
NDUwMjNkNGIyNmVlNjUxOGZjNTBkMjczYzJiNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0x
NDg1LDYgKzE0ODUsNyBAQCB2b2lkIENvbW1hbmRMaW5lOjpwYXJzZUFyZ3VtZW50cyhpbnQgYXJn
YywgY2hhcioqIGFyZ3YpCiAKICAgICBpZiAobmVlZFRvRHVtcE9wdGlvbnMpCiAgICAgICAgIEpT
Qzo6T3B0aW9uczo6ZHVtcEFsbE9wdGlvbnMoSlNDOjpPcHRpb25zOjpEdW1wTGV2ZWw6OlZlcmJv
c2UsICJBbGwgSlNDIHJ1bnRpbWUgb3B0aW9uczoiLCBzdGRlcnIpOworICAgIEpTQzo6T3B0aW9u
czo6ZW5zdXJlT3B0aW9uc0FyZUNvaGVyZW50KCk7CiAgICAgaWYgKG5lZWRUb0V4aXQpCiAgICAg
ICAgIGpzY0V4aXQoRVhJVF9TVUNDRVNTKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5jcHAKaW5kZXggMjE4YTE0NDhkMWQ4MTI4YmZiN2FjOGMwOTJjMjEzYTIwY2I2
NTZlZC4uNGVkYjY3MTg4YTk5MjFmZDJlNmU0ZTM2MzcwYzBmZmFiZWNmYzY4MSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAgLTM3MCw2ICszNzAsOCBAQCB2
b2lkIE9wdGlvbnM6OmluaXRpYWxpemUoKQogICAgICAgICB9CiAgICAgICAgIGR1bXBBbGxPcHRp
b25zKGxldmVsLCB0aXRsZSk7CiAgICAgfQorCisgICAgZW5zdXJlT3B0aW9uc0FyZUNvaGVyZW50
KCk7CiB9CiAKIC8vIFBhcnNlcyBhIHNpbmdsZSBjb21tYW5kIGxpbmUgb3B0aW9uIGluIHRoZSBm
b3JtYXQgIjxvcHRpb25OYW1lPj08dmFsdWU+IgpAQCAtNDQwLDYgKzQ0MiwxNyBAQCB2b2lkIE9w
dGlvbnM6OmR1bXBPcHRpb24oRHVtcExldmVsIGxldmVsLCBPcHRpb25JRCBpZCwgRklMRSogc3Ry
ZWFtLCBjb25zdCBjaGFyKgogICAgIGZwcmludGYoc3RyZWFtLCAiJXMiLCBmb290ZXIpOwogfQog
Cit2b2lkIE9wdGlvbnM6OmVuc3VyZU9wdGlvbnNBcmVDb2hlcmVudCgpCit7CisgICAgYm9vbCBj
b2hlcmVudCA9IHRydWU7CisgICAgaWYgKCEodXNlTExJbnQoKSB8fCB1c2VKSVQoKSkpIHsKKyAg
ICAgICAgY29oZXJlbnQgPSBmYWxzZTsKKyAgICAgICAgZGF0YUxvZygiSU5DT0hFUkVOVCBPUFRJ
T05TOiBhdCBsZWFzdCBvbmUgb2YgdXNlTExJbnQgb3IgdXNlSklUIG11c3QgYmUgdHJ1ZVxuIik7
CisgICAgfQorICAgIGlmICghY29oZXJlbnQpCisgICAgICAgIENSQVNIKCk7Cit9CisKIHZvaWQg
T3B0aW9uOjpkdW1wKEZJTEUqIHN0cmVhbSkgY29uc3QKIHsKICAgICBzd2l0Y2ggKHR5cGUoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4IGI0ZWU3MDE1MDAz
OGZhZjQ1MGQ5Y2I3YjEzODAyODlkYzkyODBmM2YuLmZkMTY4MmNkMzQzMGEzZTJjMmM3ZWMwN2Ew
OWUyZGU1NTFkNTBmODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgK
QEAgLTM1MSw2ICszNTEsNyBAQCBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGlj
IGJvb2wgc2V0T3B0aW9uKGNvbnN0IGNoYXIqIGFyZyk7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
c3RhdGljIHZvaWQgZHVtcEFsbE9wdGlvbnMoRHVtcExldmVsLCBjb25zdCBjaGFyKiB0aXRsZSA9
IG51bGxwdHIsIEZJTEUqIHN0cmVhbSA9IHN0ZG91dCk7CiAgICAgc3RhdGljIHZvaWQgZHVtcE9w
dGlvbihEdW1wTGV2ZWwsIE9wdGlvbklELCBGSUxFKiBzdHJlYW0gPSBzdGRvdXQsIGNvbnN0IGNo
YXIqIGhlYWRlciA9ICIiLCBjb25zdCBjaGFyKiBmb290ZXIgPSAiIik7CisgICAgSlNfRVhQT1JU
X1BSSVZBVEUgc3RhdGljIHZvaWQgZW5zdXJlT3B0aW9uc0FyZUNvaGVyZW50KCk7CiAKICAgICAv
LyBEZWNsYXJlIGFjY2Vzc29ycyBmb3IgZWFjaCBvcHRpb246CiAjZGVmaW5lIEZPUl9FQUNIX09Q
VElPTih0eXBlXywgbmFtZV8sIGRlZmF1bHRWYWx1ZV8sIGRlc2NyaXB0aW9uXykgXAo=
</data>
<flag name="review"
          id="278005"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>