From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id B2473C3DA6E for ; Wed, 3 Jan 2024 23:40:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 33E3E6B03BF; Wed, 3 Jan 2024 18:40:12 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2ED256B03C0; Wed, 3 Jan 2024 18:40:12 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1B6566B03C1; Wed, 3 Jan 2024 18:40:12 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 082F56B03BF for ; Wed, 3 Jan 2024 18:40:12 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id CB6EA1A0303 for ; Wed, 3 Jan 2024 23:40:11 +0000 (UTC) X-FDA: 81639620622.06.885C1B9 Received: from smtp-fw-80007.amazon.com (smtp-fw-80007.amazon.com [99.78.197.218]) by imf15.hostedemail.com (Postfix) with ESMTP id 36071A001C for ; Wed, 3 Jan 2024 23:40:09 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=amazon.com header.s=amazon201209 header.b="e/l/+6Io"; dmarc=pass (policy=quarantine) header.from=amazon.com; spf=pass (imf15.hostedemail.com: domain of "prvs=725c9f627=surajjs@amazon.com" designates 99.78.197.218 as permitted sender) smtp.mailfrom="prvs=725c9f627=surajjs@amazon.com" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1704325209; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=nh7pm+Uoeb/UW74HR2zbp9RfuGNnlg6HEWd2qsZ3g28=; b=3GQXC+YwZrj7djmqdI/ZaXzU4WvwrQwT2dSkLOQXmcAT/+I+URY172ABlDwjEbIWjP1eOs HVS9tYqZfaIv1Gyc4M0DFUT0cIf2KBeIAyb9uEoqie37KEmAJWIW0kbFAHmW6ap9CUYuLz Bfev97Y3L4Mo0Dr0vGkTDb5sZWCgClE= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=amazon.com header.s=amazon201209 header.b="e/l/+6Io"; dmarc=pass (policy=quarantine) header.from=amazon.com; spf=pass (imf15.hostedemail.com: domain of "prvs=725c9f627=surajjs@amazon.com" designates 99.78.197.218 as permitted sender) smtp.mailfrom="prvs=725c9f627=surajjs@amazon.com" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1704325209; a=rsa-sha256; cv=none; b=ks5K7BfxKfxa9Y8DW0cqzCGu/DWWsMu5caT0+vU7neYe09NtDB8+E0Nbc1mP4GhA5MxTzH PO5s5oTsuFdw2tzGxfA1EM2Wc22O/q01aH7PPkEQy73X3iNbCVO/dmbVdps3W8qQiJAAqT CetOKfZ0Jw/5yWn6WuUZ+GzxJ8WfKVs= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1704325209; x=1735861209; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=nh7pm+Uoeb/UW74HR2zbp9RfuGNnlg6HEWd2qsZ3g28=; b=e/l/+6IoDOXTNdZjuTR5Q0zYGncuXU/MfyI77k8UrSHjmE/Ct0df24u+ bdRuakb9aBHQ8sp0G38txf0/jFTSjvvED2r05WNe5udeJT5wmopuQpRu2 4Wp90yKwUiL6tPqjVyQtq93vexa/7z2O69wHtzZKfllW1M8UUI6k6vlmt c=; X-IronPort-AV: E=Sophos;i="6.04,329,1695686400"; d="scan'208";a="264290030" Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO email-inbound-relay-pdx-2b-m6i4x-ed19f671.us-west-2.amazon.com) ([10.25.36.210]) by smtp-border-fw-80007.pdx80.corp.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Jan 2024 23:40:08 +0000 Received: from smtpout.prod.us-west-2.prod.farcaster.email.amazon.dev (pdx2-ws-svc-p26-lb5-vlan3.pdx.amazon.com [10.39.38.70]) by email-inbound-relay-pdx-2b-m6i4x-ed19f671.us-west-2.amazon.com (Postfix) with ESMTPS id 750AA806CB; Wed, 3 Jan 2024 23:40:07 +0000 (UTC) Received: from EX19MTAUWA002.ant.amazon.com [10.0.7.35:59334] by smtpin.naws.us-west-2.prod.farcaster.email.amazon.dev [10.0.57.103:2525] with esmtp (Farcaster) id a649e8a2-ccac-4385-83fc-947e5228ec99; Wed, 3 Jan 2024 23:40:07 +0000 (UTC) X-Farcaster-Flow-ID: a649e8a2-ccac-4385-83fc-947e5228ec99 Received: from EX19D030UWB003.ant.amazon.com (10.13.139.142) by EX19MTAUWA002.ant.amazon.com (10.250.64.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Wed, 3 Jan 2024 23:40:05 +0000 Received: from EX19D030UWB002.ant.amazon.com (10.13.139.182) by EX19D030UWB003.ant.amazon.com (10.13.139.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.40; Wed, 3 Jan 2024 23:40:04 +0000 Received: from EX19D030UWB002.ant.amazon.com ([fe80::8cbd:fcae:56ad:4dfa]) by EX19D030UWB002.ant.amazon.com ([fe80::8cbd:fcae:56ad:4dfa%6]) with mapi id 15.02.1118.040; Wed, 3 Jan 2024 23:40:04 +0000 From: "Jitindar Singh, Suraj" To: "rohiths.msft@gmail.com" , "gregkh@linuxfoundation.org" , "linux-mm@kvack.org" , "stfrench@microsoft.com" , "dhowells@redhat.com" , "pc@manguebit.com" , "jlayton@kernel.org" , "nspmangalore@gmail.com" , "willy@infradead.org" CC: "stable-commits@vger.kernel.org" Subject: Re: Patch "cifs: Fix flushing, invalidation and file size with copy_file_range()" has been added to the 6.1-stable tree Thread-Topic: Patch "cifs: Fix flushing, invalidation and file size with copy_file_range()" has been added to the 6.1-stable tree Thread-Index: AQHaPp4tdyQ6VPBk60yAjpQMlA0s2Q== Date: Wed, 3 Jan 2024 23:40:04 +0000 Message-ID: References: <2023121124-trifle-uncharted-2622@gregkh> In-Reply-To: <2023121124-trifle-uncharted-2622@gregkh> Accept-Language: en-AU, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.187.171.59] Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Rspam-User: X-Stat-Signature: jdd39aot94hgnt86c7dfrbtostumpb5q X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 36071A001C X-HE-Tag: 1704325209-883554 X-HE-Meta: U2FsdGVkX1/jkFzQNHG0etYP8/DDnd4BaP+/rzqQmFeDh+ITu8R69kHyWvmFlFMVxBYargtkh1CMgW6gucrIqyVYG8stXyeJ1CUk75qvzUj1SmeF/0KXZhnT+Hj5Fvcn9Y2ATPICimiGfYpRYfWOjMWcFuYRvPNHFYQuK0yrs1BFhLOmGspm+5ffM8WYdHDqrW8xgV+bh2mGRIho1w8BruVQYh9t9eYkbZYZOUAK0vCttFnT4+es2t6Yj7Oxwk8RDCqWSSYnFjadfSlIPRWYg0Fywbc3ieCAuSOr9llwC+oPuYWAvFMNLyX8u/cIUpIX3sqaz0rQpIxLbYHiJloUT1iDwAhqCkcnRnAnZ8WQ1ocNk+DeH4Y3fXd4bfTZ3pHI2tbdO3Rhnfpsc6BC9mI4kRHMIkMVAu+zHCxSOEiknl+DrKLmq3na4hKAXSqieU//Dog/9iTiPDO8rwYTmga5BET41CzJwhFsBXw+umlSB9Vm+D8mh9viUfkNecxTr8kxTf5hdnJC0RVAo5C0laKeGuEwD+b713pszAPGWwU7SPY+yY3WelDeNbKpFRio4bfDN25HZrtmbS22QYeiXtMl6e4pH6CVo9WX9UZaYOiATg/FF79F/rMhs1M7uF0w+xaBEeGk/USF5ClTO29YO92OJ2Qk0HxHNAWhpwix1pDITnEnLGqclK8icOeXIKAF6SCIJeXMc9iIETnQTelXO+rNfxhvJXqFfQw+EhLjmuuxnTllhf2iasaY2zX0rLXMDxFi+UxQvLSL4kAJucpJr5tcmrQ2UjBzODZODchnZgcV9VIGDpLF1KFnD0So8FRwArcy5IUdaTHodKzM1JX+6rdCguNynq6pS+CbXHFsa7tdrMUBWMUpX5Q06YhTwGbLPpmi1GLBIq3am/NBEDrqXAgW/Xl7UHmDcfKq2/7FntNCg4PW3tY4emhqrhzI2MsqNoo2emJevTyhKBmY5/gb5IZ 2cwz0Pt3 hZesj/eI/nHJgVsBDz+LPV6kf/yTe0dkWuLggKg4JDpyZSAZiT4Lz498lUBajQJhbQHUQKJ0nVEPuvAJRpTbR4Ssnw2CwxaDUIgoQf8WTwJlRw+lS2DyCd8JLf6Yuo/XzCnsguLPQoLtgcN/rT/gq+yQVpons6Swedna3Ns9fmGCT131bpNBHkoZ8iogzBN+ozVV1B4noNuHWXEdw2Gui5P1mlDwbWnYrWBxJiwPB7yK2cdIQfTlkCBiAsX5/pBa+jBXXJqKNEjXNSp/ujeohG/IQfrnAmxgS50wEsivsvQfhxSJE0ARJlM4G0RUKSnPmD15wHvRpvsmd4G7fMfFu5tC6MfET1EVlfw1i1lVONsEajbWfZ77YTQmaM/z7fAC9Lk3HEpdWG03a63aE6TFirb9veGRUvVWN8e2+CI9k7lkw1xaiQ4BlOmpyjqRYm6J4fi2HdpIZK/AkA3QLfQzSmlfsfchqMXZ7nf893YLIdoqtoihtf7pmAu3gME2JcmBCZZBSpcGknFy95yfOcbyPjLK7AABa0hm3mC+g1LSUFqtye5HqI0kLJMvNde0nrqevcI5oHccDVglyCT50iOo5dbJCkXgdEw35C/8l8Dzg+7Qh3wh5jn4C/o9+ZXNLZEz54yW6z7yQ8Oi90AuqPCG/f1+XirOTIbi41AZnQ94dOXLRYGRmSz/EKx2kFporp6yJwP1KZtMv2LNiN869hpkHeD+vvGxTfgR3stqKtQdbN1ncH8SAIEPPWFwViJ9EBxbAAInggRaz0qiqiSlipdVRR4cw45lMSdf/oY6ZPtz26gcgIjRaz/pzCFSkRTPGHtDSIY5F+DkAK4slzqzvlybk0UhusvptGPtzaW4Yv63dx2YV8mdP5LkpZpzgvB4ye0PN747peEeKPpT1HVIbbruLwTOra6VlqifWLTCLvcdwQXdM4EOOz8DbXkLpPzei7jeLKzuq7HY+vflXZEwQUT/YXhWXLqVX mhcBIBib +CjPVlAFhyxXY9AOP1FQP30Dr76pSC/3Nm4IOAGLlN6ajmJsSLLzJhvvhyYM3U6m9mWInd9VpaItKox4iqkfICg7o8c7VhaJf+88Fi5PIHb7/wY216f4gUYnv1yoEtQX8SYjSDYWWTSAhZvYkVpUsgX2fp1nnbvUjP4qP8C82ycOCih21AGOi48U3BFSfEsRWEhXw/n9fzCq6nn6rzor+n8GuMmxcWs+QEYD+vUnfBU= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: SGksDQoNCldoZW4gdGVzdGluZyB0aGUgdjYuMS42OSBrZXJuZWwgSSBiaXNlY3RlZCBhbiBpc3N1 ZSB0byB0aGUgYmVsb3cgY29tbWl0DQp3aGljaCB3YXMgYWRkZWQgaW4gdjYuMS42OC4gV2hlbiBy dW5uaW5nIHRoZSB4ZnN0ZXN0c1sxXSBvbiBjaWZzIEkNCm9ic2VydmUgYSBudWxsIHBvaW50ZXIg ZGVyZWZlcmVuY2UgaW4gY2lmc19mbHVzaF9mb2xpbygpIGJlY2F1c2UgZm9saW8NCmlzIG51bGwg YW5kIGRlcmVmZXJlbmNlZCBpbiBzaXplID0gZm9saW9fc2l6ZShmb2xpbykuDQoNClsxXSBodHRw czovL2dpdGh1Yi5jb20va2RhdmUveGZzdGVzdHMNCg0KVGhpcyBjYW4gYmUgcmVwcm9kdWNlZCB1 c2luZyBtYW55IG9mIHRoZSB4ZnN0ZXN0cyBidXQgcmVwcm9kdWNlcyB3aXRoDQpnZW5lcmljLzAw MSBsaWtlIGJlbG93Og0KDQokIC4vY2hlY2sgLWNpZnMgZ2VuZXJpYy8wMDENCg0KRlNUWVAgICAg ICAgICAtLSBjaWZzDQpQTEFURk9STSAgICAgIC0tIExpbnV4L3g4Nl82NCBpcC0xNzItMzEtMzYt MTUwIDYuMS42OSAjMiBTTVANClBSRUVNUFRfRFlOQU1JQyBXZWQgSmFuICAzIDIyOjM2OjQzIFVU QyAyMDI0DQpNS0ZTX09QVElPTlMgIC0tIC8vMTcyLjMxLjM0LjY2L3NjcmF0Y2gNCk1PVU5UX09Q VElPTlMgLS0gLW91c2VybmFtZT1lYzItDQp1c2VyLHBhc3N3b3JkPWFiYzEyMyxub3Blcm0sbWZz eW1saW5rcyxjaWZzYWNsLGFjdGltZW89MCAtbw0KY29udGV4dD1zeXN0ZW1fdTpvYmplY3Rfcjpy b290X3Q6czAgLy8xNzIuMzEuMzQuNjYvc2NyYXRjaCAvbW50L3NjcmF0Y2gNCg0KZ2VuZXJpYy8w MDEgMTBzIC4uLiAgDQoNClsgIDI0NC4xMzU1NTVdIHJ1biBmc3Rlc3RzIGdlbmVyaWMvMDAxIGF0 IDIwMjQtMDEtMDMgMjI6NDQ6NTkNClsgIDI0NC42Mzc0OTldIEJVRzoga2VybmVsIE5VTEwgcG9p bnRlciBkZXJlZmVyZW5jZSwgYWRkcmVzczoNCjAwMDAwMDAwMDAwMDAwMDANClsgIDI0NC42Mzgy MDRdICNQRjogc3VwZXJ2aXNvciByZWFkIGFjY2VzcyBpbiBrZXJuZWwgbW9kZQ0KWyAgMjQ0LjYz ODY5OF0gI1BGOiBlcnJvcl9jb2RlKDB4MDAwMCkgLSBub3QtcHJlc2VudCBwYWdlDQpbICAyNDQu NjM5MTk0XSBQR0QgMCBQNEQgMCANClsgIDI0NC42Mzk0NjZdIE9vcHM6IDAwMDAgWyMxXSBQUkVF TVBUIFNNUCBOT1BUSQ0KWyAgMjQ0LjY5ODA0N10gQ1BVOiAxMSBQSUQ6IDQxMjMgQ29tbTogY3Ag Tm90IHRhaW50ZWQgNi4xLjY5ICMyDQpbICAyNDQuNjk4NTk4XSBIYXJkd2FyZSBuYW1lOiBBbWF6 b24gRUMyIG02aS40eGxhcmdlLywgQklPUyAxLjANCjEwLzE2LzIwMTcNClsgIDI0NC42OTkyMjhd IFJJUDogMDAxMDpjaWZzX2ZsdXNoX2ZvbGlvKzB4M2YvMHgxMDAgW2NpZnNdDQpbICAyNDQuNjk5 NzgyXSBDb2RlOiBkMiA0MSA1NCA4OSBjYyAzMSBjOSA1NSA1MyA0OCA4OSBmMyA0OCBjMSBlZSAw YyA0OA0KODMgZWMgMDggNDggOGIgN2YgMzAgZTggN2QgMmMgYTYgZjggNDggM2QgMDAgZjAgZmYg ZmYgMGYgODcgYTUgMDAgMDAgMDANCjw0OD4gOGIgMTAgNDggODkgYzUgYjggMDAgMTAgMDAgMDAg ZjcgYzIgMDAgMDAgMDEgMDAgNzQgMDcgMGYgYjYgNGQNClsgIDI0NC43OTkyNjNdIFJTUDogMDAx ODpmZmZmYzI1NDQxZmZiZDIwIEVGTEFHUzogMDAwMTAyMDcNClsgIDI0NC44ODg5MTFdIFJBWDog MDAwMDAwMDAwMDAwMDAwMCBSQlg6IDAwMDAwMDAwMDAwMDAwMDAgUkNYOg0KMDAwMDAwMDAwMDAw MDAwMA0KWyAgMjQ0Ljg5ODQ0Nl0gUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAw MDAwMDAwMCBSREk6DQpmZmZmOWVkOTQ1ZWFjMDAwDQpbICAyNDQuODk5MTM2XSBSQlA6IDAwMDAw MDAwMDAwMDAzYTEgUjA4OiAwMDAwMDAwMDAwMDAwMDAxIFIwOToNCjAwMDAwMDAwMDAwMDAwMDAN ClsgIDI0NC45OTc3NzldIFIxMDogMDAwMDAwMDAwMDAwM2U3ZiBSMTE6IDAwMDAwMDAwMDAwMDAw MDAgUjEyOg0KZmZmZmMyNTQ0MWZmYmQ5MA0KWyAgMjQ0Ljk5ODU2NF0gUjEzOiBmZmZmYzI1NDQx ZmZiZDg4IFIxNDogZmZmZjllZDk0YWYyMzg1MCBSMTU6DQowMDAwMDAwMDAwMDAwMDAxDQpbICAy NDQuOTk5MjY0XSBGUzogIDAwMDA3ZjExMTQwNGQzNDAoMDAwMCkgR1M6ZmZmZjllZTdmZWNjMDAw MCgwMDAwKQ0Ka25sR1M6MDAwMDAwMDAwMDAwMDAwMA0KWyAgMjQ1LjA5Nzc4Ml0gQ1M6ICAwMDEw IERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMw0KWyAgMjQ1LjA5ODM0NV0g Q1IyOiAwMDAwMDAwMDAwMDAwMDAwIENSMzogMDAwMDAwMDEyMTFmYzAwMSBDUjQ6DQowMDAwMDAw MDAwNzcwNmUwDQpbICAyNDUuMDk5MTIyXSBEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAw MDAwMDAwMDAwMDAwIERSMjoNCjAwMDAwMDAwMDAwMDAwMDANClsgIDI0NS4wOTk4NTRdIERSMzog MDAwMDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAgRFI3Og0KMDAwMDAwMDAwMDAw MDQwMA0KWyAgMjQ1LjE5ODIwMF0gUEtSVTogNTU1NTU1NTQNClsgIDI0NS4xOTg0NzhdIENhbGwg VHJhY2U6DQpbICAyNDUuMTk4NzM1XSAgPFRBU0s+DQpbICAyNDUuMTk4OTY3XSAgPyBzaG93X3Ry YWNlX2xvZ19sdmwrMHgxYzQvMHgyZDINClsgIDI0NS4xOTkzOTldICA/IHNob3dfdHJhY2VfbG9n X2x2bCsweDFjNC8weDJkMg0KWyAgMjQ1LjE5OTgzMF0gID8gY2lmc19yZW1hcF9maWxlX3Jhbmdl KzB4MTVkLzB4NWUwIFtjaWZzXQ0KWyAgMjQ1LjI5ODAyOV0gID8gX19kaWVfYm9keS5jb2xkKzB4 OC8weGQNClsgIDI0NS4yOTg0MDJdICA/IHBhZ2VfZmF1bHRfb29wcysweGFjLzB4MTQwDQpbICAy NDUuMjk4OTQzXSAgPyBleGNfcGFnZV9mYXVsdCsweDYyLzB4MTQwDQpbICAyNDUuMjk5MzM2XSAg PyBhc21fZXhjX3BhZ2VfZmF1bHQrMHgyMi8weDMwDQpbICAyNDUuMjk5NzUxXSAgPyBjaWZzX2Zs dXNoX2ZvbGlvKzB4M2YvMHgxMDAgW2NpZnNdDQpbICAyNDUuMzk3ODU4XSAgPyBjaWZzX3ByZWNv cHlfc2V0X2VvZisweDczLzB4MTEwIFtjaWZzXQ0KWyAgMjQ1LjM5ODM4M10gIGNpZnNfcmVtYXBf ZmlsZV9yYW5nZSsweDE1ZC8weDVlMCBbY2lmc10NClsgIDI0NS4zOTg5MDldICBkb19jbG9uZV9m aWxlX3JhbmdlKzB4ZTcvMHgyMzANClsgIDI0NS4zOTkzMjldICB2ZnNfY2xvbmVfZmlsZV9yYW5n ZSsweDM3LzB4MTQwDQpbICAyNDUuMzk5ODYxXSAgaW9jdGxfZmlsZV9jbG9uZSsweDQ1LzB4YTAN ClsgIDI0NS40OTc5MThdICBkb192ZnNfaW9jdGwrMHg3OS8weDg5MA0KWyAgMjQ1LjQ5ODMyOF0g IF9feDY0X3N5c19pb2N0bCsweDY5LzB4YzANClsgIDI0NS40OTg3MDZdICBkb19zeXNjYWxsXzY0 KzB4MzgvMHg5MA0KWyAgMjQ1LjQ5OTA3MF0gIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFt ZSsweDY0LzB4Y2UNClsgIDI0NS40OTk1NjhdIFJJUDogMDAzMzoweDdmMTExM2UzZWM2Yg0KWyAg MjQ1LjQ5OTkyOV0gQ29kZTogNzMgMDEgYzMgNDggOGIgMGQgOTUwMCBmNyBkOCA2NCA4OSAwMSA0 OCA4MyBjOCBmZg0KYzMgNjYgMmUgMGYgMWYgODQgMDAgMDAgMDAgMDAgMDAgOTAgZjMgMGYgMWUg ZmEgYjggMTAgMDAgMDAgMDAgMGYgMDUNCjw0OD4gM2QgMDEgZjAgZmYgZmYgNzMgMDEgYzMgNDgg OGIgMGQgNjUgYTEgMWIgMDAgZjcgZDggNjQgODkgMDEgNDgNClsgIDI0NS41OTk0MTBdIFJTUDog MDAyYjowMDAwN2ZmZjE0MGViYjg4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6DQowMDAwMDAw MDAwMDAwMDEwDQpbICAyNDUuNjk3OTMwXSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAw N2ZmZjE0MGVjM2IwIFJDWDoNCjAwMDA3ZjExMTNlM2VjNmINClsgIDI0NS42OTg2MjBdIFJEWDog MDAwMDAwMDAwMDAwMDAwMyBSU0k6IDAwMDAwMDAwNDAwNDk0MDkgUkRJOg0KMDAwMDAwMDAwMDAw MDAwNA0KWyAgMjQ1LjY5OTMwNl0gUkJQOiAwMDAwMDAwMDAwMDAwMDAzIFIwODogMDAwMDAwMDAw MDAwMDAwMSBSMDk6DQowMDAwMDAwMDAwMDAwMDA0DQpbICAyNDUuNzk3OTQyXSBSMTA6IDAwMDAw MDAwMDAwMDEwMDAgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjoNCjAwMDA3ZmZmMTQwZWQ2MTYN ClsgIDI0NS43OTg3ODldIFIxMzogMDAwMDdmZmYxNDBlYmZhMCBSMTQ6IDAwMDAwMDAwMDAwMDAw MDAgUjE1Og0KMDAwMDAwMDAwMDAwMDAwMg0KWyAgMjQ1Ljc5OTQ4NV0gIDwvVEFTSz4NClsgIDI0 NS43OTk3MjBdIE1vZHVsZXMgbGlua2VkIGluOiBjbWFjIG5sc191dGY4IGNpZnMgY2lmc19hcmM0 IGNpZnNfbWQ0DQpkbnNfbHZlciBtb3VzZWRldiBzdW5ycGMgbmxzX2FzY2lpIG5sc19jcDQzNyB2 ZmF0IGZhdCBwc21vdXNlDQpnaGFzaF9jbG11bG5pX2ludGVsIGF0a2JkIGxpYnBzMiB2aXZhbGRp X2ZtYXAgYWVzbmlfaW50ZWwgZW5hIGk4MDQyDQpjcnlwdG9fc2ltZCBzZXJpbyBjcnlwdGQgYnV0 dG9uIGRybSBzY2hfZnFfY29kZWwgZnVzZSBpMmNfY29yZSBjb25maWdmcw0KZHJtX3BhbmVsX29y aWVudGF0aW9uX3F1aXJrcyBsb29wIGJhY2tsaWdodCBkbWlfc3lzZnMgY3JjMzJfcGNsbXVsDQpp bnRlbCBkbV9taXJyb3IgZG1fcmVnaW9uX2hhc2ggZG1fbG9nIGRtX21vZCBkYXggZWZpdmFyZnMN ClsgIDI0NS45OTg0NTddIENSMjogMDAwMDAwMDAwMDAwMDAwMA0KWyAgMjQ1Ljk5ODgwMF0gLS0t WyBlbmQgdHJhY2UgMDAwMDAwMDAwMDAwMDAwMCBdLS0tDQpbICAyNDYuMDg3OTE2XSBSSVA6IDAw MTA6Y2lmc19mbHVzaF9mb2xpbysweDNmLzB4MTAwIFtjaWZzXQ0KWyAgMjQ2LjA4ODc5NF0gQ29k ZTogZDIgNDEgNTQgNDkgODkgY2MgMzEgYzkgNTUgNTMgNDggODkgZjMgNDggYzEgZWUgMGMNCjQ4 IDgzIGVjIDA4IDQ4IDhiIDdmIDMwIGU4IDdkIDJjIGE2IGY4IDQ4IDNkIDAwIGYwIGZmIGZmIDBm IDg3IGE1IDAwIDAwDQowMCA8NDg+IDhiIDEwIDQ4IDg5IGM1IGI4IDAwIDEwIDAwIDAwIGY3IGMy IDAwIDAwIDAxIDAwIDc0IDA3IDBmIGI2IDRkDQpbICAyNDYuMDk5NDM2XSBSU1A6IDAwMTg6ZmZm ZmMyNTQ0MWZmYmQyMCBFRkxBR1M6IDAwMDEwMjA3DQpbICAyNDYuMTg5MjU4XSBSQVg6IDAwMDAw MDAwMDAwMDAwMDAgUkJYOiAwMDAwMDAwMDAwMDAwMDAwIFJDWDoNCjAwMDAwMDAwMDAwMDAwMDAN ClsgIDI0Ni4xOTg3MjRdIFJEWDogMDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAwMDAwMDAwMDAwMDAw MDAgUkRJOg0KZmZmZjllZDk0NWVhYzAwMA0KWyAgMjQ2LjE5OTQxMV0gUkJQOiAwMDAwMDAwMDAw MDAwM2ExIFIwODogMDAwMDAwMDAwMDAwMDAwMSBSMDk6DQowMDAwMDAwMDAwMDAwMDAwDQpbICAy NDYuMjk4MDAyXSBSMTA6IDAwMDAwMDAwMDAwMDNlN2YgUjExOiAwMDAwMDAwMDAwMDAwMDAwIFIx MjoNCmZmZmZjMjU0NDFmZmJkOTANClsgIDI0Ni4yOTg2ODddIFIxMzogZmZmZmMyNTQ0MWZmYmQ4 OCBSMTQ6IGZmZmY5ZWQ5NGFmMjM4NTAgUjE1Og0KMDAwMDAwMDAwMDAwMDAwMQ0KWyAgMjQ2LjI5 OTM3Ml0gRlM6ICAwMDAwN2YxMTE0MDRkMzQwKDAwMDApIEdTOmZmZmY5ZWU3ZmVjYzAwMDAoMDAw MCkNCmtubEdTOjAwMDAwMDAwMDAwMDAwMDANClsgIDI0Ni4zOTgwMDZdIENTOiAgMDAxMCBEUzog MDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwMzMNClsgIDI0Ni4zOTg1NjldIENSMjog MDAwMDAwMDAwMDAwMDAwMCBDUjM6IDAwMDAwMDAxMjExZmMwMDEgQ1I0Og0KMDAwMDAwMDAwMDc3 MDZlMA0KWyAgMjQ2LjM5OTI1NF0gRFIwOiAwMDAwMDAwMDAwMDAwMDAwIERSMTogMDAwMDAwMDAw MDAwMDAwMCBEUjI6DQowMDAwMDAwMDAwMDAwMDAwDQpbICAyNDYuMzk5OTM0XSBEUjM6IDAwMDAw MDAwMDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmUwZmYwIERSNzoNCjAwMDAwMDAwMDAwMDA0MDAN ClsgIDI0Ni40OTg0MTRdIFBLUlU6IDU1NTU1NTU0DQpbICAyNDYuNDk4Njk4XSBLZXJuZWwgcGFu aWMgLSBub3Qgc3luY2luZzogRmF0YWwgZXhjZXB0aW9uDQpbICAyNDYuNTAwMDQyXSBLZXJuZWwg T2Zmc2V0OiAweDM4MDAwMDAwIGZyb20gMHhmZmZmZmZmZjgxMDAwMDAwDQoocmVsb2NhdGlvbiBy YW5nZTogMHhmZmZmZmZmZjgwMDAwMDAwLTB4ZmZmZmZmZmZiZmZmZmZmZikNClsgIDI0Ni42OTgw OTRdIFJlYm9vdGluZyBpbiA1IHNlY29uZHMuLg0KDQpBbnkgaWRlYXMgd2hhdCBpcyBjYXVzaW5n IHRoaXMgYW5kIHdoYXQgdGhlIHJlc29sdXRpb24gaXM/IFRoaXMgZG9lc24ndA0Kb2NjdXIgb24g dGhlIHVwc3RyZWFtL21hc3RlciBrZXJuZWwuDQoNClRoYW5rcywNClN1cmFqDQoNCk9uIE1vbiwg MjAyMy0xMi0xMSBhdCAxMzo1NyArMDEwMCwgZ3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmcgd3Jv dGU6DQo+IA0KPiBUaGlzIGlzIGEgbm90ZSB0byBsZXQgeW91IGtub3cgdGhhdCBJJ3ZlIGp1c3Qg YWRkZWQgdGhlIHBhdGNoIHRpdGxlZA0KPiANCj4gwqDCoMKgIGNpZnM6IEZpeCBmbHVzaGluZywg aW52YWxpZGF0aW9uIGFuZCBmaWxlIHNpemUgd2l0aA0KPiBjb3B5X2ZpbGVfcmFuZ2UoKQ0KPiAN Cj4gdG8gdGhlIDYuMS1zdGFibGUgdHJlZSB3aGljaCBjYW4gYmUgZm91bmQgYXQ6DQo+IMKgwqDC oA0KPiBodHRwOi8vd3d3Lmtlcm5lbC5vcmcvZ2l0Lz9wPWxpbnV4L2tlcm5lbC9naXQvc3RhYmxl L3N0YWJsZS1xdWV1ZS5naXQ7YT1zdW1tYXJ5DQo+IA0KPiBUaGUgZmlsZW5hbWUgb2YgdGhlIHBh dGNoIGlzOg0KPiDCoMKgwqDCoCBjaWZzLWZpeC1mbHVzaGluZy1pbnZhbGlkYXRpb24tYW5kLWZp bGUtc2l6ZS13aXRoLQ0KPiBjb3B5X2ZpbGVfcmFuZ2UucGF0Y2gNCj4gYW5kIGl0IGNhbiBiZSBm b3VuZCBpbiB0aGUgcXVldWUtNi4xIHN1YmRpcmVjdG9yeS4NCj4gDQo+IElmIHlvdSwgb3IgYW55 b25lIGVsc2UsIGZlZWxzIGl0IHNob3VsZCBub3QgYmUgYWRkZWQgdG8gdGhlIHN0YWJsZQ0KPiB0 cmVlLA0KPiBwbGVhc2UgbGV0IDxzdGFibGVAdmdlci5rZXJuZWwub3JnPiBrbm93IGFib3V0IGl0 Lg0KPiANCj4gDQo+ID4gRnJvbSA3YjI0MDRhODg2ZjhiOTEyNTBjMzE4NTVkMjg3ZTYzMjEyM2Ux NzQ2IE1vbiBTZXAgMTcgMDA6MDA6MDANCj4gPiAyMDAxDQo+IEZyb206IERhdmlkIEhvd2VsbHMg PGRob3dlbGxzQHJlZGhhdC5jb20+DQo+IERhdGU6IEZyaSwgMSBEZWMgMjAyMyAwMDoyMjowMCAr MDAwMA0KPiBTdWJqZWN0OiBjaWZzOiBGaXggZmx1c2hpbmcsIGludmFsaWRhdGlvbiBhbmQgZmls ZSBzaXplIHdpdGgNCj4gY29weV9maWxlX3JhbmdlKCkNCj4gDQo+IEZyb206IERhdmlkIEhvd2Vs bHMgPGRob3dlbGxzQHJlZGhhdC5jb20+DQo+IA0KPiBjb21taXQgN2IyNDA0YTg4NmY4YjkxMjUw YzMxODU1ZDI4N2U2MzIxMjNlMTc0NiB1cHN0cmVhbS4NCj4gDQo+IEZpeCBhIG51bWJlciBvZiBp c3N1ZXMgaW4gdGhlIGNpZnMgZmlsZXN5c3RlbSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUNCj4gY29w eV9maWxlX3JhbmdlKCkgc3lzY2FsbCBpbiBjaWZzX2ZpbGVfY29weWNodW5rX3JhbmdlKCkuDQo+ IA0KPiBGaXJzdGx5LCB0aGUgaW52YWxpZGF0aW9uIG9mIHRoZSBkZXN0aW5hdGlvbiByYW5nZSBp cyBoYW5kbGVkDQo+IGluY29ycmVjdGx5Og0KPiBXZSBzaG91bGRuJ3QganVzdCBpbnZhbGlkYXRl IHRoZSB3aG9sZSBmaWxlIGFzIGRpcnR5IGRhdGEgaW4gdGhlIGZpbGUNCj4gbWF5DQo+IGdldCBs b3N0IGFuZCB3ZSBjYW4ndCBqdXN0IGNhbGwgdHJ1bmNhdGVfaW5vZGVfcGFnZXNfcmFuZ2UoKSB0 bw0KPiBpbnZhbGlkYXRlDQo+IHRoZSBkZXN0aW5hdGlvbiByYW5nZSBhcyB0aGF0IHdpbGwgZXJh c2UgcGFydHMgb2YgYSBwYXJ0aWFsIGZvbGlvIGF0DQo+IGVhY2gNCj4gZW5kIHdoaWxzdCBpbnZh bGlkYXRpbmcgYW5kIGRpc2NhcmRpbmcgYWxsIHRoZSBmb2xpb3MgaW4gdGhlIG1pZGRsZS7CoA0K PiBXZQ0KPiBuZWVkIHRvIGZvcmNlIGFsbCB0aGUgZm9saW9zIGNvdmVyaW5nIHRoZSByYW5nZSB0 byBiZSByZWxvYWRlZCwgYnV0DQo+IHdlDQo+IG11c3RuJ3QgbG9zZSBkaXJ0eSBkYXRhIGluIHRo ZW0gdGhhdCdzIG5vdCBpbiB0aGUgZGVzdGluYXRpb24gcmFuZ2UuDQo+IA0KPiBGdXJ0aGVyLCB3 ZSBzaG91bGRuJ3Qgc2ltcGx5IHJvdW5kIG91dCB0aGUgcmFuZ2UgdG8gUEFHRV9TSVpFIGF0IGVh Y2gNCj4gZW5kDQo+IGFzIGNpZnMgc2hvdWxkIG1vdmUgdG8gc3VwcG9ydCBtdWx0aXBhZ2UgZm9s aW9zLg0KPiANCj4gU2Vjb25kbHksIHRoZXJlJ3MgYW4gaXNzdWUgd2hlcmVieSBhIHdyaXRlIG1h eSBoYXZlIGV4dGVuZGVkIHRoZSBmaWxlDQo+IGxvY2FsbHksIGJ1dCBub3QgaGF2ZSBiZWVuIHdy aXR0ZW4gYmFjayB5ZXQuwqAgVGhpcyBjYW4gbGVhdmVzIHRoZQ0KPiBsb2NhbA0KPiBpZGVhIG9m IHRoZSBFT0YgYXQgYSBsYXRlciBwb2ludCB0aGFuIHRoZSBzZXJ2ZXIncyBFT0YuwqAgSWYgYSBj b3B5DQo+IHJlcXVlc3QNCj4gaXMgaXNzdWVkLCB0aGlzIHdpbGwgZmFpbCBvbiB0aGUgc2VydmVy IHdpdGggU1RBVFVTX0lOVkFMSURfVklFV19TSVpFDQo+ICh3aGljaCBnZXRzIHRyYW5zbGF0ZWQg dG8gLUVJTyBsb2NhbGx5KSBpZiB0aGUgY29weSBzb3VyY2UgZXh0ZW5kcw0KPiBwYXN0IHRoZQ0K PiBzZXJ2ZXIncyBFT0YuDQo+IA0KPiBGaXggdGhpcyBieToNCj4gDQo+IMKgKDApIEZsdXNoIHRo ZSBzb3VyY2UgcmVnaW9uIChhbHJlYWR5IGRvbmUpLsKgIFRoZSBmbHVzaCBkb2VzIG5vdGhpbmcN Cj4gYW5kDQo+IMKgwqDCoMKgIHRoZSBFT0YgaXNuJ3QgbW92ZWQgaWYgdGhlIHNvdXJjZSByZWdp b24gaGFzIG5vIGRpcnR5IGRhdGEuDQo+IA0KPiDCoCgxKSBNb3ZlIHRoZSBFT0YgdG8gdGhlIGVu ZCBvZiB0aGUgc291cmNlIHJlZ2lvbiBpZiBpdCBpc24ndCBhbHJlYWR5DQo+IGF0DQo+IMKgwqDC oMKgIGxlYXN0IGF0IHRoaXMgcG9pbnQuwqAgSWYgd2UgY2FuJ3QgZG8gdGhpcywgZm9yIGluc3Rh bmNlIGlmIHRoZQ0KPiBzZXJ2ZXINCj4gwqDCoMKgwqAgZG9lc24ndCBzdXBwb3J0IGl0LCBqdXN0 IGZsdXNoIHRoZSBlbnRpcmUgc291cmNlIGZpbGUuDQo+IA0KPiDCoCgyKSBGaW5kIHRoZSBmb2xp byAoaWYgcHJlc2VudCkgYXQgZWFjaCBlbmQgb2YgdGhlIHJhbmdlLCBmbHVzaGluZw0KPiBpdCBh bmQNCj4gwqDCoMKgwqAgaW5jcmVhc2luZyB0aGUgcmVnaW9uLXRvLWJlLWludmFsaWRhdGVkIHRv IGNvdmVyIHRob3NlIGluIHRoZWlyDQo+IMKgwqDCoMKgIGVudGlyZXR5Lg0KPiANCj4gwqAoMykg RnVsbHkgZGlzY2FyZCBhbGwgdGhlIGZvbGlvcyBjb3ZlcmluZyB0aGUgcmFuZ2UgYXMgd2Ugd2Fu dCB0aGVtDQo+IHRvIGJlDQo+IMKgwqDCoMKgIHJlbG9hZGVkLg0KPiANCj4gwqAoNCkgVGhlbiBw ZXJmb3JtIHRoZSBjb3B5Lg0KPiANCj4gVGhpcmRseSwgc2V0IGlfc2l6ZSBhZnRlciBkb2luZyB0 aGUgY29weWNodW5rX3JhbmdlIG9wZXJhdGlvbiBhcyB0aGlzDQo+IHZhbHVlDQo+IG1heSBiZSB1 c2VkIGJ5IHZhcmlvdXMgdGhpbmdzIGludGVybmFsbHkuwqAgc3RhdCgpIGhpZGVzIHRoZSBpc3N1 ZQ0KPiBiZWNhdXNlDQo+IHNldHRpbmcgLT50aW1lIHRvIDAgY2F1c2VzIGNpZnNfZ2V0YXRyKCkg dG8gcmV2YWxpZGF0ZSB0aGUNCj4gYXR0cmlidXRlcy4NCj4gDQo+IFRoZXNlIHdlcmUgY2F1c2lu ZyB0aGUgZ2VuZXJpYy8wNzUgeGZzdGVzdCB0byBmYWlsLg0KPiANCj4gRml4ZXM6IDYyMGQ4NzQ1 YjM1ZCAoIkludHJvZHVjZSBjaWZzX2NvcHlfZmlsZV9yYW5nZSgpIikNCj4gQ2M6IHN0YWJsZUB2 Z2VyLmtlcm5lbC5vcmcNCj4gU2lnbmVkLW9mZi1ieTogRGF2aWQgSG93ZWxscyA8ZGhvd2VsbHNA cmVkaGF0LmNvbT4NCj4gY2M6IFBhdWxvIEFsY2FudGFyYSA8cGNAbWFuZ3VlYml0LmNvbT4NCj4g Y2M6IFNoeWFtIFByYXNhZCBOIDxuc3BtYW5nYWxvcmVAZ21haWwuY29tPg0KPiBjYzogUm9oaXRo IFN1cmFiYXR0dWxhIDxyb2hpdGhzLm1zZnRAZ21haWwuY29tPg0KPiBjYzogTWF0dGhldyBXaWxj b3ggPHdpbGx5QGluZnJhZGVhZC5vcmc+DQo+IGNjOiBKZWZmIExheXRvbiA8amxheXRvbkBrZXJu ZWwub3JnPg0KPiBjYzogbGludXgtY2lmc0B2Z2VyLmtlcm5lbC5vcmcNCj4gY2M6IGxpbnV4LW1t QGt2YWNrLm9yZw0KPiBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBIb3dlbGxzIDxkaG93ZWxsc0ByZWRo YXQuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBTdGV2ZSBGcmVuY2ggPHN0ZnJlbmNoQG1pY3Jvc29m dC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IEdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2toQGxpbnV4 Zm91bmRhdGlvbi5vcmc+DQo+IC0tLQ0KPiDCoGZzL3NtYi9jbGllbnQvY2lmc2ZzLmMgfMKgIDEw Mg0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tDQo+ IMKgMSBmaWxlIGNoYW5nZWQsIDk5IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+IA0K PiAtLS0gYS9mcy9zbWIvY2xpZW50L2NpZnNmcy5jDQo+ICsrKyBiL2ZzL3NtYi9jbGllbnQvY2lm c2ZzLmMNCj4gQEAgLTExOTEsNiArMTE5MSw3MiBAQCBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0 aW9ucyBjaWZzX3N5bWxpDQo+IMKgwqDCoMKgwqDCoMKgwqAubGlzdHhhdHRyID0gY2lmc19saXN0 eGF0dHIsDQo+IMKgfTsNCj4gwqANCj4gKy8qDQo+ICsgKiBBZHZhbmNlIHRoZSBFT0YgbWFya2Vy IHRvIGFmdGVyIHRoZSBzb3VyY2UgcmFuZ2UuDQo+ICsgKi8NCj4gK3N0YXRpYyBpbnQgY2lmc19w cmVjb3B5X3NldF9lb2Yoc3RydWN0IGlub2RlICpzcmNfaW5vZGUsIHN0cnVjdA0KPiBjaWZzSW5v ZGVJbmZvICpzcmNfY2lmc2ksDQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBjaWZzX3Rjb24gKnNyY190Y29uLA0K PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqB1bnNpZ25lZCBpbnQgeGlkLCBsb2ZmX3Qgc3JjX2VuZCkNCj4gK3sNCj4gK8KgwqDC oMKgwqDCoMKgc3RydWN0IGNpZnNGaWxlSW5mbyAqd3JpdGVhYmxlX3NyY2ZpbGU7DQo+ICvCoMKg wqDCoMKgwqDCoGludCByYyA9IC1FSU5WQUw7DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgd3JpdGVh YmxlX3NyY2ZpbGUgPSBmaW5kX3dyaXRhYmxlX2ZpbGUoc3JjX2NpZnNpLA0KPiBGSU5EX1dSX0ZT VUlEX09OTFkpOw0KPiArwqDCoMKgwqDCoMKgwqBpZiAod3JpdGVhYmxlX3NyY2ZpbGUpIHsNCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChzcmNfdGNvbi0+c2VzLT5zZXJ2ZXIt Pm9wcy0+c2V0X2ZpbGVfc2l6ZSkNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqByYyA9IHNyY190Y29uLT5zZXMtPnNlcnZlci0+b3BzLQ0KPiA+c2V0X2Zp bGVfc2l6ZSgNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgeGlkLCBzcmNfdGNvbiwgd3JpdGVhYmxlX3NyY2ZpbGUsDQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHNyY19pbm9kZS0+aV9zaXplLCB0cnVlIC8qIG5vIG5lZWQgdG8NCj4gc2V0IHNwYXJzZSAq Lyk7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBlbHNlDQo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmMgPSAtRU5PU1lTOw0KPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY2lmc0ZpbGVJbmZvX3B1dCh3cml0ZWFibGVfc3Jj ZmlsZSk7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjaWZzX2RiZyhGWUksICJT ZXRGU2l6ZSBmb3IgY29weWNodW5rIHJjID0gJWRcbiIsDQo+IHJjKTsNCj4gK8KgwqDCoMKgwqDC oMKgfQ0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoGlmIChyYyA8IDApDQo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBnb3RvIHNldF9mYWlsZWQ7DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKg bmV0ZnNfcmVzaXplX2ZpbGUoJnNyY19jaWZzaS0+bmV0ZnMsIHNyY19lbmQpOw0KPiArwqDCoMKg wqDCoMKgwqBmc2NhY2hlX3Jlc2l6ZV9jb29raWUoY2lmc19pbm9kZV9jb29raWUoc3JjX2lub2Rl KSwgc3JjX2VuZCk7DQo+ICvCoMKgwqDCoMKgwqDCoHJldHVybiAwOw0KPiArDQo+ICtzZXRfZmFp bGVkOg0KPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gZmlsZW1hcF93cml0ZV9hbmRfd2FpdChzcmNf aW5vZGUtPmlfbWFwcGluZyk7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsgKiBGbHVzaCBvdXQgZWl0 aGVyIHRoZSBmb2xpbyB0aGF0IG92ZXJsYXBzIHRoZSBiZWdpbm5pbmcgb2YgYSByYW5nZQ0KPiBp biB3aGljaA0KPiArICogcG9zIHJlc2lkZXMgb3IgdGhlIGZvbGlvIHRoYXQgb3ZlcmxhcHMgdGhl IGVuZCBvZiBhIHJhbmdlIHVubGVzcw0KPiB0aGF0IGZvbGlvDQo+ICsgKiBpcyBlbnRpcmVseSB3 aXRoaW4gdGhlIHJhbmdlIHdlJ3JlIGdvaW5nIHRvIGludmFsaWRhdGUuwqAgV2UNCj4gZXh0ZW5k IHRoZSBmbHVzaA0KPiArICogYm91bmRzIHRvIGVuY29tcGFzcyB0aGUgZm9saW8uDQo+ICsgKi8N Cj4gK3N0YXRpYyBpbnQgY2lmc19mbHVzaF9mb2xpbyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2Zm X3QgcG9zLCBsb2ZmX3QNCj4gKl9mc3RhcnQsIGxvZmZfdCAqX2ZlbmQsDQo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJvb2wgZmlyc3QpDQo+ ICt7DQo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBmb2xpbyAqZm9saW87DQo+ICvCoMKgwqDCoMKg wqDCoHVuc2lnbmVkIGxvbmcgbG9uZyBmcG9zLCBmZW5kOw0KPiArwqDCoMKgwqDCoMKgwqBwZ29m Zl90IGluZGV4ID0gcG9zIC8gUEFHRV9TSVpFOw0KPiArwqDCoMKgwqDCoMKgwqBzaXplX3Qgc2l6 ZTsNCj4gK8KgwqDCoMKgwqDCoMKgaW50IHJjID0gMDsNCj4gKw0KPiArwqDCoMKgwqDCoMKgwqBm b2xpbyA9IGZpbGVtYXBfZ2V0X2ZvbGlvKGlub2RlLT5pX21hcHBpbmcsIGluZGV4KTsNCj4gK8Kg wqDCoMKgwqDCoMKgaWYgKElTX0VSUihmb2xpbykpDQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqByZXR1cm4gMDsNCj4gKw0KPiArwqDCoMKgwqDCoMKgwqBzaXplID0gZm9saW9fc2l6 ZShmb2xpbyk7DQo+ICvCoMKgwqDCoMKgwqDCoGZwb3MgPSBmb2xpb19wb3MoZm9saW8pOw0KPiAr wqDCoMKgwqDCoMKgwqBmZW5kID0gZnBvcyArIHNpemUgLSAxOw0KPiArwqDCoMKgwqDCoMKgwqAq X2ZzdGFydCA9IG1pbl90KHVuc2lnbmVkIGxvbmcgbG9uZywgKl9mc3RhcnQsIGZwb3MpOw0KPiAr wqDCoMKgwqDCoMKgwqAqX2ZlbmTCoMKgID0gbWF4X3QodW5zaWduZWQgbG9uZyBsb25nLCAqX2Zl bmQsIGZlbmQpOw0KPiArwqDCoMKgwqDCoMKgwqBpZiAoKGZpcnN0ICYmIHBvcyA9PSBmcG9zKSB8 fCAoIWZpcnN0ICYmIHBvcyA9PSBmZW5kKSkNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGdvdG8gb3V0Ow0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoHJjID0gZmlsZW1hcF93cml0ZV9h bmRfd2FpdF9yYW5nZShpbm9kZS0+aV9tYXBwaW5nLCBmcG9zLA0KPiBmZW5kKTsNCj4gK291dDoN Cj4gK8KgwqDCoMKgwqDCoMKgZm9saW9fcHV0KGZvbGlvKTsNCj4gK8KgwqDCoMKgwqDCoMKgcmV0 dXJuIHJjOw0KPiArfQ0KPiArDQo+IMKgc3RhdGljIGxvZmZfdCBjaWZzX3JlbWFwX2ZpbGVfcmFu Z2Uoc3RydWN0IGZpbGUgKnNyY19maWxlLCBsb2ZmX3QNCj4gb2ZmLA0KPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBmaWxlICpkc3RfZmlsZSwgbG9mZl90IGRlc3RvZmYs IGxvZmZfdCBsZW4sDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdW5zaWduZWQg aW50IHJlbWFwX2ZsYWdzKQ0KPiBAQCAtMTI2MCwxMCArMTMyNiwxMiBAQCBzc2l6ZV90IGNpZnNf ZmlsZV9jb3B5Y2h1bmtfcmFuZ2UodW5zaWduDQo+IMKgew0KPiDCoMKgwqDCoMKgwqDCoMKgc3Ry dWN0IGlub2RlICpzcmNfaW5vZGUgPSBmaWxlX2lub2RlKHNyY19maWxlKTsNCj4gwqDCoMKgwqDC oMKgwqDCoHN0cnVjdCBpbm9kZSAqdGFyZ2V0X2lub2RlID0gZmlsZV9pbm9kZShkc3RfZmlsZSk7 DQo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBjaWZzSW5vZGVJbmZvICpzcmNfY2lmc2kgPSBDSUZT X0koc3JjX2lub2RlKTsNCj4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBjaWZzRmlsZUluZm8gKnNt Yl9maWxlX3NyYzsNCj4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBjaWZzRmlsZUluZm8gKnNtYl9m aWxlX3RhcmdldDsNCj4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBjaWZzX3Rjb24gKnNyY190Y29u Ow0KPiDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGNpZnNfdGNvbiAqdGFyZ2V0X3Rjb247DQo+ICvC oMKgwqDCoMKgwqDCoHVuc2lnbmVkIGxvbmcgbG9uZyBkZXN0ZW5kLCBmc3RhcnQsIGZlbmQ7DQo+ IMKgwqDCoMKgwqDCoMKgwqBzc2l6ZV90IHJjOw0KPiDCoA0KPiDCoMKgwqDCoMKgwqDCoMKgY2lm c19kYmcoRllJLCAiY29weWNodW5rIHJhbmdlXG4iKTsNCj4gQEAgLTEzMDMsMTMgKzEzNzEsNDEg QEAgc3NpemVfdCBjaWZzX2ZpbGVfY29weWNodW5rX3JhbmdlKHVuc2lnbg0KPiDCoMKgwqDCoMKg wqDCoMKgaWYgKHJjKQ0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdvdG8gdW5s b2NrOw0KPiDCoA0KPiAtwqDCoMKgwqDCoMKgwqAvKiBzaG91bGQgd2UgZmx1c2ggZmlyc3QgYW5k IGxhc3QgcGFnZSBmaXJzdCAqLw0KPiAtwqDCoMKgwqDCoMKgwqB0cnVuY2F0ZV9pbm9kZV9wYWdl cygmdGFyZ2V0X2lub2RlLT5pX2RhdGEsIDApOw0KPiArwqDCoMKgwqDCoMKgwqAvKiBUaGUgc2Vy dmVyLXNpZGUgY29weSB3aWxsIGZhaWwgaWYgdGhlIHNvdXJjZSBjcm9zc2VzIHRoZQ0KPiBFT0Yg bWFya2VyLg0KPiArwqDCoMKgwqDCoMKgwqAgKiBBZHZhbmNlIHRoZSBFT0YgbWFya2VyIGFmdGVy IHRoZSBmbHVzaCBhYm92ZSB0byB0aGUgZW5kIG9mDQo+IHRoZSByYW5nZQ0KPiArwqDCoMKgwqDC oMKgwqAgKiBpZiBpdCdzIHNob3J0IG9mIHRoYXQuDQo+ICvCoMKgwqDCoMKgwqDCoCAqLw0KPiAr wqDCoMKgwqDCoMKgwqBpZiAoc3JjX2NpZnNpLT5zZXJ2ZXJfZW9mIDwgb2ZmICsgbGVuKSB7DQo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByYyA9IGNpZnNfcHJlY29weV9zZXRfZW9m KHNyY19pbm9kZSwgc3JjX2NpZnNpLA0KPiBzcmNfdGNvbiwgeGlkLCBvZmYgKyBsZW4pOw0KPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKHJjIDwgMCkNCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnb3RvIHVubG9jazsNCj4gK8KgwqDC oMKgwqDCoMKgfQ0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoGRlc3RlbmQgPSBkZXN0b2ZmICsgbGVu IC0gMTsNCj4gKw0KPiArwqDCoMKgwqDCoMKgwqAvKiBGbHVzaCB0aGUgZm9saW9zIGF0IGVpdGhl ciBlbmQgb2YgdGhlIGRlc3RpbmF0aW9uIHJhbmdlIHRvDQo+IHByZXZlbnQNCj4gK8KgwqDCoMKg wqDCoMKgICogYWNjaWRlbnRhbCBsb3NzIG9mIGRpcnR5IGRhdGEgb3V0c2lkZSBvZiB0aGUgcmFu Z2UuDQo+ICvCoMKgwqDCoMKgwqDCoCAqLw0KPiArwqDCoMKgwqDCoMKgwqBmc3RhcnQgPSBkZXN0 b2ZmOw0KPiArwqDCoMKgwqDCoMKgwqBmZW5kID0gZGVzdGVuZDsNCj4gKw0KPiArwqDCoMKgwqDC oMKgwqByYyA9IGNpZnNfZmx1c2hfZm9saW8odGFyZ2V0X2lub2RlLCBkZXN0b2ZmLCAmZnN0YXJ0 LCAmZmVuZCwNCj4gdHJ1ZSk7DQo+ICvCoMKgwqDCoMKgwqDCoGlmIChyYykNCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdvdG8gdW5sb2NrOw0KPiArwqDCoMKgwqDCoMKgwqByYyA9 IGNpZnNfZmx1c2hfZm9saW8odGFyZ2V0X2lub2RlLCBkZXN0ZW5kLCAmZnN0YXJ0LCAmZmVuZCwN Cj4gZmFsc2UpOw0KPiArwqDCoMKgwqDCoMKgwqBpZiAocmMpDQo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBnb3RvIHVubG9jazsNCj4gKw0KPiArwqDCoMKgwqDCoMKgwqAvKiBEaXNj YXJkIGFsbCB0aGUgZm9saW9zIHRoYXQgb3ZlcmxhcCB0aGUgZGVzdGluYXRpb24NCj4gcmVnaW9u LiAqLw0KPiArwqDCoMKgwqDCoMKgwqB0cnVuY2F0ZV9pbm9kZV9wYWdlc19yYW5nZSgmdGFyZ2V0 X2lub2RlLT5pX2RhdGEsIGZzdGFydCwNCj4gZmVuZCk7DQo+IMKgDQo+IMKgwqDCoMKgwqDCoMKg wqByYyA9IGZpbGVfbW9kaWZpZWQoZHN0X2ZpbGUpOw0KPiAtwqDCoMKgwqDCoMKgwqBpZiAoIXJj KQ0KPiArwqDCoMKgwqDCoMKgwqBpZiAoIXJjKSB7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgcmMgPSB0YXJnZXRfdGNvbi0+c2VzLT5zZXJ2ZXItPm9wcy0NCj4gPmNvcHljaHVu a19yYW5nZSh4aWQsDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHNtYl9maWxlX3NyYywgc21iX2ZpbGVfdGFyZ2V0LCBvZmYsIGxlbiwNCj4gZGVzdG9m Zik7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAocmMgPiAwICYmIGRlc3Rv ZmYgKyByYyA+DQo+IGlfc2l6ZV9yZWFkKHRhcmdldF9pbm9kZSkpDQo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdHJ1bmNhdGVfc2V0c2l6ZSh0YXJnZXRf aW5vZGUsIGRlc3RvZmYgKyByYyk7DQo+ICvCoMKgwqDCoMKgwqDCoH0NCj4gwqANCj4gwqDCoMKg wqDCoMKgwqDCoGZpbGVfYWNjZXNzZWQoc3JjX2ZpbGUpOw0KPiDCoA0KPiANCj4gDQo+IFBhdGNo ZXMgY3VycmVudGx5IGluIHN0YWJsZS1xdWV1ZSB3aGljaCBtaWdodCBiZSBmcm9tDQo+IGRob3dl bGxzQHJlZGhhdC5jb23CoGFyZQ0KPiANCj4gcXVldWUtNi4xL2NpZnMtZml4LWZsdXNoaW5nLWlu dmFsaWRhdGlvbi1hbmQtZmlsZS1zaXplLXdpdGgtDQo+IGNvcHlfZmlsZV9yYW5nZS5wYXRjaA0K PiBxdWV1ZS02LjEvY2lmcy1maXgtZmx1c2hpbmctaW52YWxpZGF0aW9uLWFuZC1maWxlLXNpemUt d2l0aC0NCj4gZmljbG9uZS5wYXRjaA0KPiBxdWV1ZS02LjEvY2lmcy1maXgtbm9uLWF2YWlsYWJp bGl0eS1vZi1kZWR1cC1icmVha2luZy1nZW5lcmljLQ0KPiAzMDQucGF0Y2gNCj4gDQoNCg==