<?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>174168</bug_id>
          
          <creation_ts>2017-07-05 12:09:52 -0700</creation_ts>
          <short_desc>REGRESSION(r208511): RenderImageResourceStyleImage should not assume image() won&apos;t return null if its m_cachedImage is valid</short_desc>
          <delta_ts>2017-07-06 11:22:49 -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>Images</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="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1325690</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-07-05 12:09:52 -0700</bug_when>
    <thetext>In the &lt;http://trac.webkit.org/changeset/208511&gt;, RenderImageResource::shutdown() was changed from:

void RenderImageResource::shutdown()
{
    ASSERT(m_renderer);

    if (m_cachedImage)
        m_cachedImage-&gt;removeClient(*m_renderer);
}

to be:

void RenderImageResource::shutdown()
{
    ASSERT(m_renderer);

    if (m_cachedImage) {
        image()-&gt;stopAnimation();
        m_cachedImage-&gt;removeClient(*m_renderer);
    }
}

To check for m_cachedImage and then assume image() won&apos;t be null makes sense because the implementation of RenderImageResource::image() is the following:

RefPtr&lt;Image&gt; RenderImageResource::image(const IntSize&amp;) const
{
    return m_cachedImage ? m_cachedImage-&gt;imageForRenderer(m_renderer) : &amp;Image::nullImage();
}

The problem was the same change was copied as is to RenderImageResourceStyleImage::shutdown(). So it was changed from:

void RenderImageResourceStyleImage::shutdown()
{
    ASSERT(m_renderer);
    m_styleImage-&gt;removeClient(m_renderer);
    m_cachedImage = nullptr;
}

to be:

void RenderImageResourceStyleImage::shutdown()
{
    ASSERT(m_renderer);
    m_styleImage-&gt;removeClient(m_renderer);
    if (m_cachedImage) {
        image()-&gt;stopAnimation();
        m_cachedImage = nullptr;
    }
}

This change was wrong because RenderImageResourceStyleImage::image() can return null even if m_cachedImage is not null. Here is the implementation of RenderImageResourceStyleImage::image():

RefPtr&lt;Image&gt; RenderImageResourceStyleImage::image(const IntSize&amp; size) const
{
    // Generated content may trigger calls to image() while we&apos;re still pending, don&apos;t assert but gracefully exit.
    if (m_styleImage-&gt;isPending())
        return nullptr;
    return m_styleImage-&gt;image(m_renderer, size);
}

Notice StyleCachedImage::isPending can return true if the StyleCachedImage::load() has not been called or it was constructed with CSSImageValue which does not have a valid CachedImage.

This led to the following crash:

