From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id 283E871050; Wed, 20 Oct 2021 15:01:37 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 283E871050 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1634731297; bh=YpwBLtUO2yr8bftgQ3+EVTv1xovW2QY+AdYshKouUrY=; h=To:Cc:Date:In-Reply-To:References:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=zB3pZSl4z0BRbNlmxGRuoklcfNCr7UNo2OPk1BFK8qyjHatkVBOppokg5cbr4mS4Q oiS2N6gTHaDWphXmogehaP1fAFUMsInE0gbPs0NfXZFL1PZz90NPhrRwS1Wb2MXmar ufzpp2+dsubBjnIxlx4AGkkcrp/daaVKJUVKj4CY= Received: from f323.i.mail.ru (f323.i.mail.ru [217.69.130.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 362F771050 for ; Wed, 20 Oct 2021 15:01:35 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 362F771050 Received: by f323.i.mail.ru with local (envelope-from ) id 1mdAHl-0001nY-K8; Wed, 20 Oct 2021 15:01:34 +0300 Received: by e.mail.ru with HTTP; Wed, 20 Oct 2021 15:01:33 +0300 To: =?UTF-8?B?0JzQsNC60YHQuNC8INCa0L7RgNGP0LrRiNC40L0=?= Cc: tarantool-patches@dev.tarantool.org, kashkin.nsaa@gmail.com MIME-Version: 1.0 X-Mailer: Mail.Ru Mailer 1.0 X-SenderField-ReMsg: 16347304261045157924 X-SenderField-Remind: 0 Date: Wed, 20 Oct 2021 15:01:33 +0300 X-Priority: 3 (Normal) Message-ID: <1634731293.522728636@f323.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--5f28Ef67329aaE1De2A80FfEf871087A1634731293" In-Reply-To: <1634730409.649674530@f176.i.mail.ru> References: <20211020083608.2280-1-lord.nemo@protonmail.com> <1634730409.649674530@f176.i.mail.ru> X-7564579A: B8F34718100C35BD X-77F55803: 119C1F4DF6A9251C72B1C60A8907C0818B4569378E154EA39345E9E8F73CBD238FD872164937FA4C5C670BE29274BA5DCCDC3EA66C0A3E2AA0B8E5864A89ABD13CD26A44526C659A X-7FA49CB5: 70AAF3C13DB7016878DA827A17800CE7634DA54AB33A6E90D82A6BABE6F325AC08BE7437D75B48FABCF491FFA38154B613377AFFFEAFD2691661749BA6B977358D182E101C1D8075C2099A533E45F2D0395957E7521B51C2CFCAF695D4D8E9FCEA1F7E6F0F101C6778DA827A17800CE7AD3501B5CE9C42E3EA1F7E6F0F101C6723150C8DA25C47586E58E00D9D99D84E1BDDB23E98D2D38BBCA57AF85F7723F209A498DCBBE6DEA848BF3336599DC09CCC7F00164DA146DAFE8445B8C89999728AA50765F7900637F6B57BC7E64490618DEB871D839B7333395957E7521B51C2DFABB839C843B9C08941B15DA834481F8AA50765F7900637F6B57BC7E6449061A352F6E88A58FB86F5D81C698A659EA7E827F84554CEF5019E625A9149C048EE9ECD01F8117BC8BEE2021AF6380DFAD18AA50765F790063735872C767BF85DA227C277FBC8AE2E8B569F1129A2C6445075ECD9A6C639B01B4E70A05D1297E1BBCB5012B2E24CD356 X-C1DE0DAB: 0D63561A33F958A52705C2A969225DB2C69DE1BF06DED6FC145108A00525C38ABDC6A1CF3F042BAD6DF99611D93F60EF166FC1BB2721D293DC48ACC2A39D04F89CDFB48F4795C241BDAD6C7F3747799A X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D3498910055B812BD9C50B4F93EBE3255984009F3E770C08A5EA331EE1D573B77B2DF33B28BB154DE871D7E09C32AA3244C2631F2124BC97A8F101BB2F10A0ADA213C6EB905E3A8056BFACE5A9C96DEB163 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5+wYjsrrSY/u8Y3PrTqANeitKFiSd6Yd7yPpbiiZ/d5BsxIjK0jGQgCHUM3Ry2Lt2G3MDkMauH3h0dBdQGj+BB/iPzQYh7XS329fgu+/vnDhZJEX0OMThN9CKx2BKueAiA== X-Mailru-MI: 800 X-Mailru-Sender: EFA0F3A8419EF21689D6D9D711D6B278656339FDF6D289C0A77FFE88860AAC30CEEE0683EC9C94AF06CD02445D2D9C8FA2BFD6D8330F0C2D563E610FBBDBB4C842051EA7CBBFB509093DA5C00B83CE8412EB40C6FA10D71EFD657A8799238ED567EA787935ED9F1B X-Mras: Ok X-Spam: undefined Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH=5D_sql=3A_Replaced_naive_?= =?utf-8?q?position_alg_with_KMP?= X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: =?utf-8?b?0JzQsNC60YHQuNC8INCa0L7RgNGP0LrRiNC40L0gdmlhIFRhcmFudG9vbC1w?= =?utf-8?q?atches?= Reply-To: =?UTF-8?B?0JzQsNC60YHQuNC8INCa0L7RgNGP0LrRiNC40L0=?= Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" ----ALT--5f28Ef67329aaE1De2A80FfEf871087A1634731293 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhpIQpJIHdhcyB3cm9uZyBhYm91dCBpbmRlbnRhdGlvbjogaW4gQyBjb2RlIGl0IHNob3VsZCBi ZSA4LXN5bWJvbCB3aWRlIHRhYnMuClNvcnJ5LCBteSBiYWQuCsKgCkJlc3QgcmVnYXJkcywKTWF4 aW0gS29rcnlhc2hraW4gCj7QodGA0LXQtNCwLCAyMCDQvtC60YLRj9Cx0YDRjyAyMDIxLCAxNDo0 NyArMDM6MDAg0L7RgiDQnNCw0LrRgdC40Lwg0JrQvtGA0Y/QutGI0LjQvSB2aWEgVGFyYW50b29s LXBhdGNoZXMgPHRhcmFudG9vbC1wYXRjaGVzQGRldi50YXJhbnRvb2wub3JnPjoKPsKgCj5IaSEg VGhhbmtzIGZvciB0aGUgcGF0Y2ghCj5QbGVhc2UgY29uc2lkZXIgbXkgY29tbWVudHMgYmVsb3cu Cj7CoAo+VXNlIHRoZSBpbXBlcmF0aXZlIG1vb2QgaW4gdGhlIHN1YmplY3QgbGluZSBhcyBpdCBp cyBzdGF0ZWQgaW4gdGhlIGRldmVsb3Blcgo+Z3VpZGVsaW5lWzFdLiBBIHByb3Blcmx5IGZvcm1l ZCBHaXTCoGNvbW1pdCBzdWJqZWN0wqBsaW5lIHNob3VsZCBhbHdheXMgYmUKPmFibGUgdG8gY29t cGxldGUgdGhlIGZvbGxvd2luZ8Kgc2VudGVuY2U6IOKAnElmIGFwcGxpZWQsIHRoaXMgY29tbWl0 IHdpbGwgwqAKPi95b3VyIHN1YmplY3QgbGluZSBoZXJlLyDigJ0uIAo+PtCh0YDQtdC00LAsIDIw INC+0LrRgtGP0LHRgNGPIDIwMjEsIDExOjM3ICswMzowMCDQvtGCIExvcmQgdmlhIFRhcmFudG9v bC1wYXRjaGVzIDwgdGFyYW50b29sLXBhdGNoZXNAZGV2LnRhcmFudG9vbC5vcmcgPjoKPj7CoAo+ PkZyb206IEdsZWIgPCBrYXNoa2luLm5zYWFAZ21haWwuY29tID4KPj4KPj5SZXBsYWNlZCBwb3Np dGlvbmluZyBsb2dpYyBpbiBQT1NJVElPTigpIGFuZCBSRVBMQUNFKCkgc3FsIGZ1bmN0aW9ucwo+ VHlwbzogcy9zcWwvU1FMCj4+d2l0aCBLbnV0aC1Nb3JyaXMtUHJhdHQgYWxnb3JpdGhtIGJ5IGFk ZGluZyB0d28gZGlmZmVyZW50IHZlcnNpb25zCj4+b2YgbGF0dGVyIGZvciBTVFJJTkcgYW5kIFZB UkJJTkFSWSBhcmd1bWVudHMgYW5kIGNvcnJlc3BvbmRpbmcKPj5wcmVmaXggdGFibGUgZ2VuZXJh dG9ycy4KPj5TbGlnaHRseSBhZGFwdGVkIHRlc3RzIHRvIGZpdCBuZXcgY29sbGF0aW9uIHJ1bGVz IHRoYXQgZGlmZmVyCj4+ZGVjb3JhdGVkIGxldHRlcnMuCj4+Cj4+SW1wcm92ZWQgYXN5bXB0b3Rp Y3Mgb2YgcG9zaXRpb25pbmcgbG9naWMgdG86Cj4+dGltZSBPKGhheXN0YWNrX2xlbiArIG5lZWRs ZV9sZW4pLCBtZW0gTyhuZWVkbGVfbGVuKQo+PkFzIG9uZSBvZiBjb2xsYXRpbmcgdHlwZXMgaXMg YSB1bmljb2RlIHN0cmluZywKPlR5cG86IHMvdW5pY29kZS9Vbmljb2RlCj4+SUNVIFVDaGFySXRl cmF0b3JzIGhhZCB0byBiZSB1c2VkIGFuZCB0aHVzIHVuaWNvZGUKPlR5cG86IHMvdW5pY29kZS9V bmljb2RlCj4+bGV0dGVycyBhcmUgY29tcGFyZWQgYXMgVUNoYXIzMiB2YWx1ZXMgYW5kIG5vcm1h bGl6YXRpb24KPj5pcyBub3QgZG9uZSAoJ2EnIGFuZCAnw6QnIGFyZSB0cmVhdGVkIGFzIGRpZmZl cmVudCkKPj4KPj5DbG9zZXMgIzY0OTIKPj4tLS0KPkhlcmUgaXMgeW91ciBub3RlcyBzZWN0aW9u LCB3aGVyZSB5b3UgY2FuIHByb3ZpZGUgYW55IGFkZGl0aW9uYWwKPmluZm9ybWF0aW9uIHN1Y2gg YXMgdGhlIGxpbmsgdG8gdGhlIGlzc3VlLCB0aGUgbGluayB0byB0aGUKPkdpdEh1YiBicmFuY2gs IG9yIGFueSBvdGhlciBhZGRpdGlvbmFsIGNvbW1lbnRzLiBJdCB3b3VsZCBiZQo+bXVjaCBtb3Jl IGNvbnZpbmllbnQgaWYgeW91IGNvdWxkIHByb3ZpZGUgdGhhdCBpbmZvcm1hdGlvbiBoZXJlLgo+ Q2hlY2sgdGhpc1syXSBhcyBhbiBleGFtcGxlLgo+PsKgc3JjL2JveC9zcWwvZnVuYy5jIHwgNDAy ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQo+PsKgdGVzdC9zcWwtdGFwL3Bvc2l0 aW9uLnRlc3QubHVhIHwgOSArLQo+PsKgMiBmaWxlcyBjaGFuZ2VkLCAzMjEgaW5zZXJ0aW9ucygr KSwgOTAgZGVsZXRpb25zKC0pCj4+Cj4+ZGlmZiAtLWdpdCBhL3NyYy9ib3gvc3FsL2Z1bmMuYyBi L3NyYy9ib3gvc3FsL2Z1bmMuYwo+PmluZGV4IDI5ZDcxM2ZkMC4uZmUzYzE2ODI4IDEwMDY0NAo+ Pi0tLSBhL3NyYy9ib3gvc3FsL2Z1bmMuYwo+PisrKyBiL3NyYy9ib3gvc3FsL2Z1bmMuYwo+PkBA IC0yOTEsNiArMjkxLDE0NyBAQCBhYnNGdW5jKHNxbF9jb250ZXh0ICogY29udGV4dCwgaW50IGFy Z2MsIHNxbF92YWx1ZSAqKiBhcmd2KQo+PsKgIH0KPj7CoH0KPj7CoAo+PisvKioKPj4rICogSW1w bGVtZW50YXRpb24gb2YgcHJlZml4IHRhYmxlIGdlbmVyYXRvcgo+PisgKiBwcmVmaXhfdGFibGVf Z2VuKCkgaXMgYSBwYXJ0IG9mIEtudXRoLU1vcnJpcy1QcmF0dCBhbGdvcml0aG0KPj4rICogdGhh dCBpcyB1c2VkIGluIHBvc2l0aW9uKCkgYW5kIHJlcGxhY2VGdW5jKCkgdG8gZmluZAo+PisgKiBp bnN0YW5jZXMgb2YgYG5lZWRsZWAgaW4gYGhheXN0YWNrYCBiaW4gZGF0YQo+PisgKi8KPj4raW5s aW5lIHN0YXRpYyB2b2lkCj4+K3ByZWZpeF90YWJsZV9nZW5fYmluKGNvbnN0IHVuc2lnbmVkIGNo YXIgKiBuZWVkbGUsCj4+KyBjb25zdCBzaXplX3Qgbl9uZWVkbGVfYnl0ZXMsCj4+KyBzaXplX3Qg KiB0YWJsZSkKPldoZW4gZGVjbGFyaW5nIHBvaW50ZXIgZGF0YSBvciBhIGZ1bmN0aW9uIHRoYXQg cmV0dXJucyBhIHBvaW50ZXIKPnR5cGUsIHRoZSBwcmVmZXJyZWQgdXNlIG9mICogaXMgYWRqYWNl bnQgdG8gdGhlIGRhdGEgbmFtZSBvciBmdW5jdGlvbiBuYW1lLgo+Pit7Cj5UaGUgaW5kZW50YXRp b24gc3RlcCBzaG91bGQgYmXCoGZvdXIgd2hpdGVzcGFjZXMsIHNvIHBsZWFzZSBmaXggdGhlCj5p bmRlbnRhdGlvbiBoZXJlIGFuZCBiZWxvdy4KPj4rIHNpemVfdCBpID0gMSwgaiA9IDA7Cj4+KyB0 YWJsZVswXSA9IDA7Cj4+KyB3aGlsZSAoaSA8IG5fbmVlZGxlX2J5dGVzKSB7Cj4+KyBpZiAobmVl ZGxlW2ldICE9IG5lZWRsZVtqXSkgewo+PisgaWYgKGogPT0gMCkgewo+PisgdGFibGVbaV0gPSAw Owo+PisgKytpOwo+PisgfSBlbHNlCj4+KyBqID0gdGFibGVbaiAtIDFdOwo+PisgfQo+PisgZWxz ZSB7Cj4+KyB0YWJsZVtpXSA9IGogKyAxOwo+PisgKytpOwo+PisgKytqOwo+PisgfQo+PisgfQo+ Pit9Cj5Vc2UgYnJhY2VzIGluIGJvdGggYnJhbmNoZXMgaWYgb25seSBvbmUgYnJhbmNoIG9mIGEg Y29uZGl0aW9uYWwKPnN0YXRlbWVudCBpcyBhIHNpbmdsZSBzdGF0ZW1lbnQuIEFsc28sIHRoZSBi cmFjZXMgY29kZSBzdHlsZQo+c2hvdWxkIGJlIHRoZSBmb2xsb3dpbmdbM10uCj4+Kwo+PisvKioK Pj4rICogSW1wbGVtZW50YXRpb24gb2YgcHJlZml4IHRhYmxlIGdlbmVyYXRvciB1c2luZyBVQ2hh ckl0ZXJhdG9ycwo+PisgKiBwcmVmaXhfdGFibGVfZ2VuKCkgaXMgYSBwYXJ0IG9mIEtudXRoLU1v cnJpcy1QcmF0dCBhbGdvcml0aG0KPj4rICogdGhhdCBpcyB1c2VkIGluIHBvc2l0aW9uKCkgdG8g ZmluZCBpbnN0YW5jZXMgb2YgYG5lZWRsZWAKPj4rICogaW4gYGhheXN0YWNrYCB1bmljb2RlIHN0 cmluZwo+PisgKi8KPj4raW5saW5lIHN0YXRpYyB2b2lkCj4+K3ByZWZpeF90YWJsZV9nZW5fdXN0 cihjb25zdCBVQ2hhckl0ZXJhdG9yICogbmVlZGxlX2JlZ2luLAo+PisgY29uc3QgdW5zaWduZWQg Y2hhciAqIG5lZWRsZV9zdHIsCj5TZWUgdGhlIGNvbW1lbnQgYWJvdXQgdGhlIHBvaW50ZXIgZGVj bGFyYXRpb24gYWJvdmUuCj4+KyBzaXplX3Qgbl9uZWVkbGVfYnl0ZXMsCj4+KyBzaXplX3Qgbl9u ZWVkbGVfY2hhcnMsCj4+KyBzaXplX3QgdGFibGVbXSkKPj4rewo+PisgdGFibGVbMF0gPSAwOwo+ PisgVUNoYXJJdGVyYXRvciBuZWVkbGVfaXRlcjsKPj4rIFVDaGFySXRlcmF0b3Igc2Vjb25kX2l0 ZXI7Cj4+KyB1aXRlcl9zZXRVVEY4KCZuZWVkbGVfaXRlciwgbmVlZGxlX3N0ciwgbl9uZWVkbGVf Ynl0ZXMpOwo+PisgdWl0ZXJfc2V0VVRGOCgmc2Vjb25kX2l0ZXIsIG5lZWRsZV9zdHIsIG5fbmVl ZGxlX2J5dGVzKTsKPj4rIG5lZWRsZV9pdGVyLm5leHQoJm5lZWRsZV9pdGVyKTsKPj4rIHdoaWxl IChuZWVkbGVfaXRlci5nZXRJbmRleCgmbmVlZGxlX2l0ZXIsIFVJVEVSX0NVUlJFTlQpIDwgbl9u ZWVkbGVfY2hhcnMpIHsKPlBsZWFzZSwgZm9sbG93IHRoZSBpbmRlbnRhdGlvbiBydWxlcyBoZXJl IGFuZCBiZWxvdy4gQSBsb29w4oCZcyBib2R5IHNob3VsZCBiZSBpbmRlbnRlZC4KPj4rIGlmIChu ZWVkbGVfaXRlci5jdXJyZW50KCZuZWVkbGVfaXRlcikgIT0gc2Vjb25kX2l0ZXIuY3VycmVudCgm c2Vjb25kX2l0ZXIpKSB7Cj4+KyBpZiAoc2Vjb25kX2l0ZXIuZ2V0SW5kZXgoJnNlY29uZF9pdGVy LCBVSVRFUl9DVVJSRU5UKSA9PSAwKSB7Cj4+KyB0YWJsZVtuZWVkbGVfaXRlci5nZXRJbmRleCgm bmVlZGxlX2l0ZXIsIFVJVEVSX0NVUlJFTlQpXSA9IDA7Cj4+KyBuZWVkbGVfaXRlci5uZXh0KCZu ZWVkbGVfaXRlcik7Cj4+KyB9IGVsc2UKPj4rIHNlY29uZF9pdGVyLm1vdmUoJnNlY29uZF9pdGVy LCB0YWJsZVtzZWNvbmRfaXRlci5nZXRJbmRleCgmc2Vjb25kX2l0ZXIsIFVJVEVSX0NVUlJFTlQp IC0gMV0sIFVJVEVSX1NUQVJUKTsKPj4rIH0KPlNlZSB0aGUgY29tbWVudCBhYm91dCBicmFjZXMg YWJvdmUuCj4+KyBlbHNlIHsKPj4rIHRhYmxlW25lZWRsZV9pdGVyLmdldEluZGV4KCZuZWVkbGVf aXRlciwgVUlURVJfQ1VSUkVOVCldID0gc2Vjb25kX2l0ZXIuZ2V0SW5kZXgoJnNlY29uZF9pdGVy LCBVSVRFUl9DVVJSRU5UKSArIDE7Cj4+KyBuZWVkbGVfaXRlci5uZXh0KCZuZWVkbGVfaXRlcik7 Cj4+KyBzZWNvbmRfaXRlci5uZXh0KCZzZWNvbmRfaXRlcik7Cj4+KyB9Cj4+KyB9Cj4+K30KPj4r Cj4+Ky8qKgo+PisgKiBJbXBsZW1lbnRhdGlvbiBvZiBLTVAgYWxnb3JpdGhtIHRvIGZpbmQgc3Vi c3RyaW5nCj4+KyAqIGluIGEgYmluIGFycmF5IHN0YXJ0aW5nIGZyb20gZ2l2ZW4gcG9zaXRpb24u Cj4+KyAqCj4+KyAqIFJlcXVpZXJlcyBpbmRleCBmb3Igc3RhcnRpbmcgcG9zaXRpb24gaW4gYGhh eXN0YWNrYC4KPj4rICoKPlR5cGU6IHMvUmVxdWllcmVzL1JlcXVpcmVzCj4+KyAqIFJldHVybnMg Zm91bmQgc3Vic3RyaW5nIHBvc2l0aW9uICsgMSBvciAwIGlmIG5vbmUuCj5NaW5vcjrCoEkgZ3Vl c3MsIGl0IHNob3VsZCBiZSDigJhSZXR1cm5zIGZvdW5kIHN1YnN0cmluZyBwb3NpdGlvbiArIDEg b3IgMAo+aWYgdGhlcmUgaXMgbm8gc3VjaCBzdWJzdHJpbmcu4oCZCj4+KyAqLwo+PitzdGF0aWMg aW50Cj4+K2ttcF9iaW4oY29uc3QgdW5zaWduZWQgY2hhciAqIGhheXN0YWNrX3N0ciwKPj4rIGNv bnN0IHVuc2lnbmVkIGNoYXIgKiBuZWVkbGVfc3RyLAo+Pisgc2l6ZV90IG5faGF5c3RhY2tfYnl0 ZXMsCj4+KyBzaXplX3Qgbl9uZWVkbGVfYnl0ZXMsCj5BcyBJIHNlZSBubyBjaGFuZ2VzIHRvIHRo ZXNlIGFyZ3MgaW4gdGhlIGZ1bmN0aW9uIGJvZHksIEkgdGhpbmsgdGhleQo+c2hvdWxkIGJlIGRl Y2xhcmVkIGFzIGEgY29uc3RhbnQuCj4+KyBzaXplX3QgaSwKPj4rIGNvbnN0IHNpemVfdCAqIHBy ZWZpeF90YWJsZSkKPlNlZSB0aGUgY29tbWVudCBhYm91dCB0aGUgcG9pbnRlciBkZWNsYXJhdGlv biBhYm92ZS4KPj4rewo+Pisgc2l6ZV90IGogPSAwOwo+PisgaW50IHBvc2l0aW9uID0gMDsKPj4r IHdoaWxlIChpIDwgbl9oYXlzdGFja19ieXRlcykgewo+PisgaWYgKG5lZWRsZV9zdHJbal0gPT0g aGF5c3RhY2tfc3RyW2ldKSB7Cj4+KyArK2k7Cj4+KyArK2o7Cj4+KyB9Cj4+KyBlbHNlIHsKPj4r IGlmIChqID09IDApIHsKPj4rICsraTsKPj4rIH0gZWxzZSB7Cj4+KyBqID0gcHJlZml4X3RhYmxl W2ogLSAxXTsKPj4rIH0KPj4rIH0KPj4rIGlmIChqID49IG5fbmVlZGxlX2J5dGVzKSB7Cj4+KyBw b3NpdGlvbiA9IGkgLSBqICsgMTsKPj4rIHJldHVybiBwb3NpdGlvbjsKPj4rIH0KPj4rIH0KPj4r IHJldHVybiBwb3NpdGlvbjsKPj4rfQo+U2VlIHRoZSBjb21tZW50IGFib3V0IHRoZcKgaW5kZW50 YXRpb24gYWJvdmUuwqAKPj4rCj4+Ky8qKgo+PisgKiBJbXBsZW1lbnRhdGlvbiBvZiBLTVAgYWxn b3JpdGhtIHRvIGZpbmQgc3Vic3RyaW5nCj4+KyAqIGluIGFuIGFycmF5IG9mIHVuaWNvZGUgY2hh cnMgc3RhcnRpbmcgZnJvbSBnaXZlbiBpdGVyYXRvci4KPj4rICoKPj4rICogUmVxdWllcmVzIFVD aGFySXRlcmF0b3IgW2hheXN0YWNrX2l0ZXJdIG9mIHN0YXJ0aW5nIHBvc2l0aW9uCj4+KyAqIGlu IGBoYXlzdGFja2AsIGl0ZXJhdG9yIGdldHMgc2V0IHRvIHRoZSBmaXJzdCBpdGVtIGFmdGVyIGZv dW5kCj4+KyAqIGBuZWVkbGVgIG9yIHJlYWNoZXMgdGhlIGVuZCBvZiBoYXlzdGFjayBpZiBub25l Lgo+PisgKgo+PisgKiBSZXR1cm5zIGZvdW5kIHN1YnN0cmluZyBwb3NpdGlvbiArIDEgb3IgMCBp ZiBub25lLgo+PisgKi8KPj4raW5saW5lIHN0YXRpYyBpbnQKPj4ra21wX3VzdHIoc3RydWN0IHNx bF9jb250ZXh0ICogY29udGV4dCwKPj4rIFVDaGFySXRlcmF0b3IgKiBoYXlzdGFja19pdGVyLAo+ PisgVUNoYXJJdGVyYXRvciAqIG5lZWRsZV9pdGVyLAo+Pisgc2l6ZV90IG5faGF5c3RhY2tfY2hh cnMsCj5JIHRoaW5rIHRoYXQgYXJnIHNob3VsZCBiZSBkZWNsYXJlZCBhcyBhwqBjb25zdC4KPj4r IGNvbnN0IHNpemVfdCAqIHByZWZpeF90YWJsZSkKPlNlZSB0aGUgY29tbWVudCBhYm91dCB0aGUg cG9pbnRlciBkZWNsYXJhdGlvbiBhYm92ZS4KPj4rewo+Pisgc3RydWN0IGNvbGwgKmNvbGwgPSBz cWxHZXRGdW5jQ29sbFNlcShjb250ZXh0KTsKPj4rIGludCBwb3NpdGlvbiA9IDA7Cj4+KyB3aGls ZSAoaGF5c3RhY2tfaXRlci0+Z2V0SW5kZXgoaGF5c3RhY2tfaXRlciwgVUlURVJfQ1VSUkVOVCkg PCBuX2hheXN0YWNrX2NoYXJzKSB7Cj4+KyBpZiAobmVlZGxlX2l0ZXItPmN1cnJlbnQobmVlZGxl X2l0ZXIpID09IGhheXN0YWNrX2l0ZXItPmN1cnJlbnQoaGF5c3RhY2tfaXRlcikpIHsKPj4rIG5l ZWRsZV9pdGVyLT5uZXh0KG5lZWRsZV9pdGVyKTsKPj4rIGhheXN0YWNrX2l0ZXItPm5leHQoaGF5 c3RhY2tfaXRlcik7Cj4+KyB9IGVsc2Ugewo+PisgaWYgKG5lZWRsZV9pdGVyLT5nZXRJbmRleChu ZWVkbGVfaXRlciwgVUlURVJfQ1VSUkVOVCkgPT0gMCkgewo+PisgaGF5c3RhY2tfaXRlci0+bmV4 dChoYXlzdGFja19pdGVyKTsKPj4rIH0gZWxzZSB7Cj4+KyBuZWVkbGVfaXRlci0+bW92ZShuZWVk bGVfaXRlciwgcHJlZml4X3RhYmxlW25lZWRsZV9pdGVyLT5nZXRJbmRleChuZWVkbGVfaXRlciwg VUlURVJfQ1VSUkVOVCkgLSAxXSwgVUlURVJfU1RBUlQpOwo+PisgfQo+PisgfQo+PisgaWYgKCFu ZWVkbGVfaXRlci0+aGFzTmV4dChuZWVkbGVfaXRlcikpIHsKPj4rIHBvc2l0aW9uID0gaGF5c3Rh Y2tfaXRlci0+Z2V0SW5kZXgoaGF5c3RhY2tfaXRlciwgVUlURVJfQ1VSUkVOVCkgLSBuZWVkbGVf aXRlci0+Z2V0SW5kZXgobmVlZGxlX2l0ZXIsIFVJVEVSX0NVUlJFTlQpICsgMTsKPj4rIGhheXN0 YWNrX2l0ZXItPm5leHQoaGF5c3RhY2tfaXRlcik7Cj4+KyByZXR1cm4gcG9zaXRpb247Cj4+KyB9 Cj4+KyB9Cj4+KyByZXR1cm4gcG9zaXRpb247Cj4+K30KPj4rCj5TZWUgdGhlIGNvbW1lbnQgYWJv dXQgdGhlwqBpbmRlbnRhdGlvbiBhYm92ZS4KPj7CoC8qKgo+PsKgwqAqIEltcGxlbWVudGF0aW9u IG9mIHRoZSBwb3NpdGlvbigpIGZ1bmN0aW9uLgo+PsKgwqAqCj4+QEAgLTMwMyw3ICs0NDQsNyBA QCBhYnNGdW5jKHNxbF9jb250ZXh0ICogY29udGV4dCwgaW50IGFyZ2MsIHNxbF92YWx1ZSAqKiBh cmd2KQo+PsKgwqAqIG9jY3VycmVuY2Ugb2YgbmVlZGxlLCBvciAwIGlmIG5lZWRsZSBuZXZlciBv Y2N1cnMgaW4gaGF5c3RhY2suCj4+wqDCoCovCj4+wqBzdGF0aWMgdm9pZAo+Pi1wb3NpdGlvbl9m dW5jKHN0cnVjdCBzcWxfY29udGV4dCAqY29udGV4dCwgaW50IGFyZ2MsIHN0cnVjdCBNZW0gKiph cmd2KQo+Pitwb3NpdGlvbl9mdW5jKHN0cnVjdCBzcWxfY29udGV4dCAqIGNvbnRleHQsIGludCBh cmdjLCBzdHJ1Y3QgTWVtICoqIGFyZ3YpCj4+wqB7Cj4+wqAgVU5VU0VEX1BBUkFNRVRFUihhcmdj KTsKPj7CoCBzdHJ1Y3QgTWVtICpuZWVkbGUgPSBhcmd2WzBdOwo+PkBAIC0zMzksOSArNDgwLDEw IEBAIHBvc2l0aW9uX2Z1bmMoc3RydWN0IHNxbF9jb250ZXh0ICpjb250ZXh0LCBpbnQgYXJnYywg c3RydWN0IE1lbSAqKmFyZ3YpCj4+wqAgcmV0dXJuOwo+PsKgIH0KPj7CoAo+Pi0gaW50IG5fbmVl ZGxlX2J5dGVzID0gbWVtX2xlbl91bnNhZmUobmVlZGxlKTsKPj4tIGludCBuX2hheXN0YWNrX2J5 dGVzID0gbWVtX2xlbl91bnNhZmUoaGF5c3RhY2spOwo+Pisgc2l6ZV90IG5fbmVlZGxlX2J5dGVz ID0gbWVtX2xlbl91bnNhZmUobmVlZGxlKTsKPj4rIHNpemVfdCBuX2hheXN0YWNrX2J5dGVzID0g bWVtX2xlbl91bnNhZmUoaGF5c3RhY2spOwo+PsKgIGludCBwb3NpdGlvbiA9IDE7Cj4+KyBzaXpl X3QgKnByZWZpeF90YWJsZSA9IE5VTEw7Cj4+wqAgaWYgKG5fbmVlZGxlX2J5dGVzID4gMCkgewo+ PsKgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmhheXN0YWNrX3N0cjsKPj7CoCBjb25zdCB1bnNpZ25l ZCBjaGFyICpuZWVkbGVfc3RyOwo+PkBAIC0zNTEsMTggKzQ5MywyNSBAQCBwb3NpdGlvbl9mdW5j KHN0cnVjdCBzcWxfY29udGV4dCAqY29udGV4dCwgaW50IGFyZ2MsIHN0cnVjdCBNZW0gKiphcmd2 KQo+PsKgIGFzc2VydChuZWVkbGVfc3RyICE9IE5VTEwpOwo+PsKgIGFzc2VydChoYXlzdGFja19z dHIgIT0gTlVMTCB8fCBuX2hheXN0YWNrX2J5dGVzID09IDApOwo+PsKgIC8qCj4+LSAqIE5haXZl IGltcGxlbWVudGF0aW9uIG9mIHN1YnN0cmluZwo+Pi0gKiBzZWFyY2hpbmc6IG1hdGNoaW5nIHRp bWUgTyhuICogbSkuCj4+KyAqIEJhc2ljIHZlcnNpb24gb2YgS01QIGFsZwo+VHlwbzogcy9vZiBL TVAvb2YgdGhlIEtNUAo+PisgKiBzZWFyY2hpbmc6IG1hdGNoaW5nIHRpbWUgTyhuICsgbSksIHJl cXVpcmVzIG1lbSBPKG0pLgo+PsKgICogQ2FuIGJlIGltcHJvdmVkLgo+VGhhdCBjb21tZW50IGFi b3V0IGltcHJvdmVtZW50IGNhbiBiZQo+cmVtb3ZlZCBiZWNhdXNlIGl0IHJlbGF0ZXMgdG8gdGhl IG9yaWdpbmFsIG5haXZlCj5pbXBsZW1lbnRhdGlvbi4KPj7CoCAqLwo+Pi0gd2hpbGUgKG5fbmVl ZGxlX2J5dGVzIDw9IG5faGF5c3RhY2tfYnl0ZXMgJiYKPj4tIG1lbWNtcChoYXlzdGFja19zdHIs IG5lZWRsZV9zdHIsIG5fbmVlZGxlX2J5dGVzKSAhPSAwKSB7Cj4+LSBwb3NpdGlvbisrOwo+Pi0g bl9oYXlzdGFja19ieXRlcy0tOwo+Pi0gaGF5c3RhY2tfc3RyKys7Cj4+KyBwcmVmaXhfdGFibGUg PSBjYWxsb2Mobl9uZWVkbGVfYnl0ZXMsIHNpemVvZihzaXplX3QpKTsKPj4rCj4+KyBpZiAocHJl Zml4X3RhYmxlICE9IE5VTEwpIHsKPj4rIHByZWZpeF90YWJsZV9nZW5fYmluKG5lZWRsZV9zdHIs IG5fbmVlZGxlX2J5dGVzLCBwcmVmaXhfdGFibGUpOwo+PisgcG9zaXRpb24gPSBrbXBfYmluKGhh eXN0YWNrX3N0ciwgbmVlZGxlX3N0ciwgbl9oYXlzdGFja19ieXRlcywgbl9uZWVkbGVfYnl0ZXMs IDAsIHByZWZpeF90YWJsZSk7Cj4+KyB9IGVsc2Ugewo+Pisgd2hpbGUgKG5fbmVlZGxlX2J5dGVz IDw9IG5faGF5c3RhY2tfYnl0ZXMgJiYKPj4rIG1lbWNtcChoYXlzdGFja19zdHIsIG5lZWRsZV9z dHIsIG5fbmVlZGxlX2J5dGVzKSAhPSAwKSB7Cj4+KyBwb3NpdGlvbisrOwo+Pisgbl9oYXlzdGFj a19ieXRlcy0tOwo+PisgaGF5c3RhY2tfc3RyKys7Cj4+KyB9Cj4+KyBpZiAobl9uZWVkbGVfYnl0 ZXMgPiBuX2hheXN0YWNrX2J5dGVzKQo+PisgcG9zaXRpb24gPSAwOwo+PsKgIH0KPlNlZSB0aGUg Y29tbWVudCBhYm91dCB0aGXCoGluZGVudGF0aW9uIGFib3ZlLgo+PisgLyoKPj4rICogS01QIGFs Z29yaXRobSB3aXRoIHVuaWNvZGUgc3VwcG9ydAo+VHlwZSBzL3VuaWNvZGUvVW5pY29kZS4KPj7C oC8qCj4+LSAqIFRoZSByZXBsYWNlKCkgZnVuY3Rpb24uIFRocmVlIGFyZ3VtZW50cyBhcmUgYWxs IHN0cmluZ3M6IGNhbGwKPj4rICogVGhlIHJlcGxhY2UoKSBmdW5jdGlvbi4gVGhyZWUgYXJndW1l bnRzIGFyZSBhbGwgc3RyaW5nczogY2FsbAo+VGhpcyBjaGFuZ2UgaXMgZXhjZXNzLgo+PkBAIC0x MzA5LDcgKzE0ODcsNyBAQCByZXBsYWNlRnVuYyhzcWxfY29udGV4dCAqIGNvbnRleHQsIGludCBh cmdjLCBzcWxfdmFsdWUgKiogYXJndikKPj7CoCB6UGF0dGVybiA9IG1lbV9hc191c3RyKGFyZ3Zb MV0pOwo+PsKgIGlmICh6UGF0dGVybiA9PSAwKSB7Cj4+wqAgYXNzZXJ0KG1lbV9pc19udWxsKGFy Z3ZbMV0pCj4+LSB8fCBzcWxfY29udGV4dF9kYl9oYW5kbGUoY29udGV4dCktPm1hbGxvY0ZhaWxl ZCk7Cj4+KyB8fCBzcWxfY29udGV4dF9kYl9oYW5kbGUoY29udGV4dCktPm1hbGxvY0ZhaWxlZCk7 Cj5UaGlzIGNoYW5nZSBpcyBleGNlc3MuCj4+wqAgcmV0dXJuOwo+PsKgIH0KPj7CoCBuUGF0dGVy biA9IG1lbV9sZW5fdW5zYWZlKGFyZ3ZbMV0pOwo+PkBAIC0xMzMxLDQwICsxNTA5LDkwIEBAIHJl cGxhY2VGdW5jKHNxbF9jb250ZXh0ICogY29udGV4dCwgaW50IGFyZ2MsIHNxbF92YWx1ZSAqKiBh cmd2KQo+PsKgIHJldHVybjsKPj7CoCB9Cj4+wqAgbG9vcExpbWl0ID0gblN0ciAtIG5QYXR0ZXJu Owo+Pi0gZm9yIChpID0gaiA9IDA7IGkgPD0gbG9vcExpbWl0OyBpKyspIHsKPj4tIGlmICh6U3Ry W2ldICE9IHpQYXR0ZXJuWzBdCj4+LSB8fCBtZW1jbXAoJnpTdHJbaV0sIHpQYXR0ZXJuLCBuUGF0 dGVybikpIHsKPj4tIHpPdXRbaisrXSA9IHpTdHJbaV07Cj4+LSB9IGVsc2Ugewo+Pi0gdTggKnpP bGQ7Cj4+LSBzcWwgKmRiID0gc3FsX2NvbnRleHRfZGJfaGFuZGxlKGNvbnRleHQpOwo+Pi0gbk91 dCArPSBuUmVwIC0gblBhdHRlcm47Cj4+LSB0ZXN0Y2FzZShuT3V0IC0gMSA9PSBkYi0+YUxpbWl0 W1NRTF9MSU1JVF9MRU5HVEhdKTsKPj4tIHRlc3RjYXNlKG5PdXQgLSAyID09IGRiLT5hTGltaXRb U1FMX0xJTUlUX0xFTkdUSF0pOwo+Pi0gaWYgKG5PdXQgLSAxID4gZGItPmFMaW1pdFtTUUxfTElN SVRfTEVOR1RIXSkgewo+Pi0gZGlhZ19zZXQoQ2xpZW50RXJyb3IsIEVSX1NRTF9FWEVDVVRFLCAi c3RyaW5nICJcCj4+LSAib3IgYmluYXJ5IHN0cmluZyBpcyB0b28gYmlnIik7Cj4+LSBjb250ZXh0 LT5pc19hYm9ydGVkID0gdHJ1ZTsKPj4tIHNxbF9mcmVlKHpPdXQpOwo+Pi0gcmV0dXJuOwo+Pi0g fQo+Pi0gek9sZCA9IHpPdXQ7Cj4+LSB6T3V0ID0gc3FsX3JlYWxsb2M2NCh6T3V0LCAoaW50KW5P dXQpOwo+Pi0gaWYgKHpPdXQgPT0gMCkgewo+Pi0gY29udGV4dC0+aXNfYWJvcnRlZCA9IHRydWU7 Cj4+LSBzcWxfZnJlZSh6T2xkKTsKPj4tIHJldHVybjsKPj4rCj4+KyBpZiAocHJlZml4X3RhYmxl ICE9IE5VTEwpIHsKPj4rIC8qKgo+PisgKiBvcHRpbWl6ZWQgcmVwbGFjZW1lbnQgbG9naWMgdXNp bmcgS01QIGFsZ29yaXRobQo+PisgKiByZXF1aXJlcyBhZGRpdGlvbmFsIE8oblBhdHRlcm4pIG1l bW9yeSBmb3IgcHJlZml4IHRhYmxlCj4+KyAqIHJlcGxhY2luZzogdGltZSBPKG4gKyBtKQo+Pisg Ki8KPkluIEMgY29tbWVudHMgb3V0IG9mIGZ1bmN0aW9ucyBhbmQgaW5zaWRlIG9mIGZ1bmN0aW9u cyBzaG91bGQKPmJlwqBkaWZmZXJlbnQgaW4gaG93IHRoZXkgYXJlIHN0YXJ0ZWQuIEV2ZXJ5dGhp bmcgZWxzZSBpcyB3cm9uZy4KPkJlbG93IGFyZSBjb3JyZWN0IGV4YW1wbGVzOgo+wqDCoC8qKiBj b21lcyBmb3IgZG9jdW1lbnRhdGlvbiBjb21tZW50cwo+wqDCoC8qIGZvciBsb2NhbCBub3QgZG9j dW1lbnRlZCBjb21tZW50cy4KPsKgCj5Ib3dldmVyIHRoZSBkaWZmZXJlbmNlIGlzIHZhZ3VlIGFs cmVhZHksIHNvIHRoZSBydWxlIGlzIHNpbXBsZSDigJQKPm91dCBvZiBmdW5jdGlvbiA9IC8qKiwg aW5zaWRlID0gLyouwqAKPsKgCj5UaGlzIGlzIGRlc2NyaWJlZCBpbiBtb3JlIGRldGFpbCBoZXJl WzRdLgo+PisKPj4rIC8qIHByZWNhbGN1bGF0aW5nIHByZWZpeCB0YWJsZSAqLwo+PisgcHJlZml4 X3RhYmxlID0gY2FsbG9jKG5QYXR0ZXJuLCBzaXplb2Yoc2l6ZV90KSk7Cj4+KyBwcmVmaXhfdGFi bGVfZ2VuX2Jpbih6UGF0dGVybiwgblBhdHRlcm4sIHByZWZpeF90YWJsZSk7Cj4+KyAvKiBjb3Vu dGluZyB0aGUgbnVtYmVyIG9mIFBhdHRlcm4gb2NjdXJyZW5jZXMgKi8KPj4rIGZvciAobkNudCA9 IGlTdHIgPSBuUGF0dGVyblBvcyA9IDA7Oykgewo+PisgblBhdHRlcm5Qb3MgPSBrbXBfYmluKHpT dHIsIHpQYXR0ZXJuLCBuU3RyLCBuUGF0dGVybiwgaVN0ciwgcHJlZml4X3RhYmxlKTsKPj4rIGlT dHIgPSBuUGF0dGVyblBvcyArIG5QYXR0ZXJuOwo+PisgaWYgKG5QYXR0ZXJuUG9zID09IDApCj4+ KyBicmVhazsKPj4rICsrbkNudDsKPj4rIH0KPj4rIC8qIHJlYWxsb2NhdGlvbmcgbWVtIGZvciB6 T3V0ICovCj4+KyBuT3V0ICs9IChuUmVwIC0gblBhdHRlcm4pICogbkNudDsKPj4rIGFzc2VydChu T3V0IDwgU1FMX01BWF9MRU5HVEgpOwo+Pisgek91dCA9IGNvbnRleHRNYWxsb2MoY29udGV4dCwg KGk2NCkgbk91dCk7Cj4+KyBpZiAoek91dCA9PSAwKSB7Cj4+KyByZXR1cm47Cj4+KyB9Cj5CcmFj a2V0cyBhcmUgZXhjZXNzLgo+PisgLyogY29waW5nIGFuZCByZXBsYWNpbmcgaW4tcGxhY2UgKi8K Pj4rIGZvciAoaVN0ciA9IG5Db3BpZWRTdHIgPSBuQ29waWVkT3V0ID0gblBhdHRlcm5Qb3MgPSAw OzspIHsKPj4rIG5QYXR0ZXJuUG9zID0ga21wX2Jpbih6U3RyLCB6UGF0dGVybiwgblN0ciwgblBh dHRlcm4sIGlTdHIsIHByZWZpeF90YWJsZSk7Cj4+KyBpU3RyID0gblBhdHRlcm5Qb3MgKyBuUGF0 dGVybjsKPj4rIGlmIChuUGF0dGVyblBvcyA9PSAwKQo+PisgYnJlYWs7Cj4+KyBhc3NlcnQoblBh dHRlcm5Qb3MgPj0gbkNvcGllZFN0cik7Cj4+KyBtZW1jcHkoek91dCArIG5Db3BpZWRPdXQsIHpT dHIgKyBuQ29waWVkU3RyLCBuUGF0dGVyblBvcyAtIG5Db3BpZWRTdHIpOwo+PisgbkNvcGllZE91 dCArPSBuUGF0dGVyblBvcyAtIG5Db3BpZWRTdHI7Cj4+KyBtZW1jcHkoek91dCArIG5Db3BpZWRP dXQsIHpSZXAsIG5SZXApOwo+PisgbkNvcGllZE91dCArPSBuUmVwOwo+PisgbkNvcGllZFN0ciA9 IG5QYXR0ZXJuUG9zICsgblBhdHRlcm47Cj4+KyB9Cj4+KyBtZW1jcHkoek91dCArIG5Db3BpZWRP dXQsIHpTdHIgKyBuQ29waWVkU3RyLCBuU3RyIC0gbkNvcGllZFN0cik7Cj4+KyB6T3V0W25PdXQg LSAxXSA9IDA7Cj4+KyBmcmVlKHByZWZpeF90YWJsZSk7Cj4+KyB9Cj4+KyBlbHNlIHsKPj4rIC8q Kgo+PisgKiBOYWl2ZSByZXBsYWNpbmcgc3Vic3RyaW5nIGFsZ29yaXRobQo+PisgKiByZXBsYWNp bmc6IHRpbWUgTyhuICogbSksIG1lbSBPKDEpCj4+KyAqIHVzZWQgaWYgY2Fubm90IGFsbG9jYXRl IG1lbSBmb3IgcHJlZml4IHRhYmxlCj4+KyAqLwo+U2VlIHRoZSBjb21tZW50IGFib3V0IGluLWZ1 bmN0aW9uwqBjb21tZW50cyBhYm92ZS4KPj5kaWZmIC0tZ2l0IGEvdGVzdC9zcWwtdGFwL3Bvc2l0 aW9uLnRlc3QubHVhIGIvdGVzdC9zcWwtdGFwL3Bvc2l0aW9uLnRlc3QubHVhCj4+aW5kZXggNmE5 NmVkOWJjLi5iOTI0NGJhZjYgMTAwNzU1Cj4+LS0tIGEvdGVzdC9zcWwtdGFwL3Bvc2l0aW9uLnRl c3QubHVhCj4+KysrIGIvdGVzdC9zcWwtdGFwL3Bvc2l0aW9uLnRlc3QubHVhCj4+QEAgLTY3OSwx MiArNjc5LDE1IEBAIHRlc3Q6ZG9fZXhlY3NxbF90ZXN0KAo+PsKgCj4+wqAtLSBDb2xsYXRpb24g aXMgc2V0IGluIHNwYWNlIGZvcm1hdC4KPj7CoAo+PistLSBUZXN0cyA2My02NSBhcmUgYWx0ZXJl ZCBiZWNhdXNlIG5ldyB2ZXJzaW9uIG9mIHBvc2l0aW9uKCkgdGhhdCB1c2VzIEtNUCBhbGcKPj4r LS0gaW50ZW50aW9uYWxseSBkb2VzIG5vdCBub3JtYWxpemUgZ2l2ZW4gc3RyaW5ncyAoaW4gd2hp Y2ggY2FzZSAnYScgZGlmZmVycyBmcm9tICfDoCcgZXRjLikKPj4rCj4+wqB0ZXN0OmRvX2V4ZWNz cWxfdGVzdCgKPj7CoMKgwqDCoMKgInBvc2l0aW9uLTEuNjMiLAo+PsKgwqDCoMKgwqBbWwo+PsKg wqDCoMKgwqDCoMKgwqDCoENSRUFURSBUQUJMRSB0ZXN0MSAoczEgVkFSQ0hBUig1KSBQUklNQVJZ IEtFWSBDT0xMQVRFICJ1bmljb2RlX2NpIik7Cj4+wqDCoMKgwqDCoMKgwqDCoMKgSU5TRVJUIElO VE8gdGVzdDEgVkFMVUVTKCfDoCcpOwo+Pi0gU0VMRUNUIFBPU0lUSU9OKCdhJywgczEpIEZST00g dGVzdDE7Cj4+KyBTRUxFQ1QgUE9TSVRJT04oJ8OgJywgczEpIEZST00gdGVzdDE7Cj4+wqDCoMKg wqDCoMKgwqDCoMKgREVMRVRFIEZST00gdGVzdDE7Cj4+wqDCoMKgwqDCoF1dLCB7Cj4+wqDCoMKg wqDCoMKgwqDCoMKgMQo+PkBAIC02OTUsNyArNjk4LDcgQEAgdGVzdDpkb19leGVjc3FsX3Rlc3Qo Cj4+wqDCoMKgwqDCoCJwb3NpdGlvbi0xLjY0IiwKPj7CoMKgwqDCoMKgW1sKPj7CoMKgwqDCoMKg wqDCoMKgwqBJTlNFUlQgSU5UTyB0ZXN0MSBWQUxVRVMoJ3F3w6hydHknKTsKPj4tIFNFTEVDVCBQ T1NJVElPTignZXInLCBzMSkgRlJPTSB0ZXN0MTsKPj4rIFNFTEVDVCBQT1NJVElPTignw6hyJywg czEpIEZST00gdGVzdDE7Cj4+wqDCoMKgwqDCoMKgwqDCoMKgREVMRVRFIEZST00gdGVzdDE7Cj4+ wqDCoMKgwqDCoF1dLCB7Cj4+wqDCoMKgwqDCoMKgwqDCoMKgMwo+PkBAIC03MDYsNyArNzA5LDcg QEAgdGVzdDpkb19leGVjc3FsX3Rlc3QoCj4+wqDCoMKgwqDCoCJwb3NpdGlvbi0xLjY1IiwKPj7C oMKgwqDCoMKgW1sKPj7CoMKgwqDCoMKgwqDCoMKgwqBJTlNFUlQgSU5UTyB0ZXN0MSBWQUxVRVMo J3F3w6hydMO/Jyk7Cj4+LSBTRUxFQ1QgUE9TSVRJT04oJ3knLCBzMSkgRlJPTSB0ZXN0MTsKPj4r IFNFTEVDVCBQT1NJVElPTignw78nLCBzMSkgRlJPTSB0ZXN0MTsKPj7CoMKgwqDCoMKgwqDCoMKg wqBERUxFVEUgRlJPTSB0ZXN0MTsKPj7CoMKgwqDCoMKgXV0sIHsKPj7CoMKgwqDCoMKgwqDCoMKg wqA2Cj4+LS0KPj4yLjMzLjAKPkkgcHJvcG9zZSB0byBpbnRyb2R1Y2UgYSBzZXBhcmF0ZSBwYXRj aCBmb3IgdGVzdHMgbW9kaWZpY2F0aW9uLgo+Q2hhbmdlcyBpbiB0ZXN0cyBoYXZlIG5vdGhpbmcg dG8gZG8gd2l0aCB0aGUgS01QIGFsZ29yaXRobQo+aW1wbGVtZW50YXRpb24gaXRzZWxmLsKgCj7C oAo+WW91IGNhbiByZWFkIGEgZ3VpZGUgb24gaG93IHRvIHNlbmQgYSBwYXRjaCBzZXQgaGVyZVs1 XS4KPsKgCj5bMV06wqAgaHR0cHM6Ly93d3cudGFyYW50b29sLmlvL2VuL2RvYy9sYXRlc3QvZGV2 X2d1aWRlL2RldmVsb3Blcl9ndWlkZWxpbmVzLwo+WzJdOsKgIGh0dHBzOi8vbGlzdHMudGFyYW50 b29sLm9yZy90YXJhbnRvb2wtcGF0Y2hlcy8yMDIxMDczMTEzMzY0OC4yNTY2MC0xLW0ua29rcnlh c2hraW5AdGFyYW50b29sLm9yZy8KPlszXTrCoCBodHRwczovL3d3dy50YXJhbnRvb2wuaW8vZW4v ZG9jL2xhdGVzdC9kZXZfZ3VpZGUvY19zdHlsZV9ndWlkZS8jY2hhcHRlci0zLXBsYWNpbmctYnJh Y2VzLWFuZC1zcGFjZXMKPls0XTrCoCBodHRwczovL3d3dy50YXJhbnRvb2wuaW8vZW4vZG9jL2xh dGVzdC9kZXZfZ3VpZGUvY19zdHlsZV9ndWlkZS8jY2hhcHRlci04LWNvbW1lbnRpbmcKPls1XTrC oCBodHRwczovL3d3dy50YXJhbnRvb2wuaW8vZW4vZG9jL2xhdGVzdC9kZXZfZ3VpZGUvZGV2ZWxv cGVyX2d1aWRlbGluZXMvI2hvdy10by1zdWJtaXQtYS1wYXRjaC1mb3ItcmV2aWV3Cj7CoAo+QmVz dCByZWdhcmRzLAo+TWF4aW0gS29rcnlhc2hraW4KwqA= ----ALT--5f28Ef67329aaE1De2A80FfEf871087A1634731293 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+SGkhPC9kaXY+PGRpdj5JIHdhcyB3cm9uZyBhYm91dCBpbmRlbnRh dGlvbjogaW4gQyBjb2RlIGl0IHNob3VsZCBiZSA4LXN5bWJvbCB3aWRlIHRhYnMuPC9kaXY+PGRp dj5Tb3JyeSwgbXkgYmFkLjwvZGl2PjxkaXY+Jm5ic3A7PC9kaXY+PGRpdj5CZXN0IHJlZ2FyZHMs PC9kaXY+PGRpdj5NYXhpbSBLb2tyeWFzaGtpbjwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3Jk ZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBw eDsiPtCh0YDQtdC00LAsIDIwINC+0LrRgtGP0LHRgNGPIDIwMjEsIDE0OjQ3ICswMzowMCDQvtGC INCc0LDQutGB0LjQvCDQmtC+0YDRj9C60YjQuNC9IHZpYSBUYXJhbnRvb2wtcGF0Y2hlcyAmbHQ7 dGFyYW50b29sLXBhdGNoZXNAZGV2LnRhcmFudG9vbC5vcmcmZ3Q7Ojxicj4mbmJzcDs8ZGl2IGlk PSIiPjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2IGlkPSJz dHlsZV8xNjM0NzMwNDI2MTA0NTE1NzkyNF9CT0RZIj48ZGl2IGNsYXNzPSJjbF83MzY1NjEiPjxk aXY+SGkhIFRoYW5rcyBmb3IgdGhlIHBhdGNoITwvZGl2PjxkaXY+UGxlYXNlIGNvbnNpZGVyIG15 IGNvbW1lbnRzIGJlbG93LjwvZGl2PjxkaXY+Jm5ic3A7PC9kaXY+PGRpdj48ZGl2IHN0eWxlPSJi b3gtc2l6aW5nOmJvcmRlci1ib3g7IHBhZGRpbmc6MHB4IDBweCAwLjRlbSI+VXNlIHRoZSBpbXBl cmF0aXZlIG1vb2QgaW4gdGhlIHN1YmplY3QgbGluZSBhcyBpdCBpcyBzdGF0ZWQgaW4gdGhlIGRl dmVsb3BlcjwvZGl2PjxkaXYgc3R5bGU9ImJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzow cHggMHB4IDAuNGVtIj5ndWlkZWxpbmVbMV0uIEEgcHJvcGVybHkgZm9ybWVkIEdpdCZuYnNwO2Nv bW1pdCBzdWJqZWN0Jm5ic3A7bGluZSBzaG91bGQgYWx3YXlzIGJlPC9kaXY+PGRpdiBzdHlsZT0i Ym94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjBweCAwcHggMC40ZW0iPmFibGUgdG8gY29t cGxldGUgdGhlIGZvbGxvd2luZyZuYnNwO3NlbnRlbmNlOiDigJxJZiBhcHBsaWVkLCB0aGlzIGNv bW1pdCB3aWxsPHNwYW4+Jm5ic3A7PC9zcGFuPjwvZGl2PjxkaXYgc3R5bGU9ImJveC1zaXppbmc6 Ym9yZGVyLWJveDsgcGFkZGluZzowcHggMHB4IDAuNGVtIj48ZW0gc3R5bGU9ImJveC1zaXppbmc6 IGJvcmRlci1ib3g7Ij4veW91ciBzdWJqZWN0IGxpbmUgaGVyZS88L2VtPuKAnS48L2Rpdj48L2Rp dj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7bWFyZ2lu OjEwcHg7cGFkZGluZzowIDAgMCAxMHB4OyI+0KHRgNC10LTQsCwgMjAg0L7QutGC0Y/QsdGA0Y8g MjAyMSwgMTE6MzcgKzAzOjAwINC+0YIgTG9yZCB2aWEgVGFyYW50b29sLXBhdGNoZXMgJmx0Ozxh IGhyZWY9Ii9jb21wb3NlP1RvPXRhcmFudG9vbCUyZHBhdGNoZXNAZGV2LnRhcmFudG9vbC5vcmci PnRhcmFudG9vbC1wYXRjaGVzQGRldi50YXJhbnRvb2wub3JnPC9hPiZndDs6PGJyPiZuYnNwOzxk aXYgaWQ9IiI+PGRpdiBjbGFzcz0ianMtaGVscGVyX21yX2Nzc19hdHRyIGpzLXJlYWRtc2ctbXNn X21yX2Nzc19hdHRyIj48ZGl2PjxkaXYgaWQ9InN0eWxlXzE2MzQ3MTkwNDMxODc0MDQwNDEyX0JP RFlfbXJfY3NzX2F0dHIiPkZyb206IEdsZWIgJmx0OzxhPmthc2hraW4ubnNhYUBnbWFpbC5jb208 L2E+Jmd0Ozxicj48YnI+UmVwbGFjZWQgcG9zaXRpb25pbmcgbG9naWMgaW4gUE9TSVRJT04oKSBh bmQgUkVQTEFDRSgpIHNxbCBmdW5jdGlvbnM8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2Nr cXVvdGU+PGRpdj5UeXBvOiBzL3NxbC9TUUw8L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVy LWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7bWFyZ2luOjEwcHg7cGFkZGluZzowIDAgMCAxMHB4OyI+ PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXJfbXJfY3NzX2F0dHIganMtcmVhZG1zZy1tc2dfbXJf Y3NzX2F0dHIiPjxkaXY+PGRpdj53aXRoIEtudXRoLU1vcnJpcy1QcmF0dCBhbGdvcml0aG0gYnkg YWRkaW5nIHR3byBkaWZmZXJlbnQgdmVyc2lvbnM8YnI+b2YgbGF0dGVyIGZvciBTVFJJTkcgYW5k IFZBUkJJTkFSWSBhcmd1bWVudHMgYW5kIGNvcnJlc3BvbmRpbmc8YnI+cHJlZml4IHRhYmxlIGdl bmVyYXRvcnMuPGJyPlNsaWdodGx5IGFkYXB0ZWQgdGVzdHMgdG8gZml0IG5ldyBjb2xsYXRpb24g cnVsZXMgdGhhdCBkaWZmZXI8YnI+ZGVjb3JhdGVkIGxldHRlcnMuPGJyPjxicj5JbXByb3ZlZCBh c3ltcHRvdGljcyBvZiBwb3NpdGlvbmluZyBsb2dpYyB0bzo8YnI+dGltZSBPKGhheXN0YWNrX2xl biArIG5lZWRsZV9sZW4pLCBtZW0gTyhuZWVkbGVfbGVuKTxicj5BcyBvbmUgb2YgY29sbGF0aW5n IHR5cGVzIGlzIGEgdW5pY29kZSBzdHJpbmcsPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9j a3F1b3RlPjxkaXY+VHlwbzogcy91bmljb2RlL1VuaWNvZGU8L2Rpdj48YmxvY2txdW90ZSBzdHls ZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7bWFyZ2luOjEwcHg7cGFkZGluZzowIDAg MCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXJfbXJfY3NzX2F0dHIganMtcmVhZG1z Zy1tc2dfbXJfY3NzX2F0dHIiPjxkaXY+PGRpdj5JQ1UgVUNoYXJJdGVyYXRvcnMgaGFkIHRvIGJl IHVzZWQgYW5kIHRodXMgdW5pY29kZTwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90 ZT48ZGl2PlR5cG86IHMvdW5pY29kZS9Vbmljb2RlPC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJv cmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2O21hcmdpbjoxMHB4O3BhZGRpbmc6MCAwIDAgMTBw eDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyX21yX2Nzc19hdHRyIGpzLXJlYWRtc2ctbXNn X21yX2Nzc19hdHRyIj48ZGl2PjxkaXY+bGV0dGVycyBhcmUgY29tcGFyZWQgYXMgVUNoYXIzMiB2 YWx1ZXMgYW5kIG5vcm1hbGl6YXRpb248YnI+aXMgbm90IGRvbmUgKCdhJyBhbmQgJ8OkJyBhcmUg dHJlYXRlZCBhcyBkaWZmZXJlbnQpPGJyPjxicj5DbG9zZXMgIzY0OTI8YnI+LS0tPC9kaXY+PC9k aXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+SGVyZSBpcyB5b3VyIG5vdGVzIHNlY3Rp b24sIHdoZXJlIHlvdSBjYW4gcHJvdmlkZSBhbnkgYWRkaXRpb25hbDwvZGl2PjxkaXY+aW5mb3Jt YXRpb24gc3VjaCBhcyB0aGUgbGluayB0byB0aGUgaXNzdWUsIHRoZSBsaW5rIHRvIHRoZTwvZGl2 PjxkaXY+R2l0SHViIGJyYW5jaCwgb3IgYW55IG90aGVyIGFkZGl0aW9uYWwgY29tbWVudHMuIEl0 IHdvdWxkIGJlPC9kaXY+PGRpdj5tdWNoIG1vcmUgY29udmluaWVudCBpZiB5b3UgY291bGQgcHJv dmlkZSB0aGF0IGluZm9ybWF0aW9uIGhlcmUuPC9kaXY+PGRpdj5DaGVjayB0aGlzWzJdIGFzIGFu IGV4YW1wbGUuPC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAj MDg1N0E2O21hcmdpbjoxMHB4O3BhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0i anMtaGVscGVyX21yX2Nzc19hdHRyIGpzLXJlYWRtc2ctbXNnX21yX2Nzc19hdHRyIj48ZGl2Pjxk aXY+Jm5ic3A7c3JjL2JveC9zcWwvZnVuYy5jIHwgNDAyICsrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLTxicj4mbmJzcDt0ZXN0L3NxbC10YXAvcG9zaXRpb24udGVzdC5sdWEgfCA5ICst PGJyPiZuYnNwOzIgZmlsZXMgY2hhbmdlZCwgMzIxIGluc2VydGlvbnMoKyksIDkwIGRlbGV0aW9u cygtKTxicj48YnI+ZGlmZiAtLWdpdCBhL3NyYy9ib3gvc3FsL2Z1bmMuYyBiL3NyYy9ib3gvc3Fs L2Z1bmMuYzxicj5pbmRleCAyOWQ3MTNmZDAuLmZlM2MxNjgyOCAxMDA2NDQ8YnI+LS0tIGEvc3Jj L2JveC9zcWwvZnVuYy5jPGJyPisrKyBiL3NyYy9ib3gvc3FsL2Z1bmMuYzxicj5AQCAtMjkxLDYg KzI5MSwxNDcgQEAgYWJzRnVuYyhzcWxfY29udGV4dCAqIGNvbnRleHQsIGludCBhcmdjLCBzcWxf dmFsdWUgKiogYXJndik8YnI+Jm5ic3A7IH08YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Ky8qKjxi cj4rICogSW1wbGVtZW50YXRpb24gb2YgcHJlZml4IHRhYmxlIGdlbmVyYXRvcjxicj4rICogcHJl Zml4X3RhYmxlX2dlbigpIGlzIGEgcGFydCBvZiBLbnV0aC1Nb3JyaXMtUHJhdHQgYWxnb3JpdGht PGJyPisgKiB0aGF0IGlzIHVzZWQgaW4gcG9zaXRpb24oKSBhbmQgcmVwbGFjZUZ1bmMoKSB0byBm aW5kPGJyPisgKiBpbnN0YW5jZXMgb2YgYG5lZWRsZWAgaW4gYGhheXN0YWNrYCBiaW4gZGF0YTxi cj4rICovPGJyPitpbmxpbmUgc3RhdGljIHZvaWQ8YnI+K3ByZWZpeF90YWJsZV9nZW5fYmluKGNv bnN0IHVuc2lnbmVkIGNoYXIgKiBuZWVkbGUsPGJyPisgY29uc3Qgc2l6ZV90IG5fbmVlZGxlX2J5 dGVzLDxicj4rIHNpemVfdCAqIHRhYmxlKTwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2tx dW90ZT48ZGl2PldoZW4gZGVjbGFyaW5nIHBvaW50ZXIgZGF0YSBvciBhIGZ1bmN0aW9uIHRoYXQg cmV0dXJucyBhIHBvaW50ZXI8L2Rpdj48ZGl2PnR5cGUsIHRoZSBwcmVmZXJyZWQgdXNlIG9mICog aXMgYWRqYWNlbnQgdG8gdGhlIGRhdGEgbmFtZSBvciBmdW5jdGlvbiBuYW1lLjwvZGl2PjxibG9j a3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjttYXJnaW46MTBweDtw YWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xhc3M9ImpzLWhlbHBlcl9tcl9jc3NfYXR0 ciBqcy1yZWFkbXNnLW1zZ19tcl9jc3NfYXR0ciI+PGRpdj48ZGl2Pit7PC9kaXY+PC9kaXY+PC9k aXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+VGhlIGluZGVudGF0aW9uIHN0ZXAgc2hvdWxkIGJl Jm5ic3A7Zm91ciB3aGl0ZXNwYWNlcywgc28gcGxlYXNlIGZpeCB0aGU8L2Rpdj48ZGl2PmluZGVu dGF0aW9uIGhlcmUgYW5kIGJlbG93LjwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVm dDoxcHggc29saWQgIzA4NTdBNjttYXJnaW46MTBweDtwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2 PjxkaXYgY2xhc3M9ImpzLWhlbHBlcl9tcl9jc3NfYXR0ciBqcy1yZWFkbXNnLW1zZ19tcl9jc3Nf YXR0ciI+PGRpdj48ZGl2Pisgc2l6ZV90IGkgPSAxLCBqID0gMDs8YnI+KyB0YWJsZVswXSA9IDA7 PGJyPisgd2hpbGUgKGkgJmx0OyBuX25lZWRsZV9ieXRlcykgezxicj4rIGlmIChuZWVkbGVbaV0g IT0gbmVlZGxlW2pdKSB7PGJyPisgaWYgKGogPT0gMCkgezxicj4rIHRhYmxlW2ldID0gMDs8YnI+ KyArK2k7PGJyPisgfSBlbHNlPGJyPisgaiA9IHRhYmxlW2ogLSAxXTs8YnI+KyB9PGJyPisgZWxz ZSB7PGJyPisgdGFibGVbaV0gPSBqICsgMTs8YnI+KyArK2k7PGJyPisgKytqOzxicj4rIH08YnI+ KyB9PGJyPit9PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+VXNlIGJy YWNlcyBpbiBib3RoIGJyYW5jaGVzIGlmIG9ubHkgb25lIGJyYW5jaCBvZiBhIGNvbmRpdGlvbmFs PC9kaXY+PGRpdj5zdGF0ZW1lbnQgaXMgYSBzaW5nbGUgc3RhdGVtZW50LiBBbHNvLCB0aGUgYnJh Y2VzIGNvZGUgc3R5bGU8L2Rpdj48ZGl2PnNob3VsZCBiZSB0aGUgZm9sbG93aW5nWzNdLjwvZGl2 PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjttYXJnaW46 MTBweDtwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xhc3M9ImpzLWhlbHBlcl9tcl9j c3NfYXR0ciBqcy1yZWFkbXNnLW1zZ19tcl9jc3NfYXR0ciI+PGRpdj48ZGl2Pis8YnI+Ky8qKjxi cj4rICogSW1wbGVtZW50YXRpb24gb2YgcHJlZml4IHRhYmxlIGdlbmVyYXRvciB1c2luZyBVQ2hh ckl0ZXJhdG9yczxicj4rICogcHJlZml4X3RhYmxlX2dlbigpIGlzIGEgcGFydCBvZiBLbnV0aC1N b3JyaXMtUHJhdHQgYWxnb3JpdGhtPGJyPisgKiB0aGF0IGlzIHVzZWQgaW4gcG9zaXRpb24oKSB0 byBmaW5kIGluc3RhbmNlcyBvZiBgbmVlZGxlYDxicj4rICogaW4gYGhheXN0YWNrYCB1bmljb2Rl IHN0cmluZzxicj4rICovPGJyPitpbmxpbmUgc3RhdGljIHZvaWQ8YnI+K3ByZWZpeF90YWJsZV9n ZW5fdXN0cihjb25zdCBVQ2hhckl0ZXJhdG9yICogbmVlZGxlX2JlZ2luLDxicj4rIGNvbnN0IHVu c2lnbmVkIGNoYXIgKiBuZWVkbGVfc3RyLDwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2tx dW90ZT48ZGl2PlNlZSB0aGUgY29tbWVudCBhYm91dCB0aGUgcG9pbnRlciBkZWNsYXJhdGlvbiBh Ym92ZS48L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3 QTY7bWFyZ2luOjEwcHg7cGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1o ZWxwZXJfbXJfY3NzX2F0dHIganMtcmVhZG1zZy1tc2dfbXJfY3NzX2F0dHIiPjxkaXY+PGRpdj4r IHNpemVfdCBuX25lZWRsZV9ieXRlcyw8YnI+KyBzaXplX3Qgbl9uZWVkbGVfY2hhcnMsPGJyPisg c2l6ZV90IHRhYmxlW10pPGJyPit7PGJyPisgdGFibGVbMF0gPSAwOzxicj4rIFVDaGFySXRlcmF0 b3IgbmVlZGxlX2l0ZXI7PGJyPisgVUNoYXJJdGVyYXRvciBzZWNvbmRfaXRlcjs8YnI+KyB1aXRl cl9zZXRVVEY4KCZhbXA7bmVlZGxlX2l0ZXIsIG5lZWRsZV9zdHIsIG5fbmVlZGxlX2J5dGVzKTs8 YnI+KyB1aXRlcl9zZXRVVEY4KCZhbXA7c2Vjb25kX2l0ZXIsIG5lZWRsZV9zdHIsIG5fbmVlZGxl X2J5dGVzKTs8YnI+KyBuZWVkbGVfaXRlci5uZXh0KCZhbXA7bmVlZGxlX2l0ZXIpOzxicj4rIHdo aWxlIChuZWVkbGVfaXRlci5nZXRJbmRleCgmYW1wO25lZWRsZV9pdGVyLCBVSVRFUl9DVVJSRU5U KSAmbHQ7IG5fbmVlZGxlX2NoYXJzKSB7PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1 b3RlPjxkaXY+UGxlYXNlLCBmb2xsb3cgdGhlIGluZGVudGF0aW9uIHJ1bGVzIGhlcmUgYW5kIGJl bG93LiBBIGxvb3DigJlzIGJvZHkgc2hvdWxkIGJlIGluZGVudGVkLjwvZGl2PjxibG9ja3F1b3Rl IHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjttYXJnaW46MTBweDtwYWRkaW5n OjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xhc3M9ImpzLWhlbHBlcl9tcl9jc3NfYXR0ciBqcy1y ZWFkbXNnLW1zZ19tcl9jc3NfYXR0ciI+PGRpdj48ZGl2PisgaWYgKG5lZWRsZV9pdGVyLmN1cnJl bnQoJmFtcDtuZWVkbGVfaXRlcikgIT0gc2Vjb25kX2l0ZXIuY3VycmVudCgmYW1wO3NlY29uZF9p dGVyKSkgezxicj4rIGlmIChzZWNvbmRfaXRlci5nZXRJbmRleCgmYW1wO3NlY29uZF9pdGVyLCBV SVRFUl9DVVJSRU5UKSA9PSAwKSB7PGJyPisgdGFibGVbbmVlZGxlX2l0ZXIuZ2V0SW5kZXgoJmFt cDtuZWVkbGVfaXRlciwgVUlURVJfQ1VSUkVOVCldID0gMDs8YnI+KyBuZWVkbGVfaXRlci5uZXh0 KCZhbXA7bmVlZGxlX2l0ZXIpOzxicj4rIH0gZWxzZTxicj4rIHNlY29uZF9pdGVyLm1vdmUoJmFt cDtzZWNvbmRfaXRlciwgdGFibGVbc2Vjb25kX2l0ZXIuZ2V0SW5kZXgoJmFtcDtzZWNvbmRfaXRl ciwgVUlURVJfQ1VSUkVOVCkgLSAxXSwgVUlURVJfU1RBUlQpOzxicj4rIH08L2Rpdj48L2Rpdj48 L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj5TZWUgdGhlIGNvbW1lbnQgYWJvdXQgYnJhY2Vz IGFib3ZlLjwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4 NTdBNjttYXJnaW46MTBweDtwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xhc3M9Impz LWhlbHBlcl9tcl9jc3NfYXR0ciBqcy1yZWFkbXNnLW1zZ19tcl9jc3NfYXR0ciI+PGRpdj48ZGl2 PisgZWxzZSB7PGJyPisgdGFibGVbbmVlZGxlX2l0ZXIuZ2V0SW5kZXgoJmFtcDtuZWVkbGVfaXRl ciwgVUlURVJfQ1VSUkVOVCldID0gc2Vjb25kX2l0ZXIuZ2V0SW5kZXgoJmFtcDtzZWNvbmRfaXRl ciwgVUlURVJfQ1VSUkVOVCkgKyAxOzxicj4rIG5lZWRsZV9pdGVyLm5leHQoJmFtcDtuZWVkbGVf aXRlcik7PGJyPisgc2Vjb25kX2l0ZXIubmV4dCgmYW1wO3NlY29uZF9pdGVyKTs8YnI+KyB9PGJy PisgfTxicj4rfTxicj4rPGJyPisvKio8YnI+KyAqIEltcGxlbWVudGF0aW9uIG9mIEtNUCBhbGdv cml0aG0gdG8gZmluZCBzdWJzdHJpbmc8YnI+KyAqIGluIGEgYmluIGFycmF5IHN0YXJ0aW5nIGZy b20gZ2l2ZW4gcG9zaXRpb24uPGJyPisgKjxicj4rICogUmVxdWllcmVzIGluZGV4IGZvciBzdGFy dGluZyBwb3NpdGlvbiBpbiBgaGF5c3RhY2tgLjxicj4rICo8L2Rpdj48L2Rpdj48L2Rpdj48L2Rp dj48L2Jsb2NrcXVvdGU+PGRpdj5UeXBlOiBzL1JlcXVpZXJlcy9SZXF1aXJlczwvZGl2PjxibG9j a3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjttYXJnaW46MTBweDtw YWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xhc3M9ImpzLWhlbHBlcl9tcl9jc3NfYXR0 ciBqcy1yZWFkbXNnLW1zZ19tcl9jc3NfYXR0ciI+PGRpdj48ZGl2PisgKiBSZXR1cm5zIGZvdW5k IHN1YnN0cmluZyBwb3NpdGlvbiArIDEgb3IgMCBpZiBub25lLjwvZGl2PjwvZGl2PjwvZGl2Pjwv ZGl2PjwvYmxvY2txdW90ZT48ZGl2Pk1pbm9yOiZuYnNwO0kgZ3Vlc3MsIGl0IHNob3VsZCBiZSDi gJhSZXR1cm5zIGZvdW5kIHN1YnN0cmluZyBwb3NpdGlvbiArIDEgb3IgMDwvZGl2PjxkaXY+aWYg dGhlcmUgaXMgbm8gc3VjaCBzdWJzdHJpbmcu4oCZPC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJv cmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2O21hcmdpbjoxMHB4O3BhZGRpbmc6MCAwIDAgMTBw eDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyX21yX2Nzc19hdHRyIGpzLXJlYWRtc2ctbXNn X21yX2Nzc19hdHRyIj48ZGl2PjxkaXY+KyAqLzxicj4rc3RhdGljIGludDxicj4ra21wX2Jpbihj b25zdCB1bnNpZ25lZCBjaGFyICogaGF5c3RhY2tfc3RyLDxicj4rIGNvbnN0IHVuc2lnbmVkIGNo YXIgKiBuZWVkbGVfc3RyLDxicj4rIHNpemVfdCBuX2hheXN0YWNrX2J5dGVzLDxicj4rIHNpemVf dCBuX25lZWRsZV9ieXRlcyw8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRp dj5BcyBJIHNlZSBubyBjaGFuZ2VzIHRvIHRoZXNlIGFyZ3MgaW4gdGhlIGZ1bmN0aW9uIGJvZHks IEkgdGhpbmsgdGhleTwvZGl2PjxkaXY+c2hvdWxkIGJlIGRlY2xhcmVkIGFzIGEgY29uc3RhbnQu PC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2O21h cmdpbjoxMHB4O3BhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVy X21yX2Nzc19hdHRyIGpzLXJlYWRtc2ctbXNnX21yX2Nzc19hdHRyIj48ZGl2PjxkaXY+KyBzaXpl X3QgaSw8YnI+KyBjb25zdCBzaXplX3QgKiBwcmVmaXhfdGFibGUpPC9kaXY+PC9kaXY+PC9kaXY+ PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+U2VlIHRoZSBjb21tZW50IGFib3V0IHRoZSBwb2ludGVy IGRlY2xhcmF0aW9uIGFib3ZlLjwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDox cHggc29saWQgIzA4NTdBNjttYXJnaW46MTBweDtwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2Pjxk aXYgY2xhc3M9ImpzLWhlbHBlcl9tcl9jc3NfYXR0ciBqcy1yZWFkbXNnLW1zZ19tcl9jc3NfYXR0 ciI+PGRpdj48ZGl2Pit7PGJyPisgc2l6ZV90IGogPSAwOzxicj4rIGludCBwb3NpdGlvbiA9IDA7 PGJyPisgd2hpbGUgKGkgJmx0OyBuX2hheXN0YWNrX2J5dGVzKSB7PGJyPisgaWYgKG5lZWRsZV9z dHJbal0gPT0gaGF5c3RhY2tfc3RyW2ldKSB7PGJyPisgKytpOzxicj4rICsrajs8YnI+KyB9PGJy PisgZWxzZSB7PGJyPisgaWYgKGogPT0gMCkgezxicj4rICsraTs8YnI+KyB9IGVsc2Ugezxicj4r IGogPSBwcmVmaXhfdGFibGVbaiAtIDFdOzxicj4rIH08YnI+KyB9PGJyPisgaWYgKGogJmd0Oz0g bl9uZWVkbGVfYnl0ZXMpIHs8YnI+KyBwb3NpdGlvbiA9IGkgLSBqICsgMTs8YnI+KyByZXR1cm4g cG9zaXRpb247PGJyPisgfTxicj4rIH08YnI+KyByZXR1cm4gcG9zaXRpb247PGJyPit9PC9kaXY+ PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+U2VlIHRoZSBjb21tZW50IGFib3V0 IHRoZSZuYnNwO2luZGVudGF0aW9uIGFib3ZlLiZuYnNwOzwvZGl2PjxibG9ja3F1b3RlIHN0eWxl PSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjttYXJnaW46MTBweDtwYWRkaW5nOjAgMCAw IDEwcHg7Ij48ZGl2PjxkaXYgY2xhc3M9ImpzLWhlbHBlcl9tcl9jc3NfYXR0ciBqcy1yZWFkbXNn LW1zZ19tcl9jc3NfYXR0ciI+PGRpdj48ZGl2Pis8YnI+Ky8qKjxicj4rICogSW1wbGVtZW50YXRp b24gb2YgS01QIGFsZ29yaXRobSB0byBmaW5kIHN1YnN0cmluZzxicj4rICogaW4gYW4gYXJyYXkg b2YgdW5pY29kZSBjaGFycyBzdGFydGluZyBmcm9tIGdpdmVuIGl0ZXJhdG9yLjxicj4rICo8YnI+ KyAqIFJlcXVpZXJlcyBVQ2hhckl0ZXJhdG9yIFtoYXlzdGFja19pdGVyXSBvZiBzdGFydGluZyBw b3NpdGlvbjxicj4rICogaW4gYGhheXN0YWNrYCwgaXRlcmF0b3IgZ2V0cyBzZXQgdG8gdGhlIGZp cnN0IGl0ZW0gYWZ0ZXIgZm91bmQ8YnI+KyAqIGBuZWVkbGVgIG9yIHJlYWNoZXMgdGhlIGVuZCBv ZiBoYXlzdGFjayBpZiBub25lLjxicj4rICo8YnI+KyAqIFJldHVybnMgZm91bmQgc3Vic3RyaW5n IHBvc2l0aW9uICsgMSBvciAwIGlmIG5vbmUuPGJyPisgKi88YnI+K2lubGluZSBzdGF0aWMgaW50 PGJyPitrbXBfdXN0cihzdHJ1Y3Qgc3FsX2NvbnRleHQgKiBjb250ZXh0LDxicj4rIFVDaGFySXRl cmF0b3IgKiBoYXlzdGFja19pdGVyLDxicj4rIFVDaGFySXRlcmF0b3IgKiBuZWVkbGVfaXRlciw8 YnI+KyBzaXplX3Qgbl9oYXlzdGFja19jaGFycyw8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Js b2NrcXVvdGU+PGRpdj5JIHRoaW5rIHRoYXQgYXJnIHNob3VsZCBiZSBkZWNsYXJlZCBhcyBhJm5i c3A7Y29uc3QuPC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAj MDg1N0E2O21hcmdpbjoxMHB4O3BhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0i anMtaGVscGVyX21yX2Nzc19hdHRyIGpzLXJlYWRtc2ctbXNnX21yX2Nzc19hdHRyIj48ZGl2Pjxk aXY+KyBjb25zdCBzaXplX3QgKiBwcmVmaXhfdGFibGUpPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+ PC9ibG9ja3F1b3RlPjxkaXY+U2VlIHRoZSBjb21tZW50IGFib3V0IHRoZSBwb2ludGVyIGRlY2xh cmF0aW9uIGFib3ZlLjwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29s aWQgIzA4NTdBNjttYXJnaW46MTBweDtwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xh c3M9ImpzLWhlbHBlcl9tcl9jc3NfYXR0ciBqcy1yZWFkbXNnLW1zZ19tcl9jc3NfYXR0ciI+PGRp dj48ZGl2Pit7PGJyPisgc3RydWN0IGNvbGwgKmNvbGwgPSBzcWxHZXRGdW5jQ29sbFNlcShjb250 ZXh0KTs8YnI+KyBpbnQgcG9zaXRpb24gPSAwOzxicj4rIHdoaWxlIChoYXlzdGFja19pdGVyLSZn dDtnZXRJbmRleChoYXlzdGFja19pdGVyLCBVSVRFUl9DVVJSRU5UKSAmbHQ7IG5faGF5c3RhY2tf Y2hhcnMpIHs8YnI+KyBpZiAobmVlZGxlX2l0ZXItJmd0O2N1cnJlbnQobmVlZGxlX2l0ZXIpID09 IGhheXN0YWNrX2l0ZXItJmd0O2N1cnJlbnQoaGF5c3RhY2tfaXRlcikpIHs8YnI+KyBuZWVkbGVf aXRlci0mZ3Q7bmV4dChuZWVkbGVfaXRlcik7PGJyPisgaGF5c3RhY2tfaXRlci0mZ3Q7bmV4dCho YXlzdGFja19pdGVyKTs8YnI+KyB9IGVsc2Ugezxicj4rIGlmIChuZWVkbGVfaXRlci0mZ3Q7Z2V0 SW5kZXgobmVlZGxlX2l0ZXIsIFVJVEVSX0NVUlJFTlQpID09IDApIHs8YnI+KyBoYXlzdGFja19p dGVyLSZndDtuZXh0KGhheXN0YWNrX2l0ZXIpOzxicj4rIH0gZWxzZSB7PGJyPisgbmVlZGxlX2l0 ZXItJmd0O21vdmUobmVlZGxlX2l0ZXIsIHByZWZpeF90YWJsZVtuZWVkbGVfaXRlci0mZ3Q7Z2V0 SW5kZXgobmVlZGxlX2l0ZXIsIFVJVEVSX0NVUlJFTlQpIC0gMV0sIFVJVEVSX1NUQVJUKTs8YnI+ KyB9PGJyPisgfTxicj4rIGlmICghbmVlZGxlX2l0ZXItJmd0O2hhc05leHQobmVlZGxlX2l0ZXIp KSB7PGJyPisgcG9zaXRpb24gPSBoYXlzdGFja19pdGVyLSZndDtnZXRJbmRleChoYXlzdGFja19p dGVyLCBVSVRFUl9DVVJSRU5UKSAtIG5lZWRsZV9pdGVyLSZndDtnZXRJbmRleChuZWVkbGVfaXRl ciwgVUlURVJfQ1VSUkVOVCkgKyAxOzxicj4rIGhheXN0YWNrX2l0ZXItJmd0O25leHQoaGF5c3Rh Y2tfaXRlcik7PGJyPisgcmV0dXJuIHBvc2l0aW9uOzxicj4rIH08YnI+KyB9PGJyPisgcmV0dXJu IHBvc2l0aW9uOzxicj4rfTxicj4rPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3Rl PjxkaXY+U2VlIHRoZSBjb21tZW50IGFib3V0IHRoZSZuYnNwO2luZGVudGF0aW9uIGFib3ZlLjwv ZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjttYXJn aW46MTBweDtwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xhc3M9ImpzLWhlbHBlcl9t cl9jc3NfYXR0ciBqcy1yZWFkbXNnLW1zZ19tcl9jc3NfYXR0ciI+PGRpdj48ZGl2PiZuYnNwOy8q Kjxicj4mbmJzcDsmbmJzcDsqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBwb3NpdGlvbigpIGZ1bmN0 aW9uLjxicj4mbmJzcDsmbmJzcDsqPGJyPkBAIC0zMDMsNyArNDQ0LDcgQEAgYWJzRnVuYyhzcWxf Y29udGV4dCAqIGNvbnRleHQsIGludCBhcmdjLCBzcWxfdmFsdWUgKiogYXJndik8YnI+Jm5ic3A7 Jm5ic3A7KiBvY2N1cnJlbmNlIG9mIG5lZWRsZSwgb3IgMCBpZiBuZWVkbGUgbmV2ZXIgb2NjdXJz IGluIGhheXN0YWNrLjxicj4mbmJzcDsmbmJzcDsqLzxicj4mbmJzcDtzdGF0aWMgdm9pZDxicj4t cG9zaXRpb25fZnVuYyhzdHJ1Y3Qgc3FsX2NvbnRleHQgKmNvbnRleHQsIGludCBhcmdjLCBzdHJ1 Y3QgTWVtICoqYXJndik8YnI+K3Bvc2l0aW9uX2Z1bmMoc3RydWN0IHNxbF9jb250ZXh0ICogY29u dGV4dCwgaW50IGFyZ2MsIHN0cnVjdCBNZW0gKiogYXJndik8YnI+Jm5ic3A7ezxicj4mbmJzcDsg VU5VU0VEX1BBUkFNRVRFUihhcmdjKTs8YnI+Jm5ic3A7IHN0cnVjdCBNZW0gKm5lZWRsZSA9IGFy Z3ZbMF07PGJyPkBAIC0zMzksOSArNDgwLDEwIEBAIHBvc2l0aW9uX2Z1bmMoc3RydWN0IHNxbF9j b250ZXh0ICpjb250ZXh0LCBpbnQgYXJnYywgc3RydWN0IE1lbSAqKmFyZ3YpPGJyPiZuYnNwOyBy ZXR1cm47PGJyPiZuYnNwOyB9PGJyPiZuYnNwOzxicj4tIGludCBuX25lZWRsZV9ieXRlcyA9IG1l bV9sZW5fdW5zYWZlKG5lZWRsZSk7PGJyPi0gaW50IG5faGF5c3RhY2tfYnl0ZXMgPSBtZW1fbGVu X3Vuc2FmZShoYXlzdGFjayk7PGJyPisgc2l6ZV90IG5fbmVlZGxlX2J5dGVzID0gbWVtX2xlbl91 bnNhZmUobmVlZGxlKTs8YnI+KyBzaXplX3Qgbl9oYXlzdGFja19ieXRlcyA9IG1lbV9sZW5fdW5z YWZlKGhheXN0YWNrKTs8YnI+Jm5ic3A7IGludCBwb3NpdGlvbiA9IDE7PGJyPisgc2l6ZV90ICpw cmVmaXhfdGFibGUgPSBOVUxMOzxicj4mbmJzcDsgaWYgKG5fbmVlZGxlX2J5dGVzICZndDsgMCkg ezxicj4mbmJzcDsgY29uc3QgdW5zaWduZWQgY2hhciAqaGF5c3RhY2tfc3RyOzxicj4mbmJzcDsg Y29uc3QgdW5zaWduZWQgY2hhciAqbmVlZGxlX3N0cjs8YnI+QEAgLTM1MSwxOCArNDkzLDI1IEBA IHBvc2l0aW9uX2Z1bmMoc3RydWN0IHNxbF9jb250ZXh0ICpjb250ZXh0LCBpbnQgYXJnYywgc3Ry dWN0IE1lbSAqKmFyZ3YpPGJyPiZuYnNwOyBhc3NlcnQobmVlZGxlX3N0ciAhPSBOVUxMKTs8YnI+ Jm5ic3A7IGFzc2VydChoYXlzdGFja19zdHIgIT0gTlVMTCB8fCBuX2hheXN0YWNrX2J5dGVzID09 IDApOzxicj4mbmJzcDsgLyo8YnI+LSAqIE5haXZlIGltcGxlbWVudGF0aW9uIG9mIHN1YnN0cmlu Zzxicj4tICogc2VhcmNoaW5nOiBtYXRjaGluZyB0aW1lIE8obiAqIG0pLjxicj4rICogQmFzaWMg dmVyc2lvbiBvZiBLTVAgYWxnPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxk aXY+VHlwbzogcy9vZiBLTVAvb2YgdGhlIEtNUDwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3Jk ZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjttYXJnaW46MTBweDtwYWRkaW5nOjAgMCAwIDEwcHg7 Ij48ZGl2PjxkaXYgY2xhc3M9ImpzLWhlbHBlcl9tcl9jc3NfYXR0ciBqcy1yZWFkbXNnLW1zZ19t cl9jc3NfYXR0ciI+PGRpdj48ZGl2PisgKiBzZWFyY2hpbmc6IG1hdGNoaW5nIHRpbWUgTyhuICsg bSksIHJlcXVpcmVzIG1lbSBPKG0pLjxicj4mbmJzcDsgKiBDYW4gYmUgaW1wcm92ZWQuPC9kaXY+ PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+VGhhdCBjb21tZW50IGFib3V0IGlt cHJvdmVtZW50IGNhbiBiZTwvZGl2PjxkaXY+cmVtb3ZlZCBiZWNhdXNlIGl0IHJlbGF0ZXMgdG8g dGhlIG9yaWdpbmFsIG5haXZlPC9kaXY+PGRpdj5pbXBsZW1lbnRhdGlvbi48L2Rpdj48YmxvY2tx dW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7bWFyZ2luOjEwcHg7cGFk ZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXJfbXJfY3NzX2F0dHIg anMtcmVhZG1zZy1tc2dfbXJfY3NzX2F0dHIiPjxkaXY+PGRpdj4mbmJzcDsgKi88YnI+LSB3aGls ZSAobl9uZWVkbGVfYnl0ZXMgJmx0Oz0gbl9oYXlzdGFja19ieXRlcyAmYW1wOyZhbXA7PGJyPi0g bWVtY21wKGhheXN0YWNrX3N0ciwgbmVlZGxlX3N0ciwgbl9uZWVkbGVfYnl0ZXMpICE9IDApIHs8 YnI+LSBwb3NpdGlvbisrOzxicj4tIG5faGF5c3RhY2tfYnl0ZXMtLTs8YnI+LSBoYXlzdGFja19z dHIrKzs8YnI+KyBwcmVmaXhfdGFibGUgPSBjYWxsb2Mobl9uZWVkbGVfYnl0ZXMsIHNpemVvZihz aXplX3QpKTs8YnI+Kzxicj4rIGlmIChwcmVmaXhfdGFibGUgIT0gTlVMTCkgezxicj4rIHByZWZp eF90YWJsZV9nZW5fYmluKG5lZWRsZV9zdHIsIG5fbmVlZGxlX2J5dGVzLCBwcmVmaXhfdGFibGUp Ozxicj4rIHBvc2l0aW9uID0ga21wX2JpbihoYXlzdGFja19zdHIsIG5lZWRsZV9zdHIsIG5faGF5 c3RhY2tfYnl0ZXMsIG5fbmVlZGxlX2J5dGVzLCAwLCBwcmVmaXhfdGFibGUpOzxicj4rIH0gZWxz ZSB7PGJyPisgd2hpbGUgKG5fbmVlZGxlX2J5dGVzICZsdDs9IG5faGF5c3RhY2tfYnl0ZXMgJmFt cDsmYW1wOzxicj4rIG1lbWNtcChoYXlzdGFja19zdHIsIG5lZWRsZV9zdHIsIG5fbmVlZGxlX2J5 dGVzKSAhPSAwKSB7PGJyPisgcG9zaXRpb24rKzs8YnI+KyBuX2hheXN0YWNrX2J5dGVzLS07PGJy PisgaGF5c3RhY2tfc3RyKys7PGJyPisgfTxicj4rIGlmIChuX25lZWRsZV9ieXRlcyAmZ3Q7IG5f aGF5c3RhY2tfYnl0ZXMpPGJyPisgcG9zaXRpb24gPSAwOzxicj4mbmJzcDsgfTwvZGl2PjwvZGl2 PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48ZGl2PlNlZSB0aGUgY29tbWVudCBhYm91dCB0aGUm bmJzcDtpbmRlbnRhdGlvbiBhYm92ZS48L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxl ZnQ6MXB4IHNvbGlkICMwODU3QTY7bWFyZ2luOjEwcHg7cGFkZGluZzowIDAgMCAxMHB4OyI+PGRp dj48ZGl2IGNsYXNzPSJqcy1oZWxwZXJfbXJfY3NzX2F0dHIganMtcmVhZG1zZy1tc2dfbXJfY3Nz X2F0dHIiPjxkaXY+PGRpdj4rIC8qPGJyPisgKiBLTVAgYWxnb3JpdGhtIHdpdGggdW5pY29kZSBz dXBwb3J0PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+VHlwZSBzL3Vu aWNvZGUvVW5pY29kZS48L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNv bGlkICMwODU3QTY7bWFyZ2luOjEwcHg7cGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNs YXNzPSJqcy1oZWxwZXJfbXJfY3NzX2F0dHIganMtcmVhZG1zZy1tc2dfbXJfY3NzX2F0dHIiPjxk aXY+PGRpdj4mbmJzcDsvKjxicj4tICogVGhlIHJlcGxhY2UoKSBmdW5jdGlvbi4gVGhyZWUgYXJn dW1lbnRzIGFyZSBhbGwgc3RyaW5nczogY2FsbDxicj4rICogVGhlIHJlcGxhY2UoKSBmdW5jdGlv bi4gVGhyZWUgYXJndW1lbnRzIGFyZSBhbGwgc3RyaW5nczogY2FsbDwvZGl2PjwvZGl2PjwvZGl2 PjwvZGl2PjwvYmxvY2txdW90ZT48ZGl2PlRoaXMgY2hhbmdlIGlzIGV4Y2Vzcy48L2Rpdj48Ymxv Y2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7bWFyZ2luOjEwcHg7 cGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXJfbXJfY3NzX2F0 dHIganMtcmVhZG1zZy1tc2dfbXJfY3NzX2F0dHIiPjxkaXY+PGRpdj5AQCAtMTMwOSw3ICsxNDg3 LDcgQEAgcmVwbGFjZUZ1bmMoc3FsX2NvbnRleHQgKiBjb250ZXh0LCBpbnQgYXJnYywgc3FsX3Zh bHVlICoqIGFyZ3YpPGJyPiZuYnNwOyB6UGF0dGVybiA9IG1lbV9hc191c3RyKGFyZ3ZbMV0pOzxi cj4mbmJzcDsgaWYgKHpQYXR0ZXJuID09IDApIHs8YnI+Jm5ic3A7IGFzc2VydChtZW1faXNfbnVs bChhcmd2WzFdKTxicj4tIHx8IHNxbF9jb250ZXh0X2RiX2hhbmRsZShjb250ZXh0KS0mZ3Q7bWFs bG9jRmFpbGVkKTs8YnI+KyB8fCBzcWxfY29udGV4dF9kYl9oYW5kbGUoY29udGV4dCktJmd0O21h bGxvY0ZhaWxlZCk7PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXY+VGhp cyBjaGFuZ2UgaXMgZXhjZXNzLjwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDox cHggc29saWQgIzA4NTdBNjttYXJnaW46MTBweDtwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2Pjxk aXYgY2xhc3M9ImpzLWhlbHBlcl9tcl9jc3NfYXR0ciBqcy1yZWFkbXNnLW1zZ19tcl9jc3NfYXR0 ciI+PGRpdj48ZGl2PiZuYnNwOyByZXR1cm47PGJyPiZuYnNwOyB9PGJyPiZuYnNwOyBuUGF0dGVy biA9IG1lbV9sZW5fdW5zYWZlKGFyZ3ZbMV0pOzxicj5AQCAtMTMzMSw0MCArMTUwOSw5MCBAQCBy ZXBsYWNlRnVuYyhzcWxfY29udGV4dCAqIGNvbnRleHQsIGludCBhcmdjLCBzcWxfdmFsdWUgKiog YXJndik8YnI+Jm5ic3A7IHJldHVybjs8YnI+Jm5ic3A7IH08YnI+Jm5ic3A7IGxvb3BMaW1pdCA9 IG5TdHIgLSBuUGF0dGVybjs8YnI+LSBmb3IgKGkgPSBqID0gMDsgaSAmbHQ7PSBsb29wTGltaXQ7 IGkrKykgezxicj4tIGlmICh6U3RyW2ldICE9IHpQYXR0ZXJuWzBdPGJyPi0gfHwgbWVtY21wKCZh bXA7elN0cltpXSwgelBhdHRlcm4sIG5QYXR0ZXJuKSkgezxicj4tIHpPdXRbaisrXSA9IHpTdHJb aV07PGJyPi0gfSBlbHNlIHs8YnI+LSB1OCAqek9sZDs8YnI+LSBzcWwgKmRiID0gc3FsX2NvbnRl eHRfZGJfaGFuZGxlKGNvbnRleHQpOzxicj4tIG5PdXQgKz0gblJlcCAtIG5QYXR0ZXJuOzxicj4t IHRlc3RjYXNlKG5PdXQgLSAxID09IGRiLSZndDthTGltaXRbU1FMX0xJTUlUX0xFTkdUSF0pOzxi cj4tIHRlc3RjYXNlKG5PdXQgLSAyID09IGRiLSZndDthTGltaXRbU1FMX0xJTUlUX0xFTkdUSF0p Ozxicj4tIGlmIChuT3V0IC0gMSAmZ3Q7IGRiLSZndDthTGltaXRbU1FMX0xJTUlUX0xFTkdUSF0p IHs8YnI+LSBkaWFnX3NldChDbGllbnRFcnJvciwgRVJfU1FMX0VYRUNVVEUsICJzdHJpbmcgIlw8 YnI+LSAib3IgYmluYXJ5IHN0cmluZyBpcyB0b28gYmlnIik7PGJyPi0gY29udGV4dC0mZ3Q7aXNf YWJvcnRlZCA9IHRydWU7PGJyPi0gc3FsX2ZyZWUoek91dCk7PGJyPi0gcmV0dXJuOzxicj4tIH08 YnI+LSB6T2xkID0gek91dDs8YnI+LSB6T3V0ID0gc3FsX3JlYWxsb2M2NCh6T3V0LCAoaW50KW5P dXQpOzxicj4tIGlmICh6T3V0ID09IDApIHs8YnI+LSBjb250ZXh0LSZndDtpc19hYm9ydGVkID0g dHJ1ZTs8YnI+LSBzcWxfZnJlZSh6T2xkKTs8YnI+LSByZXR1cm47PGJyPis8YnI+KyBpZiAocHJl Zml4X3RhYmxlICE9IE5VTEwpIHs8YnI+KyAvKio8YnI+KyAqIG9wdGltaXplZCByZXBsYWNlbWVu dCBsb2dpYyB1c2luZyBLTVAgYWxnb3JpdGhtPGJyPisgKiByZXF1aXJlcyBhZGRpdGlvbmFsIE8o blBhdHRlcm4pIG1lbW9yeSBmb3IgcHJlZml4IHRhYmxlPGJyPisgKiByZXBsYWNpbmc6IHRpbWUg TyhuICsgbSk8YnI+KyAqLzwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48ZGl2 PkluIEMgY29tbWVudHMgb3V0IG9mIGZ1bmN0aW9ucyBhbmQgaW5zaWRlIG9mIGZ1bmN0aW9ucyBz aG91bGQ8L2Rpdj48ZGl2PmJlJm5ic3A7ZGlmZmVyZW50IGluIGhvdyB0aGV5IGFyZSBzdGFydGVk LiBFdmVyeXRoaW5nIGVsc2UgaXMgd3JvbmcuPC9kaXY+PGRpdj5CZWxvdyBhcmUgY29ycmVjdCBl eGFtcGxlczo8L2Rpdj48ZGl2PiZuYnNwOyZuYnNwOy8qKiBjb21lcyBmb3IgZG9jdW1lbnRhdGlv biBjb21tZW50czwvZGl2PjxkaXY+Jm5ic3A7Jm5ic3A7LyogZm9yIGxvY2FsIG5vdCBkb2N1bWVu dGVkIGNvbW1lbnRzLjwvZGl2PjxkaXY+Jm5ic3A7PC9kaXY+PGRpdj5Ib3dldmVyIHRoZSBkaWZm ZXJlbmNlIGlzIHZhZ3VlIGFscmVhZHksIHNvIHRoZSBydWxlIGlzIHNpbXBsZSDigJQ8L2Rpdj48 ZGl2Pm91dCBvZiBmdW5jdGlvbiA9IC8qKiwgaW5zaWRlID0gLyouJm5ic3A7PC9kaXY+PGRpdj4m bmJzcDs8L2Rpdj48ZGl2PlRoaXMgaXMgZGVzY3JpYmVkIGluIG1vcmUgZGV0YWlsIGhlcmVbNF0u PC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2O21h cmdpbjoxMHB4O3BhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVy X21yX2Nzc19hdHRyIGpzLXJlYWRtc2ctbXNnX21yX2Nzc19hdHRyIj48ZGl2PjxkaXY+Kzxicj4r IC8qIHByZWNhbGN1bGF0aW5nIHByZWZpeCB0YWJsZSAqLzxicj4rIHByZWZpeF90YWJsZSA9IGNh bGxvYyhuUGF0dGVybiwgc2l6ZW9mKHNpemVfdCkpOzxicj4rIHByZWZpeF90YWJsZV9nZW5fYmlu KHpQYXR0ZXJuLCBuUGF0dGVybiwgcHJlZml4X3RhYmxlKTs8YnI+KyAvKiBjb3VudGluZyB0aGUg bnVtYmVyIG9mIFBhdHRlcm4gb2NjdXJyZW5jZXMgKi88YnI+KyBmb3IgKG5DbnQgPSBpU3RyID0g blBhdHRlcm5Qb3MgPSAwOzspIHs8YnI+KyBuUGF0dGVyblBvcyA9IGttcF9iaW4oelN0ciwgelBh dHRlcm4sIG5TdHIsIG5QYXR0ZXJuLCBpU3RyLCBwcmVmaXhfdGFibGUpOzxicj4rIGlTdHIgPSBu UGF0dGVyblBvcyArIG5QYXR0ZXJuOzxicj4rIGlmIChuUGF0dGVyblBvcyA9PSAwKTxicj4rIGJy ZWFrOzxicj4rICsrbkNudDs8YnI+KyB9PGJyPisgLyogcmVhbGxvY2F0aW9uZyBtZW0gZm9yIHpP dXQgKi88YnI+KyBuT3V0ICs9IChuUmVwIC0gblBhdHRlcm4pICogbkNudDs8YnI+KyBhc3NlcnQo bk91dCAmbHQ7IFNRTF9NQVhfTEVOR1RIKTs8YnI+KyB6T3V0ID0gY29udGV4dE1hbGxvYyhjb250 ZXh0LCAoaTY0KSBuT3V0KTs8YnI+KyBpZiAoek91dCA9PSAwKSB7PGJyPisgcmV0dXJuOzxicj4r IH08L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj5CcmFja2V0cyBhcmUg ZXhjZXNzLjwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4 NTdBNjttYXJnaW46MTBweDtwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xhc3M9Impz LWhlbHBlcl9tcl9jc3NfYXR0ciBqcy1yZWFkbXNnLW1zZ19tcl9jc3NfYXR0ciI+PGRpdj48ZGl2 PisgLyogY29waW5nIGFuZCByZXBsYWNpbmcgaW4tcGxhY2UgKi88YnI+KyBmb3IgKGlTdHIgPSBu Q29waWVkU3RyID0gbkNvcGllZE91dCA9IG5QYXR0ZXJuUG9zID0gMDs7KSB7PGJyPisgblBhdHRl cm5Qb3MgPSBrbXBfYmluKHpTdHIsIHpQYXR0ZXJuLCBuU3RyLCBuUGF0dGVybiwgaVN0ciwgcHJl Zml4X3RhYmxlKTs8YnI+KyBpU3RyID0gblBhdHRlcm5Qb3MgKyBuUGF0dGVybjs8YnI+KyBpZiAo blBhdHRlcm5Qb3MgPT0gMCk8YnI+KyBicmVhazs8YnI+KyBhc3NlcnQoblBhdHRlcm5Qb3MgJmd0 Oz0gbkNvcGllZFN0cik7PGJyPisgbWVtY3B5KHpPdXQgKyBuQ29waWVkT3V0LCB6U3RyICsgbkNv cGllZFN0ciwgblBhdHRlcm5Qb3MgLSBuQ29waWVkU3RyKTs8YnI+KyBuQ29waWVkT3V0ICs9IG5Q YXR0ZXJuUG9zIC0gbkNvcGllZFN0cjs8YnI+KyBtZW1jcHkoek91dCArIG5Db3BpZWRPdXQsIHpS ZXAsIG5SZXApOzxicj4rIG5Db3BpZWRPdXQgKz0gblJlcDs8YnI+KyBuQ29waWVkU3RyID0gblBh dHRlcm5Qb3MgKyBuUGF0dGVybjs8YnI+KyB9PGJyPisgbWVtY3B5KHpPdXQgKyBuQ29waWVkT3V0 LCB6U3RyICsgbkNvcGllZFN0ciwgblN0ciAtIG5Db3BpZWRTdHIpOzxicj4rIHpPdXRbbk91dCAt IDFdID0gMDs8YnI+KyBmcmVlKHByZWZpeF90YWJsZSk7PGJyPisgfTxicj4rIGVsc2Ugezxicj4r IC8qKjxicj4rICogTmFpdmUgcmVwbGFjaW5nIHN1YnN0cmluZyBhbGdvcml0aG08YnI+KyAqIHJl cGxhY2luZzogdGltZSBPKG4gKiBtKSwgbWVtIE8oMSk8YnI+KyAqIHVzZWQgaWYgY2Fubm90IGFs bG9jYXRlIG1lbSBmb3IgcHJlZml4IHRhYmxlPGJyPisgKi88L2Rpdj48L2Rpdj48L2Rpdj48L2Rp dj48L2Jsb2NrcXVvdGU+PGRpdj5TZWUgdGhlIGNvbW1lbnQgYWJvdXQgaW4tZnVuY3Rpb24mbmJz cDtjb21tZW50cyBhYm92ZS48L2Rpdj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4 IHNvbGlkICMwODU3QTY7bWFyZ2luOjEwcHg7cGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2 IGNsYXNzPSJqcy1oZWxwZXJfbXJfY3NzX2F0dHIganMtcmVhZG1zZy1tc2dfbXJfY3NzX2F0dHIi PjxkaXY+PGRpdj5kaWZmIC0tZ2l0IGEvdGVzdC9zcWwtdGFwL3Bvc2l0aW9uLnRlc3QubHVhIGIv dGVzdC9zcWwtdGFwL3Bvc2l0aW9uLnRlc3QubHVhPGJyPmluZGV4IDZhOTZlZDliYy4uYjkyNDRi YWY2IDEwMDc1NTxicj4tLS0gYS90ZXN0L3NxbC10YXAvcG9zaXRpb24udGVzdC5sdWE8YnI+Kysr IGIvdGVzdC9zcWwtdGFwL3Bvc2l0aW9uLnRlc3QubHVhPGJyPkBAIC02NzksMTIgKzY3OSwxNSBA QCB0ZXN0OmRvX2V4ZWNzcWxfdGVzdCg8YnI+Jm5ic3A7PGJyPiZuYnNwOy0tIENvbGxhdGlvbiBp cyBzZXQgaW4gc3BhY2UgZm9ybWF0Ljxicj4mbmJzcDs8YnI+Ky0tIFRlc3RzIDYzLTY1IGFyZSBh bHRlcmVkIGJlY2F1c2UgbmV3IHZlcnNpb24gb2YgcG9zaXRpb24oKSB0aGF0IHVzZXMgS01QIGFs Zzxicj4rLS0gaW50ZW50aW9uYWxseSBkb2VzIG5vdCBub3JtYWxpemUgZ2l2ZW4gc3RyaW5ncyAo aW4gd2hpY2ggY2FzZSAnYScgZGlmZmVycyBmcm9tICfDoCcgZXRjLik8YnI+Kzxicj4mbmJzcDt0 ZXN0OmRvX2V4ZWNzcWxfdGVzdCg8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7InBv c2l0aW9uLTEuNjMiLDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtbWzxicj4mbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDUkVBVEUg VEFCTEUgdGVzdDEgKHMxIFZBUkNIQVIoNSkgUFJJTUFSWSBLRVkgQ09MTEFURSAidW5pY29kZV9j aSIpOzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDtJTlNFUlQgSU5UTyB0ZXN0MSBWQUxVRVMoJ8OgJyk7PGJyPi0gU0VMRUNUIFBPU0lUSU9O KCdhJywgczEpIEZST00gdGVzdDE7PGJyPisgU0VMRUNUIFBPU0lUSU9OKCfDoCcsIHMxKSBGUk9N IHRlc3QxOzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDtERUxFVEUgRlJPTSB0ZXN0MTs8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7XV0sIHs8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7MTxicj5AQCAtNjk1LDcgKzY5OCw3IEBAIHRlc3Q6ZG9fZXhlY3NxbF90ZXN0KDxi cj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsicG9zaXRpb24tMS42NCIsPGJyPiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1tbPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0lOU0VSVCBJTlRPIHRlc3QxIFZBTFVFUygncXfD qHJ0eScpOzxicj4tIFNFTEVDVCBQT1NJVElPTignZXInLCBzMSkgRlJPTSB0ZXN0MTs8YnI+KyBT RUxFQ1QgUE9TSVRJT04oJ8OocicsIHMxKSBGUk9NIHRlc3QxOzxicj4mbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtERUxFVEUgRlJPTSB0ZXN0MTs8 YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7XV0sIHs8YnI+Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Mzxicj5AQCAtNzA2LDcgKzcw OSw3IEBAIHRlc3Q6ZG9fZXhlY3NxbF90ZXN0KDxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsicG9zaXRpb24tMS42NSIsPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1tb PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw O0lOU0VSVCBJTlRPIHRlc3QxIFZBTFVFUygncXfDqHJ0w78nKTs8YnI+LSBTRUxFQ1QgUE9TSVRJ T04oJ3knLCBzMSkgRlJPTSB0ZXN0MTs8YnI+KyBTRUxFQ1QgUE9TSVRJT04oJ8O/JywgczEpIEZS T00gdGVzdDE7PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwO0RFTEVURSBGUk9NIHRlc3QxOzxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDtdXSwgezxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDs2PGJyPi0tPGJyPjIuMzMuMDwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxv Y2txdW90ZT48ZGl2PkkgcHJvcG9zZSB0byBpbnRyb2R1Y2UgYSBzZXBhcmF0ZSBwYXRjaCBmb3Ig dGVzdHMgbW9kaWZpY2F0aW9uLjwvZGl2PjxkaXY+Q2hhbmdlcyBpbiB0ZXN0cyBoYXZlIG5vdGhp bmcgdG8gZG8gd2l0aCB0aGUgS01QIGFsZ29yaXRobTwvZGl2PjxkaXY+aW1wbGVtZW50YXRpb24g aXRzZWxmLiZuYnNwOzwvZGl2PjxkaXY+Jm5ic3A7PC9kaXY+PGRpdj5Zb3UgY2FuIHJlYWQgYSBn dWlkZSBvbiBob3cgdG8gc2VuZCBhIHBhdGNoIHNldCBoZXJlWzVdLjwvZGl2PjxkaXY+Jm5ic3A7 PC9kaXY+PGRpdj5bMV06Jm5ic3A7PGEgaHJlZj0iaHR0cHM6Ly93d3cudGFyYW50b29sLmlvL2Vu L2RvYy9sYXRlc3QvZGV2X2d1aWRlL2RldmVsb3Blcl9ndWlkZWxpbmVzLyIgdGFyZ2V0PSJfYmxh bmsiPmh0dHBzOi8vd3d3LnRhcmFudG9vbC5pby9lbi9kb2MvbGF0ZXN0L2Rldl9ndWlkZS9kZXZl bG9wZXJfZ3VpZGVsaW5lcy88L2E+PC9kaXY+PGRpdj5bMl06Jm5ic3A7PGEgaHJlZj0iaHR0cHM6 Ly9saXN0cy50YXJhbnRvb2wub3JnL3RhcmFudG9vbC1wYXRjaGVzLzIwMjEwNzMxMTMzNjQ4LjI1 NjYwLTEtbS5rb2tyeWFzaGtpbkB0YXJhbnRvb2wub3JnLyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBz Oi8vbGlzdHMudGFyYW50b29sLm9yZy90YXJhbnRvb2wtcGF0Y2hlcy8yMDIxMDczMTEzMzY0OC4y NTY2MC0xLW0ua29rcnlhc2hraW5AdGFyYW50b29sLm9yZy88L2E+PC9kaXY+PGRpdj5bM106Jm5i c3A7PGEgaHJlZj0iaHR0cHM6Ly93d3cudGFyYW50b29sLmlvL2VuL2RvYy9sYXRlc3QvZGV2X2d1 aWRlL2Nfc3R5bGVfZ3VpZGUvI2NoYXB0ZXItMy1wbGFjaW5nLWJyYWNlcy1hbmQtc3BhY2VzIiB0 YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly93d3cudGFyYW50b29sLmlvL2VuL2RvYy9sYXRlc3QvZGV2 X2d1aWRlL2Nfc3R5bGVfZ3VpZGUvI2NoYXB0ZXItMy1wbGFjaW5nLWJyYWNlcy1hbmQtc3BhY2Vz PC9hPjwvZGl2PjxkaXY+WzRdOiZuYnNwOzxhIGhyZWY9Imh0dHBzOi8vd3d3LnRhcmFudG9vbC5p by9lbi9kb2MvbGF0ZXN0L2Rldl9ndWlkZS9jX3N0eWxlX2d1aWRlLyNjaGFwdGVyLTgtY29tbWVu dGluZyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vd3d3LnRhcmFudG9vbC5pby9lbi9kb2MvbGF0 ZXN0L2Rldl9ndWlkZS9jX3N0eWxlX2d1aWRlLyNjaGFwdGVyLTgtY29tbWVudGluZzwvYT48L2Rp dj48ZGl2Pls1XTombmJzcDs8YSBocmVmPSJodHRwczovL3d3dy50YXJhbnRvb2wuaW8vZW4vZG9j L2xhdGVzdC9kZXZfZ3VpZGUvZGV2ZWxvcGVyX2d1aWRlbGluZXMvI2hvdy10by1zdWJtaXQtYS1w YXRjaC1mb3ItcmV2aWV3IiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly93d3cudGFyYW50b29sLmlv L2VuL2RvYy9sYXRlc3QvZGV2X2d1aWRlL2RldmVsb3Blcl9ndWlkZWxpbmVzLyNob3ctdG8tc3Vi bWl0LWEtcGF0Y2gtZm9yLXJldmlldzwvYT48L2Rpdj48ZGl2PiZuYnNwOzwvZGl2PjxkaXY+QmVz dCByZWdhcmRzLDwvZGl2PjxkaXY+TWF4aW0gS29rcnlhc2hraW48L2Rpdj48L2Rpdj48L2Rpdj48 L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdj4mbmJzcDs8L2Rpdj48L0JPRFk+PC9I VE1MPgo= ----ALT--5f28Ef67329aaE1De2A80FfEf871087A1634731293--