<?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>189734</bug_id>
          
          <creation_ts>2018-09-19 00:32:01 -0700</creation_ts>
          <short_desc>[GStreamer] Support arbitrary video resolution in getUserMedia API</short_desc>
          <delta_ts>2018-10-11 14:30:42 -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>WebKitGTK</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Claudio Saavedra">csaavedra</reporter>
          <assigned_to name="Thibault Saunier">tsaunier</assigned_to>
          <cc>alex</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>tsaunier</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1460865</commentid>
    <comment_count>0</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2018-09-19 00:32:01 -0700</bug_when>
    <thetext>fast/mediastream/MediaStreamTrack-getCapabilities.html is failing since r236015 landed in bug 178109. That added support for arbitrary video resolutions in the getUserMedia API. Not sure if something is missing in the gstreamer side or actually the testing infrastructure, but filing this for now.

The failure:

--- /home/buildbot/wpe/wpe-linux-64-release-tests/build/layout-test-results/fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt
+++ /home/buildbot/wpe/wpe-linux-64-release-tests/build/layout-test-results/fast/mediastream/MediaStreamTrack-getCapabilities-actual.txt
@@ -4,12 +4,12 @@
 
 
 video track capabilities:
-  capabilities.aspectRatio = { max: 1.778, min: 1 }
+  capabilities.aspectRatio = { max: 1.778, min: 1.333 }
   capabilities.deviceId = &lt;UUID&gt;
   capabilities.facingMode = [ user ]
   capabilities.frameRate = { max: 30, min: 5 }
-  capabilities.height = { max: 720, min: 112 }
-  capabilities.width = { max: 1280, min: 112 }
+  capabilities.height = { max: 720, min: 480 }
+  capabilities.width = { max: 1280, min: 640 }
 
 audio track capabilities:
   capabilities.deviceId = &lt;UUID&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460866</commentid>
    <comment_count>1</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2018-09-19 00:48:06 -0700</bug_when>
    <thetext>Other tests failing, same revision:

fast/mediastream/apply-constraints-advanced.html
fast/mediastream/apply-constraints-video.html
fast/mediastream/getUserMedia-default.html

From what I see, the problem might be that in the gstreamer backend the minimum size of video is 640x480, whereas this expect it to be 112x112. Similarly, the default should be 320x240. This from looking at the test results, not that I really have any idea about this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463965</commentid>
    <comment_count>2</comment_count>
      <attachid>350963</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-09-27 08:43:35 -0700</bug_when>
    <thetext>Created attachment 350963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1464142</commentid>
    <comment_count>3</comment_count>
      <attachid>350999</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-09-27 14:11:15 -0700</bug_when>
    <thetext>Created attachment 350999
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465072</commentid>
    <comment_count>4</comment_count>
      <attachid>350999</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-10-01 10:23:37 -0700</bug_when>
    <thetext>Comment on attachment 350999
Patch

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

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:206
&gt; +    GRefPtr&lt;GstCaps&gt; caps = adoptGRef(m_capturer-&gt;caps());

Suggestion for the future:

I think GStreamerCapturer::caps() should return GRefPtr&lt;GstCaps&gt;, it would make the lifecycle of this line easier to understand.

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:207
&gt; +    for (guint i = 0; i &lt; gst_caps_get_size(caps.get()); i++) {

guint -&gt; unsigned

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:236
&gt; +            guint frameRatesLength = static_cast&lt;guint&gt;(gst_value_list_get_size(frameRateValues));

unsigned and cast to the same

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:238
&gt; +            for (guint j = 0; j &lt; frameRatesLength; j++) {

ditto

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:254
&gt; +        GST_INFO(&quot;Could not find any presets for caps: %&quot; GST_PTR_FORMAT &quot; just let anything go out.&quot;,
&gt; +            caps.get());

You can put this in the same line

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:264
&gt; +        setSupportedPresets(WTFMove(presets));
&gt; +    } else
&gt; +        setSupportedPresets(WTFMove(presets));

It looks like you can set the supported presets out of the if and the else, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468145</commentid>
    <comment_count>5</comment_count>
      <attachid>352073</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-10-11 13:46:43 -0700</bug_when>
    <thetext>Created attachment 352073
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468149</commentid>
    <comment_count>6</comment_count>
      <attachid>352074</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-10-11 13:50:41 -0700</bug_when>
    <thetext>Created attachment 352074
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468166</commentid>
    <comment_count>7</comment_count>
      <attachid>352074</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-11 14:30:41 -0700</bug_when>
    <thetext>Comment on attachment 352074
Patch for landing

Clearing flags on attachment: 352074

Committed r237048: &lt;https://trac.webkit.org/changeset/237048&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468167</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-11 14:30:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350963</attachid>
            <date>2018-09-27 08:43:35 -0700</date>
            <delta_ts>2018-09-27 14:11:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189734-20180927124333.patch</filename>
            <type>text/plain</type>
            <size>16117</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2MzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTgzYzZkMDdiYTM4MzI5
MzA5NTgyYTdkM2MxM2IyNjZmZGEwYmFhYS4uYWZmM2FiNTQ5YTE5MTkwMmM2Njc4YjNhOWQzOTY2
YTk0ZWUwMzU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE4LTA5LTI3ICBUaGli
YXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBTdXBwb3J0IGFyYml0cmFyeSB2aWRlbyByZXNvbHV0aW9uIGluIGdldFVzZXJNZWRpYSBBUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTczNAor
CisgICAgICAgIEltcGxlbWVudCBhcmJpdHJhcnkgdmlkZW8gcmVzb2x1dGlvbiBmb3IgdGhlIGdl
dFVzZXJNZWRpYSBBUEkgaW4gR1N0cmVhbWVyLgorCisgICAgICAgIEZpeCB0aGUgTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2UgZGV2aWNlIGxpc3QgdG8gbWFrZSBkZXZpY2VzIHByb3BlcnRpZXMgbWF0
Y2gKKyAgICAgICAgdGVzdCBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgUmVhY3RpdmF0ZSB0ZXN0
cyB0aGF0IHdlcmUgZmFpbGxpbmcgYmVjYXVzZSBvZiB0aGF0LgorCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZVZpZGVvU291cmNlOjpzdGFuZGFyZFZpZGVvU2l6ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6c3RhbmRhcmRWaWRlb1NpemVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vVmlkZW9QcmVzZXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdTdHJlYW1lclZpZGVvUHJlc2V0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyVmlkZW9QcmVzZXQ6OkdTdHJlYW1lclZpZGVvUHJlc2V0KToKKyAgICAgICAgKFdlYkNv
cmU6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291
cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2Fw
YWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Z2VuZXJhdGVQcmVzZXRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpkZWZhdWx0RGV2aWNlcyk6CisKIDIwMTgtMDktMjcgIFRoaWJhdWx0IFNhdW5pZXIgIDx0c2F1
bmllckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIEZpeCBFbmNvZGVkSW1hZ2Ug
dGltZXN0YW1wcyB0byBtYXRjaCB3aGF0IGxpYldlYlJUQyBleHBlY3RzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UuY3BwCmluZGV4IGY1ZGI5YjA5N2U3NjQzOWFiMTE5OGU3ZWU2MmJlMDVhMjJkM2Q3YWIuLmIz
NGE3NTQyMmJiM2UxNGE3ZWUyOThmNmE2YTRhMTBjNDY5YjhmOWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0U3Vw
cG9ydGVkUHJlc2V0cyhjb25zdCBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4mIHByCiAgICAgfQog
fQogCi1zdGF0aWMgY29uc3QgVmVjdG9yPEludFNpemU+JiBzdGFuZGFyZFZpZGVvU2l6ZXMoKQor
Y29uc3QgVmVjdG9yPEludFNpemU+JiBSZWFsdGltZVZpZGVvU291cmNlOjpzdGFuZGFyZFZpZGVv
U2l6ZXMoKQogewogICAgIHN0YXRpYyBjb25zdCBhdXRvIHNpemVzID0gbWFrZU5ldmVyRGVzdHJv
eWVkKFtdIHsKICAgICAgICAgc3RhdGljIEludFNpemUgdmlkZW9TaXplc1tdID0gewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1Nv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5oCmluZGV4IDNiYTM3M2EzMWRiMDBmZDc3MzQ4MDQyMTY4NzNjNTNmNGFhMTcyNjku
LjI0OWRmM2VlNjRmNzRmODEwODA1NjhiMWI5NjQ1ZjM2ZGRlYThlNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291
cmNlLmgKQEAgLTY3LDYgKzY3LDcgQEAgcHJvdGVjdGVkOgogICAgIGRvdWJsZSBvYnNlcnZlZEZy
YW1lUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2ZWRGcmFtZVJhdGU7IH0KIAogICAgIHZv
aWQgZGlzcGF0Y2hNZWRpYVNhbXBsZVRvT2JzZXJ2ZXJzKE1lZGlhU2FtcGxlJik7CisgICAgY29u
c3QgVmVjdG9yPEludFNpemU+JiBzdGFuZGFyZFZpZGVvU2l6ZXMoKTsKIAogcHJpdmF0ZToKICAg
ICBzdHJ1Y3QgQ2FwdHVyZVNpemVBbmRGcmFtZVJhdGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vVmlkZW9QcmVzZXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1ZpZGVvUHJlc2V0LmgKaW5kZXggOWYwNDA5OGZjZGEwNmI0
MGY1MDE4MmEwMDk1NTc2OTZjNzFlNTk0Yi4uNDA3MDJjOGU0ZDNkNGRjYmU2MTY4Y2I1NGZlMThh
MDA0ZmNjNjczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vVmlkZW9QcmVzZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9WaWRlb1ByZXNldC5oCkBAIC0xMDcsNyArMTA3LDggQEAgcHVibGljOgogCiAgICAgZW51bSBW
aWRlb1ByZXNldFR5cGUgewogICAgICAgICBCYXNlLAotICAgICAgICBBVkNhcHR1cmUKKyAgICAg
ICAgQVZDYXB0dXJlLAorICAgICAgICBHU3RyZWFtZXIKICAgICB9OwogCiAgICAgSW50U2l6ZSBz
aXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNl
LmNwcAppbmRleCAzMGQxNTdiZmU5ZjBmYmMwYWM4NDcxNDU1NWE2ZjFlYzZkMzllMjRlLi42NDNk
NjU3YWY4OGQ0MWM4NzNmZTlmMWY4ZTFkZDliYmJiMTllYWRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0
dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtNTIsNiArNTIsMjIg
QEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVnKCkKICAgICB9KTsKIH0KIAor
Y2xhc3MgR1N0cmVhbWVyVmlkZW9QcmVzZXQgOiBwdWJsaWMgVmlkZW9QcmVzZXQgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8R1N0cmVhbWVyVmlkZW9QcmVzZXQ+IGNyZWF0ZShJbnRTaXplIHNp
emUpCisgICAgeworICAgICAgICBWZWN0b3I8RnJhbWVSYXRlUmFuZ2U+IGZyYW1lUmF0ZXM7Cisg
ICAgICAgIGZyYW1lUmF0ZXMuYXBwZW5kKHsgMCwgR19NQVhET1VCTEV9KTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgR1N0cmVhbWVyVmlkZW9QcmVzZXQoc2l6ZSwgV1RGTW92ZShmcmFt
ZVJhdGVzKSkpOworICAgIH0KKworICAgIEdTdHJlYW1lclZpZGVvUHJlc2V0KEludFNpemUgc2l6
ZSwgVmVjdG9yPEZyYW1lUmF0ZVJhbmdlPiYmIGZyYW1lUmF0ZVJhbmdlcykKKyAgICAgICAgOiBW
aWRlb1ByZXNldChzaXplLCBXVEZNb3ZlKGZyYW1lUmF0ZVJhbmdlcyksIEdTdHJlYW1lcikKKyAg
ICB7CisgICAgfQorfTsKKworCiBjbGFzcyBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2VGYWN0
b3J5IGZpbmFsIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3Rv
cnkgewogcHVibGljOgogICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVy
ZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzKSBmaW5hbApAQCAtOTAsMTQgKzEwNiwxNCBAQCBSZWFsdGltZU1lZGlh
U291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5JiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6
OmZhY3RvcnkoKQogfQogCiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZp
ZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IGdjaGFyICpzb3VyY2VfZmFjdG9yeSkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3Vy
Y2UoZGV2aWNlSUQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBuYW1lKQorICAg
IDogUmVhbHRpbWVWaWRlb1NvdXJjZShkZXZpY2VJRCwgbmFtZSkKICAgICAsIG1fY2FwdHVyZXIo
c3RkOjptYWtlX3VuaXF1ZTxHU3RyZWFtZXJWaWRlb0NhcHR1cmVyPihzb3VyY2VfZmFjdG9yeSkp
CiB7CiAgICAgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVnKCk7CiB9CiAKIEdTdHJlYW1lclZpZGVv
Q2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKEdTdHJlYW1lckNhcHR1
cmVEZXZpY2UgZGV2aWNlKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShkZXZpY2UucGVyc2lz
dGVudElkKCksIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBkZXZpY2UubGFiZWwo
KSkKKyAgICA6IFJlYWx0aW1lVmlkZW9Tb3VyY2UoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBkZXZp
Y2UubGFiZWwoKSkKICAgICAsIG1fY2FwdHVyZXIoc3RkOjptYWtlX3VuaXF1ZTxHU3RyZWFtZXJW
aWRlb0NhcHR1cmVyPihkZXZpY2UpKQogewogICAgIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1Zygp
OwpAQCAtMTUwLDg2ICsxNjYsMTIgQEAgdm9pZCBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6
OnN0b3BQcm9kdWNpbmdEYXRhKCkKIAogY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyYgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMoKQogewotICAg
IGlmIChtX2NhcGFiaWxpdGllcykKLSAgICAgICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzLnZhbHVl
KCk7Ci0KICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcyhz
ZXR0aW5ncygpLnN1cHBvcnRlZENvbnN0cmFpbnRzKCkpOwotICAgIEdSZWZQdHI8R3N0Q2Fwcz4g
Y2FwcyA9IGFkb3B0R1JlZihtX2NhcHR1cmVyLT5jYXBzKCkpOwotICAgIGludDMyX3QgbWluV2lk
dGggPSBHX01BWElOVDMyLCBtYXhXaWR0aCA9IDAsIG1pbkhlaWdodCA9IEdfTUFYSU5UMzIsIG1h
eEhlaWdodCA9IDA7Ci0gICAgZG91YmxlIG1pbkZyYW1lcmF0ZSA9IEdfTUFYRE9VQkxFLCBtYXhG
cmFtZXJhdGUgPSBHX01JTkRPVUJMRTsKLQotICAgIGZvciAoZ3VpbnQgaSA9IDA7IGkgPCBnc3Rf
Y2Fwc19nZXRfc2l6ZShjYXBzLmdldCgpKTsgaSsrKSB7Ci0gICAgICAgIEdzdFN0cnVjdHVyZSog
c3RyID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZShjYXBzLmdldCgpLCBpKTsKLQotICAgICAgICAv
LyBPbmx5IGFjY2VwdCByYXcgdmlkZW8gZm9yIG5vdy4KLSAgICAgICAgaWYgKCFnc3Rfc3RydWN0
dXJlX2hhc19uYW1lKHN0ciwgInZpZGVvL3gtcmF3IikpCi0gICAgICAgICAgICBjb250aW51ZTsK
LQotICAgICAgICBpbnQzMl90IHRtcE1pbldpZHRoLCB0bXBNaW5IZWlnaHQsIHRtcE1pbkZQU051
bWVyYXRvciwgdG1wTWluRlBTRGVub21pbmF0b3I7Ci0gICAgICAgIGludDMyX3QgdG1wTWF4V2lk
dGgsIHRtcE1heEhlaWdodCwgdG1wTWF4RlBTTnVtZXJhdG9yLCB0bXBNYXhGUFNEZW5vbWluYXRv
cjsKLSAgICAgICAgZG91YmxlIHRtcE1pbkZyYW1lcmF0ZSA9IEdfTUFYRE9VQkxFLCB0bXBNYXhG
cmFtZXJhdGUgPSBHX01JTkRPVUJMRTsKLQotICAgICAgICBpZiAoIWdzdF9zdHJ1Y3R1cmVfZ2V0
KHN0ciwgIndpZHRoIiwgR1NUX1RZUEVfSU5UX1JBTkdFLCAmdG1wTWluV2lkdGgsICZ0bXBNYXhX
aWR0aCwgImhlaWdodCIsIEdTVF9UWVBFX0lOVF9SQU5HRSwgJnRtcE1pbkhlaWdodCwgJnRtcE1h
eEhlaWdodCwgbnVsbHB0cikpIHsKLSAgICAgICAgICAgIGlmICghZ3N0X3N0cnVjdHVyZV9nZXQo
c3RyLCAid2lkdGgiLCBHX1RZUEVfSU5ULCAmdG1wTWluV2lkdGgsICJoZWlnaHQiLCBHX1RZUEVf
SU5ULCAmdG1wTWluSGVpZ2h0LCBudWxscHRyKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsK
LQotICAgICAgICAgICAgdG1wTWF4V2lkdGggPSB0bXBNaW5XaWR0aDsKLSAgICAgICAgICAgIHRt
cE1heEhlaWdodCA9IHRtcE1pbkhlaWdodDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChnc3Rf
c3RydWN0dXJlX2dldChzdHIsICJmcmFtZXJhdGUiLCBHU1RfVFlQRV9GUkFDVElPTl9SQU5HRSwg
JnRtcE1pbkZQU051bWVyYXRvciwgJnRtcE1pbkZQU0Rlbm9taW5hdG9yLCAmdG1wTWF4RlBTTnVt
ZXJhdG9yLCAmdG1wTWF4RlBTRGVub21pbmF0b3IsIG51bGxwdHIpKSB7Ci0gICAgICAgICAgICBn
c3RfdXRpbF9mcmFjdGlvbl90b19kb3VibGUodG1wTWluRlBTTnVtZXJhdG9yLCB0bXBNaW5GUFNE
ZW5vbWluYXRvciwgJnRtcE1pbkZyYW1lcmF0ZSk7Ci0gICAgICAgICAgICBnc3RfdXRpbF9mcmFj
dGlvbl90b19kb3VibGUodG1wTWF4RlBTTnVtZXJhdG9yLCB0bXBNYXhGUFNEZW5vbWluYXRvciwg
JnRtcE1heEZyYW1lcmF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoZ3N0X3N0cnVjdHVyZV9nZXQo
c3RyLAotICAgICAgICAgICAgImZyYW1lcmF0ZSIsIEdTVF9UWVBFX0ZSQUNUSU9OLCAmdG1wTWlu
RlBTTnVtZXJhdG9yLCAmdG1wTWluRlBTRGVub21pbmF0b3IsIG51bGxwdHIpKSB7Ci0gICAgICAg
ICAgICB0bXBNYXhGUFNOdW1lcmF0b3IgPSB0bXBNaW5GUFNOdW1lcmF0b3I7Ci0gICAgICAgICAg
ICB0bXBNYXhGUFNEZW5vbWluYXRvciA9IHRtcE1pbkZQU0Rlbm9taW5hdG9yOwotICAgICAgICAg
ICAgZ3N0X3V0aWxfZnJhY3Rpb25fdG9fZG91YmxlKHRtcE1pbkZQU051bWVyYXRvciwgdG1wTWlu
RlBTRGVub21pbmF0b3IsICZ0bXBNaW5GcmFtZXJhdGUpOwotICAgICAgICAgICAgZ3N0X3V0aWxf
ZnJhY3Rpb25fdG9fZG91YmxlKHRtcE1heEZQU051bWVyYXRvciwgdG1wTWF4RlBTRGVub21pbmF0
b3IsICZ0bXBNYXhGcmFtZXJhdGUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY29u
c3QgR1ZhbHVlKiBmcmFtZVJhdGVzKGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbHVlKHN0ciwgImZyYW1l
cmF0ZSIpKTsKLSAgICAgICAgICAgIHRtcE1pbkZyYW1lcmF0ZSA9IEdfTUFYRE9VQkxFOwotICAg
ICAgICAgICAgdG1wTWF4RnJhbWVyYXRlID0gMC4wOwotCi0gICAgICAgICAgICBndWludCBmcmFt
ZVJhdGVzTGVuZ3RoID0gc3RhdGljX2Nhc3Q8Z3VpbnQ+KGdzdF92YWx1ZV9saXN0X2dldF9zaXpl
KGZyYW1lUmF0ZXMpKSAtIDE7Ci0KLSAgICAgICAgICAgIGZvciAoZ3VpbnQgaSA9IDA7IGkgPCBm
cmFtZVJhdGVzTGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICBkb3VibGUgdG1wRnJhbWVS
YXRlOwotICAgICAgICAgICAgICAgIGNvbnN0IEdWYWx1ZSogdmFsID0gZ3N0X3ZhbHVlX2xpc3Rf
Z2V0X3ZhbHVlKGZyYW1lUmF0ZXMsIGkpOwotCi0gICAgICAgICAgICAgICAgQVNTRVJUKEdfVkFM
VUVfVFlQRSh2YWwpID09IEdTVF9UWVBFX0ZSQUNUSU9OKTsKLSAgICAgICAgICAgICAgICBnc3Rf
dXRpbF9mcmFjdGlvbl90b19kb3VibGUoZ3N0X3ZhbHVlX2dldF9mcmFjdGlvbl9udW1lcmF0b3Io
dmFsKSwKLSAgICAgICAgICAgICAgICAgICAgZ3N0X3ZhbHVlX2dldF9mcmFjdGlvbl9kZW5vbWlu
YXRvcih2YWwpLCAmdG1wRnJhbWVSYXRlKTsKLQotICAgICAgICAgICAgICAgIHRtcE1pbkZyYW1l
cmF0ZSA9IHN0ZDo6bWluKHRtcE1pbkZyYW1lcmF0ZSwgdG1wRnJhbWVSYXRlKTsKLSAgICAgICAg
ICAgICAgICB0bXBNYXhGcmFtZXJhdGUgPSBzdGQ6Om1heCh0bXBNYXhGcmFtZXJhdGUsIHRtcEZy
YW1lUmF0ZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChpID4gMCkgewotICAg
ICAgICAgICAgICAgIG1pbldpZHRoID0gc3RkOjptaW4odG1wTWluV2lkdGgsIG1pbldpZHRoKTsK
LSAgICAgICAgICAgICAgICBtaW5IZWlnaHQgPSBzdGQ6Om1pbih0bXBNaW5IZWlnaHQsIG1pbkhl
aWdodCk7Ci0gICAgICAgICAgICAgICAgbWluRnJhbWVyYXRlID0gc3RkOjptaW4odG1wTWluRnJh
bWVyYXRlLCBtaW5GcmFtZXJhdGUpOwotCi0gICAgICAgICAgICAgICAgbWF4V2lkdGggPSBzdGQ6
Om1heCh0bXBNYXhXaWR0aCwgbWF4V2lkdGgpOwotICAgICAgICAgICAgICAgIG1heEhlaWdodCA9
IHN0ZDo6bWF4KHRtcE1heEhlaWdodCwgbWF4SGVpZ2h0KTsKLSAgICAgICAgICAgICAgICBtYXhG
cmFtZXJhdGUgPSBzdGQ6Om1heCh0bXBNYXhGcmFtZXJhdGUsIG1heEZyYW1lcmF0ZSk7Ci0gICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG1pbldpZHRoID0gdG1wTWluV2lkdGg7
Ci0gICAgICAgICAgICAgICAgbWluSGVpZ2h0ID0gdG1wTWluSGVpZ2h0OwotICAgICAgICAgICAg
ICAgIG1pbkZyYW1lcmF0ZSA9IHRtcE1pbkZyYW1lcmF0ZTsKLQotICAgICAgICAgICAgICAgIG1h
eFdpZHRoID0gdG1wTWF4V2lkdGg7Ci0gICAgICAgICAgICAgICAgbWF4SGVpZ2h0ID0gdG1wTWF4
SGVpZ2h0OwotICAgICAgICAgICAgICAgIG1heEZyYW1lcmF0ZSA9IHRtcE1heEZyYW1lcmF0ZTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGNhcGFiaWxpdGllcy5zZXREZXZp
Y2VJZChpZCgpKTsKLSAgICAgICAgY2FwYWJpbGl0aWVzLnNldFdpZHRoKENhcGFiaWxpdHlWYWx1
ZU9yUmFuZ2UobWluV2lkdGgsIG1heFdpZHRoKSk7Ci0gICAgICAgIGNhcGFiaWxpdGllcy5zZXRI
ZWlnaHQoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZShtaW5IZWlnaHQsIG1heEhlaWdodCkpOwotICAg
ICAgICBjYXBhYmlsaXRpZXMuc2V0RnJhbWVSYXRlKENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UobWlu
RnJhbWVyYXRlLCBtYXhGcmFtZXJhdGUpKTsKLSAgICAgICAgbV9jYXBhYmlsaXRpZXMgPSBXVEZN
b3ZlKGNhcGFiaWxpdGllcyk7Ci0gICAgfQorCisgICAgY2FwYWJpbGl0aWVzLnNldERldmljZUlk
KGlkKCkpOworICAgIHVwZGF0ZUNhcGFiaWxpdGllcyhjYXBhYmlsaXRpZXMpOworCisgICAgbV9j
YXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7CiAKICAgICByZXR1cm4gbV9jYXBh
YmlsaXRpZXMudmFsdWUoKTsKIH0KQEAgLTI2MCw2ICsyMDIsMTYgQEAgY29uc3QgUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzJiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHRpbmdz
KCkKICAgICByZXR1cm4gbV9jdXJyZW50U2V0dGluZ3MudmFsdWUoKTsKIH0KIAordm9pZCBHU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OmdlbmVyYXRlUHJlc2V0cygpCit7CisgICAgVmVjdG9y
PFJlZjxWaWRlb1ByZXNldD4+IHByZXNldHM7CisKKyAgICBmb3IgKGF1dG8mIHNpemUgOiBzdGFu
ZGFyZFZpZGVvU2l6ZXMoKSkKKyAgICAgICAgcHJlc2V0cy5hcHBlbmQoR1N0cmVhbWVyVmlkZW9Q
cmVzZXQ6OmNyZWF0ZShzaXplKSk7CisKKyAgICBzZXRTdXBwb3J0ZWRQcmVzZXRzKFdURk1vdmUo
cHJlc2V0cykpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVy
ZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDc1MTI5NmE2M2NhNzVlZGQ5N2M3
ODJmYjVhZWQxYzA4ZDY4ZDI5ZTkuLjU5YWE0M2RkODEzOTJlY2M4MDU0YzExMzQ5MjMyOTdlYTlm
OGQ3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291
cmNlLmgKQEAgLTIzLDExICsyMywxMSBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYg
VVNFKExJQldFQlJUQykgJiYgVVNFKEdTVFJFQU1FUikKICNpbmNsdWRlICJHU3RyZWFtZXJWaWRl
b0NhcHR1cmVyLmgiCi0jaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgorI2luY2x1ZGUg
IlJlYWx0aW1lVmlkZW9Tb3VyY2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBH
U3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSB7
CitjbGFzcyBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVWaWRl
b1NvdXJjZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFZpZGVvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKQEAg
LTQzLDYgKzQzLDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkdTdHJlYW1lclZpZGVvQ2Fw
dHVyZVNvdXJjZSgpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIG92ZXJyaWRlOworICAgIGJvb2wgY2FuUmVzaXpl
VmlkZW9GcmFtZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgdm9pZCBnZW5l
cmF0ZVByZXNldHMoKSBmaW5hbDsKKwogCiAgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOwogICAgIG11dGFibGUg
c3RkOjpvcHRpb25hbDxSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M+IG1fY3VycmVudFNldHRp
bmdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCBhZTAwZDBkZWJkYmNhMWY4YTc1
YWQ5YzJiNzkyZDZlNDJmMDZkZjM5Li4xMTBjNTliOTllMjRlOTVjYzdlNmNiNzI0M2VmNmQ0Mzk4
ZWU5ZDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtNTUsNiArNTUsNyBAQCBz
dGF0aWMgaW5saW5lIFZlY3RvcjxNb2NrTWVkaWFEZXZpY2U+IGRlZmF1bHREZXZpY2VzKCkKICAg
ICAgICAgICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OlZpZGVvRmFjaW5nTW9k
ZTo6VXNlciwgewogICAgICAgICAgICAgICAgICAgICB7IHsgMTI4MCwgNzIwIH0sIHsgeyAzMCwg
MzB9LCB7IDI3LjUsIDI3LjV9LCB7IDI1LCAyNX0sIHsgMjIuNSwgMjIuNX0sIHsgMjAsIDIwfSwg
eyAxNy41LCAxNy41fSwgeyAxNSwgMTV9LCB7IDEyLjUsIDEyLjV9LCB7IDEwLCAxMH0sIHsgNy41
LCA3LjV9LCB7IDUsIDV9IH0gfSwKICAgICAgICAgICAgICAgICAgICAgeyB7IDY0MCwgNDgwIH0s
ICB7IHsgMzAsIDMwfSwgeyAyNy41LCAyNy41fSwgeyAyNSwgMjV9LCB7IDIyLjUsIDIyLjV9LCB7
IDIwLCAyMH0sIHsgMTcuNSwgMTcuNX0sIHsgMTUsIDE1fSwgeyAxMi41LCAxMi41fSwgeyAxMCwg
MTB9LCB7IDcuNSwgNy41fSwgeyA1LCA1fSB9IH0sCisgICAgICAgICAgICAgICAgICAgIHsgeyAx
MTIsIDExMiB9LCAgeyB7IDMwLCAzMH0sIHsgMjcuNSwgMjcuNX0sIHsgMjUsIDI1fSwgeyAyMi41
LCAyMi41fSwgeyAyMCwgMjB9LCB7IDE3LjUsIDE3LjV9LCB7IDE1LCAxNX0sIHsgMTIuNSwgMTIu
NX0sIHsgMTAsIDEwfSwgeyA3LjUsIDcuNX0sIHsgNSwgNX0gfSB9LAogICAgICAgICAgICAgICAg
IH0sCiAgICAgICAgICAgICAgICAgQ29sb3I6OmJsYWNrLAogICAgICAgICAgICAgfSB9LApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDM0OTUxN2ZiYzJmMzljYWE0ZGRkZjk2YjA5NjA3Y2U1MTVlYzAwNjUuLmUzYmVjYzM2MmZj
MGIyZTk2Zjc3OTZlNmI3NDE2NzE3NDZjOWQ5NTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAx
OC0wOS0yNyAgVGhpYmF1bHQgU2F1bmllciAgPHRzYXVuaWVyQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dTdHJlYW1lcl0gU3VwcG9ydCBhcmJpdHJhcnkgdmlkZW8gcmVzb2x1dGlvbiBpbiBnZXRV
c2VyTWVkaWEgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODk3MzQKKworICAgICAgICBJbXBsZW1lbnQgYXJiaXRyYXJ5IHZpZGVvIHJlc29sdXRp
b24gZm9yIHRoZSBnZXRVc2VyTWVkaWEgQVBJIGluIEdTdHJlYW1lci4KKworICAgICAgICBGaXgg
dGhlIE1vY2tSZWFsdGltZU1lZGlhU291cmNlIGRldmljZSBsaXN0IHRvIG1ha2UgZGV2aWNlcyBw
cm9wZXJ0aWVzIG1hdGNoCisgICAgICAgIHRlc3QgZXhwZWN0YXRpb25zLgorCisgICAgICAgIFJl
YWN0aXZhdGUgdGVzdHMgdGhhdCB3ZXJlIGZhaWxsaW5nIGJlY2F1c2Ugb2YgdGhhdC4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRp
b25zOgorCiAyMDE4LTA5LTIxICBUaGliYXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbR1RLXVtXUEVdIEJsYWNrbGlzdCBtb3JlIHRlc3RzIHRoYXQgYXJlIHJl
cXVpcmluZyB3ZWJydGMgPC0+IHdlYmF1ZGlvIGJyaWRnaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDU0MzQ3MWI5M2Q0Y2E2ZWYzOGU5MTQzN2U3ZmRm
ZjQ5ZTdmYTUzZTIuLjc4N2M3NzQ0MzBjNTQyYTQxMDcyNTcxM2VkYzQyMGE5ZmUyNzQwNWMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC02MTEsMTAgKzYx
MSw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLyBbIFNraXAgXQog
aHR0cC90ZXN0cy93ZWJydGMgWyBTa2lwIF0KICMgVGhlIE1lZGlhU3RyZWFtIGltcGxlbWVudGF0
aW9uIGlzIGFsc28gc3RpbGwgbm90IGNvbXBsZXRlZAogd2Via2l0Lm9yZy9iLzc5MjAzIGZhc3Qv
bWVkaWFzdHJlYW0vbW9jay1tZWRpYS1zb3VyY2Utd2ViYXVkaW8uaHRtbCBbIFRpbWVvdXQgXQot
d2Via2l0Lm9yZy9iLzE4OTczNCBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0
Q2FwYWJpbGl0aWVzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xODk3MzQgZmFzdC9t
ZWRpYXN0cmVhbS9hcHBseS1jb25zdHJhaW50cy1hZHZhbmNlZC5odG1sIFsgRmFpbHVyZSBdCi13
ZWJraXQub3JnL2IvMTg5NzM0IGZhc3QvbWVkaWFzdHJlYW0vYXBwbHktY29uc3RyYWludHMtdmlk
ZW8uaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE4OTczNCBmYXN0L21lZGlhc3RyZWFt
L2dldFVzZXJNZWRpYS1kZWZhdWx0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi83OTIw
MyBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS13ZWJhdWRpby5odG1sIFsgRmFpbHVyZSBd
CiAjIENyYXNoIGlzIGJ1ZyAjMTg2Njc4CiB3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXRyYWNrLXN0b3AuaHRtbCBbIFRpbWVvdXQg
Q3Jhc2ggXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBm
MzFjMDcxNmIwYTZmNTVmOWVhMThhOWEyZjdiOThiYWE1MjM0N2Q3Li45MzIwOTI1OTNhZmJhNmEy
NjQ1ODU1YTFlODA4ZjkyZDEzNTllOWY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93cGUvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtODIsMTAgKzgyLDYgQEAgd2Via2l0Lm9yZy9iLzE4NjkzMyB3ZWJy
dGMvZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLWF1dG9wbGF5Lmh0bWwKIHdlYmtpdC5vcmcvYi83OTIw
MyBmYXN0L21lZGlhc3RyZWFtL21vY2stbWVkaWEtc291cmNlLXdlYmF1ZGlvLmh0bWwgWyBUaW1l
b3V0IF0KIHdlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS13
ZWJhdWRpby5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXRyYWNrLXN0b3AuaHRtbCBbIFRpbWVvdXQg
XQotd2Via2l0Lm9yZy9iLzE4OTczNCBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2st
Z2V0Q2FwYWJpbGl0aWVzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xODk3MzQgZmFz
dC9tZWRpYXN0cmVhbS9hcHBseS1jb25zdHJhaW50cy1hZHZhbmNlZC5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJraXQub3JnL2IvMTg5NzM0IGZhc3QvbWVkaWFzdHJlYW0vYXBwbHktY29uc3RyYWludHMt
dmlkZW8uaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE4OTczNCBmYXN0L21lZGlhc3Ry
ZWFtL2dldFVzZXJNZWRpYS1kZWZhdWx0Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi83
OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWR0bWYuaHRtbCBbIFRpbWVv
dXQgXQogd2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24taWNlY2FuZGlkYXRlLWV2ZW50Lmh0bWwgWyBQYXNzIEZhaWx1cmUgQ3Jhc2ggXQogd2Via2l0
Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tbWVkaWEtc2V0
dXAtdHdvLWRpYWxvZ3MuaHRtbCBbIFBhc3MgRmFpbHVyZSBDcmFzaCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350999</attachid>
            <date>2018-09-27 14:11:15 -0700</date>
            <delta_ts>2018-10-11 13:46:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189734-20180927181113.patch</filename>
            <type>text/plain</type>
            <size>18820</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2MzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTgzYzZkMDdiYTM4MzI5
MzA5NTgyYTdkM2MxM2IyNjZmZGEwYmFhYS4uYWZmM2FiNTQ5YTE5MTkwMmM2Njc4YjNhOWQzOTY2
YTk0ZWUwMzU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE4LTA5LTI3ICBUaGli
YXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBTdXBwb3J0IGFyYml0cmFyeSB2aWRlbyByZXNvbHV0aW9uIGluIGdldFVzZXJNZWRpYSBBUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTczNAor
CisgICAgICAgIEltcGxlbWVudCBhcmJpdHJhcnkgdmlkZW8gcmVzb2x1dGlvbiBmb3IgdGhlIGdl
dFVzZXJNZWRpYSBBUEkgaW4gR1N0cmVhbWVyLgorCisgICAgICAgIEZpeCB0aGUgTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2UgZGV2aWNlIGxpc3QgdG8gbWFrZSBkZXZpY2VzIHByb3BlcnRpZXMgbWF0
Y2gKKyAgICAgICAgdGVzdCBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgUmVhY3RpdmF0ZSB0ZXN0
cyB0aGF0IHdlcmUgZmFpbGxpbmcgYmVjYXVzZSBvZiB0aGF0LgorCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZVZpZGVvU291cmNlOjpzdGFuZGFyZFZpZGVvU2l6ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6c3RhbmRhcmRWaWRlb1NpemVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vVmlkZW9QcmVzZXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdTdHJlYW1lclZpZGVvUHJlc2V0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1N0
cmVhbWVyVmlkZW9QcmVzZXQ6OkdTdHJlYW1lclZpZGVvUHJlc2V0KToKKyAgICAgICAgKFdlYkNv
cmU6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291
cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2Fw
YWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Z2VuZXJhdGVQcmVzZXRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpkZWZhdWx0RGV2aWNlcyk6CisKIDIwMTgtMDktMjcgIFRoaWJhdWx0IFNhdW5pZXIgIDx0c2F1
bmllckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdIEZpeCBFbmNvZGVkSW1hZ2Ug
dGltZXN0YW1wcyB0byBtYXRjaCB3aGF0IGxpYldlYlJUQyBleHBlY3RzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UuY3BwCmluZGV4IGY1ZGI5YjA5N2U3NjQzOWFiMTE5OGU3ZWU2MmJlMDVhMjJkM2Q3YWIuLmIz
NGE3NTQyMmJiM2UxNGE3ZWUyOThmNmE2YTRhMTBjNDY5YjhmOWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0U3Vw
cG9ydGVkUHJlc2V0cyhjb25zdCBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4mIHByCiAgICAgfQog
fQogCi1zdGF0aWMgY29uc3QgVmVjdG9yPEludFNpemU+JiBzdGFuZGFyZFZpZGVvU2l6ZXMoKQor
Y29uc3QgVmVjdG9yPEludFNpemU+JiBSZWFsdGltZVZpZGVvU291cmNlOjpzdGFuZGFyZFZpZGVv
U2l6ZXMoKQogewogICAgIHN0YXRpYyBjb25zdCBhdXRvIHNpemVzID0gbWFrZU5ldmVyRGVzdHJv
eWVkKFtdIHsKICAgICAgICAgc3RhdGljIEludFNpemUgdmlkZW9TaXplc1tdID0gewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1Nv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5oCmluZGV4IDNiYTM3M2EzMWRiMDBmZDc3MzQ4MDQyMTY4NzNjNTNmNGFhMTcyNjku
LjI0OWRmM2VlNjRmNzRmODEwODA1NjhiMWI5NjQ1ZjM2ZGRlYThlNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291
cmNlLmgKQEAgLTY3LDYgKzY3LDcgQEAgcHJvdGVjdGVkOgogICAgIGRvdWJsZSBvYnNlcnZlZEZy
YW1lUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2ZWRGcmFtZVJhdGU7IH0KIAogICAgIHZv
aWQgZGlzcGF0Y2hNZWRpYVNhbXBsZVRvT2JzZXJ2ZXJzKE1lZGlhU2FtcGxlJik7CisgICAgY29u
c3QgVmVjdG9yPEludFNpemU+JiBzdGFuZGFyZFZpZGVvU2l6ZXMoKTsKIAogcHJpdmF0ZToKICAg
ICBzdHJ1Y3QgQ2FwdHVyZVNpemVBbmRGcmFtZVJhdGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vVmlkZW9QcmVzZXQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1ZpZGVvUHJlc2V0LmgKaW5kZXggOWYwNDA5OGZjZGEwNmI0
MGY1MDE4MmEwMDk1NTc2OTZjNzFlNTk0Yi4uNDA3MDJjOGU0ZDNkNGRjYmU2MTY4Y2I1NGZlMThh
MDA0ZmNjNjczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vVmlkZW9QcmVzZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9WaWRlb1ByZXNldC5oCkBAIC0xMDcsNyArMTA3LDggQEAgcHVibGljOgogCiAgICAgZW51bSBW
aWRlb1ByZXNldFR5cGUgewogICAgICAgICBCYXNlLAotICAgICAgICBBVkNhcHR1cmUKKyAgICAg
ICAgQVZDYXB0dXJlLAorICAgICAgICBHU3RyZWFtZXIKICAgICB9OwogCiAgICAgSW50U2l6ZSBz
aXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNl
LmNwcAppbmRleCAzMGQxNTdiZmU5ZjBmYmMwYWM4NDcxNDU1NWE2ZjFlYzZkMzllMjRlLi4yZDdl
OTc5Mjg5OWViNmI2NzYyZTdmYTU5MWJmZjE1OTcxOTk0ZGEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0
dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9n
c3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtNTIsNiArNTIsMjAg
QEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVnKCkKICAgICB9KTsKIH0KIAor
Y2xhc3MgR1N0cmVhbWVyVmlkZW9QcmVzZXQgOiBwdWJsaWMgVmlkZW9QcmVzZXQgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8R1N0cmVhbWVyVmlkZW9QcmVzZXQ+IGNyZWF0ZShJbnRTaXplIHNp
emUsIFZlY3RvcjxGcmFtZVJhdGVSYW5nZT4mJiBmcmFtZXJhdGVzKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgR1N0cmVhbWVyVmlkZW9QcmVzZXQoc2l6ZSwgV1RGTW92ZShm
cmFtZXJhdGVzKSkpOworICAgIH0KKworICAgIEdTdHJlYW1lclZpZGVvUHJlc2V0KEludFNpemUg
c2l6ZSwgVmVjdG9yPEZyYW1lUmF0ZVJhbmdlPiYmIGZyYW1lUmF0ZVJhbmdlcykKKyAgICAgICAg
OiBWaWRlb1ByZXNldChzaXplLCBXVEZNb3ZlKGZyYW1lUmF0ZVJhbmdlcyksIEdTdHJlYW1lcikK
KyAgICB7CisgICAgfQorfTsKKworCiBjbGFzcyBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2VG
YWN0b3J5IGZpbmFsIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZh
Y3RvcnkgewogcHVibGljOgogICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2Fw
dHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbApAQCAtOTAsMTQgKzEwNCwxNCBAQCBSZWFsdGltZU1l
ZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5JiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2U6OmZhY3RvcnkoKQogfQogCiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1l
clZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IGdjaGFyICpzb3VyY2VfZmFjdG9yeSkKLSAgICA6IFJlYWx0aW1lTWVkaWFT
b3VyY2UoZGV2aWNlSUQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBuYW1lKQor
ICAgIDogUmVhbHRpbWVWaWRlb1NvdXJjZShkZXZpY2VJRCwgbmFtZSkKICAgICAsIG1fY2FwdHVy
ZXIoc3RkOjptYWtlX3VuaXF1ZTxHU3RyZWFtZXJWaWRlb0NhcHR1cmVyPihzb3VyY2VfZmFjdG9y
eSkpCiB7CiAgICAgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVnKCk7CiB9CiAKIEdTdHJlYW1lclZp
ZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKEdTdHJlYW1lckNh
cHR1cmVEZXZpY2UgZGV2aWNlKQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShkZXZpY2UucGVy
c2lzdGVudElkKCksIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBkZXZpY2UubGFi
ZWwoKSkKKyAgICA6IFJlYWx0aW1lVmlkZW9Tb3VyY2UoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBk
ZXZpY2UubGFiZWwoKSkKICAgICAsIG1fY2FwdHVyZXIoc3RkOjptYWtlX3VuaXF1ZTxHU3RyZWFt
ZXJWaWRlb0NhcHR1cmVyPihkZXZpY2UpKQogewogICAgIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1
ZygpOwpAQCAtMTUwLDg2ICsxNjQsMTIgQEAgdm9pZCBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2U6OnN0b3BQcm9kdWNpbmdEYXRhKCkKIAogY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyYgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMoKQogewot
ICAgIGlmIChtX2NhcGFiaWxpdGllcykKLSAgICAgICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzLnZh
bHVlKCk7Ci0KICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGll
cyhzZXR0aW5ncygpLnN1cHBvcnRlZENvbnN0cmFpbnRzKCkpOwotICAgIEdSZWZQdHI8R3N0Q2Fw
cz4gY2FwcyA9IGFkb3B0R1JlZihtX2NhcHR1cmVyLT5jYXBzKCkpOwotICAgIGludDMyX3QgbWlu
V2lkdGggPSBHX01BWElOVDMyLCBtYXhXaWR0aCA9IDAsIG1pbkhlaWdodCA9IEdfTUFYSU5UMzIs
IG1heEhlaWdodCA9IDA7Ci0gICAgZG91YmxlIG1pbkZyYW1lcmF0ZSA9IEdfTUFYRE9VQkxFLCBt
YXhGcmFtZXJhdGUgPSBHX01JTkRPVUJMRTsKLQotICAgIGZvciAoZ3VpbnQgaSA9IDA7IGkgPCBn
c3RfY2Fwc19nZXRfc2l6ZShjYXBzLmdldCgpKTsgaSsrKSB7Ci0gICAgICAgIEdzdFN0cnVjdHVy
ZSogc3RyID0gZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZShjYXBzLmdldCgpLCBpKTsKIAotICAgICAg
ICAvLyBPbmx5IGFjY2VwdCByYXcgdmlkZW8gZm9yIG5vdy4KLSAgICAgICAgaWYgKCFnc3Rfc3Ry
dWN0dXJlX2hhc19uYW1lKHN0ciwgInZpZGVvL3gtcmF3IikpCi0gICAgICAgICAgICBjb250aW51
ZTsKLQotICAgICAgICBpbnQzMl90IHRtcE1pbldpZHRoLCB0bXBNaW5IZWlnaHQsIHRtcE1pbkZQ
U051bWVyYXRvciwgdG1wTWluRlBTRGVub21pbmF0b3I7Ci0gICAgICAgIGludDMyX3QgdG1wTWF4
V2lkdGgsIHRtcE1heEhlaWdodCwgdG1wTWF4RlBTTnVtZXJhdG9yLCB0bXBNYXhGUFNEZW5vbWlu
YXRvcjsKLSAgICAgICAgZG91YmxlIHRtcE1pbkZyYW1lcmF0ZSA9IEdfTUFYRE9VQkxFLCB0bXBN
YXhGcmFtZXJhdGUgPSBHX01JTkRPVUJMRTsKLQotICAgICAgICBpZiAoIWdzdF9zdHJ1Y3R1cmVf
Z2V0KHN0ciwgIndpZHRoIiwgR1NUX1RZUEVfSU5UX1JBTkdFLCAmdG1wTWluV2lkdGgsICZ0bXBN
YXhXaWR0aCwgImhlaWdodCIsIEdTVF9UWVBFX0lOVF9SQU5HRSwgJnRtcE1pbkhlaWdodCwgJnRt
cE1heEhlaWdodCwgbnVsbHB0cikpIHsKLSAgICAgICAgICAgIGlmICghZ3N0X3N0cnVjdHVyZV9n
ZXQoc3RyLCAid2lkdGgiLCBHX1RZUEVfSU5ULCAmdG1wTWluV2lkdGgsICJoZWlnaHQiLCBHX1RZ
UEVfSU5ULCAmdG1wTWluSGVpZ2h0LCBudWxscHRyKSkKLSAgICAgICAgICAgICAgICBjb250aW51
ZTsKLQotICAgICAgICAgICAgdG1wTWF4V2lkdGggPSB0bXBNaW5XaWR0aDsKLSAgICAgICAgICAg
IHRtcE1heEhlaWdodCA9IHRtcE1pbkhlaWdodDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChn
c3Rfc3RydWN0dXJlX2dldChzdHIsICJmcmFtZXJhdGUiLCBHU1RfVFlQRV9GUkFDVElPTl9SQU5H
RSwgJnRtcE1pbkZQU051bWVyYXRvciwgJnRtcE1pbkZQU0Rlbm9taW5hdG9yLCAmdG1wTWF4RlBT
TnVtZXJhdG9yLCAmdG1wTWF4RlBTRGVub21pbmF0b3IsIG51bGxwdHIpKSB7Ci0gICAgICAgICAg
ICBnc3RfdXRpbF9mcmFjdGlvbl90b19kb3VibGUodG1wTWluRlBTTnVtZXJhdG9yLCB0bXBNaW5G
UFNEZW5vbWluYXRvciwgJnRtcE1pbkZyYW1lcmF0ZSk7Ci0gICAgICAgICAgICBnc3RfdXRpbF9m
cmFjdGlvbl90b19kb3VibGUodG1wTWF4RlBTTnVtZXJhdG9yLCB0bXBNYXhGUFNEZW5vbWluYXRv
ciwgJnRtcE1heEZyYW1lcmF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoZ3N0X3N0cnVjdHVyZV9n
ZXQoc3RyLAotICAgICAgICAgICAgImZyYW1lcmF0ZSIsIEdTVF9UWVBFX0ZSQUNUSU9OLCAmdG1w
TWluRlBTTnVtZXJhdG9yLCAmdG1wTWluRlBTRGVub21pbmF0b3IsIG51bGxwdHIpKSB7Ci0gICAg
ICAgICAgICB0bXBNYXhGUFNOdW1lcmF0b3IgPSB0bXBNaW5GUFNOdW1lcmF0b3I7Ci0gICAgICAg
ICAgICB0bXBNYXhGUFNEZW5vbWluYXRvciA9IHRtcE1pbkZQU0Rlbm9taW5hdG9yOwotICAgICAg
ICAgICAgZ3N0X3V0aWxfZnJhY3Rpb25fdG9fZG91YmxlKHRtcE1pbkZQU051bWVyYXRvciwgdG1w
TWluRlBTRGVub21pbmF0b3IsICZ0bXBNaW5GcmFtZXJhdGUpOwotICAgICAgICAgICAgZ3N0X3V0
aWxfZnJhY3Rpb25fdG9fZG91YmxlKHRtcE1heEZQU051bWVyYXRvciwgdG1wTWF4RlBTRGVub21p
bmF0b3IsICZ0bXBNYXhGcmFtZXJhdGUpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
Y29uc3QgR1ZhbHVlKiBmcmFtZVJhdGVzKGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbHVlKHN0ciwgImZy
YW1lcmF0ZSIpKTsKLSAgICAgICAgICAgIHRtcE1pbkZyYW1lcmF0ZSA9IEdfTUFYRE9VQkxFOwot
ICAgICAgICAgICAgdG1wTWF4RnJhbWVyYXRlID0gMC4wOwotCi0gICAgICAgICAgICBndWludCBm
cmFtZVJhdGVzTGVuZ3RoID0gc3RhdGljX2Nhc3Q8Z3VpbnQ+KGdzdF92YWx1ZV9saXN0X2dldF9z
aXplKGZyYW1lUmF0ZXMpKSAtIDE7Ci0KLSAgICAgICAgICAgIGZvciAoZ3VpbnQgaSA9IDA7IGkg
PCBmcmFtZVJhdGVzTGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICBkb3VibGUgdG1wRnJh
bWVSYXRlOwotICAgICAgICAgICAgICAgIGNvbnN0IEdWYWx1ZSogdmFsID0gZ3N0X3ZhbHVlX2xp
c3RfZ2V0X3ZhbHVlKGZyYW1lUmF0ZXMsIGkpOwotCi0gICAgICAgICAgICAgICAgQVNTRVJUKEdf
VkFMVUVfVFlQRSh2YWwpID09IEdTVF9UWVBFX0ZSQUNUSU9OKTsKLSAgICAgICAgICAgICAgICBn
c3RfdXRpbF9mcmFjdGlvbl90b19kb3VibGUoZ3N0X3ZhbHVlX2dldF9mcmFjdGlvbl9udW1lcmF0
b3IodmFsKSwKLSAgICAgICAgICAgICAgICAgICAgZ3N0X3ZhbHVlX2dldF9mcmFjdGlvbl9kZW5v
bWluYXRvcih2YWwpLCAmdG1wRnJhbWVSYXRlKTsKLQotICAgICAgICAgICAgICAgIHRtcE1pbkZy
YW1lcmF0ZSA9IHN0ZDo6bWluKHRtcE1pbkZyYW1lcmF0ZSwgdG1wRnJhbWVSYXRlKTsKLSAgICAg
ICAgICAgICAgICB0bXBNYXhGcmFtZXJhdGUgPSBzdGQ6Om1heCh0bXBNYXhGcmFtZXJhdGUsIHRt
cEZyYW1lUmF0ZSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChpID4gMCkgewot
ICAgICAgICAgICAgICAgIG1pbldpZHRoID0gc3RkOjptaW4odG1wTWluV2lkdGgsIG1pbldpZHRo
KTsKLSAgICAgICAgICAgICAgICBtaW5IZWlnaHQgPSBzdGQ6Om1pbih0bXBNaW5IZWlnaHQsIG1p
bkhlaWdodCk7Ci0gICAgICAgICAgICAgICAgbWluRnJhbWVyYXRlID0gc3RkOjptaW4odG1wTWlu
RnJhbWVyYXRlLCBtaW5GcmFtZXJhdGUpOwotCi0gICAgICAgICAgICAgICAgbWF4V2lkdGggPSBz
dGQ6Om1heCh0bXBNYXhXaWR0aCwgbWF4V2lkdGgpOwotICAgICAgICAgICAgICAgIG1heEhlaWdo
dCA9IHN0ZDo6bWF4KHRtcE1heEhlaWdodCwgbWF4SGVpZ2h0KTsKLSAgICAgICAgICAgICAgICBt
YXhGcmFtZXJhdGUgPSBzdGQ6Om1heCh0bXBNYXhGcmFtZXJhdGUsIG1heEZyYW1lcmF0ZSk7Ci0g
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG1pbldpZHRoID0gdG1wTWluV2lk
dGg7Ci0gICAgICAgICAgICAgICAgbWluSGVpZ2h0ID0gdG1wTWluSGVpZ2h0OwotICAgICAgICAg
ICAgICAgIG1pbkZyYW1lcmF0ZSA9IHRtcE1pbkZyYW1lcmF0ZTsKLQotICAgICAgICAgICAgICAg
IG1heFdpZHRoID0gdG1wTWF4V2lkdGg7Ci0gICAgICAgICAgICAgICAgbWF4SGVpZ2h0ID0gdG1w
TWF4SGVpZ2h0OwotICAgICAgICAgICAgICAgIG1heEZyYW1lcmF0ZSA9IHRtcE1heEZyYW1lcmF0
ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgIGNhcGFiaWxpdGllcy5zZXREZXZpY2VJ
ZChpZCgpKTsKKyAgICB1cGRhdGVDYXBhYmlsaXRpZXMoY2FwYWJpbGl0aWVzKTsKIAotICAgICAg
ICBjYXBhYmlsaXRpZXMuc2V0RGV2aWNlSWQoaWQoKSk7Ci0gICAgICAgIGNhcGFiaWxpdGllcy5z
ZXRXaWR0aChDYXBhYmlsaXR5VmFsdWVPclJhbmdlKG1pbldpZHRoLCBtYXhXaWR0aCkpOwotICAg
ICAgICBjYXBhYmlsaXRpZXMuc2V0SGVpZ2h0KENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UobWluSGVp
Z2h0LCBtYXhIZWlnaHQpKTsKLSAgICAgICAgY2FwYWJpbGl0aWVzLnNldEZyYW1lUmF0ZShDYXBh
YmlsaXR5VmFsdWVPclJhbmdlKG1pbkZyYW1lcmF0ZSwgbWF4RnJhbWVyYXRlKSk7Ci0gICAgICAg
IG1fY2FwYWJpbGl0aWVzID0gV1RGTW92ZShjYXBhYmlsaXRpZXMpOwotICAgIH0KKyAgICBtX2Nh
cGFiaWxpdGllcyA9IFdURk1vdmUoY2FwYWJpbGl0aWVzKTsKIAogICAgIHJldHVybiBtX2NhcGFi
aWxpdGllcy52YWx1ZSgpOwogfQpAQCAtMjYwLDYgKzIwMCw3MCBAQCBjb25zdCBSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dGluZ3Mo
KQogICAgIHJldHVybiBtX2N1cnJlbnRTZXR0aW5ncy52YWx1ZSgpOwogfQogCit2b2lkIEdTdHJl
YW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6Z2VuZXJhdGVQcmVzZXRzKCkKK3sKKyAgICBWZWN0b3I8
UmVmPFZpZGVvUHJlc2V0Pj4gcHJlc2V0czsKKyAgICBHUmVmUHRyPEdzdENhcHM+IGNhcHMgPSBh
ZG9wdEdSZWYobV9jYXB0dXJlci0+Y2FwcygpKTsKKyAgICBmb3IgKGd1aW50IGkgPSAwOyBpIDwg
Z3N0X2NhcHNfZ2V0X3NpemUoY2Fwcy5nZXQoKSk7IGkrKykgeworICAgICAgICBHc3RTdHJ1Y3R1
cmUqIHN0ciA9IGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUoY2Fwcy5nZXQoKSwgaSk7CisKKyAgICAg
ICAgLy8gT25seSBhY2NlcHQgcmF3IHZpZGVvIGZvciBub3cuCisgICAgICAgIGlmICghZ3N0X3N0
cnVjdHVyZV9oYXNfbmFtZShzdHIsICJ2aWRlby94LXJhdyIpKQorICAgICAgICAgICAgY29udGlu
dWU7CisKKyAgICAgICAgaW50MzJfdCB3aWR0aCwgaGVpZ2h0OworICAgICAgICBpZiAoIWdzdF9z
dHJ1Y3R1cmVfZ2V0KHN0ciwgIndpZHRoIiwgR19UWVBFX0lOVCwgJndpZHRoLCAiaGVpZ2h0Iiwg
R19UWVBFX0lOVCwgJmhlaWdodCwgbnVsbHB0cikpIHsKKyAgICAgICAgICAgIEdTVF9JTkZPKCJD
b3VsZCBub3QgZmluZCBkaXNjcmV0IGhlaWdodCBhbmQgd2lkdGggdmFsdWVzIGluICUiIEdTVF9Q
VFJfRk9STUFULCBzdHIpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAg
ICAgICBJbnRTaXplIHNpemUgPSB7IHdpZHRoLCBoZWlnaHQgfTsKKyAgICAgICAgZG91YmxlIGZy
YW1lcmF0ZTsKKyAgICAgICAgVmVjdG9yPEZyYW1lUmF0ZVJhbmdlPiBmcmFtZVJhdGVzOworICAg
ICAgICBpbnQzMl90IG1pbkZyYW1lUmF0ZU51bWVyYXRvciwgbWluRnJhbWVSYXRlRGVub21pbmF0
b3IsIG1heEZyYW1lUmF0ZU51bWVyYXRvciwgbWF4RnJhbWVSYXRlRGVub21pbmF0b3IsIGZyYW1l
cmF0ZU51bWVyYXRvciwgZnJhbWVyYXRlRGVub21pbmF0b3I7CisgICAgICAgIGlmIChnc3Rfc3Ry
dWN0dXJlX2dldChzdHIsICJmcmFtZXJhdGUiLCBHU1RfVFlQRV9GUkFDVElPTl9SQU5HRSwgJm1p
bkZyYW1lUmF0ZU51bWVyYXRvciwgJm1pbkZyYW1lUmF0ZURlbm9taW5hdG9yLCAmbWF4RnJhbWVS
YXRlTnVtZXJhdG9yLCAmbWF4RnJhbWVSYXRlRGVub21pbmF0b3IsIG51bGxwdHIpKSB7CisgICAg
ICAgICAgICBGcmFtZVJhdGVSYW5nZSByYW5nZTsKKworICAgICAgICAgICAgZ3N0X3V0aWxfZnJh
Y3Rpb25fdG9fZG91YmxlKG1pbkZyYW1lUmF0ZU51bWVyYXRvciwgbWluRnJhbWVSYXRlRGVub21p
bmF0b3IsICZyYW5nZS5taW5pbXVtKTsKKyAgICAgICAgICAgIGdzdF91dGlsX2ZyYWN0aW9uX3Rv
X2RvdWJsZShtYXhGcmFtZVJhdGVOdW1lcmF0b3IsIG1heEZyYW1lUmF0ZURlbm9taW5hdG9yLCAm
cmFuZ2UubWF4aW11bSk7CisKKyAgICAgICAgICAgIGZyYW1lUmF0ZXMuYXBwZW5kKHJhbmdlKTsK
KyAgICAgICAgfSBlbHNlIGlmIChnc3Rfc3RydWN0dXJlX2dldChzdHIsICJmcmFtZXJhdGUiLCBH
U1RfVFlQRV9GUkFDVElPTiwgJmZyYW1lcmF0ZU51bWVyYXRvciwgJmZyYW1lcmF0ZURlbm9taW5h
dG9yLCBudWxscHRyKSkgeworICAgICAgICAgICAgZ3N0X3V0aWxfZnJhY3Rpb25fdG9fZG91Ymxl
KGZyYW1lcmF0ZU51bWVyYXRvciwgZnJhbWVyYXRlRGVub21pbmF0b3IsICZmcmFtZXJhdGUpOwor
ICAgICAgICAgICAgZnJhbWVSYXRlcy5hcHBlbmQoeyBmcmFtZXJhdGUsIGZyYW1lcmF0ZX0pOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY29uc3QgR1ZhbHVlKiBmcmFtZVJhdGVWYWx1
ZXMoZ3N0X3N0cnVjdHVyZV9nZXRfdmFsdWUoc3RyLCAiZnJhbWVyYXRlIikpOworICAgICAgICAg
ICAgZ3VpbnQgZnJhbWVSYXRlc0xlbmd0aCA9IHN0YXRpY19jYXN0PGd1aW50Pihnc3RfdmFsdWVf
bGlzdF9nZXRfc2l6ZShmcmFtZVJhdGVWYWx1ZXMpKTsKKworICAgICAgICAgICAgZm9yIChndWlu
dCBqID0gMDsgaiA8IGZyYW1lUmF0ZXNMZW5ndGg7IGorKykgeworICAgICAgICAgICAgICAgIGNv
bnN0IEdWYWx1ZSogdmFsID0gZ3N0X3ZhbHVlX2xpc3RfZ2V0X3ZhbHVlKGZyYW1lUmF0ZVZhbHVl
cywgaik7CisKKyAgICAgICAgICAgICAgICBBU1NFUlQodmFsICYmIEdfVkFMVUVfVFlQRSh2YWwp
ID09IEdTVF9UWVBFX0ZSQUNUSU9OKTsKKyAgICAgICAgICAgICAgICBnc3RfdXRpbF9mcmFjdGlv
bl90b19kb3VibGUoZ3N0X3ZhbHVlX2dldF9mcmFjdGlvbl9udW1lcmF0b3IodmFsKSwKKyAgICAg
ICAgICAgICAgICAgICAgZ3N0X3ZhbHVlX2dldF9mcmFjdGlvbl9kZW5vbWluYXRvcih2YWwpLCAm
ZnJhbWVyYXRlKTsKKworICAgICAgICAgICAgICAgIGZyYW1lUmF0ZXMuYXBwZW5kKHsgZnJhbWVy
YXRlLCBmcmFtZXJhdGV9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHBy
ZXNldHMuYXBwZW5kKEdTdHJlYW1lclZpZGVvUHJlc2V0OjpjcmVhdGUoc2l6ZSwgV1RGTW92ZShm
cmFtZVJhdGVzKSkpOworICAgIH0KKworICAgIGlmIChwcmVzZXRzLmlzRW1wdHkoKSkgeworICAg
ICAgICBHU1RfSU5GTygiQ291bGQgbm90IGZpbmQgYW55IHByZXNldHMgZm9yIGNhcHM6ICUiIEdT
VF9QVFJfRk9STUFUICIganVzdCBsZXQgYW55dGhpbmcgZ28gb3V0LiIsCisgICAgICAgICAgICBj
YXBzLmdldCgpKTsKKworICAgICAgICBmb3IgKGF1dG8mIHNpemUgOiBzdGFuZGFyZFZpZGVvU2l6
ZXMoKSkgeworICAgICAgICAgICAgVmVjdG9yPEZyYW1lUmF0ZVJhbmdlPiBmcmFtZVJhdGVzOwor
CisgICAgICAgICAgICBmcmFtZVJhdGVzLmFwcGVuZCh7IDAsIEdfTUFYRE9VQkxFfSk7CisgICAg
ICAgICAgICBwcmVzZXRzLmFwcGVuZChHU3RyZWFtZXJWaWRlb1ByZXNldDo6Y3JlYXRlKHNpemUs
IFdURk1vdmUoZnJhbWVSYXRlcykpKTsKKyAgICAgICAgfQorICAgICAgICBzZXRTdXBwb3J0ZWRQ
cmVzZXRzKFdURk1vdmUocHJlc2V0cykpOworICAgIH0gZWxzZQorICAgICAgICBzZXRTdXBwb3J0
ZWRQcmVzZXRzKFdURk1vdmUocHJlc2V0cykpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoTElCV0VCUlRDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDc1
MTI5NmE2M2NhNzVlZGQ5N2M3ODJmYjVhZWQxYzA4ZDY4ZDI5ZTkuLjU5YWE0M2RkODEzOTJlY2M4
MDU0YzExMzQ5MjMyOTdlYTlmOGQ3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyVmlkZW9DYXB0dXJlU291cmNlLmgKQEAgLTIzLDExICsyMywxMSBAQAogCiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkgJiYgVVNFKExJQldFQlJUQykgJiYgVVNFKEdTVFJFQU1FUikKICNpbmNs
dWRlICJHU3RyZWFtZXJWaWRlb0NhcHR1cmVyLmgiCi0jaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNv
dXJjZS5oIgorI2luY2x1ZGUgIlJlYWx0aW1lVmlkZW9Tb3VyY2UuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgUmVh
bHRpbWVNZWRpYVNvdXJjZSB7CitjbGFzcyBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UgOiBw
dWJsaWMgUmVhbHRpbWVWaWRlb1NvdXJjZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIENhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFZpZGVvQ2FwdHVyZUZhY3Rv
cnkmIGZhY3RvcnkoKTsKQEAgLTQzLDYgKzQzLDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
fkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSgpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdE
YXRhKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIG92ZXJyaWRlOwor
ICAgIGJvb2wgY2FuUmVzaXplVmlkZW9GcmFtZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9CisgICAgdm9pZCBnZW5lcmF0ZVByZXNldHMoKSBmaW5hbDsKKwogCiAgICAgbXV0YWJsZSBz
dGQ6Om9wdGlvbmFsPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0
aWVzOwogICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3M+IG1fY3VycmVudFNldHRpbmdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCBh
ZTAwZDBkZWJkYmNhMWY4YTc1YWQ5YzJiNzkyZDZlNDJmMDZkZjM5Li4xMTBjNTliOTllMjRlOTVj
YzdlNmNiNzI0M2VmNmQ0Mzk4ZWU5ZDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApA
QCAtNTUsNiArNTUsNyBAQCBzdGF0aWMgaW5saW5lIFZlY3RvcjxNb2NrTWVkaWFEZXZpY2U+IGRl
ZmF1bHREZXZpY2VzKCkKICAgICAgICAgICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3M6OlZpZGVvRmFjaW5nTW9kZTo6VXNlciwgewogICAgICAgICAgICAgICAgICAgICB7IHsgMTI4
MCwgNzIwIH0sIHsgeyAzMCwgMzB9LCB7IDI3LjUsIDI3LjV9LCB7IDI1LCAyNX0sIHsgMjIuNSwg
MjIuNX0sIHsgMjAsIDIwfSwgeyAxNy41LCAxNy41fSwgeyAxNSwgMTV9LCB7IDEyLjUsIDEyLjV9
LCB7IDEwLCAxMH0sIHsgNy41LCA3LjV9LCB7IDUsIDV9IH0gfSwKICAgICAgICAgICAgICAgICAg
ICAgeyB7IDY0MCwgNDgwIH0sICB7IHsgMzAsIDMwfSwgeyAyNy41LCAyNy41fSwgeyAyNSwgMjV9
LCB7IDIyLjUsIDIyLjV9LCB7IDIwLCAyMH0sIHsgMTcuNSwgMTcuNX0sIHsgMTUsIDE1fSwgeyAx
Mi41LCAxMi41fSwgeyAxMCwgMTB9LCB7IDcuNSwgNy41fSwgeyA1LCA1fSB9IH0sCisgICAgICAg
ICAgICAgICAgICAgIHsgeyAxMTIsIDExMiB9LCAgeyB7IDMwLCAzMH0sIHsgMjcuNSwgMjcuNX0s
IHsgMjUsIDI1fSwgeyAyMi41LCAyMi41fSwgeyAyMCwgMjB9LCB7IDE3LjUsIDE3LjV9LCB7IDE1
LCAxNX0sIHsgMTIuNSwgMTIuNX0sIHsgMTAsIDEwfSwgeyA3LjUsIDcuNX0sIHsgNSwgNX0gfSB9
LAogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgQ29sb3I6OmJsYWNrLAogICAg
ICAgICAgICAgfSB9LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM0OTUxN2ZiYzJmMzljYWE0ZGRkZjk2YjA5NjA3Y2U1MTVl
YzAwNjUuLmUzYmVjYzM2MmZjMGIyZTk2Zjc3OTZlNmI3NDE2NzE3NDZjOWQ5NTMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAxOC0wOS0yNyAgVGhpYmF1bHQgU2F1bmllciAgPHRzYXVuaWVyQGln
YWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gU3VwcG9ydCBhcmJpdHJhcnkgdmlkZW8g
cmVzb2x1dGlvbiBpbiBnZXRVc2VyTWVkaWEgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODk3MzQKKworICAgICAgICBJbXBsZW1lbnQgYXJiaXRy
YXJ5IHZpZGVvIHJlc29sdXRpb24gZm9yIHRoZSBnZXRVc2VyTWVkaWEgQVBJIGluIEdTdHJlYW1l
ci4KKworICAgICAgICBGaXggdGhlIE1vY2tSZWFsdGltZU1lZGlhU291cmNlIGRldmljZSBsaXN0
IHRvIG1ha2UgZGV2aWNlcyBwcm9wZXJ0aWVzIG1hdGNoCisgICAgICAgIHRlc3QgZXhwZWN0YXRp
b25zLgorCisgICAgICAgIFJlYWN0aXZhdGUgdGVzdHMgdGhhdCB3ZXJlIGZhaWxsaW5nIGJlY2F1
c2Ugb2YgdGhhdC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3Jt
L3dwZS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE4LTA5LTIxICBUaGliYXVsdCBTYXVuaWVyICA8
dHNhdW5pZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEJsYWNrbGlzdCBtb3Jl
IHRlc3RzIHRoYXQgYXJlIHJlcXVpcmluZyB3ZWJydGMgPC0+IHdlYmF1ZGlvIGJyaWRnaW5nCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDU0MzQ3MWI5M2Q0
Y2E2ZWYzOGU5MTQzN2U3ZmRmZjQ5ZTdmYTUzZTIuLjc4N2M3NzQ0MzBjNTQyYTQxMDcyNTcxM2Vk
YzQyMGE5ZmUyNzQwNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zCkBAIC02MTEsMTAgKzYxMSw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjLyBbIFNraXAgXQogaHR0cC90ZXN0cy93ZWJydGMgWyBTa2lwIF0KICMgVGhlIE1lZGlh
U3RyZWFtIGltcGxlbWVudGF0aW9uIGlzIGFsc28gc3RpbGwgbm90IGNvbXBsZXRlZAogd2Via2l0
Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vbW9jay1tZWRpYS1zb3VyY2Utd2ViYXVkaW8u
aHRtbCBbIFRpbWVvdXQgXQotd2Via2l0Lm9yZy9iLzE4OTczNCBmYXN0L21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2stZ2V0Q2FwYWJpbGl0aWVzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5v
cmcvYi8xODk3MzQgZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25zdHJhaW50cy1hZHZhbmNlZC5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTg5NzM0IGZhc3QvbWVkaWFzdHJlYW0vYXBw
bHktY29uc3RyYWludHMtdmlkZW8uaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE4OTcz
NCBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZWZhdWx0Lmh0bWwgWyBGYWlsdXJlIF0K
IHdlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS13ZWJhdWRp
by5odG1sIFsgRmFpbHVyZSBdCiAjIENyYXNoIGlzIGJ1ZyAjMTg2Njc4CiB3ZWJraXQub3JnL2Iv
NzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXRyYWNrLXN0
b3AuaHRtbCBbIFRpbWVvdXQgQ3Jhc2ggXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCA1NzMwZTkxZGE3ODI3NmE5ZjcwNjJiYjIyM2M3MWIzZTJmNGIyYjVi
Li5iZDA0ZWFhYTZhZjQ5MzliNjk1MjBjZDJhZTAxNWZhOTNlNjZiMmYwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwpAQCAtODIsMTAgKzgyLDYgQEAgd2Via2l0
Lm9yZy9iLzE4NjkzMyB3ZWJydGMvZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLWF1dG9wbGF5Lmh0bWwK
IHdlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL21vY2stbWVkaWEtc291cmNlLXdl
YmF1ZGlvLmh0bWwgWyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3Ry
ZWFtL2dldFVzZXJNZWRpYS13ZWJhdWRpby5odG1sIFsgRmFpbHVyZSBDcmFzaCBdCiB3ZWJraXQu
b3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXRy
YWNrLXN0b3AuaHRtbCBbIFRpbWVvdXQgXQotd2Via2l0Lm9yZy9iLzE4OTczNCBmYXN0L21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0Q2FwYWJpbGl0aWVzLmh0bWwgWyBGYWlsdXJlIF0K
LXdlYmtpdC5vcmcvYi8xODk3MzQgZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25zdHJhaW50cy1h
ZHZhbmNlZC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTg5NzM0IGZhc3QvbWVkaWFz
dHJlYW0vYXBwbHktY29uc3RyYWludHMtdmlkZW8uaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9y
Zy9iLzE4OTczNCBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZWZhdWx0Lmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLWR0bWYuaHRtbCBbIFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNlY2FuZGlkYXRlLWV2ZW50Lmh0bWwgWyBQYXNz
IEZhaWx1cmUgQ3Jhc2ggXQogd2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24tbWVkaWEtc2V0dXAtdHdvLWRpYWxvZ3MuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBDcmFzaCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352073</attachid>
            <date>2018-10-11 13:46:43 -0700</date>
            <delta_ts>2018-10-11 13:50:36 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-189734-20181011174641.patch</filename>
            <type>text/plain</type>
            <size>21435</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzBmNDM0NzgzOGNiZjZj
OTViM2VkYmM5MTRhZDI5MDM0YzU3MWNkYy4uYTQyNDdkZjAxODkxMGIwMjlhMmY3NzgxYTJmOWNi
ZGZkMzA5MzhhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE4LTA5LTI3ICBUaGli
YXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBTdXBwb3J0IGFyYml0cmFyeSB2aWRlbyByZXNvbHV0aW9uIGluIGdldFVzZXJNZWRpYSBBUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTczNAor
CisgICAgICAgIFJldmlld2VkIGJ5IFhhYmllciBSb2RyaWd1ZXotQ2FsdmFyLgorCisgICAgICAg
IEltcGxlbWVudCBhcmJpdHJhcnkgdmlkZW8gcmVzb2x1dGlvbiBmb3IgdGhlIGdldFVzZXJNZWRp
YSBBUEkgaW4gR1N0cmVhbWVyLgorCisgICAgICAgIEZpeCB0aGUgTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2UgZGV2aWNlIGxpc3QgdG8gbWFrZSBkZXZpY2VzIHByb3BlcnRpZXMgbWF0Y2gKKyAgICAg
ICAgdGVzdCBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgUmVhY3RpdmF0ZSB0ZXN0cyB0aGF0IHdl
cmUgZmFpbGxpbmcgYmVjYXVzZSBvZiB0aGF0LgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGlt
ZVZpZGVvU291cmNlOjpzdGFuZGFyZFZpZGVvU2l6ZXMpOgorICAgICAgICAoV2ViQ29yZTo6c3Rh
bmRhcmRWaWRlb1NpemVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
VmlkZW9QcmVzZXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJl
YW1lclZpZGVvUHJlc2V0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlk
ZW9QcmVzZXQ6OkdTdHJlYW1lclZpZGVvUHJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJl
YW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6Z2VuZXJh
dGVQcmVzZXRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZWZhdWx0
RGV2aWNlcyk6CisKIDIwMTgtMTAtMTEgIEVucmlxdWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2Fu
aGFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXVtNU0VdIEZpeCBoZWlnaHQgY2Fs
Y3VsYXRpb24gZm9yIHN0cmVhbXMgd2l0aCBzb3VyY2UgYXNwZWN0IHJhdGlvCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXggZDk0
YzcwZDUxYmM1ZmY2YWJiZDU5ODg4OWNjYmYxYWMwMjk4ODg2ZS4uMjI1MDAyNzVkYzI3Y2M1MWRh
MzU3NDM5MTlhOWNmN2YwNmQ0N2YxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtMTI3MSw2ICsxMjcxLDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjppbml0aWFsaXphdGlvbkRhdGFFbmNvdW50
ZXJlZChHc3RFdmVudCogZXYKICAgICBHc3RCdWZmZXIqIGRhdGEgPSBudWxscHRyOwogICAgIGdz
dF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKGV2ZW50LCAmZXZlbnRLZXlTeXN0ZW1VVUlELCAmZGF0
YSwgbnVsbHB0cik7CiAKKyNpZiBHU1RfQ0hFQ0tfVkVSU0lPTigxLCAxNSwgMCkKICAgICAvLyBD
aGVjayBpZiB0aGUgc3lzdGVtIGtleSBvZiB0aGUgcHJvdGVjdGlvbiBldmVudCBpcyB0aGUgc2Ft
ZSBvZiB0aGUgQ0RNIGluc3RhbmNlLgogICAgIC8vIEZvciBleGFtcGxlOiB3ZSBjYW4gcmVjZWl2
ZSBhIG5ldyBXaWRldmluZSBwcm90ZWN0aW9uIGV2ZW50IGJ1dCB0aGUgQ0RNIGluc3RhbmNlIGlu
aXRpYWxpemVkIHdpdGgKICAgICAvLyBQbGF5cmVhZHksIHNvIHdlIGlnbm9yZSB0aGlzIGV2ZW50
LgpAQCAtMTI5OSw2ICsxMzAwLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlOjppbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZChHc3RFdmVudCogZXYKICAgICAgICAg
d2Vha1RoaXMtPm1fcGxheWVyLT5pbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZCgoZXZlbnRL
ZXlTeXN0ZW1VVUlEID09IEdTVF9QUk9URUNUSU9OX1VOU1BFQ0lGSUVEX1NZU1RFTV9JRCkgPyAi
d2VibSJfcyA6ICJjZW5jIl9zLAogICAgICAgICAgICAgQXJyYXlCdWZmZXI6OmNyZWF0ZShyZWlu
dGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihpbml0RGF0YS5jaGFyYWN0ZXJzOCgpKSwgaW5p
dERhdGEuc2l6ZUluQnl0ZXMoKSkpOwogICAgIH0pOworI2VuZGlmCiB9CiAKIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6Y2RtSW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5j
ZSYgaW5zdGFuY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFtZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9XZWJL
aXRDb21tb25FbmNyeXB0aW9uRGVjcnlwdG9yR1N0cmVhbWVyLmNwcAppbmRleCA3ZTcxMWM2N2Uw
YzcwNjk3ZTQzMGNiNGI0ZmRjNmQzN2UzNDUzZTZkLi42N2QxNWQyY2Y4NTUxZjdiYzg3NjUzOThk
Mjc4NjRiOTliZDliNTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvZW1lL1dlYktpdENvbW1vbkVuY3J5cHRpb25EZWNyeXB0b3JHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9l
bWUvV2ViS2l0Q29tbW9uRW5jcnlwdGlvbkRlY3J5cHRvckdTdHJlYW1lci5jcHAKQEAgLTE2MCw3
ICsxNjAsMTEgQEAgc3RhdGljIEdzdENhcHMqIHdlYmtpdE1lZGlhQ29tbW9uRW5jcnlwdGlvbkRl
Y3J5cHRUcmFuc2Zvcm1DYXBzKEdzdEJhc2VUcmFuc2Zvcm0KICAgICAgICAgICAgICAgICAib3Jp
Z2luYWwtbWVkaWEtdHlwZSIsIEdfVFlQRV9TVFJJTkcsIGdzdF9zdHJ1Y3R1cmVfZ2V0X25hbWUo
aW5jb21pbmdTdHJ1Y3R1cmUpLCBudWxscHRyKTsKIAogICAgICAgICAgICAgZ3N0X3N0cnVjdHVy
ZV9zZXRfbmFtZShvdXRnb2luZ1N0cnVjdHVyZS5nZXQoKSwKKyNpZiBHU1RfQ0hFQ0tfVkVSU0lP
TigxLCAxNSwgMCkKICAgICAgICAgICAgICAgICAhZ19zdHJjbXAwKGtsYXNzLT5wcm90ZWN0aW9u
U3lzdGVtSWQsIEdTVF9QUk9URUNUSU9OX1VOU1BFQ0lGSUVEX1NZU1RFTV9JRCkgPyAiYXBwbGlj
YXRpb24veC13ZWJtLWVuYyIgOiAiYXBwbGljYXRpb24veC1jZW5jIik7CisjZWxzZQorICAgICAg
ICAgICAgICAgICJhcHBsaWNhdGlvbi94LWNlbmMiKTsKKyNlbmRpZgogICAgICAgICB9CiAKICAg
ICAgICAgYm9vbCBkdXBsaWNhdGUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXgg
NTY2NGIwOTIxMDA3MmUxMWJiYjBhOGNkYzVjYmIyNDIyMTI1ZGE2My4uMGFmYjE5NGU2MmQ1NjA0
MjU0ZTEzNjhkOTA1OTFlNGQzNTgyM2VkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTkx
LDcgKzkxLDcgQEAgdm9pZCBSZWFsdGltZVZpZGVvU291cmNlOjpzZXRTdXBwb3J0ZWRQcmVzZXRz
KGNvbnN0IFZlY3RvcjxSZWY8VmlkZW9QcmVzZXQ+PiYgcHIKICAgICB9CiB9CiAKLXN0YXRpYyBj
b25zdCBWZWN0b3I8SW50U2l6ZT4mIHN0YW5kYXJkVmlkZW9TaXplcygpCitjb25zdCBWZWN0b3I8
SW50U2l6ZT4mIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0YW5kYXJkVmlkZW9TaXplcygpCiB7CiAg
ICAgc3RhdGljIGNvbnN0IGF1dG8gc2l6ZXMgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoW10gewogICAg
ICAgICBzdGF0aWMgSW50U2l6ZSB2aWRlb1NpemVzW10gPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKaW5k
ZXggYTQ5Y2Y2Y2NmNjZiMDM5YjkxNTkyNjZjYTg5NDVjODUwNGEyZDczMi4uNDdjNGY1ZWUzYzFm
NjU2YWQ1MjBiNGJlYjgzYjQ3MmY3NGQwOWRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtNjcs
NiArNjcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgZG91YmxlIG9ic2VydmVkRnJhbWVSYXRlKCkgY29u
c3QgeyByZXR1cm4gbV9vYnNlcnZlZEZyYW1lUmF0ZTsgfQogCiAgICAgdm9pZCBkaXNwYXRjaE1l
ZGlhU2FtcGxlVG9PYnNlcnZlcnMoTWVkaWFTYW1wbGUmKTsKKyAgICBjb25zdCBWZWN0b3I8SW50
U2l6ZT4mIHN0YW5kYXJkVmlkZW9TaXplcygpOwogCiBwcml2YXRlOgogICAgIHN0cnVjdCBDYXB0
dXJlU2l6ZUFuZEZyYW1lUmF0ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9WaWRlb1ByZXNldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vVmlkZW9QcmVzZXQuaAppbmRleCA5ZjA0MDk4ZmNkYTA2YjQwZjUwMTgyYTAwOTU1
NzY5NmM3MWU1OTRiLi40MDcwMmM4ZTRkM2Q0ZGNiZTYxNjhjYjU0ZmUxOGEwMDRmY2M2NzNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9WaWRlb1ByZXNl
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1ZpZGVvUHJlc2V0
LmgKQEAgLTEwNyw3ICsxMDcsOCBAQCBwdWJsaWM6CiAKICAgICBlbnVtIFZpZGVvUHJlc2V0VHlw
ZSB7CiAgICAgICAgIEJhc2UsCi0gICAgICAgIEFWQ2FwdHVyZQorICAgICAgICBBVkNhcHR1cmUs
CisgICAgICAgIEdTdHJlYW1lcgogICAgIH07CiAKICAgICBJbnRTaXplIHNpemU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVh
bWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGU3
OWEzNTdjYjRlZDQ3ODQ4NTU1YTUyZDg5NDE2MmJjMTc0Y2ZmZDcuLmY1NWZlZWQxNDM2OGZkYzFh
YjVlOWQxZmNiMTNjYTllOTA3NTRmMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC01Miw2ICs1MiwxOSBAQCBzdGF0aWMgdm9p
ZCBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKQogICAgIH0pOwogfQogCitjbGFzcyBHU3RyZWFt
ZXJWaWRlb1ByZXNldCA6IHB1YmxpYyBWaWRlb1ByZXNldCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxHU3RyZWFtZXJWaWRlb1ByZXNldD4gY3JlYXRlKEludFNpemUgc2l6ZSwgVmVjdG9yPEZy
YW1lUmF0ZVJhbmdlPiYmIGZyYW1lcmF0ZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBHU3RyZWFtZXJWaWRlb1ByZXNldChzaXplLCBXVEZNb3ZlKGZyYW1lcmF0ZXMpKSk7
CisgICAgfQorCisgICAgR1N0cmVhbWVyVmlkZW9QcmVzZXQoSW50U2l6ZSBzaXplLCBWZWN0b3I8
RnJhbWVSYXRlUmFuZ2U+JiYgZnJhbWVSYXRlUmFuZ2VzKQorICAgICAgICA6IFZpZGVvUHJlc2V0
KHNpemUsIFdURk1vdmUoZnJhbWVSYXRlUmFuZ2VzKSwgR1N0cmVhbWVyKQorICAgIHsKKyAgICB9
Cit9OworCiBjbGFzcyBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2VGYWN0b3J5IGZpbmFsIDog
cHVibGljIFZpZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgogICAgIENhcHR1cmVTb3VyY2VP
ckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZp
Y2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykgZmluYWwKQEAgLTExMCwxNCArMTIzLDE0IEBAIERpc3BsYXlDYXB0dXJlRmFjdG9yeSYgR1N0
cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpkaXNwbGF5RmFjdG9yeSgpCiB9CiAKIEdTdHJlYW1l
clZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYm
IGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgZ2NoYXIg
KnNvdXJjZV9mYWN0b3J5KQotICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpWaWRlbywgV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdU
Rk1vdmUoaGFzaFNhbHQpKQorICAgIDogUmVhbHRpbWVWaWRlb1NvdXJjZShXVEZNb3ZlKGRldmlj
ZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX2NhcHR1cmVy
KHN0ZDo6bWFrZV91bmlxdWU8R1N0cmVhbWVyVmlkZW9DYXB0dXJlcj4oc291cmNlX2ZhY3Rvcnkp
KQogewogICAgIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1ZygpOwogfQogCiBHU3RyZWFtZXJWaWRl
b0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZShHU3RyZWFtZXJDYXB0
dXJlRGV2aWNlIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQpCi0gICAgOiBSZWFsdGltZU1lZGlh
U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBTdHJpbmcgeyBkZXZpY2Uu
cGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RGTW92ZShoYXNo
U2FsdCkpCisgICAgOiBSZWFsdGltZVZpZGVvU291cmNlKFN0cmluZyB7IGRldmljZS5wZXJzaXN0
ZW50SWQoKSB9LCBTdHJpbmcgeyBkZXZpY2UubGFiZWwoKSB9LCBXVEZNb3ZlKGhhc2hTYWx0KSkK
ICAgICAsIG1fY2FwdHVyZXIoc3RkOjptYWtlX3VuaXF1ZTxHU3RyZWFtZXJWaWRlb0NhcHR1cmVy
PihkZXZpY2UpKQogewogICAgIGluaXRpYWxpemVHU3RyZWFtZXJEZWJ1ZygpOwpAQCAtMTY4LDg2
ICsxODEsMTIgQEAgdm9pZCBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OnN0b3BQcm9kdWNp
bmdEYXRhKCkKIAogY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgR1N0cmVh
bWVyVmlkZW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMoKQogewotICAgIGlmIChtX2NhcGFi
aWxpdGllcykKLSAgICAgICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzLnZhbHVlKCk7Ci0KICAgICBS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcyhzZXR0aW5ncygpLnN1
cHBvcnRlZENvbnN0cmFpbnRzKCkpOwotICAgIEdSZWZQdHI8R3N0Q2Fwcz4gY2FwcyA9IGFkb3B0
R1JlZihtX2NhcHR1cmVyLT5jYXBzKCkpOwotICAgIGludDMyX3QgbWluV2lkdGggPSBHX01BWElO
VDMyLCBtYXhXaWR0aCA9IDAsIG1pbkhlaWdodCA9IEdfTUFYSU5UMzIsIG1heEhlaWdodCA9IDA7
Ci0gICAgZG91YmxlIG1pbkZyYW1lcmF0ZSA9IEdfTUFYRE9VQkxFLCBtYXhGcmFtZXJhdGUgPSBH
X01JTkRPVUJMRTsKLQotICAgIGZvciAoZ3VpbnQgaSA9IDA7IGkgPCBnc3RfY2Fwc19nZXRfc2l6
ZShjYXBzLmdldCgpKTsgaSsrKSB7Ci0gICAgICAgIEdzdFN0cnVjdHVyZSogc3RyID0gZ3N0X2Nh
cHNfZ2V0X3N0cnVjdHVyZShjYXBzLmdldCgpLCBpKTsKLQotICAgICAgICAvLyBPbmx5IGFjY2Vw
dCByYXcgdmlkZW8gZm9yIG5vdy4KLSAgICAgICAgaWYgKCFnc3Rfc3RydWN0dXJlX2hhc19uYW1l
KHN0ciwgInZpZGVvL3gtcmF3IikpCi0gICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBp
bnQzMl90IHRtcE1pbldpZHRoLCB0bXBNaW5IZWlnaHQsIHRtcE1pbkZQU051bWVyYXRvciwgdG1w
TWluRlBTRGVub21pbmF0b3I7Ci0gICAgICAgIGludDMyX3QgdG1wTWF4V2lkdGgsIHRtcE1heEhl
aWdodCwgdG1wTWF4RlBTTnVtZXJhdG9yLCB0bXBNYXhGUFNEZW5vbWluYXRvcjsKLSAgICAgICAg
ZG91YmxlIHRtcE1pbkZyYW1lcmF0ZSA9IEdfTUFYRE9VQkxFLCB0bXBNYXhGcmFtZXJhdGUgPSBH
X01JTkRPVUJMRTsKKyAgICBjYXBhYmlsaXRpZXMuc2V0RGV2aWNlSWQoaGFzaGVkSWQoKSk7Cisg
ICAgdXBkYXRlQ2FwYWJpbGl0aWVzKGNhcGFiaWxpdGllcyk7CiAKLSAgICAgICAgaWYgKCFnc3Rf
c3RydWN0dXJlX2dldChzdHIsICJ3aWR0aCIsIEdTVF9UWVBFX0lOVF9SQU5HRSwgJnRtcE1pbldp
ZHRoLCAmdG1wTWF4V2lkdGgsICJoZWlnaHQiLCBHU1RfVFlQRV9JTlRfUkFOR0UsICZ0bXBNaW5I
ZWlnaHQsICZ0bXBNYXhIZWlnaHQsIG51bGxwdHIpKSB7Ci0gICAgICAgICAgICBpZiAoIWdzdF9z
dHJ1Y3R1cmVfZ2V0KHN0ciwgIndpZHRoIiwgR19UWVBFX0lOVCwgJnRtcE1pbldpZHRoLCAiaGVp
Z2h0IiwgR19UWVBFX0lOVCwgJnRtcE1pbkhlaWdodCwgbnVsbHB0cikpCi0gICAgICAgICAgICAg
ICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIHRtcE1heFdpZHRoID0gdG1wTWluV2lkdGg7Ci0g
ICAgICAgICAgICB0bXBNYXhIZWlnaHQgPSB0bXBNaW5IZWlnaHQ7Ci0gICAgICAgIH0KLQotICAg
ICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXQoc3RyLCAiZnJhbWVyYXRlIiwgR1NUX1RZUEVfRlJB
Q1RJT05fUkFOR0UsICZ0bXBNaW5GUFNOdW1lcmF0b3IsICZ0bXBNaW5GUFNEZW5vbWluYXRvciwg
JnRtcE1heEZQU051bWVyYXRvciwgJnRtcE1heEZQU0Rlbm9taW5hdG9yLCBudWxscHRyKSkgewot
ICAgICAgICAgICAgZ3N0X3V0aWxfZnJhY3Rpb25fdG9fZG91YmxlKHRtcE1pbkZQU051bWVyYXRv
ciwgdG1wTWluRlBTRGVub21pbmF0b3IsICZ0bXBNaW5GcmFtZXJhdGUpOwotICAgICAgICAgICAg
Z3N0X3V0aWxfZnJhY3Rpb25fdG9fZG91YmxlKHRtcE1heEZQU051bWVyYXRvciwgdG1wTWF4RlBT
RGVub21pbmF0b3IsICZ0bXBNYXhGcmFtZXJhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGdzdF9z
dHJ1Y3R1cmVfZ2V0KHN0ciwKLSAgICAgICAgICAgICJmcmFtZXJhdGUiLCBHU1RfVFlQRV9GUkFD
VElPTiwgJnRtcE1pbkZQU051bWVyYXRvciwgJnRtcE1pbkZQU0Rlbm9taW5hdG9yLCBudWxscHRy
KSkgewotICAgICAgICAgICAgdG1wTWF4RlBTTnVtZXJhdG9yID0gdG1wTWluRlBTTnVtZXJhdG9y
OwotICAgICAgICAgICAgdG1wTWF4RlBTRGVub21pbmF0b3IgPSB0bXBNaW5GUFNEZW5vbWluYXRv
cjsKLSAgICAgICAgICAgIGdzdF91dGlsX2ZyYWN0aW9uX3RvX2RvdWJsZSh0bXBNaW5GUFNOdW1l
cmF0b3IsIHRtcE1pbkZQU0Rlbm9taW5hdG9yLCAmdG1wTWluRnJhbWVyYXRlKTsKLSAgICAgICAg
ICAgIGdzdF91dGlsX2ZyYWN0aW9uX3RvX2RvdWJsZSh0bXBNYXhGUFNOdW1lcmF0b3IsIHRtcE1h
eEZQU0Rlbm9taW5hdG9yLCAmdG1wTWF4RnJhbWVyYXRlKTsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGNvbnN0IEdWYWx1ZSogZnJhbWVSYXRlcyhnc3Rfc3RydWN0dXJlX2dldF92YWx1
ZShzdHIsICJmcmFtZXJhdGUiKSk7Ci0gICAgICAgICAgICB0bXBNaW5GcmFtZXJhdGUgPSBHX01B
WERPVUJMRTsKLSAgICAgICAgICAgIHRtcE1heEZyYW1lcmF0ZSA9IDAuMDsKLQotICAgICAgICAg
ICAgZ3VpbnQgZnJhbWVSYXRlc0xlbmd0aCA9IHN0YXRpY19jYXN0PGd1aW50Pihnc3RfdmFsdWVf
bGlzdF9nZXRfc2l6ZShmcmFtZVJhdGVzKSkgLSAxOwotCi0gICAgICAgICAgICBmb3IgKGd1aW50
IGkgPSAwOyBpIDwgZnJhbWVSYXRlc0xlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgZG91
YmxlIHRtcEZyYW1lUmF0ZTsKLSAgICAgICAgICAgICAgICBjb25zdCBHVmFsdWUqIHZhbCA9IGdz
dF92YWx1ZV9saXN0X2dldF92YWx1ZShmcmFtZVJhdGVzLCBpKTsKLQotICAgICAgICAgICAgICAg
IEFTU0VSVChHX1ZBTFVFX1RZUEUodmFsKSA9PSBHU1RfVFlQRV9GUkFDVElPTik7Ci0gICAgICAg
ICAgICAgICAgZ3N0X3V0aWxfZnJhY3Rpb25fdG9fZG91YmxlKGdzdF92YWx1ZV9nZXRfZnJhY3Rp
b25fbnVtZXJhdG9yKHZhbCksCi0gICAgICAgICAgICAgICAgICAgIGdzdF92YWx1ZV9nZXRfZnJh
Y3Rpb25fZGVub21pbmF0b3IodmFsKSwgJnRtcEZyYW1lUmF0ZSk7Ci0KLSAgICAgICAgICAgICAg
ICB0bXBNaW5GcmFtZXJhdGUgPSBzdGQ6Om1pbih0bXBNaW5GcmFtZXJhdGUsIHRtcEZyYW1lUmF0
ZSk7Ci0gICAgICAgICAgICAgICAgdG1wTWF4RnJhbWVyYXRlID0gc3RkOjptYXgodG1wTWF4RnJh
bWVyYXRlLCB0bXBGcmFtZVJhdGUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAo
aSA+IDApIHsKLSAgICAgICAgICAgICAgICBtaW5XaWR0aCA9IHN0ZDo6bWluKHRtcE1pbldpZHRo
LCBtaW5XaWR0aCk7Ci0gICAgICAgICAgICAgICAgbWluSGVpZ2h0ID0gc3RkOjptaW4odG1wTWlu
SGVpZ2h0LCBtaW5IZWlnaHQpOwotICAgICAgICAgICAgICAgIG1pbkZyYW1lcmF0ZSA9IHN0ZDo6
bWluKHRtcE1pbkZyYW1lcmF0ZSwgbWluRnJhbWVyYXRlKTsKLQotICAgICAgICAgICAgICAgIG1h
eFdpZHRoID0gc3RkOjptYXgodG1wTWF4V2lkdGgsIG1heFdpZHRoKTsKLSAgICAgICAgICAgICAg
ICBtYXhIZWlnaHQgPSBzdGQ6Om1heCh0bXBNYXhIZWlnaHQsIG1heEhlaWdodCk7Ci0gICAgICAg
ICAgICAgICAgbWF4RnJhbWVyYXRlID0gc3RkOjptYXgodG1wTWF4RnJhbWVyYXRlLCBtYXhGcmFt
ZXJhdGUpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBtaW5XaWR0aCA9
IHRtcE1pbldpZHRoOwotICAgICAgICAgICAgICAgIG1pbkhlaWdodCA9IHRtcE1pbkhlaWdodDsK
LSAgICAgICAgICAgICAgICBtaW5GcmFtZXJhdGUgPSB0bXBNaW5GcmFtZXJhdGU7Ci0KLSAgICAg
ICAgICAgICAgICBtYXhXaWR0aCA9IHRtcE1heFdpZHRoOwotICAgICAgICAgICAgICAgIG1heEhl
aWdodCA9IHRtcE1heEhlaWdodDsKLSAgICAgICAgICAgICAgICBtYXhGcmFtZXJhdGUgPSB0bXBN
YXhGcmFtZXJhdGU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBjYXBhYmls
aXRpZXMuc2V0RGV2aWNlSWQoaGFzaGVkSWQoKSk7Ci0gICAgICAgIGNhcGFiaWxpdGllcy5zZXRX
aWR0aChDYXBhYmlsaXR5VmFsdWVPclJhbmdlKG1pbldpZHRoLCBtYXhXaWR0aCkpOwotICAgICAg
ICBjYXBhYmlsaXRpZXMuc2V0SGVpZ2h0KENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UobWluSGVpZ2h0
LCBtYXhIZWlnaHQpKTsKLSAgICAgICAgY2FwYWJpbGl0aWVzLnNldEZyYW1lUmF0ZShDYXBhYmls
aXR5VmFsdWVPclJhbmdlKG1pbkZyYW1lcmF0ZSwgbWF4RnJhbWVyYXRlKSk7Ci0gICAgICAgIG1f
Y2FwYWJpbGl0aWVzID0gV1RGTW92ZShjYXBhYmlsaXRpZXMpOwotICAgIH0KKyAgICBtX2NhcGFi
aWxpdGllcyA9IFdURk1vdmUoY2FwYWJpbGl0aWVzKTsKIAogICAgIHJldHVybiBtX2NhcGFiaWxp
dGllcy52YWx1ZSgpOwogfQpAQCAtMjc4LDYgKzIxNyw2OSBAQCBjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dGluZ3MoKQog
ICAgIHJldHVybiBtX2N1cnJlbnRTZXR0aW5ncy52YWx1ZSgpOwogfQogCit2b2lkIEdTdHJlYW1l
clZpZGVvQ2FwdHVyZVNvdXJjZTo6Z2VuZXJhdGVQcmVzZXRzKCkKK3sKKyAgICBWZWN0b3I8UmVm
PFZpZGVvUHJlc2V0Pj4gcHJlc2V0czsKKyAgICBHUmVmUHRyPEdzdENhcHM+IGNhcHMgPSBhZG9w
dEdSZWYobV9jYXB0dXJlci0+Y2FwcygpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
Z3N0X2NhcHNfZ2V0X3NpemUoY2Fwcy5nZXQoKSk7IGkrKykgeworICAgICAgICBHc3RTdHJ1Y3R1
cmUqIHN0ciA9IGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUoY2Fwcy5nZXQoKSwgaSk7CisKKyAgICAg
ICAgLy8gT25seSBhY2NlcHQgcmF3IHZpZGVvIGZvciBub3cuCisgICAgICAgIGlmICghZ3N0X3N0
cnVjdHVyZV9oYXNfbmFtZShzdHIsICJ2aWRlby94LXJhdyIpKQorICAgICAgICAgICAgY29udGlu
dWU7CisKKyAgICAgICAgaW50MzJfdCB3aWR0aCwgaGVpZ2h0OworICAgICAgICBpZiAoIWdzdF9z
dHJ1Y3R1cmVfZ2V0KHN0ciwgIndpZHRoIiwgR19UWVBFX0lOVCwgJndpZHRoLCAiaGVpZ2h0Iiwg
R19UWVBFX0lOVCwgJmhlaWdodCwgbnVsbHB0cikpIHsKKyAgICAgICAgICAgIEdTVF9JTkZPKCJD
b3VsZCBub3QgZmluZCBkaXNjcmV0IGhlaWdodCBhbmQgd2lkdGggdmFsdWVzIGluICUiIEdTVF9Q
VFJfRk9STUFULCBzdHIpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAg
ICAgICBJbnRTaXplIHNpemUgPSB7IHdpZHRoLCBoZWlnaHQgfTsKKyAgICAgICAgZG91YmxlIGZy
YW1lcmF0ZTsKKyAgICAgICAgVmVjdG9yPEZyYW1lUmF0ZVJhbmdlPiBmcmFtZVJhdGVzOworICAg
ICAgICBpbnQzMl90IG1pbkZyYW1lUmF0ZU51bWVyYXRvciwgbWluRnJhbWVSYXRlRGVub21pbmF0
b3IsIG1heEZyYW1lUmF0ZU51bWVyYXRvciwgbWF4RnJhbWVSYXRlRGVub21pbmF0b3IsIGZyYW1l
cmF0ZU51bWVyYXRvciwgZnJhbWVyYXRlRGVub21pbmF0b3I7CisgICAgICAgIGlmIChnc3Rfc3Ry
dWN0dXJlX2dldChzdHIsICJmcmFtZXJhdGUiLCBHU1RfVFlQRV9GUkFDVElPTl9SQU5HRSwgJm1p
bkZyYW1lUmF0ZU51bWVyYXRvciwgJm1pbkZyYW1lUmF0ZURlbm9taW5hdG9yLCAmbWF4RnJhbWVS
YXRlTnVtZXJhdG9yLCAmbWF4RnJhbWVSYXRlRGVub21pbmF0b3IsIG51bGxwdHIpKSB7CisgICAg
ICAgICAgICBGcmFtZVJhdGVSYW5nZSByYW5nZTsKKworICAgICAgICAgICAgZ3N0X3V0aWxfZnJh
Y3Rpb25fdG9fZG91YmxlKG1pbkZyYW1lUmF0ZU51bWVyYXRvciwgbWluRnJhbWVSYXRlRGVub21p
bmF0b3IsICZyYW5nZS5taW5pbXVtKTsKKyAgICAgICAgICAgIGdzdF91dGlsX2ZyYWN0aW9uX3Rv
X2RvdWJsZShtYXhGcmFtZVJhdGVOdW1lcmF0b3IsIG1heEZyYW1lUmF0ZURlbm9taW5hdG9yLCAm
cmFuZ2UubWF4aW11bSk7CisKKyAgICAgICAgICAgIGZyYW1lUmF0ZXMuYXBwZW5kKHJhbmdlKTsK
KyAgICAgICAgfSBlbHNlIGlmIChnc3Rfc3RydWN0dXJlX2dldChzdHIsICJmcmFtZXJhdGUiLCBH
U1RfVFlQRV9GUkFDVElPTiwgJmZyYW1lcmF0ZU51bWVyYXRvciwgJmZyYW1lcmF0ZURlbm9taW5h
dG9yLCBudWxscHRyKSkgeworICAgICAgICAgICAgZ3N0X3V0aWxfZnJhY3Rpb25fdG9fZG91Ymxl
KGZyYW1lcmF0ZU51bWVyYXRvciwgZnJhbWVyYXRlRGVub21pbmF0b3IsICZmcmFtZXJhdGUpOwor
ICAgICAgICAgICAgZnJhbWVSYXRlcy5hcHBlbmQoeyBmcmFtZXJhdGUsIGZyYW1lcmF0ZX0pOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgY29uc3QgR1ZhbHVlKiBmcmFtZVJhdGVWYWx1
ZXMoZ3N0X3N0cnVjdHVyZV9nZXRfdmFsdWUoc3RyLCAiZnJhbWVyYXRlIikpOworICAgICAgICAg
ICAgdW5zaWduZWQgZnJhbWVSYXRlc0xlbmd0aCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihnc3Rf
dmFsdWVfbGlzdF9nZXRfc2l6ZShmcmFtZVJhdGVWYWx1ZXMpKTsKKworICAgICAgICAgICAgZm9y
ICh1bnNpZ25lZCBqID0gMDsgaiA8IGZyYW1lUmF0ZXNMZW5ndGg7IGorKykgeworICAgICAgICAg
ICAgICAgIGNvbnN0IEdWYWx1ZSogdmFsID0gZ3N0X3ZhbHVlX2xpc3RfZ2V0X3ZhbHVlKGZyYW1l
UmF0ZVZhbHVlcywgaik7CisKKyAgICAgICAgICAgICAgICBBU1NFUlQodmFsICYmIEdfVkFMVUVf
VFlQRSh2YWwpID09IEdTVF9UWVBFX0ZSQUNUSU9OKTsKKyAgICAgICAgICAgICAgICBnc3RfdXRp
bF9mcmFjdGlvbl90b19kb3VibGUoZ3N0X3ZhbHVlX2dldF9mcmFjdGlvbl9udW1lcmF0b3IodmFs
KSwKKyAgICAgICAgICAgICAgICAgICAgZ3N0X3ZhbHVlX2dldF9mcmFjdGlvbl9kZW5vbWluYXRv
cih2YWwpLCAmZnJhbWVyYXRlKTsKKworICAgICAgICAgICAgICAgIGZyYW1lUmF0ZXMuYXBwZW5k
KHsgZnJhbWVyYXRlLCBmcmFtZXJhdGV9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIHByZXNldHMuYXBwZW5kKEdTdHJlYW1lclZpZGVvUHJlc2V0OjpjcmVhdGUoc2l6ZSwg
V1RGTW92ZShmcmFtZVJhdGVzKSkpOworICAgIH0KKworICAgIGlmIChwcmVzZXRzLmlzRW1wdHko
KSkgeworICAgICAgICBHU1RfSU5GTygiQ291bGQgbm90IGZpbmQgYW55IHByZXNldHMgZm9yIGNh
cHM6ICUiIEdTVF9QVFJfRk9STUFUICIganVzdCBsZXQgYW55dGhpbmcgZ28gb3V0LiIsIGNhcHMu
Z2V0KCkpOworCisgICAgICAgIGZvciAoYXV0byYgc2l6ZSA6IHN0YW5kYXJkVmlkZW9TaXplcygp
KSB7CisgICAgICAgICAgICBWZWN0b3I8RnJhbWVSYXRlUmFuZ2U+IGZyYW1lUmF0ZXM7CisKKyAg
ICAgICAgICAgIGZyYW1lUmF0ZXMuYXBwZW5kKHsgMCwgR19NQVhET1VCTEV9KTsKKyAgICAgICAg
ICAgIHByZXNldHMuYXBwZW5kKEdTdHJlYW1lclZpZGVvUHJlc2V0OjpjcmVhdGUoc2l6ZSwgV1RG
TW92ZShmcmFtZVJhdGVzKSkpOworICAgICAgICB9CisgICAgfQorCisgICAgc2V0U3VwcG9ydGVk
UHJlc2V0cyhXVEZNb3ZlKHByZXNldHMpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKExJQldFQlJUQykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3Ry
ZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuaAppbmRleCAyMzFl
ZDRhYTMwN2JmZmQwYjVlN2Y5YWY3NzliNzhlNzI1OWQ1Mzg5Li5jOWZhMTVhNjIxYmQ3ZjE0NGJm
ZTEzNDRhZTAxMTA1NmMwMWYwNTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
clZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC0yMywxMSArMjMsMTEgQEAKIAogI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pICYmIFVTRShMSUJXRUJSVEMpICYmIFVTRShHU1RSRUFNRVIpCiAjaW5jbHVk
ZSAiR1N0cmVhbWVyVmlkZW9DYXB0dXJlci5oIgotI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3Vy
Y2UuaCIKKyNpbmNsdWRlICJSZWFsdGltZVZpZGVvU291cmNlLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0
aW1lTWVkaWFTb3VyY2UgeworY2xhc3MgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlIDogcHVi
bGljIFJlYWx0aW1lVmlkZW9Tb3VyY2UgewogcHVibGljOgogICAgIHN0YXRpYyBDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGUoU3RyaW5nJiYgZGV2aWNlSUQsIFN0cmluZyYmIGhhc2hTYWx0LCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFZpZGVv
Q2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKQEAgLTQ2LDYgKzQ2LDkgQEAgcHJvdGVjdGVkOgog
ICAgIHZpcnR1YWwgfkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZSgpOwogICAgIHZvaWQgc3Rh
cnRQcm9kdWNpbmdEYXRhKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgp
IG92ZXJyaWRlOworICAgIGJvb2wgY2FuUmVzaXplVmlkZW9GcmFtZXMoKSBjb25zdCBmaW5hbCB7
IHJldHVybiB0cnVlOyB9CisgICAgdm9pZCBnZW5lcmF0ZVByZXNldHMoKSBmaW5hbDsKKwogCiAg
ICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+
IG1fY2FwYWJpbGl0aWVzOwogICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3M+IG1fY3VycmVudFNldHRpbmdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcAppbmRleCBiZWFhM2U1NDE3MDBlYjUzZWEwMDQwYmI5MzA3M2E3NGI1MmZjMWQ4Li40MWZk
MWQ2ZDQ4Yjg5YjFlMzVhYjE4ZDJiYjQwOWQ1NGY4MTE1ZDI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmNwcApAQCAtNTUsNiArNTUsNyBAQCBzdGF0aWMgaW5saW5lIFZlY3RvcjxNb2NrTWVk
aWFEZXZpY2U+IGRlZmF1bHREZXZpY2VzKCkKICAgICAgICAgICAgICAgICBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3M6OlZpZGVvRmFjaW5nTW9kZTo6VXNlciwgewogICAgICAgICAgICAgICAg
ICAgICB7IHsgMTI4MCwgNzIwIH0sIHsgeyAzMCwgMzB9LCB7IDI3LjUsIDI3LjV9LCB7IDI1LCAy
NX0sIHsgMjIuNSwgMjIuNX0sIHsgMjAsIDIwfSwgeyAxNy41LCAxNy41fSwgeyAxNSwgMTV9LCB7
IDEyLjUsIDEyLjV9LCB7IDEwLCAxMH0sIHsgNy41LCA3LjV9LCB7IDUsIDV9IH0gfSwKICAgICAg
ICAgICAgICAgICAgICAgeyB7IDY0MCwgNDgwIH0sICB7IHsgMzAsIDMwfSwgeyAyNy41LCAyNy41
fSwgeyAyNSwgMjV9LCB7IDIyLjUsIDIyLjV9LCB7IDIwLCAyMH0sIHsgMTcuNSwgMTcuNX0sIHsg
MTUsIDE1fSwgeyAxMi41LCAxMi41fSwgeyAxMCwgMTB9LCB7IDcuNSwgNy41fSwgeyA1LCA1fSB9
IH0sCisgICAgICAgICAgICAgICAgICAgIHsgeyAxMTIsIDExMiB9LCAgeyB7IDMwLCAzMH0sIHsg
MjcuNSwgMjcuNX0sIHsgMjUsIDI1fSwgeyAyMi41LCAyMi41fSwgeyAyMCwgMjB9LCB7IDE3LjUs
IDE3LjV9LCB7IDE1LCAxNX0sIHsgMTIuNSwgMTIuNX0sIHsgMTAsIDEwfSwgeyA3LjUsIDcuNX0s
IHsgNSwgNX0gfSB9LAogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgQ29sb3I6
OmJsYWNrLAogICAgICAgICAgICAgfSB9LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdkOGZlM2ZhYjk0NGQzZTg0ZGYwN2Vh
MzQyMzhjZmQ4ZjZjM2FlZmMuLjNkOGNiMmQwMDAyODUyY2M4MTI0NzIwNDhkMTk1NDQxYWM5YWNm
MWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxOC0wOS0yNyAgVGhpYmF1bHQgU2F1bmllciAg
PHRzYXVuaWVyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gU3VwcG9ydCBhcmJp
dHJhcnkgdmlkZW8gcmVzb2x1dGlvbiBpbiBnZXRVc2VyTWVkaWEgQVBJCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODk3MzQKKworICAgICAgICBJbXBs
ZW1lbnQgYXJiaXRyYXJ5IHZpZGVvIHJlc29sdXRpb24gZm9yIHRoZSBnZXRVc2VyTWVkaWEgQVBJ
IGluIEdTdHJlYW1lci4KKworICAgICAgICBGaXggdGhlIE1vY2tSZWFsdGltZU1lZGlhU291cmNl
IGRldmljZSBsaXN0IHRvIG1ha2UgZGV2aWNlcyBwcm9wZXJ0aWVzIG1hdGNoCisgICAgICAgIHRl
c3QgZXhwZWN0YXRpb25zLgorCisgICAgICAgIFJlYWN0aXZhdGUgdGVzdHMgdGhhdCB3ZXJlIGZh
aWxsaW5nIGJlY2F1c2Ugb2YgdGhhdC4KKworICAgICAgICBSZXZpZXdlZCBieSBYYWJpZXIgUm9k
cmlndWV6LUNhbHZhci4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE4LTEwLTEx
ICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtd
W1dQRV0gQWRkIG1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzIHN1cHBvcnQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZGMxMzc5YzgyZGZjM2E4NjFh
YmYxNzFlNjZhZTUyNGI4NzJjYjZjYS4uOTM2M2Q2MGRmYzQzNzdlMTNkMmYzMmE2NWExMWI3Mzk4
NWEyNjQzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTYxMSwxMCArNjExLDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
IFsgU2tpcCBdCiBodHRwL3Rlc3RzL3dlYnJ0YyBbIFNraXAgXQogIyBUaGUgTWVkaWFTdHJlYW0g
aW1wbGVtZW50YXRpb24gaXMgYWxzbyBzdGlsbCBub3QgY29tcGxldGVkCiB3ZWJraXQub3JnL2Iv
NzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9tb2NrLW1lZGlhLXNvdXJjZS13ZWJhdWRpby5odG1sIFsg
VGltZW91dCBdCi13ZWJraXQub3JnL2IvMTg5NzM0IGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay1nZXRDYXBhYmlsaXRpZXMuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE4
OTczNCBmYXN0L21lZGlhc3RyZWFtL2FwcGx5LWNvbnN0cmFpbnRzLWFkdmFuY2VkLmh0bWwgWyBG
YWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xODk3MzQgZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25z
dHJhaW50cy12aWRlby5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTg5NzM0IGZhc3Qv
bWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlZmF1bHQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0
Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLmh0bWwg
WyBGYWlsdXJlIF0KICMgQ3Jhc2ggaXMgYnVnICMxODY2NzgKIHdlYmtpdC5vcmcvYi83OTIwMyBm
YXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtdHJhY2stc3RvcC5odG1s
IFsgVGltZW91dCBDcmFzaCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDcwYWE1YTY3NTg1YjQxYWM1ZTYzYTA2OTNiOGE0MzM0NGUxMmQ5MDYuLjNiOTVm
NmI5NDk2M2Y4YzU2YzhiNzZlZjViNWFjNDk5ZmY3MDY1MWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCkBAIC04MiwxMCArODIsNiBAQCB3ZWJraXQub3JnL2Iv
MTg2OTMzIHdlYnJ0Yy9nZXRVc2VyTWVkaWEtd2ViYXVkaW8tYXV0b3BsYXkuaHRtbAogd2Via2l0
Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vbW9jay1tZWRpYS1zb3VyY2Utd2ViYXVkaW8u
aHRtbCBbIFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vZ2V0
VXNlck1lZGlhLXdlYmF1ZGlvLmh0bWwgWyBGYWlsdXJlIENyYXNoIF0KIHdlYmtpdC5vcmcvYi83
OTIwMyBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtdHJhY2stc3Rv
cC5odG1sIFsgVGltZW91dCBdCi13ZWJraXQub3JnL2IvMTg5NzM0IGZhc3QvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFjay1nZXRDYXBhYmlsaXRpZXMuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0
Lm9yZy9iLzE4OTczNCBmYXN0L21lZGlhc3RyZWFtL2FwcGx5LWNvbnN0cmFpbnRzLWFkdmFuY2Vk
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xODk3MzQgZmFzdC9tZWRpYXN0cmVhbS9h
cHBseS1jb25zdHJhaW50cy12aWRlby5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTg5
NzM0IGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlZmF1bHQuaHRtbCBbIEZhaWx1cmUg
XQogd2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24t
ZHRtZi5odG1sIFsgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi1pY2VjYW5kaWRhdGUtZXZlbnQuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBDcmFzaCBdCiB3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi1tZWRpYS1zZXR1cC10d28tZGlhbG9ncy5odG1sIFsgUGFzcyBGYWlsdXJlIENyYXNo
IF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352074</attachid>
            <date>2018-10-11 13:50:41 -0700</date>
            <delta_ts>2018-10-11 14:30:41 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-189734-20181011175040.patch</filename>
            <type>text/plain</type>
            <size>19406</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzBmNDM0NzgzOGNiZjZj
OTViM2VkYmM5MTRhZDI5MDM0YzU3MWNkYy4uYTQyNDdkZjAxODkxMGIwMjlhMmY3NzgxYTJmOWNi
ZGZkMzA5MzhhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE4LTA5LTI3ICBUaGli
YXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBTdXBwb3J0IGFyYml0cmFyeSB2aWRlbyByZXNvbHV0aW9uIGluIGdldFVzZXJNZWRpYSBBUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTczNAor
CisgICAgICAgIFJldmlld2VkIGJ5IFhhYmllciBSb2RyaWd1ZXotQ2FsdmFyLgorCisgICAgICAg
IEltcGxlbWVudCBhcmJpdHJhcnkgdmlkZW8gcmVzb2x1dGlvbiBmb3IgdGhlIGdldFVzZXJNZWRp
YSBBUEkgaW4gR1N0cmVhbWVyLgorCisgICAgICAgIEZpeCB0aGUgTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2UgZGV2aWNlIGxpc3QgdG8gbWFrZSBkZXZpY2VzIHByb3BlcnRpZXMgbWF0Y2gKKyAgICAg
ICAgdGVzdCBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgUmVhY3RpdmF0ZSB0ZXN0cyB0aGF0IHdl
cmUgZmFpbGxpbmcgYmVjYXVzZSBvZiB0aGF0LgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGlt
ZVZpZGVvU291cmNlOjpzdGFuZGFyZFZpZGVvU2l6ZXMpOgorICAgICAgICAoV2ViQ29yZTo6c3Rh
bmRhcmRWaWRlb1NpemVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
VmlkZW9QcmVzZXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJl
YW1lclZpZGVvUHJlc2V0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlk
ZW9QcmVzZXQ6OkdTdHJlYW1lclZpZGVvUHJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJl
YW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6R1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6Z2VuZXJh
dGVQcmVzZXRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZWZhdWx0
RGV2aWNlcyk6CisKIDIwMTgtMTAtMTEgIEVucmlxdWUgT2Nhw7FhIEdvbnrDoWxleiAgPGVvY2Fu
aGFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXVtNU0VdIEZpeCBoZWlnaHQgY2Fs
Y3VsYXRpb24gZm9yIHN0cmVhbXMgd2l0aCBzb3VyY2UgYXNwZWN0IHJhdGlvCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwCmluZGV4IDU2NjRiMDkyMTAwNzJlMTFiYmIwYThjZGM1Y2JiMjQyMjEyNWRhNjMu
LjBhZmIxOTRlNjJkNTYwNDI1NGUxMzY4ZDkwNTkxZTRkMzU4MjNlZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0
U3VwcG9ydGVkUHJlc2V0cyhjb25zdCBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4mIHByCiAgICAg
fQogfQogCi1zdGF0aWMgY29uc3QgVmVjdG9yPEludFNpemU+JiBzdGFuZGFyZFZpZGVvU2l6ZXMo
KQorY29uc3QgVmVjdG9yPEludFNpemU+JiBSZWFsdGltZVZpZGVvU291cmNlOjpzdGFuZGFyZFZp
ZGVvU2l6ZXMoKQogewogICAgIHN0YXRpYyBjb25zdCBhdXRvIHNpemVzID0gbWFrZU5ldmVyRGVz
dHJveWVkKFtdIHsKICAgICAgICAgc3RhdGljIEludFNpemUgdmlkZW9TaXplc1tdID0gewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVW
aWRlb1NvdXJjZS5oCmluZGV4IGE0OWNmNmNjZjY2YjAzOWI5MTU5MjY2Y2E4OTQ1Yzg1MDRhMmQ3
MzIuLjQ3YzRmNWVlM2MxZjY1NmFkNTIwYjRiZWI4M2I0NzJmNzRkMDlkZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVv
U291cmNlLmgKQEAgLTY3LDYgKzY3LDcgQEAgcHJvdGVjdGVkOgogICAgIGRvdWJsZSBvYnNlcnZl
ZEZyYW1lUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2ZWRGcmFtZVJhdGU7IH0KIAogICAg
IHZvaWQgZGlzcGF0Y2hNZWRpYVNhbXBsZVRvT2JzZXJ2ZXJzKE1lZGlhU2FtcGxlJik7CisgICAg
Y29uc3QgVmVjdG9yPEludFNpemU+JiBzdGFuZGFyZFZpZGVvU2l6ZXMoKTsKIAogcHJpdmF0ZToK
ICAgICBzdHJ1Y3QgQ2FwdHVyZVNpemVBbmRGcmFtZVJhdGUgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vVmlkZW9QcmVzZXQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1ZpZGVvUHJlc2V0LmgKaW5kZXggOWYwNDA5OGZjZGEw
NmI0MGY1MDE4MmEwMDk1NTc2OTZjNzFlNTk0Yi4uNDA3MDJjOGU0ZDNkNGRjYmU2MTY4Y2I1NGZl
MThhMDA0ZmNjNjczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vVmlkZW9QcmVzZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9WaWRlb1ByZXNldC5oCkBAIC0xMDcsNyArMTA3LDggQEAgcHVibGljOgogCiAgICAgZW51
bSBWaWRlb1ByZXNldFR5cGUgewogICAgICAgICBCYXNlLAotICAgICAgICBBVkNhcHR1cmUKKyAg
ICAgICAgQVZDYXB0dXJlLAorICAgICAgICBHU3RyZWFtZXIKICAgICB9OwogCiAgICAgSW50U2l6
ZSBzaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291
cmNlLmNwcAppbmRleCBlNzlhMzU3Y2I0ZWQ0Nzg0ODU1NWE1MmQ4OTQxNjJiYzE3NGNmZmQ3Li5m
NTVmZWVkMTQzNjhmZGMxYWI1ZTlkMWZjYjEzY2E5ZTkwNzU0ZjIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9D
YXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtNTIsNiArNTIs
MTkgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUdTdHJlYW1lckRlYnVnKCkKICAgICB9KTsKIH0K
IAorY2xhc3MgR1N0cmVhbWVyVmlkZW9QcmVzZXQgOiBwdWJsaWMgVmlkZW9QcmVzZXQgeworcHVi
bGljOgorICAgIHN0YXRpYyBSZWY8R1N0cmVhbWVyVmlkZW9QcmVzZXQ+IGNyZWF0ZShJbnRTaXpl
IHNpemUsIFZlY3RvcjxGcmFtZVJhdGVSYW5nZT4mJiBmcmFtZXJhdGVzKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR1N0cmVhbWVyVmlkZW9QcmVzZXQoc2l6ZSwgV1RGTW92
ZShmcmFtZXJhdGVzKSkpOworICAgIH0KKworICAgIEdTdHJlYW1lclZpZGVvUHJlc2V0KEludFNp
emUgc2l6ZSwgVmVjdG9yPEZyYW1lUmF0ZVJhbmdlPiYmIGZyYW1lUmF0ZVJhbmdlcykKKyAgICAg
ICAgOiBWaWRlb1ByZXNldChzaXplLCBXVEZNb3ZlKGZyYW1lUmF0ZVJhbmdlcyksIEdTdHJlYW1l
cikKKyAgICB7CisgICAgfQorfTsKKwogY2xhc3MgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNl
RmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBWaWRlb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKICAg
ICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMpIGZpbmFsCkBAIC0xMTAsMTQgKzEyMywxNCBAQCBEaXNwbGF5Q2Fw
dHVyZUZhY3RvcnkmIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6ZGlzcGxheUZhY3Rvcnko
KQogfQogCiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OkdTdHJlYW1lclZpZGVvQ2FwdHVy
ZVNvdXJjZShTdHJpbmcmJiBkZXZpY2VJRCwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IGdjaGFyICpzb3VyY2VfZmFjdG9yeSkKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3Vy
Y2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFdURk1vdmUoZGV2aWNlSUQpLCBX
VEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKKyAgICA6IFJlYWx0aW1lVmlkZW9Tb3Vy
Y2UoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKQog
ICAgICwgbV9jYXB0dXJlcihzdGQ6Om1ha2VfdW5pcXVlPEdTdHJlYW1lclZpZGVvQ2FwdHVyZXI+
KHNvdXJjZV9mYWN0b3J5KSkKIHsKICAgICBpbml0aWFsaXplR1N0cmVhbWVyRGVidWcoKTsKIH0K
IAogR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlOjpHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2UoR1N0cmVhbWVyQ2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0KQotICAg
IDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywg
U3RyaW5nIHsgZGV2aWNlLnBlcnNpc3RlbnRJZCgpIH0sIFN0cmluZyB7IGRldmljZS5sYWJlbCgp
IH0sIFdURk1vdmUoaGFzaFNhbHQpKQorICAgIDogUmVhbHRpbWVWaWRlb1NvdXJjZShTdHJpbmcg
eyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgU3RyaW5nIHsgZGV2aWNlLmxhYmVsKCkgfSwgV1RG
TW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX2NhcHR1cmVyKHN0ZDo6bWFrZV91bmlxdWU8R1N0cmVh
bWVyVmlkZW9DYXB0dXJlcj4oZGV2aWNlKSkKIHsKICAgICBpbml0aWFsaXplR1N0cmVhbWVyRGVi
dWcoKTsKQEAgLTE2OCw4NiArMTgxLDEyIEBAIHZvaWQgR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291
cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCiAKIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXMmIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKIHsK
LSAgICBpZiAobV9jYXBhYmlsaXRpZXMpCi0gICAgICAgIHJldHVybiBtX2NhcGFiaWxpdGllcy52
YWx1ZSgpOwotCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRp
ZXMoc2V0dGluZ3MoKS5zdXBwb3J0ZWRDb25zdHJhaW50cygpKTsKLSAgICBHUmVmUHRyPEdzdENh
cHM+IGNhcHMgPSBhZG9wdEdSZWYobV9jYXB0dXJlci0+Y2FwcygpKTsKLSAgICBpbnQzMl90IG1p
bldpZHRoID0gR19NQVhJTlQzMiwgbWF4V2lkdGggPSAwLCBtaW5IZWlnaHQgPSBHX01BWElOVDMy
LCBtYXhIZWlnaHQgPSAwOwotICAgIGRvdWJsZSBtaW5GcmFtZXJhdGUgPSBHX01BWERPVUJMRSwg
bWF4RnJhbWVyYXRlID0gR19NSU5ET1VCTEU7Ci0KLSAgICBmb3IgKGd1aW50IGkgPSAwOyBpIDwg
Z3N0X2NhcHNfZ2V0X3NpemUoY2Fwcy5nZXQoKSk7IGkrKykgewotICAgICAgICBHc3RTdHJ1Y3R1
cmUqIHN0ciA9IGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUoY2Fwcy5nZXQoKSwgaSk7Ci0KLSAgICAg
ICAgLy8gT25seSBhY2NlcHQgcmF3IHZpZGVvIGZvciBub3cuCi0gICAgICAgIGlmICghZ3N0X3N0
cnVjdHVyZV9oYXNfbmFtZShzdHIsICJ2aWRlby94LXJhdyIpKQotICAgICAgICAgICAgY29udGlu
dWU7CiAKLSAgICAgICAgaW50MzJfdCB0bXBNaW5XaWR0aCwgdG1wTWluSGVpZ2h0LCB0bXBNaW5G
UFNOdW1lcmF0b3IsIHRtcE1pbkZQU0Rlbm9taW5hdG9yOwotICAgICAgICBpbnQzMl90IHRtcE1h
eFdpZHRoLCB0bXBNYXhIZWlnaHQsIHRtcE1heEZQU051bWVyYXRvciwgdG1wTWF4RlBTRGVub21p
bmF0b3I7Ci0gICAgICAgIGRvdWJsZSB0bXBNaW5GcmFtZXJhdGUgPSBHX01BWERPVUJMRSwgdG1w
TWF4RnJhbWVyYXRlID0gR19NSU5ET1VCTEU7CisgICAgY2FwYWJpbGl0aWVzLnNldERldmljZUlk
KGhhc2hlZElkKCkpOworICAgIHVwZGF0ZUNhcGFiaWxpdGllcyhjYXBhYmlsaXRpZXMpOwogCi0g
ICAgICAgIGlmICghZ3N0X3N0cnVjdHVyZV9nZXQoc3RyLCAid2lkdGgiLCBHU1RfVFlQRV9JTlRf
UkFOR0UsICZ0bXBNaW5XaWR0aCwgJnRtcE1heFdpZHRoLCAiaGVpZ2h0IiwgR1NUX1RZUEVfSU5U
X1JBTkdFLCAmdG1wTWluSGVpZ2h0LCAmdG1wTWF4SGVpZ2h0LCBudWxscHRyKSkgewotICAgICAg
ICAgICAgaWYgKCFnc3Rfc3RydWN0dXJlX2dldChzdHIsICJ3aWR0aCIsIEdfVFlQRV9JTlQsICZ0
bXBNaW5XaWR0aCwgImhlaWdodCIsIEdfVFlQRV9JTlQsICZ0bXBNaW5IZWlnaHQsIG51bGxwdHIp
KQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICB0bXBNYXhXaWR0aCA9
IHRtcE1pbldpZHRoOwotICAgICAgICAgICAgdG1wTWF4SGVpZ2h0ID0gdG1wTWluSGVpZ2h0Owot
ICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGdzdF9zdHJ1Y3R1cmVfZ2V0KHN0ciwgImZyYW1lcmF0
ZSIsIEdTVF9UWVBFX0ZSQUNUSU9OX1JBTkdFLCAmdG1wTWluRlBTTnVtZXJhdG9yLCAmdG1wTWlu
RlBTRGVub21pbmF0b3IsICZ0bXBNYXhGUFNOdW1lcmF0b3IsICZ0bXBNYXhGUFNEZW5vbWluYXRv
ciwgbnVsbHB0cikpIHsKLSAgICAgICAgICAgIGdzdF91dGlsX2ZyYWN0aW9uX3RvX2RvdWJsZSh0
bXBNaW5GUFNOdW1lcmF0b3IsIHRtcE1pbkZQU0Rlbm9taW5hdG9yLCAmdG1wTWluRnJhbWVyYXRl
KTsKLSAgICAgICAgICAgIGdzdF91dGlsX2ZyYWN0aW9uX3RvX2RvdWJsZSh0bXBNYXhGUFNOdW1l
cmF0b3IsIHRtcE1heEZQU0Rlbm9taW5hdG9yLCAmdG1wTWF4RnJhbWVyYXRlKTsKLSAgICAgICAg
fSBlbHNlIGlmIChnc3Rfc3RydWN0dXJlX2dldChzdHIsCi0gICAgICAgICAgICAiZnJhbWVyYXRl
IiwgR1NUX1RZUEVfRlJBQ1RJT04sICZ0bXBNaW5GUFNOdW1lcmF0b3IsICZ0bXBNaW5GUFNEZW5v
bWluYXRvciwgbnVsbHB0cikpIHsKLSAgICAgICAgICAgIHRtcE1heEZQU051bWVyYXRvciA9IHRt
cE1pbkZQU051bWVyYXRvcjsKLSAgICAgICAgICAgIHRtcE1heEZQU0Rlbm9taW5hdG9yID0gdG1w
TWluRlBTRGVub21pbmF0b3I7Ci0gICAgICAgICAgICBnc3RfdXRpbF9mcmFjdGlvbl90b19kb3Vi
bGUodG1wTWluRlBTTnVtZXJhdG9yLCB0bXBNaW5GUFNEZW5vbWluYXRvciwgJnRtcE1pbkZyYW1l
cmF0ZSk7Ci0gICAgICAgICAgICBnc3RfdXRpbF9mcmFjdGlvbl90b19kb3VibGUodG1wTWF4RlBT
TnVtZXJhdG9yLCB0bXBNYXhGUFNEZW5vbWluYXRvciwgJnRtcE1heEZyYW1lcmF0ZSk7Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBjb25zdCBHVmFsdWUqIGZyYW1lUmF0ZXMoZ3N0X3N0
cnVjdHVyZV9nZXRfdmFsdWUoc3RyLCAiZnJhbWVyYXRlIikpOwotICAgICAgICAgICAgdG1wTWlu
RnJhbWVyYXRlID0gR19NQVhET1VCTEU7Ci0gICAgICAgICAgICB0bXBNYXhGcmFtZXJhdGUgPSAw
LjA7Ci0KLSAgICAgICAgICAgIGd1aW50IGZyYW1lUmF0ZXNMZW5ndGggPSBzdGF0aWNfY2FzdDxn
dWludD4oZ3N0X3ZhbHVlX2xpc3RfZ2V0X3NpemUoZnJhbWVSYXRlcykpIC0gMTsKLQotICAgICAg
ICAgICAgZm9yIChndWludCBpID0gMDsgaSA8IGZyYW1lUmF0ZXNMZW5ndGg7IGkrKykgewotICAg
ICAgICAgICAgICAgIGRvdWJsZSB0bXBGcmFtZVJhdGU7Ci0gICAgICAgICAgICAgICAgY29uc3Qg
R1ZhbHVlKiB2YWwgPSBnc3RfdmFsdWVfbGlzdF9nZXRfdmFsdWUoZnJhbWVSYXRlcywgaSk7Ci0K
LSAgICAgICAgICAgICAgICBBU1NFUlQoR19WQUxVRV9UWVBFKHZhbCkgPT0gR1NUX1RZUEVfRlJB
Q1RJT04pOwotICAgICAgICAgICAgICAgIGdzdF91dGlsX2ZyYWN0aW9uX3RvX2RvdWJsZShnc3Rf
dmFsdWVfZ2V0X2ZyYWN0aW9uX251bWVyYXRvcih2YWwpLAotICAgICAgICAgICAgICAgICAgICBn
c3RfdmFsdWVfZ2V0X2ZyYWN0aW9uX2Rlbm9taW5hdG9yKHZhbCksICZ0bXBGcmFtZVJhdGUpOwot
Ci0gICAgICAgICAgICAgICAgdG1wTWluRnJhbWVyYXRlID0gc3RkOjptaW4odG1wTWluRnJhbWVy
YXRlLCB0bXBGcmFtZVJhdGUpOwotICAgICAgICAgICAgICAgIHRtcE1heEZyYW1lcmF0ZSA9IHN0
ZDo6bWF4KHRtcE1heEZyYW1lcmF0ZSwgdG1wRnJhbWVSYXRlKTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgaWYgKGkgPiAwKSB7Ci0gICAgICAgICAgICAgICAgbWluV2lkdGggPSBzdGQ6
Om1pbih0bXBNaW5XaWR0aCwgbWluV2lkdGgpOwotICAgICAgICAgICAgICAgIG1pbkhlaWdodCA9
IHN0ZDo6bWluKHRtcE1pbkhlaWdodCwgbWluSGVpZ2h0KTsKLSAgICAgICAgICAgICAgICBtaW5G
cmFtZXJhdGUgPSBzdGQ6Om1pbih0bXBNaW5GcmFtZXJhdGUsIG1pbkZyYW1lcmF0ZSk7Ci0KLSAg
ICAgICAgICAgICAgICBtYXhXaWR0aCA9IHN0ZDo6bWF4KHRtcE1heFdpZHRoLCBtYXhXaWR0aCk7
Ci0gICAgICAgICAgICAgICAgbWF4SGVpZ2h0ID0gc3RkOjptYXgodG1wTWF4SGVpZ2h0LCBtYXhI
ZWlnaHQpOwotICAgICAgICAgICAgICAgIG1heEZyYW1lcmF0ZSA9IHN0ZDo6bWF4KHRtcE1heEZy
YW1lcmF0ZSwgbWF4RnJhbWVyYXRlKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgbWluV2lkdGggPSB0bXBNaW5XaWR0aDsKLSAgICAgICAgICAgICAgICBtaW5IZWlnaHQg
PSB0bXBNaW5IZWlnaHQ7Ci0gICAgICAgICAgICAgICAgbWluRnJhbWVyYXRlID0gdG1wTWluRnJh
bWVyYXRlOwotCi0gICAgICAgICAgICAgICAgbWF4V2lkdGggPSB0bXBNYXhXaWR0aDsKLSAgICAg
ICAgICAgICAgICBtYXhIZWlnaHQgPSB0bXBNYXhIZWlnaHQ7Ci0gICAgICAgICAgICAgICAgbWF4
RnJhbWVyYXRlID0gdG1wTWF4RnJhbWVyYXRlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0K
LSAgICAgICAgY2FwYWJpbGl0aWVzLnNldERldmljZUlkKGhhc2hlZElkKCkpOwotICAgICAgICBj
YXBhYmlsaXRpZXMuc2V0V2lkdGgoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZShtaW5XaWR0aCwgbWF4
V2lkdGgpKTsKLSAgICAgICAgY2FwYWJpbGl0aWVzLnNldEhlaWdodChDYXBhYmlsaXR5VmFsdWVP
clJhbmdlKG1pbkhlaWdodCwgbWF4SGVpZ2h0KSk7Ci0gICAgICAgIGNhcGFiaWxpdGllcy5zZXRG
cmFtZVJhdGUoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZShtaW5GcmFtZXJhdGUsIG1heEZyYW1lcmF0
ZSkpOwotICAgICAgICBtX2NhcGFiaWxpdGllcyA9IFdURk1vdmUoY2FwYWJpbGl0aWVzKTsKLSAg
ICB9CisgICAgbV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7CiAKICAgICBy
ZXR1cm4gbV9jYXBhYmlsaXRpZXMudmFsdWUoKTsKIH0KQEAgLTI3OCw2ICsyMTcsNjkgQEAgY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3Vy
Y2U6OnNldHRpbmdzKCkKICAgICByZXR1cm4gbV9jdXJyZW50U2V0dGluZ3MudmFsdWUoKTsKIH0K
IAordm9pZCBHU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2U6OmdlbmVyYXRlUHJlc2V0cygpCit7
CisgICAgVmVjdG9yPFJlZjxWaWRlb1ByZXNldD4+IHByZXNldHM7CisgICAgR1JlZlB0cjxHc3RD
YXBzPiBjYXBzID0gYWRvcHRHUmVmKG1fY2FwdHVyZXItPmNhcHMoKSk7CisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IGdzdF9jYXBzX2dldF9zaXplKGNhcHMuZ2V0KCkpOyBpKyspIHsKKyAg
ICAgICAgR3N0U3RydWN0dXJlKiBzdHIgPSBnc3RfY2Fwc19nZXRfc3RydWN0dXJlKGNhcHMuZ2V0
KCksIGkpOworCisgICAgICAgIC8vIE9ubHkgYWNjZXB0IHJhdyB2aWRlbyBmb3Igbm93LgorICAg
ICAgICBpZiAoIWdzdF9zdHJ1Y3R1cmVfaGFzX25hbWUoc3RyLCAidmlkZW8veC1yYXciKSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGludDMyX3Qgd2lkdGgsIGhlaWdodDsKKyAg
ICAgICAgaWYgKCFnc3Rfc3RydWN0dXJlX2dldChzdHIsICJ3aWR0aCIsIEdfVFlQRV9JTlQsICZ3
aWR0aCwgImhlaWdodCIsIEdfVFlQRV9JTlQsICZoZWlnaHQsIG51bGxwdHIpKSB7CisgICAgICAg
ICAgICBHU1RfSU5GTygiQ291bGQgbm90IGZpbmQgZGlzY3JldCBoZWlnaHQgYW5kIHdpZHRoIHZh
bHVlcyBpbiAlIiBHU1RfUFRSX0ZPUk1BVCwgc3RyKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICB9CisKKyAgICAgICAgSW50U2l6ZSBzaXplID0geyB3aWR0aCwgaGVpZ2h0IH07Cisg
ICAgICAgIGRvdWJsZSBmcmFtZXJhdGU7CisgICAgICAgIFZlY3RvcjxGcmFtZVJhdGVSYW5nZT4g
ZnJhbWVSYXRlczsKKyAgICAgICAgaW50MzJfdCBtaW5GcmFtZVJhdGVOdW1lcmF0b3IsIG1pbkZy
YW1lUmF0ZURlbm9taW5hdG9yLCBtYXhGcmFtZVJhdGVOdW1lcmF0b3IsIG1heEZyYW1lUmF0ZURl
bm9taW5hdG9yLCBmcmFtZXJhdGVOdW1lcmF0b3IsIGZyYW1lcmF0ZURlbm9taW5hdG9yOworICAg
ICAgICBpZiAoZ3N0X3N0cnVjdHVyZV9nZXQoc3RyLCAiZnJhbWVyYXRlIiwgR1NUX1RZUEVfRlJB
Q1RJT05fUkFOR0UsICZtaW5GcmFtZVJhdGVOdW1lcmF0b3IsICZtaW5GcmFtZVJhdGVEZW5vbWlu
YXRvciwgJm1heEZyYW1lUmF0ZU51bWVyYXRvciwgJm1heEZyYW1lUmF0ZURlbm9taW5hdG9yLCBu
dWxscHRyKSkgeworICAgICAgICAgICAgRnJhbWVSYXRlUmFuZ2UgcmFuZ2U7CisKKyAgICAgICAg
ICAgIGdzdF91dGlsX2ZyYWN0aW9uX3RvX2RvdWJsZShtaW5GcmFtZVJhdGVOdW1lcmF0b3IsIG1p
bkZyYW1lUmF0ZURlbm9taW5hdG9yLCAmcmFuZ2UubWluaW11bSk7CisgICAgICAgICAgICBnc3Rf
dXRpbF9mcmFjdGlvbl90b19kb3VibGUobWF4RnJhbWVSYXRlTnVtZXJhdG9yLCBtYXhGcmFtZVJh
dGVEZW5vbWluYXRvciwgJnJhbmdlLm1heGltdW0pOworCisgICAgICAgICAgICBmcmFtZVJhdGVz
LmFwcGVuZChyYW5nZSk7CisgICAgICAgIH0gZWxzZSBpZiAoZ3N0X3N0cnVjdHVyZV9nZXQoc3Ry
LCAiZnJhbWVyYXRlIiwgR1NUX1RZUEVfRlJBQ1RJT04sICZmcmFtZXJhdGVOdW1lcmF0b3IsICZm
cmFtZXJhdGVEZW5vbWluYXRvciwgbnVsbHB0cikpIHsKKyAgICAgICAgICAgIGdzdF91dGlsX2Zy
YWN0aW9uX3RvX2RvdWJsZShmcmFtZXJhdGVOdW1lcmF0b3IsIGZyYW1lcmF0ZURlbm9taW5hdG9y
LCAmZnJhbWVyYXRlKTsKKyAgICAgICAgICAgIGZyYW1lUmF0ZXMuYXBwZW5kKHsgZnJhbWVyYXRl
LCBmcmFtZXJhdGV9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNvbnN0IEdWYWx1
ZSogZnJhbWVSYXRlVmFsdWVzKGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbHVlKHN0ciwgImZyYW1lcmF0
ZSIpKTsKKyAgICAgICAgICAgIHVuc2lnbmVkIGZyYW1lUmF0ZXNMZW5ndGggPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oZ3N0X3ZhbHVlX2xpc3RfZ2V0X3NpemUoZnJhbWVSYXRlVmFsdWVzKSk7CisK
KyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGogPCBmcmFtZVJhdGVzTGVuZ3RoOyBq
KyspIHsKKyAgICAgICAgICAgICAgICBjb25zdCBHVmFsdWUqIHZhbCA9IGdzdF92YWx1ZV9saXN0
X2dldF92YWx1ZShmcmFtZVJhdGVWYWx1ZXMsIGopOworCisgICAgICAgICAgICAgICAgQVNTRVJU
KHZhbCAmJiBHX1ZBTFVFX1RZUEUodmFsKSA9PSBHU1RfVFlQRV9GUkFDVElPTik7CisgICAgICAg
ICAgICAgICAgZ3N0X3V0aWxfZnJhY3Rpb25fdG9fZG91YmxlKGdzdF92YWx1ZV9nZXRfZnJhY3Rp
b25fbnVtZXJhdG9yKHZhbCksCisgICAgICAgICAgICAgICAgICAgIGdzdF92YWx1ZV9nZXRfZnJh
Y3Rpb25fZGVub21pbmF0b3IodmFsKSwgJmZyYW1lcmF0ZSk7CisKKyAgICAgICAgICAgICAgICBm
cmFtZVJhdGVzLmFwcGVuZCh7IGZyYW1lcmF0ZSwgZnJhbWVyYXRlfSk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKworICAgICAgICBwcmVzZXRzLmFwcGVuZChHU3RyZWFtZXJWaWRlb1ByZXNl
dDo6Y3JlYXRlKHNpemUsIFdURk1vdmUoZnJhbWVSYXRlcykpKTsKKyAgICB9CisKKyAgICBpZiAo
cHJlc2V0cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgR1NUX0lORk8oIkNvdWxkIG5vdCBmaW5kIGFu
eSBwcmVzZXRzIGZvciBjYXBzOiAlIiBHU1RfUFRSX0ZPUk1BVCAiIGp1c3QgbGV0IGFueXRoaW5n
IGdvIG91dC4iLCBjYXBzLmdldCgpKTsKKworICAgICAgICBmb3IgKGF1dG8mIHNpemUgOiBzdGFu
ZGFyZFZpZGVvU2l6ZXMoKSkgeworICAgICAgICAgICAgVmVjdG9yPEZyYW1lUmF0ZVJhbmdlPiBm
cmFtZVJhdGVzOworCisgICAgICAgICAgICBmcmFtZVJhdGVzLmFwcGVuZCh7IDAsIEdfTUFYRE9V
QkxFfSk7CisgICAgICAgICAgICBwcmVzZXRzLmFwcGVuZChHU3RyZWFtZXJWaWRlb1ByZXNldDo6
Y3JlYXRlKHNpemUsIFdURk1vdmUoZnJhbWVSYXRlcykpKTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIHNldFN1cHBvcnRlZFByZXNldHMoV1RGTW92ZShwcmVzZXRzKSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShM
SUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyVmlkZW9DYXB0dXJlU291
cmNlLmgKaW5kZXggMjMxZWQ0YWEzMDdiZmZkMGI1ZTdmOWFmNzc5Yjc4ZTcyNTlkNTM4OS4uYzlm
YTE1YTYyMWJkN2YxNDRiZmUxMzQ0YWUwMTEwNTZjMDFmMDUwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lclZpZGVvQ2Fw
dHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2UuaApAQCAtMjMsMTEgKzIzLDExIEBA
CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoTElCV0VCUlRDKSAmJiBVU0UoR1NU
UkVBTUVSKQogI2luY2x1ZGUgIkdTdHJlYW1lclZpZGVvQ2FwdHVyZXIuaCIKLSNpbmNsdWRlICJS
ZWFsdGltZU1lZGlhU291cmNlLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVWaWRlb1NvdXJjZS5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdTdHJlYW1lclZpZGVvQ2FwdHVyZVNvdXJj
ZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKK2NsYXNzIEdTdHJlYW1lclZpZGVvQ2Fw
dHVyZVNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZVZpZGVvU291cmNlIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJp
bmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBWaWRlb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CkBAIC00Niw2ICs0Niw5
IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5HU3RyZWFtZXJWaWRlb0NhcHR1cmVTb3VyY2Uo
KTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIG92ZXJyaWRlOwogICAgIHZvaWQgc3Rv
cFByb2R1Y2luZ0RhdGEoKSBvdmVycmlkZTsKKyAgICBib29sIGNhblJlc2l6ZVZpZGVvRnJhbWVz
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZvaWQgZ2VuZXJhdGVQcmVzZXRz
KCkgZmluYWw7CisKIAogICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9u
YWw8UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzPiBtX2N1cnJlbnRTZXR0aW5nczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5jcHAKaW5kZXggYmVhYTNlNTQxNzAwZWI1M2VhMDA0MGJiOTMwNzNh
NzRiNTJmYzFkOC4uNDFmZDFkNmQ0OGI4OWIxZTM1YWIxOGQyYmI0MDlkNTRmODExNWQyOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKQEAgLTU1LDYgKzU1LDcgQEAgc3RhdGljIGlubGlu
ZSBWZWN0b3I8TW9ja01lZGlhRGV2aWNlPiBkZWZhdWx0RGV2aWNlcygpCiAgICAgICAgICAgICAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpWaWRlb0ZhY2luZ01vZGU6OlVzZXIsIHsK
ICAgICAgICAgICAgICAgICAgICAgeyB7IDEyODAsIDcyMCB9LCB7IHsgMzAsIDMwfSwgeyAyNy41
LCAyNy41fSwgeyAyNSwgMjV9LCB7IDIyLjUsIDIyLjV9LCB7IDIwLCAyMH0sIHsgMTcuNSwgMTcu
NX0sIHsgMTUsIDE1fSwgeyAxMi41LCAxMi41fSwgeyAxMCwgMTB9LCB7IDcuNSwgNy41fSwgeyA1
LCA1fSB9IH0sCiAgICAgICAgICAgICAgICAgICAgIHsgeyA2NDAsIDQ4MCB9LCAgeyB7IDMwLCAz
MH0sIHsgMjcuNSwgMjcuNX0sIHsgMjUsIDI1fSwgeyAyMi41LCAyMi41fSwgeyAyMCwgMjB9LCB7
IDE3LjUsIDE3LjV9LCB7IDE1LCAxNX0sIHsgMTIuNSwgMTIuNX0sIHsgMTAsIDEwfSwgeyA3LjUs
IDcuNX0sIHsgNSwgNX0gfSB9LAorICAgICAgICAgICAgICAgICAgICB7IHsgMTEyLCAxMTIgfSwg
IHsgeyAzMCwgMzB9LCB7IDI3LjUsIDI3LjV9LCB7IDI1LCAyNX0sIHsgMjIuNSwgMjIuNX0sIHsg
MjAsIDIwfSwgeyAxNy41LCAxNy41fSwgeyAxNSwgMTV9LCB7IDEyLjUsIDEyLjV9LCB7IDEwLCAx
MH0sIHsgNy41LCA3LjV9LCB7IDUsIDV9IH0gfSwKICAgICAgICAgICAgICAgICB9LAogICAgICAg
ICAgICAgICAgIENvbG9yOjpibGFjaywKICAgICAgICAgICAgIH0gfSwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3ZDhmZTNm
YWI5NDRkM2U4NGRmMDdlYTM0MjM4Y2ZkOGY2YzNhZWZjLi4zZDhjYjJkMDAwMjg1MmNjODEyNDcy
MDQ4ZDE5NTQ0MWFjOWFjZjFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTgtMDktMjcgIFRo
aWJhdWx0IFNhdW5pZXIgIDx0c2F1bmllckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFt
ZXJdIFN1cHBvcnQgYXJiaXRyYXJ5IHZpZGVvIHJlc29sdXRpb24gaW4gZ2V0VXNlck1lZGlhIEFQ
SQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5NzM0
CisKKyAgICAgICAgSW1wbGVtZW50IGFyYml0cmFyeSB2aWRlbyByZXNvbHV0aW9uIGZvciB0aGUg
Z2V0VXNlck1lZGlhIEFQSSBpbiBHU3RyZWFtZXIuCisKKyAgICAgICAgRml4IHRoZSBNb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZSBkZXZpY2UgbGlzdCB0byBtYWtlIGRldmljZXMgcHJvcGVydGllcyBt
YXRjaAorICAgICAgICB0ZXN0IGV4cGVjdGF0aW9ucy4KKworICAgICAgICBSZWFjdGl2YXRlIHRl
c3RzIHRoYXQgd2VyZSBmYWlsbGluZyBiZWNhdXNlIG9mIHRoYXQuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgWGFiaWVyIFJvZHJpZ3Vlei1DYWx2YXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9u
czoKKwogMjAxOC0xMC0xMSAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1RLXVtXUEVdIEFkZCBtZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcyBz
dXBwb3J0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGRj
MTM3OWM4MmRmYzNhODYxYWJmMTcxZTY2YWU1MjRiODcyY2I2Y2EuLjkzNjNkNjBkZmM0Mzc3ZTEz
ZDJmMzJhNjVhMTFiNzM5ODVhMjY0MzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCkBAIC02MTEsMTAgKzYxMSw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjLyBbIFNraXAgXQogaHR0cC90ZXN0cy93ZWJydGMgWyBTa2lwIF0KICMg
VGhlIE1lZGlhU3RyZWFtIGltcGxlbWVudGF0aW9uIGlzIGFsc28gc3RpbGwgbm90IGNvbXBsZXRl
ZAogd2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vbW9jay1tZWRpYS1zb3VyY2Ut
d2ViYXVkaW8uaHRtbCBbIFRpbWVvdXQgXQotd2Via2l0Lm9yZy9iLzE4OTczNCBmYXN0L21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2stZ2V0Q2FwYWJpbGl0aWVzLmh0bWwgWyBGYWlsdXJlIF0K
LXdlYmtpdC5vcmcvYi8xODk3MzQgZmFzdC9tZWRpYXN0cmVhbS9hcHBseS1jb25zdHJhaW50cy1h
ZHZhbmNlZC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTg5NzM0IGZhc3QvbWVkaWFz
dHJlYW0vYXBwbHktY29uc3RyYWludHMtdmlkZW8uaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9y
Zy9iLzE4OTczNCBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZWZhdWx0Lmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRp
YS13ZWJhdWRpby5odG1sIFsgRmFpbHVyZSBdCiAjIENyYXNoIGlzIGJ1ZyAjMTg2Njc4CiB3ZWJr
aXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50
LXRyYWNrLXN0b3AuaHRtbCBbIFRpbWVvdXQgQ3Jhc2ggXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
cGUvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3MGFhNWE2NzU4NWI0MWFjNWU2M2EwNjkzYjhhNDMz
NDRlMTJkOTA2Li5jOTVhMzZiN2EwMjhlZmEwM2FjNTMyNzUwMTllNTViZWExZTZjMDYzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDYsNiArNDYsNyBA
QAogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAogIyBUaGUgd2VicnRjIGltcGxl
bWVudGF0aW9uIGlzIG5vdCBmdWxseSBjb21wbGV0ZWQgeWV0Cit3ZWJraXQub3JnL2IvMTg5NTY3
IHdlYnJ0Yy92aWRlby1hZGRMZWdhY3lUcmFuc2NlaXZlci5odG1sIFsgRmFpbHVyZSBdCiB3ZWJr
aXQub3JnL2IvMTg3MDY0IHdlYnJ0Yy9hdWRpby1wZWVyLWNvbm5lY3Rpb24tZzcyMi5odG1sCiB3
ZWJraXQub3JnL2IvMTg3MDY0IHdlYnJ0Yy92aWRlby13aXRoLXJlY2VpdmVyLmh0bWwKIHdlYmtp
dC5vcmcvYi8xODcwNjQgd2VicnRjL2NhcHR1cmVDYW52YXMtd2VicnRjLmh0bWwKQEAgLTgyLDEw
ICs4Myw2IEBAIHdlYmtpdC5vcmcvYi8xODY5MzMgd2VicnRjL2dldFVzZXJNZWRpYS13ZWJhdWRp
by1hdXRvcGxheS5odG1sCiB3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0cmVhbS9tb2Nr
LW1lZGlhLXNvdXJjZS13ZWJhdWRpby5odG1sIFsgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvNzky
MDMgZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtd2ViYXVkaW8uaHRtbCBbIEZhaWx1cmUg
Q3Jhc2ggXQogd2Via2l0Lm9yZy9iLzc5MjAzIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0t
dmlkZW8tZWxlbWVudC10cmFjay1zdG9wLmh0bWwgWyBUaW1lb3V0IF0KLXdlYmtpdC5vcmcvYi8x
ODk3MzQgZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLWdldENhcGFiaWxpdGllcy5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTg5NzM0IGZhc3QvbWVkaWFzdHJlYW0vYXBw
bHktY29uc3RyYWludHMtYWR2YW5jZWQuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE4
OTczNCBmYXN0L21lZGlhc3RyZWFtL2FwcGx5LWNvbnN0cmFpbnRzLXZpZGVvLmh0bWwgWyBGYWls
dXJlIF0KLXdlYmtpdC5vcmcvYi8xODk3MzQgZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEt
ZGVmYXVsdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvNzkyMDMgZmFzdC9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1kdG1mLmh0bWwgWyBUaW1lb3V0IF0KIHdlYmtpdC5vcmcv
Yi83OTIwMyBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWljZWNhbmRpZGF0ZS1l
dmVudC5odG1sIFsgUGFzcyBGYWlsdXJlIENyYXNoIF0KIHdlYmtpdC5vcmcvYi83OTIwMyBmYXN0
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW1lZGlhLXNldHVwLXR3by1kaWFsb2dzLmh0
bWwgWyBQYXNzIEZhaWx1cmUgQ3Jhc2ggXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>