<?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>162957</bug_id>
          
          <creation_ts>2016-10-05 00:13:39 -0700</creation_ts>
          <short_desc>WebRTC: Add support for the icecandidate event in MediaEndpointPeerConnection</short_desc>
          <delta_ts>2016-10-06 02:06:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>143211</blocked>
    
    <blocked>162961</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Bergkvist">adam.bergkvist</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alex</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1236557</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-10-05 00:13:39 -0700</bug_when>
    <thetext>The WebRTC backend dispatches locally gathered ICE candidates to the RTCPeerConnection object via the &apos;icecandidate&apos; event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236570</commentid>
    <comment_count>1</comment_count>
      <attachid>290696</attachid>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-10-05 00:52:34 -0700</bug_when>
    <thetext>Created attachment 290696
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236876</commentid>
    <comment_count>2</comment_count>
      <attachid>290696</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2016-10-05 20:18:57 -0700</bug_when>
    <thetext>Comment on attachment 290696
Proposed patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        Add API to Internals to emulate WebRTC platform events. Such as dispatching a set of ICE

Nit: &quot;platform events. Such as&quot; -&gt; &quot;platform events, such as&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236917</commentid>
    <comment_count>3</comment_count>
      <attachid>290783</attachid>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-10-05 23:48:54 -0700</bug_when>
    <thetext>Created attachment 290783
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236950</commentid>
    <comment_count>4</comment_count>
      <attachid>290794</attachid>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-10-06 01:23:43 -0700</bug_when>
    <thetext>Created attachment 290794
Updated patch (for landing)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236951</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Bergkvist">adam.bergkvist</who>
    <bug_when>2016-10-06 01:24:14 -0700</bug_when>
    <thetext>Thanks for reviewing. Fixed nits in patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236961</commentid>
    <comment_count>6</comment_count>
      <attachid>290794</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-06 01:57:19 -0700</bug_when>
    <thetext>Comment on attachment 290794
Updated patch (for landing)

Clearing flags on attachment: 290794

Committed r206856: &lt;http://trac.webkit.org/changeset/206856&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290696</attachid>
            <date>2016-10-05 00:52:34 -0700</date>
            <delta_ts>2016-10-05 20:18:57 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>icecandidate-event_0.patch</filename>
            <type>text/plain</type>
            <size>30042</size>
            <attacher name="Adam Bergkvist">adam.bergkvist</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5MjgxNjE2Li4wYWIzN2RlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMTAt
MDUgIEFkYW0gQmVyZ2t2aXN0ICA8YWRhbS5iZXJna3Zpc3RAZXJpY3Nzb24uY29tPgorCisgICAg
ICAgIFdlYlJUQzogQWRkIHN1cHBvcnQgZm9yIHRoZSBpY2VjYW5kaWRhdGUgZXZlbnQgaW4gTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjI5NTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBEaXNwYXRjaCBmYWtlIElDRSBjYW5kaWRhdGVzIGZyb20gdGhlIFdl
YlJUQyBwbGF0Zm9ybSBtb2NrIChNb2NrTWVkaWFFbmRwb2ludCkgYW5kCisgICAgICAgIGluc3Bl
Y3QgdGhlIHJlc3VsdC4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24taWNlY2FuZGlkYXRlLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pY2VjYW5kaWRhdGUtZXZlbnQuaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgIFNraXAgYWJvdmUgdGVzdCB1bnRpbCB0aGUgTWFjIHBvcnQgYnVpbGRzIHdpdGggV0VCX1JU
QworCiAyMDE2LTEwLTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIEtleWJvYXJkRXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZSgpIG9wZXJh
dGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi1pY2VjYW5kaWRhdGUtZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pY2VjYW5kaWRhdGUtZXZlbnQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyMjVmYzQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLWljZWNhbmRpZGF0ZS1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMSBAQAorVGVz
dCBSVENQZWVyQ29ubmVjdGlvbiAnaWNlY2FuZGlkYXRlJyBldmVudCBhbmQgZ2F0aGVyaW5nIGRv
bmUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgTG9jYWwgZGVzY3JpcHRp
b24gc2V0CitQQVNTIEVuZCBvZiB0ZXN0IHByb21pc2UgY2hhaW4KK1BBU1MgR290IGNhbmRpZGF0
ZQorUEFTUyBldmVudC5jYW5kaWRhdGUgaW5zdGFuY2VvZiBSVENJY2VDYW5kaWRhdGUgaXMgdHJ1
ZQorUEFTUyBldmVudC5jYW5kaWRhdGUuc2RwTUxpbmVJbmRleCBpcyAwCitQQVNTIGV2ZW50LmNh
bmRpZGF0ZS5zZHBNaWQgaXMgcGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF0ubWlkCitQQVNTIGV2ZW50
LmNhbmRpZGF0ZS5jYW5kaWRhdGU6IGNhbmRpZGF0ZToxIDEgVURQIDIwMTMyNjY0MzEgMTkyLjE2
OC4wLjEwMCAzODgzOCB0eXAgaG9zdAorCitQQVNTIEdvdCBjYW5kaWRhdGUKK1BBU1MgZXZlbnQu
Y2FuZGlkYXRlIGluc3RhbmNlb2YgUlRDSWNlQ2FuZGlkYXRlIGlzIHRydWUKK1BBU1MgZXZlbnQu
Y2FuZGlkYXRlLnNkcE1MaW5lSW5kZXggaXMgMAorUEFTUyBldmVudC5jYW5kaWRhdGUuc2RwTWlk
IGlzIHBjLmdldFRyYW5zY2VpdmVycygpWzBdLm1pZAorUEFTUyBldmVudC5jYW5kaWRhdGUuY2Fu
ZGlkYXRlOiBjYW5kaWRhdGU6MiAxIFRDUCAxMDE5MjE2MzgzIDE5Mi4xNjguMC4xMDAgOSB0eXAg
aG9zdCB0Y3B0eXBlIGFjdGl2ZQorCitQQVNTIEdvdCBjYW5kaWRhdGUKK1BBU1MgZXZlbnQuY2Fu
ZGlkYXRlIGluc3RhbmNlb2YgUlRDSWNlQ2FuZGlkYXRlIGlzIHRydWUKK1BBU1MgZXZlbnQuY2Fu
ZGlkYXRlLnNkcE1MaW5lSW5kZXggaXMgMAorUEFTUyBldmVudC5jYW5kaWRhdGUuc2RwTWlkIGlz
IHBjLmdldFRyYW5zY2VpdmVycygpWzBdLm1pZAorUEFTUyBldmVudC5jYW5kaWRhdGUuY2FuZGlk
YXRlOiBjYW5kaWRhdGU6MyAxIFVEUCAxNjc3NzIyMTExIDE3Mi4xOC4wLjEgNDc5ODkgdHlwIHNy
Zmx4IHJhZGRyIDE5Mi4xNjguMC4xMDAgcnBvcnQgNDc5ODkKKworUEFTUyBHb3QgZW5kIG9mIGNh
bmRpZGF0ZXMKK1BBU1MgZXZlbnQuY2FuZGlkYXRlIGlzIG51bGwKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWljZWNhbmRpZGF0ZS1ldmVudC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pY2Vj
YW5kaWRhdGUtZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42
MjE5MTAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1pY2VjYW5kaWRhdGUtZXZlbnQuaHRtbApAQCAtMCwwICsxLDYwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDwvaGVh
ZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGxldCBldmVudDsK
KworICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3QgUlRDUGVlckNvbm5lY3Rpb24gJ2ljZWNh
bmRpZGF0ZScgZXZlbnQgYW5kIGdhdGhlcmluZyBkb25lIik7CisKKyAgICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRp
YVBlcm1pc3Npb24odHJ1ZSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBk
ZWJ1ZygiVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5uZXIiKTsK
KyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgY29uc3QgcGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6
W3t1cmxzOidzdHVuOmZvby5jb20nfV19KTsKKworICAgICAgICAgICAgcGMub25pY2VjYW5kaWRh
dGUgPSBmdW5jdGlvbiAoZXZ0KSB7CisgICAgICAgICAgICAgICAgZXZlbnQgPSBldnQ7CisgICAg
ICAgICAgICAgICAgaWYgKGV2dC5jYW5kaWRhdGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgiR290IGNhbmRpZGF0ZSIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZVRy
dWUoImV2ZW50LmNhbmRpZGF0ZSBpbnN0YW5jZW9mIFJUQ0ljZUNhbmRpZGF0ZSIpOworICAgICAg
ICAgICAgICAgICAgICBzaG91bGRCZSgiZXZlbnQuY2FuZGlkYXRlLnNkcE1MaW5lSW5kZXgiLCAi
MCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgiZXZlbnQuY2FuZGlkYXRlLnNkcE1p
ZCIsICJwYy5nZXRUcmFuc2NlaXZlcnMoKVswXS5taWQiKTsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZChgZXZlbnQuY2FuZGlkYXRlLmNhbmRpZGF0ZTogJHtldmVudC5jYW5kaWRhdGUu
Y2FuZGlkYXRlfWApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIkdvdCBlbmQgb2YgY2FuZGlkYXRlcyIpOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZU51bGwoImV2ZW50LmNhbmRpZGF0ZSIpOworICAgICAgICAgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworCisg
ICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7ICJ2aWRlbyI6
IHRydWUgfSkudGhlbihmdW5jdGlvbiAoc3RyZWFtKSB7CisgICAgICAgICAgICAgICAgcGMuYWRk
VHJhY2soc3RyZWFtLmdldFRyYWNrcygpWzBdLCBzdHJlYW0pOworICAgICAgICAgICAgICAgIHJl
dHVybiBwYy5jcmVhdGVPZmZlcigpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVu
KGZ1bmN0aW9uIChvZmZlcikgeworICAgICAgICAgICAgICAgIHJldHVybiBwYy5zZXRMb2NhbERl
c2NyaXB0aW9uKG9mZmVyKTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbihmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiTG9jYWwgZGVzY3JpcHRpb24g
c2V0Iik7CisgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5lbXVsYXRlUlRDUGVlckNv
bm5lY3Rpb25QbGF0Zm9ybUV2ZW50KHBjLCAiZGlzcGF0Y2gtZmFrZS1pY2UtY2FuZGlkYXRlcyIp
OworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkVuZCBvZiB0ZXN0IHByb21pc2UgY2hhaW4i
KTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7
CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiRXJyb3IgaW4gcHJvbWlzZSBjaGFpbjogIiAr
IGVycm9yKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgICAg
ICB3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworICAgICAgICA8L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggMzc3MTM3ZS4uNjhlNzJkMCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIwNiw2ICsyMDYsNyBAQCBmYXN0L21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW1lZGlhLXNldHVwLXNpbmdsZS1kaWFsb2cuaHRtbAog
ZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1tZWRpYS1zZXR1cC10d28tZGlhbG9n
cy5odG1sCiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW1lZGlhLXNldHVwLWNh
bGxiYWNrcy1zaW5nbGUtZGlhbG9nLmh0bWwKIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24tbGVnYWN5LXN0cmVhbS1iYXNlZC1hcGkuaHRtbAorZmFzdC9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi1pY2VjYW5kaWRhdGUtZXZlbnQuaHRtbAogCiAjIEFzc2VydHMgaW4gZGVi
dWcuCiBbIERlYnVnIF0gZmFzdC9pbWFnZXMvbGFyZ2Utc2l6ZS1pbWFnZS1jcmFzaC5odG1sIFsg
U2tpcCBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggYWVlNjE5OS4uZTNhMWVhOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDYxIEBACisyMDE2LTEwLTA1ICBBZGFtIEJlcmdrdmlzdCAgPGFkYW0uYmVyZ2t2aXN0QGVy
aWNzc29uLmNvbT4KKworICAgICAgICBXZWJSVEM6IEFkZCBzdXBwb3J0IGZvciB0aGUgaWNlY2Fu
ZGlkYXRlIGV2ZW50IGluIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyOTU3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IE1lZGlhRW5kcG9p
bnRQZWVyQ29ubmVjdGlvbidzIGdvdEljZUNhbmRpZGF0ZSBhbmQgZG9uZUdhdGhlcmluZ0NhbmRp
ZGF0ZXMKKyAgICAgICAgY2FsbGJhY2tzLiBUaGVzZSBhcmUgdXNlZCBieSB0aGUgTWVkaWFFbmRw
b2ludCAoV2ViUlRDIGJhY2tlbmQgaW1wbGVtZW50YXRpb24pIHRvCisgICAgICAgIG5vdGlmeSBh
Ym91dCBJQ0UgZXZlbnRzLgorCisgICAgICAgIEFkZCBBUEkgdG8gSW50ZXJuYWxzIHRvIGVtdWxh
dGUgV2ViUlRDIHBsYXRmb3JtIGV2ZW50cy4gU3VjaCBhcyBkaXNwYXRjaGluZyBhIHNldCBvZiBJ
Q0UKKyAgICAgICAgY2FuZGlkYXRlcyBmb2xsb3dlZCBieSBhIGdhdGhlcmluZyBkb25lIGluZGlj
YXRpb24uIEluaXRpYWxseSwgb25seSBhIHNpbmdsZSBhY3Rpb24sCisgICAgICAgICJkaXNwYXRj
aC1mYWtlLWljZS1jYW5kaWRhdGVzIiwgaXMgc3VwcG9ydGVkLCBidXQgdGhlIGludGVudGlvbiBp
cyB0byBleHRlbmQgdGhlIHNldCBvZgorICAgICAgICBhY3Rpb25zIHRvIHN1cHBvcnQgbW9yZSB0
ZXN0IGNhc2VzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24taWNlY2FuZGlkYXRlLWV2ZW50Lmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6ZW11bGF0ZVBsYXRmb3JtRXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpnb3RJY2VDYW5kaWRh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpkb25l
R2F0aGVyaW5nQ2FuZGlkYXRlcyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YUVuZHBvaW50UGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDSWNlVHJhbnNwb3J0Lmg6IEFkZGVkLgorICAgICAgICBSVENJY2VDYW5kaWRhdGUgd2lsbCBl
dmVudHVhbGx5IGJlIHBhcnQgb2YgdGhlIEpTIEFQSSwgYnV0IHJpZ2h0IG5vdyBpdCdzCisgICAg
ICAgIG9ubHkgdXNlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSBJQ0Ugc3RhdGVzIHJlbGF0ZWQgdG8g
YSBSVENSdHBUcmFuc2Nldmllci4KKyAgICAgICAgKFdlYkNvcmU6OlJUQ0ljZVRyYW5zcG9ydDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0ljZVRyYW5zcG9ydDo6flJUQ0ljZVRyYW5z
cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VUcmFuc3BvcnQ6OnRyYW5zcG9ydFN0YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0ljZVRyYW5zcG9ydDo6c2V0VHJhbnNwb3J0U3RhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNlVHJhbnNwb3J0OjpnYXRoZXJpbmdTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENJY2VUcmFuc3BvcnQ6OnNldEdhdGhlcmluZ1N0YXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ0ljZVRyYW5zcG9ydDo6UlRDSWNlVHJhbnNwb3J0KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjplbXVsYXRlUGxhdGZvcm1FdmVudCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNjZWl2ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDUnRwVHJhbnNjZWl2ZXI6OlJUQ1J0cFRyYW5zY2VpdmVyKToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zY2VpdmVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSVENSdHBUcmFuc2NlaXZlcjo6aWNlVHJhbnNwb3J0KToKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFFbmRwb2ludC5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludDo6ZW11bGF0
ZVBsYXRmb3JtRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uU3RhdGVzLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2lu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFFbmRwb2ludDo6TW9ja01lZGlhRW5k
cG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhRW5kcG9pbnQ6OnVwZGF0ZVJlY2Vp
dmVDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYUVuZHBvaW50Ojpl
bXVsYXRlUGxhdGZvcm1FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFFbmRwb2lu
dDo6ZGlzcGF0Y2hGYWtlSWNlQ2FuZGlkYXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVk
aWFFbmRwb2ludDo6aWNlQ2FuZGlkYXRlVGltZXJGaXJlZCk6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9Nb2NrTWVkaWFFbmRwb2ludC5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZW11bGF0ZVJUQ1BlZXJDb25uZWN0aW9u
UGxhdGZvcm1FdmVudCk6CisgICAgICAgIEdlbmVyaWMgQVBJIHRvIHNpZ25hbCBkb3duIHRvIHRo
ZSBXZWJSVEMgcGxhdGZvcm0gbW9jay4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxNi0xMC0wMyAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4g
Rml4IHRoZSBidWlsZCB3aXRoIGNvb3JkaW5hdGVkIGdyYXBoaWNzIGVuYWJsZWQgYWZ0ZXIgcjIw
NjcxMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcAppbmRleCA1MzRkMzA3Li5i
YjIyNDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uY3BwCkBAIC00Miw2ICs0
Miw3IEBACiAjaW5jbHVkZSAiUGVlck1lZGlhRGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJSVEND
b25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlLmgiCisjaW5jbHVkZSAi
UlRDSWNlQ2FuZGlkYXRlRXZlbnQuaCIKICNpbmNsdWRlICJSVENPZmZlckFuc3dlck9wdGlvbnMu
aCIKICNpbmNsdWRlICJSVENSdHBUcmFuc2NlaXZlci5oIgogI2luY2x1ZGUgIlJUQ1RyYWNrRXZl
bnQuaCIKQEAgLTc1NSw2ICs3NTYsMTEgQEAgdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rp
b246Om1hcmtBc05lZWRpbmdOZWdvdGlhdGlvbigpCiAgICAgICAgIG1fY2xpZW50LT5zY2hlZHVs
ZU5lZ290aWF0aW9uTmVlZGVkRXZlbnQoKTsKIH0KIAordm9pZCBNZWRpYUVuZHBvaW50UGVlckNv
bm5lY3Rpb246OmVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0IFN0cmluZyYgYWN0aW9uKQorewor
ICAgIG1fbWVkaWFFbmRwb2ludC0+ZW11bGF0ZVBsYXRmb3JtRXZlbnQoYWN0aW9uKTsKK30KKwog
Ym9vbCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmxvY2FsRGVzY3JpcHRpb25UeXBlVmFs
aWRGb3JTdGF0ZShSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGUgdHlwZSkgY29uc3QKIHsK
ICAgICBzd2l0Y2ggKG1fY2xpZW50LT5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkpIHsKQEAgLTgx
OCwyMyArODI0LDU1IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpnb3REdGxz
RmluZ2VycHJpbnQoY29uc3QgU3RyaW5nJiBmaW5nZXJwcmludCwKICAgICBzdGFydFJ1bm5pbmdU
YXNrcygpOwogfQogCi12b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6Z290SWNlQ2Fu
ZGlkYXRlKHVuc2lnbmVkIG1kZXNjSW5kZXgsIFJlZlB0cjxJY2VDYW5kaWRhdGU+JiYgY2FuZGlk
YXRlKQordm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmdvdEljZUNhbmRpZGF0ZShj
b25zdCBTdHJpbmcmIG1pZCwgUmVmUHRyPEljZUNhbmRpZGF0ZT4mJiBjYW5kaWRhdGUpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIFVOVVNFRF9QQVJBTShtZGVzY0luZGV4
KTsKLSAgICBVTlVTRURfUEFSQU0oY2FuZGlkYXRlKTsKKyAgICBjb25zdCBNZWRpYURlc2NyaXB0
aW9uVmVjdG9yJiBtZWRpYURlc2NyaXB0aW9ucyA9IGludGVybmFsTG9jYWxEZXNjcmlwdGlvbigp
LT5jb25maWd1cmF0aW9uKCktPm1lZGlhRGVzY3JpcHRpb25zKCk7CisgICAgc2l6ZV90IG1lZGlh
RGVzY3JpcHRpb25JbmRleCA9IG5vdEZvdW5kOwogCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1lZGlhRGVzY3JpcHRpb25zLnNpemUoKTsgKytpKSB7
CisgICAgICAgIGlmIChtZWRpYURlc2NyaXB0aW9uc1tpXS0+bWlkKCkgPT0gbWlkKSB7CisgICAg
ICAgICAgICBtZWRpYURlc2NyaXB0aW9uSW5kZXggPSBpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgQVNTRVJUKG1lZGlhRGVzY3JpcHRpb25JbmRleCAhPSBub3RG
b3VuZCk7CisKKyAgICBQZWVyTWVkaWFEZXNjcmlwdGlvbiYgbWVkaWFEZXNjcmlwdGlvbiA9ICpt
ZWRpYURlc2NyaXB0aW9uc1ttZWRpYURlc2NyaXB0aW9uSW5kZXhdOworICAgIG1lZGlhRGVzY3Jp
cHRpb24uYWRkSWNlQ2FuZGlkYXRlKGNhbmRpZGF0ZS5jb3B5UmVmKCkpOworCisgICAgU3RyaW5n
IGNhbmRpZGF0ZUxpbmU7CisgICAgU0RQUHJvY2Vzc29yOjpSZXN1bHQgcmVzdWx0ID0gbV9zZHBQ
cm9jZXNzb3ItPmdlbmVyYXRlQ2FuZGlkYXRlTGluZSgqY2FuZGlkYXRlLCBjYW5kaWRhdGVMaW5l
KTsKKyAgICBpZiAocmVzdWx0ICE9IFNEUFByb2Nlc3Nvcjo6UmVzdWx0OjpTdWNjZXNzKSB7Cisg
ICAgICAgIExPR19FUlJPUigiU0RQUHJvY2Vzc29yIGludGVybmFsIGVycm9yIik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlPiBpY2VDYW5kaWRh
dGUgPSBSVENJY2VDYW5kaWRhdGU6OmNyZWF0ZShjYW5kaWRhdGVMaW5lLCBtaWQsIG1lZGlhRGVz
Y3JpcHRpb25JbmRleCk7CisKKyAgICBtX2NsaWVudC0+ZmlyZUV2ZW50KFJUQ0ljZUNhbmRpZGF0
ZUV2ZW50OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBXVEZNb3ZlKGljZUNhbmRpZGF0ZSkpKTsKIH0K
IAotdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmRvbmVHYXRoZXJpbmdDYW5kaWRh
dGVzKHVuc2lnbmVkIG1kZXNjSW5kZXgpCit2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlv
bjo6ZG9uZUdhdGhlcmluZ0NhbmRpZGF0ZXMoY29uc3QgU3RyaW5nJiBtaWQpCiB7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIFVOVVNFRF9QQVJBTShtZGVzY0luZGV4KTsKKyAg
ICBSdHBUcmFuc2NlaXZlclZlY3RvciB0cmFuc2NlaXZlcnMgPSBSdHBUcmFuc2NlaXZlclZlY3Rv
cihtX2NsaWVudC0+Z2V0VHJhbnNjZWl2ZXJzKCkpOworICAgIFJUQ1J0cFRyYW5zY2VpdmVyKiBu
b3RpZnlpbmdUcmFuc2NlaXZlciA9IG1hdGNoVHJhbnNjZWl2ZXJCeU1pZCh0cmFuc2NlaXZlcnMs
IG1pZCk7CisgICAgQVNTRVJUKG5vdGlmeWluZ1RyYW5zY2VpdmVyKTsKIAotICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgbm90aWZ5aW5nVHJhbnNjZWl2ZXItPmljZVRyYW5zcG9ydCgpLnNldEdh
dGhlcmluZ1N0YXRlKFJUQ0ljZVRyYW5zcG9ydDo6R2F0aGVyaW5nU3RhdGU6OkNvbXBsZXRlKTsK
KworICAgIC8vIERvbid0IG5vdGlmeSB0aGUgc2NyaXB0IGlmIHRoZXJlIGFyZSB0cmFuc2NlaXZl
cnMgc3RpbGwgZ2F0aGVyaW5nLgorICAgIFJUQ1J0cFRyYW5zY2VpdmVyKiBzdGlsbEdhdGhlcmlu
Z1RyYW5zY2VpdmVyID0gbWF0Y2hUcmFuc2NlaXZlcih0cmFuc2NlaXZlcnMsIFtdIChSVENSdHBU
cmFuc2NlaXZlciYgY3VycmVudCkgeworICAgICAgICByZXR1cm4gIWN1cnJlbnQuc3RvcHBlZCgp
ICYmICFjdXJyZW50Lm1pZCgpLmlzTnVsbCgpCisgICAgICAgICAgICAmJiBjdXJyZW50LmljZVRy
YW5zcG9ydCgpLmdhdGhlcmluZ1N0YXRlKCkgIT0gUlRDSWNlVHJhbnNwb3J0OjpHYXRoZXJpbmdT
dGF0ZTo6Q29tcGxldGU7CisgICAgfSk7CisgICAgaWYgKCFzdGlsbEdhdGhlcmluZ1RyYW5zY2Vp
dmVyKSB7CisgICAgICAgIG1fY2xpZW50LT5maXJlRXZlbnQoUlRDSWNlQ2FuZGlkYXRlRXZlbnQ6
OmNyZWF0ZShmYWxzZSwgZmFsc2UsIG51bGxwdHIpKTsKKyAgICAgICAgbV9jbGllbnQtPnVwZGF0
ZUljZUdhdGhlcmluZ1N0YXRlKEljZUdhdGhlcmluZ1N0YXRlOjpDb21wbGV0ZSk7CisgICAgfQog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24u
aAppbmRleCAwZjNmYjVlLi5jMmJlNzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9u
LmgKQEAgLTg0LDYgKzg0LDggQEAgcHVibGljOgogICAgIHZvaWQgbWFya0FzTmVlZGluZ05lZ290
aWF0aW9uKCk7CiAgICAgdm9pZCBjbGVhck5lZ290aWF0aW9uTmVlZGVkU3RhdGUoKSBvdmVycmlk
ZSB7IG1fbmVnb3RpYXRpb25OZWVkZWQgPSBmYWxzZTsgfTsKIAorICAgIHZvaWQgZW11bGF0ZVBs
YXRmb3JtRXZlbnQoY29uc3QgU3RyaW5nJiBhY3Rpb24pIG92ZXJyaWRlOworCiBwcml2YXRlOgog
ICAgIHZvaWQgcnVuVGFzayhGdW5jdGlvbjx2b2lkICgpPiYmKTsKICAgICB2b2lkIHN0YXJ0UnVu
bmluZ1Rhc2tzKCk7CkBAIC0xMDcsOCArMTA5LDggQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lZGlh
RW5kcG9pbnRDbGllbnQKICAgICB2b2lkIGdvdER0bHNGaW5nZXJwcmludChjb25zdCBTdHJpbmcm
IGZpbmdlcnByaW50LCBjb25zdCBTdHJpbmcmIGZpbmdlcnByaW50RnVuY3Rpb24pIG92ZXJyaWRl
OwotICAgIHZvaWQgZ290SWNlQ2FuZGlkYXRlKHVuc2lnbmVkIG1kZXNjSW5kZXgsIFJlZlB0cjxJ
Y2VDYW5kaWRhdGU+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZG9uZUdhdGhlcmluZ0NhbmRpZGF0
ZXModW5zaWduZWQgbWRlc2NJbmRleCkgb3ZlcnJpZGU7CisgICAgdm9pZCBnb3RJY2VDYW5kaWRh
dGUoY29uc3QgU3RyaW5nJiBtaWQsIFJlZlB0cjxJY2VDYW5kaWRhdGU+JiYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZG9uZUdhdGhlcmluZ0NhbmRpZGF0ZXMoY29uc3QgU3RyaW5nJiBtaWQpIG92ZXJy
aWRlOwogCiAgICAgUGVlckNvbm5lY3Rpb25CYWNrZW5kQ2xpZW50KiBtX2NsaWVudDsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFFbmRwb2ludD4gbV9tZWRpYUVuZHBvaW50OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tl
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmgKaW5kZXggYWIwNDA3NS4uN2NiYmMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCkBA
IC0xMTcsNiArMTE3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05lZ290aWF0aW9u
TmVlZGVkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBtYXJrQXNOZWVkaW5nTmVnb3Rp
YXRpb24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyTmVnb3RpYXRpb25OZWVkZWRTdGF0
ZSgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBlbXVsYXRlUGxhdGZvcm1FdmVudChjb25zdCBT
dHJpbmcmIGFjdGlvbikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VUcmFuc3BvcnQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlVHJhbnNwb3J0LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDVjZjdlZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlVHJhbnNwb3J0
LmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBFcmljc3NvbiBB
Qi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhl
ciB0aGUgbmFtZSBvZiBFcmljc3NvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMK
KyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJf
UlRDKQorCisjaW5jbHVkZSAiUGVlckNvbm5lY3Rpb25TdGF0ZXMuaCIKKyNpbmNsdWRlICJTY3Jp
cHRXcmFwcGFibGUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENJY2VUcmFuc3Bv
cnQgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENJY2VUcmFuc3BvcnQ+LCBwdWJsaWMgU2NyaXB0V3Jh
cHBhYmxlIHsKK3B1YmxpYzoKKworICAgIHVzaW5nIFRyYW5zcG9ydFN0YXRlID0gUGVlckNvbm5l
Y3Rpb25TdGF0ZXM6OkljZVRyYW5zcG9ydFN0YXRlOworICAgIHVzaW5nIEdhdGhlcmluZ1N0YXRl
ID0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUdhdGhlcmluZ1N0YXRlOworCisgICAgc3RhdGlj
IFJlZjxSVENJY2VUcmFuc3BvcnQ+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBSVENJY2VUcmFuc3BvcnQoKSk7CisgICAgfQorICAgIHZpcnR1YWwgflJUQ0lj
ZVRyYW5zcG9ydCgpIHsgfQorCisgICAgVHJhbnNwb3J0U3RhdGUgdHJhbnNwb3J0U3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX3RyYW5zcG9ydFN0YXRlOyB9CisgICAgdm9pZCBzZXRUcmFuc3BvcnRT
dGF0ZShUcmFuc3BvcnRTdGF0ZSBzdGF0ZSkgeyBtX3RyYW5zcG9ydFN0YXRlID0gc3RhdGU7IH0K
KworICAgIEdhdGhlcmluZ1N0YXRlIGdhdGhlcmluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9n
YXRoZXJpbmdTdGF0ZTsgfQorICAgIHZvaWQgc2V0R2F0aGVyaW5nU3RhdGUoR2F0aGVyaW5nU3Rh
dGUgc3RhdGUpIHsgbV9nYXRoZXJpbmdTdGF0ZSA9IHN0YXRlOyB9CisKK3ByaXZhdGU6CisgICAg
UlRDSWNlVHJhbnNwb3J0KCkgeyB9OworCisgICAgVHJhbnNwb3J0U3RhdGUgbV90cmFuc3BvcnRT
dGF0ZSB7IFRyYW5zcG9ydFN0YXRlOjpOZXcgfTsKKyAgICBHYXRoZXJpbmdTdGF0ZSBtX2dhdGhl
cmluZ1N0YXRlIHsgR2F0aGVyaW5nU3RhdGU6Ok5ldyB9OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCmluZGV4
IGQzYTQ0NGQuLjlkMWE2MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBAIC00MjgsNiArNDI4LDExIEBA
IHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmNsb3NlKCkKICAgICAgICAgc2VuZGVyLT5zdG9wKCk7
CiB9CiAKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0
IFN0cmluZyYgYWN0aW9uKQoreworICAgIG1fYmFja2VuZC0+ZW11bGF0ZVBsYXRmb3JtRXZlbnQo
YWN0aW9uKTsKK30KKwogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6c3RvcCgpCiB7CiAgICAgY2xv
c2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uaAppbmRleCA0MmZhMzkwLi4zNzUxNmIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCkBA
IC0xMTksNiArMTE5LDkgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ8UlRDUGVlckNv
bm5lY3Rpb24+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxSVENQZWVyQ29ubmVjdGlvbj46
OmRlcmVmOwogCisgICAgLy8gVXNlZCBmb3IgdGVzdGluZyB3aXRoIGEgbW9jaworICAgIHZvaWQg
ZW11bGF0ZVBsYXRmb3JtRXZlbnQoY29uc3QgU3RyaW5nJiBhY3Rpb24pOworCiBwcml2YXRlOgog
ICAgIFJUQ1BlZXJDb25uZWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2NlaXZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zY2Vp
dmVyLmNwcAppbmRleCBlMjkzZGY0Li4wYWVkMmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zY2VpdmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zY2VpdmVyLmNwcApAQCAtNjQs
NiArNjQsNyBAQCBSVENSdHBUcmFuc2NlaXZlcjo6UlRDUnRwVHJhbnNjZWl2ZXIoUmVmUHRyPFJU
Q1J0cFNlbmRlcj4mJiBzZW5kZXIsIFJlZlB0cjxSVENSdAogICAgIDogbV9kaXJlY3Rpb24oRGly
ZWN0aW9uOjpTZW5kcmVjdikKICAgICAsIG1fc2VuZGVyKHNlbmRlcikKICAgICAsIG1fcmVjZWl2
ZXIocmVjZWl2ZXIpCisgICAgLCBtX2ljZVRyYW5zcG9ydChSVENJY2VUcmFuc3BvcnQ6OmNyZWF0
ZSgpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFRyYW5zY2VpdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFRyYW5zY2VpdmVyLmgKaW5kZXggYmEzY2I2NC4uOGY2Y2M0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2NlaXZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNjZWl2
ZXIuaApAQCAtMzMsNiArMzMsNyBAQAogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAKKyNpbmNsdWRl
ICJSVENJY2VUcmFuc3BvcnQuaCIKICNpbmNsdWRlICJSVENSdHBSZWNlaXZlci5oIgogI2luY2x1
ZGUgIlJUQ1J0cFNlbmRlci5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgpAQCAtNzAs
NiArNzEsMTEgQEAgcHVibGljOgogICAgIGJvb2wgc3RvcHBlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RvcHBlZDsgfQogICAgIHZvaWQgc3RvcCgpIHsgbV9zdG9wcGVkID0gdHJ1ZTsgfQogCisgICAg
Ly8gRklYTUU6IFRlbXBvcmFyeSBzb2x1dGlvbiB0byBrZWVwIHRyYWNrIG9mIElDRSBzdGF0ZXMg
Zm9yIHRoaXMgdHJhbnNjZWl2ZXIuIExhdGVyLCBlYWNoCisgICAgLy8gc2VuZGVyIGFuZCByZWNl
aXZlciB3aWxsIGhhdmUgdXAgdG8gdHdvIERUTFMgdHJhbnNwb3J0cywgd2hpY2ggaW4gdHVybiB3
aWxsIGhhdmUgYW4gSUNFCisgICAgLy8gdHJhbnNwb3J0IGVhY2guCisgICAgUlRDSWNlVHJhbnNw
b3J0JiBpY2VUcmFuc3BvcnQoKSBjb25zdCB7IHJldHVybiAqbV9pY2VUcmFuc3BvcnQ7IH0KKwog
ICAgIHN0YXRpYyBTdHJpbmcgZ2V0TmV4dE1pZCgpOwogCiBwcml2YXRlOgpAQCAtODQsNiArOTAs
OCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxSVENSdHBSZWNlaXZlcj4gbV9yZWNlaXZlcjsKIAog
ICAgIGJvb2wgbV9zdG9wcGVkIHsgZmFsc2UgfTsKKworICAgIFJlZlB0cjxSVENJY2VUcmFuc3Bv
cnQ+IG1faWNlVHJhbnNwb3J0OwogfTsKIAogY2xhc3MgUnRwVHJhbnNjZWl2ZXJTZXQgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDc2YThkZWQuLmU4MzlmOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk0NTEsNiArOTQ1MSw3IEBACiAJCTVFNUUyQjEwMUNG
QzNFNEIwMDBDMEQ4NSAvKiBSVENSdHBUcmFuc2NlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSVENSdHBUcmFuc2NlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVFNUUyQjExMUNGQzNFNEIwMDBDMEQ4NSAvKiBSVENSdHBUcmFuc2Nl
aXZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENSdHBUcmFuc2NlaXZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RTVFMkIxMjFDRkMzRTRCMDAwQzBE
ODUgLyogUlRDUnRwVHJhbnNjZWl2ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ1J0
cFRyYW5zY2VpdmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUU2NjUzMDkx
REE0MzdCRjAwRkREODRDIC8qIFJUQ0ljZVRyYW5zcG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSVENJY2VUcmFuc3BvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNUVBM0Q2REQxQzg1OUQ1MzAwMzAwQkJCIC8qIE1vY2tNZWRpYUVuZHBvaW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vY2tNZWRpYUVuZHBvaW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUVBM0Q2REUxQzg1OUQ1MzAwMzAwQkJC
IC8qIE1vY2tNZWRpYUVuZHBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1vY2tNZWRpYUVuZHBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVFQTNE
NkUxMUM4NTlEQUEwMDMwMEJCQiAvKiBTRFBQcm9jZXNzb3IuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU0RQUHJvY2Vzc29yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE0NTUzLDYgKzE0NTU0LDcgQEAKIAkJCQkwNzIyMUI3NjE3Q0VDMzI3MDA4
NDhFNTEgLyogUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaWRsICovLAogCQkJCTA3QUI5OTY3MThEQTND
MDEwMDE4NzcxRSAvKiBSVENJY2VTZXJ2ZXIuaCAqLywKIAkJCQkwN0FCOTk2ODE4REEzQzAxMDAx
ODc3MUUgLyogUlRDSWNlU2VydmVyLmlkbCAqLywKKwkJCQk1RTY2NTMwOTFEQTQzN0JGMDBGREQ4
NEMgLyogUlRDSWNlVHJhbnNwb3J0LmggKi8sCiAJCQkJMDczNzk0REIxOUVFMkM1MjAwRTVBMDQ1
IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5jcHAgKi8sCiAJCQkJMDczNzk0REMxOUVFMkM1MjAw
RTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5oICovLAogCQkJCTA3MjIxQjc3MTdDRUMz
MjcwMDg0OEU1MSAvKiBSVENQZWVyQ29ubmVjdGlvbi5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmgKaW5kZXggZDQxZDIy
YS4uMzIyMWJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhRW5kcG9pbnQuaApAQCAtNDgsOCArNDgsOCBAQCBjbGFzcyBSZWFsdGltZU1lZGlh
U291cmNlOwogY2xhc3MgTWVkaWFFbmRwb2ludENsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGdvdER0bHNGaW5nZXJwcmludChjb25zdCBTdHJpbmcmIGZpbmdlcnByaW50LCBjb25z
dCBTdHJpbmcmIGZpbmdlcnByaW50RnVuY3Rpb24pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ290
SWNlQ2FuZGlkYXRlKHVuc2lnbmVkIG1kZXNjSW5kZXgsIFJlZlB0cjxJY2VDYW5kaWRhdGU+JiYp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZG9uZUdhdGhlcmluZ0NhbmRpZGF0ZXModW5zaWduZWQg
bWRlc2NJbmRleCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnb3RJY2VDYW5kaWRhdGUoY29uc3Qg
U3RyaW5nJiBtaWQsIFJlZlB0cjxJY2VDYW5kaWRhdGU+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZG9uZUdhdGhlcmluZ0NhbmRpZGF0ZXMoY29uc3QgU3RyaW5nJiBtaWQpID0gMDsKIAogICAg
IHZpcnR1YWwgfk1lZGlhRW5kcG9pbnRDbGllbnQoKSB7IH0KIH07CkBAIC04NSw2ICs4NSw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVwbGFjZVNlbmRTb3VyY2UoUmVhbHRpbWVNZWRp
YVNvdXJjZSYsIGNvbnN0IFN0cmluZyYgbWlkKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3Rv
cCgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBlbXVsYXRlUGxhdGZvcm1FdmVudChjb25zdCBT
dHJpbmcmKSB7IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvblN0YXRlcy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25TdGF0
ZXMuaAppbmRleCBiZWZiZTdkLi44YTcxMjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvblN0YXRlcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uU3RhdGVzLmgKQEAgLTYx
LDYgKzYxLDE2IEBAIGVudW0gY2xhc3MgSWNlR2F0aGVyaW5nU3RhdGUgewogICAgIENvbXBsZXRl
ID0gMwogfTsKIAorZW51bSBjbGFzcyBJY2VUcmFuc3BvcnRTdGF0ZSB7CisgICAgTmV3ID0gMSwK
KyAgICBDaGVja2luZyA9IDIsCisgICAgQ29ubmVjdGVkID0gMywKKyAgICBDb21wbGV0ZWQgPSA0
LAorICAgIEZhaWxlZCA9IDUsCisgICAgRGlzY29ubmVjdGVkID0gNiwKKyAgICBDbG9zZWQgPSA3
Cit9OworCiBlbnVtIGNsYXNzIEljZVRyYW5zcG9ydFBvbGljeSB7CiAgICAgUmVsYXksCiAgICAg
QWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVu
ZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9p
bnQuY3BwCmluZGV4IDE3NzY1NGMuLmQxYWNjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAj
aWYgRU5BQkxFKFdFQl9SVEMpCiAjaW5jbHVkZSAiTW9ja01lZGlhRW5kcG9pbnQuaCIKIAorI2lu
Y2x1ZGUgIk1lZGlhRW5kcG9pbnRTZXNzaW9uQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIk1l
ZGlhUGF5bG9hZC5oIgogI2luY2x1ZGUgIk1vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgiCiAjaW5j
bHVkZSAiTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCIKQEAgLTUwLDYgKzUxLDcgQEAgc3RkOjp1
bmlxdWVfcHRyPE1lZGlhRW5kcG9pbnQ+IE1vY2tNZWRpYUVuZHBvaW50OjpjcmVhdGUoTWVkaWFF
bmRwb2ludENsaWVudCYgY2wKIAogTW9ja01lZGlhRW5kcG9pbnQ6Ok1vY2tNZWRpYUVuZHBvaW50
KE1lZGlhRW5kcG9pbnRDbGllbnQmIGNsaWVudCkKICAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAg
ICAsIG1faWNlQ2FuZGlkYXRlVGltZXIoKnRoaXMsICZNb2NrTWVkaWFFbmRwb2ludDo6aWNlQ2Fu
ZGlkYXRlVGltZXJGaXJlZCkKIHsKIH0KIApAQCAtMTU4LDkgKzE2MCwxMyBAQCBNZWRpYVBheWxv
YWRWZWN0b3IgTW9ja01lZGlhRW5kcG9pbnQ6OmZpbHRlclBheWxvYWRzKGNvbnN0IE1lZGlhUGF5
bG9hZFZlY3RvciYgcgogCiBNZWRpYUVuZHBvaW50OjpVcGRhdGVSZXN1bHQgTW9ja01lZGlhRW5k
cG9pbnQ6OnVwZGF0ZVJlY2VpdmVDb25maWd1cmF0aW9uKE1lZGlhRW5kcG9pbnRTZXNzaW9uQ29u
ZmlndXJhdGlvbiogY29uZmlndXJhdGlvbiwgYm9vbCBpc0luaXRpYXRvcikKIHsKLSAgICBVTlVT
RURfUEFSQU0oY29uZmlndXJhdGlvbik7CiAgICAgVU5VU0VEX1BBUkFNKGlzSW5pdGlhdG9yKTsK
IAorICAgIFZlY3RvcjxTdHJpbmc+IG1pZHM7CisgICAgZm9yIChjb25zdCBSZWZQdHI8UGVlck1l
ZGlhRGVzY3JpcHRpb24+JiBtZWRpYURlc2NyaXB0aW9uIDogY29uZmlndXJhdGlvbi0+bWVkaWFE
ZXNjcmlwdGlvbnMoKSkKKyAgICAgICAgbWlkcy5hcHBlbmQobWVkaWFEZXNjcmlwdGlvbi0+bWlk
KCkpOworICAgIG1fbWlkcy5zd2FwKG1pZHMpOworCiAgICAgcmV0dXJuIFVwZGF0ZVJlc3VsdDo6
U3VjY2VzczsKIH0KIApAQCAtMjAwLDYgKzIwNiw2NSBAQCB2b2lkIE1vY2tNZWRpYUVuZHBvaW50
OjpzdG9wKCkKIHsKIH0KIAordm9pZCBNb2NrTWVkaWFFbmRwb2ludDo6ZW11bGF0ZVBsYXRmb3Jt
RXZlbnQoY29uc3QgU3RyaW5nJiBhY3Rpb24pCit7CisgICAgaWYgKGFjdGlvbiA9PSAiZGlzcGF0
Y2gtZmFrZS1pY2UtY2FuZGlkYXRlcyIpCisgICAgICAgIGRpc3BhdGNoRmFrZUljZUNhbmRpZGF0
ZXMoKTsKK30KKwordm9pZCBNb2NrTWVkaWFFbmRwb2ludDo6ZGlzcGF0Y2hGYWtlSWNlQ2FuZGlk
YXRlcygpCit7CisgICAgUmVmUHRyPEljZUNhbmRpZGF0ZT4gaWNlQ2FuZGlkYXRlID0gSWNlQ2Fu
ZGlkYXRlOjpjcmVhdGUoKTsKKyAgICBpY2VDYW5kaWRhdGUtPnNldFR5cGUoImhvc3QiKTsKKyAg
ICBpY2VDYW5kaWRhdGUtPnNldEZvdW5kYXRpb24oIjEiKTsKKyAgICBpY2VDYW5kaWRhdGUtPnNl
dENvbXBvbmVudElkKDEpOworICAgIGljZUNhbmRpZGF0ZS0+c2V0UHJpb3JpdHkoMjAxMzI2NjQz
MSk7CisgICAgaWNlQ2FuZGlkYXRlLT5zZXRBZGRyZXNzKCIxOTIuMTY4LjAuMTAwIik7CisgICAg
aWNlQ2FuZGlkYXRlLT5zZXRQb3J0KDM4ODM4KTsKKyAgICBpY2VDYW5kaWRhdGUtPnNldFRyYW5z
cG9ydCgiVURQIik7CisgICAgbV9mYWtlSWNlQ2FuZGlkYXRlcy5hcHBlbmQoV1RGTW92ZShpY2VD
YW5kaWRhdGUpKTsKKworICAgIGljZUNhbmRpZGF0ZSA9IEljZUNhbmRpZGF0ZTo6Y3JlYXRlKCk7
CisgICAgaWNlQ2FuZGlkYXRlLT5zZXRUeXBlKCJob3N0Iik7CisgICAgaWNlQ2FuZGlkYXRlLT5z
ZXRGb3VuZGF0aW9uKCIyIik7CisgICAgaWNlQ2FuZGlkYXRlLT5zZXRDb21wb25lbnRJZCgxKTsK
KyAgICBpY2VDYW5kaWRhdGUtPnNldFByaW9yaXR5KDEwMTkyMTYzODMpOworICAgIGljZUNhbmRp
ZGF0ZS0+c2V0QWRkcmVzcygiMTkyLjE2OC4wLjEwMCIpOworICAgIGljZUNhbmRpZGF0ZS0+c2V0
UG9ydCg5KTsKKyAgICBpY2VDYW5kaWRhdGUtPnNldFRyYW5zcG9ydCgiVENQIik7CisgICAgaWNl
Q2FuZGlkYXRlLT5zZXRUY3BUeXBlKCJhY3RpdmUiKTsKKyAgICBtX2Zha2VJY2VDYW5kaWRhdGVz
LmFwcGVuZChXVEZNb3ZlKGljZUNhbmRpZGF0ZSkpOworCisgICAgaWNlQ2FuZGlkYXRlID0gSWNl
Q2FuZGlkYXRlOjpjcmVhdGUoKTsKKyAgICBpY2VDYW5kaWRhdGUtPnNldFR5cGUoInNyZmx4Iik7
CisgICAgaWNlQ2FuZGlkYXRlLT5zZXRGb3VuZGF0aW9uKCIzIik7CisgICAgaWNlQ2FuZGlkYXRl
LT5zZXRDb21wb25lbnRJZCgxKTsKKyAgICBpY2VDYW5kaWRhdGUtPnNldFByaW9yaXR5KDE2Nzc3
MjIxMTEpOworICAgIGljZUNhbmRpZGF0ZS0+c2V0QWRkcmVzcygiMTcyLjE4LjAuMSIpOworICAg
IGljZUNhbmRpZGF0ZS0+c2V0UG9ydCg0Nzk4OSk7CisgICAgaWNlQ2FuZGlkYXRlLT5zZXRUcmFu
c3BvcnQoIlVEUCIpOworICAgIGljZUNhbmRpZGF0ZS0+c2V0UmVsYXRlZEFkZHJlc3MoIjE5Mi4x
NjguMC4xMDAiKTsKKyAgICBpY2VDYW5kaWRhdGUtPnNldFJlbGF0ZWRQb3J0KDQ3OTg5KTsKKyAg
ICBtX2Zha2VJY2VDYW5kaWRhdGVzLmFwcGVuZChXVEZNb3ZlKGljZUNhbmRpZGF0ZSkpOworCisg
ICAgLy8gUmV2ZXJzZSBvcmRlciB0byB1c2UgdGFrZUxhc3QoKSB3aGlsZSBrZWVwaW5nIHRoZSBh
Ym92ZSBvcmRlcgorICAgIG1fZmFrZUljZUNhbmRpZGF0ZXMucmV2ZXJzZSgpOworCisgICAgbV9p
Y2VDYW5kaWRhdGVUaW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisKK3ZvaWQgTW9ja01lZGlhRW5k
cG9pbnQ6OmljZUNhbmRpZGF0ZVRpbWVyRmlyZWQoKQoreworICAgIGlmIChtX21pZHMuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fZmFrZUljZUNhbmRpZGF0ZXMuaXNF
bXB0eSgpKSB7CisgICAgICAgIG1fY2xpZW50LmdvdEljZUNhbmRpZGF0ZShtX21pZHNbMF0sIG1f
ZmFrZUljZUNhbmRpZGF0ZXMudGFrZUxhc3QoKSk7CisgICAgICAgIG1faWNlQ2FuZGlkYXRlVGlt
ZXIuc3RhcnRPbmVTaG90KDApOworICAgIH0gZWxzZQorICAgICAgICBtX2NsaWVudC5kb25lR2F0
aGVyaW5nQ2FuZGlkYXRlcyhtX21pZHNbMF0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuaAppbmRleCBhMTVkYjM4Li5lZmQxNWMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5oCkBA
IC0zNCw2ICszNCw3IEBACiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAKICNpbmNsdWRlICJNZWRpYUVu
ZHBvaW50LmgiCisjaW5jbHVkZSAiVGltZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC02MSw4ICs2MiwxNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKIAor
ICAgIHZvaWQgZW11bGF0ZVBsYXRmb3JtRXZlbnQoY29uc3QgU3RyaW5nJiBhY3Rpb24pIG92ZXJy
aWRlOworCiBwcml2YXRlOgorICAgIHZvaWQgZGlzcGF0Y2hGYWtlSWNlQ2FuZGlkYXRlcygpOwor
ICAgIHZvaWQgaWNlQ2FuZGlkYXRlVGltZXJGaXJlZCgpOworCiAgICAgTWVkaWFFbmRwb2ludENs
aWVudCYgbV9jbGllbnQ7CisgICAgVmVjdG9yPFN0cmluZz4gbV9taWRzOworCisgICAgVmVjdG9y
PFJlZlB0cjxJY2VDYW5kaWRhdGU+PiBtX2Zha2VJY2VDYW5kaWRhdGVzOworICAgIFRpbWVyIG1f
aWNlQ2FuZGlkYXRlVGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggY2FkNmI0MC4uYjBjODVmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtOTUzLDYgKzk1MywxMSBAQCB2b2lkIEludGVy
bmFsczo6ZW5hYmxlTW9ja1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcigpCiB7CiAgICAgUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyOjpjcmVhdGUgPSBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2Nr
OjpjcmVhdGU7CiB9CisKK3ZvaWQgSW50ZXJuYWxzOjplbXVsYXRlUlRDUGVlckNvbm5lY3Rpb25Q
bGF0Zm9ybUV2ZW50KFJUQ1BlZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcm
IGFjdGlvbikKK3sKKyAgICBjb25uZWN0aW9uLmVtdWxhdGVQbGF0Zm9ybUV2ZW50KGFjdGlvbik7
Cit9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaAppbmRleCAwMGMyMTM3Li5kZGU1YmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKQEAgLTYzLDYgKzYzLDcgQEAgY2xhc3MgTm9kZUxpc3Q7CiBjbGFzcyBQYWdlOwog
Y2xhc3MgUmFuZ2U7CiBjbGFzcyBSZW5kZXJlZERvY3VtZW50TWFya2VyOworY2xhc3MgUlRDUGVl
ckNvbm5lY3Rpb247CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTb3VyY2VC
dWZmZXI7CiBjbGFzcyBUaW1lUmFuZ2VzOwpAQCAtMzY4LDYgKzM2OSw3IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoV0VCX1JUQykKICAgICB2b2lkIGVuYWJsZU1vY2tNZWRpYUVuZHBvaW50KCk7CiAg
ICAgdm9pZCBlbmFibGVNb2NrUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKCk7CisgICAgdm9pZCBl
bXVsYXRlUlRDUGVlckNvbm5lY3Rpb25QbGF0Zm9ybUV2ZW50KFJUQ1BlZXJDb25uZWN0aW9uJiwg
Y29uc3QgU3RyaW5nJiBhY3Rpb24pOwogI2VuZGlmCiAKICAgICBTdHJpbmcgZ2V0SW1hZ2VTb3Vy
Y2VVUkwoRWxlbWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDc2
MTA1NzguLmRiZDkyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTQw
Nyw2ICs0MDcsNyBAQCBlbnVtIFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gewogICAgIFtD
b25kaXRpb25hbD1XSVJFTEVTU19QTEFZQkFDS19UQVJHRVRdIHZvaWQgc2V0TW9ja01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CiAgICAgW0NvbmRpdGlv
bmFsPVdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCwgTWF5VGhyb3dMZWdhY3lFeGNlcHRpb25dIHZv
aWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShET01TdHJpbmcgZGV2aWNl
TmFtZSwgRE9NU3RyaW5nIGRldmljZVN0YXRlKTsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RS
RUFNXSB2b2lkIHNldE1vY2tNZWRpYUNhcHR1cmVEZXZpY2VzRW5hYmxlZChib29sZWFuIGVuYWJs
ZWQpOworICAgIFtDb25kaXRpb25hbD1XRUJfUlRDXSB2b2lkIGVtdWxhdGVSVENQZWVyQ29ubmVj
dGlvblBsYXRmb3JtRXZlbnQoUlRDUGVlckNvbm5lY3Rpb24gY29ubmVjdGlvbiwgRE9NU3RyaW5n
IGFjdGlvbik7CiAKICAgICBbQ29uZGl0aW9uYWw9VklERU9dIHZvaWQgc2ltdWxhdGVTeXN0ZW1T
bGVlcCgpOwogICAgIFtDb25kaXRpb25hbD1WSURFT10gdm9pZCBzaW11bGF0ZVN5c3RlbVdha2Uo
KTsK
</data>
<flag name="review"
          id="313862"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290783</attachid>
            <date>2016-10-05 23:48:54 -0700</date>
            <delta_ts>2016-10-06 01:23:43 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>icecandidate-event_1.patch</filename>
            <type>text/plain</type>
            <size>30042</size>
            <attacher name="Adam Bergkvist">adam.bergkvist</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5MjgxNjE2Li4wYWIzN2RlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMTAt
