From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web10.7936.1598945489354905279 for ; Tue, 01 Sep 2020 00:31:29 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=UGmhvJdZ; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: jiewen.yao@intel.com) IronPort-SDR: OCDzQ5bWji1cLKQ3PswsbsMkoilJ53Cz5OswpgBEcfKYQhMOHxc94OSpA9r0rdzNW0PzIa0JFJ sRD7lYyVTebA== X-IronPort-AV: E=McAfee;i="6000,8403,9730"; a="137168655" X-IronPort-AV: E=Sophos;i="5.76,378,1592895600"; d="scan'208";a="137168655" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Sep 2020 00:31:28 -0700 IronPort-SDR: +RT1S9rbo6/6GjeTaqPVkxzf1HzNL9zCBGId473Vw6IcDPY+PMj6LDJskZqMjKA4UX5s2lyFeH Sj5WrwU6JOEQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,378,1592895600"; d="scan'208";a="340934794" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga007.jf.intel.com with ESMTP; 01 Sep 2020 00:31:27 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 1 Sep 2020 00:31:18 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 1 Sep 2020 00:31:18 -0700 Received: from NAM04-CO1-obe.outbound.protection.outlook.com (104.47.45.55) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Tue, 1 Sep 2020 00:31:15 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nIBYNFOVEu0d8MOeY7q5ArKBzZoEfvoJWKRRVmNFv7NMggZkbUxEu67ZHQk6Hrd2U0Ef2zrByDl72jUXYkgLwIQaJTJy9BaE3J7pLub5h5sCTobmZQq2tvZF0Fi0dQ0o9YEXhdLPbGjrXkCt9JoRhx/QwqOR8AYRNdvoYe6lFqX0z1k/I5UfdSL1eHDyV4LdWdwYrmMueJVorUNO9ILTdOckNugYdtljqf5SNh8AMdi1rQ3Qs2ZHbL7rrnxS+uSJjbZUFgXGPSSm2Iw6br0esvS37RPXSm4x8wLovegoAPLIbSmbI3cy1vqkHBC9PWyYBRfOJ7itAkkUawbAk9fjHg== 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=yGJfL/7AhmY+IWeTCoHCbz7gywdxzt87hAYfdWHw5lg=; b=VwVf8slrVOVpVeapXghovAuK8SuOwhuTCMfhFgcb6sh9LEuuAVnhjpeRRVLJ5AmBP8e9HohBDPviMcZMIvX8XcvBG5IxV6FYmGfN/EJBXn/shZNDKuwWFM+rrZVDE/IA/tkwPLz2NXFJyBoxqLPauIv8fSI+tRz9Q54xiPvwb2SHFHRVvsuzcWw2TnzVFZPzG3PPAt1tJibcanGmMOhYBRWf4A9p6/YIs9nHbxYMcr0ZBGmWw60kMsTd4uV7HF0ZXDjyIpJMgsHjvPwdcWbueb28UyOKq69a6MJY+wWG35in8CrnJbyjjIYCFuMlAI9oaOK+AMtmDBA6ii5XHA66wA== 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=yGJfL/7AhmY+IWeTCoHCbz7gywdxzt87hAYfdWHw5lg=; b=UGmhvJdZGkX0fY7wHctdbWHsDBvBHqjk0X+LLZ/7vA93/WHDmbnHfZyNCspc4U3gkQhQWKmUZ9rnBPbeDiiJ8QL4W/ir7FQEEh1csDFPuSeAxzXWAnN1Bm0rwNbzIz8DsXpjlhJrA4YX3UgNGeMk2fhQr+zKDpUswlvY4+prduU= Received: from CY4PR11MB1288.namprd11.prod.outlook.com (2603:10b6:903:23::8) by CY4PR11MB1911.namprd11.prod.outlook.com (2603:10b6:903:123::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3326.23; Tue, 1 Sep 2020 07:31:13 +0000 Received: from CY4PR11MB1288.namprd11.prod.outlook.com ([fe80::163:9209:a92d:812]) by CY4PR11MB1288.namprd11.prod.outlook.com ([fe80::163:9209:a92d:812%6]) with mapi id 15.20.3326.025; Tue, 1 Sep 2020 07:31:13 +0000 From: "Yao, Jiewen" To: "devel@edk2.groups.io" , "xiewenyi2@huawei.com" , Laszlo Ersek , "Wang, Jian J" CC: "songdongkuang@huawei.com" , "Mathews, John" Subject: Re: [edk2-devel] [PATCH EDK2 v2 1/1] SecurityPkg/DxeImageVerificationLib:Enhanced verification of Offset Thread-Topic: [edk2-devel] [PATCH EDK2 v2 1/1] SecurityPkg/DxeImageVerificationLib:Enhanced verification of Offset Thread-Index: AQHWcWlFNRwdlg90V0KlansqAmSeZak2Ym0AgADa0ICAABAfoIAFPYAAgACbyYCAAHIVAIAAah4AgAEv8ACADb39gIAABTRQgAAtMgCAAAU+wIAFBy0AgABOj9CAAP0YAIAABLCQ Date: Tue, 1 Sep 2020 07:31:13 +0000 Message-ID: References: <1597319741-59646-1-git-send-email-xiewenyi2@huawei.com> <024b1279-609d-fefa-8535-5af072815bf8@huawei.com> <250fc485-8705-88b7-21c9-ecd28132934d@redhat.com> <196d1d81-3253-6c64-6632-a37da6f2771e@redhat.com> <3384c396-b397-928b-e09e-11979c90420e@huawei.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action 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-originating-ip: [101.87.137.65] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c9fa7460-fb3d-4f6d-e7e1-08d84e49015f x-ms-traffictypediagnostic: CY4PR11MB1911: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: wsHH3UFmevD4qK9dviJfzzA6NBlw+JBShqHNbVH50RKJWgeQBb4ROwjvoT9bYysUHAqieM/c5ciR87SL/j2w63gQjpgvwVS/cNxShTjKEXGx5TrOw9Bxd55d/XbbOC5/RuKbllDTt0aj4nchsmxweyw0KNJ02kh3HzW1gX5zyBrTXV1ximgbr5eiEsqTpB1bgTI7daaAmLR0RAivO0dO0qUs8svNe63NdGYYwEohldkSgtn5HtW/RSooC7cZZNa8N3BBlpc8W1DmJ0s8KkPsjKzmHUWqP/kkaqikUBzmGpy8n5tOv5/YCzTOP+aWAP/OhhlpOV2kArecU6LapyMDB1ri3+YfhnQICqhgVJAH9dWojQYK+0dJutncOlb0B8ymRKeaAqZdutiqdz/i2nqlug== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR11MB1288.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(346002)(396003)(136003)(366004)(39860400002)(6636002)(76116006)(15650500001)(7696005)(53546011)(478600001)(110136005)(30864003)(54906003)(5660300002)(4326008)(316002)(6506007)(966005)(71200400001)(107886003)(2906002)(186003)(83380400001)(66476007)(66446008)(64756008)(66946007)(33656002)(66556008)(26005)(86362001)(52536014)(19627235002)(8676002)(55016002)(9686003)(8936002)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: fK7ZQhVUlcdvLmlk7NoClJrw8CNKVK5jdeX3rhrBn2tKfaKEjhRVrm2tVwfrTt0fwNLU/oh+wRtv25mjf77G+91jx/BBmzvF6iENcUagqGxVVDUX7cnXlp8EXwQAvv1Uk2bR9JC4ZpwTO4XyyTleVI7sw6QBdU+jedyYhTZptMedKX9EoMZx0f/sfWSkez00A2vNUroh26YJrv82lH8MYIg1B8keQzVpQIgh8hq6pAhyFacHHBim/i1kpr62zJuOuPxY2tc7UOf8F+jYfmDH3ycsvBRvciIarGsKFCDk5igYLRhULklzC9hiOkeXFgxWPpYQQIEqwBiGNiYLw/PI1w5Ipa6mQUhdsFXgcHPYnAvR3jWHKv/CHCuedPIP9wNFCiobptG8Nnhw8EXxJHdIusGBJmtMUVImOVfnG8a8PvYqgeQt29zgseZR+pdV5f/3K6IU/N5YRaB+u99qzOuGvlG4lwjXTCrmtPg2XGXywwDutUkpvN7CRDLIXSdh7rVGA79j5n667H0LKSZ8EL7M7BXhF1/rcwL0y3em6YC3+Xa081sMGWC7EmWK3UCuYdcgCUxyti7TcKh2ZK8NQf2WTFeri76nQi3MQxVwddqt30qSV6UUS9gvYBTuw5fjS0kc69pMy0t6MgmV/0/8bh76YQ== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB1288.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c9fa7460-fb3d-4f6d-e7e1-08d84e49015f X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Sep 2020 07:31:13.3387 (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: cg/yPk3f6tJmBvqu9co0wQoJz85JG9mOFoqVb/3jHxmJWVr29qeH3wlxT8Eu85EPdwkyI7bPr2HSaiWVoZ5UZg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1911 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSBhbSBzb3JyeSwgdGhhdCBJIGFtIGEgbGl0dGxlIGxvc3QgaGVyZS4NCg0KV2UgaGF2ZSBkaXNj dXNzZWQgZGlmZmVyZW50IHBhdGNoZXMuIEkgYW0gbm90IDEwMCUgc3VyZSB3aGljaCBvbmUgaXMg Ikxhc3psbydzIHBhdGNoZXMiLg0KDQpUbyBtYWtlIHRoaW5nIGVhc3kgYW5kIHJlY29yZCBhbGwg YWN0aW9ucywgd291bGQgeW91IHBsZWFzZSByZXBseSB0aGUgcGF0Y2goZXMpIHlvdSBoYXZlIHZl cmlmaWVkLCB3aXRoIHlvdXIgInRlc3RlZC1ieToiIHRhZz8NCg0KVGhhbmsgeW91DQpZYW8gSmll d2VuDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5n cm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2Ygd2VueWkseGllDQo+ IHZpYSBncm91cHMuaW8NCj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDEsIDIwMjAgMzoxMSBQ TQ0KPiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5n cm91cHMuaW87IExhc3psbyBFcnNlaw0KPiA8bGVyc2VrQHJlZGhhdC5jb20+OyBXYW5nLCBKaWFu IEogPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gQ2M6IHNvbmdkb25na3VhbmdAaHVhd2VpLmNv bTsgTWF0aGV3cywgSm9obiA8am9obi5tYXRoZXdzQGludGVsLmNvbT4NCj4gU3ViamVjdDogUmU6 IFtlZGsyLWRldmVsXSBbUEFUQ0ggRURLMiB2MiAxLzFdDQo+IFNlY3VyaXR5UGtnL0R4ZUltYWdl VmVyaWZpY2F0aW9uTGliOkVuaGFuY2VkIHZlcmlmaWNhdGlvbiBvZiBPZmZzZXQNCj4gDQo+IEkg dGhpbmsgTGFzemxvJ3MgcGF0Y2hlcyBpcyBPSywgSSBoYXZlIGFwcGxpZWQgYW5kIHRlc3RlZCBp dCB1c2luZyBteSBjYXNlLiBJdCBjYW4NCj4gY2F0Y2ggdGhlIGlzc3VlLg0KPiBERUJVRyBjb2Rl IGFuZCBsb2cgYmVsb3csDQo+IA0KPiAgIFNlY0RhdGFEaXJFbmQgPSBTZWNEYXRhRGlyLT5WaXJ0 dWFsQWRkcmVzcyArIFNlY0RhdGFEaXItPlNpemU7DQo+ICAgREVCVUcoKERFQlVHX0lORk8sICJT ZWNEYXRhRGlyRW5kPTB4JXguXG4iLCBTZWNEYXRhRGlyRW5kKSk7DQo+ICAgZm9yIChPZmZTZXQg PSBTZWNEYXRhRGlyLT5WaXJ0dWFsQWRkcmVzczsNCj4gICAgICAgIE9mZlNldCA8IFNlY0RhdGFE aXJFbmQ7DQo+ICAgICAgICBPZmZTZXQgKz0gKFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCArIEFM SUdOX1NJWkUgKFdpbkNlcnRpZmljYXRlLQ0KPiA+ZHdMZW5ndGgpKSkgew0KPiAgICAgU2VjRGF0 YURpckxlZnQgPSBTZWNEYXRhRGlyRW5kIC0gT2ZmU2V0Ow0KPiAgICAgREVCVUcoKERFQlVHX0lO Rk8sICJPZmZTZXQ9MHgleCwgU2VjRGF0YURpckxlZnQ9MHgleC5cbiIsIE9mZlNldCwNCj4gU2Vj RGF0YURpckxlZnQpKTsNCj4gICAgIGlmIChTZWNEYXRhRGlyTGVmdCA8PSBzaXplb2YoV0lOX0NF UlRJRklDQVRFKSkgew0KPiAgICAgICBicmVhazsNCj4gICAgIH0NCj4gICAgIFdpbkNlcnRpZmlj YXRlID0gKFdJTl9DRVJUSUZJQ0FURSAqKShtSW1hZ2VCYXNlICsgT2ZmU2V0KTsNCj4gICAgIERF QlVHKChERUJVR19JTkZPLCAiV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoPTB4JXgsIEFMSUdOX1NJ WkUNCj4gKFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCk9MHgleC5cbiIsIFdpbkNlcnRpZmljYXRl LT5kd0xlbmd0aCwNCj4gQUxJR05fU0laRShXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGgpKSk7DQo+ ICAgICBpZiAoU2VjRGF0YURpckxlZnQgPCBXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGggfHwNCj4g CShTZWNEYXRhRGlyTGVmdCAtIFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCA8DQo+IEFMSUdOX1NJ WkUoV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoKSkpIHsNCj4gICAgICAgREVCVUcoKERFQlVHX0lO Rk8sICJQYXJhbWV0ZXIgaXMgaW52YWxpZCBhbmQgYnJlYWsuXG4iKSk7DQo+ICAgICAgIGJyZWFr Ow0KPiAgICAgfQ0KPiANCj4gU2VjRGF0YURpckVuZD0weEZGRkZGRkZDLg0KPiBPZmZTZXQ9MHhF MDAwLCBTZWNEYXRhRGlyTGVmdD0weEZGRkYxRkZDLg0KPiBXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5n dGg9MHhGRkZGMUZGQiwgQUxJR05fU0laRSAoV2luQ2VydGlmaWNhdGUtDQo+ID5kd0xlbmd0aCk9 MHg1Lg0KPiBQYXJhbWV0ZXIgaXMgaW52YWxpZCBhbmQgYnJlYWsuDQo+IFRoZSBpbWFnZSBkb2Vz bid0IHBhc3MgdmVyaWZpY2F0aW9uOiBWZW5Idyg1Q0YzMkUwQi04RURGLTJFNDQtOUNEQS0NCj4g OTMyMDVFOTlFQzFDLDAwMDAwMDAwKS9WZW5Idyg5NjRFNUIyMi02NDU5LTExRDItOEUzOS0NCj4g MDBBMEM5Njk3MjNCLDAwMDAwMDAwKS9cc2lnbmVkXzEyMzRfNEcuZWZpDQo+IA0KPiBSZWdhcmRz DQo+IFdlbnlpDQo+IA0KPiBPbiAyMDIwLzkvMSAwOjA2LCBZYW8sIEppZXdlbiB3cm90ZToNCj4g PiBTb3VuZHMgZ3JlYXQuIEFwcHJlY2lhdGUgeW91ciBoYXJkIHdvcmsgb24gdGhhdC4NCj4gPg0K PiA+IFdpbGwgeW91IHBvc3QgYSBwYXRjaCB0byBmaXggdGhlIGlzc3VlIGFnYWluPw0KPiA+DQo+ ID4gVGhhbmsgeW91DQo+ID4gWWFvIEppZXdlbg0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdy b3Vwcy5pbz4gT24gQmVoYWxmIE9mDQo+IHdlbnlpLHhpZQ0KPiA+PiB2aWEgZ3JvdXBzLmlvDQo+ ID4+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDMxLCAyMDIwIDc6MjQgUE0NCj4gPj4gVG86IFlhbywg Smlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBMYXN6 bG8NCj4gRXJzZWsNCj4gPj4gPGxlcnNla0ByZWRoYXQuY29tPjsgV2FuZywgSmlhbiBKIDxqaWFu Lmoud2FuZ0BpbnRlbC5jb20+DQo+ID4+IENjOiBzb25nZG9uZ2t1YW5nQGh1YXdlaS5jb207IE1h dGhld3MsIEpvaG4NCj4gPGpvaG4ubWF0aGV3c0BpbnRlbC5jb20+DQo+ID4+IFN1YmplY3Q6IFJl OiBbZWRrMi1kZXZlbF0gW1BBVENIIEVESzIgdjIgMS8xXQ0KPiA+PiBTZWN1cml0eVBrZy9EeGVJ bWFnZVZlcmlmaWNhdGlvbkxpYjpFbmhhbmNlZCB2ZXJpZmljYXRpb24gb2YgT2Zmc2V0DQo+ID4+ DQo+ID4+IEhp77yMSmlld2Vu77yMDQo+ID4+DQo+ID4+IEkgbW9kaWZ5IHRoZSBQRSBmaWxlIGFn YWluLCB0aGlzIHRpbWUgaXQgY2FuIHBhc3MgdGhlIGNoZWNrIGluIFBlQ29mZkxpYiBhbmQNCj4g Y2F1c2UNCj4gPj4gb2Zmc2V0IG92ZXJmbG93Lg0KPiA+Pg0KPiA+PiBGaXJzdCwgY3JlYXRlIGEg UEUgZmlsZSBhbmQgc2lnbiBpdChvbmx5IG9uZSBzaWduYXR1cmUpLCB0aGVuIHVzaW5nIGJpbmFy eSBlZGl0DQo+IHRvb2wNCj4gPj4gdG8gbW9kaWZ5IGNvbnRlbnQgb2YgUEUgZmlsZSBsaWtlIGJl bG93LA0KPiA+PiAgMS5jaGVjayB0aGUgdmFsdWUgb2YgU2VjRGF0YURpci0+VmlydHVhbEFkZHJl c3MsIGluIG15IFBFIGZpbGUsIGl0J3MgMHhFMDAwDQo+ID4+ICAyLmNoYW5naW5nIFNlY0RhdGFE aXItPlNpemUgZnJvbSAweDVGOCB0byAweEZGRkYxRkZDDQo+ID4+ICAzLmNoYW5naW5nIFdpbkNl cnRpZmljYXRlLT5kd0xlbmd0aCBmcm9tIDB4NUYxIHRvIDB4RkZGRjFGRkINCj4gPj4gIDQucGFk ZGluZyBQRSBmaWxlIHdpdGggMCB1bnRpbCB0aGUgc2l6ZSBvZiB0aGUgZmlsZSBpcyAweEZGRkZG RkZDKGl0IHdpbGwgbWFrZSB0aGUNCj4gUEUNCj4gPj4gZmlsZSBzbyBsYXJnZSkNCj4gPj4gT2Zm U2V0ICsgV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoICsgQUxJR05fU0laRSAoV2luQ2VydGlmaWNh dGUtPmR3TGVuZ3RoKQ0KPiBpcw0KPiA+PiAweEUwMDAgKyAweEZGRkYxRkZCICsgMHg1ID0gMHgx MDAwMDAwMDANCj4gPj4NCj4gPj4gQmVsb3cgaXMgdGhlIERFQlVHIGNvZGUgYW5kIGxvZywgaW4g c2Vjb25kIGxvb3AgdGhlIG9mZnNldCBvdmVyZmxvdyBhbmQNCj4gPj4gYmVjb21lIDANCj4gPj4N Cj4gPj4gZm9yIChPZmZTZXQgPSBTZWNEYXRhRGlyLT5WaXJ0dWFsQWRkcmVzczsNCj4gPj4gICAg ICBPZmZTZXQgPCAoU2VjRGF0YURpci0+VmlydHVhbEFkZHJlc3MgKyBTZWNEYXRhRGlyLT5TaXpl KTsNCj4gPj4gICAgICBPZmZTZXQgKz0gKFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCArIEFMSUdO X1NJWkUgKFdpbkNlcnRpZmljYXRlLQ0KPiA+Pj4gZHdMZW5ndGgpKSkgew0KPiA+PiAgIFdpbkNl cnRpZmljYXRlID0gKFdJTl9DRVJUSUZJQ0FURSAqKSAobUltYWdlQmFzZSArIE9mZlNldCk7DQo+ ID4+ICAgREVCVUcoKERFQlVHX0lORk8sICJPZmZTZXQ9MHgleC5cbiIsIE9mZlNldCkpOw0KPiA+ PiAgIGlmICgoU2VjRGF0YURpci0+VmlydHVhbEFkZHJlc3MgKyBTZWNEYXRhRGlyLT5TaXplIC0g T2ZmU2V0KSA8PSBzaXplb2YNCj4gPj4gKFdJTl9DRVJUSUZJQ0FURSkgfHwNCj4gPj4gICAgICAg KFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNzICsgU2VjRGF0YURpci0+U2l6ZSAtIE9mZlNldCkg PCBXaW5DZXJ0aWZpY2F0ZS0NCj4gPj4+IGR3TGVuZ3RoKSB7DQo+ID4+ICAgICBicmVhazsNCj4g Pj4gICB9DQo+ID4+ICAgREVCVUcoKERFQlVHX0lORk8sICJXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5n dGg9MHgleCwgQUxJR05fU0laRQ0KPiA+PiAoV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoKT0weCV4 LlxuIiwgV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoLA0KPiA+PiBBTElHTl9TSVpFKFdpbkNlcnRp ZmljYXRlLT5kd0xlbmd0aCkpKTsNCj4gPj4NCj4gPj4NCj4gPj4gU2VjRGF0YURpci0+VmlydHVh bEFkZHJlc3M9MHhFMDAwLCBTZWNEYXRhRGlyLT5TaXplPTB4RkZGRjFGRkMuDQo+ID4+IE9mZlNl dD0weEUwMDAuDQo+ID4+IFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aD0weEZGRkYxRkZCLCBBTElH Tl9TSVpFIChXaW5DZXJ0aWZpY2F0ZS0NCj4gPj4+IGR3TGVuZ3RoKT0weDUuDQo+ID4+IER4ZUlt YWdlVmVyaWZpY2F0aW9uTGliOiBJbWFnZSBpcyBzaWduZWQgYnV0IHNpZ25hdHVyZSBpcyBub3Qg YWxsb3dlZCBieSBEQg0KPiBhbmQNCj4gPj4gU0hBMjU2IGhhc2ggb2YgaW1hZ2UgaXMgbm90T2Zm U2V0PTB4MC4NCj4gPj4gV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoPTB4NUE0RCwgQUxJR05fU0la RSAoV2luQ2VydGlmaWNhdGUtDQo+ID4+PiBkd0xlbmd0aCk9MHgzLg0KPiA+PiBPZmZTZXQ9MHg1 QTUwLg0KPiA+PiBXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGg9MHg5MDI0LCBBTElHTl9TSVpFIChX aW5DZXJ0aWZpY2F0ZS0NCj4gPj4+IGR3TGVuZ3RoKT0weDQuDQo+ID4+IE9mZlNldD0weEVBNzgu DQo+ID4+IFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aD0weDAsIEFMSUdOX1NJWkUgKFdpbkNlcnRp ZmljYXRlLT5kd0xlbmd0aCk9MHgwLg0KPiA+PiBUaGUgaW1hZ2UgZG9lc24ndCBwYXNzIHZlcmlm aWNhdGlvbjogVmVuSHcoNUNGMzJFMEItOEVERi0yRTQ0LTlDREEtDQo+ID4+IDkzMjA1RTk5RUMx QywwMDAwMDAwMCkvVmVuSHcoOTY0RTVCMjItNjQ1OS0xMUQyLThFMzktDQo+ID4+IDAwQTBDOTY5 NzIzQiwwMDAwMDAwMCkvXHNpZ25lZF8xMjM0XzRHLmVmaQ0KPiA+Pg0KPiA+Pg0KPiA+PiBSZWdh cmRzDQo+ID4+IFdlbnlpDQo+ID4+DQo+ID4+DQo+ID4+IE9uIDIwMjAvOC8yOCAxNDo0MywgWWFv LCBKaWV3ZW4gd3JvdGU6DQo+ID4+PiBBcG9sb2d5IHRoYXQgSSBkaWQgbm90IHNheSBjbGVhcmx5 Lg0KPiA+Pj4gSSBtZWFuIHlvdSBzaG91bGQgbm90IG1vZGlmeSBhbnkgY29kZSB0byBwZXJmb3Jt IGFuIGF0dGFjay4NCj4gPj4+DQo+ID4+PiBJIGFtIG5vdCBhc2tpbmcgeW91IHRvIGV4cGxvaXQg dGhlIHN5c3RlbS4gQXR0YWNrIGhlcmUganVzdCBtZWFuczogdG8gY2F1c2UNCj4gPj4gc3lzdGVt IGhhbmcgb3IgYnVmZmVyIG92ZXJmbG93LiBUaGF0IGlzIGVub3VnaC4NCj4gPj4+IEJ1dCB5b3Ug Y2Fubm90IG1vZGlmeSBjb2RlIHRvIHJlbW92ZSBhbnkgZXhpc3RpbmcgY2hlY2tlci4NCj4gPj4+ DQo+ID4+PiBUaGFuayB5b3UNCj4gPj4+IFlhbyBKaWV3ZW4NCj4gPj4+DQo+ID4+Pj4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8 ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZg0KPiA+PiB3ZW55aSx4aWUNCj4gPj4+ PiB2aWEgZ3JvdXBzLmlvDQo+ID4+Pj4gU2VudDogRnJpZGF5LCBBdWd1c3QgMjgsIDIwMjAgMjox OCBQTQ0KPiA+Pj4+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBkZXZl bEBlZGsyLmdyb3Vwcy5pbzsgTGFzemxvDQo+ID4+IEVyc2VrDQo+ID4+Pj4gPGxlcnNla0ByZWRo YXQuY29tPjsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4+Pj4gQ2M6 IHNvbmdkb25na3VhbmdAaHVhd2VpLmNvbTsgTWF0aGV3cywgSm9obg0KPiA+PiA8am9obi5tYXRo ZXdzQGludGVsLmNvbT4NCj4gPj4+PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCBF REsyIHYyIDEvMV0NCj4gPj4+PiBTZWN1cml0eVBrZy9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYjpF bmhhbmNlZCB2ZXJpZmljYXRpb24gb2YgT2Zmc2V0DQo+ID4+Pj4NCj4gPj4+PiBIae+8jEppZXdl bu+8jA0KPiA+Pj4+DQo+ID4+Pj4gSSBkb24ndCByZWFsbHkgZ2V0IHRoZSBtZWFuaW5nICJjcmVh dGUgYSBjYXNlIHRoYXQgYnlwYXNzIGFsbCBjaGVja3MgaW4NCj4gPj4gUGVDb2ZmTGliIiwNCj4g Pj4+PiBkbyB5b3UgbWVhbiBJIG5lZWQgdG8gY3JlYXRlIGEgUEUgZmlsZSB0aGF0IGNhbiBieXBh c3MgYWxsIGNoZWNrIGluDQo+IFBlQ29mZkxpYg0KPiA+Pj4+IHdpdGhvdXQgbW9kaWZ5IGFueQ0K PiA+Pj4+IGNvZGUgYW5kIHRoZW4gY2F1c2UgdGhlIHByb2JsZW0gaW4gRHhlSW1hZ2VWZXJpZmlj YXRpb25MaWIsIG9yIGp1c3QNCj4gbW9kaWZ5DQo+ID4+Pj4gc29tZSBjb2RlIGluIFBlQ29mZkxp YiB0byBieXBhc3MgY2hlY2sgaW5zdGVhZCBvZiByZW1vdmluZyB0aGUgY2FsbGluZyBvZg0KPiA+ Pj4+IFBlQ29mZkxvYWRlckdldEltYWdlSW5mby4gV291bGQNCj4gPj4+PiB5b3UgbWluZCBleHBs YWluaW5nIGEgbGl0dGxlIG1vcmUgc3BlY2lmaWNhbGx5PyBBcyBmYXIgYXMgSSB0cmllZCwgaXQn cyByZWFsbHkNCj4gaGFyZA0KPiA+PiB0bw0KPiA+Pj4+IHJlcHJvZHVjZSB0aGUgaXNzdWUgd2l0 aG91dCB0b3VjaGluZyBhbnkgY29kZS4NCj4gPj4+Pg0KPiA+Pj4+IFRoYW5rcw0KPiA+Pj4+IFdl bnlpDQo+ID4+Pj4NCj4gPj4+PiBPbiAyMDIwLzgvMjggMTE6NTAsIFlhbywgSmlld2VuIHdyb3Rl Og0KPiA+Pj4+PiBISSBXZW55aQ0KPiA+Pj4+PiBUaGFuayB5b3UgdmVyeSBtdWNoIHRvIHRha2Ug dGltZSB0byByZXByb2R1Y2UuDQo+ID4+Pj4+DQo+ID4+Pj4+IEkgYW0gcGFydGljdWxhciBpbnRl cmVzdGVkIGluIGJlbG93Og0KPiA+Pj4+PiAJIkFzIFBFIGZpbGUgaXMgbW9kaWZpZWQsIGZ1bmN0 aW9uIFBlQ29mZkxvYWRlckdldEltYWdlSW5mbyB3aWxsIHJldHVybg0KPiA+Pj4+IGVycm9yLCBz byBJIGhhdmUgdG8gcmVtb3ZlIGl0IHNvIHRoYXQgZm9yIGxvb3AgY2FuIGJlIHRlc3RlZCBpbg0K PiA+Pj4+IER4ZUltYWdlVmVyaWZpY2F0aW9uSGFuZGxlci4iDQo+ID4+Pj4+DQo+ID4+Pj4+IEJ5 IGRlc2lnbiwgdGhlIFBlQ29mZkxpYiBzaG91bGQgY2F0Y2ggaWxsZWdhbCBQRS9DT0ZGIGltYWdl IGFuZCByZXR1cm4NCj4gZXJyb3IuDQo+ID4+Pj4gKGV2ZW4gaXQgY2Fubm90IGNhdGNoIGFsbCwg aXQgc2hvdWxkIGNhdGNoIG1vc3Qgb25lcykuDQo+ID4+Pj4+IE90aGVyIFBFL0NPRkYgcGFyc2Vy IG1heSByZWx5IG9uIHRoZSBjaGVja2VyIGluIFBlQ29mZkxpYiBhbmQgKm5vDQo+IG5lZWQqDQo+ ID4+IHRvDQo+ID4+Pj4gZHVwbGljYXRlIGFsbCBjaGVja2Vycy4NCj4gPj4+Pj4gQXMgc3VjaCwg RHhlSW1hZ2VWZXJpZmljYXRpb25MaWIgKGFuZCBvdGhlciBQZUNvZmYgY29uc3VtZXIpIGp1c3Qg bmVlZA0KPiA+Pj4+IGNoZWNrcyB3aGF0IGhhcyBwYXNzZWQgdGhlIGNoZWNrIGluIFBlQ29mZkxp Yi4NCj4gPj4+Pj4NCj4gPj4+Pj4gSSBkb27igJl0IHRoaW5rIHlvdSBzaG91bGQgcmVtb3ZlIHRo ZSBjaGVja2VyLiBJZiBwZW9wbGUgY2FuIHJlbW92ZSB0aGUNCj4gPj4gY2hlY2tlciwNCj4gPj4+ PiBJIGFtIHN1cmUgdGhlIHJlc3QgY29kZSB3aWxsIGJlIHZ1bG5lcmFibGUsIGFjY29yZGluZyB0 byB0aGUgY3VycmVudCBkZXNpZ24uDQo+ID4+Pj4+IENvdWxkIHlvdSBwbGVhc2UgdG8gY3JlYXRl IGEgY2FzZSB0aGF0IGJ5cGFzcyBhbGwgY2hlY2tzIGluIFBlQ29mZkxpYiwNCj4gdGhlbg0KPiA+ PiBydW4NCj4gPj4+PiBpbnRvIER4ZUltYWdlVmVyaWZpY2F0aW9uTGliIGFuZCBjYXVzZSB0aGUg cHJvYmxlbT8gVGhhdCB3b3VsZCBiZSBtb3JlDQo+ID4+Pj4gdmFsdWFibGUgZm9yIHVzLg0KPiA+ Pj4+Pg0KPiA+Pj4+PiBUaGFuayB5b3UNCj4gPj4+Pj4gWWFvIEppZXdlbg0KPiA+Pj4+Pg0KPiA+ Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+Pj4+IEZyb206IGRldmVsQGVk azIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mDQo+ID4+Pj4g d2VueWkseGllDQo+ID4+Pj4+PiB2aWEgZ3JvdXBzLmlvDQo+ID4+Pj4+PiBTZW50OiBGcmlkYXks IEF1Z3VzdCAyOCwgMjAyMCAxMToxOCBBTQ0KPiA+Pj4+Pj4gVG86IExhc3psbyBFcnNlayA8bGVy c2VrQHJlZGhhdC5jb20+OyBXYW5nLCBKaWFuIEoNCj4gPj4+PiA8amlhbi5qLndhbmdAaW50ZWwu Y29tPjsNCj4gPj4+Pj4+IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBZYW8sIEppZXdlbiA8amlld2Vu Lnlhb0BpbnRlbC5jb20+DQo+ID4+Pj4+PiBDYzogc29uZ2RvbmdrdWFuZ0BodWF3ZWkuY29tOyBN YXRoZXdzLCBKb2huDQo+ID4+Pj4gPGpvaG4ubWF0aGV3c0BpbnRlbC5jb20+DQo+ID4+Pj4+PiBT dWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCBFREsyIHYyIDEvMV0NCj4gPj4+Pj4+IFNl Y3VyaXR5UGtnL0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliOkVuaGFuY2VkIHZlcmlmaWNhdGlvbiBv ZiBPZmZzZXQNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBIae+8jExhc3psbyBhbmQgZXZlcnlvbmXvvIwN Cj4gPj4+Pj4+DQo+ID4+Pj4+PiBUaGVzZSBkYXlzIEkgdHJpZWQgdG8gcmVwcm9kdWNlIHRoZSBp c3N1Ze+8jGFuZCBtYWRlIHNvbWUgcHJvZ3Jlc3MuIEkNCj4gPj4gdGhpbmsNCj4gPj4+Pj4+IHRo ZXJlIGFyZSB0d28gd2F5IHRvIGNhdXNlIG92ZXJmbG93IGZyb20gYSBtYXRoZW1hdGljYWwgcG9p bnQgb2YgdmlldywNCj4gPj4+Pj4+IDEuQXMgTGFzemxvIGFuYWx5c2VkIGJlZm9yZSwgaWYgV2lu Q2VydGlmaWNhdGUtPmR3TGVuZ3RoIGlzIGxhcmdlDQo+IGVub3VnaCwNCj4gPj4+PiBjbG9zZQ0K PiA+Pj4+Pj4gdG8gTUFYX1VJTlQzMiwgdGhlbiAoV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoICsg QUxJR05fU0laRQ0KPiA+Pj4+IChXaW5DZXJ0aWZpY2F0ZS0NCj4gPj4+Pj4+PiBkd0xlbmd0aCkp IHdpbGwgY2F1c2Ugb3ZlcmZsb3cuDQo+ID4+Pj4+PiAyLihXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5n dGggKyBBTElHTl9TSVpFIChXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGgpKQ0KPiBpcw0KPiA+Pj4+ IGdvb2QsDQo+ID4+Pj4+PiBPZmZTZXQgaXMgZ29vZCwgYnV0IE9mZlNldCArPSAoV2luQ2VydGlm aWNhdGUtPmR3TGVuZ3RoICsgQUxJR05fU0laRQ0KPiA+Pj4+Pj4gKFdpbkNlcnRpZmljYXRlLT5k d0xlbmd0aCkpIGNhdXNlIG92ZXJmbG93Lg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEhlcmUgSSBjaG9v c2UgdGhlIHNlY29uZCB3YXkgdG8gcmVwcm9kdWNlIHRoZSBpc3N1ZSwgSSBjaG9vc2UgYSBQRSBm aWxlDQo+ID4+IGFuZA0KPiA+Pj4+IHNpZ24NCj4gPj4+Pj4+IGl0IHdpdGggbXkgb3duIGRiIGNl cnRpZmljYXRlLiBUaGVuIEkgdXNlIGJpbmFyeSBlZGl0IHRvb2wgdG8gbW9kaWZ5IHRoZQ0KPiBQ RQ0KPiA+PiBmaWxlDQo+ID4+Pj4gbGlrZQ0KPiA+Pj4+Pj4gYmVsb3csDQo+ID4+Pj4+Pg0KPiA+ Pj4+Pj4gMS5jaGFuZ2UgU2VjRGF0YURpci0+U2l6ZSBmcm9tIDB4NUY4IHRvIDB4RkZGRjFGRkYN Cj4gPj4+Pj4+IDIuY2hhbmdlIFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCBmcm9tIDB4NUYxIHRv IDB4RkZGRjFGRkUNCj4gPj4+Pj4+IFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNzIGluIG15IFBF IGlzIDB4ZTAwMCBhbmQgbm8gbmVlZCB0byBjaGFuZ2UuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gQXMg UEUgZmlsZSBpcyBtb2RpZmllZCwgZnVuY3Rpb24gUGVDb2ZmTG9hZGVyR2V0SW1hZ2VJbmZvIHdp bGwgcmV0dXJuDQo+IGVycm9yLA0KPiA+Pj4+IHNvIEkNCj4gPj4+Pj4+IGhhdmUgdG8gcmVtb3Zl IGl0IHNvIHRoYXQgZm9yIGxvb3AgY2FuIGJlIHRlc3RlZCBpbg0KPiA+Pj4+IER4ZUltYWdlVmVy aWZpY2F0aW9uSGFuZGxlci4NCj4gPj4+Pj4+IFRoZSBsb2cgaXMgYXMgYmVsb3csDQo+ID4+Pj4+ Pg0KPiA+Pj4+Pj4gU2VjRGF0YURpci0+VmlydHVhbEFkZHJlc3M9MHhFMDAwLCBTZWNEYXRhRGly LT5TaXplPTB4RkZGRjFGRkYuDQo+ID4+Pj4+PiAoRmlyc3QgTG9vcCkNCj4gPj4+Pj4+IE9mZlNl dD0weEUwMDAuDQo+ID4+Pj4+PiBXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGg9MHhGRkZGMUZGRSwg QUxJR05fU0laRSAoV2luQ2VydGlmaWNhdGUtDQo+ID4+Pj4+Pj4gZHdMZW5ndGgpPTB4Mi4NCj4g Pj4+Pj4+IChTZWNvbmQgTG9vcCkNCj4gPj4+Pj4+IE9mZlNldD0weDAuDQo+ID4+Pj4+PiBXaW5D ZXJ0aWZpY2F0ZS0+ZHdMZW5ndGg9MHg1QTRELCBBTElHTl9TSVpFIChXaW5DZXJ0aWZpY2F0ZS0N Cj4gPj4+Pj4+PiBkd0xlbmd0aCk9MHgzLg0KPiA+Pj4+Pj4gKFRoaXJkIExvb3ApDQo+ID4+Pj4+ PiBPZmZTZXQ9MHg1QTUwLg0KPiA+Pj4+Pj4gV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoPTB4OTAy NCwgQUxJR05fU0laRSAoV2luQ2VydGlmaWNhdGUtDQo+ID4+Pj4+Pj4gZHdMZW5ndGgpPTB4NC4N Cj4gPj4+Pj4+IChGb3J0aCBMb29wKQ0KPiA+Pj4+Pj4gT2ZmU2V0PTB4RUE3OC4NCj4gPj4+Pj4+ IFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aD0weEFGQUZBRkFGLCBBTElHTl9TSVpFIChXaW5DZXJ0 aWZpY2F0ZS0NCj4gPj4+Pj4+PiBkd0xlbmd0aCk9MHgxLg0KPiA+Pj4+Pj4gKEZpZnRoIExvb3Ap DQo+ID4+Pj4+PiBPZmZTZXQ9MHhBRkIwOUEyOC4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBBcyBJIG1v ZGlmeSBTZWNEYXRhRGlyLT5TaXplIGFuZCBXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGgsIHNvIGlu IGZpcnN0DQo+ID4+IGxvb3ANCj4gPj4+PiB0aGUNCj4gPj4+Pj4+IGNvbmRpdGlvbiBjaGVjayB3 aGV0aGVyIHRoZSBTZWN1cml0eSBEYXRhIERpcmVjdG9yeSBoYXMgZW5vdWdoIHJvb20NCj4gbGVm dA0KPiA+Pj4+IGZvcg0KPiA+Pj4+Pj4gIldpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCIgaXMgb2su DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gaWYgKChTZWNEYXRhRGlyLT5WaXJ0dWFsQWRkcmVzcyArIFNl Y0RhdGFEaXItPlNpemUgLSBPZmZTZXQpIDw9IHNpemVvZg0KPiA+Pj4+Pj4gKFdJTl9DRVJUSUZJ Q0FURSkgfHwNCj4gPj4+Pj4+ICAgICAoU2VjRGF0YURpci0+VmlydHVhbEFkZHJlc3MgKyBTZWNE YXRhRGlyLT5TaXplIC0gT2ZmU2V0KSA8DQo+ID4+IFdpbkNlcnRpZmljYXRlLQ0KPiA+Pj4+Pj4+ IGR3TGVuZ3RoKSB7DQo+ID4+Pj4+PiAgIGJyZWFrOw0KPiA+Pj4+Pj4gfQ0KPiA+Pj4+Pj4NCj4g Pj4+Pj4+IEluIHRoZSBiZWdpbm5pbmcgb2Ygc2Vjb25kIGxvb3AsIFdpbkNlcnRpZmljYXRlLT5k d0xlbmd0aCArDQo+IEFMSUdOX1NJWkUNCj4gPj4+Pj4+IChXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5n dGgpIGlzIDB4RkZGRjIwMDAsIG9mZnNldCBpcyAweEUwMDANCj4gPj4+Pj4+DQo+ID4+Pj4+PiBP ZmZTZXQgKz0gKFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCArIEFMSUdOX1NJWkUgKFdpbkNlcnRp ZmljYXRlLQ0KPiA+Pj4+PiBkd0xlbmd0aCkpDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gT2Zmc2V0IG5v dyBpcyAwIGFuZCBvdmVyZmxvdyBoYXBwZW5zLiBTbyBldmVuIGlmIG15IFBFIG9ubHkgaGF2ZSBv bmUNCj4gPj4+PiBzaWduYXR1cmUsDQo+ID4+Pj4+PiB0aGUgZm9yIGxvb3AgaXMgc3RpbGwgZ29p bmcgdW50aWxsIGV4Y2VwdGlvbiBoYXBwZW5zLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+ PiBJIGNhbid0IHJlcHJvZHVjZSB0aGUgaXNzdWUgdXNpbmcgdGhlIGZpcnN0IHdheSwgYmVjYXVz ZSBpZiBXaW5DZXJ0aWZpY2F0ZS0NCj4gPj4+Pj4+PiBkd0xlbmd0aCBpcyBjbG9zZSB0byBNQVhf VUlOVDMyLCBpdCBtZWFucyBTZWNEYXRhRGlyLT5TaXplIHNob3VsZA0KPiBhbHNvDQo+ID4+Pj4g Y2xvc2UNCj4gPj4+Pj4+IHRvIE1BWF9VSU5UMzIsIG9yIHRoZSBjb25kaXRpb24gY2hlY2sNCj4g Pj4+Pj4+ICIoU2VjRGF0YURpci0+VmlydHVhbEFkZHJlc3MgKyBTZWNEYXRhRGlyLT5TaXplIC0g T2ZmU2V0KSA8DQo+ID4+IFdpbkNlcnRpZmljYXRlLQ0KPiA+Pj4+Pj4+IGR3TGVuZ3RoIiB3aWxs IGJyZWFrLiBCdXQgaWYgU2VjRGF0YURpci0+U2l6ZSBpcyB2ZXJ5IGxhcmdlLCBTZWNEYXRhRGly LQ0KPiA+Pj4+Pj4+IFZpcnR1YWxBZGRyZXNzIGhhdmUgdG8gYmUgc21hbGxlciB0aGFuIDggYnl0 ZXMsDQo+ID4+Pj4+PiBiZWNhdXNlIFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNzICsgU2VjRGF0 YURpci0+U2l6ZSA8IE1BWF9VSU5UMzIuDQo+ID4+Pj4+PiBTZWNEYXRhRGlyLT5WaXJ0dWFsQWRk cmVzcyBpcyB0aGUgYmVnaW5uaW5nIGFkZHJlc3Mgb2YgdGhlIHNpZ25hdHVyZSwNCj4gYW5kDQo+ ID4+Pj4gYmVmb3JlDQo+ID4+Pj4+PiBTZWNEYXRhRGlyLT5WaXJ0dWFsQWRkcmVzcyBpcyB0aGUg Y29udGVudCBvZiBvcmlnaW4gUEUgZmlsZSwgSSB0aGluayBpdCdzDQo+ID4+Pj4gaW1wb3NzaWJs ZQ0KPiA+Pj4+Pj4gdGhhdCB0aGUgc2l6ZSBvZiBQRSBmaWxlIGlzIG9ubHkgOCBieXRlcy4NCj4g Pj4+Pj4+DQo+ID4+Pj4+PiBBcyBJIGNoYW5nZWQgdGhlIG9uZSBsaW5lIGNvZGUgaW4gRHhlSW1h Z2VWZXJpZmljYXRpb25IYW5kbGVyIHRvDQo+ID4+IHJlcHJvZHVjZQ0KPiA+Pj4+IHRoZQ0KPiA+ Pj4+Pj4gaXNzdWUsIEknbSBub3Qgc3VyZSB3aGV0aGVyIGl0J3Mgb2suDQo+ID4+Pj4+Pg0KPiA+ Pj4+Pj4gVGhhbmtzDQo+ID4+Pj4+PiBXZW55aQ0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IE9uIDIwMjAv OC8xOSAxNzoyNiwgTGFzemxvIEVyc2VrIHdyb3RlOg0KPiA+Pj4+Pj4+IE9uIDA4LzE4LzIwIDE3 OjE4LCBNYXRoZXdzLCBKb2huIHdyb3RlOg0KPiA+Pj4+Pj4+PiBJIGR1ZyB1cCB0aGUgb3JpZ2lu YWwgcmVwb3J0IGRldGFpbHMuICBUaGlzIHdhcyBub3RlZCBhcyBhIGNvbmNlcm4NCj4gZHVyaW5n IGENCj4gPj4+Pj4+IHNvdXJjZSBjb2RlIGluc3BlY3Rpb24uICBUaGVyZSB3YXMgbm8gZGVtb25z dHJhdGlvbiBvZiBob3cgaXQgbWlnaHQgYmUNCj4gPj4+Pj4+IHRyaWdnZXJlZC4NCj4gPj4+Pj4+ Pj4NCj4gPj4+Pj4+Pj4gIiBUaGVyZSBpcyBhbiBpbnRlZ2VyIG92ZXJmbG93IHZ1bG5lcmFiaWxp dHkgaW4gdGhlDQo+ID4+Pj4+PiBEeGVJbWFnZVZlcmlmaWNhdGlvbkhhbmRsZXIgZnVuY3Rpb24g d2hlbg0KPiA+Pj4+Pj4+PiBwYXJzaW5nIHRoZSBQRSBmaWxlcyBhdHRyaWJ1dGUgY2VydGlmaWNh dGUgdGFibGUuIEluIGNhc2VzIHdoZXJlDQo+ID4+Pj4gV2luQ2VydGlmaWNhdGUtDQo+ID4+Pj4+ Pj4gZHdMZW5ndGggaXMNCj4gPj4+Pj4+Pj4gc3VmZmljaWVudGx5IGxhcmdlLCBpdCdzIHBvc3Np YmxlIHRvIG92ZXJmbG93IE9mZnNldCBiYWNrIHRvIDAgY2F1c2luZyBhbg0KPiA+Pj4+IGVuZGxl c3MNCj4gPj4+Pj4+IGxvb3AuIg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBUaGUgcmVjb21tZW5k YXRpb24gd2FzIHRvIGFkZCBzdHJpY3RlciBjaGVja2luZyBvZiAiT2Zmc2V0IiBhbmQgdGhlDQo+ ID4+Pj4+PiBlbWJlZGRlZCBsZW5ndGggZmllbGRzIG9mIGNlcnRpZmljYXRlIGRhdGENCj4gPj4+ Pj4+Pj4gYmVmb3JlIHVzaW5nIHRoZW0uDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBUaGFua3MgZm9y IGNoZWNraW5nIQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gTGFzemxvDQo+ID4+Pj4+Pj4NCj4gPj4+ Pj4+Pj4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPj4+Pj4+Pj4gRnJvbTogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0 LmNvbT4NCj4gPj4+Pj4+Pj4gU2VudDogVHVlc2RheSwgQXVndXN0IDE4LCAyMDIwIDE6NTkgQU0N Cj4gPj4+Pj4+Pj4gVG86IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgZGV2 ZWxAZWRrMi5ncm91cHMuaW87DQo+IFlhbywNCj4gPj4+Pj4+IEppZXdlbiA8amlld2VuLnlhb0Bp bnRlbC5jb20+OyB4aWV3ZW55aTJAaHVhd2VpLmNvbQ0KPiA+Pj4+Pj4+PiBDYzogaHVhbmdtaW5n MjNAaHVhd2VpLmNvbTsgc29uZ2RvbmdrdWFuZ0BodWF3ZWkuY29tOw0KPiA+PiBNYXRoZXdzLA0K PiA+Pj4+Pj4gSm9obiA8am9obi5tYXRoZXdzQGludGVsLmNvbT4NCj4gPj4+Pj4+Pj4gU3ViamVj dDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggRURLMiB2MiAxLzFdDQo+ID4+Pj4+PiBTZWN1cml0 eVBrZy9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYjpFbmhhbmNlZCB2ZXJpZmljYXRpb24gb2YgT2Zm c2V0DQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IE9uIDA4LzE4LzIwIDA0OjEwLCBXYW5nLCBKaWFu IEogd3JvdGU6DQo+ID4+Pj4+Pj4+PiBMYXN6bG8sDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4g TXkgYXBvbG9naWVzIGZvciB0aGUgc2xvdyByZXNwb25zZS4gSSdtIG5vdCB0aGUgb3JpZ2luYWwg cmVwb3J0ZXIgYnV0DQo+ID4+Pj4+Pj4+PiBqdXN0IHRoZSBCWiBzdWJtaXR0ZXIuIEFuZCBJIGRp ZG4ndCBkbyBkZWVwIGFuYWx5c2lzIHRvIHRoaXMgaXNzdWUuDQo+ID4+Pj4+Pj4+PiBUaGUgaXNz dWVzIHdhcyByZXBvcnRlZCBmcm9tIG9uZSBpbnRlcm5hbCB0ZWFtLiBBZGQgSm9obiBpbiBsb29w IHRvDQo+ID4+IHNlZQ0KPiA+Pj4+IGlmDQo+ID4+Pj4+PiBoZSBrbm93cyBtb3JlIGFib3V0IGl0 IG9yIG5vdC4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBNeSBzdXBlcmZpY2lhbCB1bmRlcnN0 YW5kaW5nIG9uIHN1Y2ggaXNzdWUgaXMgdGhhdCwgaWYgdGhlcmUncw0KPiA+Pj4+Pj4+Pj4gInBv dGVudGlhbCIgaXNzdWUgaW4gdGhlb3J5IGFuZCBoYXJkIHRvIHJlcHJvZHVjZSwgaXQncyBzdGls bCB3b3J0aHkNCj4gPj4+Pj4+Pj4+IG9mIHVzaW5nIGFuIGFsdGVybmF0aXZlIHdheSB0byByZXBs YWNlIHRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbg0KPiA+Pj4+Pj4+Pj4gd2l0aCBubyAicG90 ZW50aWFsIiBpc3N1ZSBhdCBhbGwuIE1heWJlIHdlIGRvbid0IGhhdmUgdG8gcHJvdmUgb2xkDQo+ IHdheQ0KPiA+PiBpcw0KPiA+Pj4+Pj4gc29tZXRoaW5nIHdyb25nIGJ1dCBtdXN0IHByb3ZlIHRo YXQgdGhlIG5ldyB3YXkgaXMgcmVhbGx5IHNhZmUuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IEkg YWdyZWUsIHRoYW5rcy4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gSXQgd291bGQgYmUgbmljZSB0 byBoZWFyIG1vcmUgZnJvbSB0aGUgaW50ZXJuYWwgdGVhbSBhYm91dCB0aGUNCj4gPj4gb3JpZ2lu YWxseQ0KPiA+Pj4+Pj4gcmVwb3J0ZWQgKGV2ZW4gaWYgaGFyZC10by10cmlnZ2VyKSBpc3N1ZS4N Cj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gVGhhbmtzIQ0KPiA+Pj4+Pj4+PiBMYXN6bG8NCj4gPj4+ Pj4+Pj4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBSZWdhcmRzLA0KPiA+Pj4+Pj4+Pj4gSmlh bg0KPiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+Pj4+Pj4+Pj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vw cy5pbz4gT24gQmVoYWxmDQo+IE9mDQo+ID4+Pj4gTGFzemxvDQo+ID4+Pj4+Pj4+Pj4gRXJzZWsN Cj4gPj4+Pj4+Pj4+PiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMTgsIDIwMjAgMTI6NTMgQU0NCj4g Pj4+Pj4+Pj4+PiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgZGV2ZWxA ZWRrMi5ncm91cHMuaW87DQo+ID4+Pj4+Pj4+Pj4geGlld2VueWkyQGh1YXdlaS5jb207IFdhbmcs IEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+Pj4+Pj4+Pj4+IENjOiBodWFuZ21p bmcyM0BodWF3ZWkuY29tOyBzb25nZG9uZ2t1YW5nQGh1YXdlaS5jb20NCj4gPj4+Pj4+Pj4+PiBT dWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCBFREsyIHYyIDEvMV0NCj4gPj4+Pj4+Pj4+ PiBTZWN1cml0eVBrZy9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYjpFbmhhbmNlZCB2ZXJpZmljYXRp b24gb2YNCj4gT2Zmc2V0DQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBIaSBKaWV3ZW4sDQo+ ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBPbiAwOC8xNC8yMCAxMDo1MywgWWFvLCBKaWV3ZW4g d3JvdGU6DQo+ID4+Pj4+Pj4+Pj4+PiBUbyBKaWV3ZW4sDQo+ID4+Pj4+Pj4+Pj4+PiBTb3JyeSwg SSBkb24ndCBoYXZlIGVudmlyb25tZW50IHRvIHJlcHJvZHVjZSB0aGUgaXNzdWUuDQo+ID4+Pj4+ Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+IFBsZWFzZSBoZWxwIG1lIHVuZGVyc3RhbmQsIGlmIHlvdSBk b27igJl0IGhhdmUgZW52aXJvbm1lbnQgdG8NCj4gPj4+Pj4+Pj4+Pj4gcmVwcm9kdWNlIHRoZQ0K PiA+Pj4+Pj4+Pj4+IGlzc3VlLCBob3cgZG8geW91IGd1YXJhbnRlZSB0aGF0IHlvdXIgcGF0Y2gg ZG9lcyBmaXggdGhlIHByb2JsZW0NCj4gYW5kDQo+ID4+Pj4+Pj4+Pj4gd2UgZG9u4oCZdCBoYXZl IGFueSBvdGhlciB2dWxuZXJhYmlsaXRpZXM/DQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBU aGUgb3JpZ2luYWwgYnVnIHJlcG9ydCBpbg0KPiA+Pj4+Pj4+Pj4+IDxodHRwczovL2J1Z3ppbGxh LnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTUjYzA+IGlzDQo+ID4+IHNlcmlvdXNs eQ0KPiA+Pj4+Pj4+Pj4+IGxhY2tpbmcuIEl0IGRvZXMgbm90IGdvIGludG8gZGV0YWlsIGFib3V0 IHRoZSBhbGxlZ2VkIGludGVnZXINCj4gb3ZlcmZsb3cuDQo+ID4+Pj4+Pj4+Pj4gSXQgZG9lcyBu b3QgcXVvdGUgdGhlIGNvZGUsIGRvZXMgbm90IGV4cGxhaW4gdGhlIGNvbnRyb2wgZmxvdywgZG9l cw0KPiA+Pj4+Pj4+Pj4+IG5vdCBpZGVudGlmeSB0aGUgZXhhY3QgZWRrMiBjb21taXQgYXQgd2hp Y2ggdGhlIHZ1bG5lcmFiaWxpdHkgZXhpc3RzLg0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4g VGhlIGJ1ZyByZXBvcnQgYWxzbyBkb2VzIG5vdCBvZmZlciBhIHJlcHJvZHVjZXIuDQo+ID4+Pj4+ Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBBZGRpdGlvbmFsbHksIHRoZSBleGFjdCBzdGF0ZW1lbnQgdGhh dCB0aGUgYnVnIHJlcG9ydCBkb2VzIG1ha2UsDQo+ID4+Pj4+Pj4+Pj4gbmFtZWx5DQo+ID4+Pj4+ Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiAgIGl0J3MgcG9zc2libGUgdG8gb3ZlcmZsb3cgT2Zmc2V0IGJh Y2sgdG8gMCBjYXVzaW5nIGFuIGVuZGxlc3MgbG9vcA0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ Pj4gaXMgd3JvbmcgKGFzIGZhciBhcyBJIGNhbiB0ZWxsIGFueXdheSkuIEl0IGlzIG5vdCAiT2Zm U2V0IiB0aGF0IGNhbg0KPiA+Pj4+Pj4+Pj4+IGJlIG92ZXJmbG93ZWQgdG8gemVybywgYnV0IHRo ZSAqYWRkZW5kKiB0aGF0IGlzIGFkZGVkIHRvIE9mZlNldA0KPiBjYW4NCj4gPj4+Pj4+Pj4+PiBi ZSBvdmVyZmxvd2VkIHRvIHplcm8uIFRoZXJlZm9yZSB0aGUgaW5maW5pdGUgbG9vcCB3aWxsIGFy aXNlDQo+IGJlY2F1c2UNCj4gPj4+Pj4+Pj4+PiBPZmZTZXQgcmVtYWlucyBzdHVjayBhdCBpdHMg cHJlc2VudCB2YWx1ZSwgYW5kIG5vdCBiZWNhdXNlIE9mZlNldA0KPiA+Pj4+Pj4+Pj4+IHdpbGwg YmUgcmUtc2V0IHRvIHplcm8uDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBGb3IgdGhlIHJl YXNvbnMsIHdlIGNhbiBvbmx5IHNwZWN1bGF0ZSBhcyB0byB3aGF0IHRoZSBhY3R1YWwNCj4gcHJv YmxlbQ0KPiA+Pj4+Pj4+Pj4+IGlzLCB1bmxlc3MgSmlhbiBkZWNpZGVzIHRvIGpvaW4gdGhlIGRp c2N1c3Npb24gYW5kIGNsYXJpZmllcyB3aGF0IGhlDQo+ID4+Pj4+Pj4+Pj4gaGFkIGluIG1pbmQg b3JpZ2luYWxseS4NCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IE15IHVuZGVyc3RhbmRpbmcg KG9yIGV2ZW4gInJlY29uc3RydWN0aW9uIikgb2YgdGhlIHZ1bG5lcmFiaWxpdHkgaXMNCj4gPj4+ Pj4+Pj4+PiBkZXNjcmliZWQgYWJvdmUsIGFuZCBpbiB0aGUgcGF0Y2hlcyB0aGF0IEkgcHJvcG9z ZWQuDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBXZSBjYW4gd3JpdGUgYSBwYXRjaCBiYXNl ZCBvbiBjb2RlIGFuYWx5c2lzLiBJdCdzIHBvc3NpYmxlIHRvDQo+ID4+Pj4+Pj4+Pj4gaWRlbnRp ZnkgaW50ZWdlciBvdmVyZmxvd3MgYmFzZWQgb24gY29kZSBhbmFseXNpcywgYW5kIGl0J3MgcG9z c2libGUNCj4gPj4+Pj4+Pj4+PiB0byB2ZXJpZnkgdGhlIGNvcnJlY3RuZXNzIG9mIGZpeGVzIGJ5 IGNvZGUgcmV2aWV3LiBPYnZpb3VzbHkgdGVzdGluZw0KPiA+Pj4+Pj4+Pj4+IGlzIGFsd2F5cyBn b29kLCBidXQgbWFueSB0aW1lcywgY29uc3RydWN0aW5nIHJlcHJvZHVjZXJzIGZvciBzdWNoDQo+ ID4+Pj4+Pj4+Pj4gaXNzdWVzIHRoYXQgd2VyZSBmb3VuZCBieSBjb2RlIHJldmlldywgaXMgZGlm ZmljdWx0IGFuZCB0aW1lDQo+ID4+Pj4+Pj4+Pj4gY29uc3VtaW5nLiBXZSBjYW4gc2F5IHRoYXQg d2UgZG9uJ3QgZml4IHZ1bG5lcmFiaWxpdGllcyB3aXRob3V0DQo+ID4+Pj4+Pj4+Pj4gcmVwcm9k dWNlcnMsIG9yIHdlIGNhbiBzYXkgdGhhdCB3ZSBtYWtlIGFuIGVmZm9ydCB0byBmaXggdGhlbSBl dmVuDQo+IGlmDQo+ID4+Pj4+Pj4+Pj4gYWxsIHdlIGhhdmUgaXMgY29kZSBhbmFseXNpcyAoYW5k IG5vdCBhIHJlcHJvZHVjZXIpLg0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gU28gdGhlIGFi b3ZlIHBhcmFncmFwaCBjb25jZXJucyAiY29ycmVjdG5lc3MiLiBSZWdhcmRpbmcNCj4gPj4+Pj4+ Pj4+PiAiY29tcGxldGVuZXNzIiwgSSBndWFyYW50ZWUgeW91IHRoYXQgdGhpcyBwYXRjaCBkb2Vz IG5vdCBmaXggKmFsbCoNCj4gPj4+Pj4+Pj4+PiBwcm9ibGVtcyByZWxhdGVkIHRvIFBFIHBhcnNp bmcuIChTZWUgdGhlIG90aGVyIEJaIHRpY2tldHMuKSBJdCBkb2VzDQo+ID4+Pj4+Pj4+Pj4gZml4 ICpvbmUqIGlzc3VlIHdpdGggUEUgcGFyc2luZy4gV2UgY2FuIHNheSB0aGF0IHdlIHRyeSB0byBm aXggc3VjaA0KPiA+Pj4+Pj4+Pj4+IGlzc3VlcyBncmFkdWFsbHkgKGdpdmUgZGlmZmVyZW50IENW RSBudW1iZXJzIHRvIGRpZmZlcmVudCBpc3N1ZXMsIGFuZA0KPiA+Pj4+Pj4+Pj4+IGFkZHJlc3Mg dGhlbSBvbmUgYXQgYSB0aW1lKSwgb3Igd2UgY2FuIHNheSB0aGF0IHdlIHJld3JpdGUgUEUNCj4g cGFyc2luZw0KPiA+Pj4+Pj4gZnJvbSB0aGUgZ3JvdW5kIHVwLg0KPiA+Pj4+Pj4+Pj4+IChCVFc6 IEkgaGF2ZSBzZXJpb3VzbHkgYXR0ZW1wdGVkIHRoYXQgaW4gdGhlIHBhc3QsIGFuZCBJIGdhdmUg dXAsDQo+ID4+Pj4+Pj4+Pj4gYmVjYXVzZSB0aGUgUEUgZm9ybWF0IGlzIEZVQkFSLikNCj4gPj4+ Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IEluIHN1bW1hcnk6DQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+ Pj4+PiAtIHRoZSBwcm9ibGVtIHN0YXRlbWVudCBpcyB1bmNsZWFyLA0KPiA+Pj4+Pj4+Pj4+DQo+ ID4+Pj4+Pj4+Pj4gLSBpdCBzZWVtcyBsaWtlIHRoZXJlIGlzIGluZGVlZCBhbiBpbnRlZ2VyIG92 ZXJmbG93IHByb2JsZW0gaW4gdGhlDQo+ID4+Pj4+Pj4+Pj4gU2VjRGF0YURpciBwYXJzaW5nIGxv b3AsIGJ1dCBpdCdzIHVuY2VydGFpbiB3aGV0aGVyIHRoZSBidWcNCj4gcmVwb3J0ZXINCj4gPj4+ Pj4+Pj4+PiBoYWQgZXhhY3RseSB0aGF0IGluIG1pbmQNCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+ Pj4+IC0gUEUgcGFyc2luZyBpcyBndWFyYW50ZWVkIHRvIGhhdmUgb3RoZXIgdnVsbmVyYWJpbGl0 aWVzIGVsc2V3aGVyZSBpbg0KPiA+Pj4+Pj4+Pj4+IGVkazIsIGJ1dCBJJ20gY3VycmVudGx5IHVu YXdhcmUgb2Ygb3RoZXIgc3VjaCBpc3N1ZXMgaW4NCj4gPj4+Pj4+Pj4+PiBEeGVJbWFnZVZlcmlm aWNhdGlvbkxpYiBzcGVjaWZpY2FsbHkNCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IC0gZXZl biBpZiB0aGVyZSBhcmUgb3RoZXIgc3VjaCBwcm9ibGVtcyAoaW4gRHhlSW1hZ2VWZXJpZmljYXRp b25MaWINCj4gPj4+Pj4+Pj4+PiBvciBlbHN3ZWhlcmUpLCBmaXhpbmcgdGhpcyBidWcgdGhhdCB3 ZSBrbm93IGFib3V0IGlzIGxpa2VseQ0KPiA+Pj4+Pj4+Pj4+IHdvcnRod2hpbGUNCj4gPj4+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IC0gZm9yIG1hbnkgc3VjaCBidWdzLCBjb25zdHJ1Y3RpbmcgYSBy ZXByb2R1Y2VyIGlzIGRpZmZpY3VsdCBhbmQgdGltZQ0KPiA+Pj4+Pj4+Pj4+IGNvbnN1bWluZzsg Y29kZSBhbmFseXNpcywgYW5kICpyZWdyZXNzaW9uLXRlc3RpbmcqIGFyZSBmcmVxdWVudGx5DQo+ IHRoZQ0KPiA+Pj4+Pj4+Pj4+IG9ubHkgdG9vbHMgd2UgaGF2ZS4gVGhhdCBkb2Vzbid0IG1lYW4g d2Ugc2hvdWxkIGlnbm9yZSB0aGlzIGNsYXNzDQo+IG9mDQo+ID4+Pj4gYnVncy4NCj4gPj4+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IChGaXhpbmcgaW50ZWdlciBvdmVyZmxvd3MgcmV0cm8tYWN0aXZl bHkgaXMgbW9yZSBkaWZmaWN1bHQgdGhhbg0KPiA+Pj4+Pj4+Pj4+IHdyaXRpbmcgb3ZlcmZsb3ct ZnJlZSBjb2RlIGluIHRoZSBmaXJzdCBwbGFjZSwgYnV0IHRoYXQgc2hpcCBoYXMNCj4gPj4+Pj4+ Pj4+PiBzYWlsZWQ7IHNvIHdlIGNhbiBvbmx5IGZpZ2h0IHRoZXNlIGJ1Z3MgaW5jcmVtZW50YWxs eSBub3csIHVubGVzcw0KPiB3ZQ0KPiA+Pj4+Pj4+Pj4+IGNhbiByZXdyaXRlIFBFIHBhcnNpbmcg d2l0aCBhIG5ldyBkYXRhIHN0cnVjdHVyZSBmcm9tIHRoZSBncm91bmQNCj4gdXAuDQo+ID4+Pj4+ Pj4+Pj4gQWdhaW4gSSB0cmllZCB0aGF0IGFuZCBnYXZlIHVwLCBiZWNhdXNlIHRoZSBzcGVjIGlz IG5vdCBwdWJsaWMsIGFuZA0KPiA+Pj4+Pj4+Pj4+IHdoYXQgSSBkaWQgbWFuYWdlIHRvIGxlYXJu IGFib3V0IFBFLCBzaG93ZWQgdGhhdCBpdCB3YXMgaW5zYW5lbHkNCj4gPj4+Pj4+Pj4+PiBvdmVy LWVuZ2luZWVyZWQuIEknbSBub3Qgc2F5aW5nIHRoYXQgb3RoZXIgYmluYXJ5IC8gZXhlY3V0YWJs ZQ0KPiA+Pj4+Pj4+Pj4+IGZvcm1hdHMgYXJlIGJldHRlciwgb2YgY291cnNlLikNCj4gPj4+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IFBsZWFzZSBjaGVjayBvdXQgbXkgcGF0Y2hlcyAoaW5saW5lZCBl bHNld2hlcmUgaW4gdGhpcyB0aHJlYWQpLCBhbmQNCj4gPj4+Pj4+Pj4+PiBjb21tZW50IHdoZXRo ZXIgeW91J2QgbGlrZSBtZSB0byBwb3N0IHRoZW0gdG8gdGhlIGxpc3QgYXMgYQ0KPiA+Pj4+Pj4+ Pj4+IHN0YW5kYWxvbmUgc2VyaWVzLg0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gSmlhbjog aXQgd291bGRuJ3QgaHVydCBpZiB5b3UgY29tbWVudGVkIGFzIHdlbGwuDQo+ID4+Pj4+Pj4+Pj4N Cj4gPj4+Pj4+Pj4+PiBUaGFua3MNCj4gPj4+Pj4+Pj4+PiBMYXN6bG8NCj4gPj4+Pj4+Pj4+Pg0K PiA+Pj4+Pj4+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+Pj4+Pj4+Pj4+ IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVo YWxmDQo+ID4+IE9mDQo+ID4+Pj4+Pj4+Pj4gd2VueWkseGllDQo+ID4+Pj4+Pj4+Pj4+PiB2aWEg Z3JvdXBzLmlvDQo+ID4+Pj4+Pj4+Pj4+PiBTZW50OiBGcmlkYXksIEF1Z3VzdCAxNCwgMjAyMCAz OjU0IFBNDQo+ID4+Pj4+Pj4+Pj4+PiBUbzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNv bT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOw0KPiBZYW8sDQo+ID4+Pj4+Pj4+Pj4+PiBKaWV3ZW4g PGppZXdlbi55YW9AaW50ZWwuY29tPjsgV2FuZywgSmlhbiBKDQo+ID4+Pj4gPGppYW4uai53YW5n QGludGVsLmNvbT4NCj4gPj4+Pj4+Pj4+Pj4+IENjOiBodWFuZ21pbmcyM0BodWF3ZWkuY29tOyBz b25nZG9uZ2t1YW5nQGh1YXdlaS5jb20NCj4gPj4+Pj4+Pj4+Pj4+IFN1YmplY3Q6IFJlOiBbZWRr Mi1kZXZlbF0gW1BBVENIIEVESzIgdjIgMS8xXQ0KPiA+Pj4+Pj4+Pj4+Pj4gU2VjdXJpdHlQa2cv RHhlSW1hZ2VWZXJpZmljYXRpb25MaWI6RW5oYW5jZWQgdmVyaWZpY2F0aW9uIG9mDQo+ID4+IE9m ZnNldA0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+IFRvIExhc3psbywNCj4gPj4+Pj4+ Pj4+Pj4+IFRoYW5rIHlvdSBmb3IgeW91ciBkZXRhaWxlZCBkZXNjcmlwdGlvbiwgSSBhZ3JlZSB3 aXRoIHdoYXQgeW91DQo+ID4+Pj4+Pj4+Pj4+PiBhbmFseXplZCBhbmQNCj4gPj4+Pj4+Pj4+PiBJ J20NCj4gPj4+Pj4+Pj4+Pj4+IE9LIHdpdGggeW91ciBwYXRjaGVzLCBpdCdzDQo+ID4+Pj4+Pj4+ Pj4+PiBjb3JyZWN0IGFuZCBtdWNoIHNpbXBsZXIuDQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+ Pj4+Pj4gVG8gSmlld2VuLA0KPiA+Pj4+Pj4+Pj4+Pj4gU29ycnksIEkgZG9uJ3QgaGF2ZSBlbnZp cm9ubWVudCB0byByZXByb2R1Y2UgdGhlIGlzc3VlLg0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+ Pj4+Pj4+IFRoYW5rcw0KPiA+Pj4+Pj4+Pj4+Pj4gV2VueWkNCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+ Pj4+Pj4+Pj4+PiBPbiAyMDIwLzgvMTQgMjo1MCwgTGFzemxvIEVyc2VrIHdyb3RlOg0KPiA+Pj4+ Pj4+Pj4+Pj4+IE9uIDA4LzEzLzIwIDEzOjU1LCBXZW55aSBYaWUgd3JvdGU6DQo+ID4+Pj4+Pj4+ Pj4+Pj4+IFJFRjpodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lk PTIyMTUNCj4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gVGhlcmUgaXMgYW4gaW50 ZWdlciBvdmVyZmxvdyB2dWxuZXJhYmlsaXR5IGluDQo+ID4+Pj4+Pj4+Pj4+Pj4+IER4ZUltYWdl VmVyaWZpY2F0aW9uSGFuZGxlciBmdW5jdGlvbiB3aGVuIHBhcnNpbmcgdGhlIFBFDQo+IGZpbGVz DQo+ID4+Pj4+Pj4+Pj4+Pj4+IGF0dHJpYnV0ZSBjZXJ0aWZpY2F0ZSB0YWJsZS4gSW4gY2FzZXMg d2hlcmUNCj4gPj4+Pj4+Pj4+Pj4+Pj4gV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoIGlzIHN1ZmZp Y2llbnRseSBsYXJnZSwgaXQncyBwb3NzaWJsZSB0bw0KPiA+Pj4+Pj4gb3ZlcmZsb3cgT2Zmc2V0 IGJhY2sgdG8gMCBjYXVzaW5nIGFuIGVuZGxlc3MgbG9vcC4NCj4gPj4+Pj4+Pj4+Pj4+Pj4NCj4g Pj4+Pj4+Pj4+Pj4+Pj4gQ2hlY2sgb2Zmc2V0IGluYmV0d2VlbiBWaXJ0dWFsQWRkcmVzcyBhbmQg VmlydHVhbEFkZHJlc3MgKw0KPiBTaXplLg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBVc2luZyBTYWZlaW50 TGliIHRvIGRvIG9mZnNldCBhZGRpdGlvbiB3aXRoIHJlc3VsdCBjaGVjay4NCj4gPj4+Pj4+Pj4+ Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gQ2M6IEppZXdlbiBZYW8gPGppZXdlbi55YW9AaW50ZWwu Y29tPg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBDYzogSmlhbiBKIFdhbmcgPGppYW4uai53YW5nQGludGVs LmNvbT4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gQ2M6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5j b20+DQo+ID4+Pj4+Pj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFdlbnlpIFhpZSA8eGlld2VueWky QGh1YXdlaS5jb20+DQo+ID4+Pj4+Pj4+Pj4+Pj4+IC0tLQ0KPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+ Pj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+IFNlY3VyaXR5UGtnL0xpYnJhcnkvRHhlSW1hZ2VWZXJpZmlj YXRpb25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MDQo+ID4+Pj4+Pj4+Pj4+Pj4+IGliLmluZg0K PiA+Pj4+Pj4+Pj4+IHwNCj4gPj4+Pj4+Pj4+Pj4+IDEgKw0KPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+ Pj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+IFNlY3VyaXR5UGtnL0xpYnJhcnkvRHhlSW1hZ2VWZXJpZmlj YXRpb25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MDQo+ID4+Pj4+Pj4+Pj4+Pj4+IGliLmgNCj4g Pj4+Pj4+Pj4+PiB8DQo+ID4+Pj4+Pj4+Pj4+PiAxICsNCj4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+ Pj4+Pj4+Pj4+Pj4NCj4gPj4+PiBTZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0 aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTA0KPiA+Pj4+Pj4+Pj4+Pj4+PiBpYi5jDQo+ID4+ Pj4+Pj4+Pj4gfA0KPiA+Pj4+Pj4+Pj4+Pj4gMTExICsrKysrKysrKysrLS0tLS0tLS0tDQo+ID4+ Pj4+Pj4+Pj4+Pj4+ICAzIGZpbGVzIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDUwIGRlbGV0 aW9ucygtKQ0KPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0DQo+ ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+IGEvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlm aWNhdGlvbkxpYi9EeGVJbWFnZVZlcmlmaWNhdGlvbkwNCj4gPj4+Pj4+Pj4+Pj4+IGliLmluZg0K PiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+PiBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvRHhlSW1hZ2VWZXJp ZmljYXRpb25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MDQo+ID4+Pj4+Pj4+Pj4+PiBpYi5pbmYN Cj4gPj4+Pj4+Pj4+Pj4+Pj4gaW5kZXggMWUxYTYzOTg1N2UwLi5hN2FjNDgzMGIzZDQgMTAwNjQ0 DQo+ID4+Pj4+Pj4+Pj4+Pj4+IC0tLQ0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+PiBhL1NlY3VyaXR5 UGtnL0xpYnJhcnkvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb25M DQo+ID4+Pj4+Pj4+Pj4+PiBpYi5pbmYNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKysrDQo+ID4+Pj4+Pj4+ Pj4+Pg0KPiA+Pj4+IGIvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlmaWNhdGlvbkxp Yi9EeGVJbWFnZVZlcmlmaWNhdGlvbkwNCj4gPj4+Pj4+Pj4+Pj4+IGliLmluZg0KPiA+Pj4+Pj4+ Pj4+Pj4+PiBAQCAtNTMsNiArNTMsNyBAQCBbTGlicmFyeUNsYXNzZXNdDQo+ID4+Pj4+Pj4+Pj4+ Pj4+ICAgIFNlY3VyaXR5TWFuYWdlbWVudExpYg0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICBQZUNvZmZM aWINCj4gPj4+Pj4+Pj4+Pj4+Pj4gICAgVHBtTWVhc3VyZW1lbnRMaWINCj4gPj4+Pj4+Pj4+Pj4+ Pj4gKyAgU2FmZUludExpYg0KPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgW1By b3RvY29sc10NCj4gPj4+Pj4+Pj4+Pj4+Pj4gICAgZ0VmaUZpcm13YXJlVm9sdW1lMlByb3RvY29s R3VpZCAgICAgICAjIw0KPiA+Pj4+IFNPTUVUSU1FU19DT05TVU1FUw0KPiA+Pj4+Pj4+Pj4+Pj4+ PiBkaWZmIC0tZ2l0DQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+IGEvU2VjdXJpdHlQa2cvTGlicmFy eS9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi9EeGVJbWFnZVZlcmlmaWNhdGlvbkwNCj4gPj4+Pj4+ Pj4+Pj4+IGliLmgNCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4gYi9TZWN1cml0eVBrZy9MaWJyYXJ5 L0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTA0KPiA+Pj4+Pj4+ Pj4+Pj4gaWIuaA0KPiA+Pj4+Pj4+Pj4+Pj4+PiBpbmRleCAxNzk1NWZmOTc3NGMuLjA2MDI3Mzkx N2Q1ZCAxMDA2NDQNCj4gPj4+Pj4+Pj4+Pj4+Pj4gLS0tDQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+ IGEvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi9EeGVJbWFnZVZl cmlmaWNhdGlvbkwNCj4gPj4+Pj4+Pj4+Pj4+IGliLmgNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKysrDQo+ ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+IGIvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlm aWNhdGlvbkxpYi9EeGVJbWFnZVZlcmlmaWNhdGlvbkwNCj4gPj4+Pj4+Pj4+Pj4+IGliLmgNCj4g Pj4+Pj4+Pj4+Pj4+Pj4gQEAgLTIzLDYgKzIzLDcgQEAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS0NCj4gPj4gUGF0ZW50DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICNpbmNsdWRlIDxM aWJyYXJ5L0RldmljZVBhdGhMaWIuaD4gICNpbmNsdWRlDQo+ID4+Pj4+Pj4+Pj4+Pj4+IDxMaWJy YXJ5L1NlY3VyaXR5TWFuYWdlbWVudExpYi5oPiAgI2luY2x1ZGUNCj4gPj4gPExpYnJhcnkvUGVD b2ZmTGliLmg+DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsjaW5jbHVkZSA8TGlicmFyeS9TYWZlSW50TGli Lmg+DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAjaW5jbHVkZSA8UHJvdG9jb2wvRmlybXdhcmVWb2x1bWUy Lmg+ICAjaW5jbHVkZQ0KPiA+Pj4+Pj4+Pj4+Pj4+PiA8UHJvdG9jb2wvRGV2aWNlUGF0aC5oPiAg I2luY2x1ZGUgPFByb3RvY29sL0Jsb2NrSW8uaD4gZGlmZiAtDQo+IC0NCj4gPj4gZ2l0DQo+ID4+ Pj4+Pj4+Pj4+Pg0KPiA+Pj4+IGEvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlmaWNh dGlvbkxpYi9EeGVJbWFnZVZlcmlmaWNhdGlvbkwNCj4gPj4+Pj4+Pj4+Pj4+IGliLmMNCj4gPj4+ Pj4+Pj4+Pj4+DQo+ID4+Pj4gYi9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0 aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTA0KPiA+Pj4+Pj4+Pj4+Pj4gaWIuYw0KPiA+Pj4+ Pj4+Pj4+Pj4+PiBpbmRleCAzNmI4N2UxNmQ1M2QuLmRiYzAzZTI4YzA1YiAxMDA2NDQNCj4gPj4+ Pj4+Pj4+Pj4+Pj4gLS0tDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+PiBhL1NlY3VyaXR5UGtnL0xpYnJh cnkvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWINCj4gPj4+ Pj4+Pj4+PiAuYw0KPiA+Pj4+Pj4+Pj4+Pj4+PiArKysNCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4g Yi9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliL0R4ZUltYWdlVmVy aWZpY2F0aW9uTA0KPiA+Pj4+Pj4+Pj4+Pj4gaWIuYw0KPiA+Pj4+Pj4+Pj4+Pj4+PiBAQCAtMTY1 OCw2ICsxNjU4LDEwIEBAIER4ZUltYWdlVmVyaWZpY2F0aW9uSGFuZGxlciAoDQo+ID4+Pj4+Pj4+ Pj4+Pj4+ICAgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgICBIYXNoU3RhdHVz Ow0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICBFRklfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAg ICAgRGJTdGF0dXM7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgIEJPT0xFQU4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJc0ZvdW5kOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICBVSU5UMzIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQWxpZ25lZExlbmd0aDsNCj4gPj4+Pj4+Pj4+Pj4+Pj4g KyAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdDsNCj4gPj4+Pj4+ Pj4+Pj4+Pj4gKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZFN0YXR1 czsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElzQXV0aERhdGFBc3NpZ25lZDsNCj4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+ Pj4gICAgU2lnbmF0dXJlTGlzdCAgICAgPSBOVUxMOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICBTaWdu YXR1cmVMaXN0U2l6ZSA9IDA7DQo+ID4+Pj4+Pj4+Pj4+Pj4+IEBAIC0xNjY3LDYgKzE2NzEsNyBA QCBEeGVJbWFnZVZlcmlmaWNhdGlvbkhhbmRsZXIgKA0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICBBY3Rp b24gICAgICAgICAgICA9IEVGSV9JTUFHRV9FWEVDVVRJT05fQVVUSF9VTlRFU1RFRDsNCj4gPj4+ Pj4+Pj4+Pj4+Pj4gICAgSXNWZXJpZmllZCAgICAgICAgPSBGQUxTRTsNCj4gPj4+Pj4+Pj4+Pj4+ Pj4gICAgSXNGb3VuZCAgICAgICAgICAgPSBGQUxTRTsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAgUmVz dWx0ICAgICAgICAgICAgPSAwOw0KPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+PiAg ICAvLw0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAvLyBDaGVjayB0aGUgaW1hZ2UgdHlwZSBhbmQgZ2V0 IHBvbGljeSBzZXR0aW5nLg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBAQCAtMTg1MCw5ICsxODU1LDEwIEBA IER4ZUltYWdlVmVyaWZpY2F0aW9uSGFuZGxlciAoDQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgIC8vIFRo ZSBmaXJzdCBjZXJ0aWZpY2F0ZSBzdGFydHMgYXQgb2Zmc2V0DQo+ID4+Pj4+Pj4+Pj4+Pj4+IChT ZWNEYXRhRGlyLT5WaXJ0dWFsQWRkcmVzcykgZnJvbQ0KPiA+Pj4+Pj4+Pj4+IHRoZQ0KPiA+Pj4+ Pj4+Pj4+Pj4gc3RhcnQgb2YgdGhlIGZpbGUuDQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgIC8vDQo+ID4+ Pj4+Pj4+Pj4+Pj4+ICAgIGZvciAoT2ZmU2V0ID0gU2VjRGF0YURpci0+VmlydHVhbEFkZHJlc3M7 DQo+ID4+Pj4+Pj4+Pj4+Pj4+IC0gICAgICAgT2ZmU2V0IDwgKFNlY0RhdGFEaXItPlZpcnR1YWxB ZGRyZXNzICsgU2VjRGF0YURpci0+U2l6ZSk7DQo+ID4+Pj4+Pj4+Pj4+Pj4+IC0gICAgICAgT2Zm U2V0ICs9IChXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGggKyBBTElHTl9TSVpFDQo+ID4+Pj4+PiAo V2luQ2VydGlmaWNhdGUtDQo+ID4+Pj4+Pj4+Pj4+Pj4gZHdMZW5ndGgpKSkgew0KPiA+Pj4+Pj4+ Pj4+Pj4+PiArICAgICAgIChPZmZTZXQgPj0gU2VjRGF0YURpci0+VmlydHVhbEFkZHJlc3MpICYm IChPZmZTZXQgPA0KPiA+Pj4+Pj4+Pj4+Pj4+PiArIChTZWNEYXRhRGlyLQ0KPiA+Pj4+Pj4+Pj4+ Pj4+IFZpcnR1YWxBZGRyZXNzICsgU2VjRGF0YURpci0+U2l6ZSkpOykgew0KPiA+Pj4+Pj4+Pj4+ Pj4+PiArICAgIElzQXV0aERhdGFBc3NpZ25lZCA9IEZBTFNFOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiAg ICAgIFdpbkNlcnRpZmljYXRlID0gKFdJTl9DRVJUSUZJQ0FURSAqKSAobUltYWdlQmFzZSArDQo+ IE9mZlNldCk7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgQWxpZ25lZExlbmd0aCA9IFdpbkNlcnRp ZmljYXRlLT5kd0xlbmd0aCArIEFMSUdOX1NJWkUNCj4gPj4+Pj4+Pj4+PiAoV2luQ2VydGlmaWNh dGUtDQo+ID4+Pj4+Pj4+Pj4+Pj4gZHdMZW5ndGgpOw0KPiA+Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+ Pj4+Pj4+Pj4gSSBkaXNhZ3JlZSB3aXRoIHRoaXMgcGF0Y2guDQo+ID4+Pj4+Pj4+Pj4+Pj4NCj4g Pj4+Pj4+Pj4+Pj4+PiBUaGUgcHJpbWFyeSByZWFzb24gZm9yIG15IGRpc2FncmVlbWVudCBpcyB0 aGF0IHRoZSBidWcgcmVwb3J0DQo+ID4+Pj4+Pj4+Pj4+Pj4gPGh0dHBzOi8vYnVnemlsbGEudGlh bm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNSNjMD4gaXMNCj4gPj4+Pj4+Pj4+Pj4+PiBp bmV4YWN0LCBhbmQgc28gdGhpcyBwYXRjaCB0cmllcyB0byBmaXggdGhlIHdyb25nIHRoaW5nLg0K PiA+Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+Pj4gV2l0aCBlZGsyIG1hc3RlciBhdCBjb21t aXQgNjU5MDRjZGJiMzNjLCBpdCBpcyAqbm90KiBwb3NzaWJsZQ0KPiB0bw0KPiA+Pj4+Pj4+Pj4+ Pj4+IG92ZXJmbG93IHRoZSBPZmZTZXQgdmFyaWFibGUgdG8gemVybyB3aXRoICJXaW5DZXJ0aWZp Y2F0ZS0NCj4gPj4+Pj4gZHdMZW5ndGgiDQo+ID4+Pj4+Pj4+Pj4+Pj4gKnB1cmVseSosIGFuZCBj YXVzZSBhbiBlbmRsZXNzIGxvb3AuIE5vdGUgdGhhdCB3ZSBoYXZlIChhdA0KPiA+PiBjb21taXQN Cj4gPj4+Pj4+Pj4+Pj4+PiA2NTkwNGNkYmIzM2MpOg0KPiA+Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+ Pj4+Pj4+Pj4gICBmb3IgKE9mZlNldCA9IFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNzOw0KPiA+ Pj4+Pj4+Pj4+Pj4+ICAgICAgICBPZmZTZXQgPCAoU2VjRGF0YURpci0+VmlydHVhbEFkZHJlc3Mg KyBTZWNEYXRhRGlyLT5TaXplKTsNCj4gPj4+Pj4+Pj4+Pj4+PiAgICAgICAgT2ZmU2V0ICs9IChX aW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGggKyBBTElHTl9TSVpFDQo+ID4+Pj4+Pj4+Pj4+Pj4gKFdp bkNlcnRpZmljYXRlLQ0KPiA+Pj4+Pj4+Pj4+Pj4+IGR3TGVuZ3RoKSkpIHsNCj4gPj4+Pj4+Pj4+ Pj4+PiAgICAgV2luQ2VydGlmaWNhdGUgPSAoV0lOX0NFUlRJRklDQVRFICopIChtSW1hZ2VCYXNl ICsNCj4gT2ZmU2V0KTsNCj4gPj4+Pj4+Pj4+Pj4+PiAgICAgaWYgKChTZWNEYXRhRGlyLT5WaXJ0 dWFsQWRkcmVzcyArIFNlY0RhdGFEaXItPlNpemUgLSBPZmZTZXQpDQo+ID4+Pj4+Pj4+Pj4+Pj4g PD0gc2l6ZW9mDQo+ID4+Pj4+Pj4+Pj4+PiAoV0lOX0NFUlRJRklDQVRFKSB8fA0KPiA+Pj4+Pj4+ Pj4+Pj4+ICAgICAgICAgKFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNzICsgU2VjRGF0YURpci0+ U2l6ZSAtIE9mZlNldCkgPA0KPiA+Pj4+Pj4+Pj4+IFdpbkNlcnRpZmljYXRlLQ0KPiA+Pj4+Pj4+ Pj4+Pj4+IGR3TGVuZ3RoKSB7DQo+ID4+Pj4+Pj4+Pj4+Pj4gICAgICAgYnJlYWs7DQo+ID4+Pj4+ Pj4+Pj4+Pj4gICAgIH0NCj4gPj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+IFRoZSBsYXN0 IHN1Yi1jb25kaXRpb24gY2hlY2tzIHdoZXRoZXIgdGhlIFNlY3VyaXR5IERhdGENCj4gRGlyZWN0 b3J5DQo+ID4+Pj4+Pj4+Pj4+Pj4gaGFzIGVub3VnaCByb29tIGxlZnQgZm9yICJXaW5DZXJ0aWZp Y2F0ZS0+ZHdMZW5ndGgiLiBJZiBub3QsDQo+IHRoZW4NCj4gPj4+Pj4+Pj4+Pj4+PiB3ZSBicmVh ayBvdXQgb2YgdGhlIGxvb3AuDQo+ID4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+PiBJZiB3 ZSAqZG8qIGhhdmUgZW5vdWdoIHJvb20sIHRoYXQgaXM6DQo+ID4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+ Pj4+Pj4+Pj4+PiAgIChTZWNEYXRhRGlyLT5WaXJ0dWFsQWRkcmVzcyArIFNlY0RhdGFEaXItPlNp emUgLSBPZmZTZXQpID49DQo+ID4+Pj4+Pj4+Pj4gV2luQ2VydGlmaWNhdGUtDQo+ID4+Pj4+Pj4+ Pj4+Pj4gZHdMZW5ndGgNCj4gPj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+IHRoZW4gd2Ug aGF2ZSAoYnkgYWRkaW5nIE9mZlNldCB0byBib3RoIHNpZGVzKToNCj4gPj4+Pj4+Pj4+Pj4+Pg0K PiA+Pj4+Pj4+Pj4+Pj4+ICAgU2VjRGF0YURpci0+VmlydHVhbEFkZHJlc3MgKyBTZWNEYXRhRGly LT5TaXplID49IE9mZlNldCArDQo+ID4+Pj4+Pj4+Pj4+Pj4gV2luQ2VydGlmaWNhdGUtIGR3TGVu Z3RoDQo+ID4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+PiBUaGUgbGVmdCBoYW5kIHNpZGUg aXMgYSBrbm93bi1nb29kIFVJTlQzMiwgYW5kIHNvDQo+IGluY3JlbWVudGluZw0KPiA+Pj4+Pj4+ Pj4+Pj4+IE9mZlNldCAoYQ0KPiA+Pj4+Pj4+Pj4+Pj4+IFVJTlQzMikgKnNvbGVseSogYnkgIldp bkNlcnRpZmljYXRlLT5kd0xlbmd0aCIgKGFsc28gYQ0KPiBVSU5UMzIpDQo+ID4+Pj4+Pj4+Pj4+ Pj4gZG9lcyBub3QgY2F1c2UgYW4gb3ZlcmZsb3cuDQo+ID4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+ Pj4+Pj4+PiBJbnN0ZWFkLCB0aGUgcHJvYmxlbSBpcyB3aXRoIHRoZSBhbGlnbm1lbnQuIFRoZSAi aWYiIHN0YXRlbWVudA0KPiA+Pj4+Pj4+Pj4+Pj4+IGNoZWNrcyB3aGV0aGVyIHdlIGhhdmUgZW5v dWdoIHJvb20gZm9yICJkd0xlbmd0aCIsIGJ1dA0KPiB0aGVuDQo+ID4+Pj4+Pj4+Pj4+Pj4gIk9m ZlNldCIgaXMgYWR2YW5jZWQgYnkgImR3TGVuZ3RoIiAqYWxpZ25lZCB1cCogdG8gdGhlIG5leHQN Cj4gPj4+Pj4+Pj4+Pj4+PiBtdWx0aXBsZSBvZiA4LiBBbmQgdGhhdCBtYXkgaW5kZWVkIGNhdXNl IHZhcmlvdXMgb3ZlcmZsb3dzLg0KPiA+Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+Pj4gTm93 LCB0aGUgbWFpbiBwcm9ibGVtIHdpdGggdGhlIHByZXNlbnQgcGF0Y2ggaXMgdGhhdCBpdCBkb2Vz DQo+IG5vdA0KPiA+Pj4+Pj4+Pj4+Pj4+IGZpeCBvbmUgb2YgdGhvc2Ugb3ZlcmZsb3dzLiBOYW1l bHksIGNvbnNpZGVyIHRoYXQgImR3TGVuZ3RoIiBpcw0KPiA+Pj4+Pj4+Pj4+Pj4+IHZlcnkgY2xv c2UgdG8NCj4gPj4+Pj4+Pj4+Pj4+PiBNQVhfVUlOVDMyIChvciBldmVuIHRoaW5rIGl0J3MgZXhh Y3RseSBNQVhfVUlOVDMyKS4gVGhlbg0KPiA+PiBhbGlnbmluZw0KPiA+Pj4+Pj4+Pj4+Pj4+IGl0 IHVwIHRvIHRoZSBuZXh0IG11bHRpcGxlIG9mIDggd2lsbCB5aWVsZCAwLiBJbiBvdGhlciB3b3Jk cywNCj4gPj4+Pj4+ICJBbGlnbmVkTGVuZ3RoIg0KPiA+Pj4+Pj4+Pj4+Pj4+IHdpbGwgYmUgemVy by4NCj4gPj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+IEFuZCB3aGVuIHRoYXQgaGFwcGVu cywgdGhlcmUncyBnb2luZyB0byBiZSBhbiBpbmZpbml0ZSBsb29wIGp1c3QNCj4gPj4+Pj4+Pj4+ Pj4+PiB0aGUNCj4gPj4+Pj4+Pj4+Pj4+PiBzYW1lOiAiT2ZmU2V0IiB3aWxsIG5vdCBiZSB6ZXJv LCBidXQgaXQgd2lsbCBiZSAqc3R1Y2sqLiBUaGUNCj4gPj4+Pj4+Pj4+Pj4+PiBTYWZlVWludDMy QWRkKCkgY2FsbCBhdCB0aGUgYm90dG9tIHdpbGwgc3VjY2VlZCwgYnV0IGl0IHdpbGwgbm90DQo+ ID4+Pj4+Pj4+Pj4+Pj4gY2hhbmdlIHRoZSB2YWx1ZSBvZiAiT2ZmU2V0Ii4NCj4gPj4+Pj4+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+IE1vcmUgYXQgdGhlIGJvdHRvbS4NCj4gPj4+Pj4+Pj4+Pj4+ Pg0KPiA+Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgaWYgKChTZWNEYXRhRGly LT5WaXJ0dWFsQWRkcmVzcyArIFNlY0RhdGFEaXItPlNpemUgLSBPZmZTZXQpDQo+ID4+Pj4+Pj4+ Pj4+Pj4+IDw9IHNpemVvZg0KPiA+Pj4+Pj4+Pj4+Pj4gKFdJTl9DRVJUSUZJQ0FURSkgfHwNCj4g Pj4+Pj4+Pj4+Pj4+Pj4gICAgICAgICAgKFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNzICsgU2Vj RGF0YURpci0+U2l6ZSAtIE9mZlNldCkNCj4gPj4+Pj4+Pj4+Pj4+Pj4gPA0KPiA+Pj4+Pj4+Pj4+ Pj4gV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoKSB7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgICBi cmVhazsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gQEAgLTE4NzIsNiArMTg3OCw4IEBAIER4ZUltYWdlVmVy aWZpY2F0aW9uSGFuZGxlciAoDQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgICB9DQo+ID4+Pj4+Pj4+ Pj4+Pj4+ICAgICAgICBBdXRoRGF0YSAgID0gUGtjc0NlcnREYXRhLT5DZXJ0RGF0YTsNCj4gPj4+ Pj4+Pj4+Pj4+Pj4gICAgICAgIEF1dGhEYXRhU2l6ZSA9IFBrY3NDZXJ0RGF0YS0+SGRyLmR3TGVu Z3RoIC0NCj4gPj4+Pj4+Pj4+Pj4+Pj4gc2l6ZW9mKFBrY3NDZXJ0RGF0YS0NCj4gPj4+Pj4+Pj4+ Pj4gSGRyKTsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAgICAgIElzQXV0aERhdGFBc3NpZ25lZCA9IFRS VUU7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgICBIYXNoU3RhdHVzID0gSGFzaFBlSW1hZ2VCeVR5 cGUgKEF1dGhEYXRhLA0KPiBBdXRoRGF0YVNpemUpOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgIH0g ZWxzZSBpZiAoV2luQ2VydGlmaWNhdGUtPndDZXJ0aWZpY2F0ZVR5cGUgPT0NCj4gPj4+Pj4+Pj4+ PiBXSU5fQ0VSVF9UWVBFX0VGSV9HVUlEKQ0KPiA+Pj4+Pj4+Pj4+Pj4gew0KPiA+Pj4+Pj4+Pj4+ Pj4+PiAgICAgICAgLy8NCj4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAgIC8vIFRoZSBjZXJ0aWZpY2F0 ZSBpcyBmb3JtYXR0ZWQgYXMNCj4gPj4+Pj4+Pj4+Pj4+Pj4gV0lOX0NFUlRJRklDQVRFX1VFRklf R1VJRCB3aGljaA0KPiA+Pj4+Pj4+Pj4+IGlzDQo+ID4+Pj4+Pj4+Pj4+PiBkZXNjcmliZWQgaW4g VUVGSSBTcGVjLg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBAQCAtMTg4MCw3MiArMTg4OCw3NSBAQCBEeGVJ bWFnZVZlcmlmaWNhdGlvbkhhbmRsZXIgKA0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgICAgaWYgKFdp bkNlcnRVZWZpR3VpZC0+SGRyLmR3TGVuZ3RoIDw9DQo+ID4+Pj4+Pj4+Pj4+PiBPRkZTRVRfT0Yo V0lOX0NFUlRJRklDQVRFX1VFRklfR1VJRCwgQ2VydERhdGEpKSB7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ ICAgICAgICAgIGJyZWFrOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgICAgfQ0KPiA+Pj4+Pj4+Pj4+ Pj4+PiAtICAgICAgaWYgKCFDb21wYXJlR3VpZCAoJldpbkNlcnRVZWZpR3VpZC0+Q2VydFR5cGUs DQo+ID4+Pj4+PiAmZ0VmaUNlcnRQa2NzN0d1aWQpKQ0KPiA+Pj4+Pj4+Pj4+IHsNCj4gPj4+Pj4+ Pj4+Pj4+Pj4gLSAgICAgICAgY29udGludWU7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgICBpZiAo Q29tcGFyZUd1aWQgKCZXaW5DZXJ0VWVmaUd1aWQtPkNlcnRUeXBlLA0KPiA+Pj4+Pj4+Pj4+Pj4+ PiArICZnRWZpQ2VydFBrY3M3R3VpZCkpDQo+ID4+Pj4+Pj4+Pj4gew0KPiA+Pj4+Pj4+Pj4+Pj4+ PiArICAgICAgICBBdXRoRGF0YSA9IFdpbkNlcnRVZWZpR3VpZC0+Q2VydERhdGE7DQo+ID4+Pj4+ Pj4+Pj4+Pj4+ICsgICAgICAgIEF1dGhEYXRhU2l6ZSA9IFdpbkNlcnRVZWZpR3VpZC0+SGRyLmR3 TGVuZ3RoIC0NCj4gPj4+Pj4+Pj4+Pj4+IE9GRlNFVF9PRihXSU5fQ0VSVElGSUNBVEVfVUVGSV9H VUlELCBDZXJ0RGF0YSk7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgICAgIElzQXV0aERhdGFBc3Np Z25lZCA9IFRSVUU7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgICAgIEhhc2hTdGF0dXMgPSBIYXNo UGVJbWFnZUJ5VHlwZSAoQXV0aERhdGEsDQo+ID4+IEF1dGhEYXRhU2l6ZSk7DQo+ID4+Pj4+Pj4+ Pj4+Pj4+ICAgICAgICB9DQo+ID4+Pj4+Pj4+Pj4+Pj4+IC0gICAgICBBdXRoRGF0YSA9IFdpbkNl cnRVZWZpR3VpZC0+Q2VydERhdGE7DQo+ID4+Pj4+Pj4+Pj4+Pj4+IC0gICAgICBBdXRoRGF0YVNp emUgPSBXaW5DZXJ0VWVmaUd1aWQtPkhkci5kd0xlbmd0aCAtDQo+ID4+Pj4+Pj4+Pj4+PiBPRkZT RVRfT0YoV0lOX0NFUlRJRklDQVRFX1VFRklfR1VJRCwgQ2VydERhdGEpOw0KPiA+Pj4+Pj4+Pj4+ Pj4+PiAgICAgIH0gZWxzZSB7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgICBpZiAoV2luQ2VydGlm aWNhdGUtPmR3TGVuZ3RoIDwgc2l6ZW9mIChXSU5fQ0VSVElGSUNBVEUpKQ0KPiB7DQo+ID4+Pj4+ Pj4+Pj4+Pj4+ICAgICAgICAgIGJyZWFrOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgICAgfQ0KPiA+ Pj4+Pj4+Pj4+Pj4+PiAtICAgICAgY29udGludWU7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgfQ0K PiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtICAgIEhhc2hTdGF0dXMgPSBIYXNo UGVJbWFnZUJ5VHlwZSAoQXV0aERhdGEsDQo+IEF1dGhEYXRhU2l6ZSk7DQo+ID4+Pj4+Pj4+Pj4+ Pj4+IC0gICAgaWYgKEVGSV9FUlJPUiAoSGFzaFN0YXR1cykpIHsNCj4gPj4+Pj4+Pj4+Pj4+Pj4g LSAgICAgIGNvbnRpbnVlOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtICAgIH0NCj4gPj4+Pj4+Pj4+Pj4+ Pj4gLQ0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtICAgIC8vDQo+ID4+Pj4+Pj4+Pj4+Pj4+IC0gICAgLy8g Q2hlY2sgdGhlIGRpZ2l0YWwgc2lnbmF0dXJlIGFnYWluc3QgdGhlIHJldm9rZWQNCj4gY2VydGlm aWNhdGUNCj4gPj4gaW4NCj4gPj4+Pj4+Pj4+PiBmb3JiaWRkZW4NCj4gPj4+Pj4+Pj4+Pj4+IGRh dGFiYXNlIChkYngpLg0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtICAgIC8vDQo+ID4+Pj4+Pj4+Pj4+Pj4+ IC0gICAgaWYgKElzRm9yYmlkZGVuQnlEYnggKEF1dGhEYXRhLCBBdXRoRGF0YVNpemUpKSB7DQo+ ID4+Pj4+Pj4+Pj4+Pj4+IC0gICAgICBBY3Rpb24gPSBFRklfSU1BR0VfRVhFQ1VUSU9OX0FVVEhf U0lHX0ZBSUxFRDsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gLSAgICAgIElzVmVyaWZpZWQgPSBGQUxTRTsN Cj4gPj4+Pj4+Pj4+Pj4+Pj4gLSAgICAgIGJyZWFrOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtICAgIH0N Cj4gPj4+Pj4+Pj4+Pj4+Pj4gLQ0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtICAgIC8vDQo+ID4+Pj4+Pj4+ Pj4+Pj4+IC0gICAgLy8gQ2hlY2sgdGhlIGRpZ2l0YWwgc2lnbmF0dXJlIGFnYWluc3QgdGhlIHZh bGlkIGNlcnRpZmljYXRlIGluDQo+ID4+Pj4+PiBhbGxvd2VkDQo+ID4+Pj4+Pj4+Pj4+PiBkYXRh YmFzZSAoZGIpLg0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtICAgIC8vDQo+ID4+Pj4+Pj4+Pj4+Pj4+IC0g ICAgaWYgKCFJc1ZlcmlmaWVkKSB7DQo+ID4+Pj4+Pj4+Pj4+Pj4+IC0gICAgICBpZiAoSXNBbGxv d2VkQnlEYiAoQXV0aERhdGEsIEF1dGhEYXRhU2l6ZSkpIHsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gLSAg ICAgICAgSXNWZXJpZmllZCA9IFRSVUU7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgaWYgKElzQXV0 aERhdGFBc3NpZ25lZCAmJiAhRUZJX0VSUk9SIChIYXNoU3RhdHVzKSkgew0KPiA+Pj4+Pj4+Pj4+ Pj4+PiArICAgICAgLy8NCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAgICAgIC8vIENoZWNrIHRoZSBkaWdp dGFsIHNpZ25hdHVyZSBhZ2FpbnN0IHRoZSByZXZva2VkDQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgY2Vy dGlmaWNhdGUgaW4NCj4gPj4+Pj4+Pj4+PiBmb3JiaWRkZW4NCj4gPj4+Pj4+Pj4+Pj4+IGRhdGFi YXNlIChkYngpLg0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgLy8NCj4gPj4+Pj4+Pj4+Pj4+Pj4g KyAgICAgIGlmIChJc0ZvcmJpZGRlbkJ5RGJ4IChBdXRoRGF0YSwgQXV0aERhdGFTaXplKSkgew0K PiA+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgICBBY3Rpb24gPSBFRklfSU1BR0VfRVhFQ1VUSU9OX0FV VEhfU0lHX0ZBSUxFRDsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAgICAgICAgSXNWZXJpZmllZCA9IEZB TFNFOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgICBicmVhazsNCj4gPj4+Pj4+Pj4+Pj4+Pj4g ICAgICAgIH0NCj4gPj4+Pj4+Pj4+Pj4+Pj4gLSAgICB9DQo+ID4+Pj4+Pj4+Pj4+Pj4+DQo+ID4+ Pj4+Pj4+Pj4+Pj4+IC0gICAgLy8NCj4gPj4+Pj4+Pj4+Pj4+Pj4gLSAgICAvLyBDaGVjayB0aGUg aW1hZ2UncyBoYXNoIHZhbHVlLg0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtICAgIC8vDQo+ID4+Pj4+Pj4+ Pj4+Pj4+IC0gICAgRGJTdGF0dXMgPSBJc1NpZ25hdHVyZUZvdW5kSW5EYXRhYmFzZSAoDQo+ID4+ Pj4+Pj4+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgIEVGSV9JTUFHRV9TRUNVUklUWV9EQVRBQkFT RTEsDQo+ID4+Pj4+Pj4+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgIG1JbWFnZURpZ2VzdCwNCj4g Pj4+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgJm1DZXJ0VHlwZSwNCj4gPj4+Pj4+Pj4+ Pj4+Pj4gLSAgICAgICAgICAgICAgICAgbUltYWdlRGlnZXN0U2l6ZSwNCj4gPj4+Pj4+Pj4+Pj4+ Pj4gLSAgICAgICAgICAgICAgICAgJklzRm91bmQNCj4gPj4+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAg ICAgICAgICAgKTsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gLSAgICBpZiAoRUZJX0VSUk9SIChEYlN0YXR1 cykgfHwgSXNGb3VuZCkgew0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtICAgICAgQWN0aW9uID0gRUZJX0lN QUdFX0VYRUNVVElPTl9BVVRIX1NJR19GT1VORDsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gLSAgICAgIERF QlVHICgoREVCVUdfSU5GTywgIkR4ZUltYWdlVmVyaWZpY2F0aW9uTGliOiBJbWFnZQ0KPiBpcw0K PiA+Pj4+Pj4gc2lnbmVkDQo+ID4+Pj4+Pj4+Pj4gYnV0ICVzDQo+ID4+Pj4+Pj4+Pj4+PiBoYXNo IG9mIGltYWdlIGlzIGZvdW5kIGluIERCWC5cbiIsIG1IYXNoVHlwZVN0cikpOw0KPiA+Pj4+Pj4+ Pj4+Pj4+PiAtICAgICAgSXNWZXJpZmllZCA9IEZBTFNFOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtICAg ICAgYnJlYWs7DQo+ID4+Pj4+Pj4+Pj4+Pj4+IC0gICAgfQ0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICAg ICAgLy8NCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAgICAgIC8vIENoZWNrIHRoZSBkaWdpdGFsIHNpZ25h dHVyZSBhZ2FpbnN0IHRoZSB2YWxpZA0KPiA+Pj4+Pj4+Pj4+Pj4+PiArIGNlcnRpZmljYXRlIGlu IGFsbG93ZWQNCj4gPj4+Pj4+Pj4+Pj4+IGRhdGFiYXNlIChkYikuDQo+ID4+Pj4+Pj4+Pj4+Pj4+ ICsgICAgICAvLw0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgaWYgKCFJc1ZlcmlmaWVkKSB7DQo+ ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgICAgIGlmIChJc0FsbG93ZWRCeURiIChBdXRoRGF0YSwgQXV0 aERhdGFTaXplKSkgew0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgICAgIElzVmVyaWZpZWQgPSBU UlVFOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgICB9DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAg ICB9DQo+ID4+Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+Pj4+IC0gICAgaWYgKCFJc1Zlcmlm aWVkKSB7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgICAvLw0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICAg ICAgLy8gQ2hlY2sgdGhlIGltYWdlJ3MgaGFzaCB2YWx1ZS4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAg ICAgIC8vDQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgICBEYlN0YXR1cyA9IElzU2lnbmF0dXJlRm91 bmRJbkRhdGFiYXNlICgNCj4gPj4+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICBFRklf SU1BR0VfU0VDVVJJVFlfREFUQUJBU0UsDQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAg ICAgICAgRUZJX0lNQUdFX1NFQ1VSSVRZX0RBVEFCQVNFMSwNCj4gPj4+Pj4+Pj4+Pj4+Pj4gICAg ICAgICAgICAgICAgICAgICBtSW1hZ2VEaWdlc3QsDQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgICAg ICAgICAgICAgICAgJm1DZXJ0VHlwZSwNCj4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAg ICAgICBtSW1hZ2VEaWdlc3RTaXplLA0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgICAgICAgICAgICAg ICAgICZJc0ZvdW5kDQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgKTsNCj4g Pj4+Pj4+Pj4+Pj4+Pj4gLSAgICAgIGlmICghRUZJX0VSUk9SIChEYlN0YXR1cykgJiYgSXNGb3Vu ZCkgew0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtICAgICAgICBJc1ZlcmlmaWVkID0gVFJVRTsNCj4gPj4+ Pj4+Pj4+Pj4+Pj4gLSAgICAgIH0gZWxzZSB7DQo+ID4+Pj4+Pj4+Pj4+Pj4+IC0gICAgICAgIERF QlVHICgoREVCVUdfSU5GTywgIkR4ZUltYWdlVmVyaWZpY2F0aW9uTGliOiBJbWFnZQ0KPiBpcw0K PiA+Pj4+Pj4gc2lnbmVkDQo+ID4+Pj4+Pj4+Pj4gYnV0DQo+ID4+Pj4+Pj4+Pj4+PiBzaWduYXR1 cmUgaXMgbm90IGFsbG93ZWQgYnkgREIgYW5kICVzIGhhc2ggb2YgaW1hZ2UgaXMgbm90IGZvdW5k DQo+IGluDQo+ID4+Pj4+Pj4+Pj4gREIvREJYLlxuIiwNCj4gPj4+Pj4+Pj4+Pj4+IG1IYXNoVHlw ZVN0cikpOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgaWYgKEVGSV9FUlJPUiAoRGJTdGF0dXMp IHx8IElzRm91bmQpIHsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAgICAgICAgQWN0aW9uID0gRUZJX0lN QUdFX0VYRUNVVElPTl9BVVRIX1NJR19GT1VORDsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAgICAgICAg REVCVUcgKChERUJVR19JTkZPLCAiRHhlSW1hZ2VWZXJpZmljYXRpb25MaWI6IEltYWdlDQo+IGlz DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgc2lnbmVkDQo+ID4+Pj4+Pj4+Pj4+PiBidXQgJXMgaGFzaCBv ZiBpbWFnZSBpcyBmb3VuZCBpbiBEQlguXG4iLCBtSGFzaFR5cGVTdHIpKTsNCj4gPj4+Pj4+Pj4+ Pj4+Pj4gKyAgICAgICAgSXNWZXJpZmllZCA9IEZBTFNFOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICAg ICAgICBicmVhazsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAgIH0NCj4gPj4+Pj4+Pj4+Pj4+Pj4g Kw0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgaWYgKCFJc1ZlcmlmaWVkKSB7DQo+ID4+Pj4+Pj4+ Pj4+Pj4+ICsgICAgICAgIERiU3RhdHVzID0gSXNTaWduYXR1cmVGb3VuZEluRGF0YWJhc2UgKA0K PiA+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgRUZJX0lNQUdFX1NFQ1VSSVRZ X0RBVEFCQVNFLA0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgbUltYWdl RGlnZXN0LA0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgJm1DZXJ0VHlw ZSwNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIG1JbWFnZURpZ2VzdFNp emUsDQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAmSXNGb3VuZA0KPiA+ Pj4+Pj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgKTsNCj4gPj4+Pj4+Pj4+Pj4+Pj4g KyAgICAgICAgaWYgKCFFRklfRVJST1IgKERiU3RhdHVzKSAmJiBJc0ZvdW5kKSB7DQo+ID4+Pj4+ Pj4+Pj4+Pj4+ICsgICAgICAgICAgSXNWZXJpZmllZCA9IFRSVUU7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ ICsgICAgICAgIH0gZWxzZSB7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgICAgICAgREVCVUcgKChE RUJVR19JTkZPLCAiRHhlSW1hZ2VWZXJpZmljYXRpb25MaWI6DQo+IEltYWdlDQo+ID4+IGlzDQo+ ID4+Pj4+Pj4+Pj4+Pj4+ICsgc2lnbmVkDQo+ID4+Pj4+Pj4+Pj4gYnV0DQo+ID4+Pj4+Pj4+Pj4+ PiBzaWduYXR1cmUgaXMgbm90IGFsbG93ZWQgYnkgREIgYW5kICVzIGhhc2ggb2YgaW1hZ2UgaXMg bm90IGZvdW5kDQo+IGluDQo+ID4+Pj4+Pj4+Pj4gREIvREJYLlxuIiwNCj4gPj4+Pj4+Pj4+Pj4+ IG1IYXNoVHlwZVN0cikpOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgICB9DQo+ID4+Pj4+Pj4+ Pj4+Pj4+ICsgICAgICB9DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgfQ0KPiA+Pj4+Pj4+Pj4+Pj4+ PiArDQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgQWRkU3RhdHVzID0gU2FmZVVpbnQzMkFkZCAoT2Zm U2V0LCBBbGlnbmVkTGVuZ3RoLA0KPiAmUmVzdWx0KTsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAgICBp ZiAoRUZJX0VSUk9SIChBZGRTdGF0dXMpKSB7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgICBicmVh azsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICB9DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgT2ZmU2V0 ID0gUmVzdWx0Ow0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICB9DQo+ID4+Pj4+Pj4+Pj4+Pj4+DQo+ID4+ Pj4+Pj4+Pj4+Pj4+ICAgIGlmIChPZmZTZXQgIT0gKFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNz ICsgU2VjRGF0YURpci0+U2l6ZSkpDQo+ID4+Pj4+Pj4+Pj4+Pj4+IHsNCj4gPj4+Pj4+Pj4+Pj4+ Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+IFRoZXJlIGFyZSBvdGhlciAoc21h bGxlcikgcmVhc29ucyB3aHkgSSBkaXNsaWtlIHRoaXMgcGF0Y2g6DQo+ID4+Pj4+Pj4+Pj4+Pj4N Cj4gPj4+Pj4+Pj4+Pj4+PiAtIFRoZSAiSXNBdXRoRGF0YUFzc2lnbmVkIiB2YXJpYWJsZSBpcyBz dXBlcmZsdW91czsgd2UgY291bGQNCj4gdXNlDQo+ID4+Pj4+Pj4+Pj4+Pj4gdGhlIGV4aXN0ZW50 ICJBdXRoRGF0YSIgdmFyaWFibGUgKHdpdGggYSBOVUxMLWNoZWNrIGFuZCBhDQo+ID4+Pj4+Pj4+ Pj4+Pj4gTlVMTC1hc3NpZ25tZW50KSBzaW1pbGFybHkuDQo+ID4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+ Pj4+Pj4+Pj4+PiAtIFRoZSBwYXRjaCBjb21wbGljYXRlcyAvIHJlb3JnYW5pemVzIHRoZSBjb250 cm9sIGZsb3cNCj4gbmVlZGxlc3NseS4NCj4gPj4+Pj4+Pj4+Pj4+PiBUaGlzIGNvbXBsaWNhdGlv biBvcmlnaW5hdGVzIGZyb20gcGxhY2luZyB0aGUgY2hlY2tlZCAiT2ZmU2V0Ig0KPiA+Pj4+Pj4+ Pj4+Pj4+IGluY3JlbWVudCBhdCB0aGUgYm90dG9tIG9mIHRoZSBsb29wLCB3aGljaCB0aGVuIHJl cXVpcmVzIHRoZQ0KPiA+Pj4+Pj4+Pj4+Pj4+IHJlbW92YWwgb2YgYWxsIHRoZSAiY29udGludWUi IHN0YXRlbWVudHMuIEJ1dCB3ZSBkb24ndCBuZWVkIHRvDQo+ID4+Pj4+Pj4+Pj4+Pj4gY2hlY2st YW5kLWluY3JlbWVudCBhdCB0aGUgYm90dG9tLiBXZSBjYW4ga2VlcCB0aGUNCj4gaW5jcmVtZW50 DQo+ID4+Pj4+Pj4+Pj4+Pj4gaW5zaWRlIHRoZSAiZm9yIiBzdGF0ZW1lbnQsIG9ubHkgZXh0ZW5k IHRoZSAqZXhpc3RlbnQqIHJvb20NCj4gY2hlY2sNCj4gPj4+Pj4+Pj4+Pj4+PiAod2hpY2ggSSd2 ZSBxdW90ZWQpIHRvIHRha2UgdGhlIGFsaWdubWVudCBpbnRvIGFjY291bnQgYXMgd2VsbC4NCj4g SWYNCj4gPj4+Pj4+Pj4+Pj4+PiB0aGVyZSBpcyBlbm91Z2ggcm9vbSBmb3IgdGhlIGFsaWdubWVu dCBpbiB0aGUgc2VjdXJpdHkgZGF0YQ0KPiA+Pj4+Pj4+Pj4+Pj4+IGRpcmVjdG9yeSwgdGhlbiB0 aGF0IGd1YXJhbnRlZXMgdGhlcmUgd29uJ3QgYmUgYSBVSU5UMzINCj4gb3ZlcmZsb3cNCj4gPj4+ Pj4+IGVpdGhlci4NCj4gPj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+IEFsbCBpbiBhbGws IEknbSBwcm9wb3NpbmcgdGhlIGZvbGxvd2luZyB0aHJlZSBwYXRjaGVzIGluc3RlYWQuIFRoZQ0K PiA+Pj4+Pj4+Pj4+Pj4+IGZpcnN0IHR3byBwYXRjaGVzIGFyZSBwcmVwYXJhdGlvbiwgdGhlIGxh c3QgcGF0Y2ggaXMgdGhlIGZpeC4NCj4gPj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+IFBh dGNoIzE6DQo+ID4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gRnJvbSAxMWFmMGExMDRk MzRkMzliZjFiMWFhYjI1NjQyOGFlNGVkYmRkZDc3IE1vbg0KPiBTZXANCj4gPj4gMTcNCj4gPj4+ Pj4+Pj4+PiAwMDowMDowMA0KPiA+Pj4+Pj4+Pj4+Pj4gMjAwMQ0KPiA+Pj4+Pj4+Pj4+Pj4+PiBG cm9tOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBE YXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE5OjExOjM5ICswMjAwDQo+ID4+Pj4+Pj4+Pj4+Pj4+IFN1 YmplY3Q6IFtQQVRDSCAxLzNdIFNlY3VyaXR5UGtnL0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliOg0K PiA+PiBleHRyYWN0DQo+ID4+Pj4+Pj4+Pj4+Pj4+IFNlY0RhdGFEaXJFbmQsIFNlY0RhdGFEaXJM ZWZ0DQo+ID4+Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+Pj4+IFRoZSBmb2xsb3dpbmcgdHdv IHF1YW50aXRpZXM6DQo+ID4+Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgU2VjRGF0 YURpci0+VmlydHVhbEFkZHJlc3MgKyBTZWNEYXRhRGlyLT5TaXplDQo+ID4+Pj4+Pj4+Pj4+Pj4+ ICAgU2VjRGF0YURpci0+VmlydHVhbEFkZHJlc3MgKyBTZWNEYXRhRGlyLT5TaXplIC0gT2ZmU2V0 DQo+ID4+Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+Pj4+IGFyZSB1c2VkIG11bHRpcGxlIHRp bWVzIGluIER4ZUltYWdlVmVyaWZpY2F0aW9uSGFuZGxlcigpLg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBJ bnRyb2R1Y2UgaGVscGVyIHZhcmlhYmxlcyBmb3IgdGhlbTogIlNlY0RhdGFEaXJFbmQiIGFuZA0K PiA+Pj4+Pj4gIlNlY0RhdGFEaXJMZWZ0IiwgcmVzcGVjdGl2ZWx5Lg0KPiA+Pj4+Pj4+Pj4+Pj4+ PiBUaGlzIHNhdmVzIHVzIG11bHRpcGxlIGNhbGN1bGF0aW9ucyBhbmQgc2lnbmlmaWNhbnRseSBz aW1wbGlmaWVzDQo+IHRoZQ0KPiA+Pj4+IGNvZGUuDQo+ID4+Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+ Pj4+Pj4+Pj4+IE5vdGUgdGhhdCBhbGwgdGhyZWUgc3VtbWFuZHMgYWJvdmUgaGF2ZSB0eXBlIFVJ TlQzMiwNCj4gPj4gdGhlcmVmb3JlDQo+ID4+Pj4+Pj4+Pj4+Pj4+IHRoZSBuZXcgdmFyaWFibGVz IGFyZSBhbHNvIG9mIHR5cGUgVUlOVDMyLg0KPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+ Pj4+PiBUaGlzIHBhdGNoIGRvZXMgbm90IGNoYW5nZSBiZWhhdmlvci4NCj4gPj4+Pj4+Pj4+Pj4+ Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gKE5vdGUgdGhhdCB0aGUgY29kZSBhbHJlYWR5IGhhbmRsZXMg dGhlIGNhc2Ugd2hlbiB0aGUNCj4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gICBT ZWNEYXRhRGlyLT5WaXJ0dWFsQWRkcmVzcyArIFNlY0RhdGFEaXItPlNpemUNCj4gPj4+Pj4+Pj4+ Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gVUlOVDMyIGFkZGl0aW9uIG92ZXJmbG93cyAtLSBuYW1l bHksIGluIHRoYXQgY2FzZSwgdGhlDQo+ID4+Pj4+Pj4+Pj4+Pj4+IGNlcnRpZmljYXRlIGxvb3Ag aXMgbmV2ZXIgZW50ZXJlZCwgYW5kIHRoZSBjb3JydXB0aW9uIGNoZWNrDQo+IHJpZ2h0DQo+ID4+ Pj4+Pj4+Pj4+Pj4+IGFmdGVyIHRoZSBsb29wIGZpcmVzLikNCj4gPj4+Pj4+Pj4+Pj4+Pj4NCj4g Pj4+Pj4+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0 LmNvbT4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gLS0tDQo+ID4+Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ Pj4+Pj4+DQo+ID4+Pj4gU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlmaWNhdGlvbkxp Yi9EeGVJbWFnZVZlcmlmaWNhdGlvbkwNCj4gPj4+Pj4+Pj4+Pj4+Pj4gaWIuYyB8DQo+ID4+Pj4+ Pj4+Pj4gMTINCj4gPj4+Pj4+Pj4+Pj4+ICsrKysrKysrLS0tLQ0KPiA+Pj4+Pj4+Pj4+Pj4+PiAg MSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkNCj4gPj4+Pj4+ Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gZGlmZiAtLWdpdA0KPiA+Pj4+Pj4+Pj4+Pj4NCj4g Pj4+PiBhL1NlY3VyaXR5UGtnL0xpYnJhcnkvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIvRHhlSW1h Z2VWZXJpZmljYXRpb25MDQo+ID4+Pj4+Pj4+Pj4+PiBpYi5jDQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+ Pj4+IGIvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi9EeGVJbWFn ZVZlcmlmaWNhdGlvbkwNCj4gPj4+Pj4+Pj4+Pj4+IGliLmMNCj4gPj4+Pj4+Pj4+Pj4+Pj4gaW5k ZXggMzZiODdlMTZkNTNkLi44NzYxOTgwYzg4YWEgMTAwNjQ0DQo+ID4+Pj4+Pj4+Pj4+Pj4+IC0t LQ0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4gYS9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVy aWZpY2F0aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliDQo+ID4+Pj4+Pj4+Pj4gLmMNCj4g Pj4+Pj4+Pj4+Pj4+Pj4gKysrDQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+IGIvU2VjdXJpdHlQa2cv TGlicmFyeS9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi9EeGVJbWFnZVZlcmlmaWNhdGlvbkwNCj4g Pj4+Pj4+Pj4+Pj4+IGliLmMNCj4gPj4+Pj4+Pj4+Pj4+Pj4gQEAgLTE2NTIsNiArMTY1Miw4IEBA IER4ZUltYWdlVmVyaWZpY2F0aW9uSGFuZGxlciAoDQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgIFVJTlQ4 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqQXV0aERhdGE7DQo+ID4+Pj4+Pj4+Pj4+ Pj4+ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRoRGF0YVNpemU7 DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgIEVGSV9JTUFHRV9EQVRBX0RJUkVDVE9SWSAgICAgICAgICAg ICAqU2VjRGF0YURpcjsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAgVUlOVDMyICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNlY0RhdGFEaXJFbmQ7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgIFVJTlQz MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWNEYXRhRGlyTGVmdDsNCj4gPj4+Pj4+ Pj4+Pj4+Pj4gICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9mZlNldDsN Cj4gPj4+Pj4+Pj4+Pj4+Pj4gICAgQ0hBUjE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICpOYW1lU3RyOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICBSRVRVUk5fU1RBVFVTICAgICAgICAgICAg ICAgICAgICAgICAgUGVDb2ZmU3RhdHVzOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiBAQCAtMTg0OSwxMiAr MTg1MSwxNCBAQCBEeGVJbWFnZVZlcmlmaWNhdGlvbkhhbmRsZXIgKA0KPiA+Pj4+Pj4+Pj4+Pj4+ PiAgICAvLyAiQXR0cmlidXRlIENlcnRpZmljYXRlIFRhYmxlIi4NCj4gPj4+Pj4+Pj4+Pj4+Pj4g ICAgLy8gVGhlIGZpcnN0IGNlcnRpZmljYXRlIHN0YXJ0cyBhdCBvZmZzZXQNCj4gPj4+Pj4+Pj4+ Pj4+Pj4gKFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNzKSBmcm9tDQo+ID4+Pj4+Pj4+Pj4gdGhl DQo+ID4+Pj4+Pj4+Pj4+PiBzdGFydCBvZiB0aGUgZmlsZS4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gICAg Ly8NCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAgU2VjRGF0YURpckVuZCA9IFNlY0RhdGFEaXItPlZpcnR1 YWxBZGRyZXNzICsgU2VjRGF0YURpci0NCj4gPj4+IFNpemU7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAg IGZvciAoT2ZmU2V0ID0gU2VjRGF0YURpci0+VmlydHVhbEFkZHJlc3M7DQo+ID4+Pj4+Pj4+Pj4+ Pj4+IC0gICAgICAgT2ZmU2V0IDwgKFNlY0RhdGFEaXItPlZpcnR1YWxBZGRyZXNzICsgU2VjRGF0 YURpci0+U2l6ZSk7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgICAgT2ZmU2V0IDwgU2VjRGF0YURp ckVuZDsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAgICBPZmZTZXQgKz0gKFdpbkNlcnRpZmljYXRl LT5kd0xlbmd0aCArIEFMSUdOX1NJWkUNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKFdpbkNlcnRpZmljYXRl LQ0KPiA+Pj4+Pj4+Pj4+Pj4+IGR3TGVuZ3RoKSkpIHsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICBX aW5DZXJ0aWZpY2F0ZSA9IChXSU5fQ0VSVElGSUNBVEUgKikgKG1JbWFnZUJhc2UgKw0KPiBPZmZT ZXQpOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtICAgIGlmICgoU2VjRGF0YURpci0+VmlydHVhbEFkZHJl c3MgKyBTZWNEYXRhRGlyLT5TaXplIC0gT2ZmU2V0KQ0KPiA8PQ0KPiA+Pj4+Pj4gc2l6ZW9mDQo+ ID4+Pj4+Pj4+Pj4+PiAoV0lOX0NFUlRJRklDQVRFKSB8fA0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtICAg ICAgICAoU2VjRGF0YURpci0+VmlydHVhbEFkZHJlc3MgKyBTZWNEYXRhRGlyLT5TaXplIC0gT2Zm U2V0KQ0KPiA8DQo+ID4+Pj4+Pj4+Pj4+PiBXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGgpIHsNCj4g Pj4+Pj4+Pj4+Pj4+Pj4gKyAgICBTZWNEYXRhRGlyTGVmdCA9IFNlY0RhdGFEaXJFbmQgLSBPZmZT ZXQ7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgaWYgKFNlY0RhdGFEaXJMZWZ0IDw9IHNpemVvZiAo V0lOX0NFUlRJRklDQVRFKSB8fA0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICAgICAgICBTZWNEYXRhRGly TGVmdCA8IFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCkgew0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAg ICAgYnJlYWs7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgfQ0KPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+ Pj4+Pj4+Pj4+Pj4+PiBAQCAtMTk0OCw3ICsxOTUyLDcgQEAgRHhlSW1hZ2VWZXJpZmljYXRpb25I YW5kbGVyICgNCj4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICB9DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgIH0N Cj4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gLSAgaWYgKE9mZlNldCAhPSAoU2Vj RGF0YURpci0+VmlydHVhbEFkZHJlc3MgKyBTZWNEYXRhRGlyLT5TaXplKSkNCj4gPj4+Pj4+Pj4+ Pj4+Pj4gew0KPiA+Pj4+Pj4+Pj4+Pj4+PiArICBpZiAoT2ZmU2V0ICE9IFNlY0RhdGFEaXJFbmQp IHsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAvLw0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgIC8vIFRo ZSBTaXplIGluIENlcnRpZmljYXRlIFRhYmxlIG9yIHRoZSBhdHRyaWJ1dGUNCj4gPj4+Pj4+Pj4+ Pj4+Pj4gY2VydGlmaWNhdGUgdGFibGUgaXMNCj4gPj4+Pj4+Pj4+PiBjb3JydXB0ZWQuDQo+ID4+ Pj4+Pj4+Pj4+Pj4+ICAgICAgLy8NCj4gPj4+Pj4+Pj4+Pj4+Pj4gLS0NCj4gPj4+Pj4+Pj4+Pj4+ Pj4gMi4xOS4xLjMuZzMwMjQ3YWE1ZDIwMQ0KPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+ Pj4+DQo+ID4+Pj4+Pj4+Pj4+Pj4gUGF0Y2gjMjoNCj4gPj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+ Pj4+Pj4+PiBGcm9tIDcyMDEyYzA2NWE1MzU4MmY3ZGY2OTVlN2I5NzMwYzQ1ZjQ5MjI2YzYgTW9u IFNlcA0KPiA+PiAxNw0KPiA+Pj4+Pj4gMDA6MDA6MDANCj4gPj4+Pj4+Pj4+Pj4+IDIwMDENCj4g Pj4+Pj4+Pj4+Pj4+Pj4gRnJvbTogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4g Pj4+Pj4+Pj4+Pj4+Pj4gRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxOToxOTowNiArMDIwMA0KPiA+ Pj4+Pj4+Pj4+Pj4+PiBTdWJqZWN0OiBbUEFUQ0ggMi8zXSBTZWN1cml0eVBrZy9EeGVJbWFnZVZl cmlmaWNhdGlvbkxpYjoNCj4gPj4gYXNzaWduDQo+ID4+Pj4+Pj4+Pj4+Pj4+IFdpbkNlcnRpZmlj YXRlIGFmdGVyIHNpemUgY2hlY2sNCj4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4g Q3VycmVudGx5IHRoZSAoU2VjRGF0YURpckxlZnQgPD0gc2l6ZW9mIChXSU5fQ0VSVElGSUNBVEUp KQ0KPiA+PiBjaGVjaw0KPiA+Pj4+Pj4+Pj4+Pj4+PiBvbmx5IGd1YXJkcyB0aGUgZGUtcmVmZXJl bmNpbmcgb2YgdGhlICJXaW5DZXJ0aWZpY2F0ZSIgcG9pbnRlci4NCj4gPj4+Pj4+Pj4+Pj4+Pj4g SXQgZG9lcyBub3QgZ3VhcmQgdGhlIGNhbGN1bGF0aW9uIG9mIGh0ZSBwb2ludGVyIGl0c2VsZjoN Cj4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gICBXaW5DZXJ0aWZpY2F0ZSA9IChX SU5fQ0VSVElGSUNBVEUgKikgKG1JbWFnZUJhc2UgKw0KPiBPZmZTZXQpOw0KPiA+Pj4+Pj4+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBUaGlzIGlzIHdyb25nOyBpZiB3ZSBkb24ndCBrbm93IGZv ciBzdXJlIHRoYXQgd2UgaGF2ZSBlbm91Z2gNCj4gPj4gcm9vbQ0KPiA+Pj4+Pj4+Pj4+Pj4+PiBm b3IgYSBXSU5fQ0VSVElGSUNBVEUsIHRoZW4gZXZlbiBjcmVhdGluZyBzdWNoIGEgcG9pbnRlciwN Cj4gbm90DQo+ID4+Pj4+Pj4+Pj4+Pj4+IGp1c3QgZGUtcmVmZXJlbmNpbmcgaXQsIG1heSBpbnZv a2UgdW5kZWZpbmVkIGJlaGF2aW9yLg0KPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+ PiBNb3ZlIHRoZSBwb2ludGVyIGNhbGN1bGF0aW9uIGFmdGVyIHRoZSBzaXplIGNoZWNrLg0KPiA+ Pj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBMYXN6bG8gRXJz ZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtLS0NCj4gPj4+Pj4+Pj4+ Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+PiBTZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUlt YWdlVmVyaWZpY2F0aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTA0KPiA+Pj4+Pj4+Pj4+Pj4+ PiBpYi5jIHwNCj4gPj4+Pj4+Pj4+PiA4DQo+ID4+Pj4+Pj4+Pj4+PiArKysrKy0tLQ0KPiA+Pj4+ Pj4+Pj4+Pj4+PiAgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkNCj4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gZGlmZiAtLWdpdA0KPiA+Pj4+ Pj4+Pj4+Pj4NCj4gPj4+PiBhL1NlY3VyaXR5UGtnL0xpYnJhcnkvRHhlSW1hZ2VWZXJpZmljYXRp b25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MDQo+ID4+Pj4+Pj4+Pj4+PiBpYi5jDQo+ID4+Pj4+ Pj4+Pj4+Pg0KPiA+Pj4+IGIvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlmaWNhdGlv bkxpYi9EeGVJbWFnZVZlcmlmaWNhdGlvbkwNCj4gPj4+Pj4+Pj4+Pj4+IGliLmMNCj4gPj4+Pj4+ Pj4+Pj4+Pj4gaW5kZXggODc2MTk4MGM4OGFhLi40NjFlZDdjZmI1YWMgMTAwNjQ0DQo+ID4+Pj4+ Pj4+Pj4+Pj4+IC0tLQ0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4gYS9TZWN1cml0eVBrZy9MaWJyYXJ5 L0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliDQo+ID4+Pj4+ Pj4+Pj4gLmMNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKysrDQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+IGIv U2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi9EeGVJbWFnZVZlcmlm aWNhdGlvbkwNCj4gPj4+Pj4+Pj4+Pj4+IGliLmMNCj4gPj4+Pj4+Pj4+Pj4+Pj4gQEAgLTE4NTUs MTAgKzE4NTUsMTIgQEAgRHhlSW1hZ2VWZXJpZmljYXRpb25IYW5kbGVyICgNCj4gPj4+Pj4+Pj4+ Pj4+Pj4gICAgZm9yIChPZmZTZXQgPSBTZWNEYXRhRGlyLT5WaXJ0dWFsQWRkcmVzczsNCj4gPj4+ Pj4+Pj4+Pj4+Pj4gICAgICAgICBPZmZTZXQgPCBTZWNEYXRhRGlyRW5kOw0KPiA+Pj4+Pj4+Pj4+ Pj4+PiAgICAgICAgIE9mZlNldCArPSAoV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoICsgQUxJR05f U0laRQ0KPiA+Pj4+Pj4+Pj4+Pj4+PiAoV2luQ2VydGlmaWNhdGUtDQo+ID4+Pj4+Pj4+Pj4+Pj4g ZHdMZW5ndGgpKSkgew0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtICAgIFdpbkNlcnRpZmljYXRlID0gKFdJ Tl9DRVJUSUZJQ0FURSAqKSAobUltYWdlQmFzZSArDQo+ID4+IE9mZlNldCk7DQo+ID4+Pj4+Pj4+ Pj4+Pj4+ICAgICAgU2VjRGF0YURpckxlZnQgPSBTZWNEYXRhRGlyRW5kIC0gT2ZmU2V0Ow0KPiA+ Pj4+Pj4+Pj4+Pj4+PiAtICAgIGlmIChTZWNEYXRhRGlyTGVmdCA8PSBzaXplb2YgKFdJTl9DRVJU SUZJQ0FURSkgfHwNCj4gPj4+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgU2VjRGF0YURpckxlZnQgPCBX aW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGgpIHsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAgICBpZiAoU2Vj RGF0YURpckxlZnQgPD0gc2l6ZW9mIChXSU5fQ0VSVElGSUNBVEUpKSB7DQo+ID4+Pj4+Pj4+Pj4+ Pj4+ICsgICAgICBicmVhazsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAgICB9DQo+ID4+Pj4+Pj4+Pj4+ Pj4+ICsgICAgV2luQ2VydGlmaWNhdGUgPSAoV0lOX0NFUlRJRklDQVRFICopIChtSW1hZ2VCYXNl ICsNCj4gPj4gT2ZmU2V0KTsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gKyAgICBpZiAoU2VjRGF0YURpckxl ZnQgPCBXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGgpIHsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAg IGJyZWFrOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgIH0NCj4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+ Pj4+Pj4+Pj4+Pj4gLS0NCj4gPj4+Pj4+Pj4+Pj4+Pj4gMi4xOS4xLjMuZzMwMjQ3YWE1ZDIwMQ0K PiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+Pj4gUGF0Y2gj MzoNCj4gPj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBGcm9tIDBiYmJhMTViODRmOGY5 ZjJjZGM3NzBhODlmNDE4YWFlYzZjZmIzMWUgTW9uIFNlcA0KPiAxNw0KPiA+Pj4+Pj4gMDA6MDA6 MDANCj4gPj4+Pj4+Pj4+Pj4+IDIwMDENCj4gPj4+Pj4+Pj4+Pj4+Pj4gRnJvbTogTGFzemxvIEVy c2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gRGF0ZTogVGh1LCAxMyBB dWcgMjAyMCAxOTozNDozMyArMDIwMA0KPiA+Pj4+Pj4+Pj4+Pj4+PiBTdWJqZWN0OiBbUEFUQ0gg My8zXSBTZWN1cml0eVBrZy9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYjoNCj4gY2F0Y2gNCj4gPj4+ Pj4+Pj4+PiBhbGlnbm1lbnQNCj4gPj4+Pj4+Pj4+Pj4+Pj4gIG92ZXJmbG93IChDVkUtMjAxOS0x NDU2MikNCj4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gVGhlIER4ZUltYWdlVmVy aWZpY2F0aW9uSGFuZGxlcigpIGZ1bmN0aW9uIGN1cnJlbnRseSBjaGVja3MNCj4gPj4+Pj4+Pj4+ Pj4+Pj4gd2hldGhlciAiU2VjRGF0YURpciIgaGFzIGVub3VnaCByb29tIGZvcg0KPiA+Pj4+Pj4+ Pj4+Pj4+PiAiV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoIi4gSG93ZXZlciwNCj4gPj4+Pj4+Pj4+ Pj4+IGZvcg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBhZHZhbmNpbmcgIk9mZlNldCIsICJXaW5DZXJ0aWZp Y2F0ZS0+ZHdMZW5ndGgiIGlzIGFsaWduZWQgdG8NCj4gdGhlDQo+ID4+Pj4+Pj4+Pj4+Pj4+IG5l eHQgbXVsdGlwbGUgb2YgOC4gSWYgIldpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCIgaXMgbGFyZ2UN Cj4gPj4+Pj4+Pj4+Pj4+Pj4gZW5vdWdoLCB0aGUgYWxpZ25tZW50IHdpbGwgcmV0dXJuIDAsIGFu ZCAiT2ZmU2V0IiB3aWxsIGJlIHN0dWNrDQo+IGF0DQo+ID4+Pj4gdGhlDQo+ID4+Pj4+PiBzYW1l IHZhbHVlLg0KPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBDaGVjayB3aGV0aGVy ICJTZWNEYXRhRGlyIiBoYXMgcm9vbSBsZWZ0IGZvciBib3RoDQo+ID4+Pj4+Pj4+Pj4+Pj4+ICJX aW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGgiIGFuZCB0aGUgYWxpZ25tZW50Lg0KPiA+Pj4+Pj4+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBMYXN6bG8gRXJzZWsgPGxlcnNl a0ByZWRoYXQuY29tPg0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtLS0NCj4gPj4+Pj4+Pj4+Pj4+Pj4NCj4g Pj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+PiBTZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZp Y2F0aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTA0KPiA+Pj4+Pj4+Pj4+Pj4+PiBpYi5jIHwN Cj4gPj4+Pj4+Pj4+PiA0DQo+ID4+Pj4+Pj4+Pj4+PiArKystDQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4+Pj4+Pj4+ Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQNCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+ Pj4gYS9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliL0R4ZUltYWdl VmVyaWZpY2F0aW9uTA0KPiA+Pj4+Pj4+Pj4+Pj4gaWIuYw0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+ PiBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIvRHhlSW1hZ2VW ZXJpZmljYXRpb25MDQo+ID4+Pj4+Pj4+Pj4+PiBpYi5jDQo+ID4+Pj4+Pj4+Pj4+Pj4+IGluZGV4 IDQ2MWVkN2NmYjVhYy4uZTM4ZWI5ODFiN2EwIDEwMDY0NA0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtLS0N Cj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+IGEvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlm aWNhdGlvbkxpYi9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYg0KPiA+Pj4+Pj4+Pj4+IC5jDQo+ID4+ Pj4+Pj4+Pj4+Pj4+ICsrKw0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+PiBiL1NlY3VyaXR5UGtnL0xp YnJhcnkvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MDQo+ID4+ Pj4+Pj4+Pj4+PiBpYi5jDQo+ID4+Pj4+Pj4+Pj4+Pj4+IEBAIC0xODYwLDcgKzE4NjAsOSBAQCBE eGVJbWFnZVZlcmlmaWNhdGlvbkhhbmRsZXIgKA0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgICAgYnJl YWs7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgfQ0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgIFdpbkNl cnRpZmljYXRlID0gKFdJTl9DRVJUSUZJQ0FURSAqKSAobUltYWdlQmFzZSArDQo+IE9mZlNldCk7 DQo+ID4+Pj4+Pj4+Pj4+Pj4+IC0gICAgaWYgKFNlY0RhdGFEaXJMZWZ0IDwgV2luQ2VydGlmaWNh dGUtPmR3TGVuZ3RoKSB7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgaWYgKFNlY0RhdGFEaXJMZWZ0 IDwgV2luQ2VydGlmaWNhdGUtPmR3TGVuZ3RoIHx8DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICsgICAgICAg IChTZWNEYXRhRGlyTGVmdCAtIFdpbkNlcnRpZmljYXRlLT5kd0xlbmd0aCA8DQo+ID4+Pj4+Pj4+ Pj4+Pj4+ICsgICAgICAgICBBTElHTl9TSVpFIChXaW5DZXJ0aWZpY2F0ZS0+ZHdMZW5ndGgpKSkg ew0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgICAgYnJlYWs7DQo+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAg fQ0KPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+PiAtLQ0KPiA+Pj4+Pj4+Pj4+Pj4+ PiAyLjE5LjEuMy5nMzAyNDdhYTVkMjAxDQo+ID4+Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+ Pj4NCj4gPj4+Pj4+Pj4+Pj4+PiBJZiBXZW55aSBhbmQgdGhlIHJldmlld2VycyBhcmUgT0sgd2l0 aCB0aGVzZSBwYXRjaGVzLCBJIGNhbg0KPiA+PiBzdWJtaXQNCj4gPj4+Pj4+Pj4+Pj4+PiB0aGVt IGFzIGEgc3RhbmRhbG9uZSBwYXRjaCBzZXJpZXMuDQo+ID4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+ Pj4+Pj4+PiBOb3RlIHRoYXQgSSBkbyBub3QgaGF2ZSBhbnkgcmVwcm9kdWNlciBmb3IgdGhlIGlz c3VlOyB0aGUgYmVzdA0KPiA+Pj4+Pj4+Pj4+Pj4+IHRlc3RpbmcgdGhhdCBJIGNvdWxkIG9mZmVy IHdvdWxkIGJlIHNvbWUgbGlnaHQtd2VpZ2h0IFNlY3VyZQ0KPiBCb290DQo+ID4+Pj4+Pj4+Pj4+ Pj4gcmVncmVzc2lvbiB0ZXN0cy4NCj4gPj4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+IFRo YW5rcw0KPiA+Pj4+Pj4+Pj4+Pj4+IExhc3psbw0KPiA+Pj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+PiAuDQo+ID4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+ DQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IC4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4N Cj4gPj4+Pj4+DQo+ID4+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+ Pj4NCj4gPj4NCj4gPj4NCj4gPj4NCj4gPg0KPiANCj4gDQo+IA0KDQo=