<?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>48007</bug_id>
          
          <creation_ts>2010-10-20 14:39:58 -0700</creation_ts>
          <short_desc>REGRESSION(r70165): It broke tests on Qt bot (Requested by Ossy on #webkit).</short_desc>
          <delta_ts>2010-10-20 14:49:53 -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>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>45271</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>peter.rybin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>297030</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-20 14:39:58 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/70165 broke the build:
It broke tests on Qt bot (Requested by Ossy on #webkit).

This is an automatic bug report generated by the sheriff-bot. 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 case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297031</commentid>
    <comment_count>1</comment_count>
      <attachid>71338</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-20 14:40:37 -0700</bug_when>
    <thetext>Created attachment 71338
ROLLOUT of r70165

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 --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297040</commentid>
    <comment_count>2</comment_count>
    <who name="Peter Rybin">peter.rybin</who>
    <bug_when>2010-10-20 14:49:36 -0700</bug_when>
    <thetext>I probably made a mistake in XMLDocumentParserQt.cpp, I put incorrect reinterpret type instruction there.
I am working on the patch which I&apos;m going to upload here.
Peter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297041</commentid>
    <comment_count>3</comment_count>
      <attachid>71338</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-20 14:49:48 -0700</bug_when>
    <thetext>Comment on attachment 71338
ROLLOUT of r70165

Clearing flags on attachment: 71338

Committed r70181: &lt;http://trac.webkit.org/changeset/70181&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297042</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-20 14:49:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71338</attachid>
            <date>2010-10-20 14:40:37 -0700</date>
            <delta_ts>2010-10-20 14:49:48 -0700</delta_ts>
            <desc>ROLLOUT of r70165</desc>
            <filename>bug-48007-20101020214034.patch</filename>
            <type>text/plain</type>
            <size>58649</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCAwYjc5YzJjYWE0MDQ1YTY2YmE4YTQ5ZGQ3OTgwM2MyMDVlOGM1MDBkLi4z
ZGQyMWMzNjVhMmNkYjgxOGZlNTRkOGU0NGNhMjcyOTdlYWY2MGU1IDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTAtMTAtMjAgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3MDE2NS4KKyAg
ICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNzAxNjUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MDA3CisKKyAgICAgICAgSXQg
YnJva2UgdGVzdHMgb24gUXQgYm90IChSZXF1ZXN0ZWQgYnkgT3NzeSBvbiAjd2Via2l0KS4KKwor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmd5cGk6
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiB3dGYvdGV4dC9UZXh0UG9zaXRpb24uaDogUmVtb3ZlZC4KKwogMjAxMC0xMC0yMCAg
QnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQWRhbSBSb2Jlbi4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxl
LmFtIGIvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggYWQ0ZjVhYjRkNWZlZDhk
OTliZGQ4Mzk1ZjAwZmEwYTI3ODFkYzkxNC4uN2VlMzY4YWRjMjlkNjg0MjkxODg0MTI3ZTQ2Y2U4
NDBmMWI0ZjNkYiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0KKysr
IGIvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTUxNyw3ICs1MTcsNiBAQCBqYXZh
c2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJ
bXBsLmNwcCBcCiAJSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvU3RyaW5nSW1wbC5oIFwKIAlKYXZh
U2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdTdGF0aWNzLmNwcCBcCi0JSmF2YVNjcmlwdENvcmUv
d3RmL3RleHQvVGV4dFBvc2l0aW9uLmggXAogCUphdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0
cmluZy5jcHAgXAogCUphdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0cmluZy5oIFwKIAlKYXZh
U2NyaXB0Q29yZS93dGYvVGhyZWFkSWRlbnRpZmllckRhdGFQdGhyZWFkcy5jcHAgXApkaWZmIC0t
Z2l0IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaSBiL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmd5cGkKaW5kZXggOGExZDdkMjMxYTljYzg0NzQ1ZDc5OTk0Y2Y5OGQw
NzZmYjljNjRmYy4uMTE5MGE5Njk4MjU2MzNiZDE0YWU1OWU5ZWZiN2M4ZDI3ODAxYmE2ZiAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQorKysgYi9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCkBAIC00NjAsNyArNDYwLDYgQEAKICAgICAgICAg
ICAgICd3dGYvdGV4dC9TdHJpbmdJbXBsLmNwcCcsCiAgICAgICAgICAgICAnd3RmL3RleHQvU3Ry
aW5nSW1wbC5oJywKICAgICAgICAgICAgICd3dGYvdGV4dC9TdHJpbmdTdGF0aWNzLmNwcCcsCi0g
ICAgICAgICAgICAnd3RmL3RleHQvVGV4dFBvc2l0aW9uLmgnLAogICAgICAgICAgICAgJ3d0Zi90
ZXh0L1dURlN0cmluZy5jcHAnLAogICAgICAgICAgICAgJ3d0Zi90ZXh0L1dURlN0cmluZy5oJywK
ICAgICAgICAgICAgICd3dGYvdW5pY29kZS9Db2xsYXRvci5oJywKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGY5NWZhOWNkMTNhMzQyYmQ0NDg0ZWY1OTdhNTA0N2FjYTIzMGM0YjYuLjQ1NjI4YTllZTdkZTNh
NTZiNTE1NGZlY2Q4OGUyMWM3OWRiYjM3N2EgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTU0LDcgKzU1
NCw2IEBACiAJCUUxRUU3OTNEMEQ2QzlCOTIwMEZFQTNCQSAvKiBUaHJlYWRpbmdQdGhyZWFkcy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFNzkz
QzBENkM5QjkyMDBGRUEzQkEgLyogVGhyZWFkaW5nUHRocmVhZHMuY3BwICovOyB9OwogCQlFMUVG
NzlBQTBDRTk3QkE2MDA4OEQ1MDAgLyogVVRGOC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVGNzlBODBDRTk3QkE2MDA4OEQ1MDAgLyogVVRGOC5j
cHAgKi87IH07CiAJCUU0OEUwRjJEMEY4MjE1MTcwMEE4Q0EzNyAvKiBGYXN0QWxsb2NCYXNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDhFMEYyQzBG
ODIxNTE3MDBBOENBMzcgLyogRmFzdEFsbG9jQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUYzQkQzMUVEMTI2NzM1NzcwMDY1NDY3RiAvKiBU
ZXh0UG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEYzQkQzMUQwMTI2NzMwMTgwMDY1NDY3RiAvKiBUZXh0UG9zaXRpb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTFCNDQ3QTBFQ0NENzNC
MDA0RjRERDEgLyogU3RkTGliRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGRTFCNDQ3OTBFQ0NENzNCMDA0RjRERDEgLyogU3RkTGliRXh0cmFz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIC8qIEVu
ZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCkBAIC0xMTQzLDcgKzExNDIsNiBAQAogCQlFMUVG
NzlBODBDRTk3QkE2MDA4OEQ1MDAgLyogVVRGOC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBVVEY4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFF
Rjc5QTkwQ0U5N0JBNjAwODhENTAwIC8qIFVURjguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVVRGOC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDhFMEYyQzBG
ODIxNTE3MDBBOENBMzcgLyogRmFzdEFsbG9jQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGYXN0QWxsb2NCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUYzQkQzMUQwMTI2NzMwMTgwMDY1NDY3RiAvKiBUZXh0UG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gVGV4dFBvc2l0aW9uLmg7IHBhdGggPSB0ZXh0L1RleHRQb3Np
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUJCMkJDNTAzMEY3NzIxMDFG
Q0ZFMUQgLyogQ29tcGxldGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDb21wbGV0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgfTsKIAkJRjVDMjkwRTYwMjg0Rjk4RTAxODYzNUNBIC8qIEphdmFTY3JpcHRD
b3JlUHJlZml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEphdmFTY3JpcHRDb3JlUHJlZml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgfTsKIAkJRjY4RUJCOEMwMjU1RDRDNjAxRkY2MEY3IC8qIGNvbmZpZy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBjb25maWcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwpAQCAtMTg1OSw3ICsx
ODU3LDYgQEAKIAkJCQk4NjhCRkEwNzExN0NFRkQxMDBCOTA4QjEgLyogU3RyaW5nSW1wbC5oICov
LAogCQkJCTg2Qjk5QUUyMTE3RTU3ODEwMERGNUE5MCAvKiBTdHJpbmdJbXBsQmFzZS5oICovLAog
CQkJCTg2MjZCRUNFMTE5MjhFMzkwMDc4MkZBQiAvKiBTdHJpbmdTdGF0aWNzLmNwcCAqLywKLQkJ
CQlGM0JEMzFEMDEyNjczMDE4MDA2NTQ2N0YgLyogVGV4dFBvc2l0aW9uLmggKi8sCiAJCQkJODY4
QkZBMTUxMTdDRjE5OTAwQjkwOEIxIC8qIFdURlN0cmluZy5jcHAgKi8sCiAJCQkJODY4QkZBMTYx
MTdDRjE5OTAwQjkwOEIxIC8qIFdURlN0cmluZy5oICovLAogCQkJKTsKQEAgLTIzNDksNyArMjM0
Niw2IEBACiAJCQkJOTAyMTNFM0UxMjNBNDBDMjAwRDQyMkYzIC8qIE1lbW9yeVN0YXRpc3RpY3Mu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3MzBCNjEyMTI1MDA2OEYwMDlEMjVCMSAvKiBTdHJpY3RF
dmFsQWN0aXZhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzRjVDREMxMjY5MjI5QjAwNDkx
OTFFIC8qIE51bGxQdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCUYzQkQzMUVEMTI2NzM1NzcwMDY1
NDY3RiAvKiBUZXh0UG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvSmF2YVNj
cmlwdENvcmUvd3RmL3RleHQvVGV4dFBvc2l0aW9uLmggYi9KYXZhU2NyaXB0Q29yZS93dGYvdGV4
dC9UZXh0UG9zaXRpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjNkYzU5NDkw
ZGRhY2FiMWQ3ZWE5ODkxZmY3NTE1MWZmZDU2MGI2Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9UZXh0UG9zaXRp
b24uaAorKysgL2Rldi9udWxsCkBAIC0xLDE0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
Ci0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBUZXh0UG9zaXRpb25faAotI2RlZmluZSBUZXh0UG9zaXRpb25faAotCi0jaW5jbHVkZSA8
d3RmL0Fzc2VydGlvbnMuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLS8qCi0gKiBUZXh0IFBvc2l0
aW9uCi0gKgotICogVGV4dFBvc2l0aW9uIHN0cnVjdHVyZSBzcGVjaWZpZXMgY29vcmRpbmF0ZXMg
d2l0aGluIGFuIHRleHQgcmVzb3VyY2UuIEl0IGlzIHVzZWQgbW9zdGx5Ci0gKiBmb3Igc2F2aW5n
IHNjcmlwdCBzb3VyY2UgcG9zaXRpb24uCi0gKgotICogTGF0ZXIgVGV4dFBvc2l0aW9uMCBhbmQg
VGV4dFBvc2l0aW9uMSBhbmQgYm90aCBudW1iZXIgdHlwZXMgY2FuIGJlIG1lcmdlZCB0b2dldGhl
ciBxdWl0ZSBlYXNpbHkuCi0gKgotICogMC1iYXNlZCBhbmQgMS1iYXNlZAotICoKLSAqIExpbmUg
YW5kIGNvbHVtbiBudW1iZXJzIGNvdWxkIGJlIGludGVycHJldGVkIGFzIHplcm8tYmFzZWQgb3Ig
MS1iYXNlZC4gU2luY2UKLSAqIGJvdGggcHJhY3RpY2VzIGNvZXhpc3QgaW4gV2ViS2l0IHNvdXJj
ZSBiYXNlLCAnaW50JyB0eXBlIHNob3VsZCBiZSByZXBsYWNlZCB3aXRoCi0gKiBhIGRlZGljYXRl
ZCB3cmFwcGVyIHR5cGVzLCBzbyB0aGF0IGNvbXBpbGVyIGhlbHBlZCB1cyB3aXRoIHRoaXMgYW1i
aWd1aXR5LgotICoKLSAqIEhlcmUgd2UgaW50cm9kdWNlIDIgdHlwZXMgb2YgbnVtYmVyczogWmVy
b0Jhc2VkTnVtYmVyIGFuZCBPbmVCYXNlZE51bWJlciBhbmQKLSAqIDIgY29ycmVzcG9uZGluZyB0
eXBlcyBvZiBUZXh0UG9zaXRpb24gc3RydWN0dXJlLiBXaGlsZSBvbmx5IG9uZSB0eXBlIG91Z2h0
IHRvIGJlIGVub3VnaCwKLSAqIHRoaXMgaXMgZG9uZSB0byBrZWVwIHRyYW5zaXRpb24gdG8gdGhl
IG5ldyB0eXBlcyBhcyB0cmFuc3BhcmVudCBhcyBwb3NzaWJsZToKLSAqIGUuZy4gaW4gYXJlYXMg
d2hlcmUgMC1iYXNlZCBpbnRlZ2VycyBhcmUgdXNlZCwgVGV4dFBvc2l0aW9uMCBzaG91bGQgYmUg
aW50cm9kdWNlZC4gVGhpcwotICogd2F5IGFsbCBjaGFuZ2VzIHdpbGwgcmVtYWluIHRyYWNrYWJs
ZS4KLSAqCi0gKiBMYXRlciBib3RoIG51bWJlciB0eXBlcyBjYW4gYmUgbWVyZ2VkIGluIG9uZSB0
eXBlIHF1aXRlIGVhc2lseS4KLSAqCi0gKiBGb3IgdHlwZSBzYWZldHkgYW5kIGZvciB0aGUgZnV0
dXJlIHR5cGUgbWVyZ2UgaXQgaXMgaW1wb3J0YW50IHRoYXQgYWxsIG9wZXJhdGlvbnMgaW4gQVBJ
Ci0gKiB0aGF0IGFjY2VwdCBvciByZXR1cm4gaW50ZWdlciBoYXZlIGEgbmFtZSBleHBsaWNpdGx5
IGRlZmluaW5nIGJhc2Ugb2YgaW50ZWdlci4gRm9yIHRoaXMgcmVhc29uCi0gKiBpbnQtcmVjZWl2
aW5nIGNvbnN0cnVjdG9ycyBhcmUgaGlkZGVuIGZyb20gQVBJLgotICovCi0KLXRlbXBsYXRlPHR5
cGVuYW1lIE5VTUJFUj4KLWNsYXNzIFRleHRQb3NpdGlvbiB7Ci1wdWJsaWM6Ci0gICAgVGV4dFBv
c2l0aW9uKE5VTUJFUiBsaW5lLCBOVU1CRVIgY29sdW1uKQotICAgICAgICA6IG1fbGluZShsaW5l
KQotICAgICAgICAsIG1fY29sdW1uKGNvbHVtbikKLSAgICB7Ci0gICAgfQotICAgIFRleHRQb3Np
dGlvbigpIHt9Ci0KLSAgICAvLyBBICdtaW5pbXVtJyB2YWx1ZSBvZiBwb3NpdGlvbiwgdXNlZCBh
cyBhIGRlZmF1bHQgdmFsdWUuCi0gICAgc3RhdGljIFRleHRQb3NpdGlvbjxOVU1CRVI+IG1pbmlt
dW1Qb3NpdGlvbigpIHsgcmV0dXJuIFRleHRQb3NpdGlvbjxOVU1CRVI+KE5VTUJFUjo6YmFzZSgp
LCBOVU1CRVI6OmJhc2UoKSk7IH0KLQotICAgIC8vIEEgdmFsdWUgd2l0aCBsaW5lIHZhbHVlIGxl
c3MgdGhhbiBhIG1pbmltdW07IHVzZWQgYXMgYW4gaW1wb3NzaWJsZSBwb3NpdGlvbi4KLSAgICBz
dGF0aWMgVGV4dFBvc2l0aW9uPE5VTUJFUj4gYmVsb3dSYW5nZVBvc2l0aW9uKCkgeyByZXR1cm4g
VGV4dFBvc2l0aW9uPE5VTUJFUj4oTlVNQkVSOjpiZWxvd0Jhc2UoKSwgTlVNQkVSOjpiYXNlKCkp
OyB9Ci0KLSAgICBOVU1CRVIgbV9saW5lOwotICAgIE5VTUJFUiBtX2NvbHVtbjsKLX07Ci0KLWNs
YXNzIE9uZUJhc2VkTnVtYmVyOwotCi0vLyBBbiBpbnQgd3JhcHBlciB0aGF0IGFsd2F5cyByZW1p
bmRzIHlvdSB0aGF0IHRoZSBudW1iZXIgc2hvdWxkIGJlIDAtYmFzZWQKLWNsYXNzIFplcm9CYXNl
ZE51bWJlciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFplcm9CYXNlZE51bWJlciBmcm9tWmVyb0Jh
c2VkSW50KGludCB6ZXJvQmFzZWRJbnQpIHsgcmV0dXJuIFplcm9CYXNlZE51bWJlcih6ZXJvQmFz
ZWRJbnQpOyB9Ci0KLSAgICBaZXJvQmFzZWROdW1iZXIoKSB7fQotCi0gICAgaW50IHplcm9CYXNl
ZEludCgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KLQotICAgIE9uZUJhc2VkTnVtYmVyIGNv
bnZlcnRUb09uZUJhc2VkKCkgY29uc3Q7Ci0KLSAgICBzdGF0aWMgWmVyb0Jhc2VkTnVtYmVyIGJh
c2UoKSB7IHJldHVybiAwOyB9Ci0gICAgc3RhdGljIFplcm9CYXNlZE51bWJlciBiZWxvd0Jhc2Uo
KSB7IHJldHVybiAtMTsgfQotCi1wcml2YXRlOgotICAgIFplcm9CYXNlZE51bWJlcihpbnQgdmFs
dWUpIDogbV92YWx1ZSh2YWx1ZSkge30KLSAgICBpbnQgbV92YWx1ZTsKLX07Ci0KLS8vIEFuIGlu
dCB3cmFwcGVyIHRoYXQgYWx3YXlzIHJlbWluZHMgeW91IHRoYXQgdGhlIG51bWJlciBzaG91bGQg
YmUgMS1iYXNlZAotY2xhc3MgT25lQmFzZWROdW1iZXIgewotcHVibGljOgotICAgIHN0YXRpYyBP
bmVCYXNlZE51bWJlciBmcm9tT25lQmFzZWRJbnQoaW50IG9uZUJhc2VkSW50KSB7IHJldHVybiBP
bmVCYXNlZE51bWJlcihvbmVCYXNlZEludCk7IH0KLSAgICBPbmVCYXNlZE51bWJlcigpIHt9Ci0K
LSAgICBpbnQgb25lQmFzZWRJbnQoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9Ci0gICAgaW50
IGNvbnZlcnRBc1plcm9CYXNlZEludCgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUgLSAxOyB9Ci0g
ICAgWmVyb0Jhc2VkTnVtYmVyIGNvbnZlcnRUb1plcm9CYXNlZCgpIGNvbnN0IHsgcmV0dXJuIFpl
cm9CYXNlZE51bWJlcjo6ZnJvbVplcm9CYXNlZEludChtX3ZhbHVlIC0gMSk7IH0KLQotICAgIHN0
YXRpYyBPbmVCYXNlZE51bWJlciBiYXNlKCkgeyByZXR1cm4gMTsgfQotICAgIHN0YXRpYyBPbmVC
YXNlZE51bWJlciBiZWxvd0Jhc2UoKSB7IHJldHVybiAwOyB9Ci0KLXByaXZhdGU6Ci0gICAgT25l
QmFzZWROdW1iZXIoaW50IHZhbHVlKSA6IG1fdmFsdWUodmFsdWUpIHt9Ci0gICAgaW50IG1fdmFs
dWU7Ci19OwotCi10eXBlZGVmIFRleHRQb3NpdGlvbjxaZXJvQmFzZWROdW1iZXI+IFRleHRQb3Np
dGlvbjA7Ci10eXBlZGVmIFRleHRQb3NpdGlvbjxPbmVCYXNlZE51bWJlcj4gVGV4dFBvc2l0aW9u
MTsKLQotaW5saW5lIFRleHRQb3NpdGlvbjAgdG9aZXJvQmFzZWRUZXh0UG9zaXRpb24oY29uc3Qg
VGV4dFBvc2l0aW9uMSYgcG9zaXRpb24pCi17Ci0gICAgcmV0dXJuIFRleHRQb3NpdGlvbjAocG9z
aXRpb24ubV9saW5lLmNvbnZlcnRUb1plcm9CYXNlZCgpLCBwb3NpdGlvbi5tX2NvbHVtbi5jb252
ZXJ0VG9aZXJvQmFzZWQoKSk7Ci19Ci0KLWlubGluZSBUZXh0UG9zaXRpb24xIHRvT25lQmFzZWRU
ZXh0UG9zaXRpb24oY29uc3QgVGV4dFBvc2l0aW9uMCYgcG9zaXRpb24pCi17Ci0gICAgcmV0dXJu
IFRleHRQb3NpdGlvbjEocG9zaXRpb24ubV9saW5lLmNvbnZlcnRUb09uZUJhc2VkKCksIHBvc2l0
aW9uLm1fY29sdW1uLmNvbnZlcnRUb09uZUJhc2VkKCkpOwotfQotCi1pbmxpbmUgT25lQmFzZWRO
dW1iZXIgWmVyb0Jhc2VkTnVtYmVyOjpjb252ZXJ0VG9PbmVCYXNlZCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIE9uZUJhc2VkTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQobV92YWx1ZSArIDEpOwotfQot
Ci19Ci0KLXVzaW5nIFdURjo6VGV4dFBvc2l0aW9uMDsKLXVzaW5nIFdURjo6VGV4dFBvc2l0aW9u
MTsKLQotI2VuZGlmIC8vIFRleHRQb3NpdGlvbl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ0YTc4MzE0OGZhZDFiMGQyOTg1OWQ3ZWQ2
MTFhMjUyODEwMjE1NjEuLjgyZTgyMzAzMTIzMjU2YzAzNjI2MjAzMTM1NTA0NjE0NzdiZTdlNzgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNzUgQEAKKzIwMTAtMTAtMjAgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5i
b3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3MDE2NS4K
KyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNzAxNjUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MDA3CisKKyAgICAgICAg
SXQgYnJva2UgdGVzdHMgb24gUXQgYm90IChSZXF1ZXN0ZWQgYnkgT3NzeSBvbiAjd2Via2l0KS4K
KworICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi90ZXh0L1RleHRQb3NpdGlvbi5oOiBS
ZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFNvdXJjZUNvZGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdFNvdXJjZUNvZGU6OlNjcmlwdFNvdXJjZUNvZGUpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
Y2hlZHVsZWRBY3Rpb246OlNjaGVkdWxlZEFjdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvdjgv
U2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVy
OjpldmVudEhhbmRsZXJMaW5lTnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRy
b2xsZXI6OmV2ZW50SGFuZGxlckNvbHVtbk51bWJlcik6CisgICAgICAgICogYmluZGluZ3Mvdjgv
U2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdEV2ZW50TGlz
dGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5l
cik6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0U291cmNlQ29kZS5oOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0U291cmNlQ29kZTo6U2NyaXB0U291cmNlQ29kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRTb3VyY2VDb2RlOjpzdGFydExpbmUpOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L1Y4TGF6eUV2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhMYXp5RXZl
bnRMaXN0ZW5lcjo6VjhMYXp5RXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpWOExh
enlFdmVudExpc3RlbmVyOjpwcmVwYXJlTGlzdGVuZXJPYmplY3QpOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1Y4TGF6eUV2ZW50TGlzdGVuZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlY4TGF6eUV2
ZW50TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhQcm94eS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5Ojpjb21waWxlU2NyaXB0KToKKyAgICAgICAgKFdl
YkNvcmU6OlY4UHJveHk6OmV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OnJ1
blNjcmlwdCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhQcm94eS5oOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OmV2YWx1YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6cnVuU2NyaXB0KToKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaDoKKyAgICAgICAgKiBi
aW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlclNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKiBkb20vUGVuZGlu
Z1NjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZW5kaW5nU2NyaXB0OjpyZWxlYXNlRWxl
bWVudEFuZENsZWFyKToKKyAgICAgICAgKiBkb20vUGVuZGluZ1NjcmlwdC5oOgorICAgICAgICAo
V2ViQ29yZTo6UGVuZGluZ1NjcmlwdDo6UGVuZGluZ1NjcmlwdCk6CisgICAgICAgIChXZWJDb3Jl
OjpQZW5kaW5nU2NyaXB0OjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ1Nj
cmlwdDo6c3RhcnRpbmdMaW5lTnVtYmVyKToKKyAgICAgICAgKiBkb20vU2NyaXB0YWJsZURvY3Vt
ZW50UGFyc2VyLmg6CisgICAgICAgICogZG9tL1hNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAg
ICogZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpY
TUxEb2N1bWVudFBhcnNlcjo6WE1MRG9jdW1lbnRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6
WE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVudE5zKToKKyAgICAgICAgKFdlYkNvcmU6OlhN
TERvY3VtZW50UGFyc2VyOjplbmRFbGVtZW50TnMpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9j
dW1lbnRQYXJzZXI6OmxpbmVOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQ
YXJzZXI6OmNvbHVtbk51bWJlcik6CisgICAgICAgICogZG9tL1hNTERvY3VtZW50UGFyc2VyUXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OlhNTERvY3VtZW50UGFy
c2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpwYXJzZVN0YXJ0RWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VFbmRFbGVt
ZW50KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpydW5TY3JpcHRzRm9yUGF1c2VkVHJl
ZUJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpjb2x1bW5O
dW1iZXIpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oOgorICAg
ICAgICAqIGh0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFNjcmlwdFJ1bm5lcjo6c291cmNlRnJvbVBlbmRpbmdTY3JpcHQpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MU2NyaXB0UnVubmVyOjpydW5TY3JpcHQpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxT
Y3JpcHRSdW5uZXIuaDoKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjpIVE1MVHJlZUJ1aWxkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRyZWVCdWlsZGVyOjp0YWtlU2NyaXB0VG9Qcm9jZXNzKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTY3JpcHRTdGFydFRhZyk6Cisg
ICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmg6CisKIDIwMTAtMTAtMjAgIERh
dmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBC
ZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi90ZXh0
L1RleHRQb3NpdGlvbi5oIGIvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvdGV4dC9UZXh0
UG9zaXRpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTYwMDk4NDZlYTA1MmRm
YmZmMDZhNDA5ZjIxOTlhNzAyMmU4OTdkNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi90ZXh0L1RleHRQ
b3NpdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0jaWZuZGVmIFdlYkNvcmVf
RldEX1RleHRQb3NpdGlvbl9oCi0jZGVmaW5lIFdlYkNvcmVfRldEX1RleHRQb3NpdGlvbl9oCi0j
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVGV4dFBvc2l0aW9uLmg+Ci0jZW5kaWYKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKaW5kZXggMDkyZWViOGYwOGEzMjlhMzkxZDk4NzE2
ZGZlZGQ5OTk2NTYwODhjMC4uMzJkNjI5OGNkYmRhNzcyZGFhMTNlMTAzM2UzY2YwYWE0MGY1OTRi
MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRTb3VyY2VDb2RlLmgKQEAgLTM1LDE2ICszNSwx
NSBAQAogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3RyaW5n
U291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJLVVJMLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQv
VGV4dFBvc2l0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGUgewogcHVibGljOgotICAgIFNjcmlwdFNv
dXJjZUNvZGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IEtVUkwmIHVybCA9IEtVUkwoKSwg
Y29uc3QgVGV4dFBvc2l0aW9uMSYgc3RhcnRQb3NpdGlvbiA9IFRleHRQb3NpdGlvbjE6Om1pbmlt
dW1Qb3NpdGlvbigpKQorICAgIFNjcmlwdFNvdXJjZUNvZGUoY29uc3QgU3RyaW5nJiBzb3VyY2Us
IGNvbnN0IEtVUkwmIHVybCA9IEtVUkwoKSwgaW50IHN0YXJ0TGluZSA9IDEpCiAgICAgICAgIDog
bV9wcm92aWRlcihTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRlKHNvdXJjZSwgdXJsLmlzTnVs
bCgpID8gU3RyaW5nKCkgOiB1cmwuc3RyaW5nKCkpKQotICAgICAgICAsIG1fY29kZShtX3Byb3Zp
ZGVyLCBzdGFydFBvc2l0aW9uLm1fbGluZS5vbmVCYXNlZEludCgpKQorICAgICAgICAsIG1fY29k
ZShtX3Byb3ZpZGVyLCBzdGFydExpbmUpCiAgICAgICAgICwgbV91cmwodXJsKQogICAgIHsKICAg
ICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5jcHAg
Yi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5jcHAKaW5kZXggNzA4ZmJlNjdm
ZTk0ZDc3MjIxMmM4YmMzZDI3ZGUxOGJkNTEwMTJjYy4uZGNkMGJiMzM3NzE4MTMxODQyMGMxMDcz
YmUyNTFhOWU1ODRiYTRiNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY2hlZHVs
ZWRBY3Rpb24uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NoZWR1bGVkQWN0aW9uLmNw
cApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNjaGVkdWxlZEFjdGlv
bjo6U2NoZWR1bGVkQWN0aW9uKHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQsIHY4OjpI
YW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5jLCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IGFyZ3ZbXSkKICAgICA6IG1fY29udGV4dChjb250ZXh0KQotICAgICwgbV9jb2RlKFN0cmluZygp
LCBLVVJMKCksIFRleHRQb3NpdGlvbjE6OmJlbG93UmFuZ2VQb3NpdGlvbigpKQorICAgICwgbV9j
b2RlKFN0cmluZygpLCBLVVJMKCksIDApCiB7CiAgICAgbV9mdW5jdGlvbiA9IHY4OjpQZXJzaXN0
ZW50PHY4OjpGdW5jdGlvbj46Ok5ldyhmdW5jKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0
Q29udHJvbGxlci5jcHAKaW5kZXggYjlkMTA3NWQyNDM1MDBjMTI0OTYwMDVhNWNlYzhmZmNlNmZm
NjViZS4uNDkwNGE0ZTY1ZmRlOWNiM2JmNDNiYmE1NGE1YjE4ZDJhZjc4MmQxMCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0yNjIsMTIgKzI2MiwyMCBAQCBT
Y3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VD
b2RlJiBzb3VyY2VDb2RlLCBTaG91bAogICAgIHJldHVybiBTY3JpcHRWYWx1ZShvYmplY3QpOwog
fQogCi1UZXh0UG9zaXRpb24wIFNjcmlwdENvbnRyb2xsZXI6OmV2ZW50SGFuZGxlclBvc2l0aW9u
KCkgY29uc3QKK2ludCBTY3JpcHRDb250cm9sbGVyOjpldmVudEhhbmRsZXJMaW5lTnVtYmVyKCkg
Y29uc3QKIHsKICAgICBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9IG1fZnJhbWUt
PmRvY3VtZW50KCktPnNjcmlwdGFibGVEb2N1bWVudFBhcnNlcigpOwogICAgIGlmIChwYXJzZXIp
Ci0gICAgICAgIHJldHVybiBwYXJzZXItPnRleHRQb3NpdGlvbigpOwotICAgIHJldHVybiBUZXh0
UG9zaXRpb24wOjptaW5pbXVtUG9zaXRpb24oKTsKKyAgICAgICAgcmV0dXJuIHBhcnNlci0+bGlu
ZU51bWJlcigpOworICAgIHJldHVybiAwOworfQorCitpbnQgU2NyaXB0Q29udHJvbGxlcjo6ZXZl
bnRIYW5kbGVyQ29sdW1uTnVtYmVyKCkgY29uc3QKK3sKKyAgICBTY3JpcHRhYmxlRG9jdW1lbnRQ
YXJzZXIqIHBhcnNlciA9IG1fZnJhbWUtPmRvY3VtZW50KCktPnNjcmlwdGFibGVEb2N1bWVudFBh
cnNlcigpOworICAgIGlmIChwYXJzZXIpCisgICAgICAgIHJldHVybiBwYXJzZXItPmNvbHVtbk51
bWJlcigpOworICAgIHJldHVybiAwOwogfQogCiB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmZpbmlz
aGVkV2l0aEV2ZW50KEV2ZW50KiBldmVudCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0Q29udHJvbGxlci5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9s
bGVyLmgKaW5kZXggZDA5M2YzOTkwOGE2NDRjZWQ2NzBlZWIwZDM4NTA2ODUyZWVmYTBkYy4uNjNm
MWMxN2RmNDU2NTYxZGMyYWMzMWE0YmQ0NjQzYjlmODNmMmQ4MiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92
OC9TY3JpcHRDb250cm9sbGVyLmgKQEAgLTE1NSw3ICsxNTUsOCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGZpbmlzaGVkV2l0aEV2ZW50KEV2ZW50Kik7CiAKLSAgICBUZXh0UG9zaXRpb24wIGV2ZW50
SGFuZGxlclBvc2l0aW9uKCkgY29uc3Q7CisgICAgaW50IGV2ZW50SGFuZGxlckxpbmVOdW1iZXIo
KSBjb25zdDsKKyAgICBpbnQgZXZlbnRIYW5kbGVyQ29sdW1uTnVtYmVyKCkgY29uc3Q7CiAKICAg
ICB2b2lkIHNldFByb2Nlc3NpbmdUaW1lckNhbGxiYWNrKGJvb2wgcHJvY2Vzc2luZ1RpbWVyQ2Fs
bGJhY2spIHsgbV9wcm9jZXNzaW5nVGltZXJDYWxsYmFjayA9IHByb2Nlc3NpbmdUaW1lckNhbGxi
YWNrOyB9CiAgICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBkb24ndCB1c2UgdGhlIHBhcmFtZXRl
ciB3b3JsZCBhdCBhbGwuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEV2
ZW50TGlzdGVuZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRFdmVudExpc3RlbmVy
LmNwcAppbmRleCBiNDZmYzVhNmQ1NjNiYzlkNmQ0ZDRlNmY2MzNhMTI5Y2Y5OTEzNmUxLi43MmRm
NzlkZWQzZWQ0N2NmZjFhMjdiNTk1M2EzNTk5NjNjNzdhNjMwIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTUwLDggKzUwLDggQEAgUGFzc1JlZlB0
cjxWOExhenlFdmVudExpc3RlbmVyPiBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKE5vZGUq
IG5vZGUsIEF0dHJpYnUKICAgICBpZiAoYXR0ci0+aXNOdWxsKCkpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgLy8gRklYTUU6IFZlcnkgc3RyYW5nZTogd2UgaW5pdGlhbGl6ZSB6ZXJvLWJhc2Vk
IG51bWJlciB3aXRoICcxJy4KLSAgICBUZXh0UG9zaXRpb24wIHBvc2l0aW9uKFdURjo6WmVyb0Jh
c2VkTnVtYmVyOjpmcm9tWmVyb0Jhc2VkSW50KDEpLCBXVEY6Olplcm9CYXNlZE51bWJlcjo6YmFz
ZSgpKTsKKyAgICBpbnQgbGluZU51bWJlciA9IDE7CisgICAgaW50IGNvbHVtbk51bWJlciA9IDA7
CiAgICAgU3RyaW5nIHNvdXJjZVVSTDsKIAogICAgIGlmIChGcmFtZSogZnJhbWUgPSBub2RlLT5k
b2N1bWVudCgpLT5mcmFtZSgpKSB7CkBAIC02NCwxMSArNjQsMTIgQEAgUGFzc1JlZlB0cjxWOExh
enlFdmVudExpc3RlbmVyPiBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKE5vZGUqIG5vZGUs
IEF0dHJpYnUKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAKLSAgICAgICAgcG9z
aXRpb24gPSBzY3JpcHRDb250cm9sbGVyLT5ldmVudEhhbmRsZXJQb3NpdGlvbigpOworICAgICAg
ICBsaW5lTnVtYmVyID0gc2NyaXB0Q29udHJvbGxlci0+ZXZlbnRIYW5kbGVyTGluZU51bWJlcigp
OworICAgICAgICBjb2x1bW5OdW1iZXIgPSBzY3JpcHRDb250cm9sbGVyLT5ldmVudEhhbmRsZXJD
b2x1bW5OdW1iZXIoKTsKICAgICAgICAgc291cmNlVVJMID0gbm9kZS0+ZG9jdW1lbnQoKS0+dXJs
KCkuc3RyaW5nKCk7CiAgICAgfQogCi0gICAgcmV0dXJuIFY4TGF6eUV2ZW50TGlzdGVuZXI6OmNy
ZWF0ZShhdHRyLT5sb2NhbE5hbWUoKS5zdHJpbmcoKSwgbm9kZS0+aXNTVkdFbGVtZW50KCksIGF0
dHItPnZhbHVlKCksIHNvdXJjZVVSTCwgcG9zaXRpb24sIFdvcmxkQ29udGV4dEhhbmRsZShVc2VN
YWluV29ybGQpKTsKKyAgICByZXR1cm4gVjhMYXp5RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKGF0dHIt
PmxvY2FsTmFtZSgpLnN0cmluZygpLCBub2RlLT5pc1NWR0VsZW1lbnQoKSwgYXR0ci0+dmFsdWUo
KSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIFdvcmxkQ29udGV4dEhhbmRs
ZShVc2VNYWluV29ybGQpKTsKIH0KIAogUGFzc1JlZlB0cjxWOExhenlFdmVudExpc3RlbmVyPiBj
cmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKEZyYW1lKiBmcmFtZSwgQXR0cmlidXRlKiBhdHRy
KQpAQCAtODAsNiArODEsMTAgQEAgUGFzc1JlZlB0cjxWOExhenlFdmVudExpc3RlbmVyPiBjcmVh
dGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKEZyYW1lKiBmcmFtZSwgQXR0cmkKICAgICBpZiAoYXR0
ci0+aXNOdWxsKCkpCiAgICAgICAgIHJldHVybiAwOwogCisgICAgaW50IGxpbmVOdW1iZXIgPSAx
OworICAgIGludCBjb2x1bW5OdW1iZXIgPSAwOworICAgIFN0cmluZyBzb3VyY2VVUkw7CisKICAg
ICBTY3JpcHRDb250cm9sbGVyKiBzY3JpcHRDb250cm9sbGVyID0gZnJhbWUtPnNjcmlwdCgpOwog
ICAgIGlmICghc2NyaXB0Q29udHJvbGxlci0+Y2FuRXhlY3V0ZVNjcmlwdHMoQWJvdXRUb0V4ZWN1
dGVTY3JpcHQpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTg5LDkgKzk0LDEwIEBAIFBhc3NSZWZQ
dHI8VjhMYXp5RXZlbnRMaXN0ZW5lcj4gY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcihGcmFt
ZSogZnJhbWUsIEF0dHJpCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIFRleHRQb3Np
dGlvbjAgcG9zaXRpb24gPSBzY3JpcHRDb250cm9sbGVyLT5ldmVudEhhbmRsZXJQb3NpdGlvbigp
OwotICAgIFN0cmluZyBzb3VyY2VVUkwgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5n
KCk7Ci0gICAgcmV0dXJuIFY4TGF6eUV2ZW50TGlzdGVuZXI6OmNyZWF0ZShhdHRyLT5sb2NhbE5h
bWUoKS5zdHJpbmcoKSwgZnJhbWUtPmRvY3VtZW50KCktPmlzU1ZHRG9jdW1lbnQoKSwgYXR0ci0+
dmFsdWUoKSwgc291cmNlVVJMLCBwb3NpdGlvbiwgV29ybGRDb250ZXh0SGFuZGxlKFVzZU1haW5X
b3JsZCkpOworICAgIGxpbmVOdW1iZXIgPSBzY3JpcHRDb250cm9sbGVyLT5ldmVudEhhbmRsZXJM
aW5lTnVtYmVyKCk7CisgICAgY29sdW1uTnVtYmVyID0gc2NyaXB0Q29udHJvbGxlci0+ZXZlbnRI
YW5kbGVyQ29sdW1uTnVtYmVyKCk7CisgICAgc291cmNlVVJMID0gZnJhbWUtPmRvY3VtZW50KCkt
PnVybCgpLnN0cmluZygpOworICAgIHJldHVybiBWOExhenlFdmVudExpc3RlbmVyOjpjcmVhdGUo
YXR0ci0+bG9jYWxOYW1lKCkuc3RyaW5nKCksIGZyYW1lLT5kb2N1bWVudCgpLT5pc1NWR0RvY3Vt
ZW50KCksIGF0dHItPnZhbHVlKCksIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVy
LCBXb3JsZENvbnRleHRIYW5kbGUoVXNlTWFpbldvcmxkKSk7CiB9CiAKIFN0cmluZyBldmVudExp
c3RlbmVySGFuZGxlckJvZHkoRG9jdW1lbnQqIGRvY3VtZW50LCBFdmVudExpc3RlbmVyKiBsaXN0
ZW5lcikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0U291cmNlQ29kZS5o
IGIvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRTb3VyY2VDb2RlLmgKaW5kZXggMjQ3ODE1MWU2
ZjU0ZmM3NTAzOGYwNDFkZWM5ODBkN2E3NTZkMmFkZS4uZGJjOWQ1ZTZmYzYwMDdmY2ZkZDY2MDI0
ZGIwNzgyNmM2NjI2M2I1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRT
b3VyY2VDb2RlLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRTb3VyY2VDb2RlLmgK
QEAgLTM1LDE3ICszNSwxNiBAQAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUg
IktVUkwuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0
L1RleHRQb3NpdGlvbi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjcmlwdFNv
dXJjZUNvZGUgewogcHVibGljOgotICAgIFNjcmlwdFNvdXJjZUNvZGUoY29uc3QgU3RyaW5nJiBz
b3VyY2UsIGNvbnN0IEtVUkwmIHVybCA9IEtVUkwoKSwgY29uc3QgVGV4dFBvc2l0aW9uMSYgc3Rh
cnRQb3NpdGlvbiA9IFRleHRQb3NpdGlvbjE6Om1pbmltdW1Qb3NpdGlvbigpKQorICAgIFNjcmlw
dFNvdXJjZUNvZGUoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IEtVUkwmIHVybCA9IEtVUkwo
KSwgaW50IHN0YXJ0TGluZSA9IDEpCiAgICAgICAgIDogbV9zb3VyY2Uoc291cmNlKQogICAgICAg
ICAsIG1fY2FjaGVkU2NyaXB0KDApCiAgICAgICAgICwgbV91cmwodXJsKQotICAgICAgICAsIG1f
c3RhcnRQb3NpdGlvbihzdGFydFBvc2l0aW9uKQorICAgICAgICAsIG1fc3RhcnRMaW5lKHN0YXJ0
TGluZSkKICAgICB7CiAgICAgfQogCkBAIC01NSw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICAgICAg
OiBtX3NvdXJjZShjcy0+c2NyaXB0KCkpCiAgICAgICAgICwgbV9jYWNoZWRTY3JpcHQoY3MpCiAg
ICAgICAgICwgbV91cmwoUGFyc2VkVVJMU3RyaW5nLCBjcy0+dXJsKCkpCi0gICAgICAgICwgbV9z
dGFydFBvc2l0aW9uKFRleHRQb3NpdGlvbjE6Om1pbmltdW1Qb3NpdGlvbigpKQorICAgICAgICAs
IG1fc3RhcnRMaW5lKDEpCiAgICAgewogICAgIH0KIApAQCAtNjQsMTQgKzYzLDEzIEBAIHB1Ymxp
YzoKICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9
CiAgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQoKSBjb25zdCB7IHJldHVybiBtX2NhY2hl
ZFNjcmlwdC5nZXQoKTsgfQogICAgIGNvbnN0IEtVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1f
dXJsOyB9Ci0gICAgaW50IHN0YXJ0TGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRQb3NpdGlv
bi5tX2xpbmUub25lQmFzZWRJbnQoKTsgfQotICAgIGNvbnN0IFRleHRQb3NpdGlvbjEmIHN0YXJ0
UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0UG9zaXRpb247IH0KKyAgICBpbnQgc3Rh
cnRMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydExpbmU7IH0KIAogcHJpdmF0ZToKICAgICBT
dHJpbmcgbV9zb3VyY2U7CiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBt
X2NhY2hlZFNjcmlwdDsKICAgICBLVVJMIG1fdXJsOwotICAgIFRleHRQb3NpdGlvbjEgbV9zdGFy
dFBvc2l0aW9uOworICAgIGludCBtX3N0YXJ0TGluZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5l
ci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TGF6eUV2ZW50TGlzdGVuZXIuY3BwCmluZGV4
IDdmNDYzMzMwNjJkNmZlYjdiZTlmMTc5NjM1NmM2YjA1Y2IzY2I4ZjguLjdmMTNjNWE4ZmIyN2Qz
M2JiZjFkMzQxMGEwMTNlYmM3OTVkOTNkMjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhMYXp5RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOExh
enlFdmVudExpc3RlbmVyLmNwcApAQCAtNDEsMTMgKzQxLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotVjhMYXp5RXZlbnRMaXN0ZW5lcjo6VjhMYXp5RXZlbnRMaXN0ZW5lcihjb25zdCBT
dHJpbmcmIGZ1bmN0aW9uTmFtZSwgYm9vbCBpc1NWR0V2ZW50LCBjb25zdCBTdHJpbmcmIGNvZGUs
IGNvbnN0IFN0cmluZyBzb3VyY2VVUkwsIGNvbnN0IFRleHRQb3NpdGlvbjAmIHBvc2l0aW9uLCBj
b25zdCBXb3JsZENvbnRleHRIYW5kbGUmIHdvcmxkQ29udGV4dCkKK1Y4TGF6eUV2ZW50TGlzdGVu
ZXI6OlY4TGF6eUV2ZW50TGlzdGVuZXIoY29uc3QgU3RyaW5nJiBmdW5jdGlvbk5hbWUsIGJvb2wg
aXNTVkdFdmVudCwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcgc291cmNlVVJMLCBp
bnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgV29ybGRDb250ZXh0SGFuZGxl
JiB3b3JsZENvbnRleHQpCiAgICAgOiBWOEFic3RyYWN0RXZlbnRMaXN0ZW5lcih0cnVlLCB3b3Js
ZENvbnRleHQpCiAgICAgLCBtX2Z1bmN0aW9uTmFtZShmdW5jdGlvbk5hbWUpCiAgICAgLCBtX2lz
U1ZHRXZlbnQoaXNTVkdFdmVudCkKICAgICAsIG1fY29kZShjb2RlKQogICAgICwgbV9zb3VyY2VV
Ukwoc291cmNlVVJMKQotICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKKyAgICAsIG1fbGluZU51
bWJlcihsaW5lTnVtYmVyKQorICAgICwgbV9jb2x1bW5OdW1iZXIoY29sdW1uTnVtYmVyKQogewog
fQogCkBAIC0xMTMsNyArMTE0LDcgQEAgdm9pZCBWOExhenlFdmVudExpc3RlbmVyOjpwcmVwYXJl
TGlzdGVuZXJPYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAgICAvLyBJ
bnNlcnQgJ1xuJyBvdGhlcndpc2UgLy8tc3R5bGUgY29tbWVudHMgY291bGQgYnJlYWsgdGhlIGhh
bmRsZXIuCiAgICAgY29kZS5hcHBlbmQoICAiXG59KS5jYWxsKHRoaXMsIGV2dCk7fX19fSkiKTsK
ICAgICB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IGNvZGVFeHRlcm5hbFN0cmluZyA9IHY4RXh0ZXJu
YWxTdHJpbmcoY29kZSk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6U2NyaXB0PiBzY3JpcHQgPSBWOFBy
b3h5Ojpjb21waWxlU2NyaXB0KGNvZGVFeHRlcm5hbFN0cmluZywgbV9zb3VyY2VVUkwsIG1fcG9z
aXRpb24pOworICAgIHY4OjpIYW5kbGU8djg6OlNjcmlwdD4gc2NyaXB0ID0gVjhQcm94eTo6Y29t
cGlsZVNjcmlwdChjb2RlRXh0ZXJuYWxTdHJpbmcsIG1fc291cmNlVVJMLCBtX2xpbmVOdW1iZXIp
OwogICAgIGlmICghc2NyaXB0LklzRW1wdHkoKSkgewogICAgICAgICB2ODo6TG9jYWw8djg6OlZh
bHVlPiB2YWx1ZSA9IHByb3h5LT5ydW5TY3JpcHQoc2NyaXB0LCBmYWxzZSk7CiAgICAgICAgIGlm
ICghdmFsdWUuSXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
TGF6eUV2ZW50TGlzdGVuZXIuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0
ZW5lci5oCmluZGV4IDA4NDY3ZmU1ZjdhYjk3MDE0ZDk0NTNhZjI2ZmEzZjE2NmNlZTYzYjEuLmYx
NzRkMjNiZjEzMWIwMTBlZTRmNTliYzQyNTI3ZWU4Njc0YTA2MDggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5oCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5oCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJWOEFic3RyYWN0RXZlbnRMaXN0ZW5lci5oIgog
I2luY2x1ZGUgPHY4Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+CiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsOSAr
NDUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgLy8gQSBWOExhenlFdmVudExpc3RlbmVy
IGlzIGFsd2F5cyBhIEhUTUwgZXZlbnQgaGFuZGxlci4KICAgICBjbGFzcyBWOExhenlFdmVudExp
c3RlbmVyIDogcHVibGljIFY4QWJzdHJhY3RFdmVudExpc3RlbmVyIHsKICAgICBwdWJsaWM6Ci0g
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFY4TGF6eUV2ZW50TGlzdGVuZXI+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIGZ1bmN0aW9uTmFtZSwgYm9vbCBpc1NWR0V2ZW50LCBjb25zdCBTdHJpbmcmIGNv
ZGUsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24wJiBwb3NpdGlv
biwgY29uc3QgV29ybGRDb250ZXh0SGFuZGxlJiB3b3JsZENvbnRleHQpCisgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFY4TGF6eUV2ZW50TGlzdGVuZXI+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGZ1
bmN0aW9uTmFtZSwgYm9vbCBpc1NWR0V2ZW50LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29uc3Qg
V29ybGRDb250ZXh0SGFuZGxlJiB3b3JsZENvbnRleHQpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgVjhMYXp5RXZlbnRMaXN0ZW5lcihmdW5jdGlvbk5hbWUsIGlz
U1ZHRXZlbnQsIGNvZGUsIHNvdXJjZVVSTCwgcG9zaXRpb24sIHdvcmxkQ29udGV4dCkpOworICAg
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWOExhenlFdmVudExpc3RlbmVyKGZ1bmN0aW9u
TmFtZSwgaXNTVkdFdmVudCwgY29kZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1i
ZXIsIHdvcmxkQ29udGV4dCkpOwogICAgICAgICB9CiAKICAgICAgICAgdmlydHVhbCBib29sIGlz
TGF6eSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KQEAgLTU3LDcgKzU2LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUxpc3RlbmVyT2JqZWN0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFY4TGF6eUV2
ZW50TGlzdGVuZXIoY29uc3QgU3RyaW5nJiBmdW5jdGlvbk5hbWUsIGJvb2wgaXNTVkdFdmVudCwg
Y29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcgc291cmNlVVJMLCBjb25zdCBUZXh0UG9z
aXRpb24wJiBwb3NpdGlvbiwgY29uc3QgV29ybGRDb250ZXh0SGFuZGxlJiB3b3JsZENvbnRleHQp
OworICAgICAgICBWOExhenlFdmVudExpc3RlbmVyKGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1l
LCBib29sIGlzU1ZHRXZlbnQsIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nIHNvdXJj
ZVVSTCwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIGNvbnN0IFdvcmxkQ29udGV4
dEhhbmRsZSYgd29ybGRDb250ZXh0KTsKIAogICAgICAgICB2aXJ0dWFsIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IGNhbGxMaXN0ZW5lckZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4ganNFdmVudCwgRXZlbnQqKTsKIApAQCAtNzEsNyArNzAsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9pc1NWR0V2ZW50OwogICAgICAgICBT
dHJpbmcgbV9jb2RlOwogICAgICAgICBTdHJpbmcgbV9zb3VyY2VVUkw7Ci0gICAgICAgIFRleHRQ
b3NpdGlvbjAgbV9wb3NpdGlvbjsKKyAgICAgICAgaW50IG1fbGluZU51bWJlcjsKKyAgICAgICAg
aW50IG1fY29sdW1uTnVtYmVyOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4UHJveHkuY3BwCmluZGV4IDkyYjgyMTYwYjA1NDk1NzI5OWI5NTIzNTUxNzNjZjdj
M2EzMjQ3NzQuLjkwYzJlZDgwYmZmNGZmYTVhOTRiMWIzN2Q5YjEyYjVkZDU5ZDcxYTAgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFByb3h5LmNwcApAQCAtMjM1LDEzICsyMzUsMTIgQEAgVjhQcm94eTo6flY4UHJv
eHkoKQogICAgIHdpbmRvd1NoZWxsKCktPmRlc3Ryb3lHbG9iYWwoKTsKIH0KIAotdjg6OkhhbmRs
ZTx2ODo6U2NyaXB0PiBWOFByb3h5Ojpjb21waWxlU2NyaXB0KHY4OjpIYW5kbGU8djg6OlN0cmlu
Zz4gY29kZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgVGV4dFBvc2l0aW9uMCYgc2Ny
aXB0U3RhcnRQb3NpdGlvbiwgdjg6OlNjcmlwdERhdGEqIHNjcmlwdERhdGEpCit2ODo6SGFuZGxl
PHY4OjpTY3JpcHQ+IFY4UHJveHk6OmNvbXBpbGVTY3JpcHQodjg6OkhhbmRsZTx2ODo6U3RyaW5n
PiBjb2RlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBpbnQgYmFzZUxpbmUsIHY4OjpTY3JpcHRE
YXRhKiBzY3JpcHREYXRhKQogewogICAgIGNvbnN0IHVpbnQxNl90KiBmaWxlTmFtZVN0cmluZyA9
IGZyb21XZWJDb3JlU3RyaW5nKGZpbGVOYW1lKTsKICAgICB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+
IG5hbWUgPSB2ODo6U3RyaW5nOjpOZXcoZmlsZU5hbWVTdHJpbmcsIGZpbGVOYW1lLmxlbmd0aCgp
KTsKLSAgICB2ODo6SGFuZGxlPHY4OjpJbnRlZ2VyPiBsaW5lID0gdjg6OkludGVnZXI6Ok5ldyhz
Y3JpcHRTdGFydFBvc2l0aW9uLm1fbGluZS56ZXJvQmFzZWRJbnQoKSk7Ci0gICAgdjg6OkhhbmRs
ZTx2ODo6SW50ZWdlcj4gY29sdW1uID0gdjg6OkludGVnZXI6Ok5ldyhzY3JpcHRTdGFydFBvc2l0
aW9uLm1fY29sdW1uLnplcm9CYXNlZEludCgpKTsKLSAgICB2ODo6U2NyaXB0T3JpZ2luIG9yaWdp
bihuYW1lLCBsaW5lLCBjb2x1bW4pOworICAgIHY4OjpIYW5kbGU8djg6OkludGVnZXI+IGxpbmUg
PSB2ODo6SW50ZWdlcjo6TmV3KGJhc2VMaW5lKTsKKyAgICB2ODo6U2NyaXB0T3JpZ2luIG9yaWdp
bihuYW1lLCBsaW5lKTsKICAgICB2ODo6SGFuZGxlPHY4OjpTY3JpcHQ+IHNjcmlwdCA9IHY4OjpT
Y3JpcHQ6OkNvbXBpbGUoY29kZSwgJm9yaWdpbiwgc2NyaXB0RGF0YSk7CiAgICAgcmV0dXJuIHNj
cmlwdDsKIH0KQEAgLTM5NCw3ICszOTMsNyBAQCB2ODo6TG9jYWw8djg6OlZhbHVlPiBWOFByb3h5
OjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2UsIE5vZGUqIG5vZAogCiAg
ICAgICAgIC8vIE5PVEU6IEZvciBjb21wYXRpYmlsaXR5IHdpdGggV2ViQ29yZSwgU2NyaXB0U291
cmNlQ29kZSdzIGxpbmUgc3RhcnRzIGF0CiAgICAgICAgIC8vIDEsIHdoZXJlYXMgdjggc3RhcnRz
IGF0IDAuCi0gICAgICAgIHY4OjpIYW5kbGU8djg6OlNjcmlwdD4gc2NyaXB0ID0gY29tcGlsZVNj
cmlwdChjb2RlLCBzb3VyY2UudXJsKCksIFdURjo6dG9aZXJvQmFzZWRUZXh0UG9zaXRpb24oc291
cmNlLnN0YXJ0UG9zaXRpb24oKSksIHNjcmlwdERhdGEuZ2V0KCkpOworICAgICAgICB2ODo6SGFu
ZGxlPHY4OjpTY3JpcHQ+IHNjcmlwdCA9IGNvbXBpbGVTY3JpcHQoY29kZSwgc291cmNlLnVybCgp
LCBzb3VyY2Uuc3RhcnRMaW5lKCkgLSAxLCBzY3JpcHREYXRhLmdldCgpKTsKICNpZiBQTEFURk9S
TShDSFJPTUlVTSkKICAgICAgICAgUGxhdGZvcm1CcmlkZ2U6OnRyYWNlRXZlbnRFbmQoInY4LmNv
bXBpbGUiLCBub2RlLCAiIik7CiAKQEAgLTQyNiw3ICs0MjUsNyBAQCB2ODo6TG9jYWw8djg6OlZh
bHVlPiBWOFByb3h5OjpydW5TY3JpcHQodjg6OkhhbmRsZTx2ODo6U2NyaXB0PiBzY3JpcHQsIGJv
b2wgaXNJbgogICAgICAgICAvLyBGSVhNRTogSWRlYWxseSwgd2Ugc2hvdWxkIGJlIGFibGUgdG8g
cmUtdXNlIHRoZSBvcmlnaW4gb2YgdGhlCiAgICAgICAgIC8vIHNjcmlwdCBwYXNzZWQgdG8gdXMg
YXMgdGhlIGFyZ3VtZW50IGluc3RlYWQgb2YgdXNpbmcgYW4gZW1wdHkgc3RyaW5nCiAgICAgICAg
IC8vIGFuZCAwIGJhc2VMaW5lLgotICAgICAgICBzY3JpcHQgPSBjb21waWxlU2NyaXB0KGNvZGUs
ICIiLCBUZXh0UG9zaXRpb24wOjptaW5pbXVtUG9zaXRpb24oKSk7CisgICAgICAgIHNjcmlwdCA9
IGNvbXBpbGVTY3JpcHQoY29kZSwgIiIsIDApOwogICAgIH0KIAogICAgIGlmIChoYW5kbGVPdXRP
Zk1lbW9yeSgpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmggYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaAppbmRleCA4MGQ0NjkxYjQ4MDU0OGYzYWQ3ZGRm
NzlkZTJiMzc5NzM0MTc5OGRjLi44YTBkYTcyOTU2ODBkNTIzY2Y3NDBmMzg2ZjNjZWYxZTk5MTEw
NWMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaApAQCAtMjc5LDcgKzI3OSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNoZWNrTmV3
TGVnYWwoY29uc3Qgdjg6OkFyZ3VtZW50cyYpOwogCi0gICAgICAgIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpTY3JpcHQ+IGNvbXBpbGVTY3JpcHQodjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBjb2RlLCBj
b25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBUZXh0UG9zaXRpb24wJiBzY3JpcHRTdGFydFBv
c2l0aW9uLCB2ODo6U2NyaXB0RGF0YSogPSAwKTsKKyAgICAgICAgc3RhdGljIHY4OjpIYW5kbGU8
djg6OlNjcmlwdD4gY29tcGlsZVNjcmlwdCh2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IGNvZGUsIGNv
bnN0IFN0cmluZyYgZmlsZU5hbWUsIGludCBiYXNlTGluZSwgdjg6OlNjcmlwdERhdGEqID0gMCk7
CiAKICAgICAgICAgLy8gSWYgdGhlIGV4Y2VwdGlvbiBjb2RlIGlzIGRpZmZlcmVudCBmcm9tIHpl
cm8sIGEgRE9NIGV4Y2VwdGlvbiBpcwogICAgICAgICAvLyBzY2hlZHVsZSB0byBiZSB0aHJvd24u
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Q
cm94eS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94
eS5jcHAKaW5kZXggY2VmYjJmYWE3MzkwODk0YjM1ZDY1YWQ1M2YyMWE4ZmJjN2RkYTU2MS4uMTZl
MGI0MTAxZWZkYzM1YWU3NDQxODE3YjA2ODdkYjZiNWE2NWEyNSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcApAQCAtMTg0LDcg
KzE4NCw3IEBAIGJvb2wgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5Ojpmb3JnZXRWOEV2ZW50
T2JqZWN0KEV2ZW50KiBldmVudCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVNjcmlwdFZhbHVl
IFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6ZXZhbHVhdGUoY29uc3QgU3RyaW5nJiBzY3Jp
cHQsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFRleHRQb3NpdGlvbjAmIHNjcmlwdFN0
YXJ0UG9zaXRpb24sIFdvcmtlckNvbnRleHRFeGVjdXRpb25TdGF0ZSogc3RhdGUpCitTY3JpcHRW
YWx1ZSBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OmV2YWx1YXRlKGNvbnN0IFN0cmluZyYg
c2NyaXB0LCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBpbnQgYmFzZUxpbmUsIFdvcmtlckNvbnRl
eHRFeGVjdXRpb25TdGF0ZSogc3RhdGUpCiB7CiAgICAgdjg6OkhhbmRsZVNjb3BlIGhzOwogCkBA
IC0xOTYsNyArMTk2LDcgQEAgU2NyaXB0VmFsdWUgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5
OjpldmFsdWF0ZShjb25zdCBTdHJpbmcmIHNjcmlwdCwgY29uc3QgU3QKICAgICB2ODo6VHJ5Q2F0
Y2ggZXhjZXB0aW9uQ2F0Y2hlcjsKIAogICAgIHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBzY3JpcHRT
dHJpbmcgPSB2OEV4dGVybmFsU3RyaW5nKHNjcmlwdCk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6U2Ny
aXB0PiBjb21waWxlZFNjcmlwdCA9IFY4UHJveHk6OmNvbXBpbGVTY3JpcHQoc2NyaXB0U3RyaW5n
LCBmaWxlTmFtZSwgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAgdjg6OkhhbmRsZTx2ODo6U2Ny
aXB0PiBjb21waWxlZFNjcmlwdCA9IFY4UHJveHk6OmNvbXBpbGVTY3JpcHQoc2NyaXB0U3RyaW5n
LCBmaWxlTmFtZSwgYmFzZUxpbmUpOwogICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHJlc3VsdCA9
IHJ1blNjcmlwdChjb21waWxlZFNjcmlwdCk7CiAKICAgICBpZiAoIWV4Y2VwdGlvbkNhdGNoZXIu
Q2FuQ29udGludWUoKSkKQEAgLTIyNyw3ICsyMjcsNyBAQCB2ODo6TG9jYWw8djg6OlZhbHVlPiBX
b3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OnJ1blNjcmlwdCh2ODo6SGFuZGxlPHY4OjpTY3Jp
cAogICAgIC8vIENvbXB1dGUgdGhlIHNvdXJjZSBzdHJpbmcgYW5kIHByZXZlbnQgYWdhaW5zdCBp
bmZpbml0ZSByZWN1cnNpb24uCiAgICAgaWYgKG1fcmVjdXJzaW9uID49IGtNYXhSZWN1cnNpb25E
ZXB0aCkgewogICAgICAgICB2ODo6TG9jYWw8djg6OlN0cmluZz4gY29kZSA9IHY4RXh0ZXJuYWxT
dHJpbmcoInRocm93IFJhbmdlRXJyb3IoJ1JlY3Vyc2lvbiB0b28gZGVlcCcpIik7Ci0gICAgICAg
IHNjcmlwdCA9IFY4UHJveHk6OmNvbXBpbGVTY3JpcHQoY29kZSwgIiIsIFRleHRQb3NpdGlvbjA6
Om1pbmltdW1Qb3NpdGlvbigpKTsKKyAgICAgICAgc2NyaXB0ID0gVjhQcm94eTo6Y29tcGlsZVNj
cmlwdChjb2RlLCAiIiwgMCk7CiAgICAgfQogCiAgICAgaWYgKFY4UHJveHk6OmhhbmRsZU91dE9m
TWVtb3J5KCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRF
eGVjdXRpb25Qcm94eS5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0
aW9uUHJveHkuaAppbmRleCBlNzBjM2QyODRhYmU1MmUzNWJhYzQ5ODA1ZTczYTRjZjQ3NGU5Yzk1
Li41ODgyNGI5ZWVmNmY0OTE0MDg0Yzc3NzE2MWUyM2Y2ZTMwYWJlMjgzIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgKQEAgLTM2LDcg
KzM2LDYgQEAKIAogI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSA8djguaD4KLSNp
bmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC02Nyw3ICs2Niw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdm9pZCB0cmFja0V2ZW50KEV2ZW50Kik7CiAKICAgICAgICAgLy8g
RXZhbHVhdGUgYSBzY3JpcHQgZmlsZSBpbiB0aGUgY3VycmVudCBleGVjdXRpb24gZW52aXJvbm1l
bnQuCi0gICAgICAgIFNjcmlwdFZhbHVlIGV2YWx1YXRlKGNvbnN0IFN0cmluZyYgc2NyaXB0LCBj
b25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBUZXh0UG9zaXRpb24wJiBzY3JpcHRTdGFydFBv
c2l0aW9uLCBXb3JrZXJDb250ZXh0RXhlY3V0aW9uU3RhdGUqKTsKKyAgICAgICAgU2NyaXB0VmFs
dWUgZXZhbHVhdGUoY29uc3QgU3RyaW5nJiBzY3JpcHQsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUs
IGludCBiYXNlTGluZSwgV29ya2VyQ29udGV4dEV4ZWN1dGlvblN0YXRlKik7CiAKICAgICAgICAg
Ly8gUmV0dXJucyBhIGxvY2FsIGhhbmRsZSBvZiB0aGUgY29udGV4dC4KICAgICAgICAgdjg6Okxv
Y2FsPHY4OjpDb250ZXh0PiBjb250ZXh0KCkgeyByZXR1cm4gdjg6OkxvY2FsPHY4OjpDb250ZXh0
Pjo6TmV3KG1fY29udGV4dCk7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29y
a2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlw
dENvbnRyb2xsZXIuY3BwCmluZGV4IGI1NmQzODM2ZDdlNmJiMWFjNWQyYzhjNWVkNjMwZjA3YzI3
NmVmMjIuLjdkYjBkOGQzNzM3MDliMmU5NzNiNjdlNzcyM2U0ZmMzMTFmYmNhNTkgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNzUsNyAr
NzUsNyBAQCBTY3JpcHRWYWx1ZSBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25z
dCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLAogICAgIH0KIAogICAgIFdvcmtlckNvbnRl
eHRFeGVjdXRpb25TdGF0ZSBzdGF0ZTsKLSAgICBTY3JpcHRWYWx1ZSByZXN1bHQgPSBtX3Byb3h5
LT5ldmFsdWF0ZShzb3VyY2VDb2RlLnNvdXJjZSgpLCBzb3VyY2VDb2RlLnVybCgpLnN0cmluZygp
LCBXVEY6OnRvWmVyb0Jhc2VkVGV4dFBvc2l0aW9uKHNvdXJjZUNvZGUuc3RhcnRQb3NpdGlvbigp
KSwgJnN0YXRlKTsKKyAgICBTY3JpcHRWYWx1ZSByZXN1bHQgPSBtX3Byb3h5LT5ldmFsdWF0ZShz
b3VyY2VDb2RlLnNvdXJjZSgpLCBzb3VyY2VDb2RlLnVybCgpLnN0cmluZygpLCBzb3VyY2VDb2Rl
LnN0YXJ0TGluZSgpIC0gMSwgJnN0YXRlKTsKICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKSB7
CiAgICAgICAgIGlmIChleGNlcHRpb24pCiAgICAgICAgICAgICAqZXhjZXB0aW9uID0gc3RhdGUu
ZXhjZXB0aW9uOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5jcHAgYi9X
ZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcAppbmRleCAxOGY2MDcxMWE0Y2QzMDIzMjliY2Fh
ZDRkOThiOGEyMGM3Y2UxMmZkLi40MmUyMjVhN2YzMmExYjBjZGMxYmMzNDUxYjY1NDk3YTQ2MTM1
Njg5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcAorKysgYi9XZWJD
b3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcApAQCAtNDAsNyArNDAsNyBAQCBQZW5kaW5nU2NyaXB0
Ojp+UGVuZGluZ1NjcmlwdCgpCiBQYXNzUmVmUHRyPEVsZW1lbnQ+IFBlbmRpbmdTY3JpcHQ6OnJl
bGVhc2VFbGVtZW50QW5kQ2xlYXIoKQogewogICAgIHNldENhY2hlZFNjcmlwdCgwKTsKLSAgICBt
X3N0YXJ0aW5nUG9zaXRpb24gPSBUZXh0UG9zaXRpb24xOjpiZWxvd1JhbmdlUG9zaXRpb24oKTsK
KyAgICBtX3N0YXJ0aW5nTGluZU51bWJlciA9IDA7CiAgICAgbV93YXRjaGluZ0ZvckxvYWQgPSBm
YWxzZTsKICAgICByZXR1cm4gbV9lbGVtZW50LnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaCBiL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaApp
bmRleCAwODM1MDdhOWI5MDkxNmJjZjI4NjUxZGY2MjllNWIyM2JiOTQyMmM4Li40NGUxZTQ5Mjg2
NzZkNzk2MDIyZGQyOTA1NDU3NjAxNWI3YTI2ZTQ0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Q
ZW5kaW5nU2NyaXB0LmgKKysrIGIvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5oCkBAIC0yOCw3
ICsyOCw2IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgogI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBvc2l0aW9u
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNDQsMTQgKzQzLDE0IEBAIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBQZW5kaW5nU2NyaXB0IDog
cHVibGljIENhY2hlZFJlc291cmNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICBQZW5kaW5nU2NyaXB0
KCkKLSAgICAgICAgOiBtX3N0YXJ0aW5nUG9zaXRpb24oVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5n
ZVBvc2l0aW9uKCkpCisgICAgICAgIDogbV9zdGFydGluZ0xpbmVOdW1iZXIoMCkKICAgICAgICAg
LCBtX3dhdGNoaW5nRm9yTG9hZChmYWxzZSkKICAgICB7CiAgICAgfQogCiAgICAgUGVuZGluZ1Nj
cmlwdChjb25zdCBQZW5kaW5nU2NyaXB0JiBvdGhlcikKICAgICAgICAgOiBDYWNoZWRSZXNvdXJj
ZUNsaWVudChvdGhlcikKLSAgICAgICAgLCBtX3N0YXJ0aW5nUG9zaXRpb24ob3RoZXIubV9zdGFy
dGluZ1Bvc2l0aW9uKQorICAgICAgICAsIG1fc3RhcnRpbmdMaW5lTnVtYmVyKG90aGVyLm1fc3Rh
cnRpbmdMaW5lTnVtYmVyKQogICAgICAgICAsIG1fd2F0Y2hpbmdGb3JMb2FkKG90aGVyLm1fd2F0
Y2hpbmdGb3JMb2FkKQogICAgICAgICAsIG1fZWxlbWVudChvdGhlci5tX2VsZW1lbnQpCiAgICAg
ewpAQCAtNjUsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmICh0aGlzID09ICZvdGhlcikK
ICAgICAgICAgICAgIHJldHVybiAqdGhpczsKIAotICAgICAgICBtX3N0YXJ0aW5nUG9zaXRpb24g
PSBvdGhlci5tX3N0YXJ0aW5nUG9zaXRpb247CisgICAgICAgIG1fc3RhcnRpbmdMaW5lTnVtYmVy
ID0gb3RoZXIubV9zdGFydGluZ0xpbmVOdW1iZXI7CiAgICAgICAgIG1fd2F0Y2hpbmdGb3JMb2Fk
ID0gb3RoZXIubV93YXRjaGluZ0ZvckxvYWQ7CiAgICAgICAgIG1fZWxlbWVudCA9IG90aGVyLm1f
ZWxlbWVudDsKICAgICAgICAgc2V0Q2FjaGVkU2NyaXB0KG90aGVyLmNhY2hlZFNjcmlwdCgpKTsK
QEAgLTc1LDcgKzc0LDcgQEAgcHVibGljOgogCiAgICAgLy8gRklYTUU6IE5vIHNldHRlciBtZWFu
cyB0aGlzIGlzIG5ldmVyIHNldCB0byBhbnl0aGluZyBvdGhlciB0aGFuIDAuCiAgICAgLy8gVGhp
cyBpcyBlaXRoZXIgdW5uZWNlc3Nhcnkgb3IgaW5jb3JyZWN0LgotICAgIFRleHRQb3NpdGlvbjEg
c3RhcnRpbmdQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRpbmdQb3NpdGlvbjsgfQor
ICAgIGludCBzdGFydGluZ0xpbmVOdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0aW5nTGlu
ZU51bWJlcjsgfQogCiAgICAgYm9vbCB3YXRjaGluZ0ZvckxvYWQoKSBjb25zdCB7IHJldHVybiBt
X3dhdGNoaW5nRm9yTG9hZDsgfQogICAgIHZvaWQgc2V0V2F0Y2hpbmdGb3JMb2FkKGJvb2wgYikg
eyBtX3dhdGNoaW5nRm9yTG9hZCA9IGI7IH0KQEAgLTkwLDcgKzg5LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOwogCiBwcml2YXRl
OgotICAgIFRleHRQb3NpdGlvbjEgbV9zdGFydGluZ1Bvc2l0aW9uOyAvLyBPbmx5IHVzZWQgZm9y
IGlubGluZSBzY3JpcHQgdGFncy4KKyAgICBpbnQgbV9zdGFydGluZ0xpbmVOdW1iZXI7IC8vIE9u
bHkgdXNlZCBmb3IgaW5saW5lIHNjcmlwdCB0YWdzLgogICAgIGJvb2wgbV93YXRjaGluZ0Zvckxv
YWQ7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fZWxlbWVudDsKICAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRTY3JpcHQ+IG1fY2FjaGVkU2NyaXB0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9k
b20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmggYi9XZWJDb3JlL2RvbS9TY3JpcHRhYmxlRG9j
dW1lbnRQYXJzZXIuaAppbmRleCBkOWJmODVjYWJmNDU1MzNjOTgxYmU2MGZjNWJhOTY5Nzc1ZTQy
NDNjLi44YjE2MzA0MTIxMDRlNGU0NWEwMTMyM2RkMjI1NWU2NTY0ZTM0MDQ1IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2RvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaAorKysgYi9XZWJDb3JlL2Rv
bS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaApAQCAtMjcsMTAgKzI3LDEwIEBACiAjZGVmaW5l
IFNjcmlwdGFibGVEb2N1bWVudFBhcnNlcl9oCiAKICNpbmNsdWRlICJEZWNvZGVkRGF0YURvY3Vt
ZW50UGFyc2VyLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU2VnbWVudGVkU3RyaW5nOwogY2xhc3MgWFNTQXVkaXRv
cjsKIAogY2xhc3MgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyIDogcHVibGljIERlY29kZWREYXRh
RG9jdW1lbnRQYXJzZXIgewpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBUaGVz
ZSBhcmUgdXNlZCB0byBleHBvc2UgdGhlIGN1cnJlbnQgbGluZS9jb2x1bW4gdG8gdGhlIHNjcmlw
dGluZyBzeXN0ZW0uCiAgICAgdmlydHVhbCBpbnQgbGluZU51bWJlcigpIGNvbnN0ID0gMDsKLSAg
ICB2aXJ0dWFsIFRleHRQb3NpdGlvbjAgdGV4dFBvc2l0aW9uKCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgaW50IGNvbHVtbk51bWJlcigpIGNvbnN0ID0gMDsKIAogICAgIFhTU0F1ZGl0b3IqIHhz
c0F1ZGl0b3IoKSBjb25zdCB7IHJldHVybiBtX3hzc0F1ZGl0b3I7IH0KICAgICB2b2lkIHNldFhT
U0F1ZGl0b3IoWFNTQXVkaXRvciogYXVkaXRvcikgeyBtX3hzc0F1ZGl0b3IgPSBhdWRpdG9yOyB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5oIGIvV2ViQ29yZS9k
b20vWE1MRG9jdW1lbnRQYXJzZXIuaAppbmRleCA0MGQ1YzA1ZDNhYjc1MWZmYzYzYjZiNWViNjI3
NTg5NzUyY2ZiZTA2Li5lMDc3MGJhZGJhZmY3YmExMTAyMGFkZGM3MTI0OWVmM2RlYzgyMGQ0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1dlYkNvcmUv
ZG9tL1hNTERvY3VtZW50UGFyc2VyLmgKQEAgLTEwMiw3ICsxMDIsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIC8vIFdNTEVycm9ySGFuZGxpbmcgdXNlcyB0aGVzZSBmdW5jdGlvbnMu
CiAgICAgICAgIHZpcnR1YWwgYm9vbCB3ZWxsRm9ybWVkKCkgY29uc3QgeyByZXR1cm4gIW1fc2F3
RXJyb3I7IH0KICAgICAgICAgdmlydHVhbCBpbnQgbGluZU51bWJlcigpIGNvbnN0OwotICAgICAg
ICBUZXh0UG9zaXRpb24wIHRleHRQb3NpdGlvbigpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIGlu
dCBjb2x1bW5OdW1iZXIoKSBjb25zdDsKIAogICAgICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1hN
TFZlcnNpb24oY29uc3QgU3RyaW5nJik7CiAKQEAgLTEyOSwxMSArMTI5LDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgICAgIGJvb2wgYXBwZW5kRnJhZ21lbnRTb3VyY2UoY29uc3QgU3Ry
aW5nJik7CiAKLSAgICAgICAgaW50IGNvbHVtbk51bWJlcigpIGNvbnN0OwotICAgICAgICAvLyBU
aGUgbWV0aG9kIGlzIHVzZWQgaW4gWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcCBvbmx5LAot
ICAgICAgICAvLyBJdCBpcyBuZWl0aGVyIHVzZWQgbm9yIGltcGxlbWVudGVkIGluIFhNTERvY3Vt
ZW50UGFyc2VyUXQuY3BwLgotICAgICAgICBUZXh0UG9zaXRpb24xIHRleHRQb3NpdGlvbk9uZUJh
c2VkKCkgY29uc3Q7Ci0KICNpZiBVU0UoUVhNTFNUUkVBTSkKIHByaXZhdGU6CiAgICAgICAgIHZv
aWQgcGFyc2UoKTsKQEAgLTIxMyw3ICsyMDgsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBtX3BlbmRpbmdTY3JpcHQ7CiAgICAgICAgIFJl
ZlB0cjxFbGVtZW50PiBtX3NjcmlwdEVsZW1lbnQ7Ci0gICAgICAgIFRleHRQb3NpdGlvbjEgbV9z
Y3JpcHRTdGFydFBvc2l0aW9uOworICAgICAgICBpbnQgbV9zY3JpcHRTdGFydExpbmU7CiAKICAg
ICAgICAgYm9vbCBtX3BhcnNpbmdGcmFnbWVudDsKICAgICAgICAgQXRvbWljU3RyaW5nIG1fZGVm
YXVsdE5hbWVzcGFjZVVSSTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFy
c2VyTGlieG1sMi5jcHAgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3Bw
CmluZGV4IGRjZThmZWYxZTg3YjMyM2ExNWYxNzJhZDE1MDU1YTU4OTllMDk1MTAuLjViNWFjODlm
YWIyZTY1MzU2NDMwMmUwYjYxM2NmMjMwYTQ2NGJhODkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9t
L1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvV2ViQ29yZS9kb20vWE1MRG9jdW1l
bnRQYXJzZXJMaWJ4bWwyLmNwcApAQCAtNTYwLDcgKzU2MCw3IEBAIFhNTERvY3VtZW50UGFyc2Vy
OjpYTUxEb2N1bWVudFBhcnNlcihEb2N1bWVudCogZG9jdW1lbnQsIEZyYW1lVmlldyogZnJhbWVW
aWV3KQogICAgICwgbV9sYXN0RXJyb3JMaW5lKDApCiAgICAgLCBtX2xhc3RFcnJvckNvbHVtbigw
KQogICAgICwgbV9wZW5kaW5nU2NyaXB0KDApCi0gICAgLCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24o
VGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCisgICAgLCBtX3NjcmlwdFN0YXJ0
TGluZSgwKQogICAgICwgbV9wYXJzaW5nRnJhZ21lbnQoZmFsc2UpCiAgICAgLCBtX3NjcmlwdGlu
Z1Blcm1pc3Npb24oRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2VkKQogewpAQCAtNTg3LDcgKzU4Nyw3
IEBAIFhNTERvY3VtZW50UGFyc2VyOjpYTUxEb2N1bWVudFBhcnNlcihEb2N1bWVudEZyYWdtZW50
KiBmcmFnbWVudCwgRWxlbWVudCogcGFyZW50CiAgICAgLCBtX2xhc3RFcnJvckxpbmUoMCkKICAg
ICAsIG1fbGFzdEVycm9yQ29sdW1uKDApCiAgICAgLCBtX3BlbmRpbmdTY3JpcHQoMCkKLSAgICAs
IG1fc2NyaXB0U3RhcnRQb3NpdGlvbihUZXh0UG9zaXRpb24xOjpiZWxvd1JhbmdlUG9zaXRpb24o
KSkKKyAgICAsIG1fc2NyaXB0U3RhcnRMaW5lKDApCiAgICAgLCBtX3BhcnNpbmdGcmFnbWVudCh0
cnVlKQogICAgICwgbV9zY3JpcHRpbmdQZXJtaXNzaW9uKHNjcmlwdGluZ1Blcm1pc3Npb24pCiB7
CkBAIC04MTksNyArODE5LDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6c3RhcnRFbGVtZW50
TnMoY29uc3QgeG1sQ2hhciogeG1sTG9jYWxOYW1lLCBjb25zdCB4bWxDaGEKIAogICAgIFNjcmlw
dEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQgPSB0b1NjcmlwdEVsZW1lbnQobmV3RWxlbWVudC5nZXQo
KSk7CiAgICAgaWYgKHNjcmlwdEVsZW1lbnQpCi0gICAgICAgIG1fc2NyaXB0U3RhcnRQb3NpdGlv
biA9IHRleHRQb3NpdGlvbk9uZUJhc2VkKCk7CisgICAgICAgIG1fc2NyaXB0U3RhcnRMaW5lID0g
bGluZU51bWJlcigpOwogCiAgICAgbV9jdXJyZW50Tm9kZS0+ZGVwcmVjYXRlZFBhcnNlckFkZENo
aWxkKG5ld0VsZW1lbnQuZ2V0KCkpOwogCkBAIC05MTAsNyArOTEwLDcgQEAgdm9pZCBYTUxEb2N1
bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKCkKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAg
ICAgICAgIG1fc2NyaXB0RWxlbWVudCA9IDA7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
bV92aWV3LT5mcmFtZSgpLT5zY3JpcHQoKS0+ZXhlY3V0ZVNjcmlwdChTY3JpcHRTb3VyY2VDb2Rl
KHNjcmlwdEVsZW1lbnQtPnNjcmlwdENvbnRlbnQoKSwgZG9jdW1lbnQoKS0+dXJsKCksIG1fc2Ny
aXB0U3RhcnRQb3NpdGlvbikpOworICAgICAgICAgICAgbV92aWV3LT5mcmFtZSgpLT5zY3JpcHQo
KS0+ZXhlY3V0ZVNjcmlwdChTY3JpcHRTb3VyY2VDb2RlKHNjcmlwdEVsZW1lbnQtPnNjcmlwdENv
bnRlbnQoKSwgZG9jdW1lbnQoKS0+dXJsKCksIG1fc2NyaXB0U3RhcnRMaW5lKSk7CiAKICAgICAg
ICAgLy8gSmF2YVNjcmlwdCBtYXkgaGF2ZSBkZXRhY2hlZCB0aGUgcGFyc2VyCiAgICAgICAgIGlm
IChpc0RldGFjaGVkKCkpCkBAIC0xMzc2LDM5ICsxMzc2LDE0IEBAIHZvaWQqIHhtbERvY1B0ckZv
clN0cmluZyhDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIsIGNvbnN0
IFN0cmluCiAKIGludCBYTUxEb2N1bWVudFBhcnNlcjo6bGluZU51bWJlcigpIGNvbnN0CiB7Ci0g
ICAgLy8gRklYTUU6IFRoZSBpbXBsZW1lbnRhdGlvbiBwcm9iYWJseSByZXR1cm5zIDEtYmFzZWQg
aW50LCBidXQgbWV0aG9kIHNob3VsZCByZXR1cm4gMC1iYXNlZC4KICAgICByZXR1cm4gY29udGV4
dCgpID8gY29udGV4dCgpLT5pbnB1dC0+bGluZSA6IDE7CiB9CiAKIGludCBYTUxEb2N1bWVudFBh
cnNlcjo6Y29sdW1uTnVtYmVyKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogVGhlIGltcGxlbWVu
dGF0aW9uIHByb2JhYmx5IHJldHVybnMgMS1iYXNlZCBpbnQsIGJ1dCBtZXRob2Qgc2hvdWxkIHJl
dHVybiAwLWJhc2VkLgogICAgIHJldHVybiBjb250ZXh0KCkgPyBjb250ZXh0KCktPmlucHV0LT5j
b2wgOiAxOwogfQogCi1UZXh0UG9zaXRpb24wIFhNTERvY3VtZW50UGFyc2VyOjp0ZXh0UG9zaXRp
b24oKSBjb25zdAotewotICAgIHhtbFBhcnNlckN0eHRQdHIgY29udGV4dCA9IHRoaXMtPmNvbnRl
eHQoKTsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybiBUZXh0UG9zaXRpb24wOjpt
aW5pbXVtUG9zaXRpb24oKTsKLSAgICAvLyBGSVhNRTogVGhlIGNvbnRleHQgcHJvYmFibHkgY29u
dGFpbnMgMS1iYXNlZCBudW1iZXJzLCBidXQgd2UgdHJlYXQgdGhlbSBhcyAwLWJhc2VkLAotICAg
IC8vICAgICAgICB0byBiZSBjb25zaXN0ZW50IHdpdGggZml4bWUncyBpbiBsaW5lTnVtYmVyKCkg
YW5kIGNvbHVtbk51bWJlcgotICAgIC8vICAgICAgICBtZXRob2RzLgotICAgIHJldHVybiBUZXh0
UG9zaXRpb24wKFdURjo6WmVyb0Jhc2VkTnVtYmVyOjpmcm9tWmVyb0Jhc2VkSW50KGNvbnRleHQt
PmlucHV0LT5saW5lKSwKLSAgICAgICAgV1RGOjpaZXJvQmFzZWROdW1iZXI6OmZyb21aZXJvQmFz
ZWRJbnQoY29udGV4dC0+aW5wdXQtPmNvbCkpOwotfQotCi0vLyBUaGlzIG1ldGhvZCBoYXMgYSBj
b3JyZWN0IGltcGxlbWVudGF0aW9uLCBpbiBjb250cmFzdCB0byB0ZXh0UG9zaXRpb24oKSBtZXRo
b2QuCi0vLyBJdCBzaG91bGQgcmVwbGFjZSB0ZXh0UG9zaXRpb24oKS4KLVRleHRQb3NpdGlvbjEg
WE1MRG9jdW1lbnRQYXJzZXI6OnRleHRQb3NpdGlvbk9uZUJhc2VkKCkgY29uc3QKLXsKLSAgICB4
bWxQYXJzZXJDdHh0UHRyIGNvbnRleHQgPSB0aGlzLT5jb250ZXh0KCk7Ci0gICAgaWYgKCFjb250
ZXh0KQotICAgICAgICByZXR1cm4gVGV4dFBvc2l0aW9uMTo6bWluaW11bVBvc2l0aW9uKCk7Ci0g
ICAgcmV0dXJuIFRleHRQb3NpdGlvbjEoV1RGOjpPbmVCYXNlZE51bWJlcjo6ZnJvbU9uZUJhc2Vk
SW50KGNvbnRleHQtPmlucHV0LT5saW5lKSwKLSAgICAgICAgV1RGOjpPbmVCYXNlZE51bWJlcjo6
ZnJvbU9uZUJhc2VkSW50KGNvbnRleHQtPmlucHV0LT5jb2wpKTsKLX0KLQogdm9pZCBYTUxEb2N1
bWVudFBhcnNlcjo6c3RvcFBhcnNpbmcoKQogewogICAgIERvY3VtZW50UGFyc2VyOjpzdG9wUGFy
c2luZygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHAg
Yi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlclF0LmNwcAppbmRleCA5MDFjYmMxOGZhZmRm
Yjc0YjQ1ZjMzYWI4YzU3OWMyMzE2YjcxYjZmLi4wM2IwODNlYzFjOTI1Y2NkNTFlNmIxZDIxYzli
NTJlYTE2YmNlOWNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlclF0
LmNwcAorKysgYi9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlclF0LmNwcApAQCAtMTA1LDcg
KzEwNSw3IEBAIFhNTERvY3VtZW50UGFyc2VyOjpYTUxEb2N1bWVudFBhcnNlcihEb2N1bWVudCog
ZG9jdW1lbnQsIEZyYW1lVmlldyogZnJhbWVWaWV3KQogICAgICwgbV9sYXN0RXJyb3JMaW5lKDAp
CiAgICAgLCBtX2xhc3RFcnJvckNvbHVtbigwKQogICAgICwgbV9wZW5kaW5nU2NyaXB0KDApCi0g
ICAgLCBtX3NjcmlwdFN0YXJ0UG9zaXRpb24oVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0
aW9uKCkpCisgICAgLCBtX3NjcmlwdFN0YXJ0TGluZSgwKQogICAgICwgbV9wYXJzaW5nRnJhZ21l
bnQoZmFsc2UpCiAgICAgLCBtX3NjcmlwdGluZ1Blcm1pc3Npb24oRnJhZ21lbnRTY3JpcHRpbmdB
bGxvd2VkKQogewpAQCAtMTMyLDcgKzEzMiw3IEBAIFhNTERvY3VtZW50UGFyc2VyOjpYTUxEb2N1
bWVudFBhcnNlcihEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgRWxlbWVudCogcGFyZW50CiAg
ICAgLCBtX2xhc3RFcnJvckxpbmUoMCkKICAgICAsIG1fbGFzdEVycm9yQ29sdW1uKDApCiAgICAg
LCBtX3BlbmRpbmdTY3JpcHQoMCkKLSAgICAsIG1fc2NyaXB0U3RhcnRQb3NpdGlvbihUZXh0UG9z
aXRpb24xOjpiZWxvd1JhbmdlUG9zaXRpb24oKSkKKyAgICAsIG1fc2NyaXB0U3RhcnRMaW5lKDAp
CiAgICAgLCBtX3BhcnNpbmdGcmFnbWVudCh0cnVlKQogICAgICwgbV9zY3JpcHRpbmdQZXJtaXNz
aW9uKHBlcm1pc3Npb24pCiB7CkBAIC0yMzQsMTEgKzIzNCw2IEBAIGludCBYTUxEb2N1bWVudFBh
cnNlcjo6Y29sdW1uTnVtYmVyKCkgY29uc3QKICAgICByZXR1cm4gbV9zdHJlYW0uY29sdW1uTnVt
YmVyKCk7CiB9CiAKLVRleHRQb3NpdGlvbjAgWE1MRG9jdW1lbnRQYXJzZXI6OnRleHRQb3NpdGlv
bigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFRleHRQb3NpdGlvbjAoV1RGOjpaZXJvQmFzZWROdW1i
ZXI6OmZyb21aZXJvQmFzZWRJbnQobGluZU51bWJlcigpKSwgV1RGOjpaZXJvQmFzZWROdW1iZXI6
OmZyb21aZXJvQmFzZWRJbnQoY29sdW1uTnVtYmVyKCkpKTsKLX0KLQogdm9pZCBYTUxEb2N1bWVu
dFBhcnNlcjo6c3RvcFBhcnNpbmcoKQogewogICAgIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlcjo6
c3RvcFBhcnNpbmcoKTsKQEAgLTUyMyw3ICs1MTgsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2Vy
OjpwYXJzZVN0YXJ0RWxlbWVudCgpCiAKICAgICBTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50
ID0gdG9TY3JpcHRFbGVtZW50KG5ld0VsZW1lbnQuZ2V0KCkpOwogICAgIGlmIChzY3JpcHRFbGVt
ZW50KQotICAgICAgICBtX3NjcmlwdFN0YXJ0UG9zaXRpb24gPSBXVEY6OnRvT25lQmFzZWRUZXh0
UG9zaXRpb24odGV4dFBvc2l0aW9uKCkpOworICAgICAgICBtX3NjcmlwdFN0YXJ0TGluZSA9IGxp
bmVOdW1iZXIoKTsKIAogICAgIG1fY3VycmVudE5vZGUtPmRlcHJlY2F0ZWRQYXJzZXJBZGRDaGls
ZChuZXdFbGVtZW50LmdldCgpKTsKIApAQCAtNjAwLDcgKzU5NSw3IEBAIHZvaWQgWE1MRG9jdW1l
bnRQYXJzZXI6OnBhcnNlRW5kRWxlbWVudCgpCiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAg
ICAgICAgICBtX3NjcmlwdEVsZW1lbnQgPSAwOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
IG1fdmlldy0+ZnJhbWUoKS0+c2NyaXB0KCktPmV4ZWN1dGVTY3JpcHQoU2NyaXB0U291cmNlQ29k
ZShzY3JpcHRFbGVtZW50LT5zY3JpcHRDb250ZW50KCksIGRvY3VtZW50KCktPnVybCgpLCBtX3Nj
cmlwdFN0YXJ0UG9zaXRpb24pKTsKKyAgICAgICAgICAgIG1fdmlldy0+ZnJhbWUoKS0+c2NyaXB0
KCktPmV4ZWN1dGVTY3JpcHQoU2NyaXB0U291cmNlQ29kZShzY3JpcHRFbGVtZW50LT5zY3JpcHRD
b250ZW50KCksIGRvY3VtZW50KCktPnVybCgpLCBtX3NjcmlwdFN0YXJ0TGluZSkpOwogICAgIH0K
ICAgICBtX3JlcXVlc3RpbmdTY3JpcHQgPSBmYWxzZTsKICAgICBwb3BDdXJyZW50Tm9kZSgpOwpA
QCAtNzIxLDMgKzcxNiw0IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlRHRkKCkKIAog
fQogfQorCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNl
ci5jcHAgYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXgg
ZDE2OTQxN2E0YmU4MzkzMDkwMzBiNzM3NGI3NTg5ZGM3MTVjNjdjNC4uOTRjYzJhYTYyMzg2MmY1
Y2YwNTgwNDc5MjA3MjY2M2YxOTIzYzg2NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERv
Y3VtZW50UGFyc2VyLmNwcApAQCAtMTkxLDEyICsxOTEsMTIgQEAgYm9vbCBIVE1MRG9jdW1lbnRQ
YXJzZXI6OnJ1blNjcmlwdHNGb3JQYXVzZWRUcmVlQnVpbGRlcigpCiB7CiAgICAgQVNTRVJUKG1f
dHJlZUJ1aWxkZXItPmlzUGF1c2VkKCkpOwogCi0gICAgVGV4dFBvc2l0aW9uMSBzY3JpcHRTdGFy
dFBvc2l0aW9uID0gVGV4dFBvc2l0aW9uMTo6YmVsb3dSYW5nZVBvc2l0aW9uKCk7Ci0gICAgUmVm
UHRyPEVsZW1lbnQ+IHNjcmlwdEVsZW1lbnQgPSBtX3RyZWVCdWlsZGVyLT50YWtlU2NyaXB0VG9Q
cm9jZXNzKHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgIGludCBzY3JpcHRTdGFydExpbmUgPSAw
OworICAgIFJlZlB0cjxFbGVtZW50PiBzY3JpcHRFbGVtZW50ID0gbV90cmVlQnVpbGRlci0+dGFr
ZVNjcmlwdFRvUHJvY2VzcyhzY3JpcHRTdGFydExpbmUpOwogICAgIC8vIFdlIHdpbGwgbm90IGhh
dmUgYSBzY3JpcHRSdW5uZXIgd2hlbiBwYXJzaW5nIGEgRG9jdW1lbnRGcmFnbWVudC4KICAgICBp
ZiAoIW1fc2NyaXB0UnVubmVyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gbV9z
Y3JpcHRSdW5uZXItPmV4ZWN1dGUoc2NyaXB0RWxlbWVudC5yZWxlYXNlKCksIHNjcmlwdFN0YXJ0
UG9zaXRpb24pOworICAgIHJldHVybiBtX3NjcmlwdFJ1bm5lci0+ZXhlY3V0ZShzY3JpcHRFbGVt
ZW50LnJlbGVhc2UoKSwgc2NyaXB0U3RhcnRMaW5lKTsKIH0KIAogdm9pZCBIVE1MRG9jdW1lbnRQ
YXJzZXI6OnB1bXBUb2tlbml6ZXIoU3luY2hyb25vdXNNb2RlIG1vZGUpCkBAIC0zOTYsMTMgKzM5
Niw5IEBAIGludCBIVE1MRG9jdW1lbnRQYXJzZXI6OmxpbmVOdW1iZXIoKSBjb25zdAogICAgIHJl
dHVybiBtX3Rva2VuaXplci0+bGluZU51bWJlcigpOwogfQogCi1UZXh0UG9zaXRpb24wIEhUTUxE
b2N1bWVudFBhcnNlcjo6dGV4dFBvc2l0aW9uKCkgY29uc3QKK2ludCBIVE1MRG9jdW1lbnRQYXJz
ZXI6OmNvbHVtbk51bWJlcigpIGNvbnN0CiB7Ci0gICAgaW50IGxpbmVaZXJvQmFzZWQgPSBtX3Rv
a2VuaXplci0+bGluZU51bWJlcigpOwotICAgIGludCBjb2x1bW5PbmVCYXNlZCA9IG1fdG9rZW5p
emVyLT5jb2x1bW5OdW1iZXIoKTsKLQotICAgIHJldHVybiBUZXh0UG9zaXRpb24wKFdURjo6WmVy
b0Jhc2VkTnVtYmVyOjpmcm9tWmVyb0Jhc2VkSW50KGxpbmVaZXJvQmFzZWQpLAotICAgICAgICBX
VEY6Ok9uZUJhc2VkTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoY29sdW1uT25lQmFzZWQpLmNvbnZl
cnRUb1plcm9CYXNlZCgpKTsKKyAgICByZXR1cm4gbV90b2tlbml6ZXItPmNvbHVtbk51bWJlcigp
OwogfQogCiBib29sIEhUTUxEb2N1bWVudFBhcnNlcjo6aXNXYWl0aW5nRm9yU2NyaXB0cygpIGNv
bnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5o
IGIvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaAppbmRleCAwNTA1M2Rm
MmYxY2I0NTc1MTFlYTc0NjgxZjQyYzcyMmIzZDZjOWEwLi5kOTYyNWYxMjE4YjY3NGE0NmRhZTNl
MWIwOGQ4YmI3ZTNhNTRlNzM1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxE
b2N1bWVudFBhcnNlci5oCisrKyBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFy
c2VyLmgKQEAgLTkyLDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNFeGVj
dXRpbmdTY3JpcHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZXhlY3V0ZVNjcmlwdHNXYWl0
aW5nRm9yU3R5bGVzaGVldHMoKTsKICAgICB2aXJ0dWFsIGludCBsaW5lTnVtYmVyKCkgY29uc3Q7
Ci0gICAgdmlydHVhbCBUZXh0UG9zaXRpb24wIHRleHRQb3NpdGlvbigpIGNvbnN0OworICAgIHZp
cnR1YWwgaW50IGNvbHVtbk51bWJlcigpIGNvbnN0OwogCiAgICAgLy8gSFRNTFNjcmlwdFJ1bm5l
ckhvc3QKICAgICB2aXJ0dWFsIHZvaWQgd2F0Y2hGb3JMb2FkKENhY2hlZFJlc291cmNlKik7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwIGIvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcAppbmRleCA5NjRlNThhOWUwZjJm
Yjg5MmFiNmU4MzkyYWU5ZWE1N2JkNGRmM2Y3Li40ZjU0ZjQyOTI4NzBhY2Q1Mzg1NGZjNDcxMDg3
MGRkOWRmMTRmMmQxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRS
dW5uZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAK
QEAgLTk4LDcgKzk4LDcgQEAgU2NyaXB0U291cmNlQ29kZSBIVE1MU2NyaXB0UnVubmVyOjpzb3Vy
Y2VGcm9tUGVuZGluZ1NjcmlwdChjb25zdCBQZW5kaW5nU2NyaXB0JgogICAgICAgICByZXR1cm4g
U2NyaXB0U291cmNlQ29kZShzY3JpcHQuY2FjaGVkU2NyaXB0KCkpOwogICAgIH0KICAgICBlcnJv
ck9jY3VycmVkID0gZmFsc2U7Ci0gICAgcmV0dXJuIFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0LmVs
ZW1lbnQoKS0+dGV4dENvbnRlbnQoKSwgZG9jdW1lbnRVUkxGb3JTY3JpcHRFeGVjdXRpb24obV9k
b2N1bWVudCksIHNjcmlwdC5zdGFydGluZ1Bvc2l0aW9uKCkpOworICAgIHJldHVybiBTY3JpcHRT
b3VyY2VDb2RlKHNjcmlwdC5lbGVtZW50KCktPnRleHRDb250ZW50KCksIGRvY3VtZW50VVJMRm9y
U2NyaXB0RXhlY3V0aW9uKG1fZG9jdW1lbnQpLCBzY3JpcHQuc3RhcnRpbmdMaW5lTnVtYmVyKCkp
OwogfQogCiBib29sIEhUTUxTY3JpcHRSdW5uZXI6OmlzUGVuZGluZ1NjcmlwdFJlYWR5KGNvbnN0
IFBlbmRpbmdTY3JpcHQmIHNjcmlwdCkKQEAgLTE3MCwxMyArMTcwLDEzIEBAIHZvaWQgSFRNTFNj
cmlwdFJ1bm5lcjo6c3RvcFdhdGNoaW5nRm9yTG9hZChQZW5kaW5nU2NyaXB0JiBwZW5kaW5nU2Ny
aXB0KQogCiAvLyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBtYXRjaCAxMC4yLjUuMTEgIkFuIGVuZCB0
YWcgd2hvc2UgdGFnIG5hbWUgaXMgJ3NjcmlwdCciCiAvLyBTY3JpcHQgaGFuZGxpbmcgbGl2ZXMg
b3V0c2lkZSB0aGUgdHJlZSBidWlsZGVyIHRvIGtlZXAgdGhlIGVhY2ggY2xhc3Mgc2ltcGxlLgot
Ym9vbCBIVE1MU2NyaXB0UnVubmVyOjpleGVjdXRlKFBhc3NSZWZQdHI8RWxlbWVudD4gc2NyaXB0
RWxlbWVudCwgY29uc3QgVGV4dFBvc2l0aW9uMSYgc2NyaXB0U3RhcnRQb3NpdGlvbikKK2Jvb2wg
SFRNTFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZShQYXNzUmVmUHRyPEVsZW1lbnQ+IHNjcmlwdEVsZW1l
bnQsIGludCBzdGFydExpbmUpCiB7CiAgICAgQVNTRVJUKHNjcmlwdEVsZW1lbnQpOwogICAgIC8v
IEZJWE1FOiBJZiBzY3JpcHRpbmcgaXMgZGlzYWJsZWQsIGFsd2F5cyBqdXN0IHJldHVybiB0cnVl
OwogCiAgICAgLy8gVHJ5IHRvIGV4ZWN1dGUgdGhlIHNjcmlwdCBnaXZlbiB0byB1cy4KLSAgICBy
dW5TY3JpcHQoc2NyaXB0RWxlbWVudC5nZXQoKSwgc2NyaXB0U3RhcnRQb3NpdGlvbik7CisgICAg
cnVuU2NyaXB0KHNjcmlwdEVsZW1lbnQuZ2V0KCksIHN0YXJ0TGluZSk7CiAKICAgICBpZiAoaGF2
ZVBhcnNpbmdCbG9ja2luZ1NjcmlwdCgpKSB7CiAgICAgICAgIGlmIChtX3NjcmlwdE5lc3RpbmdM
ZXZlbCkKQEAgLTI4OCw3ICsyODgsNyBAQCBib29sIEhUTUxTY3JpcHRSdW5uZXI6OnJlcXVlc3RQ
ZW5kaW5nU2NyaXB0KFBlbmRpbmdTY3JpcHQmIHBlbmRpbmdTY3JpcHQsIEVsZW1lbgogCiAvLyBU
aGlzIG1ldGhvZCBpcyBtZWFudCB0byBtYXRjaCB0aGUgSFRNTDUgZGVmaW5pdGlvbiBvZiAicnVu
bmluZyBhIHNjcmlwdCIKIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9j
dXJyZW50LXdvcmsvbXVsdGlwYWdlL3NjcmlwdGluZy0xLmh0bWwjcnVubmluZy1hLXNjcmlwdAot
dm9pZCBIVE1MU2NyaXB0UnVubmVyOjpydW5TY3JpcHQoRWxlbWVudCogc2NyaXB0LCBjb25zdCBU
ZXh0UG9zaXRpb24xJiBzY3JpcHRTdGFydFBvc2l0aW9uKQordm9pZCBIVE1MU2NyaXB0UnVubmVy
OjpydW5TY3JpcHQoRWxlbWVudCogc2NyaXB0LCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyKQogewog
ICAgIEFTU0VSVChtX2RvY3VtZW50KTsKICAgICBBU1NFUlQoIWhhdmVQYXJzaW5nQmxvY2tpbmdT
Y3JpcHQoKSk7CkBAIC0zMTUsNyArMzE1LDcgQEAgdm9pZCBIVE1MU2NyaXB0UnVubmVyOjpydW5T
Y3JpcHQoRWxlbWVudCogc2NyaXB0LCBjb25zdCBUZXh0UG9zaXRpb24xJiBzY3JpcHRTdGEKICAg
ICAgICAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDAwNDcKICAgICAgICAgICAgIC8vIEFTU0VSVChkb2N1bWVudCgpLT5oYXZlU3R5bGVzaGVldHNM
b2FkZWQoKSk7CiAgICAgICAgICAgICBBU1NFUlQoaXNFeGVjdXRpbmdTY3JpcHQoKSk7Ci0gICAg
ICAgICAgICBTY3JpcHRTb3VyY2VDb2RlIHNvdXJjZUNvZGUoc2NyaXB0LT50ZXh0Q29udGVudCgp
LCBkb2N1bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlvbihtX2RvY3VtZW50KSwgc2NyaXB0U3RhcnRQ
b3NpdGlvbik7CisgICAgICAgICAgICBTY3JpcHRTb3VyY2VDb2RlIHNvdXJjZUNvZGUoc2NyaXB0
LT50ZXh0Q29udGVudCgpLCBkb2N1bWVudFVSTEZvclNjcmlwdEV4ZWN1dGlvbihtX2RvY3VtZW50
KSwgc3RhcnRpbmdMaW5lTnVtYmVyKTsKICAgICAgICAgICAgIGV4ZWN1dGVTY3JpcHQoc291cmNl
Q29kZSk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxTY3JpcHRSdW5uZXIuaCBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5l
ci5oCmluZGV4IDJkZjI5NWY5YzEzNTk0ZGVjYjZlZjFmMTAwZTNjZDk1ZDM3OTk0MmMuLmJlMjFk
ZDI0MjFiMWQ0NDI3YjA4NDdiMGI5MTFjMWZlOTdjNmY3NjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5oCisrKyBiL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFNjcmlwdFJ1bm5lci5oCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJQZW5kaW5n
U2NyaXB0LmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvVGV4
dFBvc2l0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KIApAQCAtNTMsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZXRh
Y2goKTsKIAogICAgIC8vIFByb2Nlc3NlcyB0aGUgcGFzc2VkIGluIHNjcmlwdCBhbmQgYW55IHBl
bmRpbmcgc2NyaXB0cyBpZiBwb3NzaWJsZS4KLSAgICBib29sIGV4ZWN1dGUoUGFzc1JlZlB0cjxF
bGVtZW50PiBzY3JpcHRUb1Byb2Nlc3MsIGNvbnN0IFRleHRQb3NpdGlvbjEmIHNjcmlwdFN0YXJ0
UG9zaXRpb24pOworICAgIGJvb2wgZXhlY3V0ZShQYXNzUmVmUHRyPEVsZW1lbnQ+IHNjcmlwdFRv
UHJvY2VzcywgaW50IHNjcmlwdFN0YXJ0TGluZSk7CiAKICAgICBib29sIGV4ZWN1dGVTY3JpcHRz
V2FpdGluZ0ZvckxvYWQoQ2FjaGVkUmVzb3VyY2UqKTsKICAgICBib29sIGhhc1NjcmlwdHNXYWl0
aW5nRm9yU3R5bGVzaGVldHMoKSBjb25zdCB7IHJldHVybiBtX2hhc1NjcmlwdHNXYWl0aW5nRm9y
U3R5bGVzaGVldHM7IH0KQEAgLTc3LDcgKzc2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVl
c3REZWZlcnJlZFNjcmlwdChFbGVtZW50Kik7CiAgICAgYm9vbCByZXF1ZXN0UGVuZGluZ1Njcmlw
dChQZW5kaW5nU2NyaXB0JiwgRWxlbWVudCopIGNvbnN0OwogCi0gICAgdm9pZCBydW5TY3JpcHQo
RWxlbWVudCosIGNvbnN0IFRleHRQb3NpdGlvbjEmIHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAg
IHZvaWQgcnVuU2NyaXB0KEVsZW1lbnQqLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyKTsKIAogICAg
IC8vIEhlbHBlcnMgZm9yIGRlYWxpbmcgd2l0aCBIVE1MU2NyaXB0UnVubmVySG9zdAogICAgIHZv
aWQgd2F0Y2hGb3JMb2FkKFBlbmRpbmdTY3JpcHQmKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRy
ZWVCdWlsZGVyLmNwcAppbmRleCBkOTUxZTI5YmU5MWFhZjJkZDdlNDQzYTg2YzEyZTRlYWZmNWYw
MjU3Li41ZjkwMjg1ZDVhN2QwNzQzNGM4MWI0N2JjZWY3NTc0ZmMwN2Y2ZTBhIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCkBAIC01NiwxMSArNTYsNiBAQCB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogCiBzdGF0aWMgY29uc3QgaW50IHVuaW5pdGlhbGl6ZWRMaW5l
TnVtYmVyVmFsdWUgPSAtMTsKIAotc3RhdGljIFRleHRQb3NpdGlvbjEgdW5pbml0aWFsaXplZFBv
c2l0aW9uVmFsdWUxKCkKLXsKLSAgICByZXR1cm4gVGV4dFBvc2l0aW9uMShXVEY6Ok9uZUJhc2Vk
TnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoLTEpLCBXVEY6Ok9uZUJhc2VkTnVtYmVyOjpiYXNlKCkp
OwotfQotCiBuYW1lc3BhY2UgewogCiBpbmxpbmUgYm9vbCBpc0hUTUxTcGFjZU9yUmVwbGFjZW1l
bnRDaGFyYWN0ZXIoVUNoYXIgY2hhcmFjdGVyKQpAQCAtMzM4LDggKzMzMyw4IEBAIEhUTUxUcmVl
QnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVyKEhUTUxUb2tlbml6ZXIqIHRva2VuaXplciwgSFRNTERv
Y3VtZW50KiBkb2N1bWVuCiAgICAgLCBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZShJbml0aWFsTW9k
ZSkKICAgICAsIG1fc2Vjb25kYXJ5SW5zZXJ0aW9uTW9kZShJbml0aWFsTW9kZSkKICAgICAsIG1f
dG9rZW5pemVyKHRva2VuaXplcikKLSAgICAsIG1fc2NyaXB0VG9Qcm9jZXNzU3RhcnRQb3NpdGlv
bih1bmluaXRpYWxpemVkUG9zaXRpb25WYWx1ZTEoKSkKLSAgICAsIG1fbGFzdFNjcmlwdEVsZW1l
bnRTdGFydFBvc2l0aW9uKFRleHRQb3NpdGlvbjA6OmJlbG93UmFuZ2VQb3NpdGlvbigpKQorICAg
ICwgbV9zY3JpcHRUb1Byb2Nlc3NTdGFydExpbmUodW5pbml0aWFsaXplZExpbmVOdW1iZXJWYWx1
ZSkKKyAgICAsIG1fbGFzdFNjcmlwdEVsZW1lbnRTdGFydExpbmUodW5pbml0aWFsaXplZExpbmVO
dW1iZXJWYWx1ZSkKICAgICAsIG1fdXNlUHJlSFRNTDVQYXJzZXJRdWlya3ModXNlUHJlSFRNTDVQ
YXJzZXJRdWlya3MpCiB7CiB9CkBAIC0zNTcsOCArMzUyLDggQEAgSFRNTFRyZWVCdWlsZGVyOjpI
VE1MVHJlZUJ1aWxkZXIoSFRNTFRva2VuaXplciogdG9rZW5pemVyLCBEb2N1bWVudEZyYWdtZW50
KiBmcmEKICAgICAsIG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlKEluaXRpYWxNb2RlKQogICAgICwg
bV9zZWNvbmRhcnlJbnNlcnRpb25Nb2RlKEluaXRpYWxNb2RlKQogICAgICwgbV90b2tlbml6ZXIo
dG9rZW5pemVyKQotICAgICwgbV9zY3JpcHRUb1Byb2Nlc3NTdGFydFBvc2l0aW9uKHVuaW5pdGlh
bGl6ZWRQb3NpdGlvblZhbHVlMSgpKQotICAgICwgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0UG9z
aXRpb24oVGV4dFBvc2l0aW9uMDo6YmVsb3dSYW5nZVBvc2l0aW9uKCkpCisgICAgLCBtX3Njcmlw
dFRvUHJvY2Vzc1N0YXJ0TGluZSh1bmluaXRpYWxpemVkTGluZU51bWJlclZhbHVlKQorICAgICwg
bV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0TGluZSh1bmluaXRpYWxpemVkTGluZU51bWJlclZhbHVl
KQogICAgICwgbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrcyh1c2VQcmVIVE1MNVBhcnNlclF1aXJr
cykKIHsKICAgICBpZiAoY29udGV4dEVsZW1lbnQpIHsKQEAgLTQyMCwxNSArNDE1LDE1IEBAIEhU
TUxUcmVlQnVpbGRlcjo6RnJhZ21lbnRQYXJzaW5nQ29udGV4dDo6fkZyYWdtZW50UGFyc2luZ0Nv
bnRleHQoKQogewogfQogCi1QYXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxUcmVlQnVpbGRlcjo6dGFr
ZVNjcmlwdFRvUHJvY2VzcyhUZXh0UG9zaXRpb24xJiBzY3JpcHRTdGFydFBvc2l0aW9uKQorUGFz
c1JlZlB0cjxFbGVtZW50PiBIVE1MVHJlZUJ1aWxkZXI6OnRha2VTY3JpcHRUb1Byb2Nlc3MoaW50
JiBzY3JpcHRTdGFydExpbmUpCiB7CiAgICAgLy8gVW5wYXVzZSBvdXJzZWx2ZXMsIGNhbGxlcnMg
bWF5IHBhdXNlIHVzIGFnYWluIHdoZW4gcHJvY2Vzc2luZyB0aGUgc2NyaXB0LgogICAgIC8vIFRo
ZSBIVE1MNSBzcGVjIGlzIHdyaXR0ZW4gYXMgdGhvdWdoIHNjcmlwdHMgYXJlIGV4ZWN1dGVkIGlu
c2lkZSB0aGUgdHJlZQogICAgIC8vIGJ1aWxkZXIuICBXZSBwYXVzZSB0aGUgcGFyc2VyIHRvIGV4
aXQgdGhlIHRyZWUgYnVpbGRlciwgYW5kIHRoZW4gcmVzdW1lCiAgICAgLy8gYmVmb3JlIHJ1bm5p
bmcgc2NyaXB0cy4KICAgICBtX2lzUGF1c2VkID0gZmFsc2U7Ci0gICAgc2NyaXB0U3RhcnRQb3Np
dGlvbiA9IG1fc2NyaXB0VG9Qcm9jZXNzU3RhcnRQb3NpdGlvbjsKLSAgICBtX3NjcmlwdFRvUHJv
Y2Vzc1N0YXJ0UG9zaXRpb24gPSB1bmluaXRpYWxpemVkUG9zaXRpb25WYWx1ZTEoKTsKKyAgICBz
Y3JpcHRTdGFydExpbmUgPSBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0TGluZTsKKyAgICBtX3Njcmlw
dFRvUHJvY2Vzc1N0YXJ0TGluZSA9IHVuaW5pdGlhbGl6ZWRMaW5lTnVtYmVyVmFsdWU7CiAgICAg
cmV0dXJuIG1fc2NyaXB0VG9Qcm9jZXNzLnJlbGVhc2UoKTsKIH0KIApAQCAtMjIwNiw3ICsyMjAx
LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2Vu
JiB0b2tlbikKICAgICAgICAgICAgIG1faXNQYXVzZWQgPSB0cnVlOwogICAgICAgICAgICAgQVNT
RVJUKG1fdHJlZS5jdXJyZW50RWxlbWVudCgpLT5oYXNUYWdOYW1lKHNjcmlwdFRhZykpOwogICAg
ICAgICAgICAgbV9zY3JpcHRUb1Byb2Nlc3MgPSBtX3RyZWUuY3VycmVudEVsZW1lbnQoKTsKLSAg
ICAgICAgICAgIG1fc2NyaXB0VG9Qcm9jZXNzU3RhcnRQb3NpdGlvbiA9IFdURjo6dG9PbmVCYXNl
ZFRleHRQb3NpdGlvbihtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRQb3NpdGlvbik7CisgICAgICAg
ICAgICBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0TGluZSA9IG1fbGFzdFNjcmlwdEVsZW1lbnRTdGFy
dExpbmUgKyAxOwogICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsKICAg
ICAgICAgICAgIGlmIChpc1BhcnNpbmdGcmFnbWVudCgpICYmIG1fZnJhZ21lbnRDb250ZXh0LnNj
cmlwdGluZ1Blcm1pc3Npb24oKSA9PSBGcmFnbWVudFNjcmlwdGluZ05vdEFsbG93ZWQpCiAgICAg
ICAgICAgICAgICAgbV9zY3JpcHRUb1Byb2Nlc3MtPnJlbW92ZUFsbENoaWxkcmVuKCk7CkBAIC0y
NzU1LDEwICsyNzUwLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTY3JpcHRTdGFy
dFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgIG1fdHJlZS5pbnNlcnRTY3JpcHRFbGVt
ZW50KHRva2VuKTsKICAgICBtX3Rva2VuaXplci0+c2V0U3RhdGUoSFRNTFRva2VuaXplcjo6U2Ny
aXB0RGF0YVN0YXRlKTsKICAgICBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IG1faW5zZXJ0aW9u
TW9kZTsKLQotICAgIFRleHRQb3NpdGlvbjAgcG9zaXRpb24gPSBUZXh0UG9zaXRpb24wKFdURjo6
WmVyb0Jhc2VkTnVtYmVyOjpmcm9tWmVyb0Jhc2VkSW50KG1fdG9rZW5pemVyLT5saW5lTnVtYmVy
KCkpLCBXVEY6Olplcm9CYXNlZE51bWJlcjo6YmFzZSgpKTsKLSAgICBtX2xhc3RTY3JpcHRFbGVt
ZW50U3RhcnRQb3NpdGlvbiA9IHBvc2l0aW9uOwotCisgICAgbV9sYXN0U2NyaXB0RWxlbWVudFN0
YXJ0TGluZSA9IG1fdG9rZW5pemVyLT5saW5lTnVtYmVyKCk7CiAgICAgc2V0SW5zZXJ0aW9uTW9k
ZShUZXh0TW9kZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRy
ZWVCdWlsZGVyLmggYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCmluZGV4
IGJiMzU5NmRmZWU3ZmNjZTkyZTcxZjJlMWZhMGU1ZjE1ZTk0OGIxODkuLmU2MWZlNzM0NjZkYTE3
OGQzMzExZDI3NjIwZTQ2YjgyODFjMWU0NTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFRyZWVCdWlsZGVyLmgKKysrIGIvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1
aWxkZXIuaApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkhUTUxFbGVtZW50U3RhY2suaCIK
ICNpbmNsdWRlICJIVE1MRm9ybWF0dGluZ0VsZW1lbnRMaXN0LmgiCiAjaW5jbHVkZSAiSFRNTFRv
a2VuaXplci5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgpAQCAtNzIsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb25z
dHJ1Y3RUcmVlRnJvbUF0b21pY1Rva2VuKEF0b21pY0hUTUxUb2tlbiYpOwogCiAgICAgLy8gTXVz
dCBiZSBjYWxsZWQgd2hlbiBwYXJzZXIgaXMgcGF1c2VkIGJlZm9yZSBjYWxsaW5nIHRoZSBwYXJz
ZXIgYWdhaW4uCi0gICAgUGFzc1JlZlB0cjxFbGVtZW50PiB0YWtlU2NyaXB0VG9Qcm9jZXNzKFRl
eHRQb3NpdGlvbjEmIHNjcmlwdFN0YXJ0UG9zaXRpb24pOworICAgIFBhc3NSZWZQdHI8RWxlbWVu
dD4gdGFrZVNjcmlwdFRvUHJvY2VzcyhpbnQmIHNjcmlwdFN0YXJ0TGluZSk7CiAKICAgICAvLyBE
b25lLCBjbG9zZSBhbnkgb3BlbiB0YWdzLCBldGMuCiAgICAgdm9pZCBmaW5pc2hlZCgpOwpAQCAt
MjQ3LDEyICsyNDYsMTMgQEAgcHJpdmF0ZToKICAgICBIVE1MVG9rZW5pemVyKiBtX3Rva2VuaXpl
cjsKIAogICAgIFJlZlB0cjxFbGVtZW50PiBtX3NjcmlwdFRvUHJvY2VzczsgLy8gPHNjcmlwdD4g
dGFnIHdoaWNoIG5lZWRzIHByb2Nlc3NpbmcgYmVmb3JlIHJlc3VtaW5nIHRoZSBwYXJzZXIuCi0g
ICAgVGV4dFBvc2l0aW9uMSBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0UG9zaXRpb247IC8vIFN0YXJ0
aW5nIGxpbmUgbnVtYmVyIG9mIHRoZSBzY3JpcHQgdGFnIG5lZWRpbmcgcHJvY2Vzc2luZy4KKyAg
ICBpbnQgbV9zY3JpcHRUb1Byb2Nlc3NTdGFydExpbmU7IC8vIFN0YXJ0aW5nIGxpbmUgbnVtYmVy
IG9mIHRoZSBzY3JpcHQgdGFnIG5lZWRpbmcgcHJvY2Vzc2luZy4KIAogICAgIC8vIEZJWE1FOiBX
ZSBwcm9iYWJseSB3YW50IHRvIHJlbW92ZSB0aGlzIG1lbWJlci4gIE9yaWdpbmFsbHksIGl0IHdh
cwogICAgIC8vIGNyZWF0ZWQgdG8gc2VydmljZSB0aGUgbGVnYWN5IHRyZWUgYnVpbGRlciwgYnV0
IGl0IHNlZW1zIHRvIGJlIHVzZWQgZm9yCiAgICAgLy8gc29tZSBvdGhlciB0aGluZ3Mgbm93Lgot
ICAgIFRleHRQb3NpdGlvbjAgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0UG9zaXRpb247CisgICAg
aW50IG1fbGFzdFNjcmlwdEVsZW1lbnRTdGFydExpbmU7CisgICAgCiAgICAgYm9vbCBtX3VzZVBy
ZUhUTUw1UGFyc2VyUXVpcmtzOwogfTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZDE0OTZkZmEzMWM2ZDQx
ZDZkNzY4MGI1OTVmMTM1MzNjYjQyMGY2ZS4uYmQyZmFhODM3ODFmYTMxYTVkN2ZkMjI2NGJhN2Jh
NTgzYmIyYWZkYyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAtMjAgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHI3MDE2NS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvNzAxNjUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ4MDA3CisKKyAgICAgICAgSXQgYnJva2UgdGVzdHMgb24gUXQgYm90IChSZXF1
ZXN0ZWQgYnkgT3NzeSBvbiAjd2Via2l0KS4KKworICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OmV4ZWN1dGVTY3JpcHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OmV4ZWN1dGVTY3JpcHRJbklzb2xhdGVkV29ybGQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6OmV4ZWN1dGVTY3JpcHRBbmRSZXR1cm5W
YWx1ZSk6CisKIDIwMTAtMTAtMjAgIFBldGVyIFJ5YmluICA8cGV0ZXIucnliaW5AZ21haWwuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZy
YW1lSW1wbC5jcHAKaW5kZXggNTI4MDQ0MzNkZWI5ODI0NWZlNzkwMzM4Y2U5MDQ5ODUxYTM5NmQ3
ZS4uYjRkMjNjMGUyMTY1ZDMyNmQ3ZTk2MGRkNGE0MGFjY2ViNWJmOGEzYSAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAtNzUzLDkgKzc1Myw4IEBAIHZvaWQgV2ViRnJhbWVJ
bXBsOjpiaW5kVG9XaW5kb3dPYmplY3QoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBOUE9iamVjdCog
b2JqZWN0KQogCiB2b2lkIFdlYkZyYW1lSW1wbDo6ZXhlY3V0ZVNjcmlwdChjb25zdCBXZWJTY3Jp
cHRTb3VyY2UmIHNvdXJjZSkKIHsKLSAgICBUZXh0UG9zaXRpb24xIHBvc2l0aW9uKFdURjo6T25l
QmFzZWROdW1iZXI6OmZyb21PbmVCYXNlZEludChzb3VyY2Uuc3RhcnRMaW5lKSwgV1RGOjpPbmVC
YXNlZE51bWJlcjo6YmFzZSgpKTsKICAgICBtX2ZyYW1lLT5zY3JpcHQoKS0+ZXhlY3V0ZVNjcmlw
dCgKLSAgICAgICAgU2NyaXB0U291cmNlQ29kZShzb3VyY2UuY29kZSwgc291cmNlLnVybCwgcG9z
aXRpb24pKTsKKyAgICAgICAgU2NyaXB0U291cmNlQ29kZShzb3VyY2UuY29kZSwgc291cmNlLnVy
bCwgc291cmNlLnN0YXJ0TGluZSkpOwogfQogCiB2b2lkIFdlYkZyYW1lSW1wbDo6ZXhlY3V0ZVNj
cmlwdEluSXNvbGF0ZWRXb3JsZCgKQEAgLTc2NSw5ICs3NjQsOCBAQCB2b2lkIFdlYkZyYW1lSW1w
bDo6ZXhlY3V0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKICAgICBWZWN0b3I8U2NyaXB0U291cmNl
Q29kZT4gc291cmNlczsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1Tb3VyY2Vz
OyArK2kpIHsKLSAgICAgICAgVGV4dFBvc2l0aW9uMSBwb3NpdGlvbihXVEY6Ok9uZUJhc2VkTnVt
YmVyOjpmcm9tT25lQmFzZWRJbnQoc291cmNlc0luW2ldLnN0YXJ0TGluZSksIFdURjo6T25lQmFz
ZWROdW1iZXI6OmJhc2UoKSk7CiAgICAgICAgIHNvdXJjZXMuYXBwZW5kKFNjcmlwdFNvdXJjZUNv
ZGUoCi0gICAgICAgICAgICBzb3VyY2VzSW5baV0uY29kZSwgc291cmNlc0luW2ldLnVybCwgcG9z
aXRpb24pKTsKKyAgICAgICAgICAgIHNvdXJjZXNJbltpXS5jb2RlLCBzb3VyY2VzSW5baV0udXJs
LCBzb3VyY2VzSW5baV0uc3RhcnRMaW5lKSk7CiAgICAgfQogCiAgICAgbV9mcmFtZS0+c2NyaXB0
KCktPmV2YWx1YXRlSW5Jc29sYXRlZFdvcmxkKHdvcmxkSWQsIHNvdXJjZXMsIGV4dGVuc2lvbkdy
b3VwKTsKQEAgLTgxOSw5ICs4MTcsOCBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6Y29sbGVjdEdhcmJh
Z2UoKQogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFdlYkZyYW1lSW1wbDo6ZXhlY3V0ZVNjcmlwdEFu
ZFJldHVyblZhbHVlKAogICAgIGNvbnN0IFdlYlNjcmlwdFNvdXJjZSYgc291cmNlKQogewotICAg
IFRleHRQb3NpdGlvbjEgcG9zaXRpb24oV1RGOjpPbmVCYXNlZE51bWJlcjo6ZnJvbU9uZUJhc2Vk
SW50KHNvdXJjZS5zdGFydExpbmUpLCBXVEY6Ok9uZUJhc2VkTnVtYmVyOjpiYXNlKCkpOwogICAg
IHJldHVybiBtX2ZyYW1lLT5zY3JpcHQoKS0+ZXhlY3V0ZVNjcmlwdCgKLSAgICAgICAgU2NyaXB0
U291cmNlQ29kZShzb3VyY2UuY29kZSwgc291cmNlLnVybCwgcG9zaXRpb24pKS52OFZhbHVlKCk7
CisgICAgICAgIFNjcmlwdFNvdXJjZUNvZGUoc291cmNlLmNvZGUsIHNvdXJjZS51cmwsIHNvdXJj
ZS5zdGFydExpbmUpKS52OFZhbHVlKCk7CiB9CiAKIC8vIFJldHVybnMgdGhlIFY4IGNvbnRleHQg
Zm9yIHRoaXMgZnJhbWUsIG9yIGFuIGVtcHR5IGhhbmRsZSBpZiB0aGVyZSBpcyBub25lLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>