<?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>206289</bug_id>
          
          <creation_ts>2020-01-15 07:27:07 -0800</creation_ts>
          <short_desc>[GStreamer][WPE] Client-side video rendering support</short_desc>
          <delta_ts>2020-01-24 02:58:04 -0800</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>annulen</cc>
    
    <cc>aperez</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>lushnikov</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1606915</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-01-15 07:27:07 -0800</bug_when>
    <thetext>Using the WPEBackend-FDO video-plane-display-dmabuf protocol, to be shipped in 1.6.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606920</commentid>
    <comment_count>1</comment_count>
      <attachid>387790</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-01-15 07:38:15 -0800</bug_when>
    <thetext>Created attachment 387790
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606935</commentid>
    <comment_count>2</comment_count>
      <attachid>387790</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-01-15 08:41:04 -0800</bug_when>
    <thetext>Comment on attachment 387790
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:259
&gt; +        wpe_video_plane_display_dmabuf_source_update(videoPlaneDisplayDmaBufSource, m_dmabufFD, rect.x(), rect.y(), m_size.width(), m_size.height(), m_dmabufStride, [](void* data) {
&gt; +            gst_buffer_unref(GST_BUFFER_CAST(data));
&gt; +        }, gst_buffer_ref(m_buffer.get()));

Is this lambda a C callback? If not, then it would be nice to capture the smart pointer (by copy!) inside the lambda.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:487
&gt; +#if USE(WPE_VIDEO_PLANE_DISPLAY_DMABUF)
&gt; +    if (m_wpeVideoPlaneDisplayDmaBuf)
&gt; +        wpe_video_plane_display_dmabuf_source_destroy(m_wpeVideoPlaneDisplayDmaBuf);
&gt; +#endif
&gt; +

I think we can use GUniquePtr by defining this as deleter in GUniquePtrGStreamer.h, can&apos;t we?

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3146
&gt; +    GStreamerDMABufHolePunchClient(std::unique_ptr&lt;GstVideoFrameHolder&gt; frameHolder, struct wpe_video_plane_display_dmabuf_source* videoPlaneDisplayDmaBufSource)

I think we should be taking a std::unique_ptr&lt;GstVideoFrameHolder&gt;&amp;&amp; frameHolder, specially with the way you call this constructor.

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3181
&gt; +            proxy.pushNextBuffer(WTFMove(layerBuffer));

And from what I see, TextureMapperPlatformLayerProxy::pushNextBuffer lacks a &amp;&amp; in the parameter as well. Either we add it or we are not taking advantage of all the WTFMove calling it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607397</commentid>
    <comment_count>3</comment_count>
      <attachid>387790</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-01-16 03:04:14 -0800</bug_when>
    <thetext>Comment on attachment 387790
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:259
&gt;&gt; +        }, gst_buffer_ref(m_buffer.get()));
&gt; 
&gt; Is this lambda a C callback? If not, then it would be nice to capture the smart pointer (by copy!) inside the lambda.

I think it&apos;s what you call a C callback? https://github.com/Igalia/WPEBackend-fdo/blob/master/include/wpe-fdo/extensions/video-plane-display-dmabuf.h#L66</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607399</commentid>
    <comment_count>4</comment_count>
      <attachid>387904</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-01-16 03:14:39 -0800</bug_when>
    <thetext>Created attachment 387904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607461</commentid>
    <comment_count>5</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-01-16 07:26:07 -0800</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #2)
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3181
&gt; &gt; +            proxy.pushNextBuffer(WTFMove(layerBuffer));
&gt; 
&gt; And from what I see, TextureMapperPlatformLayerProxy::pushNextBuffer lacks a
&gt; &amp;&amp; in the parameter as well. Either we add it or we are not taking advantage
&gt; of all the WTFMove calling it.

Is this coming in a follow up or did you forget?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607477</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-01-16 07:57:52 -0800</bug_when>
    <thetext>Committed r254682: &lt;https://trac.webkit.org/changeset/254682&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607478</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-16 07:58:11 -0800</bug_when>
    <thetext>&lt;rdar://problem/58644258&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610486</commentid>
    <comment_count>8</comment_count>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2020-01-23 19:08:39 -0800</bug_when>
    <thetext>Hi Philippe!

This broke `//Tools/Scripts/update-webkitwpe-libs` script - the cmake config is complaining for libwpe. 

I filed the bug upstream to libwpe: https://github.com/WebPlatformForEmbedded/libwpe/issues/63

Meanwhile, is there anything we can do about this change to fix it?

