<?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>226448</bug_id>
          
          <creation_ts>2021-05-30 19:59:31 -0700</creation_ts>
          <short_desc>Fix thread safety issues in AudioBufferSourceNode</short_desc>
          <delta_ts>2021-05-31 17:08:18 -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>Web Audio</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>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1765303</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-30 19:59:31 -0700</bug_when>
    <thetext>Fix thread safety issue in AudioBufferSourceNode::propagatesSilence() found by clang thread safety analysis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765310</commentid>
    <comment_count>1</comment_count>
      <attachid>430169</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-30 20:23:46 -0700</bug_when>
    <thetext>Created attachment 430169
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765466</commentid>
    <comment_count>2</comment_count>
      <attachid>430169</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-31 17:07:23 -0700</bug_when>
    <thetext>Comment on attachment 430169
Patch

Clearing flags on attachment: 430169

Committed r278287 (238324@main): &lt;https://commits.webkit.org/238324@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765467</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-31 17:07:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765468</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-31 17:08:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/78695338&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430169</attachid>
            <date>2021-05-30 20:23:46 -0700</date>
            <delta_ts>2021-05-31 17:07:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226448-20210530202346.patch</filename>
            <type>text/plain</type>
            <size>19391</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODk5ZWVjNjJhNmIxMWZk
