<?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>145600</bug_id>
          
          <creation_ts>2015-06-03 02:21:16 -0700</creation_ts>
          <short_desc>[Streams API] ReadableJSStream should handle JS source getters that throw</short_desc>
          <delta_ts>2015-06-09 00:45:48 -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>WebCore Misc.</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1099113</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-06-03 02:21:16 -0700</bug_when>
    <thetext>When getting pull, start, cancel JS functions, ReadableJSStream should be able to catch exceptions and go in error state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099469</commentid>
    <comment_count>1</comment_count>
      <attachid>254263</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-06-04 03:08:17 -0700</bug_when>
    <thetext>Created attachment 254263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100099</commentid>
    <comment_count>2</comment_count>
      <attachid>254263</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-06 09:50:47 -0700</bug_when>
    <thetext>Comment on attachment 254263
Patch

It seems kind of strange how this code moves exceptions into and out of the VM. It’s more normal to just leave the exceptions in the VM. For example, getPropertyFromObject, callFunction, and ReadableJSStream::invoke, but then ReadableJSStream::doStart moves an exception from a local variable into the VM.

The better pattern is normally to remove all these separate exception out arguments and use the exception slot in the VM consistently. Then the code in ReadableJSStream::doStart just says:

    if (hadException)
       return;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100101</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-06-06 10:13:33 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 254263 [details]
&gt; Patch
&gt; 
&gt; It seems kind of strange how this code moves exceptions into and out of the
&gt; VM. It’s more normal to just leave the exceptions in the VM. For example,
&gt; getPropertyFromObject, callFunction, and ReadableJSStream::invoke, but then
&gt; ReadableJSStream::doStart moves an exception from a local variable into the
&gt; VM.
&gt; 
&gt; The better pattern is normally to remove all these separate exception out
&gt; arguments and use the exception slot in the VM consistently. Then the code
&gt; in ReadableJSStream::doStart just says:
&gt; 
&gt;     if (hadException)
&gt;        return;

You are right for &quot;start&quot;.
But exceptions may be raised in the case of &quot;pull&quot; and &quot;cancel&quot; as well, where this is not practical.

For &quot;pull&quot; and &quot;cancel&quot;, we will put the stream in error state, reject related promises... 

We could have two code paths but a single one seems better as the way to invoke all 3 functions is the same, except for exception handling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100319</commentid>
    <comment_count>4</comment_count>
      <attachid>254479</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-06-08 01:29:04 -0700</bug_when>
    <thetext>Created attachment 254479
Always throwExxxception option, fixed case of undefined passsed to ReadableStream constructor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100320</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-06-08 01:32:00 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 254263 [details]
&gt; Patch
&gt; 
&gt; It seems kind of strange how this code moves exceptions into and out of the
&gt; VM. It’s more normal to just leave the exceptions in the VM. For example,
&gt; getPropertyFromObject, callFunction, and ReadableJSStream::invoke, but then
&gt; ReadableJSStream::doStart moves an exception from a local variable into the
&gt; VM.
&gt; 
&gt; The better pattern is normally to remove all these separate exception out
&gt; arguments and use the exception slot in the VM consistently. Then the code
&gt; in ReadableJSStream::doStart just says:
&gt; 
&gt;     if (hadException)
&gt;        return;

Latest patch follows this pattern.
This is clearly nicer for &quot;start&quot;.

We can check when integrating &quot;pull&quot;, &quot;cancel&quot; and &quot;size&quot; whether to accommodate the code or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100351</commentid>
    <comment_count>6</comment_count>
      <attachid>254479</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-08 06:43:14 -0700</bug_when>
    <thetext>Comment on attachment 254479
Always throwExxxception option, fixed case of undefined passsed to ReadableStream constructor

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

&gt; Source/WebCore/bindings/js/JSReadableStreamCustom.cpp:84
&gt; +        return JSValue::encode(exec-&gt;exception());

When there’s an exception, the return value is normally ignored. So instead of returning the exception as a JSValue, it’s typical to return jsUndefined() instead. As this patch does below. Why return the exception here?

