<?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>200550</bug_id>
          
          <creation_ts>2019-08-08 15:41:21 -0700</creation_ts>
          <short_desc>Add threading assertions to WebStorage code</short_desc>
          <delta_ts>2019-08-08 17:11:31 -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>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>
          
          
          <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>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1559686</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-08 15:41:21 -0700</bug_when>
    <thetext>Add threading assertions to WebStorage code for extra safety.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559687</commentid>
    <comment_count>1</comment_count>
      <attachid>375847</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-08 15:42:03 -0700</bug_when>
    <thetext>Created attachment 375847
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559716</commentid>
    <comment_count>2</comment_count>
      <attachid>375847</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-08-08 16:30:54 -0700</bug_when>
    <thetext>Comment on attachment 375847
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559736</commentid>
    <comment_count>3</comment_count>
      <attachid>375847</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-08 17:08:13 -0700</bug_when>
    <thetext>Comment on attachment 375847
Patch

Clearing flags on attachment: 375847

Committed r248452: &lt;https://trac.webkit.org/changeset/248452&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559737</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-08 17:08:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559739</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-08 17:11:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/54103619&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375847</attachid>
            <date>2019-08-08 15:42:03 -0700</date>
            <delta_ts>2019-08-08 17:08:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200550-20190808154202.patch</filename>
            <type>text/plain</type>
            <size>25493</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NDQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYzZjY2YWY1ZjNlNzZlMmM2
