From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web10.43797.1681924324016464136 for ; Wed, 19 Apr 2023 10:12:04 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=PQpsfT6U; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: benny.lin@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1681924324; x=1713460324; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=QSISqeu7RaSPGctMbtAQeFFFHQbobfmLuezIwOcYl7k=; b=PQpsfT6UEX+uRD67BEu9DeDOhOa3E7IzI3ysEEIIhHdHIi3oCGovKnKj C0N2yTzOyFnGw8c3F37Ypd6I/E5aCElBkG3ugrlX5DhGYNmMH5JfsDLUM DzWgp+eYi2HjNvBXqD8sFRvE5ekCYp/CkNLsDHvzWl7+3QgTTbTx/0w5G 95fYENTNHKEXr5/wgPJ3Zo0GC53JjTEQKlHR5TSnVPUDy3kqUuU8XFSYG UMI/FIHDWlfh51jUx4KQiGXKuNxK0Ccix3Mq0s5XhyxWVKb+hlp+zfFC0 W8q0NNNjsprqXwTLXpmGTyYGHJ2fzvBeQjGkBaf0Tu1EHgnYKhsk4U6s9 A==; X-IronPort-AV: E=McAfee;i="6600,9927,10685"; a="410739583" X-IronPort-AV: E=Sophos;i="5.99,208,1677571200"; d="scan'208";a="410739583" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2023 10:12:03 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10685"; a="815691764" X-IronPort-AV: E=Sophos;i="5.99,208,1677571200"; d="scan'208";a="815691764" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga004.jf.intel.com with ESMTP; 19 Apr 2023 10:12:03 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) 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.2507.23; Wed, 19 Apr 2023 10:12:02 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Wed, 19 Apr 2023 10:12:02 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.108) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Wed, 19 Apr 2023 10:12:02 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nsdMVOHo4uZ+VavUAoDGYPbzu96bjrfa1H71Y6mVG//PUZ2bDeqlN2qhCXB9SRITHD4sP1/UrK4Sff4XVbkGIyCamjohOL6AxLemhsej2uXy0tWn/RheUt4cfu2CXRXnM2PynY6/NQ5GQHPCfeWrKVhkBu1Htv2GBh89EYcgQ4W+MCqGMRLPK4Upb7lhHuioYkFAK0cHAxJbzFwxKJfABqs1tOqIYTPdPQBeziSe8jwOVeZocO7EzOrxJSUMJ8Jc5GmsFTQZhPAhMa/7o/r7W23UsbeRp0hhbwB8Ch0RSEaW+RirXlOghlLopuuPT2bsPYuLjAZKUkoaYU2RJ1NpKw== 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=QSISqeu7RaSPGctMbtAQeFFFHQbobfmLuezIwOcYl7k=; b=ZVuMtBOET95mGmX2nxjQKGearWfExYh4749c+xTe32QQHuf24/IhpVndih3Dse11FkGTOrtxh7UHJZjiKW7MldhIk3iqm5t+UUWGv7PS833y4SG20HK1gEkkD1pw9/VZcvIyT42FzNq37unAo4NwLSGefzmo7C0KGdXPy4AYKDekeHksABsDdqf8EjtMI4/cZLC2TJCFnE1Pol6WQfliA5ET6RBkW5kV+3lkp1ZjIG0vvrup3Wr1bX76VgbvShFiuq2HnJEYTjOqx+qOivelcekf7PaUAfrxoRNV3rOimyn3J3LYQvMUGQIwutx4qmx3FMUp2qmH0elaHK6cW0CcMw== 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 Received: from BYAPR11MB3557.namprd11.prod.outlook.com (2603:10b6:a03:b4::21) by BL1PR11MB5494.namprd11.prod.outlook.com (2603:10b6:208:31d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6298.45; Wed, 19 Apr 2023 17:11:58 +0000 Received: from BYAPR11MB3557.namprd11.prod.outlook.com ([fe80::98f:a972:7cba:4655]) by BYAPR11MB3557.namprd11.prod.outlook.com ([fe80::98f:a972:7cba:4655%5]) with mapi id 15.20.6319.022; Wed, 19 Apr 2023 17:11:58 +0000 From: "Benny Lin" To: "Kinney, Michael D" , "devel@edk2.groups.io" CC: "Gao, Liming" , "Liu, Zhiguang" , Pedro Falcato Subject: Re: [PATCH v3 2/3] MdePkg: Support FDT library. Thread-Topic: [PATCH v3 2/3] MdePkg: Support FDT library. Thread-Index: AQHZcO5qW6oN5UWoSkGio7T2Nj6xsq8yzIKAgAALeHA= Date: Wed, 19 Apr 2023 17:11:57 +0000 Message-ID: References: <20230417053505.670-1-benny.lin@intel.com> <20230417053505.670-3-benny.lin@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BYAPR11MB3557:EE_|BL1PR11MB5494:EE_ x-ms-office365-filtering-correlation-id: 99db9d77-cfe3-4d74-edca-08db40f92ee0 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0skYmOECKuGuUhFxO7RgnlL8fBs4GSAKKhUjD9QbrXOBZRzjkpwH+0avX56DIQZx3806WabiUKwdUsYBVX9ErdY1JwZuot3BHolrbqGKrRgg+nte57BWs3hcn93V6T/521tbxIH3zz8bof10O1IE1KWA9SHlegdIiYhAI+3+ndzQXNfMNhrda1UVCWJKGA7iBW77RMn5BtQErZw5huBN8Lc6fGZ35HDzB3SWQ5pQrQ8t84CfujiCT/533vzFwDEbq14VKTL04tWZfHi+6YuFV+HXTwiXsIINis415Tpi4OH0nwrzG3KJIOmsG0tBPJ96gyXDRICqJkxMw9uNZtLvZG6IxaJBIHIMlt1COGBFRnh7vU1Y5lx/fYYr0JP2rQwGkM7oEhjskCIXlGReHeMrpoEgs1zgphKf/ubLEVGIUS6ta0Vg9ms/XfBSvMPfmX6Nh2dUIM5U9+M9e4SSsStZfWsVC7hwYr7wkhgZ4DanrnjGm8i+oQ/vTbUaB4x83B7gFGMc/zG6TwXlQARbzTcC7kP+3ueNZsap1kTNx9gc1yebhHwkaCRX3HIFOjjoB+YhW2Kv0vZqxnCh0zj4u8ukwbHn842/TS9bcohzjm/AHwdE2gmZreN/ZoW9EsGVMN5wDuqoXSkIXT42QA3TIs5mfw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR11MB3557.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(136003)(346002)(366004)(39860400002)(376002)(396003)(451199021)(8676002)(5660300002)(8936002)(41300700001)(4326008)(52536014)(76116006)(66446008)(66946007)(66476007)(66556008)(30864003)(64756008)(316002)(2906002)(54906003)(110136005)(19627235002)(86362001)(45080400002)(478600001)(966005)(7696005)(26005)(38070700005)(38100700002)(53546011)(186003)(9686003)(6506007)(82960400001)(122000001)(55016003)(71200400001)(33656002)(83380400001)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ak1mZ3o3VVlMUloybU5hd0hCOHhhMnhmVWhKcUNmNXA2NGJib2hsUHFIL2RJ?= =?utf-8?B?ZWU4NHpXVHg5S3JQMlJaSlViNWt6LzVNTWE4RjlLK3FqV2dxUk1vc09aUjF0?= =?utf-8?B?NWh4NnVIb0R2OFMrWk5SYllGb3lnNmcvMlVDQXN5S0IrRGJ2T2hMajdockV3?= =?utf-8?B?Qmkzb0xRdysvRWhWRFNMS0tzWGwxcWEydXVuaVBCSy9leEdDVFhYd3Q1N3U1?= =?utf-8?B?QmVYc3d4SjV1d1BkWEp2QkNEc1FlaDlYMXJpRit2OUNWMWphYzRrQk5pcEZp?= =?utf-8?B?NW5Sc3haTDBTTTN2Q1E0ZkJOU1lwY0hqNkxZd3ExSEVEbjI5OXRlc0NReGdF?= =?utf-8?B?Y3VWeHhOVEpBc0ZCMm5lSFdVV3l5V0x6UTBVUG5aNHBKa1NFT2RaTzlhblNo?= =?utf-8?B?SFU3TElHZDBkMmRnQTFkcmllWFIxLzZ3Y0UyMWtsZkFNK2xtYVVMb0w4MlA0?= =?utf-8?B?d0VWY084ZzR0QlNpVW1adGxocE1adnV4elREcnJERU9QdGUyR3htaEszajQ3?= =?utf-8?B?di83SkYwSEdydGxWZURtSEE0YjJTUGI5dkJoUXoxS0tWYjRDSXB0MjF0L0Jp?= =?utf-8?B?bEtxV09VSGdTT09naVREQXBKNEIxdUdJbDBKZEFSc2dnYWx1eXQ4R0F4TjVJ?= =?utf-8?B?bmN0dG5ieXgxVGk0RVZqN0ViVTByQWhBWE83bmRXU0F5U215WUpPSVd2OEQw?= =?utf-8?B?THJleE83ekhaMHpLM0dIOEVYNHpMbWZBQm1mL2MxeEZBSVRhMDYwRmZYRE04?= =?utf-8?B?SjJUK29PUmNOeXVrZk5TUy9iRWVSMEhMdFRzb3E2Q3JLYXVmWFZrK0E4aTU3?= =?utf-8?B?ZEUycEtQQ2hMVDhPak9IMTF5TEw1ZW0zdzdOdmd3L1dwNXJOV3lYNFdzYWhS?= =?utf-8?B?SlQzZW5QaGJQanM0UlAzYmhPNEFCTVpCWHovT3Y4THd3ZkdsbHdsZ2prY1NK?= =?utf-8?B?NE8yN2tpNWNHZ2JQUjZRSGJUN09EM1k3SnovT2g4My85WG1qNm15UWpjR3VP?= =?utf-8?B?R1BtbDVtcnh0cmgyeWxJU0s1amdvaTdBd2N5eG51VE15cDY2cFdnYjZFWWp6?= =?utf-8?B?a09XWVBERnZ6TnhmMzJCUHNUYkI0cWhMdmJJbTRHSXVQajU4OG5HeDZDL0xU?= =?utf-8?B?YVF0S2NUd3BqREJIMlVFNW1WWkdDVy8yTDA2U1lvdkM0aWJSTElUQ1E0OWtk?= =?utf-8?B?bmJhWm1GYXl2NEQ2YTZGamM4TGZNc1gzMXZITVErNElHZkJhckR6VEFocXFD?= =?utf-8?B?Yk5lVFB4VkZwTTMxSnJ4MThSdlQzeWowMVdyeVJnMnVybk03Y1duVWQzeFJn?= =?utf-8?B?VCtHaFZoTGwzSG81dVYzckVmakNRTHlyZXJRT2JxTHdQeERYQkJmeHNJQzQy?= =?utf-8?B?VWxGQklTakJpNHpEQVI3RC80ZER4YkJzWTBtQ0JoODM4T3ZaSEZTT0JyUFJ6?= =?utf-8?B?bGQ2dDEwVGhxdjVSWEh2TVpjUEs5Rm9OVW1udlZrYkZMWkQwWVE1dGRZQURI?= =?utf-8?B?bUxqYzB2UVZQcTFVYWF3QnBvTlhTSWdSeUp0MWU0aFBKZGI5UmdMNTQ5bnNk?= =?utf-8?B?QzY2NmFERVFRVnRFNTlMcmpFTHIwRW5zbDE1L1ZmMzRiczN0U04zd2gwSFVR?= =?utf-8?B?blJFa0dxWmh0cUpSV1ZRaXUzajBONFQvR3lUY09TajYrR1pYbExleFZIUUhi?= =?utf-8?B?bUcrZzdEUVVxNXhoeENTZTl1VFdUb1JYd2FnSFZLVjk0MjJkcUxpYStDU2dl?= =?utf-8?B?ZHpCQ2J0UHFkNXZLeDhvakFzYkpmZDAwK2Q1bStrMWl6NW1Ua0RrRU5ablFp?= =?utf-8?B?K25ISFlhUkhkTmdNQ2NzVGVjTDQxVWthOTlTb01wSFBiSTVsZS9WVHhtU1Vn?= =?utf-8?B?UHdqeHZJaU9wZ1N5QmlCZVlLa3RnRCtDRk95WUlRZTIvT05zQ255NFFuUjlZ?= =?utf-8?B?U3BQVmFHNFhVU2wvZGdnRDRIODE1T1dtN1pwZDJ6VGFkUnZyWWhLZnRzd3By?= =?utf-8?B?a1V6NTJuZGIrbHNQb2ljMUFBMGNMY08vUy82c3pzZm4zTWh4d0ZrUEo5ZXhK?= =?utf-8?B?MXEwc045a2JSdHhGUlB3UXVuRjJnY3VhRkYzVEUreG5oOGowdXkzOHlWL05i?= =?utf-8?Q?wrQOK0MmHMKu304/Rti8NOb1x?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR11MB3557.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 99db9d77-cfe3-4d74-edca-08db40f92ee0 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2023 17:11:58.0043 (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: YTSv3kJnE72sQAhqgO6qVtJ7RaF9u7Fx+3Ekxe9KOGQnoauwRyNu3i5z5CLSf5lYZFvxeVYS7rlF0rEO53noKQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB5494 Return-Path: benny.lin@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UGxlYXNlIGZpbmQgbXkgZmVlZGJhY2sgYmVsb3cuDQpXZSBjYW4gcmVtb3ZlIEZEVF9SRVNFUlZF X0VOVFJZIGJ1dCBrZWVwIEZEVF9OT0RFX0hFQURFUiwgd2hhdCBkbyB5b3UgdGhpbms/DQoNClFR UQ0KQmVubnkNCg0KPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+RnJvbTogS2lubmV5LCBN aWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPiANCj5TZW50OiBXZWRuZXNkYXks IEFwcmlsIDE5LCAyMDIzIDExOjU0IFBNDQo+VG86IExpbiwgQmVubnkgPGJlbm55LmxpbkBpbnRl bC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPkNjOiBHYW8sIExpbWluZyA8Z2FvbGltaW5n QGJ5b3NvZnQuY29tLmNuPjsgTGl1LCBaaGlndWFuZyA8emhpZ3VhbmcubGl1QGludGVsLmNvbT47 IFBlZHJvIEZhbGNhdG8gPHBlZHJvLmZhbGNhdG9AZ21haWwuY29tPjsgS2lubmV5LCBNaWNoYWVs IEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPlN1YmplY3Q6IFJFOiBbUEFUQ0ggdjMg Mi8zXSBNZGVQa2c6IFN1cHBvcnQgRkRUIGxpYnJhcnkuDQo+DQo+QSBmZXcgY29tbWVudHMgYmVs b3cuDQo+DQo+TWlrZQ0KPg0KPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+IEZyb206 IExpbiwgQmVubnkgPGJlbm55LmxpbkBpbnRlbC5jb20+DQo+PiBTZW50OiBTdW5kYXksIEFwcmls IDE2LCAyMDIzIDEwOjM1IFBNDQo+PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4+IENjOiBM aW4sIEJlbm55IDxiZW5ueS5saW5AaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQgDQo+PiA8 bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBHYW8sIExpbWluZyA8Z2FvbGltaW5nQGJ5b3Nv ZnQuY29tLmNuPjsgDQo+PiBMaXUsIFpoaWd1YW5nIDx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsg UGVkcm8gRmFsY2F0byANCj4+IDxwZWRyby5mYWxjYXRvQGdtYWlsLmNvbT4NCj4+IFN1YmplY3Q6 IFtQQVRDSCB2MyAyLzNdIE1kZVBrZzogU3VwcG9ydCBGRFQgbGlicmFyeS4NCj4+IA0KPj4gRnJv bTogQmVubnkgTGluIDxiZW5ueS5saW5AaW50ZWwuY29tPg0KPj4gDQo+PiBSRUY6IGh0dHBzOi8v YnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM5Mg0KPj4gQWRkIEZEVCBz dXBwb3J0IGluIEVESzIgYnkgc3VibW9kdWxlIDNyZCBwYXJ0eSBsaWJmZHQNCj4+IChodHRwczov L2dpdGh1Yi5jb20vZGV2aWNldHJlZS1vcmcvcHlsaWJmZHQvdHJlZS9tYWluL2xpYmZkdCkNCj4+ IGFuZCByZWZlciB0byBMaWJjTGliIGltcGxlbWVudGF0aW9uIGJ5IFBlZHJvLg0KPj4gDQo+PiBD YzogTWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+PiBDYzog TGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPj4gQ2M6IFpoaWd1YW5nIExp dSA8emhpZ3VhbmcubGl1QGludGVsLmNvbT4NCj4+IEFja2VkLWJ5OiBQZWRybyBGYWxjYXRvIDxw ZWRyby5mYWxjYXRvQGdtYWlsLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IEJlbm55IExpbiA8YmVu bnkubGluQGludGVsLmNvbT4NCj4+IC0tLQ0KPj4gIE1kZVBrZy9JbmNsdWRlL0xpYnJhcnkvRmR0 TGliLmggICAgICAgICAgIHwgMzE0ICsrKysrKysrKysrKysrKysrKysrDQo+PiAgTWRlUGtnL0xp YnJhcnkvQmFzZUZkdExpYi9CYXNlRmR0TGliLmluZiAgfCAgNjIgKysrKyAgDQo+PiBNZGVQa2cv TGlicmFyeS9CYXNlRmR0TGliL0Jhc2VGZHRMaWIudW5pICB8ICAxNCArDQo+PiAgTWRlUGtnL0xp YnJhcnkvQmFzZUZkdExpYi9GZHRMaWIuYyAgICAgICAgfCAzMDEgKysrKysrKysrKysrKysrKysr Kw0KPj4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvTGliRmR0U3VwcG9ydC5oIHwgIDk5ICsr KysrKyAgDQo+PiBNZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0xpYkZkdFdyYXBwZXIuYyB8IDE3 MyArKysrKysrKysrKw0KPj4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvbGltaXRzLmggICAg ICAgIHwgIDEwICsNCj4+ICBNZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGJvb2wuaCAgICAg ICB8ICAxMCArDQo+PiAgTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRkZWYuaCAgICAgICAg fCAgMTAgKw0KPj4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvc3RkaW50LmggICAgICAgIHwg IDEwICsNCj4+ICBNZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGxpYi5oICAgICAgICB8ICAx MCArDQo+PiAgTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdHJpbmcuaCAgICAgICAgfCAgMTAg Kw0KPj4gIE1kZVBrZy9NZGVQa2cuY2kueWFtbCAgICAgICAgICAgICAgICAgICAgIHwgIDE3ICst DQo+PiAgTWRlUGtnL01kZVBrZy5kZWMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKw0K Pj4gIE1kZVBrZy9NZGVQa2cuZHNjICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsNCj4+ ICAxNSBmaWxlcyBjaGFuZ2VkLCAxMDQzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+ PiANCj4+IGRpZmYgLS1naXQgYS9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0ZkdExpYi5oIA0KPj4g Yi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0ZkdExpYi5oIG5ldyBmaWxlIG1vZGUgMTAwNjQ0IGlu ZGV4IA0KPj4gMDAwMDAwMDAwMC4uZDU5Yjc0OWMyNQ0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysr IGIvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9GZHRMaWIuaA0KPj4gQEAgLTAsMCArMSwzMTQgQEAN Cj4+ICsvKiogQGZpbGUNCj4+IA0KPj4gKyAgRmxhdHRlbmVkIERldmljZSBUcmVlIExpYnJhcnku DQo+PiANCj4+ICsNCj4+IA0KPj4gKyAgQ29weXJpZ2h0IChjKSAyMDIzLCBJbnRlbCBDb3Jwb3Jh dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+PiANCj4+ICsgIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+PiANCj4+ICsNCj4+IA0KPj4gKyoqLw0K Pj4gDQo+PiArDQo+PiANCj4+ICsjaWZuZGVmIEZEVF9MSUJfSF8NCj4+IA0KPj4gKyNkZWZpbmUg RkRUX0xJQl9IXw0KPj4gDQo+PiArDQo+PiANCj4+ICsvLy8NCj4+IA0KPj4gKy8vLyBGbGF0dGVu ZWQgRGV2aWNlIFRyZWUgZGVmaW5pdGlvbg0KPj4gDQo+PiArLy8vDQo+PiANCj4+ICt0eXBlZGVm IHN0cnVjdCB7DQo+PiANCj4+ICsgIFVJTlQzMiAgICBNYWdpYzsgICAgICAgICAgICAgICAvKiBt YWdpYyB3b3JkIEZEVF9NQUdJQyAqLw0KPj4gDQo+PiArICBVSU5UMzIgICAgVG90YWxTaXplOyAg ICAgICAgICAgLyogdG90YWwgc2l6ZSBvZiBEVCBibG9jayAqLw0KPj4gDQo+PiArICBVSU5UMzIg ICAgT2Zmc2V0RHRTdHJ1Y3Q7ICAgICAgLyogb2Zmc2V0IHRvIHN0cnVjdHVyZSAqLw0KPj4gDQo+ PiArICBVSU5UMzIgICAgT2Zmc2V0RHRTdHJpbmdzOyAgICAgLyogb2Zmc2V0IHRvIHN0cmluZ3Mg Ki8NCj4+IA0KPj4gKyAgVUlOVDMyICAgIE9mZnNldE1lbVJzdm1hcDsgICAgIC8qIG9mZnNldCB0 byBtZW1vcnkgcmVzZXJ2ZSBtYXAgKi8NCj4+IA0KPj4gKyAgVUlOVDMyICAgIFZlcnNpb247ICAg ICAgICAgICAgIC8qIGZvcm1hdCB2ZXJzaW9uICovDQo+PiANCj4+ICsgIFVJTlQzMiAgICBMYXN0 Q29tcFZlcnNpb247ICAgICAvKiBsYXN0IGNvbXBhdGlibGUgdmVyc2lvbiAqLw0KPj4gDQo+PiAr DQo+PiANCj4+ICsgIC8qIHZlcnNpb24gMiBmaWVsZHMgYmVsb3cgKi8NCj4+IA0KPj4gKyAgVUlO VDMyICAgIEJvb3RDcHVpZFBoeXM7ICAgICAgIC8qIFdoaWNoIHBoeXNpY2FsIENQVSBpZCB3ZSdy ZQ0KPj4gDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vdGluZyBv biAqLw0KPj4gDQo+PiArICAvKiB2ZXJzaW9uIDMgZmllbGRzIGJlbG93ICovDQo+PiANCj4+ICsg IFVJTlQzMiAgICBTaXplRHRTdHJpbmdzOyAgICAgICAvKiBzaXplIG9mIHRoZSBzdHJpbmdzIGJs b2NrICovDQo+PiANCj4+ICsNCj4+IA0KPj4gKyAgLyogdmVyc2lvbiAxNyBmaWVsZHMgYmVsb3cg Ki8NCj4+IA0KPj4gKyAgVUlOVDMyICAgIFNpemVEdFN0cnVjdDsgICAgICAgIC8qIHNpemUgb2Yg dGhlIHN0cnVjdHVyZSBibG9jayAqLw0KPj4gDQo+PiArfSBGRFRfSEVBREVSOw0KPg0KPkkgc2Vl IHRoZSBtYWNyb3MgYmVsb3cgdXNlIFN3YXBCeXRlczMyKCkgb24gYWxsIHRoZSBmaWVsZHMgZnJv bSB0aGlzIHN0cnVjdHVyZS4gIERvZXMgdGhpcyBtZWFuIHRoaXMgc3RydWN0dXJlIGlzIGJpZyA+ ZW5kaWFuPyAgSWYgdGhhdCBpcyB0aGUgY2FzZSwgdGhlbiB0aGUgZGVzY3JpcHRpb24gb2YgdGhp cyBzdHJ1Y3R1cmUgYW5kIGFsbCBpbmRpdmlkdWFsIGZpZWxkcyBtdXN0IG1ha2UgdGhhdCB2ZXJ5 IGNsZWFyID5zbyBhbnkgY29uc3VtZXIgb2YgdGhlIHN0cnVjdHVyZSBrbm93cyBpdCBkb2VzIG5v dCBmb2xsb3cgdGhlIGRlZmF1bHQgZW5kaWFubmVzcyBvZiBVRUZJL1BJIGFuZCB0aGF0IGNvbnN1 bWVycyA+bXVzdCBlaXRoZXIgdXNlIHRoZSBtYWNyb3Mgb3IgY29uc3VtZXJzIG11c3QgdXNlIFN3 YXBCeXRlczMyKCkgb24gdGhlaXIgb3duIHdoZW4gdXNpbmcgdGhpcyBzdHJ1Y3R1cmUgZGlyZWN0 bHkuDQoNClllcywgaXQncyBiaWcgZW5kaWFuLiBJIHdpbGwgY29tcGxldGUgbW9yZSBkZXNjcmlw dGlvbnMgaW4gcGF0Y2ggdjQuDQoNCj4+IA0KPj4gKw0KPj4gDQo+PiArdHlwZWRlZiBzdHJ1Y3Qg ew0KPj4gDQo+PiArICBVSU5UNjQgICAgQWRkcmVzczsNCj4+IA0KPj4gKyAgVUlOVDY0ICAgIFNp emU7DQo+PiANCj4+ICt9IEZEVF9SRVNFUlZFX0VOVFJZOw0KPg0KPg0KPkkgZG8gbm90IHNlZSB0 aGlzIHR5cGUgdXNlZCBhbnl3aGVyZSBpbiB0aGUgbGliIGNsYXNzIG9yIHRoZSBsaWIgaW5zdGFu Y2UuDQo+Q2FuIGl0IGJlIHJlbW92ZWQ/DQoNCkkgdGhpbmsgd2UgY2FuIHJlbW92ZSBpdCBiZWNh dXNlIGl0IG1pZ2h0IGJlIG5vdCB1c2VkIGZvciBmdXJ0aGVyIHVzYWdlIG9mIEZEVCBzdXBwb3J0 Lg0KDQo+DQo+PiANCj4+ICsNCj4+IA0KPj4gK3R5cGVkZWYgc3RydWN0IHsNCj4+IA0KPj4gKyAg VUlOVDMyICAgIFRhZzsNCj4+IA0KPj4gKyAgQ0hBUjggICAgIE5hbWVbXTsNCj4+IA0KPj4gK30g RkRUX05PREVfSEVBREVSOw0KPg0KPg0KPkkgZG8gbm90IHNlZSB0aGlzIHR5cGUgdXNlZCBhbnl3 aGVyZSBpbiB0aGUgbGliIGNsYXNzIG9yIHRoZSBsaWIgaW5zdGFuY2UuDQo+Q2FuIGl0IGJlIHJl bW92ZWQ/DQoNCldoZW4gd2UgbmVlZCByZXRyaWV2ZSBhIG5vZGUgZnJvbSBhIEZEVCBibG9iLCB3 ZSB3aWxsIGdldCBhIG5vZGUgb2Zmc2V0IHRoZW4gd2UgY291bGQgdXNlIHRoZSBzdHJ1Y3QgdG8g bWFwIHRoZSBub2RlIGNvbnRlbnQuIEl0J3MgdmVyeSB1c2VmdWwuDQoNCj4NCj4+IA0KPj4gKw0K Pj4gDQo+PiArdHlwZWRlZiBzdHJ1Y3Qgew0KPj4gDQo+PiArICBVSU5UMzIgICAgVGFnOw0KPj4g DQo+PiArICBVSU5UMzIgICAgTGVuZ3RoOw0KPj4gDQo+PiArICBVSU5UMzIgICAgTmFtZU9mZnNl dDsNCj4+IA0KPj4gKyAgQ0hBUjggICAgIERhdGFbXTsNCj4+IA0KPj4gK30gRkRUX1BST1BFUlRZ Ow0KPj4gDQo+PiArDQo+PiANCj4+ICsjZGVmaW5lIEZEVF9HRVRfSEVBREVSKEZkdCwgRmllbGQp ICBTd2FwQnl0ZXMzMigoKENPTlNUIEZEVF9IRUFERVIgDQo+PiArKikoRmR0KSktPkZpZWxkKQ0K Pj4gDQo+PiArDQo+PiANCj4+ICsjZGVmaW5lIEZEVF9NQUdJQyhGZHQpICAgICAgICAgICAgICAo RkRUX0dFVF9IRUFERVIoRmR0LCBNYWdpYykpDQo+PiANCj4+ICsjZGVmaW5lIEZEVF9UT1RBTF9T SVpFKEZkdCkgICAgICAgICAoRkRUX0dFVF9IRUFERVIoRmR0LCBUb3RhbFNpemUpKQ0KPj4gDQo+ PiArI2RlZmluZSBGRFRfT0ZGU0VUX0RUX1NUUlVDVChGZHQpICAgKEZEVF9HRVRfSEVBREVSKEZk dCwgT2Zmc2V0RHRTdHJ1Y3QpKQ0KPj4gDQo+PiArI2RlZmluZSBGRFRfT0ZGU0VUX0RUX1NUUklO R1MoRmR0KSAgKEZEVF9HRVRfSEVBREVSKEZkdCwgDQo+PiArT2Zmc2V0RHRTdHJpbmdzKSkNCj4+ IA0KPj4gKyNkZWZpbmUgRkRUX09GRlNFVF9NRU1fUlNWTUFQKEZkdCkgIChGRFRfR0VUX0hFQURF UihGZHQsIA0KPj4gK09mZnNldE1lbVJzdm1hcCkpDQo+PiANCj4+ICsjZGVmaW5lIEZEVF9WRVJT SU9OKEZkdCkgICAgICAgICAgICAoRkRUX0dFVF9IRUFERVIoRmR0LCBWZXJzaW9uKSkNCj4+IA0K Pj4gKyNkZWZpbmUgRkRUX0xBU1RfQ09NUF9WRVJTSU9OKEZkdCkgIChGRFRfR0VUX0hFQURFUihG ZHQsIA0KPj4gK0xhc3RDb21wVmVyc2lvbikpDQo+PiANCj4+ICsjZGVmaW5lIEZEVF9CT09UX0NQ VUlEX1BIWVMoRmR0KSAgICAoRkRUX0dFVF9IRUFERVIoRmR0LCBCb290Q3B1aWRQaHlzKSkNCj4+ IA0KPj4gKyNkZWZpbmUgRkRUX1NJWkVfRFRfU1RSSU5HUyhGZHQpICAgIChGRFRfR0VUX0hFQURF UihGZHQsIFNpemVEdFN0cmluZ3MpKQ0KPj4gDQo+PiArI2RlZmluZSBGRFRfU0laRV9EVF9TVFJV Q1QoRmR0KSAgICAgKEZEVF9HRVRfSEVBREVSKEZkdCwgU2l6ZUR0U3RydWN0KSkNCj4+IA0KPj4g Kw0KPj4gDQo+PiArLyoqDQo+PiANCj4+ICsgIFZlcmlmeSB0aGUgaGVhZGVyIG9mIHRoZSBGbGF0 dGVuZWQgRGV2aWNlIFRyZWUNCj4+IA0KPj4gKw0KPj4gDQo+PiArICBAcGFyYW1baW5dIEZkdCAg ICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPj4gDQo+PiArDQo+PiANCj4+ICsg IEByZXR1cm4gWmVybyBmb3Igc3VjY2Vzc2Z1bGx5LCBvdGhlcndpc2UgZmFpbGVkLg0KPj4gDQo+ PiArDQo+PiANCj4+ICsqKi8NCj4+IA0KPj4gK0lOVDMyDQo+PiANCj4+ICtFRklBUEkNCj4+IA0K Pj4gK0ZkdENoZWNrSGVhZGVyICgNCj4+IA0KPj4gKyAgSU4gQ09OU1QgVk9JRCAgKkZkdA0KPj4g DQo+PiArICApOw0KPj4gDQo+PiArDQo+PiANCj4+ICsvKioNCj4+IA0KPj4gKyAgQ3JlYXRlIGEg ZW1wdHkgRmxhdHRlbmVkIERldmljZSBUcmVlLg0KPj4gDQo+PiArDQo+PiANCj4+ICsgIEBwYXJh bVtpbl0gQnVmZmVyICAgICAgICAgVGhlIHBvaW50ZXIgdG8gYWxsb2NhdGUgYSBwb29sIGZvciBG RFQgYmxvYi4NCj4+IA0KPj4gKyAgQHBhcmFtW2luXSBCdWZmZXJTaXplICAgICBUaGUgQnVmZmVy U2l6ZSB0byB0aGUgcG9vbCBzaXplLg0KPj4gDQo+PiArDQo+PiANCj4+ICsgIEByZXR1cm4gWmVy byBmb3Igc3VjY2Vzc2Z1bGx5LCBvdGhlcndpc2UgZmFpbGVkLg0KPj4gDQo+PiArDQo+PiANCj4+ ICsqKi8NCj4+IA0KPj4gK1JFVFVSTl9TVEFUVVMNCj4+IA0KPj4gK0VGSUFQSQ0KPj4gDQo+PiAr RmR0Q3JlYXRlRW1wdHlUcmVlICgNCj4+IA0KPj4gKyAgSU4gVk9JRCAgICpCdWZmZXIsDQo+PiAN Cj4+ICsgIElOIFVJTlROICBCdWZmZXJTaXplDQo+PiANCj4+ICsgICk7DQo+PiANCj4+ICsNCj4+ IA0KPj4gKy8qKg0KPj4gDQo+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9mIG5leHQgbm9kZSBmcm9t IHRoZSBnaXZlbiBub2RlLg0KPj4gDQo+PiArDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0gRmR0ICAg ICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0g T2Zmc2V0ICAgICAgICAgVGhlIG9mZnNldCB0byBwcmV2aW91cyBub2RlLg0KPj4gDQo+PiArICBA cGFyYW1baW5dIERlcHRoICAgICAgICAgIFRoZSBkZXB0aCB0byB0aGUgbGV2ZWwgb2YgdHJlZSBo aWVyYXJjaHkuDQo+PiANCj4+ICsNCj4+IA0KPj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRvIG5l eHQgbm9kZSBvZmZzZXQuDQo+PiANCj4+ICsNCj4+IA0KPj4gKyoqLw0KPj4gDQo+PiArSU5UMzIN Cj4+IA0KPj4gK0VGSUFQSQ0KPj4gDQo+PiArRmR0TmV4dE5vZGUgKA0KPj4gDQo+PiArICBJTiBD T05TVCBWT0lEICAqRmR0LA0KPj4gDQo+PiArICBJTiBJTlQzMiAgICAgICBPZmZzZXQsDQo+PiAN Cj4+ICsgIElOIElOVDMyICAgICAgICpEZXB0aA0KPj4gDQo+PiArICApOw0KPj4gDQo+PiArDQo+ PiANCj4+ICsvKioNCj4+IA0KPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBmaXJzdCBub2RlIHVu ZGVyIHRoZSBnaXZlbiBub2RlLg0KPj4gDQo+PiArDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0gRmR0 ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+PiANCj4+ICsgIEBwYXJhbVtp bl0gT2Zmc2V0ICAgICAgICAgVGhlIG9mZnNldCB0byBwcmV2aW91cyBub2RlLg0KPj4gDQo+PiAr DQo+PiANCj4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBuZXh0IG5vZGUgb2Zmc2V0Lg0KPj4g DQo+PiArDQo+PiANCj4+ICsqKi8NCj4+IA0KPj4gK0lOVDMyDQo+PiANCj4+ICtFRklBUEkNCj4+ IA0KPj4gK0ZkdEZpcnN0U3Vibm9kZSAoDQo+PiANCj4+ICsgIElOIENPTlNUIFZPSUQgICpGZHQs DQo+PiANCj4+ICsgIElOIElOVDMyICAgICAgIE9mZnNldA0KPj4gDQo+PiArICApOw0KPj4gDQo+ PiArDQo+PiANCj4+ICsvKioNCj4+IA0KPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBuZXh0IG5v ZGUgZnJvbSB0aGUgZ2l2ZW4gbm9kZS4NCj4+IA0KPj4gKw0KPj4gDQo+PiArICBAcGFyYW1baW5d IEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPj4gDQo+PiArICBAcGFy YW1baW5dIE9mZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8gcHJldmlvdXMgbm9kZS4NCj4+IA0K Pj4gKw0KPj4gDQo+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gbmV4dCBub2RlIG9mZnNldC4N Cj4+IA0KPj4gKw0KPj4gDQo+PiArKiovDQo+PiANCj4+ICtJTlQzMg0KPj4gDQo+PiArRUZJQVBJ DQo+PiANCj4+ICtGZHROZXh0U3Vibm9kZSAoDQo+PiANCj4+ICsgIElOIENPTlNUIFZPSUQgICpG ZHQsDQo+PiANCj4+ICsgIElOIElOVDMyICAgICAgIE9mZnNldA0KPj4gDQo+PiArICApOw0KPj4g DQo+PiArDQo+PiANCj4+ICsvKioNCj4+IA0KPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBmaXJz dCBub2RlIHdoaWNoIGluY2x1ZGVzIHRoZSBnaXZlbiBuYW1lLg0KPj4gDQo+PiArDQo+PiANCj4+ ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0K Pj4gDQo+PiArICBAcGFyYW1baW5dIFBhcmVudE9mZnNldCAgICBUaGUgb2Zmc2V0IHRvIHRoZSBu b2RlIHdoaWNoIHN0YXJ0IGZpbmQgdW5kZXIuDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0gTmFtZSAg ICAgICAgICAgIFRoZSBuYW1lIHRvIHNlYXJjaCB0aGUgbm9kZSB3aXRoIHRoZSBuYW1lLg0KPj4g DQo+PiArICBAcGFyYW1baW5dIE5hbWVMZW5ndGggICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBuYW1l IHRvIGNoZWNrIG9ubHkuDQo+PiANCj4+ICsNCj4+IA0KPj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0 IHRvIG5vZGUgb2Zmc2V0IHdpdGggZ2l2ZW4gbm9kZSBuYW1lLg0KPj4gDQo+PiArDQo+PiANCj4+ ICsqKi8NCj4+IA0KPj4gK0lOVDMyDQo+PiANCj4+ICtFRklBUEkNCj4+IA0KPj4gK0ZkdFN1Ym5v ZGVPZmZzZXROYW1lTGVuICgNCj4+IA0KPj4gKyAgSU4gQ09OU1QgVk9JRCAgICpGZHQsDQo+PiAN Cj4+ICsgIElOIElOVDMyICAgICAgICBQYXJlbnRPZmZzZXQsDQo+PiANCj4+ICsgIElOIENPTlNU IENIQVI4ICAqTmFtZSwNCj4+IA0KPj4gKyAgSU4gSU5UMzIgICAgICAgIE5hbWVMZW5ndGgNCj4+ IA0KPj4gKyAgKTsNCj4+IA0KPj4gKw0KPj4gDQo+PiArLyoqDQo+PiANCj4+ICsgIFJldHVybnMg YSBvZmZzZXQgb2YgZmlyc3Qgbm9kZSB3aGljaCBpbmNsdWRlcyB0aGUgZ2l2ZW4gcHJvcGVydHkg bmFtZSBhbmQgdmFsdWUuDQo+PiANCj4+ICsNCj4+IA0KPj4gKyAgQHBhcmFtW2luXSBGZHQgICAg ICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0g U3RhcnRPZmZzZXQgICAgIFRoZSBvZmZzZXQgdG8gdGhlIHN0YXJ0aW5nIG5vZGUgdG8gZmluZC4N Cj4+IA0KPj4gKyAgQHBhcmFtW2luXSBQcm9wZXJ0eU5hbWUgICAgVGhlIHByb3BlcnR5IG5hbWUg dG8gc2VhcmNoIHRoZSBub2RlIGluY2x1ZGluZyB0aGUgbmFtZWQgcHJvcGVydHkuDQo+PiANCj4+ ICsgIEBwYXJhbVtpbl0gUHJvcGVydHlWYWx1ZSAgIFRoZSBwcm9wZXJ0eSB2YWx1ZSB0byBjaGVj ayB0aGUgc2FtZSBwcm9wZXJ0eSB2YWx1ZS4NCj4+IA0KPj4gKyAgQHBhcmFtW2luXSBQcm9wZXJ0 eUxlbmd0aCAgVGhlIGxlbmd0aCBvZiB0aGUgdmFsdWUgaW4gUHJvcGVydFZhbHVlLg0KPj4gDQo+ PiArDQo+PiANCj4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBub2RlIG9mZnNldCB3aXRoIGdp dmVuIHByb3BlcnR5Lg0KPj4gDQo+PiArDQo+PiANCj4+ICsqKi8NCj4+IA0KPj4gK0lOVDMyDQo+ PiANCj4+ICtFRklBUEkNCj4+IA0KPj4gK0ZkdE5vZGVPZmZzZXRCeVByb3BWYWx1ZSAoDQo+PiAN Cj4+ICsgIElOIENPTlNUIFZPSUQgICAqRmR0LA0KPj4gDQo+PiArICBJTiBJTlQzMiAgICAgICAg U3RhcnRPZmZzZXQsDQo+PiANCj4+ICsgIElOIENPTlNUIENIQVI4ICAqUHJvcGVydHlOYW1lLA0K Pj4gDQo+PiArICBJTiBDT05TVCBWT0lEICAgKlByb3BlcnR5VmFsdWUsDQo+PiANCj4+ICsgIElO IElOVDMyICAgICAgICBQcm9wZXJ0eUxlbmd0aA0KPj4gDQo+PiArICApOw0KPj4gDQo+PiArDQo+ PiANCj4+ICsvKioNCj4+IA0KPj4gKyAgUmV0dXJucyBhIHByb3BlcnR5IHdpdGggdGhlIGdpdmVu IG5hbWUgZnJvbSB0aGUgZ2l2ZW4gbm9kZS4NCj4+IA0KPj4gKw0KPj4gDQo+PiArICBAcGFyYW1b aW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPj4gDQo+PiArICBA cGFyYW1baW5dIE5vZGVPZmZzZXQgICAgIFRoZSBvZmZzZXQgdG8gdGhlIGdpdmVuIG5vZGUuDQo+ PiANCj4+ICsgIEBwYXJhbVtpbl0gTmFtZSAgICAgICAgICAgVGhlIG5hbWUgdG8gdGhlIHByb3Bl cnR5IHdoaWNoIG5lZWQgYmUgc2VhcmNoZWQNCj4+IA0KPj4gKyAgQHBhcmFtW2luXSBMZW5ndGgg ICAgICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9mIHRoZSBwcm9wZXJ0eSBmb3VuZC4NCj4+ IA0KPj4gKw0KPj4gDQo+PiArICBAcmV0dXJuIFRoZSBwcm9wZXJ0eSB0byB0aGUgc3RydWN0dXJl IG9mIHRoZSBmb3VuZCBwcm9wZXJ0eS4NCj4+IA0KPj4gKw0KPj4gDQo+PiArKiovDQo+PiANCj4+ ICtDT05TVCBGRFRfUFJPUEVSVFkgKg0KPj4gDQo+PiArRUZJQVBJDQo+PiANCj4+ICtGZHRHZXRQ cm9wZXJ0eSAoDQo+PiANCj4+ICsgIElOIENPTlNUIFZPSUQgICAqRmR0LA0KPj4gDQo+PiArICBJ TiBJTlQzMiAgICAgICAgTm9kZU9mZnNldCwNCj4+IA0KPj4gKyAgSU4gQ09OU1QgQ0hBUjggICpO YW1lLA0KPj4gDQo+PiArICBJTiBJTlQzMiAgICAgICAgKkxlbmd0aA0KPj4gDQo+PiArICApOw0K Pj4gDQo+PiArDQo+PiANCj4+ICsvKioNCj4+IA0KPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBm aXJzdCBwcm9wZXJ0eSBpbiB0aGUgZ2l2ZW4gbm9kZS4NCj4+IA0KPj4gKw0KPj4gDQo+PiArICBA cGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPj4gDQo+ PiArICBAcGFyYW1baW5dIE9mZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8gdGhlIG5vZGUgd2hp Y2ggbmVlZCBiZSBzZWFyY2hlZC4NCj4+IA0KPj4gKw0KPj4gDQo+PiArICBAcmV0dXJuIFRoZSBv ZmZzZXQgdG8gZmlyc3QgcHJvcGVydHkgb2Zmc2V0IGluIHRoZSBnaXZlbiBub2RlLg0KPj4gDQo+ PiArDQo+PiANCj4+ICsqKi8NCj4+IA0KPj4gK0lOVDMyDQo+PiANCj4+ICtFRklBUEkNCj4+IA0K Pj4gK0ZkdEZpcnN0UHJvcGVydHlPZmZzZXQgKA0KPj4gDQo+PiArICBJTiBDT05TVCBWT0lEICAq RmR0LA0KPj4gDQo+PiArICBJTiBJTlQzMiAgICAgICBOb2RlT2Zmc2V0DQo+PiANCj4+ICsgICk7 DQo+PiANCj4+ICsNCj4+IA0KPj4gKy8qKg0KPj4gDQo+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9m IG5leHQgcHJvcGVydHkgZnJvbSB0aGUgZ2l2ZW4gcHJvcGVydHkuDQo+PiANCj4+ICsNCj4+IA0K Pj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4N Cj4+IA0KPj4gKyAgQHBhcmFtW2luXSBPZmZzZXQgICAgICAgICBUaGUgb2Zmc2V0IHRvIHByZXZp b3VzIHByb3BlcnR5Lg0KPj4gDQo+PiArDQo+PiANCj4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0 byBuZXh0IHByb3BlcnR5IG9mZnNldC4NCj4+IA0KPj4gKw0KPj4gDQo+PiArKiovDQo+PiANCj4+ ICtJTlQzMg0KPj4gDQo+PiArRUZJQVBJDQo+PiANCj4+ICtGZHROZXh0UHJvcGVydHlPZmZzZXQg KA0KPj4gDQo+PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0KPj4gDQo+PiArICBJTiBJTlQzMiAg ICAgICBPZmZzZXQNCj4+IA0KPj4gKyAgKTsNCj4+IA0KPj4gKw0KPj4gDQo+PiArLyoqDQo+PiAN Cj4+ICsgIFJldHVybnMgYSBwcm9wZXJ0eSBmcm9tIHRoZSBnaXZlbiBvZmZzZXQgb2YgdGhlIHBy b3BlcnR5Lg0KPj4gDQo+PiArDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAg VGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0gT2Zmc2V0ICAg ICAgICAgVGhlIG9mZnNldCB0byB0aGUgZ2l2ZW4gb2Zmc2V0IG9mIHRoZSBwcm9wZXJ0eS4NCj4+ IA0KPj4gKyAgQHBhcmFtW2luXSBMZW5ndGggICAgICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXpl IG9mIHRoZSBwcm9wZXJ0eSBmb3VuZC4NCj4+IA0KPj4gKw0KPj4gDQo+PiArICBAcmV0dXJuIFRo ZSBwcm9wZXJ0eSB0byB0aGUgc3RydWN0dXJlIG9mIHRoZSBnaXZlbiBwcm9wZXJ0eSBvZmZzZXQu DQo+PiANCj4+ICsNCj4+IA0KPj4gKyoqLw0KPj4gDQo+PiArQ09OU1QgRkRUX1BST1BFUlRZICoN Cj4+IA0KPj4gK0VGSUFQSQ0KPj4gDQo+PiArRmR0R2V0UHJvcGVydHlCeU9mZnNldCAoDQo+PiAN Cj4+ICsgIElOIENPTlNUIFZPSUQgICpGZHQsDQo+PiANCj4+ICsgIElOIElOVDMyICAgICAgIE9m ZnNldCwNCj4+IA0KPj4gKyAgSU4gSU5UMzIgICAgICAgKkxlbmd0aA0KPj4gDQo+PiArICApOw0K Pj4gDQo+PiArDQo+PiANCj4+ICsvKioNCj4+IA0KPj4gKyAgUmV0dXJucyBhIHN0cmluZyBieSB0 aGUgZ2l2ZW4gc3RyaW5nIG9mZnNldC4NCj4+IA0KPj4gKw0KPj4gDQo+PiArICBAcGFyYW1baW5d IEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPj4gDQo+PiArICBAcGFy YW1baW5dIFN0ck9mZnNldCAgICAgIFRoZSBvZmZzZXQgdG8gdGhlIGxvY2F0aW9uIGluIHRoZSBz dHJpbmdzIGJsb2NrIG9mIEZEVC4NCj4+IA0KPj4gKyAgQHBhcmFtW2luXSBMZW5ndGggICAgICAg ICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9mIHN0cmluZyB3aGljaCBuZWVkIGJlIHJldHJpZXZl ZC4NCj4+IA0KPj4gKw0KPj4gDQo+PiArICBAcmV0dXJuIFRoZSBzdHJpbmcgdG8gdGhlIGdpdmVu IHN0cmluZyBvZmZzZXQuDQo+PiANCj4+ICsNCj4+IA0KPj4gKyoqLw0KPj4gDQo+PiArQ09OU1Qg Q0hBUjggKg0KPj4gDQo+PiArRUZJQVBJDQo+PiANCj4+ICtGZHRHZXRTdHJpbmcgKA0KPj4gDQo+ PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0KPj4gDQo+PiArICBJTiBJTlQzMiAgICAgICBTdHJP ZmZzZXQsDQo+PiANCj4+ICsgIElOIElOVDMyICAgICAgICpMZW5ndGggICAgICAgIE9QVElPTkFM DQo+PiANCj4+ICsgICk7DQo+PiANCj4+ICsNCj4+IA0KPj4gKy8qKg0KPj4gDQo+PiArICBBZGQg YSBuZXcgbm9kZSB0byB0aGUgRkRULg0KPj4gDQo+PiArDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0g RmR0ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+PiANCj4+ICsgIEBwYXJh bVtpbl0gUGFyZW50T2Zmc2V0ICAgVGhlIG9mZnNldCB0byB0aGUgbm9kZSBvZmZzZXQgd2hpY2gg d2FudCB0byBhZGQgaW4uDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0gTmFtZSAgICAgICAgICAgVGhl IG5hbWUgdG8gbmFtZSB0aGUgbm9kZS4NCj4+IA0KPj4gKw0KPj4gDQo+PiArICBAcmV0dXJuICBU aGUgb2Zmc2V0IHRvIHRoZSBuZXcgbm9kZS4NCj4+IA0KPj4gKw0KPj4gDQo+PiArKiovDQo+PiAN Cj4+ICtJTlQzMg0KPj4gDQo+PiArRUZJQVBJDQo+PiANCj4+ICtGZHRBZGRTdWJub2RlICgNCj4+ IA0KPj4gKyAgSU4gVk9JRCAgICAgICAgICpGZHQsDQo+PiANCj4+ICsgIElOIElOVDMyICAgICAg ICBQYXJlbnRPZmZzZXQsDQo+PiANCj4+ICsgIElOIENPTlNUIENIQVI4ICAqTmFtZQ0KPj4gDQo+ PiArICApOw0KPj4gDQo+PiArDQo+PiANCj4+ICsvKioNCj4+IA0KPj4gKyAgQWRkIG9yIG1vZGlm eSBhIHByb3BlcnR5IGluIHRoZSBnaXZlbiBub2RlLg0KPj4gDQo+PiArDQo+PiANCj4+ICsgIEBw YXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+PiANCj4+ ICsgIEBwYXJhbVtpbl0gTm9kZU9mZnNldCAgICAgVGhlIG9mZnNldCB0byB0aGUgbm9kZSBvZmZz ZXQgd2hpY2ggd2FudCB0byBhZGQgaW4uDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0gTmFtZSAgICAg ICAgICAgVGhlIG5hbWUgdG8gbmFtZSB0aGUgcHJvcGVydHkuDQo+PiANCj4+ICsgIEBwYXJhbVtp bl0gVmFsdWUgICAgICAgICAgVGhlIHZhbHVlIHRvIHRoZSBwcm9wZXJ0eSB2YWx1ZS4NCj4+IA0K Pj4gKyAgQHBhcmFtW2luXSBMZW5ndGggICAgICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9m IHRoZSBwcm9wZXJ0eS4NCj4+IA0KPj4gKw0KPj4gDQo+PiArICBAcmV0dXJuICBaZXJvIGZvciBz dWNjZXNzZnVsbHksIG90aGVyd2lzZSBmYWlsZWQuDQo+PiANCj4+ICsNCj4+IA0KPj4gKyoqLw0K Pj4gDQo+PiArSU5UMzINCj4+IA0KPj4gK0VGSUFQSQ0KPj4gDQo+PiArRmR0U2V0UHJvcCAoDQo+ PiANCj4+ICsgIElOIFZPSUQgICAgICAgICAqRmR0LA0KPj4gDQo+PiArICBJTiBJTlQzMiAgICAg ICAgTm9kZU9mZnNldCwNCj4+IA0KPj4gKyAgSU4gQ09OU1QgQ0hBUjggICpOYW1lLA0KPj4gDQo+ PiArICBJTiBDT05TVCBWT0lEICAgKlZhbHVlLA0KPj4gDQo+PiArICBJTiBVSU5UMzIgICAgICAg TGVuZ3RoDQo+PiANCj4+ICsgICk7DQo+PiANCj4+ICsNCj4+IA0KPj4gKyNlbmRpZiAvKiBGRFRf TElCX0hfICovDQo+PiANCj4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGli L0Jhc2VGZHRMaWIuaW5mIA0KPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0Jhc2VGZHRM aWIuaW5mDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAwMDAwMDAwMC4uNzMw ZTU2OGZmNg0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZk dExpYi9CYXNlRmR0TGliLmluZg0KPj4gQEAgLTAsMCArMSw2MiBAQA0KPj4gKyMjIEBmaWxlDQo+ PiANCj4+ICsjIEZsYXR0ZW5lZCBEZXZpY2UgVHJlZSBMaWJyYXJ5Lg0KPj4gDQo+PiArIw0KPj4g DQo+PiArIyBDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4+IA0KPj4gKyMNCj4+IA0KPj4gKyMgIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+PiANCj4+ICsjDQo+PiANCj4+ICsjDQo+PiAN Cj4+ICsjIw0KPj4gDQo+PiArDQo+PiANCj4+ICtbRGVmaW5lc10NCj4+IA0KPj4gKyAgSU5GX1ZF UlNJT04gICAgICAgICAgICAgICAgICAgID0gMHgwMDAxMDAxQg0KPj4gDQo+PiArICBCQVNFX05B TUUgICAgICAgICAgICAgICAgICAgICAgPSBCYXNlRmR0TGliDQo+PiANCj4+ICsgIE1PRFVMRV9V TklfRklMRSAgICAgICAgICAgICAgICA9IEJhc2VGZHRMaWIudW5pDQo+PiANCj4+ICsgIEZJTEVf R1VJRCAgICAgICAgICAgICAgICAgICAgICA9IEM2NERDQjAxLUIwMzctNEZGNi05Q0YzLUU4Q0VD MjA2REUwNA0KPj4gDQo+PiArICBNT0RVTEVfVFlQRSAgICAgICAgICAgICAgICAgICAgPSBCQVNF DQo+PiANCj4+ICsgIFZFUlNJT05fU1RSSU5HICAgICAgICAgICAgICAgICA9IDEuMA0KPj4gDQo+ PiArICBMSUJSQVJZX0NMQVNTICAgICAgICAgICAgICAgICAgPSBGZHRMaWINCj4+IA0KPj4gKw0K Pj4gDQo+PiArICBERUZJTkUgRkRUX0xJQl9QQVRIICAgICAgICAgICAgPSBsaWJmZHQvbGliZmR0 DQo+PiANCj4+ICsNCj4+IA0KPj4gKyMNCj4+IA0KPj4gKyMgIFZBTElEX0FSQ0hJVEVDVFVSRVMg ICAgICAgICAgID0gSUEzMiBYNjQNCj4+IA0KPj4gKyMNCj4+IA0KPj4gKw0KPj4gDQo+PiArW1Nv dXJjZXNdDQo+PiANCj4+ICsgIEZkdExpYi5jDQo+PiANCj4+ICsgIExpYkZkdFdyYXBwZXIuYw0K Pj4gDQo+PiArICAjIGhlYWRlciBXcmFwcGVyIGZpbGVzDQo+PiANCj4+ICsgIGxpbWl0cy5oDQo+ PiANCj4+ICsgIHN0ZGJvb2wuaA0KPj4gDQo+PiArICBzdGRkZWYuaA0KPj4gDQo+PiArICBzdGRp bnQuaA0KPj4gDQo+PiArICBzdGRsaWIuaA0KPj4gDQo+PiArICBzdHJpbmcuaA0KPj4gDQo+PiAr DQo+PiANCj4+ICsgICQoRkRUX0xJQl9QQVRIKS9mZHQuYw0KPj4gDQo+PiArICAkKEZEVF9MSUJf UEFUSCkvZmR0LmgNCj4+IA0KPj4gKyAgJChGRFRfTElCX1BBVEgpL2ZkdF9hZGRyZXNzZXMuYw0K Pj4gDQo+PiArICAkKEZEVF9MSUJfUEFUSCkvZmR0X2NoZWNrLmMNCj4+IA0KPj4gKyAgJChGRFRf TElCX1BBVEgpL2ZkdF9lbXB0eV90cmVlLmMNCj4+IA0KPj4gKyAgJChGRFRfTElCX1BBVEgpL2Zk dF9vdmVybGF5LmMNCj4+IA0KPj4gKyAgJChGRFRfTElCX1BBVEgpL2ZkdF9yby5jDQo+PiANCj4+ ICsgICQoRkRUX0xJQl9QQVRIKS9mZHRfcncuYw0KPj4gDQo+PiArICAkKEZEVF9MSUJfUEFUSCkv ZmR0X3N0cmVycm9yLmMNCj4+IA0KPj4gKyAgJChGRFRfTElCX1BBVEgpL2ZkdF9zdy5jDQo+PiAN Cj4+ICsgICQoRkRUX0xJQl9QQVRIKS9mZHRfd2lwLmMNCj4+IA0KPj4gKyAgJChGRFRfTElCX1BB VEgpL2xpYmZkdC5oDQo+PiANCj4+ICsgICQoRkRUX0xJQl9QQVRIKS9saWJmZHRfZW52LmgNCj4+ IA0KPj4gKyAgJChGRFRfTElCX1BBVEgpL2xpYmZkdF9pbnRlcm5hbC5oDQo+PiANCj4+ICsNCj4+ IA0KPj4gK1tQYWNrYWdlc10NCj4+IA0KPj4gKyAgTWRlUGtnL01kZVBrZy5kZWMNCj4+IA0KPj4g Kw0KPj4gDQo+PiArW0xpYnJhcnlDbGFzc2VzXQ0KPj4gDQo+PiArICBCYXNlTGliDQo+PiANCj4+ ICsgIEJhc2VNZW1vcnlMaWINCj4+IA0KPj4gKw0KPj4gDQo+PiArW0J1aWxkT3B0aW9uc10NCj4+ IA0KPj4gKyAgTVNGVDoqXypfSUEzMl9DQ19GTEFHUyA9IC93ZDQxNDYgL3dkNDI0NQ0KPj4gDQo+ PiArICBNU0ZUOipfKl9YNjRfQ0NfRkxBR1MgID0gL3dkNDE0NiAvd2Q0MjQ0IC93ZDQyNDUgL3dk NDI2Nw0KPj4gDQo+PiArDQo+PiANCj4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNl RmR0TGliL0Jhc2VGZHRMaWIudW5pIA0KPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0Jh c2VGZHRMaWIudW5pDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAwMDAwMDAw MC4uM2Y3ZTQ1ZWE2Zg0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkv QmFzZUZkdExpYi9CYXNlRmR0TGliLnVuaQ0KPj4gQEAgLTAsMCArMSwxNCBAQA0KPj4gKy8vIC8q KiBAZmlsZQ0KPj4gDQo+PiArLy8gRmxhdHRlbmVkIERldmljZSBUcmVlIExpYnJhcnkuDQo+PiAN Cj4+ICsvLw0KPj4gDQo+PiArLy8gQ29weXJpZ2h0IChjKSAyMDIzLCBJbnRlbCBDb3Jwb3JhdGlv bi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+PiANCj4+ICsvLw0KPj4gDQo+PiArLy8gU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4+IA0KPj4gKy8vDQo+ PiANCj4+ICsvLyAqKi8NCj4+IA0KPj4gKw0KPj4gDQo+PiArDQo+PiANCj4+ICsjc3RyaW5nIFNU Ul9NT0RVTEVfQUJTVFJBQ1QgICAgICAgICAgICAgI2xhbmd1YWdlIGVuLVVTICJJbnN0YW5jZSBv ZiBGRFQgTGlicmFyeSINCj4+IA0KPj4gKw0KPj4gDQo+PiArI3N0cmluZyBTVFJfTU9EVUxFX0RF U0NSSVBUSU9OICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiVGhpcyBtb2R1bGUgcHJvdmlkZXMg RkRUIExpYnJhcnkgaW1wbGVtZW50YXRpb24uIg0KPj4gDQo+PiArDQo+PiANCj4+IGRpZmYgLS1n aXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0ZkdExpYi5jIA0KPj4gYi9NZGVQa2cvTGli cmFyeS9CYXNlRmR0TGliL0ZkdExpYi5jDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5k ZXggMDAwMDAwMDAwMC4uMjAwYTQ5NmM3ZQ0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvTWRl UGtnL0xpYnJhcnkvQmFzZUZkdExpYi9GZHRMaWIuYw0KPj4gQEAgLTAsMCArMSwzMDEgQEANCj4+ ICsvKiogQGZpbGUNCj4+IA0KPj4gKyAgRmxhdHRlbmVkIERldmljZSBUcmVlIExpYnJhcnkuDQo+ PiANCj4+ICsNCj4+IA0KPj4gKyAgQ29weXJpZ2h0IChjKSAyMDIzLCBJbnRlbCBDb3Jwb3JhdGlv bi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+PiANCj4+ICsgIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+PiANCj4+ICsNCj4+IA0KPj4gKyoqLw0KPj4g DQo+PiArDQo+PiANCj4+ICsjaW5jbHVkZSA8bGliZmR0L2xpYmZkdC9saWJmZHQuaD4NCj4+IA0K Pj4gKw0KPj4gDQo+PiArLyoqDQo+PiANCj4+ICsgIFZlcmlmeSB0aGUgaGVhZGVyIG9mIHRoZSBG bGF0dGVuZWQgRGV2aWNlIFRyZWUNCj4+IA0KPj4gKw0KPj4gDQo+PiArICBAcGFyYW1baW5dIEZk dCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPj4gDQo+PiArDQo+PiANCj4+ ICsgIEByZXR1cm4gWmVybyBmb3Igc3VjY2Vzc2Z1bGx5LCBvdGhlcndpc2UgZmFpbGVkLg0KPj4g DQo+PiArDQo+PiANCj4+ICsqKi8NCj4+IA0KPj4gK0lOVDMyDQo+PiANCj4+ICtFRklBUEkNCj4+ IA0KPj4gK0ZkdENoZWNrSGVhZGVyICgNCj4+IA0KPj4gKyAgSU4gQ09OU1QgVk9JRCAgKkZkdA0K Pj4gDQo+PiArICApDQo+PiANCj4+ICt7DQo+PiANCj4+ICsgIHJldHVybiBmZHRfY2hlY2tfaGVh ZGVyKEZkdCk7DQo+PiANCj4+ICt9DQo+PiANCj4+ICsNCj4+IA0KPj4gKy8qKg0KPj4gDQo+PiAr ICBDcmVhdGUgYSBlbXB0eSBGbGF0dGVuZWQgRGV2aWNlIFRyZWUuDQo+PiANCj4+ICsNCj4+IA0K Pj4gKyAgQHBhcmFtW2luXSBCdWZmZXIgICAgICAgICBUaGUgcG9pbnRlciB0byBhbGxvY2F0ZSBh IHBvb2wgZm9yIEZEVCBibG9iLg0KPj4gDQo+PiArICBAcGFyYW1baW5dIEJ1ZmZlclNpemUgICAg IFRoZSBCdWZmZXJTaXplIHRvIHRoZSBwb29sIHNpemUuDQo+PiANCj4+ICsNCj4+IA0KPj4gKyAg QHJldHVybiBaZXJvIGZvciBzdWNjZXNzZnVsbHksIG90aGVyd2lzZSBmYWlsZWQuDQo+PiANCj4+ ICsNCj4+IA0KPj4gKyoqLw0KPj4gDQo+PiArSU5UMzINCj4+IA0KPj4gK0VGSUFQSQ0KPj4gDQo+ PiArRmR0Q3JlYXRlRW1wdHlUcmVlICgNCj4+IA0KPj4gKyAgSU4gVk9JRCAgICAqQnVmZmVyLA0K Pj4gDQo+PiArICBJTiBVSU5UMzIgIEJ1ZmZlclNpemUNCj4+IA0KPj4gKyAgKQ0KPj4gDQo+PiAr ew0KPj4gDQo+PiArICByZXR1cm4gZmR0X2NyZWF0ZV9lbXB0eV90cmVlIChCdWZmZXIsIChpbnQp QnVmZmVyU2l6ZSk7DQo+PiANCj4+ICt9DQo+PiANCj4+ICsNCj4+IA0KPj4gKy8qKg0KPj4gDQo+ PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9mIG5leHQgbm9kZSBmcm9tIHRoZSBnaXZlbiBub2RlLg0K Pj4gDQo+PiArDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhlIHBvaW50 ZXIgdG8gRkRUIGJsb2IuDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0gT2Zmc2V0ICAgICAgICAgVGhl IG9mZnNldCB0byBwcmV2aW91cyBub2RlLg0KPj4gDQo+PiArICBAcGFyYW1baW5dIERlcHRoICAg ICAgICAgIFRoZSBkZXB0aCB0byB0aGUgbGV2ZWwgb2YgdHJlZSBoaWVyYXJjaHkuDQo+PiANCj4+ ICsNCj4+IA0KPj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRvIG5leHQgbm9kZSBvZmZzZXQuDQo+ PiANCj4+ICsNCj4+IA0KPj4gKyoqLw0KPj4gDQo+PiArSU5UMzINCj4+IA0KPj4gK0VGSUFQSQ0K Pj4gDQo+PiArRmR0TmV4dE5vZGUgKA0KPj4gDQo+PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0K Pj4gDQo+PiArICBJTiBJTlQzMiAgICAgICBPZmZzZXQsDQo+PiANCj4+ICsgIElOIElOVDMyICAg ICAgICpEZXB0aA0KPj4gDQo+PiArICApDQo+PiANCj4+ICt7DQo+PiANCj4+ICsgIHJldHVybiBm ZHRfbmV4dF9ub2RlIChGZHQsIE9mZnNldCwgRGVwdGgpOw0KPj4gDQo+PiArfQ0KPj4gDQo+PiAr DQo+PiANCj4+ICsvKioNCj4+IA0KPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBmaXJzdCBub2Rl IHVuZGVyIHRoZSBnaXZlbiBub2RlLg0KPj4gDQo+PiArDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0g RmR0ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+PiANCj4+ICsgIEBwYXJh bVtpbl0gT2Zmc2V0ICAgICAgICAgVGhlIG9mZnNldCB0byBwcmV2aW91cyBub2RlLg0KPj4gDQo+ PiArDQo+PiANCj4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBuZXh0IG5vZGUgb2Zmc2V0Lg0K Pj4gDQo+PiArDQo+PiANCj4+ICsqKi8NCj4+IA0KPj4gK0lOVDMyDQo+PiANCj4+ICtFRklBUEkN Cj4+IA0KPj4gK0ZkdEZpcnN0U3Vibm9kZSAoDQo+PiANCj4+ICsgIElOIENPTlNUIFZPSUQgICpG ZHQsDQo+PiANCj4+ICsgIElOIElOVDMyICAgICAgIE9mZnNldA0KPj4gDQo+PiArICApDQo+PiAN Cj4+ICt7DQo+PiANCj4+ICsgIHJldHVybiBmZHRfZmlyc3Rfc3Vibm9kZSAoRmR0LCBPZmZzZXQp Ow0KPj4gDQo+PiArfQ0KPj4gDQo+PiArDQo+PiANCj4+ICsvKioNCj4+IA0KPj4gKyAgUmV0dXJu cyBhIG9mZnNldCBvZiBuZXh0IG5vZGUgZnJvbSB0aGUgZ2l2ZW4gbm9kZS4NCj4+IA0KPj4gKw0K Pj4gDQo+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBi bG9iLg0KPj4gDQo+PiArICBAcGFyYW1baW5dIE9mZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8g cHJldmlvdXMgbm9kZS4NCj4+IA0KPj4gKw0KPj4gDQo+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQg dG8gbmV4dCBub2RlIG9mZnNldC4NCj4+IA0KPj4gKw0KPj4gDQo+PiArKiovDQo+PiANCj4+ICtJ TlQzMg0KPj4gDQo+PiArRUZJQVBJDQo+PiANCj4+ICtGZHROZXh0U3Vibm9kZSAoDQo+PiANCj4+ ICsgIElOIENPTlNUIFZPSUQgICpGZHQsDQo+PiANCj4+ICsgIElOIElOVDMyICAgICAgIE9mZnNl dA0KPj4gDQo+PiArICApDQo+PiANCj4+ICt7DQo+PiANCj4+ICsgIHJldHVybiBmZHRfbmV4dF9z dWJub2RlIChGZHQsIE9mZnNldCk7DQo+PiANCj4+ICt9DQo+PiANCj4+ICsNCj4+IA0KPj4gKy8q Kg0KPj4gDQo+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9mIGZpcnN0IG5vZGUgd2hpY2ggaW5jbHVk ZXMgdGhlIGdpdmVuIG5hbWUuDQo+PiANCj4+ICsNCj4+IA0KPj4gKyAgQHBhcmFtW2luXSBGZHQg ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+PiANCj4+ICsgIEBwYXJhbVtp bl0gUGFyZW50T2Zmc2V0ICAgIFRoZSBvZmZzZXQgdG8gdGhlIG5vZGUgd2hpY2ggc3RhcnQgZmlu ZCB1bmRlci4NCj4+IA0KPj4gKyAgQHBhcmFtW2luXSBOYW1lICAgICAgICAgICAgVGhlIG5hbWUg dG8gc2VhcmNoIHRoZSBub2RlIHdpdGggdGhlIG5hbWUuDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0g TmFtZUxlbmd0aCAgICAgIFRoZSBsZW5ndGggb2YgdGhlIG5hbWUgdG8gY2hlY2sgb25seS4NCj4+ IA0KPj4gKw0KPj4gDQo+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gbm9kZSBvZmZzZXQgd2l0 aCBnaXZlbiBub2RlIG5hbWUuDQo+PiANCj4+ICsNCj4+IA0KPj4gKyoqLw0KPj4gDQo+PiArSU5U MzINCj4+IA0KPj4gK0VGSUFQSQ0KPj4gDQo+PiArRmR0U3Vibm9kZU9mZnNldE5hbWVMZW4gKA0K Pj4gDQo+PiArICBJTiBDT05TVCBWT0lEICAgKkZkdCwNCj4+IA0KPj4gKyAgSU4gSU5UMzIgICAg ICAgIFBhcmVudE9mZnNldCwNCj4+IA0KPj4gKyAgSU4gQ09OU1QgQ0hBUjggICpOYW1lLA0KPj4g DQo+PiArICBJTiBJTlQzMiAgICAgICAgTmFtZUxlbmd0aA0KPj4gDQo+PiArICApDQo+PiANCj4+ ICt7DQo+PiANCj4+ICsgIHJldHVybiBmZHRfc3Vibm9kZV9vZmZzZXRfbmFtZWxlbiAoRmR0LCBQ YXJlbnRPZmZzZXQsIE5hbWUsIA0KPj4gKyBOYW1lTGVuZ3RoKTsNCj4+IA0KPj4gK30NCj4+IA0K Pj4gKw0KPj4gDQo+PiArLyoqDQo+PiANCj4+ICsgIFJldHVybnMgYSBvZmZzZXQgb2YgZmlyc3Qg bm9kZSB3aGljaCBpbmNsdWRlcyB0aGUgZ2l2ZW4gcHJvcGVydHkgbmFtZSBhbmQgdmFsdWUuDQo+ PiANCj4+ICsNCj4+IA0KPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICAgVGhlIHBvaW50 ZXIgdG8gRkRUIGJsb2IuDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0gU3RhcnRPZmZzZXQgICAgIFRo ZSBvZmZzZXQgdG8gdGhlIHN0YXJ0aW5nIG5vZGUgdG8gZmluZC4NCj4+IA0KPj4gKyAgQHBhcmFt W2luXSBQcm9wZXJ0eU5hbWUgICAgVGhlIHByb3BlcnR5IG5hbWUgdG8gc2VhcmNoIHRoZSBub2Rl IGluY2x1ZGluZyB0aGUgbmFtZWQgcHJvcGVydHkuDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0gUHJv cGVydHlWYWx1ZSAgIFRoZSBwcm9wZXJ0eSB2YWx1ZSB0byBjaGVjayB0aGUgc2FtZSBwcm9wZXJ0 eSB2YWx1ZS4NCj4+IA0KPj4gKyAgQHBhcmFtW2luXSBQcm9wZXJ0eUxlbmd0aCAgVGhlIGxlbmd0 aCBvZiB0aGUgdmFsdWUgaW4gUHJvcGVydFZhbHVlLg0KPj4gDQo+PiArDQo+PiANCj4+ICsgIEBy ZXR1cm4gVGhlIG9mZnNldCB0byBub2RlIG9mZnNldCB3aXRoIGdpdmVuIHByb3BlcnR5Lg0KPj4g DQo+PiArDQo+PiANCj4+ICsqKi8NCj4+IA0KPj4gK0lOVDMyDQo+PiANCj4+ICtFRklBUEkNCj4+ IA0KPj4gK0ZkdE5vZGVPZmZzZXRCeVByb3BWYWx1ZSAoDQo+PiANCj4+ICsgIElOIENPTlNUIFZP SUQgICAqRmR0LA0KPj4gDQo+PiArICBJTiBJTlQzMiAgICAgICAgU3RhcnRPZmZzZXQsDQo+PiAN Cj4+ICsgIElOIENPTlNUIENIQVI4ICAqUHJvcGVydHlOYW1lLA0KPj4gDQo+PiArICBJTiBDT05T VCBWT0lEICAgKlByb3BlcnR5VmFsdWUsDQo+PiANCj4+ICsgIElOIElOVDMyICAgICAgICBQcm9w ZXJ0eUxlbmd0aA0KPj4gDQo+PiArICApDQo+PiANCj4+ICt7DQo+PiANCj4+ICsgIHJldHVybiBm ZHRfbm9kZV9vZmZzZXRfYnlfcHJvcF92YWx1ZSAoRmR0LCBTdGFydE9mZnNldCwgDQo+PiArIFBy b3BlcnR5TmFtZSwgUHJvcGVydHlWYWx1ZSwgUHJvcGVydHlMZW5ndGgpOw0KPj4gDQo+PiArfQ0K Pj4gDQo+PiArDQo+PiANCj4+ICsvKioNCj4+IA0KPj4gKyAgUmV0dXJucyBhIHByb3BlcnR5IHdp dGggdGhlIGdpdmVuIG5hbWUgZnJvbSB0aGUgZ2l2ZW4gbm9kZS4NCj4+IA0KPj4gKw0KPj4gDQo+ PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0K Pj4gDQo+PiArICBAcGFyYW1baW5dIE5vZGVPZmZzZXQgICAgIFRoZSBvZmZzZXQgdG8gdGhlIGdp dmVuIG5vZGUuDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0gTmFtZSAgICAgICAgICAgVGhlIG5hbWUg dG8gdGhlIHByb3BlcnR5IHdoaWNoIG5lZWQgYmUgc2VhcmNoZWQNCj4+IA0KPj4gKyAgQHBhcmFt W2luXSBMZW5ndGggICAgICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9mIHRoZSBwcm9wZXJ0 eSBmb3VuZC4NCj4+IA0KPj4gKw0KPj4gDQo+PiArICBAcmV0dXJuIFRoZSBwcm9wZXJ0eSB0byB0 aGUgc3RydWN0dXJlIG9mIHRoZSBmb3VuZCBwcm9wZXJ0eS4NCj4+IA0KPj4gKw0KPj4gDQo+PiAr KiovDQo+PiANCj4+ICtDT05TVCBzdHJ1Y3QgZmR0X3Byb3BlcnR5ICoNCj4+IA0KPj4gK0VGSUFQ SQ0KPj4gDQo+PiArRmR0R2V0UHJvcGVydHkgKA0KPj4gDQo+PiArICBJTiBDT05TVCBWT0lEICAg KkZkdCwNCj4+IA0KPj4gKyAgSU4gSU5UMzIgICAgICAgIE5vZGVPZmZzZXQsDQo+PiANCj4+ICsg IElOIENPTlNUIENIQVI4ICAqTmFtZSwNCj4+IA0KPj4gKyAgSU4gSU5UMzIgICAgICAgICpMZW5n dGgNCj4+IA0KPj4gKyAgKQ0KPj4gDQo+PiArew0KPj4gDQo+PiArICByZXR1cm4gZmR0X2dldF9w cm9wZXJ0eSAoRmR0LCBOb2RlT2Zmc2V0LCBOYW1lLCBMZW5ndGgpOw0KPj4gDQo+PiArfQ0KPj4g DQo+PiArDQo+PiANCj4+ICsvKioNCj4+IA0KPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBmaXJz dCBwcm9wZXJ0eSBpbiB0aGUgZ2l2ZW4gbm9kZS4NCj4+IA0KPj4gKw0KPj4gDQo+PiArICBAcGFy YW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPj4gDQo+PiAr ICBAcGFyYW1baW5dIE5vZGVPZmZzZXQgICAgIFRoZSBvZmZzZXQgdG8gdGhlIG5vZGUgd2hpY2gg bmVlZCBiZSBzZWFyY2hlZC4NCj4+IA0KPj4gKw0KPj4gDQo+PiArICBAcmV0dXJuIFRoZSBvZmZz ZXQgdG8gZmlyc3QgcHJvcGVydHkgb2Zmc2V0IGluIHRoZSBnaXZlbiBub2RlLg0KPj4gDQo+PiAr DQo+PiANCj4+ICsqKi8NCj4+IA0KPj4gK0lOVDMyDQo+PiANCj4+ICtFRklBUEkNCj4+IA0KPj4g K0ZkdEZpcnN0UHJvcGVydHlPZmZzZXQgKA0KPj4gDQo+PiArICBJTiBDT05TVCBWT0lEICAqRmR0 LA0KPj4gDQo+PiArICBJTiBJTlQzMiAgICAgICBOb2RlT2Zmc2V0DQo+PiANCj4+ICsgICkNCj4+ IA0KPj4gK3sNCj4+IA0KPj4gKyAgcmV0dXJuIGZkdF9maXJzdF9wcm9wZXJ0eV9vZmZzZXQgKEZk dCwgTm9kZU9mZnNldCk7DQo+PiANCj4+ICt9DQo+PiANCj4+ICsNCj4+IA0KPj4gKy8qKg0KPj4g DQo+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9mIG5leHQgcHJvcGVydHkgZnJvbSB0aGUgZ2l2ZW4g cHJvcGVydHkuDQo+PiANCj4+ICsNCj4+IA0KPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAg ICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4+IA0KPj4gKyAgQHBhcmFtW2luXSBPZmZzZXQg ICAgICAgICBUaGUgb2Zmc2V0IHRvIHByZXZpb3VzIHByb3BlcnR5Lg0KPj4gDQo+PiArDQo+PiAN Cj4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBuZXh0IHByb3BlcnR5IG9mZnNldC4NCj4+IA0K Pj4gKw0KPj4gDQo+PiArKiovDQo+PiANCj4+ICtJTlQzMg0KPj4gDQo+PiArRUZJQVBJDQo+PiAN Cj4+ICtGZHROZXh0UHJvcGVydHlPZmZzZXQgKA0KPj4gDQo+PiArICBJTiBDT05TVCBWT0lEICAq RmR0LA0KPj4gDQo+PiArICBJTiBJTlQzMiAgICAgICBPZmZzZXQNCj4+IA0KPj4gKyAgKQ0KPj4g DQo+PiArew0KPj4gDQo+PiArICByZXR1cm4gZmR0X25leHRfcHJvcGVydHlfb2Zmc2V0IChGZHQs IE9mZnNldCk7DQo+PiANCj4+ICt9DQo+PiANCj4+ICsNCj4+IA0KPj4gKy8qKg0KPj4gDQo+PiAr ICBSZXR1cm5zIGEgcHJvcGVydHkgZnJvbSB0aGUgZ2l2ZW4gb2Zmc2V0IG9mIHRoZSBwcm9wZXJ0 eS4NCj4+IA0KPj4gKw0KPj4gDQo+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBw b2ludGVyIHRvIEZEVCBibG9iLg0KPj4gDQo+PiArICBAcGFyYW1baW5dIE9mZnNldCAgICAgICAg IFRoZSBvZmZzZXQgdG8gdGhlIGdpdmVuIG9mZnNldCBvZiB0aGUgcHJvcGVydHkuDQo+PiANCj4+ ICsgIEBwYXJhbVtpbl0gTGVuZ3RoICAgICAgICAgVGhlIGxlbmd0aCB0byB0aGUgc2l6ZSBvZiB0 aGUgcHJvcGVydHkgZm91bmQuDQo+PiANCj4+ICsNCj4+IA0KPj4gKyAgQHJldHVybiBUaGUgcHJv cGVydHkgdG8gdGhlIHN0cnVjdHVyZSBvZiB0aGUgZ2l2ZW4gcHJvcGVydHkgb2Zmc2V0Lg0KPj4g DQo+PiArDQo+PiANCj4+ICsqKi8NCj4+IA0KPj4gK0NPTlNUIHN0cnVjdCBmZHRfcHJvcGVydHkg Kg0KPj4gDQo+PiArRUZJQVBJDQo+PiANCj4+ICtGZHRHZXRQcm9wZXJ0eUJ5T2Zmc2V0ICgNCj4+ IA0KPj4gKyAgSU4gQ09OU1QgVk9JRCAgKkZkdCwNCj4+IA0KPj4gKyAgSU4gSU5UMzIgICAgICAg T2Zmc2V0LA0KPj4gDQo+PiArICBJTiBJTlQzMiAgICAgICAqTGVuZ3RoDQo+PiANCj4+ICsgICkN Cj4+IA0KPj4gK3sNCj4+IA0KPj4gKyAgcmV0dXJuIGZkdF9nZXRfcHJvcGVydHlfYnlfb2Zmc2V0 IChGZHQsIE9mZnNldCwgTGVuZ3RoKTsNCj4+IA0KPj4gK30NCj4+IA0KPj4gKw0KPj4gDQo+PiAr LyoqDQo+PiANCj4+ICsgIFJldHVybnMgYSBzdHJpbmcgYnkgdGhlIGdpdmVuIHN0cmluZyBvZmZz ZXQuDQo+PiANCj4+ICsNCj4+IA0KPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUg cG9pbnRlciB0byBGRFQgYmxvYi4NCj4+IA0KPj4gKyAgQHBhcmFtW2luXSBTdHJPZmZzZXQgICAg ICBUaGUgb2Zmc2V0IHRvIHRoZSBsb2NhdGlvbiBpbiB0aGUgc3RyaW5ncyBibG9jayBvZiBGRFQu DQo+PiANCj4+ICsgIEBwYXJhbVtpbl0gTGVuZ3RoICAgICAgICAgVGhlIGxlbmd0aCB0byB0aGUg c2l6ZSBvZiBzdHJpbmcgd2hpY2ggbmVlZCBiZSByZXRyaWV2ZWQuDQo+PiANCj4+ICsNCj4+IA0K Pj4gKyAgQHJldHVybiBUaGUgc3RyaW5nIHRvIHRoZSBnaXZlbiBzdHJpbmcgb2Zmc2V0Lg0KPj4g DQo+PiArDQo+PiANCj4+ICsqKi8NCj4+IA0KPj4gK0NPTlNUIENIQVI4ICoNCj4+IA0KPj4gK0VG SUFQSQ0KPj4gDQo+PiArRmR0R2V0U3RyaW5nICgNCj4+IA0KPj4gKyAgSU4gQ09OU1QgVk9JRCAg KkZkdCwNCj4+IA0KPj4gKyAgSU4gSU5UMzIgICAgICAgU3RyT2Zmc2V0LA0KPj4gDQo+PiArICBJ TiBJTlQzMiAgICAgICAqTGVuZ3RoICAgICAgICBPUFRJT05BTA0KPj4gDQo+PiArICApDQo+PiAN Cj4+ICt7DQo+PiANCj4+ICsgIHJldHVybiBmZHRfZ2V0X3N0cmluZyAoRmR0LCBTdHJPZmZzZXQs IExlbmd0aCk7DQo+PiANCj4+ICt9DQo+PiANCj4+ICsNCj4+IA0KPj4gKy8qKg0KPj4gDQo+PiAr ICBBZGQgYSBuZXcgbm9kZSB0byB0aGUgRkRULg0KPj4gDQo+PiArDQo+PiANCj4+ICsgIEBwYXJh bVtpbl0gRmR0ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+PiANCj4+ICsg IEBwYXJhbVtpbl0gUGFyZW50T2Zmc2V0ICAgVGhlIG9mZnNldCB0byB0aGUgbm9kZSBvZmZzZXQg d2hpY2ggd2FudCB0byBhZGQgaW4uDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0gTmFtZSAgICAgICAg ICAgVGhlIG5hbWUgdG8gbmFtZSB0aGUgbm9kZS4NCj4+IA0KPj4gKw0KPj4gDQo+PiArICBAcmV0 dXJuICBUaGUgb2Zmc2V0IHRvIHRoZSBuZXcgbm9kZS4NCj4+IA0KPj4gKw0KPj4gDQo+PiArKiov DQo+PiANCj4+ICtJTlQzMg0KPj4gDQo+PiArRUZJQVBJDQo+PiANCj4+ICtGZHRBZGRTdWJub2Rl ICgNCj4+IA0KPj4gKyAgSU4gVk9JRCAgICAgICAgICpGZHQsDQo+PiANCj4+ICsgIElOIElOVDMy ICAgICAgICBQYXJlbnRPZmZzZXQsDQo+PiANCj4+ICsgIElOIENPTlNUIENIQVI4ICAqTmFtZQ0K Pj4gDQo+PiArICApDQo+PiANCj4+ICt7DQo+PiANCj4+ICsgIHJldHVybiBmZHRfYWRkX3N1Ym5v ZGUgKEZkdCwgUGFyZW50T2Zmc2V0LCBOYW1lKTsNCj4+IA0KPj4gK30NCj4+IA0KPj4gKw0KPj4g DQo+PiArLyoqDQo+PiANCj4+ICsgIEFkZCBvciBtb2RpZnkgYSBwcm9wZXJ0eSBpbiB0aGUgZ2l2 ZW4gbm9kZS4NCj4+IA0KPj4gKw0KPj4gDQo+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAg IFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPj4gDQo+PiArICBAcGFyYW1baW5dIE5vZGVPZmZz ZXQgICAgIFRoZSBvZmZzZXQgdG8gdGhlIG5vZGUgb2Zmc2V0IHdoaWNoIHdhbnQgdG8gYWRkIGlu Lg0KPj4gDQo+PiArICBAcGFyYW1baW5dIE5hbWUgICAgICAgICAgIFRoZSBuYW1lIHRvIG5hbWUg dGhlIHByb3BlcnR5Lg0KPj4gDQo+PiArICBAcGFyYW1baW5dIFZhbHVlICAgICAgICAgIFRoZSB2 YWx1ZSB0byB0aGUgcHJvcGVydHkgdmFsdWUuDQo+PiANCj4+ICsgIEBwYXJhbVtpbl0gTGVuZ3Ro ICAgICAgICAgVGhlIGxlbmd0aCB0byB0aGUgc2l6ZSBvZiB0aGUgcHJvcGVydHkuDQo+PiANCj4+ ICsNCj4+IA0KPj4gKyAgQHJldHVybiAgWmVybyBmb3Igc3VjY2Vzc2Z1bGx5LCBvdGhlcndpc2Ug ZmFpbGVkLg0KPj4gDQo+PiArDQo+PiANCj4+ICsqKi8NCj4+IA0KPj4gK0lOVDMyDQo+PiANCj4+ ICtFRklBUEkNCj4+IA0KPj4gK0ZkdFNldFByb3AgKA0KPj4gDQo+PiArICBJTiBWT0lEICAgICAg ICAgKkZkdCwNCj4+IA0KPj4gKyAgSU4gSU5UMzIgICAgICAgIE5vZGVPZmZzZXQsDQo+PiANCj4+ ICsgIElOIENPTlNUIENIQVI4ICAqTmFtZSwNCj4+IA0KPj4gKyAgSU4gQ09OU1QgVk9JRCAgICpW YWx1ZSwNCj4+IA0KPj4gKyAgSU4gVUlOVDMyICAgICAgIExlbmd0aA0KPj4gDQo+PiArICApDQo+ PiANCj4+ICt7DQo+PiANCj4+ICsgIHJldHVybiBmZHRfc2V0cHJvcCAoRmR0LCBOb2RlT2Zmc2V0 LCBOYW1lLCBWYWx1ZSwgKGludClMZW5ndGgpOw0KPj4gDQo+PiArfQ0KPj4gDQo+PiBkaWZmIC0t Z2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9MaWJGZHRTdXBwb3J0LmggDQo+PiBiL01k ZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvTGliRmR0U3VwcG9ydC5oDQo+PiBuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KPj4gaW5kZXggMDAwMDAwMDAwMC4uZTczOGY0ZGVkNA0KPj4gLS0tIC9kZXYvbnVs bA0KPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9MaWJGZHRTdXBwb3J0LmgNCj4+ IEBAIC0wLDAgKzEsOTkgQEANCj4+ICsvKiogQGZpbGUNCj4+IA0KPj4gKyAgUm9vdCBpbmNsdWRl IGZpbGUgb2YgQyBydW50aW1lIGxpYnJhcnkgdG8gc3VwcG9ydCBidWlsZGluZyB0aGUgDQo+PiAr IHRoaXJkLXBhcnR5DQo+PiANCj4+ICsgIGxpYmZkdCBsaWJyYXJ5Lg0KPj4gDQo+PiArDQo+PiAN Cj4+ICsgIENvcHlyaWdodCAoYykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPj4gDQo+PiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudA0KPj4gDQo+PiArDQo+PiANCj4+ICsqKi8NCj4+IA0KPj4gKw0KPj4gDQo+ PiArI2lmbmRlZiBGRFRfTElCX1NVUFBPUlRfSF8NCj4+IA0KPj4gKyNkZWZpbmUgRkRUX0xJQl9T VVBQT1JUX0hfDQo+PiANCj4+ICsNCj4+IA0KPj4gKyNpbmNsdWRlIDxCYXNlLmg+DQo+PiANCj4+ ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlTGliLmg+DQo+PiANCj4+ICsjaW5jbHVkZSA8TGlicmFy eS9CYXNlTWVtb3J5TGliLmg+DQo+PiANCj4+ICsNCj4+IA0KPj4gK3R5cGVkZWYgVUlOVDggICAg dWludDhfdDsNCj4+IA0KPj4gK3R5cGVkZWYgVUlOVDE2ICAgdWludDE2X3Q7DQo+PiANCj4+ICt0 eXBlZGVmIElOVDMyICAgIGludDMyX3Q7DQo+PiANCj4+ICt0eXBlZGVmIFVJTlQzMiAgIHVpbnQz Ml90Ow0KPj4gDQo+PiArdHlwZWRlZiBVSU5UNjQgICB1aW50NjRfdDsNCj4+IA0KPj4gK3R5cGVk ZWYgVUlOVE4gICAgdWludHB0cl90Ow0KPj4gDQo+PiArdHlwZWRlZiBVSU5UTiAgICBzaXplX3Q7 DQo+PiANCj4+ICt0eXBlZGVmIEJPT0xFQU4gIGJvb2w7DQo+PiANCj4+ICsNCj4+IA0KPj4gKyNk ZWZpbmUgdHJ1ZSAgICgxID09IDEpDQo+PiANCj4+ICsjZGVmaW5lIGZhbHNlICAoMSA9PSAwKQ0K Pj4gDQo+PiArDQo+PiANCj4+ICsvLw0KPj4gDQo+PiArLy8gRGVmaW5pdGlvbnMgZm9yIGdsb2Jh bCBjb25zdGFudHMgdXNlZCBieSBsaWJmZHQgbGlicmFyeSByb3V0aW5lcw0KPj4gDQo+PiArLy8N Cj4+IA0KPj4gKyNkZWZpbmUgSU5UX01BWCAgICAgICAgICAweDdGRkZGRkZGICAgICAgLyogTWF4 aW11bSAoc2lnbmVkKSBpbnQgdmFsdWUgKi8NCj4+IA0KPj4gKyNkZWZpbmUgSU5UMzJfTUFYICAg ICAgICAweDdGRkZGRkZGICAgICAgLyogTWF4aW11bSAoc2lnbmVkKSBpbnQzMiB2YWx1ZSAqLw0K Pj4gDQo+PiArI2RlZmluZSBVSU5UMzJfTUFYICAgICAgIDB4RkZGRkZGRkYgICAgICAvKiBNYXhp bXVtIHVuc2lnbmVkIGludDMyIHZhbHVlICovDQo+PiANCj4+ICsNCj4+IA0KPj4gKy8vDQo+PiAN Cj4+ICsvLyBGdW5jdGlvbiBwcm90b3R5cGVzIG9mIGxpYmZkdCBMaWJyYXJ5IHJvdXRpbmVzDQo+ PiANCj4+ICsvLw0KPj4gDQo+PiArdm9pZCAqDQo+PiANCj4+ICttZW1zZXQgICAgICgNCj4+IA0K Pj4gKyAgdm9pZCAqLA0KPj4gDQo+PiArICBpbnQsDQo+PiANCj4+ICsgIHNpemVfdA0KPj4gDQo+ PiArICApOw0KPj4gDQo+PiArDQo+PiANCj4+ICtpbnQNCj4+IA0KPj4gK21lbWNtcCAgICAgICgN Cj4+IA0KPj4gKyAgY29uc3Qgdm9pZCAqLA0KPj4gDQo+PiArICBjb25zdCB2b2lkICosDQo+PiAN Cj4+ICsgIHNpemVfdA0KPj4gDQo+PiArICApOw0KPj4gDQo+PiArDQo+PiANCj4+ICtpbnQNCj4+ IA0KPj4gK3N0cmNtcCAgICAgICgNCj4+IA0KPj4gKyAgY29uc3QgY2hhciAqLA0KPj4gDQo+PiAr ICBjb25zdCBjaGFyICoNCj4+IA0KPj4gKyAgKTsNCj4+IA0KPj4gKw0KPj4gDQo+PiArY2hhciAq DQo+PiANCj4+ICtzdHJjaHIgICAgICgNCj4+IA0KPj4gKyAgY29uc3QgY2hhciAqLA0KPj4gDQo+ PiArICBpbnQNCj4+IA0KPj4gKyAgKTsNCj4+IA0KPj4gKw0KPj4gDQo+PiArY2hhciAqDQo+PiAN Cj4+ICtzdHJyY2hyICAgICgNCj4+IA0KPj4gKyAgY29uc3QgY2hhciAqLA0KPj4gDQo+PiArICBp bnQNCj4+IA0KPj4gKyAgKTsNCj4+IA0KPj4gKw0KPj4gDQo+PiArdW5zaWduZWQgbG9uZw0KPj4g DQo+PiArc3RydG91bCAgICAgKA0KPj4gDQo+PiArICBjb25zdCBjaGFyICosDQo+PiANCj4+ICsg IGNoYXIgKiosDQo+PiANCj4+ICsgIGludA0KPj4gDQo+PiArICApOw0KPj4gDQo+PiArDQo+PiAN Cj4+ICtjaGFyICoNCj4+IA0KPj4gK3N0cmNweSAoDQo+PiANCj4+ICsgIGNoYXIgICAgICAgICpz dHJEZXN0LA0KPj4gDQo+PiArICBjb25zdCBjaGFyICAqc3RyU291cmNlDQo+PiANCj4+ICsgICk7 DQo+PiANCj4+ICsNCj4+IA0KPj4gKy8vDQo+PiANCj4+ICsvLyBNYWNyb3MgdGhhdCBkaXJlY3Rs eSBtYXAgZnVuY3Rpb25zIHRvIEJhc2VMaWIsIEJhc2VNZW1vcnlMaWIsIGFuZCANCj4+ICtEZWJ1 Z0xpYiBmdW5jdGlvbnMNCj4+IA0KPj4gKy8vDQo+PiANCj4+ICsjZGVmaW5lIG1lbWNweShkZXN0 LCBzb3VyY2UsIGNvdW50KSAgICAgICAgIENvcHlNZW0oZGVzdCxzb3VyY2UsIChVSU5UTikoY291 bnQpKQ0KPj4gDQo+PiArI2RlZmluZSBtZW1zZXQoZGVzdCwgY2gsIGNvdW50KSAgICAgICAgICAg ICBTZXRNZW0oZGVzdCwgKFVJTlROKShjb3VudCksKFVJTlQ4KShjaCkpDQo+PiANCj4+ICsjZGVm aW5lIG1lbWNocihidWYsIGNoLCBjb3VudCkgICAgICAgICAgICAgIFNjYW5NZW04KGJ1ZiwgKFVJ TlROKShjb3VudCksKFVJTlQ4KWNoKQ0KPj4gDQo+PiArI2RlZmluZSBtZW1jbXAoYnVmMSwgYnVm MiwgY291bnQpICAgICAgICAgICAoaW50KShDb21wYXJlTWVtKGJ1ZjEsIGJ1ZjIsIChVSU5UTiko Y291bnQpKSkNCj4+IA0KPj4gKyNkZWZpbmUgbWVtbW92ZShkZXN0LCBzb3VyY2UsIGNvdW50KSAg ICAgICAgQ29weU1lbShkZXN0LCBzb3VyY2UsIChVSU5UTikoY291bnQpKQ0KPj4gDQo+PiArI2Rl ZmluZSBzdHJsZW4oc3RyKSAgICAgICAgICAgICAgICAgICAgICAgICAoc2l6ZV90KShBc2NpaVN0 ckxlbihzdHIpKQ0KPj4gDQo+PiArI2RlZmluZSBzdHJubGVuKHN0ciwgY291bnQpICAgICAgICAg ICAgICAgICAoc2l6ZV90KShBc2NpaVN0cm5MZW5TKHN0ciwgY291bnQpKQ0KPj4gDQo+PiArI2Rl ZmluZSBzdHJuY3B5KHN0ckRlc3QsIHN0clNvdXJjZSwgY291bnQpICBBc2NpaVN0cm5DcHlTKHN0 ckRlc3QsIA0KPj4gK01BWF9TVFJJTkdfU0laRSwgc3RyU291cmNlLCAoVUlOVE4pY291bnQpDQo+ PiANCj4+ICsjZGVmaW5lIHN0cmNhdChzdHJEZXN0LCBzdHJTb3VyY2UpICAgICAgICAgIEFzY2lp U3RyQ2F0UyhzdHJEZXN0LCBNQVhfU1RSSU5HX1NJWkUsIHN0clNvdXJjZSkNCj4+IA0KPj4gKyNk ZWZpbmUgc3RyY21wKHN0cmluZzEsIHN0cmluZzIsIGNvdW50KSAgICAgKGludCkoQXNjaWlTdHJD bXAoc3RyaW5nMSwgc3RyaW5nMikpDQo+PiANCj4+ICsjZGVmaW5lIHN0cm5jbXAoc3RyaW5nMSwg c3RyaW5nMiwgY291bnQpICAgIChpbnQpKEFzY2lpU3RybkNtcChzdHJpbmcxLCBzdHJpbmcyLCAo VUlOVE4pKGNvdW50KSkpDQo+PiANCj4+ICsNCj4+IA0KPj4gKyNlbmRpZiAvKiBGRFRfTElCX1NV UFBPUlRfSF8gKi8NCj4+IA0KPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRM aWIvTGliRmR0V3JhcHBlci5jIA0KPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0xpYkZk dFdyYXBwZXIuYw0KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAwMDAwMDAwMDAu Ljc3MmJiYTQ4MzkNCj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jh c2VGZHRMaWIvTGliRmR0V3JhcHBlci5jDQo+PiBAQCAtMCwwICsxLDE3MyBAQA0KPj4gKy8qKiBA ZmlsZQ0KPj4gDQo+PiArICBJU08gQyBpbXBsZW1lbnRhdGlvbnMgb2Ygc3RyY2hyLCBzdHJyY2hy IGFuZCBzdHJ0b3VsLg0KPj4gDQo+PiArDQo+PiANCj4+ICsgIENvcHlyaWdodCAoYykgMjAyMywg SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPj4gDQo+PiArICBD b3B5cmlnaHQgKGMpIDIwMjMgUGVkcm8gRmFsY2F0byBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPj4g DQo+PiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPj4g DQo+PiArDQo+PiANCj4+ICsqKi8NCj4+IA0KPj4gKw0KPj4gDQo+PiArI2luY2x1ZGUgPEJhc2Uu aD4NCj4+IA0KPj4gKw0KPj4gDQo+PiArI2RlZmluZSBVTE9OR19NQVggICAgICAgIDB4RkZGRkZG RkYgICAgICAvKiBNYXhpbXVtIHVuc2lnbmVkIGxvbmcgdmFsdWUgKi8NCj4+IA0KPj4gKw0KPj4g DQo+PiArLy8gVmVyeSBxdWljayBub3RlczoNCj4+IA0KPj4gKy8vIFdlIG9ubHkgZ28gdGhyb3Vn aCB0aGUgc3RyaW5nIG9uY2UgZm9yIGJvdGggZnVuY3Rpb25zDQo+PiANCj4+ICsvLyBUaGV5IGFy ZSBtaW5pbWFsIGltcGxlbWVudGF0aW9ucyAobm90IHNwZWVkIG9wdGltaXplZCkgb2YgSVNPIEMg DQo+PiArc2VtYW50aWNzDQo+PiANCj4+ICsvLyBzdHJjaHIgYW5kIHN0cnJjaHIgYWxzbyBpbmNs dWRlIHRoZSBudWxsIHRlcm1pbmF0b3IgYXMgcGFydCBvZiB0aGUgDQo+PiArc3RyaW5nDQo+PiAN Cj4+ICsvLyBzbyB0aGUgY29kZSBnZXRzIGEgYml0IGNsdW5reSB0byBoYW5kbGUgdGhhdCBjYXNl IHNwZWNpZmljYWxseS4NCj4+IA0KPj4gKw0KPj4gDQo+PiArY2hhciAqDQo+PiANCj4+ICtzdHJj aHIgKA0KPj4gDQo+PiArICBjb25zdCBjaGFyICAqU3RyLA0KPj4gDQo+PiArICBpbnQgICAgICAg ICBDaGFyDQo+PiANCj4+ICsgICkNCj4+IA0KPj4gK3sNCj4+IA0KPj4gKyAgY2hhciAgKlM7DQo+ PiANCj4+ICsNCj4+IA0KPj4gKyAgUyA9IChjaGFyICopU3RyOw0KPj4gDQo+PiArDQo+PiANCj4+ ICsgIGZvciAoIDsgOyBTKyspIHsNCj4+IA0KPj4gKyAgICBpZiAoKlMgPT0gQ2hhcikgew0KPj4g DQo+PiArICAgICAgcmV0dXJuIFM7DQo+PiANCj4+ICsgICAgfQ0KPj4gDQo+PiArDQo+PiANCj4+ ICsgICAgaWYgKCpTID09ICdcMCcpIHsNCj4+IA0KPj4gKyAgICAgIHJldHVybiBOVUxMOw0KPj4g DQo+PiArICAgIH0NCj4+IA0KPj4gKyAgfQ0KPj4gDQo+PiArfQ0KPj4gDQo+PiArDQo+PiANCj4+ ICtjaGFyICoNCj4+IA0KPj4gK3N0cnJjaHIgKA0KPj4gDQo+PiArICBjb25zdCBjaGFyICAqU3Ry LA0KPj4gDQo+PiArICBpbnQgICAgICAgICBDaGFyDQo+PiANCj4+ICsgICkNCj4+IA0KPj4gK3sN Cj4+IA0KPj4gKyAgY2hhciAgKlMsICpsYXN0Ow0KPj4gDQo+PiArDQo+PiANCj4+ICsgIFMgICAg PSAoY2hhciAqKVN0cjsNCj4+IA0KPj4gKyAgbGFzdCA9IE5VTEw7DQo+PiANCj4+ICsNCj4+IA0K Pj4gKyAgZm9yICggOyA7IFMrKykgew0KPj4gDQo+PiArICAgIGlmICgqUyA9PSBDaGFyKSB7DQo+ PiANCj4+ICsgICAgICBsYXN0ID0gUzsNCj4+IA0KPj4gKyAgICB9DQo+PiANCj4+ICsNCj4+IA0K Pj4gKyAgICBpZiAoKlMgPT0gJ1wwJykgew0KPj4gDQo+PiArICAgICAgcmV0dXJuIGxhc3Q7DQo+ PiANCj4+ICsgICAgfQ0KPj4gDQo+PiArICB9DQo+PiANCj4+ICt9DQo+PiANCj4+ICsNCj4+IA0K Pj4gK1NUQVRJQw0KPj4gDQo+PiAraW50DQo+PiANCj4+ICtfX2lzc3BhY2UgKA0KPj4gDQo+PiAr ICBpbnQgIGNoDQo+PiANCj4+ICsgICkNCj4+IA0KPj4gK3sNCj4+IA0KPj4gKyAgLy8gYmFzaWMg QVNDSUkgY3R5cGUuaDppc3NwYWNlKCkuIE5vdCBlZmZpY2llbnQNCj4+IA0KPj4gKyAgcmV0dXJu IGNoID09ICdccicgfHwgY2ggPT0gJ1xuJyB8fCBjaCA9PSAnICcgfHwgY2ggPT0gJ1x0JyB8fCBj aCA9PSANCj4+ICsgJ1x2JyB8fCBjaCA9PSAnXGYnOw0KPj4gDQo+PiArfQ0KPj4gDQo+PiArDQo+ PiANCj4+ICt1bnNpZ25lZCBsb25nDQo+PiANCj4+ICtzdHJ0b3VsICgNCj4+IA0KPj4gKyAgY29u c3QgY2hhciAgKk5wdHIsDQo+PiANCj4+ICsgIGNoYXIgICAgICAgICoqRW5kUHRyLA0KPj4gDQo+ PiArICBpbnQgICAgICAgICBCYXNlDQo+PiANCj4+ICsgICkNCj4+IA0KPj4gK3sNCj4+IA0KPj4g KyAgQk9PTEVBTiAgICAgICAgTmVnYXRlOw0KPj4gDQo+PiArICBCT09MRUFOICAgICAgICBPdmVy ZmxvdzsNCj4+IA0KPj4gKyAgdW5zaWduZWQgbG9uZyAgVmFsOw0KPj4gDQo+PiArDQo+PiANCj4+ ICsgIE5lZ2F0ZSAgID0gRkFMU0U7DQo+PiANCj4+ICsgIE92ZXJmbG93ID0gRkFMU0U7DQo+PiAN Cj4+ICsgIFZhbCAgICAgID0gMDsNCj4+IA0KPj4gKw0KPj4gDQo+PiArICAvLyBSZWplY3QgYmFk IG51bWVyaWMgYmFzZXMNCj4+IA0KPj4gKyAgaWYgKChCYXNlIDwgMCkgfHwgKEJhc2UgPT0gMSkg fHwgKEJhc2UgPiAzNikpIHsNCj4+IA0KPj4gKyAgICByZXR1cm4gMDsNCj4+IA0KPj4gKyAgfQ0K Pj4gDQo+PiArDQo+PiANCj4+ICsgIC8vIFNraXAgd2hpdGVzcGFjZQ0KPj4gDQo+PiArICB3aGls ZSAoX19pc3NwYWNlICgqTnB0cikpIHsNCj4+IA0KPj4gKyAgICBOcHRyKys7DQo+PiANCj4+ICsg IH0NCj4+IA0KPj4gKw0KPj4gDQo+PiArICAvLyBDaGVjayBmb3IgKyBvciAtIHByZWZpeGVzDQo+ PiANCj4+ICsgIGlmICgqTnB0ciA9PSAnLScpIHsNCj4+IA0KPj4gKyAgICBOZWdhdGUgPSBUUlVF Ow0KPj4gDQo+PiArICAgIE5wdHIrKzsNCj4+IA0KPj4gKyAgfSBlbHNlIGlmICgqTnB0ciA9PSAn KycpIHsNCj4+IA0KPj4gKyAgICBOcHRyKys7DQo+PiANCj4+ICsgIH0NCj4+IA0KPj4gKw0KPj4g DQo+PiArICAvLyBDb25zdW1lIHRoZSBzdGFydCwgYXV0b2RldGVjdGluZyBiYXNlIGlmIG5lZWRl ZA0KPj4gDQo+PiArICBpZiAoKE5wdHJbMF0gPT0gJzAnKSAmJiAoKE5wdHJbMV0gPT0gJ3gnKSB8 fCAoTnB0clsxXSA9PSAnWCcpKSAmJiANCj4+ICsgKChCYXNlID09IDApIHx8IChCYXNlID09IDE2 KSkpIHsNCj4+IA0KPj4gKyAgICAvLyBIZXgNCj4+IA0KPj4gKyAgICBOcHRyICs9IDI7DQo+PiAN Cj4+ICsgICAgQmFzZSAgPSAxNjsNCj4+IA0KPj4gKyAgfSBlbHNlIGlmICgoTnB0clswXSA9PSAn MCcpICYmICgoTnB0clsxXSA9PSAnYicpIHx8IChOcHRyWzFdID09IA0KPj4gKyAnQicpKSAmJiAo KEJhc2UgPT0gMCkgfHwgKEJhc2UgPT0gMikpKSB7DQo+PiANCj4+ICsgICAgLy8gQmluYXJ5IChz dGFuZGFyZCBwZW5kaW5nIEMyMykNCj4+IA0KPj4gKyAgICBOcHRyICs9IDI7DQo+PiANCj4+ICsg ICAgQmFzZSAgPSAyOw0KPj4gDQo+PiArICB9IGVsc2UgaWYgKChOcHRyWzBdID09ICcwJykgJiYg KChCYXNlID09IDApIHx8IChCYXNlID09IDgpKSkgew0KPj4gDQo+PiArICAgIC8vIE9jdGFsDQo+ PiANCj4+ICsgICAgTnB0cisrOw0KPj4gDQo+PiArICAgIEJhc2UgPSA4Ow0KPj4gDQo+PiArICB9 IGVsc2Ugew0KPj4gDQo+PiArICAgIGlmIChCYXNlID09IDApIHsNCj4+IA0KPj4gKyAgICAgIC8v IEFzc3VtZSBkZWNpbWFsDQo+PiANCj4+ICsgICAgICBCYXNlID0gMTA7DQo+PiANCj4+ICsgICAg fQ0KPj4gDQo+PiArICB9DQo+PiANCj4+ICsNCj4+IA0KPj4gKyAgd2hpbGUgKFRSVUUpIHsNCj4+ IA0KPj4gKyAgICBpbnQgICAgICAgICAgICBEaWdpdDsNCj4+IA0KPj4gKyAgICBjaGFyICAgICAg ICAgICBDOw0KPj4gDQo+PiArICAgIHVuc2lnbmVkIGxvbmcgIE5ld1ZhbDsNCj4+IA0KPj4gKw0K Pj4gDQo+PiArICAgIEMgICAgID0gKk5wdHI7DQo+PiANCj4+ICsgICAgRGlnaXQgPSAtMTsNCj4+ IA0KPj4gKw0KPj4gDQo+PiArICAgIGlmICgoQyA+PSAnMCcpICYmIChDIDw9ICc5JykpIHsNCj4+ IA0KPj4gKyAgICAgIERpZ2l0ID0gQyAtICcwJzsNCj4+IA0KPj4gKyAgICB9IGVsc2UgaWYgKChD ID49ICdhJykgJiYgKEMgPD0gJ3onKSkgew0KPj4gDQo+PiArICAgICAgRGlnaXQgPSBDIC0gJ2En ICsgMTA7DQo+PiANCj4+ICsgICAgfSBlbHNlIGlmICgoQyA+PSAnQScpICYmIChDIDw9ICdaJykp IHsNCj4+IA0KPj4gKyAgICAgIERpZ2l0ID0gQyAtICdBJyArIDEwOw0KPj4gDQo+PiArICAgIH0N Cj4+IA0KPj4gKw0KPj4gDQo+PiArICAgIGlmICgoRGlnaXQgPT0gLTEpIHx8IChEaWdpdCA+PSBC YXNlKSkgew0KPj4gDQo+PiArICAgICAgLy8gTm90ZSB0aGF0IHRoaXMgY2FzZSBhbHNvIGhhbmRs ZXMgdGhlIFwwDQo+PiANCj4+ICsgICAgICBpZiAoRW5kUHRyKSB7DQo+PiANCj4+ICsgICAgICAg ICpFbmRQdHIgPSAoY2hhciAqKU5wdHI7DQo+PiANCj4+ICsgICAgICB9DQo+PiANCj4+ICsNCj4+ IA0KPj4gKyAgICAgIGJyZWFrOw0KPj4gDQo+PiArICAgIH0NCj4+IA0KPj4gKw0KPj4gDQo+PiAr ICAgIE5ld1ZhbCA9IFZhbCAqIEJhc2UgKyBEaWdpdDsNCj4+IA0KPj4gKw0KPj4gDQo+PiArICAg IGlmIChOZXdWYWwgPCBWYWwpIHsNCj4+IA0KPj4gKyAgICAgIC8vIE92ZXJmbG93DQo+PiANCj4+ ICsgICAgICBPdmVyZmxvdyA9IFRSVUU7DQo+PiANCj4+ICsgICAgfQ0KPj4gDQo+PiArDQo+PiAN Cj4+ICsgICAgVmFsID0gTmV3VmFsOw0KPj4gDQo+PiArDQo+PiANCj4+ICsgICAgTnB0cisrOw0K Pj4gDQo+PiArICB9DQo+PiANCj4+ICsNCj4+IA0KPj4gKyAgaWYgKE5lZ2F0ZSkgew0KPj4gDQo+ PiArICAgIFZhbCA9IC1WYWw7DQo+PiANCj4+ICsgIH0NCj4+IA0KPj4gKw0KPj4gDQo+PiArICBp ZiAoT3ZlcmZsb3cpIHsNCj4+IA0KPj4gKyAgICBWYWwgPSBVTE9OR19NQVg7DQo+PiANCj4+ICsg IH0NCj4+IA0KPj4gKw0KPj4gDQo+PiArICAvLyBUT0RPOiBXZSdyZSBsYWNraW5nIGVycm5vIGhl cmUuDQo+PiANCj4+ICsgIHJldHVybiBWYWw7DQo+PiANCj4+ICt9DQo+PiANCj4+IGRpZmYgLS1n aXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL2xpbWl0cy5oIA0KPj4gYi9NZGVQa2cvTGli cmFyeS9CYXNlRmR0TGliL2xpbWl0cy5oDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5k ZXggMDAwMDAwMDAwMC4uZjZjZjhkNTcwMg0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvTWRl UGtnL0xpYnJhcnkvQmFzZUZkdExpYi9saW1pdHMuaA0KPj4gQEAgLTAsMCArMSwxMCBAQA0KPj4g Ky8qKiBAZmlsZQ0KPj4gDQo+PiArICBJbmNsdWRlIGZpbGUgdG8gc3VwcG9ydCBidWlsZGluZyB0 aGUgdGhpcmQtcGFydHkgbGliZmR0IGxpYnJhcnkuDQo+PiANCj4+ICsNCj4+IA0KPj4gK0NvcHly aWdodCAoYykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPj4gDQo+PiArU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cj4+IA0KPj4gKw0KPj4gDQo+PiArKiovDQo+PiANCj4+ICsNCj4+IA0KPj4gKyNpbmNsdWRlIDxM aWJGZHRTdXBwb3J0Lmg+DQo+PiANCj4+ICsNCj4+IA0KPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9M aWJyYXJ5L0Jhc2VGZHRMaWIvc3RkYm9vbC5oIA0KPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0 TGliL3N0ZGJvb2wuaA0KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAwMDAwMDAw MDAuLmY2Y2Y4ZDU3MDINCj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5 L0Jhc2VGZHRMaWIvc3RkYm9vbC5oDQo+PiBAQCAtMCwwICsxLDEwIEBADQo+PiArLyoqIEBmaWxl DQo+PiANCj4+ICsgIEluY2x1ZGUgZmlsZSB0byBzdXBwb3J0IGJ1aWxkaW5nIHRoZSB0aGlyZC1w YXJ0eSBsaWJmZHQgbGlicmFyeS4NCj4+IA0KPj4gKw0KPj4gDQo+PiArQ29weXJpZ2h0IChjKSAy MDIzLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+PiANCj4+ ICtTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPj4gDQo+PiAr DQo+PiANCj4+ICsqKi8NCj4+IA0KPj4gKw0KPj4gDQo+PiArI2luY2x1ZGUgPExpYkZkdFN1cHBv cnQuaD4NCj4+IA0KPj4gKw0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFz ZUZkdExpYi9zdGRkZWYuaCANCj4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRkZWYu aA0KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAwMDAwMDAwMDAuLmY2Y2Y4ZDU3 MDINCj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIv c3RkZGVmLmgNCj4+IEBAIC0wLDAgKzEsMTAgQEANCj4+ICsvKiogQGZpbGUNCj4+IA0KPj4gKyAg SW5jbHVkZSBmaWxlIHRvIHN1cHBvcnQgYnVpbGRpbmcgdGhlIHRoaXJkLXBhcnR5IGxpYmZkdCBs aWJyYXJ5Lg0KPj4gDQo+PiArDQo+PiANCj4+ICtDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENv cnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4+IA0KPj4gK1NQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+PiANCj4+ICsNCj4+IA0KPj4gKyoq Lw0KPj4gDQo+PiArDQo+PiANCj4+ICsjaW5jbHVkZSA8TGliRmR0U3VwcG9ydC5oPg0KPj4gDQo+ PiArDQo+PiANCj4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGlu dC5oIA0KPj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGludC5oDQo+PiBuZXcgZmls ZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAwMDAwMDAwMC4uZjZjZjhkNTcwMg0KPj4gLS0tIC9k ZXYvbnVsbA0KPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRpbnQuaA0KPj4g QEAgLTAsMCArMSwxMCBAQA0KPj4gKy8qKiBAZmlsZQ0KPj4gDQo+PiArICBJbmNsdWRlIGZpbGUg dG8gc3VwcG9ydCBidWlsZGluZyB0aGUgdGhpcmQtcGFydHkgbGliZmR0IGxpYnJhcnkuDQo+PiAN Cj4+ICsNCj4+IA0KPj4gK0NvcHlyaWdodCAoYykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uIEFs bCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPj4gDQo+PiArU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4+IA0KPj4gKw0KPj4gDQo+PiArKiovDQo+PiANCj4+ICsN Cj4+IA0KPj4gKyNpbmNsdWRlIDxMaWJGZHRTdXBwb3J0Lmg+DQo+PiANCj4+ICsNCj4+IA0KPj4g ZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvc3RkbGliLmggDQo+PiBiL01k ZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvc3RkbGliLmgNCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+PiBpbmRleCAwMDAwMDAwMDAwLi5mNmNmOGQ1NzAyDQo+PiAtLS0gL2Rldi9udWxsDQo+PiAr KysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGxpYi5oDQo+PiBAQCAtMCwwICsxLDEw IEBADQo+PiArLyoqIEBmaWxlDQo+PiANCj4+ICsgIEluY2x1ZGUgZmlsZSB0byBzdXBwb3J0IGJ1 aWxkaW5nIHRoZSB0aGlyZC1wYXJ0eSBsaWJmZHQgbGlicmFyeS4NCj4+IA0KPj4gKw0KPj4gDQo+ PiArQ29weXJpZ2h0IChjKSAyMDIzLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+PiANCj4+ICtTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KPj4gDQo+PiArDQo+PiANCj4+ICsqKi8NCj4+IA0KPj4gKw0KPj4gDQo+PiArI2lu Y2x1ZGUgPExpYkZkdFN1cHBvcnQuaD4NCj4+IA0KPj4gKw0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEv TWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdHJpbmcuaCANCj4+IGIvTWRlUGtnL0xpYnJhcnkv QmFzZUZkdExpYi9zdHJpbmcuaA0KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAw MDAwMDAwMDAuLmY2Y2Y4ZDU3MDINCj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL01kZVBrZy9M aWJyYXJ5L0Jhc2VGZHRMaWIvc3RyaW5nLmgNCj4+IEBAIC0wLDAgKzEsMTAgQEANCj4+ICsvKiog QGZpbGUNCj4+IA0KPj4gKyAgSW5jbHVkZSBmaWxlIHRvIHN1cHBvcnQgYnVpbGRpbmcgdGhlIHRo aXJkLXBhcnR5IGxpYmZkdCBsaWJyYXJ5Lg0KPj4gDQo+PiArDQo+PiANCj4+ICtDb3B5cmlnaHQg KGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4+ IA0KPj4gK1NQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+PiAN Cj4+ICsNCj4+IA0KPj4gKyoqLw0KPj4gDQo+PiArDQo+PiANCj4+ICsjaW5jbHVkZSA8TGliRmR0 U3VwcG9ydC5oPg0KPj4gDQo+PiArDQo+PiANCj4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTWRlUGtn LmNpLnlhbWwgYi9NZGVQa2cvTWRlUGtnLmNpLnlhbWwgaW5kZXggDQo+PiA2YmE4NWViZTYxLi5m MDM5ZGFjY2RiIDEwMDY0NA0KPj4gLS0tIGEvTWRlUGtnL01kZVBrZy5jaS55YW1sDQo+PiArKysg Yi9NZGVQa2cvTWRlUGtnLmNpLnlhbWwNCj4+IEBAIC0yLDcgKzIsNyBAQA0KPj4gICMgQ0kgY29u ZmlndXJhdGlvbiBmb3IgTWRlUGtnDQo+PiANCj4+ICAjDQo+PiANCj4+ICAjIENvcHlyaWdodCAo YykgTWljcm9zb2Z0IENvcnBvcmF0aW9uDQo+PiANCj4+IC0jIENvcHlyaWdodCAoYykgMjAyMCwg SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPj4gDQo+PiArIyBD b3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCj4+IA0KPj4gICMgQ29weXJpZ2h0IChjKSAyMDIxLCBBcm0gTGltaXRlZC4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQo+PiANCj4+ICAjIENvcHlyaWdodCAoYykgMjAyMywgTG9vbmdz b24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbiBMaW1pdGVkLiBBbGwgDQo+PiByaWdodHMgcmVzZXJ2 ZWQuPEJSPg0KPj4gDQo+PiAgIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KPj4gDQo+PiBAQCAtNjcsNyArNjcsOCBAQA0KPj4gICAgICAgICAgICAgICJJbmNs dWRlL0xpYnJhcnkvUGNkTGliLmgiLA0KPj4gDQo+PiAgICAgICAgICAgICAgIkluY2x1ZGUvTGli cmFyeS9TYWZlSW50TGliLmgiLA0KPj4gDQo+PiAgICAgICAgICAgICAgIkluY2x1ZGUvUHJvdG9j b2wvRGVidWdTdXBwb3J0LmgiLA0KPj4gDQo+PiAtICAgICAgICAgICAgIlRlc3QvVW5pdFRlc3Qv TGlicmFyeS9CYXNlU2FmZUludExpYi9UZXN0QmFzZVNhZmVJbnRMaWIuYyINCj4+IA0KPj4gKyAg ICAgICAgICAgIA0KPj4gKyAiVGVzdC9Vbml0VGVzdC9MaWJyYXJ5L0Jhc2VTYWZlSW50TGliL1Rl c3RCYXNlU2FmZUludExpYi5jIiwNCj4+IA0KPj4gKyAgICAgICAgICAgICJMaWJyYXJ5L0Jhc2VG ZHRMaWIiDQo+PiANCj4+ICAgICAgICAgIF0NCj4+IA0KPj4gICAgICB9LA0KPj4gDQo+PiAgICAg ICMjIG9wdGlvbnMgZGVmaW5lZCBjaS9QbHVnaW4vQ29tcGlsZXJQbHVnaW4NCj4+IA0KPj4gQEAg LTE2NCw1ICsxNjUsMTcgQEANCj4+ICAgICAgICAgICJFeHRlbmRXb3JkcyI6IFtdLCAgICAgICAg ICAgIyB3b3JkcyB0byBleHRlbmQgdG8gdGhlIGRpY3Rpb25hcnkgZm9yIHRoaXMgcGFja2FnZQ0K Pj4gDQo+PiAgICAgICAgICAiSWdub3JlU3RhbmRhcmRQYXRocyI6IFtdLCAgICMgU3RhbmRhcmQg UGx1Z2luIGRlZmluZWQgcGF0aHMgdGhhdCBzaG91bGQgYmUgaWdub3JlDQo+PiANCj4+ICAgICAg ICAgICJBZGRpdGlvbmFsSW5jbHVkZVBhdGhzIjogW10gIyBBZGRpdGlvbmFsIHBhdGhzIHRvIHNw ZWxsIA0KPj4gY2hlY2sgKHdpbGRjYXJkcyBzdXBwb3J0ZWQpDQo+PiANCj4+ICsgICAgfSwNCj4+ IA0KPj4gKyAgICAjIG9wdGlvbnMgZGVmaW5lZCBpbiAucHl0b29sL1BsdWdpbi9VbmNydXN0aWZ5 Q2hlY2sNCj4+IA0KPj4gKyAgICAiVW5jcnVzdGlmeUNoZWNrIjogew0KPj4gDQo+PiArICAgICAg ICAiSWdub3JlRmlsZXMiOiBbDQo+PiANCj4+ICsgICAgICAgICAgICAiTGlicmFyeS9CYXNlRmR0 TGliL2xpYmZkdCIsDQo+PiANCj4+ICsgICAgICAgICAgICAiTGlicmFyeS9CYXNlRmR0TGliL2xp bWl0cy5oIiwNCj4+IA0KPj4gKyAgICAgICAgICAgICJMaWJyYXJ5L0Jhc2VGZHRMaWIvc3RkYm9v bC5oIiwNCj4+IA0KPj4gKyAgICAgICAgICAgICJMaWJyYXJ5L0Jhc2VGZHRMaWIvc3RkZGVmLmgi LA0KPj4gDQo+PiArICAgICAgICAgICAgIkxpYnJhcnkvQmFzZUZkdExpYi9zdGRpbnQuaCIsDQo+ PiANCj4+ICsgICAgICAgICAgICAiTGlicmFyeS9CYXNlRmR0TGliL3N0ZGxpYi5oIiwNCj4+IA0K Pj4gKyAgICAgICAgICAgICJMaWJyYXJ5L0Jhc2VGZHRMaWIvc3RyaW5nLmgiDQo+PiANCj4+ICsg ICAgICAgIF0NCj4+IA0KPj4gICAgICB9DQo+PiANCj4+ICB9DQo+PiANCj4+IGRpZmYgLS1naXQg YS9NZGVQa2cvTWRlUGtnLmRlYyBiL01kZVBrZy9NZGVQa2cuZGVjIGluZGV4IA0KPj4gZTcwMTgy YmY3Zi4uOTgwNGE3YTZiZCAxMDA2NDQNCj4+IC0tLSBhL01kZVBrZy9NZGVQa2cuZGVjDQo+PiAr KysgYi9NZGVQa2cvTWRlUGtnLmRlYw0KPj4gQEAgLTI4OSw2ICsyODksMTAgQEANCj4+ICAgICMN Cj4+IA0KPj4gICAgQXJtVHJuZ0xpYnxJbmNsdWRlL0xpYnJhcnkvQXJtVHJuZ0xpYi5oDQo+PiAN Cj4+IA0KPj4gDQo+PiArICAjIyAgQGxpYnJhcnljbGFzcyAgUHJvdmlkZXMgQVBJcyBmb3IgdGhp cmQtcGFydHkgbGlicmFyeSBsaWJmZHQuDQo+PiANCj4+ICsgICMNCj4+IA0KPj4gKyAgRmR0TGli fEluY2x1ZGUvTGlicmFyeS9GZHRMaWIuaA0KPj4gDQo+PiArDQo+PiANCj4+ICBbTGlicmFyeUNs YXNzZXMuSUEzMiwgTGlicmFyeUNsYXNzZXMuWDY0LCBMaWJyYXJ5Q2xhc3Nlcy5BQVJDSDY0XQ0K Pj4gDQo+PiAgICAjIyAgQGxpYnJhcnljbGFzcyAgUHJvdmlkZXMgc2VydmljZXMgdG8gZ2VuZXJh dGUgcmFuZG9tIG51bWJlci4NCj4+IA0KPj4gICAgIw0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEvTWRl UGtnL01kZVBrZy5kc2MgYi9NZGVQa2cvTWRlUGtnLmRzYyBpbmRleCANCj4+IDE1MmMwMjk5MWEu LmIzOGM4NjM4MTIgMTAwNjQ0DQo+PiAtLS0gYS9NZGVQa2cvTWRlUGtnLmRzYw0KPj4gKysrIGIv TWRlUGtnL01kZVBrZy5kc2MNCj4+IEBAIC0xMzcsNiArMTM3LDcgQEANCj4+ICAgIE1kZVBrZy9M aWJyYXJ5L1NtbUNwdVJlbmRlenZvdXNMaWJOdWxsL1NtbUNwdVJlbmRlenZvdXNMaWJOdWxsLmlu Zg0KPj4gDQo+PiANCj4+IA0KPj4gICAgTWRlUGtnL0xpYnJhcnkvSmVkZWNKZXAxMDZMaWIvSmVk ZWNKZXAxMDZMaWIuaW5mDQo+PiANCj4+ICsgIE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvQmFz ZUZkdExpYi5pbmYNCj4+IA0KPj4gDQo+PiANCj4+ICBbQ29tcG9uZW50cy5JQTMyLCBDb21wb25l bnRzLlg2NCwgQ29tcG9uZW50cy5BUk0sIENvbXBvbmVudHMuQUFSQ0g2NF0NCj4+IA0KPj4gICAg Iw0KPj4gDQo+PiAtLQ0KPj4gMi4zOS4xLndpbmRvd3MuMQ0KDQo=