<?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>228676</bug_id>
          
          <creation_ts>2021-07-31 00:05:47 -0700</creation_ts>
          <short_desc>[JSC] Yarr should use Bitmap instead of ByteVector for BoyerMoore search</short_desc>
          <delta_ts>2021-08-02 10:47:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1781056</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-31 00:05:47 -0700</bug_when>
    <thetext>[JSC] Yarr should use Bitmap instead of ByteVector for BoyerMoore search</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781057</commentid>
    <comment_count>1</comment_count>
      <attachid>434690</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-31 00:10:39 -0700</bug_when>
    <thetext>Created attachment 434690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781058</commentid>
    <comment_count>2</comment_count>
      <attachid>434691</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-31 00:14:13 -0700</bug_when>
    <thetext>Created attachment 434691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781059</commentid>
    <comment_count>3</comment_count>
      <attachid>434692</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-31 00:20:17 -0700</bug_when>
    <thetext>Created attachment 434692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781097</commentid>
    <comment_count>4</comment_count>
      <attachid>434703</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-07-31 13:51:45 -0700</bug_when>
    <thetext>Created attachment 434703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781293</commentid>
    <comment_count>5</comment_count>
      <attachid>434703</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-08-02 10:14:24 -0700</bug_when>
    <thetext>Comment on attachment 434703
Patch

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

&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:2428
&gt; +                            auto matched = branchTestBit64(NonZero, regT2, regT0); // We can ignore upper bits since module-64 is performed.

module-&gt;modulo

The instruction itself performs modulo 64?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781294</commentid>
    <comment_count>6</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-08-02 10:14:34 -0700</bug_when>
    <thetext>r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781305</commentid>
    <comment_count>7</comment_count>
      <attachid>434703</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-02 10:39:57 -0700</bug_when>
    <thetext>Comment on attachment 434703
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:2428
&gt;&gt; +                            auto matched = branchTestBit64(NonZero, regT2, regT0); // We can ignore upper bits since module-64 is performed.
&gt; 
&gt; module-&gt;modulo
&gt; 
&gt; The instruction itself performs modulo 64?

Yes. https://www.felixcloutier.com/x86/bt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781307</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-08-02 10:46:42 -0700</bug_when>
    <thetext>Committed r280544 (240171@main): &lt;https://commits.webkit.org/240171@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781308</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-02 10:47:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/81419055&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434690</attachid>
            <date>2021-07-31 00:10:39 -0700</date>
            <delta_ts>2021-07-31 00:14:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228676-20210731001038.patch</filename>
            <type>text/plain</type>
            <size>18116</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MjRiMGU0NWFiYWUzYjNiNTZjMjBhNWZhNmIwN2M4MTZjYTRlMjMxLi45N2JmMWI5ZTQ1ZmU5NmY1
