From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: References: <20180306124315.30208-1-tvrtko.ursulin@linux.intel.com> <20180306124315.30208-10-tvrtko.ursulin@linux.intel.com> From: Lionel Landwerlin Message-ID: <5c11b428-d2b1-64e4-e040-80ee30b52636@intel.com> Date: Wed, 18 Apr 2018 10:02:49 -0700 MIME-Version: 1.0 In-Reply-To: <20180306124315.30208-10-tvrtko.ursulin@linux.intel.com> Content-Language: en-US Subject: Re: [igt-dev] [Intel-gfx] [PATCH i-g-t 09/11] trace.pl: Add support for colouring context execution List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Tvrtko Ursulin , igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org List-ID: T25lIHN1Z2dlc3Rpb24gYmVsb3csIG90aGVyd2lzZSA6CgpSZXZpZXdlZC1ieTogTGlvbmVsIExh bmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29tPgoKT24gMDYvMDMvMTggMDQ6 NDMsIFR2cnRrbyBVcnN1bGluIHdyb3RlOgo+IEZyb206IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28u dXJzdWxpbkBpbnRlbC5jb20+Cj4KPiBBZGQgdGhlIGNvbW1hbmQgbGluZSBzd2l0Y2ggd2hpY2gg dXNlcyBkaWZmZXJlbnQgY29sb3VycyBmb3IgZGlmZmVyZW50Cj4gY29udGV4dCBleGVjdXRpb24g Ym94ZXMuCj4KPiBTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5A aW50ZWwuY29tPgo+IENjOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25AaW50ZWwuY29t Pgo+IC0tLQo+ICAgc2NyaXB0cy90cmFjZS5wbCB8IDQxICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tCj4gICAxIGZpbGUgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9zY3JpcHRzL3RyYWNlLnBsIGIvc2NyaXB0 cy90cmFjZS5wbAo+IGluZGV4IGU3Y2UyNzNlZjI2YS4uZmY2MWRlYTA3NjhkIDEwMDc1NQo+IC0t LSBhL3NjcmlwdHMvdHJhY2UucGwKPiArKysgYi9zY3JpcHRzL3RyYWNlLnBsCj4gQEAgLTQwLDYg KzQwLDcgQEAgbXkgJHRyYWNlID0gMDsKPiAgIG15ICRhdmdfZGVsYXlfc3RhdHMgPSAwOwo+ICAg bXkgJHNxdWFzaF9jb250ZXh0X2lkID0gMDsKPiAgIG15ICRncHVfdGltZWxpbmUgPSAwOwo+ICtt eSAkY29sb3VyX2NvbnRleHRzID0gMDsKPiAgIAo+ICAgbXkgQGFyZ3M7Cj4gICAKPiBAQCAtMTEw LDYgKzExMSw4IEBAIFVzYWdlOgo+ICAgICAgICAgLS1zcXVhc2gtY3R4LWlkCQkJU3F1YXNoIGNv bnRleHQgaWQgYnkgc3Vic3RyYWN0aW5nIGVuZ2luZQo+ICAgCQkJCQlpZCBmcm9tIGN0eCBpZC4K PiAgICAgICAgIC0tZ3B1LXRpbWVsaW5lCQkJRHJhdyBvdmVyYWxsIEdQVSBidXN5IHRpbWVsaW5l Lgo+ICsgICAgICAtLWNvbG91ci1jb250ZXh0cyAvIC1jCQlVc2UgZGlmZmVyZW50IGNvbG91cnMg Zm9yIGRpZmZlcmVudAo+ICsJCQkJCWNvbnRleHQgZXhlY3V0aW9uIGJveGVzLgo+ICAgRU5ESEVM UAo+ICAgCj4gICAJCWV4aXQgMDsKPiBAQCAtMjc5LDYgKzI4MiwyMCBAQCBzdWIgYXJnX3NraXBf Ym94Cj4gICAJcmV0dXJuIEBfOwo+ICAgfQo+ICAgCj4gK3N1YiBhcmdfY29sb3VyX2NvbnRleHRz Cj4gK3sKPiArCXJldHVybiB1bmxlc3Mgc2NhbGFyKEBfKTsKPiArCj4gKwlpZiAoJF9bMF0gZXEg Jy0tY29sb3VyLWNvbnRleHRzJyBvcgo+ICsJICAgICRfWzBdIGVxICctLWNvbG9yLWNvbnRleHRz JyBvcgo+ICsJICAgICRfWzBdIGVxICctYycpIHsKPiArCQlzaGlmdCBAXzsKPiArCQkkY29sb3Vy X2NvbnRleHRzID0gMTsKPiArCX0KPiArCj4gKwlyZXR1cm4gQF87Cj4gK30KPiArCj4gICBAYXJn cyA9IEBBUkdWOwo+ICAgd2hpbGUgKEBhcmdzKSB7Cj4gICAJbXkgJGxlZnQgPSBzY2FsYXIoQGFy Z3MpOwo+IEBAIC0yOTQsNiArMzExLDcgQEAgd2hpbGUgKEBhcmdzKSB7Cj4gICAJQGFyZ3MgPSBh cmdfc3BsaXRfcmVxdWVzdHMoQGFyZ3MpOwo+ICAgCUBhcmdzID0gYXJnX2lnbm9yZV9yaW5nKEBh cmdzKTsKPiAgIAlAYXJncyA9IGFyZ19za2lwX2JveChAYXJncyk7Cj4gKwlAYXJncyA9IGFyZ19j b2xvdXJfY29udGV4dHMoQGFyZ3MpOwo+ICAgCj4gICAJbGFzdCBpZiAkbGVmdCA9PSBzY2FsYXIo QGFyZ3MpOwo+ICAgfQo+IEBAIC01ODEsNiArNTk5LDcgQEAgZm9yZWFjaCBteSAka2V5IChAc29y dGVkX2tleXMpIHsKPiAgIAo+ICAgbXkgJGxhc3RfdHMgPSAwOwo+ICAgbXkgJGZpcnN0X3RzOwo+ ICtteSAkbWluX2N0eDsKPiAgIAo+ICAgZm9yZWFjaCBteSAka2V5IChAc29ydGVkX2tleXMpIHsK PiAgIAlteSAkcmluZyA9ICRkYnska2V5fS0+eydyaW5nJ307Cj4gQEAgLTU5MCw2ICs2MDksOCBA QCBmb3JlYWNoIG15ICRrZXkgKEBzb3J0ZWRfa2V5cykgewo+ICAgCj4gICAJJGZpcnN0X3RzID0g JGRieyRrZXl9LT57J3F1ZXVlJ30gaWYgbm90IGRlZmluZWQgJGZpcnN0X3RzIG9yICRkYnska2V5 fS0+eydxdWV1ZSd9IDwgJGZpcnN0X3RzOwo+ICAgCSRsYXN0X3RzID0gJGVuZCBpZiAkZW5kID4g JGxhc3RfdHM7Cj4gKwkkbWluX2N0eCA9ICRkYnska2V5fS0+eydjdHgnfSBpZiBub3QgZGVmaW5l ZCAkbWluX2N0eCBvcgo+ICsJCQkJCSAkZGJ7JGtleX0tPnsnY3R4J30gPCAkbWluX2N0eDsKPiAg IAo+ICAgCSRkYnska2V5fS0+eydjb250ZXh0LWNvbXBsZXRlLWRlbGF5J30gPSAkZW5kIC0gJG5v dGlmeTsKPiAgIAkkZGJ7JGtleX0tPnsnZXhlY3V0ZS1kZWxheSd9ID0gJHN0YXJ0IC0gJGRieyRr ZXl9LT57J3N1Ym1pdCd9Owo+IEBAIC03MjEsNiArNzQyLDggQEAgZm9yZWFjaCBteSAka2V5IChr ZXlzICVyZXF3YWl0KSB7Cj4gICBzYXkgc3ByaW50ZignR1BVOiAlLjJmJSUgaWRsZSwgJS4yZiUl IGJ1c3knLAo+ICAgCSAgICAgJGZsYXRfYnVzeXsnZ3B1LWlkbGUnfSwgJGZsYXRfYnVzeXsnZ3B1 LWJ1c3knfSkgdW5sZXNzICRodG1sOwo+ICAgCj4gK215ICRleGVjdXRlX2NvbG91ciA9ICRjb2xv dXJfY29udGV4dHMgPyAnbXVsdGktY29sb3VyJyA6ICdwaW5rJzsKPiArCj4gICBwcmludCA8PEVO REhUTUwgaWYgJGh0bWw7Cj4gICA8IURPQ1RZUEUgSFRNTD4KPiAgIDxodG1sPgo+IEBAIC03NDEs NyArNzY0LDcgQEAgcHJpbnQgPDxFTkRIVE1MIGlmICRodG1sOwo+ICAgPGJ1dHRvbiBvbmNsaWNr PSJ0b2dnbGVTdGFja1N1Ymdyb3VwcygpIj5Ub2dnbGUgc3RhY2tpbmc8L2J1dHRvbj4KPiAgIAo+ ICAgPHA+Cj4gLXBpbmsgPSByZXF1ZXN0cyBleGVjdXRpbmcgb24gdGhlIEdQVTxicj4KPiArJGV4 ZWN1dGVfY29sb3VyID0gcmVxdWVzdHMgZXhlY3V0aW5nIG9uIHRoZSBHUFU8YnI+Cj4gICBncmV5 ID0gcnVubmFibGUgcmVxdWVzdHMgd2FpdGluZyBmb3IgYSBzbG90IG9uIEdQVTxicj4KPiAgIGJs dWUgPSByZXF1ZXN0cyB3YWl0aW5nIG9uIGZlbmNlcyBhbmQgZGVwZW5kZW5jaWVzIGJlZm9yZSB0 aGV5IGFyZSBydW5uYWJsZTxicj4KPiAgIDwvcD4KPiBAQCAtODYxLDYgKzg4NCwxOSBAQCBzdWIg c29ydFF1ZXVlIHsKPiAgIAlyZXR1cm4gJHZhbDsKPiAgIH0KPiAgIAo+ICtteSBAaHRtbF9jb2xv dXJzID0gKCAnUGluaycsICdHcmVlbicsICdQdXJwbGUnLCAnR29sZCcsICdDeWFuJywgJ0Jyb3du JywKPiArCQkgICAgICdEZWVwUGluaycsICdMaWdodEdyZWVuJywgJ1BsdW0nLCAnT3JhbmdlJywg J1RlYWwnLCAnUGVydScsCj4gKwkJICAgICAnSW5kaWdvJywgJ0toYWtpJywgJ0NvcmFsJywgJ09s aXZlJyApOwoKT25lIHdheSB0byBnZW5lcmF0ZSBhcyBtYW55IGNvbG9ycyBhcyB5b3UgbmVlZCBp cyB0byB1c2UgaHN2IGFuZCBkaXZpZGUgCnRoZSBodWUgcmFuZ2UgaW50byBhcyBtYW55IGNvbG9y cyB5b3UgbmVlZC4KVGhlbiB0aGUgY29sb3IgZm9yIGVsZW1lbnQgWCBpcyBYICogMzYwIC8gbl9j b2xvcnMgKGh0dHA6Ly9jb2xvcml6ZXIub3JnLykKCkp1c3QgYSBzdWdnZXN0aW9uIDopCgo+ICsK PiArc3ViIGN0eF9jb2xvdXIKPiArewo+ICsgICAgICAgbXkgKCRjdHgpID0gKEBfKTsKPiArCj4g KyAgICAgICByZXR1cm4gJ1BpbmsnIHVubGVzcyAkY29sb3VyX2NvbnRleHRzOwo+ICsKPiArICAg ICAgIHJldHVybiAkaHRtbF9jb2xvdXJzWygkY3R4IC0gJG1pbl9jdHgpICUgc2NhbGFyKEBodG1s X2NvbG91cnMpXTsKPiArfQo+ICsKPiAgIG15ICRpID0gMDsKPiAgIGZvcmVhY2ggbXkgJGtleSAo c29ydCBzb3J0UXVldWUga2V5cyAlZGIpIHsKPiAgIAlteSAoJG5hbWUsICRjdHgsICRzZXFubykg PSAoJGRieyRrZXl9LT57J25hbWUnfSwgJGRieyRrZXl9LT57J2N0eCd9LCAkZGJ7JGtleX0tPnsn c2Vxbm8nfSk7Cj4gQEAgLTg5OCw3ICs5MzQsOCBAQCBmb3JlYWNoIG15ICRrZXkgKHNvcnQgc29y dFF1ZXVlIGtleXMgJWRiKSB7Cj4gICAJCWlmIChleGlzdHMgJGRieyRrZXl9LT57J2luY29tcGxl dGUnfSkgewo+ICAgCQkJJHN0eWxlID0gJ2NvbG9yOiB3aGl0ZTsgYmFja2dyb3VuZC1jb2xvcjog cmVkOyc7Cj4gICAJCX0gZWxzZSB7Cj4gLQkJCSRzdHlsZSA9ICdjb2xvcjogYmxhY2s7IGJhY2tn cm91bmQtY29sb3I6IHBpbms7JzsKPiArCQkJJHN0eWxlID0gJ2NvbG9yOiBibGFjazsgYmFja2dy b3VuZC1jb2xvcjogJyAuCj4gKwkJCQkgIGN0eF9jb2xvdXIoJGN0eCkgLiAnOyc7Cj4gICAJCX0K PiAgIAkJJGNvbnRlbnQgPSAiJG5hbWUgPHNtYWxsPiRkYnska2V5fS0+eydwb3J0J308L3NtYWxs PiI7Cj4gICAJCSRjb250ZW50IC49ICcgPHNtYWxsPjxpPj8/PzwvaT48L3NtYWxsPiAnIGlmIGV4 aXN0cyAkZGJ7JGtleX0tPnsnaW5jb21wbGV0ZSd9OwoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaWd0LWRldgo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: Re: [PATCH i-g-t 09/11] trace.pl: Add support for colouring context execution Date: Wed, 18 Apr 2018 10:02:49 -0700 Message-ID: <5c11b428-d2b1-64e4-e040-80ee30b52636@intel.com> References: <20180306124315.30208-1-tvrtko.ursulin@linux.intel.com> <20180306124315.30208-10-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180306124315.30208-10-tvrtko.ursulin@linux.intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin , igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T25lIHN1Z2dlc3Rpb24gYmVsb3csIG90aGVyd2lzZSA6CgpSZXZpZXdlZC1ieTogTGlvbmVsIExh bmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29tPgoKT24gMDYvMDMvMTggMDQ6 NDMsIFR2cnRrbyBVcnN1bGluIHdyb3RlOgo+IEZyb206IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28u dXJzdWxpbkBpbnRlbC5jb20+Cj4KPiBBZGQgdGhlIGNvbW1hbmQgbGluZSBzd2l0Y2ggd2hpY2gg dXNlcyBkaWZmZXJlbnQgY29sb3VycyBmb3IgZGlmZmVyZW50Cj4gY29udGV4dCBleGVjdXRpb24g Ym94ZXMuCj4KPiBTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5A aW50ZWwuY29tPgo+IENjOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25AaW50ZWwuY29t Pgo+IC0tLQo+ICAgc2NyaXB0cy90cmFjZS5wbCB8IDQxICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tCj4gICAxIGZpbGUgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9zY3JpcHRzL3RyYWNlLnBsIGIvc2NyaXB0 cy90cmFjZS5wbAo+IGluZGV4IGU3Y2UyNzNlZjI2YS4uZmY2MWRlYTA3NjhkIDEwMDc1NQo+IC0t LSBhL3NjcmlwdHMvdHJhY2UucGwKPiArKysgYi9zY3JpcHRzL3RyYWNlLnBsCj4gQEAgLTQwLDYg KzQwLDcgQEAgbXkgJHRyYWNlID0gMDsKPiAgIG15ICRhdmdfZGVsYXlfc3RhdHMgPSAwOwo+ICAg bXkgJHNxdWFzaF9jb250ZXh0X2lkID0gMDsKPiAgIG15ICRncHVfdGltZWxpbmUgPSAwOwo+ICtt eSAkY29sb3VyX2NvbnRleHRzID0gMDsKPiAgIAo+ICAgbXkgQGFyZ3M7Cj4gICAKPiBAQCAtMTEw LDYgKzExMSw4IEBAIFVzYWdlOgo+ICAgICAgICAgLS1zcXVhc2gtY3R4LWlkCQkJU3F1YXNoIGNv bnRleHQgaWQgYnkgc3Vic3RyYWN0aW5nIGVuZ2luZQo+ICAgCQkJCQlpZCBmcm9tIGN0eCBpZC4K PiAgICAgICAgIC0tZ3B1LXRpbWVsaW5lCQkJRHJhdyBvdmVyYWxsIEdQVSBidXN5IHRpbWVsaW5l Lgo+ICsgICAgICAtLWNvbG91ci1jb250ZXh0cyAvIC1jCQlVc2UgZGlmZmVyZW50IGNvbG91cnMg Zm9yIGRpZmZlcmVudAo+ICsJCQkJCWNvbnRleHQgZXhlY3V0aW9uIGJveGVzLgo+ICAgRU5ESEVM UAo+ICAgCj4gICAJCWV4aXQgMDsKPiBAQCAtMjc5LDYgKzI4MiwyMCBAQCBzdWIgYXJnX3NraXBf Ym94Cj4gICAJcmV0dXJuIEBfOwo+ICAgfQo+ICAgCj4gK3N1YiBhcmdfY29sb3VyX2NvbnRleHRz Cj4gK3sKPiArCXJldHVybiB1bmxlc3Mgc2NhbGFyKEBfKTsKPiArCj4gKwlpZiAoJF9bMF0gZXEg Jy0tY29sb3VyLWNvbnRleHRzJyBvcgo+ICsJICAgICRfWzBdIGVxICctLWNvbG9yLWNvbnRleHRz JyBvcgo+ICsJICAgICRfWzBdIGVxICctYycpIHsKPiArCQlzaGlmdCBAXzsKPiArCQkkY29sb3Vy X2NvbnRleHRzID0gMTsKPiArCX0KPiArCj4gKwlyZXR1cm4gQF87Cj4gK30KPiArCj4gICBAYXJn cyA9IEBBUkdWOwo+ICAgd2hpbGUgKEBhcmdzKSB7Cj4gICAJbXkgJGxlZnQgPSBzY2FsYXIoQGFy Z3MpOwo+IEBAIC0yOTQsNiArMzExLDcgQEAgd2hpbGUgKEBhcmdzKSB7Cj4gICAJQGFyZ3MgPSBh cmdfc3BsaXRfcmVxdWVzdHMoQGFyZ3MpOwo+ICAgCUBhcmdzID0gYXJnX2lnbm9yZV9yaW5nKEBh cmdzKTsKPiAgIAlAYXJncyA9IGFyZ19za2lwX2JveChAYXJncyk7Cj4gKwlAYXJncyA9IGFyZ19j b2xvdXJfY29udGV4dHMoQGFyZ3MpOwo+ICAgCj4gICAJbGFzdCBpZiAkbGVmdCA9PSBzY2FsYXIo QGFyZ3MpOwo+ICAgfQo+IEBAIC01ODEsNiArNTk5LDcgQEAgZm9yZWFjaCBteSAka2V5IChAc29y dGVkX2tleXMpIHsKPiAgIAo+ICAgbXkgJGxhc3RfdHMgPSAwOwo+ICAgbXkgJGZpcnN0X3RzOwo+ ICtteSAkbWluX2N0eDsKPiAgIAo+ICAgZm9yZWFjaCBteSAka2V5IChAc29ydGVkX2tleXMpIHsK PiAgIAlteSAkcmluZyA9ICRkYnska2V5fS0+eydyaW5nJ307Cj4gQEAgLTU5MCw2ICs2MDksOCBA QCBmb3JlYWNoIG15ICRrZXkgKEBzb3J0ZWRfa2V5cykgewo+ICAgCj4gICAJJGZpcnN0X3RzID0g JGRieyRrZXl9LT57J3F1ZXVlJ30gaWYgbm90IGRlZmluZWQgJGZpcnN0X3RzIG9yICRkYnska2V5 fS0+eydxdWV1ZSd9IDwgJGZpcnN0X3RzOwo+ICAgCSRsYXN0X3RzID0gJGVuZCBpZiAkZW5kID4g JGxhc3RfdHM7Cj4gKwkkbWluX2N0eCA9ICRkYnska2V5fS0+eydjdHgnfSBpZiBub3QgZGVmaW5l ZCAkbWluX2N0eCBvcgo+ICsJCQkJCSAkZGJ7JGtleX0tPnsnY3R4J30gPCAkbWluX2N0eDsKPiAg IAo+ICAgCSRkYnska2V5fS0+eydjb250ZXh0LWNvbXBsZXRlLWRlbGF5J30gPSAkZW5kIC0gJG5v dGlmeTsKPiAgIAkkZGJ7JGtleX0tPnsnZXhlY3V0ZS1kZWxheSd9ID0gJHN0YXJ0IC0gJGRieyRr ZXl9LT57J3N1Ym1pdCd9Owo+IEBAIC03MjEsNiArNzQyLDggQEAgZm9yZWFjaCBteSAka2V5IChr ZXlzICVyZXF3YWl0KSB7Cj4gICBzYXkgc3ByaW50ZignR1BVOiAlLjJmJSUgaWRsZSwgJS4yZiUl IGJ1c3knLAo+ICAgCSAgICAgJGZsYXRfYnVzeXsnZ3B1LWlkbGUnfSwgJGZsYXRfYnVzeXsnZ3B1 LWJ1c3knfSkgdW5sZXNzICRodG1sOwo+ICAgCj4gK215ICRleGVjdXRlX2NvbG91ciA9ICRjb2xv dXJfY29udGV4dHMgPyAnbXVsdGktY29sb3VyJyA6ICdwaW5rJzsKPiArCj4gICBwcmludCA8PEVO REhUTUwgaWYgJGh0bWw7Cj4gICA8IURPQ1RZUEUgSFRNTD4KPiAgIDxodG1sPgo+IEBAIC03NDEs NyArNzY0LDcgQEAgcHJpbnQgPDxFTkRIVE1MIGlmICRodG1sOwo+ICAgPGJ1dHRvbiBvbmNsaWNr PSJ0b2dnbGVTdGFja1N1Ymdyb3VwcygpIj5Ub2dnbGUgc3RhY2tpbmc8L2J1dHRvbj4KPiAgIAo+ ICAgPHA+Cj4gLXBpbmsgPSByZXF1ZXN0cyBleGVjdXRpbmcgb24gdGhlIEdQVTxicj4KPiArJGV4 ZWN1dGVfY29sb3VyID0gcmVxdWVzdHMgZXhlY3V0aW5nIG9uIHRoZSBHUFU8YnI+Cj4gICBncmV5 ID0gcnVubmFibGUgcmVxdWVzdHMgd2FpdGluZyBmb3IgYSBzbG90IG9uIEdQVTxicj4KPiAgIGJs dWUgPSByZXF1ZXN0cyB3YWl0aW5nIG9uIGZlbmNlcyBhbmQgZGVwZW5kZW5jaWVzIGJlZm9yZSB0 aGV5IGFyZSBydW5uYWJsZTxicj4KPiAgIDwvcD4KPiBAQCAtODYxLDYgKzg4NCwxOSBAQCBzdWIg c29ydFF1ZXVlIHsKPiAgIAlyZXR1cm4gJHZhbDsKPiAgIH0KPiAgIAo+ICtteSBAaHRtbF9jb2xv dXJzID0gKCAnUGluaycsICdHcmVlbicsICdQdXJwbGUnLCAnR29sZCcsICdDeWFuJywgJ0Jyb3du JywKPiArCQkgICAgICdEZWVwUGluaycsICdMaWdodEdyZWVuJywgJ1BsdW0nLCAnT3JhbmdlJywg J1RlYWwnLCAnUGVydScsCj4gKwkJICAgICAnSW5kaWdvJywgJ0toYWtpJywgJ0NvcmFsJywgJ09s aXZlJyApOwoKT25lIHdheSB0byBnZW5lcmF0ZSBhcyBtYW55IGNvbG9ycyBhcyB5b3UgbmVlZCBp cyB0byB1c2UgaHN2IGFuZCBkaXZpZGUgCnRoZSBodWUgcmFuZ2UgaW50byBhcyBtYW55IGNvbG9y cyB5b3UgbmVlZC4KVGhlbiB0aGUgY29sb3IgZm9yIGVsZW1lbnQgWCBpcyBYICogMzYwIC8gbl9j b2xvcnMgKGh0dHA6Ly9jb2xvcml6ZXIub3JnLykKCkp1c3QgYSBzdWdnZXN0aW9uIDopCgo+ICsK PiArc3ViIGN0eF9jb2xvdXIKPiArewo+ICsgICAgICAgbXkgKCRjdHgpID0gKEBfKTsKPiArCj4g KyAgICAgICByZXR1cm4gJ1BpbmsnIHVubGVzcyAkY29sb3VyX2NvbnRleHRzOwo+ICsKPiArICAg ICAgIHJldHVybiAkaHRtbF9jb2xvdXJzWygkY3R4IC0gJG1pbl9jdHgpICUgc2NhbGFyKEBodG1s X2NvbG91cnMpXTsKPiArfQo+ICsKPiAgIG15ICRpID0gMDsKPiAgIGZvcmVhY2ggbXkgJGtleSAo c29ydCBzb3J0UXVldWUga2V5cyAlZGIpIHsKPiAgIAlteSAoJG5hbWUsICRjdHgsICRzZXFubykg PSAoJGRieyRrZXl9LT57J25hbWUnfSwgJGRieyRrZXl9LT57J2N0eCd9LCAkZGJ7JGtleX0tPnsn c2Vxbm8nfSk7Cj4gQEAgLTg5OCw3ICs5MzQsOCBAQCBmb3JlYWNoIG15ICRrZXkgKHNvcnQgc29y dFF1ZXVlIGtleXMgJWRiKSB7Cj4gICAJCWlmIChleGlzdHMgJGRieyRrZXl9LT57J2luY29tcGxl dGUnfSkgewo+ICAgCQkJJHN0eWxlID0gJ2NvbG9yOiB3aGl0ZTsgYmFja2dyb3VuZC1jb2xvcjog cmVkOyc7Cj4gICAJCX0gZWxzZSB7Cj4gLQkJCSRzdHlsZSA9ICdjb2xvcjogYmxhY2s7IGJhY2tn cm91bmQtY29sb3I6IHBpbms7JzsKPiArCQkJJHN0eWxlID0gJ2NvbG9yOiBibGFjazsgYmFja2dy b3VuZC1jb2xvcjogJyAuCj4gKwkJCQkgIGN0eF9jb2xvdXIoJGN0eCkgLiAnOyc7Cj4gICAJCX0K PiAgIAkJJGNvbnRlbnQgPSAiJG5hbWUgPHNtYWxsPiRkYnska2V5fS0+eydwb3J0J308L3NtYWxs PiI7Cj4gICAJCSRjb250ZW50IC49ICcgPHNtYWxsPjxpPj8/PzwvaT48L3NtYWxsPiAnIGlmIGV4 aXN0cyAkZGJ7JGtleX0tPnsnaW5jb21wbGV0ZSd9OwoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=