Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp1450736pxb; Thu, 14 Apr 2022 06:34:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwXh7InzHONt0Mh5DEefKlnKTQ0Rw+movZUgvWjNRS19ye4WtThiiHOPqlIJU0Z53Fea3Ow X-Received: by 2002:a17:902:a406:b0:158:260d:1ed2 with SMTP id p6-20020a170902a40600b00158260d1ed2mr30281705plq.49.1649943256702; Thu, 14 Apr 2022 06:34:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649943256; cv=none; d=google.com; s=arc-20160816; b=ldXmyvASK23b4uVdW+5GR6X/dxaJ01RnbX0FCNVisfTdEjV3ZGMW/xkjrLn7PwYiKv BAIxFBXBVU9X2tIJ9k+kN7PYFAGaAkvm1apRk2Hj4Lkij1Ty4VWb1pglEDA7hhks/78Y lOTHBINyTe9p33Z9MFbiRHXUa+Y1YNyZxCYy0LbKwDHnx9G2/r3do+Nh98IJZORG9elh NfDfc7P/X+kWxVhcBj8kjTyclkE9uTXGihPeeqLB+Yqzi1UXOHwUsGnUFuxmxrvVn7lg XlSDbh/7VwbRojM/+VdBveTfwi+gKOHS70WisOiJWj/3BsZu1EhKJxpvtKaA4dJkOHVn U1JA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :mime-version:accept-language:in-reply-to:references:message-id:date :thread-index:thread-topic:subject:cc:to:from; bh=yODExZTMfthAa8DvFZrJVl/kro1NwSOZeFj2OvuIX8Q=; b=gc4km13Obdaq43OIBPulfvYYlM8SPXSztqlqWU/dfOYLZUZNXyDd0DUjneSMfx3k2F aT/xltkbhP3YI/P5OWWWFij4rGYKBDz6vFQwsfHV230Oe/vBZSMGjaKgYU0nbqI7d1fd UkUMmL+N4lhWzaIV8PqDTCKvySaWQZ8HvQIb90QjRh1AHfKljtKSGshqAzN54+X7QuvF 6nSM3x+6AIauzUaJ2AkCL49QE5IOskzpAJBLGzdi/ELnYWqNBOqI/dhfSX4Z3AWEAoOS bOuToDZkq/qNsWEGOo+Yi8NH8SFPKDI2GJt5Ok2DwId1MJ8L2HRehNqMMGmfsizpwU4F VzxQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=aculab.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l10-20020a63da4a000000b0039daac6893csi5625324pgj.581.2022.04.14.06.34.01; Thu, 14 Apr 2022 06:34:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=aculab.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239980AbiDNGMG (ORCPT + 99 others); Thu, 14 Apr 2022 02:12:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41268 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239942AbiDNGMD (ORCPT ); Thu, 14 Apr 2022 02:12:03 -0400 Received: from eu-smtp-delivery-151.mimecast.com (eu-smtp-delivery-151.mimecast.com [185.58.86.151]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id E4CACA195 for ; Wed, 13 Apr 2022 23:09:36 -0700 (PDT) Received: from AcuMS.aculab.com (156.67.243.121 [156.67.243.121]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id uk-mta-277-8hWWm93nOMqUDarmxETpHg-1; Thu, 14 Apr 2022 07:09:33 +0100 X-MC-Unique: 8hWWm93nOMqUDarmxETpHg-1 Received: from AcuMS.Aculab.com (fd9f:af1c:a25b:0:994c:f5c2:35d6:9b65) by AcuMS.aculab.com (fd9f:af1c:a25b:0:994c:f5c2:35d6:9b65) with Microsoft SMTP Server (TLS) id 15.0.1497.32; Thu, 14 Apr 2022 07:09:32 +0100 Received: from AcuMS.Aculab.com ([fe80::994c:f5c2:35d6:9b65]) by AcuMS.aculab.com ([fe80::994c:f5c2:35d6:9b65%12]) with mapi id 15.00.1497.033; Thu, 14 Apr 2022 07:09:32 +0100 From: David Laight To: 'Qais Yousef' CC: Vincent Guittot , Dietmar Eggemann , "mingo@redhat.com" , "peterz@infradead.org" , "juri.lelli@redhat.com" , "rostedt@goodmis.org" , "bsegall@google.com" , "mgorman@suse.de" , "linux-kernel@vger.kernel.org" , "parth@linux.ibm.com" , "chris.hyser@oracle.com" , "pkondeti@codeaurora.org" , "Valentin.Schneider@arm.com" , "patrick.bellasi@matbug.net" , "pjt@google.com" , "pavel@ucw.cz" , "tj@kernel.org" , "qperret@google.com" , "tim.c.chen@linux.intel.com" , Wei Wang Subject: RE: Scheduling tasks on idle cpu Thread-Topic: Scheduling tasks on idle cpu Thread-Index: AdhNfEgLjonPVH3ESQeb3O9OCn/HMQAeBEWAABN1gYAAUbPRgAANeFfQ Date: Thu, 14 Apr 2022 06:09:32 +0000 Message-ID: References: <030aacb0c1304e43ab917924dcf4f138@AcuMS.aculab.com> <20220411233447.rcencjivkhyltyxm@airbuntu> <4ca5cd70904d47bea0df93f7c0979c66@AcuMS.aculab.com> <20220413235121.tzefvdvnwcipzo7p@airbuntu> In-Reply-To: <20220413235121.tzefvdvnwcipzo7p@airbuntu> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.202.205.107] MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=C51A453 smtp.mailfrom=david.laight@aculab.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: aculab.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org RnJvbTogUWFpcyBZb3VzZWYNCj4gU2VudDogMTQgQXByaWwgMjAyMiAwMDo1MQ0KPiANCj4gT24g MDQvMTIvMjIgMDg6MzksIERhdmlkIExhaWdodCB3cm90ZToNCj4gPiBGcm9tOiBRYWlzIFlvdXNl Zg0KPiA+ID4gU2VudDogMTIgQXByaWwgMjAyMiAwMDozNQ0KPiA+ID4NCj4gPiA+IE9uIDA0LzEx LzIyIDA4OjI2LCBEYXZpZCBMYWlnaHQgd3JvdGU6DQo+ID4gPiA+IEZyb206IFFhaXMgWW91c2Vm DQo+ID4gPiA+ID4gU2VudDogMDkgQXByaWwgMjAyMiAxODowOQ0KPiA+ID4gPiAuLi4NCj4gPiA+ ID4gPiBSVCBzY2hlZHVsZXIgd2lsbCBwdXNoL3B1bGwgdGFza3MgdG8gZW5zdXJlIHRoZSB0YXNr IHdpbGwgZ2V0IHRvIHJ1biBBU0FQIGlmDQo+ID4gPiA+ID4gdGhlcmUncyBhbm90aGVyIGNwdSBh dCBsb3dlciBwcmlvcml0eSBpcyBhdmFpbGFibGUNCj4gPiA+ID4NCj4gPiA+ID4gRG9lcyB0aGF0 IGFjdHVhbGx5IGhhcHBlbj8NCj4gPiA+DQo+ID4gPiBGb3IgUlQgdGFza3MsIHllcy4gVGhleSBz aG91bGQgZ2V0IGRpc3RyaWJ1dGVkLg0KPiA+DQo+ID4gT2ssIHRoYXQgaXMgc29tZXRoaW5nIHNs aWdodGx5IGRpZmZlcmVudCBmcm9tIHdoYXQgSSdtIHNlZWluZy4NCj4gDQo+IElmIHlvdSBoYXZl IG11bHRpcGxlIFNDSEVEX0ZJRk8vU0NIRURfUlIgdGFza3Mgd2l0aCB0aGUgc2FtZSBwcmlvcml0 eSwgdGhleQ0KPiBkb24ndCBlbmQgdXAgYmVpbmcgZGlzdHJpYnV0ZWQgb24gZGlmZmVyZW50IENQ VXM/IEFzc3VtaW5nIG51bWJlciBvZiB0YXNrcyBpcw0KPiBub3QgaGlnaGVyIHRoYW4gbnVtYmVy IG9mIENQVXMuDQo+IA0KPiBHZW5lcmFsbHkgaWYgdGhlcmUgYXJlIHR3byBSVCB0YXNrcyBvbiB0 aGUgc2FtZSBDUFUgYW5kIHRoZXJlJ3MgYW5vdGhlciBDUFUNCj4gdGhhdCBpcyBydW5uaW5nIHNv bWV0aGluZyB0aGF0IGlzIGxvd2VyIHByaW9yaXR5IHRoYW4gdGhlc2UgdHdvLCB0aGVuIHRoZSBs b3dlcg0KPiBwcmlvcml0eSBvZiB0aGVzZSAyIHRhc2tzIHNob3VsZCBtb3ZlIHRvIHRoYXQgQ1BV Lg0KPiANCj4gRWgsIGhvcGUgdGhhdCdzIHJlYWRhYmxlIDotKQ0KDQpUaGF0IGlzIChqdXN0IGFi b3V0KSByZWFkYWJsZSwgYW5kIGlzIGhhcHBlbmluZy4NCg0KPiA+ID4gPiBJJ3ZlIHNlZW4gdGhl IGZvbGxvd2luZzoNCj4gPiA+ID4gICAzNDUzMyBbMDE3XTogc3lzX2Z1dGV4KHVhZGRyOiAxMDQ5 MTA0LCBvcDogODUsIHZhbDogMSwgdXRpbWU6IDEsIHVhZGRyMjogMTA0OTEwMCwgdmFsMzoNCj4g NDAwMDAwMSkNCj4gPiA+ID4gICAzNDUzMyBbMDE3XTogc2NoZWRfbWlncmF0ZV90YXNrOiBwaWQ9 MzQ1MTIgcHJpbz0xMjAgb3JpZ19jcHU9MTQgZGVzdF9jcHU9MTcNCj4gPiA+ID4gICAzNDUzMyBb MDE3XTogc2NoZWRfd2FrZXVwOiBwaWQ9MzQ1MTIgcHJpbz0xMjAgc3VjY2Vzcz0xIHRhcmdldF9j cHU9MDE3DQo+ID4gPg0KPiA+ID4gcHJpbz0xMjAgaXMgYSBDRlMgdGFzaywgbm8/DQo+ID4NCj4g PiBDRlMgPSAnbm9ybWFsIHRpbWUtc2xpY2UgcHJvY2Vzc2VzID8gVGhlbiB5ZXMuDQo+IA0KPiBT b3JyeSwgeWVzLiBDRlMgPSBTQ0hFRF9OT1JNQUwvU0NIRURfT1RIRVIuDQo+IA0KPiA+DQo+ID4g PiA+IGFuZCBwaWQgMzQ1MTIgZG9lc24ndCBnZXQgc2NoZWR1bGVkIHVudGlsIHBpZCAzNDUzMyBm aW5hbGx5IHNsZWVwcy4NCj4gPiA+ID4gVGhpcyBpcyBpbiBzcGl0ZSBvZiB0aGVyZSBiZWluZyA1 IGlkbGUgY3B1Lg0KPiA+ID4gPiBjcHUgMTQgaXMgYnVzeSBydW5uaW5nIGEgUlQgdGhyZWFkLCBi dXQgbWlncmF0aW5nIHRvIGNwdSAxNyBzZWVtcyB3cm9uZy4NCj4gPiA+ID4NCj4gPiA+ID4gVGhp cyBpcyBvbiBhIFJIRUw3IGtlcm5lbCwgSSd2ZSBub3QgcmVwbGljYXRlZCBpdCBvbiBhbnl0aGlu ZyByZWNlbnQuDQo+ID4gPiA+IEJ1dCBJJ3ZlIHZlcnkgbXVjaCBsaWtlIGEgUlQgdGhyZWFkIHRv IGJlIGFibGUgdG8gc2NoZWR1bGUgYSBub24tUlQNCj4gPiA+ID4gdGhyZWFkIHRvIHJ1biBvbiBh biBpZGxlIGNwdS4NCj4gPiA+DQo+ID4gPiBPaCwgeW91IHdhbnQgQ0ZTIHRvIGF2b2lkIENQVXMg dGhhdCBhcmUgcnVubmluZyBSVCB0YXNrcy4NCj4gPiA+DQo+ID4gPiBXZSBoYWQgYSBwcm9wb3Nh bCBpbiB0aGUgcGFzdCwgYnV0IGl0IHdhc24ndCBnb29kIGVub3VnaA0KPiA+ID4NCj4gPiA+IAlo dHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzE1NjcwNDg1MDItNjA2NC0xLWdpdC1zZW5kLWVt YWlsLWppbmctdGluZy53dUBtZWRpYXRlay5jb20vDQo+ID4NCj4gPiBUaGF0IHNlZW1zIHRvIGJl IHNvbWV0aGluZyBkaWZmZXJlbnQuDQo+ID4gUmVsYXRlZCB0byBzb21ldGhpbmcgZWxzZSBJJ3Zl IHNlZW4gd2hlcmUgYSBSVCBwcm9jZXNzIGlzIHNjaGVkdWxlZA0KPiA+IG9uIGl0cyBvbGQgY3B1 ICh0byBnZXQgdGhlIGhvdCBjYWNoZSkgYnV0IHRoZSBwcm9jZXNzIHJ1bm5pbmcgb24NCj4gPiB0 aGF0IGNwdSBpcyBsb29waW5nIGluIGtlcm5lbCAtIHNvIHRoZSBSVCBwcm9jZXNzIGRvZXNuJ3Qg c3RhcnQuDQo+IA0KPiBJICp0aGluayogeW91J3JlIGhpdHRpbmcgc29mdGlycSBsYXRlbmNpZXMu IE1vc3QgbGlrZWx5IGl0J3MgdGhlIG5ldHdvcmsgUlgNCj4gc29mdGlycSBwcm9jZXNzaW5nIHRo ZSBwYWNrZXRzLiBJZiB0aGlzIGxhdGVuY3kgaXMgYSBwcm9ibGVtLCB0aGVuIFBSRUVNUFRfUlQN Cj4gWzFdIHNob3VsZCBoZWxwIHdpdGggdGhpcy4gRm9yIEFuZHJvaWQgd2UgaGl0IHRoaXMgaXNz dWUgYW5kIHRoZXJlJ3MgYSBsb25nDQo+IGxpdmluZyBvdXQgb2YgdHJlZSBwYXRjaCB0aGF0IEkn bSB0cnlpbmcgdG8gZmluZCBhbiB1cHN0cmVhbSByZXBsYWNlbWVudCBmb3IuDQoNCkkgc3VzcGVj dCB0aGUgY29zdHMgb2YgUFJFRU1QVF9SVCB3b3VsZCBzbG93IHRoaW5ncyBkb3duIHRvbyBtdWNo Lg0KVGhpcyB0ZXN0IHN5c3RlbSBoYXMgNDAgY3B1LCAzNSBvZiB0aGVtIGFyZSBSVCBhbmQgcHJv Y2Vzc2luZyB0aGUgc2FtZSAnam9icycuDQpJdCBkb2Vzbid0IHJlYWxseSBtYXR0ZXIgaWYgb25l IGlzIGRlbGF5ZWQgYnkgdGhlIG5ldHdvcmsgaXJxICsgc29mdGlycSBjb2RlLg0KVGhlIHByb2Js ZW1zIGFyaXNlIGlmIHRoZXkgYWxsIHN0b3AuDQpUaGUgJ2pvYicgbGlzdCB3YXMgcHJvdGVjdGVk IGJ5IGEgbXV0ZXggLSB1c3VhbGx5IG5vdCB0b28gYmFkLg0KQnV0IGlmIGEgbmV0d29yayBpcnEg aW50ZXJydXB0cyB0aGUgY29kZSB3aGlsZSBpdCBob2xkcyB0aGUgbXV0ZXggdGhlbiBhbGwNCnRo ZSBSVCB0YXNrcyBzdGFsbCB1bnRpbCB0aGUgc29mdGlycSBjb2RlIGNvbXBsZXRlcy4NCkkndmUg cmVwbGFjZWQgdGhlIGxpbmtlZCBsaXN0IHdpdGggYW4gYXJyYXkgYW5kIHVzZWQgYXRvbWljX2lu YygpLg0KDQpJIGNhbiBpbWFnaW5lIHRoYXQgYSBQUkVFTVBUX1JUIGtlcm5lbCB3aWxsIGhhdmUg dGhlIHNhbWUgcHJvYmxlbQ0KYmVjYXVzZSAoSSB0aGluaykgYWxsIHRoZSBzcGluIGxvY2tzIGdl dCByZXBsYWNlZCBieSBzbGVlcCBsb2Nrcy4NCg0KPiANCj4gVGhlcmUncyBhIG5ldyBrbm9iIHRv IHJlZHVjZSBob3cgbG9uZyBuZXRkZXYgc3BlbmRzIGluIHRoZSBsb29wLiBNaWdodCBiZSB3b3J0 aA0KPiBhIHRyeToNCj4gDQo+IAlodHRwczovL2xvcmUua2VybmVsLm9yZy9uZXRkZXYvMTQ5MjYx OTgzMC03NTYxLTEtZ2l0LXNlbmQtZW1haWwtdGVkaGVhZHN0ZXJAZ21haWwuY29tLw0KPiANCj4g WzFdIGh0dHBzOi8vd2lraS5saW51eGZvdW5kYXRpb24ub3JnL3JlYWx0aW1lL3N0YXJ0DQoNCkkg dGhpbmsgdGhlIHBhdGNoIHRoYXQgcnVucyB0aGUgc29mdGlycSBpbiBhIHNlcGFyYXRlIHRocmVh ZCBtaWdodCBoZWxwLg0KQnV0IGl0IHByb2JhYmx5IG5lZWRzIGEgdGVzdCB0byBvbmx5IHRvIHRo YXQgaWYgaXQgd291bGQgJ3N0YWxsJyBhIFJUIHByb2Nlc3MuDQoNCj4gPiBJJ3ZlIGF2b2lkZWQg bW9zdCBvZiB0aGUgcGFpbiB0aGF0IGNhdXNlZCBieSBub3QgdXNpbmcgYSBzaW5nbGUNCj4gPiBj dl9icm9hZGNhc3QoKSB0byB3YWtlIHVwIHRoZSAzNCBSVCB0aHJlYWRzIChpbiB0aGlzIGNvbmZp ZykuDQo+ID4gKEVhY2gga2VybmVsIHRocmVhZCBzZWVtZWQgdG8gd2FrZSB1cCB0aGUgbmV4dCBv bmUsIHNvIHRoZQ0KPiA+IGRlbGF5cyB3ZXJlIGN1bXVsYXRpdmUuKQ0KPiA+IEluc3RlYWQgdGhl cmUgaXMgYSBzZXBhcmF0ZSBjdiBmb3IgZWFjaCBSVCB0aHJlYWQuDQo+ID4gSSBhY3R1YWxseSB3 YW50IHRoZSAnaGVyZCBvZiB3aWxkZWJlZXN0JyA6LSkNCj4gDQo+IEl0IHNlZW1zIHlvdSBoYXZl IGEgYmlnIFJUIGFwcCBydW5uaW5nIGluIHVzZXJzcGFjZS4gSSB0aG91Z2h0IGluaXRpYWxseSB5 b3UncmUNCj4gaGl0dGluZyBpc3N1ZXMgd2l0aCByYW5kb20ga3RocmVhZHMgb3Igc29tZXRoaW5n LiBJZiB5b3UgaGF2ZSBjb250cm9sIG92ZXINCj4gdGhlc2UgdGFza3MsIHRoZW4gdGhhdCBzaG91 bGQgYmUgZWFzaWVyIHRvIGhhbmRsZSAoYXMgeW91IHN1Z2dlc3QgYXQgdGhlIGVuZCkuDQoNCkkn dmUgYSBiaWcgYXBwIHdpdGggYSBsb3Qgb2YgUlQgdGhyZWFkcyBkb2luZyBuZXR3b3JrIHNlbmQv cmVjZWl2ZS4NCihBbGwgdGhlIHBhY2tldHMgYXMgfjIwMCBieXRlIFVEUCwgNTAvc2VjIG9uIDEw MDArIHBvcnQgbnVtYmVycy4pDQpCdXQgdGhlcmUgYXJlIG90aGVyIHRoaW5ncyBnb2luZyBvbiBh cyB3ZWxsLg0KDQo+IEknbSBub3Qgc3VyZSBhYm91dCB0aGUgZGVsYXlzIHdoZW4gdXNpbmcgY3Zf YnJvYWRjYXN0KCkuIENvdWxkIGl0IGJlIHRoZSB3YXkNCj4gdGhpcyBsaWJyYXJ5IGlzIGltcGxl bWVudGVkIGlzIGNhdXNpbmcgdGhlIHByb2JsZW0gcmF0aGVyIHRoYW4gYSBrZXJuZWwNCj4gbGlt aXRhdGlvbj8NCg0KSSB3YXMgZGVmaW5pdGVseSBzZWVpbmcgdGhlIHRocmVhZHMgd2FrZSB1cCBv bmUgYnkgb25lLg0KRXZlcnkgMTBtcyBvbmUgb2YgdGhlIFJUIHRocmVhZHMgd2FrZXMgdXAgYW5k IHRoZW4gd2FrZXMgdXAgYWxsIHRoZSBvdGhlcnMuDQpUaGVyZSB3ZXJlbid0IGFueSAnZXh0cmEn IHN5c3RlbSBjYWxscywgb25jZSBvbmUgdGhyZWFkIHdhcyBydW5uaW5nDQppbiBrZXJuZWwgdGhl IG5leHQgb25lIGdvdCB3b2tlbiB1cC4NCk1vc3QgKGFuZCBhbHdheXMpIG5vdGljZWFibGUgd2Vy ZSB0aGUgZGVsYXlzIGdldHRpbmcgZWFjaCBjcHUgb3V0DQpvZiBpdHMgc2xlZXAgc3RhdGUuDQpC dXQgaWYgb25lIG9mIHRoZSByZXF1aXJlZCBjcHUgd2FzIChlZykgcnVubmluZyB0aGUgc29mdGlu dCBjb2RlDQpub25lIG9mIHRoZSBsYXR0ZXIgb25lcyB3b3VsZCB3YWtlIHVwLg0KDQo+ID4gPiBU aGUgYXBwcm9hY2ggaW4gdGhhdCBwYXRjaCBtb2RpZmllZCBSVCB0byBhdm9pZCBDRlMgYWN0dWFs bHkuDQo+ID4NCj4gPiBZZXMgSSB3YW50IHRoZSBDRlMgc2NoZWR1bGVyIHRvIHBpY2sgYW4gaWRs ZSBjcHUgaW4gcHJlZmVyZW5jZQ0KPiA+IHRvIGFuIGFjdGl2ZSBSVCBvbmUuDQo+IA0KPiBJIHRo aW5rIHRoYXQncyB3aGF0IHNob3VsZCBoYXBwZW4uIEJ1dCBJIHRoaW5rIGl0J3MgcmFjeS4gVmlu Y2VudCBrbm93cyB0aGlzDQo+IGNvZGUgYmV0dGVyIHRob3VnaCwgc28gSSdsbCBkZWZlciB0byBo aW0uDQo+IA0KPiA+DQo+ID4gPiBDYW4geW91IHZlcmlmeSB3aGV0aGVyIHRoZSBSVCB0YXNrIHdv a2UgdXAgYWZ0ZXIgdGFzayAzNDUxMiB3YXMgbWlncmF0ZWQgdG8gQ1BVDQo+ID4gPiAxNz8gTG9v a2luZyBhdCB0aGUgZGVmaW5pdGlvbiBvZiBhdmFpbGFibGVfaWRsZV9jcHUoKSB3ZSBzaG91bGQg aGF2ZSBhdm9pZGVkDQo+ID4gPiB0aGF0IENQVSBpZiB0aGUgUlQgdGFzayB3YXMgYWxyZWFkeSBy dW5uaW5nLiBCb3RoIHdha2luZyB1cCBhdCB0aGUgc2FtZSB0aW1lDQo+ID4gPiB3b3VsZCBleHBs YWluIHdoYXQgeW91IHNlZS4gT3RoZXJ3aXNlIEknbSBub3Qgc3VyZSB3aHkgaXQgcGlja2VkIENQ VSAxNy4NCj4gPg0KPiA+IEFsbCAzNSBSVCB0YXNrcyBhcmUgcnVubmluZyB3aGVuIHRoZSByZXF1 ZXN0IHRvIHNjaGVkdWxlIHRhc2sgMzQ1MTIgaXMgbWFkZS4NCj4gPiAoVGhleSB3YWtlIGV2ZXJ5 IDEwbXMgdG8gcHJvY2VzcyBVRFAvUlRQIGF1ZGlvIHBhY2tldHMuKQ0KPiA+IFRoZSBSVCB0YXNr IG9uIGNwdSAxNyBjYXJyaWVkIG9uIHJ1bm5pbmcgdW50aWwgaXQgcmFuIG91dCBvZiB3b3JrIChh ZnRlciBhYm91dCAxbXMpLg0KPiA+IFRhc2sgMzQ1MTIgdGhlbiByYW4gb24gY3B1IDE3Lg0KPiA+ DQo+ID4gSW4gdGhpcyBjYXNlIHRhc2sgMzQ1MTIgYWN0dWFsbHkgZmluaXNoZWQgcXVpdGUgcXVp Y2tseS4NCj4gPiAoSXQgaXMgY3JlYXRpbmcgYW5kIGJpbmRpbmcgbW9yZSBVRFAgc29ja2V0cy4p DQo+ID4gQnV0IGl0IGxvb2tzIGxpa2UgaWYgaXQgd2VyZSBzdGlsbCBydW5uaW5nIG9uIHRoZSBu ZXh0IDEwbXMgJ3RpY2snDQo+ID4gaXQgd291bGQgYmUgcHJlLWVtcHRlZCBieSB0aGUgUlQgdGFz ayBhbmQgYmUgaWRsZS4NCj4gPiBOb3QgaWRlYWwgd2hlbiBJJ20gdHJ5aW5nIHRvIHNjaGVkdWxl IGEgYmFja2dyb3VuZCBhY3Rpdml0eS4NCj4gPg0KPiA+IEkgZG9uJ3QgdGhpbmsgdGhlIGxvYWQt YmFsYW5jZXIgd2lsbCBldmVyIHBpY2sgaXQgdXAuDQo+ID4gQWxsIHRoZSBwcm9jZXNzIHNjaGVk dWxpbmcgaXMgaGFwcGVuaW5nIGZhciB0b28gZmFzdC4NCj4gPg0KPiA+IFdoYXQgSSB0aGluayBt aWdodCBiZSBoYXBwZW5pbmcgaXMgdGhhdCB0aGUgZnV0ZXgoKSBjb2RlIGlzIHJlcXVlc3RpbmcN Cj4gPiB0aGUgd29rZW4gdXAgdGhyZWFkIHJ1biBvbiB0aGUgY3VycmVudCBjcHUuDQo+IA0KPiBI bW0uIExvb2tpbmcgYXQga2VybmVsL2Z1dGV4L3dhaXR3YWtlLmM6OmZ1dGV4X3dha2UoKSBpdCBq dXN0IGVuZHMgdXAgY2FsbGluZw0KPiB3YWtlX3VwX3Byb2Nlc3MoKS4gU28gdGhhdCBtaWdodCBu b3QgYmUgdGhlIGNhc2UuDQo+IA0KPiA+IFRoaXMgY2FuIGJlIGFkdmFudGFnZW91cyBpbiBzb21l IGNpcmN1bXN0YW5jZXMgLSB1c3VhbGx5IGlmIHlvdQ0KPiA+IGtub3cgdGhlIGN1cnJlbnQgdGhy ZWFkIGlzIGFib3V0IHRvIHNsZWVwLg0KPiA+IChJIHJlbWVtYmVyIGFub3RoZXIgc2NoZWR1bGVy IGRvaW5nIHRoYXQsIGJ1dCBJIGNhbid0IHJlbWVtYmVyIHdoeSENCj4gPiBUaGUgb25seSBzZXF1 ZW5jZSBJIGNhbiB0aGluayBvZiBpcyBhIHNoZWxsIGRvaW5nIGZvcmsrZXhlYyt3YWl0LikNCj4g PiBCdXQgaXQgc2VlbXMgbGlrZSBhIGJhZCBpZGVhIHdoZW4gYSBSVCB0aHJlYWQgaXMgd2FraW5n IGEgQ0ZTIG9uZS4NCj4gPiAoT3IgYW55IGNhc2Ugd2hlcmUgdGhlIG9uZSBiZWluZyB3b2tlbiBp cyBsb3dlciBwcmlvcml0eS4pDQo+ID4NCj4gPiBJIG1pZ2h0IGhhdmUgdG8gcnVuIHRoZSAnYmFj a2dyb3VuZCB0YXNrcycgYXQgbG93IFJUIHByaW9yaXR5DQo+ID4ganVzdCB0byBnZXQgdGhlbSBz Y2hlZHVsZWQgb24gaWRsZSBjcHUuDQo+IA0KPiBJZiB5b3UgbWFrZSBpdCBhbiBSVCB0YXNrICh3 aGljaCBJIHRoaW5rIGlzIGEgZ29vZCBpZGVhKSwgdGhlbiB0aGUgUlQgc2NoZWR1bGVyDQo+IHdp bGwgaGFuZGxlIGl0IGluIHRoZSBwdXNoL3B1bGwgcmVtYXJrIHRoYXQgc2VlbSB0byBoYXZlIHN0 YXJ0ZWQgdGhpcw0KPiBkaXNjdXNzaW9uIGFuZCBnZXQgcHVzaGVkL3B1bGxlZCB0byBhbm90aGVy IENQVSB0aGF0IGlzIHJ1bm5pbmcgbG93ZXIgcHJpb3JpdHkNCj4gdGFzay4NCg0KVGhlIHByb2Js ZW0gaXMgdGhhdCB3aGlsZSBJJ2QgbGlrZSB0aGlzIHRocmVhZCB0byBzdGFydCBpbW1lZGlhdGVs eQ0Kd2hhdCBpdCBpcyBkb2luZyBpc24ndCBUSEFUIGltcG9ydGFudC4NClRoZXJlIGFyZSBvdGhl ciB0aGluZ3MgdGhhdCBtaWdodCBydW4gb24gdGhlIENGUyBzY2hlZHVsZXIgdGhhdCBhcmUNCm1v cmUgaW1wb3J0YW50Lg0KSSBjYW4gbWFrZSBpdCBSVCBmb3IgZXhwZXJpbWVudHMuDQoNCglEYXZp ZA0KDQotDQpSZWdpc3RlcmVkIEFkZHJlc3MgTGFrZXNpZGUsIEJyYW1sZXkgUm9hZCwgTW91bnQg RmFybSwgTWlsdG9uIEtleW5lcywgTUsxIDFQVCwgVUsNClJlZ2lzdHJhdGlvbiBObzogMTM5NzM4 NiAoV2FsZXMpDQo=