NzU2MjQxODkyNWYzN2VhMzUzNTc5NTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAyMS0wNy0zMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFlhcnIgc2hvdWxkIHVzZSBCaXRtYXAgaW5zdGVhZCBvZiBCeXRl
VmVjdG9yIGZvciBCb3llck1vb3JlIHNlYXJjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2Ugb2JzZXJ2ZWQgdGhhdCB1c2luZyBCaXRtYXAgaW5zdGVh
ZCBvZiBCeXRlVmVjdG9yIGRvZXMgbm90IHBvc2UgcGVyZm9ybWFuY2UKKyAgICAgICAgaXNzdWUu
IEl0IHdhcyBuZXV0cmFsIGluIGpxdWVyeS10b2RvbXZjLXJlZ2V4cC5qcy4gSW4gdGhhdCBjYXNl
LCB3ZSBzaG91bGQgdXNlCisgICAgICAgIEJpdG1hcCBzaW5jZSBpdCBpcyA4eCBzbWFsbGVyLgor
CisgICAgICAgIFdlIGFsc28gc2VhcmNoIHJldXNhYmxlIEJpdG1hcCBmcm9tIFZlY3RvciBzaW5j
ZSBjb21wYXJpbmcgMTI4Yml0IEJpdG1hcCBpcworICAgICAgICBzdXBlciBmYXN0IHNvIHdlIGRv
IG5vdCBuZWVkIHRvIGJvdGhlciBhYm91dCBsaW5lYXIgc2VhcmNoIGhlcmUgKCMgb2YgQml0bWFw
CisgICAgICAgIGlzIGN1cnJlbnRseSB1cCB0byA0KS4KKworICAgICAgICBUbyBtYWtlIGNvZGUg
c2ltcGxpZmllZCwgd2UgYWRkIHJlZ1QyIHRvIEFSTXY3IGFuZCBNSVBTIGJhY2tlbmQgb2YgWWFy
ckpJVC4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRv
VCAgICAgICAgICAgICAgICAgICAgIFBhdGNoZWQKKworICAgICAgICAgICAganF1ZXJ5LXRvZG9t
dmMtcmVnZXhwICAgICAgNTU1Ljk1NjYrLTAuODg1NiAgICAgICAgICA1NTUuMDczNystMC45NzE3
CisKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQuY3BwOgorICAgICAgICAoSlNDOjpZYXJyOjpCb3ll
ck1vb3JlSW5mbzo6aW5kZXggY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpZYXJyOjpC
b3llck1vb3JlSW5mbzo6c2V0SW5kZXgpOiBEZWxldGVkLgorICAgICAgICAqIHlhcnIvWWFyckpJ
VC5oOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyQ29kZUJsb2NrOjpzZXQ4Qml0Q29kZSk6Cisg
ICAgICAgIChKU0M6OllhcnI6OllhcnJDb2RlQmxvY2s6OnNldDE2Qml0Q29kZSk6CisgICAgICAg
IChKU0M6OllhcnI6OllhcnJDb2RlQmxvY2s6OnNldDhCaXRDb2RlTWF0Y2hPbmx5KToKKyAgICAg
ICAgKEpTQzo6WWFycjo6WWFyckNvZGVCbG9jazo6c2V0MTZCaXRDb2RlTWF0Y2hPbmx5KToKKyAg
ICAgICAgKEpTQzo6WWFycjo6WWFyckNvZGVCbG9jazo6dHJ5UmV1c2VCb3llck1vb3JlQml0bWFw
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6WWFycjo6Qm95ZXJNb29yZUJ5dGVWZWN0b3I6OkJveWVy
TW9vcmVCeXRlVmVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6WWFycjo6WWFyckNvZGVC
bG9jazo6dHJ5UmV1c2VCb3llck1vb3JlQnl0ZVZlY3RvciBjb25zdCk6IERlbGV0ZWQuCisKIDIw
MjEtMDctMzAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBb
SlNDXSBicmFuY2hUZXN0OCBzaG91bGQgbm90IGVtaXQgdHN0IGZvciBaZXJvL05vblplcm8gY2Fz
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggYWZkOTdjZjZmZTFjOTRmYjVkNDI3YTdkZmQ1ZjAzZDQ0ZmY3MDIwZC4uNzhiNjA1
MWY2NzlkNjZiZGZjMGRlNzBiMGQyODBmNTAzMzgyZGE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAyMS0wNy0zMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAg
IFtKU0NdIFlhcnIgc2hvdWxkIHVzZSBCaXRtYXAgaW5zdGVhZCBvZiBCeXRlVmVjdG9yIGZvciBC
b3llck1vb3JlIHNlYXJjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI4Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3dGYvQml0bWFwLmg6CisKIDIwMjEtMDctMzAgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciAnQ3Jvc3Mt
T3JpZ2luLU9wZW5lci1Qb2xpY3knIEhUVFAgaGVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJKSVQuY3BwCmluZGV4IDBhOTI0MDYxNmM2ODRiZDBkY2Y0MzhkYWUxOTdiMzZmZTRmNTlj
Y2IuLmVjMDRkMzhhMTExYWZlMzE4MjAzNDkzNTIxNTE5N2QwMjM3ZTE5ODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCkBAIC02OSwxMiArNjksNiBAQCBjbGFzcyBCb3ll
ck1vb3JlSW5mbyB7CiAgICAgICAgIG1fY2hhcmFjdGVyc1tpbmRleF0uYWRkKGNoYXJhY3Rlcik7
CiAgICAgfQogCi0gICAgdW5zaWduZWQgaW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2luZGV4OyB9
Ci0gICAgdm9pZCBzZXRJbmRleCh1bnNpZ25lZCBpbmRleCkKLSAgICB7Ci0gICAgICAgIG1faW5k
ZXggPSBpbmRleDsKLSAgICB9Ci0KICAgICBzdGF0aWMgVW5pcXVlUmVmPEJveWVyTW9vcmVJbmZv
PiBjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1ha2VVbmlx
dWVSZWY8Qm95ZXJNb29yZUluZm8+KGxlbmd0aCk7CkBAIC04Nyw3ICs4MSw2IEBAIGNsYXNzIEJv
eWVyTW9vcmVJbmZvIHsKICAgICBzdGQ6OnR1cGxlPGludCwgdW5zaWduZWQsIHVuc2lnbmVkPiBm
aW5kQmVzdENoYXJhY3RlclNlcXVlbmNlKHVuc2lnbmVkIG51bWJlck9mQ2FuZGlkYXRlc0xpbWl0
KSBjb25zdDsKIAogICAgIFZlY3RvcjxCb3llck1vb3JlQml0bWFwPiBtX2NoYXJhY3RlcnM7Ci0g
ICAgdW5zaWduZWQgbV9pbmRleCB7IDAgfTsKIH07CiAKIHN0ZDo6dHVwbGU8aW50LCB1bnNpZ25l
ZCwgdW5zaWduZWQ+IEJveWVyTW9vcmVJbmZvOjpmaW5kQmVzdENoYXJhY3RlclNlcXVlbmNlKHVu
c2lnbmVkIG51bWJlck9mQ2FuZGlkYXRlc0xpbWl0KSBjb25zdApAQCAtMTY2LDcgKzE1OSwxMSBA
QCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRl
IE1hY3JvQXNzZW1ibGVyIHsKIAogICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QwID0g
QVJNUmVnaXN0ZXJzOjpyNDsKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMSA9IEFS
TVJlZ2lzdGVyczo6cjU7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaW5pdGlhbFN0YXJ0
ID0gQVJNUmVnaXN0ZXJzOjpyODsKKyAgICAvLyByNiBpcyByZXNlcnZlZCBmb3IgTWFjcm9Bc3Nl
bWJsZXJBUk12NywKKyAgICAvLyByNyBpcyBmcC4KKyAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJ
RCByZWdUMiA9IEFSTVJlZ2lzdGVyczo6cjg7CisgICAgLy8gcjkgaXMgc2IgaW4gRUFCSS4KKyAg
ICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBpbml0aWFsU3RhcnQgPSBBUk1SZWdpc3RlcnM6OnIx
MDsgLy8gcjEwIGlzIFNMLCBidXQgbm8gbG9uZ2VyIGEgc3BlY2lhbCByZWdpc3Rlci4KIAogICAg
IHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJldHVyblJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpy
MDsKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZXR1cm5SZWdpc3RlcjIgPSBBUk1SZWdp
c3RlcnM6OnIxOwpAQCAtMjA1LDkgKzIwMiwxMiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFs
IDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBsZW5ndGggPSBNSVBTUmVnaXN0ZXJzOjphMjsKICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBvdXRwdXQgPSBNSVBTUmVnaXN0ZXJzOjphMzsKIAotICAgIHN0
YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QwID0gTUlQU1JlZ2lzdGVyczo6dDQ7Ci0gICAgc3Rh
dGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDEgPSBNSVBTUmVnaXN0ZXJzOjp0NTsKLSAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBpbml0aWFsU3RhcnQgPSBNSVBTUmVnaXN0ZXJzOjp0NjsKKyAg
ICAvLyB0MCBpcyByZXNlcnZlZCBmb3IgTWFjcm9Bc3NlbWJsZXJNSVBTLgorICAgIC8vIHQxIGlz
IHJlc2VydmVkIGZvciBNYWNyb0Fzc2VtYmxlck1JUFMuCisgICAgc3RhdGljIGNvbnN0IFJlZ2lz
dGVySUQgcmVnVDAgPSBNSVBTUmVnaXN0ZXJzOjp0MjsKKyAgICBzdGF0aWMgY29uc3QgUmVnaXN0
ZXJJRCByZWdUMSA9IE1JUFNSZWdpc3RlcnM6OnQzOworICAgIHN0YXRpYyBjb25zdCBSZWdpc3Rl
cklEIHJlZ1QyID0gTUlQU1JlZ2lzdGVyczo6dDQ7CisgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgaW5pdGlhbFN0YXJ0ID0gTUlQU1JlZ2lzdGVyczo6dDU7CiAKICAgICBzdGF0aWMgY29uc3Qg
UmVnaXN0ZXJJRCByZXR1cm5SZWdpc3RlciA9IE1JUFNSZWdpc3RlcnM6OnYwOwogICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIHJldHVyblJlZ2lzdGVyMiA9IE1JUFNSZWdpc3RlcnM6OnYxOwpA
QCAtMjQwNSwxNCArMjQwNSw0NiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGlj
IFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBqdW1wKCkubGlua1RvKGxvb3BIZWFkLCB0aGlzKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtYXRjaGVkLmxpbmsodGhpcyk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QqIHBv
aW50ZXIgPSBnZXRCb3llck1vb3JlQnl0ZVZlY3RvcihvcC5tX2JtSW5mby0+aW5kZXgoKSwgbWFw
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhdXRvKiBwb2ludGVyID0gZ2V0
Qm95ZXJNb29yZUJpdG1hcChtYXApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFM
b2dMbklmKE9wdGlvbnM6OnZlcmJvc2VSZWdFeHBDb21waWxhdGlvbigpLCAiRm91bmQgYml0bWFw
IGxvb2thaGVhZCBjb3VudDooIiwgbWFwQ291bnQsICIpLHJhbmdlOlsiLCBiZWdpbkluZGV4LCAi
LCAiLCBlbmRJbmRleCwgIikiKTsKIAorI2lmIENQVShBUk02NCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihCb3llck1vb3JlQml0bWFwOjpNYXA6Oldv
cmRUeXBlKSA9PSBzaXplb2YodWludDY0X3QpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGF0aWNfYXNzZXJ0KDEgPDwgNiA9PSA2NCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhdGljX2Fzc2VydCgxIDw8ICg2ICsgMSkgPT0gQm95ZXJNb29yZUJpdG1hcDo6TWFwOjpz
aXplKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihw
b2ludGVyKSwgcmVnVDEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gbG9vcEhl
YWQgPSBsYWJlbCgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRDaGFyYWN0ZXIo
bV9jaGVja2VkT2Zmc2V0IC0gZW5kSW5kZXggKyAxLCByZWdUMCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXh0cmFjdFVuc2lnbmVkQml0ZmllbGQzMihyZWdUMCwgVHJ1c3RlZEltbTMy
KDYpLCBUcnVzdGVkSW1tMzIoMSksIHJlZ1QyKTsgLy8gRXh0cmFjdCAxIGJpdCBmb3IgaW5kZXgu
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZDY0KEJhc2VJbmRleChyZWdUMSwgcmVn
VDIsIFRpbWVzRWlnaHQpLCByZWdUMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJz
aGlmdDY0KHJlZ1QwLCByZWdUMik7IC8vIFdlIGNhbiBpZ25vcmUgdXBwZXIgYml0cyBhbmQgb25s
eSBsb3dlciA2Yml0cyBhcmUgZWZmZWN0aXZlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGF1dG8gbWF0Y2hlZCA9IGJyYW5jaFRlc3Q2NChOb25aZXJvLCByZWdUMiwgVHJ1c3RlZEltbTMy
KDEpKTsKKyNlbGlmIENQVShYODZfNjQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dGljX2Fzc2VydChzaXplb2YoQm95ZXJNb29yZUJpdG1hcDo6TWFwOjpXb3JkVHlwZSkgPT0gc2l6
ZW9mKHVpbnQ2NF90KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2Vy
dCgxIDw8IDYgPT0gNjQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19hc3Nl
cnQoMSA8PCAoNiArIDEpID09IEJveWVyTW9vcmVCaXRtYXA6Ok1hcDo6c2l6ZSgpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIocG9pbnRlciksIHJlZ1Qx
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGxvb3BIZWFkID0gbGFiZWwoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkQ2hhcmFjdGVyKG1fY2hlY2tlZE9mZnNl
dCAtIGVuZEluZGV4ICsgMSwgcmVnVDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1v
dmUocmVnVDAsIHJlZ1QyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cnNoaWZ0MzIo
VHJ1c3RlZEltbTMyKDYpLCByZWdUMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5k
MzIoVHJ1c3RlZEltbTMyKDEpLCByZWdUMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bG9hZDY0KEJhc2VJbmRleChyZWdUMSwgcmVnVDAsIFRpbWVzRWlnaHQpLCByZWdUMCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBtYXRjaGVkID0gYnJhbmNoVGVzdEJpdDY0KE5v
blplcm8sIHJlZ1QwLCByZWdUMik7CisjZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKEJveWVyTW9vcmVCaXRtYXA6Ok1hcDo6V29yZFR5cGUpID09
IHNpemVvZih1aW50MzJfdCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19h
c3NlcnQoMSA8PCA1ID09IDMyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNf
YXNzZXJ0KDEgPDwgKDUgKyAyKSA9PSBCb3llck1vb3JlQml0bWFwOjpNYXA6OnNpemUoKSk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKHBvaW50ZXIpLCBy
ZWdUMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBsb29wSGVhZCA9IGxhYmVs
KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZENoYXJhY3RlcihtX2NoZWNrZWRP
ZmZzZXQgLSBlbmRJbmRleCArIDEsIHJlZ1QwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhbmQzMihUcnVzdGVkSW1tMzIoQm95ZXJNb29yZUJpdG1hcDo6bWFwTWFzayksIHJlZ1QwLCBy
ZWdUMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBtYXRjaGVkID0gYnJhbmNo
VGVzdDgoTm9uWmVybywgQmFzZUluZGV4KHJlZ1QxLCByZWdUMCwgVGltZXNPbmUpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtb3ZlKHJlZ1QwLCByZWdUMik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdXJzaGlmdDMyKFRydXN0ZWRJbW0zMig1KSwgcmVnVDApOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFuZDMyKFRydXN0ZWRJbW0zMigwYjExKSwgcmVnVDApOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQzMihCYXNlSW5kZXgocmVnVDEsIHJlZ1Qw
LCBUaW1lc0ZvdXIpLCByZWdUMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJzaGlm
dDMyKHJlZ1QwLCByZWdUMik7IC8vIFdlIGNhbiBpZ25vcmUgdXBwZXIgYml0cyBhbmQgb25seSBs
b3dlciA1Yml0cyBhcmUgZWZmZWN0aXZlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1
dG8gbWF0Y2hlZCA9IGJyYW5jaFRlc3QzMihOb25aZXJvLCByZWdUMiwgVHJ1c3RlZEltbTMyKDEp
KTsKKyNlbmRpZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wLm1fanVtcHMuYXBwZW5k
KGp1bXBJZk5vQXZhaWxhYmxlSW5wdXQoZW5kSW5kZXggLSBiZWdpbkluZGV4KSk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAganVtcCgpLmxpbmtUbyhsb29wSGVhZCwgdGhpcyk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZC5saW5rKHRoaXMpOwpAQCAtMzgyMiw3ICsz
ODU0LDYgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbywg
cHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAgICAgICBhdXRvIGJtSW5mbyA9IEJveWVy
TW9vcmVJbmZvOjpjcmVhdGUoc3RkOjptaW48dW5zaWduZWQ+KGRpc2p1bmN0aW9uLT5tX21pbmlt
dW1TaXplLCBCb3llck1vb3JlSW5mbzo6bWF4TGVuZ3RoKSk7CiAgICAgICAgICAgICBpZiAoY29s
bGVjdEJveWVyTW9vcmVJbmZvKGRpc2p1bmN0aW9uLCBjdXJyZW50QWx0ZXJuYXRpdmVJbmRleCwg
Ym1JbmZvLmdldCgpKSkgewogICAgICAgICAgICAgICAgIG1fb3BzLmxhc3QoKS5tX2JtSW5mbyA9
IGJtSW5mby5wdHIoKTsKLSAgICAgICAgICAgICAgICBibUluZm8tPnNldEluZGV4KG1fYm1JbmZv
cy5zaXplKCkpOwogICAgICAgICAgICAgICAgIG1fYm1JbmZvcy5hcHBlbmQoV1RGTW92ZShibUlu
Zm8pKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMzkxOCwxMyArMzk0OSwxMyBAQCBj
bGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1h
Y3JvQXNzZW1ibGVyIHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgY29uc3Qg
dWludDhfdCogZ2V0Qm95ZXJNb29yZUJ5dGVWZWN0b3IodW5zaWduZWQgaW5kZXgsIGNvbnN0IEJv
eWVyTW9vcmVCaXRtYXA6Ok1hcCYgbWFwKQorICAgIGNvbnN0IEJveWVyTW9vcmVCaXRtYXA6Ok1h
cDo6V29yZFR5cGUqIGdldEJveWVyTW9vcmVCaXRtYXAoY29uc3QgQm95ZXJNb29yZUJpdG1hcDo6
TWFwJiBtYXApCiAgICAgewotICAgICAgICBhdXRvIHZlY3RvciA9IG1ha2VVbmlxdWVSZWY8Qm95
ZXJNb29yZUJ5dGVWZWN0b3I+KG1hcCk7Ci0gICAgICAgIGlmIChjb25zdCBhdXRvKiBleGlzdGlu
Z1BvaW50ZXIgPSBtX2NvZGVCbG9jay50cnlSZXVzZUJveWVyTW9vcmVCeXRlVmVjdG9yKGluZGV4
LCB2ZWN0b3IuZ2V0KCkpKQorICAgICAgICBpZiAoY29uc3QgYXV0byogZXhpc3RpbmdQb2ludGVy
ID0gbV9jb2RlQmxvY2sudHJ5UmV1c2VCb3llck1vb3JlQml0bWFwKG1hcCkpCiAgICAgICAgICAg
IHJldHVybiBleGlzdGluZ1BvaW50ZXI7Ci0gICAgICAgIGNvbnN0IHVpbnQ4X3QqIHBvaW50ZXIg
PSB2ZWN0b3ItPmRhdGEoKTsKLSAgICAgICAgbV9ibVZlY3Rvci5hcHBlbmQoV1RGTW92ZSh2ZWN0
b3IpKTsKKyAgICAgICAgYXV0byBoZWFwTWFwID0gbWFrZVVuaXF1ZVJlZjxCb3llck1vb3JlQml0
bWFwOjpNYXA+KG1hcCk7CisgICAgICAgIGNvbnN0IGF1dG8qIHBvaW50ZXIgPSBoZWFwTWFwLT5z
dG9yYWdlKCk7CisgICAgICAgIG1fYm1NYXBzLmFwcGVuZChXVEZNb3ZlKGhlYXBNYXApKTsKICAg
ICAgICAgcmV0dXJuIHBvaW50ZXI7CiAgICAgfQogCkBAIC0zOTkzLDYgKzQwMjQsNyBAQCBjbGFz
cyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3Jv
QXNzZW1ibGVyIHsKICAgICAgICAgcHVzaChBUk1SZWdpc3RlcnM6OnI1KTsKICAgICAgICAgcHVz
aChBUk1SZWdpc3RlcnM6OnI2KTsKICAgICAgICAgcHVzaChBUk1SZWdpc3RlcnM6OnI4KTsKKyAg
ICAgICAgcHVzaChBUk1SZWdpc3RlcnM6OnIxMCk7CiAjZWxpZiBDUFUoTUlQUykKICAgICAgICAg
Ly8gRG8gbm90aGluZy4KICNlbmRpZgpAQCAtNDAzNSw2ICs0MDY3LDcgQEAgY2xhc3MgWWFyckdl
bmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbywgcHJpdmF0ZSBNYWNyb0Fzc2VtYmxl
ciB7CiAgICAgICAgICAgICAgICAgcG9wUGFpcihmcmFtZVBvaW50ZXJSZWdpc3RlciwgbGlua1Jl
Z2lzdGVyKTsKICAgICAgICAgfQogI2VsaWYgQ1BVKEFSTV9USFVNQjIpCisgICAgICAgIHBvcChB
Uk1SZWdpc3RlcnM6OnIxMCk7CiAgICAgICAgIHBvcChBUk1SZWdpc3RlcnM6OnI4KTsKICAgICAg
ICAgcG9wKEFSTVJlZ2lzdGVyczo6cjYpOwogICAgICAgICBwb3AoQVJNUmVnaXN0ZXJzOjpyNSk7
CkBAIC00MjA1LDE0ICs0MjM4LDE0IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJs
aWMgWWFyckpJVEluZm8sIHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogCiAgICAgICAgIGlmICht
X2NvbXBpbGVNb2RlID09IEpJVENvbXBpbGVNb2RlOjpNYXRjaE9ubHkpIHsKICAgICAgICAgICAg
IGlmIChtX2NoYXJTaXplID09IENoYXJTaXplOjpDaGFyOCkKLSAgICAgICAgICAgICAgICBjb2Rl
QmxvY2suc2V0OEJpdENvZGVNYXRjaE9ubHkoRklOQUxJWkVfUkVHRVhQX0NPREUobGlua0J1ZmZl
ciwgWWFyck1hdGNoT25seThCaXRQdHJUYWcsICJNYXRjaC1vbmx5IDgtYml0IHJlZ3VsYXIgZXhw
cmVzc2lvbiIpLCBXVEZNb3ZlKG1fYm1WZWN0b3IpKTsKKyAgICAgICAgICAgICAgICBjb2RlQmxv
Y2suc2V0OEJpdENvZGVNYXRjaE9ubHkoRklOQUxJWkVfUkVHRVhQX0NPREUobGlua0J1ZmZlciwg
WWFyck1hdGNoT25seThCaXRQdHJUYWcsICJNYXRjaC1vbmx5IDgtYml0IHJlZ3VsYXIgZXhwcmVz
c2lvbiIpLCBXVEZNb3ZlKG1fYm1NYXBzKSk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgY29kZUJsb2NrLnNldDE2Qml0Q29kZU1hdGNoT25seShGSU5BTElaRV9SRUdFWFBfQ09E
RShsaW5rQnVmZmVyLCBZYXJyTWF0Y2hPbmx5MTZCaXRQdHJUYWcsICJNYXRjaC1vbmx5IDE2LWJp
dCByZWd1bGFyIGV4cHJlc3Npb24iKSwgV1RGTW92ZShtX2JtVmVjdG9yKSk7CisgICAgICAgICAg
ICAgICAgY29kZUJsb2NrLnNldDE2Qml0Q29kZU1hdGNoT25seShGSU5BTElaRV9SRUdFWFBfQ09E
RShsaW5rQnVmZmVyLCBZYXJyTWF0Y2hPbmx5MTZCaXRQdHJUYWcsICJNYXRjaC1vbmx5IDE2LWJp
dCByZWd1bGFyIGV4cHJlc3Npb24iKSwgV1RGTW92ZShtX2JtTWFwcykpOwogICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgaWYgKG1fY2hhclNpemUgPT0gQ2hhclNpemU6OkNoYXI4KQotICAg
ICAgICAgICAgICAgIGNvZGVCbG9jay5zZXQ4Qml0Q29kZShGSU5BTElaRV9SRUdFWFBfQ09ERShs
aW5rQnVmZmVyLCBZYXJyOEJpdFB0clRhZywgIjgtYml0IHJlZ3VsYXIgZXhwcmVzc2lvbiIpLCBX
VEZNb3ZlKG1fYm1WZWN0b3IpKTsKKyAgICAgICAgICAgICAgICBjb2RlQmxvY2suc2V0OEJpdENv
ZGUoRklOQUxJWkVfUkVHRVhQX0NPREUobGlua0J1ZmZlciwgWWFycjhCaXRQdHJUYWcsICI4LWJp
dCByZWd1bGFyIGV4cHJlc3Npb24iKSwgV1RGTW92ZShtX2JtTWFwcykpOwogICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIGNvZGVCbG9jay5zZXQxNkJpdENvZGUoRklOQUxJWkVfUkVH
RVhQX0NPREUobGlua0J1ZmZlciwgWWFycjE2Qml0UHRyVGFnLCAiMTYtYml0IHJlZ3VsYXIgZXhw
cmVzc2lvbiIpLCBXVEZNb3ZlKG1fYm1WZWN0b3IpKTsKKyAgICAgICAgICAgICAgICBjb2RlQmxv
Y2suc2V0MTZCaXRDb2RlKEZJTkFMSVpFX1JFR0VYUF9DT0RFKGxpbmtCdWZmZXIsIFlhcnIxNkJp
dFB0clRhZywgIjE2LWJpdCByZWd1bGFyIGV4cHJlc3Npb24iKSwgV1RGTW92ZShtX2JtTWFwcykp
OwogICAgICAgICB9CiAgICAgICAgIGlmIChtX2ZhaWx1cmVSZWFzb24pCiAgICAgICAgICAgICBj
b2RlQmxvY2suc2V0RmFsbEJhY2tXaXRoRmFpbHVyZVJlYXNvbigqbV9mYWlsdXJlUmVhc29uKTsK
QEAgLTQ0NTEsNyArNDQ4NCw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMg
WWFyckpJVEluZm8sIHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogICAgIC8vIFRoZSByZWd1bGFy
IGV4cHJlc3Npb24gZXhwcmVzc2VkIGFzIGEgbGluZWFyIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMu
CiAgICAgVmVjdG9yPFlhcnJPcCwgMTI4PiBtX29wczsKICAgICBWZWN0b3I8VW5pcXVlUmVmPEJv
eWVyTW9vcmVJbmZvPiwgND4gbV9ibUluZm9zOwotICAgIFZlY3RvcjxVbmlxdWVSZWY8Qm95ZXJN
b29yZUJ5dGVWZWN0b3I+PiBtX2JtVmVjdG9yOworICAgIFZlY3RvcjxVbmlxdWVSZWY8Qm95ZXJN
b29yZUJpdG1hcDo6TWFwPj4gbV9ibU1hcHM7CiAKICAgICAvLyBUaGlzIHJlY29yZHMgdGhlIGN1
cnJlbnQgaW5wdXQgb2Zmc2V0IGJlaW5nIGFwcGxpZWQgZHVlIHRvIHRoZSBjdXJyZW50CiAgICAg
Ly8gc2V0IG9mIGFsdGVybmF0aXZlcyB3ZSBhcmUgbmVzdGVkIHdpdGhpbi4gRS5nLiB3aGVuIG1h
dGNoaW5nIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCmluZGV4IDU5MjliMTJi
ZjU4ODVhMmRkMDhhMDNkNzA0N2EzMDgzNTNkNTY5ZDEuLjU4OWY4NjMzMmZiMzUyNDE0M2Y3YjIy
OTE2MDcxMjQ5YjAwYjZkYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKQEAg
LTkwLDE4ICs5MCw2IEBAIGNsYXNzIEJveWVyTW9vcmVCaXRtYXAgewogICAgIGJvb2wgbV9pc01h
c2tFZmZlY3RpdmUgeyBmYWxzZSB9OwogfTsKIAotY2xhc3MgQm95ZXJNb29yZUJ5dGVWZWN0b3Ig
OiBwdWJsaWMgc3RkOjphcnJheTx1aW50OF90LCBCb3llck1vb3JlQml0bWFwOjptYXBTaXplPiB7
Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgQm95ZXJNb29yZUJ5
dGVWZWN0b3IoY29uc3QgQm95ZXJNb29yZUJpdG1hcDo6TWFwJiBtYXApCi0gICAgewotICAgICAg
ICBmaWxsKDApOwotICAgICAgICBtYXAuZm9yRWFjaFNldEJpdChbJl0odW5zaWduZWQgaW5kZXgp
IHsKLSAgICAgICAgICAgICgqdGhpcylbaW5kZXhdID0gMTsKLSAgICAgICAgfSk7Ci0gICAgfQot
fTsKLQogI2lmIENQVShBUk02NEUpCiBleHRlcm4gIkMiIEVuY29kZWRNYXRjaFJlc3VsdCB2bUVu
dHJ5VG9ZYXJySklUKGNvbnN0IHZvaWQqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVS
ZWdpc3RlciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNo
aW5nQ29udGV4dCwgY29uc3Qgdm9pZCogY29kZVB0cik7CiBleHRlcm4gIkMiIHZvaWQgdm1FbnRy
eVRvWWFyckpJVEFmdGVyKHZvaWQpOwpAQCAtMTI0LDE0ICsxMTIsMTQgQEAgY2xhc3MgWWFyckNv
ZGVCbG9jayB7CiAKICAgICBib29sIGhhczhCaXRDb2RlKCkgeyByZXR1cm4gbV9yZWY4LnNpemUo
KTsgfQogICAgIGJvb2wgaGFzMTZCaXRDb2RlKCkgeyByZXR1cm4gbV9yZWYxNi5zaXplKCk7IH0K
LSAgICB2b2lkIHNldDhCaXRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxZYXJyOEJpdFB0clRh
Zz4gcmVmLCBWZWN0b3I8VW5pcXVlUmVmPEJveWVyTW9vcmVCeXRlVmVjdG9yPj4gbWFwcykKKyAg
ICB2b2lkIHNldDhCaXRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxZYXJyOEJpdFB0clRhZz4g
cmVmLCBWZWN0b3I8VW5pcXVlUmVmPEJveWVyTW9vcmVCaXRtYXA6Ok1hcD4+IG1hcHMpCiAgICAg
ewogICAgICAgICBtX3JlZjggPSByZWY7CiAgICAgICAgIG1fbWFwcy5yZXNlcnZlQ2FwYWNpdHko
bV9tYXBzLnNpemUoKSArIG1hcHMuc2l6ZSgpKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRl
eCA9IDA7IGluZGV4IDwgbWFwcy5zaXplKCk7ICsraW5kZXgpCiAgICAgICAgICAgICBtX21hcHMu
dW5jaGVja2VkQXBwZW5kKFdURk1vdmUobWFwc1tpbmRleF0pKTsKICAgICB9Ci0gICAgdm9pZCBz
ZXQxNkJpdENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFlhcnIxNkJpdFB0clRhZz4gcmVmLCBW
ZWN0b3I8VW5pcXVlUmVmPEJveWVyTW9vcmVCeXRlVmVjdG9yPj4gbWFwcykKKyAgICB2b2lkIHNl
dDE2Qml0Q29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY8WWFycjE2Qml0UHRyVGFnPiByZWYsIFZl
Y3RvcjxVbmlxdWVSZWY8Qm95ZXJNb29yZUJpdG1hcDo6TWFwPj4gbWFwcykKICAgICB7CiAgICAg
ICAgIG1fcmVmMTYgPSByZWY7CiAgICAgICAgIG1fbWFwcy5yZXNlcnZlQ2FwYWNpdHkobV9tYXBz
LnNpemUoKSArIG1hcHMuc2l6ZSgpKTsKQEAgLTE0MSwxNCArMTI5LDE0IEBAIGNsYXNzIFlhcnJD
b2RlQmxvY2sgewogCiAgICAgYm9vbCBoYXM4Qml0Q29kZU1hdGNoT25seSgpIHsgcmV0dXJuIG1f
bWF0Y2hPbmx5OC5zaXplKCk7IH0KICAgICBib29sIGhhczE2Qml0Q29kZU1hdGNoT25seSgpIHsg
cmV0dXJuIG1fbWF0Y2hPbmx5MTYuc2l6ZSgpOyB9Ci0gICAgdm9pZCBzZXQ4Qml0Q29kZU1hdGNo
T25seShNYWNyb0Fzc2VtYmxlckNvZGVSZWY8WWFyck1hdGNoT25seThCaXRQdHJUYWc+IG1hdGNo
T25seSwgVmVjdG9yPFVuaXF1ZVJlZjxCb3llck1vb3JlQnl0ZVZlY3Rvcj4+IG1hcHMpCisgICAg
dm9pZCBzZXQ4Qml0Q29kZU1hdGNoT25seShNYWNyb0Fzc2VtYmxlckNvZGVSZWY8WWFyck1hdGNo
T25seThCaXRQdHJUYWc+IG1hdGNoT25seSwgVmVjdG9yPFVuaXF1ZVJlZjxCb3llck1vb3JlQml0
bWFwOjpNYXA+PiBtYXBzKQogICAgIHsKICAgICAgICAgbV9tYXRjaE9ubHk4ID0gbWF0Y2hPbmx5
OwogICAgICAgICBtX21hcHMucmVzZXJ2ZUNhcGFjaXR5KG1fbWFwcy5zaXplKCkgKyBtYXBzLnNp
emUoKSk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IG1hcHMuc2l6
ZSgpOyArK2luZGV4KQogICAgICAgICAgICAgbV9tYXBzLnVuY2hlY2tlZEFwcGVuZChXVEZNb3Zl
KG1hcHNbaW5kZXhdKSk7CiAgICAgfQotICAgIHZvaWQgc2V0MTZCaXRDb2RlTWF0Y2hPbmx5KE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxZYXJyTWF0Y2hPbmx5MTZCaXRQdHJUYWc+IG1hdGNoT25seSwg
VmVjdG9yPFVuaXF1ZVJlZjxCb3llck1vb3JlQnl0ZVZlY3Rvcj4+IG1hcHMpCisgICAgdm9pZCBz
ZXQxNkJpdENvZGVNYXRjaE9ubHkoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFlhcnJNYXRjaE9ubHkx
NkJpdFB0clRhZz4gbWF0Y2hPbmx5LCBWZWN0b3I8VW5pcXVlUmVmPEJveWVyTW9vcmVCaXRtYXA6
Ok1hcD4+IG1hcHMpCiAgICAgewogICAgICAgICBtX21hdGNoT25seTE2ID0gbWF0Y2hPbmx5Owog
ICAgICAgICBtX21hcHMucmVzZXJ2ZUNhcGFjaXR5KG1fbWFwcy5zaXplKCkgKyBtYXBzLnNpemUo
KSk7CkBAIC0yNTAsMTEgKzIzOCwxMSBAQCBjbGFzcyBZYXJyQ29kZUJsb2NrIHsKICAgICAgICAg
bV9mYWlsdXJlUmVhc29uID0gc3RkOjpudWxsb3B0OwogICAgIH0KIAotICAgIGNvbnN0IHVpbnQ4
X3QqIHRyeVJldXNlQm95ZXJNb29yZUJ5dGVWZWN0b3IodW5zaWduZWQgaW5kZXgsIEJveWVyTW9v
cmVCeXRlVmVjdG9yJiB2ZWN0b3IpIGNvbnN0CisgICAgY29uc3QgQm95ZXJNb29yZUJpdG1hcDo6
TWFwOjpXb3JkVHlwZSogdHJ5UmV1c2VCb3llck1vb3JlQml0bWFwKGNvbnN0IEJveWVyTW9vcmVC
aXRtYXA6Ok1hcCYgbWFwKSBjb25zdAogICAgIHsKLSAgICAgICAgaWYgKGluZGV4IDwgbV9tYXBz
LnNpemUoKSkgewotICAgICAgICAgICAgaWYgKG1fbWFwc1tpbmRleF0uZ2V0KCkgPT0gdmVjdG9y
KQotICAgICAgICAgICAgICAgIHJldHVybiBtX21hcHNbaW5kZXhdLT5kYXRhKCk7CisgICAgICAg
IGZvciAoYXV0byYgc3RvcmVkIDogbV9tYXBzKSB7CisgICAgICAgICAgICBpZiAoc3RvcmVkLmdl
dCgpID09IG1hcCkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RvcmVkLT5zdG9yYWdlKCk7CiAg
ICAgICAgIH0KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtMjY0LDcgKzI1Miw3
IEBAIGNsYXNzIFlhcnJDb2RlQmxvY2sgewogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxZYXJy
MTZCaXRQdHJUYWc+IG1fcmVmMTY7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFlhcnJNYXRj
aE9ubHk4Qml0UHRyVGFnPiBtX21hdGNoT25seTg7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
PFlhcnJNYXRjaE9ubHkxNkJpdFB0clRhZz4gbV9tYXRjaE9ubHkxNjsKLSAgICBWZWN0b3I8VW5p
cXVlUmVmPEJveWVyTW9vcmVCeXRlVmVjdG9yPj4gbV9tYXBzOworICAgIFZlY3RvcjxVbmlxdWVS
ZWY8Qm95ZXJNb29yZUJpdG1hcDo6TWFwPj4gbV9tYXBzOwogICAgIGJvb2wgbV91c2VzUGF0dGVy
bkNvbnRleHRCdWZmZXIgeyBmYWxzZSB9OwogICAgIHN0ZDo6b3B0aW9uYWw8SklURmFpbHVyZVJl
YXNvbj4gbV9mYWlsdXJlUmVhc29uOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Jp
dG1hcC5oIGIvU291cmNlL1dURi93dGYvQml0bWFwLmgKaW5kZXggYzUwMTEwYjVkZWExM2NlNGJh
NWJhZGEzZTQ5ZWI3MWY1YzFkMjdhMy4uZjY4MGU1NTYwOTlhODU4YjczMTZlYTBhZTA4NjA5NDQy
MDBiMTNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQml0bWFwLmgKKysrIGIvU291cmNl
L1dURi93dGYvQml0bWFwLmgKQEAgLTMzLDEyICszMywxNCBAQCBuYW1lc3BhY2UgV1RGIHsKIHRl
bXBsYXRlPHNpemVfdCBzaXplPgogdXNpbmcgQml0bWFwV29yZFR5cGUgPSBzdGQ6OmNvbmRpdGlv
bmFsX3Q8KHNpemUgPD0gMzIgJiYgc2l6ZW9mKFVDUFVSZWdpc3RlcikgPiBzaXplb2YodWludDMy
X3QpKSwgdWludDMyX3QsIFVDUFVSZWdpc3Rlcj47CiAKLXRlbXBsYXRlPHNpemVfdCBiaXRtYXBT
aXplLCB0eXBlbmFtZSBXb3JkVHlwZSA9IEJpdG1hcFdvcmRUeXBlPGJpdG1hcFNpemU+PgordGVt
cGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFBhc3NlZFdvcmRUeXBlID0gQml0bWFw
V29yZFR5cGU8Yml0bWFwU2l6ZT4+CiBjbGFzcyBCaXRtYXAgZmluYWwgewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogICAgIAotICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFdvcmRUeXBl
KSA8PSBzaXplb2YoVUNQVVJlZ2lzdGVyKSwgIldvcmRUeXBlIG11c3Qgbm90IGJlIGJpZ2dlciB0
aGFuIHRoZSBDUFUgYXRvbWljIHdvcmQgc2l6ZSIpOwogcHVibGljOgorICAgIHVzaW5nIFdvcmRU
eXBlID0gUGFzc2VkV29yZFR5cGU7CisKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihXb3JkVHlw
ZSkgPD0gc2l6ZW9mKFVDUFVSZWdpc3RlciksICJXb3JkVHlwZSBtdXN0IG5vdCBiZSBiaWdnZXIg
dGhhbiB0aGUgQ1BVIGF0b21pYyB3b3JkIHNpemUiKTsKICAgICBjb25zdGV4cHIgQml0bWFwKCk7
CiAKICAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBzaXplKCkKQEAgLTEzMyw2ICsxMzUsOSBA
QCBjbGFzcyBCaXRtYXAgZmluYWwgewogCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQp
IGNvbnN0OwogCisgICAgV29yZFR5cGUqIHN0b3JhZ2UoKSB7IHJldHVybiBiaXRzLmRhdGEoKTsg
fQorICAgIGNvbnN0IFdvcmRUeXBlKiBzdG9yYWdlKCkgY29uc3QgeyByZXR1cm4gYml0cy5kYXRh
KCk7IH0KKwogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHdvcmRTaXpl
ID0gc2l6ZW9mKFdvcmRUeXBlKSAqIDg7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB3
b3JkcyA9IChiaXRtYXBTaXplICsgd29yZFNpemUgLSAxKSAvIHdvcmRTaXplOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434691</attachid>
            <date>2021-07-31 00:14:13 -0700</date>
            <delta_ts>2021-07-31 00:20:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228676-20210731001412.patch</filename>
            <type>text/plain</type>
            <size>17710</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MjRiMGU0NWFiYWUzYjNiNTZjMjBhNWZhNmIwN2M4MTZjYTRlMjMxLi45N2JmMWI5ZTQ1ZmU5NmY1
