From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/95326 Path: news.gmane.org!not-for-mail From: Mohammad Hossein Bateni Newsgroups: gmane.comp.tex.context Subject: hz in MkIV Date: Mon, 4 Jul 2016 00:56:37 -0400 Message-ID: Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=94eb2c04fa8c55551c0536c829a3 X-Trace: ger.gmane.org 1467608246 12947 80.91.229.3 (4 Jul 2016 04:57:26 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 4 Jul 2016 04:57:26 +0000 (UTC) To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Mon Jul 04 06:57:16 2016 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from zapf.boekplan.nl ([5.39.185.232] helo=zapf.ntg.nl) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1bJvwZ-0005LE-Fm for gctc-ntg-context-518@m.gmane.org; Mon, 04 Jul 2016 06:57:15 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 3881210C13; Mon, 4 Jul 2016 06:56:54 +0200 (CEST) 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 O287nZc54nyQ; Mon, 4 Jul 2016 06:56:53 +0200 (CEST) Original-Received: from zapf.ntg.nl (localhost [IPv6:::1]) by zapf.ntg.nl (Postfix) with ESMTP id 667EA10C1C; Mon, 4 Jul 2016 06:56:53 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 8FD4A10C14 for ; Mon, 4 Jul 2016 06:56:51 +0200 (CEST) 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 JE96mbgvsohK for ; Mon, 4 Jul 2016 06:56:50 +0200 (CEST) Original-Received: from mail-oi0-f45.google.com (mail-oi0-f45.google.com [209.85.218.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by zapf.ntg.nl (Postfix) with ESMTPS id 70A3410C13 for ; Mon, 4 Jul 2016 06:56:40 +0200 (CEST) Original-Received: by mail-oi0-f45.google.com with SMTP id s66so181043417oif.1 for ; Sun, 03 Jul 2016 21:56:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to; bh=i1oi3wWqOqQ7XYAo3gapFu5ob1LRhE68Wj+5R7HllF4=; b=gdunpzH/CjF7z/1ZS7pEoVs6ab+y6cLxcuBKzoHCC6tbsmVmCNFeK6yCNnw32tbQCK PGQbeYcokg7N5j9qSJ9IQqMD2pG/fjtChLvAGfn6LB3cg5KfK5dp9SNpYS5YVlEUFnLc 5jyqsx3gpFTps6R9pGm45sxoIU+5NCuuxVkyCsgrPg1xqEZ+uifgFXD9tDLJr9Pbh2Xi tipKu7V0JSOfeNZT44w0H1RlhIOcl/mkKeEINViOIZrbLkaZPSoaqjlnaeK6kffvXh55 j0PhKh8GhYyccKdr25CNw418jMKrsgQmEbnfNZ+Xa7x8qe1B7tczX2G3a3asFGJ8Lqk/ Fueg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=i1oi3wWqOqQ7XYAo3gapFu5ob1LRhE68Wj+5R7HllF4=; b=Zq6GY3PJU5lNwVL4Iu3JF2gLFskz2LVLPx2YFerh43wzlUnTXq3goB3mE4W+skCzyj k6EsMHqrV2TutJpNk27bg6+tI+EZU1yYzst9mJQbRZaVLsiy7eJPcJP0493JtcDmrnjx kFScIRlcAsIJJJidYoyRorBOJMp1scjJZd/x/z6K+kUH09kU2gAL8RpgL/tw/V+uNRM8 yjUqbtNJMKTHN6ejwRq2PHF5i98n+xiga/+g4NiG/J6p8fps1EdYCJ/XXVA2svamHl5f cusjMrCYLMPH2owd4LTJXyEoeKdjgn3GpQtS+d+9Ikl3V04cxaANQHH0T84MgeywG3sm iPew== X-Gm-Message-State: ALyK8tKJRWuZPM+YhLZUPvSFIvYMaCMbwdUBOdeykeGea5wGvYQIq07Hz5h3qN8F9nguSYvla3//PKOkYkDavg== X-Received: by 10.157.45.193 with SMTP id g59mr5909342otb.48.1467608198361; Sun, 03 Jul 2016 21:56:38 -0700 (PDT) Original-Received: by 10.157.46.104 with HTTP; Sun, 3 Jul 2016 21:56:37 -0700 (PDT) X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.16 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.org gmane.comp.tex.context:95326 Archived-At: --94eb2c04fa8c55551c0536c829a3 Content-Type: multipart/alternative; boundary=94eb2c04fa8c5555170536c829a1 --94eb2c04fa8c5555170536c829a1 Content-Type: text/plain; charset=UTF-8 Hi, In MkIV, the syntax for using hz seems to have changed from \setupfonthandling to \setupfontexpansion (similarly for protrusion). What is the equivalent of the following? Is this feature supported in MkIV and LuaTeX? I tried changing/adding entries to fonts.expansions.vectors.quality (and .default) to no apparent avail. \startfonthandling [hz] \defineadjustfactor A .5 \defineadjustfactor B .7 \defineadjustfactor C .7 ... \stopfonthandling In any case, I'm happy that hz works for Arabic/Farsi despite some warnings suggesting the contrary ( https://mailman.ntg.nl/pipermail/ntg-context/2008/029765.html). It does make certain Farsi texts look better, however, support for tatweel/kashida would be ideal. In fact, I was trying to see if I could somehow get it to work, building on top of hz. Hans, do you have any suggestions for this? Would this be feasible and/or worth trying? I once converted Vafa Khalighi's XeTeX-based code to Lua but ran into several setbacks. (The idea is to insert a sequence of (ZWJ,\nobreak,stretchable leader,\nobreak,ZWJ) between certain character pairs that join one another.) Here are some of the issues I faced: 1) This could not be turned off and on within a paragraph because I was hooking into processors.before action. 2) The mechanism for some (all?) center alignments (including default figure captions) interferes with what I was hacking (or, to be more precise, it's the other way around) and causes unnecessary use of tatweel in those settings. 3) Later I noticed that the added sequence did not inherit many properties (like font style or color). 4) The optimum values for the stretches I put in depend on the context, particularly because some environments manipulate \spaceskip for other reasons. Sorry for the mumbling. I can explain more if anyone is interested in helping to improve this functionality. Attached is what I have now. Thanks, MHB --94eb2c04fa8c5555170536c829a1 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

In MkIV, the syntax for using hz se= ems to have changed from \setupfonthandling to \setupfontexpansion (similar= ly for protrusion).=C2=A0 What is the equivalent of the following?=C2=A0 Is= this feature supported in MkIV and LuaTeX?=C2=A0 I tried changing/adding e= ntries to fonts.expansions.vectors.quality (and .default) to no apparent av= ail.


\startfonthandling [hz]=C2=A0<= /div>
=C2=A0 \defineadjustfactor A .5
=C2=A0 \defineadjustfac= tor B .7
=C2=A0 \defineadjustfactor C .7=C2=A0
=C2= =A0 ...=C2=A0
\stopfonthandling


=
In any case, I'm happy that hz works for Arabic/Farsi despit= e some warnings suggesting the contrary (https://mailman.ntg.nl/pipermail/nt= g-context/2008/029765.html).=C2=A0 It does make certain Farsi texts loo= k better, however, support for tatweel/kashida would be ideal.=C2=A0 In fac= t, I was trying to see if I could somehow get it to work, building on top o= f hz.=C2=A0 Hans, do you have any suggestions for this?=C2=A0 Would this be= feasible and/or worth trying?

I once converted Vafa Khalighi's XeTeX-based code t= o Lua but ran into several setbacks. =C2=A0(The idea is to insert a sequenc= e of (ZWJ,\nobreak,stretchable leader,\nobreak,ZWJ) between certain charact= er pairs that join one another.) =C2=A0Here are some of the issues I faced:=
1) This could not be turned off and on within a paragraph becaus= e I was hooking into processors.before action.
2) The mechanism f= or some (all?) center alignments (including default figure captions) interf= eres with what I was hacking (or, to be more precise, it's the other wa= y around) and causes unnecessary use of tatweel in those settings.
3) Later I noticed that the added sequence did not inherit many propertie= s (like font style or color).
4) The optimum values for the stret= ches I put in depend on the context, particularly because some environments= manipulate \spaceskip for other reasons.

