<?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>188097</bug_id>
          
          <creation_ts>2018-07-27 10:45:17 -0700</creation_ts>
          <short_desc>Fix thread-safety issues related to RealtimeMediaSource::audioSamplesAvailable()</short_desc>
          <delta_ts>2018-07-27 15:34:34 -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>Media</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>
          
          <blocked>187284</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1445751</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-27 10:45:17 -0700</bug_when>
    <thetext>Fix thread-safety issues related to RealtimeMediaSource::audioSamplesAvailable(). RealtimeMediaSource::audioSamplesAvailable() is called on a background thread but iterates over observers that may get destroyed concurrently on the main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445758</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-27 11:05:10 -0700</bug_when>
    <thetext>&lt;rdar://problem/42558823&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445831</commentid>
    <comment_count>2</comment_count>
      <attachid>345943</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-27 13:02:03 -0700</bug_when>
    <thetext>Created attachment 345943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445856</commentid>
    <comment_count>3</comment_count>
      <attachid>345950</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-27 13:53:37 -0700</bug_when>
    <thetext>Created attachment 345950
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445897</commentid>
    <comment_count>4</comment_count>
      <attachid>345950</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-27 15:33:58 -0700</bug_when>
    <thetext>Comment on attachment 345950
Patch

Clearing flags on attachment: 345950

Committed r234334: &lt;https://trac.webkit.org/changeset/234334&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445898</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-27 15:34:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445900</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-27 15:34:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/42677538&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345943</attachid>
            <date>2018-07-27 13:02:03 -0700</date>
            <delta_ts>2018-07-27 13:53:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188097-20180727130203.patch</filename>
            <type>text/plain</type>
            <size>19280</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0MzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZmN2ZjODdlNjE4NTI4