NzU2MjQxODkyNWYzN2VhMzUzNTc5NTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAyMS0wNy0zMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFlhcnIgc2hvdWxkIHVzZSBCaXRtYXAgaW5zdGVhZCBvZiBCeXRl
VmVjdG9yIGZvciBCb3llck1vb3JlIHNlYXJjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2Ugb2JzZXJ2ZWQgdGhhdCB1c2luZyBCaXRtYXAgaW5zdGVh
ZCBvZiBCeXRlVmVjdG9yIGRvZXMgbm90IHBvc2UgcGVyZm9ybWFuY2UKKyAgICAgICAgaXNzdWUu
IEl0IHdhcyBuZXV0cmFsIGluIGpxdWVyeS10b2RvbXZjLXJlZ2V4cC5qcy4gSW4gdGhhdCBjYXNl
LCB3ZSBzaG91bGQgdXNlCisgICAgICAgIEJpdG1hcCBzaW5jZSBpdCBpcyA4eCBzbWFsbGVyLgor
CisgICAgICAgIFdlIGFsc28gc2VhcmNoIHJldXNhYmxlIEJpdG1hcCBmcm9tIFZlY3RvciBzaW5j
ZSBjb21wYXJpbmcgMTI4Yml0IEJpdG1hcCBpcworICAgICAgICBzdXBlciBmYXN0IHNvIHdlIGRv
IG5vdCBuZWVkIHRvIGJvdGhlciBhYm91dCBsaW5lYXIgc2VhcmNoIGhlcmUgKCMgb2YgQml0bWFw
CisgICAgICAgIGlzIGN1cnJlbnRseSB1cCB0byA0KS4KKworICAgICAgICBUbyBtYWtlIGNvZGUg
c2ltcGxpZmllZCwgd2UgYWRkIHJlZ1QyIHRvIEFSTXY3IGFuZCBNSVBTIGJhY2tlbmQgb2YgWWFy
ckpJVC4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRv
VCAgICAgICAgICAgICAgICAgICAgIFBhdGNoZWQKKworICAgICAgICAgICAganF1ZXJ5LXRvZG9t
dmMtcmVnZXhwICAgICAgNTU1Ljk1NjYrLTAuODg1NiAgICAgICAgICA1NTUuMDczNystMC45NzE3
CisKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQuY3BwOgorICAgICAgICAoSlNDOjpZYXJyOjpCb3ll
ck1vb3JlSW5mbzo6aW5kZXggY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpZYXJyOjpC
b3llck1vb3JlSW5mbzo6c2V0SW5kZXgpOiBEZWxldGVkLgorICAgICAgICAqIHlhcnIvWWFyckpJ
VC5oOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyQ29kZUJsb2NrOjpzZXQ4Qml0Q29kZSk6Cisg
ICAgICAgIChKU0M6OllhcnI6OllhcnJDb2RlQmxvY2s6OnNldDE2Qml0Q29kZSk6CisgICAgICAg
IChKU0M6OllhcnI6OllhcnJDb2RlQmxvY2s6OnNldDhCaXRDb2RlTWF0Y2hPbmx5KToKKyAgICAg
ICAgKEpTQzo6WWFycjo6WWFyckNvZGVCbG9jazo6c2V0MTZCaXRDb2RlTWF0Y2hPbmx5KToKKyAg
ICAgICAgKEpTQzo6WWFycjo6WWFyckNvZGVCbG9jazo6dHJ5UmV1c2VCb3llck1vb3JlQml0bWFw
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6WWFycjo6Qm95ZXJNb29yZUJ5dGVWZWN0b3I6OkJveWVy
TW9vcmVCeXRlVmVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6WWFycjo6WWFyckNvZGVC
bG9jazo6dHJ5UmV1c2VCb3llck1vb3JlQnl0ZVZlY3RvciBjb25zdCk6IERlbGV0ZWQuCisKIDIw
MjEtMDctMzAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBb
SlNDXSBicmFuY2hUZXN0OCBzaG91bGQgbm90IGVtaXQgdHN0IGZvciBaZXJvL05vblplcm8gY2Fz
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggYWZkOTdjZjZmZTFjOTRmYjVkNDI3YTdkZmQ1ZjAzZDQ0ZmY3MDIwZC4uNzhiNjA1
MWY2NzlkNjZiZGZjMGRlNzBiMGQyODBmNTAzMzgyZGE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAyMS0wNy0zMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAg
IFtKU0NdIFlhcnIgc2hvdWxkIHVzZSBCaXRtYXAgaW5zdGVhZCBvZiBCeXRlVmVjdG9yIGZvciBC
b3llck1vb3JlIHNlYXJjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI4Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3dGYvQml0bWFwLmg6CisKIDIwMjEtMDctMzAgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciAnQ3Jvc3Mt
T3JpZ2luLU9wZW5lci1Qb2xpY3knIEhUVFAgaGVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJKSVQuY3BwCmluZGV4IDBhOTI0MDYxNmM2ODRiZDBkY2Y0MzhkYWUxOTdiMzZmZTRmNTlj
Y2IuLjE5NWIyMmMwMzRkMzRkMDg0YzFkN2MxMTk5MTNkM2NkN2M4ODViNWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCkBAIC02OSwxMiArNjksNiBAQCBjbGFzcyBCb3ll
ck1vb3JlSW5mbyB7CiAgICAgICAgIG1fY2hhcmFjdGVyc1tpbmRleF0uYWRkKGNoYXJhY3Rlcik7
CiAgICAgfQogCi0gICAgdW5zaWduZWQgaW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2luZGV4OyB9
Ci0gICAgdm9pZCBzZXRJbmRleCh1bnNpZ25lZCBpbmRleCkKLSAgICB7Ci0gICAgICAgIG1faW5k
ZXggPSBpbmRleDsKLSAgICB9Ci0KICAgICBzdGF0aWMgVW5pcXVlUmVmPEJveWVyTW9vcmVJbmZv
PiBjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1ha2VVbmlx
dWVSZWY8Qm95ZXJNb29yZUluZm8+KGxlbmd0aCk7CkBAIC04Nyw3ICs4MSw2IEBAIGNsYXNzIEJv
eWVyTW9vcmVJbmZvIHsKICAgICBzdGQ6OnR1cGxlPGludCwgdW5zaWduZWQsIHVuc2lnbmVkPiBm
aW5kQmVzdENoYXJhY3RlclNlcXVlbmNlKHVuc2lnbmVkIG51bWJlck9mQ2FuZGlkYXRlc0xpbWl0
KSBjb25zdDsKIAogICAgIFZlY3RvcjxCb3llck1vb3JlQml0bWFwPiBtX2NoYXJhY3RlcnM7Ci0g
ICAgdW5zaWduZWQgbV9pbmRleCB7IDAgfTsKIH07CiAKIHN0ZDo6dHVwbGU8aW50LCB1bnNpZ25l
ZCwgdW5zaWduZWQ+IEJveWVyTW9vcmVJbmZvOjpmaW5kQmVzdENoYXJhY3RlclNlcXVlbmNlKHVu
c2lnbmVkIG51bWJlck9mQ2FuZGlkYXRlc0xpbWl0KSBjb25zdApAQCAtMTY2LDcgKzE1OSwxMSBA
QCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRl
IE1hY3JvQXNzZW1ibGVyIHsKIAogICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QwID0g
QVJNUmVnaXN0ZXJzOjpyNDsKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMSA9IEFS
TVJlZ2lzdGVyczo6cjU7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaW5pdGlhbFN0YXJ0
ID0gQVJNUmVnaXN0ZXJzOjpyODsKKyAgICAvLyByNiBpcyByZXNlcnZlZCBmb3IgTWFjcm9Bc3Nl
bWJsZXJBUk12NywKKyAgICAvLyByNyBpcyBmcC4KKyAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJ
RCByZWdUMiA9IEFSTVJlZ2lzdGVyczo6cjg7CisgICAgLy8gcjkgaXMgc2IgaW4gRUFCSS4KKyAg
ICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBpbml0aWFsU3RhcnQgPSBBUk1SZWdpc3RlcnM6OnIx
MDsgLy8gcjEwIGlzIFNMLCBidXQgbm8gbG9uZ2VyIGEgc3BlY2lhbCByZWdpc3Rlci4KIAogICAg
IHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJldHVyblJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpy
MDsKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZXR1cm5SZWdpc3RlcjIgPSBBUk1SZWdp
c3RlcnM6OnIxOwpAQCAtMjA1LDkgKzIwMiwxMiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFs
IDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBsZW5ndGggPSBNSVBTUmVnaXN0ZXJzOjphMjsKICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBvdXRwdXQgPSBNSVBTUmVnaXN0ZXJzOjphMzsKIAotICAgIHN0
YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QwID0gTUlQU1JlZ2lzdGVyczo6dDQ7Ci0gICAgc3Rh
dGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDEgPSBNSVBTUmVnaXN0ZXJzOjp0NTsKLSAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBpbml0aWFsU3RhcnQgPSBNSVBTUmVnaXN0ZXJzOjp0NjsKKyAg
ICAvLyB0MCBpcyByZXNlcnZlZCBmb3IgTWFjcm9Bc3NlbWJsZXJNSVBTLgorICAgIC8vIHQxIGlz
IHJlc2VydmVkIGZvciBNYWNyb0Fzc2VtYmxlck1JUFMuCisgICAgc3RhdGljIGNvbnN0IFJlZ2lz
dGVySUQgcmVnVDAgPSBNSVBTUmVnaXN0ZXJzOjp0MjsKKyAgICBzdGF0aWMgY29uc3QgUmVnaXN0
ZXJJRCByZWdUMSA9IE1JUFNSZWdpc3RlcnM6OnQzOworICAgIHN0YXRpYyBjb25zdCBSZWdpc3Rl
cklEIHJlZ1QyID0gTUlQU1JlZ2lzdGVyczo6dDQ7CisgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgaW5pdGlhbFN0YXJ0ID0gTUlQU1JlZ2lzdGVyczo6dDU7CiAKICAgICBzdGF0aWMgY29uc3Qg
UmVnaXN0ZXJJRCByZXR1cm5SZWdpc3RlciA9IE1JUFNSZWdpc3RlcnM6OnYwOwogICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIHJldHVyblJlZ2lzdGVyMiA9IE1JUFNSZWdpc3RlcnM6OnYxOwpA
QCAtMjQwNSwxNCArMjQwNSw0MCBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGlj
IFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBqdW1wKCkubGlua1RvKGxvb3BIZWFkLCB0aGlzKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtYXRjaGVkLmxpbmsodGhpcyk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QqIHBv
aW50ZXIgPSBnZXRCb3llck1vb3JlQnl0ZVZlY3RvcihvcC5tX2JtSW5mby0+aW5kZXgoKSwgbWFw
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhdXRvKiBwb2ludGVyID0gZ2V0
Qm95ZXJNb29yZUJpdG1hcChtYXApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFM
b2dMbklmKE9wdGlvbnM6OnZlcmJvc2VSZWdFeHBDb21waWxhdGlvbigpLCAiRm91bmQgYml0bWFw
IGxvb2thaGVhZCBjb3VudDooIiwgbWFwQ291bnQsICIpLHJhbmdlOlsiLCBiZWdpbkluZGV4LCAi
LCAiLCBlbmRJbmRleCwgIikiKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdmUo
VHJ1c3RlZEltbVB0cihwb2ludGVyKSwgcmVnVDEpOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGF1dG8gbG9vcEhlYWQgPSBsYWJlbCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlYWRDaGFyYWN0ZXIobV9jaGVja2VkT2Zmc2V0IC0gZW5kSW5kZXggKyAxLCByZWdUMCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kMzIoVHJ1c3RlZEltbTMyKEJveWVyTW9vcmVC
aXRtYXA6Om1hcE1hc2spLCByZWdUMCwgcmVnVDApOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGF1dG8gbWF0Y2hlZCA9IGJyYW5jaFRlc3Q4KE5vblplcm8sIEJhc2VJbmRleChyZWdUMSwg
cmVnVDAsIFRpbWVzT25lKSk7CisjaWYgQ1BVKEFSTTY0KQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEJveWVyTW9vcmVCaXRtYXA6Ok1hcDo6V29yZFR5
cGUpID09IHNpemVvZih1aW50NjRfdCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YXRpY19hc3NlcnQoMSA8PCA2ID09IDY0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGF0aWNfYXNzZXJ0KDEgPDwgKDYgKyAxKSA9PSBCb3llck1vb3JlQml0bWFwOjpNYXA6OnNpemUo
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFjdFVuc2lnbmVkQml0ZmllbGQz
MihyZWdUMCwgVHJ1c3RlZEltbTMyKDYpLCBUcnVzdGVkSW1tMzIoMSksIHJlZ1QyKTsgLy8gRXh0
cmFjdCAxIGJpdCBmb3IgaW5kZXguCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZDY0
KEJhc2VJbmRleChyZWdUMSwgcmVnVDIsIFRpbWVzRWlnaHQpLCByZWdUMik7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdXJzaGlmdDY0KHJlZ1QwLCByZWdUMik7IC8vIFdlIGNhbiBpZ25v
cmUgdXBwZXIgYml0cyBhbmQgb25seSBsb3dlciA2Yml0cyBhcmUgZWZmZWN0aXZlLgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dG8gbWF0Y2hlZCA9IGJyYW5jaFRlc3Q2NChOb25aZXJv
LCByZWdUMiwgVHJ1c3RlZEltbTMyKDEpKTsKKyNlbGlmIENQVShYODZfNjQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoQm95ZXJNb29yZUJpdG1hcDo6
TWFwOjpXb3JkVHlwZSkgPT0gc2l6ZW9mKHVpbnQ2NF90KSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhdGljX2Fzc2VydCgxIDw8IDYgPT0gNjQpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXRpY19hc3NlcnQoMSA8PCAoNiArIDEpID09IEJveWVyTW9vcmVCaXRtYXA6
Ok1hcDo6c2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3ZlKHJlZ1QwLCBy
ZWdUMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJzaGlmdDMyKFRydXN0ZWRJbW0z
Mig2KSwgcmVnVDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZDMyKFRydXN0ZWRJ
bW0zMigxKSwgcmVnVDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQ2NChCYXNl
SW5kZXgocmVnVDEsIHJlZ1QwLCBUaW1lc0VpZ2h0KSwgcmVnVDApOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGF1dG8gbWF0Y2hlZCA9IGJyYW5jaFRlc3RCaXQ2NChOb25aZXJvLCByZWdU
MCwgcmVnVDIpOworI2Vsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfYXNz
ZXJ0KHNpemVvZihCb3llck1vb3JlQml0bWFwOjpNYXA6OldvcmRUeXBlKSA9PSBzaXplb2YodWlu
dDMyX3QpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KDEgPDwg
NSA9PSAzMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydCgxIDw8
ICg1ICsgMikgPT0gQm95ZXJNb29yZUJpdG1hcDo6TWFwOjpzaXplKCkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1vdmUocmVnVDAsIHJlZ1QyKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1cnNoaWZ0MzIoVHJ1c3RlZEltbTMyKDUpLCByZWdUMCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYW5kMzIoVHJ1c3RlZEltbTMyKDBiMTEpLCByZWdUMCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbG9hZDMyKEJhc2VJbmRleChyZWdUMSwgcmVnVDAsIFRpbWVz
Rm91ciksIHJlZ1QwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cnNoaWZ0MzIocmVn
VDAsIHJlZ1QyKTsgLy8gV2UgY2FuIGlnbm9yZSB1cHBlciBiaXRzIGFuZCBvbmx5IGxvd2VyIDVi
aXRzIGFyZSBlZmZlY3RpdmUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBtYXRj
aGVkID0gYnJhbmNoVGVzdDMyKE5vblplcm8sIHJlZ1QyLCBUcnVzdGVkSW1tMzIoMSkpOworI2Vu
ZGlmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3AubV9qdW1wcy5hcHBlbmQoanVtcElm
Tm9BdmFpbGFibGVJbnB1dChlbmRJbmRleCAtIGJlZ2luSW5kZXgpKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBqdW1wKCkubGlua1RvKGxvb3BIZWFkLCB0aGlzKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtYXRjaGVkLmxpbmsodGhpcyk7CkBAIC0zODIyLDcgKzM4NDgsNiBA
QCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRl
IE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAgICAgIGF1dG8gYm1JbmZvID0gQm95ZXJNb29yZUlu
Zm86OmNyZWF0ZShzdGQ6Om1pbjx1bnNpZ25lZD4oZGlzanVuY3Rpb24tPm1fbWluaW11bVNpemUs
IEJveWVyTW9vcmVJbmZvOjptYXhMZW5ndGgpKTsKICAgICAgICAgICAgIGlmIChjb2xsZWN0Qm95
ZXJNb29yZUluZm8oZGlzanVuY3Rpb24sIGN1cnJlbnRBbHRlcm5hdGl2ZUluZGV4LCBibUluZm8u
Z2V0KCkpKSB7CiAgICAgICAgICAgICAgICAgbV9vcHMubGFzdCgpLm1fYm1JbmZvID0gYm1JbmZv
LnB0cigpOwotICAgICAgICAgICAgICAgIGJtSW5mby0+c2V0SW5kZXgobV9ibUluZm9zLnNpemUo
KSk7CiAgICAgICAgICAgICAgICAgbV9ibUluZm9zLmFwcGVuZChXVEZNb3ZlKGJtSW5mbykpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0zOTE4LDEzICszOTQzLDEzIEBAIGNsYXNzIFlh
cnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8sIHByaXZhdGUgTWFjcm9Bc3Nl
bWJsZXIgewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBjb25zdCB1aW50OF90
KiBnZXRCb3llck1vb3JlQnl0ZVZlY3Rvcih1bnNpZ25lZCBpbmRleCwgY29uc3QgQm95ZXJNb29y
ZUJpdG1hcDo6TWFwJiBtYXApCisgICAgY29uc3QgQm95ZXJNb29yZUJpdG1hcDo6TWFwOjpXb3Jk
VHlwZSogZ2V0Qm95ZXJNb29yZUJpdG1hcChjb25zdCBCb3llck1vb3JlQml0bWFwOjpNYXAmIG1h
cCkKICAgICB7Ci0gICAgICAgIGF1dG8gdmVjdG9yID0gbWFrZVVuaXF1ZVJlZjxCb3llck1vb3Jl
Qnl0ZVZlY3Rvcj4obWFwKTsKLSAgICAgICAgaWYgKGNvbnN0IGF1dG8qIGV4aXN0aW5nUG9pbnRl
ciA9IG1fY29kZUJsb2NrLnRyeVJldXNlQm95ZXJNb29yZUJ5dGVWZWN0b3IoaW5kZXgsIHZlY3Rv
ci5nZXQoKSkpCisgICAgICAgIGlmIChjb25zdCBhdXRvKiBleGlzdGluZ1BvaW50ZXIgPSBtX2Nv
ZGVCbG9jay50cnlSZXVzZUJveWVyTW9vcmVCaXRtYXAobWFwKSkKICAgICAgICAgICAgcmV0dXJu
IGV4aXN0aW5nUG9pbnRlcjsKLSAgICAgICAgY29uc3QgdWludDhfdCogcG9pbnRlciA9IHZlY3Rv
ci0+ZGF0YSgpOwotICAgICAgICBtX2JtVmVjdG9yLmFwcGVuZChXVEZNb3ZlKHZlY3RvcikpOwor
ICAgICAgICBhdXRvIGhlYXBNYXAgPSBtYWtlVW5pcXVlUmVmPEJveWVyTW9vcmVCaXRtYXA6Ok1h
cD4obWFwKTsKKyAgICAgICAgY29uc3QgYXV0byogcG9pbnRlciA9IGhlYXBNYXAtPnN0b3JhZ2Uo
KTsKKyAgICAgICAgbV9ibU1hcHMuYXBwZW5kKFdURk1vdmUoaGVhcE1hcCkpOwogICAgICAgICBy
ZXR1cm4gcG9pbnRlcjsKICAgICB9CiAKQEAgLTM5OTMsNiArNDAxOCw3IEBAIGNsYXNzIFlhcnJH
ZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8sIHByaXZhdGUgTWFjcm9Bc3NlbWJs
ZXIgewogICAgICAgICBwdXNoKEFSTVJlZ2lzdGVyczo6cjUpOwogICAgICAgICBwdXNoKEFSTVJl
Z2lzdGVyczo6cjYpOwogICAgICAgICBwdXNoKEFSTVJlZ2lzdGVyczo6cjgpOworICAgICAgICBw
dXNoKEFSTVJlZ2lzdGVyczo6cjEwKTsKICNlbGlmIENQVShNSVBTKQogICAgICAgICAvLyBEbyBu
b3RoaW5nLgogI2VuZGlmCkBAIC00MDM1LDYgKzQwNjEsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9y
IGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAg
ICAgICAgICAgICAgICBwb3BQYWlyKGZyYW1lUG9pbnRlclJlZ2lzdGVyLCBsaW5rUmVnaXN0ZXIp
OwogICAgICAgICB9CiAjZWxpZiBDUFUoQVJNX1RIVU1CMikKKyAgICAgICAgcG9wKEFSTVJlZ2lz
dGVyczo6cjEwKTsKICAgICAgICAgcG9wKEFSTVJlZ2lzdGVyczo6cjgpOwogICAgICAgICBwb3Ao
QVJNUmVnaXN0ZXJzOjpyNik7CiAgICAgICAgIHBvcChBUk1SZWdpc3RlcnM6OnI1KTsKQEAgLTQy
MDUsMTQgKzQyMzIsMTQgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJy
SklUSW5mbywgcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAKICAgICAgICAgaWYgKG1fY29tcGls
ZU1vZGUgPT0gSklUQ29tcGlsZU1vZGU6Ok1hdGNoT25seSkgewogICAgICAgICAgICAgaWYgKG1f
Y2hhclNpemUgPT0gQ2hhclNpemU6OkNoYXI4KQotICAgICAgICAgICAgICAgIGNvZGVCbG9jay5z
ZXQ4Qml0Q29kZU1hdGNoT25seShGSU5BTElaRV9SRUdFWFBfQ09ERShsaW5rQnVmZmVyLCBZYXJy
TWF0Y2hPbmx5OEJpdFB0clRhZywgIk1hdGNoLW9ubHkgOC1iaXQgcmVndWxhciBleHByZXNzaW9u
IiksIFdURk1vdmUobV9ibVZlY3RvcikpOworICAgICAgICAgICAgICAgIGNvZGVCbG9jay5zZXQ4
Qml0Q29kZU1hdGNoT25seShGSU5BTElaRV9SRUdFWFBfQ09ERShsaW5rQnVmZmVyLCBZYXJyTWF0
Y2hPbmx5OEJpdFB0clRhZywgIk1hdGNoLW9ubHkgOC1iaXQgcmVndWxhciBleHByZXNzaW9uIiks
IFdURk1vdmUobV9ibU1hcHMpKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBj
b2RlQmxvY2suc2V0MTZCaXRDb2RlTWF0Y2hPbmx5KEZJTkFMSVpFX1JFR0VYUF9DT0RFKGxpbmtC
dWZmZXIsIFlhcnJNYXRjaE9ubHkxNkJpdFB0clRhZywgIk1hdGNoLW9ubHkgMTYtYml0IHJlZ3Vs
YXIgZXhwcmVzc2lvbiIpLCBXVEZNb3ZlKG1fYm1WZWN0b3IpKTsKKyAgICAgICAgICAgICAgICBj
b2RlQmxvY2suc2V0MTZCaXRDb2RlTWF0Y2hPbmx5KEZJTkFMSVpFX1JFR0VYUF9DT0RFKGxpbmtC
dWZmZXIsIFlhcnJNYXRjaE9ubHkxNkJpdFB0clRhZywgIk1hdGNoLW9ubHkgMTYtYml0IHJlZ3Vs
YXIgZXhwcmVzc2lvbiIpLCBXVEZNb3ZlKG1fYm1NYXBzKSk7CiAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICBpZiAobV9jaGFyU2l6ZSA9PSBDaGFyU2l6ZTo6Q2hhcjgpCi0gICAgICAgICAg
ICAgICAgY29kZUJsb2NrLnNldDhCaXRDb2RlKEZJTkFMSVpFX1JFR0VYUF9DT0RFKGxpbmtCdWZm
ZXIsIFlhcnI4Qml0UHRyVGFnLCAiOC1iaXQgcmVndWxhciBleHByZXNzaW9uIiksIFdURk1vdmUo
bV9ibVZlY3RvcikpOworICAgICAgICAgICAgICAgIGNvZGVCbG9jay5zZXQ4Qml0Q29kZShGSU5B
TElaRV9SRUdFWFBfQ09ERShsaW5rQnVmZmVyLCBZYXJyOEJpdFB0clRhZywgIjgtYml0IHJlZ3Vs
YXIgZXhwcmVzc2lvbiIpLCBXVEZNb3ZlKG1fYm1NYXBzKSk7CiAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgY29kZUJsb2NrLnNldDE2Qml0Q29kZShGSU5BTElaRV9SRUdFWFBfQ09E
RShsaW5rQnVmZmVyLCBZYXJyMTZCaXRQdHJUYWcsICIxNi1iaXQgcmVndWxhciBleHByZXNzaW9u
IiksIFdURk1vdmUobV9ibVZlY3RvcikpOworICAgICAgICAgICAgICAgIGNvZGVCbG9jay5zZXQx
NkJpdENvZGUoRklOQUxJWkVfUkVHRVhQX0NPREUobGlua0J1ZmZlciwgWWFycjE2Qml0UHRyVGFn
LCAiMTYtYml0IHJlZ3VsYXIgZXhwcmVzc2lvbiIpLCBXVEZNb3ZlKG1fYm1NYXBzKSk7CiAgICAg
ICAgIH0KICAgICAgICAgaWYgKG1fZmFpbHVyZVJlYXNvbikKICAgICAgICAgICAgIGNvZGVCbG9j
ay5zZXRGYWxsQmFja1dpdGhGYWlsdXJlUmVhc29uKCptX2ZhaWx1cmVSZWFzb24pOwpAQCAtNDQ1
MSw3ICs0NDc4LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklU
SW5mbywgcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgLy8gVGhlIHJlZ3VsYXIgZXhwcmVz
c2lvbiBleHByZXNzZWQgYXMgYSBsaW5lYXIgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucy4KICAgICBW
ZWN0b3I8WWFyck9wLCAxMjg+IG1fb3BzOwogICAgIFZlY3RvcjxVbmlxdWVSZWY8Qm95ZXJNb29y
ZUluZm8+LCA0PiBtX2JtSW5mb3M7Ci0gICAgVmVjdG9yPFVuaXF1ZVJlZjxCb3llck1vb3JlQnl0
ZVZlY3Rvcj4+IG1fYm1WZWN0b3I7CisgICAgVmVjdG9yPFVuaXF1ZVJlZjxCb3llck1vb3JlQml0
bWFwOjpNYXA+PiBtX2JtTWFwczsKIAogICAgIC8vIFRoaXMgcmVjb3JkcyB0aGUgY3VycmVudCBp
bnB1dCBvZmZzZXQgYmVpbmcgYXBwbGllZCBkdWUgdG8gdGhlIGN1cnJlbnQKICAgICAvLyBzZXQg
b2YgYWx0ZXJuYXRpdmVzIHdlIGFyZSBuZXN0ZWQgd2l0aGluLiBFLmcuIHdoZW4gbWF0Y2hpbmcg
dGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKaW5kZXggNTkyOWIxMmJmNTg4NWEy
ZGQwOGEwM2Q3MDQ3YTMwODM1M2Q1NjlkMS4uNTg5Zjg2MzMyZmIzNTI0MTQzZjdiMjI5MTYwNzEy
NDliMDBiNmRjOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaApAQCAtOTAsMTgg
KzkwLDYgQEAgY2xhc3MgQm95ZXJNb29yZUJpdG1hcCB7CiAgICAgYm9vbCBtX2lzTWFza0VmZmVj
dGl2ZSB7IGZhbHNlIH07CiB9OwogCi1jbGFzcyBCb3llck1vb3JlQnl0ZVZlY3RvciA6IHB1Ymxp
YyBzdGQ6OmFycmF5PHVpbnQ4X3QsIEJveWVyTW9vcmVCaXRtYXA6Om1hcFNpemU+IHsKLSAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBCb3llck1vb3JlQnl0ZVZlY3Rv
cihjb25zdCBCb3llck1vb3JlQml0bWFwOjpNYXAmIG1hcCkKLSAgICB7Ci0gICAgICAgIGZpbGwo
MCk7Ci0gICAgICAgIG1hcC5mb3JFYWNoU2V0Qml0KFsmXSh1bnNpZ25lZCBpbmRleCkgewotICAg
ICAgICAgICAgKCp0aGlzKVtpbmRleF0gPSAxOwotICAgICAgICB9KTsKLSAgICB9Ci19OwotCiAj
aWYgQ1BVKEFSTTY0RSkKIGV4dGVybiAiQyIgRW5jb2RlZE1hdGNoUmVzdWx0IHZtRW50cnlUb1lh
cnJKSVQoY29uc3Qgdm9pZCogaW5wdXQsIFVDUFVSZWdpc3RlciBzdGFydCwgVUNQVVJlZ2lzdGVy
IGxlbmd0aCwgaW50KiBvdXRwdXQsIE1hdGNoaW5nQ29udGV4dEhvbGRlciogbWF0Y2hpbmdDb250
ZXh0LCBjb25zdCB2b2lkKiBjb2RlUHRyKTsKIGV4dGVybiAiQyIgdm9pZCB2bUVudHJ5VG9ZYXJy
SklUQWZ0ZXIodm9pZCk7CkBAIC0xMjQsMTQgKzExMiwxNCBAQCBjbGFzcyBZYXJyQ29kZUJsb2Nr
IHsKIAogICAgIGJvb2wgaGFzOEJpdENvZGUoKSB7IHJldHVybiBtX3JlZjguc2l6ZSgpOyB9CiAg
ICAgYm9vbCBoYXMxNkJpdENvZGUoKSB7IHJldHVybiBtX3JlZjE2LnNpemUoKTsgfQotICAgIHZv
aWQgc2V0OEJpdENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFlhcnI4Qml0UHRyVGFnPiByZWYs
IFZlY3RvcjxVbmlxdWVSZWY8Qm95ZXJNb29yZUJ5dGVWZWN0b3I+PiBtYXBzKQorICAgIHZvaWQg
c2V0OEJpdENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFlhcnI4Qml0UHRyVGFnPiByZWYsIFZl
Y3RvcjxVbmlxdWVSZWY8Qm95ZXJNb29yZUJpdG1hcDo6TWFwPj4gbWFwcykKICAgICB7CiAgICAg
ICAgIG1fcmVmOCA9IHJlZjsKICAgICAgICAgbV9tYXBzLnJlc2VydmVDYXBhY2l0eShtX21hcHMu
c2l6ZSgpICsgbWFwcy5zaXplKCkpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsg
aW5kZXggPCBtYXBzLnNpemUoKTsgKytpbmRleCkKICAgICAgICAgICAgIG1fbWFwcy51bmNoZWNr
ZWRBcHBlbmQoV1RGTW92ZShtYXBzW2luZGV4XSkpOwogICAgIH0KLSAgICB2b2lkIHNldDE2Qml0
Q29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY8WWFycjE2Qml0UHRyVGFnPiByZWYsIFZlY3RvcjxV
bmlxdWVSZWY8Qm95ZXJNb29yZUJ5dGVWZWN0b3I+PiBtYXBzKQorICAgIHZvaWQgc2V0MTZCaXRD
b2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxZYXJyMTZCaXRQdHJUYWc+IHJlZiwgVmVjdG9yPFVu
aXF1ZVJlZjxCb3llck1vb3JlQml0bWFwOjpNYXA+PiBtYXBzKQogICAgIHsKICAgICAgICAgbV9y
ZWYxNiA9IHJlZjsKICAgICAgICAgbV9tYXBzLnJlc2VydmVDYXBhY2l0eShtX21hcHMuc2l6ZSgp
ICsgbWFwcy5zaXplKCkpOwpAQCAtMTQxLDE0ICsxMjksMTQgQEAgY2xhc3MgWWFyckNvZGVCbG9j
ayB7CiAKICAgICBib29sIGhhczhCaXRDb2RlTWF0Y2hPbmx5KCkgeyByZXR1cm4gbV9tYXRjaE9u
bHk4LnNpemUoKTsgfQogICAgIGJvb2wgaGFzMTZCaXRDb2RlTWF0Y2hPbmx5KCkgeyByZXR1cm4g
bV9tYXRjaE9ubHkxNi5zaXplKCk7IH0KLSAgICB2b2lkIHNldDhCaXRDb2RlTWF0Y2hPbmx5KE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxZYXJyTWF0Y2hPbmx5OEJpdFB0clRhZz4gbWF0Y2hPbmx5LCBW
ZWN0b3I8VW5pcXVlUmVmPEJveWVyTW9vcmVCeXRlVmVjdG9yPj4gbWFwcykKKyAgICB2b2lkIHNl
dDhCaXRDb2RlTWF0Y2hPbmx5KE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxZYXJyTWF0Y2hPbmx5OEJp
dFB0clRhZz4gbWF0Y2hPbmx5LCBWZWN0b3I8VW5pcXVlUmVmPEJveWVyTW9vcmVCaXRtYXA6Ok1h
cD4+IG1hcHMpCiAgICAgewogICAgICAgICBtX21hdGNoT25seTggPSBtYXRjaE9ubHk7CiAgICAg
ICAgIG1fbWFwcy5yZXNlcnZlQ2FwYWNpdHkobV9tYXBzLnNpemUoKSArIG1hcHMuc2l6ZSgpKTsK
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgbWFwcy5zaXplKCk7ICsr
aW5kZXgpCiAgICAgICAgICAgICBtX21hcHMudW5jaGVja2VkQXBwZW5kKFdURk1vdmUobWFwc1tp
bmRleF0pKTsKICAgICB9Ci0gICAgdm9pZCBzZXQxNkJpdENvZGVNYXRjaE9ubHkoTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmPFlhcnJNYXRjaE9ubHkxNkJpdFB0clRhZz4gbWF0Y2hPbmx5LCBWZWN0b3I8
VW5pcXVlUmVmPEJveWVyTW9vcmVCeXRlVmVjdG9yPj4gbWFwcykKKyAgICB2b2lkIHNldDE2Qml0
Q29kZU1hdGNoT25seShNYWNyb0Fzc2VtYmxlckNvZGVSZWY8WWFyck1hdGNoT25seTE2Qml0UHRy
VGFnPiBtYXRjaE9ubHksIFZlY3RvcjxVbmlxdWVSZWY8Qm95ZXJNb29yZUJpdG1hcDo6TWFwPj4g
bWFwcykKICAgICB7CiAgICAgICAgIG1fbWF0Y2hPbmx5MTYgPSBtYXRjaE9ubHk7CiAgICAgICAg
IG1fbWFwcy5yZXNlcnZlQ2FwYWNpdHkobV9tYXBzLnNpemUoKSArIG1hcHMuc2l6ZSgpKTsKQEAg
LTI1MCwxMSArMjM4LDExIEBAIGNsYXNzIFlhcnJDb2RlQmxvY2sgewogICAgICAgICBtX2ZhaWx1
cmVSZWFzb24gPSBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCi0gICAgY29uc3QgdWludDhfdCogdHJ5
UmV1c2VCb3llck1vb3JlQnl0ZVZlY3Rvcih1bnNpZ25lZCBpbmRleCwgQm95ZXJNb29yZUJ5dGVW
ZWN0b3ImIHZlY3RvcikgY29uc3QKKyAgICBjb25zdCBCb3llck1vb3JlQml0bWFwOjpNYXA6Oldv
cmRUeXBlKiB0cnlSZXVzZUJveWVyTW9vcmVCaXRtYXAoY29uc3QgQm95ZXJNb29yZUJpdG1hcDo6
TWFwJiBtYXApIGNvbnN0CiAgICAgewotICAgICAgICBpZiAoaW5kZXggPCBtX21hcHMuc2l6ZSgp
KSB7Ci0gICAgICAgICAgICBpZiAobV9tYXBzW2luZGV4XS5nZXQoKSA9PSB2ZWN0b3IpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIG1fbWFwc1tpbmRleF0tPmRhdGEoKTsKKyAgICAgICAgZm9yIChh
dXRvJiBzdG9yZWQgOiBtX21hcHMpIHsKKyAgICAgICAgICAgIGlmIChzdG9yZWQuZ2V0KCkgPT0g
bWFwKQorICAgICAgICAgICAgICAgIHJldHVybiBzdG9yZWQtPnN0b3JhZ2UoKTsKICAgICAgICAg
fQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CkBAIC0yNjQsNyArMjUyLDcgQEAgY2xh
c3MgWWFyckNvZGVCbG9jayB7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFlhcnIxNkJpdFB0
clRhZz4gbV9yZWYxNjsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8WWFyck1hdGNoT25seThC
aXRQdHJUYWc+IG1fbWF0Y2hPbmx5ODsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8WWFyck1h
dGNoT25seTE2Qml0UHRyVGFnPiBtX21hdGNoT25seTE2OwotICAgIFZlY3RvcjxVbmlxdWVSZWY8
Qm95ZXJNb29yZUJ5dGVWZWN0b3I+PiBtX21hcHM7CisgICAgVmVjdG9yPFVuaXF1ZVJlZjxCb3ll
ck1vb3JlQml0bWFwOjpNYXA+PiBtX21hcHM7CiAgICAgYm9vbCBtX3VzZXNQYXR0ZXJuQ29udGV4
dEJ1ZmZlciB7IGZhbHNlIH07CiAgICAgc3RkOjpvcHRpb25hbDxKSVRGYWlsdXJlUmVhc29uPiBt
X2ZhaWx1cmVSZWFzb247CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQml0bWFwLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaAppbmRleCBjNTAxMTBiNWRlYTEzY2U0YmE1YmFkYTNl
NDllYjcxZjVjMWQyN2EzLi5mNjgwZTU1NjA5OWE4NThiNzMxNmVhMGFlMDg2MDk0NDIwMGIxM2Nl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9CaXRtYXAuaApAQCAtMzMsMTIgKzMzLDE0IEBAIG5hbWVzcGFjZSBXVEYgewogdGVtcGxhdGU8
c2l6ZV90IHNpemU+CiB1c2luZyBCaXRtYXBXb3JkVHlwZSA9IHN0ZDo6Y29uZGl0aW9uYWxfdDwo
c2l6ZSA8PSAzMiAmJiBzaXplb2YoVUNQVVJlZ2lzdGVyKSA+IHNpemVvZih1aW50MzJfdCkpLCB1
aW50MzJfdCwgVUNQVVJlZ2lzdGVyPjsKIAotdGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5
cGVuYW1lIFdvcmRUeXBlID0gQml0bWFwV29yZFR5cGU8Yml0bWFwU2l6ZT4+Cit0ZW1wbGF0ZTxz
aXplX3QgYml0bWFwU2l6ZSwgdHlwZW5hbWUgUGFzc2VkV29yZFR5cGUgPSBCaXRtYXBXb3JkVHlw
ZTxiaXRtYXBTaXplPj4KIGNsYXNzIEJpdG1hcCBmaW5hbCB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAgICAgCi0gICAgc3RhdGljX2Fzc2VydChzaXplb2YoV29yZFR5cGUpIDw9IHNp
emVvZihVQ1BVUmVnaXN0ZXIpLCAiV29yZFR5cGUgbXVzdCBub3QgYmUgYmlnZ2VyIHRoYW4gdGhl
IENQVSBhdG9taWMgd29yZCBzaXplIik7CiBwdWJsaWM6CisgICAgdXNpbmcgV29yZFR5cGUgPSBQ
YXNzZWRXb3JkVHlwZTsKKworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFdvcmRUeXBlKSA8PSBz
aXplb2YoVUNQVVJlZ2lzdGVyKSwgIldvcmRUeXBlIG11c3Qgbm90IGJlIGJpZ2dlciB0aGFuIHRo
ZSBDUFUgYXRvbWljIHdvcmQgc2l6ZSIpOwogICAgIGNvbnN0ZXhwciBCaXRtYXAoKTsKIAogICAg
IHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IHNpemUoKQpAQCAtMTMzLDYgKzEzNSw5IEBAIGNsYXNz
IEJpdG1hcCBmaW5hbCB7CiAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3Q7
CiAKKyAgICBXb3JkVHlwZSogc3RvcmFnZSgpIHsgcmV0dXJuIGJpdHMuZGF0YSgpOyB9CisgICAg
Y29uc3QgV29yZFR5cGUqIHN0b3JhZ2UoKSBjb25zdCB7IHJldHVybiBiaXRzLmRhdGEoKTsgfQor
CiBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgd29yZFNpemUgPSBzaXpl
b2YoV29yZFR5cGUpICogODsKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHdvcmRzID0g
KGJpdG1hcFNpemUgKyB3b3JkU2l6ZSAtIDEpIC8gd29yZFNpemU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434692</attachid>
            <date>2021-07-31 00:20:17 -0700</date>
            <delta_ts>2021-07-31 13:51:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228676-20210731002016.patch</filename>
            <type>text/plain</type>
            <size>17768</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
