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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 26BC5C433F5 for ; Thu, 3 Mar 2022 06:09:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:References :In-Reply-To:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=LS+9qOqhm9+ujSkr6wYG2QBxHotdGBIGhFrGIPmpvg0=; b=SqQ6YDlpuuY7vW jfNdqG0+n/3p+n5mZSZfJlFJ/AKe5XxksN5ruDrLGBVuWdbzsrvI5u3mDZpToF4utgW3w2qSUweAw fjEDrcOrymolOC0o3DeBdu/v0OEpaB2/yYmMtKQqhgjAihXd6OgUnPLQrYIyQpMmVtuld5AKRtU/7 BupmkxknmX89T2OuZLtpsfniLmNPM6YI2hBW1A4KoVDekZXcdb50CBEzHS3OUd62RahUsjCyvemfh +Chv9XxdP27EkK+S8U0ev19JKzTQesjQYC27f1JNWnp63rtd4bw9q78uYRdA4B/lrtqcOHt0pCVHx 3h/O+R8Fy2C5FvZ6nSkQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nPecv-005I91-9M; Thu, 03 Mar 2022 06:07:49 +0000 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nPecp-005I84-FE for linux-arm-kernel@lists.infradead.org; Thu, 03 Mar 2022 06:07:46 +0000 Received: from pps.filterd (m0098394.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 2235Mj7l027039; Thu, 3 Mar 2022 06:07:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : in-reply-to : references : date : message-id : content-type : content-transfer-encoding : mime-version; s=pp1; bh=tAFo2nAVBHlJm3WcjxdMbljcwPYV8sMq6b92Cb6CE4k=; b=jnVcU8lBfvLwuVJpmTgJ5mT1SAtlcxDgfBsNv1Un6nzwd/gFRfOdIMh7db1SA1JJmPzd ynzEWS5zJeUKiHC6lKpfGBpkoEbQiV0MGQG+p3oblydwSzvoICLzGMAL7JilWdr1Rwvm ljYC3Ljar2SxIZu/vSJUZRvgXq3CHlmUAFVElqKr+KddJ4R4sLqwbfTE37ZYYBaz/0Ll X1ePODYgLIoL4iNLLYB8nl8Sdovf0mTKfuaNh5Hjj9Ud0Gy1vvpmV/wrzaGUEu9vV0Qm p3KxVqiHptc4TLOq8cNCrtfpNN3EENs0yK6X00RPmKkydImIl2ZvKviQ7C9KVUsPfG7U Cg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 3ejqfr0pjt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 03 Mar 2022 06:07:17 +0000 Received: from m0098394.ppops.net (m0098394.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 2235NL2D029716; Thu, 3 Mar 2022 06:07:16 GMT Received: from ppma03ams.nl.ibm.com (62.31.33a9.ip4.static.sl-reverse.com [169.51.49.98]) by mx0a-001b2d01.pphosted.com with ESMTP id 3ejqfr0phy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 03 Mar 2022 06:07:16 +0000 Received: from pps.filterd (ppma03ams.nl.ibm.com [127.0.0.1]) by ppma03ams.nl.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 22364tR9020914; Thu, 3 Mar 2022 06:07:14 GMT Received: from b06cxnps4075.portsmouth.uk.ibm.com (d06relay12.portsmouth.uk.ibm.com [9.149.109.197]) by ppma03ams.nl.ibm.com with ESMTP id 3efbu9gthq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 03 Mar 2022 06:07:13 +0000 Received: from d06av22.portsmouth.uk.ibm.com (d06av22.portsmouth.uk.ibm.com [9.149.105.58]) by b06cxnps4075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 22367B5D34603464 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 3 Mar 2022 06:07:11 GMT Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4AD6E4C040; Thu, 3 Mar 2022 06:07:11 +0000 (GMT) Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CFC274C046; Thu, 3 Mar 2022 06:06:54 +0000 (GMT) Received: from vajain21.in.ibm.com (unknown [9.163.20.88]) by d06av22.portsmouth.uk.ibm.com (Postfix) with SMTP; Thu, 3 Mar 2022 06:06:54 +0000 (GMT) Received: by vajain21.in.ibm.com (sSMTP sendmail emulation); Thu, 03 Mar 2022 11:36:51 +0530 From: Vaibhav Jain To: Yu Zhao , Andrew Morton , Johannes Weiner , Mel Gorman , Michal Hocko Cc: Andi Kleen , Aneesh Kumar , Barry Song <21cnbao@gmail.com>, Catalin Marinas , Dave Hansen , Hillf Danton , Jens Axboe , Jesse Barnes , Jonathan Corbet , Linus Torvalds , Matthew Wilcox , Michael Larabel , Mike Rapoport , Rik van Riel , Vlastimil Babka , Will Deacon , Ying Huang , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, page-reclaim@google.com, x86@kernel.org, Yu Zhao Subject: Re: [PATCH v7 00/12] Multigenerational LRU Framework In-Reply-To: <20220208081902.3550911-1-yuzhao@google.com> References: <20220208081902.3550911-1-yuzhao@google.com> Date: Thu, 03 Mar 2022 11:36:51 +0530 Message-ID: <87czj3mux0.fsf@vajain21.in.ibm.com> X-TM-AS-GCONF: 00 X-Proofpoint-GUID: FeXKMhmdtlwCLyty8s-Fq5RgMLRv5zGR X-Proofpoint-ORIG-GUID: H1XbNMky1SKwfWuu_TXkq8ftQ8J3pmpO X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.816,Hydra:6.0.425,FMLib:17.11.64.514 definitions=2022-03-03_01,2022-02-26_01,2022-02-23_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 mlxscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 adultscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1011 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2203030027 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220302_220743_537130_36307225 X-CRM114-Status: GOOD ( 36.78 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CkluIGEgc3ludGhldGljIE1vbmdvREIgQmVuY2htYXJrIChZQ1NCKSBzZWVpbmcgYW4gYXZlcmFn ZSBvZiB+MTklIHRocm91Z2hwdXQKaW1wcm92ZW1lbnQgb24gUE9XRVIxMChSYWRpeCBNTVUgKyA2 NEsgUGFnZSBTaXplKSB3aXRoIE1HTFJVIHBhdGNoZXMgb24KdG9wIG9mIHY1LjE2IGtlcm5lbCBm b3IgTW9uZ29EQiArIFlDU0IgYmVuY2ggYWNyb3NzIHRocmVlIGRpZmZlcmVudApyZXF1ZXN0IGRp c3RyaWJ1cmlvbnMgbmFtZWx5IEV4cG9uZW50aWFsLFVuaWZvcm0gYW5kIFppcGZhbgoKVGVzdC1S ZXN1bHRzCj09PT09PT09PT09PQoKQXZlcmFnZSBZQ1NCIHJlcG9ydGVkIHRocm91Z2hwdXQgKDk1 JSBDb25maWRlbmNlIEludGVydmFsKToKfC0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLXwK fCBLZXJuZWwtVHlwZSAgICAgICAgIHwgRXhwb25lbnRpYWwgICAgICAgICB8IFVuaWZvcm0gICAg ICAgICAgICAgfCBaaXBmYW4gICAgICAgICAgICAgIHwKfC0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLXwKfCBCYXNlIEtlcm5lbCAodjUuMTYpIHwgMjczMjQuNzAxIMKxIDc1OS42NTIgfCAy MDY3MS41OTAgwrEgNDEyLjk3NCB8IDM3NzEzLjc2MSDCsSA2MjEuMjEzIHwKfCB2NS4xNiArIE1H TFJVICAgICAgIHwgMzI3MDIuMjMxIMKxIDI4Ny45NTcgfCAyNDkxNi4yMzkgwrEgMjE3Ljk3NyB8 IDQ0MzA4LjgzOSDCsSA3MDEuODI5IHwKfC0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLXwK fCBTcGVlZHVwICAgICAgICAgICAgIHwgMTkuNjglIMKxIDQuMDMlICAgICAgfCAyMC4xMSUgwrEg Mi45NSUgICAgICB8IDE3LjQ5JSDCsSAyLjgyJSAgICAgIHwKfC0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLXwKCm4gPSAxMSBTYW1wbGVzIHggMyAoRGlzdHJpYnV0aW9ucykgeCAyIChLZXJu ZWxzKSA9IDY2IE9ic2VydmF0aW9ucwoKVGVzdCBFbnZpcm9ubWVudAo9PT09PT09PT09PT09PT09 CkNwdTogUE9XRVIxMCAoYXJjaGl0ZWN0ZWQpLCBhbHRpdmVjIHN1cHBvcnRlZApwbGF0Zm9ybTog cFNlcmllcwpDUFVzOiAzMgpNTVU6IFJhZGl4ClBhZ2UtU2l6ZTogNjRLClRvdGFsLU1lbW9yeTog NjRHCgpEaXN0cm8KLS0tLS0tLQojIGNhdCAvZXRjL29zLXJlbGVhc2UKTkFNRT0iUmVkIEhhdCBF bnRlcnByaXNlIExpbnV4IgpWRVJTSU9OPSI4LjQgKE9vdHBhKSIKSUQ9InJoZWwiCklEX0xJS0U9 ImZlZG9yYSIKVkVSU0lPTl9JRD0iOC40IgpQTEFURk9STV9JRD0icGxhdGZvcm06ZWw4IgpQUkVU VFlfTkFNRT0iUmVkIEhhdCBFbnRlcnByaXNlIExpbnV4IDguNCAoT290cGEpIgpBTlNJX0NPTE9S PSIwOzMxIgpDUEVfTkFNRT0iY3BlOi9vOnJlZGhhdDplbnRlcnByaXNlX2xpbnV4OjguNDpHQSIK SE9NRV9VUkw9Imh0dHBzOi8vd3d3LnJlZGhhdC5jb20vIgpET0NVTUVOVEFUSU9OX1VSTD0iaHR0 cHM6Ly9hY2Nlc3MucmVkaGF0LmNvbS9kb2N1bWVudGF0aW9uL3JlZF9oYXRfZW50ZXJwcmlzZV9s aW51eC84LyIKQlVHX1JFUE9SVF9VUkw9Imh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS8iCgpS RURIQVRfQlVHWklMTEFfUFJPRFVDVD0iUmVkIEhhdCBFbnRlcnByaXNlIExpbnV4IDgiClJFREhB VF9CVUdaSUxMQV9QUk9EVUNUX1ZFUlNJT049OC40ClJFREhBVF9TVVBQT1JUX1BST0RVQ1Q9IlJl ZCBIYXQgRW50ZXJwcmlzZSBMaW51eCIKUkVESEFUX1NVUFBPUlRfUFJPRFVDVF9WRVJTSU9OPSI4 LjQiCgpTeXN0ZW0tY29uZmlnCi0tLS0tLS0tLS0tLS0KIyBjYXQgL3N5cy9rZXJuZWwvbW0vdHJh bnNwYXJlbnRfaHVnZXBhZ2UvZW5hYmxlZAphbHdheXMgbWFkdmlzZSBbbmV2ZXJdCgojIGNhdCAv cHJvYy9zd2FwcyAKRmlsZW5hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUg ICAgICAgICAgICBTaXplICAgICAgICAgICAgVXNlZCAgICAgICAgICAgIFByaW9yaXR5Ci9kZXYv ZG0tNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aXRpb24gICAgICAgMTA0ODU2 OTYgICAgICAgIDk0MDg2NCAgICAgICAgICAtMgoKIyBjYXQgL3Byb2Mvc3lzL3ZtL292ZXJjb21t aXRfbWVtb3J5CjAKCiNjYXQgL3Byb2MvY21kbGluZQo8ZXhpc3RpbmcgcGFyYW1ldGVycz4gc3lz dGVtZC51bmlmaWVkX2Nncm91cF9oaWVyYXJjaHk9MSB0cmFuc3BhcmVudF9odWdlcGFnZT1uZXZl cgoKTW9uZ29EQiBkYXRhIHBhcnRpdGlvbgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmxzYmxrIC9k ZXYvc2RiCk5BTUUgTUFKOk1JTiBSTSAgU0laRSBSTyBUWVBFIE1PVU5UUE9JTlQKc2RiICAgIDg6 MTYgICAwICAxMjhHICAwIGRpc2sgPGhvbWU+L2RhdGEvbW9uZ29kYgoKbW91bnQgfCBncmVwIC9k ZXYvc2RiCi9kZXYvc2RiIG9uIC9yb290L3ZhamFpbjIxL21nbHJ1L2RhdGEvbW9uZ29kYiB0eXBl IGV4dDQgKHJ3LHJlbGF0aW1lKQoKVGVzdGluZyBBcnRpZmFjdHMKPT09PT09PT09PT09PT09PT09 CgpNb25nb0RCLWNvbmZpZ3VyYXRpb24KLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk1vbmdvREIgQ29t bW91bml0eSBTZXJ2ZXIgYnVpbHQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbW9uZ29kYi9tb25n byByZWxlYXNlIHY1LjAuNgoKIyBtb25nb2QgLS12ZXJzaW9uCmRiIHZlcnNpb24gdjUuMC42CkJ1 aWxkIEluZm86IHsKICAgICAgInZlcnNpb24iOiAiNS4wLjYiLAogICAgICAiZ2l0VmVyc2lvbiI6 ICIyMTJhOGRiYjQ3ZjA3NDI3ZGFlMTk0YTljNzViYWVjMWQ4MWQ5MjU5IiwKICAgICAgIm9wZW5T U0xWZXJzaW9uIjogIk9wZW5TU0wgMS4xLjFnIEZJUFMgIDIxIEFwciAyMDIwIiwKICAgICAgIm1v ZHVsZXMiOiBbXSwKICAgICAgImFsbG9jYXRvciI6ICJ0Y21hbGxvYyIsCiAgICAgICJlbnZpcm9u bWVudCI6IHsKICAgICAgImRpc3RhcmNoIjogInBwYzY0bGUiLAogICAgICAidGFyZ2V0X2FyY2gi OiAicHBjNjRsZSIKICAgICAgfQp9CgojIGNhdCAvZXRjL21vbmdvZC5jb25mIApzdG9yYWdlOgog IGRiUGF0aDogPGhvbWUtcGF0aD4vZGF0YS9tb25nb2RiCiAgam91cm5hbDoKICAgICBlbmFibGVk OiB0cnVlCiAgZW5naW5lOiB3aXJlZFRpZ2VyCiAgd2lyZWRUaWdlcjoKICAgIGVuZ2luZUNvbmZp ZzoKICAgIGNhY2hlU2l6ZUdCOiA1MAogIG5ldDoKICAgIGJpbmRJcDogMTI3LjAuMC4xCiAgICB1 bml4RG9tYWluU29ja2V0OgogICAgZW5hYmxlZDogdHJ1ZQogICAgcGF0aFByZWZpeDogL3J1bi9t b25nb2RiCnNldFBhcmFtZXRlcjoKICAgIGVuYWJsZUxvY2FsaG9zdEF1dGhCeXBhc3M6IHRydWUK CllDU0IgKGh0dHBzOi8vZ2l0aHViLmNvbS92YWliaGF2OTIvWUNTQi90cmVlL21vbmdvZGItZG9t YWluLXNvY2tldHMpCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpZQ1NCIGZvcmtlZCBmcm9tIGh0dHBzOi8vZ2l0aHVi LmNvbS9icmlhbmZyYW5rY29vcGVyL1lDU0IuZ2l0LiBUaGlzIGZpeGVzIGEKcHJvYmxlbSB3aXRo IFlDU0Igd2hlbiB0cnlpbmcgdG8gY29ubmVjdCB0byBNb25nb0RCIG9uIGEgdW5peCBkb21haW4g c29ja2V0LiBQUgpyYWlzZWQgdG8gdGhlIHByb2plY3QgYXQgaHR0cHM6Ly9naXRodWIuY29tL2Jy aWFuZnJhbmtjb29wZXIvWUNTQi9wdWxsLzE1ODcKCkhlYWQgQ29tbWl0OiBmYjI1NTVhNzcwMDVh ZTcwYzI2ZTRhZGM0NmM5NDVjYWY0ZGFhMmY5KCIgW2NvcmVdIEdlbmVyYXRlCmNsYXNzcGF0aCBm cm9tIGFsbCBkZXBlbmRlbmNpZXMgcmF0aGVyIHRoYW4ganVzdCBjb21waWxlIHNjb3BlZCIpCgpL ZXJuZWwtQ29uZmlnCi0tLS0tLS0tLS0tLS0KCkJhc2UtS2VybmVsOiBodHRwczovL2dpdGh1Yi5j b20vdG9ydmFsZHMvbGludXgvIHY1LjE2CkJhc2UtS2VybmVsLUNvbmZpZzoKaHR0cHM6Ly9naXRo dWIuY29tL3ZhaWJoYXY5Mi9tZ2xydS1iZW5jaG1hcmsvYmxvYi9hdXRvX2J1aWxkL2NvbmZpZy1u b24tbWdscnUKClRlc3QtS2VybmVsOiBodHRwczovL2xpbnV4LW1tLmdvb2dsZXNvdXJjZS5jb20v cGFnZS1yZWNsYWltIHJlZnMvY2hhbmdlcy80OS8xNTQ5LzEKVGVzdC1LZXJuZWwtQ29uZmlnOgpo dHRwczovL2dpdGh1Yi5jb20vdmFpYmhhdjkyL21nbHJ1LWJlbmNobWFyay9ibG9iL2F1dG9fYnVp bGQvY29uZmlnLW1nbHJ1CgpDT05GSUdfTFJVX0dFTj15CkNPTkZJR19MUlVfR0VOX0VOQUJMRUQ9 eQpDT05GSUdfTlJfTFJVX0dFTlM9NApDT05GSUdfVElFUlNfUEVSX0dFTj00CgpZQ1NCOgpyZWNv cmRjb3VudD04MDAwMDAwMApvcGVyYXRpb25jb3VudD04MDAwMDAwMApyZWFkcHJvcG9ydGlvbj0w LjgKdXBkYXRlcHJvcG9ydGlvbj0wLjIKd29ya2xvYWQ9c2l0ZS55Y3NiLndvcmtsb2Fkcy5Db3Jl V29ya2xvYWQKdGhyZWFkcz02NApyZXF1ZXN0ZGlzdHJpYnV0aW9ucz17dW5pZm9ybSwgZXhwb25l bnRpYWwsIHppcGZpYW59CgpUZXN0LUJlbmNoCj09PT09PT09PT09ClNvdXJjZTogaHR0cHM6Ly9n aXRodWIuY29tL3ZhaWJoYXY5Mi9tZ2xydS1iZW5jaG1hcmsvdHJlZS9hdXRvX2J1aWxkCgpJbnZv a2VkIHZpYSBmb2xsb3dpbmcgY29tbWFuZCB0aGF0IHdpbGwgKmRlc3Ryb3kqIGNvbnRlbnRzIG9m IC9kZXYvc2RkCmFuZCB1c2UgaXQgYXMgZGF0YSBkaXNrIGZvciBNb25nb0RCOgoKJCBleHBvcnQg TU9OR09EQl9ESVNLPS9kZXYvc2RkOyBjdXJsIFwKaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRl bnQuY29tL3ZhaWJoYXY5Mi9tZ2xydS1iZW5jaG1hcmsvYXV0b19idWlsZC9idWlsZC5zaApcIHwg c3VkbyBiYXNoIC1zCgpUZXN0LU1ldGhvZG9sb2d5Cj09PT09PT09PT09PT09PT0KClNldHVwCi0t LS0tCjEuIFB1bGwgJiBCdWlsZCB0ZXN0aW5nIGFydGlmYWN0IHY1LjE2IEJhc2UgS2VybmVsLCBN R0xSVSBLZXJuZWwsCk1vbmdvREIsIFlDU0IgJiBRZW11IGZvciBxZW11LWltZyB0b29scwoyLiBG b3JtYXQgYW5kIG1vdW50IHByb3ZpZGVkIE1vbmdvREIgRGF0YSBkaXNrIHdpdGggZXh0NC4KMy4g R2VuZXJhdGUgU3lzdGVtZCBzZXJ2aWNlL3NsaWNlIGZpbGVzIGZvciBNb25nb0RCIGFuZCBwbGFj ZSB0aGVtIGludG8gL2V0Yy9zeXN0ZW1kL3N5c3RlbS8KNC4gR2VuZXJhdGUgTW9uZ29EQiBjb25m aWdyYXRpb24gcG9pbnRpbmcgdG8gdGhlIGRhdGEgZGlzayBtb3VudC4KNS4gU3RhcnQgdGhlIGJ1 aWx0IE1vbmdvREIgaW5zdGFuY2UuCjYuIEVuc3VyZSB0aGF0IE1vbmdvREIgaXMgcnVubmluZy4K CkxvYWQgVGVzdCBEYXRhCi0tLS0tLS0tLS0tLS0tLQoxLiBFbnN1cmUgdGhhdCBNb25nb0RCIGlu c3RhbmNlIGlzIHN0b3BwZWQuCjIuIFVubW91bnQgdGhlIGRhdGEgZGlzayBhbmQgcmVmb3JtYXQg aXQgd2l0aCBleHQ0LgozLiBSZXN0YXJ0IE1vbmdvREIuCjQuIFNwaW4gb2ZmIFlDU0IgdG8gbG9h ZCBkYXRhIGludG8gdGhlIE1vbmdvIGluc3RhbmNlLgo1LiBTdG9wIE1vbmdvREIgKyBVbm1vdW50 IGRhdGEgRGlzawo2LiBDcmVhdGUgYSBxY293MiBpbWFnZSBvZiB0aGUgZGF0YSBkaXNrIGFuZCBz dG9yZSBpdCB3aXRoIHRlc3QgZGF0YS4KNy4gS2V4ZWMgaW50byBiYXNlIGtlcm5lbC4KClRlc3Qg UGhhc2UgKEhhcHBlbnMgYXQgZWFjaCBib290KQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KMS4gU2VsZWN0IHRoZSBkaXN0cmlidXRpb24gdG8gYmUgdXNlZCBmb3IgWUNTQiBmcm9t CnsiVW5pZm9ybSIsIkV4cG9uZW50aWFsIiwiWmlwZmFuIn0KMi4gUmVzdG9yZSB0aGUgTW9uZ29E QiBxY293MiBkYXRhIGRpc2sgSW1hZ2UgdG8gdGhlIGRpc2sKMy4gTW91bnQgdGhlIGRhdGEgZGlz ayBhbmQgcmVzdGFydCBNb25nb0RCIGRhZW1vbi4KNC4gU3RhcnQgWUNTQiB0byBnZW5lcmF0ZSB0 aGUgd29ya2xvYWQgb24gTW9uZ29EQi4KNS4gT25jZSBmaW5pc2hlZCBjb2xsZWN0IHJlc3VsdHMu CjYuIEtleGVjIGludG8gbmV4dC1rZXJuZWwgd2hpY2gga2VlcHMgc3dpdGNoaW5nIGJldHdlZW4g QmFzZS1LZXJuZWwgJgpNR0xSVS1LZXJuZWwgd2hlbiBhbGwgdGhyZWUgZGlzdHJpdXRpb25zIGhh dmUgYmVlbiB0ZXN0ZWQuCgpTZXR1cCBhbmQgTG9hZCBUZXN0IERhdGEgc3RhZ2VzIGNhbiBiZSBh Y2NvbXBsaXNoZWQgYnkgZm9sbG93aW5nIGNvbW1hbmQ6CiNleHBvcnQgTU9OR09EQl9ESVNLPS9k ZXYvc2RkOyBcCmN1cmwgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3ZhaWJoYXY5 Mi9tZ2xydS1iZW5jaG1hcmsvYXV0b19idWlsZC9idWlsZC5zaCB8IGJhc2ggLXMKCk9uY2UgY29t cGxldGVkIHN1Y2Nlc3NmdWxseSBpdCB3aWxsIGtleGVjIGludG8gdGhlIGJhc2Uga2VybmVsIGFu ZCBzdGFydCB0aGUKVGVzdCBwaGFzZSBvbiBib290IHZpYSBzeXN0ZW1kIHNlcnZpY2UgbmFtZWQg J21nbHJ1LWJlbmNobWFyaycKCkJhc2VkIG9uIGFib3ZlIHJlc3VsdHMsClRlc3RlZC1ieTogVmFp YmhhdiBKYWluPHZhaWJoYXZAbGludXguaWJtLmNvbT4KCll1IFpoYW8gPHl1emhhb0Bnb29nbGUu Y29tPiB3cml0ZXM6Cgo+IFdoYXQncyBuZXcKPiA9PT09PT09PT09Cj4gMSkgQWRkcmVzc2VkIGFs bCB0aGUgY29tbWVudHMgcmVjZWl2ZWQgb24gdGhlIG1haWxpbmcgbGlzdCBhbmQgaW4gdGhlCj4g ICAgbWVldGluZyB3aXRoIHRoZSBzdGFrZWhvbGRlcnMgKHdpbGwgbm90ZSBvbiBpbmRpdmlkdWFs IHBhdGNoZXMpLgo+IDIpIE1lYXN1cmVkIHRoZSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMgZm9y IGVhY2ggcGF0Y2ggYmV0d2VlbiA1LTgKPiAgICAocmVwb3J0ZWQgaW4gdGhlIGNvbW1pdCBtZXNz YWdlcykuCj4KPiBUTERSCj4gPT09PQo+IFRoZSBjdXJyZW50IHBhZ2UgcmVjbGFpbSBpcyB0b28g ZXhwZW5zaXZlIGluIHRlcm1zIG9mIENQVSB1c2FnZSBhbmQgaXQKPiBvZnRlbiBtYWtlcyBwb29y IGNob2ljZXMgYWJvdXQgd2hhdCB0byBldmljdC4gVGhpcyBwYXRjaHNldCBvZmZlcnMgYW4KPiBh bHRlcm5hdGl2ZSBzb2x1dGlvbiB0aGF0IGlzIHBlcmZvcm1hbnQsIHZlcnNhdGlsZSBhbmQgc3Ry YWlnaHRmb3J3YXJkLgo+Cj4gUGF0Y2hzZXQgb3ZlcnZpZXcKPiA9PT09PT09PT09PT09PT09PQo+ IFRoZSBkZXNpZ24gYW5kIGltcGxlbWVudGF0aW9uIG92ZXJ2aWV3IHdhcyBtb3ZlZCB0byBwYXRj aCAxMiBzbyB0aGF0Cj4gcGVvcGxlIGNhbiBmaW5pc2ggcmVhZGluZyB0aGlzIGNvdmVyIGxldHRl ci4KPgo+IDEuIG1tOiB4ODYsIGFybTY0OiBhZGQgYXJjaF9oYXNfaHdfcHRlX3lvdW5nKCkKPiAy LiBtbTogeDg2OiBhZGQgQ09ORklHX0FSQ0hfSEFTX05PTkxFQUZfUE1EX1lPVU5HCj4gVXNpbmcg aGFyZHdhcmUgb3B0aW1pemF0aW9ucyB3aGVuIHRyeWluZyB0byBjbGVhciB0aGUgYWNjZXNzZWQg Yml0IGluCj4gbWFueSBQVEVzLgo+Cj4gMy4gbW0vdm1zY2FuLmM6IHJlZmFjdG9yIHNocmlua19u b2RlKCkKPiBBIG1pbm9yIHJlZmFjdG9yLgo+Cj4gNC4gbW06IG11bHRpZ2VuZXJhdGlvbmFsIExS VTogZ3JvdW5kd29yawo+IEFkZGluZyB0aGUgYmFzaWMgZGF0YSBzdHJ1Y3R1cmUgYW5kIHRoZSBm dW5jdGlvbnMgdGhhdCBpbnNlcnQvcmVtb3ZlCj4gcGFnZXMgdG8vZnJvbSB0aGUgbXVsdGlnZW5l cmF0aW9uYWwgTFJVIChNR0xSVSkgbGlzdHMuCj4KPiA1LiBtbTogbXVsdGlnZW5lcmF0aW9uYWwg TFJVOiBtaW5pbWFsIGltcGxlbWVudGF0aW9uCj4gQSBtaW5pbWFsIChmdW5jdGlvbmFsKSBpbXBs ZW1lbnRhdGlvbiB3aXRob3V0IGFueSBvcHRpbWl6YXRpb25zLgo+Cj4gNi4gbW06IG11bHRpZ2Vu ZXJhdGlvbmFsIExSVTogZXhwbG9pdCBsb2NhbGl0eSBpbiBybWFwCj4gSW1wcm92aW5nIHRoZSBl ZmZpY2llbmN5IHdoZW4gdXNpbmcgdGhlIHJtYXAuCj4KPiA3LiBtbTogbXVsdGlnZW5lcmF0aW9u YWwgTFJVOiBzdXBwb3J0IHBhZ2UgdGFibGUgd2Fsa3MKPiBBZGRpbmcgdGhlIChvcHRpb25hbCkg cGFnZSB0YWJsZSBzY2FubmluZy4KPgo+IDguIG1tOiBtdWx0aWdlbmVyYXRpb25hbCBMUlU6IG9w dGltaXplIG11bHRpcGxlIG1lbWNncwo+IE9wdGltaXppbmcgdGhlIG92ZXJhbGwgcGVyZm9ybWFu Y2UgZm9yIG11bHRpcGxlIG1lbWNncyBydW5uaW5nIG1peGVkCj4gdHlwZXMgb2Ygd29ya2xvYWRz Lgo+Cj4gOS4gbW06IG11bHRpZ2VuZXJhdGlvbmFsIExSVTogcnVudGltZSBzd2l0Y2gKPiBBZGRp bmcgYSBydW50aW1lIHN3aXRjaCB0byBlbmFibGUgb3IgZGlzYWJsZSBNR0xSVS4KPgo+IDEwLiBt bTogbXVsdGlnZW5lcmF0aW9uYWwgTFJVOiB0aHJhc2hpbmcgcHJldmVudGlvbgo+IDExLiBtbTog bXVsdGlnZW5lcmF0aW9uYWwgTFJVOiBkZWJ1Z2ZzIGludGVyZmFjZQo+IFByb3ZpZGluZyB1c2Vy c3BhY2Ugd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzIGxpa2UgdGhyYXNoaW5nIHByZXZlbnRpb24s Cj4gd29ya2luZyBzZXQgZXN0aW1hdGlvbiBhbmQgcHJvYWN0aXZlIHJlY2xhaW0uCj4KPiAxMi4g bW06IG11bHRpZ2VuZXJhdGlvbmFsIExSVTogZG9jdW1lbnRhdGlvbgo+IEFkZGluZyBhIGRlc2ln biBkb2MgYW5kIGFuIGFkbWluIGd1aWRlLgo+Cj4gQmVuY2htYXJrIHJlc3VsdHMKPiA9PT09PT09 PT09PT09PT09PQo+IEluZGVwZW5kZW50IGxhYiByZXN1bHRzCj4gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KPiBCYXNlZCBvbiB0aGUgcG9wdWxhcml0eSBvZiBzZWFyY2hlcyBbMDFdIGFuZCB0aGUg bWVtb3J5IHVzYWdlIGluCj4gR29vZ2xlJ3MgcHVibGljIGNsb3VkLCB0aGUgbW9zdCBwb3B1bGFy IG9wZW4tc291cmNlIG1lbW9yeS1odW5ncnkKPiBhcHBsaWNhdGlvbnMsIGluIGFscGhhYmV0aWNh bCBvcmRlciwgYXJlOgo+ICAgICAgIEFwYWNoZSBDYXNzYW5kcmEgICAgICBNZW1jYWNoZWQKPiAg ICAgICBBcGFjaGUgSGFkb29wICAgICAgICAgTW9uZ29EQgo+ICAgICAgIEFwYWNoZSBTcGFyayAg ICAgICAgICBQb3N0Z3JlU1FMCj4gICAgICAgTWFyaWFEQiAoTXlTUUwpICAgICAgIFJlZGlzCj4K PiBBbiBpbmRlcGVuZGVudCBsYWIgZXZhbHVhdGVkIE1HTFJVIHdpdGggdGhlIG1vc3Qgd2lkZWx5 IHVzZWQgYmVuY2htYXJrCj4gc3VpdGVzIGZvciB0aGUgYWJvdmUgYXBwbGljYXRpb25zLiBUaGV5 IHBvc3RlZCA5NjAgZGF0YSBwb2ludHMgYWxvbmcKPiB3aXRoIGtlcm5lbCBtZXRyaWNzIGFuZCBw ZXJmIHByb2ZpbGVzIGNvbGxlY3RlZCBvdmVyIG1vcmUgdGhhbiA1MDAKPiBob3VycyBvZiB0b3Rh bCBiZW5jaG1hcmsgdGltZS4gVGhlaXIgZmluYWwgcmVwb3J0cyBzaG93IHRoYXQsIHdpdGggOTUl Cj4gY29uZmlkZW5jZSBpbnRlcnZhbHMgKENJcyksIHRoZSBhYm92ZSBhcHBsaWNhdGlvbnMgYWxs IHBlcmZvcm1lZAo+IHNpZ25pZmljYW50bHkgYmV0dGVyIGZvciBhdCBsZWFzdCBwYXJ0IG9mIHRo ZWlyIGJlbmNobWFyayBtYXRyaWNlcy4KPgo+IE9uIDUuMTQ6Cj4gMS4gQXBhY2hlIFNwYXJrIFsw Ml0gdG9vayA5NSUgQ0lzIFs5LjI4LCAxMS4xOV0lIGFuZCBbMTIuMjAsIDE0LjkzXSUKPiAgICBs ZXNzIHdhbGwgdGltZSB0byBzb3J0IHRocmVlIGJpbGxpb24gcmFuZG9tIGludGVnZXJzLCByZXNw ZWN0aXZlbHksCj4gICAgdW5kZXIgdGhlIG1lZGl1bS0gYW5kIHRoZSBoaWdoLWNvbmN1cnJlbmN5 IGNvbmRpdGlvbnMsIHdoZW4KPiAgICBvdmVyY29tbWl0dGluZyBtZW1vcnkuIFRoZXJlIHdlcmUg bm8gc3RhdGlzdGljYWxseSBzaWduaWZpY2FudAo+ICAgIGNoYW5nZXMgaW4gd2FsbCB0aW1lIGZv ciB0aGUgcmVzdCBvZiB0aGUgYmVuY2htYXJrIG1hdHJpeC4KPiAyLiBNYXJpYURCIFswM10gYWNo aWV2ZWQgOTUlIENJcyBbNS4yNCwgMTAuNzFdJSBhbmQgWzIwLjIyLCAyNS45N10lCj4gICAgbW9y ZSB0cmFuc2FjdGlvbnMgcGVyIG1pbnV0ZSAoVFBNKSwgcmVzcGVjdGl2ZWx5LCB1bmRlciB0aGUg bWVkaXVtLQo+ICAgIGFuZCB0aGUgaGlnaC1jb25jdXJyZW5jeSBjb25kaXRpb25zLCB3aGVuIG92 ZXJjb21taXR0aW5nIG1lbW9yeS4KPiAgICBUaGVyZSB3ZXJlIG5vIHN0YXRpc3RpY2FsbHkgc2ln bmlmaWNhbnQgY2hhbmdlcyBpbiBUUE0gZm9yIHRoZSByZXN0Cj4gICAgb2YgdGhlIGJlbmNobWFy ayBtYXRyaXguCj4gMy4gTWVtY2FjaGVkIFswNF0gYWNoaWV2ZWQgOTUlIENJcyBbMjMuNTQsIDMy LjI1XSUsIFsyMC43NiwgNDEuNjFdJQo+ICAgIGFuZCBbMjEuNTksIDMwLjAyXSUgbW9yZSBvcGVy YXRpb25zIHBlciBzZWNvbmQgKE9QUyksIHJlc3BlY3RpdmVseSwKPiAgICBmb3Igc2VxdWVudGlh bCBhY2Nlc3MsIHJhbmRvbSBhY2Nlc3MgYW5kIEdhdXNzaWFuIChkaXN0cmlidXRpb24pCj4gICAg YWNjZXNzLCB3aGVuIFRIUD1hbHdheXM7IDk1JSBDSXMgWzEzLjg1LCAxNS45N10lIGFuZAo+ICAg IFsyMy45NCwgMjkuOTJdJSBtb3JlIE9QUywgcmVzcGVjdGl2ZWx5LCBmb3IgcmFuZG9tIGFjY2Vz cyBhbmQKPiAgICBHYXVzc2lhbiBhY2Nlc3MsIHdoZW4gVEhQPW5ldmVyLiBUaGVyZSB3ZXJlIG5v IHN0YXRpc3RpY2FsbHkKPiAgICBzaWduaWZpY2FudCBjaGFuZ2VzIGluIE9QUyBmb3IgdGhlIHJl c3Qgb2YgdGhlIGJlbmNobWFyayBtYXRyaXguCj4gNC4gTW9uZ29EQiBbMDVdIGFjaGlldmVkIDk1 JSBDSXMgWzIuMjMsIDMuNDRdJSwgWzYuOTcsIDkuNzNdJSBhbmQKPiAgICBbMi4xNiwgMy41NV0l IG1vcmUgb3BlcmF0aW9ucyBwZXIgc2Vjb25kIChPUFMpLCByZXNwZWN0aXZlbHksIGZvcgo+ICAg IGV4cG9uZW50aWFsIChkaXN0cmlidXRpb24pIGFjY2VzcywgcmFuZG9tIGFjY2VzcyBhbmQgWmlw Zmlhbgo+ICAgIChkaXN0cmlidXRpb24pIGFjY2Vzcywgd2hlbiB1bmRlcnV0aWxpemluZyBtZW1v cnk7IDk1JSBDSXMKPiAgICBbOC44MywgMTAuMDNdJSwgWzIxLjEyLCAyMy4xNF0lIGFuZCBbNS41 MywgNi40Nl0lIG1vcmUgT1BTLAo+ICAgIHJlc3BlY3RpdmVseSwgZm9yIGV4cG9uZW50aWFsIGFj Y2VzcywgcmFuZG9tIGFjY2VzcyBhbmQgWmlwZmlhbgo+ICAgIGFjY2Vzcywgd2hlbiBvdmVyY29t bWl0dGluZyBtZW1vcnkuCj4KPiBPbiA1LjE1Ogo+IDUuIEFwYWNoZSBDYXNzYW5kcmEgWzA2XSBh Y2hpZXZlZCA5NSUgQ0lzIFsxLjA2LCA0LjEwXSUsIFsxLjk0LCA1LjQzXSUKPiAgICBhbmQgWzQu MTEsIDcuNTBdJSBtb3JlIG9wZXJhdGlvbnMgcGVyIHNlY29uZCAoT1BTKSwgcmVzcGVjdGl2ZWx5 LAo+ICAgIGZvciBleHBvbmVudGlhbCAoZGlzdHJpYnV0aW9uKSBhY2Nlc3MsIHJhbmRvbSBhY2Nl c3MgYW5kIFppcGZpYW4KPiAgICAoZGlzdHJpYnV0aW9uKSBhY2Nlc3MsIHdoZW4gc3dhcCB3YXMg b2ZmOyA5NSUgQ0lzIFswLjUwLCAyLjYwXSUsCj4gICAgWzYuNTEsIDguNzddJSBhbmQgWzMuMjks IDYuNzVdJSBtb3JlIE9QUywgcmVzcGVjdGl2ZWx5LCBmb3IKPiAgICBleHBvbmVudGlhbCBhY2Nl c3MsIHJhbmRvbSBhY2Nlc3MgYW5kIFppcGZpYW4gYWNjZXNzLCB3aGVuIHN3YXAgd2FzCj4gICAg b24uCj4gNi4gQXBhY2hlIEhhZG9vcCBbMDddIHRvb2sgOTUlIENJcyBbNS4zMSwgOS42OV0lIGFu ZCBbMi4wMiwgNy44Nl0lCj4gICAgbGVzcyBhdmVyYWdlIHdhbGwgdGltZSB0byBmaW5pc2ggdHdl bHZlIHBhcmFsbGVsIFRlcmFTb3J0IGpvYnMsCj4gICAgcmVzcGVjdGl2ZWx5LCB1bmRlciB0aGUg bWVkaXVtLSBhbmQgdGhlIGhpZ2gtY29uY3VycmVuY3kKPiAgICBjb25kaXRpb25zLCB3aGVuIHN3 YXAgd2FzIG9uLiBUaGVyZSB3ZXJlIG5vIHN0YXRpc3RpY2FsbHkKPiAgICBzaWduaWZpY2FudCBj aGFuZ2VzIGluIGF2ZXJhZ2Ugd2FsbCB0aW1lIGZvciB0aGUgcmVzdCBvZiB0aGUKPiAgICBiZW5j aG1hcmsgbWF0cml4Lgo+IDcuIFBvc3RncmVTUUwgWzA4XSBhY2hpZXZlZCA5NSUgQ0kgWzEuNzUs IDYuNDJdJSBtb3JlIHRyYW5zYWN0aW9ucyBwZXIKPiAgICBtaW51dGUgKFRQTSkgdW5kZXIgdGhl IGhpZ2gtY29uY3VycmVuY3kgY29uZGl0aW9uLCB3aGVuIHN3YXAgd2FzCj4gICAgb2ZmOyA5NSUg Q0lzIFsxMi44MiwgMTguNjldJSBhbmQgWzIyLjcwLCA0Ni44Nl0lIG1vcmUgVFBNLAo+ICAgIHJl c3BlY3RpdmVseSwgdW5kZXIgdGhlIG1lZGl1bS0gYW5kIHRoZSBoaWdoLWNvbmN1cnJlbmN5Cj4g ICAgY29uZGl0aW9ucywgd2hlbiBzd2FwIHdhcyBvbi4gVGhlcmUgd2VyZSBubyBzdGF0aXN0aWNh bGx5Cj4gICAgc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiBUUE0gZm9yIHRoZSByZXN0IG9mIHRoZSBi ZW5jaG1hcmsgbWF0cml4Lgo+IDguIFJlZGlzIFswOV0gYWNoaWV2ZWQgOTUlIENJcyBbMC41OCwg NS45NF0lLCBbNi41NSwgMTQuNThdJSBhbmQKPiAgICBbMTEuNDcsIDE5LjM2XSUgbW9yZSB0b3Rh bCBvcGVyYXRpb25zIHBlciBzZWNvbmQgKE9QUyksCj4gICAgcmVzcGVjdGl2ZWx5LCBmb3Igc2Vx dWVudGlhbCBhY2Nlc3MsIHJhbmRvbSBhY2Nlc3MgYW5kIEdhdXNzaWFuCj4gICAgKGRpc3RyaWJ1 dGlvbikgYWNjZXNzLCB3aGVuIFRIUD1hbHdheXM7IDk1JSBDSXMgWzEuMjcsIDMuNTRdJSwKPiAg ICBbMTAuMTEsIDE0LjgxXSUgYW5kIFs4Ljc1LCAxMy42NF0lIG1vcmUgdG90YWwgT1BTLCByZXNw ZWN0aXZlbHksCj4gICAgZm9yIHNlcXVlbnRpYWwgYWNjZXNzLCByYW5kb20gYWNjZXNzIGFuZCBH YXVzc2lhbiBhY2Nlc3MsIHdoZW4KPiAgICBUSFA9bmV2ZXIuCj4KPiBPdXIgbGFiIHJlc3VsdHMK PiAtLS0tLS0tLS0tLS0tLS0KPiBUbyBzdXBwbGVtZW50IHRoZSBhYm92ZSByZXN1bHRzLCB3ZSBy YW4gdGhlIGZvbGxvd2luZyBiZW5jaG1hcmsgc3VpdGVzCj4gb24gNS4xNi1yYzcgYW5kIGZvdW5k IG5vIHJlZ3Jlc3Npb25zIFsxMF0uIChUaGVzZSBzeW50aGV0aWMgYmVuY2htYXJrcwo+IGFyZSBw b3B1bGFyIGFtb25nIE1NIGRldmVsb3BlcnMsIGJ1dCB3ZSBwcmVmZXIgbGFyZ2Utc2NhbGUgQS9C Cj4gZXhwZXJpbWVudHMgdG8gdmFsaWRhdGUgaW1wcm92ZW1lbnRzLikKPiAgICAgICBmc19maW9f YmVuY2hfaGRkX21xICAgICAgcGZ0Cj4gICAgICAgZnNfbG1iZW5jaCAgICAgICAgICAgICAgIHBn c3FsLWhhbW1lcmRiCj4gICAgICAgZnNfcGFyYWxsZWxpbyAgICAgICAgICAgIHJlZGlzCj4gICAg ICAgZnNfcG9zdG1hcmsgICAgICAgICAgICAgIHN0cmVhbQo+ICAgICAgIGhhY2tiZW5jaCAgICAg ICAgICAgICAgICBzeXNiZW5jaHRocmVhZAo+ICAgICAgIGtlcm5iZW5jaCAgICAgICAgICAgICAg ICB0cGNjX3NwYXJrCj4gICAgICAgbWVtY2FjaGVkICAgICAgICAgICAgICAgIHVuaXhiZW5jaAo+ ICAgICAgIG11bHRpY2hhc2UgICAgICAgICAgICAgICB2bS1zY2FsYWJpbGl0eQo+ICAgICAgIG11 dGlsYXRlICAgICAgICAgICAgICAgICB3aWxsLWl0LXNjYWxlCj4gICAgICAgbmdpbngKPgo+IFsw MV0gaHR0cHM6Ly90cmVuZHMuZ29vZ2xlLmNvbQo+IFswMl0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5v cmcvbGttbC8yMDIxMTEwMjAwMjAwMi45MjA1MS0xLWJvdEBlZGkud29ya3MvCj4gWzAzXSBodHRw czovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMjExMDA5MDU0MzE1LjQ3MDczLTEtYm90QGVkaS53 b3Jrcy8KPiBbMDRdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAyMTEwMjExOTQxMDMu NjU2NDgtMS1ib3RAZWRpLndvcmtzLwo+IFswNV0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGtt bC8yMDIxMTEwOTAyMTM0Ni41MDI2Ni0xLWJvdEBlZGkud29ya3MvCj4gWzA2XSBodHRwczovL2xv cmUua2VybmVsLm9yZy9sa21sLzIwMjExMjAyMDYyODA2LjgwMzY1LTEtYm90QGVkaS53b3Jrcy8K PiBbMDddIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAyMTEyMDkwNzI0MTYuMzM2MDYt MS1ib3RAZWRpLndvcmtzLwo+IFswOF0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGttbC8yMDIx MTIxODA3MTA0MS4yNDA3Ny0xLWJvdEBlZGkud29ya3MvCj4gWzA5XSBodHRwczovL2xvcmUua2Vy bmVsLm9yZy9sa21sLzIwMjExMTIyMDUzMjQ4LjU3MzExLTEtYm90QGVkaS53b3Jrcy8KPiBbMTBd IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAyMjAxMDQyMDIyNDcuMjkwMzcwMi0xLXl1 emhhb0Bnb29nbGUuY29tLwo+Cj4gUmVhZC13b3JsZCBhcHBsaWNhdGlvbnMKPiA9PT09PT09PT09 PT09PT09PT09PT09PQo+IFRoaXJkLXBhcnR5IHRlc3RpbW9uaWFscwo+IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+IEtvbnN0YW50aW4gd3JvdGUgWzExXToKPiAgICBJIGhhdmUgQXJjaGxpbnV4 IHdpdGggOEcgUkFNICsgenN3YXAgKyBzd2FwLiBXaGlsZSBkZXZlbG9waW5nLCBJCj4gICAgaGF2 ZSBsb3RzIG9mIGFwcHMgb3BlbmVkIHN1Y2ggYXMgbXVsdGlwbGUgTFNQLXNlcnZlcnMgZm9yIGRp ZmZlcmVudAo+ICAgIGxhbmdzLCBjaGF0cywgdHdvIGJyb3dzZXJzLCBldGMuLi4gVXN1YWxseSwg bXkgc3lzdGVtIGdldHMgcXVpY2tseQo+ICAgIHRvIGEgcG9pbnQgb2YgU1dBUC1zdG9ybXMsIHdo ZXJlIEkgaGF2ZSB0byBraWxsIExTUC1zZXJ2ZXJzLAo+ICAgIHJlc3RhcnQgYnJvd3NlcnMgdG8g ZnJlZSBtZW1vcnksIGV0Yywgb3RoZXJ3aXNlIHRoZSBzeXN0ZW0gbGFncwo+ICAgIGhlYXZpbHkg YW5kIGlzIGJhcmVseSB1c2FibGUuCj4gICAgCj4gICAgMS41IGRheSBhZ28gSSBtaWdyYXRlZCBm cm9tIDUuMTEuMTUga2VybmVsIHRvIDUuMTIgKyB0aGUgTFJVCj4gICAgcGF0Y2hzZXQsIGFuZCBJ IHN0YXJ0ZWQgdXAgYnkgb3BlbmluZyBsb3RzIG9mIGFwcHMgdG8gY3JlYXRlIG1lbW9yeQo+ICAg IHByZXNzdXJlLCBhbmQgd29ya2VkIGZvciBhIGRheSBsaWtlIHRoaXMuIFRpbGwgbm93IEkgaGFk ICpub3QgYQo+ICAgIHNpbmdsZSBTV0FQLXN0b3JtKiwgYW5kIG1pbmQgeW91IEkgZ290IDMuNEcg aW4gU1dBUC4gSSB3YXMgbmV2ZXIKPiAgICBnZXR0aW5nIHRvIHRoZSBwb2ludCBvZiAzRyBpbiBT V0FQIGJlZm9yZSB3aXRob3V0IGEgc2luZ2xlCj4gICAgU1dBUC1zdG9ybS4KPgo+IEFuIGFub255 bW91cyB1c2VyIHdyb3RlIFsxMl06Cj4gICAgVXNpbmcgdGhhdCB2NSBmb3Igc29tZSB0aW1lIGFu ZCBjb25maXJtIHRoYXQgZGlmZmVyZW5jZSB1bmRlciBoZWF2eQo+ICAgIGxvYWQgYW5kIG1lbW9y eSBwcmVzc3VyZSBpcyBzaWduaWZpY2FudC4KPgo+IFNodWFuZyB3cm90ZSBbMTNdOgo+ICAgIFdp dGggdGhlIE1HTFJVLCBmaW8gYWNoaWV2ZWQgOTUlIENJcyBbMzguOTUsIDQwLjI2XSUsIFs0LjEy LCA2LjY0XSUKPiAgICBhbmQgWzkuMjYsIDEwLjM2XSUgaGlnaGVyIHRocm91Z2hwdXQsIHJlc3Bl Y3RpdmVseSwgZm9yIHJhbmRvbQo+ICAgIGFjY2VzcywgWmlwZmlhbiAoZGlzdHJpYnV0aW9uKSBh Y2Nlc3MgYW5kIEdhdXNzaWFuIChkaXN0cmlidXRpb24pCj4gICAgYWNjZXNzLCB3aGVuIHRoZSBh dmVyYWdlIG51bWJlciBvZiBqb2JzIHBlciBDUFUgaXMgMTsgOTUlIENJcwo+ICAgIFs0Mi4zMiwg NDkuMTVdJSwgWzkuNDQsIDkuODldJSBhbmQgWzIwLjk5LCAyMi44Nl0lIGhpZ2hlciB0aHJvdWdo cHV0LAo+ICAgIHJlc3BlY3RpdmVseSwgZm9yIHJhbmRvbSBhY2Nlc3MsIFppcGZpYW4gYWNjZXNz IGFuZCBHYXVzc2lhbiBhY2Nlc3MsCj4gICAgd2hlbiB0aGUgYXZlcmFnZSBudW1iZXIgb2Ygam9i cyBwZXIgQ1BVIGlzIDIuCj4KPiBEYW5pZWwgd3JvdGUgWzE0XToKPiAgICBXaXRoIG1lbWNhY2hl ZCBhbGxvY2F0aW5nIH4xMDBHQiBvZiBieXRlLWFkZHJlc3NhYmxlIE9wdGFudGUsCj4gICAgcGVy Zm9ybWFuY2UgaW1wcm92ZW1lbnQgaW4gdGVybXMgb2YgdGhyb3VnaHB1dCAobWVhc3VyZWQgYXMg cXVlcmllcwo+ICAgIHBlciBzZWNvbmQpIHdhcyBhYm91dCAxMCUgZm9yIGEgc2VyaWVzIG9mIHdv cmtsb2Fkcy4KPgo+IExhcmdlLXNjYWxlIGRlcGxveW1lbnRzCj4gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KPiBUaGUgZG93bnN0cmVhbSBrZXJuZWxzIHRoYXQgaGF2ZSBiZWVuIHVzaW5nIE1HTFJV IGluY2x1ZGU6Cj4gMS4gQW5kcm9pZCBBUkNWTSBbMTVdCj4gMi4gQXJjaCBMaW51eCBaZW4gWzE2 XQo+IDMuIENocm9tZSBPUyBbMTddCj4gNC4gTGlxdW9yaXggWzE4XQo+IDUuIHBvc3QtZmFjdHVt IFsxOV0KPiA2LiBYYW5Nb2QgWzIwXQo+Cj4gV2UndmUgcm9sbGVkIG91dCBNR0xSVSB0byB0ZW5z IG9mIG1pbGxpb25zIG9mIENocm9tZSBPUyB1c2VycyBhbmQKPiBhYm91dCBhIG1pbGxpb24gQW5k cm9pZCB1c2Vycy4gR29vZ2xlJ3MgZmxlZXR3aWRlIHByb2ZpbGluZyBbMjFdIHNob3dzCj4gYW4g b3ZlcmFsbCA0MCUgZGVjcmVhc2UgaW4ga3N3YXBkIENQVSB1c2FnZSwgaW4gYWRkaXRpb24gdG8K PiBpbXByb3ZlbWVudHMgaW4gb3RoZXIgVVggbWV0cmljcywgZS5nLiwgYW4gODUlIGRlY3JlYXNl IGluIHRoZSBudW1iZXIKPiBvZiBsb3ctbWVtb3J5IGtpbGxzIGF0IHRoZSA3NXRoIHBlcmNlbnRp bGUgYW5kIGFuIDE4JSBkZWNyZWFzZSBpbgo+IHJlbmRlcmluZyBsYXRlbmN5IGF0IHRoZSA1MHRo IHBlcmNlbnRpbGUuCj4KPiBbMTFdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMTQwMjI2 NzIyZjIwMzJjODYzMDFmYmQzMjZkOTFiYWVmZTNkN2QyMy5jYW1lbEB5YW5kZXgucnUvCj4gWzEy XSBodHRwczovL3Bob3Jvbml4LmNvbS9mb3J1bXMvZm9ydW0vc29mdHdhcmUvZ2VuZXJhbC1saW51 eC1vcGVuLXNvdXJjZS8xMzAxMjU4LW1nbHJ1LWlzLWEtdmVyeS1lbnRpY2luZy1lbmhhbmNlbWVu dC1mb3ItbGludXgtaW4tMjAyMj9wPTEzMDEyNzUjcG9zdDEzMDEyNzUKPiBbMTNdIGh0dHBzOi8v bG9yZS5rZXJuZWwub3JnL2xrbWwvMjAyMjAxMDUwMjQ0MjMuMjY0MDktMS1zemhhaTJAY3Mucm9j aGVzdGVyLmVkdS8KPiBbMTRdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LW1tL0NBKzQt M3Zrc0d2S2QxOEZnUmlueGhxSGV0QlMxaFFla0pFMmd3Y284SmEtYkpXS3RGd0BtYWlsLmdtYWls LmNvbS8KPiBbMTVdIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bW9z L3RoaXJkX3BhcnR5L2tlcm5lbAo+IFsxNl0gaHR0cHM6Ly9hcmNobGludXgub3JnCj4gWzE3XSBo dHRwczovL2Nocm9taXVtLm9yZwo+IFsxOF0gaHR0cHM6Ly9saXF1b3JpeC5uZXQKPiBbMTldIGh0 dHBzOi8vZ2l0bGFiLmNvbS9wb3N0LWZhY3R1bS9wZi1rZXJuZWwKPiBbMjBdIGh0dHBzOi8veGFu bW9kLm9yZwo+IFsyMV0gaHR0cHM6Ly9yZXNlYXJjaC5nb29nbGUvcHVicy9wdWI0NDI3MS8KPgo+ IFN1bW1lcnkKPiA9PT09PT09Cj4gVGhlIGZhY3RzIGFyZToKPiAxLiBUaGUgaW5kZXBlbmRlbnQg bGFiIHJlc3VsdHMgYW5kIHRoZSByZWFsLXdvcmxkIGFwcGxpY2F0aW9ucwo+ICAgIGluZGljYXRl IHN1YnN0YW50aWFsIGltcHJvdmVtZW50czsgdGhlcmUgYXJlIG5vIGtub3duIHJlZ3Jlc3Npb25z Lgo+IDIuIFRocmFzaGluZyBwcmV2ZW50aW9uLCB3b3JraW5nIHNldCBlc3RpbWF0aW9uIGFuZCBw cm9hY3RpdmUgcmVjbGFpbQo+ICAgIHdvcmsgb3V0IG9mIHRoZSBib3g7IHRoZXJlIGFyZSBubyBl cXVpdmFsZW50IHNvbHV0aW9ucy4KPiAzLiBUaGVyZSBpcyBhIGxvdCBvZiBuZXcgY29kZTsgbm9i b2R5IGhhcyBkZW1vbnN0cmF0ZWQgc21hbGxlciBjaGFuZ2VzCj4gICAgd2l0aCBzaW1pbGFyIGVm ZmVjdHMuCj4KPiBPdXIgb3B0aW9ucywgYWNjb3JkaW5nbHksIGFyZToKPiAxLiBHaXZlbiB0aGUg YW1vdW50IG9mIGV2aWRlbmNlLCB0aGUgcmVwb3J0ZWQgaW1wcm92ZW1lbnRzIHdpbGwgbGlrZWx5 Cj4gICAgbWF0ZXJpYWxpemUgZm9yIGEgd2lkZSByYW5nZSBvZiB3b3JrbG9hZHMuCj4gMi4gR2F1 Z2luZyB0aGUgaW50ZXJlc3QgZnJvbSB0aGUgcGFzdCBkaXNjdXNzaW9ucyBbMjJdWzIzXVsyNF0s IHRoZQo+ICAgIG5ldyBmZWF0dXJlcyB3aWxsIGxpa2VseSBiZSBwdXQgdG8gdXNlIGZvciBib3Ro IHBlcnNvbmFsIGNvbXB1dGVycwo+ICAgIGFuZCBkYXRhIGNlbnRlcnMuCj4gMy4gQmFzZWQgb24g R29vZ2xlJ3MgdHJhY2sgcmVjb3JkLCB0aGUgbmV3IGNvZGUgd2lsbCBsaWtlbHkgYmUgd2VsbAo+ ICAgIG1haW50YWluZWQgaW4gdGhlIGxvbmcgdGVybS4gSXQnZCBiZSBtb3JlIGRpZmZpY3VsdCBp ZiBub3QKPiAgICBpbXBvc3NpYmxlIHRvIGFjaGlldmUgc2ltaWxhciBlZmZlY3RzIG9uIHRvcCBv ZiB0aGUgZXhpc3RpbmcKPiAgICBkZXNpZ24uCj4KPiBbMjJdIGh0dHBzOi8vbG9yZS5rZXJuZWwu b3JnL2xrbWwvMjAyMDEwMDUwODEzMTMuNzMyNzQ1LTEtYW5kcmVhLnJpZ2hpQGNhbm9uaWNhbC5j b20vCj4gWzIzXSBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMjEwNzE2MDgxNDQ5LjIy MTg3LTEtc2ozOC5wYXJrQGdtYWlsLmNvbS8KPiBbMjRdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3Jn L2xrbWwvMjAyMTExMzAyMDE2NTIuMjIxODYzNmRAbWFpbC5pbmJveC5sdi8KPgo+IFl1IFpoYW8g KDEyKToKPiAgIG1tOiB4ODYsIGFybTY0OiBhZGQgYXJjaF9oYXNfaHdfcHRlX3lvdW5nKCkKPiAg IG1tOiB4ODY6IGFkZCBDT05GSUdfQVJDSF9IQVNfTk9OTEVBRl9QTURfWU9VTkcKPiAgIG1tL3Zt c2Nhbi5jOiByZWZhY3RvciBzaHJpbmtfbm9kZSgpCj4gICBtbTogbXVsdGlnZW5lcmF0aW9uYWwg TFJVOiBncm91bmR3b3JrCj4gICBtbTogbXVsdGlnZW5lcmF0aW9uYWwgTFJVOiBtaW5pbWFsIGlt cGxlbWVudGF0aW9uCj4gICBtbTogbXVsdGlnZW5lcmF0aW9uYWwgTFJVOiBleHBsb2l0IGxvY2Fs aXR5IGluIHJtYXAKPiAgIG1tOiBtdWx0aWdlbmVyYXRpb25hbCBMUlU6IHN1cHBvcnQgcGFnZSB0 YWJsZSB3YWxrcwo+ICAgbW06IG11bHRpZ2VuZXJhdGlvbmFsIExSVTogb3B0aW1pemUgbXVsdGlw bGUgbWVtY2dzCj4gICBtbTogbXVsdGlnZW5lcmF0aW9uYWwgTFJVOiBydW50aW1lIHN3aXRjaAo+ ICAgbW06IG11bHRpZ2VuZXJhdGlvbmFsIExSVTogdGhyYXNoaW5nIHByZXZlbnRpb24KPiAgIG1t OiBtdWx0aWdlbmVyYXRpb25hbCBMUlU6IGRlYnVnZnMgaW50ZXJmYWNlCj4gICBtbTogbXVsdGln ZW5lcmF0aW9uYWwgTFJVOiBkb2N1bWVudGF0aW9uCj4KPiAgRG9jdW1lbnRhdGlvbi9hZG1pbi1n dWlkZS9tbS9pbmRleC5yc3QgICAgICAgIHwgICAgMSArCj4gIERvY3VtZW50YXRpb24vYWRtaW4t Z3VpZGUvbW0vbXVsdGlnZW5fbHJ1LnJzdCB8ICAxMjEgKwo+ICBEb2N1bWVudGF0aW9uL3ZtL2lu ZGV4LnJzdCAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKPiAgRG9jdW1lbnRhdGlvbi92bS9t dWx0aWdlbl9scnUucnN0ICAgICAgICAgICAgIHwgIDE1MiArCj4gIGFyY2gvS2NvbmZpZyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKwo+ICBhcmNoL2FybTY0L2luY2x1 ZGUvYXNtL3BndGFibGUuaCAgICAgICAgICAgICAgfCAgIDE0ICstCj4gIGFyY2gveDg2L0tjb25m aWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwo+ICBhcmNoL3g4Ni9pbmNs dWRlL2FzbS9wZ3RhYmxlLmggICAgICAgICAgICAgICAgfCAgICA5ICstCj4gIGFyY2gveDg2L21t L3BndGFibGUuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KPiAgZnMvZXhlYy5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCj4gIGZzL2Z1c2Uv ZGV2LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKy0KPiAgaW5jbHVk ZS9saW51eC9jZ3JvdXAuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArLQo+ICBpbmNs dWRlL2xpbnV4L21lbWNvbnRyb2wuaCAgICAgICAgICAgICAgICAgICAgfCAgIDM2ICsKPiAgaW5j bHVkZS9saW51eC9tbS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOCArCj4gIGlu Y2x1ZGUvbGludXgvbW1faW5saW5lLmggICAgICAgICAgICAgICAgICAgICB8ICAyMTQgKysKPiAg aW5jbHVkZS9saW51eC9tbV90eXBlcy5oICAgICAgICAgICAgICAgICAgICAgIHwgICA3OCArCj4g IGluY2x1ZGUvbGludXgvbW16b25lLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAxODIgKysK PiAgaW5jbHVkZS9saW51eC9ub2RlbWFzay5oICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSAr Cj4gIGluY2x1ZGUvbGludXgvcGFnZS1mbGFncy1sYXlvdXQuaCAgICAgICAgICAgICB8ICAgMTkg Ky0KPiAgaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmggICAgICAgICAgICAgICAgICAgIHwgICAg NCArLQo+ICBpbmNsdWRlL2xpbnV4L3BndGFibGUuaCAgICAgICAgICAgICAgICAgICAgICAgfCAg IDE3ICstCj4gIGluY2x1ZGUvbGludXgvc2NoZWQuaCAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgIDQgKwo+ICBpbmNsdWRlL2xpbnV4L3N3YXAuaCAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICA1ICsKPiAga2VybmVsL2JvdW5kcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgMyArCj4gIGtlcm5lbC9jZ3JvdXAvY2dyb3VwLWludGVybmFsLmggICAgICAgICAgICAg ICB8ICAgIDEgLQo+ICBrZXJuZWwvZXhpdC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAxICsKPiAga2VybmVsL2ZvcmsuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgOSArCj4gIGtlcm5lbC9zY2hlZC9jb3JlLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgIDEgKwo+ICBtbS9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDUwICsKPiAgbW0vaHVnZV9tZW1vcnkuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgMyArLQo+ICBtbS9tZW1jb250cm9sLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDI3ICsKPiAgbW0vbWVtb3J5LmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAzOSArLQo+ICBtbS9tbV9pbml0LmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICA2ICstCj4gIG1tL3BhZ2VfYWxsb2MuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgIDEgKwo+ICBtbS9ybWFwLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICA3ICsKPiAgbW0vc3dhcC5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICA1NSArLQo+ICBtbS92bXNjYW4uYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAyODMxICsrKysrKysrKysrKysrKystCj4gIG1tL3dvcmtpbmdz ZXQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMTkgKy0KPiAgMzggZmlsZXMg Y2hhbmdlZCwgMzkwOCBpbnNlcnRpb25zKCspLCAxNDYgZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL21tL211bHRpZ2VuX2xydS5yc3QK PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vdm0vbXVsdGlnZW5fbHJ1LnJzdAo+ Cj4gLS0gCj4gMi4zNS4wLjI2My5nYjgyNDIyNjQyZi1nb29nCj4KPgoKLS0gCkNoZWVycwp+IFZh aWJoYXYKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LWFybS1rZXJuZWwK