From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/109770 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stephen Gaito Newsgroups: gmane.comp.tex.context Subject: Re: Using ConTeXt-LMTX for modern Mathematically-Literate-Programming 2/2 Date: Wed, 2 Dec 2020 10:43:08 +0000 Message-ID: <20201202104308.1ef6b719@nn01> References: <20201130095142.7d47cb2d@nn01> <83c1393f-f11e-9260-9593-16c6f8c42189@xs4all.nl> Reply-To: mailing list for ConTeXt users Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="15818"; mail-complaints-to="usenet@ciao.gmane.io" To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Wed Dec 02 11:43:48 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 1kkPbw-000400-J5 for gctc-ntg-context-518@m.gmane-mx.org; Wed, 02 Dec 2020 11:43:48 +0100 Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id DD0F01AAAAC; Wed, 2 Dec 2020 11:43:16 +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 w6Tp05lMU9d3; Wed, 2 Dec 2020 11:43:14 +0100 (CET) Original-Received: from zapf.ntg.nl (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 8A30A1AAAB2; Wed, 2 Dec 2020 11:43:14 +0100 (CET) Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 173501AAAAC for ; Wed, 2 Dec 2020 11:43:13 +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 GHOMhdpxQYDP for ; Wed, 2 Dec 2020 11:43:12 +0100 (CET) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=62.13.148.108; helo=outmail148108.authsmtp.net; envelope-from=stephen@perceptisys.co.uk; receiver= Original-Received: from outmail148108.authsmtp.net (outmail148108.authsmtp.net [62.13.148.108]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by zapf.ntg.nl (Postfix) with ESMTPS id EC9E61AAAAB for ; Wed, 2 Dec 2020 11:43:11 +0100 (CET) Original-Received: from punt21.authsmtp.com (punt21.authsmtp.com [62.13.128.151]) by punt15.authsmtp.com. (8.15.2/8.15.2) with ESMTP id 0B2AhAl7074417 for ; Wed, 2 Dec 2020 10:43:10 GMT (envelope-from stephen@perceptisys.co.uk) Original-Received: from mail-c237.authsmtp.com (mail-c237.authsmtp.com [62.13.128.237]) by punt21.authsmtp.com. (8.15.2/8.15.2) with ESMTP id 0B2AhAnA031506 for ; Wed, 2 Dec 2020 10:43:10 GMT (envelope-from stephen@perceptisys.co.uk) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=perceptisys.co.uk; s=authsmtp; t=1606905790; bh=wogXLtNIHi8l+SX5a/R/8xpY2ln/QKAsOwCeicvXKXo=; h=Date:From:To:Subject; b=FStH4MDK95/4n75cepNFQUXUeAsfNGO3kdHZSw/07TmMSSG5QiyK0W4PmlRJPbLGN r524XCM6nI7BhmkXJCT/WDlG3Q1GKpc41ulRcVd8E7H3sswjftp7gFRxg/Y2UaPDXE Egi6wz27tA8n9EppuYzKinfOl6M6/sqWAo18gddI= Original-Received: from nn01 (cust156-dsl91-135-5.idnet.net [91.135.5.156]) (authenticated bits=0) by mail.authsmtp.com (8.15.2/8.15.2) with ESMTPA id 0B2Ah9Ym022164 for ; Wed, 2 Dec 2020 10:43:09 GMT (envelope-from stephen@perceptisys.co.uk) In-Reply-To: <83c1393f-f11e-9260-9593-16c6f8c42189@xs4all.nl> X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-pc-linux-gnu) X-Server-Quench: 2b551380-348b-11eb-8a6b-8434971169dc X-AuthReport-Spam: If SPAM / abuse - report it at: http://www.authsmtp.com/abuse X-AuthRoute: OCd0YQwXClZOUAkC Ci4CJDdNUw4oPgFN Gg4YawBdZkcKQwJN PQNRKVxPPU0AbVdF VHhVBxpUUkIFDDBq aQpTbRVcYkBKXA9q WQZAQ0xTFwB2BAIA AxgBUBxtd0tGCnwB PU8LA3BZXkV8cQh1 Rk1cW29UYGJha2gf TUNcf1FJcQIfLAJN O1YtSXsJYmEOYXth QV4/NCYLMGcXGwJp bUQGKlQOTFYXK3YB XBEEEn0EGks5ShUv ajgDFm5UEkELekA1 PVY7XzBQFhYOCgBb Fl1MCyZdI0hEYys3 ABlTQUNbKCdaTj1V BxgpJBAAWHsIMgAA X-Authentic-SMTP: 61633731343239.1024:7600 X-AuthFastPath: 0 (Was 255) X-AuthVirus-Status: No virus detected - but ensure you scan with your own anti-virus system. 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:109770 Archived-At: SGFucywKCk1hbnkgdGhhbmtzIGZvciB5b3VyIGNvbW1lbnRzLi4uIHNlZSBiZWxvdy4KCk9uIE1v biwgMzAgTm92IDIwMjAgMTk6MzE6NTUgKzAxMDAKSGFucyBIYWdlbiA8ai5oYWdlbkB4czRhbGwu bmw+IHdyb3RlOgoKPiBPbiAxMS8zMC8yMDIwIDEwOjUxIEFNLCBTdGVwaGVuIEdhaXRvIHdyb3Rl Ogo+ID4gSGVsbG8gKGFnYWluKSwKPiA+IAo+ID4gVGhpcyBlbWFpbCBpcyBmdXJ0aGVyIHRvIG15 IHByZXZpb3VzICJVc2luZyBDb25UZVh0LUxNVFggZm9yIG1vZGVybgo+ID4gTWF0aGVtYXRpY2Fs bHktTGl0ZXJhdGUtUHJvZ3JhbW1pbmcgMS8yIiBlbWFpbC4uLgo+ID4gCj4gPiBNeSB1bHRpbWF0 ZSBnb2FsIGluIHVzaW5nIENvblRlWHQtTE1UWCBhcyBhCj4gPiBNYXRoZW1hdGljYWxseS1MaXRl cmF0ZS1Qcm9ncmFtbWluZyB0b29sLCBpcyB0byBhY3R1YWxseSB3cml0ZSBhCj4gPiBrZXJuZWwg Ik1hdGhlbWF0aWNhbCBMYW5ndWFnZSIgaW4gQU5TSS1DICh3cmFwcGVkIGluIEx1YSkgd2hpY2gg aXMKPiA+IHRoZW4gaW1wb3J0ZWQgYmFjayBpbnRvIENvblRlWHQtTE1UWCBhcyBhIHN0YW5kYXJk IEx1YSBtb2R1bGUgKHdpdGgKPiA+IGFuIEFOU0ktQyBzaGFyZWQgbGlicmFyeSkuCj4gCj4gSnVz dCBjdXJpb3VzOiBkbyB5b3UgdGhpbmsgdGhhdCB1c2luZyBjIGluc3RlYWQgb2YgbHVhIGZvciB0 aGF0IGhhcyAKPiBhZHZhbnRhZ2VzPwoKVGhpcyBpcyBhIHZlcnkgZ29vZCBhbmQgaW1wb3J0YW50 IHF1ZXN0aW9uLiBPbmUgSSBoYXZlIGFza2VkIG15c2VsZgpyZXBlYXRlZGx5LgoKTXkgdWx0aW1h dGUgZ29hbCBpcyB0byB3cml0ZSBhIHNtYWxsIG1hdGhlbWF0aWNhbCBrZXJuZWwgaW4gQU5TSS1D LAp3aGljaCBpcywgdXNpbmcgW0ZyYW1hLUNdKGh0dHBzOi8vZnJhbWEtYy5jb20vKSwgcHJvdmVu ICpjb3JyZWN0Ki4KClRvIG15IGtub3dsZWRnZSwgTHVhIGhhcyBubyBzaW1pbGFyIHRvb2wgZm9y IGNvcnJlY3RuZXNzIHByb29mcy4KCkVxdWFsbHkgaW1wb3J0YW50bHksIHRoZXJlIGFyZSBhIHZl cnkgd2lkZSByYW5nZSBvZiB2ZXJ5IGRpZmZlcmVudApjb21waWxlcnMgd2hpY2ggY29tcGlsZSBB TlNJLUMgZm9yIGFuIGVxdWFsbHkgdmVyeSB3aWRlIHJhbmdlIG9mIENQVSdzLiAKCkFnYWluLCB0 byBteSBrbm93bGVkZ2UsIEx1YSB2NS40IGhhcyBvbmx5IG9uZSBpbXBsZW1lbnRhdGlvbiAodGhv dWdoCnRoaXMgaW1wbGVtZW50YXRpb24gKmNhbiogYmUgY29tcGlsZWQgZm9yIGEgdmVyeSB3aWRl IHJhbmdlIG9mIENQVSdzKS4KClRoZSBwcm9ibGVtIGhlcmUgaXMgdGhhdCBNYXRoZW1hdGljaWFu cyBhcmUgaW5oZXJlbnRseSB2ZXJ5CmNvbnNlcnZhdGl2ZSBhYm91dCB0aGUgY29uY2VwdCBvZiAi cHJvb2YiIChpdCBoYXMgdGFrZW4gd2VsbCBvdmVyIDIsMDAwCmhhcmQgeWVhcnMgdG8gZGV2ZWxv cCBvdXIgY3VycmVudCB1bmRlcnN0YW5kaW5nKS4gTXkga2VybmVsIHdpbGwgYmUgYW4KZXh0ZW5z aWJsZSAicHJvb2YiIGVuZ2luZS4gRm9yIG1hdGhlbWF0aWNpYW5zIHRvIHRydXN0IGl0LCB0aGlz IHByb29mCmVuZ2luZSBtdXN0IGl0c2VsZiBiZSBwcm92ZW4gY29ycmVjdCAob3IgYXMgY29ycmVj dCBhcyBjdXJyZW50bHkKcG9zc2libGUpLiBJdCBtdXN0IGFsc28gYmUgc2ltcGxlIGVub3VnaCB0 byAqc2VlKiB0aGF0IGl0IGlzIGNvcnJlY3QKKGhlbmNlIHRoZSBMaXRlcmF0ZS1Qcm9ncmFtbWlu ZyBhcHByb2FjaCksICphbmQqIChzaW5jZSBJIGNhbiBub3QgZXZlbgpob3BlIHRvIHByb3ZlIHRo ZSBjb21waWxlcnMgYXJlICpjb3JyZWN0KiksIHRoZXJlIG11c3QgYmUgbWFueQoqZGlmZmVyZW50 KiBjb21waWxlciBpbXBsZW1lbnRhdGlvbnMgKHRvIHNob3cgdGhhdCB0aGUgcmVzdWx0cyBhcmUg bm90CmFydGVmYWN0cyBvZiBvbmUgcGFydGljdWxhciBpbXBsZW1lbnRhdGlvbikuCgpGaW5hbGx5 LCB0aGUgY29tcHV0YXRpb25hbCBjb21wbGV4aXR5IG9mIG15IHByb29mIGVuZ2luZSwgd2lsbCBi ZQpjb21wYXJhYmxlIHRvIE1ldGFGdW4vTWV0YVBvc3QuLi4gd2hpY2ggSSBzdXNwZWN0IHlvdSB3 b3VsZCBub3QKY29uc2lkZXIgaW1wbGVtZW50aW5nIGluIHB1cmUgTHVhLiBTb21lIHRoaW5ncyBh cmUgZmFzdGVyIGluIEMuCgpTbyB5ZXMgSSBkbyBuZWVkIHRvIGltcGxlbWVudCBpdCBpbiBBTlNJ LUMgd3JhcHBlZCBpbiBMdWEgKHNvIHRoYXQgaXQKY2FuIGJlIHVzZWQgZnJvbSAqaW5zaWRlKiBD b25UZVh0KS4KClNpbmNlIHRoaXMgaXMgYSBtYXRoZW1hdGljYWwgdG9vbCwgImVtYmVkZGluZyIg aXQgaW4gQ29uVGVYdCBpcyBpZGVhbC4KCkFzIGEgbWF0aGVtYXRpY2lhbiB3cml0ZXMsIHdoYXQg dGhleSB3cml0ZSBnZXRzIHByb29mLWNoZWNrZWQKYXV0b21hdGljYWxseS4uLiBpbiB0aGUgZG9j dW1lbnQgdGhleSBhcmUgd3JpdGluZywgYW5kIGJ5IHRoZQp0eXBlc2V0dGluZyB0b29sIHRoZXkg YXJlIHVzaW5nIGZvciB0aGUgZmluaXNoZWQgUERGLiA6LSkKCkNvblRlWHQgKHZpYSBMdWFNZXRh VGV4KSBtYWtlcyB0aGlzIHBvc3NpYmxlIGluIGEgd2F5IG5hdGl2ZSBUZVgvTGFUZVgKbmV2ZXIg Y291bGQuCgpTbyBvbmNlIGFnYWluLCBtYW55IG1hbnkgdGhhbmtzIGZvciB0aGUgdmlzaW9uIHRv IGNyZWF0ZSBzdWNoIGEKZmxleGlibGUgdG9vbCEKCj4gCj4gPiBUaGlzIHdvdWxkIGFsbG93IHRo ZSBvdXRwdXQgb2YgImNvZGUiIGluIG15ICJNYXRoZW1hdGljYWwgTGFuZ3VhZ2UiCj4gPiB0byBi ZSBkaXJlY3RseSBlbWJlZGRlZC90eXBlc2V0IGluIHRoZSBvdXRwdXQgb2YgbXkgTWF0aGVtYXRp Y2FsCj4gPiBkb2N1bWVudC4KPiA+IAo+ID4gKFRoZSB1bHRpbWF0ZSBnb2FsIGlzIHRvIGVuc3Vy ZSB0aGF0IHRoZXJlIGlzIE5PIHdpc2hmdWwgdGhpbmtpbmcKPiA+IHRoYXQgdGhlIGNvZGUgaXMg ImNvcnJlY3QiICgianVzdCB0cnVzdCBtZSIpLi4uIGFsbCByZXN1bHRzIHdvdWxkIGJlCj4gPiBk aXJlY3RseSB2aXNpYmxlIGluIHRoZSBQREYpLgo+ID4gCj4gPiBBbGFzLCB3aGlsZSwgZm9yIG90 aGVyIHJlYXNvbnMsIHRyeWluZyB0byB1c2UgdGhlIEx1YS1DSlNPTiBMdWEKPiA+IG1vZHVsZSBm cm9tIHdpdGhpbiBDb25UZVh0LUxNVFggKHdoaWNoIGFsc28gbWFrZXMgdXNlIG9mIGEgc2hhcmVk Cj4gPiBsaWJyYXJ5IHdyaXR0ZW4gaW4gQyksIEkgZmluZCB0aGF0IHRoZSBjdXJyZW50IENvblRl WHQtTE1UWCBpcwo+ID4gbWlzc2luZyAoYW1vbmcgcG90ZW50aWFsbHkgb3RoZXJzKSB0aGUgYGx1 YV9jaGVja3N0YWNrYCBzeW1ib2w6Cj4gCj4gY291bGQgYmUgLi4gd2UgZG9udCcgdXNlIGl0Cj4g Cj4gPj4gLi4uWHQvdGV4L3RleG1mLWNvbnRleHQvdGV4L2NvbnRleHQvYmFzZS9ta2l2L2wtcGFj a2FnZS5sdWE6MzMzOgo+ID4+IGVycm9yIGxvYWRpbmcgbW9kdWxlICdjanNvbicgZnJvbSBmaWxl Cj4gPj4gJy91c3IvbG9jYWwvbGliL2x1YS81LjQvY2pzb24uc28nOgo+ID4+IC91c3IvbG9jYWwv bGliL2x1YS81LjQvY2pzb24uc286IHVuZGVmaW5lZCBzeW1ib2w6IGx1YV9jaGVja3N0YWNrCj4g PiAKPiA+IGV2ZW4gd2hlbiB1c2luZyB0aGUgQ29uVGVYdC9MdWFNZXRhVGVYIGAtLXBlcm1pdGVs b2FkbGliYCBzd2l0Y2guCj4gPiAKPiA+IChOb3RlIHRoYXQgdGhpcyBMdWEtQ0pTT04gbW9kdWxl IGRvZXMgd29yayB3aXRoIHRoZSBuYXRpdmUgNS40IEx1YSkuCj4gCj4gd2h5IG5vdCB1c2UgdGhl IGJ1aWxkIGluIGhlbHBlcnMKClRoZSB0ZXN0LCB3aGljaCB0cmlnZ2VyZWQgdGhlIGVycm9yIG1l c3NhZ2UgKGFib3ZlKSwgd2FzIHRvIHByb3ZlIHRoYXQKSSBjb3VsZCBzZW5kIFtOQVRTXShodHRw czovL25hdHMuaW8vKSBtZXNzYWdlcyBmcm9tICppbnNpZGUqIENvblRlWHQuCgoiT3V0IG9mIHRo ZSBib3giLCB0aGUgW0x1YS1OQVRTXShodHRwczovL2dpdGh1Yi5jb20vRGF3bkFuZ2VsL2x1YS1u YXRzKQpyZXF1aXJlczoKCi0gbHVhc29ja2V0ICh3aGljaCBMdWFNZXRhVGV4IHByb3ZpZGVzLCBt YW55IG1hbnkgdGhhbmtzISkKCi0gbHVhLWNqc29uICh3aGljaCBpcyBhbiBleHRlcm5hbCBzaGFy ZWQgbGlicmFyeSBhbmQgaXMgd2hhdCBJIHdhcwogIHRlc3RpbmcpCgpGb3J0dW5hdGVseSwgSSBm b3VuZCBhIGNvdXBsZSBvZiBwdXJlIEx1YSBKU09OIHRvb2xzIHdoaWNoIEkgY291bGQgZ2V0Ckx1 YS1OQVRTIHRvIHVzZSB3aXRoIGEgb25lIGxpbmUgY2hhbmdlLiAoQW5kLCBmb3IgdGhlIHJlY29y ZCwgSSAqY2FuKgpzZW5kIGFuZCByZWNlaXZlIG1lc3NhZ2VzIGZyb20gYSBOQVRTIHNlcnZlciBm cm9tIGluc2lkZSBDb25UZVh0IDotKSAgCgpJZiBJIGZpbmQgSSBuZWVkIHRvIG1ha2UgY2hhbmdl cyB0byB0aGUgTHVhLU5BVFMgY29kZSwgSSB3aWxsIHByb2JhYmx5CnVzZSBMdWFNZXRhVGVYJ3Mg aW50ZXJuYWwgSlNPTiBpbXBsZW1lbnRhdGlvbiBhcyB5b3Ugc3VnZ2VzdCBiZWxvdwooYWdhaW4g bWFueSB0aGFua3MgZm9yIGVtYmVkZGluZyBhIEpTT04gaW1wbGVtZW50YXRpb24pLgoKVXNpbmcg THVhLU5BVFMgaXMgcGFydCBvZiBteSBsYXJnZXIgZ29hbCB0byBwYXJhbGxlbGl6ZSB0aGUgdHlw ZXNldHRpbmcKb2YgbGFyZ2UgZG9jdW1lbnRzIHVzaW5nIENvblRlWHQgKG1vcmUgb24gdGhpcyBp biBhbm90aGVyIGVtYWlsKS4KCj4gCj4gXHVzZW1vZHVsZVtqc29uXQo+IAo+IFxzdGFydHRleHQK PiAKPiBcc3RhcnRsdWFjb2RlCj4gICAgICBsb2NhbCBsID0geyBhID0gMSwgYiA9IHsgYyA9ICJk IiB9IH0KPiAgICAgIGluc3BlY3QobCkKPiAgICAgIGxvY2FsIGogPSB1dGlsaXRpZXMuanNvbi50 b2pzb24obCkKPiAgICAgIGluc3BlY3QoaikKPiAgICAgIGxvY2FsIHMgPSB1dGlsaXRpZXMuanNv bi50b3N0cmluZyhqKQo+ICAgICAgaW5zcGVjdChzKQo+ICAgICAgaW8uc2F2ZWRhdGEoInRlbXAu anNvbiIsaikKPiAgICAgIGxvY2FsIHQgPSB1dGlsaXRpZXMuanNvbi5sb2FkKCJ0ZW1wLmpzb24i KQo+ICAgICAgaW5zcGVjdCh0KQo+IFxzdG9wbHVhY29kZQo+IAo+IFxzdG9wdGV4dAo+IAo+ID4g MS4gSXMgdGhpcyBhbiBvdmVyc2lnaHQgYW5kIGAtLXBlcm1pdGxvYWRsaWJgIGlzIG1lYW50IHRv IGJlIHdvcmtpbmcKPiA+ICAgICBub3c/Cj4gCj4gSSBkb250JyBrbm93LiBJIG5ldmVyIHVzZSBl eHRlcm5hbCBtb2R1bGVzIG15c2VsZiAoaW4gbHVhdGV4IEkgdXNlKGQpIAo+IGZmaSBmb3Igc29t ZSBkYXRhYmFzZSBhY2NlcyBidXQgdGhvc2UgKGFuZCBhIGZldyBtb3JlKSBhcmUgYnVpbGQgaW4g Cj4gbHVhbWV0YXRleCBhcyBvcHRpb25hbCBtb2R1bGVzIChhcyBtaW5pbWFsaXN0aWMgYXMgcG9z c2libGUgbHVhCj4gaXRzZWxmIGNhbiBkbyBtb3N0KS4gSSBkb24ndCB3YW50IGEgYmxvYXRlZCBi aWFucnkgd2l0aCBhbGwga2luZCBvZiAKPiBkZXBlbmRlbmNpZXMgdGhhdCBmb3JjZSBjb25zdGFu dCB1cGRhdGVzLgoKQSB2ZXJ5IGltcG9ydGFudCBjb25zaWRlcmF0aW9uLgoKPiAKPiA+IDIuIElz IHRoaXMgYSB0cml2aWFsIGZpeCAoYW5kIG1pZ2h0IGJlIGZpeGVkIHNvb24gLS0gdGltZQo+ID4g cGVybWl0dGluZyk/Cj4gCj4gSXQncyBwcm9iYWJseSBhIHNpZGUgZWZmZWN0IG9mIGJpbmFyaWVz IGJlaW5nIHN0cmlwcGVkIGNxLiBmdW5jdGlvbnMgCj4gYmVpbmcgaW5saW5lZCBhbmQgd2UgZG9u J3QgdXNlIGx1YV9jaGVja3N0YWNrIGluIGx1YW1ldGF0ZXguIFdlIGNhbgo+IGF0IHNvbWUgcG9p bnQgcHJvYmFibHkgYWRkIHNvbWUgJ2Rvbid0IHN0cmlwJyBmZWF0dXJlICh3aGljaCB0aGVuIG9m Cj4gY291cnNlIGV4cG9zZXMgYSB3aG9sZSBidW5jaCBtb3JlIHRoYXQgdGhlbiBmb3Igc3VyZSBn ZXRzIGFidXNlZCBhbmQKPiB0cmlnZ2VycyBpc3N1ZXMgd2hlbiB0aGV5IGNoYW5nZSkKPiAKPiA+ IDMuIElzIHRoaXMgYSByYXRoZXIgY29tcGxleCByZWZhY3RvcmluZyBvZiB0aGUgY29kZS9idWls ZCBzeXN0ZW0KPiA+IChhbmQgaGVuY2UgbWlnaHQgdGFrZSBzb21lIHRpbWUgYmVmb3JlIGEgZml4 IGNhbiBiZSByb2xsZWQKPiA+ICAgICBvdXQpPwo+IAo+IGR1bm5vLCBhIHN1Y2ggdGhpbmdzIGFy ZSBkcml2ZW4gYnkgZGVtYW5kIChhbmQgd2hlbiBpdCBkb2Vzbid0IGZpdAo+IGludG8gdGhlICdm dW4gdG8gZG8nIGl0IGhhcyB0byBiZSBwYXJ0IG9mIHNvbWUgcHJvamVjdCkKPiAKPiA+IDQuIElz IHRoaXMgYSBjYXNlIG9mICJ0aGUgYGx1YV9jaGVja3N0YWNrYCBzeW1ib2wgd2lsbCBuZXZlciBi ZQo+ID4gcGFydCBvZiBsdWFtZXRhdGV4Ij8KPiAKPiBkdW5ubywgaSBoYXZlbid0IGZpZ3VyZWQg b3V0IGhvdyB0byBzZWxlY3RpdmVseSBzdHJpcCBhbmQgbWFraW5nIGx1YSAKPiBpbnRvIGEgbGli IHRoYXQgaXMgbG9hZGVkIGF0IHJ1bnRpbWUgYWRkcyBhIGRlcGVuZGVuY3kgYW5kCj4gaW5zdGFs bGF0aW9uIGhhc3NsZSAoYXBhcnQgZnJvbSB0aGUgZmFjdCB0aGF0IHdoZW4gdXNlcnMgdGhlbiBr aWNrIGluCj4gdGhlaXIgb3duIHZhcmlhbnQgd2UgbmVlZCB0byBzdXBwb3J0IGl0IHdoaWNoIGFn c2luIGlzIG5vdCB0aGF0IG11Y2gKPiBmdW4pCj4gCj4gPiBBbnkgb2YgdGhlIGFib3ZlIHNjZW5h cmlvcyBpcyBPSyAodGhvdWdoIHNjZW5hcmlvIDQgd291bGQgYmUgYQo+ID4gZGlzYXBwb2ludG1l bnQgYXMgaXQgbWVhbnMgbm8gc2hhcmVkIGxpYnJhcnkgbHVhIG1vZHVsZXMgY291bGQgYmUKPiA+ IHVzZWQgaW4gQ29uVGVYdCkuLi4KPiAKPiBhdCBzb21lIHBvaW50ICh3aGVuIHdlJ3JlIHN0YWJs ZSBhbmQgbW9qY2EgYW5kIGkgaGF2ZSBzb21lIG1vcmUgCj4gaW5mcmFjdHN0dWNydXJlIHNldCB1 cCwgd2UgaGF2ZSBzb21lIGlkZWFzIGJ1dCBhcmUgbm90IGluIGEgaHVycnkpCj4gdGhlIHNvdXJj ZSBvZiBsdWF0ZXggd2lsbCBiZSBpbiB0aGUgZGlzdHJpYnV0aW9uIGFuZCB0aGVuIHVzZXJzIGNh bgo+IGFkZCB0aGVpciBvd24gb3B0aW9uYWwgbW9kdWxlcwoKSWYgeW91IGV2ZXIgd2FudC9uZWVk IGEgYmV0YSB0ZXN0ZXIgb2Ygd3JpdGluZyBhbmQgYnVpbGRpbmcgdGhlc2UKb3B0aW9uYWwgbW9k dWxlcywgcGxlYXNlIGxldCBtZSBrbm93LgoKRm9yIHRoZSBtb21lbnQsIEkgc3VzcGVjdCBJIHdp bGwgInNpbXBseSIgdXNlIEx1YS1OQVRTIHRvIHJlcXVlc3QgdGhlCnByb29mLWNvbXB1dGF0aW9u cyBmcm9tIGFuIGV4dGVybmFsIERvY2tlci9Qb2RtYW4gY29udGFpbmVyIHByb2Nlc3MuCgpHaXZl biB0aGUgc2l6ZSBhbmQgY29tcGxleGl0eSBvZiB0aGUgcHJvb2YtY29tcHV0YXRpb25zLCB0aGUg cmVxdWlyZWQKbmV0d29yayB0cmFmZmljIHdpbGwgcHJvYmFibHkgYmUgbmVhcmx5IGluc2lnbmlm aWNhbnQuCgo+IAo+ID4gLi4uIGl0IHdvdWxkIGhvd2V2ZXIgYmUgdXNlZnVsIHRvIGhhdmUgYW4g aWRlYSBvZiB3aGljaCBzY2VuYXJpbyBpcwo+ID4gbW9zdCBsaWtlbHkuCj4gPiAKCkFzIEkgc2Fp ZCBiZWZvcmUsIGFnYWluIG1hbnkgdGhhbmtzIGZvciBhIHdvbmRlcmZ1bCAoYW5kIHN0YWJsZSkg dG9vbCEKClJlZ2FyZHMsCgpTdGVwaGVuIEdhaXRvCgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhbnMgSGFnZW4gfCBQUkFHTUEgQURFCj4g ICAgICAgICAgICAgICAgUmlkZGVyc3RyYWF0IDI3IHwgODA2MSBHSCBIYXNzZWx0IHwgVGhlIE5l dGhlcmxhbmRzCj4gICAgICAgICB0ZWw6IDAzOCA0NzcgNTMgNjkgfCB3d3cucHJhZ21hLWFkZS5u bCB8IHd3dy5wcmFnbWEtcG9kLm5sCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCklmIHlvdXIgcXVlc3Rpb24gaXMgb2YgaW50ZXJlc3QgdG8gb3RoZXJzIGFzIHdlbGwsIHBs ZWFzZSBhZGQgYW4gZW50cnkgdG8gdGhlIFdpa2khCgptYWlsbGlzdCA6IG50Zy1jb250ZXh0QG50 Zy5ubCAvIGh0dHA6Ly93d3cubnRnLm5sL21haWxtYW4vbGlzdGluZm8vbnRnLWNvbnRleHQKd2Vi cGFnZSAgOiBodHRwOi8vd3d3LnByYWdtYS1hZGUubmwgLyBodHRwOi8vY29udGV4dC5hYW5oZXQu bmV0CmFyY2hpdmUgIDogaHR0cHM6Ly9iaXRidWNrZXQub3JnL3BoZy9jb250ZXh0LW1pcnJvci9j b21taXRzLwp3aWtpICAgICA6IGh0dHA6Ly9jb250ZXh0Z2FyZGVuLm5ldApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwo=