<?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>191599</bug_id>
          
          <creation_ts>2018-11-13 13:32:55 -0800</creation_ts>
          <short_desc>[GStreamer][MediaStream] Handle track addition and removal</short_desc>
          <delta_ts>2018-11-16 06:03:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Thibault Saunier">tsaunier</reporter>
          <assigned_to name="Thibault Saunier">tsaunier</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1478122</commentid>
    <comment_count>0</comment_count>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-11-13 13:32:55 -0800</bug_when>
    <thetext>[GStreamer][MediaStream] Handle track addition and removal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478127</commentid>
    <comment_count>1</comment_count>
      <attachid>354698</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-11-13 13:42:03 -0800</bug_when>
    <thetext>Created attachment 354698
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478797</commentid>
    <comment_count>2</comment_count>
      <attachid>354698</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-11-15 00:47:52 -0800</bug_when>
    <thetext>Comment on attachment 354698
Patch

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

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:154
&gt; +    void characteristicsChanged() final { GST_DEBUG_OBJECT(m_mediaStreamSrc.get(), &quot;renegotiation should happen.&quot;); }

Nit: is it common to have periods as GStreamer logging messages?

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:488
&gt; +static void
&gt; +webkitMediaStreamSrcAddTrack(WebKitMediaStreamSrc* self, MediaStreamTrackPrivate* track)

same line

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:498
&gt; +    if (track-&gt;type() == RealtimeMediaSource::Type::Audio) {
&gt; +        webkitMediaStreamSrcSetupAppSrc(self, track, &amp;self-&gt;audioSrc,
&gt; +            &amp;audioSrcTemplate);
&gt; +    } else if (track-&gt;type() == RealtimeMediaSource::Type::Video) {
&gt; +        webkitMediaStreamSrcSetupAppSrc(self, track, &amp;self-&gt;videoSrc,
&gt; +            &amp;videoSrcTemplate);
&gt; +    } else {
&gt; +        GST_INFO(&quot;Unsuported track type: %d&quot;, (gint) track-&gt;type());
&gt;      }

For such small lines you don&apos;t need to split in two. Besides, brackets should go away as they are one line clauses.

UnsuPPorted.

(gint) -&gt; static_cast&lt;int&gt;(...)

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:502
&gt; +static void
&gt; +webkitMediaStreamSrcRemoveTrackByType(WebKitMediaStreamSrc* self, RealtimeMediaSource::Type trackType)

same line

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:510
&gt; +

No need for this line

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:519
&gt; +    } else {
&gt; +        GST_INFO(&quot;Unsuported track type: %d&quot;, (gint) trackType);
&gt;      }

No need for brackets and fix the cast, please.

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:522
&gt; +gboolean webkitMediaStreamSrcSetStream(WebKitMediaStreamSrc* self, MediaStreamPrivate* stream)

This function should return bool

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:524
&gt; +    g_return_val_if_fail(WEBKIT_IS_MEDIA_STREAM_SRC(self), FALSE);

I don&apos;t think this is needed here, right?

Anyway, if you want to keep such a test it should be ASSERT().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1478840</commentid>
    <comment_count>3</comment_count>
      <attachid>354922</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-11-15 05:29:24 -0800</bug_when>
    <thetext>Created attachment 354922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479287</commentid>
    <comment_count>4</comment_count>
      <attachid>354922</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-11-15 23:25:14 -0800</bug_when>
    <thetext>Comment on attachment 354922
Patch

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

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:494
&gt; +        GST_INFO(&quot;Unsupported track type: %d&quot;, (gint) track-&gt;type());

Please, use static_cast here.

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:505
&gt;  

This line does not make sense here. Please remove it.

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:513
&gt; +        GST_INFO(&quot;Unsupported track type: %d&quot;, (gint) trackType);

static_cast, please

&gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:518
&gt; +    g_return_val_if_fail(WEBKIT_IS_MEDIA_STREAM_SRC(self), FALSE);

I don&apos;t think this is needed here. If you still consider it needed, please turn it into an ASSERT instead of g_return_val_if_fail (which btw, should be returning false instead of FALSE now that it is a bool instead of a gboolean).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479319</commentid>
    <comment_count>5</comment_count>
      <attachid>355036</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-11-16 01:57:10 -0800</bug_when>
    <thetext>Created attachment 355036
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479320</commentid>
    <comment_count>6</comment_count>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-11-16 01:57:26 -0800</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #4)
&gt; Comment on attachment 354922 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=354922&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:494
&gt; &gt; +        GST_INFO(&quot;Unsupported track type: %d&quot;, (gint) track-&gt;type());
&gt; 
&gt; Please, use static_cast here.

Done.

&gt; &gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:505
&gt; &gt;  
&gt; 
&gt; This line does not make sense here. Please remove it.
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:513
&gt; &gt; +        GST_INFO(&quot;Unsupported track type: %d&quot;, (gint) trackType);
&gt; 
&gt; static_cast, please

Done

&gt; &gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:518
&gt; &gt; +    g_return_val_if_fail(WEBKIT_IS_MEDIA_STREAM_SRC(self), FALSE);
&gt; 
&gt; I don&apos;t think this is needed here. If you still consider it needed, please
&gt; turn it into an ASSERT instead of g_return_val_if_fail (which btw, should be
&gt; returning false instead of FALSE now that it is a bool instead of a
&gt; gboolean).


Well it is external API, better safe guard it?
ASSERT is not the same thing, `g_return_val_if_fail` leads to a runtime warning, not an ASSERT by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479338</commentid>
    <comment_count>7</comment_count>
      <attachid>355036</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-11-16 04:19:38 -0800</bug_when>
    <thetext>Comment on attachment 355036
Patch

