From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4F11ACA553C for ; Thu, 14 Sep 2023 13:17:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238808AbjINNRS (ORCPT ); Thu, 14 Sep 2023 09:17:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58768 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239024AbjINNRL (ORCPT ); Thu, 14 Sep 2023 09:17:11 -0400 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 71017211B; Thu, 14 Sep 2023 06:17:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=MIME-Version:Content-Type:References: In-Reply-To:Date:Cc:To:From:Subject:Message-ID:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=gEGsV0CjcBSg8l2LKjwYG6MMcevhYmNgD0G/Fg7bT1A=; b=F1O7QMjzzn4LUSZllSAsj1j0E6 LSpEgVb2H8UNCIjvDIc85Tou2O4zoss3zr+O1PPA8zS+nSeWgjGGHC67D39eezwmkH4pjqjVTRZNW +EJ1eL2F1zqIKRpXg6mBEvc261ahmV5HJwPYYKowicVSi0bVhlWsICcrflvrRX6ZZIAkD21Z4r9v5 XS7s5WWzyaoeGC11XJUO+aLSlO29pNoP55Z6QYC0XGsSsalugcLXhsV2BQKxmLAjyiWPm3/l9KMv8 qWU8Z+jADWiXYGlAAwDxB0HeIHwYTMZS/5YQOs8tA/3H46d+9j2n0AQaU9JBRBFhbol5SIzBJDDJR SGT0MGZg==; Received: from [213.86.228.42] (helo=u3832b3a9db3152.ant.amazon.com) by casper.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1qgmDN-00367h-TK; Thu, 14 Sep 2023 13:17:02 +0000 Message-ID: <235c70e00b74f237aba8ac765ec8d82e036383d9.camel@infradead.org> Subject: Re: [PATCH 7/8] KVM: xen: prepare for using 'default' vcpu_info From: David Woodhouse To: Paul Durrant , kvm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Paul Durrant , Sean Christopherson , Paolo Bonzini , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , x86@kernel.org Date: Thu, 14 Sep 2023 15:17:00 +0200 In-Reply-To: <20230914084946.200043-8-paul@xen.org> References: <20230914084946.200043-1-paul@xen.org> <20230914084946.200043-8-paul@xen.org> Content-Type: multipart/signed; micalg="sha-256"; protocol="application/pkcs7-signature"; boundary="=-ftvNRxP1fR6PFBmh7g0J" User-Agent: Evolution 3.44.4-0ubuntu2 MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org. See http://www.infradead.org/rpr.html Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-ftvNRxP1fR6PFBmh7g0J Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 T24gVGh1LCAyMDIzLTA5LTE0IGF0IDA4OjQ5ICswMDAwLCBQYXVsIER1cnJhbnQgd3JvdGU6Cj4g RnJvbTogUGF1bCBEdXJyYW50IDxwZHVycmFudEBhbWF6b24uY29tPgo+IAo+IFRoZSBzaGFyZWRf aW5mbyBwYWdlIGNvbnRhaW5zIGFuIGFycmF5IG9mIDMyIHZjcHVfaW5mbyBzdHJ1Y3R1cmVzCj4g d2hpY2ggbWF5IGJlIHVzZWQgYnkgZ3Vlc3RzICh3aXRoIGxlc3MgdGhhbiAzMiB2Q1BVcykgaWYg dGhleSBkb24ndAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiBmZXdlcgoK PiBleHBsaWNpdGx5IHJlZ2lzdGVyIHZjcHVfaW5mbyBzdHJ1Y3R1cmVzIGluIHRoZWlyIG93biBt ZW1vcnksIHVzaW5nCj4gYSBWQ1BVT1BfcmVnaXN0ZXJfdmNwdV9pbmZvIGh5cGVyY2FsbC4KPiBD dXJyZW50bHkgd2UgcmVseSBvbiB0aGUgVk1NIGFsd2F5cyByZWdpc3RlcmluZyB2Y3B1X2luZm8g c3RydWN0dXJlcywKPiBldmVuIGlmIHRoZSBndWVzdCBkb2Vzbid0IG1ha2UgdGhhdCBoeXBlcmNh bGwsIHdoaWNoIGlzIHNvbWV3aGF0Cj4gYm9ndXMgYXMgKGFzIGhhcyBiZWVuIHN0YXRlZCBpbiB0 aGUgY29tbWVudCBvZiBhIHByZXZpb3VzIGNvbW1pdCkKPiB0aGUgc2hhcmVkX2luZm8gcGFnZSBp cyBub3QgZ3Vlc3QgbWVtb3J5Lgo+IFByZXBhcmUgdG8gYXV0b21hdGljYWxseSB1c2UgdGhlIHZj cHVfaW5mbyBpbmZvIGVtYmVkZGVkIGluIHNoYXJlZF9pbmZvCj4gYnkgZGVmYXVsdCwgYnkgYWRk aW5nIGEgZ2V0X3ZjcHVfaW5mb19jYWNoZSgpIGhlbHBlciBmdW5jdGlvbi4gVGhpcwo+IGZ1bmN0 aW9uIGFsc28gcGFzc2VzIGJhY2sgYW4gb2Zmc2V0IHRvIGJlIGFkZGVkIHRvIHRoZSBjYWNoZWQg a2h2YS4KPiBUaGlzIGlzIGN1cnJlbnRseSBhbHdheXMgemVybyBzaW5jZSB3ZSdyZSBzdGlsbCBy ZWx5aW5nIG9uIHRoZQo+IGN1cnJlbnQgVk1NIGJlaGF2aW91ci4gQSBzdWJzZXF1ZW50IHBhdGNo IHdpbGwgbWFrZSBwcm9wZXIgdXNlIG9mCj4gaXQuCj4gCj4gTk9URTogVG8gYXZvaWQgbGVha2lu ZyBkZXRhaWwgb2YgdGhlIHZjcHVfaW5mbyBkdWFsaXR5IGludG8gdGhlIG1haW4KPiDCoMKgwqDC oMKgIHg4NiBjb2RlLCBhIGt2bV94ZW5fZ3Vlc3RfdGltZV91cGRhdGUoKSBoYXMgYWxzbyBiZWVu IGFkZGVkCj4gwqDCoMKgwqDCoCBhbmQgdXNlIG9mIHRoaXMgcmVxdWlyZXMgdGhhdCBrdm1fc2V0 dXBfZ3Vlc3RfcHZjbG9jaygpIGNlYXNlcwo+IMKgwqDCoMKgwqAgdG8gYmUgYSBzdGF0aWMgZnVu Y3Rpb24uCgpObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZC4uLj8KCgo+IFNpZ25lZC1vZmYt Ynk6IFBhdWwgRHVycmFudCA8cGR1cnJhbnRAYW1hem9uLmNvbT4KClJldmlld2VkLWJ5OiBEYXZp ZCBXb29kaG91c2UgPGR3bXdAYW1hem9uLmNvLnVrPgoKPiBDYzogU2VhbiBDaHJpc3RvcGhlcnNv biA8c2VhbmpjQGdvb2dsZS5jb20+Cj4gQ2M6IFBhb2xvIEJvbnppbmkgPHBib256aW5pQHJlZGhh dC5jb20+Cj4gQ2M6IFRob21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPgo+IENjOiBJ bmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KPiBDYzogQm9yaXNsYXYgUGV0a292IDxicEBh bGllbjguZGU+Cj4gQ2M6IERhdmUgSGFuc2VuIDxkYXZlLmhhbnNlbkBsaW51eC5pbnRlbC5jb20+ Cj4gQ2M6ICJILiBQZXRlciBBbnZpbiIgPGhwYUB6eXRvci5jb20+Cj4gQ2M6IERhdmlkIFdvb2Ro b3VzZSA8ZHdtdzJAaW5mcmFkZWFkLm9yZz4KPiBDYzogeDg2QGtlcm5lbC5vcmcKPiAtLS0KPiDC oGFyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggfMKgIDQgKysrCj4gwqBhcmNoL3g4Ni9r dm0veDg2LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDEyICsrKy0tLS0tCj4gwqBhcmNo L3g4Ni9rdm0veGVuLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDUwICsrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLQo+IMKgYXJjaC94ODYva3ZtL3hlbi5owqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgfMKgIDYgKysrLQo+IMKgNCBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRp b25zKCspLCAxOSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVk ZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKPiBpbmRl eCAxYTRkZWYzNmQ1YmIuLjZkODk2ZjkxNjFjMiAxMDA2NDQKPiAtLS0gYS9hcmNoL3g4Ni9pbmNs dWRlL2FzbS9rdm1faG9zdC5oCj4gKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3Qu aAo+IEBAIC0yMjM4LDQgKzIyMzgsOCBAQCBpbnQgbWVtc2xvdF9ybWFwX2FsbG9jKHN0cnVjdCBr dm1fbWVtb3J5X3Nsb3QgKnNsb3QsIHVuc2lnbmVkIGxvbmcgbnBhZ2VzKTsKPiDCoCAqLwo+IMKg I2RlZmluZSBLVk1fRVhJVF9IWVBFUkNBTExfTUJawqDCoMKgwqDCoMKgwqDCoMKgR0VOTUFTS19V TEwoMzEsIDEpCj4gwqAKPiArdm9pZCBrdm1fc2V0dXBfZ3Vlc3RfcHZjbG9jayhzdHJ1Y3Qga3Zt X3ZjcHUgKnYsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBzdHJ1Y3QgZ2ZuX3RvX3Bmbl9jYWNoZSAqZ3BjLAo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IG9m ZnNldCk7Cj4gKwo+IMKgI2VuZGlmIC8qIF9BU01fWDg2X0tWTV9IT1NUX0ggKi8KPiBkaWZmIC0t Z2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jCj4gaW5kZXggMGRm MDZmNDc4MDFjLi40Y2Q1NzdkMDFiYzQgMTAwNjQ0Cj4gLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5j Cj4gKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jCj4gQEAgLTMwOTQsOSArMzA5NCw5IEBAIHU2NCBn ZXRfa3ZtY2xvY2tfbnMoc3RydWN0IGt2bSAqa3ZtKQo+IMKgwqDCoMKgwqDCoMKgwqByZXR1cm4g ZGF0YS5jbG9jazsKPiDCoH0KPiDCoAo+IC1zdGF0aWMgdm9pZCBrdm1fc2V0dXBfZ3Vlc3RfcHZj bG9jayhzdHJ1Y3Qga3ZtX3ZjcHUgKnYsCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBnZm5fdG9fcGZu X2NhY2hlICpncGMsCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBvZmZzZXQpCj4gK3ZvaWQg a3ZtX3NldHVwX2d1ZXN0X3B2Y2xvY2soc3RydWN0IGt2bV92Y3B1ICp2LAo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGdmbl90 b19wZm5fY2FjaGUgKmdwYywKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGludCBvZmZzZXQpCj4gwqB7Cj4gwqDCoMKgwqDC oMKgwqDCoHN0cnVjdCBrdm1fdmNwdV9hcmNoICp2Y3B1ID0gJnYtPmFyY2g7Cj4gwqDCoMKgwqDC oMKgwqDCoHN0cnVjdCBwdmNsb2NrX3ZjcHVfdGltZV9pbmZvICpndWVzdF9odl9jbG9jazsKPiBA QCAtMzIzMiwxMSArMzIzMiw3IEBAIHN0YXRpYyBpbnQga3ZtX2d1ZXN0X3RpbWVfdXBkYXRlKHN0 cnVjdCBrdm1fdmNwdSAqdikKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqBpZiAodmNwdS0+cHZfdGlt ZS5hY3RpdmUpCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBrdm1fc2V0dXBfZ3Vl c3RfcHZjbG9jayh2LCAmdmNwdS0+cHZfdGltZSwgMCk7Cj4gLcKgwqDCoMKgwqDCoMKgaWYgKHZj cHUtPnhlbi52Y3B1X2luZm9fY2FjaGUuYWN0aXZlKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBrdm1fc2V0dXBfZ3Vlc3RfcHZjbG9jayh2LCAmdmNwdS0+eGVuLnZjcHVfaW5mb19j YWNoZSwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgb2Zmc2V0b2Yoc3RydWN0IGNvbXBhdF92Y3B1 X2luZm8sIHRpbWUpKTsKPiAtwqDCoMKgwqDCoMKgwqBpZiAodmNwdS0+eGVuLnZjcHVfdGltZV9p bmZvX2NhY2hlLmFjdGl2ZSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKga3ZtX3Nl dHVwX2d1ZXN0X3B2Y2xvY2sodiwgJnZjcHUtPnhlbi52Y3B1X3RpbWVfaW5mb19jYWNoZSwgMCk7 Cj4gK8KgwqDCoMKgwqDCoMKga3ZtX3hlbl9ndWVzdF90aW1lX3VwZGF0ZSh2KTsKPiDCoMKgwqDC oMKgwqDCoMKga3ZtX2h2X3NldHVwX3RzY19wYWdlKHYtPmt2bSwgJnZjcHUtPmh2X2Nsb2NrKTsK PiDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIDA7Cj4gwqB9Cj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2t2bS94ZW4uYyBiL2FyY2gveDg2L2t2bS94ZW4uYwo+IGluZGV4IDFhYmI0NTQ3NjQyYS4uODky NTYzZmVhNDBmIDEwMDY0NAo+IC0tLSBhL2FyY2gveDg2L2t2bS94ZW4uYwo+ICsrKyBiL2FyY2gv eDg2L2t2bS94ZW4uYwo+IEBAIC00ODksNiArNDg5LDI5IEBAIHN0YXRpYyB2b2lkIGt2bV94ZW5f aW5qZWN0X3ZjcHVfdmVjdG9yKHN0cnVjdCBrdm1fdmNwdSAqdikKPiDCoMKgwqDCoMKgwqDCoMKg V0FSTl9PTl9PTkNFKCFrdm1faXJxX2RlbGl2ZXJ5X3RvX2FwaWNfZmFzdCh2LT5rdm0sIE5VTEws ICZpcnEsICZyLCBOVUxMKSk7Cj4gwqB9Cj4gwqAKPiArc3RydWN0IGdmbl90b19wZm5fY2FjaGUg KmdldF92Y3B1X2luZm9fY2FjaGUoc3RydWN0IGt2bV92Y3B1ICp2LCB1bnNpZ25lZCBsb25nICpv ZmZzZXQpCj4gK3sKPiArwqDCoMKgwqDCoMKgwqBpZiAob2Zmc2V0KQo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAqb2Zmc2V0ID0gMDsKPiArCj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJu ICZ2LT5hcmNoLnhlbi52Y3B1X2luZm9fY2FjaGU7Cj4gK30KPiArCj4gK3ZvaWQga3ZtX3hlbl9n dWVzdF90aW1lX3VwZGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnYpCj4gK3sKPiArwqDCoMKgwqDCoMKg wqB1bnNpZ25lZCBsb25nIG9mZnNldDsKPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZ2ZuX3RvX3Bm bl9jYWNoZSAqZ3BjID0gZ2V0X3ZjcHVfaW5mb19jYWNoZSh2LCAmb2Zmc2V0KTsKPiArCj4gK8Kg wqDCoMKgwqDCoMKgQlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVjdCB2Y3B1X2luZm8sIHRpbWUp ICE9Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG9mZnNldG9mKHN0 cnVjdCBjb21wYXRfdmNwdV9pbmZvLCB0aW1lKSk7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGlmIChn cGMtPmFjdGl2ZSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKga3ZtX3NldHVwX2d1 ZXN0X3B2Y2xvY2sodiwgZ3BjLCBvZmZzZXQgKyBvZmZzZXRvZihzdHJ1Y3QgY29tcGF0X3ZjcHVf aW5mbywgdGltZSkpOwo+ICsKPiArwqDCoMKgwqDCoMKgwqBpZiAodi0+YXJjaC54ZW4udmNwdV90 aW1lX2luZm9fY2FjaGUuYWN0aXZlKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBr dm1fc2V0dXBfZ3Vlc3RfcHZjbG9jayh2LCAmdi0+YXJjaC54ZW4udmNwdV90aW1lX2luZm9fY2Fj aGUsIDApOwo+ICt9Cj4gKwo+IMKgLyoKPiDCoCAqIE9uIGV2ZW50IGNoYW5uZWwgZGVsaXZlcnks IHRoZSB2Y3B1X2luZm8gbWF5IG5vdCBoYXZlIGJlZW4gYWNjZXNzaWJsZS4KPiDCoCAqIEluIHRo YXQgY2FzZSwgdGhlcmUgYXJlIGJpdHMgaW4gdmNwdS0+YXJjaC54ZW4uZXZ0Y2huX3BlbmRpbmdf c2VsIHdoaWNoCj4gQEAgLTQ5OSw3ICs1MjIsOCBAQCBzdGF0aWMgdm9pZCBrdm1feGVuX2luamVj dF92Y3B1X3ZlY3RvcihzdHJ1Y3Qga3ZtX3ZjcHUgKnYpCj4gwqB2b2lkIGt2bV94ZW5faW5qZWN0 X3BlbmRpbmdfZXZlbnRzKHN0cnVjdCBrdm1fdmNwdSAqdikKPiDCoHsKPiDCoMKgwqDCoMKgwqDC oMKgdW5zaWduZWQgbG9uZyBldnRjaG5fcGVuZGluZ19zZWwgPSBSRUFEX09OQ0Uodi0+YXJjaC54 ZW4uZXZ0Y2huX3BlbmRpbmdfc2VsKTsKPiAtwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZ2ZuX3RvX3Bm bl9jYWNoZSAqZ3BjID0gJnYtPmFyY2gueGVuLnZjcHVfaW5mb19jYWNoZTsKPiArwqDCoMKgwqDC oMKgwqB1bnNpZ25lZCBsb25nIG9mZnNldDsKPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZ2ZuX3Rv X3Bmbl9jYWNoZSAqZ3BjID0gZ2V0X3ZjcHVfaW5mb19jYWNoZSh2LCAmb2Zmc2V0KTsKPiDCoMKg wqDCoMKgwqDCoMKgdW5zaWduZWQgbG9uZyBmbGFnczsKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqBp ZiAoIWV2dGNobl9wZW5kaW5nX3NlbCkKPiBAQCAtNTIyLDcgKzU0Niw3IEBAIHZvaWQga3ZtX3hl bl9pbmplY3RfcGVuZGluZ19ldmVudHMoc3RydWN0IGt2bV92Y3B1ICp2KQo+IMKgCj4gwqDCoMKg wqDCoMKgwqDCoC8qIE5vdyBncGMtPmtodmEgaXMgYSB2YWxpZCBrZXJuZWwgYWRkcmVzcyBmb3Ig dGhlIHZjcHVfaW5mbyAqLwo+IMKgwqDCoMKgwqDCoMKgwqBpZiAoSVNfRU5BQkxFRChDT05GSUdf NjRCSVQpICYmIHYtPmt2bS0+YXJjaC54ZW4ubG9uZ19tb2RlKSB7Cj4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoHN0cnVjdCB2Y3B1X2luZm8gKnZpID0gZ3BjLT5raHZhOwo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgdmNwdV9pbmZvICp2aSA9IGdwYy0+a2h2 YSArIG9mZnNldDsKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgYXNtIHZv bGF0aWxlKExPQ0tfUFJFRklYICJvcnEgJTAsICUxXG4iCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIm5vdHEgJTBcbiIKPiBAQCAtNTM0 LDcgKzU1OCw3IEBAIHZvaWQga3ZtX3hlbl9pbmplY3RfcGVuZGluZ19ldmVudHMoc3RydWN0IGt2 bV92Y3B1ICp2KQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgV1JJVEVfT05DRSh2 aS0+ZXZ0Y2huX3VwY2FsbF9wZW5kaW5nLCAxKTsKPiDCoMKgwqDCoMKgwqDCoMKgfSBlbHNlIHsK PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHUzMiBldnRjaG5fcGVuZGluZ19zZWwz MiA9IGV2dGNobl9wZW5kaW5nX3NlbDsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg c3RydWN0IGNvbXBhdF92Y3B1X2luZm8gKnZpID0gZ3BjLT5raHZhOwo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgY29tcGF0X3ZjcHVfaW5mbyAqdmkgPSBncGMtPmtodmEg KyBvZmZzZXQ7Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGFzbSB2b2xh dGlsZShMT0NLX1BSRUZJWCAib3JsICUwLCAlMVxuIgo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJub3RsICUwXG4iCj4gQEAgLTU1Niw3 ICs1ODAsOCBAQCB2b2lkIGt2bV94ZW5faW5qZWN0X3BlbmRpbmdfZXZlbnRzKHN0cnVjdCBrdm1f dmNwdSAqdikKPiDCoAo+IMKgaW50IF9fa3ZtX3hlbl9oYXNfaW50ZXJydXB0KHN0cnVjdCBrdm1f dmNwdSAqdikKPiDCoHsKPiAtwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZ2ZuX3RvX3Bmbl9jYWNoZSAq Z3BjID0gJnYtPmFyY2gueGVuLnZjcHVfaW5mb19jYWNoZTsKPiArwqDCoMKgwqDCoMKgwqB1bnNp Z25lZCBsb25nIG9mZnNldDsKPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZ2ZuX3RvX3Bmbl9jYWNo ZSAqZ3BjID0gZ2V0X3ZjcHVfaW5mb19jYWNoZSh2LCAmb2Zmc2V0KTsKPiDCoMKgwqDCoMKgwqDC oMKgdW5zaWduZWQgbG9uZyBmbGFnczsKPiDCoMKgwqDCoMKgwqDCoMKgdTggcmMgPSAwOwo+IMKg Cj4gQEAgLTU5OCw3ICs2MjMsNyBAQCBpbnQgX19rdm1feGVuX2hhc19pbnRlcnJ1cHQoc3RydWN0 IGt2bV92Y3B1ICp2KQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmVhZF9sb2Nr X2lycXNhdmUoJmdwYy0+bG9jaywgZmxhZ3MpOwo+IMKgwqDCoMKgwqDCoMKgwqB9Cj4gwqAKPiAt wqDCoMKgwqDCoMKgwqByYyA9ICgoc3RydWN0IHZjcHVfaW5mbyAqKWdwYy0+a2h2YSktPmV2dGNo bl91cGNhbGxfcGVuZGluZzsKPiArwqDCoMKgwqDCoMKgwqByYyA9ICgoc3RydWN0IHZjcHVfaW5m byAqKShncGMtPmtodmEgKyBvZmZzZXQpKS0+ZXZ0Y2huX3VwY2FsbF9wZW5kaW5nOwo+IMKgwqDC oMKgwqDCoMKgwqByZWFkX3VubG9ja19pcnFyZXN0b3JlKCZncGMtPmxvY2ssIGZsYWdzKTsKPiDC oMKgwqDCoMKgwqDCoMKgcmV0dXJuIHJjOwo+IMKgfQo+IEBAIC0xNTY3LDcgKzE1OTIsNyBAQCBz dGF0aWMgdm9pZCBrdm1feGVuX2NoZWNrX3BvbGxlcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGlu dCBwb3J0KQo+IMKgICovCj4gwqBpbnQga3ZtX3hlbl9zZXRfZXZ0Y2huX2Zhc3Qoc3RydWN0IGt2 bV94ZW5fZXZ0Y2huICp4ZSwgc3RydWN0IGt2bSAqa3ZtKQo+IMKgewo+IC3CoMKgwqDCoMKgwqDC oHN0cnVjdCBnZm5fdG9fcGZuX2NhY2hlICpncGMgPSAma3ZtLT5hcmNoLnhlbi5zaGluZm9fY2Fj aGU7Cj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IGdmbl90b19wZm5fY2FjaGUgKmdwYzsKPiDCoMKg wqDCoMKgwqDCoMKgc3RydWN0IGt2bV92Y3B1ICp2Y3B1Owo+IMKgwqDCoMKgwqDCoMKgwqB1bnNp Z25lZCBsb25nICpwZW5kaW5nX2JpdHMsICptYXNrX2JpdHM7Cj4gwqDCoMKgwqDCoMKgwqDCoHVu c2lnbmVkIGxvbmcgZmxhZ3M7Cj4gQEAgLTE1ODUsNyArMTYxMCw4IEBAIGludCBrdm1feGVuX3Nl dF9ldnRjaG5fZmFzdChzdHJ1Y3Qga3ZtX3hlbl9ldnRjaG4gKnhlLCBzdHJ1Y3Qga3ZtICprdm0p Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBXUklURV9PTkNFKHhlLT52Y3B1X2lk eCwgdmNwdS0+dmNwdV9pZHgpOwo+IMKgwqDCoMKgwqDCoMKgwqB9Cj4gwqAKPiAtwqDCoMKgwqDC oMKgwqBpZiAoIXZjcHUtPmFyY2gueGVuLnZjcHVfaW5mb19jYWNoZS5hY3RpdmUpCj4gK8KgwqDC oMKgwqDCoMKgZ3BjID0gZ2V0X3ZjcHVfaW5mb19jYWNoZSh2Y3B1LCBOVUxMKTsKPiArwqDCoMKg wqDCoMKgwqBpZiAoIWdwYy0+YWN0aXZlKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgcmV0dXJuIC1FSU5WQUw7Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgaWYgKHhlLT5wb3J0ID49 IG1heF9ldnRjaG5fcG9ydChrdm0pKQo+IEBAIC0xNTk0LDYgKzE2MjAsNyBAQCBpbnQga3ZtX3hl bl9zZXRfZXZ0Y2huX2Zhc3Qoc3RydWN0IGt2bV94ZW5fZXZ0Y2huICp4ZSwgc3RydWN0IGt2bSAq a3ZtKQo+IMKgwqDCoMKgwqDCoMKgwqByYyA9IC1FV09VTERCTE9DSzsKPiDCoAo+IMKgwqDCoMKg wqDCoMKgwqBpZHggPSBzcmN1X3JlYWRfbG9jaygma3ZtLT5zcmN1KTsKPiArwqDCoMKgwqDCoMKg wqBncGMgPSAma3ZtLT5hcmNoLnhlbi5zaGluZm9fY2FjaGU7Cj4gwqAKPiDCoMKgwqDCoMKgwqDC oMKgcmVhZF9sb2NrX2lycXNhdmUoJmdwYy0+bG9jaywgZmxhZ3MpOwo+IMKgwqDCoMKgwqDCoMKg wqBpZiAoIWt2bV9ncGNfY2hlY2soZ3BjLCBQQUdFX1NJWkUpKQo+IEBAIC0xNjI0LDEwICsxNjUx LDEzIEBAIGludCBrdm1feGVuX3NldF9ldnRjaG5fZmFzdChzdHJ1Y3Qga3ZtX3hlbl9ldnRjaG4g KnhlLCBzdHJ1Y3Qga3ZtICprdm0pCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBy YyA9IC1FTk9UQ09OTjsgLyogTWFza2VkICovCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBrdm1feGVuX2NoZWNrX3BvbGxlcih2Y3B1LCB4ZS0+cG9ydCk7Cj4gwqDCoMKgwqDCoMKg wqDCoH0gZWxzZSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHVuc2lnbmVkIGxv bmcgb2Zmc2V0Owo+ICsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJjID0gMTsg LyogRGVsaXZlcmVkIHRvIHRoZSBiaXRtYXAgaW4gc2hhcmVkX2luZm8uICovCj4gKwo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyogTm93IHN3aXRjaCB0byB0aGUgdkNQVSdzIHZj cHVfaW5mbyB0byBzZXQgdGhlIGluZGV4IGFuZCBwZW5kaW5nX3NlbCAqLwo+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgcmVhZF91bmxvY2tfaXJxcmVzdG9yZSgmZ3BjLT5sb2NrLCBm bGFncyk7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdwYyA9ICZ2Y3B1LT5hcmNo Lnhlbi52Y3B1X2luZm9fY2FjaGU7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdw YyA9IGdldF92Y3B1X2luZm9fY2FjaGUodmNwdSwgJm9mZnNldCk7Cj4gwqAKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJlYWRfbG9ja19pcnFzYXZlKCZncGMtPmxvY2ssIGZsYWdz KTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICgha3ZtX2dwY19jaGVjayhn cGMsIHNpemVvZihzdHJ1Y3QgdmNwdV9pbmZvKSkpIHsKPiBAQCAtMTY0MSwxMyArMTY3MSwxMyBA QCBpbnQga3ZtX3hlbl9zZXRfZXZ0Y2huX2Zhc3Qoc3RydWN0IGt2bV94ZW5fZXZ0Y2huICp4ZSwg c3RydWN0IGt2bSAqa3ZtKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+IMKg Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoSVNfRU5BQkxFRChDT05GSUdf NjRCSVQpICYmIGt2bS0+YXJjaC54ZW4ubG9uZ19tb2RlKSB7Cj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgdmNwdV9pbmZvICp2Y3B1X2luZm8g PSBncGMtPmtodmE7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBzdHJ1Y3QgdmNwdV9pbmZvICp2Y3B1X2luZm8gPSBncGMtPmtodmEgKyBvZmZzZXQ7Cj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKCF0ZXN0 X2FuZF9zZXRfYml0KHBvcnRfd29yZF9iaXQsICZ2Y3B1X2luZm8tPmV2dGNobl9wZW5kaW5nX3Nl bCkpIHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgV1JJVEVfT05DRSh2Y3B1X2luZm8tPmV2dGNobl91cGNhbGxfcGVuZGlu ZywgMSk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGtpY2tfdmNwdSA9IHRydWU7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgfSBlbHNlIHsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHN0cnVjdCBjb21wYXRfdmNwdV9pbmZvICp2Y3B1X2luZm8gPSBncGMtPmtodmE7Cj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgY29t cGF0X3ZjcHVfaW5mbyAqdmNwdV9pbmZvID0gZ3BjLT5raHZhICsgb2Zmc2V0Owo+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICghdGVzdF9hbmRfc2V0 X2JpdChwb3J0X3dvcmRfYml0LAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAo dW5zaWduZWQgbG9uZyAqKSZ2Y3B1X2luZm8tPmV2dGNobl9wZW5kaW5nX3NlbCkpIHsKPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgV1JJVEVfT05DRSh2Y3B1X2luZm8tPmV2dGNobl91cGNhbGxfcGVuZGluZywgMSk7Cj4gZGlm ZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ZW4uaCBiL2FyY2gveDg2L2t2bS94ZW4uaAo+IGluZGV4 IGY4ZjFmZTIyZDA5MC4uYzRkMjljY2JjM2FiIDEwMDY0NAo+IC0tLSBhL2FyY2gveDg2L2t2bS94 ZW4uaAo+ICsrKyBiL2FyY2gveDg2L2t2bS94ZW4uaAo+IEBAIC0xNiw2ICsxNiw3IEBACj4gwqAK PiDCoGV4dGVybiBzdHJ1Y3Qgc3RhdGljX2tleV9mYWxzZV9kZWZlcnJlZCBrdm1feGVuX2VuYWJs ZWQ7Cj4gwqAKPiArdm9pZCBrdm1feGVuX2d1ZXN0X3RpbWVfdXBkYXRlKHN0cnVjdCBrdm1fdmNw dSAqdmNwdSk7Cj4gwqBpbnQgX19rdm1feGVuX2hhc19pbnRlcnJ1cHQoc3RydWN0IGt2bV92Y3B1 ICp2Y3B1KTsKPiDCoHZvaWQga3ZtX3hlbl9pbmplY3RfcGVuZGluZ19ldmVudHMoc3RydWN0IGt2 bV92Y3B1ICp2Y3B1KTsKPiDCoGludCBrdm1feGVuX3ZjcHVfc2V0X2F0dHIoc3RydWN0IGt2bV92 Y3B1ICp2Y3B1LCBzdHJ1Y3Qga3ZtX3hlbl92Y3B1X2F0dHIgKmRhdGEpOwo+IEBAIC01Miw3ICs1 Myw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBrdm1feGVuX2h5cGVyY2FsbF9lbmFibGVkKHN0cnVj dCBrdm0gKmt2bSkKPiDCoHN0YXRpYyBpbmxpbmUgaW50IGt2bV94ZW5faGFzX2ludGVycnVwdChz dHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCj4gwqB7Cj4gwqDCoMKgwqDCoMKgwqDCoGlmIChzdGF0aWNf YnJhbmNoX3VubGlrZWx5KCZrdm1feGVuX2VuYWJsZWQua2V5KSAmJgo+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoCB2Y3B1LT5hcmNoLnhlbi52Y3B1X2luZm9fY2FjaGUuYWN0aXZlICYmCj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB2Y3B1LT5rdm0tPmFyY2gueGVuLnVwY2FsbF92ZWN0b3IpCj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gX19rdm1feGVuX2hhc19pbnRlcnJ1 cHQodmNwdSk7Cj4gwqAKPiBAQCAtODAsNiArODAsMTAgQEAgc3RhdGljIGlubGluZSBpbnQga3Zt X3hlbl9oYXNfcGVuZGluZ190aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCj4gwqAKPiDCoHZv aWQga3ZtX3hlbl9pbmplY3RfdGltZXJfaXJxcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwo+IMKg I2Vsc2UKPiArc3RhdGljIGlubGluZSB2b2lkIGt2bV94ZW5fZ3Vlc3RfdGltZV91cGRhdGUoc3Ry dWN0IGt2bV92Y3B1ICp2Y3B1KQo+ICt7Cj4gK30KPiArCj4gwqBzdGF0aWMgaW5saW5lIGludCBr dm1feGVuX3dyaXRlX2h5cGVyY2FsbF9wYWdlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGRh dGEpCj4gwqB7Cj4gwqDCoMKgwqDCoMKgwqDCoHJldHVybiAxOwoK --=-ftvNRxP1fR6PFBmh7g0J Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Disposition: attachment; filename="smime.p7s" Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCCEkQw ggYQMIID+KADAgECAhBNlCwQ1DvglAnFgS06KwZPMA0GCSqGSIb3DQEBDAUAMIGIMQswCQYDVQQG EwJVUzETMBEGA1UECBMKTmV3IEplcnNleTEUMBIGA1UEBxMLSmVyc2V5IENpdHkxHjAcBgNVBAoT FVRoZSBVU0VSVFJVU1QgTmV0d29yazEuMCwGA1UEAxMlVVNFUlRydXN0IFJTQSBDZXJ0aWZpY2F0 aW9uIEF1dGhvcml0eTAeFw0xODExMDIwMDAwMDBaFw0zMDEyMzEyMzU5NTlaMIGWMQswCQYDVQQG EwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYD VQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50 aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC AQEAyjztlApB/975Rrno1jvm2pK/KxBOqhq8gr2+JhwpKirSzZxQgT9tlC7zl6hn1fXjSo5MqXUf ItMltrMaXqcESJuK8dtK56NCSrq4iDKaKq9NxOXFmqXX2zN8HHGjQ2b2Xv0v1L5Nk1MQPKA19xeW QcpGEGFUUd0kN+oHox+L9aV1rjfNiCj3bJk6kJaOPabPi2503nn/ITX5e8WfPnGw4VuZ79Khj1YB rf24k5Ee1sLTHsLtpiK9OjG4iQRBdq6Z/TlVx/hGAez5h36bBJMxqdHLpdwIUkTqT8se3ed0PewD ch/8kHPo5fZl5u1B0ecpq/sDN/5sCG52Ds+QU5O5EwIDAQABo4IBZDCCAWAwHwYDVR0jBBgwFoAU U3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFAnA8vwL2pTbX/4r36iZQs/J4K0AMA4GA1Ud DwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF BQcDBDARBgNVHSAECjAIMAYGBFUdIAAwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC51c2Vy dHJ1c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHYGCCsGAQUF BwEBBGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3QuY29tL1VTRVJUcnVzdFJT QUFkZFRydXN0Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3QuY29tMA0G CSqGSIb3DQEBDAUAA4ICAQBBRHUAqznCFfXejpVtMnFojADdF9d6HBA4kMjjsb0XMZHztuOCtKF+ xswhh2GqkW5JQrM8zVlU+A2VP72Ky2nlRA1GwmIPgou74TZ/XTarHG8zdMSgaDrkVYzz1g3nIVO9 IHk96VwsacIvBF8JfqIs+8aWH2PfSUrNxP6Ys7U0sZYx4rXD6+cqFq/ZW5BUfClN/rhk2ddQXyn7 kkmka2RQb9d90nmNHdgKrwfQ49mQ2hWQNDkJJIXwKjYA6VUR/fZUFeCUisdDe/0ABLTI+jheXUV1 eoYV7lNwNBKpeHdNuO6Aacb533JlfeUHxvBz9OfYWUiXu09sMAviM11Q0DuMZ5760CdO2VnpsXP4 KxaYIhvqPqUMWqRdWyn7crItNkZeroXaecG03i3mM7dkiPaCkgocBg0EBYsbZDZ8bsG3a08LwEsL 1Ygz3SBsyECa0waq4hOf/Z85F2w2ZpXfP+w8q4ifwO90SGZZV+HR/Jh6rEaVPDRF/CEGVqR1hiuQ OZ1YL5ezMTX0ZSLwrymUE0pwi/KDaiYB15uswgeIAcA6JzPFf9pLkAFFWs1QNyN++niFhsM47qod x/PL+5jR87myx5uYdBEQkkDc+lKB1Wct6ucXqm2EmsaQ0M95QjTmy+rDWjkDYdw3Ms6mSWE3Bn7i 5ZgtwCLXgAIe5W8mybM2JzCCBhQwggT8oAMCAQICEQDGvhmWZ0DEAx0oURL6O6l+MA0GCSqGSIb3 DQEBCwUAMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYD VQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNlY3RpZ28g UlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBMB4XDTIyMDEwNzAw MDAwMFoXDTI1MDEwNjIzNTk1OVowJDEiMCAGCSqGSIb3DQEJARYTZHdtdzJAaW5mcmFkZWFkLm9y ZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALQ3GpC2bomUqk+91wLYBzDMcCj5C9m6 oZaHwvmIdXftOgTbCJXADo6G9T7BBAebw2JV38EINgKpy/ZHh7htyAkWYVoFsFPrwHounto8xTsy SSePMiPlmIdQ10BcVSXMUJ3Juu16GlWOnAMJY2oYfEzmE7uT9YgcBqKCo65pTFmOnR/VVbjJk4K2 xE34GC2nAdUQkPFuyaFisicc6HRMOYXPuF0DuwITEKnjxgNjP+qDrh0db7PAjO1D4d5ftfrsf+kd RR4gKVGSk8Tz2WwvtLAroJM4nXjNPIBJNT4w/FWWc/5qPHJy2U+eITZ5LLE5s45mX2oPFknWqxBo bQZ8a9dsZ3dSPZBvE9ZrmtFLrVrN4eo1jsXgAp1+p7bkfqd3BgBEmfsYWlBXO8rVXfvPgLs32VdV NZxb/CDWPqBsiYv0Hv3HPsz07j5b+/cVoWqyHDKzkaVbxfq/7auNVRmPB3v5SWEsH8xi4Bez2V9U KxfYCnqsjp8RaC2/khxKt0A552Eaxnz/4ly/2C7wkwTQnBmdlFYhAflWKQ03Ufiu8t3iBE3VJbc2 5oMrglj7TRZrmKq3CkbFnX0fyulB+kHimrt6PIWn7kgyl9aelIl6vtbhMA+l0nfrsORMa4kobqQ5 C5rveVgmcIad67EDa+UqEKy/GltUwlSh6xy+TrK1tzDvAgMBAAGjggHMMIIByDAfBgNVHSMEGDAW gBQJwPL8C9qU21/+K9+omULPyeCtADAdBgNVHQ4EFgQUzMeDMcimo0oz8o1R1Nver3ZVpSkwDgYD VR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwQGCCsGAQUFBwMC MEAGA1UdIAQ5MDcwNQYMKwYBBAGyMQECAQEBMCUwIwYIKwYBBQUHAgEWF2h0dHBzOi8vc2VjdGln by5jb20vQ1BTMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGln b1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1haWxDQS5jcmwwgYoGCCsGAQUFBwEB BH4wfDBVBggrBgEFBQcwAoZJaHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNBQ2xpZW50 QXV0aGVudGljYXRpb25hbmRTZWN1cmVFbWFpbENBLmNydDAjBggrBgEFBQcwAYYXaHR0cDovL29j c3Auc2VjdGlnby5jb20wHgYDVR0RBBcwFYETZHdtdzJAaW5mcmFkZWFkLm9yZzANBgkqhkiG9w0B AQsFAAOCAQEAyW6MUir5dm495teKqAQjDJwuFCi35h4xgnQvQ/fzPXmtR9t54rpmI2TfyvcKgOXp qa7BGXNFfh1JsqexVkIqZP9uWB2J+uVMD+XZEs/KYNNX2PvIlSPrzIB4Z2wyIGQpaPLlYflrrVFK v9CjT2zdqvy2maK7HKOQRt3BiJbVG5lRiwbbygldcALEV9ChWFfgSXvrWDZspnU3Gjw/rMHrGnql Htlyebp3pf3fSS9kzQ1FVtVIDrL6eqhTwJxe+pXSMMqFiN0whpBtXdyDjzBtQTaZJ7zTT/vlehc/ tDuqZwGHm/YJy883Ll+GP3NvOkgaRGWEuYWJJ6hFCkXYjyR9IzCCBhQwggT8oAMCAQICEQDGvhmW Z0DEAx0oURL6O6l+MA0GCSqGSIb3DQEBCwUAMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0 ZWQxPjA8BgNVBAMTNVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJl IEVtYWlsIENBMB4XDTIyMDEwNzAwMDAwMFoXDTI1MDEwNjIzNTk1OVowJDEiMCAGCSqGSIb3DQEJ ARYTZHdtdzJAaW5mcmFkZWFkLm9yZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALQ3 GpC2bomUqk+91wLYBzDMcCj5C9m6oZaHwvmIdXftOgTbCJXADo6G9T7BBAebw2JV38EINgKpy/ZH h7htyAkWYVoFsFPrwHounto8xTsySSePMiPlmIdQ10BcVSXMUJ3Juu16GlWOnAMJY2oYfEzmE7uT 9YgcBqKCo65pTFmOnR/VVbjJk4K2xE34GC2nAdUQkPFuyaFisicc6HRMOYXPuF0DuwITEKnjxgNj P+qDrh0db7PAjO1D4d5ftfrsf+kdRR4gKVGSk8Tz2WwvtLAroJM4nXjNPIBJNT4w/FWWc/5qPHJy 2U+eITZ5LLE5s45mX2oPFknWqxBobQZ8a9dsZ3dSPZBvE9ZrmtFLrVrN4eo1jsXgAp1+p7bkfqd3 BgBEmfsYWlBXO8rVXfvPgLs32VdVNZxb/CDWPqBsiYv0Hv3HPsz07j5b+/cVoWqyHDKzkaVbxfq/ 7auNVRmPB3v5SWEsH8xi4Bez2V9UKxfYCnqsjp8RaC2/khxKt0A552Eaxnz/4ly/2C7wkwTQnBmd lFYhAflWKQ03Ufiu8t3iBE3VJbc25oMrglj7TRZrmKq3CkbFnX0fyulB+kHimrt6PIWn7kgyl9ae lIl6vtbhMA+l0nfrsORMa4kobqQ5C5rveVgmcIad67EDa+UqEKy/GltUwlSh6xy+TrK1tzDvAgMB AAGjggHMMIIByDAfBgNVHSMEGDAWgBQJwPL8C9qU21/+K9+omULPyeCtADAdBgNVHQ4EFgQUzMeD Mcimo0oz8o1R1Nver3ZVpSkwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYw FAYIKwYBBQUHAwQGCCsGAQUFBwMCMEAGA1UdIAQ5MDcwNQYMKwYBBAGyMQECAQEBMCUwIwYIKwYB BQUHAgEWF2h0dHBzOi8vc2VjdGlnby5jb20vQ1BTMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9j cmwuc2VjdGlnby5jb20vU2VjdGlnb1JTQUNsaWVudEF1dGhlbnRpY2F0aW9uYW5kU2VjdXJlRW1h aWxDQS5jcmwwgYoGCCsGAQUFBwEBBH4wfDBVBggrBgEFBQcwAoZJaHR0cDovL2NydC5zZWN0aWdv LmNvbS9TZWN0aWdvUlNBQ2xpZW50QXV0aGVudGljYXRpb25hbmRTZWN1cmVFbWFpbENBLmNydDAj BggrBgEFBQcwAYYXaHR0cDovL29jc3Auc2VjdGlnby5jb20wHgYDVR0RBBcwFYETZHdtdzJAaW5m cmFkZWFkLm9yZzANBgkqhkiG9w0BAQsFAAOCAQEAyW6MUir5dm495teKqAQjDJwuFCi35h4xgnQv Q/fzPXmtR9t54rpmI2TfyvcKgOXpqa7BGXNFfh1JsqexVkIqZP9uWB2J+uVMD+XZEs/KYNNX2PvI lSPrzIB4Z2wyIGQpaPLlYflrrVFKv9CjT2zdqvy2maK7HKOQRt3BiJbVG5lRiwbbygldcALEV9Ch WFfgSXvrWDZspnU3Gjw/rMHrGnqlHtlyebp3pf3fSS9kzQ1FVtVIDrL6eqhTwJxe+pXSMMqFiN0w hpBtXdyDjzBtQTaZJ7zTT/vlehc/tDuqZwGHm/YJy883Ll+GP3NvOkgaRGWEuYWJJ6hFCkXYjyR9 IzGCBMcwggTDAgEBMIGsMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVz dGVyMRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMT NVNlY3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBAhEA xr4ZlmdAxAMdKFES+jupfjANBglghkgBZQMEAgEFAKCCAeswGAYJKoZIhvcNAQkDMQsGCSqGSIb3 DQEHATAcBgkqhkiG9w0BCQUxDxcNMjMwOTE0MTMxNzAwWjAvBgkqhkiG9w0BCQQxIgQgk8Picpfi DowDOMC1u8NRX4VT5DjAa0O/rRZfOrG1cugwgb0GCSsGAQQBgjcQBDGBrzCBrDCBljELMAkGA1UE BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYG A1UEChMPU2VjdGlnbyBMaW1pdGVkMT4wPAYDVQQDEzVTZWN0aWdvIFJTQSBDbGllbnQgQXV0aGVu dGljYXRpb24gYW5kIFNlY3VyZSBFbWFpbCBDQQIRAMa+GZZnQMQDHShREvo7qX4wgb8GCyqGSIb3 DQEJEAILMYGvoIGsMIGWMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVy MRAwDgYDVQQHEwdTYWxmb3JkMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxPjA8BgNVBAMTNVNl Y3RpZ28gUlNBIENsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgU2VjdXJlIEVtYWlsIENBAhEAxr4Z lmdAxAMdKFES+jupfjANBgkqhkiG9w0BAQEFAASCAgCvrJQ26Qkfa8GnfuhdS0+UjXgkO/I3tFL1 TpUn4A5ODKtSFhWp40I95XjbpFj9XWSMyBvSlVOGnFgt0LlickYccsNwnMhdr6z6vlbV2RiWAmMo EGNSWYhEZN/n+1XXu7NrH3DJWyWGGQU05D9Hx5iK1LN4tU8b/AumJHP5KnMpWL6tOW+iSHmAesfx JR8VDH+4I1ePwyCvHrRQ2imvsQmxqtJBPbObvtvs1SJi9YZh348k+MJWFeve2AGBU6L9GQ6HSfwz zdTdSHuH4dbqUqz0hRmqq5ohrN5yQC+WxC7SKcLgmXwC47PkY47XDYypiR/6Rj3iGQQEbqsrYDaY h14KqIsIhryrCv3Yq1qu2Hn/bs8+wEu1+PoHVZhA7A1cglq/lsKlqZ+4uKxJ4YZJT+ofdrEwpJKs YTa6vvVaiLx9TEKvB+A4pNGiuSSJh5H3PQ9UNJU2aaPxS7Hp6Nof4RutFxeYqQJf0+gJB31K0t8Y m1cjALZciv+vF/3HfCcQS633XKMlwsWCCsjAHzTHiwJwYc3ohQ3iGwED06C+LVWBDbi8R3nGBvOl OET7grDmtNysxq1O18qFreWDHtTjA7dA0d6sqm+mHHHCvnoyQMaPMLMOMo+MWagJ2cgT3P34PjH4 xPsnWOmJwQSnqJ6DqHjXqDC7m312D8tVbIc0U1FL2AAAAAAAAA== --=-ftvNRxP1fR6PFBmh7g0J--