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=-5.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=no 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 D8378C433FE for ; Thu, 3 Dec 2020 22:22:06 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 0914522285 for ; Thu, 3 Dec 2020 22:22:05 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0914522285 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=marvell.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 21B716B0036; Thu, 3 Dec 2020 17:22:05 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1CCD78D0002; Thu, 3 Dec 2020 17:22:05 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0214E8D0001; Thu, 3 Dec 2020 17:22:04 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0105.hostedemail.com [216.40.44.105]) by kanga.kvack.org (Postfix) with ESMTP id D15FD6B0036 for ; Thu, 3 Dec 2020 17:22:04 -0500 (EST) Received: from smtpin29.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 95C2D1EF2 for ; Thu, 3 Dec 2020 22:22:04 +0000 (UTC) X-FDA: 77553394968.29.slope46_0f05dca273bf Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin29.hostedemail.com (Postfix) with ESMTP id 69B0D18086CA1 for ; Thu, 3 Dec 2020 22:22:04 +0000 (UTC) X-HE-Tag: slope46_0f05dca273bf X-Filterd-Recvd-Size: 29544 Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by imf45.hostedemail.com (Postfix) with ESMTP for ; Thu, 3 Dec 2020 22:22:03 +0000 (UTC) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 0B3ML7LB017202; Thu, 3 Dec 2020 14:21:52 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=pfpt0220; bh=zrG8ebnlULXNUl68s1enibIb3Y9mJj0JSLKUuDwL+5A=; b=hBZ5uvhRQvz+/RaoHdKKWxbhZvoMOY+vNNUCXHzEOGajhQvoYCa9XJeXykbkWovVw0HY i6NDdtDNQ8qyQzh42Rct39RYNUIMCxvUbNBXtb38HrkrvV7NCqnXWLBbAYdr81z48+xL HqH0KyGes0uvn0f5yBPRUUBA4GudMTd8/GRdVFPITeILIxIZ/c9dzokwCraoxY/3qZOt DtazaifAtOHxxWjfBTQ8ld2DPvBDfw01AXISxIPPafev+YL8mo45yfHwlff/xlr/r8fe TYOXiYhPlBoHL9zXU+n9TipChePVEua+mz92aiF8l/FHajaWaQzilGC32R68k4IR1Fr/ sA== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0b-0016f401.pphosted.com with ESMTP id 355w50ffcb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 03 Dec 2020 14:21:52 -0800 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 3 Dec 2020 14:21:50 -0800 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.48) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Thu, 3 Dec 2020 14:21:50 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GY8wnerR+vJyLnVNs7YjucA28eqmbGxbg01ZerR57sDEzS4e6GHJLwVpv2FadL1F/VdyCIFIkcWfNv/mgXSIMF8B2CKi+5NgG7Zz8GCCb8i1U8/lsmBHcd2B3aTAJ3Ei5RTc5bjakuVuK+J0wXeCSvJK5nBhraj4Ucx5dTDwfeME4CZBaONCE2ckOJrsklKFO/BxOFj8uyMOqBkpdpNvaWofeIDNmC5Q1d/4BEAs6e1Mf+eKORH1yG/Za9/PFGumT5xriO76vmPLgTz9FsrYpiJ9YiROwe4HIDv/BxRamyt1ZmV+CwaNpcJwauXTl1ZpqLD8vHbNpNPMqDoOQX2TeA== 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=zrG8ebnlULXNUl68s1enibIb3Y9mJj0JSLKUuDwL+5A=; b=J0yOWdN8NamBX4uwCOlynxwjDQGsArM93K+MYkVmBVTwXKV3Y8vDZAVXOtYSX1RCgixqKs2Uq1Hg+AsPouDf/VZq/quOYarA9WbkDwj/qB/e2TuK7K8zSY7/jXEe1hZnrLn4+5/WGLBsrJM992xyHsACSEFNlwGokepKtMaHVWc8Pe9vityrJGS6hBvQ2Yihm0+Xo3xCgdH7tRzFaJZazJR/djneECwpUZnlvWYSQ9AeGiSL288Wrq7K4McNoCXpztiPFsIVKzsvf9s4tmfN2NYu87Yp+jzXg0fFCZ+qC95sr7Q956Uiwo4m0jhNWep9k9FgQU5xkWJZ+QC6xwXoCg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zrG8ebnlULXNUl68s1enibIb3Y9mJj0JSLKUuDwL+5A=; b=TY6nsK2Vb+VoFMwhiaSJRVmA2IrT7wOfknYwVboaTuJvxRIK6ZPF7DXGKYpzYgzBGSPglbuQRAseu6cjTpGaMWPq/PN0FS82TWM4xlgPxa5Z85exKL3lF4aoyUV4tk4Of24U+QvCBthjeNKZBUs7EbaMmtsnBdGNbFKG7vaTlBM= Received: from MW2PR18MB2267.namprd18.prod.outlook.com (2603:10b6:907:3::11) by MWHPR18MB0927.namprd18.prod.outlook.com (2603:10b6:300:9a::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.17; Thu, 3 Dec 2020 22:21:48 +0000 Received: from MW2PR18MB2267.namprd18.prod.outlook.com ([fe80::24e2:8566:bf62:b363]) by MW2PR18MB2267.namprd18.prod.outlook.com ([fe80::24e2:8566:bf62:b363%6]) with mapi id 15.20.3632.020; Thu, 3 Dec 2020 22:21:47 +0000 From: Alex Belits To: "mtosatti@redhat.com" CC: "akpm@linux-foundation.org" , "linux-mm@kvack.org" , "peterz@infradead.org" , "frederic@kernel.org" , "pauld@redhat.com" , "tglx@linutronix.de" , "willy@infradead.org" , "cl@linux.com" Subject: Re: [EXT] Re: [PATCH] mm: introduce sysctl file to flush per-cpu vmstat statistics Thread-Topic: [EXT] Re: [PATCH] mm: introduce sysctl file to flush per-cpu vmstat statistics Thread-Index: AQHWxNTiEzsg0nuahkGE+DaYqFTNNKnc6VKAgAQXjgCABPrVAA== Date: Thu, 3 Dec 2020 22:21:47 +0000 Message-ID: <92036f7cfc3025af85b154ce8e87e3bd29c50adc.camel@marvell.com> References: <20201117162805.GA274911@fuller.cnet> <20201117180356.GT29991@casper.infradead.org> <20201117202317.GA282679@fuller.cnet> <20201127154845.GA9100@fuller.cnet> <20201130181858.GA5924@fuller.cnet> In-Reply-To: <20201130181858.GA5924@fuller.cnet> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=marvell.com; x-originating-ip: [173.228.7.197] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 730f2074-7972-4b39-afc1-08d897d9d322 x-ms-traffictypediagnostic: MWHPR18MB0927: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9yWJsGypVxW2/3Qlw/S0t17+uivd3jhWpvNUmcMchy4I9ZefYaVBR4JpTUKllqjAacJDiBe1n2R9bkidgHE3/cO6vvEEDbjQ6B5nOn5HtKwkfk357TCTGqg2VDQzo8ugShu/NHinOKgZmmZsrmSz99rzDupo+ztf3UxQHCp2cB5u1YSOsKMnx5jtKJdMFM8gLNTagFXd1bL8l5yS+dmii+WEcEss4onf6ytdVI+iT59SjEuIjR+8ZrfD1rRpshWQDZiBeca2K/1uPkhfESg7Ql93fybVxnT9oxX9s2955C84J3olpsMWgOhGqr7NgrxbUazi8ABxGr0l9X6R4EDSWA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW2PR18MB2267.namprd18.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(136003)(376002)(396003)(346002)(39860400002)(4001150100001)(478600001)(186003)(66946007)(66556008)(66446008)(64756008)(66476007)(6916009)(4326008)(316002)(54906003)(30864003)(6506007)(2906002)(86362001)(91956017)(2616005)(83380400001)(6486002)(6512007)(36756003)(71200400001)(8676002)(26005)(5660300002)(8936002)(76116006);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?cG96OUJWMmh4b0pBT29CTHR4YldvM3VuZVVRNXQyTG1iMnc0aHY0Y0hUTlF3?= =?utf-8?B?cVNCcEwrWDI5YmlZZnVVYXl4R2tHWUpkNEhvV04wZFNERmttbXp3SWFSVnNh?= =?utf-8?B?enBUaEJsQ0JLVDZTTkNSQ3JuL2U5NDlBemNjMUZtbWU5ZWFpR3ErT3Joa2pj?= =?utf-8?B?SUg3YXhSUFlHbE05VHF2VmpPVzhCanhHWk9sSk1Tby9CNHRqNkkvNE80SUtt?= =?utf-8?B?WXBpRmtKQzJYbGwrWEVvSEltM1FuajEyWCt4UmRiL3pkWWdWU1JvTHQxMGg3?= =?utf-8?B?dksxV2NTQTF4RXFyUENiU1I2bDRaVGxqNTJITWpVLzViaWRDb2Vvazd3eHdx?= =?utf-8?B?NEJCcnlzTWNFYWdQMTM4YjVFcU1QK05CQTVYbTFPc0JSWjgySjNrV3luNU1l?= =?utf-8?B?eG5wdmlDMEZ2cVcxQkhOOFB4SnlxZGlKb3dERzdTbzVmMHNQWDFSdWRhbFJy?= =?utf-8?B?aVpYM0tXaEdocm1EWjdNSEM1YVowYlo0N09lNlFhTEt1VVNwL3NiZ0JaeE1a?= =?utf-8?B?TlBSTlBIMFJXN1ZGdTJXYVRmZFUrUzRvcEFoS2VXZGVna1RpN2diY1lJRk9w?= =?utf-8?B?ZW9QeDJ1YkN3SnBGZGZabTEzZUhDTDczMEVUa2E1Z05aaGNDc3NIUnBub2Vu?= =?utf-8?B?ekIxcU40SmZWVEljeW9VY2M5L0IydHdTbTdPbUQ5TkJmYWdCYzQ0K0hLV3hv?= =?utf-8?B?cnloWFZxZldNNjQvUmNNK1NzUWhaL0ZsUkRUcFM3cGJUME40RVFINHFRWmZm?= =?utf-8?B?a1NHay9mK0xobW5lNVhyQVpDL05KaDNCRzhuSng2NUNUZHFUYmI4L0NSdmps?= =?utf-8?B?MjdtcjMvZW5hOG5RQ2hhRENYR1JvaW1RKzJ5Nk52NHNFL1Axbkk4TFUrYVpa?= =?utf-8?B?cjlMS2oySWxSeHFpMHVqaXZhS1RKTnRobjd3UXpuQkZ0VWxPN3JVUFhFNG9W?= =?utf-8?B?TDBIK1RFWDhsS084RkJhZVQvNkhnTEFTbngvRms4TnNVMWhsYlZKeHNjaDJp?= =?utf-8?B?UzErNmVLSFdTUHdpaUVuTVFOY3praTI5Q1k0aDRZZjBreHo0R2xDUDdoNDRq?= =?utf-8?B?azNUaUZIUVl0TjY1WEZlRHZnLzhTY2lQcytmRDRHZThtMXA0VktyS3V1VC8z?= =?utf-8?B?cnpieFFGRzh4aitkclBqTEw0RitkSkhzQjFVcjNMMWE3ZzFHWFZJZXpGM1NY?= =?utf-8?B?L0lENmE3UEFBNFdWdXZNVm1KOTJNQUJxcHBVeDZlN1lkWUxZbTlPTlJqTjA2?= =?utf-8?B?TVV3dmN5RUl1U3FCdzZzKzNRNWU2RW53eTV6NTh4cHhCTzdhNWNoR0g2RitM?= =?utf-8?Q?c1TVA6Q5UNn4N4zzLLx8TCkqiek64RWWOb?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW2PR18MB2267.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 730f2074-7972-4b39-afc1-08d897d9d322 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Dec 2020 22:21:47.6789 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: dPH+cZigyY7XbNbSwH2RKc4DZ+8j5rbA/OZoGaWxy3qwO0oB6K7OQvf0xbYj12V+TztfgbrslONKh6XGQ+wxVg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR18MB0927 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.312,18.0.737 definitions=2020-12-03_15:2020-12-03,2020-12-03 signatures=0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: T24gTW9uLCAyMDIwLTExLTMwIGF0IDE1OjE4IC0wMzAwLCBNYXJjZWxvIFRvc2F0dGkgd3JvdGU6 DQoNCj4gVHdvIHF1ZXN0aW9uczoNCj4gDQo+IFdoYXQgaXMgdGhlIHJlYXNvbiBmb3Igbm90IGFs bG93aW5nIF9hbnlfIGludGVycnVwdGlvbj8gQmVjYXVzZSANCj4gaXQgbWlnaHQgYmUgdGhlIGNh c2UgKGFuZCBpdCBpcyBpbiB0aGUgdlJBTiB1c2UgY2FzZXMgb3VyIGN1c3RvbWVycw0KPiB0YXJn ZXQpLCB0aGF0IHNvbWUgYW1vdW50IG9mIGludGVycnVwdGlvbiBpcyB0b2xlcmFibGUuDQo+IA0K PiBGb3IgZXhhbXBsZSwgZm9yIG9uZSB1c2UgY2FzZSAyMHVzIChvZiBpbnRlcnJ1cHRpb25zKSBl dmVyeSAxbXMgb2YgDQo+IGVsYXBzZWQgdGltZSBpcyB0b2xlcmFibGUuDQoNCkkgYWdyZWUgdGhh dCBmb3IgbWFueSBhcHBsaWNhdGlvbnMgdGhhdCB3b3VsZCBiZSBzdWZmaWNpZW50LCBhbmQgaWYg c28sDQp3ZSBjYW4gYXZvaWQgdGhlIHJlc3Qgb2YgdGhlIG1lY2hhbmlzbSwgSG93ZXZlciBJIGtu b3cgdGhyZWUgdHlwZXMgb2YNCmFwcGxpY2F0aW9ucyB3aGVyZSBmdWxsIGlzb2xhdGlvbiBpcyBh YnNvbHV0ZWx5IG5lY2Vzc2FyeS4NCg0KMS4gUGh5c2ljYWwgcHJvY2VzcyBjb250cm9sLiBBIHBy b2dyYW0gY29udGludW91c2x5IHBvbGxzIGRhdGEgZnJvbQ0Kc2Vuc29ycywgcHJvY2Vzc2VzIGl0 LCBkZXRlcm1pbmVzIHRoZSBzdGF0ZSBvZiBjb250cm9sbGVkIGRldmljZSBvcg0KcHJvY2Vzcywg YW5kIGlzc3VlcyBjb21tYW5kcyBvciB0dW5lcyBwYXJhbWV0ZXJzLCBjb250cm9sbGluZyBpdC4g QW4NCnVucHJlZGljdGFibGUgZGVsYXkgY2F1c2VkIGJ5IGFuIGludGVycnVwdCBvciBvdGhlcg0K cGVyZm9ybWFuY2UtYWZmZWN0aW5nIGV2ZW50IGNhbiBicmVhayB0aGUgdGltaW5nIG9mIHRoaXMg bWVjaGFuaXNtLg0KDQpFdmVuIHRha2luZyBpbnRvIGFjY291bnQgdGhhdCB1c3VhbGx5IHNhZmV0 eSByZXF1aXJlbWVudHMgZGVtYW5kIHRoYXQNCnNvbWUgbG93LWxhdGVuY3kgcmVhY3Rpb24gc2hv dWxkIGJlIHBlcmZvcm1lZCB3aXRob3V0IENQVSBpbnZvbHZlbWVudCwNCnNvbWUgb2YgdGhlIGNv bnRyb2wgbG9naWMgbWF5IGRlbWFuZCBpbnZvbHZlbWVudCBvZiBhIENQVSB1c3VhbGx5DQp3aXRo aW4gYSBjbG9zZWQgY29udHJvbCBsb29wLiBGb3IgZXhhbXBsZSwgdHJhY2tpbmcgdGhlIHN0YXRl IG9mIGFuIFJGDQpjb25uZWN0aW9uIGFuZCBhZGp1c3RpbmcgdGhlIHNpZ25hbCwgYW5hbHlzaXMg b2YgbWVhc3VyZW1lbnRzIGFuZA0KY29udHJvbCBvZiBhIG1lY2hhbmljYWwgc3lzdGVtLCBpbmNs dWRpbmcgZWxhc3RpY2l0eSBhbmQgdmlicmF0aW9uIGluDQppbmR1c3RyaWFsIGFuZCB0cmFuc3Bv cnRhdGlvbiBhcHBsaWNhdGlvbnMsIGFsbCByZXF1aXJlIGEgbGFyZ2UgYW1vdW50DQpvZiBjYWxj dWxhdGlvbnMsIGFuZCBiZW5lZml0IGZyb20gcmVkdWNlZCBhbW91bnQgb2YgYnVmZmVyaW5nIGFu ZA0KZGVsYXlzLiBJbiBjYXNlIG9mIFJGIHRoaXMgYWxsb3dzIHRvIG1haW50YWluIG1vcmUgcmVs aWFibGUNCmNvbm5lY3Rpb25zLiBNZWNoYW5pY2FsIHN5c3RlbXMgY2FuIGhhdmUgZ3JlYXRlciBw cmVjaXNpb24gYW5kIGxvd2VyDQpzdHJlc3Mgb24gdGhlIGNvbXBvbmVudHMgYmVjYXVzZSBzdWNo IHN5c3RlbSBjYW4gZWFzaWx5IGltcGxlbWVudA0KZGFtcGVuaW5nIGFuZCBjb21wZW5zYXRpb24g b2YgZGVmb3JtYXRpb24gYW5kIGRldGVyaW9yYXRpb24uDQoNClVzdWFsbHkgd2hlbiBzdWNoIHBy b2Nlc3NpbmcgaXMgbmVjZXNzYXJ5LCB0aGUgImZhc3QiIHBhcnQgb2YgaXQgaXMNCnBlcmZvcm1l ZCBvbiBhIG1pY3JvY29udHJvbGxlciwgc2VwYXJhdGUgQ1BVIGNvcmUgYnVpbHQgaW50byBhbiBB U0lDIG9yDQpldmVuIGEgInNvZnQgQ1BVIiBpbXBsZW1lbnRlZCBvbiBhbiBGUEdBLCB3aGlsZSAi c2xvdyIgY2FsY3VsYXRpb25zIGFyZQ0KcGVyZm9ybWVkIGJ5IGEgbGFyZ2UgQ1BVIG9yIFNvQy4g VGhpcywgaG93ZXZlciwgcGxhY2VzIHNldmVyZQ0KbGltaXRhdGlvbnMgb24gdGhlIHNvZnR3YXJl IGRlc2lnbiBhbmQgcmVxdWlyZXMgZW5naW5lZXJzIHRvIHdhc3RlDQoiZXhwZW5zaXZlIiByZXNv dXJjZXMgc3VjaCBhcyBpbmNsdWRpbmcgUENJZSBsaW5rcyBpbnRvDQptaWNyb2NvbnRyb2xsZXJz LCBidWlsZGluZyBBU0lDcywgaW1wbGVtZW50aW5nIHNvZnQgQ1BVIGNvcmVzIG9uIEZQR0EsDQpl dGMuIHdoaWxlIHRoZSB1c2Ugb2YgQ1BVIGNvcmVzIG9mIG1vZGVybiBDUFVzIGFuZCBTb0MgaXMg bGltaXRlZC4NClNvbWV0aW1lcyBhIGxhcmdlIHByb2Nlc3NpbmcgbWVjaGFuaXNtIGlzIGJ1aWx0 IG91dCBvZiBEU1AgYmxvY2tzIG9mDQpGUEdBIGFuZCBpdHMgYnVpbHQtaW4gc3RhdGljIFJBTSwg d2hpbGUgbW9yZSBjYXBhYmxlIFNJTUQgb2YgYSBDUFUNCnJlbWFpbnMgdW5kZXItdXNlZC4NCg0K Mi4gQXVkaW8gcHJvY2Vzc2luZy4gQSBwcm9ncmFtIGltcGxlbWVudHMgYSBzZXQgb2YgZmlsdGVy cyBhbmQgbWl4ZXJzLA0KcHJvY2Vzc2luZyBtdWx0aXBsZSBhdWRpbyBzdHJlYW1zIGluIGEgbGl2 ZSBwZXJmb3JtYW5jZS4gUHJvY2Vzc2luZw0Kc2hvdWxkIGJlIHN5bmNocm9uaXplZCBub3Qgb25s eSBiZXR3ZWVuIGluZGl2aWR1YWwgbWljcm9waG9uZXMsDQpzcGVha2VycyBhbmQgcHJvY2Vzc29y cywgYnV0LCB3aGVuIHVzZWQgYXMgYSBwYXJ0IG9mIHNvdW5kDQpyZWluZm9yY2VtZW50IHN5c3Rl bSwgYWxzbyB3aXRoIHByb3BhZ2F0aW9uIG9mIHNvdW5kIHRocm91Z2ggdGhlDQplbnZpcm9ubWVu dCB0aGF0IGJ5cGFzc2VzIHRoZSBhdWRpbyBzeXN0ZW0gYnV0IGlzIHN1YmplY3QgdG8gdGhlDQph Y291c3RpY3Mgb2YgdGhlIGJ1aWxkaW5nLiBUaGUgYW1vdW50IG9mIGRhdGEgaXMgbGFyZ2UsIGhv d2V2ZXINCmNhbGN1bGF0aW9ucyBhcmUgYWx3YXlzIHRoZSBzYW1lLCBzbyBpdCBpcyBwb3NzaWJs ZSB0byB0dW5lIGFsbCBkZWxheXMNCnRvIG1hdGNoIHRoZSBwcm9qZWN0ZWQgb3IgbWVhc3VyZWQg dGltaW5nLiBQcm9ncmFtIHJ1bnMgYXQgdGhlIHNhbXBsZQ0KcmF0ZSBvZiB0aGUgc2lnbmFscywg d2l0aCBwcm9jZXNzaW5nIGFsZ29yaXRobXMgYWxyZWFkeSBjcmVhdGluZw0KZGVsYXlzLCBzbyBh ZGRpdGlvbmFsIGJ1ZmZlcmluZyB3b3VsZCBwbGFjZSB0b3RhbCBkZWxheSBvdXQgb2YgdGhlDQph dmFpbGFibGUgcmFuZ2UuDQoNClRoaXMgY2FuIGJlIHNlZW4gYXMgYSBzdWJzZXQgb2YgY29udHJv bGxpbmcgdGhlIG1lY2hhbmljYWwgc3lzdGVtLA0KZXhjZXB0IHVzdWFsbHkgYSBjb250cm9sIGxv b3AsIGlmIHByZXNlbnQsIGlzIG11Y2ggc2xvd2VyIChzdWNoIGFzDQphZGFwdGluZyB0byBjaGFu Z2luZyBhY291c3RpY2FsIHByb3BlcnRpZXMpLCBob3dldmVyIHByb2Nlc3Npbmcgb2YNCmluY29t aW5nIGRhdGEgaW5jbHVkZXMgdmVyeSBsYXJnZSBhbW91bnRzIG9mIGNhbGN1bGF0aW9ucyB0aGF0 IHNob3VsZA0KYmUgcGVyZm9ybWVkIG9uIGEgZnVsbC1mZWF0dXJlZCBDUFUuIFRoZSB0b3RhbCBh bW91bnQgb2YgZGF0YSB0aGF0DQpzaG91bGQgYmUgYXZhaWxhYmxlIHRvIGEgQ1BVIGNvcmUgYXQg YSB0aW1lLCB1c3VhbGx5IGNhbiBmaXQgaW50byBpdHMNCmNhY2hlLCBhbmQgaWYgc3VmZmljaWVu dCBjYWNoZSBhbGxvY2F0aW9uIG9yIHBhcnRpdGlvbmluZyBpcyBhdmFpbGFibGUsDQphbGwgbmVj ZXNzYXJ5IGNhbGN1bGF0aW9ucyAoZGlnaXRhbCBmaWx0ZXJzLCBtaXhpbmcsIGV0Yy4pIGNhbiBi ZQ0KcmVsaWFibHkgcGVyZm9ybWVkIHdpdGggbWluaW1hbCBsYXRlbmN5LiBJbnRlcnJ1cHRzIGJy ZWFrIHRoaXMgbW9kZWwsDQpjYXVzaW5nIHVucHJlZGljdGFibGUgY2FjaGUgaW52YWxpZGF0aW9u LCBzbyBkZXNpZ24gaGFzIHRvIHRha2UgaW50bw0KYWNjb3VudCBub3QganVzdCB0aGUgdGltZSBz cGVudCBwcm9jZXNzaW5nIHRoZSBpbnRlcnJ1cHQgYnV0IGFsc28NCmRlbGF5cyBmb3IgcmUtZmls bGluZyB0aGUgY2FjaGVzIHdpdGggZGF0YSB0aGF0IG5vcm1hbGx5IHJlbWFpbnMgdGhlcmUuDQoN CjMuIFBhcmFsbGVsIGhhbmRsaW5nIG9mIG5ldHdvcmsgcGFja2V0cy4gTW9kZXJuIG5ldHdvcmst b3JpZW50ZWQgU29Dcw0KaGF2ZSBoYXJkd2FyZSBzY2hlZHVsaW5nIG1lY2hhbmlzbXMgdGhhdCBj YW4gZGlzdHJpYnV0ZSBwYWNrZXRzDQpwcm9jZXNzaW5nLCBpbmNsdWRpbmcgcGFja2V0IHByb2Nl c3Npbmcgd2l0aGluIHRoZSBzYW1lIGZsb3csIHRvDQptdWx0aXBsZSBDUFUgY29yZXMsIGZvcm0g cHJvY2Vzc2luZyBwaXBlbGluZXMsIGV0Yy4gRmxvdy1yZWxhdGVkIHN0YXRlLA0KaWYgcHJlc2Vu dCwgY2FuIGJlIGtlcHQgd2l0aGluIHRoZSBzY2hlZHVsaW5nIG1lY2hhbmlzbSwgYW5kIG5vdA0K aGFuZGxlZCBieSBDUFUgY29yZXMuIFdoZW4gQ1BVcyB3b3JrIGluIGEgcHJlZGljdGFibGUgbWFu bmVyLCB0aGlzDQphbGxvd3MgZmFzdCBwcm9jZXNzaW5nIG9mIG5ldHdvcmsgdHJhZmZpYyByZWdh cmRsZXNzIG9mIHRoZQ0KZGlzdHJpYnV0aW9uIG9mIHRoZSBhbW91bnQgb2YgZGF0YSBiZXR3ZWVu IGZsb3dzIG9yIG90aGVyIGRldGFpbHMsIHNhdmUNCmZvciBzaXR1YXRpb25zIHRoYXQgd2FycmFu dCBzb21lIGtpbmQgb2YgYWRkaXRpb25hbCBwZXItZmxvdyBwcm9jZXNzaW5nDQp0aGF0IGNhbid0 IGJlIHBlcmZvcm1lZCBpbiBhIHN0YXRlbGVzcyBtYW5uZXIgKGFuZCB0aGF0IG1heSBiZSBzdGls bA0Kb2ZmbG9hZGVkIHRvIGRlZGljYXRlZCBDUFUgY29yZXMgZm9yICJzbG93IHBhdGgiKS4gVGhp cyBpcw0KZnVuZGFtZW50YWxseSBkaWZmZXJlbnQgZnJvbSB0aGUgbW9kZWwgaW4gd2hpY2ggZWFj aCBmbG93IGlzIGtlcHQgb24gYQ0Kc2luZ2xlIENQVSBmb3Igc3RhdGVmdWwgcHJvY2Vzc2luZyBh bmQgYnVmZmVyaW5nLg0KDQpXaGVuIGludGVycnVwdCBoYXBwZW5zLCBhIGNvcmUgaXMgdGVtcG9y YXJpbHkgZXhjbHVkZWQgZnJvbSB0aGlzDQpvcmNoZXN0cmF0ZWQgcHJvY2VzcywgYW5kIHRoZSBw YWNrZXRzIHRoYXQgaXQgaGFuZGxlcyBzdGF5IGluIGJ1ZmZlciwNCnBvc3NpYmx5IGtlZXBpbmcg dGhlIHdob2xlIGZsb3dzIHdhaXRpbmcgZm9yIHJlb3JkZXJpbmcgYmVmb3JlIHRoZQ0Kb3V0cHV0 LiBFdmVyeSB0aW1lIHRoaXMgaGFwcGVucywgYnVmZmVycyBlbmQgdXAgaG9sZGluZyBtb3JlIGRh dGEgdGhhbg0KdGhleSB3b3VsZCBiZSB3aXRob3V0IGludGVycnVwdGlvbiwgc28gdGhlIHdob2xl IHN5c3RlbSBjYW4gcHJvdmlkZQ0KbG93ZXIgdGhyb3VnaHB1dCBiZWZvcmUgaXQgaGFzIHRvIGRy b3AgcGFja2V0cy4gSGFuZGxpbmcgbmV0d29yaw0KYnVmZmVycyBhbmQgQ1BVIGFjY2VzcyB0byB0 aGVtIGlzIHVzdWFsbHkgZXh0cmVtZWx5IG9wdGltaXplZCBpbiBzdWNoDQpzeXN0ZW0sIENQVSB1 c3VhbGx5IG9ubHkgYWNjZXNzZXMgYSBzdWJzZXQgb2YgaGVhZGVyIGRhdGEgaW4gbmV0d29yaw0K YnVmZmVycywgdGhlbiBtYWtlcyB3aGF0ZXZlciBkZWNpc2lvbnMgdGhhdCBhcmUgbm90IGFscmVh ZHkgZG9uZSBieSBhDQpjb21wbGV4IHN5c3RlbSBvZiBoYXJkd2FyZSBoZWFkZXIgcGFyc2Vycywg Q0FNcyBhbmQgcXVldWVzIHRoYXQgcHJlY2VkZQ0KYW5kIGZvbGxvdyB0aGlzIENQVS1iYXNlZCBw cm9jZXNzaW5nLg0KDQpJbiBtYW55IGNhc2VzIGFsbCB0aHJlZSB0eXBlcyBhcHBsaWNhdGlvbnMg c3VmZmVyIGZyb20gaW5zdWZmaWNpZW50bHkNCmZsZXhpYmxlIGNhY2hlIG1hbmFnZW1lbnQsIGhv d2V2ZXIgcmVjZW50bHkgbWFueSBDUFVzIGFuZCBTb0NzIGFyZQ0KYnVpbHQgc3BlY2lmaWNhbGx5 IGZvciB0aGUgYWJvdmUgbWVudGlvbmVkIHB1cnBvc2VzLCBhbmQgbW9yZSBjb21wbGV4DQpjYWNo ZSBtYW5hZ2VtZW50IGNhbiBiZSBlYXNpbHkgYWRkZWQgdG8gdGhlbS4gV2hlbiBpbXBsZW1lbnRp bmcgdGhvc2UNCml0J3MgbXVjaCBlYXNpZXIgdG8gYWxsb3cgb3B0aW1pemF0aW9uIGZvciBydW5u aW5nIGFuIGFwcGxpY2F0aW9uIHdpdGgNCnByZWRpY3RhYmxlIGxpbWl0cyBvbiBhY2Nlc3MsIHRo YXQgd2lsbCBmYWxsIGJhY2sgaW50byB1bi1vcHRpbWl6ZWQNCnN0YXRlIHdoZW4gYSBwcmVkaWN0 YWJsZSBwYXR0ZXJuIGlzIGJyb2tlbi4gVGhpcyBtZWFucywgZGVzaWduZXJzIG9mDQpib3RoIGhh cmR3YXJlIGFuZCBzb2Z0d2FyZSBjYW4gYnJlYXRoZSBtdWNoIGVhc2llciBpZiBPUyBjYW4gZ3Vh cmFudGVlDQppbnRlcnJ1cHQtZnJlZSBlbnZpcm9ubWVudCBmb3IgdGltaW5nLWNyaXRpY2FsIHRh c2tzLiBPdXRzaWRlIG9mIHRob3NlDQp0YXNrcyBpdCB3b3VsZCBiZSBjb21wbGV0ZWx5IGhhcm1s ZXNzIGZvciBjYWNoZSB0byBnZXQgb3V0IG9mIHRoZQ0Kb3B0aW1pemVkIHN0YXRlIGFzIGxvbmcg YXMgY29uc2lzdGVuY3kgaXMgbWFpbnRhaW5lZCBieSBoYXJkd2FyZSwgc28NCnRoZXJlIGlzIG5v IHJlYXNvbiB0byBleHBlY3QgYW55IGluY29tcGF0aWJpbGl0eSBvciB2aW9sYXRpb24gb2YNCnNw ZWNpZmljYXRpb25zIHRoYXQgd291bGQgcmVxdWlyZSBhbnkgc3BlY2lhbCBzb2Z0d2FyZSBzdXBw b3J0LiBIb3dldmVyDQphcyBhIHBlcnNvbiB3b3JraW5nIG9uIHRoZSBzb2Z0d2FyZSBzaWRlIG9m IGEgaGFyZHdhcmUgY29tcGFueSwgSSBjYW4ndA0KcmVxdWVzdCBzdWNoIGEgZmVhdHVyZSB3aGVu IEkga25vdyB0aGF0IHdoYXRldmVyIHRoZXkgd2lsbCBidWlsZCwgd2lsbA0KaGF2ZSB0byBjcmFz aCBkb3duIGxpa2UgYSBKZW5nYSB0b3dlciBldmVyeSBzZWNvbmQsIGxlYXZlIGFsb25lDQptaWxs aXNlY29uZHMuDQoNClRvIHN1cHBvcnQgdGhpcyBraW5kIG9mIHRhc2tzLCB2YXJpb3VzIGNvbXBh bmllcyB1c2VkIGVpdGhlciBmdWxsLQ0KZmVhdHVyZWQgUlRPUyBvciAiYmFyZSBtZXRhbCBlbnZp cm9ubWVudHMiIHRoYXQgYXJlIGJhc2ljYWxseQ0Kc3BlY2lhbGl6ZWQgZXh0cmVtZWx5IHJlZHVj ZWQgT1NlcywgZGVzaWduZWQgdG8gcnVuIHVwIHRvIG9uZQ0KYXBwbGljYXRpb24gcGVyIENQVSBj b3JlIHdpdGggc29tZSBtaW5pbWFsIGluaXRpYWxpemF0aW9uIGFuZCByZXNvdXJjZQ0KYWxsb2Nh dGlvbi4gV2hpbGUgSSBhZ3JlZSB0aGF0IHRoaXMgaXMgbm90IHRoZSBwbGFjZSB0byBldmFsdWF0 ZSBtZXJpdA0Kb2YgdGhvc2UgYXBwcm9hY2hlcyBpbiBnZW5lcmFsLCBJIGNhbiBzYXkgdGhhdCBt eSByZWNlbnQgZXhwZXJpZW5jZQ0Kd2l0aCBib3RoIGRldmVsb3BlcnMgYW5kIHVzZXJzLCBpbmNs dWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIG15c2VsZg0KYmVpbmcgaW4gYm90aCByb2xlcywgc2hv d3MgdGhhdCBtYW55IHdvdWxkIHJhdGhlciBwcmVmZXIgaWYgTGludXgNCnByb3ZpZGVkIHRoaXMg ZW52aXJvbm1lbnQgd2hlbiBydW5uaW5nIHNvbWUgdGFza3MgYWZ0ZXIgaW5pdGlhbGl6YXRpb24N CmluIGEgbm9ybWFsIG1vZGUuIElmIHRoZSB0YXNrIGNhbiBnbyBiYWNrIGFuZCBmb3J0aCBiZXR3 ZWVuIGlzb2xhdGVkDQphbmQgbm9uLWlzb2xhdGVkIG1vZGUsIHRoYXQgd291bGQgZ3JlYXRseSBz aW1wbGlmeSByZS1jb25maWd1cmF0aW9uLA0KYW5kIGFueSBtZWNoYW5pc20gZm9yIGNvbW11bmlj YXRpbmcgb3V0c2lkZSBvZiBpc29sYXRlZCBlbnZpcm9ubWVudCBjYW4NCmJlIGEgYm9udXMsIGhv d2V2ZXIgaXNvbGF0aW9uIGl0c2VsZiBpcyB0aGUgaW1wb3J0YW50IHBhcnQuDQoNClRoaXMgd2Fz IG5vdCB0aGUgY2FzZSBpbiBlYXJseSAyMDAwcywgd2hlbiBlbWJlZGRlZCBzeXN0ZW1zIHdlcmUg YnVpbHQNCm9uIHNpbmdsZS1jb3JlIFNvQ3MgYW5kIG1pY3JvY29udHJvbGxlcnMuIFRoZW4gZWl0 aGVyIGV2ZXJ5dGhpbmcgaGFkIHRvDQpiZSBpbnRlZ3JhdGVkIGluIGEgc2luZ2xlIHRhc2sgdW5k ZXIgImJhcmUgbWV0YWwiLCBvciBldmVyeXRoaW5nDQpkZXBlbmRlZCBvbiBpbnRlcnJ1cHQgcHJv Y2Vzc2luZyBwcm92aWRlZCBieSB0aGUgT1MuIE5vdywgd2hlbiBuZXR3b3JrDQphbmQgZW1iZWRk ZWQtb3JpZW50ZWQgY2hpcHMgYXJlIGJ1aWx0IHdpdGggdGVucyBvZiBjb3Jlcywgc29tZXRpbWVz DQppdCdzIGJldHRlciBpZiBPUyBwcmVwYXJlZCBldmVyeXRoaW5nIGFuZCBsZWZ0IHRoZSB0YXNr LCBhbG9uZyB3aXRoIGl0cw0KY29yZSBhbmQgZGV2aWNlcyB0aGF0IGl0IGhhbmRsZXMsIGFsb25l IGFuZCB1bmRpc3R1cmJlZC4gQW5kIGlmIHRoaXMNCmNhbiBiZSBkb25lIGVudGlyZWx5IHdpdGhp biBMaW51eCwgY29uc2lzdGVudGx5IGFuZCBpbnRlZ3JhdGVkIHdpdGgNCm90aGVyIHJlbGF0ZWQg ZmVhdHVyZXMgYW5kIGRlc2lnbiBvZiBpdHMgc3Vic3lzdGVtcywgSSB0aGluaywgdGhpcyBpcw0K anVzdGlmaWVkLg0KDQo+IA0KPiA+IFNpbmNlIEkgZmlyc3QgYW5kIGZvcmVtb3N0IGNhcmUgYWJv dXQgZWxpbWluYXRpbmcgYWxsIGRpc3R1cmJhbmNlcw0KPiA+IGZvcg0KPiA+IGEgcnVubmluZyB1 c2Vyc3BhY2UgdGFzaywNCj4gDQo+IFdoeT8NCg0KTW9zdGx5IGJlY2F1c2UgSSB3b3JrIG9uICgz KSBmcm9tIHRoZSBsaXN0IGFib3ZlLiBIb3dldmVyIGV4cGVyaWVuY2UNCndpdGggb3RoZXIgbWVu dGlvbmVkIHVzZXMgY29udHJpYnV0ZWQgdG8gdGhhdCwgdG9vLiBJIHRoaW5rLCBzb21lIHZlcnkN CnVzZWZ1bCB3b3JrIGlzIGFscmVhZHkgZG9uZSBpbiBMaW51eCBmb3IgbGltaXRpbmcgaW50ZXJy dXB0cyBhbmQNCmRpc3R1cmJhbmNlcyBpbiBnZW5lcmFsIGFuZCBmb3IgaXNvbGF0ZWQgQ1BVcyBp biBwYXJ0aWN1bGFyLiBPbmUNCmFkZGl0aW9uYWwgc3RlcCB0aGF0IHdpbGwgYWxsb3cgdG8gcHJv dmlkZSBhIGRpc3R1cmJhbmNlcy1mcmVlDQplbnZpcm9ubWVudCBhbmQgZ3JlYXRseSBleHBhbmQg cG9zc2libGUgYXBwbGljYXRpb25zIG9mIExpbnV4IGtlcm5lbA0KbG9va3MgdG8gbWUgbGlrZSBh IHVzZWZ1bCBhcHBsaWNhdGlvbnMgb2YgbW9yZSBlZmZvcnRzLg0KDQo+IA0KPiA+IG15IGFwcHJv YWNoIGlzIHRvIGFsbG93IGRpc2FibGluZyBldmVyeXRoaW5nDQo+ID4gaW5jbHVkaW5nICJ1bmF2 b2lkYWJsZSIgc3luY2hyb25pemF0aW9uIElQSXMsIGFuZCBtYWtlIGtlcm5lbCBlbnRyeQ0KPiA+ IHByb2NlZHVyZSByZWNvZ25pemUgdGhhdCBzb21lIGRlbGF5ZWQgc3luY2hyb25pemF0aW9uIGlz IG5lY2Vzc2FyeQ0KPiA+IHdoaWxlIGF2b2lkaW5nIHJhY2UgY29uZGl0aW9ucy4gQXMgZmFyIGFz IEkgY2FuIHRlbGwsIG5vdCBldmVyeW9uZQ0KPiA+IHdhbnRzIHRvIGdvIHRoYXQgZmFyLCANCj4g DQo+IFN1cHBvc2UgaXQgZGVwZW5kcyBvbiBob3cgbG9uZyBlYWNoIGludGVycnVwdGlvbiB0YWtl cy4gVXBvbiB0aGUgDQo+IHN1Z2dlc3Rpb24gZnJvbSBUaG9tYXMgYW5kIEZyZWRlcmljLCBpJ3Zl IGJlZW4gdGhpbmtpbmcgaXQgc2hvdWxkIA0KPiBiZSBwb3NzaWJsZSwgd2l0aCB0aGUgdHJhY2lu ZyBmcmFtZXdvcmssIHRvIHJlY29yZCB0aGUgbGVuZ3RoIG9mIA0KPiBhbGwgaW50ZXJydXB0aW9u cyB0byBhIGdpdmVuIENQVSBhbmQsIGV2ZXJ5IHNlY29uZCBjaGVjayBob3cgbWFueSANCj4gaGF2 ZSBoYXBwZW5lZCAoYW5kIHdoZXRoZXIgdGhlIHN1bSBvZiBpbnRlcnJ1cHRpb25zIGV4Y2VlZHMg dGhlIA0KPiBhY2NlcHRhYmxlIHRocmVzaG9sZCkuDQo+IA0KPiBJdHMgbm90IGFzIG5pY2UgYXMg dGhlIHRhc2sgaXNvbGF0aW9uIHBhdGNoIChpbiB0ZXJtcyBvZiBzcG90dGluZw0KPiB0aGUgY3Vs cHJpdCwgc2luY2Ugb25lIHdvbid0IGdldCBhIGJhY2t0cmFjZSBvbiB0aGUgb3JpZ2luYXRpbmcN Cj4gQ1BVIGluIGNhc2Ugb2YgYW4gSVBJIGZvciBleGFtcGxlKSwgYnV0IGl0IHNob3VsZCBiZSBw b3NzaWJsZSANCj4gdG8gdmVyaWZ5IHRoYXQgdGhlIGxhdGVuY3kgdGhyZXNob2xkIGlzIG5vdCBi cm9rZW4gKHdoaWNoIGlzDQo+IHdoYXQgdGhlIGFwcGxpY2F0aW9uIGlzIGludGVyZXN0ZWQgaW4s IGlzbnQgaXQ/KS4NCg0KV2l0aCB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBpc29sYXRpb24g cGF0Y2ggSSBoYXZlIGNvbXBsZXRlbHkNCnJlbW92ZWQgdGhlIGRpYWdub3N0aWNzIHBhcnQgb2Yg dGhlIGNvZGUuIEkgd2FudCB0byByZS1pbnRyb2R1Y2UgYSBtdWNoDQpjbGVhbmVyIGltcGxlbWVu dGF0aW9uIG9mICJpbnRlcnJ1cHQgY2F1c2UgZGlhZ25vc3RpY3MiIG9uIHRvcCBvZiBpdCwNCm1v c3RseSBmb3IgdGhlIHB1cnBvc2Ugb2YgZGV2ZWxvcG1lbnQgLS0gYXQgbGVhc3QgSSB0aGluaywg aXQgd2lsbCBnaXZlDQptZSBhIGJldHRlciB0b29sIHRvIGNoYXNlIHRoZSByb290IGNhdXNlcyBv ZiBpbnRlcnJ1cHRzIHRoYXQgdGFzaw0KaXNvbGF0aW9uIGNhbiBzZWUuDQoNCk5vdyB0aGF0IEkg aGF2ZSBmdW5jdGlvbnMgd2hlcmUgYWxsIGtlcm5lbCBlbnRyeSBhbmQgZXhpdCBwYXNzZXMgZm9y DQppc29sYXRlZCB0YXNrcywgYW5kIHNvbWUgZWFzaWx5IHJlYWRhYmxlIGluZGljYXRpb24gb2Yg YW4gaXNvbGF0ZWQgQ1BVLA0KaXQgc2hvdWxkIGJlIGVhc3kgdG8gY29sbGVjdCBib3RoICJXZSBh cmUgZ29pbmcgdG8gc2VuZCBhbiBJUEkgdG8gYQ0KdGFzayBpbiB0aGlzIHNwZWNpYWwgc3RhdGUg YmVjYXVzZS4uLiIgYW5kICJXZSBhcmUgZG9pbmcgc29tZXRoaW5nDQpzcGVjaWZpYyBpbiBrZXJu ZWwsIGFuZCBpdCBoYXBwZW5zLCBvdXIgdGFzayB3YXMgaW4gdGhpcyBzcGVjaWFsDQpzdGF0ZSIu IEl0IG1heSBiZSB0aGF0IGp1c3QgdXNpbmcgdHJhY2luZyB0aGlzIGNhbiBiZSBkb25lIGFzIHdl bGwsDQpob3dldmVyIGlmIHdlIHdpbGwgZXhwYW5kIGNvbmRpdGlvbnMgZm9yIGNhdXNlIHJlY29y ZGluZyBiZXlvbmQganVzdA0KZnVsbHkgaXNvbGF0ZWQgdGFzaywgYSBzZXBhcmF0ZSByZWNvcmRp bmcgbWVjaGFuaXNtIHdvdWxkIGJlIGFibGUgdG8NCmNvbGxlY3QgdXNlZnVsIGluZm9ybWF0aW9u IGFuZCBzdGF0aXN0aWNzIHdpdGggbGVzcyBvZiBpdHMgb3duIGltcGFjdA0Kb24gbGF0ZW5jeSBh bmQgcGVyZm9ybWFuY2UuIEF0IGxlYXN0LCBJIHRoaW5rLCBpdCBtYWtlcyBzZW5zZSB0byB0cnkN CnNlcGFyYXRlbHkgZnJvbSB0YXNrIGlzb2xhdGlvbiBpbXBsZW1lbnRhdGlvbiBpdHNlbGYsIHRo YXQgbm8gbG9uZ2VyDQpkZXBlbmRzIG9uIGtub3dpbmcgd2h5IGtlcm5lbCB3YXMgZW50ZXJlZC4N Cg0KQXMgZm9yIG1lYXN1cmluZyBsYXRlbmN5LCBhcyBJIGhhdmUgbWVudGlvbmVkIGJlZm9yZSwg aXQncyBub3QganVzdCB0aGUNCmltcGFjdCBvZiB0aW1lIGJlaW5nIHNwZW50IGluIGtlcm5lbCBp biBpbnRlcnJ1cHQgcHJvY2Vzc2luZyB0aGF0DQptYXR0ZXJzLCBpdCdzIGFsc28gYWxsIHRoZSBt ZW1vcnkgdGhhdCBpcyBiZWluZyBhY2Nlc3NlZCBpbiB0aGUgcHJvY2Vzcw0Kb2YgZG9pbmcgc28s IGFuZCB3aGF0ZXZlciBwZXJmb3JtYW5jZS1hZmZlY3RpbmcgY2hhbmdlcywgc3VjaCBhcyBUTEIN CmZsdXNoZXMgb3IgZXhwZWN0ZWQgZGVsYXllZCB3b3JrLCB0aGF0IG1hZGUgdGhlIGNhbGwgbmVj ZXNzYXJ5IGluIHRoZQ0KZmlyc3QgcGxhY2UuIEFuZCBmb3Igbm9uLWlzb2xhdGVkIHRhc2tzIHRo ZXJlIGlzIGFsc28gYSBwb3NzaWJpbGl0eSBvZg0KcHJlZW1wdGlvbiB0aGF0IGNhbiBmdXJ0aGVy IGNvbXBsaWNhdGUgdGhlIHBpY3R1cmUgd2l0aCB0aW1pbmcuDQoNCj4gDQo+ID4gYW5kIGl0IG1h eSBtYWtlIHNlbnNlIHRvIGFsbG93ICJhbG1vc3QgaXNvbGF0ZWQNCj4gPiB0YXNrcyIgdGhhdCBz dGlsbCByZWNlaXZlIG5vcm1hbCBpbnRlcnJ1cHRzLCBpbmNsdWRpbmcgSVBJcyBhbmQNCj4gPiBw YWdlDQo+ID4gZmF1bHRzLiANCj4gPiANCj4gPiBXaGlsZSB0aGF0IHdvdWxkIGJlIHVzZWxlc3Mg Zm9yIHRoZSBwdXJwb3NlcyB0aGF0IHRhc2sNCj4gPiBpc29sYXRpb24gcGF0Y2ggd2FzIGRldmVs b3BlZCBmb3IsIEkgcmVjb2duaXplIHRoYXQgc29tZSBtaWdodA0KPiA+IHByZWZlcg0KPiA+IHRo YXQgdG8gYmUgb25lIG9mIHRoZSBvcHRpb25zIHNldCBieSB0aGUgc2FtZSBwcmN0bCBjYWxsLiBU aGlzDQo+ID4gc3RpbGwNCj4gPiByZW1haW5zIGNsb3NlIGVub3VnaCB0byB0aGUgZGVzaWduIG9m IHRhc2sgaXNvbGF0aW9uIC0tIHNhbWUgaWRlYQ0KPiA+IG9mDQo+ID4gc29tZXRoaW5nIHRoYXQg YWZmZWN0cyBDUFUgYnV0IGJlaW5nIHRpZWQgdG8gYSBnaXZlbiB0YXNrIChhbmQNCj4gPiBkeWlu Zw0KPiA+IHdpdGggaXQpLCBzYW1lIG1vZGVsIG9mIGhhbmRsaW5nIGF0dHJpYnV0ZXMsIGV0Yy4N Cj4gPiANCj4gPiBNYXliZSB0aGVyZSBjYW4gYmUgYSBtYXNrIG9mIHdoYXQgd2UgZG8gYW5kIGRv bid0IHdhbnQgdG8gYXZvaWQgZm9yDQo+ID4gdGhlDQo+ID4gdGFzay4gU2F5LCBzb21lIG1heSB3 YW50IHRvIG9ubHkgYWxsb3cgcGFnZSBmYXVsdHMgb3Igc3lzY2FsbHMuIE9yDQo+ID4gcmUtDQo+ ID4gZW50ZXIgaXNvbGF0aW9uIG9uIGJyZWFraW5nIHdpdGhvdXQgbm90aWZ5aW5nIHRoZSB1c2Vy c3BhY2UuDQo+IA0KPiBPSywgaSB3aWxsIHRyeSB0byBjb21lIHVwIHdpdGggYW4gaW50ZXJmYWNl IHRoYXQgYWxsb3dzIGFkZGl0aW9uYWwgDQo+IGF0dHJpYnV0ZXMgLSBwbGVhc2UgcmV2aWV3IGFu ZCBsZXQgbWUga25vdyBpZiBpdCB3b3JrcyBmb3IgdGFzaw0KPiBpc29sYXRpb24gcGF0Y2hzZXQu DQoNCkkgdGhpbmssIGluIGFkZGl0aW9uIHRvIGVuYWJsZS9kaXNhYmxlIGFuZCBjb25maWd1cmlu ZyBhIHNpZ25hbCB3ZSB3aWxsDQpuZWVkIHNvbWUgZmxhZ3MgdGhhdCBlbmFibGUgYW5kIGRpc2Fi bGUgZmVhdHVyZXMsIHN1Y2ggYXMgZnVsbA0KaXNvbGF0aW9uIGFuZCBhdm9pZGFuY2Ugb2Ygc3Bl Y2lmaWMgZXZlbnRzIGFuZCBjYXVzZXMsIGxvZ2dpbmcgKGlmDQpzdXBwb3J0ZWQpLCBldGMuDQoN Cj4gDQo+IENhbiB5b3UgdGFsayBhIGxpdHRsZSBhYm91dCB0aGUgc2lnbmFsIGhhbmRsaW5nIHBh cnQ/IFdoYXQgdHlwZQ0KPiBvZiBhcHBsaWNhdGlvbnMgYXJlIGV4cGVjdGVkIHRvIHBlcmZvcm0g b25jZSBpc29sYXRpb24gaXMgYnJva2VuPw0KDQpGaXJzdCBhbmQgZm9yZW1vc3QsIGEgdGFzayBt YXkgYmUga2lsbGVkIGJlY2F1c2UgYSBzaWduYWwgd2FzIHNlbnQgdG8NCml0IGJ5IGFub3RoZXIg dGFzaywgdGVybWluYWwsIHNvY2tldCBvciBwaXBlLiBUaGVuIGl0J3MgY29tcGxldGVseQ0Kbm9y bWFsIHNpZ25hbCBwcm9jZXNzaW5nLCBwb3NzaWJseSBhIHVzZXJzcGFjZSBjbGVhbnVwLCByZWxv YWRpbmcsDQpldGMuLCBleGNlcHQgaXNvbGF0aW9uIGJyZWFraW5nIGhhcHBlbnMgb24ga2VybmVs IGVudHJ5Lg0KDQpTZWNvbmQsIGFwcGxpY2F0aW9uIG1heSBlbmNvdW50ZXIgYW4gZWFybHkgZXhp dCBmcm9tIGlzb2xhdGlvbg0KaW1tZWRpYXRlbHkgYWZ0ZXIgZW50ZXJpbmcgYmVjYXVzZSBzb21l IGtlcm5lbCBldmVudCB0aGF0IHdhcyBzdXBwb3NlZA0KdG8gY2F1c2UgSVBJcyB0byBhbGwgbm9u LWlzb2xhdGVkIHRhc2tzLCBoYXBwZW5lZCB3aGlsZSBpdCB3YXMNCmVudGVyaW5nLiBUaGVuIGFs bCBpdCBoYXMgdG8gZG8gaXMgcmUtZW50ZXIuDQoNClRoaXJkLCBhbmQgdGhpcyBpcyB3aGF0IEkg ZG8gaW4gbGlidG1jLCBpc29sYXRpb24gYnJlYWtpbmcgaXMgaGFuZGxlZA0KYnkgbm90aWZ5aW5n IGEgc2VwYXJhdGUgaXNvbGF0aW9uIG1hbmFnZXIgdGhyZWFkIG9yIHByb2Nlc3MsIHNvIGl0IGNh bg0KY2hlY2sgdGhlIHN0YXRlIG9mIHRhc2tzIGFuZCB0aW1lcnMsIGFuZCBkZWNpZGUgaWYgYW5k IHdoZW4gaXQgc2hvdWxkDQphdHRlbXB0IHJlLWVudGVyLCBhc2sgdGhlIHRhc2sgdG8gbGVhdmUg YW5kIHJlLWVudGVyIHRoZSBDUFUsIGV0Yy4gSQ0Kd2lsbCBiZSBoYXBwaWVyIGlmIHRob3NlIGFj dGlvbnMgYmVjYW1lIHVubmVjZXNzYXJ5LCBob3dldmVyIGZvciBub3cNCml0J3MgdGhlIGVhc2ll c3Qgd2F5IHRvIGNoZWNrIGlmIGFueXRoaW5nIGFuZCB3aGF0IGluIHBhcnRpY3VsYXIgbWF5DQpw cmV2ZW50IHRoZSB0YXNrIGZyb20gZW50ZXJpbmcgaXNvbGF0aW9uLiBNYXliZSBpdCB3aWxsIG1h a2Ugc2Vuc2UgdG8NCm1ha2UgbGlidG1jIHVzZSBwdHJhY2UoKSBvbiBhIHRhc2sgZnJvbSBpc29s YXRpb24gbWFuYWdlciwgc28gaXNvbGF0aW9uDQptYW5hZ2VyIHdpbGwgaGFuZGxlIHRoYXQgc2ln bmFsIHdoZW4gbmVjZXNzYXJ5LCBhbmQgdGhlbiBub3RpZnkgdGhlDQp0YXNrLg0KDQpBcyBhbiBh bHRlcm5hdGl2ZSBJIGhhdmUgYWRkZWQgYSBzaW1wbGUgcmVhZGFibGUgaXNvbGF0aW9uIG1hc2sg dGhhdA0KY2FuIGJlIGNoZWNrZWQgYnkgcHJvY2Vzc2VzIChvbmVzIHRoYXQgYXJlIG5vdCBpc29s YXRlZCkgc3VjaCBhcw0KaXNvbGF0aW9uIG1hbmFnZXIsIGFuZCBpZiB0aGVyZSB3aWxsIGJlIGEg c2VwYXJhdGUgbWVjaGFuaXNtIGZvcg0KcmVwb3J0aW5nIGlzb2xhdGlvbiBicmVha2luZywgaXQg bWF5IGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUgc2lnbmFsIChhbmQNCnRoZW4gaXNvbGF0aW9uIG1h bmFnZXIgd2lsbCBiZSBhYmxlIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIHRhc2sgdXNpbmcNCnNo YXJlZCBtZW1vcnksIHNpZ25hbCBvciBvdGhlciBtZWFucykuDQoNClRoZSBvcmlnaW5hbCBwYXRj aCB1c2VkIGEgc2lnbmFsLCBhbmQgSSBjYW4ndCBwcmVkaWN0IHdoYXQgZWxzZSB1c2Vycw0KbWF5 IHdhbnQgdG8gZG8gb24gaXNvbGF0aW9uIGJyZWFraW5nLCBzbyBJIGhhdmUga2VwdCB0aGF0IGlu dGVyZmFjZQ0KdW5jaGFuZ2VkLg0KDQotLSANCkFsZXgNCg0KDQoNCg0K