<?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>191490</bug_id>
          
          <creation_ts>2018-11-09 15:12:00 -0800</creation_ts>
          <short_desc>RealtimeOutgoing A/V sources should observe their sources only if having a sink</short_desc>
          <delta_ts>2018-11-12 11:50:38 -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>WebRTC</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1477135</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-11-09 15:12:00 -0800</bug_when>
    <thetext>This is useless otherwise</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477139</commentid>
    <comment_count>1</comment_count>
      <attachid>354395</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-11-09 15:37:55 -0800</bug_when>
    <thetext>Created attachment 354395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477184</commentid>
    <comment_count>2</comment_count>
      <attachid>354413</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-11-09 16:42:16 -0800</bug_when>
    <thetext>Created attachment 354413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477233</commentid>
    <comment_count>3</comment_count>
      <attachid>354434</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-11-09 20:46:27 -0800</bug_when>
    <thetext>Created attachment 354434
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477239</commentid>
    <comment_count>4</comment_count>
      <attachid>354438</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-11-09 21:21:04 -0800</bug_when>
    <thetext>Created attachment 354438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477578</commentid>
    <comment_count>5</comment_count>
      <attachid>354438</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-11-12 08:29:15 -0800</bug_when>
    <thetext>Comment on attachment 354438
Patch

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

&gt; Source/WebCore/platform/mediastream/RealtimeOutgoingAudioSource.cpp:65
&gt; +    observeSource();

As we discussed, this shouldn&apos;t be necessary because you also call it in AddSink.

&gt; Source/WebCore/platform/mediastream/RealtimeOutgoingVideoSource.cpp:73
&gt; +    observeSource();

Ditto.

&gt; Source/WebCore/platform/mediastream/RealtimeOutgoingVideoSource.cpp:81
&gt;      m_videoSource-&gt;removeObserver(*this);

Nit: why does RealtimeOutgoingAudioSource have unobserveSource and RealtimeOutgoingVideoSource just calls removeObserver?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477625</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-11-12 10:27:50 -0800</bug_when>
    <thetext>Thanks for the review.

