From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Xue Fuqiao Newsgroups: gmane.emacs.devel Subject: Re: summer of code results? Date: Tue, 8 Oct 2013 20:20:31 +0800 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=047d7bdc131282c53f04e839cbbb X-Trace: ger.gmane.org 1381235026 26678 80.91.229.3 (8 Oct 2013 12:23:46 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 8 Oct 2013 12:23:46 +0000 (UTC) Cc: emacs-devel To: Glenn Morris Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Oct 08 14:23:51 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1VTWKK-0006ao-Oo for ged-emacs-devel@m.gmane.org; Tue, 08 Oct 2013 14:23:49 +0200 Original-Received: from localhost ([::1]:36456 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VTWKH-0006Km-AS for ged-emacs-devel@m.gmane.org; Tue, 08 Oct 2013 08:23:45 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:60920) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VTWHE-0001qr-UI for emacs-devel@gnu.org; Tue, 08 Oct 2013 08:20:38 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VTWHD-0003u9-Bb for emacs-devel@gnu.org; Tue, 08 Oct 2013 08:20:36 -0400 Original-Received: from mail-ie0-x231.google.com ([2607:f8b0:4001:c03::231]:34951) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VTWHB-0003si-GX; Tue, 08 Oct 2013 08:20:33 -0400 Original-Received: by mail-ie0-f177.google.com with SMTP id qd12so19244770ieb.36 for ; Tue, 08 Oct 2013 05:20:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=gLnU6rluKxvvpi0K1GQYBOTWPm589c8935As1PBOKi8=; b=L22ovMR9mPTroKJ8Z7WIf44x4vdiGYAmDAJE8B2cnHsCvgaebfP70y8oeqqFt+MD// 7TpnCLssU7pV7RriAr/vFLuiu+juqvafJgXyVtzpTl27gZGhnV7wOn4yphpMR/V5lkhR HDDu7pywDKtaeOFPRFjLqlqj5popM7Jvb0Zkm/VnsQMBYRmIiMnQjoF0lsbil9ORI4zO 1Xbpiium0pnr7I5jyMU0KM7ZYfklaeUyhQh5p+hKx5q9cyuHIQCw00ObdfTe90lDLT/m RVhX4uGqEJB3/T6wEb46mfek0mf5yH0kq74P6iFQC71ZdSadsVijsENxBDHyAb6XNJPj OHyA== X-Received: by 10.50.39.51 with SMTP id m19mr20901044igk.51.1381234831665; Tue, 08 Oct 2013 05:20:31 -0700 (PDT) Original-Received: by 10.42.133.72 with HTTP; Tue, 8 Oct 2013 05:20:31 -0700 (PDT) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:4001:c03::231 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:163999 Archived-At: --047d7bdc131282c53f04e839cbbb Content-Type: text/plain; charset=UTF-8 On Mon, Oct 7, 2013 at 2:23 PM, Glenn Morris wrote: > > I see that the summer of code is supposed to have finished a week ago. > Please could we have a summary of what the two Emacs projects accomplished? > > I don't recall hearing any updates or discussion related to the progress > of either project on this list, which seems like a shame. I heard more > about the Guile projects than I did about the Emacs ones. For the VC project: Code has been progressing in my local bzr branch, and there are three branches: vc-ignore, vc-shelve, and async-commit. All of vc-ignore and part of vc-shelve (vc-foo-find-admin-dir) has been merged into trunk, and I can provide other semi-patches for review. -- Best regards, Xue Fuqiao. http://www.gnu.org/software/emacs/ --047d7bdc131282c53f04e839cbbb Content-Type: application/octet-stream; name="vc-shelve.patch" Content-Disposition: attachment; filename="vc-shelve.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hmj3gxbz1 PT09IG1vZGlmaWVkIGZpbGUgJ2xpc3AvdmMvdmMtYnpyLmVsJwotLS0gbGlzcC92Yy92Yy1ienIu ZWwJMjAxMy0wOS0xMiAwNjo1MDoxOCArMDAwMAorKysgbGlzcC92Yy92Yy1ienIuZWwJMjAxMy0w OS0yMSAxMDozODoxOSArMDAwMApAQCAtMTAxNCw2ICsxMDE0LDcgQEAKICAgICh2Yy1ienItYWZ0 ZXItZGlyLXN0YXR1cyB1cGRhdGUtZnVuY3Rpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoZmlsZS1yZWxhdGl2ZS1uYW1lIGRpciAodmMtYnpyLXJvb3QgZGlyKSkpKSkKIAorOzsgRklY TUU6IENvbWJpbmUgaXQgd2l0aCB2Yy1tZW51LW1hcAogKGRlZnZhciB2Yy1ienItc2hlbHZlLW1h cAogICAobGV0ICgobWFwIChtYWtlLXNwYXJzZS1rZXltYXApKSkKICAgICA7OyBUdXJuIG9mZiB2 Yy1kaXIgbWFya2luZwpAQCAtMTAyOCw2ICsxMDI5LDcgQEAKICAgICAoZGVmaW5lLWtleSBtYXAg IlMiICd2Yy1ienItc2hlbHZlLXNuYXBzaG90KQogICAgIG1hcCkpCiAKKzs7IEZJWE1FOiBDb21i aW5lIGl0IHdpdGggdmMtbWVudS1tYXAKIChkZWZ2YXIgdmMtYnpyLXNoZWx2ZS1tZW51LW1hcAog ICAobGV0ICgobWFwIChtYWtlLXNwYXJzZS1rZXltYXAgIkJ6ciBTaGVsdmUiKSkpCiAgICAgKGRl ZmluZS1rZXkgbWFwIFtkZV0KQEAgLTEwNDQsNiArMTA0Niw3IEBACiAgICAgCQkgIDpoZWxwICJT aG93IHRoZSBjb250ZW50cyBvZiB0aGUgY3VycmVudCBzaGVsdmUiKSkKICAgICBtYXApKQogCis7 OyBGSVhNRTogQ29tYmluZSBpdCB3aXRoIHZjLW1lbnUtbWFwCiAoZGVmdmFyIHZjLWJ6ci1leHRy YS1tZW51LW1hcAogICAobGV0ICgobWFwIChtYWtlLXNwYXJzZS1rZXltYXApKSkKICAgICAoZGVm aW5lLWtleSBtYXAgW2J6ci1zbl0KQEAgLTEwNTgsNiArMTA2MSw3IEBACiAKIChkZWZ1biB2Yy1i enItZXh0cmEtc3RhdHVzLW1lbnUgKCkgdmMtYnpyLWV4dHJhLW1lbnUtbWFwKQogCis7OyBUT0RP OiBtb3ZlIHBhcnQgb2YgaXQgdG8gdmMtZGlyLmVsLgogKGRlZnVuIHZjLWJ6ci1kaXItZXh0cmEt aGVhZGVycyAoZGlyKQogICAobGV0KgogICAgICAgKChzdHIgKHdpdGgtdGVtcC1idWZmZXIKQEAg LTExMzEsMTIgKzExMzUsMTMgQEAKIChkZWNsYXJlLWZ1bmN0aW9uIHZjLXJlc3luY2gtYnVmZmVy ICJ2Yy1kaXNwYXRjaGVyIgogICAgICAgICAgICAgICAgICAgKGZpbGUgJm9wdGlvbmFsIGtlZXAg bm9xdWVyeSByZXNldC12Yy1pbmZvKSkKIAotKGRlZnVuIHZjLWJ6ci1zaGVsdmUgKG5hbWUpCi0g ICJDcmVhdGUgYSBzaGVsdmUuIgotICAoaW50ZXJhY3RpdmUgInNTaGVsZiBuYW1lOiAiKQorKGRl ZnVuIHZjLWJ6ci1zaGVsdmUgKG5hbWUgZmlsZXNldCkKKyAgIlRlbXBvcmFyaWx5IHJlbW92ZSBj aGFuZ2VzIGZyb20gdGhlIHdvcmtpbmcgdHJlZS4KK05BTUUgaXMgdGhlIHNoZWxmIG5hbWUsIEZJ TEVTRVQgaXMvYXJlIHRoZSBmaWxlKHMpIHRvIGJlIHNoZWx2ZWQuIgogICAobGV0ICgocm9vdCAo dmMtYnpyLXJvb3QgZGVmYXVsdC1kaXJlY3RvcnkpKSkKICAgICAod2hlbiByb290Ci0gICAgICAo dmMtYnpyLWNvbW1hbmQgInNoZWx2ZSIgbmlsIDAgbmlsICItLWFsbCIgIi1tIiBuYW1lKQorICAg ICAgKHZjLWJ6ci1jb21tYW5kCisgICAgICAgInNoZWx2ZSIgbmlsIDAgZmlsZXNldCAiLS1hbGwi ICItbSIgbmFtZSkKICAgICAgICh2Yy1yZXN5bmNoLWJ1ZmZlciByb290IHQgdCkpKSkKIAogKGRl ZnVuIHZjLWJ6ci1zaGVsdmUtc2hvdyAobmFtZSkKQEAgLTExODIsMzYgKzExODcsOSBAQAogICAg ICAgKGJ1ZmZlci1zdWJzdHJpbmcgKHBvaW50LW1pbikgKHBvaW50LW1heCkpCiAgICAgICAiXG4i KSkpKQogCi0oZGVmdW4gdmMtYnpyLXNoZWx2ZS1nZXQtYXQtcG9pbnQgKHBvaW50KQotICAoc2F2 ZS1leGN1cnNpb24KLSAgICAoZ290by1jaGFyIHBvaW50KQotICAgIChiZWdpbm5pbmctb2YtbGlu ZSkKLSAgICAoaWYgKGxvb2tpbmctYXQgIl4gK1xcKFswLTldK1xcKToiKQotCShtYXRjaC1zdHJp bmcgMSkKLSAgICAgIChlcnJvciAiQ2Fubm90IGZpbmQgc2hlbGYgYXQgcG9pbnQiKSkpKQotCiA7 OyB2Yy1ienItc2hlbHZlLWRlbGV0ZS1hdC1wb2ludCBtdXN0IGJlIGNhbGxlZCBmcm9tIGEgdmMt ZGlyIGJ1ZmZlci4KIChkZWNsYXJlLWZ1bmN0aW9uIHZjLWRpci1yZWZyZXNoICJ2Yy1kaXIiICgp KQogCi0oZGVmdW4gdmMtYnpyLXNoZWx2ZS1kZWxldGUtYXQtcG9pbnQgKCkKLSAgKGludGVyYWN0 aXZlKQotICAobGV0ICgoc2hlbHZlICh2Yy1ienItc2hlbHZlLWdldC1hdC1wb2ludCAocG9pbnQp KSkpCi0gICAgKHdoZW4gKHktb3Itbi1wIChmb3JtYXQgIlJlbW92ZSBzaGVsZiAlcyA/ICIgc2hl bHZlKSkKLSAgICAgICh2Yy1ienItY29tbWFuZCAidW5zaGVsdmUiIG5pbCAwIG5pbCAiLS1kZWxl dGUtb25seSIgc2hlbHZlKQotICAgICAgKHZjLWRpci1yZWZyZXNoKSkpKQotCi0oZGVmdW4gdmMt YnpyLXNoZWx2ZS1zaG93LWF0LXBvaW50ICgpCi0gIChpbnRlcmFjdGl2ZSkKLSAgKHZjLWJ6ci1z aGVsdmUtc2hvdyAodmMtYnpyLXNoZWx2ZS1nZXQtYXQtcG9pbnQgKHBvaW50KSkpKQotCi0oZGVm dW4gdmMtYnpyLXNoZWx2ZS1hcHBseS1hdC1wb2ludCAoKQotICAoaW50ZXJhY3RpdmUpCi0gICh2 Yy1ienItc2hlbHZlLWFwcGx5ICh2Yy1ienItc2hlbHZlLWdldC1hdC1wb2ludCAocG9pbnQpKSkp Ci0KLShkZWZ1biB2Yy1ienItc2hlbHZlLWFwcGx5LWFuZC1rZWVwLWF0LXBvaW50ICgpCi0gIChp bnRlcmFjdGl2ZSkKLSAgKHZjLWJ6ci1zaGVsdmUtYXBwbHktYW5kLWtlZXAgKHZjLWJ6ci1zaGVs dmUtZ2V0LWF0LXBvaW50IChwb2ludCkpKSkKLQogKGRlZnVuIHZjLWJ6ci1zaGVsdmUtbWVudSAo ZSkKICAgKGludGVyYWN0aXZlICJlIikKICAgKHZjLWRpci1hdC1ldmVudCBlIChwb3B1cC1tZW51 IHZjLWJ6ci1zaGVsdmUtbWVudS1tYXAgZSkpKQoKPT09IG1vZGlmaWVkIGZpbGUgJ2xpc3AvdmMv dmMtZGlyLmVsJwotLS0gbGlzcC92Yy92Yy1kaXIuZWwJMjAxMy0wOS0yMSAwODoxNjoxMyArMDAw MAorKysgbGlzcC92Yy92Yy1kaXIuZWwJMjAxMy0xMC0wMSAwMjo1MjowOSArMDAwMApAQCAtMjg0 LDYgKzI4NCw3IEBACiAgICAgKGRlZmluZS1rZXkgbWFwIChrYmQgIk0tcyBhIEMtcyIpICAgJ3Zj LWRpci1pc2VhcmNoKQogICAgIChkZWZpbmUta2V5IG1hcCAoa2JkICJNLXMgYSBNLUMtcyIpICd2 Yy1kaXItaXNlYXJjaC1yZWdleHApCiAgICAgKGRlZmluZS1rZXkgbWFwICJHIiAndmMtZGlyLWln bm9yZSkKKyAgICAoZGVmaW5lLWtleSBtYXAgIlMiICd2Yy1kaXItc2hlbHZlKQogCiAgICAgOzsg SG9vayB1cCB0aGUgbWVudS4KICAgICAoZGVmaW5lLWtleSBtYXAgW21lbnUtYmFyIHZjLWRpci1t b2RlXQpAQCAtODAxLDYgKzgwMiw0NyBAQAogICAoaW50ZXJhY3RpdmUpCiAgICh2Yy1pZ25vcmUg KHZjLWRpci1jdXJyZW50LWZpbGUpKSkKIAorOzsgVE9ETzogYWRkIGEgbWVudSBlbnRyeQorKGRl ZnVuIHZjLWRpci1zaGVsdmUgKG5hbWUpCisgICJUZW1wb3JhcmlseSByZW1vdmUgY2hhbmdlcyBm cm9tIHRoZSB3b3JraW5nIHRyZWUuCitOQU1FIGlzIHRoZSBzaGVsZiBuYW1lLiIKKyAgKGludGVy YWN0aXZlICJzU2hlbGYgbmFtZToiKQorICAodmMtc2hlbHZlIG5hbWUgKG9yICh2Yy1kaXItbWFy a2VkLWZpbGVzKSAodmMtZGVkdWNlLWZpbGVzZXQpKSkpCisKKzs7IFRPRE86IGFkZCBhIG1lbnUg ZW50cnkKKyhkZWZ1biB2Yy1kaXItdW5zaGVsdmUgKG5hbWUpCisgICJCcmluZyB0aGUgc2hlbHZl ZCBjaGFuZ2VzIE5BTUUgKGlmIG5vbi1uaWwpIGJhY2sgaW50byB0aGUgd29ya2luZyB0cmVlLiIK KyAgKGludGVyYWN0aXZlICJzU2hlbGYgbmFtZTogIikJCTsgVE9ETzogdXNlIGBjb21wbGV0aW5n LXJlYWQnIGhlcmUuCisgIChsZXQgKChiYWNrZW5kICh2Yy1iYWNrZW5kIGRlZmF1bHQtZGlyZWN0 b3J5KSkpCisgICAgKHZjLWNhbGwtYmFja2VuZCBiYWNrZW5kICd1bnNoZWx2ZSBuYW1lKQorICAg ICh2Yy1kaXItcmVmcmVzaCkpKQorCisoZGVmdW4gdmMtZGlyLWRlZmF1bHQtdW5zaGVsdmUgKG5h bWUpCisgICJCcmluZyB0aGUgc2hlbHZlZCBjaGFuZ2VzIE5BTUUgKGlmIG5vbi1uaWwpIGJhY2sg aW50byB0aGUgd29ya2luZyB0cmVlLiIKKyAgKGludGVyYWN0aXZlICJzU2hlbGYgbmFtZTogIikK KyAgKGxldCogKChiYWNrZW5kICh2Yy1iYWNrZW5kIGRlZmF1bHQtZGlyZWN0b3J5KSkKKwkgKHNo ZWxmIChleHBhbmQtZmlsZS1uYW1lCisJCSBuYW1lCisJCSAoZXhwYW5kLWZpbGUtbmFtZQorCQkg ICJzaGVsZiIKKwkJICAodmMtY2FsbC1iYWNrZW5kCisJCSAgIGJhY2tlbmQgJ2ZpbmQtYWRtaW4t ZGlyIGRlZmF1bHQtZGlyZWN0b3J5KSkpKSkKKyAgICAodmMtY2FsbC1iYWNrZW5kIGJhY2tlbmQg J3BhdGNoIHNoZWxmKQorICAgIChkZWxldGUtZmlsZSBzaGVsZikKKyAgICAodmMtZGlyLXJlZnJl c2gpKSkKKworOzsgdmMtZGlyLXNoZWx2ZS1tZW51OiBbZG93bi1tb3VzZS0zXT8KKzs7IHZjLWRp ci1zaGVsdmUtZGVsZXRlLWF0LXBvaW50OiBDLWsKKzs7IHZjLWRpci1zaGVsdmUtc2hvdy1hdC1w b2ludDoKKzs7IHZjLWRpci1zaGVsdmUtYXBwbHktYXQtcG9pbnQ6Cis7OyB2Yy1kaXItc2hlbHZl LXBvcC1hdC1wb2ludDogUAorOzsgdmMtZGlyLXNoZWx2ZS1zbmFwc2hvdDoKKworKGRlZnVuIHZj LWRlZmF1bHQtcGF0Y2ggKGZpbGUpCisgICJQYXRjaCBGSUxFLiIKKyAgICA7OyBGSVhNRTogV2hh dCBpZiBgcGF0Y2gnIHV0aWxpdHkgaXMgdW5hdmFpbGFibGU/CisgICAgKHZjLWRvLWNvbW1hbmQg dCAwICJwYXRjaCIgZmlsZSAiLXAwIiAiLWkiKSkKKwogKGRlZnVuIHZjLWRpci1jdXJyZW50LWZp bGUgKCkKICAgKGxldCAoKG5vZGUgKGV3b2MtbG9jYXRlIHZjLWV3b2MpKSkKICAgICAodW5sZXNz IG5vZGUKQEAgLTEwMDksNiArMTA1MSwxMCBAQAogICAgKHByb3BlcnRpemUgIldvcmtpbmcgZGly OiAiICdmYWNlICdmb250LWxvY2stdHlwZS1mYWNlKQogICAgKHByb3BlcnRpemUgKGZvcm1hdCAi JXNcbiIgKGFiYnJldmlhdGUtZmlsZS1uYW1lIGRpcikpCiAgICAgICAgICAgICAgICAnZmFjZSAn Zm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkKKyAgIDs7IFRPRE86IGNoYW5nZSB0aGUgIihl cykiIHRvIGFuIOKAmGlm4oCZIGV4cHJlc3Npb24KKyAgIChwcm9wZXJ0aXplICJQcm9jZXNzKGVz KSBydW5uaW5nOiAiICdmYWNlICdmb250LWxvY2stdHlwZS1mYWNlKQorICAgKHByb3BlcnRpemUg KGZvcm1hdCAiJXNcbiIgdmMtcnVubmluZy1wcm9jZXNzZXMpCisgICAgICAgICAgICAgICAnZmFj ZSAnZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkKICAgIDs7IFRoZW4gdGhlIGJhY2tlbmQg c3BlY2lmaWMgb25lcy4KICAgICh2Yy1jYWxsLWJhY2tlbmQgYmFja2VuZCAnZGlyLWV4dHJhLWhl YWRlcnMgZGlyKQogICAgIlxuIikpCgo9PT0gbW9kaWZpZWQgZmlsZSAnbGlzcC92Yy92Yy1kaXNw YXRjaGVyLmVsJwotLS0gbGlzcC92Yy92Yy1kaXNwYXRjaGVyLmVsCTIwMTMtMDktMTIgMDY6NTg6 NTcgKzAwMDAKKysrIGxpc3AvdmMvdmMtZGlzcGF0Y2hlci5lbAkyMDEzLTEwLTAyIDAyOjE1OjM5 ICswMDAwCkBAIC0zMzIsNyArMzMyLDcgQEAKIAkJKHNldHEgc3RhdHVzIHByb2MpCiAJCSh3aGVu IHZjLWNvbW1hbmQtbWVzc2FnZXMKIAkJICAodmMtcnVuLWRlbGF5ZWQKLQkJICAgKG1lc3NhZ2Ug IlJ1bm5pbmcgJXMgaW4gYmFja2dyb3VuZC4uLiBkb25lIiBmdWxsLWNvbW1hbmQpKSkpCisJCSAg ICAobWVzc2FnZSAiUnVubmluZyAlcyBpbiBiYWNrZ3JvdW5kLi4uIGRvbmUiIGZ1bGwtY29tbWFu ZCkpKSkKIAkgICAgOzsgUnVuIHN5bmNocm9ub3VzbHkKIAkgICAgKHdoZW4gdmMtY29tbWFuZC1t ZXNzYWdlcwogCSAgICAgIChtZXNzYWdlICJSdW5uaW5nICVzIGluIGZvcmVncm91bmQuLi4iIGZ1 bGwtY29tbWFuZCkpCkBAIC0zNDgsMTEgKzM0OCwxOCBAQAogCSAgICAgIChlcnJvciAiUnVubmlu ZyAlcy4uLkZBSUxFRCAoJXMpIiBmdWxsLWNvbW1hbmQKIAkJICAgICAoaWYgKGludGVnZXJwIHN0 YXR1cykgKGZvcm1hdCAic3RhdHVzICVkIiBzdGF0dXMpIHN0YXR1cykpKQogCSAgICAod2hlbiB2 Yy1jb21tYW5kLW1lc3NhZ2VzCi0JICAgICAgKG1lc3NhZ2UgIlJ1bm5pbmcgJXMuLi5PSyA9ICVk IiBmdWxsLWNvbW1hbmQgc3RhdHVzKSkpKQotCSh2Yy1ydW4tZGVsYXllZAotCSAocnVuLWhvb2st d2l0aC1hcmdzICd2Yy1wb3N0LWNvbW1hbmQtZnVuY3Rpb25zCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbW1hbmQgZmlsZS1vci1saXN0IGZsYWdzKSkKLQlzdGF0dXMpKSkpCisJICAg ICAgKG1lc3NhZ2UgIlJ1bm5pbmcgJXMuLi5PSyA9ICVkIiBmdWxsLWNvbW1hbmQgc3RhdHVzKSkp CisJICAobGV0ICgocHJvYy1uYW1lIChwcm9jZXNzLW5hbWUgKGdldC1idWZmZXItcHJvY2VzcyAo Y3VycmVudC1idWZmZXIpKSkpKQorCSAgICA7OyAodW5sZXNzIChtZW1iZXIgcHJvYy1uYW1lICd2 Yy1ydW5uaW5nLXByb2Nlc3NlcykKKwkgICAgOzsgSWYgd2UgaGF2ZSB0d28gcHJvY2VzcyBydW5u aW5nIGF0IHRoZSBzYW1lIHRpbWUgd2l0aAorCSAgICA7OyB0aGUgc2FtZSAicHJvYy1uYW1lIiwg d2UgZG8gd2FudCB0aGVtIGJvdGggdG8gYXBwZWFyIGluCisJICAgIDs7IHZjLXJ1bm5pbmctcHJv Y2Vzc2VzLgorCSAgICAocHVzaCBwcm9jLW5hbWUgdmMtcnVubmluZy1wcm9jZXNzZXMpCisJICAg ICh2Yy1ydW4tZGVsYXllZAorCSAgICAgICh2Yy0tcmVtb3ZlLXByb2Nlc3MtZnJvbS1saXN0IHBy b2MtbmFtZSkKKwkgICAgICAocnVuLWhvb2std2l0aC1hcmdzICd2Yy1wb3N0LWNvbW1hbmQtZnVu Y3Rpb25zCisJCQkJICBjb21tYW5kIGZpbGUtb3ItbGlzdCBmbGFncykpKQorCSAgc3RhdHVzKSkp KSkKIAogKGRlZnVuIHZjLWRvLWFzeW5jLWNvbW1hbmQgKGJ1ZmZlciByb290IGNvbW1hbmQgJnJl c3QgYXJncykKICAgIlJ1biBDT01NQU5EIGFzeW5jaHJvbm91c2x5IHdpdGggQVJHUywgZGlzcGxh eWluZyB0aGUgcmVzdWx0LgoKPT09IG1vZGlmaWVkIGZpbGUgJ2xpc3AvdmMvdmMtZ2l0LmVsJwot LS0gbGlzcC92Yy92Yy1naXQuZWwJMjAxMy0xMC0wMSAxNTozNDoxNCArMDAwMAorKysgbGlzcC92 Yy92Yy1naXQuZWwJMjAxMy0xMC0wNiAwMzo1NzozMCArMDAwMApAQCAtNDkxLDIwICs0OTEsNyBA QAogICAiUmV0dXJuIGEgbGlzdCBvZiAoRklMRSBTVEFURSBFWFRSQSkgZW50cmllcyBmb3IgRklM RVMgaW4gRElSLiIKICAgKHZjLWdpdC1kaXItc3RhdHVzLWdvdG8tc3RhZ2UgJ3VwZGF0ZS1pbmRl eCBmaWxlcyB1cGRhdGUtZnVuY3Rpb24pKQogCi0oZGVmdmFyIHZjLWdpdC1zdGFzaC1tYXAKLSAg KGxldCAoKG1hcCAobWFrZS1zcGFyc2Uta2V5bWFwKSkpCi0gICAgOzsgVHVybiBvZmYgdmMtZGly IG1hcmtpbmcKLSAgICAoZGVmaW5lLWtleSBtYXAgW21vdXNlLTJdICdpZ25vcmUpCi0KLSAgICAo ZGVmaW5lLWtleSBtYXAgW2Rvd24tbW91c2UtM10gJ3ZjLWdpdC1zdGFzaC1tZW51KQotICAgIChk ZWZpbmUta2V5IG1hcCAiXEMtayIgJ3ZjLWdpdC1zdGFzaC1kZWxldGUtYXQtcG9pbnQpCi0gICAg KGRlZmluZS1rZXkgbWFwICI9IiAndmMtZ2l0LXN0YXNoLXNob3ctYXQtcG9pbnQpCi0gICAgKGRl ZmluZS1rZXkgbWFwICJcQy1tIiAndmMtZ2l0LXN0YXNoLXNob3ctYXQtcG9pbnQpCi0gICAgKGRl ZmluZS1rZXkgbWFwICJBIiAndmMtZ2l0LXN0YXNoLWFwcGx5LWF0LXBvaW50KQotICAgIChkZWZp bmUta2V5IG1hcCAiUCIgJ3ZjLWdpdC1zdGFzaC1wb3AtYXQtcG9pbnQpCi0gICAgKGRlZmluZS1r ZXkgbWFwICJTIiAndmMtZ2l0LXN0YXNoLXNuYXBzaG90KQotICAgIG1hcCkpCi0KKzs7IEZJWE1F OiBNZXJnZSBpdCB3aXRoIHZjLWRpci5lbAogKGRlZnZhciB2Yy1naXQtc3Rhc2gtbWVudS1tYXAK ICAgKGxldCAoKG1hcCAobWFrZS1zcGFyc2Uta2V5bWFwICJHaXQgU3Rhc2giKSkpCiAgICAgKGRl ZmluZS1rZXkgbWFwIFtkZV0KQEAgLTExMDMsMTMgKzEwOTAsMTUgQEAKIDs7IGZyb20gdmMtZGlz cGF0Y2hlci4KIChhdXRvbG9hZCAndmMtcmVzeW5jaC1idWZmZXIgInZjLWRpc3BhdGNoZXIiKQog Ci0oZGVmdW4gdmMtZ2l0LXN0YXNoIChuYW1lKQorKGRlZnVuIHZjLWdpdC1zdGFzaCAobmFtZSBm aWxlc2V0KQogICAiQ3JlYXRlIGEgc3Rhc2guIgotICAoaW50ZXJhY3RpdmUgInNTdGFzaCBuYW1l OiAiKQorICA7OyAoaW50ZXJhY3RpdmUgInNTdGFzaCBuYW1lOiAiKQogICAobGV0ICgocm9vdCAo dmMtZ2l0LXJvb3QgZGVmYXVsdC1kaXJlY3RvcnkpKSkKLSAgICAod2hlbiByb290Ci0gICAgICAo dmMtZ2l0LS1jYWxsIG5pbCAic3Rhc2giICJzYXZlIiBuYW1lKQotICAgICAgKHZjLXJlc3luY2gt YnVmZmVyIHJvb3QgdCB0KSkpKQorICAgIChpZiAoZXF1YWwgZmlsZXNldCAodmMtZ2l0LXJvb3Qg ZmlsZXNldCkpCisJKHdoZW4gcm9vdAorCSAgKHZjLWdpdC0tY2FsbCBuaWwgInN0YXNoIiAic2F2 ZSIgbmFtZSkKKwkgICh2Yy1yZXN5bmNoLWJ1ZmZlciByb290IHQgdCkpCisgICAgICAoZXJyb3Ig IlVuaW1wbGVtZW50ZWQiKSkpKQogCiAoZGVmdW4gdmMtZ2l0LXN0YXNoLXNob3cgKG5hbWUpCiAg ICJTaG93IHRoZSBjb250ZW50cyBvZiBzdGFzaCBOQU1FLiIKCj09PSBtb2RpZmllZCBmaWxlICds aXNwL3ZjL3ZjLWhnLmVsJwotLS0gbGlzcC92Yy92Yy1oZy5lbAkyMDEzLTA5LTA0IDIxOjA5OjQy ICswMDAwCisrKyBsaXNwL3ZjL3ZjLWhnLmVsCTIwMTMtMDktMjEgMTA6Mzg6MTkgKzAwMDAKQEAg LTcyMSw2ICs3MjEsNDIgQEAKICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBidWZmZXIgKHZjLXJ1 bi1kZWxheWVkICh2Yy1jb21waWxhdGlvbi1tb2RlICdoZykpKQogICAgICh2Yy1zZXQtYXN5bmMt dXBkYXRlIGJ1ZmZlcikpKQogCisoZGVmY3VzdG9tIHZjLWhnLXNoZWx2ZS1tZXRob2QgJ2RlZmF1 bHQKKyAiTWV0aG9kIG9mIHNoZWx2aW5nIGNoYW5nZXMuCitBdmFpbGFibGUgbWV0aG9kcyBhcmUg YGRlZmF1bHQnIGFuZCBgaGdzaGVsdmUnLiIKKyA7OyBUT0RPOiBhdXRvLWRldGVjdCBpZiB0aGUg InNoZWx2ZSIgZXh0ZW5zaW9uIGlzIGluc3RhbGxlZC4KKyAgOnR5cGUgJ3N0cmluZykKKworKGRl ZnVuIHZjLWhnLXNoZWx2ZSAobmFtZSBmaWxlc2V0KQorICAiVGVtcG9yYXJpbHkgcmVtb3ZlIGNo YW5nZXMgZnJvbSB0aGUgd29ya2luZyB0cmVlLgorTkFNRSBpcyB0aGUgc2hlbGYgbmFtZSwgRklM RVNFVCBpcy9hcmUgdGhlIGZpbGUocykgdG8gYmUgc2hlbHZlZC4iCisgIChjbC1jYXNlIHZjLWhn LXNoZWx2ZS1tZXRob2QKKyAgICAoZGVmYXVsdCAodmMtZGVmYXVsdC1zaGVsdmUgbmFtZSBmaWxl c2V0KSkKKyAgICAoaGdzaGVsdmUKKyAgICAgKHZjLWhnLWNvbW1hbmQgdCAwIG5pbCAic2hlbHZl IiAiLS1uYW1lIiBuYW1lKSkKKyAgICA7OyBGSVhNRTogc3VwcG9ydCBmb3IgRklMRVNFVCBpbiBg aGdzaGVsdmUnCisgICAgKHQgKHVzZXItZXJyb3IgIlRoZSB2YWx1ZSBvZiBgdmMtaGctc2hlbHZl LW1ldGhvZCcgc2hvdWxkIGJlIGBkZWZhdWx0JyBvciBgaGdzaGVsdmUnIikpKSkKKworKGRlZnVu IHZjLWhnLXNoZWx2ZS1saXN0ICgpCisgICJTZWUgdGhlIGxpc3Qgb2Ygc2hlbHZlcy4iCisgIChj bC1jYXNlIHZjLWhnLXNoZWx2ZS1tZXRob2QKKyAgICAoZGVmYXVsdCAodmMtZGVmYXVsdC1zaGVs dmUtbGlzdCkpCisgICAgKGhnc2hlbHZlCisgICAgICh2Yy1oZy1jb21tYW5kIHQgMCBuaWwgInNo ZWx2ZSIgIi0tbGlzdCIpKQorICAgICh0ICh1c2VyLWVycm9yICJUaGUgdmFsdWUgb2YgYHZjLWhn LXNoZWx2ZS1tZXRob2QnIHNob3VsZCBiZSBgZGVmYXVsdCcgb3IgYGhnc2hlbHZlJyIpKSkpCisK KyhkZWZ1biB2Yy1oZy11bnNoZWx2ZSAobmFtZSkKKyAgIkJyaW5nIHRoZSBzaGVsdmVkIGNoYW5n ZXMgTkFNRSAoaWYgbm9uLW5pbCkgYmFjayBpbnRvIHRoZSB3b3JraW5nIHRyZWUuIgorICAoY2wt Y2FzZSB2Yy1oZy1zaGVsdmUtbWV0aG9kCisgICAgKGRlZmF1bHQgKGhnLWRlZmF1bHQtdW5zaGVs dmUpKQorICAgIChoZ3NoZWx2ZSAodmMtaGctY29tbWFuZCB0IDAgbmlsICJ1bnNoZWx2ZSIgIi0t bmFtZSIgbmFtZSkpCisgICAgKHQgKHVzZXItZXJyb3IgIlRoZSB2YWx1ZSBvZiBgdmMtaGctc2hl bHZlLW1ldGhvZCcgc2hvdWxkIGJlIGBkZWZhdWx0JyBvciBgaGdzaGVsdmUnIikpKSkKKworKGRl ZnVuIHZjLWhnLXBhdGNoIChmaWxlKQorICAiUGF0Y2ggRklMRS4iCisgICh2Yy1oZy1jb21tYW5k IHQgMCBmaWxlICJpbXBvcnQiKSkKKworCiA7OzsgSW50ZXJuYWwgZnVuY3Rpb25zCiAKIChkZWZ1 biB2Yy1oZy1jb21tYW5kIChidWZmZXIgb2tzdGF0dXMgZmlsZS1vci1saXN0ICZyZXN0IGZsYWdz KQoKPT09IG1vZGlmaWVkIGZpbGUgJ2xpc3AvdmMvdmMtaG9va3MuZWwnCi0tLSBsaXNwL3ZjL3Zj LWhvb2tzLmVsCTIwMTMtMDgtMDggMjM6NTk6MTQgKzAwMDAKKysrIGxpc3AvdmMvdmMtaG9va3Mu ZWwJMjAxMy0wOS0yMSAxMDozODoxOSArMDAwMApAQCAtOTI4LDYgKzkyOCw3IEBACiAgICAgKGRl ZmluZS1rZXkgbWFwICJtIiAndmMtbWVyZ2UpCiAgICAgKGRlZmluZS1rZXkgbWFwICJyIiAndmMt cmV0cmlldmUtdGFnKQogICAgIChkZWZpbmUta2V5IG1hcCAicyIgJ3ZjLWNyZWF0ZS10YWcpCisg ICAgKGRlZmluZS1rZXkgbWFwICJTIiAndmMtc2hlbHZlKQogICAgIChkZWZpbmUta2V5IG1hcCAi dSIgJ3ZjLXJldmVydCkKICAgICAoZGVmaW5lLWtleSBtYXAgInYiICd2Yy1uZXh0LWFjdGlvbikK ICAgICAoZGVmaW5lLWtleSBtYXAgIisiICd2Yy11cGRhdGUpCkBAIC0xMDAzLDYgKzEwMDQsOSBA QAogICAgIChiaW5kaW5ncy0tZGVmaW5lLWtleSBtYXAgW3ZjLXJlZ2lzdGVyXQogICAgICAgJyht ZW51LWl0ZW0gIlJlZ2lzdGVyIiB2Yy1yZWdpc3RlcgogCQkgIDpoZWxwICJSZWdpc3RlciBmaWxl IHNldCBpbnRvIGEgdmVyc2lvbiBjb250cm9sIHN5c3RlbSIpKQorICAgIChiaW5kaW5ncy0tZGVm aW5lLWtleSBtYXAgW3ZjLXNoZWx2ZV0KKyAgICAgICcobWVudS1pdGVtICJTaGVsdmUuLi4iIHZj LXNoZWx2ZQorCQkgIDpoZWxwICJUZW1wb3JhcmlseSByZW1vdmUgY2hhbmdlcyBmcm9tIHRoZSB3 b3JraW5nIHRyZWUuIikpCiAgICAgKGJpbmRpbmdzLS1kZWZpbmUta2V5IG1hcCBbdmMtaWdub3Jl XQogICAgICAgJyhtZW51LWl0ZW0gIklnbm9yZSBGaWxlLi4uIiB2Yy1pZ25vcmUKIAkJICA6aGVs cCAiSWdub3JlIGEgZmlsZSB1bmRlciBjdXJyZW50IHZlcnNpb24gY29udHJvbCBzeXN0ZW0iKSkK Cj09PSBtb2RpZmllZCBmaWxlICdsaXNwL3ZjL3ZjLmVsJwotLS0gbGlzcC92Yy92Yy5lbAkyMDEz LTEwLTA0IDIzOjQ3OjAwICswMDAwCisrKyBsaXNwL3ZjL3ZjLmVsCTIwMTMtMTAtMDYgMDM6NTk6 MzggKzAwMDAKQEAgLTM1MSw2ICszNTEsMTMgQEAKIDs7IC0gZmluZC1hZG1pbi1kaXIgKGZpbGUp CiA7OwogOzsgICBSZXR1cm4gdGhlIGFkbWluaXN0cmF0aXZlIGRpcmVjdG9yeSBvZiBGSUxFLgor OzsKKzs7IC0gc2hlbHZlL3Vuc2hlbHZlL3NoZWx2ZS1saXN0L3BhdGNoL2RpZmYKKzs7ICAgc2hl bHZlLWdldC1hdC1wb2ludC9zaGVsdmUtZGVsZXRlLWF0LXBvaW50L3NoZWx2ZS1zaG93LWF0LXBv aW50Cis7OyAgIHNoZWx2ZS1hcHBseS1hdC1wb2ludC9zaGVsdmUtYXBwbHktYW5kLWtlZXAtYXQt cG9pbnQKKzs7Cis7OyAgIEknbGwgd3JpdGUgdGhlbSB1bnRpbCB0aGV5IHJlYWNoIGEgcmVsYXRp dmVseSBzdGFibGUgc3RhdHVzLgorOzsKIAogOzsgSElTVE9SWSBGVU5DVElPTlMKIDs7CkBAIC0x MzUwLDYgKzEzNTcsMTA2IEBACiAgIChsZXQgKCh2Yy1oYW5kbGVkLWJhY2tlbmRzIChsaXN0IGJh Y2tlbmQpKSkKICAgICAoY2FsbC1pbnRlcmFjdGl2ZWx5ICd2Yy1yZWdpc3RlcikpKQogCisoZGVm dW4gdmMtc2hlbHZlIChuYW1lIGZpbGVzZXQpCisgICJUZW1wb3JhcmlseSByZW1vdmUgY2hhbmdl cyBmcm9tIHRoZSB3b3JraW5nIHRyZWUuCitOQU1FIGlzIHRoZSBzaGVsZiBuYW1lLCBGSUxFU0VU IGlzL2FyZSB0aGUgZmlsZShzKSB0byBiZSBzaGVsdmVkLgorSWYgTkFNRSBpcyBuaWwgb3IgZW1w dHkgc3RyaW5nLCBpdCB3aWxsIGJlIGNob3NlbiBieSBWQyBhdXRvbWF0aWNhbGx5LiIKKyAgOzsg VE9ETzogYWxsb3cgdGhlIE5BTUUgaW4gYHNoZWx2ZScgdG8gYmUgbmlsIG9yICIiIGFuZCB0bwor ICA7OyB1bmRlcnN0YW5kIHRoaXMgYXMgImxldCB0aGUgYmFja2VuZCBjaG9vc2UgYSBuYW1lIGZv ciBtZSIuCisgIChpbnRlcmFjdGl2ZSAic1NoZWxmIG5hbWU6IFxuZkZpbGU6ICIpCisgIChsZXQg KChiYWNrZW5kICh2Yy1iYWNrZW5kIGZpbGVzZXQpKSkKKyAgICAodmMtY2FsbC1iYWNrZW5kIGJh Y2tlbmQgJ3NoZWx2ZSBuYW1lIGZpbGVzZXQpKSkKKworKGRlZnVuIHZjLWRlZmF1bHQtc2hlbHZl IChuYW1lIGZpbGVzZXQpCisgICJUZW1wb3JhcmlseSByZW1vdmUgY2hhbmdlcyBmcm9tIHRoZSB3 b3JraW5nIHRyZWUuCitOQU1FIGlzIHRoZSBzaGVsZiBuYW1lLCBGSUxFU0VUIGlzL2FyZSB0aGUg ZmlsZShzKSB0byBiZSBzaGVsdmVkLgorSWYgTkFNRSBpcyBuaWwgb3IgZW1wdHkgc3RyaW5nLCBp dCB3aWxsIGJlIGNob3NlbiBieSBWQyBhdXRvbWF0aWNhbGx5LiIKKyAgKGxldCogKChiYWNrZW5k ICh2Yy1iYWNrZW5kIGZpbGVzZXQpKQorCShkaXIgKHZjLWRlZmF1bHQtc2hlbHZlLWRpciBiYWNr ZW5kIGZpbGVzZXQpKSkKKyAgICAobWFrZS1kaXJlY3RvcnkgZGlyIHQpCisgICAgKHZjLWNhbGwt YmFja2VuZCBiYWNrZW5kICdkaWZmIGZpbGVzZXQpCisgICAgKHdpdGgtY3VycmVudC1idWZmZXIg Iip2Yy1kaWZmKiIKKyAgICAgICh3cml0ZS1yZWdpb24gKHBvaW50LW1pbikgKHBvaW50LW1heCkK KwkJICAgIChleHBhbmQtZmlsZS1uYW1lCisJCSAgICAgKG9yIG5hbWUgKHZjLWRlZmF1bHQtc2hl bHZlLW5hbWUKKwkJCSAgICAgICBiYWNrZW5kKSkKKwkJICAgICBkaXIpKSkKKyAgICAodmMtY2Fs bC1iYWNrZW5kIGJhY2tlbmQgJ3JldmVydCBmaWxlc2V0KSkpCisKKyhkZWZ1biB2Yy1kZWZhdWx0 LXNoZWx2ZS1kaXIgKGJhY2tlbmQgZmlsZXNldCkKKyAgIlJldHVybiB0aGUgZGVmYXVsdCBzaGVs dmUgZGlyZWN0b3J5IGZvciBGSUxFU0VUIHVuZGVyIGJhY2tlbmQgQkFDS0VORC4iCisgIChleHBh bmQtZmlsZS1uYW1lCisgICAic2hlbGYiCisgICAodmMtY2FsbC1iYWNrZW5kIGJhY2tlbmQgJ2Zp bmQtYWRtaW4tZGlyIGZpbGVzZXQpKSkKKworKGRlZnVuIHZjLWRlZmF1bHQtc2hlbHZlLW5hbWUg KGJhY2tlbmQpCisgICJSZXR1cm4gdGhlIGRlZmF1bHQgc2hlbHZlIG5hbWUgd2hlbiBOQU1FIGlu IGB2Yy1zaGVsdmUnIGlzIG5pbC4iCisgIChsZXQgKChzaGVsdmUtbGlzdCAodmMtZGVmYXVsdC1z aGVsdmUtbGlzdCBiYWNrZW5kKSkKKwkoaSAxKSkKKyAgICAoaWYgKG51bGwgc2hlbHZlLWxpc3Qp CisJMQorICAgICAgKHByb2duCisJKGNsLWxvb3AgdW50aWwgKG51bGwgc2hlbHZlLWxpc3QpIDsg cmVxdWlyZSAnY2wtbGliPworCQkgZG8gKHNldHEgc2hlbHZlLWxpc3QgKGNkciBzaGVsdmUtbGlz dCkpIChjbC1pbmNmIGkpKQorCWkpKSkpCisKKyhkZWZ1biB2Yy1zaGVsdmUtbGlzdCAoKQorICAi UmV0dXJuIHRoZSBsaXN0IG9mIHNoZWx2ZXMuIgorICAobGV0ICgoYmFja2VuZCAodmMtYmFja2Vu ZCBkZWZhdWx0LWRpcmVjdG9yeSkpKQorICAgICh2Yy1jYWxsLWJhY2tlbmQgYmFja2VuZCAnc2hl bHZlLWxpc3QgZGVmYXVsdC1kaXJlY3RvcnkpKSkKKworKGRlZnVuIHZjLWRlZmF1bHQtc2hlbHZl LWxpc3QgKGJhY2tlbmQpCisgICJSZXR1cm4gdGhlIGxpc3Qgb2Ygc2hlbHZlcy4iCisgIChkaXJl Y3RvcnktZmlsZXMgKHZjLWRlZmF1bHQtc2hlbHZlLWRpciBiYWNrZW5kIGRlZmF1bHQtZGlyZWN0 b3J5KSkpCisKKyhkZWZ1biB2Yy1zaGVsdmUtc2hvdyAoKQorICAiU2hvdyB0aGUgbGlzdCBvZiBz aGVsdmVzLiIKKyAgOzsgVE9ETzogYWNjZXB0IGEgYGZpbGVzZXQnIGFyZ3VtZW50CisgIChpbnRl cmFjdGl2ZSkKKyAgKHdpdGgtY3VycmVudC1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlICIqdmMt c2hlbHZlcyoiKQorICAgIChjbC1sb29wIGZvciBzaGVsdmUgaW4gKHZjLXNoZWx2ZS1saXN0KQor CSAgICAgZG8gKGluc2VydCAoY29uY2F0IHNoZWx2ZSAiXG4iKSkpKQorICAoZGlzcGxheS1idWZm ZXIgIip2Yy1zaGVsdmVzKiIpKQorCisoZGVmdW4gdmMtc2hlbHZlLWdldC1hdC1wb2ludCAocG9p bnQpCisgIChzYXZlLWV4Y3Vyc2lvbgorICAgIChnb3RvLWNoYXIgcG9pbnQpCisgICAgKGJlZ2lu bmluZy1vZi1saW5lKQorICAgIChpZiAobG9va2luZy1hdCAiXiArXFwoWzAtOV0rXFwpOiIpCisJ KG1hdGNoLXN0cmluZyAxKQorICAgICAgKGVycm9yICJDYW5ub3QgZmluZCBzaGVsZiBhdCBwb2lu dCIpKSkpCisKKyhkZWZ1biB2Yy1zaGVsdmUtZGVsZXRlLWF0LXBvaW50ICgpCisgIChpbnRlcmFj dGl2ZSkKKyAgKGxldCAoKHNoZWx2ZSAodmMtc2hlbHZlLWdldC1hdC1wb2ludCAocG9pbnQpKSkp CisgICAgKHdoZW4gKHktb3Itbi1wIChmb3JtYXQgIlJlbW92ZSBzaGVsZiAlcyA/ICIgc2hlbHZl KSkKKyAgICAgICh2Yy1kaXItdW5zaGVsdmUgc2hlbHZlKQorICAgICAgOzsgVE9ETzogdXNlICh2 Yy1jYWxsLWJhY2tlbmQgYmFja2VuZCAnc2hlbHZlLWRlbGV0ZSAuLi4pIGhlcmUKKyAgICAgICh2 Yy1ienItY29tbWFuZCAidW5zaGVsdmUiIG5pbCAwIG5pbCAiLS1kZWxldGUtb25seSIgc2hlbHZl KQorICAgICAgKHZjLWRpci1yZWZyZXNoKSkpKQorCisoZGVmdW4gdmMtc2hlbHZlLXNob3ctYXQt cG9pbnQgKCkKKyAgKGludGVyYWN0aXZlKQorICA7OyBUT0RPOiB1c2UgKHZjLWNhbGwtYmFja2Vu ZCBiYWNrZW5kICdzaGVsdmUtc2hvdyAuLi4pIGhlcmUKKyAgKHZjLWJ6ci1zaGVsdmUtc2hvdyAo dmMtc2hlbHZlLWdldC1hdC1wb2ludCAocG9pbnQpKSkpCisKKyhkZWZ1biB2Yy1zaGVsdmUtYXBw bHktYXQtcG9pbnQgKCkKKyAgKGludGVyYWN0aXZlKQorICA7OyBGSVhNRTogdXNlIHZjLWRpci11 bnNoZWx2ZT8KKyAgKHZjLWJ6ci1zaGVsdmUtYXBwbHkgKHZjLXNoZWx2ZS1nZXQtYXQtcG9pbnQg KHBvaW50KSkpKQorCisoZGVmdW4gdmMtc2hlbHZlLWFwcGx5LWFuZC1rZWVwLWF0LXBvaW50ICgp CisgIChpbnRlcmFjdGl2ZSkKKyAgOzsgRklYTUU6IG1vdmUgdmMtYnpyLXNoZWx2ZS1hcHBseS1h bmQta2VlcCBmcm9tIHZjLWJ6ci5lbD8KKyAgKHZjLWJ6ci1zaGVsdmUtYXBwbHktYW5kLWtlZXAg KHZjLXNoZWx2ZS1nZXQtYXQtcG9pbnQgKHBvaW50KSkpKQorCis7OyBBbGlhc2VzIGZvciBHaXQK KyhkZWZhbGlhcyAndmMtc3Rhc2ggJ3ZjLXNoZWx2ZSkKKyhkZWZhbGlhcyAndmMtZ2l0LXNoZWx2 ZSAndmMtZ2l0LXN0YXNoKQorKGRlZmFsaWFzICd2Yy1zdGFzaC1saXN0ICd2Yy1zaGVsdmUtbGlz dCkKKyhkZWZhbGlhcyAndmMtZGlyLXN0YXNoLWFwcGx5ICd2Yy1kaXItdW5zaGVsdmUpCis7OyBh bmQgb3RoZXJzLCB0byBiZSBhZGRlZC4KKwogKGRlZnVuIHZjLWlnbm9yZSAoZmlsZSAmb3B0aW9u YWwgZGlyZWN0b3J5KQogICAiSWdub3JlIEZJTEUgdW5kZXIgdGhlIFZDUyBvZiBESVJFQ1RPUlkg KGRlZmF1bHQgaXMgYGRlZmF1bHQtZGlyZWN0b3J5JykuCiBGSUxFIGlzIGEgZmlsZSB3aWxkY2Fy ZC4KQEAgLTE0MTMsNiArMTUyMCwxNiBAQAogICAgICAgKHJlcGxhY2UtbWF0Y2ggIiIpKQogICAg ICh3cml0ZS1yZWdpb24gKHBvaW50LW1pbikgKHBvaW50LW1heCkgZmlsZSkpKQogCisoZGVmdW4g dmMtLXJlbW92ZS1wcm9jZXNzLWZyb20tbGlzdCAocHJvYykKKyAgIlJlbW92ZSBwcm9jZXNzIFBS T0MgZnJvbSBgdmMtcnVubmluZy1wcm9jZXNzJy4KK1BST0MgaXMgYSBwcm9jZXNzIG5hbWUuIgor ICAoc2V0cSB2Yy1ydW5uaW5nLXByb2Nlc3NlcworCShkZWxxIChjYXIgKG1lbWJlciBwcm9jIHZj LXJ1bm5pbmctcHJvY2Vzc2VzKSkKKwkgICAgICB2Yy1ydW5uaW5nLXByb2Nlc3NlcykpKQorCiso ZGVmdmFyLWxvY2FsIHZjLXJ1bm5pbmctcHJvY2Vzc2VzIG5pbAorICAiVGhlIGxpc3Qgb2YgVkMg cHJvY2Vzc2VzIHN0aWxsIHJ1bm5pbmcuIikKKwogKGRlZnVuIHZjLWNoZWNrb3V0IChmaWxlICZv cHRpb25hbCB3cml0YWJsZSByZXYpCiAgICJSZXRyaWV2ZSBhIGNvcHkgb2YgdGhlIHJldmlzaW9u IFJFViBvZiBGSUxFLgogSWYgV1JJVEFCTEUgaXMgbm9uLW5pbCwgbWFrZSBzdXJlIHRoZSByZXRy aWV2ZWQgZmlsZSBpcyB3cml0YWJsZS4KCg== --047d7bdc131282c53f04e839cbbb Content-Type: application/octet-stream; name="async-commit.patch" Content-Disposition: attachment; filename="async-commit.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hmj3hctj1 PT09IG1vZGlmaWVkIGZpbGUgJ2xpc3AvdmMvdmMtYnpyLmVsJwoqKiogbGlzcC92Yy92Yy1ienIu ZWwJMjAxMy0wOS0xMiAwNjo1MDoxOCArMDAwMAotLS0gbGlzcC92Yy92Yy1ienIuZWwJMjAxMy0w OS0yMyAyMjo0NDozMiArMDAwMAoqKioqKioqKioqKioqKioKKioqIDYzOCw2NTYgKioqKgogICAg IkNoZWNrIEZJTEVTIGluIHRvIGJ6ciB3aXRoIGxvZyBtZXNzYWdlIENPTU1FTlQuCiAgUkVWIG5v bi1uaWwgZ2V0cyBhbiBlcnJvci4iCiAgICAoaWYgcmV2IChlcnJvciAiQ2FuJ3QgY2hlY2sgaW4g YSBzcGVjaWZpYyByZXZpc2lvbiB3aXRoIGJ6ciIpKQohICAgKGFwcGx5ICd2Yy1ienItY29tbWFu ZCAiY29tbWl0IiBuaWwgMCBmaWxlcwogICAgICAgICAgIChjb25zICItbSIgKGxvZy1lZGl0LWV4 dHJhY3QtaGVhZGVycwogICAgICAgICAgICAgICAgICAgICAgIGAoKCJBdXRob3IiIC4gLCh2Yy1i enItLXNhbml0aXplLWhlYWRlciAiLS1hdXRob3IiKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICgiRGF0ZSIgLiAsKHZjLWJ6ci0tc2FuaXRpemUtaGVhZGVyICItLWNvbW1pdC10aW1lIikpCiAg ICAgICAgICAgICAgICAgICAgICAgICAoIkZpeGVzIiAuICwodmMtYnpyLS1zYW5pdGl6ZS1oZWFk ZXIgIi0tZml4ZXMiKSkpCiEgICAgICAgICAgICAgICAgICAgICAgY29tbWVudCkpKSkKICAKICAo ZGVmdW4gdmMtYnpyLWZpbmQtcmV2aXNpb24gKGZpbGUgcmV2IGJ1ZmZlcikKICAgICJGZXRjaCBy ZXZpc2lvbiBSRVYgb2YgZmlsZSBGSUxFIGFuZCBwdXQgaXQgaW50byBCVUZGRVIuIgohICAgICAo d2l0aC1jdXJyZW50LWJ1ZmZlciBidWZmZXIKISAgICAgICAoaWYgKGFuZCByZXYgKHN0cmluZ3Ag cmV2KSAobm90IChzdHJpbmc9IHJldiAiIikpKQohICAgICAgICAgICAodmMtYnpyLWNvbW1hbmQg ImNhdCIgdCAwIGZpbGUgIi1yIiByZXYpCiEgICAgICAgICAodmMtYnpyLWNvbW1hbmQgImNhdCIg dCAwIGZpbGUpKSkpCiAgCiAgKGRlZnVuIHZjLWJ6ci1maW5kLWlnbm9yZS1maWxlIChmaWxlKQog ICAgIlJldHVybiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIHJlcG9zaXRvcnkgb2YgRklMRS4i Ci0tLSA2MzgsNjY4IC0tLS0KICAgICJDaGVjayBGSUxFUyBpbiB0byBienIgd2l0aCBsb2cgbWVz c2FnZSBDT01NRU5ULgogIFJFViBub24tbmlsIGdldHMgYW4gZXJyb3IuIgogICAgKGlmIHJldiAo ZXJyb3IgIkNhbid0IGNoZWNrIGluIGEgc3BlY2lmaWMgcmV2aXNpb24gd2l0aCBienIiKSkKISAg IChhcHBseSAndmMtYnpyLWNvbW1hbmQgImNvbW1pdCIgbmlsICdhc3luYyBmaWxlcwogICAgICAg ICAgIChjb25zICItbSIgKGxvZy1lZGl0LWV4dHJhY3QtaGVhZGVycwogICAgICAgICAgICAgICAg ICAgICAgIGAoKCJBdXRob3IiIC4gLCh2Yy1ienItLXNhbml0aXplLWhlYWRlciAiLS1hdXRob3Ii KSkKICAgICAgICAgICAgICAgICAgICAgICAgICgiRGF0ZSIgLiAsKHZjLWJ6ci0tc2FuaXRpemUt aGVhZGVyICItLWNvbW1pdC10aW1lIikpCiAgICAgICAgICAgICAgICAgICAgICAgICAoIkZpeGVz IiAuICwodmMtYnpyLS1zYW5pdGl6ZS1oZWFkZXIgIi0tZml4ZXMiKSkpCiEgICAgICAgICAgICAg ICAgICAgICAgY29tbWVudCkpKQohICAgKHZjLWV4ZWMtYWZ0ZXIKISAgICAobGFtYmRhICgpCiEg ICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAiKnZjKiIKISAgICAgICAgKHdoZW4gKHByb2duIChn b3RvLWNoYXIgKHBvaW50LW1pbikpCiEgCQkgICAgKHNlYXJjaC1mb3J3YXJkICJienI6IEVSUk9S OiAiIG5pbCB0KSkKISAJICh3aXRoLXZjLXByb3BlcnRpZXMKISAJICBmaWxlcwohIAkgIChlcnJv ciAiQ2FuJ3QgY2hlY2sgaW46ICVzIgohIAkJIChidWZmZXItc3Vic3RyaW5nIChwb2ludCkKISAJ CQkJICAgKC0gKHNlYXJjaC1mb3J3YXJkICIuXG4iIG5pbCB0KSAyKSkpCiEgCSAgKCh2Yy1zdGF0 ZSAuIGVkaXRlZCkpKSkpKSkpCiEgCiAgCiAgKGRlZnVuIHZjLWJ6ci1maW5kLXJldmlzaW9uIChm aWxlIHJldiBidWZmZXIpCiAgICAiRmV0Y2ggcmV2aXNpb24gUkVWIG9mIGZpbGUgRklMRSBhbmQg cHV0IGl0IGludG8gQlVGRkVSLiIKISAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZlcgohICAg ICAoaWYgKGFuZCByZXYgKHN0cmluZ3AgcmV2KSAobm90IChzdHJpbmc9IHJldiAiIikpKQohIAko dmMtYnpyLWNvbW1hbmQgImNhdCIgdCAwIGZpbGUgIi1yIiByZXYpCiEgICAgICAgKHZjLWJ6ci1j b21tYW5kICJjYXQiIHQgMCBmaWxlKSkpKQogIAogIChkZWZ1biB2Yy1ienItZmluZC1pZ25vcmUt ZmlsZSAoZmlsZSkKICAgICJSZXR1cm4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSByZXBvc2l0 b3J5IG9mIEZJTEUuIgoKPT09IG1vZGlmaWVkIGZpbGUgJ2xpc3AvdmMvdmMtZGlyLmVsJwoqKiog bGlzcC92Yy92Yy1kaXIuZWwJMjAxMy0wOS0yMSAwODoxNjoxMyArMDAwMAotLS0gbGlzcC92Yy92 Yy1kaXIuZWwJMjAxMy0wOS0yMyAyMjo0NDozMiArMDAwMAoqKioqKioqKioqKioqKioKKioqIDEw MjgsMTA2MSAqKioqCiAgICAgICAgICAgICAgKGdlbmVyYXRlLW5ldy1idWZmZXIgKGZvcm1hdCAi ICpWQy0lcyogdG1wIHN0YXR1cyIgYmFja2VuZCkpKSkKICAgICAgKGxldCAoKGJ1ZmZlciAoY3Vy cmVudC1idWZmZXIpKSkKICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciB2Yy1kaXItcHJvY2Vz cy1idWZmZXIKISAgICAgICAgIChzZXRxIGRlZmF1bHQtZGlyZWN0b3J5IGRlZi1kaXIpCiEgICAg ICAgICAoZXJhc2UtYnVmZmVyKQohICAgICAgICAgKHZjLWNhbGwtYmFja2VuZAohICAgICAgICAg IGJhY2tlbmQgJ2Rpci1zdGF0dXMtZmlsZXMgZGVmLWRpciBmaWxlcyBkZWZhdWx0LXN0YXRlCiEg ICAgICAgICAgKGxhbWJkYSAoZW50cmllcyAmb3B0aW9uYWwgbW9yZS10by1jb21lKQohICAgICAg ICAgICAgOzsgRU5UUklFUyBpcyBhIGxpc3Qgb2YgKEZJTEUgVkNfU1RBVEUgRVhUUkEpIGl0ZW1z LgohICAgICAgICAgICAgOzsgSWYgTU9SRS1UTy1DT01FIGlzIHRydWUsIHRoZW4gbW9yZSB1cGRh dGVzIHdpbGwgY29tZSBmcm9tCiEgICAgICAgICAgICA7OyB0aGUgYXN5bmNocm9ub3VzIHByb2Nl c3MuCiEgICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBidWZmZXIKISAgICAgICAgICAg ICAgKHZjLWRpci11cGRhdGUgZW50cmllcyBidWZmZXIpCiEgICAgICAgICAgICAgICh1bmxlc3Mg bW9yZS10by1jb21lCiEgICAgICAgICAgICAgICAgKHNldHEgbW9kZS1saW5lLXByb2Nlc3Mgbmls KQohICAgICAgICAgICAgICAgIDs7IFJlbW92ZSB0aGUgb25lcyB0aGF0IGhhdmVuJ3QgYmVlbiB1 cGRhdGVkIGF0IGFsbC4KISAgICAgICAgICAgICAgICA7OyBUaG9zZSBub3QtdXBkYXRlZCBhcmUg dGhvc2Ugd2hvc2Ugc3RhdGUgaXMgbmlsIGJlY2F1c2UgdGhlCiEgICAgICAgICAgICAgICAgOzsg ZmlsZS9kaXIgZG9lc24ndCBleGlzdCBhbmQgaXNuJ3QgdmVyc2lvbmVkLgohICAgICAgICAgICAg ICAgIChld29jLWZpbHRlciB2Yy1ld29jCiEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs YW1iZGEgKGluZm8pCiEgCQkJICAgICAgOzsgVGhlIHN0YXRlIGZvciBkaXJlY3RvcnkgZW50cmll cyBtaWdodAohIAkJCSAgICAgIDs7IGhhdmUgYmVlbiBjaGFuZ2VkIHRvICd1cC10by1kYXRlLAoh IAkJCSAgICAgIDs7IHJlc2V0IGl0LCBvdGhlcndpc2UgaXQgd2lsbCBiZSByZW1vdmVkIHdoZW4g ZG9pbmcgJ3gnCiEgCQkJICAgICAgOzsgbmV4dCB0aW1lLgohIAkJCSAgICAgIDs7IEZJWE1FOiBU aGVyZSBzaG91bGQgYmUgYSBtb3JlIGVsZWdhbnQgd2F5IHRvIGRvIHRoaXMuCiEgCQkJICAgICAg KHdoZW4gKGFuZCAodmMtZGlyLWZpbGVpbmZvLT5kaXJlY3RvcnkgaW5mbykKISAJCQkJCSAoZXEg KHZjLWRpci1maWxlaW5mby0+c3RhdGUgaW5mbykKISAJCQkJCSAgICAgJ3VwLXRvLWRhdGUpKQoh IAkJCQkoc2V0ZiAodmMtZGlyLWZpbGVpbmZvLT5zdGF0ZSBpbmZvKSBuaWwpKQogIAohICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKHZjLWRpci1maWxlaW5mby0+bmVlZHMtdXBk YXRlIGluZm8pKSkpKSkpKSkpKSkKICAKICAoZGVmdW4gdmMtZGlyLXJldmVydC1idWZmZXItZnVu Y3Rpb24gKCZvcHRpb25hbCBfaWdub3JlLWF1dG8gX25vY29uZmlybSkKICAgICh2Yy1kaXItcmVm cmVzaCkpCi0tLSAxMDI4LDEwNjMgLS0tLQogICAgICAgICAgICAgIChnZW5lcmF0ZS1uZXctYnVm ZmVyIChmb3JtYXQgIiAqVkMtJXMqIHRtcCBzdGF0dXMiIGJhY2tlbmQpKSkpCiAgICAgIChsZXQg KChidWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpCiAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIg dmMtZGlyLXByb2Nlc3MtYnVmZmVyCiEgCSh2Yy1leGVjLWFmdGVyCiEgCSAobGFtYmRhICgpCiEg CSAgIChzZXRxIGRlZmF1bHQtZGlyZWN0b3J5IGRlZi1kaXIpCiEgCSAgIChlcmFzZS1idWZmZXIp CiEgCSAgICh2Yy1jYWxsLWJhY2tlbmQKISAJICAgIGJhY2tlbmQgJ2Rpci1zdGF0dXMtZmlsZXMg ZGVmLWRpciBmaWxlcyBkZWZhdWx0LXN0YXRlCiEgCSAgICAobGFtYmRhIChlbnRyaWVzICZvcHRp b25hbCBtb3JlLXRvLWNvbWUpCiEgCSAgICAgIDs7IEVOVFJJRVMgaXMgYSBsaXN0IG9mIChGSUxF IFZDX1NUQVRFIEVYVFJBKSBpdGVtcy4KISAJICAgICAgOzsgSWYgTU9SRS1UTy1DT01FIGlzIHRy dWUsIHRoZW4gbW9yZSB1cGRhdGVzIHdpbGwgY29tZSBmcm9tCiEgCSAgICAgIDs7IHRoZSBhc3lu Y2hyb25vdXMgcHJvY2Vzcy4KISAJICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyCiEg CQkodmMtZGlyLXVwZGF0ZSBlbnRyaWVzIGJ1ZmZlcikKISAJCSh1bmxlc3MgbW9yZS10by1jb21l CiEgCQkgIChzZXRxIG1vZGUtbGluZS1wcm9jZXNzIG5pbCkKISAJCSAgOzsgUmVtb3ZlIHRoZSBv bmVzIHRoYXQgaGF2ZW4ndCBiZWVuIHVwZGF0ZWQgYXQgYWxsLgohIAkJICA7OyBUaG9zZSBub3Qt dXBkYXRlZCBhcmUgdGhvc2Ugd2hvc2Ugc3RhdGUgaXMgbmlsIGJlY2F1c2UgdGhlCiEgCQkgIDs7 IGZpbGUvZGlyIGRvZXNuJ3QgZXhpc3QgYW5kIGlzbid0IHZlcnNpb25lZC4KISAJCSAgKGV3b2Mt ZmlsdGVyIHZjLWV3b2MKISAJCQkgICAgICAgKGxhbWJkYSAoaW5mbykKISAJCQkJIDs7IFRoZSBz dGF0ZSBmb3IgZGlyZWN0b3J5IGVudHJpZXMgbWlnaHQKISAJCQkJIDs7IGhhdmUgYmVlbiBjaGFu Z2VkIHRvICd1cC10by1kYXRlLAohIAkJCQkgOzsgcmVzZXQgaXQsIG90aGVyd2lzZSBpdCB3aWxs IGJlIHJlbW92ZWQgd2hlbiBkb2luZyAneCcKISAJCQkJIDs7IG5leHQgdGltZS4KISAJCQkJIDs7 IEZJWE1FOiBUaGVyZSBzaG91bGQgYmUgYSBtb3JlIGVsZWdhbnQgd2F5IHRvIGRvIHRoaXMuCiEg CQkJCSAod2hlbiAoYW5kICh2Yy1kaXItZmlsZWluZm8tPmRpcmVjdG9yeSBpbmZvKQohIAkJCQkJ ICAgIChlcSAodmMtZGlyLWZpbGVpbmZvLT5zdGF0ZSBpbmZvKQohIAkJCQkJCSd1cC10by1kYXRl KSkKISAJCQkJICAgKHNldGYgKHZjLWRpci1maWxlaW5mby0+c3RhdGUgaW5mbykgbmlsKSkKICAK ISAJCQkJIChub3QgKHZjLWRpci1maWxlaW5mby0+bmVlZHMtdXBkYXRlIGluZm8pKSkpKSkpKSkp KSkpKQogIAogIChkZWZ1biB2Yy1kaXItcmV2ZXJ0LWJ1ZmZlci1mdW5jdGlvbiAoJm9wdGlvbmFs IF9pZ25vcmUtYXV0byBfbm9jb25maXJtKQogICAgKHZjLWRpci1yZWZyZXNoKSkKKioqKioqKioq KioqKioqCioqKiAxMDkzLDExMTcgKioqKgogICAgICAgIChld29jLXNldC1oZiB2Yy1ld29jICh2 Yy1kaXItaGVhZGVycyBiYWNrZW5kIGRlZi1kaXIpICIiKQogICAgICAgIChsZXQgKChidWZmZXIg KGN1cnJlbnQtYnVmZmVyKSkpCiAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciB2Yy1kaXIt cHJvY2Vzcy1idWZmZXIKISAgICAgICAgICAgKHNldHEgZGVmYXVsdC1kaXJlY3RvcnkgZGVmLWRp cikKISAgICAgICAgICAgKGVyYXNlLWJ1ZmZlcikKISAgICAgICAgICAgKHZjLWNhbGwtYmFja2Vu ZAohICAgICAgICAgICAgYmFja2VuZCAnZGlyLXN0YXR1cyBkZWYtZGlyCiEgICAgICAgICAgICAo bGFtYmRhIChlbnRyaWVzICZvcHRpb25hbCBtb3JlLXRvLWNvbWUpCiEgICAgICAgICAgICAgIDs7 IEVOVFJJRVMgaXMgYSBsaXN0IG9mIChGSUxFIFZDX1NUQVRFIEVYVFJBKSBpdGVtcy4KISAgICAg ICAgICAgICAgOzsgSWYgTU9SRS1UTy1DT01FIGlzIHRydWUsIHRoZW4gbW9yZSB1cGRhdGVzIHdp bGwgY29tZSBmcm9tCiEgICAgICAgICAgICAgIDs7IHRoZSBhc3luY2hyb25vdXMgcHJvY2Vzcy4K ISAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyCiEgICAgICAgICAgICAg ICAgKHZjLWRpci11cGRhdGUgZW50cmllcyBidWZmZXIpCiEgICAgICAgICAgICAgICAgKHVubGVz cyBtb3JlLXRvLWNvbWUKISAgICAgICAgICAgICAgICAgIChsZXQgKChyZW1haW5pbmcKISAgICAg ICAgICAgICAgICAgICAgICAgICAoZXdvYy1jb2xsZWN0CiEgICAgICAgICAgICAgICAgICAgICAg ICAgIHZjLWV3b2MgJ3ZjLWRpci1maWxlaW5mby0+bmVlZHMtdXBkYXRlKSkpCiEgICAgICAgICAg ICAgICAgICAgIChpZiByZW1haW5pbmcKISAgICAgICAgICAgICAgICAgICAgICAgICh2Yy1kaXIt cmVmcmVzaC1maWxlcwohICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIgJ3ZjLWRpci1m aWxlaW5mby0+bmFtZSByZW1haW5pbmcpCiEgICAgICAgICAgICAgICAgICAgICAgICAgJ3VwLXRv LWRhdGUpCiEgICAgICAgICAgICAgICAgICAgICAgKHNldHEgbW9kZS1saW5lLXByb2Nlc3Mgbmls KSkpKSkpKSkpKSkpCiAgCiAgKGRlZnVuIHZjLWRpci1zaG93LWZpbGVlbnRyeSAoZmlsZSkKICAg ICJJbnNlcnQgYW4gZW50cnkgZm9yIGEgc3BlY2lmaWMgZmlsZSBpbnRvIHRoZSBjdXJyZW50ICpW Qy1kaXIqIGxpc3RpbmcuCi0tLSAxMDk1LDExMjEgLS0tLQogICAgICAgIChld29jLXNldC1oZiB2 Yy1ld29jICh2Yy1kaXItaGVhZGVycyBiYWNrZW5kIGRlZi1kaXIpICIiKQogICAgICAgIChsZXQg KChidWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpCiAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZl ciB2Yy1kaXItcHJvY2Vzcy1idWZmZXIKISAJICAodmMtZXhlYy1hZnRlcgohIAkgICAobGFtYmRh ICgpCiEgCSAgICAgKHNldHEgZGVmYXVsdC1kaXJlY3RvcnkgZGVmLWRpcikKISAJICAgICAoZXJh c2UtYnVmZmVyKQohIAkgICAgICh2Yy1jYWxsLWJhY2tlbmQKISAJICAgICAgYmFja2VuZCAnZGly LXN0YXR1cyBkZWYtZGlyCiEgCSAgICAgIChsYW1iZGEgKGVudHJpZXMgJm9wdGlvbmFsIG1vcmUt dG8tY29tZSkKISAJCTs7IEVOVFJJRVMgaXMgYSBsaXN0IG9mIChGSUxFIFZDX1NUQVRFIEVYVFJB KSBpdGVtcy4KISAJCTs7IElmIE1PUkUtVE8tQ09NRSBpcyB0cnVlLCB0aGVuIG1vcmUgdXBkYXRl cyB3aWxsIGNvbWUgZnJvbQohIAkJOzsgdGhlIGFzeW5jaHJvbm91cyBwcm9jZXNzLgohIAkJKHdp dGgtY3VycmVudC1idWZmZXIgYnVmZmVyCiEgCQkgICh2Yy1kaXItdXBkYXRlIGVudHJpZXMgYnVm ZmVyKQohIAkJICAodW5sZXNzIG1vcmUtdG8tY29tZQohIAkJICAgIChsZXQgKChyZW1haW5pbmcK ISAJCQkgICAoZXdvYy1jb2xsZWN0CiEgCQkJICAgIHZjLWV3b2MgJ3ZjLWRpci1maWxlaW5mby0+ bmVlZHMtdXBkYXRlKSkpCiEgCQkgICAgICAoaWYgcmVtYWluaW5nCiEgCQkJICAodmMtZGlyLXJl ZnJlc2gtZmlsZXMKISAJCQkgICAobWFwY2FyICd2Yy1kaXItZmlsZWluZm8tPm5hbWUgcmVtYWlu aW5nKQohIAkJCSAgICd1cC10by1kYXRlKQohIAkJCShzZXRxIG1vZGUtbGluZS1wcm9jZXNzIG5p bCkpKSkpKSkpKSkpKSkpCiAgCiAgKGRlZnVuIHZjLWRpci1zaG93LWZpbGVlbnRyeSAoZmlsZSkK ICAgICJJbnNlcnQgYW4gZW50cnkgZm9yIGEgc3BlY2lmaWMgZmlsZSBpbnRvIHRoZSBjdXJyZW50 ICpWQy1kaXIqIGxpc3RpbmcuCgo9PT0gbW9kaWZpZWQgZmlsZSAnbGlzcC92Yy92Yy1kaXNwYXRj aGVyLmVsJwoqKiogbGlzcC92Yy92Yy1kaXNwYXRjaGVyLmVsCTIwMTMtMDktMTIgMDY6NTg6NTcg KzAwMDAKLS0tIGxpc3AvdmMvdmMtZGlzcGF0Y2hlci5lbAkyMDEzLTA5LTIzIDIyOjQ0OjMyICsw MDAwCioqKioqKioqKioqKioqKgoqKiogMjI1LDIzMSAqKioqCiAgSWYgdGhlIGN1cnJlbnQgYnVm ZmVyIGhhcyBubyBwcm9jZXNzLCBqdXN0IGV2YWx1YXRlIENPREUuCiAgRWxzZSwgYWRkIENPREUg dG8gdGhlIHByb2Nlc3MnIHNlbnRpbmVsLgogIENPREUgc2hvdWxkIGJlIGEgZnVuY3Rpb24gb2Yg bm8gYXJndW1lbnRzLiIKISAgIChsZXQgKChwcm9jIChnZXQtYnVmZmVyLXByb2Nlc3MgKGN1cnJl bnQtYnVmZmVyKSkpKQogICAgICAoY29uZAogICAgICAgOzsgSWYgdGhlcmUncyBubyBiYWNrZ3Jv dW5kIHByb2Nlc3MsIGp1c3QgZXhlY3V0ZSB0aGUgY29kZS4KICAgICAgIDs7IFdlIHVzZWQgdG8g ZXhwbGljaXRseSBjYWxsIGRlbGV0ZS1wcm9jZXNzIG9uIGV4aXRlZCBwcm9jZXNzZXMsCi0tLSAy MjUsMjMzIC0tLS0KICBJZiB0aGUgY3VycmVudCBidWZmZXIgaGFzIG5vIHByb2Nlc3MsIGp1c3Qg ZXZhbHVhdGUgQ09ERS4KICBFbHNlLCBhZGQgQ09ERSB0byB0aGUgcHJvY2Vzcycgc2VudGluZWwu CiAgQ09ERSBzaG91bGQgYmUgYSBmdW5jdGlvbiBvZiBubyBhcmd1bWVudHMuIgohICAgKGxldCAo KHByb2MgKGdldC1idWZmZXItcHJvY2VzcyAoY3VycmVudC1idWZmZXIpKSkKISAJKGRlYnVnIChv ciAoZ2V0LWJ1ZmZlci1wcm9jZXNzIChjdXJyZW50LWJ1ZmZlcikpCiEgCQkgICAobWVzc2FnZSAo Y29uY2F0ICJ2Yy1leGVjLWFmdGVyIGlzIGV4ZWN1dGVkIGluICIgKGJ1ZmZlci1uYW1lKSkpKSkp CiAgICAgIChjb25kCiAgICAgICA7OyBJZiB0aGVyZSdzIG5vIGJhY2tncm91bmQgcHJvY2Vzcywg anVzdCBleGVjdXRlIHRoZSBjb2RlLgogICAgICAgOzsgV2UgdXNlZCB0byBleHBsaWNpdGx5IGNh bGwgZGVsZXRlLXByb2Nlc3Mgb24gZXhpdGVkIHByb2Nlc3NlcywKCj09PSBtb2RpZmllZCBmaWxl ICdsaXNwL3ZjL3ZjLmVsJwoqKiogbGlzcC92Yy92Yy5lbAkyMDEzLTA5LTIxIDA4OjE2OjEzICsw MDAwCi0tLSBsaXNwL3ZjL3ZjLmVsCTIwMTMtMDktMjEgMjM6MjI6NTQgKzAwMDAKKioqKioqKioq KioqKioqCioqKiAxNTA4LDE1MjYgKioqKgogICAgICAgKG9yIChhbmQgY29tbWVudCAoc3RyaW5n LW1hdGNoICJbXlx0XG4gXSIgY29tbWVudCkpCiAgICAgICAgICAgKHNldHEgY29tbWVudCAiKioq IGVtcHR5IGxvZyBtZXNzYWdlICoqKiIpKQogICAgICAgKHdpdGgtdmMtcHJvcGVydGllcwohICAg ICAgICAgIGZpbGVzCiEgICAgICAgIDs7IFdlIHVzZWQgdG8gY2hhbmdlIGJ1ZmZlcnMgdG8gZ2V0 IGxvY2FsIHZhbHVlIG9mCiEgICAgICAgIDs7IHZjLWNoZWNraW4tc3dpdGNoZXMsIGJ1dCAndGhl JyBsb2NhbCBidWZmZXIgaXMKISAgICAgICAgOzsgbm90IGEgd2VsbC1kZWZpbmVkIGNvbmNlcHQg Zm9yIGZpbGVzZXRzLgohICAgICAgICAocHJvZ24KISAgICAgICAgICAodmMtY2FsbC1iYWNrZW5k IGJhY2tlbmQgJ2NoZWNraW4gZmlsZXMgcmV2IGNvbW1lbnQpCiEgICAgICAgICAgKG1hcGMgJ3Zj LWRlbGV0ZS1hdXRvbWF0aWMtdmVyc2lvbi1iYWNrdXBzIGZpbGVzKSkKISAgICAgICAgYCgodmMt c3RhdGUgLiB1cC10by1kYXRlKQohICAgICAgICAgICh2Yy1jaGVja291dC10aW1lIC4gLChudGgg NSAoZmlsZS1hdHRyaWJ1dGVzIGZpbGUpKSkKISAgICAgICAgICAodmMtd29ya2luZy1yZXZpc2lv biAuIG5pbCkpKQohICAgICAgKG1lc3NhZ2UgIkNoZWNraW5nIGluICVzLi4uZG9uZSIgKHZjLWRl bGlzdGlmeSBmaWxlcykpKQohICAgICd2Yy1jaGVja2luLWhvb2sKISAgICBiYWNrZW5kKSkKICAK ICA7OzsgQWRkaXRpb25hbCBlbnRyeSBwb2ludHMgZm9yIGV4YW1pbmluZyB2ZXJzaW9uIGhpc3Rv cmllcwogIAotLS0gMTUwOCwxNTI5IC0tLS0KICAgICAgIChvciAoYW5kIGNvbW1lbnQgKHN0cmlu Zy1tYXRjaCAiW15cdFxuIF0iIGNvbW1lbnQpKQogICAgICAgICAgIChzZXRxIGNvbW1lbnQgIioq KiBlbXB0eSBsb2cgbWVzc2FnZSAqKioiKSkKICAgICAgICh3aXRoLXZjLXByb3BlcnRpZXMKISAg ICAgICBmaWxlcwohICAgICAgIDs7IFdlIHVzZWQgdG8gY2hhbmdlIGJ1ZmZlcnMgdG8gZ2V0IGxv Y2FsIHZhbHVlIG9mCiEgICAgICAgOzsgdmMtY2hlY2tpbi1zd2l0Y2hlcywgYnV0ICd0aGUnIGxv Y2FsIGJ1ZmZlciBpcwohICAgICAgIDs7IG5vdCBhIHdlbGwtZGVmaW5lZCBjb25jZXB0IGZvciBm aWxlc2V0cy4KISAgICAgICAocHJvZ24KISAJKHZjLWNhbGwtYmFja2VuZCBiYWNrZW5kICdjaGVj a2luIGZpbGVzIHJldiBjb21tZW50KQohIAkobWFwYyAndmMtZGVsZXRlLWF1dG9tYXRpYy12ZXJz aW9uLWJhY2t1cHMgZmlsZXMpKQohICAgICAgIGAoKHZjLXN0YXRlIC4gdXAtdG8tZGF0ZSkKISAJ KHZjLWNoZWNrb3V0LXRpbWUgLiAsKG50aCA1IChmaWxlLWF0dHJpYnV0ZXMgZmlsZSkpKQohIAko dmMtd29ya2luZy1yZXZpc2lvbiAuIG5pbCkpKQohICAgICAgKG1lc3NhZ2UgIkNoZWNraW5nIGlu ICVzLi4uZG9uZSIgKHZjLWRlbGlzdGlmeSBmaWxlcykpCiEgICAgICAoaWYgKGdldC1idWZmZXIt cHJvY2VzcyAoY3VycmVudC1idWZmZXIpKQohIAkgKG1lc3NhZ2UgIlRoZSBwcm9jZXNzIGlzIHN0 aWxsIHJ1bm5pbmcuIikKISAgICAgICAgKG1lc3NhZ2UgIlRoZSBwcm9jZXNzIGlzIG5vdCBydW5u aW5nLiIpKSkpCiEgICAndmMtY2hlY2tpbi1ob29rCiEgICBiYWNrZW5kKQogIAogIDs7OyBBZGRp dGlvbmFsIGVudHJ5IHBvaW50cyBmb3IgZXhhbWluaW5nIHZlcnNpb24gaGlzdG9yaWVzCiAgCgo= --047d7bdc131282c53f04e839cbbb--