From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbguseast3.qq.com (smtpbguseast3.qq.com [54.243.244.52]) by sourceware.org (Postfix) with ESMTPS id 335913861885 for ; Thu, 11 Jan 2024 09:58:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 335913861885 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 335913861885 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=54.243.244.52 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704967108; cv=none; b=vcPSU6Fx8vX6Faxl94O1Iu0Tc+c6I4FSCn0oNgM7HxXSmLuBCiwF8torJNIWRLpHv/z2vFox/yt0zQvZ2ZgClLuDeK3kHZHiF3o2cA+xP+Da5+b2nrMlbEQp1JbZi8fGaa3pUH3vK/FDF/LLEZ/VV0WWuj6Pu3ktZwWr+Af9kgU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704967108; c=relaxed/simple; bh=kMDCE7oevXSCQglv1uP8z1riFl3EPQmPRfTv6o1gX5k=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=cSPxQye3iMk3n5FWF5krzbkmE/mUKQe3UwVmBGIe/HZZ0KVCgKnxJIxZM+QP+DP0PI+1fLQcoi5twRO6nTe+kl59gyUQIGB3jKJJf788fxKSTuH3Dn+b2I1o8Le0RL1Fb95gMzGYQp3ALsxXszUu2hQMaDkpBm3ZfDo9XkYAFpc= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp69t1704967062tnbqn0xq Received: from LAPTOP-EPITNQBU ( [121.35.183.89]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 11 Jan 2024 17:57:41 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: 26Wqk/gWzN5O6OPce+fj2/YAgtt4uS+z4McPz7jGbUtQRidHCT2W94KemVrDL l/Z5osmxFxMiTEzOQX2GP3dEKmZAjEwxr5tL9HL2IIT+q3lyIOitb06MxxDiH18Ui+WBTPG jJhHkZ48EtLQMIgGRR0haxdSWVyl9xkDfF6qjWwoqipFFA8TlIMBypiKBVTiIPO256EswY0 7EUWgYmnR1ZKlC30hMW6lPfgvu+BuDHbgWV3/Fx4lHAgJBY6/WA0F8w+7yt0f9TkkXbf0Qo EnkhzF6jKODlH+2eTwK549b/VV2wDyxOZY9YKjozfPHncOJ5QAk+6cn1w3YL1/tCiz1pq5q l69IIcjXlZZRHfiqGgo1syu/kVUXxo2wMIOrXFA4yGOnP0QrgoJc/T2WJbqwNexFvgSVKEU d/dZ+xsziolStw80krzaTyELkupntwz+ X-QQ-GoodBg: 2 X-BIZMAIL-ID: 9376019009598130537 Date: Thu, 11 Jan 2024 17:57:41 +0800 From: "juzhe.zhong@rivai.ai" To: cooper.joshua , gcc-patches Cc: "Jim Wilson" , palmer , andrew , philipp.tomsich , jeffreyalaw , christoph.muellner , cooper.joshua , jinma , cooper.qu Subject: Re: [PATCH v5] RISC-V: Add support for xtheadvector-specific intrinsics. References: <20240110093141.1291-1-cooper.joshua@linux.alibaba.com>, <20240111095210.1450-1-cooper.joshua@linux.alibaba.com> X-Priority: 3 X-GUID: ADAA1BC1-FF51-4389-8961-7061E443C73A X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <16F768CA1057F6E1+202401111757407810113@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart230060431045_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart230060431045_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 TEdUTS4gQ291bGQgeW91IHJlc2VuZCB0aGUgcGF0Y2ggIlJJU0MtVjogSGFu ZGxlIGRpZmZlcmVuY2VzIGJldHdlZW4gWFRoZWFkdmVjdG9yIGFuZCBWZWN0 b3INCg0KVGhhbmtzLg0KDQoNCmp1emhlLnpob25nQHJpdmFpLmFpDQogDQpG cm9tOiBKdW4gU2hhIChKb3NodWEpDQpEYXRlOiAyMDI0LTAxLTExIDE3OjUy DQpUbzogZ2NjLXBhdGNoZXMNCkNDOiBqaW0ud2lsc29uLmdjYzsgcGFsbWVy OyBhbmRyZXc7IHBoaWxpcHAudG9tc2ljaDsgamVmZnJleWFsYXc7IGNocmlz dG9waC5tdWVsbG5lcjsganV6aGUuemhvbmc7IEp1biBTaGEgKEpvc2h1YSk7 IEppbiBNYTsgWGlhbm1pYW8gUXUNClN1YmplY3Q6IFtQQVRDSCB2NV0gUklT Qy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVjdG9yLXNwZWNpZmljIGlu dHJpbnNpY3MuDQpUaGlzIHBhdGNoIG9ubHkgaW52b2x2ZXMgdGhlIGdlbmVy YXRpb24gb2YgeHRoZWFkdmVjdG9yDQpzcGVjaWFsIGxvYWQvc3RvcmUgaW5z dHJ1Y3Rpb25zIGFuZCB2ZXh0IGluc3RydWN0aW9ucy4NCiANCmdjYy9DaGFu Z2VMb2c6DQogDQoqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMtYmFzZXMuY2MNCihjbGFzcyB0aF9sb2Fkc3RvcmVfd2lkdGgpOiBEZWZp bmUgbmV3IGJ1aWx0aW4gYmFzZXMuDQooY2xhc3MgdGhfZXh0cmFjdCk6IERl ZmluZSBuZXcgYnVpbHRpbiBiYXNlcy4NCihCQVNFKTogRGVmaW5lIG5ldyBi dWlsdGluIGJhc2VzLg0KKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLWJhc2VzLmg6DQpEZWZpbmUgbmV3IGJ1aWx0aW4gY2xhc3MuDQoq IGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNj DQooc3RydWN0IHRoX2xvYWRzdG9yZV93aWR0aF9kZWYpOiBEZWZpbmUgbmV3 IGJ1aWx0aW4gc2hhcGVzLg0KKHN0cnVjdCB0aF9pbmRleGVkX2xvYWRzdG9y ZV93aWR0aF9kZWYpOg0KRGVmaW5lIG5ldyBidWlsdGluIHNoYXBlcy4NCihz dHJ1Y3QgdGhfZXh0cmFjdF9kZWYpOiBEZWZpbmUgbmV3IGJ1aWx0aW4gc2hh cGVzLg0KKFNIQVBFKTogRGVmaW5lIG5ldyBidWlsdGluIHNoYXBlcy4NCiog Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaDoN CkRlZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuDQoqIGNvbmZpZy9yaXNjdi9y aXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MgKERFRl9SVlZfRlVOQ1RJT04pOg0K KiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmggKGVudW0g cmVxdWlyZWRfZXh0KToNCihzdHJ1Y3QgZnVuY3Rpb25fZ3JvdXBfaW5mbyk6 DQoqIGNvbmZpZy9yaXNjdi90LXJpc2N2OiBBZGQgdGhlYWQtdmVjdG9yLWJ1 aWx0aW5zLWZ1bmN0aW9ucy5kZWYNCiogY29uZmlnL3Jpc2N2L3RoZWFkLXZl Y3Rvci5tZA0KKEBwcmVkX21vdl93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2Rl Pik6IEFkZCBuZXcgcGF0dGVybnMuDQooKnByZWRfbW92X3dpZHRoPHZsbWVt X29wX2F0dHI+PG1vZGU+KTogTGlrZXdpc2UuDQooQHByZWRfc3RvcmVfd2lk dGg8dmxtZW1fb3BfYXR0cj48bW9kZT4pOiBMaWtld2lzZS4NCihAcHJlZF9z dHJpZGVkX2xvYWRfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4pOiBMaWtl d2lzZS4NCihAcHJlZF9zdHJpZGVkX3N0b3JlX3dpZHRoPHZsbWVtX29wX2F0 dHI+PG1vZGU+KTogTGlrZXdpc2UuDQooQHByZWRfaW5kZXhlZF9sb2FkX3dp ZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+KTogTGlrZXdpc2UuDQooQHByZWRf aW5kZXhlZF88dmxtZW1fb3JkZXJfYXR0cj5zdG9yZV93aWR0aDx2bG1lbV9v cF9hdHRyPjxtb2RlPik6DQooQHByZWRfdGhfZXh0cmFjdDxtb2RlPik6IExp a2V3aXNlLg0KKCpwcmVkX3RoX2V4dHJhY3Q8bW9kZT4pOiBMaWtld2lzZS4N CiogY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlv bnMuZGVmOiBOZXcgZmlsZS4NCiANCmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9n Og0KIA0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmxi LXZzYi5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRo ZWFkdmVjdG9yL3ZsYnUtdnNiLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0 L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5jOiBOZXcgdGVzdC4N CiogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaHUtdnNo LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3Ivdmx3LXZzdy5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNj di9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmM6IE5ldyB0ZXN0Lg0KQ28t YXV0aG9yZWQtYnk6IEppbiBNYSA8amlubWFAbGludXguYWxpYmFiYS5jb20+ DQpDby1hdXRob3JlZC1ieTogWGlhbm1pYW8gUXUgPGNvb3Blci5xdUBsaW51 eC5hbGliYWJhLmNvbT4NCkNvLWF1dGhvcmVkLWJ5OiBDaHJpc3RvcGggTcO8 bGxuZXIgPGNocmlzdG9waC5tdWVsbG5lckB2cnVsbC5ldT4NCi0tLQ0KLi4u L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYyAgICAgIHwg MTM5ICsrKysrKysrKysNCi4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMtYmFzZXMuaCAgICAgICB8ICAzMSArKysNCi4uLi9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjICAgICB8IDE2MCArKysrKysrKysr Kw0KLi4uL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaCAg ICAgIHwgICAzICsNCmdjYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLmNjICAgICB8ICA3MCArKysrKw0KZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi12ZWN0b3ItYnVpbHRpbnMuaCAgICAgIHwgICAzICsNCmdjYy9jb25m aWcvcmlzY3YvdC1yaXNjdiAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAr DQouLi4vcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5k ZWYgfCAgMzkgKysrDQpnY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5t ZCAgICAgICAgICAgICAgfCAyNTAgKysrKysrKysrKysrKysrKysrDQouLi4v cmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGItdnNiLmMgICAgICAgICAgfCAg NjggKysrKysNCi4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYnUtdnNi LmMgICAgICAgICB8ICA2OCArKysrKw0KLi4uL3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3IvdmxoLXZzaC5jICAgICAgICAgIHwgIDY4ICsrKysrDQouLi4vcmlz Y3YvcnZ2L3h0aGVhZHZlY3Rvci92bGh1LXZzaC5jICAgICAgICAgfCAgNjgg KysrKysNCi4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYyAg ICAgICAgICB8ICA2OCArKysrKw0KLi4uL3Jpc2N2L3J2di94dGhlYWR2ZWN0 b3Ivdmx3dS12c3cuYyAgICAgICAgIHwgIDY4ICsrKysrDQoxNSBmaWxlcyBj aGFuZ2VkLCAxMTA0IGluc2VydGlvbnMoKykNCmNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5j dGlvbnMuZGVmDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxiLXZzYi5jDQpj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2IuYw0KY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRo ZWFkdmVjdG9yL3ZsaC12c2guYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zs aHUtdnNoLmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHctdnN3LmMNCmNy ZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L3h0aGVhZHZlY3Rvci92bHd1LXZzdy5jDQogDQpkaWZmIC0tZ2l0 IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFz ZXMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy1iYXNlcy5jYw0KaW5kZXggMWFhNmUzYzY2NjUuLmI2ZjZlNGZmMzdlIDEw MDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMtYmFzZXMuY2MNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjDQpAQCAtMjE0MSw2ICsyMTQxLDgz IEBAIHB1YmxpYzoNCiAgIH0NCn07DQorLyogSW1wbGVtZW50cw0KKyAqIHRo LnZsKGIvaC93KVt1XS52L3RoLnZzKGIvaC93KVt1XS52L3RoLnZscyhiL2gv dylbdV0udi90aC52c3MoYi9oL3cpW3VdLnYvDQorICogdGgudmx4KGIvaC93 KVt1XS52L3RoLnZzW3VdeChiL2gvdykudg0KKyAqIGNvZGVnZW4uICAqLw0K K3RlbXBsYXRlPGJvb2wgU1RPUkVfUCwgbHN0X3R5cGUgTFNUX1RZUEUsIGlu dCBVTlNQRUM+DQorY2xhc3MgdGhfbG9hZHN0b3JlX3dpZHRoIDogcHVibGlj IGZ1bmN0aW9uX2Jhc2UNCit7DQorcHVibGljOg0KKyAgYm9vbCBhcHBseV90 YWlsX3BvbGljeV9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICFTVE9S RV9QOyB9DQorICBib29sIGFwcGx5X21hc2tfcG9saWN5X3AgKCkgY29uc3Qg b3ZlcnJpZGUgeyByZXR1cm4gIVNUT1JFX1A7IH0NCisNCisgIHVuc2lnbmVk IGludCBjYWxsX3Byb3BlcnRpZXMgKGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNl ICYpIGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAgIGlmIChTVE9SRV9QKQ0K KyAgICAgIHJldHVybiBDUF9XUklURV9NRU1PUlk7DQorICAgIGVsc2UNCisg ICAgICByZXR1cm4gQ1BfUkVBRF9NRU1PUlk7DQorICB9DQorDQorICBib29s IGNhbl9iZV9vdmVybG9hZGVkX3AgKGVudW0gcHJlZGljYXRpb25fdHlwZV9p bmRleCBwcmVkKSBjb25zdCBvdmVycmlkZQ0KKyAgew0KKyAgICBpZiAoU1RP UkVfUCB8fCBMU1RfVFlQRSA9PSBMU1RfSU5ERVhFRCkNCisgICAgICByZXR1 cm4gdHJ1ZTsNCisgICAgcmV0dXJuIHByZWQgIT0gUFJFRF9UWVBFX25vbmU7 DQorICB9DQorDQorICBydHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRlciAm ZSkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgZ2NjX2Fzc2VydCAoVEFS R0VUX1hUSEVBRFZFQ1RPUik7DQorICAgIGlmIChMU1RfVFlQRSA9PSBMU1Rf SU5ERVhFRCkNCisgICAgICB7DQorIGlmIChTVE9SRV9QKQ0KKyAgIHJldHVy biBlLnVzZV9leGFjdF9pbnNuICgNCisgICAgIGNvZGVfZm9yX3ByZWRfaW5k ZXhlZF9zdG9yZV93aWR0aCAoVU5TUEVDLCBVTlNQRUMsDQorICAgICAgICBl LnZlY3Rvcl9tb2RlICgpKSk7DQorIGVsc2UNCisgICByZXR1cm4gZS51c2Vf ZXhhY3RfaW5zbiAoDQorICAgICBjb2RlX2Zvcl9wcmVkX2luZGV4ZWRfbG9h ZF93aWR0aCAoVU5TUEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7DQorICAgICAg fQ0KKyAgICBlbHNlIGlmIChMU1RfVFlQRSA9PSBMU1RfU1RSSURFRCkNCisg ICAgICB7DQorIGlmIChTVE9SRV9QKQ0KKyAgIHJldHVybiBlLnVzZV9jb250 aWd1b3VzX3N0b3JlX2luc24gKA0KKyAgICAgY29kZV9mb3JfcHJlZF9zdHJp ZGVkX3N0b3JlX3dpZHRoIChVTlNQRUMsIGUudmVjdG9yX21vZGUgKCkpKTsN CisgZWxzZQ0KKyAgIHJldHVybiBlLnVzZV9jb250aWd1b3VzX2xvYWRfaW5z biAoDQorICAgICBjb2RlX2Zvcl9wcmVkX3N0cmlkZWRfbG9hZF93aWR0aCAo VU5TUEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7DQorICAgICAgfQ0KKyAgICBl bHNlDQorICAgICAgew0KKyBpZiAoU1RPUkVfUCkNCisgICByZXR1cm4gZS51 c2VfY29udGlndW91c19zdG9yZV9pbnNuICgNCisgICAgIGNvZGVfZm9yX3By ZWRfc3RvcmVfd2lkdGggKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOw0K KyBlbHNlDQorICAgcmV0dXJuIGUudXNlX2NvbnRpZ3VvdXNfbG9hZF9pbnNu ICgNCisgICAgIGNvZGVfZm9yX3ByZWRfbW92X3dpZHRoIChVTlNQRUMsIGUu dmVjdG9yX21vZGUgKCkpKTsNCisgICAgICB9DQorICB9DQorfTsNCisNCisv KiBJbXBsZW1lbnRzIHZleHQueC52LiAgKi8NCitjbGFzcyB0aF9leHRyYWN0 IDogcHVibGljIGZ1bmN0aW9uX2Jhc2UNCit7DQorcHVibGljOg0KKyAgYm9v bCBhcHBseV92bF9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl OyB9DQorICBib29sIGFwcGx5X3RhaWxfcG9saWN5X3AgKCkgY29uc3Qgb3Zl cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgIGJvb2wgYXBwbHlfbWFza19w b2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0K KyAgYm9vbCB1c2VfbWFza19wcmVkaWNhdGlvbl9wICgpIGNvbnN0IG92ZXJy aWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICBib29sIGhhc19tZXJnZV9vcGVy YW5kX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisN CisgIHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBv dmVycmlkZQ0KKyAgew0KKyAgICBnY2NfYXNzZXJ0IChUQVJHRVRfWFRIRUFE VkVDVE9SKTsNCisgICAgcmV0dXJuIGUudXNlX2V4YWN0X2luc24gKGNvZGVf Zm9yX3ByZWRfdGhfZXh0cmFjdCAoZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAg fQ0KK307DQorDQovKiBCZWxvdyBpbXBsZW1lbnRzIGFyZSB2ZWN0b3IgY3J5 cHRvICovDQovKiBJbXBsZW1lbnRzIHZhbmRuLlt2dix2eF0gKi8NCmNsYXNz IHZhbmRuIDogcHVibGljIGZ1bmN0aW9uX2Jhc2UNCkBAIC0yNjAzLDYgKzI2 ODAsMzcgQEAgc3RhdGljIENPTlNURVhQUiBjb25zdCBzZWdfaW5kZXhlZF9s b2FkPFVOU1BFQ19PUkRFUkVEPiB2bG94c2VnX29iajsNCnN0YXRpYyBDT05T VEVYUFIgY29uc3Qgc2VnX2luZGV4ZWRfc3RvcmU8VU5TUEVDX1VOT1JERVJF RD4gdnN1eHNlZ19vYmo7DQpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHNlZ19p bmRleGVkX3N0b3JlPFVOU1BFQ19PUkRFUkVEPiB2c294c2VnX29iajsNCnN0 YXRpYyBDT05TVEVYUFIgY29uc3QgdmxzZWdmZiB2bHNlZ2ZmX29iajsNCitz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxz ZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxCPiB2bGJfb2JqOw0K K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZh bHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTEJVPiB2bGJ1X29i ajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0 aDxmYWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxIPiB2bGhf b2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dp ZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTEhVPiB2 bGh1X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9y ZV93aWR0aDxmYWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxX PiB2bHdfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0 b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9W TFdVPiB2bHd1X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xv YWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19U SF9WTEI+IHZzYl9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9s b2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNf VEhfVkxIPiB2c2hfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhf bG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9VTklUX1NUUklERSwgVU5TUEVD X1RIX1ZMVz4gdnN3X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRo X2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BFQ19U SF9WTFNCPiB2bHNiX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRo X2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BFQ19U SF9WTFNCVT4gdmxzYnVfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg dGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVD X1RIX1ZMU0g+IHZsc2hfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg dGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVD X1RIX1ZMU0hVPiB2bHNodV9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25z dCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQ RUNfVEhfVkxTVz4gdmxzd19vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25z dCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQ RUNfVEhfVkxTV1U+IHZsc3d1X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfU1RSSURFRCwgVU5T UEVDX1RIX1ZMU0I+IHZzc2Jfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9TVFJJREVELCBVTlNQ RUNfVEhfVkxTSD4gdnNzaF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25z dCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1NUUklERUQsIFVOU1BF Q19USF9WTFNXPiB2c3N3X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVOU1BF Q19USF9WTFhCPiB2bHhiX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVOU1BF Q19USF9WTFhCVT4gdmx4YnVfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5T UEVDX1RIX1ZMWEg+IHZseGhfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5T UEVDX1RIX1ZMWEhVPiB2bHhodV9vYmo7DQorc3RhdGljIENPTlNURVhQUiBj b25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRFWEVELCBV TlNQRUNfVEhfVkxYVz4gdmx4d19vYmo7DQorc3RhdGljIENPTlNURVhQUiBj b25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRFWEVELCBV TlNQRUNfVEhfVkxYV1U+IHZseHd1X29iajsNCitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwg VU5TUEVDX1RIX1ZMWEI+IHZzeGJfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBV TlNQRUNfVEhfVkxYSD4gdnN4aF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBj b25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVO U1BFQ19USF9WTFhXPiB2c3h3X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5T UEVDX1RIX1ZTVVhCPiB2c3V4Yl9vYmo7DQorc3RhdGljIENPTlNURVhQUiBj b25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVO U1BFQ19USF9WU1VYSD4gdnN1eGhfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBV TlNQRUNfVEhfVlNVWFc+IHZzdXh3X29iajsNCitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHRoX2V4dHJhY3QgdmV4dF94X3Zfb2JqOw0KLyogQ3J5cHRvIFZl Y3RvciAqLw0Kc3RhdGljIENPTlNURVhQUiBjb25zdCB2YW5kbiB2YW5kbl9v Ymo7DQpAQCAtMjg5NCw2ICszMDAyLDM3IEBAIEJBU0UgKHZsb3hzZWcpDQpC QVNFICh2c3V4c2VnKQ0KQkFTRSAodnNveHNlZykNCkJBU0UgKHZsc2VnZmYp DQorQkFTRSAodmxiKQ0KK0JBU0UgKHZsaCkNCitCQVNFICh2bHcpDQorQkFT RSAodmxidSkNCitCQVNFICh2bGh1KQ0KK0JBU0UgKHZsd3UpDQorQkFTRSAo dnNiKQ0KK0JBU0UgKHZzaCkNCitCQVNFICh2c3cpDQorQkFTRSAodmxzYikN CitCQVNFICh2bHNoKQ0KK0JBU0UgKHZsc3cpDQorQkFTRSAodmxzYnUpDQor QkFTRSAodmxzaHUpDQorQkFTRSAodmxzd3UpDQorQkFTRSAodnNzYikNCitC QVNFICh2c3NoKQ0KK0JBU0UgKHZzc3cpDQorQkFTRSAodmx4YikNCitCQVNF ICh2bHhoKQ0KK0JBU0UgKHZseHcpDQorQkFTRSAodmx4YnUpDQorQkFTRSAo dmx4aHUpDQorQkFTRSAodmx4d3UpDQorQkFTRSAodnN4YikNCitCQVNFICh2 c3hoKQ0KK0JBU0UgKHZzeHcpDQorQkFTRSAodnN1eGIpDQorQkFTRSAodnN1 eGgpDQorQkFTRSAodnN1eHcpDQorQkFTRSAodmV4dF94X3YpDQovKiBDcnlw dG8gdmVjdG9yICovDQpCQVNFICh2YW5kbikNCkJBU0UgKHZicmV2KQ0KZGlm ZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLWJhc2VzLmggYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy1iYXNlcy5oDQppbmRleCA4N2M3ZjQzYTQyMy4uMWYyYzk0ZDM1 NDEgMTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy1iYXNlcy5oDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5oDQpAQCAtMjgwLDYgKzI4MCwz NyBAQCBleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxveHNl ZzsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3V4c2Vn Ow0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzb3hzZWc7 DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxzZWdmZjsN CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxiOw0KK2V4 dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bGg7DQorZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsdzsNCitleHRlcm4gY29u c3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxidTsNCitleHRlcm4gY29uc3Qg ZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxodTsNCitleHRlcm4gY29uc3QgZnVu Y3Rpb25fYmFzZSAqY29uc3Qgdmx3dTsNCitleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdnNiOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB2c2g7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2Ug KmNvbnN0IHZzdzsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29u c3QgdmxzYjsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dmxzaDsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmxz dzsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxzYnU7 DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsc2h1Ow0K K2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHN3dTsNCitl eHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnNzYjsNCitleHRl cm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnNzaDsNCitleHRlcm4g Y29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnNzdzsNCitleHRlcm4gY29u c3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4YjsNCitleHRlcm4gY29uc3Qg ZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4aDsNCitleHRlcm4gY29uc3QgZnVu Y3Rpb25fYmFzZSAqY29uc3Qgdmx4dzsNCitleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3Qgdmx4YnU7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X2Jhc2UgKmNvbnN0IHZseGh1Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB2bHh3dTsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFz ZSAqY29uc3QgdnN4YjsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAq Y29uc3QgdnN4aDsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29u c3QgdnN4dzsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dnN1eGI7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZz dXhoOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3V4 dzsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmV4dF94 X3Y7DQovKiBCZWxvdyBmdW5jdGlvbl9iYXNlIGFyZSBWZWN0cm8gQ3J5cHRv Ki8NCmV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2YW5kbjsN CmV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2YnJldjsNCmRp ZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy1zaGFwZXMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy1zaGFwZXMuY2MNCmluZGV4IDFlNGY0ZDUzZGU2Li44ZTkw YjE3YTk0YiAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYw0KKysrIGIvZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjDQpAQCAtMjEx LDYgKzIxMSwxNDYgQEAgc3RydWN0IGluZGV4ZWRfbG9hZHN0b3JlX2RlZiA6 IHB1YmxpYyBmdW5jdGlvbl9zaGFwZQ0KICAgfQ0KfTsNCisvKiBBZGQgb25l IGZ1bmN0aW9uIGluc3RhbmNlIGZvciBHUk9VUCwgdXNpbmcgb3BlcmFuZCBz dWZmaXggYXQgaW5kZXggT0ksDQorICAgbW9kZSBzdWZmaXggYXQgaW5kZXgg UEFJUiAmJiBiaSBhbmQgcHJlZGljYXRpb24gc3VmZml4IGF0IGluZGV4IHBy ZWRfaWR4LiAgKi8NCitzdGF0aWMgdm9pZA0KK2J1aWxkX3RoX2xvYWRzdG9y ZSAoZnVuY3Rpb25fYnVpbGRlciAmYiwgY29uc3QgZnVuY3Rpb25fZ3JvdXBf aW5mbyAmZ3JvdXAsDQorICAgICB1bnNpZ25lZCBpbnQgcHJlZF9pZHgsIHVu c2lnbmVkIGludCB2ZWNfdHlwZV9pZHgpDQorew0KKyAgYXV0b192ZWM8dHJl ZSwgNT4gYXJndW1lbnRfdHlwZXM7DQorICBmdW5jdGlvbl9pbnN0YW5jZSBm dW5jdGlvbl9pbnN0YW5jZSAoZ3JvdXAuYmFzZV9uYW1lLCAqZ3JvdXAuYmFz ZSwNCisgICAgICAgICpncm91cC5zaGFwZSwNCisgICAgICAgIGdyb3VwLm9w c19pbmZvcy50eXBlc1t2ZWNfdHlwZV9pZHhdLA0KKyAgICAgICAgZ3JvdXAu cHJlZHNbcHJlZF9pZHhdLCAmZ3JvdXAub3BzX2luZm9zKTsNCisgIHRyZWUg cmV0dXJuX3R5cGUgPSBncm91cC5vcHNfaW5mb3MucmV0LmdldF90cmVlX3R5 cGUgKA0KKyAgICBncm91cC5vcHNfaW5mb3MudHlwZXNbdmVjX3R5cGVfaWR4 XS5pbmRleCk7DQorICBiLmFsbG9jYXRlX2FyZ3VtZW50X3R5cGVzIChmdW5j dGlvbl9pbnN0YW5jZSwgYXJndW1lbnRfdHlwZXMpOw0KKyAgYi5hcHBseV9w cmVkaWNhdGlvbiAoZnVuY3Rpb25faW5zdGFuY2UsIHJldHVybl90eXBlLCBh cmd1bWVudF90eXBlcyk7DQorDQorICBpZiAoVEFSR0VUX1hUSEVBRFZFQ1RP UiAmJiAhY2hlY2tfdHlwZSAocmV0dXJuX3R5cGUsIGFyZ3VtZW50X3R5cGVz KSkNCisgICAgcmV0dXJuOw0KKw0KKyAgdHJlZSB0eXBlID0gYnVpbHRpbl90 eXBlc1tncm91cC5vcHNfaW5mb3MudHlwZXNbdmVjX3R5cGVfaWR4XS5pbmRl eF0udmVjdG9yOw0KKyAgaWYgKHN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1lLCAi bCIpDQorICAgICAgJiYgc3Ryc3RyIChncm91cC5iYXNlX25hbWUsICJ1IikN CisgICAgICAmJiAhVFlQRV9VTlNJR05FRCAoVFJFRV9UWVBFICh0eXBlKSkp DQorICAgIHJldHVybjsNCisNCisgIGlmIChzdHJzdHIgKGdyb3VwLmJhc2Vf bmFtZSwgImwiKQ0KKyAgICAgICYmICFzdHJzdHIgKGdyb3VwLmJhc2VfbmFt ZSwgInUiKQ0KKyAgICAgICYmIFRZUEVfVU5TSUdORUQgKFRSRUVfVFlQRSAo dHlwZSkpKQ0KKyAgICByZXR1cm47DQorDQorICBtYWNoaW5lX21vZGUgbW9k ZSA9IFRZUEVfTU9ERSAodHlwZSk7DQorICBpbnQgc2V3ID0gR0VUX01PREVf QklUU0laRSAoR0VUX01PREVfSU5ORVIgKG1vZGUpKTsNCisgIGlmIChzdHJz dHIgKGdyb3VwLmJhc2VfbmFtZSwgImgiKSAmJiBzZXcgPT0gOCkNCisgICAg cmV0dXJuOw0KKw0KKyAgaWYgKHN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1lLCAi dyIpICYmIChzZXcgPT0gOCB8fCBzZXcgPT0xNikpDQorICAgIHJldHVybjsN CisNCisgIGIuYWRkX292ZXJsb2FkZWRfZnVuY3Rpb24gKGZ1bmN0aW9uX2lu c3RhbmNlLCAqZ3JvdXAuc2hhcGUpOw0KKyAgYi5hZGRfdW5pcXVlX2Z1bmN0 aW9uIChmdW5jdGlvbl9pbnN0YW5jZSwgKCpncm91cC5zaGFwZSksIHJldHVy bl90eXBlLA0KKyBhcmd1bWVudF90eXBlcyk7DQorfQ0KKw0KKy8qIHRoX2xv YWRzdG9yZV93aWR0aF9kZWYgY2xhc3MuICAqLw0KK3N0cnVjdCB0aF9sb2Fk c3RvcmVfd2lkdGhfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UNCit7DQorICAg dm9pZCBidWlsZCAoZnVuY3Rpb25fYnVpbGRlciAmYiwNCisgICAgICAgY29u c3QgZnVuY3Rpb25fZ3JvdXBfaW5mbyAmZ3JvdXApIGNvbnN0IG92ZXJyaWRl DQorICB7DQorICAgIGZvciAodW5zaWduZWQgaW50IHByZWRfaWR4ID0gMDsg Z3JvdXAucHJlZHNbcHJlZF9pZHhdICE9IE5VTV9QUkVEX1RZUEVTOw0KKyAg ICAgICArK3ByZWRfaWR4KQ0KKyAgICAgIHsNCisgZm9yICh1bnNpZ25lZCBp bnQgdmVjX3R5cGVfaWR4ID0gMDsNCisgICAgICBncm91cC5vcHNfaW5mb3Mu dHlwZXNbdmVjX3R5cGVfaWR4XS5pbmRleCAhPSBOVU1fVkVDVE9SX1RZUEVT Ow0KKyAgICAgICsrdmVjX3R5cGVfaWR4KQ0KKyAgIHsNCisgICAgIGJ1aWxk X3RoX2xvYWRzdG9yZSAoYiwgZ3JvdXAsIHByZWRfaWR4LCB2ZWNfdHlwZV9p ZHgpOw0KKyAgIH0NCisgICAgICB9DQorICB9DQorDQorICBjaGFyICpnZXRf bmFtZSAoZnVuY3Rpb25fYnVpbGRlciAmYiwgY29uc3QgZnVuY3Rpb25faW5z dGFuY2UgJmluc3RhbmNlLA0KKyAgIGJvb2wgb3ZlcmxvYWRlZF9wKSBjb25z dCBvdmVycmlkZQ0KKyAgew0KKyAgICAvKiBSZXR1cm4gbnVsbHB0ciBpZiBp dCBjYW4gbm90IGJlIG92ZXJsb2FkZWQuICAqLw0KKyAgICBpZiAob3Zlcmxv YWRlZF9wICYmICFpbnN0YW5jZS5iYXNlLT5jYW5fYmVfb3ZlcmxvYWRlZF9w IChpbnN0YW5jZS5wcmVkKSkNCisgICAgICByZXR1cm4gbnVsbHB0cjsNCisN CisgICAgYi5hcHBlbmRfbmFtZSAoIl9fcmlzY3ZfdGhfIik7DQorICAgIGIu YXBwZW5kX25hbWUgKGluc3RhbmNlLmJhc2VfbmFtZSk7DQorDQorICAgIC8q IHZvcF92IC0tPiB2b3Bfdl88dHlwZT4uICAqLw0KKyAgICBpZiAoIW92ZXJs b2FkZWRfcCkNCisgICAgICB7DQorIC8qIHZvcCAtLT4gdm9wX3YuICAqLw0K KyBiLmFwcGVuZF9uYW1lIChvcGVyYW5kX3N1ZmZpeGVzW2luc3RhbmNlLm9w X2luZm8tPm9wXSk7DQorIC8qIHZvcF92IC0tPiB2b3Bfdl88dHlwZT4uICAq Lw0KKyBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5 cGUuaW5kZXhdLnZlY3Rvcik7DQorICAgICAgfQ0KKw0KKyAgICAvKiBBY2Nv cmRpbmcgdG8gcnZ2LWludHJpbnNpYy1kb2MsIGl0IGRvZXMgbm90IGFkZCAi X20iIHN1ZmZpeA0KKyAgICAgICBmb3Igdm9wX20gQysrIG92ZXJsb2FkZWQg QVBJLiAgKi8NCisgICAgaWYgKG92ZXJsb2FkZWRfcCAmJiBpbnN0YW5jZS5w cmVkID09IFBSRURfVFlQRV9tKQ0KKyAgICAgIHJldHVybiBiLmZpbmlzaF9u YW1lICgpOw0KKyAgICBiLmFwcGVuZF9uYW1lIChwcmVkaWNhdGlvbl9zdWZm aXhlc1tpbnN0YW5jZS5wcmVkXSk7DQorICAgIHJldHVybiBiLmZpbmlzaF9u YW1lICgpOw0KKyAgfQ0KK307DQorDQorDQorLyogdGhfaW5kZXhlZF9sb2Fk c3RvcmVfd2lkdGhfZGVmIGNsYXNzLiAgKi8NCitzdHJ1Y3QgdGhfaW5kZXhl ZF9sb2Fkc3RvcmVfd2lkdGhfZGVmIDogcHVibGljIGZ1bmN0aW9uX3NoYXBl DQorew0KKyAgdm9pZCBidWlsZCAoZnVuY3Rpb25fYnVpbGRlciAmYiwNCisg ICAgICAgY29uc3QgZnVuY3Rpb25fZ3JvdXBfaW5mbyAmZ3JvdXApIGNvbnN0 IG92ZXJyaWRlDQorICB7DQorICAgIGZvciAodW5zaWduZWQgaW50IHByZWRf aWR4ID0gMDsgZ3JvdXAucHJlZHNbcHJlZF9pZHhdICE9IE5VTV9QUkVEX1RZ UEVTOw0KKyArK3ByZWRfaWR4KQ0KKyAgICAgIHsNCisgZm9yICh1bnNpZ25l ZCBpbnQgdmVjX3R5cGVfaWR4ID0gMDsNCisgICAgICBncm91cC5vcHNfaW5m b3MudHlwZXNbdmVjX3R5cGVfaWR4XS5pbmRleCAhPSBOVU1fVkVDVE9SX1RZ UEVTOw0KKyAgICAgICsrdmVjX3R5cGVfaWR4KQ0KKyAgIHsNCisgICAgdHJl ZSBpbmRleF90eXBlID0gZ3JvdXAub3BzX2luZm9zLmFyZ3NbMV0uZ2V0X3Ry ZWVfdHlwZSAoDQorICAgICAgIGdyb3VwLm9wc19pbmZvcy50eXBlc1t2ZWNf dHlwZV9pZHhdLmluZGV4KTsNCisgICAgaWYgKCFpbmRleF90eXBlKQ0KKyAg ICAgICBjb250aW51ZTsNCisgICAgYnVpbGRfdGhfbG9hZHN0b3JlIChiLCBn cm91cCwgcHJlZF9pZHgsIHZlY190eXBlX2lkeCk7DQorICAgfQ0KKyAgICAg IH0NCisgIH0NCisNCisgIGNoYXIgKmdldF9uYW1lIChmdW5jdGlvbl9idWls ZGVyICZiLCBjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsDQor ICAgYm9vbCBvdmVybG9hZGVkX3ApIGNvbnN0IG92ZXJyaWRlDQorICB7DQor DQorICAgIC8qIFJldHVybiBudWxscHRyIGlmIGl0IGNhbiBub3QgYmUgb3Zl cmxvYWRlZC4gICovDQorICAgIGlmIChvdmVybG9hZGVkX3AgJiYgIWluc3Rh bmNlLmJhc2UtPmNhbl9iZV9vdmVybG9hZGVkX3AgKGluc3RhbmNlLnByZWQp KQ0KKyAgICAgIHJldHVybiBudWxscHRyOw0KKw0KKyAgICBiLmFwcGVuZF9u YW1lICgiX19yaXNjdl90aF8iKTsNCisgICAgYi5hcHBlbmRfbmFtZSAoaW5z dGFuY2UuYmFzZV9uYW1lKTsNCisgICAgLyogdm9wX3YgLS0+IHZvcF92Xzx0 eXBlPi4gICovDQorICAgIGlmICghb3ZlcmxvYWRlZF9wKQ0KKyAgICAgIHsN CisgLyogdm9wIC0tPiB2b3Bfdi4gICovDQorIGIuYXBwZW5kX25hbWUgKG9w ZXJhbmRfc3VmZml4ZXNbaW5zdGFuY2Uub3BfaW5mby0+b3BdKTsNCisgLyog dm9wX3YgLS0+IHZvcF92Xzx0eXBlPi4gICovDQorIGIuYXBwZW5kX25hbWUg KHR5cGVfc3VmZml4ZXNbaW5zdGFuY2UudHlwZS5pbmRleF0udmVjdG9yKTsN CisgICAgICB9DQorDQorICAgIC8qIEFjY29yZGluZyB0byBydnYtaW50cmlu c2ljLWRvYywgaXQgZG9lcyBub3QgYWRkICJfbSIgc3VmZml4DQorICAgICAg IGZvciB2b3BfbSBDKysgb3ZlcmxvYWRlZCBBUEkuICAqLw0KKyAgICBpZiAo b3ZlcmxvYWRlZF9wICYmIGluc3RhbmNlLnByZWQgPT0gUFJFRF9UWVBFX20p DQorICAgICAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7DQorICAgIGIuYXBw ZW5kX25hbWUgKHByZWRpY2F0aW9uX3N1ZmZpeGVzW2luc3RhbmNlLnByZWRd KTsNCisgICAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7DQorICB9DQorfTsN CisNCi8qIGFsdV9kZWYgY2xhc3MuICAqLw0Kc3RydWN0IGFsdV9kZWYgOiBw dWJsaWMgYnVpbGRfYmFzZQ0Kew0KQEAgLTYzMiw2ICs3NzIsMjMgQEAgc3Ry dWN0IHJlZHVjX2FsdV9kZWYgOiBwdWJsaWMgYnVpbGRfYmFzZQ0KICAgfQ0K fTsNCisvKiB0aF9leHRyYWN0X2RlZiBjbGFzcy4gICovDQorc3RydWN0IHRo X2V4dHJhY3RfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UNCit7DQorICBjaGFy ICpnZXRfbmFtZSAoZnVuY3Rpb25fYnVpbGRlciAmYiwgY29uc3QgZnVuY3Rp b25faW5zdGFuY2UgJmluc3RhbmNlLA0KKyAgICAgIGJvb2wgb3ZlcmxvYWRl ZF9wKSBjb25zdCBvdmVycmlkZQ0KKyAgew0KKyAgICBiLmFwcGVuZF9uYW1l ICgiX19yaXNjdl90aF8iKTsNCisgICAgYi5hcHBlbmRfbmFtZSAoaW5zdGFu Y2UuYmFzZV9uYW1lKTsNCisNCisgICAgaWYgKG92ZXJsb2FkZWRfcCkNCisg ICAgICByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsNCisgICAgYi5hcHBlbmRf bmFtZSAodHlwZV9zdWZmaXhlc1tpbnN0YW5jZS50eXBlLmluZGV4XS52ZWN0 b3IpOw0KKyAgICBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2luc3Rh bmNlLnR5cGUuaW5kZXhdLnNjYWxhcik7DQorICAgIHJldHVybiBiLmZpbmlz aF9uYW1lICgpOw0KKyAgfQ0KK307DQorDQovKiBzY2FsYXJfbW92ZV9kZWYg Y2xhc3MuICAqLw0Kc3RydWN0IHNjYWxhcl9tb3ZlX2RlZiA6IHB1YmxpYyBi dWlsZF9iYXNlDQp7DQpAQCAtMTA5NCw2ICsxMjUxLDggQEAgU0hBUEUodnNl dHZsLCB2c2V0dmwpDQpTSEFQRSh2c2V0dmwsIHZzZXR2bG1heCkNClNIQVBF KGxvYWRzdG9yZSwgbG9hZHN0b3JlKQ0KU0hBUEUoaW5kZXhlZF9sb2Fkc3Rv cmUsIGluZGV4ZWRfbG9hZHN0b3JlKQ0KK1NIQVBFKHRoX2xvYWRzdG9yZV93 aWR0aCwgdGhfbG9hZHN0b3JlX3dpZHRoKQ0KK1NIQVBFKHRoX2luZGV4ZWRf bG9hZHN0b3JlX3dpZHRoLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCkN ClNIQVBFKGFsdSwgYWx1KQ0KU0hBUEUoYWx1X2ZybSwgYWx1X2ZybSkNClNI QVBFKHdpZGVuX2FsdSwgd2lkZW5fYWx1KQ0KQEAgLTExMDYsNiArMTI2NSw3 IEBAIFNIQVBFKG1vdmUsIG1vdmUpDQpTSEFQRShtYXNrX2FsdSwgbWFza19h bHUpDQpTSEFQRShyZWR1Y19hbHUsIHJlZHVjX2FsdSkNClNIQVBFKHJlZHVj X2FsdV9mcm0sIHJlZHVjX2FsdV9mcm0pDQorU0hBUEUodGhfZXh0cmFjdCwg dGhfZXh0cmFjdCkNClNIQVBFKHNjYWxhcl9tb3ZlLCBzY2FsYXJfbW92ZSkN ClNIQVBFKHZ1bmRlZmluZWQsIHZ1bmRlZmluZWQpDQpTSEFQRShtaXNjLCBt aXNjKQ0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLXNoYXBlcy5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmgNCmluZGV4IGFjMmEyOGNlMDE3 Li5hNzYyNGQwZmFiZCAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oDQorKysgYi9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaA0KQEAg LTI4LDYgKzI4LDggQEAgZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpj b25zdCB2c2V0dmw7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNv bnN0IHZzZXR2bG1heDsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAq Y29uc3QgbG9hZHN0b3JlOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBl ICpjb25zdCBpbmRleGVkX2xvYWRzdG9yZTsNCitleHRlcm4gY29uc3QgZnVu Y3Rpb25fc2hhcGUgKmNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDsNCitleHRl cm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHRoX2luZGV4ZWRfbG9h ZHN0b3JlX3dpZHRoOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpj b25zdCBhbHU7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0 IGFsdV9mcm07DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0 IHdpZGVuX2FsdTsNCkBAIC00MSw2ICs0Myw3IEBAIGV4dGVybiBjb25zdCBm dW5jdGlvbl9zaGFwZSAqY29uc3QgbWFza19hbHU7DQpleHRlcm4gY29uc3Qg ZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHJlZHVjX2FsdTsNCmV4dGVybiBjb25z dCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgcmVkdWNfYWx1X2ZybTsNCmV4dGVy biBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3Qgc2NhbGFyX21vdmU7DQor ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB0aF9leHRyYWN0 Ow0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB2dW5kZWZp bmVkOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBtaXNj Ow0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB2c2V0Ow0K ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMuY2MNCmluZGV4IDI1ZTBiNmU1NmRlLi40NGI5ZmVjMTg5OCAxMDA2 NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLmNjDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy5jYw0KQEAgLTkzNCw2ICs5MzQsMzIgQEAgc3RhdGljIENPTlNU RVhQUiBjb25zdCBydnZfYXJnX3R5cGVfaW5mbyBleHRfdmNyZWF0ZV9hcmdz W10NCiAgID0ge3J2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3Ip LA0KICAgICAgcnZ2X2FyZ190eXBlX2luZm9fZW5kfTsNCisvKiBBIGxpc3Qg b2YgYXJncyBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5 cGUgKiwgc2l6ZV90KQ0KKyAqIGZ1bmN0aW9uLiAgKi8NCitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHJ2dl9hcmdfdHlwZV9pbmZvIHNjYWxhcl9jb25zdF9w dHJfc2l6ZV9hcmdzW10NCisgID0ge3J2dl9hcmdfdHlwZV9pbmZvIChSVlZf QkFTRV9zY2FsYXJfY29uc3RfcHRyKSwNCisgICAgIHJ2dl9hcmdfdHlwZV9p bmZvIChSVlZfQkFTRV9zaXplKSwgcnZ2X2FyZ190eXBlX2luZm9fZW5kfTsN CisNCisvKiBBIGxpc3Qgb2YgYXJncyBmb3IgdmVjdG9yX3R5cGUgZnVuYyAo Y29uc3Qgc2NhbGFyX3R5cGUgKiwgZWV3OF9pbmRleF90eXBlKQ0KKyAqIGZ1 bmN0aW9uLiAgKi8NCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9hcmdf dHlwZV9pbmZvIHNjYWxhcl9jb25zdF9wdHJfaW5kZXhfYXJnc1tdDQorICA9 IHtydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyX2NvbnN0X3B0 ciksDQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdW5zaWdu ZWRfdmVjdG9yKSwgcnZ2X2FyZ190eXBlX2luZm9fZW5kfTsNCisNCisvKiBB IGxpc3Qgb2YgYXJncyBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBl ZXc4X2luZGV4X3R5cGUsIHZlY3Rvcl90eXBlKQ0KKyAqIGZ1bmN0aW9uLiAg Ki8NCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9hcmdfdHlwZV9pbmZv IHNjYWxhcl9wdHJfaW5kZXhfYXJnc1tdDQorICA9IHtydnZfYXJnX3R5cGVf aW5mbyAoUlZWX0JBU0Vfc2NhbGFyX3B0ciksDQorICAgICBydnZfYXJnX3R5 cGVfaW5mbyAoUlZWX0JBU0VfdW5zaWduZWRfdmVjdG9yKSwNCisgICAgIHJ2 dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCBydnZfYXJnX3R5 cGVfaW5mb19lbmR9Ow0KKw0KKy8qIEEgbGlzdCBvZiBhcmdzIGZvciB2b2lk IGZ1bmMgKHNjYWxhcl90eXBlICosIHNpemVfdCwgdmVjdG9yX3R5cGUpDQor ICogZnVuY3Rpb24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2 X2FyZ190eXBlX2luZm8gc2NhbGFyX3B0cl9zaXplX2FyZ3NbXQ0KKyAgPSB7 cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3NjYWxhcl9wdHIpLA0KKyAg ICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3NpemUpLCBydnZfYXJn X3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwNCisgICAgIHJ2dl9hcmdf dHlwZV9pbmZvX2VuZH07DQorDQovKiBBIGxpc3Qgb2Ygbm9uZSBwcmVkcyB0 aGF0IHdpbGwgYmUgcmVnaXN0ZXJlZCBmb3IgaW50cmluc2ljIGZ1bmN0aW9u cy4gICovDQpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHByZWRpY2F0aW9uX3R5 cGVfaW5kZXggbm9uZV9wcmVkc1tdDQogICA9IHtQUkVEX1RZUEVfbm9uZSwg TlVNX1BSRURfVFlQRVN9Ow0KQEAgLTE0NTUsNiArMTQ4MSwxNCBAQCBzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1X3NoaWZ0X3Z2dl9v cHMNCiAgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3Ip LCAvKiBSZXR1cm4gdHlwZSAqLw0KICAgICAgc2hpZnRfdnZfYXJncyAvKiBB cmdzICovfTsNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZv ciBzY2FsYXJfdHlwZSBmdW5jICh2ZWN0b3JfdHlwZSwgc2l6ZV90KQ0KKyAq IGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gKi8NCitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHJ2dl9vcF9pbmZvIGl1X3hfc191X29wcw0KKyAgPSB7aXVfb3Bz LCAgICAgICAgICAvKiBUeXBlcyAqLw0KKyAgICAgT1BfVFlQRV92eCwgICAg ICAgIC8qIFN1ZmZpeCAqLw0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJW Vl9CQVNFX3NjYWxhciksIC8qIFJldHVybiB0eXBlICovDQorICAgICB2X3Np emVfYXJncyAvKiBBcmdzICovfTsNCisNCi8qIEEgc3RhdGljIG9wZXJhbmQg aW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKHZlY3Rvcl90eXBl LCBzaXplX3QpDQogICogZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAqLw0Kc3Rh dGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpdV9zaGlmdF92dnhf b3BzDQpAQCAtMjYzOCw2ICsyNjcyLDM4IEBAIHN0YXRpYyBDT05TVEVYUFIg Y29uc3QgcnZ2X29wX2luZm8gYWxsX3ZfdmNyZWF0ZV9sbXVsNF94Ml9vcHMN CiAgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92bG11bF9leHRf eDIpLCAvKiBSZXR1cm4gdHlwZSAqLw0KICAgICAgZXh0X3ZjcmVhdGVfYXJn cyAvKiBBcmdzICovfTsNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0 aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAq LA0KKyAqIHNpemVfdCkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAgKi8NCitz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92X3NjYWxh cl9jb25zdF9wdHJfc2l6ZV9vcHMNCisgID0ge2FsbF9vcHMsICAgLyogVHlw ZXMgICovDQorICAgICBPUF9UWVBFX3YsICAgLyogU3VmZml4ICAqLw0KKyAg ICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJl dHVybiB0eXBlICAqLw0KKyAgICAgc2NhbGFyX2NvbnN0X3B0cl9zaXplX2Fy Z3MgLyogQXJncyAqL307DQorDQorLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZv cm1hdGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBzaXplX3Qs DQorICogdmVjdG9yX3R5cGUpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gICov DQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBhbGxfdl9z Y2FsYXJfcHRyX3NpemVfb3BzDQorICA9IHthbGxfb3BzLCAvKiBUeXBlcyAg Ki8NCisgICAgIE9QX1RZUEVfdiwgLyogU3VmZml4ICAqLw0KKyAgICAgcnZ2 X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZvaWQpLCAvKiBSZXR1cm4gdHlw ZSAgKi8NCisgICAgIHNjYWxhcl9wdHJfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99 Ow0KKw0KKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZl Y3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICosDQorICogaW5k ZXhfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAgKi8NCitzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92X3NjYWxhcl9jb25z dF9wdHJfaW5kZXhfb3BzDQorICA9IHthbGxfb3BzLCAgIC8qIFR5cGVzICAq Lw0KKyAgICAgT1BfVFlQRV92LCAgIC8qIFN1ZmZpeCAgKi8NCisgICAgIHJ2 dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4g dHlwZSAgKi8NCisgICAgIHNjYWxhcl9jb25zdF9wdHJfaW5kZXhfYXJncyAv KiBBcmdzICovfTsNCisNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0 aW9uIGZvciB2b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIGluZGV4X3R5cGUs DQorICogdmVjdG9yX3R5cGUpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gICov DQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBhbGxfdl9z Y2FsYXJfcHRyX2luZGV4X29wcw0KKyAgPSB7YWxsX29wcywgLyogVHlwZXMg ICovDQorICAgICBPUF9UWVBFX3YsIC8qIFN1ZmZpeCAgKi8NCisgICAgIHJ2 dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92b2lkKSwgLyogUmV0dXJuIHR5 cGUgICovDQorICAgICBzY2FsYXJfcHRyX2luZGV4X2FyZ3MgLyogQXJncyAq L307DQorDQovKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2 ZWN0b3JfdHlwZSBmdW5jICh2ZWN0b3JfdHlwZSkuDQogICAgU29tZSBpbnMg anVzdCBzdXBwb3J0cyBTRVc9MzIsIHN1Y2ggYXMgY3J5cHRvIHZlY3RvbCBa dmtnIGV4dGVuc2lvbi4NCiAgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24uICAq Lw0KQEAgLTI4MTYsNiArMjg4MiwxMCBAQCBzdGF0aWMgZnVuY3Rpb25fZ3Jv dXBfaW5mbyBmdW5jdGlvbl9ncm91cHNbXSA9IHsNCiNkZWZpbmUgREVGX1JW Vl9GVU5DVElPTihOQU1FLCBTSEFQRSwgUFJFRFMsIE9QU19JTkZPKSAgICAg ICAgICAgICAgICAgICAgICAgICBcDQogICB7I05BTUUsICZiYXNlczo6TkFN RSwgJnNoYXBlczo6U0hBUEUsIFBSRURTLCBPUFNfSU5GTywgUkVRVUlSRURf RVhURU5TSU9OU30sDQojaW5jbHVkZSAicmlzY3YtdmVjdG9yLWJ1aWx0aW5z LWZ1bmN0aW9ucy5kZWYiDQorI3VuZGVmIERFRl9SVlZfRlVOQ1RJT04NCisj ZGVmaW5lIERFRl9SVlZfRlVOQ1RJT04oTkFNRSwgU0hBUEUsIFBSRURTLCBP UFNfSU5GTykgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgeyNOQU1F LCAmYmFzZXM6Ok5BTUUsICZzaGFwZXM6OlNIQVBFLCBQUkVEUywgT1BTX0lO Rk8sIFJFUVVJUkVEX0VYVEVOU0lPTlN9LA0KKyNpbmNsdWRlICJ0aGVhZC12 ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZiINCn07DQovKiBUaGUgUlZW IHR5cGVzLCB3aXRoIHRoZWlyIGJ1aWx0LWluDQpkaWZmIC0tZ2l0IGEvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaCBiL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmgNCmluZGV4IDU0 Yzg4MjRmZjkyLi4yMmZlZDYwYjRjMyAxMDA2NDQNCi0tLSBhL2djYy9jb25m aWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmgNCisrKyBiL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmgNCkBAIC0xMjMs NiArMTIzLDcgQEAgZW51bSByZXF1aXJlZF9leHQNCiAgIFpWS05IQl9FWFQs ICAvKiBDcnlwdG8gdmVjdG9yIFp2a25oYiBzdWItZXh0ICovDQogICBaVktT RURfRVhULCAgLyogQ3J5cHRvIHZlY3RvciBadmtzZWQgc3ViLWV4dCAqLw0K ICAgWlZLU0hfRVhULCAgIC8qIENyeXB0byB2ZWN0b3IgWnZrc2ggc3ViLWV4 dCAqLw0KKyAgWFRIRUFEVkVDVE9SX0VYVCwgICAvKiBYVGhlYWRWZWN0b3Ig ZXh0ZW5zaW9uICovDQp9Ow0KLyogRW51bWVyYXRlcyB0aGUgUlZWIG9wZXJh bmQgdHlwZXMuICAqLw0KQEAgLTI1Miw2ICsyNTMsOCBAQCBzdHJ1Y3QgZnVu Y3Rpb25fZ3JvdXBfaW5mbw0KICAgICAgICAgcmV0dXJuIFRBUkdFVF9aVktT RUQ7DQogICAgICAgY2FzZSBaVktTSF9FWFQ6DQogICAgICAgICByZXR1cm4g VEFSR0VUX1pWS1NIOw0KKyAgICAgIGNhc2UgWFRIRUFEVkVDVE9SX0VYVDoN CisgcmV0dXJuIFRBUkdFVF9YVEhFQURWRUNUT1I7DQogICAgICAgZGVmYXVs dDoNCiAgICAgICAgIGdjY191bnJlYWNoYWJsZSAoKTsNCiAgICAgfQ0KZGlm ZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvdC1yaXNjdiBiL2djYy9jb25m aWcvcmlzY3YvdC1yaXNjdg0KaW5kZXggMzJkZTZiODUxYzEuLjM4NDk0MzIw ZDhiIDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi90LXJpc2N2DQor KysgYi9nY2MvY29uZmlnL3Jpc2N2L3QtcmlzY3YNCkBAIC0xLDYgKzEsNyBA QA0KUklTQ1ZfQlVJTFRJTlNfSCA9ICQoc3JjZGlyKS9jb25maWcvcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmggXA0KICAgJChzcmNkaXIpL2NvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuZGVmIFwNCiAgICQoc3Jj ZGlyKS9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0 aW9ucy5kZWYgXA0KKyAgICAgICAkKHNyY2RpcikvY29uZmlnL3Jpc2N2L3Ro ZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIFwNCiAgIHJpc2N2 LXZlY3Rvci10eXBlLWluZGV4ZXIuZ2VuLmRlZg0KcmlzY3YtYnVpbHRpbnMu bzogJChzcmNkaXIpL2NvbmZpZy9yaXNjdi9yaXNjdi1idWlsdGlucy5jYyAk KENPTkZJR19IKSBcDQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi90 aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZiBiL2djYy9jb25m aWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYN Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uZmQz YmEyOWJhZTkNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy9jb25maWcvcmlz Y3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYNCkBAIC0w LDAgKzEsMzkgQEANCisjaWZuZGVmIERFRl9SVlZfRlVOQ1RJT04NCisjZGVm aW5lIERFRl9SVlZfRlVOQ1RJT04oTkFNRSwgU0hBUEUsIFBSRURTLCBPUFNf SU5GTykNCisjZW5kaWYNCisNCisjZGVmaW5lIFJFUVVJUkVEX0VYVEVOU0lP TlMgWFRIRUFEVkVDVE9SX0VYVA0KK0RFRl9SVlZfRlVOQ1RJT04gKHZsYiwg dGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJf Y29uc3RfcHRyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bGgsIHRoX2xv YWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0 X3B0cl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmx3LCB0aF9sb2Fkc3Rv cmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJf b3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZsYnUsIHRoX2xvYWRzdG9yZV93 aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMp DQorREVGX1JWVl9GVU5DVElPTiAodmxodSwgdGhfbG9hZHN0b3JlX3dpZHRo LCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX29wcykNCitE RUZfUlZWX0ZVTkNUSU9OICh2bHd1LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1 bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQ0KK0RFRl9S VlZfRlVOQ1RJT04gKHZzYiwgdGhfbG9hZHN0b3JlX3dpZHRoLCBub25lX21f cHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJ T04gKHZzaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFs bF92X3NjYWxhcl9wdHJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZzdywg dGhfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFsbF92X3NjYWxh cl9wdHJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZsc2IsIHRoX2xvYWRz dG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0 cl9zaXplX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bHNoLCB0aF9sb2Fk c3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9w dHJfc2l6ZV9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmxzdywgdGhfbG9h ZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3Rf cHRyX3NpemVfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZsc2J1LCB0aF9s b2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25z dF9wdHJfc2l6ZV9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmxzaHUsIHRo X2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2Nv bnN0X3B0cl9zaXplX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bHN3dSwg dGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJf Y29uc3RfcHRyX3NpemVfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZzc2Is IHRoX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2Fs YXJfcHRyX3NpemVfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZzc2gsIHRo X2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJf cHRyX3NpemVfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZzc3csIHRoX2xv YWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRy X3NpemVfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZseGIsIHRoX2luZGV4 ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJf Y29uc3RfcHRyX2luZGV4X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bHho LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxs X3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9vcHMpDQorREVGX1JWVl9GVU5D VElPTiAodmx4dywgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxf cHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQ0KK0RF Rl9SVlZfRlVOQ1RJT04gKHZseGJ1LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93 aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRl eF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmx4aHUsIHRoX2luZGV4ZWRf bG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29u c3RfcHRyX2luZGV4X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bHh3dSwg dGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92 X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJ T04gKHZzeGIsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBub25lX21f cHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfaW5kZXhfb3BzKQ0KK0RFRl9SVlZf RlVOQ1RJT04gKHZzeGgsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBu b25lX21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfaW5kZXhfb3BzKQ0KK0RF Rl9SVlZfRlVOQ1RJT04gKHZzeHcsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dp ZHRoLCBub25lX21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfaW5kZXhfb3Bz KQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZzdXhiLCB0aF9pbmRleGVkX2xvYWRz dG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2lu ZGV4X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2c3V4aCwgdGhfaW5kZXhl ZF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFy X3B0cl9pbmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnN1eHcsIHRo X2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFsbF92 X3NjYWxhcl9wdHJfaW5kZXhfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZl eHRfeF92LCB0aF9leHRyYWN0LCBub25lX3ByZWRzLCBpdV94X3NfdV9vcHMp DQorI3VuZGVmIFJFUVVJUkVEX0VYVEVOU0lPTlMNCisNCisjdW5kZWYgREVG X1JWVl9GVU5DVElPTg0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3Yv dGhlYWQtdmVjdG9yLm1kIGIvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0 b3IubWQNCmluZGV4IDY5NmI4MTUyNTJkLi41ZmU5YmEwOGM0ZSAxMDA2NDQN Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1kDQorKysg Yi9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZA0KQEAgLTEsNyAr MSw5NSBAQA0KKGRlZmluZV9jX2VudW0gInVuc3BlYyIgWw0KKyAgVU5TUEVD X1RIX1ZMQg0KKyAgVU5TUEVDX1RIX1ZMQlUNCisgIFVOU1BFQ19USF9WTEgN CisgIFVOU1BFQ19USF9WTEhVDQorICBVTlNQRUNfVEhfVkxXDQorICBVTlNQ RUNfVEhfVkxXVQ0KKw0KKyAgVU5TUEVDX1RIX1ZMU0INCisgIFVOU1BFQ19U SF9WTFNCVQ0KKyAgVU5TUEVDX1RIX1ZMU0gNCisgIFVOU1BFQ19USF9WTFNI VQ0KKyAgVU5TUEVDX1RIX1ZMU1cNCisgIFVOU1BFQ19USF9WTFNXVQ0KKw0K KyAgVU5TUEVDX1RIX1ZMWEINCisgIFVOU1BFQ19USF9WTFhCVQ0KKyAgVU5T UEVDX1RIX1ZMWEgNCisgIFVOU1BFQ19USF9WTFhIVQ0KKyAgVU5TUEVDX1RI X1ZMWFcNCisgIFVOU1BFQ19USF9WTFhXVQ0KKw0KKyAgVU5TUEVDX1RIX1ZT VVhCDQorICBVTlNQRUNfVEhfVlNVWEgNCisgIFVOU1BFQ19USF9WU1VYVw0K Kw0KICAgVU5TUEVDX1RIX1ZXTERTVA0KXSkNCisoZGVmaW5lX2ludF9pdGVy YXRvciBVTlNQRUNfVEhfVkxNRU1fT1AgWw0KKyAgVU5TUEVDX1RIX1ZMQiBV TlNQRUNfVEhfVkxCVQ0KKyAgVU5TUEVDX1RIX1ZMSCBVTlNQRUNfVEhfVkxI VQ0KKyAgVU5TUEVDX1RIX1ZMVyBVTlNQRUNfVEhfVkxXVQ0KK10pDQorDQor KGRlZmluZV9pbnRfaXRlcmF0b3IgVU5TUEVDX1RIX1ZMU01FTV9PUCBbDQor ICBVTlNQRUNfVEhfVkxTQiBVTlNQRUNfVEhfVkxTQlUNCisgIFVOU1BFQ19U SF9WTFNIIFVOU1BFQ19USF9WTFNIVQ0KKyAgVU5TUEVDX1RIX1ZMU1cgVU5T UEVDX1RIX1ZMU1dVDQorXSkNCisNCisoZGVmaW5lX2ludF9pdGVyYXRvciBV TlNQRUNfVEhfVkxYTUVNX09QIFsNCisgIFVOU1BFQ19USF9WTFhCIFVOU1BF Q19USF9WTFhCVQ0KKyAgVU5TUEVDX1RIX1ZMWEggVU5TUEVDX1RIX1ZMWEhV DQorICBVTlNQRUNfVEhfVkxYVyBVTlNQRUNfVEhfVkxYV1UNCitdKQ0KKw0K KyhkZWZpbmVfaW50X2F0dHIgdmxtZW1fb3BfYXR0ciBbDQorICAoVU5TUEVD X1RIX1ZMQiAiYiIpIChVTlNQRUNfVEhfVkxCVSAiYnUiKQ0KKyAgKFVOU1BF Q19USF9WTEggImgiKSAoVU5TUEVDX1RIX1ZMSFUgImh1IikNCisgIChVTlNQ RUNfVEhfVkxXICJ3IikgKFVOU1BFQ19USF9WTFdVICJ3dSIpDQorICAoVU5T UEVDX1RIX1ZMU0IgImIiKSAoVU5TUEVDX1RIX1ZMU0JVICJidSIpDQorICAo VU5TUEVDX1RIX1ZMU0ggImgiKSAoVU5TUEVDX1RIX1ZMU0hVICJodSIpDQor ICAoVU5TUEVDX1RIX1ZMU1cgInciKSAoVU5TUEVDX1RIX1ZMU1dVICJ3dSIp DQorICAoVU5TUEVDX1RIX1ZMWEIgImIiKSAoVU5TUEVDX1RIX1ZMWEJVICJi dSIpDQorICAoVU5TUEVDX1RIX1ZMWEggImgiKSAoVU5TUEVDX1RIX1ZMWEhV ICJodSIpDQorICAoVU5TUEVDX1RIX1ZMWFcgInciKSAoVU5TUEVDX1RIX1ZM WFdVICJ3dSIpDQorICAoVU5TUEVDX1RIX1ZTVVhCICJiIikNCisgIChVTlNQ RUNfVEhfVlNVWEggImgiKQ0KKyAgKFVOU1BFQ19USF9WU1VYVyAidyIpDQor XSkNCisNCisoZGVmaW5lX2ludF9hdHRyIHZsbWVtX29yZGVyX2F0dHIgWw0K KyAgKFVOU1BFQ19USF9WTFhCICIiKQ0KKyAgKFVOU1BFQ19USF9WTFhIICIi KQ0KKyAgKFVOU1BFQ19USF9WTFhXICIiKQ0KKyAgKFVOU1BFQ19USF9WU1VY QiAidSIpDQorICAoVU5TUEVDX1RIX1ZTVVhIICJ1IikNCisgIChVTlNQRUNf VEhfVlNVWFcgInUiKQ0KK10pDQorDQorKGRlZmluZV9pbnRfaXRlcmF0b3Ig VU5TUEVDX1RIX1ZTTUVNX09QIFsNCisgIFVOU1BFQ19USF9WTEINCisgIFVO U1BFQ19USF9WTEgNCisgIFVOU1BFQ19USF9WTFcNCitdKQ0KKw0KKyhkZWZp bmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WU1NNRU1fT1AgWw0KKyAgVU5T UEVDX1RIX1ZMU0INCisgIFVOU1BFQ19USF9WTFNIDQorICBVTlNQRUNfVEhf VkxTVw0KK10pDQorDQorKGRlZmluZV9pbnRfaXRlcmF0b3IgVU5TUEVDX1RI X1ZTWE1FTV9PUCBbDQorICBVTlNQRUNfVEhfVkxYQg0KKyAgVU5TUEVDX1RI X1ZMWEgNCisgIFVOU1BFQ19USF9WTFhXDQorICBVTlNQRUNfVEhfVlNVWEIN CisgIFVOU1BFQ19USF9WU1VYSA0KKyAgVU5TUEVDX1RIX1ZTVVhXDQorXSkN CisNCihkZWZpbmVfbW9kZV9pdGVyYXRvciBWX1ZMU19WVCBbViBWTFMgVlRd KQ0KKGRlZmluZV9tb2RlX2l0ZXJhdG9yIFZfVkJfVkxTX1ZUIFtWIFZCIFZM UyBWVF0pDQpAQCAtMTAwLDMgKzE4OCwxNjUgQEANCiAgIH0NCiAgIFsoc2V0 X2F0dHIgInR5cGUiICJ2bGRtLHZzdG0sdm1hbHUsdm1hbHUsdm1hbHUiKQ0K ICAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkNCisNCisoZGVmaW5l X2V4cGFuZCAiQHByZWRfbW92X3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+ Ig0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9WTFMgMCAibm9uaW1tZWRp YXRlX29wZXJhbmQiKQ0KKyAgICAoaWZfdGhlbl9lbHNlOlZfVkxTDQorICAg ICAgKHVuc3BlYzo8Vk0+DQorIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEgInZl Y3Rvcl9tYXNrX29wZXJhbmQiKQ0KKyAobWF0Y2hfb3BlcmFuZCA0ICJ2ZWN0 b3JfbGVuZ3RoX29wZXJhbmQiKQ0KKyAobWF0Y2hfb3BlcmFuZCA1ICJjb25z dF9pbnRfb3BlcmFuZCIpDQorIChtYXRjaF9vcGVyYW5kIDYgImNvbnN0X2lu dF9vcGVyYW5kIikNCisgKG1hdGNoX29wZXJhbmQgNyAiY29uc3RfaW50X29w ZXJhbmQiKQ0KKyAocmVnOlNJIFZMX1JFR05VTSkNCisgKHJlZzpTSSBWVFlQ RV9SRUdOVU0pXSBVTlNQRUNfVEhfVkxNRU1fT1ApDQorICAgICAgKG1hdGNo X29wZXJhbmQ6Vl9WTFMgMyAidmVjdG9yX21vdmVfb3BlcmFuZCIpDQorICAg ICAgKG1hdGNoX29wZXJhbmQ6Vl9WTFMgMiAidmVjdG9yX21lcmdlX29wZXJh bmQiKSkpXQ0KKyAgIlRBUkdFVF9YVEhFQURWRUNUT1IiDQorICB7fSkNCisN CisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqcHJlZF9tb3Zfd2lkdGg8dmxt ZW1fb3BfYXR0cj48bW9kZT4iDQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpW X1ZMUyAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgICAgICI9dnIsICAgIHZy LCAgICB2ZCwgICAgIG0sICAgIHZyLCAgICB2ciIpDQorICAgIChpZl90aGVu X2Vsc2U6Vl9WTFMNCisgICAgICAodW5zcGVjOjxWTT4NCisgWyhtYXRjaF9v cGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIgICAgInZtV2Mx LCAgIFdjMSwgICAgdm0sIHZtV2MxLCAgIFdjMSwgICBXYzEiKQ0KKyAobWF0 Y2hfb3BlcmFuZCA0ICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQiICAgICAgICIg ICBySywgICAgckssICAgIHJLLCAgICBySywgICAgckssICAgIHJLIikNCisg KG1hdGNoX29wZXJhbmQgNSAiY29uc3RfaW50X29wZXJhbmQiICAgIiAgICBp LCAgICAgaSwgICAgIGksICAgICBpLCAgICAgaSwgICAgIGkiKQ0KKyAobWF0 Y2hfb3BlcmFuZCA2ICJjb25zdF9pbnRfb3BlcmFuZCIgICAiICAgIGksICAg ICBpLCAgICAgaSwgICAgIGksICAgICBpLCAgICAgaSIpDQorIChtYXRjaF9v cGVyYW5kIDcgImNvbnN0X2ludF9vcGVyYW5kIiAgICIgICAgaSwgICAgIGks ICAgICBpLCAgICAgaSwgICAgIGksICAgICBpIikNCisgKHJlZzpTSSBWTF9S RUdOVU0pDQorIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZM TUVNX09QKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kOlZfVkxTIDMgInJlZ19v cl9tZW1fb3BlcmFuZCIgICAgICAgIiAgICBtLCAgICAgbSwgICAgIG0sICAg IHZyLCAgICB2ciwgICAgdnIiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kOlZf VkxTIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIiAgICAgIiAgICAwLCAgICB2 dSwgICAgdnUsICAgIHZ1LCAgICB2dSwgICAgIDAiKSkpXQ0KKyAgIihUQVJH RVRfWFRIRUFEVkVDVE9SDQorICAgICYmIChyZWdpc3Rlcl9vcGVyYW5kIChv cGVyYW5kc1swXSwgPE1PREU+bW9kZSkNCisgfHwgcmVnaXN0ZXJfb3BlcmFu ZCAob3BlcmFuZHNbM10sIDxNT0RFPm1vZGUpKSkiDQorICAiQA0KKyAgIHZs PHZsbWVtX29wX2F0dHI+LnZcdCUwLCUzJXAxDQorICAgdmw8dmxtZW1fb3Bf YXR0cj4udlx0JTAsJTMNCisgICB2bDx2bG1lbV9vcF9hdHRyPi52XHQlMCwl MywlMS50DQorICAgdnM8dmxtZW1fb3BfYXR0cj4udlx0JTMsJTAlcDENCisg ICB2bXYudi52XHQlMCwlMw0KKyAgIHZtdi52LnZcdCUwLCUzIg0KKyAgIiYm IHJpc2N2X3ZlY3Rvcjo6d2hvbGVfcmVnX3RvX3JlZ19tb3ZlX3AgKG9wZXJh bmRzLCA8TU9ERT5tb2RlLCA3KSINCisgIFsoc2V0IChtYXRjaF9kdXAgMCkg KG1hdGNoX2R1cCAzKSldDQorICAiIg0KKyAgWyhzZXRfYXR0ciAidHlwZSIg InZsZGUsdmxkZSx2bGRlLHZzdGUsdmltb3Ysdmltb3YiKQ0KKyAgIChzZXRf YXR0ciAibW9kZSIgIjxNT0RFPiIpXSkNCisNCisoZGVmaW5lX2luc24gIkBw cmVkX3N0b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+Ig0KKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAibWVtb3J5X29wZXJhbmQiICIrbSIp DQorIChpZl90aGVuX2Vsc2U6VkkNCisgICAodW5zcGVjOjxWTT4NCisgICAg IFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29wZXJhbmQi ICJ2bVdjMSIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgMyAidmVjdG9yX2xl bmd0aF9vcGVyYW5kIiAgICAiICAgcksiKQ0KKyAgICAgIChtYXRjaF9vcGVy YW5kIDQgImNvbnN0X2ludF9vcGVyYW5kIiAiICAgIGkiKQ0KKyAgICAgIChy ZWc6U0kgVkxfUkVHTlVNKQ0KKyAgICAgIChyZWc6U0kgVlRZUEVfUkVHTlVN KV0gVU5TUEVDX1RIX1ZTTUVNX09QKQ0KKyAgIChtYXRjaF9vcGVyYW5kOlZJ IDIgInJlZ2lzdGVyX29wZXJhbmQiICIgICAgdnIiKQ0KKyAgIChtYXRjaF9k dXAgMCkpKV0NCisgICJUQVJHRVRfWFRIRUFEVkVDVE9SIg0KKyAgInZzPHZs bWVtX29wX2F0dHI+LnZcdCUyLCUwJXAxIg0KKyAgWyhzZXRfYXR0ciAidHlw ZSIgInZzdGUiKQ0KKyAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpDQor ICAgKHNldCAoYXR0ciAiYXZsX3R5cGVfaWR4IikgKGNvbnN0X2ludCA0KSkN CisgICAoc2V0X2F0dHIgInZsX29wX2lkeCIgIjMiKV0pDQorDQorKGRlZmlu ZV9pbnNuICJAcHJlZF9zdHJpZGVkX2xvYWRfd2lkdGg8dmxtZW1fb3BfYXR0 cj48bW9kZT4iDQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWSSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAgICAgICAiPXZyLCAgICB2ciwgICAgdmQiKQ0KKyAo aWZfdGhlbl9lbHNlOlZJDQorICAgKHVuc3BlYzo8Vk0+DQorICAgICBbKG1h dGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAidm1X YzEsICAgV2MxLCAgICB2bSIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNSAi dmVjdG9yX2xlbmd0aF9vcGVyYW5kIiAgICAiICAgckssICAgIHJLLCAgICBy SyIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNiAiY29uc3RfaW50X29wZXJh bmQiICIgICAgaSwgICAgIGksICAgICBpIikNCisgICAgICAobWF0Y2hfb3Bl cmFuZCA3ICJjb25zdF9pbnRfb3BlcmFuZCIgIiAgICBpLCAgICAgaSwgICAg IGkiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDggImNvbnN0X2ludF9vcGVy YW5kIiAiICAgIGksICAgICBpLCAgICAgaSIpDQorICAgICAgKHJlZzpTSSBW TF9SRUdOVU0pDQorICAgICAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQ RUNfVEhfVkxTTUVNX09QKQ0KKyAgICh1bnNwZWM6VkkNCisgICAgIFsobWF0 Y2hfb3BlcmFuZDpWSSAzICJtZW1vcnlfb3BlcmFuZCIgIiAgICBtLCAgICAg bSwgICAgIG0iKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDQgInBtb2RlX3Jl Z19vcl8wX29wZXJhbmQiICAgIiAgIHJKLCAgICBySiwgICAgckoiKV0gVU5T UEVDX1RIX1ZMU01FTV9PUCkNCisgICAobWF0Y2hfb3BlcmFuZDpWSSAyICJ2 ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIgICAgICAiICAgIDAsICAgIHZ1LCAgICB2 dSIpKSldDQorICAiVEFSR0VUX1hUSEVBRFZFQ1RPUiINCisgICJ2bHM8dmxt ZW1fb3BfYXR0cj4udlx0JTAsJTMsJXo0JXAxIg0KKyAgWyhzZXRfYXR0ciAi dHlwZSIgInZsZHMiKQ0KKyAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIp XSkNCisNCisoZGVmaW5lX2luc24gIkBwcmVkX3N0cmlkZWRfc3RvcmVfd2lk dGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iDQorICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpWSSAwICJtZW1vcnlfb3BlcmFuZCIgIittIikNCisgKGlmX3RoZW5f ZWxzZTpWSQ0KKyAgICh1bnNwZWM6PFZNPg0KKyAgICAgWyhtYXRjaF9vcGVy YW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIgInZtV2MxIikNCisg ICAgICAobWF0Y2hfb3BlcmFuZCA0ICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQi ICAgICIgICBySyIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNSAiY29uc3Rf aW50X29wZXJhbmQiICIgICAgaSIpDQorICAgICAgKHJlZzpTSSBWTF9SRUdO VU0pDQorICAgICAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVEhf VlNTTUVNX09QKQ0KKyAgICh1bnNwZWM6VkkNCisgICAgIFsobWF0Y2hfb3Bl cmFuZCAyICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5kIiAgICIgICBySiIpDQor ICAgICAgKG1hdGNoX29wZXJhbmQ6VkkgMyAicmVnaXN0ZXJfb3BlcmFuZCIg ICAgICAgIiAgIHZyIildIFVOU1BFQ19USF9WU1NNRU1fT1ApDQorICAgKG1h dGNoX2R1cCAwKSkpXQ0KKyAgIlRBUkdFVF9YVEhFQURWRUNUT1IiDQorICAi dnNzPHZsbWVtX29wX2F0dHI+LnZcdCUzLCUwLCV6MiVwMSINCisgIFsoc2V0 X2F0dHIgInR5cGUiICJ2c3RzIikNCisgICAoc2V0X2F0dHIgIm1vZGUiICI8 TU9ERT4iKQ0KKyAgIChzZXQgKGF0dHIgImF2bF90eXBlX2lkeCIpIChjb25z dF9pbnQgNSkpXSkNCisNCisoZGVmaW5lX2luc24gIkBwcmVkX2luZGV4ZWRf bG9hZF93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiINCisgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgIj12 ZCwgdnIsdmQsIHZyIikNCisgKGlmX3RoZW5fZWxzZTpWSQ0KKyAgICh1bnNw ZWM6PFZNPg0KKyAgICAgWyhtYXRjaF9vcGVyYW5kOjxWTT4gMSAidmVjdG9y X21hc2tfb3BlcmFuZCIgICIgdm0sV2MxLHZtLFdjMSIpDQorICAgICAgKG1h dGNoX29wZXJhbmQgNSAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiAgICAgIiBy SywgckssckssIHJLIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCA2ICJjb25z dF9pbnRfb3BlcmFuZCIgIiAgaSwgIGksIGksICBpIikNCisgICAgICAobWF0 Y2hfb3BlcmFuZCA3ICJjb25zdF9pbnRfb3BlcmFuZCIgIiAgaSwgIGksIGks ICBpIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCA4ICJjb25zdF9pbnRfb3Bl cmFuZCIgIiAgaSwgIGksIGksICBpIikNCisgICAgICAocmVnOlNJIFZMX1JF R05VTSkNCisgICAgICAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19U SF9WTFhNRU1fT1ApDQorICAgKHVuc3BlYzpWSQ0KKyAgICAgWyhtYXRjaF9v cGVyYW5kIDMgInBtb2RlX3JlZ19vcl8wX29wZXJhbmQiICAgICIgckosIHJK LHJKLCBySiIpDQorICAgICAgKG1lbTpCTEsgKHNjcmF0Y2gpKQ0KKyAgICAg IChtYXRjaF9vcGVyYW5kOlZJIDQgInJlZ2lzdGVyX29wZXJhbmQiICIgdnIs IHZyLHZyLCB2ciIpXSBVTlNQRUNfVEhfVkxYTUVNX09QKQ0KKyAgIChtYXRj aF9vcGVyYW5kOlZJIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIiAgICAgICAi IHZ1LCB2dSwgMCwgIDAiKSkpXQ0KKyAgIlRBUkdFVF9YVEhFQURWRUNUT1Ii DQorICAidmx4PHZsbWVtX29wX2F0dHI+LnZcdCUwLCglejMpLCU0JXAxIg0K KyAgWyhzZXRfYXR0ciAidHlwZSIgInZsZHV4IikNCisgICAoc2V0X2F0dHIg Im1vZGUiICI8TU9ERT4iKV0pDQorDQorKGRlZmluZV9pbnNuICJAcHJlZF9p bmRleGVkXzx2bG1lbV9vcmRlcl9hdHRyPnN0b3JlX3dpZHRoPHZsbWVtX29w X2F0dHI+PG1vZGU+Ig0KKyAgWyhzZXQgKG1lbTpCTEsgKHNjcmF0Y2gpKQ0K KyAodW5zcGVjOkJMSw0KKyAgIFsodW5zcGVjOjxWTT4NCisgICAgIFsobWF0 Y2hfb3BlcmFuZDo8Vk0+IDAgInZlY3Rvcl9tYXNrX29wZXJhbmQiICJ2bVdj MSIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNCAidmVjdG9yX2xlbmd0aF9v cGVyYW5kIiAgICAiICAgcksiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDUg ImNvbnN0X2ludF9vcGVyYW5kIiAiICAgIGkiKQ0KKyAgICAgIChyZWc6U0kg VkxfUkVHTlVNKQ0KKyAgICAgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5T UEVDX1RIX1ZTWE1FTV9PUCkNCisgICAgKG1hdGNoX29wZXJhbmQgMSAicG1v ZGVfcmVnX29yXzBfb3BlcmFuZCIgICAgICAiICBySiIpDQorICAgIChtYXRj aF9vcGVyYW5kOlZJIDIgInJlZ2lzdGVyX29wZXJhbmQiICIgIHZyIikNCisg ICAgKG1hdGNoX29wZXJhbmQ6VkkgMyAicmVnaXN0ZXJfb3BlcmFuZCIgICIg IHZyIildIFVOU1BFQ19USF9WU1hNRU1fT1ApKV0NCisgICJUQVJHRVRfWFRI RUFEVkVDVE9SIg0KKyAgInZzPHZsbWVtX29yZGVyX2F0dHI+eDx2bG1lbV9v cF9hdHRyPi52XHQlMywoJXoxKSwlMiVwMCINCisgIFsoc2V0X2F0dHIgInR5 cGUiICJ2c3R1eCIpDQorICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+Iild KQ0KKw0KKyhkZWZpbmVfZXhwYW5kICJAcHJlZF90aF9leHRyYWN0PG1vZGU+ Ig0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6PFZFTD4gMCAicmVnaXN0ZXJf b3BlcmFuZCIpDQorICh1bnNwZWM6PFZFTD4NCisgICBbKHZlY19zZWxlY3Q6 PFZFTD4NCisgICAgICAobWF0Y2hfb3BlcmFuZDpWX1ZMU0kgMSAicmVnaXN0 ZXJfb3BlcmFuZCIpDQorICAgICAgKHBhcmFsbGVsIFsobWF0Y2hfb3BlcmFu ZDpESSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpXSkpDQorICAgIChyZWc6 U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1ZQUkVESUNBVEUpKV0NCisgICJU QVJHRVRfWFRIRUFEVkVDVE9SIg0KK3t9KQ0KKw0KKyhkZWZpbmVfaW5zbiAi KnByZWRfdGhfZXh0cmFjdDxtb2RlPiINCisgIFsoc2V0IChtYXRjaF9vcGVy YW5kOjxWRUw+IDAgInJlZ2lzdGVyX29wZXJhbmQiICAgIj1yIikNCisgICh1 bnNwZWM6PFZFTD4NCisgICAgWyh2ZWNfc2VsZWN0OjxWRUw+DQorICAgICAg IChtYXRjaF9vcGVyYW5kOlZfVkxTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi dnIiKQ0KKyAgICAgICAocGFyYWxsZWwgWyhtYXRjaF9vcGVyYW5kOkRJIDIg InJlZ2lzdGVyX29wZXJhbmQiICJyIildKSkNCisgICAgIChyZWc6U0kgVlRZ UEVfUkVHTlVNKV0gVU5TUEVDX1ZQUkVESUNBVEUpKV0NCisgICJUQVJHRVRf WFRIRUFEVkVDVE9SIg0KKyAgInZleHQueC52XHQlMCwlMSwlMiINCisgIFso c2V0X2F0dHIgInR5cGUiICJ2aW1vdnZ4IikNCisgICAoc2V0X2F0dHIgIm1v ZGUiICI8TU9ERT4iKV0pDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxiLXZzYi5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0 b3IvdmxiLXZzYi5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMDAuLjNjMTJjMTI0NTk3DQotLS0gL2Rldi9udWxsDQorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rv ci92bGItdnNiLmMNCkBAIC0wLDAgKzEsNjggQEANCisvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3h0 aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovDQorLyogeyBkZy1m aW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLw0K KyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCINCisNCisvKg0KKyoqIGYx Og0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1hDQorKiog dGgudmxiXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmxi XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmFkZFwudnZc dHZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rDQorKiogdGgudmFkZFwu dnZcdHZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rDQorKiogdGgudnNi XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2 b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCkNCit7DQorICAgIHZpbnQz Mm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTEgKGluLCA0KTsNCisg ICAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTFfdHUg KHYsIGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFk ZF92dl9pMzJtMSAodjIsIHYyLCA0KTsNCisgICAgdmludDMybTFfdCB2NCA9 IF9fcmlzY3ZfdmFkZF92dl9pMzJtMV90dSAodjMsIHYyLCB2MiwgNCk7DQor ICAgIF9fcmlzY3ZfdGhfdnNiX3ZfaTMybTEgKG91dCwgdjQsIDQpOw0KK30N CisNCisvKg0KKyoqIGYyOg0KKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6 ZXJvLGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpDQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdGEs bWENCisqKiB0aC52bGIudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50 DQorKiogdGgudmFkZFwudnZcdHZbMC05XSssXHMqdlswLTldKyxccyp2WzAt OV0rDQorKiogdGgudmFkZFwudnZcdHZbMS05XVswLTldPyxccyp2WzAtOV0r LFxzKnZbMC05XSssXHMqdjAudA0KKyoqIHRoLnZzYi52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYyICh2b2lkICog aW4sIHZvaWQgKm91dCkNCit7DQorICAgIHZib29sMzJfdCBtYXNrID0gKih2 Ym9vbDMyX3QqKWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9y eSIpOw0KKyAgICB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYl92X2kz Mm0xIChpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3Ro X3ZsYl92X2kzMm0xX20gKG1hc2ssIGluLCA0KTsNCisgICAgdmludDMybTFf dCB2MyA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMSAodjIsIHYyLCA0KTsNCisg ICAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMV9tICht YXNrLCB2MywgdjMsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3ZzYl92X2kzMm0x IChvdXQsIHY0LCA0KTsNCit9DQorDQorLyoNCisqKiBmMzoNCisqKiB0aC52 c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWENCisqKiB0aC52 bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZzZXRpdmxp XHR6ZXJvLDQsZTMyLG0xLHR1LG11DQorKiogdGgudmxiXC52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpDQorKiogdGgudmxiLnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCksdjAudA0KKyoqIHRoLnZhZGRcLnZ2XHR2WzAtOV0rLFxzKnZb MC05XSssXHMqdlswLTldKw0KKyoqIHRoLnZhZGRcLnZ2XHR2WzEtOV1bMC05 XT8sXHMqdlswLTldKyxccyp2WzAtOV0rLFxzKnYwLnQNCisqKiB0aC52c2Iu dlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9p ZCBmMyAodm9pZCAqIGluLCB2b2lkICpvdXQpDQorew0KKyAgICB2Ym9vbDMy X3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsNCisgICAgYXNtIHZvbGF0aWxl ICgiIjo6OiJtZW1vcnkiKTsNCisgICAgdmludDMybTFfdCB2ID0gX19yaXNj dl90aF92bGJfdl9pMzJtMSAoaW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYy ID0gX19yaXNjdl90aF92bGJfdl9pMzJtMV90dW11IChtYXNrLCB2LCBpbiwg NCk7DQorICAgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMy bTEgKHYyLCB2MiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2 X3ZhZGRfdnZfaTMybTFfdHVtdSAobWFzaywgdjMsIHYyLCB2MiwgNCk7DQor ICAgIF9fcmlzY3ZfdGhfdnNiX3ZfaTMybTEgKG91dCwgdjQsIDQpOw0KK30N CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2IuYw0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4zMGJl ZjM2OTM3NQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2IuYw0K QEAgLTAsMCArMSw2OCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQor LyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1t YWJpPWlscDMyZCAtTzMiIH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgY2hlY2st ZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovDQorI2luY2x1ZGUgInJp c2N2X3RoX3ZlY3Rvci5oIg0KKw0KKy8qDQorKiogZjE6DQorKiogdGgudnNl dGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWENCisqKiB0aC52bGJ1XC52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmxidVwudlx0dlswLTld KywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxz KnZbMC05XSssXHMqLTE2DQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMq dlswLTldKyxccyotMTYNCisqKiB0aC52c2JcLnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjEgKHZvaWQgKiBpbiwg dm9pZCAqb3V0LCB1aW50MzJfdCB4KQ0KK3sNCisgICAgdnVpbnQzMm0xX3Qg diA9IF9fcmlzY3ZfdGhfdmxidV92X3UzMm0xIChpbiwgNCk7DQorICAgIHZ1 aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGJ1X3ZfdTMybTFfdHUgKHYs IGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRf dnhfdTMybTEgKHYyLCAtMTYsIDQpOw0KKyAgICB2dWludDMybTFfdCB2NCA9 IF9fcmlzY3ZfdmFkZF92eF91MzJtMV90dSAodjMsIHYyLCAtMTYsIDQpOw0K KyAgICBfX3Jpc2N2X3RoX3ZzYl92X3UzMm0xIChvdXQsIHY0LCA0KTsNCit9 DQorDQorLyoNCisqKiBmMjoNCisqKiB0aC52c2V0dmxpXHRbYS14MC05XSss emVybyxlOCxtZjQsdGEsbWENCisqKiB0aC52bG0udlx0dlswLTldKywwXChb YS14MC05XStcKQ0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRh LG1hDQorKiogdGgudmxidS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYw LnQNCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0x Ng0KKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxc cyotMTYsXHMqdjAudA0KKyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYyICh2b2lkICogaW4sIHZv aWQgKm91dCwgdWludDMyX3QgeCkNCit7DQorICAgIHZib29sMzJfdCBtYXNr ID0gKih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6 Im1lbW9yeSIpOw0KKyAgICB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92 bGJ1X3ZfdTMybTEgKGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjIgPSBf X3Jpc2N2X3RoX3ZsYnVfdl91MzJtMV9tIChtYXNrLCBpbiwgNCk7DQorICAg IHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2Miwg LTE2LCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRf dnhfdTMybTFfbSAobWFzaywgdjMsIC0xNiwgNCk7DQorICAgIF9fcmlzY3Zf dGhfdnNiX3ZfdTMybTEgKG91dCwgdjQsIDQpOw0KK30NCisNCisvKg0KKyoq IGYzOg0KKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0 YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQor KiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUNCisqKiB0aC52 bGJ1XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmxidS52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52 aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZp XHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudA0KKyoq IHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQor Ki8NCit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3Qg eCkNCit7DQorICAgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWlu Ow0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0KKyAgICB2 dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGJ1X3ZfdTMybTEgKGluLCA0 KTsNCisgICAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91 MzJtMV90dW11IChtYXNrLCB2LCBpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90 IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsNCisg ICAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHVt dSAobWFzaywgdjMsIHYyLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3Zz Yl92X3UzMm0xIChvdXQsIHY0LCA0KTsNCit9DQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Iv dmxoLXZzaC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KaW5kZXggMDAwMDAwMDAwMDAuLjNjOGI1Y2NjMTZiDQotLS0gL2Rldi9u dWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L3h0aGVhZHZlY3Rvci92bGgtdnNoLmMNCkBAIC0wLDAgKzEsNjggQEANCisv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1h cmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICov DQorLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioi ICIiIH0gfSAqLw0KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCINCisN CisvKg0KKyoqIGYxOg0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0x LHR1LG1hDQorKiogdGgudmxoXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp DQorKiogdGgudmxoXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiog dGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisqKiB0 aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRo LnZzaFwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyov DQordm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDMyX3QgeCkN Cit7DQorICAgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMy bTEgKGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhf dmxoX3ZfaTMybTFfdHUgKHYsIGluLCA0KTsNCisgICAgdmludDMybTFfdCB2 MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIC0xNiwgNCk7DQorICAg IHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTFfdHUgKHYz LCB2MiwgLTE2LCA0KTsNCisgICAgX19yaXNjdl90aF92c2hfdl9pMzJtMSAo b3V0LCB2NCwgNCk7DQorfQ0KKw0KKy8qDQorKiogZjI6DQorKiogdGgudnNl dHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hDQorKiogdGgudmxt LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52c2V0aXZsaVx0 emVybyw0LGUzMixtMSx0YSxtYQ0KKyoqIHRoLnZsaC52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxc cyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05 XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudA0KKyoqIHRoLnZzaC52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYy ICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQ0KK3sNCisgICAg dmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQorICAgIGFzbSB2 b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZpbnQzMm0xX3QgdiA9 IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTEgKGluLCA0KTsNCisgICAgdmludDMy bTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTFfbSAobWFzaywgaW4s IDQpOw0KKyAgICB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X2kz Mm0xICh2MiwgLTE2LCA0KTsNCisgICAgdmludDMybTFfdCB2NCA9IF9fcmlz Y3ZfdmFkZF92eF9pMzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsNCisgICAg X19yaXNjdl90aF92c2hfdl9pMzJtMSAob3V0LCB2NCwgNCk7DQorfQ0KKw0K Ky8qDQorKiogZjM6DQorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8s ZTgsbWY0LHRhLG1hDQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCkNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQ0K KyoqIHRoLnZsaFwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRo LnZsaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52 YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZh ZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAu dA0KKyoqIHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiog cmV0DQorKi8NCit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50 MzJfdCB4KQ0KK3sNCisgICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJf dCopaW47DQorICAgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7DQor ICAgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTEgKGlu LCA0KTsNCisgICAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxoX3Zf aTMybTFfdHVtdSAobWFzaywgdiwgaW4sIDQpOw0KKyAgICB2aW50MzJtMV90 IHYzID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xICh2MiwgLTE2LCA0KTsNCisg ICAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMV90dW11 IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnNo X3ZfaTMybTEgKG91dCwgdjQsIDQpOw0KK30NCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92 bGh1LXZzaC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di94dGhlYWR2ZWN0b3IvdmxodS12c2guYw0KbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5iN2MwMDQwNGYxOA0KLS0tIC9kZXYv bnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di94dGhlYWR2ZWN0b3IvdmxodS12c2guYw0KQEAgLTAsMCArMSw2OCBAQA0K Ky8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICIt bWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJpPWlscDMyZCAtTzMiIH0g Ki8NCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIq KiIgIiIgfSB9ICovDQorI2luY2x1ZGUgInJpc2N2X3RoX3ZlY3Rvci5oIg0K Kw0KKy8qDQorKiogZjE6DQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIs bTEsdHUsbWENCisqKiB0aC52bGh1XC52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpDQorKiogdGgudmxodVwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0K KyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2DQor KiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisq KiB0aC52c2hcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQN CisqLw0KK3ZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50MzJf dCB4KQ0KK3sNCisgICAgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxo dV92X3UzMm0xIChpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYyID0gX19y aXNjdl90aF92bGh1X3ZfdTMybTFfdHUgKHYsIGluLCA0KTsNCisgICAgdnVp bnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYs IDQpOw0KKyAgICB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91 MzJtMV90dSAodjMsIHYyLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3Zz aF92X3UzMm0xIChvdXQsIHY0LCA0KTsNCit9DQorDQorLyoNCisqKiBmMjoN CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEN CisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRo LnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRhLG1hDQorKiogdGgudmxodS52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52 aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZp XHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudA0KKyoq IHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQor Ki8NCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3Qg eCkNCit7DQorICAgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWlu Ow0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0KKyAgICB2 dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGh1X3ZfdTMybTEgKGluLCA0 KTsNCisgICAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91 MzJtMV9tIChtYXNrLCBpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYzID0g X19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsNCisgICAgdnVp bnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfbSAobWFzaywg djMsIC0xNiwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnNoX3ZfdTMybTEgKG91 dCwgdjQsIDQpOw0KK30NCisNCisvKg0KKyoqIGYzOg0KKyoqIHRoLnZzZXR2 bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZsbS52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudnNldGl2bGlcdHpl cm8sNCxlMzIsbTEsdHUsbXUNCisqKiB0aC52bGh1XC52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpDQorKiogdGgudmxodS52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAt OV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMq dlswLTldKyxccyotMTYsXHMqdjAudA0KKyoqIHRoLnZzaC52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYzICh2b2lk ICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkNCit7DQorICAgIHZib29s MzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20gdm9sYXRp bGUgKCIiOjo6Im1lbW9yeSIpOw0KKyAgICB2dWludDMybTFfdCB2ID0gX19y aXNjdl90aF92bGh1X3ZfdTMybTEgKGluLCA0KTsNCisgICAgdnVpbnQzMm0x X3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMV90dW11IChtYXNrLCB2 LCBpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRk X3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjQg PSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHVtdSAobWFzaywgdjMsIHYyLCAt MTYsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3ZzaF92X3UzMm0xIChvdXQsIHY0 LCA0KTsNCit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3LXZzdy5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3 LXZzdy5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAw MDAuLjE3YTUzMDEyYWNmDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHct dnN3LmMNCkBAIC0wLDAgKzEsNjggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3h0aGVhZHZl Y3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovDQorLyogeyBkZy1maW5hbCB7 IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLw0KKyNpbmNs dWRlICJyaXNjdl90aF92ZWN0b3IuaCINCisNCisvKg0KKyoqIGYxOg0KKyoq IHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1hDQorKiogdGgudmx3 XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmx3XC52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmFkZFwudnhcdHZbMC05 XSssXHMqdlswLTldKyxccypbYS14MC05XSsNCisqKiB0aC52YWRkXC52eFx0 dlswLTldKyxccyp2WzAtOV0rLFxzKlthLXgwLTldKw0KKyoqIHRoLnZzd1wu dlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9p ZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDMyX3QgeCkNCit7DQor ICAgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTEgKGlu LCA0KTsNCisgICAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmx3X3Zf aTMybTFfdHUgKHYsIGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MyA9IF9f cmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIHgsIDQpOw0KKyAgICB2aW50MzJt MV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX3R1ICh2MywgdjIsIHgs IDQpOw0KKyAgICBfX3Jpc2N2X3RoX3Zzd192X2kzMm0xIChvdXQsIHY0LCA0 KTsNCit9DQorDQorLyoNCisqKiBmMjoNCisqKiB0aC52c2V0dmxpXHRbYS14 MC05XSssemVybyxlOCxtZjQsdGEsbWENCisqKiB0aC52bG0udlx0dlswLTld KywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMy LG0xLHRhLG1hDQorKiogdGgudmx3LnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCksdjAudA0KKyoqIHRoLnZhZGRcLnZ4XHR2WzAtOV0rLFxzKnZbMC05XSss XHMqW2EteDAtOV0rDQorKiogdGgudmFkZFwudnhcdHZbMS05XVswLTldPyxc cyp2WzAtOV0rLFxzKlthLXgwLTldKyxccyp2MC50DQorKiogdGgudnN3LnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQg ZjIgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpDQorew0KKyAg ICB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsNCisgICAgYXNt IHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsNCisgICAgdmludDMybTFfdCB2 ID0gX19yaXNjdl90aF92bHdfdl9pMzJtMSAoaW4sIDQpOw0KKyAgICB2aW50 MzJtMV90IHYyID0gX19yaXNjdl90aF92bHdfdl9pMzJtMV9tIChtYXNrLCBp biwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhf aTMybTEgKHYyLCB4LCA0KTsNCisgICAgdmludDMybTFfdCB2NCA9IF9fcmlz Y3ZfdmFkZF92eF9pMzJtMV9tIChtYXNrLCB2MywgeCwgNCk7DQorICAgIF9f cmlzY3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOw0KK30NCisNCisv Kg0KKyoqIGYzOg0KKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4 LG1mNCx0YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpDQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUNCisq KiB0aC52bHdcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52 bHcudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50DQorKiogdGgudmFk ZFwudnhcdHZbMC05XSssXHMqdlswLTldKyxccypbYS14MC05XSsNCisqKiB0 aC52YWRkXC52eFx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqW2EteDAt OV0rLFxzKnYwLnQNCisqKiB0aC52c3cudlx0dlswLTldKywwXChbYS14MC05 XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBmMyAodm9pZCAqIGluLCB2b2lk ICpvdXQsIGludDMyX3QgeCkNCit7DQorICAgIHZib29sMzJfdCBtYXNrID0g Kih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1l bW9yeSIpOw0KKyAgICB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd192 X2kzMm0xIChpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2 X3RoX3Zsd192X2kzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsNCisgICAg dmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIHgs IDQpOw0KKyAgICB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kz Mm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgeCwgNCk7DQorICAgIF9fcmlzY3Zf dGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOw0KK30NCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZl Y3Rvci92bHd1LXZzdy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYw0KbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5iMTg3Y2ZjODUyYg0KLS0t IC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYw0KQEAgLTAsMCArMSw2 OCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRp b25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJpPWlscDMyZCAt TzMiIH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9k aWVzICIqKiIgIiIgfSB9ICovDQorI2luY2x1ZGUgInJpc2N2X3RoX3ZlY3Rv ci5oIg0KKw0KKy8qDQorKiogZjE6DQorKiogdGgudnNldGl2bGlcdHplcm8s NCxlMzIsbTEsdHUsbWENCisqKiB0aC52bHd1XC52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpDQorKiogdGgudmx3dVwudlx0dlswLTldKywwXChbYS14MC05 XStcKQ0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMq LTE2DQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyot MTYNCisqKiB0aC52c3dcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisq KiByZXQNCisqLw0KK3ZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1 aW50MzJfdCB4KQ0KK3sNCisgICAgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3Zf dGhfdmx3dV92X3UzMm0xIChpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYy ID0gX19yaXNjdl90aF92bHd1X3ZfdTMybTFfdHUgKHYsIGluLCA0KTsNCisg ICAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYy LCAtMTYsIDQpOw0KKyAgICB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFk ZF92eF91MzJtMV90dSAodjMsIHYyLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2 X3RoX3Zzd192X3UzMm0xIChvdXQsIHY0LCA0KTsNCit9DQorDQorLyoNCisq KiBmMjoNCisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQs dGEsbWENCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQ0K KyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRhLG1hDQorKiogdGgu dmx3dS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52 YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZh ZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAu dA0KKyoqIHRoLnZzdy52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiog cmV0DQorKi8NCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWlu dDMyX3QgeCkNCit7DQorICAgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMy X3QqKWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0K KyAgICB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bHd1X3ZfdTMybTEg KGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zs d3Vfdl91MzJtMV9tIChtYXNrLCBpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90 IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsNCisg ICAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfbSAo bWFzaywgdjMsIC0xNiwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnN3X3ZfdTMy bTEgKG91dCwgdjQsIDQpOw0KK30NCisNCisvKg0KKyoqIGYzOg0KKyoqIHRo LnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQ0KKyoqIHRo LnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudnNldGl2 bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUNCisqKiB0aC52bHd1XC52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmx3dS52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxc cyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05 XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudA0KKyoqIHRoLnZzdy52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYz ICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkNCit7DQorICAg IHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20g dm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0KKyAgICB2dWludDMybTFfdCB2 ID0gX19yaXNjdl90aF92bHd1X3ZfdTMybTEgKGluLCA0KTsNCisgICAgdnVp bnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJtMV90dW11ICht YXNrLCB2LCBpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYzID0gX19yaXNj dl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsNCisgICAgdnVpbnQzMm0x X3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHVtdSAobWFzaywgdjMs IHYyLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3Zzd192X3UzMm0xIChv dXQsIHY0LCA0KTsNCit9DQotLSANCjIuMTcuMQ0KIA0KIA0K ------=_001_NextPart230060431045_=------