From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.24; helo=mga09.intel.com; envelope-from=ruiyu.ni@intel.com; receiver=edk2-devel@lists.01.org Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 8964821959CB2 for ; Mon, 10 Sep 2018 07:59:25 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Sep 2018 07:59:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,356,1531810800"; d="scan'208";a="88737150" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga001.fm.intel.com with ESMTP; 10 Sep 2018 07:59:08 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 10 Sep 2018 07:59:07 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.143]) by shsmsx102.ccr.corp.intel.com ([169.254.2.226]) with mapi id 14.03.0319.002; Mon, 10 Sep 2018 22:59:06 +0800 From: "Ni, Ruiyu" To: "Yao, Jiewen" CC: "edk2-devel@lists.01.org" , "Gao, Liming" , "Kinney, Michael D" Thread-Topic: [PATCH] MdePkg/SynchronizationLib: fix Interlocked[De|In]crement return value Thread-Index: AQHUSPq2+vkz17G0LUexTPB0dm5OuaTpm61i Date: Mon, 10 Sep 2018 14:59:05 +0000 Message-ID: References: <20180910100600.276668-1-ruiyu.ni@intel.com>, <74D8A39837DF1E4DA445A8C0B3885C503AD4D385@shsmsx102.ccr.corp.intel.com> In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C503AD4D385@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: MIME-Version: 1.0 Subject: Re: [PATCH] MdePkg/SynchronizationLib: fix Interlocked[De|In]crement return value X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Sep 2018 14:59:25 -0000 Content-Language: zh-CN Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SSBkaWRuoa90IGZpbmQgc3VjaCBpbnN0cnVjdGlvbiBpbiBTRE0uDQoNCrei19TO0rXEIGlQaG9u ZQ0KDQo+INTaIDIwMTjE6jnUwjEwyNWjrM/Czuc3OjM3o6xZYW8sIEppZXdlbiA8amlld2VuLnlh b0BpbnRlbC5jb20+INC0tcCjug0KPiANCj4gSGkNCj4gQ2FuIHdlIHVzZSBYU1VCIGZvciBkZWNy ZW1lbnQ/DQo+IA0KPiBUaGFuayB5b3UNCj4gWWFvIEppZXdlbg0KPiANCj4+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+PiBGcm9tOiBOaSwgUnVpeXUNCj4+IFNlbnQ6IE1vbmRheSwgU2Vw dGVtYmVyIDEwLCAyMDE4IDY6MDYgUE0NCj4+IFRvOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0K Pj4gQ2M6IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IEdhbywgTGltaW5nDQo+ PiA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtp bm5leUBpbnRlbC5jb20+DQo+PiBTdWJqZWN0OiBbUEFUQ0hdIE1kZVBrZy9TeW5jaHJvbml6YXRp b25MaWI6IGZpeCBJbnRlcmxvY2tlZFtEZXxJbl1jcmVtZW50DQo+PiByZXR1cm4gdmFsdWUNCj4+ IA0KPj4gVG9kYXkncyBJbnRlcmxvY2tlZEluY3JlbWVudCgpL0ludGVybG9ja2VkRGVjcmVtZW50 KCkgZ3VhcmFudGVlcyB0bw0KPj4gcGVyZm9ybSBhdG9taWMgaW5jcmVtZW50L2RlY3JlbWVudCBi dXQgZG9lc24ndCBndWFyYW50ZWUgdGhlIHJldHVybg0KPj4gdmFsdWUgZXF1YWxzIHRvIHRoZSBu ZXcgdmFsdWUuDQo+PiANCj4+IFRoZSBwYXRjaCBmaXhlcyB0aGUgYmVoYXZpb3IgdG8gdXNlICJY QUREIiBpbnN0cnVjdGlvbiB0byBndWFyYW50ZWUNCj4+IHRoZSByZXR1cm4gdmFsdWUgZXF1YWxz IHRvIHRoZSBuZXcgdmFsdWUuDQo+PiANCj4+IENvbnRyaWJ1dGVkLXVuZGVyOiBUaWFub0NvcmUg Q29udHJpYnV0aW9uIEFncmVlbWVudCAxLjENCj4+IFNpZ25lZC1vZmYtYnk6IFJ1aXl1IE5pIDxy dWl5dS5uaUBpbnRlbC5jb20+DQo+PiBDYzogSmlld2VuIFlhbyA8amlld2VuLnlhb0BpbnRlbC5j b20+DQo+PiBDYzogTGltaW5nIEdhbyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+PiBDYzogTWlj aGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+PiAtLS0NCj4+IE1k ZVBrZy9JbmNsdWRlL0xpYnJhcnkvU3luY2hyb25pemF0aW9uTGliLmggICAgICAgIHwgIDYgKy0t DQo+PiAuLi4vQmFzZVN5bmNocm9uaXphdGlvbkxpYi5pbmYgICAgICAgICAgICAgICAgICAgICB8 IDE4ICsrKystLS0tLQ0KPj4gLi4uL0Jhc2VTeW5jaHJvbml6YXRpb25MaWJJbnRlcm5hbHMuaCAg ICAgICAgICAgICAgfCAgNiArLS0NCj4+IC4uLi9CYXNlU3luY2hyb25pemF0aW9uTGliL0lhMzIv R2NjSW5saW5lLmMgICAgICAgIHwgMTggKysrKy0tLS0tDQo+PiAuLi4vSWEzMi9JbnRlcmxvY2tl ZERlY3JlbWVudC5jICAgICAgICAgICAgICAgICAgICB8IDQyDQo+PiAtLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPj4gLi4uL0lhMzIvSW50ZXJsb2NrZWREZWNyZW1lbnQubmFzbSAgICAgICAgICAgICAg ICAgfCAxMCArKy0tLQ0KPj4gLi4uL0lhMzIvSW50ZXJsb2NrZWRJbmNyZW1lbnQuYyAgICAgICAg ICAgICAgICAgICAgfCA0Mw0KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+IC4uLi9JYTMyL0lu dGVybG9ja2VkSW5jcmVtZW50Lm5hc20gICAgICAgICAgICAgICAgIHwgIDcgKystLQ0KPj4gLi4u L0Jhc2VTeW5jaHJvbml6YXRpb25MaWIvU3luY2hyb25pemF0aW9uLmMgICAgICAgfCAgNiArLS0N Cj4+IC4uLi9CYXNlU3luY2hyb25pemF0aW9uTGliL1N5bmNocm9uaXphdGlvbkdjYy5jICAgIHwg IDYgKy0tDQo+PiAuLi4vQmFzZVN5bmNocm9uaXphdGlvbkxpYi9TeW5jaHJvbml6YXRpb25Nc2Mu YyAgICB8ICA2ICstLQ0KPj4gLi4uL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9YNjQv R2NjSW5saW5lLmMgfCAxOSArKysrKy0tLS0NCj4+IC4uLi9YNjQvSW50ZXJsb2NrZWREZWNyZW1l bnQuYyAgICAgICAgICAgICAgICAgICAgIHwgNDYNCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cj4+IC4uLi9YNjQvSW50ZXJsb2NrZWREZWNyZW1lbnQubmFzbSAgICAgICAgICAgICAgICAgIHwg IDggKystLQ0KPj4gLi4uL1g2NC9JbnRlcmxvY2tlZEluY3JlbWVudC5jICAgICAgICAgICAgICAg ICAgICAgfCA0Ng0KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4gLi4uL1g2NC9JbnRlcmxv Y2tlZEluY3JlbWVudC5uYXNtICAgICAgICAgICAgICAgICAgfCAgNSArKy0NCj4+IDE2IGZpbGVz IGNoYW5nZWQsIDUyIGluc2VydGlvbnMoKyksIDI0MCBkZWxldGlvbnMoLSkNCj4+IGRlbGV0ZSBt b2RlIDEwMDY0NA0KPj4gTWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9JYTMy L0ludGVybG9ja2VkRGVjcmVtZW50LmMNCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NA0KPj4gTWRlUGtn L0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9JYTMyL0ludGVybG9ja2VkSW5jcmVtZW50 LmMNCj4+IGRlbGV0ZSBtb2RlIDEwMDY0NA0KPj4gTWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9u aXphdGlvbkxpYi9YNjQvSW50ZXJsb2NrZWREZWNyZW1lbnQuYw0KPj4gZGVsZXRlIG1vZGUgMTAw NjQ0DQo+PiBNZGVQa2cvTGlicmFyeS9CYXNlU3luY2hyb25pemF0aW9uTGliL1g2NC9JbnRlcmxv Y2tlZEluY3JlbWVudC5jDQo+PiANCj4+IGRpZmYgLS1naXQgYS9NZGVQa2cvSW5jbHVkZS9MaWJy YXJ5L1N5bmNocm9uaXphdGlvbkxpYi5oDQo+PiBiL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvU3lu Y2hyb25pemF0aW9uTGliLmgNCj4+IGluZGV4IGRhNjlmNmZmNWUuLmNlM2JjZTA0ZjUgMTAwNjQ0 DQo+PiAtLS0gYS9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1N5bmNocm9uaXphdGlvbkxpYi5oDQo+ PiArKysgYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1N5bmNocm9uaXphdGlvbkxpYi5oDQo+PiBA QCAtMTQ0LDggKzE0NCw3IEBAIFJlbGVhc2VTcGluTG9jayAoDQo+PiANCj4+ICAgUGVyZm9ybXMg YW4gYXRvbWljIGluY3JlbWVudCBvZiB0aGUgMzItYml0IHVuc2lnbmVkIGludGVnZXIgc3BlY2lm aWVkIGJ5DQo+PiAgIFZhbHVlIGFuZCByZXR1cm5zIHRoZSBpbmNyZW1lbnRlZCB2YWx1ZS4gVGhl IGluY3JlbWVudCBvcGVyYXRpb24gbXVzdA0KPj4gYmUNCj4+IC0gIHBlcmZvcm1lZCB1c2luZyBN UCBzYWZlIG1lY2hhbmlzbXMuIFRoZSBzdGF0ZSBvZiB0aGUgcmV0dXJuIHZhbHVlIGlzDQo+PiBu b3QNCj4+IC0gIGd1YXJhbnRlZWQgdG8gYmUgTVAgc2FmZS4NCj4+ICsgIHBlcmZvcm1lZCB1c2lu ZyBNUCBzYWZlIG1lY2hhbmlzbXMuDQo+PiANCj4+ICAgSWYgVmFsdWUgaXMgTlVMTCwgdGhlbiBB U1NFUlQoKS4NCj4+IA0KPj4gQEAgLTE2Niw4ICsxNjUsNyBAQCBJbnRlcmxvY2tlZEluY3JlbWVu dCAoDQo+PiANCj4+ICAgUGVyZm9ybXMgYW4gYXRvbWljIGRlY3JlbWVudCBvZiB0aGUgMzItYml0 IHVuc2lnbmVkIGludGVnZXIgc3BlY2lmaWVkDQo+PiBieQ0KPj4gICBWYWx1ZSBhbmQgcmV0dXJu cyB0aGUgZGVjcmVtZW50ZWQgdmFsdWUuIFRoZSBkZWNyZW1lbnQgb3BlcmF0aW9uIG11c3QNCj4+ IGJlDQo+PiAtICBwZXJmb3JtZWQgdXNpbmcgTVAgc2FmZSBtZWNoYW5pc21zLiBUaGUgc3RhdGUg b2YgdGhlIHJldHVybiB2YWx1ZSBpcw0KPj4gbm90DQo+PiAtICBndWFyYW50ZWVkIHRvIGJlIE1Q IHNhZmUuDQo+PiArICBwZXJmb3JtZWQgdXNpbmcgTVAgc2FmZSBtZWNoYW5pc21zLg0KPj4gDQo+ PiAgIElmIFZhbHVlIGlzIE5VTEwsIHRoZW4gQVNTRVJUKCkuDQo+PiANCj4+IGRpZmYgLS1naXQN Cj4+IGEvTWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9CYXNlU3luY2hyb25p emF0aW9uTGliLmluZg0KPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlU3luY2hyb25pemF0aW9uTGli L0Jhc2VTeW5jaHJvbml6YXRpb25MaWIuaW5mDQo+PiBpbmRleCAwYmUxZDQzMzFmLi5iOTcxY2Qx MzhkIDEwMDc1NQ0KPj4gLS0tIGEvTWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxp Yi9CYXNlU3luY2hyb25pemF0aW9uTGliLmluZg0KPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFz ZVN5bmNocm9uaXphdGlvbkxpYi9CYXNlU3luY2hyb25pemF0aW9uTGliLmluZg0KPj4gQEAgLTM0 LDkgKzM0LDkgQEAgW1NvdXJjZXMuSUEzMl0NCj4+ICAgSWEzMi9JbnRlcmxvY2tlZENvbXBhcmVF eGNoYW5nZTY0LmMgfCBNU0ZUDQo+PiAgIElhMzIvSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2Uz Mi5jIHwgTVNGVA0KPj4gICBJYTMyL0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlMTYuYyB8IE1T RlQNCj4+IC0gIElhMzIvSW50ZXJsb2NrZWREZWNyZW1lbnQuYyB8IE1TRlQNCj4+IC0gIElhMzIv SW50ZXJsb2NrZWRJbmNyZW1lbnQuYyB8IE1TRlQNCj4+IC0gIFN5bmNocm9uaXphdGlvbk1zYy5j ICB8IE1TRlQNCj4+ICsgIElhMzIvSW50ZXJsb2NrZWREZWNyZW1lbnQubmFzbSB8IE1TRlQNCj4+ ICsgIElhMzIvSW50ZXJsb2NrZWRJbmNyZW1lbnQubmFzbSB8IE1TRlQNCj4+ICsgIFN5bmNocm9u aXphdGlvbk1zYy5jIHwgTVNGVA0KPj4gDQo+PiAgIElhMzIvSW50ZXJsb2NrZWRDb21wYXJlRXhj aGFuZ2U2NC5uYXNtfCBJTlRFTA0KPj4gICBJYTMyL0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdl MzIubmFzbXwgSU5URUwNCj4+IEBAIC01NCwxNyArNTQsMTUgQEAgW1NvdXJjZXMuWDY0XQ0KPj4g ICBYNjQvSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2U2NC5jIHwgTVNGVA0KPj4gICBYNjQvSW50 ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UzMi5jIHwgTVNGVA0KPj4gICBYNjQvSW50ZXJsb2NrZWRD b21wYXJlRXhjaGFuZ2UxNi5jIHwgTVNGVA0KPj4gKyAgWDY0L0ludGVybG9ja2VkRGVjcmVtZW50 Lm5hc20gfCBNU0ZUDQo+PiArICBYNjQvSW50ZXJsb2NrZWRJbmNyZW1lbnQubmFzbSB8IE1TRlQN Cj4+ICsgIFN5bmNocm9uaXphdGlvbk1zYy5jIHwgTVNGVA0KPj4gDQo+PiAgIFg2NC9JbnRlcmxv Y2tlZENvbXBhcmVFeGNoYW5nZTY0Lm5hc218IElOVEVMDQo+PiAgIFg2NC9JbnRlcmxvY2tlZENv bXBhcmVFeGNoYW5nZTMyLm5hc218IElOVEVMDQo+PiAgIFg2NC9JbnRlcmxvY2tlZENvbXBhcmVF eGNoYW5nZTE2Lm5hc218IElOVEVMDQo+PiAtDQo+PiAtICBYNjQvSW50ZXJsb2NrZWREZWNyZW1l bnQuYyB8IE1TRlQNCj4+IC0gIFg2NC9JbnRlcmxvY2tlZEluY3JlbWVudC5jIHwgTVNGVA0KPj4g LSAgU3luY2hyb25pemF0aW9uTXNjLmMgfCBNU0ZUDQo+PiAtDQo+PiAtICBYNjQvSW50ZXJsb2Nr ZWREZWNyZW1lbnQubmFzbXwgSU5URUwNCj4+IC0gIFg2NC9JbnRlcmxvY2tlZEluY3JlbWVudC5u YXNtfCBJTlRFTA0KPj4gKyAgWDY0L0ludGVybG9ja2VkRGVjcmVtZW50Lm5hc20gfCBJTlRFTA0K Pj4gKyAgWDY0L0ludGVybG9ja2VkSW5jcmVtZW50Lm5hc20gfCBJTlRFTA0KPj4gICBTeW5jaHJv bml6YXRpb24uYyB8IElOVEVMDQo+PiANCj4+ICAgSWEzMi9JbnRlcm5hbEdldFNwaW5Mb2NrUHJv cGVydGllcy5jIHwgR0NDDQo+PiBkaWZmIC0tZ2l0DQo+PiBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VT eW5jaHJvbml6YXRpb25MaWIvQmFzZVN5bmNocm9uaXphdGlvbkxpYkludGVybmFscy4NCj4+IGgN Cj4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9CYXNlU3luY2hyb25p emF0aW9uTGliSW50ZXJuYWxzLg0KPj4gaA0KPj4gaW5kZXggMzdlZGQ3YzE4OC4uOGMzNjNhODU4 NSAxMDA2NDQNCj4+IC0tLQ0KPj4gYS9NZGVQa2cvTGlicmFyeS9CYXNlU3luY2hyb25pemF0aW9u TGliL0Jhc2VTeW5jaHJvbml6YXRpb25MaWJJbnRlcm5hbHMuDQo+PiBoDQo+PiArKysNCj4+IGIv TWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9CYXNlU3luY2hyb25pemF0aW9u TGliSW50ZXJuYWxzLg0KPj4gaA0KPj4gQEAgLTI3LDggKzI3LDcgQEANCj4+IA0KPj4gICBQZXJm b3JtcyBhbiBhdG9taWMgaW5jcmVtZW50IG9mIHRoZSAzMi1iaXQgdW5zaWduZWQgaW50ZWdlciBz cGVjaWZpZWQgYnkNCj4+ICAgVmFsdWUgYW5kIHJldHVybnMgdGhlIGluY3JlbWVudGVkIHZhbHVl LiBUaGUgaW5jcmVtZW50IG9wZXJhdGlvbiBtdXN0DQo+PiBiZQ0KPj4gLSAgcGVyZm9ybWVkIHVz aW5nIE1QIHNhZmUgbWVjaGFuaXNtcy4gVGhlIHN0YXRlIG9mIHRoZSByZXR1cm4gdmFsdWUgaXMN Cj4+IG5vdA0KPj4gLSAgZ3VhcmFudGVlZCB0byBiZSBNUCBzYWZlLg0KPj4gKyAgcGVyZm9ybWVk IHVzaW5nIE1QIHNhZmUgbWVjaGFuaXNtcy4NCj4+IA0KPj4gICBAcGFyYW0gIFZhbHVlIEEgcG9p bnRlciB0byB0aGUgMzItYml0IHZhbHVlIHRvIGluY3JlbWVudC4NCj4+IA0KPj4gQEAgLTQ3LDgg KzQ2LDcgQEAgSW50ZXJuYWxTeW5jSW5jcmVtZW50ICgNCj4+IA0KPj4gICBQZXJmb3JtcyBhbiBh dG9taWMgZGVjcmVtZW50IG9mIHRoZSAzMi1iaXQgdW5zaWduZWQgaW50ZWdlciBzcGVjaWZpZWQN Cj4+IGJ5DQo+PiAgIFZhbHVlIGFuZCByZXR1cm5zIHRoZSBkZWNyZW1lbnQgdmFsdWUuIFRoZSBk ZWNyZW1lbnQgb3BlcmF0aW9uIG11c3QNCj4+IGJlDQo+PiAtICBwZXJmb3JtZWQgdXNpbmcgTVAg c2FmZSBtZWNoYW5pc21zLiBUaGUgc3RhdGUgb2YgdGhlIHJldHVybiB2YWx1ZSBpcw0KPj4gbm90 DQo+PiAtICBndWFyYW50ZWVkIHRvIGJlIE1QIHNhZmUuDQo+PiArICBwZXJmb3JtZWQgdXNpbmcg TVAgc2FmZSBtZWNoYW5pc21zLg0KPj4gDQo+PiAgIEBwYXJhbSAgVmFsdWUgQSBwb2ludGVyIHRv IHRoZSAzMi1iaXQgdmFsdWUgdG8gZGVjcmVtZW50Lg0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEvTWRl UGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9JYTMyL0djY0lubGluZS5jDQo+PiBi L01kZVBrZy9MaWJyYXJ5L0Jhc2VTeW5jaHJvbml6YXRpb25MaWIvSWEzMi9HY2NJbmxpbmUuYw0K Pj4gaW5kZXggNGFiMjkzZjI0My4uZDgyZTAyMDVmNSAxMDA2NDQNCj4+IC0tLSBhL01kZVBrZy9M aWJyYXJ5L0Jhc2VTeW5jaHJvbml6YXRpb25MaWIvSWEzMi9HY2NJbmxpbmUuYw0KPj4gKysrIGIv TWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9JYTMyL0djY0lubGluZS5jDQo+ PiBAQCAtMjAsOCArMjAsNyBAQA0KPj4gDQo+PiAgIFBlcmZvcm1zIGFuIGF0b21pYyBpbmNyZW1l bnQgb2YgdGhlIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHNwZWNpZmllZCBieQ0KPj4gICBWYWx1 ZSBhbmQgcmV0dXJucyB0aGUgaW5jcmVtZW50ZWQgdmFsdWUuIFRoZSBpbmNyZW1lbnQgb3BlcmF0 aW9uIG11c3QNCj4+IGJlDQo+PiAtICBwZXJmb3JtZWQgdXNpbmcgTVAgc2FmZSBtZWNoYW5pc21z LiBUaGUgc3RhdGUgb2YgdGhlIHJldHVybiB2YWx1ZSBpcw0KPj4gbm90DQo+PiAtICBndWFyYW50 ZWVkIHRvIGJlIE1QIHNhZmUuDQo+PiArICBwZXJmb3JtZWQgdXNpbmcgTVAgc2FmZSBtZWNoYW5p c21zLg0KPj4gDQo+PiAgIEBwYXJhbSAgVmFsdWUgQSBwb2ludGVyIHRvIHRoZSAzMi1iaXQgdmFs dWUgdG8gaW5jcmVtZW50Lg0KPj4gDQo+PiBAQCAtMzcsOSArMzYsMTAgQEAgSW50ZXJuYWxTeW5j SW5jcmVtZW50ICgNCj4+ICAgVUlOVDMyICBSZXN1bHQ7DQo+PiANCj4+ICAgX19hc21fXyBfX3Zv bGF0aWxlX18gKA0KPj4gKyAgICAibW92bCAgICAkMSwgJSVlYXggIFxuXHQiDQo+PiAgICAgImxv Y2sgICAgICAgICAgICAgICBcblx0Ig0KPj4gLSAgICAiaW5jbCAgICAlMiAgICAgICAgIFxuXHQi DQo+PiAtICAgICJtb3ZsICAgICUyLCAlJWVheCAgICAgICINCj4+ICsgICAgInhhZGQgICAgJSVl YXgsICUyICBcblx0Ig0KPj4gKyAgICAiaW5jICAgICAlJWVheCAgICAgICAgICAiDQo+PiAgICAg OiAiPWEiIChSZXN1bHQpLCAgICAgICAgICAvLyAlMA0KPj4gICAgICAgIj1tIiAoKlZhbHVlKSAg ICAgICAgICAgLy8gJTENCj4+ICAgICA6ICJtIiAgKCpWYWx1ZSkgICAgICAgICAgIC8vICUyDQo+ PiBAQCAtNTcsOCArNTcsNyBAQCBJbnRlcm5hbFN5bmNJbmNyZW1lbnQgKA0KPj4gDQo+PiAgIFBl cmZvcm1zIGFuIGF0b21pYyBkZWNyZW1lbnQgb2YgdGhlIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2Vy IHNwZWNpZmllZA0KPj4gYnkNCj4+ICAgVmFsdWUgYW5kIHJldHVybnMgdGhlIGRlY3JlbWVudGVk IHZhbHVlLiBUaGUgZGVjcmVtZW50IG9wZXJhdGlvbiBtdXN0DQo+PiBiZQ0KPj4gLSAgcGVyZm9y bWVkIHVzaW5nIE1QIHNhZmUgbWVjaGFuaXNtcy4gVGhlIHN0YXRlIG9mIHRoZSByZXR1cm4gdmFs dWUgaXMNCj4+IG5vdA0KPj4gLSAgZ3VhcmFudGVlZCB0byBiZSBNUCBzYWZlLg0KPj4gKyAgcGVy Zm9ybWVkIHVzaW5nIE1QIHNhZmUgbWVjaGFuaXNtcy4NCj4+IA0KPj4gICBAcGFyYW0gIFZhbHVl IEEgcG9pbnRlciB0byB0aGUgMzItYml0IHZhbHVlIHRvIGRlY3JlbWVudC4NCj4+IA0KPj4gQEAg LTc0LDkgKzczLDEwIEBAIEludGVybmFsU3luY0RlY3JlbWVudCAoDQo+PiAgICBVSU5UMzIgIFJl c3VsdDsNCj4+IA0KPj4gICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoDQo+PiAtICAgICJsb2NrICAg ICAgICAgICAgICAgXG5cdCINCj4+IC0gICAgImRlY2wgICAgJTIgICAgICAgICBcblx0Ig0KPj4g LSAgICAibW92bCAgICAlMiwgJSVlYXggICAgICAiDQo+PiArICAgICJtb3ZsICAgICQtMSwgJSVl YXggIFxuXHQiDQo+PiArICAgICJsb2NrICAgICAgICAgICAgICAgIFxuXHQiDQo+PiArICAgICJ4 YWRkICAgICUlZWF4LCAlMiAgIFxuXHQiDQo+PiArICAgICJkZWMgICAgICUlZWF4ICAgICAgICAg ICAgICAgICAgIg0KPj4gICAgIDogIj1hIiAoUmVzdWx0KSwgICAgICAgICAgLy8gJTANCj4+ICAg ICAgICI9bSIgKCpWYWx1ZSkgICAgICAgICAgIC8vICUxDQo+PiAgICAgOiAibSIgICgqVmFsdWUp ICAgICAgICAgICAvLyAlMg0KPj4gZGlmZiAtLWdpdA0KPj4gYS9NZGVQa2cvTGlicmFyeS9CYXNl U3luY2hyb25pemF0aW9uTGliL0lhMzIvSW50ZXJsb2NrZWREZWNyZW1lbnQuYw0KPj4gYi9NZGVQ a2cvTGlicmFyeS9CYXNlU3luY2hyb25pemF0aW9uTGliL0lhMzIvSW50ZXJsb2NrZWREZWNyZW1l bnQuYw0KPj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQo+PiBpbmRleCAzNTRhMGU3YWIxLi4w MDAwMDAwMDAwDQo+PiAtLS0gYS9NZGVQa2cvTGlicmFyeS9CYXNlU3luY2hyb25pemF0aW9uTGli L0lhMzIvSW50ZXJsb2NrZWREZWNyZW1lbnQuYw0KPj4gKysrIC9kZXYvbnVsbA0KPj4gQEAgLTEs NDIgKzAsMCBAQA0KPj4gLS8qKiBAZmlsZQ0KPj4gLSAgSW50ZXJsb2NrZWREZWNyZW1lbnQgZnVu Y3Rpb24NCj4+IC0NCj4+IC0gIENvcHlyaWdodCAoYykgMjAwNiAtIDIwMTYsIEludGVsIENvcnBv cmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4+IC0gIFRoaXMgcHJvZ3JhbSBhbmQg dGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4+IC0gIGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBh dmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQ0KPj4gQlNEIExp Y2Vuc2UNCj4+IC0gIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1 bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4+IGZvdW5kIGF0DQo+PiAtICBodHRwOi8v b3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwLg0KPj4gLQ0KPj4gLSAgVEhF IFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJ UyINCj4+IEJBU0lTLA0KPj4gLSAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9O UyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+PiBFWFBSRVNTIE9SIElNUExJRUQuDQo+PiAtDQo+PiAt KiovDQo+PiAtDQo+PiAtDQo+PiAtDQo+PiAtDQo+PiAtLyoqDQo+PiAtICBQZXJmb3JtcyBhbiBh dG9taWMgZGVjcmVtZW50IG9mIGFuIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyLg0KPj4gLQ0KPj4g LSAgUGVyZm9ybXMgYW4gYXRvbWljIGRlY3JlbWVudCBvZiB0aGUgMzItYml0IHVuc2lnbmVkIGlu dGVnZXIgc3BlY2lmaWVkIGJ5DQo+PiAtICBWYWx1ZSBhbmQgcmV0dXJucyB0aGUgZGVjcmVtZW50 IHZhbHVlLiBUaGUgZGVjcmVtZW50IG9wZXJhdGlvbiBtdXN0DQo+PiBiZQ0KPj4gLSAgcGVyZm9y bWVkIHVzaW5nIE1QIHNhZmUgbWVjaGFuaXNtcy4gVGhlIHN0YXRlIG9mIHRoZSByZXR1cm4gdmFs dWUgaXMNCj4+IG5vdA0KPj4gLSAgZ3VhcmFudGVlZCB0byBiZSBNUCBzYWZlLg0KPj4gLQ0KPj4g LSAgQHBhcmFtICBWYWx1ZSBBIHBvaW50ZXIgdG8gdGhlIDMyLWJpdCB2YWx1ZSB0byBkZWNyZW1l bnQuDQo+PiAtDQo+PiAtICBAcmV0dXJuIFRoZSBkZWNyZW1lbnQgdmFsdWUuDQo+PiAtDQo+PiAt KiovDQo+PiAtVUlOVDMyDQo+PiAtRUZJQVBJDQo+PiAtSW50ZXJuYWxTeW5jRGVjcmVtZW50ICgN Cj4+IC0gIElOICAgICAgdm9sYXRpbGUgVUlOVDMyICAgICAgICAgICAqVmFsdWUNCj4+IC0gICkN Cj4+IC17DQo+PiAtICBfYXNtIHsNCj4+IC0gICAgbW92ICAgICBlYXgsIFZhbHVlDQo+PiAtICAg IGxvY2sgICAgZGVjICAgICBkd29yZCBwdHIgW2VheF0NCj4+IC0gICAgbW92ICAgICBlYXgsIFtl YXhdDQo+PiAtICB9DQo+PiAtfQ0KPj4gZGlmZiAtLWdpdA0KPj4gYS9NZGVQa2cvTGlicmFyeS9C YXNlU3luY2hyb25pemF0aW9uTGliL0lhMzIvSW50ZXJsb2NrZWREZWNyZW1lbnQubmFzDQo+PiBt DQo+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VTeW5jaHJvbml6YXRpb25MaWIvSWEzMi9JbnRlcmxv Y2tlZERlY3JlbWVudC5uYXMNCj4+IG0NCj4+IGluZGV4IDRjNDYwNDExODYuLmRkNWE4ZGUzZWQg MTAwNjQ0DQo+PiAtLS0NCj4+IGEvTWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxp Yi9JYTMyL0ludGVybG9ja2VkRGVjcmVtZW50Lm5hcw0KPj4gbQ0KPj4gKysrDQo+PiBiL01kZVBr Zy9MaWJyYXJ5L0Jhc2VTeW5jaHJvbml6YXRpb25MaWIvSWEzMi9JbnRlcmxvY2tlZERlY3JlbWVu dC5uYXMNCj4+IG0NCj4+IEBAIC0xLDYgKzEsNiBAQA0KPj4gOy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPj4gOw0KPj4gLTsgQ29weXJpZ2h0IChjKSAyMDA2IC0gMjAxNiwgSW50ZWwgQ29ycG9yYXRp b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPj4gKzsgQ29weXJpZ2h0IChjKSAyMDA2IC0g MjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPj4gOyBU aGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+PiA7IGFyZSBsaWNl bnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9m IHRoZQ0KPj4gQlNEIExpY2Vuc2UNCj4+IDsgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmli dXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPj4gZm91bmQgYXQN Cj4+IEBAIC0zMiw4ICszMiw4IEBADQo+PiA7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+PiBnbG9i YWwgQVNNX1BGWChJbnRlcm5hbFN5bmNEZWNyZW1lbnQpDQo+PiBBU01fUEZYKEludGVybmFsU3lu Y0RlY3JlbWVudCk6DQo+PiAtICAgIG1vdiAgICAgZWF4LCBbZXNwICsgNF0NCj4+IC0gICAgbG9j ayAgICBkZWMgICAgIGR3b3JkIFtlYXhdDQo+PiAtICAgIG1vdiAgICAgZWF4LCBbZWF4XQ0KPj4g KyAgICBtb3YgICAgICAgZWN4LCBbZXNwICsgNF0NCj4+ICsgICAgbW92ICAgICAgIGVheCwgMEZG RkZGRkZGaA0KPj4gKyAgICBsb2NrIHhhZGQgZHdvcmQgW2VjeF0sIGVheA0KPj4gKyAgICBkZWMg ICAgICAgZWF4DQo+PiAgICAgcmV0DQo+PiAtDQo+PiBkaWZmIC0tZ2l0DQo+PiBhL01kZVBrZy9M aWJyYXJ5L0Jhc2VTeW5jaHJvbml6YXRpb25MaWIvSWEzMi9JbnRlcmxvY2tlZEluY3JlbWVudC5j DQo+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VTeW5jaHJvbml6YXRpb25MaWIvSWEzMi9JbnRlcmxv Y2tlZEluY3JlbWVudC5jDQo+PiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IGM2 MWE1NTAxMTkuLjAwMDAwMDAwMDANCj4+IC0tLSBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VTeW5jaHJv bml6YXRpb25MaWIvSWEzMi9JbnRlcmxvY2tlZEluY3JlbWVudC5jDQo+PiArKysgL2Rldi9udWxs DQo+PiBAQCAtMSw0MyArMCwwIEBADQo+PiAtLyoqIEBmaWxlDQo+PiAtICBJbnRlckxvY2tlZElu Y3JlbWVudCBmdW5jdGlvbg0KPj4gLQ0KPj4gLSAgQ29weXJpZ2h0IChjKSAyMDA2IC0gMjAxNiwg SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPj4gLSAgVGhpcyBw cm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KPj4gLSAgYXJlIGxpY2Vuc2Vk IGFuZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhl DQo+PiBCU0QgTGljZW5zZQ0KPj4gLSAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRp b24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPj4gZm91bmQgYXQNCj4+ IC0gIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAuDQo+PiAt DQo+PiAtICBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0Ug T04gQU4gIkFTIElTIg0KPj4gQkFTSVMsDQo+PiAtICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQ UkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4+IEVYUFJFU1MgT1IgSU1QTElFRC4N Cj4+IC0NCj4+IC0qKi8NCj4+IC0NCj4+IC0NCj4+IC0NCj4+IC0NCj4+IC0vKioNCj4+IC0gIFBl cmZvcm1zIGFuIGF0b21pYyBpbmNyZW1lbnQgb2YgYW4gMzItYml0IHVuc2lnbmVkIGludGVnZXIu DQo+PiAtDQo+PiAtICBQZXJmb3JtcyBhbiBhdG9taWMgaW5jcmVtZW50IG9mIHRoZSAzMi1iaXQg dW5zaWduZWQgaW50ZWdlciBzcGVjaWZpZWQgYnkNCj4+IC0gIFZhbHVlIGFuZCByZXR1cm5zIHRo ZSBpbmNyZW1lbnRlZCB2YWx1ZS4gVGhlIGluY3JlbWVudCBvcGVyYXRpb24gbXVzdA0KPj4gYmUN Cj4+IC0gIHBlcmZvcm1lZCB1c2luZyBNUCBzYWZlIG1lY2hhbmlzbXMuIFRoZSBzdGF0ZSBvZiB0 aGUgcmV0dXJuIHZhbHVlIGlzDQo+PiBub3QNCj4+IC0gIGd1YXJhbnRlZWQgdG8gYmUgTVAgc2Fm ZS4NCj4+IC0NCj4+IC0gIEBwYXJhbSAgVmFsdWUgQSBwb2ludGVyIHRvIHRoZSAzMi1iaXQgdmFs dWUgdG8gaW5jcmVtZW50Lg0KPj4gLQ0KPj4gLSAgQHJldHVybiBUaGUgaW5jcmVtZW50ZWQgdmFs dWUuDQo+PiAtDQo+PiAtKiovDQo+PiAtVUlOVDMyDQo+PiAtRUZJQVBJDQo+PiAtSW50ZXJuYWxT eW5jSW5jcmVtZW50ICgNCj4+IC0gIElOICAgICAgdm9sYXRpbGUgVUlOVDMyICAgICAgICAgICAq VmFsdWUNCj4+IC0gICkNCj4+IC17DQo+PiAtICBfYXNtIHsNCj4+IC0gICAgbW92ICAgICBlYXgs IFZhbHVlDQo+PiAtICAgIGxvY2sgICAgaW5jICAgICBkd29yZCBwdHIgW2VheF0NCj4+IC0gICAg bW92ICAgICBlYXgsIFtlYXhdDQo+PiAtICB9DQo+PiAtfQ0KPj4gLQ0KPj4gZGlmZiAtLWdpdA0K Pj4gYS9NZGVQa2cvTGlicmFyeS9CYXNlU3luY2hyb25pemF0aW9uTGliL0lhMzIvSW50ZXJsb2Nr ZWRJbmNyZW1lbnQubmFzbQ0KPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlU3luY2hyb25pemF0aW9u TGliL0lhMzIvSW50ZXJsb2NrZWRJbmNyZW1lbnQubmFzbQ0KPj4gaW5kZXggMzkwMmM3MzI3NS4u MDY3N2U0YmY3OCAxMDA2NDQNCj4+IC0tLQ0KPj4gYS9NZGVQa2cvTGlicmFyeS9CYXNlU3luY2hy b25pemF0aW9uTGliL0lhMzIvSW50ZXJsb2NrZWRJbmNyZW1lbnQubmFzbQ0KPj4gKysrDQo+PiBi L01kZVBrZy9MaWJyYXJ5L0Jhc2VTeW5jaHJvbml6YXRpb25MaWIvSWEzMi9JbnRlcmxvY2tlZElu Y3JlbWVudC5uYXNtDQo+PiBAQCAtMzIsOCArMzIsOSBAQA0KPj4gOy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPj4gZ2xvYmFsIEFTTV9QRlgoSW50ZXJuYWxTeW5jSW5jcmVtZW50KQ0KPj4gQVNNX1BG WChJbnRlcm5hbFN5bmNJbmNyZW1lbnQpOg0KPj4gLSAgICBtb3YgICAgIGVheCwgW2VzcCArIDRd DQo+PiAtICAgIGxvY2sgICAgaW5jICAgICBkd29yZCBbZWF4XQ0KPj4gLSAgICBtb3YgICAgIGVh eCwgW2VheF0NCj4+ICsgICAgbW92ICAgICAgIGVjeCwgW2VzcCArIDRdDQo+PiArICAgIG1vdiAg ICAgICBlYXgsIDENCj4+ICsgICAgbG9jayB4YWRkIGR3b3JkIFtlY3hdLCBlYXgNCj4+ICsgICAg aW5jICAgICAgIGVheA0KPj4gICAgIHJldA0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xp YnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9TeW5jaHJvbml6YXRpb24uYw0KPj4gYi9NZGVQ a2cvTGlicmFyeS9CYXNlU3luY2hyb25pemF0aW9uTGliL1N5bmNocm9uaXphdGlvbi5jDQo+PiBp bmRleCA3NmM1YTEyNzVjLi4wYWI1OWNhNzAyIDEwMDY0NA0KPj4gLS0tIGEvTWRlUGtnL0xpYnJh cnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9TeW5jaHJvbml6YXRpb24uYw0KPj4gKysrIGIvTWRl UGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9TeW5jaHJvbml6YXRpb24uYw0KPj4g QEAgLTIzMSw4ICsyMzEsNyBAQCBSZWxlYXNlU3BpbkxvY2sgKA0KPj4gDQo+PiAgIFBlcmZvcm1z IGFuIGF0b21pYyBpbmNyZW1lbnQgb2YgdGhlIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHNwZWNp ZmllZCBieQ0KPj4gICBWYWx1ZSBhbmQgcmV0dXJucyB0aGUgaW5jcmVtZW50ZWQgdmFsdWUuIFRo ZSBpbmNyZW1lbnQgb3BlcmF0aW9uIG11c3QNCj4+IGJlDQo+PiAtICBwZXJmb3JtZWQgdXNpbmcg TVAgc2FmZSBtZWNoYW5pc21zLiBUaGUgc3RhdGUgb2YgdGhlIHJldHVybiB2YWx1ZSBpcw0KPj4g bm90DQo+PiAtICBndWFyYW50ZWVkIHRvIGJlIE1QIHNhZmUuDQo+PiArICBwZXJmb3JtZWQgdXNp bmcgTVAgc2FmZSBtZWNoYW5pc21zLg0KPj4gDQo+PiAgIElmIFZhbHVlIGlzIE5VTEwsIHRoZW4g QVNTRVJUKCkuDQo+PiANCj4+IEBAIC0yNTYsOCArMjU1LDcgQEAgSW50ZXJsb2NrZWRJbmNyZW1l bnQgKA0KPj4gDQo+PiAgIFBlcmZvcm1zIGFuIGF0b21pYyBkZWNyZW1lbnQgb2YgdGhlIDMyLWJp dCB1bnNpZ25lZCBpbnRlZ2VyIHNwZWNpZmllZA0KPj4gYnkNCj4+ICAgVmFsdWUgYW5kIHJldHVy bnMgdGhlIGRlY3JlbWVudGVkIHZhbHVlLiBUaGUgZGVjcmVtZW50IG9wZXJhdGlvbiBtdXN0DQo+ PiBiZQ0KPj4gLSAgcGVyZm9ybWVkIHVzaW5nIE1QIHNhZmUgbWVjaGFuaXNtcy4gVGhlIHN0YXRl IG9mIHRoZSByZXR1cm4gdmFsdWUgaXMNCj4+IG5vdA0KPj4gLSAgZ3VhcmFudGVlZCB0byBiZSBN UCBzYWZlLg0KPj4gKyAgcGVyZm9ybWVkIHVzaW5nIE1QIHNhZmUgbWVjaGFuaXNtcy4NCj4+IA0K Pj4gICBJZiBWYWx1ZSBpcyBOVUxMLCB0aGVuIEFTU0VSVCgpLg0KPj4gDQo+PiBkaWZmIC0tZ2l0 IGEvTWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9TeW5jaHJvbml6YXRpb25H Y2MuYw0KPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlU3luY2hyb25pemF0aW9uTGliL1N5bmNocm9u aXphdGlvbkdjYy5jDQo+PiBpbmRleCA1YWM1NDhiMTlmLi4xNzc3MzlkM2RhIDEwMDY0NA0KPj4g LS0tIGEvTWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9TeW5jaHJvbml6YXRp b25HY2MuYw0KPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9T eW5jaHJvbml6YXRpb25HY2MuYw0KPj4gQEAgLTI0Nyw4ICsyNDcsNyBAQCBSZWxlYXNlU3Bpbkxv Y2sgKA0KPj4gDQo+PiAgIFBlcmZvcm1zIGFuIGF0b21pYyBpbmNyZW1lbnQgb2YgdGhlIDMyLWJp dCB1bnNpZ25lZCBpbnRlZ2VyIHNwZWNpZmllZCBieQ0KPj4gICBWYWx1ZSBhbmQgcmV0dXJucyB0 aGUgaW5jcmVtZW50ZWQgdmFsdWUuIFRoZSBpbmNyZW1lbnQgb3BlcmF0aW9uIG11c3QNCj4+IGJl DQo+PiAtICBwZXJmb3JtZWQgdXNpbmcgTVAgc2FmZSBtZWNoYW5pc21zLiBUaGUgc3RhdGUgb2Yg dGhlIHJldHVybiB2YWx1ZSBpcw0KPj4gbm90DQo+PiAtICBndWFyYW50ZWVkIHRvIGJlIE1QIHNh ZmUuDQo+PiArICBwZXJmb3JtZWQgdXNpbmcgTVAgc2FmZSBtZWNoYW5pc21zLg0KPj4gDQo+PiAg IElmIFZhbHVlIGlzIE5VTEwsIHRoZW4gQVNTRVJUKCkuDQo+PiANCj4+IEBAIC0yNzIsOCArMjcx LDcgQEAgSW50ZXJsb2NrZWRJbmNyZW1lbnQgKA0KPj4gDQo+PiAgIFBlcmZvcm1zIGFuIGF0b21p YyBkZWNyZW1lbnQgb2YgdGhlIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHNwZWNpZmllZA0KPj4g YnkNCj4+ICAgVmFsdWUgYW5kIHJldHVybnMgdGhlIGRlY3JlbWVudGVkIHZhbHVlLiBUaGUgZGVj cmVtZW50IG9wZXJhdGlvbiBtdXN0DQo+PiBiZQ0KPj4gLSAgcGVyZm9ybWVkIHVzaW5nIE1QIHNh ZmUgbWVjaGFuaXNtcy4gVGhlIHN0YXRlIG9mIHRoZSByZXR1cm4gdmFsdWUgaXMNCj4+IG5vdA0K Pj4gLSAgZ3VhcmFudGVlZCB0byBiZSBNUCBzYWZlLg0KPj4gKyAgcGVyZm9ybWVkIHVzaW5nIE1Q IHNhZmUgbWVjaGFuaXNtcy4NCj4+IA0KPj4gICBJZiBWYWx1ZSBpcyBOVUxMLCB0aGVuIEFTU0VS VCgpLg0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXph dGlvbkxpYi9TeW5jaHJvbml6YXRpb25Nc2MuYw0KPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlU3lu Y2hyb25pemF0aW9uTGliL1N5bmNocm9uaXphdGlvbk1zYy5jDQo+PiBpbmRleCBlMzI5OGM4YWI0 Li42YWIyZDcxODcwIDEwMDY0NA0KPj4gLS0tIGEvTWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9u aXphdGlvbkxpYi9TeW5jaHJvbml6YXRpb25Nc2MuYw0KPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkv QmFzZVN5bmNocm9uaXphdGlvbkxpYi9TeW5jaHJvbml6YXRpb25Nc2MuYw0KPj4gQEAgLTI0OSw4 ICsyNDksNyBAQCBSZWxlYXNlU3BpbkxvY2sgKA0KPj4gDQo+PiAgIFBlcmZvcm1zIGFuIGF0b21p YyBpbmNyZW1lbnQgb2YgdGhlIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHNwZWNpZmllZCBieQ0K Pj4gICBWYWx1ZSBhbmQgcmV0dXJucyB0aGUgaW5jcmVtZW50ZWQgdmFsdWUuIFRoZSBpbmNyZW1l bnQgb3BlcmF0aW9uIG11c3QNCj4+IGJlDQo+PiAtICBwZXJmb3JtZWQgdXNpbmcgTVAgc2FmZSBt ZWNoYW5pc21zLiBUaGUgc3RhdGUgb2YgdGhlIHJldHVybiB2YWx1ZSBpcw0KPj4gbm90DQo+PiAt ICBndWFyYW50ZWVkIHRvIGJlIE1QIHNhZmUuDQo+PiArICBwZXJmb3JtZWQgdXNpbmcgTVAgc2Fm ZSBtZWNoYW5pc21zLg0KPj4gDQo+PiAgIElmIFZhbHVlIGlzIE5VTEwsIHRoZW4gQVNTRVJUKCku DQo+PiANCj4+IEBAIC0yNzQsOCArMjczLDcgQEAgSW50ZXJsb2NrZWRJbmNyZW1lbnQgKA0KPj4g DQo+PiAgIFBlcmZvcm1zIGFuIGF0b21pYyBkZWNyZW1lbnQgb2YgdGhlIDMyLWJpdCB1bnNpZ25l ZCBpbnRlZ2VyIHNwZWNpZmllZA0KPj4gYnkNCj4+ICAgVmFsdWUgYW5kIHJldHVybnMgdGhlIGRl Y3JlbWVudGVkIHZhbHVlLiBUaGUgZGVjcmVtZW50IG9wZXJhdGlvbiBtdXN0DQo+PiBiZQ0KPj4g LSAgcGVyZm9ybWVkIHVzaW5nIE1QIHNhZmUgbWVjaGFuaXNtcy4gVGhlIHN0YXRlIG9mIHRoZSBy ZXR1cm4gdmFsdWUgaXMNCj4+IG5vdA0KPj4gLSAgZ3VhcmFudGVlZCB0byBiZSBNUCBzYWZlLg0K Pj4gKyAgcGVyZm9ybWVkIHVzaW5nIE1QIHNhZmUgbWVjaGFuaXNtcy4NCj4+IA0KPj4gICBJZiBW YWx1ZSBpcyBOVUxMLCB0aGVuIEFTU0VSVCgpLg0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEvTWRlUGtn L0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9YNjQvR2NjSW5saW5lLmMNCj4+IGIvTWRl UGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9YNjQvR2NjSW5saW5lLmMNCj4+IGlu ZGV4IDUyMjRkZDA2M2YuLjRjNGQ2ZTNmYzcgMTAwNjQ0DQo+PiAtLS0gYS9NZGVQa2cvTGlicmFy eS9CYXNlU3luY2hyb25pemF0aW9uTGliL1g2NC9HY2NJbmxpbmUuYw0KPj4gKysrIGIvTWRlUGtn L0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9YNjQvR2NjSW5saW5lLmMNCj4+IEBAIC0x NSwxNCArMTUsMTIgQEANCj4+IA0KPj4gDQo+PiANCj4+IC0NCj4+IC8qKg0KPj4gICBQZXJmb3Jt cyBhbiBhdG9taWMgaW5jcmVtZW50IG9mIGFuIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyLg0KPj4g DQo+PiAgIFBlcmZvcm1zIGFuIGF0b21pYyBpbmNyZW1lbnQgb2YgdGhlIDMyLWJpdCB1bnNpZ25l ZCBpbnRlZ2VyIHNwZWNpZmllZCBieQ0KPj4gICBWYWx1ZSBhbmQgcmV0dXJucyB0aGUgaW5jcmVt ZW50ZWQgdmFsdWUuIFRoZSBpbmNyZW1lbnQgb3BlcmF0aW9uIG11c3QNCj4+IGJlDQo+PiAtICBw ZXJmb3JtZWQgdXNpbmcgTVAgc2FmZSBtZWNoYW5pc21zLiBUaGUgc3RhdGUgb2YgdGhlIHJldHVy biB2YWx1ZSBpcw0KPj4gbm90DQo+PiAtICBndWFyYW50ZWVkIHRvIGJlIE1QIHNhZmUuDQo+PiAr ICBwZXJmb3JtZWQgdXNpbmcgTVAgc2FmZSBtZWNoYW5pc21zLg0KPj4gDQo+PiAgIEBwYXJhbSAg VmFsdWUgQSBwb2ludGVyIHRvIHRoZSAzMi1iaXQgdmFsdWUgdG8gaW5jcmVtZW50Lg0KPj4gDQo+ PiBAQCAtMzgsOSArMzYsMTAgQEAgSW50ZXJuYWxTeW5jSW5jcmVtZW50ICgNCj4+ICAgVUlOVDMy ICBSZXN1bHQ7DQo+PiANCj4+ICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKA0KPj4gKyAgICAibW92 bCAgICAkMSwgJSVlYXggIFxuXHQiDQo+PiAgICAgImxvY2sgICAgICAgICAgICAgICBcblx0Ig0K Pj4gLSAgICAiaW5jbCAgICAlMiAgICAgICAgIFxuXHQiDQo+PiAtICAgICJtb3YgICAgICUyLCAl JWVheCAgICAgICINCj4+ICsgICAgInhhZGQgICAgJSVlYXgsICUyICBcblx0Ig0KPj4gKyAgICAi aW5jICAgICAlJWVheCAgICAgICAgICAiDQo+PiAgICAgOiAiPWEiIChSZXN1bHQpLCAgICAgICAg ICAvLyAlMA0KPj4gICAgICAgIj1tIiAoKlZhbHVlKSAgICAgICAgICAgLy8gJTENCj4+ICAgICA6 ICJtIiAgKCpWYWx1ZSkgICAgICAgICAgIC8vICUyDQo+PiBAQCAtNTcsOCArNTYsNyBAQCBJbnRl cm5hbFN5bmNJbmNyZW1lbnQgKA0KPj4gDQo+PiAgIFBlcmZvcm1zIGFuIGF0b21pYyBkZWNyZW1l bnQgb2YgdGhlIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHNwZWNpZmllZA0KPj4gYnkNCj4+ICAg VmFsdWUgYW5kIHJldHVybnMgdGhlIGRlY3JlbWVudGVkIHZhbHVlLiBUaGUgZGVjcmVtZW50IG9w ZXJhdGlvbiBtdXN0DQo+PiBiZQ0KPj4gLSAgcGVyZm9ybWVkIHVzaW5nIE1QIHNhZmUgbWVjaGFu aXNtcy4gVGhlIHN0YXRlIG9mIHRoZSByZXR1cm4gdmFsdWUgaXMNCj4+IG5vdA0KPj4gLSAgZ3Vh cmFudGVlZCB0byBiZSBNUCBzYWZlLg0KPj4gKyAgcGVyZm9ybWVkIHVzaW5nIE1QIHNhZmUgbWVj aGFuaXNtcy4NCj4+IA0KPj4gICBAcGFyYW0gIFZhbHVlIEEgcG9pbnRlciB0byB0aGUgMzItYml0 IHZhbHVlIHRvIGRlY3JlbWVudC4NCj4+IA0KPj4gQEAgLTc0LDkgKzcyLDEwIEBAIEludGVybmFs U3luY0RlY3JlbWVudCAoDQo+PiAgICBVSU5UMzIgIFJlc3VsdDsNCj4+IA0KPj4gICBfX2FzbV9f IF9fdm9sYXRpbGVfXyAoDQo+PiAtICAgICJsb2NrICAgICAgICAgICAgICAgXG5cdCINCj4+IC0g ICAgImRlY2wgICAgJTIgICAgICAgICBcblx0Ig0KPj4gLSAgICAibW92ICAgICAlMiwgJSVlYXgg ICAgICAiDQo+PiArICAgICJtb3ZsICAgICQtMSwgJSVlYXggIFxuXHQiDQo+PiArICAgICJsb2Nr ICAgICAgICAgICAgICAgIFxuXHQiDQo+PiArICAgICJ4YWRkICAgICUlZWF4LCAlMiAgIFxuXHQi DQo+PiArICAgICJkZWMgICAgICUlZWF4ICAgICAgICAgICAgICAgICAgIg0KPj4gICAgIDogIj1h IiAoUmVzdWx0KSwgICAgICAgICAgLy8gJTANCj4+ICAgICAgICI9bSIgKCpWYWx1ZSkgICAgICAg ICAgIC8vICUxDQo+PiAgICAgOiAibSIgICgqVmFsdWUpICAgICAgICAgICAvLyAlMg0KPj4gZGlm ZiAtLWdpdA0KPj4gYS9NZGVQa2cvTGlicmFyeS9CYXNlU3luY2hyb25pemF0aW9uTGliL1g2NC9J bnRlcmxvY2tlZERlY3JlbWVudC5jDQo+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VTeW5jaHJvbml6 YXRpb25MaWIvWDY0L0ludGVybG9ja2VkRGVjcmVtZW50LmMNCj4+IGRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NA0KPj4gaW5kZXggZGE0MDJjZDRjNi4uMDAwMDAwMDAwMA0KPj4gLS0tIGEvTWRlUGtn L0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9YNjQvSW50ZXJsb2NrZWREZWNyZW1lbnQu Yw0KPj4gKysrIC9kZXYvbnVsbA0KPj4gQEAgLTEsNDYgKzAsMCBAQA0KPj4gLS8qKiBAZmlsZQ0K Pj4gLSAgSW50ZXJsb2NrZWREZWNyZW1lbnQgZnVuY3Rpb24NCj4+IC0NCj4+IC0gIENvcHlyaWdo dCAoYykgMjAwNiAtIDIwMTYsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCj4+IC0gIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMN Cj4+IC0gIGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFu ZCBjb25kaXRpb25zIG9mIHRoZQ0KPj4gQlNEIExpY2Vuc2UNCj4+IC0gIHdoaWNoIGFjY29tcGFu aWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkg YmUNCj4+IGZvdW5kIGF0DQo+PiAtICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNk LWxpY2Vuc2UucGhwLg0KPj4gLQ0KPj4gLSAgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5E RVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4+IEJBU0lTLA0KPj4gLSAgV0lUSE9V VCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSDQo+PiBF WFBSRVNTIE9SIElNUExJRUQuDQo+PiAtDQo+PiAtKiovDQo+PiAtDQo+PiAtLyoqDQo+PiAtICBN aWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA3LjEgRnVuY3Rpb24gUHJvdG90eXBlcyBmb3IgSS9PIElu dHJpbnNpY3MuDQo+PiAtKiovDQo+PiAtDQo+PiAtbG9uZyBfSW50ZXJsb2NrZWREZWNyZW1lbnQo DQo+PiAtICAgbG9uZyAqIGxwQWRkZW5kDQo+PiAtKTsNCj4+IC0NCj4+IC0jcHJhZ21hIGludHJp bnNpYyhfSW50ZXJsb2NrZWREZWNyZW1lbnQpDQo+PiAtDQo+PiAtLyoqDQo+PiAtICBQZXJmb3Jt cyBhbiBhdG9taWMgZGVjcmVtZW50IG9mIGFuIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyLg0KPj4g LQ0KPj4gLSAgUGVyZm9ybXMgYW4gYXRvbWljIGRlY3JlbWVudCBvZiB0aGUgMzItYml0IHVuc2ln bmVkIGludGVnZXIgc3BlY2lmaWVkIGJ5DQo+PiAtICBWYWx1ZSBhbmQgcmV0dXJucyB0aGUgZGVj cmVtZW50IHZhbHVlLiBUaGUgZGVjcmVtZW50IG9wZXJhdGlvbiBtdXN0DQo+PiBiZQ0KPj4gLSAg cGVyZm9ybWVkIHVzaW5nIE1QIHNhZmUgbWVjaGFuaXNtcy4gVGhlIHN0YXRlIG9mIHRoZSByZXR1 cm4gdmFsdWUgaXMNCj4+IG5vdA0KPj4gLSAgZ3VhcmFudGVlZCB0byBiZSBNUCBzYWZlLg0KPj4g LQ0KPj4gLSAgQHBhcmFtICBWYWx1ZSBBIHBvaW50ZXIgdG8gdGhlIDMyLWJpdCB2YWx1ZSB0byBk ZWNyZW1lbnQuDQo+PiAtDQo+PiAtICBAcmV0dXJuIFRoZSBkZWNyZW1lbnQgdmFsdWUuDQo+PiAt DQo+PiAtKiovDQo+PiAtVUlOVDMyDQo+PiAtRUZJQVBJDQo+PiAtSW50ZXJuYWxTeW5jRGVjcmVt ZW50ICgNCj4+IC0gIElOICAgICAgdm9sYXRpbGUgVUlOVDMyICAgICAgICAgICAqVmFsdWUNCj4+ IC0gICkNCj4+IC17DQo+PiAtICByZXR1cm4gX0ludGVybG9ja2VkRGVjcmVtZW50ICgobG9uZyAq KShVSU5UTikoVmFsdWUpKTsNCj4+IC19DQo+PiAtDQo+PiBkaWZmIC0tZ2l0DQo+PiBhL01kZVBr Zy9MaWJyYXJ5L0Jhc2VTeW5jaHJvbml6YXRpb25MaWIvWDY0L0ludGVybG9ja2VkRGVjcmVtZW50 Lm5hc20NCj4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9YNjQvSW50 ZXJsb2NrZWREZWNyZW1lbnQubmFzbQ0KPj4gaW5kZXggNjBmNDMxMTFmZS4uZGFiZGNhOTQ1ZSAx MDA2NDQNCj4+IC0tLQ0KPj4gYS9NZGVQa2cvTGlicmFyeS9CYXNlU3luY2hyb25pemF0aW9uTGli L1g2NC9JbnRlcmxvY2tlZERlY3JlbWVudC5uYXNtDQo+PiArKysNCj4+IGIvTWRlUGtnL0xpYnJh cnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9YNjQvSW50ZXJsb2NrZWREZWNyZW1lbnQubmFzbQ0K Pj4gQEAgLTEsNiArMSw2IEBADQo+PiA7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+PiA7DQo+PiAt OyBDb3B5cmlnaHQgKGMpIDIwMDYgLSAyMDE2LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+PiArOyBDb3B5cmlnaHQgKGMpIDIwMDYgLSAyMDE4LCBJbnRlbCBD b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+PiA7IFRoaXMgcHJvZ3JhbSBh bmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4+IDsgYXJlIGxpY2Vuc2VkIGFuZCBtYWRl IGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlDQo+PiBCU0Qg TGljZW5zZQ0KPj4gOyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBm dWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJlDQo+PiBmb3VuZCBhdA0KPj4gQEAgLTMzLDcg KzMzLDcgQEANCj4+IDstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+IGdsb2JhbCBBU01fUEZYKElu dGVybmFsU3luY0RlY3JlbWVudCkNCj4+IEFTTV9QRlgoSW50ZXJuYWxTeW5jRGVjcmVtZW50KToN Cj4+IC0gICAgbG9jayAgICBkZWMgICAgIGR3b3JkIFtyY3hdDQo+PiAtICAgIG1vdiAgICAgZWF4 LCBbcmN4XQ0KPj4gKyAgICBtb3YgICAgICAgZWF4LCAwRkZGRkZGRkZoDQo+PiArICAgIGxvY2sg eGFkZCBkd29yZCBbcmN4XSwgZWF4DQo+PiArICAgIGRlYyAgICAgICBlYXgNCj4+ICAgICByZXQN Cj4+IC0NCj4+IGRpZmYgLS1naXQNCj4+IGEvTWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXph dGlvbkxpYi9YNjQvSW50ZXJsb2NrZWRJbmNyZW1lbnQuYw0KPj4gYi9NZGVQa2cvTGlicmFyeS9C YXNlU3luY2hyb25pemF0aW9uTGliL1g2NC9JbnRlcmxvY2tlZEluY3JlbWVudC5jDQo+PiBkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IGJiZDEzODQ2MDIuLjAwMDAwMDAwMDANCj4+ IC0tLSBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VTeW5jaHJvbml6YXRpb25MaWIvWDY0L0ludGVybG9j a2VkSW5jcmVtZW50LmMNCj4+ICsrKyAvZGV2L251bGwNCj4+IEBAIC0xLDQ2ICswLDAgQEANCj4+ IC0vKiogQGZpbGUNCj4+IC0gIEludGVyTG9ja2VkSW5jcmVtZW50IGZ1bmN0aW9uDQo+PiAtDQo+ PiAtICBDb3B5cmlnaHQgKGMpIDIwMDYgLSAyMDE2LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQo+PiAtICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlp bmcgbWF0ZXJpYWxzDQo+PiAtICBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVy IHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUNCj4+IEJTRCBMaWNlbnNlDQo+PiAtICB3 aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhl IGxpY2Vuc2UgbWF5IGJlDQo+PiBmb3VuZCBhdA0KPj4gLSAgaHR0cDovL29wZW5zb3VyY2Uub3Jn L2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocC4NCj4+IC0NCj4+IC0gIFRIRSBQUk9HUkFNIElTIERJ U1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMiDQo+PiBCQVNJUywN Cj4+IC0gIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQs IEVJVEhFUg0KPj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPj4gLQ0KPj4gLSoqLw0KPj4gLQ0KPj4g LS8qKg0KPj4gLSAgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gNy4xIEZ1bmN0aW9uIFByb3RvdHlw ZXMgZm9yIEkvTyBJbnRyaW5zaWNzLg0KPj4gLSoqLw0KPj4gLQ0KPj4gLWxvbmcgX0ludGVybG9j a2VkSW5jcmVtZW50KA0KPj4gLSAgIGxvbmcgKiBscEFkZGVuZA0KPj4gLSk7DQo+PiAtDQo+PiAt I3ByYWdtYSBpbnRyaW5zaWMoX0ludGVybG9ja2VkSW5jcmVtZW50KQ0KPj4gLQ0KPj4gLS8qKg0K Pj4gLSAgUGVyZm9ybXMgYW4gYXRvbWljIGluY3JlbWVudCBvZiBhbiAzMi1iaXQgdW5zaWduZWQg aW50ZWdlci4NCj4+IC0NCj4+IC0gIFBlcmZvcm1zIGFuIGF0b21pYyBpbmNyZW1lbnQgb2YgdGhl IDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHNwZWNpZmllZCBieQ0KPj4gLSAgVmFsdWUgYW5kIHJl dHVybnMgdGhlIGluY3JlbWVudGVkIHZhbHVlLiBUaGUgaW5jcmVtZW50IG9wZXJhdGlvbiBtdXN0 DQo+PiBiZQ0KPj4gLSAgcGVyZm9ybWVkIHVzaW5nIE1QIHNhZmUgbWVjaGFuaXNtcy4gVGhlIHN0 YXRlIG9mIHRoZSByZXR1cm4gdmFsdWUgaXMNCj4+IG5vdA0KPj4gLSAgZ3VhcmFudGVlZCB0byBi ZSBNUCBzYWZlLg0KPj4gLQ0KPj4gLSAgQHBhcmFtICBWYWx1ZSBBIHBvaW50ZXIgdG8gdGhlIDMy LWJpdCB2YWx1ZSB0byBpbmNyZW1lbnQuDQo+PiAtDQo+PiAtICBAcmV0dXJuIFRoZSBpbmNyZW1l bnRlZCB2YWx1ZS4NCj4+IC0NCj4+IC0qKi8NCj4+IC1VSU5UMzINCj4+IC1FRklBUEkNCj4+IC1J bnRlcm5hbFN5bmNJbmNyZW1lbnQgKA0KPj4gLSAgSU4gICAgICB2b2xhdGlsZSBVSU5UMzIgICAg ICAgICAgICpWYWx1ZQ0KPj4gLSAgKQ0KPj4gLXsNCj4+IC0gIHJldHVybiBfSW50ZXJsb2NrZWRJ bmNyZW1lbnQgKChsb25nICopKFVJTlROKShWYWx1ZSkpOw0KPj4gLX0NCj4+IC0NCj4+IGRpZmYg LS1naXQNCj4+IGEvTWRlUGtnL0xpYnJhcnkvQmFzZVN5bmNocm9uaXphdGlvbkxpYi9YNjQvSW50 ZXJsb2NrZWRJbmNyZW1lbnQubmFzbQ0KPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlU3luY2hyb25p emF0aW9uTGliL1g2NC9JbnRlcmxvY2tlZEluY3JlbWVudC5uYXNtDQo+PiBpbmRleCA3Zjg3N2I1 Nzc0Li43NzM3OWQ5OThlIDEwMDY0NA0KPj4gLS0tDQo+PiBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VT eW5jaHJvbml6YXRpb25MaWIvWDY0L0ludGVybG9ja2VkSW5jcmVtZW50Lm5hc20NCj4+ICsrKw0K Pj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlU3luY2hyb25pemF0aW9uTGliL1g2NC9JbnRlcmxvY2tl ZEluY3JlbWVudC5uYXNtDQo+PiBAQCAtMzMsNyArMzMsOCBAQA0KPj4gOy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPj4gZ2xvYmFsIEFTTV9QRlgoSW50ZXJuYWxTeW5jSW5jcmVtZW50KQ0KPj4gQVNN X1BGWChJbnRlcm5hbFN5bmNJbmNyZW1lbnQpOg0KPj4gLSAgICBsb2NrICAgIGluYyAgICAgZHdv cmQgW3JjeF0NCj4+IC0gICAgbW92ICAgICBlYXgsIFtyY3hdDQo+PiArICAgIG1vdiAgICAgICBl YXgsIDENCj4+ICsgICAgbG9jayB4YWRkIGR3b3JkIFtyY3hdLCBlYXgNCj4+ICsgICAgaW5jICAg ICAgIGVheA0KPj4gICAgIHJldA0KPj4gDQo+PiAtLQ0KPj4gMi4xNi4xLndpbmRvd3MuMQ0KPiAN Cg==