From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: RE: radosgw-agent failed to parse Date: Thu, 5 Feb 2015 14:42:09 +0000 Message-ID: <16801_1423147330_54D38142_16801_1401_1_B9C8EFBF13B1354DB5FA000660D66DD00C1F9C82@PEXCVZYM14.corporate.adroot.infra.ftgroup> References: <31740_1422885416_54CF8227_31740_2351_1_B9C8EFBF13B1354DB5FA000660D66DD00C1F804F@PEXCVZYM14.corporate.adroot.infra.ftgroup> <3704_1422888787_54CF8F53_3704_2219_1_B9C8EFBF13B1354DB5FA000660D66DD00C1F80ED@PEXCVZYM14.corporate.adroot.infra.ftgroup> <27334_1422897147_54CFAFFB_27334_10829_1_B9C8EFBF13B1354DB5FA000660D66DD00C1F830B@PEXCVZYM14.corporate.adroot.infra.ftgroup> <21220_1422958354_54D09F12_21220_2924_1_B9C8EFBF13B1354DB5FA000660D66DD00C1F88FE@PEXCVZYM14.corporate.adroot.infra.ftgroup> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from relais-ias91.francetelecom.com ([193.251.215.91]:57189 "EHLO relais-inet.francetelecom.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757600AbbBEOmM (ORCPT ); Thu, 5 Feb 2015 09:42:12 -0500 In-Reply-To: Content-Language: fr-FR Sender: ceph-devel-owner@vger.kernel.org List-ID: To: Alfredo Deza Cc: "ceph-devel@vger.kernel.org" SEkNCg0KVGhhbmtzIGEgbG90DQoNCkkgaW5zdGFsbGVkIHRoZSBsYXN0IHZlcnNpb24gdXNpbmcg KHBpcCBpbnN0YWxsIHJhZG9zZ3ctYWdlbnQpIGFzIHJlY29tbWVuZGVkIGFmdGVyIHJlbW92aW5n IHRoZSBjdXJyZW50IHZlcnNpb24gKGFwdC1nZXQgcHVyZ2UgcmFkb3Nndy1hZ2VudCkNClRoZSBw eXRob24gc2NyaXB0cyBhcmUgbm93IGluc3RhbGxlZCBpbiAvdXNyL2xvY2FsL2Jpbi8uLi4uLi9y YWRvc2d3X2FnZW50IGluc3RlYWQgb2YgL3Vzci9iaW4vLi4uLi4uL3JhZG9zZ3dfYWdlbnQNCg0K Q2FuIHlvdSB0ZWxsIG1lIHdoYXQgaXMgcmVxdWlyZWQgYWJvdXQgdGhlICdyZXF1ZXN0cycgbGli cmFyeT8NCg0KU28sIEkgd2lsbCB0ZXN0IGl0IGFzYXANCg0KRGlkIHlvdSBwbGFuIHRvIHVwZGF0 ZSB0aGUgcGFja2FnZSBpbiBvcmRlciB0byBiZSBjb21wbGlhbnQgd2l0aCBhcHQtZ2V0IGluc3Rh bGwgcmFkb3Nndy1hZ2VudD8NCg0KQmVzdCByZWdhcmRzIA0KDQotLS0tLU1lc3NhZ2UgZCdvcmln aW5lLS0tLS0NCkRlwqA6IGFsZnJlZG8uZGV6YUBpbmt0YW5rLmNvbSBbbWFpbHRvOmFsZnJlZG8u ZGV6YUBpbmt0YW5rLmNvbV0gRGUgbGEgcGFydCBkZSBBbGZyZWRvIERlemENCkVudm95w6nCoDog bWFyZGkgMyBmw6l2cmllciAyMDE1IDE0OjMwDQrDgMKgOiBDSEVWQUxJRVIgR2hpc2xhaW4gSU1U L09MUFMNCkNjwqA6IGNlcGgtZGV2ZWxAdmdlci5rZXJuZWwub3JnDQpPYmpldMKgOiBSZTogW0Nl cGgtZGV2ZWxdIHJhZG9zZ3ctYWdlbnQgZmFpbGVkIHRvIHBhcnNlDQoNClRoaXMgdGVsbHMgbWUg dGhhdCB5b3UgYXJlIG5vdCB1c2luZyB0aGUgbGF0ZXN0IHJlbGVhc2VkIHZlcnNpb24gb2YgdGhl IGFnZW50IGJlY2F1c2Ugd2UgZHJvcHBlZCB0aGUgcmVxdWlyZW1lbnQgZm9yIHRoZSBgcmVxdWVz dHNgIGxpYnJhcnkgdGhhdCBpcyBzaG93aW5nIHVwIGluIHlvdXIgdHJhY2ViYWNrcy4NCg0KWW91 IHdpbGwgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgYWdlbnQgaXMgY29tcGxldGVseSByZW1v dmVkLCBpbmNsdWRpbmcgdGhlIGByZXF1ZXN0c2AgbGlicmFyeSBhbmQgdGhlbiBpbnN0YWxsIHRo ZSBsYXRlc3QgYWdlbnQgYXZhaWxhYmxlIGZyb20gdGhlIFB5dGhvbiBwYWNrYWdlIEluZGV4IChQ eVBJKSB3aXRoIGEgUHl0aG9uIGluc3RhbGxlciAoZS5nLg0KYHBpcCBpbnN0YWxsIHJhZG9zZ3ct YWdlbnRgKSBvciBpZiB5b3UgZmVlbCBjb21mb3J0YWJsZSB1c2UgdGhlIGxhdGVzdCB0aXAgZnJv bSB0aGUgbWFzdGVyIGJyYW5jaCAoSSBhZHZpY2UgdG8gdXNlIHRoZSBmb3JtZXIpLg0KDQoNCk9u IFR1ZSwgRmViIDMsIDIwMTUgYXQgNToxMiBBTSwgIDxnaGlzbGFpbi5jaGV2YWxpZXJAb3Jhbmdl LmNvbT4gd3JvdGU6DQo+IEhpIEFsZnJlZG8sDQo+DQo+IEhlcmUgYXJlIHRoZSBsb2dzIHlvdSBy ZXF1ZXN0ZWQgdXNpbmcgdGhlIG9yaWdpbmFsIGNsaWVudC5weSBweXRob24gc2NyaXB0Lg0KPg0K PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQo+IERJUkVDVCBMQVVOQ0ggVVNJTkcgQ0xJOktPDQo+IHJhZG9zZ3ct YWdlbnQgLXYgLWMgDQo+IC9ldGMvY2VwaC9yYWRvc2d3LWFnZW50L2ZyLXJlbm5lcy1yYWRvc2d3 MS1zeW5jLmNvbmZfZGlyZWN0DQo+IHRoZSBzdGFuZGFyZCBvdXRwdXQgaXMgYWxzbyB3cml0dGVu IGluIHRoZSBsb2cgZmlsZSBjb25maWd1cmVkIGluIHRoZSANCj4gc3luY2hybyBmaWxlDQo+DQo+ IERFQlVHOmJvdG86VXNpbmcgYWNjZXNzIGtleSBwcm92aWRlZCBieSBjbGllbnQuDQo+IERFQlVH OmJvdG86VXNpbmcgc2VjcmV0IGtleSBwcm92aWRlZCBieSBjbGllbnQuDQo+IERFQlVHOmJvdG86 U3RyaW5nVG9TaWduOg0KPiBHRVQNCj4NCj4NCj4gVHVlLCAwMyBGZWIgMjAxNSAwOTozNzo1NCBH TVQNCj4gL2FkbWluL2NvbmZpZw0KPiBERUJVRzpib3RvOlNpZ25hdHVyZToNCj4gQVdTIFNCRjdE UVoxRVNSNlkzNDIyNUg4OjlpNi80ZG83dERwVmlvbE4xWGR4Z2VmTXMzVT0NCj4gREVCVUc6Ym90 bzp1cmwgPSAnaHR0cDovL29wZW5zdG9yYWdlLnVzaHR0cDovL29wZW5zdG9yYWdlLnVzL2FkbWlu L2NvbmZpZycNCj4gcGFyYW1zPXt9DQo+IGhlYWRlcnM9eydEYXRlJzogJ1R1ZSwgMDMgRmViIDIw MTUgMDk6Mzc6NTQgR01UJywgJ0NvbnRlbnQtTGVuZ3RoJzogDQo+ICcwJywgJ0F1dGhvcml6YXRp b24nOiAnQVdTIA0KPiBTQkY3RFFaMUVTUjZZMzQyMjVIODo5aTYvNGRvN3REcFZpb2xOMVhkeGdl Zk1zM1U9JywgJ1VzZXItQWdlbnQnOiANCj4gJ0JvdG8vMi4yMC4xIFB5dGhvbi8yLjcuNiBMaW51 eC8zLjExLjAtMjYtZ2VuZXJpYyd9IGRhdGE9Tm9uZSBFUlJPUjpyb290OkNvdWxkIG5vdCByZXRy aWV2ZSByZWdpb24gbWFwIGZyb20gZGVzdGluYXRpb24gVHJhY2ViYWNrIChtb3N0IHJlY2VudCBj YWxsIGxhc3QpOg0KPiAgIEZpbGUgIi91c3IvbGliL3B5dGhvbjIuNy9kaXN0LXBhY2thZ2VzL3Jh ZG9zZ3dfYWdlbnQvY2xpLnB5IiwgbGluZSAyNjksIGluIG1haW4NCj4gICAgIHJlZ2lvbl9tYXAg PSBjbGllbnQuZ2V0X3JlZ2lvbl9tYXAoZGVzdF9jb25uKQ0KPiAgIEZpbGUgIi91c3IvbGliL3B5 dGhvbjIuNy9kaXN0LXBhY2thZ2VzL3JhZG9zZ3dfYWdlbnQvY2xpZW50LnB5IiwgbGluZSAzOTEs IGluIGdldF9yZWdpb25fbWFwDQo+ICAgICByZWdpb25fbWFwID0gcmVxdWVzdChjb25uZWN0aW9u LCAnZ2V0JywgJ2FkbWluL2NvbmZpZycpDQo+ICAgRmlsZSAiL3Vzci9saWIvcHl0aG9uMi43L2Rp c3QtcGFja2FnZXMvcmFkb3Nnd19hZ2VudC9jbGllbnQucHkiLCBsaW5lIDE1MywgaW4gcmVxdWVz dA0KPiAgICAgcmVzdWx0ID0gaGFuZGxlcih1cmwsIHBhcmFtcz1wYXJhbXMsIGhlYWRlcnM9cmVx dWVzdC5oZWFkZXJzLCBkYXRhPWRhdGEpDQo+ICAgRmlsZSAiL3Vzci9saWIvcHl0aG9uMi43L2Rp c3QtcGFja2FnZXMvcmVxdWVzdHMvYXBpLnB5IiwgbGluZSA1NSwgaW4gZ2V0DQo+ICAgICByZXR1 cm4gcmVxdWVzdCgnZ2V0JywgdXJsLCAqKmt3YXJncykNCj4gICBGaWxlICIvdXNyL2xpYi9weXRo b24yLjcvZGlzdC1wYWNrYWdlcy9yZXF1ZXN0cy9hcGkucHkiLCBsaW5lIDQ0LCBpbiByZXF1ZXN0 DQo+ICAgICByZXR1cm4gc2Vzc2lvbi5yZXF1ZXN0KG1ldGhvZD1tZXRob2QsIHVybD11cmwsICoq a3dhcmdzKQ0KPiAgIEZpbGUgIi91c3IvbGliL3B5dGhvbjIuNy9kaXN0LXBhY2thZ2VzL3JlcXVl c3RzL3Nlc3Npb25zLnB5IiwgbGluZSA0MjEsIGluIHJlcXVlc3QNCj4gICAgIHByZXAgPSBzZWxm LnByZXBhcmVfcmVxdWVzdChyZXEpDQo+ICAgRmlsZSAiL3Vzci9saWIvcHl0aG9uMi43L2Rpc3Qt cGFja2FnZXMvcmVxdWVzdHMvc2Vzc2lvbnMucHkiLCBsaW5lIDM1OSwgaW4gcHJlcGFyZV9yZXF1 ZXN0DQo+ICAgICBob29rcz1tZXJnZV9ob29rcyhyZXF1ZXN0Lmhvb2tzLCBzZWxmLmhvb2tzKSwN Cj4gICBGaWxlICIvdXNyL2xpYi9weXRob24yLjcvZGlzdC1wYWNrYWdlcy9yZXF1ZXN0cy9tb2Rl bHMucHkiLCBsaW5lIDI4NywgaW4gcHJlcGFyZQ0KPiAgICAgc2VsZi5wcmVwYXJlX3VybCh1cmws IHBhcmFtcykNCj4gICBGaWxlICIvdXNyL2xpYi9weXRob24yLjcvZGlzdC1wYWNrYWdlcy9yZXF1 ZXN0cy9tb2RlbHMucHkiLCBsaW5lIDMzNCwgaW4gcHJlcGFyZV91cmwNCj4gICAgIHNjaGVtZSwg YXV0aCwgaG9zdCwgcG9ydCwgcGF0aCwgcXVlcnksIGZyYWdtZW50ID0gcGFyc2VfdXJsKHVybCkN Cj4gICBGaWxlICIvdXNyL2xpYi9weXRob24yLjcvZGlzdC1wYWNrYWdlcy91cmxsaWIzL3V0aWwu cHkiLCBsaW5lIDM5MCwgaW4gcGFyc2VfdXJsDQo+ICAgICByYWlzZSBMb2NhdGlvblBhcnNlRXJy b3IoIkZhaWxlZCB0byBwYXJzZTogJXMiICUgdXJsKQ0KPiBMb2NhdGlvblBhcnNlRXJyb3I6IEZh aWxlZCB0byBwYXJzZTogRmFpbGVkIHRvIHBhcnNlOiBvcGVuc3RvcmFnZS51c2h0dHA6DQo+DQo+ IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4gLS0tLS0tLS0tLSBMQVVOQ0ggVVNJTkcgL2V0Yy9pbml0LmQvcmFk b3Nndy1hZ2VudCBzaGVsbCBzY3JpcHQ6S08gDQo+IC9ldGMvaW5pdC5kL3JhZG9zZ3ctYWdlbnQg c3RhcnQgDQo+IC9ldGMvY2VwaC9yYWRvc2d3LWFnZW50L2ZyLXJlbm5lcy1yYWRvc2d3MS1zeW5j LmNvbmZfZGlyZWN0DQo+IFN0YW5kYXJkIG91dHB1dDoNCj4gU3RhcnRpbmcgcmFkb3Nndy1hZ2Vu dCBmci1yZW5uZXMtcmFkb3NndzEtc3luYy5jb25mX2RpcmVjdA0KPg0KPiBMb2cgRmlsZSA6DQo+ IDIwMTUtMDItMDNUMTA6NTE6MDAuNzk0IDQ3MzU6RVJST1I6cm9vdDpDb3VsZCBub3QgcmV0cmll dmUgcmVnaW9uIG1hcCANCj4gZnJvbSBkZXN0aW5hdGlvbiBUcmFjZWJhY2sgKG1vc3QgcmVjZW50 IGNhbGwgbGFzdCk6DQo+ICAgRmlsZSAiL3Vzci9saWIvcHl0aG9uMi43L2Rpc3QtcGFja2FnZXMv cmFkb3Nnd19hZ2VudC9jbGkucHkiLCBsaW5lIDI2OSwgaW4gbWFpbg0KPiAgICAgcmVnaW9uX21h cCA9IGNsaWVudC5nZXRfcmVnaW9uX21hcChkZXN0X2Nvbm4pDQo+ICAgRmlsZSAiL3Vzci9saWIv cHl0aG9uMi43L2Rpc3QtcGFja2FnZXMvcmFkb3Nnd19hZ2VudC9jbGllbnQucHkiLCBsaW5lIDM5 MSwgaW4gZ2V0X3JlZ2lvbl9tYXANCj4gICAgIHJlZ2lvbl9tYXAgPSByZXF1ZXN0KGNvbm5lY3Rp b24sICdnZXQnLCAnYWRtaW4vY29uZmlnJykNCj4gICBGaWxlICIvdXNyL2xpYi9weXRob24yLjcv ZGlzdC1wYWNrYWdlcy9yYWRvc2d3X2FnZW50L2NsaWVudC5weSIsIGxpbmUgMTUzLCBpbiByZXF1 ZXN0DQo+ICAgICByZXN1bHQgPSBoYW5kbGVyKHVybCwgcGFyYW1zPXBhcmFtcywgaGVhZGVycz1y ZXF1ZXN0LmhlYWRlcnMsIGRhdGE9ZGF0YSkNCj4gICBGaWxlICIvdXNyL2xpYi9weXRob24yLjcv ZGlzdC1wYWNrYWdlcy9yZXF1ZXN0cy9hcGkucHkiLCBsaW5lIDU1LCBpbiBnZXQNCj4gICAgIHJl dHVybiByZXF1ZXN0KCdnZXQnLCB1cmwsICoqa3dhcmdzKQ0KPiAgIEZpbGUgIi91c3IvbGliL3B5 dGhvbjIuNy9kaXN0LXBhY2thZ2VzL3JlcXVlc3RzL2FwaS5weSIsIGxpbmUgNDQsIGluIHJlcXVl c3QNCj4gICAgIHJldHVybiBzZXNzaW9uLnJlcXVlc3QobWV0aG9kPW1ldGhvZCwgdXJsPXVybCwg Kiprd2FyZ3MpDQo+ICAgRmlsZSAiL3Vzci9saWIvcHl0aG9uMi43L2Rpc3QtcGFja2FnZXMvcmVx dWVzdHMvc2Vzc2lvbnMucHkiLCBsaW5lIDQyMSwgaW4gcmVxdWVzdA0KPiAgICAgcHJlcCA9IHNl bGYucHJlcGFyZV9yZXF1ZXN0KHJlcSkNCj4gICBGaWxlICIvdXNyL2xpYi9weXRob24yLjcvZGlz dC1wYWNrYWdlcy9yZXF1ZXN0cy9zZXNzaW9ucy5weSIsIGxpbmUgMzU5LCBpbiBwcmVwYXJlX3Jl cXVlc3QNCj4gICAgIGhvb2tzPW1lcmdlX2hvb2tzKHJlcXVlc3QuaG9va3MsIHNlbGYuaG9va3Mp LA0KPiAgIEZpbGUgIi91c3IvbGliL3B5dGhvbjIuNy9kaXN0LXBhY2thZ2VzL3JlcXVlc3RzL21v ZGVscy5weSIsIGxpbmUgMjg3LCBpbiBwcmVwYXJlDQo+ICAgICBzZWxmLnByZXBhcmVfdXJsKHVy bCwgcGFyYW1zKQ0KPiAgIEZpbGUgIi91c3IvbGliL3B5dGhvbjIuNy9kaXN0LXBhY2thZ2VzL3Jl cXVlc3RzL21vZGVscy5weSIsIGxpbmUgMzM0LCBpbiBwcmVwYXJlX3VybA0KPiAgICAgc2NoZW1l LCBhdXRoLCBob3N0LCBwb3J0LCBwYXRoLCBxdWVyeSwgZnJhZ21lbnQgPSBwYXJzZV91cmwodXJs KQ0KPiAgIEZpbGUgIi91c3IvbGliL3B5dGhvbjIuNy9kaXN0LXBhY2thZ2VzL3VybGxpYjMvdXRp bC5weSIsIGxpbmUgMzkwLCBpbiBwYXJzZV91cmwNCj4gICAgIHJhaXNlIExvY2F0aW9uUGFyc2VF cnJvcigiRmFpbGVkIHRvIHBhcnNlOiAlcyIgJSB1cmwpDQo+IExvY2F0aW9uUGFyc2VFcnJvcjog RmFpbGVkIHRvIHBhcnNlOiBGYWlsZWQgdG8gcGFyc2U6IG9wZW5zdG9yYWdlLnVzaHR0cDoNCj4N Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gTEFVTkNIIEFTIEEg U0VSVklDRTogT0sNCj4gc2VydmljZSByYWRvc2d3LWFnZW50IHN0YXJ0IA0KPiAvZXRjL2NlcGgv cmFkb3Nndy1hZ2VudC9mci1yZW5uZXMtcmFkb3NndzEtc3luYy5jb25mX2RpcmVjdA0KPiBzdGFu ZGFyZCBvdXRwdXQ6DQo+IFN0YXJ0aW5nIHJhZG9zZ3ctYWdlbnQgZnItcmVubmVzLXJhZG9zZ3cx LXN5bmMuY29uZl9kaXJlY3QNCj4NCj4gTG9nIGZpbGU6DQo+IDIwMTUtMDItMDNUMTA6NDI6MDIu ODc4IDMxNjI6SU5GTzp1cmxsaWIzLmNvbm5lY3Rpb25wb29sOlN0YXJ0aW5nIG5ldyANCj4gSFRU UCBjb25uZWN0aW9uICgxKTogb3BlbnN0b3JhZ2UudXMNCj4NCj4gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+IC0tLS0tLS0tDQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiAtLS0tLS0tLSBIZXJlIGFyZSB0aGUgbG9ncyB5b3UgcmVxdWVzdGVkIHVzaW5nIHRoZSBh bHRlcmVkIGNsaWVudC5weSANCj4gcHl0aG9uIHNjcmlwdC4NCj4NCj4gRElSRUNUIExBVU5DSCBV U0lORyBDTEk6T0sNCj4gcmFkb3Nndy1hZ2VudCAtdiAtYyANCj4gL2V0Yy9jZXBoL3JhZG9zZ3ct YWdlbnQvZnItcmVubmVzLXJhZG9zZ3cxLXN5bmMuY29uZl9kaXJlY3QNCj4gdGhlIHN0YW5kYXJk IG91dHB1dCBpcyBhbHNvIHdpdHRlbiBpbiB0aGUgbG9nIGZpbGUgY29uZmlndXJlZCBpbiB0aGUg DQo+IHN5bmNocm8gZmlsZQ0KPg0KPiAyMDE1LTAyLTAzVDExOjAwOjQwLjQ0NyA2MTU4OkRFQlVH OmJvdG86VXNpbmcgYWNjZXNzIGtleSBwcm92aWRlZCBieSBjbGllbnQuDQo+IDIwMTUtMDItMDNU MTE6MDA6NDAuNDQ3IDYxNTg6REVCVUc6Ym90bzpVc2luZyBzZWNyZXQga2V5IHByb3ZpZGVkIGJ5 IGNsaWVudC4NCj4gMjAxNS0wMi0wM1QxMTowMDo0MC40NDggNjE1ODpERUJVRzpib3RvOlN0cmlu Z1RvU2lnbjoNCj4gR0VUDQo+DQo+DQo+IFR1ZSwgMDMgRmViIDIwMTUgMTA6MDA6NDAgR01UDQo+ IC9hZG1pbi9jb25maWcNCj4gMjAxNS0wMi0wM1QxMTowMDo0MC40NDggNjE1ODpERUJVRzpib3Rv OlNpZ25hdHVyZToNCj4gQVdTIFNCRjdEUVoxRVNSNlkzNDIyNUg4OkxVRUJVclI5ejFCZ2JyajZG L1hHckdGKzhCTT0NCj4gMjAxNS0wMi0wM1QxMTowMDo0MC40NDggNjE1ODpERUJVRzpib3RvOnVy bCA9ICdodHRwOi8vb3BlbnN0b3JhZ2UudXMvYWRtaW4vY29uZmlnJw0KPiBwYXJhbXM9e30NCj4g aGVhZGVycz17J0RhdGUnOiAnVHVlLCAwMyBGZWIgMjAxNSAxMDowMDo0MCBHTVQnLCAnQ29udGVu dC1MZW5ndGgnOiANCj4gJzAnLCAnQXV0aG9yaXphdGlvbic6ICdBV1MgDQo+IFNCRjdEUVoxRVNS NlkzNDIyNUg4OkxVRUJVclI5ejFCZ2JyajZGL1hHckdGKzhCTT0nLCAnVXNlci1BZ2VudCc6IA0K PiAnQm90by8yLjIwLjEgUHl0aG9uLzIuNy42IExpbnV4LzMuMTEuMC0yNi1nZW5lcmljJ30gZGF0 YT1Ob25lDQo+IDIwMTUtMDItMDNUMTE6MDA6NDAuNDU3IDYxNTg6SU5GTzp1cmxsaWIzLmNvbm5l Y3Rpb25wb29sOlN0YXJ0aW5nIG5ldyANCj4gSFRUUCBjb25uZWN0aW9uICgxKTogcHJveHkNCj4g MjAxNS0wMi0wM1QxMTowMDo0MC40NjcgNjE1ODpERUJVRzp1cmxsaWIzLmNvbm5lY3Rpb25wb29s OlNldHRpbmcgcmVhZCANCj4gdGltZW91dCB0byBOb25lDQo+IDIwMTUtMDItMDNUMTE6MDA6NDAu ODQ4IDYxNTg6REVCVUc6dXJsbGliMy5jb25uZWN0aW9ucG9vbDoiR0VUIA0KPiBodHRwOi8vb3Bl bnN0b3JhZ2UudXMvYWRtaW4vY29uZmlnIEhUVFAvMS4xIiAyMDAgTm9uZQ0KPg0KPiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+IC0tLS0tLS0tLS0gTEFVTkNIIFVTSU5HIC9ldGMvaW5pdC5kL3JhZG9zZ3ctYWdl bnQgc2hlbGwgc2NyaXB0OktPIA0KPiAvZXRjL2luaXQuZC9yYWRvc2d3LWFnZW50IHN0YXJ0IA0K PiAvZXRjL2NlcGgvcmFkb3Nndy1hZ2VudC9mci1yZW5uZXMtcmFkb3NndzEtc3luYy5jb25mX2Rp cmVjdA0KPiBTdGFuZGFyZCBvdXRwdXQ6DQo+IFN0YXJ0aW5nIHJhZG9zZ3ctYWdlbnQgZnItcmVu bmVzLXJhZG9zZ3cxLXN5bmMuY29uZl9kaXJlY3QNCj4NCj4gTG9nIEZpbGUgOg0KPiAyMDE1LTAy LTAzVDExOjA3OjQ5LjI3MSA3NTEzOklORk86dXJsbGliMy5jb25uZWN0aW9ucG9vbDpTdGFydGlu ZyBuZXcgDQo+IEhUVFAgY29ubmVjdGlvbiAoMSk6IHByb3h5DQo+IDIwMTUtMDItMDNUMTE6MDc6 NDkuNjU0IDc1MTM6SU5GTzp1cmxsaWIzLmNvbm5lY3Rpb25wb29sOlN0YXJ0aW5nIG5ldyANCj4g SFRUUCBjb25uZWN0aW9uICgxKTogcHJveHkNCj4gMjAxNS0wMi0wM1QxMTowNzo1MC40NjkgNzUx MzpFUlJPUjpyYWRvc2d3X2FnZW50LnN5bmM6ZmluZGluZyBudW1iZXIgDQo+IG9mIHNoYXJkcyBm YWlsZWQNCj4gMjAxNS0wMi0wM1QxMTowNzo1MC40NzAgNzUxMzpXQVJOSU5HOnJhZG9zZ3dfYWdl bnQuc3luYzplcnJvciBwcmVwYXJpbmcgZm9yIHN5bmMsIHdpbGwgcmV0cnkuIFRyYWNlYmFjazoN Cj4gVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOg0KPiAgIEZpbGUgIi91c3IvbGli L3B5dGhvbjIuNy9kaXN0LXBhY2thZ2VzL3JhZG9zZ3dfYWdlbnQvc3luYy5weSIsIGxpbmUgMjYs IGluIHByZXBhcmVfc3luYw0KPiAgICAgc3luY2VyLnByZXBhcmUoKQ0KPiAgIEZpbGUgIi91c3Iv bGliL3B5dGhvbjIuNy9kaXN0LXBhY2thZ2VzL3JhZG9zZ3dfYWdlbnQvc3luYy5weSIsIGxpbmUg MjAyLCBpbiBwcmVwYXJlDQo+ICAgICBzZWxmLmluaXRfbnVtX3NoYXJkcygpDQo+ICAgRmlsZSAi L3Vzci9saWIvcHl0aG9uMi43L2Rpc3QtcGFja2FnZXMvcmFkb3Nnd19hZ2VudC9zeW5jLnB5Iiwg bGluZSA3MywgaW4gaW5pdF9udW1fc2hhcmRzDQo+ICAgICBzZWxmLm51bV9zaGFyZHMgPSBjbGll bnQubnVtX2xvZ19zaGFyZHMoc2VsZi5zcmNfY29ubiwgc2VsZi50eXBlKQ0KPiAgIEZpbGUgIi91 c3IvbGliL3B5dGhvbjIuNy9kaXN0LXBhY2thZ2VzL3JhZG9zZ3dfYWdlbnQvY2xpZW50LnB5Iiwg bGluZSAyODUsIGluIG51bV9sb2dfc2hhcmRzDQo+ICAgICBvdXQgPSByZXF1ZXN0KGNvbm5lY3Rp b24sICdnZXQnLCAnYWRtaW4vbG9nJywgZGljdCh0eXBlPXNoYXJkX3R5cGUpKQ0KPiAgIEZpbGUg Ii91c3IvbGliL3B5dGhvbjIuNy9kaXN0LXBhY2thZ2VzL3JhZG9zZ3dfYWdlbnQvY2xpZW50LnB5 IiwgbGluZSAxNjAsIGluIHJlcXVlc3QNCj4gICAgIGNoZWNrX3Jlc3VsdF9zdGF0dXMocmVzdWx0 KQ0KPiAgIEZpbGUgIi91c3IvbGliL3B5dGhvbjIuNy9kaXN0LXBhY2thZ2VzL3JhZG9zZ3dfYWdl bnQvY2xpZW50LnB5IiwgbGluZSAxMTYsIGluIGNoZWNrX3Jlc3VsdF9zdGF0dXMNCj4gICAgIEh0 dHBFcnJvcikocmVzdWx0LnN0YXR1c19jb2RlLCByZXN1bHQuY29udGVudCkNCj4gTm90Rm91bmQ6 IEh0dHAgZXJyb3IgY29kZSA0MDQgY29udGVudCA8SFRNTD48SEVBRD4NCj4NCj4NCj4gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gTEFVTkNIIEFTIEEgU0VSVklDRTpL Tw0KPiBzZXJ2aWNlIHJhZG9zZ3ctYWdlbnQgc3RhcnQgDQo+IC9ldGMvY2VwaC9yYWRvc2d3LWFn ZW50L2ZyLXJlbm5lcy1yYWRvc2d3MS1zeW5jLmNvbmZfZGlyZWN0DQo+IHN0YW5kYXJkIG91dHB1 dDoNCj4gU3RhcnRpbmcgcmFkb3Nndy1hZ2VudCBmci1yZW5uZXMtcmFkb3NndzEtc3luYy5jb25m X2RpcmVjdA0KPg0KPiBMb2cgZmlsZToNCj4gMjAxNS0wMi0wM1QxMTowNDoyNS40MzUgNjg3MjpF UlJPUjpyb290OkNvdWxkIG5vdCByZXRyaWV2ZSByZWdpb24gbWFwIA0KPiBmcm9tIGRlc3RpbmF0 aW9uIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToNCj4gICBGaWxlICIvdXNyL2xp Yi9weXRob24yLjcvZGlzdC1wYWNrYWdlcy9yYWRvc2d3X2FnZW50L2NsaS5weSIsIGxpbmUgMjY5 LCBpbiBtYWluDQo+ICAgICByZWdpb25fbWFwID0gY2xpZW50LmdldF9yZWdpb25fbWFwKGRlc3Rf Y29ubikNCj4gICBGaWxlICIvdXNyL2xpYi9weXRob24yLjcvZGlzdC1wYWNrYWdlcy9yYWRvc2d3 X2FnZW50L2NsaWVudC5weSIsIGxpbmUgMzk2LCBpbiBnZXRfcmVnaW9uX21hcA0KPiAgICAgcmVn aW9uX21hcCA9IHJlcXVlc3QoY29ubmVjdGlvbiwgJ2dldCcsICdhZG1pbi9jb25maWcnKQ0KPiAg IEZpbGUgIi91c3IvbGliL3B5dGhvbjIuNy9kaXN0LXBhY2thZ2VzL3JhZG9zZ3dfYWdlbnQvY2xp ZW50LnB5IiwgbGluZSAxNTgsIGluIHJlcXVlc3QNCj4gICAgIHJlc3VsdCA9IGhhbmRsZXIodXJs LCBwYXJhbXM9cGFyYW1zLCBoZWFkZXJzPXJlcXVlc3QuaGVhZGVycywgZGF0YT1kYXRhKQ0KPiAg IEZpbGUgIi91c3IvbGliL3B5dGhvbjIuNy9kaXN0LXBhY2thZ2VzL3JlcXVlc3RzL2FwaS5weSIs IGxpbmUgNTUsIGluIGdldA0KPiAgICAgcmV0dXJuIHJlcXVlc3QoJ2dldCcsIHVybCwgKiprd2Fy Z3MpDQo+ICAgRmlsZSAiL3Vzci9saWIvcHl0aG9uMi43L2Rpc3QtcGFja2FnZXMvcmVxdWVzdHMv YXBpLnB5IiwgbGluZSA0NCwgaW4gcmVxdWVzdA0KPiAgICAgcmV0dXJuIHNlc3Npb24ucmVxdWVz dChtZXRob2Q9bWV0aG9kLCB1cmw9dXJsLCAqKmt3YXJncykNCj4gICBGaWxlICIvdXNyL2xpYi9w eXRob24yLjcvZGlzdC1wYWNrYWdlcy9yZXF1ZXN0cy9zZXNzaW9ucy5weSIsIGxpbmUgNDIxLCBp biByZXF1ZXN0DQo+ICAgICBwcmVwID0gc2VsZi5wcmVwYXJlX3JlcXVlc3QocmVxKQ0KPiAgIEZp bGUgIi91c3IvbGliL3B5dGhvbjIuNy9kaXN0LXBhY2thZ2VzL3JlcXVlc3RzL3Nlc3Npb25zLnB5 IiwgbGluZSAzNTksIGluIHByZXBhcmVfcmVxdWVzdA0KPiAgICAgaG9va3M9bWVyZ2VfaG9va3Mo cmVxdWVzdC5ob29rcywgc2VsZi5ob29rcyksDQo+ICAgRmlsZSAiL3Vzci9saWIvcHl0aG9uMi43 L2Rpc3QtcGFja2FnZXMvcmVxdWVzdHMvbW9kZWxzLnB5IiwgbGluZSAyODcsIGluIHByZXBhcmUN Cj4gICAgIHNlbGYucHJlcGFyZV91cmwodXJsLCBwYXJhbXMpDQo+ICAgRmlsZSAiL3Vzci9saWIv cHl0aG9uMi43L2Rpc3QtcGFja2FnZXMvcmVxdWVzdHMvbW9kZWxzLnB5IiwgbGluZSAzMzgsIGlu IHByZXBhcmVfdXJsDQo+ICAgICAiUGVyaGFwcyB5b3UgbWVhbnQgaHR0cDovL3swfT8iLmZvcm1h dCh1cmwpKQ0KPiBNaXNzaW5nU2NoZW1hOiBJbnZhbGlkIFVSTCB1Jy9hZG1pbi9jb25maWcnOiBO byBzY2hlbWEgc3VwcGxpZWQuIFBlcmhhcHMgeW91IG1lYW50IGh0dHA6Ly8vYWRtaW4vY29uZmln Pw0KPg0KPg0KPg0KPiBCZXN0IHJlZ2FyZHMNCj4NCj4gLS0tLS1NZXNzYWdlIGQnb3JpZ2luZS0t LS0tDQo+IERlIDogYWxmcmVkby5kZXphQGlua3RhbmsuY29tIFttYWlsdG86YWxmcmVkby5kZXph QGlua3RhbmsuY29tXSBEZSBsYSANCj4gcGFydCBkZSBBbGZyZWRvIERlemEgRW52b3nDqSA6IGx1 bmRpIDIgZsOpdnJpZXIgMjAxNSAxOTo0MiDDgCA6IENIRVZBTElFUiANCj4gR2hpc2xhaW4gSU1U L09MUFMgQ2MgOiBjZXBoLWRldmVsQHZnZXIua2VybmVsLm9yZyBPYmpldCA6IFJlOiANCj4gW0Nl cGgtZGV2ZWxdIHJhZG9zZ3ctYWdlbnQgZmFpbGVkIHRvIHBhcnNlDQo+DQo+IElmIHlvdSB1c2Ug dGhlIGAtdmAgZmxhZyB5b3Ugd2lsbCBnZXQgdmVyeSB2ZXJib3NlIG91dHB1dC4NCj4NCj4gT24g TW9uLCBGZWIgMiwgMjAxNSBhdCAxMjoxMiBQTSwgIDxnaGlzbGFpbi5jaGV2YWxpZXJAb3Jhbmdl LmNvbT4gd3JvdGU6DQo+PiBPSyBJIHdpbGwgc2VuZCB0aGVtIGFzYXANCj4+DQo+PiBMb2dzIGFy ZSBub3QgdmVyeSB2ZXJib3NlLi4gQ2FuIEkgc2V0IGEgZGVidWcgbW9kZT8NCj4+DQo+PiAtLS0t LU1lc3NhZ2UgZCdvcmlnaW5lLS0tLS0NCj4+IERlIDogYWxmcmVkby5kZXphQGlua3RhbmsuY29t IFttYWlsdG86YWxmcmVkby5kZXphQGlua3RhbmsuY29tXSBEZSBsYSANCj4+IHBhcnQgZGUgQWxm cmVkbyBEZXphIEVudm95w6kgOiBsdW5kaSAyIGbDqXZyaWVyIDIwMTUgMTY6NTkgw4AgOiANCj4+ IENIRVZBTElFUiBHaGlzbGFpbiBJTVQvT0xQUyBDYyA6DQo+PiBPYmpldCA6IFJlOiBbQ2VwaC1k ZXZlbF0gcmFkb3Nndy1hZ2VudCBmYWlsZWQgdG8gcGFyc2UNCj4+DQo+PiBUaGF0IHNvdW5kcyBz dXNwaWNpb3VzIGJlY2F1c2Ugd2UgaGF2ZW4ndCBwYWNrYWdlZCBhIDEuMi4xIHJlbGVhc2UuDQo+ Pg0KPj4gVGhlIGxhdGVzdCBvbiBQeVBJIGlzIDEuMiwgd2hpY2ggaXMgdGhlIHNhbWUgaW4gdGhl IG1hc3RlciBicmFuY2guDQo+Pg0KPj4gV291bGQgeW91IG1pbmQgc2VuZGluZyBsb2dzIHRoYXQg c2hvdyAqaG93KiB0aGUgdXJsIGlzIG1hbGZvcm1lZCAoYm90aCB3aGVuIGl0IGlzIE9LIGFuZCB3 aGVuIGl0IGlzIG5vdCkgPw0KPj4NCj4+IE9uIE1vbiwgRmViIDIsIDIwMTUgYXQgOTo1MyBBTSwg IDxnaGlzbGFpbi5jaGV2YWxpZXJAb3JhbmdlLmNvbT4gd3JvdGU6DQo+Pj4gSEksDQo+Pj4NCj4+ PiBUaHggZm9yIHJlcGx5aW5nDQo+Pj4NCj4+PiBBY2NvcmRpbmcgdG8gZHBrZyAtbCwgaXQncyAx LjIuMS4NCj4+Pg0KPj4+IEkgbm90aWNlZCB0aGF0IHRoZSBVUkwgaXMgbWFsZm9ybWVkIHdoZW4g bGF1bmNoaW5nIHVzaW5nIGRpcmVjdGx5IA0KPj4+IHJhZG9zZ3ctYWdlbnQgLWMgPHN5bmNmaWxl PiBidXQgd2VsbCBmb3JtZWQgd2hlbiBsYXVuY2hpbmcgdXNpbmcgDQo+Pj4gc2VydmljZSByYWRv c2d3LWFnZW50IHN0YXJ0IDxzeW5jZmlsZT4NCj4+Pg0KPj4+IGJlc3QgcmVnYXJkcw0KPj4+DQo+ Pj4gLS0tLS1NZXNzYWdlIGQnb3JpZ2luZS0tLS0tDQo+Pj4gRGUgOiBhbGZyZWRvLmRlemFAaW5r dGFuay5jb20gW21haWx0bzphbGZyZWRvLmRlemFAaW5rdGFuay5jb21dIERlIA0KPj4+IGxhIHBh cnQgZGUgQWxmcmVkbyBEZXphIEVudm95w6kgOiBsdW5kaSAyIGbDqXZyaWVyIDIwMTUgMTU6MTgg w4AgOg0KPj4+IENIRVZBTElFUiBHaGlzbGFpbiBJTVQvT0xQUyBDYyA6IGNlcGgtZGV2ZWxAdmdl ci5rZXJuZWwub3JnIE9iamV0IDogUmU6DQo+Pj4gW0NlcGgtZGV2ZWxdIHJhZG9zZ3ctYWdlbnQg ZmFpbGVkIHRvIHBhcnNlDQo+Pj4NCj4+PiBXaGF0IHZlcnNpb24gb2YgdGhlIGFnZW50IGFyZSB5 b3UgdXNpbmc/IEFuZCB3aGVuIGl0IGZhaWxzLCBob3cgZG9lcyB0aGUgbG9nIG91dHB1dCBsb29r Pw0KPj4+DQo+Pj4gT24gTW9uLCBGZWIgMiwgMjAxNSBhdCA4OjU2IEFNLCAgPGdoaXNsYWluLmNo ZXZhbGllckBvcmFuZ2UuY29tPiB3cm90ZToNCj4+Pj4gSGkgYWxsLA0KPj4+Pg0KPj4+PiBDb250 ZXh0IDogVWJ1bnR1IDE0LjA0IFRMUyBmaXJlZmx5IDAuODAuOA0KPj4+Pg0KPj4+PiBJIHNlbnQg dGhpcyBwb3N0IGluIGNlcGgtdXNlcnMgKGlkZW50aWNhbCBzdWJqZWN0KSBiZWNhdXNlIEkgcmVj ZW50bHkgZW5jb3VudGVyZWQgdGhlIHNhbWUgaXNzdWUuDQo+Pj4+IE1heWJlIEkgbWlzc2VkIHNv bWV0aGluZyBiZXR3ZWVuIEp1bHkgYW5kIEphbnVhcnkuLi4NCj4+Pj4NCj4+Pj4gSSBmb3VuZCB0 aGF0IHRoZSBodHRwIHJlcXVlc3Qgd2Fzbid0IGNvcnJlY3RseSBmb3JtZWQgYnkgDQo+Pj4+IC91 c3IvbGliL3B5dGhvbjIuNy9kaXN0LXBhY2thZ2VzL3JhZG9zZ3dfYWdlbnQvY2xpZW50LnB5DQo+ Pj4+DQo+Pj4+IEkgZGlkIHRoZSBjaGFuZ2VzIGJlbG93DQo+Pj4+ICMgICAgdXJsID0gJ3twcm90 b2NvbH06Ly97aG9zdH17cGF0aH0nLmZvcm1hdChwcm90b2NvbD1yZXF1ZXN0LnByb3RvY29sLA0K Pj4+PiAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdD1y ZXF1ZXN0Lmhvc3QsDQo+Pj4+ICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwYXRoPXJlcXVlc3QucGF0aCkNCj4+Pj4gICAgICB1cmwgPSAne3BhdGh9Jy5mb3Jt YXQocHJvdG9jb2w9IiIsIGhvc3Q9IiIsIHBhdGg9cmVxdWVzdC5wYXRoKQ0KPj4+Pg0KPj4+PiBU aGUgcmVxdWVzdCBpcyB0aGVuIGNvcnJlY3RseSBmb3JtZWQgYW5kIHNlbnQuDQo+Pj4+DQo+Pj4+ IEkgc3RpbGwgaGF2ZSBwcm9ibGVtcyBzZXR0aW5nIHRoZSBmZWRlcmF0aW9uIGJldHdlZW4gMiB6 b25lcyBvZiAyIGNlcGggY2x1c3RlcnMgaW4gMiByZWdpb25zLg0KPj4+Pg0KPj4+PiBJIGdvIG9u IGludmVzdGlnYXRpbmcuDQo+Pj4+DQo+Pj4+IEJlc3QgcmVnYXJkcw0KPj4+Pg0KPj4+Pg0KPj4+ PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fDQo+Pj4+IF8gXyBfIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXw0KPj4+Pg0KPj4+PiBDZSBtZXNzYWdlIGV0IHNlcyBwaWVjZXMg am9pbnRlcyBwZXV2ZW50IGNvbnRlbmlyIGRlcyBpbmZvcm1hdGlvbnMgDQo+Pj4+IGNvbmZpZGVu dGllbGxlcyBvdSBwcml2aWxlZ2llZXMgZXQgbmUgZG9pdmVudCBkb25jIHBhcyBldHJlIA0KPj4+ PiBkaWZmdXNlcywgZXhwbG9pdGVzIG91IGNvcGllcyBzYW5zIGF1dG9yaXNhdGlvbi4gU2kgdm91 cyBhdmV6IHJlY3UgDQo+Pj4+IGNlIG1lc3NhZ2UgcGFyIGVycmV1ciwgdmV1aWxsZXogbGUgc2ln bmFsZXIgYSBsJ2V4cGVkaXRldXIgZXQgbGUgZGV0cnVpcmUgYWluc2kgcXVlIGxlcyBwaWVjZXMg am9pbnRlcy4gTGVzIG1lc3NhZ2VzIGVsZWN0cm9uaXF1ZXMgZXRhbnQgc3VzY2VwdGlibGVzIGQn YWx0ZXJhdGlvbiwgT3JhbmdlIGRlY2xpbmUgdG91dGUgcmVzcG9uc2FiaWxpdGUgc2kgY2UgbWVz c2FnZSBhIGV0ZSBhbHRlcmUsIGRlZm9ybWUgb3UgZmFsc2lmaWUuIE1lcmNpLg0KPj4+Pg0KPj4+ PiBUaGlzIG1lc3NhZ2UgYW5kIGl0cyBhdHRhY2htZW50cyBtYXkgY29udGFpbiBjb25maWRlbnRp YWwgb3IgDQo+Pj4+IHByaXZpbGVnZWQgaW5mb3JtYXRpb24gdGhhdCBtYXkgYmUgcHJvdGVjdGVk IGJ5IGxhdzsgdGhleSBzaG91bGQgbm90IGJlIGRpc3RyaWJ1dGVkLCB1c2VkIG9yIGNvcGllZCB3 aXRob3V0IGF1dGhvcmlzYXRpb24uDQo+Pj4+IElmIHlvdSBoYXZlIHJlY2VpdmVkIHRoaXMgZW1h aWwgaW4gZXJyb3IsIHBsZWFzZSBub3RpZnkgdGhlIHNlbmRlciBhbmQgZGVsZXRlIHRoaXMgbWVz c2FnZSBhbmQgaXRzIGF0dGFjaG1lbnRzLg0KPj4+PiBBcyBlbWFpbHMgbWF5IGJlIGFsdGVyZWQs IE9yYW5nZSBpcyBub3QgbGlhYmxlIGZvciBtZXNzYWdlcyB0aGF0IGhhdmUgYmVlbiBtb2RpZmll ZCwgY2hhbmdlZCBvciBmYWxzaWZpZWQuDQo+Pj4+IFRoYW5rIHlvdS4NCj4+Pj4NCj4+Pj4gLS0N Cj4+Pj4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vi c2NyaWJlIGNlcGgtZGV2ZWwiDQo+Pj4+IGluIHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpv cmRvbW9Admdlci5rZXJuZWwub3JnIE1vcmUgDQo+Pj4+IG1ham9yZG9tbyBpbmZvIGF0ICBodHRw Oi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwNCj4+Pg0KPj4+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fDQo+Pj4gXyBfIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXw0KPj4+DQo+Pj4gQ2UgbWVzc2FnZSBldCBzZXMgcGllY2VzIGpvaW50ZXMgcGV1dmVu dCBjb250ZW5pciBkZXMgaW5mb3JtYXRpb25zIA0KPj4+IGNvbmZpZGVudGllbGxlcyBvdSBwcml2 aWxlZ2llZXMgZXQgbmUgZG9pdmVudCBkb25jIHBhcyBldHJlIA0KPj4+IGRpZmZ1c2VzLCBleHBs b2l0ZXMgb3UgY29waWVzIHNhbnMgYXV0b3Jpc2F0aW9uLiBTaSB2b3VzIGF2ZXogcmVjdSANCj4+ PiBjZSBtZXNzYWdlIHBhciBlcnJldXIsIHZldWlsbGV6IGxlIHNpZ25hbGVyIGEgbCdleHBlZGl0 ZXVyIGV0IGxlIGRldHJ1aXJlIGFpbnNpIHF1ZSBsZXMgcGllY2VzIGpvaW50ZXMuIExlcyBtZXNz YWdlcyBlbGVjdHJvbmlxdWVzIGV0YW50IHN1c2NlcHRpYmxlcyBkJ2FsdGVyYXRpb24sIE9yYW5n ZSBkZWNsaW5lIHRvdXRlIHJlc3BvbnNhYmlsaXRlIHNpIGNlIG1lc3NhZ2UgYSBldGUgYWx0ZXJl LCBkZWZvcm1lIG91IGZhbHNpZmllLiBNZXJjaS4NCj4+Pg0KPj4+IFRoaXMgbWVzc2FnZSBhbmQg aXRzIGF0dGFjaG1lbnRzIG1heSBjb250YWluIGNvbmZpZGVudGlhbCBvciANCj4+PiBwcml2aWxl Z2VkIGluZm9ybWF0aW9uIHRoYXQgbWF5IGJlIHByb3RlY3RlZCBieSBsYXc7IHRoZXkgc2hvdWxk IG5vdCBiZSBkaXN0cmlidXRlZCwgdXNlZCBvciBjb3BpZWQgd2l0aG91dCBhdXRob3Jpc2F0aW9u Lg0KPj4+IElmIHlvdSBoYXZlIHJlY2VpdmVkIHRoaXMgZW1haWwgaW4gZXJyb3IsIHBsZWFzZSBu b3RpZnkgdGhlIHNlbmRlciBhbmQgZGVsZXRlIHRoaXMgbWVzc2FnZSBhbmQgaXRzIGF0dGFjaG1l bnRzLg0KPj4+IEFzIGVtYWlscyBtYXkgYmUgYWx0ZXJlZCwgT3JhbmdlIGlzIG5vdCBsaWFibGUg Zm9yIG1lc3NhZ2VzIHRoYXQgaGF2ZSBiZWVuIG1vZGlmaWVkLCBjaGFuZ2VkIG9yIGZhbHNpZmll ZC4NCj4+PiBUaGFuayB5b3UuDQo+Pj4NCj4+DQo+PiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+IF8gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+Pg0KPj4gQ2Ug bWVzc2FnZSBldCBzZXMgcGllY2VzIGpvaW50ZXMgcGV1dmVudCBjb250ZW5pciBkZXMgaW5mb3Jt YXRpb25zIA0KPj4gY29uZmlkZW50aWVsbGVzIG91IHByaXZpbGVnaWVlcyBldCBuZSBkb2l2ZW50 IGRvbmMgcGFzIGV0cmUgZGlmZnVzZXMsIA0KPj4gZXhwbG9pdGVzIG91IGNvcGllcyBzYW5zIGF1 dG9yaXNhdGlvbi4gU2kgdm91cyBhdmV6IHJlY3UgY2UgbWVzc2FnZSANCj4+IHBhciBlcnJldXIs IHZldWlsbGV6IGxlIHNpZ25hbGVyIGEgbCdleHBlZGl0ZXVyIGV0IGxlIGRldHJ1aXJlIGFpbnNp IHF1ZSBsZXMgcGllY2VzIGpvaW50ZXMuIExlcyBtZXNzYWdlcyBlbGVjdHJvbmlxdWVzIGV0YW50 IHN1c2NlcHRpYmxlcyBkJ2FsdGVyYXRpb24sIE9yYW5nZSBkZWNsaW5lIHRvdXRlIHJlc3BvbnNh YmlsaXRlIHNpIGNlIG1lc3NhZ2UgYSBldGUgYWx0ZXJlLCBkZWZvcm1lIG91IGZhbHNpZmllLiBN ZXJjaS4NCj4+DQo+PiBUaGlzIG1lc3NhZ2UgYW5kIGl0cyBhdHRhY2htZW50cyBtYXkgY29udGFp biBjb25maWRlbnRpYWwgb3IgDQo+PiBwcml2aWxlZ2VkIGluZm9ybWF0aW9uIHRoYXQgbWF5IGJl IHByb3RlY3RlZCBieSBsYXc7IHRoZXkgc2hvdWxkIG5vdCBiZSBkaXN0cmlidXRlZCwgdXNlZCBv ciBjb3BpZWQgd2l0aG91dCBhdXRob3Jpc2F0aW9uLg0KPj4gSWYgeW91IGhhdmUgcmVjZWl2ZWQg dGhpcyBlbWFpbCBpbiBlcnJvciwgcGxlYXNlIG5vdGlmeSB0aGUgc2VuZGVyIGFuZCBkZWxldGUg dGhpcyBtZXNzYWdlIGFuZCBpdHMgYXR0YWNobWVudHMuDQo+PiBBcyBlbWFpbHMgbWF5IGJlIGFs dGVyZWQsIE9yYW5nZSBpcyBub3QgbGlhYmxlIGZvciBtZXNzYWdlcyB0aGF0IGhhdmUgYmVlbiBt b2RpZmllZCwgY2hhbmdlZCBvciBmYWxzaWZpZWQuDQo+PiBUaGFuayB5b3UuDQo+Pg0KPg0KPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXw0KPg0KPiBDZSBtZXNzYWdlIGV0IHNlcyBwaWVjZXMgam9pbnRlcyBwZXV2ZW50 IGNvbnRlbmlyIGRlcyBpbmZvcm1hdGlvbnMgDQo+IGNvbmZpZGVudGllbGxlcyBvdSBwcml2aWxl Z2llZXMgZXQgbmUgZG9pdmVudCBkb25jIHBhcyBldHJlIGRpZmZ1c2VzLCANCj4gZXhwbG9pdGVz IG91IGNvcGllcyBzYW5zIGF1dG9yaXNhdGlvbi4gU2kgdm91cyBhdmV6IHJlY3UgY2UgbWVzc2Fn ZSANCj4gcGFyIGVycmV1ciwgdmV1aWxsZXogbGUgc2lnbmFsZXIgYSBsJ2V4cGVkaXRldXIgZXQg bGUgZGV0cnVpcmUgYWluc2kgcXVlIGxlcyBwaWVjZXMgam9pbnRlcy4gTGVzIG1lc3NhZ2VzIGVs ZWN0cm9uaXF1ZXMgZXRhbnQgc3VzY2VwdGlibGVzIGQnYWx0ZXJhdGlvbiwgT3JhbmdlIGRlY2xp bmUgdG91dGUgcmVzcG9uc2FiaWxpdGUgc2kgY2UgbWVzc2FnZSBhIGV0ZSBhbHRlcmUsIGRlZm9y bWUgb3UgZmFsc2lmaWUuIE1lcmNpLg0KPg0KPiBUaGlzIG1lc3NhZ2UgYW5kIGl0cyBhdHRhY2ht ZW50cyBtYXkgY29udGFpbiBjb25maWRlbnRpYWwgb3IgDQo+IHByaXZpbGVnZWQgaW5mb3JtYXRp b24gdGhhdCBtYXkgYmUgcHJvdGVjdGVkIGJ5IGxhdzsgdGhleSBzaG91bGQgbm90IGJlIGRpc3Ry aWJ1dGVkLCB1c2VkIG9yIGNvcGllZCB3aXRob3V0IGF1dGhvcmlzYXRpb24uDQo+IElmIHlvdSBo YXZlIHJlY2VpdmVkIHRoaXMgZW1haWwgaW4gZXJyb3IsIHBsZWFzZSBub3RpZnkgdGhlIHNlbmRl ciBhbmQgZGVsZXRlIHRoaXMgbWVzc2FnZSBhbmQgaXRzIGF0dGFjaG1lbnRzLg0KPiBBcyBlbWFp bHMgbWF5IGJlIGFsdGVyZWQsIE9yYW5nZSBpcyBub3QgbGlhYmxlIGZvciBtZXNzYWdlcyB0aGF0 IGhhdmUgYmVlbiBtb2RpZmllZCwgY2hhbmdlZCBvciBmYWxzaWZpZWQuDQo+IFRoYW5rIHlvdS4N Cj4NCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCgpDZSBtZXNzYWdlIGV0IHNlcyBwaWVjZXMgam9pbnRlcyBwZXV2ZW50IGNv bnRlbmlyIGRlcyBpbmZvcm1hdGlvbnMgY29uZmlkZW50aWVsbGVzIG91IHByaXZpbGVnaWVlcyBl dCBuZSBkb2l2ZW50IGRvbmMKcGFzIGV0cmUgZGlmZnVzZXMsIGV4cGxvaXRlcyBvdSBjb3BpZXMg c2FucyBhdXRvcmlzYXRpb24uIFNpIHZvdXMgYXZleiByZWN1IGNlIG1lc3NhZ2UgcGFyIGVycmV1 ciwgdmV1aWxsZXogbGUgc2lnbmFsZXIKYSBsJ2V4cGVkaXRldXIgZXQgbGUgZGV0cnVpcmUgYWlu c2kgcXVlIGxlcyBwaWVjZXMgam9pbnRlcy4gTGVzIG1lc3NhZ2VzIGVsZWN0cm9uaXF1ZXMgZXRh bnQgc3VzY2VwdGlibGVzIGQnYWx0ZXJhdGlvbiwKT3JhbmdlIGRlY2xpbmUgdG91dGUgcmVzcG9u c2FiaWxpdGUgc2kgY2UgbWVzc2FnZSBhIGV0ZSBhbHRlcmUsIGRlZm9ybWUgb3UgZmFsc2lmaWUu IE1lcmNpLgoKVGhpcyBtZXNzYWdlIGFuZCBpdHMgYXR0YWNobWVudHMgbWF5IGNvbnRhaW4gY29u ZmlkZW50aWFsIG9yIHByaXZpbGVnZWQgaW5mb3JtYXRpb24gdGhhdCBtYXkgYmUgcHJvdGVjdGVk IGJ5IGxhdzsKdGhleSBzaG91bGQgbm90IGJlIGRpc3RyaWJ1dGVkLCB1c2VkIG9yIGNvcGllZCB3 aXRob3V0IGF1dGhvcmlzYXRpb24uCklmIHlvdSBoYXZlIHJlY2VpdmVkIHRoaXMgZW1haWwgaW4g ZXJyb3IsIHBsZWFzZSBub3RpZnkgdGhlIHNlbmRlciBhbmQgZGVsZXRlIHRoaXMgbWVzc2FnZSBh bmQgaXRzIGF0dGFjaG1lbnRzLgpBcyBlbWFpbHMgbWF5IGJlIGFsdGVyZWQsIE9yYW5nZSBpcyBu b3QgbGlhYmxlIGZvciBtZXNzYWdlcyB0aGF0IGhhdmUgYmVlbiBtb2RpZmllZCwgY2hhbmdlZCBv ciBmYWxzaWZpZWQuClRoYW5rIHlvdS4KCg==