From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 51960A0524; Fri, 5 Feb 2021 10:26:13 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CB2AC40682; Fri, 5 Feb 2021 10:26:12 +0100 (CET) Received: from mailgw02.pantheon.sk (mailgw01.pantheon.sk [46.229.239.26]) by mails.dpdk.org (Postfix) with ESMTP id A031B4067B for ; Fri, 5 Feb 2021 10:26:11 +0100 (CET) Received: from mailgw02.pantheon.sk (localhost.localdomain [127.0.0.1]) by mailgw02.pantheon.sk (Proxmox) with ESMTP id 25AB1182317; Fri, 5 Feb 2021 10:26:11 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pantheon.tech; h=cc:cc:content-transfer-encoding:content-type:content-type :date:from:from:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=dkim; bh=Fd1p8v3xOMZ0DitbvOxl hkwU8cwKjOzvvH8LI573t4g=; b=DAPaYA86Jl+u9wKk+sErfir8X3r+Ps22udH8 iG0QRhQ3YYw3KKZtJwhQdVJGItH1kqsoIJ4qnMBJgBgWRn4HW9iecPRxTrAcHTTk +a/DYmvwafDxGLeToIWVfTSzxhSFSqRu6CZqxHGEuFlCTfWuD4csG/8oeesH495r q9JNm34071o5SulMRAUJxs3xZP66DThfpUiXVQP0c5y0Jzrb9sskymWb9HfGg2Y/ Cr5CgQktcRhgq0S9HR7mlfafK+gce7J4QBzFfPNYoacVuoq5JPu7/Y3ictl4mPLN u0lsnmG1mUsz3z8ZuPRVovihyKVKOqS+pLj2W7rH+MFTiMMbiw== From: =?utf-8?B?SnVyYWogTGlua2XFoQ==?= To: Bruce Richardson CC: "thomas@monjalon.net" , "Ruifeng.Wang@arm.com" , "Honnappa.Nagarahalli@arm.com" , "jerinjacobk@gmail.com" , "hemant.agrawal@nxp.com" , "ferruh.yigit@intel.com" , "aboyer@pensando.io" , "dev@dpdk.org" Thread-Topic: [RFC PATCH v2] build: kni cross-compilation support Thread-Index: AQHW+ttYtT5oSQUElka6l1ctHW9s5qpIMVQAgAEWDeA= Date: Fri, 5 Feb 2021 09:26:05 +0000 Message-ID: <0055021693274b0caf0b542bbefd0715@pantheon.tech> References: <1611916159-32158-1-git-send-email-juraj.linkes@pantheon.tech> <1612432301-14961-1-git-send-email-juraj.linkes@pantheon.tech> <20210204173352.GE1712@bricha3-MOBL.ger.corp.intel.com> In-Reply-To: <20210204173352.GE1712@bricha3-MOBL.ger.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.101.4.10] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [RFC PATCH v2] build: kni cross-compilation support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQnJ1Y2UgUmljaGFyZHNv biA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBGZWJydWFy eSA0LCAyMDIxIDY6MzQgUE0NCj4gVG86IEp1cmFqIExpbmtlxaEgPGp1cmFqLmxpbmtlc0BwYW50 aGVvbi50ZWNoPg0KPiBDYzogdGhvbWFzQG1vbmphbG9uLm5ldDsgUnVpZmVuZy5XYW5nQGFybS5j b207DQo+IEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb207IGplcmluamFjb2JrQGdtYWlsLmNv bTsNCj4gaGVtYW50LmFncmF3YWxAbnhwLmNvbTsgZmVycnVoLnlpZ2l0QGludGVsLmNvbTsgYWJv eWVyQHBlbnNhbmRvLmlvOw0KPiBkZXZAZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtSRkMgUEFU Q0ggdjJdIGJ1aWxkOiBrbmkgY3Jvc3MtY29tcGlsYXRpb24gc3VwcG9ydA0KPiANCj4gT24gVGh1 LCBGZWIgMDQsIDIwMjEgYXQgMTA6NTE6NDFBTSArMDEwMCwgSnVyYWogTGlua2XFoSB3cm90ZToN Cj4gPiBUaGUga25pIGxpbnV4IG1vZHVsZSBpcyB1c2luZyBhIGN1c3RvbSB0YXJnZXQgZm9yIGJ1 aWxkaW5nLCB3aGljaA0KPiA+IGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgYW55IGNyb3NzIGNv bXBpbGF0aW9uIGFyZ3VtZW50cy4gVGhlDQo+ID4gYXJndW1lbnRzIGluIHF1ZXN0aW9uIGFyZSBB UkNILCBDUk9TU19DT01QSUxFIChmb3IgZ2NjLCBjbGFuZykgYW5kIENDLA0KPiA+IExEIChmb3Ig Y2xhbmcpLiBHZXQgdGhvc2UgZnJvbSB0aGUgY3Jvc3MgZmlsZSBhbmQgcGFzcyB0aGVtIHRvIHRo ZQ0KPiA+IGN1c3RvbSB0YXJnZXQuDQo+ID4NCj4gPiBUaGUgdXNlciBzdXBwbGllZCBwYXRoIG1h eSBub3QgY29udGFpbiB0aGUgJ2J1aWxkJyBkaXJlY3RvcnksIHN1Y2ggYXMNCj4gPiB3aGVuIHVz aW5nIGNyb3NzLWNvbXBpbGVkIGhlYWRlcnMsIHNvIG9ubHkgYXBwZW5kIHRoYXQgaW4gdGhlIGRl ZmF1bHQNCj4gPiBjYXNlICh3aGVuIG5vIHBhdGggaXMgc3VwcGxpZWQgaW4gbmF0aXZlIGJ1aWxk cykgYW5kIHVzZSB0aGUNCj4gPiB1bm1vZGlmaWVkIHBhdGggZnJvbSB0aGUgdXNlciBvdGhlcndp c2UuIEFsc28gbW9kaWZ5IHRoZSBpbnN0YWxsIHBhdGgNCj4gYWNjb3JkaW5nbHkuDQo+ID4NCj4g PiBTaWduZWQtb2ZmLWJ5OiBKdXJhaiBMaW5rZcWhIDxqdXJhai5saW5rZXNAcGFudGhlb24udGVj aD4NCj4gDQo+IFNvbWUgY29tbWVudHMgaW5saW5lIGJlbG93Lg0KPiANCg0KVGhhbmtzLCB0aGVz ZSBhcmUgdmVyeSBoZWxwZnVsLg0KDQo+IC9CcnVjZQ0KPiANCj4gPiAtLS0NCj4gPiAga2VybmVs L2xpbnV4L2tuaS9tZXNvbi5idWlsZCB8ICA4ICsrKy0tLQ0KPiA+ICBrZXJuZWwvbGludXgvbWVz b24uYnVpbGQgICAgIHwgNTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tDQo+ ID4gIDIgZmlsZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkNCj4g Pg0KPiA+IGRpZmYgLS1naXQgYS9rZXJuZWwvbGludXgva25pL21lc29uLmJ1aWxkDQo+ID4gYi9r ZXJuZWwvbGludXgva25pL21lc29uLmJ1aWxkIGluZGV4IDA3ZTBjOWRhZTcuLmJiNzEyMzM1NGYg MTAwNjQ0DQo+ID4gLS0tIGEva2VybmVsL2xpbnV4L2tuaS9tZXNvbi5idWlsZA0KPiA+ICsrKyBi L2tlcm5lbC9saW51eC9rbmkvbWVzb24uYnVpbGQNCj4gPiBAQCAtMTMsNyArMTMsNyBAQCBrbmlf c291cmNlcyA9IGZpbGVzKCAgY3VzdG9tX3RhcmdldCgncnRlX2tuaScsDQo+ID4gIAlpbnB1dDog a25pX3NvdXJjZXMsDQo+ID4gIAlvdXRwdXQ6ICdydGVfa25pLmtvJywNCj4gPiAtCWNvbW1hbmQ6 IFsnbWFrZScsICctajQnLCAnLUMnLCBrZXJuZWxfZGlyICsgJy9idWlsZCcsDQo+ID4gKwljb21t YW5kOiBbJ21ha2UnLCAnLWo0JywgJy1DJywga2VybmVsX2RpciwNCj4gPiAgCQknTT0nICsgbWVz b24uY3VycmVudF9idWlsZF9kaXIoKSwNCj4gPiAgCQknc3JjPScgKyBtZXNvbi5jdXJyZW50X3Nv dXJjZV9kaXIoKSwNCj4gPiAgCQknTU9EVUxFX0NGTEFHUz0taW5jbHVkZSAnICsgbWVzb24uc291 cmNlX3Jvb3QoKSArDQo+ID4gJy9jb25maWcvcnRlX2NvbmZpZy5oJyArIEBAIC0yMSw4ICsyMSw4 IEBAIGN1c3RvbV90YXJnZXQoJ3J0ZV9rbmknLA0KPiA+ICAJCScgLUknICsgbWVzb24uc291cmNl X3Jvb3QoKSArICcvbGliL2xpYnJ0ZV9rbmknICsNCj4gPiAgCQknIC1JJyArIG1lc29uLmJ1aWxk X3Jvb3QoKSArDQo+ID4gIAkJJyAtSScgKyBtZXNvbi5jdXJyZW50X3NvdXJjZV9kaXIoKSwNCj4g PiAtCQknbW9kdWxlcyddLA0KPiA+ICsJCSdtb2R1bGVzJ10gKyBjcm9zc19hcmdzLA0KPiA+ICAJ ZGVwZW5kczoga25pX21rZmlsZSwNCj4gPiAtCWluc3RhbGw6IHRydWUsDQo+ID4gLQlpbnN0YWxs X2Rpcjoga2VybmVsX2RpciArICcvZXh0cmEvZHBkaycsDQo+ID4gKwlpbnN0YWxsOiBpbnN0YWxs LA0KPiA+ICsJaW5zdGFsbF9kaXI6IGluc3RhbGxfZGlyLA0KPiA+ICAJYnVpbGRfYnlfZGVmYXVs dDogZ2V0X29wdGlvbignZW5hYmxlX2ttb2RzJykpDQo+IA0KPiByYXRoZXIgdGhhbiAia2VybmVs X2RpciIgYW5kICJpbnN0YWxsX2RpciIgY2FuIHdlIHJlbmFtZSB0aGVzZSB0bw0KPiAia2VybmVs X2J1aWxkX2RpciIgYW5kICJrZXJuZWxfaW5zdGFsbF9kaXIiIGZvciBjbGFyaXR5Lg0KPiANCg0K TWFrZXMgc2Vuc2UsIEknbGwgZG8gdGhhdC4NCg0KPiA+IGRpZmYgLS1naXQgYS9rZXJuZWwvbGlu dXgvbWVzb24uYnVpbGQgYi9rZXJuZWwvbGludXgvbWVzb24uYnVpbGQgaW5kZXgNCj4gPiA1Yzg2 NGE0NjUzLi43NDA5NzI5OWJiIDEwMDY0NA0KPiA+IC0tLSBhL2tlcm5lbC9saW51eC9tZXNvbi5i dWlsZA0KPiA+ICsrKyBiL2tlcm5lbC9saW51eC9tZXNvbi5idWlsZA0KPiA+IEBAIC0zLDIwICsz LDY2IEBADQo+ID4NCj4gPiAgc3ViZGlycyA9IFsna25pJ10NCj4gPg0KPiA+ICtrZXJuZWxfdmVy c2lvbiA9IHJ1bl9jb21tYW5kKCd1bmFtZScsICctcicpLnN0ZG91dCgpLnN0cmlwKCkNCj4gDQo+ IFJlbmFtZSB0byAiaG9zdF9rZXJuZWxfdmVyc2lvbiIgYW5kIHByb2JhYmx5IHNob3VsZCBiZSBv bmx5IHF1ZXJpZWQgaW4gdGhlDQo+IG5hdGl2ZSBidWlsZCBjYXNlLg0KPiANCg0KSW4gbWVzb24g dmVybmljdWxhciB0aGUgaG9zdCBtYWNoaW5lIGlzIHdoZXJlIHRoZSBiaW5hcmllcyB3aWxsIGJl IHJ1bm5pbmcsIGkuZS4gd2hhdCB3ZSdyZSBidWlsZGluZyBmb3IsIHNvIHRoaXMgbWF5IGJlIGEg Yml0IGNvbmZ1c2luZyAtIHdlIGNvdWxkIG5hbWUgaXQgYnVpbGRfbWFjaGluZV9rZXJuZWxfdmVy c2lvbi4NCkluIGFueSBjYXNlLCBJJ2xsIG1vdmUgdG8gdGhlIHRoZSBuYXRpdmUgYnVpbGQgaWYg YnJhbmNoLiBCdXQgdGhlbiBtYXliZSB3ZSBkb24ndCBuZWVkIHRvIHJlbmFtZSBpdD8NCg0KPiA+ ICtjcm9zc19hcmdzID0gW10NCj4gPiAgIyBpZiB3ZSBhcmUgY3Jvc3MtY29tcGlsaW5nIHdlIG5l ZWQga2VybmVsX2RpciBzcGVjaWZpZWQgLWlmDQo+ID4gZ2V0X29wdGlvbigna2VybmVsX2Rpcicp ID09ICcnIGFuZCBtZXNvbi5pc19jcm9zc19idWlsZCgpDQo+ID4gLQllcnJvcignTmVlZCAia2Vy bmVsX2RpciIgb3B0aW9uIGZvciBrbW9kIGNvbXBpbGF0aW9uIHdoZW4gY3Jvc3MtDQo+IGNvbXBp bGluZycpDQo+ID4gK2lmIG1lc29uLmlzX2Nyb3NzX2J1aWxkKCkNCj4gPiArCWlmIGdldF9vcHRp b24oJ2tlcm5lbF9kaXInKSA9PSAnJw0KPiA+ICsJCWVycm9yKCdOZWVkICJrZXJuZWxfZGlyIiBv cHRpb24gZm9yIGttb2QgY29tcGlsYXRpb24gd2hlbg0KPiBjcm9zcy1jb21waWxpbmcnKQ0KPiA+ ICsJZWxzZQ0KPiA+ICsJCWluc3RhbGxfZGlyID0gJycNCj4gPiArCQlpbnN0YWxsID0gZmFsc2UN Cj4gDQo+IEkgdGhpbmsgdGhlc2Ugc2hvdWxkIGJlIGRlZmluZWQgYW5kIGluaXRpYWxpemVkIGZ1 cnRoZXIgdXAgdGhlIGZpbGUsIG91dHNpZGUgdGhlDQo+IGNvbmRpdGlvbmFsIGJsb2NrLg0KPiAN Cg0KT2ssIEknbGwgbWFrZSB0aGUgZGVmYXVsdCB0cnVlIGFuZCBzZXQgaXQgdG8gZmFsc2UgaW4g dGhlIGNyb3NzIGNvbXBpbGF0aW9uIGNhc2UuDQoNCj4gPiArCQljcm9zc19jb21waWxlciA9IGZp bmRfcHJvZ3JhbSgnYycpLnBhdGgoKQ0KPiA+ICsJCWlmIGNyb3NzX2NvbXBpbGVyLmVuZHN3aXRo KCdnY2MnKQ0KPiA+ICsJCQljcm9zc19wcmVmaXggPSBydW5fY29tbWFuZChbcHkzLCAnLWMnLCAn cHJpbnQoIicgKw0KPiBjcm9zc19jb21waWxlciArICciWzotM10pJ10pLnN0ZG91dCgpLnN0cmlw KCkNCj4gPiArCQllbGlmIGNyb3NzX2NvbXBpbGVyLmVuZHN3aXRoKCdjbGFuZycpDQo+ID4gKwkJ CWNyb3NzX3ByZWZpeCA9ICcnDQo+ID4gKwkJCWZvdW5kX3RhcmdldCA9IGZhbHNlDQo+ID4gKwkJ CSMgc2VhcmNoIGZvciAnLXRhcmdldCcgYW5kIHVzZSB0aGUgYXJnIHRoYXQgZm9sbG93cw0KPiA+ ICsJCQkjIChpLmUuIHRoZSB2YWx1ZSBvZiAnLXRhcmdldCcpIGFzIGNyb3NzX3ByZWZpeA0KPiA+ ICsJCQlmb3JlYWNoIGNyb3NzX2NfYXJnIDoNCj4gbWVzb24uZ2V0X2Nyb3NzX3Byb3BlcnR5KCdj X2FyZ3MnKQ0KPiA+ICsJCQkJaWYgZm91bmRfdGFyZ2V0IGFuZCBjcm9zc19wcmVmaXggPT0gJycN Cj4gPiArCQkJCQljcm9zc19wcmVmaXggPSBjcm9zc19jX2FyZw0KPiA+ICsJCQkJZW5kaWYNCj4g PiArCQkJCWlmIGNyb3NzX2NfYXJnID09ICctdGFyZ2V0Jw0KPiA+ICsJCQkJCWZvdW5kX3Rhcmdl dCA9IHRydWUNCj4gPiArCQkJCWVuZGlmDQo+ID4gKwkJCWVuZGZvcmVhY2gNCj4gPiArCQkJaWYg Y3Jvc3NfcHJlZml4ID09ICcnDQo+ID4gKwkJCQllcnJvcignRGlkblwndCBmaW5kIC10YXJnZXQg YW5kIGl0cyB2YWx1ZSBpbicgKw0KPiA+ICsJCQkJICAgICAgJyBjX2FyZ3MgaW4gaW5wdXQgY3Jv c3MtZmlsZS4nKQ0KPiA+ICsJCQllbmRpZg0KPiA+ICsJCQlsaW5rZXIgPSAnbGxkJw0KPiA+ICsJ CQlmb3JlYWNoIGNyb3NzX2NfbGlua19hcmcgOg0KPiBtZXNvbi5nZXRfY3Jvc3NfcHJvcGVydHko J2NfbGlua19hcmdzJykNCj4gPiArCQkJCWlmIGNyb3NzX2NfbGlua19hcmcuc3RhcnRzd2l0aCgn LWZ1c2UtbGQnKQ0KPiA+ICsJCQkJCWxpbmtlciA9IGNyb3NzX2NfbGlua19hcmcuc3BsaXQoJz0n KVsxXQ0KPiA+ICsJCQkJZW5kaWYNCj4gPiArCQkJZW5kZm9yZWFjaA0KPiA+ICsJCQljcm9zc19h cmdzICs9IFsnQ0M9QDBAJy5mb3JtYXQoY3Jvc3NfY29tcGlsZXIpLA0KPiAnTEQ9bGQuQDBAJy5m b3JtYXQobGlua2VyKV0NCj4gPiArCQllbHNlDQo+ID4gKwkJCWVycm9yKCdVbnN1cHBvcnRlZCBj cm9zcyBjb21waWxlcjoNCj4gQDBAJy5mb3JtYXQoY3Jvc3NfY29tcGlsZXIpKQ0KPiA+ICsJCWVu ZGlmDQo+ID4gKwkJaWYgaG9zdF9tYWNoaW5lLmNwdV9mYW1pbHkoKSA9PSAnYWFyY2g2NCcNCj4g PiArCQkJY3Jvc3NfYXJjaCA9ICdhcm02NCcNCj4gPiArCQllbHNlDQo+ID4gKwkJCWNyb3NzX2Fy Y2ggPSBidWlsZF9tYWNoaW5lLmNwdV9mYW1pbHkoKQ0KPiA+ICsJCWVuZGlmDQo+ID4gKwkJY3Jv c3NfYXJncyArPSBbJ0FSQ0g9QDBAJy5mb3JtYXQoY3Jvc3NfYXJjaCksDQo+ID4gKwkJCSdDUk9T U19DT01QSUxFPUAwQCcuZm9ybWF0KGNyb3NzX3ByZWZpeCldDQo+ID4gKwllbmRpZg0KPiA+ICtl bHNlDQo+ID4gKwlpbnN0YWxsX2RpciA9ICcvbGliL21vZHVsZXMvJyArIGtlcm5lbF92ZXJzaW9u ICsgJy9leHRyYS9kcGRrJw0KPiA+ICsJaW5zdGFsbCA9IHRydWUNCj4gPiAgZW5kaWYNCj4gPg0K PiANCj4gVGhlIGJsb2NrIGZvciBjcm9zcy1jb21waWxpbmcgaXMgZmFpcmx5IGxhcmdlIGFuZCBj b21wbGV4LCBzbyBJJ20gd29uZGVyaW5nIGhvdw0KPiB3ZSBjYW4gc2ltcGxpZnkgdGhpbmdzIGEg Yml0LiBJZiB3ZSBoYWQgbXVsdGlwbGUga2VybmVsIG1vZHVsZXMgSSdkIHN1Z2dlc3QNCj4gc3Bs aXR0aW5nIHRoaW5nIHVwIGludG8gYSBuYXRpdmUgYW5kIGNyb3NzLWJ1aWxkIHN1YmRpcmVjdG9y aWVzIHRvIGdldCB0aGUgYnVpbGQNCj4gaW5mbywgYnV0IHRoYXQgc2VlbXMgbGlrZSBvdmVya2ls bCBoZXJlLg0KDQpUaGlzIGNvbmZpZ3VyYXRpb24gd291bGQgYmUgdGhlIHNhbWUgZm9yIGFsbCBr ZXJuZWwgbW9kdWxlcyAocmlnaHQ/KSwgc28gSSdtIG5vdCBzdXJlIGhvdyB0aGUgbnVtYmVyIG9m IGtlcm5lbCBtb2R1bGVzIGlzIHJlbGV2YW50IGhlcmUuDQpJZiB3ZSBzcGxpdCBpdCwgd2hhdCB3 b3VsZCB0aGUgZGlyIHN0cnVjdHVyZSBsb29rIGxpa2U/IFNvbWV0aGluZyBsaWtlIHRoaXM/DQpr ZXJuZWwvbGludXgvDQrilJzilIDilIAgYWFyY2g2NA0K4pSc4pSA4pSAIG5hdGl2ZQ0K4pSc4pSA 4pSAIGtuaQ0K4pSc4pSA4pSAIDxvdGhlcl9tb2RzPg0KDQo+IEluc3RlYWQgSSB3b25kZXIgaWYg aXQgd291bGQgd29yayBiZXR0ZXIgdG8NCj4gaGFuZGxlIGFsbCB0aGUgbmF0aXZlIGNhc2UgaW5p dGlhbGx5IGluIGEgaG9wZWZ1bGx5IHNpbXBsZXIgImlmIGJsb2NrIiBhbmQgdGhlbiBkbw0KPiBz dWJkaXJfZG9uZSgpLCBsZWF2aW5nIGV2ZXJ5dGhpbmcgZWxzZSB0byBiZSB0aGUgY3Jvc3MtY29t cGlsYXRpb24gcmVjaXBlIGFuZA0KPiBzYXZpbmcgYXQgbGVhc3Qgb25lIGxldmVsIG9mIGluZGVu dGF0aW9uLg0KPiANCg0KV291bGRuJ3Qgd2UgbmVlZCB0byBkdXBsaWNhdGUgdGhlIGNvZGUgdGhh dCBkb2VzIG1ha2Uga2VybmVsdmVyc2lvbiBhbmQgc3ViZGlycyB0aGUgYWN0YXVsIG1vZHVsZXM/ DQoNCj4gQWxzbywgdGhyb3VnaG91dCB0aGUgYmxvY2ssIGFueXdoZXJlIHlvdSBoYXZlIGFuICJl cnJvcigpIiBjYWxsIHlvdSBjYW4gdXNlDQo+ICJlbmRpZiIgaW5zdGVhZCBvZiAiZWxzZSIgYW5k IHNhdmUgbW9yZSBpbmRlbnRhdGlvbiBzcGFjZS4NCj4gDQoNCkdvb2QgcG9pbnQsIEknbGwgbWFr ZSB0aGUgY2hhbmdlLg0KDQo+ID4gIGtlcm5lbF9kaXIgPSBnZXRfb3B0aW9uKCdrZXJuZWxfZGly JykgIGlmIGtlcm5lbF9kaXIgPT0gJycNCj4gPiAgCSMgdXNlIGRlZmF1bHQgcGF0aCBmb3IgbmF0 aXZlIGJ1aWxkcw0KPiA+IC0Ja2VybmVsX3ZlcnNpb24gPSBydW5fY29tbWFuZCgndW5hbWUnLCAn LXInKS5zdGRvdXQoKS5zdHJpcCgpDQo+ID4gLQlrZXJuZWxfZGlyID0gJy9saWIvbW9kdWxlcy8n ICsga2VybmVsX3ZlcnNpb24NCj4gPiArCWtlcm5lbF9kaXIgPSAnL2xpYi9tb2R1bGVzLycgKyBr ZXJuZWxfdmVyc2lvbiArICcvYnVpbGQnDQo+ID4gIGVuZGlmDQo+ID4NCj4gPiAgIyB0ZXN0IHJ1 bm5pbmcgbWFrZSBpbiBrZXJuZWwgZGlyZWN0b3J5LCB1c2luZyAibWFrZSBrZXJuZWx2ZXJzaW9u Ig0KPiA+IC1tYWtlX3JldHVybmNvZGUgPSBydW5fY29tbWFuZCgnbWFrZScsICctc0MnLCBrZXJu ZWxfZGlyICsgJy9idWlsZCcsDQo+ID4gK21ha2VfcmV0dXJuY29kZSA9IHJ1bl9jb21tYW5kKCdt YWtlJywgJy1zQycsIGtlcm5lbF9kaXIsDQo+ID4gIAkJJ2tlcm5lbHZlcnNpb24nKS5yZXR1cm5j b2RlKCkNCj4gPiAgaWYgbWFrZV9yZXR1cm5jb2RlICE9IDANCj4gPiAgCWVycm9yKCdDYW5ub3Qg Y29tcGlsZSBrZXJuZWwgbW9kdWxlcyBhcyByZXF1ZXN0ZWQgLSBhcmUga2VybmVsDQo+ID4gaGVh ZGVycyBpbnN0YWxsZWQ/JykNCj4gPiAtLQ0KPiA+IDIuMjAuMQ0KPiA+DQoNCg==