From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1NWdcv-0003gA-Oa for garchives@archives.gentoo.org; Sun, 17 Jan 2010 22:29:46 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id C168DE07A8; Sun, 17 Jan 2010 22:29:06 +0000 (UTC) Received: from mail-yw0-f174.google.com (mail-yw0-f174.google.com [209.85.211.174]) by pigeon.gentoo.org (Postfix) with ESMTP id 907CDE07A8 for ; Sun, 17 Jan 2010 22:29:06 +0000 (UTC) Received: by ywh4 with SMTP id 4so322891ywh.10 for ; Sun, 17 Jan 2010 14:29:06 -0800 (PST) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-portage-dev@lists.gentoo.org Reply-to: gentoo-portage-dev@lists.gentoo.org MIME-Version: 1.0 Received: by 10.101.132.32 with SMTP id j32mr1917932ann.48.1263767345666; Sun, 17 Jan 2010 14:29:05 -0800 (PST) Date: Sun, 17 Jan 2010 20:29:05 -0200 Message-ID: Subject: [gentoo-portage-dev] [PATCH] Add support to Mercurial SCM in bin/repoman From: Rafael Martins To: gentoo-portage-dev@lists.gentoo.org Content-Type: multipart/mixed; boundary=0016e68fd01bb79be8047d63c39d X-Archives-Salt: 3652bd66-1b31-408b-a880-2f62a488e62c X-Archives-Hash: 92daae16ebb80c9bed42c10a599c579b --0016e68fd01bb79be8047d63c39d Content-Type: text/plain; charset=ISO-8859-1 This patch adds support to the Mercurial SCM [1] in repoman. [1] - http://mercurial.selenic.com/ Best Regards, -- Rafael Goncalves Martins http://rafaelmartins.eng.br --0016e68fd01bb79be8047d63c39d Content-Type: text/x-patch; charset=US-ASCII; name="repoman_mercurial_support.patch" Content-Disposition: attachment; filename="repoman_mercurial_support.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g4kdx3ch0 SW5kZXg6IGJpbi9yZXBvbWFuCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGJpbi9yZXBvbWFuCShyZXZpc2lvbiAx NTIwMCkKKysrIGJpbi9yZXBvbWFuCSh3b3JraW5nIGNvcHkpCkBAIC00ODYsMTEgKzQ4NiwxMyBA QAogCXZjcyA9ICJnaXQiCiBlbGlmIG9zLnBhdGguaXNkaXIob3MucGF0aC5qb2luKHBvcnRkaXJf b3ZlcmxheSwgIi5ienIiKSk6CiAJdmNzID0gImJ6ciIKK2VsaWYgb3MucGF0aC5pc2Rpcihvcy5w YXRoLmpvaW4ocG9ydGRpcl9vdmVybGF5LCAiLmhnIikpOgorCXZjcyA9ICJoZyIKIAogdmNzX2xv Y2FsX29wdHMgPSByZXBvbWFuX3NldHRpbmdzLmdldCgiUkVQT01BTl9WQ1NfTE9DQUxfT1BUUyIs ICIiKS5zcGxpdCgpCiB2Y3NfZ2xvYmFsX29wdHMgPSByZXBvbWFuX3NldHRpbmdzLmdldCgiUkVQ T01BTl9WQ1NfR0xPQkFMX09QVFMiKQogaWYgdmNzX2dsb2JhbF9vcHRzIGlzIE5vbmU6Ci0JaWYg dmNzIG5vdCBpbiBbImdpdCIsICJienIiXToKKwlpZiB2Y3Mgbm90IGluIFsiZ2l0IiwgImJ6ciIs ICJoZyJdOgogCQl2Y3NfZ2xvYmFsX29wdHMgPSAiLXEiCiAJZWxzZToKIAkJdmNzX2dsb2JhbF9v cHRzID0gIiIKQEAgLTkzMiw2ICs5MzQsMTEgQEAKIAlienJzdGF0dXMgPSBvcy5wb3BlbigiYnpy IHN0YXR1cyAtUyAuIikucmVhZGxpbmVzKCkKIAlteWNoYW5nZWQgPSBbICIuLyIgKyBlbGVtLnNw bGl0KClbLTE6XVswXS5zcGxpdCgnLycpWy0xOl1bMF0gZm9yIGVsZW0gaW4gYnpyc3RhdHVzIGlm IGVsZW0gYW5kIGVsZW1bMToyXSA9PSAiTSIgXQogCW15bmV3ICAgICA9IFsgIi4vIiArIGVsZW0u c3BsaXQoKVstMTpdWzBdLnNwbGl0KCcvJylbLTE6XVswXSBmb3IgZWxlbSBpbiBienJzdGF0dXMg aWYgZWxlbSBhbmQgKCBlbGVtWzE6Ml0gPT0gIk5LIiBvciBlbGVtWzA6MV0gPT0gIlIiICkgXQor ZWxpZiB2Y3MgPT0gImhnIjoKKwlteWNoYW5nZWQgPSBvcy5wb3BlbigiaGcgc3RhdHVzIC0tbm8t c3RhdHVzIC0tbW9kaWZpZWQgLiIpLnJlYWRsaW5lcygpCisJbXljaGFuZ2VkID0gWyIuLyIgKyBl bGVtLnJzdHJpcCgpIGZvciBlbGVtIGluIG15Y2hhbmdlZF0KKwlteW5ldyA9IG9zLnBvcGVuKCJo ZyBzdGF0dXMgLS1uby1zdGF0dXMgLS1hZGRlZCAuIikucmVhZGxpbmVzKCkKKwlteW5ldyA9IFsi Li8iICsgZWxlbS5yc3RyaXAoKSBmb3IgZWxlbSBpbiBteW5ld10KIAogaWYgdmNzOgogCW5ld19l YnVpbGRzLnVwZGF0ZSh4IGZvciB4IGluIG15bmV3IGlmIHguZW5kc3dpdGgoIi5lYnVpbGQiKSkK QEAgLTEwOTIsOSArMTA5OSwxMyBAQAogCQkJCXMgPSBzW3MucmZpbmQoIlxuIikgKyAxOl0KIAkJ CWZhaWxzWyJmaWxlLlVURjgiXS5hcHBlbmQoIiVzLyVzOiBsaW5lICVpLCBqdXN0IGFmdGVyOiAn JXMnIiAlIChjaGVja2RpciwgeSwgbGluZSwgcykpCiAKLQlpZiB2Y3MgPT0gImdpdCIgYW5kIGNo ZWNrX2VidWlsZF9ub3RhZGRlZDoKLQkJbXlmID0gb3MucG9wZW4oImdpdCBscy1maWxlcyAtLW90 aGVycyAlcyIgJSBcCi0JCQkocG9ydGFnZS5fc2hlbGxfcXVvdGUoY2hlY2tkaXJfcmVsYXRpdmUp LCkpCisJaWYgdmNzIGluICgiZ2l0IiwgImhnIikgYW5kIGNoZWNrX2VidWlsZF9ub3RhZGRlZDoK KwkJaWYgdmNzID09ICJnaXQiOgorCQkJbXlmID0gb3MucG9wZW4oImdpdCBscy1maWxlcyAtLW90 aGVycyAlcyIgJSBcCisJCQkJKHBvcnRhZ2UuX3NoZWxsX3F1b3RlKGNoZWNrZGlyX3JlbGF0aXZl KSwpKQorCQlpZiB2Y3MgPT0gImhnIjoKKwkJCW15ZiA9IG9zLnBvcGVuKCJoZyBzdGF0dXMgLS1u by1zdGF0dXMgLS11bmtub3duICVzIiAlIFwKKwkJCQkocG9ydGFnZS5fc2hlbGxfcXVvdGUoY2hl Y2tkaXJfcmVsYXRpdmUpLCkpCiAJCWZvciBsIGluIG15ZjoKIAkJCWlmIGxbOi0xXVstNzpdID09 ICIuZWJ1aWxkIjoKIAkJCQlzdGF0c1siZWJ1aWxkLm5vdGFkZGVkIl0gKz0gMQpAQCAtMTI1OSw3 ICsxMjcwLDcgQEAKIAkjIEl0IHdpbGwgYmUgZ2VuZXJhdGVkIG9uIHNlcnZlciBzaWRlIGZyb20g c2NtIGxvZywKIAkjIGJlZm9yZSBwYWNrYWdlIG1vdmVzIHRvIHRoZSByc3luYyBzZXJ2ZXIuCiAJ IyBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHdlIHRyeSB0byBhdm9pZCBtZXJnZSBjb2xsaXNpb25z LgotCWlmIHZjcyBub3QgaW4gKCAiZ2l0IiwgKSBhbmQgIkNoYW5nZUxvZyIgbm90IGluIGNoZWNr ZGlybGlzdDoKKwlpZiB2Y3Mgbm90IGluICggImdpdCIsICJoZyIgKSBhbmQgIkNoYW5nZUxvZyIg bm90IGluIGNoZWNrZGlybGlzdDoKIAkJc3RhdHNbImNoYW5nZWxvZy5taXNzaW5nIl0rPTEKIAkJ ZmFpbHNbImNoYW5nZWxvZy5taXNzaW5nIl0uYXBwZW5kKHgrIi9DaGFuZ2VMb2ciKQogCQpAQCAt MTk3Nyw2ICsxOTg4LDE1IEBACiAJCQlyYWlzZSAgIyBUT0RPIHByb3BvZ2F0ZSB0aGlzCiAJCWV4 Y2VwdDoKIAkJCWVycigiRXJyb3IgcmV0cmlldmluZyBienIgaW5mbzsgZXhpdGluZy4iKQorCWlm IHZjcyA9PSAiaGciOgorCQlteXVuYWRkZWQgPSBvcy5wb3BlbigiaGcgc3RhdHVzIC0tbm8tc3Rh dHVzIC0tdW5rbm93biAuIikucmVhZGxpbmVzKCkKKwkJbXl1bmFkZGVkID0gWyIuLyIgKyBlbGVt LnJzdHJpcCgpIGZvciBlbGVtIGluIG15dW5hZGRlZF0KKwkJCisJCSMgTWVyY3VyaWFsIGRvZXNu J3QgaGFuZGxlIG1hbnVhbGx5IGRlbGV0ZWQgZmlsZXMgYXMgcmVtb3ZlZCBmcm9tCisJCSMgdGhl IHJlcG9zaXRvcnksIHNvIHRoZSB1c2VyIG5lZWQgdG8gcmVtb3ZlIHRoZW0gYmVmb3JlIGNvbW1p dCwKKwkJIyB1c2luZyAiaGcgcmVtb3ZlIFtGSUxFU10iCisJCW15ZGVsZXRlZCA9IG9zLnBvcGVu KCJoZyBzdGF0dXMgLS1uby1zdGF0dXMgLS1kZWxldGVkIC4iKS5yZWFkbGluZXMoKQorCQlteWRl bGV0ZWQgPSBbIi4vIiArIGVsZW0ucnN0cmlwKCkgZm9yIGVsZW0gaW4gbXlkZWxldGVkXQogCiAK IAlteWF1dG9hZGQ9W10KQEAgLTIwMDIsNiArMjAyMiw4IEBACiAJCQkJcHJpbnQoIihnaXQgYWRk ICIrIiAiLmpvaW4obXlhdXRvYWRkKSsiKSIpCiAJCQllbGlmIHZjcyA9PSAiYnpyIjoKIAkJCQlw cmludCgiKGJ6ciBhZGQgIisiICIuam9pbihteWF1dG9hZGQpKyIpIikKKwkJCWVsaWYgdmNzID09 ICJoZyI6CisJCQkJcHJpbnQoIihoZyBhZGQgIisiICIuam9pbihteWF1dG9hZGQpKyIpIikKIAkJ CXJldHZhbD0wCiAJCWVsc2U6CiAJCQlpZiB2Y3MgPT0gImN2cyI6CkBAIC0yMDEyLDYgKzIwMzQs OCBAQAogCQkJCXJldHZhbD1vcy5zeXN0ZW0oImdpdCBhZGQgIisiICIuam9pbihteWF1dG9hZGQp KQogCQkJZWxpZiB2Y3MgPT0gImJ6ciI6CiAJCQkJcmV0dmFsPW9zLnN5c3RlbSgiYnpyIGFkZCAi KyIgIi5qb2luKG15YXV0b2FkZCkpCisJCQllbGlmIHZjcyA9PSAiaGciOgorCQkJCXJldHZhbD1v cy5zeXN0ZW0oImhnIGFkZCAiKyIgIi5qb2luKG15YXV0b2FkZCkpCiAJCWlmIHJldHZhbDoKIAkJ CXdyaXRlbXNnX2xldmVsKCIhISEgRXhpdGluZyBvbiAlcyAoc2hlbGwpIGVycm9yIGNvZGU6ICVz XG4iICUgXAogCQkJCSh2Y3MsIHJldHZhbCksIGxldmVsPWxvZ2dpbmcuRVJST1IsIG5vaXNlbGV2 ZWw9LTEpCkBAIC0yMDI2LDYgKzIwNTAsMTUgQEAKIAkJcHJpbnQoKQogCQlzeXMuZXhpdCgxKQog CisJaWYgdmNzID09ICJoZyIgYW5kIG15ZGVsZXRlZDoKKwkJcHJpbnQocmVkKCIhISEgVGhlIGZv bGxvd2luZyBmaWxlcyBhcmUgcmVtb3ZlZCBtYW51YWxseSBmcm9tIHlvdXIgbG9jYWwgdHJlZSBi dXQgYXJlIG5vdCIpKQorCQlwcmludChyZWQoIiEhISByZW1vdmVkIGZyb20gdGhlIHJlcG9zaXRv cnkuIFBsZWFzZSByZW1vdmUgdGhlbSwgdXNpbmcgXCJoZyByZW1vdmUgW0ZJTEVTXVwiLiIpKQor CQlmb3IgeCBpbiBteWRlbGV0ZWQ6CisJCQlwcmludCgiICAgIix4KQorCQlwcmludCgpCisJCXBy aW50KCkKKwkJc3lzLmV4aXQoMSkKKwogCWlmIHZjcyA9PSAiY3ZzIjoKIAkJbXljdnN0cmVlID0g Y3ZzdHJlZS5nZXRlbnRyaWVzKCIuLyIsIHJlY3Vyc2l2ZT0xKQogCQlteWNoYW5nZWQgPSBjdnN0 cmVlLmZpbmRjaGFuZ2VkKG15Y3ZzdHJlZSwgcmVjdXJzaXZlPTEsIGJhc2VkaXI9Ii4vIikKQEAg LTIwODQsOCArMjExNywxNiBAQAogCQlteXJlbW92ZWQgPSBbICIuLyIgKyBlbGVtLnNwbGl0KClb LTM6LTJdWzBdLnNwbGl0KCcvJylbLTE6XVswXSBmb3IgZWxlbSBpbiBienJzdGF0dXMgaWYgZWxl bSBhbmQgKCBlbGVtWzE6Ml0gPT0gIksiIG9yIGVsZW1bMDoxXSA9PSAiUiIgKSBdCiAJCSMgQmF6 YWFyIGV4cGFuZHMgbm90aGluZy4KIAorCWlmIHZjcyA9PSAiaGciOgorCQlteWNoYW5nZWQgPSBv cy5wb3BlbigiaGcgc3RhdHVzIC0tbm8tc3RhdHVzIC0tbW9kaWZpZWQgLiIpLnJlYWRsaW5lcygp CisJCW15Y2hhbmdlZCA9IFsiLi8iICsgZWxlbS5yc3RyaXAoKSBmb3IgZWxlbSBpbiBteWNoYW5n ZWRdCisJCW15bmV3ID0gb3MucG9wZW4oImhnIHN0YXR1cyAtLW5vLXN0YXR1cyAtLWFkZGVkIC4i KS5yZWFkbGluZXMoKQorCQlteW5ldyA9IFsiLi8iICsgZWxlbS5yc3RyaXAoKSBmb3IgZWxlbSBp biBteW5ld10KKwkJbXlyZW1vdmVkID0gb3MucG9wZW4oImhnIHN0YXR1cyAtLW5vLXN0YXR1cyAt LXJlbW92ZWQgLiIpLnJlYWRsaW5lcygpCisJCW15cmVtb3ZlZCA9IFsiLi8iICsgZWxlbS5yc3Ry aXAoKSBmb3IgZWxlbSBpbiBteXJlbW92ZWRdCisKIAlpZiB2Y3M6Ci0JCWlmIG5vdCAobXljaGFu Z2VkIG9yIG15bmV3IG9yIG15cmVtb3ZlZCk6CisJCWlmIG5vdCAobXljaGFuZ2VkIG9yIG15bmV3 IG9yIG15cmVtb3ZlZCBvciAodmNzID09ICJoZyIgYW5kIG15ZGVsZXRlZCkpOgogCQkJcHJpbnQo Z3JlZW4oIlJlcG9NYW4gc2V6OiIpLCAiXCJEb2luZyBub3RoaW5nIGlzIG5vdCBhbHdheXMgZ29v ZCBmb3IgUUEuXCIiKQogCQkJcHJpbnQoKQogCQkJcHJpbnQoIihEaWRuJ3QgZmluZCBhbnkgY2hh bmdlZCBmaWxlcy4uLikiKQpAQCAtMjEwMSw3ICsyMTQyLDcgQEAKIAkJCW15bWFuaWZlc3RzLmFk ZChmKQogCQllbHNlOgogCQkJbXl1cGRhdGVzLmFkZChmKQotCWlmIHZjcyA9PSAnZ2l0JzoKKwlp ZiB2Y3MgaW4gWydnaXQnLCAnaGcnXToKIAkJbXl1cGRhdGVzLmRpZmZlcmVuY2VfdXBkYXRlKG15 cmVtb3ZlZCkKIAlteXVwZGF0ZXMgPSBsaXN0KG15dXBkYXRlcykKIAlteW1hbmlmZXN0cyA9IGxp c3QobXltYW5pZmVzdHMpCkBAIC0yMTI2LDggKzIxNjcsOCBAQAogCQkJbXloZWFkZXJzLmFwcGVu ZChteWZpbGUpCiAKIAlwcmludCgiKiAlcyBmaWxlcyBiZWluZyBjb21taXR0ZWQuLi4iICUgZ3Jl ZW4oc3RyKGxlbihteXVwZGF0ZXMpKSksIGVuZD0nICcpCi0JaWYgdmNzIGluICgnZ2l0JywgJ2J6 cicpOgotCQkjIFdpdGggZ2l0IGFuZCBienIsIHRoZXJlJ3MgbmV2ZXIgYW55IGtleXdvcmQgZXhw YW5zaW9uLCBzbworCWlmIHZjcyBpbiAoJ2dpdCcsICdienInLCAnaGcnKToKKwkJIyBXaXRoIGdp dCwgYnpyIGFuZCBoZywgdGhlcmUncyBuZXZlciBhbnkga2V5d29yZCBleHBhbnNpb24sIHNvCiAJ CSMgdGhlcmUncyBubyBuZWVkIHRvIHJlZ2VuZXJhdGUgbWFuaWZlc3RzIGFuZCBhbGwgZmlsZXMg d2lsbCBiZQogCQkjIGNvbW1pdHRlZCBpbiBvbmUgYmlnIGNvbW1pdCBhdCB0aGUgZW5kLgogCQlw cmludCgpCkBAIC0yMTgyLDcgKzIyMjMsNyBAQAogCQljb21taXRtZXNzYWdlICs9ICIsIFJlcG9N YW4gb3B0aW9uczogLS1mb3JjZSIKIAljb21taXRtZXNzYWdlICs9ICIpIgogCi0JaWYgdmNzIG5v dCBpbiBbJ2dpdCcsICdienInXSBhbmQgKG15dXBkYXRlcyBvciBteXJlbW92ZWQpOgorCWlmIHZj cyBub3QgaW4gWydnaXQnLCAnYnpyJywgJ2hnJ10gYW5kIChteXVwZGF0ZXMgb3IgbXlyZW1vdmVk KToKIAkJbXlmaWxlcyA9IG15dXBkYXRlcyArIG15cmVtb3ZlZAogCQlpZiBub3QgbXloZWFkZXJz IGFuZCAic2lnbiIgbm90IGluIHJlcG9tYW5fc2V0dGluZ3MuZmVhdHVyZXM6CiAJCQlteWZpbGVz ICs9IG15bWFuaWZlc3RzCkBAIC0yMjc1LDcgKzIzMTYsNyBAQAogCQkJd3JpdGVfYXRvbWljKHgs ICIiLmpvaW4obXlsaW5lcykpCiAKIAltYW5pZmVzdF9jb21taXRfcmVxdWlyZWQgPSBUcnVlCi0J aWYgdmNzIG5vdCBpbiBbJ2dpdCcsICdienInXSBhbmQgKG15dXBkYXRlcyBvciBteXJlbW92ZWQp OgorCWlmIHZjcyBub3QgaW4gWydnaXQnLCAnYnpyJywgJ2hnJ10gYW5kIChteXVwZGF0ZXMgb3Ig bXlyZW1vdmVkKToKIAkJbXlmaWxlcyA9IG15dXBkYXRlcyArIG15cmVtb3ZlZAogCQlmb3IgeCBp biByYW5nZShsZW4obXlmaWxlcyktMSwgLTEsIC0xKToKIAkJCWlmIG15ZmlsZXNbeF0uY291bnQo Ii8iKSA8IDQtcmVwb2xldmVsOgpAQCAtMjQxOCwxMCArMjQ1OSwxMCBAQAogCQkJCQlsZXZlbD1s b2dnaW5nLkVSUk9SLCBub2lzZWxldmVsPS0xKQogCQkJCXN5cy5leGl0KHJldHZhbCkKIAotCWlm IHZjcyBpbiBbJ2dpdCcsICdienInXSBvciBtYW5pZmVzdF9jb21taXRfcmVxdWlyZWQgb3Igc2ln bmVkOgorCWlmIHZjcyBpbiBbJ2dpdCcsICdienInLCAnaGcnXSBvciBtYW5pZmVzdF9jb21taXRf cmVxdWlyZWQgb3Igc2lnbmVkOgogCiAJCW15ZmlsZXMgPSBteW1hbmlmZXN0c1s6XQotCQlpZiB2 Y3MgaW4gWydnaXQnLCAnYnpyJ106CisJCWlmIHZjcyBpbiBbJ2dpdCcsICdienInLCAnaGcnXToK IAkJCW15ZmlsZXMgKz0gbXl1cGRhdGVzCiAJCQlteWZpbGVzICs9IG15cmVtb3ZlZAogCQlteWZp bGVzLnNvcnQoKQpAQCAtMjQ0NCw4ICsyNDg1LDEyIEBACiAJCWNvbW1pdF9jbWQuZXh0ZW5kKHZj c19nbG9iYWxfb3B0cykKIAkJY29tbWl0X2NtZC5hcHBlbmQoImNvbW1pdCIpCiAJCWNvbW1pdF9j bWQuZXh0ZW5kKHZjc19sb2NhbF9vcHRzKQotCQljb21taXRfY21kLmV4dGVuZChbIi1GIiwgY29t bWl0bWVzc2FnZWZpbGVdKQotCQljb21taXRfY21kLmV4dGVuZChmLmxzdHJpcCgiLi8iKSBmb3Ig ZiBpbiBteWZpbGVzKQorCQlpZiB2Y3MgaW4gWydnaXQnLCAnYnpyJ106CisJCQljb21taXRfY21k LmV4dGVuZChbIi1GIiwgY29tbWl0bWVzc2FnZWZpbGVdKQorCQkJY29tbWl0X2NtZC5leHRlbmQo Zi5sc3RyaXAoIi4vIikgZm9yIGYgaW4gbXlmaWxlcykKKwkJZWxpZiB2Y3MgPT0gImhnIjoKKwkJ CWNvbW1pdF9jbWQuZXh0ZW5kKFsiLS1sb2dmaWxlIiwgY29tbWl0bWVzc2FnZWZpbGVdKQorCQkJ Y29tbWl0X2NtZC5leHRlbmQobXlmaWxlcykKIAogCQl0cnk6CiAJCQlpZiBvcHRpb25zLnByZXRl bmQ6Cg== --0016e68fd01bb79be8047d63c39d--