NDJjMTQ5NGEzNjE2OGRjZjEwODQ0MWVmNy4uODIzYTAxNDc5YjJiNjg2NmMzYTM0N2M3ZjEyYmYz
ODE3MmQ5ZTA4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE4LTA3LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IHRocmVhZC1zYWZldHkg
aXNzdWVzIHJlbGF0ZWQgdG8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxh
YmxlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
ODA5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDI1NTg4MjM+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHRocmVhZC1zYWZldHkgaXNzdWVz
IHJlbGF0ZWQgdG8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKCku
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSgpCisgICAgICAgIGlz
IGNhbGxlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkIGJ1dCBpdGVyYXRlcyBvdmVyIG9ic2VydmVy
cyB0aGF0IG1heSBnZXQgZGVzdHJveWVkIGNvbmN1cnJlbnRseSBvbiB0aGUgbWFpbiB0aHJlYWQu
CisKKyAgICAgICAgVG8gYWRkcmVzcyB0aGUgaXNzdWU6CisgICAgICAgIC0gSW50cm9kdWNlIGEg
TG9jayB0byBwcm90ZWN0IG1fb2JzZXJ2ZXIgYWNjZXNzZXMKKyAgICAgICAgLSBDb3B5IG9ic2Vy
dmVycyB0byBhIFZlY3RvciBiZWZvcmUgaXRlcmF0aW5nIG92ZXIgdGhlbQorCisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmZvckVhY2hPYnNlcnZlciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6YWRkT2JzZXJ2
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnJlbW92ZU9i
c2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpzZXRF
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjplbmRU
cmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNl
U3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291
cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6
c291cmNlTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjpzb3VyY2VTZXR0aW5nc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnVwZGF0ZVJlYWR5U3RhdGUp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXI6
OnNhbXBsZUJ1ZmZlclVwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU6Ok9ic2VydmVyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3ZlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6Zm9yRWFjaE9ic2VydmVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6Om5vdGlmeU11dGVkT2JzZXJ2ZXJzIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldHRpbmdzRGlkQ2hh
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxl
QXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0
U3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFp
bGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW1Db2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0
ZU1lZGlhU3RyZWFtQ29jb2E6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMubW06CisKIDIwMTgtMDctMjYgIEFuZHkgVmFuV2Fnb25lciAgPGFuZHlAdmFu
d2Fnb25lci5mYW1pbHk+CiAKICAgICAgICAgW0lOVExdIFJlbW92ZSBJTlRMIHN1Yi1mZWF0dXJl
IGNvbXBpbGUgZmxhZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNWViOGYwNTA5NDQ2ZGVjMjc4MjJlZDk5Mjk0ZGVj
MmI1OTBiYTQxZi4uM2Y3ZWE4MDE3MzdjYTZhYzM5M2M5OWY5ODUyMjhkMWE5NTlkNDU2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0wNy0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIEZpeCB0aHJlYWQtc2FmZXR5IGlzc3VlcyByZWxhdGVkIHRv
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSgpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODgwOTcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQyNTU4ODIzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuY3BwOgorCiAyMDE4LTA3LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgTG9hZGluZyBhIGZpbGUgVVJMIGFuZCB0aGVuIGlzc3VpbmcgYSByZWxvYWQg
cmlnaHQgYXdheSBjYXVzZXMgdGhlIGxvYWQgdG8gZmFpbCBkdWUgdG8gc2FuZGJveGluZwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCmluZGV4IGQ3YWJiZGYwMmU0NTBkOGIzYzE2MDI3YjVi
M2I2ZTNjZjFhODMyOTkuLjM5OTIzM2JkNDg3Y2I4NDE3ZmE4NjJhYjgwYjY4NmMzZTFkNTdhNDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKQEAgLTYzLDE2ICs2MywzMiBAQCBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6fk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKCkKICAgICBtX3Nv
dXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCit2b2lkIE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjpmb3JFYWNoT2JzZXJ2ZXIoY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKE9ic2VydmVy
Jik+JiBhcHBseSkgY29uc3QKK3sKKyAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBvYnNlcnZlcnNDb3B5
OworICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9vYnNlcnZlcnNMb2NrKTsKKyAg
ICAgICAgb2JzZXJ2ZXJzQ29weSA9IGNvcHlUb1ZlY3RvcihtX29ic2VydmVycyk7CisgICAgfQor
ICAgIGZvciAoYXV0byogb2JzZXJ2ZXIgOiBvYnNlcnZlcnNDb3B5KSB7CisgICAgICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJzTG9jayk7CisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUg
b2JzZXJ2ZXIgaGFzIG5vdCBiZWVuIGRlc3Ryb3llZC4KKyAgICAgICAgaWYgKCFtX29ic2VydmVy
cy5jb250YWlucyhvYnNlcnZlcikpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXBw
bHkoKm9ic2VydmVyKTsKKyAgICB9Cit9CisKIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
OmFkZE9ic2VydmVyKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciYgb2JzZXJ2ZXIp
CiB7Ci0gICAgbV9vYnNlcnZlcnMuYXBwZW5kKCZvYnNlcnZlcik7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9vYnNlcnZlcnNMb2NrKTsKKyAgICBtX29ic2VydmVycy5hZGQoJm9ic2VydmVyKTsK
IH0KIAogdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyJiBvYnNlcnZlcikKIHsKLSAgICBzaXplX3QgcG9z
ID0gbV9vYnNlcnZlcnMuZmluZCgmb2JzZXJ2ZXIpOwotICAgIGlmIChwb3MgIT0gbm90Rm91bmQp
Ci0gICAgICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZShwb3MpOworICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fb2JzZXJ2ZXJzTG9jayk7CisgICAgbV9vYnNlcnZlcnMucmVtb3ZlKCZvYnNlcnZlcik7CiB9
CiAKIGNvbnN0IFN0cmluZyYgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmxhYmVsKCkgY29uc3QK
QEAgLTk4LDggKzExNCw5IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNldEVuYWJs
ZWQoYm9vbCBlbmFibGVkKQogICAgIC8vIEFsd2F5cyB1cGRhdGUgdGhlIGVuYWJsZWQgc3RhdGUg
cmVnYXJkbGVzcyBvZiB0aGUgdHJhY2sgYmVpbmcgZW5kZWQuCiAgICAgbV9pc0VuYWJsZWQgPSBl
bmFibGVkOwogCi0gICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQotICAgICAg
ICBvYnNlcnZlci0+dHJhY2tFbmFibGVkQ2hhbmdlZCgqdGhpcyk7CisgICAgZm9yRWFjaE9ic2Vy
dmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci50cmFja0VuYWJs
ZWRDaGFuZ2VkKCp0aGlzKTsKKyAgICB9KTsKIH0KIAogdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZTo6ZW5kVHJhY2soKQpAQCAtMTE1LDggKzEzMiw5IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU6OmVuZFRyYWNrKCkKIAogICAgIG1fc291cmNlLT5yZXF1ZXN0U3RvcCh0aGlzKTsK
IAotICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKLSAgICAgICAgb2JzZXJ2
ZXItPnRyYWNrRW5kZWQoKnRoaXMpOworICAgIGZvckVhY2hPYnNlcnZlcihbdGhpc10oYXV0byYg
b2JzZXJ2ZXIpIHsKKyAgICAgICAgb2JzZXJ2ZXIudHJhY2tFbmRlZCgqdGhpcyk7CisgICAgfSk7
CiB9CiAKIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU6OmNsb25lKCkKQEAgLTE2MCw4ICsxNzgsOSBAQCBBdWRpb1NvdXJjZVByb3ZpZGVyKiBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6YXVkaW9Tb3VyY2VQcm92aWRlcigpCiAKIHZvaWQgTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU6OnNvdXJjZVN0YXJ0ZWQoKQogewotICAgIGZvciAoYXV0byYgb2Jz
ZXJ2ZXIgOiBtX29ic2VydmVycykKLSAgICAgICAgb2JzZXJ2ZXItPnRyYWNrU3RhcnRlZCgqdGhp
cyk7CisgICAgZm9yRWFjaE9ic2VydmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAg
ICBvYnNlcnZlci50cmFja1N0YXJ0ZWQoKnRoaXMpOworICAgIH0pOwogfQogCiB2b2lkIE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlOjpzb3VyY2VTdG9wcGVkKCkKQEAgLTE3MiwyMCArMTkxLDIzIEBA
IHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNvdXJjZVN0b3BwZWQoKQogICAgIG1faXNF
bmRlZCA9IHRydWU7CiAgICAgdXBkYXRlUmVhZHlTdGF0ZSgpOwogCi0gICAgZm9yIChhdXRvJiBv
YnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQotICAgICAgICBvYnNlcnZlci0+dHJhY2tFbmRlZCgqdGhp
cyk7CisgICAgZm9yRWFjaE9ic2VydmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAg
ICBvYnNlcnZlci50cmFja0VuZGVkKCp0aGlzKTsKKyAgICB9KTsKIH0KIAogdm9pZCBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlTXV0ZWRDaGFuZ2VkKCkKIHsKLSAgICBmb3IgKGF1dG8m
IG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCi0gICAgICAgIG9ic2VydmVyLT50cmFja011dGVkQ2hh
bmdlZCgqdGhpcyk7CisgICAgZm9yRWFjaE9ic2VydmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikg
eworICAgICAgICBvYnNlcnZlci50cmFja011dGVkQ2hhbmdlZCgqdGhpcyk7CisgICAgfSk7CiB9
CiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNvdXJjZVNldHRpbmdzQ2hhbmdlZCgp
CiB7Ci0gICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQotICAgICAgICBvYnNl
cnZlci0+dHJhY2tTZXR0aW5nc0NoYW5nZWQoKnRoaXMpOworICAgIGZvckVhY2hPYnNlcnZlcihb
dGhpc10oYXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgb2JzZXJ2ZXIudHJhY2tTZXR0aW5nc0No
YW5nZWQoKnRoaXMpOworICAgIH0pOwogfQogCiBib29sIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
OjpwcmV2ZW50U291cmNlRnJvbVN0b3BwaW5nKCkKQEAgLTIwNSwxMCArMjI3LDEyIEBAIHZvaWQg
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxl
JiBtZWRpYVNhbXBsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbWVkaWFTYW1wbGUuc2V0VHJh
Y2tJRChpZCgpKTsKLSAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCi0gICAg
ICAgIG9ic2VydmVyLT5zYW1wbGVCdWZmZXJVcGRhdGVkKCp0aGlzLCBtZWRpYVNhbXBsZSk7Cisg
ICAgZm9yRWFjaE9ic2VydmVyKFsmXShhdXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZl
ci5zYW1wbGVCdWZmZXJVcGRhdGVkKCp0aGlzLCBtZWRpYVNhbXBsZSk7CisgICAgfSk7CiB9CiAK
Ky8vIE1heSBnZXQgY2FsbGVkIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuCiB2b2lkIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiBt
ZWRpYVRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IHNhbXBsZUNvdW50KQogewogICAgIGlm
ICghbV9oYXZlUHJvZHVjZWREYXRhKSB7CkBAIC0yMTYsOCArMjQwLDkgQEAgdm9pZCBNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYg
bWVkaWFUaW1lLAogICAgICAgICB1cGRhdGVSZWFkeVN0YXRlKCk7CiAgICAgfQogCi0gICAgZm9y
IChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQotICAgICAgICBvYnNlcnZlci0+YXVkaW9T
YW1wbGVzQXZhaWxhYmxlKCp0aGlzLCBtZWRpYVRpbWUsIGRhdGEsIGRlc2NyaXB0aW9uLCBzYW1w
bGVDb3VudCk7CisgICAgZm9yRWFjaE9ic2VydmVyKFsmXShhdXRvJiBvYnNlcnZlcikgeworICAg
ICAgICBvYnNlcnZlci5hdWRpb1NhbXBsZXNBdmFpbGFibGUoKnRoaXMsIG1lZGlhVGltZSwgZGF0
YSwgZGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKKyAgICB9KTsKIH0KIAogCkBAIC0yMzQsOCAr
MjU5LDkgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6dXBkYXRlUmVhZHlTdGF0ZSgp
CiAgICAgICAgIHJldHVybjsKIAogICAgIG1fcmVhZHlTdGF0ZSA9IHN0YXRlOwotICAgIGZvciAo
YXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKLSAgICAgICAgb2JzZXJ2ZXItPnJlYWR5U3Rh
dGVDaGFuZ2VkKCp0aGlzKTsKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3RoaXNdKGF1dG8mIG9ic2Vy
dmVyKSB7CisgICAgICAgIG9ic2VydmVyLnJlYWR5U3RhdGVDaGFuZ2VkKCp0aGlzKTsKKyAgICB9
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgK
aW5kZXggM2E4MTZmZDMwNzIyZDBjNjkwYzg1ZGE3MWNjNmVmYmMyNWE1ZWNlMS4uNjExYjM3NWJl
NjUwZTc1NzU2MTc0OTE1MGI0YTlkN2JkODhhMzcyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZS5oCkBAIC01MCw4ICs1MCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFj
a1NldHRpbmdzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsKICAgICAgICAg
dmlydHVhbCB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
KSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzYW1wbGVCdWZmZXJVcGRhdGVkKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJiwgTWVkaWFTYW1wbGUmKSB7IH07Ci0gICAgICAgIHZpcnR1YWwgdm9p
ZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBN
ZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24mLCBzaXplX3QpIHsgfTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlYWR5U3RhdGVD
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgeyB9OworCisgICAgICAgIC8vIE1heSBn
ZXQgY2FsbGVkIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuCisgICAgICAgIHZpcnR1YWwgdm9pZCBh
dWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBNZWRp
YVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBzaXplX3QpIHsgfTsKICAgICB9OwogCiAgICAgc3RhdGljIFJlZjxNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZT4gY3JlYXRlKFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKQEAgLTEx
Niw3ICsxMTgsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdXBkYXRlUmVhZHlTdGF0ZSgpOwog
Ci0gICAgVmVjdG9yPE9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CisgICAgdm9pZCBmb3JFYWNoT2Jz
ZXJ2ZXIoY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKE9ic2VydmVyJik+JikgY29uc3Q7CisKKyAg
ICBtdXRhYmxlIExvY2sgbV9vYnNlcnZlcnNMb2NrOworICAgIEhhc2hTZXQ8T2JzZXJ2ZXIqPiBt
X29ic2VydmVyczsKICAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CiAKICAg
ICBTdHJpbmcgbV9pZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggYmU2MjVhMzcwMDEwNDM5
NmFiYmYyNjM5MDM0MTE4MzY1NmU0MDgwNi4uYTJkNjNkZThkMjczZTQ3YTc2ZDk2NDcxYzc4MmNl
NWM4M2ZkZTgxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTYxLDE2ICs2MSwxNiBAQCBS
ZWFsdGltZU1lZGlhU291cmNlOjpSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgaWQs
IFR5cGUgdHlwZSwgY29uc3QgU3RyaQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmFkZE9i
c2VydmVyKFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyJiBvYnNlcnZlcikKIHsKLSAgICBt
X29ic2VydmVycy5hcHBlbmQob2JzZXJ2ZXIpOworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2Jz
ZXJ2ZXJzTG9jayk7CisgICAgbV9vYnNlcnZlcnMuYWRkKCZvYnNlcnZlcik7CiB9CiAKIHZvaWQg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3ZlT2JzZXJ2ZXIoUmVhbHRpbWVNZWRpYVNvdXJjZTo6
T2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZUZpcnN0TWF0Y2hp
bmcoWyZvYnNlcnZlcl0oYXV0byBhbk9ic2VydmVyKSB7Ci0gICAgICAgIHJldHVybiAmYW5PYnNl
cnZlci5nZXQoKSA9PSAmb2JzZXJ2ZXI7Ci0gICAgfSk7CisgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9vYnNlcnZlcnNMb2NrKTsKIAotICAgIGlmICghbV9vYnNlcnZlcnMuc2l6ZSgpKQorICAgIG1f
b2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOworICAgIGlmIChtX29ic2VydmVycy5pc0VtcHR5
KCkpCiAgICAgICAgIHN0b3AoKTsKIH0KIApAQCAtMTEwLDEwICsxMTAsMjcgQEAgdm9pZCBSZWFs
dGltZU1lZGlhU291cmNlOjpub3RpZnlNdXRlZENoYW5nZShib29sIG11dGVkKQogICAgIG5vdGlm
eU11dGVkT2JzZXJ2ZXJzKCk7CiB9CiAKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Zm9yRWFj
aE9ic2VydmVyKGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChPYnNlcnZlciYpPiYgYXBwbHkpIGNv
bnN0Cit7CisgICAgVmVjdG9yPE9ic2VydmVyKj4gb2JzZXJ2ZXJzQ29weTsKKyAgICB7CisgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fb2JzZXJ2ZXJzTG9jayk7CisgICAgICAgIG9ic2VydmVy
c0NvcHkgPSBjb3B5VG9WZWN0b3IobV9vYnNlcnZlcnMpOworICAgIH0KKyAgICBmb3IgKGF1dG8q
IG9ic2VydmVyIDogb2JzZXJ2ZXJzQ29weSkgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X29ic2VydmVyc0xvY2spOworICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIG9ic2VydmVyIGhhcyBu
b3QgYmVlbiBkZXN0cm95ZWQuCisgICAgICAgIGlmICghbV9vYnNlcnZlcnMuY29udGFpbnMob2Jz
ZXJ2ZXIpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGFwcGx5KCpvYnNlcnZlcik7
CisgICAgfQorfQorCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6Om5vdGlmeU11dGVkT2JzZXJ2
ZXJzKCkgY29uc3QKIHsKLSAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJz
KQorICAgIGZvckVhY2hPYnNlcnZlcihbXShhdXRvJiBvYnNlcnZlcikgewogICAgICAgICBvYnNl
cnZlci5zb3VyY2VNdXRlZENoYW5nZWQoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBSZWFsdGltZU1l
ZGlhU291cmNlOjpzZXR0aW5nc0RpZENoYW5nZSgpCkBAIC0xMjcsMjEgKzE0NCwyNCBAQCB2b2lk
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldHRpbmdzRGlkQ2hhbmdlKCkKIAogICAgIHNjaGVkdWxl
RGVmZXJyZWRUYXNrKFt0aGlzXSB7CiAgICAgICAgIG1fcGVuZGluZ1NldHRpbmdzRGlkQ2hhbmdl
Tm90aWZpY2F0aW9uID0gZmFsc2U7Ci0gICAgICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDog
bV9vYnNlcnZlcnMpCisgICAgICAgIGZvckVhY2hPYnNlcnZlcihbXShhdXRvJiBvYnNlcnZlcikg
ewogICAgICAgICAgICAgb2JzZXJ2ZXIuc291cmNlU2V0dGluZ3NDaGFuZ2VkKCk7CisgICAgICAg
IH0pOwogICAgIH0pOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxl
QXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkKIHsKLSAgICBmb3IgKE9ic2VydmVy
JiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgIGZvckVhY2hPYnNlcnZlcihbJl0oYXV0byYg
b2JzZXJ2ZXIpIHsKICAgICAgICAgb2JzZXJ2ZXIudmlkZW9TYW1wbGVBdmFpbGFibGUobWVkaWFT
YW1wbGUpOworICAgIH0pOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9E
YXRhJiBhdWRpb0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9u
LCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7Ci0gICAgZm9yIChPYnNlcnZlciYgb2JzZXJ2ZXIg
OiBtX29ic2VydmVycykKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoWyZdKGF1dG8mIG9ic2VydmVyKSB7
CiAgICAgICAgIG9ic2VydmVyLmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSh0aW1lLCBhdWRpb0RhdGEs
IGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgfSk7CiB9CiAKIHZvaWQgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6c3RhcnQoKQpAQCAtMTU1LDggKzE3NSw5IEBAIHZvaWQgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6c3RhcnQoKQogICAgIGlmICghbV9pc1Byb2R1Y2luZ0RhdGEpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisg
ICAgZm9yRWFjaE9ic2VydmVyKFtdKGF1dG8mIG9ic2VydmVyKSB7CiAgICAgICAgIG9ic2VydmVy
LnNvdXJjZVN0YXJ0ZWQoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNl
OjpzdG9wKCkKQEAgLTE3MywxNyArMTk0LDIwIEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
cmVxdWVzdFN0b3AoT2JzZXJ2ZXIqIGNhbGxpbmdPYnNlcnZlcikKICAgICBpZiAoIW1faXNQcm9k
dWNpbmdEYXRhKQogICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZl
ciA6IG1fb2JzZXJ2ZXJzKSB7CisgICAgYm9vbCBoYXNPYnNlcnZlclByZXZlbnRpbmdTdG9wcGlu
ZyA9IGZhbHNlOworICAgIGZvckVhY2hPYnNlcnZlcihbJl0oYXV0byYgb2JzZXJ2ZXIpIHsKICAg
ICAgICAgaWYgKG9ic2VydmVyLnByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKSkKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICB9CisgICAgICAgICAgICBoYXNPYnNlcnZlclByZXZlbnRpbmdTdG9w
cGluZyA9IHRydWU7CisgICAgfSk7CisgICAgaWYgKGhhc09ic2VydmVyUHJldmVudGluZ1N0b3Bw
aW5nKQorICAgICAgICByZXR1cm47CiAKICAgICBzdG9wKCk7CiAKLSAgICBmb3IgKE9ic2VydmVy
JiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKSB7CisgICAgZm9yRWFjaE9ic2VydmVyKFtjYWxsaW5n
T2JzZXJ2ZXJdKGF1dG8mIG9ic2VydmVyKSB7CiAgICAgICAgIGlmICgmb2JzZXJ2ZXIgIT0gY2Fs
bGluZ09ic2VydmVyKQogICAgICAgICAgICAgb2JzZXJ2ZXIuc291cmNlU3RvcHBlZCgpOwotICAg
IH0KKyAgICB9KTsKIH0KIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFpbGVk
KCkKQEAgLTE5Myw4ICsyMTcsOSBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVG
YWlsZWQoKQogICAgIG1faXNQcm9kdWNpbmdEYXRhID0gZmFsc2U7CiAgICAgbV9jYXB0dXJlRGlk
RmFpbGVkID0gdHJ1ZTsKIAotICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogbV9vYnNlcnZl
cnMpCisgICAgZm9yRWFjaE9ic2VydmVyKFtdKGF1dG8mIG9ic2VydmVyKSB7CiAgICAgICAgIG9i
c2VydmVyLnNvdXJjZVN0b3BwZWQoKTsKKyAgICB9KTsKIH0KIAogYm9vbCBSZWFsdGltZU1lZGlh
U291cmNlOjpzdXBwb3J0c1NpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+LCBzdGQ6
Om9wdGlvbmFsPGludD4sIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApp
bmRleCAxZDAxMjk0NzdjMjM2OWMxYmNiY2JiYmNlZTRmMTgzNTM1MmRiYzljLi4zNTY3ZTUwOTAw
OGNmYTM1YWNiZmQ5OTJmYTZmZDcwZTI2NmYwMjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC00
MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bUxheWVyLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcy5oIgor
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBA
IC0yNTMsMTMgKzI1NCwxNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydFByb2R1
Y2luZ0RhdGEoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSB7IH0K
IAorICAgIHZvaWQgZm9yRWFjaE9ic2VydmVyKGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChPYnNl
cnZlciYpPiYpIGNvbnN0OworCiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKIAogICAgIFN0
cmluZyBtX2lkOwogICAgIFN0cmluZyBtX3BlcnNpc3RlbnRJRDsKICAgICBUeXBlIG1fdHlwZTsK
ICAgICBTdHJpbmcgbV9uYW1lOwotICAgIFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPE9i
c2VydmVyPj4gbV9vYnNlcnZlcnM7CisgICAgbXV0YWJsZSBMb2NrIG1fb2JzZXJ2ZXJzTG9jazsK
KyAgICBIYXNoU2V0PE9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CiAgICAgSW50U2l6ZSBtX3NpemU7
CiAgICAgZG91YmxlIG1fZnJhbWVSYXRlIHsgMzAgfTsKICAgICBkb3VibGUgbV9hc3BlY3RSYXRp
byB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtQ29jb2EuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1D
b2NvYS5jcHAKaW5kZXggODdhNjVmMjZiMTM3OGE4ZjQ3MTQ2MjY3MzliZjAxZjBhMDM5NDIwOS4u
ZjZkZTJlYTU0ZGM4NjcwZGU2MjI2NTIwNjg5NGI4NmY5NTNkZjc3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvVHJhY2tQcml2YXRlTWVk
aWFTdHJlYW1Db2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1Db2NvYS5jcHAKQEAgLTE2NSwxMiAr
MTY1LDkgQEAgQXVkaW9Db21wb25lbnRJbnN0YW5jZSBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3Ry
ZWFtQ29jb2E6OmNyZWF0ZUF1ZGlvVW5pdChDQUF1ZGkKICAgICByZXR1cm4gcmVtb3RlSU9Vbml0
OwogfQogCisvLyBNYXkgZ2V0IGNhbGxlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkLgogdm9pZCBB
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtQ29jb2E6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShj
b25zdCBNZWRpYVRpbWUmIHNhbXBsZVRpbWUsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBhdWRp
b0RhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qg
c2FtcGxlQ291bnQpCiB7Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgb24gYSBiYWNr
Z3JvdW5kIHRocmVhZC4gVGhlIGZvbGxvd2luZyBwcm90ZWN0ZWRUaGlzIG9iamVjdCBlbnN1cmVz
IHRoZSBvYmplY3QgaXMgbm90Ci0gICAgLy8gZGVzdHJveWVkIG9uIHRoZSBtYWluIHRocmVhZCBi
ZWZvcmUgdGhpcyBmdW5jdGlvbiBleGl0cy4KLSAgICBSZWY8QXVkaW9UcmFja1ByaXZhdGVNZWRp
YVN0cmVhbUNvY29hPiBwcm90ZWN0ZWRUaGlzIHsgKnRoaXMgfTsKLQogICAgIEFTU0VSVChkZXNj
cmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9u
OjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKIAogICAgIGlmICghbV9pbnB1dERlc2NyaXB0aW9u
IHx8ICptX2lucHV0RGVzY3JpcHRpb24gIT0gZGVzY3JpcHRpb24pIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4IDIzNjY2NzYxN2Rk
MTk3M2MyZTU1M2YzZTQxMmMwZjE0Yjc1ZTZiOTcuLjRhYjQwNmQ1ODk1NWUyZmNiNjgzNDQ3ZTY1
ODZiNTcxNjQwZmQzMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRp
b1NvdXJjZUNvY29hLmNwcApAQCAtODEsNiArODEsNyBAQCBib29sIFJlYWx0aW1lT3V0Z29pbmdB
dWRpb1NvdXJjZUNvY29hOjpoYXNCdWZmZXJlZEVub3VnaERhdGEoKQogICAgIHJldHVybiB3cml0
dGVuQXVkaW9EdXJhdGlvbiA+PSByZWFkQXVkaW9EdXJhdGlvbiArIDAuMDE7CiB9CiAKKy8vIE1h
eSBnZXQgY2FsbGVkIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuCiB2b2lkIFJlYWx0aW1lT3V0Z29p
bmdBdWRpb1NvdXJjZUNvY29hOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1l
JiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYgc3RyZWFtRGVzY3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKIHsKICAg
ICBpZiAobV9pbnB1dFN0cmVhbURlc2NyaXB0aW9uICE9IHN0cmVhbURlc2NyaXB0aW9uKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KaW5kZXggZDRlOTcz
Yjk5MjhmOGViZTk0OTZiM2ZhYjk2NzE5NjMzODBhODhhZC4uOTRlZmFlNjk1ZGRkMjkyY2Y4ZjQy
MTRlM2MzZDA0ZDE4MTYzOGUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQy5tbQpAQCAtMTU5LDYgKzE1OSw3IEBAIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakM6OnVucHJlcGFyZSgpCiAgICAgfQogfQogCisvLyBNYXkgZ2V0IGNhbGxlZCBv
biBhIGJhY2tncm91bmQgdGhyZWFkLgogdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFjaywg
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRhdGEsIGNvbnN0IEF1
ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgZnJhbWVDb3VudCkKIHsK
ICAgICBpZiAoIXRyYWNrLmVuYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5k
ZXggZjQ3ZjE2ZWUyOTI3M2EwMTFhYzg0YjJmMjQ2YzY1N2Y3MTc1MDBjYi4uZjM0M2EwNWI2ZGFk
MTIzM2I2MWExMzY2NWY1NmU1MmM2ZjQ5MzA5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5j
cHAKQEAgLTgwLDYgKzgwLDcgQEAgcHVibGljOgogICAgICAgICBtX21hbmFnZXIucHJvY2Vzcygp
LnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpTb3VyY2VTZXR0aW5nc0No
YW5nZWQobV9pZCwgbV9zb3VyY2UtPnNldHRpbmdzKCkpLCAwKTsKICAgICB9CiAKKyAgICAvLyBN
YXkgZ2V0IGNhbGxlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkLgogICAgIHZvaWQgYXVkaW9TYW1w
bGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0Rh
dGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24s
IHNpemVfdCBudW1iZXJPZkZyYW1lcykgZmluYWwgewogICAgICAgICBpZiAobV9kZXNjcmlwdGlv
biAhPSBkZXNjcmlwdGlvbikgewogICAgICAgICAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRm
b3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJl
YW1CYXNpY1R5cGUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345950</attachid>
            <date>2018-07-27 13:53:37 -0700</date>
            <delta_ts>2018-07-27 15:33:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188097-20180727135337.patch</filename>
            <type>text/plain</type>
            <size>19354</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0MzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZmN2ZjODdlNjE4NTI4
