From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/110029 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Garulfo Newsgroups: gmane.comp.tex.context Subject: Re: MetaFun - "remove the paths of text" from a rectangle to let the background visible Date: Thu, 24 Dec 2020 00:14:08 +0100 Message-ID: <0f2c9f15-00c8-07d3-9273-60d26fe28cfc@azules.eu> References: <50497bef-784f-816e-6471-9524ccdd17d9@azules.eu> Reply-To: mailing list for ConTeXt users Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="11824"; mail-complaints-to="usenet@ciao.gmane.io" To: "ntg-context@ntg.nl >> mailing list for ConTeXt users" Original-X-From: ntg-context-bounces@ntg.nl Thu Dec 24 00:21:15 2020 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane-mx.org Original-Received: from zapf.boekplan.nl ([5.39.185.232] helo=zapf.ntg.nl) by ciao.gmane.io with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ksDRR-0002uM-JJ for gctc-ntg-context-518@m.gmane-mx.org; Thu, 24 Dec 2020 00:21:13 +0100 Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 305221C1646; Thu, 24 Dec 2020 00:20:58 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tgskmVMknBax; Thu, 24 Dec 2020 00:20:57 +0100 (CET) Original-Received: from zapf.ntg.nl (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 249701C1641; Thu, 24 Dec 2020 00:20:57 +0100 (CET) Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id A29AA1C1642 for ; Thu, 24 Dec 2020 00:20:55 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nNL04xY0m9rz for ; Thu, 24 Dec 2020 00:20:54 +0100 (CET) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=82.64.235.169; helo=azules.eu; envelope-from=garulfo@azules.eu; receiver= X-Greylist: delayed 399 seconds by postgrey-1.36 at zapf.ntg.nl; Thu, 24 Dec 2020 00:20:54 CET Original-Received: from azules.eu (82-64-235-169.subs.proxad.net [82.64.235.169]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by zapf.ntg.nl (Postfix) with ESMTPS id B188E1C15D9 for ; Thu, 24 Dec 2020 00:20:54 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=azules.eu; s=mailkey; t=1608765249; bh=6QUVavAkpVeaUVixTfT9IgznuNheA2sKK3UXrGpjsNk=; h=Subject:To:References:From:Date:In-Reply-To; b=buKP4JNh9Lv0RADAmkosQFf2mlot4c4bgG1JgkSNwS5y0WxQC72VqPDVNPrRzu7im ZuGa/HjZy3n1+BDtb1ACmcmBz4dH2vqZOqHe1wIbgiQa8fqAAWaUVm/bvQJlIMOegx ICQpIuoTB8PYrmJWRgXMP6V47S/pBK9VEkexn3u4= In-Reply-To: Content-Language: en-US X-MailScanner-ID: 03BA753313E.A44B0 X-MailScanner: Found to be clean X-MailScanner-From: garulfo@azules.eu X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.26 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ntg-context-bounces@ntg.nl Original-Sender: "ntg-context" Xref: news.gmane.io gmane.comp.tex.context:110029 Archived-At: VGhhbmtzIFRhY28sCgpJIG1hZGUgc29tZSBwcm9ncmVzcyA6Cmh0dHBzOi8vd2lraS5jb250ZXh0 Z2FyZGVuLm5ldC9UYWxrOkNvdmVyX1BhZ2VzCgpJIG5vdyBoYXZlIHR3byBhZGRpdGlvbmFsIHF1 ZXN0aW9ucyAuLi4gOy0pCgotIEhvdyBjYW4gSSBkZWFsIHdpdGggInNwYWNlIiBjaGFyYWN0ZXJz IChiZWNhdXNlIGN1cnJlbnQgc29sdXRpb24KICAgcmVxdWlyZXMgdG8gZXhwbGljaXRseSBhZGQg dGhlIH4gY2hhcmFjdGVyKQoKLSBXaGF0IHdvdWxkIGJlIHRoZSB3b3JrIHRvIGRvIGluIG9yZGVy IHRvIG1ha2UgdGhpcyBtZWNoYW5pc20gZGlyZWN0bHkKICAgdXNhYmxlIGluIG1ldGFwb3N0IC8g bWV0YWZ1biwgd2l0aGluIFxzdGFydE1QcGFnZSBcc3RvcE1QcGFnZSwKICAgLSB0byBhdm9pZCBz d2l0Y2hpbmcgYmV0d2VlbiBcc3RhcnRcc3RvcE1QZHJhd2luZyBhbmQgVGVYCiAgIC0gdG8gaGF2 ZSBzb21ldGhpbmcgbGlrZSAiZHJhdyBmb2xsb3d0ZXh0IiBpbiBtcC1ibG9iLm1waXYgPwoKCgol LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpcc2V0dXBwYXBlcnNpemUgIFtBNF0KCiUtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KClxkZWZcTXlGb250e1xkZWZpbmVkZm9udFtuYW1lOiUKdGV4Z3lyZXBhZ2Vs bGFib2xkJQolZXhvMmJsYWNrJQolYWdhcmFtb25kcHJvYm9sZCUKKmRlZmF1bHQgYXQgNTVwdF19 CgolLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpcc3RhcnRsdWFjb2RlCgpmdW5jdGlvbiBkb2N1bWVu dC5vdXRsaW5lcGF0aHMoY2hhcmFjdGVyKQogICAgIGxvY2FsIGNoYXJkYXRhICA9IGZvbnRzLmhh c2hlcy5jaGFyYWN0ZXJzW3RydWVdIC0tIGJ5IHVuaWNvZGUKICAgICBsb2NhbCBzaGFwZWRhdGEg PSBmb250cy5oYXNoZXMuc2hhcGVzW3RydWVdIC0tIGJ5IGluZGV4CiAgICAgbG9jYWwgYyAgICAg ICAgID0gY2hhcmRhdGFbY2hhcmFjdGVyXQogICAgIGlmIGMgYW5kIGMuaW5kZXggYW5kIHNoYXBl ZGF0YSB0aGVuCiAgICAgICAgIGxvY2FsIHNoYXBlZ2x5cGhzID0gc2hhcGVkYXRhLmdseXBocyBv ciB7IH0KICAgICAgICAgbG9jYWwgZ2x5cGggICAgICAgPSBzaGFwZWdseXBoc1tjLmluZGV4XQog ICAgICAgICBpZiBnbHlwaCBhbmQgKGdseXBoLnNlZ21lbnRzIG9yIGdseXBoLnNlcXVlbmNlKSB0 aGVuCiAgICAgICAgICAgICBsb2NhbCB1bml0cyAgPSBzaGFwZWRhdGEudW5pdHMgb3IgMTAwMAog ICAgICAgICAgICAgbG9jYWwgZmFjdG9yID0gMTAwL3VuaXRzCiAgICAgICAgICAgICByZXR1cm4g Zm9udHMubWV0YXBvc3QucGF0aHMoZ2x5cGgsZmFjdG9yKQogICAgICAgICBlbmQKICAgICBlbmQK ICAgICByZXR1cm4geyB9CmVuZAoKZnVuY3Rpb24gZG9jdW1lbnQuZGVmaW5lb3V0bGluZShjaGFy LHRhcmdldCkKICAgICBsb2NhbCBvdXRsaW5lcyA9IGRvY3VtZW50Lm91dGxpbmVwYXRocyhjaGFy KQogICAgIGxvY2FsIG5vZnBhdGhzID0gI291dGxpbmVzCiAgICAgY29udGV4dCgiXFxzdGFydE1Q ZHJhd2luZyIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBBRERFRCBieSAKZ2FydWxm bwogICAgIGNvbnRleHQoInBhdGggJXNbXSA7Iix0YXJnZXQpCiAgICAgY29udGV4dCgibnVtZXJp YyAlc24gOyAlc24gOj0gJXMgOyIsdGFyZ2V0LHRhcmdldCxub2ZwYXRocykKICAgICBmb3IgaT0x LG5vZnBhdGhzIGRvCiAgICAgICAgIGNvbnRleHQoIiVzWyVpXSA6PSAlcyA7ICIsdGFyZ2V0LGks b3V0bGluZXNbaV0pCiAgICAgZW5kCiAgICAgY29udGV4dCgiXFxzdG9wTVBkcmF3aW5nIikgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBBRERFRCBieSAKZ2FydWxmbwplbmQKClxzdG9w bHVhY29kZQoKJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKXGRlZlxtcGRlZmluZW91dGxpbmVzIzEj MntcY3R4bHVhe2RvY3VtZW50LmRlZmluZW91dGxpbmUoXG51bWJlcmAjMSwiIzIiKX19CgolLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCgpcZGVmXEVtcHR5TGV0dGVycyMxJQp7JQpccmVzZXRNUGRyYXdp bmcKXE1QdG9rcz17fQolClxzdGFydE1QZHJhd2luZwogICBwaWN0dXJlIHBpY1tdLCBwaWN0QSA7 CiAgIG51bWVyaWMgd2lkW10sIGxlbltdLCBwb3NbXSwgbiA7CiAgIHdpZFswXSA6PSBsZW5bMF0g Oj0gcG9zWzBdIDo9IG4gOj0gMCA7CiAgIG51bWVyaWMgc2NhbGluZzsKICAgcGF0aCBwaWN0QiAs IGZyYW1lIDsKICAgcGFpciBzaGlmdEIgOwogICBwaWN0dXJlIG1vbkltYWdlQTsgbW9uSW1hZ2VB IDo9IG51bGxwaWN0dXJlOwogICBwaWN0dXJlIG1vbkltYWdlQjsgbW9uSW1hZ2VCIDo9IG51bGxw aWN0dXJlOwogICBjb2xvciBjb2xvcmZyYW1lOyAgY29sb3JmcmFtZSA6PSAwLjZ3aGl0ZTsKJQpc c3RvcE1QZHJhd2luZwolClxNeUZvbnRcaGFuZGxldG9rZW5zIzFcd2l0aFx3aGF0ZXZlcgolClxz dGFydE1QZHJhd2luZwogICBmcmFtZSA6PSAgdW5pdHNxdWFyZQogICAgICAgICAgIHhzY2FsZWQg KCAoeHBhcnQgdXJjb3JuZXIgbW9uSW1hZ2VCIC0geHBhcnQgbGxjb3JuZXIgCm1vbkltYWdlQikg KyA1bW0gKQogICAgICAgICAgIHlzY2FsZWQgKCAoeXBhcnQgdXJjb3JuZXIgbW9uSW1hZ2VCIC0g eXBhcnQgbGxjb3JuZXIgCm1vbkltYWdlQikgKyA1bW0gKTsKICAgZnJhbWUgOj0gZnJhbWUgc2hp ZnRlZCAoY2VudGVyIG1vbkltYWdlQiAtIGNlbnRlciBmcmFtZSk7CiAgIGFkZHRvIG1vbkltYWdl QiBjb250b3VyCiAgICAgICAgIGZyYW1lCiAgICAgICAgIHdpdGhwb3N0c2NyaXB0ICJldmVub2Rk IgogICAgICAgICB3aXRoY29sb3IgdHJhbnNwYXJlbnQgKDEsMS4sY29sb3JmcmFtZSk7CiAgIGRy YXcgbW9uSW1hZ2VCIDsKICAgZHJhdyBtb25JbWFnZUEgOwpcc3RvcE1QZHJhd2luZwolClxNUGRy YXdpbmdkb25ldHJ1ZQpcZ2V0TVBkcmF3aW5nfQoKJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKXGRl Zlx3aGF0ZXZlciMxJQogICB7XGFwcGVuZHRva3MjMVx0b1xNUHRva3MKICAgIFxzZXRib3hcTVBi b3g9XGhib3h7XE15Rm9udFx0aGVcTVB0b2tzfSUKICAgICUKICAgIFxzdGFydE1QZHJhd2luZwog ICAgICBuIDo9IG4gKyAxIDsgbGVuW25dIDo9IFx0aGVcd2RcTVBib3ggOwogICAgXHN0b3BNUGRy YXdpbmcKICAgICUKICAgIFxtcGRlZmluZW91dGxpbmVze019e01hTGV0dHJlfQogICAgJQogICAg XHN0YXJ0TVBkcmF3aW5nCiAgICBwaWN0QSA6PSB0ZXh0ZXh0LmRydCgiXE15Rm9udCBNIikgOwog ICAgcGljdEIgOj0gTWFMZXR0cmVbMV07CiAgICBzY2FsaW5nIDo9IGJiaGVpZ2h0IHBpY3RBIC8g YmJoZWlnaHQgcGljdEI7CiAgICBcc3RvcE1QZHJhd2luZwogICAgJQogICAgXGRvaWZpbnN0cmlu Z2Vsc2V7fn17IzF9e317JSAgICAgICAgICAgICAgICBIT1cgVE8gUFJPUEVSTFkgQ09QRSAKV0lU SCBTUEFDRVMgPwogICAgXG1wZGVmaW5lb3V0bGluZXN7IzF9e015R2x5cGh9CiAgICAlCiAgICBc c3RhcnRNUGRyYXdpbmcKICAgICAgc3RyaW5nIHNiOyBzYiA6PSAiaSI7CiAgICAgIHBpY1tuXSA6 PSB0ZXh0ZXh0LmRydCgiXE15Rm9udFxzZXRzdHJ1dFxzdHJ1dCMxIikgOwogICAgICAlCiAgICAg IHNoaWZ0QiA6PSAtIGxsY29ybmVyIHBpY1tuXTsKICAgICAgcGljW25dIDo9IHBpY1tuXSBzaGlm dGVkIHNoaWZ0QiA7CiAgICAgICUKICAgICAgd2lkW25dIDo9IGFicyh4cGFydCB1cmNvcm5lciBw aWNbbl0gLSB4cGFydCBsbGNvcm5lciBwaWNbbl0pIDsKICAgICAgcG9zW25dIDo9IGxlbltuXS13 aWRbbl0gOwogICAgICAlCiAgICAgIGFkZHRvIG1vbkltYWdlQiBjb250b3VyCiAgICAgICAgICAg ICgoTXlHbHlwaFsxXSBzY2FsZWQgc2NhbGluZykKICAgICAgICAgICAgc2hpZnRlZCAoIChwb3Nb bl0sMCkgKyAgc2hpZnRCKSkKICAgICAgICAgICAgd2l0aHBvc3RzY3JpcHQgImNvbGxlY3QiOwog ICAgICAlCiAgICAgIGlmIE15R2x5cGhuID4gMSA6CiAgICAgICAgIGZvciBpbmQ9MiB1cHRvIE15 R2x5cGhuIDoKICAgICAgICAgICAgIGlmICgoKHhwYXJ0IGxsY29ybmVyIE15R2x5cGhbaW5kXSkg PiAoeHBhcnQgbGxjb3JuZXIgCk15R2x5cGhbMV0pKSBhbmQKICAgICAgICAgICAgICAgICAoKHlw YXJ0IGxsY29ybmVyIE15R2x5cGhbaW5kXSkgPiAoeXBhcnQgbGxjb3JuZXIgCk15R2x5cGhbMV0p KSBhbmQKICAgICAgICAgICAgICAgICAoKHhwYXJ0IHVyY29ybmVyIE15R2x5cGhbaW5kXSkgPCAo eHBhcnQgdXJjb3JuZXIgCk15R2x5cGhbMV0pKSBhbmQKICAgICAgICAgICAgICAgICAoKHlwYXJ0 IHVyY29ybmVyIE15R2x5cGhbaW5kXSkgPCAoeXBhcnQgdXJjb3JuZXIgCk15R2x5cGhbMV0pKSkg OgogICAgICAgICAgICAgICAgICUKICAgICAgICAgICAgICAgICBhZGR0byBtb25JbWFnZUEgY29u dG91cgogICAgICAgICAgICAgICAgICAgICAgIChNeUdseXBoW2luZF0gc2NhbGVkIHNjYWxpbmcp CiAgICAgICAgICAgICAgICAgICAgICAgc2hpZnRlZCAoIChwb3Nbbl0sMCkgKyAgc2hpZnRCKQog ICAgICAgICAgICAgICAgICAgICAgIHdpdGhjb2xvciB0cmFuc3BhcmVudCAoMSwxLixjb2xvcmZy YW1lKTsKICAgICAgICAgICAgIGVsc2UgOgogICAgICAgICAgICAgICAgIGFkZHRvIG1vbkltYWdl QiBjb250b3VyCiAgICAgICAgICAgICAgICAgICAgICAgKE15R2x5cGhbaW5kXSBzY2FsZWQgc2Nh bGluZykKICAgICAgICAgICAgICAgICAgICAgICBzaGlmdGVkICggKHBvc1tuXSwwKSArICBzaGlm dEIpCiAgICAgICAgICAgICAgICAgICAgICAgd2l0aHBvc3RzY3JpcHQgImNvbGxlY3QiOwogICAg ICAgICAgICAgZmk7CiAgICAgICAgICBlbmRmb3I7CiAgICAgICBmaTsKICAgIFxzdG9wTVBkcmF3 aW5nfX0KCgolPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiU9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KClxz dGFydHRleHQKCiUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClxzdGFydHVzZU1QZ3JhcGhpY3tNeUJh Y2tncm91bmRHcmFwaGljfQogICBwYXRoIHBhdGhiYWNrZ3JvdW5kIDsKICAgbnVtZXJpYyBkaW1B IDsgZGltQSA6PSBcdGhlXHBhcGVyd2lkdGg7CiAgIG51bWVyaWMgZGltQiA7IGRpbUIgOj0gXHRo ZVxwYXBlcmhlaWdodDsKICAgcGF0aGJhY2tncm91bmQgOj0gIHVuaXRzcXVhcmUgeHNjYWxlZCBk aW1BIHlzY2FsZWQgZGltQiA7CiAgIGZpbGwgcGF0aGJhY2tncm91bmQKICAgICAgICB3aXRoc2hh ZGVtZXRob2QgImxpbmVhciIKICAgICAgICB3aXRoc2hhZGVkaXJlY3Rpb24oMCwxKQogICAgICAg IHdpdGhzaGFkZWNvbG9ycyAocmVkLGJsdWUpOwpcc3RvcHVzZU1QZ3JhcGhpYwoKJS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQoKXGRlZmluZWxheWVyW015QmFja2dyb3VuZExheWVyXQpcc2V0bGF5ZXJb TXlCYWNrZ3JvdW5kTGF5ZXJde1x1c2VNUGdyYXBoaWN7TXlCYWNrZ3JvdW5kR3JhcGhpY319Clxz ZXR1cGJhY2tncm91bmRzW3BhZ2VdW2JhY2tncm91bmQ9e015QmFja2dyb3VuZExheWVyfV0KCiUt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KClxFbXB0eUxldHRlcnN7TWV0YVBvc3R+aXN+ZnVuIX0KXEVt cHR5TGV0dGVyc3tBQkNERUZHSElKfQpcRW1wdHlMZXR0ZXJze0tMTU5PUFFSU1R9ClxFbXB0eUxl dHRlcnN7VVZXWFlaIT9cJip9ClxFbXB0eUxldHRlcnN7YWJjZGVmZ2hpan0KXEVtcHR5TGV0dGVy c3trbG1ub3BxcnN0fQpcRW1wdHlMZXR0ZXJze3V2d3h5ejw+OzpAfQpcRW1wdHlMZXR0ZXJzezAx MjM0NTY3ODl9CgolLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpcc3RvcHRleHQKCgoKTGUgMjEvMTIv MjAyMCDDoCAxNjoyOSwgVGFjbyBIb2Vrd2F0ZXIgYSDDqWNyaXTCoDoKPiAKPiAKPj4gT24gMjEg RGVjIDIwMjAsIGF0IDE2OjA5LCBHYXJ1bGZvIDxnYXJ1bGZvQGF6dWxlcy5ldT4gd3JvdGU6Cj4+ Cj4+IEhpLAo+Pgo+Pgo+PiAqIEkgdHJ5IHRvICJyZW1vdmUgdGhlIHBhdGhzIG9mIHRleHQiIGZy b20gYSBtZXRhcG9zdCBwaWN0dXJlcyB0byBsZXQKPj4gICB0aGUgYmFja2dyb3VuZCB2aXNpYmxl Lgo+Pgo+PiAqIFVzaW5nCj4+ICAgaHR0cHM6Ly9tYWlsbWFuLm50Zy5ubC9waXBlcm1haWwvbnRn LWNvbnRleHQvMjAxOC90aHJlYWQuaHRtbCM5MjcyNQo+Pgo+PiAqIEkgd2FzIGFibGUgdG8gZ2V0 IHRoZSBmb2xsb3dpbmcgd2l0aCBvbmUgZ2x5cGggKE1WRSBjb2RlIGJlbG93KQo+Pgo+PiAgIGh0 dHBzOi8vd2lraS5jb250ZXh0Z2FyZGVuLm5ldC9pbWFnZXMvZC9kMi90ZXN0X2V4dHJhY3RfZ2x5 cGhzLnBkZgo+Pgo+Pgo+PiAyIHF1ZXN0aW9uczoKPj4KPj4gMS8gZm9yIHNvbWUgZm9udHMgKGUu Zy4gZGVqYXZ1IHZzIGxhdGluIG1vZGVybikgdGhlICJlbmNvbXBhc3NpbmciIHBhdGgKPj4gICAg b2YgdGhlIEIgZ2x5cGggY2FuIHN3aXRjaCBmcm9tIEJbMV0gdG8gQltCbl0uIElzIHRoZXJlIGEg dHJpY2sgdG8KPj4gICAgaWRlbnRpZnkgd2hpY2ggaWQgbWF0Y2ggd2l0aCAidGhlIGVuY29tcGFz c2luZyIgcGF0aCA/Cj4gCj4gV2hhdCB5b3UgZ2V0IGlzIHRoZSBvcmRlciBvZiB0aGUgcGF0aHMg YXMgZGVmaW5lZCBpbiB0aGUgZm9udCwgd2hpY2ggaXMgYXJiaXRyYXJ5LCBhcyB5b3UgZGlzY292 ZXJlZC4KPiAKPiBBIHF1aWNrIHRyaWNrICh0aGF0IHdpbGwgbm90IGFsd2F5cyB3b3JrLCBidXQg c2hvdWxkIHdvcmsgcXVpdGUgd2VsbCBmb3IgZm9udCB2YXJpYXRpb25zIG9mIGFscGhhYmV0aWNz KSBpcyB0byBjaGVjayB0aGUgYWN0dWFsIGFyY2xlbmd0aCBvZiB0aGUgcGF0aHMuIFRoZSBsb25n ZXN0IG9uZSB3aWxsIHR5cGljYWxseSBiZSB0aGUgb3V0ZXIgb25lLgo+IAo+IEJ1dCBtdWNoIGRl cGVuZHMgb24gdGhlIGZvbnQsIHNvIGEgZ2VuZXJpYyBzb2x1dGlvbiBpcyBsaWtlbHkgcXVpdGUg Y29tcGxpY2F0ZWQuIENvbnNpZGVyIGFuIG91dGxpbmUgZm9udOKAmXMgY29sb24gZ2x5cGggOykK PiAKPiAKPj4KPj4gMi8gbm93LCBJIHdvdWxkIGxpa2UgdG8gZG8gdGhlIHNhbWUsIGJ1dCBmb3Ig dGV4dC4uLiBhIGtpbmQgb2YKPj4gICAgZGVyaXZhdGl2ZSBvZiAidGV4dGV4dCIgb3IgIm91dGxp bmV0ZXh0Ii4KPj4gICAgV291bGQgeW91IHBsZWFzZSBnaXZlIG1lIHNvbWUgZ3VpZGVsaW5lcyA/ Cj4+IAlkb2VzIGl0IGFscmVhZHkgZXhpc3QgPwo+PiAJc2hvdWxkIEkgdXNlIHNvbWV0aGluZyBs aWtlIFxoYW5kbGV0b2tlbnMsIFxzY2FudG9rZW5zID8KPj4gCWRvIHlvdSBoYXZlIGV4YW1wbGVz IHdoZXJlIEkgY2FuIGdldCBpbnNwaXJhdGlvbiA/Cj4+Cj4+Cj4+IFRoYW5rcyBhZ2FpbiBmb3Ig eW91ciBoZWxwLAo+PiBHYXJ1bGZvCj4+Cj4+Cj4+ICU9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPj4K Pj4KPj4KPj4KPj4gXHN0YXJ0dGV4dAo+Pgo+PiAlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Cj4+ IFxzdGFydGx1YWNvZGUKPj4KPj4gZnVuY3Rpb24gZG9jdW1lbnQub3V0bGluZXBhdGhzKGNoYXJh Y3RlcikKPj4gICAgIGxvY2FsIGNoYXJkYXRhICA9IGZvbnRzLmhhc2hlcy5jaGFyYWN0ZXJzW3Ry dWVdIC0tIGJ5IHVuaWNvZGUKPj4gICAgIGxvY2FsIHNoYXBlZGF0YSA9IGZvbnRzLmhhc2hlcy5z aGFwZXNbdHJ1ZV0gLS0gYnkgaW5kZXgKPj4gICAgIGxvY2FsIGMgICAgICAgICA9IGNoYXJkYXRh W2NoYXJhY3Rlcl0KPj4gICAgIGlmIGMgYW5kIGMuaW5kZXggYW5kIHNoYXBlZGF0YSB0aGVuCj4+ ICAgICAgICAgbG9jYWwgc2hhcGVnbHlwaHMgPSBzaGFwZWRhdGEuZ2x5cGhzIG9yIHsgfQo+PiAg ICAgICAgIGxvY2FsIGdseXBoICAgICAgID0gc2hhcGVnbHlwaHNbYy5pbmRleF0KPj4gICAgICAg ICBpZiBnbHlwaCBhbmQgKGdseXBoLnNlZ21lbnRzIG9yIGdseXBoLnNlcXVlbmNlKSB0aGVuCj4+ ICAgICAgICAgICAgIGxvY2FsIHVuaXRzICA9IHNoYXBlZGF0YS51bml0cyBvciAxMDAwCj4+ICAg ICAgICAgICAgIGxvY2FsIGZhY3RvciA9IDEwMC91bml0cwo+PiAgICAgICAgICAgICByZXR1cm4g Zm9udHMubWV0YXBvc3QucGF0aHMoZ2x5cGgsZmFjdG9yKQo+PiAgICAgICAgIGVuZAo+PiAgICAg ZW5kCj4+ICAgICByZXR1cm4geyB9Cj4+IGVuZAo+Pgo+PiBmdW5jdGlvbiBkb2N1bWVudC5kZWZp bmVvdXRsaW5lKGNoYXIsdGFyZ2V0KQo+PiAgICAgbG9jYWwgb3V0bGluZXMgPSBkb2N1bWVudC5v dXRsaW5lcGF0aHMoY2hhcikKPj4gICAgIGxvY2FsIG5vZnBhdGhzID0gI291dGxpbmVzCj4+ICAg ICBjb250ZXh0KCJwYXRoICVzW10gOyIsdGFyZ2V0KQo+PiAgICAgY29udGV4dCgibnVtZXJpYyAl c24gOyAlc24gOj0gJXMgOyIsdGFyZ2V0LHRhcmdldCxub2ZwYXRocykKPj4gICAgIGZvciBpPTEs bm9mcGF0aHMgZG8KPj4gICAgICAgICBjb250ZXh0KCIlc1slaV0gOj0gJXMgOyAiLHRhcmdldCxp LG91dGxpbmVzW2ldKQo+PiAgICAgZW5kCj4+IGVuZAo+Pgo+PiBcc3RvcGx1YWNvZGUKPj4KPj4g JS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pgo+PiBcZGVmXG1wZGVmaW5lb3V0bGluZXMjMSMye1xj dHhsdWF7ZG9jdW1lbnQuZGVmaW5lb3V0bGluZShcbnVtYmVyYCMxLCIjMiIpfX0KPj4KPj4gJS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQo+Pgo+PiBcc3RhcnRNUHBhZ2UKPj4KPj4gbnVtZXJpYyBkaW1B IDsgZGltQSA6PSAyMGNtOwo+Pgo+PiBwYXRoIHBhdGhiYWNrZ3JvdW5kIDsKPj4gcGF0aGJhY2tn cm91bmQgOj0gIHVuaXRzcXVhcmUgc2NhbGVkIGRpbUEgOwo+PiBmaWxsIHBhdGhiYWNrZ3JvdW5k IHdpdGhzaGFkZW1ldGhvZCAibGluZWFyIiB3aXRoc2hhZGVkaXJlY3Rpb24oMCwxKSB3aXRoc2hh ZGVjb2xvcnMgKHJlZCxibHVlKTsKPj4KPj4gJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCj4+Cj4+IFxtcGRlZmluZW91dGxpbmVze0J9e0J9Cj4+Cj4+ICUtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pgo+PiBudW1lcmljIGRpbUIgIDsgZGltQiA6 PSAyY207Cj4+IG51bWVyaWMgdnJhdGlvIDsgdnJhdGlvIDo9IDI7Cj4+Cj4+IHBhdGggZnJhbWUg Owo+PiBmcmFtZSA6PSAgdW5pdHNxdWFyZQo+PiAgICAgICAgICAgeHNjYWxlZCAoZGltQSAtIDIg KiBkaW1CKQo+PiAgICAgICAgICAgeXNjYWxlZCAoZGltQSAvIHZyYXRpbykKPj4gICAgICAgICAg IHNoaWZ0ZWQgKGRpbUIgLCAoZGltQSAtIChkaW1BIC8gdnJhdGlvKSkvMiApOwo+Pgo+PiAlLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4KPj4gcGFpciBzaGlmdCA7IHNo aWZ0IDo9IGNlbnRlciBmcmFtZTsKPj4gbnVtZXJpYyBzY2FsIDsgc2NhbCA6PSAoMC45KSAqICgx MGNtIC8gKGJiaGVpZ2h0IEJbMV0pKSA7Cj4+Cj4+IHBpY3R1cmUgbW9uSW1hZ2VCOyBtb25JbWFn ZUIgOj0gbnVsbHBpY3R1cmU7Cj4+IGFkZHRvIG1vbkltYWdlQiBjb250b3VyCj4+ICAgICAgIChC WzFdIHNoaWZ0ZWQgKC0gY2VudGVyIEJbMV0pIHNjYWxlZCBzY2FsKQo+PiAgICAgICBzaGlmdGVk IHNoaWZ0Cj4+ICAgICAgIHdpdGhwb3N0c2NyaXB0ICJjb2xsZWN0IjsKPj4KPj4gYWRkdG8gbW9u SW1hZ2VCIGNvbnRvdXIKPj4gICAgICAgZnJhbWUKPj4gICAgICAgd2l0aHBvc3RzY3JpcHQgImV2 ZW5vZGQiOwo+Pgo+PiBmb3IgaT0yIHVwdG8gQm4gOgo+PiAgIGFkZHRvIG1vbkltYWdlQiBjb250 b3VyCj4+ICAgICAgICAgKEJbaV0gc2hpZnRlZCAoLSBjZW50ZXIgQlsxXSkgc2NhbGVkIHNjYWwp Cj4+ICAgICAgICAgc2hpZnRlZCBzaGlmdDsKPj4gZW5kZm9yIDsKPj4KPj4gJS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Cj4+IGRyYXcgbW9uSW1hZ2VCIHdpdGhjb2xv ciB3aGl0ZTsKPj4KPj4gXHN0b3BNUHBhZ2UKPj4KPj4gXHN0b3B0ZXh0Cj4+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4+IElmIHlvdXIgcXVlc3Rpb24gaXMgb2YgaW50ZXJlc3QgdG8gb3Ro ZXJzIGFzIHdlbGwsIHBsZWFzZSBhZGQgYW4gZW50cnkgdG8gdGhlIFdpa2khCj4+Cj4+IG1haWxs aXN0IDogbnRnLWNvbnRleHRAbnRnLm5sIC8gaHR0cDovL3d3dy5udGcubmwvbWFpbG1hbi9saXN0 aW5mby9udGctY29udGV4dAo+PiB3ZWJwYWdlICA6IGh0dHA6Ly93d3cucHJhZ21hLWFkZS5ubCAv IGh0dHA6Ly9jb250ZXh0LmFhbmhldC5uZXQKPj4gYXJjaGl2ZSAgOiBodHRwczovL2JpdGJ1Y2tl dC5vcmcvcGhnL2NvbnRleHQtbWlycm9yL2NvbW1pdHMvCj4+IHdpa2kgICAgIDogaHR0cDovL2Nv bnRleHRnYXJkZW4ubmV0Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gCj4gVGFjbyBI b2Vrd2F0ZXIKPiBFbHZlbmtpbmQgQlYKPiAKPiAKPiAKPiAKPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+IElmIHlvdXIgcXVlc3Rpb24gaXMgb2YgaW50ZXJlc3QgdG8gb3RoZXJzIGFzIHdl bGwsIHBsZWFzZSBhZGQgYW4gZW50cnkgdG8gdGhlIFdpa2khCj4gCj4gbWFpbGxpc3QgOiBudGct Y29udGV4dEBudGcubmwgLyBodHRwOi8vd3d3Lm50Zy5ubC9tYWlsbWFuL2xpc3RpbmZvL250Zy1j b250ZXh0Cj4gd2VicGFnZSAgOiBodHRwOi8vd3d3LnByYWdtYS1hZGUubmwgLyBodHRwOi8vY29u dGV4dC5hYW5oZXQubmV0Cj4gYXJjaGl2ZSAgOiBodHRwczovL2JpdGJ1Y2tldC5vcmcvcGhnL2Nv bnRleHQtbWlycm9yL2NvbW1pdHMvCj4gd2lraSAgICAgOiBodHRwOi8vY29udGV4dGdhcmRlbi5u ZXQKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJZiB5b3VyIHF1ZXN0aW9uIGlzIG9mIGludGVyZXN0IHRvIG90aGVycyBhcyB3ZWxsLCBw bGVhc2UgYWRkIGFuIGVudHJ5IHRvIHRoZSBXaWtpIQoKbWFpbGxpc3QgOiBudGctY29udGV4dEBu dGcubmwgLyBodHRwOi8vd3d3Lm50Zy5ubC9tYWlsbWFuL2xpc3RpbmZvL250Zy1jb250ZXh0Cndl YnBhZ2UgIDogaHR0cDovL3d3dy5wcmFnbWEtYWRlLm5sIC8gaHR0cDovL2NvbnRleHQuYWFuaGV0 Lm5ldAphcmNoaXZlICA6IGh0dHBzOi8vYml0YnVja2V0Lm9yZy9waGcvY29udGV4dC1taXJyb3Iv Y29tbWl0cy8Kd2lraSAgICAgOiBodHRwOi8vY29udGV4dGdhcmRlbi5uZXQKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18K