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 X-Spam-Level: X-Spam-Status: No, score=-14.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, WEIRD_QUOTING autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9939DC388F7 for ; Wed, 28 Oct 2020 16:51:43 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9BADE246CD for ; Wed, 28 Oct 2020 16:51:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=nutanix.com header.i=@nutanix.com header.b="1s0QXKfw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9BADE246CD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nutanix.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:40510 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kXofl-0002Qa-52 for qemu-devel@archiver.kernel.org; Wed, 28 Oct 2020 12:51:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38166) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kXoWF-0006x0-6A for qemu-devel@nongnu.org; Wed, 28 Oct 2020 12:41:51 -0400 Received: from mx0b-002c1b01.pphosted.com ([148.163.155.12]:48072) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kXoW7-0001H9-9t for qemu-devel@nongnu.org; Wed, 28 Oct 2020 12:41:49 -0400 Received: from pps.filterd (m0127841.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 09SGbmhW011950; Wed, 28 Oct 2020 09:41:36 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=proofpoint20171006; bh=nmqgO5ZhtLB0x88yVtelC3HB1DYL1Y0XgW4AmsRwKKo=; b=1s0QXKfwGvxeSLyKg8y5KFi6R+pJ5kwGD6r6lHd5ErkrqiJ1vaf9A+52GYrj+GPackPB VQ463vcD9v0ELzJ0CNEg5wqLEWG7625eTAErX2U/Cht078Uwz0A1gX4lw9iN+bRjn+Vk zYi7WKeRETNFt3ZFrhi5bVfJn2jkleh+Lghz9CxIM40pBYy6auPhFFy/irTsNAbhJ6LF ldTd55IFOQ+MomcltMu9hJ7rO/Kh983qld2K4LJnQ63XSyxAomIsNYOH5Rc8oxBk2KiP s+KZu1haLG+SqZWyAw6PeXWCJZ0MvoJnQ/QIT13YMg/tqAsJrkHw5nXC0PuAGJJUe4ZJ fQ== Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2107.outbound.protection.outlook.com [104.47.55.107]) by mx0b-002c1b01.pphosted.com with ESMTP id 34cht814c3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 28 Oct 2020 09:41:35 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WrSAiWkiubpKPe/8Up/TpTH30nRLGb2KgmDG8ia31Rm1KJK6r7RpLAZNLsQnPTG8Fj8TZxn6v0CLgDZqyisEAqq9qYzmacqshabP9k2kmpL2WMq6pSqFq+KSGsQH4XAhGMQS9zbo0Nufwc7NBJz8EyGn5mMTzxhxeNiJ9RykVKXIfOadhXNGMBcdj+ogfWS0MdifO5YfKTEOfm6BukhOHg3Je8m9on4f0vhih2T/ScPqb4Mq+5I0v3RAEWnNzCxy/onJhKsD4s6d8UoL+wrQJEdAJ7GiL0pDWvf8e6j0EGhxSyx6a+uc/Q6Vblkl+sr9ZjUQ9gJq2mjB45nNyur9mw== 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=nmqgO5ZhtLB0x88yVtelC3HB1DYL1Y0XgW4AmsRwKKo=; b=FlkPEUhWHBfRsVTcDtMPtNTeASJ60Y+heAzVUd31CYEvxp4hN69SpFzojOW2QSVT03aGZi9tDcghPp623nMZpqc4hve5Dh3rgEPHPzHHtjXG0z6sf7481a6warOKqHIFyEFG56DS8/ym0u9hb2bfUSLF8uWnIPlWXk1JnORIF8ju/QPUYYZr2qDNSEdHwn3tlvEQt11KhVWS74DX8KaljpTg5pS4Pw4ypJbBGmIj98RzrVkI4T+4TeWv+1ASJ19BrXAkbChBwuJbOKortZXoOtYblk4c27J1SeUXkTNN6B3JvYBbUHm9ssWFVbmCXdyQBOYjzL8qAZR17LqsHzPpUw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none Received: from SN1PR02MB3725.namprd02.prod.outlook.com (2603:10b6:802:32::10) by SA0PR02MB7178.namprd02.prod.outlook.com (2603:10b6:806:ed::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.18; Wed, 28 Oct 2020 16:41:32 +0000 Received: from SN1PR02MB3725.namprd02.prod.outlook.com ([fe80::2849:50fb:b1b2:cc24]) by SN1PR02MB3725.namprd02.prod.outlook.com ([fe80::2849:50fb:b1b2:cc24%3]) with mapi id 15.20.3499.018; Wed, 28 Oct 2020 16:41:32 +0000 From: Thanos Makatos To: Thanos Makatos , "qemu-devel@nongnu.org" Subject: RE: [PATCH v5] introduce vfio-user protocol specification Thread-Topic: [PATCH v5] introduce vfio-user protocol specification Thread-Index: AQHWrUTVjUvP5pU8VEG/kGG39PR4hqmtNlfQ Date: Wed, 28 Oct 2020 16:41:31 +0000 Message-ID: References: <1594984851-59327-1-git-send-email-thanos.makatos@nutanix.com> <20201028161005.115810-1-thanos.makatos@nutanix.com> In-Reply-To: <20201028161005.115810-1-thanos.makatos@nutanix.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: nutanix.com; dkim=none (message not signed) header.d=none;nutanix.com; dmarc=none action=none header.from=nutanix.com; x-originating-ip: [78.149.9.252] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 71b2afe1-52ca-4531-a231-08d87b605378 x-ms-traffictypediagnostic: SA0PR02MB7178: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-proofpoint-crosstenant: true x-ms-oob-tlc-oobclassifiers: OLM:3968; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qyR99DN0zjX5go7YjTckxX01UuSUhQl/5ivqZuZ9TCqPOgQx0OyQklnxQCSePuwMfeR2g5yi/ok14ExSksTpzeSQYW1x+7Cx7dwqkSdTjWxWUDDuaWyvl6EHD6cbFCcc/0isLRQwx+JteymVEllWs1sSh6pYS0rD9WNjnR7l3/7RenIT6BChr8DpZmlxyg0rFHmX/1EYo/hYXU7pgZlirFGsVwBUTuPHYAgnU9+BYan12ImKa9DQG8y5iWmGoUkeUMVd/aReJfJYOZVg/cSkCItVjeHOCKO0ROSWst8c4GBei0PQbv/FrJwWQxtl5CogheSu0Yr/F6T9uorkKC/2WP/FVtILdabwbdyQvPVO3ZJH8FLFMS1oVYh+0yUFwM8rf5mfW0Yj72Ful0SG6jxLfSss8t3MbTDVUyuAlmwQ6so/HJRP0ljM5heoBxxWkxEAQqfkIXUzSIz4q0qiZNXRaQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN1PR02MB3725.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(39860400002)(396003)(376002)(136003)(366004)(346002)(5660300002)(44832011)(83380400001)(19627235002)(64756008)(66476007)(33656002)(66556008)(66946007)(76116006)(66446008)(26005)(186003)(9686003)(4326008)(52536014)(8676002)(2906002)(55236004)(6506007)(53546011)(55016002)(110136005)(7416002)(7696005)(54906003)(8936002)(30864003)(86362001)(71200400001)(478600001)(316002)(559001)(579004)(357404004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: EpLGMTR4h/3YD3P9QB7KjqChWOGBM/k2gOZzHiLoR4al8rsXcYkYKBxm2u9SgHn+deZBzCGeOpE338mZvG7RQpmtOGZO5TSnPgW7XGLgw/U+e6siucLf6Fuf+mpfAW3hd78753zt/ytoATjFDWSQUZTJ0JUHdzEGSRvmvrwbhxzS+VKGr5ibY30tGuy7j5qyWDKazMUcm6eUMWDNi3h0UjRLWcnJZoVxXTGWsDdYLI0mZNomC5AeG4xPrpSXrTlNWboLyZZX9+mTx0DVU98pfjCaN0vik+PPlT3z9hSMzY9zSdv+vsU8njYmJpLL04UpyjA/9vwrQO1A/jdJl/HV9QHYxLT66056sNqfC6HaeTtIRVs8Piop/YNR+OF98NtENFgqo+lpQ2+bCpEb/zaD6NI2CKZJcO0ZMKMzZByYLuRcYknWsxIRF66HIH0S+qMxOH5jN+P/XofDLy8Bpi7ExLMYwu5HAVv9boe3VNdtmF2zVj2yqJlerUA3RYpN9Jg4vwij058Bb9lME56Gai1l9DtRLhCveF5YY8eEXmluXhEhjyuuAawj+U/0X/0lPuI45w5cDsr0kehxPeW6qsqrJvPHlSCT7hbNTkaRCwzjh9emUTBn9fIBcT/4DCSJef9gYKM9AdOK5PrK7mT63a1NsA== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN1PR02MB3725.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 71b2afe1-52ca-4531-a231-08d87b605378 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Oct 2020 16:41:31.7808 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: DXoSG7Tne1JipmJdxsDt6AUo+ypb0INFbhoAxAX8ndTh0SmJFF35TxfZWHnS7EBSgrHMzuJYrqCojNPv47aXAFHKl1QynVefxSeG3sURPlA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR02MB7178 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.312, 18.0.737 definitions=2020-10-28_08:2020-10-28, 2020-10-28 signatures=0 X-Proofpoint-Spam-Reason: safe Received-SPF: pass client-ip=148.163.155.12; envelope-from=thanos.makatos@nutanix.com; helo=mx0b-002c1b01.pphosted.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/28 12:41:41 X-ACL-Warn: Detected OS = Linux 3.x [generic] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, WEIRD_QUOTING=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "benjamin.walker@intel.com" , Elena Ufimtseva , "tomassetti.andrea@gmail.com" , "john.g.johnson@oracle.com" , "jag.raman@oracle.com" , Swapnil Ingle , "james.r.harris@intel.com" , "konrad.wilk@oracle.com" , "yuvalkashtan@gmail.com" , "dgilbert@redhat.com" , Raphael Norwitz , "ismael@linux.com" , "alex.williamson@redhat.com" , Thanos Makatos , "Kanth.Ghatraju@oracle.com" , Stefan Hajnoczi , Felipe Franciosi , "xiuchun.lu@intel.com" , =?utf-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= , "tina.zhang@intel.com" , "changpeng.liu@intel.com" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" RllJIGhlcmUncyB2NSBvZiB0aGUgdmZpby11c2VyIHByb3RvY29sLCBteSAtLWNjIGluIGdpdCBz ZW5kLWVtYWlsIGdvdCBtZXNzZWQgdXAgc29tZWhvdw0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+IEZyb206IFFlbXUtZGV2ZWwgPHFlbXUtZGV2ZWwtDQo+IGJvdW5jZXMrdGhhbm9z Lm1ha2F0b3M9bnV0YW5peC5jb21Abm9uZ251Lm9yZz4gT24gQmVoYWxmIE9mIFRoYW5vcw0KPiBN YWthdG9zDQo+IFNlbnQ6IDI4IE9jdG9iZXIgMjAyMCAxNjoxMA0KPiBUbzogcWVtdS1kZXZlbEBu b25nbnUub3JnDQo+IFN1YmplY3Q6IFtQQVRDSCB2NV0gaW50cm9kdWNlIHZmaW8tdXNlciBwcm90 b2NvbCBzcGVjaWZpY2F0aW9uDQo+IA0KPiBUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIHZmaW8t dXNlciBwcm90b2NvbCBzcGVjaWZpY2F0aW9uIChmb3JtZXJseQ0KPiBrbm93biBhcyBWRklPLW92 ZXItc29ja2V0KSwgd2hpY2ggaXMgZGVzaWduZWQgdG8gYWxsb3cgZGV2aWNlcyB0byBiZQ0KPiBl bXVsYXRlZCBvdXRzaWRlIFFFTVUsIGluIGEgc2VwYXJhdGUgcHJvY2Vzcy4gdmZpby11c2VyIHJl dXNlcyB0aGUNCj4gZXhpc3RpbmcgVkZJTyBkZWZpbmVzLCBzdHJ1Y3RzIGFuZCBjb25jZXB0cy4N Cj4gDQo+IEl0IGhhcyBiZWVuIGVhcmxpZXIgZGlzY3Vzc2VkIGFzIGFuIFJGQyBpbjoNCj4gIlJG QzogdXNlIFZGSU8gb3ZlciBhIFVOSVggZG9tYWluIHNvY2tldCB0byBpbXBsZW1lbnQgZGV2aWNl IG9mZmxvYWRpbmciDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBKb2huIEcgSm9obnNvbiA8am9obi5n LmpvaG5zb25Ab3JhY2xlLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogVGhhbm9zIE1ha2F0b3MgPHRo YW5vcy5tYWthdG9zQG51dGFuaXguY29tPg0KPiANCj4gLS0tDQo+IA0KPiBDaGFuZ2VkIHNpbmNl IHYxOg0KPiAgICogZml4IGNvZGluZyBzdHlsZSBpc3N1ZXMNCj4gICAqIHVwZGF0ZSBNQUlOVEFJ TkVSUyBmb3IgVkZJTy1vdmVyLXNvY2tldA0KPiAgICogYWRkIHZmaW8tb3Zlci1zb2NrZXQgdG8g VG9DDQo+IA0KPiBDaGFuZ2VkIHNpbmNlIHYyOg0KPiAgICogZml4IHdoaXRlc3BhY2UNCj4gDQo+ IENoYW5nZWQgc2luY2UgdjM6DQo+ICAgKiByZW5hbWUgcHJvdG9jb2wgdG8gdmZpby11c2VyDQo+ ICAgKiBhZGQgdGFibGUgb2YgY29udGVudHMNCj4gICAqIGZpeCBVbmljb2RlIHByb2JsZW1zDQo+ ICAgKiBmaXggdHlwb3MgYW5kIHZhcmlvdXMgcmVTdHJ1Y3R1cmVkVGV4dCBpc3N1ZXMNCj4gICAq IHZhcmlvdXMgc3R5bGlzdGljIGltcHJvdmVtZW50cw0KPiAgICogYWRkIGJhY2tlbmQgcHJvZ3Jh bSBjb252ZW50aW9ucw0KPiAgICogcmV3cml0ZSBwYXJ0IG9mIGludHJvLCBkcm9wIFFFTVUtc3Bl Y2lmaWMgc3R1ZmYNCj4gICAqIGRyb3AgUUVNVS1zcGVjaWZpYyBwYXJhZ3JhcGggYWJvdXQgaW1w bGVtZW50YXRpb24NCj4gICAqIGV4cGxhaW4gdGhhdCBwYXNzaW5nIG9mIEZEcyBpc24ndCBuZWNl c3NhcnkNCj4gICAqIG1pbm9yIGltcHJvdmVtZW50cyBpbiB0aGUgVkZJTyBzZWN0aW9uDQo+ICAg KiB2YXJpb3VzIHRleHQgc3Vic3RpdHV0aW9ucyBmb3IgdGhlIHNha2Ugb2YgY29uc2lzdGVuY3kN Cj4gICAqIGRyb3AgcGFyYWdyYXBoIGFib3V0IGNsaWVudCBhbmQgc2VydmVyLCBhbHJlYWR5IGV4 cGxhaW5lZCBpbiBpbnRybw0KPiAgICogZHJvcCBkZXZpY2UgSUQNCj4gICAqIGRyb3AgdHlwZSBm cm9tIHZlcnNpb24NCj4gICAqIGVsYWJvcmF0ZSBvbiByZXF1ZXN0IGNvbmN1cnJlbmN5DQo+ICAg KiBjb252ZXJ0IHNvbWUgaW5lc3NlbnRpYWwgcGFyYWdyYXBocyBpbnRvIG5vdGVzDQo+ICAgKiBl eHBsYWluIHdoeSBzb21lIGV4aXN0aW5nIFZGSU8gZGVmaW5lcyBjYW5ub3QgYmUgcmV1c2VkDQo+ ICAgKiBleHBsYWluIGhvdyB0byBtYWtlIGNoYW5nZXMgdG8gdGhlIHByb3RvY29sDQo+ICAgKiBp bXByb3ZlIHRleHQgb2YgRE1BIG1hcA0KPiAgICogcmV3b3JkIGNvbW1lbnQgYWJvdXQgZXhpc3Rp bmcgVkZJTyBjb21tYW5kcw0KPiAgICogYWRkIHJlZmVyZW5jZSB0byBWZXJzaW9uIHNlY3Rpb24N Cj4gICAqIHJlc2V0IGRldmljZSBvbiBkaXNjb25uZWN0aW9uDQo+ICAgKiByZXdvcmQgbGl2ZSBt aWdyYXRpb24gc2VjdGlvbg0KPiAgICogcmVwbGFjZSBzeXMvdmZpby5oIHdpdGggbGludXgvdmZp by5oDQo+ICAgKiBkcm9wIHJlZmVyZW5jZSB0byBpb3ZlYw0KPiAgICogdXNlIGFyZ3ogdGhlIHNh bWUgd2F5IGl0IGlzIHVzZWQgaW4gVkZJTw0KPiAgICogYWRkIHR5cGUgZmllbGQgaW4gaGVhZGVy IGZvciBjbGFyaXR5DQo+IA0KPiBDaGFuZ2VkIHNpbmNlIHY0Og0KPiAgICogaW50cm9kdWNlIHN1 cHBvcnQgZm9yIGxpdmUgbWlncmF0aW9uIGFzIGRlZmluZWQgaW4gaW5jbHVkZS91YXBpL2xpbnV4 L3ZmaW8uaA0KPiAgICogaW50cm9kdWNlICdtYXhfZmRzJyBhbmQgJ21pZ3JhdGlvbicgY2FwYWJp bGl0aWVzOg0KPiAgICogcmVtb3ZlICdpbmRleCcgZnJvbSBWRklPX1VTRVJfREVWSUNFX0dFVF9J UlFfSU5GTw0KPiAgICogZml4IG1pbm9yIHR5cG9zIGFuZCByZXdvcmRlZCBzb21lIHRleHQgZm9y IGNsYXJpdHkNCj4gDQo+IFlvdSBjYW4gZm9jdXMgb24gdjQgdG8gdjUgY2hhbmdlcyBieSBjbG9u aW5nIG15IGZvcmsNCj4gKGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/ dT1odHRwcy0NCj4gM0FfX2dpdGh1Yi5jb21fdG1ha2F0b3NfcWVtdSZkPUR3SUJBZyZjPXM4ODNH cFVDT0NoS09IaW9jWXRHYw0KPiBnJnI9WFRwWXNoNVBzMnpKdnR3Nm9ndHRpNDZhdGs3MzZTSTR2 Z3NKaVVLSXlERSZtPUxVWjBQNVZXYkZGeW5ZcQ0KPiA1U1BtSkQ0bi1FNlRvdzI2eER1UFlJZUNL VjI4JnM9SWdadWd5cWpJdktRMy0NCj4gZ3BmdHJBbTczc0tpelg1MUpZVXJvUi00YWFhSTAmZT0g KSBhbmQgZG9pbmc6DQo+IA0KPiAJZ2l0IGRpZmYgcmVmcy90YWdzL3ZmaW8tdXNlci92NCByZWZz L2hlYWRzL3ZmaW8tdXNlci92NQ0KPiAtLS0NCj4gIE1BSU5UQUlORVJTICAgICAgICAgICAgICB8 ICAgIDYgKw0KPiAgZG9jcy9kZXZlbC9pbmRleC5yc3QgICAgIHwgICAgMSArDQo+ICBkb2NzL2Rl dmVsL3ZmaW8tdXNlci5yc3QgfCAxNTUyDQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysNCj4gIDMgZmlsZXMgY2hhbmdlZCwgMTU1OSBpbnNlcnRpb25zKCsp DQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jcy9kZXZlbC92ZmlvLXVzZXIucnN0DQo+IA0KPiBk aWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUw0KPiBpbmRleCA3ZTQ0MmI1MjQ3 Li4zNjExZjllMzY1IDEwMDY0NA0KPiAtLS0gYS9NQUlOVEFJTkVSUw0KPiArKysgYi9NQUlOVEFJ TkVSUw0KPiBAQCAtMTc1NCw2ICsxNzU0LDEyIEBAIEY6IGh3L3ZmaW8vYXAuYw0KPiAgRjogZG9j cy9zeXN0ZW0vczM5MHgvdmZpby1hcC5yc3QNCj4gIEw6IHFlbXUtczM5MHhAbm9uZ251Lm9yZw0K PiANCj4gK3ZmaW8tdXNlcg0KPiArTTogSm9obiBHIEpvaG5zb24gPGpvaG4uZy5qb2huc29uQG9y YWNsZS5jb20+DQo+ICtNOiBUaGFub3MgTWFrYXRvcyA8dGhhbm9zLm1ha2F0b3NAbnV0YW5peC5j b20+DQo+ICtTOiBTdXBwb3J0ZWQNCj4gK0Y6IGRvY3MvZGV2ZWwvdmZpby11c2VyLnJzdA0KPiAr DQo+ICB2aG9zdA0KPiAgTTogTWljaGFlbCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNvbT4NCj4g IFM6IFN1cHBvcnRlZA0KPiBkaWZmIC0tZ2l0IGEvZG9jcy9kZXZlbC9pbmRleC5yc3QgYi9kb2Nz L2RldmVsL2luZGV4LnJzdA0KPiBpbmRleCA3N2JhYWU1Yzc3Li43Yzc3NDBhMDk2IDEwMDY0NA0K PiAtLS0gYS9kb2NzL2RldmVsL2luZGV4LnJzdA0KPiArKysgYi9kb2NzL2RldmVsL2luZGV4LnJz dA0KPiBAQCAtMzQsMyArMzQsNCBAQCBDb250ZW50czoNCj4gICAgIGNsb2Nrcw0KPiAgICAgcW9t DQo+ICAgICBibG9jay1jb3JvdXRpbmUtd3JhcHBlcg0KPiArICAgdmZpby11c2VyDQo+IGRpZmYg LS1naXQgYS9kb2NzL2RldmVsL3ZmaW8tdXNlci5yc3QgYi9kb2NzL2RldmVsL3ZmaW8tdXNlci5y c3QNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uZDg2NjRlODY0 Zg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2RvY3MvZGV2ZWwvdmZpby11c2VyLnJzdA0KPiBA QCAtMCwwICsxLDE1NTIgQEANCj4gKy4uIGluY2x1ZGU6OiA8aXNvbnVtLnR4dD4NCj4gKw0KPiAr KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4gK3ZmaW8tdXNlciBQcm90b2NvbCBT cGVjaWZpY2F0aW9uDQo+ICsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiArDQo+ ICstLS0tLS0tLS0tLS0NCj4gK1ZlcnNpb25fIDAuMQ0KPiArLS0tLS0tLS0tLS0tDQo+ICsNCj4g Ky4uIGNvbnRlbnRzOjogVGFibGUgb2YgQ29udGVudHMNCj4gKw0KPiArSW50cm9kdWN0aW9uDQo+ ICs9PT09PT09PT09PT0NCj4gK3ZmaW8tdXNlciBpcyBhIHByb3RvY29sIHRoYXQgYWxsb3dzIGEg ZGV2aWNlIHRvIGJlIGVtdWxhdGVkIGluIGEgc2VwYXJhdGUNCj4gK3Byb2Nlc3Mgb3V0c2lkZSBv ZiBhIFZpcnR1YWwgTWFjaGluZSBNb25pdG9yIChWTU0pLiB2ZmlvLXVzZXIgZGV2aWNlcw0KPiBj b25zaXN0DQo+ICtvZiBhIGdlbmVyaWMgVkZJTyBkZXZpY2UgdHlwZSwgbGl2aW5nIGluc2lkZSB0 aGUgVk1NLCB3aGljaCB3ZSBjYWxsIHRoZQ0KPiBjbGllbnQsDQo+ICthbmQgdGhlIGNvcmUgZGV2 aWNlIGltcGxlbWVudGF0aW9uLCBsaXZpbmcgb3V0c2lkZSB0aGUgVk1NLCB3aGljaCB3ZSBjYWxs DQo+IHRoZQ0KPiArc2VydmVyLg0KPiArDQo+ICtUaGUgYExpbnV4IFZGSU8gaW9jdGwgaW50ZXJm YWNlDQo+IDxodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cHMt DQo+IDNBX193d3cua2VybmVsLm9yZ19kb2NfaHRtbF9sYXRlc3RfZHJpdmVyLQ0KPiAyRGFwaV92 ZmlvLmh0bWwmZD1Ed0lCQWcmYz1zODgzR3BVQ09DaEtPSGlvY1l0R2NnJnI9WFRwWXNoNVBzMnpK DQo+IHZ0dzZvZ3R0aTQ2YXRrNzM2U0k0dmdzSmlVS0l5REUmbT1MVVowUDVWV2JGRnluWXE1U1Bt SkQ0bi0NCj4gRTZUb3cyNnhEdVBZSWVDS1YyOCZzPXBmY2JDT01BeVAwN1RUa2lpMnQtdm0xbC0N Cj4gcm1ubUtRYnF5Z1RQanhhdHNRJmU9ID5gXw0KPiArYmVlbiBjaG9zZW4gYXMgdGhlIGJhc2Ug Zm9yIHRoaXMgcHJvdG9jb2wgZm9yIHRoZSBmb2xsb3dpbmcgcmVhc29uczoNCj4gKw0KPiArMSkg SXQgaXMgYSBtYXR1cmUgYW5kIHN0YWJsZSBBUEksIGJhY2tlZCBieSBhbiBleHRlbnNpdmVseSB1 c2VkIGZyYW1ld29yay4NCj4gKzIpIFRoZSBleGlzdGluZyBWRklPIGNsaWVudCBpbXBsZW1lbnRh dGlvbiBpbiBRRU1VIChxZW11L2h3L3ZmaW8vKSBjYW4NCj4gYmUNCj4gKyAgIGxhcmdlbHkgcmV1 c2VkLg0KPiArDQo+ICsuLiBOb3RlOjoNCj4gKyAgIEluIGEgcHJvb2Ygb2YgY29uY2VwdCBpbXBs ZW1lbnRhdGlvbiBpdCBoYXMgYmVlbiBkZW1vbnN0cmF0ZWQgdGhhdCB1c2luZw0KPiBWRklPDQo+ ICsgICBvdmVyIGEgVU5JWCBkb21haW4gc29ja2V0IGlzIGEgdmlhYmxlIG9wdGlvbi4gdmZpby11 c2VyIGlzIGRlc2lnbmVkIHdpdGgNCj4gKyAgIFFFTVUgaW4gbWluZCwgaG93ZXZlciBpdCBjb3Vs ZCBiZSB1c2VkIGJ5IG90aGVyIGNsaWVudCBhcHBsaWNhdGlvbnMuIFRoZQ0KPiArICAgdmZpby11 c2VyIHByb3RvY29sIGRvZXMgbm90IHJlcXVpcmUgdGhhdCBRRU1VJ3MgVkZJTyBjbGllbnQNCj4g aW1wbGVtZW50YXRpb24NCj4gKyAgIGlzIHVzZWQgaW4gUUVNVS4NCj4gKw0KPiArTm9uZSBvZiB0 aGUgVkZJTyBrZXJuZWwgbW9kdWxlcyBhcmUgcmVxdWlyZWQgZm9yIHN1cHBvcnRpbmcgdGhlIHBy b3RvY29sLA0KPiArbmVpdGhlciBpbiB0aGUgY2xpZW50IG5vciB0aGUgc2VydmVyLCBvbmx5IHRo ZSBzb3VyY2UgaGVhZGVyIGZpbGVzIGFyZSB1c2VkLg0KPiArDQo+ICtUaGUgbWFpbiBpZGVhIGlz IHRvIGFsbG93IGEgdmlydHVhbCBkZXZpY2UgdG8gZnVuY3Rpb24gaW4gYSBzZXBhcmF0ZSBwcm9j ZXNzIGluDQo+ICt0aGUgc2FtZSBob3N0IG92ZXIgYSBVTklYIGRvbWFpbiBzb2NrZXQuIEEgVU5J WCBkb21haW4gc29ja2V0DQo+IChBRl9VTklYKSBpcw0KPiArY2hvc2VuIGJlY2F1c2UgZmlsZSBk ZXNjcmlwdG9ycyBjYW4gYmUgdHJpdmlhbGx5IHNlbnQgb3ZlciBpdCwgd2hpY2ggaW4gdHVybg0K PiArYWxsb3dzOg0KPiArDQo+ICsqIFNoYXJpbmcgb2YgY2xpZW50IG1lbW9yeSBmb3IgRE1BIHdp dGggdGhlIHNlcnZlci4NCj4gKyogU2hhcmluZyBvZiBzZXJ2ZXIgbWVtb3J5IHdpdGggdGhlIGNs aWVudCBmb3IgZmFzdCBNTUlPLg0KPiArKiBFZmZpY2llbnQgc2hhcmluZyBvZiBldmVudGZkJ3Mg Zm9yIHRyaWdnZXJpbmcgaW50ZXJydXB0cy4NCj4gKw0KPiArT3RoZXIgc29ja2V0IHR5cGVzIGNv dWxkIGJlIHVzZWQgd2hpY2ggYWxsb3cgdGhlIHNlcnZlciB0byBydW4gaW4gYQ0KPiBzZXBhcmF0 ZQ0KPiArZ3Vlc3QgaW4gdGhlIHNhbWUgaG9zdCAoQUZfVlNPQ0spIG9yIHJlbW90ZWx5IChBRl9J TkVUKS4gVGhlb3JldGljYWxseQ0KPiB0aGUNCj4gK3VuZGVybHlpbmcgdHJhbnNwb3J0IGRvZXMg bm90IG5lY2Vzc2FyaWx5IGhhdmUgdG8gYmUgYSBzb2NrZXQsIGhvd2V2ZXIgd2UNCj4gZG8NCj4g K25vdCBleGFtaW5lIHN1Y2ggYWx0ZXJuYXRpdmVzLiBJbiB0aGlzIHByb3RvY29sIHZlcnNpb24g d2UgZm9jdXMgb24gdXNpbmcgYQ0KPiArVU5JWCBkb21haW4gc29ja2V0IGFuZCBpbnRyb2R1Y2Ug YmFzaWMgc3VwcG9ydCBmb3IgdGhlIG90aGVyIHR3byB0eXBlcyBvZg0KPiArc29ja2V0cyB3aXRo b3V0IGNvbnNpZGVyaW5nIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucy4NCj4gKw0KPiArV2hpbGUg cGFzc2luZyBvZiBmaWxlIGRlc2NyaXB0b3JzIGlzIGRlc2lyYWJsZSBmb3IgcGVyZm9ybWFuY2Ug cmVhc29ucywgaXQgaXMNCj4gK25vdCBuZWNlc3NhcnkgbmVpdGhlciBmb3IgdGhlIGNsaWVudCBu b3IgZm9yIHRoZSBzZXJ2ZXIgdG8gc3VwcG9ydCBpdCBpbiBvcmRlcg0KPiArdG8gaW1wbGVtZW50 IHRoZSBwcm90b2NvbC4gVGhlcmUgaXMgYWx3YXlzIGFuIGluLWJhbmQsIG1lc3NhZ2UtcGFzc2lu ZyBmYWxsDQo+ICtiYWNrIG1lY2hhbmlzbS4NCj4gKw0KPiArVkZJTw0KPiArPT09PQ0KPiArVkZJ TyBpcyBhIGZyYW1ld29yayB0aGF0IGFsbG93cyBhIHBoeXNpY2FsIGRldmljZSB0byBiZSBzZWN1 cmVseSBwYXNzZWQNCj4gdGhyb3VnaA0KPiArdG8gYSB1c2VyIHNwYWNlIHByb2Nlc3M7IHRoZSBk ZXZpY2Utc3BlY2lmaWMga2VybmVsIGRyaXZlciBkb2VzIG5vdCBkcml2ZSB0aGUNCj4gK2Rldmlj ZSBhdCBhbGwuICBUeXBpY2FsbHksIHRoZSB1c2VyIHNwYWNlIHByb2Nlc3MgaXMgYSBWTU0gYW5k IHRoZSBkZXZpY2UgaXMNCj4gK3Bhc3NlZCB0aHJvdWdoIHRvIGl0IGluIG9yZGVyIHRvIGFjaGll dmUgaGlnaCBwZXJmb3JtYW5jZS4gVkZJTyBwcm92aWRlcyBhbg0KPiBBUEkNCj4gK2FuZCB0aGUg cmVxdWlyZWQgZnVuY3Rpb25hbGl0eSBpbiB0aGUga2VybmVsLiBRRU1VIGhhcyBhZG9wdGVkIFZG SU8gdG8NCj4gYWxsb3cgYQ0KPiArZ3Vlc3QgdG8gZGlyZWN0bHkgYWNjZXNzIHBoeXNpY2FsIGRl dmljZXMsIGluc3RlYWQgb2YgZW11bGF0aW5nIHRoZW0gaW4NCj4gK3NvZnR3YXJlLg0KPiArDQo+ ICt2ZmlvLXVzZXIgcmV1c2VzIHRoZSBjb3JlIFZGSU8gY29uY2VwdHMgZGVmaW5lZCBpbiBpdHMg QVBJLCBidXQgaW1wbGVtZW50cw0KPiB0aGVtDQo+ICthcyBtZXNzYWdlcyB0byBiZSBzZW50IG92 ZXIgYSBzb2NrZXQuIEl0IGRvZXMgbm90IGNoYW5nZSB0aGUga2VybmVsLWJhc2VkDQo+IFZGSU8N Cj4gK2luIGFueSB3YXksIGluIGZhY3Qgbm9uZSBvZiB0aGUgVkZJTyBrZXJuZWwgbW9kdWxlcyBu ZWVkIHRvIGJlIGxvYWRlZCB0bw0KPiB1c2UNCj4gK3ZmaW8tdXNlci4gSXQgaXMgYWxzbyBwb3Nz aWJsZSBmb3IgdGhlIGNsaWVudCB0byBjb25jdXJyZW50bHkgdXNlIHRoZSBjdXJyZW50DQo+ICtr ZXJuZWwtYmFzZWQgVkZJTyBmb3Igb25lIGRldmljZSwgYW5kIHZmaW8tdXNlciBmb3IgYW5vdGhl ciBkZXZpY2UuDQo+ICsNCj4gK1ZGSU8gRGV2aWNlIE1vZGVsDQo+ICstLS0tLS0tLS0tLS0tLS0t LQ0KPiArQSBkZXZpY2UgdW5kZXIgVkZJTyBwcmVzZW50cyBhIHN0YW5kYXJkIGludGVyZmFjZSB0 byB0aGUgdXNlciBwcm9jZXNzLg0KPiBNYW55IG9mDQo+ICt0aGUgVkZJTyBvcGVyYXRpb25zIGlu IHRoZSBleGlzdGluZyBpbnRlcmZhY2UgdXNlIHRoZSBpb2N0bCgpIHN5c3RlbSBjYWxsLCBhbmQN Cj4gK3JlZmVyZW5jZXMgdG8gdGhlIGV4aXN0aW5nIGludGVyZmFjZSBhcmUgY2FsbGVkIHRoZSBp b2N0bCgpIGltcGxlbWVudGF0aW9uIGluDQo+ICt0aGlzIGRvY3VtZW50Lg0KPiArDQo+ICtUaGUg Zm9sbG93aW5nIHNlY3Rpb25zIGRlc2NyaWJlIHRoZSBzZXQgb2YgbWVzc2FnZXMgdGhhdCBpbXBs ZW1lbnQgdGhlDQo+IFZGSU8NCj4gK2ludGVyZmFjZSBvdmVyIGEgc29ja2V0LiBJbiBtYW55IGNh c2VzLCB0aGUgbWVzc2FnZXMgYXJlIGRpcmVjdCB0cmFuc2xhdGlvbnMNCj4gb2YNCj4gK2RhdGEg c3RydWN0dXJlcyB1c2VkIGluIHRoZSBpb2N0bCgpIGltcGxlbWVudGF0aW9uLiBNZXNzYWdlcyBk ZXJpdmVkIGZyb20NCj4gK2lvY3RsKClzIHdpbGwgaGF2ZSBhIG5hbWUgZGVyaXZlZCBmcm9tIHRo ZSBpb2N0bCgpIGNvbW1hbmQgbmFtZS4gIEUuZy4sIHRoZQ0KPiArVkZJT19HRVRfSU5GTyBpb2N0 bCgpIGNvbW1hbmQgYmVjb21lcyBhIFZGSU9fVVNFUl9HRVRfSU5GTw0KPiBtZXNzYWdlLiAgVGhl DQo+ICtwdXJwb3NlIG9mIHRoaXMgcmV1c2UgaXMgdG8gc2hhcmUgYXMgbXVjaCBjb2RlIGFzIGZl YXNpYmxlIHdpdGggdGhlIGlvY3RsKCkNCj4gK2ltcGxlbWVudGF0aW9uLg0KPiArDQo+ICtDb25u ZWN0aW9uIEluaXRpYXRpb24NCj4gK15eXl5eXl5eXl5eXl5eXl5eXl5eXg0KPiArQWZ0ZXIgdGhl IGNsaWVudCBjb25uZWN0cyB0byB0aGUgc2VydmVyLCB0aGUgaW5pdGlhbCBzZXJ2ZXIgbWVzc2Fn ZSBpcw0KPiArVkZJT19VU0VSX1ZFUlNJT04gdG8gcHJvcG9zZSBhIHByb3RvY29sIHZlcnNpb24g YW5kIHNldCBvZiBjYXBhYmlsaXRpZXMNCj4gdG8NCj4gK2FwcGx5IHRvIHRoZSBzZXNzaW9uLiBU aGUgY2xpZW50IHJlcGxpZXMgd2l0aCBhIGNvbXBhdGlibGUgdmVyc2lvbiBhbmQgc2V0IG9mDQo+ ICtjYXBhYmlsaXRpZXMgaXQgc3VwcG9ydHMsIG9yIGNsb3NlcyB0aGUgY29ubmVjdGlvbiBpZiBp dCBjYW5ub3Qgc3VwcG9ydCB0aGUNCj4gK2FkdmVydGlzZWQgdmVyc2lvbi4NCj4gKw0KPiArRE1B IE1lbW9yeSBDb25maWd1cmF0aW9uDQo+ICteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4NCj4gK1Ro ZSBjbGllbnQgdXNlcyBWRklPX1VTRVJfRE1BX01BUCBhbmQgVkZJT19VU0VSX0RNQV9VTk1BUA0K PiBtZXNzYWdlcyB0byBpbmZvcm0NCj4gK3RoZSBzZXJ2ZXIgb2YgdGhlIHZhbGlkIERNQSByYW5n ZXMgdGhhdCB0aGUgc2VydmVyIGNhbiBhY2Nlc3Mgb24gYmVoYWxmDQo+ICtvZiBhIGRldmljZS4g RE1BIG1lbW9yeSBtYXkgYmUgYWNjZXNzZWQgYnkgdGhlIHNlcnZlciB2aWENCj4gVkZJT19VU0VS X0RNQV9SRUFEDQo+ICthbmQgVkZJT19VU0VSX0RNQV9XUklURSBtZXNzYWdlcyBvdmVyIHRoZSBz b2NrZXQuDQo+ICsNCj4gK0FuIG9wdGltaXphdGlvbiBmb3Igc2VydmVyIGFjY2VzcyB0byBjbGll bnQgbWVtb3J5IGlzIGZvciB0aGUgY2xpZW50IHRvDQo+IHByb3ZpZGUNCj4gK2ZpbGUgZGVzY3Jp cHRvcnMgdGhlIHNlcnZlciBjYW4gbW1hcCgpIHRvIGRpcmVjdGx5IGFjY2VzcyBjbGllbnQgbWVt b3J5Lg0KPiBOb3RlDQo+ICt0aGF0IG1tYXAoKSBwcml2aWxlZ2VzIGNhbm5vdCBiZSByZXZva2Vk IGJ5IHRoZSBjbGllbnQsIHRoZXJlZm9yZSBmaWxlDQo+ICtkZXNjcmlwdG9ycyBzaG91bGQgb25s eSBiZSBleHBvcnRlZCBpbiBlbnZpcm9ubWVudHMgd2hlcmUgdGhlIGNsaWVudA0KPiB0cnVzdHMg dGhlDQo+ICtzZXJ2ZXIgbm90IHRvIGNvcnJ1cHQgZ3Vlc3QgbWVtb3J5Lg0KPiArDQo+ICtEZXZp Y2UgSW5mb3JtYXRpb24NCj4gK15eXl5eXl5eXl5eXl5eXl5eXg0KPiArVGhlIGNsaWVudCB1c2Vz IGEgVkZJT19VU0VSX0RFVklDRV9HRVRfSU5GTyBtZXNzYWdlIHRvIHF1ZXJ5IHRoZQ0KPiBzZXJ2 ZXIgZm9yDQo+ICtpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGV2aWNlLiBUaGlzIGluZm9ybWF0aW9u IGluY2x1ZGVzOg0KPiArDQo+ICsqIFRoZSBkZXZpY2UgdHlwZSBhbmQgd2hldGhlciBpdCBzdXBw b3J0cyByZXNldA0KPiAoYGBWRklPX0RFVklDRV9GTEFHU19gYCksDQo+ICsqIHRoZSBudW1iZXIg b2YgZGV2aWNlIHJlZ2lvbnMsIGFuZA0KPiArKiB0aGUgZGV2aWNlIHByZXNlbnRzIHRvIHRoZSBj bGllbnQgdGhlIG51bWJlciBvZiBpbnRlcnJ1cHQgdHlwZXMgdGhlIGRldmljZQ0KPiArICBzdXBw b3J0cy4NCj4gKw0KPiArUmVnaW9uIEluZm9ybWF0aW9uDQo+ICteXl5eXl5eXl5eXl5eXl5eXl4N Cj4gK1RoZSBjbGllbnQgdXNlcyBWRklPX1VTRVJfREVWSUNFX0dFVF9SRUdJT05fSU5GTyBtZXNz YWdlcyB0byBxdWVyeQ0KPiB0aGUgc2VydmVyDQo+ICtmb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhl IGRldmljZSdzIG1lbW9yeSByZWdpb25zLiBUaGlzIGluZm9ybWF0aW9uDQo+IGRlc2NyaWJlczoN Cj4gKw0KPiArKiBSZWFkIGFuZCB3cml0ZSBwZXJtaXNzaW9ucywgd2hldGhlciBpdCBjYW4gYmUg bWVtb3J5IG1hcHBlZCwgYW5kDQo+IHdoZXRoZXIgaXQNCj4gKyAgc3VwcG9ydHMgYWRkaXRpb25h bCBjYXBhYmlsaXRpZXMgKGBgVkZJT19SRUdJT05fSU5GT19DQVBfYGApLg0KPiArKiBSZWdpb24g aW5kZXgsIHNpemUsIGFuZCBvZmZzZXQuDQo+ICsNCj4gK1doZW4gYSByZWdpb24gY2FuIGJlIG1h cHBlZCBieSB0aGUgY2xpZW50LCB0aGUgc2VydmVyIHByb3ZpZGVzIGEgZmlsZQ0KPiArZGVzY3Jp cHRvciB3aGljaCB0aGUgY2xpZW50IGNhbiBtbWFwKCkuIFRoZSBzZXJ2ZXIgaXMgcmVzcG9uc2li bGUgZm9yIHBvbGxpbmcNCj4gK2ZvciBjbGllbnQgdXBkYXRlcyB0byBtZW1vcnkgbWFwcGVkIHJl Z2lvbnMuDQo+ICsNCj4gK1JlZ2lvbiBDYXBhYmlsaXRpZXMNCj4gKyIiIiIiIiIiIiIiIiIiIiIi IiINCj4gK1NvbWUgcmVnaW9ucyBoYXZlIGFkZGl0aW9uYWwgY2FwYWJpbGl0aWVzIHRoYXQgY2Fu bm90IGJlIGRlc2NyaWJlZA0KPiBhZGVxdWF0ZWx5DQo+ICtieSB0aGUgcmVnaW9uIGluZm8gZGF0 YSBzdHJ1Y3R1cmUuIFRoZXNlIGNhcGFiaWxpdGllcyBhcmUgcmV0dXJuZWQgaW4gdGhlDQo+ICty ZWdpb24gaW5mbyByZXBseSBpbiBhIGxpc3Qgc2ltaWxhciB0byBQQ0kgY2FwYWJpbGl0aWVzIGlu IGEgUENJIGRldmljZSdzDQo+ICtjb25maWd1cmF0aW9uIHNwYWNlLg0KPiArDQo+ICtTcGFyc2Ug UmVnaW9ucw0KPiArIiIiIiIiIiIiIiIiIiINCj4gK0EgcmVnaW9uIGNhbiBiZSBtZW1vcnktbWFw cGFibGUgaW4gd2hvbGUgb3IgaW4gcGFydC4gV2hlbiBvbmx5IGEgc3Vic2V0DQo+IG9mIGENCj4g K3JlZ2lvbiBjYW4gYmUgbWFwcGVkIGJ5IHRoZSBjbGllbnQsIGENCj4gVkZJT19SRUdJT05fSU5G T19DQVBfU1BBUlNFX01NQVANCj4gK2NhcGFiaWxpdHkgaXMgaW5jbHVkZWQgaW4gdGhlIHJlZ2lv biBpbmZvIHJlcGx5LiBUaGlzIGNhcGFiaWxpdHkgZGVzY3JpYmVzDQo+ICt3aGljaCBwb3J0aW9u cyBjYW4gYmUgbWFwcGVkIGJ5IHRoZSBjbGllbnQuDQo+ICsNCj4gKy4uIE5vdGU6Og0KPiArICAg Rm9yIGV4YW1wbGUsIGluIGEgdmlydHVhbCBOVk1lIGNvbnRyb2xsZXIsIHNwYXJzZSByZWdpb25z IGNhbiBiZSB1c2VkIHNvDQo+ICsgICB0aGF0IGFjY2Vzc2VzIHRvIHRoZSBOVk1lIHJlZ2lzdGVy cyAoZm91bmQgaW4gdGhlIGJlZ2lubmluZyBvZiBCQVIwKSBhcmUNCj4gKyAgIHRyYXBwZWQgKGFu IGluZnJlcXVlbnQgZXZlbnQpLCB3aGlsZSBhbGxvd2luZyBkaXJlY3QgYWNjZXNzIHRvIHRoZQ0K PiBkb29yYmVsbHMNCj4gKyAgIChhbiBleHRyZW1lbHkgZnJlcXVlbnQgZXZlbnQgYXMgZXZlcnkg SS9PIHN1Ym1pc3Npb24gcmVxdWlyZXMgYSB3cml0ZSB0bw0KPiArICAgQkFSMCksIGZvdW5kIHJp Z2h0IGFmdGVyIHRoZSBOVk1lIHJlZ2lzdGVycyBpbiBCQVIwLg0KPiArDQo+ICtEZXZpY2UtU3Bl Y2lmaWMgUmVnaW9ucw0KPiArIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiINCj4gKw0KPiArQSBkZXZp Y2UgY2FuIGRlZmluZSByZWdpb25zIGFkZGl0aW9uYWwgdG8gdGhlIHN0YW5kYXJkIG9uZXMgKGUu Zy4gUENJDQo+IGluZGV4ZXMNCj4gKzAtOCkuIFRoaXMgaXMgYWNoaWV2ZWQgYnkgaW5jbHVkaW5n IGEgVkZJT19SRUdJT05fSU5GT19DQVBfVFlQRQ0KPiBjYXBhYmlsaXR5DQo+ICtpbiB0aGUgcmVn aW9uIGluZm8gcmVwbHkgb2YgYSBkZXZpY2Utc3BlY2lmaWMgcmVnaW9uLiBTdWNoIHJlZ2lvbnMg YXJlDQo+IHJlZmxlY3RlZA0KPiAraW4gYGBzdHJ1Y3QgdmZpb19kZXZpY2VfaW5mby5udW1fcmVn aW9uc2BgLiBUaHVzLCBmb3IgUENJIGRldmljZXMgdGhpcyB2YWx1ZQ0KPiBjYW4NCj4gK2JlIGVx dWFsIHRvLCBvciBoaWdoZXIgdGhhbiwgVkZJT19QQ0lfTlVNX1JFR0lPTlMuDQo+ICsNCj4gK0lu dGVycnVwdHMNCj4gK15eXl5eXl5eXl4NCj4gK1RoZSBjbGllbnQgdXNlcyBWRklPX1VTRVJfREVW SUNFX0dFVF9JUlFfSU5GTyBtZXNzYWdlcyB0byBxdWVyeSB0aGUNCj4gc2VydmVyIGZvcg0KPiAr dGhlIGRldmljZSdzIGludGVycnVwdCB0eXBlcy4gVGhlIGludGVycnVwdCB0eXBlcyBhcmUgc3Bl Y2lmaWMgdG8gdGhlIGJ1cyB0aGUNCj4gK2RldmljZSBpcyBhdHRhY2hlZCB0bywgYW5kIHRoZSBj bGllbnQgaXMgZXhwZWN0ZWQgdG8ga25vdyB0aGUgY2FwYWJpbGl0aWVzIG9mDQo+ICtlYWNoIGlu dGVycnVwdCB0eXBlLiBUaGUgc2VydmVyIGNhbiBzaWduYWwgYW4gaW50ZXJydXB0IGVpdGhlciB3 aXRoDQo+ICtWRklPX1VTRVJfVk1fSU5URVJSVVBUIG1lc3NhZ2VzIG92ZXIgdGhlIHNvY2tldCwg b3IgY2FuIGRpcmVjdGx5DQo+IGluamVjdA0KPiAraW50ZXJydXB0cyBpbnRvIHRoZSBndWVzdCB2 aWEgYW4gZXZlbnQgZmlsZSBkZXNjcmlwdG9yLiBUaGUgY2xpZW50IGNvbmZpZ3VyZXMNCj4gK2hv dyB0aGUgc2VydmVyIHNpZ25hbHMgYW4gaW50ZXJydXB0IHdpdGggVkZJT19VU0VSX1NFVF9JUlFT IG1lc3NhZ2VzLg0KPiArDQo+ICtEZXZpY2UgUmVhZCBhbmQgV3JpdGUNCj4gK15eXl5eXl5eXl5e Xl5eXl5eXl5eXg0KPiArV2hlbiB0aGUgZ3Vlc3QgZXhlY3V0ZXMgbG9hZCBvciBzdG9yZSBvcGVy YXRpb25zIHRvIGRldmljZSBtZW1vcnksIHRoZQ0KPiBjbGllbnQNCj4gK2ZvcndhcmRzIHRoZXNl IG9wZXJhdGlvbnMgdG8gdGhlIHNlcnZlciB3aXRoIFZGSU9fVVNFUl9SRUdJT05fUkVBRCBvcg0K PiArVkZJT19VU0VSX1JFR0lPTl9XUklURSBtZXNzYWdlcy4gVGhlIHNlcnZlciB3aWxsIHJlcGx5 IHdpdGggZGF0YSBmcm9tDQo+IHRoZQ0KPiArZGV2aWNlIG9uIHJlYWQgb3BlcmF0aW9ucyBvciBh biBhY2tub3dsZWRnZW1lbnQgb24gd3JpdGUgb3BlcmF0aW9ucy4NCj4gKw0KPiArRE1BDQo+ICte Xl4NCj4gK1doZW4gYSBkZXZpY2UgcGVyZm9ybXMgRE1BIGFjY2Vzc2VzIHRvIGd1ZXN0IG1lbW9y eSwgdGhlIHNlcnZlciB3aWxsDQo+IGZvcndhcmQNCj4gK3RoZW0gdG8gdGhlIGNsaWVudCB3aXRo IFZGSU9fVVNFUl9ETUFfUkVBRCBhbmQNCj4gVkZJT19VU0VSX0RNQV9XUklURSBtZXNzYWdlcy4N Cj4gK1RoZXNlIG1lc3NhZ2VzIGNhbiBvbmx5IGJlIHVzZWQgdG8gYWNjZXNzIGd1ZXN0IG1lbW9y eSB0aGUgY2xpZW50IGhhcw0KPiArY29uZmlndXJlZCBpbnRvIHRoZSBzZXJ2ZXIuDQo+ICsNCj4g K1Byb3RvY29sIFNwZWNpZmljYXRpb24NCj4gKz09PT09PT09PT09PT09PT09PT09PT0NCj4gK1Rv IGRpc3Rpbmd1aXNoIGZyb20gdGhlIGJhc2UgVkZJTyBzeW1ib2xzLCBhbGwgdmZpby11c2VyIHN5 bWJvbHMgYXJlDQo+IHByZWZpeGVkDQo+ICt3aXRoIHZmaW9fdXNlciBvciBWRklPX1VTRVIuIElu IHJldmlzaW9uIDAuMSwgYWxsIGRhdGEgaXMgaW4gdGhlIGxpdHRsZS1lbmRpYW4NCj4gK2Zvcm1h dCwgYWx0aG91Z2ggdGhpcyBtYXkgYmUgcmVsYXhlZCBpbiBmdXR1cmUgcmV2aXNpb24gaW4gY2Fz ZXMgd2hlcmUgdGhlDQo+ICtjbGllbnQgYW5kIHNlcnZlciBhcmUgYm90aCBiaWctZW5kaWFuLiBU aGUgbWVzc2FnZXMgYXJlIGZvcm1hdHRlZCBmb3INCj4gc2VhbWxlc3MNCj4gK3JldXNlIG9mIHRo ZSBuYXRpdmUgVkZJTyBzdHJ1Y3RzLg0KPiArDQo+ICtTb2NrZXQNCj4gKy0tLS0tLQ0KPiArDQo+ ICtBIHNlcnZlciBjYW4gc2VydmU6DQo+ICsNCj4gKzEpIG9uZSBvciBtb3JlIGNsaWVudHMsIGFu ZC9vcg0KPiArMikgb25lIG9yIG1vcmUgdmlydHVhbCBkZXZpY2VzLCBiZWxvbmdpbmcgdG8gb25l IG9yIG1vcmUgY2xpZW50cy4NCj4gKw0KPiArVGhlIGN1cnJlbnQgcHJvdG9jb2wgc3BlY2lmaWNh dGlvbiByZXF1aXJlcyBhIGRlZGljYXRlZCBzb2NrZXQgcGVyDQo+ICtjbGllbnQvc2VydmVyIGNv bm5lY3Rpb24uIEl0IGlzIGEgc2VydmVyLXNpZGUgaW1wbGVtZW50YXRpb24gZGV0YWlsIHdoZXRo ZXINCj4gYQ0KPiArc2luZ2xlIHNlcnZlciBoYW5kbGVzIG11bHRpcGxlIHZpcnR1YWwgZGV2aWNl cyBmcm9tIHRoZSBzYW1lIG9yIG11bHRpcGxlDQo+ICtjbGllbnRzLiBUaGUgbG9jYXRpb24gb2Yg dGhlIHNvY2tldCBpcyBpbXBsZW1lbnRhdGlvbi1zcGVjaWZpYy4gTXVsdGlwbGV4aW5nDQo+ICtj bGllbnRzLCBkZXZpY2VzLCBhbmQgc2VydmVycyBvdmVyIHRoZSBzYW1lIHNvY2tldCBpcyBub3Qg c3VwcG9ydGVkIGluIHRoaXMNCj4gK3ZlcnNpb24gb2YgdGhlIHByb3RvY29sLg0KPiArDQo+ICtB dXRoZW50aWNhdGlvbg0KPiArLS0tLS0tLS0tLS0tLS0NCj4gK0ZvciBBRl9VTklYLCB3ZSByZWx5 IG9uIE9TIG1hbmRhdG9yeSBhY2Nlc3MgY29udHJvbHMgb24gdGhlIHNvY2tldCBmaWxlcywNCj4g K3RoZXJlZm9yZSBpdCBpcyB1cCB0byB0aGUgbWFuYWdlbWVudCBsYXllciB0byBzZXQgdXAgdGhl IHNvY2tldCBhcyByZXF1aXJlZC4NCj4gK1NvY2tldCB0eXBlcyB0aGFuIHNwYW4gZ3Vlc3RzIG9y IGhvc3RzIHdpbGwgcmVxdWlyZSBhIHByb3BlciBhdXRoZW50aWNhdGlvbg0KPiArbWVjaGFuaXNt LiBEZWZpbmluZyB0aGF0IG1lY2hhbmlzbSBpcyBkZWZlcnJlZCB0byBhIGZ1dHVyZSB2ZXJzaW9u IG9mIHRoZQ0KPiArcHJvdG9jb2wuDQo+ICsNCj4gK0NvbW1hbmQgQ29uY3VycmVuY3kNCj4gKy0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gK0EgY2xpZW50IG1heSBwaXBlbGluZSBtdWx0aXBsZSBjb21t YW5kcyB3aXRob3V0IHdhaXRpbmcgZm9yIHByZXZpb3VzDQo+IGNvbW1hbmQNCj4gK3JlcGxpZXMu ICBUaGUgc2VydmVyIHdpbGwgcHJvY2VzcyBjb21tYW5kcyBpbiB0aGUgb3JkZXIgdGhleSBhcmUg cmVjZWl2ZWQuDQo+ICtBIGNvbnNlcXVlbmNlIG9mIHRoaXMgaXMgaWYgYSBjbGllbnQgaXNzdWVz IGEgY29tbWFuZCB3aXRoIHRoZSAqTm9fcmVwbHkqDQo+IGJpdCwNCj4gK3RoZW4gc3Vic2VxZW50 bHkgaXNzdWVzIGEgY29tbWFuZCB3aXRob3V0ICpOb19yZXBseSosIHRoZSBvbGRlcg0KPiBjb21t YW5kIHdpbGwNCj4gK2hhdmUgYmVlbiBwcm9jZXNzZWQgYmVmb3JlIHRoZSByZXBseSB0byB0aGUg eW91bmdlciBjb21tYW5kIGlzIHNlbnQgYnkNCj4gdGhlDQo+ICtzZXJ2ZXIuICBUaGUgY2xpZW50 IG11c3QgYmUgYXdhcmUgb2YgdGhlIGRldmljZSdzIGNhcGFiaWxpdHkgdG8gcHJvY2Vzcw0KPiBj b25jdXJyZW50DQo+ICtjb21tYW5kcyBpZiBwaXBlbGluaW5nIGlzIHVzZWQuICBGb3IgZXhhbXBs ZSwgcGlwZWxpbmluZyBhbGxvd3MgbXVsdGlwbGUNCj4gY2xpZW50DQo+ICt0aHJlYWRzIHRvIGNv bmN1cmVudGx5IGFjY2VzcyBkZXZpY2UgbWVtb3J5OyB0aGUgY2xpZW50IG11c3QgZW5zdXJlIHRo ZXNlDQo+IGFjY2VzZXMNCj4gK29iZXkgZGV2aWNlIHNlbWFudGljcy4NCj4gKw0KPiArQW4gZXhh bXBsZSBpcyBhIGZyYW1lIGJ1ZmZlciBkZXZpY2UsIHdoZXJlIHRoZSBkZXZpY2UgbWF5IGFsbG93 DQo+IGNvbmN1cnJlbnQgYWNjZXNzDQo+ICt0byBkaWZmZXJlbnQgYXJlYXMgb2YgdmlkZW8gbWVt b3J5LCBidXQgbWF5IGhhdmUgaW5kZXRlcm1pbmF0ZSBiZWhhdmlvcg0KPiBpZiBjb25jdXJyZW50 DQo+ICthY2Nlc2VzIGFyZSBwZXJmb3JtZWQgdG8gY29tbWFuZCBvciBzdGF0dXMgcmVnaXN0ZXJz Lg0KPiArDQo+ICtTb2NrZXQgRGlzY29ubmVjdGlvbiBCZWhhdmlvcg0KPiArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gK1RoZSBzZXJ2ZXIgYW5kIHRoZSBjbGllbnQgY2FuIGRpc2Nv bm5lY3QgZnJvbSBlYWNoIG90aGVyLCBlaXRoZXINCj4gaW50ZW50aW9uYWxseQ0KPiArb3IgdW5l eHBlY3RlZGx5LiBCb3RoIHRoZSBjbGllbnQgYW5kIHRoZSBzZXJ2ZXIgbmVlZCB0byBrbm93IGhv dyB0bw0KPiBoYW5kbGUgc3VjaA0KPiArZXZlbnRzLg0KPiArDQo+ICtTZXJ2ZXIgRGlzY29ubmVj dGlvbg0KPiArXl5eXl5eXl5eXl5eXl5eXl5eXl4NCj4gK0Egc2VydmVyIGRpc2Nvbm5lY3Rpbmcg ZnJvbSB0aGUgY2xpZW50IG1heSBpbmRpY2F0ZSB0aGF0Og0KPiArDQo+ICsxKSBBIHZpcnR1YWwg ZGV2aWNlIGhhcyBiZWVuIHJlc3RhcnRlZCwgZWl0aGVyIGludGVudGlvbmFsbHkgKGUuZy4gYmVj YXVzZSBvZiBhDQo+ICsgICBkZXZpY2UgdXBkYXRlKSBvciB1bmludGVudGlvbmFsbHkgKGUuZy4g YmVjYXVzZSBvZiBhIGNyYXNoKS4NCj4gKzIpIEEgdmlydHVhbCBkZXZpY2UgaGFzIGJlZW4gc2h1 dCBkb3duIHdpdGggbm8gaW50ZW50aW9uIHRvIGJlIHJlc3RhcnRlZC4NCj4gKw0KPiArSXQgaXMg aW1wb3NzaWJsZSBmb3IgdGhlIGNsaWVudCB0byBrbm93IHdoZXRoZXIgb3Igbm90IGEgZmFpbHVy ZSBpcw0KPiAraW50ZXJtaXR0ZW50IG9yIGlubm9jdW91cyBhbmQgc2hvdWxkIGJlIHJldHJpZWQs IHRoZXJlZm9yZSB0aGUgY2xpZW50IHNob3VsZA0KPiArcmVzZXQgdGhlIFZGSU8gZGV2aWNlIHdo ZW4gaXQgZGV0ZWN0cyB0aGUgc29ja2V0IGhhcyBiZWVuIGRpc2Nvbm5lY3RlZC4NCj4gK0Vycm9y IHJlY292ZXJ5IHdpbGwgYmUgZHJpdmVuIGJ5IHRoZSBndWVzdCdzIGRldmljZSBlcnJvciBoYW5k bGluZw0KPiArYmVoYXZpb3IuDQo+ICsNCj4gK0NsaWVudCBEaXNjb25uZWN0aW9uDQo+ICteXl5e Xl5eXl5eXl5eXl5eXl5eXg0KPiArVGhlIGNsaWVudCBkaXNjb25uZWN0aW5nIGZyb20gdGhlIHNl cnZlciBwcmltYXJpbHkgbWVhbnMgdGhhdCB0aGUgY2xpZW50DQo+ICtoYXMgZXhpdGVkLiBDdXJy ZW50bHksIHRoaXMgbWVhbnMgdGhhdCB0aGUgZ3Vlc3QgaXMgc2h1dCBkb3duIHNvIHRoZSBkZXZp Y2UNCj4gaXMNCj4gK25vIGxvbmdlciBuZWVkZWQgdGhlcmVmb3JlIHRoZSBzZXJ2ZXIgY2FuIGF1 dG9tYXRpY2FsbHkgZXhpdC4gSG93ZXZlciwNCj4gdGhlcmUNCj4gK2NhbiBiZSBjYXNlcyB3aGVy ZSBhIGNsaWVudCBkaXNjb25uZWN0aW9uIHNob3VsZCBub3QgcmVzdWx0IGluIGEgc2VydmVyIGV4 aXQ6DQo+ICsNCj4gKzEpIEEgc2luZ2xlIHNlcnZlciBzZXJ2aW5nIG11bHRpcGxlIGNsaWVudHMu DQo+ICsyKSBBIG11bHRpLXByb2Nlc3MgUUVNVSB1cGdyYWRpbmcgaXRzZWxmIHN0ZXAgYnkgc3Rl cCwgd2hpY2ggaXMgbm90IHlldA0KPiArICAgaW1wbGVtZW50ZWQuDQo+ICsNCj4gK1RoZXJlZm9y ZSBpbiBvcmRlciBmb3IgdGhlIHByb3RvY29sIHRvIGJlIGZvcndhcmQgY29tcGF0aWJsZSB0aGUg c2VydmVyDQo+IHNob3VsZA0KPiArdGFrZSBubyBhY3Rpb24gd2hlbiB0aGUgY2xpZW50IGRpc2Nv bm5lY3RzLiBJZiBhbnl0aGluZyBoYXBwZW5zIHRvIHRoZQ0KPiBjbGllbnQNCj4gK3RoZSBjb250 cm9sIHN0YWNrIHdpbGwga25vdyBhYm91dCBpdCBhbmQgY2FuIGNsZWFuIHVwIHJlc291cmNlcw0K PiArYWNjb3JkaW5nbHkuDQo+ICsNCj4gK1JlcXVlc3QgUmV0cnkgYW5kIFJlc3BvbnNlIFRpbWVv dXQNCj4gK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4NCj4gK0EgZmFpbGVkIGNv bW1hbmQgaXMgYSBjb21tYW5kIHRoYXQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHNlbnQgYW5kIGhh cw0KPiBiZWVuDQo+ICtyZXNwb25kZWQgdG8gd2l0aCBhbiBlcnJvciBjb2RlLiBGYWlsdXJlIHRv IHNlbmQgdGhlIGNvbW1hbmQgaW4gdGhlIGZpcnN0DQo+IHBsYWNlDQo+ICsoZS5nLiBiZWNhdXNl IHRoZSBzb2NrZXQgaXMgZGlzY29ubmVjdGVkKSBpcyBhIGRpZmZlcmVudCB0eXBlIG9mIGVycm9y DQo+IGV4YW1pbmVkDQo+ICtlYXJsaWVyIGluIHRoZSBkaXNjb25uZWN0IHNlY3Rpb24uDQo+ICsN Cj4gKy4uIE5vdGU6Og0KPiArICAgUUVNVSdzIFZGSU8gcmV0cmllcyBjZXJ0YWluIG9wZXJhdGlv bnMgaWYgdGhleSBmYWlsLiBXaGlsZSB0aGlzIG1ha2VzIHNlbnNlDQo+ICsgICBmb3IgcmVhbCBI Vywgd2UgZG9uJ3Qga25vdyBmb3Igc3VyZSB3aGV0aGVyIGl0IG1ha2VzIHNlbnNlIGZvciB2aXJ0 dWFsDQo+ICsgICBkZXZpY2VzLg0KPiArDQo+ICtEZWZpbmluZyBhIHJldHJ5IGFuZCB0aW1lb3V0 IHNjaGVtZSBpcyBkZWZlcnJlZCB0byBhIGZ1dHVyZSB2ZXJzaW9uIG9mIHRoZQ0KPiArcHJvdG9j b2wuDQo+ICsNCj4gKy4uIF9Db21tYW5kczoNCj4gKw0KPiArQ29tbWFuZHMNCj4gKy0tLS0tLS0t DQo+ICtUaGUgZm9sbG93aW5nIHRhYmxlIGxpc3RzIHRoZSBWRklPIG1lc3NhZ2UgY29tbWFuZCBJ RHMsIGFuZCB3aGV0aGVyIHRoZQ0KPiArbWVzc2FnZSBjb21tYW5kIGlzIHNlbnQgZnJvbSB0aGUg Y2xpZW50IG9yIHRoZSBzZXJ2ZXIuDQo+ICsNCj4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBOYW1lICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IENvbW1hbmQgfCBSZXF1ZXN0IERpcmVjdGlvbiB8DQo+ ICsrPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT0rPT09PT09PT09 PT0NCj4gPT09PT09PT0rDQo+ICt8IFZGSU9fVVNFUl9WRVJTSU9OICAgICAgICAgICAgICAgIHwg MSAgICAgICB8IHNlcnZlciAtPiBjbGllbnQgIHwNCj4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBWRklPX1VT RVJfRE1BX01BUCAgICAgICAgICAgICAgICB8IDIgICAgICAgfCBjbGllbnQgLT4gc2VydmVyICB8 DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSsNCj4gK3wgVkZJT19VU0VSX0RNQV9VTk1BUCAgICAgICAgICAgICAgfCAz ICAgICAgIHwgY2xpZW50IC0+IHNlcnZlciAgfA0KPiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IFZGSU9fVVNF Ul9ERVZJQ0VfR0VUX0lORk8gICAgICAgIHwgNCAgICAgICB8IGNsaWVudCAtPiBzZXJ2ZXIgIHwN Cj4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKw0KPiArfCBWRklPX1VTRVJfREVWSUNFX0dFVF9SRUdJT05fSU5GTyB8IDUg ICAgICAgfCBjbGllbnQgLT4gc2VydmVyICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgVkZJT19VU0VS X0RFVklDRV9HRVRfSVJRX0lORk8gICAgfCA2ICAgICAgIHwgY2xpZW50IC0+IHNlcnZlciAgfA0K PiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rDQo+ICt8IFZGSU9fVVNFUl9ERVZJQ0VfU0VUX0lSUVMgICAgICAgIHwgNyAg ICAgICB8IGNsaWVudCAtPiBzZXJ2ZXIgIHwNCj4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBWRklPX1VTRVJf UkVHSU9OX1JFQUQgICAgICAgICAgICB8IDggICAgICAgfCBjbGllbnQgLT4gc2VydmVyICB8DQo+ ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSsNCj4gK3wgVkZJT19VU0VSX1JFR0lPTl9XUklURSAgICAgICAgICAgfCA5ICAg ICAgIHwgY2xpZW50IC0+IHNlcnZlciAgfA0KPiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IFZGSU9fVVNFUl9E TUFfUkVBRCAgICAgICAgICAgICAgIHwgMTAgICAgICB8IHNlcnZlciAtPiBjbGllbnQgIHwNCj4g KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKw0KPiArfCBWRklPX1VTRVJfRE1BX1dSSVRFICAgICAgICAgICAgICB8IDExICAg ICAgfCBzZXJ2ZXIgLT4gY2xpZW50ICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgVkZJT19VU0VSX1ZN X0lOVEVSUlVQVCAgICAgICAgICAgfCAxMiAgICAgIHwgc2VydmVyIC0+IGNsaWVudCAgfA0KPiAr Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rDQo+ICt8IFZGSU9fVVNFUl9ERVZJQ0VfUkVTRVQgICAgICAgICAgIHwgMTMgICAg ICB8IGNsaWVudCAtPiBzZXJ2ZXIgIHwNCj4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBWRklPX1VTRVJfRElS VFlfUEFHRVMgICAgICAgICAgICB8IDE0ICAgICAgfCBjbGllbnQgLT4gc2VydmVyICB8DQo+ICsr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSsNCj4gKw0KPiArDQo+ICsuLiBOb3RlOjogU29tZSBWRklPIGRlZmluZXMgY2Fubm90 IGJlIHJldXNlZCBzaW5jZSB0aGVpciB2YWx1ZXMgYXJlDQo+ICsgICBhcmNoaXRlY3R1cmUtc3Bl Y2lmaWMgKGUuZy4gVkZJT19JT01NVV9NQVBfRE1BKS4NCj4gKw0KPiArSGVhZGVyDQo+ICstLS0t LS0NCj4gK0FsbCBtZXNzYWdlcywgYm90aCBjb21tYW5kIG1lc3NhZ2VzIGFuZCByZXBseSBtZXNz YWdlcywgYXJlIHByZWNlZGVkDQo+IGJ5IGENCj4gK2hlYWRlciB0aGF0IGNvbnRhaW5zIGJhc2lj IGluZm9ybWF0aW9uIGFib3V0IHRoZSBtZXNzYWdlLiBUaGUgaGVhZGVyIGlzDQo+ICtmb2xsb3dl ZCBieSBtZXNzYWdlLXNwZWNpZmljIGRhdGEgZGVzY3JpYmVkIGluIHRoZSBzZWN0aW9ucyBiZWxv dy4NCj4gKw0KPiArKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSsNCj4g K3wgTmFtZSAgICAgICAgICAgfCBPZmZzZXQgfCBTaXplICAgICAgICB8DQo+ICsrPT09PT09PT09 PT09PT09PSs9PT09PT09PSs9PT09PT09PT09PT09Kw0KPiArfCBNZXNzYWdlIElEICAgICB8IDAg ICAgICB8IDIgICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rDQo+ICt8IENvbW1hbmQgICAgICAgIHwgMiAgICAgIHwgMiAgICAgICAgICAgfA0K PiArKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSsNCj4gK3wgTWVzc2Fn ZSBzaXplICAgfCA0ICAgICAgfCA0ICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tKw0KPiArfCBGbGFncyAgICAgICAgICB8IDggICAgICB8IDQg ICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r DQo+ICt8ICAgICAgICAgICAgICAgIHwgKy0tLS0tKy0tLS0tLS0tLS0tLSsgfA0KPiArfCAgICAg ICAgICAgICAgICB8IHwgQml0IHwgRGVmaW5pdGlvbiB8IHwNCj4gK3wgICAgICAgICAgICAgICAg fCArPT09PT0rPT09PT09PT09PT09KyB8DQo+ICt8ICAgICAgICAgICAgICAgIHwgfCAwLTMgfCBU eXBlICAgICAgIHwgfA0KPiArfCAgICAgICAgICAgICAgICB8ICstLS0tLSstLS0tLS0tLS0tLS0r IHwNCj4gK3wgICAgICAgICAgICAgICAgfCB8IDQgICB8IE5vX3JlcGx5ICAgfCB8DQo+ICt8ICAg ICAgICAgICAgICAgIHwgKy0tLS0tKy0tLS0tLS0tLS0tLSsgfA0KPiArfCAgICAgICAgICAgICAg ICB8IHwgNSAgIHwgRXJyb3IgICAgICB8IHwNCj4gK3wgICAgICAgICAgICAgICAgfCArLS0tLS0r LS0tLS0tLS0tLS0tKyB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tKw0KPiArfCBFcnJvciAgICAgICAgICB8IDEyICAgICB8IDQgICAgICAgICAgIHwNCj4gKyst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rDQo+ICt8IDxtZXNzYWdlIGRh dGE+IHwgMTYgICAgIHwgdmFyaWFibGUgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSsNCj4gKw0KPiArKiAqTWVzc2FnZSBJRCogaWRlbnRpZmllcyB0aGUg bWVzc2FnZSwgYW5kIGlzIGVjaG9lZCBpbiB0aGUgY29tbWFuZCdzDQo+IHJlcGx5IG1lc3NhZ2Uu DQo+ICsqICpDb21tYW5kKiBzcGVjaWZpZXMgdGhlIGNvbW1hbmQgdG8gYmUgZXhlY3V0ZWQsIGxp c3RlZCBpbg0KPiBDb21tYW5kc18uDQo+ICsqICpNZXNzYWdlIHNpemUqIGNvbnRhaW5zIHRoZSBz aXplIG9mIHRoZSBlbnRpcmUgbWVzc2FnZSwgaW5jbHVkaW5nIHRoZQ0KPiBoZWFkZXIuDQo+ICsq ICpGbGFncyogY29udGFpbnMgYXR0cmlidXRlcyBvZiB0aGUgbWVzc2FnZToNCj4gKw0KPiArICAq IFRoZSAqVHlwZSogYml0cyBpbmRpY2F0ZSB0aGUgbWVzc2FnZSB0eXBlLg0KPiArDQo+ICsgICAg KiAgKkNvbW1hbmQqICh2YWx1ZSAweDApIGluZGljYXRlcyBhIGNvbW1hbmQgbWVzc2FnZS4NCj4g KyAgICAqICAqUmVwbHkqICh2YWx1ZSAweDEpIGluZGljYXRlcyBhIHJlcGx5IG1lc3NhZ2UgYWNr bm93bGVkZ2luZyBhDQo+IHByZXZpb3VzDQo+ICsgICAgICAgY29tbWFuZCB3aXRoIHRoZSBzYW1l IG1lc3NhZ2UgSUQuDQo+ICsgICogKk5vX3JlcGx5KiBpbiBhIGNvbW1hbmQgbWVzc2FnZSBpbmRp Y2F0ZXMgdGhhdCBubyByZXBseSBpcyBuZWVkZWQgZm9yDQo+IHRoaXMgY29tbWFuZC4NCj4gKyAg ICBUaGlzIGlzIGNvbW1vbmx5IHVzZWQgd2hlbiBtdWx0aXBsZSBjb21tYW5kcyBhcmUgc2VudCwg YW5kIG9ubHkgdGhlDQo+IGxhc3QgbmVlZHMNCj4gKyAgICBhY2tub3dsZWRnZW1lbnQuDQo+ICsg ICogKkVycm9yKiBpbiBhIHJlcGx5IG1lc3NhZ2UgaW5kaWNhdGVzIHRoZSBjb21tYW5kIGJlaW5n IGFja25vd2xlZGdlZA0KPiBoYWQNCj4gKyAgICBhbiBlcnJvci4gSW4gdGhpcyBjYXNlLCB0aGUg KkVycm9yKiBmaWVsZCB3aWxsIGJlIHZhbGlkLg0KPiArDQo+ICsqICpFcnJvciogaW4gYSByZXBs eSBtZXNzYWdlIGlzIGEgVU5JWCBlcnJubyB2YWx1ZS4gSXQgaXMgcmVzZXJ2ZWQgaW4gYQ0KPiBj b21tYW5kIG1lc3NhZ2UuDQo+ICsNCj4gK0VhY2ggY29tbWFuZCBtZXNzYWdlIGluIENvbW1hbmRz XyBtdXN0IGJlIHJlcGxpZWQgdG8gd2l0aCBhIHJlcGx5DQo+IG1lc3NhZ2UsIHVubGVzcyB0aGUN Cj4gK21lc3NhZ2Ugc2V0cyB0aGUgKk5vX1JlcGx5KiBiaXQuICBUaGUgcmVwbHkgY29uc2lzdHMg b2YgdGhlIGhlYWRlciB3aXRoDQo+IHRoZSAqUmVwbHkqDQo+ICtiaXQgc2V0LCBwbHVzIGFueSBh ZGRpdGlvbmFsIGRhdGEuDQo+ICsNCj4gK1ZGSU9fVVNFUl9WRVJTSU9ODQo+ICstLS0tLS0tLS0t LS0tLS0tLQ0KPiArDQo+ICtNZXNzYWdlIGZvcm1hdA0KPiArXl5eXl5eXl5eXl5eXl4NCj4gKw0K PiArKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgTmFtZSAg ICAgICAgIHwgVmFsdWUgICAgICAgICAgICAgICAgICB8DQo+ICsrPT09PT09PT09PT09PT0rPT09 PT09PT09PT09PT09PT09PT09PT09Kw0KPiArfCBNZXNzYWdlIElEICAgfCA8SUQ+ICAgICAgICAg ICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r DQo+ICt8IENvbW1hbmQgICAgICB8IDEgICAgICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgTWVzc2FnZSBzaXplIHwg MTYgKyB2ZXJzaW9uIGxlbmd0aCAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKw0KPiArfCBGbGFncyAgICAgICAgfCBSZXBseSBiaXQgc2V0IGluIHJlcGx5 IHwNCj4gKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IEVy cm9yICAgICAgICB8IDAvZXJybm8gICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgVmVyc2lvbiAgICAgIHwgSlNPTiBieXRl IGFycmF5ICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKw0KPiArDQo+ICtUaGlzIGlzIHRoZSBpbml0aWFsIG1lc3NhZ2Ugc2VudCBieSB0aGUgc2Vy dmVyIGFmdGVyIHRoZSBzb2NrZXQgY29ubmVjdGlvbiBpcw0KPiArZXN0YWJsaXNoZWQuIFRoZSB2 ZXJzaW9uIGlzIGluIEpTT04gZm9ybWF0LCBhbmQgdGhlIGZvbGxvd2luZyBvYmplY3RzIG11c3QN Cj4gYmUNCj4gK2luY2x1ZGVkOg0KPiArDQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBO YW1lICAgICAgICAgfCBUeXBlICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwNCj4gKys9PT09PT09PT09PT09PSs9PT09PT09PSs9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09Kw0KPiArfCB2ZXJz aW9uICAgICAgfCBvYmplY3QgfCBgYHsibWFqb3IiOiA8bnVtYmVyPiwgIm1pbm9yIjogPG51bWJl cj59YGAgICAgICAgIHwNCj4gK3wgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICt8ICAgICAgICAgICAg ICB8ICAgICAgICB8IFZlcnNpb24gc3VwcG9ydGVkIGJ5IHRoZSBzZW5kZXIsIGUuZy4gIjAuMSIu ICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgY2FwYWJpbGl0aWVzIHwgYXJy YXkgIHwgUmVzZXJ2ZWQuIENhbiBiZSBvbWl0dGVkIGZvciB2MC4xLCBvdGhlcndpc2UgbXVzdCB8 DQo+ICt8ICAgICAgICAgICAgICB8ICAgICAgICB8IGJlIGVtcHR5LiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKw0K PiArQ29tbW9uIGNhcGFiaWxpdGllczoNCj4gKw0KPiArKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ ICt8IE5hbWUgICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKys9PT09PT09PT09PT09PT0rPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09PSsNCj4g K3wgYGBtYXhfZmRzYGAgICB8IE1heGltdW0gbnVtYmVyIG9mIGZpbGUgZGVzY3JpcHRvcnMgdGhh dCBjYW4gYmUgcmVjZWl2ZWQNCj4gYnkgfA0KPiArfCAgICAgICAgICAgICAgIHwgdGhlIHNlbmRl ci4gT3B0aW9uYWwuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsr LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgYGBtaWdyYXRpb25gYCB8IE1pZ3JhdGlvbiBjYXBh YmlsaXR5IG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcgZm9ybWF0OiAgICAgfA0KPiArfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8DQo+ICt8ICAgICAgICAgICAgICAgfCArLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIHwNCj4gK3wgICAgICAgICAg ICAgICB8IHwgTmFtZSAgICAgICB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgfA0KPiArfCAgICAgICAgICAgICAgIHwNCj4gKz09PT09PT09PT09PSs9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kw0KPiB8DQo+ICt8ICAgICAgICAg ICAgICAgfCB8IGBgcGdzaXplYGAgfCBQYWdlIHNpemUgb2YgZGlydHkgcGFnZXMgYml0bWFwLiBU aGUgICAgICB8IHwNCj4gK3wgICAgICAgICAgICAgICB8IHwgICAgICAgICAgICB8IHNtYWxsZXN0 IGJldHdlZW4gdGhlIGNsaWVudCBhbmQgdGhlICAgICAgIHwgfA0KPiArfCAgICAgICAgICAgICAg IHwgfCAgICAgICAgICAgIHwgc2VydmVyIGlzIHVzZWQuICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCB8DQo+ICt8ICAgICAgICAgICAgICAgfCArLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIHwNCj4gKystLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Kw0KPiArDQo+ICsuLiBfVmVyc2lvbjoNCj4gKw0KPiArVmVyc2lvbmluZyBhbmQgRmVhdHVyZSBT dXBwb3J0DQo+ICteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4NCj4gK1Vwb24gYWNjZXB0 aW5nIGEgY29ubmVjdGlvbiwgdGhlIHNlcnZlciBtdXN0IHNlbmQgYSBWRklPX1VTRVJfVkVSU0lP Tg0KPiBtZXNzYWdlDQo+ICtwcm9wb3NpbmcgYSBwcm90b2NvbCB2ZXJzaW9uIGFuZCBhIHNldCBv ZiBjYXBhYmlsaXRpZXMuIFRoZSBjbGllbnQgY29tcGFyZXMNCj4gK3RoZXNlIHdpdGggdGhlIHZl cnNpb25zIGFuZCBjYXBhYmlsaXRpZXMgaXQgc3VwcG9ydHMgYW5kIHNlbmRzIGENCj4gK1ZGSU9f VVNFUl9WRVJTSU9OIHJlcGx5IGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHJ1bGVzLg0KPiAr DQo+ICsqIFRoZSBtYWpvciB2ZXJzaW9uIGluIHRoZSByZXBseSBtdXN0IGJlIHRoZSBzYW1lIGFz IHByb3Bvc2VkLiBJZiB0aGUgY2xpZW50DQo+ICsgIGRvZXMgbm90IHN1cHBvcnQgdGhlIHByb3Bv c2VkIG1ham9yLCBpdCBjbG9zZXMgdGhlIGNvbm5lY3Rpb24uDQo+ICsqIFRoZSBtaW5vciB2ZXJz aW9uIGluIHRoZSByZXBseSBtdXN0IGJlIGVxdWFsIHRvIG9yIGxlc3MgdGhhbiB0aGUgbWlub3IN Cj4gKyAgdmVyc2lvbiBwcm9wb3NlZC4NCj4gKyogVGhlIGNhcGFiaWxpdHkgbGlzdCBtdXN0IGJl IGEgc3Vic2V0IG9mIHRob3NlIHByb3Bvc2VkLiBJZiB0aGUgY2xpZW50DQo+ICsgIHJlcXVpcmVz IGEgY2FwYWJpbGl0eSB0aGUgc2VydmVyIGRpZCBub3QgaW5jbHVkZSwgaXQgY2xvc2VzIHRoZSBj b25uZWN0aW9uLg0KPiArDQo+ICtUaGUgcHJvdG9jb2wgbWFqb3IgdmVyc2lvbiB3aWxsIG9ubHkg Y2hhbmdlIHdoZW4gaW5jb21wYXRpYmxlIHByb3RvY29sDQo+IGNoYW5nZXMNCj4gK2FyZSBtYWRl LCBzdWNoIGFzIGNoYW5naW5nIHRoZSBtZXNzYWdlIGZvcm1hdC4gVGhlIG1pbm9yIHZlcnNpb24g bWF5DQo+IGNoYW5nZQ0KPiArd2hlbiBjb21wYXRpYmxlIGNoYW5nZXMgYXJlIG1hZGUsIHN1Y2gg YXMgYWRkaW5nIG5ldyBtZXNzYWdlcyBvcg0KPiBjYXBhYmlsaXRpZXMsDQo+ICtCb3RoIHRoZSBj bGllbnQgYW5kIHNlcnZlciBtdXN0IHN1cHBvcnQgYWxsIG1pbm9yIHZlcnNpb25zIGxlc3MgdGhh biB0aGUNCj4gK21heGltdW0gbWlub3IgdmVyc2lvbiBpdCBzdXBwb3J0cy4gRS5nLiwgYW4gaW1w bGVtZW50YXRpb24gdGhhdCBzdXBwb3J0cw0KPiArdmVyc2lvbiAxLjMgbXVzdCBhbHNvIHN1cHBv cnQgMS4wIHRocm91Z2ggMS4yLg0KPiArDQo+ICtXaGVuIG1ha2luZyBhIGNoYW5nZSB0byB0aGlz IHNwZWNpZmljYXRpb24sIHRoZSBwcm90b2NvbCB2ZXJzaW9uIG51bWJlcg0KPiBtdXN0DQo+ICti ZSBpbmNsdWRlZCBpbiB0aGUgZm9ybSAiYWRkZWQgaW4gdmVyc2lvbiBYLlkiDQo+ICsNCj4gKw0K PiArVkZJT19VU0VSX0RNQV9NQVAgYW5kIFZGSU9fVVNFUl9ETUFfVU5NQVANCj4gKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gK01lc3NhZ2UgRm9ybWF0 DQo+ICteXl5eXl5eXl5eXl5eXg0KPiArDQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKw0KPiArfCBOYW1lICAgICAgICAgfCBWYWx1ZSAgICAgICAgICAgICAgICAg IHwNCj4gKys9PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT0rDQo+ICt8IE1l c3NhZ2UgSUQgICB8IDxJRD4gICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgQ29tbWFuZCAgICAgIHwgTUFQPTIsIFVO TUFQPTMgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKw0KPiArfCBNZXNzYWdlIHNpemUgfCAxNiArIHRhYmxlIHNpemUgICAgICAgIHwNCj4gKyst LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IEZsYWdzICAgICAg ICB8IFJlcGx5IGJpdCBzZXQgaW4gcmVwbHkgfA0KPiArKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgRXJyb3IgICAgICAgIHwgMC9lcnJubyAgICAgICAgICAg ICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiAr fCBUYWJsZSAgICAgICAgfCBhcnJheSBvZiB0YWJsZSBlbnRyaWVzIHwNCj4gKystLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsNCj4gK1RoaXMgY29tbWFuZCBtZXNz YWdlIGlzIHNlbnQgYnkgdGhlIGNsaWVudCB0byB0aGUgc2VydmVyIHRvIGluZm9ybSBpdCBvZiB0 aGUNCj4gK21lbW9yeSByZWdpb25zIHRoZSBzZXJ2ZXIgY2FuIGFjY2Vzcy4gSXQgbXVzdCBiZSBz ZW50IGJlZm9yZSB0aGUgc2VydmVyDQo+IGNhbg0KPiArcGVyZm9ybSBhbnkgRE1BIHRvIHRoZSBj bGllbnQuIEl0IGlzIG5vcm1hbGx5IHNlbnQgZGlyZWN0bHkgYWZ0ZXIgdGhlIHZlcnNpb24NCj4g K2hhbmRzaGFrZSBpcyBjb21wbGV0ZWQsIGJ1dCBtYXkgYWxzbyBvY2N1ciB3aGVuIG1lbW9yeSBp cyBhZGRlZCB0byBvcg0KPiArc3VidHJhY3RlZCBmcm9tIHRoZSBjbGllbnQsIG9yIGlmIHRoZSBj bGllbnQgdXNlcyBhIHZJT01NVS4gSWYgdGhlIGNsaWVudCBkb2VzDQo+ICtub3QgZXhwZWN0IHRo ZSBzZXJ2ZXIgdG8gcGVyZm9ybSBETUEgdGhlbiBpdCBkb2VzIG5vdCBuZWVkIHRvIHNlbmQgdG8g dGhlDQo+ICtzZXJ2ZXIgVkZJT19VU0VSX0RNQV9NQVAgYW5kIFZGSU9fVVNFUl9ETUFfVU5NQVAg Y29tbWFuZHMuDQo+IElmIHRoZSBzZXJ2ZXIgZG9lcw0KPiArbm90IG5lZWQgdG8gcGVyZm9ybSBE TUEgdGhlbiBpdCBjYW4gaWdub3JlIHN1Y2ggY29tbWFuZHMgYnV0IGl0IG11c3Qgc3RpbGwNCj4g K3JlcGx5IHRvIHRoZW0uIFRoZSB0YWJsZSBpcyBhbiBhcnJheSBvZiB0aGUgZm9sbG93aW5nIHN0 cnVjdHVyZS4gIFRoaXMNCj4gK3N0cnVjdHVyZSBpcyAzMiBieXRlcyBpbiBzaXplLCBzbyB0aGUg bWVzc2FnZSBzaXplIGlzOg0KPiArMTYgKyAoIyBvZiB0YWJsZSBlbnRyaWVzICogMzIpLg0KPiAr DQo+ICtWRklPIGJpdG1hcCBmb3JtYXQNCj4gK15eXl5eXl5eXl5eXl5eXl5eXl5eXl4NCj4gKw0K PiArKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLSsNCj4gK3wgTmFtZSAgIHwgT2Zmc2V0IHwgU2l6 ZSB8DQo+ICsrPT09PT09PT0rPT09PT09PT0rPT09PT09Kw0KPiArfCBwZ3NpemUgfCAwICAgICAg fCA4ICAgIHwNCj4gKystLS0tLS0tLSstLS0tLS0tLSstLS0tLS0rDQo+ICt8IHNpemUgICB8IDgg ICAgICB8IDggICAgfA0KPiArKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLSsNCj4gK3wgZGF0YSAg IHwgMTYgICAgIHwgOCAgICB8DQo+ICsrLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tKw0KPiArDQo+ ICsqICpwZ3NpemUqIGlzIHRoZSBwYWdlIHNpemUgZm9yIHRoZSBiaXRtYXAsIGluIGJ5dGVzLg0K PiArKiAqc2l6ZSogdGhlIHNpemUgZm9yIHRoZSBiaXRtYXAsIGluIGJ5dGVzLg0KPiArKiAqZGF0 YSogVGhpcyBmaWVsZCBpcyB1bnVzZWQgaW4gdmZpby11c2VyLg0KPiArDQo+ICtUaGUgVkZJTyBi aXRtYXAgc3RydWN0dXJlIGlzIGRlZmluZWQgaW4gYGA8bGludXgvdmZpby5oPmBgDQo+ICsoYGBz dHJ1Y3QgdmZpb19iaXRtYXBgYCkuDQo+ICsNCj4gK1RhYmxlIGVudHJ5IGZvcm1hdA0KPiArXl5e Xl5eXl5eXl5eXl5eXl5eDQo+ICsNCj4gKystLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBOYW1lICAg ICAgICB8IE9mZnNldCB8IFNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8DQo+ICsrPT09PT09PT09PT09PSs9PT09PT09PSs9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NCj4gPT09PT09PT09PT09PT09PT0rDQo+ICt8IEFkZHJlc3MgICAgIHwg MCAgICAgIHwgOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwNCj4gKystLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBTaXplICAgICAgICB8IDggICAgICB8IDgg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsrLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSsNCj4gK3wgT2Zmc2V0ICAgICAgfCAxNiAgICAgfCA4ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rDQo+ICt8IFByb3RlY3Rpb25zIHwgMjQgICAgIHwgNCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBG bGFncyAgICAgICB8IDI4ICAgICB8IDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgICAgICAgICAgICAg fCArLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSsgfA0KPiArfCAgICAgICAgICAgICB8IHwgQml0IHwgRGVmaW5pdGlvbiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCB8DQo+ICt8ICAgICAgICAgICAgIHwNCj4gKz09PT09 Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rIHwNCj4g K3wgICAgICAgICAgICAgfCB8IDAgICB8IE1hcHBhYmxlL1ZGSU9fRE1BX1VOTUFQX0ZMQUdfR0VU X0RJUlRZX0JJVE1BUA0KPiB8IHwNCj4gK3wgICAgICAgICAgICAgfCArLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfA0KPiArKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rDQo+ICt8IERhdGEgICAgICAgIHwgMzIgICAgIHwgdmFyaWFibGUgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0K PiArDQo+ICsNCj4gKyogKkFkZHJlc3MqIGlzIHRoZSBiYXNlIERNQSBhZGRyZXNzIG9mIHRoZSBy ZWdpb24uDQo+ICsqICpTaXplKiBpcyB0aGUgc2l6ZSBvZiB0aGUgcmVnaW9uLg0KPiArKiAqT2Zm c2V0KiBpcyB0aGUgZmlsZSBvZmZzZXQgb2YgdGhlIHJlZ2lvbiB3aXRoIHJlc3BlY3QgdG8gdGhl IGFzc29jaWF0ZWQgZmlsZQ0KPiArICBkZXNjcmlwdG9yLg0KPiArKiAqUHJvdGVjdGlvbnMqIGFy ZSB0aGUgcmVnaW9uJ3MgcHJvdGVjdGlvbiBhdHRyaWJ1dGVzIGFzIGVuY29kZWQgaW4NCj4gKyAg YGA8c3lzL21tYW4uaD5gYC4NCj4gKyogKkZsYWdzKiBjb250YWluIHRoZSBmb2xsb3dpbmcgcmVn aW9uIGF0dHJpYnV0ZXM6DQo+ICsNCj4gKyAgKiAqTWFwcGFibGUqIGluZGljYXRlcyB0aGF0IHRo ZSByZWdpb24gY2FuIGJlIG1hcHBlZCB2aWEgdGhlIG1tYXAoKQ0KPiBzeXN0ZW0gY2FsbA0KPiAr ICAgIHVzaW5nIHRoZSBmaWxlIGRlc2NyaXB0b3IgcHJvdmlkZWQgaW4gdGhlIG1lc3NhZ2UgbWV0 YS1kYXRhLiBUaGlzIGZsYWcgaXMNCj4gKyAgICBvbmx5IHZhbGlkIGZvciBWRklPX1VTRVJfRE1B X01BUC4NCj4gKw0KPiArICAqICpWRklPX0RNQV9VTk1BUF9GTEFHX0dFVF9ESVJUWV9CSVRNQVAq IGluZGljYXRlcyB0aGF0IGEgZGlydHkNCj4gcGFnZSBiaXRtYXANCj4gKyAgICBtdXN0IGJlIHBv cHVsYXRlZCBiZWZvcmUgdW5tYXBwaW5nIHRoZSB0aGUgRE1BIHJlZ2lvbi4gVGhpcyBmbGFnIGlz DQo+IG9ubHkNCj4gKyAgICB2YWxpZCBmb3IgVkZJT19VU0VSX0RNQV9VTk1BUC4gVGhlIGNsaWVu dCBtdXN0IHByb3ZpZGUgYQ0KPiArICAgIGBgc3RydWN0IHZmaW9fYml0bWFwYGAgaW4gdGhlIGRh dGEgZmllbGQgd2l0aCB0aGUgYGB2ZmlvX2JpdG1hcC5wZ3NpemVgYA0KPiArICAgIGFuZCBgYHZm aW9fYml0bWFwLnNpemVgYCBmaWVsZHMgaW5pdGlhbGl6ZWQuDQo+ICsNCj4gK1ZGSU9fVVNFUl9E TUFfTUFQDQo+ICsiIiIiIiIiIiIiIiIiIiIiIg0KPiArSWYgYSBETUEgcmVnaW9uIGJlaW5nIGFk ZGVkIGNhbiBiZSBkaXJlY3RseSBtYXBwZWQgYnkgdGhlIHNlcnZlciwgYW4gYXJyYXkNCj4gb2YN Cj4gK2ZpbGUgZGVzY3JpcHRvcnMgbXVzdCBiZSBzZW50IGFzIHBhcnQgb2YgdGhlIG1lc3NhZ2Ug bWV0YS1kYXRhLiBFYWNoIHJlZ2lvbg0KPiArZW50cnkgbXVzdCBoYXZlIGEgY29ycmVzcG9uZGlu ZyBmaWxlIGRlc2NyaXB0b3IuIE9uIEFGX1VOSVggc29ja2V0cywgdGhlDQo+IGZpbGUNCj4gK2Rl c2NyaXB0b3JzIG11c3QgYmUgcGFzc2VkIGFzIFNDTV9SSUdIVFMgdHlwZSBhbmNpbGxhcnkgZGF0 YS4gT3RoZXJ3aXNlLA0KPiBpZiBhDQo+ICtETUEgcmVnaW9uIGNhbm5vdCBiZSBkaXJlY3RseSBt YXBwZWQgYnkgdGhlIHNlcnZlciwgaXQgY2FuIGJlIGFjY2Vzc2VkIGJ5DQo+IHRoZQ0KPiArc2Vy dmVyIHVzaW5nIFZGSU9fVVNFUl9ETUFfUkVBRCBhbmQgVkZJT19VU0VSX0RNQV9XUklURQ0KPiBt ZXNzYWdlcywgZXhwbGFpbmVkIGluDQo+ICtgUmVhZCBhbmQgV3JpdGUgT3BlcmF0aW9uc2BfLiBB IGNvbW1hbmQgdG8gbWFwIG92ZXIgYW4gZXhpc3RpbmcgcmVnaW9uDQo+IG11c3QgYmUNCj4gK2Zh aWxlZCBieSB0aGUgc2VydmVyIHdpdGggYGBFRVhJU1RgYCBzZXQgaW4gZXJyb3IgZmllbGQgaW4g dGhlIHJlcGx5Lg0KPiArDQo+ICtWRklPX1VTRVJfRE1BX1VOTUFQDQo+ICsiIiIiIiIiIiIiIiIi IiIiIiIiDQo+ICtVcG9uIHJlY2VpdmluZyBhIFZGSU9fVVNFUl9ETUFfVU5NQVAgY29tbWFuZCwg aWYgdGhlIGZpbGUgZGVzY3JpcHRvcg0KPiBpcyBtYXBwZWQNCj4gK3RoZW4gdGhlIHNlcnZlciBt dXN0IHJlbGVhc2UgYWxsIHJlZmVyZW5jZXMgdG8gdGhhdCBETUEgcmVnaW9uIGJlZm9yZQ0KPiBy ZXBseWluZywNCj4gK3doaWNoIGluY2x1ZGVzIHBvdGVudGlhbGx5IGluIGZsaWdodCBETUEgdHJh bnNhY3Rpb25zLiBSZW1vdmluZyBhIHBvcnRpb24gb2YNCj4gYQ0KPiArRE1BIHJlZ2lvbiBpcyBw b3NzaWJsZS4gSWYgdGhlDQo+IFZGSU9fRE1BX1VOTUFQX0ZMQUdfR0VUX0RJUlRZX0JJVE1BUCBi aXQgaXMgc2V0DQo+ICtpbiB0aGUgcmVxdWVzdCwgdGhlIHNlcnZlciBtdXN0IGFwcGVuZCB0byB0 aGUgaGVhZGVyIHRoZSBgYHN0cnVjdA0KPiB2ZmlvX2JpdG1hcGBgDQo+ICtyZWNlaXZlZCBpbiB0 aGUgY29tbWFuZCwgZm9sbG93ZWQgYnkgdGhlIGJpdG1hcC4gVGh1cywgdGhlIG1lc3NhZ2Ugc2l6 ZQ0KPiB0aGUNCj4gK2NsaWVudCBzaG91bGQgaXMgZXhwZWN0IGlzIHRoZSBzaXplIG9mIHRoZSBo ZWFkZXIgcGx1cyB0aGUgc2l6ZSBvZg0KPiArYGBzdHJ1Y3QgdmZpb19iaXRtYXBgYCBwbHVzIGBg dmZpb19iaXRtYXAuc2l6ZWBgIGJ5dGVzLiBFYWNoIGJpdCBpbiB0aGUgYml0bWFwDQo+ICtyZXBy ZXNlbnRzIG9uZSBwYWdlIG9mIHNpemUgYGB2ZmlvX2JpdG1hcC5wZ3NpemVgYC4NCj4gKw0KPiAr Li4gTm90ZTo6DQo+ICsgSSBzdXBwb3NlIGRpcnQgcGFnZSBsb2dnaW5nIG11c3QgaGF2ZSBiZWVu IHByZXZpb3VzbHkgZW5hYmxlZCBpbiBvcmRlciBmb3INCj4gdGhlDQo+ICsgY2xpZW50IHRvIGJl IGFibGUgdG8gdXNlIHRoZQ0KPiBWRklPX0RNQV9VTk1BUF9GTEFHX0dFVF9ESVJUWV9CSVRNQVAg ZmxhZz8NCj4gKw0KPiArVkZJT19VU0VSX0RFVklDRV9HRVRfSU5GTw0KPiArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KPiArDQo+ICtNZXNzYWdlIGZvcm1hdA0KPiArXl5eXl5eXl5eXl5eXl4N Cj4gKw0KPiArKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ ICt8IE5hbWUgICAgICAgICB8IFZhbHVlICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKys9PT09 PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09Kw0KPiArfCBNZXNzYWdlIElE ICAgfCA8SUQ+ICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgQ29tbWFuZCAgICAgIHwgNCAgICAgICAg ICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rDQo+ICt8IE1lc3NhZ2Ugc2l6ZSB8IDE2IGluIGNvbW1hbmQsIDMyIGluIHJl cGx5IHwNCj4gKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0K PiArfCBGbGFncyAgICAgICAgfCBSZXBseSBiaXQgc2V0IGluIHJlcGx5ICAgICB8DQo+ICsrLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgRXJyb3IgICAg ICAgIHwgMC9lcnJubyAgICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IERldmljZSBpbmZvICB8IFZGSU8gZGV2 aWNlIGluZm8gICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKw0KPiArDQo+ICtUaGlzIGNvbW1hbmQgbWVzc2FnZSBpcyBzZW50IGJ5IHRo ZSBjbGllbnQgdG8gdGhlIHNlcnZlciB0byBxdWVyeSBmb3IgYmFzaWMNCj4gK2luZm9ybWF0aW9u IGFib3V0IHRoZSBkZXZpY2UuIE9ubHkgdGhlIG1lc3NhZ2UgaGVhZGVyIGlzIG5lZWRlZCBpbiB0 aGUNCj4gY29tbWFuZA0KPiArbWVzc2FnZS4gIFRoZSBWRklPIGRldmljZSBpbmZvIHN0cnVjdHVy ZSBpcyBkZWZpbmVkIGluIGBgPGxpbnV4L3ZmaW8uaD5gYA0KPiArKGBgc3RydWN0IHZmaW9fZGV2 aWNlX2luZm9gYCkuDQo+ICsNCj4gK1ZGSU8gZGV2aWNlIGluZm8gZm9ybWF0DQo+ICteXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXg0KPiArDQo+ICsrLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgTmFtZSAgICAgICAgfCBPZmZzZXQgfCBTaXplICAg ICAgICAgICAgICAgICAgICAgfA0KPiArKz09PT09PT09PT09PT0rPT09PT09PT0rPT09PT09PT09 PT09PT09PT09PT09PT09PT0rDQo+ICt8IGFyZ3N6ICAgICAgIHwgMTYgICAgIHwgNCAgICAgICAg ICAgICAgICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKw0KPiArfCBmbGFncyAgICAgICB8IDIwICAgICB8IDQgICAgICAgICAg ICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSsNCj4gK3wgICAgICAgICAgICAgfCArLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSsgfA0KPiArfCAgICAgICAgICAgICB8IHwgQml0IHwgRGVmaW5pdGlvbiAgICAg ICAgICAgICAgfCB8DQo+ICt8ICAgICAgICAgICAgIHwgKz09PT09Kz09PT09PT09PT09PT09PT09 PT09PT09PT0rIHwNCj4gK3wgICAgICAgICAgICAgfCB8IDAgICB8IFZGSU9fREVWSUNFX0ZMQUdT X1JFU0VUIHwgfA0KPiArfCAgICAgICAgICAgICB8ICstLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKyB8DQo+ICt8ICAgICAgICAgICAgIHwgfCAxICAgfCBWRklPX0RFVklDRV9GTEFHU19Q Q0kgICB8IHwNCj4gK3wgICAgICAgICAgICAgfCArLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsgfA0KPiArKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rDQo+ICt8IG51bV9yZWdpb25zIHwgMjQgICAgIHwgNCAgICAgICAgICAgICAgICAgICAg ICAgIHwNCj4gKystLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKw0KPiArfCBudW1faXJxcyAgICB8IDI4ICAgICB8IDQgICAgICAgICAgICAgICAgICAgICAg ICB8DQo+ICsrLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSsNCj4gKw0KPiArKiAqYXJnc3oqIGlzIHRoZSBzaXplIG9mIHRoZSBWRklPIGRldmljZSBpbmZv IHN0cnVjdHVyZS4NCj4gKyogKmZsYWdzKiBjb250YWlucyB0aGUgZm9sbG93aW5nIGRldmljZSBh dHRyaWJ1dGVzLg0KPiArDQo+ICsgICogVkZJT19ERVZJQ0VfRkxBR1NfUkVTRVQgaW5kaWNhdGVz IHRoYXQgdGhlIGRldmljZSBzdXBwb3J0cyB0aGUNCj4gKyAgICBWRklPX1VTRVJfREVWSUNFX1JF U0VUIG1lc3NhZ2UuDQo+ICsgICogVkZJT19ERVZJQ0VfRkxBR1NfUENJIGluZGljYXRlcyB0aGF0 IHRoZSBkZXZpY2UgaXMgYSBQQ0kgZGV2aWNlLg0KPiArDQo+ICsqICpudW1fcmVnaW9ucyogaXMg dGhlIG51bWJlciBvZiBtZW1vcnkgcmVnaW9ucyB0aGF0IHRoZSBkZXZpY2UNCj4gZXhwb3Nlcy4N Cj4gKyogKm51bV9pcnFzKiBpcyB0aGUgbnVtYmVyIG9mIGRpc3RpbmN0IGludGVycnVwdCB0eXBl cyB0aGF0IHRoZSBkZXZpY2UNCj4gc3VwcG9ydHMuDQo+ICsNCj4gK1RoaXMgdmVyc2lvbiBvZiB0 aGUgcHJvdG9jb2wgb25seSBzdXBwb3J0cyBQQ0kgZGV2aWNlcy4gQWRkaXRpb25hbCBkZXZpY2Vz DQo+IG1heQ0KPiArYmUgc3VwcG9ydGVkIGluIGZ1dHVyZSB2ZXJzaW9ucy4NCj4gKw0KPiArVkZJ T19VU0VSX0RFVklDRV9HRVRfUkVHSU9OX0lORk8NCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ICsNCj4gK01lc3NhZ2UgZm9ybWF0DQo+ICteXl5eXl5eXl5eXl5eXg0KPiAr DQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBOYW1l ICAgICAgICAgfCBWYWx1ZSAgICAgICAgICAgICAgICAgIHwNCj4gKys9PT09PT09PT09PT09PSs9 PT09PT09PT09PT09PT09PT09PT09PT0rDQo+ICt8IE1lc3NhZ2UgSUQgICB8IDxJRD4gICAgICAg ICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSsNCj4gK3wgQ29tbWFuZCAgICAgIHwgNSAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsrLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBNZXNzYWdlIHNpemUg fCA0OCArIGFueSBjYXBzICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rDQo+ICt8IEZsYWdzICAgICAgICB8IFJlcGx5IGJpdCBzZXQgaW4gcmVw bHkgfA0KPiArKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wg RXJyb3IgICAgICAgIHwgMC9lcnJubyAgICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBSZWdpb24gaW5mbyAgfCBWRklPIHJl Z2lvbiBpbmZvICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rDQo+ICsNCj4gK1RoaXMgY29tbWFuZCBtZXNzYWdlIGlzIHNlbnQgYnkgdGhlIGNsaWVu dCB0byB0aGUgc2VydmVyIHRvIHF1ZXJ5IGZvcg0KPiAraW5mb3JtYXRpb24gYWJvdXQgZGV2aWNl IG1lbW9yeSByZWdpb25zLiBUaGUgVkZJTyByZWdpb24gaW5mbyBzdHJ1Y3R1cmUgaXMNCj4gK2Rl ZmluZWQgaW4gYGA8bGludXgvdmZpby5oPmBgIChgYHN0cnVjdCB2ZmlvX3JlZ2lvbl9pbmZvYGAp LiBTaW5jZSB0aGUgY2xpZW50DQo+ICtkb2VzIG5vdCBrbm93IHRoZSBzaXplIG9mIHRoZSBjYXBh YmlsaXRpZXMsIHRoZSBzaXplIG9mIHRoZSByZXBseSBpdCBzaG91bGQNCj4gK2V4cGVjdCBpcyA0 OCBwbHVzIGFueSBjYXBhYmlsaXRpZXMgd2hvc2Ugc2l6ZSBpcyBpbmRpY2F0ZWQgaW4gdGhlIHNp emUgZmllbGQgb2YNCj4gK3RoZSByZXBseSBoZWFkZXIuDQo+ICsNCj4gK1ZGSU8gcmVnaW9uIGlu Zm8gZm9ybWF0DQo+ICteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXg0KPiArDQo+ICsrLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgTmFtZSAg ICAgICB8IE9mZnNldCB8IFNpemUgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiArKz09PT09 PT09PT09PSs9PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rDQo+ICt8IGFy Z3N6ICAgICAgfCAxNiAgICAgfCA0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKyst LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiAr fCBmbGFncyAgICAgIHwgMjAgICAgIHwgNCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ ICsrLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsN Cj4gK3wgICAgICAgICAgICB8ICstLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsg fA0KPiArfCAgICAgICAgICAgIHwgfCBCaXQgfCBEZWZpbml0aW9uICAgICAgICAgICAgICAgICAg fCB8DQo+ICt8ICAgICAgICAgICAgfCArPT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0rIHwNCj4gK3wgICAgICAgICAgICB8IHwgMCAgIHwgVkZJT19SRUdJT05fSU5GT19GTEFHX1JF QUQgIHwgfA0KPiArfCAgICAgICAgICAgIHwgKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKyB8DQo+ICt8ICAgICAgICAgICAgfCB8IDEgICB8IFZGSU9fUkVHSU9OX0lORk9fRkxB R19XUklURSB8IHwNCj4gK3wgICAgICAgICAgICB8ICstLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSsgfA0KPiArfCAgICAgICAgICAgIHwgfCAyICAgfCBWRklPX1JFR0lPTl9JTkZP X0ZMQUdfTU1BUCAgfCB8DQo+ICt8ICAgICAgICAgICAgfCArLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rIHwNCj4gK3wgICAgICAgICAgICB8IHwgMyAgIHwgVkZJT19SRUdJT05f SU5GT19GTEFHX0NBUFMgIHwgfA0KPiArfCAgICAgICAgICAgIHwgKy0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKyB8DQo+ICsrLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgaW5kZXggICAgICB8IDI0ICAgICB8IDQgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IGNhcF9vZmZzZXQgfCAyOCAgICAgfCA0 ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBzaXplICAgICAgIHwgMzIgICAg IHwgOCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgb2Zmc2V0ICAgICB8IDQw ICAgICB8IDggICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsNCj4gKyogKmFyZ3N6 KiBpcyB0aGUgc2l6ZSBvZiB0aGUgVkZJTyByZWdpb24gaW5mbyBzdHJ1Y3R1cmUgcGx1cyB0aGUN Cj4gKyAgc2l6ZSBvZiBhbnkgcmVnaW9uIGNhcGFiaWxpdGllcyByZXR1cm5lZC4NCj4gKyogKmZs YWdzKiBhcmUgYXR0cmlidXRlcyBvZiB0aGUgcmVnaW9uOg0KPiArDQo+ICsgICogKlZGSU9fUkVH SU9OX0lORk9fRkxBR19SRUFEKiBhbGxvd3MgY2xpZW50IHJlYWQgYWNjZXNzIHRvIHRoZQ0KPiBy ZWdpb24uDQo+ICsgICogKlZGSU9fUkVHSU9OX0lORk9fRkxBR19XUklURSogYWxsb3dzIGNsaWVu dCB3cml0ZSBhY2Nlc3MgdG8gdGhlDQo+IHJlZ2lvbi4NCj4gKyAgKiAqVkZJT19SRUdJT05fSU5G T19GTEFHX01NQVAqIHNwZWNpZmllcyB0aGUgY2xpZW50IGNhbiBtbWFwKCkNCj4gdGhlIHJlZ2lv bi4NCj4gKyAgICBXaGVuIHRoaXMgZmxhZyBpcyBzZXQsIHRoZSByZXBseSB3aWxsIGluY2x1ZGUg YSBmaWxlIGRlc2NyaXB0b3IgaW4gaXRzDQo+ICsgICAgbWV0YS1kYXRhLiBPbiBBRl9VTklYIHNv Y2tldHMsIHRoZSBmaWxlIGRlc2NyaXB0b3JzIHdpbGwgYmUgcGFzc2VkIGFzDQo+ICsgICAgU0NN X1JJR0hUUyB0eXBlIGFuY2lsbGFyeSBkYXRhLg0KPiArICAqICpWRklPX1JFR0lPTl9JTkZPX0ZM QUdfQ0FQUyogaW5kaWNhdGVzIGFkZGl0aW9uYWwgY2FwYWJpbGl0aWVzDQo+IGZvdW5kIGluIHRo ZQ0KPiArICAgIHJlcGx5Lg0KPiArDQo+ICsqICppbmRleCogaXMgdGhlIGluZGV4IG9mIG1lbW9y eSByZWdpb24gYmVpbmcgcXVlcmllZCwgaXQgaXMgdGhlIG9ubHkgZmllbGQNCj4gKyAgdGhhdCBp cyByZXF1aXJlZCB0byBiZSBzZXQgaW4gdGhlIGNvbW1hbmQgbWVzc2FnZS4NCj4gKyogKmNhcF9v ZmZzZXQqIGRlc2NyaWJlcyB3aGVyZSBhZGRpdGlvbmFsIHJlZ2lvbiBjYXBhYmlsaXRpZXMgY2Fu IGJlIGZvdW5kLg0KPiArICBjYXBfb2Zmc2V0IGlzIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcg b2YgdGhlIFZGSU8gcmVnaW9uIGluZm8gc3RydWN0dXJlLg0KPiArICBUaGUgZGF0YSBzdHJ1Y3R1 cmUgaXQgcG9pbnRzIGlzIGEgVkZJTyBjYXAgaGVhZGVyIGRlZmluZWQgaW4NCj4gKyAgYGA8bGlu dXgvdmZpby5oPmBgLg0KPiArKiAqc2l6ZSogaXMgdGhlIHNpemUgb2YgdGhlIHJlZ2lvbi4NCj4g KyogKm9mZnNldCogaXMgdGhlIG9mZnNldCBnaXZlbiB0byB0aGUgbW1hcCgpIHN5c3RlbSBjYWxs IGZvciByZWdpb25zIHdpdGggdGhlDQo+ICsgIE1NQVAgYXR0cmlidXRlLiBJdCBpcyBhbHNvIHVz ZWQgYXMgdGhlIGJhc2Ugb2Zmc2V0IHdoZW4gbWFwcGluZyBhIFZGSU8NCj4gKyAgc3BhcnNlIG1t YXAgYXJlYSwgZGVzY3JpYmVkIGJlbG93Lg0KPiArDQo+ICtWRklPIFJlZ2lvbiBjYXBhYmlsaXRp ZXMNCj4gK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXg0KPiArVGhlIFZGSU8gcmVnaW9uIGluZm9y bWF0aW9uIGNhbiBhbHNvIGluY2x1ZGUgYSBjYXBhYmlsaXRpZXMgbGlzdC4gVGhpcyBsaXN0IGlz DQo+ICtzaW1pbGFyIHRvIGEgUENJIGNhcGFiaWxpdHkgbGlzdCAtIGVhY2ggZW50cnkgaGFzIGEg Y29tbW9uIGhlYWRlciB0aGF0DQo+ICtpZGVudGlmaWVzIGEgY2FwYWJpbGl0eSBhbmQgd2hlcmUg dGhlIG5leHQgY2FwYWJpbGl0eSBpbiB0aGUgbGlzdCBjYW4gYmUgZm91bmQuDQo+ICtUaGUgVkZJ TyBjYXBhYmlsaXR5IGhlYWRlciBmb3JtYXQgaXMgZGVmaW5lZCBpbiBgYDxsaW51eC92ZmlvLmg+ YGAgKGBgc3RydWN0DQo+ICt2ZmlvX2luZm9fY2FwX2hlYWRlcmBgKS4NCj4gKw0KPiArVkZJTyBj YXAgaGVhZGVyIGZvcm1hdA0KPiArXl5eXl5eXl5eXl5eXl5eXl5eXl5eXg0KPiArDQo+ICsrLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLSsNCj4gK3wgTmFtZSAgICB8IE9mZnNldCB8IFNpemUgfA0K PiArKz09PT09PT09PSs9PT09PT09PSs9PT09PT0rDQo+ICt8IGlkICAgICAgfCAwICAgICAgfCAy ICAgIHwNCj4gKystLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tKw0KPiArfCB2ZXJzaW9uIHwgMiAg ICAgIHwgMiAgICB8DQo+ICsrLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLSsNCj4gK3wgbmV4dCAg ICB8IDQgICAgICB8IDQgICAgfA0KPiArKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0rDQo+ICsN Cj4gKyogKmlkKiBpcyB0aGUgY2FwYWJpbGl0eSBpZGVudGl0eS4NCj4gKyogKnZlcnNpb24qIGlz IGEgY2FwYWJpbGl0eS1zcGVjaWZpYyB2ZXJzaW9uIG51bWJlci4NCj4gKyogKm5leHQqIHNwZWNp ZmllcyB0aGUgb2Zmc2V0IG9mIHRoZSBuZXh0IGNhcGFiaWxpdHkgaW4gdGhlIGNhcGFiaWxpdHkg bGlzdC4gSXQNCj4gKyAgaXMgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgVkZJTyBy ZWdpb24gaW5mbyBzdHJ1Y3R1cmUuDQo+ICsNCj4gK1ZGSU8gc3BhcnNlIG1tYXANCj4gK15eXl5e Xl5eXl5eXl5eXl4NCj4gKw0KPiArKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBOYW1lICAgICAgICAgICAgIHwgVmFsdWUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfA0KPiArKz09PT09PT09PT09PT09PT09PSs9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Kw0KPiArfCBpZCAgICAgICAgICAgICAgIHwgVkZJT19S RUdJT05fSU5GT19DQVBfU1BBUlNFX01NQVAgfA0KPiArKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCB2ZXJzaW9uICAgICAgICAgIHwg MHgxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBuZXh0ICAgICAgICAg ICAgIHwgPG5leHQ+ICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBzcGFyc2Ug bW1hcCBpbmZvIHwgVkZJTyByZWdpb24gaW5mbyBzcGFyc2UgbW1hcCAgICAgfA0KPiArKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArDQo+ ICtUaGlzIGNhcGFiaWxpdHkgaXMgZGVmaW5lZCB3aGVuIG9ubHkgYSBzdWJyYW5nZSBvZiB0aGUg cmVnaW9uIHN1cHBvcnRzDQo+ICtkaXJlY3QgYWNjZXNzIGJ5IHRoZSBjbGllbnQgdmlhIG1tYXAo KS4gVGhlIFZGSU8gc3BhcnNlIG1tYXAgYXJlYSBpcw0KPiBkZWZpbmVkIGluDQo+ICtgYDxsaW51 eC92ZmlvLmg+YGAgKGBgc3RydWN0IHZmaW9fcmVnaW9uX3NwYXJzZV9tbWFwX2FyZWFgYCkuDQo+ ICsNCj4gK1ZGSU8gcmVnaW9uIGluZm8gY2FwIHNwYXJzZSBtbWFwDQo+ICteXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXg0KPiArKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tKw0KPiAr fCBOYW1lICAgICB8IE9mZnNldCB8IFNpemUgfA0KPiArKz09PT09PT09PT0rPT09PT09PT0rPT09 PT09Kw0KPiArfCBucl9hcmVhcyB8IDAgICAgICB8IDQgICAgfA0KPiArKy0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tKw0KPiArfCByZXNlcnZlZCB8IDQgICAgICB8IDQgICAgfA0KPiArKy0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tKw0KPiArfCBvZmZzZXQgICB8IDggICAgICB8IDggICAgfA0K PiArKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tKw0KPiArfCBzaXplICAgICB8IDE2ICAgICB8 IDkgICAgfA0KPiArKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tKw0KPiArfCAuLi4gICAgICB8 ICAgICAgICB8ICAgICAgfA0KPiArKy0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tKw0KPiArDQo+ ICsqICpucl9hcmVhcyogaXMgdGhlIG51bWJlciBvZiBzcGFyc2UgbW1hcCBhcmVhcyBpbiB0aGUg cmVnaW9uLg0KPiArKiAqb2Zmc2V0KiBhbmQgc2l6ZSBkZXNjcmliZSBhIHNpbmdsZSBhcmVhIHRo YXQgY2FuIGJlIG1hcHBlZCBieSB0aGUgY2xpZW50Lg0KPiArICBUaGVyZSB3aWxsIGJlIG5yX2Fy ZWFzIHBhaXJzIG9mIG9mZnNldCBhbmQgc2l6ZS4gVGhlIG9mZnNldCB3aWxsIGJlIGFkZGVkIHRv DQo+ICsgIHRoZSBiYXNlIG9mZnNldCBnaXZlbiBpbiB0aGUgVkZJT19VU0VSX0RFVklDRV9HRVRf UkVHSU9OX0lORk8gdG8NCj4gZm9ybSB0aGUNCj4gKyAgb2Zmc2V0IGFyZ3VtZW50IG9mIHRoZSBz dWJzZXF1ZW50IG1tYXAoKSBjYWxsLg0KPiArDQo+ICtUaGUgVkZJTyBzcGFyc2UgbW1hcCBhcmVh IGlzIGRlZmluZWQgaW4gYGA8bGludXgvdmZpby5oPmBgIChgYHN0cnVjdA0KPiArdmZpb19yZWdp b25faW5mb19jYXBfc3BhcnNlX21tYXBgYCkuDQo+ICsNCj4gK1ZGSU8gUmVnaW9uIFR5cGUNCj4g K15eXl5eXl5eXl5eXl5eXl4NCj4gKw0KPiArKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IE5hbWUgICAgICAgICAgICAgfCBWYWx1ZSAgICAgICAg ICAgICAgICAgICAgIHwNCj4gKys9PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09 PT09PT09PT09Kw0KPiArfCBpZCAgICAgICAgICAgICAgIHwgVkZJT19SRUdJT05fSU5GT19DQVBf VFlQRSB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSsNCj4gK3wgdmVyc2lvbiAgICAgICAgICB8IDB4MSAgICAgICAgICAgICAgICAgICAgICAgfA0K PiArKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8 IG5leHQgICAgICAgICAgICAgfCA8bmV4dD4gICAgICAgICAgICAgICAgICAgIHwNCj4gKystLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCByZWdpb24g aW5mbyB0eXBlIHwgVkZJTyByZWdpb24gaW5mbyB0eXBlICAgICB8DQo+ICsrLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKw0KPiArVGhpcyBjYXBhYmls aXR5IGlzIGRlZmluZWQgd2hlbiBhIHJlZ2lvbiBpcyBzcGVjaWZpYyB0byB0aGUgZGV2aWNlLg0K PiArDQo+ICtWRklPIHJlZ2lvbiBpbmZvIHR5cGUNCj4gK15eXl5eXl5eXl5eXl5eXl5eXl5eXg0K PiArDQo+ICtUaGUgVkZJTyByZWdpb24gaW5mbyB0eXBlIGlzIGRlZmluZWQgaW4gYGA8bGludXgv dmZpby5oPmBgDQo+ICsoYGBzdHJ1Y3QgdmZpb19yZWdpb25faW5mb19jYXBfdHlwZWBgKS4NCj4g Kw0KPiArKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0rDQo+ICt8IE5hbWUgICAgfCBPZmZzZXQg fCBTaXplIHwNCj4gKys9PT09PT09PT0rPT09PT09PT0rPT09PT09Kw0KPiArfCB0eXBlICAgIHwg MCAgICAgIHwgNCAgICB8DQo+ICsrLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLSsNCj4gK3wgc3Vi dHlwZSB8IDQgICAgICB8IDQgICAgfA0KPiArKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0rDQo+ ICsNCj4gK1RoZSBvbmx5IGRldmljZS1zcGVjaWZpYyByZWdpb24gdHlwZSBhbmQgc3VidHlwZSBz dXBwb3J0ZWQgYnkgdmZpby11c2VyIGlzDQo+ICtWRklPX1JFR0lPTl9UWVBFX01JR1JBVElPTiAo MykgYW5kDQo+IFZGSU9fUkVHSU9OX1NVQlRZUEVfTUlHUkFUSU9OICgxKS4NCj4gKw0KPiArVkZJ TyBEZXZpY2UgTWlncmF0aW9uIEluZm8NCj4gK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eDQo+ ICsNCj4gK1RoZSBiZWdpbm5pbmcgb2YgdGhlIHN1YnJlZ2lvbiBtdXN0IGNvbnRhaW4NCj4gK2Bg c3RydWN0IHZmaW9fZGV2aWNlX21pZ3JhdGlvbl9pbmZvYGAsIGRlZmluZWQgaW4gYGA8bGludXgv dmZpby5oPmBgLiBUaGlzDQo+ICtzdWJyZWdpb24gaXMgYWNjZXNzZWQgbGlrZSBhbnkgb3RoZXIg cGFydCBvZiBhIHN0YW5kYXJkIHZmaW8tdXNlciBQQ0kgcmVnaW9uDQo+ICt1c2luZyBWRklPX1VT RVJfUkVHSU9OX1JFQUQvVkZJT19VU0VSX1JFR0lPTl9XUklURS4NCj4gKw0KPiArKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgTmFt ZSAgICAgICAgICB8IE9mZnNldCB8IFNpemUgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsr PT09PT09PT09PT09PT09Kz09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kw0K PiArfCBkZXZpY2Vfc3RhdGUgIHwgMCAgICAgIHwgNCAgICAgICAgICAgICAgICAgICAgICAgICAg IHwNCj4gKystLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rDQo+ICt8ICAgICAgICAgICAgICAgfCArLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSsgfA0KPiArfCAgICAgICAgICAgICAgIHwgfCBCaXQgfCBEZWZpbml0aW9uICAgICAg ICAgICAgICAgICB8IHwNCj4gK3wgICAgICAgICAgICAgICB8ICs9PT09PSs9PT09PT09PT09PT09 PT09PT09PT09PT09PT09KyB8DQo+ICt8ICAgICAgICAgICAgICAgfCB8IDAgICB8IFZGSU9fREVW SUNFX1NUQVRFX1JVTk5JTkcgIHwgfA0KPiArfCAgICAgICAgICAgICAgIHwgKy0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIHwNCj4gK3wgICAgICAgICAgICAgICB8IHwgMSAgIHwg VkZJT19ERVZJQ0VfU1RBVEVfU0FWSU5HICAgfCB8DQo+ICt8ICAgICAgICAgICAgICAgfCArLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfA0KPiArfCAgICAgICAgICAgICAgIHwg fCAyICAgfCBWRklPX0RFVklDRV9TVEFURV9SRVNVTUlORyB8IHwNCj4gK3wgICAgICAgICAgICAg ICB8ICstLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8DQo+ICsrLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCByZXNl cnZlZCAgICAgIHwgNCAgICAgIHwgNCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKyst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ ICt8IHBlbmRpbmdfYnl0ZXMgfCA4ICAgICAgfCA4ICAgICAgICAgICAgICAgICAgICAgICAgICAg fA0KPiArKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsNCj4gK3wgZGF0YV9vZmZzZXQgICB8IDE2ICAgICB8IDggICAgICAgICAgICAgICAgICAg ICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKw0KPiArfCBkYXRhX3NpemUgICAgIHwgMjQgICAgIHwgOCAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsNCj4gKyogKmRldmljZV9zdGF0ZSogZGVmaW5lcyB0 aGUgc3RhdGUgb2YgdGhlIGRldmljZToNCj4gKw0KPiArICBUaGUgY2xpZW50IGluaXRpYXRlcyBk ZXZpY2Ugc3RhdGUgdHJhbnNpdGlvbiBieSB3cml0aW5nIHRoZSBpbnRlbmRlZCBzdGF0ZS4NCj4g KyAgVGhlIHNlcnZlciBtdXN0IHJlc3BvbmQgb25seSBhZnRlciBpdCBoYXMgc3VjY2VzZnVsbHkg dHJhbnNpdGlvbmVkIHRvIHRoZQ0KPiBuZXcNCj4gKyAgc3RhdGUuIElmIGFuIGVycm9yIG9jY3Vy cyB0aGVuIHRoZSBzZXJ2ZXIgbXVzdCByZXNwb25kIHRvIHRoZQ0KPiArICBWRklPX1VTRVJfUkVH SU9OX1dSSVRFIG9wZXJhdGlvbiB3aXRoIHRoZSBFcnJvciBmaWVsZCBzZXQgYWNjb3JkaW5nbHkN Cj4gYW5kDQo+ICsgIG11c3QgcmVtYWluIGF0IHRoZSBwcmV2aW91cyBzdGF0ZSwgb3IgaW4gY2Fz ZSBvZiBpbnRlcm5hbCBlcnJvciBpdCBtdXN0DQo+ICsgIHRyYW5zdGl0aW9uIHRvIHRoZSBlcnJv ciBzdGF0ZSwgZGVmaW5lZCBhcw0KPiArICBWRklPX0RFVklDRV9TVEFURV9SRVNVTUlORyB8IFZG SU9fREVWSUNFX1NUQVRFX1NBVklORy4gVGhlDQo+IGNsaWVudCBtdXN0DQo+ICsgIHJlLXJlYWQg dGhlIGRldmljZSBzdGF0ZSBpbiBvcmRlciB0byBkZXRlcm1pbmUgaXQgYWZyZXNoLg0KPiArDQo+ ICsgIFRoZSBmb2xsb3dpbmcgZGV2aWNlIHN0YXRlcyBhcmUgZGVmaW5lZDoNCj4gKw0KPiArICAr LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rDQo+ICsgIHwgX1JFU1VNSU5HIHwgX1NBVklORyB8IF9SVU5OSU5HIHwgRGVz Y3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKw0KPiArPT09PT09PT09PT0rPT09 PT09PT09Kz09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09DQo+ID09PT09PT09PT09 Kw0KPiArICB8IDAgICAgICAgICB8IDAgICAgICAgfCAwICAgICAgICB8IERldmljZSBpcyBzdG9w cGVkLiAgICAgICAgICAgICAgICB8DQo+ICsgICstLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgfCAwICAgICAg ICAgfCAwICAgICAgIHwgMSAgICAgICAgfCBEZXZpY2UgaXMgcnVubmluZywgZGVmYXVsdCBzdGF0 ZS4gfA0KPiArICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsgIHwgMCAgICAgICAgIHwgMSAgICAgICB8IDAg ICAgICAgIHwgU3RvcC1hbmQtY29weSBzdGF0ZSAgICAgICAgICAgICAgIHwNCj4gKyAgKy0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKw0KPiArICB8IDAgICAgICAgICB8IDEgICAgICAgfCAxICAgICAgICB8IFByZS1jb3B5 IHN0YXRlICAgICAgICAgICAgICAgICAgICB8DQo+ICsgICstLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgfCAx ICAgICAgICAgfCAwICAgICAgIHwgMCAgICAgICAgfCBSZXN1bWluZyAgICAgICAgICAgICAgICAg ICAgICAgICAgfA0KPiArICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsgIHwgMSAgICAgICAgIHwgMCAgICAg ICB8IDEgICAgICAgIHwgSW52YWxpZCBzdGF0ZSAgICAgICAgICAgICAgICAgICAgIHwNCj4gKyAg Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKw0KPiArICB8IDEgICAgICAgICB8IDEgICAgICAgfCAxICAgICAgICB8IEVy cm9yIHN0YXRlICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsgICstLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4g KyAgfCAxICAgICAgICAgfCAxICAgICAgIHwgMSAgICAgICAgfCBJbnZhbGlkIHN0YXRlICAgICAg ICAgICAgICAgICAgICAgfA0KPiArICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsNCj4gKyAgVmFsaWQgc3Rh dGUgdHJhbnNpdGlvbnMgYXJlIHNob3duIGluIHRoZSBmb2xsb3dpbmcgdGFibGU6DQo+ICsNCj4g KyAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KPiArICB8IHxkYXJyfCBGcm9tIC8gVG8g fHJhcnJ8IHwgU3RvcHBlZCB8IFJ1bm5pbmcgfCBTdG9wLWFuZC1jb3B5IHwgUHJlLWNvcHkNCj4g fCBSZXN1bWluZyB8DQo+ICsNCj4gKz09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09 Kz09PT09PT09PSs9PT09PT09PT09PQ0KPiA9PT09Kz09PT09PT09PT0rPT09PT09PT09PSsNCj4g KyAgfCBTdG9wcGVkICAgICAgICAgICAgICAgICB8ICAgIFwtICAgfCAgICAwICAgIHwgICAgICAg MCAgICAgICB8ICAgIDAgICAgIHwgICAgIDAgICAgfA0KPiArICArLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0rDQo+ICsgIHwgUnVubmluZyAgICAgICAgICAgICAgICAgfCAgICAxICAgIHwgICAg XC0gICB8ICAgICAgIDEgICAgICAgfCAgICAxICAgICB8ICAgICAxICAgIHwNCj4gKyAgKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tKw0KPiArICB8IFN0b3AtYW5kLWNvcHkgICAgICAgICAgIHwg ICAgMSAgICB8ICAgIDAgICAgfCAgICAgICBcLSAgICAgIHwgICAgMCAgICAgfCAgICAgMCAgICB8 DQo+ICsgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSsNCj4gKyAgfCBQcmUtY29weSAgICAg ICAgICAgICAgICB8ICAgIDAgICAgfCAgICAwICAgIHwgICAgICAgMSAgICAgICB8ICAgIFwtICAg IHwgICAgIDAgICAgfA0KPiArICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0rDQo+ICsgIHwg UmVzdW1pbmcgICAgICAgICAgICAgICAgfCAgICAwICAgIHwgICAgMSAgICB8ICAgICAgIDAgICAg ICAgfCAgICAwICAgICB8ICAgICBcLSAgIHwNCj4gKyAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tKw0KPiArDQo+ICsgIEEgZGV2aWNlIGlzIG1pZ3JhdGVkIHRvIHRoZSBkZXN0aW5hdGlvbiBh cyBmb2xsb3dzOg0KPiArDQo+ICsgICogVGhlIHNvdXJjZSBjbGllbnQgdHJhbnNpdGlvbnMgdGhl IGRldmljZSBzdGF0ZSBmcm9tIHRoZSBydW5uaW5nIHN0YXRlIHRvDQo+ICsgICAgdGhlIHByZS1j b3B5IHN0YXRlLiBUaGlzIHRyYW5zaXRpb24gaXMgb3B0aW9uYWwgZm9yIHRoZSBjbGllbnQgYnV0 IG11c3QgYmUNCj4gKyAgICBzdXBwb3J0ZWQgYnkgdGhlIHNlcnZlci4gVGhlIHNvdWNlIHNlcnZl ciBzdGFydHMgc2VuZGluZyBkZXZpY2Ugc3RhdGUNCj4gZGF0YQ0KPiArICAgIHRvIHRoZSBzb3Vy Y2UgY2xpZW50IHRocm91Z2ggdGhlIG1pZ3JhdGlvbiByZWdpb24gd2hpbGUgdGhlIGRldmljZSBp cw0KPiArICAgIHJ1bm5pbmcuDQo+ICsNCj4gKyAgKiBUaGUgc291cmNlIGNsaWVudCB0cmFuc2l0 aW9ucyB0aGUgZGV2aWNlIHN0YXRlIGZyb20gdGhlIHJ1bm5pbmcgc3RhdGUgb3INCj4gdGhlDQo+ ICsgICAgcHJlLWNvcHkgc3RhdGUgdG8gdGhlIHN0b3AtYW5kLWNvcHkgc3RhdGUuIFRoZSBzb3Vy Y2Ugc2VydmVyIHN0b3BzIHRoZQ0KPiArICAgIGRldmljZSwgc2F2ZXMgZGV2aWNlIHN0YXRlIGFu ZCBzZW5kcyBpdCB0byB0aGUgc291cmNlIGNsaWVudCB0aHJvdWdoIHRoZQ0KPiArICAgIG1pZ3Jh dGlvbiByZWdpb24uDQo+ICsNCj4gKyAgVGhlIHNvdXJjZSBjbGllbnQgaXMgcmVzcG9uc2libGUg Zm9yIHNlbmRpbmcgdGhlIG1pZ3JhdGlvbiBkYXRhIHRvIHRoZQ0KPiArICBkZXN0aW5hdGlvbiBj bGllbnQuDQo+ICsNCj4gKyAgQSBkZXZpY2UgaXMgcmVzdW1lZCBvbiB0aGUgZGVzdGluYXRpb24g YXMgZm9sbG93czoNCj4gKw0KPiArICAqIFRoZSBkZXN0aW5hdGlvbiBjbGllbnQgdHJhbnNpdGlv bnMgdGhlIGRldmljZSBzdGF0ZSBmcm9tIHRoZSBydW5uaW5nIHN0YXRlDQo+ICsgICAgdG8gdGhl IHJlc3VtaW5nIHN0YXRlLiBUaGUgZGVzdGluYXRpb24gc2VydmVyIHVzZXMgdGhlIGRldmljZSBz dGF0ZSBkYXRhDQo+ICsgICAgcmVjZWl2ZWQgdGhyb3VnaCB0aGUgbWlncmF0aW9uIHJlZ2lvbiB0 byByZXN1bWUgdGhlIGRldmljZS4NCj4gKw0KPiArICAqIFRoZSBkZXN0aW5hdGlvbiBjbGllbnQg cHJvdmlkZXMgc2F2ZWQgZGV2aWNlIHN0YXRlIHRvIHRoZSBkZXN0aW5hdGlvbg0KPiArICAgIHNl cnZlciBhbmQgdGhlbiB0cmFuc2l0aW9ucyB0aGUgZGV2aWNlIHRvIGJhY2sgdG8gdGhlIHJ1bm5p bmcgc3RhdGUuDQo+ICsNCj4gKyogKnJlc2VydmVkKiBUaGlzIGZpZWxkIGlzIHJlc2VydmVkIGFu ZCBhbnkgYWNjZXNzIHRvIGl0IG11c3QgYmUgaWdub3JlZCBieQ0KPiB0aGUNCj4gKyAgc2VydmVy Lg0KPiArDQo+ICsqICpwZW5kaW5nX2J5dGVzKiBSZW1haW5pbmcgYnl0ZXMgdG8gYmUgbWlncmF0 ZWQgYnkgdGhlIHNlcnZlci4gVGhpcyBmaWVsZA0KPiBpcw0KPiArICByZWFkIG9ubHkuDQo+ICsN Cj4gKyogKmRhdGFfb2Zmc2V0KiBPZmZzZXQgaW4gdGhlIG1pZ3JhdGlvbiByZWdpb24gd2hlcmUg dGhlIGNsaWVudCBtdXN0Og0KPiArDQo+ICsgICogcmVhZCBmcm9tLCBkdXJpbmcgdGhlIHByZS1j b3B5IG9yIHN0b3AtYW5kLWNvcHkgc3RhdGUsIG9yDQo+ICsNCj4gKyAgKiB3cml0ZSB0bywgZHVy aW5nIHRoZSByZXN1bWluZyBzdGF0ZS4NCj4gKw0KPiArICBUaGlzIGZpZWxkIGlzIHJlYWQgb25s eS4NCj4gKw0KPiArKiAqZGF0YV9zaXplKiBDb250YWlucyB0aGUgc2l6ZSwgaW4gYnl0ZXMsIG9m IHRoZSBhbW91bnQgb2YgZGF0YSBjb3BpZWQgdG86DQo+ICsNCj4gKyAgKiB0aGUgc291cmNlIG1p Z3JhdGlvbiByZWdpb24gYnkgdGhlIHNvdXJjZSBzZXJ2ZXIgZHVyaW5nIHRoZSBwcmUtY29weSBv cg0KPiArICAgIHN0b3AtYW5kIGNvcHkgc3RhdGUsIG9yDQo+ICsNCj4gKyAgKiB0aGUgZGVzdGlu YXRpb24gbWlncmF0aW9uIHJlZ2lvbiBieSB0aGUgZGVzdGluYXRpb24gY2xpZW50IGR1cmluZyB0 aGUNCj4gKyAgICByZXN1bWluZyBzdGF0ZS4NCj4gKw0KPiArRGV2aWNlLXNwZWNpZmljIGRhdGEg bXVzdCBiZSBzdG9yZWQgYXQgYW55IHBvc2l0aW9uIGFmdGVyDQo+ICtgc3RydWN0IHZmaW9fZGV2 aWNlX21pZ3JhdGlvbl9pbmZvYC4gTm90ZSB0aGF0IHRoZSBtaWdyYXRpb24gcmVnaW9uIGNhbiBi ZQ0KPiArbWVtb3J5IG1hcHBhYmxlLCBldmVuIHBhcnRpYWxseS4gSW4gcHJhY3Rpc2UsIG9ubHkg dGhlIG1pZ3JhdGlvbiBkYXRhDQo+IHBvcnRpb24NCj4gK2NhbiBiZSBtZW1vcnkgbWFwcGVkLg0K PiArDQo+ICtUaGUgY2xpZW50IHByb2Nlc3NlcyBkZXZpY2Ugc3RhdGUgZGF0YSBkdXJpbmcgdGhl IHByZS1jb3B5IGFuZCB0aGUNCj4gK3N0b3AtYW5kLWNvcHkgc3RhdGUgaW4gdGhlIGZvbGxvd2lu ZyBpdGVyYXRpdmUgbWFubmVyOg0KPiArDQo+ICsgIDEuIFRoZSBjbGllbnQgcmVhZHMgYHBlbmRp bmdfYnl0ZXNgIHRvIG1hcmsgYSBuZXcgaXRlcmF0aW9uLiBSZXBlYXRlZA0KPiByZWFkcw0KPiAr ICAgICBvZiB0aGlzIGZpZWxkIGlzIGFuIGlkZW1wb3RlbnQgb3BlcmF0aW9uLiBJZiB0aGVyZSBh cmUgbm8gbWlncmF0aW9uIGRhdGENCj4gKyAgICAgdG8gYmUgY29uc3VtZWQgdGhlbiB0aGUgbmV4 dCBzdGVwIGRlcGVuZHMgb24gdGhlIGN1cnJlbnQgZGV2aWNlIHN0YXRlOg0KPiArDQo+ICsgICAg ICogcHJlLWNvcHk6IHRoZSBjbGllbnQgbXVzdCB0cnkgYWdhaW4uDQo+ICsNCj4gKyAgICAgKiBz dG9wLWFuZC1jb3B5OiB0aGlzIHByb2NlZHVyZSBjYW4gZW5kIGFuZCB0aGUgZGV2aWNlIGNhbiBu b3cgc3RhcnQNCj4gKyAgICAgICByZXN1bWluZyBvbiB0aGUgZGVzdGluYXRpb24uDQo+ICsNCj4g KyAgMi4gVGhlIGNsaWVudCByZWFkcyBgZGF0YV9vZmZzZXRgOyBhdCB0aGljaCBwb2ludCB0aGUg c2VydmVyIG11c3QgbWFrZQ0KPiArICAgICBhdmFpbGFibGUgYSBwb3J0aW9uIG9mIG1pZ3JhdGlv biBkYXRhIGF0IHRoaXMgb2Zmc2V0IHRvIGJlIHJlYWQgYnkgdGhlDQo+ICsgICAgIGNsaWVudCwg d2hpY2ggbXVzdCBoYXBwZW4gKmJlZm9yZSogY29tcGxldGluZyB0aGUgcmVhZCBvcGVyYXRpb24u IFRoZQ0KPiArICAgICBhbW91bnQgb2YgZGF0YSB0byBiZSByZWFkIG11c3QgYmUgc3RvcmVkIGlu IHRoZSBgZGF0YV9zaXplYCBmaWVsZCwgd2hpY2gNCj4gKyAgICAgdGhlIGNsaWVudCByZWFkcyBu ZXh0Lg0KPiArDQo+ICsgIDMuIFRoZSBjbGllbnQgcmVhZHMgYGRhdGFfc2l6ZWAgdG8gZGV0ZXJt aW5lIHRoZSBhbW91bnQgb2YgbWlncmF0aW9uIGRhdGENCj4gKyAgICAgYXZhaWxhYmxlLg0KPiAr DQo+ICsgIDQuIFRoZSBjbGllbnQgcmVhZHMgYW5kIHByb2Nlc3NlcyB0aGUgbWlncmF0aW9uIGRh dGEuDQo+ICsNCj4gKyAgNS4gR28gdG8gc3RlcCAxLg0KPiArDQo+ICtOb3RlIHRoYXQgdGhlIGNs aWVudCBjYW4gdHJhbnNpdGlvbiB0aGUgZGV2aWNlIGZyb20gdGhlIHByZS1jb3B5IHN0YXRlIHRv IHRoZQ0KPiArc3RvcC1hbmQtY29weSBzdGF0ZSBhdCBhbnkgdGltZTsgYHBlbmRpbmdfYnl0ZXNg IGRvZXMgbm90IG5lZWQgdG8gYmVjb21lDQo+IHplcm8uDQo+ICsNCj4gK1RoZSBjbGllbnQgaW5p dGlhbGl6ZXMgdGhlIGRldmljZSBzdGF0ZSBvbiB0aGUgZGVzdGluYXRpb24gYnkgc2V0dGluZyB0 aGUNCj4gK2RldmljZSBzdGF0ZSBpbiB0aGUgcmVzdW1pbmcgc3RhdGUgYW5kIHdyaXRpbmcgdGhl IG1pZ3JhdGlvbiBkYXRhIHRvIHRoZQ0KPiArZGVzdGluYXRpb24gbWlncmF0aW9uIHJlZ2lvbiBh dCBgZGF0YV9vZmZzZXRgIG9mZnNldC4gVGhlIGNsaWVudCBjYW4gd3JpdGUgdGhlDQo+ICtzb3Vy Y2UgbWlncmF0aW9uIGRhdGEgaW4gYW4gaXRlcmF0aXZlIG1hbm5lciBhbmQgdGhlIHNlcnZlciBt dXN0IGNvbnN1bWUNCj4gdGhpcw0KPiArZGF0YSBiZWZvcmUgY29tcGxldGluZyBlYWNoIHdyaXRl IG9wZXJhdGlvbiwgdXBkYXRpbmcgdGhlIGBkYXRhX29mZnNldGANCj4gZmllbGQuDQo+ICtUaGUg c2VydmVyIG11c3QgYXBwbHkgdGhlIHNvdXJjZSBtaWdyYXRpb24gZGF0YSBvbiB0aGUgZGV2aWNl IHJlc3VtZQ0KPiBzdGF0ZS4gVGhlDQo+ICtjbGllbnQgbXVzdCB3cml0ZSBkYXRhIG9uIHRoZSBz YW1lIG9yZGVyIGFuZCB0cmFuc2N0aW9uIHNpemUgYXMgcmVhZC4NCj4gKw0KPiArSWYgYW4gZXJy b3Igb2NjdXJzIHRoZW4gdGhlIHNlcnZlciBtdXN0IGZhaWwgdGhlIHJlYWQgb3Igd3JpdGUgb3Bl cmF0aW9uLiBJdCBpcw0KPiArYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIG9mIHRoZSBjbGllbnQg aG93IHRvIGhhbmRsZSBlcnJvcnMuDQo+ICsNCj4gK1ZGSU9fVVNFUl9ERVZJQ0VfR0VUX0lSUV9J TkZPDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICtNZXNzYWdlIGZv cm1hdA0KPiArXl5eXl5eXl5eXl5eXl4NCj4gKw0KPiArKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgTmFtZSAgICAgICAgIHwgVmFsdWUgICAgICAgICAgICAg ICAgICB8DQo+ICsrPT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09Kw0KPiAr fCBNZXNzYWdlIElEICAgfCA8SUQ+ICAgICAgICAgICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IENvbW1hbmQgICAgICB8IDYgICAg ICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSsNCj4gK3wgTWVzc2FnZSBzaXplIHwgMzIgICAgICAgICAgICAgICAgICAgICB8DQo+ ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBGbGFncyAg ICAgICAgfCBSZXBseSBiaXQgc2V0IGluIHJlcGx5IHwNCj4gKystLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IEVycm9yICAgICAgICB8IDAvZXJybm8gICAgICAg ICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsN Cj4gK3wgSVJRIGluZm8gICAgIHwgVkZJTyBJUlEgaW5mbyAgICAgICAgICB8DQo+ICsrLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArDQo+ICtUaGlzIGNvbW1hbmQg bWVzc2FnZSBpcyBzZW50IGJ5IHRoZSBjbGllbnQgdG8gdGhlIHNlcnZlciB0byBxdWVyeSBmb3IN Cj4gK2luZm9ybWF0aW9uIGFib3V0IGRldmljZSBpbnRlcnJ1cHQgdHlwZXMuIFRoZSBWRklPIElS USBpbmZvIHN0cnVjdHVyZSBpcw0KPiArZGVmaW5lZCBpbiBgYDxsaW51eC92ZmlvLmg+YGAgKGBg c3RydWN0IHZmaW9faXJxX2luZm9gYCkuDQo+ICsNCj4gK1ZGSU8gSVJRIGluZm8gZm9ybWF0DQo+ ICteXl5eXl5eXl5eXl5eXl5eXl5eXg0KPiArDQo+ICsrLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IE5hbWUgIHwgT2Zmc2V0IHwgU2l6ZSAgICAgICAg ICAgICAgICAgICAgICB8DQo+ICsrPT09PT09PSs9PT09PT09PSs9PT09PT09PT09PT09PT09PT09 PT09PT09PT0rDQo+ICt8IGFyZ3N6IHwgMTYgICAgIHwgNCAgICAgICAgICAgICAgICAgICAgICAg ICB8DQo+ICsrLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ ICt8IGZsYWdzIHwgMjAgICAgIHwgNCAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsrLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8ICAgICAgIHwg Ky0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8DQo+ICt8ICAgICAgIHwgfCBCaXQg fCBEZWZpbml0aW9uICAgICAgICAgICAgICAgfCB8DQo+ICt8ICAgICAgIHwgKz09PT09Kz09PT09 PT09PT09PT09PT09PT09PT09PT09KyB8DQo+ICt8ICAgICAgIHwgfCAwICAgfCBWRklPX0lSUV9J TkZPX0VWRU5URkQgICAgfCB8DQo+ICt8ICAgICAgIHwgKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKyB8DQo+ICt8ICAgICAgIHwgfCAxICAgfCBWRklPX0lSUV9JTkZPX01BU0tBQkxF ICAgfCB8DQo+ICt8ICAgICAgIHwgKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8 DQo+ICt8ICAgICAgIHwgfCAyICAgfCBWRklPX0lSUV9JTkZPX0FVVE9NQVNLRUQgfCB8DQo+ICt8 ICAgICAgIHwgKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8DQo+ICt8ICAgICAg IHwgfCAzICAgfCBWRklPX0lSUV9JTkZPX05PUkVTSVpFICAgfCB8DQo+ICt8ICAgICAgIHwgKy0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8DQo+ICsrLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IGluZGV4IHwgMjQgICAgIHwgNCAgICAg ICAgICAgICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rDQo+ICt8IGNvdW50IHwgMjggICAgIHwgNCAgICAgICAgICAgICAgICAg ICAgICAgICB8DQo+ICsrLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rDQo+ICsNCj4gKyogKmFyZ3N6KiBpcyB0aGUgc2l6ZSBvZiB0aGUgVkZJTyBJUlEgaW5mbyBz dHJ1Y3R1cmUuDQo+ICsqICpmbGFncyogZGVmaW5lcyBJUlEgYXR0cmlidXRlczoNCj4gKw0KPiAr ICAqICpWRklPX0lSUV9JTkZPX0VWRU5URkQqIGluZGljYXRlcyB0aGUgSVJRIHR5cGUgY2FuIHN1 cHBvcnQgc2VydmVyDQo+IGV2ZW50ZmQNCj4gKyAgICBzaWduYWxsaW5nLg0KPiArICAqICpWRklP X0lSUV9JTkZPX01BU0tBQkxFKiBpbmRpY2F0ZXMgdGhhdCB0aGUgSVJRIHR5cGUgc3VwcG9ydHMg dGhlDQo+IE1BU0sgYW5kDQo+ICsgICAgVU5NQVNLIGFjdGlvbnMgaW4gYSBWRklPX1VTRVJfREVW SUNFX1NFVF9JUlFTIG1lc3NhZ2UuDQo+ICsgICogKlZGSU9fSVJRX0lORk9fQVVUT01BU0tFRCog aW5kaWNhdGVzIHRoZSBJUlEgdHlwZSBtYXNrcyBpdHNlbGYNCj4gYWZ0ZXIgYmVpbmcNCj4gKyAg ICB0cmlnZ2VyZWQsIGFuZCB0aGUgY2xpZW50IG11c3Qgc2VuZCBhbiBVTk1BU0sgYWN0aW9uIHRv IHJlY2VpdmUgbmV3DQo+ICsgICAgaW50ZXJydXB0cy4NCj4gKyAgKiAqVkZJT19JUlFfSU5GT19O T1JFU0laRSogaW5kaWNhdGVzIFZGSU9fVVNFUl9TRVRfSVJRUw0KPiBvcGVyYXRpb25zIHNldHVw DQo+ICsgICAgaW50ZXJydXB0cyBhcyBhIHNldCwgYW5kIG5ldyBzdWItaW5kZXhlcyBjYW5ub3Qg YmUgZW5hYmxlZCB3aXRob3V0DQo+IGRpc2FibGluZw0KPiArICAgIHRoZSBlbnRpcmUgdHlwZS4N Cj4gKw0KPiArKiBpbmRleCBpcyB0aGUgaW5kZXggb2YgSVJRIHR5cGUgYmVpbmcgcXVlcmllZCwg aXQgaXMgdGhlIG9ubHkgZmllbGQgdGhhdCBpcw0KPiArICByZXF1aXJlZCB0byBiZSBzZXQgaW4g dGhlIGNvbW1hbmQgbWVzc2FnZS4NCj4gKyogY291bnQgZGVzY3JpYmVzIHRoZSBudW1iZXIgb2Yg aW50ZXJydXB0cyBvZiB0aGUgcXVlcmllZCB0eXBlLg0KPiArDQo+ICtWRklPX1VTRVJfREVWSUNF X1NFVF9JUlFTDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gK01lc3NhZ2Ug Zm9ybWF0DQo+ICteXl5eXl5eXl5eXl5eXg0KPiArDQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBOYW1lICAgICAgICAgfCBWYWx1ZSAgICAgICAgICAg ICAgICAgIHwNCj4gKys9PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT0rDQo+ ICt8IE1lc3NhZ2UgSUQgICB8IDxJRD4gICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgQ29tbWFuZCAgICAgIHwgNyAg ICAgICAgICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKw0KPiArfCBNZXNzYWdlIHNpemUgfCAzNiArIGFueSBkYXRhICAgICAgICAgIHwN Cj4gKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IEZsYWdz ICAgICAgICB8IFJlcGx5IGJpdCBzZXQgaW4gcmVwbHkgfA0KPiArKy0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgRXJyb3IgICAgICAgIHwgMC9lcnJubyAgICAg ICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Kw0KPiArfCBJUlEgc2V0ICAgICAgfCBWRklPIElSUSBzZXQgICAgICAgICAgIHwNCj4gKystLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsNCj4gK1RoaXMgY29tbWFu ZCBtZXNzYWdlIGlzIHNlbnQgYnkgdGhlIGNsaWVudCB0byB0aGUgc2VydmVyIHRvIHNldCBhY3Rp b25zIGZvcg0KPiArZGV2aWNlIGludGVycnVwdCB0eXBlcy4gVGhlIFZGSU8gSVJRIHNldCBzdHJ1 Y3R1cmUgaXMgZGVmaW5lZCBpbg0KPiArYGA8bGludXgvdmZpby5oPmBgIChgYHN0cnVjdCB2Zmlv X2lycV9zZXRgYCkuDQo+ICsNCj4gK1ZGSU8gSVJRIHNldCBmb3JtYXQNCj4gK15eXl5eXl5eXl5e Xl5eXl5eXl4NCj4gKw0KPiArKy0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKw0KPiArfCBOYW1lICB8IE9mZnNldCB8IFNpemUgICAgICAgICAgICAgICAgICAg ICAgICAgfA0KPiArKz09PT09PT0rPT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Kw0KPiArfCBhcmdzeiB8IDE2ICAgICB8IDQgICAgICAgICAgICAgICAgICAgICAgICAgICAg fA0KPiArKy0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0K PiArfCBmbGFncyB8IDIwICAgICB8IDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiAr Ky0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCAg ICAgICB8ICstLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfA0KPiArfCAgICAg ICB8IHwgQml0IHwgRGVmaW5pdGlvbiAgICAgICAgICAgICAgICAgIHwgfA0KPiArfCAgICAgICB8 ICs9PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsgfA0KPiArfCAgICAgICB8IHwg MCAgIHwgVkZJT19JUlFfU0VUX0RBVEFfTk9ORSAgICAgIHwgfA0KPiArfCAgICAgICB8ICstLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfA0KPiArfCAgICAgICB8IHwgMSAgIHwg VkZJT19JUlFfU0VUX0RBVEFfQk9PTCAgICAgIHwgfA0KPiArfCAgICAgICB8ICstLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfA0KPiArfCAgICAgICB8IHwgMiAgIHwgVkZJT19J UlFfU0VUX0RBVEFfRVZFTlRGRCAgIHwgfA0KPiArfCAgICAgICB8ICstLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSsgfA0KPiArfCAgICAgICB8IHwgMyAgIHwgVkZJT19JUlFfU0VU X0FDVElPTl9NQVNLICAgIHwgfA0KPiArfCAgICAgICB8ICstLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSsgfA0KPiArfCAgICAgICB8IHwgNCAgIHwgVkZJT19JUlFfU0VUX0FDVElP Tl9VTk1BU0sgIHwgfA0KPiArfCAgICAgICB8ICstLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSsgfA0KPiArfCAgICAgICB8IHwgNSAgIHwgVkZJT19JUlFfU0VUX0FDVElPTl9UUklH R0VSIHwgfA0KPiArfCAgICAgICB8ICstLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSsgfA0KPiArKy0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Kw0KPiArfCBpbmRleCB8IDI0ICAgICB8IDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0K PiArKy0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiAr fCBzdGFydCB8IDI4ICAgICB8IDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiArKy0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBjb3Vu dCB8IDMyICAgICB8IDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBkYXRhICB8IDM2 ICAgICB8IHZhcmlhYmxlICAgICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArDQo+ICsqICphcmdzeiogaXMg dGhlIHNpemUgb2YgdGhlIFZGSU8gSVJRIHNldCBzdHJ1Y3R1cmUsIGluY2x1ZGluZyBhbnkgKmRh dGEqDQo+IGZpZWxkLg0KPiArKiAqZmxhZ3MqIGRlZmluZXMgdGhlIGFjdGlvbiBwZXJmb3JtZWQg b24gdGhlIGludGVycnVwdCByYW5nZS4gVGhlIERBVEENCj4gZmxhZ3MNCj4gKyAgZGVzY3JpYmUg dGhlIGRhdGEgZmllbGQgc2VudCBpbiB0aGUgbWVzc2FnZTsgdGhlIEFDVElPTiBmbGFncyBkZXNj cmliZSB0aGUNCj4gKyAgYWN0aW9uIHRvIGJlIHBlcmZvcm1lZC4gVGhlIGZsYWdzIGFyZSBtdXR1 YWxseSBleGNsdXNpdmUgZm9yIGJvdGggc2V0cy4NCj4gKw0KPiArICAqICpWRklPX0lSUV9TRVRf REFUQV9OT05FKiBpbmRpY2F0ZXMgdGhlcmUgaXMgbm8gZGF0YSBmaWVsZCBpbiB0aGUNCj4gY29t bWFuZC4NCj4gKyAgICBUaGUgYWN0aW9uIGlzIHBlcmZvcm1lZCB1bmNvbmRpdGlvbmFsbHkuDQo+ ICsgICogKlZGSU9fSVJRX1NFVF9EQVRBX0JPT0wqIGluZGljYXRlcyB0aGUgZGF0YSBmaWVsZCBp cyBhbiBhcnJheSBvZg0KPiBib29sZWFuDQo+ICsgICAgYnl0ZXMuIFRoZSBhY3Rpb24gaXMgcGVy Zm9ybWVkIGlmIHRoZSBjb3JyZXNwb25kaW5nIGJvb2xlYW4gaXMgdHJ1ZS4NCj4gKyAgKiAqVkZJ T19JUlFfU0VUX0RBVEFfRVZFTlRGRCogaW5kaWNhdGVzIGFuIGFycmF5IG9mIGV2ZW50IGZpbGUN Cj4gZGVzY3JpcHRvcnMNCj4gKyAgICB3YXMgc2VudCBpbiB0aGUgbWVzc2FnZSBtZXRhLWRhdGEu IFRoZXNlIGRlc2NyaXB0b3JzIHdpbGwgYmUgc2lnbmFsbGVkDQo+IHdoZW4NCj4gKyAgICB0aGUg YWN0aW9uIGRlZmluZWQgYnkgdGhlIGFjdGlvbiBmbGFncyBvY2N1cnMuIEluIEFGX1VOSVggc29j a2V0cywgdGhlDQo+ICsgICAgZGVzY3JpcHRvcnMgYXJlIHNlbnQgYXMgU0NNX1JJR0hUUyB0eXBl IGFuY2lsbGFyeSBkYXRhLg0KPiArICAqICpWRklPX0lSUV9TRVRfQUNUSU9OX01BU0sqIGluZGlj YXRlcyBhIG1hc2tpbmcgZXZlbnQuIEl0IGNhbiBiZQ0KPiB1c2VkIHdpdGgNCj4gKyAgICBWRklP X0lSUV9TRVRfREFUQV9CT09MIG9yIFZGSU9fSVJRX1NFVF9EQVRBX05PTkUgdG8gbWFzayBhbg0K PiBpbnRlcnJ1cHQsIG9yDQo+ICsgICAgd2l0aCBWRklPX0lSUV9TRVRfREFUQV9FVkVOVEZEIHRv IGdlbmVyYXRlIGFuIGV2ZW50IHdoZW4gdGhlDQo+IGd1ZXN0IG1hc2tzDQo+ICsgICAgdGhlIGlu dGVycnVwdC4NCj4gKyAgKiAqVkZJT19JUlFfU0VUX0FDVElPTl9VTk1BU0sqIGluZGljYXRlcyBh biB1bm1hc2tpbmcgZXZlbnQuIEl0DQo+IGNhbiBiZSB1c2VkDQo+ICsgICAgd2l0aCBWRklPX0lS UV9TRVRfREFUQV9CT09MIG9yIFZGSU9fSVJRX1NFVF9EQVRBX05PTkUgdG8NCj4gdW5tYXNrIGFu DQo+ICsgICAgaW50ZXJydXB0LCBvciB3aXRoIFZGSU9fSVJRX1NFVF9EQVRBX0VWRU5URkQgdG8g Z2VuZXJhdGUgYW4gZXZlbnQNCj4gd2hlbiB0aGUNCj4gKyAgICBndWVzdCB1bm1hc2tzIHRoZSBp bnRlcnJ1cHQuDQo+ICsgICogKlZGSU9fSVJRX1NFVF9BQ1RJT05fVFJJR0dFUiogaW5kaWNhdGVz IGEgdHJpZ2dlcmluZyBldmVudC4gSXQgY2FuDQo+IGJlIHVzZWQNCj4gKyAgICB3aXRoIFZGSU9f SVJRX1NFVF9EQVRBX0JPT0wgb3IgVkZJT19JUlFfU0VUX0RBVEFfTk9ORSB0bw0KPiB0cmlnZ2Vy IGFuDQo+ICsgICAgaW50ZXJydXB0LCBvciB3aXRoIFZGSU9fSVJRX1NFVF9EQVRBX0VWRU5URkQg dG8gZ2VuZXJhdGUgYW4gZXZlbnQNCj4gd2hlbiB0aGUNCj4gKyAgICBzZXJ2ZXIgdHJpZ2dlcnMg dGhlIGludGVycnVwdC4NCj4gKw0KPiArKiAqaW5kZXgqIGlzIHRoZSBpbmRleCBvZiBJUlEgdHlw ZSBiZWluZyBzZXR1cC4NCj4gKyogKnN0YXJ0KiBpcyB0aGUgc3RhcnQgb2YgdGhlIHN1Yi1pbmRl eCBiZWluZyBzZXQuDQo+ICsqICpjb3VudCogZGVzY3JpYmVzIHRoZSBudW1iZXIgb2Ygc3ViLWlu ZGV4ZXMgYmVpbmcgc2V0LiBBcyBhIHNwZWNpYWwgY2FzZSwNCj4gYQ0KPiArICBjb3VudCBvZiAw IHdpdGggZGF0YSBmbGFncyBvZiBWRklPX0lSUV9TRVRfREFUQV9OT05FIGRpc2FibGVzIGFsbA0K PiBpbnRlcnJ1cHRzDQo+ICsgIG9mIHRoZSBpbmRleC4NCj4gKyogKmRhdGEqIGlzIGFuIG9wdGlv bmFsIGZpZWxkIGluY2x1ZGVkIHdoZW4gdGhlDQo+ICsgIFZGSU9fSVJRX1NFVF9EQVRBX0JPT0wg ZmxhZyBpcyBwcmVzZW50LiBJdCBjb250YWlucyBhbiBhcnJheSBvZg0KPiBib29sZWFucw0KPiAr ICB0aGF0IHNwZWNpZnkgd2hldGhlciB0aGUgYWN0aW9uIGlzIHRvIGJlIHBlcmZvcm1lZCBvbiB0 aGUgY29ycmVzcG9uZGluZw0KPiArICBpbmRleC4gSXQncyB1c2VkIHdoZW4gdGhlIGFjdGlvbiBp cyBvbmx5IHBlcmZvcm1lZCBvbiBhIHN1YnNldCBvZiB0aGUgcmFuZ2UNCj4gKyAgc3BlY2lmaWVk Lg0KPiArDQo+ICtOb3QgYWxsIGludGVycnVwdCB0eXBlcyBzdXBwb3J0IGV2ZXJ5IGNvbWJpbmF0 aW9uIG9mIGRhdGEgYW5kIGFjdGlvbiBmbGFncy4NCj4gK1RoZSBjbGllbnQgbXVzdCBrbm93IHRo ZSBjYXBhYmlsaXRpZXMgb2YgdGhlIGRldmljZSBhbmQgSVJRIGluZGV4IGJlZm9yZSBpdA0KPiAr c2VuZHMgYSBWRklPX1VTRVJfREVWSUNFX1NFVF9JUlEgbWVzc2FnZS4NCj4gKw0KPiArLi4gX1Jl YWQgYW5kIFdyaXRlIE9wZXJhdGlvbnM6DQo+ICsNCj4gK1JlYWQgYW5kIFdyaXRlIE9wZXJhdGlv bnMNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArTm90IGFsbCBJL08gb3Bl cmF0aW9ucyBiZXR3ZWVuIHRoZSBjbGllbnQgYW5kIHNlcnZlciBjYW4gYmUgZG9uZSB2aWEgZGly ZWN0DQo+ICthY2Nlc3Mgb2YgbWVtb3J5IG1hcHBlZCB3aXRoIGFuIG1tYXAoKSBjYWxsLiBJbiB0 aGVzZSBjYXNlcywgdGhlIGNsaWVudA0KPiBhbmQNCj4gK3NlcnZlciB1c2UgbWVzc2FnZXMgc2Vu dCBvdmVyIHRoZSBzb2NrZXQuIEl0IGlzIGV4cGVjdGVkIHRoYXQgdGhlc2UNCj4gb3BlcmF0aW9u cw0KPiArd2lsbCBoYXZlIGxvd2VyIHBlcmZvcm1hbmNlIHRoYW4gZGlyZWN0IGFjY2Vzcy4NCj4g Kw0KPiArVGhlIGNsaWVudCBjYW4gYWNjZXNzIHNlcnZlciBtZW1vcnkgd2l0aCBWRklPX1VTRVJf UkVHSU9OX1JFQUQgYW5kDQo+ICtWRklPX1VTRVJfUkVHSU9OX1dSSVRFIGNvbW1hbmRzLiBUaGVz ZSBzaGFyZSBhIGNvbW1vbiBkYXRhDQo+IHN0cnVjdHVyZSB0aGF0DQo+ICthcHBlYXJzIGFmdGVy IHRoZSBtZXNzYWdlIGhlYWRlci4NCj4gKw0KPiArUkVHSU9OIFJlYWQvV3JpdGUgRGF0YQ0KPiAr Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXg0KPiArDQo+ICsrLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLSsNCj4gK3wgTmFtZSAgIHwgT2Zmc2V0IHwgU2l6ZSAgICAgfA0KPiArKz09PT09PT09Kz09 PT09PT09Kz09PT09PT09PT0rDQo+ICt8IE9mZnNldCB8IDE2ICAgICB8IDggICAgICAgIHwNCj4g KystLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tKw0KPiArfCBSZWdpb24gfCAyNCAgICAgfCA0 ICAgICAgICB8DQo+ICsrLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLSsNCj4gK3wgQ291bnQg IHwgMjggICAgIHwgNCAgICAgICAgfA0KPiArKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0r DQo+ICt8IERhdGEgICB8IDMyICAgICB8IHZhcmlhYmxlIHwNCj4gKystLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tKw0KPiArDQo+ICsqICpPZmZzZXQqIGludG8gdGhlIHJlZ2lvbiBiZWluZyBh Y2Nlc3NlZC4NCj4gKyogKlJlZ2lvbiogaXMgdGhlIGluZGV4IG9mIHRoZSByZWdpb24gYmVpbmcg YWNjZXNzZWQuDQo+ICsqICpDb3VudCogaXMgdGhlIHNpemUgb2YgdGhlIGRhdGEgdG8gYmUgdHJh bnNmZXJyZWQuDQo+ICsqICpEYXRhKiBpcyB0aGUgZGF0YSB0byBiZSByZWFkIG9yIHdyaXR0ZW4u DQo+ICsNCj4gK1RoZSBzZXJ2ZXIgY2FuIGFjY2VzcyBjbGllbnQgbWVtb3J5IHdpdGggVkZJT19V U0VSX0RNQV9SRUFEIGFuZA0KPiArVkZJT19VU0VSX0RNQV9XUklURSBtZXNzYWdlcy4gVGhlc2Ug YWxzbyBzaGFyZSBhIGNvbW1vbiBkYXRhDQo+IHN0cnVjdHVyZSB0aGF0DQo+ICthcHBlYXJzIGFm dGVyIHRoZSBtZXNzYWdlIGhlYWRlci4NCj4gKw0KPiArRE1BIFJlYWQvV3JpdGUgRGF0YQ0KPiAr Xl5eXl5eXl5eXl5eXl5eXl5eXg0KPiArDQo+ICsrLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0rDQo+ICt8IE5hbWUgICAgfCBPZmZzZXQgfCBTaXplICAgICB8DQo+ICsrPT09PT09PT09Kz09 PT09PT09Kz09PT09PT09PT0rDQo+ICt8IEFkZHJlc3MgfCAxNiAgICAgfCA4ICAgICAgICB8DQo+ ICsrLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0rDQo+ICt8IENvdW50ICAgfCAyNCAgICAg fCA0ICAgICAgICB8DQo+ICsrLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0rDQo+ICt8IERh dGEgICAgfCAyOCAgICAgfCB2YXJpYWJsZSB8DQo+ICsrLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0rDQo+ICsNCj4gKyogKkFkZHJlc3MqIGlzIHRoZSBhcmVhIG9mIGNsaWVudCBtZW1vcnkg YmVpbmcgYWNjZXNzZWQuIFRoaXMgYWRkcmVzcyBtdXN0DQo+IGhhdmUNCj4gKyAgYmVlbiBwcmV2 aW91c2x5IGV4cG9ydGVkIHRvIHRoZSBzZXJ2ZXIgd2l0aCBhIFZGSU9fVVNFUl9ETUFfTUFQDQo+ IG1lc3NhZ2UuDQo+ICsqICpDb3VudCogaXMgdGhlIHNpemUgb2YgdGhlIGRhdGEgdG8gYmUgdHJh bnNmZXJyZWQuDQo+ICsqICpEYXRhKiBpcyB0aGUgZGF0YSB0byBiZSByZWFkIG9yIHdyaXR0ZW4u DQo+ICsNCj4gK1ZGSU9fVVNFUl9SRUdJT05fUkVBRA0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+ICsNCj4gK01lc3NhZ2UgZm9ybWF0DQo+ICteXl5eXl5eXl5eXl5eXg0KPiArDQo+ICsrLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBOYW1lICAgICAgICAg fCBWYWx1ZSAgICAgICAgICAgICAgICAgIHwNCj4gKys9PT09PT09PT09PT09PSs9PT09PT09PT09 PT09PT09PT09PT09PT0rDQo+ICt8IE1lc3NhZ2UgSUQgICB8IDxJRD4gICAgICAgICAgICAgICAg ICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wg Q29tbWFuZCAgICAgIHwgOCAgICAgICAgICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBNZXNzYWdlIHNpemUgfCAzMiArIGRh dGEgc2l6ZSAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rDQo+ICt8IEZsYWdzICAgICAgICB8IFJlcGx5IGJpdCBzZXQgaW4gcmVwbHkgfA0KPiAr Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgRXJyb3IgICAg ICAgIHwgMC9lcnJubyAgICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBSZWFkIGluZm8gICAgfCBSRUdJT04gcmVhZC93cml0 ZSBkYXRhIHwNCj4gKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ ICsNCj4gK1RoaXMgY29tbWFuZCBtZXNzYWdlIGlzIHNlbnQgZnJvbSB0aGUgY2xpZW50IHRvIHRo ZSBzZXJ2ZXIgdG8gcmVhZCBmcm9tDQo+IHNlcnZlcg0KPiArbWVtb3J5LiAgSW4gdGhlIGNvbW1h bmQgbWVzc2FnZXMsIHRoZXJlIGlzIG5vIGRhdGEsIGFuZCB0aGUgY291bnQgaXMgdGhlDQo+IGFt b3VudA0KPiArb2YgZGF0YSB0byBiZSByZWFkLiBUaGUgcmVwbHkgbWVzc2FnZSBtdXN0IGluY2x1 ZGUgdGhlIGRhdGEgcmVhZCwgYW5kIGl0cw0KPiBjb3VudA0KPiArZmllbGQgaXMgdGhlIGFtb3Vu dCBvZiBkYXRhIHJlYWQuDQo+ICsNCj4gK1ZGSU9fVVNFUl9SRUdJT05fV1JJVEUNCj4gKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArTWVzc2FnZSBmb3JtYXQNCj4gK15eXl5eXl5eXl5e Xl5eDQo+ICsNCj4gKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ ICt8IE5hbWUgICAgICAgICB8IFZhbHVlICAgICAgICAgICAgICAgICAgfA0KPiArKz09PT09PT09 PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PSsNCj4gK3wgTWVzc2FnZSBJRCAgIHwgPElE PiAgICAgICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKw0KPiArfCBDb21tYW5kICAgICAgfCA5ICAgICAgICAgICAgICAgICAgICAgIHwN Cj4gKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IE1lc3Nh Z2Ugc2l6ZSB8IDMyICsgZGF0YSBzaXplICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgRmxhZ3MgICAgICAgIHwgUmVwbHkgYml0IHNl dCBpbiByZXBseSB8DQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Kw0KPiArfCBFcnJvciAgICAgICAgfCAwL2Vycm5vICAgICAgICAgICAgICAgIHwNCj4gKystLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IFdyaXRlIGluZm8gICB8 IFJFR0lPTiByZWFkL3dyaXRlIGRhdGEgfA0KPiArKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSsNCj4gKw0KPiArVGhpcyBjb21tYW5kIG1lc3NhZ2UgaXMgc2VudCBmcm9t IHRoZSBjbGllbnQgdG8gdGhlIHNlcnZlciB0byB3cml0ZSB0bw0KPiBzZXJ2ZXINCj4gK21lbW9y eS4gIFRoZSBjb21tYW5kIG1lc3NhZ2UgbXVzdCBjb250YWluIHRoZSBkYXRhIHRvIGJlIHdyaXR0 ZW4sIGFuZA0KPiBpdHMgY291bnQNCj4gK2ZpZWxkIG11c3QgY29udGFpbiB0aGUgYW1vdW50IG9m IHdyaXRlIGRhdGEuIFRoZSBjb3VudCBmaWVsZCBpbiB0aGUgcmVwbHkNCj4gK21lc3NhZ2UgbXVz dCBiZSB6ZXJvLg0KPiArDQo+ICtWRklPX1VTRVJfRE1BX1JFQUQNCj4gKy0tLS0tLS0tLS0tLS0t LS0tLQ0KPiArDQo+ICtNZXNzYWdlIGZvcm1hdA0KPiArXl5eXl5eXl5eXl5eXl4NCj4gKw0KPiAr Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgTmFtZSAgICAg ICAgIHwgVmFsdWUgICAgICAgICAgICAgICAgICB8DQo+ICsrPT09PT09PT09PT09PT0rPT09PT09 PT09PT09PT09PT09PT09PT09Kw0KPiArfCBNZXNzYWdlIElEICAgfCA8SUQ+ICAgICAgICAgICAg ICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ ICt8IENvbW1hbmQgICAgICB8IDEwICAgICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgTWVzc2FnZSBzaXplIHwgMjgg KyBkYXRhIHNpemUgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKw0KPiArfCBGbGFncyAgICAgICAgfCBSZXBseSBiaXQgc2V0IGluIHJlcGx5IHwN Cj4gKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IEVycm9y ICAgICAgICB8IDAvZXJybm8gICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgRE1BIGluZm8gICAgIHwgRE1BIHJlYWQvd3Jp dGUgZGF0YSAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Kw0KPiArDQo+ICtUaGlzIGNvbW1hbmQgbWVzc2FnZSBpcyBzZW50IGZyb20gdGhlIHNlcnZlciB0 byB0aGUgY2xpZW50IHRvIHJlYWQgZnJvbQ0KPiBjbGllbnQNCj4gK21lbW9yeS4gIEluIHRoZSBj b21tYW5kIG1lc3NhZ2UsIHRoZXJlIGlzIG5vIGRhdGEsIGFuZCB0aGUgY291bnQgbXVzdA0KPiB3 aWxsIGJlDQo+ICt0aGUgYW1vdW50IG9mIGRhdGEgdG8gYmUgcmVhZC4gVGhlIHJlcGx5IG1lc3Nh Z2UgbXVzdCBpbmNsdWRlIHRoZSBkYXRhDQo+IHJlYWQsDQo+ICthbmQgaXRzIGNvdW50IGZpZWxk IG11c3QgYmUgdGhlIGFtb3VudCBvZiBkYXRhIHJlYWQuDQo+ICsNCj4gK1ZGSU9fVVNFUl9ETUFf V1JJVEUNCj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArTWVzc2FnZSBmb3JtYXQNCj4g K15eXl5eXl5eXl5eXl5eDQo+ICsNCj4gKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rDQo+ICt8IE5hbWUgICAgICAgICB8IFZhbHVlICAgICAgICAgICAgICAgICAgfA0K PiArKz09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PSsNCj4gK3wgTWVzc2Fn ZSBJRCAgIHwgPElEPiAgICAgICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBDb21tYW5kICAgICAgfCAxMSAgICAgICAgICAg ICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r DQo+ICt8IE1lc3NhZ2Ugc2l6ZSB8IDI4ICsgZGF0YSBzaXplICAgICAgICAgfA0KPiArKy0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgRmxhZ3MgICAgICAgIHwg UmVwbHkgYml0IHNldCBpbiByZXBseSB8DQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKw0KPiArfCBFcnJvciAgICAgICAgfCAwL2Vycm5vICAgICAgICAgICAgICAg IHwNCj4gKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IERN QSBpbmZvICAgICB8IERNQSByZWFkL3dyaXRlIGRhdGEgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKw0KPiArVGhpcyBjb21tYW5kIG1lc3NhZ2Ug aXMgc2VudCBmcm9tIHRoZSBzZXJ2ZXIgdG8gdGhlIGNsaWVudCB0byB3cml0ZSB0bw0KPiBzZXJ2 ZXINCj4gK21lbW9yeS4gIFRoZSBjb21tYW5kIG1lc3NhZ2UgbXVzdCBjb250YWluIHRoZSBkYXRh IHRvIGJlIHdyaXR0ZW4sIGFuZA0KPiBpdHMgY291bnQNCj4gK2ZpZWxkIG11c3QgY29udGFpbiB0 aGUgYW1vdW50IG9mIHdyaXRlIGRhdGEuIFRoZSBjb3VudCBmaWVsZCBpbiB0aGUgcmVwbHkNCj4g K21lc3NhZ2UgbXVzdCBiZSB6ZXJvLg0KPiArDQo+ICtWRklPX1VTRVJfVk1fSU5URVJSVVBUDQo+ ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gK01lc3NhZ2UgZm9ybWF0DQo+ICteXl5e Xl5eXl5eXl5eXg0KPiArDQo+ICsrLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rDQo+ICt8IE5hbWUgICAgICAgICAgIHwgVmFsdWUgICAgICAgICAgICAgICAgICB8DQo+ ICsrPT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT0rDQo+ICt8IE1lc3Nh Z2UgSUQgICAgIHwgPElEPiAgICAgICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IENvbW1hbmQgICAgICAgIHwgMTIgICAg ICAgICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rDQo+ICt8IE1lc3NhZ2Ugc2l6ZSAgIHwgMjAgICAgICAgICAgICAgICAgICAgICB8 DQo+ICsrLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IEZs YWdzICAgICAgICAgIHwgUmVwbHkgYml0IHNldCBpbiByZXBseSB8DQo+ICsrLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IEVycm9yICAgICAgICAgIHwgMC9l cnJubyAgICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rDQo+ICt8IEludGVycnVwdCBpbmZvIHwgPGludGVycnVwdD4gICAgICAgICAg ICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsN Cj4gK1RoaXMgY29tbWFuZCBtZXNzYWdlIGlzIHNlbnQgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBj bGllbnQgdG8gc2lnbmFsIHRoZQ0KPiBkZXZpY2UNCj4gK2hhcyByYWlzZWQgYW4gaW50ZXJydXB0 Lg0KPiArDQo+ICtJbnRlcnJ1cHQgaW5mbyBmb3JtYXQNCj4gK15eXl5eXl5eXl5eXl5eXl5eXl5e Xg0KPiArDQo+ICsrLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tKw0KPiArfCBOYW1lICAgICAg fCBPZmZzZXQgfCBTaXplIHwNCj4gKys9PT09PT09PT09PSs9PT09PT09PSs9PT09PT0rDQo+ICt8 IFN1Yi1pbmRleCB8IDE2ICAgICB8IDQgICAgfA0KPiArKy0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLSsNCj4gKw0KPiArKiAqU3ViLWluZGV4KiBpcyByZWxhdGl2ZSB0byB0aGUgSVJRIGluZGV4 LCBlLmcuLCB0aGUgdmVjdG9yIG51bWJlciB1c2VkIGluDQo+IFBDSQ0KPiArICBNU0kvWCB0eXBl IGludGVycnVwdHMuDQo+ICsNCj4gK1ZGSU9fVVNFUl9ERVZJQ0VfUkVTRVQNCj4gKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArTWVzc2FnZSBmb3JtYXQNCj4gK15eXl5eXl5eXl5eXl5e DQo+ICsNCj4gKystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8 IE5hbWUgICAgICAgICB8IFZhbHVlICAgICAgICAgICAgICAgICAgfA0KPiArKz09PT09PT09PT09 PT09Kz09PT09PT09PT09PT09PT09PT09PT09PSsNCj4gK3wgTWVzc2FnZSBJRCAgIHwgPElEPiAg ICAgICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKw0KPiArfCBDb21tYW5kICAgICAgfCAxMyAgICAgICAgICAgICAgICAgICAgIHwNCj4g KystLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IE1lc3NhZ2Ug c2l6ZSB8IDE2ICAgICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgRmxhZ3MgICAgICAgIHwgUmVwbHkgYml0IHNldCBp biByZXBseSB8DQo+ICsrLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0K PiArfCBFcnJvciAgICAgICAgfCAwL2Vycm5vICAgICAgICAgICAgICAgIHwNCj4gKystLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsNCj4gK1RoaXMgY29tbWFuZCBt ZXNzYWdlIGlzIHNlbnQgZnJvbSB0aGUgY2xpZW50IHRvIHRoZSBzZXJ2ZXIgdG8gcmVzZXQgdGhl DQo+IGRldmljZS4NCj4gKw0KPiArVkZJT19VU0VSX0RJUllfUEFHRVMNCj4gKy0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ICsNCj4gK01lc3NhZ2UgZm9ybWF0DQo+ICteXl5eXl5eXl5eXl5eXg0KPiAr DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiAr fCBOYW1lICAgICAgICAgICAgICAgfCBWYWx1ZSAgICAgICAgICAgICAgICAgIHwNCj4gKys9PT09 PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT0rDQo+ICt8IE1lc3NhZ2Ug SUQgICAgICAgICB8IDxJRD4gICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gK3wgQ29tbWFuZCAgICAgICAgICAg IHwgMTQgICAgICAgICAgICAgICAgICAgICB8DQo+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBNZXNzYWdlIHNpemUgICAgICAgfCAxNiAgICAg ICAgICAgICAgICAgICAgIHwNCj4gKystLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rDQo+ICt8IEZsYWdzICAgICAgICAgICAgICB8IFJlcGx5IGJpdCBzZXQgaW4g cmVwbHkgfA0KPiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSsNCj4gK3wgRXJyb3IgICAgICAgICAgICAgIHwgMC9lcnJubyAgICAgICAgICAgICAgICB8DQo+ ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiArfCBW RklPIERpcnR5IGJpdG1hcCAgfCA8ZGlydHkgYml0bWFwPiAgICAgICAgIHwNCj4gKystLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsNCj4gK1RoaXMgY29t bWFuZCBpcyBhbmFsb2dvdXMgdG8gVkZJT19JT01NVV9ESVJUWV9QQUdFUy4gSXQgaXMgc2VudCBi eQ0KPiB0aGUgY2xpZW50DQo+ICt0byB0aGUgc2VydmVyIGluIG9yZGVyIHRvIGNvbnRyb2wgbG9n Z2luZyBvZiBkaXJ0eSBwYWdlcywgdXN1YWxseSBkdXJpbmcgYSBsaXZlDQo+ICttaWdyYXRpb24u IFRoZSBWRklPIGRpcnR5IGJpdG1hcCBzdHJ1Y3R1cmUgaXMgZGVmaW5lZCBpbiBgYDxsaW51eC92 ZmlvLmg+YGANCj4gKyhgYHN0cnVjdCB2ZmlvX2lvbW11X3R5cGUxX2RpcnR5X2JpdG1hcGBgKS4N Cj4gKw0KPiArVkZJTyBEaXJ0eSBCaXRtYXAgRm9ybWF0DQo+ICteXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl4NCj4gKw0KPiArKy0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IE5hbWUgIHwgT2Zmc2V0IHwgU2l6ZSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKys9PT09PT09Kz09PT09PT09Kz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PSsNCj4gK3wgYXJnc3ogfCAwICAg ICAgfCA0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiArKy0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ ICt8IGZsYWdzIHwgNCAgICAgIHwgNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwNCj4gKystLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKw0KPiArfCAgICAgICB8ICstLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKyB8DQo+ICt8ICAgICAgIHwgfCBCaXQgfCBEZWZpbml0aW9uICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHwNCj4gK3wgICAgICAgfCArPT09PT0rPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsgfA0KPiArfCAgICAgICB8IHwgMCAg IHwgVkZJT19JT01NVV9ESVJUWV9QQUdFU19GTEFHX1NUQVJUICAgICAgfCB8DQo+ICt8ICAgICAg IHwgKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIHwNCj4g K3wgICAgICAgfCB8IDEgICB8IFZGSU9fSU9NTVVfRElSVFlfUEFHRVNfRkxBR19TVE9QICAgICAg IHwgfA0KPiArfCAgICAgICB8ICstLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKyB8DQo+ICt8ICAgICAgIHwgfCAyICAgfCBWRklPX0lPTU1VX0RJUlRZX1BBR0VT X0ZMQUdfR0VUX0JJVE1BUCB8IHwNCj4gK3wgICAgICAgfCArLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgfA0KPiArKy0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICt8IGRhdGEgIHwgOCAgICAg IHwgNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKystLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiAr DQo+ICsqICphcmdzeiogaXMgdGhlIHNpemUgb2YgdGhlIFZGSU8gZGlydHkgYml0bWFwIGluZm8g c3RydWN0dXJlLg0KPiArDQo+ICsqICpmbGFncyogZGVmaW5lcyB0aGUgYWN0aW9uIHRvIGJlIHBl cmZvcm1lZCBieSB0aGUgc2VydmVyOg0KPiArDQo+ICsgICogKlZGSU9fSU9NTVVfRElSVFlfUEFH RVNfRkxBR19TVEFSVCogaW5zdHJ1Y3RzIHRoZSBzZXJ2ZXIgdG8NCj4gc3RhcnQgbG9nZ2luZw0K PiArICAgIHBhZ2VzIGl0IGRpcnRpZXMuIExvZ2dpbmcgY29udGludWVzIHVudGlsIGV4cGxpY2l0 bHkgZGlzYWJsZWQgYnkNCj4gKyAgICBWRklPX0lPTU1VX0RJUlRZX1BBR0VTX0ZMQUdfU1RPUC4N Cj4gKw0KPiArICAqICpWRklPX0lPTU1VX0RJUlRZX1BBR0VTX0ZMQUdfU1RPUCogaW5zdHJ1Y3Rz IHRoZSBzZXJ2ZXIgdG8gc3RvcA0KPiBsb2dnaW5nDQo+ICsgICAgZGlydHkgcGFnZXMuDQo+ICsN Cj4gKyAgKiAqVkZJT19JT01NVV9ESVJUWV9QQUdFU19GTEFHX0dFVF9CSVRNQVAqIHJlcXVlc3Rz IGZyb20gdGhlDQo+IHNlcnZlciB0byByZXR1cm4NCj4gKyAgICB0aGUgZGlydHkgYml0bWFwIGZv ciBhIHNwZWNpZmljIElPVkEgcmFuZ2UuIFRoZSBJT1ZBIHJhbmdlIGlzIHNwZWNpZmllZCBieQ0K PiArICAgICJWRklPIGRpcnR5IGJpdG1hcCBnZXQiIHN0cnVjdHVyZSwgd2hpY2ggbXVzdCBpbW1l ZGlhdGVsbHkgZm9sbG93IHRoZQ0KPiArICAgICJWRklPIGRpcnR5IGJpdG1hcCIgc3RydWN0dXJl LCBleHBsYWluZWQgbmV4dC4gVGhpcyBvcGVyYXRpb24gaXMgb25seSB2YWxpZA0KPiArICAgIGlm IGxvZ2dpbmcgb2YgZGlydHkgcGFnZXMgaGFzIGJlZW4gcHJldmlvdXNseSBzdGFydGVkLiBUaGUg c2VydmVyIG11c3QNCj4gKyAgICByZXNwb25kIHRoZSBzYW1lIHdheSBpdCBkb2VzIGZvciBWRklP X1VTRVJfRE1BX1VOTUFQICh0aGUgZGlydHkNCj4gcGFnZXMNCj4gKyAgICBiaXRtYXAgbXVzdCBm b2xsb3cgdGhlIHJlc3BvbnNlIGhlYWRlcikuDQo+ICsNCj4gKyAgVGhlc2UgZmxhZ3MgYXJlIG11 dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGVhY2ggb3RoZXIuDQo+ICsNCj4gKyogKmRhdGEqIFRoaXMg ZmllbGQgaXMgdW51c2VkIGluIHZmaW8tdXNlci4NCj4gKw0KPiArVkZJTyBEaXJ0eSBCaXRtYXAg R2V0IEZvcm1hdA0KPiArXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXg0KPiArDQo+ICsrLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tKw0KPiArfCBOYW1lICAgfCBPZmZzZXQgfCBTaXplIHwNCj4g Kys9PT09PT09PSs9PT09PT09PSs9PT09PT0rDQo+ICt8IGlvdmEgICB8IDAgICAgICB8IDggICAg fA0KPiArKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLSsNCj4gK3wgc2l6ZSAgIHwgOCAgICAgIHwg OCAgICB8DQo+ICsrLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tKw0KPiArfCBiaXRtYXAgfCAxNiAg ICAgfCAyNCAgIHwNCj4gKystLS0tLS0tLSstLS0tLS0tLSstLS0tLS0rDQo+ICsNCj4gKyogKmlv dmEqIGlzIHRoZSBJT1ZBIG9mZnNldA0KPiArDQo+ICsqICpzaXplKiBpcyB0aGUgc2l6ZSBvZiB0 aGUgSU9WQSByZWdpb24NCj4gKw0KPiArKiAqYml0bWFwKiBpcyB0aGUgVkZJTyBiaXRtYXAgKGBg c3RydWN0IHZmaW9fYml0bWFwYGApLCB3aXRoIHRoZSBzYW1lDQo+IHNlbWFudGljcw0KPiArICBh cyBWRklPX1VTRVJfRE1BX1VOTUFQLg0KPiArDQo+ICsNCj4gK0FwcGVuZGljZXMNCj4gKz09PT09 PT09PT0NCj4gKw0KPiArVW51c2VkIFZGSU8gaW9jdGwoKSBjb21tYW5kcw0KPiArLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArDQo+ICtUaGUgZm9sbG93aW5nIFZGSU8gY29tbWFuZHMg ZG8gbm90IGhhdmUgYW4gZXF1aXZhbGVudCB2ZmlvLXVzZXINCj4gY29tbWFuZDoNCj4gKw0KPiAr KiBWRklPX0dFVF9BUElfVkVSU0lPTg0KPiArKiBWRklPX0NIRUNLX0VYVEVOU0lPTg0KPiArKiBW RklPX1NFVF9JT01NVQ0KPiArKiBWRklPX0dST1VQX0dFVF9TVEFUVVMNCj4gKyogVkZJT19HUk9V UF9TRVRfQ09OVEFJTkVSDQo+ICsqIFZGSU9fR1JPVVBfVU5TRVRfQ09OVEFJTkVSDQo+ICsqIFZG SU9fR1JPVVBfR0VUX0RFVklDRV9GRA0KPiArKiBWRklPX0lPTU1VX0dFVF9JTkZPDQo+ICsNCj4g K0hvd2V2ZXIsIG9uY2Ugc3VwcG9ydCBmb3IgbGl2ZSBtaWdyYXRpb24gZm9yIFZGSU8gZGV2aWNl cyBpcyBmaW5hbGl6ZWQgc29tZQ0KPiArb2YgdGhlIGFib3ZlIGNvbW1hbmRzIG1heSBoYXZlIHRv IGJlIGhhbmRsZWQgYnkgdGhlIGNsaWVudCBpbiB0aGVpcg0KPiArY29ycmVzcG9uZGluZyB2Zmlv LXVzZXIgZm9ybS4gVGhpcyB3aWxsIGJlIGFkZHJlc3NlZCBpbiBhIGZ1dHVyZSBwcm90b2NvbA0K PiArdmVyc2lvbi4NCj4gKw0KPiArVkZJTyBncm91cHMgYW5kIGNvbnRhaW5lcnMNCj4gK15eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eDQo+ICsNCj4gK1RoZSBjdXJyZW50IFZGSU8gaW1wbGVtZW50 YXRpb24gaW5jbHVkZXMgZ3JvdXAgYW5kIGNvbnRhaW5lciBpZGlvbXMgdGhhdA0KPiArZGVzY3Jp YmUgaG93IGEgZGV2aWNlIHJlbGF0ZXMgdG8gdGhlIGhvc3QgSU9NTVUuIEluIHRoZSB2ZmlvLXVz ZXINCj4gK2ltcGxlbWVudGF0aW9uLCB0aGUgSU9NTVUgaXMgaW1wbGVtZW50ZWQgaW4gU1cgYnkg dGhlIGNsaWVudCwgYW5kIGlzIG5vdA0KPiArdmlzaWJsZSB0byB0aGUgc2VydmVyLiBUaGUgc2lt cGxlc3QgaWRlYSB3b3VsZCBiZSB0aGF0IHRoZSBjbGllbnQgcHV0IGVhY2gNCj4gK2RldmljZSBp bnRvIGl0cyBvd24gZ3JvdXAgYW5kIGNvbnRhaW5lci4NCj4gKw0KPiArQmFja2VuZCBQcm9ncmFt IENvbnZlbnRpb25zDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArdmZp by11c2VyIGJhY2tlbmQgcHJvZ3JhbSBjb252ZW50aW9ucyBhcmUgYmFzZWQgb24gdGhlIHZob3N0 LXVzZXIgb25lcy4NCj4gKw0KPiArKiBUaGUgYmFja2VuZCBwcm9ncmFtIG11c3Qgbm90IGRhZW1v bml6ZSBpdHNlbGYuDQo+ICsqIE5vIGFzc3VtcHRpb25zIG11c3QgYmUgbWFkZSBhcyB0byB3aGF0 IGFjY2VzcyB0aGUgYmFja2VuZCBwcm9ncmFtDQo+IGhhcyBvbiB0aGUNCj4gKyAgc3lzdGVtLg0K PiArKiBGaWxlIGRlc2NyaXB0b3JzIDAsIDEgYW5kIDIgbXVzdCBleGlzdCwgbXVzdCBoYXZlIHJl Z3VsYXINCj4gKyAgc3RkaW4vc3Rkb3V0L3N0ZGVyciBzZW1hbnRpY3MsIGFuZCBjYW4gYmUgcmVk aXJlY3RlZC4NCj4gKyogVGhlIGJhY2tlbmQgcHJvZ3JhbSBtdXN0IGhvbm9yIHRoZSBTSUdURVJN IHNpZ25hbC4NCj4gKyogVGhlIGJhY2tlbmQgcHJvZ3JhbSBtdXN0IGFjY2VwdCB0aGUgZm9sbG93 aW5nIGNvbW1hbmRzIGxpbmUgb3B0aW9uczoNCj4gKw0KPiArICAqIGBgLS1zb2NrZXQtcGF0aD1Q QVRIYGA6IHBhdGggdG8gVU5JWCBkb21haW4gc29ja2V0LA0KPiArICAqIGBgLS1mZD1GRE5VTWBg OiBmaWxlIGRlc2NyaXB0b3IgZm9yIFVOSVggZG9tYWluIHNvY2tldCwgaW5jb21wYXRpYmxlDQo+ IHdpdGgNCj4gKyAgICBgYC0tc29ja2V0LXBhdGhgYA0KPiArKiBUaGUgYmFja2VuZCBwcm9ncmFt IG11c3QgYmUgYWNjb21wYW5pZWQgd2l0aCBhIEpTT04gZmlsZSBzdG9yZWQgdW5kZXINCj4gKyAg YGAvdXNyL3NoYXJlL3ZmaW8tdXNlcmBgLg0KPiAtLQ0KPiAyLjEyLjINCj4gDQoNCg==