From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbg151.qq.com (smtpbg151.qq.com [18.169.211.239]) by sourceware.org (Postfix) with ESMTPS id D0B243860763 for ; Thu, 11 Jan 2024 09:07:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D0B243860763 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 D0B243860763 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=18.169.211.239 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704964090; cv=none; b=kDyTyOtOe8vA5hihdyjYaH6Nikkfa4nEVBuTqcw6zoh1oMMcpccUQb5LXVkymUJ+aF7gRzGhDKMQ+larzZpJW6j9bYVwoU+owuR62ty/M8hkKqCWwHk5j5jDym8d/d1XqTriFawdeU/LiEzxas4vTVJQLOOY/wocSaInv/1qH8s= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704964090; c=relaxed/simple; bh=QtHUxbZLP4D6CTDDAQ7Ie7FmLoyqycQ6JNTxxoo9TRc=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=ZUnyfiMBUhjuLAzTTpPZUvMG61xJwhlU3S8hGt/sXte77gjFVXQXI/pTJdLMjFxi3xzbj1qtcRO/yTOXTHRzPtHI6JQRwFGhrcj4SuqsnWeC9jwfe0m4S4dgenriSdmDMmBYXb4UNd+VdEcUQpwn7g1I1WioK5ScJj4cZuQvtTU= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp87t1704964055tz55g51c Received: from LAPTOP-EPITNQBU ( [121.35.183.89]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 11 Jan 2024 17:07:33 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: ExMJMwggoDKowOntx+pJDUXzgMxe+Fh74n45dxVI0R6XJH1rUDGVLPgeWkQZD vzeiOgAXL+ALSh9c1wGIwFgUUpNVZ/BxS0FjWYmHHDRCrKt5iavoE0XTbnTf8nypXVMTvII xIr8wJup3GRchxWsiy6szkbsC1MaisyCl9uUScIrxNwPGExu2XU93BaiZ6z8iIRwFaxPlc/ 1lS0Dypa9z2smtCZ0+1kph9Z4vbTLxdk8BkY5FudFYs8ROqSMdHwz2I2Qor7EVXnh/c+SkF XShec+cMPlkSgQrtNhD50Xb+LM9dsh+SRKTCEQYiWCqnlP1w6KoG9TGHwcLvryv9PL2BMQk qWxfdmGJo4jkiriQXKD8mw4NnBDutbgtF6KPVuC0WZoe2WeqBnXbf4Rkcdif5xh7EwZzQYo bwIqWEn1NvghbarwXt+5dKQ6kV24sB6c X-QQ-GoodBg: 2 X-BIZMAIL-ID: 14736137179206429708 Date: Thu, 11 Jan 2024 17:07:33 +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>, <20240111084640.1397-1-cooper.joshua@linux.alibaba.com> X-Priority: 3 X-GUID: 8B0480A0-D742-4FB4-8406-1F37D4E03C11 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <7F92468914239FA8+202401111707330397793@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart302864076212_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SCC_5_SHORT_WORD_LINES,SPF_HELO_PASS,SPF_PASS,TXREP,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_NextPart302864076212_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 ZW51bSByZXF1aXJlZF9leHQNCnsNCiAgIFZFQ1RPUl9FWFQsICAgLyogVmVj dG9yIGV4dGVuc2lvbiAqLw0KKyAgWFRIRUFEVkVDVE9SX0VYVCwgICAvKiBY VGhlYWRWZWN0b3IgZXh0ZW5zaW9uICovDQogICBaVkJCX0VYVCwgICAgLyog Q3J5dG8gdmVjdG9yIFp2YmIgc3ViLWV4dCAqLw0KICAgWlZCQl9PUl9aVktC X0VYVCwgLyogQ3J5dG8gdmVjdG9yIFp2YmIgb3IgenZrYiBzdWItZXh0ICov DQogICBaVkJDX0VYVCwgICAgLyogQ3J5cHRvIHZlY3RvciBadmJjIHN1Yi1l eHQgKi8NCg0KQWRkIHRoZWFkdmVjdG9yIHRvIHRoZSBlbmQgb2YgdGhlIGVu dW0uDQoNCisgICAgICBjYXNlIFhUSEVBRFZFQ1RPUl9FWFQ6DQorIHJldHVy biBUQVJHRVRfWFRIRUFEVkVDVE9SOw0KDQpTYW1lLg0KDQorICAiJiYgcmVn aXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIDxNT0RFPm1vZGUpDQorICAg JiYgcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbM10sIDxNT0RFPm1vZGUp DQorICAgJiYgc2F0aXNmaWVzX2NvbnN0cmFpbnRfdnUgKG9wZXJhbmRzWzJd KQ0KKyAgICYmIElOVFZBTCAob3BlcmFuZHNbN10pID09IHJpc2N2X3ZlY3Rv cjo6VkxNQVgiDQoNCllvdSBjYW4gdXNlIHdob2xlX3JlZ190b19yZWdfbW92 ZV9wDQoNCg0KQnR3LCBJIHJldmlldyBhZ2FpbiA6ICAgUklTQy1WOiBIYW5k bGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBYVGhlYWR2ZWN0b3IgYW5kIFZlY3Rv cg0KDQogCSAgKGFueV9leHRlbmQ6VldFWFRJCiAJICAgIChtYXRjaF9vcGVy YW5kOjxWX0RPVUJMRV9UUlVOQz4gMyAicmVnaXN0ZXJfb3BlcmFuZCIgICAi VzIxLFcyMSxXMjEsVzIxLFc0MixXNDIsVzQyLFc0MixXODQsVzg0LFc4NCxX ODQsICAgdnIsICAgdnIiKSkKIAkgIChtYXRjaF9vcGVyYW5kOlZXRVhUSSAy ICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIgICAgICAgICAgICIgdnUsIHZ1LCAg MCwgIDAsIHZ1LCB2dSwgIDAsICAwLCB2dSwgdnUsICAwLCAgMCwgICB2dSwg ICAgMCIpKSldCi0gICJUQVJHRVRfVkVDVE9SIgorICAiVEFSR0VUX1ZFQ1RP UiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiIKICAgInY8c3o+ZXh0LnZmMlx0 JTAsJTMlcDEiCiAgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZXh0IikKICAgIChz ZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpCkBAIC0zNzEzLDcgKzM3NDQsNyBA QAogCSAgKGFueV9leHRlbmQ6VlFFWFRJCiAJICAgIChtYXRjaF9vcGVyYW5k OjxWX1FVQURfVFJVTkM+IDMgInJlZ2lzdGVyX29wZXJhbmQiICAgIlc0MyxX NDMsVzQzLFc0MyxXODYsVzg2LFc4NixXODYsICAgdnIsICAgdnIiKSkKIAkg IChtYXRjaF9vcGVyYW5kOlZRRVhUSSAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFu ZCIgICAgICAgICAiIHZ1LCB2dSwgIDAsICAwLCB2dSwgdnUsICAwLCAgMCwg ICB2dSwgICAgMCIpKSldCi0gICJUQVJHRVRfVkVDVE9SIgorICAiVEFSR0VU X1ZFQ1RPUiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiIKICAgInY8c3o+ZXh0 LnZmNFx0JTAsJTMlcDEiCiAgIFsoc2V0X2F0dHIgInR5cGUiICJ2ZXh0IikK ICAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpCkBAIC0zNzM0LDcgKzM3 NjUsNyBAQAogCSAgKGFueV9leHRlbmQ6Vk9FWFRJCiAJICAgIChtYXRjaF9v cGVyYW5kOjxWX09DVF9UUlVOQz4gMyAicmVnaXN0ZXJfb3BlcmFuZCIgICAi Vzg3LFc4NyxXODcsVzg3LCAgIHZyLCAgIHZyIikpCiAJICAobWF0Y2hfb3Bl cmFuZDpWT0VYVEkgMiAidmVjdG9yX21lcmdlX29wZXJhbmQiICAgICAgICAi IHZ1LCB2dSwgIDAsICAwLCAgIHZ1LCAgICAwIikpKV0KLSAgIlRBUkdFVF9W RUNUT1IiCisgICJUQVJHRVRfVkVDVE9SICYmICFUQVJHRVRfWFRIRUFEVkVD VE9SIgogICAidjxzej5leHQudmY4XHQlMCwlMyVwMSIKICAgWyhzZXRfYXR0 ciAidHlwZSIgInZleHQiKQogICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+ IikNCldoeSBkbyB5b3UgYWRkIHRoZXNlICFUQVJHRVJUX1hUSEVBRFZFQ1JU T1IgPw0KDQoNCg0KanV6aGUuemhvbmdAcml2YWkuYWkNCiANCkZyb206IEp1 biBTaGEgKEpvc2h1YSkNCkRhdGU6IDIwMjQtMDEtMTEgMTY6NDYNClRvOiBn Y2MtcGF0Y2hlcw0KQ0M6IGppbS53aWxzb24uZ2NjOyBwYWxtZXI7IGFuZHJl dzsgcGhpbGlwcC50b21zaWNoOyBqZWZmcmV5YWxhdzsgY2hyaXN0b3BoLm11 ZWxsbmVyOyBqdXpoZS56aG9uZzsgSnVuIFNoYSAoSm9zaHVhKTsgSmluIE1h OyBYaWFubWlhbyBRdQ0KU3ViamVjdDogW1BBVENIIHY1XSBSSVNDLVY6IEFk ZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmluc2lj cy4NClRoaXMgcGF0Y2ggb25seSBpbnZvbHZlcyB0aGUgZ2VuZXJhdGlvbiBv ZiB4dGhlYWR2ZWN0b3INCnNwZWNpYWwgbG9hZC9zdG9yZSBpbnN0cnVjdGlv bnMgYW5kIHZleHQgaW5zdHJ1Y3Rpb25zLg0KIA0KZ2NjL0NoYW5nZUxvZzoN CiANCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNl cy5jYw0KKGNsYXNzIHRoX2xvYWRzdG9yZV93aWR0aCk6IERlZmluZSBuZXcg YnVpbHRpbiBiYXNlcy4NCihjbGFzcyB0aF9leHRyYWN0KTogRGVmaW5lIG5l dyBidWlsdGluIGJhc2VzLg0KKEJBU0UpOiBEZWZpbmUgbmV3IGJ1aWx0aW4g YmFzZXMuDQoqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMt YmFzZXMuaDoNCkRlZmluZSBuZXcgYnVpbHRpbiBjbGFzcy4NCiogY29uZmln L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MNCihzdHJ1 Y3QgdGhfbG9hZHN0b3JlX3dpZHRoX2RlZik6IERlZmluZSBuZXcgYnVpbHRp biBzaGFwZXMuDQooc3RydWN0IHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRo X2RlZik6DQpEZWZpbmUgbmV3IGJ1aWx0aW4gc2hhcGVzLg0KKHN0cnVjdCB0 aF9leHRyYWN0X2RlZik6IERlZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuDQoo U0hBUEUpOiBEZWZpbmUgbmV3IGJ1aWx0aW4gc2hhcGVzLg0KKiBjb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oOg0KRGVmaW5l IG5ldyBidWlsdGluIHNoYXBlcy4NCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZl Y3Rvci1idWlsdGlucy5jYyAoREVGX1JWVl9GVU5DVElPTik6DQoqIGNvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaCAoZW51bSByZXF1aXJl ZF9leHQpOg0KKHN0cnVjdCBmdW5jdGlvbl9ncm91cF9pbmZvKToNCiogY29u ZmlnL3Jpc2N2L3QtcmlzY3Y6IEFkZCB0aGVhZC12ZWN0b3ItYnVpbHRpbnMt ZnVuY3Rpb25zLmRlZg0KKiBjb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1k DQooQHByZWRfbW92X3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+KTogQWRk IG5ldyBwYXR0ZXJucy4NCigqcHJlZF9tb3Zfd2lkdGg8dmxtZW1fb3BfYXR0 cj48bW9kZT4pOiBMaWtld2lzZS4NCihAcHJlZF9zdG9yZV93aWR0aDx2bG1l bV9vcF9hdHRyPjxtb2RlPik6IExpa2V3aXNlLg0KKEBwcmVkX3N0cmlkZWRf bG9hZF93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPik6IExpa2V3aXNlLg0K KEBwcmVkX3N0cmlkZWRfc3RvcmVfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9k ZT4pOiBMaWtld2lzZS4NCihAcHJlZF9pbmRleGVkX2xvYWRfd2lkdGg8dmxt ZW1fb3BfYXR0cj48bW9kZT4pOiBMaWtld2lzZS4NCihAcHJlZF9pbmRleGVk Xzx2bG1lbV9vcmRlcl9hdHRyPnN0b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+ PG1vZGU+KToNCihAcHJlZF90aF9leHRyYWN0PG1vZGU+KTogTGlrZXdpc2Uu DQooKnByZWRfdGhfZXh0cmFjdDxtb2RlPik6IExpa2V3aXNlLg0KKiBjb25m aWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWY6 IE5ldyBmaWxlLg0KIA0KZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQogDQoq IGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGItdnNiLmM6 IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0 b3IvdmxidS12c2IuYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3Yv cnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNoLmM6IE5ldyB0ZXN0Lg0KKiBnY2Mu dGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYzogTmV3 IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92 bHctdnN3LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94 dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYzogTmV3IHRlc3QuDQpDby1hdXRob3Jl ZC1ieTogSmluIE1hIDxqaW5tYUBsaW51eC5hbGliYWJhLmNvbT4NCkNvLWF1 dGhvcmVkLWJ5OiBYaWFubWlhbyBRdSA8Y29vcGVyLnF1QGxpbnV4LmFsaWJh YmEuY29tPg0KQ28tYXV0aG9yZWQtYnk6IENocmlzdG9waCBNw7xsbG5lciA8 Y2hyaXN0b3BoLm11ZWxsbmVyQHZydWxsLmV1Pg0KLS0tDQouLi4vcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjICAgICAgfCAxMzkgKysr KysrKysrKw0KLi4uL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNl cy5oICAgICAgIHwgIDMxICsrKw0KLi4uL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy1zaGFwZXMuY2MgICAgIHwgMTYwICsrKysrKysrKysrDQouLi4v cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oICAgICAgfCAg IDMgKw0KZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMu Y2MgICAgIHwgIDcwICsrKysrDQpnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZl Y3Rvci1idWlsdGlucy5oICAgICAgfCAgIDMgKw0KZ2NjL2NvbmZpZy9yaXNj di90LXJpc2N2ICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsNCi4uLi9y aXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZiB8ICAz OSArKysNCmdjYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1kICAgICAg ICAgICAgICB8IDI1MyArKysrKysrKysrKysrKysrKysNCi4uLi9yaXNjdi9y dnYveHRoZWFkdmVjdG9yL3ZsYi12c2IuYyAgICAgICAgICB8ICA2OCArKysr Kw0KLi4uL3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2IuYyAgICAg ICAgIHwgIDY4ICsrKysrDQouLi4vcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92 bGgtdnNoLmMgICAgICAgICAgfCAgNjggKysrKysNCi4uLi9yaXNjdi9ydnYv eHRoZWFkdmVjdG9yL3ZsaHUtdnNoLmMgICAgICAgICB8ICA2OCArKysrKw0K Li4uL3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3LXZzdy5jICAgICAgICAg IHwgIDY4ICsrKysrDQouLi4vcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHd1 LXZzdy5jICAgICAgICAgfCAgNjggKysrKysNCjE1IGZpbGVzIGNoYW5nZWQs IDExMDcgaW5zZXJ0aW9ucygrKQ0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy9j b25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5k ZWYNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGItdnNiLmMNCmNyZWF0ZSBt b2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5jDQpjcmVhdGUgbW9kZSAxMDA2NDQg Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0 b3IvdmxoLXZzaC5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2gu Yw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYw0KY3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv eHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmMNCiANCmRpZmYgLS1naXQgYS9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYyBi L2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2Vz LmNjDQppbmRleCA0NmYxYTFkYTMzZS4uM2ViYTc5NDM3NTcgMTAwNjQ0DQot LS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1i YXNlcy5jYw0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtYmFzZXMuY2MNCkBAIC0yMTI1LDYgKzIxMjUsODMgQEAgcHVi bGljOg0KICAgfQ0KfTsNCisvKiBJbXBsZW1lbnRzDQorICogdGgudmwoYi9o L3cpW3VdLnYvdGgudnMoYi9oL3cpW3VdLnYvdGgudmxzKGIvaC93KVt1XS52 L3RoLnZzcyhiL2gvdylbdV0udi8NCisgKiB0aC52bHgoYi9oL3cpW3VdLnYv dGgudnNbdV14KGIvaC93KS52DQorICogY29kZWdlbi4gICovDQordGVtcGxh dGU8Ym9vbCBTVE9SRV9QLCBsc3RfdHlwZSBMU1RfVFlQRSwgaW50IFVOU1BF Qz4NCitjbGFzcyB0aF9sb2Fkc3RvcmVfd2lkdGggOiBwdWJsaWMgZnVuY3Rp b25fYmFzZQ0KK3sNCitwdWJsaWM6DQorICBib29sIGFwcGx5X3RhaWxfcG9s aWN5X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIVNUT1JFX1A7IH0N CisgIGJvb2wgYXBwbHlfbWFza19wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlk ZSB7IHJldHVybiAhU1RPUkVfUDsgfQ0KKw0KKyAgdW5zaWduZWQgaW50IGNh bGxfcHJvcGVydGllcyAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJikgY29u c3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgaWYgKFNUT1JFX1ApDQorICAgICAg cmV0dXJuIENQX1dSSVRFX01FTU9SWTsNCisgICAgZWxzZQ0KKyAgICAgIHJl dHVybiBDUF9SRUFEX01FTU9SWTsNCisgIH0NCisNCisgIGJvb2wgY2FuX2Jl X292ZXJsb2FkZWRfcCAoZW51bSBwcmVkaWNhdGlvbl90eXBlX2luZGV4IHBy ZWQpIGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAgIGlmIChTVE9SRV9QIHx8 IExTVF9UWVBFID09IExTVF9JTkRFWEVEKQ0KKyAgICAgIHJldHVybiB0cnVl Ow0KKyAgICByZXR1cm4gcHJlZCAhPSBQUkVEX1RZUEVfbm9uZTsNCisgIH0N CisNCisgIHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25z dCBvdmVycmlkZQ0KKyAgew0KKyAgICBnY2NfYXNzZXJ0IChUQVJHRVRfWFRI RUFEVkVDVE9SKTsNCisgICAgaWYgKExTVF9UWVBFID09IExTVF9JTkRFWEVE KQ0KKyAgICAgIHsNCisgaWYgKFNUT1JFX1ApDQorICAgcmV0dXJuIGUudXNl X2V4YWN0X2luc24gKA0KKyAgICAgY29kZV9mb3JfcHJlZF9pbmRleGVkX3N0 b3JlX3dpZHRoIChVTlNQRUMsIFVOU1BFQywNCisgICAgICAgIGUudmVjdG9y X21vZGUgKCkpKTsNCisgZWxzZQ0KKyAgIHJldHVybiBlLnVzZV9leGFjdF9p bnNuICgNCisgICAgIGNvZGVfZm9yX3ByZWRfaW5kZXhlZF9sb2FkX3dpZHRo IChVTlNQRUMsIGUudmVjdG9yX21vZGUgKCkpKTsNCisgICAgICB9DQorICAg IGVsc2UgaWYgKExTVF9UWVBFID09IExTVF9TVFJJREVEKQ0KKyAgICAgIHsN CisgaWYgKFNUT1JFX1ApDQorICAgcmV0dXJuIGUudXNlX2NvbnRpZ3VvdXNf c3RvcmVfaW5zbiAoDQorICAgICBjb2RlX2Zvcl9wcmVkX3N0cmlkZWRfc3Rv cmVfd2lkdGggKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyBlbHNl DQorICAgcmV0dXJuIGUudXNlX2NvbnRpZ3VvdXNfbG9hZF9pbnNuICgNCisg ICAgIGNvZGVfZm9yX3ByZWRfc3RyaWRlZF9sb2FkX3dpZHRoIChVTlNQRUMs IGUudmVjdG9yX21vZGUgKCkpKTsNCisgICAgICB9DQorICAgIGVsc2UNCisg ICAgICB7DQorIGlmIChTVE9SRV9QKQ0KKyAgIHJldHVybiBlLnVzZV9jb250 aWd1b3VzX3N0b3JlX2luc24gKA0KKyAgICAgY29kZV9mb3JfcHJlZF9zdG9y ZV93aWR0aCAoVU5TUEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7DQorIGVsc2UN CisgICByZXR1cm4gZS51c2VfY29udGlndW91c19sb2FkX2luc24gKA0KKyAg ICAgY29kZV9mb3JfcHJlZF9tb3Zfd2lkdGggKFVOU1BFQywgZS52ZWN0b3Jf bW9kZSAoKSkpOw0KKyAgICAgIH0NCisgIH0NCit9Ow0KKw0KKy8qIEltcGxl bWVudHMgdmV4dC54LnYuICAqLw0KK2NsYXNzIHRoX2V4dHJhY3QgOiBwdWJs aWMgZnVuY3Rpb25fYmFzZQ0KK3sNCitwdWJsaWM6DQorICBib29sIGFwcGx5 X3ZsX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisg IGJvb2wgYXBwbHlfdGFpbF9wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7 IHJldHVybiBmYWxzZTsgfQ0KKyAgYm9vbCBhcHBseV9tYXNrX3BvbGljeV9w ICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICBib29s IHVzZV9tYXNrX3ByZWRpY2F0aW9uX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyBy ZXR1cm4gZmFsc2U7IH0NCisgIGJvb2wgaGFzX21lcmdlX29wZXJhbmRfcCAo KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KKw0KKyAgcnR4 IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRl DQorICB7DQorICAgIGdjY19hc3NlcnQgKFRBUkdFVF9YVEhFQURWRUNUT1Ip Ow0KKyAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoY29kZV9mb3JfcHJl ZF90aF9leHRyYWN0IChlLnZlY3Rvcl9tb2RlICgpKSk7DQorICB9DQorfTsN CisNCi8qIEJlbG93IGltcGxlbWVudHMgYXJlIHZlY3RvciBjcnlwdG8gKi8N Ci8qIEltcGxlbWVudHMgdmFuZG4uW3Z2LHZ4XSAqLw0KY2xhc3MgdmFuZG4g OiBwdWJsaWMgZnVuY3Rpb25fYmFzZQ0KQEAgLTI1ODcsNiArMjY2NCwzNyBA QCBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHNlZ19pbmRleGVkX2xvYWQ8VU5T UEVDX09SREVSRUQ+IHZsb3hzZWdfb2JqOw0Kc3RhdGljIENPTlNURVhQUiBj b25zdCBzZWdfaW5kZXhlZF9zdG9yZTxVTlNQRUNfVU5PUkRFUkVEPiB2c3V4 c2VnX29iajsNCnN0YXRpYyBDT05TVEVYUFIgY29uc3Qgc2VnX2luZGV4ZWRf c3RvcmU8VU5TUEVDX09SREVSRUQ+IHZzb3hzZWdfb2JqOw0Kc3RhdGljIENP TlNURVhQUiBjb25zdCB2bHNlZ2ZmIHZsc2VnZmZfb2JqOw0KK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1Rf VU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTEI+IHZsYl9vYmo7DQorc3RhdGlj IENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExT VF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMQlU+IHZsYnVfb2JqOw0KK3N0 YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNl LCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTEg+IHZsaF9vYmo7DQor c3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFs c2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMSFU+IHZsaHVfb2Jq Ow0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRo PGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTFc+IHZsd19v Ymo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lk dGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMV1U+IHZs d3Vfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3Jl X3dpZHRoPHRydWUsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMQj4g dnNiX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9y ZV93aWR0aDx0cnVlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTEg+ IHZzaF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3Rv cmVfd2lkdGg8dHJ1ZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxX PiB2c3dfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0 b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU0I+ IHZsc2Jfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0 b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU0JV PiB2bHNidV9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fk c3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQRUNfVEhfVkxT SD4gdmxzaF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fk c3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQRUNfVEhfVkxT SFU+IHZsc2h1X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xv YWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9W TFNXPiB2bHN3X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xv YWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9W TFNXVT4gdmxzd3Vfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhf bG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9TVFJJREVELCBVTlNQRUNfVEhf VkxTQj4gdnNzYl9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9s b2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9W TFNIPiB2c3NoX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xv YWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZM U1c+IHZzc3dfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9h ZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZM WEI+IHZseGJfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9h ZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZM WEJVPiB2bHhidV9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9s b2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhf VkxYSD4gdmx4aF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9s b2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhf VkxYSFU+IHZseGh1X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRo X2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19U SF9WTFhXPiB2bHh3X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRo X2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19U SF9WTFhXVT4gdmx4d3Vfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg dGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNf VEhfVkxYQj4gdnN4Yl9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19U SF9WTFhIPiB2c3hoX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRo X2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RI X1ZMWFc+IHZzeHdfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhf bG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhf VlNVWEI+IHZzdXhiX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRo X2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RI X1ZTVVhIPiB2c3V4aF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19U SF9WU1VYVz4gdnN1eHdfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg dGhfZXh0cmFjdCB2ZXh0X3hfdl9vYmo7DQovKiBDcnlwdG8gVmVjdG9yICov DQpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHZhbmRuIHZhbmRuX29iajsNCkBA IC0yODc4LDYgKzI5ODYsMzcgQEAgQkFTRSAodmxveHNlZykNCkJBU0UgKHZz dXhzZWcpDQpCQVNFICh2c294c2VnKQ0KQkFTRSAodmxzZWdmZikNCitCQVNF ICh2bGIpDQorQkFTRSAodmxoKQ0KK0JBU0UgKHZsdykNCitCQVNFICh2bGJ1 KQ0KK0JBU0UgKHZsaHUpDQorQkFTRSAodmx3dSkNCitCQVNFICh2c2IpDQor QkFTRSAodnNoKQ0KK0JBU0UgKHZzdykNCitCQVNFICh2bHNiKQ0KK0JBU0Ug KHZsc2gpDQorQkFTRSAodmxzdykNCitCQVNFICh2bHNidSkNCitCQVNFICh2 bHNodSkNCitCQVNFICh2bHN3dSkNCitCQVNFICh2c3NiKQ0KK0JBU0UgKHZz c2gpDQorQkFTRSAodnNzdykNCitCQVNFICh2bHhiKQ0KK0JBU0UgKHZseGgp DQorQkFTRSAodmx4dykNCitCQVNFICh2bHhidSkNCitCQVNFICh2bHhodSkN CitCQVNFICh2bHh3dSkNCitCQVNFICh2c3hiKQ0KK0JBU0UgKHZzeGgpDQor QkFTRSAodnN4dykNCitCQVNFICh2c3V4YikNCitCQVNFICh2c3V4aCkNCitC QVNFICh2c3V4dykNCitCQVNFICh2ZXh0X3hfdikNCi8qIENyeXB0byB2ZWN0 b3IgKi8NCkJBU0UgKHZhbmRuKQ0KQkFTRSAodmJyZXYpDQpkaWZmIC0tZ2l0 IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFz ZXMuaCBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5z LWJhc2VzLmgNCmluZGV4IDExMjJlMzgwMWE3Li41NjVhMDMxMWQyYiAxMDA2 NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLWJhc2VzLmgNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLWJhc2VzLmgNCkBAIC0yOTksNiArMjk5LDM3IEBAIGV4 dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bG94c2VnOw0KZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzdXhzZWc7DQpleHRl cm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnNveHNlZzsNCmV4dGVy biBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHNlZ2ZmOw0KK2V4dGVy biBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bGI7DQorZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsaDsNCitleHRlcm4gY29uc3Qg ZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx3Ow0KK2V4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB2bGJ1Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlv bl9iYXNlICpjb25zdCB2bGh1Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB2bHd1Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNl ICpjb25zdCB2c2I7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNv bnN0IHZzaDsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dnN3Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHNi Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHNoOw0K K2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHN3Ow0KK2V4 dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHNidTsNCitleHRl cm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmxzaHU7DQorZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsc3d1Ow0KK2V4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3NiOw0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3NoOw0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB2c3N3Ow0KK2V4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB2bHhiOw0KK2V4dGVybiBjb25zdCBmdW5jdGlv bl9iYXNlICpjb25zdCB2bHhoOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB2bHh3Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNl ICpjb25zdCB2bHhidTsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAq Y29uc3Qgdmx4aHU7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNv bnN0IHZseHd1Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25z dCB2c3hiOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2 c3hoOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3h3 Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3V4YjsN CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN1eGg7DQor ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzdXh3Ow0KK2V4 dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2ZXh0X3hfdjsNCi8q IEJlbG93IGZ1bmN0aW9uX2Jhc2UgYXJlIFZlY3RybyBDcnlwdG8qLw0KZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZhbmRuOw0KZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZicmV2Ow0KZGlmZiAtLWdp dCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNo YXBlcy5jYyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLXNoYXBlcy5jYw0KaW5kZXggMWU0ZjRkNTNkZTYuLjhlOTBiMTdhOTRi IDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtc2hhcGVzLmNjDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MNCkBAIC0yMTEsNiArMjEx LDE0NiBAQCBzdHJ1Y3QgaW5kZXhlZF9sb2Fkc3RvcmVfZGVmIDogcHVibGlj IGZ1bmN0aW9uX3NoYXBlDQogICB9DQp9Ow0KKy8qIEFkZCBvbmUgZnVuY3Rp b24gaW5zdGFuY2UgZm9yIEdST1VQLCB1c2luZyBvcGVyYW5kIHN1ZmZpeCBh dCBpbmRleCBPSSwNCisgICBtb2RlIHN1ZmZpeCBhdCBpbmRleCBQQUlSICYm IGJpIGFuZCBwcmVkaWNhdGlvbiBzdWZmaXggYXQgaW5kZXggcHJlZF9pZHgu ICAqLw0KK3N0YXRpYyB2b2lkDQorYnVpbGRfdGhfbG9hZHN0b3JlIChmdW5j dGlvbl9idWlsZGVyICZiLCBjb25zdCBmdW5jdGlvbl9ncm91cF9pbmZvICZn cm91cCwNCisgICAgIHVuc2lnbmVkIGludCBwcmVkX2lkeCwgdW5zaWduZWQg aW50IHZlY190eXBlX2lkeCkNCit7DQorICBhdXRvX3ZlYzx0cmVlLCA1PiBh cmd1bWVudF90eXBlczsNCisgIGZ1bmN0aW9uX2luc3RhbmNlIGZ1bmN0aW9u X2luc3RhbmNlIChncm91cC5iYXNlX25hbWUsICpncm91cC5iYXNlLA0KKyAg ICAgICAgKmdyb3VwLnNoYXBlLA0KKyAgICAgICAgZ3JvdXAub3BzX2luZm9z LnR5cGVzW3ZlY190eXBlX2lkeF0sDQorICAgICAgICBncm91cC5wcmVkc1tw cmVkX2lkeF0sICZncm91cC5vcHNfaW5mb3MpOw0KKyAgdHJlZSByZXR1cm5f dHlwZSA9IGdyb3VwLm9wc19pbmZvcy5yZXQuZ2V0X3RyZWVfdHlwZSAoDQor ICAgIGdyb3VwLm9wc19pbmZvcy50eXBlc1t2ZWNfdHlwZV9pZHhdLmluZGV4 KTsNCisgIGIuYWxsb2NhdGVfYXJndW1lbnRfdHlwZXMgKGZ1bmN0aW9uX2lu c3RhbmNlLCBhcmd1bWVudF90eXBlcyk7DQorICBiLmFwcGx5X3ByZWRpY2F0 aW9uIChmdW5jdGlvbl9pbnN0YW5jZSwgcmV0dXJuX3R5cGUsIGFyZ3VtZW50 X3R5cGVzKTsNCisNCisgIGlmIChUQVJHRVRfWFRIRUFEVkVDVE9SICYmICFj aGVja190eXBlIChyZXR1cm5fdHlwZSwgYXJndW1lbnRfdHlwZXMpKQ0KKyAg ICByZXR1cm47DQorDQorICB0cmVlIHR5cGUgPSBidWlsdGluX3R5cGVzW2dy b3VwLm9wc19pbmZvcy50eXBlc1t2ZWNfdHlwZV9pZHhdLmluZGV4XS52ZWN0 b3I7DQorICBpZiAoc3Ryc3RyIChncm91cC5iYXNlX25hbWUsICJsIikNCisg ICAgICAmJiBzdHJzdHIgKGdyb3VwLmJhc2VfbmFtZSwgInUiKQ0KKyAgICAg ICYmICFUWVBFX1VOU0lHTkVEIChUUkVFX1RZUEUgKHR5cGUpKSkNCisgICAg cmV0dXJuOw0KKw0KKyAgaWYgKHN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1lLCAi bCIpDQorICAgICAgJiYgIXN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1lLCAidSIp DQorICAgICAgJiYgVFlQRV9VTlNJR05FRCAoVFJFRV9UWVBFICh0eXBlKSkp DQorICAgIHJldHVybjsNCisNCisgIG1hY2hpbmVfbW9kZSBtb2RlID0gVFlQ RV9NT0RFICh0eXBlKTsNCisgIGludCBzZXcgPSBHRVRfTU9ERV9CSVRTSVpF IChHRVRfTU9ERV9JTk5FUiAobW9kZSkpOw0KKyAgaWYgKHN0cnN0ciAoZ3Jv dXAuYmFzZV9uYW1lLCAiaCIpICYmIHNldyA9PSA4KQ0KKyAgICByZXR1cm47 DQorDQorICBpZiAoc3Ryc3RyIChncm91cC5iYXNlX25hbWUsICJ3IikgJiYg KHNldyA9PSA4IHx8IHNldyA9PTE2KSkNCisgICAgcmV0dXJuOw0KKw0KKyAg Yi5hZGRfb3ZlcmxvYWRlZF9mdW5jdGlvbiAoZnVuY3Rpb25faW5zdGFuY2Us ICpncm91cC5zaGFwZSk7DQorICBiLmFkZF91bmlxdWVfZnVuY3Rpb24gKGZ1 bmN0aW9uX2luc3RhbmNlLCAoKmdyb3VwLnNoYXBlKSwgcmV0dXJuX3R5cGUs DQorIGFyZ3VtZW50X3R5cGVzKTsNCit9DQorDQorLyogdGhfbG9hZHN0b3Jl X3dpZHRoX2RlZiBjbGFzcy4gICovDQorc3RydWN0IHRoX2xvYWRzdG9yZV93 aWR0aF9kZWYgOiBwdWJsaWMgYnVpbGRfYmFzZQ0KK3sNCisgICB2b2lkIGJ1 aWxkIChmdW5jdGlvbl9idWlsZGVyICZiLA0KKyAgICAgICBjb25zdCBmdW5j dGlvbl9ncm91cF9pbmZvICZncm91cCkgY29uc3Qgb3ZlcnJpZGUNCisgIHsN CisgICAgZm9yICh1bnNpZ25lZCBpbnQgcHJlZF9pZHggPSAwOyBncm91cC5w cmVkc1twcmVkX2lkeF0gIT0gTlVNX1BSRURfVFlQRVM7DQorICAgICAgICsr cHJlZF9pZHgpDQorICAgICAgew0KKyBmb3IgKHVuc2lnbmVkIGludCB2ZWNf dHlwZV9pZHggPSAwOw0KKyAgICAgIGdyb3VwLm9wc19pbmZvcy50eXBlc1t2 ZWNfdHlwZV9pZHhdLmluZGV4ICE9IE5VTV9WRUNUT1JfVFlQRVM7DQorICAg ICAgKyt2ZWNfdHlwZV9pZHgpDQorICAgew0KKyAgICAgYnVpbGRfdGhfbG9h ZHN0b3JlIChiLCBncm91cCwgcHJlZF9pZHgsIHZlY190eXBlX2lkeCk7DQor ICAgfQ0KKyAgICAgIH0NCisgIH0NCisNCisgIGNoYXIgKmdldF9uYW1lIChm dW5jdGlvbl9idWlsZGVyICZiLCBjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAm aW5zdGFuY2UsDQorICAgYm9vbCBvdmVybG9hZGVkX3ApIGNvbnN0IG92ZXJy aWRlDQorICB7DQorICAgIC8qIFJldHVybiBudWxscHRyIGlmIGl0IGNhbiBu b3QgYmUgb3ZlcmxvYWRlZC4gICovDQorICAgIGlmIChvdmVybG9hZGVkX3Ag JiYgIWluc3RhbmNlLmJhc2UtPmNhbl9iZV9vdmVybG9hZGVkX3AgKGluc3Rh bmNlLnByZWQpKQ0KKyAgICAgIHJldHVybiBudWxscHRyOw0KKw0KKyAgICBi LmFwcGVuZF9uYW1lICgiX19yaXNjdl90aF8iKTsNCisgICAgYi5hcHBlbmRf bmFtZSAoaW5zdGFuY2UuYmFzZV9uYW1lKTsNCisNCisgICAgLyogdm9wX3Yg LS0+IHZvcF92Xzx0eXBlPi4gICovDQorICAgIGlmICghb3ZlcmxvYWRlZF9w KQ0KKyAgICAgIHsNCisgLyogdm9wIC0tPiB2b3Bfdi4gICovDQorIGIuYXBw ZW5kX25hbWUgKG9wZXJhbmRfc3VmZml4ZXNbaW5zdGFuY2Uub3BfaW5mby0+ b3BdKTsNCisgLyogdm9wX3YgLS0+IHZvcF92Xzx0eXBlPi4gICovDQorIGIu YXBwZW5kX25hbWUgKHR5cGVfc3VmZml4ZXNbaW5zdGFuY2UudHlwZS5pbmRl eF0udmVjdG9yKTsNCisgICAgICB9DQorDQorICAgIC8qIEFjY29yZGluZyB0 byBydnYtaW50cmluc2ljLWRvYywgaXQgZG9lcyBub3QgYWRkICJfbSIgc3Vm Zml4DQorICAgICAgIGZvciB2b3BfbSBDKysgb3ZlcmxvYWRlZCBBUEkuICAq Lw0KKyAgICBpZiAob3ZlcmxvYWRlZF9wICYmIGluc3RhbmNlLnByZWQgPT0g UFJFRF9UWVBFX20pDQorICAgICAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7 DQorICAgIGIuYXBwZW5kX25hbWUgKHByZWRpY2F0aW9uX3N1ZmZpeGVzW2lu c3RhbmNlLnByZWRdKTsNCisgICAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7 DQorICB9DQorfTsNCisNCisNCisvKiB0aF9pbmRleGVkX2xvYWRzdG9yZV93 aWR0aF9kZWYgY2xhc3MuICAqLw0KK3N0cnVjdCB0aF9pbmRleGVkX2xvYWRz dG9yZV93aWR0aF9kZWYgOiBwdWJsaWMgZnVuY3Rpb25fc2hhcGUNCit7DQor ICB2b2lkIGJ1aWxkIChmdW5jdGlvbl9idWlsZGVyICZiLA0KKyAgICAgICBj b25zdCBmdW5jdGlvbl9ncm91cF9pbmZvICZncm91cCkgY29uc3Qgb3ZlcnJp ZGUNCisgIHsNCisgICAgZm9yICh1bnNpZ25lZCBpbnQgcHJlZF9pZHggPSAw OyBncm91cC5wcmVkc1twcmVkX2lkeF0gIT0gTlVNX1BSRURfVFlQRVM7DQor ICsrcHJlZF9pZHgpDQorICAgICAgew0KKyBmb3IgKHVuc2lnbmVkIGludCB2 ZWNfdHlwZV9pZHggPSAwOw0KKyAgICAgIGdyb3VwLm9wc19pbmZvcy50eXBl c1t2ZWNfdHlwZV9pZHhdLmluZGV4ICE9IE5VTV9WRUNUT1JfVFlQRVM7DQor ICAgICAgKyt2ZWNfdHlwZV9pZHgpDQorICAgew0KKyAgICB0cmVlIGluZGV4 X3R5cGUgPSBncm91cC5vcHNfaW5mb3MuYXJnc1sxXS5nZXRfdHJlZV90eXBl ICgNCisgICAgICAgZ3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lk eF0uaW5kZXgpOw0KKyAgICBpZiAoIWluZGV4X3R5cGUpDQorICAgICAgIGNv bnRpbnVlOw0KKyAgICBidWlsZF90aF9sb2Fkc3RvcmUgKGIsIGdyb3VwLCBw cmVkX2lkeCwgdmVjX3R5cGVfaWR4KTsNCisgICB9DQorICAgICAgfQ0KKyAg fQ0KKw0KKyAgY2hhciAqZ2V0X25hbWUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIs IGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0YW5jZSwNCisgICBib29s IG92ZXJsb2FkZWRfcCkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisNCisgICAg LyogUmV0dXJuIG51bGxwdHIgaWYgaXQgY2FuIG5vdCBiZSBvdmVybG9hZGVk LiAgKi8NCisgICAgaWYgKG92ZXJsb2FkZWRfcCAmJiAhaW5zdGFuY2UuYmFz ZS0+Y2FuX2JlX292ZXJsb2FkZWRfcCAoaW5zdGFuY2UucHJlZCkpDQorICAg ICAgcmV0dXJuIG51bGxwdHI7DQorDQorICAgIGIuYXBwZW5kX25hbWUgKCJf X3Jpc2N2X3RoXyIpOw0KKyAgICBiLmFwcGVuZF9uYW1lIChpbnN0YW5jZS5i YXNlX25hbWUpOw0KKyAgICAvKiB2b3BfdiAtLT4gdm9wX3ZfPHR5cGU+LiAg Ki8NCisgICAgaWYgKCFvdmVybG9hZGVkX3ApDQorICAgICAgew0KKyAvKiB2 b3AgLS0+IHZvcF92LiAgKi8NCisgYi5hcHBlbmRfbmFtZSAob3BlcmFuZF9z dWZmaXhlc1tpbnN0YW5jZS5vcF9pbmZvLT5vcF0pOw0KKyAvKiB2b3BfdiAt LT4gdm9wX3ZfPHR5cGU+LiAgKi8NCisgYi5hcHBlbmRfbmFtZSAodHlwZV9z dWZmaXhlc1tpbnN0YW5jZS50eXBlLmluZGV4XS52ZWN0b3IpOw0KKyAgICAg IH0NCisNCisgICAgLyogQWNjb3JkaW5nIHRvIHJ2di1pbnRyaW5zaWMtZG9j LCBpdCBkb2VzIG5vdCBhZGQgIl9tIiBzdWZmaXgNCisgICAgICAgZm9yIHZv cF9tIEMrKyBvdmVybG9hZGVkIEFQSS4gICovDQorICAgIGlmIChvdmVybG9h ZGVkX3AgJiYgaW5zdGFuY2UucHJlZCA9PSBQUkVEX1RZUEVfbSkNCisgICAg ICByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsNCisgICAgYi5hcHBlbmRfbmFt ZSAocHJlZGljYXRpb25fc3VmZml4ZXNbaW5zdGFuY2UucHJlZF0pOw0KKyAg ICByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsNCisgIH0NCit9Ow0KKw0KLyog YWx1X2RlZiBjbGFzcy4gICovDQpzdHJ1Y3QgYWx1X2RlZiA6IHB1YmxpYyBi dWlsZF9iYXNlDQp7DQpAQCAtNjMyLDYgKzc3MiwyMyBAQCBzdHJ1Y3QgcmVk dWNfYWx1X2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlDQogICB9DQp9Ow0KKy8q IHRoX2V4dHJhY3RfZGVmIGNsYXNzLiAgKi8NCitzdHJ1Y3QgdGhfZXh0cmFj dF9kZWYgOiBwdWJsaWMgYnVpbGRfYmFzZQ0KK3sNCisgIGNoYXIgKmdldF9u YW1lIChmdW5jdGlvbl9idWlsZGVyICZiLCBjb25zdCBmdW5jdGlvbl9pbnN0 YW5jZSAmaW5zdGFuY2UsDQorICAgICAgYm9vbCBvdmVybG9hZGVkX3ApIGNv bnN0IG92ZXJyaWRlDQorICB7DQorICAgIGIuYXBwZW5kX25hbWUgKCJfX3Jp c2N2X3RoXyIpOw0KKyAgICBiLmFwcGVuZF9uYW1lIChpbnN0YW5jZS5iYXNl X25hbWUpOw0KKw0KKyAgICBpZiAob3ZlcmxvYWRlZF9wKQ0KKyAgICAgIHJl dHVybiBiLmZpbmlzaF9uYW1lICgpOw0KKyAgICBiLmFwcGVuZF9uYW1lICh0 eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5cGUuaW5kZXhdLnZlY3Rvcik7DQor ICAgIGIuYXBwZW5kX25hbWUgKHR5cGVfc3VmZml4ZXNbaW5zdGFuY2UudHlw ZS5pbmRleF0uc2NhbGFyKTsNCisgICAgcmV0dXJuIGIuZmluaXNoX25hbWUg KCk7DQorICB9DQorfTsNCisNCi8qIHNjYWxhcl9tb3ZlX2RlZiBjbGFzcy4g ICovDQpzdHJ1Y3Qgc2NhbGFyX21vdmVfZGVmIDogcHVibGljIGJ1aWxkX2Jh c2UNCnsNCkBAIC0xMDk0LDYgKzEyNTEsOCBAQCBTSEFQRSh2c2V0dmwsIHZz ZXR2bCkNClNIQVBFKHZzZXR2bCwgdnNldHZsbWF4KQ0KU0hBUEUobG9hZHN0 b3JlLCBsb2Fkc3RvcmUpDQpTSEFQRShpbmRleGVkX2xvYWRzdG9yZSwgaW5k ZXhlZF9sb2Fkc3RvcmUpDQorU0hBUEUodGhfbG9hZHN0b3JlX3dpZHRoLCB0 aF9sb2Fkc3RvcmVfd2lkdGgpDQorU0hBUEUodGhfaW5kZXhlZF9sb2Fkc3Rv cmVfd2lkdGgsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoKQ0KU0hBUEUo YWx1LCBhbHUpDQpTSEFQRShhbHVfZnJtLCBhbHVfZnJtKQ0KU0hBUEUod2lk ZW5fYWx1LCB3aWRlbl9hbHUpDQpAQCAtMTEwNiw2ICsxMjY1LDcgQEAgU0hB UEUobW92ZSwgbW92ZSkNClNIQVBFKG1hc2tfYWx1LCBtYXNrX2FsdSkNClNI QVBFKHJlZHVjX2FsdSwgcmVkdWNfYWx1KQ0KU0hBUEUocmVkdWNfYWx1X2Zy bSwgcmVkdWNfYWx1X2ZybSkNCitTSEFQRSh0aF9leHRyYWN0LCB0aF9leHRy YWN0KQ0KU0hBUEUoc2NhbGFyX21vdmUsIHNjYWxhcl9tb3ZlKQ0KU0hBUEUo dnVuZGVmaW5lZCwgdnVuZGVmaW5lZCkNClNIQVBFKG1pc2MsIG1pc2MpDQpk aWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMtc2hhcGVzLmggYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy1zaGFwZXMuaA0KaW5kZXggYWMyYTI4Y2UwMTcuLmE3NjI0 ZDBmYWJkIDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmgNCisrKyBiL2djYy9jb25maWcvcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oDQpAQCAtMjgsNiAr MjgsOCBAQCBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHZz ZXR2bDsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdnNl dHZsbWF4Ow0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBs b2Fkc3RvcmU7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0 IGluZGV4ZWRfbG9hZHN0b3JlOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9z aGFwZSAqY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoOw0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdGhfaW5kZXhlZF9sb2Fkc3RvcmVf d2lkdGg7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IGFs dTsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgYWx1X2Zy bTsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3Qgd2lkZW5f YWx1Ow0KQEAgLTQxLDYgKzQzLDcgQEAgZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X3NoYXBlICpjb25zdCBtYXNrX2FsdTsNCmV4dGVybiBjb25zdCBmdW5jdGlv bl9zaGFwZSAqY29uc3QgcmVkdWNfYWx1Ow0KZXh0ZXJuIGNvbnN0IGZ1bmN0 aW9uX3NoYXBlICpjb25zdCByZWR1Y19hbHVfZnJtOw0KZXh0ZXJuIGNvbnN0 IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBzY2FsYXJfbW92ZTsNCitleHRlcm4g Y29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHRoX2V4dHJhY3Q7DQpleHRl cm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHZ1bmRlZmluZWQ7DQpl eHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IG1pc2M7DQpleHRl cm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHZzZXQ7DQpkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMu Y2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5j Yw0KaW5kZXggMjVlMGI2ZTU2ZGUuLjQ0YjlmZWMxODk4IDEwMDY0NA0KLS0t IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MN CisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5z LmNjDQpAQCAtOTM0LDYgKzkzNCwzMiBAQCBzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHJ2dl9hcmdfdHlwZV9pbmZvIGV4dF92Y3JlYXRlX2FyZ3NbXQ0KICAg PSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksDQogICAg ICBydnZfYXJnX3R5cGVfaW5mb19lbmR9Ow0KKy8qIEEgbGlzdCBvZiBhcmdz IGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLCBz aXplX3QpDQorICogZnVuY3Rpb24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgcnZ2X2FyZ190eXBlX2luZm8gc2NhbGFyX2NvbnN0X3B0cl9zaXpl X2FyZ3NbXQ0KKyAgPSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3Nj YWxhcl9jb25zdF9wdHIpLA0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJW Vl9CQVNFX3NpemUpLCBydnZfYXJnX3R5cGVfaW5mb19lbmR9Ow0KKw0KKy8q IEEgbGlzdCBvZiBhcmdzIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBz Y2FsYXJfdHlwZSAqLCBlZXc4X2luZGV4X3R5cGUpDQorICogZnVuY3Rpb24u ICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2lu Zm8gc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9hcmdzW10NCisgID0ge3J2dl9h cmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zY2FsYXJfY29uc3RfcHRyKSwNCisg ICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV91bnNpZ25lZF92ZWN0 b3IpLCBydnZfYXJnX3R5cGVfaW5mb19lbmR9Ow0KKw0KKy8qIEEgbGlzdCBv ZiBhcmdzIGZvciB2b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIGVldzhfaW5k ZXhfdHlwZSwgdmVjdG9yX3R5cGUpDQorICogZnVuY3Rpb24uICAqLw0KK3N0 YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8gc2NhbGFy X3B0cl9pbmRleF9hcmdzW10NCisgID0ge3J2dl9hcmdfdHlwZV9pbmZvIChS VlZfQkFTRV9zY2FsYXJfcHRyKSwNCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZv IChSVlZfQkFTRV91bnNpZ25lZF92ZWN0b3IpLA0KKyAgICAgcnZ2X2FyZ190 eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIHJ2dl9hcmdfdHlwZV9pbmZv X2VuZH07DQorDQorLyogQSBsaXN0IG9mIGFyZ3MgZm9yIHZvaWQgZnVuYyAo c2NhbGFyX3R5cGUgKiwgc2l6ZV90LCB2ZWN0b3JfdHlwZSkNCisgKiBmdW5j dGlvbi4gICovDQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfYXJnX3R5 cGVfaW5mbyBzY2FsYXJfcHRyX3NpemVfYXJnc1tdDQorICA9IHtydnZfYXJn X3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyX3B0ciksDQorICAgICBydnZf YXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2l6ZSksIHJ2dl9hcmdfdHlwZV9p bmZvIChSVlZfQkFTRV92ZWN0b3IpLA0KKyAgICAgcnZ2X2FyZ190eXBlX2lu Zm9fZW5kfTsNCisNCi8qIEEgbGlzdCBvZiBub25lIHByZWRzIHRoYXQgd2ls bCBiZSByZWdpc3RlcmVkIGZvciBpbnRyaW5zaWMgZnVuY3Rpb25zLiAgKi8N CnN0YXRpYyBDT05TVEVYUFIgY29uc3QgcHJlZGljYXRpb25fdHlwZV9pbmRl eCBub25lX3ByZWRzW10NCiAgID0ge1BSRURfVFlQRV9ub25lLCBOVU1fUFJF RF9UWVBFU307DQpAQCAtMTQ1NSw2ICsxNDgxLDE0IEBAIHN0YXRpYyBDT05T VEVYUFIgY29uc3QgcnZ2X29wX2luZm8gaXVfc2hpZnRfdnZ2X29wcw0KICAg ICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJl dHVybiB0eXBlICovDQogICAgICBzaGlmdF92dl9hcmdzIC8qIEFyZ3MgKi99 Ow0KKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHNjYWxh cl90eXBlIGZ1bmMgKHZlY3Rvcl90eXBlLCBzaXplX3QpDQorICogZnVuY3Rp b24gcmVnaXN0cmF0aW9uLiAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg cnZ2X29wX2luZm8gaXVfeF9zX3Vfb3BzDQorICA9IHtpdV9vcHMsICAgICAg ICAgIC8qIFR5cGVzICovDQorICAgICBPUF9UWVBFX3Z4LCAgICAgICAgLyog U3VmZml4ICovDQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vf c2NhbGFyKSwgLyogUmV0dXJuIHR5cGUgKi8NCisgICAgIHZfc2l6ZV9hcmdz IC8qIEFyZ3MgKi99Ow0KKw0KLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1h dGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAodmVjdG9yX3R5cGUsIHNpemVf dCkNCiAgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24uICovDQpzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1X3NoaWZ0X3Z2eF9vcHMNCkBA IC0yNjM4LDYgKzI2NzIsMzggQEAgc3RhdGljIENPTlNURVhQUiBjb25zdCBy dnZfb3BfaW5mbyBhbGxfdl92Y3JlYXRlX2xtdWw0X3gyX29wcw0KICAgICAg cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZsbXVsX2V4dF94MiksIC8q IFJldHVybiB0eXBlICovDQogICAgICBleHRfdmNyZWF0ZV9hcmdzIC8qIEFy Z3MgKi99Ow0KKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9y IHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICosDQorICog c2l6ZV90KSBmdW5jdGlvbiByZWdpc3RyYXRpb24uICAqLw0KK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gYWxsX3Zfc2NhbGFyX2NvbnN0 X3B0cl9zaXplX29wcw0KKyAgPSB7YWxsX29wcywgICAvKiBUeXBlcyAgKi8N CisgICAgIE9QX1RZUEVfdiwgICAvKiBTdWZmaXggICovDQorICAgICBydnZf YXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5 cGUgICovDQorICAgICBzY2FsYXJfY29uc3RfcHRyX3NpemVfYXJncyAvKiBB cmdzICovfTsNCisNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9u IGZvciB2b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIHNpemVfdCwNCisgKiB2 ZWN0b3JfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAgKi8NCitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92X3NjYWxhcl9w dHJfc2l6ZV9vcHMNCisgID0ge2FsbF9vcHMsIC8qIFR5cGVzICAqLw0KKyAg ICAgT1BfVFlQRV92LCAvKiBTdWZmaXggICovDQorICAgICBydnZfYXJnX3R5 cGVfaW5mbyAoUlZWX0JBU0Vfdm9pZCksIC8qIFJldHVybiB0eXBlICAqLw0K KyAgICAgc2NhbGFyX3B0cl9zaXplX2FyZ3MgLyogQXJncyAqL307DQorDQor LyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5 cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwNCisgKiBpbmRleF90eXBl KSBmdW5jdGlvbiByZWdpc3RyYXRpb24uICAqLw0KK3N0YXRpYyBDT05TVEVY UFIgY29uc3QgcnZ2X29wX2luZm8gYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9p bmRleF9vcHMNCisgID0ge2FsbF9vcHMsICAgLyogVHlwZXMgICovDQorICAg ICBPUF9UWVBFX3YsICAgLyogU3VmZml4ICAqLw0KKyAgICAgcnZ2X2FyZ190 eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlICAq Lw0KKyAgICAgc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9hcmdzIC8qIEFyZ3Mg Ki99Ow0KKw0KKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9y IHZvaWQgZnVuYyAoc2NhbGFyX3R5cGUgKiwgaW5kZXhfdHlwZSwNCisgKiB2 ZWN0b3JfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAgKi8NCitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGFsbF92X3NjYWxhcl9w dHJfaW5kZXhfb3BzDQorICA9IHthbGxfb3BzLCAvKiBUeXBlcyAgKi8NCisg ICAgIE9QX1RZUEVfdiwgLyogU3VmZml4ICAqLw0KKyAgICAgcnZ2X2FyZ190 eXBlX2luZm8gKFJWVl9CQVNFX3ZvaWQpLCAvKiBSZXR1cm4gdHlwZSAgKi8N CisgICAgIHNjYWxhcl9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsNCisN Ci8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90 eXBlIGZ1bmMgKHZlY3Rvcl90eXBlKS4NCiAgICBTb21lIGlucyBqdXN0IHN1 cHBvcnRzIFNFVz0zMiwgc3VjaCBhcyBjcnlwdG8gdmVjdG9sIFp2a2cgZXh0 ZW5zaW9uLg0KICAqIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gICovDQpAQCAt MjgxNiw2ICsyODgyLDEwIEBAIHN0YXRpYyBmdW5jdGlvbl9ncm91cF9pbmZv IGZ1bmN0aW9uX2dyb3Vwc1tdID0gew0KI2RlZmluZSBERUZfUlZWX0ZVTkNU SU9OKE5BTUUsIFNIQVBFLCBQUkVEUywgT1BTX0lORk8pICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCiAgIHsjTkFNRSwgJmJhc2VzOjpOQU1FLCAmc2hh cGVzOjpTSEFQRSwgUFJFRFMsIE9QU19JTkZPLCBSRVFVSVJFRF9FWFRFTlNJ T05TfSwNCiNpbmNsdWRlICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rp b25zLmRlZiINCisjdW5kZWYgREVGX1JWVl9GVU5DVElPTg0KKyNkZWZpbmUg REVGX1JWVl9GVU5DVElPTihOQU1FLCBTSEFQRSwgUFJFRFMsIE9QU19JTkZP KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICB7I05BTUUsICZiYXNl czo6TkFNRSwgJnNoYXBlczo6U0hBUEUsIFBSRURTLCBPUFNfSU5GTywgUkVR VUlSRURfRVhURU5TSU9OU30sDQorI2luY2x1ZGUgInRoZWFkLXZlY3Rvci1i dWlsdGlucy1mdW5jdGlvbnMuZGVmIg0KfTsNCi8qIFRoZSBSVlYgdHlwZXMs IHdpdGggdGhlaXIgYnVpbHQtaW4NCmRpZmYgLS1naXQgYS9nY2MvY29uZmln L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oIGIvZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaA0KaW5kZXggNTRjODgyNGZm OTIuLmE4ZWUzOWEzY2IyIDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaA0KKysrIGIvZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaA0KQEAgLTExNCw2ICsxMTQs NyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IENQX1dSSVRFX0NTUiA9 IDFVIDw8IDU7DQplbnVtIHJlcXVpcmVkX2V4dA0Kew0KICAgVkVDVE9SX0VY VCwgICAvKiBWZWN0b3IgZXh0ZW5zaW9uICovDQorICBYVEhFQURWRUNUT1Jf RVhULCAgIC8qIFhUaGVhZFZlY3RvciBleHRlbnNpb24gKi8NCiAgIFpWQkJf RVhULCAgICAvKiBDcnl0byB2ZWN0b3IgWnZiYiBzdWItZXh0ICovDQogICBa VkJCX09SX1pWS0JfRVhULCAvKiBDcnl0byB2ZWN0b3IgWnZiYiBvciB6dmti IHN1Yi1leHQgKi8NCiAgIFpWQkNfRVhULCAgICAvKiBDcnlwdG8gdmVjdG9y IFp2YmMgc3ViLWV4dCAqLw0KQEAgLTIzNCw2ICsyMzUsOCBAQCBzdHJ1Y3Qg ZnVuY3Rpb25fZ3JvdXBfaW5mbw0KICAgICB7DQogICAgICAgY2FzZSBWRUNU T1JfRVhUOg0KICAgICAgICAgcmV0dXJuIFRBUkdFVF9WRUNUT1I7DQorICAg ICAgY2FzZSBYVEhFQURWRUNUT1JfRVhUOg0KKyByZXR1cm4gVEFSR0VUX1hU SEVBRFZFQ1RPUjsNCiAgICAgICBjYXNlIFpWQkJfRVhUOg0KICAgICAgICAg cmV0dXJuIFRBUkdFVF9aVkJCOw0KICAgICAgIGNhc2UgWlZCQl9PUl9aVktC X0VYVDoNCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3QtcmlzY3Yg Yi9nY2MvY29uZmlnL3Jpc2N2L3QtcmlzY3YNCmluZGV4IDMyZGU2Yjg1MWMx Li4zODQ5NDMyMGQ4YiAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3Yv dC1yaXNjdg0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi90LXJpc2N2DQpAQCAt MSw2ICsxLDcgQEANClJJU0NWX0JVSUxUSU5TX0ggPSAkKHNyY2RpcikvY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oIFwNCiAgICQoc3Jj ZGlyKS9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmRlZiBc DQogICAkKHNyY2RpcikvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy1mdW5jdGlvbnMuZGVmIFwNCisgICAgICAgJChzcmNkaXIpL2NvbmZp Zy9yaXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZiBc DQogICByaXNjdi12ZWN0b3ItdHlwZS1pbmRleGVyLmdlbi5kZWYNCnJpc2N2 LWJ1aWx0aW5zLm86ICQoc3JjZGlyKS9jb25maWcvcmlzY3YvcmlzY3YtYnVp bHRpbnMuY2MgJChDT05GSUdfSCkgXA0KZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYg Yi9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5j dGlvbnMuZGVmDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAw MDAwMDAuLmZkM2JhMjliYWU5DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2Mv Y29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMu ZGVmDQpAQCAtMCwwICsxLDM5IEBADQorI2lmbmRlZiBERUZfUlZWX0ZVTkNU SU9ODQorI2RlZmluZSBERUZfUlZWX0ZVTkNUSU9OKE5BTUUsIFNIQVBFLCBQ UkVEUywgT1BTX0lORk8pDQorI2VuZGlmDQorDQorI2RlZmluZSBSRVFVSVJF RF9FWFRFTlNJT05TIFhUSEVBRFZFQ1RPUl9FWFQNCitERUZfUlZWX0ZVTkNU SU9OICh2bGIsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxs X3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAo dmxoLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3Nj YWxhcl9jb25zdF9wdHJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZsdywg dGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJf Y29uc3RfcHRyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bGJ1LCB0aF9s b2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25z dF9wdHJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZsaHUsIHRoX2xvYWRz dG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0 cl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmx3dSwgdGhfbG9hZHN0b3Jl X3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX29w cykNCitERUZfUlZWX0ZVTkNUSU9OICh2c2IsIHRoX2xvYWRzdG9yZV93aWR0 aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh2c2gsIHRoX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9t X3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX29wcykNCitERUZfUlZWX0ZVTkNU SU9OICh2c3csIHRoX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBh bGxfdl9zY2FsYXJfcHRyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bHNi LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxh cl9jb25zdF9wdHJfc2l6ZV9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmxz aCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2Fs YXJfY29uc3RfcHRyX3NpemVfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZs c3csIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2Nh bGFyX2NvbnN0X3B0cl9zaXplX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2 bHNidSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9z Y2FsYXJfY29uc3RfcHRyX3NpemVfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04g KHZsc2h1LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92 X3NjYWxhcl9jb25zdF9wdHJfc2l6ZV9vcHMpDQorREVGX1JWVl9GVU5DVElP TiAodmxzd3UsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxs X3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykNCitERUZfUlZWX0ZVTkNU SU9OICh2c3NiLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywg YWxsX3Zfc2NhbGFyX3B0cl9zaXplX29wcykNCitERUZfUlZWX0ZVTkNUSU9O ICh2c3NoLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxs X3Zfc2NhbGFyX3B0cl9zaXplX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2 c3N3LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zf c2NhbGFyX3B0cl9zaXplX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bHhi LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxs X3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9vcHMpDQorREVGX1JWVl9GVU5D VElPTiAodmx4aCwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxf cHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQ0KK0RF Rl9SVlZfRlVOQ1RJT04gKHZseHcsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dp ZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4 X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2bHhidSwgdGhfaW5kZXhlZF9s b2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25z dF9wdHJfaW5kZXhfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZseGh1LCB0 aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zf c2NhbGFyX2NvbnN0X3B0cl9pbmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElP TiAodmx4d3UsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3By ZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh2c3hiLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0 aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2luZGV4X29wcykN CitERUZfUlZWX0ZVTkNUSU9OICh2c3hoLCB0aF9pbmRleGVkX2xvYWRzdG9y ZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2luZGV4 X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2c3h3LCB0aF9pbmRleGVkX2xv YWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRy X2luZGV4X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2c3V4YiwgdGhfaW5k ZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2Nh bGFyX3B0cl9pbmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnN1eGgs IHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGFs bF92X3NjYWxhcl9wdHJfaW5kZXhfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04g KHZzdXh3LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3By ZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2luZGV4X29wcykNCitERUZfUlZWX0ZV TkNUSU9OICh2ZXh0X3hfdiwgdGhfZXh0cmFjdCwgbm9uZV9wcmVkcywgaXVf eF9zX3Vfb3BzKQ0KKyN1bmRlZiBSRVFVSVJFRF9FWFRFTlNJT05TDQorDQor I3VuZGVmIERFRl9SVlZfRlVOQ1RJT04NCmRpZmYgLS1naXQgYS9nY2MvY29u ZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZCBiL2djYy9jb25maWcvcmlzY3Yv dGhlYWQtdmVjdG9yLm1kDQppbmRleCA2OTZiODE1MjUyZC4uMGYzNzAwZDky NjkgMTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rv ci5tZA0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWQN CkBAIC0xLDcgKzEsOTUgQEANCihkZWZpbmVfY19lbnVtICJ1bnNwZWMiIFsN CisgIFVOU1BFQ19USF9WTEINCisgIFVOU1BFQ19USF9WTEJVDQorICBVTlNQ RUNfVEhfVkxIDQorICBVTlNQRUNfVEhfVkxIVQ0KKyAgVU5TUEVDX1RIX1ZM Vw0KKyAgVU5TUEVDX1RIX1ZMV1UNCisNCisgIFVOU1BFQ19USF9WTFNCDQor ICBVTlNQRUNfVEhfVkxTQlUNCisgIFVOU1BFQ19USF9WTFNIDQorICBVTlNQ RUNfVEhfVkxTSFUNCisgIFVOU1BFQ19USF9WTFNXDQorICBVTlNQRUNfVEhf VkxTV1UNCisNCisgIFVOU1BFQ19USF9WTFhCDQorICBVTlNQRUNfVEhfVkxY QlUNCisgIFVOU1BFQ19USF9WTFhIDQorICBVTlNQRUNfVEhfVkxYSFUNCisg IFVOU1BFQ19USF9WTFhXDQorICBVTlNQRUNfVEhfVkxYV1UNCisNCisgIFVO U1BFQ19USF9WU1VYQg0KKyAgVU5TUEVDX1RIX1ZTVVhIDQorICBVTlNQRUNf VEhfVlNVWFcNCisNCiAgIFVOU1BFQ19USF9WV0xEU1QNCl0pDQorKGRlZmlu ZV9pbnRfaXRlcmF0b3IgVU5TUEVDX1RIX1ZMTUVNX09QIFsNCisgIFVOU1BF Q19USF9WTEIgVU5TUEVDX1RIX1ZMQlUNCisgIFVOU1BFQ19USF9WTEggVU5T UEVDX1RIX1ZMSFUNCisgIFVOU1BFQ19USF9WTFcgVU5TUEVDX1RIX1ZMV1UN CitdKQ0KKw0KKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WTFNN RU1fT1AgWw0KKyAgVU5TUEVDX1RIX1ZMU0IgVU5TUEVDX1RIX1ZMU0JVDQor ICBVTlNQRUNfVEhfVkxTSCBVTlNQRUNfVEhfVkxTSFUNCisgIFVOU1BFQ19U SF9WTFNXIFVOU1BFQ19USF9WTFNXVQ0KK10pDQorDQorKGRlZmluZV9pbnRf aXRlcmF0b3IgVU5TUEVDX1RIX1ZMWE1FTV9PUCBbDQorICBVTlNQRUNfVEhf VkxYQiBVTlNQRUNfVEhfVkxYQlUNCisgIFVOU1BFQ19USF9WTFhIIFVOU1BF Q19USF9WTFhIVQ0KKyAgVU5TUEVDX1RIX1ZMWFcgVU5TUEVDX1RIX1ZMWFdV DQorXSkNCisNCisoZGVmaW5lX2ludF9hdHRyIHZsbWVtX29wX2F0dHIgWw0K KyAgKFVOU1BFQ19USF9WTEIgImIiKSAoVU5TUEVDX1RIX1ZMQlUgImJ1IikN CisgIChVTlNQRUNfVEhfVkxIICJoIikgKFVOU1BFQ19USF9WTEhVICJodSIp DQorICAoVU5TUEVDX1RIX1ZMVyAidyIpIChVTlNQRUNfVEhfVkxXVSAid3Ui KQ0KKyAgKFVOU1BFQ19USF9WTFNCICJiIikgKFVOU1BFQ19USF9WTFNCVSAi YnUiKQ0KKyAgKFVOU1BFQ19USF9WTFNIICJoIikgKFVOU1BFQ19USF9WTFNI VSAiaHUiKQ0KKyAgKFVOU1BFQ19USF9WTFNXICJ3IikgKFVOU1BFQ19USF9W TFNXVSAid3UiKQ0KKyAgKFVOU1BFQ19USF9WTFhCICJiIikgKFVOU1BFQ19U SF9WTFhCVSAiYnUiKQ0KKyAgKFVOU1BFQ19USF9WTFhIICJoIikgKFVOU1BF Q19USF9WTFhIVSAiaHUiKQ0KKyAgKFVOU1BFQ19USF9WTFhXICJ3IikgKFVO U1BFQ19USF9WTFhXVSAid3UiKQ0KKyAgKFVOU1BFQ19USF9WU1VYQiAiYiIp DQorICAoVU5TUEVDX1RIX1ZTVVhIICJoIikNCisgIChVTlNQRUNfVEhfVlNV WFcgInciKQ0KK10pDQorDQorKGRlZmluZV9pbnRfYXR0ciB2bG1lbV9vcmRl cl9hdHRyIFsNCisgIChVTlNQRUNfVEhfVkxYQiAiIikNCisgIChVTlNQRUNf VEhfVkxYSCAiIikNCisgIChVTlNQRUNfVEhfVkxYVyAiIikNCisgIChVTlNQ RUNfVEhfVlNVWEIgInUiKQ0KKyAgKFVOU1BFQ19USF9WU1VYSCAidSIpDQor ICAoVU5TUEVDX1RIX1ZTVVhXICJ1IikNCitdKQ0KKw0KKyhkZWZpbmVfaW50 X2l0ZXJhdG9yIFVOU1BFQ19USF9WU01FTV9PUCBbDQorICBVTlNQRUNfVEhf VkxCDQorICBVTlNQRUNfVEhfVkxIDQorICBVTlNQRUNfVEhfVkxXDQorXSkN CisNCisoZGVmaW5lX2ludF9pdGVyYXRvciBVTlNQRUNfVEhfVlNTTUVNX09Q IFsNCisgIFVOU1BFQ19USF9WTFNCDQorICBVTlNQRUNfVEhfVkxTSA0KKyAg VU5TUEVDX1RIX1ZMU1cNCitdKQ0KKw0KKyhkZWZpbmVfaW50X2l0ZXJhdG9y IFVOU1BFQ19USF9WU1hNRU1fT1AgWw0KKyAgVU5TUEVDX1RIX1ZMWEINCisg IFVOU1BFQ19USF9WTFhIDQorICBVTlNQRUNfVEhfVkxYVw0KKyAgVU5TUEVD X1RIX1ZTVVhCDQorICBVTlNQRUNfVEhfVlNVWEgNCisgIFVOU1BFQ19USF9W U1VYVw0KK10pDQorDQooZGVmaW5lX21vZGVfaXRlcmF0b3IgVl9WTFNfVlQg W1YgVkxTIFZUXSkNCihkZWZpbmVfbW9kZV9pdGVyYXRvciBWX1ZCX1ZMU19W VCBbViBWQiBWTFMgVlRdKQ0KQEAgLTEwMCwzICsxODgsMTY4IEBADQogICB9 DQogICBbKHNldF9hdHRyICJ0eXBlIiAidmxkbSx2c3RtLHZtYWx1LHZtYWx1 LHZtYWx1IikNCiAgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pDQor DQorKGRlZmluZV9leHBhbmQgIkBwcmVkX21vdl93aWR0aDx2bG1lbV9vcF9h dHRyPjxtb2RlPiINCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZfVkxTIDAg Im5vbmltbWVkaWF0ZV9vcGVyYW5kIikNCisgICAgKGlmX3RoZW5fZWxzZTpW X1ZMUw0KKyAgICAgICh1bnNwZWM6PFZNPg0KKyBbKG1hdGNoX29wZXJhbmQ6 PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIikNCisgKG1hdGNoX29wZXJh bmQgNCAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIikNCisgKG1hdGNoX29wZXJh bmQgNSAiY29uc3RfaW50X29wZXJhbmQiKQ0KKyAobWF0Y2hfb3BlcmFuZCA2 ICJjb25zdF9pbnRfb3BlcmFuZCIpDQorIChtYXRjaF9vcGVyYW5kIDcgImNv bnN0X2ludF9vcGVyYW5kIikNCisgKHJlZzpTSSBWTF9SRUdOVU0pDQorIChy ZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZMTUVNX09QKQ0KKyAg ICAgIChtYXRjaF9vcGVyYW5kOlZfVkxTIDMgInZlY3Rvcl9tb3ZlX29wZXJh bmQiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kOlZfVkxTIDIgInZlY3Rvcl9t ZXJnZV9vcGVyYW5kIikpKV0NCisgICJUQVJHRVRfWFRIRUFEVkVDVE9SIg0K KyAge30pDQorDQorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKnByZWRfbW92 X3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+Ig0KKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6Vl9WTFMgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICAgICAi PXZyLCAgICB2ciwgICAgdmQsICAgICBtLCAgICB2ciwgICAgdnIiKQ0KKyAg ICAoaWZfdGhlbl9lbHNlOlZfVkxTDQorICAgICAgKHVuc3BlYzo8Vk0+DQor IFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29wZXJhbmQi ICAgICJ2bVdjMSwgICBXYzEsICAgIHZtLCB2bVdjMSwgICBXYzEsICAgV2Mx IikNCisgKG1hdGNoX29wZXJhbmQgNCAidmVjdG9yX2xlbmd0aF9vcGVyYW5k IiAgICAgICAiICAgckssICAgIHJLLCAgICBySywgICAgckssICAgIHJLLCAg ICBySyIpDQorIChtYXRjaF9vcGVyYW5kIDUgImNvbnN0X2ludF9vcGVyYW5k IiAgICIgICAgaSwgICAgIGksICAgICBpLCAgICAgaSwgICAgIGksICAgICBp IikNCisgKG1hdGNoX29wZXJhbmQgNiAiY29uc3RfaW50X29wZXJhbmQiICAg IiAgICBpLCAgICAgaSwgICAgIGksICAgICBpLCAgICAgaSwgICAgIGkiKQ0K KyAobWF0Y2hfb3BlcmFuZCA3ICJjb25zdF9pbnRfb3BlcmFuZCIgICAiICAg IGksICAgICBpLCAgICAgaSwgICAgIGksICAgICBpLCAgICAgaSIpDQorIChy ZWc6U0kgVkxfUkVHTlVNKQ0KKyAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVO U1BFQ19USF9WTE1FTV9PUCkNCisgICAgICAobWF0Y2hfb3BlcmFuZDpWX1ZM UyAzICJyZWdfb3JfbWVtX29wZXJhbmQiICAgICAgICIgICAgbSwgICAgIG0s ICAgICBtLCAgICB2ciwgICAgdnIsICAgIHZyIikNCisgICAgICAobWF0Y2hf b3BlcmFuZDpWX1ZMUyAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIgICAgICIg ICAgMCwgICAgdnUsICAgIHZ1LCAgICB2dSwgICAgdnUsICAgICAwIikpKV0N CisgICIoVEFSR0VUX1hUSEVBRFZFQ1RPUg0KKyAgICAmJiAocmVnaXN0ZXJf b3BlcmFuZCAob3BlcmFuZHNbMF0sIDxNT0RFPm1vZGUpDQorIHx8IHJlZ2lz dGVyX29wZXJhbmQgKG9wZXJhbmRzWzNdLCA8TU9ERT5tb2RlKSkpIg0KKyAg IkANCisgICB2bDx2bG1lbV9vcF9hdHRyPi52XHQlMCwlMyVwMQ0KKyAgIHZs PHZsbWVtX29wX2F0dHI+LnZcdCUwLCUzDQorICAgdmw8dmxtZW1fb3BfYXR0 cj4udlx0JTAsJTMsJTEudA0KKyAgIHZzPHZsbWVtX29wX2F0dHI+LnZcdCUz LCUwJXAxDQorICAgdm12LnYudlx0JTAsJTMNCisgICB2bXYudi52XHQlMCwl MyINCisgICImJiByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwgPE1P REU+bW9kZSkNCisgICAmJiByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1sz XSwgPE1PREU+bW9kZSkNCisgICAmJiBzYXRpc2ZpZXNfY29uc3RyYWludF92 dSAob3BlcmFuZHNbMl0pDQorICAgJiYgSU5UVkFMIChvcGVyYW5kc1s3XSkg PT0gcmlzY3ZfdmVjdG9yOjpWTE1BWCINCisgIFsoc2V0IChtYXRjaF9kdXAg MCkgKG1hdGNoX2R1cCAzKSldDQorICAiIg0KKyAgWyhzZXRfYXR0ciAidHlw ZSIgInZsZGUsdmxkZSx2bGRlLHZzdGUsdmltb3Ysdmltb3YiKQ0KKyAgIChz ZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkNCisNCisoZGVmaW5lX2luc24g IkBwcmVkX3N0b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+Ig0KKyAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAibWVtb3J5X29wZXJhbmQiICIr bSIpDQorIChpZl90aGVuX2Vsc2U6VkkNCisgICAodW5zcGVjOjxWTT4NCisg ICAgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29wZXJh bmQiICJ2bVdjMSIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgMyAidmVjdG9y X2xlbmd0aF9vcGVyYW5kIiAgICAiICAgcksiKQ0KKyAgICAgIChtYXRjaF9v cGVyYW5kIDQgImNvbnN0X2ludF9vcGVyYW5kIiAiICAgIGkiKQ0KKyAgICAg IChyZWc6U0kgVkxfUkVHTlVNKQ0KKyAgICAgIChyZWc6U0kgVlRZUEVfUkVH TlVNKV0gVU5TUEVDX1RIX1ZTTUVNX09QKQ0KKyAgIChtYXRjaF9vcGVyYW5k OlZJIDIgInJlZ2lzdGVyX29wZXJhbmQiICIgICAgdnIiKQ0KKyAgIChtYXRj aF9kdXAgMCkpKV0NCisgICJUQVJHRVRfWFRIRUFEVkVDVE9SIg0KKyAgInZz PHZsbWVtX29wX2F0dHI+LnZcdCUyLCUwJXAxIg0KKyAgWyhzZXRfYXR0ciAi dHlwZSIgInZzdGUiKQ0KKyAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIp DQorICAgKHNldCAoYXR0ciAiYXZsX3R5cGVfaWR4IikgKGNvbnN0X2ludCA0 KSkNCisgICAoc2V0X2F0dHIgInZsX29wX2lkeCIgIjMiKV0pDQorDQorKGRl ZmluZV9pbnNuICJAcHJlZF9zdHJpZGVkX2xvYWRfd2lkdGg8dmxtZW1fb3Bf YXR0cj48bW9kZT4iDQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWSSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAiPXZyLCAgICB2ciwgICAgdmQiKQ0K KyAoaWZfdGhlbl9lbHNlOlZJDQorICAgKHVuc3BlYzo8Vk0+DQorICAgICBb KG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAi dm1XYzEsICAgV2MxLCAgICB2bSIpDQorICAgICAgKG1hdGNoX29wZXJhbmQg NSAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiAgICAiICAgckssICAgIHJLLCAg ICBySyIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNiAiY29uc3RfaW50X29w ZXJhbmQiICIgICAgaSwgICAgIGksICAgICBpIikNCisgICAgICAobWF0Y2hf b3BlcmFuZCA3ICJjb25zdF9pbnRfb3BlcmFuZCIgIiAgICBpLCAgICAgaSwg ICAgIGkiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDggImNvbnN0X2ludF9v cGVyYW5kIiAiICAgIGksICAgICBpLCAgICAgaSIpDQorICAgICAgKHJlZzpT SSBWTF9SRUdOVU0pDQorICAgICAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBV TlNQRUNfVEhfVkxTTUVNX09QKQ0KKyAgICh1bnNwZWM6VkkNCisgICAgIFso bWF0Y2hfb3BlcmFuZDpWSSAzICJtZW1vcnlfb3BlcmFuZCIgIiAgICBtLCAg ICAgbSwgICAgIG0iKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDQgInBtb2Rl X3JlZ19vcl8wX29wZXJhbmQiICAgIiAgIHJKLCAgICBySiwgICAgckoiKV0g VU5TUEVDX1RIX1ZMU01FTV9PUCkNCisgICAobWF0Y2hfb3BlcmFuZDpWSSAy ICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIgICAgICAiICAgIDAsICAgIHZ1LCAg ICB2dSIpKSldDQorICAiVEFSR0VUX1hUSEVBRFZFQ1RPUiINCisgICJ2bHM8 dmxtZW1fb3BfYXR0cj4udlx0JTAsJTMsJXo0JXAxIg0KKyAgWyhzZXRfYXR0 ciAidHlwZSIgInZsZHMiKQ0KKyAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RF PiIpXSkNCisNCisoZGVmaW5lX2luc24gIkBwcmVkX3N0cmlkZWRfc3RvcmVf d2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iDQorICBbKHNldCAobWF0Y2hf b3BlcmFuZDpWSSAwICJtZW1vcnlfb3BlcmFuZCIgIittIikNCisgKGlmX3Ro ZW5fZWxzZTpWSQ0KKyAgICh1bnNwZWM6PFZNPg0KKyAgICAgWyhtYXRjaF9v cGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIgInZtV2MxIikN CisgICAgICAobWF0Y2hfb3BlcmFuZCA0ICJ2ZWN0b3JfbGVuZ3RoX29wZXJh bmQiICAgICIgICBySyIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNSAiY29u c3RfaW50X29wZXJhbmQiICIgICAgaSIpDQorICAgICAgKHJlZzpTSSBWTF9S RUdOVU0pDQorICAgICAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNf VEhfVlNTTUVNX09QKQ0KKyAgICh1bnNwZWM6VkkNCisgICAgIFsobWF0Y2hf b3BlcmFuZCAyICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5kIiAgICIgICBySiIp DQorICAgICAgKG1hdGNoX29wZXJhbmQ6VkkgMyAicmVnaXN0ZXJfb3BlcmFu ZCIgICAgICAgIiAgIHZyIildIFVOU1BFQ19USF9WU1NNRU1fT1ApDQorICAg KG1hdGNoX2R1cCAwKSkpXQ0KKyAgIlRBUkdFVF9YVEhFQURWRUNUT1IiDQor ICAidnNzPHZsbWVtX29wX2F0dHI+LnZcdCUzLCUwLCV6MiVwMSINCisgIFso c2V0X2F0dHIgInR5cGUiICJ2c3RzIikNCisgICAoc2V0X2F0dHIgIm1vZGUi ICI8TU9ERT4iKQ0KKyAgIChzZXQgKGF0dHIgImF2bF90eXBlX2lkeCIpIChj b25zdF9pbnQgNSkpXSkNCisNCisoZGVmaW5lX2luc24gIkBwcmVkX2luZGV4 ZWRfbG9hZF93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiINCisgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlZJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAg Ij12ZCwgdnIsdmQsIHZyIikNCisgKGlmX3RoZW5fZWxzZTpWSQ0KKyAgICh1 bnNwZWM6PFZNPg0KKyAgICAgWyhtYXRjaF9vcGVyYW5kOjxWTT4gMSAidmVj dG9yX21hc2tfb3BlcmFuZCIgICIgdm0sV2MxLHZtLFdjMSIpDQorICAgICAg KG1hdGNoX29wZXJhbmQgNSAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiAgICAg IiBySywgckssckssIHJLIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCA2ICJj b25zdF9pbnRfb3BlcmFuZCIgIiAgaSwgIGksIGksICBpIikNCisgICAgICAo bWF0Y2hfb3BlcmFuZCA3ICJjb25zdF9pbnRfb3BlcmFuZCIgIiAgaSwgIGks IGksICBpIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCA4ICJjb25zdF9pbnRf b3BlcmFuZCIgIiAgaSwgIGksIGksICBpIikNCisgICAgICAocmVnOlNJIFZM X1JFR05VTSkNCisgICAgICAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BF Q19USF9WTFhNRU1fT1ApDQorICAgKHVuc3BlYzpWSQ0KKyAgICAgWyhtYXRj aF9vcGVyYW5kIDMgInBtb2RlX3JlZ19vcl8wX29wZXJhbmQiICAgICIgckos IHJKLHJKLCBySiIpDQorICAgICAgKG1lbTpCTEsgKHNjcmF0Y2gpKQ0KKyAg ICAgIChtYXRjaF9vcGVyYW5kOlZJIDQgInJlZ2lzdGVyX29wZXJhbmQiICIg dnIsIHZyLHZyLCB2ciIpXSBVTlNQRUNfVEhfVkxYTUVNX09QKQ0KKyAgICht YXRjaF9vcGVyYW5kOlZJIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIiAgICAg ICAiIHZ1LCB2dSwgMCwgIDAiKSkpXQ0KKyAgIlRBUkdFVF9YVEhFQURWRUNU T1IiDQorICAidmx4PHZsbWVtX29wX2F0dHI+LnZcdCUwLCglejMpLCU0JXAx Ig0KKyAgWyhzZXRfYXR0ciAidHlwZSIgInZsZHV4IikNCisgICAoc2V0X2F0 dHIgIm1vZGUiICI8TU9ERT4iKV0pDQorDQorKGRlZmluZV9pbnNuICJAcHJl ZF9pbmRleGVkXzx2bG1lbV9vcmRlcl9hdHRyPnN0b3JlX3dpZHRoPHZsbWVt X29wX2F0dHI+PG1vZGU+Ig0KKyAgWyhzZXQgKG1lbTpCTEsgKHNjcmF0Y2gp KQ0KKyAodW5zcGVjOkJMSw0KKyAgIFsodW5zcGVjOjxWTT4NCisgICAgIFso bWF0Y2hfb3BlcmFuZDo8Vk0+IDAgInZlY3Rvcl9tYXNrX29wZXJhbmQiICJ2 bVdjMSIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNCAidmVjdG9yX2xlbmd0 aF9vcGVyYW5kIiAgICAiICAgcksiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5k IDUgImNvbnN0X2ludF9vcGVyYW5kIiAiICAgIGkiKQ0KKyAgICAgIChyZWc6 U0kgVkxfUkVHTlVNKQ0KKyAgICAgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0g VU5TUEVDX1RIX1ZTWE1FTV9PUCkNCisgICAgKG1hdGNoX29wZXJhbmQgMSAi cG1vZGVfcmVnX29yXzBfb3BlcmFuZCIgICAgICAiICBySiIpDQorICAgICht YXRjaF9vcGVyYW5kOlZJIDIgInJlZ2lzdGVyX29wZXJhbmQiICIgIHZyIikN CisgICAgKG1hdGNoX29wZXJhbmQ6VkkgMyAicmVnaXN0ZXJfb3BlcmFuZCIg ICIgIHZyIildIFVOU1BFQ19USF9WU1hNRU1fT1ApKV0NCisgICJUQVJHRVRf WFRIRUFEVkVDVE9SIg0KKyAgInZzPHZsbWVtX29yZGVyX2F0dHI+eDx2bG1l bV9vcF9hdHRyPi52XHQlMywoJXoxKSwlMiVwMCINCisgIFsoc2V0X2F0dHIg InR5cGUiICJ2c3R1eCIpDQorICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+ IildKQ0KKw0KKyhkZWZpbmVfZXhwYW5kICJAcHJlZF90aF9leHRyYWN0PG1v ZGU+Ig0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6PFZFTD4gMCAicmVnaXN0 ZXJfb3BlcmFuZCIpDQorICh1bnNwZWM6PFZFTD4NCisgICBbKHZlY19zZWxl Y3Q6PFZFTD4NCisgICAgICAobWF0Y2hfb3BlcmFuZDpWX1ZMU0kgMSAicmVn aXN0ZXJfb3BlcmFuZCIpDQorICAgICAgKHBhcmFsbGVsIFsobWF0Y2hfb3Bl cmFuZDpESSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpXSkpDQorICAgIChy ZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1ZQUkVESUNBVEUpKV0NCisg ICJUQVJHRVRfWFRIRUFEVkVDVE9SIg0KK3t9KQ0KKw0KKyhkZWZpbmVfaW5z biAiKnByZWRfdGhfZXh0cmFjdDxtb2RlPiINCisgIFsoc2V0IChtYXRjaF9v cGVyYW5kOjxWRUw+IDAgInJlZ2lzdGVyX29wZXJhbmQiICAgIj1yIikNCisg ICh1bnNwZWM6PFZFTD4NCisgICAgWyh2ZWNfc2VsZWN0OjxWRUw+DQorICAg ICAgIChtYXRjaF9vcGVyYW5kOlZfVkxTSSAxICJyZWdpc3Rlcl9vcGVyYW5k IiAidnIiKQ0KKyAgICAgICAocGFyYWxsZWwgWyhtYXRjaF9vcGVyYW5kOkRJ IDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIildKSkNCisgICAgIChyZWc6U0kg VlRZUEVfUkVHTlVNKV0gVU5TUEVDX1ZQUkVESUNBVEUpKV0NCisgICJUQVJH RVRfWFRIRUFEVkVDVE9SIg0KKyAgInZleHQueC52XHQlMCwlMSwlMiINCisg IFsoc2V0X2F0dHIgInR5cGUiICJ2aW1vdnZ4IikNCisgICAoc2V0X2F0dHIg Im1vZGUiICI8TU9ERT4iKV0pDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxiLXZzYi5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3IvdmxiLXZzYi5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMDAwMDAuLjNjMTJjMTI0NTk3DQotLS0gL2Rldi9udWxsDQorKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZl Y3Rvci92bGItdnNiLmMNCkBAIC0wLDAgKzEsNjggQEANCisvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJn Y3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovDQorLyogeyBk Zy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAq Lw0KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCINCisNCisvKg0KKyoq IGYxOg0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1hDQor KiogdGgudmxiXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgu dmxiXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmFkZFwu dnZcdHZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rDQorKiogdGgudmFk ZFwudnZcdHZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rDQorKiogdGgu dnNiXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8N Cit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCkNCit7DQorICAgIHZp bnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTEgKGluLCA0KTsN CisgICAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTFf dHUgKHYsIGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MyA9IF9fcmlzY3Zf dmFkZF92dl9pMzJtMSAodjIsIHYyLCA0KTsNCisgICAgdmludDMybTFfdCB2 NCA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMV90dSAodjMsIHYyLCB2MiwgNCk7 DQorICAgIF9fcmlzY3ZfdGhfdnNiX3ZfaTMybTEgKG91dCwgdjQsIDQpOw0K K30NCisNCisvKg0KKyoqIGYyOg0KKyoqIHRoLnZzZXR2bGlcdFthLXgwLTld Kyx6ZXJvLGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpDQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEs dGEsbWENCisqKiB0aC52bGIudlx0dlswLTldKywwXChbYS14MC05XStcKSx2 MC50DQorKiogdGgudmFkZFwudnZcdHZbMC05XSssXHMqdlswLTldKyxccyp2 WzAtOV0rDQorKiogdGgudmFkZFwudnZcdHZbMS05XVswLTldPyxccyp2WzAt OV0rLFxzKnZbMC05XSssXHMqdjAudA0KKyoqIHRoLnZzYi52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYyICh2b2lk ICogaW4sIHZvaWQgKm91dCkNCit7DQorICAgIHZib29sMzJfdCBtYXNrID0g Kih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1l bW9yeSIpOw0KKyAgICB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYl92 X2kzMm0xIChpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2 X3RoX3ZsYl92X2kzMm0xX20gKG1hc2ssIGluLCA0KTsNCisgICAgdmludDMy bTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMSAodjIsIHYyLCA0KTsN CisgICAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMV9t IChtYXNrLCB2MywgdjMsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3ZzYl92X2kz Mm0xIChvdXQsIHY0LCA0KTsNCit9DQorDQorLyoNCisqKiBmMzoNCisqKiB0 aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWENCisqKiB0 aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZzZXRp dmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG11DQorKiogdGgudmxiXC52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmxiLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCksdjAudA0KKyoqIHRoLnZhZGRcLnZ2XHR2WzAtOV0rLFxz KnZbMC05XSssXHMqdlswLTldKw0KKyoqIHRoLnZhZGRcLnZ2XHR2WzEtOV1b MC05XT8sXHMqdlswLTldKyxccyp2WzAtOV0rLFxzKnYwLnQNCisqKiB0aC52 c2Iudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQor dm9pZCBmMyAodm9pZCAqIGluLCB2b2lkICpvdXQpDQorew0KKyAgICB2Ym9v bDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsNCisgICAgYXNtIHZvbGF0 aWxlICgiIjo6OiJtZW1vcnkiKTsNCisgICAgdmludDMybTFfdCB2ID0gX19y aXNjdl90aF92bGJfdl9pMzJtMSAoaW4sIDQpOw0KKyAgICB2aW50MzJtMV90 IHYyID0gX19yaXNjdl90aF92bGJfdl9pMzJtMV90dW11IChtYXNrLCB2LCBp biwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnZf aTMybTEgKHYyLCB2MiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjQgPSBfX3Jp c2N2X3ZhZGRfdnZfaTMybTFfdHVtdSAobWFzaywgdjMsIHYyLCB2MiwgNCk7 DQorICAgIF9fcmlzY3ZfdGhfdnNiX3ZfaTMybTEgKG91dCwgdjQsIDQpOw0K K30NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2Iu Yw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4z MGJlZjM2OTM3NQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2Iu Yw0KQEAgLTAsMCArMSw2OCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICov DQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9y IC1tYWJpPWlscDMyZCAtTzMiIH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgY2hl Y2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovDQorI2luY2x1ZGUg InJpc2N2X3RoX3ZlY3Rvci5oIg0KKw0KKy8qDQorKiogZjE6DQorKiogdGgu dnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWENCisqKiB0aC52bGJ1XC52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmxidVwudlx0dlsw LTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0r LFxzKnZbMC05XSssXHMqLTE2DQorKiogdGgudmFkZFwudmlcdHZbMC05XSss XHMqdlswLTldKyxccyotMTYNCisqKiB0aC52c2JcLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjEgKHZvaWQgKiBp biwgdm9pZCAqb3V0LCB1aW50MzJfdCB4KQ0KK3sNCisgICAgdnVpbnQzMm0x X3QgdiA9IF9fcmlzY3ZfdGhfdmxidV92X3UzMm0xIChpbiwgNCk7DQorICAg IHZ1aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGJ1X3ZfdTMybTFfdHUg KHYsIGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3Zh ZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOw0KKyAgICB2dWludDMybTFfdCB2 NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV90dSAodjMsIHYyLCAtMTYsIDQp Ow0KKyAgICBfX3Jpc2N2X3RoX3ZzYl92X3UzMm0xIChvdXQsIHY0LCA0KTsN Cit9DQorDQorLyoNCisqKiBmMjoNCisqKiB0aC52c2V0dmxpXHRbYS14MC05 XSssemVybyxlOCxtZjQsdGEsbWENCisqKiB0aC52bG0udlx0dlswLTldKyww XChbYS14MC05XStcKQ0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0x LHRhLG1hDQorKiogdGgudmxidS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp LHYwLnQNCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxz Ki0xNg0KKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTld KyxccyotMTYsXHMqdjAudA0KKyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYyICh2b2lkICogaW4s IHZvaWQgKm91dCwgdWludDMyX3QgeCkNCit7DQorICAgIHZib29sMzJfdCBt YXNrID0gKih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIi Ojo6Im1lbW9yeSIpOw0KKyAgICB2dWludDMybTFfdCB2ID0gX19yaXNjdl90 aF92bGJ1X3ZfdTMybTEgKGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjIg PSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMV9tIChtYXNrLCBpbiwgNCk7DQor ICAgIHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2 MiwgLTE2LCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3Zh ZGRfdnhfdTMybTFfbSAobWFzaywgdjMsIC0xNiwgNCk7DQorICAgIF9fcmlz Y3ZfdGhfdnNiX3ZfdTMybTEgKG91dCwgdjQsIDQpOw0KK30NCisNCisvKg0K KyoqIGYzOg0KKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1m NCx0YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp DQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUNCisqKiB0 aC52bGJ1XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmxi dS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRk XC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRc LnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudA0K KyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0 DQorKi8NCit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMy X3QgeCkNCit7DQorICAgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3Qq KWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0KKyAg ICB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGJ1X3ZfdTMybTEgKGlu LCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYnVf dl91MzJtMV90dW11IChtYXNrLCB2LCBpbiwgNCk7DQorICAgIHZ1aW50MzJt MV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsN CisgICAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFf dHVtdSAobWFzaywgdjMsIHYyLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3Ro X3ZzYl92X3UzMm0xIChvdXQsIHY0LCA0KTsNCit9DQpkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0 b3IvdmxoLXZzaC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5jDQpuZXcgZmlsZSBtb2RlIDEw MDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjNjOGI1Y2NjMTZiDQotLS0gL2Rl di9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNoLmMNCkBAIC0wLDAgKzEsNjggQEAN CisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAi LW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9 ICovDQorLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAi KioiICIiIH0gfSAqLw0KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCIN CisNCisvKg0KKyoqIGYxOg0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMy LG0xLHR1LG1hDQorKiogdGgudmxoXC52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpDQorKiogdGgudmxoXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQor KiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisq KiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoq IHRoLnZzaFwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0K KyovDQordm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDMyX3Qg eCkNCit7DQorICAgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxoX3Zf aTMybTEgKGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MiA9IF9fcmlzY3Zf dGhfdmxoX3ZfaTMybTFfdHUgKHYsIGluLCA0KTsNCisgICAgdmludDMybTFf dCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIC0xNiwgNCk7DQor ICAgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTFfdHUg KHYzLCB2MiwgLTE2LCA0KTsNCisgICAgX19yaXNjdl90aF92c2hfdl9pMzJt MSAob3V0LCB2NCwgNCk7DQorfQ0KKw0KKy8qDQorKiogZjI6DQorKiogdGgu dnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hDQorKiogdGgu dmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52c2V0aXZs aVx0emVybyw0LGUzMixtMSx0YSxtYQ0KKyoqIHRoLnZsaC52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52aVx0dlswLTld Kyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1b MC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudA0KKyoqIHRoLnZzaC52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lk IGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQ0KK3sNCisg ICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQorICAgIGFz bSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZpbnQzMm0xX3Qg diA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTEgKGluLCA0KTsNCisgICAgdmlu dDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTFfbSAobWFzaywg aW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4 X2kzMm0xICh2MiwgLTE2LCA0KTsNCisgICAgdmludDMybTFfdCB2NCA9IF9f cmlzY3ZfdmFkZF92eF9pMzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsNCisg ICAgX19yaXNjdl90aF92c2hfdl9pMzJtMSAob3V0LCB2NCwgNCk7DQorfQ0K Kw0KKy8qDQorKiogZjM6DQorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHpl cm8sZTgsbWY0LHRhLG1hDQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCkNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxt dQ0KKyoqIHRoLnZsaFwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoq IHRoLnZsaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0 aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRo LnZhZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyotMTYsXHMq djAudA0KKyoqIHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQor KiogcmV0DQorKi8NCit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwg aW50MzJfdCB4KQ0KK3sNCisgICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29s MzJfdCopaW47DQorICAgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7 DQorICAgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTEg KGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxo X3ZfaTMybTFfdHVtdSAobWFzaywgdiwgaW4sIDQpOw0KKyAgICB2aW50MzJt MV90IHYzID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xICh2MiwgLTE2LCA0KTsN CisgICAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMV90 dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7DQorICAgIF9fcmlzY3ZfdGhf dnNoX3ZfaTMybTEgKG91dCwgdjQsIDQpOw0KK30NCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rv ci92bGh1LXZzaC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYw0KbmV3IGZpbGUgbW9kZSAx MDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5iN2MwMDQwNGYxOA0KLS0tIC9k ZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYw0KQEAgLTAsMCArMSw2OCBA QA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25z ICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJpPWlscDMyZCAtTzMi IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVz ICIqKiIgIiIgfSB9ICovDQorI2luY2x1ZGUgInJpc2N2X3RoX3ZlY3Rvci5o Ig0KKw0KKy8qDQorKiogZjE6DQorKiogdGgudnNldGl2bGlcdHplcm8sNCxl MzIsbTEsdHUsbWENCisqKiB0aC52bGh1XC52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpDQorKiogdGgudmxodVwudlx0dlswLTldKywwXChbYS14MC05XStc KQ0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2 DQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYN CisqKiB0aC52c2hcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiBy ZXQNCisqLw0KK3ZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50 MzJfdCB4KQ0KK3sNCisgICAgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhf dmxodV92X3UzMm0xIChpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYyID0g X19yaXNjdl90aF92bGh1X3ZfdTMybTFfdHUgKHYsIGluLCA0KTsNCisgICAg dnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAt MTYsIDQpOw0KKyAgICB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92 eF91MzJtMV90dSAodjMsIHYyLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3Ro X3ZzaF92X3UzMm0xIChvdXQsIHY0LCA0KTsNCit9DQorDQorLyoNCisqKiBm MjoNCisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEs bWENCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoq IHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRhLG1hDQorKiogdGgudmxo dS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRk XC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRc LnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudA0K KyoqIHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0 DQorKi8NCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMy X3QgeCkNCit7DQorICAgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3Qq KWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0KKyAg ICB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGh1X3ZfdTMybTEgKGlu LCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVf dl91MzJtMV9tIChtYXNrLCBpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYz ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsNCisgICAg dnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfbSAobWFz aywgdjMsIC0xNiwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnNoX3ZfdTMybTEg KG91dCwgdjQsIDQpOw0KK30NCisNCisvKg0KKyoqIGYzOg0KKyoqIHRoLnZz ZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZs bS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudnNldGl2bGlc dHplcm8sNCxlMzIsbTEsdHUsbXUNCisqKiB0aC52bGh1XC52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpDQorKiogdGgudmxodS52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2 WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05XT8s XHMqdlswLTldKyxccyotMTYsXHMqdjAudA0KKyoqIHRoLnZzaC52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYzICh2 b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkNCit7DQorICAgIHZi b29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20gdm9s YXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0KKyAgICB2dWludDMybTFfdCB2ID0g X19yaXNjdl90aF92bGh1X3ZfdTMybTEgKGluLCA0KTsNCisgICAgdnVpbnQz Mm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMV90dW11IChtYXNr LCB2LCBpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92 YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsNCisgICAgdnVpbnQzMm0xX3Qg djQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHVtdSAobWFzaywgdjMsIHYy LCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3ZzaF92X3UzMm0xIChvdXQs IHY0LCA0KTsNCit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3LXZzdy5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Iv dmx3LXZzdy5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAw MDAwMDAuLjE3YTUzMDEyYWNmDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92 bHctdnN3LmMNCkBAIC0wLDAgKzEsNjggQEANCisvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3h0aGVh ZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovDQorLyogeyBkZy1maW5h bCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLw0KKyNp bmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCINCisNCisvKg0KKyoqIGYxOg0K KyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1hDQorKiogdGgu dmx3XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmx3XC52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmFkZFwudnhcdHZb MC05XSssXHMqdlswLTldKyxccypbYS14MC05XSsNCisqKiB0aC52YWRkXC52 eFx0dlswLTldKyxccyp2WzAtOV0rLFxzKlthLXgwLTldKw0KKyoqIHRoLnZz d1wudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQor dm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDMyX3QgeCkNCit7 DQorICAgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTEg KGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmx3 X3ZfaTMybTFfdHUgKHYsIGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MyA9 IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIHgsIDQpOw0KKyAgICB2aW50 MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX3R1ICh2MywgdjIs IHgsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3Zzd192X2kzMm0xIChvdXQsIHY0 LCA0KTsNCit9DQorDQorLyoNCisqKiBmMjoNCisqKiB0aC52c2V0dmxpXHRb YS14MC05XSssemVybyxlOCxtZjQsdGEsbWENCisqKiB0aC52bG0udlx0dlsw LTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQs ZTMyLG0xLHRhLG1hDQorKiogdGgudmx3LnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCksdjAudA0KKyoqIHRoLnZhZGRcLnZ4XHR2WzAtOV0rLFxzKnZbMC05 XSssXHMqW2EteDAtOV0rDQorKiogdGgudmFkZFwudnhcdHZbMS05XVswLTld Pyxccyp2WzAtOV0rLFxzKlthLXgwLTldKyxccyp2MC50DQorKiogdGgudnN3 LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3Zv aWQgZjIgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpDQorew0K KyAgICB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsNCisgICAg YXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsNCisgICAgdmludDMybTFf dCB2ID0gX19yaXNjdl90aF92bHdfdl9pMzJtMSAoaW4sIDQpOw0KKyAgICB2 aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bHdfdl9pMzJtMV9tIChtYXNr LCBpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRf dnhfaTMybTEgKHYyLCB4LCA0KTsNCisgICAgdmludDMybTFfdCB2NCA9IF9f cmlzY3ZfdmFkZF92eF9pMzJtMV9tIChtYXNrLCB2MywgeCwgNCk7DQorICAg IF9fcmlzY3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOw0KK30NCisN CisvKg0KKyoqIGYzOg0KKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJv LGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpDQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUN CisqKiB0aC52bHdcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0 aC52bHcudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50DQorKiogdGgu dmFkZFwudnhcdHZbMC05XSssXHMqdlswLTldKyxccypbYS14MC05XSsNCisq KiB0aC52YWRkXC52eFx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqW2Et eDAtOV0rLFxzKnYwLnQNCisqKiB0aC52c3cudlx0dlswLTldKywwXChbYS14 MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBmMyAodm9pZCAqIGluLCB2 b2lkICpvdXQsIGludDMyX3QgeCkNCit7DQorICAgIHZib29sMzJfdCBtYXNr ID0gKih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6 Im1lbW9yeSIpOw0KKyAgICB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zs d192X2kzMm0xIChpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jp c2N2X3RoX3Zsd192X2kzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsNCisg ICAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIs IHgsIDQpOw0KKyAgICB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4 X2kzMm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgeCwgNCk7DQorICAgIF9fcmlz Y3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOw0KK30NCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVh ZHZlY3Rvci92bHd1LXZzdy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYw0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5iMTg3Y2ZjODUyYg0K LS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYw0KQEAgLTAsMCAr MSw2OCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1v cHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJpPWlscDMy ZCAtTzMiIH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24t Ym9kaWVzICIqKiIgIiIgfSB9ICovDQorI2luY2x1ZGUgInJpc2N2X3RoX3Zl Y3Rvci5oIg0KKw0KKy8qDQorKiogZjE6DQorKiogdGgudnNldGl2bGlcdHpl cm8sNCxlMzIsbTEsdHUsbWENCisqKiB0aC52bHd1XC52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpDQorKiogdGgudmx3dVwudlx0dlswLTldKywwXChbYS14 MC05XStcKQ0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSss XHMqLTE2DQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxc cyotMTYNCisqKiB0aC52c3dcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkN CisqKiByZXQNCisqLw0KK3ZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0 LCB1aW50MzJfdCB4KQ0KK3sNCisgICAgdnVpbnQzMm0xX3QgdiA9IF9fcmlz Y3ZfdGhfdmx3dV92X3UzMm0xIChpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90 IHYyID0gX19yaXNjdl90aF92bHd1X3ZfdTMybTFfdHUgKHYsIGluLCA0KTsN CisgICAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEg KHYyLCAtMTYsIDQpOw0KKyAgICB2dWludDMybTFfdCB2NCA9IF9fcmlzY3Zf dmFkZF92eF91MzJtMV90dSAodjMsIHYyLCAtMTYsIDQpOw0KKyAgICBfX3Jp c2N2X3RoX3Zzd192X3UzMm0xIChvdXQsIHY0LCA0KTsNCit9DQorDQorLyoN CisqKiBmMjoNCisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxt ZjQsdGEsbWENCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStc KQ0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRhLG1hDQorKiog dGgudmx3dS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0 aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRo LnZhZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyotMTYsXHMq djAudA0KKyoqIHRoLnZzdy52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQor KiogcmV0DQorKi8NCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwg dWludDMyX3QgeCkNCit7DQorICAgIHZib29sMzJfdCBtYXNrID0gKih2Ym9v bDMyX3QqKWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIp Ow0KKyAgICB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bHd1X3ZfdTMy bTEgKGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3Ro X3Zsd3Vfdl91MzJtMV9tIChtYXNrLCBpbiwgNCk7DQorICAgIHZ1aW50MzJt MV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsN CisgICAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFf bSAobWFzaywgdjMsIC0xNiwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnN3X3Zf dTMybTEgKG91dCwgdjQsIDQpOw0KK30NCisNCisvKg0KKyoqIGYzOg0KKyoq IHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQ0KKyoq IHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudnNl dGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUNCisqKiB0aC52bHd1XC52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmx3dS52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52aVx0dlswLTld Kyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1b MC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudA0KKyoqIHRoLnZzdy52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lk IGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkNCit7DQor ICAgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOw0KKyAgICBh c20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0KKyAgICB2dWludDMybTFf dCB2ID0gX19yaXNjdl90aF92bHd1X3ZfdTMybTEgKGluLCA0KTsNCisgICAg dnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJtMV90dW11 IChtYXNrLCB2LCBpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYzID0gX19y aXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsNCisgICAgdnVpbnQz Mm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHVtdSAobWFzaywg djMsIHYyLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3Zzd192X3UzMm0x IChvdXQsIHY0LCA0KTsNCit9DQotLSANCjIuMTcuMQ0KIA0KIA0K ------=_001_NextPart302864076212_=------