From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrii Anisov Subject: Re: [PATCH 1/4] xen/arm: gic: Ensure we have an ISB between ack and do_IRQ() Date: Sat, 27 Oct 2018 12:14:58 +0000 Message-ID: <3622e468-8f44-1e31-138f-db58ca3835ff@epam.com> References: <20181023181709.11883-1-julien.grall@arm.com> <20181023181709.11883-2-julien.grall@arm.com> <6098937f-98de-bff9-6c48-5575a45875e0@epam.com> <57ee191b-be21-701e-ef19-4ed4df1cf289@arm.com> <77f72cc9-6548-afd9-3766-23326b3551d9@epam.com> <6acf65ef-4302-c403-32ba-1d88ab954265@epam.com> <22f7ebc8-c74b-0d8e-4847-9d3df9bcf5db@arm.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1961488015669265068==" Return-path: In-Reply-To: <22f7ebc8-c74b-0d8e-4847-9d3df9bcf5db@arm.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Julien Grall , "xen-devel@lists.xen.org" Cc: "andre.przywara@arm.com" , "sstabellini@kernel.org" List-Id: xen-devel@lists.xenproject.org --===============1961488015669265068== Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_3622e4688f441e31138fdb58ca3835ffepamcom_" --_000_3622e4688f441e31138fdb58ca3835ffepamcom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGVsbG8gSnVsaWVuLA0KDQpPbiAxMC8yNy8yMDE4IDEyOjU1IEFNLCBKdWxpZW4gR3JhbGwgd3Jv dGU6DQpUaGUgZnVuY3Rpb25zIGJlbG93IGRvZXMgbm90IGV4aXN0IGluIGxhdGVzdCBYZW4uIFNv IGFyZSB5b3Ugc3VyZSB0aGlzIGJhc2VkIG9uIG1haW5saW5lPw0KDQpZZXAsIEkndmUgcHV0IGEg d3JvbmcgZGlmZiBpbnRvIHRoZSBlbWFpbCwgaXQgaXMgZm9yIFhFTiA0LjEwLg0KUGxlYXNlIGZp bmQgdGhlIHBhdGNoIGZvciBYRU4gNC4xMi11bnN0YWJsZSBvbiBteSBnaXRodWIgWzFdLg0KDQpI b3cgbWFueSBkb21haW4gZG8geW91IGhhdmUgcnVuIGF0IHRoYXQgdGltZT8NCk9ubHkgb25lIGRv bWFpbi4gSW4gbXkgc2V0dXAgSSdtIHJ1bm5pbmcgYSBCU1AgcmVsZWFzZSB1bmRlciBYRU4gYXMg RG9tMC4NCg0KVW5kZXIgd2hpY2ggY29uZGl0aW9uIHRoaXMgaXMgaGFwZW5uaW5nPw0KVW5kZXIg bm8gc3BlY2lmaWMgY29uZGl0aW9ucy4gRHVyaW5nIHRoZSBzeXN0ZW0gYm9vdCwgZHVyaW5nIGNv bnNvbGUgb3BlcmF0aW9ucywgZHVyaW5nIGdsbWFyazIgWzJdIHJ1bm5pbmcuDQoNCkFsc28sIHdo YXQgaXMgeW91ciBYZW4gY29tbWFuZCBsaW5lPw0KYGRvbTBfbWVtPTFHIGNvbnNvbGU9ZHR1YXJ0 IGR0dWFydD1zZXJpYWwwIGRvbTBfbWF4X3ZjcHVzPTQgYm9vdHNjcnViPTAgbG9nbHZsPWFsbCBj cHVmcmVxPW5vbmVgDQoNCkkgYXNzdW1lIHlvdSBkaWRuJ3QgZGlzYWJsZSBzZXJyb3JzLCByaWdo dD8gU28gd2Ugc2hvdWxkIGhhdmUgcGxlbnR5IG9mIGRzYihzeSkgYW5kIGlzYigpIGluIHRoZSBw YXRoIHRvIHRoZXJlLg0KSSBkaWRuJ3QgZGlzYWJsZSBzZXJyb3JzLg0KDQpTbyBJIHdvdWxkIHJ1 bGUgb3V0IGEgbWlzc2luZyBiYXJyaWVyIGhlcmUuDQoNCg0KDQoNCg0KVGhvc2UgcHJpbnRzIEkg dHJlYXQgYXMgTFIgY29udGVudCBjaGFuZ2UgKHN0YXRlIFBFTkRJTkctPklOVkFMSUQpDQp3aXRo b3V0IGV4aXRpbmcgZnJvbSBoeXAgdG8gZ3Vlc3QuIFVuZm9ydHVuYXRlbHksIEkgZGlkIG5vdCBm aW5kIGEga2luZA0Kb2YgZXhwbGFuYXRpb24gdG8gdGhpcyBlZmZlY3QgaW4gQVJNIElISSAwMDQ4 Qi5iIGRvY3VtZW50Lg0KSSBoYXZlIEdJQ3YyIG9uIHRoZSBkaWUuDQoNCkkgYXBwcmVjaWF0ZSB5 b3UgZmluZCBzb21lIHRpbWUgdG8gbG9vayBhdCB0aGlzIGFuZCBleHByZXNzIHlvdXIgb3Bpbmlv bi4NCg0KDQotLS0NCg0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9naWMtdjIuYyBiL3hlbi9h cmNoL2FybS9naWMtdjIuYw0KaW5kZXggNTExYzhkNy4uMGI5YWEyZCAxMDA2NDQNCi0tLSBhL3hl bi9hcmNoL2FybS9naWMtdjIuYw0KKysrIGIveGVuL2FyY2gvYXJtL2dpYy12Mi5jDQpAQCAtMTcx LDYgKzE3MSwxNCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGdpY3YyX2NwdV9tYXNrKGNvbnN0IGNw dW1hc2tfdA0KKmNwdW1hc2spDQogICAgICAgcmV0dXJuIG1hc2s7DQogICB9DQoNCitzdGF0aWMg dm9pZCBnaWN2Ml9zdG9yZV9scnModm9pZCkNCit7DQorICAgIGludCBpOw0KKw0KKyAgICBmb3Ig KCBpID0gMDsgaSA8IGdpY3YyX2luZm8ubnJfbHJzOyBpKysgKQ0KKyAgICAgICAgY3VycmVudC0+ YXJjaC5naWMudjIubHJbaV0gPSByZWFkbF9naWNoKEdJQ0hfTFIgKyBpICogNCk7DQorfQ0KKw0K ICAgc3RhdGljIHZvaWQgZ2ljdjJfc2F2ZV9zdGF0ZShzdHJ1Y3QgdmNwdSAqdikNCiAgIHsNCiAg ICAgICBpbnQgaTsNCkBAIC00NDYsMTEgKzQ1NCwxMyBAQCBzdGF0aWMgdm9pZCBnaWN2Ml91cGRh dGVfbHIoaW50IGxyLCBjb25zdCBzdHJ1Y3QNCnBlbmRpbmdfaXJxICpwLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBHSUNIX1YyX0xSX1BIWVNJQ0FMX1NISUZUKTsN Cg0KICAgICAgIHdyaXRlbF9naWNoKGxyX3JlZywgR0lDSF9MUiArIGxyICogNCk7DQorICAgIGN1 cnJlbnQtPmFyY2guZ2ljLnYyLmxyW2xyXSA9IGxyX3JlZzsNCiAgIH0NCg0KICAgc3RhdGljIHZv aWQgZ2ljdjJfY2xlYXJfbHIoaW50IGxyKQ0KICAgew0KICAgICAgIHdyaXRlbF9naWNoKDAsIEdJ Q0hfTFIgKyBsciAqIDQpOw0KKyAgICBjdXJyZW50LT5hcmNoLmdpYy52Mi5scltscl0gPSAwOw0K ICAgfQ0KDQogICBzdGF0aWMgdm9pZCBnaWN2Ml9yZWFkX2xyKGludCBsciwgc3RydWN0IGdpY19s ciAqbHJfcmVnKQ0KQEAgLTQ1OCw2ICs0NjgsOSBAQCBzdGF0aWMgdm9pZCBnaWN2Ml9yZWFkX2xy KGludCBsciwgc3RydWN0IGdpY19sciAqbHJfcmVnKQ0KICAgICAgIHVpbnQzMl90IGxydjsNCg0K ICAgICAgIGxydiAgICAgICAgICA9IHJlYWRsX2dpY2goR0lDSF9MUiArIGxyICogNCk7DQorICAg IGlmICggbHJ2ICE9IGN1cnJlbnQtPmFyY2guZ2ljLnYyLmxyW2xyXSkNCisgICAgICAgIHByaW50 aygiU3RvcmVkIExSIGlzIHN0YWxlOiBzdG9yZWQgMHglIlBSSVgzMiIgcmVhZCAweCUiUFJJWDMy IlxuIiwNCisgICAgICAgICAgICAgICBjdXJyZW50LT5hcmNoLmdpYy52Mi5scltscl0sIGxydik7 DQogICAgICAgbHJfcmVnLT5waXJxID0gKGxydiA+PiBHSUNIX1YyX0xSX1BIWVNJQ0FMX1NISUZU KSAmDQpHSUNIX1YyX0xSX1BIWVNJQ0FMX01BU0s7DQogICAgICAgbHJfcmVnLT52aXJxID0gKGxy diA+PiBHSUNIX1YyX0xSX1ZJUlRVQUxfU0hJRlQpICYNCkdJQ0hfVjJfTFJfVklSVFVBTF9NQVNL Ow0KICAgICAgIGxyX3JlZy0+cHJpb3JpdHkgPSAobHJ2ID4+IEdJQ0hfVjJfTFJfUFJJT1JJVFlf U0hJRlQpICYNCkdJQ0hfVjJfTFJfUFJJT1JJVFlfTUFTSzsNCkBAIC00ODEsNiArNDk0LDcgQEAg c3RhdGljIHZvaWQgZ2ljdjJfd3JpdGVfbHIoaW50IGxyLCBjb25zdCBzdHJ1Y3QNCmdpY19sciAq bHJfcmVnKQ0KICAgICAgICAgICAgICgodWludDMyX3QpKGxyX3JlZy0+Z3JwICYgR0lDSF9WMl9M Ul9HUlBfTUFTSykgPDwNCkdJQ0hfVjJfTFJfR1JQX1NISUZUKSApOw0KDQogICAgICAgd3JpdGVs X2dpY2gobHJ2LCBHSUNIX0xSICsgbHIgKiA0KTsNCisgICAgY3VycmVudC0+YXJjaC5naWMudjIu bHJbbHJdID0gbHJ2Ow0KICAgfQ0KDQogICBzdGF0aWMgdm9pZCBnaWN2Ml9oY3Jfc3RhdHVzKHVp bnQzMl90IGZsYWcsIGJvb2wgc3RhdHVzKQ0KQEAgLTEyMzIsNiArMTI0Niw3IEBAIGNvbnN0IHN0 YXRpYyBzdHJ1Y3QgZ2ljX2h3X29wZXJhdGlvbnMgZ2ljdjJfb3BzID0gew0KICAgICAgIC5pbmZv ICAgICAgICAgICAgICAgID0gJmdpY3YyX2luZm8sDQogICAgICAgLmluaXQgICAgICAgICAgICAg ICAgPSBnaWN2Ml9pbml0LA0KICAgICAgIC5zZWNvbmRhcnlfaW5pdCAgICAgID0gZ2ljdjJfc2Vj b25kYXJ5X2NwdV9pbml0LA0KKyAgICAuc3RvcmVfbHJzICAgICAgICAgICA9IGdpY3YyX3N0b3Jl X2xycywNCiAgICAgICAuc2F2ZV9zdGF0ZSAgICAgICAgICA9IGdpY3YyX3NhdmVfc3RhdGUsDQog ICAgICAgLnJlc3RvcmVfc3RhdGUgICAgICAgPSBnaWN2Ml9yZXN0b3JlX3N0YXRlLA0KICAgICAg IC5kdW1wX3N0YXRlICAgICAgICAgID0gZ2ljdjJfZHVtcF9zdGF0ZSwNCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC9hcm0vZ2ljLmMgYi94ZW4vYXJjaC9hcm0vZ2ljLmMNCmluZGV4IGVkMzYzZjYuLmEw NWM1MTggMTAwNjQ0DQotLS0gYS94ZW4vYXJjaC9hcm0vZ2ljLmMNCisrKyBiL3hlbi9hcmNoL2Fy bS9naWMuYw0KQEAgLTU5NCw2ICs1OTQsMTIgQEAgc3RhdGljIHZvaWQgZ2ljX3VwZGF0ZV9vbmVf bHIoc3RydWN0IHZjcHUgKnYsIGludCBpKQ0KICAgICAgIH0NCiAgIH0NCg0KK3ZvaWQgZ2ljX3N0 b3JlX2xycyh2b2lkKQ0KK3sNCisgICAgaWYoZ2ljX2h3X29wcy0+c3RvcmVfbHJzKQ0KKyAgICAg ICAgZ2ljX2h3X29wcy0+c3RvcmVfbHJzKCk7DQorfQ0KKw0KICAgdm9pZCBnaWNfY2xlYXJfbHJz KHN0cnVjdCB2Y3B1ICp2KQ0KICAgew0KICAgICAgIGludCBpID0gMDsNCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC9hcm0vdHJhcHMuYyBiL3hlbi9hcmNoL2FybS90cmFwcy5jDQppbmRleCBmNmY2ZGUz Li45ODUxOTJiIDEwMDY0NA0KLS0tIGEveGVuL2FyY2gvYXJtL3RyYXBzLmMNCisrKyBiL3hlbi9h cmNoL2FybS90cmFwcy5jDQpAQCAtMjA5NSw2ICsyMDk1LDcgQEAgc3RhdGljIHZvaWQgZW50ZXJf aHlwZXJ2aXNvcl9oZWFkKHN0cnVjdA0KY3B1X3VzZXJfcmVncyAqcmVncykNCiAgICAgICAgICAg aWYgKCBjdXJyZW50LT5hcmNoLmhjcl9lbDIgJiBIQ1JfVkEgKQ0KICAgICAgICAgICAgICAgY3Vy cmVudC0+YXJjaC5oY3JfZWwyID0gUkVBRF9TWVNSRUcoSENSX0VMMik7DQoNCisgICAgICAgIGdp Y19zdG9yZV9scnMoKTsNCg0KZ2ljX2NsZWFyX2xycyguLi4pIG1heSByZXdyaXRlIHRoZSBMUnMu IFRvIGNvbmZpcm0gdGhpcyBzdGFsbCBMUnMgYXJlIG5vdCBkdWUgYnkgdGhpcyBmdW5jdGlvbiwg Y2FuIHlvdSBtb3ZlIHRoYXQgYWZ0ZXIgZ2ljX2NsZWFyX2xycygpPw0KUmlnaHQgeW91IGFyZSwg Z2ljX2NsZWFyX2xycygpLCBpbiA0LjEwIGNvZGViYXNlLCByZXdyaXRlcyBMUnMuIEJ1dCBpdCBk b2VzIG5vdCBjaGFuZ2UgUEVORElORyB0byBJTlZBTElEIHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMg ZnJvbSBvbmUgaGFuZC4gRnJvbSBhbm90aGVyIGhhbmQsIGFsbCBjaGFuZ2VzIHRvIExScyBhcmUg bWFkZSB0aHJvdWdoIGdpYyBzcGVjaWZpYyBvcGVyYXRpb25zIGdpY19od19vcHMtPi4uLiB3aGlj aCBhcmUgdHJhY2tlZCBieSBtZS4gWW91IGNhbiBzZWUsIGluIHRoZSBjb2RlIGFib3ZlLCB0aGF0 IEkgY29weSBhbGwgdXBkYXRlcyB0byB0aGUgcGh5c2ljYWwgTFIgaXNzdWVkIGJ5IGh5cGVydmlz b3IgaW50byB0aGUgc3RvcmVkIExScy4gU28gaXQgbm90IHRoZSBjYXNlLiBCdXQgSSdsbCBjaGVj ayBvbiBNb25kYXkuDQoNCg0KICAgICAgICAgICBnaWNfY2xlYXJfbHJzKGN1cnJlbnQpOw0KICAg ICAgIH0NCiAgIH0NCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL2dpYy5oIGIveGVu L2luY2x1ZGUvYXNtLWFybS9naWMuaA0KaW5kZXggZDNkN2JkYS4uNmZlM2ZkYiAxMDA2NDQNCi0t LSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljLmgNCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0v Z2ljLmgNCkBAIC0yOTMsNiArMjkzLDcgQEAgZXh0ZXJuIHVuc2lnbmVkIGludCBnaWNfbnVtYmVy X2xpbmVzKHZvaWQpOw0KICAgLyogSVJRIHRyYW5zbGF0aW9uIGZ1bmN0aW9uIGZvciB0aGUgZGV2 aWNlIHRyZWUgKi8NCiAgIGludCBnaWNfaXJxX3hsYXRlKGNvbnN0IHUzMiAqaW50c3BlYywgdW5z aWduZWQgaW50IGludHNpemUsDQogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKm91 dF9od2lycSwgdW5zaWduZWQgaW50ICpvdXRfdHlwZSk7DQordm9pZCBnaWNfc3RvcmVfbHJzKHZv aWQpOw0KICAgdm9pZCBnaWNfY2xlYXJfbHJzKHN0cnVjdCB2Y3B1ICp2KTsNCg0KICAgc3RydWN0 IGdpY19pbmZvIHsNCkBAIC0zMTQsNiArMzE1LDggQEAgc3RydWN0IGdpY19od19vcGVyYXRpb25z IHsNCiAgICAgICAvKiBJbml0aWFsaXplIHRoZSBHSUMgYW5kIHRoZSBib290IENQVSAqLw0KICAg ICAgIGludCAoKmluaXQpKHZvaWQpOw0KICAgICAgIC8qIFNhdmUgR0lDIHJlZ2lzdGVycyAqLw0K KyAgICB2b2lkICgqc3RvcmVfbHJzKSh2b2lkKTsNCisgICAgLyogU2F2ZSBHSUMgcmVnaXN0ZXJz ICovDQogICAgICAgdm9pZCAoKnNhdmVfc3RhdGUpKHN0cnVjdCB2Y3B1ICopOw0KICAgICAgIC8q IFJlc3RvcmUgR0lDIHJlZ2lzdGVycyAqLw0KICAgICAgIHZvaWQgKCpyZXN0b3JlX3N0YXRlKShj b25zdCBzdHJ1Y3QgdmNwdSAqKTsNCg0KQ2hlZXJzLA0KDQoNClsxXSBodHRwczovL2dpdGh1Yi5j b20vYWFuaXNvdi94ZW4vY29tbWl0L2IxYzI4YmUzOGQzMGViNDYwZWQwMzM5NTI2YzQ5ODdiMmNm MTcwOGMNClsyXSBodHRwczovL2dpdGh1Yi5jb20vZ2xtYXJrMi9nbG1hcmsyDQoNCg== --_000_3622e4688f441e31138fdb58ca3835ffepamcom_ Content-Type: text/html; charset="utf-8" Content-ID: <51EFABFDD2AF25469A2D843B0AF2D153@eurprd03.prod.outlook.com> Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHRleHQ9IiMwMDAwMDAi IGJnY29sb3I9IiNGRkZGRkYiPg0KPHA+SGVsbG8gSnVsaWVuLDxicj4NCjwvcD4NCjxicj4NCjxk aXYgY2xhc3M9Im1vei1jaXRlLXByZWZpeCI+T24gMTAvMjcvMjAxOCAxMjo1NSBBTSwgSnVsaWVu IEdyYWxsIHdyb3RlOjxicj4NCjwvZGl2Pg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2l0ZT0i bWlkOjIyZjdlYmM4LWM3NGItMGQ4ZS00ODQ3LTlkM2RmOWJjZjVkYkBhcm0uY29tIj5UaGUgZnVu Y3Rpb25zIGJlbG93IGRvZXMgbm90IGV4aXN0IGluIGxhdGVzdCBYZW4uIFNvIGFyZSB5b3Ugc3Vy ZSB0aGlzIGJhc2VkIG9uIG1haW5saW5lPw0KPGJyPg0KPC9ibG9ja3F1b3RlPg0KPGJyPg0KWWVw LCBJJ3ZlIHB1dCBhIHdyb25nIGRpZmYgaW50byB0aGUgZW1haWwsIGl0IGlzIGZvciBYRU4gNC4x MC48YnI+DQpQbGVhc2UgZmluZCB0aGUgcGF0Y2ggZm9yIFhFTiA0LjEyLXVuc3RhYmxlIG9uIG15 IGdpdGh1YiBbMV0uPGJyPg0KPGJyPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2l0ZT0ibWlk OjIyZjdlYmM4LWM3NGItMGQ4ZS00ODQ3LTlkM2RmOWJjZjVkYkBhcm0uY29tIj5Ib3cgbWFueSBk b21haW4gZG8geW91IGhhdmUgcnVuIGF0IHRoYXQgdGltZT88L2Jsb2NrcXVvdGU+DQpPbmx5IG9u ZSBkb21haW4uIEluIG15IHNldHVwIEknbSBydW5uaW5nIGEgQlNQIHJlbGVhc2UgdW5kZXIgWEVO IGFzIERvbTAuPGJyPg0KPGJyPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2l0ZT0ibWlkOjIy ZjdlYmM4LWM3NGItMGQ4ZS00ODQ3LTlkM2RmOWJjZjVkYkBhcm0uY29tIj5VbmRlciB3aGljaCBj b25kaXRpb24gdGhpcyBpcyBoYXBlbm5pbmc/DQo8YnI+DQo8L2Jsb2NrcXVvdGU+DQpVbmRlciBu byBzcGVjaWZpYyBjb25kaXRpb25zLiBEdXJpbmcgdGhlIHN5c3RlbSBib290LCBkdXJpbmcgY29u c29sZSBvcGVyYXRpb25zLCBkdXJpbmcgZ2xtYXJrMiBbMl0gcnVubmluZy48YnI+DQo8YnI+DQo8 YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBjaXRlPSJtaWQ6MjJmN2ViYzgtYzc0Yi0wZDhlLTQ4NDct OWQzZGY5YmNmNWRiQGFybS5jb20iPkFsc28sIHdoYXQgaXMgeW91ciBYZW4gY29tbWFuZCBsaW5l PzwvYmxvY2txdW90ZT4NCjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZh bWlseTogQXJpYWw7IGZvbnQtc2l6ZTogMTNweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZh cmlhbnQtbGlnYXR1cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQt d2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxp Z246IGxlZnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1z cGFjZTogcHJlLXdyYXA7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4 dC1zdHJva2Utd2lkdGg6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUp OyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1jb2xvcjog aW5pdGlhbDsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IGZsb2F0OiBub25lOyI+YGRvbTBf bWVtPTFHDQogY29uc29sZT1kdHVhcnQgZHR1YXJ0PXNlcmlhbDAgZG9tMF9tYXhfdmNwdXM9NCBi b290c2NydWI9MCBsb2dsdmw9YWxsIGNwdWZyZXE9bm9uZWA8L3NwYW4+PGJyPg0KPGJyPg0KPGJs b2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2l0ZT0ibWlkOjIyZjdlYmM4LWM3NGItMGQ4ZS00ODQ3LTlk M2RmOWJjZjVkYkBhcm0uY29tIj5JIGFzc3VtZSB5b3UgZGlkbid0IGRpc2FibGUgc2Vycm9ycywg cmlnaHQ/IFNvIHdlIHNob3VsZCBoYXZlIHBsZW50eSBvZiBkc2Ioc3kpIGFuZCBpc2IoKSBpbiB0 aGUgcGF0aCB0byB0aGVyZS48YnI+DQo8L2Jsb2NrcXVvdGU+DQpJIGRpZG4ndCBkaXNhYmxlIHNl cnJvcnMuIDxicj4NCjxicj4NCjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIGNpdGU9Im1pZDoyMmY3 ZWJjOC1jNzRiLTBkOGUtNDg0Ny05ZDNkZjliY2Y1ZGJAYXJtLmNvbSI+U28gSSB3b3VsZCBydWxl IG91dCBhIG1pc3NpbmcgYmFycmllciBoZXJlLg0KPGJyPg0KPC9ibG9ja3F1b3RlPg0KPGJyPg0K PGJyPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSIgY2l0ZT0ibWlkOjIyZjdlYmM4LWM3NGItMGQ4 ZS00ODQ3LTlkM2RmOWJjZjVkYkBhcm0uY29tIj48YnI+DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRl Ij48YnI+DQo8YnI+DQpUaG9zZSBwcmludHMgSSB0cmVhdCBhcyBMUiBjb250ZW50IGNoYW5nZSAo c3RhdGUgUEVORElORy0mZ3Q7SU5WQUxJRCkgPGJyPg0Kd2l0aG91dCBleGl0aW5nIGZyb20gaHlw IHRvIGd1ZXN0LiBVbmZvcnR1bmF0ZWx5LCBJIGRpZCBub3QgZmluZCBhIGtpbmQgPGJyPg0Kb2Yg ZXhwbGFuYXRpb24gdG8gdGhpcyBlZmZlY3QgaW4gQVJNIElISSAwMDQ4Qi5iIGRvY3VtZW50LiA8 YnI+DQpJIGhhdmUgR0lDdjIgb24gdGhlIGRpZS4gPGJyPg0KPGJyPg0KSSBhcHByZWNpYXRlIHlv dSBmaW5kIHNvbWUgdGltZSB0byBsb29rIGF0IHRoaXMgYW5kIGV4cHJlc3MgeW91ciBvcGluaW9u LiA8YnI+DQo8YnI+DQo8YnI+DQotLS0gPGJyPg0KPGJyPg0KZGlmZiAtLWdpdCBhL3hlbi9hcmNo L2FybS9naWMtdjIuYyBiL3hlbi9hcmNoL2FybS9naWMtdjIuYyA8YnI+DQppbmRleCA1MTFjOGQ3 Li4wYjlhYTJkIDEwMDY0NCA8YnI+DQotLS0gYS94ZW4vYXJjaC9hcm0vZ2ljLXYyLmMgPGJyPg0K JiM0MzsmIzQzOyYjNDM7IGIveGVuL2FyY2gvYXJtL2dpYy12Mi5jIDxicj4NCkBAIC0xNzEsNiAm IzQzOzE3MSwxNCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGdpY3YyX2NwdV9tYXNrKGNvbnN0IGNw dW1hc2tfdCA8YnI+DQoqY3B1bWFzaykgPGJyPg0KJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyByZXR1cm4gbWFzazsgPGJyPg0KJm5ic3A7ICZuYnNwO30gPGJyPg0KPGJyPg0KJiM0Mztz dGF0aWMgdm9pZCBnaWN2Ml9zdG9yZV9scnModm9pZCkgPGJyPg0KJiM0Mzt7IDxicj4NCiYjNDM7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IGludCBpOyA8YnI+DQomIzQzOyA8YnI+DQomIzQzOyZuYnNwOyZu YnNwOyZuYnNwOyBmb3IgKCBpID0gMDsgaSAmbHQ7IGdpY3YyX2luZm8ubnJfbHJzOyBpJiM0Mzsm IzQzOyApIDxicj4NCiYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7IGN1cnJlbnQtJmd0O2FyY2guZ2ljLnYyLmxyW2ldID0gcmVhZGxfZ2ljaChHSUNIX0xSICYj NDM7IGkgKiA0KTsgPGJyPg0KJiM0Mzt9IDxicj4NCiYjNDM7IDxicj4NCiZuYnNwOyAmbmJzcDtz dGF0aWMgdm9pZCBnaWN2Ml9zYXZlX3N0YXRlKHN0cnVjdCB2Y3B1ICp2KSA8YnI+DQombmJzcDsg Jm5ic3A7eyA8YnI+DQombmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGludCBpOyA8YnI+ DQpAQCAtNDQ2LDExICYjNDM7NDU0LDEzIEBAIHN0YXRpYyB2b2lkIGdpY3YyX3VwZGF0ZV9scihp bnQgbHIsIGNvbnN0IHN0cnVjdCA8YnI+DQpwZW5kaW5nX2lycSAqcCwgPGJyPg0KJm5ic3A7ICZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7Jmx0OyBHSUNIX1YyX0xS X1BIWVNJQ0FMX1NISUZUKTsgPGJyPg0KPGJyPg0KJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyB3cml0ZWxfZ2ljaChscl9yZWcsIEdJQ0hfTFIgJiM0MzsgbHIgKiA0KTsgPGJyPg0KJiM0 MzsmbmJzcDsmbmJzcDsmbmJzcDsgY3VycmVudC0mZ3Q7YXJjaC5naWMudjIubHJbbHJdID0gbHJf cmVnOyA8YnI+DQombmJzcDsgJm5ic3A7fSA8YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7c3RhdGlj IHZvaWQgZ2ljdjJfY2xlYXJfbHIoaW50IGxyKSA8YnI+DQombmJzcDsgJm5ic3A7eyA8YnI+DQom bmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHdyaXRlbF9naWNoKDAsIEdJQ0hfTFIgJiM0 MzsgbHIgKiA0KTsgPGJyPg0KJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsgY3VycmVudC0mZ3Q7YXJj aC5naWMudjIubHJbbHJdID0gMDsgPGJyPg0KJm5ic3A7ICZuYnNwO30gPGJyPg0KPGJyPg0KJm5i c3A7ICZuYnNwO3N0YXRpYyB2b2lkIGdpY3YyX3JlYWRfbHIoaW50IGxyLCBzdHJ1Y3QgZ2ljX2xy ICpscl9yZWcpIDxicj4NCkBAIC00NTgsNiAmIzQzOzQ2OCw5IEBAIHN0YXRpYyB2b2lkIGdpY3Yy X3JlYWRfbHIoaW50IGxyLCBzdHJ1Y3QgZ2ljX2xyICpscl9yZWcpIDxicj4NCiZuYnNwOyAmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgdWludDMyX3QgbHJ2OyA8YnI+DQo8YnI+DQombmJzcDsgJm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGxydiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA9IHJlYWRsX2dpY2goR0lDSF9MUiAmIzQzOyBsciAqIDQp OyA8YnI+DQomIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAoIGxydiAhPSBjdXJyZW50LSZndDth cmNoLmdpYy52Mi5scltscl0pIDxicj4NCiYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7IHByaW50aygmcXVvdDtTdG9yZWQgTFIgaXMgc3RhbGU6IHN0b3JlZCAw eCUmcXVvdDtQUklYMzImcXVvdDsgcmVhZCAweCUmcXVvdDtQUklYMzImcXVvdDtcbiZxdW90Oywg PGJyPg0KJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgY3VycmVudC0mZ3Q7YXJjaC5n aWMudjIubHJbbHJdLCBscnYpOyA8YnI+DQombmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 IGxyX3JlZy0mZ3Q7cGlycSA9IChscnYgJmd0OyZndDsgR0lDSF9WMl9MUl9QSFlTSUNBTF9TSElG VCkgJmFtcDsgPGJyPg0KR0lDSF9WMl9MUl9QSFlTSUNBTF9NQVNLOyA8YnI+DQombmJzcDsgJm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGxyX3JlZy0mZ3Q7dmlycSA9IChscnYgJmd0OyZndDsgR0lD SF9WMl9MUl9WSVJUVUFMX1NISUZUKSAmYW1wOyA8YnI+DQpHSUNIX1YyX0xSX1ZJUlRVQUxfTUFT SzsgPGJyPg0KJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBscl9yZWctJmd0O3ByaW9y aXR5ID0gKGxydiAmZ3Q7Jmd0OyBHSUNIX1YyX0xSX1BSSU9SSVRZX1NISUZUKSAmYW1wOyA8YnI+ DQpHSUNIX1YyX0xSX1BSSU9SSVRZX01BU0s7IDxicj4NCkBAIC00ODEsNiAmIzQzOzQ5NCw3IEBA IHN0YXRpYyB2b2lkIGdpY3YyX3dyaXRlX2xyKGludCBsciwgY29uc3Qgc3RydWN0IDxicj4NCmdp Y19sciAqbHJfcmVnKSA8YnI+DQombmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICgodWludDMyX3QpKGxyX3JlZy0mZ3Q7Z3Jw ICZhbXA7IEdJQ0hfVjJfTFJfR1JQX01BU0spICZsdDsmbHQ7IDxicj4NCkdJQ0hfVjJfTFJfR1JQ X1NISUZUKSApOyA8YnI+DQo8YnI+DQombmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHdy aXRlbF9naWNoKGxydiwgR0lDSF9MUiAmIzQzOyBsciAqIDQpOyA8YnI+DQomIzQzOyZuYnNwOyZu YnNwOyZuYnNwOyBjdXJyZW50LSZndDthcmNoLmdpYy52Mi5scltscl0gPSBscnY7IDxicj4NCiZu YnNwOyAmbmJzcDt9IDxicj4NCjxicj4NCiZuYnNwOyAmbmJzcDtzdGF0aWMgdm9pZCBnaWN2Ml9o Y3Jfc3RhdHVzKHVpbnQzMl90IGZsYWcsIGJvb2wgc3RhdHVzKSA8YnI+DQpAQCAtMTIzMiw2ICYj NDM7MTI0Niw3IEBAIGNvbnN0IHN0YXRpYyBzdHJ1Y3QgZ2ljX2h3X29wZXJhdGlvbnMgZ2ljdjJf b3BzID0geyA8YnI+DQombmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC5pbmZvJm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ID0gJmFtcDtnaWN2Ml9pbmZvLCA8YnI+DQombmJz cDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC5pbml0Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7ID0gZ2ljdjJfaW5pdCwgPGJyPg0KJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyAuc2Vjb25kYXJ5X2luaXQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPSBnaWN2 Ml9zZWNvbmRhcnlfY3B1X2luaXQsIDxicj4NCiYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC5zdG9y ZV9scnMmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgPSBnaWN2Ml9zdG9yZV9scnMsIDxicj4NCiZuYnNwOyAmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsgLnNhdmVfc3RhdGUmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsgPSBnaWN2Ml9zYXZlX3N0YXRlLCA8YnI+DQombmJzcDsgJm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IC5yZXN0b3JlX3N0YXRlJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7ID0gZ2ljdjJfcmVzdG9yZV9zdGF0ZSwgPGJyPg0KJm5ic3A7ICZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyAuZHVtcF9zdGF0ZSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA9IGdpY3YyX2R1bXBfc3RhdGUsIDxicj4NCmRpZmYg LS1naXQgYS94ZW4vYXJjaC9hcm0vZ2ljLmMgYi94ZW4vYXJjaC9hcm0vZ2ljLmMgPGJyPg0KaW5k ZXggZWQzNjNmNi4uYTA1YzUxOCAxMDA2NDQgPGJyPg0KLS0tIGEveGVuL2FyY2gvYXJtL2dpYy5j IDxicj4NCiYjNDM7JiM0MzsmIzQzOyBiL3hlbi9hcmNoL2FybS9naWMuYyA8YnI+DQpAQCAtNTk0 LDYgJiM0Mzs1OTQsMTIgQEAgc3RhdGljIHZvaWQgZ2ljX3VwZGF0ZV9vbmVfbHIoc3RydWN0IHZj cHUgKnYsIGludCBpKSA8YnI+DQombmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH0gPGJy Pg0KJm5ic3A7ICZuYnNwO30gPGJyPg0KPGJyPg0KJiM0Mzt2b2lkIGdpY19zdG9yZV9scnModm9p ZCkgPGJyPg0KJiM0Mzt7IDxicj4NCiYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmKGdpY19od19v cHMtJmd0O3N0b3JlX2xycykgPGJyPg0KJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgZ2ljX2h3X29wcy0mZ3Q7c3RvcmVfbHJzKCk7IDxicj4NCiYjNDM7fSA8 YnI+DQomIzQzOyA8YnI+DQombmJzcDsgJm5ic3A7dm9pZCBnaWNfY2xlYXJfbHJzKHN0cnVjdCB2 Y3B1ICp2KSA8YnI+DQombmJzcDsgJm5ic3A7eyA8YnI+DQombmJzcDsgJm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7IGludCBpID0gMDsgPGJyPg0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90cmFw cy5jIGIveGVuL2FyY2gvYXJtL3RyYXBzLmMgPGJyPg0KaW5kZXggZjZmNmRlMy4uOTg1MTkyYiAx MDA2NDQgPGJyPg0KLS0tIGEveGVuL2FyY2gvYXJtL3RyYXBzLmMgPGJyPg0KJiM0MzsmIzQzOyYj NDM7IGIveGVuL2FyY2gvYXJtL3RyYXBzLmMgPGJyPg0KQEAgLTIwOTUsNiAmIzQzOzIwOTUsNyBA QCBzdGF0aWMgdm9pZCBlbnRlcl9oeXBlcnZpc29yX2hlYWQoc3RydWN0IDxicj4NCmNwdV91c2Vy X3JlZ3MgKnJlZ3MpIDxicj4NCiZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsgaWYgKCBjdXJyZW50LSZndDthcmNoLmhjcl9lbDIgJmFtcDsgSENS X1ZBICkgPGJyPg0KJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBjdXJyZW50LSZndDthcmNoLmhjcl9l bDIgPSBSRUFEX1NZU1JFRyhIQ1JfRUwyKTsgPGJyPg0KPGJyPg0KJiM0MzsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZ2ljX3N0b3JlX2xycygpOyA8YnI+DQo8L2Js b2NrcXVvdGU+DQo8YnI+DQpnaWNfY2xlYXJfbHJzKC4uLikgbWF5IHJld3JpdGUgdGhlIExScy4g VG8gY29uZmlybSB0aGlzIHN0YWxsIExScyBhcmUgbm90IGR1ZSBieSB0aGlzIGZ1bmN0aW9uLCBj YW4geW91IG1vdmUgdGhhdCBhZnRlciBnaWNfY2xlYXJfbHJzKCk/DQo8YnI+DQo8L2Jsb2NrcXVv dGU+DQpSaWdodCB5b3UgYXJlLCBnaWNfY2xlYXJfbHJzKCksIGluIDQuMTAgY29kZWJhc2UsIHJl d3JpdGVzIExScy4gQnV0IGl0IGRvZXMgbm90IGNoYW5nZSBQRU5ESU5HIHRvIElOVkFMSUQgdW5k ZXIgbm8gY2lyY3Vtc3RhbmNlcyBmcm9tIG9uZSBoYW5kLiBGcm9tIGFub3RoZXIgaGFuZCwgYWxs IGNoYW5nZXMgdG8gTFJzIGFyZSBtYWRlIHRocm91Z2ggZ2ljIHNwZWNpZmljIG9wZXJhdGlvbnMg Z2ljX2h3X29wcy0mZ3Q7Li4uIHdoaWNoIGFyZSB0cmFja2VkDQogYnkgbWUuIFlvdSBjYW4gc2Vl LCBpbiB0aGUgY29kZSBhYm92ZSwgdGhhdCBJIGNvcHkgYWxsIHVwZGF0ZXMgdG8gdGhlIHBoeXNp Y2FsIExSIGlzc3VlZCBieSBoeXBlcnZpc29yIGludG8gdGhlIHN0b3JlZCBMUnMuIFNvIGl0IG5v dCB0aGUgY2FzZS4gQnV0IEknbGwgY2hlY2sgb24gTW9uZGF5Ljxicj4NCjxicj4NCjxibG9ja3F1 b3RlIHR5cGU9ImNpdGUiIGNpdGU9Im1pZDoyMmY3ZWJjOC1jNzRiLTBkOGUtNDg0Ny05ZDNkZjli Y2Y1ZGJAYXJtLmNvbSI+PGJyPg0KPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+Jm5ic3A7ICZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBnaWNfY2xlYXJfbHJz KGN1cnJlbnQpOyA8YnI+DQombmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH0gPGJyPg0K Jm5ic3A7ICZuYnNwO30gPGJyPg0KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2lj LmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2dpYy5oIDxicj4NCmluZGV4IGQzZDdiZGEuLjZmZTNm ZGIgMTAwNjQ0IDxicj4NCi0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljLmggPGJyPg0KJiM0 MzsmIzQzOyYjNDM7IGIveGVuL2luY2x1ZGUvYXNtLWFybS9naWMuaCA8YnI+DQpAQCAtMjkzLDYg JiM0MzsyOTMsNyBAQCBleHRlcm4gdW5zaWduZWQgaW50IGdpY19udW1iZXJfbGluZXModm9pZCk7 IDxicj4NCiZuYnNwOyAmbmJzcDsvKiBJUlEgdHJhbnNsYXRpb24gZnVuY3Rpb24gZm9yIHRoZSBk ZXZpY2UgdHJlZSAqLyA8YnI+DQombmJzcDsgJm5ic3A7aW50IGdpY19pcnFfeGxhdGUoY29uc3Qg dTMyICppbnRzcGVjLCB1bnNpZ25lZCBpbnQgaW50c2l6ZSwgPGJyPg0KJm5ic3A7ICZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB1bnNpZ25lZCBpbnQg Km91dF9od2lycSwgdW5zaWduZWQgaW50ICpvdXRfdHlwZSk7IDxicj4NCiYjNDM7dm9pZCBnaWNf c3RvcmVfbHJzKHZvaWQpOyA8YnI+DQombmJzcDsgJm5ic3A7dm9pZCBnaWNfY2xlYXJfbHJzKHN0 cnVjdCB2Y3B1ICp2KTsgPGJyPg0KPGJyPg0KJm5ic3A7ICZuYnNwO3N0cnVjdCBnaWNfaW5mbyB7 IDxicj4NCkBAIC0zMTQsNiAmIzQzOzMxNSw4IEBAIHN0cnVjdCBnaWNfaHdfb3BlcmF0aW9ucyB7 IDxicj4NCiZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgLyogSW5pdGlhbGl6ZSB0aGUg R0lDIGFuZCB0aGUgYm9vdCBDUFUgKi8gPGJyPg0KJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyBpbnQgKCppbml0KSh2b2lkKTsgPGJyPg0KJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyAvKiBTYXZlIEdJQyByZWdpc3RlcnMgKi8gPGJyPg0KJiM0MzsmbmJzcDsmbmJzcDsmbmJz cDsgdm9pZCAoKnN0b3JlX2xycykodm9pZCk7IDxicj4NCiYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7 IC8qIFNhdmUgR0lDIHJlZ2lzdGVycyAqLyA8YnI+DQombmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IHZvaWQgKCpzYXZlX3N0YXRlKShzdHJ1Y3QgdmNwdSAqKTsgPGJyPg0KJm5ic3A7ICZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAvKiBSZXN0b3JlIEdJQyByZWdpc3RlcnMgKi8gPGJyPg0K Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB2b2lkICgqcmVzdG9yZV9zdGF0ZSkoY29u c3Qgc3RydWN0IHZjcHUgKik7IDxicj4NCjwvYmxvY2txdW90ZT4NCjxicj4NCkNoZWVycywgPGJy Pg0KPGJyPg0KPC9ibG9ja3F1b3RlPg0KPGJyPg0KWzFdIDxhIGNsYXNzPSJtb3otdHh0LWxpbmst ZnJlZXRleHQiIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hYW5pc292L3hlbi9jb21taXQvYjFj MjhiZTM4ZDMwZWI0NjBlZDAzMzk1MjZjNDk4N2IyY2YxNzA4YyI+DQpodHRwczovL2dpdGh1Yi5j b20vYWFuaXNvdi94ZW4vY29tbWl0L2IxYzI4YmUzOGQzMGViNDYwZWQwMzM5NTI2YzQ5ODdiMmNm MTcwOGM8L2E+PGJyPg0KWzJdIDxhIGNsYXNzPSJtb3otdHh0LWxpbmstZnJlZXRleHQiIGhyZWY9 Imh0dHBzOi8vZ2l0aHViLmNvbS9nbG1hcmsyL2dsbWFyazIiPmh0dHBzOi8vZ2l0aHViLmNvbS9n bG1hcmsyL2dsbWFyazI8L2E+PGJyPg0KPGJyPg0KPC9ib2R5Pg0KPC9odG1sPg0K --_000_3622e4688f441e31138fdb58ca3835ffepamcom_-- --===============1961488015669265068== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0 cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA== --===============1961488015669265068==--