Received: by 2002:a05:7412:b101:b0:e2:908c:2ebd with SMTP id az1csp2537678rdb; Wed, 15 Nov 2023 03:56:47 -0800 (PST) X-Google-Smtp-Source: AGHT+IFcQ1SyNEoZMyfE6dPPrxA/55SkQ0+UwTxUJojbvTmwCnT0/ZkG9eecG/5WihqNj4JB4+5o X-Received: by 2002:a17:902:ea10:b0:1cc:51ca:52e5 with SMTP id s16-20020a170902ea1000b001cc51ca52e5mr5451519plg.44.1700049407354; Wed, 15 Nov 2023 03:56:47 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1700049407; cv=pass; d=google.com; s=arc-20160816; b=ehfITf2BYKibV3EQNM0Li6K1GgPph+bBkv8rDDbge/7SSIqYvg/BearkOGEEsgVwQz 7qqj37rAxeGYULfMG7Ve3xoiGCuMu8huVJC4Tpg9t35h6rIHt+dbueIu1UFdRwJAAv9C g834z2dGktk6z1/cnJ/MFOflG7XIrf5UjKXb/fZ1h35MCsfdaYhiuMqovhIyu/cTx8ZL vkf6h38e6k44nbfww3qXhGHdOSo76EXHqS08K6skzRo6gqtxsa0O6Y0ypIwpLTbts23w 4d/Y+upml3tfsl9fzGhssSYQEruf0dpP0JEuub2kimjgBv7FBbcOWgi2WCgZCHFwV8gb Rqwg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=qt6Xt2panvsQSHWrpYfXGmbZ4rmxHhb7wFWSuIX3RhQ=; fh=LilY8g01P5qNetjBG00eNONo1fMmlBC9y3cs14pqRxc=; b=0u6WL8R9KyBaW2oOrzWcx9XUfd0xiPWAyeKQEZVFc5riYRn9MWi9/UZ5r6aYJNLvmH 2CcpnVn/gn1k5EBmihKDMewXYgpYea21VH12xx3NTt2aOVehZFz4HGHgjYgG9Djps1o2 YL8s5kbQzVqjjr9MblLIdi/7mig47gwNkXrjdDYKHTn/J44z9KHD0ZdwQ2m7Pn5WXKP8 99NhdMfm3NwWg6k6Jd2b8d7LrALDNXU66x//dtTHAZywFSdFgMvmkIhBVdN7nqzPSOu6 nwb8+MyDz6Lydhj8X3X8Cs8FDy5kXOsBI+6AZXQBdQz0+b/2HbgyUj6dEdXleThcAFjJ DzYg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oppo.com header.s=selector1 header.b="Nbb/ITD4"; arc=pass (i=1 spf=pass spfdomain=oppo.com dkim=pass dkdomain=oppo.com dmarc=pass fromdomain=oppo.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=oppo.com Return-Path: Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id bg12-20020a1709028e8c00b001c73626a1ffsi10003682plb.412.2023.11.15.03.56.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Nov 2023 03:56:47 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@oppo.com header.s=selector1 header.b="Nbb/ITD4"; arc=pass (i=1 spf=pass spfdomain=oppo.com dkim=pass dkdomain=oppo.com dmarc=pass fromdomain=oppo.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=oppo.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 32AD8801BAA9; Wed, 15 Nov 2023 03:56:34 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343649AbjKOLzy (ORCPT + 99 others); Wed, 15 Nov 2023 06:55:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59316 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1343661AbjKOLzj (ORCPT ); Wed, 15 Nov 2023 06:55:39 -0500 Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01on2074.outbound.protection.outlook.com [40.107.117.74]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 65C5F181; Wed, 15 Nov 2023 03:55:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZdZP1CDI8HaxQxgCZh1p2L+TuZ/8mNRAdDyeFLYuvXiw56GpFxXbHR5cnP3nBoWXhOR2OLq5sb7MmZnEFFRyW1TQxUvr3TCq0HSjP5XTaJis/el5lUio8xQ2cMNc2UeCamB/KjGLlV/K9QSgWK+5e06REqdZ/sfs0JPQK0qDBJA0ZrdFHXHCMpeQ6jq6foLhw4RxZQSoLg35hbzx1QGao5UhE2eaZAbkXpZYHBW1Pu8nhM7XTeSFC8WadNwizcp9KZ/waobqpxfSC6bzO+eZAoCzimdueIZXQnJcWzv1WrdS9Js/j4858qNL4DNvenqdCdrfPHJAfzT0yisVpXsyoA== 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=qt6Xt2panvsQSHWrpYfXGmbZ4rmxHhb7wFWSuIX3RhQ=; b=gIsFRZIQ37gqYV4vY3m+csv3QaiYw7WX5kIQGFsm3J2hwXekR0pNAE9jQR4Dkc6B8OaDBnNi1aMeXZfTDBOLD8+8XB6YAON/SiCEDOr66WYzQdeMf2cl0nay7bZrVlmyPT9KvWUCcKlD07p6vNXkmdwTzw7LDUvoIIW4gnRs6sn/g6eAaGUpQzImCPFFcItmdalbADmL3N0Tst4yvP7NT49pKQAmm+w5nSbZIAmJEvvP2qmYXgMw8nn3tWmnBPdF/J497v2b2+eCROQovPMvnHQlXQ49FEVtwUwA81YFgL3lSlSn3nunlJ23RkV7r1+uy90diM479vXcomfpJNFRAw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oppo.com; dmarc=pass action=none header.from=oppo.com; dkim=pass header.d=oppo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oppo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qt6Xt2panvsQSHWrpYfXGmbZ4rmxHhb7wFWSuIX3RhQ=; b=Nbb/ITD4q5+5DGnrmfS3vJ5psZS2hdywvSvJwgd5lxEk4E8wg2K5RJ6SbG2IENbWceL85pWDBCIoq6Vwj6KmW6miarDI2o8ElEowtT66QpdbUC0uRVMIQR57I7cQSRNJYbrT6vIhDrrUHQGSE+Q1AaNxoNJ8kC2Tp/Qg3g+WJ1E= Received: from SEYPR02MB5653.apcprd02.prod.outlook.com (2603:1096:101:56::11) by SEZPR02MB6583.apcprd02.prod.outlook.com (2603:1096:101:12f::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6977.31; Wed, 15 Nov 2023 11:55:30 +0000 Received: from SEYPR02MB5653.apcprd02.prod.outlook.com ([fe80::164b:4e8c:754e:f133]) by SEYPR02MB5653.apcprd02.prod.outlook.com ([fe80::164b:4e8c:754e:f133%4]) with mapi id 15.20.6977.028; Wed, 15 Nov 2023 11:55:30 +0000 From: =?utf-8?B?6buE5YaN5ry+KEpveXlvdW5nIEh1YW5nKQ==?= To: Mukesh Ojha , "myungjoo.ham@samsung.com" , "kyungmin.park@samsung.com" , "cw00.choi@samsung.com" CC: "linux-pm@vger.kernel.org" , "linux-kernel@vger.kernel.org" , huangzaiyang Subject: =?utf-8?B?5Zue5aSNOiBbUEFUQ0hdIFBlcmZvcm1hbmNlOiBkZXZmcmVxOiBhdm9pZCBk?= =?utf-8?Q?evfreq_delay_work_re-init_before?= Thread-Topic: [PATCH] Performance: devfreq: avoid devfreq delay work re-init before Thread-Index: AQHaE7ktw9S+4MHEbkGRU6+y80L/AbB5wDqAgAAUYICAAXhpwA== Date: Wed, 15 Nov 2023 11:55:30 +0000 Message-ID: References: <20231110093457.458-1-huangzaiyang@oppo.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oppo.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SEYPR02MB5653:EE_|SEZPR02MB6583:EE_ x-ms-office365-filtering-correlation-id: 67573574-f379-4b9e-7eb0-08dbe5d1c3fc x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Nxti+AFEXT7fkngWDDsb9AcF7P2zD6qb2OTQ0F/XY0CBAZ0CmdOmFICfHizhqt19fdqtxnAhxqeFT6iKUN7Om2+FAiuOcpParm8UhG2nDbBpvfETtsV8ES2QDn9VgOnwg35lDsML5quu41uTceLdF8MSi8cKQpM8CXkSzZFI0/ju+HQUbJvazKD1h0MO+IEjI9ZkyPjOwozI6aS55JZ/W7hycAJMjGjeEfamdXEXaoM2/X9lmF8j80myan38tRkhK3Ap2RQJPU2CF4v1bRQCns+g3gNIM1hvCuJfSkXY8rhKfzedxxOuqeUFyfIhRU6QJ/t6c81JF58QBkjT1rtPOn24JDdWAYaumknWBqF5cPBAT8szViYW0e2f2oiLKGA+dUuGCtUgIF2ERZwtoEAFvOnrlc3cuMFn1bcoiLxZGDKMA+P+vqYN/kkmgHkKIVrNKOXr12asYldNXPzrno5gCjmUt6dDBuhDo6pGb+SuOQgq4uWzxy1m2FLUV5JRBBRGKCw9APKjvpv+zY/JxMX5pzh7s8ATCVtUhVvGkxwtvCxW4iv7bfA1+rpld9NhKZpIBDyFvfEqBS595sxap4fpCnhTgcpkx08SYuepvSRvVVE= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SEYPR02MB5653.apcprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(39860400002)(346002)(376002)(396003)(366004)(230922051799003)(451199024)(64100799003)(1800799009)(186009)(83380400001)(567974003)(30864003)(26005)(224303003)(122000001)(85182001)(38100700002)(33656002)(38070700009)(86362001)(2906002)(41300700001)(4326008)(8936002)(71200400001)(966005)(478600001)(55016003)(53546011)(7696005)(6506007)(52536014)(54906003)(66476007)(64756008)(76116006)(66556008)(66446008)(110136005)(66946007)(316002)(5660300002)(9686003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aGpvSTlhd2JYcEdyNzNvSnFQYmFMTWh6OHJhUTVKK01mZ2RCRFd1azZXeUdl?= =?utf-8?B?ZHlwZTNwMDV0K2dGNU9xNlB1TE5yb0Z3UGc1VmFoNU5kalFuQ2tsMlZ2ZjNC?= =?utf-8?B?U0lPYXVmRVI2SVpuSGkzek51cDhzeGtXZUlhZVcza3d1OHRicmVKSk4wMmVN?= =?utf-8?B?M2ZuSi96RGhoR3IwcjdpT0VhOHZGZkZidGp2UFlTdTcxSHdsR2JCVlgyRDc5?= =?utf-8?B?N2NzSVNFZWRRQlRXRnFtMFJ0R2NnY01oVk9OdGgwOVhsbDM4eWhvRDlvSHNF?= =?utf-8?B?QUFEUVo5NGgyQlN2dVdrc0lwUE8wQ0dhVGdUY2tkNDNCZElMY2VLVlEwR0M1?= =?utf-8?B?ZExZa3pRd01NVCtwZllLdDdhRks4K29KWXpGSmRLOCs4a04yS2g1Z2twd0I4?= =?utf-8?B?UzZUNVFrN29tNmgrS0IwODhxN2xDei9OK1E2TXYyVkUybW5IT1NoekY0U0ps?= =?utf-8?B?VGhtakNSbFNzLytneTErM255c0pkNEJGYTJvd0Z5SnVuK3AzbDBsVUl2OHQz?= =?utf-8?B?ZUtKZjcyZzhObkt3aEZPRUNSODM5Lzh0ZktSSFpTMURzK3BXUjUyb1htbjBD?= =?utf-8?B?djR4R093bEtPeU1zN3ZTM0tqZE5zNm1WdW00T2pDUUhDcGk1ZGVpUmxKREFw?= =?utf-8?B?MnRGSVBBVXdBZklVaEIxWURFcHFoQ2Joak1KTmQ2ZWQ2VzZjNFRqaDd3OWtq?= =?utf-8?B?SHNaV2NTS3AyeUVVekR3UGJDMDJ6UFdYQkU3bG9OZlRONG1TRTNpTFlsaWVa?= =?utf-8?B?TmIwelYrZVBJcDdtenlNMlRTNU9mS3NtNU5xZnVSd0s0T0I4RFJNZEhmcUNr?= =?utf-8?B?dVJpL2JDeGpQUGozc1h4S0xrK1pVdyt6dXF4aGlXZHIyY0hnWUhsVzFBZFdW?= =?utf-8?B?NjV3cjNRdzIzMC9mZmduNytlK01CdlFQSjlkRmJnU3BOd2g4Y1ErcXVSbE42?= =?utf-8?B?Mmt2QmZYNFBLZzlIR0RTOXZGSXZmbXgrZnI1aFFiekR6YUFJMHQ1blA1Ukkx?= =?utf-8?B?Nm1ySGF6a3VtaW4yNDViQWxTRFFWMTk5dUxnSCtTaFY1NVNhcGd2UEkzNXpw?= =?utf-8?B?alEwL1JMNjVjZkU0Y01ETHZTRW1xeHJnTW1GMWhUMWZmVFBYK3QwVStIVGVt?= =?utf-8?B?QW5VWEY5elN5UXBCVlowMndqZFNLS09yYXFLcExEQjJVRlN6ekZBL3dtNWtF?= =?utf-8?B?czBvNSt6dWZienY5R0Y2WGd3aHhuTmwxWWdYL0ZmUVJFbnpoNkNEUndoVDgw?= =?utf-8?B?WW41ODR2Q0c1a3VaNS9RaWs2OGVJei9SNHplTTBwRU1MSURQUktUZDZiR0ha?= =?utf-8?B?U3pRZnVldUhKdHlld1loaTlHbFErSXlRVkJjRTVQZitZbkI5VisxM0Jqa0x3?= =?utf-8?B?Zys0WHdjSWpWbzYwQVlZbFF3cHdpakZTLy9vVDExWVdLZ1ZHbms5dStnWDhT?= =?utf-8?B?cERUeHNBQ2k3L01BTzBUenNIa0JZTmNJOW80UlJMOHVVcXVtZlRFaVVtWjFN?= =?utf-8?B?UTg1TEp2NGo0MlViMmJRR2Y2MUx3aHRUdU1ueW5ZUk9iR1phOEowcUtOT2R6?= =?utf-8?B?VzdHVnFlTGhhaTJQZ0tNSlRad1N1MzVucFpQYnRJM1NEZ0xHSisrQlkwVTN5?= =?utf-8?B?aDZzSVlSdTRvdHFkVXdRNTRCbkdZWHJsd0RUOFlnUHNweHlRUkFleG13QVVu?= =?utf-8?B?VklYaGJVYWdtZC8xV0dkblhjUi96d3RHaUcvYS85VGZGQ1JOclY1M1ZWMXRO?= =?utf-8?B?R1Y4VGZPMmVsSEpkYitHU2Y1YzhMaHVIRWRXMzVoTnNOR05YL1lKNWdjRkM1?= =?utf-8?B?YlkzZHp4T0VheUpiaDU5ZThITkFQSi9Nall6NThCN2VDZ3EyK3l2NkZhOGJU?= =?utf-8?B?bXFWNVh2Zk5XOG9ybDZEaGg5VkxXYWZvRVIyWXA2TXg2NCtvSzAzYXNHNVJn?= =?utf-8?B?VklISi80Zlh3UFNYSFdCMTNRMWVWMEVsdjQ0SDBMdWpqSmJxQzVXRU8xVG84?= =?utf-8?B?am5DZ2tObjRFV3M1bjBEVVYwZlhDOXpCa1JUUHpnaTVhMlVSVm9lbEk5a3ZF?= =?utf-8?B?RjJpRDlrUlBTNThtSG5JN1NsWWJSZEowUHZBc3VaSEhOem1NOUd6N0JyVTBr?= =?utf-8?Q?HRBuBiDifJIFfUwby3fG1/ZmQ?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: oppo.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SEYPR02MB5653.apcprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 67573574-f379-4b9e-7eb0-08dbe5d1c3fc X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2023 11:55:30.2052 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f1905eb1-c353-41c5-9516-62b4a54b5ee6 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: UCsOqOqAohcxpqGX0Y+N0Sq1a/Nw773Eid0IBdh6mDEVAxWKtFOj4YzBijsZcf8hE8xi9hh+NWUXqo4tMS+GJg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR02MB6583 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Wed, 15 Nov 2023 03:56:34 -0800 (PST) SGkgTXVrZXNoDQpJIHRyeSB0aGUgYmVsb3cgcGF0Y2ggb24gbXkgc2lkZe+8jGlzc3VlIHN0aWxs IGhhcHBlbmVkIO+8m2J1dCBJIGFtIHdvcmtpbmcgb24ga2VybmVsIDUuMTAuDQpodHRwczovL2xv cmUua2VybmVsLm9yZy9hbGwvMTY5OTk1NzY0OC0zMTI5OS0xLWdpdC1zZW5kLWVtYWlsLXF1aWNf bW9qaGFAcXVpY2luYy5jb20vDQoNCkkgd2lsbCB0cnkgdG8gZGVidWcgdGhlIHBhdGNoIG9uIG15 IHNpZGUgLCBJIHdpbGwgdXBkYXRlIHlvdSB3aGVuIHRoZXJlIGlzIG5ldyBwcm9ncmVzcy4NCg0K DQotLS0tLemCruS7tuWOn+S7ti0tLS0tDQrlj5Hku7bkuro6IOm7hOWGjea8vihKb3l5b3VuZyBI dWFuZykgDQrlj5HpgIHml7bpl7Q6IDIwMjPlubQxMeaciDE05pelIDIxOjM3DQrmlLbku7bkuro6 IE11a2VzaCBPamhhIDxxdWljX21vamhhQHF1aWNpbmMuY29tPjsgbXl1bmdqb28uaGFtQHNhbXN1 bmcuY29tOyBreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tOyBjdzAwLmNob2lAc2Ftc3VuZy5jb20N CuaKhOmAgTogbGludXgtcG1Admdlci5rZXJuZWwub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJu ZWwub3JnOyBodWFuZ3phaXlhbmcgPGpveXlvdW5nLndhbmdAZ21haWwuY29tPg0K5Li76aKYOiDl m57lpI06IFtQQVRDSF0gUGVyZm9ybWFuY2U6IGRldmZyZXE6IGF2b2lkIGRldmZyZXEgZGVsYXkg d29yayByZS1pbml0IGJlZm9yZQ0KDQoNCk9uIDExLzEwLzIwMjMgMzowNCBQTSwgaHVhbmd6YWl5 YW5nIHdyb3RlOg0KPiBGcm9tOiBodWFuZ3phaXlhbmcgPGpveXlvdW5nLndhbmdAZ21haWwuY29t Pg0KPiANCj4gVGhlcmUgaXMgYSB0aW1lcl9saXN0IHJhY2UgY29uZGl0aW9uIHdoZW4gZXhlY3V0 aW5nIHRoZSBmb2xsb3dpbmcgdGVzdCBzaGVsbCBzY3JpcHQ6DQo+ICcnJw0KPiB3aGlsZSB0cnVl DQo+IGRvDQo+ICAgICAgICAgIGVjaG8gInNpbXBsZV9vbmRlbWFuZCIgPiAvc3lzL2NsYXNzL2Rl dmZyZXEvMWQ4NDAwMC51ZnNoYy9nb3Zlcm5vcg0KPiAgICAgICAgICBlY2hvICJwZXJmb3JtYW5j ZSIgPg0KPiAvc3lzL2NsYXNzL2RldmZyZXEvMWQ4NDAwMC51ZnNoYy9nb3Zlcm5vcg0KPiBkb25l DQo+ICcnJw0KPiANCj4gWzEzNTExLjIxNDM2Nl1bICAgIEMzXSBVbmFibGUgdG8gaGFuZGxlIGtl cm5lbCBwYWdpbmcgcmVxdWVzdCBhdCB2aXJ0dWFsIGFkZHJlc3MgZGVhZDAwMDAwMDAwMDEyYQ0K PiBbMTM1MTEuMjE0MzkzXVsgICAgQzNdIE1lbSBhYm9ydCBpbmZvOg0KPiBbMTM1MTEuMjE0Mzk4 XVsgICAgQzNdICAgRVNSID0gMHg5NjAwMDA0NA0KPiBbMTM1MTEuMjE0NDA0XVsgICAgQzNdICAg RUMgPSAweDI1OiBEQUJUIChjdXJyZW50IEVMKSwgSUwgPSAzMiBiaXRzDQo+IFsxMzUxMS4yMTQ0 MDldWyAgICBDM10gICBTRVQgPSAwLCBGblYgPSAwDQo+IFsxMzUxMS4yMTQ0MTRdWyAgICBDM10g ICBFQSA9IDAsIFMxUFRXID0gMA0KPiBbMTM1MTEuMjE0NDE3XVsgICAgQzNdIERhdGEgYWJvcnQg aW5mbzoNCj4gWzEzNTExLjIxNDQyMl1bICAgIEMzXSAgIElTViA9IDAsIElTUyA9IDB4MDAwMDAw NDQNCj4gWzEzNTExLjIxNDQyN11bICAgIEMzXSAgIENNID0gMCwgV25SID0gMQ0KPiBbMTM1MTEu MjE0NDMyXVsgICAgQzNdIFtkZWFkMDAwMDAwMDAwMTJhXSBhZGRyZXNzIGJldHdlZW4gdXNlciBh bmQga2VybmVsIGFkZHJlc3MgcmFuZ2VzDQo+IFsxMzUxMS4yMTQ0MzldWyAgICBDM10gSW50ZXJu YWwgZXJyb3I6IE9vcHM6IDk2MDAwMDQ0IFsjMV0gUFJFRU1QVCBTTVANCj4gWzEzNTExLjIxNTQ0 OV1bICAgIEMzXSBDUFU6IDMgUElEOiAwIENvbW06IHN3YXBwZXIvMyBUYWludGVkOiBHIFMgICAg ICBXICBPICAgICAgNS4xMC4xNjgtYW5kcm9pZDEyLTktby1nNjNjYzI5N2E3YjM0ICMxDQo+IFsx MzUxMS4yMTU0NTRdWyAgICBDM10gSGFyZHdhcmUgbmFtZTogUXVhbGNvbW0gVGVjaG5vbG9naWVz LCBJbmMuIENhcGUgTVRQLCBXaGl0ZXN3YW4gKERUKQ0KPiBbMTM1MTEuMjE1NDYwXVsgICAgQzNd IHBzdGF0ZTogODI0MDAwODUgKE56Y3YgZGFJZiArUEFOIC1VQU8gK1RDTyBCVFlQRT0tLSkNCj4g WzEzNTExLjIxNTQ3Ml1bICAgIEMzXSBwYyA6IGV4cGlyZV90aW1lcnMrMHg5Yy8weDQyOA0KPiBb MTM1MTEuMjE1NDc4XVsgICAgQzNdIGxyIDogX19ydW5fdGltZXJzKzB4MWYwLzB4MzI4DQo+IFsx MzUxMS4yMTU0ODNdWyAgICBDM10gc3AgOiBmZmZmZmZjMDA4MDFiZGQwDQo+IFsxMzUxMS4yMTU0 ODddWyAgICBDM10geDI5OiBmZmZmZmZjMDA4MDFiZGYwIHgyODogZmZmZmZmZGI4N2IzMTY5OA0K PiBbMTM1MTEuMjE1NDkzXVsgICAgQzNdIHgyNzogZmZmZmZmZGI4Nzk5OWU1OCB4MjY6IGZmZmZm ZmRiODc5NjYwMDgNCj4gWzEzNTExLjIxNTQ5OV1bICAgIEMzXSB4MjU6IDAwMDAwMDAwMDAwMDAw MDEgeDI0OiBmZmZmZmY4MDAxNzM0YTAwDQo+IFsxMzUxMS4yMTU1MDZdWyAgICBDM10geDIzOiAw MDAwMDAwMDAwMDAwMGUwIHgyMjogZGVhZDAwMDAwMDAwMDEyMg0KPiBbMTM1MTEuMjE1NTEyXVsg ICAgQzNdIHgyMTogMDAwMDAwMDEwMDMyNjU4ZSB4MjA6IGZmZmZmZjg5ZjdhOWFlODANCj4gWzEz NTExLjIxNTUxOF1bICAgIEMzXSB4MTk6IGZmZmZmZmMwMDgwMWJlNTAgeDE4OiBmZmZmZmZjMDA4 MDFkMDM4DQo+IFsxMzUxMS4yMTU1MjVdWyAgICBDM10geDE3OiAwMDAwMDAwMDAwMDAwMjQwIHgx NjogMDAwMDAwMDAwMDAwMDIwMQ0KPiBbMTM1MTEuMjE1NTMyXVsgICAgQzNdIHgxNTogZmZmZmZm ZmZmZmZmZmZmZiB4MTQ6IGZmZmZmZjg5ZjdhOWFlZjgNCj4gWzEzNTExLjIxNTUzOF1bICAgIEMz XSB4MTM6IDAwMDAwMDAwMDAwMDAyNDAgeDEyOiBmZmZmZmY4OWY3YTlhZWE4DQo+IFsxMzUxMS4y MTU1NDRdWyAgICBDM10geDExOiAwMDAwMDAwMDAwMDAwMDIxIHgxMDogMDAwMDAwMDE0MDMyNjU4 ZQ0KPiBbMTM1MTEuMjE1NTUwXVsgICAgQzNdIHg5IDogZmZmZmZmYzAwODAxYmU1MCB4OCA6IGRl YWQwMDAwMDAwMDAxMjINCj4gWzEzNTExLjIxNTU1Nl1bICAgIEMzXSB4NyA6IGZmZmY3MTY0NmM2 ODczNWUgeDYgOiBmZmZmZmY4OWY3YWFhZTU4DQo+IFsxMzUxMS4yMTU1NjNdWyAgICBDM10geDUg OiAwMDAwMDAwMDAwMDAwMDAwIHg0IDogMDAwMDAwMDAwMDAwMDEwMQ0KPiBbMTM1MTEuMjE1NTY5 XVsgICAgQzNdIHgzIDogZmZmZmZmODlmN2E5YWVmMCB4MiA6IGZmZmZmZjg5ZjdhOWFlZjANCj4g WzEzNTExLjIxNTU3NV1bICAgIEMzXSB4MSA6IGZmZmZmZmMwMDgwMWJlNTAgeDAgOiBmZmZmZmY4 MDQ1ODA0NDI4DQo+IFsxMzUxMS4yMTU1ODFdWyAgICBDM10gQ2FsbCB0cmFjZToNCj4gWzEzNTEx LjIxNTU4Nl1bICAgIEMzXSAgZXhwaXJlX3RpbWVycysweDljLzB4NDI4DQo+IFsxMzUxMS4yMTU1 OTFdWyAgICBDM10gIF9fcnVuX3RpbWVycysweDFmMC8weDMyOA0KPiBbMTM1MTEuMjE1NTk2XVsg ICAgQzNdICBydW5fdGltZXJfc29mdGlycSsweDI4LzB4NTgNCj4gWzEzNTExLjIxNTYwMl1bICAg IEMzXSAgZWZpX2hlYWRlcl9lbmQrMHgxNjgvMHg1ZWMNCj4gWzEzNTExLjIxNTYxMF1bICAgIEMz XSAgX19pcnFfZXhpdF9yY3UrMHgxMDgvMHgxMjQNCj4gWzEzNTExLjIxNTYxN11bICAgIEMzXSAg X19oYW5kbGVfZG9tYWluX2lycSsweDExOC8weDFlNA0KPiBbMTM1MTEuMjE1NjI1XVsgICAgQzNd ICBnaWNfaGFuZGxlX2lycS4zMTIzMCsweDZjLzB4MjUwDQo+IFsxMzUxMS4yMTU2MzBdWyAgICBD M10gIGVsMV9pcnErMHhlNC8weDFjMA0KPiBbMTM1MTEuMjE1NjM4XVsgICAgQzNdICBjcHVpZGxl X2VudGVyX3N0YXRlKzB4M2E0LzB4YTA0DQo+IFsxMzUxMS4yMTU2NDRdWyAgICBDM10gIGRvX2lk bGUrMHgzMDgvMHg1NzQNCj4gWzEzNTExLjIxNTY0OV1bICAgIEMzXSAgY3B1X3N0YXJ0dXBfZW50 cnkrMHg4NC8weDkwDQo+IFsxMzUxMS4yMTU2NTZdWyAgICBDM10gIHNlY29uZGFyeV9zdGFydF9r ZXJuZWwrMHgyMDQvMHgyNzQNCj4gWzEzNTExLjIxNTY2NF1bICAgIEMzXSBDb2RlOiBkNTAzMjAx ZiBhOTQwMjQwOCBmOTAwMDEyOCBiNDAwMDA0OCAoZjkwMDA1MDkpDQo+IFsxMzUxMS4yMTU2NzBd WyAgICBDM10gLS0tWyBlbmQgdHJhY2UgNTEwMGJhZDcyYTM1ZDU2NiBdLS0tDQo+IFsxMzUxMS4y MTU2NzZdWyAgICBDM10gS2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6IE9vcHM6IEZhdGFsIGV4 Y2VwdGlvbiBpbiBpbnRlcnJ1cHQNCj4gDQo+IFRoaXMgaXMgYmVjYXVzZSB3aGVuIHN3aXRjaGlu ZyB0aGUgZ292ZXJub3IgdGhyb3VnaCB0aGUgc3lzIG5vZGUsIHRoZSANCj4gZGV2ZnJlcV9tb25p dG9yX3N0YXJ0IGZ1bmN0aW9uIHdpbGwgcmUtaW5pdGlhbGl6ZSB0aGUgZGVsYXllZCB3b3JrIA0K PiB0YXNrLCB3aGljaCB3aWxsIGNhdXNlIHRoZSBkZWxheSB3b3JrIHBlbmRpbmcgZmxhZyB0byBi ZWNvbWUgaW52YWxpZCwgDQo+IGFuZCB0aGUgdGltZXIgcGVuZGluZyBqdWRnbWVudCBjb250YWlu ZWQgaW4gdGhlIGRlbGF5ZWQgd29yayB3aWxsIGFsc28gYmVjb21lIGludmFsaWQsIGFuZCB0aGVu IHRoZSBwZW5kaW5nIGludGVyY2VwdGlvbiB3aWxsIGJlIGV4ZWN1dGVkIHdoZW4gdGhlIHF1ZXVl IGlzIGV4ZWN1dGVkLg0KPiANCj4gU28gd2UgcmVtb3ZlIHRoZSBkZWxheSB3b3JrJ2luaXRpYWxp emF0aW9uIHdvcmsgdG8gdGhlIA0KPiBkZXZmcmVxX2FkZF9kZXZpY2UgYW5kIHRpbWVyX3N0b3Jl IGZ1bmN0aW9ucywgYW5kIHRoZSBkZWxheSB3b3JrIHBlbmRpbmcganVkZ21lbnQgaXMgcGVyZm9y bWVkIGJlZm9yZSB0aGUgZGV2ZnJlcV9tb25pdG9yX3N0YXJ0IGZ1bmN0aW9uIHBlcmZvcm1zIHRo ZSBxdWV1ZSBvcGVyYXRpb24uDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBaYWlZYW5nIEh1YW5nIDxo dWFuZ3phaXlhbmdAb3Bwby5jb20+DQo+IC0tLQ0KPiAgIGRyaXZlcnMvZGV2ZnJlcS9kZXZmcmVx LmMgfCAzNiArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0NCj4gICAxIGZpbGUg Y2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9kZXZmcmVxL2RldmZyZXEuYyBiL2RyaXZlcnMvZGV2ZnJlcS9kZXZmcmVx LmMgDQo+IGluZGV4IGIzYTY4ZDU4MzNiZC4uOGFlNmY4NTNhMjFlIDEwMDY0NA0KPiAtLS0gYS9k cml2ZXJzL2RldmZyZXEvZGV2ZnJlcS5jDQo+ICsrKyBiL2RyaXZlcnMvZGV2ZnJlcS9kZXZmcmVx LmMNCj4gQEAgLTQ4MywxOCArNDgzLDcgQEAgdm9pZCBkZXZmcmVxX21vbml0b3Jfc3RhcnQoc3Ry dWN0IGRldmZyZXEgKmRldmZyZXEpDQo+ICAgICAgICAgIGlmIChJU19TVVBQT1JURURfRkxBRyhk ZXZmcmVxLT5nb3Zlcm5vci0+ZmxhZ3MsIElSUV9EUklWRU4pKQ0KPiAgICAgICAgICAgICAgICAg IHJldHVybjsNCj4gDQo+IC0gICAgICAgc3dpdGNoIChkZXZmcmVxLT5wcm9maWxlLT50aW1lcikg ew0KPiAtICAgICAgIGNhc2UgREVWRlJFUV9USU1FUl9ERUZFUlJBQkxFOg0KPiAtICAgICAgICAg ICAgICAgSU5JVF9ERUZFUlJBQkxFX1dPUksoJmRldmZyZXEtPndvcmssIGRldmZyZXFfbW9uaXRv cik7DQo+IC0gICAgICAgICAgICAgICBicmVhazsNCj4gLSAgICAgICBjYXNlIERFVkZSRVFfVElN RVJfREVMQVlFRDoNCj4gLSAgICAgICAgICAgICAgIElOSVRfREVMQVlFRF9XT1JLKCZkZXZmcmVx LT53b3JrLCBkZXZmcmVxX21vbml0b3IpOw0KPiAtICAgICAgICAgICAgICAgYnJlYWs7DQo+IC0g ICAgICAgZGVmYXVsdDoNCj4gLSAgICAgICAgICAgICAgIHJldHVybjsNCj4gLSAgICAgICB9DQo+ IC0NCj4gLSAgICAgICBpZiAoZGV2ZnJlcS0+cHJvZmlsZS0+cG9sbGluZ19tcykNCj4gKyAgICAg ICBpZiAoZGV2ZnJlcS0+cHJvZmlsZS0+cG9sbGluZ19tcyAmJg0KPiArICFkZWxheWVkX3dvcmtf cGVuZGluZygmZGV2ZnJlcS0+d29yaykpDQo+ICAgICAgICAgICAgICAgICAgcXVldWVfZGVsYXll ZF93b3JrKGRldmZyZXFfd3EsICZkZXZmcmVxLT53b3JrLA0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAgbXNlY3NfdG9famlmZmllcyhkZXZmcmVxLT5wcm9maWxlLT5wb2xsaW5nX21zKSk7DQo+ ICAgfQ0KPiBAQCAtODMwLDYgKzgxOSwxNyBAQCBzdHJ1Y3QgZGV2ZnJlcSAqZGV2ZnJlcV9hZGRf ZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gICAgICAgICAgICAgICAgICBnb3RvIGVycl9k ZXY7DQo+ICAgICAgICAgIH0NCj4gDQo+ICsgICAgICAgc3dpdGNoIChkZXZmcmVxLT5wcm9maWxl LT50aW1lcikgew0KPiArICAgICAgIGNhc2UgREVWRlJFUV9USU1FUl9ERUZFUlJBQkxFOg0KPiAr ICAgICAgICAgICAgICAgSU5JVF9ERUZFUlJBQkxFX1dPUksoJmRldmZyZXEtPndvcmssIGRldmZy ZXFfbW9uaXRvcik7DQo+ICsgICAgICAgICAgICAgICBicmVhazsNCj4gKyAgICAgICBjYXNlIERF VkZSRVFfVElNRVJfREVMQVlFRDoNCj4gKyAgICAgICAgICAgICAgIElOSVRfREVMQVlFRF9XT1JL KCZkZXZmcmVxLT53b3JrLCBkZXZmcmVxX21vbml0b3IpOw0KPiArICAgICAgICAgICAgICAgYnJl YWs7DQo+ICsgICAgICAgZGVmYXVsdDoNCj4gKyAgICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAi JXM6IFRhcmdldCBkZXZmcmVxKCVzKSdzIHByb2ZpbGUgdGltZXIgaGFzIG5vIHNldHRpbmdzIFxu IiwgZGV2ZnJlcS0+Z292ZXJub3JfbmFtZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgX19m dW5jX18pOw0KPiArICAgICAgIH0NCg0KWy4uXQ0KDQo+ICAgICAgICAgIGlmICghZGV2ZnJlcS0+ cHJvZmlsZS0+bWF4X3N0YXRlIHx8ICFkZXZmcmVxLT5wcm9maWxlLT5mcmVxX3RhYmxlKSB7DQo+ ICAgICAgICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZkZXZmcmVxLT5sb2NrKTsNCj4gICAgICAg ICAgICAgICAgICBlcnIgPSBzZXRfZnJlcV90YWJsZShkZXZmcmVxKTsgQEAgLTE4NjAsNiArMTg2 MCwxOCBAQCANCj4gc3RhdGljIHNzaXplX3QgdGltZXJfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwNCj4gICAgICAgICAgZGYtPnByb2ZpbGUt PnRpbWVyID0gdGltZXI7DQo+ICAgICAgICAgIG11dGV4X3VubG9jaygmZGYtPmxvY2spOw0KPiAN Cj4gKyAgICAgICBzd2l0Y2ggKGRmLT5wcm9maWxlLT50aW1lcikgew0KPiArICAgICAgIGNhc2Ug REVWRlJFUV9USU1FUl9ERUZFUlJBQkxFOg0KPiArICAgICAgICAgICAgICAgSU5JVF9ERUZFUlJB QkxFX1dPUksoJmRmLT53b3JrLCBkZXZmcmVxX21vbml0b3IpOw0KPiArICAgICAgICAgICAgICAg YnJlYWs7DQo+ICsgICAgICAgY2FzZSBERVZGUkVRX1RJTUVSX0RFTEFZRUQ6DQo+ICsgICAgICAg ICAgICAgICBJTklUX0RFTEFZRURfV09SSygmZGYtPndvcmssIGRldmZyZXFfbW9uaXRvcik7DQo+ ICsgICAgICAgICAgICAgICBicmVhazsNCj4gKyAgICAgICBkZWZhdWx0Og0KPiArICAgICAgICAg ICAgICAgZGV2X2VycihkZXYsICIlczogVGFyZ2V0IGRldmZyZXEoJXMpJ3MgcHJvZmlsZSB0aW1l ciBoYXMgbm8gc2V0dGluZ3MgXG4iLCBkZi0+Z292ZXJub3JfbmFtZSwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgX19mdW5jX18pOw0KPiArICAgICAgIH0NCj4gKw0KSGVyZSwgdGhpcyBjYW4g Y2F1c2UgaXNzdWUgcmlnaHQsIGFzIGl0IGlzIG1vZGlmeWluZyB0aGUgZGVsYXllZCB3b3JrIGRh dGEgZXZlbiBiZWZvcmUgc3RvcHBpbmcgdGhlIGN1cnJlbnQgcnVubmluZyBpbnN0YW5jZXMuLg0K DQpTaG91bGQgdGhlIGFib3ZlIHRoaW5nIGJlIGRvbmUgYWZ0ZXIgREVWRlJFUV9HT1ZfU1RPUCA/ DQpCdXQgYWdhaW4gaXQgd2lsbCBib2lsIGRvd24gdG8gdGhlIHNhbWUgdGhpbmcgYXMgaXQgaXMg Y3VycmVudGx5IG5vdyAuDQo+ICAgICAgICAgIHJldCA9IGRmLT5nb3Zlcm5vci0+ZXZlbnRfaGFu ZGxlcihkZiwgREVWRlJFUV9HT1ZfU1RPUCwgTlVMTCk7DQo+ICAgICAgICAgIGlmIChyZXQpIHsN Cj4gICAgICAgICAgICAgICAgICBkZXZfd2FybihkZXYsICIlczogR292ZXJub3IgJXMgbm90IHN0 b3BwZWQoJWQpXG4iLA0KLS0+YWdyZWUsIHNlZW1zIGJldHRlciB0byBwdXQgdGhlc2UgY29kZXMg YWZ0ZXIgYWZ0ZXIgREVWRlJFUV9HT1ZfU1RPUCwgYXMgZm9sbG93PyANCkBAIC0xODU2LDEwICsx ODU2LDYgQEAgc3RhdGljIHNzaXplX3QgdGltZXJfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwNCiAJCWdvdG8gb3V0Ow0KIAl9DQogDQotCW11 dGV4X2xvY2soJmRmLT5sb2NrKTsNCi0JZGYtPnByb2ZpbGUtPnRpbWVyID0gdGltZXI7DQotCW11 dGV4X3VubG9jaygmZGYtPmxvY2spOw0KLQ0KIAlyZXQgPSBkZi0+Z292ZXJub3ItPmV2ZW50X2hh bmRsZXIoZGYsIERFVkZSRVFfR09WX1NUT1AsIE5VTEwpOw0KIAlpZiAocmV0KSB7DQogCQlkZXZf d2FybihkZXYsICIlczogR292ZXJub3IgJXMgbm90IHN0b3BwZWQoJWQpXG4iLCBAQCAtMTg2Nyw2 ICsxODYzLDIxIEBAIHN0YXRpYyBzc2l6ZV90IHRpbWVyX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsDQogCQlnb3RvIG91dDsNCiAJfQ0KIA0K KwltdXRleF9sb2NrKCZkZi0+bG9jayk7DQorCWRmLT5wcm9maWxlLT50aW1lciA9IHRpbWVyOw0K Kwlzd2l0Y2ggKGRmLT5wcm9maWxlLT50aW1lcikgew0KKwljYXNlIERFVkZSRVFfVElNRVJfREVG RVJSQUJMRToNCisJCUlOSVRfREVGRVJSQUJMRV9XT1JLKCZkZi0+d29yaywgZGV2ZnJlcV9tb25p dG9yKTsNCisJCWJyZWFrOw0KKwljYXNlIERFVkZSRVFfVElNRVJfREVMQVlFRDoNCisJCUlOSVRf REVMQVlFRF9XT1JLKCZkZi0+d29yaywgZGV2ZnJlcV9tb25pdG9yKTsNCisJCWJyZWFrOw0KKwlk ZWZhdWx0Og0KKwkJZGV2X2VycihkZXYsICIlczogVGFyZ2V0IGRldmZyZXEoJXMpJ3MgcHJvZmls ZSB0aW1lciBoYXMgbm8gc2V0dGluZ3MgXG4iLCBkZi0+Z292ZXJub3JfbmFtZSwNCisJCQlfX2Z1 bmNfXyk7DQorICAgICAgIG11dGV4X3VubG9jaygmZGYtPmxvY2spOw0KKyAgICAgICBnb3RvIG91 dDsNCisJfQ0KKwltdXRleF91bmxvY2soJmRmLT5sb2NrKTsNCisNCiAJcmV0ID0gZGYtPmdvdmVy bm9yLT5ldmVudF9oYW5kbGVyKGRmLCBERVZGUkVRX0dPVl9TVEFSVCwgTlVMTCk7DQogCWlmIChy ZXQpDQogCQlkZXZfd2FybihkZXYsICIlczogR292ZXJub3IgJXMgbm90IHN0YXJ0ZWQoJWQpXG4i LA0KLS0gDQoNCkkgd2FzIHRoaW5raW5nIGlmIGkgcHV0IG11dGV4IGFyb3VuZCBjYW5jZWxfZGVs YXllZF93b3JrX3N5bmMoKSBhcyB3ZWxsIGluIGRldmZyZXFfbW9uaXRvcl9zdG9wKCkgb24gdG9w IG9mIGJlbG93IHBhdGNoLCBzaG91bGQgY292ZXIgdGhlIGNvcnJ1cHRpb24gb2Ygd29ya2RhdGEu DQoNCmh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2FsbC8xNjk5OTU3NjQ4LTMxMjk5LTEtZ2l0LXNl bmQtZW1haWwtcXVpY19tb2poYUBxdWljaW5jLmNvbS8NCg0KLU11a2VzaA0KDQo+IC0tDQo+IDIu MTcuMQ0KDQpSZW1vdmUgdGhlIGVudGlyZSBiZWxvdyB0aGluZy4uPg0KPiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXw0KPiBPUFBPDQo+IA0KPiDCscK+wrXDp8OXw5PDk8OKwrzDvsK8 wrDDhsOkwrjCvcK8w77CusKsw5PDkE9QUE/CucKrw4vCvsK1w4TCscKjw4PDnMOQw4XDj8KiwqPC rMK9w7bDj8Oew5PDmsOTw4rCvMO+w5bCuMODw7fCtcOEw4rDlcK8w77DiMOLwqPCqMKww7zCusKs DQo+IMK4w7bDiMOLwrzCsMOIwrrDl8OpwqPCqcOKwrnDk8ODwqHCo8K9w7vDlsK5w4jDjsK6w47D iMOLw5TDmsOOwrTCvsKtw4rDmsOIwqjCtcOEw4fDqcK/w7bDj8OCw5LDlMOIw47CusOOw5DDjsOK wr3DisK5w5PDg8KhwqPDiMOnwrnDu8OEw7rCtMOtDQo+IMOKw5XDgcOLwrHCvsOTw4rCvMO+wqPC rMOHw5DDjsOwwrTCq8KywqXCocKiwrfDlsK3wqLCocKiwrjCtMOWw4bCocKiw5PCocOLwqLCu8Oy w4rCucOTw4PCscK+w5PDisK8w77DlsKuw4jDjsK6w47CssK/wrfDlsK7w7LDhsOkw4vDucOUw5jD lsKuDQo+IMOIw47CusOOw4TDmsOIw53Co8KswrLCosOHw6vDgcKiwrzCtMOSw5TCtcOnw5fDk8OT w4rCvMO+w43CqMOWwqrCt8KiwrzDvsOIw4vCssKiw4nCvsKzw73CscK+w5PDisK8w77CvMKww4bD pMK4wr3CvMO+wqHCow0KPiDDjcO4w4LDp8ONwqjDkcK2wrnDjMOTw5DDiMKxw4/DncK/w4nDhMOc wrXCvMOWw4LDk8OKwrzDvsKxwrvCvcOYw4HDtMKhwqLDkMOewrjDhMKhwqLCtsKqw4rCp8KhwqLD hsOGwrvCtcK7w7LCsMO8wrrCrMK8w4bDi8OjwrvDusKywqHCtsK+wrXDiA0KPiDCssK7wrDCssOI wqvDh8Opwr/DtsKjwqxPUFBPwrbDlMK0w4vDgMOgwrTDrcOOw7PCu8Oyw5LDhcOCwqnCtsO4w5LD vcOWw4LDlsKuw4jDjsK6w47Di8Oww4rCp8K4w4XCssK7wrPDkMK1wqPDlMOww4jDjsKywqLCscKj w4HDtMOTw6vCscK+DQo+IMOTw4rCvMO+w4/DoMK5w5jDlsKuw5LCu8OHw5DDiMKow4DDu8KhwqMN Cj4gwrPDvcK3w4fDg8O3w4jCt8OLwrXDg8O3wqPCrMKxwr7Dk8OKwrzDvsK8wrDDhsOkwrjCvcK8 w77DjsOew5LDosOXw7fDjsKqw5TDmsOIw47CusOOwrnDusK8w5LCu8OywrXDmMOHw7jDlsKuw5LC qsOUwrzCocKiw5XDkMOAwr/Cu8OywrPDkMOFwrUNCj4gwqPCrMOSw6DDjsOew5LDosOXw7fDjsKq w4jDjsK6w47CvcK7w5LDl8K7w7LCusOPw43CrMOWwq7DlcO9w4rCvcOIwrfDiMOPwqHCow0KPiDC t8KiwrzDvsOIw4vCocKiw4bDpMOLw7nDisO0wrvDusK5wrnCu8Oyw4vDucOKw7TCu8O6wrnCucOW wq7CucOYw4HCqsK7w7rCucK5wrvDssOIw47CusOOw4nDj8OKw7bCu8O6wrnCucOWwq7CucOJwrbC q8KhwqLCtsKtw4rDgsKhwqLCuMOfwrzCtg0KPiDCucOcw4DDrcOIw4vDlMKxwqHCosOUwrHCucKk wrvDssOGw6TDi8O7w4jDjsK6w47DiMOLwqPCqMOSw5TDj8OCwrPDhsKhwrDCt8KiwrzDvsOIw4vC ocKxwrvDssKhwrBPUFBPwqHCscKjwqnCssK7w5LDssKxwr7Dk8OKwrzDvsOWwq7DjsOzDQo+IMOL w43CtsO4wrfDhcOGw7rDhsOkw4vDucOPw63DlsKuw4jDjsK6w47DiMKow4DDu8KjwqzDksOgwrLC u8K2w5TDksOywrnDisOSw6LCu8OywrnDvcOKwqfDisK5w5PDg8K4w4PCtcOIw5DDhcOPwqLCtsO4 w5LDvcK3wqLCu8Oywr/DicOEw5zDksO9DQo+IMK3wqLCtcOEw4vDsMOKwqfCs8OQwrXCo8OIw47C usOOw5TDsMOIw47CocKjDQo+IMOOw4TCu8KvwrLDrsOSw6zDhcO7w4LCtsKjwrrDksOyw4jCq8OH w7LDjsOEwrvCr8Kyw67DksOsw5PCsMOPw6zCo8KswrXCpcK0wr/DksOUWUVTXE9LwrvDssOGw6TD i8O7wrzDssK1wqXCtMOKwrvDo8K1w4TCu8OYwrjCtMKywqLCssK7DQo+IMK5wrnCs8OJwrfCosK8 w77DiMOLwrbDlMOIw47CusOOwr3Cu8OSw5fCu8OywrrDj8ONwqzDlsKuw5XDvcOKwr3DiMK3w4jD j8K7w7LCvcOTw4rDnMKjwqzDh8Orw5PDq8K3wqLCvMO+w4jDi8OUw5nCtMOOw4jCt8OIw4/DksOU wrvDscK1w4PDg8O3DQo+IMOIwrfDisOpw4PDpsOSw6LCvMO7wqHCo8K3wqLCvMO+w4jDi8KywrvC tsOUw4jDjsK6w47DisOcw47DhMK7wq/CssOuw5LDrMOTwrDDj8OswrbDuMK1wrzDlsOCwrnDisOS w6LCu8OywrTDrcOOw7PDisK5w5PDg8K4w4PCtcOIw5DDhcOPwqLDi8O5DQo+IMOUw6zCs8OJwrXD hMOIw47CusOOw5bCscK9w5PCu8OywrzDpMK9w5PDi8OwwrrCpsKzw5DCtcKjw5TDsMOIw47CocKj DQo+IFRoaXMgZS1tYWlsIGFuZCBpdHMgYXR0YWNobWVudHMgY29udGFpbiBjb25maWRlbnRpYWwg aW5mb3JtYXRpb24gZnJvbSBPUFBPLCB3aGljaCBpcyBpbnRlbmRlZCBvbmx5IGZvciB0aGUgcGVy c29uIG9yIGVudGl0eSB3aG9zZSBhZGRyZXNzIGlzIGxpc3RlZCBhYm92ZS4gQW55IHVzZSBvZiB0 aGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGhlcmVpbiBpbiBhbnkgd2F5IChpbmNsdWRpbmcsIGJ1 dCBub3QgbGltaXRlZCB0bywgdG90YWwgb3IgcGFydGlhbCBkaXNjbG9zdXJlLCByZXByb2R1Y3Rp b24sIG9yIGRpc3NlbWluYXRpb24pIGJ5IHBlcnNvbnMgb3RoZXIgdGhhbiB0aGUgaW50ZW5kZWQg cmVjaXBpZW50KHMpIGlzIHByb2hpYml0ZWQuIElmIHlvdSBhcmUgbm90IHRoZSBpbnRlbmRlZCBy ZWNpcGllbnQsIHBsZWFzZSBkbyBub3QgcmVhZCwgY29weSwgZGlzdHJpYnV0ZSwgb3IgdXNlIHRo aXMgaW5mb3JtYXRpb24uIElmIHlvdSBoYXZlIHJlY2VpdmVkIHRoaXMgdHJhbnNtaXNzaW9uIGlu IGVycm9yLCBwbGVhc2Ugbm90aWZ5IHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkgYnkgcmVwbHkgZS1t YWlsIGFuZCB0aGVuIGRlbGV0ZSB0aGlzIG1lc3NhZ2UuDQo+IEVsZWN0cm9uaWMgY29tbXVuaWNh dGlvbnMgbWF5IGNvbnRhaW4gY29tcHV0ZXIgdmlydXNlcyBvciBvdGhlciBkZWZlY3RzIGluaGVy ZW50bHksIG1heSBub3QgYmUgYWNjdXJhdGVseSBhbmQvb3IgdGltZWx5IHRyYW5zbWl0dGVkIHRv IG90aGVyIHN5c3RlbXMsIG9yIG1heSBiZSBpbnRlcmNlcHRlZCwgbW9kaWZpZWQgLGRlbGF5ZWQs IGRlbGV0ZWQgb3IgaW50ZXJmZXJlZC4gT1BQTyBzaGFsbCBub3QgYmUgbGlhYmxlIGZvciBhbnkg ZGFtYWdlcyB0aGF0IGFyaXNlIG9yIG1heSBhcmlzZSBmcm9tIHN1Y2ggbWF0dGVyIGFuZCByZXNl cnZlcyBhbGwgcmlnaHRzIGluIGNvbm5lY3Rpb24gd2l0aCB0aGUgZW1haWwuDQo+IFVubGVzcyBl eHByZXNzbHkgc3RhdGVkLCB0aGlzIGUtbWFpbCBhbmQgaXRzIGF0dGFjaG1lbnRzIGFyZSBwcm92 aWRlZCB3aXRob3V0IGFueSB3YXJyYW50eSwgYWNjZXB0YW5jZSBvciBwcm9taXNlIG9mIGFueSBr aW5kIGluIGFueSBjb3VudHJ5IG9yIHJlZ2lvbiwgbm9yIGNvbnN0aXR1dGUgYSBmb3JtYWwgY29u ZmlybWF0aW9uIG9yIGFjY2VwdGFuY2Ugb2YgYW55IHRyYW5zYWN0aW9uIG9yIGNvbnRyYWN0LiBU aGUgc2VuZGVyLCB0b2dldGhlciB3aXRoIGl0cyBhZmZpbGlhdGVzIG9yIGFueSBzaGFyZWhvbGRl ciwgZGlyZWN0b3IsIG9mZmljZXIsIGVtcGxveWVlIG9yIGFueSBvdGhlciBwZXJzb24gb2YgYW55 IHN1Y2ggaW5zdGl0dXRpb24gKGhlcmVpbmFmdGVyIHJlZmVycmVkIHRvIGFzICJzZW5kZXIiIG9y ICJPUFBPIikgZG9lcyBub3Qgd2FpdmUgYW55IHJpZ2h0cyBhbmQgc2hhbGwgbm90IGJlIGxpYWJs ZSBmb3IgYW55IGRhbWFnZXMgdGhhdCBhcmlzZSBvciBtYXkgYXJpc2UgZnJvbSB0aGUgaW50ZW50 aW9uYWwgb3IgbmVnbGlnZW50IHVzZSBvZiBzdWNoIGluZm9ybWF0aW9uLg0KPiBDdWx0dXJhbCBE aWZmZXJlbmNlcyBEaXNjbG9zdXJlOiBEdWUgdG8gZ2xvYmFsIGN1bHR1cmFsIGRpZmZlcmVuY2Vz LCBhbnkgcmVwbHkgd2l0aCBvbmx5IFlFU1xPSyBvciBvdGhlciBzaW1wbGUgd29yZHMgZG9lcyBu b3QgY29uc3RpdHV0ZSBhbnkgY29uZmlybWF0aW9uIG9yIGFjY2VwdGFuY2Ugb2YgYW55IHRyYW5z YWN0aW9uIG9yIGNvbnRyYWN0LCBwbGVhc2UgY29uZmlybSB3aXRoIHRoZSBzZW5kZXIgYWdhaW4g dG8gZW5zdXJlIGNsZWFyIG9waW5pb24gaW4gd3JpdHRlbiBmb3JtLiBUaGUgc2VuZGVyIHNoYWxs IG5vdCBiZSByZXNwb25zaWJsZSBmb3IgYW55IGRpcmVjdCBvciBpbmRpcmVjdCBkYW1hZ2VzIHJl c3VsdGluZyBmcm9tIHRoZSBpbnRlbnRpb25hbCBvciBtaXN1c2Ugb2Ygc3VjaCBpbmZvcm1hdGlv bi4NCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gT1BQTw0KPiANCj4g5pys 55S15a2Q6YKu5Lu25Y+K5YW26ZmE5Lu25ZCr5pyJT1BQT+WFrOWPuOeahOS/neWvhuS/oeaBr++8 jOS7hemZkOS6jumCruS7tuaMh+aYjueahOaUtuS7tuS6uu+8iOWMheWQq+S4quS6uuWPiue+pOe7 hO+8ieS9v+eUqOOAguemgeatouS7u+S9leS6uuWcqOacque7j+aOiOadg+eahOaDheWGteS4i+S7 peS7u+S9leW9ouW8j+S9v+eUqOOAguWmguaenA0KPiDmgqjplJnmlLbkuobmnKzpgq7ku7bvvIzl iIfli7/kvKDmkq3jgIHliIblj5HjgIHlpI3liLbjgIHljbDliLfmiJbkvb/nlKjmnKzpgq7ku7bk uYvku7vkvZXpg6jliIbmiJblhbbmiYDovb3kuYvku7vkvZXlhoXlrrnvvIzlubbor7fnq4vljbPk u6XnlLXlrZDpgq7ku7bpgJrnn6Xlj5Hku7bkurrlubbliKDpmaTmnKzpgq7ku7blj4rlhbbpmYTk u7bjgIINCj4g572R57uc6YCa6K6v5Zu65pyJ57y66Zm35Y+v6IO95a+86Ie06YKu5Lu26KKr5oiq 55WZ44CB5L+u5pS544CB5Lii5aSx44CB56C05Z2P5oiW5YyF5ZCr6K6h566X5py655eF5q+S562J 5LiN5a6J5YWo5oOF5Ya177yMT1BQT+WvueatpOexu+mUmeivr+aIlumBl+a8j+iAjOW8leiHtOS5 i+S7u+S9leaNn+WkseamguS4jeaJv+aLhei0o+S7u+W5tuS/neeVmQ0KPiDkuI7mnKzpgq7ku7bn m7jlhbPkuYvkuIDliIfmnYPliKnjgIINCj4g6Zmk6Z2e5piO56Gu6K+05piO77yM5pys6YKu5Lu2 5Y+K5YW26ZmE5Lu25peg5oSP5L2c5Li65Zyo5Lu75L2V5Zu95a625oiW5Zyw5Yy65LmL6KaB57qm 44CB5oub5o+95oiW5om/6K+677yM5Lqm5peg5oSP5L2c5Li65Lu75L2V5Lqk5piT5oiW5ZCI5ZCM 5LmL5q2j5byP56Gu6K6k44CCDQo+IOWPkeS7tuS6uuOAgeWFtuaJgOWxnuacuuaehOaIluaJgOWx nuacuuaehOS5i+WFs+iBlOacuuaehOaIluS7u+S9leS4iui/sOacuuaehOS5i+iCoeS4nOOAgeiR o+S6i+OAgemrmOe6p+euoeeQhuS6uuWRmOOAgeWRmOW3peaIluWFtuS7luS7u+S9leS6uu+8iOS7 peS4i+ensOKAnOWPkeS7tuS6uuKAneaIluKAnE9QUE/igJ3vvInkuI3lm6DmnKzpgq7ku7YNCj4g 5LmL6K+v6YCB6ICM5pS+5byD5YW25omA5Lqr5LmL5Lu75L2V5p2D5Yip77yM5Lqm5LiN5a+55Zug 5pWF5oSP5oiW6L+H5aSx5L2/55So6K+l562J5L+h5oGv6ICM5byV5Y+R5oiW5Y+v6IO95byV5Y+R 55qE5o2f5aSx5om/5ouF5Lu75L2V6LSj5Lu744CCDQo+IOaWh+WMluW3ruW8guaKq+mcsu+8muWb oOWFqOeQg+aWh+WMluW3ruW8guW9seWTje+8jOWNlee6r+S7pVlFU1xPS+aIluWFtuS7lueugOWN leivjeaxh+eahOWbnuWkjeW5tuS4jeaehOaIkOWPkeS7tuS6uuWvueS7u+S9leS6pOaYk+aIluWQ iOWQjOS5i+ato+W8j+ehruiupOaIluaOpeWPl++8jOivt+S4juWPkeS7tuS6uuWGjeasoeehruiu pOS7pQ0KPiDojrflvpfmmI7noa7kuabpnaLmhI/op4HjgILlj5Hku7bkurrkuI3lr7nku7vkvZXl j5fmlofljJblt67lvILlvbHlk43ogIzlr7zoh7TmlYXmhI/miJbplJnor6/kvb/nlKjor6XnrYnk v6Hmga/miYDpgKDmiJDnmoTku7vkvZXnm7TmjqXmiJbpl7TmjqXmjZ/lrrPmib/mi4XotKPku7vj gIINCj4gVGhpcyBlLW1haWwgYW5kIGl0cyBhdHRhY2htZW50cyBjb250YWluIGNvbmZpZGVudGlh bCBpbmZvcm1hdGlvbiBmcm9tIE9QUE8sIHdoaWNoIGlzIGludGVuZGVkIG9ubHkgZm9yIHRoZSBw ZXJzb24gb3IgZW50aXR5IHdob3NlIGFkZHJlc3MgaXMgbGlzdGVkIGFib3ZlLiBBbnkgdXNlIG9m IHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaGVyZWluIGluIGFueSB3YXkgKGluY2x1ZGluZywg YnV0IG5vdCBsaW1pdGVkIHRvLCB0b3RhbCBvciBwYXJ0aWFsIGRpc2Nsb3N1cmUsIHJlcHJvZHVj dGlvbiwgb3IgZGlzc2VtaW5hdGlvbikgYnkgcGVyc29ucyBvdGhlciB0aGFuIHRoZSBpbnRlbmRl ZCByZWNpcGllbnQocykgaXMgcHJvaGliaXRlZC4gSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVk IHJlY2lwaWVudCwgcGxlYXNlIGRvIG5vdCByZWFkLCBjb3B5LCBkaXN0cmlidXRlLCBvciB1c2Ug dGhpcyBpbmZvcm1hdGlvbi4gSWYgeW91IGhhdmUgcmVjZWl2ZWQgdGhpcyB0cmFuc21pc3Npb24g aW4gZXJyb3IsIHBsZWFzZSBub3RpZnkgdGhlIHNlbmRlciBpbW1lZGlhdGVseSBieSByZXBseSBl LW1haWwgYW5kIHRoZW4gZGVsZXRlIHRoaXMgbWVzc2FnZS4NCj4gRWxlY3Ryb25pYyBjb21tdW5p Y2F0aW9ucyBtYXkgY29udGFpbiBjb21wdXRlciB2aXJ1c2VzIG9yIG90aGVyIGRlZmVjdHMgaW5o ZXJlbnRseSwgbWF5IG5vdCBiZSBhY2N1cmF0ZWx5IGFuZC9vciB0aW1lbHkgdHJhbnNtaXR0ZWQg dG8gb3RoZXIgc3lzdGVtcywgb3IgbWF5IGJlIGludGVyY2VwdGVkLCBtb2RpZmllZCAsZGVsYXll ZCwgZGVsZXRlZCBvciBpbnRlcmZlcmVkLiBPUFBPIHNoYWxsIG5vdCBiZSBsaWFibGUgZm9yIGFu eSBkYW1hZ2VzIHRoYXQgYXJpc2Ugb3IgbWF5IGFyaXNlIGZyb20gc3VjaCBtYXR0ZXIgYW5kIHJl c2VydmVzIGFsbCByaWdodHMgaW4gY29ubmVjdGlvbiB3aXRoIHRoZSBlbWFpbC4NCj4gVW5sZXNz IGV4cHJlc3NseSBzdGF0ZWQsIHRoaXMgZS1tYWlsIGFuZCBpdHMgYXR0YWNobWVudHMgYXJlIHBy b3ZpZGVkIHdpdGhvdXQgYW55IHdhcnJhbnR5LCBhY2NlcHRhbmNlIG9yIHByb21pc2Ugb2YgYW55 IGtpbmQgaW4gYW55IGNvdW50cnkgb3IgcmVnaW9uLCBub3IgY29uc3RpdHV0ZSBhIGZvcm1hbCBj b25maXJtYXRpb24gb3IgYWNjZXB0YW5jZSBvZiBhbnkgdHJhbnNhY3Rpb24gb3IgY29udHJhY3Qu IFRoZSBzZW5kZXIsIHRvZ2V0aGVyIHdpdGggaXRzIGFmZmlsaWF0ZXMgb3IgYW55IHNoYXJlaG9s ZGVyLCBkaXJlY3Rvciwgb2ZmaWNlciwgZW1wbG95ZWUgb3IgYW55IG90aGVyIHBlcnNvbiBvZiBh bnkgc3VjaCBpbnN0aXR1dGlvbiAoaGVyZWluYWZ0ZXIgcmVmZXJyZWQgdG8gYXMgInNlbmRlciIg b3IgIk9QUE8iKSBkb2VzIG5vdCB3YWl2ZSBhbnkgcmlnaHRzIGFuZCBzaGFsbCBub3QgYmUgbGlh YmxlIGZvciBhbnkgZGFtYWdlcyB0aGF0IGFyaXNlIG9yIG1heSBhcmlzZSBmcm9tIHRoZSBpbnRl bnRpb25hbCBvciBuZWdsaWdlbnQgdXNlIG9mIHN1Y2ggaW5mb3JtYXRpb24uDQo+IEN1bHR1cmFs IERpZmZlcmVuY2VzIERpc2Nsb3N1cmU6IER1ZSB0byBnbG9iYWwgY3VsdHVyYWwgZGlmZmVyZW5j ZXMsIGFueSByZXBseSB3aXRoIG9ubHkgWUVTXE9LIG9yIG90aGVyIHNpbXBsZSB3b3JkcyBkb2Vz IG5vdCBjb25zdGl0dXRlIGFueSBjb25maXJtYXRpb24gb3IgYWNjZXB0YW5jZSBvZiBhbnkgdHJh bnNhY3Rpb24gb3IgY29udHJhY3QsIHBsZWFzZSBjb25maXJtIHdpdGggdGhlIHNlbmRlciBhZ2Fp biB0byBlbnN1cmUgY2xlYXIgb3BpbmlvbiBpbiB3cml0dGVuIGZvcm0uIFRoZSBzZW5kZXIgc2hh bGwgbm90IGJlIHJlc3BvbnNpYmxlIGZvciBhbnkgZGlyZWN0IG9yIGluZGlyZWN0IGRhbWFnZXMg cmVzdWx0aW5nIGZyb20gdGhlIGludGVudGlvbmFsIG9yIG1pc3VzZSBvZiBzdWNoIGluZm9ybWF0 aW9uLg0K