From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web08.2473.1632446947596787192 for ; Thu, 23 Sep 2021 18:29:08 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=fhmOJuha; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: ray.ni@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10116"; a="224007853" X-IronPort-AV: E=Sophos;i="5.85,318,1624345200"; d="scan'208";a="224007853" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Sep 2021 18:29:06 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,318,1624345200"; d="scan'208";a="475040880" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga007.jf.intel.com with ESMTP; 23 Sep 2021 18:29:06 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Thu, 23 Sep 2021 18:29:06 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx612.amr.corp.intel.com (10.18.126.92) 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, 23 Sep 2021 18:29:06 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.170) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Thu, 23 Sep 2021 18:28:56 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LxRWlQg9jC3h5BTOCxxFczHc/113mXw/6odiTSB6BMFJOzAFX+gLqh9DGtSrnqWTsLPAOb/alMJLSvWPGb2BduSRQvGjuWsfe+gBjwd4SdeGq9ezEYeaCZ5tJh/LrD4bbzk9u+MmPEpYJBPv1987jehFvNoYMXxqf0Gb4Wo/NkmaNOAugNy5qZxfZVxloCGSo0gV5CdnXJh/WqeKanDXrt2YXgXrKbr+K1ejOgm3ZPE2toiz+atDybMk7pNYVqWFFoRPv6tYaQ3Uk+RM1A1NMbYt5AcPUn63M46H4goSVG9gqX7lK5NM1Q5xyIxUbcTxiuEEL6MrqqxCBKpzDdKLsg== 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; bh=dHJQEN/8KzCb8dCxRMeI9UEsJC4Wpfmocg6WsPutyQ4=; b=T5K0sHQMFwMcOlZTT6tKomiRSi+FwR1H1TEQlUVg2KCgXofvWSHklCFt+dtkcrzA17R7cYBPO4ulRiiEkn3NPQ8f2kMdYeaHC/ti6L3Fc7Bg/SHrhfFrgXcMAQuO0BAZrMm2L/5QeiDkALNlsGBHo1HnlwBTG270TqeySSVOqz/wIPV72lPOHtSiGJEt6LB3HyeojwCLXpc01WVG1WMIp+2MiW1Mg4mDNaNsNpwbzWaWhGr8JA1MMZguP9ooicBuELe298mffBov2oltZx04I4Q6iBd/yoc7SiCh87jlih5XOG7faZszvwnIb54N6ps92CPUwONZQ8xOXKBY7pZwTQ== 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=dHJQEN/8KzCb8dCxRMeI9UEsJC4Wpfmocg6WsPutyQ4=; b=fhmOJuhao5kCw0eVqh1uHl5rqredBcmtZIGrvbtyvVVER84IxEMufEFQZ/1mHHjvvGH6qYR3QrBACjcfXGGbIcw712cxpwVSflYgCF5ak4gseWlIlmDd9opMg0ajnjPYhVBZYmzdk53A4XAYO7T2CnShHDoCEQ7FDxLQo/zRvl8= Received: from CY4PR1101MB2072.namprd11.prod.outlook.com (2603:10b6:910:1d::15) by CY4PR11MB1383.namprd11.prod.outlook.com (2603:10b6:903:2d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.17; Fri, 24 Sep 2021 01:28:54 +0000 Received: from CY4PR1101MB2072.namprd11.prod.outlook.com ([fe80::7dc5:34b5:bbff:832f]) by CY4PR1101MB2072.namprd11.prod.outlook.com ([fe80::7dc5:34b5:bbff:832f%8]) with mapi id 15.20.4544.014; Fri, 24 Sep 2021 01:28:54 +0000 From: "Ni, Ray" To: "Gao, Zhichao" , "devel@edk2.groups.io" , "gaoliming@byosoft.com.cn" CC: "Wang, Jian J" Subject: Re: [edk2-devel] [PATCH V2] MdeModulePkg/BootManagerMenuApp: Limit string drawing within one line Thread-Topic: [edk2-devel] [PATCH V2] MdeModulePkg/BootManagerMenuApp: Limit string drawing within one line Thread-Index: AQHXpUvsuh5reQxFl0O+Aioo+AtRhauveLWAgAAW4kCAAXPaAIAACY8AgABFUvCAAAfUoIABIX1g Date: Fri, 24 Sep 2021 01:28:54 +0000 Message-ID: References: <20210909072541.3069-1-zhichao.gao@intel.com> <00df01d7b027$05683ed0$1038bc70$@byosoft.com.cn> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 92d777b6-3f41-409b-bb00-08d97efaac3c x-ms-traffictypediagnostic: CY4PR11MB1383: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3173; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: bzVLOXnEy+AFuuOc2K+ZJu0d6d/8vQ6KiEvETr4yJ5kW/WBW+obZ/NDe97ZU7AejHRmei9IWqqVeZJqperVR6JbwjHIzwEGQCS0xOs8oQt0eCkkXV/uMxQDbT+PDnaZ9HsGBVklgx7diJVrPpY3KJ6qQgnOZD2E3PuOY6W+BuaQyvzNVzwC8Kt90cVd5GwOsK3PdybkVGOJw1dxqhm6UPUCAuxJ89DCYcrrXMbisx9aNNByytcwNPikP364aOiHcVj1bmq8FKWhA6E20qIUM7Pq26UVZ5j5bXbK+JJO9weGY1XJa0sTWhLd9de0nO6Y2r+EjhLeazCf+icTIByB6fYeMQVnQEJ5965I8YmI4elnjNfP03Qik93OCu8y+Xq1bjpRvRgI65atD2GyxmufsxfzukWfYqyOMYxSSo53Y7mT4i+M+GfoMw/Bx4zFUndY38AYiRPzQeL7lo7EGJf62ADjYA206IdFs0k2fC5/Svb5060FwRW3x/Y7NjHXwEEWiNVWjRW6BfLHP+e5Xvxr1vIBJcToFV/nf95R9nNj5JQeAmL8MqEbpR7qbNFX/56/zL5JUSoUd4sgvtHgyTo/zV7XFPxcfSiApTlI5K9IyQNjE6UJ6oczB0T1jmjcS30Owl3FmmcH0LiND9s8jhm+cTIdvF6LArIIClGWtVpjUsIXMrjvz6E9jXXiylnOJ2NUEyZ1OQ0Qe6H4RpCZSTE2Gltgcpve/f89MsKVdV5uVf1wnDPhcRRRdP2jMdstks1dLiSZ8Q+PONZXORxl0BI+Tp+VSPVRCgGRhBmYydQZHsrqkAiAprVZJUt2UFyGcSBrvcjaRB9oOea+QCF6oUNBQqQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR1101MB2072.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(33656002)(66574015)(30864003)(122000001)(508600001)(38100700002)(186003)(8676002)(9686003)(26005)(83380400001)(8936002)(966005)(86362001)(52536014)(55016002)(4326008)(110136005)(38070700005)(2906002)(66446008)(76116006)(5660300002)(71200400001)(7696005)(66476007)(66556008)(66946007)(64756008)(53546011)(107886003)(6506007)(316002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ekZZV0hLSkUwZERtSk82YWlrcjdwRWpMRWVzNVVJZTFHOXhKMHc5RHY4VUcv?= =?utf-8?B?MlYxUUE2QUZzNC9ROWxrNVo5c05CbVRkNHFHbzVTelcza09NZGZZYk5ZZ1Bt?= =?utf-8?B?NzM5RVJBR1ZaQnpPSjZtRlJLdExDRzdJK01kL0JOckRGMTRVcXVudTBBeTlP?= =?utf-8?B?MDNDZ0N0T1B6MHZISFhzbUJVSWgxdjRsSlA2cmErcWVGbEpzTGJTWkRBYXlD?= =?utf-8?B?RWZkc3E2UkJJZ2FhdFluWFBZNGdLaEZhalY4V1NjQWtTVE9uUXVVMFBJNlpQ?= =?utf-8?B?cWY4NS9KMzNwdHQyRGsxc2VSenJLY3UxcTR0WVlUNmxxa2ZvVHJqaEJkNkR6?= =?utf-8?B?ZFBiT2dOMmFUcTRRWjM2K0tiZy9Wb0NyWjZqWW9DUUZybnBacjV3cDlPTVFJ?= =?utf-8?B?NnFMNlhyU1V0alNDdnlRTFhBQU1OS0g0RWpwNDAyTENKOGxvdkMvbXRpNlZX?= =?utf-8?B?RzRCMnptcGg5T2MrWlhFekZEWjdCSE5lOVpHKzlSdVdmNU9ZQmlQZE5qbnhN?= =?utf-8?B?WVcraHlJNEo3NlRubnJndWY2d2FsaXlTOHNWYXQydm8zUkpJM0RYa2JiVUNq?= =?utf-8?B?cXV6QzZiTmQ5emVWZy9xWE82akI3a21lSWpzZHg0Vmw2ZjhLUzNNNEhTbzFz?= =?utf-8?B?M0EzQU9NcnRkVWlmMU1RYXFHMkZjN25XaTBqNXNidU13K0REZVFKMDVaQ0t4?= =?utf-8?B?a29FWFFUK2NteWNMVTBPa1N6dkhLTUphV05Dc0pHUWdodmFPdEp0WENIQ0xU?= =?utf-8?B?NFc1aC9odUJkNnByeGpwU2N2V0pwQzFBeHVJb0NRZWJDMWRMNThuYWdCb1N5?= =?utf-8?B?QXRITTBLT014SUt1S1ZvWGdVWTNEY0Q4UlVBU2UxNjlkRCtWN2RGcUJ6OVFJ?= =?utf-8?B?MXVoWUpzOHlJRFNxZ0xNd2U3WVJFQlpVNmhJb1N6bDMxWTVhNFdDYVlqb1ZG?= =?utf-8?B?SjJESG9pWksvNmVZU052NGltbnA0YmRYcU9zdG9jb3BuWjlIUEtHTDQ1VHds?= =?utf-8?B?TkkwTGc4TWlUb0Q4VnZVMytHTDFicDBBMTJjVGwrdWhySVorYVkwTWw2T2xR?= =?utf-8?B?RXh0ZUpTcllheHBNcTdnai8vN0pxSVl2M0NOZE0xYWp2UzFzbDR4MHQveWJ6?= =?utf-8?B?Kzc4NnRabituclp4T2JQM2lDMWxsWFJLbTdpZ25LVXFpSitEaDdPbE1ucjB0?= =?utf-8?B?K3hCTExMTmxJZVZJdkQ0WlFCVlNicDRRWUdvOXhuNHNGNUxTT1F3WEkrMVFK?= =?utf-8?B?VHBSRDJFbFBPWE52Nys2RURITlBpMGJldktUNXgwR094cTVrWFdkZ093SVJB?= =?utf-8?B?RFJHOTJWWThob1pvVVlEWkFZZmxGMm9lUVAvVHBhd1J6Zlhhb21GQjlIc28w?= =?utf-8?B?M3V5Y1piMGF5MytVNHlUS3ZDUjNzS205K0NPSGE3dW9FZXh2S2tHTmVkUXdB?= =?utf-8?B?aEZ5cG82S1NnMEZhYzdMYzdoTGhVVnkrQkdDaW1Ldi90MHFBU3NSRWRUb1hm?= =?utf-8?B?ZUZJTmdmTnJSQmtZc2xRRGdmZk96cmxoMFBpUlAxc3BFMHl2ZkxXT2dwVkk0?= =?utf-8?B?c3ZuTnlvRFphMmFvOXZvcTFIT0c2TGpROEtzNGtjV1lsZHg4bzhnS0dhUWhD?= =?utf-8?B?VU94SUJxK2dhMTBmdlA2V1RKekpDQ1RGdFIvM1QzNVdLZkhxLzl0eldGbTNl?= =?utf-8?B?Z3ZRVWNaUzlqODFMbWMzQjhEMzFUMDZjNHBtWlMwbVhYcldQR2JLWkV0S1E2?= =?utf-8?Q?tV4NDG13il0hWE1gVyPisiTS8+qBRIsKXSyFmrz?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR1101MB2072.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 92d777b6-3f41-409b-bb00-08d97efaac3c X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Sep 2021 01:28:54.5521 (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: KTTMyzosGKT1bVltXMzeuFefCc2mja8sUdJSLQlAUav1oY4dkgBcESza4mfKpjWEMGQt0BQshK4VAD1wt5i4PA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1383 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGltaXRpbmcgdGhlIGJvb3QgZGVzY3JpcHRpb24gdG8gYSBmaXhlZCBudW1iZXIgb2YgY2hhcmFj dGVycyBzaG91bGQgYmUgYSBwbGF0Zm9ybSBwb2xpY3kuDQpCRFMgY29tbW9uIGxvZ2ljIHNob3Vs ZCBOT1QgZG8gdGhhdC4NCg0KSW1hZ2luZSBhIHBsYXRmb3JtIHRoYXQgY29udGFpbnMgYSBmYW5j eSBVSSB3aXRoIHNjcm9sbGJhciBvciBzdXBwb3J0cyBhIGJpZyByZXNvbHV0aW9uLg0KU3VjaCBw bGF0Zm9ybSBjYW4gc3RpbGwgdXNlIHRoZSBCZHNEeGUgZHJpdmVyLiBCdXQgaXQgZG9lc24ndCBu ZWVkIHRoZSBCb290TWFuYWdlck1lbnVBcHAuDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gRnJvbTogR2FvLCBaaGljaGFvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+DQo+IFNlbnQ6 IFRodXJzZGF5LCBTZXB0ZW1iZXIgMjMsIDIwMjEgNDoyMiBQTQ0KPiBUbzogTmksIFJheSA8cmF5 Lm5pQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBnYW9saW1pbmdAYnlvc29mdC5j b20uY24NCj4gQ2M6IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiBTdWJq ZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCBWMl0gTWRlTW9kdWxlUGtnL0Jvb3RNYW5hZ2Vy TWVudUFwcDogTGltaXQgc3RyaW5nIGRyYXdpbmcgd2l0aGluIG9uZSBsaW5lDQo+IA0KPiBIaSBS YXksDQo+IFRoYXQgaXMgb25lIHdheSBmb3IgcGxhdGZvcm0gdG8gY3VzdG9taXplIHRoZWlyIG93 biBib290IG9wdGlvbi4gSXQgY2FuIHNvbHZlIHRoZSBpc3N1ZS4gQnV0IG15IHBvaW50IGlzIGl0 IHNob3VsZCBub3QgYmUgdXNlZCBpbg0KPiBzdWNoIGNhc2UuIElmIEVESzIgd2FudCBhIGRlZmF1 bHQgYmVoYXZpb3Igb2YgdGhlIGJvb3Qgb3B0aW9uIGRlc2NyaXB0aW9uLCB3ZSBzaG91bGQgY2hh bmdlIGF0IHRoZSByb290IGluc3RlYWQgb2YgdXNpbmcgdGhlDQo+IGN1c3RvbWl6ZSBpbnRlcmZh Y2VzLg0KPiANCj4gVGhhbmtzLA0KPiBaaGljaGFvDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4gRnJvbTogTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPiBTZW50 OiBUaHVyc2RheSwgU2VwdGVtYmVyIDIzLCAyMDIxIDM6NDMgUE0NCj4gPiBUbzogR2FvLCBaaGlj aGFvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsNCj4gPiBn YW9saW1pbmdAYnlvc29mdC5jb20uY24NCj4gPiBDYzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2Fu Z0BpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggVjJdDQo+ ID4gTWRlTW9kdWxlUGtnL0Jvb3RNYW5hZ2VyTWVudUFwcDogTGltaXQgc3RyaW5nIGRyYXdpbmcg d2l0aGluIG9uZSBsaW5lDQo+ID4NCj4gPiBBbm90aGVyIG9wdGlvbiBpcyB0byB1c2UgRWZpQm9v dE1hbmFnZXJSZWdpc3RlckJvb3REZXNjcmlwdGlvbkhhbmRsZXIoKQ0KPiA+IHRvIGFsdGVyIHRo ZSBib290IGRlc2NyaXB0aW9ucy4NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPiA+IEZyb206IEdhbywgWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPg0KPiA+ ID4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciAyMywgMjAyMSAxMTo0NyBBTQ0KPiA+ID4gVG86 IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBnYW9saW1pbmdAYnlvc29mdC5jb20uY247IE5pLCBSYXkN Cj4gPiA+IDxyYXkubmlAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IFdhbmcsIEppYW4gSiA8amlhbi5q LndhbmdAaW50ZWwuY29tPg0KPiA+ID4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0gg VjJdDQo+ID4gTWRlTW9kdWxlUGtnL0Jvb3RNYW5hZ2VyTWVudUFwcDoNCj4gPiA+IExpbWl0IHN0 cmluZyBkcmF3aW5nIHdpdGhpbiBvbmUgbGluZQ0KPiA+ID4NCj4gPiA+IEhpIExpbWluZywNCj4g PiA+DQo+ID4gPiBZZXMuIEJlY2F1c2UgdGhlIGRlc2lnbiBvZiB0aGUgQk0gYXBwIGlzIG5vdCBh aW1lZCB0byBkaXNwbGF5IHRoZSBib290DQo+ID4gPiBvcHRpb24gb3ZlciBvbmUgbGluZS4gQW5k IGl0IGlzIG5vdCB1c2luZyB0aGUgc2V0dXAgYnJvd3NlciBlbmdpbmUuDQo+ID4gPiBUaGF0IHdv dWxkIGNhdXNlIHRoZSBkaWZmZXJlbmNlLg0KPiA+ID4gSWYgd2Ugd2FudCB0byBtYWtlIHRoZW0g YWxpZ24sIHRoZXJlIGFyZSB0d28gb3B0aW9uczoNCj4gPiA+IDEuIEJNIGFwcCB0byB1c2UgdGhl IHNldHVwIGJyb3dzZXIgZW5naW5lIDIuIGFkZCBzY3JvbGwgYmFyIGxvZ2ljIGZvcg0KPiA+ID4g dGhlIGJvb3QgaXRlbQ0KPiA+ID4NCj4gPiA+IEJvdGggYWJvdmUgY2hhbmdlIGlzIG5vdCBzaW1w bGUgYW5kIG1heSBjYXVzZSBuZXcgaXNzdWVzLiBJdCB3b3VsZCBiZSBhDQo+ID4gbmV3IGRlc2ln biBvdGhlciB0aGFuIGEgYnVnIGZpeC4NCj4gPiA+DQo+ID4gPiBBbm90aGVyIHNvbHV0aW9uIGlz IHRoZSBwYXRjaCBWMSB0byBsaW1pdCB0aGUgYm9vdCBvcHRpb24gZGVzY3JpcHRpb24NCj4gPiA+ IHdpdGhpbiA3MiBjaGFyYWN0ZXJzLiBSYXkgcG9pbnRlZCBvdXQgaXQgaXMgbm90IGEgZ29vZCBz b2x1dGlvbi4NCj4gPiA+DQo+ID4gPiBCVFcsIEkgd291bGQgcmVtb3ZlIHRoZSBjaGFuZ2UtaWQg aW4gbmV4dCBwYXRjaC4NCj4gPiA+DQo+ID4gPiBUaGFua3MsDQo+ID4gPiBaaGljaGFvDQo+ID4g Pg0KPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9tOiBkZXZl bEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZg0KPiA+ ID4gPiBnYW9saW1pbmcNCj4gPiA+ID4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciAyMywgMjAy MSAxMDo1OSBBTQ0KPiA+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IEdhbywgWmhpY2hh byA8emhpY2hhby5nYW9AaW50ZWwuY29tPjsgTmksDQo+ID4gPiA+IFJheSA8cmF5Lm5pQGludGVs LmNvbT4NCj4gPiA+ID4gQ2M6IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0K PiA+ID4gPiBTdWJqZWN0OiDlm57lpI06IFtlZGsyLWRldmVsXSBbUEFUQ0ggVjJdDQo+ID4gPiA+ IE1kZU1vZHVsZVBrZy9Cb290TWFuYWdlck1lbnVBcHA6IExpbWl0IHN0cmluZyBkcmF3aW5nIHdp dGhpbiBvbmUNCj4gPiA+ID4gbGluZQ0KPiA+ID4gPg0KPiA+ID4gPiBaaGljaGFvOg0KPiA+ID4g PiAgIFdpdGggdGhpcyBjaGFuZ2UsIHRoZSBzYW1lIGJvb3Qgb3B0aW9uIHdpbGwgYmUgZGlzcGxh eWVkDQo+ID4gPiA+IGRpZmZlcmVudGx5IGluIEJvb3RNYW5hZ2VyQXBwIGFuZCBCb290TWFuYWdl ciBQYWdlLiBJcyBpdCB0aGUgZGVzaWduZWQNCj4gPiBiZWhhdmlvcj8NCj4gPiA+ID4NCj4gPiA+ ID4gICBCZXNpZGVzLCBwbGVhc2UgcmVtb3ZlIGNoYW5nZS1pZCBmcm9tIHRoZSBjb21taXQgbWVz c2FnZS4NCj4gPiA+ID4NCj4gPiA+ID4gVGhhbmtzDQo+ID4gPiA+IExpbWluZw0KPiA+ID4gPiA+ IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCj4gPiA+ID4gPiDlj5Hku7bkuro6IGRldmVsQGVkazIu Z3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4g5Luj6KGoIEdhbywNCj4gPiA+ID4gWmhp Y2hhbw0KPiA+ID4gPiA+IOWPkemAgeaXtumXtDogMjAyMeW5tDnmnIgyMuaXpSAxMjo1MA0KPiA+ ID4gPiA+IOaUtuS7tuS6ujogTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47IGRldmVsQGVkazIu Z3JvdXBzLmlvOyBMaW1pbmcgR2FvDQo+ID4gPiA+ID4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5j bj4NCj4gPiA+ID4gPiDmioTpgIE6IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29t Pg0KPiA+ID4gPiA+IOS4u+mimDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggVjJdDQo+ID4gPiA+ IE1kZU1vZHVsZVBrZy9Cb290TWFuYWdlck1lbnVBcHA6DQo+ID4gPiA+ID4gTGltaXQgc3RyaW5n IGRyYXdpbmcgd2l0aGluIG9uZSBsaW5lDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBIaSBMaW1pbmcs DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBUaGUgc29sdXRpb24gaXMgZGlmZmVyZW50IHdpdGggdGhl IGZpcnN0IHRpbWUgd2UgZGlzY3Vzc2VkIG9uIHRoZQ0KPiA+ID4gPiBCdWd6aWxsYS4gQ2FuDQo+ ID4gPiA+ID4geW91IHJldmlldyBpZiBpdCBpcyBPSyB0byB5b3U/DQo+ID4gPiA+ID4NCj4gPiA+ ID4gPiBUaGFua3MsDQo+ID4gPiA+ID4gWmhpY2hhbw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ID4gRnJvbTogTmksIFJheSA8cmF5 Lm5pQGludGVsLmNvbT4NCj4gPiA+ID4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgU2VwdGVtYmVyIDIy LCAyMDIxIDExOjI4IEFNDQo+ID4gPiA+ID4gPiBUbzogR2FvLCBaaGljaGFvIDx6aGljaGFvLmdh b0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gPiA+ID4gQ2M6IFdhbmcs IEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgTGltaW5nIEdhbw0KPiA+ID4gPiA+ID4g PGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gPiA+ID4gPiA+IFN1YmplY3Q6IFJFOiBbUEFU Q0ggVjJdIE1kZU1vZHVsZVBrZy9Cb290TWFuYWdlck1lbnVBcHA6DQo+ID4gTGltaXQNCj4gPiA+ ID4gPiA+IHN0cmluZyBkcmF3aW5nIHdpdGhpbiBvbmUgbGluZQ0KPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+IFJldmlld2VkLWJ5OiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+IEZy b206IEdhbywgWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gU2Vu dDogVGh1cnNkYXksIFNlcHRlbWJlciA5LCAyMDIxIDM6MjYgUE0NCj4gPiA+ID4gPiA+IFRvOiBk ZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gPiA+ID4gQ2M6IFdhbmcsIEppYW4gSiA8amlhbi5q LndhbmdAaW50ZWwuY29tPjsgTGltaW5nIEdhbw0KPiA+ID4gPiA+ID4gPGdhb2xpbWluZ0BieW9z b2Z0LmNvbS5jbj47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiBTdWJq ZWN0OiBbUEFUQ0ggVjJdIE1kZU1vZHVsZVBrZy9Cb290TWFuYWdlck1lbnVBcHA6IExpbWl0DQo+ ID4gPiA+IHN0cmluZw0KPiA+ID4gPiA+ID4gZHJhd2luZyB3aXRoaW4gb25lIGxpbmUNCj4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiBSRUY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9z aG93X2J1Zy5jZ2k/aWQ9MzU5MA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IExpbWl0IHRoZSBk cmF3IGJveCBhbHdheXMgd2l0aGluIHRoZSBzY3JlZW4ncyBjb2x1bW4gYW5kIHJvdy4NCj4gPiA+ ID4gPiA+IExpbWl0IHRoZSBzdHJpbmcgZHJhd2luZyB3aXRoaW4gb25lIGxpbmUuDQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gQ2hhbmdlLUlkOiBJYjdiZDYzY2IwN2IyMzg3NWExZTRmMzdhZTgw YTQyMmUxZDVlZDU0Zg0KPiA+ID4gPiA+ID4gQ2M6IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0Bp bnRlbC5jb20+DQo+ID4gPiA+ID4gPiBDYzogTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQu Y29tLmNuPg0KPiA+ID4gPiA+ID4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPiA+ ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFpoaWNoYW8gR2FvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+ DQo+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBWMjoNCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiBEcm9wIHRoZSBjaGFuZ2UgaW4gVWVmaUJvb3RNYW5hZ2VyTGliIGlu IFYxLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEFkZCB0aGUgbGltaXRhdGlvbiBpbiBCb290 TWFuYWdlck1lbnVBcHAgaW5zdGVhZC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gIC4uLi9Cb290TWFuYWdlck1lbnVBcHAvQm9vdE1hbmFnZXJNZW51LmMgICAgICB8IDcy DQo+ID4gPiA+ID4gPiArKysrKysrKysrKysrKysrKystDQo+ID4gPiA+ID4gPiAgMSBmaWxlIGNo YW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiBhL01kZU1vZHVs ZVBrZy9BcHBsaWNhdGlvbi9Cb290TWFuYWdlck1lbnVBcHAvQm9vdE1hbmFnZXJNZW51Lg0KPiA+ ID4gPiA+ID4gYw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiBiL01kZU1vZHVsZVBrZy9BcHBs aWNhdGlvbi9Cb290TWFuYWdlck1lbnVBcHAvQm9vdE1hbmFnZXJNZW51Lg0KPiA+ID4gPiA+ID4g Yw0KPiA+ID4gPiA+ID4gaW5kZXggOWU3MjkwNzRlYy4uZDRiZGViYTA3MyAxMDA2NDQNCj4gPiA+ ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiBhL01kZU1vZHVsZVBrZy9BcHBs aWNhdGlvbi9Cb290TWFuYWdlck1lbnVBcHAvQm9vdE1hbmFnZXJNZW51Lg0KPiA+ID4gPiA+ID4g Yw0KPiA+ID4gPiA+ID4gKysrDQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+IGIvTWRlTW9kdWxl UGtnL0FwcGxpY2F0aW9uL0Jvb3RNYW5hZ2VyTWVudUFwcC9Cb290TWFuYWdlck1lbnUuDQo+ID4g PiA+ID4gPiBjDQo+ID4gPiA+ID4gPiBAQCAtMSw3ICsxLDcgQEANCj4gPiA+ID4gPiA+ICAvKiog QGZpbGUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICBUaGUgYXBwbGljYXRpb24gdG8gc2hv dyB0aGUgQm9vdCBNYW5hZ2VyIE1lbnUuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiAtQ29weXJpZ2h0IChjKSAyMDExIC0gMjAxOCwgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiA+ID4gPiA+IHJlc2VydmVkLjxCUj4NCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiArQ29weXJpZ2h0IChjKSAyMDExIC0gMjAyMSwgSW50ZWwgQ29ycG9y YXRpb24uIEFsbCByaWdodHMNCj4gPiA+ID4gPiA+ICtyZXNlcnZlZC48QlI+DQo+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAg KiovDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gQEAgLTQ1LDkgKzQ1LDU2IEBAIFByaW50U3Ry aW5nQXQgKA0KPiA+ID4gPiA+ID4gICAgSU4gQ0hBUjE2ICAgICpTdHJpbmcNCj4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiAgICApDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gIHsNCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiArICBVSU5UTiAgICAgICAgIFNjcmVlbldpZHRoOw0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ICsgIFVJTlROICAgICAgICAgU2NyZWVuUm93czsNCj4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiArICBDSEFSMTYgICAgICAgICpUdXJuY2F0ZVN0cmluZzsNCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiArICBFRklfU1RBVFVTICAgIFN0YXR1czsNCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiArICBVSU5UTiAgICAgICAgIFNob3dpbmdMZW5ndGg7DQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICBnU1QtPkNvbk91dC0+U2V0 Q3Vyc29yUG9zaXRpb24gKGdTVC0+Q29uT3V0LCBDb2x1bW4sIFJvdyk7DQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gLSAgcmV0dXJuIFByaW50IChMIiVzIiwgU3RyaW5nKTsNCj4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgZ1NULT5Db25PdXQt PlF1ZXJ5TW9kZSAoDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAg Z1NULT5Db25PdXQsDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAg Z1NULT5Db25PdXQtPk1vZGUtPk1vZGUsDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgJlNjcmVlbldpZHRoLA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICsgICAg ICAgICAgICAgICAgICZTY3JlZW5Sb3dzDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgKTsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gKyAgaWYgKENvbHVtbiA+IChTY3JlZW5XaWR0aCAtIDEpIHx8IFJvdyA+IChT Y3JlZW5Sb3dzIC0gMSkpIHsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiArICAgIHJldHVybiAw Ow0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICsgIH0NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiArDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgaWYgKChTdHJMZW4gKFN0cmluZykgKyBD b2x1bW4pID4gKFNjcmVlbldpZHRoIC0gMSkpIHsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAr ICAgIC8vDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgICAvLyB8ICAgICAgLSBTY3JlZW5X aWR0aCAtICAgICAgIHwNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiArICAgIC8vIC4uLkNvbHVt bi4uLi4uLi4uLi4uLi4uLi4uLi4uLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICsgICAgLy8g VHVybmNhdGVTdHJpbmcgbGVuZ3RoIHNob3VsZCBsZWF2ZSBvbmUgY2hhcmFjdGVyIGZvcg0KPiA+ ID4gPiA+ID4gKyBkcmF3IGJveA0KPiA+ID4gPiBhbmQNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiArICAgIC8vIHJlcXVpcmUgb25lIGNoYXJhY3RlciBmb3Igc3RyaW5nIGVuZC4NCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiArICAgIC8vDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgICBT aG93aW5nTGVuZ3RoID0gU2NyZWVuV2lkdGggLSBDb2x1bW4gLSAxOw0KPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ICsgICAgVHVybmNhdGVTdHJpbmcgPSBBbGxvY2F0ZVBvb2wgKChTaG93aW5nTGVu Z3RoICsgMSkgKiBzaXplb2YNCj4gPiA+ID4gKENIQVIxNikpOw0KPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ICsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiArICAgIGlmIChUdXJuY2F0ZVN0cmlu ZyA9PSBOVUxMKSB7DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgICAgIHJldHVybiAwOw0K PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICsgICAgfQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiArICAgIFN0YXR1cyA9IFN0cm5DcHlTIChUdXJu Y2F0ZVN0cmluZywgU2hvd2luZ0xlbmd0aCArIDEsDQo+ID4gPiA+ID4gPiArIFN0cmluZywNCj4g PiA+ID4gPiA+IFNob3dpbmdMZW5ndGggLSAzKTsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAr DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7 DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgICAgIEZyZWVQb29sIChUdXJuY2F0ZVN0cmlu Zyk7DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgICAgIHJldHVybiAwOw0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ICsgICAgfQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiArICAgICooVHVybmNhdGVTdHJpbmcgKyBTaG93aW5nTGVuZ3Ro IC0gMykgPSBMJy4nOw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICsgICAgKihUdXJuY2F0ZVN0 cmluZyArIFNob3dpbmdMZW5ndGggLSAyKSA9IEwnLic7DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gKyAgICAqKFR1cm5jYXRlU3RyaW5nICsgU2hvd2luZ0xlbmd0aCAtIDEpID0gTCcuJzsNCj4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiArICAgICooVHVybmNhdGVTdHJpbmcgKyBTaG93aW5nTGVu Z3RoKSAgICAgPSBMJ1wwJzsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiArICAgIFNob3dpbmdM ZW5ndGggPSBQcmludCAoTCIlcyIsIFR1cm5jYXRlU3RyaW5nKTsNCj4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiArICAgIEZyZWVQb29sIChUdXJuY2F0ZVN0cmluZyk7DQo+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gKyAgICByZXR1cm4gU2hvd2luZ0xlbmd0aDsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiArICB9IGVsc2Ugew0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICsgICAgcmV0dXJuIFBy aW50IChMIiVzIiwgU3RyaW5nKTsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiArICB9DQo+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gIH0NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ICAvKioNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBAQCAtNjgs NyArMTE1LDIyIEBAIFByaW50Q2hhckF0ICgNCj4gPiA+ID4gPiA+ICAgIENIQVIxNiAgICAgICBD aGFyYWN0ZXINCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICApDQo+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gIHsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiArICBVSU5UTiAgICAgICAgIFNj cmVlbldpZHRoOw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICsgIFVJTlROICAgICAgICAgU2Ny ZWVuUm93czsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gICAgZ1NULT5Db25PdXQtPlNldEN1cnNvclBvc2l0aW9uIChnU1QtPkNvbk91dCwgQ29s dW1uLCBSb3cpOw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiArICBnU1QtPkNvbk91dC0+UXVlcnlNb2RlICgNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiArICAgICAgICAgICAgICAgICBnU1QtPkNvbk91dCwNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiArICAgICAgICAgICAgICAgICBnU1QtPkNvbk91dC0+TW9kZS0+TW9kZSwNCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAmU2NyZWVuV2lkdGgsDQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgJlNjcmVlblJvd3MNCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICApOw0KPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ICsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiArICBpZiAoQ29sdW1uID4gKFNjcmVl bldpZHRoIC0gMSkgfHwgUm93ID4gKFNjcmVlblJvd3MgLSAxKSkgew0KPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ICsgICAgcmV0dXJuIDA7DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgfQ0K PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICBy ZXR1cm4gUHJpbnQgKEwiJWMiLCBDaGFyYWN0ZXIpOw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ICB9DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBA QCAtMTkzLDcgKzI1NSwxMSBAQCBJbml0aWFsaXplQm9vdE1lbnVTY3JlZW4gKA0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICBNYXhQcmludFJvd3MgPSBSb3cgLSA2Ow0K PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgIFVuU2VsZWN0YWJsZUl0bWVzID0gVElUTEVfVE9L RU5fQ09VTlQgKyAyICsNCj4gPiA+ID4gPiBIRUxQX1RPS0VOX0NPVU5UICsgMjsNCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiAtICBCb290TWVudURhdGEtPk1lbnVTY3JlZW4uV2lkdGggPSBNYXhT dHJXaWR0aCArIDg7DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgaWYgKE1heFN0cldpZHRo ICsgOCA+IENvbHVtbikgew0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICsgICAgQm9vdE1lbnVE YXRhLT5NZW51U2NyZWVuLldpZHRoID0gQ29sdW1uOw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ICsgIH0gZWxzZSB7DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgICBCb290TWVudURhdGEt Pk1lbnVTY3JlZW4uV2lkdGggPSBNYXhTdHJXaWR0aCArIDg7DQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gKyAgfQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgIGlmIChCb290TWVudURhdGEt Pkl0ZW1Db3VudCArIFVuU2VsZWN0YWJsZUl0bWVzID4NCj4gPiA+ID4gPiA+IE1heFByaW50Um93 cykgew0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgICAgQm9vdE1lbnVEYXRhLT5NZW51U2Ny ZWVuLkhlaWdodCA9IE1heFByaW50Um93czsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAgICAg IEJvb3RNZW51RGF0YS0+U2Nyb2xsQmFyQ29udHJvbC5IYXNTY3JvbGxCYXIgPSBUUlVFOw0KPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+IC0tDQo+ID4gPiA+ID4gPiAyLjMxLjEud2luZG93cy4xDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiANCj4gPiA+ ID4NCg0K