<?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>210494</bug_id>
          
          <creation_ts>2020-04-14 07:15:44 -0700</creation_ts>
          <short_desc>Use a WeakHashSet to store MediaStreamPrivate observers</short_desc>
          <delta_ts>2020-04-23 05:49: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>WebRTC</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=210800</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>amatsak</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gabor</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1641355</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-14 07:15:44 -0700</bug_when>
    <thetext>Use a WeakHashSet to store MediaStreamPrivate observers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641358</commentid>
    <comment_count>1</comment_count>
      <attachid>396413</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-14 07:19:36 -0700</bug_when>
    <thetext>Created attachment 396413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643392</commentid>
    <comment_count>2</comment_count>
      <attachid>396958</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-20 01:36:42 -0700</bug_when>
    <thetext>Created attachment 396958
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643395</commentid>
    <comment_count>3</comment_count>
      <attachid>396959</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-20 02:06:54 -0700</bug_when>
    <thetext>Created attachment 396959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643536</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-20 11:14:42 -0700</bug_when>
    <thetext>Committed r260379: &lt;https://trac.webkit.org/changeset/260379&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396959.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643538</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-20 11:15:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/62066856&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396413</attachid>
            <date>2020-04-14 07:19:36 -0700</date>
            <delta_ts>2020-04-20 01:36:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210494-20200414161934.patch</filename>
            <type>text/plain</type>
            <size>10556</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE4NmZhNjExYjcxYmUw
ODY1MTRiYmMyNDRmODIxYzhmOThiZTA0My4uYzA4NTM5YzYyNWYyYzU0YjVjMDJlYmYyODNmZjQw
ODA5ODFjMWQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTA0LTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgYSBXZWFrSGFzaFNl
dCB0byBzdG9yZSBNZWRpYVN0cmVhbVByaXZhdGUgb2JzZXJ2ZXJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0OTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgb2JzZXJ2ZXJzIGZyb20gdGhl
IE1lZGlhU3RyZWFtIGFuZCBtaWdyYXRlIGV4aXN0aW5nIGNsaWVudCAoTWVkaWFSZWNvcmRlcikg
dG8gTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlci4KKyAgICAgICAgTWFrZSB1c2Ugb2YgV2Vh
a0hhc2hTZXQgaW4gTWVkaWFTdHJlYW1Qcml2YXRlIHRvIGltcHJvdmUgcm9idXN0bmVzcyBvZiB0
aGUgY29kZS4gCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVJlY29yZGVyOjpNZWRpYVJlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUmVjb3JkZXI6On5NZWRpYVJlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVj
b3JkZXI6OmhhbmRsZVRyYWNrQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXI6OmRpZEFkZE9yUmVtb3ZlVHJhY2spOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6YWRkVHJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06OnJlbW92ZVRyYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjpnZXRUcmFja0J5SWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW06OmFkZE9ic2VydmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtOjpyZW1vdmVPYnNlcnZlcik6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVh
bVByaXZhdGU6OmFkZE9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJp
dmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2
YXRlOjpmb3JFYWNoT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2
YXRlOjpmb3JFYWNoT2JzZXJ2ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oOgorCiAyMDIwLTA0LTE0ICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHVzZSBvZiBXZWFrSGFz
aFNldCBmb3IgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUgYW5kIFJlYWx0aW1lTWVkaWFTb3VyY2Ug
b2JzZXJ2ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5jcHAKaW5kZXggYWVkODU1ZmUyNTRiNzNkNWQ3YmViMWJlMmY4YmRh
NGYyNmJhYmYyMC4uZWNhNWU5ZWNmMWUyODc3MTBiYjAxOWYyNjAwMzVlMTYxYjAyZTA4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3Jk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJl
Y29yZGVyLmNwcApAQCAtOTEsMTIgKzkxLDEyIEBAIE1lZGlhUmVjb3JkZXI6Ok1lZGlhUmVjb3Jk
ZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWVkaWFTdHJlYW0+JiYgc3RyZWFtLCBzdGQ6CiAg
ICAgbV90cmFja3MgPSBXVEY6Om1hcChtX3N0cmVhbS0+Z2V0VHJhY2tzKCksIFtdIChhdXRvJiYg
dHJhY2spIC0+IFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gewogICAgICAgICByZXR1cm4g
dHJhY2stPnByaXZhdGVUcmFjaygpOwogICAgIH0pOwotICAgIG1fc3RyZWFtLT5hZGRPYnNlcnZl
cih0aGlzKTsKKyAgICBtX3N0cmVhbS0+cHJpdmF0ZVN0cmVhbSgpLmFkZE9ic2VydmVyKCp0aGlz
KTsKIH0KIAogTWVkaWFSZWNvcmRlcjo6fk1lZGlhUmVjb3JkZXIoKQogewotICAgIG1fc3RyZWFt
LT5yZW1vdmVPYnNlcnZlcih0aGlzKTsKKyAgICBtX3N0cmVhbS0+cHJpdmF0ZVN0cmVhbSgpLnJl
bW92ZU9ic2VydmVyKCp0aGlzKTsKICAgICBzdG9wUmVjb3JkaW5nSW50ZXJuYWwoKTsKIH0KIApA
QCAtMTk0LDcgKzE5NCw3IEBAIHZvaWQgTWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGluZ0ludGVy
bmFsKCkKICAgICBtX3ByaXZhdGUtPnN0b3BSZWNvcmRpbmcoKTsKIH0KIAotdm9pZCBNZWRpYVJl
Y29yZGVyOjpkaWRBZGRPclJlbW92ZVRyYWNrKCkKK3ZvaWQgTWVkaWFSZWNvcmRlcjo6aGFuZGxl
VHJhY2tDaGFuZ2UoKQogewogICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywg
VGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXNdIHsKICAgICAgICAgaWYgKCFtX2lzQWN0aXZl
IHx8IHN0YXRlKCkgPT0gUmVjb3JkaW5nU3RhdGU6OkluYWN0aXZlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKaW5kZXggNTMy
YjAzNWRkYjU1MGY4ZjBkZDYzNTAzNzI3YWQ0M2M2MGYzNDFhZS4uNmE0OTRkNGEwYzMwNTU2YTE4
ZjdkYzc0NjgyZjZmNjFiYjk5NDQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNz
IE1lZGlhUmVjb3JkZXIgZmluYWwKICAgICA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QKICAgICAs
IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhUmVjb3JkZXI+CiAgICAgLCBwdWJsaWMgRXZlbnRUYXJn
ZXRXaXRoSW5saW5lRGF0YQotICAgICwgcHJpdmF0ZSBNZWRpYVN0cmVhbTo6T2JzZXJ2ZXIKKyAg
ICAsIHByaXZhdGUgTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlcgogICAgICwgcHJpdmF0ZSBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoTWVkaWFSZWNvcmRlcik7CiBwdWJsaWM6CkBAIC05OCw4ICs5OCwxMSBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlzcGF0Y2hFcnJvcihFeGNlcHRpb24mJik7CiAKICAgICAvLyBNZWRpYVN0
cmVhbTo6T2JzZXJ2ZXIKLSAgICB2b2lkIGRpZEFkZE9yUmVtb3ZlVHJhY2soKSBmaW5hbDsKLSAg
ICAKKyAgICB2b2lkIGRpZEFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWwg
eyBoYW5kbGVUcmFja0NoYW5nZSgpOyB9CisgICAgdm9pZCBkaWRSZW1vdmVUcmFjayhNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsgaGFuZGxlVHJhY2tDaGFuZ2UoKTsgfQorCisgICAg
dm9pZCBoYW5kbGVUcmFja0NoYW5nZSgpOworCiAgICAgLy8gTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU6Ok9ic2VydmVyCiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
JikgZmluYWw7CiAgICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSYpIGZpbmFsIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5jcHAKaW5kZXggNDkzYTQwMDA1OTExODE2MjQzZTBkODUzNTZmYzFh
YTc3MDg5MTM1Ni4uZjI2ODRhOTVkZDA1YjJiYWU0NDU3YTdiMjdiNGIzMGQwYTBmNGVlNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5j
cHAKQEAgLTE0MCwzMCArMTQwLDIwIEBAIFJlZlB0cjxNZWRpYVN0cmVhbT4gTWVkaWFTdHJlYW06
OmNsb25lKCkKIHZvaWQgTWVkaWFTdHJlYW06OmFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2smIHRy
YWNrKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgdHJhY2subG9nSWRlbnRpZmll
cigpKTsKLQotICAgIGlmICghaW50ZXJuYWxBZGRUcmFjayh0cmFjaywgU3RyZWFtTW9kaWZpZXI6
OkRvbUFQSSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBt
X29ic2VydmVycykKLSAgICAgICAgb2JzZXJ2ZXItPmRpZEFkZE9yUmVtb3ZlVHJhY2soKTsKKyAg
ICBpbnRlcm5hbEFkZFRyYWNrKHRyYWNrLCBTdHJlYW1Nb2RpZmllcjo6RG9tQVBJKTsKIH0KIAog
dm9pZCBNZWRpYVN0cmVhbTo6cmVtb3ZlVHJhY2soTWVkaWFTdHJlYW1UcmFjayYgdHJhY2spCiB7
CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB0cmFjay5sb2dJZGVudGlmaWVyKCkpOwot
Ci0gICAgaWYgKCFpbnRlcm5hbFJlbW92ZVRyYWNrKHRyYWNrLmlkKCksIFN0cmVhbU1vZGlmaWVy
OjpEb21BUEkpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDog
bV9vYnNlcnZlcnMpCi0gICAgICAgIG9ic2VydmVyLT5kaWRBZGRPclJlbW92ZVRyYWNrKCk7Cisg
ICAgaW50ZXJuYWxSZW1vdmVUcmFjayh0cmFjay5pZCgpLCBTdHJlYW1Nb2RpZmllcjo6RG9tQVBJ
KTsKIH0KIAogTWVkaWFTdHJlYW1UcmFjayogTWVkaWFTdHJlYW06OmdldFRyYWNrQnlJZChTdHJp
bmcgaWQpCiB7Ci0gICAgYXV0byBpdCA9IG1fdHJhY2tTZXQuZmluZChpZCk7Ci0gICAgaWYgKGl0
ICE9IG1fdHJhY2tTZXQuZW5kKCkpCi0gICAgICAgIHJldHVybiBpdC0+dmFsdWUuZ2V0KCk7Cisg
ICAgYXV0byBpdGVyYXRvciA9IG1fdHJhY2tTZXQuZmluZChpZCk7CisgICAgaWYgKGl0ZXJhdG9y
ICE9IG1fdHJhY2tTZXQuZW5kKCkpCisgICAgICAgIHJldHVybiBpdGVyYXRvci0+dmFsdWUuZ2V0
KCk7CiAKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KQEAgLTM3MiwxOSArMzYyLDYgQEAgTWVkaWFT
dHJlYW1UcmFja1ZlY3RvciBNZWRpYVN0cmVhbTo6dHJhY2tWZWN0b3JGb3JUeXBlKFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGUKICAgICByZXR1cm4gdHJhY2tzOwogfQogCi12b2lkIE1lZGlhU3Ry
ZWFtOjphZGRPYnNlcnZlcihNZWRpYVN0cmVhbTo6T2JzZXJ2ZXIqIG9ic2VydmVyKQotewotICAg
IGlmIChtX29ic2VydmVycy5maW5kKG9ic2VydmVyKSA9PSBub3RGb3VuZCkKLSAgICAgICAgbV9v
YnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbTo6cmVtb3Zl
T2JzZXJ2ZXIoTWVkaWFTdHJlYW06Ok9ic2VydmVyKiBvYnNlcnZlcikKLXsKLSAgICBzaXplX3Qg
cG9zID0gbV9vYnNlcnZlcnMuZmluZChvYnNlcnZlcik7Ci0gICAgaWYgKHBvcyAhPSBub3RGb3Vu
ZCkKLSAgICAgICAgbV9vYnNlcnZlcnMucmVtb3ZlKHBvcyk7Ci19Ci0KIERvY3VtZW50KiBNZWRp
YVN0cmVhbTo6ZG9jdW1lbnQoKSBjb25zdAogewogICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVu
dD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAppbmRleCBjYjhmMTQ2MjMzOWExNWRiZGI2MmY2
ZTU3ZjA2ZmFiY2M4ZWI2NTFlLi44NTYzNDA2YjQ2YmYyZDAwMGQ3MWU5OTRkN2I3NTVjYzIyYjEz
YWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbS5oCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAiVVJMUmVnaXN0cnkuaCIKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KLSNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNTksMTIgKzU4LDYgQEAgY2xhc3MgTWVkaWFTdHJlYW0gZmluYWwK
ICAgICAsIHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtPiB7CiAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChNZWRpYVN0cmVhbSk7CiBwdWJsaWM6Ci0gICAgY2xhc3MgT2JzZXJ2ZXIgewot
ICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRPclJlbW92ZVRyYWNrKCkgPSAwOwotICAgIH07Ci0KICAg
ICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtPiBjcmVhdGUoRG9jdW1lbnQmKTsKICAgICBzdGF0aWMg
UmVmPE1lZGlhU3RyZWFtPiBjcmVhdGUoRG9jdW1lbnQmLCBNZWRpYVN0cmVhbSYpOwogICAgIHN0
YXRpYyBSZWY8TWVkaWFTdHJlYW0+IGNyZWF0ZShEb2N1bWVudCYsIGNvbnN0IE1lZGlhU3RyZWFt
VHJhY2tWZWN0b3ImKTsKQEAgLTk4LDkgKzkxLDYgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNv
dW50ZWQ8TWVkaWFTdHJlYW0+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVh
bT46OmRlcmVmOwogCi0gICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciopOwotICAgIHZvaWQg
cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXIqKTsKLQogICAgIHZvaWQgYWRkVHJhY2tGcm9tUGxhdGZv
cm0oUmVmPE1lZGlhU3RyZWFtVHJhY2s+JiYpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkg
Y29uc3Q7CkBAIC0xNTYsOCArMTQ2LDYgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hNYXA8U3RyaW5n
LCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4+IG1fdHJhY2tTZXQ7CiAKLSAgICBWZWN0b3I8T2Jz
ZXJ2ZXIqPiBtX29ic2VydmVyczsKLQogICAgIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBtX3N0YXRlIHsgTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nIH07CiAKICAgICBib29sIG1f
aXNBY3RpdmUgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKaW5kZXggN2IyZDBjNzk2YmE5
YjE1ZTcyM2I0NDU1OGFkZWM3NGIxMWY4MjlmNS4uZGY3ZTRiYzFmYTc4YWEzMjkxNzA5NDA4NTc5
OWE0NDFkOTJiMWVlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCkBAIC04OCwyNiArODgsMjMgQEAg
TWVkaWFTdHJlYW1Qcml2YXRlOjp+TWVkaWFTdHJlYW1Qcml2YXRlKCkKICAgICAgICAgdHJhY2st
PnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKIH0KIAotdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFk
ZE9ic2VydmVyKE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXImIG9ic2VydmVyKQordm9pZCBN
ZWRpYVN0cmVhbVByaXZhdGU6OmFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKIHsKLSAg
ICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9vYnNlcnZlcnMuYWRkKCZv
YnNlcnZlcik7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBtX29ic2VydmVycy5h
ZGQob2JzZXJ2ZXIpOwogfQogCi12b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2
ZXIoTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCit2b2lkIE1lZGlhU3Ry
ZWFtUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIFJF
TEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBtX29ic2VydmVycy5yZW1vdmUoJm9i
c2VydmVyKTsKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIG1fb2JzZXJ2ZXJzLnJl
bW92ZShvYnNlcnZlcik7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpmb3JFYWNoT2Jz
ZXJ2ZXIoY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKE9ic2VydmVyJik+JiBhcHBseSkgY29uc3QK
K3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpmb3JFYWNoT2JzZXJ2ZXIoY29uc3QgRnVuY3Rpb248
dm9pZChPYnNlcnZlciYpPiYgYXBwbHkpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwotICAgIGZvciAoYXV0byogb2JzZXJ2ZXIgOiBjb3B5VG9WZWN0b3IobV9vYnNlcnZl
cnMpKSB7Ci0gICAgICAgIGlmICghbV9vYnNlcnZlcnMuY29udGFpbnMob2JzZXJ2ZXIpKQotICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGFwcGx5KCpvYnNlcnZlcik7Ci0gICAgfQorICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyk7CisgICAgbV9vYnNlcnZlcnMuZm9yRWFjaChhcHBseSk7CiB9CiAKIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlVmVjdG9yIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tzKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1Qcml2YXRlLmgKaW5kZXggNzkyODliODEyMzYzOWRiOTYyZmQxMmQyOTI3ODczNzg0MzA5
MDA5ZC4uMGNhMmUyMzZkMzE0Y2VlODVhMzE0NmY5MmJiZTNiMGE3NTQ3ZTEyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Q
cml2YXRlLmgKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1VVSUQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3Rm
L1dlYWtIYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTgsNyArNTksNyBA
QCBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGUgZmluYWwKICNlbmRpZgogewogcHVibGljOgotICAg
IGNsYXNzIE9ic2VydmVyIHsKKyAgICBjbGFzcyBPYnNlcnZlciA6IHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxPYnNlcnZlcj4gewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIo
KSA9IGRlZmF1bHQ7CiAKQEAgLTEyMywxNCArMTI0LDE0IEBAIHByaXZhdGU6CiAgICAgdm9pZCBj
aGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CiAgICAgdm9pZCB1cGRhdGVBY3RpdmVWaWRlb1RyYWNr
KCk7CiAKLSAgICB2b2lkIGZvckVhY2hPYnNlcnZlcihjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQo
T2JzZXJ2ZXImKT4mKSBjb25zdDsKKyAgICB2b2lkIGZvckVhY2hPYnNlcnZlcihjb25zdCBGdW5j
dGlvbjx2b2lkKE9ic2VydmVyJik+Jik7CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAg
ICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTWVkaWFT
dHJlYW1Qcml2YXRlIjsgfQogICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBm
aW5hbDsKICNlbmRpZgogCi0gICAgSGFzaFNldDxPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOworICAg
IFdlYWtIYXNoU2V0PE9ic2VydmVyPiBtX29ic2VydmVyczsKICAgICBTdHJpbmcgbV9pZDsKICAg
ICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogbV9hY3RpdmVWaWRlb1RyYWNrIHsgbnVsbHB0ciB9
OwogICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiBt
X3RyYWNrU2V0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396958</attachid>
            <date>2020-04-20 01:36:42 -0700</date>
            <delta_ts>2020-04-20 02:06:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210494-20200420103640.patch</filename>
            <type>text/plain</type>
            <size>24968</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmE0OWNlNmEyMTEwYzBi
MDg2MzhhYmZhM2M3MjBiYmVmM2JiNGIwOC4uMDlkZGQzYTA5NjUzNjMxNmJkNDFmZWJjYWZlZjVl
N2RiZjliZDBlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIwLTA0LTIwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgYSBXZWFrSGFzaFNl
dCB0byBzdG9yZSBNZWRpYVN0cmVhbVByaXZhdGUgb2JzZXJ2ZXJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0OTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgb2JzZXJ2ZXJzIGZyb20gdGhl
IE1lZGlhU3RyZWFtIGFuZCBtaWdyYXRlIGV4aXN0aW5nIGNsaWVudCAoTWVkaWFSZWNvcmRlcikg
dG8gTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlci4KKyAgICAgICAgTWFrZSB1c2Ugb2YgV2Vh
a0hhc2hTZXQgaW4gTWVkaWFTdHJlYW1Qcml2YXRlIHRvIGltcHJvdmUgcm9idXN0bmVzcyBvZiB0
aGUgY29kZS4KKyAgICAgICAgQW55IHRpbWUgdGhlIE1lZGlhU3RyZWFtUHJpdmF0ZSB0cmFja3Mg
YXJlIG1vZGlmaWVkLCBvYnNlcnZlcnMgd2lsbCBiZSBub3RpZmllZC4KKyAgICAgICAgTWVkaWFT
dHJlYW0gbmVlZHMgbm93IHRvIGRlY2lkZSB3aGVuIHRvIHNlbmQgYW4gZXZlbnQgd2hlbiBpdHMg
TWVkaWFTdHJlYW1Qcml2YXRlIG5vdGlmaWVzIG9mIG5ldy9kZWxldGVkIHRyYWNrcywKKyAgICAg
ICAgTW9kZXJuaXplIGEgYml0IHRoZSBjb2RlIHRvIHVzZSBtb3JlIHJlZmVyZW5jZXMuCisgICAg
ICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyOjpNZWRpYVJlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6On5N
ZWRpYVJlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6OmhhbmRsZVRy
YWNrQ2hhbmdlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
ci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlVHJhY2tQcml2YXRlVmVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0
cmVhbTo6fk1lZGlhU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjphZGRU
cmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6cmVtb3ZlVHJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06OmdldFRyYWNrQnlJZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbTo6ZGlkQWRkVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW06OmRpZFJlbW92ZVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjph
ZGRUcmFja0Zyb21QbGF0Zm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6aW50
ZXJuYWxBZGRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6aW50ZXJuYWxU
YWtlVHJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaDoK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVu
ZHBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnJl
bW92ZVJlbW90ZVRyYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpN
ZWRpYVN0cmVhbVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRl
OjphZGRPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnJl
bW92ZU9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6Zm9y
RWFjaE9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6Y29t
cHV0ZUFjdGl2ZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6
dXBkYXRlQWN0aXZlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRl
OjphZGRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnJlbW92
ZVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tFbmRl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmg6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjpyZW1vdmVNZWRpYVN0cmVhbVRyYWNrKToKKwogMjAyMC0wNC0xNyAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSB1c2Ugb2YgV2Vha0hhc2hT
ZXQgZm9yIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlIGFuZCBSZWFsdGltZU1lZGlhU291cmNlIG9i
c2VydmVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXIuY3BwCmluZGV4IGFlZDg1NWZlMjU0YjczZDVkN2JlYjFiZTJmOGJkYTRm
MjZiYWJmMjAuLmVjYTVlOWVjZjFlMjg3NzEwYmIwMTlmMjYwMDM1ZTE2MWIwMmUwODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlci5jcHAKQEAgLTkxLDEyICs5MSwxMiBAQCBNZWRpYVJlY29yZGVyOjpNZWRpYVJlY29yZGVy
KERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYmIHN0cmVhbSwgc3RkOgogICAg
IG1fdHJhY2tzID0gV1RGOjptYXAobV9zdHJlYW0tPmdldFRyYWNrcygpLCBbXSAoYXV0byYmIHRy
YWNrKSAtPiBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IHsKICAgICAgICAgcmV0dXJuIHRy
YWNrLT5wcml2YXRlVHJhY2soKTsKICAgICB9KTsKLSAgICBtX3N0cmVhbS0+YWRkT2JzZXJ2ZXIo
dGhpcyk7CisgICAgbV9zdHJlYW0tPnByaXZhdGVTdHJlYW0oKS5hZGRPYnNlcnZlcigqdGhpcyk7
CiB9CiAKIE1lZGlhUmVjb3JkZXI6On5NZWRpYVJlY29yZGVyKCkKIHsKLSAgICBtX3N0cmVhbS0+
cmVtb3ZlT2JzZXJ2ZXIodGhpcyk7CisgICAgbV9zdHJlYW0tPnByaXZhdGVTdHJlYW0oKS5yZW1v
dmVPYnNlcnZlcigqdGhpcyk7CiAgICAgc3RvcFJlY29yZGluZ0ludGVybmFsKCk7CiB9CiAKQEAg
LTE5NCw3ICsxOTQsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXI6OnN0b3BSZWNvcmRpbmdJbnRlcm5h
bCgpCiAgICAgbV9wcml2YXRlLT5zdG9wUmVjb3JkaW5nKCk7CiB9CiAKLXZvaWQgTWVkaWFSZWNv
cmRlcjo6ZGlkQWRkT3JSZW1vdmVUcmFjaygpCit2b2lkIE1lZGlhUmVjb3JkZXI6OmhhbmRsZVRy
YWNrQ2hhbmdlKCkKIHsKICAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRh
c2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFt0aGlzXSB7CiAgICAgICAgIGlmICghbV9pc0FjdGl2ZSB8
fCBzdGF0ZSgpID09IFJlY29yZGluZ1N0YXRlOjpJbmFjdGl2ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCmluZGV4IDUzMmIw
MzVkZGI1NTBmOGYwZGQ2MzUwMzcyN2FkNDNjNjBmMzQxYWUuLjZhNDk0ZDRhMGMzMDU1NmExOGY3
ZGM3NDY4MmY2ZjYxYmI5OTQ0NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBN
ZWRpYVJlY29yZGVyIGZpbmFsCiAgICAgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0CiAgICAgLCBw
dWJsaWMgUmVmQ291bnRlZDxNZWRpYVJlY29yZGVyPgogICAgICwgcHVibGljIEV2ZW50VGFyZ2V0
V2l0aElubGluZURhdGEKLSAgICAsIHByaXZhdGUgTWVkaWFTdHJlYW06Ok9ic2VydmVyCisgICAg
LCBwcml2YXRlIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIKICAgICAsIHByaXZhdGUgTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEKE1lZGlhUmVjb3JkZXIpOwogcHVibGljOgpAQCAtOTgsOCArOTgsMTEgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRpc3BhdGNoRXJyb3IoRXhjZXB0aW9uJiYpOwogCiAgICAgLy8gTWVkaWFTdHJl
YW06Ok9ic2VydmVyCi0gICAgdm9pZCBkaWRBZGRPclJlbW92ZVRyYWNrKCkgZmluYWw7Ci0gICAg
CisgICAgdm9pZCBkaWRBZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsg
aGFuZGxlVHJhY2tDaGFuZ2UoKTsgfQorICAgIHZvaWQgZGlkUmVtb3ZlVHJhY2soTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IGhhbmRsZVRyYWNrQ2hhbmdlKCk7IH0KKworICAgIHZv
aWQgaGFuZGxlVHJhY2tDaGFuZ2UoKTsKKwogICAgIC8vIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
OjpPYnNlcnZlcgogICAgIHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYp
IGZpbmFsOwogICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSBmaW5hbCB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW0uY3BwCmluZGV4IDQ5M2E0MDAwNTkxMTgxNjI0M2UwZDg1MzU2ZmMxYWE3
NzA4OTEzNTYuLmY3MDVkN2YwMzIzNGQyNDE4YzNhYTFlYjg5MTlkYzI2OWE5YjZjN2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3Bw
CkBAIC0zMywxNSArMzMsMTEgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2
ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5j
bHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVk
aWFTdHJlYW1UcmFja0V2ZW50LmgiCi0jaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY5LDExICs2NSw5IEBAIFJlZjxNZWRpYVN0cmVhbT4gTWVk
aWFTdHJlYW06OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZWRpYVN0cmVhbVByaXZh
dGU+CiAKIHN0YXRpYyBpbmxpbmUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3IgY3JlYXRl
VHJhY2tQcml2YXRlVmVjdG9yKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tWZWN0b3ImIHRyYWNrcykK
IHsKLSAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja1ByaXZhdGVzOwotICAg
IHRyYWNrUHJpdmF0ZXMucmVzZXJ2ZUNhcGFjaXR5KHRyYWNrcy5zaXplKCkpOwotICAgIGZvciAo
YXV0byYgdHJhY2sgOiB0cmFja3MpCi0gICAgICAgIHRyYWNrUHJpdmF0ZXMuYXBwZW5kKCZ0cmFj
ay0+cHJpdmF0ZVRyYWNrKCkpOwotICAgIHJldHVybiB0cmFja1ByaXZhdGVzOworICAgIHJldHVy
biBtYXAodHJhY2tzLCBbXShhdXRvJiB0cmFjaykgeworICAgICAgICByZXR1cm4gbWFrZVJlZlB0
cigmdHJhY2stPnByaXZhdGVUcmFjaygpKTsKKyAgICB9KTsKIH0KIAogTWVkaWFTdHJlYW06Ok1l
ZGlhU3RyZWFtKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ZlY3Rv
ciYgdHJhY2tzKQpAQCAtODMsMTAgKzc3LDggQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ZlY3RvciYgdHJhY2sKICAg
ICAvLyBUaGlzIGNvbnN0cnVjdG9yIHByZXNlcnZlcyBNZWRpYVN0cmVhbVRyYWNrIGluc3RhbmNl
cyBhbmQgbXVzdCBiZSB1c2VkIGJ5IGNhbGxzIG9yaWdpbmF0aW5nCiAgICAgLy8gZnJvbSB0aGUg
SmF2YVNjcmlwdCBNZWRpYVN0cmVhbSBjb25zdHJ1Y3Rvci4KIAotICAgIGZvciAoYXV0byYgdHJh
Y2sgOiB0cmFja3MpIHsKLSAgICAgICAgdHJhY2stPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICBm
b3IgKGF1dG8mIHRyYWNrIDogdHJhY2tzKQogICAgICAgICBtX3RyYWNrU2V0LmFkZCh0cmFjay0+
aWQoKSwgdHJhY2spOwotICAgIH0KIAogICAgIHNldElzQWN0aXZlKG1fcHJpdmF0ZS0+YWN0aXZl
KCkpOwogICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwpAQCAtOTksMTEgKzkxLDgg
QEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlh
U3RyZWFtUHJpdmF0ZT4mJiBzdHJlYW1QcmkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIpOwogCi0gICAgZm9yIChhdXRvJiB0cmFja1ByaXZhdGUgOiBtX3ByaXZhdGUtPnRyYWNrcygp
KSB7Ci0gICAgICAgIGF1dG8gdHJhY2sgPSBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoZG9jdW1l
bnQsICp0cmFja1ByaXZhdGUpOwotICAgICAgICB0cmFjay0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwot
ICAgICAgICBtX3RyYWNrU2V0LmFkZCh0cmFjay0+aWQoKSwgV1RGTW92ZSh0cmFjaykpOwotICAg
IH0KKyAgICBmb3IgKGF1dG8mIHRyYWNrUHJpdmF0ZSA6IG1fcHJpdmF0ZS0+dHJhY2tzKCkpCisg
ICAgICAgIG1fdHJhY2tTZXQuYWRkKHRyYWNrUHJpdmF0ZS0+aWQoKSwgTWVkaWFTdHJlYW1UcmFj
azo6Y3JlYXRlKGRvY3VtZW50LCAqdHJhY2tQcml2YXRlKSk7CiAKICAgICBzZXRJc0FjdGl2ZSht
X3ByaXZhdGUtPmFjdGl2ZSgpKTsKICAgICBtX3ByaXZhdGUtPmFkZE9ic2VydmVyKCp0aGlzKTsK
QEAgLTExNiw5ICsxMDUsNyBAQCBNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKCkKICAgICAvLyBt
ZWRpYVN0YXRlKCksIGFyZSBzaG9ydCBjaXJjdWl0ZWQuCiAgICAgbV9pc0FjdGl2ZSA9IGZhbHNl
OwogICAgIG1fcHJpdmF0ZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwotICAgIGZvciAoYXV0byYg
dHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVlcygpKQotICAgICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2
ZXIoKnRoaXMpOwotICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgp
KSB7CisgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkgewogICAgICAg
ICBpZiAobV9pc1dhaXRpbmdVbnRpbE1lZGlhQ2FuU3RhcnQpCiAgICAgICAgICAgICBkb2N1bWVu
dC0+cmVtb3ZlTWVkaWFDYW5TdGFydExpc3RlbmVyKCp0aGlzKTsKICAgICB9CkBAIC0xNDAsMzAg
KzEyNywyNyBAQCBSZWZQdHI8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtOjpjbG9uZSgpCiB2b2lk
IE1lZGlhU3RyZWFtOjphZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNrJiB0cmFjaykKIHsKICAgICBB
TFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHRyYWNrLmxvZ0lkZW50aWZpZXIoKSk7Ci0KLSAgICBp
ZiAoIWludGVybmFsQWRkVHJhY2sodHJhY2ssIFN0cmVhbU1vZGlmaWVyOjpEb21BUEkpKQorICAg
IGlmIChnZXRUcmFja0J5SWQodHJhY2sucHJpdmF0ZVRyYWNrKCkuaWQoKSkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKLSAgICAgICAg
b2JzZXJ2ZXItPmRpZEFkZE9yUmVtb3ZlVHJhY2soKTsKKyAgICBpbnRlcm5hbEFkZFRyYWNrKHRy
YWNrKTsKKyAgICBtX3ByaXZhdGUtPmFkZFRyYWNrKHRyYWNrLnByaXZhdGVUcmFjaygpKTsKIH0K
IAogdm9pZCBNZWRpYVN0cmVhbTo6cmVtb3ZlVHJhY2soTWVkaWFTdHJlYW1UcmFjayYgdHJhY2sp
CiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB0cmFjay5sb2dJZGVudGlmaWVyKCkp
OwotCi0gICAgaWYgKCFpbnRlcm5hbFJlbW92ZVRyYWNrKHRyYWNrLmlkKCksIFN0cmVhbU1vZGlm
aWVyOjpEb21BUEkpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKGF1dG8mIG9ic2VydmVy
IDogbV9vYnNlcnZlcnMpCi0gICAgICAgIG9ic2VydmVyLT5kaWRBZGRPclJlbW92ZVRyYWNrKCk7
CisgICAgaWYgKGF1dG8gdGFrZW4gPSBpbnRlcm5hbFRha2VUcmFjayh0cmFjay5pZCgpKSkgewor
ICAgICAgICBBU1NFUlQodGFrZW4uZ2V0KCkgPT0gJnRyYWNrKTsKKyAgICAgICAgbV9wcml2YXRl
LT5yZW1vdmVUcmFjayh0cmFjay5wcml2YXRlVHJhY2soKSk7CisgICAgfQogfQogCiBNZWRpYVN0
cmVhbVRyYWNrKiBNZWRpYVN0cmVhbTo6Z2V0VHJhY2tCeUlkKFN0cmluZyBpZCkKIHsKLSAgICBh
dXRvIGl0ID0gbV90cmFja1NldC5maW5kKGlkKTsKLSAgICBpZiAoaXQgIT0gbV90cmFja1NldC5l
bmQoKSkKLSAgICAgICAgcmV0dXJuIGl0LT52YWx1ZS5nZXQoKTsKKyAgICBhdXRvIGl0ZXJhdG9y
ID0gbV90cmFja1NldC5maW5kKGlkKTsKKyAgICBpZiAoaXRlcmF0b3IgIT0gbV90cmFja1NldC5l
bmQoKSkKKyAgICAgICAgcmV0dXJuIGl0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKIAogICAgIHJldHVy
biBudWxscHRyOwogfQpAQCAtMTgzLDExICsxNjcsNiBAQCBNZWRpYVN0cmVhbVRyYWNrVmVjdG9y
IE1lZGlhU3RyZWFtOjpnZXRUcmFja3MoKSBjb25zdAogICAgIHJldHVybiBjb3B5VG9WZWN0b3Io
bV90cmFja1NldC52YWx1ZXMoKSk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW06OnRyYWNrRGlkRW5k
KCkKLXsKLSAgICBtX3ByaXZhdGUtPnVwZGF0ZUFjdGl2ZVN0YXRlKE1lZGlhU3RyZWFtUHJpdmF0
ZTo6Tm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpOwotfQotCiB2b2lkIE1lZGlhU3RyZWFtOjph
Y3RpdmVTdGF0dXNDaGFuZ2VkKCkKIHsKICAgICB1cGRhdGVBY3RpdmVTdGF0ZSgpOwpAQCAtMTk5
LDYwICsxNzgsNDQgQEAgdm9pZCBNZWRpYVN0cmVhbTo6ZGlkQWRkVHJhY2soTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGlmICghZ2V0VHJhY2tCeUlkKHRyYWNrUHJpdmF0ZS5pZCgpKSkKLSAgICAg
ICAgaW50ZXJuYWxBZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoKmNvbnRleHQsIHRy
YWNrUHJpdmF0ZSksIFN0cmVhbU1vZGlmaWVyOjpQbGF0Zm9ybSk7CisgICAgaWYgKGdldFRyYWNr
QnlJZCh0cmFja1ByaXZhdGUuaWQoKSkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gdHJh
Y2sgPSBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoKmNvbnRleHQsIHRyYWNrUHJpdmF0ZSk7Cisg
ICAgaW50ZXJuYWxBZGRUcmFjayh0cmFjay5jb3B5UmVmKCkpOworICAgIGRpc3BhdGNoRXZlbnQo
TWVkaWFTdHJlYW1UcmFja0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmFkZHRyYWNrRXZlbnQs
IEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObywgV1RGTW92ZSh0
cmFjaykpKTsKIH0KIAogdm9pZCBNZWRpYVN0cmVhbTo6ZGlkUmVtb3ZlVHJhY2soTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKLSAgICBpbnRlcm5hbFJlbW92ZVRyYWNr
KHRyYWNrUHJpdmF0ZS5pZCgpLCBTdHJlYW1Nb2RpZmllcjo6UGxhdGZvcm0pOworICAgIGlmIChh
dXRvIHRyYWNrID0gaW50ZXJuYWxUYWtlVHJhY2sodHJhY2tQcml2YXRlLmlkKCkpKQorICAgICAg
ICBkaXNwYXRjaEV2ZW50KE1lZGlhU3RyZWFtVHJhY2tFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5yZW1vdmV0cmFja0V2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2Vs
YWJsZTo6Tm8sIFdURk1vdmUodHJhY2spKSk7CiB9CiAKIHZvaWQgTWVkaWFTdHJlYW06OmFkZFRy
YWNrRnJvbVBsYXRmb3JtKFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmIHRyYWNrKQogewogICAgIEFM
V0FZU19MT0coTE9HSURFTlRJRklFUiwgdHJhY2stPmxvZ0lkZW50aWZpZXIoKSk7CiAKLSAgICBh
dXRvKiBwcml2YXRlVHJhY2sgPSAmdHJhY2stPnByaXZhdGVUcmFjaygpOwotICAgIGludGVybmFs
QWRkVHJhY2soV1RGTW92ZSh0cmFjayksIFN0cmVhbU1vZGlmaWVyOjpQbGF0Zm9ybSk7Ci0gICAg
bV9wcml2YXRlLT5hZGRUcmFjayhwcml2YXRlVHJhY2ssIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Tm90
aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpOworICAgIGF1dG8mIHByaXZhdGVUcmFjayA9IHRyYWNr
LT5wcml2YXRlVHJhY2soKTsKKyAgICBpbnRlcm5hbEFkZFRyYWNrKHRyYWNrLmNvcHlSZWYoKSk7
CisgICAgbV9wcml2YXRlLT5hZGRUcmFjayhwcml2YXRlVHJhY2spOworICAgIGRpc3BhdGNoRXZl
bnQoTWVkaWFTdHJlYW1UcmFja0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmFkZHRyYWNrRXZl
bnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObywgV1RGTW92
ZSh0cmFjaykpKTsKIH0KIAotYm9vbCBNZWRpYVN0cmVhbTo6aW50ZXJuYWxBZGRUcmFjayhSZWY8
TWVkaWFTdHJlYW1UcmFjaz4mJiB0cmFja1RvQWRkLCBTdHJlYW1Nb2RpZmllciBzdHJlYW1Nb2Rp
ZmllcikKK3ZvaWQgTWVkaWFTdHJlYW06OmludGVybmFsQWRkVHJhY2soUmVmPE1lZGlhU3RyZWFt
VHJhY2s+JiYgdHJhY2tUb0FkZCkKIHsKLSAgICBhdXRvIHJlc3VsdCA9IG1fdHJhY2tTZXQuYWRk
KHRyYWNrVG9BZGQtPmlkKCksIFdURk1vdmUodHJhY2tUb0FkZCkpOwotICAgIGlmICghcmVzdWx0
LmlzTmV3RW50cnkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIEFTU0VSVChyZXN1bHQu
aXRlcmF0b3ItPnZhbHVlKTsKLSAgICBhdXRvJiB0cmFjayA9ICpyZXN1bHQuaXRlcmF0b3ItPnZh
bHVlOwotICAgIHRyYWNrLmFkZE9ic2VydmVyKCp0aGlzKTsKLQorICAgIEFTU0VSVCghbV90cmFj
a1NldC5jb250YWlucyh0cmFja1RvQWRkLT5pZCgpKSk7CisgICAgbV90cmFja1NldC5hZGQodHJh
Y2tUb0FkZC0+aWQoKSwgV1RGTW92ZSh0cmFja1RvQWRkKSk7CiAgICAgdXBkYXRlQWN0aXZlU3Rh
dGUoKTsKLQotICAgIGlmIChzdHJlYW1Nb2RpZmllciA9PSBTdHJlYW1Nb2RpZmllcjo6RG9tQVBJ
KQotICAgICAgICBtX3ByaXZhdGUtPmFkZFRyYWNrKCZ0cmFjay5wcml2YXRlVHJhY2soKSwgTWVk
aWFTdHJlYW1Qcml2YXRlOjpOb3RpZnlDbGllbnRPcHRpb246OkRvbnROb3RpZnkpOwotICAgIGVs
c2UKLSAgICAgICAgZGlzcGF0Y2hFdmVudChNZWRpYVN0cmVhbVRyYWNrRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuYWRkdHJhY2tFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJ
c0NhbmNlbGFibGU6Ok5vLCAmdHJhY2spKTsKLQotICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IE1lZGlhU3RyZWFtOjppbnRlcm5hbFJlbW92ZVRyYWNrKGNvbnN0IFN0cmluZyYgdHJhY2tJZCwg
U3RyZWFtTW9kaWZpZXIgc3RyZWFtTW9kaWZpZXIpCitSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4g
TWVkaWFTdHJlYW06OmludGVybmFsVGFrZVRyYWNrKGNvbnN0IFN0cmluZyYgdHJhY2tJZCkKIHsK
ICAgICBhdXRvIHRyYWNrID0gbV90cmFja1NldC50YWtlKHRyYWNrSWQpOwotICAgIGlmICghdHJh
Y2spCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZlcigq
dGhpcyk7Ci0KLSAgICB1cGRhdGVBY3RpdmVTdGF0ZSgpOworICAgIGlmICh0cmFjaykKKyAgICAg
ICAgdXBkYXRlQWN0aXZlU3RhdGUoKTsKIAotICAgIGlmIChzdHJlYW1Nb2RpZmllciA9PSBTdHJl
YW1Nb2RpZmllcjo6RG9tQVBJKQotICAgICAgICBtX3ByaXZhdGUtPnJlbW92ZVRyYWNrKHRyYWNr
LT5wcml2YXRlVHJhY2soKSwgTWVkaWFTdHJlYW1Qcml2YXRlOjpOb3RpZnlDbGllbnRPcHRpb246
OkRvbnROb3RpZnkpOwotICAgIGVsc2UKLSAgICAgICAgZGlzcGF0Y2hFdmVudChNZWRpYVN0cmVh
bVRyYWNrRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucmVtb3ZldHJhY2tFdmVudCwgRXZlbnQ6
OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vLCBXVEZNb3ZlKHRyYWNrKSkp
OwotCi0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHRyYWNrOwogfQogCiB2b2lkIE1lZGlh
U3RyZWFtOjpzZXRJc0FjdGl2ZShib29sIGFjdGl2ZSkKQEAgLTM3MiwxOSArMzM1LDYgQEAgTWVk
aWFTdHJlYW1UcmFja1ZlY3RvciBNZWRpYVN0cmVhbTo6dHJhY2tWZWN0b3JGb3JUeXBlKFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGUKICAgICByZXR1cm4gdHJhY2tzOwogfQogCi12b2lkIE1lZGlh
U3RyZWFtOjphZGRPYnNlcnZlcihNZWRpYVN0cmVhbTo6T2JzZXJ2ZXIqIG9ic2VydmVyKQotewot
ICAgIGlmIChtX29ic2VydmVycy5maW5kKG9ic2VydmVyKSA9PSBub3RGb3VuZCkKLSAgICAgICAg
bV9vYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbTo6cmVt
b3ZlT2JzZXJ2ZXIoTWVkaWFTdHJlYW06Ok9ic2VydmVyKiBvYnNlcnZlcikKLXsKLSAgICBzaXpl
X3QgcG9zID0gbV9vYnNlcnZlcnMuZmluZChvYnNlcnZlcik7Ci0gICAgaWYgKHBvcyAhPSBub3RG
b3VuZCkKLSAgICAgICAgbV9vYnNlcnZlcnMucmVtb3ZlKHBvcyk7Ci19Ci0KIERvY3VtZW50KiBN
ZWRpYVN0cmVhbTo6ZG9jdW1lbnQoKSBjb25zdAogewogICAgIHJldHVybiBkb3duY2FzdDxEb2N1
bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAppbmRleCBjYjhmMTQ2MjMzOWExNWRiZGI2
MmY2ZTU3ZjA2ZmFiY2M4ZWI2NTFlLi4yY2U4NDk1YWJiY2NhOWY1MTZjNWZkYjc2N2U0ZTllYjRj
MDRhYTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAiVVJMUmVnaXN0cnkuaCIKICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KLSNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNTAsNyArNDksNiBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNz
IE1lZGlhU3RyZWFtIGZpbmFsCiAgICAgOiBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0
YQogICAgICwgcHVibGljIEFjdGl2ZURPTU9iamVjdAotICAgICwgcHVibGljIE1lZGlhU3RyZWFt
VHJhY2s6Ok9ic2VydmVyCiAgICAgLCBwdWJsaWMgTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZl
cgogICAgICwgcHJpdmF0ZSBNZWRpYUNhblN0YXJ0TGlzdGVuZXIKICNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKQEAgLTU5LDEyICs1Nyw2IEBAIGNsYXNzIE1lZGlhU3RyZWFtIGZpbmFsCiAgICAg
LCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbT4gewogICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoTWVkaWFTdHJlYW0pOwogcHVibGljOgotICAgIGNsYXNzIE9ic2VydmVyIHsKLSAgICBw
dWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgPSBkZWZhdWx0OwotICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkQWRkT3JSZW1vdmVUcmFjaygpID0gMDsKLSAgICB9OwotCiAgICAgc3Rh
dGljIFJlZjxNZWRpYVN0cmVhbT4gY3JlYXRlKERvY3VtZW50Jik7CiAgICAgc3RhdGljIFJlZjxN
ZWRpYVN0cmVhbT4gY3JlYXRlKERvY3VtZW50JiwgTWVkaWFTdHJlYW0mKTsKICAgICBzdGF0aWMg
UmVmPE1lZGlhU3RyZWFtPiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBNZWRpYVN0cmVhbVRyYWNr
VmVjdG9yJik7CkBAIC05OCwxNyArOTAsMTEgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50
ZWQ8TWVkaWFTdHJlYW0+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbT46
OmRlcmVmOwogCi0gICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciopOwotICAgIHZvaWQgcmVt
b3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXIqKTsKLQogICAgIHZvaWQgYWRkVHJhY2tGcm9tUGxhdGZvcm0o
UmVmPE1lZGlhU3RyZWFtVHJhY2s+JiYpOworICAgIHZvaWQgcmVtb3ZlVHJhY2tGcm9tUGxhdGZv
cm0oY29uc3QgU3RyaW5nJiB0cmFja0lEKSB7IGludGVybmFsVGFrZVRyYWNrKHRyYWNrSUQpOyB9
CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKIAotICAgIGVudW0gY2xhc3MgU3Ry
ZWFtTW9kaWZpZXIgeyBEb21BUEksIFBsYXRmb3JtIH07Ci0gICAgYm9vbCBpbnRlcm5hbEFkZFRy
YWNrKFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmLCBTdHJlYW1Nb2RpZmllcik7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBpbnRlcm5hbFJlbW92ZVRyYWNrKGNvbnN0IFN0cmluZyYsIFN0cmVhbU1v
ZGlmaWVyKTsKLQogcHJvdGVjdGVkOgogICAgIE1lZGlhU3RyZWFtKERvY3VtZW50JiwgY29uc3Qg
TWVkaWFTdHJlYW1UcmFja1ZlY3RvciYpOwogICAgIE1lZGlhU3RyZWFtKERvY3VtZW50JiwgUmVm
PE1lZGlhU3RyZWFtUHJpdmF0ZT4mJik7CkBAIC0xMjEsMTQgKzEwNywxMyBAQCBwcm90ZWN0ZWQ6
CiAjZW5kaWYKIAogcHJpdmF0ZToKKyAgICB2b2lkIGludGVybmFsQWRkVHJhY2soUmVmPE1lZGlh
U3RyZWFtVHJhY2s+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxNZWRpYVN0cmVhbVRy
YWNrPiBpbnRlcm5hbFRha2VUcmFjayhjb25zdCBTdHJpbmcmKTsKIAogICAgIC8vIEV2ZW50VGFy
Z2V0CiAgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7IH0KICAgICB2b2lk
IGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAotICAgIC8vIE1lZGlhU3Ry
ZWFtVHJhY2s6Ok9ic2VydmVyCi0gICAgdm9pZCB0cmFja0RpZEVuZCgpIGZpbmFsOwotCiAgICAg
Ly8gTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlcgogICAgIHZvaWQgYWN0aXZlU3RhdHVzQ2hh
bmdlZCgpIGZpbmFsOwogICAgIHZvaWQgZGlkQWRkVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSBmaW5hbDsKQEAgLTE1Niw4ICsxNDEsNiBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDxT
dHJpbmcsIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPj4gbV90cmFja1NldDsKIAotICAgIFZlY3Rv
cjxPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOwotCiAgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIG1fc3RhdGUgeyBNZWRpYVByb2R1Y2VyOjpJc05vdFBsYXlpbmcgfTsKIAogICAgIGJv
b2wgbV9pc0FjdGl2ZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlh
RW5kcG9pbnQuY3BwCmluZGV4IDY3ZThlMDdkMzczMDg1ODdlOGE4NDY3YzUyMDQ3MjQ5NTc5YzRj
ZmEuLjZjMGU1Yzk3N2JlMzRlYmViNzI4YjMyYWFhMDI3MTdjMzNhOTIxM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01l
ZGlhRW5kcG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCkBAIC00MTcsNyArNDE3LDcgQEAg
dm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50OjpyZW1vdmVSZW1vdGVUcmFjayhydGM6OnNjb3Bl
ZF9yZWZwdHI8d2VicnRjOjpSdHBSZWMKIAogICAgIGZvciAoYXV0byYgaWQgOiBtX3JlbW90ZVN0
cmVhbXNGcm9tUmVtb3RlVHJhY2suZ2V0KCZ0cmFjaykpIHsKICAgICAgICAgaWYgKGF1dG8gc3Ry
ZWFtID0gbV9yZW1vdGVTdHJlYW1zQnlJZC5nZXQoaWQpKQotICAgICAgICAgICAgc3RyZWFtLT5w
cml2YXRlU3RyZWFtKCkucmVtb3ZlVHJhY2sodHJhY2sucHJpdmF0ZVRyYWNrKCksIE1lZGlhU3Ry
ZWFtUHJpdmF0ZTo6Tm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpOworICAgICAgICAgICAgc3Ry
ZWFtLT5wcml2YXRlU3RyZWFtKCkucmVtb3ZlVHJhY2sodHJhY2sucHJpdmF0ZVRyYWNrKCkpOwog
ICAgIH0KIAogICAgIHRyYWNrLnNvdXJjZSgpLnNldE11dGVkKHRydWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0
ZS5jcHAKaW5kZXggN2IyZDBjNzk2YmE5YjE1ZTcyM2I0NDU1OGFkZWM3NGIxMWY4MjlmNS4uM2E2
MjgwOWYyMWE5NDU0OTgxNTY2OWYxMDViYjU5ZDkyODEwZjI2MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUu
Y3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5j
bHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlIDx3dGYvQWxn
b3JpdGhtcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC03OCw4ICs3OSw4IEBAIE1l
ZGlhU3RyZWFtUHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2YXRlKFJlZjxjb25zdCBMb2dnZXI+JiYg
bG9nZ2VyLCBjb25zdCBNZWRpYVN0CiAgICAgICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqdGhpcyk7
CiAgICAgICAgIG1fdHJhY2tTZXQuYWRkKHRyYWNrLT5pZCgpLCB0cmFjayk7CiAgICAgfQotCi0g
ICAgdXBkYXRlQWN0aXZlU3RhdGUoTm90aWZ5Q2xpZW50T3B0aW9uOjpEb250Tm90aWZ5KTsKKyAg
ICBtX2lzQWN0aXZlID0gY29tcHV0ZUFjdGl2ZVN0YXRlKCk7CisgICAgdXBkYXRlQWN0aXZlVmlk
ZW9UcmFjaygpOwogfQogCiBNZWRpYVN0cmVhbVByaXZhdGU6On5NZWRpYVN0cmVhbVByaXZhdGUo
KQpAQCAtODgsMjYgKzg5LDIzIEBAIE1lZGlhU3RyZWFtUHJpdmF0ZTo6fk1lZGlhU3RyZWFtUHJp
dmF0ZSgpCiAgICAgICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiB9CiAKLXZvaWQg
TWVkaWFTdHJlYW1Qcml2YXRlOjphZGRPYnNlcnZlcihNZWRpYVN0cmVhbVByaXZhdGU6Ok9ic2Vy
dmVyJiBvYnNlcnZlcikKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjphZGRPYnNlcnZlcihPYnNl
cnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkKCkpOwot
ICAgIG1fb2JzZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIpOworICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgbV9vYnNlcnZlcnMuYWRkKG9ic2VydmVyKTsKIH0KIAotdm9pZCBNZWRpYVN0cmVh
bVByaXZhdGU6OnJlbW92ZU9ic2VydmVyKE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXImIG9i
c2VydmVyKQordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnJlbW92ZU9ic2VydmVyKE9ic2VydmVy
JiBvYnNlcnZlcikKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAg
bV9vYnNlcnZlcnMucmVtb3ZlKCZvYnNlcnZlcik7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKyAgICBtX29ic2VydmVycy5yZW1vdmUob2JzZXJ2ZXIpOwogfQogCi12b2lkIE1lZGlhU3Ry
ZWFtUHJpdmF0ZTo6Zm9yRWFjaE9ic2VydmVyKGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChPYnNl
cnZlciYpPiYgYXBwbHkpIGNvbnN0Cit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Zm9yRWFjaE9i
c2VydmVyKGNvbnN0IEZ1bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mIGFwcGx5KQogewotICAgIFJF
TEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBmb3IgKGF1dG8qIG9ic2VydmVyIDog
Y29weVRvVmVjdG9yKG1fb2JzZXJ2ZXJzKSkgewotICAgICAgICBpZiAoIW1fb2JzZXJ2ZXJzLmNv
bnRhaW5zKG9ic2VydmVyKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBhcHBseSgq
b2JzZXJ2ZXIpOwotICAgIH0KKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGF1dG8g
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworICAgIG1fb2JzZXJ2ZXJzLmZvckVhY2go
YXBwbHkpOwogfQogCiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciBNZWRpYVN0cmVhbVBy
aXZhdGU6OnRyYWNrcygpIGNvbnN0CkBAIC0xMjcsMTUgKzEyNSwxNCBAQCB2b2lkIE1lZGlhU3Ry
ZWFtUHJpdmF0ZTo6Zm9yRWFjaFRyYWNrKGNvbnN0IEZ1bmN0aW9uPHZvaWQoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdAogICAgICAgICBjYWxsYmFjaygqdHJhY2spOwogfQogCi12b2lkIE1lZGlhU3Ry
ZWFtUHJpdmF0ZTo6dXBkYXRlQWN0aXZlU3RhdGUoTm90aWZ5Q2xpZW50T3B0aW9uIG5vdGlmeUNs
aWVudE9wdGlvbikKK2Jvb2wgTWVkaWFTdHJlYW1Qcml2YXRlOjpjb21wdXRlQWN0aXZlU3RhdGUo
KQogewotICAgIGJvb2wgbmV3QWN0aXZlU3RhdGUgPSBmYWxzZTsKLSAgICBmb3IgKGF1dG8mIHRy
YWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkgewotICAgICAgICBpZiAoIXRyYWNrLT5lbmRlZCgp
KSB7Ci0gICAgICAgICAgICBuZXdBY3RpdmVTdGF0ZSA9IHRydWU7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotICAgIH0KKyAgICByZXR1cm4gV1RGOjphbnlPZihtX3RyYWNrU2V0LCBb
XShhdXRvJiB0cmFjaykgeyByZXR1cm4gIXRyYWNrLnZhbHVlLT5lbmRlZCgpOyB9KTsKK30KKwor
dm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnVwZGF0ZUFjdGl2ZVN0YXRlKCkKK3sKKyAgICBib29s
IG5ld0FjdGl2ZVN0YXRlID0gY29tcHV0ZUFjdGl2ZVN0YXRlKCk7CiAKICAgICB1cGRhdGVBY3Rp
dmVWaWRlb1RyYWNrKCk7CiAKQEAgLTE0NSwzNCArMTQyLDMxIEBAIHZvaWQgTWVkaWFTdHJlYW1Q
cml2YXRlOjp1cGRhdGVBY3RpdmVTdGF0ZShOb3RpZnlDbGllbnRPcHRpb24gbm90aWZ5Q2xpZW50
T3B0aW9uCiAKICAgICBtX2lzQWN0aXZlID0gbmV3QWN0aXZlU3RhdGU7CiAKLSAgICBpZiAobm90
aWZ5Q2xpZW50T3B0aW9uID09IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KSB7Ci0gICAgICAg
IGZvckVhY2hPYnNlcnZlcihbXShhdXRvJiBvYnNlcnZlcikgewotICAgICAgICAgICAgb2JzZXJ2
ZXIuYWN0aXZlU3RhdHVzQ2hhbmdlZCgpOwotICAgICAgICB9KTsKLSAgICB9CisgICAgZm9yRWFj
aE9ic2VydmVyKFtdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLmFjdGl2ZVN0
YXR1c0NoYW5nZWQoKTsKKyAgICB9KTsKIH0KIAotdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFk
ZFRyYWNrKFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJiB0cmFjaywgTm90aWZ5Q2xp
ZW50T3B0aW9uIG5vdGlmeUNsaWVudE9wdGlvbikKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjph
ZGRUcmFjayhSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYgdHJhY2spCiB7CiAgICAgaWYg
KG1fdHJhY2tTZXQuY29udGFpbnModHJhY2stPmlkKCkpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHRyYWNrLT5sb2dJZGVudGlmaWVyKCkpOwogCisg
ICAgYXV0byYgdHJhY2tSZWYgPSB0cmFjay5nZXQoKTsKICAgICB0cmFjay0+YWRkT2JzZXJ2ZXIo
KnRoaXMpOwotICAgIG1fdHJhY2tTZXQuYWRkKHRyYWNrLT5pZCgpLCB0cmFjayk7CisgICAgbV90
cmFja1NldC5hZGQodHJhY2stPmlkKCksIFdURk1vdmUodHJhY2spKTsKIAotICAgIGlmIChub3Rp
ZnlDbGllbnRPcHRpb24gPT0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpIHsKLSAgICAgICAg
Zm9yRWFjaE9ic2VydmVyKFsmdHJhY2tdKGF1dG8mIG9ic2VydmVyKSB7Ci0gICAgICAgICAgICBv
YnNlcnZlci5kaWRBZGRUcmFjaygqdHJhY2suZ2V0KCkpOwotICAgICAgICB9KTsKLSAgICB9Cisg
ICAgZm9yRWFjaE9ic2VydmVyKFsmdHJhY2tSZWZdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAg
IG9ic2VydmVyLmRpZEFkZFRyYWNrKHRyYWNrUmVmKTsKKyAgICB9KTsKIAotICAgIHVwZGF0ZUFj
dGl2ZVN0YXRlKG5vdGlmeUNsaWVudE9wdGlvbik7CisgICAgdXBkYXRlQWN0aXZlU3RhdGUoKTsK
ICAgICBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1Qcml2
YXRlOjpyZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIE5vdGlmeUNs
aWVudE9wdGlvbiBub3RpZnlDbGllbnRPcHRpb24pCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6
cmVtb3ZlVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQogewogICAgIGlmICgh
bV90cmFja1NldC5yZW1vdmUodHJhY2suaWQoKSkpCiAgICAgICAgIHJldHVybjsKQEAgLTE4MCwx
MyArMTc0LDExIEBAIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVUcmFjayhNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIE5vdGlmeUNsaWVuCiAgICAgQUxXQVlTX0xPRyhMT0dJ
REVOVElGSUVSLCB0cmFjay5sb2dJZGVudGlmaWVyKCkpOwogICAgIHRyYWNrLnJlbW92ZU9ic2Vy
dmVyKCp0aGlzKTsKIAotICAgIGlmIChub3RpZnlDbGllbnRPcHRpb24gPT0gTm90aWZ5Q2xpZW50
T3B0aW9uOjpOb3RpZnkpIHsKLSAgICAgICAgZm9yRWFjaE9ic2VydmVyKFsmdHJhY2tdKGF1dG8m
IG9ic2VydmVyKSB7Ci0gICAgICAgICAgICBvYnNlcnZlci5kaWRSZW1vdmVUcmFjayh0cmFjayk7
Ci0gICAgICAgIH0pOwotICAgIH0KKyAgICBmb3JFYWNoT2JzZXJ2ZXIoWyZ0cmFja10oYXV0byYg
b2JzZXJ2ZXIpIHsKKyAgICAgICAgb2JzZXJ2ZXIuZGlkUmVtb3ZlVHJhY2sodHJhY2spOworICAg
IH0pOwogCi0gICAgdXBkYXRlQWN0aXZlU3RhdGUoTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkp
OworICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKCk7CiAgICAgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgp
OwogfQogCkBAIC0zMTUsNyArMzA3LDcgQEAgdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNr
RW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrKQogI2VuZGlmCiAKICAgICBBTFdB
WVNfTE9HKExPR0lERU5USUZJRVIsIHRyYWNrLmxvZ0lkZW50aWZpZXIoKSk7Ci0gICAgdXBkYXRl
QWN0aXZlU3RhdGUoTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpOworICAgIHVwZGF0ZUFjdGl2
ZVN0YXRlKCk7CiAgICAgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0
ZS5oCmluZGV4IDc5Mjg5YjgxMjM2MzlkYjk2MmZkMTJkMjkyNzg3Mzc4NDMwOTAwOWQuLjdiZDY3
MDFmNGE3M2JjMzQ5MmYxNzEzNzE5OWVhYTJhYWU5ZmYzZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCkBA
IC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9V
VUlELmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNl
dC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU4LDcgKzU5LDcgQEAgY2xhc3MgTWVk
aWFTdHJlYW1Qcml2YXRlIGZpbmFsCiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBjbGFzcyBPYnNl
cnZlciB7CisgICAgY2xhc3MgT2JzZXJ2ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8T2JzZXJ2
ZXI+IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgPSBkZWZhdWx0
OwogCkBAIC03NCw4ICs3NSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFt
UHJpdmF0ZSgpOwogCi0gICAgZW51bSBjbGFzcyBOb3RpZnlDbGllbnRPcHRpb24geyBOb3RpZnks
IERvbnROb3RpZnkgfTsKLQogICAgIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKICAgICB2
b2lkIHJlbW92ZU9ic2VydmVyKE9ic2VydmVyJik7CiAKQEAgLTg4LDEwICs4NywxMCBAQCBwdWJs
aWM6CiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIGFjdGl2ZVZpZGVvVHJhY2soKSB7IHJl
dHVybiBtX2FjdGl2ZVZpZGVvVHJhY2s7IH0KIAogICAgIGJvb2wgYWN0aXZlKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0FjdGl2ZTsgfQotICAgIHZvaWQgdXBkYXRlQWN0aXZlU3RhdGUoTm90aWZ5Q2xp
ZW50T3B0aW9uKTsKKyAgICB2b2lkIHVwZGF0ZUFjdGl2ZVN0YXRlKCk7CiAKLSAgICB2b2lkIGFk
ZFRyYWNrKFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJiwgTm90aWZ5Q2xpZW50T3B0
aW9uID0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpOwotICAgIHZvaWQgcmVtb3ZlVHJhY2so
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBOb3RpZnlDbGllbnRPcHRpb24gPSBOb3RpZnlDbGll
bnRPcHRpb246Ok5vdGlmeSk7CisgICAgdm9pZCBhZGRUcmFjayhSZWY8TWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU+JiYpOworICAgIHZvaWQgcmVtb3ZlVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKTsKIAogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCk7CiAgICAgdm9pZCBzdG9wUHJv
ZHVjaW5nRGF0YSgpOwpAQCAtMTIzLDE0ICsxMjIsMTUgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNo
YXJhY3RlcmlzdGljc0NoYW5nZWQoKTsKICAgICB2b2lkIHVwZGF0ZUFjdGl2ZVZpZGVvVHJhY2so
KTsKIAotICAgIHZvaWQgZm9yRWFjaE9ic2VydmVyKGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChP
YnNlcnZlciYpPiYpIGNvbnN0OworICAgIGJvb2wgY29tcHV0ZUFjdGl2ZVN0YXRlKCk7CisgICAg
dm9pZCBmb3JFYWNoT2JzZXJ2ZXIoY29uc3QgRnVuY3Rpb248dm9pZChPYnNlcnZlciYpPiYpOwog
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1l
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk1lZGlhU3RyZWFtUHJpdmF0ZSI7IH0KICAgICBXVEZM
b2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAotICAgIEhhc2hT
ZXQ8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKKyAgICBXZWFrSGFzaFNldDxPYnNlcnZlcj4gbV9v
YnNlcnZlcnM7CiAgICAgU3RyaW5nIG1faWQ7CiAgICAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUq
IG1fYWN0aXZlVmlkZW9UcmFjayB7IG51bGxwdHIgfTsKICAgICBIYXNoTWFwPFN0cmluZywgUmVm
UHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4gbV90cmFja1NldDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAppbmRleCA2NzhkMzU5OTdhZGRhOWFiOWI0NWYyY2U1ODcyZGQzMTA5
NWRkMjUyLi4xMGY5YTZiZGY4MjU4ODY4MTcwNDliY2ZmMzg3ZjM4ZGU4MzQ5MDIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01MDU0LDcgKzUwNTQsNyBAQCB2b2lkIElu
dGVybmFsczo6c2V0TWVkaWFTdHJlYW1UcmFja011dGVkKE1lZGlhU3RyZWFtVHJhY2smIHRyYWNr
LCBib29sIG11dGVkKQogCiB2b2lkIEludGVybmFsczo6cmVtb3ZlTWVkaWFTdHJlYW1UcmFjayhN
ZWRpYVN0cmVhbSYgc3RyZWFtLCBNZWRpYVN0cmVhbVRyYWNrJiB0cmFjaykKIHsKLSAgICBzdHJl
YW0uaW50ZXJuYWxSZW1vdmVUcmFjayh0cmFjay5pZCgpLCBNZWRpYVN0cmVhbTo6U3RyZWFtTW9k
aWZpZXI6OlBsYXRmb3JtKTsKKyAgICBzdHJlYW0ucHJpdmF0ZVN0cmVhbSgpLnJlbW92ZVRyYWNr
KHRyYWNrLnByaXZhdGVUcmFjaygpKTsKIH0KIAogdm9pZCBJbnRlcm5hbHM6OnNpbXVsYXRlTWVk
aWFTdHJlYW1UcmFja0NhcHR1cmVTb3VyY2VGYWlsdXJlKE1lZGlhU3RyZWFtVHJhY2smIHRyYWNr
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396959</attachid>
            <date>2020-04-20 02:06:54 -0700</date>
            <delta_ts>2020-04-20 11:14:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210494-20200420110652.patch</filename>
            <type>text/plain</type>
            <size>24894</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmE0OWNlNmEyMTEwYzBi
