From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v6 12/20] osstest: introduce a FreeBSD build script Date: Mon, 24 Jul 2017 12:07:51 +0100 Message-ID: <20170724110759.2638-13-roger.pau@citrix.com> References: <20170724110759.2638-1-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dZbHa-0004ox-4Q for xen-devel@lists.xenproject.org; Mon, 24 Jul 2017 11:12:14 +0000 In-Reply-To: <20170724110759.2638-1-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Ian Jackson , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org SW4gb3JkZXIgdG8gZ2VuZXJhdGUgdGhlIEZyZWVCU0QgaW5zdGFsbGVyIGltYWdlIGFuZCB0aGUg aW5zdGFsbAptZWRpYS4KClRoZSBpbnN0YWxsIHNldHMgYXJlIHRoZSB2YW5pbGxhIG9uZXMgZ2Vu ZXJhdGVkIGJ5IHRoZSAnZnRwJyByZWxlYXNlCnRhcmdldC4gIFRoZSBpbnN0YWxsZXIgaW1hZ2Ug aXMgaGFuZGNyYWZ0ZWQgYmFzZWQgb24gdGhlIGZpbGVzeXN0ZW0KY3JlYXRlZCBieSB0aGUgJ2Jv b3Rvbmx5JyB0YXJnZXQsIHdoaWNoIGlzIHRoZW4gcG9wdWxhdGVkIHdpdGggdGhlIHNzaApob3N0 IGtleXMsIGFuZCBzZXR1cCBpbiBvcmRlciB0byB1c2UgdGhlIHNlcmlhbCBjb25zb2xlLiBUaGUg b3RoZXIKZGlmZmVyZW5jZSBmcm9tIHVwc3RyZWFtIEZyZWVCU0QgaW5zdGFsbGVyIGltYWdlcyBp cyB0aGF0IHRoZSBvbmUKYnVpbHQgYnkgb3NzdGVzdCB1c2VzIGEgcmFtZGlzayBpbnN0ZWFkIG9m IHJlbHlpbmcgb24gdGhlIGluc3RhbGxlcgptZWRpYSB0byBiZSBzb21laG93IGF0dGFjaGVkLCBl aXRoZXIgb24gYSBDRCBvciBVU0IgZHJpdmUuIFRoaXMgaXMKcmVxdWlyZWQgaW4gb3JkZXIgdG8g Ym9vdCB0aGUgaW1hZ2UgZnJvbSBweGVsaW51eCAod2hlcmUgbm8gQ0Qgb3IgVVNCCmlzIGFjdHVh bGx5IGF0dGFjaGVkIHRvIHRoZSBob3N0LCBhbmQgZXZlcnl0aGluZyBpcyBmZXRjaGVkIGZyb20K dGZ0cCkuCgpEdWUgdG8gdGhlIG5hdHVyZSBvZiB0aGUgRnJlZUJTRCBidWlsZCwgdGhlIG91dHB1 dHMgYXJlIGRpZmZlcmVudCBmcm9tCndoYXQgb3NzdGVzdCBleHBlY3RzIGZyb20gYSBidWlsZGpv YiwgbW9yZSBzcGVjaWZpY2FsbHkKcGF0aF9mcmVlYnNkZGlzdCBwb2ludHMgdG8gYSBmb2xkZXIg dGhhdCBjb250YWlucyB0aGUgc2V2ZXJhbCBvdXRwdXRzCmZvcm0gdGhpcyBidWlsZGpvYi4KClNp Z25lZC1vZmYtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpBY2tl ZC1ieTogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+Ci0tLQpDaGFuZ2Vz IHNpbmNlIHY0OgogLSBSZW1vdmUgc29tZSB1c2VsZXNzIGNvbW1lbnRzLgogLSBVc2UgcXcoZ2l0 KSBpbnN0ZWFkIG9mICdnaXQnLgogLSBSZXBsYWNlIHVuaWNvZGUgbm9uYnJlYWtpbmcgc3BhY2Uu CiAtIFJlbW92ZSB0cmFpbCAnLCcuCiAtIEltcHJvdmUgdGhlIHdheSB0byBmZXRjaCB0aGUgdmVy c2lvbiBudW1iZXIuCgpDaGFuZ2VzIHNpbmNlIHYzOgogLSBJbnRyb2R1Y2UgdHdvIGhlbHBlcnMg dG8gcGVyZm9ybSB0aGUgYnVpbGQgcHJvY2Vzcy4KIC0gSW5zdGFsbCBwYWNrYWdlcyB1c2luZyB0 YXJnZXRfaW5zdGFsbF9wYWNrYWdlcy4KCkNoYW5nZXMgc2luY2UgdjI6CiAtIEluY3JlYXNlIGJ1 aWxkIHRhcmdldCB0aW1lb3V0cy4KIC0gVXNlIHN5c3JjIGluc3RlYWQgZWNobyB0byBzZXQgcmMu Y29uZiBvcHRpb25zLgoKQ2hhbmdlcyBzaW5jZSB2MToKIC0gUmVtb3ZlIHRoZSB0cy1idWlsZC1j aGVjayBGcmVlQlNEIGhhY2suCiAtIFVzZSBwa2ctc3RhdGljIGluc3RlYWQgb2YgcGtnLgogLSBJ bnRyb2R1Y2UgYnVpbGRjbWRfc3RhbXBlZF9sb2dnZWRfcm9vdCBhbmQgdGFyZ2V0X2NtZF9idWls ZF9yb290LgogLSBVc2UgdGFyZ2V0X2NtZF9idWlsZF9yb290IGFuZCBidWlsZGNtZF9zdGFtcGVk X2xvZ2dlZF9yb290IGluIHRoZQogICB0cy1mcmVlYnNkLWJ1aWxkIHNjcmlwdC4KIC0gRml4IHRo ZSBzY3JpcHQgc25pcHBldHMgdG8gdXNlIDw8RU5ELjw8J0VORCcgaW4gb3JkZXIgdG8gYXZvaWQK ICAgZXNjYXBpbmcgdGhlIHNoZWxsIHZhcmlhYmxlcy4KIC0gU2V0IHBhdGhfZnJlZWJzZGRpc3Qg cnVudmFyIHRvIHBvaW50IHRvIHRoZSBmb2xkZXIgd2hlcmUgdGhlIGJ1aWxkCiAgIGZpbGVzIGFy ZSBzdGFzaGVkLgogLSBBZGQgYSBjb21tZW50IGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUgZGVzY3Jp YmluZyB3aGF0IHJ1bnZhcnMgYXJlCiAgIGNvbnN1bWVkL3Byb2R1Y2VkIGJ5IHRoZSBidWlsZCBz Y3JpcHQuCi0tLQogdHMtZnJlZWJzZC1idWlsZCB8IDIzOSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMjM5IGlu c2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDc1NSB0cy1mcmVlYnNkLWJ1aWxkCgpkaWZmIC0t Z2l0IGEvdHMtZnJlZWJzZC1idWlsZCBiL3RzLWZyZWVic2QtYnVpbGQKbmV3IGZpbGUgbW9kZSAx MDA3NTUKaW5kZXggMDAwMDAwMDAuLjAwODg1NjM2Ci0tLSAvZGV2L251bGwKKysrIGIvdHMtZnJl ZWJzZC1idWlsZApAQCAtMCwwICsxLDIzOSBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisjIFRoaXMg aXMgcGFydCBvZiAib3NzdGVzdCIsIGFuIGF1dG9tYXRlZCB0ZXN0aW5nIGZyYW1ld29yayBmb3Ig WGVuLgorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQ2l0cml4IEluYy4KKyMKKyMgVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBBZmZl cm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKyMgQ29uc3VtZXMgdGhlIGZvbGxvd2luZyBpbnB1 dCBydW52YXJzOgorIworIyByZXZpc2lvbl9mcmVlYnNkOiBGcmVlQlNEIGNvbW1pdCBJRCB0byBn ZW5lcmF0ZSB0aGUgaW5zdGFsbCBtZWRpYSBmcm9tLgorIyB0cmVlX2ZyZWVic2Q6IEZyZWVCU0Qg Z2l0IHRyZWUgdG8gZmV0Y2ggdGhlIHNvdXJjZSBjb2RlIGZyb20uCisjCisjIFByb2R1Y2VzIHRo ZSBmb2xsb3dpbmcgb3V0cHV0OgorIworIyBDb21wcmVzc2VkIGluc3RhbGwgc2V0czoga2VybmVs LnR4eiwgYmFzZS50eHoKKyMgQ29tcHJlc3NlZCBkZWJ1ZyBzeW1ib2xzIGZvciB0aGUga2VybmVs OiBrZXJuZWwtZGJnLnR4egorIyBNYW5pZmVzdCBmaWxlIChjaGVja3Vtcyk6IE1BTklGRVNUCisj IEluc3RhbGxlciBpbWFnZTogaW5zdGFsbC5pbWcKKyMKKyMgU2V0cyB0aGUgZm9sbG93aW5nIHJ1 bnZhcjoKKyMKKyMgcGF0aF9mcmVlYnNkZGlzdDogcG9pbnRzIHRvIHRoZSBmb2xkZXIgd2hlcmUg dGhlIGFib3ZlIGZpbGVzIGFyZSBzdG9yZWQuCisjIGZyZWVic2RfYnVpbGR2ZXJzaW9uOiB2ZXJz aW9uIG9mIEZyZWVCU0QgYnVpbHQuCisKK3VzZSBzdHJpY3QgcXcodmFycyk7Cit1c2UgREJJOwor dXNlIFBPU0lYOworCit1bnNoaWZ0IEBJTkMsIHF3KC4pOwordXNlIE9zc3Rlc3Q7Cit1c2UgT3Nz dGVzdDo6VGVzdFN1cHBvcnQ7Cit1c2UgT3NzdGVzdDo6QnVpbGRTdXBwb3J0OworCit0c3JlYWRj b25maWcoKTsKKworc2VsZWN0YnVpbGRob3N0KFxAQVJHVik7CitidWlsZGRpcnNwcm9wcygpOwor CitzdWIgaW5zdGFsbF9kZXBzICgpIHsKKyAgICB0YXJnZXRfaW5zdGFsbF9wYWNrYWdlcygkaG8s IHF3KGdpdCkpOworfQorCitzdWIgY2hlY2tvdXQgKCkgeworICAgIHByZXBidWlsZGRpcnMoKTsK KworICAgICMgUmVtb3ZlIHRoZSBkaXJlY3RvcnkgYXMgcm9vdCwgdGhlcmUgbWlnaHQgYmUgZmls ZXMgb3duZWQgYnkgcm9vdAorICAgIHRhcmdldF9jbWRfYnVpbGRfcm9vdCgkaG8sIDMwMCwgJGJ1 aWxkZGlyLCA8PCdFTkQnKTsKKyMgY2hmbGFncyB3aWxsIHJldHVybiBlcnJvciBpZiB0aGUgZGly ZWN0b3J5IGRvZXNuJ3QgZXhpc3QKK2NoZmxhZ3MgLWZSIG5vc2NoZyBmcmVlYnNkIHx8IHRydWUK K3JtIC1yZiBmcmVlYnNkCitFTkQKKworICAgIGxvZ20oIkNoZWNrb3V0IHRoZSBGcmVlQlNEIHNv dXJjZSB0cmVlIik7CisgICAgYnVpbGRfY2xvbmUoJGhvLCAnZnJlZWJzZCcsICRidWlsZGRpciwg J2ZyZWVic2QnKTsKK30KKworc3ViIGJ1aWxkX3RhcmdldCgkJCQpIHsKKyAgICBteSAoJHRhcmdl dCwgJHByZWZpeCwgJHRpbWUpID0gQF87CisKKyAgICBidWlsZGNtZF9zdGFtcGVkX2xvZ2dlZCgk dGltZSwgJ2ZyZWVic2QnLCAkdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICRw cmVmaXgsIDw8RU5ELCAnJyk7CittYWtlICRtYWtlZmxhZ3MgJHRhcmdldAorRU5ECit9CisKK3N1 YiBidWlsZF9yZWxlYXNlKCQkJCkgeworICAgIG15ICgkdGFyZ2V0LCAkcHJlZml4LCAkdGltZSkg PSBAXzsKKworICAgIGJ1aWxkY21kX3N0YW1wZWRfbG9nZ2VkX3Jvb3QoJHRpbWUsICdmcmVlYnNk JywgInJlbGVhc2UtJHRhcmdldCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk cHJlZml4LCA8PEVORCwgJycpOworbWFrZSAtQyByZWxlYXNlICR0YXJnZXQKK0VORAorfQorCitz dWIgYnVpbGQgKCkgeworICAgIG15ICRhdXRoa2V5cyA9IGF1dGhvcml6ZWRfa2V5cygpOworICAg IG15ICR0YXJnZXQgPSAiYm9vdG9ubHkiOworICAgIG15ICRwcmVmaXggPSA8PEVORDsKK2V4cG9y dCBNQUtFT0JKRElSUFJFRklYPSRidWlsZGRpci9vYmoKK2V4cG9ydCBUQVJHRVQ9JHJ7YXJjaH0K K0VORAorCisgICAgIyBCdWlsZCBwcm9jZXNzIGFzIGRvY3VtZW50ZWQgaW4gdGhlIGhhbmRib29r OgorICAgICMgaHR0cHM6Ly93d3cuZnJlZWJzZC5vcmcvZG9jL2hhbmRib29rL3VwZGF0aW5nLXNy Yy5odG1sCisKKyAgICBsb2dtKCJDbGVhbmluZyB1cCBwcmV2aW91cyBidWlsZHMiKTsKKyAgICBi dWlsZF90YXJnZXQoJ2NsZWFud29ybGQnLCAkcHJlZml4LCAzMDApOworCisgICAgbG9nbSgiQnVp bGRpbmcgd29ybGQiKTsKKyAgICBidWlsZF90YXJnZXQoJ2J1aWxkd29ybGQnLCAkcHJlZml4LCAy NTIwMCk7CisKKyAgICBsb2dtKCJCdWlsZGluZyBrZXJuZWwiKTsKKyAgICBidWlsZF90YXJnZXQo J2J1aWxka2VybmVsJywgJHByZWZpeCwgMzYwMCk7CisKKyAgICAjIE5COiB0aGUgc3RlcHMgYmVs b3cgbmVlZCB0byBiZSBkb25lIGFzIHJvb3Qgb3IgdGhlIHBlcm1pc3Npb25zCisgICAgIyBvZiB0 aGUgZmlsZXMgd29uJ3QgYmUgcHJvcGVybHkgc2V0IChhbmQgdGhlIHRhcmdldCB3aWxsIGZhaWwp LgorICAgIGxvZ20oIkNyZWF0aW5nIHRoZSBpbnN0YWxsIHNldHMiKTsKKyAgICBidWlsZF9yZWxl YXNlKCdmdHAnLCAkcHJlZml4LCAzNjAwKTsKKworICAgIGxvZ20oIlBvcHVsYXRpbmcgdGhlIGlu c3RhbGxlciBpbWFnZSIpOworICAgIGJ1aWxkX3JlbGVhc2UoJHRhcmdldCwgJHByZWZpeCwgMzYw MCk7CisKKyAgICBsb2dtKCJQbGFjaW5nIHNzaCBob3N0IGtleXMiKTsKKyAgICBmb3JlYWNoIG15 ICRmaWxlICg8JGN7T3ZlcmxheUxvY2FsfS9ldGMvc3NoL3NzaF9ob3N0Xypfa2V5Kj4pIHsKKyAg ICAgICAgdGFyZ2V0X3B1dGZpbGVfcm9vdCgkaG8sIDMwLCAkZmlsZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiJGJ1aWxkZGlyL2ZyZWVic2QvcmVsZWFzZS8kdGFyZ2V0L2V0Yy9zc2gv Iik7CisgICAgfQorCisgICAgbG9nbSgiQ29uZmlndXJpbmcgdGhlIGluc3RhbGxlciBpbWFnZSIp OworICAgIHRhcmdldF9jbWRfYnVpbGRfcm9vdCgkaG8sIDMwLCAkYnVpbGRkaXIsIDw8RU5ELjw8 J0VORCcpOworYXV0aGtleXM9IiRhdXRoa2V5cyIKK2JhdWRzPSIkY3tCYXVkfSIKK2NkIGZyZWVi c2QvcmVsZWFzZS8kdGFyZ2V0CitFTkQKK3N5c3JjIC1mIGV0Yy9yYy5jb25mIHNzaGRfZW5hYmxl PVlFUworCitlY2hvICdQZXJtaXRSb290TG9naW4geWVzJyA+PiBldGMvc3NoL3NzaGRfY29uZmln Citta2RpciAtcCByb290Ly5zc2gKK2NhdCA8PCBFTkRLRVlTID4gcm9vdC8uc3NoL2F1dGhvcml6 ZWRfa2V5cworJGF1dGhrZXlzCitFTkRLRVlTCisKK2Nob3duIHJvb3Q6d2hlZWwgZXRjL3NzaC9z c2hfaG9zdF8qX2tleSoKK2NobW9kIDA2MDAgZXRjL3NzaC9zc2hfaG9zdF8qX2tleQorY2htb2Qg MDY0NCBldGMvc3NoL3NzaF9ob3N0Xypfa2V5LnB1YgorCisjIFNldHVwIHNlcmlhbCBjb25zb2xl IG91dHB1dCBmb3Igc3RhZ2UxCitwcmludGYgIiVzIiAiLWggLVMkYmF1ZHMiID4+IGJvb3QuY29u ZmlnCitjYXQgPDwgRU5EQk9PVCA+PiBib290L2xvYWRlci5jb25mCisjIFNlcmlhbCBjb25zb2xl IGNvbmZpZ3VyYXRpb24KK2Jvb3Rfc2VyaWFsPSJZRVMiCitjb21jb25zb2xlX3NwZWVkPSIkYmF1 ZHMiCitjb25zb2xlPSJjb21jb25zb2xlIgorYm9vdF92ZXJib3NlPSJZRVMiCitiZWFzdGllX2Rp c2FibGU9IllFUyIKKworIyBtZnMgYm9vdCBwYXJhbWV0ZXJzCittZnNfbG9hZD0iWUVTIgorbWZz X3R5cGU9Im1mc19yb290IgorbWZzX25hbWU9Ii9tZnNyb290IgordmZzLnJvb3QubW91bnRmcm9t PSJ1ZnM6L2Rldi91ZnMvRnJlZUJTRF9JbnN0YWxsIgorRU5EQk9PVAorCitzeXNyYyAtZiBldGMv cmMuY29uZiBpZmNvbmZpZ19ERUZBVUxUPURIQ1AKKworI8KgUmVtb3ZlIHRoZSBsb2NhbCBzY3Jp cHQgdGhhdCBsYXVuY2hlcyB0aGUgaW5zdGFsbGVyIGJ5IGRlZmF1bHQKK3JtIC1yZiBldGMvcmMu bG9jYWwKKworIyBDcmVhdGUgYSB0ZW1wb3JhcnkgZnN0YWIgd2l0aCB0aGUgcm9vdCBkaXIKK2Vj aG8gJy9kZXYvdWZzL0ZyZWVCU0RfSW5zdGFsbCAvIHVmcyBydyAxIDEnID4gZXRjL2ZzdGFiCisK KyMgUmVtb3ZlIHRoZSBsaW5rZWQgcmVzb2x2LmNvbmYKK3JtIC1yZiBldGMvcmVzb2x2LmNvbmYK K0VORAorCisgICAgbG9nbSgiQ3JlYXRlIHRoZSBpbnN0YWxsZXIiKTsKKyAgICB0YXJnZXRfY21k X2J1aWxkX3Jvb3QoJGhvLCA5MDAsICRidWlsZGRpciwgPDxFTkQuPDwnRU5EJyk7Cit0YXJnZXQ9 ImZyZWVic2QvcmVsZWFzZS8kdGFyZ2V0Igorb3V0cHV0PSJpbnN0YWxsLmltZyIKK0VORAorbWtk aXIgLXAgJG91dHB1dC50bXAKKworIyBEbyBzb21lIHBydW5pbmcKK3JtIC1yZiAkdGFyZ2V0L3Vz ci9zaGFyZS9tYW4KK3JtIC1yZiAkdGFyZ2V0L3Vzci9zaGFyZS9leGFtcGxlcworcm0gLXJmICR0 YXJnZXQvdXNyL3NoYXJlL2RvYworcm0gLXJmICR0YXJnZXQvdXNyL3NoYXJlL2R0cmFjZQorCisj IENyZWF0ZSBhIG1mcyByb290IGltYWdlCittYWtlZnMgLWIgMTAlIC1CIGxpdHRsZSAtbyBsYWJl bD1GcmVlQlNEX0luc3RhbGwgJG91dHB1dC50bXAvbWZzcm9vdCAkdGFyZ2V0CitnemlwICRvdXRw dXQudG1wL21mc3Jvb3QKKworIyBDb3B5IGJvb3QgdG8gdGhlIHN0YWdpbmcgZGlyCitjcCAtciAk dGFyZ2V0L2Jvb3QgJG91dHB1dC50bXAvCitjcCAkdGFyZ2V0L2Jvb3QuY29uZmlnICRvdXRwdXQu dG1wLworCisjIFRoZSBsb2FkZXIgZG9lc24ndCBuZWVkIGFueSBtb2R1bGVzIGluIG9yZGVyIHRv IGJvb3QgaW50byB0aGUgbWZzcm9vdC4KKyMgVGhlIHJlc3Qgb2YgdGhlIG1vZHVsZXMgY2FuIGJl IGxvYWRlZCBmcm9tIHRoZSBtZnMgcm9vdCBpdHNlbGYuCitybSAtZiAkb3V0cHV0LnRtcC9ib290 L2tlcm5lbC8qLmtvCisKK2d6aXAgJG91dHB1dC50bXAvYm9vdC9rZXJuZWwva2VybmVsCisKK21h a2VmcyAtQiBsaXR0bGUgJG91dHB1dC5wYXJ0ICRvdXRwdXQudG1wCisKK21raW1nIC1zIGdwdCAt YiAkdGFyZ2V0L2Jvb3QvcG1iciAtcCBlZmk6PSR0YXJnZXQvYm9vdC9ib290MS5lZmlmYXQgXAor ICAgIC1wIGZyZWVic2QtYm9vdDo9JHRhcmdldC9ib290L2dwdGJvb3QgLXAgZnJlZWJzZC11ZnM6 PSRvdXRwdXQucGFydCBcCisgICAgLXAgZnJlZWJzZC1zd2FwOjoxTSAtbyAkb3V0cHV0CisKK3Jt ICRvdXRwdXQucGFydAorcm0gLXJmICRvdXRwdXQudG1wCitFTkQKK30KKworc3ViIHN0YXNoICgp IHsKKyAgICBteSBAc2V0cyA9IHF3KE1BTklGRVNUIGJhc2UudHh6IGtlcm5lbC50eHopOworICAg IG15IEBzeW1ib2xzID0gcXcoa2VybmVsLWRiZy50eHopOworCisgICAgbG9nbSgiU3Rhc2hpbmcg RnJlZUJTRCBidWlsZCBvdXRwdXQiKTsKKyAgICBmb3JlYWNoIG15ICRzZXQgKEBzZXRzKSB7Cisg ICAgICAgIGJ1aWx0X3N0YXNoX2ZpbGUoJGhvLCAkYnVpbGRkaXIsICRzZXQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgImZyZWVic2QvcmVsZWFzZS9mdHAvJHNldCIsIDApOworICAgIH0KKyAg ICBmb3JlYWNoIG15ICRzeW1ib2wgKEBzeW1ib2xzKSB7CisgICAgICAgIGJ1aWx0X3N0YXNoX2Rl YnVnZmlsZSgkaG8sICRidWlsZGRpciwgJHN5bWJvbCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJmcmVlYnNkL3JlbGVhc2UvZnRwLyRzeW1ib2wiLCAwKTsKKyAgICB9CisgICAgYnVp bHRfc3Rhc2hfZmlsZSgkaG8sICRidWlsZGRpciwgImluc3RhbGwuaW1nIiwgImluc3RhbGwuaW1n IiwgMCk7CisKKyAgICBteSAkc3JjdmVyc2lvbiA9IHRhcmdldF9jbWRfb3V0cHV0X3Jvb3QoJGhv LCA8PEVORCwgMzApOworc2V0IC1lCitjZCAkYnVpbGRkaXIvZnJlZWJzZAorZXZhbCBgbWFrZSBi dWlsZGVudnZhcnNgCit0ZXN0IC1uICJcJFNSQ1JFTERBVEUiCitleHByICJcJFNSQ1JFTERBVEUi IC8gMTAwMDAwCitFTkQKKyAgICBzdG9yZV9ydW52YXIoImZyZWVic2RfYnVpbGR2ZXJzaW9uIiwg IiRzcmN2ZXJzaW9uIik7CisKKyAgICAjIFNldCBwYXRoX2ZyZWVic2RkaXN0IHRvIHBvaW50IHRv IHRoZSBidWlsZCBvdXRwdXQgZm9sZGVyCisgICAgIyBpbiBvcmRlciB0byBtYWtlIHRzLWJ1aWxk LWNoZWNrIGhhcHB5LgorICAgIHN0b3JlX3J1bnZhcigicGF0aF9mcmVlYnNkZGlzdCIsICJidWls ZC8iKTsKK30KKworaW5zdGFsbF9kZXBzKCk7CitjaGVja291dCgpOworYnVpbGQoKTsKK3N0YXNo KCk7CisKK2xvZ20oIkZyZWVCU0QgYnVpbGQgc3VjY2Vzc2Z1bCIpOworCi0tIAoyLjExLjAgKEFw cGxlIEdpdC04MSkKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBz Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK