From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Authentication-Results: plum.tunbury.org; dkim=pass (1024-bit key; unprotected) header.d=inria.fr header.i=@inria.fr header.a=rsa-sha256 header.s=dc header.b=A809UmmK; dkim=fail reason="signature verification failed" (1024-bit key; secure) header.d=polytechnique.org header.i=@polytechnique.org header.a=rsa-sha256 header.s=svoboda header.b=RqU61ORb; dkim-atps=neutral Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=192.134.164.83; helo=mail2-relais-roc.national.inria.fr; envelope-from=caml-list-owner@inria.fr; receiver=tunbury.org Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by plum.tunbury.org (Postfix) with ESMTPS id 1CDBF400A5 for ; Tue, 11 Nov 2025 09:49:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc; h=from:to:date:message-id:mime-version:subject:reply-to: sender:list-id:list-help:list-subscribe:list-unsubscribe: list-post:list-owner:list-archive; bh=qcgYe0BSuPoQoiPRLm/0fcgmvZPrBAnp2dVofu/D3Dw=; b=A809UmmK3ow2/BoHn9jozWC3Ujkae9pkzlXx0nsHKd0QXO+1Y4de52lE T2nkEk7ssUfrzCNIrRw+t9Q6oIPxEN2KJtt/OPvu6e9mU8KNaP0ZfBxLc QtzP14JqDOKJ+P394y/kQWM9MfCE6vcKExitf7De9vr/U8MKoAAsSApLH s=; X-CSE-ConnectionGUID: vhUtVWMSQk67iFUwk5qRlA== X-CSE-MsgGUID: 6alnLa8BQBm+M+b+a4imvw== Received-SPF: Pass (mail2-relais-roc.national.inria.fr: domain of caml-list-owner@inria.fr designates 128.93.162.160 as permitted sender) identity=mailfrom; client-ip=128.93.162.160; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="caml-list-owner@inria.fr"; x-conformance=spf_only; x-record-type="v=spf1"; x-record-text="v=spf1 include:mailout.safebrands.com a:basic-mail.safebrands.com a:basic-mail01.safebrands.com a:basic-mail02.safebrands.com ip4:128.93.142.0/24 ip4:192.134.164.0/24 ip4:128.93.162.160 ip4:128.93.162.3 ip4:128.93.162.88 ip4:89.107.174.7 mx ~all" Received-SPF: None (mail2-relais-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@sympa.inria.fr) identity=helo; client-ip=128.93.162.160; receiver=mail2-relais-roc.national.inria.fr; envelope-from="caml-list-owner@inria.fr"; x-sender="postmaster@sympa.inria.fr"; x-conformance=spf_only Authentication-Results: mail2-relais-roc.national.inria.fr; spf=Pass smtp.mailfrom=caml-list-owner@inria.fr; spf=None smtp.helo=postmaster@sympa.inria.fr; dkim=hardfail (signature did not verify [final]) header.i=@polytechnique.org X-IronPort-AV: E=Sophos;i="6.19,296,1754949600"; d="scan'208,217";a="248573072" Received: from prod-listesu18.inria.fr (HELO sympa.inria.fr) ([128.93.162.160]) by mail2-relais-roc.national.inria.fr with ESMTP; 11 Nov 2025 10:49:58 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id E3A2DE0CD7; Tue, 11 Nov 2025 10:49:57 +0100 (CET) Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 2D1C2E0171 for ; Tue, 11 Nov 2025 10:49:52 +0100 (CET) X-CSE-ConnectionGUID: +jbnY1oVQI+jIbp3EIlS6A== X-CSE-MsgGUID: aJchttLaSAO1/4MQERGLag== IronPort-SDR: 691306be_zQFOewyRRKLQq573GLiDECnk0iXRgQYU835viurGShfHQob anrtjAvnXxlPw9REIHITzSEqAHQra5WHIpuwLZQ== X-ThreatScanner-Verdict: Negative X-IPAS-Result: =?us-ascii?q?A0FNBwCdBRNphSIeaIFahBaBAxkBYgZeMwcISQOEUoFjg?= =?us-ascii?q?WwIiz2CYJFNinuBaYEsFgUeFQEDAQ0uARsEAQIEAQEDAQIBggyBPYE3AhaMR?= =?us-ascii?q?QIfBgEENBMBAgQBAQEBAwIDAQEBAQEBAQEBDQEBBQEBAQIBAQIEBgECEAEBA?= =?us-ascii?q?QFASYZPDYJFGThTHlEUCQYBAQEBAQEBAQEBAQEBASIBAQEBAQEBAQEBAQEBA?= =?us-ascii?q?QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgQIAStzAQgKEwEBJgUNG?= =?us-ascii?q?CMDEAQBBgMCBA0BNQMBEwESFAYFgmMBgiACAk8DBAEMBpN/m0x6gTKBAYIMA?= =?us-ascii?q?QEGgQg+AwEBCQICAgEBDgklAdoMgRpKCYFKhW6CShsBKklrAoRJgx6BHQInD?= =?us-ascii?q?4FVRIEUAYIoUW+BfkELFwEBAQFaRgQYAQEIRQmDJYJpgg0ZehQdS4U/gXUyL?= =?us-ascii?q?IFThjoGggOGUIFEIgMmMywBVRMXCwcFW4EIAyo0LW4yHYEkQRhxgRSDSQ8Ta?= =?us-ascii?q?A8GgRKDUYkeD4pdAwttPTcUG5R8QhksggECDgszAiwQIwEuExAGAk0DAQMEB?= =?us-ascii?q?QkmDwIWAQ4BAgwTBAMBEQYCDg0MBgsLAgQpA5JXEBgqd7BzbTQHhB+BXgYMi?= =?us-ascii?q?QiBJpYGhASBV5I+iwuHRyKYJj4igjaHJ4EmCYFva5UkECwCAgSFUYF/I4ErH?= =?us-ascii?q?gwHMxowQw0VBYJACQo8HA+Nfy0Xg14QgS6DGjuCZrdPQjUCAQEKLgIHAQoBA?= =?us-ascii?q?QMJhUUdAQGMCC0Fbl0BAQ?= IronPort-PHdr: A9a23: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 dKBJTYVyT4FWoiA2j0bn+r63KHVxE/4TQ== IronPort-Data: A9a23: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 IronPort-HdrOrdr: A9a23:2nxPta5nq/zeb3bpKgPXwPXXdLJyesId70hD6qkRc203TiX8ra qTdZsguyMc5Ax9ZJhCo7C90cu7IE80nKQdieIs1NyZMzUO1lHFEKhSqaPchxfgFyf9+uM179 YDT4FOTPvqAxxfhcb+iTPId+rILeP3lZyVuQ== X-Talos-CUID: 9a23:egFvfm67/a7GyN4Oitsst0weHPF8dUPk7TTSAkWgUktITIbLYArF X-Talos-MUID: 9a23:7ppv6gaQ5tuAheBTvh3nhC1+EM5TyoP3TxwoqLg8lO2NOnkl X-IronPort-Anti-Spam-Filtered: true X-IronPort-AV: E=Sophos;i="6.19,296,1754949600"; d="scan'208,217";a="130507462" X-URL-ContentFilter: X-MGA-submission: =?us-ascii?q?MDENgovMDythL2QHyBFdkKGljapEwVO0CAUMBJ?= =?us-ascii?q?v73qyK3+6v+liVQrCDcIw3Pqsm1f1ZjrTREenfYQSpH295+Ewh34QVN+?= =?us-ascii?q?YD97VuYNgZRJCBsijDL4aFA/oLgKYGvYkesyvaF63hLs0sFBDwTnNiov?= =?us-ascii?q?xn58BuIz/FOVFC3Cu+iU839w=3D=3D?= Received: from mx1.polytechnique.org ([129.104.30.34]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2025 10:49:51 +0100 Received: from TM.local (unknown [82.66.240.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTPSA id 79EF81A381; Tue, 11 Nov 2025 10:49:49 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=polytechnique.org; s=svoboda; t=1762854589; bh=nv9R2PoebMhBMS4sLg5TgUMb7qDxNoujmMDwneceXe4=; h=From:To:Subject:Date:Message-ID; b=RqU61ORbspfPVB+VySH1LbhzmxmxJLBGrvlwijC8FoUfhAHdhmSAAkvcHdfYuyXTz vQd1JOkAAlVaYnA1aKz628vr/mB9ly7c7nrhKCo4RHMcBGaoLDUzAB4T1ZKYixCSJ2 Bpz/cFytJeHFMDo/cjGPMIfq266c4NtBXq08+EGM= From: Alan Schmitt To: "lwn" , caml-list@inria.fr Date: Tue, 11 Nov 2025 10:49:48 +0100 Message-ID: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="=-=-=" X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Tue Nov 11 10:49:49 2025 +0100 (CET)) X-Spam-Flag: Unsure, tests=bogofilter, spamicity=0.498299, queueID=97CA61A31D X-Org-Mail: alan.schmitt.1995@polytechnique.org Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News Reply-To: Alan Schmitt X-Loop: caml-list@inria.fr X-Sequence: 19400 Errors-To: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SGVsbG8NCg0KSGVyZSBpcyB0aGUgbGF0ZXN0IE9DYW1sIFdlZWtseSBOZXdzLCBmb3IgdGhlIHdl ZWsgb2YgTm92ZW1iZXIgMDQgdG8gMTEsDQoyMDI1Lg0KDQpUYWJsZSBvZiBDb250ZW50cw0K4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCk9wYW0t cmVwb3NpdG9yeSwgc2lnbmVkISBjb25leCBpcyBpbiBiZXRhIG5vdyA6KQ0KT0NhbWwgUGxhdGZv cm0gTmV3c2xldHRlcjogU2VwdGVtYmVyIHRvIE9jdG9iZXIgMjAyNQ0KRGVtb25zdHJhdGlvbiBv ZiB0aGUgZXh0ZW5zaW9uIGxpdGVyYWxzIGFuZCBjb25zdGFudCByZXdyaXRpbmcgZmVhdHVyZXMN Ck9sZCBDV04NCg0KDQpPcGFtLXJlcG9zaXRvcnksIHNpZ25lZCEgY29uZXggaXMgaW4gYmV0YSBu b3cgOikNCuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6DQogIDxo dHRwczovL2Rpc2N1c3Mub2NhbWwub3JnL3Qvb3BhbS1yZXBvc2l0b3J5LXNpZ25lZC1jb25leC1p cy1pbi1iZXRhLW5vdy8xNzQ2MS8xPg0KDQoNCkhhbm5lcyBNZWhuZXJ0IGFubm91bmNlZA0K4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSADQoNCiAgRGVhciBldmVyeW9uZSwNCg0KICB3ZeKAmXJlIHByb3VkIHRvIGFu bm91bmNlIHRoYXQgY29uZXgsIGluIGFuIGluaXRpYWwgdmVyc2lvbiwgaXMgbm93DQogIGxpdmUh IFlvdSBjYW4gcmVjZWl2ZSBzaWduZWQgdXBkYXRlcyBvZiB0aGUgb3BhbS1yZXBvc2l0b3J5LiBB IHF1aWNrDQogIGd1aWRlOg0KDQogIFRvIHNldHVwIG9wYW0gd2l0aCBjb25leCBvbiB5b3VyIG1h Y2hpbmUsIHlvdSBuZWVkIHRvIGluc3RhbGwgY29uZXgNCiAgKGFuZC9vciBjb25leC1taXJhZ2Ut Y3J5cHRvLCBzZWUgYmVsb3cpIC0gY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGFzDQogIG9wYW0g cGFja2FnZSAoc29ycnkgYWJvdXQgdGhlIGJvb3RzdHJhcCBwcm9ibGVtIC0gaG9wZWZ1bGx5IGl0 IHdpbGwgYmUNCiAgaW50ZWdyYXRlZCBpbnRvIG9wYW0gYXQgc29tZSB0aW1lKS4NCg0KICBUaGVu LCBpbiB5b3VyIOKAnFx+Ly5vcGFtL2NvbmZpZ+KAnSB5b3UgbmVlZCB0byBzcGVjaWZ5IHRoZQ0K ICBbcmVwb3NpdG9yeS12YWxpZGF0aW9uLWNvbW1hbmRdOg0KDQogIOKUjOKUgOKUgOKUgOKUgA0K ICDilIIgcmVwb3NpdG9yeS12YWxpZGF0aW9uLWNvbW1hbmQ6IFsNCiAg4pSCICAgIi9wYXRoL3Rv L2NvbmV4X3ZlcmlmeV9taXJhZ2VfY3J5cHRvIg0KICDilIIgICAiLS1xdW9ydW09JXtxdW9ydW19 JSINCiAg4pSCICAgIi0tdHJ1c3QtYW5jaG9ycz0le2FuY2hvcnN9JSINCiAg4pSCICAgIi0tcmVw b3NpdG9yeT0le3JlcG99JSIge2luY3JlbWVudGFsfQ0KICDilIIgICAiLS1kaXI9JXtkaXJ9JSIg eyFpbmNyZW1lbnRhbH0NCiAg4pSCICAgIi0tcGF0Y2g9JXtwYXRjaH0lIiB7aW5jcmVtZW50YWx9 DQogIOKUgiAgICItLWluY3JlbWVudGFsIiB7aW5jcmVtZW50YWx9DQogIOKUgiBdDQogIOKUlOKU gOKUgOKUgOKUgA0KDQogIEluc3RlYWQgb2Yg4oCcY29uZXhfdmVyaWZ5X21pcmFnZV9jcnlwdG/i gJ0sIHlvdSBjYW4gYXMgd2VsbCB1c2UNCiAg4oCcY29uZXhfdmVyaWZ5X29wZW5zc2zigJ0gKGZl d2VyIGRlcGVuZGVuY2llcywgY2FsbHMgb3V0IHRvIE9wZW5TU0wgYXMNCiAgdGhlIGNyeXB0b2dy YXBoaWMgcHJvdmlkZXIsIGlzIHNsb3dlcikuDQoNCiAgVGhlbiB5b3UgY2FuIHJ1biBgb3BhbSBy ZXBvIGFkZCBjb25leC1yb2J1ciBodHRwczovL2NvbmV4LnJvYnVyLmNvb3AgMQ0KICBzaGEyNTY9 YWQ1ZWIwZTRhNzdhYmZiYzZjMWJiNTY2MWViYTQ2MDQ5NDA0ZTAyMjI1ODhkZDA1OWM4N2YxMjQz NmQ0MWEyOCcuIFRoZXJlYWZ0ZXINCiAgeW91IGNhbiBgb3BhbSByZXBvIHJlbW92ZSBkZWZhdWx0 JywgYW5kIHRoZW4geW914oCZcmUgb25seSB1c2luZyBzaWduZWQNCiAgbWV0YWRhdGEuIFRoZSDi gJwx4oCdIGlzIHRoZSBxdW9ydW0gb2Ygcm9vdCBrZXlzIGZvciBzaWduYXR1cmVzIHRvIGJlDQog IHZhbGlkLCB0aGUNCiAg4oCcc2hhMjU2PWFkNWViMGU0YTc3YWJmYmM2YzFiYjU2NjFlYmE0NjA0 OTQwNGUwMjIyNTg4ZGQwNTljODdmMTI0MzZkNDFhMjjigJ0NCiAgaXMgdGhlIGhhc2ggb2YgdGhl IHB1YmxpYyByb290IGtleS4NCg0KICBSZWFkIHRoZSBmdWxsIGFydGljbGUgYXQNCiAgPGh0dHBz Oi8vaGFubmVzLnJvYnVyLmNvb3AvUG9zdHMvQ29uZXhSdW5uaW5nPiDigJMgaGFwcHkgdG8gcmVj ZWl2ZQ0KICBmZWVkYmFjay4NCg0KICBUaGUgZGV2ZWxvcG1lbnQgb2YgY29uZXggaXMgc3VwcG9y dGVkIGJ5IHRoZSBbT0NhbWwgU29mdHdhcmUNCiAgRm91bmRhdGlvbl0gYW5kIGJ5IFthaHJlZnNd Lg0KDQoNCltyZXBvc2l0b3J5LXZhbGlkYXRpb24tY29tbWFuZF0NCjxodHRwczovL29wYW0ub2Nh bWwub3JnL2RvYy9NYW51YWwuaHRtbCNjb25maWdmaWVsZC1yZXBvc2l0b3J5LXZhbGlkYXRpb24t Y29tbWFuZD4NCg0KW09DYW1sIFNvZnR3YXJlIEZvdW5kYXRpb25dIDxodHRwczovL29jYW1sLXNm Lm9yZy8+DQoNClthaHJlZnNdIDxodHRwczovL2FocmVmcy5jb20vPg0KDQoNCk9DYW1sIFBsYXRm b3JtIE5ld3NsZXR0ZXI6IFNlcHRlbWJlciB0byBPY3RvYmVyIDIwMjUNCuKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKV kOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkA0KDQogIEFyY2hpdmU6DQogIDxodHRwczovL2Rp c2N1c3Mub2NhbWwub3JnL3Qvb2NhbWwtcGxhdGZvcm0tbmV3c2xldHRlci1zZXB0ZW1iZXItdG8t b2N0b2Jlci0yMDI1LzE3NDYyLzE+DQoNCg0KU2FiaW5lIFNjaG1hbHR6IGFubm91bmNlZA0K4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSADQoNCiAgV2VsY29tZSB0byB0aGUgc2l4dGVlbnRoIGVkaXRpb24gb2Yg dGhlIE9DYW1sIFBsYXRmb3JtIG5ld3NsZXR0ZXIhDQoNCiAgSW4gdGhpcyBTZXB0ZW1iZXIgdG8g T2N0b2JlciAyMDI1IGVkaXRpb24sIHdlIGFyZSBleGNpdGVkIHRvIGJyaW5nIHlvdQ0KICB0aGUg bGF0ZXN0IG9uIHRoZSBPQ2FtbCBQbGF0Zm9ybSwgY29udGludWluZyBvdXIgdHJhZGl0aW9uIG9m DQogIGhpZ2hsaWdodGluZyByZWNlbnQgZGV2ZWxvcG1lbnRzIGFzIHNlZW4gaW4gW3ByZXZpb3Vz IGVkaXRpb25zXS4gVG8NCiAgdW5kZXJzdGFuZCB0aGUgZGlyZWN0aW9uIHdlJ3JlIGhlYWRlZCwg ZXNwZWNpYWxseSByZWdhcmRpbmcNCiAgZGV2ZWxvcG1lbnQgd29ya2Zsb3dzIGFuZCB1c2VyIGV4 cGVyaWVuY2UgaW1wcm92ZW1lbnRzLCBjaGVjayBvdXQgb3VyDQogIFtyb2FkbWFwXS4NCg0KICBZ b3UgY2FuIFtzdWJzY3JpYmUgdG8gdGhpcyBuZXdzbGV0dGVyIG9uIExpbmtlZEluXSENCg0KICAq SGlnaGxpZ2h0czoqDQoNCiAg4oCiICpPQ2FtbCA1LjQuMCBSZWxlYXNlZCo6IE1ham9yIHN0YWJs ZSByZWxlYXNlIGZlYXR1cmluZyBsYWJlbGxlZA0KICAgICB0dXBsZXMsIGltbXV0YWJsZSBhcnJh eXMsIHVuaWZpZWQgYXJyYXkgbGl0ZXJhbCBzeW50YXgsIGF0b21pYw0KICAgICByZWNvcmQgZmll bGRzLCBhbmQgZm91ciBuZXcgc3RhbmRhcmQgbGlicmFyeSBtb2R1bGVzDQogIOKAoiAqU2VjdXJp dHkgUmVzcG9uc2UgVGVhbSBFc3RhYmxpc2hlZCo6IE5ldyB0ZWFtIGZvcm1lZCB0byBoYW5kbGUN CiAgICAgc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzIGluIHRoZSBPQ2FtbCBlY29zeXN0ZW0NCiAg 4oCiICpFbmhhbmNlZCBFZGl0b3IgU3VwcG9ydCo6IE9DYW1sLUxTUCAxLjI0LjAgYW5kIE1lcmxp biA1LjYgYnJpbmcNCiAgICAgaW1wcm92ZWQgcHJvamVjdCBuYXZpZ2F0aW9uIGFuZCBwZXJmb3Jt YW5jZSBvcHRpbWl6YXRpb25zDQogIOKAoiAqT0NhbWwub3JnIFJlb3JnYW5pemF0aW9uKjogQ2xl YXIgc2VwYXJhdGlvbiBiZXR3ZWVuIG5ld3MgYWJvdXQNCiAgICAgcHJvZHVjdGlvbi1yZWFkeSBm ZWF0dXJlcyBhbmQgcmVsZWFzZXMgKE9DYW1sIENoYW5nZWxvZykgYW5kDQogICAgIG9uZ29pbmcg d29yayBhbmQgZXhwZXJpbWVudGFsIGZlYXR1cmVzIChCYWNrc3RhZ2UgT0NhbWwpDQogIOKAoiAq RXhwZXJpbWVudGFsIFRvb2xzIFByb2dyZXNzKjogR29zcGVsIGVjb3N5c3RlbSB0b29scyByZWFk eSBmb3INCiAgICAgdGVzdGluZywgbmV3IG9jYW1sLm52aW0gcGx1Z2luIGZvciBOZW92aW0gdXNl cnMsIGFuZCBleHBlcmltZW50YWwNCiAgICAgTWVybGluIGJyYW5jaCB1c2luZyBkb21haW5zIGFu ZCBlZmZlY3RzDQoNCiAgKk9DYW1sIENoYW5nZWxvZzoqDQoNCiAg4oCiIFtPQ2FtbC5vcmc6IElu dHJvZHVjaW5nIEJhY2tzdGFnZSBPQ2FtbCAtIFNlcGFyYXRlIEZlZWRzIGZvciBTdGFibGUNCiAg ICBhbmQgRXhwZXJpbWVudGFsIEZlYXR1cmVzXSAoT2N0IDgsIDIwMjUpDQogIOKAoiBbT0NhbWwg U2VjdXJpdHkgUmVzcG9uc2UgVGVhbSBFc3RhYmxpc2hlZF0gKE9jdCAzLCAyMDI1KQ0KDQogICpC YWNrc3RhZ2UgT0NhbWw6Kg0KDQogIOKAoiBbR29zcGVsIEVjb3N5c3RlbTogVG9vbHMgUmVhZHkg dG8gVHJ5LCBMYW5ndWFnZSBFdm9sdmluZ10gKE9jdCAxNSwNCiAgICAyMDI1KQ0KICDigKIgW0Jh Y2tzdGFnZSBPQ2FtbDogb2NhbWwubnZpbSAtIEEgTmVvdmltIFBsdWdpbiBmb3IgT0NhbWxdIChP Y3QgMTQsDQogICAgMjAyNSkNCiAg4oCiIFtCYWNrc3RhZ2UgT0NhbWw6IFlvdSBDYW4gVHJ5IHRo ZSBFeHBlcmltZW50YWwgQnJhbmNoIG9mIE1lcmxpbiBUaGF0DQogICAgVXNlcyBEb21haW5zIGFu ZCBFZmZlY3RzXSAoT2N0IDgsIDIwMjUpDQoNCiAgKlN0YWJsZSBSZWxlYXNlczoqDQoNCiAg4oCi IFtSZWxlYXNlIG9mIE9DYW1sIDUuNC4wXSAoT2N0IDksIDIwMjUpDQogIOKAoiBbb3BhbS1wdWJs aXNoIDIuNy4wXSAoT2N0IDcsIDIwMjUpDQogIOKAoiBbT0NhbWwtTFNQIDEuMjQuMF0gKE9jdCA0 LCAyMDI1KQ0KICDigKIgW01lcmxpbiA1LjYtNTAzIGFuZCA1LjYtNTA0XSAoT2N0IDQsIDIwMjUp DQogIOKAoiBbT0NhbWwtTFNQIDEuMjMuMV0gKE9jdCAzLCAyMDI1KQ0KICDigKIgW1BweGxpYiAw LjM2LjJdIChPY3QgMSwgMjAyNSkNCiAg4oCiIFtvY3AtaW5kZW50IDEuOS4wXSAoT2N0IDEsIDIw MjUpDQogIOKAoiBbb3BhbS1wdWJsaXNoIDIuNi4wXSAoU2VwIDE5LCAyMDI1KQ0KICDigKIgW0R1 bmUgMy4yMC4yXSAoU2VwIDEwLCAyMDI1KQ0KDQogICpVbnN0YWJsZSBSZWxlYXNlczoqDQoNCiAg 4oCiIFtGaXJzdCByZWxlYXNlIGNhbmRpZGF0ZSBmb3IgT0NhbWwgNS40LjBdIChTZXAgMjksIDIw MjUpDQogIOKAoiBbU2Vjb25kIGJldGEgcmVsZWFzZSBvZiBPQ2FtbCA1LjQuMF0gKFNlcCA5LCAy MDI1KQ0KDQoNCltwcmV2aW91cyBlZGl0aW9uc10gPGh0dHBzOi8vZGlzY3Vzcy5vY2FtbC5vcmcv dGFnL3BsYXRmb3JtLW5ld3NsZXR0ZXI+DQoNCltyb2FkbWFwXSA8aHR0cHM6Ly9vY2FtbC5vcmcv ZG9jcy9wbGF0Zm9ybS1yb2FkbWFwPg0KDQpbc3Vic2NyaWJlIHRvIHRoaXMgbmV3c2xldHRlciBv biBMaW5rZWRJbl0NCjxodHRwczovL3d3dy5saW5rZWRpbi5jb20vbmV3c2xldHRlcnMvb2NhbWwt cGxhdGZvcm0tbmV3c2xldHRlci03MzA1MjcwNjk0NTY3NjYxNTY4Lz4NCg0KW09DYW1sLm9yZzog SW50cm9kdWNpbmcgQmFja3N0YWdlIE9DYW1sIC0gU2VwYXJhdGUgRmVlZHMgZm9yIFN0YWJsZSBh bmQNCkV4cGVyaW1lbnRhbCBGZWF0dXJlc10NCjxodHRwczovL29jYW1sLm9yZy9jaGFuZ2Vsb2cv MjAyNS0xMC0wOC1pbnRyb2R1Y2luZy1iYWNrc3RhZ2Utb2NhbWw+DQoNCltPQ2FtbCBTZWN1cml0 eSBSZXNwb25zZSBUZWFtIEVzdGFibGlzaGVkXQ0KPGh0dHBzOi8vb2NhbWwub3JnL2NoYW5nZWxv Zy8yMDI1LTEwLTAzLXNlY3VyaXR5LXRlYW0+DQoNCltHb3NwZWwgRWNvc3lzdGVtOiBUb29scyBS ZWFkeSB0byBUcnksIExhbmd1YWdlIEV2b2x2aW5nXQ0KPGh0dHBzOi8vb2NhbWwub3JnL2JhY2tz dGFnZS8yMDI1LTEwLTE1LWdvc3BlbC1sYW5ndWFnZS1ldm9sdmluZz4NCg0KW0JhY2tzdGFnZSBP Q2FtbDogb2NhbWwubnZpbSAtIEEgTmVvdmltIFBsdWdpbiBmb3IgT0NhbWxdDQo8aHR0cHM6Ly9v Y2FtbC5vcmcvYmFja3N0YWdlLzIwMjUtMTAtMTQtb2NhbWwtbnZpbS1hLW5lb3ZpbS1wbHVnaW4t Zm9yLW9jYW1sPg0KDQpbQmFja3N0YWdlIE9DYW1sOiBZb3UgQ2FuIFRyeSB0aGUgRXhwZXJpbWVu dGFsIEJyYW5jaCBvZiBNZXJsaW4gVGhhdA0KVXNlcyBEb21haW5zIGFuZCBFZmZlY3RzXQ0KPGh0 dHBzOi8vb2NhbWwub3JnL2JhY2tzdGFnZS8yMDI1LTEwLTA4LW1lcmxpbi1kb21haW5zPg0KDQpb UmVsZWFzZSBvZiBPQ2FtbCA1LjQuMF0NCjxodHRwczovL29jYW1sLm9yZy9jaGFuZ2Vsb2cvMjAy NS0xMC0wOS1vY2FtbC01NDA+DQoNCltvcGFtLXB1Ymxpc2ggMi43LjBdDQo8aHR0cHM6Ly9vY2Ft bC5vcmcvY2hhbmdlbG9nLzIwMjUtMTAtMDctb3BhbS1wdWJsaXNoLTItNy0wPg0KDQpbT0NhbWwt TFNQIDEuMjQuMF0NCjxodHRwczovL29jYW1sLm9yZy9jaGFuZ2Vsb2cvMjAyNS0xMC0wNC1vY2Ft bC1sc3AtMTI0MD4NCg0KW01lcmxpbiA1LjYtNTAzIGFuZCA1LjYtNTA0XQ0KPGh0dHBzOi8vb2Nh bWwub3JnL2NoYW5nZWxvZy8yMDI1LTEwLTA0LW1lcmxpbi12NTYtNTAzLWFuZC01MDQ+DQoNCltP Q2FtbC1MU1AgMS4yMy4xXQ0KPGh0dHBzOi8vb2NhbWwub3JnL2NoYW5nZWxvZy8yMDI1LTEwLTAz LW9jYW1sLWxzcC0xMjMxPg0KDQpbUHB4bGliIDAuMzYuMl0gPGh0dHBzOi8vb2NhbWwub3JnL2No YW5nZWxvZy8yMDI1LTEwLTAxLXBweGxpYi0wMzYyPg0KDQpbb2NwLWluZGVudCAxLjkuMF0NCjxo dHRwczovL29jYW1sLm9yZy9jaGFuZ2Vsb2cvMjAyNS0xMC0wMS1vY3AtaW5kZW50LTE5MD4NCg0K W29wYW0tcHVibGlzaCAyLjYuMF0NCjxodHRwczovL29jYW1sLm9yZy9jaGFuZ2Vsb2cvMjAyNS0w OS0xOS1vcGFtLXB1Ymxpc2gtMi02LTA+DQoNCltEdW5lIDMuMjAuMl0gPGh0dHBzOi8vb2NhbWwu b3JnL2NoYW5nZWxvZy8yMDI1LTA5LTEwLWR1bmUzMjAyPg0KDQpbRmlyc3QgcmVsZWFzZSBjYW5k aWRhdGUgZm9yIE9DYW1sIDUuNC4wXQ0KPGh0dHBzOi8vb2NhbWwub3JnL2JhY2tzdGFnZS8yMDI1 LTA5LTI5LW9jYW1sLTU0MC1yYzE+DQoNCltTZWNvbmQgYmV0YSByZWxlYXNlIG9mIE9DYW1sIDUu NC4wXQ0KPGh0dHBzOi8vb2NhbWwub3JnL2JhY2tzdGFnZS8yMDI1LTA5LTA5LW9jYW1sLTU0MC1i ZXRhMj4NCg0KT0NhbWwgQ29tcGlsZXINCuKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjA0KDQril4ogT0NhbWwgNS40LjAgU3RhYmxlIFJlbGVhc2UNCg0KICBUaGUgW09j dG9iZXIgOSwgMjAyNSByZWxlYXNlIG9mIE9DYW1sIDUuNC4wXSByZXByZXNlbnRzIGEgbWFqb3IN CiAgbWlsZXN0b25lIHdpdGggc2lnbmlmaWNhbnQgbGFuZ3VhZ2UgZW5oYW5jZW1lbnRzLiBBZnRl ciB0d28gYmV0YQ0KICByZWxlYXNlcyBhbmQgYSByZWxlYXNlIGNhbmRpZGF0ZSBpbiBTZXB0ZW1i ZXIsIHRoZSBzdGFibGUgdmVyc2lvbg0KICBkZWxpdmVyczoNCg0KICAqTGFuZ3VhZ2UgRmVhdHVy ZXM6Kg0KDQogIOKAoiAqTGFiZWxsZWQgdHVwbGVzKjogRW5hYmxlIGJldHRlciBkb2N1bWVudGF0 aW9uIGFuZCB0eXBlIHNhZmV0eSB3aXRoDQogICAgIGxhYmVscyBvbiB0dXBsZSBmaWVsZHMNCg0K ICAgIOKUjOKUgOKUgOKUgOKUgA0KICAgIOKUgiBsZXQgKCAqICkgKHgsfmR4KSAoeSx+ZHg6ZHkp ID0geCoueSwgfmR4Oih4ICouIGR5ICsuIHkgKi4gZHgpDQogICAg4pSU4pSA4pSA4pSA4pSADQoN CiAg4oCiICpJbW11dGFibGUgYXJyYXlzKiAoYCdhIGlhcnJheScpOiBDb3ZhcmlhbnQgYXJyYXlz IGZvciBzYWZlcg0KICAgICBjb25jdXJyZW50IHByb2dyYW1taW5nDQogIOKAoiAqVW5pZmllZCBh cnJheSBsaXRlcmFsIHN5bnRheCo6IGBbfCAuLi4gfF0nIG5vdyB3b3JrcyBmb3IgYCdhDQogICAg IGFycmF5JywgYCdhIGlhcnJheScsIGFuZCBgZmxvYXRhcnJheScNCiAg4oCiICpBdG9taWMgcmVj b3JkIGZpZWxkcyo6IE5ldyBgW0BhdG9taWNdJyBhdHRyaWJ1dGUgd2l0aCBgQXRvbWljLkxvYycN CiAgICAgc3VibW9kdWxlIGZvciBsb2NrLWZyZWUgY29uY3VycmVudCBhY2Nlc3MNCg0KICAqU3Rh bmRhcmQgTGlicmFyeSBBZGRpdGlvbnM6Kg0KDQogIOKAoiBgUGFpcic6IFV0aWxpdHkgZnVuY3Rp b25zIGZvciBwYWlycw0KICDigKIgYFBxdWV1ZSc6IFByaW9yaXR5IHF1ZXVlIGltcGxlbWVudGF0 aW9uDQogIOKAoiBgUmVwcic6IEV4cGxpY2l0IGZ1bmN0aW9ucyBmb3IgcGh5c2ljYWwgZXF1YWxp dHkgYW5kIGNvbXBhcmlzb24NCiAg4oCiIGBJYXJyYXknOiBPcGVyYXRpb25zIG9uIGltbXV0YWJs ZSBhcnJheXMNCg0KICAqUnVudGltZSBJbXByb3ZlbWVudHM6Kg0KDQogIOKAoiBGcmFtZSBwb2lu dGVycyBzdXBwb3J0IGZvciBBUk02NCAoTGludXggYW5kIG1hY09TKQ0KICDigKIgUGVyZm9ybWFu Y2UgZml4IGZvciBBcHBsZSBTaWxpY29uICh1c2luZyBgc3RscicgaW5zdGVhZCBvZiBgZG1iDQog ICAgaXNobGQ7IHN0cicpDQogIOKAoiBTb2Z0d2FyZSBwcmVmZXRjaGluZyBmb3IgQVJNNjQsIHMz OTB4LCBQUEM2NCwgYW5kIFJJU0MtVg0KICDigKIgUmVzdG9yZWQgIm1lbW9yeSBjbGVhbnVwIHVw b24gZXhpdCIgbW9kZQ0KDQogIFRoZSBbU2VwdGVtYmVyIGJldGEgcmVsZWFzZXNdIGFuZCBbcmVs ZWFzZSBjYW5kaWRhdGVdIGRlbW9uc3RyYXRlZCB0aGUNCiAgbWF0dXJpdHkgb2YgdGhlIHJlbGVh c2UsIHdpdGggb25seSBtaW5vciBUU0FOIGFuZCBtZXRhZGF0YSBmaXhlcw0KICBuZWVkZWQuDQoN Cg0KICBbT2N0b2JlciA5LCAyMDI1IHJlbGVhc2Ugb2YgT0NhbWwgNS40LjBdDQogIDxodHRwczov L29jYW1sLm9yZy9jaGFuZ2Vsb2cvMjAyNS0xMC0wOS1vY2FtbC01NDA+DQoNCiAgW1NlcHRlbWJl ciBiZXRhIHJlbGVhc2VzXQ0KICA8aHR0cHM6Ly9vY2FtbC5vcmcvYmFja3N0YWdlLzIwMjUtMDkt MDktb2NhbWwtNTQwLWJldGEyPg0KDQogIFtyZWxlYXNlIGNhbmRpZGF0ZV0NCiAgPGh0dHBzOi8v b2NhbWwub3JnL2JhY2tzdGFnZS8yMDI1LTA5LTI5LW9jYW1sLTU0MC1yYzE+DQoNCg0K4peKIFdJ UDogUmVsb2NhdGFibGUgT0NhbWwNCg0KICBXb3JrIG9uICpSZWxvY2F0YWJsZSBPQ2FtbCogaXMg cHJvZ3Jlc3NpbmcgdG93YXJkIGluY2x1c2lvbiBpbiBPQ2FtbA0KICA1LjUsIHdpdGggaW1wbGVt ZW50YXRpb24gUFJzIG9wZW5lZCBieSBEYXZpZCBBbGxzb3BwIGluIFNlcHRlbWJlci4gVGhlDQog IGNoYW5nZXMgYXJlIHVuZGVyZ29pbmcgcmV2aWV3IGZyb20gU2FtdWVsIEh5bSwgSm9uYWggQmVj a2ZvcmQsIGFuZA0KICBvdGhlcnMuDQoNCiAgKldoYXQgUmVsb2NhdGFibGUgT0NhbWwgRW5hYmxl czoqDQoNCiAgVGhpcyBmZWF0dXJlIGFsbG93cyB0aGUgT0NhbWwgY29tcGlsZXIgYW5kIGl0cyBh c3NvY2lhdGVkIHRvb2xzIHRvIGJlDQogIG1vdmVkIHRvIGRpZmZlcmVudCBmaWxlc3lzdGVtIGxv Y2F0aW9ucyBhZnRlciBpbnN0YWxsYXRpb24gd2l0aG91dA0KICBicmVha2luZyBmdW5jdGlvbmFs aXR5LiBLZXkgYmVuZWZpdHMgaW5jbHVkZToNCg0KICDigKIgQmluYXJ5IGRpc3RyaWJ1dGlvbnMg dGhhdCB3b3JrIHJlZ2FyZGxlc3Mgb2YgaW5zdGFsbGF0aW9uIHBhdGgNCiAg4oCiIEltcHJvdmVk IGZsZXhpYmlsaXR5IGZvciBwYWNrYWdlIG1hbmFnZXJzIG9yZ2FuaXppbmcgT0NhbWwNCiAgICBp bnN0YWxsYXRpb25zDQogIOKAoiBCdW5kbGluZyBvZiBzcGVjaWZpYyBPQ2FtbCB2ZXJzaW9ucyBi eSBkZXZlbG9wZXIgdG9vbHMgd2l0aG91dCBwYXRoDQogICAgY29uZmxpY3RzDQogIOKAoiBTaW1w bGlmaWVkIGNyb3NzLXBsYXRmb3JtIGRpc3RyaWJ1dGlvbg0KDQogICpDdXJyZW50IFN0YXR1czoq DQoNCiAgVGhlIGltcGxlbWVudGF0aW9uIGlzIGluIGFjdGl2ZSByZXZpZXcgd2l0aCBvbmdvaW5n IHJlc3BvbnNlcyB0bw0KICBmZWVkYmFjay4gVGhlIGNvcmUgZGV2ZWxvcG1lbnQgdGVhbSBpcyBs aWtlbHkgdG8gcmV2aWV3IHRoZSBjaGFuZ2VzIGF0DQogIGFuIHVwY29taW5nIG1lZXRpbmcsIHRh cmdldGluZyBpbmNsdXNpb24gaW4gT0NhbWwgNS41Lg0KDQogIEZvciB0ZWNobmljYWwgZGV0YWls cyBhYm91dCB0aGUgaW1wbGVtZW50YXRpb24gYXBwcm9hY2ggYW5kIGl0cw0KICBpbXBsaWNhdGlv bnMgZm9yIHRoZSBlY29zeXN0ZW0sIHNlZSBEYXZpZCBBbGxzb3BwJ3MgW2Jsb2cgcG9zdCBvbg0K ICBSZWxvY2F0YWJsZSBPQ2FtbF0gYW5kIHRoZSBhc3NvY2lhdGVkIFtEaXNjdXNzIHRocmVhZF0u DQoNCg0KICBbYmxvZyBwb3N0IG9uIFJlbG9jYXRhYmxlIE9DYW1sXQ0KICA8aHR0cHM6Ly93d3cu ZHJhMjcudWsvYmxvZy9wbGF0Zm9ybS8yMDI1LzA5LzE1L3JlbG9jYXRhYmxlLW9jYW1sLmh0bWw+ DQoNCiAgW0Rpc2N1c3MgdGhyZWFkXSA8aHR0cHM6Ly9kaXNjdXNzLm9jYW1sLm9yZy90L3JlbG9j YXRhYmxlLW9jYW1sLzE3MjUzPg0KDQoNCkJ1aWxkIFN5c3RlbQ0K4pWM4pWM4pWM4pWM4pWM4pWM 4pWM4pWM4pWM4pWM4pWM4pWMDQoNCuKXiiBEdW5lDQoNCiAgW0R1bmUgMy4yMC4yXSAoU2VwdGVt YmVyIDEwLCAyMDI1KSBwcm92aWRlcyBidWcgZml4ZXMgYW5kIHN0YWJpbGl0eQ0KICBpbXByb3Zl bWVudHMgZm9yIHRoZSAzLjIwIHNlcmllcy4NCg0KDQogIFtEdW5lIDMuMjAuMl0gPGh0dHBzOi8v b2NhbWwub3JnL2NoYW5nZWxvZy8yMDI1LTA5LTEwLWR1bmUzMjAyPg0KDQogIOKXiiBFeHBlcmlt ZW50YWw6IER1bmUgUGFja2FnZSBNYW5hZ2VtZW50DQoNCiAgICBXZSBrZWVwIGV4cGxvcmluZzoN Cg0KICAgIOKAoiAqUG9ydGFibGUgRXh0ZXJuYWwgRGVwZW5kZW5jaWVzKjogQW4gYXBwcm9hY2gg Zm9yIHN0b3Jpbmcgc3lzdGVtDQogICAgICAgcGFja2FnZSBkZXBlbmRlbmNpZXMgaW4gYSBwbGF0 Zm9ybS1hZ25vc3RpYyBmb3JtYXQsIGFsbG93aW5nDQogICAgICAgcHJvamVjdHMgdG8gbWFpbnRh aW4gYSBzaW5nbGUgc3BlY2lmaWNhdGlvbiB0aGF0IHJlc29sdmVzDQogICAgICAgY29ycmVjdGx5 IGFjcm9zcyBMaW51eCwgbWFjT1MsIGFuZCBXaW5kb3dzIGVudmlyb25tZW50cywgZW5zdXJpbmcN CiAgICAgICBjb25zaXN0ZW50IGJ1aWxkcyByZWdhcmRsZXNzIG9mIHBsYXRmb3JtLXNwZWNpZmlj IHBhY2thZ2UgbmFtaW5nDQogICAgICAgYW5kIHZlcnNpb25pbmcgZGlmZmVyZW5jZXMuDQogICAg 4oCiICpQb3J0YWJsZSBMb2NrIERpcmVjdG9yaWVzKjogTG9jayBkaXJlY3RvcmllcyB0aGF0IHdv cmsNCiAgICAgICBjb25zaXN0ZW50bHkgYWNyb3NzIGRpZmZlcmVudCBvcGVyYXRpbmcgc3lzdGVt cyBhbmQNCiAgICAgICBhcmNoaXRlY3R1cmVzLCBhZGRyZXNzaW5nIHRoZSBjdXJyZW50IGxpbWl0 YXRpb24gd2hlcmUNCiAgICAgICBwbGF0Zm9ybS1zcGVjaWZpYyBkZXBlbmRlbmN5IHJlc29sdXRp b25zIHByZXZlbnQgdGVhbXMgZnJvbQ0KICAgICAgIHNoYXJpbmcgbG9jayBmaWxlcyB0aHJvdWdo IHZlcnNpb24gY29udHJvbCBpbiBoZXRlcm9nZW5lb3VzDQogICAgICAgZGV2ZWxvcG1lbnQgZW52 aXJvbm1lbnRzLg0KICAgIOKAoiAqTG9jayBEaXJlY3RvcmllcyBhcyBCdWlsZCBUYXJnZXRzKjog Q3VycmVudGx5LCB0aGUgc29sdmVyIHRoYXQNCiAgICAgICBjb21lcyB1cCB3aXRoIGEgc2V0IG9m IGNvbXBhdGlibGUgZGVwZW5kZW5jaWVzIG5lZWRzIHRvIGJlIHJ1biBieQ0KICAgICAgIHRoZSB1 c2VyIGV4cGxpY2l0ZWx5ICh1c2luZyBgZHVuZSBwa2cgbG9jaycpLCBidXQgaW4gdGhlIGZ1dHVy ZQ0KICAgICAgIHdlIGludGVuZCB0byBjcmVhdGUgYnVpbGQgcGxhbnMgaW1wbGljaXRseSB2aWEg RHVuZSBidWlsZA0KICAgICAgIHJ1bGVzLiBUaGlzIHNob3VsZCBtYWtlIG1ha2UgcGFja2FnZSBt YW5hZ2VtZW50IHNpbXBsZXIgdG8gdXNlIGFzDQogICAgICAgaXQgcmVxdWlyZXMgZmV3ZXIgdXNl ciBhY3Rpb25zIGFuZCBkb2VzIG5vdCByZXF1aXJlIHB1dHRpbmcNCiAgICAgICB2ZXJib3NlIGxv Y2sgZGlyZWN0b3JpZXMgaW50byB0aGUgcHJvamVjdCBzb3VyY2UNCiAgICAgICBkaXJlY3Rvcmll cy4gVGhpcyBjaGFuZ2UgYWxzbyBwYXZlcyB0aGUgd2F5IGZvciBhdXRvbWF0aWMNCiAgICAgICBy ZWxvY2tpbmcgd2hlbiBkZXBlbmRlbmNpZXMgY2hhbmdlLCBpbmNsdWRpbmcgaW4gd2F0Y2ggbW9k ZS4NCg0KICAgIFRoZXNlIGZlYXR1cmVzIHJlbWFpbiB1bmRlciBhY3RpdmUgZGV2ZWxvcG1lbnQg YW5kIHNob3VsZCBub3QgYmUNCiAgICByZWxpZWQgb24gaW4gcHJvZHVjdGlvbi4gSG93ZXZlciwg d2UgZW5jb3VyYWdlIGNhdXRpb3VzIGFkb3B0aW9uIG9mDQogICAgRHVuZSBQYWNrYWdlIE1hbmFn ZW1lbnQgaXRzZWxmIGZvciB1c2VycyBjb21mb3J0YWJsZSB3aXRoDQogICAgYmxlZWRpbmctZWRn ZSB0b29scyB0aGF0IG1heSBzdGlsbCBjaGFuZ2UuIER1bmUgcGFja2FnZSBtYW5hZ2VtZW50DQog ICAgaXMgYXZhaWxhYmxlIGluIHRoZSBzdGFibGUgcmVsZWFzZSBvZiBEdW5lLCBhcyBhbiBleHBl cmltZW50YWwNCiAgICBmZWF0dXJlLg0KDQogICAgKkR1bmUgTWFpbnRhaW5lZCBieSo6IFJ1ZGkg R3JpbmJlcmcgKEByZ3JpbmJlcmcsIEphbmUgU3RyZWV0KSwNCiAgICAgTmljb2zDoXMgT2plZGEg QsOkciAoQG5vamIsIExleGlGaSksIE1hcmVrIEt1YmljYQ0KICAgICAoQExlb25pZGFzLWZyb20t WElWLCBUYXJpZGVzKSwgQWxpIENhZ2xheWFuIChAQWxpenRlciwgVGFyaWRlcyksDQogICAgIEV0 aWVubmUgTWlsbG9uIChAZW1pbGxvbiksIFN0ZXBoZW4gU2hlcnJhdHQgKEBncmlkYnVncywgVGFy aWRlcyksDQogICAgIEFudG9uaW8gTnVubyBNb250ZWlybyAoQGFubW9udGVpcm8pLCBFdGllbm5l IE1hcmFpcyAoQG1haXN0ZSkNCg0KDQpQYWNrYWdlIE1hbmFnZW1lbnQNCuKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjA0KDQril4ogb3BhbS1wdWJs aXNoDQoNCiAgV2UgY2VsZWJyYXRlIHR3byByZWxlYXNlcyBvZiBvcGFtLXB1Ymxpc2g6IFsqb3Bh bS1wdWJsaXNoIDIuNi4wKl0NCiAgKFNlcHRlbWJlciAxOSwgMjAyNSkgYW5kIFsqb3BhbS1wdWJs aXNoIDIuNy4wKl0gKE9jdG9iZXIgNywgMjAyNSkuDQoNCiAgVGhlc2UgcmVsZWFzZXMgbWFrZSBp dCBlYXNpZXIgdG8gYXV0b21hdGUgcGFja2FnZSBwdWJsaXNoaW5nLA0KICBwYXJ0aWN1bGFybHkg YmVuZWZpdGluZyBwcm9qZWN0cyB3aXRoIGNvbnRpbnVvdXMgZGVwbG95bWVudCBwaXBlbGluZXMu DQoNCiAgKk1haW50YWluZWQgYnkqOiBSYWphIEJvdWpiZWwgKEByamJvdSwgT0NhbWxQcm8pLCBL YXRlIERlcGxhaXgNCiAgIChAa2l0LXR5LWthdGUsIEFocmVmcykNCg0KDQogIFsqb3BhbS1wdWJs aXNoIDIuNi4wKl0NCiAgPGh0dHBzOi8vb2NhbWwub3JnL2NoYW5nZWxvZy8yMDI1LTA5LTE5LW9w YW0tcHVibGlzaC0yLTYtMD4NCg0KICBbKm9wYW0tcHVibGlzaCAyLjcuMCpdDQogIDxodHRwczov L29jYW1sLm9yZy9jaGFuZ2Vsb2cvMjAyNS0xMC0wNy1vcGFtLXB1Ymxpc2gtMi03LTA+DQoNCg0K RWRpdG9yIFRvb2xzDQrilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYwNCg0KICAq Um9hZG1hcDogW0VkaXQgLyAoVzE5KSBOYXZpZ2F0ZSBDb2RlXSoNCg0KDQpbRWRpdCAvIChXMTkp IE5hdmlnYXRlIENvZGVdDQo8aHR0cHM6Ly9vY2FtbC5vcmcvdG9vbHMvcGxhdGZvcm0tcm9hZG1h cCN3MTktbmF2aWdhdGUtY29kZT4NCg0K4peKIE9DYW1sLUxTUCBTZXJ2ZXIgYW5kIE1lcmxpbg0K DQogIFNlcHRlbWJlciBhbmQgT2N0b2JlciBzYXcgc2lnbmlmaWNhbnQgdXBkYXRlcyB0byBlZGl0 b3Igc3VwcG9ydDoNCg0KDQogIOKXiiBTdGFibGUgUmVsZWFzZXMNCg0KICAgIOKAoiBbKk9DYW1s LUxTUCAxLjI0LjAqXSAoT2N0b2JlciA0LCAyMDI1KTogTWFqb3IgcmVsZWFzZSB3aXRoDQogICAg ICBpbXByb3ZlZCBwcm9qZWN0IG5hdmlnYXRpb24gYW5kIHBlcmZvcm1hbmNlIG9wdGltaXphdGlv bnMNCiAgICDigKIgWypPQ2FtbC1MU1AgMS4yMy4xKl0gKE9jdG9iZXIgMywgMjAyNSk6IEJ1ZyBm aXggcmVsZWFzZQ0KICAgIOKAoiBbKk1lcmxpbiA1LjYtNTAzIGFuZCA1LjYtNTA0Kl0gKE9jdG9i ZXIgNCwgMjAyNSk6IFN1cHBvcnQgZm9yDQogICAgICBPQ2FtbCA1LjMgYW5kIDUuNCB3aXRoIHBl cmZvcm1hbmNlIGltcHJvdmVtZW50cw0KDQoNCiAgICBbKk9DYW1sLUxTUCAxLjI0LjAqXQ0KICAg IDxodHRwczovL29jYW1sLm9yZy9jaGFuZ2Vsb2cvMjAyNS0xMC0wNC1vY2FtbC1sc3AtMTI0MD4N Cg0KICAgIFsqT0NhbWwtTFNQIDEuMjMuMSpdDQogICAgPGh0dHBzOi8vb2NhbWwub3JnL2NoYW5n ZWxvZy8yMDI1LTEwLTAzLW9jYW1sLWxzcC0xMjMxPg0KDQogICAgWypNZXJsaW4gNS42LTUwMyBh bmQgNS42LTUwNCpdDQogICAgPGh0dHBzOi8vb2NhbWwub3JnL2NoYW5nZWxvZy8yMDI1LTEwLTA0 LW1lcmxpbi12NTYtNTAzLWFuZC01MDQ+DQoNCg0KICDil4ogRXhwZXJpbWVudGFsOiBNZXJsaW4g d2l0aCBEb21haW5zIGFuZCBFZmZlY3RzDQoNCiAgICBUaGUgW2V4cGVyaW1lbnRhbCBNZXJsaW4g YnJhbmNoIHVzaW5nIGRvbWFpbnMgYW5kIGVmZmVjdHNdIG9mZmVycw0KICAgIHBvdGVudGlhbCBw ZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMgdGhyb3VnaCBwYXJhbGxlbGl6YXRpb24uIFRoaXMNCiAg ICBleHBlcmltZW50YWwgdmVyc2lvbiBpcyBhdmFpbGFibGUgZm9yIHRlc3RpbmcgYnV0IG5vdCBy ZWNvbW1lbmRlZA0KICAgIGZvciBwcm9kdWN0aW9uIHVzZS4NCg0KDQogICAgW2V4cGVyaW1lbnRh bCBNZXJsaW4gYnJhbmNoIHVzaW5nIGRvbWFpbnMgYW5kIGVmZmVjdHNdDQogICAgPGh0dHBzOi8v b2NhbWwub3JnL2JhY2tzdGFnZS8yMDI1LTEwLTA4LW1lcmxpbi1kb21haW5zPg0KDQoNCuKXiiBv Y3AtaW5kZW50DQoNCiAgWypvY3AtaW5kZW50IDEuOS4wKl0gKE9jdG9iZXIgMSwgMjAyNSk6IFVw ZGF0ZXMgZm9yIE9DYW1sIDUuNC4wDQogIGNvbXBhdGliaWxpdHkgYW5kIGltcHJvdmVkIGZvcm1h dHRpbmcgcnVsZXMuDQoNCg0KICBbKm9jcC1pbmRlbnQgMS45LjAqXQ0KICA8aHR0cHM6Ly9vY2Ft bC5vcmcvY2hhbmdlbG9nLzIwMjUtMTAtMDEtb2NwLWluZGVudC0xOTA+DQoNCg0K4peKIEV4cGVy aW1lbnRhbDogb2NhbWwubnZpbQ0KDQogIFtUYXJpZGVzIGFubm91bmNlZCBvY2FtbC5udmltXSwg YSBuZXcgTmVvdmltIHBsdWdpbiBmb3IgT0NhbWwNCiAgZGV2ZWxvcG1lbnQuIFRoaXMgZXhwZXJp bWVudGFsIHBsdWdpbiBzZXJ2ZXMgYXMgdGhlIE5lb3ZpbSBjb3VudGVycGFydA0KICB0byBvY2Ft bC1lZ2xvdCwgbGV2ZXJhZ2luZyBMU1AgZm9yIG1vZGVybiBlZGl0b3IgZmVhdHVyZXMuDQoNCiAg Kk9DYW1sIExTUCBTZXJ2ZXIgbWFpbnRhaW5lZCBieSo6IFVseXNzZSBHw6lyYXJkIChAdm9vZG9v cywgVGFyaWRlcyksDQogICBYYXZpZXIgVmFuIGRlIFdvZXN0eW5lIChAeHZ3LCBUYXJpZGVzKSwg UnVkaSBHcmluYmVyZyAoQHJncmluYmVyZywNCiAgIEphbmUgU3RyZWV0KQ0KDQogICpNZXJsaW4g bWFpbnRhaW5lZCBieSo6IFVseXNzZSBHw6lyYXJkIChAdm9vZG9vcywgVGFyaWRlcyksIFhhdmll ciBWYW4NCiAgIGRlIFdvZXN0eW5lIChAeHZ3LCBUYXJpZGVzKSwgTXVsdWggR29kc29uIChAUGl6 aWVEdXN0LCBUYXJpZGVzKSwNCg0KDQogIFtUYXJpZGVzIGFubm91bmNlZCBvY2FtbC5udmltXQ0K ICA8aHR0cHM6Ly9vY2FtbC5vcmcvYmFja3N0YWdlLzIwMjUtMTAtMTQtb2NhbWwtbnZpbS1hLW5l b3ZpbS1wbHVnaW4tZm9yLW9jYW1sPg0KDQoNCkRvY3VtZW50YXRpb24gYW5kIFBQWCBUb29scw0K 4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM 4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWMDQoNCuKXiiBQcHhsaWINCg0KICBbKlBweGxpYiAwLjM2 LjIqXSAoT2N0b2JlciAxLCAyMDI1KTogQ29tcGF0aWJpbGl0eSB1cGRhdGVzIGZvciBPQ2FtbA0K ICA1LjQuMCBhbmQgZml4ZXMgZm9yIEFTVCBoYW5kbGluZy4NCg0KICAqTWFpbnRhaW5lZCBieSo6 IE5hdGhhbiBSZWJvdXJzIChATmF0aGFuUmViKQ0KDQoNCiAgWypQcHhsaWIgMC4zNi4yKl0gPGh0 dHBzOi8vb2NhbWwub3JnL2NoYW5nZWxvZy8yMDI1LTEwLTAxLXBweGxpYi0wMzYyPg0KDQoNCkdv c3BlbCBFY29zeXN0ZW0gKEV4cGVyaW1lbnRhbCkNCuKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKVjOKV jOKVjOKVjOKVjA0KDQogIFRoZSBHb3NwZWwgZm9ybWFsIHNwZWNpZmljYXRpb24gZWNvc3lzdGVt IG5vdyBvZmZlcnMgdG9vbHMgZm9yDQogIGV4cGVyaW1lbnRhbCBzcGVjaWZpY2F0aW9uLWRyaXZl biB0ZXN0aW5nLCBhcyBkZXRhaWxlZCBpbiBbIkdvc3BlbA0KICBFY29zeXN0ZW06IFRvb2xzIFJl YWR5IHRvIFRyeSwgTGFuZ3VhZ2UgRXZvbHZpbmciXS4NCg0KICAqQXZhaWxhYmxlIFRvb2xzOioN Cg0KICDigKIgKk9ydGFjL1FDaGVjay1TVE0qIGdlbmVyYXRlcyBwcm9wZXJ0eS1iYXNlZCB0ZXN0 cyBmcm9tIEdvc3BlbA0KICAgICBzcGVjaWZpY2F0aW9ucyB3cml0dGVuIGluIGAubWxpJyBmaWxl cy4gVGhlIHRvb2wgd29uIHRoZSBUQUNBUyAyMDI1DQogICAgIEJlc3QgVG9vbCBQYXBlciBhd2Fy ZCBhbmQgY2FuIGF1dG9tYXRpY2FsbHkgcHJvZHVjZSBjb21wcmVoZW5zaXZlDQogICAgIHRlc3Qg c3VpdGVzIGZyb20gZm9ybWFsIHNwZWNpZmljYXRpb25zLiBXaGlsZSB0aGUgdW5kZXJseWluZyBH b3NwZWwNCiAgICAgbGFuZ3VhZ2Ugc3ludGF4IG1heSBzdGlsbCBjaGFuZ2UsIHRoZSB0ZXN0aW5n IHdvcmtmbG93IGlzIHN0YWJsZQ0KICAgICBlbm91Z2ggZm9yIGV4cGVyaW1lbnRhbCB1c2UgaW4g ZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLg0KDQogICpDdXJyZW50IFN0YXR1czoqDQoNCiAgVGhl IHRvb2xzIHdvcmsgd2VsbCBmb3IgaXNvbGF0ZWQgbW9kdWxlcyB3aGVyZSB5b3UgY2FuIHdyaXRl DQogIHNwZWNpZmljYXRpb25zIGFuZCBnZW5lcmF0ZSB0ZXN0cywgYnV0IHRoZSBHb3NwZWwgbGFu Z3VhZ2UgaXRzZWxmDQogIHJlbWFpbnMgdW5kZXIgYWN0aXZlIGRldmVsb3BtZW50IHdpdGggcG90 ZW50aWFsIGJyZWFraW5nIGNoYW5nZXMNCiAgYWhlYWQuIFRlYW1zIHVzaW5nIHRoZXNlIHRvb2xz IHNob3VsZCBiZSBwcmVwYXJlZCB0byB1cGRhdGUNCiAgc3BlY2lmaWNhdGlvbnMgYXMgdGhlIGxh bmd1YWdlIGV2b2x2ZXMuIFRoaXMgbWFrZXMgdGhlIGVjb3N5c3RlbQ0KICBzdWl0YWJsZSBmb3Ig Z3JlZW5maWVsZCBwcm9qZWN0cywgZXhwZXJpbWVudGFsIGNvZGViYXNlcywgb3INCiAgd2VsbC1p c29sYXRlZCBjb21wb25lbnRzIHdoZXJlIHNwZWNpZmljYXRpb24gY2hhbmdlcyB3b24ndCBjYXNj YWRlDQogIHRocm91Z2ggbGFyZ2Ugc3lzdGVtcy4NCg0KDQpbIkdvc3BlbCBFY29zeXN0ZW06IFRv b2xzIFJlYWR5IHRvIFRyeSwgTGFuZ3VhZ2UgRXZvbHZpbmciXQ0KPGh0dHBzOi8vb2NhbWwub3Jn L2JhY2tzdGFnZS8yMDI1LTEwLTE1LWdvc3BlbC1sYW5ndWFnZS1ldm9sdmluZz4NCg0KDQpQbGF0 Zm9ybSBJbmZyYXN0cnVjdHVyZQ0K4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM 4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWM4pWMDQoNCuKXiiBPQ2FtbCBTZWN1cml0eSBS ZXNwb25zZSBUZWFtDQoNCiAgVGhlIFtlc3RhYmxpc2htZW50IG9mIHRoZSBPQ2FtbCBTZWN1cml0 eSBSZXNwb25zZSBUZWFtXSAoT2N0b2JlciAzLA0KICAyMDI1KSBtYXJrcyBhbiBpbXBvcnRhbnQg c3RlcCBpbiBlY29zeXN0ZW0gbWF0dXJpdHkuIFRoZSB0ZWFtIHdpbGwNCiAgaGFuZGxlIHNlY3Vy aXR5IHZ1bG5lcmFiaWxpdGllcyBmb2xsb3dpbmcgZXN0YWJsaXNoZWQgZGlzY2xvc3VyZQ0KICBw cmFjdGljZXMuDQoNCg0KICBbZXN0YWJsaXNobWVudCBvZiB0aGUgT0NhbWwgU2VjdXJpdHkgUmVz cG9uc2UgVGVhbV0NCiAgPGh0dHBzOi8vb2NhbWwub3JnL2NoYW5nZWxvZy8yMDI1LTEwLTAzLXNl Y3VyaXR5LXRlYW0+DQoNCg0K4peKIE9DYW1sLm9yZyBSZW9yZ2FuaXphdGlvbg0KDQogIFRoZSBb bmV3bHkgaW50cm9kdWNlZCBzZXBhcmF0aW9uIG9mIE9DYW1sIENoYW5nZWxvZyBhbmQgQmFja3N0 YWdlDQogIE9DYW1sXSBwcm92aWRlcyBjbGVhcmVyIGNvbW11bmljYXRpb246DQoNCiAg4oCiICpP Q2FtbCBDaGFuZ2Vsb2cqOiBPZmZpY2lhbCBzdGFibGUgcmVsZWFzZXMgYW5kIHByb2R1Y3Rpb24t cmVhZHkNCiAgICAgdXBkYXRlcw0KICDigKIgKkJhY2tzdGFnZSBPQ2FtbCo6IEV4cGVyaW1lbnRh bCByZWxlYXNlcywgd29yay1pbi1wcm9ncmVzcywgYW5kDQogICAgIGRldmVsb3BtZW50IG9wcG9y dHVuaXRpZXMNCg0KICBUaGlzIGhlbHBzIHJlYWRlcnMgZGlzdGluZ3Vpc2ggbW9yZSBlYXNpbHkg YmV0d2VlbiB3aGF0J3MgcmVhZHkgZm9yDQogIHByb2R1Y3Rpb24gdXNlIGFuZCB3aGF0J3Mgc3Rp bGwgZXhwZXJpbWVudGFsLg0KDQoNCiAgW25ld2x5IGludHJvZHVjZWQgc2VwYXJhdGlvbiBvZiBP Q2FtbCBDaGFuZ2Vsb2cgYW5kIEJhY2tzdGFnZSBPQ2FtbF0NCiAgPGh0dHBzOi8vb2NhbWwub3Jn L2NoYW5nZWxvZy8yMDI1LTEwLTA4LWludHJvZHVjaW5nLWJhY2tzdGFnZS1vY2FtbD4NCg0KDQpD b21tdW5pdHkgRXZlbnRzDQrilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzilYzi lYzilYzilYwNCg0K4peKIEZVTiBPQ2FtbCAyMDI1DQoNCiAgVGhlIEZVTiBPQ2FtbCBjb25mZXJl bmNlIHRvb2sgcGxhY2Ugb24gKlNlcHRlbWJlciAxNS0xNiwgMjAyNSogaW4NCiAgV2Fyc2F3LCBQ b2xhbmQsIGZlYXR1cmluZyB0YWxrcyBvbiBwcmFjdGljYWwgT0NhbWwgZGV2ZWxvcG1lbnQsDQog IGluZHVzdHJ5IGFwcGxpY2F0aW9ucywgYW5kIGNvbW11bml0eSBwcm9qZWN0cy4gVGhlIFtGVU4g T0NhbWwgMjAyNQ0KICBwcm9ncmFtIGFuZCBzcGVha2VyIGxpbmV1cF0gc2hvd2Nhc2VzIHRoZSBk aXZlcnNlIGVjb3N5c3RlbSBvZiBPQ2FtbA0KICBpbiBwcm9kdWN0aW9uLiBWaWRlbyByZWNvcmRp bmdzIG9mIGFsbCBwcmVzZW50YXRpb25zIHdpbGwgYmUgYXZhaWxhYmxlDQogIHNvb24gZm9yIHRo b3NlIHdobyBjb3VsZG4ndCBhdHRlbmQgaW4gcGVyc29uLg0KDQoNCiAgW0ZVTiBPQ2FtbCAyMDI1 IHByb2dyYW0gYW5kIHNwZWFrZXIgbGluZXVwXQ0KICA8aHR0cHM6Ly9mdW4tb2NhbWwuY29tLzIw MjUvPg0KDQoNCuKXiiBPQ2FtbCBXb3Jrc2hvcCAyMDI1DQoNCiAgVGhlIE9DYW1sIFVzZXJzIGFu ZCBEZXZlbG9wZXJzIFdvcmtzaG9wIHdhcyBoZWxkIG9uICpPY3RvYmVyIDE3LCAyMDI1Kg0KICBp biBTaW5nYXBvcmUsIGNvLWxvY2F0ZWQgd2l0aCBJQ0ZQL1NQTEFTSCwgYnJpbmdpbmcgdG9nZXRo ZXINCiAgcmVzZWFyY2hlcnMgYW5kIHByYWN0aXRpb25lcnMuIFlvdSBjYW4gZmluZCB0aGUgbGlz dCBvZiBwcmVzZW50YXRpb25zDQogIGFuZCBhIGxpbmsgdG8gdGhlIHZpZGVvIHJlY29yZGluZ3Mg b24gW3RoZSBPQ2FtbCBXb3Jrc2hvcCAyMDI1IHBhZ2Ugb24NCiAgT0NhbWwub3JnXSENCg0KICDi gJQNCg0KICBXZSdyZSBwbGVhc2VkIHRvIHNlZSB0aGUgc3VjY2Vzc2Z1bCByZWxlYXNlIG9mIE9D YW1sIDUuNC4wLCBtYXJraW5nIGENCiAgc2lnbmlmaWNhbnQgbWlsZXN0b25lIHdpdGggbGFiZWxs ZWQgdHVwbGVzLCBpbW11dGFibGUgYXJyYXlzLCBhbmQNCiAgYXRvbWljIGZpZWxkcy4gVGhlIGVz dGFibGlzaG1lbnQgb2YgdGhlIFNlY3VyaXR5IFJlc3BvbnNlIFRlYW0gYW5kIHRoZQ0KICByZW9y Z2FuaXphdGlvbiBvZiBPQ2FtbC5vcmcgZGVtb25zdHJhdGUgdGhlIGVjb3N5c3RlbSdzIGdyb3dp bmcNCiAgbWF0dXJpdHkuDQoNCiAgVGhlIGNsZWFyIHNlcGFyYXRpb24gYmV0d2VlbiBzdGFibGUg cmVsZWFzZXMgYW5kIGV4cGVyaW1lbnRhbCB3b3JrDQogIGhlbHBzIHRoZSBjb21tdW5pdHkgbWFr ZSBpbmZvcm1lZCBkZWNpc2lvbnMgYWJvdXQgdG9vbCBhZG9wdGlvbi4gV2hpbGUNCiAgZXhwZXJp bWVudGFsIGZlYXR1cmVzIGluIHRoZSBEdW5lIERldmVsb3BlciBQcmV2aWV3LCBvY2FtbC5udmlt LCBhbmQNCiAgR29zcGVsIGVjb3N5c3RlbSBzaG93IHByb21pc2luZyBkaXJlY3Rpb25zLCB0aGV5 IHJlbWFpbiBpbiB0ZXN0aW5nIGFuZA0KICBzaG91bGQgbm90IGJlIHVzZWQgaW4gcHJvZHVjdGlv bi4NCg0KICBBcyBhbHdheXMsIHdlIGVuY291cmFnZSBmZWVkYmFjayBhbmQgY29udHJpYnV0aW9u cyBmcm9tIHRoZSBjb21tdW5pdHkNCiAgYXMgd2UgY29udGludWUgdG8gaW1wcm92ZSB0aGUgT0Nh bWwgUGxhdGZvcm0gZWNvc3lzdGVtLg0KDQoNCiAgW3RoZSBPQ2FtbCBXb3Jrc2hvcCAyMDI1IHBh Z2Ugb24gT0NhbWwub3JnXQ0KICA8aHR0cHM6Ly9vY2FtbC5vcmcvY29uZmVyZW5jZXMvb2NhbWwt d29ya3Nob3AtMjAyNT4NCg0KDQpEZW1vbnN0cmF0aW9uIG9mIHRoZSBleHRlbnNpb24gbGl0ZXJh bHMgYW5kIGNvbnN0YW50IHJld3JpdGluZyBmZWF0dXJlcw0K4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ 4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoNCiAgQXJjaGl2ZToNCiAgPGh0dHBzOi8vZGlzY3Vzcy5v Y2FtbC5vcmcvdC9kZW1vbnN0cmF0aW9uLW9mLXRoZS1leHRlbnNpb24tbGl0ZXJhbHMtYW5kLWNv bnN0YW50LXJld3JpdGluZy1mZWF0dXJlcy8xNzQ2Ni8xPg0KDQoNCk1pa2hhaWwgYW5ub3VuY2Vk DQrilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIANCg0K ICBZbyEgOnlveW86IDp3YXZpbmdfaGFuZDoNCg0KICBJIHN0YXJ0ZWQgbGVhcm5pbmcgdGhlIGJl YXV0aWZ1bCBbcHB4bGliXSBsaWJyYXJ5IGFuZCBmb3VuZA0KICBpbnRlcmVzdGluZyBpbmZvcm1h dGlvbiBpbiB0aGVpciBkb2N1bWVudGF0aW9uIGFib3V0IE9DYW1sJ3Mgc3ludGF4DQogIGZlYXR1 cmVzLCBzdWNoIGFzIGV4dGVuc2lvbiBsaXRlcmFscyAtIHRoZSBhYmlsaXR5IHRvIGFwcGVuZCBh DQogIG9uZS1sZXR0ZXIgaWRlbnRpZmllciB0byBudW1lcmljIGxpdGVyYWxzLiBJIHdhcyBzdXJw cmlzZWQgYXQgaG93IGVhc3kNCiAgaXQgd2FzIHRvIGRvIHRoaXMuDQoNCiAgQmVjYXVzZSBJIHdh cyBpbnNwaXJlZCBieSB0aGlzLCBJIHdyb3RlIGEgZGVtb25zdHJhdGlvbiBwcm9qZWN0DQogIChs b2NhdGVkIGluIG15IFtHaXRIdWIgcmVwb3NpdG9yeV0pIHRvIHNob3cgaG93IHRvIHVzZSBpdCB0 byBpbXBsZW1lbnQNCiAgbWV0cmljIHN5c3RlbSBzdXBwb3J0IGluIGNvZGUuDQoNCiAg4pSM4pSA 4pSA4pSA4pSADQogIOKUgiB1dG9wICMgNW07OyANCiAg4pSCIC0gOiBNZXRyaWMuTWV0ZXIudCA9 IDUNCiAg4pSCIA0KICDilIIgdXRvcCAjIE1ldHJpYy5NZXRlci4oMW0gKyAxMG0pOzsNCiAg4pSC IC0gOiBNZXRyaWMuTWV0ZXIudCA9IDExDQogIOKUlOKUgOKUgOKUgOKUgA0KDQogIFJlZmVyZW5j ZXM6DQogIOKAoiBPQ2FtbCDigJMgTGFuZ3VhZ2UgZXh0ZW5zaW9ucyDigJMgW0V4dGVuc2lvbiBs aXRlcmFsc10NCiAg4oCiIFBweGxpYiDigJMgQ29udGV4dC1mcmVlIHRyYW5zZm9ybWF0aW9uIOKA kyBbQ29uc3RhbnQgUmV3cml0aW5nXSgpDQoNCg0KW3BweGxpYl0gPGh0dHBzOi8vZ2l0aHViLmNv bS9vY2FtbC1wcHgvcHB4bGliPg0KDQpbR2l0SHViIHJlcG9zaXRvcnldIDxodHRwczovL2dpdGh1 Yi5jb20vZHgzbW9kL21ldHJpY19zeW50YXg+DQoNCltFeHRlbnNpb24gbGl0ZXJhbHNdDQo8aHR0 cHM6Ly9vY2FtbC5vcmcvbWFudWFsLzUuNC9leHRlbnNpb25zeW50YXguaHRtbCNzczpleHRlbnNp b24tbGl0ZXJhbHM+DQoNCg0KT2xkIENXTg0K4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQDQoNCiAgSWYg eW91IGhhcHBlbiB0byBtaXNzIGEgQ1dOLCB5b3UgY2FuIFtzZW5kIG1lIGEgbWVzc2FnZV0gYW5k IEknbGwgbWFpbA0KICBpdCB0byB5b3UsIG9yIGdvIHRha2UgYSBsb29rIGF0IFt0aGUgYXJjaGl2 ZV0gb3IgdGhlIFtSU1MgZmVlZCBvZiB0aGUNCiAgYXJjaGl2ZXNdLg0KDQogIElmIHlvdSBhbHNv IHdpc2ggdG8gcmVjZWl2ZSBpdCBldmVyeSB3ZWVrIGJ5IG1haWwsIHlvdSBtYXkgc3Vic2NyaWJl DQogIHRvIHRoZSBbY2FtbC1saXN0XS4NCg0KICBbQWxhbiBTY2htaXR0XQ0KDQoNCltzZW5kIG1l IGEgbWVzc2FnZV0gPG1haWx0bzphbGFuLnNjaG1pdHRAcG9seXRlY2huaXF1ZS5vcmc+DQoNClt0 aGUgYXJjaGl2ZV0gPGh0dHBzOi8vYWxhbi5wZXRpdGVwb21tZS5uZXQvY3duLz4NCg0KW1JTUyBm ZWVkIG9mIHRoZSBhcmNoaXZlc10gPGh0dHBzOi8vYWxhbi5wZXRpdGVwb21tZS5uZXQvY3duL2N3 bi5yc3M+DQoNCltjYW1sLWxpc3RdIDxodHRwczovL3N5bXBhLmlucmlhLmZyL3N5bXBhL2luZm8v Y2FtbC1saXN0Pg0KDQpbQWxhbiBTY2htaXR0XSA8aHR0cHM6Ly9hbGFuLnBldGl0ZXBvbW1lLm5l dC8+DQoNCg== --=-=-= Content-Type: text/html; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable OCaml Weekly News

OCaml Weekly News

Previous Week<= /a> Up Next Week

Hello

Here is the latest OCaml Weekly News, for the week of November 04 to 11, 20= 25.

Opam-repository, signed! conex is in beta now :)

Hannes Mehnert announced

Dear everyone,

we=E2=80=99re proud to announce that conex, in an initial version, is now l= ive! You can receive signed updates of the opam-repository. A quick guide:

To setup opam with conex on your machine, you need to install conex (and/or= conex-mirage-crypto, see below) - currently only available as opam package= (sorry about the bootstrap problem - hopefully it will be integrated into = opam at some time).

Then, in your =E2=80=9C\~/.opam/config=E2=80=9D you need to specify the repository-validation-command:

repository-validation-command: [
  "/path/to/conex_verify_mirage_crypto"
  "--quorum=3D%{quorum}%"
  "--trust-anchors=3D%{anchors}%"
  "--repository=3D%{repo}%" {incremental}
  "--dir=3D%{dir}%" {!incremental}
  "--patch=3D%{patch}%" {incremental}
  "--incremental" {incremental}
]

Instead of =E2=80=9Cconex_verify_mirage_crypto=E2=80=9D, you can as well us= e =E2=80=9Cconex_verify_openssl=E2=80=9D (fewer dependencies, calls out to = OpenSSL as the cryptographic provider, is slower).

Then you can run opam repo add conex-robur https://conex.robur.coop 1= sha256=3Dad5eb0e4a77abfbc6c1bb5661eba46049404e0222588dd059c87f12436d41a28<= /code>. Thereafter you can opam repo remove default, and then = you=E2=80=99re only using signed metadata. The =E2=80=9C1=E2=80=9D is the q= uorum of root keys for signatures to be valid, the =E2=80=9Csha256=3Dad5eb0= e4a77abfbc6c1bb5661eba46049404e0222588dd059c87f12436d41a28=E2=80=9D is the = hash of the public root key.

Read the full article at https://hannes.robur.coop/Posts/ConexRunning =E2=80=93 happy to = receive feedback.

The development of conex is supported by the OCaml Software Foundation and by ah= refs.

OCaml Platform Newsletter: September to October 2025

Sabine Schmaltz announced

Welcome to the sixteenth edition of the OCaml Platform newsletter!

In this September to October 2025 edition, we are excited to bring you the = latest on the OCaml Platform, continuing our tradition of highlighting rece= nt developments as seen in previous editions. To understand the direction we're head= ed, especially regarding development workflows and user experience improvem= ents, check out our roa= dmap.

You can subscribe to this newsletter on LinkedIn!

Highlights:

  • OCaml 5.4.0 Released: Major stable release featuring labelled tu= ples, immutable arrays, unified array literal syntax, atomic record fields,= and four new standard library modules
  • Security Response Team Established: New team formed to handle se= curity vulnerabilities in the OCaml ecosystem
  • Enhanced Editor Support: OCaml-LSP 1.24.0 and Merlin 5.6 bring i= mproved project navigation and performance optimizations
  • OCaml.org Reorganization: Clear separation between news about pr= oduction-ready features and releases (OCaml Changelog) and ongoing work and= experimental features (Backstage OCaml)
  • Experimental Tools Progress: Gospel ecosystem tools ready for te= sting, new ocaml.nvim plugin for Neovim users, and experimental Merlin bran= ch using domains and effects

OCaml Changelog:

Backstage OCaml:

Stable Releases:

Unstable Releases:

OCaml Compiler

  • OCaml 5.4.0 Stable Release

    The October 9,= 2025 release of OCaml 5.4.0 represents a major milestone with signific= ant language enhancements. After two beta releases and a release candidate = in September, the stable version delivers:

    Language Features:

    • Labelled tuples: Enable better documentation and type safety with la= bels on tuple fields

      let ( * ) (x,~dx) (y,~dx:dy) =3D x*.y, ~dx:(x *. dy +. y *. dx)
      
    • Immutable arrays ('a iarray): Covariant arrays for = safer concurrent programming
    • Unified array literal syntax: [| ... |] now works f= or 'a array, 'a iarray, and floatarray
    • Atomic record fields: New [@atomic] attribute with = Atomic.Loc submodule for lock-free concurrent access

    Standard Library Additions:

    • Pair: Utility functions for pairs
    • Pqueue: Priority queue implementation
    • Repr: Explicit functions for physical equality and compari= son
    • Iarray: Operations on immutable arrays

    Runtime Improvements:

    • Frame pointers support for ARM64 (Linux and macOS)
    • Performance fix for Apple Silicon (using stlr instead of <= code>dmb ishld; str)
    • Software prefetching for ARM64, s390x, PPC64, and RISC-V
    • Restored "memory cleanup upon exit" mode

    The Sept= ember beta releases and release candidate demonstrated the maturity of the re= lease, with only minor TSAN and metadata fixes needed.

  • WIP: Relocatable OCaml

    Work on Relocatable OCaml is progressing toward inclusion in OCaml 5= .5, with implementation PRs opened by David Allsopp in September. The chang= es are undergoing review from Samuel Hym, Jonah Beckford, and others.

    What Relocatable OCaml Enables:

    This feature allows the OCaml compiler and its associated tools to be moved= to different filesystem locations after installation without breaking func= tionality. Key benefits include:

    • Binary distributions that work regardless of installation path
    • Improved flexibility for package managers organizing OCaml installation= s
    • Bundling of specific OCaml versions by developer tools without path con= flicts
    • Simplified cross-platform distribution

    Current Status:

    The implementation is in active review with ongoing responses to feedback. = The core development team is likely to review the changes at an upcoming me= eting, targeting inclusion in OCaml 5.5.

    For technical details about the implementation approach and its implication= s for the ecosystem, see David Allsopp's blog post on Relocatable OCa= ml and the associated Discuss thread.

Build System

  • Dune

    Dune 3.20.2= (September 10, 2025) provides bug fixes and stability improvements for the= 3.20 series.

    • Experimental: Dune Package Management

      We keep exploring:

      • Portable External Dependencies: An approach for storing system p= ackage dependencies in a platform-agnostic format, allowing projects to mai= ntain a single specification that resolves correctly across Linux, macOS, a= nd Windows environments, ensuring consistent builds regardless of platform-= specific package naming and versioning differences.
      • Portable Lock Directories: Lock directories that work consistent= ly across different operating systems and architectures, addressing the cur= rent limitation where platform-specific dependency resolutions prevent team= s from sharing lock files through version control in heterogeneous developm= ent environments.
      • Lock Directories as Build Targets: Currently, the solver that co= mes up with a set of compatible dependencies needs to be run by the user ex= plicitely (using dune pkg lock), but in the future we intend t= o create build plans implicitly via Dune build rules. This should make make= package management simpler to use as it requires fewer user actions and do= es not require putting verbose lock directories into the project source dir= ectories. This change also paves the way for automatic relocking when depen= dencies change, including in watch mode.

      These features remain under active development and should not be relied on = in production. However, we encourage cautious adoption of Dune Package Mana= gement itself for users comfortable with bleeding-edge tools that may still= change. Dune package management is available in the stable release of Dune= , as an experimental feature.

      Dune Maintained by: Rudi Grinberg (@rgrinberg, Jane Street), Nicol= =C3=A1s Ojeda B=C3=A4r (@nojb, LexiFi), Marek Kubica (@Leonidas-from-XIV, T= arides), Ali Caglayan (@Alizter, Tarides), Etienne Millon (@emillon), Steph= en Sherratt (@gridbugs, Tarides), Antonio Nuno Monteiro (@anmonteiro), Etie= nne Marais (@maiste)

Package Management

  • opam-publish

    We celebrate two releases of opam-publish: opam-publish 2.6.0 (Septem= ber 19, 2025) and opam-publish 2.7.0 (October 7, 2025).

    These releases make it easier to automate package publishing, particularly = benefiting projects with continuous deployment pipelines.

    Maintained by: Raja Boujbel (@rjbou, OCamlPro), Kate Deplaix (@kit-t= y-kate, Ahrefs)

Editor Tools

  • OCaml-LSP Server and Merlin

    September and October saw significant updates to editor support:

  • ocp-indent

    ocp-in= dent 1.9.0 (October 1, 2025): Updates for OCaml 5.4.0 compatibility= and improved formatting rules.

  • Experimental: ocaml.nvim

    Tarides announced ocaml.nvim, a new Neovim plugin for OCam= l development. This experimental plugin serves as the Neovim counterpart to= ocaml-eglot, leveraging LSP for modern editor features.

    OCaml LSP Server maintained by: Ulysse G=C3=A9rard (@voodoos, Taride= s), Xavier Van de Woestyne (@xvw, Tarides), Rudi Grinberg (@rgrinberg, Jane= Street)

    Merlin maintained by: Ulysse G=C3=A9rard (@voodoos, Tarides), Xavier= Van de Woestyne (@xvw, Tarides), Muluh Godson (@PizieDust, Tarides),

Documentation and PPX Tools

  • Ppxlib

    Ppxlib 0.= 36.2 (October 1, 2025): Compatibility updates for OCaml 5.4.0 and f= ixes for AST handling.

    Maintained by: Nathan Rebours (@NathanReb)

Gospel Ecosystem (Experimental)

The Gospel formal specification ecosystem now offers tools for experimental= specification-driven testing, as detailed in "Gospel Ecosystem: Tools Rea= dy to Try, Language Evolving".

Available Tools:

  • Ortac/QCheck-STM generates property-based tests from Gospel spec= ifications written in .mli files. The tool won the TACAS 2025 = Best Tool Paper award and can automatically produce comprehensive test suit= es from formal specifications. While the underlying Gospel language syntax = may still change, the testing workflow is stable enough for experimental us= e in development environments.

Current Status:

The tools work well for isolated modules where you can write specifications= and generate tests, but the Gospel language itself remains under active de= velopment with potential breaking changes ahead. Teams using these tools sh= ould be prepared to update specifications as the language evolves. This mak= es the ecosystem suitable for greenfield projects, experimental codebases, = or well-isolated components where specification changes won't cascade throu= gh large systems.

Community Events

  • FUN OCaml 2025

    The FUN OCaml conference took place on September 15-16, 2025 in Wars= aw, Poland, featuring talks on practical OCaml development, industry applic= ations, and community projects. The FUN OCaml 2025 program and speaker lineup showcases the diverse ecosys= tem of OCaml in production. Video recordings of all presentations will be a= vailable soon for those who couldn't attend in person.

  • OCaml Workshop 2025

    The OCaml Users and Developers Workshop was held on October 17, 2025= in Singapore, co-located with ICFP/SPLASH, bringing together researchers a= nd practitioners. You can find the list of presentations and a link to the = video recordings on the OCaml Workshop 2025 page on OCaml.org!

    We're pleased to see the successful release of OCaml 5.4.0, marking a signi= ficant milestone with labelled tuples, immutable arrays, and atomic fields.= The establishment of the Security Response Team and the reorganization of = OCaml.org demonstrate the ecosystem's growing maturity.

    The clear separation between stable releases and experimental work helps th= e community make informed decisions about tool adoption. While experimental= features in the Dune Developer Preview, ocaml.nvim, and Gospel ecosystem s= how promising directions, they remain in testing and should not be used in = production.

    As always, we encourage feedback and contributions from the community as we= continue to improve the OCaml Platform ecosystem.

Demonstration of the extension literals and constant rewriting= features

Mikhail announced

Yo! :yoyo: :waving_hand:=20

I started learning the beautiful ppxlib library and found interesting information in their documen= tation about OCaml's syntax features, such as extension literals - the abil= ity to append a one-letter identifier to numeric literals. I was surprised = at how easy it was to do this.

Because I was inspired by this, I wrote a demonstration project (located in= my GitHub repository) to show how to use it to implement metric system support in code.

utop # 5m;;=20
- : Metric.Meter.=
t =3D 5

utop # Metric.Meter.(1m + 10m);;
- : Metric.Meter.=
t =3D 11

References:

Old CWN

If you happen to miss a CWN, you can send me a message and I'll mail it to you, or go take a loo= k at the archive or the <= a href=3D"https://alan.petitepomme.net/cwn/cwn.rss">RSS feed of the archive= s.

If you also wish to receive it every week by mail, you may subscribe to the= caml-list.

--=-=-=--