<?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>197990</bug_id>
          
          <creation_ts>2019-05-17 10:27:17 -0700</creation_ts>
          <short_desc>REGRESSION(r245401): Causing internal build failures (Requested by ShawnRoberts on #webkit).</short_desc>
          <delta_ts>2019-05-17 10:31:41 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>197397</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ggaren</cc>
    
    <cc>sroberts</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1537152</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-17 10:27:17 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/245401 broke the build:
Causing internal build failures (Requested by ShawnRoberts on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537154</commentid>
    <comment_count>1</comment_count>
      <attachid>370126</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-17 10:27:27 -0700</bug_when>
    <thetext>Created attachment 370126
ROLLOUT of r245401

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537157</commentid>
    <comment_count>2</comment_count>
      <attachid>370126</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-17 10:30:28 -0700</bug_when>
    <thetext>Comment on attachment 370126
ROLLOUT of r245401

Clearing flags on attachment: 370126

Committed r245470: &lt;https://trac.webkit.org/changeset/245470&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537158</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-17 10:30:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1537159</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-17 10:31:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/50897306&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370126</attachid>
            <date>2019-05-17 10:27:27 -0700</date>
            <delta_ts>2019-05-17 10:30:28 -0700</delta_ts>
            <desc>ROLLOUT of r245401</desc>
            <filename>bug-197990-20190517102726.patch</filename>
            <type>text/plain</type>
            <size>64847</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NDY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVmOWE3Mzk1NWExYmU0
ODIyZDdlMzM1NzY5YWI0MGMwYjEyNDUwNy4uNDIzNGIxNzYyYjc1MmI0NjFiMWZkNGM1MzExM2Y4
YTQ1YWZlMzhkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTA1LTE3ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjQ1NDAxLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk3OTkwCisKKyAgICAgICAgQ2F1c2luZyBpbnRlcm5hbCBidWlsZCBm
YWlsdXJlcyAoUmVxdWVzdGVkIGJ5IFNoYXduUm9iZXJ0cyBvbgorICAgICAgICAjd2Via2l0KS4K
KworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIkFkZCBTUEkgdG8gc2V0
IGEgbGlzdCBvZiBob3N0cyB0byB3aGljaCB0byBzZW5kIGN1c3RvbSBoZWFkZXIKKyAgICAgICAg
ZmllbGRzIGNyb3NzLW9yaWdpbiIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5NzM5NworICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvMjQ1NDAxCisKIDIwMTktMDUtMTYgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxs
YXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBTVkdFbGVtZW50IHNob3VsZCBkZXRhY2ggaXRzZWxm
IGZyb20gYWxsIGl0cyBwcm9wZXJ0aWVzIGJlZm9yZSBpdCBpcyBkZWxldGVkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDRmYzgyMGQ2MmIyYzdmOWFiNjE2NzUxYmQ0NTJlYjdkMmI2OTc2ZTMuLjU3ZDAwZjRlYzg1MzA2
OTViMjE2MjJhNTM5YjA5NTYxMTMxNzczMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTktMDUtMTcgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDU0MDEuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc5OTAKKworICAgICAgICBDYXVzaW5nIGlu
dGVybmFsIGJ1aWxkIGZhaWx1cmVzIChSZXF1ZXN0ZWQgYnkgU2hhd25Sb2JlcnRzIG9uCisgICAg
ICAgICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAi
QWRkIFNQSSB0byBzZXQgYSBsaXN0IG9mIGhvc3RzIHRvIHdoaWNoIHRvIHNlbmQgY3VzdG9tIGhl
YWRlcgorICAgICAgICBmaWVsZHMgY3Jvc3Mtb3JpZ2luIgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3Mzk3CisgICAgICAgIGh0dHBzOi8vdHJhYy53
ZWJraXQub3JnL2NoYW5nZXNldC8yNDU0MDEKKwogMjAxOS0wNS0xNyAgQ29tbWl0IFF1ZXVlICA8
Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjI0NTQxOC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDgzNDI3ZjAzNzVkZTFlNmQ4ZTdiZmRl
MWRkZTg4YTdlMDBhNjM3ZjcuLjgzZGJlYTYwNTcxZjE5MTBlOTQ2MjFlZDZiODhlMDc1ZGZlODRi
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNjU0LDcgKzY1NCw2IEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBsb2FkZXIvQ29va2llSmFyLmgKICAgICBsb2Fk
ZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5QcmVm
bGlnaHRSZXN1bHRDYWNoZS5oCi0gICAgbG9hZGVyL0N1c3RvbUhlYWRlckZpZWxkcy5oCiAgICAg
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmgKICAgICBsb2FkZXIvRG9jdW1lbnRXcml0ZXIuaAogICAg
IGxvYWRlci9FbXB0eUNsaWVudHMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAzNjc1ZTAwNGI4NjczZTlk
NjhiMWM2YmQ4ZDQ2OGEwZDRkNDEyNTdlLi43YzNmODljZGMxY2QxMjRjODEwY2U3MmU0NjI1Njhl
MjVjMjY3MTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTM2NCw3ICsxMzY0LDYgQEAgbG9hZGVyL0Nv
b2tpZUphci5jcHAKIGxvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCiBsb2FkZXIv
Q3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyLmNwcAogbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxp
Z2h0UmVzdWx0Q2FjaGUuY3BwCi1sb2FkZXIvQ3VzdG9tSGVhZGVyRmllbGRzLmNwcCBAbm8tdW5p
ZnkKIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVM
b2FkZXIuY3BwCiBsb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjY5Y2ZmMjMyMTI4Y2Ji
ZThlYTVjYzFkZWU4NDA3MGNiNmY4NzAxZS4uMTQwM2E2NjU0Mzk4MThkMTBiZjg0OTY1MGM1NzBk
YWRhMDAzNmVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTg3MiwxNCArMTg3MiwxMiBAQAogCQk1QzQzMDRCMDE5MUFDOTA4
MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVyZUxPRC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzQzMDRBRDE5MUFDOTA4MDAwRTJCQzAgLyogRVhU
U2hhZGVyVGV4dHVyZUxPRC5jcHAgKi87IH07CiAJCTVDNDMwNEIxMTkxQUM5MDgwMDBFMkJDMCAv
KiBFWFRTaGFkZXJUZXh0dXJlTE9ELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1QzQzMDRBRTE5MUFDOTA4MDAwRTJCQzAgLyogRVhUU2hhZGVyVGV4dHVy
ZUxPRC5oICovOyB9OwogCQk1QzQzMDRCNjE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFkZXJU
ZXh0dXJlTE9ELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QzQzMDRCNDE5MUFFRjQ2MDAwRTJCQzAgLyogSlNFWFRTaGFkZXJUZXh0dXJlTE9ELmggKi87
IH07Ci0JCTVDNUQyMzg1MjI3QTA2NTIwMDBCOUJEQSAvKiBDdXN0b21IZWFkZXJGaWVsZHMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNUQyMzgzMjI3
QTA2M0EwMDBCOUJEQSAvKiBDdXN0b21IZWFkZXJGaWVsZHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1QzdDODhEODFEMEYxRjRBMDA5RDJGNkQg
LyogU29ja2V0UHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDN0M4OEQ3MUQwRjFGMkIwMDlEMkY2RCAvKiBTb2NrZXRQcm92aWRlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDOUMyREI1
MjI0MUE2N0IwMDk5NkIwQiAvKiBDb250ZW50UnVsZUxpc3RSZXN1bHRzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzlDMkRCMzIyNDFBNjczMDA5OTZC
MEIgLyogQ29udGVudFJ1bGVMaXN0UmVzdWx0cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDOUVGMkYzMjFGMDYxOTAwMDNCREM1NiAvKiBTdG9y
YWdlU2Vzc2lvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1QzlFRjJGMjIxRjA2MTcxMDAzQkRDNTYgLyogU3RvcmFnZVNlc3Npb25Qcm92
aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTVDQTFERUM2MUY3MUYxQzcwMEU3MUJEMyAvKiBIVFRQSGVhZGVyRmllbGQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDQTFERUM0MUY3MUU2ODcwMEU3
MUJEMyAvKiBIVFRQSGVhZGVyRmllbGQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk1Q0IzN0ZGRjFDNjJEMkExMDBGMjAxODggLyogU2Nyb2xsQW5p
bWF0b3JNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1Q0IzN0ZGRDFDNjJEMjc4MDBGMjAxODggLyogU2Nyb2xsQW5pbWF0b3JNb2NrLmggKi87IH07
CiAJCTVDQkM4REFEMUFBQTMwMjIwMEUxQzgwMyAvKiBNZWRpYUFjY2Vzc2liaWxpdHlTb2Z0TGlu
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNCQzhE
QUIxQUFBMzAyMjAwRTFDODAzIC8qIE1lZGlhQWNjZXNzaWJpbGl0eVNvZnRMaW5rLmggKi87IH07
Ci0JCTVDQkQ1OTU5MjI4MEU5MjYwMDJCMjJBQSAvKiBDdXN0b21IZWFkZXJGaWVsZHMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM1RDIzODYyMjdB
MDc3QzAwMEI5QkRBIC8qIEN1c3RvbUhlYWRlckZpZWxkcy5jcHAgKi87IH07CiAJCTVDRDlGNTY2
MUFBMEY3M0MwMERBNDVGRiAvKiBERkFCeXRlY29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMzOTMwNUQxQUEwRjZBOTAwMjlDODE2IC8qIERGQUJ5
dGVjb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNUNEOUY1NjcxQUEwRjc0MjAwREE0NUZGIC8qIERGQUJ5dGVjb2RlQ29tcGlsZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMzkzMDVGMUFBMEY2
QTkwMDI5QzgxNiAvKiBERkFCeXRlY29kZUNvbXBpbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUNEOUY1NjgxQUEwRjc0NjAwREE0NUZGIC8q
IERGQUJ5dGVjb2RlSW50ZXJwcmV0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVDMzkzMDYxMUFBMEY2QTkwMDI5QzgxNiAvKiBERkFCeXRlY29kZUlu
dGVycHJldGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTg4MzQsOCArODgzMiw2IEBACiAJCTVDNTM4MUIxMUQ4N0Q0NTcwMEUyRUJFNiAvKiBV
UkxTZWFyY2hQYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVVJMU2Vh
cmNoUGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNTM4MUIzMUQ4N0Uw
ODEwMEUyRUJFNiAvKiBKU1VSTFNlYXJjaFBhcmFtcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1VSTFNlYXJjaFBhcmFtcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTVDNTM4MUI0MUQ4N0UwODEwMEUyRUJFNiAvKiBKU1VSTFNlYXJjaFBhcmFt
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1VSTFNlYXJjaFBhcmFtcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1QzVEMjM4MzIyN0EwNjNBMDAwQjlCREEg
LyogQ3VzdG9tSGVhZGVyRmllbGRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEN1c3RvbUhlYWRlckZpZWxkcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1QzVE
MjM4NjIyN0EwNzdDMDAwQjlCREEgLyogQ3VzdG9tSGVhZGVyRmllbGRzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1c3RvbUhlYWRlckZpZWxkcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNjY4RTY0MUU3QzZDMzUwMEQzMkIzQiAvKiBTb2Nr
ZXRTdHJlYW1IYW5kbGVJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNvY2tldFN0cmVhbUhhbmRsZUltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1QzY4OEFBMDFEMzgwNTA5MDAwQjU0RkEgLyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzY4OEFB
MjFEMzgxMjZGMDAwQjU0RkEgLyogU29ja2V0UHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU29ja2V0UHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjUwMTUsOCArMjUwMTEsNiBAQAogCQkJCTQxQUJFNjdBMUQwNTgwRDUw
MDZEODYyRCAvKiBDcm9zc09yaWdpblByZWZsaWdodENoZWNrZXIuaCAqLywKIAkJCQlFMUM0MTVE
RDBGNjU1RDdDMDA5MkQyRkIgLyogQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5jcHAg
Ki8sCiAJCQkJRTFDNDE1RDkwRjY1NUQ2RjAwOTJEMkZCIC8qIENyb3NzT3JpZ2luUHJlZmxpZ2h0
UmVzdWx0Q2FjaGUuaCAqLywKLQkJCQk1QzVEMjM4NjIyN0EwNzdDMDAwQjlCREEgLyogQ3VzdG9t
SGVhZGVyRmllbGRzLmNwcCAqLywKLQkJCQk1QzVEMjM4MzIyN0EwNjNBMDAwQjlCREEgLyogQ3Vz
dG9tSGVhZGVyRmllbGRzLmggKi8sCiAJCQkJOTNFMjI3REIwQUY1ODlBRDAwRDQ4MzI0IC8qIERv
Y3VtZW50TG9hZGVyLmNwcCAqLywKIAkJCQk2NTZEMzcxRTBBREJBNURFMDBBNDU1NEQgLyogRG9j
dW1lbnRMb2FkZXIuaCAqLywKIAkJCQkwQjkwNTYxNTBGMjU3OEJFMDA5NUZGNkEgLyogRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmNwcCAqLywKQEAgLTI4NjkxLDcgKzI4Njg1LDYgQEAKIAkJCQk5
M0Q0MzdBMDFENTdCMTlBMDBBQjg1RUEgLyogQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTlCRDRFOTFCMUM0NjJDRkMwMDUwNjVCQyAvKiBDdXN0b21FbGVt
ZW50UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTYyQ0QzMjVBMTE1N0U1N0MwMDYzQjBB
NyAvKiBDdXN0b21FdmVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNUM1RDIzODUyMjdBMDY1MjAw
MEI5QkRBIC8qIEN1c3RvbUhlYWRlckZpZWxkcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEIxRTEz
RTcyMTc5MEQ2NjAwNDJDRjk4IC8qIEN1c3RvbVBhaW50Q2FudmFzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0QjdBRTQ5MzIxNzdCNTZGMDBDNTk5NTkgLyogQ3VzdG9tUGFpbnRJbWFnZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQThDQjQxM0UwRTg2MzNGRDAwMzJDNEYwIC8qIERhc2hBcnJheS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zMjYxNiw3ICszMjYwOSw2IEBACiAJCQkJMDdBRkY0MjMxRUZCMTQ0
OTAwQjU0NUIzIC8qIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MubW0gaW4gU291cmNlcyAqLywK
IAkJCQk0NkM2OTZDQzFFNzIwNUZDMDA1OTc5MzcgLyogQ1BVTW9uaXRvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQUJBNzZDQTExRDIwRTUwMDA0QzIwMUMgLyogQ1NTUHJvcGVydHlOYW1lcy5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQk1Q0JENTk1OTIyODBFOTI2MDAyQjIyQUEgLyogQ3VzdG9t
SGVhZGVyRmllbGRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJFMjM0ODBDMThBOTg3MEIwMEU0
QjZFOCAvKiBEYXRhQ3VlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0NjNDRjY4MjIxMkZBNjgw
MDFBODU3NyAvKiBEYXRhRGV0ZWN0b3JzQ29yZVNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTU4QjQ1QkIyMEFEMDdERDAwOTkxMDI1IC8qIERhdGFMaXN0QnV0dG9uRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9DdXN0b21I
ZWFkZXJGaWVsZHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0N1c3RvbUhlYWRlckZpZWxk
cy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlZWU0Mzg1MjFhYjhkNzI3NWQ4
NTcwODRiMDI1ZWFiNDY4NzQxZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0N1c3RvbUhlYWRlckZpZWxkcy5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkN1c3RvbUhlYWRlckZpZWxkcy5oIgotCi0jaW5jbHVkZSAiSFRU
UEhlYWRlckZpZWxkLmgiCi0jaW5jbHVkZSAiUmVnaXN0cmFibGVEb21haW4uaCIKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1ib29sIEN1c3RvbUhlYWRlckZpZWxkczo6dGhpcmRQYXJ0eURvbWFp
bnNNYXRjaChjb25zdCBVUkwmIHVybCkgY29uc3QKLXsKLSAgICBpZiAodGhpcmRQYXJ0eURvbWFp
bnMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBhdXRvIHJlZ2lzdHJh
YmxlRG9tYWluTGVuZ3RoID0gUmVnaXN0cmFibGVEb21haW4odXJsKS5zdHJpbmcoKS5sZW5ndGgo
KTsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGRvbWFpbk9yUGF0dGVybiA6IHRoaXJkUGFydHlEb21h
aW5zKSB7Ci0gICAgICAgIGlmIChkb21haW5PclBhdHRlcm4gPT0gdXJsLmhvc3QoKSkKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAoZG9tYWluT3JQYXR0ZXJuLnN0YXJ0c1dp
dGgoIiouIikKLSAgICAgICAgICAgICYmIHVybC5ob3N0KCkuZW5kc1dpdGgoU3RyaW5nVmlldyhk
b21haW5PclBhdHRlcm4pLnN1YnN0cmluZygxKSkKLSAgICAgICAgICAgICYmIGRvbWFpbk9yUGF0
dGVybi5sZW5ndGgoKSA+IHJlZ2lzdHJhYmxlRG9tYWluTGVuZ3RoKQotICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3VzdG9tSGVhZGVyRmllbGRzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvQ3VzdG9tSGVhZGVyRmllbGRzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDY2MGZmMGEwMTZiMTk4NjMzYmJmNmRhYzQzOTQ2ZDg0M2EzZGE1NDguLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0N1c3RvbUhlYWRlckZpZWxkcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25j
ZQotCi0jaW5jbHVkZSAiSFRUUEhlYWRlckZpZWxkLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLXN0cnVjdCBXRUJDT1JFX0VYUE9SVCBDdXN0b21IZWFkZXJGaWVsZHMgewotICAgIFZlY3Rv
cjxIVFRQSGVhZGVyRmllbGQ+IGZpZWxkczsKLSAgICBWZWN0b3I8U3RyaW5nPiB0aGlyZFBhcnR5
RG9tYWluczsKLQotICAgIGJvb2wgdGhpcmRQYXJ0eURvbWFpbnNNYXRjaChjb25zdCBVUkwmKSBj
b25zdDsKLQotICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
KSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8Q3Vz
dG9tSGVhZGVyRmllbGRzPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4KLXZvaWQgQ3VzdG9tSGVhZGVyRmllbGRzOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKLXsKLSAgICBlbmNvZGVyIDw8IGZpZWxkczsKLSAgICBlbmNvZGVyIDw8IHRoaXJk
UGFydHlEb21haW5zOwotfQotCi10ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgotT3B0aW9uYWw8Q3Vz
dG9tSGVhZGVyRmllbGRzPiBDdXN0b21IZWFkZXJGaWVsZHM6OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQotewotICAgIE9wdGlvbmFsPFZlY3RvcjxIVFRQSGVhZGVyRmllbGQ+PiBmaWVsZHM7Ci0g
ICAgZGVjb2RlciA+PiBmaWVsZHM7Ci0gICAgaWYgKCFmaWVsZHMpCi0gICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgT3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IHRoaXJkUGFy
dHlEb21haW5zOwotICAgIGRlY29kZXIgPj4gdGhpcmRQYXJ0eURvbWFpbnM7Ci0gICAgaWYgKCF0
aGlyZFBhcnR5RG9tYWlucykKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAg
ICByZXR1cm4ge3sgV1RGTW92ZSgqZmllbGRzKSwgV1RGTW92ZSgqdGhpcmRQYXJ0eURvbWFpbnMp
IH19OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcAppbmRleCAxMGNmZGQ5MzM4YzQ5MDAyZjYzMDkzNjRlYTI4NDJmMTNh
ODI3Y2M3Li5mY2VlYTFiZWQ5MmIwZWE1OTZiMjgyNDY3MzhmMjM4YzRmM2I4NzE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTM4LDcgKzM4LDYgQEAKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNvbnRlbnRFeHRlbnNp
b25FcnJvci5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgotI2luY2x1ZGUg
IkN1c3RvbUhlYWRlckZpZWxkcy5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRQYXJzZXIuaCIKQEAgLTU0LDYgKzUzLDcg
QEAKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVFRQSGVhZGVy
RmllbGQuaCIKICNpbmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIKICNpbmNsdWRlICJIaXN0b3J5
SXRlbS5oIgogI2luY2x1ZGUgIkhpc3RvcnlDb250cm9sbGVyLmgiCkBAIC0xMzIyLDYgKzEzMjIs
MTEgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6bm90aWZ5RmluaXNoZWRMb2FkaW5nQXBwbGljYXRp
b25NYW5pZmVzdCh1aW50NjRfdCBjYWxsYmFja0kKIH0KICNlbmRpZgogCit2b2lkIERvY3VtZW50
TG9hZGVyOjpzZXRDdXN0b21IZWFkZXJGaWVsZHMoVmVjdG9yPEhUVFBIZWFkZXJGaWVsZD4mJiBm
aWVsZHMpCit7CisgICAgbV9jdXN0b21IZWFkZXJGaWVsZHMgPSBXVEZNb3ZlKGZpZWxkcyk7Cit9
CisKIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzTG9hZGluZ0luQVBJU2Vuc2UoKSBjb25zdAogewog
ICAgIC8vIE9uY2UgYSBmcmFtZSBoYXMgbG9hZGVkLCB3ZSBubyBsb25nZXIgbmVlZCB0byBjb25z
aWRlciBzdWJyZXNvdXJjZXMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmlu
ZGV4IDgxNDQzODI2ZDVjNjVlMDIyYTQzODAzMDBkMThmYTRjNjkwMmYzM2IuLmIxNDQ1ZTdiYjky
YzViNjA2NGZiZTcxZjU2N2E0ODkyYzRlYjYxOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5oCkBAIC03NiwxMCArNzYsMTAgQEAgY2xhc3MgQXJjaGl2ZVJlc291cmNlQ29s
bGVjdGlvbjsKIGNsYXNzIENhY2hlZFJhd1Jlc291cmNlOwogY2xhc3MgQ2FjaGVkUmVzb3VyY2VM
b2FkZXI7CiBjbGFzcyBDb250ZW50RmlsdGVyOwotc3RydWN0IEN1c3RvbUhlYWRlckZpZWxkczsK
IGNsYXNzIEZvcm1TdGF0ZTsKIGNsYXNzIEZyYW1lOwogY2xhc3MgRnJhbWVMb2FkZXI7CitjbGFz
cyBIVFRQSGVhZGVyRmllbGQ7CiBjbGFzcyBJY29uTG9hZGVyOwogY2xhc3MgUGFnZTsKIGNsYXNz
IFByZXZpZXdDb252ZXJ0ZXI7CkBAIC0zNzEsOCArMzcxLDggQEAgcHVibGljOgogICAgIHZvaWQg
ZmluaXNoZWRMb2FkaW5nQXBwbGljYXRpb25NYW5pZmVzdChBcHBsaWNhdGlvbk1hbmlmZXN0TG9h
ZGVyJik7CiAjZW5kaWYKIAotICAgIHZvaWQgc2V0Q3VzdG9tSGVhZGVyRmllbGRzKFZlY3RvcjxD
dXN0b21IZWFkZXJGaWVsZHM+JiYgZmllbGRzKSB7IG1fY3VzdG9tSGVhZGVyRmllbGRzID0gV1RG
TW92ZShmaWVsZHMpOyB9Ci0gICAgY29uc3QgVmVjdG9yPEN1c3RvbUhlYWRlckZpZWxkcz4mIGN1
c3RvbUhlYWRlckZpZWxkcygpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tSGVhZGVyRmllbGRzOyB9
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDdXN0b21IZWFkZXJGaWVsZHMoVmVjdG9yPEhU
VFBIZWFkZXJGaWVsZD4mJiBmaWVsZHMpOworICAgIGNvbnN0IFZlY3RvcjxIVFRQSGVhZGVyRmll
bGQ+JiBjdXN0b21IZWFkZXJGaWVsZHMoKSB7IHJldHVybiBtX2N1c3RvbUhlYWRlckZpZWxkczsg
fQogCiAgICAgdm9pZCBzZXRBbGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZyYW1lKGJvb2wgYWxsb3dz
V2ViQXJjaGl2ZUZvck1haW5GcmFtZSkgeyBtX2FsbG93c1dlYkFyY2hpdmVGb3JNYWluRnJhbWUg
PSBhbGxvd3NXZWJBcmNoaXZlRm9yTWFpbkZyYW1lOyB9CiAgICAgYm9vbCBhbGxvd3NXZWJBcmNo
aXZlRm9yTWFpbkZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NXZWJBcmNoaXZlRm9yTWFp
bkZyYW1lOyB9CkBAIC01NjQsNyArNTY0LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPHN0ZDo6
dW5pcXVlX3B0cjxBcHBsaWNhdGlvbk1hbmlmZXN0TG9hZGVyPiwgdWludDY0X3Q+IG1fYXBwbGlj
YXRpb25NYW5pZmVzdExvYWRlcnM7CiAjZW5kaWYKIAotICAgIFZlY3RvcjxDdXN0b21IZWFkZXJG
aWVsZHM+IG1fY3VzdG9tSGVhZGVyRmllbGRzOworICAgIFZlY3RvcjxIVFRQSGVhZGVyRmllbGQ+
IG1fY3VzdG9tSGVhZGVyRmllbGRzOwogICAgIAogICAgIGJvb2wgbV9zdWJyZXNvdXJjZUxvYWRl
cnNBcmVQYWdlQ2FjaGVBY2NlcHRhYmxlIHsgZmFsc2UgfTsKICAgICBTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5IG1fc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSB7IFNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93IH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCA4NDNhOWQx
ZjlkNmM4NWYxMDAwYTJjNDBmMTk2NGI0N2EyZWIxYzdhLi41YjBkNGUwYTEyMzRkOWIyYWNmMTll
YjQwYmVhMTU5NTE3NTBjZGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQzLDcgKzQzLDYgQEAKICNpbmNsdWRl
ICJDb250ZW50UnVsZUxpc3RSZXN1bHRzLmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9s
aWN5LmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCi0jaW5jbHVkZSAi
Q3VzdG9tSGVhZGVyRmllbGRzLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAi
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0tl
eXMuaCIKQEAgLTg1OSwxMSArODU4LDkgQEAgUmVzb3VyY2VFcnJvck9yPENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFJlc291cmNlPj4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXUKICAgICAg
ICAgICAgIHNhbWVPcmlnaW5SZXF1ZXN0ID0gZG9jdW1lbnQoKS0+dG9wRG9jdW1lbnQoKS5zZWN1
cml0eU9yaWdpbigpLmlzU2FtZVNjaGVtZUhvc3RQb3J0KHJlcXVlc3RlZE9yaWdpbi5nZXQoKSkK
ICAgICAgICAgICAgICAgICAmJiBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLmlzU2FtZVNj
aGVtZUhvc3RQb3J0KHJlcXVlc3RlZE9yaWdpbi5nZXQoKSk7CiAgICAgICAgIH0KLSAgICAgICAg
Zm9yIChhdXRvJiBmaWVsZHMgOiBtX2RvY3VtZW50TG9hZGVyLT5jdXN0b21IZWFkZXJGaWVsZHMo
KSkgewotICAgICAgICAgICAgaWYgKHNhbWVPcmlnaW5SZXF1ZXN0IHx8IGZpZWxkcy50aGlyZFBh
cnR5RG9tYWluc01hdGNoKHVybCkpIHsKLSAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGZpZWxk
IDogZmllbGRzLmZpZWxkcykKLSAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5yZXNvdXJjZVJl
cXVlc3QoKS5zZXRIVFRQSGVhZGVyRmllbGQoZmllbGQubmFtZSgpLCBmaWVsZC52YWx1ZSgpKTsK
LSAgICAgICAgICAgIH0KKyAgICAgICAgaWYgKHNhbWVPcmlnaW5SZXF1ZXN0KSB7CisgICAgICAg
ICAgICBmb3IgKGF1dG8mIGZpZWxkIDogbV9kb2N1bWVudExvYWRlci0+Y3VzdG9tSGVhZGVyRmll
bGRzKCkpCisgICAgICAgICAgICAgICAgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQ
SGVhZGVyRmllbGQoZmllbGQubmFtZSgpLCBmaWVsZC52YWx1ZSgpKTsKICAgICAgICAgfQogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCmluZGV4IGRlMjA4YzRiZGQwMTIz
MGU2ZjU5OGJlYTk5ZmE3YTRhMTJkMGUwZjkuLjJhZTg1ZmNlYTBlYjI2MzVmMzUzNWJmNDQ2ZTQ3
NDJkZjEzZTFlYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKQEAgLTExMSw3
ICsxMTEsNiBAQCBwdWJsaWM6CiAgICAgICAgIENvbnRlbnRSdWxlTGlzdFN0b3JlLAogICAgICAg
ICBDb250ZXh0TWVudUxpc3RlbmVyLAogICAgICAgICBDb29raWVNYW5hZ2VyLAotICAgICAgICBD
dXN0b21IZWFkZXJGaWVsZHMsCiAgICAgICAgIEludGVybmFsRGVidWdGZWF0dXJlLAogICAgICAg
ICBEb3dubG9hZCwKICAgICAgICAgRXhwZXJpbWVudGFsRmVhdHVyZSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbSBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL0FQSU9iamVjdC5tbQppbmRleCBlZTk4Y2EzODQ1M2NlZTIyYjA5NjM4N2NhMjBl
OGZhNjRjNTkwMTA2Li40NTdmZDBjOTg4NjQ3MDZlZjk0MTQ0OWUwOTIzODhjMTRmN2ZkMDFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0KKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tCkBAIC03MCw3ICs3MCw2IEBA
CiAjaW1wb3J0ICJfV0tBdHRhY2htZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0F1dG9tYXRp
b25TZXNzaW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0NvbnRlbnRSdWxlTGlzdEFjdGlvbklu
dGVybmFsLmgiCi0jaW1wb3J0ICJfV0tDdXN0b21IZWFkZXJGaWVsZHNJbnRlcm5hbC5oIgogI2lt
cG9ydCAiX1dLRG93bmxvYWRJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLRXhwZXJpbWVudGFsRmVh
dHVyZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZUludGVybmFsLmgiCkBAIC0z
MTMsMTAgKzMxMiw2IEBAIHZvaWQqIE9iamVjdDo6bmV3T2JqZWN0KHNpemVfdCBzaXplLCBUeXBl
IHR5cGUpCiAgICAgICAgIHdyYXBwZXIgPSBbV0tDb250ZW50UnVsZUxpc3RTdG9yZSBhbGxvY107
CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBUeXBlOjpDdXN0b21IZWFkZXJGaWVsZHM6Ci0g
ICAgICAgIHdyYXBwZXIgPSBbX1dLQ3VzdG9tSGVhZGVyRmllbGRzIGFsbG9jXTsKLSAgICAgICAg
YnJlYWs7Ci0KICAgICBjYXNlIFR5cGU6OlVzZXJDb250ZW50V29ybGQ6CiAgICAgICAgIHdyYXBw
ZXIgPSBbX1dLVXNlckNvbnRlbnRXb3JsZCBhbGxvY107CiAgICAgICAgIGJyZWFrOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0YS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNpZXNEYXRhLmNwcAppbmRleCBmNTM3NzZhOTEx
NDQzNTc0ZWVjYTU3M2RjM2FiZjYyOTU4MTkxYmQ5Li41YTU0ODYwMDY1ZTEyODY0M2U4MjhlMjUy
ZjJkMGJhOWNkYjg1MjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRl
UG9saWNpZXNEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9saWNp
ZXNEYXRhLmNwcApAQCAtMjgsNyArMjgsNiBAQAogCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9DdXN0b21IZWFk
ZXJGaWVsZHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgpAQCAtNzgsNyAr
NzcsNyBAQCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiBXZWJzaXRlUG9saWNpZXNEYXRh
OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogICAgIGlmICghYWxsb3dlZEF1dG9wbGF5
UXVpcmtzKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIAotICAgIE9wdGlvbmFs
PFZlY3RvcjxXZWJDb3JlOjpDdXN0b21IZWFkZXJGaWVsZHM+PiBjdXN0b21IZWFkZXJGaWVsZHM7
CisgICAgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkhUVFBIZWFkZXJGaWVsZD4+IGN1c3RvbUhl
YWRlckZpZWxkczsKICAgICBkZWNvZGVyID4+IGN1c3RvbUhlYWRlckZpZWxkczsKICAgICBpZiAo
IWN1c3RvbUhlYWRlckZpZWxkcykKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVQb2xpY2llc0RhdGEuaAppbmRleCAwNDBiZjA2MzNlMmQ3
MTQ2MDkzNzU1NTkzYWZmZWYwYWMyMjFiZTBiLi42YTAyZmNhOGUxMDU2MGFjZGFjNmY3YTViYmYz
NGQ5MTkwYWZkOTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlUG9s
aWNpZXNEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZVBvbGljaWVzRGF0
YS5oCkBAIC0zMiw4ICszMiw4IEBACiAjaW5jbHVkZSAiV2Vic2l0ZU1ldGFWaWV3cG9ydFBvbGlj
eS5oIgogI2luY2x1ZGUgIldlYnNpdGVQb3BVcFBvbGljeS5oIgogI2luY2x1ZGUgIldlYnNpdGVT
aW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9D
dXN0b21IZWFkZXJGaWVsZHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBIZWFkZXJG
aWVsZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBA
IC01Niw3ICs1Niw3IEBAIHN0cnVjdCBXZWJzaXRlUG9saWNpZXNEYXRhIHsKICNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQogICAgIFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rp
b25QZXJtaXNzaW9uU3RhdGUgZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZTsK
ICNlbmRpZgotICAgIFZlY3RvcjxXZWJDb3JlOjpDdXN0b21IZWFkZXJGaWVsZHM+IGN1c3RvbUhl
YWRlckZpZWxkczsKKyAgICBWZWN0b3I8V2ViQ29yZTo6SFRUUEhlYWRlckZpZWxkPiBjdXN0b21I
ZWFkZXJGaWVsZHM7CiAgICAgV2Vic2l0ZVBvcFVwUG9saWN5IHBvcFVwUG9saWN5IHsgV2Vic2l0
ZVBvcFVwUG9saWN5OjpEZWZhdWx0IH07CiAgICAgT3B0aW9uYWw8V2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnM+IHdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogICAgIFN0cmluZyBjdXN0b21V
c2VyQWdlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZDRhNzcyM2M1ZjllOWJjMGQyMGFm
Mjg5ZThkZjdkODZlY2Q4Y2UyNi4uYjgxMDg4ZWYxMzM0NmZmYzg0NjIyYzIwM2ZjZDQ0NDBmODIw
NjViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMjQyLDcgKzI0Miw2IEBAIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb24ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS0NvbnRlbnRSdWxlTGlzdEFjdGlvbi5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tDb250
ZXh0TWVudUVsZW1lbnRJbmZvLm1tCi1VSVByb2Nlc3MvQVBJL0NvY29hL19XS0N1c3RvbUhlYWRl
ckZpZWxkcy5tbSBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQubW0K
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbQogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tFcnJvclJlY292ZXJ5QXR0ZW1wdGluZy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSUN1c3RvbUhlYWRlckZpZWxkcy5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSUN1c3RvbUhlYWRlckZpZWxkcy5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAxYzRjMmNkODZiODYzOGM4NWMxNTA2ZmNhYmVlNjY3MTkzZmUyYjM1Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElDdXN0b21IZWFkZXJGaWVsZHMuaAorKysgL2Rldi9udWxsCkBA
IC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkFQ
SU9iamVjdC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ3VzdG9tSGVhZGVyRmllbGRzLmg+Ci0KLW5h
bWVzcGFjZSBBUEkgewotCi1jbGFzcyBDdXN0b21IZWFkZXJGaWVsZHMgZmluYWwgOiBwdWJsaWMg
T2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OkN1c3RvbUhlYWRlckZpZWxkcz4gewotcHVibGljOgot
ICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IHN0YXRpYyBSZWY8Q3VzdG9tSGVhZGVyRmll
bGRzPiBjcmVhdGUoQXJncyYmLi4uIGFyZ3MpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBDdXN0b21IZWFkZXJGaWVsZHMoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSk7
Ci0gICAgfQotCi0gICAgQ3VzdG9tSGVhZGVyRmllbGRzKCkgPSBkZWZhdWx0OwotCi0gICAgY29u
c3QgVmVjdG9yPFdlYkNvcmU6OkhUVFBIZWFkZXJGaWVsZD4mIGZpZWxkcygpIGNvbnN0IHsgcmV0
dXJuIG1fZmllbGRzLmZpZWxkczsgfQotICAgIHZvaWQgc2V0RmllbGRzKFZlY3RvcjxXZWJDb3Jl
OjpIVFRQSGVhZGVyRmllbGQ+JiYgZmllbGRzKSB7IG1fZmllbGRzLmZpZWxkcyA9IFdURk1vdmUo
ZmllbGRzKTsgfQotCi0gICAgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiB0aGlyZFBhcnR5RG9t
YWlucygpIGNvbnN0IHsgcmV0dXJuIG1fZmllbGRzLnRoaXJkUGFydHlEb21haW5zOyB9Ci0gICAg
dm9pZCBzZXRUaGlyZFBhcnR5RG9tYWlucyhWZWN0b3I8V1RGOjpTdHJpbmc+JiYgZG9tYWlucykg
eyBtX2ZpZWxkcy50aGlyZFBhcnR5RG9tYWlucyA9IFdURk1vdmUoZG9tYWlucyk7IH0KLQotICAg
IGNvbnN0IFdlYkNvcmU6OkN1c3RvbUhlYWRlckZpZWxkcyYgY29yZUZpZWxkcygpIGNvbnN0IHsg
cmV0dXJuIG1fZmllbGRzOyB9Ci0KLXByaXZhdGU6Ci0gICAgQ3VzdG9tSGVhZGVyRmllbGRzKGNv
bnN0IFdlYkNvcmU6OkN1c3RvbUhlYWRlckZpZWxkcyYgZmllbGRzKQotICAgICAgICA6IG1fZmll
bGRzKGZpZWxkcykgeyB9Ci0KLSAgICBXZWJDb3JlOjpDdXN0b21IZWFkZXJGaWVsZHMgbV9maWVs
ZHM7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlUG9saWNpZXMuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5jcHAKaW5kZXggNWNmZWIwOGI5ZDJhNGZhYTZl
NzgwZGM2YjVlOTc1N2RiMzRlZDg4Mi4uOTllODMwY2U4ZDRkNjEzY2Y5ZGE4NTBiMjFjYTgxMjgx
OTgyMzY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNp
dGVQb2xpY2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNp
dGVQb2xpY2llcy5jcHAKQEAgLTMzLDExICszMywxMCBAQCBuYW1lc3BhY2UgQVBJIHsKIAogV2Vi
c2l0ZVBvbGljaWVzOjpXZWJzaXRlUG9saWNpZXMoKSA9IGRlZmF1bHQ7CiAKLVdlYnNpdGVQb2xp
Y2llczo6V2Vic2l0ZVBvbGljaWVzKGJvb2wgY29udGVudEJsb2NrZXJzRW5hYmxlZCwgT3B0aW9u
U2V0PFdlYktpdDo6V2Vic2l0ZUF1dG9wbGF5UXVpcms+IGFsbG93ZWRBdXRvcGxheVF1aXJrcywg
V2ViS2l0OjpXZWJzaXRlQXV0b3BsYXlQb2xpY3kgYXV0b3BsYXlQb2xpY3ksIFZlY3RvcjxXZWJD
b3JlOjpIVFRQSGVhZGVyRmllbGQ+JiYgbGVnYWN5Q3VzdG9tSGVhZGVyRmllbGRzLCBWZWN0b3I8
V2ViQ29yZTo6Q3VzdG9tSGVhZGVyRmllbGRzPiYmIGN1c3RvbUhlYWRlckZpZWxkcywgV2ViS2l0
OjpXZWJzaXRlUG9wVXBQb2xpY3kgcG9wVXBQb2xpY3ksIFJlZlB0cjxXZWJzaXRlRGF0YVN0b3Jl
PiYmIHdlYnNpdGVEYXRhU3RvcmUpCitXZWJzaXRlUG9saWNpZXM6OldlYnNpdGVQb2xpY2llcyhi
b29sIGNvbnRlbnRCbG9ja2Vyc0VuYWJsZWQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVBdXRv
cGxheVF1aXJrPiBhbGxvd2VkQXV0b3BsYXlRdWlya3MsIFdlYktpdDo6V2Vic2l0ZUF1dG9wbGF5
UG9saWN5IGF1dG9wbGF5UG9saWN5LCBWZWN0b3I8V2ViQ29yZTo6SFRUUEhlYWRlckZpZWxkPiYm
IGN1c3RvbUhlYWRlckZpZWxkcywgV2ViS2l0OjpXZWJzaXRlUG9wVXBQb2xpY3kgcG9wVXBQb2xp
Y3ksIFJlZlB0cjxXZWJzaXRlRGF0YVN0b3JlPiYmIHdlYnNpdGVEYXRhU3RvcmUpCiAgICAgOiBt
X2NvbnRlbnRCbG9ja2Vyc0VuYWJsZWQoY29udGVudEJsb2NrZXJzRW5hYmxlZCkKICAgICAsIG1f
YWxsb3dlZEF1dG9wbGF5UXVpcmtzKGFsbG93ZWRBdXRvcGxheVF1aXJrcykKICAgICAsIG1fYXV0
b3BsYXlQb2xpY3koYXV0b3BsYXlQb2xpY3kpCi0gICAgLCBtX2xlZ2FjeUN1c3RvbUhlYWRlckZp
ZWxkcyhXVEZNb3ZlKGxlZ2FjeUN1c3RvbUhlYWRlckZpZWxkcykpCiAgICAgLCBtX2N1c3RvbUhl
YWRlckZpZWxkcyhXVEZNb3ZlKGN1c3RvbUhlYWRlckZpZWxkcykpCiAgICAgLCBtX3BvcFVwUG9s
aWN5KHBvcFVwUG9saWN5KQogICAgICwgbV93ZWJzaXRlRGF0YVN0b3JlKFdURk1vdmUod2Vic2l0
ZURhdGFTdG9yZSkpCkBAIC02MSwxNyArNjAsMTAgQEAgUmVmPFdlYnNpdGVQb2xpY2llcz4gV2Vi
c2l0ZVBvbGljaWVzOjpjb3B5KCkgY29uc3QKICAgICBwb2xpY2llcy0+c2V0TWV0YVZpZXdwb3J0
UG9saWN5KG1fbWV0YVZpZXdwb3J0UG9saWN5KTsKICAgICBwb2xpY2llcy0+c2V0TWVkaWFTb3Vy
Y2VQb2xpY3kobV9tZWRpYVNvdXJjZVBvbGljeSk7CiAgICAgcG9saWNpZXMtPnNldFNpbXVsYXRl
ZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kobV9zaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNo
UG9saWN5KTsKLSAgICAKLSAgICBWZWN0b3I8V2ViQ29yZTo6SFRUUEhlYWRlckZpZWxkPiBsZWdh
Y3lDdXN0b21IZWFkZXJGaWVsZHM7Ci0gICAgbGVnYWN5Q3VzdG9tSGVhZGVyRmllbGRzLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkobV9sZWdhY3lDdXN0b21IZWFkZXJGaWVsZHMuc2l6ZSgpKTsKLSAg
ICBmb3IgKGF1dG8mIGZpZWxkIDogbV9sZWdhY3lDdXN0b21IZWFkZXJGaWVsZHMpCi0gICAgICAg
IGxlZ2FjeUN1c3RvbUhlYWRlckZpZWxkcy51bmNoZWNrZWRBcHBlbmQoZmllbGQpOwotICAgIHBv
bGljaWVzLT5zZXRMZWdhY3lDdXN0b21IZWFkZXJGaWVsZHMoV1RGTW92ZShsZWdhY3lDdXN0b21I
ZWFkZXJGaWVsZHMpKTsKLQotICAgIFZlY3RvcjxXZWJDb3JlOjpDdXN0b21IZWFkZXJGaWVsZHM+
IGN1c3RvbUhlYWRlckZpZWxkczsKKyAgICBWZWN0b3I8V2ViQ29yZTo6SFRUUEhlYWRlckZpZWxk
PiBjdXN0b21IZWFkZXJGaWVsZHM7CiAgICAgY3VzdG9tSGVhZGVyRmllbGRzLnJlc2VydmVJbml0
aWFsQ2FwYWNpdHkobV9jdXN0b21IZWFkZXJGaWVsZHMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8m
IGZpZWxkIDogbV9jdXN0b21IZWFkZXJGaWVsZHMpCi0gICAgICAgIGN1c3RvbUhlYWRlckZpZWxk
cy51bmNoZWNrZWRBcHBlbmQoZmllbGQpOworICAgICAgICBjdXN0b21IZWFkZXJGaWVsZHMuYXBw
ZW5kKFdlYkNvcmU6OkhUVFBIZWFkZXJGaWVsZChmaWVsZCkpOwogICAgIHBvbGljaWVzLT5zZXRD
dXN0b21IZWFkZXJGaWVsZHMoV1RGTW92ZShjdXN0b21IZWFkZXJGaWVsZHMpKTsKICAgICBwb2xp
Y2llcy0+c2V0QWxsb3dTaXRlU3BlY2lmaWNRdWlya3NUb092ZXJyaWRlQ29tcGF0aWJpbGl0eU1v
ZGUobV9hbGxvd1NpdGVTcGVjaWZpY1F1aXJrc1RvT3ZlcnJpZGVDb21wYXRpYmlsaXR5TW9kZSk7
CiAgICAgcG9saWNpZXMtPnNldEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudFdpdGhNb2Rlcm5D
b21wYXRpYmlsaXR5KG1fYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50V2l0aE1vZGVybkNvbXBh
dGliaWxpdHkpOwpAQCAtODksMTQgKzgxLDYgQEAgdm9pZCBXZWJzaXRlUG9saWNpZXM6OnNldFdl
YnNpdGVEYXRhU3RvcmUoUmVmUHRyPFdlYnNpdGVEYXRhU3RvcmU+JiYgd2Vic2l0ZURhdGEKIAog
V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhIFdlYnNpdGVQb2xpY2llczo6ZGF0YSgpCiB7Ci0g
ICAgYm9vbCBoYXNMZWdhY3lDdXN0b21IZWFkZXJGaWVsZHMgPSBsZWdhY3lDdXN0b21IZWFkZXJG
aWVsZHMoKS5zaXplKCk7Ci0gICAgVmVjdG9yPFdlYkNvcmU6OkN1c3RvbUhlYWRlckZpZWxkcz4g
Y3VzdG9tSGVhZGVyRmllbGRzOwotICAgIGN1c3RvbUhlYWRlckZpZWxkcy5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KHRoaXMtPmN1c3RvbUhlYWRlckZpZWxkcygpLnNpemUoKSArIGhhc0xlZ2FjeUN1
c3RvbUhlYWRlckZpZWxkcyk7Ci0gICAgZm9yIChhdXRvJiBmaWVsZCA6IHRoaXMtPmN1c3RvbUhl
YWRlckZpZWxkcygpKQotICAgICAgICBjdXN0b21IZWFkZXJGaWVsZHMudW5jaGVja2VkQXBwZW5k
KGZpZWxkKTsKLSAgICBpZiAoaGFzTGVnYWN5Q3VzdG9tSGVhZGVyRmllbGRzKQotICAgICAgICBj
dXN0b21IZWFkZXJGaWVsZHMudW5jaGVja2VkQXBwZW5kKHsgbGVnYWN5Q3VzdG9tSGVhZGVyRmll
bGRzKCksIHsgfX0pOwotCiAgICAgcmV0dXJuIHsKICAgICAgICAgY29udGVudEJsb2NrZXJzRW5h
YmxlZCgpLAogICAgICAgICBhbGxvd2VkQXV0b3BsYXlRdWlya3MoKSwKQEAgLTEwNCw3ICs4OCw3
IEBAIFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YSBXZWJzaXRlUG9saWNpZXM6OmRhdGEoKQog
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAgICAgICAgIGRldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzU3RhdGUoKSwKICNlbmRpZgotICAgICAgICBXVEZNb3ZlKGN1c3RvbUhl
YWRlckZpZWxkcyksCisgICAgICAgIGN1c3RvbUhlYWRlckZpZWxkcygpLAogICAgICAgICBwb3BV
cFBvbGljeSgpLAogICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUgPyBPcHRpb25hbDxXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzPiB7IG1fd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0
ZURhdGFTdG9yZSgpLnBhcmFtZXRlcnMoKSB9IDogV1RGOjpudWxsb3B0LAogICAgICAgICBtX2N1
c3RvbVVzZXJBZ2VudCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElXZWJzaXRlUG9saWNpZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElXZWJz
aXRlUG9saWNpZXMuaAppbmRleCA1MGZmN2FlZmY0YTgzOTE4NGNlNDhiOWQ0NjYzM2UzMmQ1MWNl
ZTQ0Li40ZDQ5MjY5YTg0YWQ4ZDhkNDU0ZmE2NzBhMzc1YWVjNGZkZGY2YTcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZVBvbGljaWVzLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVQb2xpY2llcy5oCkBAIC0zMyw3
ICszMyw2IEBACiAjaW5jbHVkZSAiV2Vic2l0ZU1ldGFWaWV3cG9ydFBvbGljeS5oIgogI2luY2x1
ZGUgIldlYnNpdGVQb3BVcFBvbGljeS5oIgogI2luY2x1ZGUgIldlYnNpdGVTaW11bGF0ZWRNb3Vz
ZUV2ZW50c0Rpc3BhdGNoUG9saWN5LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9DdXN0b21IZWFkZXJG
aWVsZHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJt
aXNzaW9uU3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUVFBIZWFkZXJGaWVsZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KQEAgLTY5LDExICs2OCw5IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGUoV2ViQ29yZTo6RGV2
aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSBzdGF0ZSkgeyBtX2RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzU3RhdGUgPSBzdGF0ZTsgfQogI2VuZGlmCiAKLSAgICBj
b25zdCBWZWN0b3I8V2ViQ29yZTo6SFRUUEhlYWRlckZpZWxkPiYgbGVnYWN5Q3VzdG9tSGVhZGVy
RmllbGRzKCkgY29uc3QgeyByZXR1cm4gbV9sZWdhY3lDdXN0b21IZWFkZXJGaWVsZHM7IH0KLSAg
ICB2b2lkIHNldExlZ2FjeUN1c3RvbUhlYWRlckZpZWxkcyhWZWN0b3I8V2ViQ29yZTo6SFRUUEhl
YWRlckZpZWxkPiYmIGZpZWxkcykgeyBtX2xlZ2FjeUN1c3RvbUhlYWRlckZpZWxkcyA9IFdURk1v
dmUoZmllbGRzKTsgfQotCi0gICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkN1c3RvbUhlYWRlckZp
ZWxkcz4mIGN1c3RvbUhlYWRlckZpZWxkcygpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tSGVhZGVy
RmllbGRzOyB9Ci0gICAgdm9pZCBzZXRDdXN0b21IZWFkZXJGaWVsZHMoVmVjdG9yPFdlYkNvcmU6
OkN1c3RvbUhlYWRlckZpZWxkcz4mJiBmaWVsZHMpIHsgbV9jdXN0b21IZWFkZXJGaWVsZHMgPSBX
VEZNb3ZlKGZpZWxkcyk7IH0KKyAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6SFRUUEhlYWRlckZp
ZWxkPiYgY3VzdG9tSGVhZGVyRmllbGRzKCkgY29uc3QgeyByZXR1cm4gbV9jdXN0b21IZWFkZXJG
aWVsZHM7IH0KKyAgICBWZWN0b3I8V2ViQ29yZTo6SFRUUEhlYWRlckZpZWxkPiYmIHRha2VDdXN0
b21IZWFkZXJGaWVsZHMoKSB7IHJldHVybiBXVEZNb3ZlKG1fY3VzdG9tSGVhZGVyRmllbGRzKTsg
fQorICAgIHZvaWQgc2V0Q3VzdG9tSGVhZGVyRmllbGRzKFZlY3RvcjxXZWJDb3JlOjpIVFRQSGVh
ZGVyRmllbGQ+JiYgZmllbGRzKSB7IG1fY3VzdG9tSGVhZGVyRmllbGRzID0gV1RGTW92ZShmaWVs
ZHMpOyB9CiAKICAgICBXZWJLaXQ6OldlYnNpdGVQb3BVcFBvbGljeSBwb3BVcFBvbGljeSgpIGNv
bnN0IHsgcmV0dXJuIG1fcG9wVXBQb2xpY3k7IH0KICAgICB2b2lkIHNldFBvcFVwUG9saWN5KFdl
YktpdDo6V2Vic2l0ZVBvcFVwUG9saWN5IHBvbGljeSkgeyBtX3BvcFVwUG9saWN5ID0gcG9saWN5
OyB9CkBAIC0xMTEsNyArMTA4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXBwbGljYXRpb25O
YW1lRm9yVXNlckFnZW50V2l0aE1vZGVybkNvbXBhdGliaWxpdHkoY29uc3QgV1RGOjpTdHJpbmcm
IGFwcGxpY2F0aW9uTmFtZSkgeyBtX2FwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudFdpdGhNb2Rl
cm5Db21wYXRpYmlsaXR5ID0gYXBwbGljYXRpb25OYW1lOyB9CiAKIHByaXZhdGU6Ci0gICAgV2Vi
c2l0ZVBvbGljaWVzKGJvb2wgY29udGVudEJsb2NrZXJzRW5hYmxlZCwgT3B0aW9uU2V0PFdlYktp
dDo6V2Vic2l0ZUF1dG9wbGF5UXVpcms+LCBXZWJLaXQ6OldlYnNpdGVBdXRvcGxheVBvbGljeSwg
VmVjdG9yPFdlYkNvcmU6OkhUVFBIZWFkZXJGaWVsZD4mJiwgVmVjdG9yPFdlYkNvcmU6OkN1c3Rv
bUhlYWRlckZpZWxkcz4mJiwgV2ViS2l0OjpXZWJzaXRlUG9wVXBQb2xpY3ksIFJlZlB0cjxXZWJz
aXRlRGF0YVN0b3JlPiYmKTsKKyAgICBXZWJzaXRlUG9saWNpZXMoYm9vbCBjb250ZW50QmxvY2tl
cnNFbmFibGVkLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlQXV0b3BsYXlRdWlyaz4sIFdlYktp
dDo6V2Vic2l0ZUF1dG9wbGF5UG9saWN5LCBWZWN0b3I8V2ViQ29yZTo6SFRUUEhlYWRlckZpZWxk
PiYmLCBXZWJLaXQ6OldlYnNpdGVQb3BVcFBvbGljeSwgUmVmUHRyPFdlYnNpdGVEYXRhU3RvcmU+
JiYpOwogCiAgICAgYm9vbCBtX2NvbnRlbnRCbG9ja2Vyc0VuYWJsZWQgeyB0cnVlIH07CiAgICAg
T3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZUF1dG9wbGF5UXVpcms+IG1fYWxsb3dlZEF1dG9wbGF5
UXVpcmtzOwpAQCAtMTE5LDggKzExNiw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKICAgICBXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlz
c2lvblN0YXRlIG1fZGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NTdGF0ZSB7IFdlYkNv
cmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGU6OlByb21wdCB9Owog
I2VuZGlmCi0gICAgVmVjdG9yPFdlYkNvcmU6OkhUVFBIZWFkZXJGaWVsZD4gbV9sZWdhY3lDdXN0
b21IZWFkZXJGaWVsZHM7Ci0gICAgVmVjdG9yPFdlYkNvcmU6OkN1c3RvbUhlYWRlckZpZWxkcz4g
bV9jdXN0b21IZWFkZXJGaWVsZHM7CisgICAgVmVjdG9yPFdlYkNvcmU6OkhUVFBIZWFkZXJGaWVs
ZD4gbV9jdXN0b21IZWFkZXJGaWVsZHM7CiAgICAgV2ViS2l0OjpXZWJzaXRlUG9wVXBQb2xpY3kg
bV9wb3BVcFBvbGljeSB7IFdlYktpdDo6V2Vic2l0ZVBvcFVwUG9saWN5OjpEZWZhdWx0IH07CiAg
ICAgUmVmUHRyPFdlYnNpdGVEYXRhU3RvcmU+IG1fd2Vic2l0ZURhdGFTdG9yZTsKICAgICBXVEY6
OlN0cmluZyBtX2N1c3RvbVVzZXJBZ2VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLV2Vic2l0ZVBvbGljaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLV2Vic2l0ZVBvbGljaWVzLmNwcAppbmRleCBhZWE0YjhiNzNmMjYxNThkNTk4
Nzg5MDYyMTY5ODFiZWYyNzAwZGE3Li42NGRiZWY4NmNlM2FkZWU4NzU0MDRhN2I1YzJkNDc1M2Ni
NDFjN2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNp
dGVQb2xpY2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJz
aXRlUG9saWNpZXMuY3BwCkBAIC01OSw3ICs1OSw3IEBAIGJvb2wgV0tXZWJzaXRlUG9saWNpZXNH
ZXRDb250ZW50QmxvY2tlcnNFbmFibGVkKFdLV2Vic2l0ZVBvbGljaWVzUmVmIHdlYnNpdGVQb2xp
CiBXS19FWFBPUlQgV0tEaWN0aW9uYXJ5UmVmIFdLV2Vic2l0ZVBvbGljaWVzQ29weUN1c3RvbUhl
YWRlckZpZWxkcyhXS1dlYnNpdGVQb2xpY2llc1JlZiB3ZWJzaXRlUG9saWNpZXMpCiB7CiAgICAg
SGFzaE1hcDxXVEY6OlN0cmluZywgUmVmUHRyPEFQSTo6T2JqZWN0Pj4gZmllbGRzOwotICAgIGZv
ciAoY29uc3QgYXV0byYgZmllbGQgOiB0b0ltcGwod2Vic2l0ZVBvbGljaWVzKS0+bGVnYWN5Q3Vz
dG9tSGVhZGVyRmllbGRzKCkpCisgICAgZm9yIChjb25zdCBhdXRvJiBmaWVsZCA6IHRvSW1wbCh3
ZWJzaXRlUG9saWNpZXMpLT5jdXN0b21IZWFkZXJGaWVsZHMoKSkKICAgICAgICAgZmllbGRzLmFk
ZChmaWVsZC5uYW1lKCksIEFQSTo6U3RyaW5nOjpjcmVhdGUoZmllbGQudmFsdWUoKSkpOwogICAg
IHJldHVybiB0b0FQSShBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEZNb3ZlKGZpZWxkcykpLnB0
cigpKTsKIH0KQEAgLTc2LDcgKzc2LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlUG9saWNp
ZXNTZXRDdXN0b21IZWFkZXJGaWVsZHMoV0tXZWJzaXRlUG9saWNpZXNSZWYgd2Vic2kKICAgICAg
ICAgaWYgKGZpZWxkICYmIHN0YXJ0c1dpdGhMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZmllbGQt
Pm5hbWUoKSwgIngtIikpCiAgICAgICAgICAgICBmaWVsZHMudW5jaGVja2VkQXBwZW5kKFdURk1v
dmUoKmZpZWxkKSk7CiAgICAgfQotICAgIHRvSW1wbCh3ZWJzaXRlUG9saWNpZXMpLT5zZXRMZWdh
Y3lDdXN0b21IZWFkZXJGaWVsZHMoV1RGTW92ZShmaWVsZHMpKTsKKyAgICB0b0ltcGwod2Vic2l0
ZVBvbGljaWVzKS0+c2V0Q3VzdG9tSGVhZGVyRmllbGRzKFdURk1vdmUoZmllbGRzKSk7CiB9CiAK
IHZvaWQgV0tXZWJzaXRlUG9saWNpZXNTZXRBbGxvd2VkQXV0b3BsYXlRdWlya3MoV0tXZWJzaXRl
UG9saWNpZXNSZWYgd2Vic2l0ZVBvbGljaWVzLCBXS1dlYnNpdGVBdXRvcGxheVF1aXJrIGFsbG93
ZWRRdWlya3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJwYWdlUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJwYWdlUHJlZmVyZW5jZXMubW0KaW5kZXggNGM5OTEzOTYyMTE5MGY3OGU5OGZhNDNj
NWRjMWI2ZThjYWJiOGQ2Yi4uNmEzNmIxYjVhZDNlMzgxOWRhNjZjNzU4MzZhYTNlZGMxY2EyZmJj
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFn
ZVByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnBhZ2VQcmVmZXJlbmNlcy5tbQpAQCAtMjYsMTEgKzI2LDkgQEAKICNpbXBvcnQgImNvbmZp
Zy5oIgogI2ltcG9ydCAiV0tXZWJwYWdlUHJlZmVyZW5jZXMuaCIKIAotI2ltcG9ydCAiQVBJQ3Vz
dG9tSGVhZGVyRmllbGRzLmgiCiAjaW1wb3J0ICJXS1dlYnBhZ2VQcmVmZXJlbmNlc0ludGVybmFs
LmgiCiAjaW1wb3J0ICJXS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2Vi
Q29tcGF0aWJpbGl0eU1vZGUuaCIKLSNpbXBvcnQgIl9XS0N1c3RvbUhlYWRlckZpZWxkc0ludGVy
bmFsLmgiCiAjaW1wb3J0ICJfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oIgogI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgogCkBAIC0yMTYsMjIgKzIxNCwyNiBAQCBzdGF0aWMgX1dLV2Vic2l0
ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUG9saWN5IHRvV0tXZWJzaXRlRGV2aWNl
T3JpZW50YQogICAgIH0KIH0KIAotLSAoTlNBcnJheTxfV0tDdXN0b21IZWFkZXJGaWVsZHMgKj4g
KilfY3VzdG9tSGVhZGVyRmllbGRzCistIChOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNTdHJp
bmcgKj4gKilfY3VzdG9tSGVhZGVyRmllbGRzCiB7CiAgICAgY29uc3QgYXV0byYgZmllbGRzID0g
X3dlYnNpdGVQb2xpY2llcy0+Y3VzdG9tSGVhZGVyRmllbGRzKCk7Ci0gICAgTlNNdXRhYmxlQXJy
YXkgKmFycmF5ID0gW1tbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Zmll
bGRzLnNpemUoKV0gYXV0b3JlbGVhc2VdOworICAgIGF1dG8gZGljdGlvbmFyeSA9IGFkb3B0TlMo
W1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OmZpZWxkcy5zaXpl
KCldKTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGZpZWxkIDogZmllbGRzKQotICAgICAgICBbYXJy
YXkgYWRkT2JqZWN0OndyYXBwZXIoQVBJOjpDdXN0b21IZWFkZXJGaWVsZHM6OmNyZWF0ZShmaWVs
ZCkpXTsKLSAgICByZXR1cm4gYXJyYXk7CisgICAgICAgIFtkaWN0aW9uYXJ5IHNldE9iamVjdDpm
aWVsZC52YWx1ZSgpIGZvcktleTpmaWVsZC5uYW1lKCldOworICAgIHJldHVybiBkaWN0aW9uYXJ5
LmF1dG9yZWxlYXNlKCk7CiB9CiAKLS0gKHZvaWQpX3NldEN1c3RvbUhlYWRlckZpZWxkczooTlNB
cnJheTxfV0tDdXN0b21IZWFkZXJGaWVsZHMgKj4gKilmaWVsZHMKKy0gKHZvaWQpX3NldEN1c3Rv
bUhlYWRlckZpZWxkczooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIE5TU3RyaW5nICo+ICopZmll
bGRzCiB7Ci0gICAgVmVjdG9yPFdlYkNvcmU6OkN1c3RvbUhlYWRlckZpZWxkcz4gdmVjdG9yOwot
ICAgIHZlY3Rvci5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGZpZWxkcy5jb3VudCk7Ci0gICAgZm9y
IChfV0tDdXN0b21IZWFkZXJGaWVsZHMgKmVsZW1lbnQgaW4gZmllbGRzKQotICAgICAgICB2ZWN0
b3IudW5jaGVja2VkQXBwZW5kKHN0YXRpY19jYXN0PEFQSTo6Q3VzdG9tSGVhZGVyRmllbGRzJj4o
W2VsZW1lbnQgX2FwaU9iamVjdF0pLmNvcmVGaWVsZHMoKSk7Ci0gICAgX3dlYnNpdGVQb2xpY2ll
cy0+c2V0Q3VzdG9tSGVhZGVyRmllbGRzKFdURk1vdmUodmVjdG9yKSk7CisgICAgVmVjdG9yPFdl
YkNvcmU6OkhUVFBIZWFkZXJGaWVsZD4gcGFyc2VkRmllbGRzOworICAgIHBhcnNlZEZpZWxkcy5y
ZXNlcnZlSW5pdGlhbENhcGFjaXR5KGZpZWxkcy5jb3VudCk7CisKKyAgICBmb3IgKE5TU3RyaW5n
ICpuYW1lIGluIGZpZWxkcykgeworICAgICAgICBhdXRvIGZpZWxkID0gV2ViQ29yZTo6SFRUUEhl
YWRlckZpZWxkOjpjcmVhdGUobmFtZSwgW2ZpZWxkcyBvYmplY3RGb3JLZXk6bmFtZV0pOworICAg
ICAgICBpZiAoZmllbGQgJiYgc3RhcnRzV2l0aExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShmaWVs
ZC0+bmFtZSgpLCAieC0iKSkKKyAgICAgICAgICAgIHBhcnNlZEZpZWxkcy51bmNoZWNrZWRBcHBl
bmQoV1RGTW92ZSgqZmllbGQpKTsKKyAgICB9CisgICAgX3dlYnNpdGVQb2xpY2llcy0+c2V0Q3Vz
dG9tSGVhZGVyRmllbGRzKFdURk1vdmUocGFyc2VkRmllbGRzKSk7CiB9CiAKIC0gKFdLV2Vic2l0
ZURhdGFTdG9yZSAqKV93ZWJzaXRlRGF0YVN0b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJwYWdlUHJlZmVyZW5jZXNQcml2YXRl
LmgKaW5kZXggMmQ1ZTI0OTQzZWJkYmU0M2NlZDhmMjM5NGQwNDQ0NjZkYTg2N2MxNS4uMGJkMGZh
YzY3YzIyZmJiYzI5YWI5YTMyY2I4ZDg5Yzg1YjhjNmYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnBhZ2VQcmVmZXJlbmNl
c1ByaXZhdGUuaApAQCAtNTUsMTQgKzU1LDEyIEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRl
Z2VyLCBfV0tXZWJzaXRlRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NQb2xpY3kpCiAg
ICAgX1dLV2Vic2l0ZURldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzUG9saWN5RGVueSwK
IH0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAKLUBjbGFzcyBf
V0tDdXN0b21IZWFkZXJGaWVsZHM7Ci0KIEBpbnRlcmZhY2UgV0tXZWJwYWdlUHJlZmVyZW5jZXMg
KFdLUHJpdmF0ZSkKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29udGVudEJs
b2NrZXJzRW5hYmxlZDopIEJPT0wgX2NvbnRlbnRCbG9ja2Vyc0VuYWJsZWQ7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd2VkQXV0b3BsYXlRdWlya3M6KSBfV0tXZWJzaXRl
QXV0b3BsYXlRdWlyayBfYWxsb3dlZEF1dG9wbGF5UXVpcmtzOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0QXV0b3BsYXlQb2xpY3k6KSBfV0tXZWJzaXRlQXV0b3BsYXlQb2xpY3kg
X2F1dG9wbGF5UG9saWN5OwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0
Q3VzdG9tSGVhZGVyRmllbGRzOikgTlNBcnJheTxfV0tDdXN0b21IZWFkZXJGaWVsZHMgKj4gKl9j
dXN0b21IZWFkZXJGaWVsZHM7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9z
ZXRDdXN0b21IZWFkZXJGaWVsZHM6KSBOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcg
Kj4gKl9jdXN0b21IZWFkZXJGaWVsZHM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRQb3BVcFBvbGljeTopIF9XS1dlYnNpdGVQb3BVcFBvbGljeSBfcG9wVXBQb2xpY3k7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc3Ryb25nLCBzZXR0ZXI9X3NldFdlYnNpdGVEYXRhU3RvcmU6KSBX
S1dlYnNpdGVEYXRhU3RvcmUgKl93ZWJzaXRlRGF0YVN0b3JlOwogQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHksIHNldHRlcj1fc2V0Q3VzdG9tVXNlckFnZW50OikgTlNTdHJpbmcgKl9jdXN0b21V
c2VyQWdlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLQ3VzdG9tSGVhZGVyRmllbGRzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLQ3VzdG9tSGVhZGVyRmllbGRzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDI0MzU1YjAyODViYTNjYmQ2YWIwYWNlNjFiMzBlODgwODZlYTNkNWYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0N1c3RvbUhlYWRlckZpZWxkcy5oCisrKyAvZGV2L251bGwKQEAgLTEsMzgg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KLQot
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KLQotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCi1AaW50ZXJmYWNlIF9XS0N1c3RvbUhlYWRlckZpZWxk
cyA6IE5TT2JqZWN0Ci0KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0RpY3Rpb25hcnk8
TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4gKmZpZWxkczsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBj
b3B5KSBOU0FycmF5PE5TU3RyaW5nICo+ICp0aGlyZFBhcnR5RG9tYWluczsKLQotQGVuZAotCi1O
U19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tDdXN0b21IZWFkZXJGaWVsZHMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLQ3VzdG9tSGVhZGVyRmllbGRzLm1tCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkZGVmNzFmOGU0NDM1MGUyMGJmMWJkNzY0YjhhOWFlNmZkYzZkMjFjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tDdXN0b21IZWFkZXJGaWVsZHMubW0KKysrIC9kZXYv
bnVsbApAQCAtMSw5MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0j
aW1wb3J0ICJfV0tDdXN0b21IZWFkZXJGaWVsZHMuaCIKLQotI2ltcG9ydCAiX1dLQ3VzdG9tSGVh
ZGVyRmllbGRzSW50ZXJuYWwuaCIKLSNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgotCi1AaW1wbGVt
ZW50YXRpb24gX1dLQ3VzdG9tSGVhZGVyRmllbGRzCi0KLS0gKGluc3RhbmNldHlwZSlpbml0Ci17
Ci0gICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0g
ICAgCi0gICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OkN1c3RvbUhlYWRl
ckZpZWxkcz4oc2VsZik7Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLS0gKHZvaWQpZGVhbGxvYwot
ewotICAgIF9maWVsZHMtPkFQSTo6Q3VzdG9tSGVhZGVyRmllbGRzOjp+Q3VzdG9tSGVhZGVyRmll
bGRzKCk7Ci0gICAgW3N1cGVyIGRlYWxsb2NdOwotfQotCi0tIChOU0RpY3Rpb25hcnk8TlNTdHJp
bmcgKiwgTlNTdHJpbmcgKj4gKilmaWVsZHMKLXsKLSAgICBhdXRvJiB2ZWN0b3IgPSBfZmllbGRz
LT5maWVsZHMoKTsKLSAgICBOU011dGFibGVEaWN0aW9uYXJ5PE5TU3RyaW5nICosIE5TU3RyaW5n
ICo+ICpkaWN0aW9uYXJ5ID0gW05TTXV0YWJsZURpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhDYXBh
Y2l0eTp2ZWN0b3Iuc2l6ZSgpXTsKLSAgICBmb3IgKGF1dG8mIGZpZWxkIDogdmVjdG9yKQotICAg
ICAgICBbZGljdGlvbmFyeSBzZXRPYmplY3Q6ZmllbGQudmFsdWUoKSBmb3JLZXk6ZmllbGQubmFt
ZSgpXTsKLSAgICByZXR1cm4gZGljdGlvbmFyeTsKLX0KLQotLSAodm9pZClzZXRGaWVsZHM6KE5T
RGljdGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqKWZpZWxkcwotewotICAgIFZlY3Rv
cjxXZWJDb3JlOjpIVFRQSGVhZGVyRmllbGQ+IHZlY3RvcjsKLSAgICB2ZWN0b3IucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShmaWVsZHMuY291bnQpOwotICAgIFtmaWVsZHMgZW51bWVyYXRlS2V5c0Fu
ZE9iamVjdHNVc2luZ0Jsb2NrOm1ha2VCbG9ja1B0cihbJl0oaWQga2V5LCBpZCB2YWx1ZSwgQk9P
TCogc3RvcCkgewotICAgICAgICBpZiAoYXV0byBmaWVsZCA9IFdlYkNvcmU6OkhUVFBIZWFkZXJG
aWVsZDo6Y3JlYXRlKChOU1N0cmluZyAqKWtleSwgKE5TU3RyaW5nICopdmFsdWUpOyBmaWVsZCAm
JiBzdGFydHNXaXRoTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGZpZWxkLT5uYW1lKCksICJ4LSIp
KQotICAgICAgICAgICAgdmVjdG9yLnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKCpmaWVsZCkpOwot
ICAgIH0pLmdldCgpXTsKLSAgICBfZmllbGRzLT5zZXRGaWVsZHMoV1RGTW92ZSh2ZWN0b3IpKTsK
LX0KLQotLSAoTlNBcnJheTxOU1N0cmluZyAqPiAqKXRoaXJkUGFydHlEb21haW5zCi17Ci0gICAg
YXV0byYgZG9tYWlucyA9IF9maWVsZHMtPnRoaXJkUGFydHlEb21haW5zKCk7Ci0gICAgTlNNdXRh
YmxlQXJyYXkgKmFycmF5ID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFjaXR5OmRvbWFp
bnMuc2l6ZSgpXTsKLSAgICBmb3IgKGF1dG8mIGRvbWFpbiA6IGRvbWFpbnMpCi0gICAgICAgIFth
cnJheSBhZGRPYmplY3Q6ZG9tYWluXTsKLSAgICByZXR1cm4gYXJyYXk7Ci19Ci0KLS0gKHZvaWQp
c2V0VGhpcmRQYXJ0eURvbWFpbnM6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKil0aGlyZFBhcnR5RG9t
YWlucwotewotICAgIFZlY3RvcjxTdHJpbmc+IGRvbWFpbnM7Ci0gICAgZG9tYWlucy5yZXNlcnZl
SW5pdGlhbENhcGFjaXR5KHRoaXJkUGFydHlEb21haW5zLmNvdW50KTsKLSAgICBmb3IgKE5TU3Ry
aW5nICpkb21haW4gaW4gdGhpcmRQYXJ0eURvbWFpbnMpCi0gICAgICAgIGRvbWFpbnMudW5jaGVj
a2VkQXBwZW5kKGRvbWFpbik7Ci0gICAgX2ZpZWxkcy0+c2V0VGhpcmRQYXJ0eURvbWFpbnMoV1RG
TW92ZShkb21haW5zKSk7Ci19Ci0KLS0gKEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0Ci17Ci0gICAg
cmV0dXJuICpfZmllbGRzOwotfQotCi1AZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLQ3VzdG9tSGVhZGVyRmllbGRzSW50ZXJuYWwuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tDdXN0b21IZWFkZXJGaWVsZHNJbnRlcm5h
bC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNWVmNzdhM2FiMTA3NWEyNjgyNWYz
MmJlZDAzMzJlZDQxNzUxNDU3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tDdXN0b21IZWFk
ZXJGaWVsZHNJbnRlcm5hbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbXBvcnQgIkFQSUN1c3RvbUhlYWRlckZpZWxkcy5oIgotI2ltcG9ydCAiV0tPYmpl
Y3QuaCIKLSNpbXBvcnQgIl9XS0N1c3RvbUhlYWRlckZpZWxkcy5oIgotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgV3JhcHBlclRyYWl0czxBUEk6OkN1c3RvbUhlYWRl
ckZpZWxkcz4gewotICAgIHVzaW5nIFdyYXBwZXJDbGFzcyA9IF9XS0N1c3RvbUhlYWRlckZpZWxk
czsKLX07Ci0KLX0KLQotQGludGVyZmFjZSBfV0tDdXN0b21IZWFkZXJGaWVsZHMgKCkgPFdLT2Jq
ZWN0PiB7Ci1AcGFja2FnZQotICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OkN1c3RvbUhlYWRl
ckZpZWxkcz4gX2ZpZWxkczsKLX0KLUBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlUG9saWNpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZVBvbGljaWVzLm1tCmluZGV4IDE0MzU1NDk2ZjA1
Yjk0Y2U2MmMzODMzMGEzYTJkYjQwN2Y4YzFiNGUuLmM1N2JkOWRiYjY4ZGMyMmIxMjA4ZDAxM2Zm
NjJlMGY3OTQ5NzE1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tXZWJzaXRlUG9saWNpZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYnNpdGVQb2xpY2llcy5tbQpAQCAtOTcsMjQgKzk3LDEyIEBACiAKIC0g
KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqKWN1c3RvbUhlYWRlckZpZWxk
cwogewotICAgIGF1dG8mIGZpZWxkcyA9IHN0YXRpY19jYXN0PEFQSTo6V2Vic2l0ZVBvbGljaWVz
Jj4oW193ZWJwYWdlUHJlZmVyZW5jZXMgX2FwaU9iamVjdF0pLmxlZ2FjeUN1c3RvbUhlYWRlckZp
ZWxkcygpOwotICAgIGF1dG8gZGljdGlvbmFyeSA9IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rp
b25hcnlXaXRoQ2FwYWNpdHk6ZmllbGRzLnNpemUoKV07Ci0gICAgZm9yIChjb25zdCBhdXRvJiBm
aWVsZCA6IGZpZWxkcykKLSAgICAgICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0OmZpZWxkLnZhbHVl
KCkgZm9yS2V5OmZpZWxkLm5hbWUoKV07Ci0gICAgcmV0dXJuIGRpY3Rpb25hcnk7CisgICAgcmV0
dXJuIFtfd2VicGFnZVByZWZlcmVuY2VzIF9jdXN0b21IZWFkZXJGaWVsZHNdOwogfQogCiAtICh2
b2lkKXNldEN1c3RvbUhlYWRlckZpZWxkczooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIE5TU3Ry
aW5nICo+ICopZmllbGRzCiB7Ci0gICAgYXV0byB3ZWJzaXRlUG9saWNpZXMgPSBzdGF0aWNfY2Fz
dDxBUEk6OldlYnNpdGVQb2xpY2llcyY+KFtfd2VicGFnZVByZWZlcmVuY2VzIF9hcGlPYmplY3Rd
KTsKLSAgICBWZWN0b3I8V2ViQ29yZTo6SFRUUEhlYWRlckZpZWxkPiBwYXJzZWRGaWVsZHM7Ci0g
ICAgcGFyc2VkRmllbGRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZmllbGRzLmNvdW50KTsKLSAg
ICBmb3IgKE5TU3RyaW5nICpuYW1lIGluIGZpZWxkcykgewotICAgICAgICBhdXRvIGZpZWxkID0g
V2ViQ29yZTo6SFRUUEhlYWRlckZpZWxkOjpjcmVhdGUobmFtZSwgW2ZpZWxkcyBvYmplY3RGb3JL
ZXk6bmFtZV0pOwotICAgICAgICBpZiAoZmllbGQgJiYgc3RhcnRzV2l0aExldHRlcnNJZ25vcmlu
Z0FTQ0lJQ2FzZShmaWVsZC0+bmFtZSgpLCAieC0iKSkKLSAgICAgICAgICAgIHBhcnNlZEZpZWxk
cy51bmNoZWNrZWRBcHBlbmQoV1RGTW92ZSgqZmllbGQpKTsKLSAgICB9Ci0gICAgd2Vic2l0ZVBv
bGljaWVzLnNldExlZ2FjeUN1c3RvbUhlYWRlckZpZWxkcyhXVEZNb3ZlKHBhcnNlZEZpZWxkcykp
OworICAgIFtfd2VicGFnZVByZWZlcmVuY2VzIF9zZXRDdXN0b21IZWFkZXJGaWVsZHM6ZmllbGRz
XTsKIH0KIAogLSAoV0tXZWJzaXRlRGF0YVN0b3JlICopd2Vic2l0ZURhdGFTdG9yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTdlY2Qy
ZWY3ZjU5NmQzOTE2M2FjNWFhOTlhYjExMjcwMjc1NDY5My4uMjZjMDVjNzQ2OWU2OGY3ZmIyNGM0
NzA4NmNhYjUyM2ZiNDI1MzZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDc4LDcgKzEwNzgsNiBAQAogCQk1QzVDRUMzMzIyMDkx
MkIzMDBENkJCQjAgLyogQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM1Q0VDMzEyMjA5MTJBRjAwRDZCQkIwIC8q
IEF1eGlsaWFyeVByb2Nlc3NNYWluLmNwcCAqLzsgfTsKIAkJNUM1Q0VDMzQyMjA5MTJCNDAwRDZC
QkIwIC8qIEF1eGlsaWFyeVByb2Nlc3NNYWluLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNUNFQzMxMjIwOTEyQUYwMEQ2QkJCMCAvKiBBdXhpbGlh
cnlQcm9jZXNzTWFpbi5jcHAgKi87IH07CiAJCTVDNUNFQzM1MjIwOTEyQjQwMEQ2QkJCMCAvKiBB
dXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1QzVDRUMzMTIyMDkxMkFGMDBENkJCQjAgLyogQXV4aWxpYXJ5UHJvY2Vz
c01haW4uY3BwICovOyB9OwotCQk1QzVEMjM4QzIyN0EyQ0RBMDAwQjlCREEgLyogX1dLQ3VzdG9t
SGVhZGVyRmllbGRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1QzVEMjM4OTIyN0ExODkyMDAwQjlCREEgLyogX1dLQ3VzdG9tSGVhZGVyRmllbGRzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUM2MkZE
RjkxRUZDMjcxQzAwQ0UwNzJFIC8qIFdLVVJMU2NoZW1lVGFza1ByaXZhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNjJGREY4MUVGQzI2M0MwMENF
MDcyRSAvKiBXS1VSTFNjaGVtZVRhc2tQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNUM3RkI0NzAyMUU5N0RDNTAwOUUzMjQxIC8qIFdl
YkNvb2tpZUphci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUM3RkI0NkYyMUU5N0MwQzAwOUUzMjQxIC8qIFdlYkNvb2tpZUphci5oICovOyB9OwogCQk1
QzhCQzc5NzIxOENCQjQ4MDA4MTM4ODYgLyogU2FmZUJyb3dzaW5nLnhjYXNzZXRzIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzhCQzc5NjIxOENCNThB
MDA4MTM4ODYgLyogU2FmZUJyb3dzaW5nLnhjYXNzZXRzICovOyB9OwpAQCAtMTA5Myw3ICsxMDky
LDYgQEAKIAkJNUNCMjM3OEMxREYwREU2RTAwMTE3QUEzIC8qIF9XS1dlYnNpdGVQb2xpY2llcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNCMjM3ODkx
REYwREQ0MzAwMTE3QUEzIC8qIF9XS1dlYnNpdGVQb2xpY2llcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDQjIzNzhFMURGMEUwRDMwMDExN0FB
MyAvKiBfV0tXZWJzaXRlUG9saWNpZXNJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNCMjM3OEQxREYwRTBDMjAwMTE3QUEzIC8qIF9XS1dl
YnNpdGVQb2xpY2llc0ludGVybmFsLmggKi87IH07CiAJCTVDQkM5QjhFMUM2NTJDQTAwMEE4RkRD
RiAvKiBOZXR3b3JrRGF0YVRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVDQkM5Qjg5MUM2NTI0QTUwMEE4RkRDRiAvKiBOZXR3b3JrRGF0YVRhc2su
aCAqLzsgfTsKLQkJNUNCRDU5NUMyMjgwRURGNDAwMkIyMkFBIC8qIF9XS0N1c3RvbUhlYWRlckZp
ZWxkcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVD
NUQyMzg4MjI3QTE4OTIwMDBCOUJEQSAvKiBfV0tDdXN0b21IZWFkZXJGaWVsZHMubW0gKi87IH07
CiAJCTVDRDI4NjUxMUU3MjM1OTkwMDk0RkRDOCAvKiBXS0NvbnRlbnRSdWxlTGlzdFN0b3JlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0QyODY0RDFF
NzIyRjQ0MDA5NEZEQzggLyogV0tDb250ZW50UnVsZUxpc3RTdG9yZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJNUNEMjg2NTMxRTcyMzVBQTAwOTRG
REM4IC8qIF9XS1VzZXJDb250ZW50RmlsdGVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNEMjg2NDkxRTcyMkY0NDAwOTRGREM4IC8qIF9X
S1VzZXJDb250ZW50RmlsdGVyUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTVDRDI4NjU0MUU3MjM1QjEwMDk0RkRDOCAvKiBXS0NvbnRl
bnRSdWxlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUNEMjg2NEExRTcyMkY0NDAwOTRGREM4IC8qIFdLQ29udGVudFJ1bGVMaXN0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwpAQCAtMzUzMCwxMCArMzUy
OCw2IEBACiAJCTVDNUNFQzMxMjIwOTEyQUYwMEQ2QkJCMCAvKiBBdXhpbGlhcnlQcm9jZXNzTWFp
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBdXhpbGlhcnlQcm9j
ZXNzTWFpbi5jcHA7IHBhdGggPSBDb2NvYS9BdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNUNFQzM4MjIwOTU4MzIwMEQ2QkJCMCAvKiBEYWVt
b25FbnRyeVBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhZW1vbkVu
dHJ5UG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM1Q0VDMzkyMjA5NTgz
MjAwRDZCQkIwIC8qIERhZW1vbkVudHJ5UG9pbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBEYWVtb25FbnRyeVBvaW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk1QzVEMjM4NzIyN0ExODkxMDAwQjlCREEgLyogX1dLQ3VzdG9tSGVhZGVyRmll
bGRzSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLQ3VzdG9t
SGVhZGVyRmllbGRzSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM1
RDIzODgyMjdBMTg5MjAwMEI5QkRBIC8qIF9XS0N1c3RvbUhlYWRlckZpZWxkcy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS0N1c3RvbUhlYWRlckZpZWxkcy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUM1RDIzODkyMjdBMTg5MjAwMEI5QkRB
IC8qIF9XS0N1c3RvbUhlYWRlckZpZWxkcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBfV0tDdXN0b21IZWFkZXJGaWVsZHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNUM1RDIzOEEyMjdBMUQ5QjAwMEI5QkRBIC8qIEFQSUN1c3RvbUhlYWRlckZpZWxkcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElDdXN0b21IZWFkZXJGaWVsZHMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM2MkZERjgxRUZDMjYzQzAwQ0UwNzJFIC8q
IFdLVVJMU2NoZW1lVGFza1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVUkxTY2hlbWVUYXNr
UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzZDRTZEMDFGNTlCQzQ2
MDAwN0M2Q0IgLyogUGFnZUNsaWVudEltcGxDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFBhZ2VDbGllbnRJbXBsQ29jb2EubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVDNkNFNkQzMUY1OUVBMzUwMDA3QzZDQiAvKiBQYWdlQ2xpZW50SW1w
bENvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VDbGllbnRJbXBs
Q29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYxNDcsOSArNjE0MSw2IEBA
CiAJCQkJNUM0NjA5RTQyMjQzMEU0RDAwOTk0M0MyIC8qIF9XS0NvbnRlbnRSdWxlTGlzdEFjdGlv
bkludGVybmFsLmggKi8sCiAJCQkJMUE1NzA0RjYxQkUwMUZGNDAwODc0QUYxIC8qIF9XS0NvbnRl
eHRNZW51RWxlbWVudEluZm8uaCAqLywKIAkJCQkxQTU3MDRGNTFCRTAxRkY0MDA4NzRBRjEgLyog
X1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5tbSAqLywKLQkJCQk1QzVEMjM4OTIyN0ExODkyMDAw
QjlCREEgLyogX1dLQ3VzdG9tSGVhZGVyRmllbGRzLmggKi8sCi0JCQkJNUM1RDIzODgyMjdBMTg5
MjAwMEI5QkRBIC8qIF9XS0N1c3RvbUhlYWRlckZpZWxkcy5tbSAqLywKLQkJCQk1QzVEMjM4NzIy
N0ExODkxMDAwQjlCREEgLyogX1dLQ3VzdG9tSGVhZGVyRmllbGRzSW50ZXJuYWwuaCAqLywKIAkJ
CQk4Mzg5MUI2ODFBNjhCRUJDMDAzMEYzODYgLyogX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0
ZS5oICovLAogCQkJCUExQTRGRTU3MThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZC5oICov
LAogCQkJCUExQTRGRTU4MThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZC5tbSAqLywKQEAg
LTc3MTQsNyArNzcwNSw2IEBACiAJCQkJN0MzQTA2QTUxQUFCOTAzRTAwOUQ3NEJBIC8qIEFQSUNv
bnRlbnRSdWxlTGlzdFN0b3JlLmNwcCAqLywKIAkJCQk3QzNBMDZBNjFBQUI5MDNFMDA5RDc0QkEg
LyogQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuaCAqLywKIAkJCQkwNzZFODg0RDFBMTNDQURGMDA1
RTkwRkMgLyogQVBJQ29udGV4dE1lbnVDbGllbnQuaCAqLywKLQkJCQk1QzVEMjM4QTIyN0ExRDlC
MDAwQjlCREEgLyogQVBJQ3VzdG9tSGVhZGVyRmllbGRzLmggKi8sCiAJCQkJN0E4MjFGNEYxRTJG
N0E1QzAwNjA0NTc3IC8qIEFQSUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5oICovLAogCQkJ
CTgzODkxQjYyMUE2OEIzNDIwMDMwRjM4NiAvKiBBUElEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
ICovLAogCQkJCTFGN0QzNkMwMThEQTUxM0YwMEQ5RDY1OSAvKiBBUElEb3dubG9hZENsaWVudC5o
ICovLApAQCAtOTAyOCw3ICs5MDE4LDYgQEAKIAkJCQk1QzQ2MDlFNzIyNDMxN0I0MDA5OTQzQzIg
LyogX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzQ2MDlF
ODIyNDMxN0JCMDA5OTQzQzIgLyogX1dLQ29udGVudFJ1bGVMaXN0QWN0aW9uSW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNTcwNEY4MUJFMDFGRjQwMDg3NEFGMSAvKiBfV0tDb250ZXh0
TWVudUVsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLywKLQkJCQk1QzVEMjM4QzIyN0EyQ0RBMDAw
QjlCREEgLyogX1dLQ3VzdG9tSGVhZGVyRmllbGRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzg5
MUI2OTFBNjhCRUJDMDAzMEYzODYgLyogX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTFBNEZFNUExOERDRTlGQTAwQjVFQThBIC8qIF9XS0Rvd25sb2Fk
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUE0RkU2MTE4REQ1NEE0MDBCNUVBOEEgLyogX1dLRG93
bmxvYWREZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDk2OCw3ICsxMDk1Nyw2IEBACiAJ
CQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0
ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQk1Q0JENTk1QzIyODBFREY0MDAyQjIyQUEgLyogX1dL
Q3VzdG9tSGVhZGVyRmllbGRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTlFNzE4OUEyMUY3OUQ5
RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkyRDkyQTc4NDIxMkI2QUIxMDBGNDkzRkQgLyogQWN0aXZpdHlBc3NlcnRpb24uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMkQ5MkE3N0IyMTJCNkE3MTAwRjQ5M0ZEIC8qIEFyZ3VtZW50Q29kZXJz
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGRmYTlhM2E1OGZkZmI2NGY4ZmQyMTMxNGY2OGMxNGM4MDBiMjdmN2Qu
LjhkYWZkZGUwMmNkZTQ5MzNlNTllZjg0NjAwNmIwOTg4YTk1YjdkMzQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAx
OS0wNS0xNyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI0NTQwMS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Nzk5MAorCisgICAgICAgIENhdXNpbmcgaW50
ZXJuYWwgYnVpbGQgZmFpbHVyZXMgKFJlcXVlc3RlZCBieSBTaGF3blJvYmVydHMgb24KKyAgICAg
ICAgI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJB
ZGQgU1BJIHRvIHNldCBhIGxpc3Qgb2YgaG9zdHMgdG8gd2hpY2ggdG8gc2VuZCBjdXN0b20gaGVh
ZGVyCisgICAgICAgIGZpZWxkcyBjcm9zcy1vcmlnaW4iCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTczOTcKKyAgICAgICAgaHR0cHM6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0LzI0NTQwMQorCiAyMDE5LTA1LTE3ICBDb21taXQgUXVldWUgIDxj
b21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMjQ1NDE4LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XZWJzaXRlUG9saWNpZXMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dlYnNpdGVQb2xpY2llcy5tbQppbmRleCBiZWIzMTJhZWM3M2ViYzQ3MzY3OTQ4ZTI0
YjE3MWRmZWM1Y2E0ZTNlLi4xMzQzMTlmNWRlNTUxZjZmNmY5MzBjNWUyZWU3YzBlNWNjZTBhYjdj
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYnNp
dGVQb2xpY2llcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dlYnNpdGVQb2xpY2llcy5tbQpAQCAtMjgsMTkgKzI4LDE2IEBACiAjaW1wb3J0ICJQbGF0Zm9y
bVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgogI2ltcG9y
dCAiVGVzdFdLV2ViVmlldy5oIgotI2ltcG9ydCA8V2ViS2l0L1dLTXV0YWJsZURpY3Rpb25hcnku
aD4KICNpbXBvcnQgPFdlYktpdC9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaD4KICNpbXBv
cnQgPFdlYktpdC9XS1BhZ2VQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNl
c1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oPgot
I2ltcG9ydCA8V2ViS2l0L1dLU3RyaW5nLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tVSURlbGVnYXRl
UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLVVJMU2NoZW1lVGFza1ByaXZhdGUuaD4KICNp
bXBvcnQgPFdlYktpdC9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaD4KICNpbXBvcnQg
PFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0
YVN0b3JlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZVBvbGljaWVzLmg+Ci0j
aW1wb3J0IDxXZWJLaXQvX1dLQ3VzdG9tSGVhZGVyRmllbGRzLmg+CiAjaW1wb3J0IDxXZWJLaXQv
X1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9f
V0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1dl
YnNpdGVQb2xpY2llcy5oPgpAQCAtOTEwLDkgKzkwNyw5IEBAIFRFU1QoV2ViS2l0LCBXZWJzaXRl
UG9saWNpZXNBdXRvcGxheVF1aXJrc0FzeW5jUG9saWN5RGVsZWdhdGUpCiAKIFRFU1QoV2ViS2l0
LCBJbnZhbGlkQ3VzdG9tSGVhZGVycykKIHsKLSAgICBhdXRvIGN1c3RvbUhlYWRlckZpZWxkcyA9
IGFkb3B0TlMoW1tfV0tDdXN0b21IZWFkZXJGaWVsZHMgYWxsb2NdIGluaXRdKTsKLSAgICBbY3Vz
dG9tSGVhZGVyRmllbGRzIHNldEZpZWxkczpAe0AiaW52YWxpZGhlYWRlciIgOiBAIiIsIEAibm9u
Y3VzdG9tIiA6IEAiaGVhZGVyIiwgQCIgICAgeC1DdXN0b20gIjpAIiAgTmVlZHMgQ2Fub25pY2Fs
aXphdGlvblx0ICIsIEAieC1vdGhlciIgOiBAIm90aGVyIHZhbHVlIn1dOwotICAgIE5TRGljdGlv
bmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqY2Fub25pY2FsaXplZCA9IFtjdXN0b21IZWFk
ZXJGaWVsZHMgZmllbGRzXTsKKyAgICBhdXRvIHdlYnNpdGVQb2xpY2llcyA9IGFkb3B0TlMoW1tf
V0tXZWJzaXRlUG9saWNpZXMgYWxsb2NdIGluaXRdKTsKKyAgICBbd2Vic2l0ZVBvbGljaWVzIHNl
dEN1c3RvbUhlYWRlckZpZWxkczpAe0AiaW52YWxpZGhlYWRlciIgOiBAIiIsIEAibm9uY3VzdG9t
IiA6IEAiaGVhZGVyIiwgQCIgICAgeC1DdXN0b20gIjpAIiAgTmVlZHMgQ2Fub25pY2FsaXphdGlv
blx0ICIsIEAieC1vdGhlciIgOiBAIm90aGVyIHZhbHVlIn1dOworICAgIE5TRGljdGlvbmFyeTxO
U1N0cmluZyAqLCBOU1N0cmluZyAqPiAqY2Fub25pY2FsaXplZCA9IFt3ZWJzaXRlUG9saWNpZXMg
Y3VzdG9tSGVhZGVyRmllbGRzXTsKICAgICBFWFBFQ1RfRVEoY2Fub25pY2FsaXplZC5jb3VudCwg
MnUpOwogICAgIEVYUEVDVF9TVFJFUShbY2Fub25pY2FsaXplZCBvYmplY3RGb3JLZXk6QCJ4LUN1
c3RvbSJdLlVURjhTdHJpbmcsICJOZWVkcyBDYW5vbmljYWxpemF0aW9uIik7CiAgICAgRVhQRUNU
X1NUUkVRKFtjYW5vbmljYWxpemVkIG9iamVjdEZvcktleTpAIngtb3RoZXIiXS5VVEY4U3RyaW5n
LCAib3RoZXIgdmFsdWUiKTsKQEAgLTkyMiw5ICs5MTksOCBAQCBzdGF0aWMgYm9vbCBmaXJzdFRl
c3REb25lOwogc3RhdGljIGJvb2wgc2Vjb25kVGVzdERvbmU7CiBzdGF0aWMgYm9vbCB0aGlyZFRl
c3REb25lOwogc3RhdGljIGJvb2wgZm91cnRoVGVzdERvbmU7Ci1zdGF0aWMgYm9vbCBmaWZ0aFRl
c3REb25lOwogCi1zdGF0aWMgdm9pZCBleHBlY3RMZWdhY3lIZWFkZXJzKGlkIDxXS1VSTFNjaGVt
ZVRhc2s+IHRhc2ssIGJvb2wgZXhwZWN0ZWQpCitzdGF0aWMgdm9pZCBleHBlY3RIZWFkZXJzKGlk
IDxXS1VSTFNjaGVtZVRhc2s+IHRhc2ssIGJvb2wgZXhwZWN0ZWQpCiB7CiAgICAgTlNVUkxSZXF1
ZXN0ICpyZXF1ZXN0ID0gdGFzay5yZXF1ZXN0OwogICAgIGlmIChleHBlY3RlZCkgewpAQCAtOTM2
LDE4ICs5MzIsNiBAQCBzdGF0aWMgdm9pZCBleHBlY3RMZWdhY3lIZWFkZXJzKGlkIDxXS1VSTFNj
aGVtZVRhc2s+IHRhc2ssIGJvb2wgZXhwZWN0ZWQpCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBl
eHBlY3RIZWFkZXJzKGlkIDxXS1VSTFNjaGVtZVRhc2s+IHRhc2ssIGJvb2wgZXhwZWN0ZWQpCi17
Ci0gICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gdGFzay5yZXF1ZXN0OwotICAgIGlmIChleHBl
Y3RlZCkgewotICAgICAgICBFWFBFQ1RfU1RSRVEoW1tyZXF1ZXN0IHZhbHVlRm9ySFRUUEhlYWRl
ckZpZWxkOkAiWC1rZXkzIl0gVVRGOFN0cmluZ10sICJ2YWx1ZTMiKTsKLSAgICAgICAgRVhQRUNU
X1NUUkVRKFtbcmVxdWVzdCB2YWx1ZUZvckhUVFBIZWFkZXJGaWVsZDpAIlgta2V5NCJdIFVURjhT
dHJpbmddLCAidmFsdWU0Iik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgRVhQRUNUX1RSVUUoW3Jl
cXVlc3QgdmFsdWVGb3JIVFRQSGVhZGVyRmllbGQ6QCJYLWtleTMiXSA9PSBuaWwpOwotICAgICAg
ICBFWFBFQ1RfVFJVRShbcmVxdWVzdCB2YWx1ZUZvckhUVFBIZWFkZXJGaWVsZDpAIlgta2V5NCJd
ID09IG5pbCk7Ci0gICAgfQotfQotCiBzdGF0aWMgdm9pZCByZXNwb25kKGlkIDxXS1VSTFNjaGVt
ZVRhc2s+dGFzaywgTlNTdHJpbmcgKmh0bWwgPSBuaWwpCiB7CiAgICAgW3Rhc2sgZGlkUmVjZWl2
ZVJlc3BvbnNlOltbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnRhc2sucmVxdWVz
dC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDpodG1sLmxl
bmd0aCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0gYXV0b3JlbGVhc2VdXTsKQEAgLTk2MCw5MiArOTQ0
LDYxIEBAIHN0YXRpYyB2b2lkIHJlc3BvbmQoaWQgPFdLVVJMU2NoZW1lVGFzaz50YXNrLCBOU1N0
cmluZyAqaHRtbCA9IG5pbCkKIAogQGltcGxlbWVudGF0aW9uIEN1c3RvbUhlYWRlckZpZWxkc0Rl
bGVnYXRlCiAKLS0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0
aW9uIHByZWZlcmVuY2VzOihXS1dlYnBhZ2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzIGRlY2lz
aW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBXS1dlYnBhZ2VQ
cmVmZXJlbmNlcyAqKSlkZWNpc2lvbkhhbmRsZXIKK0lHTk9SRV9XQVJOSU5HU19CRUdJTigiZGVw
cmVjYXRlZC1pbXBsZW1lbnRhdGlvbnMiKQorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rp
b24gKiluYXZpZ2F0aW9uQWN0aW9uIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0
aW9uQWN0aW9uUG9saWN5LCBfV0tXZWJzaXRlUG9saWNpZXMgKikpZGVjaXNpb25IYW5kbGVyCitJ
R05PUkVfV0FSTklOR1NfRU5ECiB7Ci0gICAgYXV0byBsZWdhY3lIZWFkZXJGaWVsZERpY3Rpb25h
cnkgPSBhZG9wdFdLKFdLTXV0YWJsZURpY3Rpb25hcnlDcmVhdGUoKSk7Ci0gICAgV0tEaWN0aW9u
YXJ5U2V0SXRlbShsZWdhY3lIZWFkZXJGaWVsZERpY3Rpb25hcnkuZ2V0KCksIGFkb3B0V0soV0tT
dHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlgta2V5MSIpKS5nZXQoKSwgYWRvcHRXSyhXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygidmFsdWUxIikpLmdldCgpKTsKLSAgICBXS0RpY3Rp
b25hcnlTZXRJdGVtKGxlZ2FjeUhlYWRlckZpZWxkRGljdGlvbmFyeS5nZXQoKSwgYWRvcHRXSyhX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiWC1rZXkyIikpLmdldCgpLCBhZG9wdFdLKFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJ2YWx1ZTIiKSkuZ2V0KCkpOwotICAgIFdLV2Vi
c2l0ZVBvbGljaWVzU2V0Q3VzdG9tSGVhZGVyRmllbGRzKChXS1dlYnNpdGVQb2xpY2llc1JlZilw
cmVmZXJlbmNlcywgbGVnYWN5SGVhZGVyRmllbGREaWN0aW9uYXJ5LmdldCgpKTsKLQotICAgIF9X
S0N1c3RvbUhlYWRlckZpZWxkcyAqaGVhZGVyRmllbGRzID0gW1tbX1dLQ3VzdG9tSGVhZGVyRmll
bGRzIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07Ci0gICAgW2hlYWRlckZpZWxkcyBzZXRGaWVs
ZHM6QHtAIlgta2V5MyI6IEAidmFsdWUzIiwgQCJYLWtleTQiOiBAInZhbHVlNCJ9XTsKLSAgICBb
aGVhZGVyRmllbGRzIHNldFRoaXJkUGFydHlEb21haW5zOkBbCi0gICAgICAgIEAiKi5ob3N0d2l0
aGFzdGVyaXNrLmNvbSIsCi0gICAgICAgIEAiaG9zdHdpdGhvdXRhc3Rlcmlzay5jb20iLAotICAg
ICAgICBAIiouY29tIiAvLyBzaG91bGQgYmUgaWdub3JlZC4KLSAgICBdXTsKLSAgICAKLSAgICBb
cHJlZmVyZW5jZXMgX3NldEN1c3RvbUhlYWRlckZpZWxkczpAW2hlYWRlckZpZWxkc11dOwotICAg
IAorICAgIF9XS1dlYnNpdGVQb2xpY2llcyAqd2Vic2l0ZVBvbGljaWVzID0gW1tbX1dLV2Vic2l0
ZVBvbGljaWVzIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgW3dlYnNpdGVQb2xpY2ll
cyBzZXRDdXN0b21IZWFkZXJGaWVsZHM6QHtAIlgta2V5MSI6IEAidmFsdWUxIiwgQCJYLWtleTIi
OiBAInZhbHVlMiJ9XTsKICAgICBpZiAoW25hdmlnYXRpb25BY3Rpb24ucmVxdWVzdC5VUkwucGF0
aCBpc0VxdWFsVG9TdHJpbmc6QCIvbWFpbnJlc291cmNlIl0pIHsKICAgICAgICAgZGlzcGF0Y2hf
YXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKLSAgICAgICAgICAgIGRlY2lzaW9u
SGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdywgcHJlZmVyZW5jZXMpOworICAg
ICAgICAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93LCB3
ZWJzaXRlUG9saWNpZXMpOwogICAgICAgICB9KTsKICAgICB9IGVsc2UKLSAgICAgICAgZGVjaXNp
b25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93LCBwcmVmZXJlbmNlcyk7Cisg
ICAgICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdywgd2Vi
c2l0ZVBvbGljaWVzKTsKIH0KIAogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHN0YXJ0VVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdXJsU2NoZW1lVGFzawog
ewogICAgIE5TU3RyaW5nICpwYXRoID0gdXJsU2NoZW1lVGFzay5yZXF1ZXN0LlVSTC5wYXRoOwog
ICAgIGlmIChbcGF0aCBpc0VxdWFsVG9TdHJpbmc6QCIvbWFpbnJlc291cmNlIl0pIHsKLSAgICAg
ICAgZXhwZWN0TGVnYWN5SGVhZGVycyh1cmxTY2hlbWVUYXNrLCB0cnVlKTsKKyAgICAgICAgZXhw
ZWN0SGVhZGVycyh1cmxTY2hlbWVUYXNrLCB0cnVlKTsKICAgICAgICAgcmVzcG9uZCh1cmxTY2hl
bWVUYXNrLCBAIjxzY3JpcHQ+ZmV0Y2goJ3N1YnJlc291cmNlJykudGhlbihmdW5jdGlvbihyZXNw
b25zZSl7ZmV0Y2goJ3Rlc3Q6Ly9kaWZmZXJlbnRzZWN1cml0eW9yaWdpbi9jcm9zc29yaWdpbnN1
YnJlc291cmNlJyx7bW9kZTonbm8tY29ycyd9KX0pPC9zY3JpcHQ+Iik7CiAgICAgfSBlbHNlIGlm
IChbcGF0aCBpc0VxdWFsVG9TdHJpbmc6QCIvc3VicmVzb3VyY2UiXSkgewotICAgICAgICBleHBl
Y3RMZWdhY3lIZWFkZXJzKHVybFNjaGVtZVRhc2ssIHRydWUpOworICAgICAgICBleHBlY3RIZWFk
ZXJzKHVybFNjaGVtZVRhc2ssIHRydWUpOwogICAgICAgICByZXNwb25kKHVybFNjaGVtZVRhc2sp
OwogICAgIH0gZWxzZSBpZiAoW3BhdGggaXNFcXVhbFRvU3RyaW5nOkAiL2Nyb3Nzb3JpZ2luc3Vi
cmVzb3VyY2UiXSkgewotICAgICAgICBleHBlY3RMZWdhY3lIZWFkZXJzKHVybFNjaGVtZVRhc2ss
IGZhbHNlKTsKKyAgICAgICAgZXhwZWN0SGVhZGVycyh1cmxTY2hlbWVUYXNrLCBmYWxzZSk7CiAg
ICAgICAgIHJlc3BvbmQodXJsU2NoZW1lVGFzayk7CiAgICAgICAgIGZpcnN0VGVzdERvbmUgPSB0
cnVlOwogICAgIH0gZWxzZSBpZiAoW3BhdGggaXNFcXVhbFRvU3RyaW5nOkAiL21haW5yZXNvdXJj
ZXdpdGhpZnJhbWUiXSkgewotICAgICAgICBleHBlY3RMZWdhY3lIZWFkZXJzKHVybFNjaGVtZVRh
c2ssIHRydWUpOworICAgICAgICBleHBlY3RIZWFkZXJzKHVybFNjaGVtZVRhc2ssIHRydWUpOwog
ICAgICAgICByZXNwb25kKHVybFNjaGVtZVRhc2ssIEAiPGlmcmFtZSBzcmM9J3Rlc3Q6Ly9pZnJh
bWVvcmlnaW4vaWZyYW1lbWFpbnJlc291cmNlJz48L2lmcmFtZT4iKTsKICAgICB9IGVsc2UgaWYg
KFtwYXRoIGlzRXF1YWxUb1N0cmluZzpAIi9pZnJhbWVtYWlucmVzb3VyY2UiXSkgewotICAgICAg
ICBleHBlY3RMZWdhY3lIZWFkZXJzKHVybFNjaGVtZVRhc2ssIGZhbHNlKTsKKyAgICAgICAgZXhw
ZWN0SGVhZGVycyh1cmxTY2hlbWVUYXNrLCBmYWxzZSk7CiAgICAgICAgIHJlc3BvbmQodXJsU2No
ZW1lVGFzaywgQCI8c2NyaXB0PmZldGNoKCdpZnJhbWVzdWJyZXNvdXJjZScpLnRoZW4oZnVuY3Rp
b24ocmVzcG9uc2Upe2ZldGNoKCd0ZXN0Oi8vbWFpbmZyYW1lb3JpZ2luL29yaWdpbmFsb3JpZ2lu
c3VicmVzb3VyY2UnLHttb2RlOiduby1jb3JzJ30pfSk8L3NjcmlwdD4iKTsKICAgICB9IGVsc2Ug
aWYgKFtwYXRoIGlzRXF1YWxUb1N0cmluZzpAIi9pZnJhbWVzdWJyZXNvdXJjZSJdKSB7Ci0gICAg
ICAgIGV4cGVjdExlZ2FjeUhlYWRlcnModXJsU2NoZW1lVGFzaywgZmFsc2UpOworICAgICAgICBl
eHBlY3RIZWFkZXJzKHVybFNjaGVtZVRhc2ssIGZhbHNlKTsKICAgICAgICAgcmVzcG9uZCh1cmxT
Y2hlbWVUYXNrKTsKICAgICB9IGVsc2UgaWYgKFtwYXRoIGlzRXF1YWxUb1N0cmluZzpAIi9vcmln
aW5hbG9yaWdpbnN1YnJlc291cmNlIl0pIHsKLSAgICAgICAgZXhwZWN0TGVnYWN5SGVhZGVycyh1
cmxTY2hlbWVUYXNrLCBmYWxzZSk7CisgICAgICAgIGV4cGVjdEhlYWRlcnModXJsU2NoZW1lVGFz
aywgZmFsc2UpOwogICAgICAgICByZXNwb25kKHVybFNjaGVtZVRhc2spOwogICAgICAgICBzZWNv
bmRUZXN0RG9uZSA9IHRydWU7CiAgICAgfSBlbHNlIGlmIChbcGF0aCBpc0VxdWFsVG9TdHJpbmc6
QCIvbmVzdGVkdG9wIl0pIHsKLSAgICAgICAgZXhwZWN0TGVnYWN5SGVhZGVycyh1cmxTY2hlbWVU
YXNrLCB0cnVlKTsKKyAgICAgICAgZXhwZWN0SGVhZGVycyh1cmxTY2hlbWVUYXNrLCB0cnVlKTsK
ICAgICAgICAgcmVzcG9uZCh1cmxTY2hlbWVUYXNrLCBAIjxpZnJhbWUgc3JjPSd0ZXN0Oi8vb3Ro
ZXJvcmlnaW4vbmVzdGVkbWlkJz48L2lmcmFtZT4iKTsKICAgICB9IGVsc2UgaWYgKFtwYXRoIGlz
RXF1YWxUb1N0cmluZzpAIi9uZXN0ZWRtaWQiXSkgewotICAgICAgICBleHBlY3RMZWdhY3lIZWFk
ZXJzKHVybFNjaGVtZVRhc2ssIGZhbHNlKTsKKyAgICAgICAgZXhwZWN0SGVhZGVycyh1cmxTY2hl
bWVUYXNrLCBmYWxzZSk7CiAgICAgICAgIHJlc3BvbmQodXJsU2NoZW1lVGFzaywgQCI8aWZyYW1l
IHNyYz0ndGVzdDovL3RvcG9yaWdpbi9uZXN0ZWRib3R0b20nPjwvaWZyYW1lPiIpOwogICAgIH0g
ZWxzZSBpZiAoW3BhdGggaXNFcXVhbFRvU3RyaW5nOkAiL25lc3RlZGJvdHRvbSJdKSB7Ci0gICAg
ICAgIGV4cGVjdExlZ2FjeUhlYWRlcnModXJsU2NoZW1lVGFzaywgdHJ1ZSk7CisgICAgICAgIGV4
cGVjdEhlYWRlcnModXJsU2NoZW1lVGFzaywgdHJ1ZSk7CiAgICAgICAgIHJlc3BvbmQodXJsU2No
ZW1lVGFzayk7CiAgICAgICAgIHRoaXJkVGVzdERvbmUgPSB0cnVlOwogICAgIH0gZWxzZSBpZiAo
W3BhdGggaXNFcXVhbFRvU3RyaW5nOkAiL3JlcXVlc3Rmcm9tYWJvdXRibGFuayJdKSB7Ci0gICAg
ICAgIGV4cGVjdExlZ2FjeUhlYWRlcnModXJsU2NoZW1lVGFzaywgdHJ1ZSk7Ci0gICAgICAgIHJl
c3BvbmQodXJsU2NoZW1lVGFzayk7Ci0gICAgICAgIGZvdXJ0aFRlc3REb25lID0gdHJ1ZTsKLSAg
ICB9IGVsc2UgaWYgKFtwYXRoIGlzRXF1YWxUb1N0cmluZzpAIi90ZXN0Y3VzdG9taGVhZGVyZmll
bGRob3N0cyJdKSB7Ci0gICAgICAgIGV4cGVjdEhlYWRlcnModXJsU2NoZW1lVGFzaywgdHJ1ZSk7
Ci0gICAgICAgIE5TU3RyaW5nICpodG1sID0gQCI8c2NyaXB0PmZldGNoKCd0ZXN0Oi8vYS5iLmMu
c3ViLmhvc3R3aXRoYXN0ZXJpc2suY29tL2hvc3R0ZXN0MScse21vZGU6J25vLWNvcnMnfSkiCi0g
ICAgICAgICAgICAiLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2Upe2ZldGNoKCd0ZXN0Oi8vc3ViaG9z
dHdpdGhhc3Rlcmlzay5jb20vaG9zdHRlc3QyJyx7bW9kZTonbm8tY29ycyd9KX0pIgotICAgICAg
ICAgICAgIi50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKXtmZXRjaCgndGVzdDovL2hvc3R3aXRob3V0
YXN0ZXJpc2suY29tL2hvc3R0ZXN0Mycse21vZGU6J25vLWNvcnMnfSl9KSIKLSAgICAgICAgICAg
ICIudGhlbihmdW5jdGlvbihyZXNwb25zZSl7ZmV0Y2goJ3Rlc3Q6Ly9hLmIuYy5zdWIuaG9zdHdp
dGhvdXRhc3Rlcmlzay5jb20vaG9zdHRlc3Q0Jyx7bW9kZTonbm8tY29ycyd9KX0pPC9zY3JpcHQ+
IjsKLSAgICAgICAgcmVzcG9uZCh1cmxTY2hlbWVUYXNrLCBodG1sKTsKLSAgICB9IGVsc2UgaWYg
KFtwYXRoIGlzRXF1YWxUb1N0cmluZzpAIi9ob3N0dGVzdDEiXSkgewotICAgICAgICBleHBlY3RI
ZWFkZXJzKHVybFNjaGVtZVRhc2ssIHRydWUpOwotICAgICAgICByZXNwb25kKHVybFNjaGVtZVRh
c2spOwotICAgIH0gZWxzZSBpZiAoW3BhdGggaXNFcXVhbFRvU3RyaW5nOkAiL2hvc3R0ZXN0MiJd
KSB7Ci0gICAgICAgIGV4cGVjdEhlYWRlcnModXJsU2NoZW1lVGFzaywgZmFsc2UpOwotICAgICAg
ICByZXNwb25kKHVybFNjaGVtZVRhc2spOwotICAgIH0gZWxzZSBpZiAoW3BhdGggaXNFcXVhbFRv
U3RyaW5nOkAiL2hvc3R0ZXN0MyJdKSB7CiAgICAgICAgIGV4cGVjdEhlYWRlcnModXJsU2NoZW1l
VGFzaywgdHJ1ZSk7CiAgICAgICAgIHJlc3BvbmQodXJsU2NoZW1lVGFzayk7Ci0gICAgfSBlbHNl
IGlmIChbcGF0aCBpc0VxdWFsVG9TdHJpbmc6QCIvaG9zdHRlc3Q0Il0pIHsKLSAgICAgICAgZXhw
ZWN0SGVhZGVycyh1cmxTY2hlbWVUYXNrLCBmYWxzZSk7Ci0gICAgICAgIHJlc3BvbmQodXJsU2No
ZW1lVGFzayk7Ci0gICAgICAgIGZpZnRoVGVzdERvbmUgPSB0cnVlOwotICAgIH0gZWxzZSBpZiAo
W3BhdGggaXNFcXVhbFRvU3RyaW5nOkAiL3Rlc3RjdXN0b21oZWFkZXJmaWVsZGhvc3RzIl0pCisg
ICAgICAgIGZvdXJ0aFRlc3REb25lID0gdHJ1ZTsKKyAgICB9IGVsc2UKICAgICAgICAgRVhQRUNU
X1RSVUUoZmFsc2UpOwogfQogCkBAIC0xMDcwLDkgKzEwMjMsNiBAQCBURVNUKFdlYktpdCwgQ3Vz
dG9tSGVhZGVyRmllbGRzKQogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Q6Ly90b3BvcmlnaW4v
bmVzdGVkdG9wIl1dXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnRoaXJkVGVzdERv
bmUpOwotCi0gICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Q6Ly9ob3N0L3Rlc3RjdXN0b21oZWFkZXJm
aWVsZGhvc3RzIl1dXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpZnRoVGVzdERv
bmUpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgbG9hZENvdW50Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>