<?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>234409</bug_id>
          
          <creation_ts>2021-12-16 15:44:09 -0800</creation_ts>
          <short_desc>Move storage managers from the NetworkProcess to the NetworkSession class</short_desc>
          <delta_ts>2021-12-17 15:28:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly 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=234366</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=234448</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>sam</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1824898</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-16 15:44:09 -0800</bug_when>
    <thetext>Move storage managers from the NetworkProcess to the NetworkSession class, since they are per session.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824901</commentid>
    <comment_count>1</comment_count>
      <attachid>447396</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-16 16:00:26 -0800</bug_when>
    <thetext>Created attachment 447396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825099</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-17 09:27:05 -0800</bug_when>
    <thetext>Committed r287191 (245358@main): &lt;https://commits.webkit.org/245358@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447396.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825100</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-17 09:28:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/86636989&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447396</attachid>
            <date>2021-12-16 16:00:26 -0800</date>
            <delta_ts>2021-12-17 09:27:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234409-20211216160025.patch</filename>
            <type>text/plain</type>
            <size>20734</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM5YTZiYmUwMmVkYzQyZTFh
OTQyNDEyMDBkNzJjMjUwNDczZjJjZWMuLmQ2ODZkZDkwYWI3ZjI0ZjAxZDhmMTgwOTBhMmIyY2Ri
ODc0MDBmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjEtMTItMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHN0b3JhZ2UgbWFuYWdlcnMg
ZnJvbSB0aGUgTmV0d29ya1Byb2Nlc3MgdG8gdGhlIE5ldHdvcmtTZXNzaW9uIGNsYXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ0MDkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHN0b3JhZ2Ug
bWFuYWdlcnMgZnJvbSB0aGUgTmV0d29ya1Byb2Nlc3MgdG8gdGhlIE5ldHdvcmtTZXNzaW9uIGNs
YXNzIHNpbmNlIHRoZXkgYXJlCisgICAgICAgIHBlciBzZXNzaW9uLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6bG93TWVtb3J5SGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjphZGRXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6Omhhc0xvY2FsU3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmRlbGV0ZVdlYnNpdGVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpkZWxldGVBbmRSZXN0cmljdFdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5z
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnJlZ2lzdHJhYmxlRG9tYWluc1dp
dGhXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwcmVwYXJl
VG9TdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnJlc3VtZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzeW5jTG9jYWxTdG9yYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmNsZWFyU3RvcmFnZSk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpyZW5hbWVPcmlnaW5JbldlYnNpdGVEYXRhKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NDbG9zZWQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6YWRkU3RvcmFnZU1hbmFnZXJGb3JTZXNz
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnJlbW92ZVN0
b3JhZ2VNYW5hZ2VyRm9yU2Vzc2lvbik6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uOjppbnZhbGlkYXRlQW5k
Q2FuY2VsKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246Omxvd01lbW9yeUhhbmRs
ZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6YWRkU3RvcmFnZU1hbmFnZXJT
ZXNzaW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6c3RvcmFnZU1hbmFnZXIpOgorCiAyMDIxLTEy
LTE2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBXZWJJ
REJTZXJ2ZXJzIGZyb20gTmV0d29ya1Byb2Nlc3MgdG8gTmV0d29ya1Nlc3Npb24gY2xhc3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXgg
YzZjMjY0NWQ5NTMzMjE5YTE1OGU3Nzg4YjE3Y2RmMGIxMGU1M2RhYi4uMjgyZGM3NmViOWIyODBi
ZTZjNGZjMmQxOGRjMDgyMjQ0OGM0MjE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTMwNCw5ICszMDQsNiBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsIGNyaXRpY2FsKQogICAgIGZvckVh
Y2hOZXR3b3JrU2Vzc2lvbihbY3JpdGljYWxdKGF1dG8mIHNlc3Npb24pIHsKICAgICAgICAgc2Vz
c2lvbi5sb3dNZW1vcnlIYW5kbGVyKGNyaXRpY2FsKTsKICAgICB9KTsKLQotICAgIGZvciAoYXV0
byYgbWFuYWdlciA6IG1fc3RvcmFnZU1hbmFnZXJzLnZhbHVlcygpKQotICAgICAgICBtYW5hZ2Vy
LT5oYW5kbGVMb3dNZW1vcnlXYXJuaW5nKCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6Omlu
aXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYm
IHBhcmFtZXRlcnMpCkBAIC0zODksMTAgKzM4NiwxMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpj
cmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhQcm9jZXNzSWRlbnRpZmllciBpZGVu
dAogCiAgICAgY29ubmVjdGlvbi5zZXRPbkxpbmVTdGF0ZShOZXR3b3JrU3RhdGVOb3RpZmllcjo6
c2luZ2xldG9uKCkub25MaW5lKCkpOwogCi0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3Jr
U2Vzc2lvbihzZXNzaW9uSUQpKQorICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKSkgewogICAgICAgICBzZXNzaW9uLT5lbnN1cmVXZWJJREJTZXJ2ZXIoKS5h
ZGRDb25uZWN0aW9uKGNvbm5lY3Rpb24uY29ubmVjdGlvbigpLCBpZGVudGlmaWVyKTsKLSAgICBp
ZiAoYXV0byBtYW5hZ2VyID0gbV9zdG9yYWdlTWFuYWdlcnMuZ2V0KHNlc3Npb25JRCkpCi0gICAg
ICAgIG1hbmFnZXItPnN0YXJ0UmVjZWl2aW5nTWVzc2FnZUZyb21Db25uZWN0aW9uKGNvbm5lY3Rp
b24uY29ubmVjdGlvbigpKTsKKyAgICAgICAgaWYgKGF1dG8qIG1hbmFnZXIgPSBzZXNzaW9uLT5z
dG9yYWdlTWFuYWdlcigpKQorICAgICAgICAgICAgbWFuYWdlci0+c3RhcnRSZWNlaXZpbmdNZXNz
YWdlRnJvbUNvbm5lY3Rpb24oY29ubmVjdGlvbi5jb25uZWN0aW9uKCkpOworICAgIH0KIH0KIAog
dm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJDYWNoZWRDcmVkZW50aWFscyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpCkBAIC00MTAsMTAgKzQwOCwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjph
ZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcGFyYW1ldGVy
cwogCiAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVdlYnNpdGVEYXRhU3RvcmVT
ZXNzaW9uKCp0aGlzLCBwYXJhbWV0ZXJzKTsKIAotICAgIGFkZFN0b3JhZ2VNYW5hZ2VyRm9yU2Vz
c2lvbihzZXNzaW9uSUQsIHBhcmFtZXRlcnMuZ2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnksIHBhcmFt
ZXRlcnMuZ2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnlIYW5kbGUsIHBhcmFtZXRlcnMubG9jYWxTdG9y
YWdlRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSk7CiAgICAgYWRkU2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXIoc2Vzc2lvbklELCBwYXJh
bWV0ZXJzLnBlck9yaWdpblN0b3JhZ2VRdW90YSwgcGFyYW1ldGVycy5wZXJUaGlyZFBhcnR5T3Jp
Z2luU3RvcmFnZVF1b3RhLCBwYXJhbWV0ZXJzLmNhY2hlU3RvcmFnZURpcmVjdG9yeSwgcGFyYW1l
dGVycy5jYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogCiAgICAgaWYgKGF1
dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CisgICAgICAgIHNlc3Np
b24tPmFkZFN0b3JhZ2VNYW5hZ2VyU2Vzc2lvbihwYXJhbWV0ZXJzLmdlbmVyYWxTdG9yYWdlRGly
ZWN0b3J5LCBwYXJhbWV0ZXJzLmdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5SGFuZGxlLCBwYXJhbWV0
ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeSwgcGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGUpOwogICAgICAgICBzZXNzaW9uLT5hZGRJbmRleGVkRGF0YWJhc2VT
ZXNzaW9uKHBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLmlu
ZGV4ZWREYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQogICAgICAgICBzZXNzaW9uLT5hZGRTZXJ2aWNlV29ya2VyU2Vzc2lvbihwYXJh
bWV0ZXJzLnNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQsIFdURk1v
dmUocGFyYW1ldGVycy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KSwgcGFyYW1l
dGVycy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsK
QEAgLTQ0MCwyMSArNDM4LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVtb3ZlU2Vzc2lvblN0
b3JhZ2VRdW90YU1hbmFnZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIG1fc2Vzc2lv
blN0b3JhZ2VRdW90YU1hbmFnZXJzLnJlbW92ZShzZXNzaW9uSUQpOwogfQogCi12b2lkIE5ldHdv
cmtQcm9jZXNzOjphZGRTdG9yYWdlTWFuYWdlckZvclNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBTdHJpbmcmIGdlbmVyYWxTdG9yYWdlUGF0aCwgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlJiBnZW5lcmFsU3RvcmFnZVBhdGhIYW5kbGUsIGNvbnN0IFN0cmluZyYgbG9jYWxT
dG9yYWdlUGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBsb2NhbFN0b3JhZ2VQYXRoSGFu
ZGxlKQotewotICAgIG1fc3RvcmFnZU1hbmFnZXJzLmVuc3VyZShzZXNzaW9uSUQsIFsmXSB7Ci0g
ICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShnZW5lcmFsU3RvcmFn
ZVBhdGhIYW5kbGUpOwotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50
bHkobG9jYWxTdG9yYWdlUGF0aEhhbmRsZSk7Ci0gICAgICAgIHJldHVybiBOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OmNyZWF0ZShzZXNzaW9uSUQsIGdlbmVyYWxTdG9yYWdlUGF0aCwgbG9jYWxTdG9y
YWdlUGF0aCk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlbW92ZVN0b3Jh
Z2VNYW5hZ2VyRm9yU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCi17Ci0gICAgaWYg
KGF1dG8gbWFuYWdlciA9IG1fc3RvcmFnZU1hbmFnZXJzLnRha2Uoc2Vzc2lvbklEKSkKLSAgICAg
ICAgbWFuYWdlci0+Y2xvc2UoKTsKLX0KLQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6Zm9yRWFjaE5l
dHdvcmtTZXNzaW9uKGNvbnN0IEZ1bmN0aW9uPHZvaWQoTmV0d29ya1Nlc3Npb24mKT4mIGZ1bmN0
b3IpCiB7CiAgICAgZm9yIChhdXRvJiBzZXNzaW9uIDogbV9uZXR3b3JrU2Vzc2lvbnMudmFsdWVz
KCkpCkBAIC01NTYsOCArNTM5LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVzdHJveVNlc3Np
b24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIG1fbmV0d29ya1N0b3JhZ2VTZXNzaW9u
cy5yZW1vdmUoc2Vzc2lvbklEKTsKICAgICBtX3Nlc3Npb25zQ29udHJvbGxlZEJ5QXV0b21hdGlv
bi5yZW1vdmUoc2Vzc2lvbklEKTsKICAgICBDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6ZGVzdHJveUVu
Z2luZSgqdGhpcywgc2Vzc2lvbklEKTsKLQotICAgIHJlbW92ZVN0b3JhZ2VNYW5hZ2VyRm9yU2Vz
c2lvbihzZXNzaW9uSUQpOwogfQogCiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BS
RVZFTlRJT04pCkBAIC0xMDQ0LDEyICsxMDI1LDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNs
ZWFyVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0
CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6Omhhc0xvY2FsU3RvcmFnZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgYXV0byBpdGVyYXRv
ciA9IG1fc3RvcmFnZU1hbmFnZXJzLmZpbmQoc2Vzc2lvbklEKTsKLSAgICBpZiAoaXRlcmF0b3Ig
PT0gbV9zdG9yYWdlTWFuYWdlcnMuZW5kKCkpCisgICAgYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtT
ZXNzaW9uKHNlc3Npb25JRCk7CisgICAgaWYgKCFzZXNzaW9uIHx8ICFzZXNzaW9uLT5zdG9yYWdl
TWFuYWdlcigpKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogCiAg
ICAgYXV0byB0eXBlcyA9IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHsgV2Vic2l0ZURhdGFU
eXBlOjpMb2NhbFN0b3JhZ2UgfTsKLSAgICBpdGVyYXRvci0+dmFsdWUtPmZldGNoRGF0YSh0eXBl
cywgW2RvbWFpbiwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oYXV0byBlbnRyaWVzKSBtdXRhYmxlIHsKKyAgICBzZXNzaW9uLT5zdG9yYWdlTWFuYWdlcigp
LT5mZXRjaERhdGEodHlwZXMsIFtkb21haW4sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKGF1dG8gZW50cmllcykgbXV0YWJsZSB7CiAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURjo6YW55T2YoZW50cmllcywgWyZkb21haW5dKGF1dG8mIGVudHJ5KSB7
CiAgICAgICAgICAgICByZXR1cm4gZG9tYWluLm1hdGNoZXMoZW50cnkub3JpZ2luKTsKICAgICAg
ICAgfSkpOwpAQCAtMTUxOCwxMiArMTQ5OSwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpmZXRj
aFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdAog
ICAgIH0KICNlbmRpZgogCi0gICAgaWYgKE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2FuSGFuZGxl
VHlwZXMod2Vic2l0ZURhdGFUeXBlcykpIHsKLSAgICAgICAgaWYgKGF1dG8gaXRlcmF0b3IgPSBt
X3N0b3JhZ2VNYW5hZ2Vycy5maW5kKHNlc3Npb25JRCk7IGl0ZXJhdG9yICE9IG1fc3RvcmFnZU1h
bmFnZXJzLmVuZCgpKSB7Ci0gICAgICAgICAgICBpdGVyYXRvci0+dmFsdWUtPmZldGNoRGF0YSh3
ZWJzaXRlRGF0YVR5cGVzLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXShhdXRvIGVudHJpZXMpIG11dGFi
bGUgewotICAgICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+bV93ZWJzaXRlRGF0YS5l
bnRyaWVzLmFwcGVuZFZlY3RvcihXVEZNb3ZlKGVudHJpZXMpKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICB9CisgICAgaWYgKE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2FuSGFuZGxlVHlwZXMo
d2Vic2l0ZURhdGFUeXBlcykgJiYgc2Vzc2lvbiAmJiBzZXNzaW9uLT5zdG9yYWdlTWFuYWdlcigp
KSB7CisgICAgICAgIHNlc3Npb24tPnN0b3JhZ2VNYW5hZ2VyKCktPmZldGNoRGF0YSh3ZWJzaXRl
RGF0YVR5cGVzLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXShhdXRvIGVudHJpZXMpIG11dGFibGUgewor
ICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5tX3dlYnNpdGVEYXRhLmVudHJpZXMuYXBw
ZW5kVmVjdG9yKFdURk1vdmUoZW50cmllcykpOworICAgICAgICB9KTsKICAgICB9CiB9CiAKQEAg
LTE1ODYsMTAgKzE1NjUsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0
YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaQogICAgICAgICBzZXNz
aW9uLT5jbGVhckFsdGVybmF0aXZlU2VydmljZXMobW9kaWZpZWRTaW5jZSk7CiAjZW5kaWYKIAot
ICAgIGlmIChOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNhbkhhbmRsZVR5cGVzKHdlYnNpdGVEYXRh
VHlwZXMpKSB7Ci0gICAgICAgIGlmIChhdXRvIGl0ZXJhdG9yID0gbV9zdG9yYWdlTWFuYWdlcnMu
ZmluZChzZXNzaW9uSUQpOyBpdGVyYXRvciAhPSBtX3N0b3JhZ2VNYW5hZ2Vycy5lbmQoKSkKLSAg
ICAgICAgICAgIGl0ZXJhdG9yLT52YWx1ZS0+ZGVsZXRlRGF0YU1vZGlmaWVkU2luY2Uod2Vic2l0
ZURhdGFUeXBlcywgbW9kaWZpZWRTaW5jZSwgW2NsZWFyVGFza3NIYW5kbGVyXSB7IH0pOwotICAg
IH0KKyAgICBpZiAoTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjYW5IYW5kbGVUeXBlcyh3ZWJzaXRl
RGF0YVR5cGVzKSAmJiBzZXNzaW9uICYmIHNlc3Npb24tPnN0b3JhZ2VNYW5hZ2VyKCkpCisgICAg
ICAgIHNlc3Npb24tPnN0b3JhZ2VNYW5hZ2VyKCktPmRlbGV0ZURhdGFNb2RpZmllZFNpbmNlKHdl
YnNpdGVEYXRhVHlwZXMsIG1vZGlmaWVkU2luY2UsIFtjbGVhclRhc2tzSGFuZGxlcl0geyB9KTsK
IH0KIAogc3RhdGljIHZvaWQgY2xlYXJEaXNrQ2FjaGVFbnRyaWVzKE5ldHdvcmtDYWNoZTo6Q2Fj
aGUqIGNhY2hlLCBjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTY4NCwxMCAr
MTY2MSw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lu
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvCiAgICAgfQogI2VuZGlmCiAKLSAgICBp
ZiAoTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjYW5IYW5kbGVUeXBlcyh3ZWJzaXRlRGF0YVR5cGVz
KSkgewotICAgICAgICBpZiAoYXV0byBpdGVyYXRvciA9IG1fc3RvcmFnZU1hbmFnZXJzLmZpbmQo
c2Vzc2lvbklEKTsgaXRlcmF0b3IgIT0gbV9zdG9yYWdlTWFuYWdlcnMuZW5kKCkpCi0gICAgICAg
ICAgICBpdGVyYXRvci0+dmFsdWUtPmRlbGV0ZURhdGEod2Vic2l0ZURhdGFUeXBlcywgb3JpZ2lu
RGF0YXMsIFtjbGVhclRhc2tzSGFuZGxlcl0geyB9KTsKLSAgICB9CisgICAgaWYgKE5ldHdvcmtT
dG9yYWdlTWFuYWdlcjo6Y2FuSGFuZGxlVHlwZXMod2Vic2l0ZURhdGFUeXBlcykgJiYgc2Vzc2lv
biAmJiBzZXNzaW9uLT5zdG9yYWdlTWFuYWdlcigpKQorICAgICAgICBzZXNzaW9uLT5zdG9yYWdl
TWFuYWdlcigpLT5kZWxldGVEYXRhKHdlYnNpdGVEYXRhVHlwZXMsIG9yaWdpbkRhdGFzLCBbY2xl
YXJUYXNrc0hhbmRsZXJdIHsgfSk7CiAKICAgICBpZiAoc2Vzc2lvbikgewogICAgICAgICBIYXNo
U2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zVG9EZWxldGVOZXR3b3JrRGF0
YUZvcjsKQEAgLTE4ODcsMTMgKzE4NjIsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRl
QW5kUmVzdHJpY3RXZWJzaXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhQQUw6OlNlc3MKICAg
ICAgICAgfSk7CiAgICAgfQogCi0gICAgaWYgKE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2FuSGFu
ZGxlVHlwZXMod2Vic2l0ZURhdGFUeXBlcykpIHsKLSAgICAgICAgaWYgKGF1dG8gaXRlcmF0b3Ig
PSBtX3N0b3JhZ2VNYW5hZ2Vycy5maW5kKHNlc3Npb25JRCk7IGl0ZXJhdG9yICE9IG1fc3RvcmFn
ZU1hbmFnZXJzLmVuZCgpKSB7Ci0gICAgICAgICAgICBpdGVyYXRvci0+dmFsdWUtPmRlbGV0ZURh
dGFGb3JSZWdpc3RyYWJsZURvbWFpbnMod2Vic2l0ZURhdGFUeXBlcywgZG9tYWluc1RvRGVsZXRl
QWxsTm9uQ29va2llV2Vic2l0ZURhdGFGb3IsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdKGF1dG8mJiBk
ZWxldGVkRG9tYWlucykgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgZm9yIChhdXRvIGRvbWFp
biA6IGRlbGV0ZWREb21haW5zKQotICAgICAgICAgICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0
b3ItPm1fZG9tYWlucy5hZGQoV1RGTW92ZShkb21haW4pKTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9CisgICAgaWYgKE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2FuSGFuZGxlVHlwZXMod2Vi
c2l0ZURhdGFUeXBlcykgJiYgc2Vzc2lvbiAmJiBzZXNzaW9uLT5zdG9yYWdlTWFuYWdlcigpKSB7
CisgICAgICAgIHNlc3Npb24tPnN0b3JhZ2VNYW5hZ2VyKCktPmRlbGV0ZURhdGFGb3JSZWdpc3Ry
YWJsZURvbWFpbnMod2Vic2l0ZURhdGFUeXBlcywgZG9tYWluc1RvRGVsZXRlQWxsTm9uQ29va2ll
V2Vic2l0ZURhdGFGb3IsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdKGF1dG8mJiBkZWxldGVkRG9tYWlu
cykgbXV0YWJsZSB7CisgICAgICAgICAgICBmb3IgKGF1dG8gZG9tYWluIDogZGVsZXRlZERvbWFp
bnMpCisgICAgICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5tX2RvbWFpbnMuYWRkKFdU
Rk1vdmUoZG9tYWluKSk7CisgICAgICAgIH0pOwogICAgIH0KIAogICAgIGF1dG8gZGF0YVR5cGVz
Rm9yVUlQcm9jZXNzID0gV2Vic2l0ZURhdGE6OmZpbHRlcih3ZWJzaXRlRGF0YVR5cGVzLCBXZWJz
aXRlRGF0YVByb2Nlc3NUeXBlOjpVSSk7CkBAIC0yMDEzLDggKzE5ODYsOCBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpyZWdpc3RyYWJsZURvbWFpbnNXaXRoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELAogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBpZiAoYXV0byBpdGVyYXRv
ciA9IG1fc3RvcmFnZU1hbmFnZXJzLmZpbmQoc2Vzc2lvbklEKTsgaXRlcmF0b3IgIT0gbV9zdG9y
YWdlTWFuYWdlcnMuZW5kKCkpIHsKLSAgICAgICAgaXRlcmF0b3ItPnZhbHVlLT5mZXRjaERhdGEo
d2Vic2l0ZURhdGFUeXBlcywgW2NhbGxiYWNrQWdncmVnYXRvcl0oYXV0byBlbnRyaWVzKSBtdXRh
YmxlIHsKKyAgICBpZiAoc2Vzc2lvbiAmJiBzZXNzaW9uLT5zdG9yYWdlTWFuYWdlcigpKSB7Cisg
ICAgICAgIHNlc3Npb24tPnN0b3JhZ2VNYW5hZ2VyKCktPmZldGNoRGF0YSh3ZWJzaXRlRGF0YVR5
cGVzLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXShhdXRvIGVudHJpZXMpIG11dGFibGUgewogICAgICAg
ICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5tX3dlYnNpdGVEYXRhLmVudHJpZXMuYXBwZW5kVmVj
dG9yKFdURk1vdmUoZW50cmllcykpOwogICAgICAgICB9KTsKICAgICB9CkBAIC0yMjIwLDEzICsy
MTkzLDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1
c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiAgICAgICAgIGlmIChhdXRvKiBzd1Nl
cnZlciA9IHNlc3Npb24uc3dTZXJ2ZXIoKSkKICAgICAgICAgICAgIHN3U2VydmVyLT5zdGFydFN1
c3BlbnNpb24oW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKICNlbmRpZgorICAgICAgICBpZiAo
YXV0byogc3RvcmFnZU1hbmFnZXIgPSBzZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCkpCisgICAgICAg
ICAgICBzdG9yYWdlTWFuYWdlci0+c3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwog
ICAgIH0pOwogCiAgICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93ZWJQcm9jZXNzQ29ubmVj
dGlvbnMudmFsdWVzKCkpCiAgICAgICAgIGNvbm5lY3Rpb24tPmNsZWFudXBGb3JTdXNwZW5zaW9u
KFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7Ci0KLSAgICBmb3IgKGF1dG8mIG1hbmFnZXIgOiBt
X3N0b3JhZ2VNYW5hZ2Vycy52YWx1ZXMoKSkKLSAgICAgICAgbWFuYWdlci0+c3VzcGVuZChbY2Fs
bGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjphcHBsaWNh
dGlvbkRpZEVudGVyQmFja2dyb3VuZCgpCkBAIC0yMjU1LDIyICsyMjI3LDIyIEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnJlc3VtZSgpCiAjZW5kaWYKICAgICBQQ006OlN0b3JlOjpwcm9jZXNzRGlk
UmVzdW1lKCk7CiAKKyAgICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oW10oYXV0byYgc2Vzc2lvbikg
ewogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBmb3JFYWNoTmV0d29ya1Nlc3Npb24o
W10gKGF1dG8mIHNlc3Npb24pIHsKLSAgICAgICAgaWYgKGF1dG8gc3dTZXJ2ZXIgPSBzZXNzaW9u
LnN3U2VydmVyKCkpCisgICAgICAgIGlmIChhdXRvKiBzd1NlcnZlciA9IHNlc3Npb24uc3dTZXJ2
ZXIoKSkKICAgICAgICAgICAgIHN3U2VydmVyLT5lbmRTdXNwZW5zaW9uKCk7Ci0gICAgfSk7CiAj
ZW5kaWYKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGZvckVhY2hOZXR3b3JrU2Vzc2lv
bihbXShhdXRvJiBzZXNzaW9uKSB7CiAgICAgICAgIGlmIChhdXRvKiBzZXJ2ZXIgPSBzZXNzaW9u
LndlYklEQlNlcnZlcigpKQogICAgICAgICAgICAgc2VydmVyLT5yZXN1bWUoKTsKKyNlbmRpZgor
ICAgICAgICBpZiAoYXV0byogbWFuYWdlciA9IHNlc3Npb24uc3RvcmFnZU1hbmFnZXIoKSkKKyAg
ICAgICAgICAgIG1hbmFnZXItPnJlc3VtZSgpOwogICAgIH0pOworCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICBtX3Nob3VsZFN1c3BlbmRJREJTZXJ2ZXJzID0gZmFsc2U7CiAjZW5kaWYK
LQotICAgIGZvciAoYXV0byYgbWFuYWdlciA6IG1fc3RvcmFnZU1hbmFnZXJzLnZhbHVlcygpKQot
ICAgICAgICBtYW5hZ2VyLT5yZXN1bWUoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJl
ZmV0Y2hETlMoY29uc3QgU3RyaW5nJiBob3N0bmFtZSkKQEAgLTIzMzAsOCArMjMwMiwxMCBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlcklEQlJvb3RQ
YXRoKFBBTDo6U2Vzc2lvbklEIHNlcwogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c3luY0xvY2FsU3Rv
cmFnZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgYXV0byBhZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwotICAgIGZvciAoYXV0byYgbWFuYWdlciA6IG1fc3RvcmFnZU1h
bmFnZXJzLnZhbHVlcygpKQotICAgICAgICBtYW5hZ2VyLT5zeW5jTG9jYWxTdG9yYWdlKFthZ2dy
ZWdhdG9yXSB7IH0pOworICAgIGZvckVhY2hOZXR3b3JrU2Vzc2lvbihbJl0oYXV0byYgc2Vzc2lv
bikgeworICAgICAgICBpZiAoYXV0byogbWFuYWdlciA9IHNlc3Npb24uc3RvcmFnZU1hbmFnZXIo
KSkKKyAgICAgICAgICAgIG1hbmFnZXItPnN5bmNMb2NhbFN0b3JhZ2UoW2FnZ3JlZ2F0b3JdIHsg
fSk7CisgICAgfSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlc2V0UXVvdGEoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCkBAIC0yMzQ2LDcgKzIzMjAsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpyZXNl
dFF1b3RhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZAog
CiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhclN0b3JhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0g
ICAgaWYgKGF1dG8gbWFuYWdlciA9IG1fc3RvcmFnZU1hbmFnZXJzLmdldChzZXNzaW9uSUQpKQor
ICAgIGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpOworICAgIGlmIChh
dXRvKiBtYW5hZ2VyID0gc2Vzc2lvbiA/IHNlc3Npb24tPnN0b3JhZ2VNYW5hZ2VyKCkgOiBudWxs
cHRyKQogICAgICAgICBtYW5hZ2VyLT5jbGVhclN0b3JhZ2VGb3JUZXN0aW5nKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKICAgICBlbHNlCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
CkBAIC0yMzYxLDEzICsyMzM2LDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlbmFtZU9yaWdp
bkluV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVCiAgICAgaWYg
KG9sZE9yaWdpbi5pc0VtcHR5KCkgfHwgbmV3T3JpZ2luLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgaWYgKGF1dG8gaXRlcmF0b3IgPSBtX3N0b3JhZ2VNYW5hZ2Vycy5maW5kKHNl
c3Npb25JRCk7IGl0ZXJhdG9yICE9IG1fc3RvcmFnZU1hbmFnZXJzLmVuZCgpKQotICAgICAgICBp
dGVyYXRvci0+dmFsdWUtPm1vdmVEYXRhKG9sZE9yaWdpbiwgbmV3T3JpZ2luLCBbYWdncmVnYXRv
cl0geyB9KTsKKyAgICBhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsK
KyAgICBpZiAoYXV0byogbWFuYWdlciA9IHNlc3Npb24gPyBzZXNzaW9uLT5zdG9yYWdlTWFuYWdl
cigpIDogbnVsbHB0cikKKyAgICAgICAgbWFuYWdlci0+bW92ZURhdGEob2xkT3JpZ2luLCBuZXdP
cmlnaW4sIFthZ2dyZWdhdG9yXSB7IH0pOwogCi0gICAgaWYgKGRhdGFUeXBlcy5jb250YWlucyhX
ZWJzaXRlRGF0YVR5cGU6OkluZGV4ZWREQkRhdGFiYXNlcykpIHsKLSAgICAgICAgaWYgKGF1dG8q
IHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpOyBzZXNzaW9uICYmIHNlc3Npb24t
Pmhhc0lEQkRhdGFiYXNlUGF0aCgpKQotICAgICAgICAgICAgc2Vzc2lvbi0+ZW5zdXJlV2ViSURC
U2VydmVyKCkucmVuYW1lT3JpZ2luKG9sZE9yaWdpbiwgbmV3T3JpZ2luLCBbYWdncmVnYXRvcl0g
eyB9KTsKLSAgICB9CisgICAgaWYgKGRhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6
OkluZGV4ZWREQkRhdGFiYXNlcykgJiYgc2Vzc2lvbiAmJiBzZXNzaW9uLT5oYXNJREJEYXRhYmFz
ZVBhdGgoKSkKKyAgICAgICAgc2Vzc2lvbi0+ZW5zdXJlV2ViSURCU2VydmVyKCkucmVuYW1lT3Jp
Z2luKG9sZE9yaWdpbiwgbmV3T3JpZ2luLCBbYWdncmVnYXRvcl0geyB9KTsKIH0KIAogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKQEAgLTI1OTIsMTAgKzI1NjYsOSBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpjb25uZWN0aW9uVG9XZWJQcm9jZXNzQ2xvc2VkKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgUAogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKSkgewogICAgICAgICBpZiAoYXV0byogc2VydmVyID0gc2Vzc2lvbi0+d2ViSURCU2VydmVy
KCkpCiAgICAgICAgICAgICBzZXJ2ZXItPnJlbW92ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7Cisg
ICAgICAgIGlmIChhdXRvKiBtYW5hZ2VyID0gc2Vzc2lvbi0+c3RvcmFnZU1hbmFnZXIoKSkKKyAg
ICAgICAgICAgIG1hbmFnZXItPnN0b3BSZWNlaXZpbmdNZXNzYWdlRnJvbUNvbm5lY3Rpb24oY29u
bmVjdGlvbik7CiAgICAgfQotCi0gICAgaWYgKGF1dG8gbWFuYWdlciA9IG1fc3RvcmFnZU1hbmFn
ZXJzLmdldChzZXNzaW9uSUQpKQotICAgICAgICBtYW5hZ2VyLT5zdG9wUmVjZWl2aW5nTWVzc2Fn
ZUZyb21Db25uZWN0aW9uKGNvbm5lY3Rpb24pOwogfQogCiBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyogTmV0d29ya1Byb2Nlc3M6OndlYlByb2Nlc3NDb25uZWN0aW9uKFByb2Nlc3NJZGVu
dGlmaWVyIGlkZW50aWZpZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKaW5kZXggNGI1Mjk5NzcwYjIwMGViMjY2YTUzYmIxYWI1ZWU1M2Vl
ZDJhNGIyYS4uODI4MWU1YzkxNmUwMGE5Y2ZjNmZkMDBkZTlhYWNiMGJmOTc0MDI5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTAyLDcg
KzEwMiw2IEBAIGNsYXNzIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogY2xhc3MgTmV0
d29ya1Byb2Nlc3NTdXBwbGVtZW50OwogY2xhc3MgTmV0d29ya1Byb3hpbWl0eU1hbmFnZXI7CiBj
bGFzcyBOZXR3b3JrUmVzb3VyY2VMb2FkZXI7Ci1jbGFzcyBOZXR3b3JrU3RvcmFnZU1hbmFnZXI7
CiBjbGFzcyBQcm9jZXNzQXNzZXJ0aW9uOwogY2xhc3MgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJz
OwogZW51bSBjbGFzcyBDYWxsRG93bmxvYWREaWRTdGFydCA6IGJvb2w7CkBAIC01MjAsOSArNTE5
LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZFNlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2VyKFBB
TDo6U2Vzc2lvbklELCB1aW50NjRfdCBkZWZhdWx0UXVvdGEsIHVpbnQ2NF90IGRlZmF1bHRUaGly
ZFBhcnR5UXVvdGEsIGNvbnN0IFN0cmluZyYgY2FjaGVSb290UGF0aCwgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlJik7CiAgICAgdm9pZCByZW1vdmVTZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlcihQ
QUw6OlNlc3Npb25JRCk7CiAKLSAgICB2b2lkIGFkZFN0b3JhZ2VNYW5hZ2VyRm9yU2Vzc2lvbihQ
QUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBwYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmLCBjb25zdCBTdHJpbmcmIGxvY2FsU3RvcmFnZVBhdGgsIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSYpOwotICAgIHZvaWQgcmVtb3ZlU3RvcmFnZU1hbmFnZXJGb3JTZXNzaW9uKFBBTDo6U2Vz
c2lvbklEKTsKLQogICAgIC8vIENvbm5lY3Rpb25zIHRvIFdlYlByb2Nlc3Nlcy4KICAgICBIYXNo
TWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBSZWY8TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M+PiBtX3dlYlByb2Nlc3NDb25uZWN0aW9uczsKIApAQCAtNTgyLDggKzU3OCw2IEBA
IHByaXZhdGU6CiAKICAgICBib29sIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkIHsg
dHJ1ZSB9OwogICAgIGJvb2wgbV9mdHBFbmFibGVkIHsgZmFsc2UgfTsKLQotICAgIEhhc2hNYXA8
UEFMOjpTZXNzaW9uSUQsIFJlZjxOZXR3b3JrU3RvcmFnZU1hbmFnZXI+PiBtX3N0b3JhZ2VNYW5h
Z2VyczsgLy8gRklYTUU6IFNob3VsZCBtb3ZlIHRvIE5ldHdvcmtTZXNzaW9uLgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uY3BwCmluZGV4IDIzYzg2MmU3MTFkZGE1YWVmYzA1NjZhZGNhOWViZjM0NjA4
NDkxZTMuLmE1YTI0ZTM1OTJmMWVkYjNhYWJiNTBkNjY0Nzg1ZDkxN2UzNjJiZjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCIKICNp
bmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlTWFuYWdlci5o
IgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiUGluZ0xvYWQuaCIKICNpbmNsdWRlICJQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dENsaWVudEltcGwuaCIKQEAgLTIwMSw2ICsyMDIsOCBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpp
bnZhbGlkYXRlQW5kQ2FuY2VsKCkKICNlbmRpZgogICAgIGlmIChhdXRvIHNlcnZlciA9IHN0ZDo6
ZXhjaGFuZ2UobV93ZWJJREJTZXJ2ZXIsIG51bGxwdHIpKQogICAgICAgICBzZXJ2ZXItPmNsb3Nl
KCk7CisgICAgaWYgKGF1dG8gbWFuYWdlciA9IHN0ZDo6ZXhjaGFuZ2UobV9zdG9yYWdlTWFuYWdl
ciwgbnVsbHB0cikpCisgICAgICAgIG1hbmFnZXItPmNsb3NlKCk7CiAjaWYgQVNTRVJUX0VOQUJM
RUQKICAgICBtX2lzSW52YWxpZGF0ZWQgPSB0cnVlOwogI2VuZGlmCkBAIC01NjAsNiArNTYzLDgg
QEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6bG93TWVtb3J5SGFuZGxlcihDcml0aWNhbCkKICAgICBp
ZiAobV9zd1NlcnZlcikKICAgICAgICAgbV9zd1NlcnZlci0+aGFuZGxlTG93TWVtb3J5V2Fybmlu
ZygpOwogI2VuZGlmCisgICAgaWYgKG1fc3RvcmFnZU1hbmFnZXIpCisgICAgICAgIG1fc3RvcmFn
ZU1hbmFnZXItPmhhbmRsZUxvd01lbW9yeVdhcm5pbmcoKTsKIH0KIAogI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKQEAgLTY4NCw0ICs2ODksMTQgQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6YWRk
SW5kZXhlZERhdGFiYXNlU2Vzc2lvbihjb25zdCBTdHJpbmcmIGluZGV4ZWREYXRhYmFzZURpcmUK
ICAgICB9CiB9CiAKK3ZvaWQgTmV0d29ya1Nlc3Npb246OmFkZFN0b3JhZ2VNYW5hZ2VyU2Vzc2lv
bihjb25zdCBTdHJpbmcmIGdlbmVyYWxTdG9yYWdlUGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlJiBnZW5lcmFsU3RvcmFnZVBhdGhIYW5kbGUsIGNvbnN0IFN0cmluZyYgbG9jYWxTdG9yYWdl
UGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBsb2NhbFN0b3JhZ2VQYXRoSGFuZGxlKQor
eworICAgIGlmIChtX3N0b3JhZ2VNYW5hZ2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoZ2VuZXJhbFN0b3JhZ2VQYXRoSGFuZGxl
KTsKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkobG9jYWxTdG9yYWdl
UGF0aEhhbmRsZSk7CisgICAgbV9zdG9yYWdlTWFuYWdlciA9IE5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6Y3JlYXRlKHNlc3Npb25JRCgpLCBnZW5lcmFsU3RvcmFnZVBhdGgsIGxvY2FsU3RvcmFnZVBh
dGgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAppbmRleCA1MWE3ZWQzZmM5MDljODg4NTE4ZDhhYmZl
NDc2ZTJlNGVjNWQ3NDExLi5iOTYyZjM5YzNlNWRjZmJlNjA1YjhiMTI4YzIxZjhhYzBkZDNjZDI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBA
IC02NywxMiArNjcsMTMgQEAgZW51bSBjbGFzcyBDcml0aWNhbCA6IGJvb2w7CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCitjbGFzcyBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OwogY2xh
c3MgTmV0d29ya0RhdGFUYXNrOwogY2xhc3MgTmV0d29ya0xvYWRTY2hlZHVsZXI7CiBjbGFzcyBO
ZXR3b3JrUHJvY2VzczsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjsKLWNsYXNzIE5ldHdv
cmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk7CiBjbGFzcyBOZXR3b3JrU29ja2V0Q2hhbm5lbDsK
K2NsYXNzIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjsKIGNsYXNzIFNlcnZpY2VXb3JrZXJGZXRjaFRh
c2s7CiBjbGFzcyBXZWJJREJTZXJ2ZXI7CiBjbGFzcyBXZWJQYWdlTmV0d29ya1BhcmFtZXRlcnM7
CkBAIC0yMTAsNiArMjExLDkgQEAgcHVibGljOgogICAgIHZvaWQgYWRkSW5kZXhlZERhdGFiYXNl
U2Vzc2lvbihjb25zdCBTdHJpbmcmIGluZGV4ZWREYXRhYmFzZURpcmVjdG9yeSwgU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlJik7CiAgICAgYm9vbCBoYXNJREJEYXRhYmFzZVBhdGgoKSBjb25zdCB7
IHJldHVybiAhbV9pZGJEYXRhYmFzZVBhdGguaXNFbXB0eSgpOyB9CiAKKyAgICBOZXR3b3JrU3Rv
cmFnZU1hbmFnZXIqIHN0b3JhZ2VNYW5hZ2VyKCkgeyByZXR1cm4gbV9zdG9yYWdlTWFuYWdlci5n
ZXQoKTsgfQorICAgIHZvaWQgYWRkU3RvcmFnZU1hbmFnZXJTZXNzaW9uKGNvbnN0IFN0cmluZyYg
Z2VuZXJhbFN0b3JhZ2VQYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIGdlbmVyYWxTdG9y
YWdlUGF0aEhhbmRsZSwgY29uc3QgU3RyaW5nJiBsb2NhbFN0b3JhZ2VQYXRoLCBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUmIGxvY2FsU3RvcmFnZVBhdGhIYW5kbGUpOworCiAgICAgTmV0d29ya0xv
YWRTY2hlZHVsZXImIG5ldHdvcmtMb2FkU2NoZWR1bGVyKCk7CiAgICAgUENNOjpNYW5hZ2VySW50
ZXJmYWNlJiBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpIHsgcmV0dXJuIG1fcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQuZ2V0KCk7IH0KICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50
RGVidWdNb2RlKGJvb2wpOwpAQCAtMzA1LDYgKzMwOSw4IEBAIHByb3RlY3RlZDoKICAgICBTdHJp
bmcgbV9pZGJEYXRhYmFzZVBhdGg7CiAgICAgUmVmUHRyPFdlYklEQlNlcnZlcj4gbV93ZWJJREJT
ZXJ2ZXI7CiAKKyAgICBSZWZQdHI8TmV0d29ya1N0b3JhZ2VNYW5hZ2VyPiBtX3N0b3JhZ2VNYW5h
Z2VyOworCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgQXBwUHJpdmFjeVJlcG9ydFRlc3RpbmdE
YXRhIG1fYXBwUHJpdmFjeVJlcG9ydFRlc3RpbmdEYXRhOwogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>