[  1] 0x000000018b1f0773 WebCore`WebCore::RenderImageResourceStyleImage::shutdown() [inlined] WebCore::RenderImageResourceStyleImage::image(WebCore::IntSize const&amp;) const + 63 at RenderImageResourceStyleImage.cpp:71:26
[  1] 0x000000018b1f0734 WebCore`WebCore::RenderImageResourceStyleImage::shutdown() + 60 at RenderImageResourceStyleImage.cpp:61
[  2] 0x000000018b1eef5b WebCore`WebCore::RenderImage::willBeDestroyed() + 31 at RenderImage.cpp:151:21
[  3] 0x000000018a4b2d2b WebCore`WebCore::RenderObject::destroyAndCleanupAnonymousWrappers() [inlined] WebCore::RenderObject::destroy() + 39 at RenderObject.cpp:1551:5
[  3] 0x000000018a4b2d04 WebCore`WebCore::RenderObject::destroyAndCleanupAnonymousWrappers() + 224 at RenderObject.cpp:1516
[  4] 0x000000018b2a3617 WebCore`WebCore::RenderTreeUpdater::tearDownRenderers(WebCore::Element&amp;, WebCore::RenderTreeUpdater::TeardownType) [inlined] WebCore::RenderTreeUpdater::tearDownRenderers(WebCore::Element&amp;, WebCore::RenderTreeUpdater::TeardownType)::$_2::operator()(unsigned int) const + 87 at RenderTreeUpdater.cpp:562:27
[  4] 0x000000018b2a35c0 WebCore`WebCore::RenderTreeUpdater::tearDownRenderers(WebCore::Element&amp;, WebCore::RenderTreeUpdater::TeardownType) + 1144 at RenderTreeUpdater.cpp:584
[  5] 0x000000018b2a2adf WebCore`WebCore::RenderTreeUpdater::updateElementRenderer(WebCore::Element&amp;, WebCore::Style::ElementUpdate const&amp;) + 395 at RenderTreeUpdater.cpp:268:9
[  6] 0x000000018b2a1ddf WebCore`WebCore::RenderTreeUpdater::updateRenderTree(WebCore::ContainerNode&amp;) + 647 at RenderTreeUpdater.cpp:178:9
[  7] 0x000000018b2a1adb WebCore`WebCore::RenderTreeUpdater::commit(std::__1::unique_ptr&lt;WebCore::Style::Update const, std::__1::default_delete&lt;WebCore::Style::Update const&gt; &gt;) + 563 at RenderTreeUpdater.cpp:125:9
[  8] 0x000000018a7fda6b WebCore`WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType) + 587 at Document.cpp:1825:21
[  9] 0x000000018a454a57 WebCore`WebCore::ThreadTimers::sharedTimerFiredInternal() + 171 at ThreadTimers.cpp:118:16
[ 10] 0x000000018a454997 WebCore`WebCore::timerFired(__CFRunLoopTimer*, void*) + 27 at MainThreadSharedTimerCF.cpp:74:40</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325703</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-07-05 12:21:11 -0700</bug_when>
    <thetext>&lt;rdar://problem/32967205&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325704</commentid>
    <comment_count>2</comment_count>
      <attachid>314640</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-07-05 12:22:21 -0700</bug_when>
    <thetext>Created attachment 314640
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325735</commentid>
    <comment_count>3</comment_count>
      <attachid>314640</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-07-05 13:26:05 -0700</bug_when>
    <thetext>Comment on attachment 314640
Patch

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

&gt; Source/WebCore/rendering/style/StyleImage.h:75
&gt; +    virtual bool isCachedImage() const { return false; }
&gt; +    virtual bool isGeneratedImage() const { return false; }
&gt;  
&gt;  protected:
&gt; -    StyleImage()
&gt; -        : m_isCachedImage(false)
&gt; -        , m_isGeneratedImage(false)
&gt; -    {
&gt; -    }
&gt; -    bool m_isCachedImage : 1;
&gt; -    bool m_isGeneratedImage : 1;
&gt; +    StyleImage() { }

Why did this code change? We normally use this technique when performance matters, to avoid virtual function calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325756</commentid>
    <comment_count>4</comment_count>
      <attachid>314653</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-07-05 14:02:41 -0700</bug_when>
    <thetext>Created attachment 314653
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325782</commentid>
    <comment_count>5</comment_count>
      <attachid>314653</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-07-05 14:41:51 -0700</bug_when>
    <thetext>Comment on attachment 314653
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        can return true and hence, RenderImageResourceStyleImage::image() will return
&gt; +        a null pointer.

But you are making it return the nullImage(), so are there other ways that null can get returned?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325821</commentid>
    <comment_count>6</comment_count>
      <attachid>314666</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-07-05 16:33:31 -0700</bug_when>
    <thetext>Created attachment 314666
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325825</commentid>
    <comment_count>7</comment_count>
      <attachid>314666</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-07-05 16:40:13 -0700</bug_when>
    <thetext>Comment on attachment 314666
Patch

Is this testable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326100</commentid>
    <comment_count>8</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-07-06 10:54:30 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #7)
&gt; Comment on attachment 314666 [details]
&gt; Patch
&gt; 
&gt; Is this testable?

I tried but I could not find a way to reproduce the crash without the patch. It looks like the scenario is the following. A content data of type image is defined for an element, for example:

&lt;style&gt;
    div::before {
        content: url(some-url);
    }
&lt;/style&gt;

And before resolving the style and before loading the pending images, i.e. before calling StyleCachedImage::load(), the renderer get deleted, i.e. RenderImageResourceStyleImage::shutdown() gets called. In this caseRenderImageResourceStyleImage::image() will return nullptr and the crash happens.

But this timing is can&apos;t be controlled by script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326107</commentid>
    <comment_count>9</comment_count>
      <attachid>314666</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-06 11:22:47 -0700</bug_when>
    <thetext>Comment on attachment 314666
Patch

Clearing flags on attachment: 314666

Committed r219205: &lt;http://trac.webkit.org/changeset/219205&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326108</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-06 11:22:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314640</attachid>
            <date>2017-07-05 12:22:21 -0700</date>
            <delta_ts>2017-07-05 14:02:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174168-20170705122220.patch</filename>
            <type>text/plain</type>
            <size>7147</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxOTE0MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE3LTA3LTA1ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TihyMjA4NTExKTogUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2Ugc2hvdWxkIG5vdCBhc3N1
bWUgaW1hZ2UoKSB3b24ndCByZXR1cm4gbnVsbCBpZiBpdHMgbV9jYWNoZWRJbWFnZSBpcyB2YWxp
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MTY4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuZGVy
SW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2U6OmltYWdlKCkgbWF5IHJldHVybiBhIG51bGwgcG9pbnRl
ciBldmVuIGlmCisgICAgICAgIGl0cyBtX2NhY2hlZEltYWdlIGlzIG5vdCBudWxsLiBUaGUgcmV2
aXNpb24gcjIwODUxMSwgY2hhbmdlZCB0aGUgZnVuY3Rpb24KKyAgICAgICAgUmVuZGVySW1hZ2VS
ZXNvdXJjZVN0eWxlSW1hZ2U6OnNodXRkb3duKCkgc28gaXQgY2FsbHMgSW1hZ2U6OnN0b3BBbmlt
YXRpb24oKS4KKyAgICAgICAgQnV0IHRoaXMgY2hhbmdlIGFzc3VtZXMgdGhhdCBpZiBtX2NhY2hl
ZEltYWdlIGlzIG5vdCBudWxsIHRoZW4gaW1hZ2UoKSB3aWxsCisgICAgICAgIHJldHVybiBhIHZh
bGlkIHBvaW50ZXIuIFRoaXMgaXMgbm90IHRydWUgYmVjYXVzZSBTdHlsZUNhY2hlZEltYWdlOjpp
c1BlbmRpbmcoKQorICAgICAgICBjYW4gcmV0dXJuIHRydWUgYW5kIGhlbmNlLCBSZW5kZXJJbWFn
ZVJlc291cmNlU3R5bGVJbWFnZTo6aW1hZ2UoKSB3aWxsIHJldHVybgorICAgICAgICBhIG51bGwg
cG9pbnRlci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZVJlc291cmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlUmVzb3VyY2U6OnNodXRkb3duKTogQ2hlY2sg
Zm9yIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlCisgICAgICAgIGltYWdlKCkgZnVuY3Rpb24gYmVm
b3JlIHVzaW5nIHRoZSBwb2ludGVyIHJlZ2FyZGxlc3Mgb2YgdGhlIGltcGxlbWVudGF0aW9uLgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZTo6c2h1dGRvd24p
OiBGaXggdGhlIGJ1Zy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlUmVzb3VyY2VTdHls
ZUltYWdlOjppbWFnZSk6IE1ha2UgaXQgY29uc2lzdGVudCB3aXRoCisgICAgICAgIFJlbmRlcklt
YWdlUmVzb3VyY2U6OmltYWdlKCkgYnkgcmV0dXJuaW5nIEltYWdlOjpudWxsSW1hZ2UoKSBpbnN0
ZWFkIG9mIG51bGxwdHIuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1h
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVDYWNoZWRJbWFnZTo6U3R5bGVDYWNoZWRJ
bWFnZSk6IE1pbm9yIGNsZWFudXAuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2Fj
aGVkSW1hZ2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUdlbmVyYXRlZEltYWdlOjpTdHlsZUdlbmVy
YXRlZEltYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFn
ZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZUltYWdlOjppc0NhY2hlZEltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlSW1hZ2U6OmlzR2VuZXJhdGVkSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVJbWFn
ZTo6U3R5bGVJbWFnZSk6CisKIDIwMTctMDctMDUgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRA
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMgZm9y
IGlPUyAxMQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlUmVzb3Vy
Y2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFn
ZVJlc291cmNlLmNwcAkocmV2aXNpb24gMjE5MDkwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckltYWdlUmVzb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niw4ICs1Niw5
IEBAIHZvaWQgUmVuZGVySW1hZ2VSZXNvdXJjZTo6c2h1dGRvd24oKQogICAgIGlmICghbV9jYWNo
ZWRJbWFnZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKGF1dG8gaW1hZ2UgPSB0aGlzLT5p
bWFnZSgpKQorICAgICAgICBpbWFnZS0+c3RvcEFuaW1hdGlvbigpOwogICAgIEFTU0VSVChtX3Jl
bmRlcmVyKTsKLSAgICBpbWFnZSgpLT5zdG9wQW5pbWF0aW9uKCk7CiAgICAgbV9jYWNoZWRJbWFn
ZS0+cmVtb3ZlQ2xpZW50KCptX3JlbmRlcmVyKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2Uu
Y3BwCShyZXZpc2lvbiAyMTkwOTApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NywxOCArNTcs
MTUgQEAgdm9pZCBSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZTo6c2h1dAogewogICAgIEFT
U0VSVChtX3JlbmRlcmVyKTsKICAgICBtX3N0eWxlSW1hZ2UtPnJlbW92ZUNsaWVudChtX3JlbmRl
cmVyKTsKLSAgICBpZiAobV9jYWNoZWRJbWFnZSkgewotICAgICAgICBpbWFnZSgpLT5zdG9wQW5p
bWF0aW9uKCk7Ci0gICAgICAgIG1fY2FjaGVkSW1hZ2UgPSBudWxscHRyOwotICAgIH0KKyAgICBp
ZiAoYXV0byBpbWFnZSA9IHRoaXMtPmltYWdlKCkpCisgICAgICAgIGltYWdlLT5zdG9wQW5pbWF0
aW9uKCk7CisgICAgbV9jYWNoZWRJbWFnZSA9IG51bGxwdHI7CiB9CiAKIFJlZlB0cjxJbWFnZT4g
UmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2U6OmltYWdlKGNvbnN0IEludFNpemUmIHNpemUp
IGNvbnN0CiB7CiAgICAgLy8gR2VuZXJhdGVkIGNvbnRlbnQgbWF5IHRyaWdnZXIgY2FsbHMgdG8g
aW1hZ2UoKSB3aGlsZSB3ZSdyZSBzdGlsbCBwZW5kaW5nLCBkb24ndCBhc3NlcnQgYnV0IGdyYWNl
ZnVsbHkgZXhpdC4KLSAgICBpZiAobV9zdHlsZUltYWdlLT5pc1BlbmRpbmcoKSkKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIG1fc3R5bGVJbWFnZS0+aW1hZ2UobV9yZW5kZXJl
ciwgc2l6ZSk7CisgICAgcmV0dXJuICFtX3N0eWxlSW1hZ2UtPmlzUGVuZGluZygpID8gbV9zdHls
ZUltYWdlLT5pbWFnZShtX3JlbmRlcmVyLCBzaXplKSA6ICZJbWFnZTo6bnVsbEltYWdlKCk7CiB9
CiAKIHZvaWQgUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2U6OnNldENvbnRhaW5lclNpemVG
b3JSZW5kZXJlcihjb25zdCBJbnRTaXplJiBzaXplKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcAkocmV2aXNpb24gMjE5
MDkwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw4ICszOCw2IEBAIFN0eWxlQ2FjaGVkSW1hZ2U6OlN0
eWxlQ2FjaGVkSW1hZ2UoQ1NTVmEKIHsKICAgICBBU1NFUlQoaXM8Q1NTSW1hZ2VWYWx1ZT4obV9j
c3NWYWx1ZSkgfHwgaXM8Q1NTSW1hZ2VTZXRWYWx1ZT4obV9jc3NWYWx1ZSkgfHwgaXM8Q1NTQ3Vy
c29ySW1hZ2VWYWx1ZT4obV9jc3NWYWx1ZSkpOwogCi0gICAgbV9pc0NhY2hlZEltYWdlID0gdHJ1
ZTsKLQogICAgIC8vIENTU0ltYWdlVmFsdWUgZG9lc24ndCBnZXQgaW52YWxpZGF0ZWQgc28gd2Ug
Y2FuIGdyYWIgdGhlIENhY2hlZEltYWdlIGltbWVkaWF0ZWx5IGlmIGl0IGV4aXN0cy4KICAgICBp
ZiAoaXM8Q1NTSW1hZ2VWYWx1ZT4obV9jc3NWYWx1ZSkpIHsKICAgICAgICAgbV9jYWNoZWRJbWFn
ZSA9IGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KG1fY3NzVmFsdWUuZ2V0KCkpLmNhY2hlZEltYWdl
KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFn
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNh
Y2hlZEltYWdlLmgJKHJldmlzaW9uIDIxOTA5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYgKzYyLDcg
QEAgcHVibGljOgogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVyRWxlbWVudCosIGNvbnN0
IEZsb2F0U2l6ZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIGZsb2F0IGltYWdlU2NhbGVGYWN0b3Io
KSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGtub3duVG9CZU9wYXF1ZShjb25zdCBSZW5kZXJF
bGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBpc0NhY2hlZEltYWdlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgogICAgIFN0eWxlQ2FjaGVkSW1h
Z2UoQ1NTVmFsdWUmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZUdlbmVyYXRlZEltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAJKHJldmlzaW9uIDIxOTA5MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBAQCBTdHlsZUdlbmVyYXRlZEltYWdlOjpTdHlsZUdl
bmVyYXRlZEltYWdlCiAgICAgOiBtX2ltYWdlR2VuZXJhdG9yVmFsdWUoV1RGTW92ZSh2YWx1ZSkp
CiAgICAgLCBtX2ZpeGVkU2l6ZShtX2ltYWdlR2VuZXJhdG9yVmFsdWUtPmlzRml4ZWRTaXplKCkp
CiB7Ci0gICAgbV9pc0dlbmVyYXRlZEltYWdlID0gdHJ1ZTsKIH0KIAogUmVmPENTU1ZhbHVlPiBT
dHlsZUdlbmVyYXRlZEltYWdlOjpjc3NWYWx1ZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmgJKHJldmlz
aW9uIDIxOTA5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVy
YXRlZEltYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAgcHVibGljOgogICAg
IH0KIAogICAgIENTU0ltYWdlR2VuZXJhdG9yVmFsdWUmIGltYWdlVmFsdWUoKSB7IHJldHVybiBt
X2ltYWdlR2VuZXJhdG9yVmFsdWU7IH0KKyAgICBib29sIGlzR2VuZXJhdGVkSW1hZ2UoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKIHByaXZhdGU6CiAgICAgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IFN0eWxlSW1hZ2UmIG90aGVyKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBkYXRh
KCkgPT0gb3RoZXIuZGF0YSgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVJbWFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZUltYWdlLmgJKHJldmlzaW9uIDIxOTA5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDE3ICs2OCwx
MSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGtub3duVG9CZU9wYXF1ZShjb25zdCBSZW5k
ZXJFbGVtZW50KikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgQ2FjaGVkSW1hZ2UqIGNhY2hlZElt
YWdlKCkgY29uc3QgeyByZXR1cm4gMDsgfQogCi0gICAgQUxXQVlTX0lOTElORSBib29sIGlzQ2Fj
aGVkSW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX2lzQ2FjaGVkSW1hZ2U7IH0KLSAgICBBTFdBWVNf
SU5MSU5FIGJvb2wgaXNHZW5lcmF0ZWRJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNHZW5lcmF0
ZWRJbWFnZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0NhY2hlZEltYWdlKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNHZW5lcmF0ZWRJbWFnZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAKIHByb3RlY3RlZDoKLSAgICBTdHlsZUltYWdlKCkKLSAgICAgICAg
OiBtX2lzQ2FjaGVkSW1hZ2UoZmFsc2UpCi0gICAgICAgICwgbV9pc0dlbmVyYXRlZEltYWdlKGZh
bHNlKQotICAgIHsKLSAgICB9Ci0gICAgYm9vbCBtX2lzQ2FjaGVkSW1hZ2UgOiAxOwotICAgIGJv
b2wgbV9pc0dlbmVyYXRlZEltYWdlIDogMTsKKyAgICBTdHlsZUltYWdlKCkgeyB9CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314653</attachid>
            <date>2017-07-05 14:02:41 -0700</date>
            <delta_ts>2017-07-05 16:33:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174168-20170705140240.patch</filename>
            <type>text/plain</type>
            <size>3423</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxOTE1NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE3LTA3LTA1ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TihyMjA4NTExKTogUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2Ugc2hvdWxkIG5vdCBhc3N1
bWUgaW1hZ2UoKSB3b24ndCByZXR1cm4gbnVsbCBpZiBpdHMgbV9jYWNoZWRJbWFnZSBpcyB2YWxp
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MTY4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuZGVy
SW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2U6OmltYWdlKCkgbWF5IHJldHVybiBhIG51bGwgcG9pbnRl
ciBldmVuIGlmCisgICAgICAgIGl0cyBtX2NhY2hlZEltYWdlIGlzIG5vdCBudWxsLiBUaGUgcmV2
aXNpb24gcjIwODUxMSwgY2hhbmdlZCB0aGUgZnVuY3Rpb24KKyAgICAgICAgUmVuZGVySW1hZ2VS
ZXNvdXJjZVN0eWxlSW1hZ2U6OnNodXRkb3duKCkgc28gaXQgY2FsbHMgSW1hZ2U6OnN0b3BBbmlt
YXRpb24oKS4KKyAgICAgICAgQnV0IHRoaXMgY2hhbmdlIGFzc3VtZXMgdGhhdCBpZiBtX2NhY2hl
ZEltYWdlIGlzIG5vdCBudWxsIHRoZW4gaW1hZ2UoKSB3aWxsCisgICAgICAgIHJldHVybiBhIHZh
bGlkIHBvaW50ZXIuIFRoaXMgaXMgbm90IHRydWUgYmVjYXVzZSBTdHlsZUNhY2hlZEltYWdlOjpp
c1BlbmRpbmcoKQorICAgICAgICBjYW4gcmV0dXJuIHRydWUgYW5kIGhlbmNlLCBSZW5kZXJJbWFn
ZVJlc291cmNlU3R5bGVJbWFnZTo6aW1hZ2UoKSB3aWxsIHJldHVybgorICAgICAgICBhIG51bGwg
cG9pbnRlci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZVJlc291cmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlUmVzb3VyY2U6OnNodXRkb3duKTogQ2hlY2sg
Zm9yIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlCisgICAgICAgIGltYWdlKCkgZnVuY3Rpb24gYmVm
b3JlIHVzaW5nIHRoZSBwb2ludGVyIHJlZ2FyZGxlc3Mgb2YgdGhlIGltcGxlbWVudGF0aW9uLgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZTo6c2h1dGRvd24p
OiBGaXggdGhlIGJ1Zy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlUmVzb3VyY2VTdHls
ZUltYWdlOjppbWFnZSk6IE1ha2UgaXQgY29uc2lzdGVudCB3aXRoCisgICAgICAgIFJlbmRlcklt
YWdlUmVzb3VyY2U6OmltYWdlKCkgYnkgcmV0dXJuaW5nIEltYWdlOjpudWxsSW1hZ2UoKSBpbnN0
ZWFkIG9mIG51bGxwdHIuCisKIDIwMTctMDctMDUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CiAKICAgICAgICAgV2hlbiBkcmFnZ2luZyBhIHNlbGVjdGlvbiwgY2xlYXJp
bmcgdGhlIHNlbGVjdGlvbiBpbiBkcmFnc3RhcnQgc2hvdWxkIG5vdCBjcmFzaCB0aGUgd2ViIHBy
b2Nlc3MKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZVJlc291cmNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2VS
ZXNvdXJjZS5jcHAJKHJldmlzaW9uIDIxOTA5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbWFnZVJlc291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsOCArNTYsOSBA
QCB2b2lkIFJlbmRlckltYWdlUmVzb3VyY2U6OnNodXRkb3duKCkKICAgICBpZiAoIW1fY2FjaGVk
SW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChhdXRvIGltYWdlID0gdGhpcy0+aW1h
Z2UoKSkKKyAgICAgICAgaW1hZ2UtPnN0b3BBbmltYXRpb24oKTsKICAgICBBU1NFUlQobV9yZW5k
ZXJlcik7Ci0gICAgaW1hZ2UoKS0+c3RvcEFuaW1hdGlvbigpOwogICAgIG1fY2FjaGVkSW1hZ2Ut
PnJlbW92ZUNsaWVudCgqbV9yZW5kZXJlcik7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmNw
cAkocmV2aXNpb24gMjE5MDkwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklt
YWdlUmVzb3VyY2VTdHlsZUltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsOCBA
QCB2b2lkIFJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlOjpzaHV0CiAgICAgQVNTRVJUKG1f
cmVuZGVyZXIpOwogICAgIG1fc3R5bGVJbWFnZS0+cmVtb3ZlQ2xpZW50KG1fcmVuZGVyZXIpOwog
ICAgIGlmIChtX2NhY2hlZEltYWdlKSB7Ci0gICAgICAgIGltYWdlKCktPnN0b3BBbmltYXRpb24o
KTsKKyAgICAgICAgaWYgKGF1dG8gaW1hZ2UgPSB0aGlzLT5pbWFnZSgpKQorICAgICAgICAgICAg
aW1hZ2UtPnN0b3BBbmltYXRpb24oKTsKICAgICAgICAgbV9jYWNoZWRJbWFnZSA9IG51bGxwdHI7
CiAgICAgfQogfQpAQCAtNjYsOSArNjcsNyBAQCB2b2lkIFJlbmRlckltYWdlUmVzb3VyY2VTdHls
ZUltYWdlOjpzaHV0CiBSZWZQdHI8SW1hZ2U+IFJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdl
OjppbWFnZShjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogewogICAgIC8vIEdlbmVyYXRlZCBj
b250ZW50IG1heSB0cmlnZ2VyIGNhbGxzIHRvIGltYWdlKCkgd2hpbGUgd2UncmUgc3RpbGwgcGVu
ZGluZywgZG9uJ3QgYXNzZXJ0IGJ1dCBncmFjZWZ1bGx5IGV4aXQuCi0gICAgaWYgKG1fc3R5bGVJ
bWFnZS0+aXNQZW5kaW5nKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBt
X3N0eWxlSW1hZ2UtPmltYWdlKG1fcmVuZGVyZXIsIHNpemUpOworICAgIHJldHVybiAhbV9zdHls
ZUltYWdlLT5pc1BlbmRpbmcoKSA/IG1fc3R5bGVJbWFnZS0+aW1hZ2UobV9yZW5kZXJlciwgc2l6
ZSkgOiAmSW1hZ2U6Om51bGxJbWFnZSgpOwogfQogCiB2b2lkIFJlbmRlckltYWdlUmVzb3VyY2VT
dHlsZUltYWdlOjpzZXRDb250YWluZXJTaXplRm9yUmVuZGVyZXIoY29uc3QgSW50U2l6ZSYgc2l6
ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314666</attachid>
            <date>2017-07-05 16:33:31 -0700</date>
            <delta_ts>2017-07-06 11:22:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174168-20170705163330.patch</filename>
            <type>text/plain</type>
            <size>2200</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxOTE2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE3LTA3LTA1ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TihyMjA4NTExKTogUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2Ugc2hvdWxkIG5vdCBhc3N1
bWUgaW1hZ2UoKSB3b24ndCByZXR1cm4gbnVsbCBpZiBpdHMgbV9jYWNoZWRJbWFnZSBpcyB2YWxp
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MTY4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuZGVy
SW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2U6OmltYWdlKCkgbWF5IHJldHVybiBhIG51bGwgcG9pbnRl
ciBldmVuIGlmCisgICAgICAgIGl0cyBtX2NhY2hlZEltYWdlIGlzIG5vdCBudWxsLiBUaGUgcmV2
aXNpb24gcjIwODUxMSwgY2hhbmdlZCB0aGUgZnVuY3Rpb24KKyAgICAgICAgUmVuZGVySW1hZ2VS
ZXNvdXJjZVN0eWxlSW1hZ2U6OnNodXRkb3duKCkgc28gaXQgY2FsbHMgSW1hZ2U6OnN0b3BBbmlt
YXRpb24oKS4KKyAgICAgICAgQnV0IHRoaXMgY2hhbmdlIGFzc3VtZXMgdGhhdCBpZiBtX2NhY2hl
ZEltYWdlIGlzIG5vdCBudWxsIHRoZW4gaW1hZ2UoKSB3aWxsCisgICAgICAgIHJldHVybiBhIHZh
bGlkIHBvaW50ZXIuIFRoaXMgaXMgbm90IHRydWUgYmVjYXVzZSBTdHlsZUNhY2hlZEltYWdlOjpp
c1BlbmRpbmcoKQorICAgICAgICBjYW4gcmV0dXJuIHRydWUgYW5kIGhlbmNlLCBSZW5kZXJJbWFn
ZVJlc291cmNlU3R5bGVJbWFnZTo6aW1hZ2UoKSB3aWxsIHJldHVybgorICAgICAgICBhIG51bGwg
cG9pbnRlci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJ
bWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFn
ZTo6aW1hZ2UpOiBMaWtlIHdoYXQgUmVuZGVySW1hZ2VSZXNvdXJjZQorICAgICAgICBkb2VzLCBy
ZXR1cm4gSW1hZ2U6Om51bGxJbWFnZSgpIGlmIG1fc3R5bGVJbWFnZS0+aXNQZW5kaW5nKCkuCisK
IDIwMTctMDctMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgQW5vdGhlciBidWlsZCBmaXgsIGZvciBNYWMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZS5j
cHAJKHJldmlzaW9uIDIxOTA5MCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bWFnZVJlc291cmNlU3R5bGVJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDkgKzY2LDcg
QEAgdm9pZCBSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZTo6c2h1dAogUmVmUHRyPEltYWdl
PiBSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZTo6aW1hZ2UoY29uc3QgSW50U2l6ZSYgc2l6
ZSkgY29uc3QKIHsKICAgICAvLyBHZW5lcmF0ZWQgY29udGVudCBtYXkgdHJpZ2dlciBjYWxscyB0
byBpbWFnZSgpIHdoaWxlIHdlJ3JlIHN0aWxsIHBlbmRpbmcsIGRvbid0IGFzc2VydCBidXQgZ3Jh
Y2VmdWxseSBleGl0LgotICAgIGlmIChtX3N0eWxlSW1hZ2UtPmlzUGVuZGluZygpKQotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gbV9zdHlsZUltYWdlLT5pbWFnZShtX3JlbmRl
cmVyLCBzaXplKTsKKyAgICByZXR1cm4gIW1fc3R5bGVJbWFnZS0+aXNQZW5kaW5nKCkgPyBtX3N0
eWxlSW1hZ2UtPmltYWdlKG1fcmVuZGVyZXIsIHNpemUpIDogJkltYWdlOjpudWxsSW1hZ2UoKTsK
IH0KIAogdm9pZCBSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZTo6c2V0Q29udGFpbmVyU2l6
ZUZvclJlbmRlcmVyKGNvbnN0IEludFNpemUmIHNpemUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>