Sorry fo= r the mumbling.=C2=A0 I can explain more if anyone is interested in helping= to improve this functionality.=C2=A0 Attached is what I have now.

Thanks,
MHB
--94eb2c04fa8c5555170536c829a1-- --94eb2c04fa8c55551c0536c829a3 Content-Type: application/octet-stream; name="p-dabeer-kashida.mkiv" Content-Disposition: attachment; filename="p-dabeer-kashida.mkiv" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iq7jznrn0 JSBBIG1vZHVsZSB0byBnZXQga2FzaGlkYSB3b3JraW5nIGluIENPTlRFWFQuCiUgVmVyc2lvbjog MC4xOAolIDAxLzE2LzIwMTYKCiUlIENvcHlyaWdodCAyMDE1LCAyMDE2IE1vaGFtbWFkIEhvc3Nl aW4gQmF0ZW5pCiUlCiUlIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiUlIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiUlIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiUl IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiUlCiUlIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAolJSBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgolJSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCiUlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CiUlICAgIAolJSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQolJSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KCiUgdG9kbzogYWRkIHByb3BlciBj b3B5cmlnaHQKJSB0b2RvOiBjbGVhbnVwCiUgdG9kbzogdHVybiBpbnRvIG1vZHVsZT8KJSB0b2Rv OiBvcHRpb24gdG8gdHVybiB0aGUgZnVuY3Rpb25hbGl0eSBvbiBvciBvZmYKCiUlIEFuIGluY2x1 ZGUgZ3VhcmQKXGlmZGVmaW5lZFxkYWJlZXJrYXNoaWRhcGFja2FnZVxlbmRpbnB1dFxmaQpcZGVm XGRhYmVlcmthc2hpZGFwYWNrYWdle2xvYWRlZH0KCiUlIFRoZSBtYWluIHBhcnQgb2YgdGhlIGNv ZGUgaXMgaW4gTHVhClxzdGFydGx1YWNvZGUKCmRhYmVlciAgICAgICAgICA9IGRhYmVlciAgICAg ICAgIG9yIHt9CmRhYmVlci5rYXNoaWRhICA9IGRhYmVlci5rYXNoaWRhIG9yIHt9CgoKbG9jYWwg Z2V0Zm9udCA9IGZ1bmN0aW9uIChpZCkKICAgIHJldHVybiBmb250cy5oYXNoZXMuaWRlbnRpZmll cnNbaWRdCmVuZAoKLS0gVE9ETzogdXNlIGEgdGFibGUgdG8gb3B0aW1pemUgc3Vic2VxdWVudCBs b29rdXBzCmxvY2FsIGdldF9rYXNoaWRhX2RpbXMgPSBmdW5jdGlvbiAoaWQpCiAgICBsb2NhbCB0 Zm1kYXRhID0gZ2V0Zm9udChpZCkgIAoKICAgIC0tLSBuZWVkIGJldHRlciBlcnJvciBoYW5kbGlu ZyBhbmQgY29tbWVudHMKICAgIGlmIG5vdCAodGZtZGF0YSBhbmQgdGZtZGF0YS5zaGFyZWQpIHRo ZW4KICAgICAgcHJpbnQoJ2Nhbm5vdCBvcGVuIGZvbnQnKQogICAgICByZXR1cm4gMCwgMAogICAg ZW5kCgogICAgbG9jYWwgZGVzY3JpcHRpb25zID0gdGZtZGF0YS5zaGFyZWQucmF3ZGF0YS5kZXNj cmlwdGlvbnMKCi0tLSAgICBpbnNwZWN0KHRmbWRhdGEpCiAgIAogICAgLS0tIHRoZSBmb250IG5l ZWRzIHRvIGhhdmUgYm90aCB0YXR3ZWVsIGFuZCBsZXR0ZXIgJ3gnCiAgICAtLS0gbG9vayBhdCBo ZWlnaHQgb2YgJ3gnIHRvIGdldCAxZXggaW4gZm9udCB1bml0cwogICAgLS0tIHRvZG86IHJlYWQg b2ZmIHRmbWRhdGFbInBhcmFtZXRlcnMiXVsiZXgiXT8KICAgIGxvY2FsIGdseXBoZGF0YV9leCAg PSBkZXNjcmlwdGlvbnMgWzEyMF0KICAgIGlmIG5vdCBnbHlwaGRhdGFfZXggdGhlbgogICAgICBw cmludCgnZm9udCBsYWNrcyB0aGUgZ2x5cGggZm9yIHgnKQogICAgICByZXR1cm4gMCwgMAogICAg ZW5kCgogICAgbG9jYWwgZXhfaW5fZnUgICAgICA9IGdseXBoZGF0YV9leC5ib3VuZGluZ2JveFs0 XQogICAgaWYgbm90IGV4X2luX2Z1IHRoZW4KICAgICAgcmV0dXJuIDAsIDAKICAgIGVuZAoKICAg IC0tLSB0b2RvOiBjYW4gd2UgcmVhZCB0aGUgZm9sbG93aW5nIG9mZiBvZiAKICAgIC0tLSB0Zm1k YXRhWyJjaGFyYWN0ZXJzIl1bMTYwMF1bImhlaWdodCIvImRlcHRoIl0/CiAgICAtLS0gYXBwYXJl bnRseSBub3Q7IGhlaWdodCBpcyB0aGVyZSBidXQgc29tZSBjaGFycyB7WldOSiBpbmNsdWRlZH0K ICAgIC0tLSBkbyBub3QgaGF2ZSBkZXB0aCBpbmZvcm1hdGlvbiB0aGVyZS4KICAgIC0tLSBub3cg Z2V0IGRpbWVuc2lvbnMgb2YgdGF0d2VlbDoKICAgIGxvY2FsIGdseXBoZGF0YV90YXR3ZWVsID0g ZGVzY3JpcHRpb25zIFsxNjAwXQogICAgaWYgbm90IGdseXBoZGF0YV90YXR3ZWVsIHRoZW4KICAg ICAgcHJpbnQoJ2ZvbnQgbGFja3MgdGhlIGdseXBoIGZvciB0YXR3ZWVsJykKICAgICAgcmV0dXJu IDAsIDAKICAgIGVuZAoKICAgIGxvY2FsIGJvdW5kaW5nYm94ICAgPSBnbHlwaGRhdGFfdGF0d2Vl bC5ib3VuZGluZ2JveAogICAgbG9jYWwgaGVpZ2h0ICAgICAgICA9IGJvdW5kaW5nYm94IFs0XSBv ciAwCiAgICBsb2NhbCBkZXB0aCAgICAgICAgID0gYm91bmRpbmdib3ggWzJdIG9yIDAKCiAgICBo ZWlnaHQgPSBoZWlnaHQgLyBleF9pbl9mdQogICAgZGVwdGggPSAtZGVwdGggIC8gZXhfaW5fZnUK CiAgICByZXR1cm4gaGVpZ2h0LCBkZXB0aAplbmQKCgotLSBUT0RPOiBzZXQgZGVmYXVsdCBpZCB0 byAtLSBmb250LmN1cnJlbnQoKQpkYWJlZXIua2FzaGlkYS53cml0ZV9kaW1zID0gZnVuY3Rpb24o aWQpCiAgbG9jYWwgaGVpZ2h0CiAgbG9jYWwgZGVwdGgKICBoZWlnaHQsIGRlcHRoID0gZ2V0X2th c2hpZGFfZGltcyhpZCkKLS0tIFRPRE86IGRvIHNvbWV0aGluZyBlbHNlIGlmIGFsbCB6ZXJvPwog IHRleC5zcHJpbnQoc3RyaW5nLmZvcm1hdCgiaGVpZ2h0ICVmIGV4IGRlcHRoICVmIGV4IiwgaGVp Z2h0LCBkZXB0aCkpICAgCmVuZAoKCi0tIGdldHMgYSBwb2ludGVyIHRvIHRoZSBuZXh0IG5vZGUs IHdoaWNoIHNob3VsZCBiZSBhIGdseXBoCi0tIGFuZCBpbnNlcnRzIGEgZmV3IG5vZGVzIHNpZ25p Znlpbmcga2FzaGlkYSBiZWZvcmUgaXQuCmxvY2FsIGluc2VydF9rYXNoaWRhX2JlZm9yZV9ub2Rl ID0gZnVuY3Rpb24oZm9sbG93ZXIpCiAgaWYgZm9sbG93ZXIuaWQgfj0gbm9kZXMubm9kZWNvZGVz LmdseXBoIHRoZW4KICAgIHJldHVybgogIGVuZAoKICBsb2NhbCBmaWQgID0gZm9sbG93ZXIuZm9u dAogIGxvY2FsIGxhbmcgPSBmb2xsb3dlci5sYW5nCgotLSAgcHJpbnQoIlNBTEFBQUFBQUFBQUFB QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU0iLCBmaWQsIGxhbmcpCgogIGxvY2FsIGtoZWln aHQsIGtkZXB0aAogIGtoZWlnaHQsIGtkZXB0aCA9IGdldF9rYXNoaWRhX2RpbXMoZmlkKQogIGlm IGtoZWlnaHQgPT0gMCBhbmQga2RlcHRoID09IDAgdGhlbgogICAgcmV0dXJuCiAgZW5kCiAga2hl aWdodCA9IGtoZWlnaHQgKiB0ZXguc3AoIjFleCIpCiAga2RlcHRoICA9IGtkZXB0aCAgKiB0ZXgu c3AoIjFleCIpCgogIC0tIGJ1aWxkIHRoZSBzZXF1ZW5jZSBvZiBub2RlcwogIC0tIFRPRE86IGRv IHNvbWUgc3BhY2UvdGltZSBvcHRpbWl6YXRpb24gYnkgcmV1c2luZwogIC0tIFRoZSBmb2xsb3dp bmcgc2VxdWVuY2UgaXMgdGhlIGVxdWl2YWxlbnQgb2YgYGBLYXNoaWRhU2VxdWVuY2UnJyBkZWZp bmVkIGJlbG93LAogIC0tIHdoaWNoIGluIHR1cm4gd2FzIGJvcnJvd2VkIGZyb20gWGVQZXJzaWFu IChvZiBWYWZhIEtoYWxpZ2hpJ3MpLgogIGxvY2FsIG5fMSA9IG5vZGUubmV3KCJnbHlwaCIpCiAg bl8xLmZvbnQgID0gZmlkCiAgbl8xLmxhbmcgID0gbGFuZwogIG5fMS5jaGFyICA9IDB4MjAwRCAg LS0gWldOSgoKICBsb2NhbCBuXzIgICA9IG5vZGUubmV3KCJwZW5hbHR5IikKICBuXzIucGVuYWx0 eSA9IDEwMDAwCiAgbl8yLnN1YnR5cGUgPSAwICAtLSB1c2VycGVuYWx0eT8KCiAgbG9jYWwgbl8z ICAgPSBub2RlLm5ldygiZ2x1ZSIpCiAgbl8zLnN1YnR5cGUgPSAxMDAgIC0tIGxlYWRlcnM/Ci0t LSAgbl8zLnNwZWMgICAgPSBub2RlLm5ldygiZ2x1ZV9zcGVjIikKLS0tIEkgYWxzbyB0cmllZCA2 KjJeMTYgYW5kIDAKLS0tIEkgYWxzbyB0cmllZCAwLjUqMl4xNiBhbmQgMwotLS0gIG5fMy5zcGVj LnN0cmV0Y2ggICAgICAgPSAzMDAgKiAyXjE2ICAtLSB3aHk/Ci0tLSAgbl8zLnNwZWMuc3RyZXRj aF9vcmRlciA9IDAgIC0tIHdoeT8gMCwgMgotLS0gemVyb3MgbWF5IG5vdCBiZSBuZWNlc3NhcnkK LS0tICBuXzMuc3BlYy53aWR0aCA9IDAKLS0tICBuXzMuc3BlYy5zaHJpbmsgPSAwCi0tICBuXzMu c3BlYy5zaHJpbmtfb3JkZXIgPSAwCi0tLSBuZXcgdmVyc2lvbjogIAogIG5vZGUuc2V0Z2x1ZShu XzMsIDAsIDMwMCAqIDJeMTYsIDAsIDAsIDApCiAgbl8zLmxlYWRlciAgPSBub2RlLm5ldygicnVs ZSIpCiAgbl8zLmxlYWRlci5kZXB0aCAgICAgICA9IGtkZXB0aAogIG5fMy5sZWFkZXIuaGVpZ2h0 ICAgICAgPSBraGVpZ2h0CiAgbl8zLmxlYWRlci5kaXIgICAgICAgICA9ICJUUlQiCiAgbl8zLmxl YWRlci5zdWJ0eXBlICAgICA9IDAgIC0tIHN0cmV0Y2g/CiAgbl8zLmxlYWRlci53aWR0aCAgICAg ICA9IC0yXjMwICAtLSA/CgogIGxvY2FsIG5fNCA9IG5vZGUuY29weShuXzEpCgogIC0tIGNvbm5l Y3QgdGhlc2UgdXAgdG9nZXRoZXIKICBuXzQucHJldiA9IG5fMwogIG5fMy5wcmV2ID0gbl8yCiAg bl8yLnByZXYgPSBuXzEKICBuXzEubmV4dCA9IG5fMgogIG5fMi5uZXh0ID0gbl8zCiAgbl8zLm5l eHQgPSBuXzQKCiAgLS0gaW5zZXJ0IGl0IGJlZm9yZSBmb2xsb3dlcgogIGxvY2FsIGhlYWQgICAg ID0gbl8xCiAgbG9jYWwgdGFpbCAgICAgPSBub2RlLnRhaWwoaGVhZCkgIC0tID8KICB0YWlsLm5l eHQgICAgICA9IGZvbGxvd2VyCiAgaGVhZC5wcmV2ICAgICAgPSBmb2xsb3dlci5wcmV2CiAgdGFp bC5uZXh0LnByZXYgPSB0YWlsCiAgaGVhZC5wcmV2Lm5leHQgPSBoZWFkCmVuZAoKCi0tIGNoYXJh Y3RlciBjbGFzc2VzIHVzZWQgaW4ga2FzaGlkYSBpbnNlcnRpb24KbG9jYWwgY2hhcl9jbGFzc19k dWFsICAgPSAxMCAgLS0gZHVhbC1qb2luZXIgY2xhc3MKbG9jYWwgY2hhcl9jbGFzc19sYW0gICAg PSAxMSAgLS0gbGFtCmxvY2FsIGNoYXJfY2xhc3NfcmlnaHQgID0gMTIgIC0tIHJpZ2h0LWpvaW5l cgpsb2NhbCBjaGFyX2NsYXNzX2FsZWYgICA9IDEzICAtLSBhbGVmCmxvY2FsIGNoYXJfY2xhc3Nf b3RoZXIgID0gMjU1IC0tIGFueXRoaW5nIG90aGVyIHRoYW4gdGhlIGFib3ZlIGFuZCBiZWxvdwps b2NhbCBjaGFyX2NsYXNzX2lnbm9yZSA9IDI1NiAtLSB2b3dlbCBvciBvdGhlciBjb21iaW5pbmcg bWFyayAodG8gYmUgaWdub3JlZCkKCmxvY2FsIGNoYXJfY2xhc3NlcyA9IGNoYXJfY2xhc3NlcyBv ciB7fQpsb2NhbCBjbGFzc19jb21iaW5hdGlvbnMgPSBjbGFzc19jb21iaW5hdGlvbnMgb3Ige30K CmxvY2FsIGluaXRfY2hhcl9jbGFzc2VzID0gZnVuY3Rpb24oKQogIGZvciBfLGNoIGluIHBhaXJz KHsgMHg2NDQgfSkgZG8KICAgIGNoYXJfY2xhc3Nlc1tjaF0gPSBjaGFyX2NsYXNzX2xhbQogIGVu ZAogIGZvciBfLGNoIGluIHBhaXJzKHsgMHg2MjIsIDB4NjIzLCAweDYyNSwgMHg2MjcgfSkgZG8K ICAgIGNoYXJfY2xhc3Nlc1tjaF0gPSBjaGFyX2NsYXNzX2FsZWYKICBlbmQKICBmb3IgXyxjaCBp biBwYWlycyh7IDB4NjI0LCAweDYyOSwgMHg2MkYsIDB4NjMwLCAweDYzMSwgMHg2MzIsIDB4NjQ4 LCAweDY5OCB9KSBkbwogICAgY2hhcl9jbGFzc2VzW2NoXSA9IGNoYXJfY2xhc3NfcmlnaHQKICBl bmQKICBmb3IgXyxjaCBpbiBwYWlycyh7IDB4NjRCLCAweDY0QywgMHg2NEQsIDB4NjRFLCAweDY0 RiwgMHg2NTAsIDB4NjUxLCAweDY1MiB9KSBkbwogICAgY2hhcl9jbGFzc2VzW2NoXSA9IGNoYXJf Y2xhc3NfaWdub3JlCiAgZW5kCiAgZm9yIF8sY2ggaW4gcGFpcnMoeyAweDYyNiwgMHg2MjgsIDB4 NjJBLCAweDYyQiwgMHg2MkMsIDB4NjJELCAweDYyRSwKICAgICAgICAgICAgICAgICAgICAgIDB4 NjMzLCAweDYzNCwgMHg2MzUsIDB4NjM2LCAweDYzNywgMHg2MzgsIDB4NjM5LCAweDYzQSwKICAg ICAgICAgICAgICAgICAgICAgIDB4NjQwLCAweDY0MSwgMHg2NDIsIDB4NjQzLCAweDY0NSwgMHg2 NDYsIDB4NjQ3LCAweDY0OSwKICAgICAgICAgICAgICAgICAgICAgIDB4NjRBLCAweDY3RSwgMHg2 ODYsIDB4NkE5LCAweDZBRiwgMHg2Q0MgfSkgZG8KICAgIGNoYXJfY2xhc3Nlc1tjaF0gPSBjaGFy X2NsYXNzX2R1YWwKICBlbmQKZW5kCgpsb2NhbCBhZGRfdG9fY2xhc3NfY29tYmluYXRpb25zID0g ZnVuY3Rpb24obGVmdCwgcmlnaHQsIGluc3RydWN0aW9uKQogIGNsYXNzX2NvbWJpbmF0aW9uc1ts ZWZ0XSA9IGNsYXNzX2NvbWJpbmF0aW9uc1tsZWZ0XSBvciB7fQogIGNsYXNzX2NvbWJpbmF0aW9u c1tsZWZ0XVtyaWdodF0gPSBpbnN0cnVjdGlvbgplbmQKCgoKbG9jYWwgaW5pdF9jbGFzc19jb21i aW5hdGlvbnMgPSBmdW5jdGlvbigpCiAgLS0gbm93IHdlIG9ubHkgaGF2ZSAxLCB3aGljaCBtZWFu cyBhZGQgYSBrYXNoaWRhIHNlcXVlbmNlCiAgLS0gaW4gdGhlIGZ1dHVyZSwgd2UgY2FuIGhhdmUg ZGlmZmVyZW50IHR5cGVzIHdpdGggdmFyaW91cyBzdHJldGNoIHZhbHVlcy4KICBhZGRfdG9fY2xh c3NfY29tYmluYXRpb25zKGNoYXJfY2xhc3NfZHVhbCwgY2hhcl9jbGFzc19kdWFsLCAgMSkKICBh ZGRfdG9fY2xhc3NfY29tYmluYXRpb25zKGNoYXJfY2xhc3NfbGFtLCAgY2hhcl9jbGFzc19kdWFs LCAgMSkKICBhZGRfdG9fY2xhc3NfY29tYmluYXRpb25zKGNoYXJfY2xhc3NfZHVhbCwgY2hhcl9j bGFzc19sYW0sICAgMSkKICBhZGRfdG9fY2xhc3NfY29tYmluYXRpb25zKGNoYXJfY2xhc3NfbGFt LCAgY2hhcl9jbGFzc19sYW0sICAgMSkKICBhZGRfdG9fY2xhc3NfY29tYmluYXRpb25zKGNoYXJf Y2xhc3NfZHVhbCwgY2hhcl9jbGFzc19yaWdodCwgMSkKICBhZGRfdG9fY2xhc3NfY29tYmluYXRp b25zKGNoYXJfY2xhc3NfZHVhbCwgY2hhcl9jbGFzc19hbGVmLCAgMSkKICBhZGRfdG9fY2xhc3Nf Y29tYmluYXRpb25zKGNoYXJfY2xhc3NfbGFtLCAgY2hhcl9jbGFzc19yaWdodCwgMSkKLS0gIGFk ZF90b19jbGFzc19jb21iaW5hdGlvbnMoY2hhcl9jbGFzc19sYW0sICBjaGFyX2NsYXNzX2FsZWYs ICAwKQplbmQKCgotLSBpbml0YWxpemUgdGhlIHRhYmxlcwppbml0X2NoYXJfY2xhc3NlcygpCmlu aXRfY2xhc3NfY29tYmluYXRpb25zKCkKCgotLSBvdXIgbGlzdCBwcm9jZXNzb3IgYW5kIHNoYXJl ZCB2YXJpYWJsZXMKbG9jYWwgbGFzdF9jbGFzcyA9IGNoYXJfY2xhc3Nfb3RoZXIgIC0tIHNldCB0 aGlzIGJlZm9yZSBjYWxsaW5nIHRoZSBmb2xsb3dpbmcKCmxvY2FsIGZ1bmN0aW9uIHByb2Nlc3Nu ZXN0ZWRsaXN0KGhlYWQpCiAgICAgbG9jYWwgY3VycmVudCwgZG9uZSA9IGhlYWQsIGZhbHNlCiAg ICAgd2hpbGUgY3VycmVudCBkbwogICAgICAgICBsb2NhbCBpZCA9IGN1cnJlbnQuaWQKICAgICAg ICAgaWYgaWQgPT0gbm9kZXMubm9kZWNvZGVzLmhsaXN0IG9yIGlkID09IG5vZGVzLm5vZGVjb2Rl cy52bGlzdCB0aGVuCiAgICAgICAgICAgICBsYXN0X2NsYXNzID0gY2hhcl9jbGFzc19vdGhlcgog ICAgICAgICAgICAgbG9jYWwgXywgZCA9IHByb2Nlc3NuZXN0ZWRsaXN0KGN1cnJlbnQuaGVhZCkg IC0tLSBvbGQ6IGN1cnJlbnQubGlzdAogICAgICAgICAgICAgbGFzdF9jbGFzcyA9IGNoYXJfY2xh c3Nfb3RoZXIKICAgICAgICAgICAgIGlmIGQgdGhlbgogICAgICAgICAgICAgICAgIGRvbmUgPSB0 cnVlCiAgICAgICAgICAgICBlbmQKICAgICAgICAgLS0gaXMgdGhlIGZvbGxvd2luZyBuZWNlc3Nh cnk/CiAgICAgICAgIGVsc2VpZiBpZCA9PSBub2Rlcy5ub2RlY29kZXMuaGdsdWVfY29kZSBhbmQg Y3VycmVudC5sZWFkZXIgdGhlbgogICAgICAgICAgICAgbGFzdF9jbGFzcyA9IGNoYXJfY2xhc3Nf b3RoZXIKICAgICAgICAgICAgIGxvY2FsIF8sIGQgPSBwcm9jZXNzbmVzdGVkbGlzdChjdXJyZW50 LmxlYWRlcixuLGRlcHRoKzEpCiAgICAgICAgICAgICBsYXN0X2NsYXNzID0gY2hhcl9jbGFzc19v dGhlcgogICAgICAgICAgICAgaWYgZCB0aGVuCiAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWUK ICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgICAgIGxhc3RfY2xhc3MgPSBjaGFyX2NsYXNz X290aGVyCiAgICAgICAgIGVsc2VpZiBpZCA9PSBub2Rlcy5ub2RlY29kZXMuZ2x5cGggdGhlbgog ICAgICAgICAgICAgLS0gdG9kbzogdmVyaWZ5IHRoYXQgdGhlc2UgYXJlIHRoZSBzYW1lIGZvbnQK ICAgICAgICAgICAgIGxvY2FsIG5ld19jbGFzcyA9IGNoYXJfY2xhc3Nlc1tjdXJyZW50LmNoYXJd IG9yIGNoYXJfY2xhc3Nfb3RoZXIKICAgICAgICAgICAgIGlmIGNsYXNzX2NvbWJpbmF0aW9uc1ts YXN0X2NsYXNzXSBhbmQgCiAgICAgICAgICAgICAgICBjbGFzc19jb21iaW5hdGlvbnNbbGFzdF9j bGFzc11bbmV3X2NsYXNzXSA9PSAxIHRoZW4KICAgICAgICAgICAgICAgIGluc2VydF9rYXNoaWRh X2JlZm9yZV9ub2RlKGN1cnJlbnQpCiAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGlmIG5l d19jbGFzcyB+PSBjaGFyX2NsYXNzX2lnbm9yZSB0aGVuCiAgICAgICAgICAgICAgICBsYXN0X2Ns YXNzID0gbmV3X2NsYXNzCiAgICAgICAgICAgICBlbmQKICAgICAgICAgZWxzZQogICAgICAgICAg ICAgbGFzdF9jbGFzcyA9IGNoYXJfY2xhc3Nfb3RoZXIKICAgICAgICAgZW5kCiAgICAgICAgIGN1 cnJlbnQgPSBjdXJyZW50Lm5leHQKICAgICBlbmQKICAgICByZXR1cm4gaGVhZCwgZG9uZQplbmQK CgpkYWJlZXIua2FzaGlkYS5wcm9jZXNzX25vZGVzID0gZnVuY3Rpb24oaGVhZCkKICAgICBsYXN0 X2NsYXNzID0gY2hhcl9jbGFzc19vdGhlcgogICAgIGxvY2FsIGhlYWQsIGRvbmUgPSBwcm9jZXNz bmVzdGVkbGlzdChoZWFkKQogICAgIHJldHVybiBoZWFkLCBkb25lCmVuZAoKLS0gcmVnaXN0ZXIg b3VyIHByb2Nlc3Nvcgpub2Rlcy50YXNrcy5hcHBlbmRhY3Rpb24gKCJwcm9jZXNzb3JzIiwgImJl Zm9yZSIsICJkYWJlZXIua2FzaGlkYS5wcm9jZXNzX25vZGVzIikKClxzdG9wbHVhY29kZQoKCiUl IFRPRE86IHVzZSBDT05URVhUIHdheS4KJSUgS2FzaGlkYU9uIGFuZCBLYXNoaWRhT2ZmIG1hY3Jv cwolJSBXYXJuaW5nOiBUaGVzZSB3b3JrIG9uIHBhcmFncmFwaHMuClxkZWZcS2FzaGlkYU9mZnsl ClxjdHhsdWF7bm9kZXMudGFza3MuZGlzYWJsZWFjdGlvbigicHJvY2Vzc29ycyIsICJkYWJlZXIu a2FzaGlkYS5wcm9jZXNzX25vZGVzIil9JQp9CgpcZGVmXEthc2hpZGFPbnslClxjdHhsdWF7bm9k ZXMudGFza3MuZW5hYmxlYWN0aW9uKCJwcm9jZXNzb3JzIiwgImRhYmVlci5rYXNoaWRhLnByb2Nl c3Nfbm9kZXMiKX0lCn0KCiUlIGdseXBoIFpXTkogWzIwMEQsIDgyMDVdCiUlIHBlbmFsdHkgc3Vi LzAgcGVuYWx0eT0xMDAwMAolJSBnbHVlIFtsZWFkZXJdCiUlIGdseXBoIFpXTkogWzIwMEQsIDgy MDVdCgpcdW5wcm90ZWN0CgpcY2hhcmRlZlx4ZXBlcnNpYW5AendqPSIyMDBEICUgemVyby13aWR0 aCBqb2luZXIKXGRlZlxLYXNoaWRhU2VxdWVuY2V7XHhlcGVyc2lhbkB6d2pcbm9icmVhayUgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICBcbGVhZGVyc1xocnVsZVxjdHhsdWF7ZGFiZWVy Lmthc2hpZGEud3JpdGVfZGltcygpfSUKICAgICAgICAgICAgICAgICAgICAgXGhza2lwMHB0IHBs dXMgMC41ZW1ceGVwZXJzaWFuQHp3an0KClxwcm90ZWN0CgpcY29udGludWVpZmlucHV0ZmlsZXtr YXNoaWRhLnRleH0KCiUgRm9yIHRlc3RpbmcKXHVzZW1vZHVsZVtzaW1wbGVmb250c10KXHNldG1h aW5mb250W0hNIFhOaWxvb2Zhcl1bZmVhdHVyZXM9YXJhYmljLHJhbmdlPWFyYWJpY10KXHNldHVw aW50ZXJsaW5lc3BhY2VbbGluZT0xLjVcYm9keWZvbnRzaXplXQpcc2V0dXBhbGlnbltyMmxdClxk ZWZcc2FtcGxldGV4dHvYs9mE2KfZhX0KXGRlZlxvdGhlcnRleHR72YXZiNmB2ZHZgtuM2ZHYqn0K Clx1c2Vtb2R1bGVbaGVtaXN0aWNoXQpcc2V0dXBoZW1pc3RpY2hbc2VwYXJhdG9yPXt9XQoKXHN0 YXJ0dGV4dApcc2FtcGxldGV4dFxwYXIKClxydGxoYm94e1xzYW1wbGV0ZXh0fVxwYXIKXHJ0bGhi b3ggdG8gMWNte1xzYW1wbGV0ZXh0fVxwYXIKe1x0ZmIlClxydGxoYm94IHRvIDJjbSB7XHNhbXBs ZXRleHR9XHBhcgpccnRsaGJveCB0byAzY20ge1xzYW1wbGV0ZXh0fVxwYXIKfQpccnRsaGJveCB0 byA0Y20ge1xzYW1wbGV0ZXh0XHNwYWNlXHNhbXBsZXRleHR9XHBhcgoKXGZyYW1lZFt3aWR0aD0y Y21de1xzYW1wbGV0ZXh0fVxwYXIKClxydGxoYm94e1xvdGhlcnRleHR9XHBhcgpccnRsaGJveCB0 byAxY217XG90aGVydGV4dH1ccGFyCntcdGZiJQpccnRsaGJveCB0byAyY20ge1xvdGhlcnRleHR9 XHBhcgpccnRsaGJveCB0byAzY20ge1xvdGhlcnRleHR9XHBhcgp9CgpcZG9yZWN1cnNlezEwfXvY s9mE2KfZhSDZiCDYr9ix2YjYryB9CgpcYmxhbmtbbGluZV0KXHN0YXJ0bmFycm93ZXJbMmNtXQpc aGVtaXN0aWNoZXMKe9io2Ycg2obZhyDaqdin2LEg2KLbjNiv2Kog2LIg2q/Zj9mEINi32Y7YqNmO 2YLbjH0Ke9in2LIg2q/ZhNiz2KrYp9mG2ZAg2YXZhiDYqNmQ2KjYsSDZiNmO2LHZgtuMfQpcaGVt aXN0aWNoZXMKe9qv2Y/ZhCDZh9mF24zZhiDZvtmG2Kwg2LHZiNiyINmIINi02ZDYtCDYqNin2LTY r30Ke9mI24zZhiDar9mE2LPYqtin2YYg2YfZhduM2LTZhyDYrtmI2LQg2KjYp9i02K99ClxzdG9w bmFycm93ZXIKXGJsYW5rW2xpbmVdCgoKXHN0b3B0ZXh0Cg== --94eb2c04fa8c55551c0536c829a3 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSWYgeW91ciBxdWVzdGlvbiBpcyBvZiBpbnRlcmVz dCB0byBvdGhlcnMgYXMgd2VsbCwgcGxlYXNlIGFkZCBhbiBlbnRyeSB0byB0aGUgV2lraSEKCm1h aWxsaXN0IDogbnRnLWNvbnRleHRAbnRnLm5sIC8gaHR0cDovL3d3dy5udGcubmwvbWFpbG1hbi9s aXN0aW5mby9udGctY29udGV4dAp3ZWJwYWdlICA6IGh0dHA6Ly93d3cucHJhZ21hLWFkZS5ubCAv IGh0dHA6Ly90ZXguYWFuaGV0Lm5ldAphcmNoaXZlICA6IGh0dHA6Ly9mb3VuZHJ5LnN1cGVsZWMu ZnIvcHJvamVjdHMvY29udGV4dHJldi8Kd2lraSAgICAgOiBodHRwOi8vY29udGV4dGdhcmRlbi5u ZXQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18= --94eb2c04fa8c55551c0536c829a3--