Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mV8Qf-0005IK-Ht for pgsql-hackers@arkaria.postgresql.org; Tue, 28 Sep 2021 08:25:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mV8Qe-0004xz-HV for pgsql-hackers@arkaria.postgresql.org; Tue, 28 Sep 2021 08:25:32 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mV8Qd-0004xr-Ky for pgsql-hackers@lists.postgresql.org; Tue, 28 Sep 2021 08:25:32 +0000 Received: from out4-smtp.messagingengine.com ([66.111.4.28]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mV8QY-0004gz-4E for pgsql-hackers@postgresql.org; Tue, 28 Sep 2021 08:25:31 +0000 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id C01275C0131 for ; Tue, 28 Sep 2021 04:25:22 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Tue, 28 Sep 2021 04:25:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=543uNu MXwiIp3Bzv+YysMqUvU/SLzFoqcx/GVkFgT7Q=; b=Sgqmpjz4HvLGhyithwIL69 fGtVqnn2Im03jFkBSVTIeG9wA+8Pezgh2r+bLgOF8NQsErrx0fYk6Q0pfMqK9gce 1Ch5wRxuLFl21KhrMHRgXS+J+vs5ofPuKpps5av89YFxvvlGRD+k6WW6p70ar5ch x4h5rwOTB4HnWd4t2FE2zcc/AqFD7aiU5hYy4uTDM/zh56Tz7tv+SSScmodS9vWT XlWJq/tM/gxLz8tWm5kil2aTYsyaYZdtseyRXZUMEalujdh2NOs6uGk/trudVXYp W/7BYwsJ2v2GsNGfBscJGYfegHvz3AcZsj+sJpm65Dx34GmujhXKA0cRa9ev2IHg == X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrudektddgtdduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefuhffvfhfkffgfgggjtgesmhdtre ertdefjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdr vghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomheqnecuggftrfgrth htvghrnhepudevieeguddtkeeffedtleevlefhuedvffdvhfekfeeiteevueffueejkeeg lefhnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepph gvthgvrhdrvghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Tue, 28 Sep 2021 04:25:21 -0400 (EDT) Subject: Re: improvements in Unicode tables generation code From: Peter Eisentraut To: pgsql-hackers References: <22016aa9-ca59-15c7-01df-f292cb558c4d@enterprisedb.com> <294cd3ee-7988-9ce2-87e2-5acaac8db01c@enterprisedb.com> <18e34084-aab1-1b4c-edd1-c4f9fb04f714@enterprisedb.com> Message-ID: Date: Tue, 28 Sep 2021 10:25:20 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: <18e34084-aab1-1b4c-edd1-c4f9fb04f714@enterprisedb.com> Content-Type: multipart/mixed; boundary="------------975CBE54FFBA53304DA07EB5" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------975CBE54FFBA53304DA07EB5 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit On 20.07.21 13:57, Peter Eisentraut wrote: >>> Perhaps we should change the script or Makefile so that it doesn't >>> create all the maps in one go? >> >> I agree, either comment it better or just write one file at a time. >> I'll take another look at that. > > Here is a patch that does it one file (pair) at a time.  The other rules > besides UCS_to_most.pl actually had the same problem, since they produce > two output files, so running in parallel called each script twice.  In > this patch, all of that is heavily refactored and works correctly now. > Note that UCS_to_most.pl already accepted a command-line argument to > specify which encoding to work with. Here is an updated patch with a thinko fix that made the previous patch not actually work. --------------975CBE54FFBA53304DA07EB5 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v2-0001-Make-Unicode-makefile-parallel-safe.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v2-0001-Make-Unicode-makefile-parallel-safe.patch" RnJvbSBkMjQzZjIxZjRmNGQzOGRiMDhmNDI3NTU2MjU2Yzg3NjgxYTJjODMxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyOCBTZXAgMjAyMSAxMDoxNzozMSArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjJdIE1ha2UgVW5pY29kZSBtYWtlZmlsZSBwYXJhbGxlbC1zYWZlCgpGaXgg dGhlIHJ1bGVzIHNvIHRoYXQgZWFjaCBydWxlIGlzIHBhcmFsbGVsIHNhZmUsIHVzaW5nIHRo ZSBzYW1lCnRyaWNrZXJ5IHRoYXQgd2UgdXNlIGVsc2V3aGVyZSBpbiB0aGUgdHJlZSBmb3Ig cnVsZXMgdGhhdCBwcm9kdWNlIG1vcmUKdGhhbiBvbmUgb3V0cHV0IGZpbGUuICBSZWZhY3Rv ciB0aGUgd2hvbGUgbWFrZWZpbGUgc28gdGhhdCB0aGVyZSBpcwpsZXNzIHJlcGV0aXRpb24u CgpEaXNjdXNzaW9uOiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkLzE4 ZTM0MDg0LWFhYjEtMWI0Yy1lZGQxLWM0ZjlmYjA0ZjcxNCU0MGVudGVycHJpc2VkYi5jb20K LS0tCiBzcmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL01ha2VmaWxlIHwgMTM0ICsrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygr KSwgODkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWIv VW5pY29kZS9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvTWFrZWZp bGUKaW5kZXggZWQ2ZmMwN2UwOC4uNmU1NGI4ZjI5MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvbWIvVW5pY29kZS9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9t Yi9Vbmljb2RlL01ha2VmaWxlCkBAIC0xMiwxMDEgKzEyLDU3IEBAIHN1YmRpciA9IHNyYy9i YWNrZW5kL3V0aWxzL21iL1VuaWNvZGUKIHRvcF9idWlsZGRpciA9IC4uLy4uLy4uLy4uLy4u CiBpbmNsdWRlICQodG9wX2J1aWxkZGlyKS9zcmMvTWFrZWZpbGUuZ2xvYmFsCiAKLUlTTzg4 NTlNQVBTID0gaXNvODg1OV8yX3RvX3V0ZjgubWFwIHV0ZjhfdG9faXNvODg1OV8yLm1hcCBc Ci0JaXNvODg1OV8zX3RvX3V0ZjgubWFwIHV0ZjhfdG9faXNvODg1OV8zLm1hcCBcCi0JaXNv ODg1OV80X3RvX3V0ZjgubWFwIHV0ZjhfdG9faXNvODg1OV80Lm1hcCBcCi0JaXNvODg1OV81 X3RvX3V0ZjgubWFwIHV0ZjhfdG9faXNvODg1OV81Lm1hcCBcCi0JaXNvODg1OV82X3RvX3V0 ZjgubWFwIHV0ZjhfdG9faXNvODg1OV82Lm1hcCBcCi0JaXNvODg1OV83X3RvX3V0ZjgubWFw IHV0ZjhfdG9faXNvODg1OV83Lm1hcCBcCi0JaXNvODg1OV84X3RvX3V0ZjgubWFwIHV0Zjhf dG9faXNvODg1OV84Lm1hcCBcCi0JaXNvODg1OV85X3RvX3V0ZjgubWFwIHV0ZjhfdG9faXNv ODg1OV85Lm1hcCBcCi0JaXNvODg1OV8xMF90b191dGY4Lm1hcCB1dGY4X3RvX2lzbzg4NTlf MTAubWFwIFwKLQlpc284ODU5XzEzX3RvX3V0ZjgubWFwIHV0ZjhfdG9faXNvODg1OV8xMy5t YXAgXAotCWlzbzg4NTlfMTRfdG9fdXRmOC5tYXAgdXRmOF90b19pc284ODU5XzE0Lm1hcCBc Ci0JaXNvODg1OV8xNV90b191dGY4Lm1hcCB1dGY4X3RvX2lzbzg4NTlfMTUubWFwIFwKLQlp c284ODU5XzE2X3RvX3V0ZjgubWFwIHV0ZjhfdG9faXNvODg1OV8xNi5tYXAKLQotV0lOTUFQ UyA9IHdpbjg2Nl90b191dGY4Lm1hcCB1dGY4X3RvX3dpbjg2Ni5tYXAgXAotCXdpbjg3NF90 b191dGY4Lm1hcCB1dGY4X3RvX3dpbjg3NC5tYXAgXAotCXdpbjEyNTBfdG9fdXRmOC5tYXAg dXRmOF90b193aW4xMjUwLm1hcCBcCi0Jd2luMTI1MV90b191dGY4Lm1hcCB1dGY4X3RvX3dp bjEyNTEubWFwIFwKLQl3aW4xMjUyX3RvX3V0ZjgubWFwIHV0ZjhfdG9fd2luMTI1Mi5tYXAg XAotCXdpbjEyNTNfdG9fdXRmOC5tYXAgdXRmOF90b193aW4xMjUzLm1hcCBcCi0Jd2luMTI1 NF90b191dGY4Lm1hcCB1dGY4X3RvX3dpbjEyNTQubWFwIFwKLQl3aW4xMjU1X3RvX3V0Zjgu bWFwIHV0ZjhfdG9fd2luMTI1NS5tYXAgXAotCXdpbjEyNTZfdG9fdXRmOC5tYXAgdXRmOF90 b193aW4xMjU2Lm1hcCBcCi0Jd2luMTI1N190b191dGY4Lm1hcCB1dGY4X3RvX3dpbjEyNTcu bWFwIFwKLQl3aW4xMjU4X3RvX3V0ZjgubWFwIHV0ZjhfdG9fd2luMTI1OC5tYXAKLQotR0VO RVJJQ01BUFMgPSAkKElTTzg4NTlNQVBTKSAkKFdJTk1BUFMpIFwKLQlnYmtfdG9fdXRmOC5t YXAgdXRmOF90b19nYmsubWFwIFwKLQlrb2k4cl90b191dGY4Lm1hcCB1dGY4X3RvX2tvaThy Lm1hcCBcCi0Ja29pOHVfdG9fdXRmOC5tYXAgdXRmOF90b19rb2k4dS5tYXAKLQotU1BFQ0lB TE1BUFMgPSBldWNfY25fdG9fdXRmOC5tYXAgdXRmOF90b19ldWNfY24ubWFwIFwKLQlldWNf anBfdG9fdXRmOC5tYXAgdXRmOF90b19ldWNfanAubWFwIFwKLQlldWNfa3JfdG9fdXRmOC5t YXAgdXRmOF90b19ldWNfa3IubWFwIFwKLQlldWNfdHdfdG9fdXRmOC5tYXAgdXRmOF90b19l dWNfdHcubWFwIFwKLQlzamlzX3RvX3V0ZjgubWFwIHV0ZjhfdG9fc2ppcy5tYXAgXAotCWdi MTgwMzBfdG9fdXRmOC5tYXAgdXRmOF90b19nYjE4MDMwLm1hcCBcCi0JYmlnNV90b191dGY4 Lm1hcCB1dGY4X3RvX2JpZzUubWFwIFwKLQlqb2hhYl90b191dGY4Lm1hcCB1dGY4X3RvX2pv aGFiLm1hcCBcCi0JdWhjX3RvX3V0ZjgubWFwIHV0ZjhfdG9fdWhjLm1hcCBcCi0JZXVjX2pp c18yMDA0X3RvX3V0ZjgubWFwIHV0ZjhfdG9fZXVjX2ppc18yMDA0Lm1hcCBcCi0Jc2hpZnRf amlzXzIwMDRfdG9fdXRmOC5tYXAgdXRmOF90b19zaGlmdF9qaXNfMjAwNC5tYXAKLQotTUFQ UyA9ICQoR0VORVJJQ01BUFMpICQoU1BFQ0lBTE1BUFMpCi0KLUlTTzg4NTlURVhUUyA9IDg4 NTktMi5UWFQgODg1OS0zLlRYVCA4ODU5LTQuVFhUIDg4NTktNS5UWFQgXAotCTg4NTktNi5U WFQgODg1OS03LlRYVCA4ODU5LTguVFhUIDg4NTktOS5UWFQgXAotCTg4NTktMTAuVFhUIDg4 NTktMTMuVFhUIDg4NTktMTQuVFhUIDg4NTktMTUuVFhUIFwKLQk4ODU5LTE2LlRYVAotCi1X SU5URVhUUyA9IENQODY2LlRYVCBDUDg3NC5UWFQgQ1A5MzYuVFhUIFwKLQlDUDEyNTAuVFhU IENQMTI1MS5UWFQgXAotCUNQMTI1Mi5UWFQgQ1AxMjUzLlRYVCBDUDEyNTQuVFhUIENQMTI1 NS5UWFQgXAotCUNQMTI1Ni5UWFQgQ1AxMjU3LlRYVCBDUDEyNTguVFhUCi0KLUdFTkVSSUNU RVhUUyA9ICQoSVNPODg1OVRFWFRTKSAkKFdJTlRFWFRTKSBcCi0JS09JOC1SLlRYVCBLT0k4 LVUuVFhUCiAKLWFsbDogJChNQVBTKQotCi0kKEdFTkVSSUNNQVBTKTogVUNTX3RvX21vc3Qu cGwgJChHRU5FUklDVEVYVFMpCi0JJChQRVJMKSAtSSAkKHNyY2RpcikgJDwKLQotam9oYWJf dG9fdXRmOC5tYXAgdXRmOF90b19qb2hhYi5tYXA6IFVDU190b19KT0hBQi5wbCBKT0hBQi5U WFQKLQkkKFBFUkwpIC1JICQoc3JjZGlyKSAkPAotCi11aGNfdG9fdXRmOC5tYXAgdXRmOF90 b191aGMubWFwOiBVQ1NfdG9fVUhDLnBsIHdpbmRvd3MtOTQ5LTIwMDAueG1sCi0JJChQRVJM KSAtSSAkKHNyY2RpcikgJDwKLQotZXVjX2pwX3RvX3V0ZjgubWFwIHV0ZjhfdG9fZXVjX2pw Lm1hcDogVUNTX3RvX0VVQ19KUC5wbCBDUDkzMi5UWFQgSklTMDIxMi5UWFQKLQkkKFBFUkwp IC1JICQoc3JjZGlyKSAkPAorIyBEZWZpbmUgYSBydWxlIHRvIGNyZWF0ZSB0aGUgbWFwIGZp bGVzIGZyb20gZG93bmxvYWRlZCB0ZXh0IGlucHV0CisjIGZpbGVzIHVzaW5nIGEgc2NyaXB0 LiAgQXJndW1lbnRzOgorIworIyAxOiBlbmNvZGluZyBuYW1lIHVzZWQgaW4gb3V0cHV0IGZp bGVzIChsb3dlciBjYXNlKQorIyAyOiBzY3JpcHQgbmFtZQorIyAzOiBpbnB1dCB0ZXh0IGZp bGVzCisjIDQ6IGFyZ3VtZW50IHRvIHBhc3MgdG8gc2NyaXB0IChvcHRpb25hbCkKKyMKKyMg V2UgYWxzbyBjb2xsZWN0IGFsbCB0aGUgaW5wdXQgYW5kIG91dHB1dCBmaWxlcyBpbiB2YXJp YWJsZXMgdG8KKyMgZGVmaW5lIHRoZSBidWlsZCBhbmQgY2xlYW4gcnVsZXMgYmVsb3cuCisj CisjIE5vdGUgdGhhdCB3aGlsZSBlYWNoIHNjcmlwdCBjYWxsIHByb2R1Y2VzIHR3byBvdXRw dXQgZmlsZXMsIHRvIGJlCisjIHBhcmFsbGVsLW1ha2Ugc2FmZSB3ZSBuZWVkIHRvIHNwbGl0 IHRoaXMgaW50byB0d28gcnVsZXMuICAoU2VlIGZvcgorIyBleGFtcGxlIGdyYW0ueSBmb3Ig bW9yZSBleHBsYW5hdGlvbi4pCisjCitkZWZpbmUgbWFwX3J1bGUKK01BUFMgKz0gJCgxKV90 b191dGY4Lm1hcCB1dGY4X3RvXyQoMSkubWFwCitBTExfVEVYVFMgKz0gJCgzKQogCi1ldWNf Y25fdG9fdXRmOC5tYXAgdXRmOF90b19ldWNfY24ubWFwOiBVQ1NfdG9fRVVDX0NOLnBsIGdi LTE4MDMwLTIwMDAueG1sCi0JJChQRVJMKSAtSSAkKHNyY2RpcikgJDwKKyQoMSlfdG9fdXRm OC5tYXA6ICQoMikgJCgzKQorCSQoUEVSTCkgLUkgJCQoc3JjZGlyKSAkJDwgJCg0KQogCi1l dWNfa3JfdG9fdXRmOC5tYXAgdXRmOF90b19ldWNfa3IubWFwOiBVQ1NfdG9fRVVDX0tSLnBs IEtTWDEwMDEuVFhUCi0JJChQRVJMKSAtSSAkKHNyY2RpcikgJDwKK3V0ZjhfdG9fJCgxKS5t YXA6ICQoMSlfdG9fdXRmOC5tYXAKKwlAdG91Y2ggJCRACitlbmRlZgogCi1ldWNfdHdfdG9f dXRmOC5tYXAgdXRmOF90b19ldWNfdHcubWFwOiBVQ1NfdG9fRVVDX1RXLnBsIENOUzExNjQz LlRYVAotCSQoUEVSTCkgLUkgJChzcmNkaXIpICQ8CiskKGZvcmVhY2ggbiwyIDMgNCA1IDYg NyA4IDkgMTAgMTMgMTQgMTUgMTYsJChldmFsICQoY2FsbCBtYXBfcnVsZSxpc284ODU5XyQo biksVUNTX3RvX21vc3QucGwsODg1OS0kKG4pLlRYVCxJU084ODU5XyQobikpKSkKIAotc2pp c190b191dGY4Lm1hcCB1dGY4X3RvX3NqaXMubWFwOiBVQ1NfdG9fU0pJUy5wbCBDUDkzMi5U WFQKLQkkKFBFUkwpIC1JICQoc3JjZGlyKSAkPAorJChmb3JlYWNoIG4sODY2IDg3NCAxMjUw IDEyNTEgMTI1MiAxMjUzIDEyNTQgMTI1NSAxMjU2IDEyNTcgMTI1OCwkKGV2YWwgJChjYWxs IG1hcF9ydWxlLHdpbiQobiksVUNTX3RvX21vc3QucGwsQ1AkKG4pLlRYVCxXSU4kKG4pKSkp CiAKLWdiMTgwMzBfdG9fdXRmOC5tYXAgdXRmOF90b19nYjE4MDMwLm1hcDogVUNTX3RvX0dC MTgwMzAucGwgZ2ItMTgwMzAtMjAwMC54bWwKLQkkKFBFUkwpIC1JICQoc3JjZGlyKSAkPAor JChldmFsICQoY2FsbCBtYXBfcnVsZSxrb2k4cixVQ1NfdG9fbW9zdC5wbCxLT0k4LVIuVFhU LEtPSThSKSkKKyQoZXZhbCAkKGNhbGwgbWFwX3J1bGUsa29pOHUsVUNTX3RvX21vc3QucGws S09JOC1VLlRYVCxLT0k4VSkpCiskKGV2YWwgJChjYWxsIG1hcF9ydWxlLGdiayxVQ1NfdG9f bW9zdC5wbCxDUDkzNi5UWFQsR0JLKSkKIAotYmlnNV90b191dGY4Lm1hcCB1dGY4X3RvX2Jp ZzUubWFwOiBVQ1NfdG9fQklHNS5wbCBCSUc1LlRYVCBDUDk1MC5UWFQKLQkkKFBFUkwpIC1J ICQoc3JjZGlyKSAkPAorJChldmFsICQoY2FsbCBtYXBfcnVsZSxqb2hhYixVQ1NfdG9fSk9I QUIucGwsSk9IQUIuVFhUKSkKKyQoZXZhbCAkKGNhbGwgbWFwX3J1bGUsdWhjLFVDU190b19V SEMucGwsd2luZG93cy05NDktMjAwMC54bWwpKQorJChldmFsICQoY2FsbCBtYXBfcnVsZSxl dWNfanAsVUNTX3RvX0VVQ19KUC5wbCxDUDkzMi5UWFQgSklTMDIxMi5UWFQpKQorJChldmFs ICQoY2FsbCBtYXBfcnVsZSxldWNfY24sVUNTX3RvX0VVQ19DTi5wbCxnYi0xODAzMC0yMDAw LnhtbCkpCiskKGV2YWwgJChjYWxsIG1hcF9ydWxlLGV1Y19rcixVQ1NfdG9fRVVDX0tSLnBs LEtTWDEwMDEuVFhUKSkKKyQoZXZhbCAkKGNhbGwgbWFwX3J1bGUsZXVjX3R3LFVDU190b19F VUNfVFcucGwsQ05TMTE2NDMuVFhUKSkKKyQoZXZhbCAkKGNhbGwgbWFwX3J1bGUsc2ppcyxV Q1NfdG9fU0pJUy5wbCxDUDkzMi5UWFQpKQorJChldmFsICQoY2FsbCBtYXBfcnVsZSxnYjE4 MDMwLFVDU190b19HQjE4MDMwLnBsLGdiLTE4MDMwLTIwMDAueG1sKSkKKyQoZXZhbCAkKGNh bGwgbWFwX3J1bGUsYmlnNSxVQ1NfdG9fQklHNS5wbCxDUDk1MC5UWFQgQklHNS5UWFQgQ1A5 NTAuVFhUKSkKKyQoZXZhbCAkKGNhbGwgbWFwX3J1bGUsZXVjX2ppc18yMDA0LFVDU190b19F VUNfSklTXzIwMDQucGwsZXVjLWppcy0yMDA0LXN0ZC50eHQpKQorJChldmFsICQoY2FsbCBt YXBfcnVsZSxzaGlmdF9qaXNfMjAwNCxVQ1NfdG9fU0hJRlRfSklTXzIwMDQucGwsc2ppcy0w MjEzLTIwMDQtc3RkLnR4dCkpCiAKLWV1Y19qaXNfMjAwNF90b191dGY4Lm1hcCB1dGY4X3Rv X2V1Y19qaXNfMjAwNC5tYXA6IFVDU190b19FVUNfSklTXzIwMDQucGwgZXVjLWppcy0yMDA0 LXN0ZC50eHQKLQkkKFBFUkwpIC1JICQoc3JjZGlyKSAkPAorIyByZW1vdmUgZHVwbGljYXRl cworVEVYVFMgPSAkKHNvcnQgJChBTExfVEVYVFMpKQogCi1zaGlmdF9qaXNfMjAwNF90b191 dGY4Lm1hcCB1dGY4X3RvX3NoaWZ0X2ppc18yMDA0Lm1hcDogVUNTX3RvX1NISUZUX0pJU18y MDA0LnBsIHNqaXMtMDIxMy0yMDA0LXN0ZC50eHQKLQkkKFBFUkwpIC1JICQoc3JjZGlyKSAk PAorYWxsOiAkKE1BUFMpCiAKIGRpc3RjbGVhbjogY2xlYW4KIAlybSAtZiAkKFRFWFRTKQpA QCAtMTM2LDExICs5MiwxMSBAQCBKT0hBQi5UWFQgS1NYMTAwMS5UWFQ6CiBLT0k4LVIuVFhU IEtPSTgtVS5UWFQ6CiAJJChET1dOTE9BRCkgaHR0cHM6Ly93d3cudW5pY29kZS5vcmcvUHVi bGljL01BUFBJTkdTL1ZFTkRPUlMvTUlTQy8kKEBGKQogCi0kKElTTzg4NTlURVhUUyk6Cisk KGZpbHRlciA4ODU5LSUuVFhULCQoVEVYVFMpKToKIAkkKERPV05MT0FEKSBodHRwczovL3d3 dy51bmljb2RlLm9yZy9QdWJsaWMvTUFQUElOR1MvSVNPODg1OS8kKEBGKQogCi0kKGZpbHRl ci1vdXQgQ1A4JSwkKFdJTlRFWFRTKSkgQ1A5MzIuVFhUIENQOTUwLlRYVDoKKyQoZmlsdGVy IENQOSUuVFhUIENQMTIlLlRYVCwkKFRFWFRTKSk6CiAJJChET1dOTE9BRCkgaHR0cHM6Ly93 d3cudW5pY29kZS5vcmcvUHVibGljL01BUFBJTkdTL1ZFTkRPUlMvTUlDU0ZUL1dJTkRPV1Mv JChARikKIAotJChmaWx0ZXIgQ1A4JSwkKFdJTlRFWFRTKSk6CiskKGZpbHRlciBDUDglLlRY VCwkKFRFWFRTKSk6CiAJJChET1dOTE9BRCkgaHR0cHM6Ly93d3cudW5pY29kZS5vcmcvUHVi bGljL01BUFBJTkdTL1ZFTkRPUlMvTUlDU0ZUL1BDLyQoQEYpCi0tIAoyLjMzLjAKCg== --------------975CBE54FFBA53304DA07EB5--