MjRiMGU0NWFiYWUzYjNiNTZjMjBhNWZhNmIwN2M4MTZjYTRlMjMxLi45N2JmMWI5ZTQ1ZmU5NmY1
NzU2MjQxODkyNWYzN2VhMzUzNTc5NTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAyMS0wNy0zMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFlhcnIgc2hvdWxkIHVzZSBCaXRtYXAgaW5zdGVhZCBvZiBCeXRl
VmVjdG9yIGZvciBCb3llck1vb3JlIHNlYXJjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2Ugb2JzZXJ2ZWQgdGhhdCB1c2luZyBCaXRtYXAgaW5zdGVh
ZCBvZiBCeXRlVmVjdG9yIGRvZXMgbm90IHBvc2UgcGVyZm9ybWFuY2UKKyAgICAgICAgaXNzdWUu
IEl0IHdhcyBuZXV0cmFsIGluIGpxdWVyeS10b2RvbXZjLXJlZ2V4cC5qcy4gSW4gdGhhdCBjYXNl
LCB3ZSBzaG91bGQgdXNlCisgICAgICAgIEJpdG1hcCBzaW5jZSBpdCBpcyA4eCBzbWFsbGVyLgor
CisgICAgICAgIFdlIGFsc28gc2VhcmNoIHJldXNhYmxlIEJpdG1hcCBmcm9tIFZlY3RvciBzaW5j
ZSBjb21wYXJpbmcgMTI4Yml0IEJpdG1hcCBpcworICAgICAgICBzdXBlciBmYXN0IHNvIHdlIGRv
IG5vdCBuZWVkIHRvIGJvdGhlciBhYm91dCBsaW5lYXIgc2VhcmNoIGhlcmUgKCMgb2YgQml0bWFw
CisgICAgICAgIGlzIGN1cnJlbnRseSB1cCB0byA0KS4KKworICAgICAgICBUbyBtYWtlIGNvZGUg
c2ltcGxpZmllZCwgd2UgYWRkIHJlZ1QyIHRvIEFSTXY3IGFuZCBNSVBTIGJhY2tlbmQgb2YgWWFy
ckpJVC4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRv
VCAgICAgICAgICAgICAgICAgICAgIFBhdGNoZWQKKworICAgICAgICAgICAganF1ZXJ5LXRvZG9t
dmMtcmVnZXhwICAgICAgNTU1Ljk1NjYrLTAuODg1NiAgICAgICAgICA1NTUuMDczNystMC45NzE3
CisKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQuY3BwOgorICAgICAgICAoSlNDOjpZYXJyOjpCb3ll
ck1vb3JlSW5mbzo6aW5kZXggY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpZYXJyOjpC
b3llck1vb3JlSW5mbzo6c2V0SW5kZXgpOiBEZWxldGVkLgorICAgICAgICAqIHlhcnIvWWFyckpJ
VC5oOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyQ29kZUJsb2NrOjpzZXQ4Qml0Q29kZSk6Cisg
ICAgICAgIChKU0M6OllhcnI6OllhcnJDb2RlQmxvY2s6OnNldDE2Qml0Q29kZSk6CisgICAgICAg
IChKU0M6OllhcnI6OllhcnJDb2RlQmxvY2s6OnNldDhCaXRDb2RlTWF0Y2hPbmx5KToKKyAgICAg
ICAgKEpTQzo6WWFycjo6WWFyckNvZGVCbG9jazo6c2V0MTZCaXRDb2RlTWF0Y2hPbmx5KToKKyAg
ICAgICAgKEpTQzo6WWFycjo6WWFyckNvZGVCbG9jazo6dHJ5UmV1c2VCb3llck1vb3JlQml0bWFw
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6WWFycjo6Qm95ZXJNb29yZUJ5dGVWZWN0b3I6OkJveWVy
TW9vcmVCeXRlVmVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6WWFycjo6WWFyckNvZGVC
bG9jazo6dHJ5UmV1c2VCb3llck1vb3JlQnl0ZVZlY3RvciBjb25zdCk6IERlbGV0ZWQuCisKIDIw
MjEtMDctMzAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBb
SlNDXSBicmFuY2hUZXN0OCBzaG91bGQgbm90IGVtaXQgdHN0IGZvciBaZXJvL05vblplcm8gY2Fz
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggYWZkOTdjZjZmZTFjOTRmYjVkNDI3YTdkZmQ1ZjAzZDQ0ZmY3MDIwZC4uNzhiNjA1
MWY2NzlkNjZiZGZjMGRlNzBiMGQyODBmNTAzMzgyZGE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAyMS0wNy0zMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAg
IFtKU0NdIFlhcnIgc2hvdWxkIHVzZSBCaXRtYXAgaW5zdGVhZCBvZiBCeXRlVmVjdG9yIGZvciBC
b3llck1vb3JlIHNlYXJjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI4Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3dGYvQml0bWFwLmg6CisKIDIwMjEtMDctMzAgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciAnQ3Jvc3Mt
T3JpZ2luLU9wZW5lci1Qb2xpY3knIEhUVFAgaGVhZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJKSVQuY3BwCmluZGV4IDBhOTI0MDYxNmM2ODRiZDBkY2Y0MzhkYWUxOTdiMzZmZTRmNTlj
Y2IuLjM5YWJlYTQzZDA0NzkyOWRkNjNlZWNlOGU5ZTIyMTVlNjdjZDdlZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCkBAIC02OSwxMiArNjksNiBAQCBjbGFzcyBCb3ll
ck1vb3JlSW5mbyB7CiAgICAgICAgIG1fY2hhcmFjdGVyc1tpbmRleF0uYWRkKGNoYXJhY3Rlcik7
CiAgICAgfQogCi0gICAgdW5zaWduZWQgaW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2luZGV4OyB9
Ci0gICAgdm9pZCBzZXRJbmRleCh1bnNpZ25lZCBpbmRleCkKLSAgICB7Ci0gICAgICAgIG1faW5k
ZXggPSBpbmRleDsKLSAgICB9Ci0KICAgICBzdGF0aWMgVW5pcXVlUmVmPEJveWVyTW9vcmVJbmZv
PiBjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1ha2VVbmlx
dWVSZWY8Qm95ZXJNb29yZUluZm8+KGxlbmd0aCk7CkBAIC04Nyw3ICs4MSw2IEBAIGNsYXNzIEJv
eWVyTW9vcmVJbmZvIHsKICAgICBzdGQ6OnR1cGxlPGludCwgdW5zaWduZWQsIHVuc2lnbmVkPiBm
aW5kQmVzdENoYXJhY3RlclNlcXVlbmNlKHVuc2lnbmVkIG51bWJlck9mQ2FuZGlkYXRlc0xpbWl0
KSBjb25zdDsKIAogICAgIFZlY3RvcjxCb3llck1vb3JlQml0bWFwPiBtX2NoYXJhY3RlcnM7Ci0g
ICAgdW5zaWduZWQgbV9pbmRleCB7IDAgfTsKIH07CiAKIHN0ZDo6dHVwbGU8aW50LCB1bnNpZ25l
ZCwgdW5zaWduZWQ+IEJveWVyTW9vcmVJbmZvOjpmaW5kQmVzdENoYXJhY3RlclNlcXVlbmNlKHVu
c2lnbmVkIG51bWJlck9mQ2FuZGlkYXRlc0xpbWl0KSBjb25zdApAQCAtMTY2LDcgKzE1OSwxMSBA
QCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRl
IE1hY3JvQXNzZW1ibGVyIHsKIAogICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QwID0g
QVJNUmVnaXN0ZXJzOjpyNDsKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMSA9IEFS
TVJlZ2lzdGVyczo6cjU7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaW5pdGlhbFN0YXJ0
ID0gQVJNUmVnaXN0ZXJzOjpyODsKKyAgICAvLyByNiBpcyByZXNlcnZlZCBmb3IgTWFjcm9Bc3Nl
bWJsZXJBUk12NywKKyAgICAvLyByNyBpcyBmcC4KKyAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJ
RCByZWdUMiA9IEFSTVJlZ2lzdGVyczo6cjg7CisgICAgLy8gcjkgaXMgc2IgaW4gRUFCSS4KKyAg
ICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBpbml0aWFsU3RhcnQgPSBBUk1SZWdpc3RlcnM6OnIx
MDsgLy8gcjEwIGlzIFNMLCBidXQgbm8gbG9uZ2VyIGEgc3BlY2lhbCByZWdpc3Rlci4KIAogICAg
IHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJldHVyblJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpy
MDsKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZXR1cm5SZWdpc3RlcjIgPSBBUk1SZWdp
c3RlcnM6OnIxOwpAQCAtMjA1LDkgKzIwMiwxMiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFs
IDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBsZW5ndGggPSBNSVBTUmVnaXN0ZXJzOjphMjsKICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBvdXRwdXQgPSBNSVBTUmVnaXN0ZXJzOjphMzsKIAotICAgIHN0
YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QwID0gTUlQU1JlZ2lzdGVyczo6dDQ7Ci0gICAgc3Rh
dGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDEgPSBNSVBTUmVnaXN0ZXJzOjp0NTsKLSAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBpbml0aWFsU3RhcnQgPSBNSVBTUmVnaXN0ZXJzOjp0NjsKKyAg
ICAvLyB0MCBpcyByZXNlcnZlZCBmb3IgTWFjcm9Bc3NlbWJsZXJNSVBTLgorICAgIC8vIHQxIGlz
IHJlc2VydmVkIGZvciBNYWNyb0Fzc2VtYmxlck1JUFMuCisgICAgc3RhdGljIGNvbnN0IFJlZ2lz
dGVySUQgcmVnVDAgPSBNSVBTUmVnaXN0ZXJzOjp0MjsKKyAgICBzdGF0aWMgY29uc3QgUmVnaXN0
ZXJJRCByZWdUMSA9IE1JUFNSZWdpc3RlcnM6OnQzOworICAgIHN0YXRpYyBjb25zdCBSZWdpc3Rl
cklEIHJlZ1QyID0gTUlQU1JlZ2lzdGVyczo6dDQ7CisgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgaW5pdGlhbFN0YXJ0ID0gTUlQU1JlZ2lzdGVyczo6dDU7CiAKICAgICBzdGF0aWMgY29uc3Qg
UmVnaXN0ZXJJRCByZXR1cm5SZWdpc3RlciA9IE1JUFNSZWdpc3RlcnM6OnYwOwogICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIHJldHVyblJlZ2lzdGVyMiA9IE1JUFNSZWdpc3RlcnM6OnYxOwpA
QCAtMjQwNSwxNCArMjQwNSw0MCBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGlj
IFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBqdW1wKCkubGlua1RvKGxvb3BIZWFkLCB0aGlzKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtYXRjaGVkLmxpbmsodGhpcyk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QqIHBv
aW50ZXIgPSBnZXRCb3llck1vb3JlQnl0ZVZlY3RvcihvcC5tX2JtSW5mby0+aW5kZXgoKSwgbWFw
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhdXRvKiBwb2ludGVyID0gZ2V0
Qm95ZXJNb29yZUJpdG1hcChtYXApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFM
b2dMbklmKE9wdGlvbnM6OnZlcmJvc2VSZWdFeHBDb21waWxhdGlvbigpLCAiRm91bmQgYml0bWFw
IGxvb2thaGVhZCBjb3VudDooIiwgbWFwQ291bnQsICIpLHJhbmdlOlsiLCBiZWdpbkluZGV4LCAi
LCAiLCBlbmRJbmRleCwgIikiKTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdmUo
VHJ1c3RlZEltbVB0cihwb2ludGVyKSwgcmVnVDEpOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGF1dG8gbG9vcEhlYWQgPSBsYWJlbCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlYWRDaGFyYWN0ZXIobV9jaGVja2VkT2Zmc2V0IC0gZW5kSW5kZXggKyAxLCByZWdUMCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kMzIoVHJ1c3RlZEltbTMyKEJveWVyTW9vcmVC
aXRtYXA6Om1hcE1hc2spLCByZWdUMCwgcmVnVDApOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGF1dG8gbWF0Y2hlZCA9IGJyYW5jaFRlc3Q4KE5vblplcm8sIEJhc2VJbmRleChyZWdUMSwg
cmVnVDAsIFRpbWVzT25lKSk7CisjaWYgQ1BVKEFSTTY0KQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEJveWVyTW9vcmVCaXRtYXA6Ok1hcDo6V29yZFR5
cGUpID09IHNpemVvZih1aW50NjRfdCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YXRpY19hc3NlcnQoMSA8PCA2ID09IDY0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGF0aWNfYXNzZXJ0KDEgPDwgKDYgKyAxKSA9PSBCb3llck1vb3JlQml0bWFwOjpNYXA6OnNpemUo
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFjdFVuc2lnbmVkQml0ZmllbGQz
MihyZWdUMCwgVHJ1c3RlZEltbTMyKDYpLCBUcnVzdGVkSW1tMzIoMSksIHJlZ1QyKTsgLy8gRXh0
cmFjdCAxIGJpdCBmb3IgaW5kZXguCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZDY0
KEJhc2VJbmRleChyZWdUMSwgcmVnVDIsIFRpbWVzRWlnaHQpLCByZWdUMik7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdXJzaGlmdDY0KHJlZ1QwLCByZWdUMik7IC8vIFdlIGNhbiBpZ25v
cmUgdXBwZXIgYml0cyBhbmQgb25seSBsb3dlciA2Yml0cyBhcmUgZWZmZWN0aXZlLgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dG8gbWF0Y2hlZCA9IGJyYW5jaFRlc3Q2NChOb25aZXJv
LCByZWdUMiwgVHJ1c3RlZEltbTMyKDEpKTsKKyNlbGlmIENQVShYODZfNjQpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoQm95ZXJNb29yZUJpdG1hcDo6
TWFwOjpXb3JkVHlwZSkgPT0gc2l6ZW9mKHVpbnQ2NF90KSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhdGljX2Fzc2VydCgxIDw8IDYgPT0gNjQpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXRpY19hc3NlcnQoMSA8PCAoNiArIDEpID09IEJveWVyTW9vcmVCaXRtYXA6
Ok1hcDo6c2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3ZlKHJlZ1QwLCBy
ZWdUMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJzaGlmdDMyKFRydXN0ZWRJbW0z
Mig2KSwgcmVnVDIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZDMyKFRydXN0ZWRJ
bW0zMigxKSwgcmVnVDIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQ2NChCYXNl
SW5kZXgocmVnVDEsIHJlZ1QyLCBUaW1lc0VpZ2h0KSwgcmVnVDIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGF1dG8gbWF0Y2hlZCA9IGJyYW5jaFRlc3RCaXQ2NChOb25aZXJvLCByZWdU
MiwgcmVnVDApOyAvLyBXZSBjYW4gaWdub3JlIHVwcGVyIGJpdHMgc2luY2UgbW9kdWxlLTY0IGlz
IHBlcmZvcm1lZC4KKyNlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Fz
c2VydChzaXplb2YoQm95ZXJNb29yZUJpdG1hcDo6TWFwOjpXb3JkVHlwZSkgPT0gc2l6ZW9mKHVp
bnQzMl90KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydCgxIDw8
IDUgPT0gMzIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoMSA8
PCAoNSArIDIpID09IEJveWVyTW9vcmVCaXRtYXA6Ok1hcDo6c2l6ZSgpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtb3ZlKHJlZ1QwLCByZWdUMik7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdXJzaGlmdDMyKFRydXN0ZWRJbW0zMig1KSwgcmVnVDIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFuZDMyKFRydXN0ZWRJbW0zMigwYjExKSwgcmVnVDIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxvYWQzMihCYXNlSW5kZXgocmVnVDEsIHJlZ1QyLCBUaW1l
c0ZvdXIpLCByZWdUMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJzaGlmdDMyKHJl
Z1QwLCByZWdUMik7IC8vIFdlIGNhbiBpZ25vcmUgdXBwZXIgYml0cyBhbmQgb25seSBsb3dlciA1
Yml0cyBhcmUgZWZmZWN0aXZlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gbWF0
Y2hlZCA9IGJyYW5jaFRlc3QzMihOb25aZXJvLCByZWdUMiwgVHJ1c3RlZEltbTMyKDEpKTsKKyNl
bmRpZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wLm1fanVtcHMuYXBwZW5kKGp1bXBJ
Zk5vQXZhaWxhYmxlSW5wdXQoZW5kSW5kZXggLSBiZWdpbkluZGV4KSk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAganVtcCgpLmxpbmtUbyhsb29wSGVhZCwgdGhpcyk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWF0Y2hlZC5saW5rKHRoaXMpOwpAQCAtMzgyMiw3ICszODQ4LDYg
QEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbywgcHJpdmF0
ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAgICAgICBhdXRvIGJtSW5mbyA9IEJveWVyTW9vcmVJ
bmZvOjpjcmVhdGUoc3RkOjptaW48dW5zaWduZWQ+KGRpc2p1bmN0aW9uLT5tX21pbmltdW1TaXpl
LCBCb3llck1vb3JlSW5mbzo6bWF4TGVuZ3RoKSk7CiAgICAgICAgICAgICBpZiAoY29sbGVjdEJv
eWVyTW9vcmVJbmZvKGRpc2p1bmN0aW9uLCBjdXJyZW50QWx0ZXJuYXRpdmVJbmRleCwgYm1JbmZv
LmdldCgpKSkgewogICAgICAgICAgICAgICAgIG1fb3BzLmxhc3QoKS5tX2JtSW5mbyA9IGJtSW5m
by5wdHIoKTsKLSAgICAgICAgICAgICAgICBibUluZm8tPnNldEluZGV4KG1fYm1JbmZvcy5zaXpl
KCkpOwogICAgICAgICAgICAgICAgIG1fYm1JbmZvcy5hcHBlbmQoV1RGTW92ZShibUluZm8pKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMzkxOCwxMyArMzk0MywxMyBAQCBjbGFzcyBZ
YXJyR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNz
ZW1ibGVyIHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgY29uc3QgdWludDhf
dCogZ2V0Qm95ZXJNb29yZUJ5dGVWZWN0b3IodW5zaWduZWQgaW5kZXgsIGNvbnN0IEJveWVyTW9v
cmVCaXRtYXA6Ok1hcCYgbWFwKQorICAgIGNvbnN0IEJveWVyTW9vcmVCaXRtYXA6Ok1hcDo6V29y
ZFR5cGUqIGdldEJveWVyTW9vcmVCaXRtYXAoY29uc3QgQm95ZXJNb29yZUJpdG1hcDo6TWFwJiBt
YXApCiAgICAgewotICAgICAgICBhdXRvIHZlY3RvciA9IG1ha2VVbmlxdWVSZWY8Qm95ZXJNb29y
ZUJ5dGVWZWN0b3I+KG1hcCk7Ci0gICAgICAgIGlmIChjb25zdCBhdXRvKiBleGlzdGluZ1BvaW50
ZXIgPSBtX2NvZGVCbG9jay50cnlSZXVzZUJveWVyTW9vcmVCeXRlVmVjdG9yKGluZGV4LCB2ZWN0
b3IuZ2V0KCkpKQorICAgICAgICBpZiAoY29uc3QgYXV0byogZXhpc3RpbmdQb2ludGVyID0gbV9j
b2RlQmxvY2sudHJ5UmV1c2VCb3llck1vb3JlQml0bWFwKG1hcCkpCiAgICAgICAgICAgIHJldHVy
biBleGlzdGluZ1BvaW50ZXI7Ci0gICAgICAgIGNvbnN0IHVpbnQ4X3QqIHBvaW50ZXIgPSB2ZWN0
b3ItPmRhdGEoKTsKLSAgICAgICAgbV9ibVZlY3Rvci5hcHBlbmQoV1RGTW92ZSh2ZWN0b3IpKTsK
KyAgICAgICAgYXV0byBoZWFwTWFwID0gbWFrZVVuaXF1ZVJlZjxCb3llck1vb3JlQml0bWFwOjpN
YXA+KG1hcCk7CisgICAgICAgIGNvbnN0IGF1dG8qIHBvaW50ZXIgPSBoZWFwTWFwLT5zdG9yYWdl
KCk7CisgICAgICAgIG1fYm1NYXBzLmFwcGVuZChXVEZNb3ZlKGhlYXBNYXApKTsKICAgICAgICAg
cmV0dXJuIHBvaW50ZXI7CiAgICAgfQogCkBAIC0zOTkzLDYgKzQwMTgsNyBAQCBjbGFzcyBZYXJy
R2VuZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1i
bGVyIHsKICAgICAgICAgcHVzaChBUk1SZWdpc3RlcnM6OnI1KTsKICAgICAgICAgcHVzaChBUk1S
ZWdpc3RlcnM6OnI2KTsKICAgICAgICAgcHVzaChBUk1SZWdpc3RlcnM6OnI4KTsKKyAgICAgICAg
cHVzaChBUk1SZWdpc3RlcnM6OnIxMCk7CiAjZWxpZiBDUFUoTUlQUykKICAgICAgICAgLy8gRG8g
bm90aGluZy4KICNlbmRpZgpAQCAtNDAzNSw2ICs0MDYxLDcgQEAgY2xhc3MgWWFyckdlbmVyYXRv
ciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbywgcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAg
ICAgICAgICAgICAgICAgcG9wUGFpcihmcmFtZVBvaW50ZXJSZWdpc3RlciwgbGlua1JlZ2lzdGVy
KTsKICAgICAgICAgfQogI2VsaWYgQ1BVKEFSTV9USFVNQjIpCisgICAgICAgIHBvcChBUk1SZWdp
c3RlcnM6OnIxMCk7CiAgICAgICAgIHBvcChBUk1SZWdpc3RlcnM6OnI4KTsKICAgICAgICAgcG9w
KEFSTVJlZ2lzdGVyczo6cjYpOwogICAgICAgICBwb3AoQVJNUmVnaXN0ZXJzOjpyNSk7CkBAIC00
MjA1LDE0ICs0MjMyLDE0IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFy
ckpJVEluZm8sIHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogCiAgICAgICAgIGlmIChtX2NvbXBp
bGVNb2RlID09IEpJVENvbXBpbGVNb2RlOjpNYXRjaE9ubHkpIHsKICAgICAgICAgICAgIGlmICht
X2NoYXJTaXplID09IENoYXJTaXplOjpDaGFyOCkKLSAgICAgICAgICAgICAgICBjb2RlQmxvY2su
c2V0OEJpdENvZGVNYXRjaE9ubHkoRklOQUxJWkVfUkVHRVhQX0NPREUobGlua0J1ZmZlciwgWWFy
ck1hdGNoT25seThCaXRQdHJUYWcsICJNYXRjaC1vbmx5IDgtYml0IHJlZ3VsYXIgZXhwcmVzc2lv
biIpLCBXVEZNb3ZlKG1fYm1WZWN0b3IpKTsKKyAgICAgICAgICAgICAgICBjb2RlQmxvY2suc2V0
OEJpdENvZGVNYXRjaE9ubHkoRklOQUxJWkVfUkVHRVhQX0NPREUobGlua0J1ZmZlciwgWWFyck1h
dGNoT25seThCaXRQdHJUYWcsICJNYXRjaC1vbmx5IDgtYml0IHJlZ3VsYXIgZXhwcmVzc2lvbiIp
LCBXVEZNb3ZlKG1fYm1NYXBzKSk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
Y29kZUJsb2NrLnNldDE2Qml0Q29kZU1hdGNoT25seShGSU5BTElaRV9SRUdFWFBfQ09ERShsaW5r
QnVmZmVyLCBZYXJyTWF0Y2hPbmx5MTZCaXRQdHJUYWcsICJNYXRjaC1vbmx5IDE2LWJpdCByZWd1
bGFyIGV4cHJlc3Npb24iKSwgV1RGTW92ZShtX2JtVmVjdG9yKSk7CisgICAgICAgICAgICAgICAg
Y29kZUJsb2NrLnNldDE2Qml0Q29kZU1hdGNoT25seShGSU5BTElaRV9SRUdFWFBfQ09ERShsaW5r
QnVmZmVyLCBZYXJyTWF0Y2hPbmx5MTZCaXRQdHJUYWcsICJNYXRjaC1vbmx5IDE2LWJpdCByZWd1
bGFyIGV4cHJlc3Npb24iKSwgV1RGTW92ZShtX2JtTWFwcykpOwogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgaWYgKG1fY2hhclNpemUgPT0gQ2hhclNpemU6OkNoYXI4KQotICAgICAgICAg
ICAgICAgIGNvZGVCbG9jay5zZXQ4Qml0Q29kZShGSU5BTElaRV9SRUdFWFBfQ09ERShsaW5rQnVm
ZmVyLCBZYXJyOEJpdFB0clRhZywgIjgtYml0IHJlZ3VsYXIgZXhwcmVzc2lvbiIpLCBXVEZNb3Zl
KG1fYm1WZWN0b3IpKTsKKyAgICAgICAgICAgICAgICBjb2RlQmxvY2suc2V0OEJpdENvZGUoRklO
QUxJWkVfUkVHRVhQX0NPREUobGlua0J1ZmZlciwgWWFycjhCaXRQdHJUYWcsICI4LWJpdCByZWd1
bGFyIGV4cHJlc3Npb24iKSwgV1RGTW92ZShtX2JtTWFwcykpOwogICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgIGNvZGVCbG9jay5zZXQxNkJpdENvZGUoRklOQUxJWkVfUkVHRVhQX0NP
REUobGlua0J1ZmZlciwgWWFycjE2Qml0UHRyVGFnLCAiMTYtYml0IHJlZ3VsYXIgZXhwcmVzc2lv
biIpLCBXVEZNb3ZlKG1fYm1WZWN0b3IpKTsKKyAgICAgICAgICAgICAgICBjb2RlQmxvY2suc2V0
MTZCaXRDb2RlKEZJTkFMSVpFX1JFR0VYUF9DT0RFKGxpbmtCdWZmZXIsIFlhcnIxNkJpdFB0clRh
ZywgIjE2LWJpdCByZWd1bGFyIGV4cHJlc3Npb24iKSwgV1RGTW92ZShtX2JtTWFwcykpOwogICAg
ICAgICB9CiAgICAgICAgIGlmIChtX2ZhaWx1cmVSZWFzb24pCiAgICAgICAgICAgICBjb2RlQmxv
Y2suc2V0RmFsbEJhY2tXaXRoRmFpbHVyZVJlYXNvbigqbV9mYWlsdXJlUmVhc29uKTsKQEAgLTQ0
NTEsNyArNDQ3OCw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJ
VEluZm8sIHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogICAgIC8vIFRoZSByZWd1bGFyIGV4cHJl
c3Npb24gZXhwcmVzc2VkIGFzIGEgbGluZWFyIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMuCiAgICAg
VmVjdG9yPFlhcnJPcCwgMTI4PiBtX29wczsKICAgICBWZWN0b3I8VW5pcXVlUmVmPEJveWVyTW9v
cmVJbmZvPiwgND4gbV9ibUluZm9zOwotICAgIFZlY3RvcjxVbmlxdWVSZWY8Qm95ZXJNb29yZUJ5
dGVWZWN0b3I+PiBtX2JtVmVjdG9yOworICAgIFZlY3RvcjxVbmlxdWVSZWY8Qm95ZXJNb29yZUJp
dG1hcDo6TWFwPj4gbV9ibU1hcHM7CiAKICAgICAvLyBUaGlzIHJlY29yZHMgdGhlIGN1cnJlbnQg
aW5wdXQgb2Zmc2V0IGJlaW5nIGFwcGxpZWQgZHVlIHRvIHRoZSBjdXJyZW50CiAgICAgLy8gc2V0
IG9mIGFsdGVybmF0aXZlcyB3ZSBhcmUgbmVzdGVkIHdpdGhpbi4gRS5nLiB3aGVuIG1hdGNoaW5n
IHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCmluZGV4IDU5MjliMTJiZjU4ODVh
MmRkMDhhMDNkNzA0N2EzMDgzNTNkNTY5ZDEuLjU4OWY4NjMzMmZiMzUyNDE0M2Y3YjIyOTE2MDcx
MjQ5YjAwYjZkYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJK
SVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKQEAgLTkwLDE4
ICs5MCw2IEBAIGNsYXNzIEJveWVyTW9vcmVCaXRtYXAgewogICAgIGJvb2wgbV9pc01hc2tFZmZl
Y3RpdmUgeyBmYWxzZSB9OwogfTsKIAotY2xhc3MgQm95ZXJNb29yZUJ5dGVWZWN0b3IgOiBwdWJs
aWMgc3RkOjphcnJheTx1aW50OF90LCBCb3llck1vb3JlQml0bWFwOjptYXBTaXplPiB7Ci0gICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgQm95ZXJNb29yZUJ5dGVWZWN0
b3IoY29uc3QgQm95ZXJNb29yZUJpdG1hcDo6TWFwJiBtYXApCi0gICAgewotICAgICAgICBmaWxs
KDApOwotICAgICAgICBtYXAuZm9yRWFjaFNldEJpdChbJl0odW5zaWduZWQgaW5kZXgpIHsKLSAg
ICAgICAgICAgICgqdGhpcylbaW5kZXhdID0gMTsKLSAgICAgICAgfSk7Ci0gICAgfQotfTsKLQog
I2lmIENQVShBUk02NEUpCiBleHRlcm4gIkMiIEVuY29kZWRNYXRjaFJlc3VsdCB2bUVudHJ5VG9Z
YXJySklUKGNvbnN0IHZvaWQqIGlucHV0LCBVQ1BVUmVnaXN0ZXIgc3RhcnQsIFVDUFVSZWdpc3Rl
ciBsZW5ndGgsIGludCogb3V0cHV0LCBNYXRjaGluZ0NvbnRleHRIb2xkZXIqIG1hdGNoaW5nQ29u
dGV4dCwgY29uc3Qgdm9pZCogY29kZVB0cik7CiBleHRlcm4gIkMiIHZvaWQgdm1FbnRyeVRvWWFy
ckpJVEFmdGVyKHZvaWQpOwpAQCAtMTI0LDE0ICsxMTIsMTQgQEAgY2xhc3MgWWFyckNvZGVCbG9j
ayB7CiAKICAgICBib29sIGhhczhCaXRDb2RlKCkgeyByZXR1cm4gbV9yZWY4LnNpemUoKTsgfQog
ICAgIGJvb2wgaGFzMTZCaXRDb2RlKCkgeyByZXR1cm4gbV9yZWYxNi5zaXplKCk7IH0KLSAgICB2
b2lkIHNldDhCaXRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxZYXJyOEJpdFB0clRhZz4gcmVm
LCBWZWN0b3I8VW5pcXVlUmVmPEJveWVyTW9vcmVCeXRlVmVjdG9yPj4gbWFwcykKKyAgICB2b2lk
IHNldDhCaXRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxZYXJyOEJpdFB0clRhZz4gcmVmLCBW
ZWN0b3I8VW5pcXVlUmVmPEJveWVyTW9vcmVCaXRtYXA6Ok1hcD4+IG1hcHMpCiAgICAgewogICAg
ICAgICBtX3JlZjggPSByZWY7CiAgICAgICAgIG1fbWFwcy5yZXNlcnZlQ2FwYWNpdHkobV9tYXBz
LnNpemUoKSArIG1hcHMuc2l6ZSgpKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7
IGluZGV4IDwgbWFwcy5zaXplKCk7ICsraW5kZXgpCiAgICAgICAgICAgICBtX21hcHMudW5jaGVj
a2VkQXBwZW5kKFdURk1vdmUobWFwc1tpbmRleF0pKTsKICAgICB9Ci0gICAgdm9pZCBzZXQxNkJp
dENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFlhcnIxNkJpdFB0clRhZz4gcmVmLCBWZWN0b3I8
VW5pcXVlUmVmPEJveWVyTW9vcmVCeXRlVmVjdG9yPj4gbWFwcykKKyAgICB2b2lkIHNldDE2Qml0
Q29kZShNYWNyb0Fzc2VtYmxlckNvZGVSZWY8WWFycjE2Qml0UHRyVGFnPiByZWYsIFZlY3RvcjxV
bmlxdWVSZWY8Qm95ZXJNb29yZUJpdG1hcDo6TWFwPj4gbWFwcykKICAgICB7CiAgICAgICAgIG1f
cmVmMTYgPSByZWY7CiAgICAgICAgIG1fbWFwcy5yZXNlcnZlQ2FwYWNpdHkobV9tYXBzLnNpemUo
KSArIG1hcHMuc2l6ZSgpKTsKQEAgLTE0MSwxNCArMTI5LDE0IEBAIGNsYXNzIFlhcnJDb2RlQmxv
Y2sgewogCiAgICAgYm9vbCBoYXM4Qml0Q29kZU1hdGNoT25seSgpIHsgcmV0dXJuIG1fbWF0Y2hP
bmx5OC5zaXplKCk7IH0KICAgICBib29sIGhhczE2Qml0Q29kZU1hdGNoT25seSgpIHsgcmV0dXJu
IG1fbWF0Y2hPbmx5MTYuc2l6ZSgpOyB9Ci0gICAgdm9pZCBzZXQ4Qml0Q29kZU1hdGNoT25seShN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8WWFyck1hdGNoT25seThCaXRQdHJUYWc+IG1hdGNoT25seSwg
VmVjdG9yPFVuaXF1ZVJlZjxCb3llck1vb3JlQnl0ZVZlY3Rvcj4+IG1hcHMpCisgICAgdm9pZCBz
ZXQ4Qml0Q29kZU1hdGNoT25seShNYWNyb0Fzc2VtYmxlckNvZGVSZWY8WWFyck1hdGNoT25seThC
aXRQdHJUYWc+IG1hdGNoT25seSwgVmVjdG9yPFVuaXF1ZVJlZjxCb3llck1vb3JlQml0bWFwOjpN
YXA+PiBtYXBzKQogICAgIHsKICAgICAgICAgbV9tYXRjaE9ubHk4ID0gbWF0Y2hPbmx5OwogICAg
ICAgICBtX21hcHMucmVzZXJ2ZUNhcGFjaXR5KG1fbWFwcy5zaXplKCkgKyBtYXBzLnNpemUoKSk7
CiAgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IG1hcHMuc2l6ZSgpOyAr
K2luZGV4KQogICAgICAgICAgICAgbV9tYXBzLnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKG1hcHNb
aW5kZXhdKSk7CiAgICAgfQotICAgIHZvaWQgc2V0MTZCaXRDb2RlTWF0Y2hPbmx5KE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjxZYXJyTWF0Y2hPbmx5MTZCaXRQdHJUYWc+IG1hdGNoT25seSwgVmVjdG9y
PFVuaXF1ZVJlZjxCb3llck1vb3JlQnl0ZVZlY3Rvcj4+IG1hcHMpCisgICAgdm9pZCBzZXQxNkJp
dENvZGVNYXRjaE9ubHkoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFlhcnJNYXRjaE9ubHkxNkJpdFB0
clRhZz4gbWF0Y2hPbmx5LCBWZWN0b3I8VW5pcXVlUmVmPEJveWVyTW9vcmVCaXRtYXA6Ok1hcD4+
IG1hcHMpCiAgICAgewogICAgICAgICBtX21hdGNoT25seTE2ID0gbWF0Y2hPbmx5OwogICAgICAg
ICBtX21hcHMucmVzZXJ2ZUNhcGFjaXR5KG1fbWFwcy5zaXplKCkgKyBtYXBzLnNpemUoKSk7CkBA
IC0yNTAsMTEgKzIzOCwxMSBAQCBjbGFzcyBZYXJyQ29kZUJsb2NrIHsKICAgICAgICAgbV9mYWls
dXJlUmVhc29uID0gc3RkOjpudWxsb3B0OwogICAgIH0KIAotICAgIGNvbnN0IHVpbnQ4X3QqIHRy
eVJldXNlQm95ZXJNb29yZUJ5dGVWZWN0b3IodW5zaWduZWQgaW5kZXgsIEJveWVyTW9vcmVCeXRl
VmVjdG9yJiB2ZWN0b3IpIGNvbnN0CisgICAgY29uc3QgQm95ZXJNb29yZUJpdG1hcDo6TWFwOjpX
b3JkVHlwZSogdHJ5UmV1c2VCb3llck1vb3JlQml0bWFwKGNvbnN0IEJveWVyTW9vcmVCaXRtYXA6
Ok1hcCYgbWFwKSBjb25zdAogICAgIHsKLSAgICAgICAgaWYgKGluZGV4IDwgbV9tYXBzLnNpemUo
KSkgewotICAgICAgICAgICAgaWYgKG1fbWFwc1tpbmRleF0uZ2V0KCkgPT0gdmVjdG9yKQotICAg
ICAgICAgICAgICAgIHJldHVybiBtX21hcHNbaW5kZXhdLT5kYXRhKCk7CisgICAgICAgIGZvciAo
YXV0byYgc3RvcmVkIDogbV9tYXBzKSB7CisgICAgICAgICAgICBpZiAoc3RvcmVkLmdldCgpID09
IG1hcCkKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RvcmVkLT5zdG9yYWdlKCk7CiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtMjY0LDcgKzI1Miw3IEBAIGNs
YXNzIFlhcnJDb2RlQmxvY2sgewogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxZYXJyMTZCaXRQ
dHJUYWc+IG1fcmVmMTY7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFlhcnJNYXRjaE9ubHk4
Qml0UHRyVGFnPiBtX21hdGNoT25seTg7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFlhcnJN
YXRjaE9ubHkxNkJpdFB0clRhZz4gbV9tYXRjaE9ubHkxNjsKLSAgICBWZWN0b3I8VW5pcXVlUmVm
PEJveWVyTW9vcmVCeXRlVmVjdG9yPj4gbV9tYXBzOworICAgIFZlY3RvcjxVbmlxdWVSZWY8Qm95
ZXJNb29yZUJpdG1hcDo6TWFwPj4gbV9tYXBzOwogICAgIGJvb2wgbV91c2VzUGF0dGVybkNvbnRl
eHRCdWZmZXIgeyBmYWxzZSB9OwogICAgIHN0ZDo6b3B0aW9uYWw8SklURmFpbHVyZVJlYXNvbj4g
bV9mYWlsdXJlUmVhc29uOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0JpdG1hcC5o
IGIvU291cmNlL1dURi93dGYvQml0bWFwLmgKaW5kZXggYzUwMTEwYjVkZWExM2NlNGJhNWJhZGEz
ZTQ5ZWI3MWY1YzFkMjdhMy4uZjY4MGU1NTYwOTlhODU4YjczMTZlYTBhZTA4NjA5NDQyMDBiMTNj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQml0bWFwLmgKKysrIGIvU291cmNlL1dURi93
dGYvQml0bWFwLmgKQEAgLTMzLDEyICszMywxNCBAQCBuYW1lc3BhY2UgV1RGIHsKIHRlbXBsYXRl
PHNpemVfdCBzaXplPgogdXNpbmcgQml0bWFwV29yZFR5cGUgPSBzdGQ6OmNvbmRpdGlvbmFsX3Q8
KHNpemUgPD0gMzIgJiYgc2l6ZW9mKFVDUFVSZWdpc3RlcikgPiBzaXplb2YodWludDMyX3QpKSwg
dWludDMyX3QsIFVDUFVSZWdpc3Rlcj47CiAKLXRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0
eXBlbmFtZSBXb3JkVHlwZSA9IEJpdG1hcFdvcmRUeXBlPGJpdG1hcFNpemU+PgordGVtcGxhdGU8
c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFBhc3NlZFdvcmRUeXBlID0gQml0bWFwV29yZFR5
cGU8Yml0bWFwU2l6ZT4+CiBjbGFzcyBCaXRtYXAgZmluYWwgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogICAgIAotICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFdvcmRUeXBlKSA8PSBz
aXplb2YoVUNQVVJlZ2lzdGVyKSwgIldvcmRUeXBlIG11c3Qgbm90IGJlIGJpZ2dlciB0aGFuIHRo
ZSBDUFUgYXRvbWljIHdvcmQgc2l6ZSIpOwogcHVibGljOgorICAgIHVzaW5nIFdvcmRUeXBlID0g
UGFzc2VkV29yZFR5cGU7CisKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihXb3JkVHlwZSkgPD0g
c2l6ZW9mKFVDUFVSZWdpc3RlciksICJXb3JkVHlwZSBtdXN0IG5vdCBiZSBiaWdnZXIgdGhhbiB0
aGUgQ1BVIGF0b21pYyB3b3JkIHNpemUiKTsKICAgICBjb25zdGV4cHIgQml0bWFwKCk7CiAKICAg
ICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBzaXplKCkKQEAgLTEzMyw2ICsxMzUsOSBAQCBjbGFz
cyBCaXRtYXAgZmluYWwgewogCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0
OwogCisgICAgV29yZFR5cGUqIHN0b3JhZ2UoKSB7IHJldHVybiBiaXRzLmRhdGEoKTsgfQorICAg
IGNvbnN0IFdvcmRUeXBlKiBzdG9yYWdlKCkgY29uc3QgeyByZXR1cm4gYml0cy5kYXRhKCk7IH0K
KwogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHdvcmRTaXplID0gc2l6
ZW9mKFdvcmRUeXBlKSAqIDg7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB3b3JkcyA9
IChiaXRtYXBTaXplICsgd29yZFNpemUgLSAxKSAvIHdvcmRTaXplOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434703</attachid>
            <date>2021-07-31 13:51:45 -0700</date>
            <delta_ts>2021-08-02 10:14:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228676-20210731135144.patch</filename>
            <type>text/plain</type>
            <size>17907</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ODIxNmMxMjgwMDY5MjhkMzg5ODczZTU5YjFkZGZjZjI0OGY4ODk2Li41OTUxN2U4MWUzMjQwYTdm
