From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-002e3701.pphosted.com (mx0a-002e3701.pphosted.com [148.163.147.86]) by mx.groups.io with SMTP id smtpd.web09.37173.1608538658289447770 for ; Mon, 21 Dec 2020 00:17:38 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@hpe.com header.s=pps0720 header.b=AYW73MZP; spf=pass (domain: hpe.com, ip: 148.163.147.86, mailfrom: prvs=062436d2cf=abner.chang@hpe.com) Received: from pps.filterd (m0150241.ppops.net [127.0.0.1]) by mx0a-002e3701.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 0BL88mG1004678; Mon, 21 Dec 2020 08:17:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pps0720; bh=ld1lKpj8Qe09VO3mzlHTtrBTqW68EMdKze3g0NbUBxw=; b=AYW73MZPQKrccQeYT7uJ7QxXrt69c/G6IzuW59zZSVLVYq8UiEStdbonvdVRbHYFCHKt D3+E8juwRrakjioG+SXJ9vlAWtvZPNlaz87Frv0GGtzQTNAO1sQP0QdaQPJLnUMa7S0M 1sbSfKMo42eityTJ/j2NzyAMHk1C3pO1RRxCS8j6Y1OHHScYW1yJcf1xWeqok5h740Jj 0JiUkhjPwHPcz3gMuOgrhUZQ4jp16A4BldQCahgSa8pqwKiZDI6ljZN//ehDXkHaVaf2 T81V1gRkRYdQDVHGCkvnHG3XxWcrqhT0hAq3/3qmaweW4Njikb+lAM8IgppK1p+tCNBl Vg== Received: from g9t5008.houston.hpe.com (g9t5008.houston.hpe.com [15.241.48.72]) by mx0a-002e3701.pphosted.com with ESMTP id 35huc0x3u7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 21 Dec 2020 08:17:33 +0000 Received: from G2W6310.americas.hpqcorp.net (g2w6310.austin.hp.com [16.197.64.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by g9t5008.houston.hpe.com (Postfix) with ESMTPS id E62E659; Mon, 21 Dec 2020 08:17:31 +0000 (UTC) Received: from G4W9119.americas.hpqcorp.net (2002:10d2:14d6::10d2:14d6) by G2W6310.americas.hpqcorp.net (2002:10c5:4034::10c5:4034) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 21 Dec 2020 08:17:31 +0000 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (15.241.52.11) by G4W9119.americas.hpqcorp.net (16.210.20.214) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Mon, 21 Dec 2020 08:17:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hMfjxgshF6YmpAXQwiCeT32f4GnAAQlkwr3r6+zwD9C6OAQ1u9Ee7hv+WQ8LaJMcBwGZw7OvCHGj8s5g33ipwPIzxwaZ62YhIt5noAmed5ScHVh+2varz4zPPo3aCZ3nIPZylpPwn0Tax4xLVutIIEUlTEaGtRoZaryTK3LfH111D3iR2yp3lQrHQIkmvFvVwEFOP+NHMN9JwWSD5c/RgxELpCsohpnnHPzCivtTTFvW7vpEk1iFnx/OIJwdSwpbBBqYOFaYF5lco9cVIKNu6efs6FlRX8Lxez0nPtifKfFoTYY1rjQq5ds1jQmJO1H4hYtRWP4JYdKcKHylH91afg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ld1lKpj8Qe09VO3mzlHTtrBTqW68EMdKze3g0NbUBxw=; b=CdRwqrNkP6R9A0O0Ki/1VkMfgyKZMCNuhbIZK/evhanT8LG+GqGjSdXnDvRBGC56sFohJOg679ie73WZi45pfenXLIltfC4OEcBvQGeDQmfYQHdsZA+pgM17uWVGcCcIPKpVVtR+CGP4UFodNUn/3CqC4Uq/X+R+GFSmgQQ94EKmahHXLKIHXEyidc2QKRJ+0ue+NW7MH2E429IiQkTExZ3ah2emKXDyn3QG5gKAa6HpqK9OPVPxkkJxhf0DgNSQocXRwccCzeV0ITcspSAWcrmBPtjKp3SgZPSfrBAMKM3wgMXoIqFLBKRrh+2l3jvyAqdycOePltQ27E3cPDXk/Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Received: from CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:7508::16) by CS1PR8401MB0997.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:7510::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3676.25; Mon, 21 Dec 2020 08:17:29 +0000 Received: from CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM ([fe80::a094:ed67:fb40:340e]) by CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM ([fe80::a094:ed67:fb40:340e%10]) with mapi id 15.20.3676.033; Mon, 21 Dec 2020 08:17:29 +0000 From: "Abner Chang" To: "Kinney, Michael D" , "devel@edk2.groups.io" CC: Sean Brogan , Bret Barkelew , Andrew Fish , Laszlo Ersek , Leif Lindholm , Liming Gao , "Wang, Nickle (HPS SW)" , "O'Hanley, Peter (EXL)" Subject: Re: [PATCH v8 0/6] jansson edk2 port Thread-Topic: [PATCH v8 0/6] jansson edk2 port Thread-Index: AQHW1N4KALZdXXzZjU+e5YmRTCg3N6oAUjyQgACDDDA= Date: Mon, 21 Dec 2020 08:17:29 +0000 Message-ID: References: <20201217131839.3762-1-abner.chang@hpe.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=hpe.com; x-originating-ip: [16.242.247.131] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: e667395d-8a2b-4931-ab7b-08d8a588dbf2 x-ms-traffictypediagnostic: CS1PR8401MB0997: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Jt5xfocRVSl+rYqXKAyk1+prO4UsRm8fNTQlCWPDSaapVZTXer20djEqw333SrC9n4Rz8qiCLM71TzRsqQNus5f2tcYXpAvc2QjGFG2PqtRXT1xWCTjObXDf4mqdZzDRTV32ng3sjxQkW6tdgDYCfJtP3EEIGYo+0pDtFg4mjcx0NgqMlR6ymROJUt+iw7l9CCWvTPxW0X58NnvaLxar5PuQ9E2eFRDA/uyaG43OkRj5aMeOzBYvMtqjfZWY057YKpVjO8V1bOm1NErdVNQQVLPMIRbw6+nM2s1Yyc+WG9t6vKyne5ouNMz6Sffw7lCigT74Pvx1qaTEqPTmfTkdLk4poWmv03S7IMDVMVsd/id7Xyh5E04ZBZ5yxlG87F0tAVUEazqFfqMtj0UJwQmr39mie/1Ta8cLgdYqBsOKHo2jivJrynoQiek7HUayBXFWKZveaeuoDw60BH/His27KA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(39860400002)(376002)(346002)(366004)(396003)(136003)(7696005)(8676002)(186003)(33656002)(26005)(4326008)(71200400001)(8936002)(316002)(110136005)(54906003)(9686003)(2906002)(83380400001)(76116006)(30864003)(55016002)(53546011)(478600001)(19627235002)(966005)(5660300002)(86362001)(66556008)(66946007)(66476007)(52536014)(64756008)(66446008)(6506007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?NlBsR2oreStoMXhWZU9ZV1JiNGVDTUdIUDNMQVlINE82TFdwZ0hIdkk1bFY2?= =?utf-8?B?Z1BEM0pIRlk4cXlLRFpnZ3lWN3F6b3JFWTRtUFhWQTV5czVRY1NvZ2NnbjIw?= =?utf-8?B?dmQ2QlJuUUQwMFlIUmdxdTBGUThBejdhaUFHZU8wOExkZ3RKOUxaWFMra2JD?= =?utf-8?B?OFlHK3cvU2VwcldLOHQvSktSdXgyKzZGUDRFcTJ2bWFZbEdWSHQzdXp4cTdB?= =?utf-8?B?TW92b2srU0xuS1VRQUdMeDk4WUlHNEN6S0l1dFloYTduYUp0UnVRQ2o3TnBL?= =?utf-8?B?di9tSFZIckNvcStBemgxWUR1WStFUnJiOTcwM1JvM2tUeThWaW4yRHc0WWxq?= =?utf-8?B?ZkZ0UW4xTlB5dFhmR3FJNnBPdFVvd2FSbXpQcE9wOWYxOWc1eWVPK29mNkM0?= =?utf-8?B?Y3Q0UzM2NnlkdTh0MjZ1dnA5U3NnYTNteEJoSDVPQmhFaVNVdXVpYlhtY0Ni?= =?utf-8?B?NS9iQVVUSHg3S0QxOXZmcG1HUUVBQlVOcXorNjJsTDZWTWFLeUVFVk5sN3Jk?= =?utf-8?B?Y0t4MVk5ZUZPYzNETnV1OUNjR0VrOTk3bHYvenZXVUJzc1VHdXJBQnNPdUFp?= =?utf-8?B?aWlYTkhjQi9rSktRN09tbzhrR1JhVGZYL0lGYlNIREJ1anRpak91VTVoZ3RU?= =?utf-8?B?NXlzOXliaGdCczdONytjUzFwZHRKZzlHY1RrRFl2c3owaHhhK1BadTFZVUlG?= =?utf-8?B?ZVhvbEpCQUhvZHMwMzl1bzV2RUpreEN0R1E1N3U2VzNhNG9HTFE5WW1zNGY2?= =?utf-8?B?QWZCMVZkaU9PRHJCamJxcnp1RWpoTytrYVFmbmhQVXVDMi80YTQ2QUw0MkZN?= =?utf-8?B?VUVVWVNSQ3VINzJvblZuUTdnTzMxSVdVSTRaRzhtK1owWm5mbG1pekgwZmZF?= =?utf-8?B?cjBMOFJXOTR0Q0tSbVBFMUt3d1IrTENpdVJ0SmhCeUFrdGQ3aGp1MGY2SjJs?= =?utf-8?B?WTc3VkFpR0l2RkUrRklESEZqa2o4Q0N1d1E1YWdqL25ZbzIwM2pzOStTN0xM?= =?utf-8?B?WFZzY1kwamNSeU4rczFyWExuSnE5RjN2ZkxjL3grYUlOeElJdWswbGlTRHRz?= =?utf-8?B?SGZaYWd4a0cyMHYxeitNeDd6RFNyZmo0MUdUQzdaWnFPeHNrbUlIU21xVVlS?= =?utf-8?B?bEpQc216ajhKN0xTRXNJajlIbDRKRFN3MlRLTUZPZW9PaXgrWmhCS0NRT3ha?= =?utf-8?B?VEJjdkJNTnpUMkpGVzIzSjk5SlhIWUc3eUE2ZXNneVorZUZYZnl5a1B3RE9q?= =?utf-8?B?cmNPTUNnc1VMbkhYa1ZtUDN1Ukhva0RWUFBOcXkwbllGZm1qTmFtT2tzYnlU?= =?utf-8?Q?izaLzzeYEIZso=3D?= X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: e667395d-8a2b-4931-ab7b-08d8a588dbf2 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Dec 2020 08:17:29.6554 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: SSENKjIObkRZjBcp9IeKpeGyCKannIQjbmJy67QU4Zo494WQtxoMhwnvMRAjrOqXH4nxnC+5Il7mrhwKzSPYOA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CS1PR8401MB0997 X-OriginatorOrg: hpe.com X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.343,18.0.737 definitions=2020-12-21_02:2020-12-19,2020-12-21 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 suspectscore=0 impostorscore=0 phishscore=0 clxscore=1015 bulkscore=0 mlxlogscore=999 spamscore=0 mlxscore=0 priorityscore=1501 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2012210058 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TWlrZSwgcmVzcG9uc2UgaW4gYmVsb3cuIEFsc28gdjkgaXMgc2VudC4NCg0KVGhhbmtzIGZvciBy ZXZpZXcgdGhpcyBpbiBkZXRhaWwuDQpBYm5lcg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+IEZyb206IEtpbm5leSwgTWljaGFlbCBEIFttYWlsdG86bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb21dDQo+IFNlbnQ6IE1vbmRheSwgRGVjZW1iZXIgMjEsIDIwMjAgMzo0MyBBTQ0KPiBU bzogQ2hhbmcsIEFibmVyIChIUFMgU1cvRlcgVGVjaG5vbG9naXN0KSA8YWJuZXIuY2hhbmdAaHBl LmNvbT47DQo+IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFl bC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IENjOiBTZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWlj cm9zb2Z0LmNvbT47IEJyZXQgQmFya2VsZXcNCj4gPEJyZXQuQmFya2VsZXdAbWljcm9zb2Z0LmNv bT47IEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+OyBMYXN6bG8NCj4gRXJzZWsgPGxlcnNl a0ByZWRoYXQuY29tPjsgTGVpZiBMaW5kaG9sbSA8bGVpZkBudXZpYWluYy5jb20+OyBMaW1pbmcg R2FvDQo+IDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBXYW5nLCBOaWNrbGUgKEhQUyBTVykN Cj4gPG5pY2tsZS53YW5nQGhwZS5jb20+OyBPJ0hhbmxleSwgUGV0ZXIgKEVYTCkgPHBldGVyLm9o YW5sZXlAaHBlLmNvbT4NCj4gU3ViamVjdDogUkU6IFtQQVRDSCB2OCAwLzZdIGphbnNzb24gZWRr MiBwb3J0DQo+IA0KPiBIaSBBYm5lciwNCj4gDQo+IFRoZSBpbmNsdWRlIHBhdGggaW4gdGhlIFtJ bmNsdWRlLkNvbW1vbi5Qcml2YXRlXSBzZWN0aW9uIHNob3VsZCBub3QgYmUgaW4NCj4gdGhlIHNh bWUgZmlsZSBwYXRoIGFzIHRoZSBbSW5jbHVkZV0gc2VjdGlvbi4gIFRoaXMgYWxsb3dzIHByaXZh dGUgaW5jbHVkZSBmaWxlcyB0bw0KPiBiZSBhY2Nlc3NlZC4NCj4gDQo+IEluc3RlYWQsIHlvdSBz aG91bGQgY3JlYXRlIGEgbmV3IHRvcCBsZXZlbCBwYWNrYWdlIGRpcmVjdG9yeSBjYWxsZWQNCj4g UHJpdmF0ZUluY2x1ZGUgYW5kIHB1dCBhbGwgbm9uLXB1YmxpYyBpbmNsdWRlIGNvbnRlbnQgaW4g dGhhdCBkaXJlY3RvcnkuICBUaGUNCj4gVW5pdFRlc3RGcmFtZXdvcmtQa2cgaXMgYSBnb29kIHJl ZmVyZW5jZSB0aGF0IGRlbW9uc3RyYXRlcyB0aGlzIGRlc2lnbg0KPiBwYXR0ZXJuLg0KWWVzLCB0 aGlzIGxvb2tzIGJldHRlci4gQWxsIENydCBoZWFkZXIgZmlsZXMgYW5kIENydExpYi5oIHdpbGwg YmUgbW92ZWQgdG8gdW5kZXIgUHJpdmF0ZUluY2x1ZGUuDQo+IA0KPiBUaGUgbGlicmFyeSBjbGFz cyBuYW1lIENydExpYiBpcyB2ZXJ5IGdlbmVyaWMgYW5kIHRoZSBsaWJyYXJ5IGNsYXNzIGlzIGlu IHRoZQ0KPiBwdWJsaWMgaW5jbHVkZXMgc28gaXQgaXMgZXhwb3J0ZWQgYXMgYSBwdWJsaWMgaW50 ZXJmYWNlIGZyb20gdGhlIFJlZGZpc2hQa2cuDQo+IFRoaXMgQ3J0TGliIGltcGxlbWVudGF0aW9u IGFwcGVhcnMgdG8gYmUgdHVuZWQgdG8gc3VwcG9ydCB0aGUNCj4gZGVwZW5kZW5jaWVzIGZvciB0 aGUgamFuc3NvbiBzdWJtb2R1bGUuICBJIHJlY29tbWVuZCBjaGFuZ2luZyB0aGUgbGlicmFyeQ0K PiBjbGFzcyBuYW1lIGFuZCB0aGUgbGlicmFyeSBpbnN0YW5jZSBuYW1lIHNvIGl0IGlzIGNsZWFy IHRoYXQgdGhpcyBDcnRMaWIgaXMgb25seQ0KPiBmb3IgamFuc3Nvbi4NCj4gUGVyaGFwcyAnSmFu c3NvbkNydExpYicuIA0KVGhlIENydExpYiBpcyBub3QgdXNlZCBieSBqYW5uc29uIGxpYiwgbGli cmVkZmlzaCBhcyB3ZWxsIChodHRwczovL2dpdGh1Yi5jb20vRE1URi9saWJyZWRmaXNoKS4gU28g SmFuc3NvbkNydExpYiBpcyBub3QgYSBnb29kIG5hbWluZywgd2lsbCBrZWVwIHRoYXQgYXMgaXQu DQoNCj5BbHNvLCBkb2VzIHRoaXMgbGlicmFyeSBjbGFzcyAoQ3J0TGliLmgpIG5lZWQgdG8gYmUN Cj4gZXhwb3J0ZWQgZnJvbSBSZWRmaXNoUGtnIGFzIGEgcHVibGljIGludGVyZmFjZT8NCk5vLCBp dCB3aWxsIGJlIG1vdmVkIHRvIHVuZGVyIFByaXZhdGVJbmNsdWRlLg0KDQpJZiBDcnRMaWIuaCBp cyBkZWZpbmVkIGFzIGEgcHJpdmF0ZSBsaWJyYXJ5IGFuZCBDcnRMaWIuaCBpcyBpbiBQcml2YXRl SW5jbHVkZSB3aGljaCBpcyBub3QgZXhwb3NlZCB0byBvdGhlciBwYWNrYWdlcywgdGhlbiB3aHkg ZG8gd2UgY2FyZSBhYm91dCB0aGUgbmFtaW5nIG9mIENydExpYiBpcyB0b28gZ2VuZXJpYz8gV2hp Y2ggaXMgdGhlIHByaXZhdGUgbGlicmFyeSB1bmRlciBSZWRmaXNoUGtnLg0KTW92ZSB0aG9zZSBo ZWFkZXIgZmlsZXMgdG8gdW5kZXIgUHJpdmF0ZUluY2x1ZGUgc2VlbXMgY2xlYXIgdG8gcGVvcGxl IHRoYXQgQ3J0TGliIGlzIG9ubHkgZm9yIFJlZGZpc2hQa2cuIEkgdGhpbmsgd2UgZG9u4oCZdCBo YXZlIHRvIGNoYW5nZSB0aGUgbmFtaW5nIGluIHRoaXMgY2FzZS4NCg0KPiANCj4gKiBSZWRmaXNo UGtnL0luY2x1ZGUvTGlicmFyeS9DcnRMaWIuaA0KPiAgICsgUmVtb3ZlIHJlZmVyZW5jZSB0byBN REVfQ1BVX0lBNjQuICBUaGlzIGhhcyBiZWVuIHJldGlyZWQgZnJvbSB0aGUNCj4gZWRrMiByZXBv Lg0KT2suDQo+ICAgKyBJIGRvIHNlZSBvbmUgcmVtYWluaW5nIHJlZmVyZW5jZSB0byB0aGlzIGlu IHRoZSBDcnlwdG9Qa2cgdGhhdCBuZWVkIHRvIGJlDQo+ICAgICByZW1vdmVkLg0KPiANCj4gKiBS ZWRmaXNoUGtnL0luY2x1ZGUvTGlicmFyeS9Kc29uTGliLmgNCj4gICArIFNvbWUgb2YgdGhlIGZ1 bmN0aW9uIGRlc2NyaXB0aW9ucyBhcmUgdmVyeSBicmllZiBhbmQgSSBjYW4gbm90IHRlbGwNCj4g ICAgIGhvdyB0byB1c2UgdGhlIHNlcnZpY2UgZnJvbSB0aGUgZGVzY3JpcHRpb24gYW5kIG1vcmUg aW1wb3J0YW50bHksIEkNCj4gICAgIHdvdWxkIG5vdCBrbm93IGhvdyB0byB3cml0ZSBhIHVuaXQg dGVzdCB0byB2ZXJpZnkgdGhlIGV4cGVjdGVkIGJlaGF2aW9yLg0KPiAgICAgU2luY2UgdGhlc2Ug YXJlIGEgc2V0IG9mIHB1YmxpYyBBUElzIGZyb20gdGhpcyBwYWNrYWdlIHRoYXQgeW91DQo+ICAg ICBleHBlY3QgbW9kdWxlcy9saWJzIGZyb20gb3V0c2lkZSBvZiBSZWRmaXNoUGtnIHRvIHVzZSwg dGhlbiBhbGwgb2YNCj4gICAgIHRoZXNlIHB1YmxpYyBBUElzIG11c3QgYmUgZnVsbHkgZG9jdW1l bnRlZC4NCk1vc3Qgb2YgdGhlIEFQSSBpbiBKc29uTGliIGFyZSB3cmFwcGVycyBvZiBuYXRpdmUg amFuc3NvbiBBUElzLiBXZSBjYW4gbWVudGlvbiB0aGUgVVJMIHRvIGphbnNzb24gQVBJIHJlZmVy ZW5jZSBkb2N1bWVudCBpbiBmaWxlIGhlYWRlci4gaHR0cHM6Ly9qYW5zc29uLnJlYWR0aGVkb2Nz LmlvL2VuLzIuMTMvaW5kZXguaHRtbA0KSSB3aWxsIHJldmlldyBhbGwgZnVuY3Rpb24gaGVhZGVy IGFnYWluLCAgcGxlYXNlIGNoZWNrIHY5IHBhdGNoIGxhdGVyLg0KDQo+ICAgKyBBcmUgdGhlcmUg YW55IG9mIHRoZXNlIEFQSXMgdGhhdCBhcmUgbm90IHJlYWxseSBuZWVkZWQgYnkgbW9kdWxlcy9s aWJzDQo+ICAgICBvdXRzaWRlIHRoZSBSZWRmaXNoUGtnPyAgSXQgd291bGQgYmUgYmV0dGVyIHRv IHJlbW92ZSBBUElzIHRoYXQgYXJlDQo+ICAgICBub3QgbmVlZGVkIG91dHNpZGUgUmVkZmlzaFBr ZyBmcm9tIHRoaXMgcHVibGljIGluY2x1ZGUgZmlsZS4NCj4gICArIEEgY291cGxlIGV4YW1wbGVz IHRoYXQgc3Rvb2Qgb3V0IGFyZToNCj4gICAgIEpzb25EZWNyZWFzZVJlZmVyZW5jZSgpDQo+ICAg ICBKc29uSW5jcmVhc2VSZWZlcmVuY2UoKQ0KPiAgICAgSnNvbk9iamVjdEl0ZXJhdG9yKCkNCj4g ICAgIEpzb25PYmplY3RJdGVyYXRvclZhbHVlKCkNCj4gICAgIEpzb25PYmplY3RJdGVyYXRvck5l eHQoKQ0KVGhlIG5hdGl2ZSBqYW5zc29uIEFQSXMgb2YgYWxsIGFib3ZlIHdyYXBwZXJzIGFyZSB1 c2VkIGluIGxpYnJlZGZpc2guIFNvIHRoYXQgaXMgdGhlIHBvdGVudGlhbCB1c2UgY2FzZSBmb3Ig b3RoZXIgSlNPTiBhcHBsaWNhdGlvbnMuDQoNCj4gICArIEpzb25EdW1wU3RyaW5nKCkNCj4gICAg IGZ1bmMgaGVhZGVyIHBhcmFtcyBkbyBub3QgbWF0Y2ggZnVuYyBwcm90b3R5cGUNCj4gICAgIERv ZXMgbm90IGRlc2NyaWJlIHdobyBhbGxvY2F0ZXMgdGhlIHJldHVybiBidWZmZXIgYW5kIHdobw0K PiAgICAgaXMgcmVzcG9uc2libGUgZm9yIGZyZWVpbmcgdGhlIGJ1ZmZlciByZXR1cm5lZC4NCj4g ICAgIFdoYXQgZG8gRmxhZ3MgZG8/ICBXaGF0IGlzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhp cw0KPiAgICAgZnVuY3Rpb24gYW5kIEpzb25Ub1RleHQoKT8NCkluIEpzb25Ub1RleHQsIGl0IG9u bHkgY29udmVydHMgSlNPTiBhcnJheSBhbmQgb2JqZWN0IHRvIHRleHQuIFdlIGNvdWxkIGp1c3Qg cmVtb3ZlIHRoaXMgZm9yIG5vdyBiZWNhdXNlIEkgZG9u4oCZdCByZWFsbHkgcmVtZW1iZXIgdGhl IHJlYXNvbiB0byBjcmVhdGUgdGhpcyBmdW5jdGlvbiwgaXQgaGFzIGJlZW4gYSB3aGlsZS4gU2Vl bXMgdG8gbWUgaXQgaXMgZmluZSB0byByZW1vdmUgdGhpcyBmdW5jdGlvbi4NCg0KPiAgICsgSnNv bkxvYWRCdWZmZXIoKSAtIEVycm9yIHBhcmFtIGRlc2NyaXB0aW9uIG1pc3NpbmcNCj4gICArIEpz b25BcnJheUdldFZhbHVlKCkgZG9lcyBub3QgZGVzY3JpYmUgdGhlIGNvbmRpdGlvbnMgTlVMTA0K PiAgICAgaXMgcmV0dXJuZWQuDQo+ICAgKyBKc29uT2JqZWN0R2V0S2V5cygpLiAgUmV0dXJuIHR5 cGUgaXMgQ0hBUjgqKi4gIFdoYXQNCj4gICAgIGZ1bmN0aW9uIG5lZWQgdG8gYmUgY2FsbGVkIHRv IGZyZWUgdGhlIGFycmF5Pw0KQWxsIGFib3ZlIGFkZHJlc3NlZC4NCg0KPiAgICsgSnNvblZhbHVl R2V0QXNjaWlTdHJpbmcoKSBhbmQgSnNvblZhbHVlR2V0VW5pY29kZVN0cmluZygpDQo+ICAgICBh cmUgYXN5bW1ldHJpYy4gIFRoZSBBc2NpaSBvbmUgc3RhdGVzIHRoYXQgY2hhbmdlIHdpbGwNCj4g ICAgIG1vZGlmeSB0aGUgb3JpZ2luYWwgc3RyaW5nLiAgVGhlIFVuaWNvZGUgb25lIHNheXMgdGhh dCB0aGUNCj4gICAgIGNhbGxlciBuZWVkcyB0byBmcmVlIHRoZSByZXR1cm5lZCBzdHJpbmcuICBB bnkgcmVhc29uIHdlDQo+ICAgICBjYW4gbm90IG1ha2UgdGhlbSBzeW1tZXRyaWM/IA0KSmFuc3Nv biBkb2Vzbid0IHN1cHBvcnQgVW5pY29kZSBzdHJpbmcuIFRoZSBtZW1vcnkgb2YgdGhlIHVuaWNv ZGUgc3RyaW5nIHJldHVybmVkIGJ5IEpzb25WYWx1ZUdldFVuaWNvZGVTdHJpbmcNCklzIGFsbG9j YXRlZCBieSBVVEY4U3RyVG9VQ1MyKCkuDQogPiBBbHNvLCBpZiBBc2NpaSBvbmUgc2hvdWxkDQo+ ICAgICBub3QgYmUgbW9kaWZpZWQsIHdoeSBpc27igJl0IHRoZSByZXR1cm4gdHlwZSBDT05TVD8N Clllcy4gd2lsbCBkbyB0aGF0Lg0KDQo+IA0KPiAqIFJlZGZpc2hQa2cvTGlicmFyeS9CYXNlVWNz MlV0ZjhMaWIvQmFzZVVjczJVdGY4TGliLmluZg0KPiAgICsgQ2hhbmdlIFtTb3VyY2VzLmNvbW1v bl0gdG8gW1NvdXJjZXNdDQpkb25lDQo+ICogUmVkZmlzaFBrZy9MaWJyYXJ5L0NydExpYi9DcnRM aWIuaW5mDQo+ICAgKyBEb2VzIHRoaXMgbGliIGluc3RhbmNlIHJlYWxseSBkZXBlbmQgb24gTWRl TW9kdWxlUGtnPw0KWWVzLCBTb3J0TGliDQo+ICAgKyBIYXZlIHlvdSByZXZpZXdlZCB0aGUgbW9k dWxlIHR5cGVzIHRoaXMgbGliIGluc3RhbmNlIGlzDQo+ICAgICBjb21wYXRpYmxlIHdpdGg/ICBX aHkgZG9lcyBpdCBuZWVkIHRvIHN1cHBvcnQgRFhFX0NPUkU/DQo+ICAgICBBcmUgdGhlaXIgSnNv bkxpYiB1c2UgY2FzZXMgZm9yIERYRV9SVU5USU1FIGFuZCBTTU0gZHJpdmVycz8NCj4gICAgIElm IHRoZXJlIGFyZSBTTU0gdXNlIGNhc2VzLCB0aGVuIHdoeSBpcyBNTSBleGNsdWRlZD8NCldpbGwg anVzdCBrZWVwIERYRV9EUlZFUiwgVUVGSV9BUFBMSUNBVElPTiBhbmQgVUVGSV9EUklWRVIuIFRo ZXNlIGFyZSBtb2R1bGUgdHlwZXMgaGF2ZSBwb3RlbnRpYWwgdXNlIGNhc2VzIEkgY2FuIHRoaW5r IG9mIG5vdy4NCj4gDQo+ICogUmVkZmlzaFBrZy9MaWJyYXJ5L0pzb25MaWINCj4gICArIFJlYWRt ZS5yc3Qgc3RpbGwgaGFzIHJlZmVyZW5jZXMgdG8gSmFuc3Nvbkpzb25MaWJNYXBwaW5nLmgNCmRv bmUNCj4gICArIEhhdmUgeW91IHJldmlld2VkIHRoZSBtb2R1bGUgdHlwZXMgdGhpcyBsaWIgaW5z dGFuY2UgaXMNCj4gICAgIGNvbXBhdGlibGUgd2l0aD8gIFdoeSBkb2VzIGl0IG5lZWQgdG8gc3Vw cG9ydCBEWEVfQ09SRT8NCj4gICAgIEFyZSB0aGVpciBKc29uTGliIHVzZSBjYXNlcyBmb3IgRFhF X1JVTlRJTUUgYW5kIFNNTSBkcml2ZXJzPw0KPiAgICAgSWYgdGhlcmUgYXJlIFNNTSB1c2UgY2Fz ZXMsIHRoZW4gd2h5IGlzIE1NIGV4Y2x1ZGVkPw0KQW5zd2VyZWQgYWJvdmUNCj4gICArIEpzb25M aWIuaW5mIGhhcyBhIFtCdWlsZE9wdGlvbnNdIHNlY3Rpb24gdGhhdCBkaXNhYmxlcyBzb21lIHdh cm5pbmdzIHRoYXQNCj4gICAgIG1ha2UgbWUgY29uY2VybmVkIHRoYXQgdGhpcyBsaWJyYXJ5IG1h eSBoYXZlIHNvbWUgaXNzdWVzIHdpdGggMzItYml0DQo+IGJ1aWxkcy4NCj4gICAgIEhhdmUgeW91 IGZ1bGx5IHZhbGlkYXRlZCBhbGwgMzItYml0IENQVSBidWlsZHMgYW5kIHZhbGlkYXRlZCB0aGUg ZnVuY3Rpb25hbGl0eQ0KPiAgICAgb2YgYWxsIHNlcnZpY2VzIGZyb20gdGhlIEpzb25MaWIgZm9y IGFsbCByYW5nZXMgb2YgaW5wdXQgdmFsdWVzPw0KWWVzLCBJQTMyIGJ1aWxkIGlzIHZhbGlkYXRl ZC4gQnV0IG5vdCB2YWxpZGF0aW5nIG9uIHRoZSBmdW5jdGlvbmFsaXRpZXMgSUEzMi4gSSBkb24n dCBoYXZlIHRoYXQgdXNlIGNhc2UsIHdlIGNhbiBnZXQgYmFjayB0byBmaXggdGhlIGlzc3VlIGlm IGFueSB3aGVuICBzb21lb25lIHJ1bnMgdGhpcyBvbiBJQTMyLg0KPiANCj4gKiBSZWRmaXNoTGli cy5kc2MuaW5jDQo+ICAgSXQgaXMgYmV0dGVyIHRvIGFkZCBbTGlicmFyeUNsYXNzZXNdIHN0YXRl bWVudCB0byB0aGlzIGZpbGUsIHNvIGl0DQo+ICAgY2FuIGJlIGluY2x1ZGUgYW55d2hlcmUgaW4g YSBEU0MgZmlsZS4gIFdpdGggY3VycmVudCBpbXBsZW1lbnRhdGlvbg0KPiAgIGlmIGl0IGlzIG5v dCBpbmNsdWRlZCB3aXRoaW4gYSBbTGlicmFyeUNsYXNzZXNdIHNlY3Rpb24sIGl0IHdpbGwNCj4g ICBnZW5lcmF0ZSBhIGJ1aWxkIGVycm9yLiANCkkgd2lsbCBzZXBhcmF0ZSB0aGlzIHRvIGFub3Ro ZXIgc2V0IG9mIHBhdGNoLiBEb27igJl0IG1peCB1cCB3aXRoIGphbnNzb24gZWRrMiBwb3J0Lg0K DQo+WW91IG1pZ2h0IGFsc28gY29uc2lkZXIgY2hhbmdpbmcgdGhlIG5hbWUNCj4gICBvZiB0aGlz IGZpbGUgaW4gY2FzZSB5b3Ugd2FudCB0byBhZGQgbW9yZSB0aGFuIGp1c3QgbGliIG1hcHBpbmdz DQo+ICAgdG8gdGhpcyBmaWxlIGluIHRoZSBmdXR1cmUuICBTZWUgVW5pdFRlc3RGcmFtd29ya1Br ZyBmb3IgZXhhbXBsZXMuDQo+IA0KPiBCZXN0IHJlZ2FyZHMsDQo+IA0KPiBNaWtlDQo+IA0KPiA+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogQWJuZXIgQ2hhbmcgPGFibmVy LmNoYW5nQGhwZS5jb20+DQo+ID4gU2VudDogVGh1cnNkYXksIERlY2VtYmVyIDE3LCAyMDIwIDU6 MTkgQU0NCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiBDYzogU2VhbiBCcm9nYW4g PHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+OyBCcmV0IEJhcmtlbGV3DQo+ID4gPEJyZXQuQmFy a2VsZXdAbWljcm9zb2Z0LmNvbT47IEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+OyBMYXN6 bG8NCj4gPiBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+OyBMZWlmIExpbmRob2xtIDxsZWlmQG51 dmlhaW5jLmNvbT47IEtpbm5leSwNCj4gPiBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tPjsgTGltaW5nIEdhbw0KPiA+IDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBOaWNr bGUgV2FuZyA8bmlja2xlLndhbmdAaHBlLmNvbT47DQo+IFBldGVyDQo+ID4gTydIYW5sZXkgPHBl dGVyLm9oYW5sZXlAaHBlLmNvbT4NCj4gPiBTdWJqZWN0OiBbUEFUQ0ggdjggMC82XSBqYW5zc29u IGVkazIgcG9ydA0KPiA+DQo+ID4gSW4gdjgsIC0gQXNzaWduZSBwYXRjaCBmaWxlIG9yZGVyDQo+ ID4gICAgICAgIC0gQWRkIEFja2VkLWJ5IHRhZ3MNCj4gPiBJbiB2NywgLSBSZW1vdmUgQyBSVEMg aGVhZGVyIGZpbGVzIHRvIHVuZGVyIFtJbmNsdWRlLkNvbW1vbi5Qcml2YXRlXQ0KPiA+ICAgICAg ICAgIGluIFJlZGZpc2hQa2cuZGVjLg0KPiA+ICAgICAgICAtIGFkZHJlc3MgY29tbWVudHMgZ2l2 ZW4gYnkgTWlrZSBLaW5uZXkuDQo+ID4gSW4gdjYsIFJlbW92ZSBKYW5zc29uSnNvbk1hcHBpbmcu aA0KPiA+IEluIHY1LCBtb3ZlIEJhc2VVY3MyVXRmOExpYiB0byB1bmRlciBSZWRmaXNoUGtnLg0K PiA+IEluIHY0LA0KPiA+ICAgICAgICAtIEFkZHJlc3MgcmV2aWV3IGNvbW1lbnRzDQo+ID4gICAg ICAgIC0gU2VwZXJhdGUgQ1JUIGZ1bmN0aW9ucyB0byBhIGluZGl2aWR1bGUgbGlicmFyeSBDcnRM aWIgdW5kZXINCj4gPiAgICAgICAgICBSZWRmaXNoUGtnLg0KPiA+ICAgICAgICAtIFNlcGVyYXRl IFVDUzItVVRGOCBmdW5jdGlvbnMgdG8gYSBpbmRpdmlkdWxlIGxpYnJhcnkNCj4gPiAgICAgICAg ICBCYXNlVWNzMlV0ZjhMaWIgdW5kZXIgTWRlTW9kdWxlUGtnLg0KPiA+DQo+ID4gSW4gdjMsIEFk ZCBqYW5zc29uIGxpYnJhcnkgYXMgdGhlIHJlcXVpcmVkIHN1Ym1vdWRsZSBpbg0KPiA+ICAgICAg ICBDaVNldHRpbmdzLnB5IGZvciBDSSB0ZXN0Lg0KPiA+IEluIHYyLCBKc29uTGliIGlzIG1vdmVk IHRvIHVuZGVyIFJlZGZpc2hQa2cuDQo+ID4NCj4gPiBlZGsyIEpTT04gbGlicmFyeSBpcyBiYXNl ZCBvbiBqYW5zc29uIG9wZW4gc291cmNlDQo+ID4gKGh0dHBzOi8vZ2l0aHViLmNvbS9ha2hlcm9u L2phbnNzb24pIGFuZCB3cmFwcGVkIGFzIGFuIGVkazIgbGlicmFyeS4NCj4gPiBlZGsyIEpzb25M aWIgd2lsbCBiZSB1c2VkIGJ5IGVkazIgUmVkZmlzaCBmZWF0dXJlIGRyaXZlcnMgKG5vdA0KPiA+ IGNvbnRyaWJ1dGVkIHlldCkgYW5kIHRoZSBlZGsyIHBvcnQgb2YgbGlicmVkZmlzaCBsaWJyYXJ5 IChub3QNCj4gPiBjb250cmlidXRlZCB5ZXQpIGJhc2VkIG9uIERNVEYgR2l0SHViDQo+ID4gKGh0 dHBzOi8vZ2l0aHViLmNvbS9ETVRGL2xpYnJlZGZpc2gpLg0KPiA+DQo+ID4gSmFuc3NvbiBpcyBs aWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UocmVmZXIgdG8gUmVhZE1lLnJzdCB1bmRlciBl ZGsyKS4NCj4gPiBJdCBpcyB1c2VkIGluIHByb2R1Y3Rpb24gYW5kIGl0cyBBUEkgaXMgc3RhYmxl LiBJbiBVRUZJL0VES0lJDQo+ID4gZW52aXJvbm1lbnQsIFJlZGZpc2ggcHJvamVjdCBjb25zdW1l cyBqYW5zc29uIHRvIGFjaGlldmUgSlNPTg0KPiBvcGVyYXRpb25zLg0KPiA+DQo+ID4gKiBKYW5z c29uIHZlcnNpb24gb24gZWRrMjogMi4xMy4xDQo+ID4NCj4gPiAqIEVES0lJIGphbnNzb24gbGli cmFyeSB3cmFwcGVyOg0KPiA+ICAgIC0gSnNvbkxpYi5oOg0KPiA+ICAgICAgVGhpcyBpcyB0aGUg ZGVuaWZpdGlvbnMgb2YgRURLSUkgSlNPTiBBUElzIHdoaWNoIGFyZSBtYXBwZWQgdG8NCj4gPiAg ICAgIGphbm5zb24gZnVuY2l0b25zIGFjY29yZGluZ2x5Lg0KPiA+DQo+ID4gICAgLSBKYW5zc29u SnNvbkxpYk1hcHBpbmcuaDoNCj4gPiAgICAgIFRoaXMgaXMgdGhlIHdyYXBwZXIgZmlsZSB0byBt YXAgZnVuY2l0b25zIGFuZCBkZWZpbml0aW9ucyB1c2VkIGluDQo+ID4gICAgICBuYXRpdmUgamFu bnNvbiBhcHBsaWNhdGlvbnMgdG8gZWRrMiBKc29uTGliLiBUaGlzIGF2b2lkcyB0aGUNCj4gPiAg ICAgIG1vZGlmaWNhdGlvbnMgb24gbmF0aXZlIGphbm5zb24gYXBwbGljYXRpb25zIHRvIGJlIGJ1 aWx0IHVuZGVyDQo+ID4gICAgICBlZGsyIGVudmlyb25tZW50Lg0KPiA+DQo+ID4gKktub3duIGlz c3VlOg0KPiA+ICAgQnVpbGQgZmFpbCB3aXRoIGphbnNzb24vc3JjL2xvYWQuYywgb3ZlcnJyaWRl IGFuZCBhZGQgY29kZSBpbiBsb2FkLmMNCj4gPiAgIHRvIGNvbmRpdGlvbmFsbHkgdXNlIHN0ZGlu IGFjY29yZGluZyB0byBIQVZFX1VOSVNURF9IIG1hY3JvLg0KPiA+ICAgVGhlIFBSIGlzIHN1Ym1p dHRlZCB0byBqYW5zc29uIG9wZW4gc291cmNlIGNvbW11bml0eS4NCj4gPiAgIGh0dHBzOi8vZ2l0 aHViLmNvbS9ha2hlcm9uL2phbnNzb24vcHVsbC81NTgNCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6 IEFibmVyIENoYW5nIDxhYm5lci5jaGFuZ0BocGUuY29tPg0KPiA+DQo+ID4gQ2M6IFNlYW4gQnJv Z2FuIDxzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tPg0KPiA+IENjOiBCcmV0IEJhcmtlbGV3IDxC cmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+DQo+ID4gQ2M6IEFuZHJldyBGaXNoIDxhZmlzaEBh cHBsZS5jb20+DQo+ID4gQ2M6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4g Q2M6IExlaWYgTGluZGhvbG0gPGxlaWZAbnV2aWFpbmMuY29tPg0KPiA+IENjOiBNaWNoYWVsIEQg S2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBDYzogTGltaW5nIEdhbyA8 Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiA+IENjOiBOaWNrbGUgV2FuZyA8bmlja2xlLndh bmdAaHBlLmNvbT4NCj4gPiBDYzogUGV0ZXIgTydIYW5sZXkgPHBldGVyLm9oYW5sZXlAaHBlLmNv bT4NCj4gPg0KPiA+IEFibmVyIENoYW5nICg2KToNCj4gPiAgIFJlZGZpc2hQa2cvVWNzMlV0Zjhs aWI6IFVDUzIgdG8gVUZUOCBtYW5pcHVsYXRpb24gbGlicmFyeQ0KPiA+ICAgZWRrMjogamFuc3Nv biBzdWJtb2R1bGUgZm9yIGVkazIgSlNPTiBsaWJyYXJ5DQo+ID4gICBSZWRmaXNoUGtnL0NydExp YjogQyBydW50aW1lIGxpYnJhcnkNCj4gPiAgIFJlZGZpc2hQa2cvbGlicmFyeTogRURLMiBwb3J0 IG9mIGphbnNzb24gbGlicmFyeQ0KPiA+ICAgUmVkZmlzaFBrZzogQWRkIEVESzIgcG9ydCBvZiBq YW5zc29uIGxpYnJhcnkgdG8gYnVpbGQNCj4gPiAgIC5weXRvb2w6IEFkZCByZXF1aXJlZCBzdWJt b2R1bGUgZm9yIEpzb25MaWINCj4gPg0KPiA+ICAuZ2l0bW9kdWxlcyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAzICsNCj4gPiAgLnB5dG9vbC9DSVNldHRpbmdzLnB5ICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArDQo+ID4gIFJlYWRNZS5yc3QgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKw0KPiA+ICBSZWRmaXNoUGtnL0luY2x1 ZGUvQ3J0L2Fzc2VydC5oICAgICAgICAgICAgICAgfCAgIDE2ICsNCj4gPiAgUmVkZmlzaFBrZy9J bmNsdWRlL0NydC9lcnJuby5oICAgICAgICAgICAgICAgIHwgICAxNiArDQo+ID4gIFJlZGZpc2hQ a2cvSW5jbHVkZS9DcnQvbGltaXRzLmggICAgICAgICAgICAgICB8ICAgMTYgKw0KPiA+ICBSZWRm aXNoUGtnL0luY2x1ZGUvQ3J0L21hdGguaCAgICAgICAgICAgICAgICAgfCAgIDE2ICsNCj4gPiAg UmVkZmlzaFBrZy9JbmNsdWRlL0NydC9zdGRhcmcuaCAgICAgICAgICAgICAgIHwgICAxNSArDQo+ ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3RkZGVmLmggICAgICAgICAgICAgICB8ICAgMTYg Kw0KPiA+ICBSZWRmaXNoUGtnL0luY2x1ZGUvQ3J0L3N0ZGlvLmggICAgICAgICAgICAgICAgfCAg IDE1ICsNCj4gPiAgUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9zdGRsaWIuaCAgICAgICAgICAgICAg IHwgICAxNiArDQo+ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvc3RyaW5nLmggICAgICAgICAg ICAgICB8ICAgMTYgKw0KPiA+ICBSZWRmaXNoUGtnL0luY2x1ZGUvQ3J0L3N5cy90aW1lLmggICAg ICAgICAgICAgfCAgIDE1ICsNCj4gPiAgUmVkZmlzaFBrZy9JbmNsdWRlL0NydC9zeXMvdHlwZXMu aCAgICAgICAgICAgIHwgICAxNSArDQo+ID4gIFJlZGZpc2hQa2cvSW5jbHVkZS9DcnQvdGltZS5o ICAgICAgICAgICAgICAgICB8ICAgMTUgKw0KPiA+ICBSZWRmaXNoUGtnL0luY2x1ZGUvTGlicmFy eS9CYXNlVWNzMlV0ZjhMaWIuaCAgfCAgIDYxICsNCj4gPiAgUmVkZmlzaFBrZy9JbmNsdWRlL0xp YnJhcnkvQ3J0TGliLmggICAgICAgICAgIHwgIDE5MSArKysNCj4gPiAgUmVkZmlzaFBrZy9JbmNs dWRlL0xpYnJhcnkvSnNvbkxpYi5oICAgICAgICAgIHwgIDc2MyArKysrKysrKysrKw0KPiA+ICAu Li4vTGlicmFyeS9CYXNlVWNzMlV0ZjhMaWIvQmFzZVVjczJVdGY4TGliLmMgfCAgNDIxICsrKysr KysNCj4gPiAgLi4uL0Jhc2VVY3MyVXRmOExpYi9CYXNlVWNzMlV0ZjhMaWIuaW5mICAgICAgIHwg ICAzMSArDQo+ID4gIFJlZGZpc2hQa2cvTGlicmFyeS9DcnRMaWIvQ3J0TGliLmMgICAgICAgICAg ICB8ICA1OTUgKysrKysrKysrDQo+ID4gIFJlZGZpc2hQa2cvTGlicmFyeS9DcnRMaWIvQ3J0TGli LmluZiAgICAgICAgICB8ICAgMzggKw0KPiA+ICBSZWRmaXNoUGtnL0xpYnJhcnkvSnNvbkxpYi9K c29uTGliLmMgICAgICAgICAgfCAgOTY0ICsrKysrKysrKysrKysrDQo+ID4gIFJlZGZpc2hQa2cv TGlicmFyeS9Kc29uTGliL0pzb25MaWIuaW5mICAgICAgICB8ICAgODkgKysNCj4gPiAgUmVkZmlz aFBrZy9MaWJyYXJ5L0pzb25MaWIvUmVhZG1lLnJzdCAgICAgICAgIHwgICA0MCArDQo+ID4gIFJl ZGZpc2hQa2cvTGlicmFyeS9Kc29uTGliL2phbnNzb24gICAgICAgICAgICB8ICAgIDEgKw0KPiA+ ICBSZWRmaXNoUGtnL0xpYnJhcnkvSnNvbkxpYi9qYW5zc29uX2NvbmZpZy5oICAgfCAgIDQxICsN Cj4gPiAgLi4uL0xpYnJhcnkvSnNvbkxpYi9qYW5zc29uX3ByaXZhdGVfY29uZmlnLmggIHwgICAx OSArDQo+ID4gIFJlZGZpc2hQa2cvTGlicmFyeS9Kc29uTGliL2xvYWQuYyAgICAgICAgICAgICB8 IDExMTEgKysrKysrKysrKysrKysrKysNCj4gPiAgUmVkZmlzaFBrZy9SZWRmaXNoTGlicy5kc2Mu aW5jICAgICAgICAgICAgICAgIHwgICAgMyArDQo+ID4gIFJlZGZpc2hQa2cvUmVkZmlzaFBrZy5j aS55YW1sICAgICAgICAgICAgICAgICB8ICAgMjUgKw0KPiA+ICBSZWRmaXNoUGtnL1JlZGZpc2hQ a2cuZGVjICAgICAgICAgICAgICAgICAgICAgfCAgIDI1ICsNCj4gPiAgUmVkZmlzaFBrZy9SZWRm aXNoUGtnLmRzYyAgICAgICAgICAgICAgICAgICAgIHwgICAgMyArDQo+ID4gIDMzIGZpbGVzIGNo YW5nZWQsIDQ2MTQgaW5zZXJ0aW9ucygrKQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgUmVkZmlz aFBrZy9JbmNsdWRlL0NydC9hc3NlcnQuaCAgY3JlYXRlIG1vZGUNCj4gPiAxMDA2NDQgUmVkZmlz aFBrZy9JbmNsdWRlL0NydC9lcnJuby5oICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBSZWRmaXNo UGtnL0luY2x1ZGUvQ3J0L2xpbWl0cy5oICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBSZWRmaXNo UGtnL0luY2x1ZGUvQ3J0L21hdGguaCAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gUmVkZmlzaFBr Zy9JbmNsdWRlL0NydC9zdGRhcmcuaCAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gUmVkZmlzaFBr Zy9JbmNsdWRlL0NydC9zdGRkZWYuaCAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gUmVkZmlzaFBr Zy9JbmNsdWRlL0NydC9zdGRpby5oICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBSZWRmaXNoUGtn L0luY2x1ZGUvQ3J0L3N0ZGxpYi5oICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBSZWRmaXNoUGtn L0luY2x1ZGUvQ3J0L3N0cmluZy5oICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBSZWRmaXNoUGtn L0luY2x1ZGUvQ3J0L3N5cy90aW1lLmggIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+IFJlZGZpc2hQ a2cvSW5jbHVkZS9DcnQvc3lzL3R5cGVzLmgNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFJlZGZp c2hQa2cvSW5jbHVkZS9DcnQvdGltZS5oICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBSZWRmaXNo UGtnL0luY2x1ZGUvTGlicmFyeS9CYXNlVWNzMlV0ZjhMaWIuaA0KPiA+ICBjcmVhdGUgbW9kZSAx MDA2NDQgUmVkZmlzaFBrZy9JbmNsdWRlL0xpYnJhcnkvQ3J0TGliLmgNCj4gPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IFJlZGZpc2hQa2cvSW5jbHVkZS9MaWJyYXJ5L0pzb25MaWIuaA0KPiA+ICBjcmVh dGUgbW9kZSAxMDA2NDQNCj4gPiBSZWRmaXNoUGtnL0xpYnJhcnkvQmFzZVVjczJVdGY4TGliL0Jh c2VVY3MyVXRmOExpYi5jDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+IFJlZGZpc2hQa2cv TGlicmFyeS9CYXNlVWNzMlV0ZjhMaWIvQmFzZVVjczJVdGY4TGliLmluZg0KPiA+ICBjcmVhdGUg bW9kZSAxMDA2NDQgUmVkZmlzaFBrZy9MaWJyYXJ5L0NydExpYi9DcnRMaWIuYw0KPiA+ICBjcmVh dGUgbW9kZSAxMDA2NDQgUmVkZmlzaFBrZy9MaWJyYXJ5L0NydExpYi9DcnRMaWIuaW5mDQo+ID4g IGNyZWF0ZSBtb2RlIDEwMDY0NCBSZWRmaXNoUGtnL0xpYnJhcnkvSnNvbkxpYi9Kc29uTGliLmMN Cj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFJlZGZpc2hQa2cvTGlicmFyeS9Kc29uTGliL0pzb25M aWIuaW5mDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBSZWRmaXNoUGtnL0xpYnJhcnkvSnNvbkxp Yi9SZWFkbWUucnN0DQo+ID4gIGNyZWF0ZSBtb2RlIDE2MDAwMCBSZWRmaXNoUGtnL0xpYnJhcnkv SnNvbkxpYi9qYW5zc29uDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBSZWRmaXNoUGtnL0xpYnJh cnkvSnNvbkxpYi9qYW5zc29uX2NvbmZpZy5oDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ IFJlZGZpc2hQa2cvTGlicmFyeS9Kc29uTGliL2phbnNzb25fcHJpdmF0ZV9jb25maWcuaA0KPiA+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgUmVkZmlzaFBrZy9MaWJyYXJ5L0pzb25MaWIvbG9hZC5jDQo+ ID4NCj4gPiAtLQ0KPiA+IDIuMTcuMQ0KDQo=