From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 37EA5158089 for ; Sat, 4 Nov 2023 12:42:23 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id E68052BC02C; Sat, 4 Nov 2023 12:42:18 +0000 (UTC) Received: from tupone.it (tupone.it [IPv6:2a01:4f9:2b:129a::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 59F152BC01C for ; Sat, 4 Nov 2023 12:42:18 +0000 (UTC) Received: from alfredo.tupone.it (unknown [IPv6:2a01:e11:b:c630:2e0:4cff:fe69:49b]) by tupone.it (Postfix) with ESMTPSA id BC1CD1FC004B for ; Sat, 4 Nov 2023 13:42:16 +0100 (CET) Date: Sat, 4 Nov 2023 13:42:13 +0100 From: Alfredo Tupone To: "gentoo-dev@lists.gentoo.org" Subject: [gentoo-dev] Change to ada.eclass to support gcc:13 Message-ID: <20231104134213.7119e985@alfredo.tupone.it> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; x86_64-pc-linux-gnu) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/IFpYxW6d7=pe3OXzOBbx=RJ" X-Archives-Salt: 3c3471e9-4458-48ca-9532-0be9d4d2c5d6 X-Archives-Hash: 472db944749d09e9ba0eba258b7b2640 --MP_/IFpYxW6d7=pe3OXzOBbx=RJ Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline I want to add support to gcc:13 for ada packages In attachment the new ada.eclass. Inline are the changes applyed: --- ada.eclass 2023-11-04 13:38:30.857702705 +0100 +++ ada.eclass.new 2023-11-03 23:16:34.643870434 +0100 @@ -57,7 +57,7 @@ # @DESCRIPTION: # All supported Ada implementations, most preferred last. _ADA_ALL_IMPLS=( - gnat_2021 gcc_12 + gnat_2021 gcc_12 gcc_13 ) readonly _ADA_ALL_IMPLS @@ -119,10 +119,7 @@ # keep in sync with _ADA_ALL_IMPLS! # (not using that list because inline patterns shall be faster) case "${impl}" in - gnat_2021) - return 0 - ;; - gcc_12) + gnat_2021|gcc_12|gcc_13) return 0 ;; *) @@ -216,11 +213,7 @@ local impl var case "${1}" in - gnat_2021) - impl=${1} - shift - ;; - gcc_12) + gnat_2021|gcc_12|gcc_13) impl=${1} shift ;; @@ -244,6 +237,10 @@ gcc_pv=12 slot=12 ;; + gcc_13) + gcc_pv=13 + slot=13 + ;; *) gcc_pv="9.9.9" slot=9.9.9 @@ -293,7 +290,7 @@ gnat_2021) ADA_PKG_DEP="dev-lang/gnat-gpl:${slot}[ada]" ;; - gcc_12) + gcc_12|gcc_13) ADA_PKG_DEP="sys-devel/gcc:${slot}[ada]" ;; *) Any comments? Can I do things better? Alfredo --MP_/IFpYxW6d7=pe3OXzOBbx=RJ Content-Type: application/octet-stream; name=ada.eclass.new Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=ada.eclass.new IyBDb3B5cmlnaHQgMjAxOS0yMDIzIEdlbnRvbyBBdXRob3JzCiMgRGlzdHJpYnV0ZWQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MgoKIyBARUNMQVNT OiBhZGEuZWNsYXNzCiMgQE1BSU5UQUlORVI6CiMgQWRhIHRlYW0gPGFkYUBnZW50b28ub3JnPgoj IEBBVVRIT1I6CiMgVHVwb25lIEFsZnJlZG8gPHR1cG9uZUBnZW50b28ub3JnPgojIEBTVVBQT1JU RURfRUFQSVM6IDcgOAojIEBCTFVSQjogQW4gZWNsYXNzIGZvciBBZGEgcGFja2FnZXMKIyBAREVT Q1JJUFRJT046CiMgVGhpcyBlY2xhc3Mgc2V0IHRoZSBJVVNFIGFuZCBSRVFVSVJFRF9VU0UgdG8g cmVxdWVzdCB0aGUgQURBX1RBUkdFVAojIHdoZW4gdGhlIGluaGVyaXRpbmcgZWJ1aWxkIGNhbiBi ZSBzdXBwb3J0ZWQgYnkgbW9yZSB0aGFuIG9uZSBBZGEKIyBpbXBsZW1lbnRhdGlvbi4gSXQgYWxz byBzZXQgQURBX1VTRURFUCBhbmQgQURBX0RFUFMgd2l0aCBhIHN1aXRhYmxlIGZvcm0uCiMgQSBj b21tb24gZWNsYXNzIHByb3ZpZGluZyBoZWxwZXIgZnVuY3Rpb25zIHRvIGJ1aWxkIGFuZCBpbnN0 YWxsCiMgcGFja2FnZXMgc3VwcG9ydGluZyBBZGEgaW1wbGVtZW50YXRpb25zLgojCiMgVGhpcyBl Y2xhc3Mgc2V0cyBjb3JyZWN0IElVU0UuIE1vZGlmaWNhdGlvbiBvZiBSRVFVSVJFRF9VU0UgaGFz IHRvCiMgYmUgZG9uZSBieSB0aGUgYXV0aG9yIG9mIHRoZSBlYnVpbGQgKGJ1dCBBREFfUkVRVUlS RURfVVNFIGlzCiMgcHJvdmlkZWQgZm9yIGNvbnZlbmllbmNlLCBzZWUgYmVsb3cpLiBhZGEgZXhw b3J0cyBBREFfREVQUwojIGFuZCBBREFfVVNFREVQIHNvIHlvdSBjYW4gY3JlYXRlIGNvcnJlY3Qg ZGVwZW5kZW5jaWVzIGZvciB5b3VyCiMgcGFja2FnZSBlYXNpbHkuCiMKIyBNb3N0bHkgY29waWVk IGZyb20gcHl0aG9uLXNpbmdsZS1yMS5lY2xhc3MKCmNhc2UgJHtFQVBJfSBpbgoJN3w4KSA7OwoJ KikgZGllICIke0VDTEFTU306IEVBUEkgJHtFQVBJOi0wfSBub3Qgc3VwcG9ydGVkIiA7Owplc2Fj CgppZiBbWyAteiAke19BREFfRUNMQVNTfSBdXTsgdGhlbgpfQURBX0VDTEFTUz0xCgojIEBFQ0xB U1NfVkFSSUFCTEU6IEFEQV9ERVBTCiMgQE9VVFBVVF9WQVJJQUJMRQojIEBERVNDUklQVElPTjoK IyBUaGlzIGlzIGFuIGVjbGFzcy1nZW5lcmF0ZWQgQWRhIGRlcGVuZGVuY3kgc3RyaW5nIGZvciBh bGwKIyBpbXBsZW1lbnRhdGlvbnMgbGlzdGVkIGluIEFEQV9DT01QQVQuCiMKIyBUaGUgZGVwZW5k ZW5jeSBzdHJpbmcgaXMgY29uZGl0aW9uYWwgb24gQURBX1RBUkdFVC4KIwojIEV4YW1wbGUgdXNl OgojIEBDT0RFCiMgUkRFUEVORD0iJHtBREFfREVQU30KIyAgIGRldi1mb28vbXlkZXAiCiMgREVQ RU5EPSIke1JERVBFTkR9IgojIEBDT0RFCiMKIyBFeGFtcGxlIHZhbHVlOgojIEBDT0RFCiMgYWRh X3RhcmdldF9nY2NfMTI/ICggc3lzLWRldmVsL2djYzoxMlthZGFdICkKIyBhZGFfdGFyZ2V0X2du YXRfMjAyMT8gKCBkZXYtbGFuZy9nbmF0LWdwczoyMDIxW2FkYV0gKQojIEBDT0RFCgojIEBFQ0xB U1NfVkFSSUFCTEU6IF9BREFfQUxMX0lNUExTCiMgQElOVEVSTkFMCiMgQERFU0NSSVBUSU9OOgoj IEFsbCBzdXBwb3J0ZWQgQWRhIGltcGxlbWVudGF0aW9ucywgbW9zdCBwcmVmZXJyZWQgbGFzdC4K X0FEQV9BTExfSU1QTFM9KAoJZ25hdF8yMDIxIGdjY18xMiBnY2NfMTMKKQpyZWFkb25seSBfQURB X0FMTF9JTVBMUwoKIyBARUNMQVNTX1ZBUklBQkxFOiBBREFfUkVRVUlSRURfVVNFCiMgQE9VVFBV VF9WQVJJQUJMRQojIEBERVNDUklQVElPTjoKIyBUaGlzIGlzIGFuIGVjbGFzcy1nZW5lcmF0ZWQg cmVxdWlyZWQtdXNlIGV4cHJlc3Npb24gd2hpY2ggZW5zdXJlcwojIHRoYXQgZXhhY3RseSBvbmUg QURBX1RBUkdFVCB2YWx1ZSBoYXMgYmVlbiBlbmFibGVkLgojCiMgVGhpcyBleHByZXNzaW9uIHNo b3VsZCBiZSB1dGlsaXplZCBpbiBhbiBlYnVpbGQgYnkgaW5jbHVkaW5nIGl0IGluCiMgUkVRVUlS RURfVVNFLCBvcHRpb25hbGx5IGJlaGluZCBhIHVzZSBmbGFnLgojCiMgRXhhbXBsZSB1c2U6CiMg QENPREUKIyBSRVFVSVJFRF9VU0U9ImFkYT8gKCAke0FEQV9SRVFVSVJFRF9VU0V9ICkiCiMgQENP REUKIwojIEV4YW1wbGUgdmFsdWU6CiMgQENPREUKIyBeXiAoIGFkYV90YXJnZXRfZ25hdF8yMDIx IGFkYV90YXJnZXRfZ2NjXzEyICkKIyBAQ09ERQoKIyBARUNMQVNTX1ZBUklBQkxFOiBBREFfVVNF REVQCiMgQE9VVFBVVF9WQVJJQUJMRQojIEBERVNDUklQVElPTjoKIyBUaGlzIGlzIGEgcGxhY2Vo b2xkZXIgdmFyaWFibGUsCiMgaW4gb3JkZXIgdG8gZGVwZW5kIG9uIGFkYSBwYWNrYWdlcyBidWls dCBmb3IgdGhlIHNhbWUgYWRhCiMgaW1wbGVtZW50YXRpb25zLgojCiMgRXhhbXBsZSB1c2U6CiMg QENPREUKIyBSREVQRU5EPSIkKGFkYV9nZW5fY29uZF9kZXAgJwojICAgICBkZXYtYWRhL2Zvb1sk e0FEQV9VU0VERVB9XQojICAgJykiCiMgQENPREUKIwojIEV4YW1wbGUgdmFsdWU6CiMgQENPREUK IyBhZGFfdGFyZ2V0c19nY2NfMTIoLSkKIyBAQ09ERQoKIyBARlVOQ1RJT046IF9hZGFfaW1wbF9z dXBwb3J0ZWQKIyBAVVNBR0U6IDxpbXBsPgojIEBJTlRFUk5BTAojIEBERVNDUklQVElPTjoKIyBD aGVjayB3aGV0aGVyIHRoZSBpbXBsZW1lbnRhdGlvbiA8aW1wbD4gKEFEQV9DT01QQVQtZm9ybSkK IyBpcyBzdGlsbCBzdXBwb3J0ZWQuCiMKIyBSZXR1cm5zIDAgaWYgdGhlIGltcGxlbWVudGF0aW9u IGlzIHZhbGlkIGFuZCBzdXBwb3J0ZWQuIElmIGl0IGlzCiMgdW5zdXBwb3J0ZWQsIHJldHVybnMg MSAtLSBhbmQgdGhlIGNhbGxlciBzaG91bGQgaWdub3JlIHRoZSBlbnRyeS4KIyBJZiBpdCBpcyBp bnZhbGlkLCBkaWVzIHdpdGggYW4gYXBwcm9wcmlhdGUgZXJyb3IgbWVzc2FnZS4KX2FkYV9pbXBs X3N1cHBvcnRlZCgpIHsKCWRlYnVnLXByaW50LWZ1bmN0aW9uICR7RlVOQ05BTUV9ICIke0B9IgoK CVtbICR7I30gLWVxIDEgXV0gfHwgZGllICIke0ZVTkNOQU1FfTogdGFrZXMgZXhhY3RseSAxIGFy Z3VtZW50IChpbXBsKS4iCgoJbG9jYWwgaW1wbD0kezF9CgoJIyBrZWVwIGluIHN5bmMgd2l0aCBf QURBX0FMTF9JTVBMUyEKCSMgKG5vdCB1c2luZyB0aGF0IGxpc3QgYmVjYXVzZSBpbmxpbmUgcGF0 dGVybnMgc2hhbGwgYmUgZmFzdGVyKQoJY2FzZSAiJHtpbXBsfSIgaW4KCQlnbmF0XzIwMjF8Z2Nj XzEyfGdjY18xMykKCQkJcmV0dXJuIDAKCQkJOzsKCQkqKQoJCQlbWyAke0FEQV9DT01QQVRfTk9f U1RSSUNUfSBdXSAmJiByZXR1cm4gMQoJCQlkaWUgIkludmFsaWQgaW1wbGVtZW50YXRpb24gaW4g QURBX0NPTVBBVDogJHtpbXBsfSIKCWVzYWMKfQoKIyBARlVOQ1RJT046IF9hZGFfc2V0X2ltcGxz CiMgQElOVEVSTkFMCiMgQERFU0NSSVBUSU9OOgojIENoZWNrIEFEQV9DT01QQVQgZm9yIHdlbGwt Zm9ybWVkbmVzcyBhbmQgdmFsaWRpdHksIHRoZW4gc2V0CiMgdHdvIGdsb2JhbCB2YXJpYWJsZXM6 CiMKIyAtIF9BREFfU1VQUE9SVEVEX0lNUExTIGNvbnRhaW5pbmcgdmFsaWQgaW1wbGVtZW50YXRp b25zIHN1cHBvcnRlZAojICAgYnkgdGhlIGVidWlsZCAoQURBX0NPTVBBVCAtIGRlYWQgaW1wbGVt ZW50YXRpb25zKSwKIwojIC0gYW5kIF9BREFfVU5TVVBQT1JURURfSU1QTFMgY29udGFpbmluZyB2 YWxpZCBpbXBsZW1lbnRhdGlvbnMgdGhhdAojICAgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGVi dWlsZC4KIwojIEltcGxlbWVudGF0aW9ucyBpbiBib3RoIHZhcmlhYmxlcyBhcmUgb3JkZXJlZCB1 c2luZyB0aGUgcHJlLWRlZmluZWQKIyBlY2xhc3MgaW1wbGVtZW50YXRpb24gb3JkZXJpbmcuCiMK IyBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIG9uY2UgaW4gZ2xvYmFsIHNjb3BlIGJ5IGFu IGVjbGFzcwojIHV0aWxpemluZyBBREFfQ09NUEFULgpfYWRhX3NldF9pbXBscygpIHsKCWxvY2Fs IGkKCglpZiAhIGRlY2xhcmUgLXAgQURBX0NPTVBBVCAmPi9kZXYvbnVsbDsgdGhlbgoJCWRpZSAn QURBX0NPTVBBVCBub3QgZGVjbGFyZWQuJwoJZmkKCWlmIFtbICQoZGVjbGFyZSAtcCBBREFfQ09N UEFUKSAhPSAiZGVjbGFyZSAtYSIqIF1dOyB0aGVuCgkJZGllICdBREFfQ09NUEFUIG11c3QgYmUg YW4gYXJyYXkuJwoJZmkKCWZvciBpIGluICIke0FEQV9DT01QQVRbQF19IjsgZG8KCQkjIHRyaWdn ZXIgdmFsaWRpdHkgY2hlY2tzCgkJX2FkYV9pbXBsX3N1cHBvcnRlZCAiJHtpfSIKCWRvbmUKCgls b2NhbCBzdXBwPSgpIHVuc3VwcD0oKQoKCWZvciBpIGluICIke19BREFfQUxMX0lNUExTW0BdfSI7 IGRvCgkJaWYgaGFzICIke2l9IiAiJHtBREFfQ09NUEFUW0BdfSI7IHRoZW4KCQkJc3VwcCs9KCAi JHtpfSIgKQoJCWVsc2UKCQkJdW5zdXBwKz0oICIke2l9IiApCgkJZmkKCWRvbmUKCWlmIFtbICEg JHtzdXBwW0BdfSBdXTsgdGhlbgoJCWRpZSAiTm8gc3VwcG9ydGVkIGltcGxlbWVudGF0aW9uIGlu IEFEQV9DT01QQVQuIgoJZmkKCglpZiBbWyAke19BREFfU1VQUE9SVEVEX0lNUExTW0BdfSBdXTsg dGhlbgoJCSMgc2V0IG9uY2UgYWxyZWFkeSwgdmVyaWZ5IGludGVncml0eQoJCWlmIFtbICR7X0FE QV9TVVBQT1JURURfSU1QTFNbQF19ICE9ICR7c3VwcFtAXX0gXV07IHRoZW4KCQkJZWVycm9yICJT dXBwb3J0ZWQgaW1wbHMgKEFEQV9DT01QQVQpIGNoYW5nZWQgYmV0d2VlbiBpbmhlcml0cyEiCgkJ CWVlcnJvciAiQmVmb3JlOiAke19BREFfU1VQUE9SVEVEX0lNUExTWypdfSIKCQkJZWVycm9yICJO b3cgICA6ICR7c3VwcFsqXX0iCgkJCWRpZSAiX0FEQV9TVVBQT1JURURfSU1QTFMgaW50ZWdyaXR5 IGNoZWNrIGZhaWxlZCIKCQlmaQoJCWlmIFtbICR7X0FEQV9VTlNVUFBPUlRFRF9JTVBMU1tAXX0g IT0gJHt1bnN1cHBbQF19IF1dOyB0aGVuCgkJCWVlcnJvciAiVW5zdXBwb3J0ZWQgaW1wbHMgY2hh bmdlZCBiZXR3ZWVuIGluaGVyaXRzISIKCQkJZWVycm9yICJCZWZvcmU6ICR7X0FEQV9VTlNVUFBP UlRFRF9JTVBMU1sqXX0iCgkJCWVlcnJvciAiTm93ICAgOiAke3Vuc3VwcFsqXX0iCgkJCWRpZSAi X0FEQV9VTlNVUFBPUlRFRF9JTVBMUyBpbnRlZ3JpdHkgY2hlY2sgZmFpbGVkIgoJCWZpCgllbHNl CgkJX0FEQV9TVVBQT1JURURfSU1QTFM9KCAiJHtzdXBwW0BdfSIgKQoJCV9BREFfVU5TVVBQT1JU RURfSU1QTFM9KCAiJHt1bnN1cHBbQF19IiApCgkJcmVhZG9ubHkgX0FEQV9TVVBQT1JURURfSU1Q TFMgX0FEQV9VTlNVUFBPUlRFRF9JTVBMUwoJZmkKfQoKIyBARlVOQ1RJT046IGFkYV9leHBvcnQK IyBAVVNBR0U6IFs8aW1wbD5dIDx2YXJpYWJsZXM+Li4uCiMgQERFU0NSSVBUSU9OOgojIFNldCBh bmQgZXhwb3J0IHRoZSBBZGEgaW1wbGVtZW50YXRpb24tcmVsZXZhbnQgdmFyaWFibGVzIHBhc3Nl ZAojIGFzIHBhcmFtZXRlcnMuCiMKIyBUaGUgb3B0aW9uYWwgZmlyc3QgcGFyYW1ldGVyIG1heSBz cGVjaWZ5IHRoZSByZXF1ZXN0ZWQgQWRhCiMgaW1wbGVtZW50YXRpb24gKGVpdGhlciBhcyBBREFf VEFSR0VUUyB2YWx1ZSwgZS5nLiBhZGEyXzcsCiMgb3IgYW4gRUFEQSBvbmUsIGUuZy4gYWRhMi43 KS4gSWYgbm8gaW1wbGVtZW50YXRpb24gcGFzc2VkLAojIHRoZSBjdXJyZW50IG9uZSB3aWxsIGJl IG9idGFpbmVkIGZyb20gJHtFQURBfS4KIwojIFRoZSB2YXJpYWJsZXMgd2hpY2ggY2FuIGJlIGV4 cG9ydGVkIGFyZTogR0NDLCBFQURBLCBHTkFUTUFLRS4KIyBUaGV5IGFyZSBkZXNjcmliZWQgbW9y ZSBjb21wbGV0ZWx5IGluIHRoZSBlY2xhc3MKIyB2YXJpYWJsZSBkb2N1bWVudGF0aW9uLgphZGFf ZXhwb3J0KCkgewoJZGVidWctcHJpbnQtZnVuY3Rpb24gJHtGVU5DTkFNRX0gIiR7QH0iCgoJbG9j YWwgaW1wbCB2YXIKCgljYXNlICIkezF9IiBpbgoJCWduYXRfMjAyMXxnY2NfMTJ8Z2NjXzEzKQoJ CQlpbXBsPSR7MX0KCQkJc2hpZnQKCQkJOzsKCQkqKQoJCQlpbXBsPSR7RUFEQX0KCQkJaWYgW1sg LXogJHtpbXBsfSBdXTsgdGhlbgoJCQkJZGllICJhZGFfZXhwb3J0IGNhbGxlZCB3aXRob3V0IGEg YWRhIGltcGxlbWVudGF0aW9uIGFuZCBFQURBIGlzIHVuc2V0IgoJCQlmaQoJCQk7OwoJZXNhYwoJ ZGVidWctcHJpbnQgIiR7RlVOQ05BTUV9OiBpbXBsZW1lbnRhdGlvbjogJHtpbXBsfSIKCglsb2Nh bCBnY2NfcHYKCWxvY2FsIHNsb3QKCWNhc2UgIiR7aW1wbH0iIGluCgkJZ25hdF8yMDIxKQoJCQln Y2NfcHY9MTAKCQkJc2xvdD0xMAoJCQk7OwoJCWdjY18xMikKCQkJZ2NjX3B2PTEyCgkJCXNsb3Q9 MTIKCQkJOzsKCQlnY2NfMTMpCgkJCWdjY19wdj0xMwoJCQlzbG90PTEzCgkJCTs7CgkJKikKCQkJ Z2NjX3B2PSI5LjkuOSIKCQkJc2xvdD05LjkuOQoJCQk7OwoJZXNhYwoKCWZvciB2YXI7IGRvCgkJ Y2FzZSAiJHt2YXJ9IiBpbgoJCQlFQURBKQoJCQkJZXhwb3J0IEVBREE9JHtpbXBsfQoJCQkJZGVi dWctcHJpbnQgIiR7RlVOQ05BTUV9OiBFQURBID0gJHtFQURBfSIKCQkJCTs7CgkJCUdDQykKCQkJ CWV4cG9ydCBHQ0M9JHtFUFJFRklYfS91c3IvYmluL2djYy0ke2djY19wdn0KCQkJCWRlYnVnLXBy aW50ICIke0ZVTkNOQU1FfTogR0NDID0gJHtHQ0N9IgoJCQkJOzsKCQkJR0NDX1BWKQoJCQkJZXhw b3J0IEdDQ19QVj0ke2djY19wdn0KCQkJCWRlYnVnLXByaW50ICIke0ZVTkNOQU1FfTogR0NDX1BW ID0gJHtHQ0NfUFZ9IgoJCQkJOzsKCQkJR05BVCkKCQkJCWV4cG9ydCBHTkFUPSR7RVBSRUZJWH0v dXNyL2Jpbi9nbmF0LSR7Z2NjX3B2fQoJCQkJZGVidWctcHJpbnQgIiR7RlVOQ05BTUV9OiBHTkFU ID0gJHtHTkFUfSIKCQkJCTs7CgkJCUdOQVRCSU5EKQoJCQkJZXhwb3J0IEdOQVRCSU5EPSR7RVBS RUZJWH0vdXNyL2Jpbi9nbmF0YmluZC0ke2djY19wdn0KCQkJCWRlYnVnLXByaW50ICIke0ZVTkNO QU1FfTogR05BVEJJTkQgPSAke0dOQVRCSU5EfSIKCQkJCTs7CgkJCUdOQVRNQUtFKQoJCQkJZXhw b3J0IEdOQVRNQUtFPSR7RVBSRUZJWH0vdXNyL2Jpbi9nbmF0bWFrZS0ke2djY19wdn0KCQkJCWRl YnVnLXByaW50ICIke0ZVTkNOQU1FfTogR05BVE1BS0UgPSAke0dOQVRNQUtFfSIKCQkJCTs7CgkJ CUdOQVRMUykKCQkJCWV4cG9ydCBHTkFUTFM9JHtFUFJFRklYfS91c3IvYmluL2duYXRscy0ke2dj Y19wdn0KCQkJCWRlYnVnLXByaW50ICIke0ZVTkNOQU1FfTogR05BVExTID0gJHtHTkFUTFN9IgoJ CQkJOzsKCQkJR05BVFBSRVApCgkJCQlleHBvcnQgR05BVFBSRVA9JHtFUFJFRklYfS91c3IvYmlu L2duYXRwcmVwLSR7Z2NjX3B2fQoJCQkJZGVidWctcHJpbnQgIiR7RlVOQ05BTUV9OiBHTkFUUFJF UCA9ICR7R05BVFBSRVB9IgoJCQkJOzsKCQkJR05BVENIT1ApCgkJCQlleHBvcnQgR05BVENIT1A9 JHtFUFJFRklYfS91c3IvYmluL2duYXRjaG9wLSR7Z2NjX3B2fQoJCQkJZGVidWctcHJpbnQgIiR7 RlVOQ05BTUV9OiBHTkFUQ0hPUCA9ICR7R05BVENIT1B9IgoJCQkJOzsKCQkJQURBX1BLR19ERVAp CgkJCQljYXNlICIke2ltcGx9IiBpbgoJCQkJCWduYXRfMjAyMSkKCQkJCQkJQURBX1BLR19ERVA9 ImRldi1sYW5nL2duYXQtZ3BsOiR7c2xvdH1bYWRhXSIKCQkJCQkJOzsKCQkJCQlnY2NfMTJ8Z2Nj XzEzKQoJCQkJCQlBREFfUEtHX0RFUD0ic3lzLWRldmVsL2djYzoke3Nsb3R9W2FkYV0iCgkJCQkJ CTs7CgkJCQkJKikKCQkJCQkJQURBX1BLR19ERVA9Ij1zeXMtZGV2ZWwvZ2NjLSR7Z2NjX3B2fSpb YWRhXSIKCQkJCQkJOzsKCQkJCWVzYWMKCgkJCQkjIHVzZS1kZXAKCQkJCWlmIFtbICR7QURBX1JF UV9VU0V9IF1dOyB0aGVuCgkJCQkJQURBX1BLR19ERVArPVske0FEQV9SRVFfVVNFfV0KCQkJCWZp CgoJCQkJZXhwb3J0IEFEQV9QS0dfREVQCgkJCQlkZWJ1Zy1wcmludCAiJHtGVU5DTkFNRX06IEFE QV9QS0dfREVQID0gJHtBREFfUEtHX0RFUH0iCgkJCQk7OwoJCQkqKQoJCQkJZGllICJhZGFfZXhw b3J0OiB1bmtub3duIHZhcmlhYmxlICR7dmFyfSIKCQllc2FjCglkb25lCn0KCl9hZGFfc2luZ2xl X3NldF9nbG9iYWxzKCkgewoJX2FkYV9zZXRfaW1wbHMKCWxvY2FsIGkgQURBX1BLR19ERVAKCgls b2NhbCBmbGFncz0oICIke19BREFfU1VQUE9SVEVEX0lNUExTW0BdLyMvYWRhX3RhcmdldF99IiAp Cglsb2NhbCB1bmZsYWdzPSggIiR7X0FEQV9VTlNVUFBPUlRFRF9JTVBMU1tAXS8jLy1hZGFfdGFy Z2V0X30iICkKCWxvY2FsIGFsbGZsYWdzPSggIiR7X0FEQV9BTExfSU1QTFNbQF0vIy9hZGFfdGFy Z2V0X30iICkKCglsb2NhbCBvcHRmbGFncz0ke2ZsYWdzW0BdLyUvKC0pP30KCglJVVNFPSIke2Fs bGZsYWdzWypdfSIKCglpZiBbWyAkeyNfQURBX1VOU1VQUE9SVEVEX0lNUExTW0BdfSAtZ3QgMCBd XTsgdGhlbgoJCW9wdGZsYWdzKz0sJHt1bmZsYWdzW0BdLyUvKC0pfQoJZmkKCglsb2NhbCBkZXBz IHJlcXVzZSB1c2VkZXAKCWlmIFtbICR7I19BREFfU1VQUE9SVEVEX0lNUExTW0BdfSAtZXEgMSBd XTsgdGhlbgoJCSMgVGhlcmUgaXMgb25seSBvbmUgc3VwcG9ydGVkIGltcGxlbWVudGF0aW9uOyBz ZXQgSVVTRSBhbmQgb3RoZXIKCQkjIHZhcmlhYmxlcyB3aXRob3V0IEFEQV9TSU5HTEVfVEFSR0VU LgoJCXJlcXVzZT0ke2ZsYWdzWypdfQoJCWFkYV9leHBvcnQgIiR7X0FEQV9TVVBQT1JURURfSU1Q TFNbMF19IiBBREFfUEtHX0RFUAoJCWRlcHM9IiR7ZmxhZ3NbKl19PyAoICR7QURBX1BLR19ERVB9 ICkgIgoJZWxzZQoJCSMgTXVsdGlwbGUgc3VwcG9ydGVkIGltcGxlbWVudGF0aW9uczsgaG9ub3Ig QURBX1RBUkdFVC4KCQlyZXF1c2U9Il5eICggJHtmbGFnc1sqXX0gKSIKCgkJZm9yIGkgaW4gIiR7 X0FEQV9TVVBQT1JURURfSU1QTFNbQF19IjsgZG8KCQkJYWRhX2V4cG9ydCAiJHtpfSIgQURBX1BL R19ERVAKCQkJZGVwcys9ImFkYV90YXJnZXRfJHtpfT8gKCAke0FEQV9QS0dfREVQfSApICIKCQlk b25lCglmaQoJdXNlZGVwPSR7b3B0ZmxhZ3MvLyAvLH0KCWlmIFtbICR7QURBX0RFUFMrMX0gXV07 IHRoZW4KCQlpZiBbWyAke0FEQV9ERVBTfSAhPSAiJHtkZXBzfSIgXV07IHRoZW4KCQkJZWVycm9y ICJBREFfREVQUyBoYXZlIGNoYW5nZWQgYmV0d2VlbiBpbmhlcml0cyAoQURBX1JFUV9VU0U/KSEi CgkJCWVlcnJvciAiQmVmb3JlOiAke0FEQV9ERVBTfSIKCQkJZWVycm9yICJOb3cgICA6ICR7ZGVw c30iCgkJCWRpZSAiQURBX0RFUFMgaW50ZWdyaXR5IGNoZWNrIGZhaWxlZCIKCQlmaQoKCQkjIHRo ZXNlIHR3byBhcmUgZm9ybWFsaXR5IC0tIHRoZXkgZGVwZW5kIG9uIEFEQV9DT01QQVQgb25seQoJ CWlmIFtbICR7QURBX1JFUVVJUkVEX1VTRX0gIT0gJHtyZXF1c2V9IF1dOyB0aGVuCgkJCWVlcnJv ciAiQURBX1JFUVVJUkVEX1VTRSBoYXZlIGNoYW5nZWQgYmV0d2VlbiBpbmhlcml0cyEiCgkJCWVl cnJvciAiQmVmb3JlOiAke0FEQV9SRVFVSVJFRF9VU0V9IgoJCQllZXJyb3IgIk5vdyAgIDogJHty ZXF1c2V9IgoJCQlkaWUgIkFEQV9SRVFVSVJFRF9VU0UgaW50ZWdyaXR5IGNoZWNrIGZhaWxlZCIK CQlmaQoKCQlpZiBbWyAke0FEQV9VU0VERVB9ICE9ICIke3VzZWRlcH0iIF1dOyB0aGVuCgkJCWVl cnJvciAiQURBX1VTRURFUCBoYXZlIGNoYW5nZWQgYmV0d2VlbiBpbmhlcml0cyEiCgkJCWVlcnJv ciAiQmVmb3JlOiAke0FEQV9VU0VERVB9IgoJCQllZXJyb3IgIk5vdyAgIDogJHt1c2VkZXB9IgoJ CQlkaWUgIkFEQV9VU0VERVAgaW50ZWdyaXR5IGNoZWNrIGZhaWxlZCIKCQlmaQoJZWxzZQoJCUFE QV9ERVBTPSR7ZGVwc30KCQlBREFfUkVRVUlSRURfVVNFPSR7cmVxdXNlfQoJCUFEQV9VU0VERVA9 JHt1c2VkZXB9CgkJcmVhZG9ubHkgQURBX0RFUFMgQURBX1JFUVVJUkVEX1VTRSBBREFfVVNFREVQ CglmaQp9Cl9hZGFfc2luZ2xlX3NldF9nbG9iYWxzCnVuc2V0IC1mIF9hZGFfc2luZ2xlX3NldF9n bG9iYWxzCgojIEBGVU5DVElPTjogYWRhX3dyYXBwZXJfc2V0dXAKIyBAVVNBR0U6IFs8cGF0aD4g WzxpbXBsPl1dCiMgQERFU0NSSVBUSU9OOgojIENyZWF0ZSBwcm9wZXIgJ2FkYScgZXhlY3V0YWJs ZSB3cmFwcGVycwojIGluIHRoZSBkaXJlY3RvcnkgbmFtZWQgYnkgPHBhdGg+LiBTZXQgdXAgUEFU SAojIGFwcHJvcHJpYXRlbHkuIDxwYXRoPiBkZWZhdWx0cyB0byAke1R9LyR7RUFEQX0uCiMKIyBU aGUgd3JhcHBlcnMgd2lsbCBiZSBjcmVhdGVkIGZvciBpbXBsZW1lbnRhdGlvbiBuYW1lZCBieSA8 aW1wbD4sCiMgb3IgZm9yIG9uZSBuYW1lZCBieSAke0VBREF9IGlmIG5vIDxpbXBsPiBwYXNzZWQu CiMKIyBJZiB0aGUgbmFtZWQgZGlyZWN0b3J5IGNvbnRhaW5zIGEgYWRhIHN5bWxpbmsgYWxyZWFk eSwgaXQgd2lsbAojIGJlIGFzc3VtZWQgdG8gY29udGFpbiBwcm9wZXIgd3JhcHBlcnMgYWxyZWFk eSBhbmQgb25seSBlbnZpcm9ubWVudAojIHNldHVwIHdpbGwgYmUgZG9uZS4gSWYgd3JhcHBlciB1 cGRhdGUgaXMgcmVxdWVzdGVkLCB0aGUgZGlyZWN0b3J5CiMgc2hhbGwgYmUgcmVtb3ZlZCBmaXJz dC4KYWRhX3dyYXBwZXJfc2V0dXAoKSB7CglkZWJ1Zy1wcmludC1mdW5jdGlvbiAke0ZVTkNOQU1F fSAiJHtAfSIKCglsb2NhbCB3b3JrZGlyPSR7MTotJHtUfS8ke0VBREF9fQoJbG9jYWwgaW1wbD0k ezI6LSR7RUFEQX19CgoJW1sgJHt3b3JrZGlyfSBdXSB8fCBkaWUgIiR7RlVOQ05BTUV9OiBubyB3 b3JrZGlyIHNwZWNpZmllZC4iCglbWyAke2ltcGx9IF1dIHx8IGRpZSAiJHtGVU5DTkFNRX06IG5v IGltcGwgbm9yIEVBREEgc3BlY2lmaWVkLiIKCglpZiBbWyAhIC14ICR7d29ya2Rpcn0vYmluL2du YXRtYWtlIF1dOyB0aGVuCgkJbWtkaXIgLXAgIiR7d29ya2Rpcn0iL2JpbiB8fCBkaWUKCgkJbG9j YWwgR0NDIEdOQVRNQUtFIEdOQVRMUyBHTkFUQklORCBHTkFUQ0hPUCBHTkFUUFJFUAoJCWFkYV9l eHBvcnQgIiR7aW1wbH0iIEdDQyBHTkFUIEdOQVRNQUtFIEdOQVRMUyBHTkFUQ0hPUCBHTkFUQklO RCBHTkFUUFJFUAoKCQkjIEFkYSBjb21waWxlcgoJCWNhdCA+ICIke3dvcmtkaXJ9L2Jpbi9nY2Mi IDw8LV9FT0ZfIHx8IGRpZQoJCQkjIS9iaW4vc2gKCQkJZXhlYyAiJHtHQ0N9IiAiXCR7QH0iCgkJ X0VPRl8KCQljaG1vZCBhK3ggIiR7d29ya2Rpcn0vYmluL2djYyIgfHwgZGllCgkJY2F0ID4gIiR7 d29ya2Rpcn0vYmluL2duYXRtYWtlIiA8PC1fRU9GXyB8fCBkaWUKCQkJIyEvYmluL3NoCgkJCWV4 ZWMgIiR7R05BVE1BS0V9IiAiXCR7QH0iCgkJX0VPRl8KCQljaG1vZCBhK3ggIiR7d29ya2Rpcn0v YmluL2duYXRtYWtlIiB8fCBkaWUKCQljYXQgPiAiJHt3b3JrZGlyfS9iaW4vZ25hdGxzIiA8PC1f RU9GXyB8fCBkaWUKCQkJIyEvYmluL3NoCgkJCWV4ZWMgIiR7R05BVExTfSIgIlwke0B9IgoJCV9F T0ZfCgkJY2htb2QgYSt4ICIke3dvcmtkaXJ9L2Jpbi9nbmF0bHMiIHx8IGRpZQoJCWNhdCA+ICIk e3dvcmtkaXJ9L2Jpbi9nbmF0YmluZCIgPDwtX0VPRl8gfHwgZGllCgkJCSMhL2Jpbi9zaAoJCQll eGVjICIke0dOQVRCSU5EfSIgIlwke0B9IgoJCV9FT0ZfCgkJY2htb2QgYSt4ICIke3dvcmtkaXJ9 L2Jpbi9nbmF0YmluZCIgfHwgZGllCgkJY2F0ID4gIiR7d29ya2Rpcn0vYmluL2duYXRjaG9wIiA8 PC1fRU9GXyB8fCBkaWUKCQkJIyEvYmluL3NoCgkJCWV4ZWMgIiR7R05BVENIT1B9IiAiXCR7QH0i CgkJX0VPRl8KCQljaG1vZCBhK3ggIiR7d29ya2Rpcn0vYmluL2duYXRjaG9wIiB8fCBkaWUKCQlj YXQgPiAiJHt3b3JrZGlyfS9iaW4vZ25hdHByZXAiIDw8LV9FT0ZfIHx8IGRpZQoJCQkjIS9iaW4v c2gKCQkJZXhlYyAiJHtHTkFUUFJFUH0iICJcJHtAfSIKCQlfRU9GXwoJCWNobW9kIGEreCAiJHt3 b3JrZGlyfS9iaW4vZ25hdHByZXAiIHx8IGRpZQoJCWNhdCA+ICIke3dvcmtkaXJ9L2Jpbi9nbmF0 IiA8PC1fRU9GXyB8fCBkaWUKCQkJIyEvYmluL3NoCgkJCWV4ZWMgIiR7R05BVH0iICJcJHtAfSIK CQlfRU9GXwoJCWNobW9kIGEreCAiJHt3b3JrZGlyfS9iaW4vZ25hdCIgfHwgZGllCglmaQoKCSMg Tm93LCBzZXQgdGhlIGVudmlyb25tZW50LgoJIyBCdXQgbm90ZSB0aGF0ICR7d29ya2Rpcn0gbWF5 IGJlIHNoYXJlZCB3aXRoIHNvbWV0aGluZyBlbHNlLAoJIyBhbmQgdGh1cyBhbHJlYWR5IG9uIHRv cCBvZiBQQVRILgoJaWYgW1sgJHtQQVRIIyM6Kn0gIT0gJHt3b3JrZGlyfS9iaW4gXV07IHRoZW4K CQlQQVRIPSR7d29ya2Rpcn0vYmluJHtQQVRIOis6JHtQQVRIfX0KCWZpCglleHBvcnQgUEFUSAp9 CgojIEBGVU5DVElPTjogYWRhX3NldHVwCiMgQERFU0NSSVBUSU9OOgojIERldGVybWluZSB3aGF0 IHRoZSBzZWxlY3RlZCBBZGEgaW1wbGVtZW50YXRpb24gaXMgYW5kIHNldAojIHRoZSBBZGEgYnVp bGQgZW52aXJvbm1lbnQgdXAgZm9yIGl0LgphZGFfc2V0dXAoKSB7CglkZWJ1Zy1wcmludC1mdW5j dGlvbiAke0ZVTkNOQU1FfSAiJHtAfSIKCgl1bnNldCBFQURBCgoJaWYgW1sgJHsjX0FEQV9TVVBQ T1JURURfSU1QTFNbQF19IC1lcSAxIF1dOyB0aGVuCgkJaWYgdXNlICJhZGFfdGFyZ2V0XyR7X0FE QV9TVVBQT1JURURfSU1QTFNbMF19IjsgdGhlbgoJCQkjIE9ubHkgb25lIHN1cHBvcnRlZCBpbXBs ZW1lbnRhdGlvbiwgZW5hYmxlIGl0IGV4cGxpY2l0bHkKCQkJYWRhX2V4cG9ydCAiJHtfQURBX1NV UFBPUlRFRF9JTVBMU1swXX0iIEVBREEgR0NDX1BWIEdOQVQgR05BVEJJTkQgR05BVExTIEdOQVRN QUtFCgkJCWFkYV93cmFwcGVyX3NldHVwCgkJZmkKCWVsc2UKCQlsb2NhbCBpbXBsCgkJZm9yIGlt cGwgaW4gIiR7X0FEQV9TVVBQT1JURURfSU1QTFNbQF19IjsgZG8KCQkJaWYgdXNlICJhZGFfdGFy Z2V0XyR7aW1wbH0iOyB0aGVuCgkJCQlpZiBbWyAke0VBREF9IF1dOyB0aGVuCgkJCQkJZWVycm9y ICJZb3VyIEFEQV9UQVJHRVQgc2V0dGluZyBsaXN0cyBtb3JlIHRoYW4gYSBzaW5nbGUgQWRhIgoJ CQkJCWVlcnJvciAiaW1wbGVtZW50YXRpb24uIFBsZWFzZSBzZXQgaXQgdG8ganVzdCBvbmUgdmFs dWUuIElmIHlvdSBuZWVkIgoJCQkJCWVlcnJvciAidG8gb3ZlcnJpZGUgdGhlIHZhbHVlIGZvciBh IHNpbmdsZSBwYWNrYWdlLCBwbGVhc2UgdXNlIHBhY2thZ2UuZW52IgoJCQkJCWVlcnJvciAib3Ig YW4gZXF1aXZhbGVudCBzb2x1dGlvbiAobWFuIDUgcG9ydGFnZSkuIgoJCQkJCWVjaG8KCQkJCQlk aWUgIk1vcmUgdGhhbiBvbmUgaW1wbGVtZW50YXRpb24gaW4gQURBX1RBUkdFVC4iCgkJCQlmaQoK CQkJCWFkYV9leHBvcnQgIiR7aW1wbH0iIEVBREEgR0NDX1BWIEdOQVQgR05BVEJJTkQgR05BVExT IEdOQVRNQUtFCgkJCQlhZGFfd3JhcHBlcl9zZXR1cAoJCQlmaQoJCWRvbmUKCWZpCgoJaWYgW1sg ISAke0VBREF9IF1dOyB0aGVuCgkJZWVycm9yICJObyBBZGEgaW1wbGVtZW50YXRpb24gc2VsZWN0 ZWQgZm9yIHRoZSBidWlsZC4gUGxlYXNlIHNldCIKCQlpZiBbWyAkeyNfQURBX1NVUFBPUlRFRF9J TVBMU1tAXX0gLWVxIDEgXV07IHRoZW4KCQkJZWVycm9yICJ0aGUgQURBX1RBUkdFVFMgdmFyaWFi bGUgaW4geW91ciBtYWtlLmNvbmYgdG8gaW5jbHVkZSBvbmUiCgkJZWxzZQoJCQllZXJyb3IgInRo ZSBBREFfU0lOR0xFX1RBUkdFVCB2YXJpYWJsZSBpbiB5b3VyIG1ha2UuY29uZiB0byBvbmUiCgkJ ZmkKCQllZXJyb3IgIm9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOiIKCQllZXJyb3IKCQllZXJyb3Ig IiR7X0FEQV9TVVBQT1JURURfSU1QTFNbQF19IgoJCWVjaG8KCQlkaWUgIk5vIHN1cHBvcnRlZCBB ZGEgaW1wbGVtZW50YXRpb24gaW4gQURBX1NJTkdMRV9UQVJHRVQvQURBX1RBUkdFVFMuIgoJZmkK fQoKIyBARlVOQ1RJT046IGFkYV9wa2dfc2V0dXAKIyBAREVTQ1JJUFRJT046CiMgUnVucyBhZGFf c2V0dXAuCmFkYV9wa2dfc2V0dXAoKSB7CglkZWJ1Zy1wcmludC1mdW5jdGlvbiAke0ZVTkNOQU1F fSAiJHtAfSIKCglbWyAke01FUkdFX1RZUEV9ICE9IGJpbmFyeSBdXSAmJiBhZGFfc2V0dXAKfQoK ZmkKCkVYUE9SVF9GVU5DVElPTlMgcGtnX3NldHVwCg== --MP_/IFpYxW6d7=pe3OXzOBbx=RJ--