<?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>198569</bug_id>
          
          <creation_ts>2019-06-05 09:23:08 -0700</creation_ts>
          <short_desc>[GStreamer] AVC1 decoding capabilities probing support</short_desc>
          <delta_ts>2019-06-07 02:01:28 -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>Platform</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>calvaris</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1542017</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-06-05 09:23:08 -0700</bug_when>
    <thetext>The registry scanner should parse and handle &quot;avc1.profile-level-info-here&quot; codecs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542044</commentid>
    <comment_count>1</comment_count>
      <attachid>371416</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-06-05 10:01:43 -0700</bug_when>
    <thetext>Created attachment 371416
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542351</commentid>
    <comment_count>2</comment_count>
      <attachid>371416</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2019-06-06 04:36:12 -0700</bug_when>
    <thetext>Comment on attachment 371416
Patch

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

Lots of changes, event when they&apos;re purely cosmetic, I&apos;d reupload the patch for review unless you&apos;re in a hurry.

&gt; Source/WebCore/ChangeLog:13
&gt; +        the codec will be advertized as supported if it complies with the contents of

AdvertiSe, weird case of American and British spelling agreeing.

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:295
&gt; +    

Please, remove this initial space.

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:310
&gt; +bool GStreamerRegistryScanner::areInputCapsAccepted(GList* factories, GRefPtr&lt;GstCaps&gt;&amp;&amp; caps) const

It does not matter a lot, but conceptually I think it would make more sense to use const GRefPtr&lt;GstCaps&gt;&amp; and avoid moving in the caller since you don&apos;t need to take ownership of the caps, just &quot;inspecting&quot; them.

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:323
&gt; +bool GStreamerRegistryScanner::isAVC1CodecSupported(String&amp; codec) const

const String&amp;

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:326
&gt; +    long int spsAsInteger = strtol(components[1].utf8().data(), nullptr, 16);

Any reason to not use the to* methods of WTF::String?

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:327
&gt; +    guint8 sps[3];

uint8_t

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:333
&gt; +    const gchar* profile = gst_codec_utils_h264_get_profile(sps, 3);
&gt; +    const gchar* level = gst_codec_utils_h264_get_level(sps, 3);

const char*

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:336
&gt; +    if (const char* maxVideoResolution = getenv(&quot;WEBKIT_GST_MAX_AVC1_RESOLUTION&quot;)) {

g_getenv

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:337
&gt; +        guint8 levelAsInteger = gst_codec_utils_h264_get_level_idc(level);

uint8_t

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:339
&gt; +        guint8 maxLevel = 0;

ditto

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:344
&gt; +        if (!strcmp(maxVideoResolution, &quot;1080P&quot;))
&gt; +            maxLevel = 40;
&gt; +        else if (!strcmp(maxVideoResolution, &quot;720P&quot;))
&gt; +            maxLevel = 31;
&gt; +        else if (!strcmp(maxVideoResolution, &quot;480P&quot;))

g_strcmp0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542358</commentid>
    <comment_count>3</comment_count>
      <attachid>371416</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-06-06 05:21:31 -0700</bug_when>
    <thetext>Comment on attachment 371416
Patch

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

Thanks, I&apos;ve been reworking this a bit, I&apos;ll upload a new version :)

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:344
&gt;&gt; +        else if (!strcmp(maxVideoResolution, &quot;480P&quot;))
&gt; 
&gt; g_strcmp0

Why? There&apos;s a nice mix of strcmp and g_strcmp0 calls in the code currently. Here I see no reason to use g_strcmp0 because we&apos;re guaranteed maxVideoResolution is non-NULL :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542366</commentid>
    <comment_count>4</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2019-06-06 06:15:57 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #3)
&gt; &gt;&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:344
&gt; &gt;&gt; +        else if (!strcmp(maxVideoResolution, &quot;480P&quot;))
&gt; &gt; 
&gt; &gt; g_strcmp0
&gt; 
&gt; Why? There&apos;s a nice mix of strcmp and g_strcmp0 calls in the code currently.
&gt; Here I see no reason to use g_strcmp0 because we&apos;re guaranteed
&gt; maxVideoResolution is non-NULL :)

Portability, security (just in case somebody messes up without us realizing) and it is not such a huge change anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542378</commentid>
    <comment_count>5</comment_count>
      <attachid>371416</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-06-06 06:34:58 -0700</bug_when>
    <thetext>Comment on attachment 371416
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:326
&gt;&gt; +    long int spsAsInteger = strtol(components[1].utf8().data(), nullptr, 16);
&gt; 
&gt; Any reason to not use the to* methods of WTF::String?

I see no toLongInt() there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542379</commentid>
    <comment_count>6</comment_count>
      <attachid>371492</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-06-06 06:35:27 -0700</bug_when>
    <thetext>Created attachment 371492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542380</commentid>
    <comment_count>7</comment_count>
      <attachid>371493</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-06-06 06:36:59 -0700</bug_when>
    <thetext>Created attachment 371493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542398</commentid>
    <comment_count>8</comment_count>
      <attachid>371493</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2019-06-06 07:28:18 -0700</bug_when>
    <thetext>Comment on attachment 371493
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:331
&gt; +#define CHECK_H264_CAPS(capsString) do { \
&gt; +    bool supported = false; \
&gt; +    auto lookupResult = hasElementForMediaType(m_videoDecoderFactories, capsString, true); \
&gt; +    supported = lookupResult; \
&gt; +    if (shouldCheckForHardwareUse) \
&gt; +        supported = lookupResult.isUsingHardware; \
&gt; +    GST_DEBUG(&quot;%s decoding supported for codec %s: %s&quot;, shouldCheckForHardwareUse ? &quot;Hardware&quot; : &quot;Software&quot;, codec.utf8().data(), boolForPrinting(supported)); \
&gt; +    return supported; \
&gt; +} while (0)

Creating and undeffing this macro looks a bit too convoluted to me. I&apos;d either create a lambda inside this function or a static just before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542399</commentid>
    <comment_count>9</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2019-06-06 07:29:37 -0700</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #8)
&gt; Creating and undeffing this macro looks a bit too convoluted to me. I&apos;d
&gt; either create a lambda inside this function or a static just before.

Of course with a function you&apos;d have to return the value of the function, but no big deal and code looks even better cause return points are explicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542781</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-06-07 02:00:19 -0700</bug_when>
    <thetext>Committed r246194: &lt;https://trac.webkit.org/changeset/246194&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542782</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-07 02:01:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/51515570&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371416</attachid>
            <date>2019-06-05 10:01:43 -0700</date>
            <delta_ts>2019-06-06 06:35:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198569-20190605180141.patch</filename>
            <type>text/plain</type>
            <size>7178</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q0Y2NiMTAyMDE1MWRm