YjczNzIzNzkzNzdiNWUzOTk1MTllMmMwYy4uM2M2YjZkNWI5ZGZhOTgwM2M5OTkyNDE1OGEzNWRl
NGFhNWFmYjk3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA1LTMwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IHRocmVhZCBzYWZldHkg
aXNzdWVzIGluIEF1ZGlvQnVmZmVyU291cmNlTm9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2NDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRvcHQgdGhyZWFkIHNhZmV0eSBhbmFseXNpcyBhbm5v
dGF0aW9ucyBpbiBBdWRpb0J1ZmZlclNvdXJjZU5vZGUgYW5kIGZpeCB0aGUgYnVncworICAgICAg
ICB0aGF0IHdlcmUgZm91bmQgYnkgY2xhbmc6CisgICAgICAgIC0gV2Ugd2VyZSBmYWlsaW5nIHRv
IGdyYWIgdGhlIHByb2Nlc3NMb2NrIHdoZW4gc2V0dGluZyB0aGUgbG9vcCAvIGxvb3BTdGFydCAv
IGxvb3BFbmQgYXR0cmlidXRlcworICAgICAgICAgIG9uIHRoZSBtYWluIHRocmVhZCAoVGhvc2Ug
YXJlIHNldCBieSBKUyBhdCBhbnkgdGltZSkuCisgICAgICAgIC0gcHJvcGFnYXRlc1NpbGVuY2Uo
KSB3YXMgZmFpbGluZyB0byBncmFiIHRoZSBsb2NrIHdoZW4gY2hlY2tpbmcgbV9idWZmZXIgb24g
dGhlIGF1ZGlvIHRocmVhZC4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyU291cmNlTm9k
ZTo6cHJvY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnJl
bmRlclNpbGVuY2VBbmRGaW5pc2hJZk5vdExvb3BpbmcpOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9CdWZmZXJTb3VyY2VOb2RlOjpyZW5kZXJGcm9tQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c2V0QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQnVmZmVyU291cmNlTm9kZTo6c2V0TG9vcCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1
ZmZlclNvdXJjZU5vZGU6OnNldExvb3BTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1
ZmZlclNvdXJjZU5vZGU6OnNldExvb3BFbmQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZm
ZXJTb3VyY2VOb2RlOjphZGp1c3RHcmFpblBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjp0b3RhbFBpdGNoUmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnByb3BhZ2F0ZXNTaWxlbmNlIGNvbnN0KToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oOgorCiAyMDIxLTA1
LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHNv
bWUgZGVhZCBjb2RlIGZyb20gQmFzZUF1ZGlvQ29udGV4dCAvIEF1ZGlvQ29udGV4dApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJj
ZU5vZGUuY3BwCmluZGV4IDZmOTRlYmVhMWUwOTBmNzcyZGNhNDk2YjJkOTI2NDU1NGE1ZmU4MGIu
LjI3NWJkMjExNGVjNDIxYjgzMWRlOTlmMDQ1YzhmZGMwZWIyMDhkYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9k
ZS5jcHAKQEAgLTY2LDExICs2NiwxMSBAQCBFeGNlcHRpb25PcjxSZWY8QXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlPj4gQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpjcmVhdGUoQmFzZUF1ZGlvQwogewogICAg
IGF1dG8gbm9kZSA9IGFkb3B0UmVmKCpuZXcgQXVkaW9CdWZmZXJTb3VyY2VOb2RlKGNvbnRleHQp
KTsKIAotICAgIG5vZGUtPnNldEJ1ZmZlcihXVEZNb3ZlKG9wdGlvbnMuYnVmZmVyKSk7CisgICAg
bm9kZS0+c2V0QnVmZmVyRm9yQmluZGluZ3MoV1RGTW92ZShvcHRpb25zLmJ1ZmZlcikpOwogICAg
IG5vZGUtPmRldHVuZSgpLnNldFZhbHVlKG9wdGlvbnMuZGV0dW5lKTsKLSAgICBub2RlLT5zZXRM
b29wKG9wdGlvbnMubG9vcCk7Ci0gICAgbm9kZS0+c2V0TG9vcEVuZChvcHRpb25zLmxvb3BFbmQp
OwotICAgIG5vZGUtPnNldExvb3BTdGFydChvcHRpb25zLmxvb3BTdGFydCk7CisgICAgbm9kZS0+
c2V0TG9vcEZvckJpbmRpbmdzKG9wdGlvbnMubG9vcCk7CisgICAgbm9kZS0+c2V0TG9vcEVuZEZv
ckJpbmRpbmdzKG9wdGlvbnMubG9vcEVuZCk7CisgICAgbm9kZS0+c2V0TG9vcFN0YXJ0Rm9yQmlu
ZGluZ3Mob3B0aW9ucy5sb29wU3RhcnQpOwogICAgIG5vZGUtPnBsYXliYWNrUmF0ZSgpLnNldFZh
bHVlKG9wdGlvbnMucGxheWJhY2tSYXRlKTsKIAogICAgIHJldHVybiBub2RlOwpAQCAtMTEwLDcg
KzExMCw3IEBAIHZvaWQgQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFt
ZXNUb1Byb2Nlc3MpCiAgICAgfQogICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fcHJv
Y2Vzc0xvY2sgfTsKIAotICAgIGlmICghYnVmZmVyKCkpIHsKKyAgICBpZiAoIW1fYnVmZmVyKSB7
CiAgICAgICAgIG91dHB1dEJ1cy56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0x
MTgsNyArMTE4LDcgQEAgdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnByb2Nlc3Moc2l6ZV90
IGZyYW1lc1RvUHJvY2VzcykKICAgICAvLyBBZnRlciBjYWxsaW5nIHNldEJ1ZmZlcigpIHdpdGgg
YSBidWZmZXIgaGF2aW5nIGEgZGlmZmVyZW50IG51bWJlciBvZiBjaGFubmVscywgdGhlcmUgY2Fu
IGluIHJhcmUgY2FzZXMgYmUgYSBzbGlnaHQgZGVsYXkKICAgICAvLyBiZWZvcmUgdGhlIG91dHB1
dCBidXMgaXMgdXBkYXRlZCB0byB0aGUgbmV3IG51bWJlciBvZiBjaGFubmVscyBiZWNhdXNlIG9m
IHVzZSBvZiB0cnlMb2NrcygpIGluIHRoZSBjb250ZXh0J3MgdXBkYXRpbmcgc3lzdGVtLgogICAg
IC8vIEluIHRoaXMgY2FzZSwgaWYgdGhlIGJ1ZmZlciBoYXMganVzdCBiZWVuIGNoYW5nZWQgYW5k
IHdlJ3JlIG5vdCBxdWl0ZSByZWFkeSB5ZXQsIHRoZW4ganVzdCBvdXRwdXQgc2lsZW5jZS4KLSAg
ICBpZiAobnVtYmVyT2ZDaGFubmVscygpICE9IGJ1ZmZlcigpLT5udW1iZXJPZkNoYW5uZWxzKCkp
IHsKKyAgICBpZiAobnVtYmVyT2ZDaGFubmVscygpICE9IG1fYnVmZmVyLT5udW1iZXJPZkNoYW5u
ZWxzKCkpIHsKICAgICAgICAgb3V0cHV0QnVzLnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6cHJvY2Vz
cyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogLy8gUmV0dXJucyB0cnVlIGlmIHdlJ3JlIGZpbmlz
aGVkLgogYm9vbCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnJlbmRlclNpbGVuY2VBbmRGaW5pc2hJ
Zk5vdExvb3BpbmcoQXVkaW9CdXMqLCB1bnNpZ25lZCBpbmRleCwgc2l6ZV90IGZyYW1lc1RvUHJv
Y2VzcykKIHsKLSAgICBpZiAoIWxvb3AoKSkgeworICAgIGlmICghbV9pc0xvb3BpbmcpIHsKICAg
ICAgICAgLy8gSWYgd2UncmUgbm90IGxvb3BpbmcsIHRoZW4gc3RvcCBwbGF5aW5nIHdoZW4gd2Ug
Z2V0IHRvIHRoZSBlbmQuCiAKICAgICAgICAgaWYgKGZyYW1lc1RvUHJvY2VzcyA+IDApIHsKQEAg
LTE3MSw4ICsxNzEsOCBAQCBib29sIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6cmVuZGVyRnJvbUJ1
ZmZlcihBdWRpb0J1cyogYnVzLCB1bnNpZ25lZCBkZXN0aW5hdGlvbgogCiAgICAgLy8gQmFzaWMg
c2FuaXR5IGNoZWNraW5nCiAgICAgQVNTRVJUKGJ1cyk7Ci0gICAgQVNTRVJUKGJ1ZmZlcigpKTsK
LSAgICBpZiAoIWJ1cyB8fCAhYnVmZmVyKCkpCisgICAgQVNTRVJUKG1fYnVmZmVyKTsKKyAgICBp
ZiAoIWJ1cyB8fCAhbV9idWZmZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHVuc2ln
bmVkIG51bWJlck9mQ2hhbm5lbHMgPSB0aGlzLT5udW1iZXJPZkNoYW5uZWxzKCk7CkBAIC0yMDUs
OCArMjA1LDggQEAgYm9vbCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnJlbmRlckZyb21CdWZmZXIo
QXVkaW9CdXMqIGJ1cywgdW5zaWduZWQgZGVzdGluYXRpb24KICAgICAvLyBPZmZzZXQgdGhlIHBv
aW50ZXJzIHRvIHRoZSBjb3JyZWN0IG9mZnNldCBmcmFtZS4KICAgICB1bnNpZ25lZCB3cml0ZUlu
ZGV4ID0gZGVzdGluYXRpb25GcmFtZU9mZnNldDsKIAotICAgIHNpemVfdCBidWZmZXJMZW5ndGgg
PSBidWZmZXIoKS0+bGVuZ3RoKCk7Ci0gICAgZG91YmxlIGJ1ZmZlclNhbXBsZVJhdGUgPSBidWZm
ZXIoKS0+c2FtcGxlUmF0ZSgpOworICAgIHNpemVfdCBidWZmZXJMZW5ndGggPSBtX2J1ZmZlci0+
bGVuZ3RoKCk7CisgICAgZG91YmxlIGJ1ZmZlclNhbXBsZVJhdGUgPSBtX2J1ZmZlci0+c2FtcGxl
UmF0ZSgpOwogICAgIGRvdWJsZSBwaXRjaFJhdGUgPSB0b3RhbFBpdGNoUmF0ZSgpOwogICAgIGJv
b2wgcmV2ZXJzZSA9IHBpdGNoUmF0ZSA8IDA7CiAKQEAgLTIyOCwxMCArMjI4LDEwIEBAIGJvb2wg
QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpyZW5kZXJGcm9tQnVmZmVyKEF1ZGlvQnVzKiBidXMsIHVu
c2lnbmVkIGRlc3RpbmF0aW9uCiAgICAgZG91YmxlIHZpcnR1YWxNaW5GcmFtZSA9IDA7CiAgICAg
ZG91YmxlIHZpcnR1YWxEZWx0YUZyYW1lcyA9IG1heEZyYW1lOwogCi0gICAgaWYgKGxvb3AoKSAm
JiAobV9sb29wU3RhcnQgfHwgbV9sb29wRW5kKSAmJiBtX2xvb3BTdGFydCA+PSAwICYmIG1fbG9v
cEVuZCA+IDAgJiYgbV9sb29wU3RhcnQgPCBtX2xvb3BFbmQpIHsKKyAgICBpZiAobV9pc0xvb3Bp
bmcgJiYgKG1fbG9vcFN0YXJ0IHx8IG1fbG9vcEVuZCkgJiYgbV9sb29wU3RhcnQgPj0gMCAmJiBt
X2xvb3BFbmQgPiAwICYmIG1fbG9vcFN0YXJ0IDwgbV9sb29wRW5kKSB7CiAgICAgICAgIC8vIENv
bnZlcnQgZnJvbSBzZWNvbmRzIHRvIHNhbXBsZS1mcmFtZXMuCi0gICAgICAgIGRvdWJsZSBsb29w
TWluRnJhbWUgPSBtX2xvb3BTdGFydCAqIGJ1ZmZlcigpLT5zYW1wbGVSYXRlKCk7Ci0gICAgICAg
IGRvdWJsZSBsb29wTWF4RnJhbWUgPSBtX2xvb3BFbmQgKiBidWZmZXIoKS0+c2FtcGxlUmF0ZSgp
OworICAgICAgICBkb3VibGUgbG9vcE1pbkZyYW1lID0gbV9sb29wU3RhcnQgKiBtX2J1ZmZlci0+
c2FtcGxlUmF0ZSgpOworICAgICAgICBkb3VibGUgbG9vcE1heEZyYW1lID0gbV9sb29wRW5kICog
bV9idWZmZXItPnNhbXBsZVJhdGUoKTsKIAogICAgICAgICB2aXJ0dWFsTWF4RnJhbWUgPSBzdGQ6
Om1pbihsb29wTWF4RnJhbWUsIHZpcnR1YWxNYXhGcmFtZSk7CiAgICAgICAgIHZpcnR1YWxNaW5G
cmFtZSA9IHN0ZDo6bWF4KGxvb3BNaW5GcmFtZSwgdmlydHVhbE1pbkZyYW1lKTsKQEAgLTI0MCw4
ICsyNDAsOCBAQCBib29sIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6cmVuZGVyRnJvbUJ1ZmZlcihB
dWRpb0J1cyogYnVzLCB1bnNpZ25lZCBkZXN0aW5hdGlvbgogCiAgICAgLy8gSWYgd2UncmUgbG9v
cGluZyBhbmQgdGhlIG9mZnNldCAodmlydHVhbFJlYWRJbmRleCkgaXMgcGFzdCB0aGUgZW5kIG9m
IHRoZSBsb29wLCB3cmFwIGJhY2sgdG8gdGhlCiAgICAgLy8gYmVnaW5uaW5nIG9mIHRoZSBsb29w
LiBGb3Igb3RoZXIgY2FzZXMsIG5vdGhpbmcgbmVlZHMgdG8gYmUgZG9uZS4KLSAgICBpZiAobG9v
cCgpICYmIG1fdmlydHVhbFJlYWRJbmRleCA+PSB2aXJ0dWFsTWF4RnJhbWUpIHsKLSAgICAgICAg
bV92aXJ0dWFsUmVhZEluZGV4ID0gKG1fbG9vcFN0YXJ0IDwgMCkgPyAwIDogKG1fbG9vcFN0YXJ0
ICogYnVmZmVyKCktPnNhbXBsZVJhdGUoKSk7CisgICAgaWYgKG1faXNMb29waW5nICYmIG1fdmly
dHVhbFJlYWRJbmRleCA+PSB2aXJ0dWFsTWF4RnJhbWUpIHsKKyAgICAgICAgbV92aXJ0dWFsUmVh
ZEluZGV4ID0gKG1fbG9vcFN0YXJ0IDwgMCkgPyAwIDogKG1fbG9vcFN0YXJ0ICogbV9idWZmZXIt
PnNhbXBsZVJhdGUoKSk7CiAgICAgICAgIG1fdmlydHVhbFJlYWRJbmRleCA9IHN0ZDo6bWluKG1f
dmlydHVhbFJlYWRJbmRleCwgc3RhdGljX2Nhc3Q8ZG91YmxlPihidWZmZXJMZW5ndGggLSAxKSk7
CiAgICAgfQogCkBAIC0zMzksNyArMzM5LDcgQEAgYm9vbCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6
OnJlbmRlckZyb21CdWZmZXIoQXVkaW9CdXMqIGJ1cywgdW5zaWduZWQgZGVzdGluYXRpb24KIAog
ICAgICAgICAgICAgdW5zaWduZWQgcmVhZEluZGV4MiA9IHJlYWRJbmRleCArIDE7CiAgICAgICAg
ICAgICBpZiAocmVhZEluZGV4MiA+PSBtYXhGcmFtZSkKLSAgICAgICAgICAgICAgICByZWFkSW5k
ZXgyID0gbG9vcCgpID8gbWluRnJhbWUgOiByZWFkSW5kZXg7CisgICAgICAgICAgICAgICAgcmVh
ZEluZGV4MiA9IG1faXNMb29waW5nID8gbWluRnJhbWUgOiByZWFkSW5kZXg7CiAKICAgICAgICAg
ICAgIC8vIExpbmVhciBpbnRlcnBvbGF0aW9uLgogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG51bWJlck9mQ2hhbm5lbHM7ICsraSkgewpAQCAtMzY4LDcgKzM2OCw3IEBAIGJv
b2wgQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpyZW5kZXJGcm9tQnVmZmVyKEF1ZGlvQnVzKiBidXMs
IHVuc2lnbmVkIGRlc3RpbmF0aW9uCiAgICAgICAgICAgICAvLyBGb3IgbGluZWFyIGludGVycG9s
YXRpb24gd2UgbmVlZCB0aGUgbmV4dCBzYW1wbGUtZnJhbWUgdG9vLgogICAgICAgICAgICAgdW5z
aWduZWQgcmVhZEluZGV4MiA9IHJlYWRJbmRleCArIDE7CiAgICAgICAgICAgICBpZiAocmVhZElu
ZGV4MiA+PSBidWZmZXJMZW5ndGgpIHsKLSAgICAgICAgICAgICAgICBpZiAobG9vcCgpKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKG1faXNMb29waW5nKSB7CiAgICAgICAgICAgICAgICAgICAgIC8v
IE1ha2Ugc3VyZSB0byB3cmFwIGFyb3VuZCBhdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIuCiAgICAg
ICAgICAgICAgICAgICAgIHJlYWRJbmRleDIgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmlydHVh
bFJlYWRJbmRleCArIDEgLSB2aXJ0dWFsRGVsdGFGcmFtZXMpOwogICAgICAgICAgICAgICAgIH0g
ZWxzZQpAQCAtNDA3LDE5ICs0MDcsMTkgQEAgYm9vbCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnJl
bmRlckZyb21CdWZmZXIoQXVkaW9CdXMqIGJ1cywgdW5zaWduZWQgZGVzdGluYXRpb24KICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
OjpzZXRCdWZmZXIoUmVmUHRyPEF1ZGlvQnVmZmVyPiYmIGJ1ZmZlcikKK0V4Y2VwdGlvbk9yPHZv
aWQ+IEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c2V0QnVmZmVyRm9yQmluZGluZ3MoUmVmUHRyPEF1
ZGlvQnVmZmVyPiYmIGJ1ZmZlcikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAg
IERFQlVHX0xPRyhMT0dJREVOVElGSUVSKTsKIAotICAgIGlmIChidWZmZXIgJiYgbV93YXNCdWZm
ZXJTZXQpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlRo
ZSBidWZmZXIgd2FzIGFscmVhZHkgc2V0Il9zIH07Ci0KICAgICAvLyBUaGUgY29udGV4dCBtdXN0
IGJlIGxvY2tlZCBzaW5jZSBjaGFuZ2luZyB0aGUgYnVmZmVyIGNhbiByZS1jb25maWd1cmUgdGhl
IG51bWJlciBvZiBjaGFubmVscyB0aGF0IGFyZSBvdXRwdXQuCiAgICAgTG9ja2VyIGNvbnRleHRM
b2NrZXIgeyBjb250ZXh0KCkuZ3JhcGhMb2NrKCkgfTsKICAgICAKICAgICAvLyBUaGlzIHN5bmNo
cm9uaXplcyB3aXRoIHByb2Nlc3MoKS4KICAgICBMb2NrZXIgbG9ja2VyIHsgbV9wcm9jZXNzTG9j
ayB9OworCisgICAgaWYgKGJ1ZmZlciAmJiBtX3dhc0J1ZmZlclNldCkKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiVGhlIGJ1ZmZlciB3YXMgYWxyZWFkeSBz
ZXQiX3MgfTsKICAgICAKICAgICBpZiAoYnVmZmVyKSB7CiAgICAgICAgIG1fd2FzQnVmZmVyU2V0
ID0gdHJ1ZTsKQEAgLTQ1Nyw2ICs0NTcsMjcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlOjpzdGFydExhdGVyKGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmYKICAg
ICByZXR1cm4gc3RhcnRQbGF5aW5nKHdoZW4sIGdyYWluT2Zmc2V0LCBncmFpbkR1cmF0aW9uKTsK
IH0KIAordm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnNldExvb3BGb3JCaW5kaW5ncyhib29s
IGxvb3BpbmcpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBMb2NrZXIgbG9j
a2VyIHsgbV9wcm9jZXNzTG9jayB9OworICAgIG1faXNMb29waW5nID0gbG9vcGluZzsKK30KKwor
dm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnNldExvb3BTdGFydEZvckJpbmRpbmdzKGRvdWJs
ZSBsb29wU3RhcnQpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBMb2NrZXIg
bG9ja2VyIHsgbV9wcm9jZXNzTG9jayB9OworICAgIG1fbG9vcFN0YXJ0ID0gbG9vcFN0YXJ0Owor
fQorCit2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c2V0TG9vcEVuZEZvckJpbmRpbmdzKGRv
dWJsZSBsb29wRW5kKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgTG9ja2Vy
IGxvY2tlciB7IG1fcHJvY2Vzc0xvY2sgfTsKKyAgICBtX2xvb3BFbmQgPSBsb29wRW5kOworfQor
CiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnN0YXJ0UGxheWluZyhk
b3VibGUgd2hlbiwgZG91YmxlIGdyYWluT2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gZ3Jh
aW5EdXJhdGlvbikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtNDk2LDE5ICs1
MTcsMTggQEAgdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OmFkanVzdEdyYWluUGFyYW1ldGVy
cygpCiB7CiAgICAgQVNTRVJUKG1fcHJvY2Vzc0xvY2suaXNIZWxkKCkpOwogCi0gICAgYXV0byBi
dWZmZXIgPSB0aGlzLT5idWZmZXIoKTsKLSAgICBpZiAoIWJ1ZmZlcikKKyAgICBpZiAoIW1fYnVm
ZmVyKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBEbyBzYW5pdHkgY2hlY2tpbmcgb2YgZ3Jh
aW4gcGFyYW1ldGVycyB2ZXJzdXMgYnVmZmVyIHNpemUuCi0gICAgZG91YmxlIGJ1ZmZlckR1cmF0
aW9uID0gYnVmZmVyLT5kdXJhdGlvbigpOworICAgIGRvdWJsZSBidWZmZXJEdXJhdGlvbiA9IG1f
YnVmZmVyLT5kdXJhdGlvbigpOwogCiAgICAgbV9ncmFpbk9mZnNldCA9IHN0ZDo6bWluKGJ1ZmZl
ckR1cmF0aW9uLCBtX2dyYWluT2Zmc2V0KTsKIAogICAgIGlmICghbV93YXNHcmFpbkR1cmF0aW9u
R2l2ZW4pCiAgICAgICAgIG1fZ3JhaW5EdXJhdGlvbiA9IGJ1ZmZlckR1cmF0aW9uIC0gbV9ncmFp
bk9mZnNldDsKIAotICAgIGlmIChtX3dhc0dyYWluRHVyYXRpb25HaXZlbiAmJiBsb29wKCkpIHsK
KyAgICBpZiAobV93YXNHcmFpbkR1cmF0aW9uR2l2ZW4gJiYgbV9pc0xvb3BpbmcpIHsKICAgICAg
ICAgLy8gV2UncmUgbG9vcGluZyBhIGdyYWluIHdpdGggYSBncmFpbiBkdXJhdGlvbiBzcGVjaWZp
ZWQuIFNjaGVkdWxlIHRoZSBsb29wCiAgICAgICAgIC8vIHRvIHN0b3AgYWZ0ZXIgZ3JhaW5EdXJh
dGlvbiBzZWNvbmRzIGFmdGVyIHN0YXJ0aW5nLCBwb3NzaWJseSBydW5uaW5nIHRoZQogICAgICAg
ICAvLyBsb29wIG11bHRpcGxlIHRpbWVzIGlmIGdyYWluRHVyYXRpb24gaXMgbGFyZ2VyIHRoYW4g
dGhlIGJ1ZmZlciBkdXJhdGlvbi4KQEAgLTUyMyw5ICs1NDMsOSBAQCB2b2lkIEF1ZGlvQnVmZmVy
U291cmNlTm9kZTo6YWRqdXN0R3JhaW5QYXJhbWV0ZXJzKCkKICAgICAvLyBXaGVuIGFsaWduZWQg
dG8gdGhlIHNhbXBsZS1mcmFtZSB0aGUgcGxheWJhY2sgd2lsbCBiZSBpZGVudGljYWwgdG8gdGhl
IFBDTSBkYXRhIHN0b3JlZCBpbiB0aGUgYnVmZmVyLgogICAgIC8vIFNpbmNlIHBsYXliYWNrUmF0
ZSA9PSAxIGlzIHZlcnkgY29tbW9uLCBpdCdzIHdvcnRoIGNvbnNpZGVyaW5nIHF1YWxpdHkuCiAg
ICAgaWYgKHBsYXliYWNrUmF0ZSgpLnZhbHVlKCkgPCAwKQotICAgICAgICBtX3ZpcnR1YWxSZWFk
SW5kZXggPSBBdWRpb1V0aWxpdGllczo6dGltZVRvU2FtcGxlRnJhbWUobV9ncmFpbk9mZnNldCAr
IG1fZ3JhaW5EdXJhdGlvbiwgYnVmZmVyLT5zYW1wbGVSYXRlKCkpIC0gMTsKKyAgICAgICAgbV92
aXJ0dWFsUmVhZEluZGV4ID0gQXVkaW9VdGlsaXRpZXM6OnRpbWVUb1NhbXBsZUZyYW1lKG1fZ3Jh
aW5PZmZzZXQgKyBtX2dyYWluRHVyYXRpb24sIG1fYnVmZmVyLT5zYW1wbGVSYXRlKCkpIC0gMTsK
ICAgICBlbHNlCi0gICAgICAgIG1fdmlydHVhbFJlYWRJbmRleCA9IEF1ZGlvVXRpbGl0aWVzOjp0
aW1lVG9TYW1wbGVGcmFtZShtX2dyYWluT2Zmc2V0LCBidWZmZXItPnNhbXBsZVJhdGUoKSk7Cisg
ICAgICAgIG1fdmlydHVhbFJlYWRJbmRleCA9IEF1ZGlvVXRpbGl0aWVzOjp0aW1lVG9TYW1wbGVG
cmFtZShtX2dyYWluT2Zmc2V0LCBtX2J1ZmZlci0+c2FtcGxlUmF0ZSgpKTsKIH0KIAogZG91Ymxl
IEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6dG90YWxQaXRjaFJhdGUoKQpAQCAtNTMzLDggKzU1Myw4
IEBAIGRvdWJsZSBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnRvdGFsUGl0Y2hSYXRlKCkKICAgICAv
LyBJbmNvcnBvcmF0ZSBidWZmZXIncyBzYW1wbGUtcmF0ZSB2ZXJzdXMgQXVkaW9Db250ZXh0J3Mg
c2FtcGxlLXJhdGUuCiAgICAgLy8gTm9ybWFsbHkgaXQncyBub3QgYW4gaXNzdWUgYmVjYXVzZSBi
dWZmZXJzIGFyZSBsb2FkZWQgYXQgdGhlIEF1ZGlvQ29udGV4dCdzIHNhbXBsZS1yYXRlLCBidXQg
d2UgY2FuIGhhbmRsZSBpdCBpbiBhbnkgY2FzZS4KICAgICBkb3VibGUgc2FtcGxlUmF0ZUZhY3Rv
ciA9IDEuMDsKLSAgICBpZiAoYnVmZmVyKCkpCi0gICAgICAgIHNhbXBsZVJhdGVGYWN0b3IgPSBi
dWZmZXIoKS0+c2FtcGxlUmF0ZSgpIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPihzYW1wbGVSYXRlKCkp
OworICAgIGlmIChtX2J1ZmZlcikKKyAgICAgICAgc2FtcGxlUmF0ZUZhY3RvciA9IG1fYnVmZmVy
LT5zYW1wbGVSYXRlKCkgLyBzdGF0aWNfY2FzdDxkb3VibGU+KHNhbXBsZVJhdGUoKSk7CiAgICAg
CiAgICAgZG91YmxlIGJhc2VQaXRjaFJhdGUgPSBwbGF5YmFja1JhdGUoKS5maW5hbFZhbHVlKCk7
CiAgICAgZG91YmxlIGRldHVuZSA9IHBvdygyLCBtX2RldHVuZS0+ZmluYWxWYWx1ZSgpIC8gMTIw
MCk7CkBAIC01NTMsNyArNTczLDE2IEBAIGRvdWJsZSBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnRv
dGFsUGl0Y2hSYXRlKCkKIAogYm9vbCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnByb3BhZ2F0ZXNT
aWxlbmNlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gIWlzUGxheWluZ09yU2NoZWR1bGVkKCkgfHwg
aGFzRmluaXNoZWQoKSB8fCAhbV9idWZmZXI7CisgICAgQVNTRVJUKGNvbnRleHQoKS5pc0F1ZGlv
VGhyZWFkKCkpOworICAgIGlmICghaXNQbGF5aW5nT3JTY2hlZHVsZWQoKSB8fCBoYXNGaW5pc2hl
ZCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICghbV9wcm9jZXNzTG9jay50cnlM
b2NrKCkpIHsKKyAgICAgICAgLy8gV2Ugd2VyZW4ndCBhYmxlIHRvIGdldCB0aGUgbG9jayBzbyB3
ZSBhc3N1bWUgd2UgaGF2ZSBhIGJ1ZmZlci4KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgcmV0
dXJuICFtX2J1ZmZlcjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmgK
aW5kZXggN2U1OWU5MDg1NjU0YzRkYmJmMTM1YzJkYmQ3ZDNiZjI5YmEwODA2MS4uNmYxMzhiMzBm
NjZkZjJjYzI5MzY3YjdkZjQxZmExYTBjYjY2ZDNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCkBAIC00OSw5
ICs0OSwxMSBAQCBwdWJsaWM6CiAgICAgLy8gQXVkaW9Ob2RlCiAgICAgdm9pZCBwcm9jZXNzKHNp
emVfdCBmcmFtZXNUb1Byb2Nlc3MpIGZpbmFsOwogCi0gICAgLy8gc2V0QnVmZmVyKCkgaXMgY2Fs
bGVkIG9uIHRoZSBtYWluIHRocmVhZC4gIFRoaXMgaXMgdGhlIGJ1ZmZlciB3ZSB1c2UgZm9yIHBs
YXliYWNrLgotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEJ1ZmZlcihSZWZQdHI8QXVkaW9CdWZm
ZXI+JiYpOwotICAgIEF1ZGlvQnVmZmVyKiBidWZmZXIoKSB7IHJldHVybiBtX2J1ZmZlci5nZXQo
KTsgfQorICAgIC8vIHNldEJ1ZmZlckZvckJpbmRpbmdzKCkgaXMgY2FsbGVkIG9uIHRoZSBtYWlu
IHRocmVhZC4gVGhpcyBpcyB0aGUgYnVmZmVyIHdlIHVzZSBmb3IgcGxheWJhY2suCisgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gc2V0QnVmZmVyRm9yQmluZGluZ3MoUmVmUHRyPEF1ZGlvQnVmZmVyPiYm
KTsKKworICAgIC8vIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgbG9jayBiZWZvcmUgYWNjZXNzaW5n
IHRoZSBidWZmZXIgYW5kIHNob3VsZCB0aGVyZWZvcmUgb25seSBiZSBjYWxsZWQgb24gdGhlIG1h
aW4gdGhyZWFkLgorICAgIEF1ZGlvQnVmZmVyKiBidWZmZXJGb3JCaW5kaW5ncygpIFdURl9JR05P
UkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMgeyBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOyByZXR1
cm4gbV9idWZmZXIuZ2V0KCk7IH0KIAogICAgIC8vIG51bWJlck9mQ2hhbm5lbHMoKSByZXR1cm5z
IHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNoYW5uZWxzLiAgVGhpcyB2YWx1ZSBlcXVhbHMgdGhlIG51
bWJlciBvZiBjaGFubmVscyBmcm9tIHRoZSBidWZmZXIuCiAgICAgLy8gSWYgYSBuZXcgYnVmZmVy
IGlzIHNldCB3aXRoIGEgZGlmZmVyZW50IG51bWJlciBvZiBjaGFubmVscywgdGhlbiB0aGlzIHZh
bHVlIHdpbGwgZHluYW1pY2FsbHkgY2hhbmdlLgpAQCAtNjAsMTcgKzYyLDE1IEBAIHB1YmxpYzoK
ICAgICAvLyBQbGF5LXN0YXRlCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc3RhcnRMYXRlcihkb3Vi
bGUgd2hlbiwgZG91YmxlIGdyYWluT2Zmc2V0LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gZ3JhaW5E
dXJhdGlvbik7CiAKLSAgICAvLyBOb3RlOiB0aGUgYXR0cmlidXRlIHdhcyBvcmlnaW5hbGx5IGV4
cG9zZWQgYXMgLmxvb3BpbmcsIGJ1dCB0byBiZSBtb3JlIGNvbnNpc3RlbnQgaW4gbmFtaW5nIHdp
dGggPGF1ZGlvPgotICAgIC8vIGFuZCB3aXRoIGhvdyBpdCdzIGRlc2NyaWJlZCBpbiB0aGUgc3Bl
Y2lmaWNhdGlvbiwgdGhlIHByb3BlciBhdHRyaWJ1dGUgbmFtZSBpcyAubG9vcAotICAgIC8vIFRo
ZSBvbGQgYXR0cmlidXRlIGlzIGtlcHQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgotICAg
IGJvb2wgbG9vcCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMb29waW5nOyB9Ci0gICAgdm9pZCBzZXRM
b29wKGJvb2wgbG9vcGluZykgeyBtX2lzTG9vcGluZyA9IGxvb3Bpbmc7IH0KKyAgICAvLyBUaGlz
IGZ1bmN0aW9uIGRvZXNuJ3QgZ3JhYiB0aGUgbG9jayBiZWZvcmUgYWNjZXNzaW5nIG1faXNMb29w
aW5nIGFuZCBpcyB0aHVzIG9ubHkgc2FmZSB0byBjYWxsIG9uIHRoZSBtYWluIHRocmVhZC4KKyAg
ICBib29sIGxvb3BGb3JCaW5kaW5ncygpIGNvbnN0IFdURl9JR05PUkVTX1RIUkVBRF9TQUZFVFlf
QU5BTFlTSVMgeyBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOyByZXR1cm4gbV9pc0xvb3Bpbmc7IH0K
KyAgICB2b2lkIHNldExvb3BGb3JCaW5kaW5ncyhib29sKTsKIAogICAgIC8vIExvb3AgdGltZXMg
aW4gc2Vjb25kcy4KLSAgICBkb3VibGUgbG9vcFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9sb29w
U3RhcnQ7IH0KLSAgICBkb3VibGUgbG9vcEVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9vcEVuZDsg
fQotICAgIHZvaWQgc2V0TG9vcFN0YXJ0KGRvdWJsZSBsb29wU3RhcnQpIHsgbV9sb29wU3RhcnQg
PSBsb29wU3RhcnQ7IH0KLSAgICB2b2lkIHNldExvb3BFbmQoZG91YmxlIGxvb3BFbmQpIHsgbV9s
b29wRW5kID0gbG9vcEVuZDsgfQorICAgIGRvdWJsZSBsb29wU3RhcnRGb3JCaW5kaW5ncygpIGNv
bnN0IFdURl9JR05PUkVTX1RIUkVBRF9TQUZFVFlfQU5BTFlTSVMgeyBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOyByZXR1cm4gbV9sb29wU3RhcnQ7IH0gLy8gVGhpcyBmdW5jdGlvbiBkb2Vzbid0IGdy
YWIgdGhlIGxvY2sgYW5kIGlzIHRodXMgb25seSBzYWZlIHRvIGNhbGwgb24gdGhlIG1haW4gdGhy
ZWFkLgorICAgIGRvdWJsZSBsb29wRW5kRm9yQmluZGluZ3MoKSBjb25zdCBXVEZfSUdOT1JFU19U
SFJFQURfU0FGRVRZX0FOQUxZU0lTIHsgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsgcmV0dXJuIG1f
bG9vcEVuZDsgfSAvLyBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3QgZ3JhYiB0aGUgbG9jayBhbmQgaXMg
dGh1cyBvbmx5IHNhZmUgdG8gY2FsbCBvbiB0aGUgbWFpbiB0aHJlYWQuCisgICAgdm9pZCBzZXRM
b29wU3RhcnRGb3JCaW5kaW5ncyhkb3VibGUpOworICAgIHZvaWQgc2V0TG9vcEVuZEZvckJpbmRp
bmdzKGRvdWJsZSk7CiAKICAgICBBdWRpb1BhcmFtJiBkZXR1bmUoKSB7IHJldHVybiBtX2RldHVu
ZS5nZXQoKTsgfQogICAgIEF1ZGlvUGFyYW0mIHBsYXliYWNrUmF0ZSgpIHsgcmV0dXJuIG1fcGxh
eWJhY2tSYXRlLmdldCgpOyB9CkBAIC04OCwxNiArODgsMTYgQEAgcHJpdmF0ZToKICAgICBkb3Vi
bGUgbGF0ZW5jeVRpbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9CiAKICAgICBFeGNlcHRp
b25Pcjx2b2lkPiBzdGFydFBsYXlpbmcoZG91YmxlIHdoZW4sIGRvdWJsZSBncmFpbk9mZnNldCwg
c3RkOjpvcHRpb25hbDxkb3VibGU+IGdyYWluRHVyYXRpb24pOwotICAgIHZvaWQgYWRqdXN0R3Jh
aW5QYXJhbWV0ZXJzKCk7CisgICAgdm9pZCBhZGp1c3RHcmFpblBhcmFtZXRlcnMoKSBXVEZfUkVR
VUlSRVNfTE9DSyhtX3Byb2Nlc3NMb2NrKTsKIAogICAgIC8vIFJldHVybnMgdHJ1ZSBvbiBzdWNj
ZXNzLgotICAgIGJvb2wgcmVuZGVyRnJvbUJ1ZmZlcihBdWRpb0J1cyosIHVuc2lnbmVkIGRlc3Rp
bmF0aW9uRnJhbWVPZmZzZXQsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZG91YmxlIHN0YXJ0RnJh
bWVPZmZzZXQpOworICAgIGJvb2wgcmVuZGVyRnJvbUJ1ZmZlcihBdWRpb0J1cyosIHVuc2lnbmVk
IGRlc3RpbmF0aW9uRnJhbWVPZmZzZXQsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZG91YmxlIHN0
YXJ0RnJhbWVPZmZzZXQpIFdURl9SRVFVSVJFU19MT0NLKG1fcHJvY2Vzc0xvY2spOwogCiAgICAg
Ly8gUmVuZGVyIHNpbGVuY2Ugc3RhcnRpbmcgZnJvbSAiaW5kZXgiIGZyYW1lIGluIEF1ZGlvQnVz
LgotICAgIGlubGluZSBib29sIHJlbmRlclNpbGVuY2VBbmRGaW5pc2hJZk5vdExvb3BpbmcoQXVk
aW9CdXMqLCB1bnNpZ25lZCBpbmRleCwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgaW5s
aW5lIGJvb2wgcmVuZGVyU2lsZW5jZUFuZEZpbmlzaElmTm90TG9vcGluZyhBdWRpb0J1cyosIHVu
c2lnbmVkIGluZGV4LCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBXVEZfUkVRVUlSRVNfTE9DSyht
X3Byb2Nlc3NMb2NrKTsKIAogICAgIC8vIG1fYnVmZmVyIGhvbGRzIHRoZSBzYW1wbGUgZGF0YSB3
aGljaCB0aGlzIG5vZGUgb3V0cHV0cy4KLSAgICBSZWZQdHI8QXVkaW9CdWZmZXI+IG1fYnVmZmVy
OworICAgIFJlZlB0cjxBdWRpb0J1ZmZlcj4gbV9idWZmZXIgV1RGX0dVQVJERURfQllfTE9DSyht
X3Byb2Nlc3NMb2NrKTsgLy8gT25seSBtb2RpZmllZCBvbiB0aGUgbWFpbiB0aHJlYWQgYnV0IHVz
ZWQgb24gdGhlIGF1ZGlvIHRocmVhZC4KIAogICAgIC8vIFBvaW50ZXJzIGZvciB0aGUgYnVmZmVy
IGFuZCBkZXN0aW5hdGlvbi4KICAgICBVbmlxdWVBcnJheTxjb25zdCBmbG9hdCo+IG1fc291cmNl
Q2hhbm5lbHM7CkBAIC0xMDgsMjYgKzEwOCwyNiBAQCBwcml2YXRlOgogCiAgICAgLy8gSWYgbV9p
c0xvb3BpbmcgaXMgZmFsc2UsIHRoZW4gdGhpcyBub2RlIHdpbGwgYmUgZG9uZSBwbGF5aW5nIGFu
ZCBiZWNvbWUgaW5hY3RpdmUgYWZ0ZXIgaXQgcmVhY2hlcyB0aGUgZW5kIG9mIHRoZSBzYW1wbGUg
ZGF0YSBpbiB0aGUgYnVmZmVyLgogICAgIC8vIElmIHRydWUsIGl0IHdpbGwgd3JhcCBhcm91bmQg
dG8gdGhlIHN0YXJ0IG9mIHRoZSBidWZmZXIgZWFjaCB0aW1lIGl0IHJlYWNoZXMgdGhlIGVuZC4K
LSAgICBib29sIG1faXNMb29waW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNMb29waW5nIFdU
Rl9HVUFSREVEX0JZX0xPQ0sobV9wcm9jZXNzTG9jaykgeyBmYWxzZSB9OyAvLyBPbmx5IG1vZGlm
aWVkIG9uIHRoZSBtYWluIHRocmVhZCBidXQgcXVlcmllZCBvbiB0aGUgYXVkaW8gdGhyZWFkLgog
CiAgICAgYm9vbCBtX3dhc0J1ZmZlclNldCB7IGZhbHNlIH07CiAKLSAgICBkb3VibGUgbV9sb29w
U3RhcnQgeyAwIH07Ci0gICAgZG91YmxlIG1fbG9vcEVuZCB7IDAgfTsKKyAgICBkb3VibGUgbV9s
b29wU3RhcnQgV1RGX0dVQVJERURfQllfTE9DSyhtX3Byb2Nlc3NMb2NrKSB7IDAgfTsgLy8gT25s
eSBtb2RpZmllZCBvbiB0aGUgbWFpbiB0aHJlYWQgYnV0IHF1ZXJpZWQgb24gdGhlIGF1ZGlvIHRo
cmVhZC4KKyAgICBkb3VibGUgbV9sb29wRW5kIFdURl9HVUFSREVEX0JZX0xPQ0sobV9wcm9jZXNz
TG9jaykgeyAwIH07IC8vIE9ubHkgbW9kaWZpZWQgb24gdGhlIG1haW4gdGhyZWFkIGJ1dCBxdWVy
aWVkIG9uIHRoZSBhdWRpbyB0aHJlYWQuCiAKICAgICAvLyBtX3ZpcnR1YWxSZWFkSW5kZXggaXMg
YSBzYW1wbGUtZnJhbWUgaW5kZXggaW50byBvdXIgYnVmZmVyIHJlcHJlc2VudGluZyB0aGUgY3Vy
cmVudCBwbGF5YmFjayBwb3NpdGlvbi4KICAgICAvLyBTaW5jZSBpdCdzIGZsb2F0aW5nLXBvaW50
LCBpdCBoYXMgc3ViLXNhbXBsZSBhY2N1cmFjeS4KICAgICBkb3VibGUgbV92aXJ0dWFsUmVhZElu
ZGV4IHsgMCB9OwogCiAgICAgLy8gR3JhbnVsYXIgcGxheWJhY2sKLSAgICBib29sIG1faXNHcmFp
biB7IGZhbHNlIH07Ci0gICAgZG91YmxlIG1fZ3JhaW5PZmZzZXQgeyAwIH07IC8vIGluIHNlY29u
ZHMKLSAgICBkb3VibGUgbV9ncmFpbkR1cmF0aW9uOyAvLyBpbiBzZWNvbmRzCi0gICAgZG91Ymxl
IG1fd2FzR3JhaW5EdXJhdGlvbkdpdmVuIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNHcmFpbiBX
VEZfR1VBUkRFRF9CWV9MT0NLKG1fcHJvY2Vzc0xvY2spIHsgZmFsc2UgfTsKKyAgICBkb3VibGUg
bV9ncmFpbk9mZnNldCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fcHJvY2Vzc0xvY2spIHsgMCB9OyAv
LyBpbiBzZWNvbmRzCisgICAgZG91YmxlIG1fZ3JhaW5EdXJhdGlvbiBXVEZfR1VBUkRFRF9CWV9M
T0NLKG1fcHJvY2Vzc0xvY2spOyAvLyBpbiBzZWNvbmRzCisgICAgZG91YmxlIG1fd2FzR3JhaW5E
dXJhdGlvbkdpdmVuIFdURl9HVUFSREVEX0JZX0xPQ0sobV9wcm9jZXNzTG9jaykgeyBmYWxzZSB9
OwogCiAgICAgLy8gdG90YWxQaXRjaFJhdGUoKSByZXR1cm5zIHRoZSBpbnN0YW50YW5lb3VzIHBp
dGNoIHJhdGUgKG5vbi10aW1lIHByZXNlcnZpbmcpLgogICAgIC8vIEl0IGluY29ycG9yYXRlcyB0
aGUgYmFzZSBwaXRjaCByYXRlLCBhbnkgc2FtcGxlLXJhdGUgY29udmVyc2lvbiBmYWN0b3IgZnJv
bSB0aGUgYnVmZmVyLgotICAgIGRvdWJsZSB0b3RhbFBpdGNoUmF0ZSgpOworICAgIGRvdWJsZSB0
b3RhbFBpdGNoUmF0ZSgpIFdURl9SRVFVSVJFU19MT0NLKG1fcHJvY2Vzc0xvY2spOwogCiAgICAg
Ly8gVGhpcyBzeW5jaHJvbml6ZXMgcHJvY2VzcygpIHdpdGggc2V0QnVmZmVyKCkgd2hpY2ggY2Fu
IGNhdXNlIGR5bmFtaWMgY2hhbm5lbCBjb3VudCBjaGFuZ2VzLgogICAgIG11dGFibGUgTG9jayBt
X3Byb2Nlc3NMb2NrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsCmluZGV4IDAzYjQ3ZDcyOGFlNDBhYWFkODE3
YjYwZjIzYzYyZTM3ODFlMTMxZTAuLjU5OGU1YWQwZDgzYjdhZmFhYTdkOWMwNjNkZTU3ZmNmNjgx
OTEzMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9C
dWZmZXJTb3VyY2VOb2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwKQEAgLTMxLDE0ICszMSwxNCBAQAogXSBpbnRlcmZh
Y2UgQXVkaW9CdWZmZXJTb3VyY2VOb2RlIDogQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlIHsKICAg
ICBbRW5hYmxlZEJ5U2V0dGluZz1XZWJBdWRpb10gY29uc3RydWN0b3IgKEJhc2VBdWRpb0NvbnRl
eHQgY29udGV4dCwgb3B0aW9uYWwgQXVkaW9CdWZmZXJTb3VyY2VPcHRpb25zIG9wdGlvbnMpOwog
Ci0gICAgYXR0cmlidXRlIEF1ZGlvQnVmZmVyPyBidWZmZXI7CisgICAgW0ltcGxlbWVudGVkQXM9
YnVmZmVyRm9yQmluZGluZ3NdIGF0dHJpYnV0ZSBBdWRpb0J1ZmZlcj8gYnVmZmVyOwogCiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvUGFyYW0gcGxheWJhY2tSYXRlOwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBBdWRpb1BhcmFtIGRldHVuZTsKIAotICAgIGF0dHJpYnV0ZSBib29sZWFuIGxv
b3A7Ci0gICAgYXR0cmlidXRlIGRvdWJsZSBsb29wU3RhcnQ7Ci0gICAgYXR0cmlidXRlIGRvdWJs
ZSBsb29wRW5kOworICAgIFtJbXBsZW1lbnRlZEFzPWxvb3BGb3JCaW5kaW5nc10gYXR0cmlidXRl
IGJvb2xlYW4gbG9vcDsKKyAgICBbSW1wbGVtZW50ZWRBcz1sb29wU3RhcnRGb3JCaW5kaW5nc10g
YXR0cmlidXRlIGRvdWJsZSBsb29wU3RhcnQ7CisgICAgW0ltcGxlbWVudGVkQXM9bG9vcEVuZEZv
ckJpbmRpbmdzXSBhdHRyaWJ1dGUgZG91YmxlIGxvb3BFbmQ7CiAKICAgICBbSW1wbGVtZW50ZWRB
cz1zdGFydExhdGVyXSB1bmRlZmluZWQgc3RhcnQob3B0aW9uYWwgZG91YmxlIHdoZW4gPSAwLCBv
cHRpb25hbCBkb3VibGUgZ3JhaW5PZmZzZXQgPSAwLCBvcHRpb25hbCBkb3VibGUgZ3JhaW5EdXJh
dGlvbik7CiB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>