From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web10.3899.1632883371957863682 for ; Tue, 28 Sep 2021 19:42:52 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=ULnheINk; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: ray.ni@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10121"; a="212101121" X-IronPort-AV: E=Sophos;i="5.85,331,1624345200"; d="scan'208";a="212101121" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Sep 2021 19:42:49 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,331,1624345200"; d="scan'208";a="554431676" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by FMSMGA003.fm.intel.com with ESMTP; 28 Sep 2021 19:42:49 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 28 Sep 2021 19:42:49 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Tue, 28 Sep 2021 19:42:49 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.170) 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.2242.12; Tue, 28 Sep 2021 19:42:48 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YvXEawcmrUREJWvQmCCMvLN26QyoAEDSJDDoB1jPV8blZgW62XQyaWJEAMYkknbHCpMcZ7Bhlvy4GBHb6xRnPsZJaaGtDr/psCCvOA7LA9lkpzIcDfr8GRuDTaPrbobrDqPh6pKgRktF8nF8B0PKCDm0FONR55RAmO1R0oM7qmZmhyWiNdmLJ/QE5hOqSdKJKIYfdVXzVNMI/4SwpUNWPq6dOd8hQTQoK3pgZnQuYZx8WJ8X71HsHed4yeVs7SYScLlNaJJl9ndlPbSlKf3OBsBfbaszeIrHgiywoneZeG05QxL1lFCTlYJHZZC7ipzk2F0HARxirtgOuwtREWOTKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=NhVkO/N8tfjNH3srhgRvNcyp4NXv6nHGp3wNW5xWoDQ=; b=dZvOdF69DHxHftVf1iglwcHj6d0EpUO5ZtMtlgX2GoQtUj2oJvuoQwG9sspefwMmhYcmjN7Gxw5FVjPy8OEMYImcZmeKejfOVj3sVTXnSj+Ojx97/oYr/G2+PH2rRAK3zzEYx4ZcD64r08qSSs4sgqpBNuGALqJK/jDwFgcDiNbKEyS2JaPTs+kh0/cQBeiNJdWkMs9F3EmF8d7FKpkbZmkqpCy+1E6gVWn6IHdqnBs378oJwZOf+6smKd3t2ivpJx1PG72y4rFBGC1+rCljCRAnKq/cACBpmDtQTQp/PN1L5wEiZ2mgBm+F+aHyVnvkTaTHisuc5sIr+/P2M/A9PQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NhVkO/N8tfjNH3srhgRvNcyp4NXv6nHGp3wNW5xWoDQ=; b=ULnheINkhLujJ8bHt4iK9uzuDP4XB5isWl14l3CVchYL+LaEzuCRmOWqOq4hm+W7357y7V7u1b0CIb7fuh4/yhHZIclHDF06W37pRW+0e0o8plWLb2+u2D18I1uP80i8qj49xV+XCnUtPdlAcYKCF1GePCjRjmr4CSL43fB7NbM= Received: from CY4PR1101MB2072.namprd11.prod.outlook.com (2603:10b6:910:1d::15) by CY4PR11MB1798.namprd11.prod.outlook.com (2603:10b6:903:11b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.13; Wed, 29 Sep 2021 02:42:46 +0000 Received: from CY4PR1101MB2072.namprd11.prod.outlook.com ([fe80::7dc5:34b5:bbff:832f]) by CY4PR1101MB2072.namprd11.prod.outlook.com ([fe80::7dc5:34b5:bbff:832f%8]) with mapi id 15.20.4544.022; Wed, 29 Sep 2021 02:42:46 +0000 From: "Ni, Ray" To: "devel@edk2.groups.io" , "gaoliming@byosoft.com.cn" , "'Brian J. Johnson'" , =?utf-8?B?J01hcnZpbiBIw6R1c2VyJw==?= , "fanjianfeng@byosoft.com.cn" , "Chan, Amy" , 'Andrew Fish' CC: "Kinney, Michael D" , "'Gao, Liming'" , "Liu, Zhiguang" , "Wang, Jian J" , "Gao, Zhichao" Subject: Re: [edk2-devel] RFC: Add BaseLib/QuickSort in MdePkg Thread-Topic: [edk2-devel] RFC: Add BaseLib/QuickSort in MdePkg Thread-Index: AdepLqSqNr3XR8BzRta7Fw6/X0zQqwBazIQAAAGkXIAAAFefgAAAsAngAAAnB9ABNIM2cABf0RqAAGD5EYAAAErRIAATQjCAABxIFe4AD4PZgAABQcV5AACm1wAAIjqJ8AAr3vMAAAUT+gAAA9fykA== Date: Wed, 29 Sep 2021 02:42:45 +0000 Message-ID: References: <001a01d7aa99$d744af80$85ce0e80$@byosoft.com.cn> <003401d7aaa1$c7166830$55433890$@byosoft.com.cn> <16A70FAC1585C7C1.27516@groups.io> <00cf01d7b27a$59145d20$0b3d1760$@byosoft.com.cn> <2021092708451371303013@byosoft.com.cn> <7c260e5d-363e-8579-5a38-3cc5e2336bdb@posteo.de> <2021092716501903570820@byosoft.com.cn> <57dc418a-6620-629c-c448-777994c280d6@posteo.de> <7d30e188-38b1-76cb-2e55-6f3a82338473@hpe.co m> <012d01d7b4cc$152bf790$3f83e6b0$@byosoft.com.cn> In-Reply-To: <012d01d7b4cc$152bf790$3f83e6b0$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 26e7c5e8-6c14-4fa3-fc07-08d982f2d19e x-ms-traffictypediagnostic: CY4PR11MB1798: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2ME8U2PPqKZF4wb/vfk1AG7OdQOftqtKP1ucZe2DfqF0bEutEkoBLkKj3+omxSfDZ8GYdfIAE1vMZRGrZXrbVfEvYlfLKJEy1G8QK4qrtmlZErFDZp3DoI46y+1Qv6R6pjqrub7JtlaTBwWEh//wACuBJkG7/Nnia6wEAh5/+VcGbkM6OsLfXogAbK+X7QtZhgQPaubQ7kYNyqnizt07KUSQJfKJPZHlei3yB3XtfpKP5Kt+UyxTxrll6jf8OvMZvP3Bu47DghqHVJTCjU8jpAWuvghPbMb3E++UEn7MmMbQ0+VN29oKSdcJc7asB79q9i57PHllJzTUiC4GfbgTa2/y5TFhMIyQweArTb8ZazVJFarrSxkwOEc/xJkWTef4ak/auxw0mXPa2n4RUCgx31Vr+iJPyyrVdBpDBU3tQN4U5bEB/ns7JD8+Sz+uYkkrZvUezbG6kN1/DUSTt2OZ7z2T5Te4cyHZ/OxKVkBEKzU6jTGEgcNhTWLl2t6rEQ2C2TXhNSgrs/WIrubfR9iqd0HimIrJWzo64d9c5uiy4GWXMjowJQ7CV2el71YsLafhM6DF8OjsH6gtSKxlcieJZIdQgVuLsZFU0wYS68A/ITMTSivnXSlKFqLB6SmKT2g5qx6NVwVXhxav/Wtgsyip0rl9TD1hez0L8RNiSOKTtTXliyadZ0kfumv8oOuGZjDZCkt5yAy8Pv1Vf8pYf0WD9G2RKUz/SU2ymL8g4ZGc//2IXruovWI9NxDV7ChdsJmXD3Ozut/nZzwMMNeAGeQ3dqnf9fJoAuxxmE4NA5Lm/VTzYYA3DKvpRnUraGMjM0kBf5Niu5ItMJSLp/I8WdqK3Q== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR1101MB2072.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(966005)(8676002)(33656002)(86362001)(508600001)(107886003)(71200400001)(53546011)(6506007)(26005)(83380400001)(66556008)(5660300002)(76116006)(2906002)(66446008)(52536014)(66476007)(66946007)(9686003)(55016002)(64756008)(4326008)(30864003)(54906003)(110136005)(8936002)(122000001)(38100700002)(186003)(7696005)(66574015)(19627235002)(316002)(38070700005)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bnNhcEtLejM5dU1YLzBXeXIyb3gxZlNuVU9pSWNuWGZxN2RSZS9zUzNvWnM1?= =?utf-8?B?Z1NyOGh1Z0NvRCtNOUlyYUEvSlpyQVNWdzdITkZuajNpd0FoT2lnamtKelZR?= =?utf-8?B?em1HbWxJZUdkWk55WDBiNWNFa1lGVFFMbXhZenhzOGJKNzJ0ZmZsblRTai9H?= =?utf-8?B?QXRMNEtxUXlyU05TMUZjZE5UK0szbXlndE9NQ3pqRGVxYkpMZUxGSGpaeG1o?= =?utf-8?B?cm1SSnJPUFowc2x2SlhmYjVMdVZWT2sySi80M01qSklzUTdsQk9VZ1pGSW9z?= =?utf-8?B?NWl1MnlsRHVldnpRRTJpS2JuV2ZYMm9Rd0owRGdJMnFTOVFjWUI3dWZ1SndJ?= =?utf-8?B?WkV0UWNHbkJrMTAvemJBTzhpZ3JhalNTZzZET0ZlVUxUcHNWRzBRQkZIWEov?= =?utf-8?B?RE1ZajZUbWJ2YmJydmN3cHI3OUlHSkhZRjBMa29xOGVQYU5tZjhabjdMWGMy?= =?utf-8?B?dGV6b0hEaDVhVUZZV2FDOGFVM2pmYlhoczRxZithSVJSRTB5MG45UkFUWWw5?= =?utf-8?B?cHNkcURkTm1VYUZtajBGa0xtZnJiK09lYUNVb3ZpNDV0RnNBb3FpV2VheHlU?= =?utf-8?B?WUgwRm96NGZtc1M3ODFBY0ozQW1qc2dZbVJBN0hCVGhTeVoxamJsTCtyeW5U?= =?utf-8?B?L3JXak5SaGNrYlZwZU85NlFHODJaaVRlS0RCdjVnYkJoQjZLR1BtQzE5NzVW?= =?utf-8?B?Y1BremxHQm1IRStrdXl1NHBOaEVDWk9Oei9ra256N0RxM0J3bVVHeHVqK2g0?= =?utf-8?B?TmwzVnJWaVE4cEhvOGtVNVR0czFLUGRLcE9ldW1ZdWNqM1NCRk41UWpnK1VN?= =?utf-8?B?L1RlWFg0SXArSmkyMjdvQm5JaVUvVVJSNGRzYlVZVU5nbWI5aUlTRys0QzNm?= =?utf-8?B?ZWRqRGRweWlTdmRJMHBnaXJ0VUJ5ekcxTE9VOFJTTmtacW93VUxPQUhNdWEr?= =?utf-8?B?eU1xYW9uNmhuK0FZckpIYWRTWUxUWlVaSTlaWnZQN0FzNFlnYllqdmhFb2Rw?= =?utf-8?B?c2ZKbU5tczQ2U0lNUXpPTVVlU3Azcm9WTUZOeVRKWEtFOEdRbUFCQ2RUSUdp?= =?utf-8?B?eDF4MHp2cHdsZWFVdFI0THRYZ3VDL2djenF1S1YyeVVIV0dsM1czUTA2R3FH?= =?utf-8?B?ZVdNV2NIWldLdFBaYUFwYzZITDhKaUJoVFlWcUp6dFBrSzlCR3M2SEtiS1F6?= =?utf-8?B?eUhGZ05jWHFING5WRHZ4aEJYWS9aR01MR0lVZ20zb1E2UVdYaENIQm1Eb21B?= =?utf-8?B?QUF1cVR5Z2JxN2lXTHJReEVCUVFBNFJwRm5uL0tLc1Rod016WEgzS2pyRFRJ?= =?utf-8?B?bWNyNUFHYjd5N1dTMjZ4MjRQcklhWWZqUnRuUXYrN1MrLzQ3UUZ3YTVwTk5m?= =?utf-8?B?cTJWK1NGcjlyL2FnRXFQMnlzdExQWjVYekRtc3I1aDhubGo4ZC9qWlhDQ29M?= =?utf-8?B?bFQ5SjhyVVVGV3dxZ2VTMCsyRDBZL05uYnY5bjdwSkdmeVU4WGZ5enhVOFN5?= =?utf-8?B?eldiY2lDTkpMNThkb0l5Y0F3N1ZEK05zbGJOSnRldEsvMW42RC9DSTROd1Ar?= =?utf-8?B?SkJ5NmlYUjNlWUhRWFBCVk1RSFRaV1pZUDU3c0hVRExVUmd4a1hDaUYzNnk0?= =?utf-8?B?T0J4WW91Y0d3YndRMm4wUW1ycWxGQ1JVTUxBQlNQYXRwQmNoZzluNithNUkz?= =?utf-8?B?Mmc1THl4MTMwRUlieUVpMlJCWnd3dkEvZDUreEZZZjY1TzBUVWZlZzJJS0xj?= =?utf-8?Q?Kcb8lk9Eg5XHNodJb8TywRm/pve5PyfW0lDhw7n?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR1101MB2072.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 26e7c5e8-6c14-4fa3-fc07-08d982f2d19e X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Sep 2021 02:42:45.8980 (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: phiLWwHcF92wBqEHClHJsyAcQZMjWSctrL2m1TGio1oW9A6IyQbk2ZhCFKaDYj42NmhOBPM0MEypm3n32A0MjA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1798 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIGV2ZXJ5b25lLg0KV2Ugd2lsbCBwb3N0IHBhdGNoZXMgdG8gdGhpcyBtYWlsaW5nIGxp c3QgdGhhdCBhbGlnbnMgdG8gdGhpcyBwcm9wb3NhbC4NCg0KVGhhbmtzLA0KUmF5DQoNCi0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxA ZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBnYW9saW1pbmcNClNlbnQ6IFdlZG5lc2RheSwg U2VwdGVtYmVyIDI5LCAyMDIxIDg6NTEgQU0NClRvOiAnQnJpYW4gSi4gSm9obnNvbicgPGJyaWFu LmpvaG5zb25AaHBlLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBOaSwgUmF5IDxyYXkubmlA aW50ZWwuY29tPjsgJ01hcnZpbiBIw6R1c2VyJyA8bWhhZXVzZXJAcG9zdGVvLmRlPjsgZmFuamlh bmZlbmdAYnlvc29mdC5jb20uY247IENoYW4sIEFteSA8YW15LmNoYW5AaW50ZWwuY29tPjsgJ0Fu ZHJldyBGaXNoJyA8YWZpc2hAYXBwbGUuY29tPg0KQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT47ICdHYW8sIExpbWluZycgPGxpbWluZy5nYW9AaW50ZWwu Y29tPjsgTGl1LCBaaGlndWFuZyA8emhpZ3VhbmcubGl1QGludGVsLmNvbT47IFdhbmcsIEppYW4g SiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgR2FvLCBaaGljaGFvIDx6aGljaGFvLmdhb0BpbnRl bC5jb20+DQpTdWJqZWN0OiDlm57lpI06IFtlZGsyLWRldmVsXSBSRkM6IEFkZCBCYXNlTGliL1F1 aWNrU29ydCBpbiBNZGVQa2cNCg0KSm9obnNvbjoNCiAgSSBhbHNvIGFncmVlIHRoaXMgcHJvcG9z YWwgdG8gbWFrZSBCdWZmZXJPbmVFbGVtZW50IHBhcmFtZXRlciBtYW5kYXRvcnkuDQoNClRoYW5r cw0KTGltaW5nDQo+IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCj4g5Y+R5Lu25Lq6OiBCcmlhbiBK LiBKb2huc29uIDxicmlhbi5qb2huc29uQGhwZS5jb20+DQo+IOWPkemAgeaXtumXtDogMjAyMeW5 tDnmnIgyOeaXpSA2OjI2DQo+IOaUtuS7tuS6ujogZGV2ZWxAZWRrMi5ncm91cHMuaW87IHJheS5u aUBpbnRlbC5jb207IE1hcnZpbiBIw6R1c2VyIA0KPiA8bWhhZXVzZXJAcG9zdGVvLmRlPjsgZmFu amlhbmZlbmdAYnlvc29mdC5jb20uY247ICdnYW9saW1pbmcnDQo+IDxnYW9saW1pbmdAYnlvc29m dC5jb20uY24+OyBDaGFuLCBBbXkgPGFteS5jaGFuQGludGVsLmNvbT47ICdBbmRyZXcgDQo+IEZp c2gnIDxhZmlzaEBhcHBsZS5jb20+DQo+IOaKhOmAgTogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgJ0dhbywgTGltaW5nJw0KPiA8bGltaW5nLmdhb0BpbnRl bC5jb20+OyBMaXUsIFpoaWd1YW5nIDx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsgV2FuZywgDQo+ IEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgR2FvLCBaaGljaGFvIDx6aGljaGFvLmdh b0BpbnRlbC5jb20+DQo+IOS4u+mimDogUmU6IFtlZGsyLWRldmVsXSBSRkM6IEFkZCBCYXNlTGli L1F1aWNrU29ydCBpbiBNZGVQa2cNCj4gDQo+IEknbGwgYWRkIG15IGFncmVlbWVudCB0byBNYXJ2 aW4gYW5kIEplZmY6ICBhIGxvdy1sZXZlbCBzb3J0IHJvdXRpbmUgDQo+IGxpa2UgdGhpcyBzaG91 bGQgbGV0IHRoZSBjYWxsZXIgYmUgaW4gY2hhcmdlIG9mIG1lbW9yeSBhbGxvY2F0aW9uLCBzbyAN Cj4gaXQgY2FuIGJlIHVzZWQgaW4gdGhlIHdpZGVzdCB2YXJpZXR5IG9mIGNvbnRleHRzIChTRUMs IGV4Y2VwdGlvbiANCj4gaGFuZGxlcnMsIEFQcywNCj4gZXRjLikgIFNvIGxldCdzIG1ha2UgdGhl IEJ1ZmZlck9uZUVsZW1lbnQgcGFyYW1ldGVyIG1hbmRhdG9yeS4NCj4gDQo+IEJyaWFuIEouIEpv aG5zb24NCj4gDQo+IC0tLS0tLS0tIE9yaWdpbmFsIE1lc3NhZ2UgLS0tLS0tLS0NCj4gRnJvbTog TmksIFJheSBbbWFpbHRvOnJheS5uaUBpbnRlbC5jb21dDQo+IFNlbnQ6IE1vbmRheSwgU2VwdGVt YmVyIDI3LCAyMDIxLCA4OjQ5IFBNDQo+IFRvOiBNYXJ2aW4gSMOkdXNlciA8bWhhZXVzZXJAcG9z dGVvLmRlPiwgZmFuamlhbmZlbmdAYnlvc29mdC5jb20uY24gDQo+IDxmYW5qaWFuZmVuZ0BieW9z b2Z0LmNvbS5jbj4sIGRldmVsQGVkazIuZ3JvdXBzLmlvIA0KPiA8ZGV2ZWxAZWRrMi5ncm91cHMu aW8+LCAnZ2FvbGltaW5nJyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPiwgQ2hhbiwgDQo+IEFt eSA8YW15LmNoYW5AaW50ZWwuY29tPiwgJ0FuZHJldyBGaXNoJyA8YWZpc2hAYXBwbGUuY29tPg0K PiBDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPiwgJ0dh bywgTGltaW5nJw0KPiA8bGltaW5nLmdhb0BpbnRlbC5jb20+LCBMaXUsIFpoaWd1YW5nIDx6aGln dWFuZy5saXVAaW50ZWwuY29tPiwgV2FuZywgDQo+IEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwu Y29tPiwgR2FvLCBaaGljaGFvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFtl ZGsyLWRldmVsXSBSRkM6IEFkZCBCYXNlTGliL1F1aWNrU29ydCBpbiBNZGVQa2cNCj4gDQo+IE1h cnZpbiwNCj4gSSBhZ3JlZSB3aXRoIHlvdXIgY29uY2VybnMsIGluIGEgY2VydGFpbiBsZXZlbC4g QnV0IEkgZGlkbid0IHRyZWF0IGl0IA0KPiBhcyBhIHZlcnkgYmlnIHByb2JsZW0gb2YgaGF2aW5n IGNhbGxlciBwYXNzIHRoZSBCdWZmZXJPbmVFbGVtZW50IA0KPiAiaW50ZWxsaWdlbnRseSIuDQo+ IA0KPiBJIGFtIG9rIHRvIHVzZSB5b3VyIG9wdGlvbiAxKSwgbWFraW5nIEJ1ZmZlck9uZUVsZW1l bnQgbWFuZGF0b3J5Lg0KPiBDYWxsZXIgc2hvdWxkIGFsd2F5cyBzdXBwbHkgdGhlIGJ1ZmZlciB0 aGF0J3Mgc3VmZmljaWVudCB0byBob2xkIG9uZSANCj4gZWxlbWVudC4NCj4gDQo+IEJ5IHRoZSB3 YXksIEkgZG9uJ3Qgd2FudCB0byBwcm9wb3NlICJzd2FwLXdpdGhvdXQtdXNpbmctdGVtcG9yYXJ5 LXZhbHVlIg0KPiBtZXRob2QgdG8gYXZvaWQgdXNpbmcgdGhlICJCdWZmZXJPbmVFbGVtZW50Ij8N Cj4gQmVjYXVzZSB0aGF0IG1ha2VzIHRoZSBzaW1wbGUgdGhpbmcgY29tcGxpY2F0ZWQhDQo+IA0K PiBUaGFua3MsDQo+IFJheQ0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ IEZyb206IE1hcnZpbiBIw6R1c2VyIDxtaGFldXNlckBwb3N0ZW8uZGU+DQo+ID4gU2VudDogTW9u ZGF5LCBTZXB0ZW1iZXIgMjcsIDIwMjEgNTowOSBQTQ0KPiA+IFRvOiBmYW5qaWFuZmVuZ0BieW9z b2Z0LmNvbS5jbjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87IE5pLCBSYXkNCj4gPHJheS5uaUBpbnRl bC5jb20+OyAnZ2FvbGltaW5nJw0KPiA+IDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBDaGFu LCBBbXkgPGFteS5jaGFuQGludGVsLmNvbT47ICdBbmRyZXcNCj4gRmlzaCcgPGFmaXNoQGFwcGxl LmNvbT4NCj4gPiBDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwu Y29tPjsgJ0dhbywgTGltaW5nJw0KPiA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBMaXUsIFpoaWd1 YW5nDQo+ID4gPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+OyBXYW5nLCBKaWFuIEogPGppYW4uai53 YW5nQGludGVsLmNvbT47IEdhbywNCj4gWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPg0K PiA+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gUkZDOiBBZGQgQmFzZUxpYi9RdWlja1NvcnQg aW4gTWRlUGtnDQo+ID4NCj4gPiBPbiAyNy8wOS8yMDIxIDEwOjUwLCBmYW5qaWFuZmVuZ0BieW9z b2Z0LmNvbS5jbiB3cm90ZToNCj4gPj4gRm9yIGZvcm1lciBjYWxsZXIsIHRoZXkgY291bGQgc3Rp bGwga2VlcCBhcyBpcyB0byBjYWxsIHRoZSBvbGQgQVBJIA0KPiA+PiBpbiBNZGVNb2R1bGVQa2cu IEkgdGhpbmsgUmF5J3MgZGVzaWduIGlzIGNvbXBhdGlibGUgY2hhbmdlIGZvciBleGlzdGluZyBj b2RlLg0KPiA+PiBPbmx5IHdoZW4gdGhlIGV4aXN0aW5nIGNvZGUgd2FudHMgdG8gcmVtb3ZlIHRo ZSBkZXBlbmRlbmN5IG9uIA0KPiA+PiBNZGVNb2R1ZWxQa2csIHRoZXkgY291bGQgbWlncmF0ZSB0 byB0aGUgbmV3IEFQSSBpbiBiYXNlbGliLg0KPiA+Pg0KPiA+PiBJIGFncmVlIHdpdGggb25lIHNw bGl0LUFQSSBkZXNnaW4gd2hhdCB5b3UgbWVudGlvbmVkLg0KPiA+PiBCdXQgbXkgcG9pbnQgaXMg dG8gZGVmaW5lIG9uZSBBUEkgaW4gYmFzZWxpYiBhbmQgdG8gbWFrZSB0aGUgDQo+ID4+IGJhc2Vs aWIgbm90IGRlcGVuZCBvbiBtZW1vcnkgYWxsb2NhdGlvbi4gQW5kIGFub3RoZXIgd3JhcHBlciBB UEkgDQo+ID4+IGNvdWxkIGJlIGRlc2lnbmVkIHRvIGJlIHBsYWNlZCBpbiBhbnkgb3RoZXIgY2xh c3MuDQo+ID4NCj4gPiBPaCBzdXJlLCBpdCBjb3VsZCB0b3RhbGx5IGxpdmUgaW4gYW5vdGhlciBj bGFzcy4gSSdkIGp1c3QgbGlrZSB0byANCj4gPiBoYXZlIHRob3NlIHR3byBtb2RlbHMgKGNhbGxl ci0gYW5kIGNhbGxlZS1vd25lZCBidWZmZXIpIHN0cmljdGx5IA0KPiA+IHNlcGFyYXRlLCBJIHBl cnNvbmFsbHkgZG8gbm90IG1pbmQgd2hlcmUgZXhhY3RseSB0aGV5IGFyZSBpbXBsZW1lbnRlZC4g VGhhbmtzIQ0KPiA+DQo+ID4gQmVzdCByZWdhcmRzLA0KPiA+IE1hcnZpbg0KPiA+DQo+ID4+DQo+ ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4gPj4gLS0tLS0NCj4gPj4gSmVmZg0KPiA+PiBmYW5qaWFuZmVuZ0Bi eW9zb2Z0LmNvbS5jbg0KPiA+Pg0KPiA+PiAgICAgICpGcm9tOiogTWFydmluIEjDpHVzZXIgPG1h aWx0bzptaGFldXNlckBwb3N0ZW8uZGU+DQo+ID4+ICAgICAgKkRhdGU6KiAyMDIxLTA5LTI3IDE2 OjE0DQo+ID4+ICAgICAgKlRvOiogZmFuamlhbmZlbmdAYnlvc29mdC5jb20uY24NCj4gPj4gICAg ICA8bWFpbHRvOmZhbmppYW5mZW5nQGJ5b3NvZnQuY29tLmNuPjsgZGV2ZWxAZWRrMi5ncm91cHMu aW8NCj4gPj4gICAgICA8bWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPjsgTmksIFJheSA8bWFp bHRvOnJheS5uaUBpbnRlbC5jb20+Ow0KPiA+PiAgICAgICdnYW9saW1pbmcnIDxtYWlsdG86Z2Fv bGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgQ2hhbiwgQW15DQo+ID4+ICAgICAgPG1haWx0bzphbXku Y2hhbkBpbnRlbC5jb20+OyAnQW5kcmV3IEZpc2gnDQo+IDxtYWlsdG86YWZpc2hAYXBwbGUuY29t Pg0KPiA+PiAgICAgICpDQzoqIEtpbm5leSwgTWljaGFlbCBEIDxtYWlsdG86bWljaGFlbC5kLmtp bm5leUBpbnRlbC5jb20+Ow0KPiAnR2FvLA0KPiA+PiAgICAgIExpbWluZycgPG1haWx0bzpsaW1p bmcuZ2FvQGludGVsLmNvbT47IExpdSwgWmhpZ3VhbmcNCj4gPj4gICAgICA8bWFpbHRvOnpoaWd1 YW5nLmxpdUBpbnRlbC5jb20+OyBXYW5nLCBKaWFuIEoNCj4gPj4gICAgICA8bWFpbHRvOmppYW4u ai53YW5nQGludGVsLmNvbT47IEdhbywgWmhpY2hhbw0KPiA+PiAgICAgIDxtYWlsdG86emhpY2hh by5nYW9AaW50ZWwuY29tPg0KPiA+PiAgICAgICpTdWJqZWN0OiogUmU6IFtlZGsyLWRldmVsXSBS RkM6IEFkZCBCYXNlTGliL1F1aWNrU29ydCBpbg0KPiBNZGVQa2cNCj4gPj4gICAgICBPbiAyNy8w OS8yMDIxIDAyOjQ1LCBmYW5qaWFuZmVuZ0BieW9zb2Z0LmNvbS5jbiB3cm90ZToNCj4gPj4gICAg ICA+IE1ha2luZyBiYXNlbGliIGltcGxlbWVudGF0aW9uIGRlcGVuZCBvbiBNZW1vcnlBbGxvY2F0 aW9uTGliDQo+ID4+ICAgICAgPiAoaW5kaXJlY3RseSBvbiBQZWkgU2VydmljZSBhbmQgZ0JTKSwg aXQgbWF5IHByZXZlbnQNCj4gPj4gICAgICA+IHRoaXMgYmFzZSBBUEkgdXNpbmcgYXQgc29tZSBz ZW5lcmFpby4gaSBkb24ndCB0aGluayBpdCdzIGJldHRlci4NCj4gPj4gICAgICBUaGF0IGlzIHdo eSBJIGFza2VkIGFib3V0IGEgc3BsaXQtQVBJIHNjZW5hcmlvLCBvbmUgb2Ygd2hpY2ggDQo+ID4+ IGRvZXMNCj4gbm90DQo+ID4+ICAgICAgZGVwZW5kIG9uIGR5bmFtaWMgbWVtb3J5IGFsbG9jYXRp b24gKFNldFZhcmlhYmxlLWxpa2UpIGFuZCBvbmUNCj4gZG9lcw0KPiA+PiAgICAgICh3cmFwcGVy LWxpa2UpLg0KPiA+PiAgICAgID4gQWRkIHRoaXMgcGFyYW1ldGVyIGFuZCBtYWtlIHRoaXMgcGFy YW1ldGVyIGlzIG9wdGlvbmFsLA0KPiA+PiAgICAgID4gMSwgd2hlbiBOVUxMLCB1c2UgdGhlIGxv Y2FsIDI1NiBieXRlcyBzdGFjaw0KPiA+PiAgICAgID4gMiwgaWYgMjU2IGJ5dGVzIHN0YWNrIGlz IG5vdCBlbm91Z2gsIHJldHVybg0KPiBSRVRVUkVfQlVGRkVSX1RPT19TQU1MTCwNCj4gPj4gICAg ICA+IDMsIGNhbGxlciBjaGVjayB0aGUgcmV0dXJuIHN0YXR1cywgdG8gZG8gbm90aGluZyBvciB0 byBhbGxvY2F0ZQ0KPiA+PiAgICAgIGVub3VnaA0KPiA+PiAgICAgID4gYnVmZmVyIGZvciByZXRy eQ0KPiA+PiAgICAgID4NCj4gPj4gICAgICA+IFRoaXMgaXMganVzdCBsaWtlIFNldFZhcmlhYmxl KCkncyBpbXBsZW1lbnRhdGlvbi4NCj4gPj4gICAgICBZZXMsIGFuZCBiZWNhdXNlIHRoYXQgaXMg U2V0VmFyaWFibGUncyBpbXBsZW1lbnRhdGlvbiwgd2UgaGF2ZQ0KPiA+PiAgICAgIGxpYnJhcnkN Cj4gPj4gICAgICBmdW5jdGlvbnMgdG8gbWFrZSBpdCBsZXNzIGVycm9yLXByb25lIGFuZCBtb3Jl IGNvbnZlbmllbnQgWzFdLiBBcyBhDQo+ID4+ICAgICAgbWF0dGVyIG9mIGZhY3QsIHdlIGhhdmUg YSAoc2VtaS1sYXgpIHBvbGljeSBpbiBvdXIgY29kZWJhc2VzIHRvIGF2b2lkDQo+ID4+ICAgICAg c3VjaCBmdW5jdGlvbnMgbGlrZSB0aGUgcGxhZ3VlIGFuZCB1c2UgdGhvc2UgbGlicmFyeSB3cmFw cGVycw0KPiA+PiAgICAgIHdoZXJlLWV2ZXINCj4gPj4gICAgICBpdCBjYW4gbWFrZSBzZW5zZS4g VGhlIG9ubHkgc3VwZXItcmFyZSBleGNlcHRpb25zIEkgY2FuIHRoaW5rIG9mIGFyZQ0KPiA+PiAg ICAgIHdoZW4gd2Uga25vdyB0aGUgc2l6ZSBvZiB0aGUgZWxlbWVudCBhaGVhZCBvZiB0aW1lLiBB bHNvDQo+ID4+ICAgICAgU2V0VmFyaWFibGUgaGFzDQo+ID4+ICAgICAgbm8gYXJiaXRyYXJ5IGNv bnN0cmFpbnQgb24gd2hlbiBpdCBtYXkgd29yayB0aGUgZmlyc3QgdGltZSwgYW5kDQo+ID4+ICAg ICAgdGhlcmUgaXMNCj4gPj4gICAgICBjb2RlIHRoYXQgd2lsbCBmYWlsIHdoZW4gdGhlIGZpcnN0 IHJldHVybiBpcyBub3QNCj4gRUZJX0JVRkZFUl9UT09fU01BTEwuDQo+ID4+ICAgICAgVGhpcyBz b2x1dGlvbiBob25lc3RseSB5aWVsZHMgZXZlbiBtb3JlIHByb2JsZW1zLCBiZWNhdXNlIGl0DQo+ ID4+ICAgICAgaW50cm9kdWNlcw0KPiA+PiAgICAgIGEgU3RhdHVzIHJldHVybiB3aGljaCB3YXMg bm90IHRoZXJlIGJlZm9yZS4gRm9yIGNvbW1vbiBjb2RlDQo+IHNhZmV0eQ0KPiA+PiAgICAgIGFu ZA0KPiA+PiAgICAgIHF1YWxpdHkgcG9saWN5LCB0aGlzIHJlcXVpcmVzIHRoZSB2YWx1ZSAqbXVz dCogYmUgcmV0cmlldmVkIGFuZA0KPiA+PiAgICAgIGNoZWNrZWQNCj4gPj4gICAgICBpbiBzb21l IGZhc2hpb24uIFNvIGFsbCBjYWxsZXJzLCBubyBtYXR0ZXIgdGhlIHByaW9yIGtub3dsZWRnZSBv ZiB0aGUNCj4gPj4gICAgICBlbGVtZW50IHNpemUsIG5vdyBuZWVkIGVpdGhlciBhIHJ1bnRpbWUg Y2hlY2sgYW5kIGhhbmRsaW5nIGZvciBhDQo+ID4+ICAgICAgc3RhdHVzDQo+ID4+ICAgICAgdGhh dCB0aGV5IChtYXkpIGtub3cgY2FuIG5ldmVyIGJlIHJldHVybmVkLCBvciBBU1NFUlRzIGlmIHRo ZQ0KPiA+PiAgICAgIGZ1bmN0aW9uDQo+ID4+ICAgICAgc3BlYyByZWFsbHkgaW1wb3NlcyB0aGUg YXJiaXRyYXJ5IDI1NiBCeXRlcyBjb25zdHJhaW50LiBMYXR0ZXINCj4gPj4gICAgICBkb2Vzbid0 DQo+ID4+ICAgICAgcmVhbGx5IHdvcmsgSSB0aGluay4gV2hhdCBpZiBzb21lb25lIHdhbnRzIHRv IHNvcnQgaW4gU0VDIGFuZA0KPiBub3RpY2VkDQo+ID4+ICAgICAgdGhleSBvbmx5IGhhdmUgNjQg Qnl0ZXMgb24gdGhlIHN0YWNrIHRvIHdvcmsgd2l0aCwgcmVhbGlzdGljYWxseT8gQW55DQo+ID4+ ICAgICAgY29kZSBkZXBlbmRpbmcgb24gdGhlIDI1NiBCeXRlIGNvbnN0cmFpbnQsIHBhc3Npbmcg TlVMTCBhbmQgDQo+ID4+IG5vdA0KPiBkb2luZw0KPiA+PiAgICAgIGFkZGl0aW9uYWwgaGFuZGxp bmcsIHdvdWxkIHNlaXplIHRvIHdvcmsuIEZvcm1lciBpcyB0b28NCj4gPj4gICAgICBjb21wbGlj YXRlZCwgc2VlDQo+ID4+ICAgICAgd3JhcHBlcnMuIEluIG15IG9waW5pb24sIHRoZSBtZW1vcnkg bXVzdCAqZWl0aGVyKiBiZSBmdWxseQ0KPiBtYW5hZ2VkIGJ5DQo+ID4+ICAgICAgdGhlIGNhbGxl ciAqb3IqIHRoZSBjYWxsZWUgKGFuZCB5b3UgbWF5IGhhdmUgYm90aCBpbiBzZXBhcmF0ZQ0KPiA+ PiAgICAgIGZ1bmN0aW9ucywNCj4gPj4gICAgICBhcyBJIHN1Z2dlc3RlZCksIGJ1dCBub3Qgc29t ZXRpbWVzIGhlcmUsIHNvbWV0aW1lcyB0aGVyZS4NCj4gPj4gICAgICBCZXN0IHJlZ2FyZHMsDQo+ ID4+ICAgICAgTWFydmluDQo+ID4+ICAgICAgWzFdDQo+ID4+DQo+ID4NCj4gaHR0cHM6Ly9naXRo dWIuY29tL3RpYW5vY29yZS9lZGsyL2Jsb2IvNDZiNDYwNmJhMjM0OThkM2QwZTY2YjUzZTQ5OGUN Cj4gYjNkNWQ1OTI1ODYvTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9VZWZpTGliLmMjTA0KPiA+IDEz MDktTDEzNjANCj4gPj4gICAgICA+DQo+ID4+ICAgICAgPg0KPiA+PiAgICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KPiA+PiAgICAgID4gSmVmZg0KPiA+PiAgICAgID4gZmFuamlhbmZlbmdAYnlvc29mdC5j b20uY24NCj4gPj4gICAgICA+DQo+ID4+ICAgICAgPiAgICAgKkZyb206KiBNYXJ2aW4gSMOkdXNl ciA8bWFpbHRvOm1oYWV1c2VyQHBvc3Rlby5kZT4NCj4gPj4gICAgICA+ICAgICAqRGF0ZToqIDIw MjEtMDktMjYgMTk6MjANCj4gPj4gICAgICA+ICAgICAqVG86KiBkZXZlbCA8bWFpbHRvOmRldmVs QGVkazIuZ3JvdXBzLmlvPjsgcmF5Lm5pDQo+ID4+ICAgICAgPiAgICAgPG1haWx0bzpyYXkubmlA aW50ZWwuY29tPjsgZ2FvbGltaW5nDQo+ID4+ICAgICAgPiAgICAgPG1haWx0bzpnYW9saW1pbmdA Ynlvc29mdC5jb20uY24+OyBDaGFuLCBBbXkNCj4gPj4gICAgICA+ICAgICA8bWFpbHRvOmFteS5j aGFuQGludGVsLmNvbT47ICdBbmRyZXcgRmlzaCcNCj4gPj4gICAgICA8bWFpbHRvOmFmaXNoQGFw cGxlLmNvbT4NCj4gPj4gICAgICA+ICAgICAqQ0M6KiBLaW5uZXksIE1pY2hhZWwgRA0KPiA8bWFp bHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsNCj4gPj4gICAgICAnR2FvLA0KPiA+PiAg ICAgID4gICAgIExpbWluZycgPG1haWx0bzpsaW1pbmcuZ2FvQGludGVsLmNvbT47IExpdSwgWmhp Z3VhbmcNCj4gPj4gICAgICA+ICAgICA8bWFpbHRvOnpoaWd1YW5nLmxpdUBpbnRlbC5jb20+OyBX YW5nLCBKaWFuIEoNCj4gPj4gICAgICA+ICAgICA8bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNv bT47IEdhbywgWmhpY2hhbw0KPiA+PiAgICAgID4gICAgIDxtYWlsdG86emhpY2hhby5nYW9AaW50 ZWwuY29tPg0KPiA+PiAgICAgID4gICAgICpTdWJqZWN0OiogUmU6IFtlZGsyLWRldmVsXSBSRkM6 IEFkZCBCYXNlTGliL1F1aWNrU29ydA0KPiBpbiBNZGVQa2cNCj4gPj4gICAgICA+ICAgICBIZXkg UmF5LA0KPiA+PiAgICAgID4gICAgIEluIG15IG9waW5pb24gdGhhdCBzcGVjIGlzIHRvbyBjb21w bGljYXRlZC4gRm9yIHNvbWUgY2FzZXMNCj4gaXQgaXMNCj4gPj4gICAgICA+ICAgICBvYnZpb3Vz LCBidXQgSSB0aGluayB0aGUgbGFzdCBhbnlvbmUgd2FudHMgdG8gc2VlIGlzIGENCj4gPj4gICAg ICA+ICAgICAoU1RBVElDXylBU1NFUlQNCj4gPj4gICAgICA+ICAgICBiZWZvcmUgbW9zdCBRdWlj a1NvcnQgY2FsbHMgdG8gZW5zdXJlIHRoZSBlbGVtZW50IHNpemUNCj4gPj4gICAgICAqcmVhbGx5 KiBpcyA8PQ0KPiA+PiAgICAgID4gICAgIDI1NiBCeXRlcy4gSW4gbXkgb3BpbmlvbiwgdGhlcmUg YXJlIHR3byByb2FkczoNCj4gPj4gICAgICA+ICAgICAxKSBNYWtlIHRoZSBwYXJhbWV0ZXIgcmVx dWlyZWQgKEkgdGhpbmsgdGhpcyBpcyB3aGF0IExpbWluZw0KPiA+PiAgICAgID4gICAgIHN1Z2dl c3RlZCkuDQo+ID4+ICAgICAgPiAgICAgVGhlIGNhbGxlciB3b3VsZCBhbHdheXMgbmVlZCB0byBw cm92aWRlIHNhaWQgYnVmZmVyLCBhbmQgaXQNCj4gPj4gICAgICBjYW4gZG8NCj4gPj4gICAgICA+ ICAgICBhcyBpdA0KPiA+PiAgICAgID4gICAgIHNlZXMgZml0IC0gb24gdGhlIHN0YWNrLCBpbiBh IHBvb2wsIGluIGEgcGFnZSwgd2hvIGtub3dzLg0KPiA+PiAgICAgID4gICAgIDIpIFJlbW92ZSB0 aGUgcGFyYW1ldGVyIGVudGlyZWx5LiBUaGUgbGlicmFyeSB3b3VsZA0KPiBkZXBlbmQgb24NCj4g Pj4gICAgICA+ICAgICBNZW1vcnlBbGxvY2F0aW9uTGliIGFnYWluLCBidXQgYWxzbyB3b3VsZCBo YXZlIGFuDQo+ID4+ICAgICAgb3B0aW1pc2F0aW9uIGJ5DQo+ID4+ICAgICAgPiAgICAgY2hvb3Np bmcgc3RhY2sgdnMgcG9vbCBiYXNlZCBvbiBFbGVtZW50U2l6ZS4NCj4gPj4gICAgICA+ICAgICBV c3VhbGx5IEkgd291bGQgcHJlZmVyIDIpLCBhcyBpdCBpcyBsZXNzIHByb25lIHRvIGNhbGxlcg0K PiA+PiAgICAgIGVycm9ycywgYnV0DQo+ID4+ICAgICAgPiAgICAgY29uc2lkZXJpbmcgdGhlIGxv dy1sZXZlbCBuYXR1cmUgb2YgZWRrMiwgSSBjYW4gdG90YWxseSBzZWUNCj4gdGhlDQo+ID4+ICAg ICAgPiAgICAgcG9pbnQgdG8NCj4gPj4gICAgICA+ICAgICBhbGxvdyB0aGUgY2FsbGVyIHRvIGNv bnRyb2wgd2hldGhlciB0aGVyZSBhcmUgZHluYW1pYw0KPiBtZW1vcnkNCj4gPj4gICAgICA+ICAg ICBhbGxvY2F0aW9ucw0KPiA+PiAgICAgID4gICAgIG1hZGUgb3Igbm90IGFzIHBvc3NpYmxlIHdp dGggMSkuIDIpIGNvdWxkIHRlY2huaWNhbGx5IGFsc28gYmUNCj4gYQ0KPiA+PiAgICAgID4gICAg IHdyYXBwZXINCj4gPj4gICAgICA+ICAgICBmb3IgMSkgaWYgeW91IHdhbnQgZ3JhbnVsYXIgY29u dHJvbCBhbmQgY29udmVuaWVuY2Uvc2FmZXR5DQo+ID4+ICAgICAgKHdoeSBub3QNCj4gPj4gICAg ICA+ICAgICBhY3R1YWxseT8pLg0KPiA+PiAgICAgID4gICAgIEJvdGggYXBwcm9hY2hlcyBoYXZl IHRoZSBhZHZhbnRhZ2UgdGhhdCBpdCBpcyBjcnlzdGFsLWNsZWFyDQo+ID4+ICAgICAgd2hhdCB0 aGUNCj4gPj4gICAgICA+ICAgICBjYWxsZXIncyBqb2IgaXMgLSB0byBhbHdheXMgb3IgdG8gbmV2 ZXIgYWxsb2NhdGUgdGhlIGJ1ZmZlci4NCj4gPj4gICAgICA+ICAgICBCZXN0IHJlZ2FyZHMsDQo+ ID4+ICAgICAgPiAgICAgTWFydmluDQo+ID4+ICAgICAgPiAgICAgT24gMjYvMDkvMjAyMSAwNDoy NCwgTmksIFJheSB3cm90ZToNCj4gPj4gICAgICA+ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiBM aW1pbmcsDQo+ID4+ICAgICAgPiAgICAgPg0KPiA+PiAgICAgID4gICAgID4gVGhlIHB1cnBvc2Ug b2YgdGhlIG9wdGlvbmFsIEJ1ZmZlck9uZUVsZW1lbnQgaXMgdG8gZWFzZQ0KPiA+PiAgICAgIGNv bnN1bWVy4oCZcw0KPiA+PiAgICAgID4gICAgID4gbGlmZSBhc3N1bWluZyBtb3N0IG9mIHRoZSB0 aW1lIHRoZSBlbGVtZW50IHNpemUgc2hvdWxkIGJlDQo+ID4+ICAgICAgPiAgICAgc21hbGxlciB0 aGFuDQo+ID4+ICAgICAgPiAgICAgPiAyNTYuDQo+ID4+ICAgICAgPiAgICAgPg0KPiA+PiAgICAg ID4gICAgID4gQXJlIHlvdSBzYXlpbmcgdGhhdCBpdOKAmXMgYSBiaXQgaGFyZCB0byBjYWxjdWxh dGUgdGhlIGFjdHVhbA0KPiA+PiAgICAgID4gICAgIHZhbHVlIG9mDQo+ID4+ICAgICAgPiAgICAg PiBzaXplb2YgKEVsZW1lbnQpIHdoZW4gd3JpdGluZyBjb2RlPw0KPiA+PiAgICAgID4gICAgID4N Cj4gPj4gICAgICA+ICAgICA+IEkgcmVjb21tZW5kIGNvbnN1bWVyIGFsd2F5cyBhbGxvY2F0ZXMg bWVtb3J5IGlmIGl04oCZcw0KPiBoYXJkDQo+ID4+ICAgICAgdG8ganVkZ2UNCj4gPj4gICAgICA+ ICAgICA+IHNpemVvZiAoRWxlbWVudCkgPCAyNTYuDQo+ID4+ICAgICAgPiAgICAgPg0KPiA+PiAg ICAgID4gICAgID4gU2VhcmNoaW5nIGVkazIgY29kZSwgSSBjYW4gZmluZCBiZWxvdyBjb2RlIHVz aW5nDQo+ID4+ICAgICAgUGVyZm9ybVF1aWNrU29ydCgpOg0KPiA+PiAgICAgID4gICAgID4NCj4g Pj4gICAgICA+ICAgICA+ICAxLiBTaGVsbFBrZy9VZWZpU2hlbGxDb21tYW5kTGliOiBJdOKAmXMg c29ydGluZyBhcnJheSBvZg0KPiA+PiAgICAgID4gICAgID4gICAgIChFRklfREVWSUNFX1BBVEhf UFJPVE9DT0wgKikuDQo+ID4+ICAgICAgPiAgICAgPiAgMi4gVWVmaUNwdVBrZy9DcHVDYWNoZUlu Zm9MaWI6IEl04oCZcyBzb3J0aW5nIGFycmF5IG9mDQo+ID4+ICAgICAgPiAgICAgIENQVV9DQUNI RV9JTkZPLg0KPiA+PiAgICAgID4gICAgID4gIDMuIE1pblBsYXRmb3JtUGtnL0FjcGlUYWJsZXM6 IEl04oCZcyBzb3J0aW5nIGFycmF5IG9mDQo+ID4+ICAgICAgPiAgICAgRUZJX0NQVV9JRF9PUkRF Ul9NQVAuDQo+ID4+ICAgICAgPiAgICAgPiAgNC4gTWRlTW9kdWxlUGtnL1VlZmlCb290TWFuYWdl ckxpYjogSXTigJlzIHNvcnRpbmcNCj4gYXJyYXkgb2YNCj4gPj4gICAgICA+ICAgICA+ICAgICBF RklfQk9PVF9NQU5BR0VSX0xPQURfT1BUSU9OLg0KPiA+PiAgICAgID4gICAgID4gIDUuIE1kZU1v ZHVsZVBrZy9DYXBzdWxlQXBwOiBJdOKAmXMgc29ydGluZyBhcnJheSBvZg0KPiA+PiAgICAgIChF RklfRklMRV9JTkZPICopDQo+ID4+ICAgICAgPiAgICAgPiAgNi4gQ3J5cHRvUGtnL0NydFdyYXBw ZXI6IEl04oCZcyBzb3J0aW5nIGFycmF5IG9mDQo+ICh1bmtub3duDQo+ID4+ICAgICAgdHlwZSku DQo+ID4+ICAgICAgPiAgICAgPiAgNy4gUmVkZmlzaFBrZy9SZWRmaXNoQ3J0TGliOiBJdOKAmXMg c29ydGluZyBhcnJheSBvZg0KPiA+PiAgICAgICh1bmtub3duIHR5cGUpLg0KPiA+PiAgICAgID4g ICAgID4NCj4gPj4gICAgICA+ICAgICA+IEZvciAxfjUsIGl04oCZcyBlYXN5IHRvIGtub3cgdGhh dCB0aGUgc2l6ZSBvZiB0aGUgZWxlbWVudCBpcw0KPiA+PiAgICAgIHNtYWxsZXINCj4gPj4gICAg ICA+ICAgICA+IHRoYW4gMjU2LiBUaGUgQWxsb2NhdGVQb29sKCkgY2FuIGJlIHNraXBwZWQuDQo+ ID4+ICAgICAgPiAgICAgPg0KPiA+PiAgICAgID4gICAgID4gVGhhbmtzLA0KPiA+PiAgICAgID4g ICAgID4NCj4gPj4gICAgICA+ICAgICA+IFJheQ0KPiA+PiAgICAgID4gICAgID4NCj4gPj4gICAg ICA+ICAgICA+ICpGcm9tOipnYW9saW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4g Pj4gICAgICA+ICAgICA+ICpTZW50OiogU3VuZGF5LCBTZXB0ZW1iZXIgMjYsIDIwMjEgMTA6MDEg QU0NCj4gPj4gICAgICA+ICAgICA+ICpUbzoqIE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBk ZXZlbEBlZGsyLmdyb3Vwcy5pbzsNCj4gPj4gICAgICBDaGFuLCBBbXkNCj4gPj4gICAgICA+ICAg ICA+IDxhbXkuY2hhbkBpbnRlbC5jb20+OyAnQW5kcmV3IEZpc2gnDQo+IDxhZmlzaEBhcHBsZS5j b20+DQo+ID4+ICAgICAgPiAgICAgPiAqQ2M6KiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5k Lmtpbm5leUBpbnRlbC5jb20+Ow0KPiA+PiAgICAgICdHYW8sIExpbWluZycNCj4gPj4gICAgICA+ ICAgICA+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IExpdSwgWmhpZ3VhbmcNCj4gPj4gICAgICA8 emhpZ3VhbmcubGl1QGludGVsLmNvbT47DQo+ID4+ICAgICAgPiAgICAgV2FuZywNCj4gPj4gICAg ICA+ICAgICA+IEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgR2FvLCBaaGljaGFvDQo+ ID4+ICAgICAgPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4gPj4gICAgICA+ICAgICA+ICpTdWJq ZWN0Oiog5Zue5aSNOiBbZWRrMi1kZXZlbF0gUkZDOiBBZGQNCj4gQmFzZUxpYi9RdWlja1NvcnQg aW4NCj4gPj4gICAgICBNZGVQa2cNCj4gPj4gICAgICA+ICAgICA+DQo+ID4+ICAgICAgPiAgICAg PiBSYXk6DQo+ID4+ICAgICAgPiAgICAgPg0KPiA+PiAgICAgID4gICAgID4gSSBtYXkgc3VnZ2Vz dCB0byBhbHdheXMgcmVxdWlyZSBCdWZmZXJPbmVFbGVtZW50LiBUaGUNCj4gPj4gICAgICBjb25z dW1lciBjb2RlDQo+ID4+ICAgICAgPiAgICAgPiBtYXkgbm90IGtub3cgRWxlbWVudFNpemUuIFRv IGF2b2lkIHRoZSBlcnJvciwgdGhlDQo+IGNvbnN1bWVyDQo+ID4+ICAgICAgbXVzdA0KPiA+PiAg ICAgID4gICAgID4gYWxsb2NhdGUgYnVmZmVyIGZvciBCdWZmZXJPbmVFbGVtZW50LiBJZiBzbywN Cj4gPj4gICAgICBCdWZmZXJPbmVFbGVtZW50IGlzDQo+ID4+ICAgICAgPiAgICAgdGhlDQo+ID4+ ICAgICAgPiAgICAgPiByZXF1aXJlZCBwYXJhbWV0ZXIuDQo+ID4+ICAgICAgPiAgICAgPg0KPiA+ PiAgICAgID4gICAgID4gVGhhbmtzDQo+ID4+ICAgICAgPiAgICAgPg0KPiA+PiAgICAgID4gICAg ID4gTGltaW5nDQo+ID4+ICAgICAgPiAgICAgPg0KPiA+PiAgICAgID4gICAgID4gKuWPkeS7tuS6 uioqOipOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tDQo+ID4+ICAgICAgPG1haWx0bzpyYXkubmlA aW50ZWwuY29tPj4NCj4gPj4gICAgICA+ICAgICA+ICrlj5HpgIHml7bpl7Q6KiAyMDIx5bm0Oeac iDI05pelIDExOjUzDQo+ID4+ICAgICAgPiAgICAgPiAq5pS25Lu25Lq6OiogZGV2ZWxAZWRrMi5n cm91cHMuaW8NCj4gPG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbz47DQo+ID4+ICAgICAgTmks DQo+ID4+ICAgICAgPiAgICAgUmF5DQo+ID4+ICAgICAgPiAgICAgPiA8cmF5Lm5pQGludGVsLmNv bSA8bWFpbHRvOnJheS5uaUBpbnRlbC5jb20+PjsgQ2hhbiwNCj4gQW15DQo+ID4+ICAgICAgPiAg ICAgPiA8YW15LmNoYW5AaW50ZWwuY29tIDxtYWlsdG86YW15LmNoYW5AaW50ZWwuY29tPj47DQo+ IGdhb2xpbWluZw0KPiA+PiAgICAgID4gICAgID4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbg0K PiA8bWFpbHRvOmdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4+Ow0KPiA+PiAgICAgID4gICAgICdB bmRyZXcNCj4gPj4gICAgICA+ICAgICA+IEZpc2gnIDxhZmlzaEBhcHBsZS5jb20gPG1haWx0bzph ZmlzaEBhcHBsZS5jb20+Pg0KPiA+PiAgICAgID4gICAgID4gKuaKhOmAgToqIEtpbm5leSwgTWlj aGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbQ0KPiA+PiAgICAgID4gICAgID4gPG1h aWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4+OyAnR2FvLCBMaW1pbmcnDQo+ID4+ICAg ICAgPiAgICAgPiA8bGltaW5nLmdhb0BpbnRlbC5jb20gPG1haWx0bzpsaW1pbmcuZ2FvQGludGVs LmNvbT4+Ow0KPiBMaXUsDQo+ID4+ICAgICAgWmhpZ3VhbmcNCj4gPj4gICAgICA+ICAgICA+IDx6 aGlndWFuZy5saXVAaW50ZWwuY29tDQo+IDxtYWlsdG86emhpZ3VhbmcubGl1QGludGVsLmNvbT4+ Ow0KPiA+PiAgICAgIFdhbmcsDQo+ID4+ICAgICAgPiAgICAgSmlhbiBKDQo+ID4+ICAgICAgPiAg ICAgPiA8amlhbi5qLndhbmdAaW50ZWwuY29tIDxtYWlsdG86amlhbi5qLndhbmdAaW50ZWwuY29t Pj47DQo+IEdhbywNCj4gPj4gICAgICA+ICAgICBaaGljaGFvDQo+ID4+ICAgICAgPiAgICAgPiA8 emhpY2hhby5nYW9AaW50ZWwuY29tDQo+IDxtYWlsdG86emhpY2hhby5nYW9AaW50ZWwuY29tPj4N Cj4gPj4gICAgICA+ICAgICA+ICrkuLvpopg6KiBSRTogW2VkazItZGV2ZWxdIFJGQzogQWRkIEJh c2VMaWIvUXVpY2tTb3J0IGluDQo+IE1kZVBrZw0KPiA+PiAgICAgID4gICAgID4NCj4gPj4gICAg ICA+ICAgICA+IE1vcmUgZGV0YWlscyBvbiBuZXcgUXVpY2tTb3J0KCkgQVBJOg0KPiA+PiAgICAg ID4gICAgID4NCj4gPj4gICAgICA+ICAgICA+IFRoZSBuZXcgQVBJIG5lZWRzIHRvIGNhcnJ5IGFk ZGl0aW9uYWwgcGFyYW1ldGVyDQo+ID4+ICAgICAg4oCcQnVmZmVyT25lRWxlbWVudOKAnS4NCj4g Pj4gICAgICA+ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiBUaGlzIHBhcmFtZXRlciBnaXZlcyBR dWlja1NvcnQoKSB0aGUgdGVtcG9yYXJ5IGJ1ZmZlciBmb3INCj4gPj4gICAgICA+ICAgICBzd2Fw cGluZyBpbg0KPiA+PiAgICAgID4gICAgID4gc29ydGluZy4NCj4gPj4gICAgICA+ICAgICA+DQo+ ID4+ICAgICAgPiAgICAgPiBJdOKAmXMgdG8gYXZvaWQgQmFzZUxpYiBkZXBlbmRzIG9uIE1lbW9y eUFsbG9jYXRpb25MaWIuDQo+ID4+ICAgICAgPiAgICAgPg0KPiA+PiAgICAgID4gICAgID4g4oCm DQo+ID4+ICAgICAgPiAgICAgPg0KPiA+PiAgICAgID4gICAgID4gQHBhcmFtIFtpbl0gQnVmZmVy T25lRWxlbWVudCAgV2hlbiBFbGVtZW50U2l6ZSA+DQo+IDI1NiwgY2FsbGVyDQo+ID4+ICAgICAg PiAgICAgbmVlZHMgdG8NCj4gPj4gICAgICA+ICAgICA+IHByb3ZpZGUgYSBidWZmZXIgd2hvc2Ug c2l6ZQ0KPiA+PiAgICAgID4gICAgID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXF1 YWxzIHRvDQo+IEVsZW1lbnRTaXplLiBJdOKAmXMNCj4gPj4gICAgICB1c2VkIGJ5DQo+ID4+ICAg ICAgPiAgICAgPiBRdWlja1NvcnQoKSBmb3Igc3dhcHBpbmcgaW4gc29ydGluZy4NCj4gPj4gICAg ICA+ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiBXaGVuIEVsZW1lbnRTaXplIDw9IDI1NiwgUXVp Y2tTb3J0KCkgdXNlcyBhIGxvY2FsIHN0YWNrDQo+ID4+ICAgICAgMjU2LWJ5dGUNCj4gPj4gICAg ICA+ICAgICBidWZmZXIuDQo+ID4+ICAgICAgPiAgICAgPg0KPiA+PiAgICAgID4gICAgID4gQHJl dHZhbCBFRklfSU5WQUxJRF9QQVJBTUVURVIgV2hlbiAoRWxlbWVudFNpemUgPg0KPiAyNTYpIGFu ZA0KPiA+PiAgICAgID4gICAgID4gKEJ1ZmZlck9uZUVsZW1lbnQgPT0gTlVMTCkuDQo+ID4+ICAg ICAgPiAgICAgPg0KPiA+PiAgICAgID4gICAgID4g4oCmDQo+ID4+ICAgICAgPiAgICAgPg0KPiA+ PiAgICAgID4gICAgID4gVk9JRA0KPiA+PiAgICAgID4gICAgID4NCj4gPj4gICAgICA+ICAgICA+ IEVGSUFQSQ0KPiA+PiAgICAgID4gICAgID4NCj4gPj4gICAgICA+ICAgICA+IFF1aWNrU29ydCAo DQo+ID4+ICAgICAgPiAgICAgPg0KPiA+PiAgICAgID4gICAgID4gICBJTiBPVVQNCj4gVk9JRCAg ICAgICAgICAgICAgICAgICAgICAgICAqQnVmZmVyVG9Tb3J0LA0KPiA+PiAgICAgID4gICAgID4N Cj4gPj4gICAgICA+ICAgICA+ICAgSU4gQ09OU1QgVUlOVE4gRWxlbWVudENvdW50LA0KPiA+PiAg ICAgID4gICAgID4NCj4gPj4gICAgICA+ICAgICA+ICAgSU4gQ09OU1QgVUlOVE4gRWxlbWVudFNp emUsDQo+ID4+ICAgICAgPiAgICAgPg0KPiA+PiAgICAgID4gICAgID4gICBJTiAgICAgICBTT1JU X0NPTVBBUkUgQ29tcGFyZUZ1bmN0aW9uLA0KPiA+PiAgICAgID4gICAgID4NCj4gPj4gICAgICA+ ICAgICA+IElOIFZPSUQgKkJ1ZmZlck9uZUVsZW1lbnQgT1BUSU9OQUwNCj4gPj4gICAgICA+ICAg ICA+DQo+ID4+ICAgICAgPiAgICAgPiApOw0KPiA+PiAgICAgID4gICAgID4NCj4gPj4gICAgICA+ ICAgICA+IEFueSBjb21tZW50cz8NCj4gPj4gICAgICA+ICAgICA+DQo+ID4+ICAgICAgPiAgICAg PiAqRnJvbToqZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vw cy5pbz4NCj4gPj4gICAgICA+ICAgICA+IDxkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8bWFpbHRvOmRl dmVsQGVkazIuZ3JvdXBzLmlvPj4NCj4gKk9uDQo+ID4+ICAgICAgQmVoYWxmIE9mDQo+ID4+ICAg ICAgPiAgICAgPiAqTmksIFJheQ0KPiA+PiAgICAgID4gICAgID4gKlNlbnQ6KiBXZWRuZXNkYXks IFNlcHRlbWJlciAyMiwgMjAyMSAyOjA0IFBNDQo+ID4+ICAgICAgPiAgICAgPiAqVG86KiBDaGFu LCBBbXkgPGFteS5jaGFuQGludGVsLmNvbQ0KPiA+PiAgICAgIDxtYWlsdG86YW15LmNoYW5AaW50 ZWwuY29tPj47DQo+ID4+ICAgICAgPiAgICAgPiBnYW9saW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0 LmNvbS5jbg0KPiA+PiAgICAgID4gICAgID4gPG1haWx0bzpnYW9saW1pbmdAYnlvc29mdC5jb20u Y24+PjsgJ0FuZHJldyBGaXNoJw0KPiA+PiAgICAgIDxhZmlzaEBhcHBsZS5jb20NCj4gPj4gICAg ICA+ICAgICA+IDxtYWlsdG86YWZpc2hAYXBwbGUuY29tPj47ICdlZGsyLWRldmVsLWdyb3Vwcy1p bycNCj4gPj4gICAgICA+ICAgICA+IDxkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8bWFpbHRvOmRldmVs QGVkazIuZ3JvdXBzLmlvPj4NCj4gPj4gICAgICA+ICAgICA+ICpDYzoqIEtpbm5leSwgTWljaGFl bCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbQ0KPiA+PiAgICAgID4gICAgID4gPG1haWx0 bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4+OyAnR2FvLCBMaW1pbmcnDQo+ID4+ICAgICAg PiAgICAgPiA8bGltaW5nLmdhb0BpbnRlbC5jb20gPG1haWx0bzpsaW1pbmcuZ2FvQGludGVsLmNv bT4+Ow0KPiBMaXUsDQo+ID4+ICAgICAgWmhpZ3VhbmcNCj4gPj4gICAgICA+ICAgICA+IDx6aGln dWFuZy5saXVAaW50ZWwuY29tDQo+IDxtYWlsdG86emhpZ3VhbmcubGl1QGludGVsLmNvbT4+Ow0K PiA+PiAgICAgIFdhbmcsDQo+ID4+ICAgICAgPiAgICAgSmlhbiBKDQo+ID4+ICAgICAgPiAgICAg PiA8amlhbi5qLndhbmdAaW50ZWwuY29tIDxtYWlsdG86amlhbi5qLndhbmdAaW50ZWwuY29tPj47 DQo+IEdhbywNCj4gPj4gICAgICA+ICAgICBaaGljaGFvDQo+ID4+ICAgICAgPiAgICAgPiA8emhp Y2hhby5nYW9AaW50ZWwuY29tDQo+IDxtYWlsdG86emhpY2hhby5nYW9AaW50ZWwuY29tPj4NCj4g Pj4gICAgICA+ICAgICA+ICpTdWJqZWN0OiogUmU6IFtlZGsyLWRldmVsXSBSRkM6IEFkZCBCYXNl TGliL1F1aWNrU29ydA0KPiBpbg0KPiA+PiAgICAgIE1kZVBrZw0KPiA+PiAgICAgID4gICAgID4N Cj4gPj4gICAgICA+ICAgICA+IEkgZG9u4oCZdCBzZWUgb2JqZWN0aW9uIHNvIGZhci4NCj4gPj4g ICAgICA+ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiBTbywgdGhlIGZpbmFsIHNvbHV0aW9uIGlz Og0KPiA+PiAgICAgID4gICAgID4NCj4gPj4gICAgICA+ICAgICA+ICAxLiBBZGQgUXVpY2tTb3J0 KCkgQVBJIHRvIEJhc2VMaWIgaW4gTWRlUGtnLg0KPiA+PiAgICAgID4gICAgID4gIDIuIFVwZGF0 ZSBleGlzdGluZyBNZGVNb2R1bGVQa2cvU29ydExpYiB0byB1c2UNCj4gPj4gICAgICBRdWlja1Nv cnQoKSBpbiB0aGUNCj4gPj4gICAgICA+ICAgICA+ICAgICBpbXBsZW1lbnRhdGlvbiAocHJvcG9z ZWQgYnkgQW5kcmV3IEZpc2ggYW5kDQo+IExpbWluZyBHYW8pDQo+ID4+ICAgICAgPiAgICAgPiAg My4gVXBkYXRlIFVlZmlDcHVQa2cgdG8gdXNlIFF1aWNrU29ydExpYiB0byByZW1vdmUNCj4gaW1w cm9wZXINCj4gPj4gICAgICA+ICAgICA+ICAgICBkZXBlbmRlbmN5IG9uIE1kZU1vZHVsZVBrZw0K PiA+PiAgICAgID4gICAgID4NCj4gPj4gICAgICA+ICAgICA+IFRoYW5rcywNCj4gPj4gICAgICA+ ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiBSYXkNCj4gPj4gICAgICA+ICAgICA+DQo+ID4+ICAg ICAgPiAgICAgPiAqRnJvbToqTmksIFJheQ0KPiA+PiAgICAgID4gICAgID4gKlNlbnQ6KiBUaHVy c2RheSwgU2VwdGVtYmVyIDE2LCAyMDIxIDEwOjQ4IEFNDQo+ID4+ICAgICAgPiAgICAgPiAqVG86 KiBDaGFuLCBBbXkgPGFteS5jaGFuQGludGVsLmNvbQ0KPiA+PiAgICAgIDxtYWlsdG86YW15LmNo YW5AaW50ZWwuY29tPj47DQo+ID4+ICAgICAgPiAgICAgPiBnYW9saW1pbmcgPGdhb2xpbWluZ0Bi eW9zb2Z0LmNvbS5jbg0KPiA+PiAgICAgID4gICAgID4gPG1haWx0bzpnYW9saW1pbmdAYnlvc29m dC5jb20uY24+PjsgJ0FuZHJldyBGaXNoJw0KPiA+PiAgICAgIDxhZmlzaEBhcHBsZS5jb20NCj4g Pj4gICAgICA+ICAgICA+IDxtYWlsdG86YWZpc2hAYXBwbGUuY29tPj47ICdlZGsyLWRldmVsLWdy b3Vwcy1pbycNCj4gPj4gICAgICA+ICAgICA+IDxkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8bWFpbHRv OmRldmVsQGVkazIuZ3JvdXBzLmlvPj4NCj4gPj4gICAgICA+ICAgICA+ICpDYzoqIEtpbm5leSwg TWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbQ0KPiA+PiAgICAgID4gICAgID4g PG1haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4+OyAnR2FvLCBMaW1pbmcnDQo+ID4+ ICAgICAgPiAgICAgPiA8bGltaW5nLmdhb0BpbnRlbC5jb20gPG1haWx0bzpsaW1pbmcuZ2FvQGlu dGVsLmNvbT4+Ow0KPiBMaXUsDQo+ID4+ICAgICAgWmhpZ3VhbmcNCj4gPj4gICAgICA+ICAgICA+ IDxaaGlndWFuZy5MaXVAaW50ZWwuY29tDQo+IDxtYWlsdG86WmhpZ3VhbmcuTGl1QGludGVsLmNv bT4+Ow0KPiA+PiAgICAgIFdhbmcsDQo+ID4+ICAgICAgPiAgICAgSmlhbiBKDQo+ID4+ICAgICAg PiAgICAgPiA8amlhbi5qLndhbmdAaW50ZWwuY29tIDxtYWlsdG86amlhbi5qLndhbmdAaW50ZWwu Y29tPj47DQo+IEdhbywNCj4gPj4gICAgICA+ICAgICBaaGljaGFvDQo+ID4+ICAgICAgPiAgICAg PiA8emhpY2hhby5nYW9AaW50ZWwuY29tDQo+IDxtYWlsdG86emhpY2hhby5nYW9AaW50ZWwuY29t Pj4NCj4gPj4gICAgICA+ICAgICA+ICpTdWJqZWN0OiogUkU6IFtlZGsyLWRldmVsXSBSRkM6IEFk ZCBCYXNlTGliL1F1aWNrU29ydA0KPiBpbg0KPiA+PiAgICAgIE1kZVBrZw0KPiA+PiAgICAgID4g ICAgID4NCj4gPj4gICAgICA+ICAgICA+IEFteSwNCj4gPj4gICAgICA+ICAgICA+DQo+ID4+ICAg ICAgPiAgICAgPiBOby4gV2Ugb25seSBBZGQgUXVpY2tTb3J0KCkgZnVuY3Rpb24gQVBJIGludG8g QmFzZUxpYi5oLg0KPiA+PiAgICAgID4gICAgID4NCj4gPj4gICAgICA+ICAgICA+ICpGcm9tOipD aGFuLCBBbXkgPGFteS5jaGFuQGludGVsLmNvbQ0KPiA+PiAgICAgIDxtYWlsdG86YW15LmNoYW5A aW50ZWwuY29tPj4NCj4gPj4gICAgICA+ICAgICA+ICpTZW50OiogVGh1cnNkYXksIFNlcHRlbWJl ciAxNiwgMjAyMSAxMDo0NiBBTQ0KPiA+PiAgICAgID4gICAgID4gKlRvOiogZ2FvbGltaW5nIDxn YW9saW1pbmdAYnlvc29mdC5jb20uY24NCj4gPj4gICAgICA+ICAgICA+IDxtYWlsdG86Z2FvbGlt aW5nQGJ5b3NvZnQuY29tLmNuPj47ICdBbmRyZXcgRmlzaCcNCj4gPj4gICAgICA8YWZpc2hAYXBw bGUuY29tDQo+ID4+ICAgICAgPiAgICAgPiA8bWFpbHRvOmFmaXNoQGFwcGxlLmNvbT4+OyAnZWRr Mi1kZXZlbC1ncm91cHMtaW8nDQo+ID4+ICAgICAgPiAgICAgPiA8ZGV2ZWxAZWRrMi5ncm91cHMu aW8gPG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbz4+DQo+ID4+ICAgICAgPiAgICAgPiAqQ2M6 KiBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tDQo+ID4+ICAgICAgPG1haWx0bzpyYXkubmlAaW50 ZWwuY29tPj47IEtpbm5leSwNCj4gPj4gICAgICA+ICAgICA+IE1pY2hhZWwgRCA8bWljaGFlbC5k Lmtpbm5leUBpbnRlbC5jb20NCj4gPj4gICAgICA+ICAgICA+IDxtYWlsdG86bWljaGFlbC5kLmtp bm5leUBpbnRlbC5jb20+PjsgJ0dhbywgTGltaW5nJw0KPiA+PiAgICAgID4gICAgID4gPGxpbWlu Zy5nYW9AaW50ZWwuY29tIDxtYWlsdG86bGltaW5nLmdhb0BpbnRlbC5jb20+PjsNCj4gTGl1LA0K PiA+PiAgICAgIFpoaWd1YW5nDQo+ID4+ICAgICAgPiAgICAgPiA8emhpZ3VhbmcubGl1QGludGVs LmNvbQ0KPiA8bWFpbHRvOnpoaWd1YW5nLmxpdUBpbnRlbC5jb20+PjsNCj4gPj4gICAgICBXYW5n LA0KPiA+PiAgICAgID4gICAgIEppYW4gSg0KPiA+PiAgICAgID4gICAgID4gPGppYW4uai53YW5n QGludGVsLmNvbSA8bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNvbT4+Ow0KPiBHYW8sDQo+ID4+ ICAgICAgPiAgICAgWmhpY2hhbw0KPiA+PiAgICAgID4gICAgID4gPHpoaWNoYW8uZ2FvQGludGVs LmNvbQ0KPiA8bWFpbHRvOnpoaWNoYW8uZ2FvQGludGVsLmNvbT4+DQo+ID4+ICAgICAgPiAgICAg PiAqU3ViamVjdDoqIFJFOiBbZWRrMi1kZXZlbF0gUkZDOiBBZGQgQmFzZUxpYi9RdWlja1NvcnQN Cj4gaW4NCj4gPj4gICAgICBNZGVQa2cNCj4gPj4gICAgICA+ICAgICA+DQo+ID4+ICAgICAgPiAg ICAgPiBKdXN0IHRvIGRvdWJsZSBjb25maXJtLCB3aWxsIHdlIGhhdmUgdGhlIG51bGwgaW5zdGFu Y2Ugb2YNCj4gPj4gICAgICA+ICAgICBRdWlja1NvcnQgaW4NCj4gPj4gICAgICA+ICAgICA+IE1k ZVBrZz8NCj4gPj4gICAgICA+ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiBSZWdhcmRzLA0KPiA+ PiAgICAgID4gICAgID4NCj4gPj4gICAgICA+ICAgICA+IEFteQ0KPiA+PiAgICAgID4gICAgID4N Cj4gPj4gICAgICA+ICAgICA+ICpGcm9tOipnYW9saW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNv bS5jbg0KPiA+PiAgICAgID4gICAgID4gPG1haWx0bzpnYW9saW1pbmdAYnlvc29mdC5jb20uY24+ Pg0KPiA+PiAgICAgID4gICAgID4gKlNlbnQ6KiBUaHVyc2RheSwgU2VwdGVtYmVyIDE2LCAyMDIx IDEwOjIzIEFNDQo+ID4+ICAgICAgPiAgICAgPiAqVG86KiAnQW5kcmV3IEZpc2gnIDxhZmlzaEBh cHBsZS5jb20NCj4gPj4gICAgICA8bWFpbHRvOmFmaXNoQGFwcGxlLmNvbT4+Ow0KPiA+PiAgICAg ID4gICAgID4gJ2VkazItZGV2ZWwtZ3JvdXBzLWlvJyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4g Pj4gICAgICA+ICAgICA+IDxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+Pg0KPiA+PiAgICAg ID4gICAgID4gKkNjOiogTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbQ0KPiA+PiAgICAgIDxtYWls dG86cmF5Lm5pQGludGVsLmNvbT4+OyBLaW5uZXksDQo+ID4+ICAgICAgPiAgICAgPiBNaWNoYWVs IEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tDQo+ID4+ICAgICAgPiAgICAgPiA8bWFpbHRv Om1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPj47ICdHYW8sIExpbWluZycNCj4gPj4gICAgICA+ ICAgICA+IDxsaW1pbmcuZ2FvQGludGVsLmNvbSA8bWFpbHRvOmxpbWluZy5nYW9AaW50ZWwuY29t Pj47DQo+IExpdSwNCj4gPj4gICAgICBaaGlndWFuZw0KPiA+PiAgICAgID4gICAgID4gPHpoaWd1 YW5nLmxpdUBpbnRlbC5jb20NCj4gPG1haWx0bzp6aGlndWFuZy5saXVAaW50ZWwuY29tPj47DQo+ ID4+ICAgICAgV2FuZywNCj4gPj4gICAgICA+ICAgICBKaWFuIEoNCj4gPj4gICAgICA+ICAgICA+ IDxqaWFuLmoud2FuZ0BpbnRlbC5jb20gPG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+PjsN Cj4gR2FvLA0KPiA+PiAgICAgID4gICAgIFpoaWNoYW8NCj4gPj4gICAgICA+ICAgICA+IDx6aGlj aGFvLmdhb0BpbnRlbC5jb20NCj4gPG1haWx0bzp6aGljaGFvLmdhb0BpbnRlbC5jb20+PjsNCj4g Pj4gICAgICBDaGFuLCBBbXkNCj4gPj4gICAgICA+ICAgICA+IDxhbXkuY2hhbkBpbnRlbC5jb20g PG1haWx0bzphbXkuY2hhbkBpbnRlbC5jb20+Pg0KPiA+PiAgICAgID4gICAgID4gKlN1YmplY3Q6 KiDlm57lpI06IFtlZGsyLWRldmVsXSBSRkM6IEFkZA0KPiBCYXNlTGliL1F1aWNrU29ydCBpbg0K PiA+PiAgICAgIE1kZVBrZw0KPiA+PiAgICAgID4gICAgID4NCj4gPj4gICAgICA+ICAgICA+IEFu ZHJldzoNCj4gPj4gICAgICA+ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiBUaGFua3MgZm9yIHlv dXIgc3VnZ2VzdGlvbi4gSSB0aGluayB5b3VyIGlkZWEgaXMgYmV0dGVyLg0KPiA+PiAgICAgIFdl IGFkZCBuZXcNCj4gPj4gICAgICA+ICAgICA+IFF1aWNrU29ydCgpIEFQSSB0byBCYXNlTGliLCBh bmQgdXBkYXRlIFNvcnRMaWIgbGlicmFyeQ0KPiA+PiAgICAgIGluc3RhbmNlIHRvDQo+ID4+ICAg ICAgPiAgICAgPiBjb25zdW1lIEJhc2VMaWIgUXVpY2tTb3J0KCkgQVBJLiBUaGlzIHdheSBoYXMg bm8gY2hhbmdlDQo+IGluDQo+ID4+ICAgICAgY3VycmVudA0KPiA+PiAgICAgID4gICAgID4gU29y dExpYiBsaWJyYXJ5IGNsYXNzLiBJdCBpcyB0aGUgY29tcGF0aWJsZSBzb2x1dGlvbi4NCj4gPj4g ICAgICA+ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiBUaGFua3MNCj4gPj4gICAgICA+ICAgICA+ DQo+ID4+ICAgICAgPiAgICAgPiBMaW1pbmcNCj4gPj4gICAgICA+ICAgICA+DQo+ID4+ICAgICAg PiAgICAgPiAq5Y+R5Lu25Lq6Kio6KkFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20NCj4gPj4g ICAgICA8bWFpbHRvOmFmaXNoQGFwcGxlLmNvbT4+DQo+ID4+ICAgICAgPiAgICAgPiAq5Y+R6YCB 5pe26Ze0OiogMjAyMeW5tDnmnIgxNuaXpSAxMDoxMw0KPiA+PiAgICAgID4gICAgID4gKuaUtuS7 tuS6ujoqIGVkazItZGV2ZWwtZ3JvdXBzLWlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+PiAg ICAgID4gICAgID4gPG1haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pbz4+OyBMaW1pbmcgR2FvDQo+ ID4+ICAgICAgPiAgICAgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbg0KPiA+PiAgICAgID4gICAg ID4gPG1haWx0bzpnYW9saW1pbmdAYnlvc29mdC5jb20uY24+Pg0KPiA+PiAgICAgID4gICAgID4g KuaKhOmAgToqIE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20NCj4gPj4gICAgICA8bWFpbHRvOnJh eS5uaUBpbnRlbC5jb20+PjsgTWlrZQ0KPiA+PiAgICAgID4gICAgID4gS2lubmV5IDxtaWNoYWVs LmQua2lubmV5QGludGVsLmNvbQ0KPiA+PiAgICAgID4gICAgID4gPG1haWx0bzptaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT4+OyBHYW8sIExpbWluZw0KPiA+PiAgICAgID4gICAgID4gPGxpbWlu Zy5nYW9AaW50ZWwuY29tIDxtYWlsdG86bGltaW5nLmdhb0BpbnRlbC5jb20+PjsNCj4gTGl1LA0K PiA+PiAgICAgIFpoaWd1YW5nDQo+ID4+ICAgICAgPiAgICAgPiA8emhpZ3VhbmcubGl1QGludGVs LmNvbQ0KPiA8bWFpbHRvOnpoaWd1YW5nLmxpdUBpbnRlbC5jb20+PjsNCj4gPj4gICAgICBXYW5n LA0KPiA+PiAgICAgID4gICAgIEppYW4gSg0KPiA+PiAgICAgID4gICAgID4gPGppYW4uai53YW5n QGludGVsLmNvbSA8bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNvbT4+Ow0KPiBHYW8sDQo+ID4+ ICAgICAgPiAgICAgWmhpY2hhbw0KPiA+PiAgICAgID4gICAgID4gPHpoaWNoYW8uZ2FvQGludGVs LmNvbQ0KPiA8bWFpbHRvOnpoaWNoYW8uZ2FvQGludGVsLmNvbT4+Ow0KPiA+PiAgICAgIENoYW4s IEFteQ0KPiA+PiAgICAgID4gICAgID4gPGFteS5jaGFuQGludGVsLmNvbSA8bWFpbHRvOmFteS5j aGFuQGludGVsLmNvbT4+DQo+ID4+ICAgICAgPiAgICAgPiAq5Li76aKYOiogUmU6IFtlZGsyLWRl dmVsXSBSRkM6IEFkZCBCYXNlTGliL1F1aWNrU29ydCBpbg0KPiBNZGVQa2cNCj4gPj4gICAgICA+ ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiAgICAgT24gU2VwIDE1LCAyMDIxLCBhdCA2OjI2IFBN LCBnYW9saW1pbmcNCj4gPj4gICAgICA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuDQo+ID4+ICAg ICAgPiAgICAgPiA8bWFpbHRvOmdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4+IHdyb3RlOg0KPiA+ PiAgICAgID4gICAgID4NCj4gPj4gICAgICA+ICAgICA+ICAgICBSYXk6DQo+ID4+ICAgICAgPiAg ICAgPg0KPiA+PiAgICAgID4gICAgID4gICAgIFNvcnRMaWIgaGFzIGJlZW4gYWRkZWQgc2luY2Ug MjAxNS4gSSB3b3VsZA0KPiBzdWdnZXN0IHRvDQo+ID4+ICAgICAgc3RpbGwga2VlcA0KPiA+PiAg ICAgID4gICAgID4gICAgIHRoaXMgbGlicmFyeSBjbGFzcy4gVG8gcmVzb2x2ZSB0aGUgcGFja2Fn ZQ0KPiBkZXBlbmRlbmN5LCBteQ0KPiA+PiAgICAgID4gICAgIHByb3Bvc2FsDQo+ID4+ICAgICAg PiAgICAgPiAgICAgaXMgdG8gbW92ZSB0aGUgbGlicmFyeSBjbGFzcyBoZWFkZXIgZmlsZSBTb3J0 TGliLmgNCj4gZnJvbQ0KPiA+PiAgICAgID4gICAgID4gICAgIE1kZU1vZHVsZVBrZyB0byBNZGVQ a2csIGFuZCBzdGlsbCBrZWVwIHRoZQ0KPiBsaWJyYXJ5DQo+ID4+ICAgICAgaW5zdGFuY2UgaW4N Cj4gPj4gICAgICA+ICAgICA+ICAgICBNZGVNb2R1bGVQa2cuIFRoaXMgcHJvcG9zYWwgaGFzIG5v IGltcGFjdCBvbg0KPiB0aGUgZXhpc3RpbmcNCj4gPj4gICAgICA+ICAgICBwbGF0Zm9ybS4NCj4g Pj4gICAgICA+ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiBJZiB3ZSBhZGQgUXVpY2tTb3J0KCkg QVBJIHRvIHRoZSBCYXNlTGliIGNhbiB3ZSBub3QganVzdA0KPiA+PiAgICAgIHBvcnQgdGhlDQo+ ID4+ICAgICAgPiAgICAgPiBleGlzdGluZyBNZGVNb2R1bGVQa2cvU29ydExpYiB0byB1c2UgUXVp Y2tTb3J0KCkgaW4gdGhlDQo+ID4+ICAgICAgPiAgICAgPiBpbXBsZW1lbnRhdGlvbj8gT3IgaXMg dGhlcmUgc29tZSBvdGhlciB3YXkgdG8gYWRkIHRoZQ0KPiBuZXcNCj4gPj4gICAgICB0aGluZw0K PiA+PiAgICAgID4gICAgIGluIGENCj4gPj4gICAgICA+ICAgICA+IGJhY2t3YXJkIGNvbXBhdGli bGUgd2F5Lg0KPiA+PiAgICAgID4gICAgID4NCj4gPj4gICAgICA+ICAgICA+IFRoYW5rcywNCj4g Pj4gICAgICA+ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiBBbmRyZXcgRmlzaA0KPiA+PiAgICAg ID4gICAgID4NCj4gPj4gICAgICA+ICAgICA+ICAgICBUaGFua3MNCj4gPj4gICAgICA+ICAgICA+ DQo+ID4+ICAgICAgPiAgICAgPiAgICAgTGltaW5nDQo+ID4+ICAgICAgPiAgICAgPg0KPiA+PiAg ICAgID4gICAgID4gICAgICrlj5Hku7bkuroqKjoqZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPj4g ICAgICA+ICAgICA+IDxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+PGRldmVsQGVkazIuZ3Jv dXBzLmlvDQo+ID4+ICAgICAgPiAgICAgPiA8bWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPj4q 5Luj6KGoKioqTmksIFJheQ0KPiA+PiAgICAgID4gICAgID4gICAgICrlj5HpgIHml7bpl7Q6KjIw MjHlubQ55pyIMTTml6UxNDoxNQ0KPiA+PiAgICAgID4gICAgID4gICAgICrmlLbku7bkuro6Kktp bm5leSwgTWljaGFlbCBEDQo+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbQ0KPiA+PiAgICAg ID4gICAgID4gPG1haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4+OyBHYW8sIExpbWlu Zw0KPiA+PiAgICAgID4gICAgID4gICAgIDxsaW1pbmcuZ2FvQGludGVsLmNvbQ0KPiA8bWFpbHRv OmxpbWluZy5nYW9AaW50ZWwuY29tPj47IExpdSwNCj4gPj4gICAgICA+ICAgICA+ICAgICBaaGln dWFuZyA8emhpZ3VhbmcubGl1QGludGVsLmNvbQ0KPiA+PiAgICAgID4gICAgIDxtYWlsdG86emhp Z3VhbmcubGl1QGludGVsLmNvbT4+Ow0KPiA+PiAgICAgID4gICAgID4gICAgIFdhbmcsIEppYW4g SiA8amlhbi5qLndhbmdAaW50ZWwuY29tDQo+ID4+ICAgICAgPiAgICAgPiA8bWFpbHRvOmppYW4u ai53YW5nQGludGVsLmNvbT4+OyBHYW8sIFpoaWNoYW8NCj4gPj4gICAgICA+ICAgICA+ICAgICA8 emhpY2hhby5nYW9AaW50ZWwuY29tDQo+IDxtYWlsdG86emhpY2hhby5nYW9AaW50ZWwuY29tPj4N Cj4gPj4gICAgICA+ICAgICA+ICAgICAq5oqE6YCBOipkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA8 bWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvPjsNCj4gPj4gICAgICA+ICAgICBDaGFuLCBBbXkN Cj4gPj4gICAgICA+ICAgICA+ICAgICA8YW15LmNoYW5AaW50ZWwuY29tDQo+IDxtYWlsdG86YW15 LmNoYW5AaW50ZWwuY29tPj4NCj4gPj4gICAgICA+ICAgICA+ICAgICAq5Li76aKYOipbZWRrMi1k ZXZlbF0gUkZDOiBBZGQgQmFzZUxpYi9RdWlja1NvcnQNCj4gaW4gTWRlUGtnDQo+ID4+ICAgICAg PiAgICAgPg0KPiA+PiAgICAgID4gICAgID4gICAgIEhpIHBhY2thZ2UgbWFpbnRhaW5lcnMgb2Yg TWRlUGtnLA0KPiBNZGVNb2R1bGVQa2cgYW5kDQo+ID4+ICAgICAgU2hlbGxQa2csDQo+ID4+ICAg ICAgPiAgICAgPiAgICAgY29tbXVuaXR5LA0KPiA+PiAgICAgID4gICAgID4NCj4gPj4gICAgICA+ ICAgICA+ICAgICBBIGNvbW1pdCAoVWVmaUNwdVBrZy9DcHVDYWNoZUluZm9MaWI6IFNvcnQNCj4g Pj4gICAgICBDcHVDYWNoZUluZm8gYXJyYXkNCj4gPj4gICAgICA+ICAgICA+DQo+ID4+ICAgICAg Pg0KPiA+Pg0KPiA8aHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL2NvbW1pdC80ZGU3 N2FlOTg5MGQyNDEyNzFmNTQzZTkxOQ0KPiA1YWIzNTE2ZjNhYmVjNj4pDQo+ID4+ICAgICAgPiAg ICAgPiAgICAgdG8gVWVmaUNwdVBrZyBsZXQNCj4gPj4gICAgICA+ICAgICA+ICAgICBVZWZpQ3B1 UGtnIGRlcGVuZCBvbiBNZGVNb2R1bGVQa2cgYmVjYXVzZQ0KPiB0aGUgU29ydExpYg0KPiA+PiAg ICAgIGNsYXNzIGFuZA0KPiA+PiAgICAgID4gICAgID4gICAgIGluc3RhbmNlcyBhcmUgYWxsIGlu IE1kZU1vZHVsZVBrZy4NCj4gPj4gICAgICA+ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiAgICAg VWVmaUNwdVBrZyBkZXBlbmRpbmcgb24gTWRlTW9kdWxlUGtnIGJyZWFrcw0KPiB0aGUgcnVsZSB0 aGF0DQo+ID4+ICAgICAgPiAgICAgPiAgICAg4oCcVWVmaUNwdVBrZyBzaG91bGQgT05MWSBkZXBl bmQgb24gTWRlUGtn4oCdLg0KPiA+PiAgICAgID4gICAgID4NCj4gPj4gICAgICA+ICAgICA+ICAg ICBUbyBhZGRyZXNzIHRoaXMgaXNzdWUsIHRoZXJlIGFyZSB0d28gYXBwcm9hY2hlczoNCj4gPj4g ICAgICA+ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiAgICAgIDEuIER1cGxpY2F0ZSB0aGUgc29y dCBsb2dpYyBpbiBVZWZpQ3B1UGtnIHRvIG5vdA0KPiA+PiAgICAgIGRlcGVuZCBvbg0KPiA+PiAg ICAgID4gICAgID4gICAgICAgICBNZGVNb2R1bGVQa2cvU29ydExpYg0KPiA+PiAgICAgID4gICAg ID4gICAgICAyLiBBZGQgUXVpY2tTb3J0KCkgQVBJIHRvIEJhc2VMaWIgaW4gTWRlUGtnLg0KPiA+ PiAgICAgID4gICAgID4NCj4gPj4gICAgICA+ICAgICA+ICAgICBBcHByb2FjaCAjMiAoTWRlUGtn L0Jhc2VMaWIvUXVpY2tTb3J0KSBtYWtlcw0KPiBtb3JlDQo+ID4+ICAgICAgc2Vuc2UgYmVjYXVz ZQ0KPiA+PiAgICAgID4gICAgID4gICAgIHF1aWNrIHNvcnQgaXMgYSBzdGFuZGFyZCBhbGdvcml0 aG0uDQo+ID4+ICAgICAgPiAgICAgPg0KPiA+PiAgICAgID4gICAgID4gICAgIFdlIGVuY291cmFn ZSBjb25zdW1lcnMgdG8gdXBkYXRlIHRoZWlyIGNvZGUgdG8NCj4gdXNlIHRoZQ0KPiA+PiAgICAg IHF1aWNrDQo+ID4+ICAgICAgPiAgICAgc29ydA0KPiA+PiAgICAgID4gICAgID4gICAgIGluIE1k ZVBrZyBhbmQgZ3JhZHVhbGx5IGRlcHJlY2F0ZSB0b2RheeKAmXMNCj4gPj4gICAgICBNZGVNb2R1 bGVQa2cvU29ydExpYi4NCj4gPj4gICAgICA+ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiAgICAg SWYgeW91IGRvbuKAmXQgaGF2ZSBjb25jZXJucywgSSBwbGFuIHRvOg0KPiA+PiAgICAgID4gICAg ID4NCj4gPj4gICAgICA+ICAgICA+ICAgICAgMS4g4oCcQWRkIFF1aWNrU29ydCgpIHRvIEJhc2VM aWLigJ0gYW5kIHVwZGF0ZSBhbGwNCj4gZXhpc3RpbmcNCj4gPj4gICAgICA+ICAgICBjb25zdW1l cnMNCj4gPj4gICAgICA+ICAgICA+ICAgICAgICAgdG8gdXNlIHRoaXMgQVBJIGluc3RlYWQuDQo+ ID4+ICAgICAgPiAgICAgPg0KPiA+PiAgICAgID4gICAgID4gICAgIFZPSUQNCj4gPj4gICAgICA+ ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiAgICAgRUZJQVBJDQo+ID4+ICAgICAgPiAgICAgPg0K PiA+PiAgICAgID4gICAgID4gICAgIFF1aWNrU29ydCAoDQo+ID4+ICAgICAgPiAgICAgPg0KPiA+ PiAgICAgID4gICAgID4gICBJTiBPVVQgVk9JRCAgICAgICAgICAgICAgICAgICAqQnVmZmVyVA0K PiBvU29ydCwNCj4gPj4gICAgICA+ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiAgICAgICBJTiBD T05TVCBVSU5UTiBDb3VudCwNCj4gPj4gICAgICA+ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiAg ICAgICBJTiBDT05TVCBVSU5UTiBFbGVtZW50U2l6ZSwNCj4gPj4gICAgICA+ICAgICA+DQo+ID4+ ICAgICAgPiAgICAgPiAgIElOICAgICAgIFNPUlRfQ09NUEFSRSAgICAgICAgIENvbXBhcmUNCj4g RnVuY3Rpb24NCj4gPj4gICAgICA+ICAgICA+DQo+ID4+ICAgICAgPiAgICAgPiAgICAgICApOw0K PiA+PiAgICAgID4gICAgID4NCj4gPj4gICAgICA+ICAgICA+ICAgICAgMi4g4oCcQWRkIG5ldyBT aGVsbFBrZy9Tb3J0Q29tcGFyZUxpYuKAnQ0KPiA+PiAgICAgID4gICAgID4NCj4gPj4gICAgICA+ ICAgICA+ICAgICBCYWNrZ3JvdW5kOiBTaGVsbFBrZyByZXF1aXJlcyB0byBzb3J0DQo+ID4+ICAg ICAgZGV2aWNlcGF0aC9zdHJpbmcgc28gMw0KPiA+PiAgICAgID4gICAgIEFQSXMNCj4gPj4gICAg ICA+ICAgICA+ICAgICBpbiBVZWZpU29ydExpYiAoRGV2aWNlUGF0aENvbXBhcmUsDQo+IFN0cmlu Z05vQ2FzZUNvbXBhcmUsDQo+ID4+ICAgICAgPiAgICAgPiAgICAgU3RyaW5nQ29tcGFyZSkgYXJl IHByb3ZpZGVkIGZvciBTaGVsbCB1c2FnZS4gd2UNCj4gY2FuDQo+ID4+ICAgICAgbW92ZSB0aGUg Mw0KPiA+PiAgICAgID4gICAgID4gICAgIEFQSXMgdG8gdGhlIFNvcnRDb21wYXJlTGliIGFuZCB1 cGRhdGUgU2hlbGwgY29kZQ0KPiB0byB1c2UNCj4gPj4gICAgICA+ICAgICA+ICAgICBCYXNlTGli L1F1aWNrU29ydCBkaXJlY3RseSwgd2l0aCB0aGUgc29ydCBjb21wYXJlDQo+ID4+ICAgICAgZnVu Y3Rpb24gZnJvbQ0KPiA+PiAgICAgID4gICAgID4gICAgIFNvcnRDb21wYXJlTGliLg0KPiA+PiAg ICAgID4gICAgID4NCj4gPj4gICAgICA+ICAgICA+ICAgICBBbnkgY29uY2VybnM/DQo+ID4+ICAg ICAgPiAgICAgPg0KPiA+PiAgICAgID4gICAgID4gICAgIFRoYW5rcywNCj4gPj4gICAgICA+ICAg ICA+DQo+ID4+ICAgICAgPiAgICAgPiAgICAgUmF5DQo+ID4+ICAgICAgPiAgICAgPg0KPiA+PiAg ICAgID4gICAgID4NCj4gPj4gICAgICA+DQo+ID4+ICAgICAgPg0KPiA+Pg0KPiA+Pg0KPiANCj4g DQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+IC0tDQo+IA0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJpYW4NCj4gDQo+IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ IA0KPiAgICAgIlJlbWVtYmVyIHRoYXQgaWdub3JhbmNlIGlzIGV4cGVuc2l2ZS4iDQo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gRnJvbSBMTElCDQo+IA0K DQoNCg0KDQoNCg0KDQoNCg==