Re: [RFC] RISC-V KVM: guest local sfence.vma may miss stale VS-stage TLB after vCPU migration

guoyaxing <[email protected]> Tue, 4 Aug 2026 10:56:01 +0800
Newsgroups org.infradead.lists.kvm-riscv,org.infradead.lists.linux-riscv,org.kernel.vger.kvm,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
K2NjIHdhbmd6aGl6dW48YW56b3NvQG91dGxvb2suY29tPgoK5ZyoIDIwMjYvOC80IDEwOjMyLCBn
dW95YXhpbmcg5YaZ6YGTOgo+IAo+IAo+IOWcqCAyMDI2LzgvMyAyMjoyMiwgQW51cCBQYXRlbCDl
hpnpgZM6Cj4+IE9uIFN1biwgQXVnIDIsIDIwMjYgYXQgMTA6MzDigK9BTSBZYXhpbmcgR3VvIDxn
dW95YXhpbmdAYm9zYy5hYy5jbj4gd3JvdGU6Cj4+Pgo+Pj4gSGkgYWxsLAo+Pj4KPj4+IEkgd291
bGQgbGlrZSB0byBhc2sgd2hldGhlciBSSVNDLVYgS1ZNIGhhcyBhIGdhcCBhcm91bmQgZ3Vlc3Qg
c2ZlbmNlLnZtYQo+Pj4gYW5kIFZTLXN0YWdlIFRMQiBpbnZhbGlkYXRpb24gd2hlbiBhIHZDUFUg
bWlncmF0ZXMgYWNyb3NzIGhvc3QgQ1BVcy4KPj4+Cj4+PiBPbiBiYXJlIG1ldGFsLCBMaW51eCB1
c2VzIG1tX2NwdW1hc2sgaW4gX19mbHVzaF90bGJfcmFuZ2UoKSB0byBkZWNpZGUKPj4+IHdoZXRo
ZXIgdG8gc2VuZCBhIGxvY2FsIG9yIHJlbW90ZSBzZmVuY2Uudm1hLiBUaGF0IHdvcmtzIGJlY2F1
c2UgdGhlIAo+Pj4gY3B1bWFzawo+Pj4gcmVmbGVjdHMgcGh5c2ljYWwgQ1BVcy4gSW4gYSBndWVz
dCwgaG93ZXZlciwgdGhlIGtlcm5lbCBvbmx5IHNlZXMgCj4+PiB2Q1BVcywgc28KPj4+IGZyb20g
dGhlIGd1ZXN0IHBvaW50IG9mIHZpZXcgYSB0YXNrIG1heSBuZXZlciAibWlncmF0ZSIgZXZlbiB0
aG91Z2ggdGhlCj4+PiB1bmRlcmx5aW5nIHZDUFUgbW92ZWQgdG8gYSBkaWZmZXJlbnQgaG9zdCBD
UFUuIEluIG90aGVyIHdvcmRzLCBndWVzdAo+Pj4gbW1fY3B1bWFzayBpcyBlZmZlY3RpdmVseSBh
IHZDUFUgbWFzaywgbm90IGEgaG9zdCBDUFUgbWFzay4KPj4+Cj4+PiBUaGVyZSBpcyBhbHNvIGEg
cmVsYXRlZCBzd2l0Y2hfbW0oKS9zZXRfbW1fYXNpZCgpIGFzcGVjdC4gV2l0aCB0aGUgQVNJRAo+
Pj4gYWxsb2NhdG9yIGVuYWJsZWQsIFJJU0MtViBMaW51eCBkb2VzIG5vdCBmbHVzaCBvbiBldmVy
eSBjb250ZXh0IAo+Pj4gc3dpdGNoLiBBCj4+PiBsb2NhbF9mbHVzaF90bGJfYWxsKCkgaXMgb25s
eSBkb25lIHdoZW4gYSBkZWZlcnJlZCBBU0lEIHJvbGxvdmVyIAo+Pj4gZmx1c2ggaXMKPj4+IHBl
bmRpbmcgZm9yIHRoZSBjdXJyZW50IENQVS4gVGhhdCBpcyBmaW5lIG9uIGJhcmUgbWV0YWwsIGJl
Y2F1c2UgCj4+PiBwcmV2aW91cwo+Pj4gc2hvb3Rkb3ducyBhcmUgYWxzbyBiYXNlZCBvbiBwaHlz
aWNhbCBDUFVzLiBJbiBhIGd1ZXN0LCBob3dldmVyLCB0aGUgCj4+PiBlYXJsaWVyCj4+PiBzaG9v
dGRvd24gbWF5IGhhdmUgYmVlbiBvbmx5IGEgZ3Vlc3QtbG9jYWwgc2ZlbmNlLnZtYSBhbmQgbWF5
IGhhdmUgCj4+PiBtaXNzZWQgYW4KPj4+IG9sZCBob3N0IENQVSB3aGVyZSB0aGUgc2FtZSB2Q1BV
IHJhbiBwcmV2aW91c2x5Lgo+Pj4KPj4+IEEgc2ltcGxpZmllZCBzZXF1ZW5jZSBpczoKPj4+Cj4+
PiAxLiBBIGd1ZXN0IHRhc2sgd2l0aCBtbSBBIHJ1bnMgb24gdmNwdTAgd2hpbGUgdmNwdTAgaXMg
c2NoZWR1bGVkIG9uIGhvc3QKPj4+IMKgwqDCoCBDUFUxLiBDUFUxIGZpbGxzIGEgVlMtc3RhZ2Ug
VExCIGVudHJ5IGZvciB0aGF0IG1tL0FTSUQuCj4+PiAyLiB2Y3B1MCBtaWdyYXRlcyB0byBob3N0
IENQVTAuIEtWTSdzIHZDUFUgbWlncmF0aW9uIHNhbml0aXphdGlvbiBpcyAKPj4+IGxvY2FsCj4+
PiDCoMKgwqAgdG8gdGhlIGN1cnJlbnQgaG9zdCBDUFUsIHNvIGl0IGRvZXMgbm90IGludmFsaWRh
dGUgdGhlIFZTLXN0YWdlIAo+Pj4gVExCIGVudHJ5Cj4+PiDCoMKgwqAgdGhhdCB3YXMgbGVmdCBv
biBob3N0IENQVTEuCj4+Cj4+IFdoZW4gdmNwdTAgbWlncmF0ZXMgdG8gaG9zdCBDUFUwLCB0aGUg
aG9zdCBDUFUwIG1heSBvciBtYXkgbm90IGhhdmUKPj4gVlMtc3RhZ2UgVExCIGVudHJ5IHNvIFZD
UFUgbWlncmF0aW9uIHNhbml0aXphdGlvbiBkb2VzIHRoZSByaWdodCB0aGluZy4KPj4KPj4gSW4g
dGhlIGZ1dHVyZSwgdmNwdTAgbWF5IGFnYWluIG1vdmUgYmFjayB0byBob3N0IENQVTEgY29udGFp
bmluZyBzdGFsZQo+PiBWUy1zdGFnZSBUTEIgZW50cmllcyBsZWZ0IGluIHN0ZXAxIGFib3ZlIHNv
IHRoZSBWQ1BVIG1pZ3JhdGlvbiAKPj4gc2FuaXRpemF0aW9uCj4+IHdpbGwgY2xlYW51cCB0aGVz
ZSBzdGFsZSBUTEIgZW50ZXJpZXMuCj4+Cj4gCj4gU29ycnksIHBlcmhhcHMgSSBkaWRuJ3QgZGVz
Y3JpYmUgaXQgY2xlYXJseSBlbm91Z2guIEluIHNob3J0LCB0aGUgaXNzdWUgCj4gaXM6IGJlY2F1
c2UgdmNwdTAgbWlncmF0ZWQgYXdheSwgY3B1MSBzdGlsbCBoYXMgc3RhbGUgVExCIGVudHJpZXMg
d2hpbGUgCj4gY3B1MCBoYXMgdGhlIG5ldyBtYXBwaW5nLiBBZnRlciB0aGF0LCBuZWl0aGVyIHZj
cHUgbWlncmF0ZWQgYWdhaW4sIGJ1dCAKPiB0aGUgcHJvY2VzcyB3YXMgc2NoZWR1bGVkIGZyb20g
dmNwdTAgdG8gdmNwdTEgKHdoaWNoIGlzIG9uIGNwdTEpLCAKPiBjYXVzaW5nIGl0IHRvIGhpdCB0
aGUgc3RhbGUgVExCLiBDb25zaWRlciB0aGUgZm9sbG93aW5nIHNjZW5hcmlvOgo+IAo+ICDCoCAx
LiB2Y3B1MCBhbmQgdmNwdTEgYXJlIGJvdGggcnVubmluZyBvbiBjcHUxLiBBdCB0aGlzIHBvaW50
LCB2Y3B1MCBpcyAKPiBvbiBjcHUxLCBhbmQgYSBwcm9jZXNzIG9uIGl0IHJlYWRzIGEgcGFnZSwg
d2hpY2ggZ2V0cyBjYWNoZWQgaW4gdGhlIFRMQiAKPiAobGV0J3MgY2FsbCB0aGlzIHRoZSAic3Rh
bGUgVExCIGVudHJ5IikuCj4gIMKgIDIuIHZjcHUwIG1pZ3JhdGVzIHRvIGNwdTAsIGFuZCB0aGVu
IHRoZSBwcm9jZXNzIChvbiB2Y3B1MCwgbm93IG9uIAo+IGNwdTApIGRvZXMgYSBDb1cgKGNvcHkt
b24td3JpdGUpIGFuZCBlc3RhYmxpc2hlcyBhIG5ldyBtYXBwaW5nLgo+ICDCoCAzLiBOZWl0aGVy
IHZjcHUwIG5vciB2Y3B1MSBtaWdyYXRlcyBhZ2Fpbi4gQXQgdGhpcyBwb2ludCwgdGhlIHByb2Nl
c3MgCj4gZ2V0cyBzY2hlZHVsZWQgaW5zaWRlIHRoZSBWTSBvbnRvIHZjcHUxICh3aGljaCBpcyBv
biBjcHUxKSwgcmVhZHMgdGhlIAo+IHNhbWUgcGFnZSwgYW5kIGhpdHMgdGhlIHN0YWxlIFRMQiBl
bnRyeS4KPiAKPj4+IDMuIFRoZSBndWVzdCBsYXRlciB1cGRhdGVzIG1tIEEncyBwYWdlIHRhYmxl
IGZyb20gdmNwdTAsIGZvciBleGFtcGxlIAo+Pj4gZHVlIHRvCj4+PiDCoMKgwqAgQ09XLiBTaW5j
ZSB0aGUgZ3Vlc3Qgc3RpbGwgc2VlcyBtbSBBIGFzIGhhdmluZyBydW4gb25seSBvbiBndWVzdCAK
Pj4+IENQVTAsCj4+PiDCoMKgwqAgX19mbHVzaF90bGJfcmFuZ2UoKSBjYW4gY2hvb3NlIGEgbG9j
YWwgc2ZlbmNlLnZtYS4gVGhhdCBsb2NhbCAKPj4+IHNmZW5jZS52bWEKPj4+IMKgwqDCoCBvbmx5
IGFmZmVjdHMgaG9zdCBDUFUwLCB3aGVyZSB2Y3B1MCBpcyBjdXJyZW50bHkgcnVubmluZywgc28g
dGhlIAo+Pj4gc3RhbGUKPj4+IMKgwqDCoCBWUy1zdGFnZSBlbnRyeSBvbiBob3N0IENQVTEgcmVt
YWlucy4KPj4KPj4gTm8gbmVlZCB0byB3b3JyeSBhYm91dCBzdGFsZSBWUy1zdGFnZSBlbnRyeSBv
biBob3N0IENQVTEgYmVjYXVzZSB0aGVzZQo+PiB3aWxsIGFnZS1vdXQgb3Igc2FtZSBndWVzdCBt
YXkgYWdhaW4gbW92ZSB0byBob3N0IENQVTEgcmVzdWx0aW5nIGluCj4+IFZDUFUgbWlncmF0aW9u
IHNhbml0aXphdGlvbi4KPj4KPj4+IDQuIExhdGVyLCB0aGUgdGFzayBpcyBzY2hlZHVsZWQgYWdh
aW4gd2hpbGUgdmNwdTAgaXMgcnVubmluZyBvbiBob3N0IAo+Pj4gQ1BVMS4KPiAKPiBTb3JyeSwg
dGhhdCB3YXMgYSB0eXBvIG9uIG15IHBhcnQuICdMYXRlciwgdGhlIHRhc2sgaXMgc2NoZWR1bGVk
IGFnYWluIAo+IHdoaWxlIHZjcHUwIGlzIHJ1bm5pbmcgb24gaG9zdCBDUFUxJyBzaG91bGQgc2F5
IHZjcHUxIGluc3RlYWQgb2YgdmNwdTAuCj4gCj4+PiDCoMKgwqAgSWYgdGhlIEFTSUQgaXMgc3Rp
bGwgdmFsaWQgYW5kIG5vIGRlZmVycmVkIEFTSUQgcm9sbG92ZXIgZmx1c2ggaXMgCj4+PiBwZW5k
aW5nLAo+Pj4gwqDCoMKgIHNldF9tbV9hc2lkKCkgbWF5IG5vdCBpc3N1ZSBhbnkgZmx1c2guIFRo
ZSBhY2Nlc3Mgb24gaG9zdCBDUFUxIAo+Pj4gY2FuIHRoZW4KPj4+IMKgwqDCoCBoaXQgdGhlIG9s
ZCBWUy1zdGFnZSBUTEIgZW50cnkuCj4+Cj4+IFNlZSBhYm92ZSBjb21tZW50cy4KPj4KPj4+Cj4+
PiBXZSBoaXQgdGhpcyBvbiBhIFhpYW5nU2hhbiBSSVNDLVYgc3lzdGVtLiBBIGJhc2ggdGFzayBp
biB0aGUgZ3Vlc3Qgd2FzCj4+PiBzY2hlZHVsZWQgb24gdmNwdTAgd2hpbGUgdGhhdCB2Q1BVIHdh
cyBydW5uaW5nIG9uIGhvc3QgQ1BVMS4gQSByZWFkLW9ubHkKPj4+IHBhZ2Ugd2FzIHByZWZldGNo
ZWQgYW5kIGNhY2hlZCBpbiBDUFUxJ3MgVlMtc3RhZ2UgVExCLiBMYXRlciB0aGUgc2FtZSAKPj4+
IHZDUFUKPj4+IG1pZ3JhdGVkIHRvIGhvc3QgQ1BVMCwgdGhlIGd1ZXN0IHRyaWdnZXJlZCBDT1cg
YW5kIHVwZGF0ZWQgdGhlIAo+Pj4gbWFwcGluZywgYW5kCj4+PiB0aGUgZ3Vlc3Qgc3RpbGwgaXNz
dWVkIG9ubHkgYSBsb2NhbCBzZmVuY2Uudm1hLiBUaGUgc3RhbGUgVlMtc3RhZ2UgCj4+PiBlbnRy
eSBvbgo+Pj4gQ1BVMSB3YXMgbm90IGludmFsaWRhdGVkLiBBZnRlciBydW5uaW5nIGZvciBzb21l
IHRpbWUsIHRoZSB0YXNrIGxhdGVyCj4+PiBhY2Nlc3NlZCB0aGF0IG1hcHBpbmcgd2hpbGUgcnVu
bmluZyBvbiBob3N0IENQVTEgYWdhaW4gYW5kIGhpdCB0aGUgc3RhbGUKPj4+IHRyYW5zbGF0aW9u
LiBUaGUgZGF0YSBpbiB0aGF0IHBhZ2Ugd2FzIGEgcG9pbnRlciBmcm9tIHRoZSBHT1QsIHNvIGl0
Cj4+PiBkZXJlZmVyZW5jZWQgdG8gTlVMTCBhbmQgZXZlbnR1YWxseSBjYXVzZWQgYSBzZWdtZW50
YXRpb24gZmF1bHQuCj4+Cj4+IFRoZSBhYm92ZSBleGFtcGxlIGlzIGFscmVhZHkgdGFrZW4gY2Fy
ZSBieSBUTEIgZmx1c2hlcyBpbiBLVk0gUklTQy1WLgo+PiBUaGlzIHNtZWxscyBsaWtlIHNvbWUg
SFcgZXJyYXRhIHRvIG1lLgo+Pgo+Pj4KPj4+IEkgY2hlY2tlZCBjdXJyZW50IHVwc3RyZWFtIFJJ
U0MtViBLVk0gKHY3LjAuMikgYW5kIEkgZG8gbm90IHNlZSAKPj4+IEhTVEFUVVMuVlRWTQo+Pj4g
YmVpbmcgZW5hYmxlZCwgc28gZ3Vlc3Qgc2ZlbmNlLnZtYSBpcyBub3QgdHJhcHBlZC4gSSBmb3Vu
ZAo+Pj4ga3ZtX3Jpc2N2X2xvY2FsX3RsYl9zYW5pdGl6ZSgpIG9uIGhvc3QgQ1BVIG1pZ3JhdGlv
biwgd2hpY2ggaGFuZGxlcyAKPj4+IEctc3RhZ2UKPj4+IFZNSUQgZW50cmllcyBvbiB0aGUgY3Vy
cmVudCBob3N0IENQVSwgYnV0IEkgZG8gbm90IHRoaW5rIGl0IGdlbmVyYWxseSAKPj4+IHNvbHZl
cwo+Pj4gdGhlIHN0YWxlIFZTLXN0YWdlIFRMQiBjYXNlIGRlc2NyaWJlZCBhYm92ZS4KPj4+Cj4+
PiBJIGFsc28gbm90aWNlZCB0aGUgdmVuZG9yLXNwZWNpZmljIGt2bV9yaXNjdl92c3N0YWdlX3Rs
Yl9ub19ncGEgcGF0aCBpbgo+Pj4gY3VycmVudCB1cHN0cmVhbS4gSXQgbG9va3MgbGlrZSBhIHdv
cmthcm91bmQgZm9yIGEgcGFydGljdWxhciAKPj4+IGltcGxlbWVudGF0aW9uCj4+PiBpc3N1ZSBv
biBBbmRlcyBBWDY2LCB3aGVyZSB0aGUgVlMtc3RhZ2UgVExCIGRvZXMgbm90IGNhY2hlIGd1ZXN0
IAo+Pj4gcGh5c2ljYWwKPj4+IGFkZHJlc3MgYW5kIFZNSUQsIHNvIHRoZSBub3JtYWwgVk1JRC9H
UEEtYmFzZWQgaW52YWxpZGF0aW9uIG1vZGVsIGlzCj4+PiBpbnN1ZmZpY2llbnQuIEluIHRoYXQg
c2Vuc2UsIGl0IGRvZXMgbm90IHNlZW0gdG8gYmUgYSBnZW5lcmljIAo+Pj4gc29sdXRpb24gZm9y
Cj4+PiBndWVzdCBzZmVuY2Uudm1hIGNvaGVyZW5jZSBhY3Jvc3MgdkNQVSBtaWdyYXRpb24uCj4+
Pgo+Pj4gSSBhbSB3b25kZXJpbmcgd2hhdCB0aGUgcmlnaHQgZGlyZWN0aW9uIHNob3VsZCBiZS4g
RW5hYmxpbmcgCj4+PiBIU1RBVFVTLlZUVk0gYW5kCj4+PiB0cmFwcGluZyBndWVzdCBzZmVuY2Uu
dm1hIHdvdWxkIGFsbG93IEtWTSB0byB0cmFuc2xhdGUgZ3Vlc3QgbG9jYWwgCj4+PiBzZmVuY2Uu
dm1hCj4+PiBpbnRvIHRoZSByZXF1aXJlZCBob3N0LXNpZGUgaGZlbmNlLnZ2bWEsIGJ1dCB0aGF0
IG1heSBiZSB0b28gaGVhdnkgCj4+PiBmb3IgdGhlCj4+PiBjb21tb24gY2FzZS4gQW5vdGhlciBw
b3NzaWJsZSBkaXJlY3Rpb24gbWF5IGJlIHRvIG1ha2UgdGhlIGN1cnJlbnQKPj4+IEFuZGVzLXNw
ZWNpZmljIHZDUFUgbWlncmF0aW9uIGZsdXNoIGxvZ2ljIG1vcmUgZ2VuZXJpYywgc28gCj4+PiBp
bXBsZW1lbnRhdGlvbnMKPj4+IHRoYXQgbmVlZCBWUy1zdGFnZSBUTEIgc2FuaXRpemF0aW9uIG9u
IHZDUFUgbWlncmF0aW9uIGNhbiBvcHQgaW4gCj4+PiB0aHJvdWdoIGEKPj4+IGNvbW1vbiBtZWNo
YW5pc20uIEEgdGhpcmQgcG9zc2liaWxpdHkgbWF5IGJlIHRvIGRlZmluZSBhIGxpZ2h0d2VpZ2h0
IFNCSQo+Pj4gaW50ZXJmYWNlIGZvciBndWVzdCBsb2NhbCBzZmVuY2Uudm1hLCBzbyBMaW51eCBj
b3VsZCB1c2UgaXQgaW4KPj4+IF9fZmx1c2hfdGxiX3JhbmdlKCkgZm9yIHRoZSBsb2NhbCBjYXNl
IHdoZW4gcnVubmluZyB1bmRlciBLVk0sIGFuZCAKPj4+IEtWTSBjb3VsZAo+Pj4gdGhlbiBkZWNp
ZGUgd2hldGhlciBhIGxvY2FsIHNmZW5jZS52bWEgaXMgc3VmZmljaWVudCBvciB3aGV0aGVyIGhv
c3QtIAo+Pj4gc2lkZQo+Pj4gaGZlbmNlLnZ2bWEgaXMgYWxzbyBuZWVkZWQuCj4+Cj4+IEVuYWJs
aW5nIEhTVEFUVVMuVlRWTSBoYXMgYSBiaWcgaW1wYWN0IG9uIHBlcmZvcm1hbmNlIHNvIGNlcnRh
aW5seQo+PiBOQUNLIGZyb20gbXlzaWRlLgo+Pgo+Pj4KPj4+IE15IHF1ZXN0aW9ucyBhcmU6Cj4+
PiAxLiBJcyB0aGUgYmVoYXZpb3IgYWJvdmUgZXhwZWN0ZWQgb24gY3VycmVudCBSSVNDLVYgS1ZN
Pwo+Pgo+PiBZZXMsIGl0IHNob3VsZCB3b3JrIGZpbmUgdW5sZXNzIHRoZXJlIGlzIHNvbWUgSFcg
YnVnLgo+Pgo+Pj4gMi4gSWYgbm90LCB3aGF0IHdvdWxkIGJlIHRoZSBwcmVmZXJyZWQgZml4IGRp
cmVjdGlvbj8KPj4+IDMuIFNob3VsZCB0aGlzIGJlIGhhbmRsZWQgYnkgdHJhcHBpbmcgZ3Vlc3Qg
c2ZlbmNlLnZtYSB3aXRoIFZUVk0sIGJ5Cj4+PiDCoMKgwqAgZ2VuZXJhbGl6aW5nIHRoZSBleGlz
dGluZyB2Q1BVLW1pZ3JhdGlvbiBWUy1zdGFnZSBUTEIgZmx1c2ggCj4+PiBsb2dpYywgb3IgYnkK
Pj4+IMKgwqDCoCBhZGRpbmcgYSBsaWdodGVyIFNCSS1tZWRpYXRlZCBwYXRoIGZvciBndWVzdCBs
b2NhbCBzZmVuY2Uudm1hPwo+Pj4gNC4gT3IgaXMgdGhlcmUgYW5vdGhlciBpbnRlbmRlZCBtZWNo
YW5pc20gdG8ga2VlcCBWUy1zdGFnZSBUTEIgc3RhdGUgCj4+PiBjb2hlcmVudAo+Pj4gwqDCoMKg
IGFjcm9zcyB2Q1BVIG1pZ3JhdGlvbj8KPj4+Cj4+PiBJZiBuZWVkZWQsIEkgY2FuIHNlbmQgYSBy
ZXByb2R1Y2VyIGFuZCB0aGUgZXhhY3QgaGFyZHdhcmUva2VybmVsIAo+Pj4gZGV0YWlscy4KPj4+
Cj4+Cj4+IEV2ZW4gaWYgeW91IHNoYXJlIHNvbWUgcmVwb3JkdWNpbmcgY29kZSBzZXF1ZW5jZSwg
d2Ugc3RpbGwgaGF2ZSBkb24ndAo+PiBoYXZlIGFjY2VzcyB0byB5b3VyIEhXIHNvIGl0IHdvbid0
IGhlbHAgbXVjaC4KPj4KPj4gUmVnYXJkcywKPj4gQW51cAoKCi0tIAprdm0tcmlzY3YgbWFpbGlu
ZyBsaXN0Cmt2bS1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRl
YWQub3JnL21haWxtYW4vbGlzdGluZm8va3ZtLXJpc2N2Cg==