From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CFBFCC433ED for ; Fri, 7 May 2021 10:14:52 +0000 (UTC) Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by mail.kernel.org (Postfix) with ESMTP id EC01161448 for ; Fri, 7 May 2021 10:14:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EC01161448 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nvidia.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2DFB14013F; Fri, 7 May 2021 12:14:51 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2060.outbound.protection.outlook.com [40.107.223.60]) by mails.dpdk.org (Postfix) with ESMTP id CC29440040; Fri, 7 May 2021 12:14:49 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lUJTyRcjNXAZm2Nl2rOiKzMnAliWfP0K15gDLyFFa9QwbWwDLNE+S+GycnRtNWM6xHklRgHeIiEkPl9q99h+0v0bSWoN1OwBrdjIkCM6YQC3kOBZKWgE5ceaFFX7tdirFmPKXokrENUncLElggR0r+cXzvFoJ1s9MZFBC0qNXu8IFvY2BUD2Z5TOkPOxyJFLrBHi23QQ5yQYlwcfh1vfA2VoBV1xkEv2Rz8Uqt6B0lv17yDzAX638Yl5/iMg67A5Y3PhpIbNKlpGejZ1cAtih4zuZ2O3XHdDHpTgALfnOOo3vzsIQ1L/yZ9oMqER3ph+KdUdBqVkXFwQh5JO4fmztw== 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=AdCl53dwl+rARt8Jgc5wixPjMyLfq5o2V+Gi3H6+voY=; b=ZnLPoIyw3hkAv2e/3IXsxu+GigQJjpzgI4zOh0hJlIP7Xsu/AWlQumzx+xaKfU9sebd5epLomWFTzH8Ujne+Kh4sHFkphf++FcklVy/uWFcpjpt7jb987QdUjSoF26mK1XQx9osQKilolpXJOXwQAwmslciWNC2LMUDbWU9PxVuyF19282tmDaBVwFqdK3nyYIOJgvWgUsBjOZYHVibN6yRn4JZ/pxru3ZABA/3AzhR9wcL3ywQLB5oIbvDx1k9wnWKDnEQug5Y2vyMCxsNuuP0j9eRj7NfnBSk9eWI32wVLsS/QqcDeL890yMtJH2/euY7ZuYbYAwArtVXFD+Xmew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AdCl53dwl+rARt8Jgc5wixPjMyLfq5o2V+Gi3H6+voY=; b=nJQ/8csAQR73pkubRycnT6aZAvGv7WJufXGHXdNQBOgdrXwmmz6Fb/UCKPPwGkb/BqYhqUyPsdgDY3d2mZXo3jxGrYlqTzJJ9OQ1xtqpnfWBshEpPCjU1TMHzbEvfKb+k+CyzOKpwQkoeEx8q8Mz6eEESs5mHkVi9/02i3jTUTqfNtBzZ7PZbrNfvlaYSiPDdooq+fDwmtI8ShWbdELli0PCqUEHeh1cwZZudkhUtwUpq1INFKzyQ4dpsoH18mdqf4SwTtyH2e1FRD/s9ri69xtVNMd5v0BObhq964HfgDeux7DXPiPWHvGiry6honskOK8xBbMUbgs/uEEhrNwarg== Received: from DM6PR12MB3753.namprd12.prod.outlook.com (2603:10b6:5:1c7::18) by DM5PR12MB1692.namprd12.prod.outlook.com (2603:10b6:4:5::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.29; Fri, 7 May 2021 10:14:47 +0000 Received: from DM6PR12MB3753.namprd12.prod.outlook.com ([fe80::c595:e3bc:686c:16a4]) by DM6PR12MB3753.namprd12.prod.outlook.com ([fe80::c595:e3bc:686c:16a4%5]) with mapi id 15.20.4108.029; Fri, 7 May 2021 10:14:47 +0000 From: Slava Ovsiienko To: Feifei Wang , Matan Azrad , Shahaf Shuler CC: "dev@dpdk.org" , nd , "stable@dpdk.org" , Ruifeng Wang , nd Thread-Topic: [PATCH v1 3/4] net/mlx5: fix rebuild bug for Memory Region cache Thread-Index: AQHXG8cWFxZYWyFpJUm7yYF997hX4qqwqlRAgAFnd4CACkdrsIAAwjqAgAAa6QCAAAXPQIAADmqAgBjDdYCAAIjB8IABSC0AgAA1WrA= Date: Fri, 7 May 2021 10:14:46 +0000 Message-ID: References: <20210318071840.359957-1-feifei.wang2@arm.com> <20210318071840.359957-4-feifei.wang2@arm.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [188.163.75.124] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e268cb8b-a24f-4905-9b56-08d91140f13f x-ms-traffictypediagnostic: DM5PR12MB1692: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: oDEHoJP7uNjZcvUZcERwkICzZcrnB980Klipzw0RDt3N09JADMdXY0GsPkuBeJs54iprvNmxYZQrecIs2GoGtWojzQ43DfICR8vTL26PxUJHtKWZi3xbopbS6b9cJs8OwNPuZYtruvbs4yuL7NR8TSP5rou9tjVEOHy5kCAx5x692q7LP0jYn6L24iEaidvfLzMXMNxeIsmQpZJgUPCIuq/L6BiG7aurnsQzwvriR+OBA+dP/cHktf3EKoGCWxuQRh68LF1KhGBUm+sHSgpuPiEwZ4S03HSiKDfn6mBLXdcoJXq1MgRkw4TSHSBChsA0qs2KyD6+FcPWV8lNN+EvtH3arlv70UO+owLTbqrttupSffx8FrCeguA4Ha1QWEAhRPM5g2IhqV6E72hLjMphC85Y+BxM9zzKglxtstMu8ldvpLZeirhgvj2VwFGpmifj9dLtjIsJXiaG+jWwYeX1D71qX2Ea/kYai/SJG2LYc/9HX/0dEvh3ITbw2+f1kU8/t4Zee2Miv2vmFBFIJKRncysiNVUV0iuxIfLjvFpKyWvltJbJUgDjS8gG78UGCXk3UB1faploBMQCpR3XRw1taoyvWcwaPuWeeRH2Qv6gVW0= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB3753.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(366004)(396003)(39860400002)(346002)(376002)(76116006)(8676002)(186003)(83380400001)(2906002)(86362001)(53546011)(26005)(9686003)(4326008)(6506007)(55236004)(71200400001)(55016002)(33656002)(7696005)(122000001)(5660300002)(8936002)(52536014)(54906003)(110136005)(38100700002)(316002)(66476007)(66556008)(66946007)(64756008)(66446008)(30864003)(6636002)(478600001)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?MDVwc0Nmd1ZsYzh1ZWp3UWVQRU5xWmFZUitSN0Z6SytndWVCQ3pGRnVxRFlK?= =?utf-8?B?LzY1cUk1WmVtL1NOMHMxa3p0VnBtT05BYktxbzVWWTQ0UWRURG5hOXpwZFhv?= =?utf-8?B?NUhTcWYxdTIybGFLRkVnSjJ1ZE5aV0ZKbFdaZjVkZkNwSGE0TS8yWWZGT3BV?= =?utf-8?B?NndqZC9UNWZOQ1RSL1JjSVlCU2IxTmt6dnViektzQ0RTcGhpcjAzN1RLS3BU?= =?utf-8?B?ZzhOVTRVN203a1ZKRkhiaUlTbW9zQjh0RUJRMXVxK1RNbXV2RVpuTzlVb1ZI?= =?utf-8?B?ZzFTQW9pWmRLWkZKWFpYY2s0eVVIb0xKU2pwYmdnQTFuM1o2SGJUMnlhOFRx?= =?utf-8?B?MXduZnFMU2htdlYzc0tQQUZIbDM1bEo5M1VodTIxcEZNZVF1TlFuREN2WEc2?= =?utf-8?B?OE96bXpyUnBVL3FxYlZnWFA4L3N6UkFQWWJmMmlWWkM3NDIwMHltRVZldWtL?= =?utf-8?B?ZTRjblUwdmJxUlR6NzMxbGhWbmNtdWlRd1gvQ094UTJVTzRleTl4eDZIdjVM?= =?utf-8?B?RVNEMXBoZjdVbnVXWXo4NXB6ck5NQytLVXpNODkvMnhnOWJMalUwOVh3WVE2?= =?utf-8?B?NTVyNkR3REJ3TC9jMEFtbDVwdmRwOTkrQ1hMWFdndXZyMklLK2h3TzBBcDA4?= =?utf-8?B?SVA2WjRTSnVuMmd0Z0RFNFhJZlFJZyt2ZDBiNUVRSkxVa09xQ0tJU0duZytH?= =?utf-8?B?cFFNKzRuT0k2dm5QQmFQT2VkRVVYZFNJS3kveUhydTl3aktGM0RMR0NjY2Ra?= =?utf-8?B?dFBaTkV2N29QUFRHNm5mcS9JR2VEUGFURjljOEE0QTFIbDI2YmJTbDMwMWkz?= =?utf-8?B?UzdVVTZIdGRBQkcvV3VxQWh4UGhDcXZWTHpTT2RrdG41dkRmR0JMaFowRTcw?= =?utf-8?B?UTZ6M0ZXblpheHJYS1pJYXlqbXdlRkFRQ3BpalJsY0srbld4WWpGaXVyRVRE?= =?utf-8?B?UFlrd2xGdUpBZjlKV1JHcytvZmg3emV5VXhveStCUEplbUNyb0lxMGNHdmwr?= =?utf-8?B?SHE2QWNnaFc1MFNKbjFZR041eVFsZllzeFFqVXhaTXJOV2o4bkVVTkRKbU5r?= =?utf-8?B?RG0vcjdzSHY4ZmpRM21UR1UrUHJpa1dFeGpmTDk4QjdvdE4xWGZoOFBPdGk1?= =?utf-8?B?NU1XdDAxeldLM1hwb2RzdlcvY21LRlczQkcxUXJHdXpNV1NCUmdwUW1ob0Nu?= =?utf-8?B?RVRuSGxEK3dNeHgvMzZjZDNia3dEZXZabGNlaUZybWJmMGlOMlBqbS8zSFU4?= =?utf-8?B?VEZGZHpqUkd2d3lPakZENmRwbkZvT3E3QnN6Sjd3MDBWbmdFS3F2TnU4TlA4?= =?utf-8?B?dEQrVmdLRFg1R0pwNDBHOWZPVnJzZDNWc0NPb2hhYlNxYXV5UG1sTkZiTFJY?= =?utf-8?B?MmZyekNoSzd5ajRERlhya0FBS3dmQUwzNmRZVTYwY1NsZklSZnI1M2FGR01T?= =?utf-8?B?Zk52bEh6ZFQ4TWd4d2g2ZndnbUZRSUNwbEpCeUFITm1xTDVOR0FTNGkvVUhp?= =?utf-8?B?bjlDQWQzMXFEMGhNRHYzdXVpQ1Evcy8wS3hyeENBWUttMVVsT3ZoeFg3SnF5?= =?utf-8?B?SjNpRThyVHhsYk1wa2lGRy9ZY1ZYTk1QSTZCQ2N6T3ZEL05TWTZMdWhnUjFU?= =?utf-8?B?R016bk81RFpDOTE1UlN3ZllSNU1vckUxZE84bjdaeUlyVEh0ekhZU3ZtZ28y?= =?utf-8?B?UVhYam01d0w4L1haYWlDQnlBdEl0QXgwWVI1eWprYjFja05OZVJuRFpWcUFW?= =?utf-8?Q?6JKG7wSMh9DXuejs3ozr/Iewclgq9CinRy0RoHQ?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3753.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e268cb8b-a24f-4905-9b56-08d91140f13f X-MS-Exchange-CrossTenant-originalarrivaltime: 07 May 2021 10:14:47.0783 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: R8KKTiL1mz9WnlGmF7I3M6InB7jt+s24hHls456xKn5nRQkIo18JNPVMrYyjzfPJkHp374alDbMix2yz1iKfCQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1692 Subject: Re: [dpdk-dev] [PATCH v1 3/4] net/mlx5: fix rebuild bug for Memory Region cache X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGksIEZlaWZlaQ0KDQpXZSBzaG91bGQgY29uc2lkZXIgdGhlIGxvY2tzIGluIHlvdXIgc2NlbmFy aW8gLSBpdCBpcyBjcnVjaWFsIGZvciB0aGUgY29tcGxldGUgbW9kZWwgZGVzY3JpcHRpb246DQoN CkhvdyBhZ2VudF8xIChpbiB5b3VyIHRlcm1zKSByZWJ1aWxkcyBnbG9iYWwgY2FjaGU6DQoNCjFh KSBsb2NrKCkNCjFiKSByZWJ1aWxkKGdsb2JhbCBjYWNoZSkNCjFjKSB1cGRhdGUoZGV2X2dlbikN CjFkKSB3bWIoKQ0KMWUpIHVubG9jaygpDQoNCkhvdyBhZ2VudF8yIGNoZWNrczoNCg0KMmEpIGNo ZWNrKGRldl9nZW4pIChhc3N1bWUgcG9zaXRpdmUgLSBjaGFuZ2VkKQ0KMmIpIGNsZWFyKGxvY2Fs X2NhY2hlKQ0KMmMpIG1pc3Mob24gZW1wdHkgbG9jYWxfY2FjaGUpIC0gPiBldmVudHVhbGx5IGl0 IGdvZXMgdG8gbXJfbG9va3VwX2NhY2hlcygpDQoyZCkgbG9jaygpDQoyZSkgZ2V0KG5ldyBNUikN CjJmKSB1bmxvY2soKQ0KMmcpIHVwZGF0ZShsb2NhbCBjYWNoZSB3aXRoIG9idGFpbmVkIG5ldyBN UikNCg0KSGVuY2UsIGV2ZW4gaWYgMWMpIGJlY29tZXMgdmlzaWJsZSBpbiAyYSkgYmVmb3JlIDFi KSBjb21taXR0ZWQgKHNheSwgZHVlIHRvIG91dC1vZi1vcmRlciBBcmNoKSAtIHRoZSBhZ2VudCAy DQp3b3VsZCBiZSBibG9ja2VkIG9uIDJkKSBhbmQgc2NlbmFyaW8gZGVwaWN0ZWQgb24geW91ciBG aWcyIHdvdWxkIG5vdCBoYXBwZW4gKGFnZW50XzIgd2lsbCB3YWl0IGJlZm9yZSBzdGVwIDMNCnRp bGwgYWdlbnQgMSB1bmxvY2tzIGFmdGVyIGl0cyBzdGVwIDUpLg0KDQpXaXRoIGJlc3QgcmVnYXJk cywNClNsYXZhDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVpZmVp IFdhbmcgPEZlaWZlaS5XYW5nMkBhcm0uY29tPg0KPiBTZW50OiBGcmlkYXksIE1heSA3LCAyMDIx IDk6MzY+IFRvOiBTbGF2YSBPdnNpaWVua28gPHZpYWNoZXNsYXZvQG52aWRpYS5jb20+OyBNYXRh biBBenJhZA0KPiA8bWF0YW5AbnZpZGlhLmNvbT47IFNoYWhhZiBTaHVsZXIgPHNoYWhhZnNAbnZp ZGlhLmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9yZzsgbmQgPG5kQGFybS5jb20+OyBzdGFibGVAZHBk ay5vcmc7IFJ1aWZlbmcgV2FuZw0KPiA8UnVpZmVuZy5XYW5nQGFybS5jb20+OyBuZCA8bmRAYXJt LmNvbT4NCj4gU3ViamVjdDog5Zue5aSNOiBbUEFUQ0ggdjEgMy80XSBuZXQvbWx4NTogZml4IHJl YnVpbGQgYnVnIGZvciBNZW1vcnkgUmVnaW9uDQo+IGNhY2hlDQo+IA0KPiBIaSwgU2xhdmENCj4g DQo+IFRoYW5rcyB2ZXJ5IG11Y2ggZm9yIHlvdXIgcmVwbHkuDQo+IA0KPiA+IC0tLS0t6YKu5Lu2 5Y6f5Lu2LS0tLS0NCj4gPiDlj5Hku7bkuro6IFNsYXZhIE92c2lpZW5rbyA8dmlhY2hlc2xhdm9A bnZpZGlhLmNvbT4NCj4gPiDlj5HpgIHml7bpl7Q6IDIwMjHlubQ15pyINuaXpSAxOToyMg0KPiA+ IOaUtuS7tuS6ujogRmVpZmVpIFdhbmcgPEZlaWZlaS5XYW5nMkBhcm0uY29tPjsgTWF0YW4gQXpy YWQNCj4gPiA8bWF0YW5AbnZpZGlhLmNvbT47IFNoYWhhZiBTaHVsZXIgPHNoYWhhZnNAbnZpZGlh LmNvbT4NCj4gPiDmioTpgIE6IGRldkBkcGRrLm9yZzsgbmQgPG5kQGFybS5jb20+OyBzdGFibGVA ZHBkay5vcmc7IFJ1aWZlbmcgV2FuZw0KPiA+IDxSdWlmZW5nLldhbmdAYXJtLmNvbT47IG5kIDxu ZEBhcm0uY29tPg0KPiA+IOS4u+mimDogUkU6IFtQQVRDSCB2MSAzLzRdIG5ldC9tbHg1OiBmaXgg cmVidWlsZCBidWcgZm9yIE1lbW9yeSBSZWdpb24NCj4gPiBjYWNoZQ0KPiA+DQo+ID4gSGksIEZl aWZlaQ0KPiA+DQo+ID4gU29ycnksIEkgZG8gbm90IGZvbGxvdyB3aHkgd2Ugc2hvdWxkIGdldCBy aWQgb2YgdGhlIGxhc3QgKGFmdGVyDQo+ID4gZGV2X2dlbiB1cGRhdGUpIHdtYi4NCj4gPiBXZSd2 ZSByZWJ1aWx0IHRoZSBnbG9iYWwgY2FjaGUsIHdlIHNob3VsZCBub3RpZnkgb3RoZXIgYWdlbnRz IGl0J3MNCj4gPiBoYXBwZW5lZCBhbmQgdGhleSBzaG91bGQgZmx1c2ggbG9jYWwgY2FjaGVzLiBT bywgZGV2X2dlbiBjaGFuZ2Ugc2hvdWxkDQo+ID4gYmUgbWFkZSB2aXNpYmxlIHRvIG90aGVyIGFn ZW50cyB0byB0cmlnZ2VyIHRoaXMgYWN0aXZpdHkgYW5kIHRoZQ0KPiA+IHNlY29uZCB3bWIgaXMg aGVyZSB0byBlbnN1cmUgdGhpcy4NCj4gDQo+IDEuIEZvciB0aGUgZmlyc3QgcHJvYmxlbSB3aHkg d2Ugc2hvdWxkIGdldCByaWQgb2YgdGhlIGxhc3Qgd21iIGFuZCBtb3ZlIGl0DQo+IGJlZm9yZSBk ZXZfZ2VuIHVwZGF0ZWQsIEkgdGhpbmsgb3VyIGF0dGVudGlvbiBpcyBob3cgdGhlIHdtYiBpbXBs ZW1lbnRzDQo+IHRoZSBzeW5jaHJvbml6YXRpb24gYmV0d2VlbiBtdWx0aXBsZSBhZ2VudHMuDQo+ IAkJCQkJRmlnMQ0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IC0t LS0tLS0NCj4gVGltZXNsb3QgICAgICAgIAkJYWdlbnRfMSAgICAgICAgICAgICAgIAkJICAgYWdl bnRfMg0KPiAxICAgICAgICAgIAkJcmVidWlsZCBnbG9iYWwgY2FjaGUNCj4gMiAgICAgICAgICAg ICAgICAgICAgICAgCQl3bWINCj4gMyAgICAgICAgICAgIAkJICAgICB1cGRhdGUgZGV2X2dlbiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBsb2FkIGNoYW5nZWQNCj4gZGV2X2dlbg0KPiA0ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAkJCSAgICAgICAgCSAgICAgICAgICAgcmVidWls ZCBsb2NhbCBjYWNoZQ0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ IC0tLS0tLS0NCj4gDQo+IEZpcnN0LCB3bWIgaXMgb25seSBmb3IgbG9jYWwgdGhyZWFkIHRvIGtl ZXAgdGhlIG9yZGVyIGJldHdlZW4gbG9jYWwgd3JpdGUtDQo+IHdyaXRlIDoNCj4gQmFzZWQgb24g dGhlIHBpY3R1cmUgYWJvdmUsIGZvciBhZ2VudF8xLCB3bWIga2VlcHMgdGhlIG9yZGVyIHRoYXQN Cj4gcmVidWlsZGluZyBnbG9iYWwgY2FjaGUgaXMgYWx3YXlzIGJlZm9yZSB1cGRhdGluZyBkZXZf Z2VuLg0KPiANCj4gU2Vjb25kLCBhZ2VudF8xIGNvbW11bmljYXRlcyB3aXRoIGFnZW50XzIgYnkg dGhlIGdsb2JhbCB2YXJpYWJsZQ0KPiAiZGV2X2dlbiIgOg0KPiBJZiBhZ2VudF8xIHVwZGF0ZXMg ZGV2X2dlbiwgYWdlbnRfMiB3aWxsIGxvYWQgaXQgYW5kIHRoZW4gaXQga25vd3MgaXQgc2hvdWxk DQo+IHJlYnVpbGQgbG9jYWwgY2FjaGUNCj4gDQo+IEZpbmFsbHksIGFnZW50XzIgcmVidWlsZHMg bG9jYWwgY2FjaGUgYWNjb3JkaW5nIHRvIHdoZXRoZXIgYWdlbnRfMSBoYXMgcmVidWlsdA0KPiBn bG9iYWwgY2FjaGUsIGFuZCBhZ2VudF8yIGtub3dzIHRoaXMgaW5mb3JtYXRpb24gYnkgdGhlIHZh cmlhYmxlICJkZXZfZ2VuIi4NCj4gCQkJCQlGaWcyDQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4gLS0tLS0tLQ0KPiBUaW1lc2xvdCAgICAgICAgCQlhZ2VudF8xICAg ICAgICAgICAgICAgCQkgICBhZ2VudF8yDQo+IDEJCSAgICAgICAgdXBkYXRlIGRldl9nZW4NCj4g MgkJCQkJCSAgICAgIGxvYWQgY2hhbmdlZCBkZXZfZ2VuDQo+IDMJCQkJCQkgICAgICAgICAgcmVi dWlsZCBsb2NhbCBjYWNoZQ0KPiA0ICAgICAgICAJCSAgICByZWJ1aWxkIGdsb2JhbCBjYWNoZQ0K PiA1CQkJIHdtYg0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IC0t LS0tLS0NCj4gDQo+IEhvd2V2ZXIsIGluIGFybSBwbGF0Zm9ybSwgaWYgd21iIGlzIGFmdGVyIGRl dl9nZW4gdXBkYXRlZCwgImRldl9nZW4iIG1heQ0KPiBiZSB1cGRhdGVkIGJlZm9yZSBhZ2VudF8x IHJlYnVpbGRpbmcgZ2xvYmFsIGNhY2hlLCB0aGVuIGFnZW50XzIgbWF5YmUNCj4gcmVjZWl2ZSBl cnJvciBtZXNzYWdlIGFuZCByZWJ1aWxkIGl0cyBsb2NhbCBjYWNoZSBpbiBhZHZhbmNlLg0KPiAN Cj4gVG8gc3VtbWFyaXplLCBpdCBpcyBub3QgaW1wb3J0YW50IHdoaWNoIHRpbWUgb3RoZXIgYWdl bnRzIGNhbiBzZWUgdGhlDQo+IGNoYW5nZWQgZ2xvYmFsIHZhcmlhYmxlICJkZXZfZ2VuIi4NCj4g KEFjdHVhbGx5LCB3bWIgYWZ0ZXIgImRldl9nZW4iIGNhbm5vdCBlbnN1cmUgY2hhbmdlZCAiZGV2 X2dlbiIgaXMNCj4gY29tbWl0dGVkIHRvIHRoZSBnbG9iYWwpLg0KPiBJdCBpcyBtb3JlIGltcG9y dGFudCB0aGF0IGlmIG90aGVyIGFnZW50cyBzZWUgdGhlIGNoYW5nZWQgImRldl9nZW4iLCB0aGV5 DQo+IGFsc28gY2FuIGtub3cgZ2xvYmFsIGNhY2hlIGhhcyBiZWVuIHVwZGF0ZWQuDQo+IA0KPiA+ IE9uZSBtb3JlIHBvaW50LCBkdWUgdG8gcmVnaXN0ZXJpbmcgbmV3L2Rlc3Ryb3lpbmcgZXhpc3Rp bmcgTVIgaW52b2x2ZXMNCj4gPiBGVyAodmlhIGtlcm5lbCkgY2FsbHMsIGl0IHRha2VzIHNvIG1h bnkgQ1BVIGN5Y2xlcyB0aGF0IHdlIGNvdWxkDQo+ID4gbmVnbGVjdCB3bWIgb3ZlcmhlYWQgYXQg YWxsLg0KPiANCj4gV2UganVzdCBtb3ZlIHRoZSBsYXN0IHdtYiBpbnRvIHRoZSByaWdodCBwbGFj ZSwgYW5kIG5vdCBkZWxldGUgaXQgZm9yDQo+IHBlcmZvcm1hbmNlLg0KPiANCj4gPg0KPiA+IEFs c28sIHJlZ2FyZGluZyB0aGlzOg0KPiA+DQo+ID4gID4gPiBBbm90aGVyIHF1ZXN0aW9uIHN1ZGRl bmx5IG9jY3VycmVkIHRvIG1lLCBpbiBvcmRlciB0byBrZWVwIHRoZSAgPg0KPiA+ID4gb3JkZXIg dGhhdCByZWJ1aWxkaW5nIGdsb2JhbCBjYWNoZSBiZWZvcmUgdXBkYXRpbmcg4oCdZGV2X2dlbuKA nCwgdGhlICA+DQo+ID4gPiB3bWIgc2hvdWxkIGJlIGJlZm9yZSB1cGRhdGluZyAiZGV2X2dlbiIg cmF0aGVyIHRoYW4gYWZ0ZXIgaXQuDQo+ID4gID4gPiBPdGhlcndpc2UsIGluIHRoZSBvdXQtb2Yt b3JkZXIgcGxhdGZvcm1zLCBjdXJyZW50IG9yZGVyIGNhbm5vdCBiZQ0KPiBrZXB0Lg0KPiA+DQo+ ID4gaXQgaXMgbm90IGNsZWFyIHdoeSBvcmRlcmluZyBpcyBpbXBvcnRhbnQgLSBnbG9iYWwgY2Fj aGUgdXBkYXRlIGFuZA0KPiA+IGRldl9nZW4gY2hhbmdlIGhhcHBlbiB1bmRlciBzcGlubG9jayBw cm90ZWN0aW9uLCBzbyBvbmx5IHRoZSBsYXN0IHdtYg0KPiA+IGlzIG1lYW5pbmdmdWwuDQo+ID4N Cj4gDQo+IDIuIFRoZSBzZWNvbmQgZnVuY3Rpb24gb2Ygd21iIGJlZm9yZSAiZGV2X2dlbiIgdXBk YXRlZCBpcyBmb3INCj4gcGVyZm9ybWFuY2UgYWNjb3JkaW5nIHRvIG91ciBwcmV2aW91cyBkaXNj dXNzaW9uLg0KPiBBY2NvcmRpbmcgdG8gRmlnMiwgaWYgdGhlcmUgaXMgbm8gd21iIGJldHdlZW4g Imdsb2JhbCBjYWNoZSB1cGRhdGVkIiBhbmQNCj4gImRldl9nZW4gdXBkYXRlZCIsICJkZXZfZ2Vu IiBtYXkgdXBkYXRlIGJlZm9yZSBnbG9iYWwgY2FjaGUgdXBkYXRlZC4NCj4gDQo+IFRoZW4gYWdl bnRfMiBtYXkgc2VlIHRoZSBjaGFuZ2VkICJkZXZfZ2VuIiBhbmQgZmx1c2ggZW50aXJlIGxvY2Fs IGNhY2hlIGluDQo+IGFkdmFuY2UuDQo+IA0KPiBUaGlzIGVudGlyZSBmbHVzaCBjYW4gZGVncmFk ZSB0aGUgcGVyZm9ybWFuY2U6DQo+ICJ0aGUgbG9jYWwgY2FjaGUgaXMgZ2V0dGluZyBlbXB0eSBh bmQgY2FuJ3QgcHJvdmlkZSB0cmFuc2xhdGlvbiBmb3Igb3RoZXIgdmFsaWQNCj4gKG5vdCBiZWlu ZyByZW1vdmVkKSBNUnMsIGFuZCB0aGUgdHJhbnNsYXRpb24gaGFzIHRvIGxvb2sgdXAgaW4gdGhl IGdsb2JhbA0KPiBjYWNoZSwgdGhhdCBpcyBsb2NrZWQgbm93IGZvciByZWJ1aWxkaW5nLCB0aGlz IGNhdXNlcyB0aGUgZGVsYXlzIGluIGRhdGEgcGF0aCBvbg0KPiBhY3F1aXJpbmcgZ2xvYmFsIGNh Y2hlIGxvY2suIg0KPiANCj4gRnVydGhlcm1vcmUsIHNwaW5sb2NrIGlzIGp1c3QgZm9yIGdsb2Jh bCBjYWNoZSwgbm90IGZvciBkZXZfZ2VuIGFuZCBsb2NhbA0KPiBjYWNoZS4NCj4gDQo+ID4gVG8g c3VtbWFyaXplLCBpbiBteSBvcGluaW9uOg0KPiA+IC0gaWYgeW91IHNlZSBzb21lIGlzc3VlIHdp dGggb3JkZXJpbmcgb2YgZ2xvYmFsIGNhY2hlIHVwZGF0ZS9kZXZfZ2VuDQo+ID4gc2lnbmFsbGlu ZywNCj4gPiAgIGNvdWxkIHlvdSwgcGxlYXNlLCBlbGFib3JhdGU/IEknbSBub3Qgc3VyZSB3ZSBz aG91bGQgbWFpbnRhaW4gYW4NCj4gPiBvcmRlciAoZHVlIHRvIHNwaW5sb2NrIHByb3RlY3Rpb24p DQo+ID4gLSB0aGUgbGFzdCBydGVfc21wX3dtYigpIGFmdGVyIGRldl9nZW4gaW5jcmVtZW50aW5n IHNob3VsZCBiZSBrZXB0DQo+ID4gaW50YWN0DQo+ID4NCj4gDQo+IEF0IGxhc3QsIGZvciBteSB2 aWV3LCB0aGVyZSBhcmUgdHdvIGZ1bmN0aW9ucyB0aGF0IG1vdmluZyB3bWIgYmVmb3JlDQo+ICJk ZXZfZ2VuIg0KPiBmb3IgdGhlIHdyaXRlLXdyaXRlIG9yZGVyOg0KPiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiBhKSByZWJ1aWxkIGdsb2JhbCBjYWNoZTsNCj4gYikgcnRlX3Nt cF93bWIoKTsNCj4gYykgdXBkYXRpbmcgZGV2X2dlbg0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KPiAxLiBBY2hpZXZlIHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIG11bHRpcGxl IHRocmVhZHMgaW4gdGhlIHJpZ2h0IHdheSAyLg0KPiBQcmV2ZW50IG90aGVyIGFnZW50cyBmcm9t IGZsdXNoaW5nIGxvY2FsIGNhY2hlIGVhcmx5IHRvIGVuc3VyZSBwZXJmb3JtYW5jZQ0KPiANCj4g QmVzdCBSZWdhcmRzDQo+IEZlaWZlaQ0KPiANCj4gPiBXaXRoIGJlc3QgcmVnYXJkcywNCj4gPiBT bGF2YQ0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTog RmVpZmVpIFdhbmcgPEZlaWZlaS5XYW5nMkBhcm0uY29tPg0KPiA+ID4gU2VudDogVGh1cnNkYXks IE1heSA2LCAyMDIxIDU6NTINCj4gPiA+IFRvOiBTbGF2YSBPdnNpaWVua28gPHZpYWNoZXNsYXZv QG52aWRpYS5jb20+OyBNYXRhbiBBenJhZA0KPiA+ID4gPG1hdGFuQG52aWRpYS5jb20+OyBTaGFo YWYgU2h1bGVyIDxzaGFoYWZzQG52aWRpYS5jb20+DQo+ID4gPiBDYzogZGV2QGRwZGsub3JnOyBu ZCA8bmRAYXJtLmNvbT47IHN0YWJsZUBkcGRrLm9yZzsgUnVpZmVuZyBXYW5nDQo+ID4gPiA8UnVp ZmVuZy5XYW5nQGFybS5jb20+OyBuZCA8bmRAYXJtLmNvbT4NCj4gPiA+IFN1YmplY3Q6IOWbnuWk jTogW1BBVENIIHYxIDMvNF0gbmV0L21seDU6IGZpeCByZWJ1aWxkIGJ1ZyBmb3IgTWVtb3J5DQo+ ID4gPiBSZWdpb24gY2FjaGUNCj4gPiA+DQo+ID4gPiBIaSwgU2xhdmENCj4gPiA+DQo+ID4gPiBX b3VsZCB5b3UgaGF2ZSBtb3JlIGNvbW1lbnRzIGFib3V0IHRoaXMgcGF0Y2g/DQo+ID4gPiBGb3Ig bXkgc2lnaHQsIG9ubHkgb25lIHdtYiBiZWZvcmUgImRldl9nZW4iIHVwZGF0aW5nIGlzIGVub3Vn aCB0bw0KPiA+ID4gc3luY2hyb25pemUuDQo+ID4gPg0KPiA+ID4gVGhhbmtzIHZlcnkgbXVjaCBm b3IgeW91ciBhdHRlbnRpb24uDQo+ID4gPg0KPiA+ID4NCj4gPiA+IEJlc3QgUmVnYXJkcw0KPiA+ ID4gRmVpZmVpDQo+ID4gPg0KPiA+ID4gPiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+ID4gPiA+ IOWPkeS7tuS6ujogRmVpZmVpIFdhbmcNCj4gPiA+ID4g5Y+R6YCB5pe26Ze0OiAyMDIx5bm0NOac iDIw5pelIDE2OjQyDQo+ID4gPiA+IOaUtuS7tuS6ujogU2xhdmEgT3ZzaWllbmtvIDx2aWFjaGVz bGF2b0BudmlkaWEuY29tPjsgTWF0YW4gQXpyYWQNCj4gPiA+ID4gPG1hdGFuQG52aWRpYS5jb20+ OyBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG52aWRpYS5jb20+DQo+ID4gPiA+IOaKhOmAgTogZGV2 QGRwZGsub3JnOyBuZCA8bmRAYXJtLmNvbT47IHN0YWJsZUBkcGRrLm9yZzsgUnVpZmVuZw0KPiA+ IFdhbmcNCj4gPiA+ID4gPFJ1aWZlbmcuV2FuZ0Bhcm0uY29tPjsgbmQgPG5kQGFybS5jb20+DQo+ ID4gPiA+IOS4u+mimDog5Zue5aSNOiBbUEFUQ0ggdjEgMy80XSBuZXQvbWx4NTogZml4IHJlYnVp bGQgYnVnIGZvciBNZW1vcnkNCj4gUmVnaW9uDQo+ID4gPiA+IGNhY2hlDQo+ID4gPiA+DQo+ID4g PiA+IEhpLCBTbGF2YQ0KPiA+ID4gPg0KPiA+ID4gPiBJIHRoaW5rIHRoZSBzZWNvbmQgd21iIGNh biBiZSByZW1vdmVkLg0KPiA+ID4gPiBBcyBJIGtub3csIHdtYiBpcyBqdXN0IGEgYmFycmllciB0 byBrZWVwIHRoZSBvcmRlciBiZXR3ZWVuIHdyaXRlDQo+ID4gPiA+IGFuZA0KPiA+IHdyaXRlLg0K PiA+ID4gPiBhbmQgaXQgY2Fubm90IHRlbGwgdGhlIENQVSB3aGVuIGl0IHNob3VsZCBjb21taXQg dGhlIGNoYW5nZXMuDQo+ID4gPiA+DQo+ID4gPiA+IEl0IGlzIHVzdWFsbHkgdXNlZCBiZWZvcmUg Z3VhcmQgdmFyaWFibGUgdG8ga2VlcCB0aGUgb3JkZXIgdGhhdA0KPiA+ID4gPiB1cGRhdGluZyBn dWFyZCB2YXJpYWJsZSBhZnRlciBzb21lIGNoYW5nZXMsIHdoaWNoIHlvdSB3YW50IHRvDQo+ID4g PiA+IHJlbGVhc2UsDQo+ID4gPiBoYXZlIGJlZW4gZG9uZS4NCj4gPiA+ID4NCj4gPiA+ID4gRm9y IGV4YW1wbGUsIGZvciB0aGUgd21iICBhZnRlciBnbG9iYWwgY2FjaGUgdXBkYXRlL2JlZm9yZQ0K PiA+ID4gPiBhbHRlcmluZyBkZXZfZ2VuLCBpdCBjYW4gZW5zdXJlIHRoZSBvcmRlciB0aGF0IHVw ZGF0aW5nIGdsb2JhbA0KPiA+ID4gPiBjYWNoZSBiZWZvcmUgYWx0ZXJpbmcNCj4gPiA+ID4gZGV2 X2dlbjoNCj4gPiA+ID4gMSlJZiBvdGhlciBhZ2VudCBsb2FkIHRoZSBjaGFuZ2VkICJkZXZfZ2Vu IiwgaXQgY2FuIGtub3cgdGhlDQo+ID4gPiA+IGdsb2JhbCBjYWNoZSBoYXMgYmVlbiB1cGRhdGVk Lg0KPiA+ID4gPiAyKUlmIG90aGVyIGFnZW50cyBsb2FkIHRoZSB1bmNoYW5nZWQsICJkZXZfZ2Vu IiwgaXQgbWVhbnMgdGhlDQo+ID4gPiA+IGdsb2JhbCBjYWNoZSBoYXMgbm90IGJlZW4gdXBkYXRl ZCwgYW5kIHRoZSBsb2NhbCBjYWNoZSB3aWxsIG5vdCBiZQ0KPiBmbHVzaGVkLg0KPiA+ID4gPg0K PiA+ID4gPiBBcyBhIHJlc3VsdCwgd2UgdXNlICB3bWIgYW5kIGd1YXJkIHZhcmlhYmxlICJkZXZf Z2VuIiB0byBlbnN1cmUNCj4gPiA+ID4gdGhlIGdsb2JhbCBjYWNoZSB1cGRhdGluZyBpcyAidmlz aWJsZSIuDQo+ID4gPiA+IFRoZSAidmlzaWJsZSIgbWVhbnMgd2hlbiB1cGRhdGluZyBndWFyZCB2 YXJpYWJsZSAiZGV2X2dlbiIgaXMNCj4gPiA+ID4ga25vd24gYnkgb3RoZXIgYWdlbnRzLCB0aGV5 IGFsc28gY2FuIGNvbmZpcm0gZ2xvYmFsIGNhY2hlIGhhcyBiZWVuDQo+ID4gPiA+IHVwZGF0ZWQg aW4gdGhlIG1lYW53aGlsZS4gVGh1cywganVzdCBvbmUgd21iIGJlZm9yZSBhbHRlcmluZw0KPiA+ ID4gPiBkZXZfZ2VuIGNhbiBlbnN1cmUNCj4gPiA+IHRoaXMuDQo+ID4gPiA+DQo+ID4gPiA+IEJl c3QgUmVnYXJkcw0KPiA+ID4gPiBGZWlmZWkNCj4gPiA+ID4NCj4gPiA+ID4gPiAtLS0tLemCruS7 tuWOn+S7ti0tLS0tDQo+ID4gPiA+ID4g5Y+R5Lu25Lq6OiBTbGF2YSBPdnNpaWVua28gPHZpYWNo ZXNsYXZvQG52aWRpYS5jb20+DQo+ID4gPiA+ID4g5Y+R6YCB5pe26Ze0OiAyMDIx5bm0NOaciDIw 5pelIDE1OjU0DQo+ID4gPiA+ID4g5pS25Lu25Lq6OiBGZWlmZWkgV2FuZyA8RmVpZmVpLldhbmcy QGFybS5jb20+OyBNYXRhbiBBenJhZA0KPiA+ID4gPiA+IDxtYXRhbkBudmlkaWEuY29tPjsgU2hh aGFmIFNodWxlciA8c2hhaGFmc0BudmlkaWEuY29tPg0KPiA+ID4gPiA+IOaKhOmAgTogZGV2QGRw ZGsub3JnOyBuZCA8bmRAYXJtLmNvbT47IHN0YWJsZUBkcGRrLm9yZzsgUnVpZmVuZw0KPiA+ID4g V2FuZw0KPiA+ID4gPiA+IDxSdWlmZW5nLldhbmdAYXJtLmNvbT47IG5kIDxuZEBhcm0uY29tPjsg bmQgPG5kQGFybS5jb20+Ow0KPiA+IG5kDQo+ID4gPiA+ID4gPG5kQGFybS5jb20+DQo+ID4gPiA+ ID4g5Li76aKYOiBSRTogW1BBVENIIHYxIDMvNF0gbmV0L21seDU6IGZpeCByZWJ1aWxkIGJ1ZyBm b3IgTWVtb3J5DQo+ID4gPiA+ID4gUmVnaW9uIGNhY2hlDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBI aSwgRmVpZmVpDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJbiBteSBvcGluaW9uLCB0aGVyZSBzaG91 bGQgYmUgMiBiYXJyaWVyczoNCj4gPiA+ID4gPiAgLSBhZnRlciBnbG9iYWwgY2FjaGUgdXBkYXRl L2JlZm9yZSBhbHRlcmluZyBkZXZfZ2VuLCB0byBlbnN1cmUNCj4gPiA+ID4gPiB0aGUgY29ycmVj dCBvcmRlcg0KPiA+ID4gPiA+ICAtIGFmdGVyIGFsdGVyaW5nIGRldl9nZW4gdG8gbWFrZSB0aGlz IGNoYW5nZSB2aXNpYmxlIGZvciBvdGhlcg0KPiA+ID4gPiA+IGFnZW50cyBhbmQgdG8gdHJpZ2dl ciBsb2NhbCBjYWNoZSB1cGRhdGUNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFdpdGggYmVzdCByZWdh cmRzLA0KPiA+ID4gPiA+IFNsYXZhDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiBGcm9tOiBGZWlmZWkgV2FuZyA8RmVpZmVpLldh bmcyQGFybS5jb20+DQo+ID4gPiA+ID4gPiBTZW50OiBUdWVzZGF5LCBBcHJpbCAyMCwgMjAyMSAx MDozMA0KPiA+ID4gPiA+ID4gVG86IFNsYXZhIE92c2lpZW5rbyA8dmlhY2hlc2xhdm9AbnZpZGlh LmNvbT47IE1hdGFuIEF6cmFkDQo+ID4gPiA+ID4gPiA8bWF0YW5AbnZpZGlhLmNvbT47IFNoYWhh ZiBTaHVsZXIgPHNoYWhhZnNAbnZpZGlhLmNvbT4NCj4gPiA+ID4gPiA+IENjOiBkZXZAZHBkay5v cmc7IG5kIDxuZEBhcm0uY29tPjsgc3RhYmxlQGRwZGsub3JnOyBSdWlmZW5nDQo+ID4gPiBXYW5n DQo+ID4gPiA+ID4gPiA8UnVpZmVuZy5XYW5nQGFybS5jb20+OyBuZCA8bmRAYXJtLmNvbT47IG5k DQo+IDxuZEBhcm0uY29tPjsNCj4gPiA+IG5kDQo+ID4gPiA+ID4gPiA8bmRAYXJtLmNvbT4NCj4g PiA+ID4gPiA+IFN1YmplY3Q6IOWbnuWkjTogW1BBVENIIHYxIDMvNF0gbmV0L21seDU6IGZpeCBy ZWJ1aWxkIGJ1ZyBmb3INCj4gPiA+ID4gPiA+IE1lbW9yeSBSZWdpb24gY2FjaGUNCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiBIaSwgU2xhdmENCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBBbm90 aGVyIHF1ZXN0aW9uIHN1ZGRlbmx5IG9jY3VycmVkIHRvIG1lLCBpbiBvcmRlciB0byBrZWVwIHRo ZQ0KPiA+ID4gPiA+ID4gb3JkZXIgdGhhdCByZWJ1aWxkaW5nIGdsb2JhbCBjYWNoZSBiZWZvcmUg dXBkYXRpbmcg4oCdZGV2X2dlbuKAnCwNCj4gPiA+ID4gPiA+IHRoZSB3bWIgc2hvdWxkIGJlIGJl Zm9yZSB1cGRhdGluZyAiZGV2X2dlbiIgcmF0aGVyIHRoYW4gYWZ0ZXIgaXQuDQo+ID4gPiA+ID4g PiBPdGhlcndpc2UsIGluIHRoZSBvdXQtb2Ytb3JkZXIgcGxhdGZvcm1zLCBjdXJyZW50IG9yZGVy IGNhbm5vdA0KPiA+ID4gPiA+ID4gYmUNCj4gPiBrZXB0Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+IFRodXMsIHdlIHNob3VsZCBjaGFuZ2UgdGhlIGNvZGUgYXM6DQo+ID4gPiA+ID4gPiBhKSBy ZWJ1aWxkIGdsb2JhbCBjYWNoZTsNCj4gPiA+ID4gPiA+IGIpIHJ0ZV9zbXBfd21iKCk7DQo+ID4g PiA+ID4gPiBjKSB1cGRhdGluZyBkZXZfZ2VuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gQmVz dCBSZWdhcmRzDQo+ID4gPiA+ID4gPiBGZWlmZWkNCj4gPiA+ID4gPiA+ID4gLS0tLS3pgq7ku7bl jp/ku7YtLS0tLQ0KPiA+ID4gPiA+ID4gPiDlj5Hku7bkuro6IEZlaWZlaSBXYW5nDQo+ID4gPiA+ ID4gPiA+IOWPkemAgeaXtumXtDogMjAyMeW5tDTmnIgyMOaXpSAxMzo1NA0KPiA+ID4gPiA+ID4g PiDmlLbku7bkuro6IFNsYXZhIE92c2lpZW5rbyA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT47IE1h dGFuIEF6cmFkDQo+ID4gPiA+ID4gPiA+IDxtYXRhbkBudmlkaWEuY29tPjsgU2hhaGFmIFNodWxl ciA8c2hhaGFmc0BudmlkaWEuY29tPg0KPiA+ID4gPiA+ID4gPiDmioTpgIE6IGRldkBkcGRrLm9y ZzsgbmQgPG5kQGFybS5jb20+OyBzdGFibGVAZHBkay5vcmc7DQo+ID4gUnVpZmVuZw0KPiA+ID4g PiA+IFdhbmcNCj4gPiA+ID4gPiA+ID4gPFJ1aWZlbmcuV2FuZ0Bhcm0uY29tPjsgbmQgPG5kQGFy bS5jb20+OyBuZA0KPiA8bmRAYXJtLmNvbT4NCj4gPiA+ID4gPiA+ID4g5Li76aKYOiDlm57lpI06 IFtQQVRDSCB2MSAzLzRdIG5ldC9tbHg1OiBmaXggcmVidWlsZCBidWcgZm9yIE1lbW9yeQ0KPiA+ ID4gPiBSZWdpb24NCj4gPiA+ID4gPiA+ID4gY2FjaGUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gSGksIFNsYXZhDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFRoYW5rcyB2ZXJ5 IG11Y2ggZm9yIHlvdXIgZXhwbGFuYXRpb24uDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ IEkgY2FuIHVuZGVyc3RhbmQgdGhlIGFwcCBjYW4gd2FpdCBhbGwgbWJ1ZnMgYXJlIHJldHVybmVk IHRvDQo+ID4gPiA+ID4gPiA+IHRoZSBtZW1vcnkgcG9vbCwgYW5kIHRoZW4gaXQgY2FuIGZyZWUg dGhpcyBtYnVmcywgSSBhZ3JlZSB3aXRoDQo+IHRoaXMuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+IEFzIGEgcmVzdWx0LCBJIHdpbGwgcmVtb3ZlIHRoZSBidWcgZml4IHBhdGNoIGZyb20g dGhpcw0KPiA+ID4gPiA+ID4gPiBzZXJpZXMgYW5kIGp1c3QgcmVwbGFjZSB0aGUgc21wIGJhcnJp ZXIgd2l0aCBDMTEgdGhyZWFkDQo+ID4gPiA+ID4gPiA+IGZlbmNlLiBUaGFua3MgdmVyeSBtdWNo IGZvciB5b3VyIHBhdGllbnQgZXhwbGFuYXRpb24gYWdhaW4uDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+IEJlc3QgUmVnYXJkcw0KPiA+ID4gPiA+ID4gPiBGZWlmZWkNCj4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gPiAtLS0tLemCruS7tuWOn+S7ti0tLS0tDQo+ID4gPiA+ID4gPiA+ ID4g5Y+R5Lu25Lq6OiBTbGF2YSBPdnNpaWVua28gPHZpYWNoZXNsYXZvQG52aWRpYS5jb20+DQo+ ID4gPiA+ID4gPiA+ID4g5Y+R6YCB5pe26Ze0OiAyMDIx5bm0NOaciDIw5pelIDI6NTENCj4gPiA+ ID4gPiA+ID4gPiDmlLbku7bkuro6IEZlaWZlaSBXYW5nIDxGZWlmZWkuV2FuZzJAYXJtLmNvbT47 IE1hdGFuIEF6cmFkDQo+ID4gPiA+ID4gPiA+ID4gPG1hdGFuQG52aWRpYS5jb20+OyBTaGFoYWYg U2h1bGVyIDxzaGFoYWZzQG52aWRpYS5jb20+DQo+ID4gPiA+ID4gPiA+ID4g5oqE6YCBOiBkZXZA ZHBkay5vcmc7IG5kIDxuZEBhcm0uY29tPjsgc3RhYmxlQGRwZGsub3JnOw0KPiA+ID4gUnVpZmVu Zw0KPiA+ID4gPiA+ID4gV2FuZw0KPiA+ID4gPiA+ID4gPiA+IDxSdWlmZW5nLldhbmdAYXJtLmNv bT47IG5kIDxuZEBhcm0uY29tPg0KPiA+ID4gPiA+ID4gPiA+IOS4u+mimDogUkU6IFtQQVRDSCB2 MSAzLzRdIG5ldC9tbHg1OiBmaXggcmVidWlsZCBidWcgZm9yDQo+ID4gPiA+ID4gPiA+ID4gTWVt b3J5IFJlZ2lvbiBjYWNoZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gSGksIEZl aWZlaQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gUGxlYXNlLCBzZWUgYmVsb3cN Cj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IC4uLi4NCj4gPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiA+ID4gPiBIaSwgRmVpZmVpDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4gPiA+IFNvcnJ5LCBJIGRvIG5vdCBmb2xsb3cgd2hhdCB0aGlzIHBhdGNoIGZp eGVzLiBEbyB3ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBoYXZlIHNvbWUgaXNzdWUvYnVnIHdpdGgg TVIgY2FjaGUgaW4gcHJhY3RpY2U/DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ ID4gVGhpcyBwYXRjaCBmaXhlcyB0aGUgYnVnIHdoaWNoIGlzIGJhc2VkIG9uIGxvZ2ljYWwNCj4g PiA+ID4gPiA+ID4gPiA+IGRlZHVjdGlvbiwgYW5kIGl0IGRvZXNuJ3QgYWN0dWFsbHkgaGFwcGVu Lg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g PiA+ID4gRWFjaCBUeCBxdWV1ZSBoYXMgaXRzIG93biBkZWRpY2F0ZWQgImxvY2FsIiBjYWNoZSBm b3INCj4gPiA+ID4gPiA+ID4gPiA+ID4gTVJzIHRvIGNvbnZlcnQgYnVmZmVyIGFkZHJlc3MgaW4g bWJ1ZnMgYmVpbmcNCj4gPiA+ID4gPiA+ID4gPiA+ID4gdHJhbnNtaXR0ZWQgdG8gTEtleXMgKEhX LXJlbGF0ZWQgZW50aXR5DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGhhbmRsZSkgYW5kIHRoZSAiZ2xv YmFsIiBjYWNoZSBmb3IgYWxsIE1SIHJlZ2lzdGVyZWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gb24g dGhlDQo+ID4gPiBkZXZpY2UuDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g PiA+IEFGQUlLLCBob3cgY29udmVyc2lvbiBoYXBwZW5zIGluIGRhdGFwYXRoOg0KPiA+ID4gPiA+ ID4gPiA+ID4gPiAtIGNoZWNrIHRoZSBsb2NhbCBxdWV1ZSBjYWNoZSBmbHVzaCByZXF1ZXN0DQo+ ID4gPiA+ID4gPiA+ID4gPiA+IC0gbG9va3VwIGluIGxvY2FsIGNhY2hlDQo+ID4gPiA+ID4gPiA+ ID4gPiA+IC0gaWYgbm90IGZvdW5kOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAtIGFjcXVpcmUgbG9j ayBmb3IgZ2xvYmFsIGNhY2hlIHJlYWQgYWNjZXNzDQo+ID4gPiA+ID4gPiA+ID4gPiA+IC0gbG9v a3VwIGluIGdsb2JhbCBjYWNoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiAtIHJlbGVhc2UgbG9jayBm b3IgZ2xvYmFsIGNhY2hlDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ IEhvdyBjYWNoZSB1cGRhdGUgb24gbWVtb3J5IGZyZWVpbmcvdW5yZWdpc3RlcmluZw0KPiBoYXBw ZW5zOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAtIGFjcXVpcmUgbG9jayBmb3IgZ2xvYmFsIGNhY2hl IHdyaXRlIGFjY2Vzcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiAtIFthXSByZW1vdmUgcmVsZXZhbnQg TVJzIGZyb20gdGhlIGdsb2JhbCBjYWNoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiAtIFtiXSBzZXQg bG9jYWwgY2FjaGVzIGZsdXNoIHJlcXVlc3QNCj4gPiA+ID4gPiA+ID4gPiA+ID4gLSBmcmVlIGds b2JhbCBjYWNoZSBsb2NrDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ IElmIEkgdW5kZXJzdGFuZCBjb3JyZWN0bHksIHlvdXIgcGF0Y2ggc3dhcHMgW2FdIGFuZA0KPiA+ ID4gPiA+ID4gPiA+ID4gPiBbYl0sIGFuZCBsb2NhbCBjYWNoZXMgZmx1c2ggaXMgcmVxdWVzdGVk IGVhcmxpZXIuIFdoYXQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gcHJvYmxlbSBkb2VzIGl0DQo+ID4g PiBzb2x2ZT8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gSXQgaXMgbm90IHN1cHBvc2VkIHRoZXJlIGFy ZSBpbiBkYXRhcGF0aCBzb21lIG1idWZzDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHJlZmVyZW5jaW5n IHRvIHRoZSBtZW1vcnkgYmVpbmcgZnJlZWQuIEFwcGxpY2F0aW9uDQo+ID4gPiA+ID4gPiA+ID4g PiA+IG11c3QgZW5zdXJlIHRoaXMgYW5kIG11c3Qgbm90IGFsbG9jYXRlIG5ldyBtYnVmcyBmcm9t DQo+ID4gPiA+ID4gPiA+ID4gPiA+IHRoaXMgbWVtb3J5IHJlZ2lvbnMNCj4gPiA+ID4gPiBiZWlu ZyBmcmVlZC4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gSGVuY2UsIHRoZSBsb29rdXBzIGZvciB0aGVz ZSBNUnMgaW4gY2FjaGVzIHNob3VsZCBub3QNCj4gb2NjdXIuDQo+ID4gPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiA+ID4gRm9yIHlvdXIgZmlyc3QgcG9pbnQgdGhhdCwgYXBwbGljYXRpb24g Y2FuIHRha2UgY2hhcmdlDQo+ID4gPiA+ID4gPiA+ID4gPiBvZiBwcmV2ZW50aW5nIE1SIGZyZWVk IG1lbW9yeSBiZWluZyBhbGxvY2F0ZWQgdG8gZGF0YSBwYXRoLg0KPiA+ID4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gPiA+IERvZXMgaXQgbWVhbnMgdGhhdCBJZiB0aGVyZSBpcyBhbiBlbWVy Z2VuY3kgb2YgTVINCj4gPiA+ID4gPiA+ID4gPiA+IGZyYWdtZW50LCBzdWNoIGFzIGhvdHBsdWcs IHRoZSBhcHBsaWNhdGlvbiBtdXN0IGluZm9ybQ0KPiA+ID4gPiA+ID4gPiA+ID4gdGhlZGF0YSBw YXRoIGluIGFkdmFuY2UsIGFuZCB0aGlzIG1lbW9yeSB3aWxsIG5vdCBiZQ0KPiA+ID4gPiA+ID4g PiA+ID4gYWxsb2NhdGVkLCBhbmQgdGhlbiB0aGUgY29udHJvbCBwYXRoIHdpbGwgZnJlZSB0aGlz DQo+ID4gPiA+ID4gPiA+ID4gPiBtZW1vcnk/IElmIGFwcGxpY2F0aW9uICBjYW4gZG8gbGlrZSB0 aGlzLCBJIGFncmVlIHRoYXQNCj4gPiA+ID4gPiA+ID4gPiA+IHRoaXMgYnVnDQo+ID4gPiA+ID4g PiA+IGNhbm5vdCBoYXBwZW4uDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBBY3R1 YWxseSwgIHRoaXMgaXMgdGhlIG9ubHkgY29ycmVjdCB3YXkgZm9yIGFwcGxpY2F0aW9uIHRvIG9w ZXJhdGUuDQo+ID4gPiA+ID4gPiA+ID4gTGV0J3Mgc3VwcG9zZSB3ZSBoYXZlIHNvbWUgbWVtb3J5 IGFyZWEgdGhhdCBhcHBsaWNhdGlvbg0KPiA+ID4gPiA+ID4gPiA+IHdhbnRzIHRvDQo+ID4gPiA+ ID4gZnJlZS4NCj4gPiA+ID4gPiA+ID4gPiBBTEwgcmVmZXJlbmNlcyB0byB0aGlzIGFyZWEgbXVz dCBiZSByZW1vdmVkLiBJZiB3ZSBoYXZlDQo+ID4gPiA+ID4gPiA+ID4gc29tZSBtYnVmcyBhbGxv Y2F0ZWQgZnJvbSB0aGlzIGFyZWEsIGl0IG1lYW5zIHRoYXQgd2UgaGF2ZQ0KPiA+ID4gPiA+ID4g PiA+IG1lbW9yeSBwb29sIGNyZWF0ZWQNCj4gPiA+ID4gPiA+IHRoZXJlLg0KPiA+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ID4gV2hhdCBhcHBsaWNhdGlvbiBzaG91bGQgZG86DQo+ID4gPiA+ ID4gPiA+ID4gLSBub3RpZnkgYWxsIGl0cyBjb21wb25lbnRzL2FnZW50cyB0aGUgbWVtb3J5IGFy ZWEgaXMNCj4gPiA+ID4gPiA+ID4gPiBnb2luZyB0byBiZSBmcmVlZA0KPiA+ID4gPiA+ID4gPiA+ IC0gYWxsIGNvbXBvbmVudHMvYWdlbnRzIGZyZWUgdGhlIG1idWZzIHRoZXkgbWlnaHQgb3duDQo+ ID4gPiA+ID4gPiA+ID4gLSBQTUQgbWlnaHQgbm90IHN1cHBvcnQgZnJlZWluZyBmb3Igc29tZSBt YnVmcyAoZm9yDQo+ID4gPiA+ID4gPiA+ID4gZXhhbXBsZSBiZWluZyBzZW50IGFuZCBhd2FpdGlu ZyBmb3IgY29tcGxldGlvbiksIHNvIGFwcA0KPiA+ID4gPiA+ID4gPiA+IHNob3VsZCBqdXN0IHdh aXQNCj4gPiA+ID4gPiA+ID4gPiAtIHdhaXQgdGlsbCBhbGwgbWJ1ZnMgYXJlIHJldHVybmVkIHRv IHRoZSBtZW1vcnkgcG9vbCAoYnkNCj4gPiA+ID4gPiA+ID4gPiBtb25pdG9yaW5nIGF2YWlsYWJs ZSBvYmogPT0gcG9vbCBzaXplKQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gT3Ro ZXJ3aXNlIC0gaXQgaXMgZGFuZ2Vyb3VzIHRvIGZyZWUgdGhlIG1lbW9yeS4gVGhlcmUgYXJlDQo+ ID4gPiA+ID4gPiA+ID4ganVzdCBzb21lIG1idWZzIHN0aWxsIGFsbG9jYXRlZCwgaXQgaXMgcmVn YXJkbGVzcyB0byBidWYNCj4gPiA+ID4gPiA+ID4gPiBhZGRyZXNzIHRvIE1SIHRyYW5zbGF0aW9u LiBXZSBqdXN0IGNhbid0IGZyZWUgdGhlIG1lbW9yeSAtDQo+ID4gPiA+ID4gPiA+ID4gdGhlIG1h cHBpbmcgd2lsbCBiZSBkZXN0cm95ZWQgYW5kIG1pZ2h0IGNhdXNlIHRoZQ0KPiA+ID4gPiA+ID4g PiA+IHNlZ21lbnRhdGlvbiBmYXVsdCBieSBTVyBvciBzb21lIEhXIGlzc3VlcyBvbiBETUEgYWNj ZXNzDQo+ID4gPiA+ID4gPiA+ID4gdG8gdW5tYXBwZWQgbWVtb3J5LiAgSXQgaXMgdmVyeSBnZW5l cmljIHNhZmV0eSBhcHByb2FjaCAtDQo+ID4gPiA+ID4gPiA+ID4gZG8gbm90IGZyZWUgdGhlIG1l bW9yeSB0aGF0IGlzIHN0aWxsIGluDQo+ID4gPiB1c2UuDQo+ID4gPiA+ID4gPiA+ID4gSGVuY2Us IGF0IHRoZSBtb21lbnQgb2YgZnJlZWluZyBhbmQgdW5yZWdpc3RlcmluZyB0aGUgTVIsDQo+ID4g PiA+ID4gPiA+ID4gdGhlcmUgTVVTVCBCRSBOTyBhbnkNCj4gPiA+ID4gPiA+ID4gbWJ1ZnMgaW4g ZmxpZ2h0IHJlZmVyZW5jaW5nIHRvIHRoZSBhZGRyZXNzZXMgYmVpbmcgZnJlZWQuDQo+ID4gPiA+ ID4gPiA+ID4gTm8gdHJhbnNsYXRpb24gdG8gTVIgYmVpbmcgaW52YWxpZGF0ZWQgY2FuIGhhcHBl bi4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ ID4gRm9yIG90aGVyIHNpZGUsIHRoZSBjYWNoZSBmbHVzaCBoYXMgbmVnYXRpdmUgZWZmZWN0IC0N Cj4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlIGxvY2FsIGNhY2hlIGlzIGdldHRpbmcgZW1wdHkgYW5k IGNhbid0IHByb3ZpZGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gdHJhbnNsYXRpb24gZm9yIG90aGVy IHZhbGlkIChub3QgYmVpbmcgcmVtb3ZlZCkgTVJzLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBhbmQg dGhlIHRyYW5zbGF0aW9uIGhhcyB0byBsb29rIHVwIGluIHRoZSBnbG9iYWwNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gY2FjaGUsIHRoYXQgaXMgbG9ja2VkIG5vdyBmb3IgcmVidWlsZGluZywgdGhpcyBj YXVzZXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlIGRlbGF5cyBpbiBkYXRhcGF0Y2gNCj4gPiA+ ID4gPiA+ID4gPiA+IG9uIGFjcXVpcmluZyBnbG9iYWwgY2FjaGUgbG9jay4NCj4gPiA+ID4gPiA+ ID4gPiA+ID4gU28sIEkgc2VlIHNvbWUgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGltcGFjdC4NCj4g PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJZiBhYm92ZSBhc3N1bXB0aW9uIGlz IHRydWUsIHdlIGNhbiBnbyB0byB5b3VyIHNlY29uZCBwb2ludC4NCj4gPiA+ID4gPiA+ID4gPiA+ IEkgdGhpbmsgdGhpcyBpcyBhIHByb2JsZW0gb2YgdGhlIHRyYWRlb2ZmIGJldHdlZW4gY2FjaGUN Cj4gPiA+ID4gPiA+ID4gPiA+IGNvaGVyZW5jZSBhbmQNCj4gPiA+ID4gPiA+ID4gPiBwZXJmb3Jt YW5jZS4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJIGNhbiB1bmRlcnN0 YW5kIHlvdXIgbWVhbmluZyB0aGF0IHRob3VnaCBnbG9iYWwgY2FjaGUNCj4gPiA+ID4gPiA+ID4g PiA+IGhhcyBiZWVuIGNoYW5nZWQsIHdlIHNob3VsZCBrZWVwIHRoZSB2YWxpZCBNUiBpbiBsb2Nh bA0KPiA+ID4gPiA+ID4gPiA+ID4gY2FjaGUgYXMgbG9uZyBhcyBwb3NzaWJsZSB0byBlbnN1cmUg dGhlIGZhc3Qgc2VhcmNoaW5nIHNwZWVkLg0KPiA+ID4gPiA+ID4gPiA+ID4gSW4gdGhlIG1lYW53 aGlsZSwgdGhlIGxvY2FsIGNhY2hlIGNhbiBiZSByZWJ1aWx0IGxhdGVyDQo+ID4gPiA+ID4gPiA+ ID4gPiB0byByZWR1Y2UgaXRzIHdhaXRpbmcgdGltZSBmb3IgYWNxdWlyaW5nIHRoZSBnbG9iYWwg Y2FjaGUgbG9jay4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBIb3dldmVy LCAgdGhpcyBtZWNoYW5pc20ganVzdCBlbnN1cmVzIHRoZSBwZXJmb3JtYW5jZQ0KPiA+ID4gPiA+ ID4gPiA+ID4gdW5jaGFuZ2VkIGZvciB0aGUgZmlyc3QgZmV3IG1idWZzLg0KPiA+ID4gPiA+ID4g PiA+ID4gRHVyaW5nIHRoZSBuZXh0IG1idWZzIGxrZXkgc2VhcmNoaW5nIGFmdGVyICdkZXZfZ2Vu Jw0KPiA+ID4gPiA+ID4gPiA+ID4gdXBkYXRlZCwgaXQgaXMgc3RpbGwgbmVjZXNzYXJ5IHRvIHVw ZGF0ZSB0aGUgbG9jYWwgY2FjaGUuDQo+ID4gPiA+ID4gPiA+ID4gPiBBbmQgdGhlIHBlcmZvcm1h bmNlIGNhbiBmaXJzdGx5IHJlZHVjZSBhbmQgdGhlbiByZXR1cm5zLg0KPiA+ID4gPiA+ID4gPiA+ ID4gVGh1cywgbm8gbWF0dGVyIHdoZXRoZXIgdGhlcmUgaXMgdGhpcyBwYXRjaCBvciBub3QsICB0 aGUNCj4gPiA+ID4gPiA+ID4gPiA+IHBlcmZvcm1hbmNlIHdpbGwgaml0dGVyIGluIGEgY2VydGFp biBwZXJpb2Qgb2YNCj4gPiA+ID4gPiA+IHRpbWUuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPiBMb2NhbCBjYWNoZSBzaG91bGQgYmUgdXBkYXRlZCB0byByZW1vdmUgTVJzIG5vIGxv bmdlciB2YWxpZC4NCj4gPiA+ID4gPiA+ID4gPiBCdXQgd2UganVzdCBmbHVzaCB0aGUgZW50aXJl IGNhY2hlLg0KPiA+ID4gPiA+ID4gPiA+IExldCdzIHN1cHBvc2Ugd2UgaGF2ZSB2YWxpZCBNUjAs IE1SMSwgYW5kIG5vdCB2YWxpZCBNUlggaW4NCj4gPiA+ID4gPiA+ID4gPiBsb2NhbA0KPiA+ID4g PiBjYWNoZS4NCj4gPiA+ID4gPiA+ID4gPiBBbmQgdGhlcmUgYXJlIHRyYWZmaWMgaW4gdGhlIGRh dGFwYXRoIGZvciBNUjAgYW5kIE1SMSwgYW5kDQo+ID4gPiA+ID4gPiA+ID4gbm8gdHJhZmZpYyBm b3IgTVJYIGFueW1vcmUuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAxKSBJZiB3 ZSBkbyBhcyB5b3UgcHJvcG9zZToNCj4gPiA+ID4gPiA+ID4gPiBhKSB0YWtlIGEgbG9jaw0KPiA+ ID4gPiA+ID4gPiA+IGIpIHJlcXVlc3QgZmx1c2ggbG9jYWwgY2FjaGUgZmlyc3QgLSBhbGwgTVIw LCBNUjEsIE1SWA0KPiA+ID4gPiA+ID4gPiA+IHdpbGwgYmUgcmVtb3ZlZCBvbiB0cmFuc2xhdGlv biBpbiBkYXRhcGF0aA0KPiA+ID4gPiA+ID4gPiA+IGMpIHVwZGF0ZSBnbG9iYWwgY2FjaGUsDQo+ ID4gPiA+ID4gPiA+ID4gZCkgZnJlZSBsb2NrDQo+ID4gPiA+ID4gPiA+ID4gQWxsIHRoZSB0cmFm ZmljIGZvciB2YWxpZCBNUjAsIE1SMSBBTFdBWVMgd2lsbCBiZSBibG9ja2VkDQo+ID4gPiA+ID4g PiA+ID4gb24gbG9jayB0YWtlbiBmb3IgY2FjaGUgdXBkYXRlIHNpbmNlIHBvaW50IGIpIHRpbGwg cG9pbnQgZCkuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAyKSBJZiB3ZSBkbyBh cyBpdCBpcyBpbXBsZW1lbnRlZCBub3c6DQo+ID4gPiA+ID4gPiA+ID4gYSkgdGFrZSBhIGxvY2sN Cj4gPiA+ID4gPiA+ID4gPiBiKSB1cGRhdGUgZ2xvYmFsIGNhY2hlDQo+ID4gPiA+ID4gPiA+ID4g YykgcmVxdWVzdCBmbHVzaCBsb2NhbCBjYWNoZQ0KPiA+ID4gPiA+ID4gPiA+IGQpIGZyZWUgbG9j aw0KPiA+ID4gPiA+ID4gPiA+IFRoZSB0cmFmZmljIE1JR0hUIGJlIGxvY2tlZCBPTkxZIGZvciBN UnMgbm9uLWV4aXN0aW5nIGluDQo+ID4gPiA+ID4gPiA+ID4gbG9jYWwgY2FjaGUgKG5vdCBoYXBw ZW5zIGZvciBNUjAgYW5kIE1SMSwgbXVzdCBub3QgaGFwcGVuDQo+ID4gPiA+ID4gPiA+ID4gZm9y IE1SWCksIGFuZCBwcm9iYWJpbGl0eSBzaG91bGQgYmUgbWlub3IuIEFuZCBsb2NrIG1pZ2h0DQo+ ID4gPiA+ID4gPiA+ID4gaGFwcGVuIHNpbmNlDQo+ID4gPiA+ID4gPiA+ID4gYykgdGlsbA0KPiA+ ID4gPiA+ID4gPiA+IGQpDQo+ID4gPiA+ID4gPiA+ID4gLSBxdWl0ZSBzaG9ydCBwZXJpb2Qgb2Yg dGltZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gU3VtbWFyeSwgdGhlIGRpZmZl cmVuY2UgYmV0d2VlbiAxKSBhbmQgMikNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ IExvY2sgcHJvYmFiaWxpdHk6DQo+ID4gPiA+ID4gPiA+ID4gLSAxKSBsb2NrIEFMV0FZUyBoYXBw ZW4gZm9yIEFOWSBNUiB0cmFuc2xhdGlvbiBhZnRlciBiKSwNCj4gPiA+ID4gPiA+ID4gPiAgIDIp IGxvY2sgTUlHSFQgaGFwcGVuLCBmb3IgY2FjaGUgbWlzcyBPTkxZLCBhZnRlciBjKQ0KPiA+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gTG9jayBkdXJhdGlvbjoNCj4gPiA+ID4gPiA+ID4g PiAtIDEpIGxvY2sgc2luY2UgYikgdGlsbCBkKSwNCj4gPiA+ID4gPiA+ID4gPiAgIDIpIGxvY2sg c2luY2UgYykgdGlsbCBkKSwgdGhhdCBzZWVtcyB0byBiZSAgbXVjaCBzaG9ydGVyLg0KPiA+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gRmluYWxseSwg aW4gY29uY2x1c2lvbiwgSSB0ZW5kIHRvIHRoaW5rIHRoYXQgdGhlIGJvdHRvbQ0KPiA+ID4gPiA+ ID4gPiA+ID4gbGF5ZXIgY2FuIGRvIG1vcmUgdGhpbmdzIHRvIGVuc3VyZSB0aGUgY29ycmVjdCBl eGVjdXRpb24NCj4gPiA+ID4gPiA+ID4gPiA+IG9mIHRoZSBwcm9ncmFtLCB3aGljaCBtYXkgaGF2 ZSBhIG5lZ2F0aXZlIGltcGFjdCBvbiB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+IHBlcmZvcm1hbmNl IGluIGEgc2hvcnQgdGltZSwgYnV0IGluIHRoZSBsb25nIHJ1biwgdGhlDQo+ID4gPiA+ID4gPiA+ ID4gPiBwZXJmb3JtYW5jZSB3aWxsIGV2ZW50dWFsbHkNCj4gPiA+ID4gPiBjb21lIGJhY2suDQo+ ID4gPiA+ID4gPiA+ID4gPiBGdXJ0aGVybW9yZSwgbWF5YmUgd2Ugc2hvdWxkIHBheSBhdHRlbnRp b24gdG8gdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiBwZXJmb3JtYW5jZSBpbiB0aGUgc3RhYmxlIHBl cmlvZCwgYW5kIHRyeSBvdXIgYmVzdCB0bw0KPiA+ID4gPiA+ID4gPiA+ID4gZW5zdXJlIHRoZSBj b3JyZWN0bmVzcyBvZiB0aGUgcHJvZ3JhbSBpbiBjYXNlIG9mDQo+ID4gPiA+ID4gPiA+ID4gZW1l cmdlbmNpZXMuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBJZiB3ZSBoYXZlIHNv bWUgbWJ1ZnMgc3RpbGwgYWxsb2NhdGVkIGluIG1lbW9yeSBiZWluZw0KPiA+ID4gPiA+ID4gPiA+ IGZyZWVkDQo+ID4gPiA+ID4gPiA+ID4gLSB0aGVyZSBpcyBub3RoaW5nIHRvIHNheSBhYm91dCBj b3JyZWN0bmVzcywgaXQgaXMgdG90YWxseQ0KPiA+ID4gPiA+ID4gPiA+IGluY29ycmVjdC4gSW4g bXkgb3Bpbmlvbiwgd2Ugc2hvdWxkIG5vdCB0aGluayBob3cgdG8NCj4gPiA+ID4gPiA+ID4gPiBt aXRpZ2F0ZSB0aGlzIGluY29ycmVjdCBiZWhhdmlvciwgd2Ugc2hvdWxkIG5vdCBlbmNvdXJhZ2UN Cj4gPiA+ID4gPiA+ID4gPiBhcHBsaWNhdGlvbiBkZXZlbG9wZXJzIHRvIGZvbGxvdyB0aGUgd3Jv bmcNCj4gPiA+ID4gPiA+ID4gYXBwcm9hY2hlcy4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+IFdpdGggYmVzdCByZWdhcmRzLA0KPiA+ID4gPiA+ID4gPiA+IFNsYXZhDQo+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBCZXN0IFJlZ2Fy ZHMNCj4gPiA+ID4gPiA+ID4gPiA+IEZlaWZlaQ0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPiA+ID4gV2l0aCBiZXN0IHJlZ2FyZHMsDQo+ID4gPiA+ID4gPiA+ID4gPiA+IFNsYXZh DQo=