Yzg3YzRmZDRiYTFhZGMxYzdiMjk4MjY2NC4uMTI5NWQ4M2Q1MTlmZTg1OTg2YWVmMDc3Nzg0MTRj
ZjMyMjZmZTI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTA2LTA1ICBQaGls
aXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXSBB
VkMxIGRlY29kaW5nIGNhcGFiaWxpdGllcyBwcm9iaW5nIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODU2OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gY2FwYWJpbGl0aWVzIGZvciBh
biBhdmMxIGNvZGVjIGFyZSByZXF1ZXN0ZWQsIHRoZSByZWdpc3RyeSBzY2FubmVyIGxvb2tzCisg
ICAgICAgIGZvciBhIGNvbXBhdGlibGUgZGVjb2RlciBmb3IgdGhlIGdpdmVuIEguMjY0IHByb2Zp
bGUgYW5kIGxldmVsLgorCisgICAgICAgIFRoaXMgbmV3IGFwcHJvYWNoIGNhbiBiZSBhdm9pZGVk
IGJ5IHVzaW5nIHRoZSBXRUJLSVRfR1NUX01BWF9BVkMxX1JFU09MVVRJT04KKyAgICAgICAgZW52
aXJvbm1lbnQgdmFyaWFibGUuIElmIHN1cHBsaWVkLCB0aGUgZGVjb2RlciBjYXBhYmlsaXRpZXMg
d29uJ3QgYmUgcHJvYmVkIGFuZAorICAgICAgICB0aGUgY29kZWMgd2lsbCBiZSBhZHZlcnRpemVk
IGFzIHN1cHBvcnRlZCBpZiBpdCBjb21wbGllcyB3aXRoIHRoZSBjb250ZW50cyBvZgorICAgICAg
ICB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUuIFRoZSByZXNvbHV0aW9ucyBjdXJyZW50bHkgaGFu
ZGxlZCBhcmUgc3BlY2lmaWNhbGx5OgorICAgICAgICAxMDgwUCwgNzIwUCBhbmQgNDgwUC4gV2Ug
ZG9uJ3QgaGFuZGxlIGZyYW1lcmF0ZSBjaGVja2luZyB5ZXQsIHNvIHRoZSBpbXBsaWVkCisgICAg
ICAgIEguMjY0IGxldmVscyBhcmUgYXNzdW1lZCB0byBiZSBmb3IgMzBGUFMuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6aXNDb2RlY1N1
cHBvcnRlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJSZWdpc3RyeVNjYW5u
ZXI6OmFyZUlucHV0Q2Fwc0FjY2VwdGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJl
YW1lclJlZ2lzdHJ5U2Nhbm5lcjo6aXNBVkMxQ29kZWNTdXBwb3J0ZWQgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIu
aDoKKwogMjAxOS0wNi0wNSAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDYwNTIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlT
Y2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9H
U3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCmluZGV4IDg4MDIxODgyODllZDkyY2I4ZDA1ZjM3
OTk0ZmNiNDYyYmNjNmJjNzguLmMzM2MzYzU2NTYwNDQwZTM5MzExOWM3ODU3OTc1MjQ4NDFmODhm
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwCkBAIC0y
NCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIKICNpbmNsdWRlICJHU3RyZWFt
ZXJDb21tb24uaCIKICNpbmNsdWRlIDxmbm1hdGNoLmg+CisjaW5jbHVkZSA8Z3N0L3BidXRpbHMv
Y29kZWMtdXRpbHMuaD4KICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMjgwLDE0ICsyODEsMTggQEAgYm9vbCBHU3RyZWFtZXJSZWdpc3RyeVNj
YW5uZXI6OmlzQ29kZWNTdXBwb3J0ZWQoU3RyaW5nIGNvZGVjLCBib29sIHNob3VsZENoZWNrRm8K
ICAgICAgICAgY29kZWMgPSBjb2RlYy5zdWJzdHJpbmcoc2xhc2hJbmRleCArIDEpOwogCiAgICAg
Ym9vbCBzdXBwb3J0ZWQgPSBmYWxzZTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGl0ZW0gOiBtX2Nv
ZGVjTWFwKSB7Ci0gICAgICAgIGlmICghZm5tYXRjaChpdGVtLmtleS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpLCBjb2RlYy51dGY4KCkuZGF0YSgpLCAwKSkgewotICAgICAgICAgICAgc3VwcG9ydGVk
ID0gc2hvdWxkQ2hlY2tGb3JIYXJkd2FyZVVzZSA/IGl0ZW0udmFsdWUgOiB0cnVlOwotICAgICAg
ICAgICAgaWYgKHN1cHBvcnRlZCkKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICBpZiAoY29k
ZWMuc3RhcnRzV2l0aCgiYXZjMSIpKQorICAgICAgICBzdXBwb3J0ZWQgPSBpc0FWQzFDb2RlY1N1
cHBvcnRlZChjb2RlYyk7CisgICAgZWxzZSB7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgaXRl
bSA6IG1fY29kZWNNYXApIHsKKyAgICAgICAgICAgIGlmICghZm5tYXRjaChpdGVtLmtleS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCBjb2RlYy51dGY4KCkuZGF0YSgpLCAwKSkgeworICAgICAgICAg
ICAgICAgIHN1cHBvcnRlZCA9IHNob3VsZENoZWNrRm9ySGFyZHdhcmVVc2UgPyBpdGVtLnZhbHVl
IDogdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAoc3VwcG9ydGVkKQorICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KLQorICAgIAogICAg
IEdTVF9MT0coIkNoZWNrZWQgJXMgY29kZWMgXCIlc1wiIHN1cHBvcnRlZCAlcyIsIHNob3VsZENo
ZWNrRm9ySGFyZHdhcmVVc2UgPyAiaGFyZHdhcmUiIDogInNvZnR3YXJlIiwgY29kZWMudXRmOCgp
LmRhdGEoKSwgYm9vbEZvclByaW50aW5nKHN1cHBvcnRlZCkpOwogICAgIHJldHVybiBzdXBwb3J0
ZWQ7CiB9CkBAIC0zMDIsNiArMzA3LDY0IEBAIGJvb2wgR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVy
OjphcmVBbGxDb2RlY3NTdXBwb3J0ZWQoY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvZGVjCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjphcmVJbnB1
dENhcHNBY2NlcHRlZChHTGlzdCogZmFjdG9yaWVzLCBHUmVmUHRyPEdzdENhcHM+JiYgY2Fwcykg
Y29uc3QKK3sKKyAgICBHU1RfREVCVUcoIkxvb2tpbmcgZm9yIGEgY29tcGF0aWJsZSBlbGVtZW50
IGFjY2VwdGluZyBpbnB1dCAlIiBHU1RfUFRSX0ZPUk1BVCwgY2Fwcy5nZXQoKSk7CisgICAgZm9y
ICg7IGZhY3RvcmllczsgZmFjdG9yaWVzID0gZ19saXN0X25leHQoZmFjdG9yaWVzKSkgeworICAg
ICAgICBhdXRvKiBmYWN0b3J5ID0gcmVpbnRlcnByZXRfY2FzdDxHc3RFbGVtZW50RmFjdG9yeSo+
KGZhY3Rvcmllcy0+ZGF0YSk7CisgICAgICAgIGlmIChnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl9z
aW5rX2FueV9jYXBzKGZhY3RvcnksIGNhcHMuZ2V0KCkpKSB7CisgICAgICAgICAgICBHU1RfREVC
VUcoIkZvdW5kIGNvbXBhdGlibGUgZWxlbWVudCBmYWN0b3J5OiAlIiBHU1RfUFRSX0ZPUk1BVCwg
ZmFjdG9yeSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjppc0FW
QzFDb2RlY1N1cHBvcnRlZChTdHJpbmcmIGNvZGVjKSBjb25zdAoreworICAgIGF1dG8gY29tcG9u
ZW50cyA9IGNvZGVjLnNwbGl0KCcuJyk7CisgICAgbG9uZyBpbnQgc3BzQXNJbnRlZ2VyID0gc3Ry
dG9sKGNvbXBvbmVudHNbMV0udXRmOCgpLmRhdGEoKSwgbnVsbHB0ciwgMTYpOworICAgIGd1aW50
OCBzcHNbM107CisgICAgc3BzWzBdID0gc3BzQXNJbnRlZ2VyID4+IDE2OworICAgIHNwc1sxXSA9
IHNwc0FzSW50ZWdlciA+PiA4OworICAgIHNwc1syXSA9IHNwc0FzSW50ZWdlcjsKKworICAgIGNv
bnN0IGdjaGFyKiBwcm9maWxlID0gZ3N0X2NvZGVjX3V0aWxzX2gyNjRfZ2V0X3Byb2ZpbGUoc3Bz
LCAzKTsKKyAgICBjb25zdCBnY2hhciogbGV2ZWwgPSBnc3RfY29kZWNfdXRpbHNfaDI2NF9nZXRf
bGV2ZWwoc3BzLCAzKTsKKyAgICBHU1RfREVCVUcoIkNvZGVjICVzIHRyYW5zbGF0ZXMgdG8gSC4y
NjQgcHJvZmlsZSAlcyBhbmQgbGV2ZWwgJXMiLCBjb2RlYy51dGY4KCkuZGF0YSgpLCBwcm9maWxl
LCBsZXZlbCk7CisKKyAgICBpZiAoY29uc3QgY2hhciogbWF4VmlkZW9SZXNvbHV0aW9uID0gZ2V0
ZW52KCJXRUJLSVRfR1NUX01BWF9BVkMxX1JFU09MVVRJT04iKSkgeworICAgICAgICBndWludDgg
bGV2ZWxBc0ludGVnZXIgPSBnc3RfY29kZWNfdXRpbHNfaDI2NF9nZXRfbGV2ZWxfaWRjKGxldmVs
KTsKKyAgICAgICAgR1NUX0RFQlVHKCJNYXhpbXVtIHZpZGVvIHJlc29sdXRpb24gcmVxdWVzdGVk
OiAlcywgc3VwcGxpZWQgY29kZWMgbGV2ZWwgSURDOiAldSIsIG1heFZpZGVvUmVzb2x1dGlvbiwg
bGV2ZWxBc0ludGVnZXIpOworICAgICAgICBndWludDggbWF4TGV2ZWwgPSAwOworICAgICAgICBp
ZiAoIXN0cmNtcChtYXhWaWRlb1Jlc29sdXRpb24sICIxMDgwUCIpKQorICAgICAgICAgICAgbWF4
TGV2ZWwgPSA0MDsKKyAgICAgICAgZWxzZSBpZiAoIXN0cmNtcChtYXhWaWRlb1Jlc29sdXRpb24s
ICI3MjBQIikpCisgICAgICAgICAgICBtYXhMZXZlbCA9IDMxOworICAgICAgICBlbHNlIGlmICgh
c3RyY21wKG1heFZpZGVvUmVzb2x1dGlvbiwgIjQ4MFAiKSkKKyAgICAgICAgICAgIG1heExldmVs
ID0gMzA7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEdTVF9XQVJOSU5HKCJJbnZhbGlkIHZh
bHVlIGZvciBXRUJLSVRfR1NUX01BWF9BVkMxX1JFU09MVVRJT04uIEN1cnJlbnRseSBzdXBwb3J0
ZWQsIDEwODBQLCA3MjBQIGFuZCA0ODBQLiIpOworICAgICAgICBib29sIHN1cHBvcnRlZCA9IG1h
eExldmVsICYmIGxldmVsQXNJbnRlZ2VyICYmIGxldmVsQXNJbnRlZ2VyIDw9IG1heExldmVsOwor
ICAgICAgICBHU1RfREVCVUcoIkRlY29kaW5nIHN1cHBvcnRlZCBmb3IgY29kZWMgJXM6ICVzIiwg
Y29kZWMudXRmOCgpLmRhdGEoKSwgYm9vbEZvclByaW50aW5nKHN1cHBvcnRlZCkpOworICAgICAg
ICByZXR1cm4gc3VwcG9ydGVkOworICAgIH0KKworICAgIGlmICh3ZWJraXRHc3RDaGVja1ZlcnNp
b24oMSwgMTcsIDApKSB7CisgICAgICAgIEdTVF9ERUJVRygiQ2hlY2tpbmcgdmlkZW8gZGVjb2Rl
cnMgZm9yIGNvbnN0cmFpbmVkIGNhcHMiKTsKKyAgICAgICAgYXV0byBjYXBzID0gYWRvcHRHUmVm
KGdzdF9jYXBzX25ld19zaW1wbGUoInZpZGVvL3gtaDI2NCIsICJsZXZlbCIsIEdfVFlQRV9TVFJJ
TkcsIGxldmVsLCAicHJvZmlsZSIsIEdfVFlQRV9TVFJJTkcsIHByb2ZpbGUsIG51bGxwdHIpKTsK
KyAgICAgICAgaWYgKGFyZUlucHV0Q2Fwc0FjY2VwdGVkKG1fdmlkZW9EZWNvZGVyRmFjdG9yaWVz
LCBXVEZNb3ZlKGNhcHMpKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAg
IEdTVF9ERUJVRygiRmFsbGluZyBiYWNrIHRvIHVuY29uc3RyYWluZWQgY2FwcyIpOworICAgIGF1
dG8gdW5jb25zdHJhaW5lZENhcHMgPSBhZG9wdEdSZWYoZ3N0X2NhcHNfbmV3X2VtcHR5X3NpbXBs
ZSgidmlkZW8veC1oMjY0IikpOworICAgIGlmIChhcmVJbnB1dENhcHNBY2NlcHRlZChtX3ZpZGVv
RGVjb2RlckZhY3RvcmllcywgV1RGTW92ZSh1bmNvbnN0cmFpbmVkQ2FwcykpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKwogR1N0cmVhbWVyUmVnaXN0cnlT
Y2FubmVyOjpSZWdpc3RyeUxvb2t1cFJlc3VsdCBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6Omlz
RGVjb2RpbmdTdXBwb3J0ZWQoTWVkaWFDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKSBjb25z
dAogewogICAgIGJvb2wgaXNTdXBwb3J0ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5u
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFt
ZXJSZWdpc3RyeVNjYW5uZXIuaAppbmRleCAzODEwNTkyMjc5YWFkZDJkMmFkOGNhMTM4MWYzMmJi
N2M3OTE1NTU0Li44NzI1ZWQwZGMzNDJlY2RiN2M5NmIyMjIyOTAyMzkzMzEzYjAwNDk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVh
bWVyUmVnaXN0cnlTY2FubmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5oCkBAIC0yMSw2ICsyMSw3IEBA
CiAKICNpZiBVU0UoR1NUUkVBTUVSKQogCisjaW5jbHVkZSAiR1JlZlB0ckdTdHJlYW1lci5oIgog
I2luY2x1ZGUgIk1lZGlhQ29uZmlndXJhdGlvbi5oIgogCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KQEAgLTUzLDYgKzU0LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNDb2RlY1N1cHBvcnRlZChT
dHJpbmcgY29kZWMsIGJvb2wgdXNpbmdIYXJkd2FyZSA9IGZhbHNlKSBjb25zdDsKICAgICBib29s
IGFyZUFsbENvZGVjc1N1cHBvcnRlZChjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29kZWNzLCBib29s
IHNob3VsZENoZWNrRm9ySGFyZHdhcmVVc2UgPSBmYWxzZSkgY29uc3Q7CiAKKyAgICBib29sIGFy
ZUlucHV0Q2Fwc0FjY2VwdGVkKEdMaXN0KiBmYWN0b3JpZXMsIEdSZWZQdHI8R3N0Q2Fwcz4mJikg
Y29uc3Q7CisgICAgYm9vbCBpc0FWQzFDb2RlY1N1cHBvcnRlZChTdHJpbmcmIGNvZGVjKSBjb25z
dDsKKwogcHJvdGVjdGVkOgogICAgIEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcihib29sIGlzTWVk
aWFTb3VyY2UgPSBmYWxzZSk7CiAgICAgfkdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371492</attachid>
            <date>2019-06-06 06:35:27 -0700</date>
            <delta_ts>2019-06-06 06:36:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198569-20190606143526.patch</filename>
            <type>text/plain</type>
            <size>7686</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2YyNmIwZGM3N2VmNzJj