(In reply to Eric Carlson from comment #5)
&gt; Comment on attachment 354438 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=354438&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/RealtimeOutgoingAudioSource.cpp:65
&gt; &gt; +    observeSource();
&gt; 
&gt; As we discussed, this shouldn&apos;t be necessary because you also call it in
&gt; AddSink.

Yes, I will lock the sinks so that we observe/unobserve appropriately.

&gt; &gt; Source/WebCore/platform/mediastream/RealtimeOutgoingVideoSource.cpp:73
&gt; &gt; +    observeSource();
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/RealtimeOutgoingVideoSource.cpp:81
&gt; &gt;      m_videoSource-&gt;removeObserver(*this);
&gt; 
&gt; Nit: why does RealtimeOutgoingAudioSource have unobserveSource and
&gt; RealtimeOutgoingVideoSource just calls removeObserver?

I will add unobserveSource.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477645</commentid>
    <comment_count>7</comment_count>
      <attachid>354571</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-11-12 11:00:36 -0800</bug_when>
    <thetext>Created attachment 354571
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477658</commentid>
    <comment_count>8</comment_count>
      <attachid>354571</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-12 11:49:20 -0800</bug_when>
    <thetext>Comment on attachment 354571
Patch for landing

Clearing flags on attachment: 354571

Committed r238102: &lt;https://trac.webkit.org/changeset/238102&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477659</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-12 11:49:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477660</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-12 11:50:38 -0800</bug_when>
    <thetext>&lt;rdar://problem/45998054&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354395</attachid>
            <date>2018-11-09 15:37:55 -0800</date>
            <delta_ts>2018-11-09 16:42:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191490-20181109153753.patch</filename>
            <type>text/plain</type>
            <size>19290</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3ODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdjNTU0ZWIzZTUxOGU0
ZThmZWU0NTIxMzdjMTQ5ZGRmYjVjZjIwMy4uYjllYTQxZjhiM2ZkNjM5OWE5OWQ2ZjVmNTRlODhl
NzQ5YTIwMDQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTExLTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWFsdGltZU91dGdvaW5n
IEEvViBzb3VyY2VzIHNob3VsZCBvYnNlcnZlIHRoZWlyIHNvdXJjZXMgb25seSBpZiBoYXZpbmcg
YSBzaW5rCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTE0OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBP
YnNlcnZlIHRoZSBzb3VyY2UgdGhhdCBnZW5lcmF0ZXMgbWVkaWEgYmFzZWQgb24gdGhlIHNpbmtz
OgorICAgICAgICAtIERvIG5vdCBvYnNlcnZlIGF0IGNyZWF0aW9uIHRpbWUKKyAgICAgICAgLSBG
b3IgZmlyc3Qgc2luaywgc3RhcnQgb2JzZXJ2aW5nCisgICAgICAgIC0gV2hlbiBubyBtb3JlIHNp
bmssIHN0b3Agb2JzZXJ2aW5nCisgICAgICAgIEFwcGx5IHRoaXMgcHJpbmNpcGxlIGZvciBib3Ro
IG91dGdvaW5nIGF1ZGlvIGFuZCB2aWRlbyBzb3VyY2VzLgorICAgICAgICBBZGQgbG9ja3MgZm9y
IHRoZSBzaW5rcyB0byBlbnN1cmUgdGhyZWFkLXNhZmV0eS4KKyAgICAgICAgTWFrZSBzaW5rcyBI
YXNoU2V0IHdoaWNoIGlzIG1vcmUgcm9idXN0LgorCisgICAgICAgIERvIHNvbWUgcmVmYWN0b3Jp
bmcgdG8gYmV0dGVyIGlzb2xhdGUgZ2VuZXJpYyBvdXRnb2luZyBzb3VyY2VzIGZyb20gQ29jb2Ev
R1RLIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
IGFuZCB1cGRhdGVkIHdlYnJ0Yy9yZW1vdmUtdHJhY2suaHRtbC4KKworICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6On5SZWFsdGltZU91dGdvaW5n
QXVkaW9Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJj
ZTo6QWRkU2luayk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3Vy
Y2U6OlJlbW92ZVNpbmspOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlOjpzZW5kQXVkaW9GcmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6On5SZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlOjpvYnNlcnZlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2V0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OkFkZE9yVXBkYXRlU2luayk6CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OlJlbW92ZVNpbmspOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjppc1NpbGVuY2VkIGNv
bnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6cHVsbEF1ZGlvRGF0YSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNv
Y29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNv
Y29hOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hOjpw
dWxsQXVkaW9EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2E6OnNhbXBsZUJ1ZmZlclVw
ZGF0ZWQpOgorCiAyMDE4LTExLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBBbGxvdyBzZXR0aW5nIFJUQ1J0cFRyYW5zY2VpdmVyLmRpcmVjdGlvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAKaW5kZXggYWZhMTNlMWViNWY0NTgyZjBm
OGM0MmFjNDdjYTM4ZDhiNjljZDMwMi4uZTIzOTM0ZjlmOTVlMTU0OTEwZmUzYTI2ZTQyZTE4MzUz
YzRlMDY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCkBAIC00MSw2
ICs0MSwxMiBAQCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OlJlYWx0aW1lT3V0Z29pbmdB
dWRpb1NvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaQogewogfQogCitSZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2U6On5SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UoKQoreworICAgIEFT
U0VSVChtX3NpbmtzLmlzRW1wdHkoKSk7CisgICAgc3RvcCgpOworfQorCiB2b2lkIFJlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZTo6b2JzZXJ2ZVNvdXJjZSgpCiB7CiAgICAgbV9hdWRpb1NvdXJj
ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwpAQCAtNjUsNyArNzEsNiBAQCB2b2lkIFJlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZTo6aW5pdGlhbGl6ZUNvbnZlcnRlcigpCiAKIHZvaWQgUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlOjpzdG9wKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogICAgIG1fYXVkaW9Tb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKIH0KIApAQCAtNzks
NiArODQsMzQgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNvdXJjZUVuYWJs
ZWRDaGFuZ2VkKCkKICAgICBtX2VuYWJsZWQgPSBtX2F1ZGlvU291cmNlLT5lbmFibGVkKCk7CiB9
CiAKK3ZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpBZGRTaW5rKHdlYnJ0Yzo6QXVk
aW9UcmFja1NpbmtJbnRlcmZhY2UqIHNpbmspCit7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9j
ayhtX3NpbmtzTG9jayk7CisgICAgaWYgKCFtX3NpbmtzLmFkZChzaW5rKSB8fCBtX3NpbmtzLnNp
emUoKSAhPSAxKQorICAgICAgICByZXR1cm47CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKCkgeworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5v
YnNlcnZlU291cmNlKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlOjpSZW1vdmVTaW5rKHdlYnJ0Yzo6QXVkaW9UcmFja1NpbmtJbnRlcmZhY2UqIHNpbmsp
Cit7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NpbmtzTG9jayk7CisgICAgaWYgKCFt
X3NpbmtzLnJlbW92ZShzaW5rKSB8fCAhbV9zaW5rcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fYXVkaW9Tb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKK30KKwordm9p
ZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNlbmRBdWRpb0ZyYW1lcyhjb25zdCB2b2lk
KiBhdWRpb0RhdGEsIGludCBiaXRzUGVyU2FtcGxlLCBpbnQgc2FtcGxlUmF0ZSwgc2l6ZV90IG51
bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsKKyAgICBmb3IgKGF1dG8gc2luayA6IG1fc2lua3Mp
CisgICAgICAgIHNpbmstPk9uRGF0YShhdWRpb0RhdGEsIGJpdHNQZXJTYW1wbGUsIHNhbXBsZVJh
dGUsIG51bWJlck9mQ2hhbm5lbHMsIG51bWJlck9mRnJhbWVzKTsKK30KKworCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2UuaAppbmRleCA4NjUxZWQxMDQ2ZTFiNzRmYjdkYWE4NmExZDc2YTM5ZWU2
YWEzNTQ2Li5hNDUzNTlkMzNlY2VkOTA4NWNiMjM3ZmMzMmNiZDg5ODZhMTcwZTI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5n
QXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaApAQCAtNTQsNyArNTQsNyBAQCBjbGFzcyBSZWFs
dGltZU91dGdvaW5nQXVkaW9Tb3VyY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVh
bHRpbWVPdXRnb2luZwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UmVhbHRpbWVPdXRnb2luZ0F1
ZGlvU291cmNlPiBjcmVhdGUoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmIGF1ZGlvU291
cmNlKTsKIAotICAgIH5SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UoKSB7IHN0b3AoKTsgfQor
ICAgIH5SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UoKTsKIAogICAgIHZvaWQgc3RvcCgpOwog
CkBAIC02NCwxNyArNjQsMTYgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFJl
YWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYp
OwogCi0gICAgdm9pZCBvYnNlcnZlU291cmNlKCk7Ci0KICAgICB2aXJ0dWFsIHZvaWQgcHVsbEF1
ZGlvRGF0YSgpIHsgfQogCiAgICAgYm9vbCBpc1NpbGVuY2VkKCkgY29uc3QgeyByZXR1cm4gbV9t
dXRlZCB8fCAhbV9lbmFibGVkOyB9CiAKLSAgICBWZWN0b3I8d2VicnRjOjpBdWRpb1RyYWNrU2lu
a0ludGVyZmFjZSo+IG1fc2lua3M7CisgICAgdm9pZCBzZW5kQXVkaW9GcmFtZXMoY29uc3Qgdm9p
ZCogYXVkaW9EYXRhLCBpbnQgYml0c1BlclNhbXBsZSwgaW50IHNhbXBsZVJhdGUsIHNpemVfdCBu
dW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpOwogCiBwcml2YXRlOgotICAg
IHZpcnR1YWwgdm9pZCBBZGRTaW5rKHdlYnJ0Yzo6QXVkaW9UcmFja1NpbmtJbnRlcmZhY2UqIHNp
bmspIHsgbV9zaW5rcy5hcHBlbmQoc2luayk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgUmVtb3ZlU2lu
ayh3ZWJydGM6OkF1ZGlvVHJhY2tTaW5rSW50ZXJmYWNlKiBzaW5rKSB7IG1fc2lua3MucmVtb3Zl
Rmlyc3Qoc2luayk7IH0KKyAgICAvLyB3ZWJydGM6OkF1ZGlvU291cmNlSW50ZXJmYWNlIEFQSQor
ICAgIHZvaWQgQWRkU2luayh3ZWJydGM6OkF1ZGlvVHJhY2tTaW5rSW50ZXJmYWNlKikgZmluYWw7
CisgICAgdm9pZCBSZW1vdmVTaW5rKHdlYnJ0Yzo6QXVkaW9UcmFja1NpbmtJbnRlcmZhY2UqKSBm
aW5hbDsKIAogICAgIHZvaWQgQWRkUmVmKCkgY29uc3QgZmluYWwgeyByZWYoKTsgfQogICAgIHJ0
Yzo6UmVmQ291bnRSZWxlYXNlU3RhdHVzIFJlbGVhc2UoKSBjb25zdCBmaW5hbApAQCAtODksNiAr
ODgsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgUmVnaXN0ZXJPYnNlcnZlcih3ZWJydGM6Ok9ic2Vy
dmVySW50ZXJmYWNlKikgZmluYWwgeyB9CiAgICAgdm9pZCBVbnJlZ2lzdGVyT2JzZXJ2ZXIod2Vi
cnRjOjpPYnNlcnZlckludGVyZmFjZSopIGZpbmFsIHsgfQogCisgICAgdm9pZCBvYnNlcnZlU291
cmNlKCk7CisKICAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpOwogICAgIHZvaWQgc291cmNl
RW5hYmxlZENoYW5nZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxl
KGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgeyB9OwpAQCAtMTA5LDYgKzExMCw5IEBAIHByaXZh
dGU6CiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBtX2F1ZGlvU291cmNlOwogICAg
IGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuYWJsZWQgeyB0cnVlIH07CisK
KyAgICBtdXRhYmxlIFJlY3Vyc2l2ZUxvY2sgbV9zaW5rc0xvY2s7CisgICAgSGFzaFNldDx3ZWJy
dGM6OkF1ZGlvVHJhY2tTaW5rSW50ZXJmYWNlKj4gbV9zaW5rczsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDlk
YWVmNzk3OTc1N2RhNGUxOGI5MjcxODY2NDc4MzA4NWRiYTUxMzEuLjIyMzMzMGFmOWE3NDVkYmEy
YTZkNTM0NGQwMjgzNzk5NDBiZTY4MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlLmNwcApAQCAtNDcsNiArNDcsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogUmVhbHRpbWVP
dXRnb2luZ1ZpZGVvU291cmNlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UoUmVmPE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlPiYmIHZpZGVvU291cmNlKQogICAgIDogbV92aWRlb1NvdXJjZShX
VEZNb3ZlKHZpZGVvU291cmNlKSkKICAgICAsIG1fYmxhY2tGcmFtZVRpbWVyKCp0aGlzLCAmUmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzZW5kT25lQmxhY2tGcmFtZSkKK3sKK30KKworUmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjp+UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlKCkK
K3sKKyAgICBBU1NFUlQobV9zaW5rcy5pc0VtcHR5KCkpOworICAgIHN0b3AoKTsKK30KKwordm9p
ZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6Om9ic2VydmVTb3VyY2UoKQogewogICAgIG1f
dmlkZW9Tb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKICAgICBpbml0aWFsaXplRnJvbVNvdXJj
ZSgpOwpAQCAtNTksOSArNjksOCBAQCBib29sIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6
c2V0U291cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJiBuZXdTbwogCiAgICAgbV92
aWRlb1NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogICAgIG1fdmlkZW9Tb3VyY2UgPSBX
VEZNb3ZlKG5ld1NvdXJjZSk7Ci0gICAgbV92aWRlb1NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMp
OwogCi0gICAgaW5pdGlhbGl6ZUZyb21Tb3VyY2UoKTsKKyAgICBvYnNlcnZlU291cmNlKCk7CiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTcxLDcgKzgwLDYgQEAgdm9pZCBSZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2U6OnN0b3AoKQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAg
bV92aWRlb1NvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogICAgIG1fYmxhY2tGcmFtZVRp
bWVyLnN0b3AoKTsKLSAgICBtX2lzU3RvcHBlZCA9IHRydWU7CiB9CiAKIHZvaWQgUmVhbHRpbWVP
dXRnb2luZ1ZpZGVvU291cmNlOjp1cGRhdGVCbGFja0ZyYW1lc1NlbmRpbmcoKQpAQCAtMTE4LDI1
ICsxMjYsMjggQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OmluaXRpYWxpemVG
cm9tU291cmNlKCkKIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpBZGRPclVwZGF0
ZVNpbmsocnRjOjpWaWRlb1NpbmtJbnRlcmZhY2U8d2VicnRjOjpWaWRlb0ZyYW1lPiogc2luaywg
Y29uc3QgcnRjOjpWaWRlb1NpbmtXYW50cyYgc2lua1dhbnRzKQogewogICAgIEFTU0VSVCghc2lu
a1dhbnRzLmJsYWNrX2ZyYW1lcyk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Npbmtz
TG9jayk7CiAKICAgICBpZiAoc2lua1dhbnRzLnJvdGF0aW9uX2FwcGxpZWQpCiAgICAgICAgIG1f
c2hvdWxkQXBwbHlSb3RhdGlvbiA9IHRydWU7CiAKLSAgICBpZiAoIW1fc2lua3MuY29udGFpbnMo
c2luaykpCi0gICAgICAgIG1fc2lua3MuYXBwZW5kKHNpbmspOworICAgIGlmICghbV9zaW5rcy5h
ZGQoc2luaykgfHwgbV9zaW5rcy5zaXplKCkgIT0gMSkKKyAgICAgICAgcmV0dXJuOwogCiAgICAg
Y2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSgpIHsKLSAg
ICAgICAgcHJvdGVjdGVkVGhpcy0+c2VuZEJsYWNrRnJhbWVzSWZOZWVkZWQoKTsKKyAgICAgICAg
cHJvdGVjdGVkVGhpcy0+b2JzZXJ2ZVNvdXJjZSgpOwogICAgIH0pOwogfQogCiB2b2lkIFJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6UmVtb3ZlU2luayhydGM6OlZpZGVvU2lua0ludGVyZmFj
ZTx3ZWJydGM6OlZpZGVvRnJhbWU+KiBzaW5rKQogewotICAgIG1fc2lua3MucmVtb3ZlRmlyc3Qo
c2luayk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NpbmtzTG9jayk7CiAKLSAgICBp
ZiAobV9zaW5rcy5zaXplKCkpCisgICAgaWYgKCFtX3NpbmtzLnJlbW92ZShzaW5rKSB8fCBtX3Np
bmtzLnNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV92aWRlb1NvdXJjZS0+cmVtb3Zl
T2JzZXJ2ZXIoKnRoaXMpOworCiAgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpXSgpIHsKICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fYmxhY2tG
cmFtZVRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2JsYWNr
RnJhbWVUaW1lci5zdG9wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oCmluZGV4
IDQyNTA1OTkzODU4ZGQ1ZWZiNjQ2ZTkzNDhlYTZlYjZlMTA0NzEwMzUuLjE1MGExMTkxYTdkYzZh
Yjk1MzAxNjdiMmVlZTEwYjUwMDhkOWM1NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZS5oCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2UsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+LCBw
dWJsaWMgd2VicnRjOjpWaWRlb1RyYWNrU291cmNlSW50ZXJmYWNlLCBwcml2YXRlIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxSZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2U+IGNyZWF0ZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU+JiYgdmlkZW9Tb3VyY2UpOwotICAgIH5SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UoKSB7
IHN0b3AoKTsgfQorICAgIH5SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UoKTsKIAogICAgIHZv
aWQgc3RvcCgpOwogICAgIGJvb2wgc2V0U291cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZT4mJik7CkBAIC02OCwyNSArNjgsMjEgQEAgcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYpOwog
CiAgICAgdm9pZCBzZW5kRnJhbWUocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9GcmFt
ZUJ1ZmZlcj4mJik7CisgICAgYm9vbCBpc1NpbGVuY2VkKCkgY29uc3QgeyByZXR1cm4gbV9tdXRl
ZCB8fCAhbV9lbmFibGVkOyB9CiAKLSAgICBWZWN0b3I8cnRjOjpWaWRlb1NpbmtJbnRlcmZhY2U8
d2VicnRjOjpWaWRlb0ZyYW1lPio+IG1fc2lua3M7Ci0gICAgd2VicnRjOjpJNDIwQnVmZmVyUG9v
bCBtX2J1ZmZlclBvb2w7CisgICAgdmlydHVhbCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpW
aWRlb0ZyYW1lQnVmZmVyPiBjcmVhdGVCbGFja0ZyYW1lKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhl
aWdodCkgPSAwOwogCi0gICAgYm9vbCBtX2VuYWJsZWQgeyB0cnVlIH07Ci0gICAgYm9vbCBtX211
dGVkIHsgZmFsc2UgfTsKLSAgICB1aW50MzJfdCBtX3dpZHRoIHsgMCB9OwotICAgIHVpbnQzMl90
IG1faGVpZ2h0IHsgMCB9OwogICAgIGJvb2wgbV9zaG91bGRBcHBseVJvdGF0aW9uIHsgZmFsc2Ug
fTsKICAgICB3ZWJydGM6OlZpZGVvUm90YXRpb24gbV9jdXJyZW50Um90YXRpb24geyB3ZWJydGM6
OmtWaWRlb1JvdGF0aW9uXzAgfTsKIAotICAgIHZpcnR1YWwgcnRjOjpzY29wZWRfcmVmcHRyPHdl
YnJ0Yzo6VmlkZW9GcmFtZUJ1ZmZlcj4gY3JlYXRlQmxhY2tGcmFtZShzaXplX3Qgd2lkdGgsIHNp
emVfdCBoZWlnaHQpID0gMDsKLQogcHJpdmF0ZToKICAgICB2b2lkIHNlbmRCbGFja0ZyYW1lc0lm
TmVlZGVkKCk7CiAgICAgdm9pZCBzZW5kT25lQmxhY2tGcmFtZSgpOwogICAgIHZvaWQgaW5pdGlh
bGl6ZUZyb21Tb3VyY2UoKTsKICAgICB2b2lkIHVwZGF0ZUJsYWNrRnJhbWVzU2VuZGluZygpOwog
CisgICAgdm9pZCBvYnNlcnZlU291cmNlKCk7CisKICAgICAvLyBOb3RpZmllciBBUEkKICAgICB2
b2lkIFJlZ2lzdGVyT2JzZXJ2ZXIod2VicnRjOjpPYnNlcnZlckludGVyZmFjZSopIGZpbmFsIHsg
fQogICAgIHZvaWQgVW5yZWdpc3Rlck9ic2VydmVyKHdlYnJ0Yzo6T2JzZXJ2ZXJJbnRlcmZhY2Uq
KSBmaW5hbCB7IH0KQEAgLTExNiw5ICsxMTIsMTYgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV92aWRlb1NvdXJjZTsKICAgICBzdGQ6Om9wdGlvbmFsPFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncz4gbV9pbml0aWFsU2V0dGluZ3M7Ci0gICAgYm9vbCBt
X2lzU3RvcHBlZCB7IGZhbHNlIH07CiAgICAgVGltZXIgbV9ibGFja0ZyYW1lVGltZXI7CiAgICAg
cnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9GcmFtZUJ1ZmZlcj4gbV9ibGFja0ZyYW1l
OworCisgICAgbXV0YWJsZSBSZWN1cnNpdmVMb2NrIG1fc2lua3NMb2NrOworICAgIEhhc2hTZXQ8
cnRjOjpWaWRlb1NpbmtJbnRlcmZhY2U8d2VicnRjOjpWaWRlb0ZyYW1lPio+IG1fc2lua3M7CisK
KyAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKKyAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9
OworICAgIHVpbnQzMl90IG1fd2lkdGggeyAwIH07CisgICAgdWludDMyX3QgbV9oZWlnaHQgeyAw
IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlTGliV2ViUlRDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEMuY3BwCmluZGV4
IDAxMjBhYzA4M2RkY2EzZGNhYWY0ZTRkNjYzNTE4OTdiN2I1NWVjNGMuLmExNzcwZWVkZWQ3ZTU2
YTljYjA0NjRlNDAzNDAyZTEwMmEyNzc3ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VM
aWJXZWJSVEMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEMuY3BwCkBAIC0xMjks
MTIgKzEyOSwxMSBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6
cHVsbEF1ZGlvRGF0YSgpCiAgICAgZ3BvaW50ZXIgaW5bMV0gPSB7IGlubWFwLmRhdGEgfTsKICAg
ICBncG9pbnRlciBvdXRbMV0gPSB7IG91dG1hcC5kYXRhIH07CiAgICAgaWYgKGdzdF9hdWRpb19j
b252ZXJ0ZXJfc2FtcGxlcyhtX3NhbXBsZUNvbnZlcnRlciwgc3RhdGljX2Nhc3Q8R3N0QXVkaW9D
b252ZXJ0ZXJGbGFncz4oMCksIGluLCBpbkNodW5rU2FtcGxlQ291bnQsIG91dCwgb3V0Q2h1bmtT
YW1wbGVDb3VudCkpIHsKLSAgICAgICAgZm9yIChhdXRvIHNpbmsgOiBtX3NpbmtzKSB7Ci0gICAg
ICAgICAgICBzaW5rLT5PbkRhdGEob3V0bWFwLmRhdGEsCi0gICAgICAgICAgICAgICAgTGliV2Vi
UlRDQXVkaW9Gb3JtYXQ6OnNhbXBsZVNpemUsCi0gICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
aW50PihtX291dHB1dFN0cmVhbURlc2NyaXB0aW9uLT5zYW1wbGVSYXRlKCkpLAotICAgICAgICAg
ICAgICAgIHN0YXRpY19jYXN0PGludD4obV9vdXRwdXRTdHJlYW1EZXNjcmlwdGlvbi0+bnVtYmVy
T2ZDaGFubmVscygpKSwKLSAgICAgICAgICAgICAgICBvdXRDaHVua1NhbXBsZUNvdW50KTsKKyAg
ICAgICAgc2VuZEF1ZGlvRnJhbWVzKG91dG1hcC5kYXRhLAorICAgICAgICAgICAgTGliV2ViUlRD
QXVkaW9Gb3JtYXQ6OnNhbXBsZVNpemUsCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KG1f
b3V0cHV0U3RyZWFtRGVzY3JpcHRpb24tPnNhbXBsZVJhdGUoKSksCisgICAgICAgICAgICBzdGF0
aWNfY2FzdDxpbnQ+KG1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb24tPm51bWJlck9mQ2hhbm5lbHMo
KSksCisgICAgICAgICAgICBvdXRDaHVua1NhbXBsZUNvdW50KTsKICAgICAgICAgfQogICAgIH0g
ZWxzZQogICAgICAgICBHU1RfRVJST1IoIkNvdWxkIG5vdCBjb252ZXJ0IHNhbXBsZXMuIik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNwcAppbmRl
eCBjMGVhMzI0ZGE4MjM2NzBmNGI0MjRjZDE1YzMzMWZlNDliNTIyOTFiLi5iMTI0YjM4N2UwMmIz
OGZiNGMzODIxNmIyYzYxOTNhYjIyYzg0Y2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2Eu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAgUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlQ29jb2E6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29h
KFJlZjxNZWRpYVN0cmUKICAgICA6IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZShXVEZNb3Zl
KGF1ZGlvU291cmNlKSkKICAgICAsIG1fc2FtcGxlQ29udmVydGVyKEF1ZGlvU2FtcGxlRGF0YVNv
dXJjZTo6Y3JlYXRlKExpYldlYlJUQ0F1ZGlvRm9ybWF0OjpzYW1wbGVSYXRlICogMikpCiB7Ci0g
ICAgb2JzZXJ2ZVNvdXJjZSgpOwogfQogCiBSZWY8UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
PiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OmNyZWF0ZShSZWY8TWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU+JiYgYXVkaW9Tb3VyY2UpCkBAIC0xMzYsOCArMTM1LDcgQEAgdm9pZCBSZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYTo6cHVsbEF1ZGlvRGF0YSgpCiAKICAgICBtX3NhbXBs
ZUNvbnZlcnRlci0+cHVsbEF2YWxhaWJsZVNhbXBsZXNBc0NodW5rcyhidWZmZXJMaXN0LCBjaHVu
a1NhbXBsZUNvdW50LCBtX3JlYWRDb3VudCwgW3RoaXMsIGNodW5rU2FtcGxlQ291bnRdIHsKICAg
ICAgICAgbV9yZWFkQ291bnQgKz0gY2h1bmtTYW1wbGVDb3VudDsKLSAgICAgICAgZm9yIChhdXRv
IHNpbmsgOiBtX3NpbmtzKQotICAgICAgICAgICAgc2luay0+T25EYXRhKG1fYXVkaW9CdWZmZXIu
ZGF0YSgpLCBMaWJXZWJSVENBdWRpb0Zvcm1hdDo6c2FtcGxlU2l6ZSwgbV9vdXRwdXRTdHJlYW1E
ZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCksIG1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb24ubnVtYmVy
T2ZDaGFubmVscygpLCBjaHVua1NhbXBsZUNvdW50KTsKKyAgICAgICAgc2VuZEF1ZGlvRnJhbWVz
KG1fYXVkaW9CdWZmZXIuZGF0YSgpLCBMaWJXZWJSVENBdWRpb0Zvcm1hdDo6c2FtcGxlU2l6ZSwg
bV9vdXRwdXRTdHJlYW1EZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCksIG1fb3V0cHV0U3RyZWFtRGVz
Y3JpcHRpb24ubnVtYmVyT2ZDaGFubmVscygpLCBjaHVua1NhbXBsZUNvdW50KTsKICAgICB9KTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5j
cHAKaW5kZXggNDQxOWJhZWVmODNlOWRjZjc1ODIzNDAyYTJhODJkMzgyZGFkNmVjOS4uNzk4MWU3
MWJlOTVmMTU1ZDcxZGEyMTQwYzRmOTkzYTg3M2Y5ODAzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCkBAIC02MywxMCArNjMsNyBAQCBS
ZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlQ29jb2EoUmVmPE1lZGlhU3RyZQogCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZUNvY29hOjpzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVk
aWFTYW1wbGUmIHNhbXBsZSkKIHsKLSAgICBpZiAoIW1fc2lua3Muc2l6ZSgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBpZiAobV9tdXRlZCB8fCAhbV9lbmFibGVkKQorICAgIGlmIChpc1NpbGVu
Y2VkKCkpCiAgICAgICAgIHJldHVybjsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDgwYTU1OTU4NzYzY2VhMzE5YmM4NzAzNzEzMTVmMmZiZGRhZWFiNjguLmZmNDQxN2IzNTk0
YzczYWUxZTlmZGY4MjRlZjU4NGNhMzYzZjhhYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
OC0xMS0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVh
bHRpbWVPdXRnb2luZyBBL1Ygc291cmNlcyBzaG91bGQgb2JzZXJ2ZSB0aGVpciBzb3VyY2VzIG9u
bHkgaWYgaGF2aW5nIGEgc2luaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkxNDkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB3ZWJydGMvcmVtb3ZlLXRyYWNrLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWJydGMvcmVtb3ZlLXRyYWNrLmh0bWw6CisKIDIwMTgtMTEtMDYgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlZW5hYmxlIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9udHJhY2suaHR0cHMuaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3JlbW92ZS10cmFjay1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvcmVtb3ZlLXRyYWNrLWV4cGVjdGVkLnR4dAppbmRleCBk
ZTZjM2MyNjA1ODc3MzJjNzYxOWRmNWRiMGI3YjdjY2YwMTRhODZhLi5lYTM3NjQ0MTY0NGEyOGJk
NWU5ZDkyYzU3NTQ1ZGUwOWMxNGVjNTI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMv
cmVtb3ZlLXRyYWNrLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvcmVtb3Zl
LXRyYWNrLWV4cGVjdGVkLnR4dApAQCAtMiw0ICsyLDYgQEAKIFBBU1MgU2V0dXAgYXVkaW8gdmlk
ZW8gZXhjaGFuZ2UgCiBQQVNTIFJlbW92ZSB2aWRlbyB0cmFjayAKIFBBU1MgUmVtb3ZlIGF1ZGlv
IHRyYWNrIAorUEFTUyBBZGQvcmVtb3ZlIGF1ZGlvIHRyYWNrcyAKK1BBU1MgQWRkL3JlbW92ZSB2
aWRlbyB0cmFja3MgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9yZW1vdmUtdHJh
Y2suaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9yZW1vdmUtdHJhY2suaHRtbAppbmRleCA4Mjdm
NTIyZTQyMjQyODAxNjkyYmI5NDQwODc2NmRkMTczZWQ2ZmQ4Li42YzQ1ZGEzYTFlY2FhMDQ4MTg3
YmRiZjdkYTZhZTY4MWI1MGFmZTFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvcmVt
b3ZlLXRyYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3JlbW92ZS10cmFjay5odG1s
CkBAIC00MSw3ICs0MSw3IEBAIGFzeW5jIGZ1bmN0aW9uIHJlbmVnb3RpYXRlKCkKIHsKICAgICBs
ZXQgZCA9IGF3YWl0IGZpcnN0Q29ubmVjdGlvbi5jcmVhdGVPZmZlcigpOwogICAgIGF3YWl0IGZp
cnN0Q29ubmVjdGlvbi5zZXRMb2NhbERlc2NyaXB0aW9uKGQpOwotICAgIGF3YWl0IHNlY29uZENv
bm5lY3Rpb24uc2V0UmVtb3RlRGVzY3JpcHRpb24oZmlyc3RDb25uZWN0aW9uLmxvY2FsRGVzY3Jp
cHRpb24pOworICAgIGF3YWl0IHNlY29uZENvbm5lY3Rpb24uc2V0UmVtb3RlRGVzY3JpcHRpb24o
ZCk7CiAgICAgZCA9IGF3YWl0IHNlY29uZENvbm5lY3Rpb24uY3JlYXRlQW5zd2VyKCk7CiAgICAg
YXdhaXQgc2Vjb25kQ29ubmVjdGlvbi5zZXRMb2NhbERlc2NyaXB0aW9uKGQpOwogfQpAQCAtNTEs
NyArNTEsNyBAQCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICAgICAgcmVtb3RlVmlkZW9U
cmFjay5vbm11dGUgPSByZXNvbHZlOwogICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgi
VGVzdCB0aW1lZCBvdXQiKSwgNTAwMCk7CiAgICAgfSk7Ci0gICAgIAorCiAgICAgZmlyc3RDb25u
ZWN0aW9uLnJlbW92ZVRyYWNrKGZpcnN0Q29ubmVjdGlvbi5nZXRTZW5kZXJzKClbMF0pOwogICAg
IHJlbmVnb3RpYXRlKCk7CiAgICAgcmV0dXJuIHByb21pc2U7CkBAIC02MiwxMSArNjIsMzQgQEAg
cHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CiAgICAgICAgIHJlbW90ZUF1ZGlvVHJhY2sub25tdXRl
ID0gcmVzb2x2ZTsKICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIlRlc3QgdGltZWQg
b3V0IiksIDUwMDApOwogICAgIH0pOwotICAgICAKKwogICAgIGZpcnN0Q29ubmVjdGlvbi5yZW1v
dmVUcmFjayhmaXJzdENvbm5lY3Rpb24uZ2V0U2VuZGVycygpWzFdKTsKICAgICByZW5lZ290aWF0
ZSgpOwogICAgIHJldHVybiBwcm9taXNlOwogfSwgIlJlbW92ZSBhdWRpbyB0cmFjayIpOworCitw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdh
dG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlfSk7CisgICAgY29uc3Qg
dHJhY2sgPSBzdHJlYW0uZ2V0VHJhY2tzKClbMF07CisgICAgbGV0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPDEwMDsgaSsrKSB7CisgICAgICAg
IGxldCBzZW5kZXIgPSBwYy5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKKyAgICAgICAgcGMucmVt
b3ZlVHJhY2soc2VuZGVyKTsKKyAgICB9CisgICAgcGMuY2xvc2UoKTsKK30sICdBZGQvcmVtb3Zl
IGF1ZGlvIHRyYWNrcycpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3Qg
c3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVv
OiB0cnVlfSk7CisgICAgY29uc3QgdHJhY2sgPSBzdHJlYW0uZ2V0VHJhY2tzKClbMF07CisgICAg
bGV0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgZm9yIChsZXQgaSA9IDA7IGkg
PDEwMDsgaSsrKSB7CisgICAgICAgIGxldCBzZW5kZXIgPSBwYy5hZGRUcmFjayh0cmFjaywgc3Ry
ZWFtKTsKKyAgICAgICAgcGMucmVtb3ZlVHJhY2soc2VuZGVyKTsKKyAgICB9CisgICAgcGMuY2xv
c2UoKTsKK30sICdBZGQvcmVtb3ZlIHZpZGVvIHRyYWNrcycpOworCiAgICAgICAgIDwvc2NyaXB0
PgogICAgIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354413</attachid>
            <date>2018-11-09 16:42:16 -0800</date>
            <delta_ts>2018-11-09 20:46:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191490-20181109164214.patch</filename>
            <type>text/plain</type>
            <size>20385</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM5MTdlOTIwYzE3NDQ5
YTE2NDZjMjlkMjU4ZDZjNjhhY2E2ZWFlMy4uNTMzOTNlMzRkOGZkYzc3ZDFjNGRhZGQ2NTBmOGFi
NzNkZDI3NTVmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTExLTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWFsdGltZU91dGdvaW5n
IEEvViBzb3VyY2VzIHNob3VsZCBvYnNlcnZlIHRoZWlyIHNvdXJjZXMgb25seSBpZiBoYXZpbmcg
YSBzaW5rCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTE0OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBP
YnNlcnZlIHRoZSBzb3VyY2UgdGhhdCBnZW5lcmF0ZXMgbWVkaWEgYmFzZWQgb24gdGhlIHNpbmtz
OgorICAgICAgICAtIERvIG5vdCBvYnNlcnZlIGF0IGNyZWF0aW9uIHRpbWUKKyAgICAgICAgLSBG
b3IgZmlyc3Qgc2luaywgc3RhcnQgb2JzZXJ2aW5nCisgICAgICAgIC0gV2hlbiBubyBtb3JlIHNp
bmssIHN0b3Agb2JzZXJ2aW5nCisgICAgICAgIEFwcGx5IHRoaXMgcHJpbmNpcGxlIGZvciBib3Ro
IG91dGdvaW5nIGF1ZGlvIGFuZCB2aWRlbyBzb3VyY2VzLgorICAgICAgICBBZGQgbG9ja3MgZm9y
IHRoZSBzaW5rcyB0byBlbnN1cmUgdGhyZWFkLXNhZmV0eS4KKyAgICAgICAgTWFrZSBzaW5rcyBI
YXNoU2V0IHdoaWNoIGlzIG1vcmUgcm9idXN0LgorCisgICAgICAgIERvIHNvbWUgcmVmYWN0b3Jp
bmcgdG8gYmV0dGVyIGlzb2xhdGUgZ2VuZXJpYyBvdXRnb2luZyBzb3VyY2VzIGZyb20gQ29jb2Ev
R1RLIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
IGFuZCB1cGRhdGVkIHdlYnJ0Yy9yZW1vdmUtdHJhY2suaHRtbC4KKworICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6On5SZWFsdGltZU91dGdvaW5n
QXVkaW9Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJj
ZTo6QWRkU2luayk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3Vy
Y2U6OlJlbW92ZVNpbmspOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlOjpzZW5kQXVkaW9GcmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6On5SZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlOjpvYnNlcnZlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2V0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OkFkZE9yVXBkYXRlU2luayk6CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OlJlbW92ZVNpbmspOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjppc1NpbGVuY2VkIGNv
bnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6cHVsbEF1ZGlvRGF0YSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNv
Y29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNv
Y29hOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hOjpw
dWxsQXVkaW9EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2E6OnNhbXBsZUJ1ZmZlclVw
ZGF0ZWQpOgorCiAyMDE4LTExLTA5ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgogCiAgICAgICAgIE5vcm1hbC1mbG93LW9ubHkgZmxleCBpdGVtcyBkb24ndCBjb3JyZWN0
bHkgcmVzcGVjdCB6LWluZGV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcApp
bmRleCA1ZWY3NDQ0ZjY2ZmRmYzZiN2ViZWQ3MWQ4ODFiZjhhY2JhMTAwM2UyLi5mNjUxNjI4YjNj
ZWFkM2ZjMTU5MDAzOGUyNjEwMzc2MjdiNWI4MmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdB
dWRpb1NvdXJjZS5jcHAKQEAgLTQxLDYgKzQxLDEyIEBAIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1Nv
dXJjZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJp
CiB7CiB9CiAKK1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6flJlYWx0aW1lT3V0Z29pbmdB
dWRpb1NvdXJjZSgpCit7CisgICAgQVNTRVJUKG1fc2lua3MuaXNFbXB0eSgpKTsKKyAgICBzdG9w
KCk7Cit9CisKIHZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpvYnNlcnZlU291cmNl
KCkKIHsKICAgICBtX2F1ZGlvU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CkBAIC01NCwxMSAr
NjAsOSBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6dW5vYnNlcnZlU291cmNl
KCkKIAogYm9vbCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNldFNvdXJjZShSZWY8TWVk
aWFTdHJlYW1UcmFja1ByaXZhdGU+JiYgbmV3U291cmNlKQogewotICAgIG1fYXVkaW9Tb3VyY2Ut
PnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICB1bm9ic2VydmVTb3VyY2UoKTsKICAgICBtX2F1
ZGlvU291cmNlID0gV1RGTW92ZShuZXdTb3VyY2UpOwotICAgIG1fYXVkaW9Tb3VyY2UtPmFkZE9i
c2VydmVyKCp0aGlzKTsKLQotICAgIGluaXRpYWxpemVDb252ZXJ0ZXIoKTsKKyAgICBvYnNlcnZl
U291cmNlKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTY4LDEyICs3Miw2IEBAIHZvaWQg
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjppbml0aWFsaXplQ29udmVydGVyKCkKICAgICBt
X2VuYWJsZWQgPSBtX2F1ZGlvU291cmNlLT5lbmFibGVkKCk7CiB9CiAKLXZvaWQgUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlOjpzdG9wKCkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwotICAgIG1fYXVkaW9Tb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKLX0KLQogdm9pZCBS
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNvdXJjZU11dGVkQ2hhbmdlZCgpCiB7CiAgICAg
bV9tdXRlZCA9IG1fYXVkaW9Tb3VyY2UtPm11dGVkKCk7CkBAIC04NCw2ICs4MiwzNCBAQCB2b2lk
IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6c291cmNlRW5hYmxlZENoYW5nZWQoKQogICAg
IG1fZW5hYmxlZCA9IG1fYXVkaW9Tb3VyY2UtPmVuYWJsZWQoKTsKIH0KIAordm9pZCBSZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2U6OkFkZFNpbmsod2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVy
ZmFjZSogc2luaykKK3sKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsK
KyAgICBpZiAoIW1fc2lua3MuYWRkKHNpbmspIHx8IG1fc2lua3Muc2l6ZSgpICE9IDEpCisgICAg
ICAgIHJldHVybjsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKV0oKSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPm9ic2VydmVTb3VyY2UoKTsK
KyAgICB9KTsKK30KKwordm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OlJlbW92ZVNp
bmsod2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVyZmFjZSogc2luaykKK3sKKyAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsKKyAgICBpZiAoIW1fc2lua3MucmVtb3ZlKHNp
bmspIHx8ICFtX3NpbmtzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdW5vYnNl
cnZlU291cmNlKCk7Cit9CisKK3ZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpzZW5k
QXVkaW9GcmFtZXMoY29uc3Qgdm9pZCogYXVkaW9EYXRhLCBpbnQgYml0c1BlclNhbXBsZSwgaW50
IHNhbXBsZVJhdGUsIHNpemVfdCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFt
ZXMpCit7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NpbmtzTG9jayk7CisgICAgZm9y
IChhdXRvIHNpbmsgOiBtX3NpbmtzKQorICAgICAgICBzaW5rLT5PbkRhdGEoYXVkaW9EYXRhLCBi
aXRzUGVyU2FtcGxlLCBzYW1wbGVSYXRlLCBudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1l
cyk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKExJQldF
QlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKaW5kZXggNjk0YmRhZTVkMDg5
M2YyMTkwMjBmZTM2MTlhZDAxODkwNTA3ODFlZi4uYjAzYmYyMWIyNzZlYWVkN2VmOWE0NTJjMWYx
OTJmZjMxMzE1MTE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKQEAgLTU0
LDkgKzU0LDkgQEAgY2xhc3MgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lT3V0Z29pbmcKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZT4gY3JlYXRlKFJlZjxNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZT4mJiBhdWRpb1NvdXJjZSk7CiAKLSAgICB+UmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlKCkgeyBzdG9wKCk7IH0KKyAgICB+UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlKCk7
CiAKLSAgICB2b2lkIHN0b3AoKTsKKyAgICB2b2lkIHN0b3AoKSB7IHVub2JzZXJ2ZVNvdXJjZSgp
OyB9CiAKICAgICBib29sIHNldFNvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYp
OwogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBt
X2F1ZGlvU291cmNlLmdldCgpOyB9CkBAIC02NCwxOCArNjQsMTggQEAgcHVibGljOgogcHJvdGVj
dGVkOgogICAgIGV4cGxpY2l0IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZShSZWY8TWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU+JiYpOwogCi0gICAgdm9pZCBvYnNlcnZlU291cmNlKCk7CiAgICAg
dm9pZCB1bm9ic2VydmVTb3VyY2UoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwdWxsQXVkaW9EYXRh
KCkgeyB9CiAKICAgICBib29sIGlzU2lsZW5jZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkIHx8
ICFtX2VuYWJsZWQ7IH0KIAotICAgIFZlY3Rvcjx3ZWJydGM6OkF1ZGlvVHJhY2tTaW5rSW50ZXJm
YWNlKj4gbV9zaW5rczsKKyAgICB2b2lkIHNlbmRBdWRpb0ZyYW1lcyhjb25zdCB2b2lkKiBhdWRp
b0RhdGEsIGludCBiaXRzUGVyU2FtcGxlLCBpbnQgc2FtcGxlUmF0ZSwgc2l6ZV90IG51bWJlck9m
Q2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcyk7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCB2b2lkIEFkZFNpbmsod2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVyZmFjZSogc2luaykgeyBt
X3NpbmtzLmFwcGVuZChzaW5rKTsgfQotICAgIHZpcnR1YWwgdm9pZCBSZW1vdmVTaW5rKHdlYnJ0
Yzo6QXVkaW9UcmFja1NpbmtJbnRlcmZhY2UqIHNpbmspIHsgbV9zaW5rcy5yZW1vdmVGaXJzdChz
aW5rKTsgfQorICAgIC8vIHdlYnJ0Yzo6QXVkaW9Tb3VyY2VJbnRlcmZhY2UgQVBJCisgICAgdm9p
ZCBBZGRTaW5rKHdlYnJ0Yzo6QXVkaW9UcmFja1NpbmtJbnRlcmZhY2UqKSBmaW5hbDsKKyAgICB2
b2lkIFJlbW92ZVNpbmsod2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVyZmFjZSopIGZpbmFsOwog
CiAgICAgdm9pZCBBZGRSZWYoKSBjb25zdCBmaW5hbCB7IHJlZigpOyB9CiAgICAgcnRjOjpSZWZD
b3VudFJlbGVhc2VTdGF0dXMgUmVsZWFzZSgpIGNvbnN0IGZpbmFsCkBAIC05MCw2ICs5MCw4IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBSZWdpc3Rlck9ic2VydmVyKHdlYnJ0Yzo6T2JzZXJ2ZXJJbnRl
cmZhY2UqKSBmaW5hbCB7IH0KICAgICB2b2lkIFVucmVnaXN0ZXJPYnNlcnZlcih3ZWJydGM6Ok9i
c2VydmVySW50ZXJmYWNlKikgZmluYWwgeyB9CiAKKyAgICB2b2lkIG9ic2VydmVTb3VyY2UoKTsK
KwogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCk7CiAgICAgdm9pZCBzb3VyY2VFbmFibGVk
Q2hhbmdlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3Qg
TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiwgc2l6ZV90KSB7IH07CkBAIC0xMTAsNiArMTEyLDkgQEAgcHJpdmF0ZToKICAg
ICBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IG1fYXVkaW9Tb3VyY2U7CiAgICAgYm9vbCBt
X211dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKKworICAgIG11
dGFibGUgUmVjdXJzaXZlTG9jayBtX3NpbmtzTG9jazsKKyAgICBIYXNoU2V0PHdlYnJ0Yzo6QXVk
aW9UcmFja1NpbmtJbnRlcmZhY2UqPiBtX3NpbmtzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAKaW5kZXggOWRhZWY3OTc5
NzU3ZGE0ZTE4YjkyNzE4NjY0NzgzMDg1ZGJhNTEzMS4uNTMyYjRhYWU3Yzc1NDVhNzM1ZDllYWRi
ZDJkMzU1ZGQ0NzIwOTQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3Bw
CkBAIC00Nyw2ICs0NywxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2U6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZShSZWY8TWVkaWFTdHJlYW1U
cmFja1ByaXZhdGU+JiYgdmlkZW9Tb3VyY2UpCiAgICAgOiBtX3ZpZGVvU291cmNlKFdURk1vdmUo
dmlkZW9Tb3VyY2UpKQogICAgICwgbV9ibGFja0ZyYW1lVGltZXIoKnRoaXMsICZSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2U6OnNlbmRPbmVCbGFja0ZyYW1lKQoreworfQorCitSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2U6On5SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UoKQoreworICAg
IEFTU0VSVChtX3NpbmtzLmlzRW1wdHkoKSk7CisgICAgc3RvcCgpOworfQorCit2b2lkIFJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6b2JzZXJ2ZVNvdXJjZSgpCiB7CiAgICAgbV92aWRlb1Nv
dXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogICAgIGluaXRpYWxpemVGcm9tU291cmNlKCk7CkBA
IC01OSw5ICs2OSw4IEBAIGJvb2wgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzZXRTb3Vy
Y2UoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmIG5ld1NvCiAKICAgICBtX3ZpZGVvU291
cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiAgICAgbV92aWRlb1NvdXJjZSA9IFdURk1vdmUo
bmV3U291cmNlKTsKLSAgICBtX3ZpZGVvU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAKLSAg
ICBpbml0aWFsaXplRnJvbVNvdXJjZSgpOworICAgIG9ic2VydmVTb3VyY2UoKTsKIAogICAgIHJl
dHVybiB0cnVlOwogfQpAQCAtNzEsNyArODAsNiBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZTo6c3RvcCgpCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBtX3ZpZGVv
U291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiAgICAgbV9ibGFja0ZyYW1lVGltZXIuc3Rv
cCgpOwotICAgIG1faXNTdG9wcGVkID0gdHJ1ZTsKIH0KIAogdm9pZCBSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2U6OnVwZGF0ZUJsYWNrRnJhbWVzU2VuZGluZygpCkBAIC0xMTgsMjUgKzEyNiwy
OCBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6aW5pdGlhbGl6ZUZyb21Tb3Vy
Y2UoKQogdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OkFkZE9yVXBkYXRlU2luayhy
dGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+KiBzaW5rLCBjb25zdCBy
dGM6OlZpZGVvU2lua1dhbnRzJiBzaW5rV2FudHMpCiB7CiAgICAgQVNTRVJUKCFzaW5rV2FudHMu
YmxhY2tfZnJhbWVzKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsK
IAogICAgIGlmIChzaW5rV2FudHMucm90YXRpb25fYXBwbGllZCkKICAgICAgICAgbV9zaG91bGRB
cHBseVJvdGF0aW9uID0gdHJ1ZTsKIAotICAgIGlmICghbV9zaW5rcy5jb250YWlucyhzaW5rKSkK
LSAgICAgICAgbV9zaW5rcy5hcHBlbmQoc2luayk7CisgICAgaWYgKCFtX3NpbmtzLmFkZChzaW5r
KSB8fCBtX3NpbmtzLnNpemUoKSAhPSAxKQorICAgICAgICByZXR1cm47CiAKICAgICBjYWxsT25N
YWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKCkgewotICAgICAgICBw
cm90ZWN0ZWRUaGlzLT5zZW5kQmxhY2tGcmFtZXNJZk5lZWRlZCgpOworICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5vYnNlcnZlU291cmNlKCk7CiAgICAgfSk7CiB9CiAKIHZvaWQgUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlOjpSZW1vdmVTaW5rKHJ0Yzo6VmlkZW9TaW5rSW50ZXJmYWNlPHdlYnJ0
Yzo6VmlkZW9GcmFtZT4qIHNpbmspCiB7Ci0gICAgbV9zaW5rcy5yZW1vdmVGaXJzdChzaW5rKTsK
KyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsKIAotICAgIGlmIChtX3Np
bmtzLnNpemUoKSkKKyAgICBpZiAoIW1fc2lua3MucmVtb3ZlKHNpbmspIHx8IG1fc2lua3Muc2l6
ZSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBtX3ZpZGVvU291cmNlLT5yZW1vdmVPYnNlcnZl
cigqdGhpcyk7CisKICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyldKCkgewogICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9ibGFja0ZyYW1lVGlt
ZXIuaXNBY3RpdmUoKSkKICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fYmxhY2tGcmFtZVRp
bWVyLnN0b3AoKTsKQEAgLTE4Myw2ICsxOTQsOCBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZTo6c2VuZEZyYW1lKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvRnJhbQog
ewogICAgIE1vbm90b25pY1RpbWUgdGltZXN0YW1wID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAg
ICAgd2VicnRjOjpWaWRlb0ZyYW1lIGZyYW1lKGJ1ZmZlciwgbV9zaG91bGRBcHBseVJvdGF0aW9u
ID8gd2VicnRjOjprVmlkZW9Sb3RhdGlvbl8wIDogbV9jdXJyZW50Um90YXRpb24sIHN0YXRpY19j
YXN0PGludDY0X3Q+KHRpbWVzdGFtcC5zZWNvbmRzU2luY2VFcG9jaCgpLm1pY3Jvc2Vjb25kcygp
KSk7CisKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsKICAgICBmb3Ig
KGF1dG8qIHNpbmsgOiBtX3NpbmtzKQogICAgICAgICBzaW5rLT5PbkZyYW1lKGZyYW1lKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKaW5kZXggNDI1MDU5OTM4NThkZDVlZmI2
NDZlOTM0OGVhNmViNmUxMDQ3MTAzNS4uMTUwYTExOTFhN2RjNmFiOTUzMDE2N2IyZWVlMTBiNTAw
OGQ5YzU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyB3ZWJydGM6OlZpZGVv
VHJhY2tTb3VyY2VJbnRlcmZhY2UsIHByaXZhdGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9i
c2VydmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZT4gY3JlYXRlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJiB2aWRlb1NvdXJjZSk7
Ci0gICAgflJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZSgpIHsgc3RvcCgpOyB9CisgICAgflJl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZSgpOwogCiAgICAgdm9pZCBzdG9wKCk7CiAgICAgYm9v
bCBzZXRTb3VyY2UoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmKTsKQEAgLTY4LDI1ICs2
OCwyMSBAQCBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJik7CiAKICAgICB2b2lkIHNlbmRGcmFt
ZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb0ZyYW1lQnVmZmVyPiYmKTsKKyAgICBi
b29sIGlzU2lsZW5jZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkIHx8ICFtX2VuYWJsZWQ7IH0K
IAotICAgIFZlY3RvcjxydGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+
Kj4gbV9zaW5rczsKLSAgICB3ZWJydGM6Okk0MjBCdWZmZXJQb29sIG1fYnVmZmVyUG9vbDsKKyAg
ICB2aXJ0dWFsIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvRnJhbWVCdWZmZXI+IGNy
ZWF0ZUJsYWNrRnJhbWUoc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0KSA9IDA7CiAKLSAgICBi
b29sIG1fZW5hYmxlZCB7IHRydWUgfTsKLSAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwotICAg
IHVpbnQzMl90IG1fd2lkdGggeyAwIH07Ci0gICAgdWludDMyX3QgbV9oZWlnaHQgeyAwIH07CiAg
ICAgYm9vbCBtX3Nob3VsZEFwcGx5Um90YXRpb24geyBmYWxzZSB9OwogICAgIHdlYnJ0Yzo6Vmlk
ZW9Sb3RhdGlvbiBtX2N1cnJlbnRSb3RhdGlvbiB7IHdlYnJ0Yzo6a1ZpZGVvUm90YXRpb25fMCB9
OwogCi0gICAgdmlydHVhbCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb0ZyYW1lQnVm
ZmVyPiBjcmVhdGVCbGFja0ZyYW1lKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCkgPSAwOwot
CiBwcml2YXRlOgogICAgIHZvaWQgc2VuZEJsYWNrRnJhbWVzSWZOZWVkZWQoKTsKICAgICB2b2lk
IHNlbmRPbmVCbGFja0ZyYW1lKCk7CiAgICAgdm9pZCBpbml0aWFsaXplRnJvbVNvdXJjZSgpOwog
ICAgIHZvaWQgdXBkYXRlQmxhY2tGcmFtZXNTZW5kaW5nKCk7CiAKKyAgICB2b2lkIG9ic2VydmVT
b3VyY2UoKTsKKwogICAgIC8vIE5vdGlmaWVyIEFQSQogICAgIHZvaWQgUmVnaXN0ZXJPYnNlcnZl
cih3ZWJydGM6Ok9ic2VydmVySW50ZXJmYWNlKikgZmluYWwgeyB9CiAgICAgdm9pZCBVbnJlZ2lz
dGVyT2JzZXJ2ZXIod2VicnRjOjpPYnNlcnZlckludGVyZmFjZSopIGZpbmFsIHsgfQpAQCAtMTE2
LDkgKzExMiwxNiBAQCBwcml2YXRlOgogCiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
PiBtX3ZpZGVvU291cmNlOwogICAgIHN0ZDo6b3B0aW9uYWw8UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzPiBtX2luaXRpYWxTZXR0aW5nczsKLSAgICBib29sIG1faXNTdG9wcGVkIHsgZmFsc2Ug
fTsKICAgICBUaW1lciBtX2JsYWNrRnJhbWVUaW1lcjsKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8
d2VicnRjOjpWaWRlb0ZyYW1lQnVmZmVyPiBtX2JsYWNrRnJhbWU7CisKKyAgICBtdXRhYmxlIFJl
Y3Vyc2l2ZUxvY2sgbV9zaW5rc0xvY2s7CisgICAgSGFzaFNldDxydGM6OlZpZGVvU2lua0ludGVy
ZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+Kj4gbV9zaW5rczsKKworICAgIGJvb2wgbV9lbmFibGVk
IHsgdHJ1ZSB9OworICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CisgICAgdWludDMyX3QgbV93
aWR0aCB7IDAgfTsKKyAgICB1aW50MzJfdCBtX2hlaWdodCB7IDAgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5jcHAKaW5kZXggMDYwZmMxMDk2Y2U1NGY1NzIy
ZGFiNTY0ZDc0NzZhYzcwZjNjZmNmMi4uYWY0YjEzNTRjM2QwMWE4ZGU0Mzk1NGUwMmRlZGYyMmJl
Yjg4MjhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5jcHAKQEAgLTEzMCwxMiArMTMwLDExIEBAIHZvaWQg
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDOjpwdWxsQXVkaW9EYXRhKCkKICAg
ICBncG9pbnRlciBpblsxXSA9IHsgaW5tYXAuZGF0YSB9OwogICAgIGdwb2ludGVyIG91dFsxXSA9
IHsgb3V0bWFwLmRhdGEgfTsKICAgICBpZiAoZ3N0X2F1ZGlvX2NvbnZlcnRlcl9zYW1wbGVzKG1f
c2FtcGxlQ29udmVydGVyLCBzdGF0aWNfY2FzdDxHc3RBdWRpb0NvbnZlcnRlckZsYWdzPigwKSwg
aW4sIGluQ2h1bmtTYW1wbGVDb3VudCwgb3V0LCBvdXRDaHVua1NhbXBsZUNvdW50KSkgewotICAg
ICAgICBmb3IgKGF1dG8gc2luayA6IG1fc2lua3MpIHsKLSAgICAgICAgICAgIHNpbmstPk9uRGF0
YShvdXRtYXAuZGF0YSwKLSAgICAgICAgICAgICAgICBMaWJXZWJSVENBdWRpb0Zvcm1hdDo6c2Ft
cGxlU2l6ZSwKLSAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KG1fb3V0cHV0U3RyZWFt
RGVzY3JpcHRpb24tPnNhbXBsZVJhdGUoKSksCi0gICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
aW50PihtX291dHB1dFN0cmVhbURlc2NyaXB0aW9uLT5udW1iZXJPZkNoYW5uZWxzKCkpLAotICAg
ICAgICAgICAgICAgIG91dENodW5rU2FtcGxlQ291bnQpOworICAgICAgICBzZW5kQXVkaW9GcmFt
ZXMob3V0bWFwLmRhdGEsCisgICAgICAgICAgICBMaWJXZWJSVENBdWRpb0Zvcm1hdDo6c2FtcGxl
U2l6ZSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4obV9vdXRwdXRTdHJlYW1EZXNjcmlw
dGlvbi0+c2FtcGxlUmF0ZSgpKSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4obV9vdXRw
dXRTdHJlYW1EZXNjcmlwdGlvbi0+bnVtYmVyT2ZDaGFubmVscygpKSwKKyAgICAgICAgICAgIG91
dENodW5rU2FtcGxlQ291bnQpOwogICAgICAgICB9CiAgICAgfSBlbHNlCiAgICAgICAgIEdTVF9F
UlJPUigiQ291bGQgbm90IGNvbnZlcnQgc2FtcGxlcy4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3Vy
Y2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4IDJmYmUwNjc4YjBhZmMxNmE3
OTZhNDhlYzZlODgzN2FiM2MyMWVjMjIuLjIyZTQ5ZTkwOTg5NWE5MDNkNzIzMmUwNTJmYzUxZTg4
MGZkODJmMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJj
ZUNvY29hLmNwcApAQCAtNDcsNyArNDcsNiBAQCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VD
b2NvYTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EoUmVmPE1lZGlhU3RyZQogICAg
IDogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlKFdURk1vdmUoYXVkaW9Tb3VyY2UpKQogICAg
ICwgbV9zYW1wbGVDb252ZXJ0ZXIoQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUoTGliV2Vi
UlRDQXVkaW9Gb3JtYXQ6OnNhbXBsZVJhdGUgKiAyKSkKIHsKLSAgICBvYnNlcnZlU291cmNlKCk7
CiB9CiAKIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hOjp+UmVhbHRpbWVPdXRnb2lu
Z0F1ZGlvU291cmNlQ29jb2EoKQpAQCAtMTQxLDggKzE0MCw3IEBAIHZvaWQgUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlQ29jb2E6OnB1bGxBdWRpb0RhdGEoKQogCiAgICAgbV9zYW1wbGVDb252
ZXJ0ZXItPnB1bGxBdmFsYWlibGVTYW1wbGVzQXNDaHVua3MoYnVmZmVyTGlzdCwgY2h1bmtTYW1w
bGVDb3VudCwgbV9yZWFkQ291bnQsIFt0aGlzLCBjaHVua1NhbXBsZUNvdW50XSB7CiAgICAgICAg
IG1fcmVhZENvdW50ICs9IGNodW5rU2FtcGxlQ291bnQ7Ci0gICAgICAgIGZvciAoYXV0byBzaW5r
IDogbV9zaW5rcykKLSAgICAgICAgICAgIHNpbmstPk9uRGF0YShtX2F1ZGlvQnVmZmVyLmRhdGEo
KSwgTGliV2ViUlRDQXVkaW9Gb3JtYXQ6OnNhbXBsZVNpemUsIG1fb3V0cHV0U3RyZWFtRGVzY3Jp
cHRpb24uc2FtcGxlUmF0ZSgpLCBtX291dHB1dFN0cmVhbURlc2NyaXB0aW9uLm51bWJlck9mQ2hh
bm5lbHMoKSwgY2h1bmtTYW1wbGVDb3VudCk7CisgICAgICAgIHNlbmRBdWRpb0ZyYW1lcyhtX2F1
ZGlvQnVmZmVyLmRhdGEoKSwgTGliV2ViUlRDQXVkaW9Gb3JtYXQ6OnNhbXBsZVNpemUsIG1fb3V0
cHV0U3RyZWFtRGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpLCBtX291dHB1dFN0cmVhbURlc2NyaXB0
aW9uLm51bWJlck9mQ2hhbm5lbHMoKSwgY2h1bmtTYW1wbGVDb3VudCk7CiAgICAgfSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCmlu
ZGV4IDQ0MTliYWVlZjgzZTlkY2Y3NTgyMzQwMmEyYTgyZDM4MmRhZDZlYzkuLjc5ODFlNzFiZTk1
ZjE1NWQ3MWRhMjE0MGM0Zjk5M2E4NzNmOTgwM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2Nv
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcApAQCAtNjMsMTAgKzYzLDcgQEAgUmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2E6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNv
Y29hKFJlZjxNZWRpYVN0cmUKIAogdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2Nv
YTo6c2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2Ft
cGxlJiBzYW1wbGUpCiB7Ci0gICAgaWYgKCFtX3NpbmtzLnNpemUoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgaWYgKG1fbXV0ZWQgfHwgIW1fZW5hYmxlZCkKKyAgICBpZiAoaXNTaWxlbmNlZCgp
KQogICAgICAgICByZXR1cm47CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2
OTg5ZGMwZWYwMmU1OWJhNWZkNWU3ODU5ZmM2MWEwNmI4ZmY5NjNkLi41ZmQxYTNhZjYxNDVjOTc2
YjdkYzg5ZjE4NDE4NGQ4ZGRhZTRhYTNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTgtMTEt
MDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlYWx0aW1l
T3V0Z29pbmcgQS9WIHNvdXJjZXMgc2hvdWxkIG9ic2VydmUgdGhlaXIgc291cmNlcyBvbmx5IGlm
IGhhdmluZyBhIHNpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5MTQ5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogd2VicnRjL3JlbW92ZS10cmFjay1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
cnRjL3JlbW92ZS10cmFjay5odG1sOgorCiAyMDE4LTExLTA5ICBNZWdhbiBHYXJkbmVyICA8bWVn
YW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IFRlc3QgRXhwZWN0YXRpb25zIGZv
ciBSZXZlYWwgVGVzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3JlbW92ZS10cmFj
ay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvcmVtb3ZlLXRyYWNrLWV4cGVjdGVk
LnR4dAppbmRleCBkZTZjM2MyNjA1ODc3MzJjNzYxOWRmNWRiMGI3YjdjY2YwMTRhODZhLi5lYTM3
NjQ0MTY0NGEyOGJkNWU5ZDkyYzU3NTQ1ZGUwOWMxNGVjNTI1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJydGMvcmVtb3ZlLXRyYWNrLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93
ZWJydGMvcmVtb3ZlLXRyYWNrLWV4cGVjdGVkLnR4dApAQCAtMiw0ICsyLDYgQEAKIFBBU1MgU2V0
dXAgYXVkaW8gdmlkZW8gZXhjaGFuZ2UgCiBQQVNTIFJlbW92ZSB2aWRlbyB0cmFjayAKIFBBU1Mg
UmVtb3ZlIGF1ZGlvIHRyYWNrIAorUEFTUyBBZGQvcmVtb3ZlIGF1ZGlvIHRyYWNrcyAKK1BBU1Mg
QWRkL3JlbW92ZSB2aWRlbyB0cmFja3MgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0
Yy9yZW1vdmUtdHJhY2suaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9yZW1vdmUtdHJhY2suaHRt
bAppbmRleCA4MjdmNTIyZTQyMjQyODAxNjkyYmI5NDQwODc2NmRkMTczZWQ2ZmQ4Li42YzQ1ZGEz
YTFlY2FhMDQ4MTg3YmRiZjdkYTZhZTY4MWI1MGFmZTFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy93ZWJydGMvcmVtb3ZlLXRyYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3JlbW92
ZS10cmFjay5odG1sCkBAIC00MSw3ICs0MSw3IEBAIGFzeW5jIGZ1bmN0aW9uIHJlbmVnb3RpYXRl
KCkKIHsKICAgICBsZXQgZCA9IGF3YWl0IGZpcnN0Q29ubmVjdGlvbi5jcmVhdGVPZmZlcigpOwog
ICAgIGF3YWl0IGZpcnN0Q29ubmVjdGlvbi5zZXRMb2NhbERlc2NyaXB0aW9uKGQpOwotICAgIGF3
YWl0IHNlY29uZENvbm5lY3Rpb24uc2V0UmVtb3RlRGVzY3JpcHRpb24oZmlyc3RDb25uZWN0aW9u
LmxvY2FsRGVzY3JpcHRpb24pOworICAgIGF3YWl0IHNlY29uZENvbm5lY3Rpb24uc2V0UmVtb3Rl
RGVzY3JpcHRpb24oZCk7CiAgICAgZCA9IGF3YWl0IHNlY29uZENvbm5lY3Rpb24uY3JlYXRlQW5z
d2VyKCk7CiAgICAgYXdhaXQgc2Vjb25kQ29ubmVjdGlvbi5zZXRMb2NhbERlc2NyaXB0aW9uKGQp
OwogfQpAQCAtNTEsNyArNTEsNyBAQCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICAgICAg
cmVtb3RlVmlkZW9UcmFjay5vbm11dGUgPSByZXNvbHZlOwogICAgICAgICBzZXRUaW1lb3V0KCgp
ID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgNTAwMCk7CiAgICAgfSk7Ci0gICAgIAorCiAg
ICAgZmlyc3RDb25uZWN0aW9uLnJlbW92ZVRyYWNrKGZpcnN0Q29ubmVjdGlvbi5nZXRTZW5kZXJz
KClbMF0pOwogICAgIHJlbmVnb3RpYXRlKCk7CiAgICAgcmV0dXJuIHByb21pc2U7CkBAIC02Miwx
MSArNjIsMzQgQEAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CiAgICAgICAgIHJlbW90ZUF1ZGlv
VHJhY2sub25tdXRlID0gcmVzb2x2ZTsKICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3Qo
IlRlc3QgdGltZWQgb3V0IiksIDUwMDApOwogICAgIH0pOwotICAgICAKKwogICAgIGZpcnN0Q29u
bmVjdGlvbi5yZW1vdmVUcmFjayhmaXJzdENvbm5lY3Rpb24uZ2V0U2VuZGVycygpWzFdKTsKICAg
ICByZW5lZ290aWF0ZSgpOwogICAgIHJldHVybiBwcm9taXNlOwogfSwgIlJlbW92ZSBhdWRpbyB0
cmFjayIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3Qgc3RyZWFtID0g
YXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0cnVlfSk7
CisgICAgY29uc3QgdHJhY2sgPSBzdHJlYW0uZ2V0VHJhY2tzKClbMF07CisgICAgbGV0IHBjID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPDEwMDsgaSsr
KSB7CisgICAgICAgIGxldCBzZW5kZXIgPSBwYy5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKKyAg
ICAgICAgcGMucmVtb3ZlVHJhY2soc2VuZGVyKTsKKyAgICB9CisgICAgcGMuY2xvc2UoKTsKK30s
ICdBZGQvcmVtb3ZlIGF1ZGlvIHRyYWNrcycpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2Vy
TWVkaWEoe3ZpZGVvOiB0cnVlfSk7CisgICAgY29uc3QgdHJhY2sgPSBzdHJlYW0uZ2V0VHJhY2tz
KClbMF07CisgICAgbGV0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgZm9yIChs
ZXQgaSA9IDA7IGkgPDEwMDsgaSsrKSB7CisgICAgICAgIGxldCBzZW5kZXIgPSBwYy5hZGRUcmFj
ayh0cmFjaywgc3RyZWFtKTsKKyAgICAgICAgcGMucmVtb3ZlVHJhY2soc2VuZGVyKTsKKyAgICB9
CisgICAgcGMuY2xvc2UoKTsKK30sICdBZGQvcmVtb3ZlIHZpZGVvIHRyYWNrcycpOworCiAgICAg
ICAgIDwvc2NyaXB0PgogICAgIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354434</attachid>
            <date>2018-11-09 20:46:27 -0800</date>
            <delta_ts>2018-11-09 21:21:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191490-20181109204626.patch</filename>
            <type>text/plain</type>
            <size>20676</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM5MTdlOTIwYzE3NDQ5
YTE2NDZjMjlkMjU4ZDZjNjhhY2E2ZWFlMy4uNTMzOTNlMzRkOGZkYzc3ZDFjNGRhZGQ2NTBmOGFi
NzNkZDI3NTVmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTExLTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWFsdGltZU91dGdvaW5n
IEEvViBzb3VyY2VzIHNob3VsZCBvYnNlcnZlIHRoZWlyIHNvdXJjZXMgb25seSBpZiBoYXZpbmcg
YSBzaW5rCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTE0OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBP
YnNlcnZlIHRoZSBzb3VyY2UgdGhhdCBnZW5lcmF0ZXMgbWVkaWEgYmFzZWQgb24gdGhlIHNpbmtz
OgorICAgICAgICAtIERvIG5vdCBvYnNlcnZlIGF0IGNyZWF0aW9uIHRpbWUKKyAgICAgICAgLSBG
b3IgZmlyc3Qgc2luaywgc3RhcnQgb2JzZXJ2aW5nCisgICAgICAgIC0gV2hlbiBubyBtb3JlIHNp
bmssIHN0b3Agb2JzZXJ2aW5nCisgICAgICAgIEFwcGx5IHRoaXMgcHJpbmNpcGxlIGZvciBib3Ro
IG91dGdvaW5nIGF1ZGlvIGFuZCB2aWRlbyBzb3VyY2VzLgorICAgICAgICBBZGQgbG9ja3MgZm9y
IHRoZSBzaW5rcyB0byBlbnN1cmUgdGhyZWFkLXNhZmV0eS4KKyAgICAgICAgTWFrZSBzaW5rcyBI
YXNoU2V0IHdoaWNoIGlzIG1vcmUgcm9idXN0LgorCisgICAgICAgIERvIHNvbWUgcmVmYWN0b3Jp
bmcgdG8gYmV0dGVyIGlzb2xhdGUgZ2VuZXJpYyBvdXRnb2luZyBzb3VyY2VzIGZyb20gQ29jb2Ev
R1RLIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
IGFuZCB1cGRhdGVkIHdlYnJ0Yy9yZW1vdmUtdHJhY2suaHRtbC4KKworICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6On5SZWFsdGltZU91dGdvaW5n
QXVkaW9Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJj
ZTo6QWRkU2luayk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3Vy
Y2U6OlJlbW92ZVNpbmspOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlOjpzZW5kQXVkaW9GcmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6On5SZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlOjpvYnNlcnZlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2V0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OkFkZE9yVXBkYXRlU2luayk6CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OlJlbW92ZVNpbmspOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjppc1NpbGVuY2VkIGNv
bnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6cHVsbEF1ZGlvRGF0YSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNv
Y29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNv
Y29hOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hOjpw
dWxsQXVkaW9EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2E6OnNhbXBsZUJ1ZmZlclVw
ZGF0ZWQpOgorCiAyMDE4LTExLTA5ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgogCiAgICAgICAgIE5vcm1hbC1mbG93LW9ubHkgZmxleCBpdGVtcyBkb24ndCBjb3JyZWN0
bHkgcmVzcGVjdCB6LWluZGV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcApp
bmRleCA1ZWY3NDQ0ZjY2ZmRmYzZiN2ViZWQ3MWQ4ODFiZjhhY2JhMTAwM2UyLi5mNjUxNjI4YjNj
ZWFkM2ZjMTU5MDAzOGUyNjEwMzc2MjdiNWI4MmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdB
dWRpb1NvdXJjZS5jcHAKQEAgLTQxLDYgKzQxLDEyIEBAIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1Nv
dXJjZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJp
CiB7CiB9CiAKK1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6flJlYWx0aW1lT3V0Z29pbmdB
dWRpb1NvdXJjZSgpCit7CisgICAgQVNTRVJUKG1fc2lua3MuaXNFbXB0eSgpKTsKKyAgICBzdG9w
KCk7Cit9CisKIHZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpvYnNlcnZlU291cmNl
KCkKIHsKICAgICBtX2F1ZGlvU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CkBAIC01NCwxMSAr
NjAsOSBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6dW5vYnNlcnZlU291cmNl
KCkKIAogYm9vbCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNldFNvdXJjZShSZWY8TWVk
aWFTdHJlYW1UcmFja1ByaXZhdGU+JiYgbmV3U291cmNlKQogewotICAgIG1fYXVkaW9Tb3VyY2Ut
PnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICB1bm9ic2VydmVTb3VyY2UoKTsKICAgICBtX2F1
ZGlvU291cmNlID0gV1RGTW92ZShuZXdTb3VyY2UpOwotICAgIG1fYXVkaW9Tb3VyY2UtPmFkZE9i
c2VydmVyKCp0aGlzKTsKLQotICAgIGluaXRpYWxpemVDb252ZXJ0ZXIoKTsKKyAgICBvYnNlcnZl
U291cmNlKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTY4LDEyICs3Miw2IEBAIHZvaWQg
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjppbml0aWFsaXplQ29udmVydGVyKCkKICAgICBt
X2VuYWJsZWQgPSBtX2F1ZGlvU291cmNlLT5lbmFibGVkKCk7CiB9CiAKLXZvaWQgUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlOjpzdG9wKCkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwotICAgIG1fYXVkaW9Tb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKLX0KLQogdm9pZCBS
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNvdXJjZU11dGVkQ2hhbmdlZCgpCiB7CiAgICAg
bV9tdXRlZCA9IG1fYXVkaW9Tb3VyY2UtPm11dGVkKCk7CkBAIC04NCw2ICs4MiwzNCBAQCB2b2lk
IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6c291cmNlRW5hYmxlZENoYW5nZWQoKQogICAg
IG1fZW5hYmxlZCA9IG1fYXVkaW9Tb3VyY2UtPmVuYWJsZWQoKTsKIH0KIAordm9pZCBSZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2U6OkFkZFNpbmsod2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVy
ZmFjZSogc2luaykKK3sKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsK
KyAgICBpZiAoIW1fc2lua3MuYWRkKHNpbmspIHx8IG1fc2lua3Muc2l6ZSgpICE9IDEpCisgICAg
ICAgIHJldHVybjsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKV0oKSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPm9ic2VydmVTb3VyY2UoKTsK
KyAgICB9KTsKK30KKwordm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OlJlbW92ZVNp
bmsod2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVyZmFjZSogc2luaykKK3sKKyAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsKKyAgICBpZiAoIW1fc2lua3MucmVtb3ZlKHNp
bmspIHx8ICFtX3NpbmtzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdW5vYnNl
cnZlU291cmNlKCk7Cit9CisKK3ZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpzZW5k
QXVkaW9GcmFtZXMoY29uc3Qgdm9pZCogYXVkaW9EYXRhLCBpbnQgYml0c1BlclNhbXBsZSwgaW50
IHNhbXBsZVJhdGUsIHNpemVfdCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFt
ZXMpCit7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NpbmtzTG9jayk7CisgICAgZm9y
IChhdXRvIHNpbmsgOiBtX3NpbmtzKQorICAgICAgICBzaW5rLT5PbkRhdGEoYXVkaW9EYXRhLCBi
aXRzUGVyU2FtcGxlLCBzYW1wbGVSYXRlLCBudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1l
cyk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKExJQldF
QlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKaW5kZXggNjk0YmRhZTVkMDg5
M2YyMTkwMjBmZTM2MTlhZDAxODkwNTA3ODFlZi4uYjAzYmYyMWIyNzZlYWVkN2VmOWE0NTJjMWYx
OTJmZjMxMzE1MTE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKQEAgLTU0
LDkgKzU0LDkgQEAgY2xhc3MgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lT3V0Z29pbmcKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZT4gY3JlYXRlKFJlZjxNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZT4mJiBhdWRpb1NvdXJjZSk7CiAKLSAgICB+UmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlKCkgeyBzdG9wKCk7IH0KKyAgICB+UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlKCk7
CiAKLSAgICB2b2lkIHN0b3AoKTsKKyAgICB2b2lkIHN0b3AoKSB7IHVub2JzZXJ2ZVNvdXJjZSgp
OyB9CiAKICAgICBib29sIHNldFNvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYp
OwogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBt
X2F1ZGlvU291cmNlLmdldCgpOyB9CkBAIC02NCwxOCArNjQsMTggQEAgcHVibGljOgogcHJvdGVj
dGVkOgogICAgIGV4cGxpY2l0IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZShSZWY8TWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU+JiYpOwogCi0gICAgdm9pZCBvYnNlcnZlU291cmNlKCk7CiAgICAg
dm9pZCB1bm9ic2VydmVTb3VyY2UoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwdWxsQXVkaW9EYXRh
KCkgeyB9CiAKICAgICBib29sIGlzU2lsZW5jZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkIHx8
ICFtX2VuYWJsZWQ7IH0KIAotICAgIFZlY3Rvcjx3ZWJydGM6OkF1ZGlvVHJhY2tTaW5rSW50ZXJm
YWNlKj4gbV9zaW5rczsKKyAgICB2b2lkIHNlbmRBdWRpb0ZyYW1lcyhjb25zdCB2b2lkKiBhdWRp
b0RhdGEsIGludCBiaXRzUGVyU2FtcGxlLCBpbnQgc2FtcGxlUmF0ZSwgc2l6ZV90IG51bWJlck9m
Q2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcyk7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCB2b2lkIEFkZFNpbmsod2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVyZmFjZSogc2luaykgeyBt
X3NpbmtzLmFwcGVuZChzaW5rKTsgfQotICAgIHZpcnR1YWwgdm9pZCBSZW1vdmVTaW5rKHdlYnJ0
Yzo6QXVkaW9UcmFja1NpbmtJbnRlcmZhY2UqIHNpbmspIHsgbV9zaW5rcy5yZW1vdmVGaXJzdChz
aW5rKTsgfQorICAgIC8vIHdlYnJ0Yzo6QXVkaW9Tb3VyY2VJbnRlcmZhY2UgQVBJCisgICAgdm9p
ZCBBZGRTaW5rKHdlYnJ0Yzo6QXVkaW9UcmFja1NpbmtJbnRlcmZhY2UqKSBmaW5hbDsKKyAgICB2
b2lkIFJlbW92ZVNpbmsod2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVyZmFjZSopIGZpbmFsOwog
CiAgICAgdm9pZCBBZGRSZWYoKSBjb25zdCBmaW5hbCB7IHJlZigpOyB9CiAgICAgcnRjOjpSZWZD
b3VudFJlbGVhc2VTdGF0dXMgUmVsZWFzZSgpIGNvbnN0IGZpbmFsCkBAIC05MCw2ICs5MCw4IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBSZWdpc3Rlck9ic2VydmVyKHdlYnJ0Yzo6T2JzZXJ2ZXJJbnRl
cmZhY2UqKSBmaW5hbCB7IH0KICAgICB2b2lkIFVucmVnaXN0ZXJPYnNlcnZlcih3ZWJydGM6Ok9i
c2VydmVySW50ZXJmYWNlKikgZmluYWwgeyB9CiAKKyAgICB2b2lkIG9ic2VydmVTb3VyY2UoKTsK
KwogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCk7CiAgICAgdm9pZCBzb3VyY2VFbmFibGVk
Q2hhbmdlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3Qg
TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiwgc2l6ZV90KSB7IH07CkBAIC0xMTAsNiArMTEyLDkgQEAgcHJpdmF0ZToKICAg
ICBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IG1fYXVkaW9Tb3VyY2U7CiAgICAgYm9vbCBt
X211dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKKworICAgIG11
dGFibGUgUmVjdXJzaXZlTG9jayBtX3NpbmtzTG9jazsKKyAgICBIYXNoU2V0PHdlYnJ0Yzo6QXVk
aW9UcmFja1NpbmtJbnRlcmZhY2UqPiBtX3NpbmtzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAKaW5kZXggOWRhZWY3OTc5
NzU3ZGE0ZTE4YjkyNzE4NjY0NzgzMDg1ZGJhNTEzMS4uNTMyYjRhYWU3Yzc1NDVhNzM1ZDllYWRi
ZDJkMzU1ZGQ0NzIwOTQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3Bw
CkBAIC00Nyw2ICs0NywxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2U6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZShSZWY8TWVkaWFTdHJlYW1U
cmFja1ByaXZhdGU+JiYgdmlkZW9Tb3VyY2UpCiAgICAgOiBtX3ZpZGVvU291cmNlKFdURk1vdmUo
dmlkZW9Tb3VyY2UpKQogICAgICwgbV9ibGFja0ZyYW1lVGltZXIoKnRoaXMsICZSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2U6OnNlbmRPbmVCbGFja0ZyYW1lKQoreworfQorCitSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2U6On5SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UoKQoreworICAg
IEFTU0VSVChtX3NpbmtzLmlzRW1wdHkoKSk7CisgICAgc3RvcCgpOworfQorCit2b2lkIFJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6b2JzZXJ2ZVNvdXJjZSgpCiB7CiAgICAgbV92aWRlb1Nv
dXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogICAgIGluaXRpYWxpemVGcm9tU291cmNlKCk7CkBA
IC01OSw5ICs2OSw4IEBAIGJvb2wgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzZXRTb3Vy
Y2UoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmIG5ld1NvCiAKICAgICBtX3ZpZGVvU291
cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiAgICAgbV92aWRlb1NvdXJjZSA9IFdURk1vdmUo
bmV3U291cmNlKTsKLSAgICBtX3ZpZGVvU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAKLSAg
ICBpbml0aWFsaXplRnJvbVNvdXJjZSgpOworICAgIG9ic2VydmVTb3VyY2UoKTsKIAogICAgIHJl
dHVybiB0cnVlOwogfQpAQCAtNzEsNyArODAsNiBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZTo6c3RvcCgpCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBtX3ZpZGVv
U291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiAgICAgbV9ibGFja0ZyYW1lVGltZXIuc3Rv
cCgpOwotICAgIG1faXNTdG9wcGVkID0gdHJ1ZTsKIH0KIAogdm9pZCBSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2U6OnVwZGF0ZUJsYWNrRnJhbWVzU2VuZGluZygpCkBAIC0xMTgsMjUgKzEyNiwy
OCBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6aW5pdGlhbGl6ZUZyb21Tb3Vy
Y2UoKQogdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OkFkZE9yVXBkYXRlU2luayhy
dGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+KiBzaW5rLCBjb25zdCBy
dGM6OlZpZGVvU2lua1dhbnRzJiBzaW5rV2FudHMpCiB7CiAgICAgQVNTRVJUKCFzaW5rV2FudHMu
YmxhY2tfZnJhbWVzKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsK
IAogICAgIGlmIChzaW5rV2FudHMucm90YXRpb25fYXBwbGllZCkKICAgICAgICAgbV9zaG91bGRB
cHBseVJvdGF0aW9uID0gdHJ1ZTsKIAotICAgIGlmICghbV9zaW5rcy5jb250YWlucyhzaW5rKSkK
LSAgICAgICAgbV9zaW5rcy5hcHBlbmQoc2luayk7CisgICAgaWYgKCFtX3NpbmtzLmFkZChzaW5r
KSB8fCBtX3NpbmtzLnNpemUoKSAhPSAxKQorICAgICAgICByZXR1cm47CiAKICAgICBjYWxsT25N
YWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKCkgewotICAgICAgICBw
cm90ZWN0ZWRUaGlzLT5zZW5kQmxhY2tGcmFtZXNJZk5lZWRlZCgpOworICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5vYnNlcnZlU291cmNlKCk7CiAgICAgfSk7CiB9CiAKIHZvaWQgUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlOjpSZW1vdmVTaW5rKHJ0Yzo6VmlkZW9TaW5rSW50ZXJmYWNlPHdlYnJ0
Yzo6VmlkZW9GcmFtZT4qIHNpbmspCiB7Ci0gICAgbV9zaW5rcy5yZW1vdmVGaXJzdChzaW5rKTsK
KyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsKIAotICAgIGlmIChtX3Np
bmtzLnNpemUoKSkKKyAgICBpZiAoIW1fc2lua3MucmVtb3ZlKHNpbmspIHx8IG1fc2lua3Muc2l6
ZSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBtX3ZpZGVvU291cmNlLT5yZW1vdmVPYnNlcnZl
cigqdGhpcyk7CisKICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyldKCkgewogICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9ibGFja0ZyYW1lVGlt
ZXIuaXNBY3RpdmUoKSkKICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fYmxhY2tGcmFtZVRp
bWVyLnN0b3AoKTsKQEAgLTE4Myw2ICsxOTQsOCBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZTo6c2VuZEZyYW1lKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvRnJhbQog
ewogICAgIE1vbm90b25pY1RpbWUgdGltZXN0YW1wID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAg
ICAgd2VicnRjOjpWaWRlb0ZyYW1lIGZyYW1lKGJ1ZmZlciwgbV9zaG91bGRBcHBseVJvdGF0aW9u
ID8gd2VicnRjOjprVmlkZW9Sb3RhdGlvbl8wIDogbV9jdXJyZW50Um90YXRpb24sIHN0YXRpY19j
YXN0PGludDY0X3Q+KHRpbWVzdGFtcC5zZWNvbmRzU2luY2VFcG9jaCgpLm1pY3Jvc2Vjb25kcygp
KSk7CisKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsKICAgICBmb3Ig
KGF1dG8qIHNpbmsgOiBtX3NpbmtzKQogICAgICAgICBzaW5rLT5PbkZyYW1lKGZyYW1lKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKaW5kZXggNDI1MDU5OTM4NThkZDVlZmI2
NDZlOTM0OGVhNmViNmUxMDQ3MTAzNS4uMTUwYTExOTFhN2RjNmFiOTUzMDE2N2IyZWVlMTBiNTAw
OGQ5YzU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyB3ZWJydGM6OlZpZGVv
VHJhY2tTb3VyY2VJbnRlcmZhY2UsIHByaXZhdGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9i
c2VydmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZT4gY3JlYXRlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJiB2aWRlb1NvdXJjZSk7
Ci0gICAgflJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZSgpIHsgc3RvcCgpOyB9CisgICAgflJl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZSgpOwogCiAgICAgdm9pZCBzdG9wKCk7CiAgICAgYm9v
bCBzZXRTb3VyY2UoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmKTsKQEAgLTY4LDI1ICs2
OCwyMSBAQCBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJik7CiAKICAgICB2b2lkIHNlbmRGcmFt
ZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb0ZyYW1lQnVmZmVyPiYmKTsKKyAgICBi
b29sIGlzU2lsZW5jZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkIHx8ICFtX2VuYWJsZWQ7IH0K
IAotICAgIFZlY3RvcjxydGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+
Kj4gbV9zaW5rczsKLSAgICB3ZWJydGM6Okk0MjBCdWZmZXJQb29sIG1fYnVmZmVyUG9vbDsKKyAg
ICB2aXJ0dWFsIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvRnJhbWVCdWZmZXI+IGNy
ZWF0ZUJsYWNrRnJhbWUoc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0KSA9IDA7CiAKLSAgICBi
b29sIG1fZW5hYmxlZCB7IHRydWUgfTsKLSAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwotICAg
IHVpbnQzMl90IG1fd2lkdGggeyAwIH07Ci0gICAgdWludDMyX3QgbV9oZWlnaHQgeyAwIH07CiAg
ICAgYm9vbCBtX3Nob3VsZEFwcGx5Um90YXRpb24geyBmYWxzZSB9OwogICAgIHdlYnJ0Yzo6Vmlk
ZW9Sb3RhdGlvbiBtX2N1cnJlbnRSb3RhdGlvbiB7IHdlYnJ0Yzo6a1ZpZGVvUm90YXRpb25fMCB9
OwogCi0gICAgdmlydHVhbCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb0ZyYW1lQnVm
ZmVyPiBjcmVhdGVCbGFja0ZyYW1lKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCkgPSAwOwot
CiBwcml2YXRlOgogICAgIHZvaWQgc2VuZEJsYWNrRnJhbWVzSWZOZWVkZWQoKTsKICAgICB2b2lk
IHNlbmRPbmVCbGFja0ZyYW1lKCk7CiAgICAgdm9pZCBpbml0aWFsaXplRnJvbVNvdXJjZSgpOwog
ICAgIHZvaWQgdXBkYXRlQmxhY2tGcmFtZXNTZW5kaW5nKCk7CiAKKyAgICB2b2lkIG9ic2VydmVT
b3VyY2UoKTsKKwogICAgIC8vIE5vdGlmaWVyIEFQSQogICAgIHZvaWQgUmVnaXN0ZXJPYnNlcnZl
cih3ZWJydGM6Ok9ic2VydmVySW50ZXJmYWNlKikgZmluYWwgeyB9CiAgICAgdm9pZCBVbnJlZ2lz
dGVyT2JzZXJ2ZXIod2VicnRjOjpPYnNlcnZlckludGVyZmFjZSopIGZpbmFsIHsgfQpAQCAtMTE2
LDkgKzExMiwxNiBAQCBwcml2YXRlOgogCiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
PiBtX3ZpZGVvU291cmNlOwogICAgIHN0ZDo6b3B0aW9uYWw8UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzPiBtX2luaXRpYWxTZXR0aW5nczsKLSAgICBib29sIG1faXNTdG9wcGVkIHsgZmFsc2Ug
fTsKICAgICBUaW1lciBtX2JsYWNrRnJhbWVUaW1lcjsKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8
d2VicnRjOjpWaWRlb0ZyYW1lQnVmZmVyPiBtX2JsYWNrRnJhbWU7CisKKyAgICBtdXRhYmxlIFJl
Y3Vyc2l2ZUxvY2sgbV9zaW5rc0xvY2s7CisgICAgSGFzaFNldDxydGM6OlZpZGVvU2lua0ludGVy
ZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+Kj4gbV9zaW5rczsKKworICAgIGJvb2wgbV9lbmFibGVk
IHsgdHJ1ZSB9OworICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CisgICAgdWludDMyX3QgbV93
aWR0aCB7IDAgfTsKKyAgICB1aW50MzJfdCBtX2hlaWdodCB7IDAgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5jcHAKaW5kZXggMDYwZmMxMDk2Y2U1NGY1NzIy
ZGFiNTY0ZDc0NzZhYzcwZjNjZmNmMi4uMjE3NzAzMjM2NDAyNmEyNzYzNWUzMTllZDQ1YjNjODJl
OTgzMDQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5jcHAKQEAgLTM0LDcgKzM0LDYgQEAgUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VM
aWJXZWJSVEMoUmVmPE0KIHsKICAgICBtX2FkYXB0ZXIgPSBhZG9wdEdSZWYoZ3N0X2FkYXB0ZXJf
bmV3KCkpLAogICAgIG1fc2FtcGxlQ29udmVydGVyID0gbnVsbHB0cjsKLSAgICBvYnNlcnZlU291
cmNlKCk7CiB9CiAKIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6flJlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQygpCkBAIC0xMzAsMTMgKzEyOSwxMSBAQCB2
b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6cHVsbEF1ZGlvRGF0YSgp
CiAgICAgZ3BvaW50ZXIgaW5bMV0gPSB7IGlubWFwLmRhdGEgfTsKICAgICBncG9pbnRlciBvdXRb
MV0gPSB7IG91dG1hcC5kYXRhIH07CiAgICAgaWYgKGdzdF9hdWRpb19jb252ZXJ0ZXJfc2FtcGxl
cyhtX3NhbXBsZUNvbnZlcnRlciwgc3RhdGljX2Nhc3Q8R3N0QXVkaW9Db252ZXJ0ZXJGbGFncz4o
MCksIGluLCBpbkNodW5rU2FtcGxlQ291bnQsIG91dCwgb3V0Q2h1bmtTYW1wbGVDb3VudCkpIHsK
LSAgICAgICAgZm9yIChhdXRvIHNpbmsgOiBtX3NpbmtzKSB7Ci0gICAgICAgICAgICBzaW5rLT5P
bkRhdGEob3V0bWFwLmRhdGEsCi0gICAgICAgICAgICAgICAgTGliV2ViUlRDQXVkaW9Gb3JtYXQ6
OnNhbXBsZVNpemUsCi0gICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihtX291dHB1dFN0
cmVhbURlc2NyaXB0aW9uLT5zYW1wbGVSYXRlKCkpLAotICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PGludD4obV9vdXRwdXRTdHJlYW1EZXNjcmlwdGlvbi0+bnVtYmVyT2ZDaGFubmVscygpKSwK
LSAgICAgICAgICAgICAgICBvdXRDaHVua1NhbXBsZUNvdW50KTsKLSAgICAgICAgfQorICAgICAg
ICBzZW5kQXVkaW9GcmFtZXMob3V0bWFwLmRhdGEsCisgICAgICAgICAgICBMaWJXZWJSVENBdWRp
b0Zvcm1hdDo6c2FtcGxlU2l6ZSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4obV9vdXRw
dXRTdHJlYW1EZXNjcmlwdGlvbi0+c2FtcGxlUmF0ZSgpKSwKKyAgICAgICAgICAgIHN0YXRpY19j
YXN0PGludD4obV9vdXRwdXRTdHJlYW1EZXNjcmlwdGlvbi0+bnVtYmVyT2ZDaGFubmVscygpKSwK
KyAgICAgICAgICAgIG91dENodW5rU2FtcGxlQ291bnQpOwogICAgIH0gZWxzZQogICAgICAgICBH
U1RfRVJST1IoIkNvdWxkIG5vdCBjb252ZXJ0IHNhbXBsZXMuIik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4IDJmYmUwNjc4YjBh
ZmMxNmE3OTZhNDhlYzZlODgzN2FiM2MyMWVjMjIuLjIyZTQ5ZTkwOTg5NWE5MDNkNzIzMmUwNTJm
YzUxZTg4MGZkODJmMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRp
b1NvdXJjZUNvY29hLmNwcApAQCAtNDcsNyArNDcsNiBAQCBSZWFsdGltZU91dGdvaW5nQXVkaW9T
b3VyY2VDb2NvYTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EoUmVmPE1lZGlhU3Ry
ZQogICAgIDogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlKFdURk1vdmUoYXVkaW9Tb3VyY2Up
KQogICAgICwgbV9zYW1wbGVDb252ZXJ0ZXIoQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUo
TGliV2ViUlRDQXVkaW9Gb3JtYXQ6OnNhbXBsZVJhdGUgKiAyKSkKIHsKLSAgICBvYnNlcnZlU291
cmNlKCk7CiB9CiAKIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hOjp+UmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlQ29jb2EoKQpAQCAtMTQxLDggKzE0MCw3IEBAIHZvaWQgUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2E6OnB1bGxBdWRpb0RhdGEoKQogCiAgICAgbV9zYW1w
bGVDb252ZXJ0ZXItPnB1bGxBdmFsYWlibGVTYW1wbGVzQXNDaHVua3MoYnVmZmVyTGlzdCwgY2h1
bmtTYW1wbGVDb3VudCwgbV9yZWFkQ291bnQsIFt0aGlzLCBjaHVua1NhbXBsZUNvdW50XSB7CiAg
ICAgICAgIG1fcmVhZENvdW50ICs9IGNodW5rU2FtcGxlQ291bnQ7Ci0gICAgICAgIGZvciAoYXV0
byBzaW5rIDogbV9zaW5rcykKLSAgICAgICAgICAgIHNpbmstPk9uRGF0YShtX2F1ZGlvQnVmZmVy
LmRhdGEoKSwgTGliV2ViUlRDQXVkaW9Gb3JtYXQ6OnNhbXBsZVNpemUsIG1fb3V0cHV0U3RyZWFt
RGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpLCBtX291dHB1dFN0cmVhbURlc2NyaXB0aW9uLm51bWJl
ck9mQ2hhbm5lbHMoKSwgY2h1bmtTYW1wbGVDb3VudCk7CisgICAgICAgIHNlbmRBdWRpb0ZyYW1l
cyhtX2F1ZGlvQnVmZmVyLmRhdGEoKSwgTGliV2ViUlRDQXVkaW9Gb3JtYXQ6OnNhbXBsZVNpemUs
IG1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpLCBtX291dHB1dFN0cmVhbURl
c2NyaXB0aW9uLm51bWJlck9mQ2hhbm5lbHMoKSwgY2h1bmtTYW1wbGVDb3VudCk7CiAgICAgfSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2Eu
Y3BwCmluZGV4IDQ0MTliYWVlZjgzZTlkY2Y3NTgyMzQwMmEyYTgyZDM4MmRhZDZlYzkuLjc5ODFl
NzFiZTk1ZjE1NWQ3MWRhMjE0MGM0Zjk5M2E4NzNmOTgwM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcApAQCAtNjMsMTAgKzYzLDcgQEAg
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2E6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZUNvY29hKFJlZjxNZWRpYVN0cmUKIAogdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2VDb2NvYTo6c2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1l
ZGlhU2FtcGxlJiBzYW1wbGUpCiB7Ci0gICAgaWYgKCFtX3NpbmtzLnNpemUoKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaWYgKG1fbXV0ZWQgfHwgIW1fZW5hYmxlZCkKKyAgICBpZiAoaXNTaWxl
bmNlZCgpKQogICAgICAgICByZXR1cm47CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA2OTg5ZGMwZWYwMmU1OWJhNWZkNWU3ODU5ZmM2MWEwNmI4ZmY5NjNkLi41ZmQxYTNhZjYx
NDVjOTc2YjdkYzg5ZjE4NDE4NGQ4ZGRhZTRhYTNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTgtMTEtMDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJl
YWx0aW1lT3V0Z29pbmcgQS9WIHNvdXJjZXMgc2hvdWxkIG9ic2VydmUgdGhlaXIgc291cmNlcyBv
bmx5IGlmIGhhdmluZyBhIHNpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MTQ5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogd2VicnRjL3JlbW92ZS10cmFjay1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2VicnRjL3JlbW92ZS10cmFjay5odG1sOgorCiAyMDE4LTExLTA5ICBNZWdhbiBHYXJkbmVy
ICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IFRlc3QgRXhwZWN0YXRp
b25zIGZvciBSZXZlYWwgVGVzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3JlbW92
ZS10cmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvcmVtb3ZlLXRyYWNrLWV4
cGVjdGVkLnR4dAppbmRleCBkZTZjM2MyNjA1ODc3MzJjNzYxOWRmNWRiMGI3YjdjY2YwMTRhODZh
Li5lYTM3NjQ0MTY0NGEyOGJkNWU5ZDkyYzU3NTQ1ZGUwOWMxNGVjNTI1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJydGMvcmVtb3ZlLXRyYWNrLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJydGMvcmVtb3ZlLXRyYWNrLWV4cGVjdGVkLnR4dApAQCAtMiw0ICsyLDYgQEAKIFBB
U1MgU2V0dXAgYXVkaW8gdmlkZW8gZXhjaGFuZ2UgCiBQQVNTIFJlbW92ZSB2aWRlbyB0cmFjayAK
IFBBU1MgUmVtb3ZlIGF1ZGlvIHRyYWNrIAorUEFTUyBBZGQvcmVtb3ZlIGF1ZGlvIHRyYWNrcyAK
K1BBU1MgQWRkL3JlbW92ZSB2aWRlbyB0cmFja3MgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYnJ0Yy9yZW1vdmUtdHJhY2suaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9yZW1vdmUtdHJh
Y2suaHRtbAppbmRleCA4MjdmNTIyZTQyMjQyODAxNjkyYmI5NDQwODc2NmRkMTczZWQ2ZmQ4Li42
YzQ1ZGEzYTFlY2FhMDQ4MTg3YmRiZjdkYTZhZTY4MWI1MGFmZTFjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy93ZWJydGMvcmVtb3ZlLXRyYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRj
L3JlbW92ZS10cmFjay5odG1sCkBAIC00MSw3ICs0MSw3IEBAIGFzeW5jIGZ1bmN0aW9uIHJlbmVn
b3RpYXRlKCkKIHsKICAgICBsZXQgZCA9IGF3YWl0IGZpcnN0Q29ubmVjdGlvbi5jcmVhdGVPZmZl
cigpOwogICAgIGF3YWl0IGZpcnN0Q29ubmVjdGlvbi5zZXRMb2NhbERlc2NyaXB0aW9uKGQpOwot
ICAgIGF3YWl0IHNlY29uZENvbm5lY3Rpb24uc2V0UmVtb3RlRGVzY3JpcHRpb24oZmlyc3RDb25u
ZWN0aW9uLmxvY2FsRGVzY3JpcHRpb24pOworICAgIGF3YWl0IHNlY29uZENvbm5lY3Rpb24uc2V0
UmVtb3RlRGVzY3JpcHRpb24oZCk7CiAgICAgZCA9IGF3YWl0IHNlY29uZENvbm5lY3Rpb24uY3Jl
YXRlQW5zd2VyKCk7CiAgICAgYXdhaXQgc2Vjb25kQ29ubmVjdGlvbi5zZXRMb2NhbERlc2NyaXB0
aW9uKGQpOwogfQpAQCAtNTEsNyArNTEsNyBAQCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAg
ICAgICAgcmVtb3RlVmlkZW9UcmFjay5vbm11dGUgPSByZXNvbHZlOwogICAgICAgICBzZXRUaW1l
b3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgNTAwMCk7CiAgICAgfSk7Ci0gICAg
IAorCiAgICAgZmlyc3RDb25uZWN0aW9uLnJlbW92ZVRyYWNrKGZpcnN0Q29ubmVjdGlvbi5nZXRT
ZW5kZXJzKClbMF0pOwogICAgIHJlbmVnb3RpYXRlKCk7CiAgICAgcmV0dXJuIHByb21pc2U7CkBA
IC02MiwxMSArNjIsMzQgQEAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CiAgICAgICAgIHJlbW90
ZUF1ZGlvVHJhY2sub25tdXRlID0gcmVzb2x2ZTsKICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBy
ZWplY3QoIlRlc3QgdGltZWQgb3V0IiksIDUwMDApOwogICAgIH0pOwotICAgICAKKwogICAgIGZp
cnN0Q29ubmVjdGlvbi5yZW1vdmVUcmFjayhmaXJzdENvbm5lY3Rpb24uZ2V0U2VuZGVycygpWzFd
KTsKICAgICByZW5lZ290aWF0ZSgpOwogICAgIHJldHVybiBwcm9taXNlOwogfSwgIlJlbW92ZSBh
dWRpbyB0cmFjayIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3Qgc3Ry
ZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOiB0
cnVlfSk7CisgICAgY29uc3QgdHJhY2sgPSBzdHJlYW0uZ2V0VHJhY2tzKClbMF07CisgICAgbGV0
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPDEw
MDsgaSsrKSB7CisgICAgICAgIGxldCBzZW5kZXIgPSBwYy5hZGRUcmFjayh0cmFjaywgc3RyZWFt
KTsKKyAgICAgICAgcGMucmVtb3ZlVHJhY2soc2VuZGVyKTsKKyAgICB9CisgICAgcGMuY2xvc2Uo
KTsKK30sICdBZGQvcmVtb3ZlIGF1ZGlvIHRyYWNrcycpOworCitwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5n
ZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSk7CisgICAgY29uc3QgdHJhY2sgPSBzdHJlYW0uZ2V0
VHJhY2tzKClbMF07CisgICAgbGV0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPDEwMDsgaSsrKSB7CisgICAgICAgIGxldCBzZW5kZXIgPSBwYy5h
ZGRUcmFjayh0cmFjaywgc3RyZWFtKTsKKyAgICAgICAgcGMucmVtb3ZlVHJhY2soc2VuZGVyKTsK
KyAgICB9CisgICAgcGMuY2xvc2UoKTsKK30sICdBZGQvcmVtb3ZlIHZpZGVvIHRyYWNrcycpOwor
CiAgICAgICAgIDwvc2NyaXB0PgogICAgIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354438</attachid>
            <date>2018-11-09 21:21:04 -0800</date>
            <delta_ts>2018-11-12 11:00:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191490-20181109212104.patch</filename>
            <type>text/plain</type>
            <size>21521</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM5MTdlOTIwYzE3NDQ5
YTE2NDZjMjlkMjU4ZDZjNjhhY2E2ZWFlMy4uNTMzOTNlMzRkOGZkYzc3ZDFjNGRhZGQ2NTBmOGFi
NzNkZDI3NTVmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTExLTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWFsdGltZU91dGdvaW5n
IEEvViBzb3VyY2VzIHNob3VsZCBvYnNlcnZlIHRoZWlyIHNvdXJjZXMgb25seSBpZiBoYXZpbmcg
YSBzaW5rCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTE0OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBP
YnNlcnZlIHRoZSBzb3VyY2UgdGhhdCBnZW5lcmF0ZXMgbWVkaWEgYmFzZWQgb24gdGhlIHNpbmtz
OgorICAgICAgICAtIERvIG5vdCBvYnNlcnZlIGF0IGNyZWF0aW9uIHRpbWUKKyAgICAgICAgLSBG
b3IgZmlyc3Qgc2luaywgc3RhcnQgb2JzZXJ2aW5nCisgICAgICAgIC0gV2hlbiBubyBtb3JlIHNp
bmssIHN0b3Agb2JzZXJ2aW5nCisgICAgICAgIEFwcGx5IHRoaXMgcHJpbmNpcGxlIGZvciBib3Ro
IG91dGdvaW5nIGF1ZGlvIGFuZCB2aWRlbyBzb3VyY2VzLgorICAgICAgICBBZGQgbG9ja3MgZm9y
IHRoZSBzaW5rcyB0byBlbnN1cmUgdGhyZWFkLXNhZmV0eS4KKyAgICAgICAgTWFrZSBzaW5rcyBI
YXNoU2V0IHdoaWNoIGlzIG1vcmUgcm9idXN0LgorCisgICAgICAgIERvIHNvbWUgcmVmYWN0b3Jp
bmcgdG8gYmV0dGVyIGlzb2xhdGUgZ2VuZXJpYyBvdXRnb2luZyBzb3VyY2VzIGZyb20gQ29jb2Ev
R1RLIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
IGFuZCB1cGRhdGVkIHdlYnJ0Yy9yZW1vdmUtdHJhY2suaHRtbC4KKworICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6On5SZWFsdGltZU91dGdvaW5n
QXVkaW9Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJj
ZTo6QWRkU2luayk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3Vy
Y2U6OlJlbW92ZVNpbmspOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlOjpzZW5kQXVkaW9GcmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6On5SZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlOjpvYnNlcnZlU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c2V0U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OkFkZE9yVXBkYXRlU2luayk6CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OlJlbW92ZVNpbmspOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjppc1NpbGVuY2VkIGNv
bnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6cHVsbEF1ZGlvRGF0YSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNv
Y29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNv
Y29hOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hOjpw
dWxsQXVkaW9EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2E6OnNhbXBsZUJ1ZmZlclVw
ZGF0ZWQpOgorCiAyMDE4LTExLTA5ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgogCiAgICAgICAgIE5vcm1hbC1mbG93LW9ubHkgZmxleCBpdGVtcyBkb24ndCBjb3JyZWN0
bHkgcmVzcGVjdCB6LWluZGV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcApp
bmRleCA1ZWY3NDQ0ZjY2ZmRmYzZiN2ViZWQ3MWQ4ODFiZjhhY2JhMTAwM2UyLi5mNjUxNjI4YjNj
ZWFkM2ZjMTU5MDAzOGUyNjEwMzc2MjdiNWI4MmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdB
dWRpb1NvdXJjZS5jcHAKQEAgLTQxLDYgKzQxLDEyIEBAIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1Nv
dXJjZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJp
CiB7CiB9CiAKK1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6flJlYWx0aW1lT3V0Z29pbmdB
dWRpb1NvdXJjZSgpCit7CisgICAgQVNTRVJUKG1fc2lua3MuaXNFbXB0eSgpKTsKKyAgICBzdG9w
KCk7Cit9CisKIHZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpvYnNlcnZlU291cmNl
KCkKIHsKICAgICBtX2F1ZGlvU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CkBAIC01NCwxMSAr
NjAsOSBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6dW5vYnNlcnZlU291cmNl
KCkKIAogYm9vbCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNldFNvdXJjZShSZWY8TWVk
aWFTdHJlYW1UcmFja1ByaXZhdGU+JiYgbmV3U291cmNlKQogewotICAgIG1fYXVkaW9Tb3VyY2Ut
PnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICB1bm9ic2VydmVTb3VyY2UoKTsKICAgICBtX2F1
ZGlvU291cmNlID0gV1RGTW92ZShuZXdTb3VyY2UpOwotICAgIG1fYXVkaW9Tb3VyY2UtPmFkZE9i
c2VydmVyKCp0aGlzKTsKLQotICAgIGluaXRpYWxpemVDb252ZXJ0ZXIoKTsKKyAgICBvYnNlcnZl
U291cmNlKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTY4LDEyICs3Miw2IEBAIHZvaWQg
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjppbml0aWFsaXplQ29udmVydGVyKCkKICAgICBt
X2VuYWJsZWQgPSBtX2F1ZGlvU291cmNlLT5lbmFibGVkKCk7CiB9CiAKLXZvaWQgUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlOjpzdG9wKCkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwotICAgIG1fYXVkaW9Tb3VyY2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKLX0KLQogdm9pZCBS
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNvdXJjZU11dGVkQ2hhbmdlZCgpCiB7CiAgICAg
bV9tdXRlZCA9IG1fYXVkaW9Tb3VyY2UtPm11dGVkKCk7CkBAIC04NCw2ICs4MiwzNCBAQCB2b2lk
IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6c291cmNlRW5hYmxlZENoYW5nZWQoKQogICAg
IG1fZW5hYmxlZCA9IG1fYXVkaW9Tb3VyY2UtPmVuYWJsZWQoKTsKIH0KIAordm9pZCBSZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2U6OkFkZFNpbmsod2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVy
ZmFjZSogc2luaykKK3sKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsK
KyAgICBpZiAoIW1fc2lua3MuYWRkKHNpbmspIHx8IG1fc2lua3Muc2l6ZSgpICE9IDEpCisgICAg
ICAgIHJldHVybjsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKV0oKSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPm9ic2VydmVTb3VyY2UoKTsK
KyAgICB9KTsKK30KKwordm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OlJlbW92ZVNp
bmsod2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVyZmFjZSogc2luaykKK3sKKyAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsKKyAgICBpZiAoIW1fc2lua3MucmVtb3ZlKHNp
bmspIHx8ICFtX3NpbmtzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdW5vYnNl
cnZlU291cmNlKCk7Cit9CisKK3ZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpzZW5k
QXVkaW9GcmFtZXMoY29uc3Qgdm9pZCogYXVkaW9EYXRhLCBpbnQgYml0c1BlclNhbXBsZSwgaW50
IHNhbXBsZVJhdGUsIHNpemVfdCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFt
ZXMpCit7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NpbmtzTG9jayk7CisgICAgZm9y
IChhdXRvIHNpbmsgOiBtX3NpbmtzKQorICAgICAgICBzaW5rLT5PbkRhdGEoYXVkaW9EYXRhLCBi
aXRzUGVyU2FtcGxlLCBzYW1wbGVSYXRlLCBudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1l
cyk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKExJQldF
QlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKaW5kZXggNjk0YmRhZTVkMDg5
M2YyMTkwMjBmZTM2MTlhZDAxODkwNTA3ODFlZi4uYjAzYmYyMWIyNzZlYWVkN2VmOWE0NTJjMWYx
OTJmZjMxMzE1MTE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKQEAgLTU0
LDkgKzU0LDkgQEAgY2xhc3MgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lT3V0Z29pbmcKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZT4gY3JlYXRlKFJlZjxNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZT4mJiBhdWRpb1NvdXJjZSk7CiAKLSAgICB+UmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlKCkgeyBzdG9wKCk7IH0KKyAgICB+UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlKCk7
CiAKLSAgICB2b2lkIHN0b3AoKTsKKyAgICB2b2lkIHN0b3AoKSB7IHVub2JzZXJ2ZVNvdXJjZSgp
OyB9CiAKICAgICBib29sIHNldFNvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYp
OwogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiBzb3VyY2UoKSBjb25zdCB7IHJldHVybiBt
X2F1ZGlvU291cmNlLmdldCgpOyB9CkBAIC02NCwxOCArNjQsMTggQEAgcHVibGljOgogcHJvdGVj
dGVkOgogICAgIGV4cGxpY2l0IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZShSZWY8TWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU+JiYpOwogCi0gICAgdm9pZCBvYnNlcnZlU291cmNlKCk7CiAgICAg
dm9pZCB1bm9ic2VydmVTb3VyY2UoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwdWxsQXVkaW9EYXRh
KCkgeyB9CiAKICAgICBib29sIGlzU2lsZW5jZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkIHx8
ICFtX2VuYWJsZWQ7IH0KIAotICAgIFZlY3Rvcjx3ZWJydGM6OkF1ZGlvVHJhY2tTaW5rSW50ZXJm
YWNlKj4gbV9zaW5rczsKKyAgICB2b2lkIHNlbmRBdWRpb0ZyYW1lcyhjb25zdCB2b2lkKiBhdWRp
b0RhdGEsIGludCBiaXRzUGVyU2FtcGxlLCBpbnQgc2FtcGxlUmF0ZSwgc2l6ZV90IG51bWJlck9m
Q2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcyk7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCB2b2lkIEFkZFNpbmsod2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVyZmFjZSogc2luaykgeyBt
X3NpbmtzLmFwcGVuZChzaW5rKTsgfQotICAgIHZpcnR1YWwgdm9pZCBSZW1vdmVTaW5rKHdlYnJ0
Yzo6QXVkaW9UcmFja1NpbmtJbnRlcmZhY2UqIHNpbmspIHsgbV9zaW5rcy5yZW1vdmVGaXJzdChz
aW5rKTsgfQorICAgIC8vIHdlYnJ0Yzo6QXVkaW9Tb3VyY2VJbnRlcmZhY2UgQVBJCisgICAgdm9p
ZCBBZGRTaW5rKHdlYnJ0Yzo6QXVkaW9UcmFja1NpbmtJbnRlcmZhY2UqKSBmaW5hbDsKKyAgICB2
b2lkIFJlbW92ZVNpbmsod2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVyZmFjZSopIGZpbmFsOwog
CiAgICAgdm9pZCBBZGRSZWYoKSBjb25zdCBmaW5hbCB7IHJlZigpOyB9CiAgICAgcnRjOjpSZWZD
b3VudFJlbGVhc2VTdGF0dXMgUmVsZWFzZSgpIGNvbnN0IGZpbmFsCkBAIC05MCw2ICs5MCw4IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBSZWdpc3Rlck9ic2VydmVyKHdlYnJ0Yzo6T2JzZXJ2ZXJJbnRl
cmZhY2UqKSBmaW5hbCB7IH0KICAgICB2b2lkIFVucmVnaXN0ZXJPYnNlcnZlcih3ZWJydGM6Ok9i
c2VydmVySW50ZXJmYWNlKikgZmluYWwgeyB9CiAKKyAgICB2b2lkIG9ic2VydmVTb3VyY2UoKTsK
KwogICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCk7CiAgICAgdm9pZCBzb3VyY2VFbmFibGVk
Q2hhbmdlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3Qg
TWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmLCBjb25zdCBBdWRpb1N0cmVhbURl
c2NyaXB0aW9uJiwgc2l6ZV90KSB7IH07CkBAIC0xMTAsNiArMTEyLDkgQEAgcHJpdmF0ZToKICAg
ICBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IG1fYXVkaW9Tb3VyY2U7CiAgICAgYm9vbCBt
X211dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKKworICAgIG11
dGFibGUgUmVjdXJzaXZlTG9jayBtX3NpbmtzTG9jazsKKyAgICBIYXNoU2V0PHdlYnJ0Yzo6QXVk
aW9UcmFja1NpbmtJbnRlcmZhY2UqPiBtX3NpbmtzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAKaW5kZXggOWRhZWY3OTc5
NzU3ZGE0ZTE4YjkyNzE4NjY0NzgzMDg1ZGJhNTEzMS4uNTMyYjRhYWU3Yzc1NDVhNzM1ZDllYWRi
ZDJkMzU1ZGQ0NzIwOTQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3Bw
CkBAIC00Nyw2ICs0NywxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2U6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZShSZWY8TWVkaWFTdHJlYW1U
cmFja1ByaXZhdGU+JiYgdmlkZW9Tb3VyY2UpCiAgICAgOiBtX3ZpZGVvU291cmNlKFdURk1vdmUo
dmlkZW9Tb3VyY2UpKQogICAgICwgbV9ibGFja0ZyYW1lVGltZXIoKnRoaXMsICZSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2U6OnNlbmRPbmVCbGFja0ZyYW1lKQoreworfQorCitSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2U6On5SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UoKQoreworICAg
IEFTU0VSVChtX3NpbmtzLmlzRW1wdHkoKSk7CisgICAgc3RvcCgpOworfQorCit2b2lkIFJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6b2JzZXJ2ZVNvdXJjZSgpCiB7CiAgICAgbV92aWRlb1Nv
dXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogICAgIGluaXRpYWxpemVGcm9tU291cmNlKCk7CkBA
IC01OSw5ICs2OSw4IEBAIGJvb2wgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzZXRTb3Vy
Y2UoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmIG5ld1NvCiAKICAgICBtX3ZpZGVvU291
cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiAgICAgbV92aWRlb1NvdXJjZSA9IFdURk1vdmUo
bmV3U291cmNlKTsKLSAgICBtX3ZpZGVvU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAKLSAg
ICBpbml0aWFsaXplRnJvbVNvdXJjZSgpOworICAgIG9ic2VydmVTb3VyY2UoKTsKIAogICAgIHJl
dHVybiB0cnVlOwogfQpAQCAtNzEsNyArODAsNiBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZTo6c3RvcCgpCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBtX3ZpZGVv
U291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiAgICAgbV9ibGFja0ZyYW1lVGltZXIuc3Rv
cCgpOwotICAgIG1faXNTdG9wcGVkID0gdHJ1ZTsKIH0KIAogdm9pZCBSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2U6OnVwZGF0ZUJsYWNrRnJhbWVzU2VuZGluZygpCkBAIC0xMTgsMjUgKzEyNiwy
OCBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6aW5pdGlhbGl6ZUZyb21Tb3Vy
Y2UoKQogdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OkFkZE9yVXBkYXRlU2luayhy
dGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+KiBzaW5rLCBjb25zdCBy
dGM6OlZpZGVvU2lua1dhbnRzJiBzaW5rV2FudHMpCiB7CiAgICAgQVNTRVJUKCFzaW5rV2FudHMu
YmxhY2tfZnJhbWVzKTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsK
IAogICAgIGlmIChzaW5rV2FudHMucm90YXRpb25fYXBwbGllZCkKICAgICAgICAgbV9zaG91bGRB
cHBseVJvdGF0aW9uID0gdHJ1ZTsKIAotICAgIGlmICghbV9zaW5rcy5jb250YWlucyhzaW5rKSkK
LSAgICAgICAgbV9zaW5rcy5hcHBlbmQoc2luayk7CisgICAgaWYgKCFtX3NpbmtzLmFkZChzaW5r
KSB8fCBtX3NpbmtzLnNpemUoKSAhPSAxKQorICAgICAgICByZXR1cm47CiAKICAgICBjYWxsT25N
YWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKCkgewotICAgICAgICBw
cm90ZWN0ZWRUaGlzLT5zZW5kQmxhY2tGcmFtZXNJZk5lZWRlZCgpOworICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5vYnNlcnZlU291cmNlKCk7CiAgICAgfSk7CiB9CiAKIHZvaWQgUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlOjpSZW1vdmVTaW5rKHJ0Yzo6VmlkZW9TaW5rSW50ZXJmYWNlPHdlYnJ0
Yzo6VmlkZW9GcmFtZT4qIHNpbmspCiB7Ci0gICAgbV9zaW5rcy5yZW1vdmVGaXJzdChzaW5rKTsK
KyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsKIAotICAgIGlmIChtX3Np
bmtzLnNpemUoKSkKKyAgICBpZiAoIW1fc2lua3MucmVtb3ZlKHNpbmspIHx8IG1fc2lua3Muc2l6
ZSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBtX3ZpZGVvU291cmNlLT5yZW1vdmVPYnNlcnZl
cigqdGhpcyk7CisKICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyldKCkgewogICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9ibGFja0ZyYW1lVGlt
ZXIuaXNBY3RpdmUoKSkKICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fYmxhY2tGcmFtZVRp
bWVyLnN0b3AoKTsKQEAgLTE4Myw2ICsxOTQsOCBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZTo6c2VuZEZyYW1lKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvRnJhbQog
ewogICAgIE1vbm90b25pY1RpbWUgdGltZXN0YW1wID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAg
ICAgd2VicnRjOjpWaWRlb0ZyYW1lIGZyYW1lKGJ1ZmZlciwgbV9zaG91bGRBcHBseVJvdGF0aW9u
ID8gd2VicnRjOjprVmlkZW9Sb3RhdGlvbl8wIDogbV9jdXJyZW50Um90YXRpb24sIHN0YXRpY19j
YXN0PGludDY0X3Q+KHRpbWVzdGFtcC5zZWNvbmRzU2luY2VFcG9jaCgpLm1pY3Jvc2Vjb25kcygp
KSk7CisKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsKICAgICBmb3Ig
KGF1dG8qIHNpbmsgOiBtX3NpbmtzKQogICAgICAgICBzaW5rLT5PbkZyYW1lKGZyYW1lKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKaW5kZXggNDI1MDU5OTM4NThkZDVlZmI2
NDZlOTM0OGVhNmViNmUxMDQ3MTAzNS4uMTUwYTExOTFhN2RjNmFiOTUzMDE2N2IyZWVlMTBiNTAw
OGQ5YzU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyB3ZWJydGM6OlZpZGVv
VHJhY2tTb3VyY2VJbnRlcmZhY2UsIHByaXZhdGUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9i
c2VydmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZT4gY3JlYXRlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJiB2aWRlb1NvdXJjZSk7
Ci0gICAgflJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZSgpIHsgc3RvcCgpOyB9CisgICAgflJl
YWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZSgpOwogCiAgICAgdm9pZCBzdG9wKCk7CiAgICAgYm9v
bCBzZXRTb3VyY2UoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmKTsKQEAgLTY4LDI1ICs2
OCwyMSBAQCBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJik7CiAKICAgICB2b2lkIHNlbmRGcmFt
ZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb0ZyYW1lQnVmZmVyPiYmKTsKKyAgICBi
b29sIGlzU2lsZW5jZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkIHx8ICFtX2VuYWJsZWQ7IH0K
IAotICAgIFZlY3RvcjxydGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+
Kj4gbV9zaW5rczsKLSAgICB3ZWJydGM6Okk0MjBCdWZmZXJQb29sIG1fYnVmZmVyUG9vbDsKKyAg
ICB2aXJ0dWFsIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvRnJhbWVCdWZmZXI+IGNy
ZWF0ZUJsYWNrRnJhbWUoc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0KSA9IDA7CiAKLSAgICBi
b29sIG1fZW5hYmxlZCB7IHRydWUgfTsKLSAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwotICAg
IHVpbnQzMl90IG1fd2lkdGggeyAwIH07Ci0gICAgdWludDMyX3QgbV9oZWlnaHQgeyAwIH07CiAg
ICAgYm9vbCBtX3Nob3VsZEFwcGx5Um90YXRpb24geyBmYWxzZSB9OwogICAgIHdlYnJ0Yzo6Vmlk
ZW9Sb3RhdGlvbiBtX2N1cnJlbnRSb3RhdGlvbiB7IHdlYnJ0Yzo6a1ZpZGVvUm90YXRpb25fMCB9
OwogCi0gICAgdmlydHVhbCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb0ZyYW1lQnVm
ZmVyPiBjcmVhdGVCbGFja0ZyYW1lKHNpemVfdCB3aWR0aCwgc2l6ZV90IGhlaWdodCkgPSAwOwot
CiBwcml2YXRlOgogICAgIHZvaWQgc2VuZEJsYWNrRnJhbWVzSWZOZWVkZWQoKTsKICAgICB2b2lk
IHNlbmRPbmVCbGFja0ZyYW1lKCk7CiAgICAgdm9pZCBpbml0aWFsaXplRnJvbVNvdXJjZSgpOwog
ICAgIHZvaWQgdXBkYXRlQmxhY2tGcmFtZXNTZW5kaW5nKCk7CiAKKyAgICB2b2lkIG9ic2VydmVT
b3VyY2UoKTsKKwogICAgIC8vIE5vdGlmaWVyIEFQSQogICAgIHZvaWQgUmVnaXN0ZXJPYnNlcnZl
cih3ZWJydGM6Ok9ic2VydmVySW50ZXJmYWNlKikgZmluYWwgeyB9CiAgICAgdm9pZCBVbnJlZ2lz
dGVyT2JzZXJ2ZXIod2VicnRjOjpPYnNlcnZlckludGVyZmFjZSopIGZpbmFsIHsgfQpAQCAtMTE2
LDkgKzExMiwxNiBAQCBwcml2YXRlOgogCiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
PiBtX3ZpZGVvU291cmNlOwogICAgIHN0ZDo6b3B0aW9uYWw8UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzPiBtX2luaXRpYWxTZXR0aW5nczsKLSAgICBib29sIG1faXNTdG9wcGVkIHsgZmFsc2Ug
fTsKICAgICBUaW1lciBtX2JsYWNrRnJhbWVUaW1lcjsKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8
d2VicnRjOjpWaWRlb0ZyYW1lQnVmZmVyPiBtX2JsYWNrRnJhbWU7CisKKyAgICBtdXRhYmxlIFJl
Y3Vyc2l2ZUxvY2sgbV9zaW5rc0xvY2s7CisgICAgSGFzaFNldDxydGM6OlZpZGVvU2lua0ludGVy
ZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+Kj4gbV9zaW5rczsKKworICAgIGJvb2wgbV9lbmFibGVk
IHsgdHJ1ZSB9OworICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CisgICAgdWludDMyX3QgbV93
aWR0aCB7IDAgfTsKKyAgICB1aW50MzJfdCBtX2hlaWdodCB7IDAgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5jcHAKaW5kZXggMDYwZmMxMDk2Y2U1NGY1NzIy
ZGFiNTY0ZDc0NzZhYzcwZjNjZmNmMi4uMjE3NzAzMjM2NDAyNmEyNzYzNWUzMTllZDQ1YjNjODJl
OTgzMDQ4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5jcHAKQEAgLTM0LDcgKzM0LDYgQEAgUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VM
aWJXZWJSVEMoUmVmPE0KIHsKICAgICBtX2FkYXB0ZXIgPSBhZG9wdEdSZWYoZ3N0X2FkYXB0ZXJf
bmV3KCkpLAogICAgIG1fc2FtcGxlQ29udmVydGVyID0gbnVsbHB0cjsKLSAgICBvYnNlcnZlU291
cmNlKCk7CiB9CiAKIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6flJlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQygpCkBAIC0xMzAsMTMgKzEyOSwxMSBAQCB2
b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6cHVsbEF1ZGlvRGF0YSgp
CiAgICAgZ3BvaW50ZXIgaW5bMV0gPSB7IGlubWFwLmRhdGEgfTsKICAgICBncG9pbnRlciBvdXRb
MV0gPSB7IG91dG1hcC5kYXRhIH07CiAgICAgaWYgKGdzdF9hdWRpb19jb252ZXJ0ZXJfc2FtcGxl
cyhtX3NhbXBsZUNvbnZlcnRlciwgc3RhdGljX2Nhc3Q8R3N0QXVkaW9Db252ZXJ0ZXJGbGFncz4o
MCksIGluLCBpbkNodW5rU2FtcGxlQ291bnQsIG91dCwgb3V0Q2h1bmtTYW1wbGVDb3VudCkpIHsK
LSAgICAgICAgZm9yIChhdXRvIHNpbmsgOiBtX3NpbmtzKSB7Ci0gICAgICAgICAgICBzaW5rLT5P
bkRhdGEob3V0bWFwLmRhdGEsCi0gICAgICAgICAgICAgICAgTGliV2ViUlRDQXVkaW9Gb3JtYXQ6
OnNhbXBsZVNpemUsCi0gICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihtX291dHB1dFN0
cmVhbURlc2NyaXB0aW9uLT5zYW1wbGVSYXRlKCkpLAotICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PGludD4obV9vdXRwdXRTdHJlYW1EZXNjcmlwdGlvbi0+bnVtYmVyT2ZDaGFubmVscygpKSwK
LSAgICAgICAgICAgICAgICBvdXRDaHVua1NhbXBsZUNvdW50KTsKLSAgICAgICAgfQorICAgICAg
ICBzZW5kQXVkaW9GcmFtZXMob3V0bWFwLmRhdGEsCisgICAgICAgICAgICBMaWJXZWJSVENBdWRp
b0Zvcm1hdDo6c2FtcGxlU2l6ZSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4obV9vdXRw
dXRTdHJlYW1EZXNjcmlwdGlvbi0+c2FtcGxlUmF0ZSgpKSwKKyAgICAgICAgICAgIHN0YXRpY19j
YXN0PGludD4obV9vdXRwdXRTdHJlYW1EZXNjcmlwdGlvbi0+bnVtYmVyT2ZDaGFubmVscygpKSwK
KyAgICAgICAgICAgIG91dENodW5rU2FtcGxlQ291bnQpOwogICAgIH0gZWxzZQogICAgICAgICBH
U1RfRVJST1IoIkNvdWxkIG5vdCBjb252ZXJ0IHNhbXBsZXMuIik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2VMaWJXZWJSVEMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUxpYldlYlJUQy5j
cHAKaW5kZXggZjE3OGVlZDU4NDAxMWVlMTc3NDZmZmVkMWFjNjkyYTZkNjU1NGI4Mi4uOWUzOTZk
OTNiY2U0Mjk2OGQ2ODRjMjMyNGUxMjJkNDVkMzIxZDdkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdWaWRl
b1NvdXJjZUxpYldlYlJUQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUxpYldlYlJUQy5jcHAK
QEAgLTUyLDEwICs1Miw3IEBAIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUxpYldlYlJUQzo6
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlTGliV2ViUlRDKFJlZjxNCiAKIHZvaWQgUmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlTGliV2ViUlRDOjpzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmIHNhbXBsZSkKIHsKLSAgICBpZiAoIW1f
c2lua3Muc2l6ZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9tdXRlZCB8fCAhbV9l
bmFibGVkKQorICAgIGlmIChpc1NpbGVuY2VkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIHN3
aXRjaCAoc2FtcGxlLnZpZGVvUm90YXRpb24oKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNv
Y29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggMmZiZTA2NzhiMGFmYzE2YTc5NmE0
OGVjNmU4ODM3YWIzYzIxZWMyMi4uMjJlNDllOTA5ODk1YTkwM2Q3MjMyZTA1MmZjNTFlODgwZmQ4
MmYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29j
b2EuY3BwCkBAIC00Nyw3ICs0Nyw2IEBAIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29h
OjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYShSZWY8TWVkaWFTdHJlCiAgICAgOiBS
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UoV1RGTW92ZShhdWRpb1NvdXJjZSkpCiAgICAgLCBt
X3NhbXBsZUNvbnZlcnRlcihBdWRpb1NhbXBsZURhdGFTb3VyY2U6OmNyZWF0ZShMaWJXZWJSVENB
dWRpb0Zvcm1hdDo6c2FtcGxlUmF0ZSAqIDIpKQogewotICAgIG9ic2VydmVTb3VyY2UoKTsKIH0K
IAogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2E6On5SZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2VDb2NvYSgpCkBAIC0xNDEsOCArMTQwLDcgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5n
QXVkaW9Tb3VyY2VDb2NvYTo6cHVsbEF1ZGlvRGF0YSgpCiAKICAgICBtX3NhbXBsZUNvbnZlcnRl
ci0+cHVsbEF2YWxhaWJsZVNhbXBsZXNBc0NodW5rcyhidWZmZXJMaXN0LCBjaHVua1NhbXBsZUNv
dW50LCBtX3JlYWRDb3VudCwgW3RoaXMsIGNodW5rU2FtcGxlQ291bnRdIHsKICAgICAgICAgbV9y
ZWFkQ291bnQgKz0gY2h1bmtTYW1wbGVDb3VudDsKLSAgICAgICAgZm9yIChhdXRvIHNpbmsgOiBt
X3NpbmtzKQotICAgICAgICAgICAgc2luay0+T25EYXRhKG1fYXVkaW9CdWZmZXIuZGF0YSgpLCBM
aWJXZWJSVENBdWRpb0Zvcm1hdDo6c2FtcGxlU2l6ZSwgbV9vdXRwdXRTdHJlYW1EZXNjcmlwdGlv
bi5zYW1wbGVSYXRlKCksIG1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb24ubnVtYmVyT2ZDaGFubmVs
cygpLCBjaHVua1NhbXBsZUNvdW50KTsKKyAgICAgICAgc2VuZEF1ZGlvRnJhbWVzKG1fYXVkaW9C
dWZmZXIuZGF0YSgpLCBMaWJXZWJSVENBdWRpb0Zvcm1hdDo6c2FtcGxlU2l6ZSwgbV9vdXRwdXRT
dHJlYW1EZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCksIG1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb24u
bnVtYmVyT2ZDaGFubmVscygpLCBjaHVua1NhbXBsZUNvdW50KTsKICAgICB9KTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXgg
NDQxOWJhZWVmODNlOWRjZjc1ODIzNDAyYTJhODJkMzgyZGFkNmVjOS4uNzk4MWU3MWJlOTVmMTU1
ZDcxZGEyMTQwYzRmOTkzYTg3M2Y5ODAzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVP
dXRnb2luZ1ZpZGVvU291cmNlQ29jb2EuY3BwCkBAIC02MywxMCArNjMsNyBAQCBSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2Eo
UmVmPE1lZGlhU3RyZQogCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hOjpz
YW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUm
IHNhbXBsZSkKIHsKLSAgICBpZiAoIW1fc2lua3Muc2l6ZSgpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBpZiAobV9tdXRlZCB8fCAhbV9lbmFibGVkKQorICAgIGlmIChpc1NpbGVuY2VkKCkpCiAg
ICAgICAgIHJldHVybjsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY5ODlk
YzBlZjAyZTU5YmE1ZmQ1ZTc4NTlmYzYxYTA2YjhmZjk2M2QuLjVmZDFhM2FmNjE0NWM5NzZiN2Rj
ODlmMTg0MTg0ZDhkZGFlNGFhM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0xMS0wOSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVhbHRpbWVPdXRn
b2luZyBBL1Ygc291cmNlcyBzaG91bGQgb2JzZXJ2ZSB0aGVpciBzb3VyY2VzIG9ubHkgaWYgaGF2
aW5nIGEgc2luaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkxNDkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3ZWJydGMvcmVtb3ZlLXRyYWNrLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJydGMv
cmVtb3ZlLXRyYWNrLmh0bWw6CisKIDIwMTgtMTEtMDkgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9n
YXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggVGVzdCBFeHBlY3RhdGlvbnMgZm9yIFJl
dmVhbCBUZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvcmVtb3ZlLXRyYWNrLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9yZW1vdmUtdHJhY2stZXhwZWN0ZWQudHh0
CmluZGV4IGRlNmMzYzI2MDU4NzczMmM3NjE5ZGY1ZGIwYjdiN2NjZjAxNGE4NmEuLmVhMzc2NDQx
NjQ0YTI4YmQ1ZTlkOTJjNTc1NDVkZTA5YzE0ZWM1MjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3dlYnJ0Yy9yZW1vdmUtdHJhY2stZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYnJ0
Yy9yZW1vdmUtdHJhY2stZXhwZWN0ZWQudHh0CkBAIC0yLDQgKzIsNiBAQAogUEFTUyBTZXR1cCBh
dWRpbyB2aWRlbyBleGNoYW5nZSAKIFBBU1MgUmVtb3ZlIHZpZGVvIHRyYWNrIAogUEFTUyBSZW1v
dmUgYXVkaW8gdHJhY2sgCitQQVNTIEFkZC9yZW1vdmUgYXVkaW8gdHJhY2tzIAorUEFTUyBBZGQv
cmVtb3ZlIHZpZGVvIHRyYWNrcyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3Jl
bW92ZS10cmFjay5odG1sIGIvTGF5b3V0VGVzdHMvd2VicnRjL3JlbW92ZS10cmFjay5odG1sCmlu
ZGV4IDgyN2Y1MjJlNDIyNDI4MDE2OTJiYjk0NDA4NzY2ZGQxNzNlZDZmZDguLjZjNDVkYTNhMWVj
YWEwNDgxODdiZGJmN2RhNmFlNjgxYjUwYWZlMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YnJ0Yy9yZW1vdmUtdHJhY2suaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvcmVtb3ZlLXRy
YWNrLmh0bWwKQEAgLTQxLDcgKzQxLDcgQEAgYXN5bmMgZnVuY3Rpb24gcmVuZWdvdGlhdGUoKQog
ewogICAgIGxldCBkID0gYXdhaXQgZmlyc3RDb25uZWN0aW9uLmNyZWF0ZU9mZmVyKCk7CiAgICAg
YXdhaXQgZmlyc3RDb25uZWN0aW9uLnNldExvY2FsRGVzY3JpcHRpb24oZCk7Ci0gICAgYXdhaXQg
c2Vjb25kQ29ubmVjdGlvbi5zZXRSZW1vdGVEZXNjcmlwdGlvbihmaXJzdENvbm5lY3Rpb24ubG9j
YWxEZXNjcmlwdGlvbik7CisgICAgYXdhaXQgc2Vjb25kQ29ubmVjdGlvbi5zZXRSZW1vdGVEZXNj
cmlwdGlvbihkKTsKICAgICBkID0gYXdhaXQgc2Vjb25kQ29ubmVjdGlvbi5jcmVhdGVBbnN3ZXIo
KTsKICAgICBhd2FpdCBzZWNvbmRDb25uZWN0aW9uLnNldExvY2FsRGVzY3JpcHRpb24oZCk7CiB9
CkBAIC01MSw3ICs1MSw3IEBAIHByb21pc2VfdGVzdCgodGVzdCkgPT4gewogICAgICAgICByZW1v
dGVWaWRlb1RyYWNrLm9ubXV0ZSA9IHJlc29sdmU7CiAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4g
cmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsKICAgICB9KTsKLSAgICAgCisKICAgICBm
aXJzdENvbm5lY3Rpb24ucmVtb3ZlVHJhY2soZmlyc3RDb25uZWN0aW9uLmdldFNlbmRlcnMoKVsw
XSk7CiAgICAgcmVuZWdvdGlhdGUoKTsKICAgICByZXR1cm4gcHJvbWlzZTsKQEAgLTYyLDExICs2
MiwzNCBAQCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICAgICAgcmVtb3RlQXVkaW9UcmFj
ay5vbm11dGUgPSByZXNvbHZlOwogICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGVz
dCB0aW1lZCBvdXQiKSwgNTAwMCk7CiAgICAgfSk7Ci0gICAgIAorCiAgICAgZmlyc3RDb25uZWN0
aW9uLnJlbW92ZVRyYWNrKGZpcnN0Q29ubmVjdGlvbi5nZXRTZW5kZXJzKClbMV0pOwogICAgIHJl
bmVnb3RpYXRlKCk7CiAgICAgcmV0dXJuIHByb21pc2U7CiB9LCAiUmVtb3ZlIGF1ZGlvIHRyYWNr
Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBzdHJlYW0gPSBhd2Fp
dCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKKyAg
ICBjb25zdCB0cmFjayA9IHN0cmVhbS5nZXRUcmFja3MoKVswXTsKKyAgICBsZXQgcGMgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8MTAwOyBpKyspIHsK
KyAgICAgICAgbGV0IHNlbmRlciA9IHBjLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pOworICAgICAg
ICBwYy5yZW1vdmVUcmFjayhzZW5kZXIpOworICAgIH0KKyAgICBwYy5jbG9zZSgpOworfSwgJ0Fk
ZC9yZW1vdmUgYXVkaW8gdHJhY2tzJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
ICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRp
YSh7dmlkZW86IHRydWV9KTsKKyAgICBjb25zdCB0cmFjayA9IHN0cmVhbS5nZXRUcmFja3MoKVsw
XTsKKyAgICBsZXQgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBmb3IgKGxldCBp
ID0gMDsgaSA8MTAwOyBpKyspIHsKKyAgICAgICAgbGV0IHNlbmRlciA9IHBjLmFkZFRyYWNrKHRy
YWNrLCBzdHJlYW0pOworICAgICAgICBwYy5yZW1vdmVUcmFjayhzZW5kZXIpOworICAgIH0KKyAg
ICBwYy5jbG9zZSgpOworfSwgJ0FkZC9yZW1vdmUgdmlkZW8gdHJhY2tzJyk7CisKICAgICAgICAg
PC9zY3JpcHQ+CiAgICAgPC9ib2R5PgogPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354571</attachid>
            <date>2018-11-12 11:00:36 -0800</date>
            <delta_ts>2018-11-12 11:49:20 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-191490-20181112110035.patch</filename>
            <type>text/plain</type>
            <size>22535</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTRmYzNmNjM1MmIyYjVl
OWRlY2E3ZTFmNjQxYTg3YTFjNjIyZTUzNC4uZTNkM2Y5OWY0ZmVhODA4Yzk0NzBjYzc4YzljZWRl
NWNjMGNkMWY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTExLTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWFsdGltZU91dGdvaW5n
IEEvViBzb3VyY2VzIHNob3VsZCBvYnNlcnZlIHRoZWlyIHNvdXJjZXMgb25seSBpZiBoYXZpbmcg
YSBzaW5rCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTE0OTAKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgT2Jz
ZXJ2ZSB0aGUgc291cmNlIHRoYXQgZ2VuZXJhdGVzIG1lZGlhIGJhc2VkIG9uIHRoZSBzaW5rczoK
KyAgICAgICAgLSBEbyBub3Qgb2JzZXJ2ZSBhdCBjcmVhdGlvbiB0aW1lCisgICAgICAgIC0gRm9y
IGZpcnN0IHNpbmssIHN0YXJ0IG9ic2VydmluZworICAgICAgICAtIFdoZW4gbm8gbW9yZSBzaW5r
LCBzdG9wIG9ic2VydmluZworICAgICAgICBBcHBseSB0aGlzIHByaW5jaXBsZSBmb3IgYm90aCBv
dXRnb2luZyBhdWRpbyBhbmQgdmlkZW8gc291cmNlcy4KKyAgICAgICAgQWRkIGxvY2tzIGZvciB0
aGUgc2lua3MgdG8gZW5zdXJlIHRocmVhZC1zYWZldHkuCisgICAgICAgIE1ha2Ugc2lua3MgSGFz
aFNldCB3aGljaCBpcyBtb3JlIHJvYnVzdC4KKworICAgICAgICBEbyBzb21lIHJlZmFjdG9yaW5n
IHRvIGJldHRlciBpc29sYXRlIGdlbmVyaWMgb3V0Z29pbmcgc291cmNlcyBmcm9tIENvY29hL0dU
SyBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBh
bmQgdXBkYXRlZCB3ZWJydGMvcmVtb3ZlLXRyYWNrLmh0bWwuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjp+UmVhbHRpbWVPdXRnb2luZ0F1
ZGlvU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJj
ZTo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6
OkFkZFNpbmspOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
OjpSZW1vdmVTaW5rKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1Nv
dXJjZTo6c2VuZEF1ZGlvRnJhbWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjp+UmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZTo6b2JzZXJ2ZVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGlt
ZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNldFNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRp
bWVPdXRnb2luZ1ZpZGVvU291cmNlOjpBZGRPclVwZGF0ZVNpbmspOgorICAgICAgICAoV2ViQ29y
ZTo6UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpSZW1vdmVTaW5rKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6aXNTaWxlbmNlZCBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEM6OnB1bGxBdWRpb0RhdGEpOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2Nv
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2Nv
YTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EpOgorICAgICAgICAoV2ViQ29yZTo6
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2E6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYTo6cHVs
bEF1ZGlvRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hOjpzYW1wbGVCdWZmZXJVcGRh
dGVkKToKKwogMjAxOC0xMS0xMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgU3VwcG9ydCBzZXR0aW5nIHN0cmVhbSBpZHMgd2hlbiBhZGRpbmcgYSB0cmFuc2Nl
aXZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5jcHAKaW5kZXggNWVmNzQ0NGY2
NmZkZmM2YjdlYmVkNzFkODgxYmY4YWNiYTEwMDNlMi4uMGQwNzQyOGFmNjg5YTI2YzE4MzRkZjFl
ZWYzZTRjMWExZDRjZmNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3Bw
CkBAIC00MSw2ICs0MSwxMiBAQCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OlJlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaQogewogfQogCitSZWFs
dGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6On5SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UoKQor
eworICAgIEFTU0VSVChtX3NpbmtzLmlzRW1wdHkoKSk7CisgICAgc3RvcCgpOworfQorCiB2b2lk
IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6b2JzZXJ2ZVNvdXJjZSgpCiB7CiAgICAgbV9h
dWRpb1NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwpAQCAtNTQsMTEgKzYwLDE1IEBAIHZvaWQg
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjp1bm9ic2VydmVTb3VyY2UoKQogCiBib29sIFJl
YWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6c2V0U291cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZT4mJiBuZXdTb3VyY2UpCiB7Ci0gICAgbV9hdWRpb1NvdXJjZS0+cmVtb3ZlT2JzZXJ2
ZXIoKnRoaXMpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zaW5rc0xvY2spOworICAg
IGJvb2wgaGFzU2lua3MgPSAhbV9zaW5rcy5pc0VtcHR5KCk7CisKKyAgICBpZiAoaGFzU2lua3Mp
CisgICAgICAgIHVub2JzZXJ2ZVNvdXJjZSgpOwogICAgIG1fYXVkaW9Tb3VyY2UgPSBXVEZNb3Zl
KG5ld1NvdXJjZSk7Ci0gICAgbV9hdWRpb1NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAg
IGlmIChoYXNTaW5rcykKKyAgICAgICAgb2JzZXJ2ZVNvdXJjZSgpOwogCi0gICAgaW5pdGlhbGl6
ZUNvbnZlcnRlcigpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC02OCwxMiArNzgsNiBAQCB2
b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6aW5pdGlhbGl6ZUNvbnZlcnRlcigpCiAg
ICAgbV9lbmFibGVkID0gbV9hdWRpb1NvdXJjZS0+ZW5hYmxlZCgpOwogfQogCi12b2lkIFJlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6c3RvcCgpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKLSAgICBtX2F1ZGlvU291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7Ci19Ci0KIHZv
aWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpzb3VyY2VNdXRlZENoYW5nZWQoKQogewog
ICAgIG1fbXV0ZWQgPSBtX2F1ZGlvU291cmNlLT5tdXRlZCgpOwpAQCAtODQsNiArODgsMzggQEAg
dm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkK
ICAgICBtX2VuYWJsZWQgPSBtX2F1ZGlvU291cmNlLT5lbmFibGVkKCk7CiB9CiAKK3ZvaWQgUmVh
bHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpBZGRTaW5rKHdlYnJ0Yzo6QXVkaW9UcmFja1NpbmtJ
bnRlcmZhY2UqIHNpbmspCit7CisgICAgeworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9z
aW5rc0xvY2spOworICAgIGlmICghbV9zaW5rcy5hZGQoc2luaykgfHwgbV9zaW5rcy5zaXplKCkg
IT0gMSkKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oKSB7CisgICAgICAgIHByb3RlY3RlZFRoaXMt
Pm9ic2VydmVTb3VyY2UoKTsKKyAgICB9KTsKK30KKwordm9pZCBSZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2U6OlJlbW92ZVNpbmsod2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVyZmFjZSogc2lu
aykKK3sKKyAgICB7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3NpbmtzTG9jayk7Cisg
ICAgaWYgKCFtX3NpbmtzLnJlbW92ZShzaW5rKSB8fCAhbV9zaW5rcy5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICB1bm9ic2VydmVTb3VyY2UoKTsKK30KKwordm9pZCBS
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNlbmRBdWRpb0ZyYW1lcyhjb25zdCB2b2lkKiBh
dWRpb0RhdGEsIGludCBiaXRzUGVyU2FtcGxlLCBpbnQgc2FtcGxlUmF0ZSwgc2l6ZV90IG51bWJl
ck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcykKK3sKKyAgICBhdXRvIGxvY2tlciA9
IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsKKyAgICBmb3IgKGF1dG8gc2luayA6IG1fc2lua3MpCisg
ICAgICAgIHNpbmstPk9uRGF0YShhdWRpb0RhdGEsIGJpdHNQZXJTYW1wbGUsIHNhbXBsZVJhdGUs
IG51bWJlck9mQ2hhbm5lbHMsIG51bWJlck9mRnJhbWVzKTsKK30KKworCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5n
QXVkaW9Tb3VyY2UuaAppbmRleCA2OTRiZGFlNWQwODkzZjIxOTAyMGZlMzYxOWFkMDE4OTA1MDc4
MWVmLi5iMDNiZjIxYjI3NmVhZWQ3ZWY5YTQ1MmMxZjE5MmZmMzEzMTUxMTUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaApAQCAtNTQsOSArNTQsOSBAQCBjbGFzcyBSZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVhbHRp
bWVPdXRnb2luZwogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlPiBjcmVhdGUoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmIGF1ZGlvU291cmNl
KTsKIAotICAgIH5SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UoKSB7IHN0b3AoKTsgfQorICAg
IH5SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UoKTsKIAotICAgIHZvaWQgc3RvcCgpOworICAg
IHZvaWQgc3RvcCgpIHsgdW5vYnNlcnZlU291cmNlKCk7IH0KIAogICAgIGJvb2wgc2V0U291cmNl
KFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJik7CiAgICAgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9Tb3VyY2UuZ2V0KCk7IH0KQEAg
LTY0LDE4ICs2NCwxOCBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJik7CiAK
LSAgICB2b2lkIG9ic2VydmVTb3VyY2UoKTsKICAgICB2b2lkIHVub2JzZXJ2ZVNvdXJjZSgpOwog
CiAgICAgdmlydHVhbCB2b2lkIHB1bGxBdWRpb0RhdGEoKSB7IH0KIAogICAgIGJvb2wgaXNTaWxl
bmNlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWQgfHwgIW1fZW5hYmxlZDsgfQogCi0gICAgVmVj
dG9yPHdlYnJ0Yzo6QXVkaW9UcmFja1NpbmtJbnRlcmZhY2UqPiBtX3NpbmtzOworICAgIHZvaWQg
c2VuZEF1ZGlvRnJhbWVzKGNvbnN0IHZvaWQqIGF1ZGlvRGF0YSwgaW50IGJpdHNQZXJTYW1wbGUs
IGludCBzYW1wbGVSYXRlLCBzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9m
RnJhbWVzKTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgQWRkU2luayh3ZWJydGM6OkF1
ZGlvVHJhY2tTaW5rSW50ZXJmYWNlKiBzaW5rKSB7IG1fc2lua3MuYXBwZW5kKHNpbmspOyB9Ci0g
ICAgdmlydHVhbCB2b2lkIFJlbW92ZVNpbmsod2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVyZmFj
ZSogc2luaykgeyBtX3NpbmtzLnJlbW92ZUZpcnN0KHNpbmspOyB9CisgICAgLy8gd2VicnRjOjpB
dWRpb1NvdXJjZUludGVyZmFjZSBBUEkKKyAgICB2b2lkIEFkZFNpbmsod2VicnRjOjpBdWRpb1Ry
YWNrU2lua0ludGVyZmFjZSopIGZpbmFsOworICAgIHZvaWQgUmVtb3ZlU2luayh3ZWJydGM6OkF1
ZGlvVHJhY2tTaW5rSW50ZXJmYWNlKikgZmluYWw7CiAKICAgICB2b2lkIEFkZFJlZigpIGNvbnN0
IGZpbmFsIHsgcmVmKCk7IH0KICAgICBydGM6OlJlZkNvdW50UmVsZWFzZVN0YXR1cyBSZWxlYXNl
KCkgY29uc3QgZmluYWwKQEAgLTkwLDYgKzkwLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIFJlZ2lz
dGVyT2JzZXJ2ZXIod2VicnRjOjpPYnNlcnZlckludGVyZmFjZSopIGZpbmFsIHsgfQogICAgIHZv
aWQgVW5yZWdpc3Rlck9ic2VydmVyKHdlYnJ0Yzo6T2JzZXJ2ZXJJbnRlcmZhY2UqKSBmaW5hbCB7
IH0KIAorICAgIHZvaWQgb2JzZXJ2ZVNvdXJjZSgpOworCiAgICAgdm9pZCBzb3VyY2VNdXRlZENo
YW5nZWQoKTsKICAgICB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCB2
b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9y
bUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QpIHsgfTsK
QEAgLTExMCw2ICsxMTIsOSBAQCBwcml2YXRlOgogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZT4gbV9hdWRpb1NvdXJjZTsKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9lbmFibGVkIHsgdHJ1ZSB9OworCisgICAgbXV0YWJsZSBSZWN1cnNpdmVMb2NrIG1fc2lu
a3NMb2NrOworICAgIEhhc2hTZXQ8d2VicnRjOjpBdWRpb1RyYWNrU2lua0ludGVyZmFjZSo+IG1f
c2lua3M7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2lu
Z1ZpZGVvU291cmNlLmNwcAppbmRleCA5ZGFlZjc5Nzk3NTdkYTRlMThiOTI3MTg2NjQ3ODMwODVk
YmE1MTMxLi5lOGQzMjE2NjNmNGE5MmEzMjA0ODM2ZmViNDc2NzAyN2Y4OTgxMjdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5jcHAKQEAgLTQ3LDIxICs0NywzOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OlJlYWx0aW1lT3V0
Z29pbmdWaWRlb1NvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYgdmlkZW9Tb3Vy
Y2UpCiAgICAgOiBtX3ZpZGVvU291cmNlKFdURk1vdmUodmlkZW9Tb3VyY2UpKQogICAgICwgbV9i
bGFja0ZyYW1lVGltZXIoKnRoaXMsICZSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNlbmRP
bmVCbGFja0ZyYW1lKQoreworfQorCitSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6On5SZWFs
dGltZU91dGdvaW5nVmlkZW9Tb3VyY2UoKQoreworICAgIEFTU0VSVChtX3NpbmtzLmlzRW1wdHko
KSk7CisgICAgc3RvcCgpOworfQorCit2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6
b2JzZXJ2ZVNvdXJjZSgpCiB7CiAgICAgbV92aWRlb1NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMp
OwogICAgIGluaXRpYWxpemVGcm9tU291cmNlKCk7CiB9CiAKK3ZvaWQgUmVhbHRpbWVPdXRnb2lu
Z1ZpZGVvU291cmNlOjp1bm9ic2VydmVTb3VyY2UoKQoreworICAgIG1fdmlkZW9Tb3VyY2UtPnJl
bW92ZU9ic2VydmVyKCp0aGlzKTsKK30KKwogYm9vbCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2U6OnNldFNvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYgbmV3U291cmNlKQog
ewogICAgIGlmICghbV9pbml0aWFsU2V0dGluZ3MpCiAgICAgICAgIG1faW5pdGlhbFNldHRpbmdz
ID0gbV92aWRlb1NvdXJjZS0+c291cmNlKCkuc2V0dGluZ3MoKTsKIAotICAgIG1fdmlkZW9Tb3Vy
Y2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKLSAgICBtX3ZpZGVvU291cmNlID0gV1RGTW92ZShu
ZXdTb3VyY2UpOwotICAgIG1fdmlkZW9Tb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2lua3NMb2NrKTsKKyAgICBib29sIGhhc1NpbmtzID0g
IW1fc2lua3MuaXNFbXB0eSgpOwogCi0gICAgaW5pdGlhbGl6ZUZyb21Tb3VyY2UoKTsKKyAgICBp
ZiAoaGFzU2lua3MpCisgICAgICAgIHVub2JzZXJ2ZVNvdXJjZSgpOworICAgIG1fdmlkZW9Tb3Vy
Y2UgPSBXVEZNb3ZlKG5ld1NvdXJjZSk7CisgICAgaWYgKGhhc1NpbmtzKQorICAgICAgICBvYnNl
cnZlU291cmNlKCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTY5LDkgKzg3LDggQEAgYm9v
bCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNldFNvdXJjZShSZWY8TWVkaWFTdHJlYW1U
cmFja1ByaXZhdGU+JiYgbmV3U28KIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpz
dG9wKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG1fdmlkZW9Tb3VyY2Ut
PnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICB1bm9ic2VydmVTb3VyY2UoKTsKICAgICBtX2Js
YWNrRnJhbWVUaW1lci5zdG9wKCk7Ci0gICAgbV9pc1N0b3BwZWQgPSB0cnVlOwogfQogCiB2b2lk
IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6dXBkYXRlQmxhY2tGcmFtZXNTZW5kaW5nKCkK
QEAgLTEyMiwyMCArMTM5LDI3IEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpB
ZGRPclVwZGF0ZVNpbmsocnRjOjpWaWRlb1NpbmtJbnRlcmZhY2U8d2VicnRjCiAgICAgaWYgKHNp
bmtXYW50cy5yb3RhdGlvbl9hcHBsaWVkKQogICAgICAgICBtX3Nob3VsZEFwcGx5Um90YXRpb24g
PSB0cnVlOwogCi0gICAgaWYgKCFtX3NpbmtzLmNvbnRhaW5zKHNpbmspKQotICAgICAgICBtX3Np
bmtzLmFwcGVuZChzaW5rKTsKKyAgICB7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Np
bmtzTG9jayk7CisgICAgaWYgKCFtX3NpbmtzLmFkZChzaW5rKSB8fCBtX3NpbmtzLnNpemUoKSAh
PSAxKQorICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgY2FsbE9uTWFpblRocmVhZChbcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSgpIHsKLSAgICAgICAgcHJvdGVjdGVkVGhpcy0+
c2VuZEJsYWNrRnJhbWVzSWZOZWVkZWQoKTsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+b2JzZXJ2
ZVNvdXJjZSgpOwogICAgIH0pOwogfQogCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZTo6UmVtb3ZlU2luayhydGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+
KiBzaW5rKQogewotICAgIG1fc2lua3MucmVtb3ZlRmlyc3Qoc2luayk7CisgICAgeworICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9zaW5rc0xvY2spOwogCi0gICAgaWYgKG1fc2lua3Muc2l6
ZSgpKQorICAgIGlmICghbV9zaW5rcy5yZW1vdmUoc2luaykgfHwgbV9zaW5rcy5zaXplKCkpCiAg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB1bm9ic2VydmVTb3VyY2UoKTsKIAogICAgIGNh
bGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oKSB7CiAgICAg
ICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX2JsYWNrRnJhbWVUaW1lci5pc0FjdGl2ZSgpKQpAQCAt
MTQ4LDkgKzE3Miw2IEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpzZW5kQmxh
Y2tGcmFtZXNJZk5lZWRlZCgpCiAgICAgaWYgKG1fYmxhY2tGcmFtZVRpbWVyLmlzQWN0aXZlKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbV9zaW5rcy5zaXplKCkpCi0gICAgICAgIHJl
dHVybjsKLQogICAgIGlmICghbV9tdXRlZCAmJiBtX2VuYWJsZWQpCiAgICAgICAgIHJldHVybjsK
IApAQCAtMTgzLDYgKzIwNCw4IEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpz
ZW5kRnJhbWUocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9GcmFtCiB7CiAgICAgTW9u
b3RvbmljVGltZSB0aW1lc3RhbXAgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICB3ZWJydGM6
OlZpZGVvRnJhbWUgZnJhbWUoYnVmZmVyLCBtX3Nob3VsZEFwcGx5Um90YXRpb24gPyB3ZWJydGM6
OmtWaWRlb1JvdGF0aW9uXzAgOiBtX2N1cnJlbnRSb3RhdGlvbiwgc3RhdGljX2Nhc3Q8aW50NjRf
dD4odGltZXN0YW1wLnNlY29uZHNTaW5jZUVwb2NoKCkubWljcm9zZWNvbmRzKCkpKTsKKworICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zaW5rc0xvY2spOwogICAgIGZvciAoYXV0byogc2lu
ayA6IG1fc2lua3MpCiAgICAgICAgIHNpbmstPk9uRnJhbWUoZnJhbWUpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1Zp
ZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU91dGdvaW5nVmlkZW9Tb3VyY2UuaAppbmRleCA0MjUwNTk5Mzg1OGRkNWVmYjY0NmU5MzQ4ZWE2
ZWI2ZTEwNDcxMDM1Li5hMWIxZTk4MzJhYTQ3M2ZiNWM0ZDM3MmZiZDY0MDljZTM2Y2Q2YzkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuaApAQCAtNDksNyArNDksNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLCBXVEY6
OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluPiwgcHVibGljIHdlYnJ0Yzo6VmlkZW9UcmFja1NvdXJj
ZUludGVyZmFjZSwgcHJpdmF0ZSBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIgewog
cHVibGljOgogICAgIHN0YXRpYyBSZWY8UmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlPiBjcmVh
dGUoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmIHZpZGVvU291cmNlKTsKLSAgICB+UmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlKCkgeyBzdG9wKCk7IH0KKyAgICB+UmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlKCk7CiAKICAgICB2b2lkIHN0b3AoKTsKICAgICBib29sIHNldFNvdXJj
ZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYpOwpAQCAtNjgsMjUgKzY4LDIyIEBAIHBy
b3RlY3RlZDoKICAgICBleHBsaWNpdCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UoUmVmPE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmKTsKIAogICAgIHZvaWQgc2VuZEZyYW1lKHJ0Yzo6c2Nv
cGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvRnJhbWVCdWZmZXI+JiYpOworICAgIGJvb2wgaXNTaWxl
bmNlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWQgfHwgIW1fZW5hYmxlZDsgfQogCi0gICAgVmVj
dG9yPHJ0Yzo6VmlkZW9TaW5rSW50ZXJmYWNlPHdlYnJ0Yzo6VmlkZW9GcmFtZT4qPiBtX3Npbmtz
OwotICAgIHdlYnJ0Yzo6STQyMEJ1ZmZlclBvb2wgbV9idWZmZXJQb29sOworICAgIHZpcnR1YWwg
cnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9GcmFtZUJ1ZmZlcj4gY3JlYXRlQmxhY2tG
cmFtZShzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQpID0gMDsKIAotICAgIGJvb2wgbV9lbmFi
bGVkIHsgdHJ1ZSB9OwotICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07Ci0gICAgdWludDMyX3Qg
bV93aWR0aCB7IDAgfTsKLSAgICB1aW50MzJfdCBtX2hlaWdodCB7IDAgfTsKICAgICBib29sIG1f
c2hvdWxkQXBwbHlSb3RhdGlvbiB7IGZhbHNlIH07CiAgICAgd2VicnRjOjpWaWRlb1JvdGF0aW9u
IG1fY3VycmVudFJvdGF0aW9uIHsgd2VicnRjOjprVmlkZW9Sb3RhdGlvbl8wIH07CiAKLSAgICB2
aXJ0dWFsIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvRnJhbWVCdWZmZXI+IGNyZWF0
ZUJsYWNrRnJhbWUoc2l6ZV90IHdpZHRoLCBzaXplX3QgaGVpZ2h0KSA9IDA7Ci0KIHByaXZhdGU6
CiAgICAgdm9pZCBzZW5kQmxhY2tGcmFtZXNJZk5lZWRlZCgpOwogICAgIHZvaWQgc2VuZE9uZUJs
YWNrRnJhbWUoKTsKICAgICB2b2lkIGluaXRpYWxpemVGcm9tU291cmNlKCk7CiAgICAgdm9pZCB1
cGRhdGVCbGFja0ZyYW1lc1NlbmRpbmcoKTsKIAorICAgIHZvaWQgb2JzZXJ2ZVNvdXJjZSgpOwor
ICAgIHZvaWQgdW5vYnNlcnZlU291cmNlKCk7CisKICAgICAvLyBOb3RpZmllciBBUEkKICAgICB2
b2lkIFJlZ2lzdGVyT2JzZXJ2ZXIod2VicnRjOjpPYnNlcnZlckludGVyZmFjZSopIGZpbmFsIHsg
fQogICAgIHZvaWQgVW5yZWdpc3Rlck9ic2VydmVyKHdlYnJ0Yzo6T2JzZXJ2ZXJJbnRlcmZhY2Uq
KSBmaW5hbCB7IH0KQEAgLTExNiw5ICsxMTMsMTYgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV92aWRlb1NvdXJjZTsKICAgICBzdGQ6Om9wdGlvbmFsPFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncz4gbV9pbml0aWFsU2V0dGluZ3M7Ci0gICAgYm9vbCBt
X2lzU3RvcHBlZCB7IGZhbHNlIH07CiAgICAgVGltZXIgbV9ibGFja0ZyYW1lVGltZXI7CiAgICAg
cnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VmlkZW9GcmFtZUJ1ZmZlcj4gbV9ibGFja0ZyYW1l
OworCisgICAgbXV0YWJsZSBSZWN1cnNpdmVMb2NrIG1fc2lua3NMb2NrOworICAgIEhhc2hTZXQ8
cnRjOjpWaWRlb1NpbmtJbnRlcmZhY2U8d2VicnRjOjpWaWRlb0ZyYW1lPio+IG1fc2lua3M7CisK
KyAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKKyAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9
OworICAgIHVpbnQzMl90IG1fd2lkdGggeyAwIH07CisgICAgdWludDMyX3QgbV9oZWlnaHQgeyAw
IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlTGliV2ViUlRDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEMuY3BwCmluZGV4
IDA2MGZjMTA5NmNlNTRmNTcyMmRhYjU2NGQ3NDc2YWM3MGYzY2ZjZjIuLjIxNzcwMzIzNjQwMjZh
Mjc2MzVlMzE5ZWQ0NWIzYzgyZTk4MzA0ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VM
aWJXZWJSVEMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEMuY3BwCkBAIC0zNCw3
ICszNCw2IEBAIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQzo6UmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDKFJlZjxNCiB7CiAgICAgbV9hZGFwdGVyID0gYWRv
cHRHUmVmKGdzdF9hZGFwdGVyX25ldygpKSwKICAgICBtX3NhbXBsZUNvbnZlcnRlciA9IG51bGxw
dHI7Ci0gICAgb2JzZXJ2ZVNvdXJjZSgpOwogfQogCiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3Vy
Y2VMaWJXZWJSVEM6On5SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEMoKQpAQCAt
MTMwLDEzICsxMjksMTEgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJS
VEM6OnB1bGxBdWRpb0RhdGEoKQogICAgIGdwb2ludGVyIGluWzFdID0geyBpbm1hcC5kYXRhIH07
CiAgICAgZ3BvaW50ZXIgb3V0WzFdID0geyBvdXRtYXAuZGF0YSB9OwogICAgIGlmIChnc3RfYXVk
aW9fY29udmVydGVyX3NhbXBsZXMobV9zYW1wbGVDb252ZXJ0ZXIsIHN0YXRpY19jYXN0PEdzdEF1
ZGlvQ29udmVydGVyRmxhZ3M+KDApLCBpbiwgaW5DaHVua1NhbXBsZUNvdW50LCBvdXQsIG91dENo
dW5rU2FtcGxlQ291bnQpKSB7Ci0gICAgICAgIGZvciAoYXV0byBzaW5rIDogbV9zaW5rcykgewot
ICAgICAgICAgICAgc2luay0+T25EYXRhKG91dG1hcC5kYXRhLAotICAgICAgICAgICAgICAgIExp
YldlYlJUQ0F1ZGlvRm9ybWF0OjpzYW1wbGVTaXplLAotICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PGludD4obV9vdXRwdXRTdHJlYW1EZXNjcmlwdGlvbi0+c2FtcGxlUmF0ZSgpKSwKLSAgICAg
ICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KG1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb24tPm51
bWJlck9mQ2hhbm5lbHMoKSksCi0gICAgICAgICAgICAgICAgb3V0Q2h1bmtTYW1wbGVDb3VudCk7
Ci0gICAgICAgIH0KKyAgICAgICAgc2VuZEF1ZGlvRnJhbWVzKG91dG1hcC5kYXRhLAorICAgICAg
ICAgICAgTGliV2ViUlRDQXVkaW9Gb3JtYXQ6OnNhbXBsZVNpemUsCisgICAgICAgICAgICBzdGF0
aWNfY2FzdDxpbnQ+KG1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb24tPnNhbXBsZVJhdGUoKSksCisg
ICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KG1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb24tPm51
bWJlck9mQ2hhbm5lbHMoKSksCisgICAgICAgICAgICBvdXRDaHVua1NhbXBsZUNvdW50KTsKICAg
ICB9IGVsc2UKICAgICAgICAgR1NUX0VSUk9SKCJDb3VsZCBub3QgY29udmVydCBzYW1wbGVzLiIp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlTGliV2ViUlRDLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VMaWJXZWJSVEMuY3BwCmluZGV4IGYxNzhlZWQ1ODQwMTFlZTE3NzQ2ZmZlZDFhYzY5
MmE2ZDY1NTRiODIuLjllMzk2ZDkzYmNlNDI5NjhkNjg0YzIzMjRlMTIyZDQ1ZDMyMWQ3ZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9S
ZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VMaWJXZWJSVEMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2VMaWJXZWJSVEMuY3BwCkBAIC01MiwxMCArNTIsNyBAQCBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VMaWJXZWJSVEM6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUxpYldlYlJUQyhS
ZWY8TQogCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUxpYldlYlJUQzo6c2FtcGxl
QnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE1lZGlhU2FtcGxlJiBzYW1w
bGUpCiB7Ci0gICAgaWYgKCFtX3NpbmtzLnNpemUoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
aWYgKG1fbXV0ZWQgfHwgIW1fZW5hYmxlZCkKKyAgICBpZiAoaXNTaWxlbmNlZCgpKQogICAgICAg
ICByZXR1cm47CiAKICAgICBzd2l0Y2ggKHNhbXBsZS52aWRlb1JvdGF0aW9uKCkpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4IDJm
YmUwNjc4YjBhZmMxNmE3OTZhNDhlYzZlODgzN2FiM2MyMWVjMjIuLjIyZTQ5ZTkwOTg5NWE5MDNk
NzIzMmUwNTJmYzUxZTg4MGZkODJmMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNwcApAQCAtNDcsNyArNDcsNiBAQCBSZWFsdGltZU91dGdv
aW5nQXVkaW9Tb3VyY2VDb2NvYTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EoUmVm
PE1lZGlhU3RyZQogICAgIDogUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlKFdURk1vdmUoYXVk
aW9Tb3VyY2UpKQogICAgICwgbV9zYW1wbGVDb252ZXJ0ZXIoQXVkaW9TYW1wbGVEYXRhU291cmNl
OjpjcmVhdGUoTGliV2ViUlRDQXVkaW9Gb3JtYXQ6OnNhbXBsZVJhdGUgKiAyKSkKIHsKLSAgICBv
YnNlcnZlU291cmNlKCk7CiB9CiAKIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hOjp+
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EoKQpAQCAtMTQxLDggKzE0MCw3IEBAIHZv
aWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2E6OnB1bGxBdWRpb0RhdGEoKQogCiAg
ICAgbV9zYW1wbGVDb252ZXJ0ZXItPnB1bGxBdmFsYWlibGVTYW1wbGVzQXNDaHVua3MoYnVmZmVy
TGlzdCwgY2h1bmtTYW1wbGVDb3VudCwgbV9yZWFkQ291bnQsIFt0aGlzLCBjaHVua1NhbXBsZUNv
dW50XSB7CiAgICAgICAgIG1fcmVhZENvdW50ICs9IGNodW5rU2FtcGxlQ291bnQ7Ci0gICAgICAg
IGZvciAoYXV0byBzaW5rIDogbV9zaW5rcykKLSAgICAgICAgICAgIHNpbmstPk9uRGF0YShtX2F1
ZGlvQnVmZmVyLmRhdGEoKSwgTGliV2ViUlRDQXVkaW9Gb3JtYXQ6OnNhbXBsZVNpemUsIG1fb3V0
cHV0U3RyZWFtRGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpLCBtX291dHB1dFN0cmVhbURlc2NyaXB0
aW9uLm51bWJlck9mQ2hhbm5lbHMoKSwgY2h1bmtTYW1wbGVDb3VudCk7CisgICAgICAgIHNlbmRB
dWRpb0ZyYW1lcyhtX2F1ZGlvQnVmZmVyLmRhdGEoKSwgTGliV2ViUlRDQXVkaW9Gb3JtYXQ6OnNh
bXBsZVNpemUsIG1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpLCBtX291dHB1
dFN0cmVhbURlc2NyaXB0aW9uLm51bWJlck9mQ2hhbm5lbHMoKSwgY2h1bmtTYW1wbGVDb3VudCk7
CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlQ29jb2EuY3BwCmluZGV4IDQ0MTliYWVlZjgzZTlkY2Y3NTgyMzQwMmEyYTgyZDM4MmRhZDZl
YzkuLjc5ODFlNzFiZTk1ZjE1NWQ3MWRhMjE0MGM0Zjk5M2E4NzNmOTgwM2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLmNwcApAQCAtNjMsMTAg
KzYzLDcgQEAgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2E6OlJlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZUNvY29hKFJlZjxNZWRpYVN0cmUKIAogdm9pZCBSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2VDb2NvYTo6c2FtcGxlQnVmZmVyVXBkYXRlZChNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYsIE1lZGlhU2FtcGxlJiBzYW1wbGUpCiB7Ci0gICAgaWYgKCFtX3NpbmtzLnNpemUoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fbXV0ZWQgfHwgIW1fZW5hYmxlZCkKKyAgICBp
ZiAoaXNTaWxlbmNlZCgpKQogICAgICAgICByZXR1cm47CiAKICNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAzN2U1ZTZlMGQ1NjliNWU0NWUxMDYxNTBlMGE4MzcyOTg2ZDBlNGUwLi4z
N2Y0NGUyYmY4ZDc4MDg3M2M5YzRiZWZlMjhmMWIyMjNkYzljOWFlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTgtMTEtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIFJlYWx0aW1lT3V0Z29pbmcgQS9WIHNvdXJjZXMgc2hvdWxkIG9ic2VydmUgdGhlaXIg
c291cmNlcyBvbmx5IGlmIGhhdmluZyBhIHNpbmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTQ5MAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
Q2FybHNvbi4KKworICAgICAgICAqIHdlYnJ0Yy9yZW1vdmUtdHJhY2stZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYnJ0Yy9yZW1vdmUtdHJhY2suaHRtbDoKKyAgICAgICAgQWRkIHRlc3RzIGFu
ZCBmaXhlZCBzb21lIGZsYWtpbmVzcyBpc3N1ZXMgb24gZXhpc3RpbmcgdGVzdHMgaW4gdGhlIGZp
bGUuCisKIDIwMTgtMTEtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFN1cHBvcnQgc2V0dGluZyBzdHJlYW0gaWRzIHdoZW4gYWRkaW5nIGEgdHJhbnNjZWl2
ZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9yZW1vdmUtdHJhY2stZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvd2VicnRjL3JlbW92ZS10cmFjay1leHBlY3RlZC50eHQKaW5kZXgg
ZGU2YzNjMjYwNTg3NzMyYzc2MTlkZjVkYjBiN2I3Y2NmMDE0YTg2YS4uZWEzNzY0NDE2NDRhMjhi
ZDVlOWQ5MmM1NzU0NWRlMDljMTRlYzUyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2VicnRj
L3JlbW92ZS10cmFjay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3JlbW92
ZS10cmFjay1leHBlY3RlZC50eHQKQEAgLTIsNCArMiw2IEBACiBQQVNTIFNldHVwIGF1ZGlvIHZp
ZGVvIGV4Y2hhbmdlIAogUEFTUyBSZW1vdmUgdmlkZW8gdHJhY2sgCiBQQVNTIFJlbW92ZSBhdWRp
byB0cmFjayAKK1BBU1MgQWRkL3JlbW92ZSBhdWRpbyB0cmFja3MgCitQQVNTIEFkZC9yZW1vdmUg
dmlkZW8gdHJhY2tzIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvcmVtb3ZlLXRy
YWNrLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvcmVtb3ZlLXRyYWNrLmh0bWwKaW5kZXggODI3
ZjUyMmU0MjI0MjgwMTY5MmJiOTQ0MDg3NjZkZDE3M2VkNmZkOC4uMTRkZTUzOTY5YjAyNDc0NzIx
ZWVhNTNiMTBmODczODRjMmU3MGEwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2VicnRjL3Jl
bW92ZS10cmFjay5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9yZW1vdmUtdHJhY2suaHRt
bApAQCAtNDEsNyArNDEsNyBAQCBhc3luYyBmdW5jdGlvbiByZW5lZ290aWF0ZSgpCiB7CiAgICAg
bGV0IGQgPSBhd2FpdCBmaXJzdENvbm5lY3Rpb24uY3JlYXRlT2ZmZXIoKTsKICAgICBhd2FpdCBm
aXJzdENvbm5lY3Rpb24uc2V0TG9jYWxEZXNjcmlwdGlvbihkKTsKLSAgICBhd2FpdCBzZWNvbmRD
b25uZWN0aW9uLnNldFJlbW90ZURlc2NyaXB0aW9uKGZpcnN0Q29ubmVjdGlvbi5sb2NhbERlc2Ny
aXB0aW9uKTsKKyAgICBhd2FpdCBzZWNvbmRDb25uZWN0aW9uLnNldFJlbW90ZURlc2NyaXB0aW9u
KGQpOwogICAgIGQgPSBhd2FpdCBzZWNvbmRDb25uZWN0aW9uLmNyZWF0ZUFuc3dlcigpOwogICAg
IGF3YWl0IHNlY29uZENvbm5lY3Rpb24uc2V0TG9jYWxEZXNjcmlwdGlvbihkKTsKIH0KQEAgLTUx
LDEwICs1MSwxMCBAQCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICAgICAgcmVtb3RlVmlk
ZW9UcmFjay5vbm11dGUgPSByZXNvbHZlOwogICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVj
dCgiVGVzdCB0aW1lZCBvdXQiKSwgNTAwMCk7CiAgICAgfSk7Ci0gICAgIAorCiAgICAgZmlyc3RD
b25uZWN0aW9uLnJlbW92ZVRyYWNrKGZpcnN0Q29ubmVjdGlvbi5nZXRTZW5kZXJzKClbMF0pOwot
ICAgIHJlbmVnb3RpYXRlKCk7Ci0gICAgcmV0dXJuIHByb21pc2U7CisgICAgY29uc3QgcHJvbWlz
ZTIgPSByZW5lZ290aWF0ZSgpOworICAgIHJldHVybiBQcm9taXNlLmFsbChbcHJvbWlzZSwgcHJv
bWlzZTJdKTsKIH0sICJSZW1vdmUgdmlkZW8gdHJhY2siKTsKIAogcHJvbWlzZV90ZXN0KCh0ZXN0
KSA9PiB7CkBAIC02MiwxMSArNjIsMzQgQEAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CiAgICAg
ICAgIHJlbW90ZUF1ZGlvVHJhY2sub25tdXRlID0gcmVzb2x2ZTsKICAgICAgICAgc2V0VGltZW91
dCgoKSA9PiByZWplY3QoIlRlc3QgdGltZWQgb3V0IiksIDUwMDApOwogICAgIH0pOwotICAgICAK
KwogICAgIGZpcnN0Q29ubmVjdGlvbi5yZW1vdmVUcmFjayhmaXJzdENvbm5lY3Rpb24uZ2V0U2Vu
ZGVycygpWzFdKTsKLSAgICByZW5lZ290aWF0ZSgpOwotICAgIHJldHVybiBwcm9taXNlOworICAg
IGNvbnN0IHByb21pc2UyID0gcmVuZWdvdGlhdGUoKTsKKyAgICByZXR1cm4gUHJvbWlzZS5hbGwo
W3Byb21pc2UsIHByb21pc2UyXSk7CiB9LCAiUmVtb3ZlIGF1ZGlvIHRyYWNrIik7CisKK3Byb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3Iu
bWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWV9KTsKKyAgICBjb25zdCB0cmFj
ayA9IHN0cmVhbS5nZXRUcmFja3MoKVswXTsKKyAgICBsZXQgcGMgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8MTAwOyBpKyspIHsKKyAgICAgICAgbGV0
IHNlbmRlciA9IHBjLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pOworICAgICAgICBwYy5yZW1vdmVU
cmFjayhzZW5kZXIpOworICAgIH0KKyAgICBwYy5jbG9zZSgpOworfSwgJ0FkZC9yZW1vdmUgYXVk
aW8gdHJhY2tzJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBzdHJl
YW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHRy
dWV9KTsKKyAgICBjb25zdCB0cmFjayA9IHN0cmVhbS5nZXRUcmFja3MoKVswXTsKKyAgICBsZXQg
cGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8MTAw
OyBpKyspIHsKKyAgICAgICAgbGV0IHNlbmRlciA9IHBjLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0p
OworICAgICAgICBwYy5yZW1vdmVUcmFjayhzZW5kZXIpOworICAgIH0KKyAgICBwYy5jbG9zZSgp
OworfSwgJ0FkZC9yZW1vdmUgdmlkZW8gdHJhY2tzJyk7CisKICAgICAgICAgPC9zY3JpcHQ+CiAg
ICAgPC9ib2R5PgogPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>