From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web11.49211.1681318757475644087 for ; Wed, 12 Apr 2023 09:59:17 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=kK2gyiF7; spf=pass (domain: intel.com, ip: 134.134.136.65, 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=1681318757; x=1712854757; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=ockKpJ/bz5qkDExOdRQOpgzxkfHeN3MWvUVWNJLl8BA=; b=kK2gyiF7x3StL7gC3yXJSalZUrZdFF3x5hyA6u/hbkKKVPQxl4CjrGWL t5orj+HJE9W1Y9nE8g89fFVoVoP/1WsZcLfnUzA3pHk3/QI/xlrTrZdhh xnTtCqPzyqiPNV79Tig8xEa4StH/vmxfMmZicNG78ejPNJEtBnMzkWtYf 0H/llYdO0c3vsQJ9AmfSkXEcZM1a8TKVgug2l8YoyAJDKCjSPlMdUcMjw jGmwkqXk6JLT1gCVYo6Vkh4lyOoHJPQb/n4tazyAXuEU7gV+rA3yTtgBv I+M4Nx6SjNkDLc7otxf7kmeBQwZOVa1QXPeD8G12eSZ9hjPhgwZToORXp g==; X-IronPort-AV: E=McAfee;i="6600,9927,10678"; a="346636677" X-IronPort-AV: E=Sophos;i="5.98,339,1673942400"; d="scan'208";a="346636677" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Apr 2023 09:59:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10678"; a="832755765" X-IronPort-AV: E=Sophos;i="5.98,339,1673942400"; d="scan'208";a="832755765" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga001.fm.intel.com with ESMTP; 12 Apr 2023 09:59:16 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 12 Apr 2023 09:59:15 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) 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.2507.23; Wed, 12 Apr 2023 09:59:15 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) 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, 12 Apr 2023 09:59:15 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.47) 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, 12 Apr 2023 09:59:15 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LDbC9+n58Lc3jkLDQUBdL8LW43t2rVm2KgnihbR0jG0MPHO5zpbLRBey8YC6Yr2yRBPpG0svKogtQG3qiwAWQNbqBfopMDWLmQQIs3sEIhktkRjz0Hq54IX5x5HiQN5gqdEDpPRST/fM1payt7mUvWYDiPSszP7az9fN9YyU2x4d3R82iR1VBgJxedTenbkmQ2Pl9oOGy6lgxTNdTqwT1lmyYuscH8FCdA+/kuj7NnOIiqNiJOxtDjfnuX1VBPU/ALWHkkNcMzrd8I9c2AYdvcyDu6rAKZtERaQfRvyk3m9m/XPiSRfSPjSu1Upc5WeVLSWvQnpswMQvFAZrEp/Htw== 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=ockKpJ/bz5qkDExOdRQOpgzxkfHeN3MWvUVWNJLl8BA=; b=NRBhBs32KxkhHeo/W6zZEEmjKnoozcnjJsalSCmLKiEU4W75bPhmpRO+fYCucgRRnAv2BKoLN4PzwztOvxMAoZn5iY/pFJ/n6UJrJIQ6LnmFUUdacmGfBZaS53z9NQkjW/oUeOYItNSD9oYRhtHMaaMvrmrGj2I9TDiw+Jihpn2vKMXG/sE/9kLN9iv15a566hJroUNUwGgXmCtv9c7HaOMWrGcvpjeAkm/4HotkmvpLiyu9qJORKKj4OoPXFvC8X/UtTT0Gs86qKwJDjDiXAfSltVooPhZ2WNuio1Qmk538PMZGS1Xpt60hv5avKC/DI3TZwL5EvR99zHm9wTSqaQ== 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 CY5PR11MB6114.namprd11.prod.outlook.com (2603:10b6:930:2d::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6298.30; Wed, 12 Apr 2023 16:59:11 +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.6277.035; Wed, 12 Apr 2023 16:59:11 +0000 From: "Benny Lin" To: Pedro Falcato , "devel@edk2.groups.io" CC: "Kinney, Michael D" , "Gao, Liming" , "Liu, Zhiguang" , "Chiu, Chasel" Subject: Re: [edk2-devel] [PATCH 1/2] MdePkg: Support FDT library. Thread-Topic: [edk2-devel] [PATCH 1/2] MdePkg: Support FDT library. Thread-Index: AQHZYygFaf3heKxx1kOLwBVbVj6isK8T9biAgBPwxtA= Date: Wed, 12 Apr 2023 16:59:10 +0000 Message-ID: References: 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_|CY5PR11MB6114:EE_ x-ms-office365-filtering-correlation-id: e87f9380-0c1a-4b26-1857-08db3b773cce 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: ELHPXMaG6TGC3LPIU+uV99ky3celYurlXuWrlcM5febAa3KtV1drnK/Fz2qAt1kYgkMnouF1Y/h797NWygiXCBzzvG28ent2D0ABFzVAV+6ivV3V6oLQ/SAz7tvZ1z/N+nujkAZSoBVjLMP/z2OqQRR6h3WByg/3exjMpHg6Jg81MR9dYPaqiliKdifoWj34l+3bCCyYsBCIRZH9v7+kwgUwY05zsLU/uEuAFUS0WGjzEFeStJMA9TQqFLFlSuMSnMpFu974e5Wt622qNHTKn1/yRoCefd+R+vaPaJqMaezDm1rPeL7CoFYHGg54AInbHnswruquigOZoeTI/PNCZQAPt0egJciljSsOihy9hNblQepBjzKlkM3JBxxpQJlF/FJspa/WwlXqN8fgJwrPlftpmzn0NLZ47q/1J3heUWOrFgfDMe+KEJvDe9l0LpfA5UMb3dapkrDNTOvHBYqEz5wY/HbLrIDwWijklxRxxqForQvtcK2JF9+UranC7+CBof014pqg3guT7kZFDWGiqQS7Mbsnvj5cswc82bdwOfODPlxyS+JyXSf0RAsHJeGCu9IL44ncLO2t/uhf3aIIP/kfbCWpF2y+VsrmZ1ckjFwoED7gvdBXPdBGA/t95xjmfHKywtMow8oveDKqq0r7oQ== 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)(39860400002)(396003)(366004)(136003)(376002)(346002)(451199021)(86362001)(54906003)(110136005)(478600001)(33656002)(82960400001)(316002)(41300700001)(122000001)(38100700002)(8936002)(8676002)(52536014)(5660300002)(4326008)(66946007)(64756008)(66476007)(66556008)(76116006)(55016003)(66446008)(107886003)(53546011)(9686003)(6506007)(26005)(38070700005)(186003)(30864003)(83380400001)(2906002)(71200400001)(7696005)(966005)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QUJrby9sRlpteVN2VUdrUzdiTDQ2ZFAvMmNWbU1Kc3ZqSUJXMVpBQTBaRWtL?= =?utf-8?B?R0wvSWpzKy9UbzU4RE5BdUVmbS9KWG9NSWduY0xRT2ZFWTF4UDhEMXdTOTc4?= =?utf-8?B?Mm9jdUhoNWI1MnVWSlp2RXJuY25sQ3pBbEtPVXRKcU1oVG4yZUd0YTdTaENC?= =?utf-8?B?aEpCYTd5MCthTXhoRWlWb0VqWnhETkNKSXFJZ09hUERlZnpsWTBRMktuQXdS?= =?utf-8?B?c2lLcXN1MWlNQmhYK3I2cmVoQlY0RlgrS05MRmpGK1JjcFNGamlUQS82MHdW?= =?utf-8?B?NXFxU1R4K3ZRSk5ZVE9aSjZESWcza0p0SG9mNVdhb0plYUVqaW9SRExkay9j?= =?utf-8?B?c0VDM05GRmlXdFNqT3ZpT0NUN1NsVDJqT2w5bmtKclRrL090Tkt0M1lYWnRB?= =?utf-8?B?N1VCWDdxdThYOTQrdTNUZlk2S0llY1NGcTlzWTFxck56RG9LQnBKd1h4ZXVl?= =?utf-8?B?TjFtbUQyanZidUdTOE5USERjekR4YjIvM2wxUE44Rm5jbElMd2thc2dTNlUw?= =?utf-8?B?NGdYUTluektsZEFMTVNGVm1PVlQ2b1l2eGt4Z2J1bmZTR2NyRi9GU2xZNVg2?= =?utf-8?B?ZFoyVGU2elZHWllqY3hmMUU0bGN0UEtQUkkzOVY2dlp1bDNRZTRVSyt0YWJW?= =?utf-8?B?d3I4em1lUjRMTEFnd2s1YWZaWXNidUh6VnZvaXlnNVZmYUkzRU5Nam5SNG5u?= =?utf-8?B?T0swT1k5aThnaDZ2Mk55L1d3THVJVXlUQVkvZUdqNkNWemowc0doUythNEs0?= =?utf-8?B?ZGFOS2djT2JxdHplVCtnK0h2TTBieFRLVFlsc0ZtbXBHVmRUNWFlR2xXT3VX?= =?utf-8?B?U0pIZTVmT1NiU1FPWDR2WU83akZtMGpieE1KVXZzVWFFVGZzS3BUUXF2MXpV?= =?utf-8?B?ZmM1WldENUhVOXNKWjA3UVNkbXovUHlyUzZTSXUvYXJTb0Y2blNKMzd1MFVj?= =?utf-8?B?Rm5qREMza2NpSmVXc3RLcWdLKzl0dDRQS0ZMTkZQN1JYek1RRlV0RHVpZVBp?= =?utf-8?B?ZHpHK1g1dXdiTDVlb1dDSTNnc0VsSEdvcWhudms1VE5URnVadnhsWUdPejFE?= =?utf-8?B?bExqcDVISC9FOER4eFlndllqTXFPNGFYR1gwdGlTdDlGMkNacE9VN1FCTUhi?= =?utf-8?B?UkF2ZzgxcHg5dmdQazA4SkZ0Sy91SWY2V1IzYW9XTEk3bXNSVGMxTm5Ra25F?= =?utf-8?B?aThNekJKaVFhMmJicDcrODZIZTdYQjFFK0VpaHIwWFdhZVhzRnJJVlczeE5x?= =?utf-8?B?MGFseVoyWk1WUXJOd3N0UmVZTllqcWgreFJZbVU3c1YrWnl1Ull3eU42KzZB?= =?utf-8?B?aW8vSU9JUTJiZlA2TXZRRWEwbzhmZzdRVFhUVS9FR1p4UUwrNExCM2ZsNUZY?= =?utf-8?B?ekdVNnRtOFVoWGZZelBzU2I5WC9vTHJRSno4d0JDS01aemtSTG44NTJ4OU9U?= =?utf-8?B?eHlGTGdIZUV1eXRFdHZBRnZLZzJDamRaSTIwaHU4TklNVEpGOWNMUHFUMU44?= =?utf-8?B?Wkp4d3A1d1Bub284Vkd3cklJRnBSUTVSc1RQQ2J0M2laZTZ6Q0JGd3MrNFZ2?= =?utf-8?B?UmhUcExnclhIcWJzZVhpUXhZRFpSSE1LZkpSR3JZNGtzcEpaTjd6RlVpQzBk?= =?utf-8?B?RmxUdXRtdGhDeXV2TzE0SzFHc09xZVlWQ0ViYVd1Ni9LajBIN2hxb0hBUVRs?= =?utf-8?B?YzZOWDZibDRudTBEOUs5LzBZcndiSTNlckNrSENZdDR4YVZXSldPSG05ZnpN?= =?utf-8?B?NkN4TytoTGlnSXEyUGF5dldkME5qWEJaa3JzeU11WXV6QjhsQ1lxbDl4dDlT?= =?utf-8?B?dDV3b0EwWDhpLy9HWWp3MUtmeUdRb0RkWjNZRllKaGs3bURrTXBKUzdaWHNH?= =?utf-8?B?eno2UHV4c0szekt4eXNmOG1BL3NPUWtZYjdjV3FKMmdITnVVVmJsMHNHdHJ2?= =?utf-8?B?RE9uRGVLMFRSdUVzQWlyLzRmdW1ZVzhoZDF0NFFCRHB4RkVscGpjbVNra2oz?= =?utf-8?B?cmpTVHlwM2NJTGVzbEhCV3Y0S2VHcEJaalc3dXRuMHJTU0QyWjFNbUVLZEsz?= =?utf-8?B?clNHbWQrYTNtZ2NtMSt4U24rVzMxRzdOQ25SVklXb0g2K2tDSHZISVFKZVNu?= =?utf-8?Q?wl7og53qH8d0UlVYJjwPJ++j8?= 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: e87f9380-0c1a-4b26-1857-08db3b773cce X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Apr 2023 16:59:10.9828 (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: VRbf/AfyxcBBnEX2pJDqYqKtWf9nxLL0r2hLymi43DNbDe4KjDCWs+ldqE8F/JNwne4JK1nEKuN9SDhBT7CFxA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR11MB6114 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 SGksIFBlZHJvLA0KDQpUaGFua3MgZm9yIHlvdXIgZmVlZGJhY2suDQpTb3JyeSBmb3IgdGhlIGxh dGUgcmVzcG9uc2UuIFBsZWFzZSBmaW5kIGJlbG93IG15IGNvbW1lbnQuDQoNCi0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBQZWRybyBGYWxjYXRvIDxwZWRyby5mYWxjYXRvQGdtYWls LmNvbT4gDQpTZW50OiBGcmlkYXksIE1hcmNoIDMxLCAyMDIzIDc6MTkgQU0NClRvOiBkZXZlbEBl ZGsyLmdyb3Vwcy5pbzsgTGluLCBCZW5ueSA8YmVubnkubGluQGludGVsLmNvbT4NCkNjOiBLaW5u ZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBHYW8sIExpbWluZyA8 Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgTGl1LCBaaGlndWFuZyA8emhpZ3VhbmcubGl1QGlu dGVsLmNvbT4NClN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIDEvMl0gTWRlUGtnOiBT dXBwb3J0IEZEVCBsaWJyYXJ5Lg0KDQpPbiBUaHUsIE1hciAzMCwgMjAyMyBhdCA2OjEz4oCvUE0g QmVubnkgTGluIDxiZW5ueS5saW5AaW50ZWwuY29tPiB3cm90ZToNCj4+DQo+PiBSRUY6IGh0dHBz Oi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM5Mg0KPj4gQWRkIEZE VCBzdXBwb3J0IGluIEVESzIgYnkgc3VibW9kdWxlIDNyZCBwYXJ0eSBsaWJmZHQNCj4+IChodHRw czovL2dpdGh1Yi5jb20vZGV2aWNldHJlZS1vcmcvcHlsaWJmZHQvdHJlZS9tYWluL2xpYmZkdCkN Cj4+DQo+PiBDYzogTWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+ DQo+PiBDYzogTGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPj4gQ2M6IFpo aWd1YW5nIExpdSA8emhpZ3VhbmcubGl1QGludGVsLmNvbT4NCj4+IFNpZ25lZC1vZmYtYnk6IEJl bm55IExpbiA8YmVubnkubGluQGludGVsLmNvbT4NCj4+IC0tLQ0KPj4gIC5naXRtb2R1bGVzICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsNCj4+ICBNZGVQa2cvSW5jbHVkZS9M aWJyYXJ5L0ZkdExpYi5oICAgICAgICAgICB8IDMwMCArKysrKysrKysrKysrKysrKysrKysrDQo+ PiAgTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9CYXNlRmR0TGliLmluZiAgfCAgNjIgKysrKysg IA0KPj4gTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9CYXNlRmR0TGliLnVuaSAgfCAgMTQgKw0K Pj4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvRmR0TGliLmMgICAgICAgIHwgMjg0ICsrKysr KysrKysrKysrKysrKysrDQo+PiAgTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9MaWJGZHRTdXBw b3J0LmggfCAxMDIgKysrKysrKysgIA0KPj4gTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9MaWJG ZHRXcmFwcGVyLmMgfCAxMzggKysrKysrKysrKw0KPj4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRM aWIvbGliZmR0ICAgICAgICAgIHwgICAxICsNCj4+ICBNZGVQa2cvTGlicmFyeS9CYXNlRmR0TGli L2xpbWl0cy5oICAgICAgICB8ICAxMCArDQo+PiAgTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9z dGRib29sLmggICAgICAgfCAgMTAgKw0KPj4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvc3Rk ZGVmLmggICAgICAgIHwgIDEwICsNCj4+ICBNZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGlu dC5oICAgICAgICB8ICAxMCArDQo+PiAgTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRsaWIu aCAgICAgICAgfCAgMTAgKw0KPj4gIE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvc3RyaW5nLmgg ICAgICAgIHwgIDEwICsNCj4+ICBNZGVQa2cvTWRlUGtnLmNpLnlhbWwgICAgICAgICAgICAgICAg ICAgICB8ICAxNyArLQ0KPj4gIE1kZVBrZy9NZGVQa2cuZGVjICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICA0ICsNCj4+ICBNZGVQa2cvTWRlUGtnLmRzYyAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArDQo+PiAgUmVhZE1lLnJzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDEgKw0KPj4gIDE4IGZpbGVzIGNoYW5nZWQsIDk4NiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKSAgY3JlYXRlIG1vZGUgDQo+PiAxMDA2NDQgTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9G ZHRMaWIuaCAgY3JlYXRlIG1vZGUgMTAwNjQ0IA0KPj4gTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExp Yi9CYXNlRmR0TGliLmluZg0KPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBNZGVQa2cvTGlicmFyeS9C YXNlRmR0TGliL0Jhc2VGZHRMaWIudW5pDQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE1kZVBrZy9M aWJyYXJ5L0Jhc2VGZHRMaWIvRmR0TGliLmMNCj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgTWRlUGtn L0xpYnJhcnkvQmFzZUZkdExpYi9MaWJGZHRTdXBwb3J0LmgNCj4+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9MaWJGZHRXcmFwcGVyLmMNCj4+ICBjcmVhdGUg bW9kZSAxNjAwMDAgTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9saWJmZHQgIGNyZWF0ZSBtb2Rl IA0KPj4gMTAwNjQ0IE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvbGltaXRzLmgNCj4+ICBjcmVh dGUgbW9kZSAxMDA2NDQgTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRib29sLmgNCj4+ICBj cmVhdGUgbW9kZSAxMDA2NDQgTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdGRkZWYuaA0KPj4g IGNyZWF0ZSBtb2RlIDEwMDY0NCBNZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL3N0ZGludC5oDQo+ PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IE1kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvc3RkbGliLmgN Cj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9zdHJpbmcu aA0KPj4NCj4+IGRpZmYgLS1naXQgYS8uZ2l0bW9kdWxlcyBiLy5naXRtb2R1bGVzIGluZGV4IDgw MTFhODhkOWQuLjVkYTM0MmU5MGMgDQo+PiAxMDA2NDQNCj4+IC0tLSBhLy5naXRtb2R1bGVzDQo+ PiArKysgYi8uZ2l0bW9kdWxlcw0KPj4gQEAgLTIzLDMgKzIzLDYgQEANCj4+ICBbc3VibW9kdWxl ICJVbml0VGVzdEZyYW1ld29ya1BrZy9MaWJyYXJ5L0dvb2dsZVRlc3RMaWIvZ29vZ2xldGVzdCJd DQo+PiAgICAgICAgIHBhdGggPSBVbml0VGVzdEZyYW1ld29ya1BrZy9MaWJyYXJ5L0dvb2dsZVRl c3RMaWIvZ29vZ2xldGVzdA0KPj4gICAgICAgICB1cmwgPSBodHRwczovL2dpdGh1Yi5jb20vZ29v Z2xlL2dvb2dsZXRlc3QuZ2l0DQo+PiArW3N1Ym1vZHVsZSAiTWRlUGtnL0xpYnJhcnkvQmFzZUZk dExpYi9saWJmZHQiXQ0KPj4gKyAgICAgICBwYXRoID0gTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExp Yi9saWJmZHQNCj4+ICsgICAgICAgdXJsID0gaHR0cHM6Ly9naXRodWIuY29tL2RldmljZXRyZWUt b3JnL3B5bGliZmR0LmdpdA0KPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkv RmR0TGliLmggDQo+PiBiL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvRmR0TGliLmggbmV3IGZpbGUg bW9kZSAxMDA2NDQgaW5kZXggDQo+PiAwMDAwMDAwMDAwLi5iY2IwOTdiNzdlDQo+PiAtLS0gL2Rl di9udWxsDQo+PiArKysgYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0ZkdExpYi5oDQo+PiBAQCAt MCwwICsxLDMwMCBAQA0KPj4gKy8qKiBAZmlsZQ0KPj4gKyAgRmxhdHRlbmVkIERldmljZSBUcmVl IExpYnJhcnkuDQo+PiArDQo+PiArICBDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+PiArDQo+PiArKiovDQo+PiArDQo+PiArI2lmbmRl ZiBGRFRfTElCX0hfDQo+PiArI2RlZmluZSBGRFRfTElCX0hfDQo+PiArDQo+PiArLy8vDQo+PiAr Ly8vIEZsYXR0ZW5lZCBEZXZpY2UgVHJlZSBkZWZpbml0aW9uDQo+PiArLy8vDQo+PiArdHlwZWRl ZiBzdHJ1Y3Qgew0KPj4gKyAgVUlOVDMyICAgIE1hZ2ljOyAgICAgICAgICAgICAgIC8qIG1hZ2lj IHdvcmQgRkRUX01BR0lDICovDQo+PiArICBVSU5UMzIgICAgVG90YWxTaXplOyAgICAgICAgICAg LyogdG90YWwgc2l6ZSBvZiBEVCBibG9jayAqLw0KPj4gKyAgVUlOVDMyICAgIE9mZnNldER0U3Ry dWN0OyAgICAgIC8qIG9mZnNldCB0byBzdHJ1Y3R1cmUgKi8NCj4+ICsgIFVJTlQzMiAgICBPZmZz ZXREdFN0cmluZ3M7ICAgICAvKiBvZmZzZXQgdG8gc3RyaW5ncyAqLw0KPj4gKyAgVUlOVDMyICAg IE9mZnNldE1lbVJzdm1hcDsgICAgIC8qIG9mZnNldCB0byBtZW1vcnkgcmVzZXJ2ZSBtYXAgKi8N Cj4+ICsgIFVJTlQzMiAgICBWZXJzaW9uOyAgICAgICAgICAgICAvKiBmb3JtYXQgdmVyc2lvbiAq Lw0KPj4gKyAgVUlOVDMyICAgIExhc3RDb21wVmVyc2lvbjsgICAgIC8qIGxhc3QgY29tcGF0aWJs ZSB2ZXJzaW9uICovDQo+PiArDQo+PiArICAvKiB2ZXJzaW9uIDIgZmllbGRzIGJlbG93ICovDQo+ PiArICBVSU5UMzIgICAgQm9vdENwdWlkUGh5czsgICAgICAgLyogV2hpY2ggcGh5c2ljYWwgQ1BV IGlkIHdlJ3JlDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vdGlu ZyBvbiAqLw0KPj4gKyAgLyogdmVyc2lvbiAzIGZpZWxkcyBiZWxvdyAqLw0KPj4gKyAgVUlOVDMy ICAgIFNpemVEdFN0cmluZ3M7ICAgICAgIC8qIHNpemUgb2YgdGhlIHN0cmluZ3MgYmxvY2sgKi8N Cj4+ICsNCj4+ICsgIC8qIHZlcnNpb24gMTcgZmllbGRzIGJlbG93ICovDQo+PiArICBVSU5UMzIg ICAgU2l6ZUR0U3RydWN0OyAgICAgICAgLyogc2l6ZSBvZiB0aGUgc3RydWN0dXJlIGJsb2NrICov DQo+PiArfSBGRFRfSEVBREVSOw0KPj4gKw0KPj4gK3R5cGVkZWYgc3RydWN0IHsNCj4+ICsgIFVJ TlQ2NCAgICBBZGRyZXNzOw0KPj4gKyAgVUlOVDY0ICAgIFNpemU7DQo+PiArfSBGRFRfUkVTRVJW RV9FTlRSWTsNCj4+ICsNCj4+ICt0eXBlZGVmIHN0cnVjdCB7DQo+PiArICBVSU5UMzIgICAgVGFn Ow0KPj4gKyAgQ0hBUjggICAgIE5hbWVbXTsNCj4+ICt9IEZEVF9OT0RFX0hFQURFUjsNCj4+ICsN Cj4+ICt0eXBlZGVmIHN0cnVjdCB7DQo+PiArICBVSU5UMzIgICAgVGFnOw0KPj4gKyAgVUlOVDMy ICAgIExlbmd0aDsNCj4+ICsgIFVJTlQzMiAgICBOYW1lT2Zmc2V0Ow0KPj4gKyAgQ0hBUjggICAg IERhdGFbXTsNCj4+ICt9IEZEVF9QUk9QRVJUWTsNCj4+ICsNCj4+ICsjZGVmaW5lIEZEVF9HRVRf SEVBREVSKEZkdCwgRmllbGQpICBGRFQzMl9UT19DUFUoKChDT05TVCBGRFRfSEVBREVSIA0KPj4g KyopKEZkdCkpLT5GaWVsZCkNCj4+ICsNCj4+ICsjZGVmaW5lIEZEVF9NQUdJQyhGZHQpICAgICAg ICAgICAgICAoRkRUX0dFVF9IRUFERVIoRmR0LCBNYWdpYykpDQo+PiArI2RlZmluZSBGRFRfVE9U QUxfU0laRShGZHQpICAgICAgICAgKEZEVF9HRVRfSEVBREVSKEZkdCwgVG90YWxTaXplKSkNCj4+ ICsjZGVmaW5lIEZEVF9PRkZTRVRfRFRfU1RSVUNUKEZkdCkgICAoRkRUX0dFVF9IRUFERVIoRmR0 LCBPZmZzZXREdFN0cnVjdCkpDQo+PiArI2RlZmluZSBGRFRfT0ZGU0VUX0RUX1NUUklOR1MoRmR0 KSAgKEZEVF9HRVRfSEVBREVSKEZkdCwgDQo+PiArT2Zmc2V0RHRTdHJpbmdzKSkgI2RlZmluZSBG RFRfT0ZGU0VUX01FTV9SU1ZNQVAoRmR0KSAgKEZEVF9HRVRfSEVBREVSKEZkdCwgT2Zmc2V0TWVt UnN2bWFwKSkNCj4+ICsjZGVmaW5lIEZEVF9WRVJTSU9OKEZkdCkgICAgICAgICAgICAoRkRUX0dF VF9IRUFERVIoRmR0LCBWZXJzaW9uKSkNCj4+ICsjZGVmaW5lIEZEVF9MQVNUX0NPTVBfVkVSU0lP TihGZHQpICAoRkRUX0dFVF9IRUFERVIoRmR0LCBMYXN0Q29tcFZlcnNpb24pKQ0KPj4gKyNkZWZp bmUgRkRUX0JPT1RfQ1BVSURfUEhZUyhGZHQpICAgIChGRFRfR0VUX0hFQURFUihGZHQsIEJvb3RD cHVpZFBoeXMpKQ0KPj4gKyNkZWZpbmUgRkRUX1NJWkVfRFRfU1RSSU5HUyhGZHQpICAgIChGRFRf R0VUX0hFQURFUihGZHQsIFNpemVEdFN0cmluZ3MpKQ0KPj4gKyNkZWZpbmUgRkRUX1NJWkVfRFRf U1RSVUNUKEZkdCkgICAgIChGRFRfR0VUX0hFQURFUihGZHQsIFNpemVEdFN0cnVjdCkpDQo+PiAr DQo+PiArLyoqDQo+PiArICBDcmVhdGUgYSBlbXB0eSBGbGF0dGVuZWQgRGV2aWNlIFRyZWUuDQo+ PiArDQo+PiArICBAcGFyYW1baW5dIEJ1ZmZlciAgICAgICAgIFRoZSBwb2ludGVyIHRvIGFsbG9j YXRlIGEgcG9vbCBmb3IgRkRUIGJsb2IuDQo+PiArICBAcGFyYW1baW5dIEJ1ZmZlclNpemUgICAg IFRoZSBCdWZmZXJTaXplIHRvIHRoZSBwb29sIHNpemUuDQo+PiArDQo+PiArICBAcmV0dXJuIFpl cm8gZm9yIHN1Y2Nlc3NmdWxseSwgb3RoZXJ3aXNlIGZhaWxlZC4NCj4+ICsNCj4+ICsqKi8NCj4+ ICtSRVRVUk5fU1RBVFVTDQo+PiArRUZJQVBJDQo+PiArRmR0Q3JlYXRlRW1wdHlUcmVlICgNCj4+ ICsgIElOIFZPSUQgICAqQnVmZmVyLA0KPj4gKyAgSU4gVUlOVE4gIEJ1ZmZlclNpemUNCj4+ICsg ICk7DQo+PiArDQo+PiArLyoqDQo+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9mIG5leHQgbm9kZSBm cm9tIHRoZSBnaXZlbiBub2RlLg0KPj4gKw0KPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAg ICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4+ICsgIEBwYXJhbVtpbl0gT2Zmc2V0ICAgICAg ICAgVGhlIG9mZnNldCB0byBwcmV2aW91cyBub2RlLg0KPj4gKyAgQHBhcmFtW2luXSBEZXB0aCAg ICAgICAgICBUaGUgZGVwdGggdG8gdGhlIGxldmVsIG9mIHRyZWUgaGllcmFyY2h5Lg0KPj4gKw0K Pj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRvIG5leHQgbm9kZSBvZmZzZXQuDQo+PiArDQo+PiAr KiovDQo+PiArSU5UMzINCj4+ICtFRklBUEkNCj4+ICtGZHROZXh0Tm9kZSAoDQo+PiArICBJTiBD T05TVCBWT0lEICAqRmR0LA0KPj4gKyAgSU4gSU5UMzIgICAgICAgT2Zmc2V0LA0KPj4gKyAgSU4g SU5UMzIgICAgICAgKkRlcHRoDQo+PiArICApOw0KPj4gKw0KPj4gKy8qKg0KPj4gKyAgUmV0dXJu cyBhIG9mZnNldCBvZiBmaXJzdCBub2RlIHVuZGVyIHRoZSBnaXZlbiBub2RlLg0KPj4gKw0KPj4g KyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4+ ICsgIEBwYXJhbVtpbl0gT2Zmc2V0ICAgICAgICAgVGhlIG9mZnNldCB0byBwcmV2aW91cyBub2Rl Lg0KPj4gKw0KPj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRvIG5leHQgbm9kZSBvZmZzZXQuDQo+ PiArDQo+PiArKiovDQo+PiArSU5UMzINCj4+ICtFRklBUEkNCj4+ICtGZHRGaXJzdFN1Ym5vZGUg KA0KPj4gKyAgSU4gQ09OU1QgVk9JRCAgKkZkdCwNCj4+ICsgIElOIElOVDMyICAgICAgIE9mZnNl dA0KPj4gKyAgKTsNCj4+ICsNCj4+ICsvKioNCj4+ICsgIFJldHVybnMgYSBvZmZzZXQgb2YgbmV4 dCBub2RlIGZyb20gdGhlIGdpdmVuIG5vZGUuDQo+PiArDQo+PiArICBAcGFyYW1baW5dIEZkdCAg ICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPj4gKyAgQHBhcmFtW2luXSBPZmZz ZXQgICAgICAgICBUaGUgb2Zmc2V0IHRvIHByZXZpb3VzIG5vZGUuDQo+PiArDQo+PiArICBAcmV0 dXJuIFRoZSBvZmZzZXQgdG8gbmV4dCBub2RlIG9mZnNldC4NCj4+ICsNCj4+ICsqKi8NCj4+ICtJ TlQzMg0KPj4gK0VGSUFQSQ0KPj4gK0ZkdE5leHRTdWJub2RlICgNCj4+ICsgIElOIENPTlNUIFZP SUQgICpGZHQsDQo+PiArICBJTiBJTlQzMiAgICAgICBPZmZzZXQNCj4+ICsgICk7DQo+PiArDQo+ PiArLyoqDQo+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9mIGZpcnN0IG5vZGUgd2hpY2ggaW5jbHVk ZXMgdGhlIGdpdmVuIG5hbWUuDQo+PiArDQo+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAg ICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4+ICsgIEBwYXJhbVtpbl0gUGFyZW50T2Zmc2V0 ICAgIFRoZSBvZmZzZXQgdG8gdGhlIG5vZGUgd2hpY2ggc3RhcnQgZmluZCB1bmRlci4NCj4+ICsg IEBwYXJhbVtpbl0gTmFtZSAgICAgICAgICAgIFRoZSBuYW1lIHRvIHNlYXJjaCB0aGUgbm9kZSB3 aXRoIHRoZSBuYW1lLg0KPj4gKyAgQHBhcmFtW2luXSBOYW1lTGVuZ3RoICAgICAgVGhlIGxlbmd0 aCBvZiB0aGUgbmFtZSB0byBjaGVjayBvbmx5Lg0KPj4gKw0KPj4gKyAgQHJldHVybiBUaGUgb2Zm c2V0IHRvIG5vZGUgb2Zmc2V0IHdpdGggZ2l2ZW4gbm9kZSBuYW1lLg0KPj4gKw0KPj4gKyoqLw0K Pj4gK0lOVDMyDQo+PiArRUZJQVBJDQo+PiArRmR0U3Vibm9kZU9mZnNldE5hbWVMZW4gKA0KPj4g KyAgSU4gQ09OU1QgVk9JRCAgICpGZHQsDQo+PiArICBJTiBJTlQzMiAgICAgICAgUGFyZW50T2Zm c2V0LA0KPj4gKyAgSU4gQ09OU1QgQ0hBUjggICpOYW1lLA0KPj4gKyAgSU4gSU5UMzIgICAgICAg IE5hbWVMZW5ndGgNCj4+ICsgICk7DQo+PiArDQo+PiArLyoqDQo+PiArICBSZXR1cm5zIGEgb2Zm c2V0IG9mIGZpcnN0IG5vZGUgd2hpY2ggaW5jbHVkZXMgdGhlIGdpdmVuIHByb3BlcnR5IG5hbWUg YW5kIHZhbHVlLg0KPj4gKw0KPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICAgVGhlIHBv aW50ZXIgdG8gRkRUIGJsb2IuDQo+PiArICBAcGFyYW1baW5dIFN0YXJ0T2Zmc2V0ICAgICBUaGUg b2Zmc2V0IHRvIHRoZSBzdGFydGluZyBub2RlIHRvIGZpbmQuDQo+PiArICBAcGFyYW1baW5dIFBy b3BlcnR5TmFtZSAgICBUaGUgcHJvcGVydHkgbmFtZSB0byBzZWFyY2ggdGhlIG5vZGUgaW5jbHVk aW5nIHRoZSBuYW1lZCBwcm9wZXJ0eS4NCj4+ICsgIEBwYXJhbVtpbl0gUHJvcGVydHlWYWx1ZSAg IFRoZSBwcm9wZXJ0eSB2YWx1ZSB0byBjaGVjayB0aGUgc2FtZSBwcm9wZXJ0eSB2YWx1ZS4NCj4+ ICsgIEBwYXJhbVtpbl0gUHJvcGVydHlMZW5ndGggIFRoZSBsZW5ndGggb2YgdGhlIHZhbHVlIGlu IFByb3BlcnRWYWx1ZS4NCj4+ICsNCj4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBub2RlIG9m ZnNldCB3aXRoIGdpdmVuIHByb3BlcnR5Lg0KPj4gKw0KPj4gKyoqLw0KPj4gK0lOVDMyDQo+PiAr RUZJQVBJDQo+PiArRmR0Tm9kZU9mZnNldEJ5UHJvcFZhbHVlICgNCj4+ICsgIElOIENPTlNUIFZP SUQgICAqRmR0LA0KPj4gKyAgSU4gSU5UMzIgICAgICAgIFN0YXJ0T2Zmc2V0LA0KPj4gKyAgSU4g Q09OU1QgQ0hBUjggICpQcm9wZXJ0eU5hbWUsDQo+PiArICBJTiBDT05TVCBWT0lEICAgKlByb3Bl cnR5VmFsdWUsDQo+PiArICBJTiBJTlQzMiAgICAgICAgUHJvcGVydHlMZW5ndGgNCj4+ICsgICk7 DQo+PiArDQo+PiArLyoqDQo+PiArICBSZXR1cm5zIGEgcHJvcGVydHkgd2l0aCB0aGUgZ2l2ZW4g bmFtZSBmcm9tIHRoZSBnaXZlbiBub2RlLg0KPj4gKw0KPj4gKyAgQHBhcmFtW2luXSBGZHQgICAg ICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4+ICsgIEBwYXJhbVtpbl0gTm9kZU9m ZnNldCAgICAgVGhlIG9mZnNldCB0byB0aGUgZ2l2ZW4gbm9kZS4NCj4+ICsgIEBwYXJhbVtpbl0g TmFtZSAgICAgICAgICAgVGhlIG5hbWUgdG8gdGhlIHByb3BlcnR5IHdoaWNoIG5lZWQgYmUgc2Vh cmNoZWQNCj4+ICsgIEBwYXJhbVtpbl0gTGVuZ3RoICAgICAgICAgVGhlIGxlbmd0aCB0byB0aGUg c2l6ZSBvZiB0aGUgcHJvcGVydHkgZm91bmQuDQo+PiArDQo+PiArICBAcmV0dXJuIFRoZSBwcm9w ZXJ0eSB0byB0aGUgc3RydWN0dXJlIG9mIHRoZSBmb3VuZCBwcm9wZXJ0eS4NCj4+ICsNCj4+ICsq Ki8NCj4+ICtDT05TVCBGRFRfUFJPUEVSVFkgKg0KPj4gK0VGSUFQSQ0KPj4gK0ZkdEdldFByb3Bl cnR5ICgNCj4+ICsgIElOIENPTlNUIFZPSUQgICAqRmR0LA0KPj4gKyAgSU4gSU5UMzIgICAgICAg IE5vZGVPZmZzZXQsDQo+PiArICBJTiBDT05TVCBDSEFSOCAgKk5hbWUsDQo+PiArICBJTiBJTlQz MiAgICAgICAgKkxlbmd0aA0KPj4gKyAgKTsNCj4+ICsNCj4+ICsvKioNCj4+ICsgIFJldHVybnMg YSBvZmZzZXQgb2YgZmlyc3QgcHJvcGVydHkgaW4gdGhlIGdpdmVuIG5vZGUuDQo+PiArDQo+PiAr ICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPj4g KyAgQHBhcmFtW2luXSBPZmZzZXQgICAgICAgICBUaGUgb2Zmc2V0IHRvIHRoZSBub2RlIHdoaWNo IG5lZWQgYmUgc2VhcmNoZWQuDQo+PiArDQo+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gZmly c3QgcHJvcGVydHkgb2Zmc2V0IGluIHRoZSBnaXZlbiBub2RlLg0KPj4gKw0KPj4gKyoqLw0KPj4g K0lOVDMyDQo+PiArRUZJQVBJDQo+PiArRmR0Rmlyc3RQcm9wZXJ0eU9mZnNldCAoDQo+PiArICBJ TiBDT05TVCBWT0lEICAqRmR0LA0KPj4gKyAgSU4gSU5UMzIgICAgICAgTm9kZU9mZnNldA0KPj4g KyAgKTsNCj4+ICsNCj4+ICsvKioNCj4+ICsgIFJldHVybnMgYSBvZmZzZXQgb2YgbmV4dCBwcm9w ZXJ0eSBmcm9tIHRoZSBnaXZlbiBwcm9wZXJ0eS4NCj4+ICsNCj4+ICsgIEBwYXJhbVtpbl0gRmR0 ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+PiArICBAcGFyYW1baW5dIE9m ZnNldCAgICAgICAgIFRoZSBvZmZzZXQgdG8gcHJldmlvdXMgcHJvcGVydHkuDQo+PiArDQo+PiAr ICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gbmV4dCBwcm9wZXJ0eSBvZmZzZXQuDQo+PiArDQo+PiAr KiovDQo+PiArSU5UMzINCj4+ICtFRklBUEkNCj4+ICtGZHROZXh0UHJvcGVydHlPZmZzZXQgKA0K Pj4gKyAgSU4gQ09OU1QgVk9JRCAgKkZkdCwNCj4+ICsgIElOIElOVDMyICAgICAgIE9mZnNldA0K Pj4gKyAgKTsNCj4+ICsNCj4+ICsvKioNCj4+ICsgIFJldHVybnMgYSBwcm9wZXJ0eSBmcm9tIHRo ZSBnaXZlbiBvZmZzZXQgb2YgdGhlIHByb3BlcnR5Lg0KPj4gKw0KPj4gKyAgQHBhcmFtW2luXSBG ZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4+ICsgIEBwYXJhbVtpbl0g T2Zmc2V0ICAgICAgICAgVGhlIG9mZnNldCB0byB0aGUgZ2l2ZW4gb2Zmc2V0IG9mIHRoZSBwcm9w ZXJ0eS4NCj4+ICsgIEBwYXJhbVtpbl0gTGVuZ3RoICAgICAgICAgVGhlIGxlbmd0aCB0byB0aGUg c2l6ZSBvZiB0aGUgcHJvcGVydHkgZm91bmQuDQo+PiArDQo+PiArICBAcmV0dXJuIFRoZSBwcm9w ZXJ0eSB0byB0aGUgc3RydWN0dXJlIG9mIHRoZSBnaXZlbiBwcm9wZXJ0eSBvZmZzZXQuDQo+PiAr DQo+PiArKiovDQo+PiArQ09OU1QgRkRUX1BST1BFUlRZICoNCj4+ICtFRklBUEkNCj4+ICtGZHRH ZXRQcm9wZXJ0eUJ5T2Zmc2V0ICgNCj4+ICsgIElOIENPTlNUIFZPSUQgICpGZHQsDQo+PiArICBJ TiBJTlQzMiAgICAgICBPZmZzZXQsDQo+PiArICBJTiBJTlQzMiAgICAgICAqTGVuZ3RoDQo+PiAr ICApOw0KPj4gKw0KPj4gKy8qKg0KPj4gKyAgUmV0dXJucyBhIHN0cmluZyBieSB0aGUgZ2l2ZW4g c3RyaW5nIG9mZnNldC4NCj4+ICsNCj4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhl IHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+PiArICBAcGFyYW1baW5dIFN0ck9mZnNldCAgICAgIFRo ZSBvZmZzZXQgdG8gdGhlIGxvY2F0aW9uIGluIHRoZSBzdHJpbmdzIGJsb2NrIG9mIEZEVC4NCj4+ ICsgIEBwYXJhbVtpbl0gTGVuZ3RoICAgICAgICAgVGhlIGxlbmd0aCB0byB0aGUgc2l6ZSBvZiBz dHJpbmcgd2hpY2ggbmVlZCBiZSByZXRyaWV2ZWQuDQo+PiArDQo+PiArICBAcmV0dXJuIFRoZSBz dHJpbmcgdG8gdGhlIGdpdmVuIHN0cmluZyBvZmZzZXQuDQo+PiArDQo+PiArKiovDQo+PiArQ09O U1QgQ0hBUjggKg0KPj4gK0VGSUFQSQ0KPj4gK0ZkdEdldFN0cmluZyAoDQo+PiArICBJTiBDT05T VCBWT0lEICAqRmR0LA0KPj4gKyAgSU4gSU5UMzIgICAgICAgU3RyT2Zmc2V0LA0KPj4gKyAgSU4g SU5UMzIgICAgICAgKkxlbmd0aCAgICAgICAgT1BUSU9OQUwNCj4+ICsgICk7DQo+PiArDQo+PiAr LyoqDQo+PiArICBBZGQgYSBuZXcgbm9kZSB0byB0aGUgRkRULg0KPj4gKw0KPj4gKyAgQHBhcmFt W2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4+ICsgIEBwYXJh bVtpbl0gUGFyZW50T2Zmc2V0ICAgVGhlIG9mZnNldCB0byB0aGUgbm9kZSBvZmZzZXQgd2hpY2gg d2FudCB0byBhZGQgaW4uDQo+PiArICBAcGFyYW1baW5dIE5hbWUgICAgICAgICAgIFRoZSBuYW1l IHRvIG5hbWUgdGhlIG5vZGUuDQo+PiArDQo+PiArICBAcmV0dXJuICBUaGUgb2Zmc2V0IHRvIHRo ZSBuZXcgbm9kZS4NCj4+ICsNCj4+ICsqKi8NCj4+ICtJTlQzMg0KPj4gK0VGSUFQSQ0KPj4gK0Zk dEFkZFN1Ym5vZGUgKA0KPj4gKyAgSU4gVk9JRCAgICAgICAgICpGZHQsDQo+PiArICBJTiBJTlQz MiAgICAgICAgUGFyZW50T2Zmc2V0LA0KPj4gKyAgSU4gQ09OU1QgQ0hBUjggICpOYW1lDQo+PiAr ICApOw0KPj4gKw0KPj4gKy8qKg0KPj4gKyAgQWRkIG9yIG1vZGlmeSBhIHBvcnBlcnR5IGluIHRo ZSBnaXZlbiBub2RlLg0KPj4gKw0KPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUg cG9pbnRlciB0byBGRFQgYmxvYi4NCj4+ICsgIEBwYXJhbVtpbl0gTm9kZU9mZnNldCAgICAgVGhl IG9mZnNldCB0byB0aGUgbm9kZSBvZmZzZXQgd2hpY2ggd2FudCB0byBhZGQgaW4uDQo+PiArICBA cGFyYW1baW5dIE5hbWUgICAgICAgICAgIFRoZSBuYW1lIHRvIG5hbWUgdGhlIHByb3BlcnR5Lg0K Pj4gKyAgQHBhcmFtW2luXSBWYWx1ZSAgICAgICAgICBUaGUgdmFsdWUgdG8gdGhlIHByb3BlcnR5 IHZhbHVlLg0KPj4gKyAgQHBhcmFtW2luXSBMZW5ndGggICAgICAgICBUaGUgbGVuZ3RoIHRvIHRo ZSBzaXplIG9mIHRoZSBwcm9wZXJ0eS4NCj4+ICsNCj4+ICsgIEByZXR1cm4gIFplcm8gZm9yIHN1 Y2Nlc3NmdWxseSwgb3RoZXJ3aXNlIGZhaWxlZC4NCj4+ICsNCj4+ICsqKi8NCj4+ICtJTlQzMg0K Pj4gK0VGSUFQSQ0KPj4gK0ZkdFNldFByb3AgKA0KPj4gKyAgSU4gVk9JRCAgICAgICAgICpGZHQs DQo+PiArICBJTiBJTlQzMiAgICAgICAgTm9kZU9mZnNldCwNCj4+ICsgIElOIENPTlNUIENIQVI4 ICAqTmFtZSwNCj4+ICsgIElOIENPTlNUIFZPSUQgICAqVmFsdWUsDQo+PiArICBJTiBVSU5UMzIg ICAgICAgTGVuZ3RoDQo+PiArICApOw0KPj4gKw0KPj4gKyNlbmRpZiAvKiBGRFRfTElCX0hfICov DQoNCj5XaGF0J3MgdGhlIHBvaW50IG9mIGFsbCB0aGVzZSB3cmFwcGVycyBpZiB3ZSBlbmQgdXAg aW1tZWRpYXRlbHkgcmVkaXJlY3RpbmcgdG8gbGliZmR0Pw0KVGhlIHB1cnBvc2Ugb2YgYWxsIHdy YXBwZXJzIGlzIHVzZWQgZm9yIGZvbGxvd2luZyB1cCBlZGsyIHN0eWxlLg0KDQo+PiBkaWZmIC0t Z2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9CYXNlRmR0TGliLmluZiANCj4+IGIvTWRl UGtnL0xpYnJhcnkvQmFzZUZkdExpYi9CYXNlRmR0TGliLmluZg0KPj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4+IGluZGV4IDAwMDAwMDAwMDAuLjczMGU1NjhmZjYNCj4+IC0tLSAvZGV2L251bGwN Cj4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvQmFzZUZkdExpYi5pbmYNCj4+IEBA IC0wLDAgKzEsNjIgQEANCj4+ICsjIyBAZmlsZQ0KPj4gKyMgRmxhdHRlbmVkIERldmljZSBUcmVl IExpYnJhcnkuDQo+PiArIw0KPj4gKyMgQ29weXJpZ2h0IChjKSAyMDIzLCBJbnRlbCBDb3Jwb3Jh dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ICMgIyAgDQo+PiArU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQgIyAjICMjDQo+PiArDQo+PiArW0RlZmluZXNd DQo+PiArICBJTkZfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgPSAweDAwMDEwMDFCDQo+PiAr ICBCQVNFX05BTUUgICAgICAgICAgICAgICAgICAgICAgPSBCYXNlRmR0TGliDQo+PiArICBNT0RV TEVfVU5JX0ZJTEUgICAgICAgICAgICAgICAgPSBCYXNlRmR0TGliLnVuaQ0KPj4gKyAgRklMRV9H VUlEICAgICAgICAgICAgICAgICAgICAgID0gQzY0RENCMDEtQjAzNy00RkY2LTlDRjMtRThDRUMy MDZERTA0DQo+PiArICBNT0RVTEVfVFlQRSAgICAgICAgICAgICAgICAgICAgPSBCQVNFDQo+PiAr ICBWRVJTSU9OX1NUUklORyAgICAgICAgICAgICAgICAgPSAxLjANCj4+ICsgIExJQlJBUllfQ0xB U1MgICAgICAgICAgICAgICAgICA9IEZkdExpYg0KPj4gKw0KPj4gKyAgREVGSU5FIEZEVF9MSUJf UEFUSCAgICAgICAgICAgID0gbGliZmR0L2xpYmZkdA0KPj4gKw0KPj4gKyMNCj4+ICsjICBWQUxJ RF9BUkNISVRFQ1RVUkVTICAgICAgICAgICA9IElBMzIgWDY0DQo+PiArIw0KPj4gKw0KPj4gK1tT b3VyY2VzXQ0KPj4gKyAgRmR0TGliLmMNCj4+ICsgIExpYkZkdFdyYXBwZXIuYw0KPj4gKyAgIyBo ZWFkZXIgV3JhcHBlciBmaWxlcw0KPj4gKyAgbGltaXRzLmgNCj4+ICsgIHN0ZGJvb2wuaA0KPj4g KyAgc3RkZGVmLmgNCj4+ICsgIHN0ZGludC5oDQo+PiArICBzdGRsaWIuaA0KPj4gKyAgc3RyaW5n LmgNCj4+ICsNCj4+ICsgICQoRkRUX0xJQl9QQVRIKS9mZHQuYw0KPj4gKyAgJChGRFRfTElCX1BB VEgpL2ZkdC5oDQo+PiArICAkKEZEVF9MSUJfUEFUSCkvZmR0X2FkZHJlc3Nlcy5jDQo+PiArICAk KEZEVF9MSUJfUEFUSCkvZmR0X2NoZWNrLmMNCj4+ICsgICQoRkRUX0xJQl9QQVRIKS9mZHRfZW1w dHlfdHJlZS5jDQo+PiArICAkKEZEVF9MSUJfUEFUSCkvZmR0X292ZXJsYXkuYw0KPj4gKyAgJChG RFRfTElCX1BBVEgpL2ZkdF9yby5jDQo+PiArICAkKEZEVF9MSUJfUEFUSCkvZmR0X3J3LmMNCj4+ ICsgICQoRkRUX0xJQl9QQVRIKS9mZHRfc3RyZXJyb3IuYw0KPj4gKyAgJChGRFRfTElCX1BBVEgp L2ZkdF9zdy5jDQo+PiArICAkKEZEVF9MSUJfUEFUSCkvZmR0X3dpcC5jDQo+PiArICAkKEZEVF9M SUJfUEFUSCkvbGliZmR0LmgNCj4+ICsgICQoRkRUX0xJQl9QQVRIKS9saWJmZHRfZW52LmgNCj4+ ICsgICQoRkRUX0xJQl9QQVRIKS9saWJmZHRfaW50ZXJuYWwuaA0KPj4gKw0KPj4gK1tQYWNrYWdl c10NCj4+ICsgIE1kZVBrZy9NZGVQa2cuZGVjDQo+PiArDQo+PiArW0xpYnJhcnlDbGFzc2VzXQ0K Pj4gKyAgQmFzZUxpYg0KPj4gKyAgQmFzZU1lbW9yeUxpYg0KPj4gKw0KPj4gK1tCdWlsZE9wdGlv bnNdDQo+PiArICBNU0ZUOipfKl9JQTMyX0NDX0ZMQUdTID0gL3dkNDE0NiAvd2Q0MjQ1DQo+PiAr ICBNU0ZUOipfKl9YNjRfQ0NfRkxBR1MgID0gL3dkNDE0NiAvd2Q0MjQ0IC93ZDQyNDUgL3dkNDI2 Nw0KPj4gKw0KPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvQmFzZUZk dExpYi51bmkgDQo+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvQmFzZUZkdExpYi51bmkN Cj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+PiBpbmRleCAwMDAwMDAwMDAwLi4zZjdlNDVlYTZm DQo+PiAtLS0gL2Rldi9udWxsDQo+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0Jh c2VGZHRMaWIudW5pDQo+PiBAQCAtMCwwICsxLDE0IEBADQo+PiArLy8gLyoqIEBmaWxlDQo+PiAr Ly8gRmxhdHRlbmVkIERldmljZSBUcmVlIExpYnJhcnkuDQo+PiArLy8NCj4+ICsvLyBDb3B5cmln aHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4g Ly8gDQo+PiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQg Ly8gLy8gKiovDQo+PiArDQo+PiArDQo+PiArI3N0cmluZyBTVFJfTU9EVUxFX0FCU1RSQUNUICAg ICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiSW5zdGFuY2Ugb2YgRkRUIExpYnJhcnkiDQo+PiAr DQo+PiArI3N0cmluZyBTVFJfTU9EVUxFX0RFU0NSSVBUSU9OICAgICAgICAgICNsYW5ndWFnZSBl bi1VUyAiVGhpcyBtb2R1bGUgcHJvdmlkZXMgRkRUIExpYnJhcnkgaW1wbGVtZW50YXRpb24uIg0K Pj4gKw0KPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvRmR0TGliLmMg DQo+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvRmR0TGliLmMNCj4+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQo+PiBpbmRleCAwMDAwMDAwMDAwLi5iYTlhMjg0ZTU4DQo+PiAtLS0gL2Rldi9u dWxsDQo+PiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlRmR0TGliL0ZkdExpYi5jDQo+PiBAQCAt MCwwICsxLDI4NCBAQA0KPj4gKy8qKiBAZmlsZQ0KPj4gKyAgRmxhdHRlbmVkIERldmljZSBUcmVl IExpYnJhcnkuDQo+PiArDQo+PiArICBDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+PiArDQo+PiArKiovDQo+PiArDQo+PiArI2luY2x1 ZGUgPGxpYmZkdC9saWJmZHQvbGliZmR0Lmg+DQo+PiArDQo+PiArLyoqDQo+PiArICBDcmVhdGUg YSBlbXB0eSBGbGF0dGVuZWQgRGV2aWNlIFRyZWUuDQo+PiArDQo+PiArICBAcGFyYW1baW5dIEJ1 ZmZlciAgICAgICAgIFRoZSBwb2ludGVyIHRvIGFsbG9jYXRlIGEgcG9vbCBmb3IgRkRUIGJsb2Iu DQo+PiArICBAcGFyYW1baW5dIEJ1ZmZlclNpemUgICAgIFRoZSBCdWZmZXJTaXplIHRvIHRoZSBw b29sIHNpemUuDQo+PiArDQo+PiArICBAcmV0dXJuIFplcm8gZm9yIHN1Y2Nlc3NmdWxseSwgb3Ro ZXJ3aXNlIGZhaWxlZC4NCj4+ICsNCj4+ICsqKi8NCj4+ICtJTlQzMg0KPj4gK0VGSUFQSQ0KPj4g K0ZkdENyZWF0ZUVtcHR5VHJlZSAoDQo+PiArICBJTiBWT0lEICAgICpCdWZmZXIsDQo+PiArICBJ TiBVSU5UMzIgIEJ1ZmZlclNpemUNCj4+ICsgICkNCj4+ICt7DQo+PiArICByZXR1cm4gZmR0X2Ny ZWF0ZV9lbXB0eV90cmVlIChCdWZmZXIsIChpbnQpQnVmZmVyU2l6ZSk7IH0NCj4+ICsNCj4+ICsv KioNCj4+ICsgIFJldHVybnMgYSBvZmZzZXQgb2YgbmV4dCBub2RlIGZyb20gdGhlIGdpdmVuIG5v ZGUuDQo+PiArDQo+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRv IEZEVCBibG9iLg0KPj4gKyAgQHBhcmFtW2luXSBPZmZzZXQgICAgICAgICBUaGUgb2Zmc2V0IHRv IHByZXZpb3VzIG5vZGUuDQo+PiArICBAcGFyYW1baW5dIERlcHRoICAgICAgICAgIFRoZSBkZXB0 aCB0byB0aGUgbGV2ZWwgb2YgdHJlZSBoaWVyYXJjaHkuDQo+PiArDQo+PiArICBAcmV0dXJuIFRo ZSBvZmZzZXQgdG8gbmV4dCBub2RlIG9mZnNldC4NCj4+ICsNCj4+ICsqKi8NCj4+ICtJTlQzMg0K Pj4gK0VGSUFQSQ0KPj4gK0ZkdE5leHROb2RlICgNCj4+ICsgIElOIENPTlNUIFZPSUQgICpGZHQs DQo+PiArICBJTiBJTlQzMiAgICAgICBPZmZzZXQsDQo+PiArICBJTiBJTlQzMiAgICAgICAqRGVw dGgNCj4+ICsgICkNCj4+ICt7DQo+PiArICByZXR1cm4gZmR0X25leHRfbm9kZSAoRmR0LCBPZmZz ZXQsIERlcHRoKTsgfQ0KPj4gKw0KPj4gKy8qKg0KPj4gKyAgUmV0dXJucyBhIG9mZnNldCBvZiBm aXJzdCBub2RlIHVuZGVyIHRoZSBnaXZlbiBub2RlLg0KPj4gKw0KPj4gKyAgQHBhcmFtW2luXSBG ZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4+ICsgIEBwYXJhbVtpbl0g T2Zmc2V0ICAgICAgICAgVGhlIG9mZnNldCB0byBwcmV2aW91cyBub2RlLg0KPj4gKw0KPj4gKyAg QHJldHVybiBUaGUgb2Zmc2V0IHRvIG5leHQgbm9kZSBvZmZzZXQuDQo+PiArDQo+PiArKiovDQo+ PiArSU5UMzINCj4+ICtFRklBUEkNCj4+ICtGZHRGaXJzdFN1Ym5vZGUgKA0KPj4gKyAgSU4gQ09O U1QgVk9JRCAgKkZkdCwNCj4+ICsgIElOIElOVDMyICAgICAgIE9mZnNldA0KPj4gKyAgKQ0KPj4g K3sNCj4+ICsgIHJldHVybiBmZHRfZmlyc3Rfc3Vibm9kZSAoRmR0LCBPZmZzZXQpOyB9DQo+PiAr DQo+PiArLyoqDQo+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9mIG5leHQgbm9kZSBmcm9tIHRoZSBn aXZlbiBub2RlLg0KPj4gKw0KPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICBUaGUgcG9p bnRlciB0byBGRFQgYmxvYi4NCj4+ICsgIEBwYXJhbVtpbl0gT2Zmc2V0ICAgICAgICAgVGhlIG9m ZnNldCB0byBwcmV2aW91cyBub2RlLg0KPj4gKw0KPj4gKyAgQHJldHVybiBUaGUgb2Zmc2V0IHRv IG5leHQgbm9kZSBvZmZzZXQuDQo+PiArDQo+PiArKiovDQo+PiArSU5UMzINCj4+ICtFRklBUEkN Cj4+ICtGZHROZXh0U3Vibm9kZSAoDQo+PiArICBJTiBDT05TVCBWT0lEICAqRmR0LA0KPj4gKyAg SU4gSU5UMzIgICAgICAgT2Zmc2V0DQo+PiArICApDQo+PiArew0KPj4gKyAgcmV0dXJuIGZkdF9u ZXh0X3N1Ym5vZGUgKEZkdCwgT2Zmc2V0KTsgfQ0KPj4gKw0KPj4gKy8qKg0KPj4gKyAgUmV0dXJu cyBhIG9mZnNldCBvZiBmaXJzdCBub2RlIHdoaWNoIGluY2x1ZGVzIHRoZSBnaXZlbiBuYW1lLg0K Pj4gKw0KPj4gKyAgQHBhcmFtW2luXSBGZHQgICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRU IGJsb2IuDQo+PiArICBAcGFyYW1baW5dIFBhcmVudE9mZnNldCAgICBUaGUgb2Zmc2V0IHRvIHRo ZSBub2RlIHdoaWNoIHN0YXJ0IGZpbmQgdW5kZXIuDQo+PiArICBAcGFyYW1baW5dIE5hbWUgICAg ICAgICAgICBUaGUgbmFtZSB0byBzZWFyY2ggdGhlIG5vZGUgd2l0aCB0aGUgbmFtZS4NCj4+ICsg IEBwYXJhbVtpbl0gTmFtZUxlbmd0aCAgICAgIFRoZSBsZW5ndGggb2YgdGhlIG5hbWUgdG8gY2hl Y2sgb25seS4NCj4+ICsNCj4+ICsgIEByZXR1cm4gVGhlIG9mZnNldCB0byBub2RlIG9mZnNldCB3 aXRoIGdpdmVuIG5vZGUgbmFtZS4NCj4+ICsNCj4+ICsqKi8NCj4+ICtJTlQzMg0KPj4gK0VGSUFQ SQ0KPj4gK0ZkdFN1Ym5vZGVPZmZzZXROYW1lTGVuICgNCj4+ICsgIElOIENPTlNUIFZPSUQgICAq RmR0LA0KPj4gKyAgSU4gSU5UMzIgICAgICAgIFBhcmVudE9mZnNldCwNCj4+ICsgIElOIENPTlNU IENIQVI4ICAqTmFtZSwNCj4+ICsgIElOIElOVDMyICAgICAgICBOYW1lTGVuZ3RoDQo+PiArICAp DQo+PiArew0KPj4gKyAgcmV0dXJuIGZkdF9zdWJub2RlX29mZnNldF9uYW1lbGVuIChGZHQsIFBh cmVudE9mZnNldCwgTmFtZSwgDQo+PiArTmFtZUxlbmd0aCk7IH0NCj4+ICsNCj4+ICsvKioNCj4+ ICsgIFJldHVybnMgYSBvZmZzZXQgb2YgZmlyc3Qgbm9kZSB3aGljaCBpbmNsdWRlcyB0aGUgZ2l2 ZW4gcHJvcGVydHkgbmFtZSBhbmQgdmFsdWUuDQo+PiArDQo+PiArICBAcGFyYW1baW5dIEZkdCAg ICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4+ICsgIEBwYXJhbVtpbl0gU3Rh cnRPZmZzZXQgICAgIFRoZSBvZmZzZXQgdG8gdGhlIHN0YXJ0aW5nIG5vZGUgdG8gZmluZC4NCj4+ ICsgIEBwYXJhbVtpbl0gUHJvcGVydHlOYW1lICAgIFRoZSBwcm9wZXJ0eSBuYW1lIHRvIHNlYXJj aCB0aGUgbm9kZSBpbmNsdWRpbmcgdGhlIG5hbWVkIHByb3BlcnR5Lg0KPj4gKyAgQHBhcmFtW2lu XSBQcm9wZXJ0eVZhbHVlICAgVGhlIHByb3BlcnR5IHZhbHVlIHRvIGNoZWNrIHRoZSBzYW1lIHBy b3BlcnR5IHZhbHVlLg0KPj4gKyAgQHBhcmFtW2luXSBQcm9wZXJ0eUxlbmd0aCAgVGhlIGxlbmd0 aCBvZiB0aGUgdmFsdWUgaW4gUHJvcGVydFZhbHVlLg0KPj4gKw0KPj4gKyAgQHJldHVybiBUaGUg b2Zmc2V0IHRvIG5vZGUgb2Zmc2V0IHdpdGggZ2l2ZW4gcHJvcGVydHkuDQo+PiArDQo+PiArKiov DQo+PiArSU5UMzINCj4+ICtFRklBUEkNCj4+ICtGZHROb2RlT2Zmc2V0QnlQcm9wVmFsdWUgKA0K Pj4gKyAgSU4gQ09OU1QgVk9JRCAgICpGZHQsDQo+PiArICBJTiBJTlQzMiAgICAgICAgU3RhcnRP ZmZzZXQsDQo+PiArICBJTiBDT05TVCBDSEFSOCAgKlByb3BlcnR5TmFtZSwNCj4+ICsgIElOIENP TlNUIFZPSUQgICAqUHJvcGVydHlWYWx1ZSwNCj4+ICsgIElOIElOVDMyICAgICAgICBQcm9wZXJ0 eUxlbmd0aA0KPj4gKyAgKQ0KPj4gK3sNCj4+ICsgIHJldHVybiBmZHRfbm9kZV9vZmZzZXRfYnlf cHJvcF92YWx1ZSAoRmR0LCBTdGFydE9mZnNldCwgDQo+PiArUHJvcGVydHlOYW1lLCBQcm9wZXJ0 eVZhbHVlLCBQcm9wZXJ0eUxlbmd0aCk7IH0NCj4+ICsNCj4+ICsvKioNCj4+ICsgIFJldHVybnMg YSBwcm9wZXJ0eSB3aXRoIHRoZSBnaXZlbiBuYW1lIGZyb20gdGhlIGdpdmVuIG5vZGUuDQo+PiAr DQo+PiArICBAcGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9i Lg0KPj4gKyAgQHBhcmFtW2luXSBOb2RlT2Zmc2V0ICAgICBUaGUgb2Zmc2V0IHRvIHRoZSBnaXZl biBub2RlLg0KPj4gKyAgQHBhcmFtW2luXSBOYW1lICAgICAgICAgICBUaGUgbmFtZSB0byB0aGUg cHJvcGVydHkgd2hpY2ggbmVlZCBiZSBzZWFyY2hlZA0KPj4gKyAgQHBhcmFtW2luXSBMZW5ndGgg ICAgICAgICBUaGUgbGVuZ3RoIHRvIHRoZSBzaXplIG9mIHRoZSBwcm9wZXJ0eSBmb3VuZC4NCj4+ ICsNCj4+ICsgIEByZXR1cm4gVGhlIHByb3BlcnR5IHRvIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGZv dW5kIHByb3BlcnR5Lg0KPj4gKw0KPj4gKyoqLw0KPj4gK0NPTlNUIHN0cnVjdCBmZHRfcHJvcGVy dHkgKg0KPj4gK0VGSUFQSQ0KPj4gK0ZkdEdldFByb3BlcnR5ICgNCj4+ICsgIElOIENPTlNUIFZP SUQgICAqRmR0LA0KPj4gKyAgSU4gSU5UMzIgICAgICAgIE5vZGVPZmZzZXQsDQo+PiArICBJTiBD T05TVCBDSEFSOCAgKk5hbWUsDQo+PiArICBJTiBJTlQzMiAgICAgICAgKkxlbmd0aA0KPj4gKyAg KQ0KPj4gK3sNCj4+ICsgIHJldHVybiBmZHRfZ2V0X3Byb3BlcnR5IChGZHQsIE5vZGVPZmZzZXQs IE5hbWUsIExlbmd0aCk7IH0NCj4+ICsNCj4+ICsvKioNCj4+ICsgIFJldHVybnMgYSBvZmZzZXQg b2YgZmlyc3QgcHJvcGVydHkgaW4gdGhlIGdpdmVuIG5vZGUuDQo+PiArDQo+PiArICBAcGFyYW1b aW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPj4gKyAgQHBhcmFt W2luXSBOb2RlT2Zmc2V0ICAgICBUaGUgb2Zmc2V0IHRvIHRoZSBub2RlIHdoaWNoIG5lZWQgYmUg c2VhcmNoZWQuDQo+PiArDQo+PiArICBAcmV0dXJuIFRoZSBvZmZzZXQgdG8gZmlyc3QgcHJvcGVy dHkgb2Zmc2V0IGluIHRoZSBnaXZlbiBub2RlLg0KPj4gKw0KPj4gKyoqLw0KPj4gK0lOVDMyDQo+ PiArRUZJQVBJDQo+PiArRmR0Rmlyc3RQcm9wZXJ0eU9mZnNldCAoDQo+PiArICBJTiBDT05TVCBW T0lEICAqRmR0LA0KPj4gKyAgSU4gSU5UMzIgICAgICAgTm9kZU9mZnNldA0KPj4gKyAgKQ0KPj4g K3sNCj4+ICsgIHJldHVybiBmZHRfZmlyc3RfcHJvcGVydHlfb2Zmc2V0IChGZHQsIE5vZGVPZmZz ZXQpOyB9DQo+PiArDQo+PiArLyoqDQo+PiArICBSZXR1cm5zIGEgb2Zmc2V0IG9mIG5leHQgcHJv cGVydHkgZnJvbSB0aGUgZ2l2ZW4gcHJvcGVydHkuDQo+PiArDQo+PiArICBAcGFyYW1baW5dIEZk dCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPj4gKyAgQHBhcmFtW2luXSBP ZmZzZXQgICAgICAgICBUaGUgb2Zmc2V0IHRvIHByZXZpb3VzIHByb3BlcnR5Lg0KPj4gKw0KPj4g KyAgQHJldHVybiBUaGUgb2Zmc2V0IHRvIG5leHQgcHJvcGVydHkgb2Zmc2V0Lg0KPj4gKw0KPj4g KyoqLw0KPj4gK0lOVDMyDQo+PiArRUZJQVBJDQo+PiArRmR0TmV4dFByb3BlcnR5T2Zmc2V0ICgN Cj4+ICsgIElOIENPTlNUIFZPSUQgICpGZHQsDQo+PiArICBJTiBJTlQzMiAgICAgICBPZmZzZXQN Cj4+ICsgICkNCj4+ICt7DQo+PiArICByZXR1cm4gZmR0X25leHRfcHJvcGVydHlfb2Zmc2V0IChG ZHQsIE9mZnNldCk7IH0NCj4+ICsNCj4+ICsvKioNCj4+ICsgIFJldHVybnMgYSBwcm9wZXJ0eSBm cm9tIHRoZSBnaXZlbiBvZmZzZXQgb2YgdGhlIHByb3BlcnR5Lg0KPj4gKw0KPj4gKyAgQHBhcmFt W2luXSBGZHQgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBGRFQgYmxvYi4NCj4+ICsgIEBwYXJh bVtpbl0gT2Zmc2V0ICAgICAgICAgVGhlIG9mZnNldCB0byB0aGUgZ2l2ZW4gb2Zmc2V0IG9mIHRo ZSBwcm9wZXJ0eS4NCj4+ICsgIEBwYXJhbVtpbl0gTGVuZ3RoICAgICAgICAgVGhlIGxlbmd0aCB0 byB0aGUgc2l6ZSBvZiB0aGUgcHJvcGVydHkgZm91bmQuDQo+PiArDQo+PiArICBAcmV0dXJuIFRo ZSBwcm9wZXJ0eSB0byB0aGUgc3RydWN0dXJlIG9mIHRoZSBnaXZlbiBwcm9wZXJ0eSBvZmZzZXQu DQo+PiArDQo+PiArKiovDQo+PiArQ09OU1Qgc3RydWN0IGZkdF9wcm9wZXJ0eSAqDQo+PiArRUZJ QVBJDQo+PiArRmR0R2V0UHJvcGVydHlCeU9mZnNldCAoDQo+PiArICBJTiBDT05TVCBWT0lEICAq RmR0LA0KPj4gKyAgSU4gSU5UMzIgICAgICAgT2Zmc2V0LA0KPj4gKyAgSU4gSU5UMzIgICAgICAg Kkxlbmd0aA0KPj4gKyAgKQ0KPj4gK3sNCj4+ICsgIHJldHVybiBmZHRfZ2V0X3Byb3BlcnR5X2J5 X29mZnNldCAoRmR0LCBPZmZzZXQsIExlbmd0aCk7IH0NCj4+ICsNCj4+ICsvKioNCj4+ICsgIFJl dHVybnMgYSBzdHJpbmcgYnkgdGhlIGdpdmVuIHN0cmluZyBvZmZzZXQuDQo+PiArDQo+PiArICBA cGFyYW1baW5dIEZkdCAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEZEVCBibG9iLg0KPj4gKyAg QHBhcmFtW2luXSBTdHJPZmZzZXQgICAgICBUaGUgb2Zmc2V0IHRvIHRoZSBsb2NhdGlvbiBpbiB0 aGUgc3RyaW5ncyBibG9jayBvZiBGRFQuDQo+PiArICBAcGFyYW1baW5dIExlbmd0aCAgICAgICAg IFRoZSBsZW5ndGggdG8gdGhlIHNpemUgb2Ygc3RyaW5nIHdoaWNoIG5lZWQgYmUgcmV0cmlldmVk Lg0KPj4gKw0KPj4gKyAgQHJldHVybiBUaGUgc3RyaW5nIHRvIHRoZSBnaXZlbiBzdHJpbmcgb2Zm c2V0Lg0KPj4gKw0KPj4gKyoqLw0KPj4gK0NPTlNUIENIQVI4ICoNCj4+ICtFRklBUEkNCj4+ICtG ZHRHZXRTdHJpbmcgKA0KPj4gKyAgSU4gQ09OU1QgVk9JRCAgKkZkdCwNCj4+ICsgIElOIElOVDMy ICAgICAgIFN0ck9mZnNldCwNCj4+ICsgIElOIElOVDMyICAgICAgICpMZW5ndGggICAgICAgIE9Q VElPTkFMDQo+PiArICApDQo+PiArew0KPj4gKyAgcmV0dXJuIGZkdF9nZXRfc3RyaW5nIChGZHQs IFN0ck9mZnNldCwgTGVuZ3RoKTsgfQ0KPj4gKw0KPj4gKy8qKg0KPj4gKyAgQWRkIGEgbmV3IG5v ZGUgdG8gdGhlIEZEVC4NCj4+ICsNCj4+ICsgIEBwYXJhbVtpbl0gRmR0ICAgICAgICAgICAgVGhl IHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+PiArICBAcGFyYW1baW5dIFBhcmVudE9mZnNldCAgIFRo ZSBvZmZzZXQgdG8gdGhlIG5vZGUgb2Zmc2V0IHdoaWNoIHdhbnQgdG8gYWRkIGluLg0KPj4gKyAg QHBhcmFtW2luXSBOYW1lICAgICAgICAgICBUaGUgbmFtZSB0byBuYW1lIHRoZSBub2RlLg0KPj4g Kw0KPj4gKyAgQHJldHVybiAgVGhlIG9mZnNldCB0byB0aGUgbmV3IG5vZGUuDQo+PiArDQo+PiAr KiovDQo+PiArSU5UMzINCj4+ICtFRklBUEkNCj4+ICtGZHRBZGRTdWJub2RlICgNCj4+ICsgIElO IFZPSUQgICAgICAgICAqRmR0LA0KPj4gKyAgSU4gSU5UMzIgICAgICAgIFBhcmVudE9mZnNldCwN Cj4+ICsgIElOIENPTlNUIENIQVI4ICAqTmFtZQ0KPj4gKyAgKQ0KPj4gK3sNCj4+ICsgIHJldHVy biBmZHRfYWRkX3N1Ym5vZGUgKEZkdCwgUGFyZW50T2Zmc2V0LCBOYW1lKTsgfQ0KPj4gKw0KPj4g Ky8qKg0KPj4gKyAgQWRkIG9yIG1vZGlmeSBhIHBvcnBlcnR5IGluIHRoZSBnaXZlbiBub2RlLg0K DQo+KnByb3BlcnR5DQpDb3JyZWN0ZWQgaW4gUGF0Y2ggVjIuDQoNCj4+ICsNCj4+ICsgIEBwYXJh bVtpbl0gRmR0ICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRkRUIGJsb2IuDQo+PiArICBAcGFy YW1baW5dIE5vZGVPZmZzZXQgICAgIFRoZSBvZmZzZXQgdG8gdGhlIG5vZGUgb2Zmc2V0IHdoaWNo IHdhbnQgdG8gYWRkIGluLg0KPj4gKyAgQHBhcmFtW2luXSBOYW1lICAgICAgICAgICBUaGUgbmFt ZSB0byBuYW1lIHRoZSBwcm9wZXJ0eS4NCj4+ICsgIEBwYXJhbVtpbl0gVmFsdWUgICAgICAgICAg VGhlIHZhbHVlIHRvIHRoZSBwcm9wZXJ0eSB2YWx1ZS4NCj4+ICsgIEBwYXJhbVtpbl0gTGVuZ3Ro ICAgICAgICAgVGhlIGxlbmd0aCB0byB0aGUgc2l6ZSBvZiB0aGUgcHJvcGVydHkuDQo+PiArDQo+ PiArICBAcmV0dXJuICBaZXJvIGZvciBzdWNjZXNzZnVsbHksIG90aGVyd2lzZSBmYWlsZWQuDQo+ PiArDQo+PiArKiovDQo+PiArSU5UMzINCj4+ICtFRklBUEkNCj4+ICtGZHRTZXRQcm9wICgNCj4+ ICsgIElOIFZPSUQgICAgICAgICAqRmR0LA0KPj4gKyAgSU4gSU5UMzIgICAgICAgIE5vZGVPZmZz ZXQsDQo+PiArICBJTiBDT05TVCBDSEFSOCAgKk5hbWUsDQo+PiArICBJTiBDT05TVCBWT0lEICAg KlZhbHVlLA0KPj4gKyAgSU4gVUlOVDMyICAgICAgIExlbmd0aA0KPj4gKyAgKQ0KPj4gK3sNCj4+ ICsgIHJldHVybiBmZHRfc2V0cHJvcCAoRmR0LCBOb2RlT2Zmc2V0LCBOYW1lLCBWYWx1ZSwgKGlu dClMZW5ndGgpOyB9DQo+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9M aWJGZHRTdXBwb3J0LmggDQo+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvTGliRmR0U3Vw cG9ydC5oDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAwMDAwMDAwMC4uNThi MGJiNDAzZQ0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZk dExpYi9MaWJGZHRTdXBwb3J0LmgNCj4+IEBAIC0wLDAgKzEsMTAyIEBADQo+PiArLyoqIEBmaWxl DQo+PiArICBSb290IGluY2x1ZGUgZmlsZSBvZiBDIHJ1bnRpbWUgbGlicmFyeSB0byBzdXBwb3J0 IGJ1aWxkaW5nIHRoZSANCj4+ICt0aGlyZC1wYXJ0eQ0KPj4gKyAgbGliZmR0IGxpYnJhcnkuDQo+ PiArDQo+PiArICBDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50DQo+PiArDQo+PiArKiovDQo+PiArDQo+PiArI2lmbmRlZiBGRFRfTElCX1NV UFBPUlRfSF8NCj4+ICsjZGVmaW5lIEZEVF9MSUJfU1VQUE9SVF9IXw0KPj4gKw0KPj4gKyNpbmNs dWRlIDxCYXNlLmg+DQo+PiArI2luY2x1ZGUgPExpYnJhcnkvQmFzZUxpYi5oPg0KPj4gKyNpbmNs dWRlIDxMaWJyYXJ5L0Jhc2VNZW1vcnlMaWIuaD4NCj4+ICsNCj4+ICt0eXBlZGVmIFVJTlQ4ICAg IHVpbnQ4X3Q7DQo+PiArdHlwZWRlZiBVSU5UMTYgICB1aW50MTZfdDsNCj4+ICt0eXBlZGVmIElO VDMyICAgIGludDMyX3Q7DQo+PiArdHlwZWRlZiBVSU5UMzIgICB1aW50MzJfdDsNCj4+ICt0eXBl ZGVmIFVJTlQ2NCAgIHVpbnQ2NF90Ow0KPj4gK3R5cGVkZWYgVUlOVE4gICAgdWludHB0cl90Ow0K Pj4gK3R5cGVkZWYgVUlOVE4gICAgc2l6ZV90Ow0KPj4gK3R5cGVkZWYgQk9PTEVBTiAgYm9vbDsN Cj4+ICsNCj4+ICsjZGVmaW5lIHRydWUgICAoMSA9PSAxKQ0KPj4gKyNkZWZpbmUgZmFsc2UgICgx ID09IDApDQo+PiArDQo+PiArLy8NCj4+ICsvLyBEZWZpbml0aW9ucyBmb3IgZ2xvYmFsIGNvbnN0 YW50cyB1c2VkIGJ5IGxpYmZkdCBsaWJyYXJ5IHJvdXRpbmVzIA0KPj4gKy8vICNpZm5kZWYgSU5U X01BWA0KPj4gKyNkZWZpbmUgSU5UX01BWCAgMHg3RkZGRkZGRiAgICAgICAgICAgICAgLyogTWF4 aW11bSAoc2lnbmVkKSBpbnQgdmFsdWUgKi8NCj4+ICsjZW5kaWYNCg0KPldoeSB0aGUgaWZuZGVm IGhlcmU/DQpTYW1lIHdpdGggYmVsb3cuDQoNCj4+ICsjZGVmaW5lIElOVDMyX01BWCAgICAgICAg MHg3RkZGRkZGRiAgICAgIC8qIE1heGltdW0gKHNpZ25lZCkgaW50MzIgdmFsdWUgKi8NCj4+ICsj ZGVmaW5lIFVJTlQzMl9NQVggICAgICAgMHhGRkZGRkZGRiAgICAgIC8qIE1heGltdW0gdW5zaWdu ZWQgaW50MzIgdmFsdWUgKi8NCj4+ICsjZGVmaW5lIE1BWF9TVFJJTkdfU0laRSAgMHgxMDAwDQoN Cj5XaHkgdGhlIGFyYml0cmFyeSBNQVhfU1RSSU5HX1NJWkUgaGVyZT8NCkJlY2F1c2UgdGhlcmUn cmUgbWFueSBzdGFuZGFyZCBjIHdyYXBwZXJzLCB0aGUgc2VxdWVuY2Ugb2YgaW5jbHVkZSBwYXRo cyB3aWxsIEluZmx1ZW5jZSBlYWNoIG90aGVyLg0KQXQgZmlyc3QsIEkgbWFkZSBhIG1pc3Rha2Ug d2l0aCB3cm9uZyBpbmNsdWRlIHBhdGggc28gSSBnb3QgYnVpbGQgZmFpbGVkIHdpdGggbGFja2Vk IGRlZmluaXRpb25zLg0KSG93ZXZlciwgSSBmb3Jnb3QgdG8gY2hlY2sgdGhvc2UgZGVmaW5pdGlv bnMgd2hlbiBjb3JyZWN0ZWQgaW5jbHVkZSBwYXRoLg0KUmVtb3ZlIG5vIHVzZSBkZWZpbml0aW9u cyBhbmQgI2lmbmRlZiBpbiBQYXRjaCBWMi4gDQoNCj4+ICsNCj4+ICsvLw0KPj4gKy8vIEZ1bmN0 aW9uIHByb3RvdHlwZXMgb2YgbGliZmR0IExpYnJhcnkgcm91dGluZXMgLy8gdm9pZCAqDQo+PiAr bWVtc2V0ICAgICAoDQo+PiArICB2b2lkICosDQo+PiArICBpbnQsDQo+PiArICBzaXplX3QNCj4+ ICsgICk7DQo+PiArDQo+PiAraW50DQo+PiArbWVtY21wICAgICAgKA0KPj4gKyAgY29uc3Qgdm9p ZCAqLA0KPj4gKyAgY29uc3Qgdm9pZCAqLA0KPj4gKyAgc2l6ZV90DQo+PiArICApOw0KPj4gKw0K Pj4gK2ludA0KPj4gK3N0cmNtcCAgICAgICgNCj4+ICsgIGNvbnN0IGNoYXIgKiwNCj4+ICsgIGNv bnN0IGNoYXIgKg0KPj4gKyAgKTsNCj4+ICsNCj4+ICtjaGFyICoNCj4+ICtzdHJjaHIgICAgICgN Cj4+ICsgIGNvbnN0IGNoYXIgKiwNCj4+ICsgIGludA0KPj4gKyAgKTsNCj4+ICsNCj4+ICtjaGFy ICoNCj4+ICtzdHJyY2hyICAgICgNCj4+ICsgIGNvbnN0IGNoYXIgKiwNCj4+ICsgIGludA0KPj4g KyAgKTsNCj4+ICsNCj4+ICt1bnNpZ25lZCBsb25nDQo+PiArc3RydG91bCAgICAgKA0KPj4gKyAg Y29uc3QgY2hhciAqLA0KPj4gKyAgY2hhciAqKiwNCj4+ICsgIGludA0KPj4gKyAgKTsNCj4+ICsN Cj4+ICtjaGFyICoNCj4+ICtzdHJjcHkgKA0KPj4gKyAgY2hhciAgICAgICAgKnN0ckRlc3QsDQo+ PiArICBjb25zdCBjaGFyICAqc3RyU291cmNlDQo+PiArICApOw0KPj4gKw0KPj4gKy8vDQo+PiAr Ly8gTWFjcm9zIHRoYXQgZGlyZWN0bHkgbWFwIGZ1bmN0aW9ucyB0byBCYXNlTGliLCBCYXNlTWVt b3J5TGliLCBhbmQgDQo+PiArRGVidWdMaWIgZnVuY3Rpb25zIC8vDQo+PiArI2RlZmluZSBtZW1j cHkoZGVzdCwgc291cmNlLCBjb3VudCkgICAgICAgICBDb3B5TWVtKGRlc3Qsc291cmNlLCAoVUlO VE4pKGNvdW50KSkNCj4+ICsjZGVmaW5lIG1lbXNldChkZXN0LCBjaCwgY291bnQpICAgICAgICAg ICAgIFNldE1lbShkZXN0LCAoVUlOVE4pKGNvdW50KSwoVUlOVDgpKGNoKSkNCj4+ICsjZGVmaW5l IG1lbWNocihidWYsIGNoLCBjb3VudCkgICAgICAgICAgICAgIFNjYW5NZW04KGJ1ZiwgKFVJTlRO KShjb3VudCksKFVJTlQ4KWNoKQ0KPj4gKyNkZWZpbmUgbWVtY21wKGJ1ZjEsIGJ1ZjIsIGNvdW50 KSAgICAgICAgICAgKGludCkoQ29tcGFyZU1lbShidWYxLCBidWYyLCAoVUlOVE4pKGNvdW50KSkp DQo+PiArI2RlZmluZSBtZW1tb3ZlKGRlc3QsIHNvdXJjZSwgY291bnQpICAgICAgICBDb3B5TWVt KGRlc3QsIHNvdXJjZSwgKFVJTlROKShjb3VudCkpDQo+PiArI2RlZmluZSBzdHJsZW4oc3RyKSAg ICAgICAgICAgICAgICAgICAgICAgICAoc2l6ZV90KShBc2NpaVN0ckxlbihzdHIpKQ0KPj4gKyNk ZWZpbmUgc3RybmxlbihzdHIsIGNvdW50KSAgICAgICAgICAgICAgICAgKHNpemVfdCkoQXNjaWlT dHJuTGVuUyhzdHIsIGNvdW50KSkNCj4+ICsjZGVmaW5lIHN0cm5jcHkoc3RyRGVzdCwgc3RyU291 cmNlLCBjb3VudCkgIEFzY2lpU3RybkNweVMoc3RyRGVzdCwgTUFYX1NUUklOR19TSVpFLCBzdHJT b3VyY2UsIChVSU5UTiljb3VudCkNCj4+ICsjZGVmaW5lIHN0cmNhdChzdHJEZXN0LCBzdHJTb3Vy Y2UpICAgICAgICAgIEFzY2lpU3RyQ2F0UyhzdHJEZXN0LCBNQVhfU1RSSU5HX1NJWkUsIHN0clNv dXJjZSkNCj4+ICsjZGVmaW5lIHN0cmNtcChzdHJpbmcxLCBzdHJpbmcyLCBjb3VudCkgICAgIChp bnQpKEFzY2lpU3RyQ21wKHN0cmluZzEsIHN0cmluZzIpKQ0KPj4gKyNkZWZpbmUgc3RybmNtcChz dHJpbmcxLCBzdHJpbmcyLCBjb3VudCkgICAgKGludCkoQXNjaWlTdHJuQ21wKHN0cmluZzEsIHN0 cmluZzIsIChVSU5UTikoY291bnQpKSkNCj4+ICsNCj4+ICsjZW5kaWYgLyogRkRUX0xJQl9TVVBQ T1JUX0hfICovDQo+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9MaWJG ZHRXcmFwcGVyLmMgDQo+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvTGliRmR0V3JhcHBl ci5jDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAwMDAwMDAwMC4uM2YxY2M2 OWRjNg0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExp Yi9MaWJGZHRXcmFwcGVyLmMNCj4+IEBAIC0wLDAgKzEsMTM4IEBADQo+PiArLyoqIEBmaWxlDQo+ PiArICBSb290IGluY2x1ZGUgZmlsZSBvZiBDIHJ1bnRpbWUgbGlicmFyeSB0byBzdXBwb3J0IGJ1 aWxkaW5nIHRoZSANCj4+ICt0aGlyZC1wYXJ0eQ0KPj4gKyAgbGliZmR0IGxpYnJhcnkuDQo+PiAr DQo+PiArICBDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQo+PiArDQo+PiArKiovDQo+PiArDQo+PiArI2luY2x1ZGUgIkxpYkZkdFN1cHBv cnQuaCINCj4+ICsjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0KDQo+V2h5IGFyZSB3ZSBw dWxsaW5nIERlYnVnTGliPyBJIGRvbid0IHNlZSB3aGVyZSB0aGlzIHNob3VsZCBiZSBuZWVkZWQu DQpZZXMsIHdlIGRvIG5vdCBuZWVkLiBGb3Jnb3QgcmVtb3ZhbCBhZnRlciBkZWJ1Z2dpbmcuDQpS ZW1vdmUgaXQgaW4gUGF0Y2ggVjIuDQoNCj4+ICsNCj4+ICsvKioNCj4+ICsgIFJldHVybnMgdGhl IGZpcnN0IG9jY3VycmVuY2Ugb2YgYSBOdWxsLXRlcm1pbmF0ZWQgQVNDSUkgY2hhcmFjdGVyDQo+ PiArICBpbiBhIE51bGwtdGVybWluYXRlZCBBU0NJSSBzdHJpbmcuDQo+PiArDQo+PiArICBUaGlz IGZ1bmN0aW9uIHNjYW5zIHRoZSBjb250ZW50cyBvZiB0aGUgQVNDSUkgc3RyaW5nIHNwZWNpZmll ZCBieSBzICANCj4+ICsgYW5kIHJldHVybnMgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYy4gSWYg YyBpcyBub3QgZm91bmQgaW4gcywgIHRoZW4gDQo+PiArIE5VTEwgaXMgcmV0dXJuZWQuIElmIHRo ZSBsZW5ndGggb2YgYyBpcyB6ZXJvLCB0aGVuIHMgaXMgcmV0dXJuZWQuDQo+PiArDQo+PiArICBA cGFyYW0gIHMgICAgICAgICAgICAgICBUaGUgcG9pbnRlciB0byBhIE51bGwtdGVybWluYXRlZCBB U0NJSSBzdHJpbmcuDQo+PiArICBAcGFyYW0gIGMgICAgICAgICAgICAgICBUaGUgcG9pbnRlciB0 byBhIE51bGwtdGVybWluYXRlZCBBU0NJSSBjaGFyYWN0ZXIgdG8gc2VhcmNoIGZvci4NCj4+ICsN Cj4+ICsgIEByZXR2YWwgTlVMTCAgICAgICAgICAgIElmIHRoZSBjIGRvZXMgbm90IGFwcGVhciBp biBzLg0KPj4gKyAgQHJldHZhbCBvdGhlcnMgICAgICAgICAgSWYgdGhlcmUgaXMgYSBtYXRjaCBy ZXR1cm4gdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYy4NCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIHRoZSBsZW5ndGggb2YgYyBpcyB6ZXJvLHJldHVybiBzLg0KDQo+VGhlIGRveHln ZW4gZm9yIHN0cmNociBhbmQgc3RycmNociBpcyB2ZXJ5IHdyb25nIGFuZCBpcyBub3QgSVNPIEMg KG5vciBHTlUgQyBub3IgYW55IG90aGVyIGJyYW5kIG9mIEMpIGNvbXBsaWFudC4gUGxlYXNlIHJl ZmVyIHRvIGEgPkxpbnV4L21hY09TL0JTRCBtYW5wYWdlIG9yIHRvIGFuIElTTyBDIHN0YW5kYXJk IGRyYWZ0Lg0KUmVtb3ZlIGRveHlnZW4gaW4gUGF0Y2ggVjIuDQoNCj4+ICsNCj4+ICsqKi8NCj4+ ICtjaGFyICoNCj4+ICtzdHJjaHIgKA0KPj4gKyAgY29uc3QgY2hhciAgKnMsDQo+PiArICBpbnQg ICAgICAgICBjDQo+PiArICApDQo+PiArew0KPj4gKyAgY2hhciAgcGF0dGVyblsyXTsNCj4+ICsN Cj4+ICsgIHBhdHRlcm5bMF0gPSAoQ0hBUjgpYzsNCj4+ICsgIHBhdHRlcm5bMV0gPSAwOw0KPj4g KyAgcmV0dXJuIEFzY2lpU3RyU3RyIChzLCBwYXR0ZXJuKTsNCj4+ICt9DQo+PiArDQo+PiArLyoq DQo+PiArICBSZXR1cm5zIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgYSBOdWxsLXRlcm1pbmF0ZWQg QVNDSUkgY2hhcmFjdGVyDQo+PiArICBpbiBhIE51bGwtdGVybWluYXRlZCBBU0NJSSBzdHJpbmcu DQo+PiArDQo+PiArICBUaGlzIGZ1bmN0aW9uIHNjYW5zIHRoZSBjb250ZW50cyBvZiB0aGUgQVND SUkgc3RyaW5nIHNwZWNpZmllZCBieSBzICANCj4+ICsgYW5kIHJldHVybnMgdGhlIGxhc3Qgb2Nj dXJyZW5jZSBvZiBjLiBJZiBjIGlzIG5vdCBmb3VuZCBpbiBzLCAgdGhlbiANCj4+ICsgTlVMTCBp cyByZXR1cm5lZC4gSWYgdGhlIGxlbmd0aCBvZiBjIGlzIHplcm8sIHRoZW4gcyBpcyByZXR1cm5l ZC4NCj4+ICsNCj4+ICsgIEBwYXJhbSAgcyAgICAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIGEg TnVsbC10ZXJtaW5hdGVkIEFTQ0lJIHN0cmluZy4NCj4+ICsgIEBwYXJhbSAgYyAgICAgICAgICAg ICAgIFRoZSBwb2ludGVyIHRvIGEgTnVsbC10ZXJtaW5hdGVkIEFTQ0lJIGNoYXJhY3RlciB0byBz ZWFyY2ggZm9yLg0KPj4gKw0KPj4gKyAgQHJldHZhbCBOVUxMICAgICAgICAgICAgSWYgdGhlIGMg ZG9lcyBub3QgYXBwZWFyIGluIHMuDQo+PiArICBAcmV0dmFsIG90aGVycyAgICAgICAgICBJZiB0 aGVyZSBpcyBhIG1hdGNoIHJldHVybiB0aGUgbGFzdCBvY2N1cnJlbmNlIG9mIGMuDQo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiB0aGUgbGVuZ3RoIG9mIGMgaXMgemVybyxyZXR1cm4g cy4NCj4+ICsNCj4+ICsqKi8NCj4+ICtjaGFyICoNCj4+ICtzdHJyY2hyICgNCj4+ICsgIGNvbnN0 IGNoYXIgICpzLA0KPj4gKyAgaW50ICAgICAgICAgYw0KPj4gKyAgKQ0KPj4gK3sNCj4+ICsgIGNo YXIgICAgICAgICBwYXR0ZXJuWzJdOw0KPj4gKyAgQ09OU1QgQ0hBUjggICpMYXN0TWF0Y2g7DQo+ PiArICBDT05TVCBDSEFSOCAgKlN0cmluZ1RtcDsNCj4+ICsgIENPTlNUIENIQVI4ICAqU2VhcmNo U3RyaW5nOw0KPj4gKw0KPj4gKyAgcGF0dGVyblswXSAgID0gKENIQVI4KWM7DQo+PiArICBwYXR0 ZXJuWzFdICAgPSAwOw0KPj4gKyAgU2VhcmNoU3RyaW5nID0gcGF0dGVybjsNCj4+ICsNCj4+ICsg IC8vDQo+PiArICAvLyBSZXR1cm4gTlVMTCBpZiBib3RoIHN0cmluZ3MgYXJlIGxlc3MgbG9uZyB0 aGFuIA0KPj4gKyBQY2RNYXhpbXVtQXNjaWlTdHJpbmdMZW5ndGggIC8vICBpZiAoKEFzY2lpU3Ry U2l6ZSAocykgPT0gMCkgfHwgDQo+PiArIChBc2NpaVN0clNpemUgKFNlYXJjaFN0cmluZykgPT0g MCkpIHsNCj4+ICsgICAgcmV0dXJuIE5VTEw7DQo+PiArICB9DQo+PiArDQo+PiArICBpZiAoKlNl YXJjaFN0cmluZyA9PSAnXDAnKSB7DQo+PiArICAgIHJldHVybiAoQ0hBUjggKilzOw0KPj4gKyAg fQ0KPj4gKw0KPj4gKyAgTGFzdE1hdGNoID0gTlVMTDsNCj4+ICsgIGRvIHsNCj4+ICsgICAgU3Ry aW5nVG1wID0gQXNjaWlTdHJTdHIgKHMsIFNlYXJjaFN0cmluZyk7DQo+PiArDQo+PiArICAgIGlm IChTdHJpbmdUbXAgPT0gTlVMTCkgew0KPj4gKyAgICAgIGJyZWFrOw0KPj4gKyAgICB9DQo+PiAr DQo+PiArICAgIExhc3RNYXRjaCA9IFN0cmluZ1RtcDsNCj4+ICsgICAgcyAgICAgICAgID0gU3Ry aW5nVG1wICsgMTsNCj4+ICsgIH0gd2hpbGUgKHMgIT0gTlVMTCk7DQo+PiArDQo+PiArICByZXR1 cm4gKENIQVI4ICopTGFzdE1hdGNoOw0KPj4gK30NCg0KPkJldHRlciBpbXBsZW1lbnRhdGlvbnMg SSB3cm90ZSB2ZXJ5IHF1aWNrbHksIGZlZWwgZnJlZSB0byBFRkktaXQsIHB1YmxpYyBkb21haW46 ID5odHRwczovL2dpc3QuZ2l0aHViLmNvbS9oZWF0ZC9jMTE5MmYzZjA1MTQ4YTYyNzFiZTM3ZmIz MTYwYjE0Mw0KSW4gbXkgdW5kZXJzdGFuZGluZywgSSBzaG91bGQgdXNlIHRob3NlIGZ1bmN0aW9u cyBwcm92aWRlZCBieSBlZGsyIHRvIGltcGxlbWVudC4NCkxvb2tzIGxpa2Ugd2UgZG8gbm90IG5l ZWQgc28gSSBpbnRlZ3JhdGVkIHlvdXIgaW1wbGVtZW50YXRpb25zIGZyb20gbGliY2xpYi4NCldo ZW4gaW50ZWdyYXRlZCBsaWJjbGliIGZ1bmN0aW9ucyB0byB3cmFwcGVyIGZpbGUsIEkgY2FuIGJ1 aWxkIHN1Y2Nlc3NmdWxseSB3aXRoIE1TVkMuDQpIb3dldmVyLCBJIGFsc28gdGVzdCB3aXRoIGlu dGVncmF0ZWQgd2hvbGUgY2hhbmdlcyBvZiBsaWJjbGliLiBCdWlsZCBmYWlsZWQgb2NjdXJyZWQu DQpJIHdpbGwga2VlcCBjaGVja2luZy4NCg0KPj4gKw0KPj4gKy8qKg0KPj4gKyAgQ29udmVydCBh IE51bGwtdGVybWluYXRlZCBBc2NpaSBkZWNpbWFsIG9yIGhleGFkZWNpbWFsIHN0cmluZyB0byBh IHZhbHVlIG9mIHR5cGUgVUlOVE4uDQo+PiArDQo+PiArICBUaGlzIGZ1bmN0aW9uIG91dHB1dHMg YSB2YWx1ZSBvZiB0eXBlIFVJTlROIGJ5IGludGVycHJldGluZyB0aGUgDQo+PiArIGNvbnRlbnRz IG9mICB0aGUgQXNjaWkgc3RyaW5nIHNwZWNpZmllZCBieSBTdHJpbmcgYXMgYSBkZWNpbWFsIG9y IGhleGFkZWNpbWFsIG51bWJlci4NCj4+ICsNCj4+ICsgIEBwYXJhbSAgbnB0ciAgICAgICAgICAg ICAgICAgICAgIFBvaW50ZXIgdG8gYSBOdWxsLXRlcm1pbmF0ZWQgQXNjaWkgc3RyaW5nLg0KPj4g KyAgQHBhcmFtICBlbmRwdHIgICAgICAgICAgICAgICAgICAgUG9pbnRlciB0byBjaGFyYWN0ZXIg dGhhdCBzdG9wcyBzY2FuLg0KPj4gKyAgQHBhcmFtICBiYXNlICAgICAgICAgICAgICAgICAgICAg UG9pbnRlciB0byBkZWNpbWFsIG9yIGhleGFkZWNpbWFsLg0KPj4gKw0KPj4gKyAgQHJldHZhbCBN QVhfVUlOVE4gICAgICAgICAgICAgICAgSWYgbnB0ciBpcyBOVUxMLg0KPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgZW5kcHRyIGlzIE5VTEwuDQo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiBiYXNlIGlzIG5vdCAxMCBvciAxNi4NCj4+ICsg IEByZXR2YWwgb3RoZXJzICAgICAgICAgICAgICAgICAgIFZhbHVlIGlzIHRyYW5zbGF0ZWQgZnJv bSBTdHJpbmcuDQo+PiArDQo+PiArKiovDQo+PiArdW5zaWduZWQgbG9uZw0KPj4gK3N0cnRvdWwg KA0KPj4gKyAgY29uc3QgY2hhciAgKm5wdHIsDQo+PiArICBjaGFyICAgICAgICAqKmVuZHB0ciwN Cj4+ICsgIGludCAgICAgICAgIGJhc2UNCj4+ICsgICkNCj4+ICt7DQo+PiArICBSRVRVUk5fU1RB VFVTICBTdGF0dXM7DQo+PiArICBVSU5UTiAgICAgICAgICBSZXR1cm5WYWx1ZTsNCg0KPlRoZXJl J3Mgbm8gZXF1aXZhbGVuY2UgYmV0d2VlbiBVSU5UTiBhbmQgdW5zaWduZWQgbG9uZyBvbiB4NjQg V2luZG93cyAod2hlcmUgdGhleSB1c2UgTExQNjQsIHNvIDMyLWJpdCBsb25ncywgd2hpbGUgVUlO VE4gc2hvdWxkIGJlIDY0LT5iaXQpLg0KS2VlcCB1bnNpZ25lZCBsb25nIGluIFBhdGNoIFYyLg0K DQo+PiArDQo+PiArICBpZiAoYmFzZSA9PSAxMCkgew0KPj4gKyAgICBTdGF0dXMgPSBBc2NpaVN0 ckRlY2ltYWxUb1VpbnRuUyAobnB0ciwgZW5kcHRyLCAmUmV0dXJuVmFsdWUpOyAgfSANCj4+ICsg ZWxzZSBpZiAoYmFzZSA9PSAxNikgew0KPj4gKyAgICBTdGF0dXMgPSBBc2NpaVN0ckhleFRvVWlu dG5TIChucHRyLCBlbmRwdHIsICZSZXR1cm5WYWx1ZSk7ICB9IA0KPj4gKyBlbHNlIHsNCj4+ICsg ICAgU3RhdHVzID0gUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSOyAgfQ0KPj4gKw0KPj4gKyAgaWYg KFJFVFVSTl9FUlJPUiAoU3RhdHVzKSkgew0KPj4gKyAgICByZXR1cm4gTUFYX1VJTlROOw0KPj4g KyAgfQ0KPj4gKw0KPj4gKyAgcmV0dXJuICh1bnNpZ25lZCBsb25nKVJldHVyblZhbHVlOw0KPj4g K30NCg0KPk5vdGUgdGhhdCB0aGlzIGlzIG5vdCBJU08gQyBjb21wbGlhbnQsIGJ1dCBzZWVtcyB0 byB3b3JrIGluIHRoZSBsaWJmZHQgY2FzZSAoYXMgZmFyIGFzIEkgY2FuIHNlZSwgb25seSBhIHNp bmdsZSBzdHJ0b3VsIGNhbGwgd2l0aCBiYXNlIDEwKS4NClRoaXMgd2lsbCBiZSByZXBsYWNlZCB3 aXRoIGxpYmNsaWIgZnVuY3Rpb25zLg0KDQo+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkv QmFzZUZkdExpYi9saWJmZHQgDQo+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvbGliZmR0 DQo+PiBuZXcgZmlsZSBtb2RlIDE2MDAwMA0KPj4gaW5kZXggMDAwMDAwMDAwMC4uY2ZmZjgwNTQ4 MQ0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExpYi9s aWJmZHQNCj4+IEBAIC0wLDAgKzEgQEANCj4+ICtTdWJwcm9qZWN0IGNvbW1pdCBjZmZmODA1NDgx YmRlYTI3ZjkwMGMzMjY5ODE3MTI4NjU0MmI4ZDNjDQo+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xp YnJhcnkvQmFzZUZkdExpYi9saW1pdHMuaCANCj4+IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZkdExp Yi9saW1pdHMuaA0KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+IGluZGV4IDAwMDAwMDAwMDAu LmY2Y2Y4ZDU3MDINCj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jh c2VGZHRMaWIvbGltaXRzLmgNCj4+IEBAIC0wLDAgKzEsMTAgQEANCj4+ICsvKiogQGZpbGUNCj4+ ICsgIEluY2x1ZGUgZmlsZSB0byBzdXBwb3J0IGJ1aWxkaW5nIHRoZSB0aGlyZC1wYXJ0eSBsaWJm ZHQgbGlicmFyeS4NCj4+ICsNCj4+ICtDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4+ICtTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlLVBhdGVudA0KPj4gKw0KPj4gKyoqLw0KPj4gKw0KPj4gKyNpbmNsdWRl IDxMaWJGZHRTdXBwb3J0Lmg+DQo+PiArDQo+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkv QmFzZUZkdExpYi9zdGRib29sLmggDQo+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VGZHRMaWIvc3Rk Ym9vbC5oDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAwMDAwMDAwMC4uZjZj ZjhkNTcwMg0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZUZk dExpYi9zdGRib29sLmgNCj4+IEBAIC0wLDAgKzEsMTAgQEANCj4+ICsvKiogQGZpbGUNCj4+ICsg IEluY2x1ZGUgZmlsZSB0byBzdXBwb3J0IGJ1aWxkaW5nIHRoZSB0aGlyZC1wYXJ0eSBsaWJmZHQg bGlicmFyeS4NCj4+ICsNCj4+ICtDb3B5cmlnaHQgKGMpIDIwMjMsIEludGVsIENvcnBvcmF0aW9u LiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4+ICtTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudA0KPj4gKw0KPj4gKyoqLw0KPj4gKw0KPj4gKyNpbmNsdWRlIDxM aWJGZHRTdXBwb3J0Lmg+DQoNCj5JZiB3ZSB3YW50IHRvIGJlIHJpZ29yb3VzLCBzdHJpY3RseSBz cGVha2luZywgd2Ugc2hvdWxkIG5vdCBwb2xsdXRlIHRoZSBuYW1lc3BhY2UuIHN0ZGJvb2wuaCBz aG91bGQgb25seSBpbmNsdWRlIHRoZSBzdGRib29sLmggc3R1ZmYgKHNlZSB0aGUgSVNPID5DIHNw ZWMpLCBhbmQgdGhlIHNhbWUgYXBwbGllcyBmb3IgdGhlIG90aGVyIGhlYWRlcnMuDQo+QWx0aG91 Z2ggSSAqZ3Vlc3MqIGl0IGRvZXNuJ3QgbWF0dGVyIG11Y2ggaGVyZS4NCkkgYWdyZWUgd2l0aCB5 b3UgYW5kIEkgdGhpbmsgbGliY2xpYiBpcyBiZXR0ZXIgZm9yIGVkazIuDQoNCg0KPi0tDQo+UGVk cm8NCg0KQmVubnkNCg==