NDIwZDNhNjE0NGNhNjViZDU3ZTA0NWM3Yi4uMzgzNDkzMzQ4MzAzYTRlMmJmMWMzMmUzNDg1ODVh
OWIzNWMxNTQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTA2LTA1ICBQaGls
aXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXSBB
VkMxIGRlY29kaW5nIGNhcGFiaWxpdGllcyBwcm9iaW5nIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODU2OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gY2FwYWJpbGl0aWVzIGZvciBh
biBhdmMxIGNvZGVjIGFyZSByZXF1ZXN0ZWQsIHRoZSByZWdpc3RyeSBzY2FubmVyIGxvb2tzCisg
ICAgICAgIGZvciBhIGNvbXBhdGlibGUgZGVjb2RlciBmb3IgdGhlIGdpdmVuIEguMjY0IHByb2Zp
bGUgYW5kIGxldmVsLgorCisgICAgICAgIFRoaXMgbmV3IGFwcHJvYWNoIGNhbiBiZSBhdm9pZGVk
IGJ5IHVzaW5nIHRoZSBXRUJLSVRfR1NUX01BWF9BVkMxX1JFU09MVVRJT04KKyAgICAgICAgZW52
aXJvbm1lbnQgdmFyaWFibGUuIElmIHN1cHBsaWVkLCB0aGUgZGVjb2RlciBjYXBhYmlsaXRpZXMg
d29uJ3QgYmUgcHJvYmVkIGFuZAorICAgICAgICB0aGUgY29kZWMgd2lsbCBiZSBhZHZlcnRpc2Vk
IGFzIHN1cHBvcnRlZCBpZiBpdCBjb21wbGllcyB3aXRoIHRoZSBjb250ZW50cyBvZgorICAgICAg
ICB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUuIFRoZSByZXNvbHV0aW9ucyBjdXJyZW50bHkgaGFu
ZGxlZCBhcmUgc3BlY2lmaWNhbGx5OgorICAgICAgICAxMDgwUCwgNzIwUCBhbmQgNDgwUC4gV2Ug
ZG9uJ3QgaGFuZGxlIGZyYW1lcmF0ZSBjaGVja2luZyB5ZXQsIHNvIHRoZSBpbXBsaWVkCisgICAg
ICAgIEguMjY0IGxldmVscyBhcmUgYXNzdW1lZCB0byBiZSBmb3IgMzBGUFMuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6aXNDb2RlY1N1
cHBvcnRlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJSZWdpc3RyeVNjYW5u
ZXI6OmFyZUlucHV0Q2Fwc0FjY2VwdGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJl
YW1lclJlZ2lzdHJ5U2Nhbm5lcjo6aXNBVkMxQ29kZWNTdXBwb3J0ZWQgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIu
aDoKKwogMjAxOS0wNi0wNSAgVGFrYXNoaSBLb21vcmkgIDxUYWthc2hpLktvbW9yaUBzb255LmNv
bT4KIAogICAgICAgICBbQ3VybF0gUmVwb3J0IGFsbCByZXF1ZXN0IGhlYWRlcnMgdG8gd2ViIGlu
c3BlY3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5k
ZXggODgwMjE4ODI4OWVkOTJjYjhkMDVmMzc5OTRmY2I0NjJiY2M2YmM3OC4uNjkzZjk0YWVkYzA2
YTQ1Mjk0NDAxNjAwYmQwZjE1ZmUxMjQzYTNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1l
clJlZ2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJDb250ZW50
VHlwZS5oIgogI2luY2x1ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgPGZubWF0Y2gu
aD4KKyNpbmNsdWRlIDxnc3QvcGJ1dGlscy9jb2RlYy11dGlscy5oPgogI2luY2x1ZGUgPHd0Zi9Q
cmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02Niw3ICs2Nyw3IEBAIEdT
dHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6fkdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcigpCiAgICAg
Z3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZShtX2RlbXV4ZXJGYWN0b3JpZXMpOwogfQogCi1H
U3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lcjo6aGFzRWxlbWVudEZvck1lZGlhVHlwZShHTGlzdCogZWxlbWVudEZhY3Rv
cmllcywgY29uc3QgY2hhciogY2Fwc1N0cmluZywgYm9vbCBzaG91bGRDaGVja0hhcmR3YXJlQ2xh
c3NpZmllcikKK0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6UmVnaXN0cnlMb29rdXBSZXN1bHQg
R1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpoYXNFbGVtZW50Rm9yTWVkaWFUeXBlKEdMaXN0KiBl
bGVtZW50RmFjdG9yaWVzLCBjb25zdCBjaGFyKiBjYXBzU3RyaW5nLCBib29sIHNob3VsZENoZWNr
SGFyZHdhcmVDbGFzc2lmaWVyKSBjb25zdAogewogICAgIEdSZWZQdHI8R3N0Q2Fwcz4gY2FwcyA9
IGFkb3B0R1JlZihnc3RfY2Fwc19mcm9tX3N0cmluZyhjYXBzU3RyaW5nKSk7CiAgICAgR0xpc3Qq
IGNhbmRpZGF0ZXMgPSBnc3RfZWxlbWVudF9mYWN0b3J5X2xpc3RfZmlsdGVyKGVsZW1lbnRGYWN0
b3JpZXMsIGNhcHMuZ2V0KCksIEdTVF9QQURfU0lOSywgZmFsc2UpOwpAQCAtMjgwLDExICsyODEs
MTUgQEAgYm9vbCBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OmlzQ29kZWNTdXBwb3J0ZWQoU3Ry
aW5nIGNvZGVjLCBib29sIHNob3VsZENoZWNrRm8KICAgICAgICAgY29kZWMgPSBjb2RlYy5zdWJz
dHJpbmcoc2xhc2hJbmRleCArIDEpOwogCiAgICAgYm9vbCBzdXBwb3J0ZWQgPSBmYWxzZTsKLSAg
ICBmb3IgKGNvbnN0IGF1dG8mIGl0ZW0gOiBtX2NvZGVjTWFwKSB7Ci0gICAgICAgIGlmICghZm5t
YXRjaChpdGVtLmtleS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBjb2RlYy51dGY4KCkuZGF0YSgp
LCAwKSkgewotICAgICAgICAgICAgc3VwcG9ydGVkID0gc2hvdWxkQ2hlY2tGb3JIYXJkd2FyZVVz
ZSA/IGl0ZW0udmFsdWUgOiB0cnVlOwotICAgICAgICAgICAgaWYgKHN1cHBvcnRlZCkKLSAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICBpZiAoY29kZWMuc3RhcnRzV2l0aCgiYXZjMSIpKQorICAg
ICAgICBzdXBwb3J0ZWQgPSBpc0FWQzFDb2RlY1N1cHBvcnRlZChjb2RlYywgc2hvdWxkQ2hlY2tG
b3JIYXJkd2FyZVVzZSk7CisgICAgZWxzZSB7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgaXRl
bSA6IG1fY29kZWNNYXApIHsKKyAgICAgICAgICAgIGlmICghZm5tYXRjaChpdGVtLmtleS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCBjb2RlYy51dGY4KCkuZGF0YSgpLCAwKSkgeworICAgICAgICAg
ICAgICAgIHN1cHBvcnRlZCA9IHNob3VsZENoZWNrRm9ySGFyZHdhcmVVc2UgPyBpdGVtLnZhbHVl
IDogdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAoc3VwcG9ydGVkKQorICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApAQCAtMzAyLDYg
KzMwNyw2NCBAQCBib29sIEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6YXJlQWxsQ29kZWNzU3Vw
cG9ydGVkKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb2RlYwogICAgIHJldHVybiB0cnVlOwogfQog
Citib29sIEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6aXNBVkMxQ29kZWNTdXBwb3J0ZWQoY29u
c3QgU3RyaW5nJiBjb2RlYywgYm9vbCBzaG91bGRDaGVja0ZvckhhcmR3YXJlVXNlKSBjb25zdAor
eworICAgIGF1dG8gY29tcG9uZW50cyA9IGNvZGVjLnNwbGl0KCcuJyk7CisgICAgbG9uZyBpbnQg
c3BzQXNJbnRlZ2VyID0gc3RydG9sKGNvbXBvbmVudHNbMV0udXRmOCgpLmRhdGEoKSwgbnVsbHB0
ciwgMTYpOworICAgIHVpbnQ4X3Qgc3BzWzNdOworICAgIHNwc1swXSA9IHNwc0FzSW50ZWdlciA+
PiAxNjsKKyAgICBzcHNbMV0gPSBzcHNBc0ludGVnZXIgPj4gODsKKyAgICBzcHNbMl0gPSBzcHNB
c0ludGVnZXI7CisKKyAgICBjb25zdCBjaGFyKiBwcm9maWxlID0gZ3N0X2NvZGVjX3V0aWxzX2gy
NjRfZ2V0X3Byb2ZpbGUoc3BzLCAzKTsKKyAgICBjb25zdCBjaGFyKiBsZXZlbCA9IGdzdF9jb2Rl
Y191dGlsc19oMjY0X2dldF9sZXZlbChzcHMsIDMpOworICAgIEdTVF9ERUJVRygiQ29kZWMgJXMg
dHJhbnNsYXRlcyB0byBILjI2NCBwcm9maWxlICVzIGFuZCBsZXZlbCAlcyIsIGNvZGVjLnV0Zjgo
KS5kYXRhKCksIHByb2ZpbGUsIGxldmVsKTsKKworI2RlZmluZSBDSEVDS19IMjY0X0NBUFMoY2Fw
c1N0cmluZykgZG8geyBcCisgICAgYm9vbCBzdXBwb3J0ZWQgPSBmYWxzZTsgXAorICAgIGF1dG8g
bG9va3VwUmVzdWx0ID0gaGFzRWxlbWVudEZvck1lZGlhVHlwZShtX3ZpZGVvRGVjb2RlckZhY3Rv
cmllcywgY2Fwc1N0cmluZywgdHJ1ZSk7IFwKKyAgICBzdXBwb3J0ZWQgPSBsb29rdXBSZXN1bHQ7
IFwKKyAgICBpZiAoc2hvdWxkQ2hlY2tGb3JIYXJkd2FyZVVzZSkgXAorICAgICAgICBzdXBwb3J0
ZWQgPSBsb29rdXBSZXN1bHQuaXNVc2luZ0hhcmR3YXJlOyBcCisgICAgR1NUX0RFQlVHKCIlcyBk
ZWNvZGluZyBzdXBwb3J0ZWQgZm9yIGNvZGVjICVzOiAlcyIsIHNob3VsZENoZWNrRm9ySGFyZHdh
cmVVc2UgPyAiSGFyZHdhcmUiIDogIlNvZnR3YXJlIiwgY29kZWMudXRmOCgpLmRhdGEoKSwgYm9v
bEZvclByaW50aW5nKHN1cHBvcnRlZCkpOyBcCisgICAgcmV0dXJuIHN1cHBvcnRlZDsgXAorfSB3
aGlsZSAoMCkKKworICAgIGlmIChjb25zdCBjaGFyKiBtYXhWaWRlb1Jlc29sdXRpb24gPSBnX2dl
dGVudigiV0VCS0lUX0dTVF9NQVhfQVZDMV9SRVNPTFVUSU9OIikpIHsKKyAgICAgICAgdWludDhf
dCBsZXZlbEFzSW50ZWdlciA9IGdzdF9jb2RlY191dGlsc19oMjY0X2dldF9sZXZlbF9pZGMobGV2
ZWwpOworICAgICAgICBHU1RfREVCVUcoIk1heGltdW0gdmlkZW8gcmVzb2x1dGlvbiByZXF1ZXN0
ZWQ6ICVzLCBzdXBwbGllZCBjb2RlYyBsZXZlbCBJREM6ICV1IiwgbWF4VmlkZW9SZXNvbHV0aW9u
LCBsZXZlbEFzSW50ZWdlcik7CisgICAgICAgIHVpbnQ4X3QgbWF4TGV2ZWwgPSAwOworICAgICAg
ICBjb25zdCBjaGFyKiBtYXhMZXZlbFN0cmluZyA9ICIiOworICAgICAgICBpZiAoIWdfc3RyY21w
MChtYXhWaWRlb1Jlc29sdXRpb24sICIxMDgwUCIpKSB7CisgICAgICAgICAgICBtYXhMZXZlbCA9
IDQwOworICAgICAgICAgICAgbWF4TGV2ZWxTdHJpbmcgPSAiNCI7CisgICAgICAgIH0gZWxzZSBp
ZiAoIWdfc3RyY21wMChtYXhWaWRlb1Jlc29sdXRpb24sICI3MjBQIikpIHsKKyAgICAgICAgICAg
IG1heExldmVsID0gMzE7CisgICAgICAgICAgICBtYXhMZXZlbFN0cmluZyA9ICIzLjEiOworICAg
ICAgICB9IGVsc2UgaWYgKCFnX3N0cmNtcDAobWF4VmlkZW9SZXNvbHV0aW9uLCAiNDgwUCIpKSB7
CisgICAgICAgICAgICBtYXhMZXZlbCA9IDMwOworICAgICAgICAgICAgbWF4TGV2ZWxTdHJpbmcg
PSAiMyI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBnX3dhcm5pbmcoIkludmFsaWQg
dmFsdWUgZm9yIFdFQktJVF9HU1RfTUFYX0FWQzFfUkVTT0xVVElPTi4gQ3VycmVudGx5IHN1cHBv
cnRlZCwgMTA4MFAsIDcyMFAgYW5kIDQ4MFAuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIH0KKyAgICAgICAgaWYgKGxldmVsQXNJbnRlZ2VyID4gbWF4TGV2ZWwpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIENIRUNLX0gyNjRfQ0FQUyhtYWtlU3RyaW5n
KCJ2aWRlby94LWgyNjQsIGxldmVsPShzdHJpbmcpIiwgbWF4TGV2ZWxTdHJpbmcpLnV0ZjgoKS5k
YXRhKCkpOworICAgIH0KKworICAgIGlmICh3ZWJraXRHc3RDaGVja1ZlcnNpb24oMSwgMTcsIDAp
KSB7CisgICAgICAgIEdTVF9ERUJVRygiQ2hlY2tpbmcgdmlkZW8gZGVjb2RlcnMgZm9yIGNvbnN0
cmFpbmVkIGNhcHMiKTsKKyAgICAgICAgQ0hFQ0tfSDI2NF9DQVBTKG1ha2VTdHJpbmcoInZpZGVv
L3gtaDI2NCwgbGV2ZWw9KHN0cmluZykiLCBsZXZlbCwgIiwgcHJvZmlsZT0oc3RyaW5nKSIsIHBy
b2ZpbGUpLnV0ZjgoKS5kYXRhKCkpOworICAgIH0KKworICAgIEdTVF9ERUJVRygiRmFsbGluZyBi
YWNrIHRvIHVuY29uc3RyYWluZWQgY2FwcyIpOworICAgIENIRUNLX0gyNjRfQ0FQUygidmlkZW8v
eC1oMjY0Iik7CisgICAgcmV0dXJuIGZhbHNlOworCisjdW5kZWYgQ0hFQ0tfSDI2NF9DQVBTCit9
CisKIEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6UmVnaXN0cnlMb29rdXBSZXN1bHQgR1N0cmVh
bWVyUmVnaXN0cnlTY2FubmVyOjppc0RlY29kaW5nU3VwcG9ydGVkKE1lZGlhQ29uZmlndXJhdGlv
biYgY29uZmlndXJhdGlvbikgY29uc3QKIHsKICAgICBib29sIGlzU3VwcG9ydGVkID0gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmgKaW5kZXggMzgxMDU5MjI3
OWFhZGQyZDJhZDhjYTEzODFmMzJiYjdjNzkxNTU1NC4uOGVjMDI0NzE3MzIxZjllZjQzNWQ5ODhm
YzU5MmVhYjRkODE2NDY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5u
ZXIuaApAQCAtMjEsNiArMjEsNyBAQAogCiAjaWYgVVNFKEdTVFJFQU1FUikKIAorI2luY2x1ZGUg
IkdSZWZQdHJHU3RyZWFtZXIuaCIKICNpbmNsdWRlICJNZWRpYUNvbmZpZ3VyYXRpb24uaCIKIAog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC03Miw3ICs3Myw5IEBAIHByb3RlY3RlZDoKICAg
ICB9OwogICAgIHZvaWQgZmlsbE1pbWVUeXBlU2V0RnJvbUNhcHNNYXBwaW5nKFZlY3RvcjxHc3RD
YXBzV2ViS2l0TWFwcGluZz4mKTsKIAotICAgIFJlZ2lzdHJ5TG9va3VwUmVzdWx0IGhhc0VsZW1l
bnRGb3JNZWRpYVR5cGUoR0xpc3QqIGVsZW1lbnRGYWN0b3JpZXMsIGNvbnN0IGNoYXIqIGNhcHNT
dHJpbmcsIGJvb2wgc2hvdWxkQ2hlY2tIYXJkd2FyZUNsYXNzaWZpZXIgPSBmYWxzZSk7CisgICAg
UmVnaXN0cnlMb29rdXBSZXN1bHQgaGFzRWxlbWVudEZvck1lZGlhVHlwZShHTGlzdCogZWxlbWVu
dEZhY3RvcmllcywgY29uc3QgY2hhciogY2Fwc1N0cmluZywgYm9vbCBzaG91bGRDaGVja0hhcmR3
YXJlQ2xhc3NpZmllciA9IGZhbHNlKSBjb25zdDsKKworICAgIGJvb2wgaXNBVkMxQ29kZWNTdXBw
b3J0ZWQoY29uc3QgU3RyaW5nJiBjb2RlYywgYm9vbCBzaG91bGRDaGVja0ZvckhhcmR3YXJlVXNl
KSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBib29sIG1faXNNZWRpYVNvdXJjZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371493</attachid>
            <date>2019-06-06 06:36:59 -0700</date>
            <delta_ts>2019-06-06 07:28:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198569-20190606143658.patch</filename>
            <type>text/plain</type>
            <size>7552</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2YyNmIwZGM3N2VmNzJj