MDg2MzhhYmZhM2M3MjBiYmVmM2JiNGIwOC4uMDlkZGQzYTA5NjUzNjMxNmJkNDFmZWJjYWZlZjVl
N2RiZjliZDBlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIwLTA0LTIwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgYSBXZWFrSGFzaFNl
dCB0byBzdG9yZSBNZWRpYVN0cmVhbVByaXZhdGUgb2JzZXJ2ZXJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0OTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgb2JzZXJ2ZXJzIGZyb20gdGhl
IE1lZGlhU3RyZWFtIGFuZCBtaWdyYXRlIGV4aXN0aW5nIGNsaWVudCAoTWVkaWFSZWNvcmRlcikg
dG8gTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlci4KKyAgICAgICAgTWFrZSB1c2Ugb2YgV2Vh
a0hhc2hTZXQgaW4gTWVkaWFTdHJlYW1Qcml2YXRlIHRvIGltcHJvdmUgcm9idXN0bmVzcyBvZiB0
aGUgY29kZS4KKyAgICAgICAgQW55IHRpbWUgdGhlIE1lZGlhU3RyZWFtUHJpdmF0ZSB0cmFja3Mg
YXJlIG1vZGlmaWVkLCBvYnNlcnZlcnMgd2lsbCBiZSBub3RpZmllZC4KKyAgICAgICAgTWVkaWFT
dHJlYW0gbmVlZHMgbm93IHRvIGRlY2lkZSB3aGVuIHRvIHNlbmQgYW4gZXZlbnQgd2hlbiBpdHMg
TWVkaWFTdHJlYW1Qcml2YXRlIG5vdGlmaWVzIG9mIG5ldy9kZWxldGVkIHRyYWNrcywKKyAgICAg
ICAgTW9kZXJuaXplIGEgYml0IHRoZSBjb2RlIHRvIHVzZSBtb3JlIHJlZmVyZW5jZXMuCisgICAg
ICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyOjpNZWRpYVJlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6On5N
ZWRpYVJlY29yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXI6OmhhbmRsZVRy
YWNrQ2hhbmdlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
ci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlVHJhY2tQcml2YXRlVmVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0
cmVhbTo6fk1lZGlhU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjphZGRU
cmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6cmVtb3ZlVHJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06OmdldFRyYWNrQnlJZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbTo6ZGlkQWRkVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW06OmRpZFJlbW92ZVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjph
ZGRUcmFja0Zyb21QbGF0Zm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6aW50
ZXJuYWxBZGRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6aW50ZXJuYWxU
YWtlVHJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaDoK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVu
ZHBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OnJl
bW92ZVJlbW90ZVRyYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpN
ZWRpYVN0cmVhbVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRl
OjphZGRPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnJl
bW92ZU9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6Zm9y
RWFjaE9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6Y29t
cHV0ZUFjdGl2ZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6
dXBkYXRlQWN0aXZlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRl
OjphZGRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnJlbW92
ZVRyYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tFbmRl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmg6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjpyZW1vdmVNZWRpYVN0cmVhbVRyYWNrKToKKwogMjAyMC0wNC0xNyAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSB1c2Ugb2YgV2Vha0hhc2hT
ZXQgZm9yIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlIGFuZCBSZWFsdGltZU1lZGlhU291cmNlIG9i
c2VydmVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXIuY3BwCmluZGV4IGFlZDg1NWZlMjU0YjczZDVkN2JlYjFiZTJmOGJkYTRm
MjZiYWJmMjAuLmVjYTVlOWVjZjFlMjg3NzEwYmIwMTlmMjYwMDM1ZTE2MWIwMmUwODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlci5jcHAKQEAgLTkxLDEyICs5MSwxMiBAQCBNZWRpYVJlY29yZGVyOjpNZWRpYVJlY29yZGVy
KERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlhU3RyZWFtPiYmIHN0cmVhbSwgc3RkOgogICAg
IG1fdHJhY2tzID0gV1RGOjptYXAobV9zdHJlYW0tPmdldFRyYWNrcygpLCBbXSAoYXV0byYmIHRy
YWNrKSAtPiBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IHsKICAgICAgICAgcmV0dXJuIHRy
YWNrLT5wcml2YXRlVHJhY2soKTsKICAgICB9KTsKLSAgICBtX3N0cmVhbS0+YWRkT2JzZXJ2ZXIo
dGhpcyk7CisgICAgbV9zdHJlYW0tPnByaXZhdGVTdHJlYW0oKS5hZGRPYnNlcnZlcigqdGhpcyk7
CiB9CiAKIE1lZGlhUmVjb3JkZXI6On5NZWRpYVJlY29yZGVyKCkKIHsKLSAgICBtX3N0cmVhbS0+
cmVtb3ZlT2JzZXJ2ZXIodGhpcyk7CisgICAgbV9zdHJlYW0tPnByaXZhdGVTdHJlYW0oKS5yZW1v
dmVPYnNlcnZlcigqdGhpcyk7CiAgICAgc3RvcFJlY29yZGluZ0ludGVybmFsKCk7CiB9CiAKQEAg
LTE5NCw3ICsxOTQsNyBAQCB2b2lkIE1lZGlhUmVjb3JkZXI6OnN0b3BSZWNvcmRpbmdJbnRlcm5h
bCgpCiAgICAgbV9wcml2YXRlLT5zdG9wUmVjb3JkaW5nKCk7CiB9CiAKLXZvaWQgTWVkaWFSZWNv
cmRlcjo6ZGlkQWRkT3JSZW1vdmVUcmFjaygpCit2b2lkIE1lZGlhUmVjb3JkZXI6OmhhbmRsZVRy
YWNrQ2hhbmdlKCkKIHsKICAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRh
c2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFt0aGlzXSB7CiAgICAgICAgIGlmICghbV9pc0FjdGl2ZSB8
fCBzdGF0ZSgpID09IFJlY29yZGluZ1N0YXRlOjpJbmFjdGl2ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5oCmluZGV4IDUzMmIw
MzVkZGI1NTBmOGYwZGQ2MzUwMzcyN2FkNDNjNjBmMzQxYWUuLjZhNDk0ZDRhMGMzMDU1NmExOGY3
ZGM3NDY4MmY2ZjYxYmI5OTQ0NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBN
ZWRpYVJlY29yZGVyIGZpbmFsCiAgICAgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0CiAgICAgLCBw
dWJsaWMgUmVmQ291bnRlZDxNZWRpYVJlY29yZGVyPgogICAgICwgcHVibGljIEV2ZW50VGFyZ2V0
V2l0aElubGluZURhdGEKLSAgICAsIHByaXZhdGUgTWVkaWFTdHJlYW06Ok9ic2VydmVyCisgICAg
LCBwcml2YXRlIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIKICAgICAsIHByaXZhdGUgTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEKE1lZGlhUmVjb3JkZXIpOwogcHVibGljOgpAQCAtOTgsOCArOTgsMTEgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRpc3BhdGNoRXJyb3IoRXhjZXB0aW9uJiYpOwogCiAgICAgLy8gTWVkaWFTdHJl
YW06Ok9ic2VydmVyCi0gICAgdm9pZCBkaWRBZGRPclJlbW92ZVRyYWNrKCkgZmluYWw7Ci0gICAg
CisgICAgdm9pZCBkaWRBZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIGZpbmFsIHsg
aGFuZGxlVHJhY2tDaGFuZ2UoKTsgfQorICAgIHZvaWQgZGlkUmVtb3ZlVHJhY2soTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKSBmaW5hbCB7IGhhbmRsZVRyYWNrQ2hhbmdlKCk7IH0KKworICAgIHZv
aWQgaGFuZGxlVHJhY2tDaGFuZ2UoKTsKKwogICAgIC8vIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
OjpPYnNlcnZlcgogICAgIHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYp
IGZpbmFsOwogICAgIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSBmaW5hbCB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW0uY3BwCmluZGV4IDQ5M2E0MDAwNTkxMTgxNjI0M2UwZDg1MzU2ZmMxYWE3
NzA4OTEzNTYuLmY3MDVkN2YwMzIzNGQyNDE4YzNhYTFlYjg5MTlkYzI2OWE5YjZjN2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3Bw
CkBAIC0zMywxNSArMzMsMTEgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2
ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5j
bHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVk
aWFTdHJlYW1UcmFja0V2ZW50LmgiCi0jaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY5LDExICs2NSw5IEBAIFJlZjxNZWRpYVN0cmVhbT4gTWVk
aWFTdHJlYW06OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZWRpYVN0cmVhbVByaXZh
dGU+CiAKIHN0YXRpYyBpbmxpbmUgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3IgY3JlYXRl
VHJhY2tQcml2YXRlVmVjdG9yKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tWZWN0b3ImIHRyYWNrcykK
IHsKLSAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciB0cmFja1ByaXZhdGVzOwotICAg
IHRyYWNrUHJpdmF0ZXMucmVzZXJ2ZUNhcGFjaXR5KHRyYWNrcy5zaXplKCkpOwotICAgIGZvciAo
YXV0byYgdHJhY2sgOiB0cmFja3MpCi0gICAgICAgIHRyYWNrUHJpdmF0ZXMuYXBwZW5kKCZ0cmFj
ay0+cHJpdmF0ZVRyYWNrKCkpOwotICAgIHJldHVybiB0cmFja1ByaXZhdGVzOworICAgIHJldHVy
biBtYXAodHJhY2tzLCBbXShhdXRvJiB0cmFjaykgeworICAgICAgICByZXR1cm4gbWFrZVJlZlB0
cigmdHJhY2stPnByaXZhdGVUcmFjaygpKTsKKyAgICB9KTsKIH0KIAogTWVkaWFTdHJlYW06Ok1l
ZGlhU3RyZWFtKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ZlY3Rv
ciYgdHJhY2tzKQpAQCAtODMsMTAgKzc3LDggQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ZlY3RvciYgdHJhY2sKICAg
ICAvLyBUaGlzIGNvbnN0cnVjdG9yIHByZXNlcnZlcyBNZWRpYVN0cmVhbVRyYWNrIGluc3RhbmNl
cyBhbmQgbXVzdCBiZSB1c2VkIGJ5IGNhbGxzIG9yaWdpbmF0aW5nCiAgICAgLy8gZnJvbSB0aGUg
SmF2YVNjcmlwdCBNZWRpYVN0cmVhbSBjb25zdHJ1Y3Rvci4KIAotICAgIGZvciAoYXV0byYgdHJh
Y2sgOiB0cmFja3MpIHsKLSAgICAgICAgdHJhY2stPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICBm
b3IgKGF1dG8mIHRyYWNrIDogdHJhY2tzKQogICAgICAgICBtX3RyYWNrU2V0LmFkZCh0cmFjay0+
aWQoKSwgdHJhY2spOwotICAgIH0KIAogICAgIHNldElzQWN0aXZlKG1fcHJpdmF0ZS0+YWN0aXZl
KCkpOwogICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwpAQCAtOTksMTEgKzkxLDgg
QEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPE1lZGlh
U3RyZWFtUHJpdmF0ZT4mJiBzdHJlYW1QcmkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIpOwogCi0gICAgZm9yIChhdXRvJiB0cmFja1ByaXZhdGUgOiBtX3ByaXZhdGUtPnRyYWNrcygp
KSB7Ci0gICAgICAgIGF1dG8gdHJhY2sgPSBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoZG9jdW1l
bnQsICp0cmFja1ByaXZhdGUpOwotICAgICAgICB0cmFjay0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwot
ICAgICAgICBtX3RyYWNrU2V0LmFkZCh0cmFjay0+aWQoKSwgV1RGTW92ZSh0cmFjaykpOwotICAg
IH0KKyAgICBmb3IgKGF1dG8mIHRyYWNrUHJpdmF0ZSA6IG1fcHJpdmF0ZS0+dHJhY2tzKCkpCisg
ICAgICAgIG1fdHJhY2tTZXQuYWRkKHRyYWNrUHJpdmF0ZS0+aWQoKSwgTWVkaWFTdHJlYW1UcmFj
azo6Y3JlYXRlKGRvY3VtZW50LCAqdHJhY2tQcml2YXRlKSk7CiAKICAgICBzZXRJc0FjdGl2ZSht
X3ByaXZhdGUtPmFjdGl2ZSgpKTsKICAgICBtX3ByaXZhdGUtPmFkZE9ic2VydmVyKCp0aGlzKTsK
QEAgLTExNiw5ICsxMDUsNyBAQCBNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKCkKICAgICAvLyBt
ZWRpYVN0YXRlKCksIGFyZSBzaG9ydCBjaXJjdWl0ZWQuCiAgICAgbV9pc0FjdGl2ZSA9IGZhbHNl
OwogICAgIG1fcHJpdmF0ZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwotICAgIGZvciAoYXV0byYg
dHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVlcygpKQotICAgICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2
ZXIoKnRoaXMpOwotICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgp
KSB7CisgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkgewogICAgICAg
ICBpZiAobV9pc1dhaXRpbmdVbnRpbE1lZGlhQ2FuU3RhcnQpCiAgICAgICAgICAgICBkb2N1bWVu
dC0+cmVtb3ZlTWVkaWFDYW5TdGFydExpc3RlbmVyKCp0aGlzKTsKICAgICB9CkBAIC0xNDAsMzAg
KzEyNywyNyBAQCBSZWZQdHI8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtOjpjbG9uZSgpCiB2b2lk
IE1lZGlhU3RyZWFtOjphZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNrJiB0cmFjaykKIHsKICAgICBB
TFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHRyYWNrLmxvZ0lkZW50aWZpZXIoKSk7Ci0KLSAgICBp
ZiAoIWludGVybmFsQWRkVHJhY2sodHJhY2ssIFN0cmVhbU1vZGlmaWVyOjpEb21BUEkpKQorICAg
IGlmIChnZXRUcmFja0J5SWQodHJhY2sucHJpdmF0ZVRyYWNrKCkuaWQoKSkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKLSAgICAgICAg
b2JzZXJ2ZXItPmRpZEFkZE9yUmVtb3ZlVHJhY2soKTsKKyAgICBpbnRlcm5hbEFkZFRyYWNrKHRy
YWNrKTsKKyAgICBtX3ByaXZhdGUtPmFkZFRyYWNrKHRyYWNrLnByaXZhdGVUcmFjaygpKTsKIH0K
IAogdm9pZCBNZWRpYVN0cmVhbTo6cmVtb3ZlVHJhY2soTWVkaWFTdHJlYW1UcmFjayYgdHJhY2sp
CiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB0cmFjay5sb2dJZGVudGlmaWVyKCkp
OwotCi0gICAgaWYgKCFpbnRlcm5hbFJlbW92ZVRyYWNrKHRyYWNrLmlkKCksIFN0cmVhbU1vZGlm
aWVyOjpEb21BUEkpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKGF1dG8mIG9ic2VydmVy
IDogbV9vYnNlcnZlcnMpCi0gICAgICAgIG9ic2VydmVyLT5kaWRBZGRPclJlbW92ZVRyYWNrKCk7
CisgICAgaWYgKGF1dG8gdGFrZW4gPSBpbnRlcm5hbFRha2VUcmFjayh0cmFjay5pZCgpKSkgewor
ICAgICAgICBBU1NFUlQodGFrZW4uZ2V0KCkgPT0gJnRyYWNrKTsKKyAgICAgICAgbV9wcml2YXRl
LT5yZW1vdmVUcmFjayh0cmFjay5wcml2YXRlVHJhY2soKSk7CisgICAgfQogfQogCiBNZWRpYVN0
cmVhbVRyYWNrKiBNZWRpYVN0cmVhbTo6Z2V0VHJhY2tCeUlkKFN0cmluZyBpZCkKIHsKLSAgICBh
dXRvIGl0ID0gbV90cmFja1NldC5maW5kKGlkKTsKLSAgICBpZiAoaXQgIT0gbV90cmFja1NldC5l
bmQoKSkKLSAgICAgICAgcmV0dXJuIGl0LT52YWx1ZS5nZXQoKTsKKyAgICBhdXRvIGl0ZXJhdG9y
ID0gbV90cmFja1NldC5maW5kKGlkKTsKKyAgICBpZiAoaXRlcmF0b3IgIT0gbV90cmFja1NldC5l
bmQoKSkKKyAgICAgICAgcmV0dXJuIGl0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKIAogICAgIHJldHVy
biBudWxscHRyOwogfQpAQCAtMTgzLDExICsxNjcsNiBAQCBNZWRpYVN0cmVhbVRyYWNrVmVjdG9y
IE1lZGlhU3RyZWFtOjpnZXRUcmFja3MoKSBjb25zdAogICAgIHJldHVybiBjb3B5VG9WZWN0b3Io
bV90cmFja1NldC52YWx1ZXMoKSk7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW06OnRyYWNrRGlkRW5k
KCkKLXsKLSAgICBtX3ByaXZhdGUtPnVwZGF0ZUFjdGl2ZVN0YXRlKE1lZGlhU3RyZWFtUHJpdmF0
ZTo6Tm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpOwotfQotCiB2b2lkIE1lZGlhU3RyZWFtOjph
Y3RpdmVTdGF0dXNDaGFuZ2VkKCkKIHsKICAgICB1cGRhdGVBY3RpdmVTdGF0ZSgpOwpAQCAtMTk5
LDYwICsxNzgsNDQgQEAgdm9pZCBNZWRpYVN0cmVhbTo6ZGlkQWRkVHJhY2soTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGlmICghZ2V0VHJhY2tCeUlkKHRyYWNrUHJpdmF0ZS5pZCgpKSkKLSAgICAg
ICAgaW50ZXJuYWxBZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoKmNvbnRleHQsIHRy
YWNrUHJpdmF0ZSksIFN0cmVhbU1vZGlmaWVyOjpQbGF0Zm9ybSk7CisgICAgaWYgKGdldFRyYWNr
QnlJZCh0cmFja1ByaXZhdGUuaWQoKSkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gdHJh
Y2sgPSBNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoKmNvbnRleHQsIHRyYWNrUHJpdmF0ZSk7Cisg
ICAgaW50ZXJuYWxBZGRUcmFjayh0cmFjay5jb3B5UmVmKCkpOworICAgIGRpc3BhdGNoRXZlbnQo
TWVkaWFTdHJlYW1UcmFja0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmFkZHRyYWNrRXZlbnQs
IEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObywgV1RGTW92ZSh0
cmFjaykpKTsKIH0KIAogdm9pZCBNZWRpYVN0cmVhbTo6ZGlkUmVtb3ZlVHJhY2soTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmIHRyYWNrUHJpdmF0ZSkKIHsKLSAgICBpbnRlcm5hbFJlbW92ZVRyYWNr
KHRyYWNrUHJpdmF0ZS5pZCgpLCBTdHJlYW1Nb2RpZmllcjo6UGxhdGZvcm0pOworICAgIGlmIChh
dXRvIHRyYWNrID0gaW50ZXJuYWxUYWtlVHJhY2sodHJhY2tQcml2YXRlLmlkKCkpKQorICAgICAg
ICBkaXNwYXRjaEV2ZW50KE1lZGlhU3RyZWFtVHJhY2tFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5yZW1vdmV0cmFja0V2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2Vs
YWJsZTo6Tm8sIFdURk1vdmUodHJhY2spKSk7CiB9CiAKIHZvaWQgTWVkaWFTdHJlYW06OmFkZFRy
YWNrRnJvbVBsYXRmb3JtKFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmIHRyYWNrKQogewogICAgIEFM
V0FZU19MT0coTE9HSURFTlRJRklFUiwgdHJhY2stPmxvZ0lkZW50aWZpZXIoKSk7CiAKLSAgICBh
dXRvKiBwcml2YXRlVHJhY2sgPSAmdHJhY2stPnByaXZhdGVUcmFjaygpOwotICAgIGludGVybmFs
QWRkVHJhY2soV1RGTW92ZSh0cmFjayksIFN0cmVhbU1vZGlmaWVyOjpQbGF0Zm9ybSk7Ci0gICAg
bV9wcml2YXRlLT5hZGRUcmFjayhwcml2YXRlVHJhY2ssIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Tm90
aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpOworICAgIGF1dG8mIHByaXZhdGVUcmFjayA9IHRyYWNr
LT5wcml2YXRlVHJhY2soKTsKKyAgICBpbnRlcm5hbEFkZFRyYWNrKHRyYWNrLmNvcHlSZWYoKSk7
CisgICAgbV9wcml2YXRlLT5hZGRUcmFjayhwcml2YXRlVHJhY2spOworICAgIGRpc3BhdGNoRXZl
bnQoTWVkaWFTdHJlYW1UcmFja0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmFkZHRyYWNrRXZl
bnQsIEV2ZW50OjpDYW5CdWJibGU6Ok5vLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObywgV1RGTW92
ZSh0cmFjaykpKTsKIH0KIAotYm9vbCBNZWRpYVN0cmVhbTo6aW50ZXJuYWxBZGRUcmFjayhSZWY8
TWVkaWFTdHJlYW1UcmFjaz4mJiB0cmFja1RvQWRkLCBTdHJlYW1Nb2RpZmllciBzdHJlYW1Nb2Rp
ZmllcikKK3ZvaWQgTWVkaWFTdHJlYW06OmludGVybmFsQWRkVHJhY2soUmVmPE1lZGlhU3RyZWFt
VHJhY2s+JiYgdHJhY2tUb0FkZCkKIHsKLSAgICBhdXRvIHJlc3VsdCA9IG1fdHJhY2tTZXQuYWRk
KHRyYWNrVG9BZGQtPmlkKCksIFdURk1vdmUodHJhY2tUb0FkZCkpOwotICAgIGlmICghcmVzdWx0
LmlzTmV3RW50cnkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIEFTU0VSVChyZXN1bHQu
aXRlcmF0b3ItPnZhbHVlKTsKLSAgICBhdXRvJiB0cmFjayA9ICpyZXN1bHQuaXRlcmF0b3ItPnZh
bHVlOwotICAgIHRyYWNrLmFkZE9ic2VydmVyKCp0aGlzKTsKLQorICAgIEFTU0VSVCghbV90cmFj
a1NldC5jb250YWlucyh0cmFja1RvQWRkLT5pZCgpKSk7CisgICAgbV90cmFja1NldC5hZGQodHJh
Y2tUb0FkZC0+aWQoKSwgV1RGTW92ZSh0cmFja1RvQWRkKSk7CiAgICAgdXBkYXRlQWN0aXZlU3Rh
dGUoKTsKLQotICAgIGlmIChzdHJlYW1Nb2RpZmllciA9PSBTdHJlYW1Nb2RpZmllcjo6RG9tQVBJ
KQotICAgICAgICBtX3ByaXZhdGUtPmFkZFRyYWNrKCZ0cmFjay5wcml2YXRlVHJhY2soKSwgTWVk
aWFTdHJlYW1Qcml2YXRlOjpOb3RpZnlDbGllbnRPcHRpb246OkRvbnROb3RpZnkpOwotICAgIGVs
c2UKLSAgICAgICAgZGlzcGF0Y2hFdmVudChNZWRpYVN0cmVhbVRyYWNrRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuYWRkdHJhY2tFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJ
c0NhbmNlbGFibGU6Ok5vLCAmdHJhY2spKTsKLQotICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IE1lZGlhU3RyZWFtOjppbnRlcm5hbFJlbW92ZVRyYWNrKGNvbnN0IFN0cmluZyYgdHJhY2tJZCwg
U3RyZWFtTW9kaWZpZXIgc3RyZWFtTW9kaWZpZXIpCitSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4g
TWVkaWFTdHJlYW06OmludGVybmFsVGFrZVRyYWNrKGNvbnN0IFN0cmluZyYgdHJhY2tJZCkKIHsK
ICAgICBhdXRvIHRyYWNrID0gbV90cmFja1NldC50YWtlKHRyYWNrSWQpOwotICAgIGlmICghdHJh
Y2spCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZlcigq
dGhpcyk7Ci0KLSAgICB1cGRhdGVBY3RpdmVTdGF0ZSgpOworICAgIGlmICh0cmFjaykKKyAgICAg
ICAgdXBkYXRlQWN0aXZlU3RhdGUoKTsKIAotICAgIGlmIChzdHJlYW1Nb2RpZmllciA9PSBTdHJl
YW1Nb2RpZmllcjo6RG9tQVBJKQotICAgICAgICBtX3ByaXZhdGUtPnJlbW92ZVRyYWNrKHRyYWNr
LT5wcml2YXRlVHJhY2soKSwgTWVkaWFTdHJlYW1Qcml2YXRlOjpOb3RpZnlDbGllbnRPcHRpb246
OkRvbnROb3RpZnkpOwotICAgIGVsc2UKLSAgICAgICAgZGlzcGF0Y2hFdmVudChNZWRpYVN0cmVh
bVRyYWNrRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucmVtb3ZldHJhY2tFdmVudCwgRXZlbnQ6
OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vLCBXVEZNb3ZlKHRyYWNrKSkp
OwotCi0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHRyYWNrOwogfQogCiB2b2lkIE1lZGlh
U3RyZWFtOjpzZXRJc0FjdGl2ZShib29sIGFjdGl2ZSkKQEAgLTM3MiwxOSArMzM1LDYgQEAgTWVk
aWFTdHJlYW1UcmFja1ZlY3RvciBNZWRpYVN0cmVhbTo6dHJhY2tWZWN0b3JGb3JUeXBlKFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGUKICAgICByZXR1cm4gdHJhY2tzOwogfQogCi12b2lkIE1lZGlh
U3RyZWFtOjphZGRPYnNlcnZlcihNZWRpYVN0cmVhbTo6T2JzZXJ2ZXIqIG9ic2VydmVyKQotewot
ICAgIGlmIChtX29ic2VydmVycy5maW5kKG9ic2VydmVyKSA9PSBub3RGb3VuZCkKLSAgICAgICAg
bV9vYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbTo6cmVt
b3ZlT2JzZXJ2ZXIoTWVkaWFTdHJlYW06Ok9ic2VydmVyKiBvYnNlcnZlcikKLXsKLSAgICBzaXpl
X3QgcG9zID0gbV9vYnNlcnZlcnMuZmluZChvYnNlcnZlcik7Ci0gICAgaWYgKHBvcyAhPSBub3RG
b3VuZCkKLSAgICAgICAgbV9vYnNlcnZlcnMucmVtb3ZlKHBvcyk7Ci19Ci0KIERvY3VtZW50KiBN
ZWRpYVN0cmVhbTo6ZG9jdW1lbnQoKSBjb25zdAogewogICAgIHJldHVybiBkb3duY2FzdDxEb2N1
bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAppbmRleCBjYjhmMTQ2MjMzOWExNWRiZGI2
MmY2ZTU3ZjA2ZmFiY2M4ZWI2NTFlLi5iNGU1MTU4N2IzMzdlZDJjNzI2YWE5MmNmOTc3NTZkNmM4
YjRiZTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAiVVJMUmVnaXN0cnkuaCIKICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KLSNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNTAsNyArNDksNiBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNz
IE1lZGlhU3RyZWFtIGZpbmFsCiAgICAgOiBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0
YQogICAgICwgcHVibGljIEFjdGl2ZURPTU9iamVjdAotICAgICwgcHVibGljIE1lZGlhU3RyZWFt
VHJhY2s6Ok9ic2VydmVyCiAgICAgLCBwdWJsaWMgTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZl
cgogICAgICwgcHJpdmF0ZSBNZWRpYUNhblN0YXJ0TGlzdGVuZXIKICNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKQEAgLTU5LDEyICs1Nyw2IEBAIGNsYXNzIE1lZGlhU3RyZWFtIGZpbmFsCiAgICAg
LCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbT4gewogICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoTWVkaWFTdHJlYW0pOwogcHVibGljOgotICAgIGNsYXNzIE9ic2VydmVyIHsKLSAgICBw
dWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgPSBkZWZhdWx0OwotICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkQWRkT3JSZW1vdmVUcmFjaygpID0gMDsKLSAgICB9OwotCiAgICAgc3Rh
dGljIFJlZjxNZWRpYVN0cmVhbT4gY3JlYXRlKERvY3VtZW50Jik7CiAgICAgc3RhdGljIFJlZjxN
ZWRpYVN0cmVhbT4gY3JlYXRlKERvY3VtZW50JiwgTWVkaWFTdHJlYW0mKTsKICAgICBzdGF0aWMg
UmVmPE1lZGlhU3RyZWFtPiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBNZWRpYVN0cmVhbVRyYWNr
VmVjdG9yJik7CkBAIC05OCwxNyArOTAsMTAgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50
ZWQ8TWVkaWFTdHJlYW0+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbT46
OmRlcmVmOwogCi0gICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciopOwotICAgIHZvaWQgcmVt
b3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXIqKTsKLQogICAgIHZvaWQgYWRkVHJhY2tGcm9tUGxhdGZvcm0o
UmVmPE1lZGlhU3RyZWFtVHJhY2s+JiYpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29u
c3Q7CiAKLSAgICBlbnVtIGNsYXNzIFN0cmVhbU1vZGlmaWVyIHsgRG9tQVBJLCBQbGF0Zm9ybSB9
OwotICAgIGJvb2wgaW50ZXJuYWxBZGRUcmFjayhSZWY8TWVkaWFTdHJlYW1UcmFjaz4mJiwgU3Ry
ZWFtTW9kaWZpZXIpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaW50ZXJuYWxSZW1vdmVUcmFj
ayhjb25zdCBTdHJpbmcmLCBTdHJlYW1Nb2RpZmllcik7Ci0KIHByb3RlY3RlZDoKICAgICBNZWRp
YVN0cmVhbShEb2N1bWVudCYsIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tWZWN0b3ImKTsKICAgICBN
ZWRpYVN0cmVhbShEb2N1bWVudCYsIFJlZjxNZWRpYVN0cmVhbVByaXZhdGU+JiYpOwpAQCAtMTIx
LDE0ICsxMDYsMTMgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAKIHByaXZhdGU6CisgICAgdm9pZCBp
bnRlcm5hbEFkZFRyYWNrKFJlZjxNZWRpYVN0cmVhbVRyYWNrPiYmKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gaW50ZXJuYWxUYWtlVHJhY2soY29uc3QgU3Ry
aW5nJik7CiAKICAgICAvLyBFdmVudFRhcmdldAogICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBm
aW5hbCB7IHJlZigpOyB9CiAgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJl
ZigpOyB9CiAKLSAgICAvLyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlcgotICAgIHZvaWQgdHJh
Y2tEaWRFbmQoKSBmaW5hbDsKLQogICAgIC8vIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIK
ICAgICB2b2lkIGFjdGl2ZVN0YXR1c0NoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIGRpZEFkZFRy
YWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgZmluYWw7CkBAIC0xNTYsOCArMTQwLDYgQEAg
cHJpdmF0ZToKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4+
IG1fdHJhY2tTZXQ7CiAKLSAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKLQogICAg
IE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBtX3N0YXRlIHsgTWVkaWFQcm9kdWNlcjo6
SXNOb3RQbGF5aW5nIH07CiAKICAgICBib29sIG1faXNBY3RpdmUgeyBmYWxzZSB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDTWVkaWFFbmRwb2ludC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAppbmRleCA2N2U4ZTA3ZDM3MzA4
NTg3ZThhODQ2N2M1MjA0NzI0OTU3OWM0Y2ZhLi42YzBlNWM5NzdiZTM0ZWJlYjcyOGIzMmFhYTAy
NzE3YzMzYTkyMTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50
LmNwcApAQCAtNDE3LDcgKzQxNyw3IEBAIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6cmVt
b3ZlUmVtb3RlVHJhY2socnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UnRwUmVjCiAKICAgICBm
b3IgKGF1dG8mIGlkIDogbV9yZW1vdGVTdHJlYW1zRnJvbVJlbW90ZVRyYWNrLmdldCgmdHJhY2sp
KSB7CiAgICAgICAgIGlmIChhdXRvIHN0cmVhbSA9IG1fcmVtb3RlU3RyZWFtc0J5SWQuZ2V0KGlk
KSkKLSAgICAgICAgICAgIHN0cmVhbS0+cHJpdmF0ZVN0cmVhbSgpLnJlbW92ZVRyYWNrKHRyYWNr
LnByaXZhdGVUcmFjaygpLCBNZWRpYVN0cmVhbVByaXZhdGU6Ok5vdGlmeUNsaWVudE9wdGlvbjo6
Tm90aWZ5KTsKKyAgICAgICAgICAgIHN0cmVhbS0+cHJpdmF0ZVN0cmVhbSgpLnJlbW92ZVRyYWNr
KHRyYWNrLnByaXZhdGVUcmFjaygpKTsKICAgICB9CiAKICAgICB0cmFjay5zb3VyY2UoKS5zZXRN
dXRlZCh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCmluZGV4IDdiMmQwYzc5NmJhOWIxNWU3MjNi
NDQ1NThhZGVjNzRiMTFmODI5ZjUuLjNhNjI4MDlmMjFhOTQ1NDk4MTU2NjlmMTA1YmI1OWQ5Mjgx
MGYyNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCisjaW5jbHVkZSA8d3RmL0FsZ29yaXRobXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgpAQCAtNzgsOCArNzksOCBAQCBNZWRpYVN0cmVhbVByaXZhdGU6Ok1lZGlhU3RyZWFtUHJp
dmF0ZShSZWY8Y29uc3QgTG9nZ2VyPiYmIGxvZ2dlciwgY29uc3QgTWVkaWFTdAogICAgICAgICB0
cmFjay0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogICAgICAgICBtX3RyYWNrU2V0LmFkZCh0cmFjay0+
aWQoKSwgdHJhY2spOwogICAgIH0KLQotICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKE5vdGlmeUNsaWVu
dE9wdGlvbjo6RG9udE5vdGlmeSk7CisgICAgbV9pc0FjdGl2ZSA9IGNvbXB1dGVBY3RpdmVTdGF0
ZSgpOworICAgIHVwZGF0ZUFjdGl2ZVZpZGVvVHJhY2soKTsKIH0KIAogTWVkaWFTdHJlYW1Qcml2
YXRlOjp+TWVkaWFTdHJlYW1Qcml2YXRlKCkKQEAgLTg4LDI2ICs4OSwyMyBAQCBNZWRpYVN0cmVh
bVByaXZhdGU6On5NZWRpYVN0cmVhbVByaXZhdGUoKQogICAgICAgICB0cmFjay0+cmVtb3ZlT2Jz
ZXJ2ZXIoKnRoaXMpOwogfQogCi12b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkT2JzZXJ2ZXIo
TWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCit2b2lkIE1lZGlhU3RyZWFt
UHJpdmF0ZTo6YWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIFJFTEVBU0Vf
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBtX29ic2VydmVycy5hZGQoJm9ic2VydmVyKTsK
KyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIG1fb2JzZXJ2ZXJzLmFkZChvYnNlcnZl
cik7CiB9CiAKLXZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVPYnNlcnZlcihNZWRpYVN0
cmVhbVByaXZhdGU6Ok9ic2VydmVyJiBvYnNlcnZlcikKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRl
OjpyZW1vdmVPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgUkVMRUFTRV9BU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOwor
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgbV9vYnNlcnZlcnMucmVtb3ZlKG9ic2Vy
dmVyKTsKIH0KIAotdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmZvckVhY2hPYnNlcnZlcihjb25z
dCBXVEY6OkZ1bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mIGFwcGx5KSBjb25zdAordm9pZCBNZWRp
YVN0cmVhbVByaXZhdGU6OmZvckVhY2hPYnNlcnZlcihjb25zdCBGdW5jdGlvbjx2b2lkKE9ic2Vy
dmVyJik+JiBhcHBseSkKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0g
ICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IGNvcHlUb1ZlY3RvcihtX29ic2VydmVycykpIHsKLSAg
ICAgICAgaWYgKCFtX29ic2VydmVycy5jb250YWlucyhvYnNlcnZlcikpCi0gICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgYXBwbHkoKm9ic2VydmVyKTsKLSAgICB9CisgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKKyAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsK
KyAgICBtX29ic2VydmVycy5mb3JFYWNoKGFwcGx5KTsKIH0KIAogTWVkaWFTdHJlYW1UcmFja1By
aXZhdGVWZWN0b3IgTWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja3MoKSBjb25zdApAQCAtMTI3LDE1
ICsxMjUsMTQgQEAgdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmZvckVhY2hUcmFjayhjb25zdCBG
dW5jdGlvbjx2b2lkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXQKICAgICAgICAgY2FsbGJhY2soKnRy
YWNrKTsKIH0KIAotdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnVwZGF0ZUFjdGl2ZVN0YXRlKE5v
dGlmeUNsaWVudE9wdGlvbiBub3RpZnlDbGllbnRPcHRpb24pCitib29sIE1lZGlhU3RyZWFtUHJp
dmF0ZTo6Y29tcHV0ZUFjdGl2ZVN0YXRlKCkKIHsKLSAgICBib29sIG5ld0FjdGl2ZVN0YXRlID0g
ZmFsc2U7Ci0gICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpIHsKLSAg
ICAgICAgaWYgKCF0cmFjay0+ZW5kZWQoKSkgewotICAgICAgICAgICAgbmV3QWN0aXZlU3RhdGUg
PSB0cnVlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9CisgICAgcmV0dXJu
IFdURjo6YW55T2YobV90cmFja1NldCwgW10oYXV0byYgdHJhY2spIHsgcmV0dXJuICF0cmFjay52
YWx1ZS0+ZW5kZWQoKTsgfSk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjp1cGRhdGVB
Y3RpdmVTdGF0ZSgpCit7CisgICAgYm9vbCBuZXdBY3RpdmVTdGF0ZSA9IGNvbXB1dGVBY3RpdmVT
dGF0ZSgpOwogCiAgICAgdXBkYXRlQWN0aXZlVmlkZW9UcmFjaygpOwogCkBAIC0xNDUsMzQgKzE0
MiwzMSBAQCB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dXBkYXRlQWN0aXZlU3RhdGUoTm90aWZ5
Q2xpZW50T3B0aW9uIG5vdGlmeUNsaWVudE9wdGlvbgogCiAgICAgbV9pc0FjdGl2ZSA9IG5ld0Fj
dGl2ZVN0YXRlOwogCi0gICAgaWYgKG5vdGlmeUNsaWVudE9wdGlvbiA9PSBOb3RpZnlDbGllbnRP
cHRpb246Ok5vdGlmeSkgewotICAgICAgICBmb3JFYWNoT2JzZXJ2ZXIoW10oYXV0byYgb2JzZXJ2
ZXIpIHsKLSAgICAgICAgICAgIG9ic2VydmVyLmFjdGl2ZVN0YXR1c0NoYW5nZWQoKTsKLSAgICAg
ICAgfSk7Ci0gICAgfQorICAgIGZvckVhY2hPYnNlcnZlcihbXShhdXRvJiBvYnNlcnZlcikgewor
ICAgICAgICBvYnNlcnZlci5hY3RpdmVTdGF0dXNDaGFuZ2VkKCk7CisgICAgfSk7CiB9CiAKLXZv
aWQgTWVkaWFTdHJlYW1Qcml2YXRlOjphZGRUcmFjayhSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1By
aXZhdGU+JiYgdHJhY2ssIE5vdGlmeUNsaWVudE9wdGlvbiBub3RpZnlDbGllbnRPcHRpb24pCit2
b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkVHJhY2soUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlPiYmIHRyYWNrKQogewogICAgIGlmIChtX3RyYWNrU2V0LmNvbnRhaW5zKHRyYWNrLT5pZCgp
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB0cmFj
ay0+bG9nSWRlbnRpZmllcigpKTsKIAorICAgIGF1dG8mIHRyYWNrUmVmID0gdHJhY2suZ2V0KCk7
CiAgICAgdHJhY2stPmFkZE9ic2VydmVyKCp0aGlzKTsKLSAgICBtX3RyYWNrU2V0LmFkZCh0cmFj
ay0+aWQoKSwgdHJhY2spOworICAgIG1fdHJhY2tTZXQuYWRkKHRyYWNrLT5pZCgpLCBXVEZNb3Zl
KHRyYWNrKSk7CiAKLSAgICBpZiAobm90aWZ5Q2xpZW50T3B0aW9uID09IE5vdGlmeUNsaWVudE9w
dGlvbjo6Tm90aWZ5KSB7Ci0gICAgICAgIGZvckVhY2hPYnNlcnZlcihbJnRyYWNrXShhdXRvJiBv
YnNlcnZlcikgewotICAgICAgICAgICAgb2JzZXJ2ZXIuZGlkQWRkVHJhY2soKnRyYWNrLmdldCgp
KTsKLSAgICAgICAgfSk7Ci0gICAgfQorICAgIGZvckVhY2hPYnNlcnZlcihbJnRyYWNrUmVmXShh
dXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci5kaWRBZGRUcmFjayh0cmFja1JlZik7
CisgICAgfSk7CiAKLSAgICB1cGRhdGVBY3RpdmVTdGF0ZShub3RpZnlDbGllbnRPcHRpb24pOwor
ICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKCk7CiAgICAgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOwog
fQogCi12b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlVHJhY2soTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmIHRyYWNrLCBOb3RpZnlDbGllbnRPcHRpb24gbm90aWZ5Q2xpZW50T3B0aW9uKQor
dm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnJlbW92ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJiB0cmFjaykKIHsKICAgICBpZiAoIW1fdHJhY2tTZXQucmVtb3ZlKHRyYWNrLmlkKCkpKQog
ICAgICAgICByZXR1cm47CkBAIC0xODAsMTMgKzE3NCwxMSBAQCB2b2lkIE1lZGlhU3RyZWFtUHJp
dmF0ZTo6cmVtb3ZlVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBOb3RpZnlD
bGllbgogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgdHJhY2subG9nSWRlbnRpZmllcigp
KTsKICAgICB0cmFjay5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiAKLSAgICBpZiAobm90aWZ5Q2xp
ZW50T3B0aW9uID09IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KSB7Ci0gICAgICAgIGZvckVh
Y2hPYnNlcnZlcihbJnRyYWNrXShhdXRvJiBvYnNlcnZlcikgewotICAgICAgICAgICAgb2JzZXJ2
ZXIuZGlkUmVtb3ZlVHJhY2sodHJhY2spOwotICAgICAgICB9KTsKLSAgICB9CisgICAgZm9yRWFj
aE9ic2VydmVyKFsmdHJhY2tdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLmRp
ZFJlbW92ZVRyYWNrKHRyYWNrKTsKKyAgICB9KTsKIAotICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKE5v
dGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KTsKKyAgICB1cGRhdGVBY3RpdmVTdGF0ZSgpOwogICAg
IGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsKIH0KIApAQCAtMzE1LDcgKzMwNyw3IEBAIHZvaWQg
TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0
cmFjaykKICNlbmRpZgogCiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB0cmFjay5sb2dJ
ZGVudGlmaWVyKCkpOwotICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKE5vdGlmeUNsaWVudE9wdGlvbjo6
Tm90aWZ5KTsKKyAgICB1cGRhdGVBY3RpdmVTdGF0ZSgpOwogICAgIGNoYXJhY3RlcmlzdGljc0No
YW5nZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAppbmRleCA3OTI4OWI4MTIzNjM5ZGI5NjJmZDEy
ZDI5Mjc4NzM3ODQzMDkwMDlkLi5lNjI5ZjM1ZmMzNzg3NTgzY2JjMzk0MDcyNDg1YjQzOGRjZWE3
ODc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVByaXZhdGUuaApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVVVJRC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KyNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC01OCw3ICs1OSw3IEBAIGNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZSBmaW5hbAogI2VuZGlmCiB7
CiBwdWJsaWM6Ci0gICAgY2xhc3MgT2JzZXJ2ZXIgeworICAgIGNsYXNzIE9ic2VydmVyIDogcHVi
bGljIENhbk1ha2VXZWFrUHRyPE9ic2VydmVyPiB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0
dWFsIH5PYnNlcnZlcigpID0gZGVmYXVsdDsKIApAQCAtNzQsOCArNzUsNiBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIH5NZWRpYVN0cmVhbVByaXZhdGUoKTsKIAotICAgIGVudW0gY2xhc3MgTm90
aWZ5Q2xpZW50T3B0aW9uIHsgTm90aWZ5LCBEb250Tm90aWZ5IH07Ci0KICAgICB2b2lkIGFkZE9i
c2VydmVyKE9ic2VydmVyJik7CiAgICAgdm9pZCByZW1vdmVPYnNlcnZlcihPYnNlcnZlciYpOwog
CkBAIC04OCwxMCArODcsMTAgQEAgcHVibGljOgogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
KiBhY3RpdmVWaWRlb1RyYWNrKCkgeyByZXR1cm4gbV9hY3RpdmVWaWRlb1RyYWNrOyB9CiAKICAg
ICBib29sIGFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNBY3RpdmU7IH0KLSAgICB2b2lkIHVw
ZGF0ZUFjdGl2ZVN0YXRlKE5vdGlmeUNsaWVudE9wdGlvbik7CisgICAgdm9pZCB1cGRhdGVBY3Rp
dmVTdGF0ZSgpOwogCi0gICAgdm9pZCBhZGRUcmFjayhSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1By
aXZhdGU+JiYsIE5vdGlmeUNsaWVudE9wdGlvbiA9IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5
KTsKLSAgICB2b2lkIHJlbW92ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwgTm90aWZ5
Q2xpZW50T3B0aW9uID0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpOworICAgIHZvaWQgYWRk
VHJhY2soUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJik7CiAKICAgICB2b2lk
IHN0YXJ0UHJvZHVjaW5nRGF0YSgpOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKTsKQEAg
LTEyMywxNCArMTIyLDE1IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjaGFyYWN0ZXJpc3RpY3NDaGFu
Z2VkKCk7CiAgICAgdm9pZCB1cGRhdGVBY3RpdmVWaWRlb1RyYWNrKCk7CiAKLSAgICB2b2lkIGZv
ckVhY2hPYnNlcnZlcihjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mKSBjb25z
dDsKKyAgICBib29sIGNvbXB1dGVBY3RpdmVTdGF0ZSgpOworICAgIHZvaWQgZm9yRWFjaE9ic2Vy
dmVyKGNvbnN0IEZ1bmN0aW9uPHZvaWQoT2JzZXJ2ZXImKT4mKTsKIAogI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuICJNZWRpYVN0cmVhbVByaXZhdGUiOyB9CiAgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hh
bm5lbCgpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKLSAgICBIYXNoU2V0PE9ic2VydmVyKj4gbV9v
YnNlcnZlcnM7CisgICAgV2Vha0hhc2hTZXQ8T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXJzOwogICAgIFN0
cmluZyBtX2lkOwogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBtX2FjdGl2ZVZpZGVvVHJh
Y2sgeyBudWxscHRyIH07CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZT4+IG1fdHJhY2tTZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
aW5kZXggNjc4ZDM1OTk3YWRkYTlhYjliNDVmMmNlNTg3MmRkMzEwOTVkZDI1Mi4uMTBmOWE2YmRm
ODI1ODg2ODE3MDQ5YmNmZjM4N2YzOGRlODM0OTAyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcApAQCAtNTA1NCw3ICs1MDU0LDcgQEAgdm9pZCBJbnRlcm5hbHM6OnNldE1lZGlh
U3RyZWFtVHJhY2tNdXRlZChNZWRpYVN0cmVhbVRyYWNrJiB0cmFjaywgYm9vbCBtdXRlZCkKIAog
dm9pZCBJbnRlcm5hbHM6OnJlbW92ZU1lZGlhU3RyZWFtVHJhY2soTWVkaWFTdHJlYW0mIHN0cmVh
bSwgTWVkaWFTdHJlYW1UcmFjayYgdHJhY2spCiB7Ci0gICAgc3RyZWFtLmludGVybmFsUmVtb3Zl
VHJhY2sodHJhY2suaWQoKSwgTWVkaWFTdHJlYW06OlN0cmVhbU1vZGlmaWVyOjpQbGF0Zm9ybSk7
CisgICAgc3RyZWFtLnByaXZhdGVTdHJlYW0oKS5yZW1vdmVUcmFjayh0cmFjay5wcml2YXRlVHJh
Y2soKSk7CiB9CiAKIHZvaWQgSW50ZXJuYWxzOjpzaW11bGF0ZU1lZGlhU3RyZWFtVHJhY2tDYXB0
dXJlU291cmNlRmFpbHVyZShNZWRpYVN0cmVhbVRyYWNrJiB0cmFjaykK
</data>

          </attachment>
      

    </bug>

</bugzilla>