&gt; Source/WebCore/bindings/js/ReadableJSStream.cpp:109
&gt; +    if (exec.argumentCount() &amp;&amp; !exec.argument(0).isUndefined()) {
&gt; +        JSValue value = exec.argument(0);

Best way to write this is:

    JSValue value = exec.argument(0);
    if (!value.isUndefined()) {

There is no reason to check argumentCount if we are also checking if argument 0 is undefined, and there is no good reason to call argument(0) twice.

&gt; Source/WebCore/bindings/js/ReadableJSStream.cpp:116
&gt; +        jsSource =  JSFinalObject::create(exec.vm(), JSFinalObject::createStructure(exec.vm(), exec.callee()-&gt;globalObject(), jsNull(), 1));

Stray space here after the &quot;=&quot; sign.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100360</commentid>
    <comment_count>7</comment_count>
      <attachid>254479</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-06-08 07:38:07 -0700</bug_when>
    <thetext>Comment on attachment 254479
Always throwExxxception option, fixed case of undefined passsed to ReadableStream constructor

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

&gt;&gt; Source/WebCore/bindings/js/JSReadableStreamCustom.cpp:84
&gt;&gt; +        return JSValue::encode(exec-&gt;exception());
&gt; 
&gt; When there’s an exception, the return value is normally ignored. So instead of returning the exception as a JSValue, it’s typical to return jsUndefined() instead. As this patch does below. Why return the exception here?

OK.
It was based on all the &quot;return throwVMError(...)&quot; that can be seen in various parts of Source/WebCore/bindings/js.

&gt;&gt; Source/WebCore/bindings/js/ReadableJSStream.cpp:109
&gt;&gt; +        JSValue value = exec.argument(0);
&gt; 
&gt; Best way to write this is:
&gt; 
&gt;     JSValue value = exec.argument(0);
&gt;     if (!value.isUndefined()) {
&gt; 
&gt; There is no reason to check argumentCount if we are also checking if argument 0 is undefined, and there is no good reason to call argument(0) twice.

OK

&gt;&gt; Source/WebCore/bindings/js/ReadableJSStream.cpp:116
&gt;&gt; +        jsSource =  JSFinalObject::create(exec.vm(), JSFinalObject::createStructure(exec.vm(), exec.callee()-&gt;globalObject(), jsNull(), 1));
&gt; 
&gt; Stray space here after the &quot;=&quot; sign.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100361</commentid>
    <comment_count>8</comment_count>
      <attachid>254492</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-06-08 07:39:07 -0700</bug_when>
    <thetext>Created attachment 254492
Fixing according review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100481</commentid>
    <comment_count>9</comment_count>
      <attachid>254492</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-08 15:44:06 -0700</bug_when>
    <thetext>Comment on attachment 254492
Fixing according review

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

&gt; Source/WebCore/bindings/js/ReadableJSStream.cpp:116
&gt; +    if (!value.isUndefined()) {
&gt; +        if (!value.isObject()) {
&gt; +            throwVMError(&amp;exec, createTypeError(&amp;exec, ASCIILiteral(&quot;ReadableStream constructor first argument, if any, should be an object&quot;)));
&gt; +            return nullptr;
&gt; +        }
&gt; +        jsSource = value.getObject();
&gt; +    } else
&gt; +        jsSource = JSFinalObject::create(exec.vm(), JSFinalObject::createStructure(exec.vm(), exec.callee()-&gt;globalObject(), jsNull(), 1));

I would write this to make the logic clearer and avoid the nesting:

    JSValue value = exec.argument(0);
    if (value.isObject())
        jsSource = value.getObject();
    else if (value.isUndefined())
        jsSource = JSFinalObject::create(exec.vm(), JSFinalObject::createStructure(exec.vm(), exec.callee()-&gt;globalObject(), jsNull(), 1));
    else {
        throwVMError(&amp;exec, createTypeError(&amp;exec, ASCIILiteral(&quot;ReadableStream constructor first argument, if any, should be an object&quot;)));
        return nullptr;
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100586</commentid>
    <comment_count>10</comment_count>
      <attachid>254552</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2015-06-08 23:49:14 -0700</bug_when>
    <thetext>Created attachment 254552
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100592</commentid>
    <comment_count>11</comment_count>
      <attachid>254552</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-09 00:45:44 -0700</bug_when>
    <thetext>Comment on attachment 254552
Patch for landing

Clearing flags on attachment: 254552

Committed r185356: &lt;http://trac.webkit.org/changeset/185356&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100594</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-09 00:45:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254263</attachid>
            <date>2015-06-04 03:08:17 -0700</date>
            <delta_ts>2015-06-08 01:28:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145600-20150604120755.patch</filename>
            <type>text/plain</type>
            <size>6516</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzlmMzEwNjhmODA1MWZl
N2IyMDNlMDU3NDkyNDgyNzQ5NjI0MGMwYi4uYWJkMzViMDBiM2I4Nzk0ODc3NzFjMGY4ZWViYjkw
N2JlNTIxODVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA2LTA0ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFi
bGV0IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEld
IFJlYWRhYmxlSlNTdHJlYW0gc2hvdWxkIGhhbmRsZSBKUyBzb3VyY2UgZ2V0dGVycyB0aGF0IHRo
cm93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU2
MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGVj
a2luZyB0aGF0IHRoZXJlIGlzIG5vIGV4Y2VwdGlvbiB3aGVuIHRyeWluZyB0byBhY2Nlc3MgdG8g
YSBzb3VyY2UgbWV0aG9kLgorICAgICAgICBSZWZhY3RvcmluZyBvZiBjb2RlIHRvIHByZXBhcmUg
cHVsbGluZyBhbmQgY2FuY2VsbGluZy4KKworICAgICAgICBDb3ZlcmVkIGJ5IHJlYmFzZWQgdGVz
dCBleHBlY3RhdGlvbi4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVKU1N0cmVhbTo6aW52b2tlKTogQWRkZWQg
bWV0aG9kIHRvIGJlIHVzZWQgYWxzbyBmb3IgcHVsbGluZyBhbmQgY2FuY2VsbGluZy4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlYWRhYmxlSlNTdHJlYW06OmRvU3RhcnQpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uaDoKKwogMjAxNS0wNi0wNSAgWGFiaWVyIFJvZHJpZ3Vl
eiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPiBhbmQgWW91ZW5uIEZhYmxldCA8eW91ZW5u
LmZhYmxldEBjcmYuY2Fub24uZnI+CiAKICAgICAgICAgW1N0cmVhbXMgQVBJXSBSZWFkYWJsZVN0
cmVhbSBzaG91bGQgc3RvcmUgY2FsbGJhY2tzIGFzIGEgRGVxdWUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5jcHAKaW5kZXggMWE1NWE1YjY4ZmU4MWUy
ODVjZWU1MmViZTRjZjFkZTFjOTI5OGNlZi4uMTViZmMwMDFiNmYyZTAzNTRmZjk1YmNkYTY1N2Vk
ODMwMWI1ZmFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFi
bGVKU1N0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVK
U1N0cmVhbS5jcHAKQEAgLTQ3LDE2ICs0NywzNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBnZXRQcm9wZXJ0eUZy
b21PYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb2JqZWN0LCBjb25zdCBjaGFyKiBp
ZGVudGlmaWVyKQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGdldFByb3BlcnR5RnJvbU9iamVjdChF
eGVjU3RhdGUmIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QsIGNvbnN0IGNoYXIqIGlkZW50aWZpZXIs
IEpTVmFsdWUmIGV4Y2VwdGlvbikKIHsKLSAgICByZXR1cm4gb2JqZWN0LT5nZXQoZXhlYywgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCBpZGVudGlmaWVyKSk7CisgICAgQVNTRVJUKCFleGVj
LmhhZEV4Y2VwdGlvbigpKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gb2JqZWN0LT5nZXQoJmV4ZWMs
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJmV4ZWMsIGlkZW50aWZpZXIpKTsKKyAgICBpZiAoZXhl
Yy5oYWRFeGNlcHRpb24oKSkgeworICAgICAgICBleGNlcHRpb24gPSBleGVjLmV4Y2VwdGlvbigp
OworICAgICAgICBleGVjLmNsZWFyRXhjZXB0aW9uKCk7CisgICAgfQorICAgIHJldHVybiB2YWx1
ZTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGNhbGxGdW5jdGlvbihFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUganNGdW5jdGlvbiwgSlNWYWx1ZSB0aGlzVmFsdWUsIGNvbnN0IEFyZ0xpc3Qm
IGFyZ3VtZW50cywgSlNWYWx1ZSogZXhjZXB0aW9uKQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGNh
bGxGdW5jdGlvbihFeGVjU3RhdGUmIGV4ZWMsIEpTVmFsdWUganNGdW5jdGlvbiwgSlNWYWx1ZSB0
aGlzVmFsdWUsIGNvbnN0IEFyZ0xpc3QmIGFyZ3VtZW50cywgSlNWYWx1ZSYgZXhjZXB0aW9uKQog
ewogICAgIENhbGxEYXRhIGNhbGxEYXRhOwogICAgIENhbGxUeXBlIGNhbGxUeXBlID0gZ2V0Q2Fs
bERhdGEoanNGdW5jdGlvbiwgY2FsbERhdGEpOwotICAgIHJldHVybiBjYWxsKGV4ZWMsIGpzRnVu
Y3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwgdGhpc1ZhbHVlLCBhcmd1bWVudHMsIGV4Y2VwdGlv
bik7CisgICAgcmV0dXJuIGNhbGwoJmV4ZWMsIGpzRnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0
YSwgdGhpc1ZhbHVlLCBhcmd1bWVudHMsICZleGNlcHRpb24pOworfQorCitKU1ZhbHVlIFJlYWRh
YmxlSlNTdHJlYW06Omludm9rZShFeGVjU3RhdGUmIGV4ZWMsIGNvbnN0IGNoYXIqIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSYgZXhjZXB0aW9uKQoreworICAgIEpTVmFsdWUgZnVuY3Rpb24gPSBnZXRQ
cm9wZXJ0eUZyb21PYmplY3QoZXhlYywgbV9zb3VyY2UuZ2V0KCksIHByb3BlcnR5TmFtZSwgZXhj
ZXB0aW9uKTsKKyAgICBpZiAoIWZ1bmN0aW9uLmlzRnVuY3Rpb24oKSkgeworICAgICAgICBpZiAo
IWV4Y2VwdGlvbiAmJiAhZnVuY3Rpb24uaXNVbmRlZmluZWQoKSkKKyAgICAgICAgICAgIGV4Y2Vw
dGlvbiA9IGNyZWF0ZVR5cGVFcnJvcigmZXhlYywgQVNDSUlMaXRlcmFsKCJSZWFkYWJsZVN0cmVh
bSB0cnlpbmcgdG8gY2FsbCBhIHByb3BlcnR5IHRoYXQgaXMgbm90IGNhbGxhYmxlIikpOworICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisKKyAgICBNYXJrZWRBcmd1bWVudEJ1
ZmZlciBhcmd1bWVudHM7CisgICAgYXJndW1lbnRzLmFwcGVuZChqc0NvbnRyb2xsZXIoZXhlYywg
Z2xvYmFsT2JqZWN0KCkpKTsKKworICAgIHJldHVybiBjYWxsRnVuY3Rpb24oZXhlYywgZnVuY3Rp
b24sIG1fc291cmNlLmdldCgpLCBhcmd1bWVudHMsIGV4Y2VwdGlvbik7CiB9CiAKIEpTRE9NR2xv
YmFsT2JqZWN0KiBSZWFkYWJsZUpTU3RyZWFtOjpnbG9iYWxPYmplY3QoKQpAQCAtNzYsMjAgKzk3
LDggQEAgdm9pZCBSZWFkYWJsZUpTU3RyZWFtOjpkb1N0YXJ0KEV4ZWNTdGF0ZSYgZXhlYykKIHsK
ICAgICBKU0xvY2tIb2xkZXIgbG9jaygmZXhlYyk7CiAKLSAgICBKU1ZhbHVlIHN0YXJ0RnVuY3Rp
b24gPSBnZXRQcm9wZXJ0eUZyb21PYmplY3QoJmV4ZWMsIG1fc291cmNlLmdldCgpLCAic3RhcnQi
KTsKLSAgICBpZiAoIXN0YXJ0RnVuY3Rpb24uaXNGdW5jdGlvbigpKSB7Ci0gICAgICAgIGlmICgh
c3RhcnRGdW5jdGlvbi5pc1VuZGVmaW5lZCgpKQotICAgICAgICAgICAgdGhyb3dWTUVycm9yKCZl
eGVjLCBjcmVhdGVUeXBlRXJyb3IoJmV4ZWMsIEFTQ0lJTGl0ZXJhbCgiUmVhZGFibGVTdHJlYW0g
Y29uc3RydWN0b3Igb2JqZWN0IHN0YXJ0IHByb3BlcnR5IHNob3VsZCBiZSBhIGZ1bmN0aW9uLiIp
KSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHN0YXJ0UmVhZGFibGVTdHJlYW1Bc3luYygq
dGhpcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBNYXJrZWRBcmd1bWVudEJ1ZmZl
ciBhcmd1bWVudHM7Ci0gICAgYXJndW1lbnRzLmFwcGVuZChqc0NvbnRyb2xsZXIoZXhlYywgZ2xv
YmFsT2JqZWN0KCkpKTsKLQogICAgIEpTVmFsdWUgZXhjZXB0aW9uOwotICAgIGNhbGxGdW5jdGlv
bigmZXhlYywgc3RhcnRGdW5jdGlvbiwgbV9zb3VyY2UuZ2V0KCksIGFyZ3VtZW50cywgJmV4Y2Vw
dGlvbik7CisgICAgaW52b2tlKGV4ZWMsICJzdGFydCIsIGV4Y2VwdGlvbik7CiAKICAgICBpZiAo
ZXhjZXB0aW9uKSB7CiAgICAgICAgIHRocm93Vk1FcnJvcigmZXhlYywgZXhjZXB0aW9uKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uaAppbmRleCA2N2Rj
MGMwMDIxNTNiZTA0NzMyMzVmYzEyMDc1MGE4ZjdkNWZmYWEyLi4yNjc4M2I0MDNhNjQxZjhkODU5
ZjgxZTEzNmRjNjMxMDg2ZTVhZjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9SZWFkYWJsZUpTU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
UmVhZGFibGVKU1N0cmVhbS5oCkBAIC02MSw2ICs2MSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IGRvU3RhcnQoSlNDOjpFeGVjU3RhdGUmKTsKIAorICAgIEpTQzo6SlNWYWx1ZSBpbnZva2UoSlND
OjpFeGVjU3RhdGUmLCBjb25zdCBjaGFyKiwgSlNDOjpKU1ZhbHVlJik7CisKICAgICB2aXJ0dWFs
IGJvb2wgaGFzVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEpTQzo6SlNWYWx1
ZSByZWFkKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ZTI3YmY5YzUzODI5NTdlMzhkMGM2NzU1NDgy
ZjRlMGZhMjRlYzIyLi5lMzA3NTVmOTM2MjQwNDA5YTNkMGNiMGVlYmRmMTBiZGI4ZjM3YTUzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTUtMDYtMDUgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFy
ICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4gYW5kIFlvdWVubiBGYWJsZXQgPHlvdWVubi5mYWJsZXRA
Y3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gUmVhZGFibGVKU1N0cmVhbSBz
aG91bGQgaGFuZGxlIEpTIHNvdXJjZSBnZXR0ZXJzIHRoYXQgdGhyb3cKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTYwMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZWFtcy9yZWZlcmVuY2UtaW1w
bGVtZW50YXRpb24vYmFkLXVuZGVybHlpbmctc291cmNlcy1leHBlY3RlZC50eHQ6CisKIDIwMTUt
MDYtMDQgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4gYW5k
IFlvdWVubiBGYWJsZXQgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgogCiAgICAgICAgIFtT
dHJlYW1zIEFQSV0gSW1wbGVtZW50IFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlciBlbnF1ZXVlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9i
YWQtdW5kZXJseWluZy1zb3VyY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0cmVhbXMv
cmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JhZC11bmRlcmx5aW5nLXNvdXJjZXMtZXhwZWN0ZWQu
dHh0CmluZGV4IGY3MzdkNWJiY2MzZjhmZWI3M2VhZDE2MDIzNDg3ZTc4MWU1M2VhMTIuLmM3MzNj
Mzg3OTQwYjMyNmYzMDQ2YTdiOGE4YWZlMGIyYWU3MjM2NjggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JhZC11bmRlcmx5aW5nLXNvdXJj
ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxl
bWVudGF0aW9uL2JhZC11bmRlcmx5aW5nLXNvdXJjZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEs
NSBAQAogCi1GQUlMIFVuZGVybHlpbmcgc291cmNlIHN0YXJ0OiB0aHJvd2luZyBnZXR0ZXIgYXNz
ZXJ0X3Rocm93czogY29uc3RydWN0aW5nIHRoZSBzdHJlYW0gc2hvdWxkIHJlLXRocm93IHRoZSBl
cnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgICAgICBuZXcgUmVhZGFibGVTdHJlYW0o
ewotICAgICAgICAgICAgZ2UuLi4iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBSZWFkYWJsZVN0
cmVhbSBjb25zdHJ1Y3RvciBvYmplY3Qgc3RhcnQgcHJvcGVyLi4uIiAoIlR5cGVFcnJvciIpIGV4
cGVjdGVkIG9iamVjdCAiRXJyb3I6IGEgdW5pcXVlIHN0cmluZyIgKCJFcnJvciIpCitQQVNTIFVu
ZGVybHlpbmcgc291cmNlIHN0YXJ0OiB0aHJvd2luZyBnZXR0ZXIgCiBQQVNTIFVuZGVybHlpbmcg
c291cmNlIHN0YXJ0OiB0aHJvd2luZyBtZXRob2QgCiBUSU1FT1VUIFVuZGVybHlpbmcgc291cmNl
OiB0aHJvd2luZyBwdWxsIGdldHRlciAoaW5pdGlhbCBwdWxsKSBUZXN0IHRpbWVkIG91dAogVElN
RU9VVCBVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcgcHVsbCBtZXRob2QgKGluaXRpYWwgcHVs
bCkgVGVzdCB0aW1lZCBvdXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254479</attachid>
            <date>2015-06-08 01:29:04 -0700</date>
            <delta_ts>2015-06-08 07:39:01 -0700</delta_ts>
            <desc>Always throwExxxception option, fixed case of undefined passsed to ReadableStream constructor</desc>
            <filename>bug-145600-20150608102838.patch</filename>
            <type>text/plain</type>
            <size>11333</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA0M2ZiYThlNTBiMWFl
NGE5OTdiN2Y4NzdiNGJlMjNhZDQ5NDdiZC4uMmQ1ODE2OTdlZmZmMzM0MGMwY2I5YzBiODI4MmQw
Mjc3NmQyN2FkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTA2LTA4ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFi
bGV0IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEld
IFJlYWRhYmxlSlNTdHJlYW0gc2hvdWxkIGhhbmRsZSBKUyBzb3VyY2UgZ2V0dGVycyB0aGF0IHRo
cm93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU2
MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGVj
a2luZyB3aGV0aGVyIHRoZXJlIGlzIGFuIGV4Y2VwdGlvbiB3aGVuIHRyeWluZyB0byBhY2Nlc3Mg
dG8gYSBzb3VyY2UgbWV0aG9kLgorICAgICAgICBJZiBzbywgcmV0aHJvd2luZyBpdCBpbiBjYXNl
IG9mICJzdGFydCIuCisKKyAgICAgICAgUmVmYWN0b3Jpbmcgb2YgY29kZSB0byBwcmVwYXJlIHB1
bGxpbmcsIGNhbmNlbGxpbmcgYW5kIGFkZGl0aW9uYWwgcGFyYW1ldGVyIGhhbmRsaW5nIGluIFJl
YWRhYmxlU3RyZWFtIGNvbnN0cnV0b3IuCisKKyAgICAgICAgRml4ZWQgdGhlIGNhc2Ugb2YgUmVh
ZGFibGVTdHJlYW0gY29uc3RydWN0b3IgY2FsbGVkIHdpdGggYW4gdW5kZWZpbmVkIHBhcmFtZXRl
ci4KKworICAgICAgICBDb3ZlcmVkIGJ5IHJlYmFzZWQgdGVzdCBleHBlY3RhdGlvbi4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29uc3RydWN0SlNSZWFkYWJsZVN0cmVhbSk6IFJlZmFjdG9yaW5nIHRvIGdyb3Vw
IGFsbCBwYXJhbWV0ZXIgY2hlY2sgYW5kIGV4Y2VwdGlvbiBoYW5kbGluZyBpbiBSZWFkYWJsZUpT
U3RyZWFtOjpjcmVhdGUuCisgICAgICAgICogYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRQcm9wZXJ0eUZyb21PYmplY3QpOgorICAgICAgICAo
V2ViQ29yZTo6Y2FsbEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlSlNTdHJl
YW06Omludm9rZSk6IEFkZGVkIG1ldGhvZCB0byBiZSB1c2VkIGFsc28gZm9yIHB1bGxpbmcgYW5k
IGNhbmNlbGxpbmcuCisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpkb1N0YXJ0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlSlNTdHJlYW06OmNyZWF0ZSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5oOgorCiAyMDE1LTA2LTA3ICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTgxNzIwKTog
VW5uZWNlc3NhcnkgbGF5b3V0IHRyaWdnZXJlZCBhbnkgdGltZSBhbmltYXRlZCBHSUYgYWR2YW5j
ZXMgdG8gYSBuZXcgZnJhbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNSZWFkYWJsZVN0cmVhbUN1c3RvbS5jcHAKaW5kZXggODI1N2YwYTY4MGJlNDQ1NWIxZGRkZjA2
ODJkOTc5NzEzZDBkNTBhZS4uNDZiNGI0ZjA0YThlMTU1YjJkZGM5NDBmODQwODk1NGYwZWY5NWJk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVh
bUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0
cmVhbUN1c3RvbS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVh
bS5oIgogI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtUmVhZGVyLmgiCiAjaW5jbHVkZSA8cnVudGlt
ZS9FcnJvci5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvRXhjZXB0aW9uLmg+CiAjaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkBAIC03MywxMyArNzQs
MTUgQEAgSlNWYWx1ZSBKU1JlYWRhYmxlU3RyZWFtOjpwaXBlVGhyb3VnaChFeGVjU3RhdGUqIGV4
ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNSZWFkYWJsZVN0
cmVhbShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAm
JiAhZXhlYy0+YXJndW1lbnQoMCkuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1F
cnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJSZWFkYWJsZVN0
cmVhbSBjb25zdHJ1Y3RvciBzaG91bGQgZ2V0IGFuIG9iamVjdCBhcyBhcmd1bWVudC4iKSkpOwot
CiAgICAgRE9NQ29uc3RydWN0b3JPYmplY3QqIGpzQ29uc3RydWN0b3IgPSBqc0Nhc3Q8RE9NQ29u
c3RydWN0b3JPYmplY3QqPihleGVjLT5jYWxsZWUoKSk7CiAgICAgQVNTRVJUKGpzQ29uc3RydWN0
b3IpOwogCi0gICAgUmVmPFJlYWRhYmxlSlNTdHJlYW0+IHJlYWRhYmxlU3RyZWFtID0gUmVhZGFi
bGVKU1N0cmVhbTo6Y3JlYXRlKCpleGVjLCAqanNDb25zdHJ1Y3Rvci0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKKyAgICBSZWZQdHI8UmVhZGFibGVKU1N0cmVhbT4gcmVhZGFibGVTdHJlYW0g
PSBSZWFkYWJsZUpTU3RyZWFtOjpjcmVhdGUoKmV4ZWMsICpqc0NvbnN0cnVjdG9yLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpOworCisgICAgaWYgKCFyZWFkYWJsZVN0cmVhbSkgeworICAgICAg
ICBBU1NFUlQoZXhlYy0+aGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGV4ZWMtPmV4Y2VwdGlvbigpKTsKKyAgICB9CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZSh0b0pTKGV4ZWMsIGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmNhbGxlZSgp
LT5nbG9iYWxPYmplY3QoKSksIFdURjo6bW92ZShyZWFkYWJsZVN0cmVhbSkpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmNwcAppbmRleCA3
N2IyYWZhMTY5YTRiZjhlNGY1YTVhYzBjMzlmMDE1MTgyMGNmZGQ3Li5mYzg2NGY5YmFhMTNlZThh
MjdiODAwNmU0MDM3OGNkZDhmNDQ4OGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9SZWFkYWJsZUpTU3RyZWFtLmNwcApAQCAtNDcsMTYgKzQ3LDMzIEBAIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGlubGluZSBKU1ZhbHVl
IGdldFByb3BlcnR5RnJvbU9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3Qs
IGNvbnN0IGNoYXIqIGlkZW50aWZpZXIpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUgZ2V0UHJvcGVy
dHlGcm9tT2JqZWN0KEV4ZWNTdGF0ZSYgZXhlYywgSlNPYmplY3QqIG9iamVjdCwgY29uc3QgY2hh
ciogaWRlbnRpZmllcikKIHsKLSAgICByZXR1cm4gb2JqZWN0LT5nZXQoZXhlYywgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyhleGVjLCBpZGVudGlmaWVyKSk7CisgICAgcmV0dXJuIG9iamVjdC0+Z2V0
KCZleGVjLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZleGVjLCBpZGVudGlmaWVyKSk7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBjYWxsRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIGpzRnVuY3Rpb24sIEpTVmFsdWUgdGhpc1ZhbHVlLCBjb25zdCBBcmdMaXN0JiBhcmd1bWVu
dHMsIEV4Y2VwdGlvbiomIGV4Y2VwdGlvbikKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBjYWxsRnVu
Y3Rpb24oRXhlY1N0YXRlJiBleGVjLCBKU1ZhbHVlIGpzRnVuY3Rpb24sIEpTVmFsdWUgdGhpc1Zh
bHVlLCBjb25zdCBBcmdMaXN0JiBhcmd1bWVudHMpCiB7CiAgICAgQ2FsbERhdGEgY2FsbERhdGE7
CiAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShqc0Z1bmN0aW9uLCBjYWxsRGF0
YSk7Ci0gICAgcmV0dXJuIGNhbGwoZXhlYywganNGdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRh
LCB0aGlzVmFsdWUsIGFyZ3VtZW50cywgZXhjZXB0aW9uKTsKKyAgICByZXR1cm4gY2FsbCgmZXhl
YywganNGdW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCB0aGlzVmFsdWUsIGFyZ3VtZW50cyk7
Cit9CisKK0pTVmFsdWUgUmVhZGFibGVKU1N0cmVhbTo6aW52b2tlKEV4ZWNTdGF0ZSYgZXhlYywg
Y29uc3QgY2hhciogcHJvcGVydHlOYW1lKQoreworICAgIEpTVmFsdWUgZnVuY3Rpb24gPSBnZXRQ
cm9wZXJ0eUZyb21PYmplY3QoZXhlYywgbV9zb3VyY2UuZ2V0KCksIHByb3BlcnR5TmFtZSk7Cisg
ICAgaWYgKGV4ZWMuaGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OworCisgICAgaWYgKCFmdW5jdGlvbi5pc0Z1bmN0aW9uKCkpIHsKKyAgICAgICAgaWYgKCFmdW5j
dGlvbi5pc1VuZGVmaW5lZCgpKQorICAgICAgICAgICAgdGhyb3dWTUVycm9yKCZleGVjLCBjcmVh
dGVUeXBlRXJyb3IoJmV4ZWMsIEFTQ0lJTGl0ZXJhbCgiUmVhZGFibGVTdHJlYW0gdHJ5aW5nIHRv
IGNhbGwgYSBwcm9wZXJ0eSB0aGF0IGlzIG5vdCBjYWxsYWJsZSIpKSk7CisgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3Vt
ZW50czsKKyAgICBhcmd1bWVudHMuYXBwZW5kKGpzQ29udHJvbGxlcihleGVjLCBnbG9iYWxPYmpl
Y3QoKSkpOworICAgIHJldHVybiBjYWxsRnVuY3Rpb24oZXhlYywgZnVuY3Rpb24sIG1fc291cmNl
LmdldCgpLCBhcmd1bWVudHMpOwogfQogCiBKU0RPTUdsb2JhbE9iamVjdCogUmVhZGFibGVKU1N0
cmVhbTo6Z2xvYmFsT2JqZWN0KCkKQEAgLTc2LDM3ICs5MywzNCBAQCB2b2lkIFJlYWRhYmxlSlNT
dHJlYW06OmRvU3RhcnQoRXhlY1N0YXRlJiBleGVjKQogewogICAgIEpTTG9ja0hvbGRlciBsb2Nr
KCZleGVjKTsKIAotICAgIEpTVmFsdWUgc3RhcnRGdW5jdGlvbiA9IGdldFByb3BlcnR5RnJvbU9i
amVjdCgmZXhlYywgbV9zb3VyY2UuZ2V0KCksICJzdGFydCIpOwotICAgIGlmICghc3RhcnRGdW5j
dGlvbi5pc0Z1bmN0aW9uKCkpIHsKLSAgICAgICAgaWYgKCFzdGFydEZ1bmN0aW9uLmlzVW5kZWZp
bmVkKCkpCi0gICAgICAgICAgICB0aHJvd1ZNRXJyb3IoJmV4ZWMsIGNyZWF0ZVR5cGVFcnJvcigm
ZXhlYywgQVNDSUlMaXRlcmFsKCJSZWFkYWJsZVN0cmVhbSBjb25zdHJ1Y3RvciBvYmplY3Qgc3Rh
cnQgcHJvcGVydHkgc2hvdWxkIGJlIGEgZnVuY3Rpb24uIikpKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgc3RhcnRSZWFkYWJsZVN0cmVhbUFzeW5jKCp0aGlzKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KKyAgICBpbnZva2UoZXhlYywgInN0YXJ0Iik7CiAKLSAgICBNYXJrZWRBcmd1bWVu
dEJ1ZmZlciBhcmd1bWVudHM7Ci0gICAgYXJndW1lbnRzLmFwcGVuZChqc0NvbnRyb2xsZXIoZXhl
YywgZ2xvYmFsT2JqZWN0KCkpKTsKLQotICAgIEV4Y2VwdGlvbiogZXhjZXB0aW9uOwotICAgIGNh
bGxGdW5jdGlvbigmZXhlYywgc3RhcnRGdW5jdGlvbiwgbV9zb3VyY2UuZ2V0KCksIGFyZ3VtZW50
cywgZXhjZXB0aW9uKTsKLQotICAgIGlmIChleGNlcHRpb24pIHsKLSAgICAgICAgdGhyb3dWTUVy
cm9yKCZleGVjLCBleGNlcHRpb24pOworICAgIGlmIChleGVjLmhhZEV4Y2VwdGlvbigpKQogICAg
ICAgICByZXR1cm47Ci0gICAgfQogCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBoYW5kbGluZyBw
cm9taXNlIGFzIHJlc3VsdCBvZiBjYWxsaW5nIHN0YXJ0IGZ1bmN0aW9uLgogICAgIHN0YXJ0UmVh
ZGFibGVTdHJlYW1Bc3luYygqdGhpcyk7CiB9CiAKLVJlZjxSZWFkYWJsZUpTU3RyZWFtPiBSZWFk
YWJsZUpTU3RyZWFtOjpjcmVhdGUoRXhlY1N0YXRlJiBleGVjLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQorUmVmUHRyPFJlYWRhYmxlSlNTdHJlYW0+IFJl
YWRhYmxlSlNTdHJlYW06OmNyZWF0ZShFeGVjU3RhdGUmIGV4ZWMsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCiB7Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FH
RSghZXhlYy5hcmd1bWVudENvdW50KCkgfHwgZXhlYy5hcmd1bWVudCgwKS5pc09iamVjdCgpLCAi
Q2FsbGVyIG9mIFJlYWRhYmxlSlNTdHJlYW0gY29uc3RydWN0b3Igc2hvdWxkIGVuc3VyZSB0aGF0
IHBhc3NlZCBhcmd1bWVudCBpZiBhbnkgaXMgYW4gb2JqZWN0LiIpOwotICAgIEpTT2JqZWN0KiBz
b3VyY2UgPSAgZXhlYy5hcmd1bWVudENvdW50KCkgPyBleGVjLmFyZ3VtZW50KDApLmdldE9iamVj
dCgpIDogSlNGaW5hbE9iamVjdDo6Y3JlYXRlKGV4ZWMudm0oKSwgSlNGaW5hbE9iamVjdDo6Y3Jl
YXRlU3RydWN0dXJlKGV4ZWMudm0oKSwgZXhlYy5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCksIGpz
TnVsbCgpLCAxKSk7Ci0KLSAgICBSZWY8UmVhZGFibGVKU1N0cmVhbT4gcmVhZGFibGVTdHJlYW0g
PSBhZG9wdFJlZigqbmV3IFJlYWRhYmxlSlNTdHJlYW0oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwg
ZXhlYywgc291cmNlKSk7CisgICAgSlNPYmplY3QqIGpzU291cmNlOworICAgIGlmIChleGVjLmFy
Z3VtZW50Q291bnQoKSAmJiAhZXhlYy5hcmd1bWVudCgwKS5pc1VuZGVmaW5lZCgpKSB7CisgICAg
ICAgIEpTVmFsdWUgdmFsdWUgPSBleGVjLmFyZ3VtZW50KDApOworICAgICAgICBpZiAoIXZhbHVl
LmlzT2JqZWN0KCkpIHsKKyAgICAgICAgICAgIHRocm93Vk1FcnJvcigmZXhlYywgY3JlYXRlVHlw
ZUVycm9yKCZleGVjLCBBU0NJSUxpdGVyYWwoIlJlYWRhYmxlU3RyZWFtIGNvbnN0cnVjdG9yIGZp
cnN0IGFyZ3VtZW50LCBpZiBhbnksIHNob3VsZCBiZSBhbiBvYmplY3QiKSkpOworICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICAgICAganNTb3VyY2UgPSB2YWx1ZS5n
ZXRPYmplY3QoKTsKKyAgICB9IGVsc2UKKyAgICAgICAganNTb3VyY2UgPSAgSlNGaW5hbE9iamVj
dDo6Y3JlYXRlKGV4ZWMudm0oKSwgSlNGaW5hbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMu
dm0oKSwgZXhlYy5jYWxsZWUoKS0+Z2xvYmFsT2JqZWN0KCksIGpzTnVsbCgpLCAxKSk7CisKKyAg
ICBSZWZQdHI8UmVhZGFibGVKU1N0cmVhbT4gcmVhZGFibGVTdHJlYW0gPSBhZG9wdFJlZigqbmV3
IFJlYWRhYmxlSlNTdHJlYW0oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgZXhlYywganNTb3VyY2Up
KTsKICAgICByZWFkYWJsZVN0cmVhbS0+ZG9TdGFydChleGVjKTsKKworICAgIGlmIChleGVjLmhh
ZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwogICAgIHJldHVybiByZWFk
YWJsZVN0cmVhbTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
UmVhZGFibGVKU1N0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVK
U1N0cmVhbS5oCmluZGV4IDY3ZGMwYzAwMjE1M2JlMDQ3MzIzNWZjMTIwNzUwYThmN2Q1ZmZhYTIu
LmM0ZWI0N2YyYmZmNTIxMjBlZjA3NGFiNzRlM2U5OTIxZGM4Y2RjYmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmgKQEAgLTQ3LDcgKzQ3LDcgQEAg
Y2xhc3MgUmVhZGFibGVTdHJlYW1Db250cm9sbGVyOwogCiBjbGFzcyBSZWFkYWJsZUpTU3RyZWFt
OiBwdWJsaWMgUmVhZGFibGVTdHJlYW0gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8UmVhZGFi
bGVKU1N0cmVhbT4gY3JlYXRlKEpTQzo6RXhlY1N0YXRlJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYpOworICAgIHN0YXRpYyBSZWZQdHI8UmVhZGFibGVKU1N0cmVhbT4gY3JlYXRlKEpTQzo6RXhl
Y1N0YXRlJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCiAgICAgSlNDOjpKU1ZhbHVlIGpz
Q29udHJvbGxlcihKU0M6OkV4ZWNTdGF0ZSYsIEpTRE9NR2xvYmFsT2JqZWN0Kik7CiAKQEAgLTYx
LDYgKzYxLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZG9TdGFydChKU0M6OkV4ZWNTdGF0ZSYp
OwogCisgICAgSlNDOjpKU1ZhbHVlIGludm9rZShKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IGNoYXIq
KTsKKwogICAgIHZpcnR1YWwgYm9vbCBoYXNWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgSlNDOjpKU1ZhbHVlIHJlYWQoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUxYjRlNGMzMmI0
ZGUyMzU3NDQ5ODFjYjE3NThhMTI0YzU5NDE1NTAuLmJiYjViNmFiZDE3MjNjM2Q5Y2FlYjdiOTI3
YTY4MTg1ZWE5MWUyM2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNS0wNi0wOCAgWGFiaWVy
IFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPiBhbmQgWW91ZW5uIEZhYmxl
dCA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CisKKyAgICAgICAgW1N0cmVhbXMgQVBJXSBS
ZWFkYWJsZUpTU3RyZWFtIHNob3VsZCBoYW5kbGUgSlMgc291cmNlIGdldHRlcnMgdGhhdCB0aHJv
dworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NjAw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJl
YW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9iYWQtdW5kZXJseWluZy1zb3VyY2VzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBzdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFk
YWJsZS1zdHJlYW0tZXhwZWN0ZWQudHh0OgorCiAyMDE1LTA2LTA3ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTgxNzIwKTogVW5uZWNlc3Nh
cnkgbGF5b3V0IHRyaWdnZXJlZCBhbnkgdGltZSBhbmltYXRlZCBHSUYgYWR2YW5jZXMgdG8gYSBu
ZXcgZnJhbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxl
bWVudGF0aW9uL2JhZC11bmRlcmx5aW5nLXNvdXJjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYmFkLXVuZGVybHlpbmctc291cmNl
cy1leHBlY3RlZC50eHQKaW5kZXggZjczN2Q1YmJjYzNmOGZlYjczZWFkMTYwMjM0ODdlNzgxZTUz
ZWExMi4uYzczM2MzODc5NDBiMzI2ZjMwNDZhN2I4YThhZmUwYjJhZTcyMzY2OCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYmFkLXVuZGVy
bHlpbmctc291cmNlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZl
cmVuY2UtaW1wbGVtZW50YXRpb24vYmFkLXVuZGVybHlpbmctc291cmNlcy1leHBlY3RlZC50eHQK
QEAgLTEsNyArMSw1IEBACiAKLUZBSUwgVW5kZXJseWluZyBzb3VyY2Ugc3RhcnQ6IHRocm93aW5n
IGdldHRlciBhc3NlcnRfdGhyb3dzOiBjb25zdHJ1Y3RpbmcgdGhlIHN0cmVhbSBzaG91bGQgcmUt
dGhyb3cgdGhlIGVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgICAgIG5ldyBSZWFk
YWJsZVN0cmVhbSh7Ci0gICAgICAgICAgICBnZS4uLiIgdGhyZXcgb2JqZWN0ICJUeXBlRXJyb3I6
IFJlYWRhYmxlU3RyZWFtIGNvbnN0cnVjdG9yIG9iamVjdCBzdGFydCBwcm9wZXIuLi4iICgiVHlw
ZUVycm9yIikgZXhwZWN0ZWQgb2JqZWN0ICJFcnJvcjogYSB1bmlxdWUgc3RyaW5nIiAoIkVycm9y
IikKK1BBU1MgVW5kZXJseWluZyBzb3VyY2Ugc3RhcnQ6IHRocm93aW5nIGdldHRlciAKIFBBU1Mg
VW5kZXJseWluZyBzb3VyY2Ugc3RhcnQ6IHRocm93aW5nIG1ldGhvZCAKIFRJTUVPVVQgVW5kZXJs
eWluZyBzb3VyY2U6IHRocm93aW5nIHB1bGwgZ2V0dGVyIChpbml0aWFsIHB1bGwpIFRlc3QgdGlt
ZWQgb3V0CiBUSU1FT1VUIFVuZGVybHlpbmcgc291cmNlOiB0aHJvd2luZyBwdWxsIG1ldGhvZCAo
aW5pdGlhbCBwdWxsKSBUZXN0IHRpbWVkIG91dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Ry
ZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxl
LXN0cmVhbS1leHBlY3RlZC50eHQKaW5kZXggODAxN2UxYWQ3MGNmZmFmNDA3NzU0NTJiNWIwOWM1
YmZiNGNkZTA4Mi4uYTVlZmQ5ZjJmMTljMzA0YTM5NTNlMDQwNGFhODJlNjEzZDdmYzdmZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVh
ZGFibGUtc3RyZWFtLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVy
ZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tZXhwZWN0ZWQudHh0CkBAIC0xLDUg
KzEsNSBAQAogCi1GQUlMIFJlYWRhYmxlU3RyZWFtIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIG5v
IGVycm9ycyBSZWFkYWJsZVN0cmVhbSBjb25zdHJ1Y3RvciBzaG91bGQgZ2V0IGFuIG9iamVjdCBh
cyBhcmd1bWVudC4KK1BBU1MgUmVhZGFibGVTdHJlYW0gY2FuIGJlIGNvbnN0cnVjdGVkIHdpdGgg
bm8gZXJyb3JzIAogRkFJTCBSZWFkYWJsZVN0cmVhbSBpbnN0YW5jZXMgc2hvdWxkIGhhdmUgdGhl
IGNvcnJlY3QgbGlzdCBvZiBwcm9wZXJ0aWVzIGFzc2VydF9hcnJheV9lcXVhbHM6IHNob3VsZCBo
YXZlIGFsbCB0aGUgY29ycmVjdCBtZXRob2RzIGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCA2IGdv
dCA1CiBQQVNTIFJlYWRhYmxlU3RyZWFtIGNvbnN0cnVjdG9yIHNob3VsZCB0aHJvdyBmb3Igbm9u
LWZ1bmN0aW9uIHN0YXJ0IGFyZ3VtZW50cyAKIFBBU1MgUmVhZGFibGVTdHJlYW0gY29uc3RydWN0
b3IgY2FuIGdldCBpbml0aWFsIGdhcmJhZ2UgYXMgY2FuY2VsIGFyZ3VtZW50IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254492</attachid>
            <date>2015-06-08 07:39:07 -0700</date>
            <delta_ts>2015-06-08 23:49:07 -0700</delta_ts>
            <desc>Fixing according review</desc>
            <filename>bug-145600-20150608163840.patch</filename>
            <type>text/plain</type>
            <size>11289</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA0M2ZiYThlNTBiMWFl
NGE5OTdiN2Y4NzdiNGJlMjNhZDQ5NDdiZC4uMmQ1ODE2OTdlZmZmMzM0MGMwY2I5YzBiODI4MmQw
Mjc3NmQyN2FkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTA2LTA4ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFi
bGV0IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEld
IFJlYWRhYmxlSlNTdHJlYW0gc2hvdWxkIGhhbmRsZSBKUyBzb3VyY2UgZ2V0dGVycyB0aGF0IHRo
cm93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU2
MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGVj
a2luZyB3aGV0aGVyIHRoZXJlIGlzIGFuIGV4Y2VwdGlvbiB3aGVuIHRyeWluZyB0byBhY2Nlc3Mg
dG8gYSBzb3VyY2UgbWV0aG9kLgorICAgICAgICBJZiBzbywgcmV0aHJvd2luZyBpdCBpbiBjYXNl
IG9mICJzdGFydCIuCisKKyAgICAgICAgUmVmYWN0b3Jpbmcgb2YgY29kZSB0byBwcmVwYXJlIHB1
bGxpbmcsIGNhbmNlbGxpbmcgYW5kIGFkZGl0aW9uYWwgcGFyYW1ldGVyIGhhbmRsaW5nIGluIFJl
YWRhYmxlU3RyZWFtIGNvbnN0cnV0b3IuCisKKyAgICAgICAgRml4ZWQgdGhlIGNhc2Ugb2YgUmVh
ZGFibGVTdHJlYW0gY29uc3RydWN0b3IgY2FsbGVkIHdpdGggYW4gdW5kZWZpbmVkIHBhcmFtZXRl
ci4KKworICAgICAgICBDb3ZlcmVkIGJ5IHJlYmFzZWQgdGVzdCBleHBlY3RhdGlvbi4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29uc3RydWN0SlNSZWFkYWJsZVN0cmVhbSk6IFJlZmFjdG9yaW5nIHRvIGdyb3Vw
IGFsbCBwYXJhbWV0ZXIgY2hlY2sgYW5kIGV4Y2VwdGlvbiBoYW5kbGluZyBpbiBSZWFkYWJsZUpT
U3RyZWFtOjpjcmVhdGUuCisgICAgICAgICogYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRQcm9wZXJ0eUZyb21PYmplY3QpOgorICAgICAgICAo
V2ViQ29yZTo6Y2FsbEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlSlNTdHJl
YW06Omludm9rZSk6IEFkZGVkIG1ldGhvZCB0byBiZSB1c2VkIGFsc28gZm9yIHB1bGxpbmcgYW5k
IGNhbmNlbGxpbmcuCisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpkb1N0YXJ0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlSlNTdHJlYW06OmNyZWF0ZSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5oOgorCiAyMDE1LTA2LTA3ICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTgxNzIwKTog
VW5uZWNlc3NhcnkgbGF5b3V0IHRyaWdnZXJlZCBhbnkgdGltZSBhbmltYXRlZCBHSUYgYWR2YW5j
ZXMgdG8gYSBuZXcgZnJhbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNSZWFkYWJsZVN0cmVhbUN1c3RvbS5jcHAKaW5kZXggODI1N2YwYTY4MGJlNDQ1NWIxZGRkZjA2
ODJkOTc5NzEzZDBkNTBhZS4uNzlmNDgwYzgzZTAzMDRhNDgxYTM1M2YzYzdlMWYzZTFjMjdiMWIz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVh
bUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0
cmVhbUN1c3RvbS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVh
bS5oIgogI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtUmVhZGVyLmgiCiAjaW5jbHVkZSA8cnVudGlt
ZS9FcnJvci5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvRXhjZXB0aW9uLmg+CiAjaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkBAIC03MywxMyArNzQs
MTUgQEAgSlNWYWx1ZSBKU1JlYWRhYmxlU3RyZWFtOjpwaXBlVGhyb3VnaChFeGVjU3RhdGUqIGV4
ZWMpCiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNSZWFkYWJsZVN0
cmVhbShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAm
JiAhZXhlYy0+YXJndW1lbnQoMCkuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1F
cnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJSZWFkYWJsZVN0
cmVhbSBjb25zdHJ1Y3RvciBzaG91bGQgZ2V0IGFuIG9iamVjdCBhcyBhcmd1bWVudC4iKSkpOwot
CiAgICAgRE9NQ29uc3RydWN0b3JPYmplY3QqIGpzQ29uc3RydWN0b3IgPSBqc0Nhc3Q8RE9NQ29u
c3RydWN0b3JPYmplY3QqPihleGVjLT5jYWxsZWUoKSk7CiAgICAgQVNTRVJUKGpzQ29uc3RydWN0
b3IpOwogCi0gICAgUmVmPFJlYWRhYmxlSlNTdHJlYW0+IHJlYWRhYmxlU3RyZWFtID0gUmVhZGFi
bGVKU1N0cmVhbTo6Y3JlYXRlKCpleGVjLCAqanNDb25zdHJ1Y3Rvci0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKKyAgICBSZWZQdHI8UmVhZGFibGVKU1N0cmVhbT4gcmVhZGFibGVTdHJlYW0g
PSBSZWFkYWJsZUpTU3RyZWFtOjpjcmVhdGUoKmV4ZWMsICpqc0NvbnN0cnVjdG9yLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpOworCisgICAgaWYgKCFyZWFkYWJsZVN0cmVhbSkgeworICAgICAg
ICBBU1NFUlQoZXhlYy0+aGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHRvSlMoZXhlYywganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+Y2FsbGVlKCktPmds
b2JhbE9iamVjdCgpKSwgV1RGOjptb3ZlKHJlYWRhYmxlU3RyZWFtKSkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uY3BwCmluZGV4IDc3YjJh
ZmExNjlhNGJmOGU0ZjVhNWFjMGMzOWYwMTUxODIwY2ZkZDcuLjAxN2Q2OWU0MTUyM2M1ZDU2ZTk5
ZDcxNDMyZDdlZTJiZWQ3MDQzMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1JlYWRhYmxlSlNTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1JlYWRhYmxlSlNTdHJlYW0uY3BwCkBAIC00NywxNiArNDcsMzMgQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUgZ2V0
UHJvcGVydHlGcm9tT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9iamVjdCwgY29u
c3QgY2hhciogaWRlbnRpZmllcikKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBnZXRQcm9wZXJ0eUZy
b21PYmplY3QoRXhlY1N0YXRlJiBleGVjLCBKU09iamVjdCogb2JqZWN0LCBjb25zdCBjaGFyKiBp
ZGVudGlmaWVyKQogewotICAgIHJldHVybiBvYmplY3QtPmdldChleGVjLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKGV4ZWMsIGlkZW50aWZpZXIpKTsKKyAgICByZXR1cm4gb2JqZWN0LT5nZXQoJmV4
ZWMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJmV4ZWMsIGlkZW50aWZpZXIpKTsKIH0KIAotc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGNhbGxGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
anNGdW5jdGlvbiwgSlNWYWx1ZSB0aGlzVmFsdWUsIGNvbnN0IEFyZ0xpc3QmIGFyZ3VtZW50cywg
RXhjZXB0aW9uKiYgZXhjZXB0aW9uKQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGNhbGxGdW5jdGlv
bihFeGVjU3RhdGUmIGV4ZWMsIEpTVmFsdWUganNGdW5jdGlvbiwgSlNWYWx1ZSB0aGlzVmFsdWUs
IGNvbnN0IEFyZ0xpc3QmIGFyZ3VtZW50cykKIHsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKICAg
ICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRhKGpzRnVuY3Rpb24sIGNhbGxEYXRhKTsK
LSAgICByZXR1cm4gY2FsbChleGVjLCBqc0Z1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRo
aXNWYWx1ZSwgYXJndW1lbnRzLCBleGNlcHRpb24pOworICAgIHJldHVybiBjYWxsKCZleGVjLCBq
c0Z1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNWYWx1ZSwgYXJndW1lbnRzKTsKK30K
KworSlNWYWx1ZSBSZWFkYWJsZUpTU3RyZWFtOjppbnZva2UoRXhlY1N0YXRlJiBleGVjLCBjb25z
dCBjaGFyKiBwcm9wZXJ0eU5hbWUpCit7CisgICAgSlNWYWx1ZSBmdW5jdGlvbiA9IGdldFByb3Bl
cnR5RnJvbU9iamVjdChleGVjLCBtX3NvdXJjZS5nZXQoKSwgcHJvcGVydHlOYW1lKTsKKyAgICBp
ZiAoZXhlYy5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisK
KyAgICBpZiAoIWZ1bmN0aW9uLmlzRnVuY3Rpb24oKSkgeworICAgICAgICBpZiAoIWZ1bmN0aW9u
LmlzVW5kZWZpbmVkKCkpCisgICAgICAgICAgICB0aHJvd1ZNRXJyb3IoJmV4ZWMsIGNyZWF0ZVR5
cGVFcnJvcigmZXhlYywgQVNDSUlMaXRlcmFsKCJSZWFkYWJsZVN0cmVhbSB0cnlpbmcgdG8gY2Fs
bCBhIHByb3BlcnR5IHRoYXQgaXMgbm90IGNhbGxhYmxlIikpKTsKKyAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CisgICAgfQorCisgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRz
OworICAgIGFyZ3VtZW50cy5hcHBlbmQoanNDb250cm9sbGVyKGV4ZWMsIGdsb2JhbE9iamVjdCgp
KSk7CisgICAgcmV0dXJuIGNhbGxGdW5jdGlvbihleGVjLCBmdW5jdGlvbiwgbV9zb3VyY2UuZ2V0
KCksIGFyZ3VtZW50cyk7CiB9CiAKIEpTRE9NR2xvYmFsT2JqZWN0KiBSZWFkYWJsZUpTU3RyZWFt
OjpnbG9iYWxPYmplY3QoKQpAQCAtNzYsMzcgKzkzLDM0IEBAIHZvaWQgUmVhZGFibGVKU1N0cmVh
bTo6ZG9TdGFydChFeGVjU3RhdGUmIGV4ZWMpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soJmV4
ZWMpOwogCi0gICAgSlNWYWx1ZSBzdGFydEZ1bmN0aW9uID0gZ2V0UHJvcGVydHlGcm9tT2JqZWN0
KCZleGVjLCBtX3NvdXJjZS5nZXQoKSwgInN0YXJ0Iik7Ci0gICAgaWYgKCFzdGFydEZ1bmN0aW9u
LmlzRnVuY3Rpb24oKSkgewotICAgICAgICBpZiAoIXN0YXJ0RnVuY3Rpb24uaXNVbmRlZmluZWQo
KSkKLSAgICAgICAgICAgIHRocm93Vk1FcnJvcigmZXhlYywgY3JlYXRlVHlwZUVycm9yKCZleGVj
LCBBU0NJSUxpdGVyYWwoIlJlYWRhYmxlU3RyZWFtIGNvbnN0cnVjdG9yIG9iamVjdCBzdGFydCBw
cm9wZXJ0eSBzaG91bGQgYmUgYSBmdW5jdGlvbi4iKSkpOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBzdGFydFJlYWRhYmxlU3RyZWFtQXN5bmMoKnRoaXMpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQorICAgIGludm9rZShleGVjLCAic3RhcnQiKTsKIAotICAgIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyIGFyZ3VtZW50czsKLSAgICBhcmd1bWVudHMuYXBwZW5kKGpzQ29udHJvbGxlcihleGVjLCBn
bG9iYWxPYmplY3QoKSkpOwotCi0gICAgRXhjZXB0aW9uKiBleGNlcHRpb247Ci0gICAgY2FsbEZ1
bmN0aW9uKCZleGVjLCBzdGFydEZ1bmN0aW9uLCBtX3NvdXJjZS5nZXQoKSwgYXJndW1lbnRzLCBl
eGNlcHRpb24pOwotCi0gICAgaWYgKGV4Y2VwdGlvbikgewotICAgICAgICB0aHJvd1ZNRXJyb3Io
JmV4ZWMsIGV4Y2VwdGlvbik7CisgICAgaWYgKGV4ZWMuaGFkRXhjZXB0aW9uKCkpCiAgICAgICAg
IHJldHVybjsKLSAgICB9CiAKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGhhbmRsaW5nIHByb21p
c2UgYXMgcmVzdWx0IG9mIGNhbGxpbmcgc3RhcnQgZnVuY3Rpb24uCiAgICAgc3RhcnRSZWFkYWJs
ZVN0cmVhbUFzeW5jKCp0aGlzKTsKIH0KIAotUmVmPFJlYWRhYmxlSlNTdHJlYW0+IFJlYWRhYmxl
SlNTdHJlYW06OmNyZWF0ZShFeGVjU3RhdGUmIGV4ZWMsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCitSZWZQdHI8UmVhZGFibGVKU1N0cmVhbT4gUmVhZGFi
bGVKU1N0cmVhbTo6Y3JlYXRlKEV4ZWNTdGF0ZSYgZXhlYywgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKIHsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFl
eGVjLmFyZ3VtZW50Q291bnQoKSB8fCBleGVjLmFyZ3VtZW50KDApLmlzT2JqZWN0KCksICJDYWxs
ZXIgb2YgUmVhZGFibGVKU1N0cmVhbSBjb25zdHJ1Y3RvciBzaG91bGQgZW5zdXJlIHRoYXQgcGFz
c2VkIGFyZ3VtZW50IGlmIGFueSBpcyBhbiBvYmplY3QuIik7Ci0gICAgSlNPYmplY3QqIHNvdXJj
ZSA9ICBleGVjLmFyZ3VtZW50Q291bnQoKSA/IGV4ZWMuYXJndW1lbnQoMCkuZ2V0T2JqZWN0KCkg
OiBKU0ZpbmFsT2JqZWN0OjpjcmVhdGUoZXhlYy52bSgpLCBKU0ZpbmFsT2JqZWN0OjpjcmVhdGVT
dHJ1Y3R1cmUoZXhlYy52bSgpLCBleGVjLmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKSwganNOdWxs
KCksIDEpKTsKLQotICAgIFJlZjxSZWFkYWJsZUpTU3RyZWFtPiByZWFkYWJsZVN0cmVhbSA9IGFk
b3B0UmVmKCpuZXcgUmVhZGFibGVKU1N0cmVhbShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBleGVj
LCBzb3VyY2UpKTsKKyAgICBKU09iamVjdCoganNTb3VyY2U7CisgICAgSlNWYWx1ZSB2YWx1ZSA9
IGV4ZWMuYXJndW1lbnQoMCk7CisgICAgaWYgKCF2YWx1ZS5pc1VuZGVmaW5lZCgpKSB7CisgICAg
ICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkgeworICAgICAgICAgICAgdGhyb3dWTUVycm9yKCZl
eGVjLCBjcmVhdGVUeXBlRXJyb3IoJmV4ZWMsIEFTQ0lJTGl0ZXJhbCgiUmVhZGFibGVTdHJlYW0g
Y29uc3RydWN0b3IgZmlyc3QgYXJndW1lbnQsIGlmIGFueSwgc2hvdWxkIGJlIGFuIG9iamVjdCIp
KSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorICAgICAgICBqc1Nv
dXJjZSA9IHZhbHVlLmdldE9iamVjdCgpOworICAgIH0gZWxzZQorICAgICAgICBqc1NvdXJjZSA9
IEpTRmluYWxPYmplY3Q6OmNyZWF0ZShleGVjLnZtKCksIEpTRmluYWxPYmplY3Q6OmNyZWF0ZVN0
cnVjdHVyZShleGVjLnZtKCksIGV4ZWMuY2FsbGVlKCktPmdsb2JhbE9iamVjdCgpLCBqc051bGwo
KSwgMSkpOworCisgICAgUmVmUHRyPFJlYWRhYmxlSlNTdHJlYW0+IHJlYWRhYmxlU3RyZWFtID0g
YWRvcHRSZWYoKm5ldyBSZWFkYWJsZUpTU3RyZWFtKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGV4
ZWMsIGpzU291cmNlKSk7CiAgICAgcmVhZGFibGVTdHJlYW0tPmRvU3RhcnQoZXhlYyk7CisKKyAg
ICBpZiAoZXhlYy5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKICAg
ICByZXR1cm4gcmVhZGFibGVTdHJlYW07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1JlYWRhYmxlSlNTdHJlYW0uaAppbmRleCA2N2RjMGMwMDIxNTNiZTA0NzMyMzVmYzEyMDc1
MGE4ZjdkNWZmYWEyLi5jNGViNDdmMmJmZjUyMTIwZWYwNzRhYjc0ZTNlOTkyMWRjOGNkY2JiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5oCkBAIC00
Nyw3ICs0Nyw3IEBAIGNsYXNzIFJlYWRhYmxlU3RyZWFtQ29udHJvbGxlcjsKIAogY2xhc3MgUmVh
ZGFibGVKU1N0cmVhbTogcHVibGljIFJlYWRhYmxlU3RyZWFtIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFJlYWRhYmxlSlNTdHJlYW0+IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSYsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmKTsKKyAgICBzdGF0aWMgUmVmUHRyPFJlYWRhYmxlSlNTdHJlYW0+IGNy
ZWF0ZShKU0M6OkV4ZWNTdGF0ZSYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIAogICAgIEpT
Qzo6SlNWYWx1ZSBqc0NvbnRyb2xsZXIoSlNDOjpFeGVjU3RhdGUmLCBKU0RPTUdsb2JhbE9iamVj
dCopOwogCkBAIC02MSw2ICs2MSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRvU3RhcnQoSlND
OjpFeGVjU3RhdGUmKTsKIAorICAgIEpTQzo6SlNWYWx1ZSBpbnZva2UoSlNDOjpFeGVjU3RhdGUm
LCBjb25zdCBjaGFyKik7CisKICAgICB2aXJ0dWFsIGJvb2wgaGFzVmFsdWUoKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIEpTQzo6SlNWYWx1ZSByZWFkKCkgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA1MWI0ZTRjMzJiNGRlMjM1NzQ0OTgxY2IxNzU4YTEyNGM1OTQxNTUwLi5iYmI1YjZhYmQxNzIz
YzNkOWNhZWI3YjkyN2E2ODE4NWVhOTFlMjNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUt
MDYtMDggIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4gYW5k
IFlvdWVubiBGYWJsZXQgPHlvdWVubi5mYWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtT
dHJlYW1zIEFQSV0gUmVhZGFibGVKU1N0cmVhbSBzaG91bGQgaGFuZGxlIEpTIHNvdXJjZSBnZXR0
ZXJzIHRoYXQgdGhyb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0NTYwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vYmFkLXVuZGVybHlpbmct
c291cmNlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVt
ZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLWV4cGVjdGVkLnR4dDoKKwogMjAxNS0wNi0wNyAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE4MTcy
MCk6IFVubmVjZXNzYXJ5IGxheW91dCB0cmlnZ2VyZWQgYW55IHRpbWUgYW5pbWF0ZWQgR0lGIGFk
dmFuY2VzIHRvIGEgbmV3IGZyYW1lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3Jl
ZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9iYWQtdW5kZXJseWluZy1zb3VyY2VzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JhZC11bmRl
cmx5aW5nLXNvdXJjZXMtZXhwZWN0ZWQudHh0CmluZGV4IGY3MzdkNWJiY2MzZjhmZWI3M2VhZDE2
MDIzNDg3ZTc4MWU1M2VhMTIuLmM3MzNjMzg3OTQwYjMyNmYzMDQ2YTdiOGE4YWZlMGIyYWU3MjM2
NjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0
aW9uL2JhZC11bmRlcmx5aW5nLXNvdXJjZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JhZC11bmRlcmx5aW5nLXNvdXJjZXMt
ZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNSBAQAogCi1GQUlMIFVuZGVybHlpbmcgc291cmNlIHN0
YXJ0OiB0aHJvd2luZyBnZXR0ZXIgYXNzZXJ0X3Rocm93czogY29uc3RydWN0aW5nIHRoZSBzdHJl
YW0gc2hvdWxkIHJlLXRocm93IHRoZSBlcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAg
ICAgICBuZXcgUmVhZGFibGVTdHJlYW0oewotICAgICAgICAgICAgZ2UuLi4iIHRocmV3IG9iamVj
dCAiVHlwZUVycm9yOiBSZWFkYWJsZVN0cmVhbSBjb25zdHJ1Y3RvciBvYmplY3Qgc3RhcnQgcHJv
cGVyLi4uIiAoIlR5cGVFcnJvciIpIGV4cGVjdGVkIG9iamVjdCAiRXJyb3I6IGEgdW5pcXVlIHN0
cmluZyIgKCJFcnJvciIpCitQQVNTIFVuZGVybHlpbmcgc291cmNlIHN0YXJ0OiB0aHJvd2luZyBn
ZXR0ZXIgCiBQQVNTIFVuZGVybHlpbmcgc291cmNlIHN0YXJ0OiB0aHJvd2luZyBtZXRob2QgCiBU
SU1FT1VUIFVuZGVybHlpbmcgc291cmNlOiB0aHJvd2luZyBwdWxsIGdldHRlciAoaW5pdGlhbCBw
dWxsKSBUZXN0IHRpbWVkIG91dAogVElNRU9VVCBVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcg
cHVsbCBtZXRob2QgKGluaXRpYWwgcHVsbCkgVGVzdCB0aW1lZCBvdXQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVh
bS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRh
dGlvbi9yZWFkYWJsZS1zdHJlYW0tZXhwZWN0ZWQudHh0CmluZGV4IDgwMTdlMWFkNzBjZmZhZjQw
Nzc1NDUyYjViMDljNWJmYjRjZGUwODIuLmE1ZWZkOWYyZjE5YzMwNGEzOTUzZTA0MDRhYTgyZTYx
M2Q3ZmM3ZmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxl
bWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLWV4cGVjdGVk
LnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJTCBSZWFkYWJsZVN0cmVhbSBjYW4gYmUgY29uc3Ry
dWN0ZWQgd2l0aCBubyBlcnJvcnMgUmVhZGFibGVTdHJlYW0gY29uc3RydWN0b3Igc2hvdWxkIGdl
dCBhbiBvYmplY3QgYXMgYXJndW1lbnQuCitQQVNTIFJlYWRhYmxlU3RyZWFtIGNhbiBiZSBjb25z
dHJ1Y3RlZCB3aXRoIG5vIGVycm9ycyAKIEZBSUwgUmVhZGFibGVTdHJlYW0gaW5zdGFuY2VzIHNo
b3VsZCBoYXZlIHRoZSBjb3JyZWN0IGxpc3Qgb2YgcHJvcGVydGllcyBhc3NlcnRfYXJyYXlfZXF1
YWxzOiBzaG91bGQgaGF2ZSBhbGwgdGhlIGNvcnJlY3QgbWV0aG9kcyBsZW5ndGhzIGRpZmZlciwg
ZXhwZWN0ZWQgNiBnb3QgNQogUEFTUyBSZWFkYWJsZVN0cmVhbSBjb25zdHJ1Y3RvciBzaG91bGQg
dGhyb3cgZm9yIG5vbi1mdW5jdGlvbiBzdGFydCBhcmd1bWVudHMgCiBQQVNTIFJlYWRhYmxlU3Ry
ZWFtIGNvbnN0cnVjdG9yIGNhbiBnZXQgaW5pdGlhbCBnYXJiYWdlIGFzIGNhbmNlbCBhcmd1bWVu
dCAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254552</attachid>
            <date>2015-06-08 23:49:14 -0700</date>
            <delta_ts>2015-06-09 00:45:44 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-145600-20150609084847.patch</filename>
            <type>text/plain</type>
            <size>11262</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA0M2ZiYThlNTBiMWFl
NGE5OTdiN2Y4NzdiNGJlMjNhZDQ5NDdiZC4uNDFmNjNhYTI1OWNlZDYxZjJiZjEwNTFiZjdlMmI1
NTllNGY3YzdkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE1LTA2LTA4ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+IGFuZCBZb3Vlbm4gRmFi
bGV0IDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KKworICAgICAgICBbU3RyZWFtcyBBUEld
IFJlYWRhYmxlSlNTdHJlYW0gc2hvdWxkIGhhbmRsZSBKUyBzb3VyY2UgZ2V0dGVycyB0aGF0IHRo
cm93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU2
MDAKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBDaGVja2lu
ZyB3aGV0aGVyIHRoZXJlIGlzIGFuIGV4Y2VwdGlvbiB3aGVuIHRyeWluZyB0byBhY2Nlc3MgdG8g
YSBzb3VyY2UgbWV0aG9kLgorICAgICAgICBJZiBzbywgcmV0aHJvd2luZyBpdCBpbiBjYXNlIG9m
ICJzdGFydCIuCisKKyAgICAgICAgUmVmYWN0b3Jpbmcgb2YgY29kZSB0byBwcmVwYXJlIHB1bGxp
bmcsIGNhbmNlbGxpbmcgYW5kIGFkZGl0aW9uYWwgcGFyYW1ldGVyIGhhbmRsaW5nIGluIFJlYWRh
YmxlU3RyZWFtIGNvbnN0cnV0b3IuCisKKyAgICAgICAgRml4ZWQgdGhlIGNhc2Ugb2YgUmVhZGFi
bGVTdHJlYW0gY29uc3RydWN0b3IgY2FsbGVkIHdpdGggYW4gdW5kZWZpbmVkIHBhcmFtZXRlci4K
KworICAgICAgICBDb3ZlcmVkIGJ5IHJlYmFzZWQgdGVzdCBleHBlY3RhdGlvbi4KKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1DdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29uc3RydWN0SlNSZWFkYWJsZVN0cmVhbSk6IFJlZmFjdG9yaW5nIHRvIGdyb3VwIGFs
bCBwYXJhbWV0ZXIgY2hlY2sgYW5kIGV4Y2VwdGlvbiBoYW5kbGluZyBpbiBSZWFkYWJsZUpTU3Ry
ZWFtOjpjcmVhdGUuCisgICAgICAgICogYmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpnZXRQcm9wZXJ0eUZyb21PYmplY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Y2FsbEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlSlNTdHJlYW06
Omludm9rZSk6IEFkZGVkIG1ldGhvZCB0byBiZSB1c2VkIGFsc28gZm9yIHB1bGxpbmcgYW5kIGNh
bmNlbGxpbmcuCisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZUpTU3RyZWFtOjpkb1N0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlYWRhYmxlSlNTdHJlYW06OmNyZWF0ZSk6CisgICAgICAgICog
YmluZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5oOgorCiAyMDE1LTA2LTA3ICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTgxNzIwKTogVW5u
ZWNlc3NhcnkgbGF5b3V0IHRyaWdnZXJlZCBhbnkgdGltZSBhbmltYXRlZCBHSUYgYWR2YW5jZXMg
dG8gYSBuZXcgZnJhbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
UmVhZGFibGVTdHJlYW1DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNS
ZWFkYWJsZVN0cmVhbUN1c3RvbS5jcHAKaW5kZXggODI1N2YwYTY4MGJlNDQ1NWIxZGRkZjA2ODJk
OTc5NzEzZDBkNTBhZS4uNzlmNDgwYzgzZTAzMDRhNDgxYTM1M2YzYzdlMWYzZTFjMjdiMWIzYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVhbUN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZWFkYWJsZVN0cmVh
bUN1c3RvbS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbS5o
IgogI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtUmVhZGVyLmgiCiAjaW5jbHVkZSA8cnVudGltZS9F
cnJvci5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvRXhjZXB0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkBAIC03MywxMyArNzQsMTUg
QEAgSlNWYWx1ZSBKU1JlYWRhYmxlU3RyZWFtOjpwaXBlVGhyb3VnaChFeGVjU3RhdGUqIGV4ZWMp
CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNSZWFkYWJsZVN0cmVh
bShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSAmJiAh
ZXhlYy0+YXJndW1lbnQoMCkuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJv
cihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJSZWFkYWJsZVN0cmVh
bSBjb25zdHJ1Y3RvciBzaG91bGQgZ2V0IGFuIG9iamVjdCBhcyBhcmd1bWVudC4iKSkpOwotCiAg
ICAgRE9NQ29uc3RydWN0b3JPYmplY3QqIGpzQ29uc3RydWN0b3IgPSBqc0Nhc3Q8RE9NQ29uc3Ry
dWN0b3JPYmplY3QqPihleGVjLT5jYWxsZWUoKSk7CiAgICAgQVNTRVJUKGpzQ29uc3RydWN0b3Ip
OwogCi0gICAgUmVmPFJlYWRhYmxlSlNTdHJlYW0+IHJlYWRhYmxlU3RyZWFtID0gUmVhZGFibGVK
U1N0cmVhbTo6Y3JlYXRlKCpleGVjLCAqanNDb25zdHJ1Y3Rvci0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKTsKKyAgICBSZWZQdHI8UmVhZGFibGVKU1N0cmVhbT4gcmVhZGFibGVTdHJlYW0gPSBS
ZWFkYWJsZUpTU3RyZWFtOjpjcmVhdGUoKmV4ZWMsICpqc0NvbnN0cnVjdG9yLT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOworCisgICAgaWYgKCFyZWFkYWJsZVN0cmVhbSkgeworICAgICAgICBB
U1NFUlQoZXhlYy0+aGFkRXhjZXB0aW9uKCkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRv
SlMoZXhlYywganNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+Y2FsbGVlKCktPmdsb2Jh
bE9iamVjdCgpKSwgV1RGOjptb3ZlKHJlYWRhYmxlU3RyZWFtKSkpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uY3BwCmluZGV4IDc3YjJhZmEx
NjlhNGJmOGU0ZjVhNWFjMGMzOWYwMTUxODIwY2ZkZDcuLjJkM2RiYzE1ZTA2YmRkZGQ2MjkyMWJh
ODVkZTIzYWU5MzRjYzlmMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1JlYWRhYmxlSlNTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Jl
YWRhYmxlSlNTdHJlYW0uY3BwCkBAIC00NywxNiArNDcsMzMgQEAgdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUgZ2V0UHJv
cGVydHlGcm9tT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9iamVjdCwgY29uc3Qg
Y2hhciogaWRlbnRpZmllcikKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBnZXRQcm9wZXJ0eUZyb21P
YmplY3QoRXhlY1N0YXRlJiBleGVjLCBKU09iamVjdCogb2JqZWN0LCBjb25zdCBjaGFyKiBpZGVu
dGlmaWVyKQogewotICAgIHJldHVybiBvYmplY3QtPmdldChleGVjLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKGV4ZWMsIGlkZW50aWZpZXIpKTsKKyAgICByZXR1cm4gb2JqZWN0LT5nZXQoJmV4ZWMs
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJmV4ZWMsIGlkZW50aWZpZXIpKTsKIH0KIAotc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGNhbGxGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUganNG
dW5jdGlvbiwgSlNWYWx1ZSB0aGlzVmFsdWUsIGNvbnN0IEFyZ0xpc3QmIGFyZ3VtZW50cywgRXhj
ZXB0aW9uKiYgZXhjZXB0aW9uKQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGNhbGxGdW5jdGlvbihF
eGVjU3RhdGUmIGV4ZWMsIEpTVmFsdWUganNGdW5jdGlvbiwgSlNWYWx1ZSB0aGlzVmFsdWUsIGNv
bnN0IEFyZ0xpc3QmIGFyZ3VtZW50cykKIHsKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKICAgICBD
YWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRhKGpzRnVuY3Rpb24sIGNhbGxEYXRhKTsKLSAg
ICByZXR1cm4gY2FsbChleGVjLCBqc0Z1bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNW
YWx1ZSwgYXJndW1lbnRzLCBleGNlcHRpb24pOworICAgIHJldHVybiBjYWxsKCZleGVjLCBqc0Z1
bmN0aW9uLCBjYWxsVHlwZSwgY2FsbERhdGEsIHRoaXNWYWx1ZSwgYXJndW1lbnRzKTsKK30KKwor
SlNWYWx1ZSBSZWFkYWJsZUpTU3RyZWFtOjppbnZva2UoRXhlY1N0YXRlJiBleGVjLCBjb25zdCBj
aGFyKiBwcm9wZXJ0eU5hbWUpCit7CisgICAgSlNWYWx1ZSBmdW5jdGlvbiA9IGdldFByb3BlcnR5
RnJvbU9iamVjdChleGVjLCBtX3NvdXJjZS5nZXQoKSwgcHJvcGVydHlOYW1lKTsKKyAgICBpZiAo
ZXhlYy5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisKKyAg
ICBpZiAoIWZ1bmN0aW9uLmlzRnVuY3Rpb24oKSkgeworICAgICAgICBpZiAoIWZ1bmN0aW9uLmlz
VW5kZWZpbmVkKCkpCisgICAgICAgICAgICB0aHJvd1ZNRXJyb3IoJmV4ZWMsIGNyZWF0ZVR5cGVF
cnJvcigmZXhlYywgQVNDSUlMaXRlcmFsKCJSZWFkYWJsZVN0cmVhbSB0cnlpbmcgdG8gY2FsbCBh
IHByb3BlcnR5IHRoYXQgaXMgbm90IGNhbGxhYmxlIikpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CisgICAgfQorCisgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOwor
ICAgIGFyZ3VtZW50cy5hcHBlbmQoanNDb250cm9sbGVyKGV4ZWMsIGdsb2JhbE9iamVjdCgpKSk7
CisgICAgcmV0dXJuIGNhbGxGdW5jdGlvbihleGVjLCBmdW5jdGlvbiwgbV9zb3VyY2UuZ2V0KCks
IGFyZ3VtZW50cyk7CiB9CiAKIEpTRE9NR2xvYmFsT2JqZWN0KiBSZWFkYWJsZUpTU3RyZWFtOjpn
bG9iYWxPYmplY3QoKQpAQCAtNzYsMzcgKzkzLDMzIEBAIHZvaWQgUmVhZGFibGVKU1N0cmVhbTo6
ZG9TdGFydChFeGVjU3RhdGUmIGV4ZWMpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soJmV4ZWMp
OwogCi0gICAgSlNWYWx1ZSBzdGFydEZ1bmN0aW9uID0gZ2V0UHJvcGVydHlGcm9tT2JqZWN0KCZl
eGVjLCBtX3NvdXJjZS5nZXQoKSwgInN0YXJ0Iik7Ci0gICAgaWYgKCFzdGFydEZ1bmN0aW9uLmlz
RnVuY3Rpb24oKSkgewotICAgICAgICBpZiAoIXN0YXJ0RnVuY3Rpb24uaXNVbmRlZmluZWQoKSkK
LSAgICAgICAgICAgIHRocm93Vk1FcnJvcigmZXhlYywgY3JlYXRlVHlwZUVycm9yKCZleGVjLCBB
U0NJSUxpdGVyYWwoIlJlYWRhYmxlU3RyZWFtIGNvbnN0cnVjdG9yIG9iamVjdCBzdGFydCBwcm9w
ZXJ0eSBzaG91bGQgYmUgYSBmdW5jdGlvbi4iKSkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBzdGFydFJlYWRhYmxlU3RyZWFtQXN5bmMoKnRoaXMpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQorICAgIGludm9rZShleGVjLCAic3RhcnQiKTsKIAotICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVy
IGFyZ3VtZW50czsKLSAgICBhcmd1bWVudHMuYXBwZW5kKGpzQ29udHJvbGxlcihleGVjLCBnbG9i
YWxPYmplY3QoKSkpOwotCi0gICAgRXhjZXB0aW9uKiBleGNlcHRpb247Ci0gICAgY2FsbEZ1bmN0
aW9uKCZleGVjLCBzdGFydEZ1bmN0aW9uLCBtX3NvdXJjZS5nZXQoKSwgYXJndW1lbnRzLCBleGNl
cHRpb24pOwotCi0gICAgaWYgKGV4Y2VwdGlvbikgewotICAgICAgICB0aHJvd1ZNRXJyb3IoJmV4
ZWMsIGV4Y2VwdGlvbik7CisgICAgaWYgKGV4ZWMuaGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICB9CiAKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGhhbmRsaW5nIHByb21pc2Ug
YXMgcmVzdWx0IG9mIGNhbGxpbmcgc3RhcnQgZnVuY3Rpb24uCiAgICAgc3RhcnRSZWFkYWJsZVN0
cmVhbUFzeW5jKCp0aGlzKTsKIH0KIAotUmVmPFJlYWRhYmxlSlNTdHJlYW0+IFJlYWRhYmxlSlNT
dHJlYW06OmNyZWF0ZShFeGVjU3RhdGUmIGV4ZWMsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpCitSZWZQdHI8UmVhZGFibGVKU1N0cmVhbT4gUmVhZGFibGVK
U1N0cmVhbTo6Y3JlYXRlKEV4ZWNTdGF0ZSYgZXhlYywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKIHsKLSAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFleGVj
LmFyZ3VtZW50Q291bnQoKSB8fCBleGVjLmFyZ3VtZW50KDApLmlzT2JqZWN0KCksICJDYWxsZXIg
b2YgUmVhZGFibGVKU1N0cmVhbSBjb25zdHJ1Y3RvciBzaG91bGQgZW5zdXJlIHRoYXQgcGFzc2Vk
IGFyZ3VtZW50IGlmIGFueSBpcyBhbiBvYmplY3QuIik7Ci0gICAgSlNPYmplY3QqIHNvdXJjZSA9
ICBleGVjLmFyZ3VtZW50Q291bnQoKSA/IGV4ZWMuYXJndW1lbnQoMCkuZ2V0T2JqZWN0KCkgOiBK
U0ZpbmFsT2JqZWN0OjpjcmVhdGUoZXhlYy52bSgpLCBKU0ZpbmFsT2JqZWN0OjpjcmVhdGVTdHJ1
Y3R1cmUoZXhlYy52bSgpLCBleGVjLmNhbGxlZSgpLT5nbG9iYWxPYmplY3QoKSwganNOdWxsKCks
IDEpKTsKLQotICAgIFJlZjxSZWFkYWJsZUpTU3RyZWFtPiByZWFkYWJsZVN0cmVhbSA9IGFkb3B0
UmVmKCpuZXcgUmVhZGFibGVKU1N0cmVhbShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBleGVjLCBz
b3VyY2UpKTsKKyAgICBKU09iamVjdCoganNTb3VyY2U7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IGV4
ZWMuYXJndW1lbnQoMCk7CisgICAgaWYgKHZhbHVlLmlzT2JqZWN0KCkpCisgICAgICAgIGpzU291
cmNlID0gdmFsdWUuZ2V0T2JqZWN0KCk7CisgICAgZWxzZSBpZiAoIXZhbHVlLmlzVW5kZWZpbmVk
KCkpIHsKKyAgICAgICAgdGhyb3dWTUVycm9yKCZleGVjLCBjcmVhdGVUeXBlRXJyb3IoJmV4ZWMs
IEFTQ0lJTGl0ZXJhbCgiUmVhZGFibGVTdHJlYW0gY29uc3RydWN0b3IgZmlyc3QgYXJndW1lbnQs
IGlmIGFueSwgc2hvdWxkIGJlIGFuIG9iamVjdCIpKSk7CisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIH0gZWxzZQorICAgICAgICBqc1NvdXJjZSA9IEpTRmluYWxPYmplY3Q6OmNyZWF0ZShl
eGVjLnZtKCksIEpTRmluYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZShleGVjLnZtKCksIGV4ZWMu
Y2FsbGVlKCktPmdsb2JhbE9iamVjdCgpLCBqc051bGwoKSwgMSkpOworCisgICAgUmVmUHRyPFJl
YWRhYmxlSlNTdHJlYW0+IHJlYWRhYmxlU3RyZWFtID0gYWRvcHRSZWYoKm5ldyBSZWFkYWJsZUpT
U3RyZWFtKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGV4ZWMsIGpzU291cmNlKSk7CiAgICAgcmVh
ZGFibGVTdHJlYW0tPmRvU3RhcnQoZXhlYyk7CisKKyAgICBpZiAoZXhlYy5oYWRFeGNlcHRpb24o
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKICAgICByZXR1cm4gcmVhZGFibGVTdHJlYW07
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNT
dHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlSlNTdHJlYW0uaApp
bmRleCA2N2RjMGMwMDIxNTNiZTA0NzMyMzVmYzEyMDc1MGE4ZjdkNWZmYWEyLi5jNGViNDdmMmJm
ZjUyMTIwZWYwNzRhYjc0ZTNlOTkyMWRjOGNkY2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9SZWFkYWJsZUpTU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvUmVhZGFibGVKU1N0cmVhbS5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFJlYWRh
YmxlU3RyZWFtQ29udHJvbGxlcjsKIAogY2xhc3MgUmVhZGFibGVKU1N0cmVhbTogcHVibGljIFJl
YWRhYmxlU3RyZWFtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJlYWRhYmxlSlNTdHJlYW0+
IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKyAgICBz
dGF0aWMgUmVmUHRyPFJlYWRhYmxlSlNTdHJlYW0+IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSYsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIAogICAgIEpTQzo6SlNWYWx1ZSBqc0NvbnRyb2xsZXIo
SlNDOjpFeGVjU3RhdGUmLCBKU0RPTUdsb2JhbE9iamVjdCopOwogCkBAIC02MSw2ICs2MSw4IEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIGRvU3RhcnQoSlNDOjpFeGVjU3RhdGUmKTsKIAorICAgIEpT
Qzo6SlNWYWx1ZSBpbnZva2UoSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBjaGFyKik7CisKICAgICB2
aXJ0dWFsIGJvb2wgaGFzVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIEpTQzo6
SlNWYWx1ZSByZWFkKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MWI0ZTRjMzJiNGRlMjM1NzQ0OTgx
Y2IxNzU4YTEyNGM1OTQxNTUwLi5iOTExMGY0Njk2NmRmMjVhZWRjNjk2ODcwYmQyNzdkM2EzYTg2
ODY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMDYtMDggIFhhYmllciBSb2RyaWd1ZXog
Q2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4gYW5kIFlvdWVubiBGYWJsZXQgPHlvdWVubi5m
YWJsZXRAY3JmLmNhbm9uLmZyPgorCisgICAgICAgIFtTdHJlYW1zIEFQSV0gUmVhZGFibGVKU1N0
cmVhbSBzaG91bGQgaGFuZGxlIEpTIHNvdXJjZSBnZXR0ZXJzIHRoYXQgdGhyb3cKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTYwMAorCisgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogc3RyZWFtcy9yZWZlcmVuY2Ut
aW1wbGVtZW50YXRpb24vYmFkLXVuZGVybHlpbmctc291cmNlcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50YXRpb24vcmVhZGFibGUtc3RyZWFtLWV4
cGVjdGVkLnR4dDoKKwogMjAxNS0wNi0wNyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE4MTcyMCk6IFVubmVjZXNzYXJ5IGxheW91dCB0cmln
Z2VyZWQgYW55IHRpbWUgYW5pbWF0ZWQgR0lGIGFkdmFuY2VzIHRvIGEgbmV3IGZyYW1lCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9iYWQt
dW5kZXJseWluZy1zb3VyY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVm
ZXJlbmNlLWltcGxlbWVudGF0aW9uL2JhZC11bmRlcmx5aW5nLXNvdXJjZXMtZXhwZWN0ZWQudHh0
CmluZGV4IGY3MzdkNWJiY2MzZjhmZWI3M2VhZDE2MDIzNDg3ZTc4MWU1M2VhMTIuLmM3MzNjMzg3
OTQwYjMyNmYzMDQ2YTdiOGE4YWZlMGIyYWU3MjM2NjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL2JhZC11bmRlcmx5aW5nLXNvdXJjZXMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVu
dGF0aW9uL2JhZC11bmRlcmx5aW5nLXNvdXJjZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNSBA
QAogCi1GQUlMIFVuZGVybHlpbmcgc291cmNlIHN0YXJ0OiB0aHJvd2luZyBnZXR0ZXIgYXNzZXJ0
X3Rocm93czogY29uc3RydWN0aW5nIHRoZSBzdHJlYW0gc2hvdWxkIHJlLXRocm93IHRoZSBlcnJv
ciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgICAgICBuZXcgUmVhZGFibGVTdHJlYW0oewot
ICAgICAgICAgICAgZ2UuLi4iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBSZWFkYWJsZVN0cmVh
bSBjb25zdHJ1Y3RvciBvYmplY3Qgc3RhcnQgcHJvcGVyLi4uIiAoIlR5cGVFcnJvciIpIGV4cGVj
dGVkIG9iamVjdCAiRXJyb3I6IGEgdW5pcXVlIHN0cmluZyIgKCJFcnJvciIpCitQQVNTIFVuZGVy
bHlpbmcgc291cmNlIHN0YXJ0OiB0aHJvd2luZyBnZXR0ZXIgCiBQQVNTIFVuZGVybHlpbmcgc291
cmNlIHN0YXJ0OiB0aHJvd2luZyBtZXRob2QgCiBUSU1FT1VUIFVuZGVybHlpbmcgc291cmNlOiB0
aHJvd2luZyBwdWxsIGdldHRlciAoaW5pdGlhbCBwdWxsKSBUZXN0IHRpbWVkIG91dAogVElNRU9V
VCBVbmRlcmx5aW5nIHNvdXJjZTogdGhyb3dpbmcgcHVsbCBtZXRob2QgKGluaXRpYWwgcHVsbCkg
VGVzdCB0aW1lZCBvdXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNl
LWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9zdHJlYW1zL3JlZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0tZXhwZWN0
ZWQudHh0CmluZGV4IDgwMTdlMWFkNzBjZmZhZjQwNzc1NDUyYjViMDljNWJmYjRjZGUwODIuLmE1
ZWZkOWYyZjE5YzMwNGEzOTUzZTA0MDRhYTgyZTYxM2Q3ZmM3ZmQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N0cmVhbXMvcmVmZXJlbmNlLWltcGxlbWVudGF0aW9uL3JlYWRhYmxlLXN0cmVhbS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RyZWFtcy9yZWZlcmVuY2UtaW1wbGVtZW50
YXRpb24vcmVhZGFibGUtc3RyZWFtLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJ
TCBSZWFkYWJsZVN0cmVhbSBjYW4gYmUgY29uc3RydWN0ZWQgd2l0aCBubyBlcnJvcnMgUmVhZGFi
bGVTdHJlYW0gY29uc3RydWN0b3Igc2hvdWxkIGdldCBhbiBvYmplY3QgYXMgYXJndW1lbnQuCitQ
QVNTIFJlYWRhYmxlU3RyZWFtIGNhbiBiZSBjb25zdHJ1Y3RlZCB3aXRoIG5vIGVycm9ycyAKIEZB
SUwgUmVhZGFibGVTdHJlYW0gaW5zdGFuY2VzIHNob3VsZCBoYXZlIHRoZSBjb3JyZWN0IGxpc3Qg
b2YgcHJvcGVydGllcyBhc3NlcnRfYXJyYXlfZXF1YWxzOiBzaG91bGQgaGF2ZSBhbGwgdGhlIGNv
cnJlY3QgbWV0aG9kcyBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgNiBnb3QgNQogUEFTUyBSZWFk
YWJsZVN0cmVhbSBjb25zdHJ1Y3RvciBzaG91bGQgdGhyb3cgZm9yIG5vbi1mdW5jdGlvbiBzdGFy
dCBhcmd1bWVudHMgCiBQQVNTIFJlYWRhYmxlU3RyZWFtIGNvbnN0cnVjdG9yIGNhbiBnZXQgaW5p
dGlhbCBnYXJiYWdlIGFzIGNhbmNlbCBhcmd1bWVudCAK
</data>

          </attachment>
      

    </bug>

</bugzilla>