NDIwZDNhNjE0NGNhNjViZDU3ZTA0NWM3Yi4uMzgzNDkzMzQ4MzAzYTRlMmJmMWMzMmUzNDg1ODVh
OWIzNWMxNTQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTA2LTA1ICBQaGls
aXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXSBB
VkMxIGRlY29kaW5nIGNhcGFiaWxpdGllcyBwcm9iaW5nIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODU2OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gY2FwYWJpbGl0aWVzIGZvciBh
biBhdmMxIGNvZGVjIGFyZSByZXF1ZXN0ZWQsIHRoZSByZWdpc3RyeSBzY2FubmVyIGxvb2tzCisg
ICAgICAgIGZvciBhIGNvbXBhdGlibGUgZGVjb2RlciBmb3IgdGhlIGdpdmVuIEguMjY0IHByb2Zp
bGUgYW5kIGxldmVsLgorCisgICAgICAgIFRoaXMgbmV3IGFwcHJvYWNoIGNhbiBiZSBhdm9pZGVk
IGJ5IHVzaW5nIHRoZSBXRUJLSVRfR1NUX01BWF9BVkMxX1JFU09MVVRJT04KKyAgICAgICAgZW52
aXJvbm1lbnQgdmFyaWFibGUuIElmIHN1cHBsaWVkLCB0aGUgZGVjb2RlciBjYXBhYmlsaXRpZXMg
d29uJ3QgYmUgcHJvYmVkIGFuZAorICAgICAgICB0aGUgY29kZWMgd2lsbCBiZSBhZHZlcnRpc2Vk
IGFzIHN1cHBvcnRlZCBpZiBpdCBjb21wbGllcyB3aXRoIHRoZSBjb250ZW50cyBvZgorICAgICAg
ICB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUuIFRoZSByZXNvbHV0aW9ucyBjdXJyZW50bHkgaGFu
ZGxlZCBhcmUgc3BlY2lmaWNhbGx5OgorICAgICAgICAxMDgwUCwgNzIwUCBhbmQgNDgwUC4gV2Ug
ZG9uJ3QgaGFuZGxlIGZyYW1lcmF0ZSBjaGVja2luZyB5ZXQsIHNvIHRoZSBpbXBsaWVkCisgICAg
ICAgIEguMjY0IGxldmVscyBhcmUgYXNzdW1lZCB0byBiZSBmb3IgMzBGUFMuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6aXNDb2RlY1N1
cHBvcnRlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHU3RyZWFtZXJSZWdpc3RyeVNjYW5u
ZXI6OmFyZUlucHV0Q2Fwc0FjY2VwdGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJl
YW1lclJlZ2lzdHJ5U2Nhbm5lcjo6aXNBVkMxQ29kZWNTdXBwb3J0ZWQgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIu
aDoKKwogMjAxOS0wNi0wNSAgVGFrYXNoaSBLb21vcmkgIDxUYWthc2hpLktvbW9yaUBzb255LmNv
bT4KIAogICAgICAgICBbQ3VybF0gUmVwb3J0IGFsbCByZXF1ZXN0IGhlYWRlcnMgdG8gd2ViIGlu
c3BlY3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAKaW5k
ZXggODgwMjE4ODI4OWVkOTJjYjhkMDVmMzc5OTRmY2I0NjJiY2M2YmM3OC4uNjkzZjk0YWVkYzA2
YTQ1Mjk0NDAxNjAwYmQwZjE1ZmUxMjQzYTNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1l
clJlZ2lzdHJ5U2Nhbm5lci5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJDb250ZW50
VHlwZS5oIgogI2luY2x1ZGUgIkdTdHJlYW1lckNvbW1vbi5oIgogI2luY2x1ZGUgPGZubWF0Y2gu
aD4KKyNpbmNsdWRlIDxnc3QvcGJ1dGlscy9jb2RlYy11dGlscy5oPgogI2luY2x1ZGUgPHd0Zi9Q
cmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02Niw3ICs2Nyw3IEBAIEdT
dHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6fkdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcigpCiAgICAg
Z3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZShtX2RlbXV4ZXJGYWN0b3JpZXMpOwogfQogCi1H
U3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OlJlZ2lzdHJ5TG9va3VwUmVzdWx0IEdTdHJlYW1lclJl
Z2lzdHJ5U2Nhbm5lcjo6aGFzRWxlbWVudEZvck1lZGlhVHlwZShHTGlzdCogZWxlbWVudEZhY3Rv
cmllcywgY29uc3QgY2hhciogY2Fwc1N0cmluZywgYm9vbCBzaG91bGRDaGVja0hhcmR3YXJlQ2xh
c3NpZmllcikKK0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6UmVnaXN0cnlMb29rdXBSZXN1bHQg
R1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyOjpoYXNFbGVtZW50Rm9yTWVkaWFUeXBlKEdMaXN0KiBl
bGVtZW50RmFjdG9yaWVzLCBjb25zdCBjaGFyKiBjYXBzU3RyaW5nLCBib29sIHNob3VsZENoZWNr
SGFyZHdhcmVDbGFzc2lmaWVyKSBjb25zdAogewogICAgIEdSZWZQdHI8R3N0Q2Fwcz4gY2FwcyA9
IGFkb3B0R1JlZihnc3RfY2Fwc19mcm9tX3N0cmluZyhjYXBzU3RyaW5nKSk7CiAgICAgR0xpc3Qq
IGNhbmRpZGF0ZXMgPSBnc3RfZWxlbWVudF9mYWN0b3J5X2xpc3RfZmlsdGVyKGVsZW1lbnRGYWN0
b3JpZXMsIGNhcHMuZ2V0KCksIEdTVF9QQURfU0lOSywgZmFsc2UpOwpAQCAtMjgwLDExICsyODEs
MTUgQEAgYm9vbCBHU3RyZWFtZXJSZWdpc3RyeVNjYW5uZXI6OmlzQ29kZWNTdXBwb3J0ZWQoU3Ry
aW5nIGNvZGVjLCBib29sIHNob3VsZENoZWNrRm8KICAgICAgICAgY29kZWMgPSBjb2RlYy5zdWJz
dHJpbmcoc2xhc2hJbmRleCArIDEpOwogCiAgICAgYm9vbCBzdXBwb3J0ZWQgPSBmYWxzZTsKLSAg
ICBmb3IgKGNvbnN0IGF1dG8mIGl0ZW0gOiBtX2NvZGVjTWFwKSB7Ci0gICAgICAgIGlmICghZm5t
YXRjaChpdGVtLmtleS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBjb2RlYy51dGY4KCkuZGF0YSgp
LCAwKSkgewotICAgICAgICAgICAgc3VwcG9ydGVkID0gc2hvdWxkQ2hlY2tGb3JIYXJkd2FyZVVz
ZSA/IGl0ZW0udmFsdWUgOiB0cnVlOwotICAgICAgICAgICAgaWYgKHN1cHBvcnRlZCkKLSAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICBpZiAoY29kZWMuc3RhcnRzV2l0aCgiYXZjMSIpKQorICAg
ICAgICBzdXBwb3J0ZWQgPSBpc0FWQzFDb2RlY1N1cHBvcnRlZChjb2RlYywgc2hvdWxkQ2hlY2tG
b3JIYXJkd2FyZVVzZSk7CisgICAgZWxzZSB7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgaXRl
bSA6IG1fY29kZWNNYXApIHsKKyAgICAgICAgICAgIGlmICghZm5tYXRjaChpdGVtLmtleS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCBjb2RlYy51dGY4KCkuZGF0YSgpLCAwKSkgeworICAgICAgICAg
ICAgICAgIHN1cHBvcnRlZCA9IHNob3VsZENoZWNrRm9ySGFyZHdhcmVVc2UgPyBpdGVtLnZhbHVl
IDogdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAoc3VwcG9ydGVkKQorICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApAQCAtMzAyLDYg
KzMwNyw2NCBAQCBib29sIEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6YXJlQWxsQ29kZWNzU3Vw
cG9ydGVkKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb2RlYwogICAgIHJldHVybiB0cnVlOwogfQog
Citib29sIEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6aXNBVkMxQ29kZWNTdXBwb3J0ZWQoY29u
c3QgU3RyaW5nJiBjb2RlYywgYm9vbCBzaG91bGRDaGVja0ZvckhhcmR3YXJlVXNlKSBjb25zdAor
eworICAgIGF1dG8gY29tcG9uZW50cyA9IGNvZGVjLnNwbGl0KCcuJyk7CisgICAgbG9uZyBpbnQg
c3BzQXNJbnRlZ2VyID0gc3RydG9sKGNvbXBvbmVudHNbMV0udXRmOCgpLmRhdGEoKSwgbnVsbHB0
ciwgMTYpOworICAgIHVpbnQ4X3Qgc3BzWzNdOworICAgIHNwc1swXSA9IHNwc0FzSW50ZWdlciA+
PiAxNjsKKyAgICBzcHNbMV0gPSBzcHNBc0ludGVnZXIgPj4gODsKKyAgICBzcHNbMl0gPSBzcHNB
c0ludGVnZXI7CisKKyAgICBjb25zdCBjaGFyKiBwcm9maWxlID0gZ3N0X2NvZGVjX3V0aWxzX2gy
NjRfZ2V0X3Byb2ZpbGUoc3BzLCAzKTsKKyAgICBjb25zdCBjaGFyKiBsZXZlbCA9IGdzdF9jb2Rl
Y191dGlsc19oMjY0X2dldF9sZXZlbChzcHMsIDMpOworICAgIEdTVF9ERUJVRygiQ29kZWMgJXMg
dHJhbnNsYXRlcyB0byBILjI2NCBwcm9maWxlICVzIGFuZCBsZXZlbCAlcyIsIGNvZGVjLnV0Zjgo
KS5kYXRhKCksIHByb2ZpbGUsIGxldmVsKTsKKworI2RlZmluZSBDSEVDS19IMjY0X0NBUFMoY2Fw
c1N0cmluZykgZG8geyBcCisgICAgYm9vbCBzdXBwb3J0ZWQgPSBmYWxzZTsgXAorICAgIGF1dG8g
bG9va3VwUmVzdWx0ID0gaGFzRWxlbWVudEZvck1lZGlhVHlwZShtX3ZpZGVvRGVjb2RlckZhY3Rv
cmllcywgY2Fwc1N0cmluZywgdHJ1ZSk7IFwKKyAgICBzdXBwb3J0ZWQgPSBsb29rdXBSZXN1bHQ7
IFwKKyAgICBpZiAoc2hvdWxkQ2hlY2tGb3JIYXJkd2FyZVVzZSkgXAorICAgICAgICBzdXBwb3J0
ZWQgPSBsb29rdXBSZXN1bHQuaXNVc2luZ0hhcmR3YXJlOyBcCisgICAgR1NUX0RFQlVHKCIlcyBk
ZWNvZGluZyBzdXBwb3J0ZWQgZm9yIGNvZGVjICVzOiAlcyIsIHNob3VsZENoZWNrRm9ySGFyZHdh
cmVVc2UgPyAiSGFyZHdhcmUiIDogIlNvZnR3YXJlIiwgY29kZWMudXRmOCgpLmRhdGEoKSwgYm9v
bEZvclByaW50aW5nKHN1cHBvcnRlZCkpOyBcCisgICAgcmV0dXJuIHN1cHBvcnRlZDsgXAorfSB3
aGlsZSAoMCkKKworICAgIGlmIChjb25zdCBjaGFyKiBtYXhWaWRlb1Jlc29sdXRpb24gPSBnX2dl
dGVudigiV0VCS0lUX0dTVF9NQVhfQVZDMV9SRVNPTFVUSU9OIikpIHsKKyAgICAgICAgdWludDhf
dCBsZXZlbEFzSW50ZWdlciA9IGdzdF9jb2RlY191dGlsc19oMjY0X2dldF9sZXZlbF9pZGMobGV2
ZWwpOworICAgICAgICBHU1RfREVCVUcoIk1heGltdW0gdmlkZW8gcmVzb2x1dGlvbiByZXF1ZXN0
ZWQ6ICVzLCBzdXBwbGllZCBjb2RlYyBsZXZlbCBJREM6ICV1IiwgbWF4VmlkZW9SZXNvbHV0aW9u
LCBsZXZlbEFzSW50ZWdlcik7CisgICAgICAgIHVpbnQ4X3QgbWF4TGV2ZWwgPSAwOworICAgICAg
ICBjb25zdCBjaGFyKiBtYXhMZXZlbFN0cmluZyA9ICIiOworICAgICAgICBpZiAoIWdfc3RyY21w
MChtYXhWaWRlb1Jlc29sdXRpb24sICIxMDgwUCIpKSB7CisgICAgICAgICAgICBtYXhMZXZlbCA9
IDQwOworICAgICAgICAgICAgbWF4TGV2ZWxTdHJpbmcgPSAiNCI7CisgICAgICAgIH0gZWxzZSBp
ZiAoIWdfc3RyY21wMChtYXhWaWRlb1Jlc29sdXRpb24sICI3MjBQIikpIHsKKyAgICAgICAgICAg
IG1heExldmVsID0gMzE7CisgICAgICAgICAgICBtYXhMZXZlbFN0cmluZyA9ICIzLjEiOworICAg
ICAgICB9IGVsc2UgaWYgKCFnX3N0cmNtcDAobWF4VmlkZW9SZXNvbHV0aW9uLCAiNDgwUCIpKSB7
CisgICAgICAgICAgICBtYXhMZXZlbCA9IDMwOworICAgICAgICAgICAgbWF4TGV2ZWxTdHJpbmcg
PSAiMyI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBnX3dhcm5pbmcoIkludmFsaWQg
dmFsdWUgZm9yIFdFQktJVF9HU1RfTUFYX0FWQzFfUkVTT0xVVElPTi4gQ3VycmVudGx5IHN1cHBv
cnRlZCwgMTA4MFAsIDcyMFAgYW5kIDQ4MFAuIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIH0KKyAgICAgICAgaWYgKGxldmVsQXNJbnRlZ2VyID4gbWF4TGV2ZWwpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIENIRUNLX0gyNjRfQ0FQUyhtYWtlU3RyaW5n
KCJ2aWRlby94LWgyNjQsIGxldmVsPShzdHJpbmcpIiwgbWF4TGV2ZWxTdHJpbmcpLnV0ZjgoKS5k
YXRhKCkpOworICAgIH0KKworICAgIGlmICh3ZWJraXRHc3RDaGVja1ZlcnNpb24oMSwgMTcsIDAp
KSB7CisgICAgICAgIEdTVF9ERUJVRygiQ2hlY2tpbmcgdmlkZW8gZGVjb2RlcnMgZm9yIGNvbnN0
cmFpbmVkIGNhcHMiKTsKKyAgICAgICAgQ0hFQ0tfSDI2NF9DQVBTKG1ha2VTdHJpbmcoInZpZGVv
L3gtaDI2NCwgbGV2ZWw9KHN0cmluZykiLCBsZXZlbCwgIiwgcHJvZmlsZT0oc3RyaW5nKSIsIHBy
b2ZpbGUpLnV0ZjgoKS5kYXRhKCkpOworICAgIH0KKworICAgIEdTVF9ERUJVRygiRmFsbGluZyBi
YWNrIHRvIHVuY29uc3RyYWluZWQgY2FwcyIpOworICAgIENIRUNLX0gyNjRfQ0FQUygidmlkZW8v
eC1oMjY0Iik7CisgICAgcmV0dXJuIGZhbHNlOworCisjdW5kZWYgQ0hFQ0tfSDI2NF9DQVBTCit9
CisKIEdTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lcjo6UmVnaXN0cnlMb29rdXBSZXN1bHQgR1N0cmVh
bWVyUmVnaXN0cnlTY2FubmVyOjppc0RlY29kaW5nU3VwcG9ydGVkKE1lZGlhQ29uZmlndXJhdGlv
biYgY29uZmlndXJhdGlvbikgY29uc3QKIHsKICAgICBib29sIGlzU3VwcG9ydGVkID0gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
R1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvR1N0cmVhbWVyUmVnaXN0cnlTY2FubmVyLmgKaW5kZXggMzgxMDU5MjI3
OWFhZGQyZDJhZDhjYTEzODFmMzJiYjdjNzkxNTU1NC4uZWU4NGRmNWZmMjk1NTk2OTI5YjM0NmNi
MDc2OTk5Yzk4Y2VmM2UwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0dTdHJlYW1lclJlZ2lzdHJ5U2Nhbm5lci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HU3RyZWFtZXJSZWdpc3RyeVNjYW5u
ZXIuaApAQCAtNzIsNyArNzIsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgfTsKICAgICB2b2lkIGZpbGxN
aW1lVHlwZVNldEZyb21DYXBzTWFwcGluZyhWZWN0b3I8R3N0Q2Fwc1dlYktpdE1hcHBpbmc+Jik7
CiAKLSAgICBSZWdpc3RyeUxvb2t1cFJlc3VsdCBoYXNFbGVtZW50Rm9yTWVkaWFUeXBlKEdMaXN0
KiBlbGVtZW50RmFjdG9yaWVzLCBjb25zdCBjaGFyKiBjYXBzU3RyaW5nLCBib29sIHNob3VsZENo
ZWNrSGFyZHdhcmVDbGFzc2lmaWVyID0gZmFsc2UpOworICAgIFJlZ2lzdHJ5TG9va3VwUmVzdWx0
IGhhc0VsZW1lbnRGb3JNZWRpYVR5cGUoR0xpc3QqIGVsZW1lbnRGYWN0b3JpZXMsIGNvbnN0IGNo
YXIqIGNhcHNTdHJpbmcsIGJvb2wgc2hvdWxkQ2hlY2tIYXJkd2FyZUNsYXNzaWZpZXIgPSBmYWxz
ZSkgY29uc3Q7CisKKyAgICBib29sIGlzQVZDMUNvZGVjU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYg
Y29kZWMsIGJvb2wgc2hvdWxkQ2hlY2tGb3JIYXJkd2FyZVVzZSkgY29uc3Q7CiAKIHByaXZhdGU6
CiAgICAgYm9vbCBtX2lzTWVkaWFTb3VyY2U7Cg==
</data>
<flag name="review"
          id="387336"
          type_id="1"
          status="+"
          setter="calvaris"
    />
    <flag name="commit-queue"
          id="387340"
          type_id="3"
          status="-"
          setter="calvaris"
    />
          </attachment>
      

    </bug>

</bugzilla>