Thanks,
Andrey</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610580</commentid>
    <comment_count>9</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2020-01-24 02:29:18 -0800</bug_when>
    <thetext>(In reply to Andrey Lushnikov from comment #8)
&gt; This broke `//Tools/Scripts/update-webkitwpe-libs` script - the cmake config
&gt; is complaining for libwpe. 
&gt; 
&gt; I filed the bug upstream to libwpe:
&gt; https://github.com/WebPlatformForEmbedded/libwpe/issues/63
&gt; 

I have a fix for this. I&apos;ll push it into libwpe and then update the jhbuild tag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610585</commentid>
    <comment_count>10</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2020-01-24 02:58:04 -0800</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #9)
&gt; (In reply to Andrey Lushnikov from comment #8)
&gt; &gt; This broke `//Tools/Scripts/update-webkitwpe-libs` script - the cmake config
&gt; &gt; is complaining for libwpe. 
&gt; &gt; 
&gt; &gt; I filed the bug upstream to libwpe:
&gt; &gt; https://github.com/WebPlatformForEmbedded/libwpe/issues/63
&gt; &gt; 
&gt; 
&gt; I have a fix for this. I&apos;ll push it into libwpe and then update the jhbuild
&gt; tag.

Done in r255062.
http://trac.webkit.org/changeset/255062/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387790</attachid>
            <date>2020-01-15 07:38:15 -0800</date>
            <delta_ts>2020-01-16 03:14:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206289-20200115153813.patch</filename>
            <type>text/plain</type>
            <size>19627</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjJjNTc2NjA2OTJjNjZl
YThhYTE2MDg5N2JmYjk4ZmE2Y2RmNGQyNy4uYjAyOTNhZmNlOTQ4MWM3MGU2MzhlODBmOWFjMDUy
YzM1NDIyYTBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAxLTE1ICBQaGls
aXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXVtX
UEVdIENsaWVudC1zaWRlIHZpZGVvIHJlbmRlcmluZyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYyODkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaXRoIHRoZSBXUEVfVklERU9fUExBTkVf
RElTUExBWV9ETUFCVUYgb3B0aW9uIGVuYWJsZWQgdGhlIHBsYXllcgorICAgICAgICB3aWxsIHJl
bmRlciBhIHRyYW5zcGFyZW50IHBsYWNlaG9sZGVyIGZvciB2aWRlb3MsIHVzaW5nIHRoZQorICAg
ICAgICBIb2xlUHVuY2ggY29kZSBwYXRoLiBUaGVuIGl0IGlzIHVwIHRvIHRoZSBVSVByb2Nlc3Mg
dG8gbGlzdGVuIHRvCisgICAgICAgIHRoZSBpbmNvbWluZyB2aWRlbyBkbWFidWZzIGFuZCByZW5k
ZXIgdGhlbS4gVGhpcyBhbGxvd3MgdGhlCisgICAgICAgIGJyb3dzZXIgdG8gdXNlIFdheWxhbmQg
cHJvdG9jb2xzIHJlbGF0ZWQgd2l0aCBQcm90ZWN0aW9uIChIRENQLAorICAgICAgICBmb3IgaW5z
dGFuY2UpLgorCisgICAgICAgICogUGxhdGZvcm1XUEUuY21ha2U6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV1RG
OjphZG9wdEdSZWYpOgorICAgICAgICAoV1RGOjpyZWZHUHRyPEdzdEVHTEltYWdlPik6CisgICAg
ICAgIChXVEY6OmRlcmVmR1B0cjxHc3RFR0xJbWFnZT4pOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpHc3RWaWRlb0ZyYW1lSG9sZGVyOjpHc3RWaWRlb0ZyYW1lSG9sZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkdzdFZpZGVvRnJhbWVIb2xkZXI6OmhhbmRvZmZWaWRlb0RtYUJ1
Zik6CisgICAgICAgIChXZWJDb3JlOjpHc3RWaWRlb0ZyYW1lSG9sZGVyOjp3YWl0Rm9yQ1BVU3lu
Yyk6CisgICAgICAgIChXZWJDb3JlOjpHc3RWaWRlb0ZyYW1lSG9sZGVyOjp1cGRhdGVUZXh0dXJl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmRpZEVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpHU3RyZWFtZXJETUFCdWZIb2xlUHVuY2hDbGllbnQ6OkdTdHJlYW1lckRNQUJ1Zkhv
bGVQdW5jaENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OnB1c2hUZXh0dXJlVG9Db21wb3NpdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisKIDIwMjAtMDEt
MTUgIENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS10gVHVybiBvZmYgYW50aWFsaWFzaW5nIHdoZW4gcmVuZGVyaW5nIHdpdGggQWhl
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCBiZjdmNzhhMDE0OWExZmI3NjRkZDc2N2Yy
YjRjNDVkNWNjYTM3Nzk4Li4zNmU3MGMxNjJjOGIwYjZjNzZkZWMxMWNmY2M1MjVhYTU3ODZiYzI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtNTcsNiArNTcsNyBAQCBsaXN0KEFQUEVO
RCBXZWJDb3JlX0xJQlJBUklFUwogICAgICR7TElCVEFTTjFfTElCUkFSSUVTfQogICAgICR7VVBP
V0VSR0xJQl9MSUJSQVJJRVN9CiAgICAgJHtXUEVfTElCUkFSSUVTfQorICAgICR7V1BFQkFDS0VO
RF9GRE9fTElCUkFSSUVTfQogKQogCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NZU1RFTV9JTkNMVURF
X0RJUkVDVE9SSUVTCkBAIC02Niw0ICs2Nyw1IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU1lTVEVN
X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAke0xJQlRBU04xX0lOQ0xVREVfRElSU30KICAgICAk
e1VQT1dFUkdMSUJfSU5DTFVERV9ESVJTfQogICAgICR7V1BFX0lOQ0xVREVfRElSU30KKyAgICAk
e1dQRUJBQ0tFTkRfRkRPX0lOQ0xVREVfRElSU30KICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVy
LmNwcAppbmRleCBkYTUwMjYyOTYxMWIzM2MyNzc1OTlmMTMwODViNGFhMTk4Y2Q2YzQzLi5hZDYz
MjIwNWIzMmU0Y2NkZGQ2OWVkYmMxZDdjMGFmMjc1ZTM4OGUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJH
U3RyZWFtZXIuY3BwCkBAIC0yMyw2ICsyMywxMCBAQAogI2lmIFVTRShHU1RSRUFNRVIpCiAjaW5j
bHVkZSA8Z3N0L2dzdC5oPgogCisjaWYgVVNFKEdTVFJFQU1FUl9HTCkKKyNpbmNsdWRlIDxnc3Qv
Z2wvZWdsL2dzdGVnbGltYWdlLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdURiB7CiAKIHRlbXBs
YXRlIDw+IEdSZWZQdHI8R3N0RWxlbWVudD4gYWRvcHRHUmVmKEdzdEVsZW1lbnQqIHB0cikKQEAg
LTUwNCw2ICs1MDgsMjQgQEAgdGVtcGxhdGU8PiB2b2lkIGRlcmVmR1B0cjxHc3RHTENvbnRleHQ+
KEdzdEdMQ29udGV4dCogcHRyKQogICAgICAgICBnc3Rfb2JqZWN0X3VucmVmKEdTVF9PQkpFQ1Qo
cHRyKSk7CiB9CiAKK3RlbXBsYXRlIDw+IEdSZWZQdHI8R3N0RUdMSW1hZ2U+IGFkb3B0R1JlZihH
c3RFR0xJbWFnZSogcHRyKQoreworICAgIHJldHVybiBHUmVmUHRyPEdzdEVHTEltYWdlPihwdHIs
IEdSZWZQdHJBZG9wdCk7Cit9CisKK3RlbXBsYXRlIDw+IEdzdEVHTEltYWdlKiByZWZHUHRyPEdz
dEVHTEltYWdlPihHc3RFR0xJbWFnZSogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdz
dF9lZ2xfaW1hZ2VfcmVmKHB0cik7CisgICAgcmV0dXJuIHB0cjsKK30KKwordGVtcGxhdGUgPD4g
dm9pZCBkZXJlZkdQdHI8R3N0RUdMSW1hZ2U+KEdzdEVHTEltYWdlKiBwdHIpCit7CisgICAgaWYg
KHB0cikKKyAgICAgICAgZ3N0X2VnbF9pbWFnZV91bnJlZihwdHIpOworfQorCiAjZW5kaWYgLy8g
VVNFKEdTVFJFQU1FUl9HTCkKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3Ry
ZWFtZXIuaAppbmRleCAxZGMwNTI5YTExYTQxNTI5Y2Q2ODVkMDA2YTgwYTE3YzJhODdmMTM1Li5k
OTQwZjhjYTBmOTUwZmY0MjQzZmU0NTYyOTRjYmYzZTQ4NTJkMzRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRy
R1N0cmVhbWVyLmgKQEAgLTMwLDYgKzMwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlNy
YyBXZWJLaXRXZWJTcmM7CiAjaWYgVVNFKEdTVFJFQU1FUl9HTCkKIHR5cGVkZWYgc3RydWN0IF9H
c3RHTERpc3BsYXkgR3N0R0xEaXNwbGF5OwogdHlwZWRlZiBzdHJ1Y3QgX0dzdEdMQ29udGV4dCBH
c3RHTENvbnRleHQ7Cit0eXBlZGVmIHN0cnVjdCBfR3N0RUdMSW1hZ2UgR3N0RUdMSW1hZ2U7CiAj
ZW5kaWYKIAogbmFtZXNwYWNlIFdURiB7CkBAIC0xMzEsNiArMTMyLDEwIEBAIHRlbXBsYXRlPD4g
dm9pZCBkZXJlZkdQdHI8R3N0R0xEaXNwbGF5PihHc3RHTERpc3BsYXkqIHB0cik7CiB0ZW1wbGF0
ZTw+IEdSZWZQdHI8R3N0R0xDb250ZXh0PiBhZG9wdEdSZWYoR3N0R0xDb250ZXh0KiBwdHIpOwog
dGVtcGxhdGU8PiBHc3RHTENvbnRleHQqIHJlZkdQdHI8R3N0R0xDb250ZXh0PihHc3RHTENvbnRl
eHQqIHB0cik7CiB0ZW1wbGF0ZTw+IHZvaWQgZGVyZWZHUHRyPEdzdEdMQ29udGV4dD4oR3N0R0xD
b250ZXh0KiBwdHIpOworCit0ZW1wbGF0ZTw+IEdSZWZQdHI8R3N0RUdMSW1hZ2U+IGFkb3B0R1Jl
ZihHc3RFR0xJbWFnZSogcHRyKTsKK3RlbXBsYXRlPD4gR3N0RUdMSW1hZ2UqIHJlZkdQdHI8R3N0
RUdMSW1hZ2U+KEdzdEVHTEltYWdlKiBwdHIpOwordGVtcGxhdGU8PiB2b2lkIGRlcmVmR1B0cjxH
c3RFR0xJbWFnZT4oR3N0RUdMSW1hZ2UqIHB0cik7CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2Ug
V1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmlu
ZGV4IDhhYTFiZDY2YTA4ODY4NTQxMTU0MmE3YjI4MjcyNjhkYmZlZjBmNzAuLjllNTUxNzM2Mjkz
YzY0NGMyZTk4NGY1MzI1Y2NkYzA4OWZlMjA0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0xNDAsNiArMTQwLDEyIEBACiAjZW5kaWYK
ICNlbmRpZiAvLyBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAKKyNpZiBVU0UoV1BFX1ZJREVPX1BM
QU5FX0RJU1BMQVlfRE1BQlVGKQorI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheUxpYldQRS5oIgor
I2luY2x1ZGUgPGdzdC9nbC9lZ2wvZ3N0ZWdsaW1hZ2UuaD4KKyNpbmNsdWRlIDx3cGUvZXh0ZW5z
aW9ucy92aWRlby1wbGFuZS1kaXNwbGF5LWRtYWJ1Zi5oPgorI2VuZGlmCisKIEdTVF9ERUJVR19D
QVRFR09SWSh3ZWJraXRfbWVkaWFfcGxheWVyX2RlYnVnKTsKICNkZWZpbmUgR1NUX0NBVF9ERUZB
VUxUIHdlYmtpdF9tZWRpYV9wbGF5ZXJfZGVidWcKIApAQCAtMTg5LDE0ICsxOTUsMTQgQEAgcHVi
bGljOgogICAgICAgICBtX3NpemUgPSBJbnRTaXplKEdTVF9WSURFT19JTkZPX1dJRFRIKCZ2aWRl
b0luZm8pLCBHU1RfVklERU9fSU5GT19IRUlHSFQoJnZpZGVvSW5mbykpOwogICAgICAgICBtX2hh
c0FscGhhQ2hhbm5lbCA9IEdTVF9WSURFT19JTkZPX0hBU19BTFBIQSgmdmlkZW9JbmZvKTsKICAg
ICAgICAgbV9idWZmZXIgPSBnc3Rfc2FtcGxlX2dldF9idWZmZXIoc2FtcGxlKTsKLSAgICAgICAg
aWYgKFVOTElLRUxZKCFHU1RfSVNfQlVGRkVSKG1fYnVmZmVyKSkpCisgICAgICAgIGlmIChVTkxJ
S0VMWSghR1NUX0lTX0JVRkZFUihtX2J1ZmZlci5nZXQoKSkpKQogICAgICAgICAgICAgcmV0dXJu
OwogCiAjaWYgVVNFKEdTVFJFQU1FUl9HTCkKICAgICAgICAgbV9mbGFncyA9IGZsYWdzIHwgKG1f
aGFzQWxwaGFDaGFubmVsID8gVGV4dHVyZU1hcHBlckdMOjpTaG91bGRCbGVuZCA6IDApOwogCiAg
ICAgICAgIGlmIChnc3RHTEVuYWJsZWQpIHsKLSAgICAgICAgICAgIG1faXNNYXBwZWQgPSBnc3Rf
dmlkZW9fZnJhbWVfbWFwKCZtX3ZpZGVvRnJhbWUsICZ2aWRlb0luZm8sIG1fYnVmZmVyLCBzdGF0
aWNfY2FzdDxHc3RNYXBGbGFncz4oR1NUX01BUF9SRUFEIHwgR1NUX01BUF9HTCkpOworICAgICAg
ICAgICAgbV9pc01hcHBlZCA9IGdzdF92aWRlb19mcmFtZV9tYXAoJm1fdmlkZW9GcmFtZSwgJnZp
ZGVvSW5mbywgbV9idWZmZXIuZ2V0KCksIHN0YXRpY19jYXN0PEdzdE1hcEZsYWdzPihHU1RfTUFQ
X1JFQUQgfCBHU1RfTUFQX0dMKSk7CiAgICAgICAgICAgICBpZiAobV9pc01hcHBlZCkgewogICAg
ICAgICAgICAgICAgIG1fdGV4dHVyZUlEID0gKnJlaW50ZXJwcmV0X2Nhc3Q8R0x1aW50Kj4obV92
aWRlb0ZyYW1lLmRhdGFbMF0pOwogICAgICAgICAgICAgICAgIG1faGFzTWFwcGVkVGV4dHVyZXMg
PSB0cnVlOwpAQCAtMjA4LDggKzIxNCwyMiBAQCBwdWJsaWM6CiAjZW5kaWYgLy8gVVNFKEdTVFJF
QU1FUl9HTCkKIAogICAgICAgICB7CisjaWYgVVNFKFdQRV9WSURFT19QTEFORV9ESVNQTEFZX0RN
QUJVRikKKyAgICAgICAgICAgIEdzdE1lbW9yeSogbWVtb3J5ID0gZ3N0X2J1ZmZlcl9wZWVrX21l
bW9yeShtX2J1ZmZlci5nZXQoKSwgMCk7CisgICAgICAgICAgICBpZiAoZ3N0X2lzX2dsX21lbW9y
eShtZW1vcnkpKSB7CisgICAgICAgICAgICAgICAgR3N0R0xNZW1vcnkqIGdsTWVtb3J5ID0gR1NU
X0dMX01FTU9SWV9DQVNUKG1lbW9yeSk7CisgICAgICAgICAgICAgICAgR1JlZlB0cjxHc3RFR0xJ
bWFnZT4gZWdsSW1hZ2UgPSBhZG9wdEdSZWYoZ3N0X2VnbF9pbWFnZV9mcm9tX3RleHR1cmUoR1NU
X0dMX0JBU0VfTUVNT1JZX0NBU1QobWVtb3J5KS0+Y29udGV4dCwgZ2xNZW1vcnksIG51bGxwdHIp
KTsKKyAgICAgICAgICAgICAgICBnc2l6ZSBvZmZzZXQ7CisgICAgICAgICAgICAgICAgaWYgKGVn
bEltYWdlICYmIGdzdF9lZ2xfaW1hZ2VfZXhwb3J0X2RtYWJ1ZihlZ2xJbWFnZS5nZXQoKSwgJm1f
ZG1hYnVmRkQsICZtX2RtYWJ1ZlN0cmlkZSwgJm9mZnNldCkpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBvbmNlRmxhZzsKKyAgICAgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7Cisg
ICAgICAgICAgICAgICAgR1NUX1dBUk5JTkcoIlRleHR1cmUgZXhwb3J0IHRvIERNQUJ1ZiBmYWls
ZWQsIGZhbGxpbmcgYmFjayB0byBpbnRlcm5hbCByZW5kZXJpbmciKTsKKyAgICAgICAgICAgIH0p
OworI2VuZGlmCiAgICAgICAgICAgICBtX3RleHR1cmVJRCA9IDA7Ci0gICAgICAgICAgICBtX2lz
TWFwcGVkID0gZ3N0X3ZpZGVvX2ZyYW1lX21hcCgmbV92aWRlb0ZyYW1lLCAmdmlkZW9JbmZvLCBt
X2J1ZmZlciwgR1NUX01BUF9SRUFEKTsKKyAgICAgICAgICAgIG1faXNNYXBwZWQgPSBnc3Rfdmlk
ZW9fZnJhbWVfbWFwKCZtX3ZpZGVvRnJhbWUsICZ2aWRlb0luZm8sIG1fYnVmZmVyLmdldCgpLCBH
U1RfTUFQX1JFQUQpOwogICAgICAgICAgICAgaWYgKG1faXNNYXBwZWQpIHsKICAgICAgICAgICAg
ICAgICAvLyBSaWdodCBub3cgdGhlIFRleHR1cmVNYXBwZXIgb25seSBzdXBwb3J0cyBjaHJvbWFz
IHdpdGggb25lIHBsYW5lCiAgICAgICAgICAgICAgICAgQVNTRVJUKEdTVF9WSURFT19JTkZPX05f
UExBTkVTKCZ2aWRlb0luZm8pID09IDEpOwpAQCAtMjI1LDEyICsyNDUsMzAgQEAgcHVibGljOgog
ICAgICAgICBnc3RfdmlkZW9fZnJhbWVfdW5tYXAoJm1fdmlkZW9GcmFtZSk7CiAgICAgfQogCisj
aWYgVVNFKFdQRV9WSURFT19QTEFORV9ESVNQTEFZX0RNQUJVRikKKyAgICB2b2lkIGhhbmRvZmZW
aWRlb0RtYUJ1ZihzdHJ1Y3Qgd3BlX3ZpZGVvX3BsYW5lX2Rpc3BsYXlfZG1hYnVmX3NvdXJjZSog
dmlkZW9QbGFuZURpc3BsYXlEbWFCdWZTb3VyY2UsIGNvbnN0IEludFJlY3QmIHJlY3QpCisgICAg
eworICAgICAgICBpZiAobV9kbWFidWZGRCA8PSAwKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIGlmIChtX2RtYWJ1ZlN0cmlkZSA9PSAtMSkKKyAgICAgICAgICAgIG1fZG1hYnVmU3Ry
aWRlID0gR1NUX1ZJREVPX0lORk9fUExBTkVfU1RSSURFKCZtX3ZpZGVvRnJhbWUuaW5mbywgMCk7
CisKKyAgICAgICAgd3BlX3ZpZGVvX3BsYW5lX2Rpc3BsYXlfZG1hYnVmX3NvdXJjZV91cGRhdGUo
dmlkZW9QbGFuZURpc3BsYXlEbWFCdWZTb3VyY2UsIG1fZG1hYnVmRkQsIHJlY3QueCgpLCByZWN0
LnkoKSwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSwgbV9kbWFidWZTdHJpZGUsIFtd
KHZvaWQqIGRhdGEpIHsKKyAgICAgICAgICAgIGdzdF9idWZmZXJfdW5yZWYoR1NUX0JVRkZFUl9D
QVNUKGRhdGEpKTsKKyAgICAgICAgfSwgZ3N0X2J1ZmZlcl9yZWYobV9idWZmZXIuZ2V0KCkpKTsK
KworICAgICAgICBjbG9zZShtX2RtYWJ1ZkZEKTsKKyAgICAgICAgbV9kbWFidWZGRCA9IDA7Cisg
ICAgfQorI2VuZGlmCisKICNpZiBVU0UoR1NUUkVBTUVSX0dMKQogICAgIHZpcnR1YWwgdm9pZCB3
YWl0Rm9yQ1BVU3luYygpCiAgICAgewotICAgICAgICBHc3RHTFN5bmNNZXRhKiBtZXRhID0gZ3N0
X2J1ZmZlcl9nZXRfZ2xfc3luY19tZXRhKG1fYnVmZmVyKTsKKyAgICAgICAgR3N0R0xTeW5jTWV0
YSogbWV0YSA9IGdzdF9idWZmZXJfZ2V0X2dsX3N5bmNfbWV0YShtX2J1ZmZlci5nZXQoKSk7CiAg
ICAgICAgIGlmIChtZXRhKSB7Ci0gICAgICAgICAgICBHc3RNZW1vcnkqIG1lbSA9IGdzdF9idWZm
ZXJfcGVla19tZW1vcnkobV9idWZmZXIsIDApOworICAgICAgICAgICAgR3N0TWVtb3J5KiBtZW0g
PSBnc3RfYnVmZmVyX3BlZWtfbWVtb3J5KG1fYnVmZmVyLmdldCgpLCAwKTsKICAgICAgICAgICAg
IEdzdEdMQ29udGV4dCogY29udGV4dCA9ICgoR3N0R0xCYXNlTWVtb3J5KiltZW0pLT5jb250ZXh0
OwogICAgICAgICAgICAgZ3N0X2dsX3N5bmNfbWV0YV93YWl0X2NwdShtZXRhLCBjb250ZXh0KTsK
ICAgICAgICAgfQpAQCAtMjQ4LDcgKzI4Niw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFT
U0VSVCghbV90ZXh0dXJlSUQpOwogICAgICAgICBHc3RWaWRlb0dMVGV4dHVyZVVwbG9hZE1ldGEq
IG1ldGE7Ci0gICAgICAgIGlmIChtX2J1ZmZlciAmJiAobWV0YSA9IGdzdF9idWZmZXJfZ2V0X3Zp
ZGVvX2dsX3RleHR1cmVfdXBsb2FkX21ldGEobV9idWZmZXIpKSkgeworICAgICAgICBpZiAobV9i
dWZmZXIgJiYgKG1ldGEgPSBnc3RfYnVmZmVyX2dldF92aWRlb19nbF90ZXh0dXJlX3VwbG9hZF9t
ZXRhKG1fYnVmZmVyLmdldCgpKSkpIHsKICAgICAgICAgICAgIGlmIChtZXRhLT5uX3RleHR1cmVz
ID09IDEpIHsgLy8gQlJHeCAmIEJHUkEgZm9ybWF0cyB1c2Ugb25seSBvbmUgdGV4dHVyZS4KICAg
ICAgICAgICAgICAgICBndWludCBpZHNbNF0gPSB7IHRleHR1cmUuaWQoKSwgMCwgMCwgMCB9Owog
CkBAIC0zMjQsNyArMzYyLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBHc3RC
dWZmZXIqIG1fYnVmZmVyOworICAgIEdSZWZQdHI8R3N0QnVmZmVyPiBtX2J1ZmZlcjsKICAgICBH
c3RWaWRlb0ZyYW1lIG1fdmlkZW9GcmFtZSB7IH07CiAgICAgSW50U2l6ZSBtX3NpemU7CiAgICAg
Ym9vbCBtX2hhc0FscGhhQ2hhbm5lbDsKQEAgLTMzMyw2ICszNzEsMTAgQEAgcHJpdmF0ZToKICAg
ICBHTHVpbnQgbV90ZXh0dXJlSUQgeyAwIH07CiAgICAgYm9vbCBtX2lzTWFwcGVkIHsgZmFsc2Ug
fTsKICAgICBib29sIG1faGFzTWFwcGVkVGV4dHVyZXMgeyBmYWxzZSB9OworI2lmIFVTRShXUEVf
VklERU9fUExBTkVfRElTUExBWV9ETUFCVUYpCisgICAgaW50IG1fZG1hYnVmRkQgeyAwIH07Cisg
ICAgaW50IG1fZG1hYnVmU3RyaWRlIHsgMCB9OworI2VuZGlmCiB9OwogI2VuZGlmCiAKQEAgLTM3
MCw2ICs0MTIsMTIgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICBtX3JlYWR5VGltZXJIYW5k
bGVyLnNldFByaW9yaXR5KEdfUFJJT1JJVFlfREVGQVVMVF9JRExFKTsKICNlbmRpZgogICAgIG1f
aXNQbGF5ZXJTaHV0dGluZ0Rvd24uc3RvcmUoZmFsc2UpOworCisjaWYgVVNFKFdQRV9WSURFT19Q
TEFORV9ESVNQTEFZX0RNQUJVRikKKyAgICBhdXRvJiBzaGFyZWREaXNwbGF5ID0gUGxhdGZvcm1E
aXNwbGF5OjpzaGFyZWREaXNwbGF5KCk7CisgICAgaWYgKGlzPFBsYXRmb3JtRGlzcGxheUxpYldQ
RT4oc2hhcmVkRGlzcGxheSkpCisgICAgICAgIG1fd3BlVmlkZW9QbGFuZURpc3BsYXlEbWFCdWYg
PSB3cGVfdmlkZW9fcGxhbmVfZGlzcGxheV9kbWFidWZfc291cmNlX2NyZWF0ZShkb3duY2FzdDxQ
bGF0Zm9ybURpc3BsYXlMaWJXUEU+KHNoYXJlZERpc3BsYXkpLmJhY2tlbmQoKSk7CisjZW5kaWYK
IH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyKCkKQEAgLTQzMiw2ICs0ODAsMTEgQEAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
Ojp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCkKICAgICBkb3duY2FzdDxOaWNvc2lhOjpD
b250ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbD4obV9uaWNvc2lhTGF5ZXItPmltcGwoKSkuaW52
YWxpZGF0ZUNsaWVudCgpOwogI2VuZGlmCiAKKyNpZiBVU0UoV1BFX1ZJREVPX1BMQU5FX0RJU1BM
QVlfRE1BQlVGKQorICAgIGlmIChtX3dwZVZpZGVvUGxhbmVEaXNwbGF5RG1hQnVmKQorICAgICAg
ICB3cGVfdmlkZW9fcGxhbmVfZGlzcGxheV9kbWFidWZfc291cmNlX2Rlc3Ryb3kobV93cGVWaWRl
b1BsYW5lRGlzcGxheURtYUJ1Zik7CisjZW5kaWYKKwogICAgIG1fbm90aWZpZXItPmludmFsaWRh
dGUoKTsKIAogICAgIGlmIChtX3ZpZGVvU2luaykKQEAgLTI4MzYsNiArMjg4OSwxMCBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZGlkRW5kKCkKICAgICAgICAgbV9pc1BhdXNl
ZCA9IHRydWU7CiAgICAgICAgIGNoYW5nZVBpcGVsaW5lU3RhdGUoR1NUX1NUQVRFX1JFQURZKTsK
ICAgICAgICAgbV9kaWREb3dubG9hZEZpbmlzaCA9IGZhbHNlOworCisjaWYgVVNFKFdQRV9WSURF
T19QTEFORV9ESVNQTEFZX0RNQUJVRikKKyAgICAgICAgd3BlX3ZpZGVvX3BsYW5lX2Rpc3BsYXlf
ZG1hYnVmX3NvdXJjZV9lbmRfb2Zfc3RyZWFtKG1fd3BlVmlkZW9QbGFuZURpc3BsYXlEbWFCdWYp
OworI2VuZGlmCiAgICAgfQogICAgIHRpbWVDaGFuZ2VkKCk7CiB9CkBAIC0zMDgzLDEyICszMTQw
LDQ3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzd2FwQnVmZmVyc0lmTmVl
ZGVkKCkKIH0KICNlbmRpZgogCisjaWYgVVNFKFdQRV9WSURFT19QTEFORV9ESVNQTEFZX0RNQUJV
RikKK2NsYXNzIEdTdHJlYW1lckRNQUJ1ZkhvbGVQdW5jaENsaWVudCA6IHB1YmxpYyBUZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcjo6SG9sZVB1bmNoQ2xpZW50IHsKK3B1YmxpYzoKKyAg
ICBHU3RyZWFtZXJETUFCdWZIb2xlUHVuY2hDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEdzdFZpZGVv
RnJhbWVIb2xkZXI+IGZyYW1lSG9sZGVyLCBzdHJ1Y3Qgd3BlX3ZpZGVvX3BsYW5lX2Rpc3BsYXlf
ZG1hYnVmX3NvdXJjZSogdmlkZW9QbGFuZURpc3BsYXlEbWFCdWZTb3VyY2UpCisgICAgICAgIDog
bV9mcmFtZUhvbGRlcihXVEZNb3ZlKGZyYW1lSG9sZGVyKSkKKyAgICAgICAgLCBtX3dwZVZpZGVv
UGxhbmVEaXNwbGF5RG1hQnVmKHZpZGVvUGxhbmVEaXNwbGF5RG1hQnVmU291cmNlKSB7IH07Cisg
ICAgdm9pZCBzZXRWaWRlb1JlY3RhbmdsZShjb25zdCBJbnRSZWN0JiByZWN0KSBmaW5hbAorICAg
IHsKKyAgICAgICAgaWYgKG1fd3BlVmlkZW9QbGFuZURpc3BsYXlEbWFCdWYpCisgICAgICAgICAg
ICBtX2ZyYW1lSG9sZGVyLT5oYW5kb2ZmVmlkZW9EbWFCdWYobV93cGVWaWRlb1BsYW5lRGlzcGxh
eURtYUJ1ZiwgcmVjdCk7CisgICAgfQorcHJpdmF0ZToKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3N0
VmlkZW9GcmFtZUhvbGRlcj4gbV9mcmFtZUhvbGRlcjsKKyAgICBzdHJ1Y3Qgd3BlX3ZpZGVvX3Bs
YW5lX2Rpc3BsYXlfZG1hYnVmX3NvdXJjZSogbV93cGVWaWRlb1BsYW5lRGlzcGxheURtYUJ1ZjsK
K307CisjZW5kaWYgLy8gVVNFKFdQRV9WSURFT19QTEFORV9ESVNQTEFZX0RNQUJVRikKKwogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnB1c2hUZXh0dXJlVG9Db21wb3NpdG9yKCkK
IHsKICAgICBhdXRvIHNhbXBsZUxvY2tlciA9IGhvbGRMb2NrKG1fc2FtcGxlTXV0ZXgpOwogICAg
IGlmICghR1NUX0lTX1NBTVBMRShtX3NhbXBsZS5nZXQoKSkpCiAgICAgICAgIHJldHVybjsKIAor
I2lmIFVTRShXUEVfVklERU9fUExBTkVfRElTUExBWV9ETUFCVUYpCisKKyAgICBhdXRvIHByb3h5
T3BlcmF0aW9uID0KKyAgICAgICAgW3RoaXNdKFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJv
eHkmIHByb3h5KQorICAgICAgICB7CisgICAgICAgICAgICBMb2NrSG9sZGVyIGhvbGRlcihwcm94
eS5sb2NrKCkpOworCisgICAgICAgICAgICBpZiAoIXByb3h5LmlzQWN0aXZlKCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3N0VmlkZW9G
cmFtZUhvbGRlcj4gZnJhbWVIb2xkZXIgPSBtYWtlVW5pcXVlPEdzdFZpZGVvRnJhbWVIb2xkZXI+
KG1fc2FtcGxlLmdldCgpLCBtX3ZpZGVvRGVjb2RlclBsYXRmb3JtLCBtX3RleHR1cmVNYXBwZXJG
bGFncywgZmFsc2UpOworCisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJCdWZmZXI+IGxheWVyQnVmZmVyID0gbWFrZVVuaXF1ZTxUZXh0dXJlTWFw
cGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4oMCwgbV9zaXplLCBUZXh0dXJlTWFwcGVyR0w6OlNob3Vs
ZE5vdEJsZW5kLCBHTF9ET05UX0NBUkUpOworICAgICAgICAgICAgYXV0byBob2xlUHVuY2hDbGll
bnQgPSBtYWtlVW5pcXVlPEdTdHJlYW1lckRNQUJ1ZkhvbGVQdW5jaENsaWVudD4oV1RGTW92ZShm
cmFtZUhvbGRlciksIG1fd3BlVmlkZW9QbGFuZURpc3BsYXlEbWFCdWYpOworICAgICAgICAgICAg
bGF5ZXJCdWZmZXItPnNldEhvbGVQdW5jaENsaWVudChXVEZNb3ZlKGhvbGVQdW5jaENsaWVudCkp
OworICAgICAgICAgICAgcHJveHkucHVzaE5leHRCdWZmZXIoV1RGTW92ZShsYXllckJ1ZmZlcikp
OworICAgICAgICB9OworI2Vsc2UKICAgICBhdXRvIHByb3h5T3BlcmF0aW9uID0KICAgICAgICAg
W3RoaXNdKFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkmIHByb3h5KQogICAgICAgICB7
CkBAIC0zMTE3LDYgKzMyMDksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
cHVzaFRleHR1cmVUb0NvbXBvc2l0b3IoKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgcHJv
eHkucHVzaE5leHRCdWZmZXIoV1RGTW92ZShsYXllckJ1ZmZlcikpOwogICAgICAgICB9OworI2Vu
ZGlmIC8vIFVTRShXUEVfVklERU9fUExBTkVfRElTUExBWV9ETUFCVUYpCiAKICNpZiBVU0UoTklD
T1NJQSkKICAgICBwcm94eU9wZXJhdGlvbihkb3duY2FzdDxOaWNvc2lhOjpDb250ZW50TGF5ZXJU
ZXh0dXJlTWFwcGVySW1wbD4obV9uaWNvc2lhTGF5ZXItPmltcGwoKSkucHJveHkoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggZjNmYTI5N2Rk
ZWM4Mjg3NTJhNmI4ZmMxNTk0NTU1NGIwNGZiYTcxMS4uM2ZiOGFiMDNlODIxYTdiZWY0ZWY2NDZi
MWY0MDY1NjNiNzYwYTE3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuaApAQCAtODEsNiArODEsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX0dzdFZpZGVvSW5m
byBHc3RWaWRlb0luZm87CiB0eXBlZGVmIHN0cnVjdCBfR3N0R0xDb250ZXh0IEdzdEdMQ29udGV4
dDsKIHR5cGVkZWYgc3RydWN0IF9Hc3RHTERpc3BsYXkgR3N0R0xEaXNwbGF5OwogCisjaWYgVVNF
KFdQRV9WSURFT19QTEFORV9ESVNQTEFZX0RNQUJVRikKK3N0cnVjdCB3cGVfdmlkZW9fcGxhbmVf
ZGlzcGxheV9kbWFidWZfc291cmNlOworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQml0bWFwVGV4dHVyZUdMOwpAQCAtNTE3LDYgKzUyMSwxMSBAQCBwcml2YXRlOgogICAg
IE9wdGlvbmFsPGJvb2w+IG1faGFzVGFpbnRlZE9yaWdpbiB7IFdURjo6bnVsbG9wdCB9OwogCiAg
ICAgR1JlZlB0cjxHc3RFbGVtZW50PiBtX2Zwc1NpbmsgeyBudWxscHRyIH07CisKK3ByaXZhdGU6
CisjaWYgVVNFKFdQRV9WSURFT19QTEFORV9ESVNQTEFZX0RNQUJVRikKKyAgICBzdHJ1Y3Qgd3Bl
X3ZpZGVvX3BsYW5lX2Rpc3BsYXlfZG1hYnVmX3NvdXJjZSogbV93cGVWaWRlb1BsYW5lRGlzcGxh
eURtYUJ1ZiB7IG51bGxwdHIgfTsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L2NtYWtlL0dTdHJlYW1lckRlZmluaXRpb25zLmNtYWtlIGIvU291cmNlL2NtYWtlL0dTdHJlYW1l
ckRlZmluaXRpb25zLmNtYWtlCmluZGV4IGQwMDk0YjBjMzg0NWYwY2Y2ZGJjNDYxOTU5M2UyNmVl
MmU3ZWRiZDMuLjQ3NGUzMWI4YmE3NzFkODA3ZmNmY2I5NjIwZWQzZjU5NTBmNTBhZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9jbWFrZS9HU3RyZWFtZXJEZWZpbml0aW9ucy5jbWFrZQorKysgYi9Tb3Vy
Y2UvY21ha2UvR1N0cmVhbWVyRGVmaW5pdGlvbnMuY21ha2UKQEAgLTUsMyArNSw0IEBAIFdFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9TT1VSQ0UgUFVCTElDIE9O
KQogCiBXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfR1NUUkVBTUVSX0dMICJXaGV0aGVyIHRvIGVu
YWJsZSBzdXBwb3J0IGZvciBHU3RyZWFtZXIgR0wiIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9O
X0RFRklORShVU0VfR1NUUkVBTUVSX01QRUdUUyAiV2hldGhlciB0byBlbmFibGUgc3VwcG9ydCBm
b3IgTVBFRy1UUyIgUFJJVkFURSBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfV1BFX1ZJ
REVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGICJXaGV0aGVyIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBj
bGllbnQtc2lkZSB2aWRlbyByZW5kZXJpbmciIFBSSVZBVEUgT0ZGKQpkaWZmIC0tZ2l0IGEvU291
cmNlL2NtYWtlL0dTdHJlYW1lckRlcGVuZGVuY2llcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9HU3Ry
ZWFtZXJEZXBlbmRlbmNpZXMuY21ha2UKaW5kZXggNjFlZTcyMzU4MzkxZWM5NGJjZDE0NTdlYzQ1
YzYxYjQ0NjY5ODE5NS4uYTNjZTRiYjc1YTllZjg4ZWViOGYwMTNjNGEyM2EyOTJmNWVkMWY4OCAx
MDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL0dTdHJlYW1lckRlcGVuZGVuY2llcy5jbWFrZQorKysg
Yi9Tb3VyY2UvY21ha2UvR1N0cmVhbWVyRGVwZW5kZW5jaWVzLmNtYWtlCkBAIC0zLDMgKzMsNCBA
QCBpZiAoUE9SVCBTVFJFUVVBTCAiR1RLIikKIGVuZGlmICgpCiBXRUJLSVRfT1BUSU9OX0RFUEVO
RChVU0VfR1NUUkVBTUVSX0dMIEVOQUJMRV9WSURFTykKIFdFQktJVF9PUFRJT05fREVQRU5EKFVT
RV9HU1RSRUFNRVJfTVBFR1RTIEVOQUJMRV9WSURFTykKK1dFQktJVF9PUFRJT05fREVQRU5EKFVT
RV9XUEVfVklERU9fUExBTkVfRElTUExBWV9ETUFCVUYgVVNFX0dTVFJFQU1FUl9HTCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlv
bnNXUEUuY21ha2UKaW5kZXggYTg4ZTZhYjY1OTdmM2RhMjUxMGI3Y2E5NmYwMDA5YzUzNWIzOTNj
NC4uNjc5ZDBiYzg5ZjU2NmFmNjEyOTY2OWVjNzYzNzE4NTAwZGYwNzhmNCAxMDA2NDQKLS0tIGEv
U291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNX
UEUuY21ha2UKQEAgLTE2Niw4ICsxNjYsMTAgQEAgZW5kaWYgKCkKIGlmIChFTkFCTEVfV1BFX1FU
X0FQSSkKICAgICBmaW5kX3BhY2thZ2UoUXQ1IFJFUVVJUkVEIENPTVBPTkVOVFMgQ29yZSBRdWlj
ayBHdWkpCiAgICAgZmluZF9wYWNrYWdlKFF0NVRlc3QgUkVRVUlSRUQpCi0gICAgZmluZF9wYWNr
YWdlKFBrZ0NvbmZpZykKLSAgICBmaW5kX3BhY2thZ2UoV1BFQmFja2VuZC1mZG8gMS4zLjAgUkVR
VUlSRUQpCitlbmRpZiAoKQorCitpZiAoRU5BQkxFX1dQRV9RVF9BUEkgT1IgVVNFX1dQRV9WSURF
T19QTEFORV9ESVNQTEFZX0RNQUJVRikKKyAgICBmaW5kX3BhY2thZ2UoV1BFQmFja2VuZC1mZG8g
MS41LjAgUkVRVUlSRUQpCiBlbmRpZiAoKQogCiBhZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19X
UEVfXz0xKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDA4OWNkMThmMjBiNDA4ZTM1ZGJhZWJhY2E4NmVkYzI3NmVjMzk0MDAuLmZjNzk2YTNkMjQy
ZjI3YjU5MWZlZmYxZWEwNDQyZWIwMTUwN2I2YjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wMS0xNSAgUGhp
bGlwcGUgTm9ybWFuZCAgPHBoaWxuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl1b
V1BFXSBDbGllbnQtc2lkZSB2aWRlbyByZW5kZXJpbmcgc3VwcG9ydAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2Mjg5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3cGUvamhidWlsZC5tb2R1bGVzOiBC
dW1wIHRvIGxpYndwZSBhbmQgd3BlYmFja2VuZC1mZG8gZ2l0CisgICAgICAgIHNuYXBzaG90cywg
dW50aWwgMS41LnggcmVsZWFzZXMgYXJlIHB1Ymxpc2hlZC4KKwogMjAyMC0wMS0xNSAgQWxpY2lh
IEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dURl0gUmVtb3Zl
IE1lZGlhVGltZS5jcHAgdGVzdCB3YXJuaW5nIGluIEdDQwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3Bl
L2poYnVpbGQubW9kdWxlcyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKaW5kZXggYjgyY2I4
MTU1Y2ZlYzIzMzZkOGE2NzViZTI2YWYyYzY0MzEyODZjMy4uMzEwOTkxMmQxYzhmYjliMjQwZGNh
MTVmYTc0Yzc1MTNiNjk0MTcwNiAxMDA2NDQKLS0tIGEvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxl
cworKysgYi9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzCkBAIC0xODQsOCArMTg0LDcgQEAKICAg
PC9hdXRvdG9vbHM+CiAKICAgPGNtYWtlIGlkPSJsaWJ3cGUiPgotICAgIDxicmFuY2ggcmVwbz0i
d3Bld2Via2l0IiBtb2R1bGU9ImxpYndwZS0xLjQuMC50YXIueHoiIHZlcnNpb249IjEuNC4wIgot
ICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmUyZDM0OTRmYzMzZmU5NDZhZDkxN2ZkNmEzYWJkMTI3
NDYyYjkxYmJhNjJlZjhiMzU1MDdlOTJmOGVkZTQxODgiLz4KKyAgICA8YnJhbmNoIHJlcG89Imdp
dGh1Yi5jb20iIG1vZHVsZT0iV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9saWJ3cGUuZ2l0IiBjaGVj
a291dGRpcj0ibGlid3BlIiB0YWc9IjY3Y2NiNDA3ZWZiMjk1YzcyNzU1MzE0NTA4MDkzN2U4YmIz
YTMyMTEiLz4KICAgPC9jbWFrZT4KIAogICA8Y21ha2UgaWQ9IndwZWJhY2tlbmQtZmRvIj4KQEAg
LTE5Myw4ICsxOTIsNyBAQAogICAgICAgPGRlcCBwYWNrYWdlPSJsaWJ3cGUiLz4KICAgICAgIDxk
ZXAgcGFja2FnZT0iZ2xpYiIvPgogICAgIDwvZGVwZW5kZW5jaWVzPgotICAgIDxicmFuY2ggcmVw
bz0id3Bld2Via2l0IiBtb2R1bGU9IndwZWJhY2tlbmQtZmRvLTEuNC4wLnRhci54eiIgdmVyc2lv
bj0iMS40LjAiCi0gICAgICAgICAgICBoYXNoPSJzaGEyNTY6YTkxOWNhNGE1YmM0NDVmOTQxOWE1
YjdmMzc4MWNmYzk4ZTVhYmNmNWQ3MjU5ZWIxODY5ZjVhYjIwZmQxOGJhZiIvPgorICAgIDxicmFu
Y2ggcmVwbz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJJZ2FsaWEvV1BFQmFja2VuZC1mZG8uZ2l0IiBj
aGVja291dGRpcj0id3BlYmFja2VuZC1mZG8iIHRhZz0iMTczMTZkNzM2NWY1MDAxNzYxMzhkOTAw
Zjk1YWFlNzNlZjBlMjIzYSIvPgogICA8L2NtYWtlPgogCiAgIDxhdXRvdG9vbHMgaWQ9ImxpYmdw
Zy1lcnJvciIgYXV0b2dlbi1zaD0iYXV0b3JlY29uZiI+CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cg
Yi9DaGFuZ2VMb2cKaW5kZXggMTI5MDRlNTJjMTMxY2ViMzA1M2JiNDQyYzc2YmMwY2I5ZTgwNDkx
MS4uZTkwY2I2ZDViYTM4ZjNjNzE1ZjBiMjhiNDQ0NGYwODQxZTUxNzgyYiAxMDA2NDQKLS0tIGEv
Q2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAxLTE1ICBQ
aGlsaXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XVtXUEVdIENsaWVudC1zaWRlIHZpZGVvIHJlbmRlcmluZyBzdXBwb3J0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYyODkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgY29tcGlsZS10aW1l
IG9wdGlvbiB0byBlbmFibGUgY2xpZW50LXNpZGUgdmlkZW8KKyAgICAgICAgcmVuZGVyaW5nIHN1
cHBvcnQuIFdpdGggdGhpcyBmZWF0dXJlIGVuYWJsZWQgdGhlIFVJUHJvY2VzcyB3aWxsIGJlCisg
ICAgICAgIGluIGNoYXJnZSBvZiBwb3NpdGlvbmluZyBhbmQgcmVuZGVyaW5nIHZpZGVvIHN1cmZh
Y2VzLCB0aGFua3MgdG8KKyAgICAgICAgdGhlIFdQRUJhY2tlbmQtRkRPIHZpZGVvLXBsYW5lLWRp
c3BsYXktZG1hYnVmIHByb3RvY29sLgorCisgICAgICAgICogU291cmNlL2NtYWtlL0dTdHJlYW1l
ckRlZmluaXRpb25zLmNtYWtlOiBBZGQKKyAgICAgICAgVVNFX1dQRV9WSURFT19QTEFORV9ESVNQ
TEFZX0RNQUJVRiBDTWFrZSBvcHRpb24sIGRpc2FibGVkIGJ5CisgICAgICAgIGRlZmF1bHQuCisg
ICAgICAgICogU291cmNlL2NtYWtlL0dTdHJlYW1lckRlcGVuZGVuY2llcy5jbWFrZTogVGhpcyBu
ZXcgb3B0aW9uCisgICAgICAgIGRlcGVuZHMgb24gR1N0cmVhbWVyLUdMLgorICAgICAgICAqIFNv
dXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlOiBJdCBkZXBlbmRzIGFsc28gb24gdGhlIHByZXNl
bmNlCisgICAgICAgIG9mIHRoZSBXUEVCYWNrZW5kLUZETyBsaWJyYXJ5LgorCiAyMDIwLTAxLTEw
ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIENsYXJp
ZnkgVVNFX09QRU5HTF9FU18zCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387904</attachid>
            <date>2020-01-16 03:14:39 -0800</date>
            <delta_ts>2020-01-16 07:25:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206289-20200116111438.patch</filename>
            <type>text/plain</type>
            <size>20523</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc3MTc1MWE3OWYyZDA3
NTIwMmJkYjczNjVkZmUxYTA4ZjY0NDk4NC4uM2FjMGNkZWZmOTFiMjZlZTZmN2M3ZGQzZDg1NTQ3
NzA2Y2FmYmE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTAxLTE1ICBQaGls
aXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXVtX
UEVdIENsaWVudC1zaWRlIHZpZGVvIHJlbmRlcmluZyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYyODkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaXRoIHRoZSBXUEVfVklERU9fUExBTkVf
RElTUExBWV9ETUFCVUYgb3B0aW9uIGVuYWJsZWQgdGhlIHBsYXllcgorICAgICAgICB3aWxsIHJl
bmRlciBhIHRyYW5zcGFyZW50IHBsYWNlaG9sZGVyIGZvciB2aWRlb3MsIHVzaW5nIHRoZQorICAg
ICAgICBIb2xlUHVuY2ggY29kZSBwYXRoLiBUaGVuIGl0IGlzIHVwIHRvIHRoZSBVSVByb2Nlc3Mg
dG8gbGlzdGVuIHRvCisgICAgICAgIHRoZSBpbmNvbWluZyB2aWRlbyBkbWFidWZzIGFuZCByZW5k
ZXIgdGhlbS4gVGhpcyBhbGxvd3MgdGhlCisgICAgICAgIGJyb3dzZXIgdG8gdXNlIFdheWxhbmQg
cHJvdG9jb2xzIHJlbGF0ZWQgd2l0aCBQcm90ZWN0aW9uIChIRENQLAorICAgICAgICBmb3IgaW5z
dGFuY2UpLgorCisgICAgICAgICogUGxhdGZvcm1XUEUuY21ha2U6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV1RG
OjphZG9wdEdSZWYpOgorICAgICAgICAoV1RGOjpyZWZHUHRyPEdzdEVHTEltYWdlPik6CisgICAg
ICAgIChXVEY6OmRlcmVmR1B0cjxHc3RFR0xJbWFnZT4pOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpHc3RWaWRlb0ZyYW1lSG9sZGVyOjpHc3RWaWRlb0ZyYW1lSG9sZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkdzdFZpZGVvRnJhbWVIb2xkZXI6OmhhbmRvZmZWaWRlb0RtYUJ1
Zik6CisgICAgICAgIChXZWJDb3JlOjpHc3RWaWRlb0ZyYW1lSG9sZGVyOjp3YWl0Rm9yQ1BVU3lu
Yyk6CisgICAgICAgIChXZWJDb3JlOjpHc3RWaWRlb0ZyYW1lSG9sZGVyOjp1cGRhdGVUZXh0dXJl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6TWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmRpZEVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpHU3RyZWFtZXJETUFCdWZIb2xlUHVuY2hDbGllbnQ6OkdTdHJlYW1lckRNQUJ1Zkhv
bGVQdW5jaENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OnB1c2hUZXh0dXJlVG9Db21wb3NpdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmg6CisKIDIwMjAtMDEt
MTYgIEFsaWNpYSBCb3lhIEdhcmPDrWEgIDxhYm95YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtN
U0VdIERvbid0IGVucXVldWUgc2FtcGxlcyB0aGF0IHN0YXJ0IGF0IGEgYmlnIGRpc2NvbnRpbnVp
dHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKaW5kZXggYmY3Zjc4YTAxNDlhMWZiNzY0ZGQ3Njdm
MmI0YzQ1ZDVjY2EzNzc5OC4uMzZlNzBjMTYyYzhiMGI2Yzc2ZGVjMTFjZmNjNTI1YWE1Nzg2YmMy
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTU3LDYgKzU3LDcgQEAgbGlzdChBUFBF
TkQgV2ViQ29yZV9MSUJSQVJJRVMKICAgICAke0xJQlRBU04xX0xJQlJBUklFU30KICAgICAke1VQ
T1dFUkdMSUJfTElCUkFSSUVTfQogICAgICR7V1BFX0xJQlJBUklFU30KKyAgICAke1dQRUJBQ0tF
TkRfRkRPX0xJQlJBUklFU30KICkKIAogbGlzdChBUFBFTkQgV2ViQ29yZV9TWVNURU1fSU5DTFVE
RV9ESVJFQ1RPUklFUwpAQCAtNjYsNCArNjcsNSBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NZU1RF
TV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgJHtMSUJUQVNOMV9JTkNMVURFX0RJUlN9CiAgICAg
JHtVUE9XRVJHTElCX0lOQ0xVREVfRElSU30KICAgICAke1dQRV9JTkNMVURFX0RJUlN9CisgICAg
JHtXUEVCQUNLRU5EX0ZET19JTkNMVURFX0RJUlN9CiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0ckdTdHJlYW1l
ci5jcHAKaW5kZXggZGE1MDI2Mjk2MTFiMzNjMjc3NTk5ZjEzMDg1YjRhYTE5OGNkNmM0My4uYWQ2
MzIyMDViMzJlNGNjZGRkNjllZGJjMWQ3YzBhZjI3NWUzODhlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRy
R1N0cmVhbWVyLmNwcApAQCAtMjMsNiArMjMsMTAgQEAKICNpZiBVU0UoR1NUUkVBTUVSKQogI2lu
Y2x1ZGUgPGdzdC9nc3QuaD4KIAorI2lmIFVTRShHU1RSRUFNRVJfR0wpCisjaW5jbHVkZSA8Z3N0
L2dsL2VnbC9nc3RlZ2xpbWFnZS5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXVEYgewogCiB0ZW1w
bGF0ZSA8PiBHUmVmUHRyPEdzdEVsZW1lbnQ+IGFkb3B0R1JlZihHc3RFbGVtZW50KiBwdHIpCkBA
IC01MDQsNiArNTA4LDI0IEBAIHRlbXBsYXRlPD4gdm9pZCBkZXJlZkdQdHI8R3N0R0xDb250ZXh0
PihHc3RHTENvbnRleHQqIHB0cikKICAgICAgICAgZ3N0X29iamVjdF91bnJlZihHU1RfT0JKRUNU
KHB0cikpOwogfQogCit0ZW1wbGF0ZSA8PiBHUmVmUHRyPEdzdEVHTEltYWdlPiBhZG9wdEdSZWYo
R3N0RUdMSW1hZ2UqIHB0cikKK3sKKyAgICByZXR1cm4gR1JlZlB0cjxHc3RFR0xJbWFnZT4ocHRy
LCBHUmVmUHRyQWRvcHQpOworfQorCit0ZW1wbGF0ZSA8PiBHc3RFR0xJbWFnZSogcmVmR1B0cjxH
c3RFR0xJbWFnZT4oR3N0RUdMSW1hZ2UqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBn
c3RfZWdsX2ltYWdlX3JlZihwdHIpOworICAgIHJldHVybiBwdHI7Cit9CisKK3RlbXBsYXRlIDw+
IHZvaWQgZGVyZWZHUHRyPEdzdEVHTEltYWdlPihHc3RFR0xJbWFnZSogcHRyKQoreworICAgIGlm
IChwdHIpCisgICAgICAgIGdzdF9lZ2xfaW1hZ2VfdW5yZWYocHRyKTsKK30KKwogI2VuZGlmIC8v
IFVTRShHU1RSRUFNRVJfR0wpCiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9HUmVmUHRyR1N0
cmVhbWVyLmgKaW5kZXggMWRjMDUyOWExMWE0MTUyOWNkNjg1ZDAwNmE4MGExN2MyYTg3ZjEzNS4u
ZDk0MGY4Y2EwZjk1MGZmNDI0M2ZlNDU2Mjk0Y2JmM2U0ODUyZDM0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0dSZWZQdHJHU3RyZWFtZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1JlZlB0
ckdTdHJlYW1lci5oCkBAIC0zMCw2ICszMCw3IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJT
cmMgV2ViS2l0V2ViU3JjOwogI2lmIFVTRShHU1RSRUFNRVJfR0wpCiB0eXBlZGVmIHN0cnVjdCBf
R3N0R0xEaXNwbGF5IEdzdEdMRGlzcGxheTsKIHR5cGVkZWYgc3RydWN0IF9Hc3RHTENvbnRleHQg
R3N0R0xDb250ZXh0OwordHlwZWRlZiBzdHJ1Y3QgX0dzdEVHTEltYWdlIEdzdEVHTEltYWdlOwog
I2VuZGlmCiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtMTMxLDYgKzEzMiwxMCBAQCB0ZW1wbGF0ZTw+
IHZvaWQgZGVyZWZHUHRyPEdzdEdMRGlzcGxheT4oR3N0R0xEaXNwbGF5KiBwdHIpOwogdGVtcGxh
dGU8PiBHUmVmUHRyPEdzdEdMQ29udGV4dD4gYWRvcHRHUmVmKEdzdEdMQ29udGV4dCogcHRyKTsK
IHRlbXBsYXRlPD4gR3N0R0xDb250ZXh0KiByZWZHUHRyPEdzdEdMQ29udGV4dD4oR3N0R0xDb250
ZXh0KiBwdHIpOwogdGVtcGxhdGU8PiB2b2lkIGRlcmVmR1B0cjxHc3RHTENvbnRleHQ+KEdzdEdM
Q29udGV4dCogcHRyKTsKKwordGVtcGxhdGU8PiBHUmVmUHRyPEdzdEVHTEltYWdlPiBhZG9wdEdS
ZWYoR3N0RUdMSW1hZ2UqIHB0cik7Cit0ZW1wbGF0ZTw+IEdzdEVHTEltYWdlKiByZWZHUHRyPEdz
dEVHTEltYWdlPihHc3RFR0xJbWFnZSogcHRyKTsKK3RlbXBsYXRlPD4gdm9pZCBkZXJlZkdQdHI8
R3N0RUdMSW1hZ2U+KEdzdEVHTEltYWdlKiBwdHIpOwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL0dVbmlxdWVQdHJHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9HVW5pcXVlUHRyR1N0cmVhbWVyLmgKaW5kZXggZTBlZWIzZjI3YjdhYWEx
ZTg5OGM4MTExMGU5NGEwZDJlNTZkNzgxYS4uYWEwNzc0OGRkNzU2NWIwYTY4MjdmMzNmMzgzMmM1
ZGFjYmY0ZTVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0dVbmlxdWVQdHJHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvR1VuaXF1ZVB0ckdTdHJlYW1lci5oCkBAIC0xNyw4ICsx
Nyw4IEBACiAgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAotI2lmbmRlZiBH
VW5pcXVlUHRyR1N0cmVhbWVyX2gKLSNkZWZpbmUgR1VuaXF1ZVB0ckdTdHJlYW1lcl9oCisjcHJh
Z21hIG9uY2UKKwogI2lmIFVTRShHU1RSRUFNRVIpCiAKICNpbmNsdWRlIDxnc3QvYXVkaW8vYXVk
aW8uaD4KQEAgLTMwLDYgKzMwLDEwIEBACiAjaW5jbHVkZSA8Z3N0L3ZpZGVvL3ZpZGVvLmg+CiAj
aW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCisjaWYgVVNFKFdQRV9WSURFT19QTEFO
RV9ESVNQTEFZX0RNQUJVRikKKyNpbmNsdWRlIDx3cGUvZXh0ZW5zaW9ucy92aWRlby1wbGFuZS1k
aXNwbGF5LWRtYWJ1Zi5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXVEYgewogCiBXVEZfREVGSU5F
X0dQVFJfREVMRVRFUihHc3RTdHJ1Y3R1cmUsIGdzdF9zdHJ1Y3R1cmVfZnJlZSkKQEAgLTQxLDcg
KzQ1LDExIEBAIFdURl9ERUZJTkVfR1BUUl9ERUxFVEVSKEdzdEJ5dGVSZWFkZXIsIGdzdF9ieXRl
X3JlYWRlcl9mcmVlKQogV1RGX0RFRklORV9HUFRSX0RFTEVURVIoR3N0VmlkZW9Db252ZXJ0ZXIs
IGdzdF92aWRlb19jb252ZXJ0ZXJfZnJlZSkKIFdURl9ERUZJTkVfR1BUUl9ERUxFVEVSKEdzdEF1
ZGlvQ29udmVydGVyLCBnc3RfYXVkaW9fY29udmVydGVyX2ZyZWUpCiAKKyNpZiBVU0UoV1BFX1ZJ
REVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGKQorV1RGX0RFRklORV9HUFRSX0RFTEVURVIoc3RydWN0
IHdwZV92aWRlb19wbGFuZV9kaXNwbGF5X2RtYWJ1Zl9zb3VyY2UsIHdwZV92aWRlb19wbGFuZV9k
aXNwbGF5X2RtYWJ1Zl9zb3VyY2VfZGVzdHJveSkKKyNlbmRpZgorCiB9CiAKICNlbmRpZiAvLyBV
U0UoR1NUUkVBTUVSKQotI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lci5jcHAKaW5kZXggODVhYWYwNGU3YTIzZDcwMjM5MDQxZDA1MjA1ZTBhMDE0
MzVjNmExMC4uOWI1Njg4MjI0Y2UyNjcxNzcxYmE5MGIxNGE3MmQ2OTM2ZDMxZjY2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTE0MCw2
ICsxNDAsMTIgQEAKICNlbmRpZgogI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBFUl9HTCkKIAor
I2lmIFVTRShXUEVfVklERU9fUExBTkVfRElTUExBWV9ETUFCVUYpCisjaW5jbHVkZSAiUGxhdGZv
cm1EaXNwbGF5TGliV1BFLmgiCisjaW5jbHVkZSA8Z3N0L2dsL2VnbC9nc3RlZ2xpbWFnZS5oPgor
I2luY2x1ZGUgPHdwZS9leHRlbnNpb25zL3ZpZGVvLXBsYW5lLWRpc3BsYXktZG1hYnVmLmg+Cisj
ZW5kaWYKKwogR1NUX0RFQlVHX0NBVEVHT1JZKHdlYmtpdF9tZWRpYV9wbGF5ZXJfZGVidWcpOwog
I2RlZmluZSBHU1RfQ0FUX0RFRkFVTFQgd2Via2l0X21lZGlhX3BsYXllcl9kZWJ1ZwogCkBAIC0x
ODksMTQgKzE5NSwxNCBAQCBwdWJsaWM6CiAgICAgICAgIG1fc2l6ZSA9IEludFNpemUoR1NUX1ZJ
REVPX0lORk9fV0lEVEgoJnZpZGVvSW5mbyksIEdTVF9WSURFT19JTkZPX0hFSUdIVCgmdmlkZW9J
bmZvKSk7CiAgICAgICAgIG1faGFzQWxwaGFDaGFubmVsID0gR1NUX1ZJREVPX0lORk9fSEFTX0FM
UEhBKCZ2aWRlb0luZm8pOwogICAgICAgICBtX2J1ZmZlciA9IGdzdF9zYW1wbGVfZ2V0X2J1ZmZl
cihzYW1wbGUpOwotICAgICAgICBpZiAoVU5MSUtFTFkoIUdTVF9JU19CVUZGRVIobV9idWZmZXIp
KSkKKyAgICAgICAgaWYgKFVOTElLRUxZKCFHU1RfSVNfQlVGRkVSKG1fYnVmZmVyLmdldCgpKSkp
CiAgICAgICAgICAgICByZXR1cm47CiAKICNpZiBVU0UoR1NUUkVBTUVSX0dMKQogICAgICAgICBt
X2ZsYWdzID0gZmxhZ3MgfCAobV9oYXNBbHBoYUNoYW5uZWwgPyBUZXh0dXJlTWFwcGVyR0w6OlNo
b3VsZEJsZW5kIDogMCk7CiAKICAgICAgICAgaWYgKGdzdEdMRW5hYmxlZCkgewotICAgICAgICAg
ICAgbV9pc01hcHBlZCA9IGdzdF92aWRlb19mcmFtZV9tYXAoJm1fdmlkZW9GcmFtZSwgJnZpZGVv
SW5mbywgbV9idWZmZXIsIHN0YXRpY19jYXN0PEdzdE1hcEZsYWdzPihHU1RfTUFQX1JFQUQgfCBH
U1RfTUFQX0dMKSk7CisgICAgICAgICAgICBtX2lzTWFwcGVkID0gZ3N0X3ZpZGVvX2ZyYW1lX21h
cCgmbV92aWRlb0ZyYW1lLCAmdmlkZW9JbmZvLCBtX2J1ZmZlci5nZXQoKSwgc3RhdGljX2Nhc3Q8
R3N0TWFwRmxhZ3M+KEdTVF9NQVBfUkVBRCB8IEdTVF9NQVBfR0wpKTsKICAgICAgICAgICAgIGlm
IChtX2lzTWFwcGVkKSB7CiAgICAgICAgICAgICAgICAgbV90ZXh0dXJlSUQgPSAqcmVpbnRlcnBy
ZXRfY2FzdDxHTHVpbnQqPihtX3ZpZGVvRnJhbWUuZGF0YVswXSk7CiAgICAgICAgICAgICAgICAg
bV9oYXNNYXBwZWRUZXh0dXJlcyA9IHRydWU7CkBAIC0yMDgsOCArMjE0LDIyIEBAIHB1YmxpYzoK
ICNlbmRpZiAvLyBVU0UoR1NUUkVBTUVSX0dMKQogCiAgICAgICAgIHsKKyNpZiBVU0UoV1BFX1ZJ
REVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGKQorICAgICAgICAgICAgR3N0TWVtb3J5KiBtZW1vcnkg
PSBnc3RfYnVmZmVyX3BlZWtfbWVtb3J5KG1fYnVmZmVyLmdldCgpLCAwKTsKKyAgICAgICAgICAg
IGlmIChnc3RfaXNfZ2xfbWVtb3J5KG1lbW9yeSkpIHsKKyAgICAgICAgICAgICAgICBHc3RHTE1l
bW9yeSogZ2xNZW1vcnkgPSBHU1RfR0xfTUVNT1JZX0NBU1QobWVtb3J5KTsKKyAgICAgICAgICAg
ICAgICBHUmVmUHRyPEdzdEVHTEltYWdlPiBlZ2xJbWFnZSA9IGFkb3B0R1JlZihnc3RfZWdsX2lt
YWdlX2Zyb21fdGV4dHVyZShHU1RfR0xfQkFTRV9NRU1PUllfQ0FTVChtZW1vcnkpLT5jb250ZXh0
LCBnbE1lbW9yeSwgbnVsbHB0cikpOworICAgICAgICAgICAgICAgIGdzaXplIG9mZnNldDsKKyAg
ICAgICAgICAgICAgICBpZiAoZWdsSW1hZ2UgJiYgZ3N0X2VnbF9pbWFnZV9leHBvcnRfZG1hYnVm
KGVnbEltYWdlLmdldCgpLCAmbV9kbWFidWZGRCwgJm1fZG1hYnVmU3RyaWRlLCAmb2Zmc2V0KSkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
c3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOworICAgICAgICAgICAgc3RkOjpjYWxsX29u
Y2Uob25jZUZsYWcsIFtdIHsKKyAgICAgICAgICAgICAgICBHU1RfV0FSTklORygiVGV4dHVyZSBl
eHBvcnQgdG8gRE1BQnVmIGZhaWxlZCwgZmFsbGluZyBiYWNrIHRvIGludGVybmFsIHJlbmRlcmlu
ZyIpOworICAgICAgICAgICAgfSk7CisjZW5kaWYKICAgICAgICAgICAgIG1fdGV4dHVyZUlEID0g
MDsKLSAgICAgICAgICAgIG1faXNNYXBwZWQgPSBnc3RfdmlkZW9fZnJhbWVfbWFwKCZtX3ZpZGVv
RnJhbWUsICZ2aWRlb0luZm8sIG1fYnVmZmVyLCBHU1RfTUFQX1JFQUQpOworICAgICAgICAgICAg
bV9pc01hcHBlZCA9IGdzdF92aWRlb19mcmFtZV9tYXAoJm1fdmlkZW9GcmFtZSwgJnZpZGVvSW5m
bywgbV9idWZmZXIuZ2V0KCksIEdTVF9NQVBfUkVBRCk7CiAgICAgICAgICAgICBpZiAobV9pc01h
cHBlZCkgewogICAgICAgICAgICAgICAgIC8vIFJpZ2h0IG5vdyB0aGUgVGV4dHVyZU1hcHBlciBv
bmx5IHN1cHBvcnRzIGNocm9tYXMgd2l0aCBvbmUgcGxhbmUKICAgICAgICAgICAgICAgICBBU1NF
UlQoR1NUX1ZJREVPX0lORk9fTl9QTEFORVMoJnZpZGVvSW5mbykgPT0gMSk7CkBAIC0yMjUsMTIg
KzI0NSwzMCBAQCBwdWJsaWM6CiAgICAgICAgIGdzdF92aWRlb19mcmFtZV91bm1hcCgmbV92aWRl
b0ZyYW1lKTsKICAgICB9CiAKKyNpZiBVU0UoV1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVG
KQorICAgIHZvaWQgaGFuZG9mZlZpZGVvRG1hQnVmKHN0cnVjdCB3cGVfdmlkZW9fcGxhbmVfZGlz
cGxheV9kbWFidWZfc291cmNlKiB2aWRlb1BsYW5lRGlzcGxheURtYUJ1ZlNvdXJjZSwgY29uc3Qg
SW50UmVjdCYgcmVjdCkKKyAgICB7CisgICAgICAgIGlmIChtX2RtYWJ1ZkZEIDw9IDApCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKG1fZG1hYnVmU3RyaWRlID09IC0xKQorICAg
ICAgICAgICAgbV9kbWFidWZTdHJpZGUgPSBHU1RfVklERU9fSU5GT19QTEFORV9TVFJJREUoJm1f
dmlkZW9GcmFtZS5pbmZvLCAwKTsKKworICAgICAgICB3cGVfdmlkZW9fcGxhbmVfZGlzcGxheV9k
bWFidWZfc291cmNlX3VwZGF0ZSh2aWRlb1BsYW5lRGlzcGxheURtYUJ1ZlNvdXJjZSwgbV9kbWFi
dWZGRCwgcmVjdC54KCksIHJlY3QueSgpLCBtX3NpemUud2lkdGgoKSwgbV9zaXplLmhlaWdodCgp
LCBtX2RtYWJ1ZlN0cmlkZSwgW10odm9pZCogZGF0YSkgeworICAgICAgICAgICAgZ3N0X2J1ZmZl
cl91bnJlZihHU1RfQlVGRkVSX0NBU1QoZGF0YSkpOworICAgICAgICB9LCBnc3RfYnVmZmVyX3Jl
ZihtX2J1ZmZlci5nZXQoKSkpOworCisgICAgICAgIGNsb3NlKG1fZG1hYnVmRkQpOworICAgICAg
ICBtX2RtYWJ1ZkZEID0gMDsKKyAgICB9CisjZW5kaWYKKwogI2lmIFVTRShHU1RSRUFNRVJfR0wp
CiAgICAgdmlydHVhbCB2b2lkIHdhaXRGb3JDUFVTeW5jKCkKICAgICB7Ci0gICAgICAgIEdzdEdM
U3luY01ldGEqIG1ldGEgPSBnc3RfYnVmZmVyX2dldF9nbF9zeW5jX21ldGEobV9idWZmZXIpOwor
ICAgICAgICBHc3RHTFN5bmNNZXRhKiBtZXRhID0gZ3N0X2J1ZmZlcl9nZXRfZ2xfc3luY19tZXRh
KG1fYnVmZmVyLmdldCgpKTsKICAgICAgICAgaWYgKG1ldGEpIHsKLSAgICAgICAgICAgIEdzdE1l
bW9yeSogbWVtID0gZ3N0X2J1ZmZlcl9wZWVrX21lbW9yeShtX2J1ZmZlciwgMCk7CisgICAgICAg
ICAgICBHc3RNZW1vcnkqIG1lbSA9IGdzdF9idWZmZXJfcGVla19tZW1vcnkobV9idWZmZXIuZ2V0
KCksIDApOwogICAgICAgICAgICAgR3N0R0xDb250ZXh0KiBjb250ZXh0ID0gKChHc3RHTEJhc2VN
ZW1vcnkqKW1lbSktPmNvbnRleHQ7CiAgICAgICAgICAgICBnc3RfZ2xfc3luY19tZXRhX3dhaXRf
Y3B1KG1ldGEsIGNvbnRleHQpOwogICAgICAgICB9CkBAIC0yNDgsNyArMjg2LDcgQEAgcHVibGlj
OgogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX3RleHR1cmVJRCk7CiAgICAgICAgIEdzdFZpZGVv
R0xUZXh0dXJlVXBsb2FkTWV0YSogbWV0YTsKLSAgICAgICAgaWYgKG1fYnVmZmVyICYmIChtZXRh
ID0gZ3N0X2J1ZmZlcl9nZXRfdmlkZW9fZ2xfdGV4dHVyZV91cGxvYWRfbWV0YShtX2J1ZmZlcikp
KSB7CisgICAgICAgIGlmIChtX2J1ZmZlciAmJiAobWV0YSA9IGdzdF9idWZmZXJfZ2V0X3ZpZGVv
X2dsX3RleHR1cmVfdXBsb2FkX21ldGEobV9idWZmZXIuZ2V0KCkpKSkgewogICAgICAgICAgICAg
aWYgKG1ldGEtPm5fdGV4dHVyZXMgPT0gMSkgeyAvLyBCUkd4ICYgQkdSQSBmb3JtYXRzIHVzZSBv
bmx5IG9uZSB0ZXh0dXJlLgogICAgICAgICAgICAgICAgIGd1aW50IGlkc1s0XSA9IHsgdGV4dHVy
ZS5pZCgpLCAwLCAwLCAwIH07CiAKQEAgLTMyNCw3ICszNjIsNyBAQCBwdWJsaWM6CiAgICAgfQog
CiBwcml2YXRlOgotICAgIEdzdEJ1ZmZlciogbV9idWZmZXI7CisgICAgR1JlZlB0cjxHc3RCdWZm
ZXI+IG1fYnVmZmVyOwogICAgIEdzdFZpZGVvRnJhbWUgbV92aWRlb0ZyYW1lIHsgfTsKICAgICBJ
bnRTaXplIG1fc2l6ZTsKICAgICBib29sIG1faGFzQWxwaGFDaGFubmVsOwpAQCAtMzMzLDYgKzM3
MSwxMCBAQCBwcml2YXRlOgogICAgIEdMdWludCBtX3RleHR1cmVJRCB7IDAgfTsKICAgICBib29s
IG1faXNNYXBwZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNNYXBwZWRUZXh0dXJlcyB7IGZh
bHNlIH07CisjaWYgVVNFKFdQRV9WSURFT19QTEFORV9ESVNQTEFZX0RNQUJVRikKKyAgICBpbnQg
bV9kbWFidWZGRCB7IDAgfTsKKyAgICBpbnQgbV9kbWFidWZTdHJpZGUgeyAwIH07CisjZW5kaWYK
IH07CiAjZW5kaWYKIApAQCAtMzcwLDYgKzQxMiwxMiBAQCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcihNZWRpYVBsYXllciogcGxheWVyKQog
ICAgIG1fcmVhZHlUaW1lckhhbmRsZXIuc2V0UHJpb3JpdHkoR19QUklPUklUWV9ERUZBVUxUX0lE
TEUpOwogI2VuZGlmCiAgICAgbV9pc1BsYXllclNodXR0aW5nRG93bi5zdG9yZShmYWxzZSk7CisK
KyNpZiBVU0UoV1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGKQorICAgIGF1dG8mIHNoYXJl
ZERpc3BsYXkgPSBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKTsKKyAgICBpZiAoaXM8
UGxhdGZvcm1EaXNwbGF5TGliV1BFPihzaGFyZWREaXNwbGF5KSkKKyAgICAgICAgbV93cGVWaWRl
b1BsYW5lRGlzcGxheURtYUJ1Zi5yZXNldCh3cGVfdmlkZW9fcGxhbmVfZGlzcGxheV9kbWFidWZf
c291cmNlX2NyZWF0ZShkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlMaWJXUEU+KHNoYXJlZERpc3Bs
YXkpLmJhY2tlbmQoKSkpOworI2VuZGlmCiB9CiAKIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6fk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcigpCkBAIC0yODIwLDYgKzI4NjgsMTAgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmRpZEVuZCgpCiAgICAgICAgIG1faXNQ
YXVzZWQgPSB0cnVlOwogICAgICAgICBjaGFuZ2VQaXBlbGluZVN0YXRlKEdTVF9TVEFURV9SRUFE
WSk7CiAgICAgICAgIG1fZGlkRG93bmxvYWRGaW5pc2ggPSBmYWxzZTsKKworI2lmIFVTRShXUEVf
VklERU9fUExBTkVfRElTUExBWV9ETUFCVUYpCisgICAgICAgIHdwZV92aWRlb19wbGFuZV9kaXNw
bGF5X2RtYWJ1Zl9zb3VyY2VfZW5kX29mX3N0cmVhbShtX3dwZVZpZGVvUGxhbmVEaXNwbGF5RG1h
QnVmLmdldCgpKTsKKyNlbmRpZgogICAgIH0KICAgICB0aW1lQ2hhbmdlZCgpOwogfQpAQCAtMzA2
NywxMiArMzExOSw0NyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c3dhcEJ1
ZmZlcnNJZk5lZWRlZCgpCiB9CiAjZW5kaWYKIAorI2lmIFVTRShXUEVfVklERU9fUExBTkVfRElT
UExBWV9ETUFCVUYpCitjbGFzcyBHU3RyZWFtZXJETUFCdWZIb2xlUHVuY2hDbGllbnQgOiBwdWJs
aWMgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI6OkhvbGVQdW5jaENsaWVudCB7Citw
dWJsaWM6CisgICAgR1N0cmVhbWVyRE1BQnVmSG9sZVB1bmNoQ2xpZW50KHN0ZDo6dW5pcXVlX3B0
cjxHc3RWaWRlb0ZyYW1lSG9sZGVyPiYmIGZyYW1lSG9sZGVyLCBzdHJ1Y3Qgd3BlX3ZpZGVvX3Bs
YW5lX2Rpc3BsYXlfZG1hYnVmX3NvdXJjZSogdmlkZW9QbGFuZURpc3BsYXlEbWFCdWZTb3VyY2Up
CisgICAgICAgIDogbV9mcmFtZUhvbGRlcihXVEZNb3ZlKGZyYW1lSG9sZGVyKSkKKyAgICAgICAg
LCBtX3dwZVZpZGVvUGxhbmVEaXNwbGF5RG1hQnVmKHZpZGVvUGxhbmVEaXNwbGF5RG1hQnVmU291
cmNlKSB7IH07CisgICAgdm9pZCBzZXRWaWRlb1JlY3RhbmdsZShjb25zdCBJbnRSZWN0JiByZWN0
KSBmaW5hbAorICAgIHsKKyAgICAgICAgaWYgKG1fd3BlVmlkZW9QbGFuZURpc3BsYXlEbWFCdWYp
CisgICAgICAgICAgICBtX2ZyYW1lSG9sZGVyLT5oYW5kb2ZmVmlkZW9EbWFCdWYobV93cGVWaWRl
b1BsYW5lRGlzcGxheURtYUJ1ZiwgcmVjdCk7CisgICAgfQorcHJpdmF0ZToKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8R3N0VmlkZW9GcmFtZUhvbGRlcj4gbV9mcmFtZUhvbGRlcjsKKyAgICBzdHJ1Y3Qg
d3BlX3ZpZGVvX3BsYW5lX2Rpc3BsYXlfZG1hYnVmX3NvdXJjZSogbV93cGVWaWRlb1BsYW5lRGlz
cGxheURtYUJ1ZjsKK307CisjZW5kaWYgLy8gVVNFKFdQRV9WSURFT19QTEFORV9ESVNQTEFZX0RN
QUJVRikKKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnB1c2hUZXh0dXJlVG9D
b21wb3NpdG9yKCkKIHsKICAgICBhdXRvIHNhbXBsZUxvY2tlciA9IGhvbGRMb2NrKG1fc2FtcGxl
TXV0ZXgpOwogICAgIGlmICghR1NUX0lTX1NBTVBMRShtX3NhbXBsZS5nZXQoKSkpCiAgICAgICAg
IHJldHVybjsKIAorI2lmIFVTRShXUEVfVklERU9fUExBTkVfRElTUExBWV9ETUFCVUYpCisKKyAg
ICBhdXRvIHByb3h5T3BlcmF0aW9uID0KKyAgICAgICAgW3RoaXNdKFRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyUHJveHkmIHByb3h5KQorICAgICAgICB7CisgICAgICAgICAgICBMb2NrSG9sZGVy
IGhvbGRlcihwcm94eS5sb2NrKCkpOworCisgICAgICAgICAgICBpZiAoIXByb3h5LmlzQWN0aXZl
KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8R3N0VmlkZW9GcmFtZUhvbGRlcj4gZnJhbWVIb2xkZXIgPSBtYWtlVW5pcXVlPEdzdFZpZGVv
RnJhbWVIb2xkZXI+KG1fc2FtcGxlLmdldCgpLCBtX3ZpZGVvRGVjb2RlclBsYXRmb3JtLCBtX3Rl
eHR1cmVNYXBwZXJGbGFncywgZmFsc2UpOworCisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI+IGxheWVyQnVmZmVyID0gbWFrZVVuaXF1
ZTxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcj4oMCwgbV9zaXplLCBUZXh0dXJlTWFw
cGVyR0w6OlNob3VsZE5vdEJsZW5kLCBHTF9ET05UX0NBUkUpOworICAgICAgICAgICAgYXV0byBo
b2xlUHVuY2hDbGllbnQgPSBtYWtlVW5pcXVlPEdTdHJlYW1lckRNQUJ1ZkhvbGVQdW5jaENsaWVu
dD4oV1RGTW92ZShmcmFtZUhvbGRlciksIG1fd3BlVmlkZW9QbGFuZURpc3BsYXlEbWFCdWYuZ2V0
KCkpOworICAgICAgICAgICAgbGF5ZXJCdWZmZXItPnNldEhvbGVQdW5jaENsaWVudChXVEZNb3Zl
KGhvbGVQdW5jaENsaWVudCkpOworICAgICAgICAgICAgcHJveHkucHVzaE5leHRCdWZmZXIoV1RG
TW92ZShsYXllckJ1ZmZlcikpOworICAgICAgICB9OworI2Vsc2UKICAgICBhdXRvIHByb3h5T3Bl
cmF0aW9uID0KICAgICAgICAgW3RoaXNdKFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHkm
IHByb3h5KQogICAgICAgICB7CkBAIC0zMTAxLDYgKzMxODgsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6cHVzaFRleHR1cmVUb0NvbXBvc2l0b3IoKQogICAgICAgICAgICAg
fQogICAgICAgICAgICAgcHJveHkucHVzaE5leHRCdWZmZXIoV1RGTW92ZShsYXllckJ1ZmZlcikp
OwogICAgICAgICB9OworI2VuZGlmIC8vIFVTRShXUEVfVklERU9fUExBTkVfRElTUExBWV9ETUFC
VUYpCiAKICNpZiBVU0UoTklDT1NJQSkKICAgICBwcm94eU9wZXJhdGlvbihkb3duY2FzdDxOaWNv
c2lhOjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbD4obV9uaWNvc2lhTGF5ZXItPmltcGwo
KSkucHJveHkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmgKaW5kZXggZjNmYTI5N2RkZWM4Mjg3NTJhNmI4ZmMxNTk0NTU1NGIwNGZiYTcxMS4uYjJiYjU0
MWEzMjZhZTliZWZhNWIwMzc3OWMwZDExMDYzNWQ3OWUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaApAQCAtODEsNiArODEsMTAgQEAgdHlwZWRlZiBz
dHJ1Y3QgX0dzdFZpZGVvSW5mbyBHc3RWaWRlb0luZm87CiB0eXBlZGVmIHN0cnVjdCBfR3N0R0xD
b250ZXh0IEdzdEdMQ29udGV4dDsKIHR5cGVkZWYgc3RydWN0IF9Hc3RHTERpc3BsYXkgR3N0R0xE
aXNwbGF5OwogCisjaWYgVVNFKFdQRV9WSURFT19QTEFORV9ESVNQTEFZX0RNQUJVRikKK3N0cnVj
dCB3cGVfdmlkZW9fcGxhbmVfZGlzcGxheV9kbWFidWZfc291cmNlOworI2VuZGlmCisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQml0bWFwVGV4dHVyZUdMOwpAQCAtNTE3LDYgKzUyMSwx
MSBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPGJvb2w+IG1faGFzVGFpbnRlZE9yaWdpbiB7IFdU
Rjo6bnVsbG9wdCB9OwogCiAgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBtX2Zwc1NpbmsgeyBudWxs
cHRyIH07CisKK3ByaXZhdGU6CisjaWYgVVNFKFdQRV9WSURFT19QTEFORV9ESVNQTEFZX0RNQUJV
RikKKyAgICBHVW5pcXVlUHRyPHN0cnVjdCB3cGVfdmlkZW9fcGxhbmVfZGlzcGxheV9kbWFidWZf
c291cmNlPiBtX3dwZVZpZGVvUGxhbmVEaXNwbGF5RG1hQnVmOworI2VuZGlmCiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvR1N0cmVhbWVyRGVmaW5pdGlvbnMuY21ha2UgYi9Tb3Vy
Y2UvY21ha2UvR1N0cmVhbWVyRGVmaW5pdGlvbnMuY21ha2UKaW5kZXggZDAwOTRiMGMzODQ1ZjBj
ZjZkYmM0NjE5NTkzZTI2ZWUyZTdlZGJkMy4uNDc0ZTMxYjhiYTc3MWQ4MDdmY2ZjYjk2MjBlZDNm
NTk1MGY1MGFkNyAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL0dTdHJlYW1lckRlZmluaXRpb25z
LmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9HU3RyZWFtZXJEZWZpbml0aW9ucy5jbWFrZQpAQCAt
NSwzICs1LDQgQEAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX01FRElB
X1NPVVJDRSBQVUJMSUMgT04pCiAKIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9HU1RSRUFNRVJf
R0wgIldoZXRoZXIgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIEdTdHJlYW1lciBHTCIgUFJJVkFURSBP
TikKIFdFQktJVF9PUFRJT05fREVGSU5FKFVTRV9HU1RSRUFNRVJfTVBFR1RTICJXaGV0aGVyIHRv
IGVuYWJsZSBzdXBwb3J0IGZvciBNUEVHLVRTIiBQUklWQVRFIE9GRikKK1dFQktJVF9PUFRJT05f
REVGSU5FKFVTRV9XUEVfVklERU9fUExBTkVfRElTUExBWV9ETUFCVUYgIldoZXRoZXIgdG8gZW5h
YmxlIHN1cHBvcnQgZm9yIGNsaWVudC1zaWRlIHZpZGVvIHJlbmRlcmluZyIgUFJJVkFURSBPRkYp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvR1N0cmVhbWVyRGVwZW5kZW5jaWVzLmNtYWtlIGIv
U291cmNlL2NtYWtlL0dTdHJlYW1lckRlcGVuZGVuY2llcy5jbWFrZQppbmRleCA2MWVlNzIzNTgz
OTFlYzk0YmNkMTQ1N2VjNDVjNjFiNDQ2Njk4MTk1Li5hM2NlNGJiNzVhOWVmODhlZWI4ZjAxM2M0
YTIzYTI5MmY1ZWQxZjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvR1N0cmVhbWVyRGVwZW5k
ZW5jaWVzLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9HU3RyZWFtZXJEZXBlbmRlbmNpZXMuY21h
a2UKQEAgLTMsMyArMyw0IEBAIGlmIChQT1JUIFNUUkVRVUFMICJHVEsiKQogZW5kaWYgKCkKIFdF
QktJVF9PUFRJT05fREVQRU5EKFVTRV9HU1RSRUFNRVJfR0wgRU5BQkxFX1ZJREVPKQogV0VCS0lU
X09QVElPTl9ERVBFTkQoVVNFX0dTVFJFQU1FUl9NUEVHVFMgRU5BQkxFX1ZJREVPKQorV0VCS0lU
X09QVElPTl9ERVBFTkQoVVNFX1dQRV9WSURFT19QTEFORV9ESVNQTEFZX0RNQUJVRiBVU0VfR1NU
UkVBTUVSX0dMKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UgYi9T
b3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQppbmRleCBhODhlNmFiNjU5N2YzZGEyNTEwYjdj
YTk2ZjAwMDljNTM1YjM5M2M0Li42NzlkMGJjODlmNTY2YWY2MTI5NjY5ZWM3NjM3MTg1MDBkZjA3
OGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQorKysgYi9Tb3Vy
Y2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQpAQCAtMTY2LDggKzE2NiwxMCBAQCBlbmRpZiAoKQog
aWYgKEVOQUJMRV9XUEVfUVRfQVBJKQogICAgIGZpbmRfcGFja2FnZShRdDUgUkVRVUlSRUQgQ09N
UE9ORU5UUyBDb3JlIFF1aWNrIEd1aSkKICAgICBmaW5kX3BhY2thZ2UoUXQ1VGVzdCBSRVFVSVJF
RCkKLSAgICBmaW5kX3BhY2thZ2UoUGtnQ29uZmlnKQotICAgIGZpbmRfcGFja2FnZShXUEVCYWNr
ZW5kLWZkbyAxLjMuMCBSRVFVSVJFRCkKK2VuZGlmICgpCisKK2lmIChFTkFCTEVfV1BFX1FUX0FQ
SSBPUiBVU0VfV1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGKQorICAgIGZpbmRfcGFja2Fn
ZShXUEVCYWNrZW5kLWZkbyAxLjUuMCBSRVFVSVJFRCkKIGVuZGlmICgpCiAKIGFkZF9kZWZpbml0
aW9ucygtREJVSUxESU5HX1dQRV9fPTEpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggZGEwY2JmNjBiZmJlNmI1NjliOGYwY2NlZjZiMDc4OTk0YWY1
MjVmYS4uM2IyMTEyMjQyODY3OWRlODMwMzM4Njk3ZGEwYWJmMTc4YjFhOWY5MiAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDIwLTAxLTE1ICBQaGlsaXBwZSBOb3JtYW5kICA8cGhpbG5AaWdhbGlhLmNvbT4KKworICAg
ICAgICBbR1N0cmVhbWVyXVtXUEVdIENsaWVudC1zaWRlIHZpZGVvIHJlbmRlcmluZyBzdXBwb3J0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYyODkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdwZS9q
aGJ1aWxkLm1vZHVsZXM6IEJ1bXAgdG8gbGlid3BlIGFuZCB3cGViYWNrZW5kLWZkbyBnaXQKKyAg
ICAgICAgc25hcHNob3RzLCB1bnRpbCAxLjUueCByZWxlYXNlcyBhcmUgcHVibGlzaGVkLgorCiAy
MDIwLTAxLTE2ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KIAogICAgICAg
ICBNYXBwaW5nIEhUTUwgYXR0cmlidXRlcyB3aWR0aC9oZWlnaHQgdG8gdGhlIGRlZmF1bHQgYXNw
ZWN0IHJhdGlvIG9mIDxpbWc+CmRpZmYgLS1naXQgYS9Ub29scy93cGUvamhidWlsZC5tb2R1bGVz
IGIvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcwppbmRleCBiODJjYjgxNTVjZmVjMjMzNmQ4YTY3
NWJlMjZhZjJjNjQzMTI4NmMzLi4zMTA5OTEyZDFjOGZiOWIyNDBkY2ExNWZhNzRjNzUxM2I2OTQx
NzA2IDEwMDY0NAotLS0gYS9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzCisrKyBiL1Rvb2xzL3dw
ZS9qaGJ1aWxkLm1vZHVsZXMKQEAgLTE4NCw4ICsxODQsNyBAQAogICA8L2F1dG90b29scz4KIAog
ICA8Y21ha2UgaWQ9ImxpYndwZSI+Ci0gICAgPGJyYW5jaCByZXBvPSJ3cGV3ZWJraXQiIG1vZHVs
ZT0ibGlid3BlLTEuNC4wLnRhci54eiIgdmVyc2lvbj0iMS40LjAiCi0gICAgICAgICAgICBoYXNo
PSJzaGEyNTY6ZTJkMzQ5NGZjMzNmZTk0NmFkOTE3ZmQ2YTNhYmQxMjc0NjJiOTFiYmE2MmVmOGIz
NTUwN2U5MmY4ZWRlNDE4OCIvPgorICAgIDxicmFuY2ggcmVwbz0iZ2l0aHViLmNvbSIgbW9kdWxl
PSJXZWJQbGF0Zm9ybUZvckVtYmVkZGVkL2xpYndwZS5naXQiIGNoZWNrb3V0ZGlyPSJsaWJ3cGUi
IHRhZz0iNjdjY2I0MDdlZmIyOTVjNzI3NTUzMTQ1MDgwOTM3ZThiYjNhMzIxMSIvPgogICA8L2Nt
YWtlPgogCiAgIDxjbWFrZSBpZD0id3BlYmFja2VuZC1mZG8iPgpAQCAtMTkzLDggKzE5Miw3IEBA
CiAgICAgICA8ZGVwIHBhY2thZ2U9ImxpYndwZSIvPgogICAgICAgPGRlcCBwYWNrYWdlPSJnbGli
Ii8+CiAgICAgPC9kZXBlbmRlbmNpZXM+Ci0gICAgPGJyYW5jaCByZXBvPSJ3cGV3ZWJraXQiIG1v
ZHVsZT0id3BlYmFja2VuZC1mZG8tMS40LjAudGFyLnh6IiB2ZXJzaW9uPSIxLjQuMCIKLSAgICAg
ICAgICAgIGhhc2g9InNoYTI1NjphOTE5Y2E0YTViYzQ0NWY5NDE5YTViN2YzNzgxY2ZjOThlNWFi
Y2Y1ZDcyNTllYjE4NjlmNWFiMjBmZDE4YmFmIi8+CisgICAgPGJyYW5jaCByZXBvPSJnaXRodWIu
Y29tIiBtb2R1bGU9IklnYWxpYS9XUEVCYWNrZW5kLWZkby5naXQiIGNoZWNrb3V0ZGlyPSJ3cGVi
YWNrZW5kLWZkbyIgdGFnPSIxNzMxNmQ3MzY1ZjUwMDE3NjEzOGQ5MDBmOTVhYWU3M2VmMGUyMjNh
Ii8+CiAgIDwvY21ha2U+CiAKICAgPGF1dG90b29scyBpZD0ibGliZ3BnLWVycm9yIiBhdXRvZ2Vu
LXNoPSJhdXRvcmVjb25mIj4KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRl
eCAxMjkwNGU1MmMxMzFjZWIzMDUzYmI0NDJjNzZiYzBjYjllODA0OTExLi5lOTBjYjZkNWJhMzhm
M2M3MTVmMGIyOGI0NDQ0ZjA4NDFlNTE3ODJiIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMDEtMTUgIFBoaWxpcHBlIE5vcm1hbmQg
IDxwaGlsbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdW1dQRV0gQ2xpZW50LXNp
ZGUgdmlkZW8gcmVuZGVyaW5nIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNjI4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBjb21waWxlLXRpbWUgb3B0aW9uIHRvIGVuYWJs
ZSBjbGllbnQtc2lkZSB2aWRlbworICAgICAgICByZW5kZXJpbmcgc3VwcG9ydC4gV2l0aCB0aGlz
IGZlYXR1cmUgZW5hYmxlZCB0aGUgVUlQcm9jZXNzIHdpbGwgYmUKKyAgICAgICAgaW4gY2hhcmdl
IG9mIHBvc2l0aW9uaW5nIGFuZCByZW5kZXJpbmcgdmlkZW8gc3VyZmFjZXMsIHRoYW5rcyB0bwor
ICAgICAgICB0aGUgV1BFQmFja2VuZC1GRE8gdmlkZW8tcGxhbmUtZGlzcGxheS1kbWFidWYgcHJv
dG9jb2wuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvR1N0cmVhbWVyRGVmaW5pdGlvbnMuY21h
a2U6IEFkZAorICAgICAgICBVU0VfV1BFX1ZJREVPX1BMQU5FX0RJU1BMQVlfRE1BQlVGIENNYWtl
IG9wdGlvbiwgZGlzYWJsZWQgYnkKKyAgICAgICAgZGVmYXVsdC4KKyAgICAgICAgKiBTb3VyY2Uv
Y21ha2UvR1N0cmVhbWVyRGVwZW5kZW5jaWVzLmNtYWtlOiBUaGlzIG5ldyBvcHRpb24KKyAgICAg
ICAgZGVwZW5kcyBvbiBHU3RyZWFtZXItR0wuCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlv
bnNXUEUuY21ha2U6IEl0IGRlcGVuZHMgYWxzbyBvbiB0aGUgcHJlc2VuY2UKKyAgICAgICAgb2Yg
dGhlIFdQRUJhY2tlbmQtRkRPIGxpYnJhcnkuCisKIDIwMjAtMDEtMTAgIERlYW4gSmFja3NvbiAg
PGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHTF0gQ2xhcmlmeSBVU0VfT1BFTkdMX0VT
XzMK
</data>
<flag name="review"
          id="403661"
          type_id="1"
          status="+"
          setter="calvaris"
    />
          </attachment>
      

    </bug>

</bugzilla>