MDUgIEFkYW0gQmVyZ2t2aXN0ICA8YWRhbS5iZXJna3Zpc3RAZXJpY3Nzb24uY29tPgorCisgICAg
ICAgIFdlYlJUQzogQWRkIHN1cHBvcnQgZm9yIHRoZSBpY2VjYW5kaWRhdGUgZXZlbnQgaW4gTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjI5NTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBEaXNwYXRjaCBmYWtlIElDRSBjYW5kaWRhdGVzIGZyb20gdGhlIFdl
YlJUQyBwbGF0Zm9ybSBtb2NrIChNb2NrTWVkaWFFbmRwb2ludCkgYW5kCisgICAgICAgIGluc3Bl
Y3QgdGhlIHJlc3VsdC4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24taWNlY2FuZGlkYXRlLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pY2VjYW5kaWRhdGUtZXZlbnQuaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgIFNraXAgYWJvdmUgdGVzdCB1bnRpbCB0aGUgTWFjIHBvcnQgYnVpbGRzIHdpdGggV0VCX1JU
QworCiAyMDE2LTEwLTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIEtleWJvYXJkRXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZSgpIG9wZXJh
dGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi1pY2VjYW5kaWRhdGUtZXZlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pY2VjYW5kaWRhdGUtZXZlbnQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyMjVmYzQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLWljZWNhbmRpZGF0ZS1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMSBAQAorVGVz
dCBSVENQZWVyQ29ubmVjdGlvbiAnaWNlY2FuZGlkYXRlJyBldmVudCBhbmQgZ2F0aGVyaW5nIGRv
bmUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgTG9jYWwgZGVzY3JpcHRp
b24gc2V0CitQQVNTIEVuZCBvZiB0ZXN0IHByb21pc2UgY2hhaW4KK1BBU1MgR290IGNhbmRpZGF0
ZQorUEFTUyBldmVudC5jYW5kaWRhdGUgaW5zdGFuY2VvZiBSVENJY2VDYW5kaWRhdGUgaXMgdHJ1
ZQorUEFTUyBldmVudC5jYW5kaWRhdGUuc2RwTUxpbmVJbmRleCBpcyAwCitQQVNTIGV2ZW50LmNh
bmRpZGF0ZS5zZHBNaWQgaXMgcGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF0ubWlkCitQQVNTIGV2ZW50
LmNhbmRpZGF0ZS5jYW5kaWRhdGU6IGNhbmRpZGF0ZToxIDEgVURQIDIwMTMyNjY0MzEgMTkyLjE2
OC4wLjEwMCAzODgzOCB0eXAgaG9zdAorCitQQVNTIEdvdCBjYW5kaWRhdGUKK1BBU1MgZXZlbnQu
Y2FuZGlkYXRlIGluc3RhbmNlb2YgUlRDSWNlQ2FuZGlkYXRlIGlzIHRydWUKK1BBU1MgZXZlbnQu
Y2FuZGlkYXRlLnNkcE1MaW5lSW5kZXggaXMgMAorUEFTUyBldmVudC5jYW5kaWRhdGUuc2RwTWlk
IGlzIHBjLmdldFRyYW5zY2VpdmVycygpWzBdLm1pZAorUEFTUyBldmVudC5jYW5kaWRhdGUuY2Fu
ZGlkYXRlOiBjYW5kaWRhdGU6MiAxIFRDUCAxMDE5MjE2MzgzIDE5Mi4xNjguMC4xMDAgOSB0eXAg
aG9zdCB0Y3B0eXBlIGFjdGl2ZQorCitQQVNTIEdvdCBjYW5kaWRhdGUKK1BBU1MgZXZlbnQuY2Fu
ZGlkYXRlIGluc3RhbmNlb2YgUlRDSWNlQ2FuZGlkYXRlIGlzIHRydWUKK1BBU1MgZXZlbnQuY2Fu
ZGlkYXRlLnNkcE1MaW5lSW5kZXggaXMgMAorUEFTUyBldmVudC5jYW5kaWRhdGUuc2RwTWlkIGlz
IHBjLmdldFRyYW5zY2VpdmVycygpWzBdLm1pZAorUEFTUyBldmVudC5jYW5kaWRhdGUuY2FuZGlk
YXRlOiBjYW5kaWRhdGU6MyAxIFVEUCAxNjc3NzIyMTExIDE3Mi4xOC4wLjEgNDc5ODkgdHlwIHNy
Zmx4IHJhZGRyIDE5Mi4xNjguMC4xMDAgcnBvcnQgNDc5ODkKKworUEFTUyBHb3QgZW5kIG9mIGNh
bmRpZGF0ZXMKK1BBU1MgZXZlbnQuY2FuZGlkYXRlIGlzIG51bGwKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWljZWNhbmRpZGF0ZS1ldmVudC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pY2Vj
YW5kaWRhdGUtZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42
MjE5MTAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi1pY2VjYW5kaWRhdGUtZXZlbnQuaHRtbApAQCAtMCwwICsxLDYwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDwvaGVh
ZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGxldCBldmVudDsK
KworICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3QgUlRDUGVlckNvbm5lY3Rpb24gJ2ljZWNh
bmRpZGF0ZScgZXZlbnQgYW5kIGdhdGhlcmluZyBkb25lIik7CisKKyAgICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRp
YVBlcm1pc3Npb24odHJ1ZSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBk
ZWJ1ZygiVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5uZXIiKTsK
KyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgY29uc3QgcGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oe2ljZVNlcnZlcnM6
W3t1cmxzOidzdHVuOmZvby5jb20nfV19KTsKKworICAgICAgICAgICAgcGMub25pY2VjYW5kaWRh
dGUgPSBmdW5jdGlvbiAoZXZ0KSB7CisgICAgICAgICAgICAgICAgZXZlbnQgPSBldnQ7CisgICAg
ICAgICAgICAgICAgaWYgKGV2dC5jYW5kaWRhdGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgiR290IGNhbmRpZGF0ZSIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZVRy
dWUoImV2ZW50LmNhbmRpZGF0ZSBpbnN0YW5jZW9mIFJUQ0ljZUNhbmRpZGF0ZSIpOworICAgICAg
ICAgICAgICAgICAgICBzaG91bGRCZSgiZXZlbnQuY2FuZGlkYXRlLnNkcE1MaW5lSW5kZXgiLCAi
MCIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZSgiZXZlbnQuY2FuZGlkYXRlLnNkcE1p
ZCIsICJwYy5nZXRUcmFuc2NlaXZlcnMoKVswXS5taWQiKTsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZChgZXZlbnQuY2FuZGlkYXRlLmNhbmRpZGF0ZTogJHtldmVudC5jYW5kaWRhdGUu
Y2FuZGlkYXRlfWApOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoIkdvdCBlbmQgb2YgY2FuZGlkYXRlcyIpOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZU51bGwoImV2ZW50LmNhbmRpZGF0ZSIpOworICAgICAgICAgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworCisg
ICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7ICJ2aWRlbyI6
IHRydWUgfSkudGhlbihmdW5jdGlvbiAoc3RyZWFtKSB7CisgICAgICAgICAgICAgICAgcGMuYWRk
VHJhY2soc3RyZWFtLmdldFRyYWNrcygpWzBdLCBzdHJlYW0pOworICAgICAgICAgICAgICAgIHJl
dHVybiBwYy5jcmVhdGVPZmZlcigpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVu
KGZ1bmN0aW9uIChvZmZlcikgeworICAgICAgICAgICAgICAgIHJldHVybiBwYy5zZXRMb2NhbERl
c2NyaXB0aW9uKG9mZmVyKTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbihmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiTG9jYWwgZGVzY3JpcHRpb24g
c2V0Iik7CisgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5lbXVsYXRlUlRDUGVlckNv
bm5lY3Rpb25QbGF0Zm9ybUV2ZW50KHBjLCAiZGlzcGF0Y2gtZmFrZS1pY2UtY2FuZGlkYXRlcyIp
OworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkVuZCBvZiB0ZXN0IHByb21pc2UgY2hhaW4i
KTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7
CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiRXJyb3IgaW4gcHJvbWlzZSBjaGFpbjogIiAr
IGVycm9yKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgICAg
ICB3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworICAgICAgICA8L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggMzc3MTM3ZS4uNjhlNzJkMCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIwNiw2ICsyMDYsNyBAQCBmYXN0L21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW1lZGlhLXNldHVwLXNpbmdsZS1kaWFsb2cuaHRtbAog
ZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1tZWRpYS1zZXR1cC10d28tZGlhbG9n
cy5odG1sCiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLW1lZGlhLXNldHVwLWNh
bGxiYWNrcy1zaW5nbGUtZGlhbG9nLmh0bWwKIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24tbGVnYWN5LXN0cmVhbS1iYXNlZC1hcGkuaHRtbAorZmFzdC9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi1pY2VjYW5kaWRhdGUtZXZlbnQuaHRtbAogCiAjIEFzc2VydHMgaW4gZGVi
dWcuCiBbIERlYnVnIF0gZmFzdC9pbWFnZXMvbGFyZ2Utc2l6ZS1pbWFnZS1jcmFzaC5odG1sIFsg
U2tpcCBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggYWVlNjE5OS4uMDIxZmI1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDYxIEBACisyMDE2LTEwLTA1ICBBZGFtIEJlcmdrdmlzdCAgPGFkYW0uYmVyZ2t2aXN0QGVy
aWNzc29uLmNvbT4KKworICAgICAgICBXZWJSVEM6IEFkZCBzdXBwb3J0IGZvciB0aGUgaWNlY2Fu
ZGlkYXRlIGV2ZW50IGluIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyOTU3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IE1lZGlhRW5kcG9p
bnRQZWVyQ29ubmVjdGlvbidzIGdvdEljZUNhbmRpZGF0ZSBhbmQgZG9uZUdhdGhlcmluZ0NhbmRp
ZGF0ZXMKKyAgICAgICAgY2FsbGJhY2tzLiBUaGVzZSBhcmUgdXNlZCBieSB0aGUgTWVkaWFFbmRw
b2ludCAoV2ViUlRDIGJhY2tlbmQgaW1wbGVtZW50YXRpb24pIHRvCisgICAgICAgIG5vdGlmeSBh
Ym91dCBJQ0UgZXZlbnRzLgorCisgICAgICAgIEFkZCBBUEkgdG8gSW50ZXJuYWxzIHRvIGVtdWxh
dGUgV2ViUlRDIHBsYXRmb3JtIGV2ZW50cywgc3VjaCBhcyBkaXNwYXRjaGluZyBhIHNldCBvZiBJ
Q0UKKyAgICAgICAgY2FuZGlkYXRlcyBmb2xsb3dlZCBieSBhIGdhdGhlcmluZyBkb25lIGluZGlj
YXRpb24uIEluaXRpYWxseSwgb25seSBhIHNpbmdsZSBhY3Rpb24sCisgICAgICAgICJkaXNwYXRj
aC1mYWtlLWljZS1jYW5kaWRhdGVzIiwgaXMgc3VwcG9ydGVkLCBidXQgdGhlIGludGVudGlvbiBp
cyB0byBleHRlbmQgdGhlIHNldCBvZgorICAgICAgICBhY3Rpb25zIHRvIHN1cHBvcnQgbW9yZSB0
ZXN0IGNhc2VzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24taWNlY2FuZGlkYXRlLWV2ZW50Lmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6ZW11bGF0ZVBsYXRmb3JtRXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpnb3RJY2VDYW5kaWRh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpkb25l
R2F0aGVyaW5nQ2FuZGlkYXRlcyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YUVuZHBvaW50UGVlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L1BlZXJDb25uZWN0aW9uQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDSWNlVHJhbnNwb3J0Lmg6IEFkZGVkLgorICAgICAgICBSVENJY2VDYW5kaWRhdGUgd2lsbCBl
dmVudHVhbGx5IGJlIHBhcnQgb2YgdGhlIEpTIEFQSSwgYnV0IHJpZ2h0IG5vdyBpdCdzCisgICAg
ICAgIG9ubHkgdXNlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSBJQ0Ugc3RhdGVzIHJlbGF0ZWQgdG8g
YSBSVENSdHBUcmFuc2Nldmllci4KKyAgICAgICAgKFdlYkNvcmU6OlJUQ0ljZVRyYW5zcG9ydDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0ljZVRyYW5zcG9ydDo6flJUQ0ljZVRyYW5z
cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VUcmFuc3BvcnQ6OnRyYW5zcG9ydFN0YXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0ljZVRyYW5zcG9ydDo6c2V0VHJhbnNwb3J0U3RhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNlVHJhbnNwb3J0OjpnYXRoZXJpbmdTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENJY2VUcmFuc3BvcnQ6OnNldEdhdGhlcmluZ1N0YXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ0ljZVRyYW5zcG9ydDo6UlRDSWNlVHJhbnNwb3J0KToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjplbXVsYXRlUGxhdGZvcm1FdmVudCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNjZWl2ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDUnRwVHJhbnNjZWl2ZXI6OlJUQ1J0cFRyYW5zY2VpdmVyKToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zY2VpdmVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSVENSdHBUcmFuc2NlaXZlcjo6aWNlVHJhbnNwb3J0KToKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFFbmRwb2ludC5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbmRwb2ludDo6ZW11bGF0
ZVBsYXRmb3JtRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uU3RhdGVzLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2lu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFFbmRwb2ludDo6TW9ja01lZGlhRW5k
cG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhRW5kcG9pbnQ6OnVwZGF0ZVJlY2Vp
dmVDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYUVuZHBvaW50Ojpl
bXVsYXRlUGxhdGZvcm1FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFFbmRwb2lu
dDo6ZGlzcGF0Y2hGYWtlSWNlQ2FuZGlkYXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVk
aWFFbmRwb2ludDo6aWNlQ2FuZGlkYXRlVGltZXJGaXJlZCk6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9Nb2NrTWVkaWFFbmRwb2ludC5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZW11bGF0ZVJUQ1BlZXJDb25uZWN0aW9u
UGxhdGZvcm1FdmVudCk6CisgICAgICAgIEdlbmVyaWMgQVBJIHRvIHNpZ25hbCBkb3duIHRvIHRo
ZSBXZWJSVEMgcGxhdGZvcm0gbW9jay4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxNi0xMC0wMyAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4g
Rml4IHRoZSBidWlsZCB3aXRoIGNvb3JkaW5hdGVkIGdyYXBoaWNzIGVuYWJsZWQgYWZ0ZXIgcjIw
NjcxMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcAppbmRleCA1MzRkMzA3Li5i
YjIyNDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uY3BwCkBAIC00Miw2ICs0
Miw3IEBACiAjaW5jbHVkZSAiUGVlck1lZGlhRGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJSVEND
b25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlLmgiCisjaW5jbHVkZSAi
UlRDSWNlQ2FuZGlkYXRlRXZlbnQuaCIKICNpbmNsdWRlICJSVENPZmZlckFuc3dlck9wdGlvbnMu
aCIKICNpbmNsdWRlICJSVENSdHBUcmFuc2NlaXZlci5oIgogI2luY2x1ZGUgIlJUQ1RyYWNrRXZl
bnQuaCIKQEAgLTc1NSw2ICs3NTYsMTEgQEAgdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rp
b246Om1hcmtBc05lZWRpbmdOZWdvdGlhdGlvbigpCiAgICAgICAgIG1fY2xpZW50LT5zY2hlZHVs
ZU5lZ290aWF0aW9uTmVlZGVkRXZlbnQoKTsKIH0KIAordm9pZCBNZWRpYUVuZHBvaW50UGVlckNv
bm5lY3Rpb246OmVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0IFN0cmluZyYgYWN0aW9uKQorewor
ICAgIG1fbWVkaWFFbmRwb2ludC0+ZW11bGF0ZVBsYXRmb3JtRXZlbnQoYWN0aW9uKTsKK30KKwog
Ym9vbCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmxvY2FsRGVzY3JpcHRpb25UeXBlVmFs
aWRGb3JTdGF0ZShSVENTZXNzaW9uRGVzY3JpcHRpb246OlNkcFR5cGUgdHlwZSkgY29uc3QKIHsK
ICAgICBzd2l0Y2ggKG1fY2xpZW50LT5pbnRlcm5hbFNpZ25hbGluZ1N0YXRlKCkpIHsKQEAgLTgx
OCwyMyArODI0LDU1IEBAIHZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpnb3REdGxz
RmluZ2VycHJpbnQoY29uc3QgU3RyaW5nJiBmaW5nZXJwcmludCwKICAgICBzdGFydFJ1bm5pbmdU
YXNrcygpOwogfQogCi12b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6Z290SWNlQ2Fu
ZGlkYXRlKHVuc2lnbmVkIG1kZXNjSW5kZXgsIFJlZlB0cjxJY2VDYW5kaWRhdGU+JiYgY2FuZGlk
YXRlKQordm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmdvdEljZUNhbmRpZGF0ZShj
b25zdCBTdHJpbmcmIG1pZCwgUmVmUHRyPEljZUNhbmRpZGF0ZT4mJiBjYW5kaWRhdGUpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIFVOVVNFRF9QQVJBTShtZGVzY0luZGV4
KTsKLSAgICBVTlVTRURfUEFSQU0oY2FuZGlkYXRlKTsKKyAgICBjb25zdCBNZWRpYURlc2NyaXB0
aW9uVmVjdG9yJiBtZWRpYURlc2NyaXB0aW9ucyA9IGludGVybmFsTG9jYWxEZXNjcmlwdGlvbigp
LT5jb25maWd1cmF0aW9uKCktPm1lZGlhRGVzY3JpcHRpb25zKCk7CisgICAgc2l6ZV90IG1lZGlh
RGVzY3JpcHRpb25JbmRleCA9IG5vdEZvdW5kOwogCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1lZGlhRGVzY3JpcHRpb25zLnNpemUoKTsgKytpKSB7
CisgICAgICAgIGlmIChtZWRpYURlc2NyaXB0aW9uc1tpXS0+bWlkKCkgPT0gbWlkKSB7CisgICAg
ICAgICAgICBtZWRpYURlc2NyaXB0aW9uSW5kZXggPSBpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgQVNTRVJUKG1lZGlhRGVzY3JpcHRpb25JbmRleCAhPSBub3RG
b3VuZCk7CisKKyAgICBQZWVyTWVkaWFEZXNjcmlwdGlvbiYgbWVkaWFEZXNjcmlwdGlvbiA9ICpt
ZWRpYURlc2NyaXB0aW9uc1ttZWRpYURlc2NyaXB0aW9uSW5kZXhdOworICAgIG1lZGlhRGVzY3Jp
cHRpb24uYWRkSWNlQ2FuZGlkYXRlKGNhbmRpZGF0ZS5jb3B5UmVmKCkpOworCisgICAgU3RyaW5n
IGNhbmRpZGF0ZUxpbmU7CisgICAgU0RQUHJvY2Vzc29yOjpSZXN1bHQgcmVzdWx0ID0gbV9zZHBQ
cm9jZXNzb3ItPmdlbmVyYXRlQ2FuZGlkYXRlTGluZSgqY2FuZGlkYXRlLCBjYW5kaWRhdGVMaW5l
KTsKKyAgICBpZiAocmVzdWx0ICE9IFNEUFByb2Nlc3Nvcjo6UmVzdWx0OjpTdWNjZXNzKSB7Cisg
ICAgICAgIExPR19FUlJPUigiU0RQUHJvY2Vzc29yIGludGVybmFsIGVycm9yIik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlPiBpY2VDYW5kaWRh
dGUgPSBSVENJY2VDYW5kaWRhdGU6OmNyZWF0ZShjYW5kaWRhdGVMaW5lLCBtaWQsIG1lZGlhRGVz
Y3JpcHRpb25JbmRleCk7CisKKyAgICBtX2NsaWVudC0+ZmlyZUV2ZW50KFJUQ0ljZUNhbmRpZGF0
ZUV2ZW50OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBXVEZNb3ZlKGljZUNhbmRpZGF0ZSkpKTsKIH0K
IAotdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmRvbmVHYXRoZXJpbmdDYW5kaWRh
dGVzKHVuc2lnbmVkIG1kZXNjSW5kZXgpCit2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlv
bjo6ZG9uZUdhdGhlcmluZ0NhbmRpZGF0ZXMoY29uc3QgU3RyaW5nJiBtaWQpCiB7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIFVOVVNFRF9QQVJBTShtZGVzY0luZGV4KTsKKyAg
ICBSdHBUcmFuc2NlaXZlclZlY3RvciB0cmFuc2NlaXZlcnMgPSBSdHBUcmFuc2NlaXZlclZlY3Rv
cihtX2NsaWVudC0+Z2V0VHJhbnNjZWl2ZXJzKCkpOworICAgIFJUQ1J0cFRyYW5zY2VpdmVyKiBu
b3RpZnlpbmdUcmFuc2NlaXZlciA9IG1hdGNoVHJhbnNjZWl2ZXJCeU1pZCh0cmFuc2NlaXZlcnMs
IG1pZCk7CisgICAgQVNTRVJUKG5vdGlmeWluZ1RyYW5zY2VpdmVyKTsKIAotICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgbm90aWZ5aW5nVHJhbnNjZWl2ZXItPmljZVRyYW5zcG9ydCgpLnNldEdh
dGhlcmluZ1N0YXRlKFJUQ0ljZVRyYW5zcG9ydDo6R2F0aGVyaW5nU3RhdGU6OkNvbXBsZXRlKTsK
KworICAgIC8vIERvbid0IG5vdGlmeSB0aGUgc2NyaXB0IGlmIHRoZXJlIGFyZSB0cmFuc2NlaXZl
cnMgc3RpbGwgZ2F0aGVyaW5nLgorICAgIFJUQ1J0cFRyYW5zY2VpdmVyKiBzdGlsbEdhdGhlcmlu
Z1RyYW5zY2VpdmVyID0gbWF0Y2hUcmFuc2NlaXZlcih0cmFuc2NlaXZlcnMsIFtdIChSVENSdHBU
cmFuc2NlaXZlciYgY3VycmVudCkgeworICAgICAgICByZXR1cm4gIWN1cnJlbnQuc3RvcHBlZCgp
ICYmICFjdXJyZW50Lm1pZCgpLmlzTnVsbCgpCisgICAgICAgICAgICAmJiBjdXJyZW50LmljZVRy
YW5zcG9ydCgpLmdhdGhlcmluZ1N0YXRlKCkgIT0gUlRDSWNlVHJhbnNwb3J0OjpHYXRoZXJpbmdT
dGF0ZTo6Q29tcGxldGU7CisgICAgfSk7CisgICAgaWYgKCFzdGlsbEdhdGhlcmluZ1RyYW5zY2Vp
dmVyKSB7CisgICAgICAgIG1fY2xpZW50LT5maXJlRXZlbnQoUlRDSWNlQ2FuZGlkYXRlRXZlbnQ6
OmNyZWF0ZShmYWxzZSwgZmFsc2UsIG51bGxwdHIpKTsKKyAgICAgICAgbV9jbGllbnQtPnVwZGF0
ZUljZUdhdGhlcmluZ1N0YXRlKEljZUdhdGhlcmluZ1N0YXRlOjpDb21wbGV0ZSk7CisgICAgfQog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24u
aAppbmRleCAwZjNmYjVlLi5jMmJlNzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9u
LmgKQEAgLTg0LDYgKzg0LDggQEAgcHVibGljOgogICAgIHZvaWQgbWFya0FzTmVlZGluZ05lZ290
aWF0aW9uKCk7CiAgICAgdm9pZCBjbGVhck5lZ290aWF0aW9uTmVlZGVkU3RhdGUoKSBvdmVycmlk
ZSB7IG1fbmVnb3RpYXRpb25OZWVkZWQgPSBmYWxzZTsgfTsKIAorICAgIHZvaWQgZW11bGF0ZVBs
YXRmb3JtRXZlbnQoY29uc3QgU3RyaW5nJiBhY3Rpb24pIG92ZXJyaWRlOworCiBwcml2YXRlOgog
ICAgIHZvaWQgcnVuVGFzayhGdW5jdGlvbjx2b2lkICgpPiYmKTsKICAgICB2b2lkIHN0YXJ0UnVu
bmluZ1Rhc2tzKCk7CkBAIC0xMDcsOCArMTA5LDggQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lZGlh
RW5kcG9pbnRDbGllbnQKICAgICB2b2lkIGdvdER0bHNGaW5nZXJwcmludChjb25zdCBTdHJpbmcm
IGZpbmdlcnByaW50LCBjb25zdCBTdHJpbmcmIGZpbmdlcnByaW50RnVuY3Rpb24pIG92ZXJyaWRl
OwotICAgIHZvaWQgZ290SWNlQ2FuZGlkYXRlKHVuc2lnbmVkIG1kZXNjSW5kZXgsIFJlZlB0cjxJ
Y2VDYW5kaWRhdGU+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZG9uZUdhdGhlcmluZ0NhbmRpZGF0
ZXModW5zaWduZWQgbWRlc2NJbmRleCkgb3ZlcnJpZGU7CisgICAgdm9pZCBnb3RJY2VDYW5kaWRh
dGUoY29uc3QgU3RyaW5nJiBtaWQsIFJlZlB0cjxJY2VDYW5kaWRhdGU+JiYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZG9uZUdhdGhlcmluZ0NhbmRpZGF0ZXMoY29uc3QgU3RyaW5nJiBtaWQpIG92ZXJy
aWRlOwogCiAgICAgUGVlckNvbm5lY3Rpb25CYWNrZW5kQ2xpZW50KiBtX2NsaWVudDsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFFbmRwb2ludD4gbV9tZWRpYUVuZHBvaW50OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tl
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmgKaW5kZXggYWIwNDA3NS4uN2NiYmMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCkBA
IC0xMTcsNiArMTE3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc05lZ290aWF0aW9u
TmVlZGVkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBtYXJrQXNOZWVkaW5nTmVnb3Rp
YXRpb24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyTmVnb3RpYXRpb25OZWVkZWRTdGF0
ZSgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBlbXVsYXRlUGxhdGZvcm1FdmVudChjb25zdCBT
dHJpbmcmIGFjdGlvbikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VUcmFuc3BvcnQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlVHJhbnNwb3J0LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDVjZjdlZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlVHJhbnNwb3J0
LmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBFcmljc3NvbiBB
Qi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhl
ciB0aGUgbmFtZSBvZiBFcmljc3NvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMK
KyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJf
UlRDKQorCisjaW5jbHVkZSAiUGVlckNvbm5lY3Rpb25TdGF0ZXMuaCIKKyNpbmNsdWRlICJTY3Jp
cHRXcmFwcGFibGUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENJY2VUcmFuc3Bv
cnQgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENJY2VUcmFuc3BvcnQ+LCBwdWJsaWMgU2NyaXB0V3Jh
cHBhYmxlIHsKK3B1YmxpYzoKKworICAgIHVzaW5nIFRyYW5zcG9ydFN0YXRlID0gUGVlckNvbm5l
Y3Rpb25TdGF0ZXM6OkljZVRyYW5zcG9ydFN0YXRlOworICAgIHVzaW5nIEdhdGhlcmluZ1N0YXRl
ID0gUGVlckNvbm5lY3Rpb25TdGF0ZXM6OkljZUdhdGhlcmluZ1N0YXRlOworCisgICAgc3RhdGlj
IFJlZjxSVENJY2VUcmFuc3BvcnQ+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBSVENJY2VUcmFuc3BvcnQoKSk7CisgICAgfQorICAgIHZpcnR1YWwgflJUQ0lj
ZVRyYW5zcG9ydCgpIHsgfQorCisgICAgVHJhbnNwb3J0U3RhdGUgdHJhbnNwb3J0U3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX3RyYW5zcG9ydFN0YXRlOyB9CisgICAgdm9pZCBzZXRUcmFuc3BvcnRT
dGF0ZShUcmFuc3BvcnRTdGF0ZSBzdGF0ZSkgeyBtX3RyYW5zcG9ydFN0YXRlID0gc3RhdGU7IH0K
KworICAgIEdhdGhlcmluZ1N0YXRlIGdhdGhlcmluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9n
YXRoZXJpbmdTdGF0ZTsgfQorICAgIHZvaWQgc2V0R2F0aGVyaW5nU3RhdGUoR2F0aGVyaW5nU3Rh
dGUgc3RhdGUpIHsgbV9nYXRoZXJpbmdTdGF0ZSA9IHN0YXRlOyB9CisKK3ByaXZhdGU6CisgICAg
UlRDSWNlVHJhbnNwb3J0KCkgeyB9OworCisgICAgVHJhbnNwb3J0U3RhdGUgbV90cmFuc3BvcnRT
dGF0ZSB7IFRyYW5zcG9ydFN0YXRlOjpOZXcgfTsKKyAgICBHYXRoZXJpbmdTdGF0ZSBtX2dhdGhl
cmluZ1N0YXRlIHsgR2F0aGVyaW5nU3RhdGU6Ok5ldyB9OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCmluZGV4
IGQzYTQ0NGQuLjlkMWE2MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBAIC00MjgsNiArNDI4LDExIEBA
IHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmNsb3NlKCkKICAgICAgICAgc2VuZGVyLT5zdG9wKCk7
CiB9CiAKK3ZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0
IFN0cmluZyYgYWN0aW9uKQoreworICAgIG1fYmFja2VuZC0+ZW11bGF0ZVBsYXRmb3JtRXZlbnQo
YWN0aW9uKTsKK30KKwogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6c3RvcCgpCiB7CiAgICAgY2xv
c2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uaAppbmRleCA0MmZhMzkwLi4zNzUxNmIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCkBA
IC0xMTksNiArMTE5LDkgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ8UlRDUGVlckNv
bm5lY3Rpb24+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxSVENQZWVyQ29ubmVjdGlvbj46
OmRlcmVmOwogCisgICAgLy8gVXNlZCBmb3IgdGVzdGluZyB3aXRoIGEgbW9jaworICAgIHZvaWQg
ZW11bGF0ZVBsYXRmb3JtRXZlbnQoY29uc3QgU3RyaW5nJiBhY3Rpb24pOworCiBwcml2YXRlOgog
ICAgIFJUQ1BlZXJDb25uZWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2NlaXZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zY2Vp
dmVyLmNwcAppbmRleCBlMjkzZGY0Li4wYWVkMmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zY2VpdmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zY2VpdmVyLmNwcApAQCAtNjQs
NiArNjQsNyBAQCBSVENSdHBUcmFuc2NlaXZlcjo6UlRDUnRwVHJhbnNjZWl2ZXIoUmVmUHRyPFJU
Q1J0cFNlbmRlcj4mJiBzZW5kZXIsIFJlZlB0cjxSVENSdAogICAgIDogbV9kaXJlY3Rpb24oRGly
ZWN0aW9uOjpTZW5kcmVjdikKICAgICAsIG1fc2VuZGVyKHNlbmRlcikKICAgICAsIG1fcmVjZWl2
ZXIocmVjZWl2ZXIpCisgICAgLCBtX2ljZVRyYW5zcG9ydChSVENJY2VUcmFuc3BvcnQ6OmNyZWF0
ZSgpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFRyYW5zY2VpdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFRyYW5zY2VpdmVyLmgKaW5kZXggYmEzY2I2NC4uOGY2Y2M0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2NlaXZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNjZWl2
ZXIuaApAQCAtMzMsNiArMzMsNyBAQAogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAKKyNpbmNsdWRl
ICJSVENJY2VUcmFuc3BvcnQuaCIKICNpbmNsdWRlICJSVENSdHBSZWNlaXZlci5oIgogI2luY2x1
ZGUgIlJUQ1J0cFNlbmRlci5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgpAQCAtNzAs
NiArNzEsMTEgQEAgcHVibGljOgogICAgIGJvb2wgc3RvcHBlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RvcHBlZDsgfQogICAgIHZvaWQgc3RvcCgpIHsgbV9zdG9wcGVkID0gdHJ1ZTsgfQogCisgICAg
Ly8gRklYTUU6IFRlbXBvcmFyeSBzb2x1dGlvbiB0byBrZWVwIHRyYWNrIG9mIElDRSBzdGF0ZXMg
Zm9yIHRoaXMgdHJhbnNjZWl2ZXIuIExhdGVyLCBlYWNoCisgICAgLy8gc2VuZGVyIGFuZCByZWNl
aXZlciB3aWxsIGhhdmUgdXAgdG8gdHdvIERUTFMgdHJhbnNwb3J0cywgd2hpY2ggaW4gdHVybiB3
aWxsIGhhdmUgYW4gSUNFCisgICAgLy8gdHJhbnNwb3J0IGVhY2guCisgICAgUlRDSWNlVHJhbnNw
b3J0JiBpY2VUcmFuc3BvcnQoKSBjb25zdCB7IHJldHVybiAqbV9pY2VUcmFuc3BvcnQ7IH0KKwog
ICAgIHN0YXRpYyBTdHJpbmcgZ2V0TmV4dE1pZCgpOwogCiBwcml2YXRlOgpAQCAtODQsNiArOTAs
OCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxSVENSdHBSZWNlaXZlcj4gbV9yZWNlaXZlcjsKIAog
ICAgIGJvb2wgbV9zdG9wcGVkIHsgZmFsc2UgfTsKKworICAgIFJlZlB0cjxSVENJY2VUcmFuc3Bv
cnQ+IG1faWNlVHJhbnNwb3J0OwogfTsKIAogY2xhc3MgUnRwVHJhbnNjZWl2ZXJTZXQgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDc2YThkZWQuLmU4MzlmOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk0NTEsNiArOTQ1MSw3IEBACiAJCTVFNUUyQjEwMUNG
QzNFNEIwMDBDMEQ4NSAvKiBSVENSdHBUcmFuc2NlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSVENSdHBUcmFuc2NlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVFNUUyQjExMUNGQzNFNEIwMDBDMEQ4NSAvKiBSVENSdHBUcmFuc2Nl
aXZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENSdHBUcmFuc2NlaXZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RTVFMkIxMjFDRkMzRTRCMDAwQzBE
ODUgLyogUlRDUnRwVHJhbnNjZWl2ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ1J0
cFRyYW5zY2VpdmVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUU2NjUzMDkx
REE0MzdCRjAwRkREODRDIC8qIFJUQ0ljZVRyYW5zcG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSVENJY2VUcmFuc3BvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNUVBM0Q2REQxQzg1OUQ1MzAwMzAwQkJCIC8qIE1vY2tNZWRpYUVuZHBvaW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vY2tNZWRpYUVuZHBvaW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUVBM0Q2REUxQzg1OUQ1MzAwMzAwQkJC
IC8qIE1vY2tNZWRpYUVuZHBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1vY2tNZWRpYUVuZHBvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVFQTNE
NkUxMUM4NTlEQUEwMDMwMEJCQiAvKiBTRFBQcm9jZXNzb3IuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU0RQUHJvY2Vzc29yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE0NTUzLDYgKzE0NTU0LDcgQEAKIAkJCQkwNzIyMUI3NjE3Q0VDMzI3MDA4
NDhFNTEgLyogUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaWRsICovLAogCQkJCTA3QUI5OTY3MThEQTND
MDEwMDE4NzcxRSAvKiBSVENJY2VTZXJ2ZXIuaCAqLywKIAkJCQkwN0FCOTk2ODE4REEzQzAxMDAx
ODc3MUUgLyogUlRDSWNlU2VydmVyLmlkbCAqLywKKwkJCQk1RTY2NTMwOTFEQTQzN0JGMDBGREQ4
NEMgLyogUlRDSWNlVHJhbnNwb3J0LmggKi8sCiAJCQkJMDczNzk0REIxOUVFMkM1MjAwRTVBMDQ1
IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5jcHAgKi8sCiAJCQkJMDczNzk0REMxOUVFMkM1MjAw
RTVBMDQ1IC8qIFJUQ09mZmVyQW5zd2VyT3B0aW9ucy5oICovLAogCQkJCTA3MjIxQjc3MTdDRUMz
MjcwMDg0OEU1MSAvKiBSVENQZWVyQ29ubmVjdGlvbi5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50LmgKaW5kZXggZDQxZDIy
YS4uMzIyMWJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFFbmRwb2ludC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhRW5kcG9pbnQuaApAQCAtNDgsOCArNDgsOCBAQCBjbGFzcyBSZWFsdGltZU1lZGlh
U291cmNlOwogY2xhc3MgTWVkaWFFbmRwb2ludENsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGdvdER0bHNGaW5nZXJwcmludChjb25zdCBTdHJpbmcmIGZpbmdlcnByaW50LCBjb25z
dCBTdHJpbmcmIGZpbmdlcnByaW50RnVuY3Rpb24pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ290
SWNlQ2FuZGlkYXRlKHVuc2lnbmVkIG1kZXNjSW5kZXgsIFJlZlB0cjxJY2VDYW5kaWRhdGU+JiYp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZG9uZUdhdGhlcmluZ0NhbmRpZGF0ZXModW5zaWduZWQg
bWRlc2NJbmRleCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnb3RJY2VDYW5kaWRhdGUoY29uc3Qg
U3RyaW5nJiBtaWQsIFJlZlB0cjxJY2VDYW5kaWRhdGU+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZG9uZUdhdGhlcmluZ0NhbmRpZGF0ZXMoY29uc3QgU3RyaW5nJiBtaWQpID0gMDsKIAogICAg
IHZpcnR1YWwgfk1lZGlhRW5kcG9pbnRDbGllbnQoKSB7IH0KIH07CkBAIC04NSw2ICs4NSw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVwbGFjZVNlbmRTb3VyY2UoUmVhbHRpbWVNZWRp
YVNvdXJjZSYsIGNvbnN0IFN0cmluZyYgbWlkKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3Rv
cCgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBlbXVsYXRlUGxhdGZvcm1FdmVudChjb25zdCBT
dHJpbmcmKSB7IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvblN0YXRlcy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25TdGF0
ZXMuaAppbmRleCBiZWZiZTdkLi44YTcxMjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvblN0YXRlcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uU3RhdGVzLmgKQEAgLTYx
LDYgKzYxLDE2IEBAIGVudW0gY2xhc3MgSWNlR2F0aGVyaW5nU3RhdGUgewogICAgIENvbXBsZXRl
ID0gMwogfTsKIAorZW51bSBjbGFzcyBJY2VUcmFuc3BvcnRTdGF0ZSB7CisgICAgTmV3ID0gMSwK
KyAgICBDaGVja2luZyA9IDIsCisgICAgQ29ubmVjdGVkID0gMywKKyAgICBDb21wbGV0ZWQgPSA0
LAorICAgIEZhaWxlZCA9IDUsCisgICAgRGlzY29ubmVjdGVkID0gNiwKKyAgICBDbG9zZWQgPSA3
Cit9OworCiBlbnVtIGNsYXNzIEljZVRyYW5zcG9ydFBvbGljeSB7CiAgICAgUmVsYXksCiAgICAg
QWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVu
ZHBvaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9p
bnQuY3BwCmluZGV4IDE3NzY1NGMuLmQxYWNjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAj
aWYgRU5BQkxFKFdFQl9SVEMpCiAjaW5jbHVkZSAiTW9ja01lZGlhRW5kcG9pbnQuaCIKIAorI2lu
Y2x1ZGUgIk1lZGlhRW5kcG9pbnRTZXNzaW9uQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIk1l
ZGlhUGF5bG9hZC5oIgogI2luY2x1ZGUgIk1vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgiCiAjaW5j
bHVkZSAiTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCIKQEAgLTUwLDYgKzUxLDcgQEAgc3RkOjp1
bmlxdWVfcHRyPE1lZGlhRW5kcG9pbnQ+IE1vY2tNZWRpYUVuZHBvaW50OjpjcmVhdGUoTWVkaWFF
bmRwb2ludENsaWVudCYgY2wKIAogTW9ja01lZGlhRW5kcG9pbnQ6Ok1vY2tNZWRpYUVuZHBvaW50
KE1lZGlhRW5kcG9pbnRDbGllbnQmIGNsaWVudCkKICAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAg
ICAsIG1faWNlQ2FuZGlkYXRlVGltZXIoKnRoaXMsICZNb2NrTWVkaWFFbmRwb2ludDo6aWNlQ2Fu
ZGlkYXRlVGltZXJGaXJlZCkKIHsKIH0KIApAQCAtMTU4LDkgKzE2MCwxMyBAQCBNZWRpYVBheWxv
YWRWZWN0b3IgTW9ja01lZGlhRW5kcG9pbnQ6OmZpbHRlclBheWxvYWRzKGNvbnN0IE1lZGlhUGF5
bG9hZFZlY3RvciYgcgogCiBNZWRpYUVuZHBvaW50OjpVcGRhdGVSZXN1bHQgTW9ja01lZGlhRW5k
cG9pbnQ6OnVwZGF0ZVJlY2VpdmVDb25maWd1cmF0aW9uKE1lZGlhRW5kcG9pbnRTZXNzaW9uQ29u
ZmlndXJhdGlvbiogY29uZmlndXJhdGlvbiwgYm9vbCBpc0luaXRpYXRvcikKIHsKLSAgICBVTlVT
RURfUEFSQU0oY29uZmlndXJhdGlvbik7CiAgICAgVU5VU0VEX1BBUkFNKGlzSW5pdGlhdG9yKTsK
IAorICAgIFZlY3RvcjxTdHJpbmc+IG1pZHM7CisgICAgZm9yIChjb25zdCBSZWZQdHI8UGVlck1l
ZGlhRGVzY3JpcHRpb24+JiBtZWRpYURlc2NyaXB0aW9uIDogY29uZmlndXJhdGlvbi0+bWVkaWFE
ZXNjcmlwdGlvbnMoKSkKKyAgICAgICAgbWlkcy5hcHBlbmQobWVkaWFEZXNjcmlwdGlvbi0+bWlk
KCkpOworICAgIG1fbWlkcy5zd2FwKG1pZHMpOworCiAgICAgcmV0dXJuIFVwZGF0ZVJlc3VsdDo6
U3VjY2VzczsKIH0KIApAQCAtMjAwLDYgKzIwNiw2NSBAQCB2b2lkIE1vY2tNZWRpYUVuZHBvaW50
OjpzdG9wKCkKIHsKIH0KIAordm9pZCBNb2NrTWVkaWFFbmRwb2ludDo6ZW11bGF0ZVBsYXRmb3Jt
RXZlbnQoY29uc3QgU3RyaW5nJiBhY3Rpb24pCit7CisgICAgaWYgKGFjdGlvbiA9PSAiZGlzcGF0
Y2gtZmFrZS1pY2UtY2FuZGlkYXRlcyIpCisgICAgICAgIGRpc3BhdGNoRmFrZUljZUNhbmRpZGF0
ZXMoKTsKK30KKwordm9pZCBNb2NrTWVkaWFFbmRwb2ludDo6ZGlzcGF0Y2hGYWtlSWNlQ2FuZGlk
YXRlcygpCit7CisgICAgUmVmUHRyPEljZUNhbmRpZGF0ZT4gaWNlQ2FuZGlkYXRlID0gSWNlQ2Fu
ZGlkYXRlOjpjcmVhdGUoKTsKKyAgICBpY2VDYW5kaWRhdGUtPnNldFR5cGUoImhvc3QiKTsKKyAg
ICBpY2VDYW5kaWRhdGUtPnNldEZvdW5kYXRpb24oIjEiKTsKKyAgICBpY2VDYW5kaWRhdGUtPnNl
dENvbXBvbmVudElkKDEpOworICAgIGljZUNhbmRpZGF0ZS0+c2V0UHJpb3JpdHkoMjAxMzI2NjQz
MSk7CisgICAgaWNlQ2FuZGlkYXRlLT5zZXRBZGRyZXNzKCIxOTIuMTY4LjAuMTAwIik7CisgICAg
aWNlQ2FuZGlkYXRlLT5zZXRQb3J0KDM4ODM4KTsKKyAgICBpY2VDYW5kaWRhdGUtPnNldFRyYW5z
cG9ydCgiVURQIik7CisgICAgbV9mYWtlSWNlQ2FuZGlkYXRlcy5hcHBlbmQoV1RGTW92ZShpY2VD
YW5kaWRhdGUpKTsKKworICAgIGljZUNhbmRpZGF0ZSA9IEljZUNhbmRpZGF0ZTo6Y3JlYXRlKCk7
CisgICAgaWNlQ2FuZGlkYXRlLT5zZXRUeXBlKCJob3N0Iik7CisgICAgaWNlQ2FuZGlkYXRlLT5z
ZXRGb3VuZGF0aW9uKCIyIik7CisgICAgaWNlQ2FuZGlkYXRlLT5zZXRDb21wb25lbnRJZCgxKTsK
KyAgICBpY2VDYW5kaWRhdGUtPnNldFByaW9yaXR5KDEwMTkyMTYzODMpOworICAgIGljZUNhbmRp
ZGF0ZS0+c2V0QWRkcmVzcygiMTkyLjE2OC4wLjEwMCIpOworICAgIGljZUNhbmRpZGF0ZS0+c2V0
UG9ydCg5KTsKKyAgICBpY2VDYW5kaWRhdGUtPnNldFRyYW5zcG9ydCgiVENQIik7CisgICAgaWNl
Q2FuZGlkYXRlLT5zZXRUY3BUeXBlKCJhY3RpdmUiKTsKKyAgICBtX2Zha2VJY2VDYW5kaWRhdGVz
LmFwcGVuZChXVEZNb3ZlKGljZUNhbmRpZGF0ZSkpOworCisgICAgaWNlQ2FuZGlkYXRlID0gSWNl
Q2FuZGlkYXRlOjpjcmVhdGUoKTsKKyAgICBpY2VDYW5kaWRhdGUtPnNldFR5cGUoInNyZmx4Iik7
CisgICAgaWNlQ2FuZGlkYXRlLT5zZXRGb3VuZGF0aW9uKCIzIik7CisgICAgaWNlQ2FuZGlkYXRl
LT5zZXRDb21wb25lbnRJZCgxKTsKKyAgICBpY2VDYW5kaWRhdGUtPnNldFByaW9yaXR5KDE2Nzc3
MjIxMTEpOworICAgIGljZUNhbmRpZGF0ZS0+c2V0QWRkcmVzcygiMTcyLjE4LjAuMSIpOworICAg
IGljZUNhbmRpZGF0ZS0+c2V0UG9ydCg0Nzk4OSk7CisgICAgaWNlQ2FuZGlkYXRlLT5zZXRUcmFu
c3BvcnQoIlVEUCIpOworICAgIGljZUNhbmRpZGF0ZS0+c2V0UmVsYXRlZEFkZHJlc3MoIjE5Mi4x
NjguMC4xMDAiKTsKKyAgICBpY2VDYW5kaWRhdGUtPnNldFJlbGF0ZWRQb3J0KDQ3OTg5KTsKKyAg
ICBtX2Zha2VJY2VDYW5kaWRhdGVzLmFwcGVuZChXVEZNb3ZlKGljZUNhbmRpZGF0ZSkpOworCisg
ICAgLy8gUmV2ZXJzZSBvcmRlciB0byB1c2UgdGFrZUxhc3QoKSB3aGlsZSBrZWVwaW5nIHRoZSBh
Ym92ZSBvcmRlcgorICAgIG1fZmFrZUljZUNhbmRpZGF0ZXMucmV2ZXJzZSgpOworCisgICAgbV9p
Y2VDYW5kaWRhdGVUaW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisKK3ZvaWQgTW9ja01lZGlhRW5k
cG9pbnQ6OmljZUNhbmRpZGF0ZVRpbWVyRmlyZWQoKQoreworICAgIGlmIChtX21pZHMuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fZmFrZUljZUNhbmRpZGF0ZXMuaXNF
bXB0eSgpKSB7CisgICAgICAgIG1fY2xpZW50LmdvdEljZUNhbmRpZGF0ZShtX21pZHNbMF0sIG1f
ZmFrZUljZUNhbmRpZGF0ZXMudGFrZUxhc3QoKSk7CisgICAgICAgIG1faWNlQ2FuZGlkYXRlVGlt
ZXIuc3RhcnRPbmVTaG90KDApOworICAgIH0gZWxzZQorICAgICAgICBtX2NsaWVudC5kb25lR2F0
aGVyaW5nQ2FuZGlkYXRlcyhtX21pZHNbMF0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuaAppbmRleCBhMTVkYjM4Li5lZmQxNWMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5oCkBA
IC0zNCw2ICszNCw3IEBACiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAKICNpbmNsdWRlICJNZWRpYUVu
ZHBvaW50LmgiCisjaW5jbHVkZSAiVGltZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC02MSw4ICs2MiwxNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKIAor
ICAgIHZvaWQgZW11bGF0ZVBsYXRmb3JtRXZlbnQoY29uc3QgU3RyaW5nJiBhY3Rpb24pIG92ZXJy
aWRlOworCiBwcml2YXRlOgorICAgIHZvaWQgZGlzcGF0Y2hGYWtlSWNlQ2FuZGlkYXRlcygpOwor
ICAgIHZvaWQgaWNlQ2FuZGlkYXRlVGltZXJGaXJlZCgpOworCiAgICAgTWVkaWFFbmRwb2ludENs
aWVudCYgbV9jbGllbnQ7CisgICAgVmVjdG9yPFN0cmluZz4gbV9taWRzOworCisgICAgVmVjdG9y
PFJlZlB0cjxJY2VDYW5kaWRhdGU+PiBtX2Zha2VJY2VDYW5kaWRhdGVzOworICAgIFRpbWVyIG1f
aWNlQ2FuZGlkYXRlVGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggY2FkNmI0MC4uYjBjODVmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtOTUzLDYgKzk1MywxMSBAQCB2b2lkIEludGVy
bmFsczo6ZW5hYmxlTW9ja1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcigpCiB7CiAgICAgUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyOjpjcmVhdGUgPSBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2Nr
OjpjcmVhdGU7CiB9CisKK3ZvaWQgSW50ZXJuYWxzOjplbXVsYXRlUlRDUGVlckNvbm5lY3Rpb25Q
bGF0Zm9ybUV2ZW50KFJUQ1BlZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcm
IGFjdGlvbikKK3sKKyAgICBjb25uZWN0aW9uLmVtdWxhdGVQbGF0Zm9ybUV2ZW50KGFjdGlvbik7
Cit9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaAppbmRleCAwMGMyMTM3Li5kZGU1YmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKQEAgLTYzLDYgKzYzLDcgQEAgY2xhc3MgTm9kZUxpc3Q7CiBjbGFzcyBQYWdlOwog
Y2xhc3MgUmFuZ2U7CiBjbGFzcyBSZW5kZXJlZERvY3VtZW50TWFya2VyOworY2xhc3MgUlRDUGVl
ckNvbm5lY3Rpb247CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTb3VyY2VC
dWZmZXI7CiBjbGFzcyBUaW1lUmFuZ2VzOwpAQCAtMzY4LDYgKzM2OSw3IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoV0VCX1JUQykKICAgICB2b2lkIGVuYWJsZU1vY2tNZWRpYUVuZHBvaW50KCk7CiAg
ICAgdm9pZCBlbmFibGVNb2NrUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKCk7CisgICAgdm9pZCBl
bXVsYXRlUlRDUGVlckNvbm5lY3Rpb25QbGF0Zm9ybUV2ZW50KFJUQ1BlZXJDb25uZWN0aW9uJiwg
Y29uc3QgU3RyaW5nJiBhY3Rpb24pOwogI2VuZGlmCiAKICAgICBTdHJpbmcgZ2V0SW1hZ2VTb3Vy
Y2VVUkwoRWxlbWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDc2
MTA1NzguLmRiZDkyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTQw
Nyw2ICs0MDcsNyBAQCBlbnVtIFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gewogICAgIFtD
b25kaXRpb25hbD1XSVJFTEVTU19QTEFZQkFDS19UQVJHRVRdIHZvaWQgc2V0TW9ja01lZGlhUGxh
eWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CiAgICAgW0NvbmRpdGlv
bmFsPVdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCwgTWF5VGhyb3dMZWdhY3lFeGNlcHRpb25dIHZv
aWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShET01TdHJpbmcgZGV2aWNl
TmFtZSwgRE9NU3RyaW5nIGRldmljZVN0YXRlKTsKICAgICBbQ29uZGl0aW9uYWw9TUVESUFfU1RS
RUFNXSB2b2lkIHNldE1vY2tNZWRpYUNhcHR1cmVEZXZpY2VzRW5hYmxlZChib29sZWFuIGVuYWJs
ZWQpOworICAgIFtDb25kaXRpb25hbD1XRUJfUlRDXSB2b2lkIGVtdWxhdGVSVENQZWVyQ29ubmVj
dGlvblBsYXRmb3JtRXZlbnQoUlRDUGVlckNvbm5lY3Rpb24gY29ubmVjdGlvbiwgRE9NU3RyaW5n
IGFjdGlvbik7CiAKICAgICBbQ29uZGl0aW9uYWw9VklERU9dIHZvaWQgc2ltdWxhdGVTeXN0ZW1T
bGVlcCgpOwogICAgIFtDb25kaXRpb25hbD1WSURFT10gdm9pZCBzaW11bGF0ZVN5c3RlbVdha2Uo
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290794</attachid>
            <date>2016-10-06 01:23:43 -0700</date>
            <delta_ts>2016-10-06 01:57:19 -0700</delta_ts>
            <desc>Updated patch (for landing)</desc>
            <filename>icecandidate-event_2.patch</filename>
            <type>text/plain</type>
            <size>30038</size>
            <attacher name="Adam Bergkvist">adam.bergkvist</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5MjgxNjE2Li5kN2VmNTc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMTAt
MDUgIEFkYW0gQmVyZ2t2aXN0ICA8YWRhbS5iZXJna3Zpc3RAZXJpY3Nzb24uY29tPgorCisgICAg
ICAgIFdlYlJUQzogQWRkIHN1cHBvcnQgZm9yIHRoZSBpY2VjYW5kaWRhdGUgZXZlbnQgaW4gTWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjI5NTcKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxz
b24uCisKKyAgICAgICAgRGlzcGF0Y2ggZmFrZSBJQ0UgY2FuZGlkYXRlcyBmcm9tIHRoZSBXZWJS
VEMgcGxhdGZvcm0gbW9jayAoTW9ja01lZGlhRW5kcG9pbnQpIGFuZAorICAgICAgICBpbnNwZWN0
IHRoZSByZXN1bHQuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLWljZWNhbmRpZGF0ZS1ldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNlY2FuZGlkYXRlLWV2ZW50Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICBTa2lwIGFib3ZlIHRlc3QgdW50aWwgdGhlIE1hYyBwb3J0IGJ1aWxkcyB3aXRoIFdFQl9SVEMK
KwogMjAxNi0xMC0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBLZXlib2FyZEV2ZW50LmdldE1vZGlmaWVyU3RhdGUoKSBvcGVyYXRp
b24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24taWNlY2FuZGlkYXRlLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNlY2FuZGlkYXRlLWV2ZW50LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjI1ZmM0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi1pY2VjYW5kaWRhdGUtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzEgQEAKK1Rlc3Qg
UlRDUGVlckNvbm5lY3Rpb24gJ2ljZWNhbmRpZGF0ZScgZXZlbnQgYW5kIGdhdGhlcmluZyBkb25l
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIExvY2FsIGRlc2NyaXB0aW9u
IHNldAorUEFTUyBFbmQgb2YgdGVzdCBwcm9taXNlIGNoYWluCitQQVNTIEdvdCBjYW5kaWRhdGUK
K1BBU1MgZXZlbnQuY2FuZGlkYXRlIGluc3RhbmNlb2YgUlRDSWNlQ2FuZGlkYXRlIGlzIHRydWUK
K1BBU1MgZXZlbnQuY2FuZGlkYXRlLnNkcE1MaW5lSW5kZXggaXMgMAorUEFTUyBldmVudC5jYW5k
aWRhdGUuc2RwTWlkIGlzIHBjLmdldFRyYW5zY2VpdmVycygpWzBdLm1pZAorUEFTUyBldmVudC5j
YW5kaWRhdGUuY2FuZGlkYXRlOiBjYW5kaWRhdGU6MSAxIFVEUCAyMDEzMjY2NDMxIDE5Mi4xNjgu
MC4xMDAgMzg4MzggdHlwIGhvc3QKKworUEFTUyBHb3QgY2FuZGlkYXRlCitQQVNTIGV2ZW50LmNh
bmRpZGF0ZSBpbnN0YW5jZW9mIFJUQ0ljZUNhbmRpZGF0ZSBpcyB0cnVlCitQQVNTIGV2ZW50LmNh
bmRpZGF0ZS5zZHBNTGluZUluZGV4IGlzIDAKK1BBU1MgZXZlbnQuY2FuZGlkYXRlLnNkcE1pZCBp
cyBwYy5nZXRUcmFuc2NlaXZlcnMoKVswXS5taWQKK1BBU1MgZXZlbnQuY2FuZGlkYXRlLmNhbmRp
ZGF0ZTogY2FuZGlkYXRlOjIgMSBUQ1AgMTAxOTIxNjM4MyAxOTIuMTY4LjAuMTAwIDkgdHlwIGhv
c3QgdGNwdHlwZSBhY3RpdmUKKworUEFTUyBHb3QgY2FuZGlkYXRlCitQQVNTIGV2ZW50LmNhbmRp
ZGF0ZSBpbnN0YW5jZW9mIFJUQ0ljZUNhbmRpZGF0ZSBpcyB0cnVlCitQQVNTIGV2ZW50LmNhbmRp
ZGF0ZS5zZHBNTGluZUluZGV4IGlzIDAKK1BBU1MgZXZlbnQuY2FuZGlkYXRlLnNkcE1pZCBpcyBw
Yy5nZXRUcmFuc2NlaXZlcnMoKVswXS5taWQKK1BBU1MgZXZlbnQuY2FuZGlkYXRlLmNhbmRpZGF0
ZTogY2FuZGlkYXRlOjMgMSBVRFAgMTY3NzcyMjExMSAxNzIuMTguMC4xIDQ3OTg5IHR5cCBzcmZs
eCByYWRkciAxOTIuMTY4LjAuMTAwIHJwb3J0IDQ3OTg5CisKK1BBU1MgR290IGVuZCBvZiBjYW5k
aWRhdGVzCitQQVNTIGV2ZW50LmNhbmRpZGF0ZSBpcyBudWxsCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1pY2VjYW5kaWRhdGUtZXZlbnQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24taWNlY2Fu
ZGlkYXRlLWV2ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjIx
OTEwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24taWNlY2FuZGlkYXRlLWV2ZW50Lmh0bWwKQEAgLTAsMCArMSw2MCBAQAor
PCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+
CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBsZXQgZXZlbnQ7CisK
KyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0IFJUQ1BlZXJDb25uZWN0aW9uICdpY2VjYW5k
aWRhdGUnIGV2ZW50IGFuZCBnYXRoZXJpbmcgZG9uZSIpOworCisgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uKHRydWUpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZGVi
dWcoIlRoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVubmVyIik7Cisg
ICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGNvbnN0IHBjID0gbmV3IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOlt7
dXJsczonc3R1bjpmb28uY29tJ31dfSk7CisKKyAgICAgICAgICAgIHBjLm9uaWNlY2FuZGlkYXRl
ID0gZnVuY3Rpb24gKGV2dCkgeworICAgICAgICAgICAgICAgIGV2ZW50ID0gZXZ0OworICAgICAg
ICAgICAgICAgIGlmIChldnQuY2FuZGlkYXRlKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoIkdvdCBjYW5kaWRhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVl
KCJldmVudC5jYW5kaWRhdGUgaW5zdGFuY2VvZiBSVENJY2VDYW5kaWRhdGUiKTsKKyAgICAgICAg
ICAgICAgICAgICAgc2hvdWxkQmUoImV2ZW50LmNhbmRpZGF0ZS5zZHBNTGluZUluZGV4IiwgIjAi
KTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoImV2ZW50LmNhbmRpZGF0ZS5zZHBNaWQi
LCAicGMuZ2V0VHJhbnNjZWl2ZXJzKClbMF0ubWlkIik7CisgICAgICAgICAgICAgICAgICAgIHRl
c3RQYXNzZWQoYGV2ZW50LmNhbmRpZGF0ZS5jYW5kaWRhdGU6ICR7ZXZlbnQuY2FuZGlkYXRlLmNh
bmRpZGF0ZX1gKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJHb3QgZW5kIG9mIGNhbmRpZGF0ZXMiKTsKKyAgICAgICAgICAgICAgICAg
ICAgc2hvdWxkQmVOdWxsKCJldmVudC5jYW5kaWRhdGUiKTsKKyAgICAgICAgICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfTsKKworICAg
ICAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyAidmlkZW8iOiB0
cnVlIH0pLnRoZW4oZnVuY3Rpb24gKHN0cmVhbSkgeworICAgICAgICAgICAgICAgIHBjLmFkZFRy
YWNrKHN0cmVhbS5nZXRUcmFja3MoKVswXSwgc3RyZWFtKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gcGMuY3JlYXRlT2ZmZXIoKTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbihm
dW5jdGlvbiAob2ZmZXIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gcGMuc2V0TG9jYWxEZXNj
cmlwdGlvbihvZmZlcik7CisgICAgICAgICAgICB9KQorICAgICAgICAgICAgLnRoZW4oZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkxvY2FsIGRlc2NyaXB0aW9uIHNl
dCIpOworICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuZW11bGF0ZVJUQ1BlZXJDb25u
ZWN0aW9uUGxhdGZvcm1FdmVudChwYywgImRpc3BhdGNoLWZha2UtaWNlLWNhbmRpZGF0ZXMiKTsK
KyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJFbmQgb2YgdGVzdCBwcm9taXNlIGNoYWluIik7
CisgICAgICAgICAgICB9KQorICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikgewor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkVycm9yIGluIHByb21pc2UgY2hhaW46ICIgKyBl
cnJvcik7CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9KTsK
KworICAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICAgICAg
d2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisKKyAgICAgICAgPC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDM3NzEzN2UuLjY4ZTcyZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMDYsNiArMjA2LDcgQEAgZmFzdC9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1tZWRpYS1zZXR1cC1zaW5nbGUtZGlhbG9nLmh0bWwKIGZh
c3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tbWVkaWEtc2V0dXAtdHdvLWRpYWxvZ3Mu
aHRtbAogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1tZWRpYS1zZXR1cC1jYWxs
YmFja3Mtc2luZ2xlLWRpYWxvZy5odG1sCiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLWxlZ2FjeS1zdHJlYW0tYmFzZWQtYXBpLmh0bWwKK2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24taWNlY2FuZGlkYXRlLWV2ZW50Lmh0bWwKIAogIyBBc3NlcnRzIGluIGRlYnVn
LgogWyBEZWJ1ZyBdIGZhc3QvaW1hZ2VzL2xhcmdlLXNpemUtaW1hZ2UtY3Jhc2guaHRtbCBbIFNr
aXAgXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGFlZTYxOTkuLmFjNDJhZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw2MSBAQAorMjAxNi0xMC0wNSAgQWRhbSBCZXJna3Zpc3QgIDxhZGFtLmJlcmdrdmlzdEBlcmlj
c3Nvbi5jb20+CisKKyAgICAgICAgV2ViUlRDOiBBZGQgc3VwcG9ydCBmb3IgdGhlIGljZWNhbmRp
ZGF0ZSBldmVudCBpbiBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjk1NworCisgICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbXBsZW1lbnQgTWVkaWFFbmRwb2ludFBl
ZXJDb25uZWN0aW9uJ3MgZ290SWNlQ2FuZGlkYXRlIGFuZCBkb25lR2F0aGVyaW5nQ2FuZGlkYXRl
cworICAgICAgICBjYWxsYmFja3MuIFRoZXNlIGFyZSB1c2VkIGJ5IHRoZSBNZWRpYUVuZHBvaW50
IChXZWJSVEMgYmFja2VuZCBpbXBsZW1lbnRhdGlvbikgdG8KKyAgICAgICAgbm90aWZ5IGFib3V0
IElDRSBldmVudHMuCisKKyAgICAgICAgQWRkIEFQSSB0byBJbnRlcm5hbHMgdG8gZW11bGF0ZSBX
ZWJSVEMgcGxhdGZvcm0gZXZlbnRzLCBzdWNoIGFzIGRpc3BhdGNoaW5nIGEgc2V0IG9mIElDRQor
ICAgICAgICBjYW5kaWRhdGVzIGZvbGxvd2VkIGJ5IGEgZ2F0aGVyaW5nIGRvbmUgaW5kaWNhdGlv
bi4gSW5pdGlhbGx5LCBvbmx5IGEgc2luZ2xlIGFjdGlvbiwKKyAgICAgICAgImRpc3BhdGNoLWZh
a2UtaWNlLWNhbmRpZGF0ZXMiLCBpcyBzdXBwb3J0ZWQsIGJ1dCB0aGUgaW50ZW50aW9uIGlzIHRv
IGV4dGVuZCB0aGUgc2V0IG9mCisgICAgICAgIGFjdGlvbnMgdG8gc3VwcG9ydCBtb3JlIHRlc3Qg
Y2FzZXMuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bi1pY2VjYW5kaWRhdGUtZXZlbnQuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjplbXVsYXRlUGxhdGZvcm1FdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmdvdEljZUNhbmRpZGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmRvbmVHYXRo
ZXJpbmdDYW5kaWRhdGVzKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5k
cG9pbnRQZWVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJ
Y2VUcmFuc3BvcnQuaDogQWRkZWQuCisgICAgICAgIFJUQ0ljZUNhbmRpZGF0ZSB3aWxsIGV2ZW50
dWFsbHkgYmUgcGFydCBvZiB0aGUgSlMgQVBJLCBidXQgcmlnaHQgbm93IGl0J3MKKyAgICAgICAg
b25seSB1c2VkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIElDRSBzdGF0ZXMgcmVsYXRlZCB0byBhIFJU
Q1J0cFRyYW5zY2V2aWVyLgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNlVHJhbnNwb3J0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNlVHJhbnNwb3J0Ojp+UlRDSWNlVHJhbnNwb3J0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0ljZVRyYW5zcG9ydDo6dHJhbnNwb3J0U3RhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDSWNlVHJhbnNwb3J0OjpzZXRUcmFuc3BvcnRTdGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSVENJY2VUcmFuc3BvcnQ6OmdhdGhlcmluZ1N0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ0ljZVRyYW5zcG9ydDo6c2V0R2F0aGVyaW5nU3RhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDSWNlVHJhbnNwb3J0OjpSVENJY2VUcmFuc3BvcnQpOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmVtdWxhdGVQbGF0Zm9ybUV2ZW50KToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2NlaXZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSVENSdHBUcmFuc2NlaXZlcjo6UlRDUnRwVHJhbnNjZWl2ZXIpOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNjZWl2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1J0cFRyYW5zY2VpdmVyOjppY2VUcmFuc3BvcnQpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YUVuZHBvaW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVuZHBvaW50OjplbXVsYXRlUGxh
dGZvcm1FdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rp
b25TdGF0ZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYUVuZHBvaW50OjpNb2NrTWVkaWFFbmRwb2lu
dCk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTWVkaWFFbmRwb2ludDo6dXBkYXRlUmVjZWl2ZUNv
bmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TW9ja01lZGlhRW5kcG9pbnQ6OmVtdWxh
dGVQbGF0Zm9ybUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYUVuZHBvaW50Ojpk
aXNwYXRjaEZha2VJY2VDYW5kaWRhdGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tNZWRpYUVu
ZHBvaW50OjppY2VDYW5kaWRhdGVUaW1lckZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2Nr
L01vY2tNZWRpYUVuZHBvaW50Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjplbXVsYXRlUlRDUGVlckNvbm5lY3Rpb25QbGF0
Zm9ybUV2ZW50KToKKyAgICAgICAgR2VuZXJpYyBBUEkgdG8gc2lnbmFsIGRvd24gdG8gdGhlIFdl
YlJUQyBwbGF0Zm9ybSBtb2NrLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDE2LTEwLTAzICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXgg
dGhlIGJ1aWxkIHdpdGggY29vcmRpbmF0ZWQgZ3JhcGhpY3MgZW5hYmxlZCBhZnRlciByMjA2NzEy
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVu
ZHBvaW50UGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDUzNGQzMDcuLmJiMjI0
NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFF
bmRwb2ludFBlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTQyLDYgKzQyLDcg
QEAKICNpbmNsdWRlICJQZWVyTWVkaWFEZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIlJUQ0NvbmZp
Z3VyYXRpb24uaCIKICNpbmNsdWRlICJSVENJY2VDYW5kaWRhdGUuaCIKKyNpbmNsdWRlICJSVENJ
Y2VDYW5kaWRhdGVFdmVudC5oIgogI2luY2x1ZGUgIlJUQ09mZmVyQW5zd2VyT3B0aW9ucy5oIgog
I2luY2x1ZGUgIlJUQ1J0cFRyYW5zY2VpdmVyLmgiCiAjaW5jbHVkZSAiUlRDVHJhY2tFdmVudC5o
IgpAQCAtNzU1LDYgKzc1NiwxMSBAQCB2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6
bWFya0FzTmVlZGluZ05lZ290aWF0aW9uKCkKICAgICAgICAgbV9jbGllbnQtPnNjaGVkdWxlTmVn
b3RpYXRpb25OZWVkZWRFdmVudCgpOwogfQogCit2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVj
dGlvbjo6ZW11bGF0ZVBsYXRmb3JtRXZlbnQoY29uc3QgU3RyaW5nJiBhY3Rpb24pCit7CisgICAg
bV9tZWRpYUVuZHBvaW50LT5lbXVsYXRlUGxhdGZvcm1FdmVudChhY3Rpb24pOworfQorCiBib29s
IE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6bG9jYWxEZXNjcmlwdGlvblR5cGVWYWxpZEZv
clN0YXRlKFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6U2RwVHlwZSB0eXBlKSBjb25zdAogewogICAg
IHN3aXRjaCAobV9jbGllbnQtPmludGVybmFsU2lnbmFsaW5nU3RhdGUoKSkgewpAQCAtODE4LDIz
ICs4MjQsNTUgQEAgdm9pZCBNZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb246OmdvdER0bHNGaW5n
ZXJwcmludChjb25zdCBTdHJpbmcmIGZpbmdlcnByaW50LAogICAgIHN0YXJ0UnVubmluZ1Rhc2tz
KCk7CiB9CiAKLXZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpnb3RJY2VDYW5kaWRh
dGUodW5zaWduZWQgbWRlc2NJbmRleCwgUmVmUHRyPEljZUNhbmRpZGF0ZT4mJiBjYW5kaWRhdGUp
Cit2b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6Z290SWNlQ2FuZGlkYXRlKGNvbnN0
IFN0cmluZyYgbWlkLCBSZWZQdHI8SWNlQ2FuZGlkYXRlPiYmIGNhbmRpZGF0ZSkKIHsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgVU5VU0VEX1BBUkFNKG1kZXNjSW5kZXgpOwot
ICAgIFVOVVNFRF9QQVJBTShjYW5kaWRhdGUpOworICAgIGNvbnN0IE1lZGlhRGVzY3JpcHRpb25W
ZWN0b3ImIG1lZGlhRGVzY3JpcHRpb25zID0gaW50ZXJuYWxMb2NhbERlc2NyaXB0aW9uKCktPmNv
bmZpZ3VyYXRpb24oKS0+bWVkaWFEZXNjcmlwdGlvbnMoKTsKKyAgICBzaXplX3QgbWVkaWFEZXNj
cmlwdGlvbkluZGV4ID0gbm90Rm91bmQ7CiAKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbWVkaWFEZXNjcmlwdGlvbnMuc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgaWYgKG1lZGlhRGVzY3JpcHRpb25zW2ldLT5taWQoKSA9PSBtaWQpIHsKKyAgICAgICAg
ICAgIG1lZGlhRGVzY3JpcHRpb25JbmRleCA9IGk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgIH0KKyAgICBBU1NFUlQobWVkaWFEZXNjcmlwdGlvbkluZGV4ICE9IG5vdEZvdW5k
KTsKKworICAgIFBlZXJNZWRpYURlc2NyaXB0aW9uJiBtZWRpYURlc2NyaXB0aW9uID0gKm1lZGlh
RGVzY3JpcHRpb25zW21lZGlhRGVzY3JpcHRpb25JbmRleF07CisgICAgbWVkaWFEZXNjcmlwdGlv
bi5hZGRJY2VDYW5kaWRhdGUoY2FuZGlkYXRlLmNvcHlSZWYoKSk7CisKKyAgICBTdHJpbmcgY2Fu
ZGlkYXRlTGluZTsKKyAgICBTRFBQcm9jZXNzb3I6OlJlc3VsdCByZXN1bHQgPSBtX3NkcFByb2Nl
c3Nvci0+Z2VuZXJhdGVDYW5kaWRhdGVMaW5lKCpjYW5kaWRhdGUsIGNhbmRpZGF0ZUxpbmUpOwor
ICAgIGlmIChyZXN1bHQgIT0gU0RQUHJvY2Vzc29yOjpSZXN1bHQ6OlN1Y2Nlc3MpIHsKKyAgICAg
ICAgTE9HX0VSUk9SKCJTRFBQcm9jZXNzb3IgaW50ZXJuYWwgZXJyb3IiKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIFJlZlB0cjxSVENJY2VDYW5kaWRhdGU+IGljZUNhbmRpZGF0ZSA9
IFJUQ0ljZUNhbmRpZGF0ZTo6Y3JlYXRlKGNhbmRpZGF0ZUxpbmUsIG1pZCwgbWVkaWFEZXNjcmlw
dGlvbkluZGV4KTsKKworICAgIG1fY2xpZW50LT5maXJlRXZlbnQoUlRDSWNlQ2FuZGlkYXRlRXZl
bnQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UsIFdURk1vdmUoaWNlQ2FuZGlkYXRlKSkpOwogfQogCi12
b2lkIE1lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbjo6ZG9uZUdhdGhlcmluZ0NhbmRpZGF0ZXMo
dW5zaWduZWQgbWRlc2NJbmRleCkKK3ZvaWQgTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uOjpk
b25lR2F0aGVyaW5nQ2FuZGlkYXRlcyhjb25zdCBTdHJpbmcmIG1pZCkKIHsKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwogCi0gICAgVU5VU0VEX1BBUkFNKG1kZXNjSW5kZXgpOworICAgIFJ0
cFRyYW5zY2VpdmVyVmVjdG9yIHRyYW5zY2VpdmVycyA9IFJ0cFRyYW5zY2VpdmVyVmVjdG9yKG1f
Y2xpZW50LT5nZXRUcmFuc2NlaXZlcnMoKSk7CisgICAgUlRDUnRwVHJhbnNjZWl2ZXIqIG5vdGlm
eWluZ1RyYW5zY2VpdmVyID0gbWF0Y2hUcmFuc2NlaXZlckJ5TWlkKHRyYW5zY2VpdmVycywgbWlk
KTsKKyAgICBBU1NFUlQobm90aWZ5aW5nVHJhbnNjZWl2ZXIpOwogCi0gICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICBub3RpZnlpbmdUcmFuc2NlaXZlci0+aWNlVHJhbnNwb3J0KCkuc2V0R2F0aGVy
aW5nU3RhdGUoUlRDSWNlVHJhbnNwb3J0OjpHYXRoZXJpbmdTdGF0ZTo6Q29tcGxldGUpOworCisg
ICAgLy8gRG9uJ3Qgbm90aWZ5IHRoZSBzY3JpcHQgaWYgdGhlcmUgYXJlIHRyYW5zY2VpdmVycyBz
dGlsbCBnYXRoZXJpbmcuCisgICAgUlRDUnRwVHJhbnNjZWl2ZXIqIHN0aWxsR2F0aGVyaW5nVHJh
bnNjZWl2ZXIgPSBtYXRjaFRyYW5zY2VpdmVyKHRyYW5zY2VpdmVycywgW10gKFJUQ1J0cFRyYW5z
Y2VpdmVyJiBjdXJyZW50KSB7CisgICAgICAgIHJldHVybiAhY3VycmVudC5zdG9wcGVkKCkgJiYg
IWN1cnJlbnQubWlkKCkuaXNOdWxsKCkKKyAgICAgICAgICAgICYmIGN1cnJlbnQuaWNlVHJhbnNw
b3J0KCkuZ2F0aGVyaW5nU3RhdGUoKSAhPSBSVENJY2VUcmFuc3BvcnQ6OkdhdGhlcmluZ1N0YXRl
OjpDb21wbGV0ZTsKKyAgICB9KTsKKyAgICBpZiAoIXN0aWxsR2F0aGVyaW5nVHJhbnNjZWl2ZXIp
IHsKKyAgICAgICAgbV9jbGllbnQtPmZpcmVFdmVudChSVENJY2VDYW5kaWRhdGVFdmVudDo6Y3Jl
YXRlKGZhbHNlLCBmYWxzZSwgbnVsbHB0cikpOworICAgICAgICBtX2NsaWVudC0+dXBkYXRlSWNl
R2F0aGVyaW5nU3RhdGUoSWNlR2F0aGVyaW5nU3RhdGU6OkNvbXBsZXRlKTsKKyAgICB9CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnRQZWVyQ29ubmVjdGlvbi5oCmlu
ZGV4IDBmM2ZiNWUuLmMyYmU3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFFbmRwb2ludFBlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUVuZHBvaW50UGVlckNvbm5lY3Rpb24uaApA
QCAtODQsNiArODQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXJrQXNOZWVkaW5nTmVnb3RpYXRp
b24oKTsKICAgICB2b2lkIGNsZWFyTmVnb3RpYXRpb25OZWVkZWRTdGF0ZSgpIG92ZXJyaWRlIHsg
bV9uZWdvdGlhdGlvbk5lZWRlZCA9IGZhbHNlOyB9OwogCisgICAgdm9pZCBlbXVsYXRlUGxhdGZv
cm1FdmVudChjb25zdCBTdHJpbmcmIGFjdGlvbikgb3ZlcnJpZGU7CisKIHByaXZhdGU6CiAgICAg
dm9pZCBydW5UYXNrKEZ1bmN0aW9uPHZvaWQgKCk+JiYpOwogICAgIHZvaWQgc3RhcnRSdW5uaW5n
VGFza3MoKTsKQEAgLTEwNyw4ICsxMDksOCBAQCBwcml2YXRlOgogCiAgICAgLy8gTWVkaWFFbmRw
b2ludENsaWVudAogICAgIHZvaWQgZ290RHRsc0ZpbmdlcnByaW50KGNvbnN0IFN0cmluZyYgZmlu
Z2VycHJpbnQsIGNvbnN0IFN0cmluZyYgZmluZ2VycHJpbnRGdW5jdGlvbikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBnb3RJY2VDYW5kaWRhdGUodW5zaWduZWQgbWRlc2NJbmRleCwgUmVmUHRyPEljZUNh
bmRpZGF0ZT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkb25lR2F0aGVyaW5nQ2FuZGlkYXRlcyh1
bnNpZ25lZCBtZGVzY0luZGV4KSBvdmVycmlkZTsKKyAgICB2b2lkIGdvdEljZUNhbmRpZGF0ZShj
b25zdCBTdHJpbmcmIG1pZCwgUmVmUHRyPEljZUNhbmRpZGF0ZT4mJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBkb25lR2F0aGVyaW5nQ2FuZGlkYXRlcyhjb25zdCBTdHJpbmcmIG1pZCkgb3ZlcnJpZGU7
CiAKICAgICBQZWVyQ29ubmVjdGlvbkJhY2tlbmRDbGllbnQqIG1fY2xpZW50OwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxNZWRpYUVuZHBvaW50PiBtX21lZGlhRW5kcG9pbnQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tl
bmQuaAppbmRleCBhYjA0MDc1Li43Y2JiYzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmgKQEAgLTEx
Nyw2ICsxMTcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTmVnb3RpYXRpb25OZWVk
ZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG1hcmtBc05lZWRpbmdOZWdvdGlhdGlv
bigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJOZWdvdGlhdGlvbk5lZWRlZFN0YXRlKCkg
PSAwOworCisgICAgdmlydHVhbCB2b2lkIGVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0IFN0cmlu
ZyYgYWN0aW9uKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZVRyYW5zcG9ydC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VUcmFuc3BvcnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWNmN2VkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VUcmFuc3BvcnQuaApA
QCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEVyaWNzc29uIEFCLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEVyaWNzc29uIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICog
ICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9SVEMp
CisKKyNpbmNsdWRlICJQZWVyQ29ubmVjdGlvblN0YXRlcy5oIgorI2luY2x1ZGUgIlNjcmlwdFdy
YXBwYWJsZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ0ljZVRyYW5zcG9ydCA6
IHB1YmxpYyBSZWZDb3VudGVkPFJUQ0ljZVRyYW5zcG9ydD4sIHB1YmxpYyBTY3JpcHRXcmFwcGFi
bGUgeworcHVibGljOgorCisgICAgdXNpbmcgVHJhbnNwb3J0U3RhdGUgPSBQZWVyQ29ubmVjdGlv
blN0YXRlczo6SWNlVHJhbnNwb3J0U3RhdGU7CisgICAgdXNpbmcgR2F0aGVyaW5nU3RhdGUgPSBQ
ZWVyQ29ubmVjdGlvblN0YXRlczo6SWNlR2F0aGVyaW5nU3RhdGU7CisKKyAgICBzdGF0aWMgUmVm
PFJUQ0ljZVRyYW5zcG9ydD4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFJUQ0ljZVRyYW5zcG9ydCgpKTsKKyAgICB9CisgICAgdmlydHVhbCB+UlRDSWNlVHJh
bnNwb3J0KCkgeyB9CisKKyAgICBUcmFuc3BvcnRTdGF0ZSB0cmFuc3BvcnRTdGF0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdHJhbnNwb3J0U3RhdGU7IH0KKyAgICB2b2lkIHNldFRyYW5zcG9ydFN0YXRl
KFRyYW5zcG9ydFN0YXRlIHN0YXRlKSB7IG1fdHJhbnNwb3J0U3RhdGUgPSBzdGF0ZTsgfQorCisg
ICAgR2F0aGVyaW5nU3RhdGUgZ2F0aGVyaW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2dhdGhl
cmluZ1N0YXRlOyB9CisgICAgdm9pZCBzZXRHYXRoZXJpbmdTdGF0ZShHYXRoZXJpbmdTdGF0ZSBz
dGF0ZSkgeyBtX2dhdGhlcmluZ1N0YXRlID0gc3RhdGU7IH0KKworcHJpdmF0ZToKKyAgICBSVENJ
Y2VUcmFuc3BvcnQoKSB7IH07CisKKyAgICBUcmFuc3BvcnRTdGF0ZSBtX3RyYW5zcG9ydFN0YXRl
IHsgVHJhbnNwb3J0U3RhdGU6Ok5ldyB9OworICAgIEdhdGhlcmluZ1N0YXRlIG1fZ2F0aGVyaW5n
U3RhdGUgeyBHYXRoZXJpbmdTdGF0ZTo6TmV3IH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggZDNh
NDQ0ZC4uOWQxYTYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTQyOCw2ICs0MjgsMTEgQEAgdm9p
ZCBSVENQZWVyQ29ubmVjdGlvbjo6Y2xvc2UoKQogICAgICAgICBzZW5kZXItPnN0b3AoKTsKIH0K
IAordm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6ZW11bGF0ZVBsYXRmb3JtRXZlbnQoY29uc3QgU3Ry
aW5nJiBhY3Rpb24pCit7CisgICAgbV9iYWNrZW5kLT5lbXVsYXRlUGxhdGZvcm1FdmVudChhY3Rp
b24pOworfQorCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpzdG9wKCkKIHsKICAgICBjbG9zZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVy
Q29ubmVjdGlvbi5oCmluZGV4IDQyZmEzOTAuLjM3NTE2YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTEx
OSw2ICsxMTksOSBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDxSVENQZWVyQ29ubmVj
dGlvbj46OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkPFJUQ1BlZXJDb25uZWN0aW9uPjo6ZGVy
ZWY7CiAKKyAgICAvLyBVc2VkIGZvciB0ZXN0aW5nIHdpdGggYSBtb2NrCisgICAgdm9pZCBlbXVs
YXRlUGxhdGZvcm1FdmVudChjb25zdCBTdHJpbmcmIGFjdGlvbik7CisKIHByaXZhdGU6CiAgICAg
UlRDUGVlckNvbm5lY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zY2VpdmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNjZWl2ZXIu
Y3BwCmluZGV4IGUyOTNkZjQuLjBhZWQyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNjZWl2ZXIuY3BwCkBAIC02NCw2ICs2
NCw3IEBAIFJUQ1J0cFRyYW5zY2VpdmVyOjpSVENSdHBUcmFuc2NlaXZlcihSZWZQdHI8UlRDUnRw
U2VuZGVyPiYmIHNlbmRlciwgUmVmUHRyPFJUQ1J0CiAgICAgOiBtX2RpcmVjdGlvbihEaXJlY3Rp
b246OlNlbmRyZWN2KQogICAgICwgbV9zZW5kZXIoc2VuZGVyKQogICAgICwgbV9yZWNlaXZlcihy
ZWNlaXZlcikKKyAgICAsIG1faWNlVHJhbnNwb3J0KFJUQ0ljZVRyYW5zcG9ydDo6Y3JlYXRlKCkp
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwVHJhbnNjZWl2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwVHJhbnNjZWl2ZXIuaAppbmRleCBiYTNjYjY0Li44ZjZjYzRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zY2VpdmVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2NlaXZlci5o
CkBAIC0zMyw2ICszMyw3IEBACiAKICNpZiBFTkFCTEUoV0VCX1JUQykKIAorI2luY2x1ZGUgIlJU
Q0ljZVRyYW5zcG9ydC5oIgogI2luY2x1ZGUgIlJUQ1J0cFJlY2VpdmVyLmgiCiAjaW5jbHVkZSAi
UlRDUnRwU2VuZGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCkBAIC03MCw2ICs3
MSwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBzdG9wcGVkKCkgY29uc3QgeyByZXR1cm4gbV9zdG9w
cGVkOyB9CiAgICAgdm9pZCBzdG9wKCkgeyBtX3N0b3BwZWQgPSB0cnVlOyB9CiAKKyAgICAvLyBG
SVhNRTogVGVtcG9yYXJ5IHNvbHV0aW9uIHRvIGtlZXAgdHJhY2sgb2YgSUNFIHN0YXRlcyBmb3Ig
dGhpcyB0cmFuc2NlaXZlci4gTGF0ZXIsIGVhY2gKKyAgICAvLyBzZW5kZXIgYW5kIHJlY2VpdmVy
IHdpbGwgaGF2ZSB1cCB0byB0d28gRFRMUyB0cmFuc3BvcnRzLCB3aGljaCBpbiB0dXJuIHdpbGwg
aGF2ZSBhbiBJQ0UKKyAgICAvLyB0cmFuc3BvcnQgZWFjaC4KKyAgICBSVENJY2VUcmFuc3BvcnQm
IGljZVRyYW5zcG9ydCgpIGNvbnN0IHsgcmV0dXJuICptX2ljZVRyYW5zcG9ydDsgfQorCiAgICAg
c3RhdGljIFN0cmluZyBnZXROZXh0TWlkKCk7CiAKIHByaXZhdGU6CkBAIC04NCw2ICs5MCw4IEBA
IHByaXZhdGU6CiAgICAgUmVmUHRyPFJUQ1J0cFJlY2VpdmVyPiBtX3JlY2VpdmVyOwogCiAgICAg
Ym9vbCBtX3N0b3BwZWQgeyBmYWxzZSB9OworCisgICAgUmVmUHRyPFJUQ0ljZVRyYW5zcG9ydD4g
bV9pY2VUcmFuc3BvcnQ7CiB9OwogCiBjbGFzcyBSdHBUcmFuc2NlaXZlclNldCB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzZh
OGRlZC4uZTgzOWY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtOTQ1MSw2ICs5NDUxLDcgQEAKIAkJNUU1RTJCMTAxQ0ZDM0U0
QjAwMEMwRDg1IC8qIFJUQ1J0cFRyYW5zY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJUQ1J0cFRyYW5zY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUU1RTJCMTExQ0ZDM0U0QjAwMEMwRDg1IC8qIFJUQ1J0cFRyYW5zY2VpdmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ1J0cFRyYW5zY2VpdmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVFNUUyQjEyMUNGQzNFNEIwMDBDMEQ4NSAv
KiBSVENSdHBUcmFuc2NlaXZlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRDUnRwVHJh
bnNjZWl2ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1RTY2NTMwOTFEQTQz
N0JGMDBGREQ4NEMgLyogUlRDSWNlVHJhbnNwb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJUQ0ljZVRyYW5zcG9ydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1RUEzRDZERDFDODU5RDUzMDAzMDBCQkIgLyogTW9ja01lZGlhRW5kcG9pbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9ja01lZGlhRW5kcG9pbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RUEzRDZERTFDODU5RDUzMDAzMDBCQkIgLyog
TW9ja01lZGlhRW5kcG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9j
a01lZGlhRW5kcG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUVBM0Q2RTEx
Qzg1OURBQTAwMzAwQkJCIC8qIFNEUFByb2Nlc3Nvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTRFBQcm9jZXNzb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTQ1NTMsNiArMTQ1NTQsNyBAQAogCQkJCTA3MjIxQjc2MTdDRUMzMjcwMDg0OEU1
MSAvKiBSVENJY2VDYW5kaWRhdGVFdmVudC5pZGwgKi8sCiAJCQkJMDdBQjk5NjcxOERBM0MwMTAw
MTg3NzFFIC8qIFJUQ0ljZVNlcnZlci5oICovLAogCQkJCTA3QUI5OTY4MThEQTNDMDEwMDE4Nzcx
RSAvKiBSVENJY2VTZXJ2ZXIuaWRsICovLAorCQkJCTVFNjY1MzA5MURBNDM3QkYwMEZERDg0QyAv
KiBSVENJY2VUcmFuc3BvcnQuaCAqLywKIAkJCQkwNzM3OTREQjE5RUUyQzUyMDBFNUEwNDUgLyog
UlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmNwcCAqLywKIAkJCQkwNzM3OTREQzE5RUUyQzUyMDBFNUEw
NDUgLyogUlRDT2ZmZXJBbnN3ZXJPcHRpb25zLmggKi8sCiAJCQkJMDcyMjFCNzcxN0NFQzMyNzAw
ODQ4RTUxIC8qIFJUQ1BlZXJDb25uZWN0aW9uLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhRW5kcG9pbnQuaAppbmRleCBkNDFkMjJhLi4z
MjIxYmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYUVuZHBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFFbmRwb2ludC5oCkBAIC00OCw4ICs0OCw4IEBAIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U7CiBjbGFzcyBNZWRpYUVuZHBvaW50Q2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZ290RHRsc0ZpbmdlcnByaW50KGNvbnN0IFN0cmluZyYgZmluZ2VycHJpbnQsIGNvbnN0IFN0
cmluZyYgZmluZ2VycHJpbnRGdW5jdGlvbikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBnb3RJY2VD
YW5kaWRhdGUodW5zaWduZWQgbWRlc2NJbmRleCwgUmVmUHRyPEljZUNhbmRpZGF0ZT4mJikgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBkb25lR2F0aGVyaW5nQ2FuZGlkYXRlcyh1bnNpZ25lZCBtZGVz
Y0luZGV4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdvdEljZUNhbmRpZGF0ZShjb25zdCBTdHJp
bmcmIG1pZCwgUmVmUHRyPEljZUNhbmRpZGF0ZT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
b25lR2F0aGVyaW5nQ2FuZGlkYXRlcyhjb25zdCBTdHJpbmcmIG1pZCkgPSAwOwogCiAgICAgdmly
dHVhbCB+TWVkaWFFbmRwb2ludENsaWVudCgpIHsgfQogfTsKQEAgLTg1LDYgKzg1LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCByZXBsYWNlU2VuZFNvdXJjZShSZWFsdGltZU1lZGlhU291
cmNlJiwgY29uc3QgU3RyaW5nJiBtaWQpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkg
PSAwOworCisgICAgdmlydHVhbCB2b2lkIGVtdWxhdGVQbGF0Zm9ybUV2ZW50KGNvbnN0IFN0cmlu
ZyYpIHsgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uU3RhdGVzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvblN0YXRlcy5o
CmluZGV4IGJlZmJlN2QuLjhhNzEyNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uU3RhdGVzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25TdGF0ZXMuaApAQCAtNjEsNiAr
NjEsMTYgQEAgZW51bSBjbGFzcyBJY2VHYXRoZXJpbmdTdGF0ZSB7CiAgICAgQ29tcGxldGUgPSAz
CiB9OwogCitlbnVtIGNsYXNzIEljZVRyYW5zcG9ydFN0YXRlIHsKKyAgICBOZXcgPSAxLAorICAg
IENoZWNraW5nID0gMiwKKyAgICBDb25uZWN0ZWQgPSAzLAorICAgIENvbXBsZXRlZCA9IDQsCisg
ICAgRmFpbGVkID0gNSwKKyAgICBEaXNjb25uZWN0ZWQgPSA2LAorICAgIENsb3NlZCA9IDcKK307
CisKIGVudW0gY2xhc3MgSWNlVHJhbnNwb3J0UG9saWN5IHsKICAgICBSZWxheSwKICAgICBBbGwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9p
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5j
cHAKaW5kZXggMTc3NjU0Yy4uZDFhY2M5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpZiBF
TkFCTEUoV0VCX1JUQykKICNpbmNsdWRlICJNb2NrTWVkaWFFbmRwb2ludC5oIgogCisjaW5jbHVk
ZSAiTWVkaWFFbmRwb2ludFNlc3Npb25Db25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQ
YXlsb2FkLmgiCiAjaW5jbHVkZSAiTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaCIKICNpbmNsdWRl
ICJNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oIgpAQCAtNTAsNiArNTEsNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8TWVkaWFFbmRwb2ludD4gTW9ja01lZGlhRW5kcG9pbnQ6OmNyZWF0ZShNZWRpYUVuZHBv
aW50Q2xpZW50JiBjbAogCiBNb2NrTWVkaWFFbmRwb2ludDo6TW9ja01lZGlhRW5kcG9pbnQoTWVk
aWFFbmRwb2ludENsaWVudCYgY2xpZW50KQogICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwg
bV9pY2VDYW5kaWRhdGVUaW1lcigqdGhpcywgJk1vY2tNZWRpYUVuZHBvaW50OjppY2VDYW5kaWRh
dGVUaW1lckZpcmVkKQogewogfQogCkBAIC0xNTgsOSArMTYwLDEzIEBAIE1lZGlhUGF5bG9hZFZl
Y3RvciBNb2NrTWVkaWFFbmRwb2ludDo6ZmlsdGVyUGF5bG9hZHMoY29uc3QgTWVkaWFQYXlsb2Fk
VmVjdG9yJiByCiAKIE1lZGlhRW5kcG9pbnQ6OlVwZGF0ZVJlc3VsdCBNb2NrTWVkaWFFbmRwb2lu
dDo6dXBkYXRlUmVjZWl2ZUNvbmZpZ3VyYXRpb24oTWVkaWFFbmRwb2ludFNlc3Npb25Db25maWd1
cmF0aW9uKiBjb25maWd1cmF0aW9uLCBib29sIGlzSW5pdGlhdG9yKQogewotICAgIFVOVVNFRF9Q
QVJBTShjb25maWd1cmF0aW9uKTsKICAgICBVTlVTRURfUEFSQU0oaXNJbml0aWF0b3IpOwogCisg
ICAgVmVjdG9yPFN0cmluZz4gbWlkczsKKyAgICBmb3IgKGNvbnN0IFJlZlB0cjxQZWVyTWVkaWFE
ZXNjcmlwdGlvbj4mIG1lZGlhRGVzY3JpcHRpb24gOiBjb25maWd1cmF0aW9uLT5tZWRpYURlc2Ny
aXB0aW9ucygpKQorICAgICAgICBtaWRzLmFwcGVuZChtZWRpYURlc2NyaXB0aW9uLT5taWQoKSk7
CisgICAgbV9taWRzLnN3YXAobWlkcyk7CisKICAgICByZXR1cm4gVXBkYXRlUmVzdWx0OjpTdWNj
ZXNzOwogfQogCkBAIC0yMDAsNiArMjA2LDY1IEBAIHZvaWQgTW9ja01lZGlhRW5kcG9pbnQ6OnN0
b3AoKQogewogfQogCit2b2lkIE1vY2tNZWRpYUVuZHBvaW50OjplbXVsYXRlUGxhdGZvcm1FdmVu
dChjb25zdCBTdHJpbmcmIGFjdGlvbikKK3sKKyAgICBpZiAoYWN0aW9uID09ICJkaXNwYXRjaC1m
YWtlLWljZS1jYW5kaWRhdGVzIikKKyAgICAgICAgZGlzcGF0Y2hGYWtlSWNlQ2FuZGlkYXRlcygp
OworfQorCit2b2lkIE1vY2tNZWRpYUVuZHBvaW50OjpkaXNwYXRjaEZha2VJY2VDYW5kaWRhdGVz
KCkKK3sKKyAgICBSZWZQdHI8SWNlQ2FuZGlkYXRlPiBpY2VDYW5kaWRhdGUgPSBJY2VDYW5kaWRh
dGU6OmNyZWF0ZSgpOworICAgIGljZUNhbmRpZGF0ZS0+c2V0VHlwZSgiaG9zdCIpOworICAgIGlj
ZUNhbmRpZGF0ZS0+c2V0Rm91bmRhdGlvbigiMSIpOworICAgIGljZUNhbmRpZGF0ZS0+c2V0Q29t
cG9uZW50SWQoMSk7CisgICAgaWNlQ2FuZGlkYXRlLT5zZXRQcmlvcml0eSgyMDEzMjY2NDMxKTsK
KyAgICBpY2VDYW5kaWRhdGUtPnNldEFkZHJlc3MoIjE5Mi4xNjguMC4xMDAiKTsKKyAgICBpY2VD
YW5kaWRhdGUtPnNldFBvcnQoMzg4MzgpOworICAgIGljZUNhbmRpZGF0ZS0+c2V0VHJhbnNwb3J0
KCJVRFAiKTsKKyAgICBtX2Zha2VJY2VDYW5kaWRhdGVzLmFwcGVuZChXVEZNb3ZlKGljZUNhbmRp
ZGF0ZSkpOworCisgICAgaWNlQ2FuZGlkYXRlID0gSWNlQ2FuZGlkYXRlOjpjcmVhdGUoKTsKKyAg
ICBpY2VDYW5kaWRhdGUtPnNldFR5cGUoImhvc3QiKTsKKyAgICBpY2VDYW5kaWRhdGUtPnNldEZv
dW5kYXRpb24oIjIiKTsKKyAgICBpY2VDYW5kaWRhdGUtPnNldENvbXBvbmVudElkKDEpOworICAg
IGljZUNhbmRpZGF0ZS0+c2V0UHJpb3JpdHkoMTAxOTIxNjM4Myk7CisgICAgaWNlQ2FuZGlkYXRl
LT5zZXRBZGRyZXNzKCIxOTIuMTY4LjAuMTAwIik7CisgICAgaWNlQ2FuZGlkYXRlLT5zZXRQb3J0
KDkpOworICAgIGljZUNhbmRpZGF0ZS0+c2V0VHJhbnNwb3J0KCJUQ1AiKTsKKyAgICBpY2VDYW5k
aWRhdGUtPnNldFRjcFR5cGUoImFjdGl2ZSIpOworICAgIG1fZmFrZUljZUNhbmRpZGF0ZXMuYXBw
ZW5kKFdURk1vdmUoaWNlQ2FuZGlkYXRlKSk7CisKKyAgICBpY2VDYW5kaWRhdGUgPSBJY2VDYW5k
aWRhdGU6OmNyZWF0ZSgpOworICAgIGljZUNhbmRpZGF0ZS0+c2V0VHlwZSgic3JmbHgiKTsKKyAg
ICBpY2VDYW5kaWRhdGUtPnNldEZvdW5kYXRpb24oIjMiKTsKKyAgICBpY2VDYW5kaWRhdGUtPnNl
dENvbXBvbmVudElkKDEpOworICAgIGljZUNhbmRpZGF0ZS0+c2V0UHJpb3JpdHkoMTY3NzcyMjEx
MSk7CisgICAgaWNlQ2FuZGlkYXRlLT5zZXRBZGRyZXNzKCIxNzIuMTguMC4xIik7CisgICAgaWNl
Q2FuZGlkYXRlLT5zZXRQb3J0KDQ3OTg5KTsKKyAgICBpY2VDYW5kaWRhdGUtPnNldFRyYW5zcG9y
dCgiVURQIik7CisgICAgaWNlQ2FuZGlkYXRlLT5zZXRSZWxhdGVkQWRkcmVzcygiMTkyLjE2OC4w
LjEwMCIpOworICAgIGljZUNhbmRpZGF0ZS0+c2V0UmVsYXRlZFBvcnQoNDc5ODkpOworICAgIG1f
ZmFrZUljZUNhbmRpZGF0ZXMuYXBwZW5kKFdURk1vdmUoaWNlQ2FuZGlkYXRlKSk7CisKKyAgICAv
LyBSZXZlcnNlIG9yZGVyIHRvIHVzZSB0YWtlTGFzdCgpIHdoaWxlIGtlZXBpbmcgdGhlIGFib3Zl
IG9yZGVyCisgICAgbV9mYWtlSWNlQ2FuZGlkYXRlcy5yZXZlcnNlKCk7CisKKyAgICBtX2ljZUNh
bmRpZGF0ZVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9pZCBNb2NrTWVkaWFFbmRwb2lu
dDo6aWNlQ2FuZGlkYXRlVGltZXJGaXJlZCgpCit7CisgICAgaWYgKG1fbWlkcy5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9mYWtlSWNlQ2FuZGlkYXRlcy5pc0VtcHR5
KCkpIHsKKyAgICAgICAgbV9jbGllbnQuZ290SWNlQ2FuZGlkYXRlKG1fbWlkc1swXSwgbV9mYWtl
SWNlQ2FuZGlkYXRlcy50YWtlTGFzdCgpKTsKKyAgICAgICAgbV9pY2VDYW5kaWRhdGVUaW1lci5z
dGFydE9uZVNob3QoMCk7CisgICAgfSBlbHNlCisgICAgICAgIG1fY2xpZW50LmRvbmVHYXRoZXJp
bmdDYW5kaWRhdGVzKG1fbWlkc1swXSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrTWVkaWFFbmRwb2ludC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrTWVkaWFFbmRwb2ludC5oCmluZGV4IGExNWRiMzguLmVmZDE1YzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYUVuZHBvaW50LmgKQEAgLTM0
LDYgKzM0LDcgQEAKICNpZiBFTkFCTEUoV0VCX1JUQykKIAogI2luY2x1ZGUgIk1lZGlhRW5kcG9p
bnQuaCIKKyNpbmNsdWRlICJUaW1lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYx
LDggKzYyLDE3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogCisgICAg
dm9pZCBlbXVsYXRlUGxhdGZvcm1FdmVudChjb25zdCBTdHJpbmcmIGFjdGlvbikgb3ZlcnJpZGU7
CisKIHByaXZhdGU6CisgICAgdm9pZCBkaXNwYXRjaEZha2VJY2VDYW5kaWRhdGVzKCk7CisgICAg
dm9pZCBpY2VDYW5kaWRhdGVUaW1lckZpcmVkKCk7CisKICAgICBNZWRpYUVuZHBvaW50Q2xpZW50
JiBtX2NsaWVudDsKKyAgICBWZWN0b3I8U3RyaW5nPiBtX21pZHM7CisKKyAgICBWZWN0b3I8UmVm
UHRyPEljZUNhbmRpZGF0ZT4+IG1fZmFrZUljZUNhbmRpZGF0ZXM7CisgICAgVGltZXIgbV9pY2VD
YW5kaWRhdGVUaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBjYWQ2YjQwLi5iMGM4NWY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC05NTMsNiArOTUzLDExIEBAIHZvaWQgSW50ZXJuYWxz
OjplbmFibGVNb2NrUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKCkKIHsKICAgICBSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXI6OmNyZWF0ZSA9IFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlck1vY2s6OmNy
ZWF0ZTsKIH0KKwordm9pZCBJbnRlcm5hbHM6OmVtdWxhdGVSVENQZWVyQ29ubmVjdGlvblBsYXRm
b3JtRXZlbnQoUlRDUGVlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgYWN0
aW9uKQoreworICAgIGNvbm5lY3Rpb24uZW11bGF0ZVBsYXRmb3JtRXZlbnQoYWN0aW9uKTsKK30K
ICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCmluZGV4IDAwYzIxMzcuLmRkZTViZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaApAQCAtNjMsNiArNjMsNyBAQCBjbGFzcyBOb2RlTGlzdDsKIGNsYXNzIFBhZ2U7CiBjbGFz
cyBSYW5nZTsKIGNsYXNzIFJlbmRlcmVkRG9jdW1lbnRNYXJrZXI7CitjbGFzcyBSVENQZWVyQ29u
bmVjdGlvbjsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFNvdXJjZUJ1ZmZl
cjsKIGNsYXNzIFRpbWVSYW5nZXM7CkBAIC0zNjgsNiArMzY5LDcgQEAgcHVibGljOgogI2lmIEVO
QUJMRShXRUJfUlRDKQogICAgIHZvaWQgZW5hYmxlTW9ja01lZGlhRW5kcG9pbnQoKTsKICAgICB2
b2lkIGVuYWJsZU1vY2tSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIoKTsKKyAgICB2b2lkIGVtdWxh
dGVSVENQZWVyQ29ubmVjdGlvblBsYXRmb3JtRXZlbnQoUlRDUGVlckNvbm5lY3Rpb24mLCBjb25z
dCBTdHJpbmcmIGFjdGlvbik7CiAjZW5kaWYKIAogICAgIFN0cmluZyBnZXRJbWFnZVNvdXJjZVVS
TChFbGVtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggNzYxMDU3
OC4uZGJkOTI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNDA3LDYg
KzQwNyw3IEBAIGVudW0gVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB7CiAgICAgW0NvbmRp
dGlvbmFsPVdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVF0gdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFj
a1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKICAgICBbQ29uZGl0aW9uYWw9
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VULCBNYXlUaHJvd0xlZ2FjeUV4Y2VwdGlvbl0gdm9pZCBz
ZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKERPTVN0cmluZyBkZXZpY2VOYW1l
LCBET01TdHJpbmcgZGV2aWNlU3RhdGUpOwogICAgIFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU1d
IHZvaWQgc2V0TW9ja01lZGlhQ2FwdHVyZURldmljZXNFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7
CisgICAgW0NvbmRpdGlvbmFsPVdFQl9SVENdIHZvaWQgZW11bGF0ZVJUQ1BlZXJDb25uZWN0aW9u
UGxhdGZvcm1FdmVudChSVENQZWVyQ29ubmVjdGlvbiBjb25uZWN0aW9uLCBET01TdHJpbmcgYWN0
aW9uKTsKIAogICAgIFtDb25kaXRpb25hbD1WSURFT10gdm9pZCBzaW11bGF0ZVN5c3RlbVNsZWVw
KCk7CiAgICAgW0NvbmRpdGlvbmFsPVZJREVPXSB2b2lkIHNpbXVsYXRlU3lzdGVtV2FrZSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>