(In reply to Thibault Saunier from comment #6)
&gt; &gt; &gt; Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:518
&gt; &gt; &gt; +    g_return_val_if_fail(WEBKIT_IS_MEDIA_STREAM_SRC(self), FALSE);
&gt; &gt; 
&gt; &gt; I don&apos;t think this is needed here. If you still consider it needed, please
&gt; &gt; turn it into an ASSERT instead of g_return_val_if_fail (which btw, should be
&gt; &gt; returning false instead of FALSE now that it is a bool instead of a
&gt; &gt; gboolean).
&gt; 
&gt; Well it is external API, better safe guard it?
&gt; ASSERT is not the same thing, `g_return_val_if_fail` leads to a runtime
&gt; warning, not an ASSERT by default.

If it remains inside WebKit without being exposed to C or GTK APIs, then we should stick to the ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479360</commentid>
    <comment_count>8</comment_count>
      <attachid>355047</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-11-16 05:23:10 -0800</bug_when>
    <thetext>Created attachment 355047
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479361</commentid>
    <comment_count>9</comment_count>
      <attachid>355048</attachid>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-11-16 05:24:05 -0800</bug_when>
    <thetext>Created attachment 355048
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479366</commentid>
    <comment_count>10</comment_count>
    <who name="Thibault Saunier">tsaunier</who>
    <bug_when>2018-11-16 05:44:05 -0800</bug_when>
    <thetext>&gt; If it remains inside WebKit without being exposed to C or GTK APIs, then we should stick to the ASSERT.

You are right, just id that. Sorry for the noise</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479368</commentid>
    <comment_count>11</comment_count>
      <attachid>355048</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-16 06:01:27 -0800</bug_when>
    <thetext>Comment on attachment 355048
Patch for landing

Clearing flags on attachment: 355048

Committed r238276: &lt;https://trac.webkit.org/changeset/238276&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479369</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-16 06:01:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479372</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-16 06:03:46 -0800</bug_when>
    <thetext>&lt;rdar://problem/46125460&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354698</attachid>
            <date>2018-11-13 13:42:03 -0800</date>
            <delta_ts>2018-11-15 05:29:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191599-20181113184201.patch</filename>
            <type>text/plain</type>
            <size>16086</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjZmNzQ4ZDdkYjBjNGYy
NjFjYWFhZmVkNjdjY2E0YzVhOTlkODNmNi4uNmU5NjliYWZmODg4NjBiMjg4Zjc3YTk5YTVlMDIz
NmQzM2Y1NmI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTExLTEzICBUaGli
YXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XVtNZWRpYVN0cmVhbV0gSGFuZGxlIHRyYWNrIGFkZGl0aW9uIGFuZCByZW1vdmFsCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE1OTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtcmVtb3ZlLXRyYWNrLmh0bWwKKworICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYVN0cmVh
bVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNZWRpYVN0cmVhbU9ic2VydmVy
Ojp+V2ViS2l0TWVkaWFTdHJlYW1PYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRN
ZWRpYVN0cmVhbU9ic2VydmVyOjpXZWJLaXRNZWRpYVN0cmVhbU9ic2VydmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OndlYmtpdE1lZGlhU3RyZWFtU3JjRmluYWxpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6d2Via2l0TWVkaWFTdHJlYW1TcmNDaGFuZ2VTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjp3
ZWJraXRfbWVkaWFfc3RyZWFtX3NyY19pbml0KToKKyAgICAgICAgKFdlYkNvcmU6OndlYmtpdE1l
ZGlhU3RyZWFtU3JjU2V0dXBTcmMpOgorICAgICAgICAoV2ViQ29yZTo6d2Via2l0TWVkaWFTdHJl
YW1TcmNBZGRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjp3ZWJraXRNZWRpYVN0cmVhbVNyY1Jl
bW92ZVRyYWNrQnlUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OndlYmtpdE1lZGlhU3RyZWFtU3Jj
U2V0U3RyZWFtKToKKwogMjAxOC0xMS0xMyAgVGhpYmF1bHQgU2F1bmllciAgPHRzYXVuaWVyQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gRW5oYW5jZSBkZWJ1Z2dpbmcgYnkgbWFr
aW5nIHN1cmUgdG8gcHJpbnQgdGhlIHBpcGVsaW5lIGluIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0dTdHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJjZS5j
cHAKaW5kZXggMDlhNDNlNjBjNGM0YmY2MzA5MTg0MmE4NjY5NmY5ZTI1MDFiNjQ4Zi4uZWRiYzA5
ODI0Y2E5MzkzMmEwYjdjM2JiMjU4OWIwOWM1ZDI2ZTQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhU3RyZWFt
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3BwCkBAIC00MSw2ICs0MSw4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyB2b2lkIHdlYmtpdE1lZGlhU3RyZWFtU3JjUHVzaFZp
ZGVvU2FtcGxlKFdlYktpdE1lZGlhU3RyZWFtU3JjKiBzZWxmLCBHc3RTYW1wbGUqIGdzdHNhbXBs
ZSk7CiBzdGF0aWMgdm9pZCB3ZWJraXRNZWRpYVN0cmVhbVNyY1B1c2hBdWRpb1NhbXBsZShXZWJL
aXRNZWRpYVN0cmVhbVNyYyogc2VsZiwgR3N0U2FtcGxlKiBnc3RzYW1wbGUpOwogc3RhdGljIHZv
aWQgd2Via2l0TWVkaWFTdHJlYW1TcmNUcmFja0VuZGVkKFdlYktpdE1lZGlhU3RyZWFtU3JjKiBz
ZWxmLCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpOworc3RhdGljIHZvaWQgd2Via2l0TWVkaWFT
dHJlYW1TcmNBZGRUcmFjayhXZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUqKTsKK3N0YXRpYyB2b2lkIHdlYmtpdE1lZGlhU3RyZWFtU3JjUmVtb3ZlVHJh
Y2tCeVR5cGUoV2ViS2l0TWVkaWFTdHJlYW1TcmMqIHNlbGYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGUgdHJhY2tUeXBlKTsKIAogc3RhdGljIEdzdFN0YXRpY1BhZFRlbXBsYXRlIHZpZGVvU3Jj
VGVtcGxhdGUgPSBHU1RfU1RBVElDX1BBRF9URU1QTEFURSgidmlkZW9fc3JjIiwKICAgICBHU1Rf
UEFEX1NSQywKQEAgLTE0Miw2ICsxNDQsMzAgQEAgcHJpdmF0ZToKICAgICBXZWJLaXRNZWRpYVN0
cmVhbVNyYyogbV9tZWRpYVN0cmVhbVNyYzsKIH07CiAKK2NsYXNzIFdlYktpdE1lZGlhU3RyZWFt
T2JzZXJ2ZXIKKyAgICA6IHB1YmxpYyBNZWRpYVN0cmVhbVByaXZhdGU6Ok9ic2VydmVyIHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJLaXRNZWRpYVN0cmVhbU9ic2VydmVyKCkgeyB9OworICAg
IFdlYktpdE1lZGlhU3RyZWFtT2JzZXJ2ZXIoV2ViS2l0TWVkaWFTdHJlYW1TcmMqIHNyYykKKyAg
ICAgICAgOiBtX21lZGlhU3RyZWFtU3JjKHNyYykgeyB9CisKKyAgICB2b2lkIGNoYXJhY3Rlcmlz
dGljc0NoYW5nZWQoKSBmaW5hbCB7IEdTVF9ERUJVR19PQkpFQ1QobV9tZWRpYVN0cmVhbVNyYy5n
ZXQoKSwgInJlbmVnb3RpYXRpb24gc2hvdWxkIGhhcHBlbi4iKTsgfQorICAgIHZvaWQgYWN0aXZl
U3RhdHVzQ2hhbmdlZCgpIGZpbmFsIHsgfQorCisgICAgdm9pZCBkaWRBZGRUcmFjayhNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2spIGZpbmFsCisgICAgeworICAgICAgICB3ZWJraXRNZWRp
YVN0cmVhbVNyY0FkZFRyYWNrKG1fbWVkaWFTdHJlYW1TcmMuZ2V0KCksICZ0cmFjayk7CisgICAg
fQorCisgICAgdm9pZCBkaWRSZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJh
Y2spIGZpbmFsCisgICAgeworICAgICAgICB3ZWJraXRNZWRpYVN0cmVhbVNyY1JlbW92ZVRyYWNr
QnlUeXBlKG1fbWVkaWFTdHJlYW1TcmMuZ2V0KCksIHRyYWNrLnR5cGUoKSk7CisgICAgfQorCitw
cml2YXRlOgorICAgIEdSZWZQdHI8V2ViS2l0TWVkaWFTdHJlYW1TcmM+IG1fbWVkaWFTdHJlYW1T
cmM7Cit9OworCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TWVkaWFTdHJlYW1TcmNDbGFzcyBXZWJL
aXRNZWRpYVN0cmVhbVNyY0NsYXNzOwogc3RydWN0IF9XZWJLaXRNZWRpYVN0cmVhbVNyYyB7CiAg
ICAgR3N0QmluIHBhcmVudF9pbnN0YW5jZTsKQEAgLTE1Myw3ICsxNzksOCBAQCBzdHJ1Y3QgX1dl
YktpdE1lZGlhU3RyZWFtU3JjIHsKICAgICBHc3RFbGVtZW50KiB2aWRlb1NyYzsKICAgICBHc3RD
bG9ja1RpbWUgZmlyc3RGcmFtZVB0czsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXRNZWRp
YVN0cmVhbVRyYWNrT2JzZXJ2ZXI+IG9ic2VydmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJL
aXRNZWRpYVN0cmVhbVRyYWNrT2JzZXJ2ZXI+IG1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlcjsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0TWVkaWFTdHJlYW1PYnNlcnZlcj4gbWVkaWFTdHJlYW1P
YnNlcnZlcjsKICAgICB2b2xhdGlsZSBnaW50IG5wYWRzOwogICAgIGd1bG9uZyBwcm9iZWlkOwog
ICAgIFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+IHN0cmVhbTsKQEAgLTI2Niw4ICsyOTMsMTMg
QEAgc3RhdGljIHZvaWQgd2Via2l0TWVkaWFTdHJlYW1TcmNGaW5hbGl6ZShHT2JqZWN0KiBvYmpl
Y3QpCiAgICAgV2ViS2l0TWVkaWFTdHJlYW1TcmMqIHNlbGYgPSBXRUJLSVRfTUVESUFfU1RSRUFN
X1NSQyhvYmplY3QpOwogCiAgICAgR1NUX09CSkVDVF9MT0NLKHNlbGYpOwotICAgIGZvciAoYXV0
byYgdHJhY2sgOiBzZWxmLT5zdHJlYW0tPnRyYWNrcygpKQotICAgICAgICB0cmFjay0+cmVtb3Zl
T2JzZXJ2ZXIoKnNlbGYtPm9ic2VydmVyLmdldCgpKTsKKyAgICBpZiAoc2VsZi0+c3RyZWFtKSB7
CisgICAgICAgIGZvciAoYXV0byYgdHJhY2sgOiBzZWxmLT5zdHJlYW0tPnRyYWNrcygpKQorICAg
ICAgICAgICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKCpzZWxmLT5tZWRpYVN0cmVhbVRyYWNrT2Jz
ZXJ2ZXIuZ2V0KCkpOworCisgICAgICAgIHNlbGYtPnN0cmVhbS0+cmVtb3ZlT2JzZXJ2ZXIoKnNl
bGYtPm1lZGlhU3RyZWFtT2JzZXJ2ZXIpOworICAgICAgICBzZWxmLT5zdHJlYW0gPSBudWxscHRy
OworICAgIH0KICAgICBHU1RfT0JKRUNUX1VOTE9DSyhzZWxmKTsKIAogICAgIGdfY2xlYXJfcG9p
bnRlcigmc2VsZi0+dXJpLCBnX2ZyZWUpOwpAQCAtMjgzLDcgKzMxNSw3IEBAIHN0YXRpYyBHc3RT
dGF0ZUNoYW5nZVJldHVybiB3ZWJraXRNZWRpYVN0cmVhbVNyY0NoYW5nZVN0YXRlKEdzdEVsZW1l
bnQqIGVsZW1lbnQsCiAKICAgICAgICAgR1NUX09CSkVDVF9MT0NLKHNlbGYpOwogICAgICAgICBm
b3IgKGF1dG8mIHRyYWNrIDogc2VsZi0+c3RyZWFtLT50cmFja3MoKSkKLSAgICAgICAgICAgIHRy
YWNrLT5yZW1vdmVPYnNlcnZlcigqc2VsZi0+b2JzZXJ2ZXIuZ2V0KCkpOworICAgICAgICAgICAg
dHJhY2stPnJlbW92ZU9ic2VydmVyKCpzZWxmLT5tZWRpYVN0cmVhbVRyYWNrT2JzZXJ2ZXIuZ2V0
KCkpOwogICAgICAgICBHU1RfT0JKRUNUX1VOTE9DSyhzZWxmKTsKICAgICB9CiAKQEAgLTMxOSw3
ICszNTEsOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfbWVkaWFfc3RyZWFtX3NyY19jbGFzc19pbml0
KFdlYktpdE1lZGlhU3RyZWFtU3JjQ2xhc3MqIGtsYXNzKQogCiBzdGF0aWMgdm9pZCB3ZWJraXRf
bWVkaWFfc3RyZWFtX3NyY19pbml0KFdlYktpdE1lZGlhU3RyZWFtU3JjKiBzZWxmKQogewotICAg
IHNlbGYtPm9ic2VydmVyID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJLaXRNZWRpYVN0cmVhbVRyYWNr
T2JzZXJ2ZXI+KHNlbGYpOworICAgIHNlbGYtPm1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlciA9IHN0
ZDo6bWFrZV91bmlxdWU8V2ViS2l0TWVkaWFTdHJlYW1UcmFja09ic2VydmVyPihzZWxmKTsKKyAg
ICBzZWxmLT5tZWRpYVN0cmVhbU9ic2VydmVyID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJLaXRNZWRp
YVN0cmVhbU9ic2VydmVyPihzZWxmKTsKICAgICBzZWxmLT5mbG93Q29tYmluZXIgPSBnc3RfZmxv
d19jb21iaW5lcl9uZXcoKTsKICAgICBzZWxmLT5maXJzdEF1ZGlvQnVmZmVyUHRzID0gR1NUX0NM
T0NLX1RJTUVfTk9ORTsKICAgICBzZWxmLT5maXJzdEZyYW1lUHRzID0gR1NUX0NMT0NLX1RJTUVf
Tk9ORTsKQEAgLTQyMCw3ICs0NTMsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0TWVkaWFTdHJl
YW1TcmNTZXR1cFNyYyhXZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwKICAgICAgICAgfSk7CiAK
ICAgICBpZiAob2JzZXJ2ZV90cmFjaykKLSAgICAgICAgdHJhY2stPmFkZE9ic2VydmVyKCpzZWxm
LT5vYnNlcnZlci5nZXQoKSk7CisgICAgICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqc2VsZi0+bWVk
aWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKIAogICAgIGdzdF9lbGVtZW50X3N5bmNfc3Rh
dGVfd2l0aF9wYXJlbnQoZWxlbWVudCk7CiAgICAgcmV0dXJuIFRSVUU7CkBAIC00NTEsMzcgKzQ4
NCw1NCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRNZWRpYVN0cmVhbVNyY1Bvc3RTdHJlYW1Db2xsZWN0
aW9uKFdlYktpdE1lZGlhU3RyZWFtU3JjKiBzZWxmLAogICAgICAgICBnc3RfbWVzc2FnZV9uZXdf
c3RyZWFtX2NvbGxlY3Rpb24oR1NUX09CSkVDVChzZWxmKSwgc2VsZi0+c3RyZWFtQ29sbGVjdGlv
bi5nZXQoKSkpOwogfQogCi1nYm9vbGVhbiB3ZWJraXRNZWRpYVN0cmVhbVNyY1NldFN0cmVhbShX
ZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwgTWVkaWFTdHJlYW1Qcml2YXRlKiBzdHJlYW0pCitz
dGF0aWMgdm9pZAord2Via2l0TWVkaWFTdHJlYW1TcmNBZGRUcmFjayhXZWJLaXRNZWRpYVN0cmVh
bVNyYyogc2VsZiwgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIHRyYWNrKQogewotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19NRURJQV9TVFJFQU1fU1JDKHNlbGYpLCBGQUxTRSk7
Ci0KLSAgICBpZiAoc2VsZi0+YXVkaW9TcmMpIHsKLSAgICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0
YXRlKHNlbGYtPmF1ZGlvU3JjLCBHU1RfU1RBVEVfTlVMTCk7Ci0gICAgICAgIGdzdF9iaW5fcmVt
b3ZlKEdTVF9CSU4oc2VsZiksIHNlbGYtPmF1ZGlvU3JjKTsKLSAgICAgICAgc2VsZi0+YXVkaW9T
cmMgPSBudWxscHRyOworICAgIGlmICh0cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OkF1ZGlvKSB7CisgICAgICAgIHdlYmtpdE1lZGlhU3RyZWFtU3JjU2V0dXBBcHBT
cmMoc2VsZiwgdHJhY2ssICZzZWxmLT5hdWRpb1NyYywKKyAgICAgICAgICAgICZhdWRpb1NyY1Rl
bXBsYXRlKTsKKyAgICB9IGVsc2UgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6VmlkZW8pIHsKKyAgICAgICAgd2Via2l0TWVkaWFTdHJlYW1TcmNTZXR1cEFw
cFNyYyhzZWxmLCB0cmFjaywgJnNlbGYtPnZpZGVvU3JjLAorICAgICAgICAgICAgJnZpZGVvU3Jj
VGVtcGxhdGUpOworICAgIH0gZWxzZSB7CisgICAgICAgIEdTVF9JTkZPKCJVbnN1cG9ydGVkIHRy
YWNrIHR5cGU6ICVkIiwgKGdpbnQpIHRyYWNrLT50eXBlKCkpOwogICAgIH0KK30KIAotICAgIGlm
IChzZWxmLT52aWRlb1NyYykgewotICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3RhdGUoc2VsZi0+
dmlkZW9TcmMsIEdTVF9TVEFURV9OVUxMKTsKLSAgICAgICAgZ3N0X2Jpbl9yZW1vdmUoR1NUX0JJ
TihzZWxmKSwgc2VsZi0+dmlkZW9TcmMpOwotICAgICAgICBzZWxmLT52aWRlb1NyYyA9IG51bGxw
dHI7CitzdGF0aWMgdm9pZAord2Via2l0TWVkaWFTdHJlYW1TcmNSZW1vdmVUcmFja0J5VHlwZShX
ZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0cmFj
a1R5cGUpCit7CisgICAgaWYgKHRyYWNrVHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpBdWRpbykgeworICAgICAgICBpZiAoc2VsZi0+YXVkaW9TcmMpIHsKKyAgICAgICAgICAgIGdz
dF9lbGVtZW50X3NldF9zdGF0ZShzZWxmLT5hdWRpb1NyYywgR1NUX1NUQVRFX05VTEwpOworICAg
ICAgICAgICAgZ3N0X2Jpbl9yZW1vdmUoR1NUX0JJTihzZWxmKSwgc2VsZi0+YXVkaW9TcmMpOwor
ICAgICAgICAgICAgc2VsZi0+YXVkaW9TcmMgPSBudWxscHRyOworICAgICAgICB9CisKKyAgICB9
IGVsc2UgaWYgKHRyYWNrVHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbykg
eworICAgICAgICBpZiAoc2VsZi0+dmlkZW9TcmMpIHsKKyAgICAgICAgICAgIGdzdF9lbGVtZW50
X3NldF9zdGF0ZShzZWxmLT52aWRlb1NyYywgR1NUX1NUQVRFX05VTEwpOworICAgICAgICAgICAg
Z3N0X2Jpbl9yZW1vdmUoR1NUX0JJTihzZWxmKSwgc2VsZi0+dmlkZW9TcmMpOworICAgICAgICAg
ICAgc2VsZi0+dmlkZW9TcmMgPSBudWxscHRyOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgR1NUX0lORk8oIlVuc3Vwb3J0ZWQgdHJhY2sgdHlwZTogJWQiLCAoZ2ludCkgdHJhY2tU
eXBlKTsKICAgICB9Cit9CisKK2dib29sZWFuIHdlYmtpdE1lZGlhU3RyZWFtU3JjU2V0U3RyZWFt
KFdlYktpdE1lZGlhU3RyZWFtU3JjKiBzZWxmLCBNZWRpYVN0cmVhbVByaXZhdGUqIHN0cmVhbSkK
K3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfTUVESUFfU1RSRUFNX1NSQyhz
ZWxmKSwgRkFMU0UpOworCisgICAgd2Via2l0TWVkaWFTdHJlYW1TcmNSZW1vdmVUcmFja0J5VHlw
ZShzZWxmLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyk7CisgICAgd2Via2l0TWVk
aWFTdHJlYW1TcmNSZW1vdmVUcmFja0J5VHlwZShzZWxmLCBSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlOjpWaWRlbyk7CiAKICAgICB3ZWJraXRNZWRpYVN0cmVhbVNyY1Bvc3RTdHJlYW1Db2xsZWN0
aW9uKHNlbGYsIHN0cmVhbSk7CiAKICAgICBzZWxmLT5zdHJlYW0gPSBzdHJlYW07Ci0gICAgZm9y
IChhdXRvJiB0cmFjayA6IHN0cmVhbS0+dHJhY2tzKCkpIHsKLSAgICAgICAgaWYgKHRyYWNrLT50
eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pIHsKLSAgICAgICAgICAg
IHdlYmtpdE1lZGlhU3RyZWFtU3JjU2V0dXBBcHBTcmMoc2VsZiwgdHJhY2suZ2V0KCksICZzZWxm
LT5hdWRpb1NyYywKLSAgICAgICAgICAgICAgICAmYXVkaW9TcmNUZW1wbGF0ZSk7Ci0gICAgICAg
IH0gZWxzZSBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpW
aWRlbykgewotICAgICAgICAgICAgd2Via2l0TWVkaWFTdHJlYW1TcmNTZXR1cEFwcFNyYyhzZWxm
LCB0cmFjay5nZXQoKSwgJnNlbGYtPnZpZGVvU3JjLAotICAgICAgICAgICAgICAgICZ2aWRlb1Ny
Y1RlbXBsYXRlKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEdTVF9JTkZPKCJVbnN1
cG9ydGVkIHRyYWNrIHR5cGU6ICVkIiwgKGdpbnQpIHRyYWNrLT50eXBlKCkpOwotICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICB9CisgICAgc2VsZi0+c3RyZWFtLT5hZGRPYnNl
cnZlcigqc2VsZi0+bWVkaWFTdHJlYW1PYnNlcnZlci5nZXQoKSk7CisgICAgZm9yIChhdXRvJiB0
cmFjayA6IHN0cmVhbS0+dHJhY2tzKCkpCisgICAgICAgIHdlYmtpdE1lZGlhU3RyZWFtU3JjQWRk
VHJhY2soc2VsZiwgdHJhY2suZ2V0KCkpOwogCiAgICAgcmV0dXJuIFRSVUU7CiB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NjA5Yzc0YmRiNTZjOWJjYWU5ZjU1ZDAwNzYyZmY4YmI3MjQ4ZmMyZS4uOTk0MGQ4ODJiZGY4NzA0
NzY4NWU5ZGZjNTE2NWI2NzdjZDVkNWY3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4LTEx
LTEzICBUaGliYXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBb
R1N0cmVhbWVyXVtNZWRpYVN0cmVhbV0gSGFuZGxlIHRyYWNrIGFkZGl0aW9uIGFuZCByZW1vdmFs
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE1OTkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tdmlkZW8tZWxlbWVudC1yZW1vdmUtdHJhY2stZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZp
ZGVvLWVsZW1lbnQtcmVtb3ZlLXRyYWNrLmh0bWw6IEFkZGVkLgorCiAyMDE4LTExLTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IHNldHRpbmcg
c3RyZWFtIGlkcyB3aGVuIGFkZGluZyBhIHRyYW5zY2VpdmVyCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtcmVtb3ZlLXRy
YWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0tdmlkZW8tZWxlbWVudC1yZW1vdmUtdHJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYw
NmZhNTRmNTU4Yzc4NDVkODBkNmY1N2UzNDIzYmJiY2YyNTUzODAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQt
cmVtb3ZlLXRyYWNrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ3IEBACitUZXN0cyBjaGVja2lu
ZyByZW1vdmluZyBNZWRpYVN0cmVhbSB0cmFjayBhcHBsaWVzIHRvIHRoZSB2aWRlbyBlbGVtZW50
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCisKKyoqKiogY2FsbGluZyBtZWRp
YURldmljZXMuZ2V0VXNlck1lZGlhKCkgKioqKgorUEFTUyBtZWRpYURldmljZXMuZ2V0VXNlck1l
ZGlhIHN1Y2NlZWRlZC4KKworKioqKiBzZXR1cCB2aWRlbyBlbGVtZW50ICoqKioKK3ZpZGVvLnNy
Y09iamVjdCA9IG1lZGlhU3RyZWFtCitFdmVudCAnY2FucGxheScKKworKioqIHN0YXJ0IHBsYXli
YWNrICoqKioKK3ZpZGVvLnBsYXkoKQordmlkZW8ucGF1c2UoKQorCisqKioqIGNoZWNrIHZpZGVv
IGVsZW1lbnQgKioqKgorCisqKioqIGNoZWNrIHZpZGVvIHRyYWNrcyAqKioqCitQQVNTIHZpZGVv
LnZpZGVvVHJhY2tzLmxlbmd0aCBpcyAxCitQQVNTIHZpZGVvLnZpZGVvVHJhY2tzWzBdLmlkIGlz
IG1lZGlhU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uaWQKKworKioqKiBjaGVjayBhdWRpbyB0
cmFja3MgKioqKgorUEFTUyB2aWRlby5hdWRpb1RyYWNrcy5sZW5ndGggaXMgMQorUEFTUyB2aWRl
by5hdWRpb1RyYWNrc1swXS5pZCBpcyBtZWRpYVN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdLmlk
CisKKyoqKiogcmVtb3ZpbmcgYXVkaW8gdHJhY2sgKioqKgorCisqKioqIGNoZWNrIHZpZGVvIGVs
ZW1lbnQgKioqKgorUEFTUyB2aWRlby52aWRlb1dpZHRoIGlzIG1lZGlhU3RyZWFtLmdldFZpZGVv
VHJhY2tzKClbMF0uZ2V0U2V0dGluZ3MoKS53aWR0aAorUEFTUyB2aWRlby52aWRlb0hlaWdodCBp
cyBtZWRpYVN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLmdldFNldHRpbmdzKCkuaGVpZ2h0CisK
KyoqKiogY2hlY2sgdmlkZW8gdHJhY2tzICoqKioKK1BBU1MgdmlkZW8udmlkZW9UcmFja3MubGVu
Z3RoIGlzIDEKK1BBU1MgdmlkZW8udmlkZW9UcmFja3NbMF0uaWQgaXMgbWVkaWFTdHJlYW0uZ2V0
VmlkZW9UcmFja3MoKVswXS5pZAorUEFTUyB2aWRlby52aWRlb1RyYWNrc1swXS5sYW5ndWFnZSBp
cyAiIgorUEFTUyB2aWRlby52aWRlb1RyYWNrc1swXS5raW5kIGlzICJtYWluIgorCisqKioqIGNo
ZWNrIG5vIGF1ZGlvIHRyYWNrICoqKioKK1BBU1MgdmlkZW8uYXVkaW9UcmFja3MubGVuZ3RoIGlz
IDAKK1BBU1MgbWVkaWFTdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgMAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tdmlkZW8tZWxlbWVudC1y
ZW1vdmUtdHJhY2suaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0tdmlkZW8tZWxlbWVudC1yZW1vdmUtdHJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzIxZTcyZGI1
MjkxMzUxZmZiODY1ZTFhMjdkN2YyYmRmNTY2NzkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXJlbW92ZS10
cmFjay5odG1sCkBAIC0wLDAgKzEsMTEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQ+CisgICAgICAgICAgICB2YXIgdmlkZW87CisgICAgICAgICAgICB2YXIgbWVkaWFTdHJl
YW07CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGxvZ0V2ZW50KGVsZW1lbnQsIGV2ZW50TmFtZSwg
ZnVuYykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBfZXZlbnRDYWxs
YmFjayhldnQpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpZiAod2lu
ZG93Lndhc0ZpbmlzaEpTVGVzdENhbGxlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhgRXZlbnQgPGVtPicke2V2dC50eXBlfSc8
L2VtPmApOworICAgICAgICAgICAgICAgICAgICBpZiAoZnVuYykKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGZ1bmMoZXZ0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgX2V2ZW50Q2FsbGJhY2ssIHRydWUpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBjaGVja1ZpZGVvRWxlbWVudCgp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXZhbEFuZExvZygidmlkZW8ucGF1c2Uo
KSIpOworCisgICAgICAgICAgICAgICAgZGVidWcoIjxicj4qKioqIGNoZWNrIHZpZGVvIGVsZW1l
bnQgKioqKiIpOworICAgICAgICAgICAgICAgIGRlYnVnKCI8YnI+KioqKiBjaGVjayB2aWRlbyB0
cmFja3MgKioqKiIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCd2aWRlby52aWRlb1RyYWNr
cy5sZW5ndGgnLCAnMScpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCd2aWRlby52aWRlb1Ry
YWNrc1swXS5pZCcsICdtZWRpYVN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLmlkJyk7CisKKyAg
ICAgICAgICAgICAgICBkZWJ1ZygiPGJyPioqKiogY2hlY2sgYXVkaW8gdHJhY2tzICoqKioiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgndmlkZW8uYXVkaW9UcmFja3MubGVuZ3RoJywgJzEn
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgndmlkZW8uYXVkaW9UcmFja3NbMF0uaWQnLCAn
bWVkaWFTdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXS5pZCcpOworCisgICAgICAgICAgICAgICAg
c2V0VGltZW91dChyZW1vdmVBdWRpb1RyYWNrLCAxMDApOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBmdW5jdGlvbiBjaGVja1ZpZGVvRWxlbWVudDIoKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIGRlYnVnKCI8YnI+KioqKiBjaGVjayB2aWRlbyBlbGVtZW50ICoqKioiKTsK
KyAgICAgICAgICAgICAgICBzaG91bGRCZSgndmlkZW8udmlkZW9XaWR0aCcsICdtZWRpYVN0cmVh
bS5nZXRWaWRlb1RyYWNrcygpWzBdLmdldFNldHRpbmdzKCkud2lkdGgnKTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZSgndmlkZW8udmlkZW9IZWlnaHQnLCAnbWVkaWFTdHJlYW0uZ2V0VmlkZW9U
cmFja3MoKVswXS5nZXRTZXR0aW5ncygpLmhlaWdodCcpOworCisgICAgICAgICAgICAgICAgZGVi
dWcoIjxicj4qKioqIGNoZWNrIHZpZGVvIHRyYWNrcyAqKioqIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoJ3ZpZGVvLnZpZGVvVHJhY2tzLmxlbmd0aCcsICcxJyk7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmlkJywgJ21lZGlhU3RyZWFtLmdldFZp
ZGVvVHJhY2tzKClbMF0uaWQnKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmxhbmd1YWdlJywgJycpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygndmlkZW8udmlkZW9UcmFja3NbMF0ua2luZCcsICdtYWlu
Jyk7CisKKyAgICAgICAgICAgICAgICBkZWJ1ZygiPGJyPioqKiogY2hlY2sgbm8gYXVkaW8gdHJh
Y2sgKioqKiIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCd2aWRlby5hdWRpb1RyYWNrcy5s
ZW5ndGgnLCAnMCcpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCdtZWRpYVN0cmVhbS5nZXRB
dWRpb1RyYWNrcygpLmxlbmd0aCcsICcwJyk7CisKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gY2FucGxheSgpCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZGVidWcoIjxicj4qKiogc3RhcnQgcGxheWJh
Y2sgKioqKiIpOworICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInZpZGVvLnBsYXkoKSIpOwor
ICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2tWaWRlb0VsZW1lbnQsIDEwMCk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHJlbW92ZUF1ZGlvVHJhY2soKSB7Cisg
ICAgICAgICAgICAgICAgdHJhY2sgPSBtZWRpYVN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOwor
ICAgICAgICAgICAgICAgIGRlYnVnKCI8YnI+KioqKiByZW1vdmluZyBhdWRpbyB0cmFjayAqKioq
Iik7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgbWVkaWFTdHJl
YW0ucmVtb3ZlVHJhY2sodHJhY2spOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGV4Y2VwdGlv
bikgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJyZW1vdmVUcmFjayB0aHJldyBh
biBleGNlcHRpb24uIik7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGNoZWNrVmlkZW9FbGVt
ZW50MiwgMTAwKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc2V0dXBT
dHJlYW0oc3RyZWFtKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG1lZGlhU3RyZWFt
ID0gc3RyZWFtOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ21lZGlhRGV2aWNlcy5nZXRV
c2VyTWVkaWEgc3VjY2VlZGVkLicpOworCisgICAgICAgICAgICAgICAgZGVidWcoIjxicj4qKioq
IHNldHVwIHZpZGVvIGVsZW1lbnQgKioqKiIpOworICAgICAgICAgICAgICAgIGV2YWxBbmRMb2co
InZpZGVvLnNyY09iamVjdCA9IG1lZGlhU3RyZWFtIik7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgY2hlY2tpbmcgcmVtb3ZpbmcgTWVkaWFTdHJlYW0gdHJhY2sgYXBw
bGllcyB0byB0aGUgdmlkZW8gZWxlbWVudC4iKTsKKyAgICAgICAgICAgICAgICB2aWRlbyA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3ZpZGVvJyk7CisgICAgICAgICAgICAgICAgbG9nRXZlbnQo
dmlkZW8sICdjYW5wbGF5JywgY2FucGxheSkKKworICAgICAgICAgICAgICAgIGRlYnVnKCI8YnI+
KioqKiBjYWxsaW5nIG1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoKSAqKioqIik7CisgICAgICAg
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7CisgICAgICAgICAgICAgICAgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoIHt2aWRlbzogdHJ1ZSwgYXVkaW86IHRy
dWV9ICkKKyAgICAgICAgICAgICAgICAgICAgLnRoZW4oc2V0dXBTdHJlYW0pCisgICAgICAgICAg
ICAgICAgICAgIC5jYXRjaChmdW5jdGlvbihyZWFzb24pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGRlYnVnKGBTdHJlYW0gZ2VuZXJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogJHtyZWFzb259
YCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgICAgICB3aW5kb3cuc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAg
IDxib2R5IG9ubG9hZD0ic3RhcnQoKSI+CisgICAgICAgIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorICAgICAgICA8dmlkZW8gY29udHJvbHMgIHdpZHRoPSI2ODAiIGhlaWdodD0iMzYwIj48L3Zp
ZGVvPgorICAgICAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgIDwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354922</attachid>
            <date>2018-11-15 05:29:24 -0800</date>
            <delta_ts>2018-11-16 01:57:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191599-20181115102923.patch</filename>
            <type>text/plain</type>
            <size>17005</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODlkZjY4OTAxZTE3Yjg4
MWU2MDRkMTg0ZjdhMzlkNmQ2NDYxMDRiOS4uOTU1ZWY3YmIxYTViYTc3NDBlMzhhMTQ3MzIzNzE3
MGRiOTYzMTQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTExLTEzICBUaGli
YXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XVtNZWRpYVN0cmVhbV0gSGFuZGxlIHRyYWNrIGFkZGl0aW9uIGFuZCByZW1vdmFsCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE1OTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtcmVtb3ZlLXRyYWNrLmh0bWwKKworICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYVN0cmVh
bVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNZWRpYVN0cmVhbU9ic2VydmVy
Ojp+V2ViS2l0TWVkaWFTdHJlYW1PYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRN
ZWRpYVN0cmVhbU9ic2VydmVyOjpXZWJLaXRNZWRpYVN0cmVhbU9ic2VydmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OndlYmtpdE1lZGlhU3RyZWFtU3JjRmluYWxpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6d2Via2l0TWVkaWFTdHJlYW1TcmNDaGFuZ2VTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjp3
ZWJraXRfbWVkaWFfc3RyZWFtX3NyY19pbml0KToKKyAgICAgICAgKFdlYkNvcmU6OndlYmtpdE1l
ZGlhU3RyZWFtU3JjU2V0dXBTcmMpOgorICAgICAgICAoV2ViQ29yZTo6d2Via2l0TWVkaWFTdHJl
YW1TcmNBZGRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjp3ZWJraXRNZWRpYVN0cmVhbVNyY1Jl
bW92ZVRyYWNrQnlUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OndlYmtpdE1lZGlhU3RyZWFtU3Jj
U2V0U3RyZWFtKToKKwogMjAxOC0xMS0xMyAgVGhpYmF1bHQgU2F1bmllciAgPHRzYXVuaWVyQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bTWVkaWFTdHJlYW1dIEhhbmRsZSB0cmFj
ayBhZGRpdGlvbiBhbmQgcmVtb3ZhbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJN
ZWRpYVN0cmVhbVNvdXJjZS5jcHAKaW5kZXggMDlhNDNlNjBjNGM0YmY2MzA5MTg0MmE4NjY5NmY5
ZTI1MDFiNjQ4Zi4uZDFmYjQ4YmMxMTgyYWFiMGEzYzcwNWVmOTYwOWVjMmM4ZGM2M2RmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dT
dHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3BwCkBA
IC00MSw2ICs0MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyB2b2lkIHdlYmtpdE1l
ZGlhU3RyZWFtU3JjUHVzaFZpZGVvU2FtcGxlKFdlYktpdE1lZGlhU3RyZWFtU3JjKiBzZWxmLCBH
c3RTYW1wbGUqIGdzdHNhbXBsZSk7CiBzdGF0aWMgdm9pZCB3ZWJraXRNZWRpYVN0cmVhbVNyY1B1
c2hBdWRpb1NhbXBsZShXZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwgR3N0U2FtcGxlKiBnc3Rz
YW1wbGUpOwogc3RhdGljIHZvaWQgd2Via2l0TWVkaWFTdHJlYW1TcmNUcmFja0VuZGVkKFdlYktp
dE1lZGlhU3RyZWFtU3JjKiBzZWxmLCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpOworc3RhdGlj
IHZvaWQgd2Via2l0TWVkaWFTdHJlYW1TcmNBZGRUcmFjayhXZWJLaXRNZWRpYVN0cmVhbVNyYyog
c2VsZiwgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqKTsKK3N0YXRpYyB2b2lkIHdlYmtpdE1lZGlh
U3RyZWFtU3JjUmVtb3ZlVHJhY2tCeVR5cGUoV2ViS2l0TWVkaWFTdHJlYW1TcmMqIHNlbGYsIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHJhY2tUeXBlKTsKIAogc3RhdGljIEdzdFN0YXRpY1Bh
ZFRlbXBsYXRlIHZpZGVvU3JjVGVtcGxhdGUgPSBHU1RfU1RBVElDX1BBRF9URU1QTEFURSgidmlk
ZW9fc3JjIiwKICAgICBHU1RfUEFEX1NSQywKQEAgLTE0Miw2ICsxNDQsMzAgQEAgcHJpdmF0ZToK
ICAgICBXZWJLaXRNZWRpYVN0cmVhbVNyYyogbV9tZWRpYVN0cmVhbVNyYzsKIH07CiAKK2NsYXNz
IFdlYktpdE1lZGlhU3RyZWFtT2JzZXJ2ZXIKKyAgICA6IHB1YmxpYyBNZWRpYVN0cmVhbVByaXZh
dGU6Ok9ic2VydmVyIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJLaXRNZWRpYVN0cmVhbU9i
c2VydmVyKCkgeyB9OworICAgIFdlYktpdE1lZGlhU3RyZWFtT2JzZXJ2ZXIoV2ViS2l0TWVkaWFT
dHJlYW1TcmMqIHNyYykKKyAgICAgICAgOiBtX21lZGlhU3RyZWFtU3JjKHNyYykgeyB9CisKKyAg
ICB2b2lkIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKSBmaW5hbCB7IEdTVF9ERUJVR19PQkpFQ1Qo
bV9tZWRpYVN0cmVhbVNyYy5nZXQoKSwgInJlbmVnb3RpYXRpb24gc2hvdWxkIGhhcHBlbiIpOyB9
CisgICAgdm9pZCBhY3RpdmVTdGF0dXNDaGFuZ2VkKCkgZmluYWwgeyB9CisKKyAgICB2b2lkIGRp
ZEFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaykgZmluYWwKKyAgICB7Cisg
ICAgICAgIHdlYmtpdE1lZGlhU3RyZWFtU3JjQWRkVHJhY2sobV9tZWRpYVN0cmVhbVNyYy5nZXQo
KSwgJnRyYWNrKTsKKyAgICB9CisKKyAgICB2b2lkIGRpZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJiB0cmFjaykgZmluYWwKKyAgICB7CisgICAgICAgIHdlYmtpdE1lZGlhU3Ry
ZWFtU3JjUmVtb3ZlVHJhY2tCeVR5cGUobV9tZWRpYVN0cmVhbVNyYy5nZXQoKSwgdHJhY2sudHlw
ZSgpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgR1JlZlB0cjxXZWJLaXRNZWRpYVN0cmVhbVNy
Yz4gbV9tZWRpYVN0cmVhbVNyYzsKK307CisKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRNZWRpYVN0
cmVhbVNyY0NsYXNzIFdlYktpdE1lZGlhU3RyZWFtU3JjQ2xhc3M7CiBzdHJ1Y3QgX1dlYktpdE1l
ZGlhU3RyZWFtU3JjIHsKICAgICBHc3RCaW4gcGFyZW50X2luc3RhbmNlOwpAQCAtMTUzLDcgKzE3
OSw4IEBAIHN0cnVjdCBfV2ViS2l0TWVkaWFTdHJlYW1TcmMgewogICAgIEdzdEVsZW1lbnQqIHZp
ZGVvU3JjOwogICAgIEdzdENsb2NrVGltZSBmaXJzdEZyYW1lUHRzOwogCi0gICAgc3RkOjp1bmlx
dWVfcHRyPFdlYktpdE1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlcj4gb2JzZXJ2ZXI7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdlYktpdE1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlcj4gbWVkaWFTdHJlYW1U
cmFja09ic2VydmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXRNZWRpYVN0cmVhbU9ic2Vy
dmVyPiBtZWRpYVN0cmVhbU9ic2VydmVyOwogICAgIHZvbGF0aWxlIGdpbnQgbnBhZHM7CiAgICAg
Z3Vsb25nIHByb2JlaWQ7CiAgICAgUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gc3RyZWFtOwpA
QCAtMjY2LDggKzI5MywxMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRNZWRpYVN0cmVhbVNyY0ZpbmFs
aXplKEdPYmplY3QqIG9iamVjdCkKICAgICBXZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiA9IFdF
QktJVF9NRURJQV9TVFJFQU1fU1JDKG9iamVjdCk7CiAKICAgICBHU1RfT0JKRUNUX0xPQ0soc2Vs
Zik7Ci0gICAgZm9yIChhdXRvJiB0cmFjayA6IHNlbGYtPnN0cmVhbS0+dHJhY2tzKCkpCi0gICAg
ICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZlcigqc2VsZi0+b2JzZXJ2ZXIuZ2V0KCkpOworICAgIGlm
IChzZWxmLT5zdHJlYW0pIHsKKyAgICAgICAgZm9yIChhdXRvJiB0cmFjayA6IHNlbGYtPnN0cmVh
bS0+dHJhY2tzKCkpCisgICAgICAgICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIoKnNlbGYtPm1l
ZGlhU3RyZWFtVHJhY2tPYnNlcnZlci5nZXQoKSk7CisKKyAgICAgICAgc2VsZi0+c3RyZWFtLT5y
ZW1vdmVPYnNlcnZlcigqc2VsZi0+bWVkaWFTdHJlYW1PYnNlcnZlcik7CisgICAgICAgIHNlbGYt
PnN0cmVhbSA9IG51bGxwdHI7CisgICAgfQogICAgIEdTVF9PQkpFQ1RfVU5MT0NLKHNlbGYpOwog
CiAgICAgZ19jbGVhcl9wb2ludGVyKCZzZWxmLT51cmksIGdfZnJlZSk7CkBAIC0yODMsNyArMzE1
LDcgQEAgc3RhdGljIEdzdFN0YXRlQ2hhbmdlUmV0dXJuIHdlYmtpdE1lZGlhU3RyZWFtU3JjQ2hh
bmdlU3RhdGUoR3N0RWxlbWVudCogZWxlbWVudCwKIAogICAgICAgICBHU1RfT0JKRUNUX0xPQ0so
c2VsZik7CiAgICAgICAgIGZvciAoYXV0byYgdHJhY2sgOiBzZWxmLT5zdHJlYW0tPnRyYWNrcygp
KQotICAgICAgICAgICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKCpzZWxmLT5vYnNlcnZlci5nZXQo
KSk7CisgICAgICAgICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFt
VHJhY2tPYnNlcnZlci5nZXQoKSk7CiAgICAgICAgIEdTVF9PQkpFQ1RfVU5MT0NLKHNlbGYpOwog
ICAgIH0KIApAQCAtMzE5LDcgKzM1MSw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9tZWRpYV9zdHJl
YW1fc3JjX2NsYXNzX2luaXQoV2ViS2l0TWVkaWFTdHJlYW1TcmNDbGFzcyoga2xhc3MpCiAKIHN0
YXRpYyB2b2lkIHdlYmtpdF9tZWRpYV9zdHJlYW1fc3JjX2luaXQoV2ViS2l0TWVkaWFTdHJlYW1T
cmMqIHNlbGYpCiB7Ci0gICAgc2VsZi0+b2JzZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYktp
dE1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlcj4oc2VsZik7CisgICAgc2VsZi0+bWVkaWFTdHJlYW1U
cmFja09ic2VydmVyID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJLaXRNZWRpYVN0cmVhbVRyYWNrT2Jz
ZXJ2ZXI+KHNlbGYpOworICAgIHNlbGYtPm1lZGlhU3RyZWFtT2JzZXJ2ZXIgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYktpdE1lZGlhU3RyZWFtT2JzZXJ2ZXI+KHNlbGYpOwogICAgIHNlbGYtPmZsb3dD
b21iaW5lciA9IGdzdF9mbG93X2NvbWJpbmVyX25ldygpOwogICAgIHNlbGYtPmZpcnN0QXVkaW9C
dWZmZXJQdHMgPSBHU1RfQ0xPQ0tfVElNRV9OT05FOwogICAgIHNlbGYtPmZpcnN0RnJhbWVQdHMg
PSBHU1RfQ0xPQ0tfVElNRV9OT05FOwpAQCAtNDIwLDcgKzQ1Myw3IEBAIHN0YXRpYyBnYm9vbGVh
biB3ZWJraXRNZWRpYVN0cmVhbVNyY1NldHVwU3JjKFdlYktpdE1lZGlhU3RyZWFtU3JjKiBzZWxm
LAogICAgICAgICB9KTsKIAogICAgIGlmIChvYnNlcnZlX3RyYWNrKQotICAgICAgICB0cmFjay0+
YWRkT2JzZXJ2ZXIoKnNlbGYtPm9ic2VydmVyLmdldCgpKTsKKyAgICAgICAgdHJhY2stPmFkZE9i
c2VydmVyKCpzZWxmLT5tZWRpYVN0cmVhbVRyYWNrT2JzZXJ2ZXIuZ2V0KCkpOwogCiAgICAgZ3N0
X2VsZW1lbnRfc3luY19zdGF0ZV93aXRoX3BhcmVudChlbGVtZW50KTsKICAgICByZXR1cm4gVFJV
RTsKQEAgLTQ1MSwzNyArNDg0LDQ4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdE1lZGlhU3RyZWFtU3Jj
UG9zdFN0cmVhbUNvbGxlY3Rpb24oV2ViS2l0TWVkaWFTdHJlYW1TcmMqIHNlbGYsCiAgICAgICAg
IGdzdF9tZXNzYWdlX25ld19zdHJlYW1fY29sbGVjdGlvbihHU1RfT0JKRUNUKHNlbGYpLCBzZWxm
LT5zdHJlYW1Db2xsZWN0aW9uLmdldCgpKSk7CiB9CiAKLWdib29sZWFuIHdlYmtpdE1lZGlhU3Ry
ZWFtU3JjU2V0U3RyZWFtKFdlYktpdE1lZGlhU3RyZWFtU3JjKiBzZWxmLCBNZWRpYVN0cmVhbVBy
aXZhdGUqIHN0cmVhbSkKK3N0YXRpYyB2b2lkIHdlYmtpdE1lZGlhU3RyZWFtU3JjQWRkVHJhY2so
V2ViS2l0TWVkaWFTdHJlYW1TcmMqIHNlbGYsIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiB0cmFj
aykKIHsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfTUVESUFfU1RSRUFNX1NS
QyhzZWxmKSwgRkFMU0UpOworICAgIGlmICh0cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6OkF1ZGlvKQorICAgICAgICB3ZWJraXRNZWRpYVN0cmVhbVNyY1NldHVwQXBw
U3JjKHNlbGYsIHRyYWNrLCAmc2VsZi0+YXVkaW9TcmMsICZhdWRpb1NyY1RlbXBsYXRlKTsKKyAg
ICBlbHNlIGlmICh0cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZp
ZGVvKQorICAgICAgICB3ZWJraXRNZWRpYVN0cmVhbVNyY1NldHVwQXBwU3JjKHNlbGYsIHRyYWNr
LCAmc2VsZi0+dmlkZW9TcmMsICZ2aWRlb1NyY1RlbXBsYXRlKTsKKyAgICBlbHNlCisgICAgICAg
IEdTVF9JTkZPKCJVbnN1cHBvcnRlZCB0cmFjayB0eXBlOiAlZCIsIChnaW50KSB0cmFjay0+dHlw
ZSgpKTsKK30KIAotICAgIGlmIChzZWxmLT5hdWRpb1NyYykgewotICAgICAgICBnc3RfZWxlbWVu
dF9zZXRfc3RhdGUoc2VsZi0+YXVkaW9TcmMsIEdTVF9TVEFURV9OVUxMKTsKLSAgICAgICAgZ3N0
X2Jpbl9yZW1vdmUoR1NUX0JJTihzZWxmKSwgc2VsZi0+YXVkaW9TcmMpOwotICAgICAgICBzZWxm
LT5hdWRpb1NyYyA9IG51bGxwdHI7Ci0gICAgfQorc3RhdGljIHZvaWQgd2Via2l0TWVkaWFTdHJl
YW1TcmNSZW1vdmVUcmFja0J5VHlwZShXZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZSB0cmFja1R5cGUpCit7CisgICAgaWYgKHRyYWNrVHlwZSA9PSBS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykgeworICAgICAgICBpZiAoc2VsZi0+YXVk
aW9TcmMpIHsKKyAgICAgICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShzZWxmLT5hdWRpb1Ny
YywgR1NUX1NUQVRFX05VTEwpOworICAgICAgICAgICAgZ3N0X2Jpbl9yZW1vdmUoR1NUX0JJTihz
ZWxmKSwgc2VsZi0+YXVkaW9TcmMpOworICAgICAgICAgICAgc2VsZi0+YXVkaW9TcmMgPSBudWxs
cHRyOworICAgICAgICB9CiAKLSAgICBpZiAoc2VsZi0+dmlkZW9TcmMpIHsKLSAgICAgICAgZ3N0
X2VsZW1lbnRfc2V0X3N0YXRlKHNlbGYtPnZpZGVvU3JjLCBHU1RfU1RBVEVfTlVMTCk7Ci0gICAg
ICAgIGdzdF9iaW5fcmVtb3ZlKEdTVF9CSU4oc2VsZiksIHNlbGYtPnZpZGVvU3JjKTsKLSAgICAg
ICAgc2VsZi0+dmlkZW9TcmMgPSBudWxscHRyOwotICAgIH0KKyAgICB9IGVsc2UgaWYgKHRyYWNr
VHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbykgeworICAgICAgICBpZiAo
c2VsZi0+dmlkZW9TcmMpIHsKKyAgICAgICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShzZWxm
LT52aWRlb1NyYywgR1NUX1NUQVRFX05VTEwpOworICAgICAgICAgICAgZ3N0X2Jpbl9yZW1vdmUo
R1NUX0JJTihzZWxmKSwgc2VsZi0+dmlkZW9TcmMpOworICAgICAgICAgICAgc2VsZi0+dmlkZW9T
cmMgPSBudWxscHRyOworICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIEdTVF9JTkZPKCJV
bnN1cHBvcnRlZCB0cmFjayB0eXBlOiAlZCIsIChnaW50KSB0cmFja1R5cGUpOworfQorCitib29s
IHdlYmtpdE1lZGlhU3RyZWFtU3JjU2V0U3RyZWFtKFdlYktpdE1lZGlhU3RyZWFtU3JjKiBzZWxm
LCBNZWRpYVN0cmVhbVByaXZhdGUqIHN0cmVhbSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfTUVESUFfU1RSRUFNX1NSQyhzZWxmKSwgRkFMU0UpOworCisgICAgd2Via2l0
TWVkaWFTdHJlYW1TcmNSZW1vdmVUcmFja0J5VHlwZShzZWxmLCBSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlOjpBdWRpbyk7CisgICAgd2Via2l0TWVkaWFTdHJlYW1TcmNSZW1vdmVUcmFja0J5VHlw
ZShzZWxmLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyk7CiAKICAgICB3ZWJraXRN
ZWRpYVN0cmVhbVNyY1Bvc3RTdHJlYW1Db2xsZWN0aW9uKHNlbGYsIHN0cmVhbSk7CiAKICAgICBz
ZWxmLT5zdHJlYW0gPSBzdHJlYW07Ci0gICAgZm9yIChhdXRvJiB0cmFjayA6IHN0cmVhbS0+dHJh
Y2tzKCkpIHsKLSAgICAgICAgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZTo6QXVkaW8pIHsKLSAgICAgICAgICAgIHdlYmtpdE1lZGlhU3RyZWFtU3JjU2V0dXBB
cHBTcmMoc2VsZiwgdHJhY2suZ2V0KCksICZzZWxmLT5hdWRpb1NyYywKLSAgICAgICAgICAgICAg
ICAmYXVkaW9TcmNUZW1wbGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAodHJhY2stPnR5cGUoKSA9
PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbykgewotICAgICAgICAgICAgd2Via2l0
TWVkaWFTdHJlYW1TcmNTZXR1cEFwcFNyYyhzZWxmLCB0cmFjay5nZXQoKSwgJnNlbGYtPnZpZGVv
U3JjLAotICAgICAgICAgICAgICAgICZ2aWRlb1NyY1RlbXBsYXRlKTsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIEdTVF9JTkZPKCJVbnN1cG9ydGVkIHRyYWNrIHR5cGU6ICVkIiwgKGdp
bnQpIHRyYWNrLT50eXBlKCkpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAg
ICB9CisgICAgc2VsZi0+c3RyZWFtLT5hZGRPYnNlcnZlcigqc2VsZi0+bWVkaWFTdHJlYW1PYnNl
cnZlci5nZXQoKSk7CisgICAgZm9yIChhdXRvJiB0cmFjayA6IHN0cmVhbS0+dHJhY2tzKCkpCisg
ICAgICAgIHdlYmtpdE1lZGlhU3RyZWFtU3JjQWRkVHJhY2soc2VsZiwgdHJhY2suZ2V0KCkpOwog
CiAgICAgcmV0dXJuIFRSVUU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRp
YVN0cmVhbVNvdXJjZS5oCmluZGV4IGViNDExMmU3MDdmNTdiZGUyMWJhNTE3NGI3YzMyMmExODE2
MWE0NzQuLjE1OTliYWU3ODYyNzE0YTdiYjlkMzQyY2U0YTMyMDgwMjY0MzQ2MzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFt
ZXJNZWRpYVN0cmVhbVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJjZS5oCkBAIC00MCw3ICs0
MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRNZWRpYVN0cmVhbVNyYyBXZWJLaXRNZWRpYVN0
cmVhbVNyYzsKICNkZWZpbmUgV0VCS0lUX0lTX01FRElBX1NUUkVBTV9TUkMobykgKEdfVFlQRV9D
SEVDS19JTlNUQU5DRV9UWVBFKChvKSwgV0VCS0lUX1RZUEVfTUVESUFfU1RSRUFNX1NSQykpCiAj
ZGVmaW5lIFdFQktJVF9UWVBFX01FRElBX1NUUkVBTV9TUkMgKHdlYmtpdF9tZWRpYV9zdHJlYW1f
c3JjX2dldF90eXBlKCkpCiBHVHlwZSB3ZWJraXRfbWVkaWFfc3RyZWFtX3NyY19nZXRfdHlwZSh2
b2lkKSBHX0dOVUNfQ09OU1Q7Ci1nYm9vbGVhbiB3ZWJraXRNZWRpYVN0cmVhbVNyY1NldFN0cmVh
bShXZWJLaXRNZWRpYVN0cmVhbVNyYyosIE1lZGlhU3RyZWFtUHJpdmF0ZSopOworYm9vbCB3ZWJr
aXRNZWRpYVN0cmVhbVNyY1NldFN0cmVhbShXZWJLaXRNZWRpYVN0cmVhbVNyYyosIE1lZGlhU3Ry
ZWFtUHJpdmF0ZSopOwogfSAvLyBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU8pICYm
IEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmNhNzA3ZDA2
YmFhYTYzODQ3ZWQ2YTU5OTJjNjE0NWI1NTZiYTAwOC4uYzNjMGYyMmY1NTMyYzgyNmM4YjUzNjI1
NDBlMWE4YTdkOWNhZTMzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4LTExLTEzICBUaGli
YXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XVtNZWRpYVN0cmVhbV0gSGFuZGxlIHRyYWNrIGFkZGl0aW9uIGFuZCByZW1vdmFsCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE1OTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW0tdmlkZW8tZWxlbWVudC1yZW1vdmUtdHJhY2stZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1l
bnQtcmVtb3ZlLXRyYWNrLmh0bWw6IEFkZGVkLgorCiAyMDE4LTExLTE0ICBBbGkgSnVtYSAgPGFq
dW1hQGNocm9taXVtLm9yZz4KIAogICAgICAgICBUcmFuc2Zvcm0gb2YgY29tcG9zaXRlZCBsYXll
ciBub3QgdXBkYXRlZCB3aGVuIGxheWVyIGFsc28gbmVlZHMgcmVwYWludApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXJl
bW92ZS10cmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtcmVtb3ZlLXRyYWNrLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42MDZmYTU0ZjU1OGM3ODQ1ZDgwZDZmNTdlMzQyM2JiYmNmMjU1MzgwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1l
bGVtZW50LXJlbW92ZS10cmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NyBAQAorVGVzdHMg
Y2hlY2tpbmcgcmVtb3ZpbmcgTWVkaWFTdHJlYW0gdHJhY2sgYXBwbGllcyB0byB0aGUgdmlkZW8g
ZWxlbWVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworCisqKioqIGNhbGxp
bmcgbWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSgpICoqKioKK1BBU1MgbWVkaWFEZXZpY2VzLmdl
dFVzZXJNZWRpYSBzdWNjZWVkZWQuCisKKyoqKiogc2V0dXAgdmlkZW8gZWxlbWVudCAqKioqCit2
aWRlby5zcmNPYmplY3QgPSBtZWRpYVN0cmVhbQorRXZlbnQgJ2NhbnBsYXknCisKKyoqKiBzdGFy
dCBwbGF5YmFjayAqKioqCit2aWRlby5wbGF5KCkKK3ZpZGVvLnBhdXNlKCkKKworKioqKiBjaGVj
ayB2aWRlbyBlbGVtZW50ICoqKioKKworKioqKiBjaGVjayB2aWRlbyB0cmFja3MgKioqKgorUEFT
UyB2aWRlby52aWRlb1RyYWNrcy5sZW5ndGggaXMgMQorUEFTUyB2aWRlby52aWRlb1RyYWNrc1sw
XS5pZCBpcyBtZWRpYVN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLmlkCisKKyoqKiogY2hlY2sg
YXVkaW8gdHJhY2tzICoqKioKK1BBU1MgdmlkZW8uYXVkaW9UcmFja3MubGVuZ3RoIGlzIDEKK1BB
U1MgdmlkZW8uYXVkaW9UcmFja3NbMF0uaWQgaXMgbWVkaWFTdHJlYW0uZ2V0QXVkaW9UcmFja3Mo
KVswXS5pZAorCisqKioqIHJlbW92aW5nIGF1ZGlvIHRyYWNrICoqKioKKworKioqKiBjaGVjayB2
aWRlbyBlbGVtZW50ICoqKioKK1BBU1MgdmlkZW8udmlkZW9XaWR0aCBpcyBtZWRpYVN0cmVhbS5n
ZXRWaWRlb1RyYWNrcygpWzBdLmdldFNldHRpbmdzKCkud2lkdGgKK1BBU1MgdmlkZW8udmlkZW9I
ZWlnaHQgaXMgbWVkaWFTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5nZXRTZXR0aW5ncygpLmhl
aWdodAorCisqKioqIGNoZWNrIHZpZGVvIHRyYWNrcyAqKioqCitQQVNTIHZpZGVvLnZpZGVvVHJh
Y2tzLmxlbmd0aCBpcyAxCitQQVNTIHZpZGVvLnZpZGVvVHJhY2tzWzBdLmlkIGlzIG1lZGlhU3Ry
ZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uaWQKK1BBU1MgdmlkZW8udmlkZW9UcmFja3NbMF0ubGFu
Z3VhZ2UgaXMgIiIKK1BBU1MgdmlkZW8udmlkZW9UcmFja3NbMF0ua2luZCBpcyAibWFpbiIKKwor
KioqKiBjaGVjayBubyBhdWRpbyB0cmFjayAqKioqCitQQVNTIHZpZGVvLmF1ZGlvVHJhY2tzLmxl
bmd0aCBpcyAwCitQQVNTIG1lZGlhU3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIDAK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVs
ZW1lbnQtcmVtb3ZlLXRyYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtcmVtb3ZlLXRyYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjMy
MWU3MmRiNTI5MTM1MWZmYjg2NWUxYTI3ZDdmMmJkZjU2Njc5MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tdmlkZW8tZWxlbWVudC1y
ZW1vdmUtdHJhY2suaHRtbApAQCAtMCwwICsxLDExMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0PgorICAgICAgICAgICAgdmFyIHZpZGVvOworICAgICAgICAgICAgdmFyIG1l
ZGlhU3RyZWFtOworCisgICAgICAgICAgICBmdW5jdGlvbiBsb2dFdmVudChlbGVtZW50LCBldmVu
dE5hbWUsIGZ1bmMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gX2V2
ZW50Q2FsbGJhY2soZXZ0KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKHdpbmRvdy53YXNGaW5pc2hKU1Rlc3RDYWxsZWQpCisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgICAgICAgICAgICAgZGVidWcoYEV2ZW50IDxlbT4nJHtldnQu
dHlwZX0nPC9lbT5gKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZ1bmMpCisgICAgICAgICAg
ICAgICAgICAgICAgICBmdW5jKGV2dCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIF9ldmVudENhbGxiYWNrLCB0
cnVlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2tWaWRlb0Vs
ZW1lbnQoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInZpZGVv
LnBhdXNlKCkiKTsKKworICAgICAgICAgICAgICAgIGRlYnVnKCI8YnI+KioqKiBjaGVjayB2aWRl
byBlbGVtZW50ICoqKioiKTsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiPGJyPioqKiogY2hlY2sg
dmlkZW8gdHJhY2tzICoqKioiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgndmlkZW8udmlk
ZW9UcmFja3MubGVuZ3RoJywgJzEnKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgndmlkZW8u
dmlkZW9UcmFja3NbMF0uaWQnLCAnbWVkaWFTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5pZCcp
OworCisgICAgICAgICAgICAgICAgZGVidWcoIjxicj4qKioqIGNoZWNrIGF1ZGlvIHRyYWNrcyAq
KioqIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3ZpZGVvLmF1ZGlvVHJhY2tzLmxlbmd0
aCcsICcxJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3ZpZGVvLmF1ZGlvVHJhY2tzWzBd
LmlkJywgJ21lZGlhU3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0uaWQnKTsKKworICAgICAgICAg
ICAgICAgIHNldFRpbWVvdXQocmVtb3ZlQXVkaW9UcmFjaywgMTAwKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2tWaWRlb0VsZW1lbnQyKCkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiPGJyPioqKiogY2hlY2sgdmlkZW8gZWxlbWVudCAq
KioqIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3ZpZGVvLnZpZGVvV2lkdGgnLCAnbWVk
aWFTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5nZXRTZXR0aW5ncygpLndpZHRoJyk7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoJ3ZpZGVvLnZpZGVvSGVpZ2h0JywgJ21lZGlhU3RyZWFtLmdl
dFZpZGVvVHJhY2tzKClbMF0uZ2V0U2V0dGluZ3MoKS5oZWlnaHQnKTsKKworICAgICAgICAgICAg
ICAgIGRlYnVnKCI8YnI+KioqKiBjaGVjayB2aWRlbyB0cmFja3MgKioqKiIpOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlKCd2aWRlby52aWRlb1RyYWNrcy5sZW5ndGgnLCAnMScpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlKCd2aWRlby52aWRlb1RyYWNrc1swXS5pZCcsICdtZWRpYVN0cmVh
bS5nZXRWaWRlb1RyYWNrcygpWzBdLmlkJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCd2aWRlby52aWRlb1RyYWNrc1swXS5sYW5ndWFnZScsICcnKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmtpbmQn
LCAnbWFpbicpOworCisgICAgICAgICAgICAgICAgZGVidWcoIjxicj4qKioqIGNoZWNrIG5vIGF1
ZGlvIHRyYWNrICoqKioiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgndmlkZW8uYXVkaW9U
cmFja3MubGVuZ3RoJywgJzAnKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgnbWVkaWFTdHJl
YW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMCcpOworCisgICAgICAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNhbnBs
YXkoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGRlYnVnKCI8YnI+KioqIHN0YXJ0
IHBsYXliYWNrICoqKioiKTsKKyAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJ2aWRlby5wbGF5
KCkiKTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGNoZWNrVmlkZW9FbGVtZW50LCAxMDAp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiByZW1vdmVBdWRpb1RyYWNr
KCkgeworICAgICAgICAgICAgICAgIHRyYWNrID0gbWVkaWFTdHJlYW0uZ2V0QXVkaW9UcmFja3Mo
KVswXTsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiPGJyPioqKiogcmVtb3ZpbmcgYXVkaW8gdHJh
Y2sgKioqKiIpOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIG1l
ZGlhU3RyZWFtLnJlbW92ZVRyYWNrKHRyYWNrKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChl
eGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgicmVtb3ZlVHJhY2sg
dGhyZXcgYW4gZXhjZXB0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChjaGVja1Zp
ZGVvRWxlbWVudDIsIDEwMCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9u
IHNldHVwU3RyZWFtKHN0cmVhbSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtZWRp
YVN0cmVhbSA9IHN0cmVhbTsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdtZWRpYURldmlj
ZXMuZ2V0VXNlck1lZGlhIHN1Y2NlZWRlZC4nKTsKKworICAgICAgICAgICAgICAgIGRlYnVnKCI8
YnI+KioqKiBzZXR1cCB2aWRlbyBlbGVtZW50ICoqKioiKTsKKyAgICAgICAgICAgICAgICBldmFs
QW5kTG9nKCJ2aWRlby5zcmNPYmplY3QgPSBtZWRpYVN0cmVhbSIpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmdW5jdGlvbiBzdGFydCgpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIGNoZWNraW5nIHJlbW92aW5nIE1lZGlhU3RyZWFtIHRy
YWNrIGFwcGxpZXMgdG8gdGhlIHZpZGVvIGVsZW1lbnQuIik7CisgICAgICAgICAgICAgICAgdmlk
ZW8gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd2aWRlbycpOworICAgICAgICAgICAgICAgIGxv
Z0V2ZW50KHZpZGVvLCAnY2FucGxheScsIGNhbnBsYXkpCisKKyAgICAgICAgICAgICAgICBkZWJ1
ZygiPGJyPioqKiogY2FsbGluZyBtZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKCkgKioqKiIpOwor
ICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworICAgICAgICAgICAg
ICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKCB7dmlkZW86IHRydWUsIGF1
ZGlvOiB0cnVlfSApCisgICAgICAgICAgICAgICAgICAgIC50aGVuKHNldHVwU3RyZWFtKQorICAg
ICAgICAgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24ocmVhc29uKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBkZWJ1ZyhgU3RyZWFtIGdlbmVyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6ICR7
cmVhc29ufWApOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICAgICAgd2luZG93
LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVh
ZD4KKyAgICA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAgICAgICA8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKyAgICAgICAgPHZpZGVvIGNvbnRyb2xzICB3aWR0aD0iNjgwIiBoZWlnaHQ9IjM2
MCI+PC92aWRlbz4KKyAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAg
ICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355036</attachid>
            <date>2018-11-16 01:57:10 -0800</date>
            <delta_ts>2018-11-16 05:23:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191599-20181116065708.patch</filename>
            <type>text/plain</type>
            <size>17429</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzU3ZWIyMzY5ZmRiMDBh
NWI5ZWZhMjI4ZDEzZDcxNDViMzlmZTQ5MC4uMWE5ODc4MzRhZjExMzI3YzcwYzQ0MTk0YzMyMDgy
M2U4N2VkYWU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTExLTEzICBUaGli
YXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XVtNZWRpYVN0cmVhbV0gSGFuZGxlIHRyYWNrIGFkZGl0aW9uIGFuZCByZW1vdmFsCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE1OTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtcmVtb3ZlLXRyYWNrLmh0bWwKKworICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYVN0cmVh
bVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNZWRpYVN0cmVhbU9ic2VydmVy
Ojp+V2ViS2l0TWVkaWFTdHJlYW1PYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRN
ZWRpYVN0cmVhbU9ic2VydmVyOjpXZWJLaXRNZWRpYVN0cmVhbU9ic2VydmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OndlYmtpdE1lZGlhU3RyZWFtU3JjRmluYWxpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6d2Via2l0TWVkaWFTdHJlYW1TcmNDaGFuZ2VTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjp3
ZWJraXRfbWVkaWFfc3RyZWFtX3NyY19pbml0KToKKyAgICAgICAgKFdlYkNvcmU6OndlYmtpdE1l
ZGlhU3RyZWFtU3JjU2V0dXBTcmMpOgorICAgICAgICAoV2ViQ29yZTo6d2Via2l0TWVkaWFTdHJl
YW1TcmNBZGRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjp3ZWJraXRNZWRpYVN0cmVhbVNyY1Jl
bW92ZVRyYWNrQnlUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OndlYmtpdE1lZGlhU3RyZWFtU3Jj
U2V0U3RyZWFtKToKKwogMjAxOC0xMS0xMyAgVGhpYmF1bHQgU2F1bmllciAgPHRzYXVuaWVyQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bV2ViUlRDXSBBZGQgc3VwcG9ydCBmb3Ig
c2VuZGluZyBzaWxlbmNlIG9yIHNpbGVuY2luZyBhbiBpbmNvbWluZyB0cmFjawpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
ck1lZGlhU3RyZWFtU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJjZS5jcHAKaW5kZXggMDlhNDNl
NjBjNGM0YmY2MzA5MTg0MmE4NjY5NmY5ZTI1MDFiNjQ4Zi4uZGE0NTFhOTRiYjkwZTAxYjAxZGUy
MWY2YzEyYzMxNTdlYTYzYmFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
TWVkaWFTdHJlYW1Tb3VyY2UuY3BwCkBAIC00MSw2ICs0MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIHN0YXRpYyB2b2lkIHdlYmtpdE1lZGlhU3RyZWFtU3JjUHVzaFZpZGVvU2FtcGxlKFdlYktp
dE1lZGlhU3RyZWFtU3JjKiBzZWxmLCBHc3RTYW1wbGUqIGdzdHNhbXBsZSk7CiBzdGF0aWMgdm9p
ZCB3ZWJraXRNZWRpYVN0cmVhbVNyY1B1c2hBdWRpb1NhbXBsZShXZWJLaXRNZWRpYVN0cmVhbVNy
Yyogc2VsZiwgR3N0U2FtcGxlKiBnc3RzYW1wbGUpOwogc3RhdGljIHZvaWQgd2Via2l0TWVkaWFT
dHJlYW1TcmNUcmFja0VuZGVkKFdlYktpdE1lZGlhU3RyZWFtU3JjKiBzZWxmLCBNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYpOworc3RhdGljIHZvaWQgd2Via2l0TWVkaWFTdHJlYW1TcmNBZGRUcmFj
ayhXZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqKTsK
K3N0YXRpYyB2b2lkIHdlYmtpdE1lZGlhU3RyZWFtU3JjUmVtb3ZlVHJhY2tCeVR5cGUoV2ViS2l0
TWVkaWFTdHJlYW1TcmMqIHNlbGYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHJhY2tUeXBl
KTsKIAogc3RhdGljIEdzdFN0YXRpY1BhZFRlbXBsYXRlIHZpZGVvU3JjVGVtcGxhdGUgPSBHU1Rf
U1RBVElDX1BBRF9URU1QTEFURSgidmlkZW9fc3JjIiwKICAgICBHU1RfUEFEX1NSQywKQEAgLTkz
LDcgKzk1LDcgQEAgR3N0U3RyZWFtKiB3ZWJraXRNZWRpYVN0cmVhbU5ldyhNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSogdHJhY2spCiAgICAgICAgIGNhcHMgPSBhZG9wdEdSZWYoZ3N0X3N0YXRpY19w
YWRfdGVtcGxhdGVfZ2V0X2NhcHMoJnZpZGVvU3JjVGVtcGxhdGUpKTsKICAgICAgICAgdHlwZSA9
IEdTVF9TVFJFQU1fVFlQRV9WSURFTzsKICAgICB9IGVsc2UgewotICAgICAgICBHU1RfRklYTUUo
IkhhbmRsZSAlZCB0eXBlIiwgKGdpbnQpIHRyYWNrLT50eXBlKCkpOworICAgICAgICBHU1RfRklY
TUUoIkhhbmRsZSAlZCB0eXBlIiwgc3RhdGljX2Nhc3Q8aW50Pih0cmFjay0+dHlwZSgpKSk7CiAK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtMTQyLDYgKzE0NCwzMCBAQCBwcml2
YXRlOgogICAgIFdlYktpdE1lZGlhU3RyZWFtU3JjKiBtX21lZGlhU3RyZWFtU3JjOwogfTsKIAor
Y2xhc3MgV2ViS2l0TWVkaWFTdHJlYW1PYnNlcnZlcgorICAgIDogcHVibGljIE1lZGlhU3RyZWFt
UHJpdmF0ZTo6T2JzZXJ2ZXIgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYktpdE1lZGlhU3Ry
ZWFtT2JzZXJ2ZXIoKSB7IH07CisgICAgV2ViS2l0TWVkaWFTdHJlYW1PYnNlcnZlcihXZWJLaXRN
ZWRpYVN0cmVhbVNyYyogc3JjKQorICAgICAgICA6IG1fbWVkaWFTdHJlYW1TcmMoc3JjKSB7IH0K
KworICAgIHZvaWQgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpIGZpbmFsIHsgR1NUX0RFQlVHX09C
SkVDVChtX21lZGlhU3RyZWFtU3JjLmdldCgpLCAicmVuZWdvdGlhdGlvbiBzaG91bGQgaGFwcGVu
Iik7IH0KKyAgICB2b2lkIGFjdGl2ZVN0YXR1c0NoYW5nZWQoKSBmaW5hbCB7IH0KKworICAgIHZv
aWQgZGlkQWRkVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKSBmaW5hbAorICAg
IHsKKyAgICAgICAgd2Via2l0TWVkaWFTdHJlYW1TcmNBZGRUcmFjayhtX21lZGlhU3RyZWFtU3Jj
LmdldCgpLCAmdHJhY2spOworICAgIH0KKworICAgIHZvaWQgZGlkUmVtb3ZlVHJhY2soTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKSBmaW5hbAorICAgIHsKKyAgICAgICAgd2Via2l0TWVk
aWFTdHJlYW1TcmNSZW1vdmVUcmFja0J5VHlwZShtX21lZGlhU3RyZWFtU3JjLmdldCgpLCB0cmFj
ay50eXBlKCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBHUmVmUHRyPFdlYktpdE1lZGlhU3Ry
ZWFtU3JjPiBtX21lZGlhU3RyZWFtU3JjOworfTsKKwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE1l
ZGlhU3RyZWFtU3JjQ2xhc3MgV2ViS2l0TWVkaWFTdHJlYW1TcmNDbGFzczsKIHN0cnVjdCBfV2Vi
S2l0TWVkaWFTdHJlYW1TcmMgewogICAgIEdzdEJpbiBwYXJlbnRfaW5zdGFuY2U7CkBAIC0xNTMs
NyArMTc5LDggQEAgc3RydWN0IF9XZWJLaXRNZWRpYVN0cmVhbVNyYyB7CiAgICAgR3N0RWxlbWVu
dCogdmlkZW9TcmM7CiAgICAgR3N0Q2xvY2tUaW1lIGZpcnN0RnJhbWVQdHM7CiAKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViS2l0TWVkaWFTdHJlYW1UcmFja09ic2VydmVyPiBvYnNlcnZlcjsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0TWVkaWFTdHJlYW1UcmFja09ic2VydmVyPiBtZWRpYVN0
cmVhbVRyYWNrT2JzZXJ2ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdE1lZGlhU3RyZWFt
T2JzZXJ2ZXI+IG1lZGlhU3RyZWFtT2JzZXJ2ZXI7CiAgICAgdm9sYXRpbGUgZ2ludCBucGFkczsK
ICAgICBndWxvbmcgcHJvYmVpZDsKICAgICBSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiBzdHJl
YW07CkBAIC0yNjYsOCArMjkzLDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdE1lZGlhU3RyZWFtU3Jj
RmluYWxpemUoR09iamVjdCogb2JqZWN0KQogICAgIFdlYktpdE1lZGlhU3RyZWFtU3JjKiBzZWxm
ID0gV0VCS0lUX01FRElBX1NUUkVBTV9TUkMob2JqZWN0KTsKIAogICAgIEdTVF9PQkpFQ1RfTE9D
SyhzZWxmKTsKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogc2VsZi0+c3RyZWFtLT50cmFja3MoKSkK
LSAgICAgICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKCpzZWxmLT5vYnNlcnZlci5nZXQoKSk7Cisg
ICAgaWYgKHNlbGYtPnN0cmVhbSkgeworICAgICAgICBmb3IgKGF1dG8mIHRyYWNrIDogc2VsZi0+
c3RyZWFtLT50cmFja3MoKSkKKyAgICAgICAgICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZlcigqc2Vs
Zi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKKworICAgICAgICBzZWxmLT5zdHJl
YW0tPnJlbW92ZU9ic2VydmVyKCpzZWxmLT5tZWRpYVN0cmVhbU9ic2VydmVyKTsKKyAgICAgICAg
c2VsZi0+c3RyZWFtID0gbnVsbHB0cjsKKyAgICB9CiAgICAgR1NUX09CSkVDVF9VTkxPQ0soc2Vs
Zik7CiAKICAgICBnX2NsZWFyX3BvaW50ZXIoJnNlbGYtPnVyaSwgZ19mcmVlKTsKQEAgLTI4Myw3
ICszMTUsNyBAQCBzdGF0aWMgR3N0U3RhdGVDaGFuZ2VSZXR1cm4gd2Via2l0TWVkaWFTdHJlYW1T
cmNDaGFuZ2VTdGF0ZShHc3RFbGVtZW50KiBlbGVtZW50LAogCiAgICAgICAgIEdTVF9PQkpFQ1Rf
TE9DSyhzZWxmKTsKICAgICAgICAgZm9yIChhdXRvJiB0cmFjayA6IHNlbGYtPnN0cmVhbS0+dHJh
Y2tzKCkpCi0gICAgICAgICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIoKnNlbGYtPm9ic2VydmVy
LmdldCgpKTsKKyAgICAgICAgICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZlcigqc2VsZi0+bWVkaWFT
dHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKICAgICAgICAgR1NUX09CSkVDVF9VTkxPQ0soc2Vs
Zik7CiAgICAgfQogCkBAIC0zMTksNyArMzUxLDggQEAgc3RhdGljIHZvaWQgd2Via2l0X21lZGlh
X3N0cmVhbV9zcmNfY2xhc3NfaW5pdChXZWJLaXRNZWRpYVN0cmVhbVNyY0NsYXNzKiBrbGFzcykK
IAogc3RhdGljIHZvaWQgd2Via2l0X21lZGlhX3N0cmVhbV9zcmNfaW5pdChXZWJLaXRNZWRpYVN0
cmVhbVNyYyogc2VsZikKIHsKLSAgICBzZWxmLT5vYnNlcnZlciA9IHN0ZDo6bWFrZV91bmlxdWU8
V2ViS2l0TWVkaWFTdHJlYW1UcmFja09ic2VydmVyPihzZWxmKTsKKyAgICBzZWxmLT5tZWRpYVN0
cmVhbVRyYWNrT2JzZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYktpdE1lZGlhU3RyZWFtVHJh
Y2tPYnNlcnZlcj4oc2VsZik7CisgICAgc2VsZi0+bWVkaWFTdHJlYW1PYnNlcnZlciA9IHN0ZDo6
bWFrZV91bmlxdWU8V2ViS2l0TWVkaWFTdHJlYW1PYnNlcnZlcj4oc2VsZik7CiAgICAgc2VsZi0+
Zmxvd0NvbWJpbmVyID0gZ3N0X2Zsb3dfY29tYmluZXJfbmV3KCk7CiAgICAgc2VsZi0+Zmlyc3RB
dWRpb0J1ZmZlclB0cyA9IEdTVF9DTE9DS19USU1FX05PTkU7CiAgICAgc2VsZi0+Zmlyc3RGcmFt
ZVB0cyA9IEdTVF9DTE9DS19USU1FX05PTkU7CkBAIC00MjAsNyArNDUzLDcgQEAgc3RhdGljIGdi
b29sZWFuIHdlYmtpdE1lZGlhU3RyZWFtU3JjU2V0dXBTcmMoV2ViS2l0TWVkaWFTdHJlYW1TcmMq
IHNlbGYsCiAgICAgICAgIH0pOwogCiAgICAgaWYgKG9ic2VydmVfdHJhY2spCi0gICAgICAgIHRy
YWNrLT5hZGRPYnNlcnZlcigqc2VsZi0+b2JzZXJ2ZXIuZ2V0KCkpOworICAgICAgICB0cmFjay0+
YWRkT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlci5nZXQoKSk7CiAKICAg
ICBnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KGVsZW1lbnQpOwogICAgIHJldHVy
biBUUlVFOwpAQCAtNDUxLDM3ICs0ODQsNDcgQEAgc3RhdGljIHZvaWQgd2Via2l0TWVkaWFTdHJl
YW1TcmNQb3N0U3RyZWFtQ29sbGVjdGlvbihXZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwKICAg
ICAgICAgZ3N0X21lc3NhZ2VfbmV3X3N0cmVhbV9jb2xsZWN0aW9uKEdTVF9PQkpFQ1Qoc2VsZiks
IHNlbGYtPnN0cmVhbUNvbGxlY3Rpb24uZ2V0KCkpKTsKIH0KIAotZ2Jvb2xlYW4gd2Via2l0TWVk
aWFTdHJlYW1TcmNTZXRTdHJlYW0oV2ViS2l0TWVkaWFTdHJlYW1TcmMqIHNlbGYsIE1lZGlhU3Ry
ZWFtUHJpdmF0ZSogc3RyZWFtKQorc3RhdGljIHZvaWQgd2Via2l0TWVkaWFTdHJlYW1TcmNBZGRU
cmFjayhXZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUq
IHRyYWNrKQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19NRURJQV9TVFJF
QU1fU1JDKHNlbGYpLCBGQUxTRSk7CisgICAgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pCisgICAgICAgIHdlYmtpdE1lZGlhU3RyZWFtU3JjU2V0
dXBBcHBTcmMoc2VsZiwgdHJhY2ssICZzZWxmLT5hdWRpb1NyYywgJmF1ZGlvU3JjVGVtcGxhdGUp
OworICAgIGVsc2UgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6VmlkZW8pCisgICAgICAgIHdlYmtpdE1lZGlhU3RyZWFtU3JjU2V0dXBBcHBTcmMoc2VsZiwg
dHJhY2ssICZzZWxmLT52aWRlb1NyYywgJnZpZGVvU3JjVGVtcGxhdGUpOworICAgIGVsc2UKKyAg
ICAgICAgR1NUX0lORk8oIlVuc3VwcG9ydGVkIHRyYWNrIHR5cGU6ICVkIiwgc3RhdGljX2Nhc3Q8
aW50Pih0cmFjay0+dHlwZSgpKSk7Cit9CiAKLSAgICBpZiAoc2VsZi0+YXVkaW9TcmMpIHsKLSAg
ICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKHNlbGYtPmF1ZGlvU3JjLCBHU1RfU1RBVEVfTlVM
TCk7Ci0gICAgICAgIGdzdF9iaW5fcmVtb3ZlKEdTVF9CSU4oc2VsZiksIHNlbGYtPmF1ZGlvU3Jj
KTsKLSAgICAgICAgc2VsZi0+YXVkaW9TcmMgPSBudWxscHRyOwotICAgIH0KK3N0YXRpYyB2b2lk
IHdlYmtpdE1lZGlhU3RyZWFtU3JjUmVtb3ZlVHJhY2tCeVR5cGUoV2ViS2l0TWVkaWFTdHJlYW1T
cmMqIHNlbGYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHJhY2tUeXBlKQoreworICAgIGlm
ICh0cmFja1R5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pIHsKKyAgICAg
ICAgaWYgKHNlbGYtPmF1ZGlvU3JjKSB7CisgICAgICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3Rh
dGUoc2VsZi0+YXVkaW9TcmMsIEdTVF9TVEFURV9OVUxMKTsKKyAgICAgICAgICAgIGdzdF9iaW5f
cmVtb3ZlKEdTVF9CSU4oc2VsZiksIHNlbGYtPmF1ZGlvU3JjKTsKKyAgICAgICAgICAgIHNlbGYt
PmF1ZGlvU3JjID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAodHJhY2tUeXBl
ID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKSB7CisgICAgICAgIGlmIChzZWxm
LT52aWRlb1NyYykgeworICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKHNlbGYtPnZp
ZGVvU3JjLCBHU1RfU1RBVEVfTlVMTCk7CisgICAgICAgICAgICBnc3RfYmluX3JlbW92ZShHU1Rf
QklOKHNlbGYpLCBzZWxmLT52aWRlb1NyYyk7CisgICAgICAgICAgICBzZWxmLT52aWRlb1NyYyA9
IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgR1NUX0lORk8oIlVuc3Vw
cG9ydGVkIHRyYWNrIHR5cGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50Pih0cmFja1R5cGUpKTsKK30K
IAotICAgIGlmIChzZWxmLT52aWRlb1NyYykgewotICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3Rh
dGUoc2VsZi0+dmlkZW9TcmMsIEdTVF9TVEFURV9OVUxMKTsKLSAgICAgICAgZ3N0X2Jpbl9yZW1v
dmUoR1NUX0JJTihzZWxmKSwgc2VsZi0+dmlkZW9TcmMpOwotICAgICAgICBzZWxmLT52aWRlb1Ny
YyA9IG51bGxwdHI7Ci0gICAgfQorYm9vbCB3ZWJraXRNZWRpYVN0cmVhbVNyY1NldFN0cmVhbShX
ZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwgTWVkaWFTdHJlYW1Qcml2YXRlKiBzdHJlYW0pCit7
CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX01FRElBX1NUUkVBTV9TUkMoc2Vs
ZiksIEZBTFNFKTsKKworICAgIHdlYmtpdE1lZGlhU3RyZWFtU3JjUmVtb3ZlVHJhY2tCeVR5cGUo
c2VsZiwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pOworICAgIHdlYmtpdE1lZGlh
U3RyZWFtU3JjUmVtb3ZlVHJhY2tCeVR5cGUoc2VsZiwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6VmlkZW8pOwogCiAgICAgd2Via2l0TWVkaWFTdHJlYW1TcmNQb3N0U3RyZWFtQ29sbGVjdGlv
bihzZWxmLCBzdHJlYW0pOwogCiAgICAgc2VsZi0+c3RyZWFtID0gc3RyZWFtOwotICAgIGZvciAo
YXV0byYgdHJhY2sgOiBzdHJlYW0tPnRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0cmFjay0+dHlw
ZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKSB7Ci0gICAgICAgICAgICB3
ZWJraXRNZWRpYVN0cmVhbVNyY1NldHVwQXBwU3JjKHNlbGYsIHRyYWNrLmdldCgpLCAmc2VsZi0+
YXVkaW9TcmMsCi0gICAgICAgICAgICAgICAgJmF1ZGlvU3JjVGVtcGxhdGUpOwotICAgICAgICB9
IGVsc2UgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Vmlk
ZW8pIHsKLSAgICAgICAgICAgIHdlYmtpdE1lZGlhU3RyZWFtU3JjU2V0dXBBcHBTcmMoc2VsZiwg
dHJhY2suZ2V0KCksICZzZWxmLT52aWRlb1NyYywKLSAgICAgICAgICAgICAgICAmdmlkZW9TcmNU
ZW1wbGF0ZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBHU1RfSU5GTygiVW5zdXBv
cnRlZCB0cmFjayB0eXBlOiAlZCIsIChnaW50KSB0cmFjay0+dHlwZSgpKTsKLSAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgfQorICAgIHNlbGYtPnN0cmVhbS0+YWRkT2JzZXJ2
ZXIoKnNlbGYtPm1lZGlhU3RyZWFtT2JzZXJ2ZXIuZ2V0KCkpOworICAgIGZvciAoYXV0byYgdHJh
Y2sgOiBzdHJlYW0tPnRyYWNrcygpKQorICAgICAgICB3ZWJraXRNZWRpYVN0cmVhbVNyY0FkZFRy
YWNrKHNlbGYsIHRyYWNrLmdldCgpKTsKIAogICAgIHJldHVybiBUUlVFOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
ck1lZGlhU3RyZWFtU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuaAppbmRleCBlYjQxMTJlNzA3
ZjU3YmRlMjFiYTUxNzRiN2MzMjJhMTgxNjFhNDc0Li4xNTk5YmFlNzg2MjcxNGE3YmI5ZDM0MmNl
NGEzMjA4MDI2NDM0NjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFT
dHJlYW1Tb3VyY2UuaApAQCAtNDAsNyArNDAsNyBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TWVk
aWFTdHJlYW1TcmMgV2ViS2l0TWVkaWFTdHJlYW1TcmM7CiAjZGVmaW5lIFdFQktJVF9JU19NRURJ
QV9TVFJFQU1fU1JDKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgobyksIFdFQktJVF9U
WVBFX01FRElBX1NUUkVBTV9TUkMpKQogI2RlZmluZSBXRUJLSVRfVFlQRV9NRURJQV9TVFJFQU1f
U1JDICh3ZWJraXRfbWVkaWFfc3RyZWFtX3NyY19nZXRfdHlwZSgpKQogR1R5cGUgd2Via2l0X21l
ZGlhX3N0cmVhbV9zcmNfZ2V0X3R5cGUodm9pZCkgR19HTlVDX0NPTlNUOwotZ2Jvb2xlYW4gd2Vi
a2l0TWVkaWFTdHJlYW1TcmNTZXRTdHJlYW0oV2ViS2l0TWVkaWFTdHJlYW1TcmMqLCBNZWRpYVN0
cmVhbVByaXZhdGUqKTsKK2Jvb2wgd2Via2l0TWVkaWFTdHJlYW1TcmNTZXRTdHJlYW0oV2ViS2l0
TWVkaWFTdHJlYW1TcmMqLCBNZWRpYVN0cmVhbVByaXZhdGUqKTsKIH0gLy8gV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFZJREVPKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoTElC
V0VCUlRDKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGJjYTcwN2QwNmJhYWE2Mzg0N2VkNmE1OTkyYzYxNDViNTU2YmEwMDgu
LmMzYzBmMjJmNTUzMmM4MjZjOGI1MzYyNTQwZTFhOGE3ZDljYWUzMzQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxOC0xMS0xMyAgVGhpYmF1bHQgU2F1bmllciAgPHRzYXVuaWVyQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW0dTdHJlYW1lcl1bTWVkaWFTdHJlYW1dIEhhbmRsZSB0cmFjayBhZGRp
dGlvbiBhbmQgcmVtb3ZhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkxNTk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtcmVt
b3ZlLXRyYWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXJlbW92ZS10cmFjay5odG1sOiBBZGRlZC4KKwog
MjAxOC0xMS0xNCAgQWxpIEp1bWEgIDxhanVtYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVHJh
bnNmb3JtIG9mIGNvbXBvc2l0ZWQgbGF5ZXIgbm90IHVwZGF0ZWQgd2hlbiBsYXllciBhbHNvIG5l
ZWRzIHJlcGFpbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW0tdmlkZW8tZWxlbWVudC1yZW1vdmUtdHJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXJlbW92ZS10
cmFjay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjA2ZmE1NGY1NThjNzg0NWQ4MGQ2ZjU3ZTM0
MjNiYmJjZjI1NTM4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0tdmlkZW8tZWxlbWVudC1yZW1vdmUtdHJhY2stZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNDcgQEAKK1Rlc3RzIGNoZWNraW5nIHJlbW92aW5nIE1lZGlhU3RyZWFtIHRy
YWNrIGFwcGxpZXMgdG8gdGhlIHZpZGVvIGVsZW1lbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCisKKworKioqKiBjYWxsaW5nIG1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoKSAq
KioqCitQQVNTIG1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEgc3VjY2VlZGVkLgorCisqKioqIHNl
dHVwIHZpZGVvIGVsZW1lbnQgKioqKgordmlkZW8uc3JjT2JqZWN0ID0gbWVkaWFTdHJlYW0KK0V2
ZW50ICdjYW5wbGF5JworCisqKiogc3RhcnQgcGxheWJhY2sgKioqKgordmlkZW8ucGxheSgpCit2
aWRlby5wYXVzZSgpCisKKyoqKiogY2hlY2sgdmlkZW8gZWxlbWVudCAqKioqCisKKyoqKiogY2hl
Y2sgdmlkZW8gdHJhY2tzICoqKioKK1BBU1MgdmlkZW8udmlkZW9UcmFja3MubGVuZ3RoIGlzIDEK
K1BBU1MgdmlkZW8udmlkZW9UcmFja3NbMF0uaWQgaXMgbWVkaWFTdHJlYW0uZ2V0VmlkZW9UcmFj
a3MoKVswXS5pZAorCisqKioqIGNoZWNrIGF1ZGlvIHRyYWNrcyAqKioqCitQQVNTIHZpZGVvLmF1
ZGlvVHJhY2tzLmxlbmd0aCBpcyAxCitQQVNTIHZpZGVvLmF1ZGlvVHJhY2tzWzBdLmlkIGlzIG1l
ZGlhU3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0uaWQKKworKioqKiByZW1vdmluZyBhdWRpbyB0
cmFjayAqKioqCisKKyoqKiogY2hlY2sgdmlkZW8gZWxlbWVudCAqKioqCitQQVNTIHZpZGVvLnZp
ZGVvV2lkdGggaXMgbWVkaWFTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5nZXRTZXR0aW5ncygp
LndpZHRoCitQQVNTIHZpZGVvLnZpZGVvSGVpZ2h0IGlzIG1lZGlhU3RyZWFtLmdldFZpZGVvVHJh
Y2tzKClbMF0uZ2V0U2V0dGluZ3MoKS5oZWlnaHQKKworKioqKiBjaGVjayB2aWRlbyB0cmFja3Mg
KioqKgorUEFTUyB2aWRlby52aWRlb1RyYWNrcy5sZW5ndGggaXMgMQorUEFTUyB2aWRlby52aWRl
b1RyYWNrc1swXS5pZCBpcyBtZWRpYVN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLmlkCitQQVNT
IHZpZGVvLnZpZGVvVHJhY2tzWzBdLmxhbmd1YWdlIGlzICIiCitQQVNTIHZpZGVvLnZpZGVvVHJh
Y2tzWzBdLmtpbmQgaXMgIm1haW4iCisKKyoqKiogY2hlY2sgbm8gYXVkaW8gdHJhY2sgKioqKgor
UEFTUyB2aWRlby5hdWRpb1RyYWNrcy5sZW5ndGggaXMgMAorUEFTUyBtZWRpYVN0cmVhbS5nZXRB
dWRpb1RyYWNrcygpLmxlbmd0aCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXJlbW92ZS10cmFjay5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXJlbW92ZS10
cmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzMjFlNzJkYjUyOTEzNTFmZmI4NjVlMWEyN2Q3ZjJiZGY1
NjY3OTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtcmVtb3ZlLXRyYWNrLmh0bWwKQEAgLTAsMCArMSwxMTIg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIHZhciB2
aWRlbzsKKyAgICAgICAgICAgIHZhciBtZWRpYVN0cmVhbTsKKworICAgICAgICAgICAgZnVuY3Rp
b24gbG9nRXZlbnQoZWxlbWVudCwgZXZlbnROYW1lLCBmdW5jKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uIF9ldmVudENhbGxiYWNrKGV2dCkKKyAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cud2FzRmluaXNoSlNUZXN0Q2FsbGVk
KQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgICAg
IGRlYnVnKGBFdmVudCA8ZW0+JyR7ZXZ0LnR5cGV9JzwvZW0+YCk7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChmdW5jKQorICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyhldnQpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZl
bnROYW1lLCBfZXZlbnRDYWxsYmFjaywgdHJ1ZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGZ1bmN0aW9uIGNoZWNrVmlkZW9FbGVtZW50KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBldmFsQW5kTG9nKCJ2aWRlby5wYXVzZSgpIik7CisKKyAgICAgICAgICAgICAgICBk
ZWJ1ZygiPGJyPioqKiogY2hlY2sgdmlkZW8gZWxlbWVudCAqKioqIik7CisgICAgICAgICAgICAg
ICAgZGVidWcoIjxicj4qKioqIGNoZWNrIHZpZGVvIHRyYWNrcyAqKioqIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoJ3ZpZGVvLnZpZGVvVHJhY2tzLmxlbmd0aCcsICcxJyk7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmlkJywgJ21lZGlhU3RyZWFt
LmdldFZpZGVvVHJhY2tzKClbMF0uaWQnKTsKKworICAgICAgICAgICAgICAgIGRlYnVnKCI8YnI+
KioqKiBjaGVjayBhdWRpbyB0cmFja3MgKioqKiIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCd2aWRlby5hdWRpb1RyYWNrcy5sZW5ndGgnLCAnMScpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCd2aWRlby5hdWRpb1RyYWNrc1swXS5pZCcsICdtZWRpYVN0cmVhbS5nZXRBdWRpb1RyYWNr
cygpWzBdLmlkJyk7CisKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlbW92ZUF1ZGlvVHJh
Y2ssIDEwMCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNoZWNrVmlk
ZW9FbGVtZW50MigpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZGVidWcoIjxicj4q
KioqIGNoZWNrIHZpZGVvIGVsZW1lbnQgKioqKiIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCd2aWRlby52aWRlb1dpZHRoJywgJ21lZGlhU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uZ2V0
U2V0dGluZ3MoKS53aWR0aCcpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCd2aWRlby52aWRl
b0hlaWdodCcsICdtZWRpYVN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLmdldFNldHRpbmdzKCku
aGVpZ2h0Jyk7CisKKyAgICAgICAgICAgICAgICBkZWJ1ZygiPGJyPioqKiogY2hlY2sgdmlkZW8g
dHJhY2tzICoqKioiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgndmlkZW8udmlkZW9UcmFj
a3MubGVuZ3RoJywgJzEnKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgndmlkZW8udmlkZW9U
cmFja3NbMF0uaWQnLCAnbWVkaWFTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5pZCcpOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndmlkZW8udmlkZW9UcmFja3NbMF0u
bGFuZ3VhZ2UnLCAnJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd2
aWRlby52aWRlb1RyYWNrc1swXS5raW5kJywgJ21haW4nKTsKKworICAgICAgICAgICAgICAgIGRl
YnVnKCI8YnI+KioqKiBjaGVjayBubyBhdWRpbyB0cmFjayAqKioqIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoJ3ZpZGVvLmF1ZGlvVHJhY2tzLmxlbmd0aCcsICcwJyk7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoJ21lZGlhU3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzAn
KTsKKworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBmdW5jdGlvbiBjYW5wbGF5KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBkZWJ1ZygiPGJyPioqKiBzdGFydCBwbGF5YmFjayAqKioqIik7CisgICAgICAgICAgICAg
ICAgZXZhbEFuZExvZygidmlkZW8ucGxheSgpIik7CisgICAgICAgICAgICAgICAgc2V0VGltZW91
dChjaGVja1ZpZGVvRWxlbWVudCwgMTAwKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ZnVuY3Rpb24gcmVtb3ZlQXVkaW9UcmFjaygpIHsKKyAgICAgICAgICAgICAgICB0cmFjayA9IG1l
ZGlhU3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07CisgICAgICAgICAgICAgICAgZGVidWcoIjxi
cj4qKioqIHJlbW92aW5nIGF1ZGlvIHRyYWNrICoqKioiKTsKKyAgICAgICAgICAgICAgICB0cnkg
eworICAgICAgICAgICAgICAgICAgICBtZWRpYVN0cmVhbS5yZW1vdmVUcmFjayh0cmFjayk7Cisg
ICAgICAgICAgICAgICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoInJlbW92ZVRyYWNrIHRocmV3IGFuIGV4Y2VwdGlvbi4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIHNldFRpbWVvdXQoY2hlY2tWaWRlb0VsZW1lbnQyLCAxMDApOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBmdW5jdGlvbiBzZXR1cFN0cmVhbShzdHJlYW0pCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgbWVkaWFTdHJlYW0gPSBzdHJlYW07CisgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZCgnbWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSBzdWNjZWVkZWQuJyk7CisK
KyAgICAgICAgICAgICAgICBkZWJ1ZygiPGJyPioqKiogc2V0dXAgdmlkZW8gZWxlbWVudCAqKioq
Iik7CisgICAgICAgICAgICAgICAgZXZhbEFuZExvZygidmlkZW8uc3JjT2JqZWN0ID0gbWVkaWFT
dHJlYW0iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RhcnQoKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBjaGVja2lu
ZyByZW1vdmluZyBNZWRpYVN0cmVhbSB0cmFjayBhcHBsaWVzIHRvIHRoZSB2aWRlbyBlbGVtZW50
LiIpOworICAgICAgICAgICAgICAgIHZpZGVvID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigndmlk
ZW8nKTsKKyAgICAgICAgICAgICAgICBsb2dFdmVudCh2aWRlbywgJ2NhbnBsYXknLCBjYW5wbGF5
KQorCisgICAgICAgICAgICAgICAgZGVidWcoIjxicj4qKioqIGNhbGxpbmcgbWVkaWFEZXZpY2Vz
LmdldFVzZXJNZWRpYSgpICoqKioiKTsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlz
c2lvbih0cnVlKTsKKyAgICAgICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVz
ZXJNZWRpYSgge3ZpZGVvOiB0cnVlLCBhdWRpbzogdHJ1ZX0gKQorICAgICAgICAgICAgICAgICAg
ICAudGhlbihzZXR1cFN0cmVhbSkKKyAgICAgICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9u
KHJlYXNvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoYFN0cmVhbSBnZW5lcmF0
aW9uIGZhaWxlZCB3aXRoIGVycm9yOiAke3JlYXNvbn1gKTsKKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKyAgICAgICAgICAgIHdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJzdGFydCgpIj4K
KyAgICAgICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CisgICAgICAgIDx2aWRlbyBjb250cm9s
cyAgd2lkdGg9IjY4MCIgaGVpZ2h0PSIzNjAiPjwvdmlkZW8+CisgICAgICAgIDxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355047</attachid>
            <date>2018-11-16 05:23:10 -0800</date>
            <delta_ts>2018-11-16 05:24:01 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-191599-20181116102309.patch</filename>
            <type>text/plain</type>
            <size>17408</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzU3ZWIyMzY5ZmRiMDBh
NWI5ZWZhMjI4ZDEzZDcxNDViMzlmZTQ5MC4uMWE5ODc4MzRhZjExMzI3YzcwYzQ0MTk0YzMyMDgy
M2U4N2VkYWU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTExLTEzICBUaGli
YXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XVtNZWRpYVN0cmVhbV0gSGFuZGxlIHRyYWNrIGFkZGl0aW9uIGFuZCByZW1vdmFsCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE1OTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtcmVtb3ZlLXRyYWNrLmh0bWwKKworICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYVN0cmVh
bVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNZWRpYVN0cmVhbU9ic2VydmVy
Ojp+V2ViS2l0TWVkaWFTdHJlYW1PYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRN
ZWRpYVN0cmVhbU9ic2VydmVyOjpXZWJLaXRNZWRpYVN0cmVhbU9ic2VydmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OndlYmtpdE1lZGlhU3RyZWFtU3JjRmluYWxpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6d2Via2l0TWVkaWFTdHJlYW1TcmNDaGFuZ2VTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjp3
ZWJraXRfbWVkaWFfc3RyZWFtX3NyY19pbml0KToKKyAgICAgICAgKFdlYkNvcmU6OndlYmtpdE1l
ZGlhU3RyZWFtU3JjU2V0dXBTcmMpOgorICAgICAgICAoV2ViQ29yZTo6d2Via2l0TWVkaWFTdHJl
YW1TcmNBZGRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjp3ZWJraXRNZWRpYVN0cmVhbVNyY1Jl
bW92ZVRyYWNrQnlUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OndlYmtpdE1lZGlhU3RyZWFtU3Jj
U2V0U3RyZWFtKToKKwogMjAxOC0xMS0xMyAgVGhpYmF1bHQgU2F1bmllciAgPHRzYXVuaWVyQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bV2ViUlRDXSBBZGQgc3VwcG9ydCBmb3Ig
c2VuZGluZyBzaWxlbmNlIG9yIHNpbGVuY2luZyBhbiBpbmNvbWluZyB0cmFjawpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1l
ck1lZGlhU3RyZWFtU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJjZS5jcHAKaW5kZXggMDlhNDNl
NjBjNGM0YmY2MzA5MTg0MmE4NjY5NmY5ZTI1MDFiNjQ4Zi4uMjUxM2NhOTRiZTljN2UwMDBjNDY2
MDhjYTExMGRjYWUxMzc4YWMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
TWVkaWFTdHJlYW1Tb3VyY2UuY3BwCkBAIC00MSw2ICs0MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIHN0YXRpYyB2b2lkIHdlYmtpdE1lZGlhU3RyZWFtU3JjUHVzaFZpZGVvU2FtcGxlKFdlYktp
dE1lZGlhU3RyZWFtU3JjKiBzZWxmLCBHc3RTYW1wbGUqIGdzdHNhbXBsZSk7CiBzdGF0aWMgdm9p
ZCB3ZWJraXRNZWRpYVN0cmVhbVNyY1B1c2hBdWRpb1NhbXBsZShXZWJLaXRNZWRpYVN0cmVhbVNy
Yyogc2VsZiwgR3N0U2FtcGxlKiBnc3RzYW1wbGUpOwogc3RhdGljIHZvaWQgd2Via2l0TWVkaWFT
dHJlYW1TcmNUcmFja0VuZGVkKFdlYktpdE1lZGlhU3RyZWFtU3JjKiBzZWxmLCBNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYpOworc3RhdGljIHZvaWQgd2Via2l0TWVkaWFTdHJlYW1TcmNBZGRUcmFj
ayhXZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqKTsK
K3N0YXRpYyB2b2lkIHdlYmtpdE1lZGlhU3RyZWFtU3JjUmVtb3ZlVHJhY2tCeVR5cGUoV2ViS2l0
TWVkaWFTdHJlYW1TcmMqIHNlbGYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHJhY2tUeXBl
KTsKIAogc3RhdGljIEdzdFN0YXRpY1BhZFRlbXBsYXRlIHZpZGVvU3JjVGVtcGxhdGUgPSBHU1Rf
U1RBVElDX1BBRF9URU1QTEFURSgidmlkZW9fc3JjIiwKICAgICBHU1RfUEFEX1NSQywKQEAgLTkz
LDcgKzk1LDcgQEAgR3N0U3RyZWFtKiB3ZWJraXRNZWRpYVN0cmVhbU5ldyhNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSogdHJhY2spCiAgICAgICAgIGNhcHMgPSBhZG9wdEdSZWYoZ3N0X3N0YXRpY19w
YWRfdGVtcGxhdGVfZ2V0X2NhcHMoJnZpZGVvU3JjVGVtcGxhdGUpKTsKICAgICAgICAgdHlwZSA9
IEdTVF9TVFJFQU1fVFlQRV9WSURFTzsKICAgICB9IGVsc2UgewotICAgICAgICBHU1RfRklYTUUo
IkhhbmRsZSAlZCB0eXBlIiwgKGdpbnQpIHRyYWNrLT50eXBlKCkpOworICAgICAgICBHU1RfRklY
TUUoIkhhbmRsZSAlZCB0eXBlIiwgc3RhdGljX2Nhc3Q8aW50Pih0cmFjay0+dHlwZSgpKSk7CiAK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtMTQyLDYgKzE0NCwzMCBAQCBwcml2
YXRlOgogICAgIFdlYktpdE1lZGlhU3RyZWFtU3JjKiBtX21lZGlhU3RyZWFtU3JjOwogfTsKIAor
Y2xhc3MgV2ViS2l0TWVkaWFTdHJlYW1PYnNlcnZlcgorICAgIDogcHVibGljIE1lZGlhU3RyZWFt
UHJpdmF0ZTo6T2JzZXJ2ZXIgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYktpdE1lZGlhU3Ry
ZWFtT2JzZXJ2ZXIoKSB7IH07CisgICAgV2ViS2l0TWVkaWFTdHJlYW1PYnNlcnZlcihXZWJLaXRN
ZWRpYVN0cmVhbVNyYyogc3JjKQorICAgICAgICA6IG1fbWVkaWFTdHJlYW1TcmMoc3JjKSB7IH0K
KworICAgIHZvaWQgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpIGZpbmFsIHsgR1NUX0RFQlVHX09C
SkVDVChtX21lZGlhU3RyZWFtU3JjLmdldCgpLCAicmVuZWdvdGlhdGlvbiBzaG91bGQgaGFwcGVu
Iik7IH0KKyAgICB2b2lkIGFjdGl2ZVN0YXR1c0NoYW5nZWQoKSBmaW5hbCB7IH0KKworICAgIHZv
aWQgZGlkQWRkVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKSBmaW5hbAorICAg
IHsKKyAgICAgICAgd2Via2l0TWVkaWFTdHJlYW1TcmNBZGRUcmFjayhtX21lZGlhU3RyZWFtU3Jj
LmdldCgpLCAmdHJhY2spOworICAgIH0KKworICAgIHZvaWQgZGlkUmVtb3ZlVHJhY2soTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKSBmaW5hbAorICAgIHsKKyAgICAgICAgd2Via2l0TWVk
aWFTdHJlYW1TcmNSZW1vdmVUcmFja0J5VHlwZShtX21lZGlhU3RyZWFtU3JjLmdldCgpLCB0cmFj
ay50eXBlKCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBHUmVmUHRyPFdlYktpdE1lZGlhU3Ry
ZWFtU3JjPiBtX21lZGlhU3RyZWFtU3JjOworfTsKKwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE1l
ZGlhU3RyZWFtU3JjQ2xhc3MgV2ViS2l0TWVkaWFTdHJlYW1TcmNDbGFzczsKIHN0cnVjdCBfV2Vi
S2l0TWVkaWFTdHJlYW1TcmMgewogICAgIEdzdEJpbiBwYXJlbnRfaW5zdGFuY2U7CkBAIC0xNTMs
NyArMTc5LDggQEAgc3RydWN0IF9XZWJLaXRNZWRpYVN0cmVhbVNyYyB7CiAgICAgR3N0RWxlbWVu
dCogdmlkZW9TcmM7CiAgICAgR3N0Q2xvY2tUaW1lIGZpcnN0RnJhbWVQdHM7CiAKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViS2l0TWVkaWFTdHJlYW1UcmFja09ic2VydmVyPiBvYnNlcnZlcjsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0TWVkaWFTdHJlYW1UcmFja09ic2VydmVyPiBtZWRpYVN0
cmVhbVRyYWNrT2JzZXJ2ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdE1lZGlhU3RyZWFt
T2JzZXJ2ZXI+IG1lZGlhU3RyZWFtT2JzZXJ2ZXI7CiAgICAgdm9sYXRpbGUgZ2ludCBucGFkczsK
ICAgICBndWxvbmcgcHJvYmVpZDsKICAgICBSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiBzdHJl
YW07CkBAIC0yNjYsOCArMjkzLDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdE1lZGlhU3RyZWFtU3Jj
RmluYWxpemUoR09iamVjdCogb2JqZWN0KQogICAgIFdlYktpdE1lZGlhU3RyZWFtU3JjKiBzZWxm
ID0gV0VCS0lUX01FRElBX1NUUkVBTV9TUkMob2JqZWN0KTsKIAogICAgIEdTVF9PQkpFQ1RfTE9D
SyhzZWxmKTsKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogc2VsZi0+c3RyZWFtLT50cmFja3MoKSkK
LSAgICAgICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKCpzZWxmLT5vYnNlcnZlci5nZXQoKSk7Cisg
ICAgaWYgKHNlbGYtPnN0cmVhbSkgeworICAgICAgICBmb3IgKGF1dG8mIHRyYWNrIDogc2VsZi0+
c3RyZWFtLT50cmFja3MoKSkKKyAgICAgICAgICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZlcigqc2Vs
Zi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKKworICAgICAgICBzZWxmLT5zdHJl
YW0tPnJlbW92ZU9ic2VydmVyKCpzZWxmLT5tZWRpYVN0cmVhbU9ic2VydmVyKTsKKyAgICAgICAg
c2VsZi0+c3RyZWFtID0gbnVsbHB0cjsKKyAgICB9CiAgICAgR1NUX09CSkVDVF9VTkxPQ0soc2Vs
Zik7CiAKICAgICBnX2NsZWFyX3BvaW50ZXIoJnNlbGYtPnVyaSwgZ19mcmVlKTsKQEAgLTI4Myw3
ICszMTUsNyBAQCBzdGF0aWMgR3N0U3RhdGVDaGFuZ2VSZXR1cm4gd2Via2l0TWVkaWFTdHJlYW1T
cmNDaGFuZ2VTdGF0ZShHc3RFbGVtZW50KiBlbGVtZW50LAogCiAgICAgICAgIEdTVF9PQkpFQ1Rf
TE9DSyhzZWxmKTsKICAgICAgICAgZm9yIChhdXRvJiB0cmFjayA6IHNlbGYtPnN0cmVhbS0+dHJh
Y2tzKCkpCi0gICAgICAgICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIoKnNlbGYtPm9ic2VydmVy
LmdldCgpKTsKKyAgICAgICAgICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZlcigqc2VsZi0+bWVkaWFT
dHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKICAgICAgICAgR1NUX09CSkVDVF9VTkxPQ0soc2Vs
Zik7CiAgICAgfQogCkBAIC0zMTksNyArMzUxLDggQEAgc3RhdGljIHZvaWQgd2Via2l0X21lZGlh
X3N0cmVhbV9zcmNfY2xhc3NfaW5pdChXZWJLaXRNZWRpYVN0cmVhbVNyY0NsYXNzKiBrbGFzcykK
IAogc3RhdGljIHZvaWQgd2Via2l0X21lZGlhX3N0cmVhbV9zcmNfaW5pdChXZWJLaXRNZWRpYVN0
cmVhbVNyYyogc2VsZikKIHsKLSAgICBzZWxmLT5vYnNlcnZlciA9IHN0ZDo6bWFrZV91bmlxdWU8
V2ViS2l0TWVkaWFTdHJlYW1UcmFja09ic2VydmVyPihzZWxmKTsKKyAgICBzZWxmLT5tZWRpYVN0
cmVhbVRyYWNrT2JzZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYktpdE1lZGlhU3RyZWFtVHJh
Y2tPYnNlcnZlcj4oc2VsZik7CisgICAgc2VsZi0+bWVkaWFTdHJlYW1PYnNlcnZlciA9IHN0ZDo6
bWFrZV91bmlxdWU8V2ViS2l0TWVkaWFTdHJlYW1PYnNlcnZlcj4oc2VsZik7CiAgICAgc2VsZi0+
Zmxvd0NvbWJpbmVyID0gZ3N0X2Zsb3dfY29tYmluZXJfbmV3KCk7CiAgICAgc2VsZi0+Zmlyc3RB
dWRpb0J1ZmZlclB0cyA9IEdTVF9DTE9DS19USU1FX05PTkU7CiAgICAgc2VsZi0+Zmlyc3RGcmFt
ZVB0cyA9IEdTVF9DTE9DS19USU1FX05PTkU7CkBAIC00MjAsNyArNDUzLDcgQEAgc3RhdGljIGdi
b29sZWFuIHdlYmtpdE1lZGlhU3RyZWFtU3JjU2V0dXBTcmMoV2ViS2l0TWVkaWFTdHJlYW1TcmMq
IHNlbGYsCiAgICAgICAgIH0pOwogCiAgICAgaWYgKG9ic2VydmVfdHJhY2spCi0gICAgICAgIHRy
YWNrLT5hZGRPYnNlcnZlcigqc2VsZi0+b2JzZXJ2ZXIuZ2V0KCkpOworICAgICAgICB0cmFjay0+
YWRkT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlci5nZXQoKSk7CiAKICAg
ICBnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KGVsZW1lbnQpOwogICAgIHJldHVy
biBUUlVFOwpAQCAtNDUxLDM3ICs0ODQsNDcgQEAgc3RhdGljIHZvaWQgd2Via2l0TWVkaWFTdHJl
YW1TcmNQb3N0U3RyZWFtQ29sbGVjdGlvbihXZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwKICAg
ICAgICAgZ3N0X21lc3NhZ2VfbmV3X3N0cmVhbV9jb2xsZWN0aW9uKEdTVF9PQkpFQ1Qoc2VsZiks
IHNlbGYtPnN0cmVhbUNvbGxlY3Rpb24uZ2V0KCkpKTsKIH0KIAotZ2Jvb2xlYW4gd2Via2l0TWVk
aWFTdHJlYW1TcmNTZXRTdHJlYW0oV2ViS2l0TWVkaWFTdHJlYW1TcmMqIHNlbGYsIE1lZGlhU3Ry
ZWFtUHJpdmF0ZSogc3RyZWFtKQorc3RhdGljIHZvaWQgd2Via2l0TWVkaWFTdHJlYW1TcmNBZGRU
cmFjayhXZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUq
IHRyYWNrKQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19NRURJQV9TVFJF
QU1fU1JDKHNlbGYpLCBGQUxTRSk7CisgICAgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pCisgICAgICAgIHdlYmtpdE1lZGlhU3RyZWFtU3JjU2V0
dXBBcHBTcmMoc2VsZiwgdHJhY2ssICZzZWxmLT5hdWRpb1NyYywgJmF1ZGlvU3JjVGVtcGxhdGUp
OworICAgIGVsc2UgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6VmlkZW8pCisgICAgICAgIHdlYmtpdE1lZGlhU3RyZWFtU3JjU2V0dXBBcHBTcmMoc2VsZiwg
dHJhY2ssICZzZWxmLT52aWRlb1NyYywgJnZpZGVvU3JjVGVtcGxhdGUpOworICAgIGVsc2UKKyAg
ICAgICAgR1NUX0lORk8oIlVuc3VwcG9ydGVkIHRyYWNrIHR5cGU6ICVkIiwgc3RhdGljX2Nhc3Q8
aW50Pih0cmFjay0+dHlwZSgpKSk7Cit9CiAKLSAgICBpZiAoc2VsZi0+YXVkaW9TcmMpIHsKLSAg
ICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKHNlbGYtPmF1ZGlvU3JjLCBHU1RfU1RBVEVfTlVM
TCk7Ci0gICAgICAgIGdzdF9iaW5fcmVtb3ZlKEdTVF9CSU4oc2VsZiksIHNlbGYtPmF1ZGlvU3Jj
KTsKLSAgICAgICAgc2VsZi0+YXVkaW9TcmMgPSBudWxscHRyOwotICAgIH0KK3N0YXRpYyB2b2lk
IHdlYmtpdE1lZGlhU3RyZWFtU3JjUmVtb3ZlVHJhY2tCeVR5cGUoV2ViS2l0TWVkaWFTdHJlYW1T
cmMqIHNlbGYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHJhY2tUeXBlKQoreworICAgIGlm
ICh0cmFja1R5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pIHsKKyAgICAg
ICAgaWYgKHNlbGYtPmF1ZGlvU3JjKSB7CisgICAgICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3Rh
dGUoc2VsZi0+YXVkaW9TcmMsIEdTVF9TVEFURV9OVUxMKTsKKyAgICAgICAgICAgIGdzdF9iaW5f
cmVtb3ZlKEdTVF9CSU4oc2VsZiksIHNlbGYtPmF1ZGlvU3JjKTsKKyAgICAgICAgICAgIHNlbGYt
PmF1ZGlvU3JjID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAodHJhY2tUeXBl
ID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKSB7CisgICAgICAgIGlmIChzZWxm
LT52aWRlb1NyYykgeworICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKHNlbGYtPnZp
ZGVvU3JjLCBHU1RfU1RBVEVfTlVMTCk7CisgICAgICAgICAgICBnc3RfYmluX3JlbW92ZShHU1Rf
QklOKHNlbGYpLCBzZWxmLT52aWRlb1NyYyk7CisgICAgICAgICAgICBzZWxmLT52aWRlb1NyYyA9
IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgR1NUX0lORk8oIlVuc3Vw
cG9ydGVkIHRyYWNrIHR5cGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50Pih0cmFja1R5cGUpKTsKK30K
IAotICAgIGlmIChzZWxmLT52aWRlb1NyYykgewotICAgICAgICBnc3RfZWxlbWVudF9zZXRfc3Rh
dGUoc2VsZi0+dmlkZW9TcmMsIEdTVF9TVEFURV9OVUxMKTsKLSAgICAgICAgZ3N0X2Jpbl9yZW1v
dmUoR1NUX0JJTihzZWxmKSwgc2VsZi0+dmlkZW9TcmMpOwotICAgICAgICBzZWxmLT52aWRlb1Ny
YyA9IG51bGxwdHI7Ci0gICAgfQorYm9vbCB3ZWJraXRNZWRpYVN0cmVhbVNyY1NldFN0cmVhbShX
ZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwgTWVkaWFTdHJlYW1Qcml2YXRlKiBzdHJlYW0pCit7
CisgICAgQVNTRVJUKFdFQktJVF9JU19NRURJQV9TVFJFQU1fU1JDKHNlbGYpKTsKKworICAgIHdl
YmtpdE1lZGlhU3RyZWFtU3JjUmVtb3ZlVHJhY2tCeVR5cGUoc2VsZiwgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6QXVkaW8pOworICAgIHdlYmtpdE1lZGlhU3RyZWFtU3JjUmVtb3ZlVHJhY2tC
eVR5cGUoc2VsZiwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOwogCiAgICAgd2Vi
a2l0TWVkaWFTdHJlYW1TcmNQb3N0U3RyZWFtQ29sbGVjdGlvbihzZWxmLCBzdHJlYW0pOwogCiAg
ICAgc2VsZi0+c3RyZWFtID0gc3RyZWFtOwotICAgIGZvciAoYXV0byYgdHJhY2sgOiBzdHJlYW0t
PnRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6OkF1ZGlvKSB7Ci0gICAgICAgICAgICB3ZWJraXRNZWRpYVN0cmVhbVNyY1Nl
dHVwQXBwU3JjKHNlbGYsIHRyYWNrLmdldCgpLCAmc2VsZi0+YXVkaW9TcmMsCi0gICAgICAgICAg
ICAgICAgJmF1ZGlvU3JjVGVtcGxhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKHRyYWNrLT50eXBl
KCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pIHsKLSAgICAgICAgICAgIHdl
YmtpdE1lZGlhU3RyZWFtU3JjU2V0dXBBcHBTcmMoc2VsZiwgdHJhY2suZ2V0KCksICZzZWxmLT52
aWRlb1NyYywKLSAgICAgICAgICAgICAgICAmdmlkZW9TcmNUZW1wbGF0ZSk7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBHU1RfSU5GTygiVW5zdXBvcnRlZCB0cmFjayB0eXBlOiAlZCIs
IChnaW50KSB0cmFjay0+dHlwZSgpKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9
Ci0gICAgfQorICAgIHNlbGYtPnN0cmVhbS0+YWRkT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFt
T2JzZXJ2ZXIuZ2V0KCkpOworICAgIGZvciAoYXV0byYgdHJhY2sgOiBzdHJlYW0tPnRyYWNrcygp
KQorICAgICAgICB3ZWJraXRNZWRpYVN0cmVhbVNyY0FkZFRyYWNrKHNlbGYsIHRyYWNrLmdldCgp
KTsKIAogICAgIHJldHVybiBUUlVFOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVy
TWVkaWFTdHJlYW1Tb3VyY2UuaAppbmRleCBlYjQxMTJlNzA3ZjU3YmRlMjFiYTUxNzRiN2MzMjJh
MTgxNjFhNDc0Li4xNTk5YmFlNzg2MjcxNGE3YmI5ZDM0MmNlNGEzMjA4MDI2NDM0NjMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0
cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuaApAQCAtNDAs
NyArNDAsNyBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TWVkaWFTdHJlYW1TcmMgV2ViS2l0TWVk
aWFTdHJlYW1TcmM7CiAjZGVmaW5lIFdFQktJVF9JU19NRURJQV9TVFJFQU1fU1JDKG8pIChHX1RZ
UEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgobyksIFdFQktJVF9UWVBFX01FRElBX1NUUkVBTV9TUkMp
KQogI2RlZmluZSBXRUJLSVRfVFlQRV9NRURJQV9TVFJFQU1fU1JDICh3ZWJraXRfbWVkaWFfc3Ry
ZWFtX3NyY19nZXRfdHlwZSgpKQogR1R5cGUgd2Via2l0X21lZGlhX3N0cmVhbV9zcmNfZ2V0X3R5
cGUodm9pZCkgR19HTlVDX0NPTlNUOwotZ2Jvb2xlYW4gd2Via2l0TWVkaWFTdHJlYW1TcmNTZXRT
dHJlYW0oV2ViS2l0TWVkaWFTdHJlYW1TcmMqLCBNZWRpYVN0cmVhbVByaXZhdGUqKTsKK2Jvb2wg
d2Via2l0TWVkaWFTdHJlYW1TcmNTZXRTdHJlYW0oV2ViS2l0TWVkaWFTdHJlYW1TcmMqLCBNZWRp
YVN0cmVhbVByaXZhdGUqKTsKIH0gLy8gV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVP
KSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJjYTcw
N2QwNmJhYWE2Mzg0N2VkNmE1OTkyYzYxNDViNTU2YmEwMDguLmMzYzBmMjJmNTUzMmM4MjZjOGI1
MzYyNTQwZTFhOGE3ZDljYWUzMzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0xMS0xMyAg
VGhpYmF1bHQgU2F1bmllciAgPHRzYXVuaWVyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJl
YW1lcl1bTWVkaWFTdHJlYW1dIEhhbmRsZSB0cmFjayBhZGRpdGlvbiBhbmQgcmVtb3ZhbAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkxNTk5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtcmVtb3ZlLXRyYWNrLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1l
bGVtZW50LXJlbW92ZS10cmFjay5odG1sOiBBZGRlZC4KKwogMjAxOC0xMS0xNCAgQWxpIEp1bWEg
IDxhanVtYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVHJhbnNmb3JtIG9mIGNvbXBvc2l0ZWQg
bGF5ZXIgbm90IHVwZGF0ZWQgd2hlbiBsYXllciBhbHNvIG5lZWRzIHJlcGFpbnQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tdmlkZW8tZWxlbWVu
dC1yZW1vdmUtdHJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXJlbW92ZS10cmFjay1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjA2ZmE1NGY1NThjNzg0NWQ4MGQ2ZjU3ZTM0MjNiYmJjZjI1NTM4MAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tdmlk
ZW8tZWxlbWVudC1yZW1vdmUtdHJhY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDcgQEAKK1Rl
c3RzIGNoZWNraW5nIHJlbW92aW5nIE1lZGlhU3RyZWFtIHRyYWNrIGFwcGxpZXMgdG8gdGhlIHZp
ZGVvIGVsZW1lbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKKworKioqKiBj
YWxsaW5nIG1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoKSAqKioqCitQQVNTIG1lZGlhRGV2aWNl
cy5nZXRVc2VyTWVkaWEgc3VjY2VlZGVkLgorCisqKioqIHNldHVwIHZpZGVvIGVsZW1lbnQgKioq
KgordmlkZW8uc3JjT2JqZWN0ID0gbWVkaWFTdHJlYW0KK0V2ZW50ICdjYW5wbGF5JworCisqKiog
c3RhcnQgcGxheWJhY2sgKioqKgordmlkZW8ucGxheSgpCit2aWRlby5wYXVzZSgpCisKKyoqKiog
Y2hlY2sgdmlkZW8gZWxlbWVudCAqKioqCisKKyoqKiogY2hlY2sgdmlkZW8gdHJhY2tzICoqKioK
K1BBU1MgdmlkZW8udmlkZW9UcmFja3MubGVuZ3RoIGlzIDEKK1BBU1MgdmlkZW8udmlkZW9UcmFj
a3NbMF0uaWQgaXMgbWVkaWFTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5pZAorCisqKioqIGNo
ZWNrIGF1ZGlvIHRyYWNrcyAqKioqCitQQVNTIHZpZGVvLmF1ZGlvVHJhY2tzLmxlbmd0aCBpcyAx
CitQQVNTIHZpZGVvLmF1ZGlvVHJhY2tzWzBdLmlkIGlzIG1lZGlhU3RyZWFtLmdldEF1ZGlvVHJh
Y2tzKClbMF0uaWQKKworKioqKiByZW1vdmluZyBhdWRpbyB0cmFjayAqKioqCisKKyoqKiogY2hl
Y2sgdmlkZW8gZWxlbWVudCAqKioqCitQQVNTIHZpZGVvLnZpZGVvV2lkdGggaXMgbWVkaWFTdHJl
YW0uZ2V0VmlkZW9UcmFja3MoKVswXS5nZXRTZXR0aW5ncygpLndpZHRoCitQQVNTIHZpZGVvLnZp
ZGVvSGVpZ2h0IGlzIG1lZGlhU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uZ2V0U2V0dGluZ3Mo
KS5oZWlnaHQKKworKioqKiBjaGVjayB2aWRlbyB0cmFja3MgKioqKgorUEFTUyB2aWRlby52aWRl
b1RyYWNrcy5sZW5ndGggaXMgMQorUEFTUyB2aWRlby52aWRlb1RyYWNrc1swXS5pZCBpcyBtZWRp
YVN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLmlkCitQQVNTIHZpZGVvLnZpZGVvVHJhY2tzWzBd
Lmxhbmd1YWdlIGlzICIiCitQQVNTIHZpZGVvLnZpZGVvVHJhY2tzWzBdLmtpbmQgaXMgIm1haW4i
CisKKyoqKiogY2hlY2sgbm8gYXVkaW8gdHJhY2sgKioqKgorUEFTUyB2aWRlby5hdWRpb1RyYWNr
cy5sZW5ndGggaXMgMAorUEFTUyBtZWRpYVN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBp
cyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRl
by1lbGVtZW50LXJlbW92ZS10cmFjay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXJlbW92ZS10cmFjay5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIzMjFlNzJkYjUyOTEzNTFmZmI4NjVlMWEyN2Q3ZjJiZGY1NjY3OTMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1l
bnQtcmVtb3ZlLXRyYWNrLmh0bWwKQEAgLTAsMCArMSwxMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIHZhciB2aWRlbzsKKyAgICAgICAgICAgIHZh
ciBtZWRpYVN0cmVhbTsKKworICAgICAgICAgICAgZnVuY3Rpb24gbG9nRXZlbnQoZWxlbWVudCwg
ZXZlbnROYW1lLCBmdW5jKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZ1bmN0aW9u
IF9ldmVudENhbGxiYWNrKGV2dCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICh3aW5kb3cud2FzRmluaXNoSlNUZXN0Q2FsbGVkKQorICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgICAgIGRlYnVnKGBFdmVudCA8ZW0+JyR7
ZXZ0LnR5cGV9JzwvZW0+YCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChmdW5jKQorICAgICAg
ICAgICAgICAgICAgICAgICAgZnVuYyhldnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBfZXZlbnRDYWxsYmFj
aywgdHJ1ZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNoZWNrVmlk
ZW9FbGVtZW50KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJ2
aWRlby5wYXVzZSgpIik7CisKKyAgICAgICAgICAgICAgICBkZWJ1ZygiPGJyPioqKiogY2hlY2sg
dmlkZW8gZWxlbWVudCAqKioqIik7CisgICAgICAgICAgICAgICAgZGVidWcoIjxicj4qKioqIGNo
ZWNrIHZpZGVvIHRyYWNrcyAqKioqIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3ZpZGVv
LnZpZGVvVHJhY2tzLmxlbmd0aCcsICcxJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3Zp
ZGVvLnZpZGVvVHJhY2tzWzBdLmlkJywgJ21lZGlhU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0u
aWQnKTsKKworICAgICAgICAgICAgICAgIGRlYnVnKCI8YnI+KioqKiBjaGVjayBhdWRpbyB0cmFj
a3MgKioqKiIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCd2aWRlby5hdWRpb1RyYWNrcy5s
ZW5ndGgnLCAnMScpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCd2aWRlby5hdWRpb1RyYWNr
c1swXS5pZCcsICdtZWRpYVN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdLmlkJyk7CisKKyAgICAg
ICAgICAgICAgICBzZXRUaW1lb3V0KHJlbW92ZUF1ZGlvVHJhY2ssIDEwMCk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNoZWNrVmlkZW9FbGVtZW50MigpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgZGVidWcoIjxicj4qKioqIGNoZWNrIHZpZGVvIGVsZW1l
bnQgKioqKiIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCd2aWRlby52aWRlb1dpZHRoJywg
J21lZGlhU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uZ2V0U2V0dGluZ3MoKS53aWR0aCcpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlKCd2aWRlby52aWRlb0hlaWdodCcsICdtZWRpYVN0cmVh
bS5nZXRWaWRlb1RyYWNrcygpWzBdLmdldFNldHRpbmdzKCkuaGVpZ2h0Jyk7CisKKyAgICAgICAg
ICAgICAgICBkZWJ1ZygiPGJyPioqKiogY2hlY2sgdmlkZW8gdHJhY2tzICoqKioiKTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZSgndmlkZW8udmlkZW9UcmFja3MubGVuZ3RoJywgJzEnKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZSgndmlkZW8udmlkZW9UcmFja3NbMF0uaWQnLCAnbWVkaWFT
dHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5pZCcpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygndmlkZW8udmlkZW9UcmFja3NbMF0ubGFuZ3VhZ2UnLCAnJyk7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd2aWRlby52aWRlb1RyYWNrc1swXS5r
aW5kJywgJ21haW4nKTsKKworICAgICAgICAgICAgICAgIGRlYnVnKCI8YnI+KioqKiBjaGVjayBu
byBhdWRpbyB0cmFjayAqKioqIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3ZpZGVvLmF1
ZGlvVHJhY2tzLmxlbmd0aCcsICcwJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ21lZGlh
U3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzAnKTsKKworICAgICAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBj
YW5wbGF5KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiPGJyPioqKiBz
dGFydCBwbGF5YmFjayAqKioqIik7CisgICAgICAgICAgICAgICAgZXZhbEFuZExvZygidmlkZW8u
cGxheSgpIik7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChjaGVja1ZpZGVvRWxlbWVudCwg
MTAwKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcmVtb3ZlQXVkaW9U
cmFjaygpIHsKKyAgICAgICAgICAgICAgICB0cmFjayA9IG1lZGlhU3RyZWFtLmdldEF1ZGlvVHJh
Y2tzKClbMF07CisgICAgICAgICAgICAgICAgZGVidWcoIjxicj4qKioqIHJlbW92aW5nIGF1ZGlv
IHRyYWNrICoqKioiKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAg
ICBtZWRpYVN0cmVhbS5yZW1vdmVUcmFjayh0cmFjayk7CisgICAgICAgICAgICAgICAgfSBjYXRj
aCAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoInJlbW92ZVRy
YWNrIHRocmV3IGFuIGV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoY2hl
Y2tWaWRlb0VsZW1lbnQyLCAxMDApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5j
dGlvbiBzZXR1cFN0cmVhbShzdHJlYW0pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
bWVkaWFTdHJlYW0gPSBzdHJlYW07CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnbWVkaWFE
ZXZpY2VzLmdldFVzZXJNZWRpYSBzdWNjZWVkZWQuJyk7CisKKyAgICAgICAgICAgICAgICBkZWJ1
ZygiPGJyPioqKiogc2V0dXAgdmlkZW8gZWxlbWVudCAqKioqIik7CisgICAgICAgICAgICAgICAg
ZXZhbEFuZExvZygidmlkZW8uc3JjT2JqZWN0ID0gbWVkaWFTdHJlYW0iKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RhcnQoKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBjaGVja2luZyByZW1vdmluZyBNZWRpYVN0cmVh
bSB0cmFjayBhcHBsaWVzIHRvIHRoZSB2aWRlbyBlbGVtZW50LiIpOworICAgICAgICAgICAgICAg
IHZpZGVvID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8nKTsKKyAgICAgICAgICAgICAg
ICBsb2dFdmVudCh2aWRlbywgJ2NhbnBsYXknLCBjYW5wbGF5KQorCisgICAgICAgICAgICAgICAg
ZGVidWcoIjxicj4qKioqIGNhbGxpbmcgbWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSgpICoqKioi
KTsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKKyAgICAgICAg
ICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSgge3ZpZGVvOiB0cnVl
LCBhdWRpbzogdHJ1ZX0gKQorICAgICAgICAgICAgICAgICAgICAudGhlbihzZXR1cFN0cmVhbSkK
KyAgICAgICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uKHJlYXNvbikgeworICAgICAgICAg
ICAgICAgICAgICAgICAgZGVidWcoYFN0cmVhbSBnZW5lcmF0aW9uIGZhaWxlZCB3aXRoIGVycm9y
OiAke3JlYXNvbn1gKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgICAgIHdp
bmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJzdGFydCgpIj4KKyAgICAgICAgPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+CisgICAgICAgIDx2aWRlbyBjb250cm9scyAgd2lkdGg9IjY4MCIgaGVpZ2h0
PSIzNjAiPjwvdmlkZW8+CisgICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355048</attachid>
            <date>2018-11-16 05:24:05 -0800</date>
            <delta_ts>2018-11-16 06:01:27 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-191599-20181116102403.patch</filename>
            <type>text/plain</type>
            <size>17426</size>
            <attacher name="Thibault Saunier">tsaunier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzU3ZWIyMzY5ZmRiMDBh
NWI5ZWZhMjI4ZDEzZDcxNDViMzlmZTQ5MC4uODlkZjY4OTAxZTE3Yjg4MWU2MDRkMTg0ZjdhMzlk
NmQ2NDYxMDRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTExLTEzICBUaGli
YXVsdCBTYXVuaWVyICA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XVtNZWRpYVN0cmVhbV0gSGFuZGxlIHRyYWNrIGFkZGl0aW9uIGFuZCByZW1vdmFsCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE1OTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBYYWJpZXIgUm9kcmlndWV6LUNhbHZhci4KKworICAgICAgICBUZXN0OiBm
YXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtcmVtb3ZlLXRyYWNrLmh0
bWwKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJN
ZWRpYVN0cmVhbVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRNZWRpYVN0cmVh
bU9ic2VydmVyOjp+V2ViS2l0TWVkaWFTdHJlYW1PYnNlcnZlcik6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXRNZWRpYVN0cmVhbU9ic2VydmVyOjpXZWJLaXRNZWRpYVN0cmVhbU9ic2VydmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OndlYmtpdE1lZGlhU3RyZWFtU3JjRmluYWxpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6d2Via2l0TWVkaWFTdHJlYW1TcmNDaGFuZ2VTdGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjp3ZWJraXRfbWVkaWFfc3RyZWFtX3NyY19pbml0KToKKyAgICAgICAgKFdlYkNvcmU6
OndlYmtpdE1lZGlhU3RyZWFtU3JjU2V0dXBTcmMpOgorICAgICAgICAoV2ViQ29yZTo6d2Via2l0
TWVkaWFTdHJlYW1TcmNBZGRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjp3ZWJraXRNZWRpYVN0
cmVhbVNyY1JlbW92ZVRyYWNrQnlUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OndlYmtpdE1lZGlh
U3RyZWFtU3JjU2V0U3RyZWFtKToKKwogMjAxOC0xMS0xMyAgVGhpYmF1bHQgU2F1bmllciAgPHRz
YXVuaWVyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bV2ViUlRDXSBBZGQgc3Vw
cG9ydCBmb3Igc2VuZGluZyBzaWxlbmNlIG9yIHNpbGVuY2luZyBhbiBpbmNvbWluZyB0cmFjawpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVy
L0dTdHJlYW1lck1lZGlhU3RyZWFtU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9HU3RyZWFtZXJNZWRpYVN0cmVhbVNvdXJjZS5jcHAKaW5k
ZXggMDlhNDNlNjBjNGM0YmY2MzA5MTg0MmE4NjY5NmY5ZTI1MDFiNjQ4Zi4uMjUxM2NhOTRiZTlj
N2UwMDBjNDY2MDhjYTExMGRjYWUxMzc4YWMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhU3RyZWFtU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3BwCkBAIC00MSw2ICs0MSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIHN0YXRpYyB2b2lkIHdlYmtpdE1lZGlhU3RyZWFtU3JjUHVzaFZpZGVvU2Ft
cGxlKFdlYktpdE1lZGlhU3RyZWFtU3JjKiBzZWxmLCBHc3RTYW1wbGUqIGdzdHNhbXBsZSk7CiBz
dGF0aWMgdm9pZCB3ZWJraXRNZWRpYVN0cmVhbVNyY1B1c2hBdWRpb1NhbXBsZShXZWJLaXRNZWRp
YVN0cmVhbVNyYyogc2VsZiwgR3N0U2FtcGxlKiBnc3RzYW1wbGUpOwogc3RhdGljIHZvaWQgd2Vi
a2l0TWVkaWFTdHJlYW1TcmNUcmFja0VuZGVkKFdlYktpdE1lZGlhU3RyZWFtU3JjKiBzZWxmLCBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpOworc3RhdGljIHZvaWQgd2Via2l0TWVkaWFTdHJlYW1T
cmNBZGRUcmFjayhXZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUqKTsKK3N0YXRpYyB2b2lkIHdlYmtpdE1lZGlhU3RyZWFtU3JjUmVtb3ZlVHJhY2tCeVR5
cGUoV2ViS2l0TWVkaWFTdHJlYW1TcmMqIHNlbGYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUg
dHJhY2tUeXBlKTsKIAogc3RhdGljIEdzdFN0YXRpY1BhZFRlbXBsYXRlIHZpZGVvU3JjVGVtcGxh
dGUgPSBHU1RfU1RBVElDX1BBRF9URU1QTEFURSgidmlkZW9fc3JjIiwKICAgICBHU1RfUEFEX1NS
QywKQEAgLTkzLDcgKzk1LDcgQEAgR3N0U3RyZWFtKiB3ZWJraXRNZWRpYVN0cmVhbU5ldyhNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSogdHJhY2spCiAgICAgICAgIGNhcHMgPSBhZG9wdEdSZWYoZ3N0
X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMoJnZpZGVvU3JjVGVtcGxhdGUpKTsKICAgICAg
ICAgdHlwZSA9IEdTVF9TVFJFQU1fVFlQRV9WSURFTzsKICAgICB9IGVsc2UgewotICAgICAgICBH
U1RfRklYTUUoIkhhbmRsZSAlZCB0eXBlIiwgKGdpbnQpIHRyYWNrLT50eXBlKCkpOworICAgICAg
ICBHU1RfRklYTUUoIkhhbmRsZSAlZCB0eXBlIiwgc3RhdGljX2Nhc3Q8aW50Pih0cmFjay0+dHlw
ZSgpKSk7CiAKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtMTQyLDYgKzE0NCwz
MCBAQCBwcml2YXRlOgogICAgIFdlYktpdE1lZGlhU3RyZWFtU3JjKiBtX21lZGlhU3RyZWFtU3Jj
OwogfTsKIAorY2xhc3MgV2ViS2l0TWVkaWFTdHJlYW1PYnNlcnZlcgorICAgIDogcHVibGljIE1l
ZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYktp
dE1lZGlhU3RyZWFtT2JzZXJ2ZXIoKSB7IH07CisgICAgV2ViS2l0TWVkaWFTdHJlYW1PYnNlcnZl
cihXZWJLaXRNZWRpYVN0cmVhbVNyYyogc3JjKQorICAgICAgICA6IG1fbWVkaWFTdHJlYW1TcmMo
c3JjKSB7IH0KKworICAgIHZvaWQgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpIGZpbmFsIHsgR1NU
X0RFQlVHX09CSkVDVChtX21lZGlhU3RyZWFtU3JjLmdldCgpLCAicmVuZWdvdGlhdGlvbiBzaG91
bGQgaGFwcGVuIik7IH0KKyAgICB2b2lkIGFjdGl2ZVN0YXR1c0NoYW5nZWQoKSBmaW5hbCB7IH0K
KworICAgIHZvaWQgZGlkQWRkVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKSBm
aW5hbAorICAgIHsKKyAgICAgICAgd2Via2l0TWVkaWFTdHJlYW1TcmNBZGRUcmFjayhtX21lZGlh
U3RyZWFtU3JjLmdldCgpLCAmdHJhY2spOworICAgIH0KKworICAgIHZvaWQgZGlkUmVtb3ZlVHJh
Y2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKSBmaW5hbAorICAgIHsKKyAgICAgICAg
d2Via2l0TWVkaWFTdHJlYW1TcmNSZW1vdmVUcmFja0J5VHlwZShtX21lZGlhU3RyZWFtU3JjLmdl
dCgpLCB0cmFjay50eXBlKCkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBHUmVmUHRyPFdlYktp
dE1lZGlhU3RyZWFtU3JjPiBtX21lZGlhU3RyZWFtU3JjOworfTsKKwogdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdE1lZGlhU3RyZWFtU3JjQ2xhc3MgV2ViS2l0TWVkaWFTdHJlYW1TcmNDbGFzczsKIHN0
cnVjdCBfV2ViS2l0TWVkaWFTdHJlYW1TcmMgewogICAgIEdzdEJpbiBwYXJlbnRfaW5zdGFuY2U7
CkBAIC0xNTMsNyArMTc5LDggQEAgc3RydWN0IF9XZWJLaXRNZWRpYVN0cmVhbVNyYyB7CiAgICAg
R3N0RWxlbWVudCogdmlkZW9TcmM7CiAgICAgR3N0Q2xvY2tUaW1lIGZpcnN0RnJhbWVQdHM7CiAK
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0TWVkaWFTdHJlYW1UcmFja09ic2VydmVyPiBvYnNl
cnZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0TWVkaWFTdHJlYW1UcmFja09ic2VydmVy
PiBtZWRpYVN0cmVhbVRyYWNrT2JzZXJ2ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdE1l
ZGlhU3RyZWFtT2JzZXJ2ZXI+IG1lZGlhU3RyZWFtT2JzZXJ2ZXI7CiAgICAgdm9sYXRpbGUgZ2lu
dCBucGFkczsKICAgICBndWxvbmcgcHJvYmVpZDsKICAgICBSZWZQdHI8TWVkaWFTdHJlYW1Qcml2
YXRlPiBzdHJlYW07CkBAIC0yNjYsOCArMjkzLDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdE1lZGlh
U3RyZWFtU3JjRmluYWxpemUoR09iamVjdCogb2JqZWN0KQogICAgIFdlYktpdE1lZGlhU3RyZWFt
U3JjKiBzZWxmID0gV0VCS0lUX01FRElBX1NUUkVBTV9TUkMob2JqZWN0KTsKIAogICAgIEdTVF9P
QkpFQ1RfTE9DSyhzZWxmKTsKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogc2VsZi0+c3RyZWFtLT50
cmFja3MoKSkKLSAgICAgICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKCpzZWxmLT5vYnNlcnZlci5n
ZXQoKSk7CisgICAgaWYgKHNlbGYtPnN0cmVhbSkgeworICAgICAgICBmb3IgKGF1dG8mIHRyYWNr
IDogc2VsZi0+c3RyZWFtLT50cmFja3MoKSkKKyAgICAgICAgICAgIHRyYWNrLT5yZW1vdmVPYnNl
cnZlcigqc2VsZi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKKworICAgICAgICBz
ZWxmLT5zdHJlYW0tPnJlbW92ZU9ic2VydmVyKCpzZWxmLT5tZWRpYVN0cmVhbU9ic2VydmVyKTsK
KyAgICAgICAgc2VsZi0+c3RyZWFtID0gbnVsbHB0cjsKKyAgICB9CiAgICAgR1NUX09CSkVDVF9V
TkxPQ0soc2VsZik7CiAKICAgICBnX2NsZWFyX3BvaW50ZXIoJnNlbGYtPnVyaSwgZ19mcmVlKTsK
QEAgLTI4Myw3ICszMTUsNyBAQCBzdGF0aWMgR3N0U3RhdGVDaGFuZ2VSZXR1cm4gd2Via2l0TWVk
aWFTdHJlYW1TcmNDaGFuZ2VTdGF0ZShHc3RFbGVtZW50KiBlbGVtZW50LAogCiAgICAgICAgIEdT
VF9PQkpFQ1RfTE9DSyhzZWxmKTsKICAgICAgICAgZm9yIChhdXRvJiB0cmFjayA6IHNlbGYtPnN0
cmVhbS0+dHJhY2tzKCkpCi0gICAgICAgICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIoKnNlbGYt
Pm9ic2VydmVyLmdldCgpKTsKKyAgICAgICAgICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZlcigqc2Vs
Zi0+bWVkaWFTdHJlYW1UcmFja09ic2VydmVyLmdldCgpKTsKICAgICAgICAgR1NUX09CSkVDVF9V
TkxPQ0soc2VsZik7CiAgICAgfQogCkBAIC0zMTksNyArMzUxLDggQEAgc3RhdGljIHZvaWQgd2Vi
a2l0X21lZGlhX3N0cmVhbV9zcmNfY2xhc3NfaW5pdChXZWJLaXRNZWRpYVN0cmVhbVNyY0NsYXNz
KiBrbGFzcykKIAogc3RhdGljIHZvaWQgd2Via2l0X21lZGlhX3N0cmVhbV9zcmNfaW5pdChXZWJL
aXRNZWRpYVN0cmVhbVNyYyogc2VsZikKIHsKLSAgICBzZWxmLT5vYnNlcnZlciA9IHN0ZDo6bWFr
ZV91bmlxdWU8V2ViS2l0TWVkaWFTdHJlYW1UcmFja09ic2VydmVyPihzZWxmKTsKKyAgICBzZWxm
LT5tZWRpYVN0cmVhbVRyYWNrT2JzZXJ2ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYktpdE1lZGlh
U3RyZWFtVHJhY2tPYnNlcnZlcj4oc2VsZik7CisgICAgc2VsZi0+bWVkaWFTdHJlYW1PYnNlcnZl
ciA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViS2l0TWVkaWFTdHJlYW1PYnNlcnZlcj4oc2VsZik7CiAg
ICAgc2VsZi0+Zmxvd0NvbWJpbmVyID0gZ3N0X2Zsb3dfY29tYmluZXJfbmV3KCk7CiAgICAgc2Vs
Zi0+Zmlyc3RBdWRpb0J1ZmZlclB0cyA9IEdTVF9DTE9DS19USU1FX05PTkU7CiAgICAgc2VsZi0+
Zmlyc3RGcmFtZVB0cyA9IEdTVF9DTE9DS19USU1FX05PTkU7CkBAIC00MjAsNyArNDUzLDcgQEAg
c3RhdGljIGdib29sZWFuIHdlYmtpdE1lZGlhU3RyZWFtU3JjU2V0dXBTcmMoV2ViS2l0TWVkaWFT
dHJlYW1TcmMqIHNlbGYsCiAgICAgICAgIH0pOwogCiAgICAgaWYgKG9ic2VydmVfdHJhY2spCi0g
ICAgICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqc2VsZi0+b2JzZXJ2ZXIuZ2V0KCkpOworICAgICAg
ICB0cmFjay0+YWRkT2JzZXJ2ZXIoKnNlbGYtPm1lZGlhU3RyZWFtVHJhY2tPYnNlcnZlci5nZXQo
KSk7CiAKICAgICBnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KGVsZW1lbnQpOwog
ICAgIHJldHVybiBUUlVFOwpAQCAtNDUxLDM3ICs0ODQsNDcgQEAgc3RhdGljIHZvaWQgd2Via2l0
TWVkaWFTdHJlYW1TcmNQb3N0U3RyZWFtQ29sbGVjdGlvbihXZWJLaXRNZWRpYVN0cmVhbVNyYyog
c2VsZiwKICAgICAgICAgZ3N0X21lc3NhZ2VfbmV3X3N0cmVhbV9jb2xsZWN0aW9uKEdTVF9PQkpF
Q1Qoc2VsZiksIHNlbGYtPnN0cmVhbUNvbGxlY3Rpb24uZ2V0KCkpKTsKIH0KIAotZ2Jvb2xlYW4g
d2Via2l0TWVkaWFTdHJlYW1TcmNTZXRTdHJlYW0oV2ViS2l0TWVkaWFTdHJlYW1TcmMqIHNlbGYs
IE1lZGlhU3RyZWFtUHJpdmF0ZSogc3RyZWFtKQorc3RhdGljIHZvaWQgd2Via2l0TWVkaWFTdHJl
YW1TcmNBZGRUcmFjayhXZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUqIHRyYWNrKQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19N
RURJQV9TVFJFQU1fU1JDKHNlbGYpLCBGQUxTRSk7CisgICAgaWYgKHRyYWNrLT50eXBlKCkgPT0g
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pCisgICAgICAgIHdlYmtpdE1lZGlhU3Ry
ZWFtU3JjU2V0dXBBcHBTcmMoc2VsZiwgdHJhY2ssICZzZWxmLT5hdWRpb1NyYywgJmF1ZGlvU3Jj
VGVtcGxhdGUpOworICAgIGVsc2UgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6VmlkZW8pCisgICAgICAgIHdlYmtpdE1lZGlhU3RyZWFtU3JjU2V0dXBBcHBT
cmMoc2VsZiwgdHJhY2ssICZzZWxmLT52aWRlb1NyYywgJnZpZGVvU3JjVGVtcGxhdGUpOworICAg
IGVsc2UKKyAgICAgICAgR1NUX0lORk8oIlVuc3VwcG9ydGVkIHRyYWNrIHR5cGU6ICVkIiwgc3Rh
dGljX2Nhc3Q8aW50Pih0cmFjay0+dHlwZSgpKSk7Cit9CiAKLSAgICBpZiAoc2VsZi0+YXVkaW9T
cmMpIHsKLSAgICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKHNlbGYtPmF1ZGlvU3JjLCBHU1Rf
U1RBVEVfTlVMTCk7Ci0gICAgICAgIGdzdF9iaW5fcmVtb3ZlKEdTVF9CSU4oc2VsZiksIHNlbGYt
PmF1ZGlvU3JjKTsKLSAgICAgICAgc2VsZi0+YXVkaW9TcmMgPSBudWxscHRyOwotICAgIH0KK3N0
YXRpYyB2b2lkIHdlYmtpdE1lZGlhU3RyZWFtU3JjUmVtb3ZlVHJhY2tCeVR5cGUoV2ViS2l0TWVk
aWFTdHJlYW1TcmMqIHNlbGYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHJhY2tUeXBlKQor
eworICAgIGlmICh0cmFja1R5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8p
IHsKKyAgICAgICAgaWYgKHNlbGYtPmF1ZGlvU3JjKSB7CisgICAgICAgICAgICBnc3RfZWxlbWVu
dF9zZXRfc3RhdGUoc2VsZi0+YXVkaW9TcmMsIEdTVF9TVEFURV9OVUxMKTsKKyAgICAgICAgICAg
IGdzdF9iaW5fcmVtb3ZlKEdTVF9CSU4oc2VsZiksIHNlbGYtPmF1ZGlvU3JjKTsKKyAgICAgICAg
ICAgIHNlbGYtPmF1ZGlvU3JjID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAo
dHJhY2tUeXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKSB7CisgICAgICAg
IGlmIChzZWxmLT52aWRlb1NyYykgeworICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc2V0X3N0YXRl
KHNlbGYtPnZpZGVvU3JjLCBHU1RfU1RBVEVfTlVMTCk7CisgICAgICAgICAgICBnc3RfYmluX3Jl
bW92ZShHU1RfQklOKHNlbGYpLCBzZWxmLT52aWRlb1NyYyk7CisgICAgICAgICAgICBzZWxmLT52
aWRlb1NyYyA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgR1NUX0lO
Rk8oIlVuc3VwcG9ydGVkIHRyYWNrIHR5cGU6ICVkIiwgc3RhdGljX2Nhc3Q8aW50Pih0cmFja1R5
cGUpKTsKK30KIAotICAgIGlmIChzZWxmLT52aWRlb1NyYykgewotICAgICAgICBnc3RfZWxlbWVu
dF9zZXRfc3RhdGUoc2VsZi0+dmlkZW9TcmMsIEdTVF9TVEFURV9OVUxMKTsKLSAgICAgICAgZ3N0
X2Jpbl9yZW1vdmUoR1NUX0JJTihzZWxmKSwgc2VsZi0+dmlkZW9TcmMpOwotICAgICAgICBzZWxm
LT52aWRlb1NyYyA9IG51bGxwdHI7Ci0gICAgfQorYm9vbCB3ZWJraXRNZWRpYVN0cmVhbVNyY1Nl
dFN0cmVhbShXZWJLaXRNZWRpYVN0cmVhbVNyYyogc2VsZiwgTWVkaWFTdHJlYW1Qcml2YXRlKiBz
dHJlYW0pCit7CisgICAgQVNTRVJUKFdFQktJVF9JU19NRURJQV9TVFJFQU1fU1JDKHNlbGYpKTsK
KworICAgIHdlYmtpdE1lZGlhU3RyZWFtU3JjUmVtb3ZlVHJhY2tCeVR5cGUoc2VsZiwgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pOworICAgIHdlYmtpdE1lZGlhU3RyZWFtU3JjUmVt
b3ZlVHJhY2tCeVR5cGUoc2VsZiwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pOwog
CiAgICAgd2Via2l0TWVkaWFTdHJlYW1TcmNQb3N0U3RyZWFtQ29sbGVjdGlvbihzZWxmLCBzdHJl
YW0pOwogCiAgICAgc2VsZi0+c3RyZWFtID0gc3RyZWFtOwotICAgIGZvciAoYXV0byYgdHJhY2sg
OiBzdHJlYW0tPnRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0cmFjay0+dHlwZSgpID09IFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKSB7Ci0gICAgICAgICAgICB3ZWJraXRNZWRpYVN0
cmVhbVNyY1NldHVwQXBwU3JjKHNlbGYsIHRyYWNrLmdldCgpLCAmc2VsZi0+YXVkaW9TcmMsCi0g
ICAgICAgICAgICAgICAgJmF1ZGlvU3JjVGVtcGxhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKHRy
YWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pIHsKLSAgICAg
ICAgICAgIHdlYmtpdE1lZGlhU3RyZWFtU3JjU2V0dXBBcHBTcmMoc2VsZiwgdHJhY2suZ2V0KCks
ICZzZWxmLT52aWRlb1NyYywKLSAgICAgICAgICAgICAgICAmdmlkZW9TcmNUZW1wbGF0ZSk7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBHU1RfSU5GTygiVW5zdXBvcnRlZCB0cmFjayB0
eXBlOiAlZCIsIChnaW50KSB0cmFjay0+dHlwZSgpKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICB9Ci0gICAgfQorICAgIHNlbGYtPnN0cmVhbS0+YWRkT2JzZXJ2ZXIoKnNlbGYtPm1l
ZGlhU3RyZWFtT2JzZXJ2ZXIuZ2V0KCkpOworICAgIGZvciAoYXV0byYgdHJhY2sgOiBzdHJlYW0t
PnRyYWNrcygpKQorICAgICAgICB3ZWJraXRNZWRpYVN0cmVhbVNyY0FkZFRyYWNrKHNlbGYsIHRy
YWNrLmdldCgpKTsKIAogICAgIHJldHVybiBUUlVFOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0dTdHJlYW1lck1lZGlhU3RyZWFt
U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIv
R1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuaAppbmRleCBlYjQxMTJlNzA3ZjU3YmRlMjFiYTUx
NzRiN2MzMjJhMTgxNjFhNDc0Li4xNTk5YmFlNzg2MjcxNGE3YmI5ZDM0MmNlNGEzMjA4MDI2NDM0
NjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2Uu
aApAQCAtNDAsNyArNDAsNyBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TWVkaWFTdHJlYW1TcmMg
V2ViS2l0TWVkaWFTdHJlYW1TcmM7CiAjZGVmaW5lIFdFQktJVF9JU19NRURJQV9TVFJFQU1fU1JD
KG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgobyksIFdFQktJVF9UWVBFX01FRElBX1NU
UkVBTV9TUkMpKQogI2RlZmluZSBXRUJLSVRfVFlQRV9NRURJQV9TVFJFQU1fU1JDICh3ZWJraXRf
bWVkaWFfc3RyZWFtX3NyY19nZXRfdHlwZSgpKQogR1R5cGUgd2Via2l0X21lZGlhX3N0cmVhbV9z
cmNfZ2V0X3R5cGUodm9pZCkgR19HTlVDX0NPTlNUOwotZ2Jvb2xlYW4gd2Via2l0TWVkaWFTdHJl
YW1TcmNTZXRTdHJlYW0oV2ViS2l0TWVkaWFTdHJlYW1TcmMqLCBNZWRpYVN0cmVhbVByaXZhdGUq
KTsKK2Jvb2wgd2Via2l0TWVkaWFTdHJlYW1TcmNTZXRTdHJlYW0oV2ViS2l0TWVkaWFTdHJlYW1T
cmMqLCBNZWRpYVN0cmVhbVByaXZhdGUqKTsKIH0gLy8gV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5B
QkxFKFZJREVPKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoTElCV0VCUlRDKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGJjYTcwN2QwNmJhYWE2Mzg0N2VkNmE1OTkyYzYxNDViNTU2YmEwMDguLmY3MmI3MmY5YWE5
YzQwMDA2ODNlMjY4MzIyMmE1MDhhODhiMjc2ZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
OC0xMS0xMyAgVGhpYmF1bHQgU2F1bmllciAgPHRzYXVuaWVyQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dTdHJlYW1lcl1bTWVkaWFTdHJlYW1dIEhhbmRsZSB0cmFjayBhZGRpdGlvbiBhbmQgcmVt
b3ZhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkx
NTk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWGFiaWVyIFJvZHJpZ3Vlei1DYWx2YXIuCisKKyAg
ICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLXZpZGVvLWVsZW1lbnQtcmVtb3Zl
LXRyYWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXJlbW92ZS10cmFjay5odG1sOiBBZGRlZC4KKwogMjAx
OC0xMS0xNCAgQWxpIEp1bWEgIDxhanVtYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVHJhbnNm
b3JtIG9mIGNvbXBvc2l0ZWQgbGF5ZXIgbm90IHVwZGF0ZWQgd2hlbiBsYXllciBhbHNvIG5lZWRz
IHJlcGFpbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0tdmlkZW8tZWxlbWVudC1yZW1vdmUtdHJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXJlbW92ZS10cmFj
ay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjA2ZmE1NGY1NThjNzg0NWQ4MGQ2ZjU3ZTM0MjNi
YmJjZjI1NTM4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW0tdmlkZW8tZWxlbWVudC1yZW1vdmUtdHJhY2stZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNDcgQEAKK1Rlc3RzIGNoZWNraW5nIHJlbW92aW5nIE1lZGlhU3RyZWFtIHRyYWNr
IGFwcGxpZXMgdG8gdGhlIHZpZGVvIGVsZW1lbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCisKKworKioqKiBjYWxsaW5nIG1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoKSAqKioq
CitQQVNTIG1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEgc3VjY2VlZGVkLgorCisqKioqIHNldHVw
IHZpZGVvIGVsZW1lbnQgKioqKgordmlkZW8uc3JjT2JqZWN0ID0gbWVkaWFTdHJlYW0KK0V2ZW50
ICdjYW5wbGF5JworCisqKiogc3RhcnQgcGxheWJhY2sgKioqKgordmlkZW8ucGxheSgpCit2aWRl
by5wYXVzZSgpCisKKyoqKiogY2hlY2sgdmlkZW8gZWxlbWVudCAqKioqCisKKyoqKiogY2hlY2sg
dmlkZW8gdHJhY2tzICoqKioKK1BBU1MgdmlkZW8udmlkZW9UcmFja3MubGVuZ3RoIGlzIDEKK1BB
U1MgdmlkZW8udmlkZW9UcmFja3NbMF0uaWQgaXMgbWVkaWFTdHJlYW0uZ2V0VmlkZW9UcmFja3Mo
KVswXS5pZAorCisqKioqIGNoZWNrIGF1ZGlvIHRyYWNrcyAqKioqCitQQVNTIHZpZGVvLmF1ZGlv
VHJhY2tzLmxlbmd0aCBpcyAxCitQQVNTIHZpZGVvLmF1ZGlvVHJhY2tzWzBdLmlkIGlzIG1lZGlh
U3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0uaWQKKworKioqKiByZW1vdmluZyBhdWRpbyB0cmFj
ayAqKioqCisKKyoqKiogY2hlY2sgdmlkZW8gZWxlbWVudCAqKioqCitQQVNTIHZpZGVvLnZpZGVv
V2lkdGggaXMgbWVkaWFTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5nZXRTZXR0aW5ncygpLndp
ZHRoCitQQVNTIHZpZGVvLnZpZGVvSGVpZ2h0IGlzIG1lZGlhU3RyZWFtLmdldFZpZGVvVHJhY2tz
KClbMF0uZ2V0U2V0dGluZ3MoKS5oZWlnaHQKKworKioqKiBjaGVjayB2aWRlbyB0cmFja3MgKioq
KgorUEFTUyB2aWRlby52aWRlb1RyYWNrcy5sZW5ndGggaXMgMQorUEFTUyB2aWRlby52aWRlb1Ry
YWNrc1swXS5pZCBpcyBtZWRpYVN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLmlkCitQQVNTIHZp
ZGVvLnZpZGVvVHJhY2tzWzBdLmxhbmd1YWdlIGlzICIiCitQQVNTIHZpZGVvLnZpZGVvVHJhY2tz
WzBdLmtpbmQgaXMgIm1haW4iCisKKyoqKiogY2hlY2sgbm8gYXVkaW8gdHJhY2sgKioqKgorUEFT
UyB2aWRlby5hdWRpb1RyYWNrcy5sZW5ndGggaXMgMAorUEFTUyBtZWRpYVN0cmVhbS5nZXRBdWRp
b1RyYWNrcygpLmxlbmd0aCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXJlbW92ZS10cmFjay5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS12aWRlby1lbGVtZW50LXJlbW92ZS10cmFj
ay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIzMjFlNzJkYjUyOTEzNTFmZmI4NjVlMWEyN2Q3ZjJiZGY1NjY3
OTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtLXZpZGVvLWVsZW1lbnQtcmVtb3ZlLXRyYWNrLmh0bWwKQEAgLTAsMCArMSwxMTIgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
ICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIHZhciB2aWRl
bzsKKyAgICAgICAgICAgIHZhciBtZWRpYVN0cmVhbTsKKworICAgICAgICAgICAgZnVuY3Rpb24g
bG9nRXZlbnQoZWxlbWVudCwgZXZlbnROYW1lLCBmdW5jKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uIF9ldmVudENhbGxiYWNrKGV2dCkKKyAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cud2FzRmluaXNoSlNUZXN0Q2FsbGVkKQor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgICAgIGRl
YnVnKGBFdmVudCA8ZW0+JyR7ZXZ0LnR5cGV9JzwvZW0+YCk7CisgICAgICAgICAgICAgICAgICAg
IGlmIChmdW5jKQorICAgICAgICAgICAgICAgICAgICAgICAgZnVuYyhldnQpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRO
YW1lLCBfZXZlbnRDYWxsYmFjaywgdHJ1ZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uIGNoZWNrVmlkZW9FbGVtZW50KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBldmFsQW5kTG9nKCJ2aWRlby5wYXVzZSgpIik7CisKKyAgICAgICAgICAgICAgICBkZWJ1
ZygiPGJyPioqKiogY2hlY2sgdmlkZW8gZWxlbWVudCAqKioqIik7CisgICAgICAgICAgICAgICAg
ZGVidWcoIjxicj4qKioqIGNoZWNrIHZpZGVvIHRyYWNrcyAqKioqIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoJ3ZpZGVvLnZpZGVvVHJhY2tzLmxlbmd0aCcsICcxJyk7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmUoJ3ZpZGVvLnZpZGVvVHJhY2tzWzBdLmlkJywgJ21lZGlhU3RyZWFtLmdl
dFZpZGVvVHJhY2tzKClbMF0uaWQnKTsKKworICAgICAgICAgICAgICAgIGRlYnVnKCI8YnI+Kioq
KiBjaGVjayBhdWRpbyB0cmFja3MgKioqKiIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCd2
aWRlby5hdWRpb1RyYWNrcy5sZW5ndGgnLCAnMScpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
KCd2aWRlby5hdWRpb1RyYWNrc1swXS5pZCcsICdtZWRpYVN0cmVhbS5nZXRBdWRpb1RyYWNrcygp
WzBdLmlkJyk7CisKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KHJlbW92ZUF1ZGlvVHJhY2ss
IDEwMCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNoZWNrVmlkZW9F
bGVtZW50MigpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZGVidWcoIjxicj4qKioq
IGNoZWNrIHZpZGVvIGVsZW1lbnQgKioqKiIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCd2
aWRlby52aWRlb1dpZHRoJywgJ21lZGlhU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uZ2V0U2V0
dGluZ3MoKS53aWR0aCcpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCd2aWRlby52aWRlb0hl
aWdodCcsICdtZWRpYVN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLmdldFNldHRpbmdzKCkuaGVp
Z2h0Jyk7CisKKyAgICAgICAgICAgICAgICBkZWJ1ZygiPGJyPioqKiogY2hlY2sgdmlkZW8gdHJh
Y2tzICoqKioiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgndmlkZW8udmlkZW9UcmFja3Mu
bGVuZ3RoJywgJzEnKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgndmlkZW8udmlkZW9UcmFj
a3NbMF0uaWQnLCAnbWVkaWFTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5pZCcpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndmlkZW8udmlkZW9UcmFja3NbMF0ubGFu
Z3VhZ2UnLCAnJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd2aWRl
by52aWRlb1RyYWNrc1swXS5raW5kJywgJ21haW4nKTsKKworICAgICAgICAgICAgICAgIGRlYnVn
KCI8YnI+KioqKiBjaGVjayBubyBhdWRpbyB0cmFjayAqKioqIik7CisgICAgICAgICAgICAgICAg
c2hvdWxkQmUoJ3ZpZGVvLmF1ZGlvVHJhY2tzLmxlbmd0aCcsICcwJyk7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmUoJ21lZGlhU3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzAnKTsK
KworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBmdW5jdGlvbiBjYW5wbGF5KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBkZWJ1ZygiPGJyPioqKiBzdGFydCBwbGF5YmFjayAqKioqIik7CisgICAgICAgICAgICAgICAg
ZXZhbEFuZExvZygidmlkZW8ucGxheSgpIik7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChj
aGVja1ZpZGVvRWxlbWVudCwgMTAwKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVu
Y3Rpb24gcmVtb3ZlQXVkaW9UcmFjaygpIHsKKyAgICAgICAgICAgICAgICB0cmFjayA9IG1lZGlh
U3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07CisgICAgICAgICAgICAgICAgZGVidWcoIjxicj4q
KioqIHJlbW92aW5nIGF1ZGlvIHRyYWNrICoqKioiKTsKKyAgICAgICAgICAgICAgICB0cnkgewor
ICAgICAgICAgICAgICAgICAgICBtZWRpYVN0cmVhbS5yZW1vdmVUcmFjayh0cmFjayk7CisgICAg
ICAgICAgICAgICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoInJlbW92ZVRyYWNrIHRocmV3IGFuIGV4Y2VwdGlvbi4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIHNldFRpbWVvdXQoY2hlY2tWaWRlb0VsZW1lbnQyLCAxMDApOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmdW5jdGlvbiBzZXR1cFN0cmVhbShzdHJlYW0pCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgbWVkaWFTdHJlYW0gPSBzdHJlYW07CisgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCgnbWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSBzdWNjZWVkZWQuJyk7CisKKyAg
ICAgICAgICAgICAgICBkZWJ1ZygiPGJyPioqKiogc2V0dXAgdmlkZW8gZWxlbWVudCAqKioqIik7
CisgICAgICAgICAgICAgICAgZXZhbEFuZExvZygidmlkZW8uc3JjT2JqZWN0ID0gbWVkaWFTdHJl
YW0iKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gc3RhcnQoKQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBjaGVja2luZyBy
ZW1vdmluZyBNZWRpYVN0cmVhbSB0cmFjayBhcHBsaWVzIHRvIHRoZSB2aWRlbyBlbGVtZW50LiIp
OworICAgICAgICAgICAgICAgIHZpZGVvID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmlkZW8n
KTsKKyAgICAgICAgICAgICAgICBsb2dFdmVudCh2aWRlbywgJ2NhbnBsYXknLCBjYW5wbGF5KQor
CisgICAgICAgICAgICAgICAgZGVidWcoIjxicj4qKioqIGNhbGxpbmcgbWVkaWFEZXZpY2VzLmdl
dFVzZXJNZWRpYSgpICoqKioiKTsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lv
bih0cnVlKTsKKyAgICAgICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJN
ZWRpYSgge3ZpZGVvOiB0cnVlLCBhdWRpbzogdHJ1ZX0gKQorICAgICAgICAgICAgICAgICAgICAu
dGhlbihzZXR1cFN0cmVhbSkKKyAgICAgICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uKHJl
YXNvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoYFN0cmVhbSBnZW5lcmF0aW9u
IGZhaWxlZCB3aXRoIGVycm9yOiAke3JlYXNvbn1gKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKyAgICAgICAgICAgIHdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgICAg
ICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJzdGFydCgpIj4KKyAg
ICAgICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CisgICAgICAgIDx2aWRlbyBjb250cm9scyAg
d2lkdGg9IjY4MCIgaGVpZ2h0PSIzNjAiPjwvdmlkZW8+CisgICAgICAgIDxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>