YmVjY2FiYTFiMGQyYjczMWM2ZGQ2MzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAyMS0wNy0zMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFlhcnIgc2hvdWxkIHVzZSBCaXRtYXAgaW5zdGVhZCBvZiBCeXRl
VmVjdG9yIGZvciBCb3llck1vb3JlIHNlYXJjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2Ugb2JzZXJ2ZWQgdGhhdCB1c2luZyBCaXRtYXAgaW5zdGVh
ZCBvZiBCeXRlVmVjdG9yIGRvZXMgbm90IHBvc2UgcGVyZm9ybWFuY2UKKyAgICAgICAgaXNzdWUu
IEl0IHdhcyBuZXV0cmFsIGluIGpxdWVyeS10b2RvbXZjLXJlZ2V4cC5qcy4gSW4gdGhhdCBjYXNl
LCB3ZSBzaG91bGQgdXNlCisgICAgICAgIEJpdG1hcCBzaW5jZSBpdCBpcyA4eCBzbWFsbGVyLgor
CisgICAgICAgIFdlIGFsc28gc2VhcmNoIHJldXNhYmxlIEJpdG1hcCBmcm9tIFZlY3RvciBzaW5j
ZSBjb21wYXJpbmcgMTI4Yml0IEJpdG1hcCBpcworICAgICAgICBzdXBlciBmYXN0IHNvIHdlIGRv
IG5vdCBuZWVkIHRvIGJvdGhlciBhYm91dCBsaW5lYXIgc2VhcmNoIGhlcmUgKCMgb2YgQml0bWFw
CisgICAgICAgIGlzIGN1cnJlbnRseSB1cCB0byA0KS4KKworICAgICAgICBUbyBtYWtlIGNvZGUg
c2ltcGxpZmllZCwgd2UgYWRkIHJlZ1QyIHRvIEFSTXY3IGFuZCBNSVBTIGJhY2tlbmQgb2YgWWFy
ckpJVC4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRv
VCAgICAgICAgICAgICAgICAgICAgIFBhdGNoZWQKKworICAgICAgICAgICAganF1ZXJ5LXRvZG9t
dmMtcmVnZXhwICAgICAgNTU1Ljk1NjYrLTAuODg1NiAgICAgICAgICA1NTUuMDczNystMC45NzE3
CisKKyAgICAgICAgKiB5YXJyL1lhcnJKSVQuY3BwOgorICAgICAgICAoSlNDOjpZYXJyOjpCb3ll
ck1vb3JlSW5mbzo6aW5kZXggY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpZYXJyOjpC
b3llck1vb3JlSW5mbzo6c2V0SW5kZXgpOiBEZWxldGVkLgorICAgICAgICAqIHlhcnIvWWFyckpJ
VC5oOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyQ29kZUJsb2NrOjpzZXQ4Qml0Q29kZSk6Cisg
ICAgICAgIChKU0M6OllhcnI6OllhcnJDb2RlQmxvY2s6OnNldDE2Qml0Q29kZSk6CisgICAgICAg
IChKU0M6OllhcnI6OllhcnJDb2RlQmxvY2s6OnNldDhCaXRDb2RlTWF0Y2hPbmx5KToKKyAgICAg
ICAgKEpTQzo6WWFycjo6WWFyckNvZGVCbG9jazo6c2V0MTZCaXRDb2RlTWF0Y2hPbmx5KToKKyAg
ICAgICAgKEpTQzo6WWFycjo6WWFyckNvZGVCbG9jazo6dHJ5UmV1c2VCb3llck1vb3JlQml0bWFw
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6WWFycjo6Qm95ZXJNb29yZUJ5dGVWZWN0b3I6OkJveWVy
TW9vcmVCeXRlVmVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6WWFycjo6WWFyckNvZGVC
bG9jazo6dHJ5UmV1c2VCb3llck1vb3JlQnl0ZVZlY3RvciBjb25zdCk6IERlbGV0ZWQuCisKIDIw
MjEtMDctMzEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBb
SlNDXSBNb3ZlIEpJVF9VTklDT0RFX0VYUFJFU1NJT05TIHRvIEVOQUJMRShZQVJSX0pJVF9VTklD
T0RFX0VYUFJFU1NJT05TKSBpbiBQbGF0Zm9ybUVuYWJsZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDBmZWZiYjdlY2MzMjY5
ZGQ1OGU2ZTMwMjBhMWM4NTdmYTIyY2M4YWUuLjk2YzQ0MDE4MjdlNDUxN2ZlOWNiODhlNjA0MWIx
OTkxMGQ3NjcwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDctMzEgIFl1c3VrZSBTdXp1
a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBZYXJyIHNob3VsZCB1c2Ug
Qml0bWFwIGluc3RlYWQgb2YgQnl0ZVZlY3RvciBmb3IgQm95ZXJNb29yZSBzZWFyY2gKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODY3NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0JpdG1hcC5o
OgorCiAyMDIxLTA3LTMxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0pTQ10gTW92ZSBKSVRfVU5JQ09ERV9FWFBSRVNTSU9OUyB0byBFTkFCTEUoWUFSUl9K
SVRfVU5JQ09ERV9FWFBSRVNTSU9OUykgaW4gUGxhdGZvcm1FbmFibGUuaApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySklULmNwcAppbmRleCBjY2E3NDgyYzg5MDhlMDAxMzlkMzE2ZTgxNzZh
ZDdjMmVmNWM4YWFlLi41NjM2MDdhYTkwOTBhYTQ3MTZjMjExMTg3ZWE2NWMwMGQ4NzBmNmVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcApAQCAtNjksMTIgKzY5LDYgQEAg
Y2xhc3MgQm95ZXJNb29yZUluZm8gewogICAgICAgICBtX2NoYXJhY3RlcnNbaW5kZXhdLmFkZChj
aGFyYWN0ZXIpOwogICAgIH0KIAotICAgIHVuc2lnbmVkIGluZGV4KCkgY29uc3QgeyByZXR1cm4g
bV9pbmRleDsgfQotICAgIHZvaWQgc2V0SW5kZXgodW5zaWduZWQgaW5kZXgpCi0gICAgewotICAg
ICAgICBtX2luZGV4ID0gaW5kZXg7Ci0gICAgfQotCiAgICAgc3RhdGljIFVuaXF1ZVJlZjxCb3ll
ck1vb3JlSW5mbz4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKICAgICB7CiAgICAgICAgIHJldHVy
biBtYWtlVW5pcXVlUmVmPEJveWVyTW9vcmVJbmZvPihsZW5ndGgpOwpAQCAtODcsNyArODEsNiBA
QCBjbGFzcyBCb3llck1vb3JlSW5mbyB7CiAgICAgc3RkOjp0dXBsZTxpbnQsIHVuc2lnbmVkLCB1
bnNpZ25lZD4gZmluZEJlc3RDaGFyYWN0ZXJTZXF1ZW5jZSh1bnNpZ25lZCBudW1iZXJPZkNhbmRp
ZGF0ZXNMaW1pdCkgY29uc3Q7CiAKICAgICBWZWN0b3I8Qm95ZXJNb29yZUJpdG1hcD4gbV9jaGFy
YWN0ZXJzOwotICAgIHVuc2lnbmVkIG1faW5kZXggeyAwIH07CiB9OwogCiBzdGQ6OnR1cGxlPGlu
dCwgdW5zaWduZWQsIHVuc2lnbmVkPiBCb3llck1vb3JlSW5mbzo6ZmluZEJlc3RDaGFyYWN0ZXJT
ZXF1ZW5jZSh1bnNpZ25lZCBudW1iZXJPZkNhbmRpZGF0ZXNMaW1pdCkgY29uc3QKQEAgLTE2Niw3
ICsxNTksMTEgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5m
bywgcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAKICAgICBzdGF0aWMgY29uc3RleHByIFJlZ2lz
dGVySUQgcmVnVDAgPSBBUk1SZWdpc3RlcnM6OnI0OwogICAgIHN0YXRpYyBjb25zdGV4cHIgUmVn
aXN0ZXJJRCByZWdUMSA9IEFSTVJlZ2lzdGVyczo6cjU7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBS
ZWdpc3RlcklEIGluaXRpYWxTdGFydCA9IEFSTVJlZ2lzdGVyczo6cjg7CisgICAgLy8gcjYgaXMg
cmVzZXJ2ZWQgZm9yIE1hY3JvQXNzZW1ibGVyQVJNdjcsCisgICAgLy8gcjcgaXMgZnAuCisgICAg
c3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlcklEIHJlZ1QyID0gQVJNUmVnaXN0ZXJzOjpyODsKKyAg
ICAvLyByOSBpcyBzYiBpbiBFQUJJLgorICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBp
bml0aWFsU3RhcnQgPSBBUk1SZWdpc3RlcnM6OnIxMDsgLy8gcjEwIGlzIFNMLCBidXQgbm8gbG9u
Z2VyIGEgc3BlY2lhbCByZWdpc3Rlci4KIAogICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJ
RCByZXR1cm5SZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjA7CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBSZWdpc3RlcklEIHJldHVyblJlZ2lzdGVyMiA9IEFSTVJlZ2lzdGVyczo6cjE7CkBAIC0yMDQs
OSArMjAxLDEyIEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVElu
Zm8sIHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0
ZXJJRCBsZW5ndGggPSBNSVBTUmVnaXN0ZXJzOjphMjsKICAgICBzdGF0aWMgY29uc3RleHByIFJl
Z2lzdGVySUQgb3V0cHV0ID0gTUlQU1JlZ2lzdGVyczo6YTM7CiAKLSAgICBzdGF0aWMgY29uc3Rl
eHByIFJlZ2lzdGVySUQgcmVnVDAgPSBNSVBTUmVnaXN0ZXJzOjp0NDsKLSAgICBzdGF0aWMgY29u
c3RleHByIFJlZ2lzdGVySUQgcmVnVDEgPSBNSVBTUmVnaXN0ZXJzOjp0NTsKLSAgICBzdGF0aWMg
Y29uc3RleHByIFJlZ2lzdGVySUQgaW5pdGlhbFN0YXJ0ID0gTUlQU1JlZ2lzdGVyczo6dDY7Cisg
ICAgLy8gdDAgaXMgcmVzZXJ2ZWQgZm9yIE1hY3JvQXNzZW1ibGVyTUlQUy4KKyAgICAvLyB0MSBp
cyByZXNlcnZlZCBmb3IgTWFjcm9Bc3NlbWJsZXJNSVBTLgorICAgIHN0YXRpYyBjb25zdGV4cHIg
UmVnaXN0ZXJJRCByZWdUMCA9IE1JUFNSZWdpc3RlcnM6OnQyOworICAgIHN0YXRpYyBjb25zdGV4
cHIgUmVnaXN0ZXJJRCByZWdUMSA9IE1JUFNSZWdpc3RlcnM6OnQzOworICAgIHN0YXRpYyBjb25z
dGV4cHIgUmVnaXN0ZXJJRCByZWdUMiA9IE1JUFNSZWdpc3RlcnM6OnQ0OworICAgIHN0YXRpYyBj
b25zdGV4cHIgUmVnaXN0ZXJJRCBpbml0aWFsU3RhcnQgPSBNSVBTUmVnaXN0ZXJzOjp0NTsKIAog
ICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCByZXR1cm5SZWdpc3RlciA9IE1JUFNSZWdp
c3RlcnM6OnYwOwogICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCByZXR1cm5SZWdpc3Rl
cjIgPSBNSVBTUmVnaXN0ZXJzOjp2MTsKQEAgLTI0MDMsMTQgKzI0MDMsNDAgQEAgY2xhc3MgWWFy
ckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklUSW5mbywgcHJpdmF0ZSBNYWNyb0Fzc2Vt
YmxlciB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVtcCgpLmxpbmtUbyhsb29wSGVh
ZCwgdGhpcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZC5saW5rKHRoaXMp
OwogICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCB1aW50OF90KiBwb2ludGVyID0gZ2V0Qm95ZXJNb29yZUJ5dGVWZWN0b3Io
b3AubV9ibUluZm8tPmluZGV4KCksIG1hcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgYXV0byogcG9pbnRlciA9IGdldEJveWVyTW9vcmVCaXRtYXAobWFwKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkYXRhTG9nTG5JZihPcHRpb25zOjp2ZXJib3NlUmVnRXhwQ29t
cGlsYXRpb24oKSwgIkZvdW5kIGJpdG1hcCBsb29rYWhlYWQgY291bnQ6KCIsIG1hcENvdW50LCAi
KSxyYW5nZTpbIiwgYmVnaW5JbmRleCwgIiwgIiwgZW5kSW5kZXgsICIpIik7CiAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIocG9pbnRlciksIHJlZ1QxKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGxvb3BIZWFkID0gbGFiZWwoKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkQ2hhcmFjdGVyKG1fY2hlY2tlZE9mZnNldCAt
IGVuZEluZGV4ICsgMSwgcmVnVDApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZDMy
KFRydXN0ZWRJbW0zMihCb3llck1vb3JlQml0bWFwOjptYXBNYXNrKSwgcmVnVDAsIHJlZ1QwKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG1hdGNoZWQgPSBicmFuY2hUZXN0OChO
b25aZXJvLCBCYXNlSW5kZXgocmVnVDEsIHJlZ1QwLCBUaW1lc09uZSkpOworI2lmIENQVShBUk02
NCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihCb3ll
ck1vb3JlQml0bWFwOjpNYXA6OldvcmRUeXBlKSA9PSBzaXplb2YodWludDY0X3QpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KDEgPDwgNiA9PSA2NCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydCgxIDw8ICg2ICsgMSkgPT0gQm95
ZXJNb29yZUJpdG1hcDo6TWFwOjpzaXplKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGV4dHJhY3RVbnNpZ25lZEJpdGZpZWxkMzIocmVnVDAsIFRydXN0ZWRJbW0zMig2KSwgVHJ1c3Rl
ZEltbTMyKDEpLCByZWdUMik7IC8vIEV4dHJhY3QgMSBiaXQgZm9yIGluZGV4LgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxvYWQ2NChCYXNlSW5kZXgocmVnVDEsIHJlZ1QyLCBUaW1lc0Vp
Z2h0KSwgcmVnVDIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVyc2hpZnQ2NChyZWdU
MCwgcmVnVDIpOyAvLyBXZSBjYW4gaWdub3JlIHVwcGVyIGJpdHMgYW5kIG9ubHkgbG93ZXIgNmJp
dHMgYXJlIGVmZmVjdGl2ZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG1hdGNo
ZWQgPSBicmFuY2hUZXN0NjQoTm9uWmVybywgcmVnVDIsIFRydXN0ZWRJbW0zMigxKSk7CisjZWxp
ZiBDUFUoWDg2XzY0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQo
c2l6ZW9mKEJveWVyTW9vcmVCaXRtYXA6Ok1hcDo6V29yZFR5cGUpID09IHNpemVvZih1aW50NjRf
dCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoMSA8PCA2ID09
IDY0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KDEgPDwgKDYg
KyAxKSA9PSBCb3llck1vb3JlQml0bWFwOjpNYXA6OnNpemUoKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbW92ZShyZWdUMCwgcmVnVDIpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVyc2hpZnQzMihUcnVzdGVkSW1tMzIoNiksIHJlZ1QyKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhbmQzMihUcnVzdGVkSW1tMzIoMSksIHJlZ1QyKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2FkNjQoQmFzZUluZGV4KHJlZ1QxLCByZWdUMiwgVGltZXNFaWdodCks
IHJlZ1QyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG1hdGNoZWQgPSBicmFu
Y2hUZXN0Qml0NjQoTm9uWmVybywgcmVnVDIsIHJlZ1QwKTsgLy8gV2UgY2FuIGlnbm9yZSB1cHBl
ciBiaXRzIHNpbmNlIG1vZHVsZS02NCBpcyBwZXJmb3JtZWQuCisjZWxzZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEJveWVyTW9vcmVCaXRtYXA6Ok1h
cDo6V29yZFR5cGUpID09IHNpemVvZih1aW50MzJfdCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRpY19hc3NlcnQoMSA8PCA1ID09IDMyKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0aWNfYXNzZXJ0KDEgPDwgKDUgKyAyKSA9PSBCb3llck1vb3JlQml0bWFwOjpN
YXA6OnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW92ZShyZWdUMCwgcmVn
VDIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVyc2hpZnQzMihUcnVzdGVkSW1tMzIo
NSksIHJlZ1QyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQzMihUcnVzdGVkSW1t
MzIoMGIxMSksIHJlZ1QyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkMzIoQmFz
ZUluZGV4KHJlZ1QxLCByZWdUMiwgVGltZXNGb3VyKSwgcmVnVDIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVyc2hpZnQzMihyZWdUMCwgcmVnVDIpOyAvLyBXZSBjYW4gaWdub3JlIHVw
cGVyIGJpdHMgYW5kIG9ubHkgbG93ZXIgNWJpdHMgYXJlIGVmZmVjdGl2ZS4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhdXRvIG1hdGNoZWQgPSBicmFuY2hUZXN0MzIoTm9uWmVybywgcmVn
VDIsIFRydXN0ZWRJbW0zMigxKSk7CisjZW5kaWYKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvcC5tX2p1bXBzLmFwcGVuZChqdW1wSWZOb0F2YWlsYWJsZUlucHV0KGVuZEluZGV4IC0gYmVn
aW5JbmRleCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1bXAoKS5saW5rVG8obG9v
cEhlYWQsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZWQubGluayh0
aGlzKTsKQEAgLTM4MjAsNyArMzg0Niw2IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBw
dWJsaWMgWWFyckpJVEluZm8sIHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogICAgICAgICAgICAg
YXV0byBibUluZm8gPSBCb3llck1vb3JlSW5mbzo6Y3JlYXRlKHN0ZDo6bWluPHVuc2lnbmVkPihk
aXNqdW5jdGlvbi0+bV9taW5pbXVtU2l6ZSwgQm95ZXJNb29yZUluZm86Om1heExlbmd0aCkpOwog
ICAgICAgICAgICAgaWYgKGNvbGxlY3RCb3llck1vb3JlSW5mbyhkaXNqdW5jdGlvbiwgY3VycmVu
dEFsdGVybmF0aXZlSW5kZXgsIGJtSW5mby5nZXQoKSkpIHsKICAgICAgICAgICAgICAgICBtX29w
cy5sYXN0KCkubV9ibUluZm8gPSBibUluZm8ucHRyKCk7Ci0gICAgICAgICAgICAgICAgYm1JbmZv
LT5zZXRJbmRleChtX2JtSW5mb3Muc2l6ZSgpKTsKICAgICAgICAgICAgICAgICBtX2JtSW5mb3Mu
YXBwZW5kKFdURk1vdmUoYm1JbmZvKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTM5
MTYsMTMgKzM5NDEsMTMgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJy
SklUSW5mbywgcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KIAotICAgIGNvbnN0IHVpbnQ4X3QqIGdldEJveWVyTW9vcmVCeXRlVmVjdG9yKHVuc2ln
bmVkIGluZGV4LCBjb25zdCBCb3llck1vb3JlQml0bWFwOjpNYXAmIG1hcCkKKyAgICBjb25zdCBC
b3llck1vb3JlQml0bWFwOjpNYXA6OldvcmRUeXBlKiBnZXRCb3llck1vb3JlQml0bWFwKGNvbnN0
IEJveWVyTW9vcmVCaXRtYXA6Ok1hcCYgbWFwKQogICAgIHsKLSAgICAgICAgYXV0byB2ZWN0b3Ig
PSBtYWtlVW5pcXVlUmVmPEJveWVyTW9vcmVCeXRlVmVjdG9yPihtYXApOwotICAgICAgICBpZiAo
Y29uc3QgYXV0byogZXhpc3RpbmdQb2ludGVyID0gbV9jb2RlQmxvY2sudHJ5UmV1c2VCb3llck1v
b3JlQnl0ZVZlY3RvcihpbmRleCwgdmVjdG9yLmdldCgpKSkKKyAgICAgICAgaWYgKGNvbnN0IGF1
dG8qIGV4aXN0aW5nUG9pbnRlciA9IG1fY29kZUJsb2NrLnRyeVJldXNlQm95ZXJNb29yZUJpdG1h
cChtYXApKQogICAgICAgICAgICByZXR1cm4gZXhpc3RpbmdQb2ludGVyOwotICAgICAgICBjb25z
dCB1aW50OF90KiBwb2ludGVyID0gdmVjdG9yLT5kYXRhKCk7Ci0gICAgICAgIG1fYm1WZWN0b3Iu
YXBwZW5kKFdURk1vdmUodmVjdG9yKSk7CisgICAgICAgIGF1dG8gaGVhcE1hcCA9IG1ha2VVbmlx
dWVSZWY8Qm95ZXJNb29yZUJpdG1hcDo6TWFwPihtYXApOworICAgICAgICBjb25zdCBhdXRvKiBw
b2ludGVyID0gaGVhcE1hcC0+c3RvcmFnZSgpOworICAgICAgICBtX2JtTWFwcy5hcHBlbmQoV1RG
TW92ZShoZWFwTWFwKSk7CiAgICAgICAgIHJldHVybiBwb2ludGVyOwogICAgIH0KIApAQCAtMzk5
MSw2ICs0MDE2LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBZYXJySklU
SW5mbywgcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAgIHB1c2goQVJNUmVnaXN0ZXJz
OjpyNSk7CiAgICAgICAgIHB1c2goQVJNUmVnaXN0ZXJzOjpyNik7CiAgICAgICAgIHB1c2goQVJN
UmVnaXN0ZXJzOjpyOCk7CisgICAgICAgIHB1c2goQVJNUmVnaXN0ZXJzOjpyMTApOwogI2VsaWYg
Q1BVKE1JUFMpCiAgICAgICAgIC8vIERvIG5vdGhpbmcuCiAjZW5kaWYKQEAgLTQwMzMsNiArNDA1
OSw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgWWFyckpJVEluZm8sIHBy
aXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogICAgICAgICAgICAgICAgIHBvcFBhaXIoZnJhbWVQb2lu
dGVyUmVnaXN0ZXIsIGxpbmtSZWdpc3Rlcik7CiAgICAgICAgIH0KICNlbGlmIENQVShBUk1fVEhV
TUIyKQorICAgICAgICBwb3AoQVJNUmVnaXN0ZXJzOjpyMTApOwogICAgICAgICBwb3AoQVJNUmVn
aXN0ZXJzOjpyOCk7CiAgICAgICAgIHBvcChBUk1SZWdpc3RlcnM6OnI2KTsKICAgICAgICAgcG9w
KEFSTVJlZ2lzdGVyczo6cjUpOwpAQCAtNDIwMywxNCArNDIzMCwxNCBAQCBjbGFzcyBZYXJyR2Vu
ZXJhdG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVy
IHsKIAogICAgICAgICBpZiAobV9jb21waWxlTW9kZSA9PSBKSVRDb21waWxlTW9kZTo6TWF0Y2hP
bmx5KSB7CiAgICAgICAgICAgICBpZiAobV9jaGFyU2l6ZSA9PSBDaGFyU2l6ZTo6Q2hhcjgpCi0g
ICAgICAgICAgICAgICAgY29kZUJsb2NrLnNldDhCaXRDb2RlTWF0Y2hPbmx5KEZJTkFMSVpFX1JF
R0VYUF9DT0RFKGxpbmtCdWZmZXIsIFlhcnJNYXRjaE9ubHk4Qml0UHRyVGFnLCAiTWF0Y2gtb25s
eSA4LWJpdCByZWd1bGFyIGV4cHJlc3Npb24iKSwgV1RGTW92ZShtX2JtVmVjdG9yKSk7CisgICAg
ICAgICAgICAgICAgY29kZUJsb2NrLnNldDhCaXRDb2RlTWF0Y2hPbmx5KEZJTkFMSVpFX1JFR0VY
UF9DT0RFKGxpbmtCdWZmZXIsIFlhcnJNYXRjaE9ubHk4Qml0UHRyVGFnLCAiTWF0Y2gtb25seSA4
LWJpdCByZWd1bGFyIGV4cHJlc3Npb24iKSwgV1RGTW92ZShtX2JtTWFwcykpOwogICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIGNvZGVCbG9jay5zZXQxNkJpdENvZGVNYXRjaE9ubHko
RklOQUxJWkVfUkVHRVhQX0NPREUobGlua0J1ZmZlciwgWWFyck1hdGNoT25seTE2Qml0UHRyVGFn
LCAiTWF0Y2gtb25seSAxNi1iaXQgcmVndWxhciBleHByZXNzaW9uIiksIFdURk1vdmUobV9ibVZl
Y3RvcikpOworICAgICAgICAgICAgICAgIGNvZGVCbG9jay5zZXQxNkJpdENvZGVNYXRjaE9ubHko
RklOQUxJWkVfUkVHRVhQX0NPREUobGlua0J1ZmZlciwgWWFyck1hdGNoT25seTE2Qml0UHRyVGFn
LCAiTWF0Y2gtb25seSAxNi1iaXQgcmVndWxhciBleHByZXNzaW9uIiksIFdURk1vdmUobV9ibU1h
cHMpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChtX2NoYXJTaXplID09IENo
YXJTaXplOjpDaGFyOCkKLSAgICAgICAgICAgICAgICBjb2RlQmxvY2suc2V0OEJpdENvZGUoRklO
QUxJWkVfUkVHRVhQX0NPREUobGlua0J1ZmZlciwgWWFycjhCaXRQdHJUYWcsICI4LWJpdCByZWd1
bGFyIGV4cHJlc3Npb24iKSwgV1RGTW92ZShtX2JtVmVjdG9yKSk7CisgICAgICAgICAgICAgICAg
Y29kZUJsb2NrLnNldDhCaXRDb2RlKEZJTkFMSVpFX1JFR0VYUF9DT0RFKGxpbmtCdWZmZXIsIFlh
cnI4Qml0UHRyVGFnLCAiOC1iaXQgcmVndWxhciBleHByZXNzaW9uIiksIFdURk1vdmUobV9ibU1h
cHMpKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBjb2RlQmxvY2suc2V0MTZC
aXRDb2RlKEZJTkFMSVpFX1JFR0VYUF9DT0RFKGxpbmtCdWZmZXIsIFlhcnIxNkJpdFB0clRhZywg
IjE2LWJpdCByZWd1bGFyIGV4cHJlc3Npb24iKSwgV1RGTW92ZShtX2JtVmVjdG9yKSk7CisgICAg
ICAgICAgICAgICAgY29kZUJsb2NrLnNldDE2Qml0Q29kZShGSU5BTElaRV9SRUdFWFBfQ09ERShs
aW5rQnVmZmVyLCBZYXJyMTZCaXRQdHJUYWcsICIxNi1iaXQgcmVndWxhciBleHByZXNzaW9uIiks
IFdURk1vdmUobV9ibU1hcHMpKTsKICAgICAgICAgfQogICAgICAgICBpZiAobV9mYWlsdXJlUmVh
c29uKQogICAgICAgICAgICAgY29kZUJsb2NrLnNldEZhbGxCYWNrV2l0aEZhaWx1cmVSZWFzb24o
Km1fZmFpbHVyZVJlYXNvbik7CkBAIC00NDQ5LDcgKzQ0NzYsNyBAQCBjbGFzcyBZYXJyR2VuZXJh
dG9yIGZpbmFsIDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsK
ICAgICAvLyBUaGUgcmVndWxhciBleHByZXNzaW9uIGV4cHJlc3NlZCBhcyBhIGxpbmVhciBzZXF1
ZW5jZSBvZiBvcGVyYXRpb25zLgogICAgIFZlY3RvcjxZYXJyT3AsIDEyOD4gbV9vcHM7CiAgICAg
VmVjdG9yPFVuaXF1ZVJlZjxCb3llck1vb3JlSW5mbz4sIDQ+IG1fYm1JbmZvczsKLSAgICBWZWN0
b3I8VW5pcXVlUmVmPEJveWVyTW9vcmVCeXRlVmVjdG9yPj4gbV9ibVZlY3RvcjsKKyAgICBWZWN0
b3I8VW5pcXVlUmVmPEJveWVyTW9vcmVCaXRtYXA6Ok1hcD4+IG1fYm1NYXBzOwogCiAgICAgLy8g
VGhpcyByZWNvcmRzIHRoZSBjdXJyZW50IGlucHV0IG9mZnNldCBiZWluZyBhcHBsaWVkIGR1ZSB0
byB0aGUgY3VycmVudAogICAgIC8vIHNldCBvZiBhbHRlcm5hdGl2ZXMgd2UgYXJlIG5lc3RlZCB3
aXRoaW4uIEUuZy4gd2hlbiBtYXRjaGluZyB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJK
SVQuaAppbmRleCA1OTI5YjEyYmY1ODg1YTJkZDA4YTAzZDcwNDdhMzA4MzUzZDU2OWQxLi41ODlm
ODYzMzJmYjM1MjQxNDNmN2IyMjkxNjA3MTI0OWIwMGI2ZGM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3lhcnIvWWFyckpJVC5oCkBAIC05MCwxOCArOTAsNiBAQCBjbGFzcyBCb3llck1vb3JlQml0bWFw
IHsKICAgICBib29sIG1faXNNYXNrRWZmZWN0aXZlIHsgZmFsc2UgfTsKIH07CiAKLWNsYXNzIEJv
eWVyTW9vcmVCeXRlVmVjdG9yIDogcHVibGljIHN0ZDo6YXJyYXk8dWludDhfdCwgQm95ZXJNb29y
ZUJpdG1hcDo6bWFwU2l6ZT4gewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGlj
OgotICAgIEJveWVyTW9vcmVCeXRlVmVjdG9yKGNvbnN0IEJveWVyTW9vcmVCaXRtYXA6Ok1hcCYg
bWFwKQotICAgIHsKLSAgICAgICAgZmlsbCgwKTsKLSAgICAgICAgbWFwLmZvckVhY2hTZXRCaXQo
WyZdKHVuc2lnbmVkIGluZGV4KSB7Ci0gICAgICAgICAgICAoKnRoaXMpW2luZGV4XSA9IDE7Ci0g
ICAgICAgIH0pOwotICAgIH0KLX07Ci0KICNpZiBDUFUoQVJNNjRFKQogZXh0ZXJuICJDIiBFbmNv
ZGVkTWF0Y2hSZXN1bHQgdm1FbnRyeVRvWWFyckpJVChjb25zdCB2b2lkKiBpbnB1dCwgVUNQVVJl
Z2lzdGVyIHN0YXJ0LCBVQ1BVUmVnaXN0ZXIgbGVuZ3RoLCBpbnQqIG91dHB1dCwgTWF0Y2hpbmdD
b250ZXh0SG9sZGVyKiBtYXRjaGluZ0NvbnRleHQsIGNvbnN0IHZvaWQqIGNvZGVQdHIpOwogZXh0
ZXJuICJDIiB2b2lkIHZtRW50cnlUb1lhcnJKSVRBZnRlcih2b2lkKTsKQEAgLTEyNCwxNCArMTEy
LDE0IEBAIGNsYXNzIFlhcnJDb2RlQmxvY2sgewogCiAgICAgYm9vbCBoYXM4Qml0Q29kZSgpIHsg
cmV0dXJuIG1fcmVmOC5zaXplKCk7IH0KICAgICBib29sIGhhczE2Qml0Q29kZSgpIHsgcmV0dXJu
IG1fcmVmMTYuc2l6ZSgpOyB9Ci0gICAgdm9pZCBzZXQ4Qml0Q29kZShNYWNyb0Fzc2VtYmxlckNv
ZGVSZWY8WWFycjhCaXRQdHJUYWc+IHJlZiwgVmVjdG9yPFVuaXF1ZVJlZjxCb3llck1vb3JlQnl0
ZVZlY3Rvcj4+IG1hcHMpCisgICAgdm9pZCBzZXQ4Qml0Q29kZShNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY8WWFycjhCaXRQdHJUYWc+IHJlZiwgVmVjdG9yPFVuaXF1ZVJlZjxCb3llck1vb3JlQml0bWFw
OjpNYXA+PiBtYXBzKQogICAgIHsKICAgICAgICAgbV9yZWY4ID0gcmVmOwogICAgICAgICBtX21h
cHMucmVzZXJ2ZUNhcGFjaXR5KG1fbWFwcy5zaXplKCkgKyBtYXBzLnNpemUoKSk7CiAgICAgICAg
IGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IG1hcHMuc2l6ZSgpOyArK2luZGV4KQog
ICAgICAgICAgICAgbV9tYXBzLnVuY2hlY2tlZEFwcGVuZChXVEZNb3ZlKG1hcHNbaW5kZXhdKSk7
CiAgICAgfQotICAgIHZvaWQgc2V0MTZCaXRDb2RlKE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxZYXJy
MTZCaXRQdHJUYWc+IHJlZiwgVmVjdG9yPFVuaXF1ZVJlZjxCb3llck1vb3JlQnl0ZVZlY3Rvcj4+
IG1hcHMpCisgICAgdm9pZCBzZXQxNkJpdENvZGUoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFlhcnIx
NkJpdFB0clRhZz4gcmVmLCBWZWN0b3I8VW5pcXVlUmVmPEJveWVyTW9vcmVCaXRtYXA6Ok1hcD4+
IG1hcHMpCiAgICAgewogICAgICAgICBtX3JlZjE2ID0gcmVmOwogICAgICAgICBtX21hcHMucmVz
ZXJ2ZUNhcGFjaXR5KG1fbWFwcy5zaXplKCkgKyBtYXBzLnNpemUoKSk7CkBAIC0xNDEsMTQgKzEy
OSwxNCBAQCBjbGFzcyBZYXJyQ29kZUJsb2NrIHsKIAogICAgIGJvb2wgaGFzOEJpdENvZGVNYXRj
aE9ubHkoKSB7IHJldHVybiBtX21hdGNoT25seTguc2l6ZSgpOyB9CiAgICAgYm9vbCBoYXMxNkJp
dENvZGVNYXRjaE9ubHkoKSB7IHJldHVybiBtX21hdGNoT25seTE2LnNpemUoKTsgfQotICAgIHZv
aWQgc2V0OEJpdENvZGVNYXRjaE9ubHkoTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPFlhcnJNYXRjaE9u
bHk4Qml0UHRyVGFnPiBtYXRjaE9ubHksIFZlY3RvcjxVbmlxdWVSZWY8Qm95ZXJNb29yZUJ5dGVW
ZWN0b3I+PiBtYXBzKQorICAgIHZvaWQgc2V0OEJpdENvZGVNYXRjaE9ubHkoTWFjcm9Bc3NlbWJs
ZXJDb2RlUmVmPFlhcnJNYXRjaE9ubHk4Qml0UHRyVGFnPiBtYXRjaE9ubHksIFZlY3RvcjxVbmlx
dWVSZWY8Qm95ZXJNb29yZUJpdG1hcDo6TWFwPj4gbWFwcykKICAgICB7CiAgICAgICAgIG1fbWF0
Y2hPbmx5OCA9IG1hdGNoT25seTsKICAgICAgICAgbV9tYXBzLnJlc2VydmVDYXBhY2l0eShtX21h
cHMuc2l6ZSgpICsgbWFwcy5zaXplKCkpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0g
MDsgaW5kZXggPCBtYXBzLnNpemUoKTsgKytpbmRleCkKICAgICAgICAgICAgIG1fbWFwcy51bmNo
ZWNrZWRBcHBlbmQoV1RGTW92ZShtYXBzW2luZGV4XSkpOwogICAgIH0KLSAgICB2b2lkIHNldDE2
Qml0Q29kZU1hdGNoT25seShNYWNyb0Fzc2VtYmxlckNvZGVSZWY8WWFyck1hdGNoT25seTE2Qml0
UHRyVGFnPiBtYXRjaE9ubHksIFZlY3RvcjxVbmlxdWVSZWY8Qm95ZXJNb29yZUJ5dGVWZWN0b3I+
PiBtYXBzKQorICAgIHZvaWQgc2V0MTZCaXRDb2RlTWF0Y2hPbmx5KE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxZYXJyTWF0Y2hPbmx5MTZCaXRQdHJUYWc+IG1hdGNoT25seSwgVmVjdG9yPFVuaXF1ZVJl
ZjxCb3llck1vb3JlQml0bWFwOjpNYXA+PiBtYXBzKQogICAgIHsKICAgICAgICAgbV9tYXRjaE9u
bHkxNiA9IG1hdGNoT25seTsKICAgICAgICAgbV9tYXBzLnJlc2VydmVDYXBhY2l0eShtX21hcHMu
c2l6ZSgpICsgbWFwcy5zaXplKCkpOwpAQCAtMjUwLDExICsyMzgsMTEgQEAgY2xhc3MgWWFyckNv
ZGVCbG9jayB7CiAgICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9IHN0ZDo6bnVsbG9wdDsKICAgICB9
CiAKLSAgICBjb25zdCB1aW50OF90KiB0cnlSZXVzZUJveWVyTW9vcmVCeXRlVmVjdG9yKHVuc2ln
bmVkIGluZGV4LCBCb3llck1vb3JlQnl0ZVZlY3RvciYgdmVjdG9yKSBjb25zdAorICAgIGNvbnN0
IEJveWVyTW9vcmVCaXRtYXA6Ok1hcDo6V29yZFR5cGUqIHRyeVJldXNlQm95ZXJNb29yZUJpdG1h
cChjb25zdCBCb3llck1vb3JlQml0bWFwOjpNYXAmIG1hcCkgY29uc3QKICAgICB7Ci0gICAgICAg
IGlmIChpbmRleCA8IG1fbWFwcy5zaXplKCkpIHsKLSAgICAgICAgICAgIGlmIChtX21hcHNbaW5k
ZXhdLmdldCgpID09IHZlY3RvcikKLSAgICAgICAgICAgICAgICByZXR1cm4gbV9tYXBzW2luZGV4
XS0+ZGF0YSgpOworICAgICAgICBmb3IgKGF1dG8mIHN0b3JlZCA6IG1fbWFwcykgeworICAgICAg
ICAgICAgaWYgKHN0b3JlZC5nZXQoKSA9PSBtYXApCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0
b3JlZC0+c3RvcmFnZSgpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KQEAgLTI2NCw3ICsyNTIsNyBAQCBjbGFzcyBZYXJyQ29kZUJsb2NrIHsKICAgICBNYWNyb0Fz
c2VtYmxlckNvZGVSZWY8WWFycjE2Qml0UHRyVGFnPiBtX3JlZjE2OwogICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxZYXJyTWF0Y2hPbmx5OEJpdFB0clRhZz4gbV9tYXRjaE9ubHk4OwogICAgIE1h
Y3JvQXNzZW1ibGVyQ29kZVJlZjxZYXJyTWF0Y2hPbmx5MTZCaXRQdHJUYWc+IG1fbWF0Y2hPbmx5
MTY7Ci0gICAgVmVjdG9yPFVuaXF1ZVJlZjxCb3llck1vb3JlQnl0ZVZlY3Rvcj4+IG1fbWFwczsK
KyAgICBWZWN0b3I8VW5pcXVlUmVmPEJveWVyTW9vcmVCaXRtYXA6Ok1hcD4+IG1fbWFwczsKICAg
ICBib29sIG1fdXNlc1BhdHRlcm5Db250ZXh0QnVmZmVyIHsgZmFsc2UgfTsKICAgICBzdGQ6Om9w
dGlvbmFsPEpJVEZhaWx1cmVSZWFzb24+IG1fZmFpbHVyZVJlYXNvbjsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaCBiL1NvdXJjZS9XVEYvd3RmL0JpdG1hcC5oCmluZGV4
IGM1MDExMGI1ZGVhMTNjZTRiYTViYWRhM2U0OWViNzFmNWMxZDI3YTMuLmY2ODBlNTU2MDk5YTg1
OGI3MzE2ZWEwYWUwODYwOTQ0MjAwYjEzY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Jp
dG1hcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0JpdG1hcC5oCkBAIC0zMywxMiArMzMsMTQgQEAg
bmFtZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZTxzaXplX3Qgc2l6ZT4KIHVzaW5nIEJpdG1hcFdvcmRU
eXBlID0gc3RkOjpjb25kaXRpb25hbF90PChzaXplIDw9IDMyICYmIHNpemVvZihVQ1BVUmVnaXN0
ZXIpID4gc2l6ZW9mKHVpbnQzMl90KSksIHVpbnQzMl90LCBVQ1BVUmVnaXN0ZXI+OwogCi10ZW1w
bGF0ZTxzaXplX3QgYml0bWFwU2l6ZSwgdHlwZW5hbWUgV29yZFR5cGUgPSBCaXRtYXBXb3JkVHlw
ZTxiaXRtYXBTaXplPj4KK3RlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBlbmFtZSBQYXNz
ZWRXb3JkVHlwZSA9IEJpdG1hcFdvcmRUeXBlPGJpdG1hcFNpemU+PgogY2xhc3MgQml0bWFwIGZp
bmFsIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICAKLSAgICBzdGF0aWNfYXNz
ZXJ0KHNpemVvZihXb3JkVHlwZSkgPD0gc2l6ZW9mKFVDUFVSZWdpc3RlciksICJXb3JkVHlwZSBt
dXN0IG5vdCBiZSBiaWdnZXIgdGhhbiB0aGUgQ1BVIGF0b21pYyB3b3JkIHNpemUiKTsKIHB1Ymxp
YzoKKyAgICB1c2luZyBXb3JkVHlwZSA9IFBhc3NlZFdvcmRUeXBlOworCisgICAgc3RhdGljX2Fz
c2VydChzaXplb2YoV29yZFR5cGUpIDw9IHNpemVvZihVQ1BVUmVnaXN0ZXIpLCAiV29yZFR5cGUg
bXVzdCBub3QgYmUgYmlnZ2VyIHRoYW4gdGhlIENQVSBhdG9taWMgd29yZCBzaXplIik7CiAgICAg
Y29uc3RleHByIEJpdG1hcCgpOwogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qgc2l6ZSgp
CkBAIC0xMzMsNiArMTM1LDkgQEAgY2xhc3MgQml0bWFwIGZpbmFsIHsKIAogICAgIHZvaWQgZHVt
cChQcmludFN0cmVhbSYgb3V0KSBjb25zdDsKIAorICAgIFdvcmRUeXBlKiBzdG9yYWdlKCkgeyBy
ZXR1cm4gYml0cy5kYXRhKCk7IH0KKyAgICBjb25zdCBXb3JkVHlwZSogc3RvcmFnZSgpIGNvbnN0
IHsgcmV0dXJuIGJpdHMuZGF0YSgpOyB9CisKIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCB3b3JkU2l6ZSA9IHNpemVvZihXb3JkVHlwZSkgKiA4OwogICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgd29yZHMgPSAoYml0bWFwU2l6ZSArIHdvcmRTaXplIC0gMSkgLyB3
b3JkU2l6ZTsK
</data>
<flag name="review"
          id="457265"
          type_id="1"
          status="+"
          setter="saam"
    />
    <flag name="commit-queue"
          id="457275"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>