NDJjMTQ5NGEzNjE2OGRjZjEwODQ0MWVmNy4uODIzYTAxNDc5YjJiNjg2NmMzYTM0N2M3ZjEyYmYz
ODE3MmQ5ZTA4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE4LTA3LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IHRocmVhZC1zYWZldHkg
aXNzdWVzIHJlbGF0ZWQgdG8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxh
YmxlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
ODA5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDI1NTg4MjM+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IHRocmVhZC1zYWZldHkgaXNzdWVz
IHJlbGF0ZWQgdG8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKCku
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSgpCisgICAgICAgIGlz
IGNhbGxlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkIGJ1dCBpdGVyYXRlcyBvdmVyIG9ic2VydmVy
cyB0aGF0IG1heSBnZXQgZGVzdHJveWVkIGNvbmN1cnJlbnRseSBvbiB0aGUgbWFpbiB0aHJlYWQu
CisKKyAgICAgICAgVG8gYWRkcmVzcyB0aGUgaXNzdWU6CisgICAgICAgIC0gSW50cm9kdWNlIGEg
TG9jayB0byBwcm90ZWN0IG1fb2JzZXJ2ZXIgYWNjZXNzZXMKKyAgICAgICAgLSBDb3B5IG9ic2Vy
dmVycyB0byBhIFZlY3RvciBiZWZvcmUgaXRlcmF0aW5nIG92ZXIgdGhlbQorCisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmZvckVhY2hPYnNlcnZlciBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6YWRkT2JzZXJ2
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnJlbW92ZU9i
c2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpzZXRF
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjplbmRU
cmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNl
U3RhcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291
cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6
c291cmNlTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjpzb3VyY2VTZXR0aW5nc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnVwZGF0ZVJlYWR5U3RhdGUp
OgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXI6
OnNhbXBsZUJ1ZmZlclVwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU6Ok9ic2VydmVyOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVtb3ZlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6Zm9yRWFjaE9ic2VydmVyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6Om5vdGlmeU11dGVkT2JzZXJ2ZXJzIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldHRpbmdzRGlkQ2hh
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxl
QXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0
U3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFp
bGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTdHJlYW1Db2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0
ZU1lZGlhU3RyZWFtQ29jb2E6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMubW06CisKIDIwMTgtMDctMjYgIEFuZHkgVmFuV2Fnb25lciAgPGFuZHlAdmFu
d2Fnb25lci5mYW1pbHk+CiAKICAgICAgICAgW0lOVExdIFJlbW92ZSBJTlRMIHN1Yi1mZWF0dXJl
IGNvbXBpbGUgZmxhZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNWViOGYwNTA5NDQ2ZGVjMjc4MjJlZDk5Mjk0ZGVj
MmI1OTBiYTQxZi4uM2Y3ZWE4MDE3MzdjYTZhYzM5M2M5OWY5ODUyMjhkMWE5NTlkNDU2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0wNy0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIEZpeCB0aHJlYWQtc2FmZXR5IGlzc3VlcyByZWxhdGVkIHRv
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSgpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODgwOTcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQyNTU4ODIzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuY3BwOgorCiAyMDE4LTA3LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgTG9hZGluZyBhIGZpbGUgVVJMIGFuZCB0aGVuIGlzc3VpbmcgYSByZWxvYWQg
cmlnaHQgYXdheSBjYXVzZXMgdGhlIGxvYWQgdG8gZmFpbCBkdWUgdG8gc2FuZGJveGluZwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCmluZGV4IGQ3YWJiZGYwMmU0NTBkOGIzYzE2MDI3YjVi
M2I2ZTNjZjFhODMyOTkuLmM2MDU3MWZiYzNmZGFhYjc1YjQ3YWFiMWY3MmQwNWMzYTY5OGVmYTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKQEAgLTYzLDE2ICs2MywzMiBAQCBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTo6fk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKCkKICAgICBtX3Nv
dXJjZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCit2b2lkIE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjpmb3JFYWNoT2JzZXJ2ZXIoY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKE9ic2VydmVy
Jik+JiBhcHBseSkgY29uc3QKK3sKKyAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBvYnNlcnZlcnNDb3B5
OworICAgIHsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX29ic2VydmVyc0xvY2sp
OworICAgICAgICBvYnNlcnZlcnNDb3B5ID0gY29weVRvVmVjdG9yKG1fb2JzZXJ2ZXJzKTsKKyAg
ICB9CisgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IG9ic2VydmVyc0NvcHkpIHsKKyAgICAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX29ic2VydmVyc0xvY2spOworICAgICAgICAvLyBNYWtl
IHN1cmUgdGhlIG9ic2VydmVyIGhhcyBub3QgYmVlbiBkZXN0cm95ZWQuCisgICAgICAgIGlmICgh
bV9vYnNlcnZlcnMuY29udGFpbnMob2JzZXJ2ZXIpKQorICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIGFwcGx5KCpvYnNlcnZlcik7CisgICAgfQorfQorCiB2b2lkIE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlOjphZGRPYnNlcnZlcihNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIm
IG9ic2VydmVyKQogewotICAgIG1fb2JzZXJ2ZXJzLmFwcGVuZCgmb2JzZXJ2ZXIpOworICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKKyAgICBtX29ic2VydmVycy5h
ZGQoJm9ic2VydmVyKTsKIH0KIAogdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6cmVtb3Zl
T2JzZXJ2ZXIoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyJiBvYnNlcnZlcikKIHsK
LSAgICBzaXplX3QgcG9zID0gbV9vYnNlcnZlcnMuZmluZCgmb2JzZXJ2ZXIpOwotICAgIGlmIChw
b3MgIT0gbm90Rm91bmQpCi0gICAgICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZShwb3MpOworICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKKyAgICBtX29ic2VydmVycy5y
ZW1vdmUoJm9ic2VydmVyKTsKIH0KIAogY29uc3QgU3RyaW5nJiBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZTo6bGFiZWwoKSBjb25zdApAQCAtOTgsOCArMTE0LDkgQEAgdm9pZCBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZTo6c2V0RW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgLy8gQWx3YXlzIHVwZGF0
ZSB0aGUgZW5hYmxlZCBzdGF0ZSByZWdhcmRsZXNzIG9mIHRoZSB0cmFjayBiZWluZyBlbmRlZC4K
ICAgICBtX2lzRW5hYmxlZCA9IGVuYWJsZWQ7CiAKLSAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDog
bV9vYnNlcnZlcnMpCi0gICAgICAgIG9ic2VydmVyLT50cmFja0VuYWJsZWRDaGFuZ2VkKCp0aGlz
KTsKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3RoaXNdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAg
IG9ic2VydmVyLnRyYWNrRW5hYmxlZENoYW5nZWQoKnRoaXMpOworICAgIH0pOwogfQogCiB2b2lk
IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjplbmRUcmFjaygpCkBAIC0xMTUsOCArMTMyLDkgQEAg
dm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6ZW5kVHJhY2soKQogCiAgICAgbV9zb3VyY2Ut
PnJlcXVlc3RTdG9wKHRoaXMpOwogCi0gICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2
ZXJzKQotICAgICAgICBvYnNlcnZlci0+dHJhY2tFbmRlZCgqdGhpcyk7CisgICAgZm9yRWFjaE9i
c2VydmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci50cmFja0Vu
ZGVkKCp0aGlzKTsKKyAgICB9KTsKIH0KIAogUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6Y2xvbmUoKQpAQCAtMTYwLDggKzE3OCw5IEBAIEF1ZGlv
U291cmNlUHJvdmlkZXIqIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjphdWRpb1NvdXJjZVByb3Zp
ZGVyKCkKIAogdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlU3RhcnRlZCgpCiB7
Ci0gICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQotICAgICAgICBvYnNlcnZl
ci0+dHJhY2tTdGFydGVkKCp0aGlzKTsKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3RoaXNdKGF1dG8m
IG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLnRyYWNrU3RhcnRlZCgqdGhpcyk7CisgICAg
fSk7CiB9CiAKIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNvdXJjZVN0b3BwZWQoKQpA
QCAtMTcyLDIwICsxOTEsMjMgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNl
U3RvcHBlZCgpCiAgICAgbV9pc0VuZGVkID0gdHJ1ZTsKICAgICB1cGRhdGVSZWFkeVN0YXRlKCk7
CiAKLSAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCi0gICAgICAgIG9ic2Vy
dmVyLT50cmFja0VuZGVkKCp0aGlzKTsKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3RoaXNdKGF1dG8m
IG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLnRyYWNrRW5kZWQoKnRoaXMpOworICAgIH0p
OwogfQogCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpzb3VyY2VNdXRlZENoYW5nZWQo
KQogewotICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKLSAgICAgICAgb2Jz
ZXJ2ZXItPnRyYWNrTXV0ZWRDaGFuZ2VkKCp0aGlzKTsKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoW3Ro
aXNdKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLnRyYWNrTXV0ZWRDaGFuZ2Vk
KCp0aGlzKTsKKyAgICB9KTsKIH0KIAogdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291
cmNlU2V0dGluZ3NDaGFuZ2VkKCkKIHsKLSAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNl
cnZlcnMpCi0gICAgICAgIG9ic2VydmVyLT50cmFja1NldHRpbmdzQ2hhbmdlZCgqdGhpcyk7Cisg
ICAgZm9yRWFjaE9ic2VydmVyKFt0aGlzXShhdXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNl
cnZlci50cmFja1NldHRpbmdzQ2hhbmdlZCgqdGhpcyk7CisgICAgfSk7CiB9CiAKIGJvb2wgTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGU6OnByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKQpAQCAtMjA1
LDEwICsyMjcsMTIgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6dmlkZW9TYW1wbGVB
dmFpbGFibGUoTWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxlKQogICAgICAgICByZXR1cm47CiAKICAg
ICBtZWRpYVNhbXBsZS5zZXRUcmFja0lEKGlkKCkpOwotICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIg
OiBtX29ic2VydmVycykKLSAgICAgICAgb2JzZXJ2ZXItPnNhbXBsZUJ1ZmZlclVwZGF0ZWQoKnRo
aXMsIG1lZGlhU2FtcGxlKTsKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoWyZdKGF1dG8mIG9ic2VydmVy
KSB7CisgICAgICAgIG9ic2VydmVyLnNhbXBsZUJ1ZmZlclVwZGF0ZWQoKnRoaXMsIG1lZGlhU2Ft
cGxlKTsKKyAgICB9KTsKIH0KIAorLy8gTWF5IGdldCBjYWxsZWQgb24gYSBiYWNrZ3JvdW5kIHRo
cmVhZC4KIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShjb25zdCBNZWRpYVRpbWUmIG1lZGlhVGltZSwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRh
dGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3Qgc2Ft
cGxlQ291bnQpCiB7CiAgICAgaWYgKCFtX2hhdmVQcm9kdWNlZERhdGEpIHsKQEAgLTIxNiw4ICsy
NDAsOSBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjphdWRpb1NhbXBsZXNBdmFpbGFi
bGUoY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUsCiAgICAgICAgIHVwZGF0ZVJlYWR5U3RhdGUo
KTsKICAgICB9CiAKLSAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCi0gICAg
ICAgIG9ic2VydmVyLT5hdWRpb1NhbXBsZXNBdmFpbGFibGUoKnRoaXMsIG1lZGlhVGltZSwgZGF0
YSwgZGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoWyZdKGF1
dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyLmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSgq
dGhpcywgbWVkaWFUaW1lLCBkYXRhLCBkZXNjcmlwdGlvbiwgc2FtcGxlQ291bnQpOworICAgIH0p
OwogfQogCiAKQEAgLTIzNCw4ICsyNTksOSBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
Ojp1cGRhdGVSZWFkeVN0YXRlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9yZWFkeVN0YXRl
ID0gc3RhdGU7Ci0gICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQotICAgICAg
ICBvYnNlcnZlci0+cmVhZHlTdGF0ZUNoYW5nZWQoKnRoaXMpOworICAgIGZvckVhY2hPYnNlcnZl
cihbdGhpc10oYXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgb2JzZXJ2ZXIucmVhZHlTdGF0ZUNo
YW5nZWQoKnRoaXMpOworICAgIH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCAzYTgxNmZkMzA3MjJkMGM2OTBjODVkYTcxY2M2ZWZi
YzI1YTVlY2UxLi5kNGZmNGQ0MGZhYWY3NDc4MDk0NTNlNzVhYTM4YTcwODJmMDA1ZjY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTUwLDggKzUwLDEwIEBAIHB1YmxpYzoKICAgICAg
ICAgdmlydHVhbCB2b2lkIHRyYWNrU2V0dGluZ3NDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tFbmFibGVkQ2hhbmdlZChNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNhbXBsZUJ1
ZmZlclVwZGF0ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBNZWRpYVNhbXBsZSYpIHsgfTsK
LSAgICAgICAgdmlydHVhbCB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwg
Y29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgeyB9OwogICAgICAgICB2aXJ0
dWFsIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSB7IH07
CisKKyAgICAgICAgLy8gTWF5IGdldCBjYWxsZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4KKyAg
ICAgICAgdmlydHVhbCB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29u
c3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCkgeyB9OwogICAgIH07CiAKICAgICBz
dGF0aWMgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBjcmVhdGUoUmVmPFJlYWx0aW1lTWVk
aWFTb3VyY2U+JiYpOwpAQCAtMTE2LDcgKzExOCwxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCB1
cGRhdGVSZWFkeVN0YXRlKCk7CiAKLSAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsK
KyAgICB2b2lkIGZvckVhY2hPYnNlcnZlcihjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoT2JzZXJ2
ZXImKT4mKSBjb25zdDsKKworICAgIG11dGFibGUgUmVjdXJzaXZlTG9jayBtX29ic2VydmVyc0xv
Y2s7CisgICAgSGFzaFNldDxPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOwogICAgIFJlZjxSZWFsdGlt
ZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKIAogICAgIFN0cmluZyBtX2lkOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmNwcAppbmRleCBiZTYyNWEzNzAwMTA0Mzk2YWJiZjI2MzkwMzQxMTgzNjU2ZTQwODA2Li5i
ZmU0ZDZkZTFjODM0MDY4MmExZjdlZTI5ZThjOTQ1ODVmZTBiY2U4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmNwcApAQCAtNjEsMTYgKzYxLDE2IEBAIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlJlYWx0aW1l
TWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgVHlwZSB0eXBlLCBjb25zdCBTdHJpCiAKIHZv
aWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6YWRkT2JzZXJ2ZXIoUmVhbHRpbWVNZWRpYVNvdXJjZTo6
T2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIG1fb2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZlcik7
CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX29ic2VydmVyc0xvY2spOworICAgIG1fb2Jz
ZXJ2ZXJzLmFkZCgmb2JzZXJ2ZXIpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnJl
bW92ZU9ic2VydmVyKFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyJiBvYnNlcnZlcikKIHsK
LSAgICBtX29ic2VydmVycy5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmb2JzZXJ2ZXJdKGF1dG8gYW5P
YnNlcnZlcikgewotICAgICAgICByZXR1cm4gJmFuT2JzZXJ2ZXIuZ2V0KCkgPT0gJm9ic2VydmVy
OwotICAgIH0pOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsK
IAotICAgIGlmICghbV9vYnNlcnZlcnMuc2l6ZSgpKQorICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZSgm
b2JzZXJ2ZXIpOworICAgIGlmIChtX29ic2VydmVycy5pc0VtcHR5KCkpCiAgICAgICAgIHN0b3Ao
KTsKIH0KIApAQCAtMTEwLDEwICsxMTAsMjcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpu
b3RpZnlNdXRlZENoYW5nZShib29sIG11dGVkKQogICAgIG5vdGlmeU11dGVkT2JzZXJ2ZXJzKCk7
CiB9CiAKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Zm9yRWFjaE9ic2VydmVyKGNvbnN0IFdU
Rjo6RnVuY3Rpb248dm9pZChPYnNlcnZlciYpPiYgYXBwbHkpIGNvbnN0Cit7CisgICAgVmVjdG9y
PE9ic2VydmVyKj4gb2JzZXJ2ZXJzQ29weTsKKyAgICB7CisgICAgICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9vYnNlcnZlcnNMb2NrKTsKKyAgICAgICAgb2JzZXJ2ZXJzQ29weSA9IGNvcHlU
b1ZlY3RvcihtX29ic2VydmVycyk7CisgICAgfQorICAgIGZvciAoYXV0byogb2JzZXJ2ZXIgOiBv
YnNlcnZlcnNDb3B5KSB7CisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vYnNlcnZl
cnNMb2NrKTsKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBvYnNlcnZlciBoYXMgbm90IGJlZW4g
ZGVzdHJveWVkLgorICAgICAgICBpZiAoIW1fb2JzZXJ2ZXJzLmNvbnRhaW5zKG9ic2VydmVyKSkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBhcHBseSgqb2JzZXJ2ZXIpOworICAgIH0K
K30KKwogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpub3RpZnlNdXRlZE9ic2VydmVycygpIGNv
bnN0CiB7Ci0gICAgZm9yIChPYnNlcnZlciYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICBm
b3JFYWNoT2JzZXJ2ZXIoW10oYXV0byYgb2JzZXJ2ZXIpIHsKICAgICAgICAgb2JzZXJ2ZXIuc291
cmNlTXV0ZWRDaGFuZ2VkKCk7CisgICAgfSk7CiB9CiAKIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6c2V0dGluZ3NEaWRDaGFuZ2UoKQpAQCAtMTI3LDIxICsxNDQsMjQgQEAgdm9pZCBSZWFsdGlt
ZU1lZGlhU291cmNlOjpzZXR0aW5nc0RpZENoYW5nZSgpCiAKICAgICBzY2hlZHVsZURlZmVycmVk
VGFzayhbdGhpc10gewogICAgICAgICBtX3BlbmRpbmdTZXR0aW5nc0RpZENoYW5nZU5vdGlmaWNh
dGlvbiA9IGZhbHNlOwotICAgICAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG1fb2JzZXJ2
ZXJzKQorICAgICAgICBmb3JFYWNoT2JzZXJ2ZXIoW10oYXV0byYgb2JzZXJ2ZXIpIHsKICAgICAg
ICAgICAgIG9ic2VydmVyLnNvdXJjZVNldHRpbmdzQ2hhbmdlZCgpOworICAgICAgICB9KTsKICAg
ICB9KTsKIH0KIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJs
ZShNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpCiB7Ci0gICAgZm9yIChPYnNlcnZlciYgb2JzZXJ2
ZXIgOiBtX29ic2VydmVycykKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoWyZdKGF1dG8mIG9ic2VydmVy
KSB7CiAgICAgICAgIG9ic2VydmVyLnZpZGVvU2FtcGxlQXZhaWxhYmxlKG1lZGlhU2FtcGxlKTsK
KyAgICB9KTsKIH0KIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjphdWRpb1NhbXBsZXNBdmFp
bGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVk
aW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90
IG51bWJlck9mRnJhbWVzKQogewotICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogbV9vYnNl
cnZlcnMpCisgICAgZm9yRWFjaE9ic2VydmVyKFsmXShhdXRvJiBvYnNlcnZlcikgewogICAgICAg
ICBvYnNlcnZlci5hdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgYXVkaW9EYXRhLCBkZXNjcmlw
dGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIH0pOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OnN0YXJ0KCkKQEAgLTE1NSw4ICsxNzUsOSBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnN0YXJ0KCkKICAgICBpZiAoIW1faXNQcm9kdWNpbmdEYXRhKQogICAgICAgICByZXR1cm47
CiAKLSAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgIGZvckVh
Y2hPYnNlcnZlcihbXShhdXRvJiBvYnNlcnZlcikgewogICAgICAgICBvYnNlcnZlci5zb3VyY2VT
dGFydGVkKCk7CisgICAgfSk7CiB9CiAKIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcCgp
CkBAIC0xNzMsMTcgKzE5NCwyMCBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RT
dG9wKE9ic2VydmVyKiBjYWxsaW5nT2JzZXJ2ZXIpCiAgICAgaWYgKCFtX2lzUHJvZHVjaW5nRGF0
YSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZm9yIChPYnNlcnZlciYgb2JzZXJ2ZXIgOiBtX29i
c2VydmVycykgeworICAgIGJvb2wgaGFzT2JzZXJ2ZXJQcmV2ZW50aW5nU3RvcHBpbmcgPSBmYWxz
ZTsKKyAgICBmb3JFYWNoT2JzZXJ2ZXIoWyZdKGF1dG8mIG9ic2VydmVyKSB7CiAgICAgICAgIGlm
IChvYnNlcnZlci5wcmV2ZW50U291cmNlRnJvbVN0b3BwaW5nKCkpCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgfQorICAgICAgICAgICAgaGFzT2JzZXJ2ZXJQcmV2ZW50aW5nU3RvcHBpbmcgPSB0
cnVlOworICAgIH0pOworICAgIGlmIChoYXNPYnNlcnZlclByZXZlbnRpbmdTdG9wcGluZykKKyAg
ICAgICAgcmV0dXJuOwogCiAgICAgc3RvcCgpOwogCi0gICAgZm9yIChPYnNlcnZlciYgb2JzZXJ2
ZXIgOiBtX29ic2VydmVycykgeworICAgIGZvckVhY2hPYnNlcnZlcihbY2FsbGluZ09ic2VydmVy
XShhdXRvJiBvYnNlcnZlcikgewogICAgICAgICBpZiAoJm9ic2VydmVyICE9IGNhbGxpbmdPYnNl
cnZlcikKICAgICAgICAgICAgIG9ic2VydmVyLnNvdXJjZVN0b3BwZWQoKTsKLSAgICB9CisgICAg
fSk7CiB9CiAKIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpCkBAIC0x
OTMsOCArMjE3LDkgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKCkK
ICAgICBtX2lzUHJvZHVjaW5nRGF0YSA9IGZhbHNlOwogICAgIG1fY2FwdHVyZURpZEZhaWxlZCA9
IHRydWU7CiAKLSAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAg
IGZvckVhY2hPYnNlcnZlcihbXShhdXRvJiBvYnNlcnZlcikgewogICAgICAgICBvYnNlcnZlci5z
b3VyY2VTdG9wcGVkKCk7CisgICAgfSk7CiB9CiAKIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8aW50Piwgc3RkOjpvcHRpb25h
bDxpbnQ+LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggMWQw
MTI5NDc3YzIzNjljMWJjYmNiYmJjZWU0ZjE4MzUzNTJkYmM5Yy4uYzI5YWIxOWMxNmRmM2IxZmQw
MWEwMDQwYjkyZmE1YTcyM2I0OGIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNDEsNiArNDEs
NyBAQAogI2luY2x1ZGUgIk1lZGlhU2FtcGxlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5o
IgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCIKKyNpbmNsdWRl
IDx3dGYvUmVjdXJzaXZlTG9ja0FkYXB0ZXIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KQEAgLTI1MywxMyArMjU0LDE2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN0
YXJ0UHJvZHVjaW5nRGF0YSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzdG9wUHJvZHVjaW5nRGF0
YSgpIHsgfQogCisgICAgdm9pZCBmb3JFYWNoT2JzZXJ2ZXIoY29uc3QgV1RGOjpGdW5jdGlvbjx2
b2lkKE9ic2VydmVyJik+JikgY29uc3Q7CisKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9Owog
CiAgICAgU3RyaW5nIG1faWQ7CiAgICAgU3RyaW5nIG1fcGVyc2lzdGVudElEOwogICAgIFR5cGUg
bV90eXBlOwogICAgIFN0cmluZyBtX25hbWU7Ci0gICAgVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dy
YXBwZXI8T2JzZXJ2ZXI+PiBtX29ic2VydmVyczsKKyAgICBtdXRhYmxlIFJlY3Vyc2l2ZUxvY2sg
bV9vYnNlcnZlcnNMb2NrOworICAgIEhhc2hTZXQ8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKICAg
ICBJbnRTaXplIG1fc2l6ZTsKICAgICBkb3VibGUgbV9mcmFtZVJhdGUgeyAzMCB9OwogICAgIGRv
dWJsZSBtX2FzcGVjdFJhdGlvIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1Db2NvYS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9UcmFja1By
aXZhdGVNZWRpYVN0cmVhbUNvY29hLmNwcAppbmRleCA4N2E2NWYyNmIxMzc4YThmNDcxNDYyNjcz
OWJmMDFmMGEwMzk0MjA5Li5mNmRlMmVhNTRkYzg2NzBkZTYyMjY1MjA2ODk0Yjg2Zjk1M2RmNzdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVk
aW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbUNvY29h
LmNwcApAQCAtMTY1LDEyICsxNjUsOSBAQCBBdWRpb0NvbXBvbmVudEluc3RhbmNlIEF1ZGlvVHJh
Y2tQcml2YXRlTWVkaWFTdHJlYW1Db2NvYTo6Y3JlYXRlQXVkaW9Vbml0KENBQXVkaQogICAgIHJl
dHVybiByZW1vdGVJT1VuaXQ7CiB9CiAKKy8vIE1heSBnZXQgY2FsbGVkIG9uIGEgYmFja2dyb3Vu
ZCB0aHJlYWQuCiB2b2lkIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW1Db2NvYTo6YXVkaW9T
YW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgc2FtcGxlVGltZSwgY29uc3QgUGxhdGZv
cm1BdWRpb0RhdGEmIGF1ZGlvRGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVz
Y3JpcHRpb24sIHNpemVfdCBzYW1wbGVDb3VudCkKIHsKLSAgICAvLyBUaGlzIGZ1bmN0aW9uIGlz
IGNhbGxlZCBvbiBhIGJhY2tncm91bmQgdGhyZWFkLiBUaGUgZm9sbG93aW5nIHByb3RlY3RlZFRo
aXMgb2JqZWN0IGVuc3VyZXMgdGhlIG9iamVjdCBpcyBub3QKLSAgICAvLyBkZXN0cm95ZWQgb24g
dGhlIG1haW4gdGhyZWFkIGJlZm9yZSB0aGlzIGZ1bmN0aW9uIGV4aXRzLgotICAgIFJlZjxBdWRp
b1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtQ29jb2E+IHByb3RlY3RlZFRoaXMgeyAqdGhpcyB9Owot
CiAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBs
YXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOwogCiAgICAgaWYgKCFt
X2lucHV0RGVzY3JpcHRpb24gfHwgKm1faW5wdXREZXNjcmlwdGlvbiAhPSBkZXNjcmlwdGlvbikg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAK
aW5kZXggMjM2NjY3NjE3ZGQxOTczYzJlNTUzZjNlNDEyYzBmMTRiNzVlNmI5Ny4uNGFiNDA2ZDU4
OTU1ZTJmY2I2ODM0NDdlNjU4NmI1NzE2NDBmZDMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNv
Y29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwCkBAIC04MSw2ICs4MSw3IEBAIGJvb2wg
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2E6Omhhc0J1ZmZlcmVkRW5vdWdoRGF0YSgp
CiAgICAgcmV0dXJuIHdyaXR0ZW5BdWRpb0R1cmF0aW9uID49IHJlYWRBdWRpb0R1cmF0aW9uICsg
MC4wMTsKIH0KIAorLy8gTWF5IGdldCBjYWxsZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4KIHZv
aWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2E6OmF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBj
b25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBzdHJlYW1EZXNjcmlwdGlvbiwgc2l6ZV90IHNh
bXBsZUNvdW50KQogewogICAgIGlmIChtX2lucHV0U3RyZWFtRGVzY3JpcHRpb24gIT0gc3RyZWFt
RGVzY3JpcHRpb24pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5tbQppbmRleCBkNGU5NzNiOTkyOGY4ZWJlOTQ5NmIzZmFiOTY3MTk2MzM4MGE4OGFkLi45NGVm
YWU2OTVkZGQyOTJjZjhmNDIxNGUzYzNkMDRkMTgxNjM4ZTM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCkBAIC0xNTksNiArMTU5LDcgQEAgdm9pZCBX
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6dW5wcmVwYXJlKCkKICAgICB9CiB9CiAKKy8v
IE1heSBnZXQgY2FsbGVkIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuCiB2b2lkIFdlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUmIHRyYWNrLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVf
dCBmcmFtZUNvdW50KQogewogICAgIGlmICghdHJhY2suZW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmNwcAppbmRleCBmNDdmMTZlZTI5MjczYTAxMWFjODRiMmYyNDZjNjU3ZjcxNzUw
MGNiLi5mMzQzYTA1YjZkYWQxMjMzYjYxYTEzNjY1ZjU2ZTUyYzZmNDkzMDkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmNwcApAQCAtODAsNiArODAsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1f
bWFuYWdlci5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OlNvdXJjZVNldHRpbmdzQ2hhbmdlZChtX2lkLCBtX3NvdXJjZS0+c2V0dGluZ3MoKSksIDApOwog
ICAgIH0KIAorICAgIC8vIE1heSBnZXQgY2FsbGVkIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuCiAg
ICAgdm9pZCBhdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25z
dCBQbGF0Zm9ybUF1ZGlvRGF0YSYgYXVkaW9EYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IG51bWJlck9mRnJhbWVzKSBmaW5hbCB7CiAgICAgICAg
IGlmIChtX2Rlc2NyaXB0aW9uICE9IGRlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgICBBU1NFUlQo
ZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlw
dGlvbjo6Q0FBdWRpb1N0cmVhbUJhc2ljVHlwZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>