From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9B5B8A0524; Tue, 25 Feb 2020 06:23:16 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A28751BFAB; Tue, 25 Feb 2020 06:23:15 +0100 (CET) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80073.outbound.protection.outlook.com [40.107.8.73]) by dpdk.org (Postfix) with ESMTP id DDBEF3B5; Tue, 25 Feb 2020 06:23:13 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8YVs3qkfHbfN3hUwhLKK+OO3uaQjO3q4gCoDGX0J4Ac=; b=XSbs3r6BHZpyFKKqweizu4KnXRWNIdBtrsa7B3qMYG1WeFolM1NZ13/cHKVBfn7IizGJ7QOGI87zI/0e4QRBpMjdidSrphMXlZI3tLa0uijVgJaQeKfPGkSQ1XV/zCPdzJqbDK0pGyMo87vLXgsukW7UWunmGGL/ogol2kL2nFI= Received: from VI1PR08CA0091.eurprd08.prod.outlook.com (2603:10a6:800:d3::17) by VI1PR08MB2768.eurprd08.prod.outlook.com (2603:10a6:802:19::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2750.18; Tue, 25 Feb 2020 05:23:08 +0000 Received: from AM5EUR03FT017.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e08::208) by VI1PR08CA0091.outlook.office365.com (2603:10a6:800:d3::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2750.18 via Frontend Transport; Tue, 25 Feb 2020 05:23:08 +0000 Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT017.mail.protection.outlook.com (10.152.16.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2750.17 via Frontend Transport; Tue, 25 Feb 2020 05:23:07 +0000 Received: ("Tessian outbound efdea641ed36:v42"); Tue, 25 Feb 2020 05:23:07 +0000 X-CR-MTA-TID: 64aa7808 Received: from 617a3235ebfa.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id AFAED311-987F-420B-A883-7825C028798B.1; Tue, 25 Feb 2020 05:23:02 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 617a3235ebfa.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 25 Feb 2020 05:23:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NFa9xHKeC3xVWqv8KPT0OwyYROsgi6U+/MBCcW6T8fNbbhdOQUVeH4kte9OpmaEF/zSf6fOjPieBHicxzOGvWE5CDPmIPp/clsjReda7CWZxi1QYwqVkSEcJStvh8FIhO8j/OsSOQxCQiXPpU2OhR5zg0bcw1PtPXNCKiXqF2F2jC66K8/0mLVQ3Zq5xxkJe31Z/BDwepx0zlphCrMqe9Z5FE1+9s32bO5lpJY95LCWNfhW9fGO53n4eMfkltihoBRJ7HT0KW7oolY4/AKZm2JKGkRD/zcsgmDrgMtNwHl+Jwpr+k10Sz29WA+4ZJl+PSF3VRwYewqMS4PzO+mFQAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8YVs3qkfHbfN3hUwhLKK+OO3uaQjO3q4gCoDGX0J4Ac=; b=k0eXe3lUl2u0trQz0KfWAXDZ2DbyK8SJOt/+k9EJrKJcBDIN8pOBDTiA4O3YXDjOOfNuVISI2gNarWjnYf1dxyTW93ETDlYCnmeiPGpl6NuA1Lp9ObBHFfHtoR+DOrkQW3qtCBi6bvZxP0WNqkAziATQiDbGnH6C6SO2SG7aH72V1akIpzzY/gfQC6DnFIJ9/r+9DQ0CHKuMJGbabTcQgx6yktAv4QAFX4Irlo3xzuwZBWVQ5Zbs6P0nI+NJQrXFXireK1ovhBB4PbSfVwESgDd/4zWrkfkxEqChuNRfVGS2PU+v8ebNMiTNOuXtprz9HdjVlT7w2y8Vn289A2Exsg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8YVs3qkfHbfN3hUwhLKK+OO3uaQjO3q4gCoDGX0J4Ac=; b=XSbs3r6BHZpyFKKqweizu4KnXRWNIdBtrsa7B3qMYG1WeFolM1NZ13/cHKVBfn7IizGJ7QOGI87zI/0e4QRBpMjdidSrphMXlZI3tLa0uijVgJaQeKfPGkSQ1XV/zCPdzJqbDK0pGyMo87vLXgsukW7UWunmGGL/ogol2kL2nFI= Received: from VE1PR08MB5149.eurprd08.prod.outlook.com (20.179.30.27) by VE1PR08MB4990.eurprd08.prod.outlook.com (10.255.158.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2750.18; Tue, 25 Feb 2020 05:22:59 +0000 Received: from VE1PR08MB5149.eurprd08.prod.outlook.com ([fe80::29eb:a1be:8f8f:fae2]) by VE1PR08MB5149.eurprd08.prod.outlook.com ([fe80::29eb:a1be:8f8f:fae2%7]) with mapi id 15.20.2750.021; Tue, 25 Feb 2020 05:22:59 +0000 From: Honnappa Nagarahalli To: "jerinj@marvell.com" , "dev@dpdk.org" CC: "pkapoor@marvell.com" , "ndabilpuram@marvell.com" , "kirankumark@marvell.com" , "pbhagavatula@marvell.com" , "pathreya@marvell.com" , "nsaxena@marvell.com" , "sshankarnara@marvell.com" , "thomas@monjalon.net" , "david.marchand@redhat.com" , "ferruh.yigit@intel.com" , "arybchenko@solarflare.com" , "Ajit Khaparde (ajit.khaparde@broadcom.com)" , "xiaolong.ye@intel.com" , "rasland@mellanox.com" , "maxime.coquelin@redhat.com" , "Akhil.goyal@nxp.com" , "cristian.dumitrescu@intel.com" , "john.mcnamara@intel.com" , "bruce.richardson@intel.com" , "anatoly.burakov@intel.com" , Gavin Hu , "drc@linux.vnet.ibm.com" , "konstantin.ananyev@intel.com" , "pallavi.kadam@intel.com" , "olivier.matz@6wind.com" , "gage.eads@intel.com" , "nikhil.rao@intel.com" , "erik.g.carrillo@intel.com" , "hemant.agrawal@nxp.com" , "artem.andreev@oktetlabs.ru" , "sthemmin@microsoft.com" , "shahafs@mellanox.com" , "keith.wiles@intel.com" , "mattias.ronnblom@ericsson.com" , "jasvinder.singh@intel.com" , "vladimir.medvedkin@intel.com" , "mdr@ashroe.eu" , "techboard@dpdk.org" , "jerinj@marvell.com" , Honnappa Nagarahalli , nd , nd Thread-Topic: [dpdk-dev] [RFC PATCH 0/5] graph: introduce graph subsystem Thread-Index: AQHV65ugfcWeltq1vUytVn43BDwgTw== Date: Tue, 25 Feb 2020 05:22:59 +0000 Message-ID: References: <20200131170201.3236153-1-jerinj@marvell.com> In-Reply-To: <20200131170201.3236153-1-jerinj@marvell.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 8734ce5d-aaf4-4de9-863f-e26d79252eb9.0 x-checkrecipientchecked: true Authentication-Results-Original: spf=none (sender IP is ) smtp.mailfrom=Honnappa.Nagarahalli@arm.com; x-originating-ip: [217.140.111.135] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: e47581db-09dd-4939-cb41-08d7b9b2cc57 X-MS-TrafficTypeDiagnostic: VE1PR08MB4990:|VE1PR08MB4990:|VI1PR08MB2768: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:6430;OLM:6430; x-forefront-prvs: 0324C2C0E2 X-Forefront-Antispam-Report-Untrusted: SFV:NSPM; SFS:(10009020)(4636009)(376002)(39860400002)(136003)(346002)(396003)(366004)(189003)(199004)(966005)(71200400001)(7416002)(81156014)(7406005)(54906003)(8676002)(81166006)(5660300002)(316002)(33656002)(478600001)(110136005)(86362001)(30864003)(8936002)(4326008)(7696005)(55016002)(6506007)(52536014)(76116006)(64756008)(186003)(2906002)(66946007)(66556008)(66446008)(9686003)(26005)(66476007)(10126625002)(493534005)(579004)(559001); DIR:OUT; SFP:1101; SCL:1; SRVR:VE1PR08MB4990; H:VE1PR08MB5149.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: FetCGd9xwVKRvZjh2RVJjEyIoEmCpVQcWK20s3orbjOldmEovywjJJwdW7MSThtFkDTTPP6IaJ5FlapLab4gx8emJgs3Yu6DYq7aQXLbf2JT8wOeB+ocFA3nWrFf6pZ7Dsr4alxFJTvqZYcHGB9Qa7N90tepWpegDacA/276OW2gHRr2CGAOHGAu3LBz4EkymSXYTcN1CIuuJ2mCwuH9oxxi4e3z10LTa6VU5rpD6oR/gPm74/dJj35wB0DI8RGEN2ENAJiUC0Ch8b2/rIai/g0HtLG+YcJc6t7cxClD5aZJjDgK09j3zokdZSFrhGp5g8DPCgZuBawZL4qW+/Hd/7SkpxYwIdx4pTQgxYL2f4bexpvvepXMV4qlCGb9sTPZZpodolVT9LmzU6Iqryhu11fy5xRMg1jVsjCMNJp8gLMtoBS9gToXefA2DapP/OVwiTAJGcTQ+oCby0Yyr35jzUmknylZ1tDz9zbE1zaaQDfrxF3kM7m+DIOihJlBWczTWad/NuiPaRuJj+VmDR+ftLvrkMs9gD6p5aKl0LxlhUFRdGpE9RgMxUmRoia9ul51aFtGVOLK7rCrOkIvRrgTGD/kso/XrmocvYzR7HLzbPE= x-ms-exchange-antispam-messagedata: 4ceD61GQ5vBzf8dqNYfVFHAv5Je0rcrO3TCBHsIVuVW6X7DSfPPm2GNdUph0ljy8MoVN9pgZXqs5t2MZw50bM7rEoDUrNpRdjzaDhBL8pqHauAxLS6Tp5Mr2NF5KWSeg8VAKIU7RI0UTXX6LFFpdsw== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB4990 Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Honnappa.Nagarahalli@arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT017.eop-EUR03.prod.protection.outlook.com X-Forefront-Antispam-Report: CIP:63.35.35.123; IPV:CAL; SCL:-1; CTRY:IE; EFV:NLI; SFV:NSPM; SFS:(10009020)(4636009)(346002)(396003)(136003)(39860400002)(376002)(199004)(189003)(966005)(336012)(86362001)(5660300002)(316002)(33656002)(54906003)(8676002)(26826003)(81156014)(4326008)(8936002)(30864003)(36906005)(478600001)(110136005)(450100002)(52536014)(70206006)(2906002)(81166006)(7696005)(186003)(70586007)(55016002)(356004)(9686003)(26005)(6506007)(10126625002)(493534005); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR08MB2768; H:64aa7808-outbound-1.mta.getcheckrecipient.com; FPR:; SPF:Pass; LANG:en; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; A:1; MX:1; X-MS-Office365-Filtering-Correlation-Id-Prvs: c5eefb33-2d42-4156-e9ba-08d7b9b2c74a X-Forefront-PRVS: 0324C2C0E2 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NBrPKtA2hYeDmBekPUz+cGjYvSG+81ox731pDu1vTIqOZ0q/Z138zTtMhcsE90D5n2DGL0OLEMwwgaTC3JdMUAVEONFqydOEkiqsu45IOQAg7ZY1DQUbagIicwWp0hJyGCw16HFudB+rx60dxe6LmdIKnhiPe3PLDBN8lYPe78S4nXZcgO0LJCa7kmwxOtTQnzpFvYADur0yD4hrS030Qws+txL+LJv237RW36H3QAlMjMf5EWurzJ/1ciWjOJYYMe7xouZxHyv6g3N1FEkEr4GcCd9gLXO4h6w8pQVJ0g5xZ5K9xqgSiJzssGhZ+If0Lm7qfFYwmFl7IwxCzHfdRZKO7Kjh4yi8SuRo5er5KcXXyiA8WfXmcdidiJo+nbetBzUzpXZen+WbN/7tx8p5TUXg3ZZKa6ArqBOZO3XgQO+vy4e+LffY+mYsIMiVVzq4M/JHv4smnC8K8owmqdIX9S9wMRKmZN6MAVG0itdYr4cttJT7lOLrDeHaOrMDk3O/9Pkhv3Om0o9CDwjYG6PTz5fne3kq9m3FIpAdMlt7jfCS49exxWGr+4ww4iZAlDU6EzZpTwipHe56N3Ty19zGUkUcqewua5kxz6hu1F1Zs6E= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2020 05:23:07.8646 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e47581db-09dd-4939-cb41-08d7b9b2cc57 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB2768 Subject: Re: [dpdk-dev] [RFC PATCH 0/5] graph: introduce graph subsystem X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PHNuaXA+DQoNCj4gDQo+IEZyb206IEplcmluIEphY29iIDxqZXJpbmpAbWFydmVsbC5jb20+DQo+ IA0KPiBUaGlzIFJGQyBpcyB0YXJnZXRlZCBmb3IgdjIwLjA1IHJlbGVhc2UuDQo+IA0KPiBUaGlz IFJGQyBwYXRjaCBpbmNsdWRlcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBncmFwaCBhcmNoaXRlY3R1 cmUgZm9yIHBhY2tldA0KPiBwcm9jZXNzaW5nIHVzaW5nIERQREsgcHJpbWl0aXZlcy4NCj4gDQo+ IFVzaW5nIGdyYXBoIHRyYXZlcnNhbCBmb3IgcGFja2V0IHByb2Nlc3NpbmcgaXMgYSBwcm92ZW4g YXJjaGl0ZWN0dXJlIHRoYXQgaGFzDQo+IGJlZW4gaW1wbGVtZW50ZWQgaW4gdmFyaW91cyBvcGVu IHNvdXJjZSBsaWJyYXJpZXMuDQo+IA0KPiBHcmFwaCBhcmNoaXRlY3R1cmUgZm9yIHBhY2tldCBw cm9jZXNzaW5nIGVuYWJsZXMgYWJzdHJhY3RpbmcgdGhlIGRhdGENCj4gcHJvY2Vzc2luZyBmdW5j dGlvbnMgYXMg4oCcbm9kZXPigJ0gYW5kIOKAnGxpbmtz4oCdIHRoZW0gdG9nZXRoZXIgdG8gY3Jl YXRlIGEgY29tcGxleA0KPiDigJxncmFwaOKAnSB0byBjcmVhdGUgcmV1c2FibGUvbW9kdWxhciBk YXRhIHByb2Nlc3NpbmcgZnVuY3Rpb25zLg0KPiANCj4gVGhlIFJGQyBwYXRjaCBmdXJ0aGVyIGlu Y2x1ZGVzIHBlcmZvcm1hbmNlIGVuaGFuY2VtZW50cyBhbmQgbW9kdWxhcml0eSB0bw0KPiB0aGUg RFBESyBhcyBkaXNjdXNzZWQgaW4gbW9yZSBkZXRhaWwgYmVsb3cuDQo+IA0KPiBXaGF0IHRoaXMg UkZDIHBhdGNoIGNvbnRhaW5zOg0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAx KSBUaGUgQVBJIGRlZmluaXRpb24gdG8gImNyZWF0ZSIgbm9kZXMgYW5kICJsaW5rIiB0b2dldGhl ciB0byBjcmVhdGUgYSAiZ3JhcGgiDQo+IGZvciBwYWNrZXQgcHJvY2Vzc2luZy4gU2VlLCBsaWIv bGlicnRlX2dyYXBoL3J0ZV9ncmFwaC5oDQo+IA0KPiAyKSBUaGUgRmFzdCBwYXRoIEFQSSBkZWZp bml0aW9uIGZvciB0aGUgZ3JhcGggd2Fsa2VyIGFuZCBlbnF1ZXVlIGZ1bmN0aW9uDQo+IHVzZWQg YnkgdGhlIHdvcmtlcnMuIFNlZSwgbGliL2xpYnJ0ZV9ncmFwaC9ydGVfZ3JhcGhfd29ya2VyLmgN Cj4gDQo+IDMpIE9wdGltaXplZCBTVyBpbXBsZW1lbnRhdGlvbiBmb3IgKDEpIGFuZCAoMikuIFNl ZSwgbGliL2xpYnJ0ZV9ncmFwaC8NCj4gDQo+IDQpIFRlc3QgY2FzZSB0byB2ZXJpZnkgdGhlIGdy YXBoIGluZnJhc3RydWN0dXJlIGZ1bmN0aW9uYWxpdHkgU2VlLA0KPiBhcHAvdGVzdC90ZXN0X2dy YXBoLmMNCj4gDQo+IDUpIFBlcmZvcm1hbmNlIHRlc3QgY2FzZXMgdG8gZXZhbHVhdGUgdGhlIGNv c3Qgb2YgZ3JhcGggd2Fsa2VyIGFuZCBub2Rlcw0KPiBlbnF1ZXVlIGZhc3QtcGF0aCBmdW5jdGlv biBmb3IgdmFyaW91cyBjb21iaW5hdGlvbnMuDQo+IA0KPiBTZWUgYXBwL3Rlc3QvdGVzdF9ncmFw aF9wZXJmLmMNCj4gDQo+IDYpIFBhY2tldCBwcm9jZXNzaW5nIG5vZGVzKE51bGwsIFJ4LCBUeCwg UGt0IGRyb3AsIElQVjQgcmV3cml0ZSwgSVB2NCBsb29rdXApDQo+IHVzaW5nIGdyYXBoIGluZnJh c3RydWN0dXJlLiBTZWUgbGliL2xpYnJ0ZV9ub2RlLyoNCj4gDQo+IDcpIEFuIGV4YW1wbGUgYXBw bGljYXRpb24gdG8gc2hvd2Nhc2UgbDNmd2QgKGZ1bmN0aW9uYWxpdHkgc2FtZSBhcyBleGlzdGlu Zw0KPiBleGFtcGxlcy9sM2Z3ZCkgdXNpbmcgZ3JhcGggaW5mcmFzdHJ1Y3R1cmUgYW5kIHVzZSBw YWNrZXRzIHByb2Nlc3Npbmcgbm9kZXMNCj4gKGl0ZW0gKDYpKS4gU2VlIGV4YW1wbGVzL2wzZndk LWdyYXBoLy4NCj4gDQo+IFBlcmZvcm1hbmNlDQo+IC0tLS0tLS0tLS0tDQo+IDEpIEdyYXBoIHdh bGsgYW5kIG5vZGUgZW5xdWV1ZSBvdmVyaGVhZCBjYW4gYmUgdGVzdGVkIHdpdGggcGVyZm9ybWFu Y2UNCj4gdGVzdCBjYXNlIGFwcGxpY2F0aW9uIFsxXSAjIElmIGFsbCBwYWNrZXRzIGdvIGZyb20g YSBub2RlIHRvIGFub3RoZXIgbm9kZSAod2UNCj4gY2FsbCBpdCBhcyAiaG9tZXJ1biIpIHRoZW4g aXQgd2lsbCBiZSBqdXN0IGEgcG9pbnRlciBzd2FwIGZvciBhIGJ1cnN0IG9mIHBhY2tldHMuDQo+ ICMgSW4gdGhlIHdvcnN0IGNhc2UsIGEgY291cGxlIG9mIGhhbmRmdWwgY3ljbGVzIHRvIG1vdmUg YW4gb2JqZWN0IGZyb20gYSBub2RlDQo+IHRvIGFub3RoZXIgbm9kZS4NCj4gDQo+IDIpIFBlcmZv cm1hbmNlIGNvbXBhcmlzb24gd2l0aCBleGlzdGluZyBsM2Z3ZCAoVGhlIGNvbXBsZXRlIHN0YXRp YyBjb2RlIHdpdGgNCj4gb3V0IGFueSBub2RlcykgdnMgbW9kdWxhciBsM2Z3ZC1ncmFwaCB3aXRo IDUgbm9kZXMgKGlwNF9sb29rdXAsIGlwNF9yZXdyaXRlLA0KPiBldGhkZXZfdHgsIGV0aGRldl9y eCwgcGt0X2Ryb3ApLg0KPiBIZXJlIGlzIGdyYXBoaWNhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUg bDNmd2QtZ3JhcGggYXMgR3JhcGh2aXogZG90IGZpbGU6DQo+IGh0dHA6Ly9iaXQubHkvMzlVUFBH bQ0KPiANCj4gIyBsM2Z3ZC1ncmFwaCBwZXJmb3JtYW5jZSBpcyAtMi41JSB3cnQgc3RhdGljIGwz ZndkLg0KPiANCj4gIyBXZSBoYXZlIHNpbXVsYXRlZCB0aGUgc2ltaWxhciB0ZXN0IHdpdGggZXhp c3RpbmcgbGlicnRlX3BpcGVsaW5lIGFwcGxpY2F0aW9uDQo+IFs0XS4NCj4gaXBfcGlwbGluZSBh cHBsaWNhdGlvbiBpcyAtNDguNjIlIHdydCBzdGF0aWMgbDNmd2QuDQo+IA0KPiBUaGUgYWJvdmUg cmVzdWx0cyBhcmUgb24gb2N0ZW9udHgyLiBJdCBtYXkgdmFyeSBvbiBvdGhlciBwbGF0Zm9ybXMu DQo+IFRoZSBwbGF0Zm9ybXMgd2l0aCBoaWdoZXIgTDEgYW5kIEwyIGNhY2hlcyB3aWxsIGhhdmUg ZnVydGhlciBiZXR0ZXINCj4gcGVyZm9ybWFuY2UuDQo+IA0KPiBUZXN0ZWQgYXJjaGl0ZWN0dXJl czoNCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gMSkgQUFyY2g2NA0KPiAyKSBYODYNCj4gDQo+ IA0KPiBHcmFwaCBsaWJyYXJ5IEZlYXR1cmVzDQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g MSkgTm9kZXMgYXMgcGx1Z2lucw0KPiAyKSBTdXBwb3J0IGZvciBvdXQgb2YgdHJlZSBub2Rlcw0K PiAzKSBNdWx0aS1wcm9jZXNzIHN1cHBvcnQuDQo+IDQpIExvdyBvdmVyaGVhZCBncmFwaCB3YWxr IGFuZCBub2RlIGVucXVldWUNCj4gNSkgTG93IG92ZXJoZWFkIHN0YXRpc3RpY3MgY29sbGVjdGlv biBpbmZyYXN0cnVjdHVyZQ0KPiA2KSBTdXBwb3J0IHRvIGV4cG9ydCB0aGUgZ3JhcGggYXMgYSBH cmFwaHZpeiBkb3QgZmlsZS4NCj4gU2VlIHJ0ZV9ncmFwaF9leHBvcnQoKQ0KPiBFeGFtcGxlIG9m IGV4cG9ydGVkIGdyYXBoOiBodHRwOi8vYml0Lmx5LzJQcWJxT3kNCj4gNykgQWxsb3cgaGF2aW5n IGFub3RoZXIgZ3JhcGggd2FsayBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgZnV0dXJlIGJ5DQo+IHNl Z3JlZ2F0aW5nIHRoZSBmYXN0IHBhdGggYW5kIHNsb3cgcGF0aCBjb2RlLg0KPiANCj4gDQo+IEFk dmFudGFnZXMgb2YgR3JhcGggYXJjaGl0ZWN0dXJlOg0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gDQo+IDEpIE1lbW9yeSBsYXRlbmN5IGlzIHRoZSBlbmVteSBmb3IgaGln aC1zcGVlZCBwYWNrZXQgcHJvY2Vzc2luZywgbW92aW5nIHRoZQ0KPiBzaW1pbGFyIHBhY2tldCBw cm9jZXNzaW5nIGNvZGUgdG8gYSBub2RlIHdpbGwgcmVkdWNlIHRoZSBJIGNhY2hlIGFuZCBEIGNh Y2hlcw0KPiBtaXNzZXMuDQo+IDIpIEV4cGxvaXRzIHRoZSBwcm9iYWJpbGl0eSB0aGF0IG1vc3Qg cGFja2V0cyB3aWxsIGZvbGxvdyB0aGUgc2FtZSBub2RlcyBpbiB0aGUNCj4gZ3JhcGguDQo+IDMp IEFsbG93IFNJTUQgaW5zdHJ1Y3Rpb25zIGZvciBwYWNrZXQgcHJvY2Vzc2luZyBvZiB0aGUgbm9k ZS4NCj4gNCkgVGhlIG1vZHVsYXIgc2NoZW1lIGFsbG93cyBoYXZpbmcgcmV1c2FibGUgbm9kZXMg Zm9yIHRoZSBjb25zdW1lcnMuDQo+IDUpIFRoZSBtb2R1bGFyIHNjaGVtZSBhbGxvd3MgdXMgdG8g YWJzdHJhY3QgdGhlIHZlbmRvciBIVyBzcGVjaWZpYw0KPiBvcHRpbWl6YXRpb25zIGFzIGEgbm9k ZS4NCj4gDQo+IA0KPiBXaGF0IGlzIGRpZmZlcmVudCB0aGFuIGV4aXN0aW5nIGxpYnBpcGVsaW5l IGxpYnJhcnkNCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+IEF0IGEgdmVyeSBoaWdoIGxldmVsLCBsaWJwaXBlbGluZSBjcmVhdGVkIHRvIGFs bG93IG1vZHVsYXIgcGx1Z2luIGludGVyZmFjZS4NCj4gQmFzZWQgb24gb3VyIGFuYWx5c2lzIHRo ZSBwZXJmb3JtYW5jZSBpcyBiZXR0ZXIgaW4gdGhlIGdyYXBoIG1vZGVsLg0KPiBDaGVjayB0aGUg ZGV0YWlscyB1bmRlciB0aGUgUGVyZm9ybWFuY2Ugc2VjdGlvbiwgSXRlbSAoMikuDQo+IA0KPiBU aGlzIHJ0ZV9ncmFwaCBpbXBsZW1lbnRhdGlvbiBoYXMgdGFrZW4gY2FyZSBvZiBmaXhpbmcgc29t ZSBvZiB0aGUNCj4gYXJjaGl0ZWN0dXJlL2ltcGxlbWVudGF0aW9ucyBsaW1pdGF0aW9ucyB3aXRo IGxpYnBpcGVsaW5lLg0KPiANCj4gMSkgVXNlIGNhc2VzIGxpa2UgSVAgZnJhZ21lbnRhdGlvbiwg VENQIEFDSyBwcm9jZXNzaW5nICh3aXRoIG5ldyBUQ1AgZGF0YQ0KPiBzZW50IG91dCBpbiB0aGUg c2FtZSBjb250ZXh0KSBoYXZlIGEgcHJvYmxlbSBhcyBydGVfcGlwZWxpbmVfcnVuKCkgcGFzc2Vz IGp1c3QNCj4gcGt0X21hc2sgb2YgNjQgYml0cyB0byBkaWZmZXJlbnQgdGFibGVzIGFuZCBwYWNr ZXQgcG9pbnRlcnMgYXJlIHN0b3JlZCBpbiB0aGUNCj4gc2luZ2xlIGFycmF5IGluIHN0cnVjdCBy dGVfcGlwZWxpbmVfcnVuLg0KPiANCj4gSW4gR3JhcGggYXJjaGl0ZWN0dXJlLCBUaGUgbm9kZSBo YXMgY29tcGxldGUgY29udHJvbCBvZiBob3cgbWFueSBwYWNrZXRzDQo+IGFyZSBvdXRwdXQgdG8g bmV4dCBub2RlIHNlYW1sZXNzbHkuDQo+IA0KPiAyKSBTaW5jZSBwa3RtYXNrIGlzIHBhc3NlZCB0 byBkaWZmZXJlbnQgdGFibGVzLCBpdCB0YWtlcyBtdWx0aXBsZSBmb3IgbG9vcHMgdG8NCj4gZXh0 cmFjdCBwa3RzIG91dCBvZiBmcmFnbWVudGVkIHBrdHNfbWFzay4gVGhpcyBtYWtlcyBpdCBkaWZm aWN1bHQgdG8gcHJlZmV0Y2gNCj4gYWhlYWQgYSBzZXQgb2YgcGFja2V0cy4gVGhpcyBpc3N1ZSBk b2VzIG5vdCBleGlzdCBpbiBHcmFwaCBhcmNoaXRlY3R1cmUuDQo+IA0KPiAzKSBFdmVyeSB0YWJs ZSBoYXZlIHR3by90aHJlZSBmdW5jdGlvbiBwb2ludGVycyB1bmxpa2UgZ3JhcGggYXJjaGl0ZWN0 dXJlIHRoYXQNCj4gaGFzIGEgc2luZ2xlIGZ1bmN0aW9uIHBvaW50ZXIgZm9yIG5vZGUuDQo+IA0K PiA0KSBUaGUgY3VycmVudCBsaWJwaXBlbGluZSBtYWluIGZhc3QtcGF0aCBmdW5jdGlvbiBkb2Vz bid0IHN1cHBvcnQgdHJlZS1saWtlDQo+IHRvcG9sb2d5IHdoZXJlIDY0IHBhY2tldHMgY2FuIGJl IHJlZGlyZWN0ZWQgdG8gNjQgZGlmZmVyZW50IHRhYmxlcy4NCj4gSXQgaXMgY3VycmVudGx5IGxp bWl0ZWQgdG8gdGFibGUtYmFzZWQgbmV4dCB0YWJsZSBpZCBpbnN0ZWFkIG9mIHBlci1wYWNrZXQg YWN0aW9uDQo+IGJhc2VkIG5leHQgdGFibGUgaWQuIFNvIGluIGEgdHlwaWNhbCBjYXNlLCB3ZSBu ZWVkIHRvIGNhc2NhZGUgdGFibGVzIGFuZA0KPiBzZXF1ZW50aWFsbHkgZ28gdGhyb3VnaCBhbGwg dGhlIHRhYmxlcyB0byByZWFjaCB0aGUgbGFzdCB0YWJsZS4NCj4gDQo+IDUpIHBrdF9tYXNrIGxp bWl0IGlzIDY0IGJpdHMgd2hpY2ggaXMgdGhlIG1heCBidXJzdCBzaXplIHBvc3NpYmxlLg0KPiBU aGUgZ3JhcGggbGlicmFyeSBzdXBwb3J0cyB1cCB0byAyNTYuDQo+IA0KPiBJbiBzaG9ydCwgYm90 aCBhcmUgc2lnbmlmaWNhbnRseSBkaWZmZXJlbnQgYXJjaGl0ZWN0dXJlcy4NCj4gQWxsb3dpbmcg dGhlIGVuZC11c2VyIHRvIGNob29zZSB0aGUgbW9kZWwgd291bGQgYmUgYSBtb3JlIGFwcHJvcHJp YXRlDQo+IGRlY2lzaW9uIGJ5IGtlZXBpbmcgYm90aCBpbiBEUERLLg0KPiANCj4gDQo+IFdoeSB0 aGlzIFJGQw0KPiAtLS0tLS0tLS0tLS0NCj4gMSkgV2UgYmVsaWV2ZSwgR3JhcGggYXJjaGl0ZWN0 dXJlIHByb3ZpZGVzIHRoZSBiZXN0IHBlcmZvcm1hbmNlIGZvcg0KPiByZXVzYWJsZS9tb2R1bGFy IHBhY2tldCBwcm9jZXNzaW5nIGZyYW1ld29yay4NCj4gU2luY2UgRFBESyBkb2VzIG5vdCBoYXZl IGl0LCBpdCBpcyBnb29kIHRvIGhhdmUgaXQgaW4gRFBESy4NCj4gDQo+IDIpIEJhc2VkIG9uIG91 ciBleHBlcmllbmNlLCBOUFUgSFcgYWNjZWxlcmF0ZXMgYXJlIHNvIGRpZmZlcmVudCB0aGFuIG9u ZQ0KPiB2ZW5kb3IgdG8gYW5vdGhlciB2ZW5kb3IuIEdvaW5nIGZvcndhcmQsIFdlIGJlbGlldmUs IEFQSSBhYnN0cmFjdGlvbiBtYXkNCj4gbm90IGJlIGVub3VnaCBhYnN0cmFjdCB0aGUgZGlmZmVy ZW5jZSBpbiBIVy4gVGhlIFZlbmRvci1zcGVjaWZpYyBub2RlcyBjYW4NCj4gYWJzdHJhY3QgdGhl IEhXIGRpZmZlcmVuY2VzIGFuZCByZXVzZSBnZW5lcmljIHRoZSBub2RlcyBhcyBuZWVkZWQuDQo+ IFRoaXMgd291bGQgaGVscCBib3RoIHRoZSBzaWxpY29uIHZlbmRvcnMgYW5kIERQREsgZW5kIHVz ZXJzLg0KSWYgeW91IGFyZSBwcm9wb3NpbmcgdGhpcyBhcyBhIG5ldyB3YXkgdG8gcHJvdmlkZSBI VyBhYnN0cmFjdGlvbnMsIHRoZW4gd2Ugd2lsbCBiZSByZXN0cmljdGluZyB0aGUgYXBwbGljYXRp b24gcHJvZ3JhbW1pbmcgbW9kZWwgdG8gZm9sbG93IGdyYXBoIHN1YnN5c3RlbS4gSU1PLCB0aGUg SFcgYWJzdHJhY3Rpb25zIHNob3VsZCBiZSBhdmFpbGFibGUgaXJyZXNwZWN0aXZlIG9mIHRoZSBw cm9ncmFtbWluZyBtb2RlbC4NCkdyYXBoIG1vZGVsIG9mIHBhY2tldCBwcm9jZXNzaW5nIG1pZ2h0 IG5vdCBiZSBhcHBsaWNhYmxlIGZvciBhbGwgdXNlIGNhc2VzLg0KDQo+IA0KPiAzKSBUaGUgZnJh bWV3b3JrIGVuYWJsZXMgdGhlIHByb3RvY29sIHN0YWNrIGFzIHVzZSBuYXRpdmUgbWJ1ZiBmb3Ig Z3JhcGgNCj4gcHJvY2Vzc2luZyB0byBhdm9pZCBhbnkgY29udmVyc2lvbiBiZXR3ZWVuIHRoZSBm b3JtYXRzIGZvciBiZXR0ZXINCj4gcGVyZm9ybWFuY2UuDQo+IA0KPiA0KSBEUERLIGJlY29tZXMg dGhlICJnb3RvIGxpYnJhcnkiIGZvciB1c2Vyc3BhY2UgSFcgYWNjZWxlcmF0aW9uLg0KPiBJdCBp cyBnb29kIHRvIGhhdmUgbmF0aXZlIEdyYXBoIHBhY2tldCBwcm9jZXNzaW5nIGxpYnJhcnkgaW4g RFBESy4NCj4gDQo+IDUpIE9idmlvdXNseSwgT3VyIGN1c3RvbWVycyBhcmUgaW50ZXJlc3RlZCBp biBHcmFwaCBsaWJyYXJ5IGluIERQREsgOi0pDQo+IA0KPiBJZGVudGlmaWVkIHR3ZWFraW5nIGZv ciBiZXR0ZXIgcGVyZm9ybWFuY2Ugb24gZGlmZmVyZW50IHRhcmdldHMNCj4gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IDEp IFRlc3Qgd2l0aCB2YXJpb3VzIGJ1cnN0IHNpemUgdmFsdWVzICgyNTYsIDEyOCwgNjQsIDMyKSB1 c2luZw0KPiBDT05GSUdfUlRFX0dSQVBIX0JVUlNUX1NJWkUgY29uZmlnIG9wdGlvbi4NCj4gQmFz ZWQgb24gb3VyIHRlc3RpbmcsIG9uIHg4NiBhbmQgYXJtNjQgc2VydmVycywgVGhlIHN3ZWV0IHNw b3QgaXMgMjU2IGJ1cnN0DQo+IHNpemUuDQo+IFdoaWxlIG9uIGFybTY0IGVtYmVkZGVkIFNvQ3Ms IGl0IGlzIGVpdGhlciA2NCBvciAxMjguDQo+IA0KPiAyKSBEaXNhYmxlIG5vZGUgc3RhdGlzdGlj cyAodXNlIENPTkZJR19SVEVfTElCUlRFX0dSQVBIX1NUQVRTIGNvbmZpZw0KPiBvcHRpb24pIGlm IG5vdCBuZWVkZWQuDQo+IA0KPiAzKSBVc2UgYXJtNjQgb3B0aW1pemVkIG1lbW9yeSBjb3B5IGZv ciBhcm02NCBhcmNoaXRlY3R1cmUgYnkgc2VsZWN0aW5nDQo+IENPTkZJR19SVEVfQVJDSF9BUk02 NF9NRU1DUFkuDQo+IA0KPiBDb21tYW5kcyB0byBydW4gdGVzdHMNCj4gLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+IA0KPiBbMV0NCj4gcGVyZiB0ZXN0Og0KPiBlY2hvICJncmFwaF9wZXJmX2F1dG90 ZXN0IiB8IHN1ZG8gLi9idWlsZC9hcHAvdGVzdC9kcGRrLXRlc3QgLWMgMHgzMA0KPiANCj4gWzJd DQo+IGZ1bmN0aW9uYWxpdHkgdGVzdDoNCj4gZWNobyAiZ3JhcGhfYXV0b3Rlc3QiIHwgc3VkbyAu L2J1aWxkL2FwcC90ZXN0L2RwZGstdGVzdCAtYyAweDMwDQo+IA0KPiBbM10NCj4gbDNmd2QtZ3Jh cGg6DQo+IC4vbDNmd2QtZ3JhcGggLWMgMHgxMDAgIC0tIC1wIDB4MyAtLWNvbmZpZz0iKDAsIDAs IDgpIiAtUA0KPiANCj4gWzRdDQo+ICMgLi9pcF9waXBlbGluZSAtLWMgMHhmZjAwMDAgLS0gLXMg cm91dGUuY2xpDQo+IA0KPiBSb3V0ZS5jbGk6IChDb3B5IHBhc3RlIHRvIHRoZSBzaGVsbCB0byBh dm9pZCBkb3MgZm9ybWF0IGlzc3VlcykNCj4gDQo+IGh0dHBzOi8vcGFzdGViaW4uY29tL3Jhdy9C NEt0eDdUVA0KPiANCj4gDQo+IE5leHQgc3RlcHMNCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gMSkgRmVlZGJhY2sgZnJvbSB0aGUgY29tbXVuaXR5IG9uIHRoZSBsaWJyYXJ5Lg0K PiAyKSBDb2xsZWN0IHRoZSBBUEkgcmVxdWlyZW1lbnRzIGZyb20gdGhlIGNvbW11bml0eS4NCj4g MykgU2VuZGluZyB0aGUgbmV4dCB2ZXJzaW9uIGJ5IGFkZHJlc3NpbmcgdGhlIGNvbW11bml0eSBp bml0aWFsLg0KPiBmZWVkYmFjayBhbmQgZml4aW5nIHRoZSBmb2xsb3dpbmcgaWRlbnRpZmllZCAi cGVuZGluZyBpdGVtcyIuDQo+IA0KPiANCj4gUGVuZGluZyBpdGVtcyAoV2lsbCBiZSBhZGRyZXNz ZWQgaW4gbmV4dCByZXZpc2lvbikNCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiAxKSBBZGQgZG9jdW1lbnRhdGlvbiBhcyBhIHBhdGNoDQo+IDIp IEFkZCBEb3h5Z2VuIEFQSSBkb2N1bWVudGF0aW9uDQo+IDMpIFNwbGl0IHRoZSBwYXRjaGVzIGF0 IGEgbW9yZSBsb2dpY2FsIGxldmVsIGZvciBhIGJldHRlciByZXZpZXcuDQo+IDQpIGNvZGUgY2xl YW51cA0KPiA1KSBtb3JlIG9wdGltaXphdGlvbnMgaW4gdGhlIG5vZGVzIGFuZCBncmFwaCBpbmZy YXN0cnVjdHVyZS4NCj4gDQo+IA0KPiBQcm9ncmFtbWluZyBndWlkZSBhbmQgQVBJIHdhbGstdGhy b3VnaA0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAjIEFuYXRv bXkgb2YgTm9kZToNCj4gfn5+fn5+fn5+fn5+fn5+fn4NCj4gU2VlIHRoZQ0KPiBodHRwczovL2dp dGh1Yi5jb20vamVyaW5qYWNvYmsvc2hhcmUvYmxvYi9tYXN0ZXIvQW5hdG9teV9vZl9hX25vZGUu c3ZnDQo+IA0KPiBUaGUgYWJvdmUgZGlhZ3JhbSBkZXBpY3RzIHRoZSBhbmF0b215IG9mIGEgbm9k ZS4NCj4gVGhlIG5vZGUgaXMgdGhlIGJhc2ljIGJ1aWxkaW5nIGJsb2NrIG9mIHRoZSBncmFwaCBm cmFtZXdvcmsuDQo+IA0KPiBBIG5vZGUgY29uc2lzdHMgb2Y6DQo+IGEpIHByb2Nlc3MoKToNCj4g DQo+IFRoZSBjYWxsYmFjayBmdW5jdGlvbiB3aWxsIGJlIGludm9rZWQgYnkgd29ya2VyIHRocmVh ZCB1c2luZw0KPiBydGVfZ3JhcGhfd2FsaygpIGZ1bmN0aW9uIHdoZW4gdGhlcmUgaXMgZGF0YSB0 byBiZSBwcm9jZXNzZWQgYnkgdGhlIG5vZGUuDQo+IEEgZ3JhcGggbm9kZSBwcm9jZXNzIHRoZSBm dW5jdGlvbiB1c2luZyBwcm9jZXNzKCkgYW5kIGVucXVldWUgdG8gbmV4dA0KPiBkb3duc3RyZWFt IG5vZGUgdXNpbmcgcnRlX25vZGVfZW5xdWV1ZSooKSBmdW5jdGlvbi4NCj4gDQo+IGIpIENvbnRl eHQgbWVtb3J5Og0KPiANCj4gSXQgaXMgbWVtb3J5IGFsbG9jYXRlZCBieSB0aGUgbGlicmFyeSB0 byBzdG9yZSB0aGUgbm9kZS1zcGVjaWZpYyBjb250ZXh0DQo+IGluZm9ybWF0aW9uLiB3aGljaCB3 aWxsIGJlIHVzZWQgYnkgcHJvY2VzcygpLCBpbml0KCksIGZpbmkoKSBjYWxsYmFja3MuDQo+IA0K PiBjKSBpbml0KCk6DQo+IA0KPiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggd2lsbCBiZSBp bnZva2VkIGJ5IHJ0ZV9ncmFwaF9jcmVhdGUoKSBvbiB3aGVuIGENCj4gbm9kZSBnZXRzIGF0dGFj aGVkIHRvIGEgZ3JhcGguDQo+IA0KPiBkKSBmaW5pKCk6DQo+IA0KPiBUaGUgY2FsbGJhY2sgZnVu Y3Rpb24gd2hpY2ggd2lsbCBiZSBpbnZva2VkIGJ5IHJ0ZV9ncmFwaF9kZXN0cm95KCkgb24gd2hl biBhDQo+IG5vZGUgZ2V0cyBkZXRhY2hlZCB0byBhIGdyYXBoLg0KPiANCj4gDQo+IGUpIE5vZGUg bmFtZToNCj4gDQo+IEl0IGlzIHRoZSBuYW1lIG9mIHRoZSBub2RlLiBXaGVuIGEgbm9kZSByZWdp c3RlcnMgdG8gZ3JhcGggbGlicmFyeSwgdGhlIGxpYnJhcnkNCj4gZ2l2ZXMgdGhlIElEIGFzIHJ0 ZV9ub2RlX3QgdHlwZS4gQm90aCBJRCBvciBOYW1lIHNoYWxsIGJlIHVzZWQgbG9va3VwIHRoZQ0K PiBub2RlLg0KPiBydGVfbm9kZV9mcm9tX25hbWUoKSwgcnRlX25vZGVfaWRfdG9fbmFtZSgpIGFy ZSB0aGUgbm9kZSBsb29rdXANCj4gZnVuY3Rpb25zLg0KPiANCj4gZikgbmJfZWRnZXM6DQo+IA0K PiBOdW1iZXIgb2YgZG93bnN0cmVhbSBub2RlcyBjb25uZWN0ZWQgdG8gdGhpcyBub2RlLiBUaGUg bmV4dF9ub2Rlc1tdDQo+IHN0b3JlcyB0aGUNCj4gZG93bnN0cmVhbSBub2RlcyBvYmplY3RzLiBy dGVfbm9kZV9lZGdlX3VwZGF0ZSgpIGFuZA0KPiBydGVfbm9kZV9lZGdlX3NocmluaygpDQo+IGZ1 bmN0aW9ucyBzaGFsbCBiZSB1c2VkIHRvIHVwZGF0ZSB0aGUgbmV4dF9ub2RlW10gb2JqZWN0cy4g Q29uc3VtZXJzIG9mIHRoZQ0KPiBub2RlDQo+IEFQSXMgYXJlIGZyZWUgdG8gdXBkYXRlIHRoZSBu ZXh0X25vZGVbXSBvYmplY3RzIHRpbGwgcnRlX2dyYXBoX2NyZWF0ZSgpIGludm9rZWQuDQo+IA0K PiBnKSBuZXh0X25vZGVbXToNCj4gDQo+IFRoZSBkeW5hbWljIGFycmF5IHRvIHN0b3JlIHRoZSBk b3duc3RyZWFtIG5vZGVzIGNvbm5lY3RlZCB0byB0aGlzIG5vZGUuDQo+IA0KPiANCj4gIyBOb2Rl IGNyZWF0aW9uIGFuZCByZWdpc3RyYXRpb24NCj4gfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4NCj4gYSkgTm9kZSBpbXBsZW1lbnRlciBjcmVhdGVzIHRoZSBub2RlIGJ5IGltcGxlbWVu dGluZyBvcHMgYW5kIGF0dHJpYnV0ZXMgb2YNCj4gJ3N0cnVjdCBydGVfbm9kZV9yZWdpc3RlcicN Cj4gYikgVGhlIGxpYnJhcnkgcmVnaXN0ZXJzIHRoZSBub2RlIGJ5IGludm9raW5nIFJURV9OT0RF X1JFR0lTVEVSIG9uIGxpYnJhcnkNCj4gbG9hZA0KPiB1c2luZyB0aGUgY29uc3RydWN0b3Igc2No ZW1lLg0KPiBUaGUgY29uc3RydWN0b3Igc2NoZW1lIHVzZWQgaGVyZSB0byBzdXBwb3J0IG11bHRp LXByb2Nlc3MuDQo+IA0KPiANCj4gIyBMaW5rIHRoZSBOb2RlcyB0byBjcmVhdGUgdGhlIGdyYXBo IHRvcG9sb2d5DQo+IH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fg0KPiBTZWUgdGhlDQo+IGh0dHBzOi8vZ2l0aHViLmNvbS9qZXJpbmphY29iay9zaGFyZS9ibG9i L21hc3Rlci9MaW5rX3RoZV9ub2Rlcy5zdmcNCj4gDQo+IFRoZSBhYm92ZSBkaWFncmFtIHNob3dz IGEgZ3JhcGggdG9wb2xvZ3kgYWZ0ZXIgbGlua2luZyB0aGUgTiBub2Rlcy4NCj4gDQo+IE9uY2Ug bm9kZXMgYXJlIGF2YWlsYWJsZSB0byB0aGUgcHJvZ3JhbSwgQXBwbGljYXRpb24gb3Igbm9kZSBw dWJsaWMgQVBJDQo+IGZ1bmN0aW9ucw0KPiBjYW4gbGlua3MgdGhlbSB0b2dldGhlciB0byBjcmVh dGUgYSBjb21wbGV4IHBhY2tldCBwcm9jZXNzaW5nIGdyYXBoLg0KPiANCj4gVGhlcmUgYXJlIG11 bHRpcGxlIGRpZmZlcmVudCB0eXBlcyBvZiBzdHJhdGVnaWVzIHRvIGxpbmsgdGhlIG5vZGVzLg0K PiANCj4gTWV0aG9kIGEpIFByb3ZpZGUgdGhlIG5leHRfbm9kZXNbXSBhdCB0aGUgbm9kZSByZWdp c3RyYXRpb24gdGltZS4NCj4gU2VlICAnc3RydWN0IHJ0ZV9ub2RlX3JlZ2lzdGVyOjpuYl9lZGdl cycuIFRoaXMgaXMgYSB1c2UgY2FzZSB0byBhZGRyZXNzIHRoZQ0KPiBzdGF0aWMNCj4gbm9kZSBz Y2hlbWUgd2hlcmUgb25lIGtub3dzIHVwZnJvbnQgdGhlIG5leHRfbm9kZXNbXSBvZiB0aGUgbm9k ZS4NCj4gDQo+IE1ldGhvZCBiKSBVc2UgcnRlX25vZGVfZWRnZV9nZXQoKSwgcnRlX25vZGVfZWRn ZV91cGRhdGUoKSwNCj4gcnRlX25vZGVfZWRnZV9zaHJpbmsoKSB0bw0KPiBVcGRhdGUgdGhlIG5l eHRfbm9kZXNbXSBsaW5rcyBmb3IgdGhlIG5vZGUgZHluYW1pY2FsbHkuDQo+IA0KPiBNZXRob2Qg YykgVXNlIHJ0ZV9ub2RlX2Nsb25lKCkgdG8gY2xvbmUgYSBhbHJlYWR5IGV4aXN0aW5nIG5vZGUu DQo+IFdoZW4gcnRlX25vZGVfY2xvbmUoKSBpbnZva2VkLCBUaGUgbGlicmFyeSwgd291bGQgY2xv bmUgYWxsIHRoZSBhdHRyaWJ1dGVzDQo+IG9mIHRoZSBub2RlIGFuZCBjcmVhdGVzIGEgbmV3IG9u ZS4gVGhlIG5hbWUgZm9yIGNsb25lZCBub2RlIHNoYWxsIGJlDQo+ICJwYXJlbnRfbm9kZV9uYW1l LXVzZXJfcHJvdmlkZWRfbmFtZSIuIFRoaXMgbWV0aG9kIGVuYWJsZXMgdGhlIHVzZQ0KPiBjYXNl IG9mIFJ4IGFuZCBUeA0KPiBub2RlcyB3aGVyZSBtdWx0aXBsZSBvZiB0aG9zZSBub2RlcyBuZWVk IHRvIGJlIGNsb25lZCBiYXNlZCBvbiB0aGUgbnVtYmVyDQo+IG9mIENQVQ0KPiBhdmFpbGFibGUg aW4gdGhlIHN5c3RlbS4gVGhlIGNsb25lZCBub2RlcyB3aWxsIGJlIGlkZW50aWNhbCwgZXhjZXB0 IHRoZSAiY29udGV4dA0KPiBtZW1vcnkiLg0KPiBDb250ZXh0IG1lbW9yeSB3aWxsIGhhdmUgaW5m b3JtYXRpb24gb2YgcG9ydCwgcXVldWUgcGFpciBpbmNhc2Ugb2YgUnggYW5kIFR4DQo+IGV0aGRl diBub2Rlcy4NCj4gDQo+ICMgQ3JlYXRlIHRoZSBncmFwaCBvYmplY3QNCj4gfn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fg0KPiBOb3cgdGhhdCB0aGUgbm9kZXMgYXJlIGxpbmtlZCwgSXRzIHRpbWUg dG8gY3JlYXRlIGEgZ3JhcGggYnkgaW5jbHVkaW5nDQo+IHRoZSByZXF1aXJlZCBub2Rlcy4gVGhl IGFwcGxpY2F0aW9uIGNhbiBwcm92aWRlIGEgc2V0IG9mIG5vZGUgcGF0dGVybnMgdG8NCj4gZm9y bSBhIGdyYXBoIG9iamVjdC4NCj4gVGhlIGZubWF0Y2goKSBBUEkgdXNlZCB1bmRlcm5lYXRoIGZv ciB0aGUgcGF0dGVybiBtYXRjaGluZyB0byBpbmNsdWRlDQo+IHRoZSByZXF1aXJlZCBub2Rlcy4N Cj4gDQo+IFRoZSBydGVfZ3JhcGhfY3JlYXRlKCkgQVBJIHNoYWxsIGJlIHVzZWQgdG8gY3JlYXRl IHRoZSBncmFwaC4NCj4gDQo+IEV4YW1wbGUgb2YgYSBncmFwaCBvYmplY3QgY3JlYXRpb246DQo+ IA0KPiB7ImV0aGRldl9yeF8wXzAiLCBpcHY0LSosIGV0aGRldl90eF8wXyoifQ0KPiANCj4gSW4g dGhlIGFib3ZlIGV4YW1wbGUsIEEgZ3JhcGggb2JqZWN0IHdpbGwgYmUgY3JlYXRlZCB3aXRoIGV0 aGRldiBSeA0KPiBub2RlIG9mIHBvcnQgMCBhbmQgcXVldWUgMCwgYWxsIGlwdjQqIG5vZGVzIGlu IHRoZSBzeXN0ZW0sDQo+IGFuZCBldGhkZXYgdHggbm9kZSBvZiBwb3J0IDAgd2l0aCBhbGwgcXVl dWVzLg0KPiANCj4gDQo+ICMgTXVsdGkgY29yZSBncmFwaCBwcm9jZXNzaW5nDQo+IH5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+IA0KPiBJbiB0aGUgY3VycmVudCBncmFwaCBsaWJyYXJ5 IGltcGxlbWVudGF0aW9uLCBzcGVjaWZpY2FsbHksDQo+IHJ0ZV9ncmFwaF93YWxrKCkgYW5kIHJ0 ZV9ub2RlX2VucXVldWUqIGZhc3QgcGF0aCBBUEkgZnVuY3Rpb25zDQo+IGFyZSBkZXNpZ25lZCB0 byB3b3JrIG9uIHNpbmdsZS1jb3JlIHRvIGhhdmUgYmV0dGVyIHBlcmZvcm1hbmNlLg0KPiBUaGUg ZmFzdCBwYXRoIEFQSSB3b3JrcyBvbiBncmFwaCBvYmplY3QsIFNvIHRoZSBtdWx0aS1jb3JlIGdy YXBoDQo+IHByb2Nlc3Npbmcgc3RyYXRlZ3kgd291bGQgYmUgdG8gY3JlYXRlIGdyYXBoIG9iamVj dCBQRVIgV09SS0VSLg0KPiANCj4gDQo+ICMgSW4gZmFzdCBwYXRoOg0KPiB+fn5+fn5+fn5+fn5+ fn4NCj4gDQo+IFR5cGljYWwgZmFzdC1wYXRoIGNvZGUgbG9va3MgbGlrZSBiZWxvdywgd2hlcmUg dGhlIGFwcGxpY2F0aW9uDQo+IGdldHMgdGhlIGZhc3QtcGF0aCBncmFwaCBvYmplY3QgdGhyb3Vn aCBydGVfZ3JhcGhfbG9va3VwKCkNCj4gb24gdGhlIHdvcmtlciB0aHJlYWQgYW5kIHJ1biB0aGUg cnRlX2dyYXBoX3dhbGsoKSBpbiBhIHRpZ2h0IGxvb3AuDQo+IA0KPiBzdHJ1Y3QgcnRlX2dyYXBo ICpncmFwaCA9IHJ0ZV9ncmFwaF9sb29rdXAoIndvcmtlcjAiKTsNCj4gDQo+IHdoaWxlICghZG9u ZSkgew0KPiAgICAgcnRlX2dyYXBoX3dhbGsoZ3JhcGgpOw0KPiB9DQo+IA0KPiAjIENvbnRleHQg dXBkYXRlIHdoZW4gZ3JhcGggd2FsayBpbiBhY3Rpb24NCj4gfn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+IA0KPiBUaGUgZmFzdC1wYXRoIG9iamVjdCBmb3IgdGhl IG5vZGUgaXMgYHN0cnVjdCBydGVfbm9kZWAuDQo+IA0KPiBJdCBtYXkgYmUgcG9zc2libGUgdGhh dCBpbiBzbG93LXBhdGggb3IgYWZ0ZXIgdGhlIGdyYXBoIHdhbGstaW4gYWN0aW9uLA0KPiB0aGUg dXNlciBuZWVkcyB0byB1cGRhdGUgdGhlIGNvbnRleHQgb2YgdGhlIG5vZGUgaGVuY2UgYWNjZXNz IHRvDQo+IHN0cnVjdCBydGVfbm9kZSAqIG1lbW9yeS4NCj4gDQo+IHJ0ZV9ncmFwaF9mb3JlYWNo X25vZGUoKSwgcnRlX2dyYXBoX25vZGVfZ2V0KCksDQo+IHJ0ZV9ncmFwaF9ub2RlX2dldF9ieV9u YW1lKCkNCj4gQVBJcyBjYW4gYmUgdXNlZCB0byB0byBnZXQgdGhlIHN0cnVjdCBydGVfbm9kZSou IHJ0ZV9ncmFwaF9mb3JlYWNoX25vZGUoKQ0KPiBpdGVyYXRvcg0KPiBmdW5jdGlvbiB3b3JrcyBv biBzdHJ1Y3QgcnRlX2dyYXBoICogZmFzdC1wYXRoIGdyYXBoIG9iamVjdCB3aGlsZSBvdGhlcnMN Cj4gd29ya3Mgb24gZ3JhcGggSUQgb3IgbmFtZS4NCj4gDQo+IA0KPiAjIEdldCB0aGUgbm9kZSBz dGF0aXN0aWNzIHVzaW5nIGdyYXBoIGNsdXN0ZXINCj4gfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+IA0KPiBUaGUgdXNlciBtYXkgbmVlZCB0byBrbm93IHRo ZSBhZ2dyZWdhdGUgc3RhdHMgb2YgdGhlIG5vZGUgYWNyb3NzDQo+IG11bHRpcGxlIGdyYXBoIG9i amVjdHMuIEVzcGVjaWFsbHkgdGhlIHNpdHVhdGlvbiB3aGVyZSBlYWNoDQo+IGdyYXBoIG9iamVj dCBib3VuZCB0byBhIHdvcmtlciB0aHJlYWQuDQo+IA0KPiBJbnRyb2R1Y2VkIGEgZ3JhcGggY2x1 c3RlciBvYmplY3QgZm9yIHN0YXRpc3RpY3MuDQo+IHJ0ZV9ncmFwaF9jbHVzdGVyX3N0YXRzX2Ny ZWF0ZSgpDQo+IHNoYWxsIGJlIHVzZWQgZm9yIGNyZWF0aW5nIGEgZ3JhcGggY2x1c3RlciB3aXRo IG11bHRpcGxlIGdyYXBoIG9iamVjdHMgYW5kDQo+IHJ0ZV9ncmFwaF9jbHVzdGVyX3N0YXRzX2dl dCgpIHRvIGdldCB0aGUgYWdncmVnYXRlIG5vZGUgc3RhdGlzdGljcy4NCj4gDQo+IEFuIGV4YW1w bGUgc3RhdGlzdGljcyBvdXRwdXQgZnJvbSBydGVfZ3JhcGhfY2x1c3Rlcl9zdGF0c19nZXQoKQ0K PiANCj4gKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKw0KPiB8Tm9kZSAg ICAgICB8Y2FsbHMgICAgICAgfG9ianMgICAgICAgICB8cmVhbGxvY19jb3VudCAgfG9ianMvY2Fs bCAgIHxvYmpzL3NlYygxMEU2KQ0KPiB8Y3ljbGVzL2NhbGx8DQo+ICstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLSsNCj4gfG5vZGUwICAgICAgfDEyOTc3NDI0ICAgIHwzMzIy MjIwNTQ0ICAgfDUgICAgICAgICAgICAgIHwyNTYuMDAwICAgICB8MzA0Ny4xNTE4NzINCj4gfDIw LjAwMDAgICAgfA0KPiB8bm9kZTEgICAgICB8MTI5Nzc2NTMgICAgfDMzMjIyNzkxNjggICB8MCAg ICAgICAgICAgICAgfDI1Ni4wMDAgICAgIHwzMDQ3LjIxMDQ5Ng0KPiB8MTcuMDAwMCAgICB8DQo+ IHxub2RlMiAgICAgIHwxMjk3NzY5NiAgICB8MzMyMjI5MDE3NiAgIHwwICAgICAgICAgICAgICB8 MjU2LjAwMCAgICAgfDMwNDcuMjIxNTA0DQo+IHwxNy4wMDAwICAgIHwNCj4gfG5vZGUzICAgICAg fDEyOTc3NzM0ICAgIHwzMzIyMjk5OTA0ICAgfDAgICAgICAgICAgICAgIHwyNTYuMDAwICAgICB8 MzA0Ny4yMzEyMzINCj4gfDE3LjAwMDAgICAgfA0KPiB8bm9kZTQgICAgICB8MTI5Nzc3ODQgICAg fDMzMjIzMTI3MDQgICB8MSAgICAgICAgICAgICAgfDI1Ni4wMDAgICAgIHwzMDQ3LjI0Mzc3Ng0K PiB8MTcuMDAwMCAgICB8DQo+IHxub2RlNSAgICAgIHwxMjk3NzgyNSAgICB8MzMyMjMyMzIwMCAg IHwwICAgICAgICAgICAgICB8MjU2LjAwMCAgICAgfDMwNDcuMjU0NTI4DQo+IHwxNy4wMDAwICAg IHwNCj4gKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKw0KPiANCj4gIyBO b2RlIHdyaXRpbmcgZ3VpZGUgbGluZXMNCj4gfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4g DQo+IFRoZSBwcm9jZXNzKCkgZnVuY3Rpb24gb2YgYSBub2RlIGlzIGZhc3QtcGF0aCBmdW5jdGlv biBhbmQgdGhhdCBuZWVkcyB0byBiZQ0KPiB3cml0dGVuDQo+IGNhcmVmdWxseSB0byBhY2hpZXZl IG1heCBwZXJmb3JtYW5jZS4NCj4gDQo+IEJyb2FkbHkgc3BlYWtpbmcsIHRoZXJlIGFyZSB0d28g ZGlmZmVyZW50IHR5cGVzIG9mIG5vZGVzLg0KPiANCj4gMSkgRmlyc3Qga2luZCBvZiBub2RlcyBh cmUgdGhvc2UgdGhhdCBoYXZlIGEgZml4ZWQgbmV4dF9ub2Rlc1tdIGZvciB0aGUNCj4gY29tcGxl dGUgYnVyc3QgKGxpa2UgZXRoZGV2X3J4LCBldGhkZXZfdHgpIGFuZCBpdCBpcyBzaW1wbGUgdG8g d3JpdGUuDQo+IFByb2Nlc3MoKSBmdW5jdGlvbiBjYW4gbW92ZSB0aGUgb2JqIGJ1cnN0IHRvIHRo ZSBuZXh0IG5vZGUgZWl0aGVyIHVzaW5nDQo+IHJ0ZV9ub2RlX25leHRfc3RyZWFtX21vdmUoKSBv ciB1c2luZyBydGVfbm9kZV9uZXh0X3N0cmVhbV9nZXQoKSBhbmQNCj4gcnRlX25vZGVfbmV4dF9z dHJlYW1fcHV0KCkuDQo+IA0KPiANCj4gMikgVGhlIHNlY29uZCBraW5kIG9mIHN1Y2ggbm9kZSBp cyBgaW50ZXJtZWRpYXRlIG5vZGVzYCB0aGF0IGRlY2lkZSB3aGF0IGlzDQo+IHRoZSBuZXh0X25v ZGVbXQ0KPiB0byBzZW5kIHRvIG9uIGEgcGVyLXBhY2tldCBiYXNpcy4gSW4gdGhlc2Ugbm9kZXMs DQo+IA0KPiBhKSBGaXJzdGx5LCB0aGVyZSBoYXMgdG8gYmUgdGhlIGJlc3QgcG9zc2libGUgcGFj a2V0IHByb2Nlc3NpbmcgbG9naWMuDQo+IGIpIFNlY29uZGx5LCBlYWNoIHBhY2tldCBuZWVkcyB0 byBiZSBxdWV1ZWQgdG8gaXRzIG5leHQgbm9kZS4NCj4gDQo+IEF0IGxlYXN0IG9uIHNvbWUgYXJj aGl0ZWN0dXJlcywgd2UgZ2V0IGFyb3VuZCB+MTAlIG1vcmUgcGVyZm9ybWFuY2UgaWYgd2UNCj4g Y2FuIGF2b2lkIGNvcHlpbmcgb2YNCj4gcGFja2V0IHBvaW50ZXJzIGZyb20gb25lIG5vZGUgdG8g bmV4dCBhcyBpdCBpcyB+PSBtZW1jcHkoQlVSU1RfU0laRSB4DQo+IHNpemVvZih2b2lkICopKSB4 IE5PREVfQ09VTlQuDQo+IA0KPiBUaGlzIGNhbiBiZSBhdm9pZGVkIG9ubHkgaW4gdGhlIGNhc2Ug d2hlcmUgYWxsIHRoZSBwYWNrZXRzIGFyZSBkZXN0aW5lZCB0byB0aGUNCj4gc2FtZQ0KPiBuZXh0 IG5vZGUuIFdlIGNhbGwgdGhpcyBhcyBob21lIHJ1biBjYXNlIGFuZCB3ZSB1c2UNCj4gcnRlX25v ZGVfbmV4dF9zdHJlYW1fbW92ZSgpIHRvDQo+IGp1c3QgbW92ZSBidXJzdCBvZiBvYmplY3QgYXJy YXkgYnkgc3dhcHBpbmcgdGhlIHBvaW50ZXIuIGEuay5hIG1vdmUgc3RyZWFtDQo+IGZyb20gb25l IG5vZGUgdG8gbmV4dCBub2RlDQo+IHdpdGggbGVhc3QgbnVtYmVyIG9mIGN5Y2xlcy4NCj4gDQo+ IEV4YW1wbGUgb2YgaW50ZXJtZWRpYXRlIG5vZGUgaW1wbGVtZW50YXRpb24gd2l0aCBob21lIHJ1 bjoNCj4gYSkgU3RhcnQgd2l0aCBzcGVjdWxhdGlvbiB0aGF0IG5leHRfbm9kZSA9IGN0eC0+bmV4 dF9ub2RlLg0KPiAgICBUaGlzIGNvdWxkIGJlIHRoZSBuZXh0X25vZGUgYXBwbGljYXRpb24gdXNl ZCBpbiB0aGUgcHJldmlvdXMgZnVuY3Rpb24gY2FsbCBvZg0KPiB0aGlzIG5vZGUuDQo+IGIpIEdl dCB0aGUgbmV4dF9ub2RlIHN0cmVhbSBhcnJheSBhbmQgc3BhY2UgdXNpbmcNCj4gICAgcnRlX25v ZGVfbmV4dF9zdHJlYW1fZ2V0KG5leHRfbm9kZSwgJnNwYWNlKQ0KPiBjKSB3aGlsZSBzcGFjZSAh PSAwIGFuZCBuX3BrdHNfbGVmdCAhPSAwLA0KPiAgICBwcmVmZXRjaCBuZXh0IHBrdF9zZXQgYW5k IHByb2Nlc3MgY3VycmVudCBwa3Rfc2V0IHRvIGZpbmQgdGhlaXIgbmV4dCBub2RlDQo+IGQpIGlm IGFsbCB0aGUgbmV4dCBub2RlcyBvZiB0aGUgY3VycmVudCBwa3Rfc2V0IG1hdGNoIHNwZWN1bGF0 ZWQgbmV4dCBub2RlLA0KPiAgICAgICAganVzdCBjb3VudCB0aGVtIGFzIHN1Y2Nlc3NmdWxseSBz cGVjdWxhdGVkKGxhc3Rfc3BlYykgdGlsbCBub3cgYW5kDQo+ICAgICAgICBjb250aW51ZSB0aGUg bG9vcCB3aXRob3V0IGFjdHVhbGx5IG1vdmluZyB0aGVtIHRvIHRoZSBuZXh0IG5vZGUuDQo+ICAg IGVsc2UgaWYgdGhlcmUgaXMgYSBtaXNtYXRjaCwNCj4gICAgICAgIGNvcHkgYWxsIHRoZSBwa3Rf c2V0IHBvaW50ZXJzIHRoYXQgd2VyZSBsYXN0X3NwZWMgYW5kDQo+ICAgICAgICBtb3ZlIHRoZSBj dXJyZW50IHBrdF9zZXQgdG8gdGhlaXIgcmVzcGVjdGl2ZSBuZXh0J3Mgbm9kZXMgdXNpbmcNCj4g ICAgICAgIHJ0ZV9lbnF1ZXVlX25leHRfeDEoKS4gQWxzbyBvbmUgb2YgdGhlIG5leHRfbm9kZSBj YW4gYmUgdXBkYXRlZCBhcw0KPiAgICAgICAgc3BlY3VsYXRlZCBuZXh0X25vZGUgaWYgaXQgaXMg bW9yZSBwcm9iYWJsZS4gQWxzbyBzZXQgbGFzdF9zcGVjID0gMA0KPiBlKSBpZiBuX3BrdHNfbGVm dCAhPSAwIGFuZCBzcGFjZSAhPSAwDQo+ICAgICAgIGdvdG8gYykgYXMgdGhlcmUgaXMgc3BhY2Ug aW4gdGhlIHNwZWN1bGF0ZWQgbmV4dF9ub2RlLg0KPiBmKSBpZiBsYXN0X3NwZWMgPT0gbl9wa3Rz X2xlZnQsDQo+ICAgICAgIHRoZW4gd2Ugc3VjY2Vzc2Z1bGx5IHNwZWN1bGF0ZWQgYWxsIHRoZSBw YWNrZXRzIHRvIHJpZ2h0IG5leHQgbm9kZS4NCj4gICAgICAgSnVzdCBjYWxsIHJ0ZV9ub2RlX25l eHRfc3RyZWFtX21vdmUobm9kZSwgbmV4dF9ub2RlKSB0byBqdXN0IG1vdmUgdGhlDQo+ICAgICAg IHN0cmVhbS9vYmogYXJyYXkgdG8gbmV4dCBub2RlLiBUaGlzIGlzIGhvbWUgcnVuIHdoZXJlIHdl IGF2b2lkZWQNCj4gICAgICAgbWVtY3B5IG9mIGJ1ZmZlciBwb2ludGVycyB0byBuZXh0IG5vZGUu DQo+IGcpIGlmIHNwYWNlID0gMCBhbmQgbl9wa3RzX2xlZnQgIT0gMA0KPiAgICAgICBnb3RvIGIp DQo+IGgpIFVwZGF0ZSB0aGUgY3R4LT5uZXh0X25vZGUgd2l0aCBtb3JlIHByb2JhYmxlIG5leHQg bm9kZS4NCj4gDQo+ICMgSW4tdHJlZSBub2RlIGRvY3VtZW50YXRpb24NCj4gfn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fg0KPiBhKSBsaWJydGVfbm9kZS9ldGhkZXZfcnguYzoNCj4gICAgIFRo aXMgbm9kZSBkb2VzIHJ0ZV9ldGhfcnhfYnVyc3QoKSBpbnRvIHN0cmVhbSBidWZmZXIgYWNxdWly ZWQgdXNpbmcNCj4gICAgIHJ0ZV9ub2RlX25leHRfc3RyZWFtX2dldCgpIGFuZCBkb2VzIHJ0ZV9u b2RlX25leHRfc3RyZWFtX3B1dChjb3VudCkNCj4gICAgIG9ubHkgd2hlbiB0aGVyZSBhcmUgcGFj a2V0cyByZWNlaXZlZC4gRWFjaCBydGVfbm9kZSB3b3JrcyBvbiBvbmx5IG9uDQo+ICAgICBvbmUg cnggcG9ydCBhbmQgcXVldWUgdGhhdCBpdCBnZXRzIGZyb20gbm9kZS0+Y29udGV4dC4NCj4gICAg IEZvciBlYWNoIChwb3J0IFgsIHJ4X3F1ZXVlIFkpLCBhIHJ0ZV9ub2RlIGlzIGNsb25lZCBmcm9t DQo+IGV0aGRldl9yeF9iYXNlX25vZGUNCj4gICAgIGFzICJldGhkZXZfcngtWC1ZIiBpbiBydGVf bm9kZV9ldGhfY29uZmlnKCkgYWxvbmcgd2l0aCB1cGRhdGluZw0KPiAgICAgbm9kZS0+Y29udGV4 dC4gRWFjaCBncmFwaCBuZWVkcyB0byBiZSBhc3NvY2lhdGVkIHdpdGggYSB1bmlxdWUNCj4gICAg IHJ0ZV9ub2RlIGZvciBhIChwb3J0LCByeF9xdWV1ZSkuDQo+IA0KPiBiKSBsaWJydGVfbm9kZS9l dGhkZXZfdHguYzoNCj4gICAgIFRoaXMgbm9kZSBkb2VzIHJ0ZV9ldGhfdHhfYnVyc3QoKSBmb3Ig YSBidXJzdCBvZiBvYmpzIHJlY2VpdmVkIGJ5IGl0Lg0KPiAgICAgSXQgc2VuZHMgdGhlIGJ1cnN0 IHRvIGEgZml4ZWQgVHggUG9ydCBhbmQgUXVldWUgaW5mb3JtYXRpb24gZnJvbQ0KPiAgICAgbm9k ZS0+Y29udGV4dC4gRm9yIGVhY2ggKHBvcnQgWCksIHRoaXMgcnRlX25vZGUgaXMgY2xvbmVkIGZy b20NCj4gICAgIGV0aGRldl90eF9ub2RlX2Jhc2UgYXMgImV0aGRldl90eC1YIiBpbiBydGVfbm9k ZV9ldGhfY29uZmlnKCkNCj4gICAgIGFsb25nIHdpdGggdXBkYXRpbmcgbm9kZS0+Y29udGV4dC4N Cj4gCVNpbmNlIGVhY2ggZ3JhcGggZG9lc24ndCBuZWVkIG1vcmUgdGhhbiBvbmUgVHhxLCBwZXIg cG9ydCwNCj4gCWEgVHhxIGlzIGFzc2lnbmVkIGJhc2VkIG9uIGdyYXBoIGlkIHRvIGVhY2ggcnRl X25vZGUgaW5zdGFuY2UuDQo+IAlFYWNoIGdyYXBoIG5lZWRzIHRvIGJlIGFzc29jaWF0ZWQgd2l0 aCBhIHJ0ZV9ub2RlIGZvciBlYWNoIChwb3J0KS4NCj4gDQo+IGMpIGxpYnJ0ZV9ub2RlL3BrdF9k cm9wLmM6DQo+ICAgICBUaGlzIG5vZGUgZnJlZXMgYWxsIHRoZSBvYmplY3RzIHRoYXQgYXJlIHBh c3NlZCB0byBpdC4NCj4gDQo+IGQpIGxpYnJ0ZV9ub2RlL2lwNF9sb29rdXAuYzoNCj4gICAgIFRo aXMgbm9kZSBpcyBhbiBpbnRlcm1lZGlhdGUgbm9kZSB0aGF0IGRvZXMgbHBtIGxvb2t1cCBmb3Ig dGhlIHJlY2VpdmVkDQo+IAlpcHY0IHBhY2tldHMgYW5kIHRoZSByZXN1bHQgZGV0ZXJtaW5lcyBl YWNoIHBhY2tldHMgbmV4dCBub2RlLg0KPiAgICAgICBhKSBPbiBzdWNjZXNzZnVsIGxwbSBsb29r dXAsIHRoZSByZXN1bHQgY29udGFpbnMgdGhlIG5leF9ub2RlIGlkIGFuZA0KPiAgICAgICAgICBu ZXh0LWhvcCBpZCB3aXRoIHdoaWNoIHRoZSBwYWNrZXQgbmVlZHMgdG8gYmUgZnVydGhlciBwcm9j ZXNzZWQuDQo+ICAgICAgIGIpIE9uIGxwbSBsb29rdXAgZmFpbHVyZSwgb2JqZWN0cyBhcmUgcmVk aXJlY3RlZCB0byBwa3RfZHJvcCBub2RlLg0KPiAgICAgICBydGVfbm9kZV9pcDRfcm91dGVfYWRk KCkgaXMgY29udHJvbCBwYXRoIEFQSSB0byBhZGQgaXB2NCByb3V0ZXMuDQo+ICAgICAgIFRvIGFj aGlldmUgaG9tZSBydW4sIHdlIHVzZSBydGVfbm9kZV9zdHJlYW1fbW92ZSgpIGFzIG1lbnRpb25l ZCBpbg0KPiBhYm92ZQ0KPiAgICAgICBzZWN0aW9ucy4NCj4gDQo+IGUpIGxpYnJ0ZV9ub2RlL2lw NF9yZXdyaXRlLmM6DQo+ICAgICAgIFRoaXMgbm9kZSBnZXRzIHBhY2tldHMgZnJvbSBpcDRfbG9v a3VwIG5vZGUgd2l0aCBuZXh0LWhvcCBpZCBmb3IgZWFjaA0KPiAgICAgICBwYWNrZXQgaXMgZW1i ZWRkZWQgaW4gcnRlX25vZGVfbWJ1Zl9wcml2MShtYnVmKS0+bmguIFRoaXMgaWQgaXMgdXNlZA0K PiAgICAgICB0byBkZXRlcm1pbmUgdGhlIEwyIGhlYWRlciB0byBiZSB3cml0dGVuIHRvIHRoZSBw a3QgYmVmb3JlIHNlbmRpbmcNCj4gICAgICAgdGhlIHBrdCBvdXQgdG8gYSBwYXJ0aWN1bGFyIGV0 aGRldl90eCBub2RlLg0KPiAgICAgICBydGVfbm9kZV9pcDRfcmV3cml0ZV9hZGQoKSBpcyBjb250 cm9sIHBhdGggQVBJIHRvIGFkZCBuZXh0LWhvcCBpbmZvLg0KPiANCj4gSmVyaW4gSmFjb2IgKDEp Og0KPiAgIGdyYXBoOiBpbnRyb2R1Y2UgZ3JhcGggc3Vic3lzdGVtDQo+IA0KPiBLaXJhbiBLdW1h ciBLICgxKToNCj4gICB0ZXN0OiBhZGQgZ3JhcGggZnVuY3Rpb25hbCB0ZXN0cw0KPiANCj4gTml0 aGluIERhYmlscHVyYW0gKDIpOg0KPiAgIG5vZGU6IGFkZCBwYWNrZXQgcHJvY2Vzc2luZyBub2Rl cw0KPiAgIGV4YW1wbGUvbDNmd2RfZ3JhcGg6IGwzZndkIHVzaW5nIGdyYXBoIGFyY2hpdGVjdHVy ZQ0KPiANCj4gUGF2YW4gTmlraGlsZXNoICgxKToNCj4gICB0ZXN0OiBhZGQgZ3JhcGggcGVyZm9y bWFuY2UgdGVzdCBjYXNlcy4NCj4gDQo+ICBhcHAvdGVzdC9NYWtlZmlsZSAgICAgICAgICAgICAg ICAgICAgICB8ICAgIDUgKw0KPiAgYXBwL3Rlc3QvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAg ICAgfCAgIDEwICstDQo+ICBhcHAvdGVzdC90ZXN0X2dyYXBoLmMgICAgICAgICAgICAgICAgICB8 ICA4MjAgKysrKysrKysrKysrKysrKysNCj4gIGFwcC90ZXN0L3Rlc3RfZ3JhcGhfcGVyZi5jICAg ICAgICAgICAgIHwgIDg4OCArKysrKysrKysrKysrKysrKysrDQo+ICBjb25maWcvY29tbW9uX2Jh c2UgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKw0KPiAgY29uZmlnL3J0ZV9jb25maWcuaCAg ICAgICAgICAgICAgICAgICAgfCAgICA0ICsNCj4gIGV4YW1wbGVzL01ha2VmaWxlICAgICAgICAg ICAgICAgICAgICAgIHwgICAgMyArDQo+ICBleGFtcGxlcy9sM2Z3ZC1ncmFwaC9NYWtlZmlsZSAg ICAgICAgICB8ICAgNTggKysNCj4gIGV4YW1wbGVzL2wzZndkLWdyYXBoL21haW4uYyAgICAgICAg ICAgIHwgMTEzMSArKysrKysrKysrKysrKysrKysrKysrKysNCj4gIGV4YW1wbGVzL2wzZndkLWdy YXBoL21lc29uLmJ1aWxkICAgICAgIHwgICAxMyArDQo+ICBleGFtcGxlcy9tZXNvbi5idWlsZCAg ICAgICAgICAgICAgICAgICB8ICAgIDYgKy0NCj4gIGxpYi9NYWtlZmlsZSAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgNiArDQo+ICBsaWIvbGlicnRlX2dyYXBoL01ha2VmaWxlICAgICAg ICAgICAgICB8ICAgMjggKw0KPiAgbGliL2xpYnJ0ZV9ncmFwaC9ncmFwaC5jICAgICAgICAgICAg ICAgfCAgNTc4ICsrKysrKysrKysrKw0KPiAgbGliL2xpYnJ0ZV9ncmFwaC9ncmFwaF9kZWJ1Zy5j ICAgICAgICAgfCAgIDgxICsrDQo+ICBsaWIvbGlicnRlX2dyYXBoL2dyYXBoX29wcy5jICAgICAg ICAgICB8ICAxNjMgKysrKw0KPiAgbGliL2xpYnJ0ZV9ncmFwaC9ncmFwaF9wb3B1bGF0ZS5jICAg ICAgfCAgMjI0ICsrKysrDQo+ICBsaWIvbGlicnRlX2dyYXBoL2dyYXBoX3ByaXZhdGUuaCAgICAg ICB8ICAxMTMgKysrDQo+ICBsaWIvbGlicnRlX2dyYXBoL2dyYXBoX3N0YXRzLmMgICAgICAgICB8 ICAzOTYgKysrKysrKysrDQo+ICBsaWIvbGlicnRlX2dyYXBoL21lc29uLmJ1aWxkICAgICAgICAg ICB8ICAgMTEgKw0KPiAgbGliL2xpYnJ0ZV9ncmFwaC9ub2RlLmMgICAgICAgICAgICAgICAgfCAg NDE5ICsrKysrKysrKw0KPiAgbGliL2xpYnJ0ZV9ncmFwaC9ydGVfZ3JhcGguaCAgICAgICAgICAg fCAgMjc3ICsrKysrKw0KPiAgbGliL2xpYnJ0ZV9ncmFwaC9ydGVfZ3JhcGhfdmVyc2lvbi5tYXAg fCAgIDQ2ICsNCj4gIGxpYi9saWJydGVfZ3JhcGgvcnRlX2dyYXBoX3dvcmtlci5oICAgIHwgIDI4 MCArKysrKysNCj4gIGxpYi9saWJydGVfbm9kZS9NYWtlZmlsZSAgICAgICAgICAgICAgIHwgICAz MCArDQo+ICBsaWIvbGlicnRlX25vZGUvZXRoZGV2X2N0cmwuYyAgICAgICAgICB8ICAxMDYgKysr DQo+ICBsaWIvbGlicnRlX25vZGUvZXRoZGV2X3J4LmMgICAgICAgICAgICB8ICAyMTggKysrKysN Cj4gIGxpYi9saWJydGVfbm9kZS9ldGhkZXZfcnguaCAgICAgICAgICAgIHwgICAxNyArDQo+ICBs aWIvbGlicnRlX25vZGUvZXRoZGV2X3J4X3ByaXYuaCAgICAgICB8ICAgNDUgKw0KPiAgbGliL2xp YnJ0ZV9ub2RlL2V0aGRldl90eC5jICAgICAgICAgICAgfCAgIDc0ICsrDQo+ICBsaWIvbGlicnRl X25vZGUvZXRoZGV2X3R4X3ByaXYuaCAgICAgICB8ICAgMzMgKw0KPiAgbGliL2xpYnJ0ZV9ub2Rl L2lwNF9sb29rdXAuYyAgICAgICAgICAgfCAgNjU3ICsrKysrKysrKysrKysrDQo+ICBsaWIvbGli cnRlX25vZGUvaXA0X2xvb2t1cF9wcml2LmggICAgICB8ICAgMTcgKw0KPiAgbGliL2xpYnJ0ZV9u b2RlL2lwNF9yZXdyaXRlLmMgICAgICAgICAgfCAgMzQwICsrKysrKysNCj4gIGxpYi9saWJydGVf bm9kZS9pcDRfcmV3cml0ZV9wcml2LmggICAgIHwgICA0NCArDQo+ICBsaWIvbGlicnRlX25vZGUv bG9nLmMgICAgICAgICAgICAgICAgICB8ICAgMTQgKw0KPiAgbGliL2xpYnJ0ZV9ub2RlL21lc29u LmJ1aWxkICAgICAgICAgICAgfCAgICA4ICsNCj4gIGxpYi9saWJydGVfbm9kZS9ub2RlX3ByaXZh dGUuaCAgICAgICAgIHwgICA2MSArKw0KPiAgbGliL2xpYnJ0ZV9ub2RlL251bGwuYyAgICAgICAg ICAgICAgICAgfCAgIDIzICsNCj4gIGxpYi9saWJydGVfbm9kZS9wa3RfZHJvcC5jICAgICAgICAg ICAgIHwgICAyNiArDQo+ICBsaWIvbGlicnRlX25vZGUvcnRlX25vZGVfZXRoX2FwaS5oICAgICB8 ICAgMzEgKw0KPiAgbGliL2xpYnJ0ZV9ub2RlL3J0ZV9ub2RlX2lwNF9hcGkuaCAgICAgfCAgIDMz ICsNCj4gIGxpYi9saWJydGVfbm9kZS9ydGVfbm9kZV92ZXJzaW9uLm1hcCAgIHwgICAgOSArDQo+ ICBsaWIvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0NCj4gIG1l c29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArDQo+ICBtay9ydGUu YXBwLm1rICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKw0KPiAgNDYgZmlsZXMgY2hh bmdlZCwgNzM2MiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0KPiAgY3JlYXRlIG1vZGUg MTAwNjQ0IGFwcC90ZXN0L3Rlc3RfZ3JhcGguYw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFwcC90 ZXN0L3Rlc3RfZ3JhcGhfcGVyZi5jDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZXhhbXBsZXMvbDNm d2QtZ3JhcGgvTWFrZWZpbGUNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBleGFtcGxlcy9sM2Z3ZC1n cmFwaC9tYWluLmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBleGFtcGxlcy9sM2Z3ZC1ncmFwaC9t ZXNvbi5idWlsZA0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9saWJydGVfZ3JhcGgvTWFrZWZp bGUNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRlX2dyYXBoL2dyYXBoLmMNCj4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRlX2dyYXBoL2dyYXBoX2RlYnVnLmMNCj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRlX2dyYXBoL2dyYXBoX29wcy5jDQo+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgbGliL2xpYnJ0ZV9ncmFwaC9ncmFwaF9wb3B1bGF0ZS5jDQo+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgbGliL2xpYnJ0ZV9ncmFwaC9ncmFwaF9wcml2YXRlLmgNCj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBsaWIvbGlicnRlX2dyYXBoL2dyYXBoX3N0YXRzLmMNCj4gIGNyZWF0ZSBtb2RlIDEw MDY0NCBsaWIvbGlicnRlX2dyYXBoL21lc29uLmJ1aWxkDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQg bGliL2xpYnJ0ZV9ncmFwaC9ub2RlLmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRl X2dyYXBoL3J0ZV9ncmFwaC5oDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9ncmFw aC9ydGVfZ3JhcGhfdmVyc2lvbi5tYXANCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRl X2dyYXBoL3J0ZV9ncmFwaF93b3JrZXIuaA0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9saWJy dGVfbm9kZS9NYWtlZmlsZQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9saWJydGVfbm9kZS9l dGhkZXZfY3RybC5jDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9ub2RlL2V0aGRl dl9yeC5jDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9ub2RlL2V0aGRldl9yeC5o DQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9ub2RlL2V0aGRldl9yeF9wcml2LmgN Cj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRlX25vZGUvZXRoZGV2X3R4LmMNCj4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRlX25vZGUvZXRoZGV2X3R4X3ByaXYuaA0KPiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGxpYi9saWJydGVfbm9kZS9pcDRfbG9va3VwLmMNCj4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBsaWIvbGlicnRlX25vZGUvaXA0X2xvb2t1cF9wcml2LmgNCj4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBsaWIvbGlicnRlX25vZGUvaXA0X3Jld3JpdGUuYw0KPiAgY3JlYXRlIG1vZGUg MTAwNjQ0IGxpYi9saWJydGVfbm9kZS9pcDRfcmV3cml0ZV9wcml2LmgNCj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBsaWIvbGlicnRlX25vZGUvbG9nLmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIv bGlicnRlX25vZGUvbWVzb24uYnVpbGQNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRl X25vZGUvbm9kZV9wcml2YXRlLmgNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRlX25v ZGUvbnVsbC5jDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9ub2RlL3BrdF9kcm9w LmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRlX25vZGUvcnRlX25vZGVfZXRoX2Fw aS5oDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9ub2RlL3J0ZV9ub2RlX2lwNF9h cGkuaA0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9saWJydGVfbm9kZS9ydGVfbm9kZV92ZXJz aW9uLm1hcA0KPiANCj4gLS0NCj4gMi4yNC4xDQoNCg==