YTQxYjBjOTEzMjcwYWJmNGFlNTZhZDguLjBiYjM0ZWU2OTdkYmRkN2EwODdiOWQzOTJmMzViZDIz
NWEwNDJkNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMTktMDgtMDggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgdGhyZWFkaW5nIGFzc2VydGlv
bnMgdG8gV2ViU3RvcmFnZSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDA1NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgdGhyZWFkaW5nIGFzc2VydGlvbnMgdG8gV2ViU3RvcmFnZSBjb2Rl
IGZvciBleHRyYSBzYWZldHkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdl
L0xvY2FsU3RvcmFnZU5hbWVzcGFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxvY2FsU3RvcmFn
ZU5hbWVzcGFjZTo6TG9jYWxTdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAgKFdlYktpdDo6TG9j
YWxTdG9yYWdlTmFtZXNwYWNlOjp+TG9jYWxTdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAgKFdl
YktpdDo6TG9jYWxTdG9yYWdlTmFtZXNwYWNlOjpnZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKToKKyAg
ICAgICAgKFdlYktpdDo6TG9jYWxTdG9yYWdlTmFtZXNwYWNlOjpjbGVhclN0b3JhZ2VBcmVhc01h
dGNoaW5nT3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxTdG9yYWdlTmFtZXNwYWNlOjpj
bGVhckFsbFN0b3JhZ2VBcmVhcyk6CisgICAgICAgIChXZWJLaXQ6OkxvY2FsU3RvcmFnZU5hbWVz
cGFjZTo6ZXBoZW1lcmFsT3JpZ2lucyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkxvY2FsU3Rv
cmFnZU5hbWVzcGFjZTo6Y2xvbmVUbyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvV2ViU3Rv
cmFnZS9TZXNzaW9uU3RvcmFnZU5hbWVzcGFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNlc3Np
b25TdG9yYWdlTmFtZXNwYWNlOjpTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSk6CisgICAgICAgIChX
ZWJLaXQ6OlNlc3Npb25TdG9yYWdlTmFtZXNwYWNlOjp+U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2Up
OgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZTo6YWRkQWxsb3dlZENv
bm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZTo6cmVt
b3ZlQWxsb3dlZENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9uU3RvcmFnZU5h
bWVzcGFjZTo6Z2V0T3JDcmVhdGVTdG9yYWdlQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OlNlc3Np
b25TdG9yYWdlTmFtZXNwYWNlOjpjbG9uZVRvKToKKyAgICAgICAgKFdlYktpdDo6U2Vzc2lvblN0
b3JhZ2VOYW1lc3BhY2U6Om9yaWdpbnMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9u
U3RvcmFnZU5hbWVzcGFjZTo6Y2xlYXJTdG9yYWdlQXJlYXNNYXRjaGluZ09yaWdpbik6CisgICAg
ICAgIChXZWJLaXQ6OlNlc3Npb25TdG9yYWdlTmFtZXNwYWNlOjpjbGVhckFsbFN0b3JhZ2VBcmVh
cyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhOjpTdG9yYWdlQXJlYSk6CisgICAgICAgIChX
ZWJLaXQ6OlN0b3JhZ2VBcmVhOjp+U3RvcmFnZUFyZWEpOgorICAgICAgICAoV2ViS2l0OjpTdG9y
YWdlQXJlYTo6YWRkTGlzdGVuZXIpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYTo6cmVt
b3ZlTGlzdGVuZXIpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYTo6aGFzTGlzdGVuZXIg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYTo6Y2xvbmUgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYTo6c2V0SXRlbSk6CisgICAgICAgIChXZWJLaXQ6OlN0
b3JhZ2VBcmVhOjpzZXRJdGVtcyk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhOjpyZW1v
dmVJdGVtKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWE6OmNsZWFyKToKKyAgICAgICAg
KFdlYktpdDo6U3RvcmFnZUFyZWE6Oml0ZW1zIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3Rv
cmFnZUFyZWE6Om9wZW5EYXRhYmFzZUFuZEltcG9ydEl0ZW1zSWZOZWVkZWQgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYTo6ZGlzcGF0Y2hFdmVudHMgY29uc3QpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2Up
OgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6ZGVzdHJveVNlc3Npb25TdG9yYWdl
TmFtZXNwYWNlKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OmFkZEFsbG93ZWRT
ZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpTdG9y
YWdlTWFuYWdlcjo6cmVtb3ZlQWxsb3dlZFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlQ29ubmVjdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpjbG9uZVNlc3Npb25TdG9yYWdl
TmFtZXNwYWNlKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OnByb2Nlc3NEaWRD
bG9zZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6Z2V0U2Vz
c2lvblN0b3JhZ2VPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OmRl
bGV0ZVNlc3Npb25TdG9yYWdlT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5h
Z2VyOjpkZWxldGVTZXNzaW9uU3RvcmFnZUVudHJpZXNGb3JPcmlnaW5zKToKKyAgICAgICAgKFdl
YktpdDo6U3RvcmFnZU1hbmFnZXI6OmdldExvY2FsU3RvcmFnZU9yaWdpbnMpOgorICAgICAgICAo
V2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6Z2V0TG9jYWxTdG9yYWdlT3JpZ2luRGV0YWlscyk6Cisg
ICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VNYW5hZ2VyOjpkZWxldGVMb2NhbFN0b3JhZ2VFbnRyaWVz
Rm9yT3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6OmRlbGV0ZUxvY2Fs
U3RvcmFnZU9yaWdpbnNNb2RpZmllZFNpbmNlKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1h
bmFnZXI6OmRlbGV0ZUxvY2FsU3RvcmFnZUVudHJpZXNGb3JPcmlnaW5zKToKKyAgICAgICAgKFdl
YktpdDo6U3RvcmFnZU1hbmFnZXI6OndhaXRVbnRpbFRhc2tzRmluaXNoZWQpOgorICAgICAgICAo
V2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6c3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OlN0b3Jh
Z2VNYW5hZ2VyOjpyZXN1bWUpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTWFuYWdlcjo6Zmlu
ZFN0b3JhZ2VBcmVhIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZU1hbmFnZXI6Omdl
dE9yQ3JlYXRlTG9jYWxTdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFn
ZU1hbmFnZXI6OmdldE9yQ3JlYXRlVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1RyYW5zaWVudExvY2FsU3RvcmFnZU5h
bWVzcGFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVz
cGFjZTo6VHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlKToKKyAgICAgICAgKFdlYktpdDo6
VHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlOjp+VHJhbnNpZW50TG9jYWxTdG9yYWdlTmFt
ZXNwYWNlKToKKyAgICAgICAgKFdlYktpdDo6VHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNl
OjpnZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKToKKyAgICAgICAgKFdlYktpdDo6VHJhbnNpZW50TG9j
YWxTdG9yYWdlTmFtZXNwYWNlOjpvcmlnaW5zIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VHJh
bnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlOjpjbGVhclN0b3JhZ2VBcmVhc01hdGNoaW5nT3Jp
Z2luKToKKyAgICAgICAgKFdlYktpdDo6VHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlOjpj
bGVhckFsbFN0b3JhZ2VBcmVhcyk6CisKIDIwMTktMDgtMDggIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW0ZUV10gR2V0IFdlYktpdCwgV2ViS2l0MiwgYW5k
IE1pbmlCcm93c2VyIGJ1aWxkaW5nIGFuZCBleGVjdXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VOYW1lc3BhY2UuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZU5h
bWVzcGFjZS5jcHAKaW5kZXggZDBmNWQ3YWZjNmRjODhmZjJhOWFlMDE4NDZkY2MxMWNlODE0OTI3
Yi4uNTRkYzc5OTQyOGNkYThiMzA3MDY1ZDlhN2Q2N2U3MGIzODJiYjQ0MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZU5hbWVz
cGFjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xv
Y2FsU3RvcmFnZU5hbWVzcGFjZS5jcHAKQEAgLTM5LDE0ICszOSwxNyBAQCBMb2NhbFN0b3JhZ2VO
YW1lc3BhY2U6OkxvY2FsU3RvcmFnZU5hbWVzcGFjZShTdG9yYWdlTWFuYWdlciYgc3RvcmFnZU1h
bmFnZXIsIHVpbgogICAgIDogbV9zdG9yYWdlTWFuYWdlcihzdG9yYWdlTWFuYWdlcikKICAgICAs
IG1fcXVvdGFJbkJ5dGVzKFN0b3JhZ2VNYW5hZ2VyOjpsb2NhbFN0b3JhZ2VEYXRhYmFzZVF1b3Rh
SW5CeXRlcykKIHsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIH0KIAogTG9jYWxT
dG9yYWdlTmFtZXNwYWNlOjp+TG9jYWxTdG9yYWdlTmFtZXNwYWNlKCkKIHsKKyAgICBBU1NFUlQo
IVJ1bkxvb3A6OmlzTWFpbigpKTsKIH0KIAogYXV0byBMb2NhbFN0b3JhZ2VOYW1lc3BhY2U6Omdl
dE9yQ3JlYXRlU3RvcmFnZUFyZWEoU2VjdXJpdHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4s
IElzRXBoZW1lcmFsIGlzRXBoZW1lcmFsKSAtPiBSZWY8U3RvcmFnZUFyZWE+CiB7CisgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgcmV0dXJuICptX3N0b3JhZ2VBcmVhTWFwLmVu
c3VyZShzZWN1cml0eU9yaWdpbiwgWyZdKCkgbXV0YWJsZSB7CiAgICAgICAgIHJldHVybiBTdG9y
YWdlQXJlYTo6Y3JlYXRlKGlzRXBoZW1lcmFsID09IElzRXBoZW1lcmFsOjpZZXMgPyBudWxscHRy
IDogdGhpcywgV1RGTW92ZShzZWN1cml0eU9yaWdpbiksIG1fcXVvdGFJbkJ5dGVzKTsKICAgICB9
KS5pdGVyYXRvci0+dmFsdWU7CkBAIC01NCw2ICs1Nyw3IEBAIGF1dG8gTG9jYWxTdG9yYWdlTmFt
ZXNwYWNlOjpnZXRPckNyZWF0ZVN0b3JhZ2VBcmVhKFNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3Vy
aXR5CiAKIHZvaWQgTG9jYWxTdG9yYWdlTmFtZXNwYWNlOjpjbGVhclN0b3JhZ2VBcmVhc01hdGNo
aW5nT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4pCiB7Cisg
ICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgYXV0byBvcmlnaW5BbmRTdG9yYWdl
QXJlYSA9IG1fc3RvcmFnZUFyZWFNYXAuZmluZChzZWN1cml0eU9yaWdpbik7CiAgICAgaWYgKG9y
aWdpbkFuZFN0b3JhZ2VBcmVhICE9IG1fc3RvcmFnZUFyZWFNYXAuZW5kKCkpCiAgICAgICAgIG9y
aWdpbkFuZFN0b3JhZ2VBcmVhLT52YWx1ZS0+Y2xlYXIoKTsKQEAgLTYxLDEyICs2NSwxNCBAQCB2
b2lkIExvY2FsU3RvcmFnZU5hbWVzcGFjZTo6Y2xlYXJTdG9yYWdlQXJlYXNNYXRjaGluZ09yaWdp
bihjb25zdCBTZWN1cml0eU9yaWdpbgogCiB2b2lkIExvY2FsU3RvcmFnZU5hbWVzcGFjZTo6Y2xl
YXJBbGxTdG9yYWdlQXJlYXMoKQogeworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwog
ICAgIGZvciAoYXV0byBzdG9yYWdlQXJlYSA6IG1fc3RvcmFnZUFyZWFNYXAudmFsdWVzKCkpCiAg
ICAgICAgIHN0b3JhZ2VBcmVhLT5jbGVhcigpOwogfQogCiBWZWN0b3I8U2VjdXJpdHlPcmlnaW5E
YXRhPiBMb2NhbFN0b3JhZ2VOYW1lc3BhY2U6OmVwaGVtZXJhbE9yaWdpbnMoKSBjb25zdAogewor
ICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIFZlY3RvcjxTZWN1cml0eU9yaWdp
bkRhdGE+IG9yaWdpbnM7CiAgICAgZm9yIChjb25zdCBhdXRvJiBzdG9yYWdlQXJlYSA6IG1fc3Rv
cmFnZUFyZWFNYXAudmFsdWVzKCkpIHsKICAgICAgICAgaWYgKCFzdG9yYWdlQXJlYS0+aXRlbXMo
KS5pc0VtcHR5KCkpCkBAIC03Nyw2ICs4Myw3IEBAIFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+
IExvY2FsU3RvcmFnZU5hbWVzcGFjZTo6ZXBoZW1lcmFsT3JpZ2lucygpIGNvbnN0CiAKIHZvaWQg
TG9jYWxTdG9yYWdlTmFtZXNwYWNlOjpjbG9uZVRvKExvY2FsU3RvcmFnZU5hbWVzcGFjZSYgbmV3
TG9jYWxTdG9yYWdlTmFtZXNwYWNlKQogeworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkp
OwogICAgIGZvciAoYXV0byYgcGFpciA6IG1fc3RvcmFnZUFyZWFNYXApCiAgICAgICAgIG5ld0xv
Y2FsU3RvcmFnZU5hbWVzcGFjZS5tX3N0b3JhZ2VBcmVhTWFwLmFkZChwYWlyLmtleSwgcGFpci52
YWx1ZS0+Y2xvbmUoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1dlYlN0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1Nlc3Npb25TdG9yYWdlTmFtZXNwYWNlLmNwcApp
bmRleCAxODQ0ZWRhNDNmZTQ4MGM2NTczOWMyYjBhNTUwYmQ0MmI3MmMxYTYyLi41ODBhOGU2MmVh
ZjA0NGU2YzQ1NTY0MzJhNjAxNjlmMjFmZDcxNmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9TZXNzaW9uU3RvcmFn
ZU5hbWVzcGFjZS5jcHAKQEAgLTM1LDI1ICszNSwzMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlOjpTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh1bnNp
Z25lZCBxdW90YUluQnl0ZXMpCiAgICAgOiBtX3F1b3RhSW5CeXRlcyhxdW90YUluQnl0ZXMpCiB7
CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiB9CiAKIFNlc3Npb25TdG9yYWdlTmFt
ZXNwYWNlOjp+U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoKQogeworICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOwogfQogCiB2b2lkIFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlOjphZGRBbGxv
d2VkQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGFsbG93ZWRDb25uZWN0aW9u
KQogeworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIG1fYWxsb3dlZENvbm5l
Y3Rpb25zLmFkZChhbGxvd2VkQ29ubmVjdGlvbik7CiB9CiAKIAogdm9pZCBTZXNzaW9uU3RvcmFn
ZU5hbWVzcGFjZTo6cmVtb3ZlQWxsb3dlZENvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpVbmlx
dWVJRCBhbGxvd2VkQ29ubmVjdGlvbikKIHsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKICAgICBBU1NFUlQobV9hbGxvd2VkQ29ubmVjdGlvbnMuY29udGFpbnMoYWxsb3dlZENvbm5l
Y3Rpb24pKTsKICAgICBtX2FsbG93ZWRDb25uZWN0aW9ucy5yZW1vdmUoYWxsb3dlZENvbm5lY3Rp
b24pOwogfQogYXV0byBTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZTo6Z2V0T3JDcmVhdGVTdG9yYWdl
QXJlYShTZWN1cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbikgLT4gUmVmPFN0b3JhZ2VB
cmVhPgogeworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIHJldHVybiAqbV9z
dG9yYWdlQXJlYU1hcC5lbnN1cmUoc2VjdXJpdHlPcmlnaW4sIFt0aGlzLCAmc2VjdXJpdHlPcmln
aW5dKCkgbXV0YWJsZSB7CiAgICAgICAgIHJldHVybiBTdG9yYWdlQXJlYTo6Y3JlYXRlKG51bGxw
dHIsIFdURk1vdmUoc2VjdXJpdHlPcmlnaW4pLCBtX3F1b3RhSW5CeXRlcyk7CiAgICAgfSkuaXRl
cmF0b3ItPnZhbHVlLmNvcHlSZWYoKTsKQEAgLTYxLDYgKzY2LDcgQEAgYXV0byBTZXNzaW9uU3Rv
cmFnZU5hbWVzcGFjZTo6Z2V0T3JDcmVhdGVTdG9yYWdlQXJlYShTZWN1cml0eU9yaWdpbkRhdGEm
JiBzZWN1cmkKIAogdm9pZCBTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZTo6Y2xvbmVUbyhTZXNzaW9u
U3RvcmFnZU5hbWVzcGFjZSYgbmV3U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UpCiB7CisgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUX1VOVVNFRChuZXdTZXNzaW9uU3Rv
cmFnZU5hbWVzcGFjZSwgbmV3U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UuaXNFbXB0eSgpKTsKIAog
ICAgIGZvciAoYXV0byYgcGFpciA6IG1fc3RvcmFnZUFyZWFNYXApCkBAIC02OSw2ICs3NSw3IEBA
IHZvaWQgU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2U6OmNsb25lVG8oU2Vzc2lvblN0b3JhZ2VOYW1l
c3BhY2UmIG5ld1Nlc3Npb25TdG9yYWdlCiAKIFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IFNl
c3Npb25TdG9yYWdlTmFtZXNwYWNlOjpvcmlnaW5zKCkgY29uc3QKIHsKKyAgICBBU1NFUlQoIVJ1
bkxvb3A6OmlzTWFpbigpKTsKICAgICBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5z
OwogCiAgICAgZm9yIChjb25zdCBhdXRvJiBzdG9yYWdlQXJlYSA6IG1fc3RvcmFnZUFyZWFNYXAu
dmFsdWVzKCkpIHsKQEAgLTgxLDYgKzg4LDcgQEAgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4g
U2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2U6Om9yaWdpbnMoKSBjb25zdAogCiB2b2lkIFNlc3Npb25T
dG9yYWdlTmFtZXNwYWNlOjpjbGVhclN0b3JhZ2VBcmVhc01hdGNoaW5nT3JpZ2luKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4pCiB7CisgICAgQVNTRVJUKCFSdW5Mb29w
Ojppc01haW4oKSk7CiAgICAgYXV0byBvcmlnaW5BbmRTdG9yYWdlQXJlYSA9IG1fc3RvcmFnZUFy
ZWFNYXAuZmluZChzZWN1cml0eU9yaWdpbik7CiAgICAgaWYgKG9yaWdpbkFuZFN0b3JhZ2VBcmVh
ICE9IG1fc3RvcmFnZUFyZWFNYXAuZW5kKCkpCiAgICAgICAgIG9yaWdpbkFuZFN0b3JhZ2VBcmVh
LT52YWx1ZS0+Y2xlYXIoKTsKQEAgLTg4LDYgKzk2LDcgQEAgdm9pZCBTZXNzaW9uU3RvcmFnZU5h
bWVzcGFjZTo6Y2xlYXJTdG9yYWdlQXJlYXNNYXRjaGluZ09yaWdpbihjb25zdCBTZWN1cml0eU9y
aWcKIAogdm9pZCBTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZTo6Y2xlYXJBbGxTdG9yYWdlQXJlYXMo
KQogeworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIGZvciAoYXV0byYgc3Rv
cmFnZUFyZWEgOiBtX3N0b3JhZ2VBcmVhTWFwLnZhbHVlcygpKQogICAgICAgICBzdG9yYWdlQXJl
YS0+Y2xlYXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
V2ViU3RvcmFnZS9TdG9yYWdlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWEuY3BwCmluZGV4IDJmZTU2YjAxZjZiYTRhMGNhMTgzZGNi
YWVlMjU2MmJiMzA2YWEwYmUuLjVlODI5Y2IwNzRmYTcxNjc1YjAwNTA0NjYwNGFlYjdmM2NiNGE1
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9T
dG9yYWdlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9y
YWdlL1N0b3JhZ2VBcmVhLmNwcApAQCAtNDIsMTAgKzQyLDEyIEBAIFN0b3JhZ2VBcmVhOjpTdG9y
YWdlQXJlYShMb2NhbFN0b3JhZ2VOYW1lc3BhY2UqIGxvY2FsU3RvcmFnZU5hbWVzcGFjZSwgY29u
c3QgU2VjCiAgICAgLCBtX3F1b3RhSW5CeXRlcyhxdW90YUluQnl0ZXMpCiAgICAgLCBtX3N0b3Jh
Z2VNYXAoU3RvcmFnZU1hcDo6Y3JlYXRlKG1fcXVvdGFJbkJ5dGVzKSkKIHsKKyAgICBBU1NFUlQo
IVJ1bkxvb3A6OmlzTWFpbigpKTsKIH0KIAogU3RvcmFnZUFyZWE6On5TdG9yYWdlQXJlYSgpCiB7
CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNTRVJUKG1fZXZlbnRMaXN0
ZW5lcnMuaXNFbXB0eSgpKTsKICAgICBBU1NFUlQoIW1fbG9jYWxTdG9yYWdlTmFtZXNwYWNlKTsK
IApAQCAtNTUsMjMgKzU3LDI3IEBAIFN0b3JhZ2VBcmVhOjp+U3RvcmFnZUFyZWEoKQogCiB2b2lk
IFN0b3JhZ2VBcmVhOjphZGRMaXN0ZW5lcihJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5l
Y3Rpb25JRCwgdWludDY0X3Qgc3RvcmFnZU1hcElEKQogeworICAgIEFTU0VSVCghUnVuTG9vcDo6
aXNNYWluKCkpOwogICAgIEFTU0VSVCghbV9ldmVudExpc3RlbmVycy5jb250YWlucyhzdGQ6Om1h
a2VfcGFpcihjb25uZWN0aW9uSUQsIHN0b3JhZ2VNYXBJRCkpKTsKICAgICBtX2V2ZW50TGlzdGVu
ZXJzLmFkZChzdGQ6Om1ha2VfcGFpcihjb25uZWN0aW9uSUQsIHN0b3JhZ2VNYXBJRCkpOwogfQog
CiB2b2lkIFN0b3JhZ2VBcmVhOjpyZW1vdmVMaXN0ZW5lcihJUEM6OkNvbm5lY3Rpb246OlVuaXF1
ZUlEIGNvbm5lY3Rpb25JRCwgdWludDY0X3Qgc3RvcmFnZU1hcElEKQogeworICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOwogICAgIEFTU0VSVChpc0VwaGVtZXJhbCgpIHx8IG1fZXZlbnRM
aXN0ZW5lcnMuY29udGFpbnMoc3RkOjptYWtlX3BhaXIoY29ubmVjdGlvbklELCBzdG9yYWdlTWFw
SUQpKSk7CiAgICAgbV9ldmVudExpc3RlbmVycy5yZW1vdmUoc3RkOjptYWtlX3BhaXIoY29ubmVj
dGlvbklELCBzdG9yYWdlTWFwSUQpKTsKIH0KIAogYm9vbCBTdG9yYWdlQXJlYTo6aGFzTGlzdGVu
ZXIoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBjb25uZWN0aW9uSUQsIHVpbnQ2NF90IHN0b3Jh
Z2VNYXBJRCkgY29uc3QKIHsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBy
ZXR1cm4gbV9ldmVudExpc3RlbmVycy5jb250YWlucyhzdGQ6Om1ha2VfcGFpcihjb25uZWN0aW9u
SUQsIHN0b3JhZ2VNYXBJRCkpOwogfQogCiBSZWY8U3RvcmFnZUFyZWE+IFN0b3JhZ2VBcmVhOjpj
bG9uZSgpIGNvbnN0CiB7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgQVNT
RVJUKCFtX2xvY2FsU3RvcmFnZU5hbWVzcGFjZSk7CiAKICAgICBhdXRvIHN0b3JhZ2VBcmVhID0g
U3RvcmFnZUFyZWE6OmNyZWF0ZShudWxscHRyLCBtX3NlY3VyaXR5T3JpZ2luLCBtX3F1b3RhSW5C
eXRlcyk7CkBAIC04Miw2ICs4OCw3IEBAIFJlZjxTdG9yYWdlQXJlYT4gU3RvcmFnZUFyZWE6OmNs
b25lKCkgY29uc3QKIAogdm9pZCBTdG9yYWdlQXJlYTo6c2V0SXRlbShJUEM6OkNvbm5lY3Rpb246
OlVuaXF1ZUlEIHNvdXJjZUNvbm5lY3Rpb24sIHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBjb25zdCBTdHJpbmcmIHVy
bFN0cmluZywgYm9vbCYgcXVvdGFFeGNlcHRpb24pCiB7CisgICAgQVNTRVJUKCFSdW5Mb29wOjpp
c01haW4oKSk7CiAgICAgb3BlbkRhdGFiYXNlQW5kSW1wb3J0SXRlbXNJZk5lZWRlZCgpOwogCiAg
ICAgU3RyaW5nIG9sZFZhbHVlOwpAQCAtMTAxLDYgKzEwOCw3IEBAIHZvaWQgU3RvcmFnZUFyZWE6
OnNldEl0ZW0oSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBzb3VyY2VDb25uZWN0aW9uLCB1aW50
NjRfdCBzCiAKIHZvaWQgU3RvcmFnZUFyZWE6OnNldEl0ZW1zKGNvbnN0IEhhc2hNYXA8U3RyaW5n
LCBTdHJpbmc+JiBpdGVtcykKIHsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAg
ICAvLyBJbXBvcnQgaXRlbXMgZnJvbSB3ZWIgcHJvY2VzcyBpZiBpdGVtcyBhcmUgbm90IHN0b3Jl
ZCBvbiBkaXNrLgogICAgIGlmICghaXNFcGhlbWVyYWwoKSkKICAgICAgICAgcmV0dXJuOwpAQCAt
MTE5LDYgKzEyNyw3IEBAIHZvaWQgU3RvcmFnZUFyZWE6OnNldEl0ZW1zKGNvbnN0IEhhc2hNYXA8
U3RyaW5nLCBTdHJpbmc+JiBpdGVtcykKIAogdm9pZCBTdG9yYWdlQXJlYTo6cmVtb3ZlSXRlbShJ
UEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIHNvdXJjZUNvbm5lY3Rpb24sIHVpbnQ2NF90IHNvdXJj
ZVN0b3JhZ2VBcmVhSUQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZykKIHsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBvcGVuRGF0YWJhc2VB
bmRJbXBvcnRJdGVtc0lmTmVlZGVkKCk7CiAKICAgICBTdHJpbmcgb2xkVmFsdWU7CkBAIC0xMzcs
NiArMTQ2LDcgQEAgdm9pZCBTdG9yYWdlQXJlYTo6cmVtb3ZlSXRlbShJUEM6OkNvbm5lY3Rpb246
OlVuaXF1ZUlEIHNvdXJjZUNvbm5lY3Rpb24sIHVpbnQ2NF8KIAogdm9pZCBTdG9yYWdlQXJlYTo6
Y2xlYXIoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBzb3VyY2VDb25uZWN0aW9uLCB1aW50NjRf
dCBzb3VyY2VTdG9yYWdlQXJlYUlELCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKIHsKKyAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBvcGVuRGF0YWJhc2VBbmRJbXBvcnRJdGVt
c0lmTmVlZGVkKCk7CiAKICAgICBpZiAoIW1fc3RvcmFnZU1hcC0+bGVuZ3RoKCkpCkBAIC0xNTIs
NiArMTYyLDcgQEAgdm9pZCBTdG9yYWdlQXJlYTo6Y2xlYXIoSVBDOjpDb25uZWN0aW9uOjpVbmlx
dWVJRCBzb3VyY2VDb25uZWN0aW9uLCB1aW50NjRfdCBzb3UKIAogY29uc3QgSGFzaE1hcDxTdHJp
bmcsIFN0cmluZz4mIFN0b3JhZ2VBcmVhOjppdGVtcygpIGNvbnN0CiB7CisgICAgQVNTRVJUKCFS
dW5Mb29wOjppc01haW4oKSk7CiAgICAgb3BlbkRhdGFiYXNlQW5kSW1wb3J0SXRlbXNJZk5lZWRl
ZCgpOwogCiAgICAgcmV0dXJuIG1fc3RvcmFnZU1hcC0+aXRlbXMoKTsKQEAgLTE1OSw2ICsxNzAs
NyBAQCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgU3RvcmFnZUFyZWE6Oml0ZW1zKCkg
Y29uc3QKIAogdm9pZCBTdG9yYWdlQXJlYTo6Y2xlYXIoKQogeworICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOwogICAgIG1fc3RvcmFnZU1hcCA9IFN0b3JhZ2VNYXA6OmNyZWF0ZShtX3F1
b3RhSW5CeXRlcyk7CiAKICAgICBpZiAobV9sb2NhbFN0b3JhZ2VEYXRhYmFzZSkgewpAQCAtMTc2
LDYgKzE4OCw3IEBAIHZvaWQgU3RvcmFnZUFyZWE6OmNsZWFyKCkKIAogdm9pZCBTdG9yYWdlQXJl
YTo6b3BlbkRhdGFiYXNlQW5kSW1wb3J0SXRlbXNJZk5lZWRlZCgpIGNvbnN0CiB7CisgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgaWYgKCFtX2xvY2FsU3RvcmFnZU5hbWVzcGFj
ZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xOTMsNiArMjA2LDcgQEAgdm9pZCBTdG9yYWdlQXJl
YTo6b3BlbkRhdGFiYXNlQW5kSW1wb3J0SXRlbXNJZk5lZWRlZCgpIGNvbnN0CiAKIHZvaWQgU3Rv
cmFnZUFyZWE6OmRpc3BhdGNoRXZlbnRzKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgc291cmNl
Q29ubmVjdGlvbiwgdWludDY0X3Qgc291cmNlU3RvcmFnZUFyZWFJRCwgY29uc3QgU3RyaW5nJiBr
ZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nKSBjb25zdAogeworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOwogICAgIGZvciAoYXV0byBpdCA9IG1fZXZlbnRMaXN0ZW5lcnMuYmVnaW4oKSwgZW5kID0g
bV9ldmVudExpc3RlbmVycy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIHNvdXJj
ZVN0b3JhZ2VBcmVhSUQgPSBpdC0+Zmlyc3QgPT0gc291cmNlQ29ubmVjdGlvbiA/IHNvdXJjZVN0
b3JhZ2VBcmVhSUQgOiAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCBiNzRiOTE1OTRkM2E5
NjA5ZWU3YjM3YTQ3ZTc0NGExNDAyNGM2ZmM0Li45NjRkMDhhZTBiMmI0ZjcyMWEwMWQxMTEzNWZm
NjUwNTMwMGU1ZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTY3LDYgKzY3LDcgQEAgU3Rv
cmFnZU1hbmFnZXI6On5TdG9yYWdlTWFuYWdlcigpCiAKIHZvaWQgU3RvcmFnZU1hbmFnZXI6OmNy
ZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwg
dW5zaWduZWQgcXVvdGFJbkJ5dGVzKQogeworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CiAgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgc3RvcmFnZU5hbWVzcGFjZUlELCBxdW90YUluQnl0ZXNdKCkgbXV0YWJsZSB7CiAgICAg
ICAgIG1fc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VzLmVuc3VyZShzdG9yYWdlTmFtZXNwYWNlSUQs
IFtxdW90YUluQnl0ZXNdIHsKICAgICAgICAgICAgIHJldHVybiBTZXNzaW9uU3RvcmFnZU5hbWVz
cGFjZTo6Y3JlYXRlKHF1b3RhSW5CeXRlcyk7CkBAIC03Niw2ICs3Nyw3IEBAIHZvaWQgU3RvcmFn
ZU1hbmFnZXI6OmNyZWF0ZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKHVpbnQ2NF90IHN0b3JhZ2VO
YW1lc3BhY2VJRCwKIAogdm9pZCBTdG9yYWdlTWFuYWdlcjo6ZGVzdHJveVNlc3Npb25TdG9yYWdl
TmFtZXNwYWNlKHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCkKIHsKKyAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwogICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIHN0b3JhZ2VOYW1lc3BhY2VJRF0gewogICAgICAgICBBU1NF
UlQobV9zZXNzaW9uU3RvcmFnZU5hbWVzcGFjZXMuY29udGFpbnMoc3RvcmFnZU5hbWVzcGFjZUlE
KSk7CiAgICAgICAgIGlmIChhdXRvKiBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSA9IG1fc2Vzc2lv
blN0b3JhZ2VOYW1lc3BhY2VzLmdldChzdG9yYWdlTmFtZXNwYWNlSUQpKSB7CkBAIC04Nyw2ICs4
OSw3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXI6OmRlc3Ryb3lTZXNzaW9uU3RvcmFnZU5hbWVzcGFj
ZSh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQpCiAKIHZvaWQgU3RvcmFnZU1hbmFnZXI6OmFk
ZEFsbG93ZWRTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZUNvbm5lY3Rpb24odWludDY0X3Qgc3RvcmFn
ZU5hbWVzcGFjZUlELCBJUEM6OkNvbm5lY3Rpb24mIGFsbG93ZWRDb25uZWN0aW9uKQogeworICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgYXV0byBhbGxvd2VkQ29ubmVjdGlvbklE
ID0gYWxsb3dlZENvbm5lY3Rpb24udW5pcXVlSUQoKTsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1f
Y29ubmVjdGlvbnMuYWRkKGFsbG93ZWRDb25uZWN0aW9uSUQpOwogICAgIGlmIChhZGRSZXN1bHQu
aXNOZXdFbnRyeSkKQEAgLTEwMSw2ICsxMDQsNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjphZGRB
bGxvd2VkU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2VDb25uZWN0aW9uKHVpbnQ2NF90IHN0b3JhZwog
CiB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpyZW1vdmVBbGxvd2VkU2Vzc2lvblN0b3JhZ2VOYW1lc3Bh
Y2VDb25uZWN0aW9uKHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgSVBDOjpDb25uZWN0aW9u
JiBhbGxvd2VkQ29ubmVjdGlvbikKIHsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwog
ICAgIGF1dG8gYWxsb3dlZENvbm5lY3Rpb25JRCA9IGFsbG93ZWRDb25uZWN0aW9uLnVuaXF1ZUlE
KCk7CiAgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgYWxsb3dlZENvbm5lY3Rpb25JRCwgc3RvcmFnZU5hbWVzcGFjZUlEXSgpIG11dGFi
bGUgewogICAgICAgICBBU1NFUlQobV9zZXNzaW9uU3RvcmFnZU5hbWVzcGFjZXMuY29udGFpbnMo
c3RvcmFnZU5hbWVzcGFjZUlEKSk7CkBAIC0xMTEsNiArMTE1LDcgQEAgdm9pZCBTdG9yYWdlTWFu
YWdlcjo6cmVtb3ZlQWxsb3dlZFNlc3Npb25TdG9yYWdlTmFtZXNwYWNlQ29ubmVjdGlvbih1aW50
NjRfdCBzdG8KIAogdm9pZCBTdG9yYWdlTWFuYWdlcjo6Y2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVz
cGFjZSh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNlSUQsIHVpbnQ2NF90IG5ld1N0b3JhZ2VOYW1l
c3BhY2VJRCkKIHsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIG1fcXVldWUt
PmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHN0b3JhZ2VO
YW1lc3BhY2VJRCwgbmV3U3RvcmFnZU5hbWVzcGFjZUlEXSB7CiAgICAgICAgIFNlc3Npb25TdG9y
YWdlTmFtZXNwYWNlKiBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSA9IG1fc2Vzc2lvblN0b3JhZ2VO
YW1lc3BhY2VzLmdldChzdG9yYWdlTmFtZXNwYWNlSUQpOwogICAgICAgICBpZiAoIXNlc3Npb25T
dG9yYWdlTmFtZXNwYWNlKSB7CkBAIC0xMzYsNiArMTQxLDcgQEAgdm9pZCBTdG9yYWdlTWFuYWdl
cjo6Y2xvbmVTZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSh1aW50NjRfdCBzdG9yYWdlTmFtZXNwYWNl
SUQsIHUKIAogdm9pZCBTdG9yYWdlTWFuYWdlcjo6cHJvY2Vzc0RpZENsb3NlQ29ubmVjdGlvbihJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKICAgICBpZiAobV9jb25uZWN0aW9ucy5yZW1vdmUoY29ubmVjdGlvbi51bmlxdWVJRCgp
KSkKICAgICAgICAgY29ubmVjdGlvbi5yZW1vdmVXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OlN0b3JhZ2VNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogCkBAIC0xNjgs
NiArMTc0LDcgQEAgdm9pZCBTdG9yYWdlTWFuYWdlcjo6cHJvY2Vzc0RpZENsb3NlQ29ubmVjdGlv
bihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAKIHZvaWQgU3RvcmFnZU1hbmFnZXI6Omdl
dFNlc3Npb25TdG9yYWdlT3JpZ2lucyhGdW5jdGlvbjx2b2lkKEhhc2hTZXQ8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwogICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIEhhc2hTZXQ8U2VjdXJpdHlPcmln
aW5EYXRhPiBvcmlnaW5zOwogCkBAIC0xODQsNiArMTkxLDcgQEAgdm9pZCBTdG9yYWdlTWFuYWdl
cjo6Z2V0U2Vzc2lvblN0b3JhZ2VPcmlnaW5zKEZ1bmN0aW9uPHZvaWQoSGFzaFNldDxXZWJDb3Jl
OjpTZWMKIAogdm9pZCBTdG9yYWdlTWFuYWdlcjo6ZGVsZXRlU2Vzc2lvblN0b3JhZ2VPcmlnaW5z
KEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwogICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGZvciAoYXV0byYgc2Vzc2lvblN0b3Jh
Z2VOYW1lc3BhY2UgOiBtX3Nlc3Npb25TdG9yYWdlTmFtZXNwYWNlcy52YWx1ZXMoKSkKICAgICAg
ICAgICAgIHNlc3Npb25TdG9yYWdlTmFtZXNwYWNlLT5jbGVhckFsbFN0b3JhZ2VBcmVhcygpOwpA
QCAtMTk0LDYgKzIwMiw3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXI6OmRlbGV0ZVNlc3Npb25TdG9y
YWdlT3JpZ2lucyhGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhCiAKIHZvaWQgU3RvcmFn
ZU1hbmFnZXI6OmRlbGV0ZVNlc3Npb25TdG9yYWdlRW50cmllc0Zvck9yaWdpbnMoY29uc3QgVmVj
dG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIEZ1bmN0aW9uPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwogICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGNvcGllZE9yaWdpbnMgPSBjcm9zc1RocmVhZENvcHkob3JpZ2lucyksIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAg
ICAgIGZvciAoYXV0byYgb3JpZ2luIDogY29waWVkT3JpZ2lucykgewogICAgICAgICAgICAgZm9y
IChhdXRvJiBzZXNzaW9uU3RvcmFnZU5hbWVzcGFjZSA6IG1fc2Vzc2lvblN0b3JhZ2VOYW1lc3Bh
Y2VzLnZhbHVlcygpKQpAQCAtMjA2LDYgKzIxNSw3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXI6OmRl
bGV0ZVNlc3Npb25TdG9yYWdlRW50cmllc0Zvck9yaWdpbnMoY29uc3QgVmVjdG9yPFdlYkNvcmU6
CiAKIHZvaWQgU3RvcmFnZU1hbmFnZXI6OmdldExvY2FsU3RvcmFnZU9yaWdpbnMoRnVuY3Rpb248
dm9pZChIYXNoU2V0PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBtX3F1ZXVl
LT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewogICAg
ICAgICBIYXNoU2V0PFNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2luczsKIApAQCAtMjMyLDYgKzI0
Miw3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXI6OmdldExvY2FsU3RvcmFnZU9yaWdpbnMoRnVuY3Rp
b248dm9pZChIYXNoU2V0PFdlYkNvcmU6OlNlY3VyCiAKIHZvaWQgU3RvcmFnZU1hbmFnZXI6Omdl
dExvY2FsU3RvcmFnZU9yaWdpbkRldGFpbHMoRnVuY3Rpb248dm9pZChWZWN0b3I8TG9jYWxTdG9y
YWdlRGF0YWJhc2VUcmFja2VyOjpPcmlnaW5EZXRhaWxzPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIG1fcXVldWUtPmRpc3Bh
dGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIFZl
Y3RvcjxMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI6Ok9yaWdpbkRldGFpbHM+IG9yaWdpbkRl
dGFpbHM7CiAgICAgICAgIGlmIChtX2xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcikKQEAgLTI0
NSw2ICsyNTYsNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpnZXRMb2NhbFN0b3JhZ2VPcmlnaW5E
ZXRhaWxzKEZ1bmN0aW9uPHZvaWQoVmVjdG9yPExvY2FsU3RvcgogCiB2b2lkIFN0b3JhZ2VNYW5h
Z2VyOjpkZWxldGVMb2NhbFN0b3JhZ2VFbnRyaWVzRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3Jp
Z2luRGF0YSYgc2VjdXJpdHlPcmlnaW4pCiB7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCBjb3BpZWRPcmlnaW4gPSBzZWN1cml0eU9yaWdpbi5pc29sYXRlZENvcHkoKV0oKSBt
dXRhYmxlIHsKICAgICAgICAgZm9yIChhdXRvJiBsb2NhbFN0b3JhZ2VOYW1lc3BhY2UgOiBtX2xv
Y2FsU3RvcmFnZU5hbWVzcGFjZXMudmFsdWVzKCkpCiAgICAgICAgICAgICBsb2NhbFN0b3JhZ2VO
YW1lc3BhY2UtPmNsZWFyU3RvcmFnZUFyZWFzTWF0Y2hpbmdPcmlnaW4oY29waWVkT3JpZ2luKTsK
QEAgLTI1OSw2ICsyNzEsNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpkZWxldGVMb2NhbFN0b3Jh
Z2VFbnRyaWVzRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YQogCiB2b2lkIFN0b3Jh
Z2VNYW5hZ2VyOjpkZWxldGVMb2NhbFN0b3JhZ2VPcmlnaW5zTW9kaWZpZWRTaW5jZShXYWxsVGlt
ZSB0aW1lLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aW1lLCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICBpZiAobV9sb2Nh
bFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIpIHsKICAgICAgICAgICAgIGF1dG8gb3JpZ2luc1RvRGVs
ZXRlID0gbV9sb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXItPmRhdGFiYXNlc01vZGlmaWVkU2lu
Y2UodGltZSk7CkBAIC0yODMsNiArMjk2LDcgQEAgdm9pZCBTdG9yYWdlTWFuYWdlcjo6ZGVsZXRl
TG9jYWxTdG9yYWdlT3JpZ2luc01vZGlmaWVkU2luY2UoV2FsbFRpbWUgdGltZSwgRnVuY3QKIAog
dm9pZCBTdG9yYWdlTWFuYWdlcjo6ZGVsZXRlTG9jYWxTdG9yYWdlRW50cmllc0Zvck9yaWdpbnMo
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIEZ1bmN0
aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOwogICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGNvcGllZE9yaWdpbnMgPSBjcm9zc1RocmVhZENvcHkob3JpZ2lucyks
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJs
ZSB7CiAgICAgICAgIGZvciAoYXV0byYgb3JpZ2luIDogY29waWVkT3JpZ2lucykgewogICAgICAg
ICAgICAgZm9yIChhdXRvJiBsb2NhbFN0b3JhZ2VOYW1lc3BhY2UgOiBtX2xvY2FsU3RvcmFnZU5h
bWVzcGFjZXMudmFsdWVzKCkpCkBAIC00NzYsNiArNDkwLDcgQEAgdm9pZCBTdG9yYWdlTWFuYWdl
cjo6Y2xlYXIoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkQKIAogdm9pZCBTdG9yYWdlTWFuYWdlcjo6d2FpdFVudGlsVGFza3NGaW5pc2hlZCgpCiB7
CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBCaW5hcnlTZW1hcGhvcmUgc2Vt
YXBob3JlOwogICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCAmc2VtYXBob3JlXSB7CiAgICAg
ICAgIFZlY3RvcjxzdGQ6OnBhaXI8SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgdWludDY0X3Q+
PiBjb25uZWN0aW9uQW5kU3RvcmFnZU1hcElEUGFpcnNUb1JlbW92ZTsKQEAgLTQ5Niw2ICs1MTEs
NyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjp3YWl0VW50aWxUYXNrc0ZpbmlzaGVkKCkKIAogdm9p
ZCBTdG9yYWdlTWFuYWdlcjo6c3VzcGVuZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBD
b21wbGV0aW9uSGFuZGxlckNhbGxpbmdTY29wZSBjb21wbGV0aW9uSGFuZGxlckNhbGxlcihXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgaWYgKCFtX2xvY2FsU3RvcmFnZURhdGFiYXNl
VHJhY2tlcikKICAgICAgICAgcmV0dXJuOwpAQCAtNTI1LDYgKzU0MSw3IEBAIHZvaWQgU3RvcmFn
ZU1hbmFnZXI6OnN1c3BlbmQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogCiB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpyZXN1bWUoKQogeworICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CiAgICAgaWYgKCFtX2xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tl
cikKICAgICAgICAgcmV0dXJuOwogCkBAIC01MzcsNiArNTU0LDcgQEAgdm9pZCBTdG9yYWdlTWFu
YWdlcjo6cmVzdW1lKCkKIAogU3RvcmFnZUFyZWEqIFN0b3JhZ2VNYW5hZ2VyOjpmaW5kU3RvcmFn
ZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzdG9yYWdlTWFwSUQp
IGNvbnN0CiB7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgc3RkOjpwYWly
PElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIHVpbnQ2NF90PiBjb25uZWN0aW9uQW5kU3RvcmFn
ZU1hcElEUGFpcihjb25uZWN0aW9uLnVuaXF1ZUlEKCksIHN0b3JhZ2VNYXBJRCk7CiAKICAgICBp
ZiAoIW1fc3RvcmFnZUFyZWFzQnlDb25uZWN0aW9uLmlzVmFsaWRLZXkoY29ubmVjdGlvbkFuZFN0
b3JhZ2VNYXBJRFBhaXIpKQpAQCAtNTQ3LDYgKzU2NSw3IEBAIFN0b3JhZ2VBcmVhKiBTdG9yYWdl
TWFuYWdlcjo6ZmluZFN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgdWlu
dDY0CiAKIExvY2FsU3RvcmFnZU5hbWVzcGFjZSogU3RvcmFnZU1hbmFnZXI6OmdldE9yQ3JlYXRl
TG9jYWxTdG9yYWdlTmFtZXNwYWNlKHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCkKIHsKKyAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBpZiAoIW1fbG9jYWxTdG9yYWdlTmFt
ZXNwYWNlcy5pc1ZhbGlkS2V5KHN0b3JhZ2VOYW1lc3BhY2VJRCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCkBAIC01NTcsNiArNTc2LDcgQEAgTG9jYWxTdG9yYWdlTmFtZXNwYWNlKiBTdG9y
YWdlTWFuYWdlcjo6Z2V0T3JDcmVhdGVMb2NhbFN0b3JhZ2VOYW1lc3BhY2UodWludDY0X3QKIAog
VHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlKiBTdG9yYWdlTWFuYWdlcjo6Z2V0T3JDcmVh
dGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UodWludDY0X3Qgc3RvcmFnZU5hbWVzcGFj
ZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BMZXZlbE9yaWdpbikKIHsKKyAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBpZiAoIW1fdHJhbnNpZW50TG9jYWxT
dG9yYWdlTmFtZXNwYWNlcy5pc1ZhbGlkS2V5KHsgc3RvcmFnZU5hbWVzcGFjZUlELCB0b3BMZXZl
bE9yaWdpbiB9KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9UcmFuc2llbnRMb2NhbFN0b3JhZ2VO
YW1lc3BhY2UuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1Ry
YW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZS5jcHAKaW5kZXggNDEzOWE4ZGNhN2NlMGFiZjk1
NDk4N2FiM2UxMDI2OTlmZWE1MGVmMS4uZWRmM2NkYmU5Yzg4NWZjOGI3MmE0NWEwNmUxZWNhYTc1
YmNhNDc3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9y
YWdlL1RyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL1RyYW5zaWVudExvY2FsU3RvcmFnZU5hbWVzcGFj
ZS5jcHAKQEAgLTM2LDE0ICszNiwxNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIFRyYW5z
aWVudExvY2FsU3RvcmFnZU5hbWVzcGFjZTo6VHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNl
KCkKICAgICA6IG1fcXVvdGFJbkJ5dGVzKFN0b3JhZ2VNYW5hZ2VyOjpsb2NhbFN0b3JhZ2VEYXRh
YmFzZVF1b3RhSW5CeXRlcykKIHsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIH0K
IAogVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlOjp+VHJhbnNpZW50TG9jYWxTdG9yYWdl
TmFtZXNwYWNlKCkKIHsKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIH0KIAogUmVm
PFN0b3JhZ2VBcmVhPiBUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2U6OmdldE9yQ3JlYXRl
U3RvcmFnZUFyZWEoU2VjdXJpdHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4pCiB7CisgICAg
QVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgcmV0dXJuICptX3N0b3JhZ2VBcmVhTWFw
LmVuc3VyZShzZWN1cml0eU9yaWdpbiwgW3RoaXMsICZzZWN1cml0eU9yaWdpbl0oKSBtdXRhYmxl
IHsKICAgICAgICAgcmV0dXJuIFN0b3JhZ2VBcmVhOjpjcmVhdGUobnVsbHB0ciwgV1RGTW92ZShz
ZWN1cml0eU9yaWdpbiksIG1fcXVvdGFJbkJ5dGVzKTsKICAgICB9KS5pdGVyYXRvci0+dmFsdWUu
Y29weVJlZigpOwpAQCAtNTEsNiArNTQsNyBAQCBSZWY8U3RvcmFnZUFyZWE+IFRyYW5zaWVudExv
Y2FsU3RvcmFnZU5hbWVzcGFjZTo6Z2V0T3JDcmVhdGVTdG9yYWdlQXJlYShTZWN1cml0eQogCiBW
ZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBUcmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2U6
Om9yaWdpbnMoKSBjb25zdAogeworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogICAg
IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbnM7CiAKICAgICBmb3IgKGNvbnN0IGF1
dG8mIHN0b3JhZ2VBcmVhIDogbV9zdG9yYWdlQXJlYU1hcC52YWx1ZXMoKSkgewpAQCAtNjMsNiAr
NjcsNyBAQCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBUcmFuc2llbnRMb2NhbFN0b3JhZ2VO
YW1lc3BhY2U6Om9yaWdpbnMoKSBjb25zdAogCiB2b2lkIFRyYW5zaWVudExvY2FsU3RvcmFnZU5h
bWVzcGFjZTo6Y2xlYXJTdG9yYWdlQXJlYXNNYXRjaGluZ09yaWdpbihjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luKQogeworICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWlu
KCkpOwogICAgIGF1dG8gb3JpZ2luQW5kU3RvcmFnZUFyZWEgPSBtX3N0b3JhZ2VBcmVhTWFwLmZp
bmQoc2VjdXJpdHlPcmlnaW4pOwogICAgIGlmIChvcmlnaW5BbmRTdG9yYWdlQXJlYSAhPSBtX3N0
b3JhZ2VBcmVhTWFwLmVuZCgpKQogICAgICAgICBvcmlnaW5BbmRTdG9yYWdlQXJlYS0+dmFsdWUt
PmNsZWFyKCk7CkBAIC03MCw2ICs3NSw3IEBAIHZvaWQgVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFt
ZXNwYWNlOjpjbGVhclN0b3JhZ2VBcmVhc01hdGNoaW5nT3JpZ2luKGNvbnN0IFNlY3VyCiAKIHZv
aWQgVHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlOjpjbGVhckFsbFN0b3JhZ2VBcmVhcygp
CiB7CisgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAgICAgZm9yIChhdXRvJiBzdG9y
YWdlQXJlYSA6IG1fc3RvcmFnZUFyZWFNYXAudmFsdWVzKCkpCiAgICAgICAgIHN0b3JhZ2VBcmVh
LT5jbGVhcigpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>