<?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>219560</bug_id>
          
          <creation_ts>2020-12-04 16:17:56 -0800</creation_ts>
          <short_desc>Simplify audio resampling code</short_desc>
          <delta_ts>2020-12-04 17:28:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>219561</blocked>
          <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>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1712207</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-12-04 16:17:56 -0800</bug_when>
    <thetext>Simplify audio resampling code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712211</commentid>
    <comment_count>1</comment_count>
      <attachid>415474</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-12-04 16:37:40 -0800</bug_when>
    <thetext>Created attachment 415474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712212</commentid>
    <comment_count>2</comment_count>
      <attachid>415474</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-12-04 16:43:38 -0800</bug_when>
    <thetext>Comment on attachment 415474
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=415474&amp;action=review

&gt; Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.cpp:124
&gt; +    if (AudioSourceProvider* provider = mediaElement().audioSourceProvider())

I would&apos;ve used auto here. And I noticed you did use it in a similar case below.

&gt; Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.cpp:172
&gt; +    if (m_multiChannelResampler.get()) {

I don’t think &quot;get()&quot; is needed here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712213</commentid>
    <comment_count>3</comment_count>
      <attachid>415475</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-12-04 16:45:57 -0800</bug_when>
    <thetext>Created attachment 415475
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712220</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-04 17:27:11 -0800</bug_when>
    <thetext>Committed r270468: &lt;https://trac.webkit.org/changeset/270468&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415475.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712221</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-04 17:28:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/72000044&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415474</attachid>
            <date>2020-12-04 16:37:40 -0800</date>
            <delta_ts>2020-12-04 16:45:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219560-20201204163739.patch</filename>
            <type>text/plain</type>
            <size>30824</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAyMDMwZWIwY2UzZDAy
ODUwZWIxNzlhZmFmMTliZDFlZTg3MjEwYy4uMGNhNDg2MGVhN2NjM2FkY2MyMjE2ZjljZGIwZjdj
NjYwYjUzZDQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIwLTEyLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgYXVkaW8gcmVz
YW1wbGluZyBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTk1NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNYWRlIHRoZSBmb2xsb3dpbmcgY2hhbmdlcyB0byBzaW1wbGlmeSAvIGltcHJvdmUgdGhl
IHJlc2FtcGxpbmcgY29kZToKKyAgICAgICAgLSBNdWx0aUNoYW5uZWxSZXNhbXBsZXIgJiBTaW5j
UmVzYW1wbGVyIG5vdyB0YWtlIGEgbGFtYmRhIHVwb24gY29uc3RydWN0aW9uCisgICAgICAgICAg
dG8gZmV0Y2ggaW5wdXQgZGF0YSwgaW5zdGVhZCBvZiB0YWtpbmcgYSBBdWRpb1NvdXJjZVByb3Zp
ZGVyIHBvaW50ZXIKKyAgICAgICAgICB3aGVuZXZlciBwcm9jZXNzKCkgaXMgY2FsbGVkLgorICAg
ICAgICAtIFdlIGNhbiBub3cgZ2V0IHJpZCBvZiB0aGUgd2hvbGUgTXVsdGlDaGFubmVsUmVzYW1w
bGVyOjpDaGFubmVsUHJvdmlkZXIKKyAgICAgICAgICBjbGFzcyBhbmQgaGF2ZSB0aGUgbGFtYmRh
IGNhbGwgTXVsdGlDaGFubmVsUmVzYW1wbGVyOjpwcm92aWRlSW5wdXRGb3JDaGFubmVsKCkKKyAg
ICAgICAgICBpbnN0ZWFkLiBTaW1pbGFybHksIHdlIGNhbiBhbHNvIGdldCByaWQgb2YgU2luY1Jl
c2FtcGxlcidzIEJ1ZmZlclNvdXJjZVByb3ZpZGVyLgorICAgICAgICAtIEFzIGFuIG9wdGltaXph
dGlvbiwgTXVsdGlDaGFubmVsUmVzYW1wbGVyOjpwcm9jZXNzKCkgbm93IGhhcyBhIGZhc3QgcGF0
aAorICAgICAgICAgIHdoZW4gdGhlIEF1ZGlvQnVzIG9ubHkgaGFzIGEgc2luZ2xlIGNoYW5uZWws
IHRvIGF2b2lkIHRoZQorICAgICAgICAgIHByb2Nlc3NpbmctaW4tY2h1bmtzIGxvZ2ljLiBUaGUg
Y2h1bmtpbmcgbG9naWMgaXMgb25seSBuZWVkZWQgd2hlbiB0aGVyZQorICAgICAgICAgIGFyZSBt
dWx0aXBsZSBjaGFubmVscywgdG8gbWFrZSBzdXJlIHRoYXQgcHJvdmlkZUlucHV0Rm9yQ2hhbm5l
bCgpIG9ubHkgZ2V0cworICAgICAgICAgIGNhbGxlZCBvbmNlIHBlciBjaGFubmVsLCB0byBhdm9p
ZCBjb25mdXNpbmcgaXRzIGxvZ2ljLiBUaGlzIGlzIHNpbWlsYXIgdG8KKyAgICAgICAgICB3aGF0
IENocm9taXVtIGRvZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVu
dEF1ZGlvU291cmNlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRBdWRp
b1NvdXJjZU5vZGU6OnNldEZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRB
dWRpb1NvdXJjZU5vZGU6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVs
ZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZTo6c2V0Rm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6
Y3JlYXRlQnlTYW1wbGVSYXRlQ29udmVydGluZyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
TXVsdGlDaGFubmVsUmVzYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11bHRpQ2hhbm5l
bFJlc2FtcGxlcjo6TXVsdGlDaGFubmVsUmVzYW1wbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok11
bHRpQ2hhbm5lbFJlc2FtcGxlcjo6cHJvY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpNdWx0aUNo
YW5uZWxSZXNhbXBsZXI6OnByb3ZpZGVJbnB1dEZvckNoYW5uZWwpOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL1NpbmNSZXNhbXBsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2luY1Jlc2FtcGxlcjo6
U2luY1Jlc2FtcGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTaW5jUmVzYW1wbGVyOjpwcm9jZXNz
QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbmNSZXNhbXBsZXI6OnByb2Nlc3MpOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpBdWRpb0Rlc3RpbmF0aW9uQ29jb2EpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpyZW5kZXJPblJlbmRlcmluZ1RoZWFk
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2Eu
aDoKKwogMjAyMC0xMi0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFN0b3AgY29uc3RydWN0aW5nIHVubmVjZXNzYXJ5IEF1ZGlvQnVzIGluIFNpbmNSZXNhbXBs
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVt
ZW50QXVkaW9Tb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
TWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcAppbmRleCAxMjU1Yzg2Nzg5YzY0Y2RmMTFm
MjU0M2ZlOTE3NjkzMzRlNWYwOWVlLi4zZTI2NDJiZjIwNWU2MWE5NDI2NzU0Y2FkMWYzZjQ4OWVk
MWNlOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlh
RWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwCkBAIC0zMSw2ICszMSw4IEBA
CiAKICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQu
aCIKKyNpbmNsdWRlICJBdWRpb1NvdXJjZVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiQXVkaW9VdGls
aXRpZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFFbGVtZW50QXVk
aW9Tb3VyY2VPcHRpb25zLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKQEAgLTEwMCw3ICsx
MDIsNyBAQCB2b2lkIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZTo6c2V0Rm9ybWF0KHNpemVf
dCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzb3VyYwogCiAgICAgICAgIGlmIChzb3VyY2VTYW1w
bGVSYXRlICE9IHNhbXBsZVJhdGUoKSkgewogICAgICAgICAgICAgZG91YmxlIHNjYWxlRmFjdG9y
ID0gc291cmNlU2FtcGxlUmF0ZSAvIHNhbXBsZVJhdGUoKTsKLSAgICAgICAgICAgIG1fbXVsdGlD
aGFubmVsUmVzYW1wbGVyID0gbWFrZVVuaXF1ZTxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+KHNjYWxl
RmFjdG9yLCBudW1iZXJPZkNoYW5uZWxzKTsKKyAgICAgICAgICAgIG1fbXVsdGlDaGFubmVsUmVz
YW1wbGVyID0gbWFrZVVuaXF1ZTxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+KHNjYWxlRmFjdG9yLCBu
dW1iZXJPZkNoYW5uZWxzLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUsIHN0ZDo6
YmluZCgmTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlOjpwcm92aWRlSW5wdXQsIHRoaXMsIHN0
ZDo6cGxhY2Vob2xkZXJzOjpfMSwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8yKSk7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAvLyBCeXBhc3MgcmVzYW1wbGluZy4KICAgICAgICAgICAgIG1f
bXVsdGlDaGFubmVsUmVzYW1wbGVyID0gbnVsbHB0cjsKQEAgLTExNiw2ICsxMTgsMTggQEAgdm9p
ZCBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZD
aGFubmVscywgZmxvYXQgc291cmMKICAgICB9CiB9CiAKK3ZvaWQgTWVkaWFFbGVtZW50QXVkaW9T
b3VyY2VOb2RlOjpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJv
Y2VzcykKK3sKKyAgICBBU1NFUlQoYnVzKTsKKyAgICBpZiAoQXVkaW9Tb3VyY2VQcm92aWRlciog
cHJvdmlkZXIgPSBtZWRpYUVsZW1lbnQoKS5hdWRpb1NvdXJjZVByb3ZpZGVyKCkpCisgICAgICAg
IHByb3ZpZGVyLT5wcm92aWRlSW5wdXQoYnVzLCBmcmFtZXNUb1Byb2Nlc3MpOworICAgIGVsc2Ug
eworICAgICAgICAvLyBFaXRoZXIgdGhpcyBwb3J0IGRvZXNuJ3QgeWV0IHN1cHBvcnQgSFRNTE1l
ZGlhRWxlbWVudCBhdWRpbyBzdHJlYW0gYWNjZXNzLAorICAgICAgICAvLyBvciB0aGUgc3RyZWFt
IGlzIG5vdCB5ZXQgYXZhaWxhYmxlLgorICAgICAgICBidXMtPnplcm8oKTsKKyAgICB9Cit9CisK
IGJvb2wgTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlOjp3b3VsZFRhaW50T3JpZ2luKCkKIHsK
ICAgICAvLyBJZiB0aGUgcmVzb3VyY2UgaXMgcmVkaXJlY3RlZCB0byBhbm90aGVyIG9yaWdpbiwg
dHJlYXQgaXQgYXMgdGFpbnRlZCBpZiB0aGUgY3Jvc3NvcmlnaW4gYXR0cmlidXRlCkBAIC0xNTUs
MTkgKzE2OSwxMyBAQCB2b2lkIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZTo6cHJvY2Vzcyhz
aXplX3QgbnVtYmVyT2ZGcmFtZXMpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAo
QXVkaW9Tb3VyY2VQcm92aWRlciogcHJvdmlkZXIgPSBtZWRpYUVsZW1lbnQoKS5hdWRpb1NvdXJj
ZVByb3ZpZGVyKCkpIHsKLSAgICAgICAgaWYgKG1fbXVsdGlDaGFubmVsUmVzYW1wbGVyLmdldCgp
KSB7Ci0gICAgICAgICAgICBBU1NFUlQobV9zb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBsZVJhdGUo
KSk7Ci0gICAgICAgICAgICBtX211bHRpQ2hhbm5lbFJlc2FtcGxlci0+cHJvY2Vzcyhwcm92aWRl
ciwgb3V0cHV0QnVzLCBudW1iZXJPZkZyYW1lcyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAvLyBCeXBhc3MgdGhlIHJlc2FtcGxlciBjb21wbGV0ZWx5IGlmIHRoZSBzb3VyY2UgaXMg
YXQgdGhlIGNvbnRleHQncyBzYW1wbGUtcmF0ZS4KLSAgICAgICAgICAgIEFTU0VSVChtX3NvdXJj
ZVNhbXBsZVJhdGUgPT0gc2FtcGxlUmF0ZSgpKTsKLSAgICAgICAgICAgIHByb3ZpZGVyLT5wcm92
aWRlSW5wdXQob3V0cHV0QnVzLCBudW1iZXJPZkZyYW1lcyk7Ci0gICAgICAgIH0KKyAgICBpZiAo
bV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIuZ2V0KCkpIHsKKyAgICAgICAgQVNTRVJUKG1fc291cmNl
U2FtcGxlUmF0ZSAhPSBzYW1wbGVSYXRlKCkpOworICAgICAgICBtX211bHRpQ2hhbm5lbFJlc2Ft
cGxlci0+cHJvY2VzcyhvdXRwdXRCdXMsIG51bWJlck9mRnJhbWVzKTsKICAgICB9IGVsc2Ugewot
ICAgICAgICAvLyBFaXRoZXIgdGhpcyBwb3J0IGRvZXNuJ3QgeWV0IHN1cHBvcnQgSFRNTE1lZGlh
RWxlbWVudCBhdWRpbyBzdHJlYW0gYWNjZXNzLAotICAgICAgICAvLyBvciB0aGUgc3RyZWFtIGlz
IG5vdCB5ZXQgYXZhaWxhYmxlLgotICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsKKyAgICAgICAg
Ly8gQnlwYXNzIHRoZSByZXNhbXBsZXIgY29tcGxldGVseSBpZiB0aGUgc291cmNlIGlzIGF0IHRo
ZSBjb250ZXh0J3Mgc2FtcGxlLXJhdGUuCisgICAgICAgIEFTU0VSVChtX3NvdXJjZVNhbXBsZVJh
dGUgPT0gc2FtcGxlUmF0ZSgpKTsKKyAgICAgICAgcHJvdmlkZUlucHV0KG91dHB1dEJ1cywgbnVt
YmVyT2ZGcmFtZXMpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmgKaW5kZXgg
MDdhODg2YjM1OWE3MGFkZmVmNzYwMjFlNmVhZGVkMmYxODhiZDhjMi4uNzQzOWE2ZGIyODJmYmI5
NGY0MTFlNDcxNWFkYTE1OThjYjA0YmMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oCkBA
IC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBNZWRpYUVsZW1lbnRBdWRp
b1NvdXJjZU5vZGUoQmFzZUF1ZGlvQ29udGV4dCYsIFJlZjxIVE1MTWVkaWFFbGVtZW50PiYmKTsK
KyAgICB2b2lkIHByb3ZpZGVJbnB1dChBdWRpb0J1cyosIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3Mp
OwogCiAgICAgZG91YmxlIHRhaWxUaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQog
ICAgIGRvdWJsZSBsYXRlbmN5VGltZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAKaW5kZXggODBhMGUwNmNjZWU0MWQ3OGRjNGQ0MDQwYTc0
YjJlZmUxYmEzZjFkZC4uOTFjYmEyZDAyOTgxMjUyZDY2NzdkMWE5OGQwNjM2MDQ2YjgyZWJkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1
ZGlvU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9N
ZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAKQEAgLTMwLDYgKzMwLDggQEAKIAogI2luY2x1
ZGUgIkF1ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgIkF1ZGlvTm9kZU91dHB1dC5oIgorI2luY2x1
ZGUgIkF1ZGlvU291cmNlUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbUF1ZGlvU291cmNlT3B0
aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC0xMTQsNyArMTE2
LDcgQEAgdm9pZCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZTo6c2V0Rm9ybWF0KHNpemVfdCBu
dW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzb3VyY2UKICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNh
bXBsZXIgPSBudWxscHRyOwogICAgIGVsc2UgewogICAgICAgICBkb3VibGUgc2NhbGVGYWN0b3Ig
PSBzb3VyY2VTYW1wbGVSYXRlIC8gc2FtcGxlUmF0ZTsKLSAgICAgICAgbV9tdWx0aUNoYW5uZWxS
ZXNhbXBsZXIgPSBtYWtlVW5pcXVlPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4oc2NhbGVGYWN0b3Is
IG51bWJlck9mQ2hhbm5lbHMpOworICAgICAgICBtX211bHRpQ2hhbm5lbFJlc2FtcGxlciA9IG1h
a2VVbmlxdWU8TXVsdGlDaGFubmVsUmVzYW1wbGVyPihzY2FsZUZhY3RvciwgbnVtYmVyT2ZDaGFu
bmVscywgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplLCBzdGQ6OmJpbmQoJk1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpwcm92aWRlSW5wdXQsIHRoaXMsIHN0ZDo6cGxhY2Vob2xk
ZXJzOjpfMSwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8yKSk7CiAgICAgfQogCiAgICAgbV9zb3VyY2VO
dW1iZXJPZkNoYW5uZWxzID0gbnVtYmVyT2ZDaGFubmVsczsKQEAgLTEyOCwxMiArMTMwLDE5IEBA
IHZvaWQgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdChzaXplX3QgbnVtYmVy
T2ZDaGFubmVscywgZmxvYXQgc291cmNlCiAgICAgfQogfQogCit2b2lkIE1lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VOb2RlOjpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1Rv
UHJvY2VzcykKK3sKKyAgICBpZiAoYXV0byogcHJvdmlkZXIgPSBtX2F1ZGlvVHJhY2stPmF1ZGlv
U291cmNlUHJvdmlkZXIoKSkKKyAgICAgICAgcHJvdmlkZXItPnByb3ZpZGVJbnB1dChidXMsIGZy
YW1lc1RvUHJvY2Vzcyk7CisgICAgZWxzZQorICAgICAgICBidXMtPnplcm8oKTsKK30KKwogdm9p
ZCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZTo6cHJvY2VzcyhzaXplX3QgbnVtYmVyT2ZGcmFt
ZXMpCiB7CiAgICAgQXVkaW9CdXMqIG91dHB1dEJ1cyA9IG91dHB1dCgwKS0+YnVzKCk7Ci0gICAg
QXVkaW9Tb3VyY2VQcm92aWRlciogcHJvdmlkZXIgPSBtX2F1ZGlvVHJhY2stPmF1ZGlvU291cmNl
UHJvdmlkZXIoKTsKIAotICAgIGlmICghbWVkaWFTdHJlYW0oKSB8fCAhbV9zb3VyY2VOdW1iZXJP
ZkNoYW5uZWxzIHx8ICFtX3NvdXJjZVNhbXBsZVJhdGUgfHwgIXByb3ZpZGVyKSB7CisgICAgaWYg
KCFtZWRpYVN0cmVhbSgpIHx8ICFtX3NvdXJjZU51bWJlck9mQ2hhbm5lbHMgfHwgIW1fc291cmNl
U2FtcGxlUmF0ZSkgewogICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTE1NywxMSArMTY2LDExIEBAIHZvaWQgTWVkaWFTdHJlYW1BdWRpb1NvdXJj
ZU5vZGU6OnByb2Nlc3Moc2l6ZV90IG51bWJlck9mRnJhbWVzKQogCiAgICAgaWYgKG1fbXVsdGlD
aGFubmVsUmVzYW1wbGVyLmdldCgpKSB7CiAgICAgICAgIEFTU0VSVChtX3NvdXJjZVNhbXBsZVJh
dGUgIT0gc2FtcGxlUmF0ZSgpKTsKLSAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXItPnBy
b2Nlc3MocHJvdmlkZXIsIG91dHB1dEJ1cywgbnVtYmVyT2ZGcmFtZXMpOworICAgICAgICBtX211
bHRpQ2hhbm5lbFJlc2FtcGxlci0+cHJvY2VzcyhvdXRwdXRCdXMsIG51bWJlck9mRnJhbWVzKTsK
ICAgICB9IGVsc2UgewogICAgICAgICAvLyBCeXBhc3MgdGhlIHJlc2FtcGxlciBjb21wbGV0ZWx5
IGlmIHRoZSBzb3VyY2UgaXMgYXQgdGhlIGNvbnRleHQncyBzYW1wbGUtcmF0ZS4KICAgICAgICAg
QVNTRVJUKG1fc291cmNlU2FtcGxlUmF0ZSA9PSBzYW1wbGVSYXRlKCkpOwotICAgICAgICBwcm92
aWRlci0+cHJvdmlkZUlucHV0KG91dHB1dEJ1cywgbnVtYmVyT2ZGcmFtZXMpOworICAgICAgICBw
cm92aWRlSW5wdXQob3V0cHV0QnVzLCBudW1iZXJPZkZyYW1lcyk7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9T
b3VyY2VOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VOb2RlLmgKaW5kZXggN2Q2NDUwMTllMTNhZjg4ZjY4YWJhNTI0ZTc3NGNkNWI2
ZTk5MGEyOS4uMzIxMjQ0ZmIzNWVlNTcwZmYxZGE2NmRkMzUzODE2ODAxNjhlZDQ2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZU5vZGUuaApAQCAtNTYsNiArNTYsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlKEJhc2VBdWRpb0NvbnRleHQmLCBNZWRpYVN0
cmVhbSYsIE1lZGlhU3RyZWFtVHJhY2smKTsKIAorICAgIHZvaWQgcHJvdmlkZUlucHV0KEF1ZGlv
QnVzKiwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7CisKICAgICBkb3VibGUgdGFpbFRpbWUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAgICAgZG91YmxlIGxhdGVuY3lUaW1lKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQogICAgIGJvb2wgcmVxdWlyZXNUYWlsUHJvY2Vzc2lu
ZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9BdWRpb0J1cy5jcHAKaW5kZXggNzJmNDUwZWY1ODMxODVhMWM2ZmIxZmI4ZDY5ZjM3
NDQ1YTgzZmUzMy4uZTYzNjg3MjMxYTFlMGEyZTY4YWJlOGZlZjI1ZmFlYWUxZDkyMzdmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcApAQCAtMzMsNyArMzMs
NiBAQAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCiAKICNpbmNsdWRlICJEZW5vcm1hbERpc2FibGVy
LmgiCi0KICNpbmNsdWRlICJTaW5jUmVzYW1wbGVyLmgiCiAjaW5jbHVkZSAiVmVjdG9yTWF0aC5o
IgogI2luY2x1ZGUgPGFsZ29yaXRobT4KQEAgLTU1Nyw4ICs1NTYsNyBAQCBSZWZQdHI8QXVkaW9C
dXM+IEF1ZGlvQnVzOjpjcmVhdGVCeVNhbXBsZVJhdGVDb252ZXJ0aW5nKGNvbnN0IEF1ZGlvQnVz
KiBzb3VyY2VCdQogICAgICAgICBjb25zdCBmbG9hdCogc291cmNlID0gcmVzYW1wbGVyU291cmNl
QnVzLT5jaGFubmVsKGkpLT5kYXRhKCk7CiAgICAgICAgIGZsb2F0KiBkZXN0aW5hdGlvbiA9IGRl
c3RpbmF0aW9uQnVzLT5jaGFubmVsKGkpLT5tdXRhYmxlRGF0YSgpOwogCi0gICAgICAgIFNpbmNS
ZXNhbXBsZXIgcmVzYW1wbGVyKHNhbXBsZVJhdGVSYXRpbyk7Ci0gICAgICAgIHJlc2FtcGxlci5w
cm9jZXNzKHNvdXJjZSwgZGVzdGluYXRpb24sIHNvdXJjZUxlbmd0aCk7CisgICAgICAgIFNpbmNS
ZXNhbXBsZXI6OnByb2Nlc3NCdWZmZXIoc291cmNlLCBkZXN0aW5hdGlvbiwgc291cmNlTGVuZ3Ro
LCBzYW1wbGVSYXRlUmF0aW8pOwogICAgIH0KIAogICAgIGRlc3RpbmF0aW9uQnVzLT5jbGVhclNp
bGVudEZsYWcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL011
bHRpQ2hhbm5lbFJlc2FtcGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9N
dWx0aUNoYW5uZWxSZXNhbXBsZXIuY3BwCmluZGV4IGQzNGZiNzg5YjZiYzlkMzc5ZmM5NGFhMzlj
MmE1YWMzOGJmMDFlNTUuLjdhNDlkOGM4YmY5ZWE4YzFlMWIwOGE1NWE4ZDhlZTY4ZTk2ZDJjZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJl
c2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFu
bmVsUmVzYW1wbGVyLmNwcApAQCAtMzMsNzkgKzMzLDM0IEBACiAjaW5jbHVkZSAiTXVsdGlDaGFu
bmVsUmVzYW1wbGVyLmgiCiAKICNpbmNsdWRlICJBdWRpb0J1cy5oIgorI2luY2x1ZGUgIlNpbmNS
ZXNhbXBsZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBDaGFubmVsUHJvdmlkZXIg
cHJvdmlkZXMgYSBzaW5nbGUgY2hhbm5lbCBvZiBhdWRpbyBkYXRhIChvbmUgY2hhbm5lbCBhdCBh
IHRpbWUpIGZvciBlYWNoIGNoYW5uZWwKLS8vIG9mIGRhdGEgcHJvdmlkZWQgdG8gdXMgaW4gYSBt
dWx0aS1jaGFubmVsIHByb3ZpZGVyLgotY2xhc3MgTXVsdGlDaGFubmVsUmVzYW1wbGVyOjpDaGFu
bmVsUHJvdmlkZXIgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAg
IGV4cGxpY2l0IENoYW5uZWxQcm92aWRlcih1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCB1bnNp
Z25lZCByZXF1ZXN0RnJhbWVzKQotICAgICAgICA6IG1fbXVsdGlDaGFubmVsQnVzKEF1ZGlvQnVz
OjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscywgcmVxdWVzdEZyYW1lcykpCi0gICAgewotICAgIH0K
LQotICAgIHZvaWQgc2V0UHJvdmlkZXIoQXVkaW9Tb3VyY2VQcm92aWRlciogbXVsdGlDaGFubmVs
UHJvdmlkZXIpCi0gICAgewotICAgICAgICBtX211bHRpQ2hhbm5lbFByb3ZpZGVyID0gbXVsdGlD
aGFubmVsUHJvdmlkZXI7Ci0gICAgfQotCi0gICAgLy8gcHJvdmlkZUlucHV0KCkgd2lsbCBiZSBj
YWxsZWQgb25jZSBmb3IgZWFjaCBjaGFubmVsLCBzdGFydGluZyB3aXRoIHRoZSBmaXJzdCBjaGFu
bmVsLgotICAgIC8vIEVhY2ggdGltZSBpdCdzIGNhbGxlZCwgaXQgd2lsbCBwcm92aWRlIHRoZSBu
ZXh0IGNoYW5uZWwgb2YgZGF0YS4KLSAgICB2b2lkIHByb3ZpZGVJbnB1dEZvckNoYW5uZWwoZmxv
YXQqIGJ1ZmZlciwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcywgdW5zaWduZWQgY2hhbm5lbEluZGV4
KQotICAgIHsKLSAgICAgICAgQVNTRVJUKGNoYW5uZWxJbmRleCA8IG1fbXVsdGlDaGFubmVsQnVz
LT5udW1iZXJPZkNoYW5uZWxzKCkpOwotICAgICAgICBBU1NFUlQoZnJhbWVzVG9Qcm9jZXNzIDw9
IG1fbXVsdGlDaGFubmVsQnVzLT5sZW5ndGgoKSk7Ci0gICAgICAgIGlmIChmcmFtZXNUb1Byb2Nl
c3MgPiBtX211bHRpQ2hhbm5lbEJ1cy0+bGVuZ3RoKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgLy8gR2V0IHRoZSBkYXRhIGZyb20gdGhlIG11bHRpLWNoYW5uZWwgcHJvdmlkZXIg
d2hlbiB0aGUgZmlyc3QgY2hhbm5lbCBhc2tzIGZvciBpdC4KLSAgICAgICAgLy8gRm9yIHN1YnNl
cXVlbnQgY2hhbm5lbHMsIHdlIGNhbiBqdXN0IGRpc2ggb3V0IHRoZSBjaGFubmVsIGRhdGEgZnJv
bSB0aGF0IChzdG9yZWQgaW4gbV9tdWx0aUNoYW5uZWxCdXMpLgotICAgICAgICBpZiAoIWNoYW5u
ZWxJbmRleCkgewotICAgICAgICAgICAgbV9mcmFtZXNUb1Byb2Nlc3MgPSBmcmFtZXNUb1Byb2Nl
c3M7Ci0gICAgICAgICAgICBtX211bHRpQ2hhbm5lbFByb3ZpZGVyLT5wcm92aWRlSW5wdXQobV9t
dWx0aUNoYW5uZWxCdXMuZ2V0KCksIGZyYW1lc1RvUHJvY2Vzcyk7Ci0gICAgICAgIH0KLQotICAg
ICAgICAvLyBBbGwgY2hhbm5lbHMgbXVzdCBhc2sgZm9yIHRoZSBzYW1lIGFtb3VudC4gVGhpcyBz
aG91bGQgYWx3YXlzIGJlIHRoZSBjYXNlLCBidXQgbGV0J3MganVzdCBtYWtlIHN1cmUuCi0gICAg
ICAgIGJvb2wgaXNHb29kID0gZnJhbWVzVG9Qcm9jZXNzID09IG1fZnJhbWVzVG9Qcm9jZXNzOwot
ICAgICAgICBBU1NFUlQoaXNHb29kKTsKLSAgICAgICAgaWYgKCFpc0dvb2QpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgLy8gQ29weSB0aGUgY2hhbm5lbCBkYXRhIGZyb20gd2hhdCB3
ZSByZWNlaXZlZCBmcm9tIG1fbXVsdGlDaGFubmVsUHJvdmlkZXIuCi0gICAgICAgIG1lbWNweShi
dWZmZXIsIG1fbXVsdGlDaGFubmVsQnVzLT5jaGFubmVsKGNoYW5uZWxJbmRleCktPmRhdGEoKSwg
c2l6ZW9mKGZsb2F0KSAqIGZyYW1lc1RvUHJvY2Vzcyk7Ci0gICAgfQotCi1wcml2YXRlOgotICAg
IEF1ZGlvU291cmNlUHJvdmlkZXIqIG1fbXVsdGlDaGFubmVsUHJvdmlkZXIgeyBudWxscHRyIH07
Ci0gICAgUmVmUHRyPEF1ZGlvQnVzPiBtX211bHRpQ2hhbm5lbEJ1czsKLSAgICBzaXplX3QgbV9m
cmFtZXNUb1Byb2Nlc3MgeyAwIH07IC8vIFVzZWQgdG8gdmVyaWZ5IHRoYXQgYWxsIGNoYW5uZWxz
IGFzayBmb3IgdGhlIHNhbWUgYW1vdW50LgotfTsKLQotTXVsdGlDaGFubmVsUmVzYW1wbGVyOjpN
dWx0aUNoYW5uZWxSZXNhbXBsZXIoZG91YmxlIHNjYWxlRmFjdG9yLCB1bnNpZ25lZCBudW1iZXJP
ZkNoYW5uZWxzLCB1bnNpZ25lZCByZXF1ZXN0RnJhbWVzKQorTXVsdGlDaGFubmVsUmVzYW1wbGVy
OjpNdWx0aUNoYW5uZWxSZXNhbXBsZXIoZG91YmxlIHNjYWxlRmFjdG9yLCB1bnNpZ25lZCBudW1i
ZXJPZkNoYW5uZWxzLCB1bnNpZ25lZCByZXF1ZXN0RnJhbWVzLCBGdW5jdGlvbjx2b2lkKEF1ZGlv
QnVzKiwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk+JiYgcHJvdmlkZUlucHV0KQogICAgIDogbV9u
dW1iZXJPZkNoYW5uZWxzKG51bWJlck9mQ2hhbm5lbHMpCi0gICAgLCBtX2NoYW5uZWxQcm92aWRl
cihtYWtlVW5pcXVlPENoYW5uZWxQcm92aWRlcj4obV9udW1iZXJPZkNoYW5uZWxzLCByZXF1ZXN0
RnJhbWVzKSkKKyAgICAsIG1fcHJvdmlkZUlucHV0KFdURk1vdmUocHJvdmlkZUlucHV0KSkKKyAg
ICAsIG1fbXVsdGlDaGFubmVsQnVzKEF1ZGlvQnVzOjpjcmVhdGUobnVtYmVyT2ZDaGFubmVscywg
cmVxdWVzdEZyYW1lcykpCiB7CiAgICAgLy8gQ3JlYXRlIGVhY2ggY2hhbm5lbCdzIHJlc2FtcGxl
ci4KICAgICBmb3IgKHVuc2lnbmVkIGNoYW5uZWxJbmRleCA9IDA7IGNoYW5uZWxJbmRleCA8IG51
bWJlck9mQ2hhbm5lbHM7ICsrY2hhbm5lbEluZGV4KQotICAgICAgICBtX2tlcm5lbHMuYXBwZW5k
KG1ha2VVbmlxdWU8U2luY1Jlc2FtcGxlcj4oc2NhbGVGYWN0b3IsIHJlcXVlc3RGcmFtZXMpKTsK
KyAgICAgICAgbV9rZXJuZWxzLmFwcGVuZChtYWtlVW5pcXVlPFNpbmNSZXNhbXBsZXI+KHNjYWxl
RmFjdG9yLCByZXF1ZXN0RnJhbWVzLCBzdGQ6OmJpbmQoJk11bHRpQ2hhbm5lbFJlc2FtcGxlcjo6
cHJvdmlkZUlucHV0Rm9yQ2hhbm5lbCwgdGhpcywgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBzdGQ6
OnBsYWNlaG9sZGVyczo6XzIsIGNoYW5uZWxJbmRleCkpKTsKIH0KIAogTXVsdGlDaGFubmVsUmVz
YW1wbGVyOjp+TXVsdGlDaGFubmVsUmVzYW1wbGVyKCkgPSBkZWZhdWx0OwogCi12b2lkIE11bHRp
Q2hhbm5lbFJlc2FtcGxlcjo6cHJvY2VzcyhBdWRpb1NvdXJjZVByb3ZpZGVyKiBwcm92aWRlciwg
QXVkaW9CdXMqIGRlc3RpbmF0aW9uLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQordm9pZCBNdWx0
aUNoYW5uZWxSZXNhbXBsZXI6OnByb2Nlc3MoQXVkaW9CdXMqIGRlc3RpbmF0aW9uLCBzaXplX3Qg
ZnJhbWVzVG9Qcm9jZXNzKQogewogICAgIEFTU0VSVChtX251bWJlck9mQ2hhbm5lbHMgPT0gZGVz
dGluYXRpb24tPm51bWJlck9mQ2hhbm5lbHMoKSk7CisgICAgaWYgKGRlc3RpbmF0aW9uLT5udW1i
ZXJPZkNoYW5uZWxzKCkgPT0gMSkgeworICAgICAgICAvLyBGYXN0IHBhdGggd2hlbiB0aGUgYnVz
IGlzIG1vbm8gdG8gYXZvaWQgdGhlIGNodW5raW5nIGJlbG93LgorICAgICAgICBtX2tlcm5lbHNb
MF0tPnByb2Nlc3MoZGVzdGluYXRpb24tPmNoYW5uZWwoMCktPm11dGFibGVEYXRhKCksIGZyYW1l
c1RvUHJvY2Vzcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKLSAgICAvLyBUaGUgcHJvdmlk
ZXIgY2FuIHByb3ZpZGUgdXMgd2l0aCBtdWx0aS1jaGFubmVsIGF1ZGlvIGRhdGEuIEJ1dCBlYWNo
IG9mIG91ciBzaW5nbGUtY2hhbm5lbCByZXNhbXBsZXJzIChrZXJuZWxzKQotICAgIC8vIGJlbG93
IHJlcXVpcmVzIGEgcHJvdmlkZXIgd2hpY2ggcHJvdmlkZXMgYSBzaW5nbGUgdW5pcXVlIGNoYW5u
ZWwgb2YgZGF0YS4KLSAgICAvLyBjaGFubmVsUHJvdmlkZXIgd3JhcHMgdGhlIG9yaWdpbmFsIG11
bHRpLWNoYW5uZWwgcHJvdmlkZXIgYW5kIGRpc2hlcyBvdXQgb25lIGNoYW5uZWwgYXQgYSB0aW1l
LgotICAgIG1fY2hhbm5lbFByb3ZpZGVyLT5zZXRQcm92aWRlcihwcm92aWRlcik7Ci0KLSAgICAv
LyBXZSBuZWVkIHRvIGVuc3VyZSB0aGF0IFNpbmNSZXNhbXBsZXIgb25seSBjYWxscyBwcm92aWRl
SW5wdXQoKSBvbmNlIGZvciBlYWNoIGNoYW5uZWwgb3IgaXQgd2lsbCBjb25mdXNlIHRoZSBsb2dp
YwotICAgIC8vIGluc2lkZSBDaGFubmVsUHJvdmlkZXIuIFRvIGVuc3VyZSB0aGlzLCB3ZSBjaHVu
ayB0aGUgbnVtYmVyIG9mIHJlcXVlc3RlZCBmcmFtZXMgaW50byBTaW5jUmVzYW1wbGVyOjpjaHVu
a1NpemUoKQotICAgIC8vIHNpemVkIGNodW5rcy4gU2luY1Jlc2FtcGxlciBndWFyYW50ZWVzIGl0
IHdpbGwgb25seSBjYWxsIHByb3ZpZGVJbnB1dCgpIG9uY2Ugb25jZSB3ZSByZXNhbXBsZSB0aGlz
IHdheS4KKyAgICAvLyBXZSBuZWVkIHRvIGVuc3VyZSB0aGF0IFNpbmNSZXNhbXBsZXIgb25seSBj
YWxscyBwcm92aWRlSW5wdXRGb3JDaGFubmVsKCkgb25jZSBmb3IgZWFjaCBjaGFubmVsIG9yIGl0
IHdpbGwgY29uZnVzZSB0aGUgbG9naWMKKyAgICAvLyBpbnNpZGUgcHJvdmlkZUlucHV0Rm9yQ2hh
bm5lbCgpLiBUbyBlbnN1cmUgdGhpcywgd2UgY2h1bmsgdGhlIG51bWJlciBvZiByZXF1ZXN0ZWQg
ZnJhbWVzIGludG8gU2luY1Jlc2FtcGxlcjo6Y2h1bmtTaXplKCkKKyAgICAvLyBzaXplZCBjaHVu
a3MuIFNpbmNSZXNhbXBsZXIgZ3VhcmFudGVlcyBpdCB3aWxsIG9ubHkgY2FsbCBwcm92aWRlSW5w
dXRGb3JDaGFubmVsKCkgb25jZSBvbmNlIHdlIHJlc2FtcGxlIHRoaXMgd2F5LgogICAgIG1fb3V0
cHV0RnJhbWVzUmVhZHkgPSAwOwogICAgIHdoaWxlIChtX291dHB1dEZyYW1lc1JlYWR5IDwgZnJh
bWVzVG9Qcm9jZXNzKSB7CiAgICAgICAgIHNpemVfdCBjaHVua1NpemUgPSBtX2tlcm5lbHNbMF0t
PmNodW5rU2l6ZSgpOwpAQCAtMTEzLDE4ICs2OCwyMyBAQCB2b2lkIE11bHRpQ2hhbm5lbFJlc2Ft
cGxlcjo6cHJvY2VzcyhBdWRpb1NvdXJjZVByb3ZpZGVyKiBwcm92aWRlciwgQXVkaW9CdXMqIGRl
cwogCiAgICAgICAgIGZvciAodW5zaWduZWQgY2hhbm5lbEluZGV4ID0gMDsgY2hhbm5lbEluZGV4
IDwgbV9udW1iZXJPZkNoYW5uZWxzOyArK2NoYW5uZWxJbmRleCkgewogICAgICAgICAgICAgQVNT
RVJUKGNodW5rU2l6ZSA9PSBtX2tlcm5lbHNbY2hhbm5lbEluZGV4XS0+Y2h1bmtTaXplKCkpOwot
ICAgICAgICAgICAgYm9vbCB3YXNQcm92aWRlSW5wdXRDYWxsZWQgPSBmYWxzZTsKLSAgICAgICAg
ICAgIG1fa2VybmVsc1tjaGFubmVsSW5kZXhdLT5wcm9jZXNzKGRlc3RpbmF0aW9uLT5jaGFubmVs
KGNoYW5uZWxJbmRleCktPm11dGFibGVEYXRhKCkgKyBtX291dHB1dEZyYW1lc1JlYWR5LCBmcmFt
ZXNUaGlzVGltZSwgW3RoaXMsIGNoYW5uZWxJbmRleCwgJndhc1Byb3ZpZGVJbnB1dENhbGxlZF0o
ZmxvYXQqIGJ1ZmZlciwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykgewotICAgICAgICAgICAgICAg
IEFTU0VSVF9XSVRIX01FU1NBR0UoIXdhc1Byb3ZpZGVJbnB1dENhbGxlZCwgInByb3ZpZGVJbnB1
dEZvckNoYW5uZWwgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uY2UiKTsKLSAgICAgICAgICAgICAg
ICB3YXNQcm92aWRlSW5wdXRDYWxsZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgIG1fY2hhbm5l
bFByb3ZpZGVyLT5wcm92aWRlSW5wdXRGb3JDaGFubmVsKGJ1ZmZlciwgZnJhbWVzVG9Qcm9jZXNz
LCBjaGFubmVsSW5kZXgpOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBtX2tlcm5lbHNb
Y2hhbm5lbEluZGV4XS0+cHJvY2VzcyhkZXN0aW5hdGlvbi0+Y2hhbm5lbChjaGFubmVsSW5kZXgp
LT5tdXRhYmxlRGF0YSgpICsgbV9vdXRwdXRGcmFtZXNSZWFkeSwgZnJhbWVzVGhpc1RpbWUpOwog
ICAgICAgICB9CiAKICAgICAgICAgbV9vdXRwdXRGcmFtZXNSZWFkeSArPSBmcmFtZXNUaGlzVGlt
ZTsKICAgICB9Cit9CisKK3ZvaWQgTXVsdGlDaGFubmVsUmVzYW1wbGVyOjpwcm92aWRlSW5wdXRG
b3JDaGFubmVsKGZsb2F0KiBidWZmZXIsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MsIHVuc2lnbmVk
IGNoYW5uZWxJbmRleCkKK3sKKyAgICBBU1NFUlQoY2hhbm5lbEluZGV4IDwgbV9tdWx0aUNoYW5u
ZWxCdXMtPm51bWJlck9mQ2hhbm5lbHMoKSk7CisgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2VzcyA8
PSBtX211bHRpQ2hhbm5lbEJ1cy0+bGVuZ3RoKCkpOworCisgICAgaWYgKCFjaGFubmVsSW5kZXgp
CisgICAgICAgIG1fcHJvdmlkZUlucHV0KG1fbXVsdGlDaGFubmVsQnVzLmdldCgpLCBmcmFtZXNU
b1Byb2Nlc3MpOwogCi0gICAgbV9jaGFubmVsUHJvdmlkZXItPnNldFByb3ZpZGVyKG51bGxwdHIp
OworICAgIC8vIENvcHkgdGhlIGNoYW5uZWwgZGF0YSBmcm9tIHdoYXQgd2UgcmVjZWl2ZWQgZnJv
bSBtX211bHRpQ2hhbm5lbFByb3ZpZGVyLgorICAgIG1lbWNweShidWZmZXIsIG1fbXVsdGlDaGFu
bmVsQnVzLT5jaGFubmVsKGNoYW5uZWxJbmRleCktPmRhdGEoKSwgc2l6ZW9mKGZsb2F0KSAqIGZy
YW1lc1RvUHJvY2Vzcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFubmVsUmVzYW1wbGVyLmgKaW5k
ZXggOTYyOTZjMmFjNzlhZDdjMjI3YTY0MzQzMjQ3N2Q0NWM4MmIwYmRhOS4uNzJiZGFhZTViYTVk
YjYxNTU4ZmVlYjE3ZGNhYjRiZDhjMmMxYTBhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFubmVsUmVzYW1wbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFubmVsUmVzYW1wbGVyLmgKQEAgLTI5LDI1ICsyOSwy
NiBAQAogI2lmbmRlZiBNdWx0aUNoYW5uZWxSZXNhbXBsZXJfaAogI2RlZmluZSBNdWx0aUNoYW5u
ZWxSZXNhbXBsZXJfaAogCi0jaW5jbHVkZSAiU2luY1Jlc2FtcGxlci5oIgogI2luY2x1ZGUgPG1l
bW9yeT4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQXVkaW9CdXM7CitjbGFzcyBTaW5jUmVzYW1wbGVyOwogCiBjbGFzcyBNdWx0aUNoYW5u
ZWxSZXNhbXBsZXIgZmluYWwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OiAgIAotICAgIC8vIHJlcXVlc3RGcmFtZXMgY29uc3Ryb2xzIHRoZSBzaXplIG9mIHRoZSBidWZm
ZXIgaW4gZnJhbWVzIHdoZW4gQXVkaW9Tb3VyY2VQcm92aWRlcjo6cHJvdmlkZUlucHV0KCkgaXMg
Y2FsbGVkLgotICAgIGV4cGxpY2l0IE11bHRpQ2hhbm5lbFJlc2FtcGxlcihkb3VibGUgc2NhbGVG
YWN0b3IsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHVuc2lnbmVkIHJlcXVlc3RGcmFtZXMg
PSBTaW5jUmVzYW1wbGVyOjpkZWZhdWx0UmVxdWVzdEZyYW1lcyk7CisgICAgLy8gcmVxdWVzdEZy
YW1lcyBjb25zdHJvbHMgdGhlIHNpemUgb2YgdGhlIGJ1ZmZlciBpbiBmcmFtZXMgd2hlbiBwcm92
aWRlSW5wdXQgaXMgY2FsbGVkLgorICAgIE11bHRpQ2hhbm5lbFJlc2FtcGxlcihkb3VibGUgc2Nh
bGVGYWN0b3IsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHVuc2lnbmVkIHJlcXVlc3RGcmFt
ZXMsIEZ1bmN0aW9uPHZvaWQoQXVkaW9CdXMqLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKT4mJiBw
cm92aWRlSW5wdXQpOwogICAgIH5NdWx0aUNoYW5uZWxSZXNhbXBsZXIoKTsKIAotICAgIC8vIFBy
b2Nlc3MgZ2l2ZW4gQXVkaW9Tb3VyY2VQcm92aWRlciBmb3Igc3RyZWFtaW5nIGFwcGxpY2F0aW9u
cy4KLSAgICB2b2lkIHByb2Nlc3MoQXVkaW9Tb3VyY2VQcm92aWRlciosIEF1ZGlvQnVzKiBkZXN0
aW5hdGlvbiwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgdm9pZCBwcm9jZXNzKEF1ZGlv
QnVzKiBkZXN0aW5hdGlvbiwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7CiAKIHByaXZhdGU6Cisg
ICAgdm9pZCBwcm92aWRlSW5wdXRGb3JDaGFubmVsKGZsb2F0KiBidWZmZXIsIHNpemVfdCBmcmFt
ZXNUb1Byb2Nlc3MsIHVuc2lnbmVkIGNoYW5uZWxJbmRleCk7CisKICAgICAvLyBGSVhNRTogdGhl
IG1hYyBwb3J0IGNhbiBoYXZlIGEgbW9yZSBoaWdobHkgb3B0aW1pemVkIGltcGxlbWVudGF0aW9u
IGJhc2VkIG9uIENvcmVBdWRpbwogICAgIC8vIGluc3RlYWQgb2YgU2luY1Jlc2FtcGxlci4gRm9y
IG5vdyB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB3aWxsIGJlIHVzZWQgb24gYWxsIHBvcnRz
LgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTExOApA
QCAtNTYsMTAgKzU3LDkgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFNp
bmNSZXNhbXBsZXI+PiBtX2tlcm5lbHM7CiAgICAgCiAgICAgdW5zaWduZWQgbV9udW1iZXJPZkNo
YW5uZWxzOwotCi0gICAgY2xhc3MgQ2hhbm5lbFByb3ZpZGVyOwotICAgIHN0ZDo6dW5pcXVlX3B0
cjxDaGFubmVsUHJvdmlkZXI+IG1fY2hhbm5lbFByb3ZpZGVyOwogICAgIHNpemVfdCBtX291dHB1
dEZyYW1lc1JlYWR5IHsgMCB9OworICAgIEZ1bmN0aW9uPHZvaWQoQXVkaW9CdXMqLCBzaXplX3Qg
ZnJhbWVzVG9Qcm9jZXNzKT4gbV9wcm92aWRlSW5wdXQ7CisgICAgUmVmUHRyPEF1ZGlvQnVzPiBt
X211bHRpQ2hhbm5lbEJ1czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vU2luY1Jlc2FtcGxlci5jcHAKaW5kZXggMzM3ZmE2
NDQ5OGM0ZWJhZjJjZmJiZjllZTZlYmUyOTZjMTg2YjQxMi4uN2MxYTA1MTJkNmNlNzcwYTBkYzcw
ZjAxYTE3YzMyZjhmNmRjNzkxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vU2luY1Jlc2FtcGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vU2luY1Jlc2FtcGxlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJTaW5jUmVz
YW1wbGVyLmgiCiAKICNpbmNsdWRlICJBdWRpb0J1cy5oIgorI2luY2x1ZGUgIkF1ZGlvVXRpbGl0
aWVzLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogI2lmIFVTRShBQ0NFTEVSQVRF
KQpAQCAtMTI0LDE0ICsxMjUsMTYgQEAgc3RhdGljIHNpemVfdCBjYWxjdWxhdGVDaHVua1NpemUo
dW5zaWduZWQgYmxvY2tTaXplLCBkb3VibGUgc2NhbGVGYWN0b3IpCiAgICAgcmV0dXJuIGJsb2Nr
U2l6ZSAvIHNjYWxlRmFjdG9yOwogfQogCi1TaW5jUmVzYW1wbGVyOjpTaW5jUmVzYW1wbGVyKGRv
dWJsZSBzY2FsZUZhY3RvciwgdW5zaWduZWQgcmVxdWVzdEZyYW1lcykKK1NpbmNSZXNhbXBsZXI6
OlNpbmNSZXNhbXBsZXIoZG91YmxlIHNjYWxlRmFjdG9yLCB1bnNpZ25lZCByZXF1ZXN0RnJhbWVz
LCBGdW5jdGlvbjx2b2lkKGZsb2F0KiBidWZmZXIsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpPiYm
IHByb3ZpZGVJbnB1dCkKICAgICA6IG1fc2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IpCiAgICAgLCBt
X2tlcm5lbFN0b3JhZ2Uoa2VybmVsU3RvcmFnZVNpemUpCiAgICAgLCBtX3JlcXVlc3RGcmFtZXMo
cmVxdWVzdEZyYW1lcykKKyAgICAsIG1fcHJvdmlkZUlucHV0KFdURk1vdmUocHJvdmlkZUlucHV0
KSkKICAgICAsIG1faW5wdXRCdWZmZXIobV9yZXF1ZXN0RnJhbWVzICsga2VybmVsU2l6ZSkgLy8g
U2VlIGlucHV0IGJ1ZmZlciBsYXlvdXQgYWJvdmUuCiAgICAgLCBtX3IxKG1faW5wdXRCdWZmZXIu
ZGF0YSgpKQogICAgICwgbV9yMihtX2lucHV0QnVmZmVyLmRhdGEoKSArIGtlcm5lbFNpemUgLyAy
KQogeworICAgIEFTU0VSVChtX3Byb3ZpZGVJbnB1dCk7CiAgICAgQVNTRVJUKG1fcmVxdWVzdEZy
YW1lcyA+IDApOwogICAgIHVwZGF0ZVJlZ2lvbnMoZmFsc2UpOwogICAgIEFTU0VSVChtX2Jsb2Nr
U2l6ZSA+IGtlcm5lbFNpemUpOwpAQCAtMTk3LDc1ICsyMDAsNDEgQEAgdm9pZCBTaW5jUmVzYW1w
bGVyOjppbml0aWFsaXplS2VybmVsKCkKICAgICB9CiB9CiAKLW5hbWVzcGFjZSB7Ci0KLS8vIEJ1
ZmZlclNvdXJjZVByb3ZpZGVyIGlzIGFuIGF1ZGlvIHNvdXJjZSBwcm92aWRlciB3cmFwcGluZyBh
biBpbi1tZW1vcnkgYnVmZmVyLgotCi1jbGFzcyBCdWZmZXJTb3VyY2VQcm92aWRlciB7Ci1wdWJs
aWM6Ci0gICAgZXhwbGljaXQgQnVmZmVyU291cmNlUHJvdmlkZXIoY29uc3QgZmxvYXQqIHNvdXJj
ZSwgc2l6ZV90IG51bWJlck9mU291cmNlRnJhbWVzKQotICAgICAgICA6IG1fc291cmNlKHNvdXJj
ZSkKLSAgICAgICAgLCBtX3NvdXJjZUZyYW1lc0F2YWlsYWJsZShudW1iZXJPZlNvdXJjZUZyYW1l
cykKLSAgICB7Ci0gICAgfQotICAgIAotICAgIC8vIENvbnN1bWVzIHNhbXBsZXMgZnJvbSB0aGUg
aW4tbWVtb3J5IGJ1ZmZlci4KLSAgICB2b2lkIHByb3ZpZGVJbnB1dChmbG9hdCogYnVmZmVyLCBz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fc291cmNlICYm
IGJ1ZmZlcik7Ci0gICAgICAgIGlmICghbV9zb3VyY2UgfHwgIWJ1ZmZlcikKLSAgICAgICAgICAg
IHJldHVybjsKLQordm9pZCBTaW5jUmVzYW1wbGVyOjpwcm9jZXNzQnVmZmVyKGNvbnN0IGZsb2F0
KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgbnVtYmVyT2ZTb3VyY2VGcmFt
ZXMsIGRvdWJsZSBzY2FsZUZhY3RvcikKK3sKKyAgICBTaW5jUmVzYW1wbGVyIHJlc2FtcGxlcihz
Y2FsZUZhY3RvciwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplLCBbc291cmNlLCBu
dW1iZXJPZlNvdXJjZUZyYW1lc10oZmxvYXQqIGJ1ZmZlciwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vz
cykgbXV0YWJsZSB7CiAgICAgICAgIC8vIENsYW1wIHRvIG51bWJlciBvZiBmcmFtZXMgYXZhaWxh
YmxlIGFuZCB6ZXJvLXBhZC4KLSAgICAgICAgc2l6ZV90IGZyYW1lc1RvQ29weSA9IHN0ZDo6bWlu
KG1fc291cmNlRnJhbWVzQXZhaWxhYmxlLCBmcmFtZXNUb1Byb2Nlc3MpOwotICAgICAgICBtZW1j
cHkoYnVmZmVyLCBtX3NvdXJjZSwgc2l6ZW9mKGZsb2F0KSAqIGZyYW1lc1RvQ29weSk7CisgICAg
ICAgIHNpemVfdCBmcmFtZXNUb0NvcHkgPSBzdGQ6Om1pbjxzaXplX3Q+KG51bWJlck9mU291cmNl
RnJhbWVzLCBmcmFtZXNUb1Byb2Nlc3MpOworICAgICAgICBtZW1jcHkoYnVmZmVyLCBzb3VyY2Us
IHNpemVvZihmbG9hdCkgKiBmcmFtZXNUb0NvcHkpOwogCiAgICAgICAgIC8vIFplcm8tcGFkIGlm
IG5lY2Vzc2FyeS4KICAgICAgICAgaWYgKGZyYW1lc1RvQ29weSA8IGZyYW1lc1RvUHJvY2VzcykK
ICAgICAgICAgICAgIG1lbXNldChidWZmZXIgKyBmcmFtZXNUb0NvcHksIDAsIHNpemVvZihmbG9h
dCkgKiAoZnJhbWVzVG9Qcm9jZXNzIC0gZnJhbWVzVG9Db3B5KSk7CiAKLSAgICAgICAgbV9zb3Vy
Y2VGcmFtZXNBdmFpbGFibGUgLT0gZnJhbWVzVG9Db3B5OwotICAgICAgICBtX3NvdXJjZSArPSBm
cmFtZXNUb0NvcHk7Ci0gICAgfQotICAgIAotcHJpdmF0ZToKLSAgICBjb25zdCBmbG9hdCogbV9z
b3VyY2U7Ci0gICAgc2l6ZV90IG1fc291cmNlRnJhbWVzQXZhaWxhYmxlOwotfTsKLQotfSAvLyBu
YW1lc3BhY2UKLQotdm9pZCBTaW5jUmVzYW1wbGVyOjpwcm9jZXNzKGNvbnN0IGZsb2F0KiBzb3Vy
Y2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgbnVtYmVyT2ZTb3VyY2VGcmFtZXMpCi17
Ci0gICAgLy8gUmVzYW1wbGUgYW4gaW4tbWVtb3J5IGJ1ZmZlciB1c2luZyBhbiBBdWRpb1NvdXJj
ZVByb3ZpZGVyLgotICAgIEJ1ZmZlclNvdXJjZVByb3ZpZGVyIHNvdXJjZVByb3ZpZGVyKHNvdXJj
ZSwgbnVtYmVyT2ZTb3VyY2VGcmFtZXMpOworICAgICAgICBudW1iZXJPZlNvdXJjZUZyYW1lcyAt
PSBmcmFtZXNUb0NvcHk7CisgICAgICAgIHNvdXJjZSArPSBmcmFtZXNUb0NvcHk7CisgICAgfSk7
CiAKLSAgICB1bnNpZ25lZCBudW1iZXJPZkRlc3RpbmF0aW9uRnJhbWVzID0gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KG51bWJlck9mU291cmNlRnJhbWVzIC8gbV9zY2FsZUZhY3Rvcik7CisgICAgdW5z
aWduZWQgbnVtYmVyT2ZEZXN0aW5hdGlvbkZyYW1lcyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihu
dW1iZXJPZlNvdXJjZUZyYW1lcyAvIHNjYWxlRmFjdG9yKTsKICAgICB1bnNpZ25lZCByZW1haW5p
bmcgPSBudW1iZXJPZkRlc3RpbmF0aW9uRnJhbWVzOwotICAgIAorCiAgICAgd2hpbGUgKHJlbWFp
bmluZykgewotICAgICAgICB1bnNpZ25lZCBmcmFtZXNUaGlzVGltZSA9IHN0ZDo6bWluKHJlbWFp
bmluZywgbV9yZXF1ZXN0RnJhbWVzKTsKLSAgICAgICAgcHJvY2VzcyhkZXN0aW5hdGlvbiwgZnJh
bWVzVGhpc1RpbWUsIFsmc291cmNlUHJvdmlkZXJdKGZsb2F0KiBidWZmZXIsIHNpemVfdCBmcmFt
ZXNUb1Byb2Nlc3MpIHsKLSAgICAgICAgICAgIHNvdXJjZVByb3ZpZGVyLnByb3ZpZGVJbnB1dChi
dWZmZXIsIGZyYW1lc1RvUHJvY2Vzcyk7Ci0gICAgICAgIH0pOworICAgICAgICB1bnNpZ25lZCBm
cmFtZXNUaGlzVGltZSA9IHN0ZDo6bWluPHVuc2lnbmVkPihyZW1haW5pbmcsIEF1ZGlvVXRpbGl0
aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CisgICAgICAgIHJlc2FtcGxlci5wcm9jZXNzKGRlc3Rp
bmF0aW9uLCBmcmFtZXNUaGlzVGltZSk7CiAgICAgICAgIAogICAgICAgICBkZXN0aW5hdGlvbiAr
PSBmcmFtZXNUaGlzVGltZTsKICAgICAgICAgcmVtYWluaW5nIC09IGZyYW1lc1RoaXNUaW1lOwog
ICAgIH0KIH0KIAotdm9pZCBTaW5jUmVzYW1wbGVyOjpwcm9jZXNzKGZsb2F0KiBkZXN0aW5hdGlv
biwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcywgY29uc3QgRnVuY3Rpb248dm9pZChmbG9hdCogYnVm
ZmVyLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKT4mIHByb3ZpZGVJbnB1dCkKK3ZvaWQgU2luY1Jl
c2FtcGxlcjo6cHJvY2VzcyhmbG9hdCogZGVzdGluYXRpb24sIHNpemVfdCBmcmFtZXNUb1Byb2Nl
c3MpCiB7Ci0gICAgQVNTRVJUKHByb3ZpZGVJbnB1dCk7Ci0gICAgaWYgKCFwcm92aWRlSW5wdXQp
Ci0gICAgICAgIHJldHVybjsKLQogICAgIHVuc2lnbmVkIG51bWJlck9mRGVzdGluYXRpb25GcmFt
ZXMgPSBmcmFtZXNUb1Byb2Nlc3M7CiAKICAgICAvLyBTdGVwICgxKQogICAgIC8vIFByaW1lIHRo
ZSBpbnB1dCBidWZmZXIgYXQgdGhlIHN0YXJ0IG9mIHRoZSBpbnB1dCBzdHJlYW0uCiAgICAgaWYg
KCFtX2lzQnVmZmVyUHJpbWVkKSB7Ci0gICAgICAgIHByb3ZpZGVJbnB1dChtX3IwLCBtX3JlcXVl
c3RGcmFtZXMpOworICAgICAgICBtX3Byb3ZpZGVJbnB1dChtX3IwLCBtX3JlcXVlc3RGcmFtZXMp
OwogICAgICAgICBtX2lzQnVmZmVyUHJpbWVkID0gdHJ1ZTsKICAgICB9CiAgICAgCkBAIC0zMTcs
NyArMjg2LDcgQEAgdm9pZCBTaW5jUmVzYW1wbGVyOjpwcm9jZXNzKGZsb2F0KiBkZXN0aW5hdGlv
biwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcywgY29uc3QgRnUKIAogICAgICAgICAvLyBTdGVwICg1
KQogICAgICAgICAvLyBSZWZyZXNoIHRoZSBidWZmZXIgd2l0aCBtb3JlIGlucHV0LgotICAgICAg
ICBwcm92aWRlSW5wdXQobV9yMCwgbV9yZXF1ZXN0RnJhbWVzKTsKKyAgICAgICAgbV9wcm92aWRl
SW5wdXQobV9yMCwgbV9yZXF1ZXN0RnJhbWVzKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBsZXIuaAppbmRleCA0ODFmMDhhNzg3YTg3NzI3
OGUzMmJlOWFiOGExY2JmNTE0NWM3MDgwLi45YzUwMGExMzk1NGFjNTA5NmVmOWM2NGQ5MTkxMTZj
OWViNzUxNjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9TaW5j
UmVzYW1wbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vU2luY1Jlc2Ft
cGxlci5oCkBAIC00MSwxOSArNDEsMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU2lu
Y1Jlc2FtcGxlciBmaW5hbCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBkZWZhdWx0UmVxdWVzdEZyYW1lcyB7IDUx
MiB9OwotCiAgICAgLy8gc2NhbGVGYWN0b3IgPT0gc291cmNlU2FtcGxlUmF0ZSAvIGRlc3RpbmF0
aW9uU2FtcGxlUmF0ZQogICAgIC8vIHJlcXVlc3RGcmFtZXMgY29udHJvbHMgdGhlIHNpemUgaW4g
ZnJhbWVzIG9mIHRoZSBidWZmZXIgcmVxdWVzdGVkIGJ5IGVhY2ggcHJvdmlkZUlucHV0KCkgY2Fs
bC4KLSAgICBTaW5jUmVzYW1wbGVyKGRvdWJsZSBzY2FsZUZhY3RvciwgdW5zaWduZWQgcmVxdWVz
dEZyYW1lcyA9IGRlZmF1bHRSZXF1ZXN0RnJhbWVzKTsKKyAgICBTaW5jUmVzYW1wbGVyKGRvdWJs
ZSBzY2FsZUZhY3RvciwgdW5zaWduZWQgcmVxdWVzdEZyYW1lcywgRnVuY3Rpb248dm9pZChmbG9h
dCogYnVmZmVyLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKT4mJiBwcm92aWRlSW5wdXQpOwogICAg
IAogICAgIHNpemVfdCBjaHVua1NpemUoKSBjb25zdCB7IHJldHVybiBtX2NodW5rU2l6ZTsgfQog
CiAgICAgLy8gUHJvY2Vzc2VzIG51bWJlck9mU291cmNlRnJhbWVzIGZyb20gc291cmNlIHRvIHBy
b2R1Y2UgbnVtYmVyT2ZTb3VyY2VGcmFtZXMgLyBzY2FsZUZhY3RvciBmcmFtZXMgaW4gZGVzdGlu
YXRpb24uCi0gICAgdm9pZCBwcm9jZXNzKGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgbnVtYmVyT2ZTb3VyY2VGcmFtZXMpOworICAgIHN0YXRpYyB2b2lk
IHByb2Nlc3NCdWZmZXIoY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBudW1iZXJPZlNvdXJjZUZyYW1lcywgZG91YmxlIHNjYWxlRmFjdG9yKTsKIAogICAg
IC8vIFByb2Nlc3Mgd2l0aCBwcm92aWRlSW5wdXQgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHN0cmVh
bWluZyBhcHBsaWNhdGlvbnMuCi0gICAgdm9pZCBwcm9jZXNzKGZsb2F0KiBkZXN0aW5hdGlvbiwg
c2l6ZV90IGZyYW1lc1RvUHJvY2VzcywgY29uc3QgRnVuY3Rpb248dm9pZChmbG9hdCogYnVmZmVy
LCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKT4mIHByb3ZpZGVJbnB1dCk7CisgICAgdm9pZCBwcm9j
ZXNzKGZsb2F0KiBkZXN0aW5hdGlvbiwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7CiAKIHByb3Rl
Y3RlZDoKICAgICB2b2lkIGluaXRpYWxpemVLZXJuZWwoKTsKQEAgLTc0LDYgKzcyLDggQEAgcHJv
dGVjdGVkOgogICAgIC8vIFRoaXMgaXMgdGhlIG51bWJlciBvZiBkZXN0aW5hdGlvbiBmcmFtZXMg
d2UgZ2VuZXJhdGUgcGVyIHByb2Nlc3NpbmcgcGFzcyBvbiB0aGUgYnVmZmVyLgogICAgIHVuc2ln
bmVkIG1fcmVxdWVzdEZyYW1lczsKIAorICAgIEZ1bmN0aW9uPHZvaWQoZmxvYXQqIGJ1ZmZlciwg
c2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk+IG1fcHJvdmlkZUlucHV0OworCiAgICAgLy8gVGhlIG51
bWJlciBvZiBzb3VyY2UgZnJhbWVzIHByb2Nlc3NlZCBwZXIgcGFzcy4KICAgICB1bnNpZ25lZCBt
X2Jsb2NrU2l6ZSB7IDAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKaW5kZXggZDczOTBj
ZmFkYmQ3OGU4MDUyNzQ1MDA1ZTkzMDFhMTg5MDdiNDA0Yy4uNDZiZDM0MTUwYzZmNzVkMWQyMDA5
OWZlZGRjZTFiZWRkZTk2NDdkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCkBAIC04Myw3
ICs4MywxMCBAQCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OkF1ZGlvRGVzdGluYXRpb25Db2NvYShB
dWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCB1bnNpZ25lZAogICAgIGF1dG8gaGFyZHdhcmVTYW1w
bGVSYXRlID0gdGhpcy0+aGFyZHdhcmVTYW1wbGVSYXRlKCk7CiAgICAgaWYgKHNhbXBsZVJhdGUg
IT0gaGFyZHdhcmVTYW1wbGVSYXRlKSB7CiAgICAgICAgIGRvdWJsZSBzY2FsZUZhY3RvciA9IHN0
YXRpY19jYXN0PGRvdWJsZT4oc2FtcGxlUmF0ZSkgLyBoYXJkd2FyZVNhbXBsZVJhdGU7Ci0gICAg
ICAgIG1fcmVzYW1wbGVyID0gbWFrZVVuaXF1ZTxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+KHNjYWxl
RmFjdG9yLCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVh
bnR1bVNpemUpOworICAgICAgICBtX3Jlc2FtcGxlciA9IG1ha2VVbmlxdWU8TXVsdGlDaGFubmVs
UmVzYW1wbGVyPihzY2FsZUZhY3RvciwgbnVtYmVyT2ZPdXRwdXRDaGFubmVscywgQXVkaW9VdGls
aXRpZXM6OnJlbmRlclF1YW50dW1TaXplLCBbdGhpc10oQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZy
YW1lc1RvUHJvY2VzcykgeworICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChmcmFtZXNUb1Byb2Nl
c3MsIGZyYW1lc1RvUHJvY2VzcyA9PSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUp
OworICAgICAgICAgICAgbV9jYWxsYmFjay5yZW5kZXIoMCwgYnVzLCBBdWRpb1V0aWxpdGllczo6
cmVuZGVyUXVhbnR1bVNpemUsIG1fb3V0cHV0VGltZXN0YW1wKTsKKyAgICAgICAgfSk7CiAgICAg
fQogfQogCkBAIC0yMTQsNyArMjE3LDcgQEAgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJl
bmRlck9uUmVuZGVyaW5nVGhlYWQoc2l6ZV90IGZyYW1lc1RvUmVuZGVyKQogewogICAgIGZvciAo
c2l6ZV90IHB1c2hlZEZyYW1lcyA9IDA7IHB1c2hlZEZyYW1lcyA8IGZyYW1lc1RvUmVuZGVyOyBw
dXNoZWRGcmFtZXMgKz0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKSB7CiAgICAg
ICAgIGlmIChtX3Jlc2FtcGxlcikKLSAgICAgICAgICAgIG1fcmVzYW1wbGVyLT5wcm9jZXNzKHRo
aXMsIG1fcmVuZGVyQnVzLnB0cigpLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUp
OworICAgICAgICAgICAgbV9yZXNhbXBsZXItPnByb2Nlc3MobV9yZW5kZXJCdXMucHRyKCksIEF1
ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSk7CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIG1fcmVuZGVyQnVzLnB0cigpLCBBdWRpb1V0aWxpdGll
czo6cmVuZGVyUXVhbnR1bVNpemUsIG1fb3V0cHV0VGltZXN0YW1wKTsKIApAQCAtMjIzLDEyICsy
MjYsNiBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6cmVuZGVyT25SZW5kZXJpbmdUaGVh
ZChzaXplX3QgZnJhbWVzVG9SZW5kZXIpCiAgICAgfQogfQogCi12b2lkIEF1ZGlvRGVzdGluYXRp
b25Db2NvYTo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nl
c3MpCi17Ci0gICAgQVNTRVJUX1VOVVNFRChmcmFtZXNUb1Byb2Nlc3MsIGZyYW1lc1RvUHJvY2Vz
cyA9PSBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwotICAgIG1fY2FsbGJhY2su
cmVuZGVyKDAsIGJ1cywgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplLCBtX291dHB1
dFRpbWVzdGFtcCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCmluZGV4IDRjM2YyZTc1ZjU4YjQz
OWRlNDRlODRhZTU0MzZjODVmMTg5MWM3MzguLjg2N2I2OGIwMjQ4Y2U1Y2VhZmQyYTUxN2M3OGNm
ZWIxNzk5MjJkMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5oCkBAIC0zMCw3ICszMCw2IEBACiAj
aW5jbHVkZSAiQXVkaW9EZXN0aW5hdGlvbi5oIgogI2luY2x1ZGUgIkF1ZGlvSU9DYWxsYmFjay5o
IgogI2luY2x1ZGUgIkF1ZGlvT3V0cHV0VW5pdEFkYXB0b3IuaCIKLSNpbmNsdWRlICJBdWRpb1Nv
dXJjZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSA8QXVkaW9Vbml0L0F1ZGlvVW5pdC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CkBAIC00NCw3ICs0
Myw3IEBAIGNsYXNzIFB1c2hQdWxsRklGTzsKIHVzaW5nIENyZWF0ZUF1ZGlvRGVzdGluYXRpb25D
b2NvYU92ZXJyaWRlID0gUmVmPEF1ZGlvRGVzdGluYXRpb24+KCopKEF1ZGlvSU9DYWxsYmFjayYs
IGZsb2F0IHNhbXBsZVJhdGUpOwogCiAvLyBBbiBBdWRpb0Rlc3RpbmF0aW9uIHVzaW5nIENvcmVB
dWRpbydzIGRlZmF1bHQgb3V0cHV0IEF1ZGlvVW5pdAotY2xhc3MgQXVkaW9EZXN0aW5hdGlvbkNv
Y29hIDogcHVibGljIEF1ZGlvRGVzdGluYXRpb24sIHB1YmxpYyBBdWRpb1VuaXRSZW5kZXJlciwg
cHVibGljIEF1ZGlvU291cmNlUHJvdmlkZXIgeworY2xhc3MgQXVkaW9EZXN0aW5hdGlvbkNvY29h
IDogcHVibGljIEF1ZGlvRGVzdGluYXRpb24sIHB1YmxpYyBBdWRpb1VuaXRSZW5kZXJlciB7CiBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgQXVkaW9EZXN0aW5hdGlvbkNvY29hKEF1ZGlvSU9D
YWxsYmFjayYsIHVuc2lnbmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJh
dGUsIGJvb2wgY29uZmlndXJlQXVkaW9PdXRwdXRVbml0ID0gdHJ1ZSk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdmlydHVhbCB+QXVkaW9EZXN0aW5hdGlvbkNvY29hKCk7CkBAIC03Miw5ICs3MSw2IEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIHJlbmRlck9uUmVuZGVyaW5nVGhlYWQoc2l6ZV90IGZyYW1l
c1RvUmVuZGVyKTsKIAotICAgIC8vIEF1ZGlvU291cmNlUHJvdmlkZXIuCi0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBwcm92aWRlSW5wdXQoQXVkaW9CdXMqLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNz
KSBmaW5hbDsKLQogICAgIEF1ZGlvT3V0cHV0VW5pdEFkYXB0b3IgbV9hdWRpb091dHB1dFVuaXRB
ZGFwdG9yOwogICAgIEF1ZGlvSU9DYWxsYmFjayYgbV9jYWxsYmFjazsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415475</attachid>
            <date>2020-12-04 16:45:57 -0800</date>
            <delta_ts>2020-12-04 17:27:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219560-20201204164556.patch</filename>
            <type>text/plain</type>
            <size>30930</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAyMDMwZWIwY2UzZDAy
ODUwZWIxNzlhZmFmMTliZDFlZTg3MjEwYy4uMjA2NzNhN2E1NDQ2MTY1ZmYyZWM2ZjMwM2E1NmMx
M2Y5ZDBlMjhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIwLTEyLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgYXVkaW8gcmVz
YW1wbGluZyBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTk1NjAKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAg
ICBNYWRlIHRoZSBmb2xsb3dpbmcgY2hhbmdlcyB0byBzaW1wbGlmeSAvIGltcHJvdmUgdGhlIHJl
c2FtcGxpbmcgY29kZToKKyAgICAgICAgLSBNdWx0aUNoYW5uZWxSZXNhbXBsZXIgJiBTaW5jUmVz
YW1wbGVyIG5vdyB0YWtlIGEgbGFtYmRhIHVwb24gY29uc3RydWN0aW9uCisgICAgICAgICAgdG8g
ZmV0Y2ggaW5wdXQgZGF0YSwgaW5zdGVhZCBvZiB0YWtpbmcgYSBBdWRpb1NvdXJjZVByb3ZpZGVy
IHBvaW50ZXIKKyAgICAgICAgICB3aGVuZXZlciBwcm9jZXNzKCkgaXMgY2FsbGVkLgorICAgICAg
ICAtIFdlIGNhbiBub3cgZ2V0IHJpZCBvZiB0aGUgd2hvbGUgTXVsdGlDaGFubmVsUmVzYW1wbGVy
OjpDaGFubmVsUHJvdmlkZXIKKyAgICAgICAgICBjbGFzcyBhbmQgaGF2ZSB0aGUgbGFtYmRhIGNh
bGwgTXVsdGlDaGFubmVsUmVzYW1wbGVyOjpwcm92aWRlSW5wdXRGb3JDaGFubmVsKCkKKyAgICAg
ICAgICBpbnN0ZWFkLiBTaW1pbGFybHksIHdlIGNhbiBhbHNvIGdldCByaWQgb2YgU2luY1Jlc2Ft
cGxlcidzIEJ1ZmZlclNvdXJjZVByb3ZpZGVyLgorICAgICAgICAtIEFzIGFuIG9wdGltaXphdGlv
biwgTXVsdGlDaGFubmVsUmVzYW1wbGVyOjpwcm9jZXNzKCkgbm93IGhhcyBhIGZhc3QgcGF0aAor
ICAgICAgICAgIHdoZW4gdGhlIEF1ZGlvQnVzIG9ubHkgaGFzIGEgc2luZ2xlIGNoYW5uZWwsIHRv
IGF2b2lkIHRoZQorICAgICAgICAgIHByb2Nlc3NpbmctaW4tY2h1bmtzIGxvZ2ljLiBUaGUgY2h1
bmtpbmcgbG9naWMgaXMgb25seSBuZWVkZWQgd2hlbiB0aGVyZQorICAgICAgICAgIGFyZSBtdWx0
aXBsZSBjaGFubmVscywgdG8gbWFrZSBzdXJlIHRoYXQgcHJvdmlkZUlucHV0Rm9yQ2hhbm5lbCgp
IG9ubHkgZ2V0cworICAgICAgICAgIGNhbGxlZCBvbmNlIHBlciBjaGFubmVsLCB0byBhdm9pZCBj
b25mdXNpbmcgaXRzIGxvZ2ljLiBUaGlzIGlzIHNpbWlsYXIgdG8KKyAgICAgICAgICB3aGF0IENo
cm9taXVtIGRvZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1
ZGlvU291cmNlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRBdWRpb1Nv
dXJjZU5vZGU6OnNldEZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRBdWRp
b1NvdXJjZU5vZGU6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1l
bnRBdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8v
TWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbUF1ZGlvU291cmNlTm9kZTo6c2V0Rm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6Y3Jl
YXRlQnlTYW1wbGVSYXRlQ29udmVydGluZyk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vTXVs
dGlDaGFubmVsUmVzYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok11bHRpQ2hhbm5lbFJl
c2FtcGxlcjo6TXVsdGlDaGFubmVsUmVzYW1wbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok11bHRp
Q2hhbm5lbFJlc2FtcGxlcjo6cHJvY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpNdWx0aUNoYW5u
ZWxSZXNhbXBsZXI6OnByb3ZpZGVJbnB1dEZvckNoYW5uZWwpOgorICAgICAgICAqIHBsYXRmb3Jt
L2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L1NpbmNSZXNhbXBsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2luY1Jlc2FtcGxlcjo6U2lu
Y1Jlc2FtcGxlcik6CisgICAgICAgIChXZWJDb3JlOjpTaW5jUmVzYW1wbGVyOjpwcm9jZXNzQnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbmNSZXNhbXBsZXI6OnByb2Nlc3MpOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpBdWRpb0Rlc3RpbmF0aW9uQ29jb2EpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpyZW5kZXJPblJlbmRlcmluZ1RoZWFkKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaDoK
KwogMjAyMC0xMi0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFN0b3AgY29uc3RydWN0aW5nIHVubmVjZXNzYXJ5IEF1ZGlvQnVzIGluIFNpbmNSZXNhbXBsZXIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50
QXVkaW9Tb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcAppbmRleCAxMjU1Yzg2Nzg5YzY0Y2RmMTFmMjU0
M2ZlOTE3NjkzMzRlNWYwOWVlLi4zZWJhZjEyZmRhOTUyNDcxOTlhOGMzZDM4NWE3MWI4YjY0ZjY3
YTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxl
bWVudEF1ZGlvU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwCkBAIC0zMSw2ICszMSw4IEBACiAK
ICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIK
KyNpbmNsdWRlICJBdWRpb1NvdXJjZVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiQXVkaW9VdGlsaXRp
ZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFFbGVtZW50QXVkaW9T
b3VyY2VPcHRpb25zLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKQEAgLTEwMCw3ICsxMDIs
NyBAQCB2b2lkIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZTo6c2V0Rm9ybWF0KHNpemVfdCBu
dW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzb3VyYwogCiAgICAgICAgIGlmIChzb3VyY2VTYW1wbGVS
YXRlICE9IHNhbXBsZVJhdGUoKSkgewogICAgICAgICAgICAgZG91YmxlIHNjYWxlRmFjdG9yID0g
c291cmNlU2FtcGxlUmF0ZSAvIHNhbXBsZVJhdGUoKTsKLSAgICAgICAgICAgIG1fbXVsdGlDaGFu
bmVsUmVzYW1wbGVyID0gbWFrZVVuaXF1ZTxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+KHNjYWxlRmFj
dG9yLCBudW1iZXJPZkNoYW5uZWxzKTsKKyAgICAgICAgICAgIG1fbXVsdGlDaGFubmVsUmVzYW1w
bGVyID0gbWFrZVVuaXF1ZTxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+KHNjYWxlRmFjdG9yLCBudW1i
ZXJPZkNoYW5uZWxzLCBBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUsIHN0ZDo6Ymlu
ZCgmTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlOjpwcm92aWRlSW5wdXQsIHRoaXMsIHN0ZDo6
cGxhY2Vob2xkZXJzOjpfMSwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8yKSk7CiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAvLyBCeXBhc3MgcmVzYW1wbGluZy4KICAgICAgICAgICAgIG1fbXVs
dGlDaGFubmVsUmVzYW1wbGVyID0gbnVsbHB0cjsKQEAgLTExNiw2ICsxMTgsMTggQEAgdm9pZCBN
ZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFu
bmVscywgZmxvYXQgc291cmMKICAgICB9CiB9CiAKK3ZvaWQgTWVkaWFFbGVtZW50QXVkaW9Tb3Vy
Y2VOb2RlOjpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2Vz
cykKK3sKKyAgICBBU1NFUlQoYnVzKTsKKyAgICBpZiAoYXV0byogcHJvdmlkZXIgPSBtZWRpYUVs
ZW1lbnQoKS5hdWRpb1NvdXJjZVByb3ZpZGVyKCkpCisgICAgICAgIHByb3ZpZGVyLT5wcm92aWRl
SW5wdXQoYnVzLCBmcmFtZXNUb1Byb2Nlc3MpOworICAgIGVsc2UgeworICAgICAgICAvLyBFaXRo
ZXIgdGhpcyBwb3J0IGRvZXNuJ3QgeWV0IHN1cHBvcnQgSFRNTE1lZGlhRWxlbWVudCBhdWRpbyBz
dHJlYW0gYWNjZXNzLAorICAgICAgICAvLyBvciB0aGUgc3RyZWFtIGlzIG5vdCB5ZXQgYXZhaWxh
YmxlLgorICAgICAgICBidXMtPnplcm8oKTsKKyAgICB9Cit9CisKIGJvb2wgTWVkaWFFbGVtZW50
QXVkaW9Tb3VyY2VOb2RlOjp3b3VsZFRhaW50T3JpZ2luKCkKIHsKICAgICAvLyBJZiB0aGUgcmVz
b3VyY2UgaXMgcmVkaXJlY3RlZCB0byBhbm90aGVyIG9yaWdpbiwgdHJlYXQgaXQgYXMgdGFpbnRl
ZCBpZiB0aGUgY3Jvc3NvcmlnaW4gYXR0cmlidXRlCkBAIC0xNTUsMTkgKzE2OSwxMyBAQCB2b2lk
IE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZTo6cHJvY2VzcyhzaXplX3QgbnVtYmVyT2ZGcmFt
ZXMpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoQXVkaW9Tb3VyY2VQcm92aWRl
ciogcHJvdmlkZXIgPSBtZWRpYUVsZW1lbnQoKS5hdWRpb1NvdXJjZVByb3ZpZGVyKCkpIHsKLSAg
ICAgICAgaWYgKG1fbXVsdGlDaGFubmVsUmVzYW1wbGVyLmdldCgpKSB7Ci0gICAgICAgICAgICBB
U1NFUlQobV9zb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBsZVJhdGUoKSk7Ci0gICAgICAgICAgICBt
X211bHRpQ2hhbm5lbFJlc2FtcGxlci0+cHJvY2Vzcyhwcm92aWRlciwgb3V0cHV0QnVzLCBudW1i
ZXJPZkZyYW1lcyk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBCeXBhc3MgdGhl
IHJlc2FtcGxlciBjb21wbGV0ZWx5IGlmIHRoZSBzb3VyY2UgaXMgYXQgdGhlIGNvbnRleHQncyBz
YW1wbGUtcmF0ZS4KLSAgICAgICAgICAgIEFTU0VSVChtX3NvdXJjZVNhbXBsZVJhdGUgPT0gc2Ft
cGxlUmF0ZSgpKTsKLSAgICAgICAgICAgIHByb3ZpZGVyLT5wcm92aWRlSW5wdXQob3V0cHV0QnVz
LCBudW1iZXJPZkZyYW1lcyk7Ci0gICAgICAgIH0KKyAgICBpZiAobV9tdWx0aUNoYW5uZWxSZXNh
bXBsZXIpIHsKKyAgICAgICAgQVNTRVJUKG1fc291cmNlU2FtcGxlUmF0ZSAhPSBzYW1wbGVSYXRl
KCkpOworICAgICAgICBtX211bHRpQ2hhbm5lbFJlc2FtcGxlci0+cHJvY2VzcyhvdXRwdXRCdXMs
IG51bWJlck9mRnJhbWVzKTsKICAgICB9IGVsc2UgewotICAgICAgICAvLyBFaXRoZXIgdGhpcyBw
b3J0IGRvZXNuJ3QgeWV0IHN1cHBvcnQgSFRNTE1lZGlhRWxlbWVudCBhdWRpbyBzdHJlYW0gYWNj
ZXNzLAotICAgICAgICAvLyBvciB0aGUgc3RyZWFtIGlzIG5vdCB5ZXQgYXZhaWxhYmxlLgotICAg
ICAgICBvdXRwdXRCdXMtPnplcm8oKTsKKyAgICAgICAgLy8gQnlwYXNzIHRoZSByZXNhbXBsZXIg
Y29tcGxldGVseSBpZiB0aGUgc291cmNlIGlzIGF0IHRoZSBjb250ZXh0J3Mgc2FtcGxlLXJhdGUu
CisgICAgICAgIEFTU0VSVChtX3NvdXJjZVNhbXBsZVJhdGUgPT0gc2FtcGxlUmF0ZSgpKTsKKyAg
ICAgICAgcHJvdmlkZUlucHV0KG91dHB1dEJ1cywgbnVtYmVyT2ZGcmFtZXMpOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1l
bnRBdWRpb1NvdXJjZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmgKaW5kZXggMDdhODg2YjM1OWE3MGFkZmVmNzYwMjFl
NmVhZGVkMmYxODhiZDhjMi4uNzQzOWE2ZGIyODJmYmI5NGY0MTFlNDcxNWFkYTE1OThjYjA0YmMz
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1l
bnRBdWRpb1NvdXJjZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oCkBAIC01OCw2ICs1OCw3IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUoQmFzZUF1ZGlvQ29u
dGV4dCYsIFJlZjxIVE1MTWVkaWFFbGVtZW50PiYmKTsKKyAgICB2b2lkIHByb3ZpZGVJbnB1dChB
dWRpb0J1cyosIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwogCiAgICAgZG91YmxlIHRhaWxUaW1l
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQogICAgIGRvdWJsZSBsYXRlbmN5VGltZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAK
aW5kZXggODBhMGUwNmNjZWU0MWQ3OGRjNGQ0MDQwYTc0YjJlZmUxYmEzZjFkZC4uNGMwYTczNjY1
ZTU5MDFjMzVjM2Q2MmY2NDRhZjU4NTliOGI0Y2RhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9k
ZS5jcHAKQEAgLTMwLDYgKzMwLDggQEAKIAogI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIkF1ZGlvTm9kZU91dHB1dC5oIgorI2luY2x1ZGUgIkF1ZGlvU291cmNlUHJvdmlkZXIu
aCIKKyNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJNZWRpYVN0cmVhbUF1ZGlvU291cmNlT3B0aW9ucy5oIgogI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+CkBAIC0xMTQsNyArMTE2LDcgQEAgdm9pZCBNZWRpYVN0cmVhbUF1
ZGlvU291cmNlTm9kZTo6c2V0Rm9ybWF0KHNpemVfdCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBz
b3VyY2UKICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBudWxscHRyOwogICAgIGVs
c2UgewogICAgICAgICBkb3VibGUgc2NhbGVGYWN0b3IgPSBzb3VyY2VTYW1wbGVSYXRlIC8gc2Ft
cGxlUmF0ZTsKLSAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBtYWtlVW5pcXVlPE11
bHRpQ2hhbm5lbFJlc2FtcGxlcj4oc2NhbGVGYWN0b3IsIG51bWJlck9mQ2hhbm5lbHMpOworICAg
ICAgICBtX211bHRpQ2hhbm5lbFJlc2FtcGxlciA9IG1ha2VVbmlxdWU8TXVsdGlDaGFubmVsUmVz
YW1wbGVyPihzY2FsZUZhY3RvciwgbnVtYmVyT2ZDaGFubmVscywgQXVkaW9VdGlsaXRpZXM6OnJl
bmRlclF1YW50dW1TaXplLCBzdGQ6OmJpbmQoJk1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpw
cm92aWRlSW5wdXQsIHRoaXMsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgc3RkOjpwbGFjZWhvbGRl
cnM6Ol8yKSk7CiAgICAgfQogCiAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzID0gbnVtYmVy
T2ZDaGFubmVsczsKQEAgLTEyOCwxMiArMTMwLDE5IEBAIHZvaWQgTWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZU5vZGU6OnNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc291cmNl
CiAgICAgfQogfQogCit2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpwcm92aWRlSW5w
dXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKK3sKKyAgICBpZiAoYXV0
byogcHJvdmlkZXIgPSBtX2F1ZGlvVHJhY2stPmF1ZGlvU291cmNlUHJvdmlkZXIoKSkKKyAgICAg
ICAgcHJvdmlkZXItPnByb3ZpZGVJbnB1dChidXMsIGZyYW1lc1RvUHJvY2Vzcyk7CisgICAgZWxz
ZQorICAgICAgICBidXMtPnplcm8oKTsKK30KKwogdm9pZCBNZWRpYVN0cmVhbUF1ZGlvU291cmNl
Tm9kZTo6cHJvY2VzcyhzaXplX3QgbnVtYmVyT2ZGcmFtZXMpCiB7CiAgICAgQXVkaW9CdXMqIG91
dHB1dEJ1cyA9IG91dHB1dCgwKS0+YnVzKCk7Ci0gICAgQXVkaW9Tb3VyY2VQcm92aWRlciogcHJv
dmlkZXIgPSBtX2F1ZGlvVHJhY2stPmF1ZGlvU291cmNlUHJvdmlkZXIoKTsKIAotICAgIGlmICgh
bWVkaWFTdHJlYW0oKSB8fCAhbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzIHx8ICFtX3NvdXJjZVNh
bXBsZVJhdGUgfHwgIXByb3ZpZGVyKSB7CisgICAgaWYgKCFtZWRpYVN0cmVhbSgpIHx8ICFtX3Nv
dXJjZU51bWJlck9mQ2hhbm5lbHMgfHwgIW1fc291cmNlU2FtcGxlUmF0ZSkgewogICAgICAgICBv
dXRwdXRCdXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE1NSwxMyArMTY0
LDEzIEBAIHZvaWQgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Moc2l6ZV90IG51
bWJlck9mRnJhbWVzKQogICAgIGlmIChudW1iZXJPZkZyYW1lcyA+IG91dHB1dEJ1cy0+bGVuZ3Ro
KCkpCiAgICAgICAgIG51bWJlck9mRnJhbWVzID0gb3V0cHV0QnVzLT5sZW5ndGgoKTsKIAotICAg
IGlmIChtX211bHRpQ2hhbm5lbFJlc2FtcGxlci5nZXQoKSkgeworICAgIGlmIChtX211bHRpQ2hh
bm5lbFJlc2FtcGxlcikgewogICAgICAgICBBU1NFUlQobV9zb3VyY2VTYW1wbGVSYXRlICE9IHNh
bXBsZVJhdGUoKSk7Ci0gICAgICAgIG1fbXVsdGlDaGFubmVsUmVzYW1wbGVyLT5wcm9jZXNzKHBy
b3ZpZGVyLCBvdXRwdXRCdXMsIG51bWJlck9mRnJhbWVzKTsKKyAgICAgICAgbV9tdWx0aUNoYW5u
ZWxSZXNhbXBsZXItPnByb2Nlc3Mob3V0cHV0QnVzLCBudW1iZXJPZkZyYW1lcyk7CiAgICAgfSBl
bHNlIHsKICAgICAgICAgLy8gQnlwYXNzIHRoZSByZXNhbXBsZXIgY29tcGxldGVseSBpZiB0aGUg
c291cmNlIGlzIGF0IHRoZSBjb250ZXh0J3Mgc2FtcGxlLXJhdGUuCiAgICAgICAgIEFTU0VSVCht
X3NvdXJjZVNhbXBsZVJhdGUgPT0gc2FtcGxlUmF0ZSgpKTsKLSAgICAgICAgcHJvdmlkZXItPnBy
b3ZpZGVJbnB1dChvdXRwdXRCdXMsIG51bWJlck9mRnJhbWVzKTsKKyAgICAgICAgcHJvdmlkZUlu
cHV0KG91dHB1dEJ1cywgbnVtYmVyT2ZGcmFtZXMpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9k
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlTm9kZS5oCmluZGV4IDdkNjQ1MDE5ZTEzYWY4OGY2OGFiYTUyNGU3NzRjZDViNmU5OTBhMjku
LjMyMTI0NGZiMzVlZTU3MGZmMWRhNjZkZDM1MzgxNjgwMTY4ZWQ0NjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9T
b3VyY2VOb2RlLmgKQEAgLTU2LDYgKzU2LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNZWRp
YVN0cmVhbUF1ZGlvU291cmNlTm9kZShCYXNlQXVkaW9Db250ZXh0JiwgTWVkaWFTdHJlYW0mLCBN
ZWRpYVN0cmVhbVRyYWNrJik7CiAKKyAgICB2b2lkIHByb3ZpZGVJbnB1dChBdWRpb0J1cyosIHNp
emVfdCBmcmFtZXNUb1Byb2Nlc3MpOworCiAgICAgZG91YmxlIHRhaWxUaW1lKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gMDsgfQogICAgIGRvdWJsZSBsYXRlbmN5VGltZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIDA7IH0KICAgICBib29sIHJlcXVpcmVzVGFpbFByb2Nlc3NpbmcoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9CdXMuY3BwCmluZGV4IDcyZjQ1MGVmNTgzMTg1YTFjNmZiMWZiOGQ2OWYzNzQ0NWE4M2Zl
MzMuLmU2MzY4NzIzMWExZTBhMmU2OGFiZThmZWYyNWZhZWFlMWQ5MjM3ZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0J1cy5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNp
bmNsdWRlICJBdWRpb0J1cy5oIgogCiAjaW5jbHVkZSAiRGVub3JtYWxEaXNhYmxlci5oIgotCiAj
aW5jbHVkZSAiU2luY1Jlc2FtcGxlci5oIgogI2luY2x1ZGUgIlZlY3Rvck1hdGguaCIKICNpbmNs
dWRlIDxhbGdvcml0aG0+CkBAIC01NTcsOCArNTU2LDcgQEAgUmVmUHRyPEF1ZGlvQnVzPiBBdWRp
b0J1czo6Y3JlYXRlQnlTYW1wbGVSYXRlQ29udmVydGluZyhjb25zdCBBdWRpb0J1cyogc291cmNl
QnUKICAgICAgICAgY29uc3QgZmxvYXQqIHNvdXJjZSA9IHJlc2FtcGxlclNvdXJjZUJ1cy0+Y2hh
bm5lbChpKS0+ZGF0YSgpOwogICAgICAgICBmbG9hdCogZGVzdGluYXRpb24gPSBkZXN0aW5hdGlv
bkJ1cy0+Y2hhbm5lbChpKS0+bXV0YWJsZURhdGEoKTsKIAotICAgICAgICBTaW5jUmVzYW1wbGVy
IHJlc2FtcGxlcihzYW1wbGVSYXRlUmF0aW8pOwotICAgICAgICByZXNhbXBsZXIucHJvY2Vzcyhz
b3VyY2UsIGRlc3RpbmF0aW9uLCBzb3VyY2VMZW5ndGgpOworICAgICAgICBTaW5jUmVzYW1wbGVy
Ojpwcm9jZXNzQnVmZmVyKHNvdXJjZSwgZGVzdGluYXRpb24sIHNvdXJjZUxlbmd0aCwgc2FtcGxl
UmF0ZVJhdGlvKTsKICAgICB9CiAKICAgICBkZXN0aW5hdGlvbkJ1cy0+Y2xlYXJTaWxlbnRGbGFn
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NdWx0aUNoYW5u
ZWxSZXNhbXBsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTXVsdGlDaGFu
bmVsUmVzYW1wbGVyLmNwcAppbmRleCBkMzRmYjc4OWI2YmM5ZDM3OWZjOTRhYTM5YzJhNWFjMzhi
ZjAxZTU1Li43YTQ5ZDhjOGJmOWVhOGMxZTFiMDhhNTVhOGQ4ZWU2OGU5NmQyY2U3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJlc2Ft
cGxlci5jcHAKQEAgLTMzLDc5ICszMywzNCBAQAogI2luY2x1ZGUgIk11bHRpQ2hhbm5lbFJlc2Ft
cGxlci5oIgogCiAjaW5jbHVkZSAiQXVkaW9CdXMuaCIKKyNpbmNsdWRlICJTaW5jUmVzYW1wbGVy
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gQ2hhbm5lbFByb3ZpZGVyIHByb3ZpZGVz
IGEgc2luZ2xlIGNoYW5uZWwgb2YgYXVkaW8gZGF0YSAob25lIGNoYW5uZWwgYXQgYSB0aW1lKSBm
b3IgZWFjaCBjaGFubmVsCi0vLyBvZiBkYXRhIHByb3ZpZGVkIHRvIHVzIGluIGEgbXVsdGktY2hh
bm5lbCBwcm92aWRlci4KLWNsYXNzIE11bHRpQ2hhbm5lbFJlc2FtcGxlcjo6Q2hhbm5lbFByb3Zp
ZGVyIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBleHBsaWNp
dCBDaGFubmVsUHJvdmlkZXIodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgdW5zaWduZWQgcmVx
dWVzdEZyYW1lcykKLSAgICAgICAgOiBtX211bHRpQ2hhbm5lbEJ1cyhBdWRpb0J1czo6Y3JlYXRl
KG51bWJlck9mQ2hhbm5lbHMsIHJlcXVlc3RGcmFtZXMpKQotICAgIHsKLSAgICB9Ci0KLSAgICB2
b2lkIHNldFByb3ZpZGVyKEF1ZGlvU291cmNlUHJvdmlkZXIqIG11bHRpQ2hhbm5lbFByb3ZpZGVy
KQotICAgIHsKLSAgICAgICAgbV9tdWx0aUNoYW5uZWxQcm92aWRlciA9IG11bHRpQ2hhbm5lbFBy
b3ZpZGVyOwotICAgIH0KLQotICAgIC8vIHByb3ZpZGVJbnB1dCgpIHdpbGwgYmUgY2FsbGVkIG9u
Y2UgZm9yIGVhY2ggY2hhbm5lbCwgc3RhcnRpbmcgd2l0aCB0aGUgZmlyc3QgY2hhbm5lbC4KLSAg
ICAvLyBFYWNoIHRpbWUgaXQncyBjYWxsZWQsIGl0IHdpbGwgcHJvdmlkZSB0aGUgbmV4dCBjaGFu
bmVsIG9mIGRhdGEuCi0gICAgdm9pZCBwcm92aWRlSW5wdXRGb3JDaGFubmVsKGZsb2F0KiBidWZm
ZXIsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MsIHVuc2lnbmVkIGNoYW5uZWxJbmRleCkKLSAgICB7
Ci0gICAgICAgIEFTU0VSVChjaGFubmVsSW5kZXggPCBtX211bHRpQ2hhbm5lbEJ1cy0+bnVtYmVy
T2ZDaGFubmVscygpKTsKLSAgICAgICAgQVNTRVJUKGZyYW1lc1RvUHJvY2VzcyA8PSBtX211bHRp
Q2hhbm5lbEJ1cy0+bGVuZ3RoKCkpOwotICAgICAgICBpZiAoZnJhbWVzVG9Qcm9jZXNzID4gbV9t
dWx0aUNoYW5uZWxCdXMtPmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IC8vIEdldCB0aGUgZGF0YSBmcm9tIHRoZSBtdWx0aS1jaGFubmVsIHByb3ZpZGVyIHdoZW4gdGhl
IGZpcnN0IGNoYW5uZWwgYXNrcyBmb3IgaXQuCi0gICAgICAgIC8vIEZvciBzdWJzZXF1ZW50IGNo
YW5uZWxzLCB3ZSBjYW4ganVzdCBkaXNoIG91dCB0aGUgY2hhbm5lbCBkYXRhIGZyb20gdGhhdCAo
c3RvcmVkIGluIG1fbXVsdGlDaGFubmVsQnVzKS4KLSAgICAgICAgaWYgKCFjaGFubmVsSW5kZXgp
IHsKLSAgICAgICAgICAgIG1fZnJhbWVzVG9Qcm9jZXNzID0gZnJhbWVzVG9Qcm9jZXNzOwotICAg
ICAgICAgICAgbV9tdWx0aUNoYW5uZWxQcm92aWRlci0+cHJvdmlkZUlucHV0KG1fbXVsdGlDaGFu
bmVsQnVzLmdldCgpLCBmcmFtZXNUb1Byb2Nlc3MpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8g
QWxsIGNoYW5uZWxzIG11c3QgYXNrIGZvciB0aGUgc2FtZSBhbW91bnQuIFRoaXMgc2hvdWxkIGFs
d2F5cyBiZSB0aGUgY2FzZSwgYnV0IGxldCdzIGp1c3QgbWFrZSBzdXJlLgotICAgICAgICBib29s
IGlzR29vZCA9IGZyYW1lc1RvUHJvY2VzcyA9PSBtX2ZyYW1lc1RvUHJvY2VzczsKLSAgICAgICAg
QVNTRVJUKGlzR29vZCk7Ci0gICAgICAgIGlmICghaXNHb29kKQotICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgIC8vIENvcHkgdGhlIGNoYW5uZWwgZGF0YSBmcm9tIHdoYXQgd2UgcmVjZWl2
ZWQgZnJvbSBtX211bHRpQ2hhbm5lbFByb3ZpZGVyLgotICAgICAgICBtZW1jcHkoYnVmZmVyLCBt
X211bHRpQ2hhbm5lbEJ1cy0+Y2hhbm5lbChjaGFubmVsSW5kZXgpLT5kYXRhKCksIHNpemVvZihm
bG9hdCkgKiBmcmFtZXNUb1Byb2Nlc3MpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBBdWRpb1Nv
dXJjZVByb3ZpZGVyKiBtX211bHRpQ2hhbm5lbFByb3ZpZGVyIHsgbnVsbHB0ciB9OwotICAgIFJl
ZlB0cjxBdWRpb0J1cz4gbV9tdWx0aUNoYW5uZWxCdXM7Ci0gICAgc2l6ZV90IG1fZnJhbWVzVG9Q
cm9jZXNzIHsgMCB9OyAvLyBVc2VkIHRvIHZlcmlmeSB0aGF0IGFsbCBjaGFubmVscyBhc2sgZm9y
IHRoZSBzYW1lIGFtb3VudC4KLX07Ci0KLU11bHRpQ2hhbm5lbFJlc2FtcGxlcjo6TXVsdGlDaGFu
bmVsUmVzYW1wbGVyKGRvdWJsZSBzY2FsZUZhY3RvciwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVs
cywgdW5zaWduZWQgcmVxdWVzdEZyYW1lcykKK011bHRpQ2hhbm5lbFJlc2FtcGxlcjo6TXVsdGlD
aGFubmVsUmVzYW1wbGVyKGRvdWJsZSBzY2FsZUZhY3RvciwgdW5zaWduZWQgbnVtYmVyT2ZDaGFu
bmVscywgdW5zaWduZWQgcmVxdWVzdEZyYW1lcywgRnVuY3Rpb248dm9pZChBdWRpb0J1cyosIHNp
emVfdCBmcmFtZXNUb1Byb2Nlc3MpPiYmIHByb3ZpZGVJbnB1dCkKICAgICA6IG1fbnVtYmVyT2ZD
aGFubmVscyhudW1iZXJPZkNoYW5uZWxzKQotICAgICwgbV9jaGFubmVsUHJvdmlkZXIobWFrZVVu
aXF1ZTxDaGFubmVsUHJvdmlkZXI+KG1fbnVtYmVyT2ZDaGFubmVscywgcmVxdWVzdEZyYW1lcykp
CisgICAgLCBtX3Byb3ZpZGVJbnB1dChXVEZNb3ZlKHByb3ZpZGVJbnB1dCkpCisgICAgLCBtX211
bHRpQ2hhbm5lbEJ1cyhBdWRpb0J1czo6Y3JlYXRlKG51bWJlck9mQ2hhbm5lbHMsIHJlcXVlc3RG
cmFtZXMpKQogewogICAgIC8vIENyZWF0ZSBlYWNoIGNoYW5uZWwncyByZXNhbXBsZXIuCiAgICAg
Zm9yICh1bnNpZ25lZCBjaGFubmVsSW5kZXggPSAwOyBjaGFubmVsSW5kZXggPCBudW1iZXJPZkNo
YW5uZWxzOyArK2NoYW5uZWxJbmRleCkKLSAgICAgICAgbV9rZXJuZWxzLmFwcGVuZChtYWtlVW5p
cXVlPFNpbmNSZXNhbXBsZXI+KHNjYWxlRmFjdG9yLCByZXF1ZXN0RnJhbWVzKSk7CisgICAgICAg
IG1fa2VybmVscy5hcHBlbmQobWFrZVVuaXF1ZTxTaW5jUmVzYW1wbGVyPihzY2FsZUZhY3Rvciwg
cmVxdWVzdEZyYW1lcywgc3RkOjpiaW5kKCZNdWx0aUNoYW5uZWxSZXNhbXBsZXI6OnByb3ZpZGVJ
bnB1dEZvckNoYW5uZWwsIHRoaXMsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgc3RkOjpwbGFjZWhv
bGRlcnM6Ol8yLCBjaGFubmVsSW5kZXgpKSk7CiB9CiAKIE11bHRpQ2hhbm5lbFJlc2FtcGxlcjo6
fk11bHRpQ2hhbm5lbFJlc2FtcGxlcigpID0gZGVmYXVsdDsKIAotdm9pZCBNdWx0aUNoYW5uZWxS
ZXNhbXBsZXI6OnByb2Nlc3MoQXVkaW9Tb3VyY2VQcm92aWRlciogcHJvdmlkZXIsIEF1ZGlvQnVz
KiBkZXN0aW5hdGlvbiwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKK3ZvaWQgTXVsdGlDaGFubmVs
UmVzYW1wbGVyOjpwcm9jZXNzKEF1ZGlvQnVzKiBkZXN0aW5hdGlvbiwgc2l6ZV90IGZyYW1lc1Rv
UHJvY2VzcykKIHsKICAgICBBU1NFUlQobV9udW1iZXJPZkNoYW5uZWxzID09IGRlc3RpbmF0aW9u
LT5udW1iZXJPZkNoYW5uZWxzKCkpOworICAgIGlmIChkZXN0aW5hdGlvbi0+bnVtYmVyT2ZDaGFu
bmVscygpID09IDEpIHsKKyAgICAgICAgLy8gRmFzdCBwYXRoIHdoZW4gdGhlIGJ1cyBpcyBtb25v
IHRvIGF2b2lkIHRoZSBjaHVua2luZyBiZWxvdy4KKyAgICAgICAgbV9rZXJuZWxzWzBdLT5wcm9j
ZXNzKGRlc3RpbmF0aW9uLT5jaGFubmVsKDApLT5tdXRhYmxlRGF0YSgpLCBmcmFtZXNUb1Byb2Nl
c3MpOworICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgLy8gVGhlIHByb3ZpZGVyIGNhbiBw
cm92aWRlIHVzIHdpdGggbXVsdGktY2hhbm5lbCBhdWRpbyBkYXRhLiBCdXQgZWFjaCBvZiBvdXIg
c2luZ2xlLWNoYW5uZWwgcmVzYW1wbGVycyAoa2VybmVscykKLSAgICAvLyBiZWxvdyByZXF1aXJl
cyBhIHByb3ZpZGVyIHdoaWNoIHByb3ZpZGVzIGEgc2luZ2xlIHVuaXF1ZSBjaGFubmVsIG9mIGRh
dGEuCi0gICAgLy8gY2hhbm5lbFByb3ZpZGVyIHdyYXBzIHRoZSBvcmlnaW5hbCBtdWx0aS1jaGFu
bmVsIHByb3ZpZGVyIGFuZCBkaXNoZXMgb3V0IG9uZSBjaGFubmVsIGF0IGEgdGltZS4KLSAgICBt
X2NoYW5uZWxQcm92aWRlci0+c2V0UHJvdmlkZXIocHJvdmlkZXIpOwotCi0gICAgLy8gV2UgbmVl
ZCB0byBlbnN1cmUgdGhhdCBTaW5jUmVzYW1wbGVyIG9ubHkgY2FsbHMgcHJvdmlkZUlucHV0KCkg
b25jZSBmb3IgZWFjaCBjaGFubmVsIG9yIGl0IHdpbGwgY29uZnVzZSB0aGUgbG9naWMKLSAgICAv
LyBpbnNpZGUgQ2hhbm5lbFByb3ZpZGVyLiBUbyBlbnN1cmUgdGhpcywgd2UgY2h1bmsgdGhlIG51
bWJlciBvZiByZXF1ZXN0ZWQgZnJhbWVzIGludG8gU2luY1Jlc2FtcGxlcjo6Y2h1bmtTaXplKCkK
LSAgICAvLyBzaXplZCBjaHVua3MuIFNpbmNSZXNhbXBsZXIgZ3VhcmFudGVlcyBpdCB3aWxsIG9u
bHkgY2FsbCBwcm92aWRlSW5wdXQoKSBvbmNlIG9uY2Ugd2UgcmVzYW1wbGUgdGhpcyB3YXkuCisg
ICAgLy8gV2UgbmVlZCB0byBlbnN1cmUgdGhhdCBTaW5jUmVzYW1wbGVyIG9ubHkgY2FsbHMgcHJv
dmlkZUlucHV0Rm9yQ2hhbm5lbCgpIG9uY2UgZm9yIGVhY2ggY2hhbm5lbCBvciBpdCB3aWxsIGNv
bmZ1c2UgdGhlIGxvZ2ljCisgICAgLy8gaW5zaWRlIHByb3ZpZGVJbnB1dEZvckNoYW5uZWwoKS4g
VG8gZW5zdXJlIHRoaXMsIHdlIGNodW5rIHRoZSBudW1iZXIgb2YgcmVxdWVzdGVkIGZyYW1lcyBp
bnRvIFNpbmNSZXNhbXBsZXI6OmNodW5rU2l6ZSgpCisgICAgLy8gc2l6ZWQgY2h1bmtzLiBTaW5j
UmVzYW1wbGVyIGd1YXJhbnRlZXMgaXQgd2lsbCBvbmx5IGNhbGwgcHJvdmlkZUlucHV0Rm9yQ2hh
bm5lbCgpIG9uY2Ugb25jZSB3ZSByZXNhbXBsZSB0aGlzIHdheS4KICAgICBtX291dHB1dEZyYW1l
c1JlYWR5ID0gMDsKICAgICB3aGlsZSAobV9vdXRwdXRGcmFtZXNSZWFkeSA8IGZyYW1lc1RvUHJv
Y2VzcykgewogICAgICAgICBzaXplX3QgY2h1bmtTaXplID0gbV9rZXJuZWxzWzBdLT5jaHVua1Np
emUoKTsKQEAgLTExMywxOCArNjgsMjMgQEAgdm9pZCBNdWx0aUNoYW5uZWxSZXNhbXBsZXI6OnBy
b2Nlc3MoQXVkaW9Tb3VyY2VQcm92aWRlciogcHJvdmlkZXIsIEF1ZGlvQnVzKiBkZXMKIAogICAg
ICAgICBmb3IgKHVuc2lnbmVkIGNoYW5uZWxJbmRleCA9IDA7IGNoYW5uZWxJbmRleCA8IG1fbnVt
YmVyT2ZDaGFubmVsczsgKytjaGFubmVsSW5kZXgpIHsKICAgICAgICAgICAgIEFTU0VSVChjaHVu
a1NpemUgPT0gbV9rZXJuZWxzW2NoYW5uZWxJbmRleF0tPmNodW5rU2l6ZSgpKTsKLSAgICAgICAg
ICAgIGJvb2wgd2FzUHJvdmlkZUlucHV0Q2FsbGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBtX2tl
cm5lbHNbY2hhbm5lbEluZGV4XS0+cHJvY2VzcyhkZXN0aW5hdGlvbi0+Y2hhbm5lbChjaGFubmVs
SW5kZXgpLT5tdXRhYmxlRGF0YSgpICsgbV9vdXRwdXRGcmFtZXNSZWFkeSwgZnJhbWVzVGhpc1Rp
bWUsIFt0aGlzLCBjaGFubmVsSW5kZXgsICZ3YXNQcm92aWRlSW5wdXRDYWxsZWRdKGZsb2F0KiBi
dWZmZXIsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlRf
V0lUSF9NRVNTQUdFKCF3YXNQcm92aWRlSW5wdXRDYWxsZWQsICJwcm92aWRlSW5wdXRGb3JDaGFu
bmVsIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbmNlIik7Ci0gICAgICAgICAgICAgICAgd2FzUHJv
dmlkZUlucHV0Q2FsbGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBtX2NoYW5uZWxQcm92aWRl
ci0+cHJvdmlkZUlucHV0Rm9yQ2hhbm5lbChidWZmZXIsIGZyYW1lc1RvUHJvY2VzcywgY2hhbm5l
bEluZGV4KTsKLSAgICAgICAgICAgIH0pOworICAgICAgICAgICAgbV9rZXJuZWxzW2NoYW5uZWxJ
bmRleF0tPnByb2Nlc3MoZGVzdGluYXRpb24tPmNoYW5uZWwoY2hhbm5lbEluZGV4KS0+bXV0YWJs
ZURhdGEoKSArIG1fb3V0cHV0RnJhbWVzUmVhZHksIGZyYW1lc1RoaXNUaW1lKTsKICAgICAgICAg
fQogCiAgICAgICAgIG1fb3V0cHV0RnJhbWVzUmVhZHkgKz0gZnJhbWVzVGhpc1RpbWU7CiAgICAg
fQorfQorCit2b2lkIE11bHRpQ2hhbm5lbFJlc2FtcGxlcjo6cHJvdmlkZUlucHV0Rm9yQ2hhbm5l
bChmbG9hdCogYnVmZmVyLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzLCB1bnNpZ25lZCBjaGFubmVs
SW5kZXgpCit7CisgICAgQVNTRVJUKGNoYW5uZWxJbmRleCA8IG1fbXVsdGlDaGFubmVsQnVzLT5u
dW1iZXJPZkNoYW5uZWxzKCkpOworICAgIEFTU0VSVChmcmFtZXNUb1Byb2Nlc3MgPD0gbV9tdWx0
aUNoYW5uZWxCdXMtPmxlbmd0aCgpKTsKKworICAgIGlmICghY2hhbm5lbEluZGV4KQorICAgICAg
ICBtX3Byb3ZpZGVJbnB1dChtX211bHRpQ2hhbm5lbEJ1cy5nZXQoKSwgZnJhbWVzVG9Qcm9jZXNz
KTsKIAotICAgIG1fY2hhbm5lbFByb3ZpZGVyLT5zZXRQcm92aWRlcihudWxscHRyKTsKKyAgICAv
LyBDb3B5IHRoZSBjaGFubmVsIGRhdGEgZnJvbSB3aGF0IHdlIHJlY2VpdmVkIGZyb20gbV9tdWx0
aUNoYW5uZWxQcm92aWRlci4KKyAgICBtZW1jcHkoYnVmZmVyLCBtX211bHRpQ2hhbm5lbEJ1cy0+
Y2hhbm5lbChjaGFubmVsSW5kZXgpLT5kYXRhKCksIHNpemVvZihmbG9hdCkgKiBmcmFtZXNUb1By
b2Nlc3MpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NdWx0aUNoYW5uZWxSZXNhbXBsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxlci5oCmluZGV4IDk2Mjk2
YzJhYzc5YWQ3YzIyN2E2NDM0MzI0NzdkNDVjODJiMGJkYTkuLjcyYmRhYWU1YmE1ZGI2MTU1OGZl
ZWIxN2RjYWI0YmQ4YzJjMWEwYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL011bHRpQ2hhbm5lbFJlc2FtcGxlci5oCkBAIC0yOSwyNSArMjksMjYgQEAKICNp
Zm5kZWYgTXVsdGlDaGFubmVsUmVzYW1wbGVyX2gKICNkZWZpbmUgTXVsdGlDaGFubmVsUmVzYW1w
bGVyX2gKIAotI2luY2x1ZGUgIlNpbmNSZXNhbXBsZXIuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1
ZGlvQnVzOworY2xhc3MgU2luY1Jlc2FtcGxlcjsKIAogY2xhc3MgTXVsdGlDaGFubmVsUmVzYW1w
bGVyIGZpbmFsIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzogICAKLSAg
ICAvLyByZXF1ZXN0RnJhbWVzIGNvbnN0cm9scyB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIGluIGZy
YW1lcyB3aGVuIEF1ZGlvU291cmNlUHJvdmlkZXI6OnByb3ZpZGVJbnB1dCgpIGlzIGNhbGxlZC4K
LSAgICBleHBsaWNpdCBNdWx0aUNoYW5uZWxSZXNhbXBsZXIoZG91YmxlIHNjYWxlRmFjdG9yLCB1
bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCB1bnNpZ25lZCByZXF1ZXN0RnJhbWVzID0gU2luY1Jl
c2FtcGxlcjo6ZGVmYXVsdFJlcXVlc3RGcmFtZXMpOworICAgIC8vIHJlcXVlc3RGcmFtZXMgY29u
c3Ryb2xzIHRoZSBzaXplIG9mIHRoZSBidWZmZXIgaW4gZnJhbWVzIHdoZW4gcHJvdmlkZUlucHV0
IGlzIGNhbGxlZC4KKyAgICBNdWx0aUNoYW5uZWxSZXNhbXBsZXIoZG91YmxlIHNjYWxlRmFjdG9y
LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCB1bnNpZ25lZCByZXF1ZXN0RnJhbWVzLCBGdW5j
dGlvbjx2b2lkKEF1ZGlvQnVzKiwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk+JiYgcHJvdmlkZUlu
cHV0KTsKICAgICB+TXVsdGlDaGFubmVsUmVzYW1wbGVyKCk7CiAKLSAgICAvLyBQcm9jZXNzIGdp
dmVuIEF1ZGlvU291cmNlUHJvdmlkZXIgZm9yIHN0cmVhbWluZyBhcHBsaWNhdGlvbnMuCi0gICAg
dm9pZCBwcm9jZXNzKEF1ZGlvU291cmNlUHJvdmlkZXIqLCBBdWRpb0J1cyogZGVzdGluYXRpb24s
IHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOworICAgIHZvaWQgcHJvY2VzcyhBdWRpb0J1cyogZGVz
dGluYXRpb24sIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwogCiBwcml2YXRlOgorICAgIHZvaWQg
cHJvdmlkZUlucHV0Rm9yQ2hhbm5lbChmbG9hdCogYnVmZmVyLCBzaXplX3QgZnJhbWVzVG9Qcm9j
ZXNzLCB1bnNpZ25lZCBjaGFubmVsSW5kZXgpOworCiAgICAgLy8gRklYTUU6IHRoZSBtYWMgcG9y
dCBjYW4gaGF2ZSBhIG1vcmUgaGlnaGx5IG9wdGltaXplZCBpbXBsZW1lbnRhdGlvbiBiYXNlZCBv
biBDb3JlQXVkaW8KICAgICAvLyBpbnN0ZWFkIG9mIFNpbmNSZXNhbXBsZXIuIEZvciBub3cgdGhl
IGRlZmF1bHQgaW1wbGVtZW50YXRpb24gd2lsbCBiZSB1c2VkIG9uIGFsbCBwb3J0cy4KICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxMTgKQEAgLTU2LDEw
ICs1Nyw5IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxTaW5jUmVzYW1w
bGVyPj4gbV9rZXJuZWxzOwogICAgIAogICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZDaGFubmVsczsK
LQotICAgIGNsYXNzIENoYW5uZWxQcm92aWRlcjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2hhbm5l
bFByb3ZpZGVyPiBtX2NoYW5uZWxQcm92aWRlcjsKICAgICBzaXplX3QgbV9vdXRwdXRGcmFtZXNS
ZWFkeSB7IDAgfTsKKyAgICBGdW5jdGlvbjx2b2lkKEF1ZGlvQnVzKiwgc2l6ZV90IGZyYW1lc1Rv
UHJvY2Vzcyk+IG1fcHJvdmlkZUlucHV0OworICAgIFJlZlB0cjxBdWRpb0J1cz4gbV9tdWx0aUNo
YW5uZWxCdXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9TaW5jUmVzYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBsZXIuY3BwCmluZGV4IDMzN2ZhNjQ0OThjNGVi
YWYyY2ZiYmY5ZWU2ZWJlMjk2YzE4NmI0MTIuLjdjMWEwNTEyZDZjZTc3MGEwZGM3MGYwMWExN2Mz
MmY4ZjZkYzc5MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1Np
bmNSZXNhbXBsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1NpbmNS
ZXNhbXBsZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiU2luY1Jlc2FtcGxlci5o
IgogCiAjaW5jbHVkZSAiQXVkaW9CdXMuaCIKKyNpbmNsdWRlICJBdWRpb1V0aWxpdGllcy5oIgog
I2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKICNpZiBVU0UoQUNDRUxFUkFURSkKQEAgLTEy
NCwxNCArMTI1LDE2IEBAIHN0YXRpYyBzaXplX3QgY2FsY3VsYXRlQ2h1bmtTaXplKHVuc2lnbmVk
IGJsb2NrU2l6ZSwgZG91YmxlIHNjYWxlRmFjdG9yKQogICAgIHJldHVybiBibG9ja1NpemUgLyBz
Y2FsZUZhY3RvcjsKIH0KIAotU2luY1Jlc2FtcGxlcjo6U2luY1Jlc2FtcGxlcihkb3VibGUgc2Nh
bGVGYWN0b3IsIHVuc2lnbmVkIHJlcXVlc3RGcmFtZXMpCitTaW5jUmVzYW1wbGVyOjpTaW5jUmVz
YW1wbGVyKGRvdWJsZSBzY2FsZUZhY3RvciwgdW5zaWduZWQgcmVxdWVzdEZyYW1lcywgRnVuY3Rp
b248dm9pZChmbG9hdCogYnVmZmVyLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKT4mJiBwcm92aWRl
SW5wdXQpCiAgICAgOiBtX3NjYWxlRmFjdG9yKHNjYWxlRmFjdG9yKQogICAgICwgbV9rZXJuZWxT
dG9yYWdlKGtlcm5lbFN0b3JhZ2VTaXplKQogICAgICwgbV9yZXF1ZXN0RnJhbWVzKHJlcXVlc3RG
cmFtZXMpCisgICAgLCBtX3Byb3ZpZGVJbnB1dChXVEZNb3ZlKHByb3ZpZGVJbnB1dCkpCiAgICAg
LCBtX2lucHV0QnVmZmVyKG1fcmVxdWVzdEZyYW1lcyArIGtlcm5lbFNpemUpIC8vIFNlZSBpbnB1
dCBidWZmZXIgbGF5b3V0IGFib3ZlLgogICAgICwgbV9yMShtX2lucHV0QnVmZmVyLmRhdGEoKSkK
ICAgICAsIG1fcjIobV9pbnB1dEJ1ZmZlci5kYXRhKCkgKyBrZXJuZWxTaXplIC8gMikKIHsKKyAg
ICBBU1NFUlQobV9wcm92aWRlSW5wdXQpOwogICAgIEFTU0VSVChtX3JlcXVlc3RGcmFtZXMgPiAw
KTsKICAgICB1cGRhdGVSZWdpb25zKGZhbHNlKTsKICAgICBBU1NFUlQobV9ibG9ja1NpemUgPiBr
ZXJuZWxTaXplKTsKQEAgLTE5Nyw3NSArMjAwLDQxIEBAIHZvaWQgU2luY1Jlc2FtcGxlcjo6aW5p
dGlhbGl6ZUtlcm5lbCgpCiAgICAgfQogfQogCi1uYW1lc3BhY2UgewotCi0vLyBCdWZmZXJTb3Vy
Y2VQcm92aWRlciBpcyBhbiBhdWRpbyBzb3VyY2UgcHJvdmlkZXIgd3JhcHBpbmcgYW4gaW4tbWVt
b3J5IGJ1ZmZlci4KLQotY2xhc3MgQnVmZmVyU291cmNlUHJvdmlkZXIgewotcHVibGljOgotICAg
IGV4cGxpY2l0IEJ1ZmZlclNvdXJjZVByb3ZpZGVyKGNvbnN0IGZsb2F0KiBzb3VyY2UsIHNpemVf
dCBudW1iZXJPZlNvdXJjZUZyYW1lcykKLSAgICAgICAgOiBtX3NvdXJjZShzb3VyY2UpCi0gICAg
ICAgICwgbV9zb3VyY2VGcmFtZXNBdmFpbGFibGUobnVtYmVyT2ZTb3VyY2VGcmFtZXMpCi0gICAg
ewotICAgIH0KLSAgICAKLSAgICAvLyBDb25zdW1lcyBzYW1wbGVzIGZyb20gdGhlIGluLW1lbW9y
eSBidWZmZXIuCi0gICAgdm9pZCBwcm92aWRlSW5wdXQoZmxvYXQqIGJ1ZmZlciwgc2l6ZV90IGZy
YW1lc1RvUHJvY2VzcykKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3NvdXJjZSAmJiBidWZmZXIp
OwotICAgICAgICBpZiAoIW1fc291cmNlIHx8ICFidWZmZXIpCi0gICAgICAgICAgICByZXR1cm47
Ci0KK3ZvaWQgU2luY1Jlc2FtcGxlcjo6cHJvY2Vzc0J1ZmZlcihjb25zdCBmbG9hdCogc291cmNl
LCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIG51bWJlck9mU291cmNlRnJhbWVzLCBkb3Vi
bGUgc2NhbGVGYWN0b3IpCit7CisgICAgU2luY1Jlc2FtcGxlciByZXNhbXBsZXIoc2NhbGVGYWN0
b3IsIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSwgW3NvdXJjZSwgbnVtYmVyT2ZT
b3VyY2VGcmFtZXNdKGZsb2F0KiBidWZmZXIsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG11dGFi
bGUgewogICAgICAgICAvLyBDbGFtcCB0byBudW1iZXIgb2YgZnJhbWVzIGF2YWlsYWJsZSBhbmQg
emVyby1wYWQuCi0gICAgICAgIHNpemVfdCBmcmFtZXNUb0NvcHkgPSBzdGQ6Om1pbihtX3NvdXJj
ZUZyYW1lc0F2YWlsYWJsZSwgZnJhbWVzVG9Qcm9jZXNzKTsKLSAgICAgICAgbWVtY3B5KGJ1ZmZl
ciwgbV9zb3VyY2UsIHNpemVvZihmbG9hdCkgKiBmcmFtZXNUb0NvcHkpOworICAgICAgICBzaXpl
X3QgZnJhbWVzVG9Db3B5ID0gc3RkOjptaW48c2l6ZV90PihudW1iZXJPZlNvdXJjZUZyYW1lcywg
ZnJhbWVzVG9Qcm9jZXNzKTsKKyAgICAgICAgbWVtY3B5KGJ1ZmZlciwgc291cmNlLCBzaXplb2Yo
ZmxvYXQpICogZnJhbWVzVG9Db3B5KTsKIAogICAgICAgICAvLyBaZXJvLXBhZCBpZiBuZWNlc3Nh
cnkuCiAgICAgICAgIGlmIChmcmFtZXNUb0NvcHkgPCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgICAg
ICAgICBtZW1zZXQoYnVmZmVyICsgZnJhbWVzVG9Db3B5LCAwLCBzaXplb2YoZmxvYXQpICogKGZy
YW1lc1RvUHJvY2VzcyAtIGZyYW1lc1RvQ29weSkpOwogCi0gICAgICAgIG1fc291cmNlRnJhbWVz
QXZhaWxhYmxlIC09IGZyYW1lc1RvQ29weTsKLSAgICAgICAgbV9zb3VyY2UgKz0gZnJhbWVzVG9D
b3B5OwotICAgIH0KLSAgICAKLXByaXZhdGU6Ci0gICAgY29uc3QgZmxvYXQqIG1fc291cmNlOwot
ICAgIHNpemVfdCBtX3NvdXJjZUZyYW1lc0F2YWlsYWJsZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNl
Ci0KLXZvaWQgU2luY1Jlc2FtcGxlcjo6cHJvY2Vzcyhjb25zdCBmbG9hdCogc291cmNlLCBmbG9h
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIG51bWJlck9mU291cmNlRnJhbWVzKQotewotICAgIC8v
IFJlc2FtcGxlIGFuIGluLW1lbW9yeSBidWZmZXIgdXNpbmcgYW4gQXVkaW9Tb3VyY2VQcm92aWRl
ci4KLSAgICBCdWZmZXJTb3VyY2VQcm92aWRlciBzb3VyY2VQcm92aWRlcihzb3VyY2UsIG51bWJl
ck9mU291cmNlRnJhbWVzKTsKKyAgICAgICAgbnVtYmVyT2ZTb3VyY2VGcmFtZXMgLT0gZnJhbWVz
VG9Db3B5OworICAgICAgICBzb3VyY2UgKz0gZnJhbWVzVG9Db3B5OworICAgIH0pOwogCi0gICAg
dW5zaWduZWQgbnVtYmVyT2ZEZXN0aW5hdGlvbkZyYW1lcyA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihudW1iZXJPZlNvdXJjZUZyYW1lcyAvIG1fc2NhbGVGYWN0b3IpOworICAgIHVuc2lnbmVkIG51
bWJlck9mRGVzdGluYXRpb25GcmFtZXMgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obnVtYmVyT2ZT
b3VyY2VGcmFtZXMgLyBzY2FsZUZhY3Rvcik7CiAgICAgdW5zaWduZWQgcmVtYWluaW5nID0gbnVt
YmVyT2ZEZXN0aW5hdGlvbkZyYW1lczsKLSAgICAKKwogICAgIHdoaWxlIChyZW1haW5pbmcpIHsK
LSAgICAgICAgdW5zaWduZWQgZnJhbWVzVGhpc1RpbWUgPSBzdGQ6Om1pbihyZW1haW5pbmcsIG1f
cmVxdWVzdEZyYW1lcyk7Ci0gICAgICAgIHByb2Nlc3MoZGVzdGluYXRpb24sIGZyYW1lc1RoaXNU
aW1lLCBbJnNvdXJjZVByb3ZpZGVyXShmbG9hdCogYnVmZmVyLCBzaXplX3QgZnJhbWVzVG9Qcm9j
ZXNzKSB7Ci0gICAgICAgICAgICBzb3VyY2VQcm92aWRlci5wcm92aWRlSW5wdXQoYnVmZmVyLCBm
cmFtZXNUb1Byb2Nlc3MpOwotICAgICAgICB9KTsKKyAgICAgICAgdW5zaWduZWQgZnJhbWVzVGhp
c1RpbWUgPSBzdGQ6Om1pbjx1bnNpZ25lZD4ocmVtYWluaW5nLCBBdWRpb1V0aWxpdGllczo6cmVu
ZGVyUXVhbnR1bVNpemUpOworICAgICAgICByZXNhbXBsZXIucHJvY2VzcyhkZXN0aW5hdGlvbiwg
ZnJhbWVzVGhpc1RpbWUpOwogICAgICAgICAKICAgICAgICAgZGVzdGluYXRpb24gKz0gZnJhbWVz
VGhpc1RpbWU7CiAgICAgICAgIHJlbWFpbmluZyAtPSBmcmFtZXNUaGlzVGltZTsKICAgICB9CiB9
CiAKLXZvaWQgU2luY1Jlc2FtcGxlcjo6cHJvY2VzcyhmbG9hdCogZGVzdGluYXRpb24sIHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoZmxvYXQqIGJ1ZmZlciwgc2l6
ZV90IGZyYW1lc1RvUHJvY2Vzcyk+JiBwcm92aWRlSW5wdXQpCit2b2lkIFNpbmNSZXNhbXBsZXI6
OnByb2Nlc3MoZmxvYXQqIGRlc3RpbmF0aW9uLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewot
ICAgIEFTU0VSVChwcm92aWRlSW5wdXQpOwotICAgIGlmICghcHJvdmlkZUlucHV0KQotICAgICAg
ICByZXR1cm47Ci0KICAgICB1bnNpZ25lZCBudW1iZXJPZkRlc3RpbmF0aW9uRnJhbWVzID0gZnJh
bWVzVG9Qcm9jZXNzOwogCiAgICAgLy8gU3RlcCAoMSkKICAgICAvLyBQcmltZSB0aGUgaW5wdXQg
YnVmZmVyIGF0IHRoZSBzdGFydCBvZiB0aGUgaW5wdXQgc3RyZWFtLgogICAgIGlmICghbV9pc0J1
ZmZlclByaW1lZCkgewotICAgICAgICBwcm92aWRlSW5wdXQobV9yMCwgbV9yZXF1ZXN0RnJhbWVz
KTsKKyAgICAgICAgbV9wcm92aWRlSW5wdXQobV9yMCwgbV9yZXF1ZXN0RnJhbWVzKTsKICAgICAg
ICAgbV9pc0J1ZmZlclByaW1lZCA9IHRydWU7CiAgICAgfQogICAgIApAQCAtMzE3LDcgKzI4Niw3
IEBAIHZvaWQgU2luY1Jlc2FtcGxlcjo6cHJvY2VzcyhmbG9hdCogZGVzdGluYXRpb24sIHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MsIGNvbnN0IEZ1CiAKICAgICAgICAgLy8gU3RlcCAoNSkKICAgICAg
ICAgLy8gUmVmcmVzaCB0aGUgYnVmZmVyIHdpdGggbW9yZSBpbnB1dC4KLSAgICAgICAgcHJvdmlk
ZUlucHV0KG1fcjAsIG1fcmVxdWVzdEZyYW1lcyk7CisgICAgICAgIG1fcHJvdmlkZUlucHV0KG1f
cjAsIG1fcmVxdWVzdEZyYW1lcyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9TaW5jUmVzYW1wbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9TaW5jUmVzYW1wbGVyLmgKaW5kZXggNDgxZjA4YTc4N2E4NzcyNzhlMzJiZTlh
YjhhMWNiZjUxNDVjNzA4MC4uOWM1MDBhMTM5NTRhYzUwOTZlZjljNjRkOTE5MTE2YzllYjc1MTY2
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vU2luY1Jlc2FtcGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1NpbmNSZXNhbXBsZXIuaApA
QCAtNDEsMTkgKzQxLDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNpbmNSZXNhbXBs
ZXIgZmluYWwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgZGVmYXVsdFJlcXVlc3RGcmFtZXMgeyA1MTIgfTsKLQog
ICAgIC8vIHNjYWxlRmFjdG9yID09IHNvdXJjZVNhbXBsZVJhdGUgLyBkZXN0aW5hdGlvblNhbXBs
ZVJhdGUKICAgICAvLyByZXF1ZXN0RnJhbWVzIGNvbnRyb2xzIHRoZSBzaXplIGluIGZyYW1lcyBv
ZiB0aGUgYnVmZmVyIHJlcXVlc3RlZCBieSBlYWNoIHByb3ZpZGVJbnB1dCgpIGNhbGwuCi0gICAg
U2luY1Jlc2FtcGxlcihkb3VibGUgc2NhbGVGYWN0b3IsIHVuc2lnbmVkIHJlcXVlc3RGcmFtZXMg
PSBkZWZhdWx0UmVxdWVzdEZyYW1lcyk7CisgICAgU2luY1Jlc2FtcGxlcihkb3VibGUgc2NhbGVG
YWN0b3IsIHVuc2lnbmVkIHJlcXVlc3RGcmFtZXMsIEZ1bmN0aW9uPHZvaWQoZmxvYXQqIGJ1ZmZl
ciwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk+JiYgcHJvdmlkZUlucHV0KTsKICAgICAKICAgICBz
aXplX3QgY2h1bmtTaXplKCkgY29uc3QgeyByZXR1cm4gbV9jaHVua1NpemU7IH0KIAogICAgIC8v
IFByb2Nlc3NlcyBudW1iZXJPZlNvdXJjZUZyYW1lcyBmcm9tIHNvdXJjZSB0byBwcm9kdWNlIG51
bWJlck9mU291cmNlRnJhbWVzIC8gc2NhbGVGYWN0b3IgZnJhbWVzIGluIGRlc3RpbmF0aW9uLgot
ICAgIHZvaWQgcHJvY2Vzcyhjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIG51bWJlck9mU291cmNlRnJhbWVzKTsKKyAgICBzdGF0aWMgdm9pZCBwcm9jZXNz
QnVmZmVyKGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQg
bnVtYmVyT2ZTb3VyY2VGcmFtZXMsIGRvdWJsZSBzY2FsZUZhY3Rvcik7CiAKICAgICAvLyBQcm9j
ZXNzIHdpdGggcHJvdmlkZUlucHV0IGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBzdHJlYW1pbmcgYXBw
bGljYXRpb25zLgotICAgIHZvaWQgcHJvY2VzcyhmbG9hdCogZGVzdGluYXRpb24sIHNpemVfdCBm
cmFtZXNUb1Byb2Nlc3MsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoZmxvYXQqIGJ1ZmZlciwgc2l6ZV90
IGZyYW1lc1RvUHJvY2Vzcyk+JiBwcm92aWRlSW5wdXQpOworICAgIHZvaWQgcHJvY2VzcyhmbG9h
dCogZGVzdGluYXRpb24sIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwogCiBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBpbml0aWFsaXplS2VybmVsKCk7CkBAIC03NCw2ICs3Miw4IEBAIHByb3RlY3RlZDoK
ICAgICAvLyBUaGlzIGlzIHRoZSBudW1iZXIgb2YgZGVzdGluYXRpb24gZnJhbWVzIHdlIGdlbmVy
YXRlIHBlciBwcm9jZXNzaW5nIHBhc3Mgb24gdGhlIGJ1ZmZlci4KICAgICB1bnNpZ25lZCBtX3Jl
cXVlc3RGcmFtZXM7CiAKKyAgICBGdW5jdGlvbjx2b2lkKGZsb2F0KiBidWZmZXIsIHNpemVfdCBm
cmFtZXNUb1Byb2Nlc3MpPiBtX3Byb3ZpZGVJbnB1dDsKKwogICAgIC8vIFRoZSBudW1iZXIgb2Yg
c291cmNlIGZyYW1lcyBwcm9jZXNzZWQgcGVyIHBhc3MuCiAgICAgdW5zaWduZWQgbV9ibG9ja1Np
emUgeyAwIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCmluZGV4IGQ3MzkwY2ZhZGJkNzhl
ODA1Mjc0NTAwNWU5MzAxYTE4OTA3YjQwNGMuLjQ2YmQzNDE1MGM2Zjc1ZDFkMjAwOTlmZWRkY2Ux
YmVkZGU5NjQ3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcApAQCAtODMsNyArODMsMTAg
QEAgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpBdWRpb0Rlc3RpbmF0aW9uQ29jb2EoQXVkaW9JT0Nh
bGxiYWNrJiBjYWxsYmFjaywgdW5zaWduZWQKICAgICBhdXRvIGhhcmR3YXJlU2FtcGxlUmF0ZSA9
IHRoaXMtPmhhcmR3YXJlU2FtcGxlUmF0ZSgpOwogICAgIGlmIChzYW1wbGVSYXRlICE9IGhhcmR3
YXJlU2FtcGxlUmF0ZSkgewogICAgICAgICBkb3VibGUgc2NhbGVGYWN0b3IgPSBzdGF0aWNfY2Fz
dDxkb3VibGU+KHNhbXBsZVJhdGUpIC8gaGFyZHdhcmVTYW1wbGVSYXRlOwotICAgICAgICBtX3Jl
c2FtcGxlciA9IG1ha2VVbmlxdWU8TXVsdGlDaGFubmVsUmVzYW1wbGVyPihzY2FsZUZhY3Rvciwg
bnVtYmVyT2ZPdXRwdXRDaGFubmVscywgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXpl
KTsKKyAgICAgICAgbV9yZXNhbXBsZXIgPSBtYWtlVW5pcXVlPE11bHRpQ2hhbm5lbFJlc2FtcGxl
cj4oc2NhbGVGYWN0b3IsIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIEF1ZGlvVXRpbGl0aWVzOjpy
ZW5kZXJRdWFudHVtU2l6ZSwgW3RoaXNdKEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpIHsKKyAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQoZnJhbWVzVG9Qcm9jZXNzLCBmcmFt
ZXNUb1Byb2Nlc3MgPT0gQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKKyAgICAg
ICAgICAgIG1fY2FsbGJhY2sucmVuZGVyKDAsIGJ1cywgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1
YW50dW1TaXplLCBtX291dHB1dFRpbWVzdGFtcCk7CisgICAgICAgIH0pOwogICAgIH0KIH0KIApA
QCAtMjE0LDcgKzIxNyw3IEBAIHZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpyZW5kZXJPblJl
bmRlcmluZ1RoZWFkKHNpemVfdCBmcmFtZXNUb1JlbmRlcikKIHsKICAgICBmb3IgKHNpemVfdCBw
dXNoZWRGcmFtZXMgPSAwOyBwdXNoZWRGcmFtZXMgPCBmcmFtZXNUb1JlbmRlcjsgcHVzaGVkRnJh
bWVzICs9IEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSkgewogICAgICAgICBpZiAo
bV9yZXNhbXBsZXIpCi0gICAgICAgICAgICBtX3Jlc2FtcGxlci0+cHJvY2Vzcyh0aGlzLCBtX3Jl
bmRlckJ1cy5wdHIoKSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKKyAgICAg
ICAgICAgIG1fcmVzYW1wbGVyLT5wcm9jZXNzKG1fcmVuZGVyQnVzLnB0cigpLCBBdWRpb1V0aWxp
dGllczo6cmVuZGVyUXVhbnR1bVNpemUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2Nh
bGxiYWNrLnJlbmRlcigwLCBtX3JlbmRlckJ1cy5wdHIoKSwgQXVkaW9VdGlsaXRpZXM6OnJlbmRl
clF1YW50dW1TaXplLCBtX291dHB1dFRpbWVzdGFtcCk7CiAKQEAgLTIyMywxMiArMjI2LDYgQEAg
dm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRlck9uUmVuZGVyaW5nVGhlYWQoc2l6ZV90
IGZyYW1lc1RvUmVuZGVyKQogICAgIH0KIH0KIAotdm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6
OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQotewot
ICAgIEFTU0VSVF9VTlVTRUQoZnJhbWVzVG9Qcm9jZXNzLCBmcmFtZXNUb1Byb2Nlc3MgPT0gQXVk
aW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKLSAgICBtX2NhbGxiYWNrLnJlbmRlcigw
LCBidXMsIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSwgbV9vdXRwdXRUaW1lc3Rh
bXApOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VC
X0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
QXVkaW9EZXN0aW5hdGlvbkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaAppbmRleCA0YzNmMmU3NWY1OGI0MzlkZTQ0ZTg0
YWU1NDM2Yzg1ZjE4OTFjNzM4Li44NjdiNjhiMDI0OGNlNWNlYWZkMmE1MTdjNzhjZmViMTc5OTIy
ZDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRp
b0Rlc3RpbmF0aW9uQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9j
b2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUg
IkF1ZGlvRGVzdGluYXRpb24uaCIKICNpbmNsdWRlICJBdWRpb0lPQ2FsbGJhY2suaCIKICNpbmNs
dWRlICJBdWRpb091dHB1dFVuaXRBZGFwdG9yLmgiCi0jaW5jbHVkZSAiQXVkaW9Tb3VyY2VQcm92
aWRlci5oIgogI2luY2x1ZGUgPEF1ZGlvVW5pdC9BdWRpb1VuaXQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgpAQCAtNDQsNyArNDMsNyBAQCBj
bGFzcyBQdXNoUHVsbEZJRk87CiB1c2luZyBDcmVhdGVBdWRpb0Rlc3RpbmF0aW9uQ29jb2FPdmVy
cmlkZSA9IFJlZjxBdWRpb0Rlc3RpbmF0aW9uPigqKShBdWRpb0lPQ2FsbGJhY2smLCBmbG9hdCBz
YW1wbGVSYXRlKTsKIAogLy8gQW4gQXVkaW9EZXN0aW5hdGlvbiB1c2luZyBDb3JlQXVkaW8ncyBk
ZWZhdWx0IG91dHB1dCBBdWRpb1VuaXQKLWNsYXNzIEF1ZGlvRGVzdGluYXRpb25Db2NvYSA6IHB1
YmxpYyBBdWRpb0Rlc3RpbmF0aW9uLCBwdWJsaWMgQXVkaW9Vbml0UmVuZGVyZXIsIHB1YmxpYyBB
dWRpb1NvdXJjZVByb3ZpZGVyIHsKK2NsYXNzIEF1ZGlvRGVzdGluYXRpb25Db2NvYSA6IHB1Ymxp
YyBBdWRpb0Rlc3RpbmF0aW9uLCBwdWJsaWMgQXVkaW9Vbml0UmVuZGVyZXIgewogcHVibGljOgog
ICAgIFdFQkNPUkVfRVhQT1JUIEF1ZGlvRGVzdGluYXRpb25Db2NvYShBdWRpb0lPQ2FsbGJhY2sm
LCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dENoYW5uZWxzLCBmbG9hdCBzYW1wbGVSYXRlLCBib29s
IGNvbmZpZ3VyZUF1ZGlvT3V0cHV0VW5pdCA9IHRydWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZp
cnR1YWwgfkF1ZGlvRGVzdGluYXRpb25Db2NvYSgpOwpAQCAtNzIsOSArNzEsNiBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCByZW5kZXJPblJlbmRlcmluZ1RoZWFkKHNpemVfdCBmcmFtZXNUb1JlbmRl
cik7CiAKLSAgICAvLyBBdWRpb1NvdXJjZVByb3ZpZGVyLgotICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcHJvdmlkZUlucHV0KEF1ZGlvQnVzKiwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykgZmluYWw7
Ci0KICAgICBBdWRpb091dHB1dFVuaXRBZGFwdG9yIG1fYXVkaW9PdXRwdXRVbml0QWRhcHRvcjsK
ICAgICBBdWRpb0lPQ2FsbGJhY2smIG1fY2FsbGJhY2s7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>