From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web08.151.1633627172645271039 for ; Thu, 07 Oct 2021 10:19:33 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=lT6FVmeV; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: michael.d.kinney@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10130"; a="312508267" X-IronPort-AV: E=Sophos;i="5.85,355,1624345200"; d="scan'208";a="312508267" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Oct 2021 10:19:30 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,355,1624345200"; d="scan'208";a="478649260" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga007.jf.intel.com with ESMTP; 07 Oct 2021 10:19:30 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Thu, 7 Oct 2021 10:19:29 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Thu, 7 Oct 2021 10:19:29 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Thu, 7 Oct 2021 10:19:29 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.174) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Thu, 7 Oct 2021 10:19:29 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QoL8d4Vz+Ok6bDV6uxoXAbkkoYuQ3n9FM+FAw/OcYRYY6q6cChbNspSxnzXFpvez9GPjuvlFsvpKMXjEmMEVpSjJ/TGzg+o7R6l3A1WI7+C8Rel23lobvN+L15bpgK7Ny6zpHps5WezyWEhkWDY5rLgYa1OwWjhjKa4hBGfVFK0SsRankXlH58mWKeutF4FnxjLXpmtyrm0SGyZI3W+ydaLYaHOmWHwAs1IAPTItmZ7PxBNk1KDavy1QH4vuLyuOVMWaN9WAD3YAAfF0O8ED0eNyEvTKzIzxBjoM+kAAmemzG1Df7EECZXGAqEsUGnSmaJNRZwlASzDmwc6KmqNFlw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dM7izHCO4bGVd8bXqIKFaKgdY/Rv0j6Jfy9FMcyDyc4=; b=K0f3rrqXin5WqXhuhTn123ThXV3w2OyZnMWXh6AFiTZPjuYAOlq0LfeEbz3BVOH2mu9+GxqvUU1BrNng+ZodTmrQNsvcxZA+PKGiWiUIkIZ+lFNz2zrTqDjjXNIu5E+iMY5Vf0+ZUZbMZVEnV8lixSgoThdVup7eAtbp1RaeMvzgXebqkyk4U/pHi5uDBJ4I3EC1G3X8h/n18phqGSZxPZclHDKZlsTSW+yBjktltc6UyYXMJHxeoGG/FLTQoRx0gTMsF1sVe2p57DjUnLE9qpAsnRmGVmrV6kzlfK2vX2OEuLaTdf358+Nksz8pytmmLcoZmwmWyuyG/+HW4pegEw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dM7izHCO4bGVd8bXqIKFaKgdY/Rv0j6Jfy9FMcyDyc4=; b=lT6FVmeVuANlCwv1t671m6/5vpnOx/YOZfs6Rjr1lePtpkEKccuYayya4DcKfQTvPJYsTBeW20dpzKBjrp62PEXu6r6sJA0V94+aCOySCUmFyXtt5hY+0pQYTan20WpKA7E/7HXTEP6N9WWd6SdEG4M/NHJszKA0nW1mK7cNKyg= Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by MWHPR11MB1646.namprd11.prod.outlook.com (2603:10b6:301:c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.20; Thu, 7 Oct 2021 17:19:28 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::68cc:6227:db69:d81a]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::68cc:6227:db69:d81a%6]) with mapi id 15.20.4587.019; Thu, 7 Oct 2021 17:19:28 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "mhaeuser@posteo.de" , Leif Lindholm , "mikuback@linux.microsoft.com" , "Kinney, Michael D" CC: "rebecca@nuviainc.com" , Michael Kubacki , Bret Barkelew Subject: Re: [edk2-devel] Progress on getting Uncrustify working for EDK2? Thread-Topic: [edk2-devel] Progress on getting Uncrustify working for EDK2? Thread-Index: AQHXktW1F/CJbarBAE2s9kKUu+rpv6t2hbMAgAABlQCAAAXQAIBRHuOAgACBL4D//+ir8A== Date: Thu, 7 Oct 2021 17:19:28 +0000 Message-ID: References: <07a6ecff-f7bf-083a-f24d-246ca6c7988b@nuviainc.com> <2679bfa3-b4ec-d8e9-7e56-54ebe42d9001@posteo.de> <9fe0f984-db9d-9aec-0b44-5d30791a2855@linux.microsoft.com> <20211007104813.wa4rmfsqgcpvnzwt@leviathan> <07d5c8bc-40b2-4e99-3b3d-4c8ac4e14220@posteo.de> In-Reply-To: <07d5c8bc-40b2-4e99-3b3d-4c8ac4e14220@posteo.de> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: aa2a8d5f-8a79-4147-276a-08d989b69e55 x-ms-traffictypediagnostic: MWHPR11MB1646: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4502; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: j+n/OI2D87afNsPssjdqUhPmXFVxc04r0nOMXK4F6yvRyExTZri/P2J/9NFiQDekFMGPRcqRfujRIKXhMHJrwQmyngWY+Nt1nEBRqXXEgLUfcGHAmM1TvBxo2Du4LF8J1IiYpyeDewxn82mUGBQYI3+3oOEafQNMww8Qd6NHqG6yMJAy2WdsIzT/3LxgLNYp1UB4J5htZBnL4gFQA8NGMNvu/ei1f+b1/8unRDS/q20egO+jP1wzCYNwGqW1cpSbquCFV68YUSzVIwGZNcKr503qDtpI4zfeTfC5wrnIqNCjvyRTsxBAbq60s5S/5RDxZR0WdWc9vt3WwuX5KPngT+c+If0KPvxJjUN5jb5wvblX3Edcay40EKPv08WwC2HBPioK2W8nJm0tfFJ/nwTWqxM3pzZX0JrC4MwtFmsG+92CA/r5/nP2CQPG2AQqOsOS4IK4bjSkUw5beMPVe5Q0k5nU9kSK0wKNjAa+EkY+ZapsnRHazJV86xxzjMJjItdM//4C7B89brk/53Bg4qvvyGmntlh+i3m+OYRGhKi825k0k+XI2bzLZbrr5aF0TKUEXWFn5Lf4aaI9KoVHuhJJZ7nyWfi8vGlV7LT7r83WM4ZXsgeFq8BaLLcnZ3eaXQfzrFFe1Ddi9iRaLSbUvFq5IRe3fVMzEHqI8eNYN69+kaACJju0n346FZv/WixEra/32WxH7M0kNkvVpjh5TcYaiQAltYAPTTwPSDo0OtS7jrFZuKAEK57gmD80K66+w3eTxQoSFm7NSq6BcneS/QPdIoLGiZSyxyGoVWi8G7FAF6aj3liwGYv6YJBFRTZ379veW5N1fnKECVyVzcdC5D3Oqg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(86362001)(966005)(38070700005)(8676002)(122000001)(83380400001)(66574015)(316002)(5660300002)(508600001)(33656002)(38100700002)(54906003)(110136005)(26005)(7696005)(52536014)(66476007)(55016002)(186003)(66946007)(6506007)(53546011)(76116006)(9686003)(66446008)(66556008)(64756008)(71200400001)(8936002)(2906002)(4326008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WXgrZHZheDJCazZhZUJIVVFDdk5aelpua1hCMldTcUIzU1FsTzlxZVBBTHNr?= =?utf-8?B?RWI2MFlnZHJhaXBma2tiZC9tTUh3TVhUVjJNVnIxcW41R3ZxRGZRQ3JsUHZC?= =?utf-8?B?UFNMZ2hUWUpmeHliSGVmOGxnRDRTbnRwQVlNemVYc1pQbHBJSWdONHNLaHlt?= =?utf-8?B?SjNpWDNNdi9TQ1lTRXoxM25NMFFJc0toWVJrVDNnUUZvNlpHRXREbkV3ZE9R?= =?utf-8?B?QXpGalRVVksxS0JpRW85UW1PYTRMWXhiajRhODc2QWNlVkl1S0F3RUYyU0R2?= =?utf-8?B?dm1aYTN0YUpVN09GUGxzWnpUN255cXNROHVKNjUwUDIwdUk5YlNIQ3pLb1NR?= =?utf-8?B?VThVNzFhWHdIdEZLNXAyNGd4NjJIaktPaFdiWWxNb0xaUC9kUjV6bzFxTE9R?= =?utf-8?B?ZTZhWXRJL01QODNEcUFwWk52a3EzeVo1d2ppR0RnU0lkRVRQZWg5WVZkci9a?= =?utf-8?B?aFFmalU0N01rQkJGQnJWMVZPbUg5bW91RStQb2pLT0xlc2xEb2dnVHIxZU50?= =?utf-8?B?SWEwd21WTFR2NU4rTERwRkQrV2tTOEx3eE4zckJuWVBUSzRmcGhzNTJSMkVD?= =?utf-8?B?b3RPclk4OXoxSUNScmFOaHBhUTh0b0ZBV2I5SkVJYjdqdlRwRXBLSXdOU05O?= =?utf-8?B?S3hVWm0zbEhINkJvb1Jha0NCT3VJVmF6TEZOR1VqWlM4RHMvMXYxNFhoYkZq?= =?utf-8?B?ZVE0aHptRWRML1kvZlNTMkw5aXp1Y0ZiSjA0Z1VxQzU0RXJLQUVBNjNQYXhF?= =?utf-8?B?T3NCc3FFNE9Jajk2TDAwcE0rUUo5TDFuUzlSMXZyYUJxSGY3OHZPYUFNMllR?= =?utf-8?B?VGt4Sy9VNFYwZ25mRUtxL3EraWhVU1JUYmc3YU04NmtGOTlUU1c3ZW53S0N4?= =?utf-8?B?ckMvUWdtU01PNjZCWDg4Si9MUmRlcnU3Rm9LMFFRblZOd3ozME9CQkRUUjBa?= =?utf-8?B?NVdzMVc1OGVYTXliZGJnV1BXb1N4Mm5mQU13L0QyNzhVamxyWlJMOTJPSis1?= =?utf-8?B?b044aFhFc3FBc0hoQ28xYVZVL20yVjlrd0hqRmRBbUNZQzBBVG1FanBWeHls?= =?utf-8?B?TXpjd1laa1R3TGxpN3FUMUtRK0hBcXBsbnZKUHZwRER2N3M3VWNlVkRzVkhx?= =?utf-8?B?TEh0cXd5VDliM0dOazFWUW50QjdrUm1xbnNjVi9QOEJQbE1UcDQwcUdFQ1hq?= =?utf-8?B?cmxyS3NIdzJWYW5EK3VtNTRFWmJPTXRrWG13M1lkSS9wb21Wa3ozQ2VKaC8y?= =?utf-8?B?c1pXWUVKUk1HYzQ1WmVmZXJ5T3lJU3lZOXR5Z0VtaTEyMU5uNTBnU0pib01j?= =?utf-8?B?TC9yWnQyR0xHbm1OM21EaHo3cGJmV2dPTUNLc2tvTWpiUUJNRWFONjNCYnVv?= =?utf-8?B?TWovMWVmTUlLMUhJZHVGYm9hd3hYckRXOW8vemxrTmlBaTFtTGxxenp1QWFi?= =?utf-8?B?aHhGMis5eStONUJ3aHZuUXFsWTVUY0NGMUcyT0VwUlBGS2Z2Zkwxc3h1cnp3?= =?utf-8?B?VnYySzhheUpnV1RmT1ZueG50dEFnZFAvcWNwZXM1aFVBY3VTZ1hEbHZVR0Fi?= =?utf-8?B?Y3NOb1JUZ2pNeVpmMlJMUUF0MWtoSVkzYnBVdWdxWFRkMTZDUUhLSVlvcGhl?= =?utf-8?B?WjRyVkp1dURiSTNvSVI2cnNLaitOWS9iWUI4ZHNVQ05CdGFwYkRtMFRBNkR3?= =?utf-8?B?ZWFuYVpVTG51bUtQRVdTL3dCT1FFMVV2eXZ0YTBuRm9kODYvSFdjNEhSQTB1?= =?utf-8?Q?kH0vfxgukRvGTFs6sk=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: aa2a8d5f-8a79-4147-276a-08d989b69e55 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Oct 2021 17:19:28.1227 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: tPE7WzxsY2/WUnVtYnibDxxfhEvSur82Qf9BSs5eURpLmIrb7bnPkvmtthTgVyMdczjxefMu71z1nAR7T1g7uQP0ppHgSJhzRQ1M5B8ay80= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1646 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTWFydmluLA0KDQpTb21lIGNvbW1lbnRzIGJlbG93Lg0KDQpNaWtlDQoNCj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVk azIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgTWFydmluIEjDpHVzZXINCj4gU2VudDogVGh1cnNk YXksIE9jdG9iZXIgNywgMjAyMSAxMTozMSBBTQ0KPiBUbzogTGVpZiBMaW5kaG9sbSA8bGVpZkBu dXZpYWluYy5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgbWlrdWJhY2tAbGludXgubWljcm9z b2Z0LmNvbQ0KPiBDYzogcmViZWNjYUBudXZpYWluYy5jb207IE1pY2hhZWwgS3ViYWNraSA8TWlj aGFlbC5LdWJhY2tpQG1pY3Jvc29mdC5jb20+OyBCcmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3 QG1pY3Jvc29mdC5jb20+Ow0KPiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gUHJvZ3Jlc3Mgb24gZ2V0dGlu ZyBVbmNydXN0aWZ5IHdvcmtpbmcgZm9yIEVESzI/DQo+IA0KPiBHb29kIGRheSwNCj4gDQo+ICsx LCBidXQgd2hpbGUgeW91J3JlIGF0IGl0LCBjYW4gd2UgaGF2ZSBhcmd1bWVudHMgbm90IGFsaWdu IHRvIHRoZQ0KPiBmdW5jdGlvbiBuYW1lLi4uDQo+IA0KPiAgICBTdGF0dXMgPSBUZXN0ICgNCj4g ICAgICAgICAgICAgICBhDQo+ICAgICAgICAgICAgICAgKTsNCj4gDQo+IC4uLiBidXQgdG8gdGhl IG5leHQgbmF0dXJhbCBpbmRlbnRhdGlvbiBsZXZlbD8NCj4gDQo+ICAgIFN0YXR1cyA9IFRlc3Qg KA0KPiAgICAgIGENCj4gICAgICApOw0KPiANCj4gQmFzaWNhbGx5IG5vIElERSBJIGhhdmUgc2Vl biBzdXBwb3J0cyBFREsgSUkncyBzdHlsZSwgYW5kIEkgd291bGRuJ3QgYmUNCj4ga2VlbiBvbiB3 cml0aW5nIGtub3duLWJyb2tlbiBzdHlsZSB0byB0aGVuIHJlbHkgb24gVW5jcnVzdGlmeSB0byBm aXggaXQuDQo+IA0KPiBJIGFsc28gaGF2ZSBoZWFyZCBzb21lIGNvbnRyb3ZlcnN5IHJlZ2FyZGlu ZyBjYXN0cyBvZmYtbGlzdCwgd2hlcmUgc29tZQ0KPiBwcmVmZXIgbm8gc3BhY2VzIGFmdGVyIGNh c3RzIHRvIHN0cmVzcyB0aGUgZXZhbHVhdGlvbiBvcmRlciwgYW5kIHNvbWUNCj4gcHJlZmVyIHNw YWNlcyB0byBoYXZlIGNsZWFyZXIgdmlzdWFscyAoYXMgYSBjYXN0ICppZGVhbGx5KiB3b3VsZCBi ZQ0KPiBzb21ldGhpbmcgcmFyZSB0aGF0IHJlcXVpcmVzIGdvb2QganVzdGlmaWNhdGlvbikuIEp1 c3QgdGhyb3dpbmcgdGhhdCBvdXQNCj4gdGhlcmUuDQo+IA0KPiANCj4gRm9yIHRoaW5ncyB1bnJl bGF0ZWQgdG8gYXV0b2Zvcm1hdCAoc28gc2VtaS1vZmZ0b3BpYykgYnV0IHN0aWxsIHJlbGV2YW50 DQo+IHRvIHRoZSBjb2Rpbmcgc3BlYzoNCj4gDQo+IDEuIEFsbG93IFNUQVRJQyBmdW5jdGlvbnMg KGlmIHRoZSBkZWJ1Z2dpbmcgY29uY2VybnMgYXJlIHN0aWxsIHJlbGV2YW50LA0KPiB0aGVyZSBj b3VsZCBiZSBhbm90aGVyIGxldmVsIG9mIGluZGlyZWN0aW9uLCBsaWtlIFJFTEVBU0VfU1RBVElD KT8NCg0KRGVidWdnaW5nIGNvbmNlcm5zIGFyZSBubyBsb25nZXIgcmVsZXZhbnQuICBUaGUgc3Vn Z2VzdGlvbiBpbiB0aGUgQlogYmVsb3cgDQppcyB0byByZW1vdmUgdGhlIFNUQVRJQyBtYWNybyBh bmQgYWxsb3cgRURLIElJIHNvdXJjZXMgdG8gYWRkICdzdGF0aWMnDQp0byBhbnkgZnVuY3Rpb25z IGl0IG1ha2VzIHNlbnNlIHRvIHVzZSBvbi4NCg0KICAgIGh0dHBzOi8vYnVnemlsbGEudGlhbm9j b3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2Ng0KDQo+IA0KPiAyLiBBbGxvdyB2YXJpYWJsZSBh c3NpZ25tZW50cyBvbiBkZWZpbml0aW9uIChiYXNpY2FsbHkgbm9uLXN0YXRpYyBDT05TVA0KPiB2 YXJpYWJsZXMgYXJlIGJhbm5lZC4uLik/DQoNCkFyZSByZWZlcnJpbmcgdG8gdXNlIG9mIHByZS1p bml0aWFsaXplZCBDT05TVCB2YXJpYWJsZXMgZGVjbGFyZWQgd2l0aGluDQphIGZ1bmN0aW9uPyAg SSB0aGluayBCcmV0IGJyb3VnaHQgdGhpcyB0b3BpYyB1cCB3aGVuIGltcGxlbWVudGluZyBzb21l DQp1bml0IHRlc3RzIGFuZCB0aGUgc3VnZ2VzdGlvbiB0byBwYXNzIEVDQ0Mgd2FzIHRvIHByb21v dGUgdGhlbSB0byANCnByZS1pbml0aWFsaXplZCBDT05TVCBnbG9iYWwgdmFyaWFibGVzLg0KDQpU aGUgY2hhbGxlbmdlcyB3ZSBoYXZlIHNlZW4gaW4gdGhlIHBhc3Qgd2l0aCBwcmUtaW5pdGlhbGl6 ZWQgdmFyaWFibGVzIHdpdGhpbg0KYSBmdW5jdGlvbiBpcyB0aGF0IHRoZXkgY2FuIGNhdXNlIGNv bXBpbGVycyB0byBpbmplY3QgdXNlIG9mIG1lbWNweSgpIGNhbGxzLA0KZXNwZWNpYWxseSBpZiB0 aGUgdmFyaWFibGUgYmVpbmcgaW5pdGlhbGl6ZWQgb24gdGhlIHN0YWNrIGlzIGEgc3RydWN0dXJl Lg0KVGhlc2UgY2F1c2UgYnVpbGQgYnJlYWtzIHRvZGF5Lg0KDQo+IA0KPiAzLiBBbGxvdyB2YXJp YWJsZSBkZWNsYXJhdGlvbnMgYXQgYW55IHNjb3BlIChJIGhhZCBzb21lIG5hc3R5IHNoYWRvd2lu Zw0KPiBidWdzIGJlZm9yZSwgcHJvYmFibHkgcHJvaGliaXQgc2hhZG93aW5nIHdpdGggd2Fybmlu Z3MpPw0KDQpCeSBzaGFkb3dpbmcgZG8geW91IG1lYW4gdGhlIGRlY2xhcmF0aW9uIG9mIHRoZSBz YW1lIHZhcmlhYmxlIG5hbWUgaW4NCm11bHRpcGxlIHNjb3BlZCB3aXRoaW4gdGhlIHNhbWUgZnVu Y3Rpb24/DQoNCj4gDQo+IDQuIFJlcXVpcmUgdGhhdCBleGFjdGx5IGFsbCBmdW5jdGlvbiBkZWNs YXJhdGlvbnMgYW5kIGFsbCBmdW5jdGlvbg0KPiBkZWZpbml0aW9ucyB3aXRoIG5vIHByaW9yIGRl Y2xhcmF0aW9uIG11c3QgYmUgZG9jdW1lbnRlZCAoZmlyc3QNCj4gZGlyZWN0aW9uIGlzIGVuZm9y Y2luZyBkb2NzLCBzZWNvbmQgaXMgcHJvaGliaXRpbmcgZG9jIGR1cGxpY2F0aW9uLCBJJ3ZlDQo+ IHNlZW4gdGhlbSBnbyBvdXQtb2Ytc3luYyBwbGVudHkgb2YgdGltZXMpPw0KDQpJIGFncmVlIHRo YXQgdGhpcyBjYW4gcmVkdWNlIGR1cGxpY2F0aW9uIGFuZCBzeW5jIGlzc3Vlcy4gIFRoZSB1bmNy dXN0aWZ5DQp0b29sIGJlaW5nIGRpc2N1c3NlZCBoZXJlIGNvdWxkIG5vdCBoZWxwIGNsZWFuIHRo aXMgdXAgb3IgZW5mb3JjZSB0aGlzDQp0eXBlIG9mIHJ1bGUuICBJdCBpcyBhIGdvb2QgdG9waWMs IGJ1dCBtYXkgbmVlZCB0byBiZSBzcGxpdCBvdXQgaW50byBpdHMNCm93biB0aHJlYWQuDQoNCj4g DQo+IFRoZSBsYXR0ZXIgYnVuY2ggd291bGQgbm90IHJlcXVpcmUgYW55IGF1dG9mb3JtYXQgcnVs ZXMgb3IgcmVmb3JtYXRhdGlvbg0KPiBvZiBleGlzdGluZyBjb2RlLCBidXQgd291bGQgYmUgdGFy Z2V0IG9ubHkgbmV3IHN1Ym1pc3Npb25zIGluIG15DQo+IG9waW5pb24uIFRob3VnaHRzPw0KPiAN Cj4gDQo+IFRoYW5rcyBmb3IgeW91ciBlZmZvcnRzIQ0KPiANCj4gQmVzdCByZWdhcmRzLA0KPiBN YXJ2aW4NCj4gDQo+IA0KPiBBbSAwNy4xMC4yMDIxIHVtIDEyOjQ4IHNjaHJpZWIgTGVpZiBMaW5k aG9sbToNCj4gPiBIaSBNaWNoYWVsLA0KPiA+DQo+ID4gQXBvbG9naWVzLCBJJ3ZlIG93ZWQgeW91 IGEgcmVzcG9uc2UgKHByb21pc2VkIG9mZi1saXN0KSBmb3IgYSB3aGlsZQ0KPiA+IG5vdy4NCj4g Pg0KPiA+IEZpcnN0LCBsZXQgbWUgc2F5IEkgaHVnZWx5IGFwcHJlY2lhdGUgdGhpcyBlZmZvcnQu IEFwYXJ0IGZyb20gYWxpZ25pbmcNCj4gPiB0aGUgY29kZWJhc2UocyksIHRoaXMgd2lsbCByZWR1 Y2UgbWFudWFsIHJldmlld2luZyBlZmZvcnQNCj4gPiBzdWJzdGFudGlhbGx5LCBhcyB3ZWxsIGFz IGN1dHRpbmcgZG93biBvbiBudW1iZXIgb2YgcmV3b3JrIGN5Y2xlcyBmb3INCj4gPiBkZXZlbG9w ZXJzLg0KPiA+DQo+ID4gTG9va2luZyBhdCB0aGUgY2hhbmdlcyB0byAod2VsbCwgdGhlIGNvbW1l bnRzIGluKSB1bmNydXN0aWZ5LCB0aGlzDQo+ID4gc2VlbXMgdG8gYmUgY29uc3RyYWluZWQgdG86 DQo+ID4gLSBOZXdsaW5lIGFmdGVyICcoJyBmb3IgbXVsdGktbGluZSBmdW5jdGlvbiBjYWxscy4N Cj4gPiAtIERlYWxpbmcgd2l0aCAiKCgiLyIpKSIgZm9yIERFQlVHIG1hY3Jvcy4NCj4gPiAtIEZ1 bmN0aW9uIHBvaW50ZXIgdHlwZWRlZnM6DQo+ID4gICAgLSB0eXBlZGVmXG5FRklBUEkNCj4gPiAg ICAtIGNsb3NpbmcgcGFyZW50aGVzZXMgaW5kZW50YXRpb24NCj4gPg0KPiA+IEkgZG9uJ3QgdGhp bmsgSSd2ZSBtYWRlIGFueSBzZWNyZXQgb3ZlciB0aGUgeWVhcnMgdGhhdCBJIGFtIG5vdCBhDQo+ ID4gbWFzc2l2ZSBmYW4gb2YgdGhlIEVESzIgY29kaW5nIHN0eWxlIGluIGdlbmVyYWwuIFNvIEkg dGhpbmsgZm9yIGFueQ0KPiA+IG9mIGl0cyBxdWlya3MgdGhhdCBhcmUgc3Vic3RhbnRpYWwgZW5v dWdoIHRoYXQgdGhleSByZXF1aXJlIG5vdCBqdXN0DQo+ID4gY3VzdG9tIGNvbmZpZ3VyYXRpb24g YnV0IGFjdHVhbCBuZXcgZnVuY3Rpb24gYWRkZWQgdG8gZXhpc3RpbmcgY29kZQ0KPiA+IGNvbmZv cm1hbmNlIHRvb2xzLCB0aGlzIHdvdWxkIGJlIGFuIGV4Y2VsbGVudCBwb2ludCB0byBzYW5pdGlz ZSB0aGUNCj4gPiBjb2Rpbmcgc3R5bGUgaW5zdGVhZC4NCj4gPg0KPiA+IFRha2luZyB0aGVzZSBp biBvcmRlcjoNCj4gPg0KPiA+IE5ld2xpbmUgYWZ0ZXIgJygnDQo+ID4gLS0tLS0tLS0tLS0tLS0t LS0NCj4gPiBJIHRoaW5rIHdlIGFscmVhZHkgcmVhY2hlZCBhIGxldmVsIG9mIGZsZXhpYmlsaXR5 IGFyb3VuZCB0aGlzLCB3aGVyZQ0KPiA+IHdlIGRvbid0IGFjdHVhbGx5IGVuZm9yY2UgdGhpcyAo b3Igc2luZ2xlIGFyZ3VtZW50IHBlcg0KPiA+IGxpbmUpLiBQZXJzb25hbGx5LCBJJ2QgYmUgaGFw cHkgdG8gdXBkYXRlIHRoZSBjb2Rpbmcgc3R5bGUgYXMNCj4gPiByZXF1aXJlZCBpbnN0ZWFkLg0K PiA+DQo+ID4gREVCVUcgbWFjcm8gcGFyZW50aGVzZXMNCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPiA+IEhvdyBkb2VzIHVuY3J1c3RpZnkgdHJlYXQgREVCVUcgbWFjcm9zIHdpdGhvdXQg dGhpcyBtb2RpZmljYXRpb24/DQo+ID4gRG8gd2Ugc3RhcnQgZ2V0dGluZyBldmVyeXRoaW5nIHR1 cm5lZCBpbnRvIG11bHRpLWxldmVsIGluZGVudGVkDQo+ID4gbXVsdGktbGluZSBzdGF0ZW1lbnRz IHdpdGhvdXQgdGhpcyBjaGFuZ2U/DQo+ID4NCj4gPiBGdW5jdGlvbiBwb2ludGVyIHR5cGVkZWZz Og0KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gSSBkb24ndCBzZWUgdGhhdCBm dW5jdGlvbiBwb2ludGVyIHR5cGVkZWZzIG5lZWQgdG8gcmlnaWRseSBmb2xsb3cgdGhlDQo+ID4g c2FtZSBwYXR0ZXJuIGFzIHRoZSBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbnMgaW1wbGVtZW50aW5n IHRoZW0uIENvdWxkDQo+ID4gd2UgdXBkYXRlIHRoZSBjb2Rpbmcgc3R5bGUgKGlmIG5lZWRlZCkg aW5zdGVhZD8NCj4gPg0KPiA+IEJlc3QgUmVnYXJkcywNCj4gPg0KPiA+IExlaWYNCj4gPg0KPiA+ IE9uIE1vbiwgQXVnIDE2LCAyMDIxIGF0IDE2OjAwOjM4IC0wNDAwLCBNaWNoYWVsIEt1YmFja2kg d3JvdGU6DQo+ID4+IFRoZSBlZGsyIGJyYW5jaCB3YXMgY3JlYXRlZCBoZXJlOg0KPiA+PiBodHRw czovL2dpdGh1Yi5jb20vbWFrdWJhY2tpL2VkazIvdHJlZS91bmNydXN0aWZ5X3BvY18yDQo+ID4+ DQo+ID4+IFdlIGhhdmUgYSBQcm9qZWN0IE11IGZvcmsgd2l0aCBjdXN0b20gY2hhbmdlcyB0byB0 aGUgVW5jcnVzdGlmeSB0b29sIHRvIGhlbHANCj4gPj4gY29tcGx5IHdpdGggRURLIElJIGZvcm1h dHRpbmcgaGVyZToNCj4gPj4gaHR0cHM6Ly9kZXYuYXp1cmUuY29tL3Byb2plY3RtdS9fZ2l0L1Vu Y3J1c3RpZnkNCj4gPj4NCj4gPj4gVGhlIGxhdGVzdCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3Rh dHVzIGFuZCBob3cgdG8gZXhwZXJpbWVudCB3aXRoIHRoZQ0KPiA+PiBjb25maWd1cmF0aW9uIGZp bGUgYW5kIHRoZSB0b29sIGFyZSBpbiB0aGF0IGZvcms6DQo+IGh0dHBzOi8vZGV2LmF6dXJlLmNv bS9wcm9qZWN0bXUvVW5jcnVzdGlmeS9fd2lraS93aWtpcy9VbmNydXN0aWZ5Lndpa2kvMS9Qcm9q ZWN0LU11LShFREstSUkpLUZvcmstUmVhZG1lDQo+ID4+DQo+ID4+IFRoYXQgc2FpZCwgSSBoYXZl IGFsc28gZmluaXNoZWQgYSBDSSBwbHVnaW4gdG8gcnVuIFVuY3J1c3RpZnkgdGhhdCBzaG91bGQg YmUNCj4gPj4gcmVhZHkgc29vbiB0byBpbml0aWFsbHkgZGVwbG95IGluIFByb2plY3QgTXUuIEJl Zm9yZSBkb2luZyBzbywgSSBhbSB0cnlpbmcNCj4gPj4gdG8gc2V0dGxlIG9uIGFuIGluaXRpYWwg Y29uZmlndXJhdGlvbiBmaWxlIHRoYXQgbGVzcyBzdHJpY3RseSBidXQgbW9yZQ0KPiA+PiByZWxp YWJseSBmb3JtYXRzIHRoZSBjb2RlIHRoYW4gaW4gdGhlIGV4YW1wbGVzIGluIHRob3NlIGJyYW5j aGVzLiBGb3INCj4gPj4gZXhhbXBsZSwgcmVtb3ZlIGhldXJpc3RpY3MgdGhhdCB3aGVuIHJ1biBh Z2FpbnN0IHRoZSBzYW1lIHNldCBvZiBjb2RlDQo+ID4+IG11bHRpcGxlIHRpbWVzIGNhbiBwcm9k dWNlIGRpZmZlcmVudCByZXN1bHRzLiBBbiBleGFtcGxlIHdvdWxkIGJlIGEgcnVsZQ0KPiA+PiB0 aGF0IHJlZm9ybWF0cyBjb2RlIGJlY2F1c2UgaXQgZXhjZWVkcyBhIHNwZWNpZmllZCBjb2x1bW4g d2lkdGggb24gb25lIHJ1bg0KPiA+PiBidXQgb24gdGhlIG5leHQgcnVuIHRoYXQgcmVmb3JtYXR0 ZWQgY29kZSB0cmlnZ2VycyBhIGRpZmZlcmVudCBydWxlIHRvDQo+ID4+IGZ1cnRoZXIgYWxpZ24g dGhlIGNvZGUgYW5kIHNvIG9uLiBBdCBsZWFzdCBpbml0aWFsbHksIHNvbWUgcnVsZXMgbWlnaHQg YmUNCj4gPj4gdHdlYWtlZCBpbiBhIG1vcmUgY29uc2VydmF0aXZlIGFwcHJvYWNoIHRoYXQgY2Fu IGJlIHRpZ2h0ZW5lZCBpbiB0aGUgZnV0dXJlLg0KPiA+PiBPbmNlIHRoaXMgY29uZmlndXJhdGlv biBmaWxlIGlzIHJlYWR5LCB3ZSB3aWxsIGJhc2VsaW5lIFByb2plY3QgTXUgY29kZSBhcw0KPiA+ PiBhbiBleGFtcGxlIGFuZCB0dXJuIG9uIHRoZSBwbHVnaW4uIFRoZSBDSSBwbHVnaW4gcnVucyBV bmNydXN0aWZ5IGFnYWluc3QNCj4gPj4gbW9kaWZpZWQgZmlsZXMgYW5kIGlmIHRoZXJlJ3MgYW55 IGNoYW5nZXMsIGluZGljYXRpbmcgYSBmb3JtYXR0aW5nDQo+ID4+IGRldmlhdGlvbiwgdGhlIGRp ZmYgY2h1bmtzIGFyZSBzYXZlZCBpbiBhIGxvZyBzbyB0aGV5IGNhbiBiZSB2aWV3ZWQgYXMgYQ0K PiA+PiBidWlsZCBhcnRpZmFjdC4NCj4gPj4NCj4gPj4gSSBhbSBtYWtpbmcgcHJvZ3Jlc3Mgb24g dGhlIHVwZGF0ZWQgY29uZmlnIGZpbGUgYW5kIEkgc2hvdWxkIGJlIGFibGUgdG8gcG9zdA0KPiA+ PiBhICJ1bmNydXN0aWZ5X3BvY18zIiBicmFuY2ggc29vbiB3aXRoIHRoZSByZXN1bHRzLg0KPiA+ Pg0KPiA+PiBSZWdhcmRpbmcgaW5kZW50YXRpb24sIE1hcnZpbiBpcyByaWdodCB0aGF0IFVuY3J1 c3RpZnkgY2Fubm90IHN1cHBvcnQgZWRrMg0KPiA+PiBpbmRlbnRhdGlvbiBzdHlsZSBvdXQtb2Yt Ym94LiBTb21lIGNoYW5nZXMgYXJlIG1hZGUgaW4gdGhhdCBmb3JrIHRvIGhhbmRsZQ0KPiA+PiB0 aGUgZm9ybWF0dGluZy4gQXQgdGhpcyBwb2ludCwgaXQgY2FuIGhhbmRsZSB0aGUgaW5kZW50YXRp b24gaW4gdGhlIGNhc2VzDQo+ID4+IEkndmUgc2Vlbi4gVW5jcnVzdGlmeSBkb2VzIHBvdGVudGlh bGx5IGdpdmUgdXMgdGhlIGFiaWxpdHkgdG8gbWFzc2l2ZWx5DQo+ID4+IGRlcGxveSBjaGFuZ2Vz IGFjcm9zcyB0aGUgY29kZWJhc2UgaW4gY2FzZSBhIGRlY2lzaW9uIHdlcmUgbWFkZSB0byBjaGFu Z2UNCj4gPj4gdGhlIHN0eWxlLg0KPiA+Pg0KPiA+PiBUaGFua3MsDQo+ID4+IE1pY2hhZWwNCj4g Pj4NCj4gPj4gT24gOC8xNi8yMDIxIDM6MzkgUE0sIE1hcnZpbiBIw6R1c2VyIHdyb3RlOg0KPiA+ Pj4gSGV5IFJlYmVjY2EsDQo+ID4+Pg0KPiA+Pj4gSSB0aGluayBldmVuIFVuY3J1c3RpZnkgaGFz IGlzc3VlcyB3aXRoIHRoZSBFREsgSUkgaW5kZW50YXRpb24gc3R5bGUuDQo+ID4+PiBZb3UgbWln aHQgd2FudCB0byBjaGVjayB0aGUgVUVGSSBUYWxrYm94IERpc2NvcmQgc2VydmVyLCBJIGhhZCBh IGJyaWVmDQo+ID4+PiBjaGF0IHdpdGggTWljaGFlbCBhYm91dCBpdCB0aGVyZS4gSSBkb24ndCB0 aGluayByZWFsaXN0aWNhbGx5IGFueSB0b29sDQo+ID4+PiBzdXBwb3J0cyBFREsgSUkncyBpbmRl bnRhdGlvbiBzdHlsZSBob3dldmVyLCBzbyBJJ2QgcHJvcG9zZSBpdCBpcw0KPiA+Pj4gY2hhbmdl ZC4gVGhpcyBjb3VsZCBiZSBmb3IgbmV3IHN1Ym1pc3Npb25zIG9ubHksIG9yIGFjdHVhbGx5IHRo ZSBlbnRpcmUNCj4gPj4+IGNvZGViYXNlIGNvdWxkIGJlIHJlZm9ybWF0dGVkIGF0IG9uY2Ugd2l0 aCBhIGdvb2QgdG9vbCBzZXR1cC4gV2hpbGUgdGhpcw0KPiA+Pj4gc2NyZXdzIHdpdGggZ2l0IGJs YW1lLCB0aGUgKHRvIG15IHVuZGVyc3RhbmRpbmcpIGRlY2lkZWQgb24gQ1JMRiAtPiBMRg0KPiA+ Pj4gY2hhbmdlIGRvZXMgdGhhdCBhbnl3YXksIHNvIGF0IGxlYXN0IHR3byBldmlscyBjb3VsZCBi ZSBkZWFsdCB3aXRoIGluDQo+ID4+PiBvbmUgZ28gcmVhbGx5Lg0KPiA+Pj4NCj4gPj4+IEJlc3Qg cmVnYXJkcywNCj4gPj4+IE1hcnZpbg0KPiA+Pj4NCj4gPj4+IE9uIDE2LzA4LzIwMjEgMjE6MzQs IFJlYmVjY2EgQ3JhbiB3cm90ZToNCj4gPj4+Pg0KPiA+Pj4+IGNjIGRldmVsQCAuDQo+ID4+Pj4N Cj4gPj4+PiBPbiA4LzE2LzIxIDE6MzMgUE0sIFJlYmVjY2EgQ3JhbiB3cm90ZToNCj4gPj4+Pj4N Cj4gPj4+Pj4gSSBub3RpY2VkIGEgbWVzc2FnZSBvbiBUd2l0dGVyIGFib3V0IGFuIGlkZWEgb2Yg dXNpbmcgVW5jcnVzdGlmeQ0KPiA+Pj4+PiBmb3IgRURLMiBpbnN0ZWFkIG9mIHRoZSBFQ0MgdG9v bCwgYW5kIGNhbWUgYWNyb3NzIGh0dHBzOi8vd3d3Lm1haWwtDQo+IGFyY2hpdmUuY29tL3NlYXJj aD9sPWRldmVsQGVkazIuZ3JvdXBzLmlvJnE9c3ViamVjdDolMjJSZSU1QyUzQSslNUMlNUJlZGsy JTVDLQ0KPiBkZXZlbCU1QyU1RCtUaWFub0NvcmUrQ29tbXVuaXR5K01lZXRpbmcrTWludXRlcysl NUMtKzIlNUMlMkY0JTIyJm89bmV3ZXN0JmY9MQ0KPiA+Pj4+PiAuDQo+ID4+Pj4+DQo+ID4+Pj4+ IEkgd2FzIHdvbmRlcmluZyBpZiB0aGVyZSdzIGJlZW4gYW55IHByb2dyZXNzIG9uIGl0IHRoYXQg SSBjb3VsZA0KPiA+Pj4+PiBjaGVjayBvdXQ/DQo+ID4+Pj4+DQo+ID4+Pj4+DQo+ID4+Pj4+IE1p Y2hhZWwgS3ViYWNraTogaW4gdGhhdCBtZXNzYWdlLCB5b3Ugc2FpZDoNCj4gPj4+Pj4NCj4gPj4+ Pj4gIkknbSBwbGFubmluZyB0byBwdXQgdXAgYSBicmFuY2ggdGhhdCB3ZSBjYW4gdXNlIGFzIGEg cmVmZXJlbmNlDQo+ID4+Pj4+IGZvciBhIGNvbnZlcnNhdGlvbiBhcm91bmQgdW5jcnVzdGlmeSBp biB0aGUgbmV4dCBjb3VwbGUgb2YNCj4gPj4+Pj4gd2Vla3MuIg0KPiA+Pj4+Pg0KPiA+Pj4+Pg0K PiA+Pj4+PiBEaWQgeW91IGVuZCB1cCBjcmVhdGluZyB0aGF0IGJyYW5jaCwgYW5kIGlmIHNvIGNv dWxkIHlvdSBwcm92aWRlDQo+ID4+Pj4+IGEgbGluayB0byBpdCBwbGVhc2U/DQo+ID4+Pj4+DQo+ ID4+Pj4+DQo+ID4+Pj4+IC0tDQo+ID4+Pj4+IFJlYmVjY2EgQ3Jhbg0KPiA+Pj4+Pg0KPiA+Pj4+ DQo+ID4+Pg0KPiA+Pj4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4NCj4gPj4NCj4gPj4NCj4gPj4NCj4g Pj4NCj4gPj4NCj4gPj4NCj4gDQo+IA0KPiANCj4gDQoNCg==