Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wOj68-0007RU-2n for pgsql-hackers@arkaria.postgresql.org; Sun, 17 May 2026 21:32:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wOj64-000Vrh-1V for pgsql-hackers@arkaria.postgresql.org; Sun, 17 May 2026 21:32:29 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wOj63-000VrY-1r for pgsql-hackers@lists.postgresql.org; Sun, 17 May 2026 21:32:29 +0000 Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wOj5z-000000004RZ-0idQ for pgsql-hackers@lists.postgresql.org; Sun, 17 May 2026 21:32:27 +0000 Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-67e9e343b22so2430185a12.0 for ; Sun, 17 May 2026 14:32:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779053541; x=1779658341; darn=lists.postgresql.org; h=user-agent:mime-version:date:autocrypt:references:in-reply-to:to :from:subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=3ZKq3HFtaCx4vBNa80v1Y0mXWMUemvv9s8AkleGly1g=; b=eiS4LMjPBELD+abb60Fx/oTX+f+Su9/oZRjLj8EAXiFG0KxUP/pah3vk2UQogu0stT tasOMm1jDyVC1mclJ9dyS9xzpcfs+fKjO2Jm8exHJDbpGq5055bmiwa8S0IbBBv4OqwS VpX4DN4Pipbrm+18psOwvFIcPB6+1uOpfndNaxsORt4ceAYYAjUh7Cjms3KzeX6Yhnd/ IWO9rRbZ/ggpmV42JNmYZEIGqGNGC5U3/0fQA+n4Qj2XbEP4r/FfsXFgOH1K3Y2oFXph 7VHZo4gSArMcG2nGFPsBnh+JwMm7O41qZyGRPojUWwMteiPRt+LFNzp8MJliyKA9qbJO WjXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779053541; x=1779658341; h=user-agent:mime-version:date:autocrypt:references:in-reply-to:to :from:subject:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3ZKq3HFtaCx4vBNa80v1Y0mXWMUemvv9s8AkleGly1g=; b=pBGEumD2GOGtK/BHVnS8Z+1JxpHNzULGSqh+Mqha1TeHeGGx5sDinQWBe7eL+wzG+h Qt/ZN/Sae1B53rgRpp5KLcKNiKk1iSw9Yw7OYI8QqZteUdVpZ/vWr2vlaBheXNxKvzYw oZakdf7mUeUWA6sl4tkSnj5HO25nT8ZAfHKDxT0CcvBaAJt1PBFhYgZHeNy/Itrgrtq2 LyQe5SVZ124A+wETvvVe+vc8iWKo7fLliLzGPQTyR0WDRqhgXcEw4d4qJpoLUI8l7ksO PSk61wrVt6xXhPEJKhovlWHIjF7np6HQeAIkU7+FaSjwSCGYTUJBPVMjHN+FknL2GwBN aEFA== X-Gm-Message-State: AOJu0YxaHCuXLX51+xGRyCpGH78cMGeGMAKDSeW+DLHXlRAGM4t/9+AW GkjJsrBWB7S5rfbD9YNo+hluCsUZ4SAqFyQduY69BKhu9U7bMce5ZfcxtTw0fXY= X-Gm-Gg: Acq92OEJO7so+QsbYL3wbMSyxxEL80IRPlSH2HO6Dzy5+XS9t7b3WW0OXx8FjnPzWks RtTI+/x4VPsoyhOwoT5Uy0r2sKL1JyMYsZekZh1Vk45+C+WzKepk2RRS500l0cmK5vEyLSIHuYU EjTbyGPOiA9ImZ5nr888ba/L3CpJV4GhY/D+Y03X3vswpMnSMjrP9AS4llPrnddYURJxXpRN7BO AxVi8w6YEtWP7y5Q1YKorNTd6eehEItOF7eOIbVMAE87zNPZPWkZMUym7Zmma5kjQwzrKY7pKb5 R6hzoltjh0pVLD7D5EPF4UjUvChbsexi+iFn3gNnhD/P3SMpxb+Eokjz3GTSU48a2vLkrzaDiP2 64WQsnVwrp069yhYNqXZrjhJ8lPwXORdmF0iGzHyyKTARI28MGk3RXrRp+wVFgyb0XiuJ5ERJWN Lnm1C6nTnMuM5KPENCodYHTLU0JcOTCosA4HvJUC/Pe0zsW2MgQxRMe+HiCp7hEpcBAFpvQ/5eu /igKMNGgy0GxQ== X-Received: by 2002:a17:906:6a26:b0:bcc:855c:52f2 with SMTP id a640c23a62f3a-bd51796ead6mr624446966b.35.1779053541012; Sun, 17 May 2026 14:32:21 -0700 (PDT) Received: from ?IPv6:2a00:6d43:908:5803::3? ([2a00:6d43:908:5803::3]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bd4f4e4d54dsm482281566b.47.2026.05.17.14.32.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 May 2026 14:32:17 -0700 (PDT) Message-ID: Subject: Re: Add pg_get_publication_ddl function From: "Jonathan Gonzalez V." To: pgsql-hackers@lists.postgresql.org In-Reply-To: <70d20c14d1c14f93e4200c1a9327b97d7c18a782.camel@gmail.com> References: <70d20c14d1c14f93e4200c1a9327b97d7c18a782.camel@gmail.com> Autocrypt: addr=jonathan.abdiel@gmail.com; prefer-encrypt=mutual; keydata=mQINBF1Rbm8BEADc2lW3toboDjMLry1spo/hxUiMKlA+CDCMwXPZPvyB4TGCQAVYnU+gS NgBJ8H7CF8ghllm9OYeqdRoRvr1unQN5RUShUWTsLhznUu5KV0KfhFbEjQyH7lDeVCzMRNr5r27QT RrmycqAacistMqtjfnsG/j8+HQU9tLrOdnhsxIRUZN/guHBEwx3LVp77lf9HMWabnSgGQVOqhUzA6 P97j8oWRwQNDZjHFVf5k4HMHJRp8OzcvXUOSa+ynH33xBsrLPDza0X6y7pZlfYbmjXdwU/XKSd7oB 4BeChFbrmdilIeSAGKLAHURH9jKeRxDt9pzYMvsIiK9UZlThnEgAVM2IqQzhnzd4jxG13Hi8HZ82O 2Ng4n36kVh5uz0NoIGJ6Guw9R+gqHHxbeSdt8S0P+2VO80UTX+hF7OPbLjE7w8wsTt37Ekp+jRxUs RooShDvnUENiw+TkyPszUZ0k9BZmfwcaC3++WDYyWvGK20wty3ZZMjl69SDdQXQaRu8E59leIpKw6 p8HBBAGZgytVPUN61w52r9dgX9RW0ujBrEztRNWPaDauedKGCXrL678mq7KwYW6Rg+y9orvZJPLUq Z7/m8RJUaeuJdz2LJ2bioUJ2BaPX7YxXdqMm9LZWknzy/pyF8iZHXD5D3H+WNJROlcQ6TQNLqUB11 KRK0koNeqiNbwARAQABtDlKb25hdGhhbiBHb256YWxleiBWLiA8am9uYXRoYW4uZ29uemFsZXpAZW 50ZXJwcmlzZWRiLmNvbT6JAlQEEwEKAD4CGwMCHgECF4AFCwkIBwMFFQoJCAsFFgIDAQAWIQQSbD6 5ytnQRUDy/MNDze8Kc6UcxQUCaY2PJAUJDh1UNQAKCRBDze8Kc6UcxXl0D/9GitE44UsOyJKtRR/Q T45vrSkg+OsHFQQTTJmAZf+jzeMMvW9PDHnG9aX+JEM8vDl6EL6X3Q2sf7/Yi4XX7FneiNNpBJGml Ak7DsNQRwP6wnD5AOteDztBFm5QMJTqoVOqQn3/WtFUuJfPEd9fNaUh8DUhXXScKEqSqBSr+bZE1/ fVF/i5nCSwlOTXVIPaVGB2Q92eGfXQnwSK2pxV5+VBP6oiW3bTf1HwD+NpKEAWDJ2utc4OAXmLuGU ZdiaxuUwud0xTgHxBPoei2C9SsuJ7VjlqYXUN2EgFdAysH3Gx9hHVEDE/dG2kq6K72hG2ze5Zzp2u Xg3QZVcTN90WWTblhFyB/dGm5iBCClPHqyhSCFdYrclEY/4kPafl3WLiKkRZyb2GZ96uLu8LYt9/F sLsc3HR3i3rGQ0XIdiUcbaSG4OE7rJDGV+hTfu7xxPzy1Wc4bclqmdya5g4I0u5saM9NBEYpPc5E9 Bb/w8F+QQZ6XVITGUxgdr0K3anflleAANqtNGpW5pQE5ukRKpqcl1YK8PkuxdHf/RjbB3RSx3h6qw NTQqlZWmzk6fotgFfgD1EK8brCIRYMJutWvAiDQ+AWrfGdEGx0ZrbjEqR/67DTNJXMEOIDPc/eVvD qe5F7IvxrFu06EEC6E97K6aTHfm339RlE4+DpqLrjnls/vIJ/LQwSm9uYXRoYW4gR29uemFsZXogV i4gPGpvbmF0aGFuLmFiZGllbEBnbWFpbC5jb20+iQJUBBMBCgA+AhsDAh4BAheABQsJCAcDBRUKCQ gLBRYCAwEAFiEEEmw+ucrZ0EVA8vzDQ83vCnOlHMUFAmmNjyUFCQ4dVDUACgkQQ83vCnOlHMVwJQ/ 9GAxjP7q/ZU/ZmZ1kBdeAzsL0AZLGkXnkDCdIrXS9NB1gR63bjLzIFvyAKpofRuJkKex1ZorDeXmd DrIXCcZTRFSxq13X81z4QANFWMe/a7MTG0f7b0t7FTfmjq4QeC8zcbuj3zS4dvBMGH2QdOSrttnnz ogTAnVK0tg8dF+8mWQ6fHoepch0Zlcbb1nnMGdcEdq6D9kwpYQWhD64dFmou+NrG8cFAbskmEqSbu FjmQIjPY9yhYhMtJzB32eCkcSXrpEQiEDhy/2YVyzQ/xPnSLgPa1n6J04DbsO38GFADhT6oJowunj 8WGbN7e1XJr2qAo/pnmqdfn4eEXIPSgfQhIRT4Z/JwR/IljYHD5HJZUA5DTU1zDTEjuOe8YCFkIoi QPM07QHeMTP4oyqAEoxv/CTJNDMRt7hx8zvo5OmAg8BmUDX46kwkRlAfNVM01BFnYHiREuW/8mF9H fQH8sEiKOfkq0ZyHtuuQ4HXh6MyrfPP2mUzcphG87/bl/rEQIDLqseBqVEc+sfg9zoLezqM7EmfG0 9dnDH9d1JwhM9UW5TPl7yJq1Zd7nv6DdLog/Cdgdqu6ZroTrv2Vp+jdgmimgZYaWnB2iaj6fNz/w+ HsitfS+7V+yRUou3+hH5JNkWpGibVosOeYgK8PHMRzqNRl9m859rcrXM/iWYqUFacVXm0N0pvbmF0 aGFuIEdvbnphbGV6IFYgPGpvbmF0aGFuLmdvbnphbGV6QDJuZHF1YWRyYW50LmNvbT6JAlQEEwEKA D4CGwMCHgECF4AFCwkIBwMFFQoJCAsFFgIDAQAWIQQSbD65ytnQRUDy/MNDze8Kc6UcxQUCaY2PJQ UJDh1UNQAKCRBDze8Kc6UcxeQaEADHYERzaodpec8m2ZNF04gj9Ra3udvurrpab4598TeKwNsODvZ ASMY0fjATtnduEirypa0mS3jMK51XVFz7WUxqm/zccWGCivzn4+Zl8yqhn0Exf57ORACQeB5UJ0UU Fl/8Z1LxEe0uS0XiUnS8tfpS/LxP0PkT+gNIS0Tqo1IMZD30ANt4wfrrnR8Bzy2E6/5J0vNtKhpNm bdwAT5lwaM0bc+o6IKIaSTpoEdaF1XnW8ThOs2nxhmIQmaFNM48GqeKny65shxYDmn58e093v5T2U 1QrUUhFt6sAapbSLvekNWBCNlqE6dwDcuYSA53Shn/bX4kLoMX4yk6pfCIr9j+wLShq0mVRznBM+J WTF5NtUoD4NvYTXdOfdsnbfDdUFRQDqsDOpl8gsQW3N5Rc54jAAd+W6bgP05GeoiwM+SmedNlJiSQ NnMw0vtV8u2B2AVgCD8UvOZP3mLUiTmHymD2HmXIXhOn+O7l5fymNMrCYv5ihAMsA20RExVfZ+I37 Qt+uJcsPSf7lvcWSJkoB0oktwnq9UUxYF0FNyFfaPGfCKxRvBeVD8qcZpOTWh9pTy0urM31MIaZPh MkBrl4WZ2pXqzkkqGn6daY9g5/4oPgazAmqRSfxdDmAbG08STMMvqimaIc2DHYZTRjNKBDvO7Xmef plnv3mXrjZZoDBMglnQ== Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-WDdytf9K6DP0l8II7xXN" Date: Sun, 17 May 2026 23:27:15 +0200 MIME-Version: 1.0 User-Agent: Evolution 3.56.2-9 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-WDdytf9K6DP0l8II7xXN Content-Type: multipart/mixed; boundary="=-UY2ZU6S1z5xo4pEemmFW" --=-UY2ZU6S1z5xo4pEemmFW Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: quoted-printable Hello all!! I'm attaching the v2 of this patch! There's a lot of changes but I'll try to mention the biggest ones: * Adopted the new structure following the previous committed patches of tablespaces and databases. * Added the options for pretty and owner, also added the statement that will alter the publication to have the owner. I didn't know if it was required since the CREATE PUBLICATION doesn't have a way to add the OWNER, but since all the other functions were doing the same, I think it's the way to do it. * Some improvements on managing the string splits, there's really useful functions for bitmapsets and lists so I use them to decide if we were in the first element or not. * I decided to use the cache instead of opening the relation with a shared lock, I hope it was the right decision since it didn't make sense to me to have a lock for a DDL. * I took all the comments and check the grammar * Even more tests were added since many corner cases were not detected in the first version, the regress tests helped a lot on finding corner cases * Added the EXCEPT clause that was added after the first version. Thank you for your reviews! --=20 Jonathan Gonzalez V.=20 EDB: https://www.enterprisedb.com --=-UY2ZU6S1z5xo4pEemmFW Content-Disposition: attachment; filename*0=v2-0001-Introduce-a-new-function-pg_get_publication_ddl-t.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v2-0001-Introduce-a-new-function-pg_get_publication_ddl-t.patch"; charset="ISO-8859-1" RnJvbSA2MjZmMTU5MTU4MjBkYTEwNTNjODlmNTQ2Y2FmNGM1YWUzNDE5YjBkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSm9uYXRoYW4gR29uemFsZXogVi4iIDxqb25hdGhhbi5hYmRp ZWxAZ21haWwuY29tPgpEYXRlOiBTdW4sIDUgT2N0IDIwMjUgMTg6MTE6NTYgKzAyMDAKU3ViamVj dDogW1BBVENIIHYyIDEvMV0gSW50cm9kdWNlIGEgbmV3IGZ1bmN0aW9uIHBnX2dldF9wdWJsaWNh dGlvbl9kZGwoKSB0aGF0CiByZXR1cm5zIHRoZSBDUkVBVEUgZGRsIHN0YXRlbWVudCBmb3IgYSBn aXZlbiBQVUJMSUNBVElPTi4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3Bs YWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClRoZSBm dW5jdGlvbiBhY2NlcHRzIGEgcHVibGljYXRpb24gbmFtZSBvciBPSUQgaW5kaXN0aW5jdGl2ZWx5 LApwcm92aWRpbmcgYW4gZWFzeSB3YXkgdG8gY2FsbCB0aGUgZnVuY3Rpb24gYXMgYSB1c2VyIGZy b20KaW5zaWRlIHRoZSBQb3N0Z3JlcyBjb2RlLCBvciBhbnkgU1FMIHN0YXRlbWVudC4KCkNvbXBy ZWhlbnNpdmUgcmVncmVzc2lvbiB0ZXN0cyBhcmUgaW5jbHVkZWQgY292ZXJpbmcgdmFyaW91cwpw b3NzaWJsZSBzaXR1YXRpb25zIGZvciBhIGdpdmVuIHB1YmxpY2F0aW9uLgoKUmV2aWV3ZWQtYnk6 IEjDvHNleWluIERlbWlyIDxodXNleWluLmQzckBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBDYXJ5 IEh1YW5nIDxjYXJ5Lmh1YW5nQGhpZ2hnby5jYT4KUmV2aWV3ZWQtYnk6IFBldGVyIFNtaXRoIDxz bWl0aHBiMjI1MEBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBNYW4gWmVuZyA8emVuZ21hbkBoYWxv ZGJ0ZWNoLmNvbT4KU2lnbmVkLW9mZi1ieTogSm9uYXRoYW4gR29uemFsZXogVi4gPGpvbmF0aGFu LmFiZGllbEBnbWFpbC5jb20+Ci0tLQogZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy1pbmZvLnNnbWwg ICAgICAgICAgICAgIHwgIDM1ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9kZGx1dGlscy5jICAg ICAgICAgICAgICB8IDM4MyArKysrKysrKystCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2Mu ZGF0ICAgICAgICAgICAgICAgfCAgMTYgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJs aWNhdGlvbl9kZGwub3V0IHwgNjcxICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVz cy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICA1ICstCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9wdWJsaWNhdGlvbl9kZGwuc3FsICAgICAgfCAyNDggKysrKysrKwogNiBmaWxlcyBjaGFu Z2VkLCAxMzU2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbl9kZGwub3V0CiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb25fZGRsLnNxbAoKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtaW5mby5zZ21sIGIvZG9jL3NyYy9zZ21s L2Z1bmMvZnVuYy1pbmZvLnNnbWwKaW5kZXggMDBmNjRmNTBjZWIuLjcwNWJmMzJhMTdmIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLWluZm8uc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvZnVuYy9mdW5jLWluZm8uc2dtbApAQCAtMzk2MSw2ICszOTYxLDQxIEBAIGFjbCAgICAgIHwg e3Bvc3RncmVzPWFyd2REeHRtL3Bvc3RncmVzLGZvbz1yL3Bvc3RncmVzfQogICAgICAgICA8bGl0 ZXJhbD5UQUJMRVNQQUNFPC9saXRlcmFsPi4KICAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAg IDwvcm93PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJtPgorICAg ICAgICAgPHByaW1hcnk+cGdfZ2V0X3B1YmxpY2F0aW9uX2RkbDwvcHJpbWFyeT4KKyAgICAgICAg PC9pbmRleHRlcm0+CisgICAgICAgIDxmdW5jdGlvbj5wZ19nZXRfcHVibGljYXRpb25fZGRsPC9m dW5jdGlvbj4KKyAgICAgICAgKCA8cGFyYW1ldGVyPnB1YmxpY2F0aW9uPC9wYXJhbWV0ZXI+IDx0 eXBlPm9pZDwvdHlwZT4KKyAgICAgICAgPG9wdGlvbmFsPiwgPGxpdGVyYWw+VkFSSUFESUM8L2xp dGVyYWw+IDxwYXJhbWV0ZXI+b3B0aW9uczwvcGFyYW1ldGVyPgorICAgICAgICA8dHlwZT50ZXh0 PC90eXBlPiA8L29wdGlvbmFsPiApCisgICAgICAgIDxyZXR1cm52YWx1ZT5zZXRvZiB0ZXh0PC9y ZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmEgcm9sZT0iZnVuY19zaWdu YXR1cmUiPgorICAgICAgICA8ZnVuY3Rpb24+cGdfZ2V0X3B1YmxpY2F0aW9uX2RkbDwvZnVuY3Rp b24+CisgICAgICAgICggPHBhcmFtZXRlcj5wdWJsaWNhdGlvbjwvcGFyYW1ldGVyPiA8dHlwZT50 ZXh0PC90eXBlPgorICAgICAgICA8b3B0aW9uYWw+LCA8bGl0ZXJhbD5WQVJJQURJQzwvbGl0ZXJh bD4gPHBhcmFtZXRlcj5vcHRpb25zPC9wYXJhbWV0ZXI+CisgICAgICAgIDx0eXBlPnRleHQ8L3R5 cGU+IDwvb3B0aW9uYWw+ICkKKyAgICAgICAgPHJldHVybnZhbHVlPnNldG9mIHRleHQ8L3JldHVy bnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgUmVjb25zdHJ1 Y3RzIHRoZSA8Y29tbWFuZD5DUkVBVEUgUFVCTElDQVRJT048L2NvbW1hbmQ+IHN0YXRlbWVudCBm b3IKKyAgICAgICAgdGhlIHNwZWNpZmllZCBwdWJsaWNhdGlvbiAoYnkgT0lEIG9yIG5hbWUpLCBm b2xsb3dlZCBieSBhbgorICAgICAgICA8Y29tbWFuZD5BTFRFUiBQVUJMSUNBVElPTiAuLi4gT1dO RVIgVE88L2NvbW1hbmQ+IHN0YXRlbWVudCAodGhlCisgICAgICAgIDxjb21tYW5kPkNSRUFURSBQ VUJMSUNBVElPTjwvY29tbWFuZD4gZ3JhbW1hciBoYXMgbm8KKyAgICAgICAgPGxpdGVyYWw+T1dO RVI8L2xpdGVyYWw+IGNsYXVzZSkuICBFYWNoIHN0YXRlbWVudCBpcyByZXR1cm5lZCBhcyBhCisg ICAgICAgIHNlcGFyYXRlIHJvdy4gIEFuIGVycm9yIGlzIHJhaXNlZCBpZiBubyBwdWJsaWNhdGlv biB3aXRoIHRoZSBzdXBwbGllZAorICAgICAgICBPSUQgb3IgbmFtZSBleGlzdHMuICBXaGVuIHRo ZSBwdWJsaWNhdGlvbiB3YXMgY3JlYXRlZCB3aXRoCisgICAgICAgIDxsaXRlcmFsPkZPUiBBTEwg VEFCTEVTLCBBTEwgU0VRVUVOQ0VTPC9saXRlcmFsPiwgdGhlIGVtaXR0ZWQKKyAgICAgICAgc3Rh dGVtZW50IGFsd2F5cyBsaXN0cyA8bGl0ZXJhbD5BTEwgVEFCTEVTPC9saXRlcmFsPiBiZWZvcmUK KyAgICAgICAgPGxpdGVyYWw+QUxMIFNFUVVFTkNFUzwvbGl0ZXJhbD4gcmVnYXJkbGVzcyBvZiB0 aGUgb3JpZ2luYWwgb3JkZXIuCisgICAgICAgIFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUgc3Vw cG9ydGVkOgorICAgICAgICA8bGl0ZXJhbD5wcmV0dHk8L2xpdGVyYWw+IChib29sZWFuKSBmb3Ig Zm9ybWF0dGVkIG91dHB1dCBhbmQKKyAgICAgICAgPGxpdGVyYWw+b3duZXI8L2xpdGVyYWw+IChi b29sZWFuKSB0byBpbmNsdWRlCisgICAgICAgIDxsaXRlcmFsPk9XTkVSPC9saXRlcmFsPi4KKyAg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgogICAgICA8L3Rib2R5PgogICAgIDwv dGdyb3VwPgogICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9k ZGx1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RkbHV0aWxzLmMKaW5kZXggZjMyZmNk NDUzZWYuLjM5Y2RjZGY1YTYzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGRs dXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGRsdXRpbHMuYwpAQCAtMjAsMTIg KzIwLDE0IEBACiAKICNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKICNpbmNsdWRlICJhY2Nlc3Mv aHR1cF9kZXRhaWxzLmgiCisjaW5jbHVkZSAiYWNjZXNzL3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAi YWNjZXNzL3RhYmxlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoX21lbWJlcnMuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX2F1dGhpZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0 aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfZGJfcm9sZV9zZXR0aW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlv bl9yZWwuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJj b21tYW5kcy90YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAiY29tbW9uL3JlbHBhdGguaCIKQEAgLTg2 LDcgKzg4LDEwIEBAIHN0YXRpYyBMaXN0ICpwZ19nZXRfdGFibGVzcGFjZV9kZGxfaW50ZXJuYWwo T2lkIHRzaWQsIGJvb2wgcHJldHR5LCBib29sIG5vX293bmVyCiBzdGF0aWMgRGF0dW0gcGdfZ2V0 X3RhYmxlc3BhY2VfZGRsX3NyZihGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgT2lkIHRzaWQsIGJv b2wgaXNudWxsKTsKIHN0YXRpYyBMaXN0ICpwZ19nZXRfZGF0YWJhc2VfZGRsX2ludGVybmFsKE9p ZCBkYmlkLCBib29sIHByZXR0eSwKIAkJCQkJCQkJCQkgIGJvb2wgbm9fb3duZXIsIGJvb2wgbm9f dGFibGVzcGFjZSk7Ci0KK3N0YXRpYyBEYXR1bSBwZ19nZXRfcHVibGljYXRpb25fZGRsX3NyZihG dW5jdGlvbkNhbGxJbmZvIGZjaW5mbywKKwkJCQkJCQkJCQlPaWQgcHVib2lkLCBib29sIGlzbnVs bCk7CitzdGF0aWMgTGlzdCAqcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbF9pbnRlcm5hbChPaWQgcHVi b2lkLCBib29sIHByZXR0eSwKKwkJCQkJCQkJCQkJIGJvb2wgbm9fb3duZXIpOwogCiAvKgogICog cGFyc2VfZGRsX29wdGlvbnMKQEAgLTExODUsMyArMTE5MCwzNzkgQEAgcGdfZ2V0X2RhdGFiYXNl X2RkbChQR19GVU5DVElPTl9BUkdTKQogCQlTUkZfUkVUVVJOX0RPTkUoZnVuY2N0eCk7CiAJfQog fQorCisvKgorICogcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbF9zcmYgLSBjb21tb24gU1JGIGxvZ2lj IGZvciBwdWJsaWNhdGlvbiBEREwKKyAqLworc3RhdGljIERhdHVtCitwZ19nZXRfcHVibGljYXRp b25fZGRsX3NyZihGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgT2lkIHB1Ym9pZCwgYm9vbCBpc251 bGwpCit7CisJRnVuY0NhbGxDb250ZXh0ICpmdW5jY3R4OworCUxpc3QJICAgKnN0YXRlbWVudHM7 CisKKwlpZiAoU1JGX0lTX0ZJUlNUQ0FMTCgpKQorCXsKKwkJTWVtb3J5Q29udGV4dCBvbGRjb250 ZXh0OworCQlEZGxPcHRpb24Jb3B0c1tdID0geworCQkJeyJwcmV0dHkiLCBERExfT1BUX0JPT0x9 LAorCQkJeyJvd25lciIsIERETF9PUFRfQk9PTH0sCisJCX07CisKKwkJZnVuY2N0eCA9IFNSRl9G SVJTVENBTExfSU5JVCgpOworCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGZ1 bmNjdHgtPm11bHRpX2NhbGxfbWVtb3J5X2N0eCk7CisKKwkJaWYgKGlzbnVsbCkKKwkJeworCQkJ TWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworCQkJU1JGX1JFVFVSTl9ET05FKGZ1 bmNjdHgpOworCQl9CisKKwkJcGFyc2VfZGRsX29wdGlvbnMoZmNpbmZvLCAxLCBvcHRzLCBsZW5n dGhvZihvcHRzKSk7CisKKwkJc3RhdGVtZW50cyA9IHBnX2dldF9wdWJsaWNhdGlvbl9kZGxfaW50 ZXJuYWwocHVib2lkLAorCQkJCQkJCQkJCQkJCSBvcHRzWzBdLmlzc2V0ICYmIG9wdHNbMF0uYm9v bHZhbCwKKwkJCQkJCQkJCQkJCQkgb3B0c1sxXS5pc3NldCAmJiAhb3B0c1sxXS5ib29sdmFsKTsK KworCQlmdW5jY3R4LT51c2VyX2ZjdHggPSBzdGF0ZW1lbnRzOworCQlmdW5jY3R4LT5tYXhfY2Fs bHMgPSBsaXN0X2xlbmd0aChzdGF0ZW1lbnRzKTsKKworCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8o b2xkY29udGV4dCk7CisJfQorCisJZnVuY2N0eCA9IFNSRl9QRVJDQUxMX1NFVFVQKCk7CisJc3Rh dGVtZW50cyA9IChMaXN0ICopIGZ1bmNjdHgtPnVzZXJfZmN0eDsKKworCWlmIChmdW5jY3R4LT5j YWxsX2NudHIgPCBmdW5jY3R4LT5tYXhfY2FsbHMpCisJeworCQljaGFyCSAgICpzdG10OworCisJ CXN0bXQgPSAoY2hhciAqKSBsaXN0X250aChzdGF0ZW1lbnRzLCBmdW5jY3R4LT5jYWxsX2NudHIp OworCisJCVNSRl9SRVRVUk5fTkVYVChmdW5jY3R4LCBDU3RyaW5nR2V0VGV4dERhdHVtKHN0bXQp KTsKKwl9CisJZWxzZQorCXsKKwkJbGlzdF9mcmVlX2RlZXAoc3RhdGVtZW50cyk7CisJCVNSRl9S RVRVUk5fRE9ORShmdW5jY3R4KTsKKwl9Cit9CisKKy8qCisgKiBwZ19nZXRfcHVibGljYXRpb25f ZGRsX29pZAorICoJCVJldHVybiBEREwgdG8gcmVjcmVhdGUgYSBwdWJsaWNhdGlvbiwgdGFraW5n IE9JRC4KKyAqLworRGF0dW0KK3BnX2dldF9wdWJsaWNhdGlvbl9kZGxfb2lkKFBHX0ZVTkNUSU9O X0FSR1MpCit7CisJT2lkCQkJcHVib2lkID0gSW52YWxpZE9pZDsKKwlib29sCQlpc251bGw7CisK Kwlpc251bGwgPSBQR19BUkdJU05VTEwoMCk7CisJaWYgKCFpc251bGwpCisJCXB1Ym9pZCA9IFBH X0dFVEFSR19PSUQoMCk7CisKKwlyZXR1cm4gcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbF9zcmYoZmNp bmZvLCBwdWJvaWQsIGlzbnVsbCk7Cit9CisKKy8qCisgKiBwZ19nZXRfcHVibGljYXRpb25fZGRs X25hbWUKKyAqCQlSZXR1cm4gRERMIHRvIHJlY3JlYXRlIGEgcHVibGljYXRpb24sIHRha2luZyBu YW1lLgorICovCitEYXR1bQorcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbF9uYW1lKFBHX0ZVTkNUSU9O X0FSR1MpCit7CisJT2lkCQkJcHVib2lkID0gSW52YWxpZE9pZDsKKwlib29sCQlpc251bGw7CisK Kwlpc251bGwgPSBQR19BUkdJU05VTEwoMCk7CisJaWYgKCFpc251bGwpCisJeworCQljaGFyCSAg ICpwdWJuYW1lID0gdGV4dF90b19jc3RyaW5nKFBHX0dFVEFSR19URVhUX1BQKDApKTsKKworCQlw dWJvaWQgPSBnZXRfcHVibGljYXRpb25fb2lkKHB1Ym5hbWUsIGZhbHNlKTsKKwkJcGZyZWUocHVi bmFtZSk7CisJfQorCisJcmV0dXJuIHBnX2dldF9wdWJsaWNhdGlvbl9kZGxfc3JmKGZjaW5mbywg cHVib2lkLCBpc251bGwpOworfQorCisvKgorICogcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbF9pbnRl cm5hbAorICoJCUNvbW1vbiBjb2RlIGZvciBwZ19nZXRfcHVibGljYXRpb25fZGRsX29pZCBhbmQK KyAqCQlwZ19nZXRfcHVibGljYXRpb25fZGRsX25hbWUuCisgKgorICogUmV0dXJucyBhIExpc3Qg b2YgcGFsbG9jJ2Qgc3RyaW5ncy4gIFRoZSBmaXJzdCBlbGVtZW50IGlzIHRoZQorICogQ1JFQVRF IFBVQkxJQ0FUSU9OIHN0YXRlbWVudDsgaWYgbm9fb3duZXIgaXMgZmFsc2UgYSBzZWNvbmQgZWxl bWVudAorICogY2FycmllcyBhbiBBTFRFUiBQVUJMSUNBVElPTiAuLi4gT1dORVIgVE8gc3RhdGVt ZW50ICh0aGUgQ1JFQVRFCisgKiBQVUJMSUNBVElPTiBncmFtbWFyIGhhcyBubyBPV05FUiBjbGF1 c2UsIHNvIG93bmVyc2hpcCBtdXN0IGJlIGFwcGxpZWQKKyAqIGFzIGEgZm9sbG93LW9uIHN0YXRl bWVudCkuCisgKi8KK3N0YXRpYyBMaXN0ICoKK3BnX2dldF9wdWJsaWNhdGlvbl9kZGxfaW50ZXJu YWwoT2lkIHB1Ym9pZCwgYm9vbCBwcmV0dHksIGJvb2wgbm9fb3duZXIpCit7CisJUHVibGljYXRp b24gKnB1YjsKKwlTdHJpbmdJbmZvCWJ1ZjsKKwlMaXN0CSAgICpzdGF0ZW1lbnRzID0gTklMOwor CUxpc3QJICAgKnB1Yl9pbmNsX3JlbGlkcyA9IE5JTDsKKwlMaXN0CSAgICpwdWJfZXhjbF9yZWxp ZHMgPSBOSUw7CisJTGlzdAkgICAqcHViX3NjaGVtYXMgPSBOSUw7CisJYm9vbAkJZmlyc3RfcGVy bSA9IHRydWU7CisKKwlpZiAoIVNlYXJjaFN5c0NhY2hlRXhpc3RzMShQVUJMSUNBVElPTk9JRCwg T2JqZWN0SWRHZXREYXR1bShwdWJvaWQpKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInB1YmxpY2F0aW9uIHdp dGggT0lEICV1IGRvZXMgbm90IGV4aXN0IiwgcHVib2lkKSkpOworCisJcHViID0gR2V0UHVibGlj YXRpb24ocHVib2lkKTsKKworCWJ1ZiA9IG1ha2VTdHJpbmdJbmZvKCk7CisKKwlhcHBlbmRTdHJp bmdJbmZvKGJ1ZiwgIkNSRUFURSBQVUJMSUNBVElPTiAlcyIsIHF1b3RlX2lkZW50aWZpZXIocHVi LT5uYW1lKSk7CisKKwkvKgorCSAqIEhhdmluZyBhbGwgdGFibGVzIG9yIGFsbCBzZXF1ZW5jZXMg bWVhbnMgdGhhdCB0aGVyZSBhcmUgbm8gcGVyLXRhYmxlCisJICogcHVibGljYXRpb25zCisJICov CisJaWYgKHB1Yi0+YWxsdGFibGVzIHx8IHB1Yi0+YWxsc2VxdWVuY2VzKQorCXsKKwkJYXBwZW5k X2RkbF9vcHRpb24oYnVmLCBwcmV0dHksIDQsICJGT1IgIik7CisKKwkJaWYgKHB1Yi0+YWxsdGFi bGVzKQorCQl7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIkFMTCBUQUJMRVMiKTsK KwkJCXB1Yl9leGNsX3JlbGlkcyA9IEdldEV4Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMocHViLT5v aWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisJCX0KKwkJaWYgKHB1Yi0+YWxsc2VxdWVuY2Vz KQorCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsCisJCQkJCQkJICIlc0FMTCBTRVFVRU5DRVMiLAor CQkJCQkJCSBwdWItPmFsbHRhYmxlcyA/ICIsICIgOiAiIik7CisJfQorCWVsc2UKKwl7CisJCXB1 Yl9pbmNsX3JlbGlkcyA9IEdldEluY2x1ZGVkUHVibGljYXRpb25SZWxhdGlvbnMocHViLT5vaWQs IFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisJCXB1Yl9zY2hlbWFzID0gR2V0UHVibGljYXRpb25T Y2hlbWFzKHB1Yi0+b2lkKTsKKwl9CisKKwlpZiAocHViX2luY2xfcmVsaWRzICE9IE5JTCkKKwl7 CisJCUxpc3RDZWxsICAgKnB1Yl9jZWxsOworCQljaGFyCSAgICpzY2hlbWFuYW1lID0gTlVMTDsK KwkJY2hhcgkgICAqdGFibGVuYW1lOworCisJCWFwcGVuZF9kZGxfb3B0aW9uKGJ1ZiwgcHJldHR5 LCA0LCAiRk9SIFRBQkxFICIpOworCisJCS8qCisJCSAqIFB1YmxpY2F0aW9uIGNhbiBoYXZlIHRh YmxlIHJlbGF0aW9ucworCQkgKi8KKwkJZm9yZWFjaChwdWJfY2VsbCwgcHViX2luY2xfcmVsaWRz KQorCQl7CisJCQlIZWFwVHVwbGUJcHVidHVwbGUgPSBOVUxMOworCQkJSGVhcFR1cGxlCXJlbHR1 cDsKKwkJCUZvcm1fcGdfY2xhc3MgcmVsZm9ybTsKKwkJCURhdHVtCQljb2x1bW5zLAorCQkJCQkJ Y29uZGl0aW9uczsKKwkJCU9pZAkJCXJlbGlkID0gcHViX2NlbGwtPm9pZF92YWx1ZTsKKwkJCWJv b2wJCWNvbHNfbnVsbHMsCisJCQkJCQljb25kaXRpb25fbnVsbHM7CisKKwkJCXJlbHR1cCA9IFNl YXJjaFN5c0NhY2hlMShSRUxPSUQsIE9iamVjdElkR2V0RGF0dW0ocmVsaWQpKTsKKwkJCWlmICgh SGVhcFR1cGxlSXNWYWxpZChyZWx0dXApKQorCQkJCWVsb2coRVJST1IsCisJCQkJCSAiY2FjaGUg bG9va3VwIGZhaWxlZCBmb3IgcmVsYXRpb24gJXUiLAorCQkJCQkgcmVsaWQpOworCisJCQlyZWxm b3JtID0gKEZvcm1fcGdfY2xhc3MpIEdFVFNUUlVDVChyZWx0dXApOworCQkJdGFibGVuYW1lID0g TmFtZVN0cihyZWxmb3JtLT5yZWxuYW1lKTsKKwkJCXNjaGVtYW5hbWUgPSBnZXRfbmFtZXNwYWNl X25hbWUocmVsZm9ybS0+cmVsbmFtZXNwYWNlKTsKKworCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYs ICIlcyVzIiwKKwkJCQkJCQkgZm9yZWFjaF9jdXJyZW50X2luZGV4KHB1Yl9jZWxsKSA+IDAgPyAi LCAiIDogIiIsCisJCQkJCQkJIHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKHNjaGVtYW5hbWUs IHRhYmxlbmFtZSkpOworCisJCQlwZnJlZShzY2hlbWFuYW1lKTsKKworCQkJcHVidHVwbGUgPSBT ZWFyY2hTeXNDYWNoZTIoUFVCTElDQVRJT05SRUxNQVAsIE9iamVjdElkR2V0RGF0dW0ocmVsaWQp LAorCQkJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShwdWItPm9pZCkpOworCisJCQlpZiAoIUhl YXBUdXBsZUlzVmFsaWQocHVidHVwbGUpKQorCQkJCWVsb2coRVJST1IsCisJCQkJCSAiY2FjaGUg bG9va3VwIGZhaWxlZCBmb3IgcHVibGljYXRpb24gcmVsYXRpb24gJXUgaW4gcHVibGljYXRpb24g JXUiLAorCQkJCQkgcmVsaWQsIHB1Yi0+b2lkKTsKKworCQkJY29sdW1ucyA9IFN5c0NhY2hlR2V0 QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcHVidHVwbGUsCisJCQkJCQkJCQkgIEFudW1fcGdfcHVi bGljYXRpb25fcmVsX3ByYXR0cnMsCisJCQkJCQkJCQkgICZjb2xzX251bGxzKTsKKworCQkJY29u ZGl0aW9ucyA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcHVidHVwbGUsCisJ CQkJCQkJCQkJIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3BycXVhbCwKKwkJCQkJCQkJCQkgJmNv bmRpdGlvbl9udWxscyk7CisKKwkJCS8qIElmIG5vbi1udWxsLCB3ZSBoYXZlIGEgbGlzdCBvZiBj b2x1bW5zIHRvIHB1Ymxpc2ggKi8KKwkJCWlmICghY29sc19udWxscykKKwkJCXsKKwkJCQlCaXRt YXBzZXQgICphdHRtYXA7CisJCQkJaW50CQkJYXR0bnVtID0gLTE7CisKKwkJCQlhdHRtYXAgPSBw dWJfY29sbGlzdF90b19iaXRtYXBzZXQoTlVMTCwgY29sdW1ucywgTlVMTCk7CisKKwkJCQlhcHBl bmRTdHJpbmdJbmZvQ2hhcihidWYsICcoJyk7CisJCQkJd2hpbGUgKChhdHRudW0gPSBibXNfbmV4 dF9tZW1iZXIoYXR0bWFwLCBhdHRudW0pKSA+PSAwKQorCQkJCXsKKwkJCQkJYXBwZW5kU3RyaW5n SW5mbyhidWYsICIlcyVzIiwKKwkJCQkJCQkJCSBibXNfbWVtYmVyX2luZGV4KGF0dG1hcCwgYXR0 bnVtKSA/ICIsICIgOiAiIiwKKwkJCQkJCQkJCSBxdW90ZV9pZGVudGlmaWVyKGdldF9hdHRuYW1l KHJlbGlkLCBhdHRudW0sIHRydWUpKSk7CisJCQkJfQorCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFy KGJ1ZiwgJyknKTsKKworCQkJCWJtc19mcmVlKGF0dG1hcCk7CisJCQl9CisKKwkJCS8qCisJCQkg KiBJZiB0aGVyZSBpcyBhIGNvbmRpdGlvbiBpdCBnb2VzIGFmdGVyIHRoZSBjb2x1bW5zLiBXZSBj YW4gaGF2ZQorCQkJICogY29uZGl0aW9ucyB3aXRob3V0IGNvbHVtbnMgYXMgd2VsbC4KKwkJCSAq LworCQkJaWYgKCFjb25kaXRpb25fbnVsbHMpCisJCQl7CisJCQkJTm9kZQkgICAqbm9kZTsKKwkJ CQlMaXN0CSAgICpjb250ZXh0OworCQkJCWNoYXIJICAgKnN0cjsKKworCQkJCW5vZGUgPSBzdHJp bmdUb05vZGUoVGV4dERhdHVtR2V0Q1N0cmluZyhjb25kaXRpb25zKSk7CisJCQkJY29udGV4dCA9 IGRlcGFyc2VfY29udGV4dF9mb3IodGFibGVuYW1lLCByZWxpZCk7CisJCQkJc3RyID0gZGVwYXJz ZV9leHByZXNzaW9uKG5vZGUsIGNvbnRleHQsIGZhbHNlLCBmYWxzZSk7CisJCQkJYXBwZW5kU3Ry aW5nSW5mbyhidWYsICIgV0hFUkUgJXMiLCBzdHIpOworCQkJfQorCisJCQlSZWxlYXNlU3lzQ2Fj aGUocHVidHVwbGUpOworCQkJUmVsZWFzZVN5c0NhY2hlKHJlbHR1cCk7CisJCX0KKwl9CisKKwkv KiBJZiB3ZSBoYXZlIHNjaGVtYXMsIHRoZXkgd2lsbCBnbyByaWdodCBiZWZvcmUgdGhlIFdJVEgg Ki8KKwlpZiAocHViX3NjaGVtYXMgIT0gTklMKQorCXsKKwkJTGlzdENlbGwgICAqc2NoZW1hX2Nl bGw7CisKKwkJLyoKKwkJICogU2NoZW1hcyBjYW4gYmUgcHJlY2VkZWQgYnkgYSBsaXN0IG9mIHRh Ymxlcy4gIFdoZW4gdGhleSBhcmUsIHRoZQorCQkgKiAiVEFCTEVTIElOIFNDSEVNQSIgc3RheXMg aW5saW5lIGFzIGEgY29udGludWF0aW9uIG9mIHRoZSBleGlzdGluZworCQkgKiBGT1IgY2xhdXNl OyBvdGhlcndpc2UgaXQgc3RhcnRzIHRoZSBGT1IgY2xhdXNlIG9uIGl0cyBvd24gbGluZSBpbgor CQkgKiBwcmV0dHkgbW9kZS4KKwkJICovCisJCWlmIChwdWJfaW5jbF9yZWxpZHMgPT0gTklMKQor CQkJYXBwZW5kX2RkbF9vcHRpb24oYnVmLCBwcmV0dHksIDQsICJGT1IgVEFCTEVTIElOIFNDSEVN QSIpOworCQllbHNlCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIiwgVEFCTEVTIElO IFNDSEVNQSIpOworCisJCWZvcmVhY2goc2NoZW1hX2NlbGwsIHB1Yl9zY2hlbWFzKQorCQl7CisJ CQljaGFyCSAgICpuc3BuYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lKHNjaGVtYV9jZWxsLT5vaWRf dmFsdWUpOworCisJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiVzICVzIiwKKwkJCQkJCQkgZm9y ZWFjaF9jdXJyZW50X2luZGV4KHNjaGVtYV9jZWxsKSA+IDAgPyAiLCIgOiAiIiwKKwkJCQkJCQkg cXVvdGVfaWRlbnRpZmllcihuc3BuYW1lKSk7CisJCQlwZnJlZShuc3BuYW1lKTsKKwkJfQorCX0K KworCWlmIChwdWJfZXhjbF9yZWxpZHMgIT0gTklMKQorCXsKKwkJTGlzdENlbGwgICAqZXhjbF9j ZWxsOworCQljaGFyCSAgICpzY2hlbWFuYW1lID0gTlVMTDsKKworCQlhcHBlbmRTdHJpbmdJbmZv U3RyaW5nKGJ1ZiwgIiBFWENFUFQgKFRBQkxFICIpOworCisJCWZvcmVhY2goZXhjbF9jZWxsLCBw dWJfZXhjbF9yZWxpZHMpCisJCXsKKwkJCUhlYXBUdXBsZQl0cCA9IFNlYXJjaFN5c0NhY2hlMShS RUxPSUQsIE9iamVjdElkR2V0RGF0dW0oZXhjbF9jZWxsLT5vaWRfdmFsdWUpKTsKKwkJCUZvcm1f cGdfY2xhc3MgcmVsdHVwOworCisJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHApKQorCQkJCWVs b2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciByZWxhdGlvbiAldSIsIGV4Y2xfY2Vs bC0+b2lkX3ZhbHVlKTsKKworCQkJcmVsdHVwID0gKEZvcm1fcGdfY2xhc3MpIEdFVFNUUlVDVCh0 cCk7CisJCQlzY2hlbWFuYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lKHJlbHR1cC0+cmVsbmFtZXNw YWNlKTsKKworCQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIlcyVzIiwKKwkJCQkJCQkgZm9yZWFj aF9jdXJyZW50X2luZGV4KGV4Y2xfY2VsbCkgPiAwID8gIiwgIiA6ICIiLAorCQkJCQkJCSBxdW90 ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihzY2hlbWFuYW1lLCBOYW1lU3RyKHJlbHR1cC0+cmVsbmFt ZSkpKTsKKworCQkJcGZyZWUoc2NoZW1hbmFtZSk7CisJCQlSZWxlYXNlU3lzQ2FjaGUodHApOwor CQl9CisKKwkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnKScpOworCX0KKworCS8qIEFsd2F5 cyBhZGQgdGhlIFdJVEggb3B0aW9ucyAqLworCWFwcGVuZF9kZGxfb3B0aW9uKGJ1ZiwgcHJldHR5 LCA0LCAiV0lUSCAoIik7CisKKwkvKiBQdWJsaXNoIHN0cmluZyAqLworCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoYnVmLCAicHVibGlzaD0nIik7CisKKwkvKgorCSAqIFdlIG5lZWQgdG8ga25vdyBp ZiB3ZSdyZSB0aGUgc2Vjb25kIHBlcm1pc3Npb24gYWRkZWQgdG8gcHJlZml4IHdpdGggYQorCSAq ICIsICIgc3RyaW5nCisJICovCisJaWYgKHB1Yi0+cHViYWN0aW9ucy5wdWJpbnNlcnQpCisJewor CQkvKgorCQkgKiBCeSBwcmVjZWRlbmNlIHdlIGtub3cgdGhhdCB0aGUgaW5zZXJ0IHdpbGwgYWx3 YXlzIGJlIGZpcnN0LCBubyBuZWVkCisJCSAqIHRvIGNoZWNrIHByZXZpb3VzIHZhbHVlcworCQkg Ki8KKwkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJpbnNlcnQiKTsKKwkJZmlyc3RfcGVy bSA9IGZhbHNlOworCX0KKworCWlmIChwdWItPnB1YmFjdGlvbnMucHVidXBkYXRlKQorCXsKKwkJ YXBwZW5kU3RyaW5nSW5mbyhidWYsICIlc3VwZGF0ZSIsIGZpcnN0X3Blcm0gPyAiIiA6ICIsICIp OworCQlmaXJzdF9wZXJtID0gZmFsc2U7CisJfQorCWlmIChwdWItPnB1YmFjdGlvbnMucHViZGVs ZXRlKQorCXsKKwkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIlc2RlbGV0ZSIsIGZpcnN0X3Blcm0g PyAiIiA6ICIsICIpOworCQlmaXJzdF9wZXJtID0gZmFsc2U7CisJfQorCisJaWYgKHB1Yi0+cHVi YWN0aW9ucy5wdWJ0cnVuY2F0ZSkKKwl7CisJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiJXN0cnVu Y2F0ZSIsIGZpcnN0X3Blcm0gPyAiIiA6ICIsICIpOworCX0KKworCWFwcGVuZFN0cmluZ0luZm9T dHJpbmcoYnVmLCAiJywgIik7CisKKwkvKiBwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zIHN0cmlu ZyAqLworCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAicHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucz0n JXMnLCAiLAorCQkJCQkgcHViLT5wdWJnZW5jb2xzX3R5cGUgPT0gUFVCTElTSF9HRU5DT0xTX05P TkUgPyAibm9uZSIgOiAic3RvcmVkIik7CisKKwkvKiBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9v dCB2YWx1ZSAqLworCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAicHVibGlzaF92aWFfcGFydGl0aW9u X3Jvb3Q9JyVzJykiLAorCQkJCQkgcHViLT5wdWJ2aWFyb290ID8gInRydWUiIDogImZhbHNlIik7 CisKKwlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICc7Jyk7CisJc3RhdGVtZW50cyA9IGxhcHBl bmQoc3RhdGVtZW50cywgcHN0cmR1cChidWYtPmRhdGEpKTsKKworCS8qIE9XTkVSICovCisJaWYg KCFub19vd25lcikKKwl7CisJCUhlYXBUdXBsZQl0dXA7CisJCUZvcm1fcGdfcHVibGljYXRpb24g cHViZm9ybTsKKwkJY2hhcgkgICAqb3duZXI7CisKKwkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFBV QkxJQ0FUSU9OT0lELCBPYmplY3RJZEdldERhdHVtKHB1Ym9pZCkpOworCQlpZiAoIUhlYXBUdXBs ZUlzVmFsaWQodHVwKSkKKwkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBw dWJsaWNhdGlvbiAldSIsIHB1Ym9pZCk7CisJCXB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlv bikgR0VUU1RSVUNUKHR1cCk7CisJCW93bmVyID0gR2V0VXNlck5hbWVGcm9tSWQocHViZm9ybS0+ cHVib3duZXIsIGZhbHNlKTsKKwkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwkJcmVzZXRTdHJp bmdJbmZvKGJ1Zik7CisJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiQUxURVIgUFVCTElDQVRJT04g JXMgT1dORVIgVE8gJXM7IiwKKwkJCQkJCSBxdW90ZV9pZGVudGlmaWVyKHB1Yi0+bmFtZSksIHF1 b3RlX2lkZW50aWZpZXIob3duZXIpKTsKKwkJcGZyZWUob3duZXIpOworCQlzdGF0ZW1lbnRzID0g bGFwcGVuZChzdGF0ZW1lbnRzLCBwc3RyZHVwKGJ1Zi0+ZGF0YSkpOworCX0KKworCXJldHVybiBz dGF0ZW1lbnRzOworfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggYmUxNTdhNWZiZTkuLjI1 NzliNTMwZTI4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0Cisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTEyMzE3LDYgKzEyMzE3LDIy IEBACiAgIHByb25hbWUgPT4gJ3BnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlJywgcHJvdm9sYXRp bGUgPT4gJ3MnLAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlwZXMgPT4gJ3JlZ2Ns YXNzJywKICAgcHJvc3JjID0+ICdwZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZScgfSwKK3sgb2lk ID0+ICc2MTIyJywgZGVzY3IgPT4gJ2dldCBEREwgdG8gcmVjcmVhdGUgYSBwdWJsaWNhdGlvbics CisgIHByb25hbWUgPT4gJ3BnX2dldF9wdWJsaWNhdGlvbl9kZGwnLCBwcm92YXJpYWRpYyA9PiAn dGV4dCcsIHByb2lzc3RyaWN0ID0+ICdmJywKKyAgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXRz ZXQgPT4gJ3QnLCBwcm9yb3dzID0+ICcyJywgcHJvcmV0dHlwZSA9PiAndGV4dCcsCisgIHByb2Fy Z3R5cGVzID0+ICdvaWQgdGV4dCcsCisgIHByb2FyZ21vZGVzID0+ICd7aSx2fScsCisgIHByb2Fs bGFyZ3R5cGVzID0+ICd7b2lkLHRleHR9JywKKyAgcHJvbmFyZ2RlZmF1bHRzID0+ICcxJywgcHJv YXJnZGVmYXVsdHMgPT4gJ3tOVUxMfScsCisgIHByb3NyYyA9PiAncGdfZ2V0X3B1YmxpY2F0aW9u X2RkbF9vaWQnIH0sCit7IG9pZCA9PiAnNjEyMycsIGRlc2NyID0+ICdnZXQgRERMIHRvIHJlY3Jl YXRlIGEgcHVibGljYXRpb24nLAorICBwcm9uYW1lID0+ICdwZ19nZXRfcHVibGljYXRpb25fZGRs JywgcHJvdmFyaWFkaWMgPT4gJ3RleHQnLCBwcm9pc3N0cmljdCA9PiAnZicsCisgIHByb3ZvbGF0 aWxlID0+ICdzJywgcHJvcmV0c2V0ID0+ICd0JywgcHJvcm93cyA9PiAnMicsIHByb3JldHR5cGUg PT4gJ3RleHQnLAorICBwcm9hcmd0eXBlcyA9PiAndGV4dCB0ZXh0JywKKyAgcHJvYXJnbW9kZXMg PT4gJ3tpLHZ9JywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3t0ZXh0LHRleHR9JywKKyAgcHJvbmFy Z2RlZmF1bHRzID0+ICcxJywgcHJvYXJnZGVmYXVsdHMgPT4gJ3tOVUxMfScsCisgIHByb3NyYyA9 PiAncGdfZ2V0X3B1YmxpY2F0aW9uX2RkbF9uYW1lJyB9LAogCiAjIHJscwogeyBvaWQgPT4gJzMy OTgnLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbl9k ZGwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbl9kZGwub3V0Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZmNiNjU4MjIwNQotLS0gL2Rl di9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb25fZGRsLm91 dApAQCAtMCwwICsxLDY3MSBAQAorLS0KKy0tIFRlc3QgZm9yIERETCBzdGF0ZW1lbnQgZnJvbToK Ky0tIC0gcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbAorLS0KKy0tIHN1cHByZXNzIHdhcm5pbmcgdGhh dCBkZXBlbmRzIG9uIHdhbF9sZXZlbAorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1In OworLS0gUnVuIHRoZSBib2R5IHVuZGVyIGEgc3RhYmxlIHJvbGUgc28gdGhlIEFMVEVSIFBVQkxJ Q0FUSU9OIC4uLiBPV05FUiBUTworLS0gb3V0cHV0IGlzIGRldGVybWluaXN0aWMgYWNyb3NzIGVu dmlyb25tZW50cy4KK0NSRUFURSBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXIgTE9H SU4gU1VQRVJVU0VSOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiAncmVncmVzc19wdWJsaWNh dGlvbl9kZGxfdXNlcic7CistLSB0ZXN0IHdpdGggYSBub24tZXhpc3RpbmcgcHVibGljYXRpb24K K1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKCdub24tZXhpc3RpbmcnKTsKK0VSUk9SOiAg cHVibGljYXRpb24gIm5vbi1leGlzdGluZyIgZG9lcyBub3QgZXhpc3QKK1NFTEVDVCBwZ19nZXRf cHVibGljYXRpb25fZGRsKDA6Om9pZCk7CitFUlJPUjogIHB1YmxpY2F0aW9uIHdpdGggT0lEIDAg ZG9lcyBub3QgZXhpc3QKKy0tIGVtcHR5IHB1YmxpY2F0aW9uIGlzIHBvc3NpYmxlIGFuZCBhbGxv d2VkCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfMTsKK1NFTEVDVCBwZ19nZXRfcHVi bGljYXRpb25fZGRsKCd0ZXN0cHViX2RkbF8xJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfcHVibGljYXRp b25fZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfMSBXSVRIIChwdWJsaXNoPSdpbnNl cnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScsIHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9 J25vbmUnLCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdD0nZmFsc2UnKTsKKyBBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX2RkbF8xIE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3Vz ZXI7CisoMiByb3dzKQorCitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgoU0VMRUNUIG9p ZCBGUk9NIHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWU9J3Rlc3RwdWJfZGRsXzEnKSk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwZ19nZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9k ZGxfMSBXSVRIIChwdWJsaXNoPSdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScsIHB1 Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J25vbmUnLCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9v dD0nZmFsc2UnKTsKKyBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF8xIE9XTkVSIFRPIHJl Z3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXI7CisoMiByb3dzKQorCitTRUxFQ1QgcGdfZ2V0X3B1 YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxfMScsICdwcmV0dHknLCAndHJ1ZScpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9wdWJs aWNhdGlvbl9kZGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfMSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBXSVRIIChwdWJsaXNoPSdp bnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScsIHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVt bnM9J25vbmUnLCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdD0nZmFsc2UnKTsKKyBBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX2RkbF8xIE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fZGRs X3VzZXI7CisoMiByb3dzKQorCistLSBOVUxMIGlucHV0IHNob3VsZCBwcm9kdWNlIGFuIGVtcHR5 IHJlc3VsdCBzZXQKK1NFTEVDVCBjb3VudCgqKSA9IDAgQVMgaXNfbnVsbCBGUk9NIHBnX2dldF9w dWJsaWNhdGlvbl9kZGwoTlVMTDo6b2lkKTsKKyBpc19udWxsIAorLS0tLS0tLS0tCisgdAorKDEg cm93KQorCitTRUxFQ1QgY291bnQoKikgPSAwIEFTIGlzX251bGwgRlJPTSBwZ19nZXRfcHVibGlj YXRpb25fZGRsKE5VTEw6OnRleHQpOworIGlzX251bGwgCistLS0tLS0tLS0KKyB0CisoMSByb3cp CisKKy0tIGNyZWF0ZSBiYXNlIHRhYmxlIHRvIHRlc3QgYmFzaWMgdGFibGUgcHVibGljYXRpb24K K0NSRUFURSBUQUJMRSB0ZXN0cHViX2RkbF90YmwxIChmb28gaW50LCBiYXIgaW50KTsKK0NSRUFU RSBUQUJMRSB0ZXN0cHViX2RkbF90YmwyIChmb28gaW50LCBiYXIgaW50KTsKK0NSRUFURSBUQUJM RSB0ZXN0cHViX2RkbF90YmwzIChmb28gaW50LCBiYXIgaW50LCBiZXF1ZSBpbnQsIGJheiBpbnQp OworQ1JFQVRFIFRBQkxFIHRlc3RwdWJfZGRsX3RibDQgKGZvbyBpbnQsIGJhciBpbnQsIGJlcXVl IGJvb2wpOworQ1JFQVRFIFRBQkxFIHRlc3RwdWJfZGRsX3RibDUgKGZvbyBpbnQsICJiYXIgYmVx dWUiIGludCk7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfMiBGT1IgVEFCTEUgdGVz dHB1Yl9kZGxfdGJsMSwgdGVzdHB1Yl9kZGxfdGJsMiwgdGVzdHB1Yl9kZGxfdGJsMyBXSVRIIChw dWJsaXNoPSdkZWxldGUnLCBwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPSdzdG9yZWQnLCBwdWJs aXNoX3ZpYV9wYXJ0aXRpb25fcm9vdD0ndHJ1ZScpOworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlv bl9kZGwoJ3Rlc3RwdWJfZGRsXzInKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfMiBGT1IgVEFCTEUgcHVibGljLnRlc3Rw dWJfZGRsX3RibDEsIHB1YmxpYy50ZXN0cHViX2RkbF90YmwyLCBwdWJsaWMudGVzdHB1Yl9kZGxf dGJsMyBXSVRIIChwdWJsaXNoPSdkZWxldGUnLCBwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPSdz dG9yZWQnLCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdD0ndHJ1ZScpOworIEFMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZGRsXzIgT1dORVIgVE8gcmVncmVzc19wdWJsaWNhdGlvbl9kZGxfdXNl cjsKKygyIHJvd3MpCisKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKChTRUxFQ1Qgb2lk IEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZT0ndGVzdHB1Yl9kZGxfMicpKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9wdWJsaWNhdGlvbl9k ZGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9kZGxfMiBGT1IgVEFCTEUgcHVibGljLnRlc3RwdWJfZGRsX3RibDEsIHB1YmxpYy50ZXN0cHVi X2RkbF90YmwyLCBwdWJsaWMudGVzdHB1Yl9kZGxfdGJsMyBXSVRIIChwdWJsaXNoPSdkZWxldGUn LCBwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPSdzdG9yZWQnLCBwdWJsaXNoX3ZpYV9wYXJ0aXRp b25fcm9vdD0ndHJ1ZScpOworIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzIgT1dORVIg VE8gcmVncmVzc19wdWJsaWNhdGlvbl9kZGxfdXNlcjsKKygyIHJvd3MpCisKK1NFTEVDVCBwZ19n ZXRfcHVibGljYXRpb25fZGRsKCd0ZXN0cHViX2RkbF8yJywgJ3ByZXR0eScsICd0cnVlJyk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfcHVibGljYXRpb25f ZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1Yl9kZGxfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgIEZPUiBUQUJMRSBwdWJsaWMudGVzdHB1Yl9kZGxf dGJsMSwgcHVibGljLnRlc3RwdWJfZGRsX3RibDIsIHB1YmxpYy50ZXN0cHViX2RkbF90YmwzICAg ICAgICAgICAgKworICAgICBXSVRIIChwdWJsaXNoPSdkZWxldGUnLCBwdWJsaXNoX2dlbmVyYXRl ZF9jb2x1bW5zPSdzdG9yZWQnLCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdD0ndHJ1ZScpOwor IEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzIgT1dORVIgVE8gcmVncmVzc19wdWJsaWNh dGlvbl9kZGxfdXNlcjsKKygyIHJvd3MpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRs XzIgU0VUIChwdWJsaXNoID0gJ2RlbGV0ZSwgdXBkYXRlJyk7CitTRUxFQ1QgcGdfZ2V0X3B1Ymxp Y2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxfMicpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfMiBG T1IgVEFCTEUgcHVibGljLnRlc3RwdWJfZGRsX3RibDEsIHB1YmxpYy50ZXN0cHViX2RkbF90Ymwy LCBwdWJsaWMudGVzdHB1Yl9kZGxfdGJsMyBXSVRIIChwdWJsaXNoPSd1cGRhdGUsIGRlbGV0ZScs IHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J3N0b3JlZCcsIHB1Ymxpc2hfdmlhX3BhcnRpdGlv bl9yb290PSd0cnVlJyk7CisgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfMiBPV05FUiBU TyByZWdyZXNzX3B1YmxpY2F0aW9uX2RkbF91c2VyOworKDIgcm93cykKKworU0VMRUNUIHBnX2dl dF9wdWJsaWNhdGlvbl9kZGwoKFNFTEVDVCBvaWQgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBw dWJuYW1lPSd0ZXN0cHViX2RkbF8yJykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfMiBGT1Ig VEFCTEUgcHVibGljLnRlc3RwdWJfZGRsX3RibDEsIHB1YmxpYy50ZXN0cHViX2RkbF90YmwyLCBw dWJsaWMudGVzdHB1Yl9kZGxfdGJsMyBXSVRIIChwdWJsaXNoPSd1cGRhdGUsIGRlbGV0ZScsIHB1 Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J3N0b3JlZCcsIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9y b290PSd0cnVlJyk7CisgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfMiBPV05FUiBUTyBy ZWdyZXNzX3B1YmxpY2F0aW9uX2RkbF91c2VyOworKDIgcm93cykKKworU0VMRUNUIHBnX2dldF9w dWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsXzInLCAncHJldHR5JywgJ3RydWUnKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfcHVibGljYXRpb25f ZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9kZGxfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgRk9SIFRBQkxF IHB1YmxpYy50ZXN0cHViX2RkbF90YmwxLCBwdWJsaWMudGVzdHB1Yl9kZGxfdGJsMiwgcHVibGlj LnRlc3RwdWJfZGRsX3RibDMgICAgICAgICAgICAgICAgICAgICsKKyAgICAgV0lUSCAocHVibGlz aD0ndXBkYXRlLCBkZWxldGUnLCBwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPSdzdG9yZWQnLCBw dWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdD0ndHJ1ZScpOworIEFMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfZGRsXzIgT1dORVIgVE8gcmVncmVzc19wdWJsaWNhdGlvbl9kZGxfdXNlcjsKKygyIHJv d3MpCisKKy0tIGNyZWF0ZSBwdWJsaWNhdGlvbiBmb3Igb25lIHRhYmxlCitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9kZGxfMyBGT1IgVEFCTEUgT05MWSB0ZXN0cHViX2RkbF90YmwxOworU0VM RUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsXzMnKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJf ZGRsXzMgRk9SIFRBQkxFIHB1YmxpYy50ZXN0cHViX2RkbF90YmwxIFdJVEggKHB1Ymxpc2g9J2lu c2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJywgcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1u cz0nbm9uZScsIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PSdmYWxzZScpOworIEFMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzMgT1dORVIgVE8gcmVncmVzc19wdWJsaWNhdGlvbl9kZGxf dXNlcjsKKygyIHJvd3MpCisKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKChTRUxFQ1Qg b2lkIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZT0ndGVzdHB1Yl9kZGxfMycpKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBVQkxJQ0FU SU9OIHRlc3RwdWJfZGRsXzMgRk9SIFRBQkxFIHB1YmxpYy50ZXN0cHViX2RkbF90YmwxIFdJVEgg KHB1Ymxpc2g9J2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJywgcHVibGlzaF9nZW5l cmF0ZWRfY29sdW1ucz0nbm9uZScsIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PSdmYWxzZScp OworIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzMgT1dORVIgVE8gcmVncmVzc19wdWJs aWNhdGlvbl9kZGxfdXNlcjsKKygyIHJvd3MpCisKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25f ZGRsKCd0ZXN0cHViX2RkbF8zJywgJ3ByZXR0eScsICd0cnVlJyk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3B1YmxpY2F0aW9uX2Rk bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF8zICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIEZPUiBUQUJMRSBwdWJsaWMudGVzdHB1Yl9k ZGxfdGJsMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgV0lUSCAocHVibGlz aD0naW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBwdWJsaXNoX2dlbmVyYXRlZF9j b2x1bW5zPSdub25lJywgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q9J2ZhbHNlJyk7CisgQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfMyBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9u X2RkbF91c2VyOworKDIgcm93cykKKworLS0gY3JlYXRlIHB1YmxpY2F0aW9uIGZvciBvbmUgdGFi bGUgd2l0aCB0d28gY29sdW1ucyBhbmQgYSBjb25kaXRpb24KK0NSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViX2RkbF80IEZPUiBUQUJMRSBPTkxZIHRlc3RwdWJfZGRsX3RibDMgKGJhcixiYXopIFdI RVJFIChiYXIgPSBiYXopOworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJf ZGRsXzQnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRf cHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUg UFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfNCBGT1IgVEFCTEUgcHVibGljLnRlc3RwdWJfZGRsX3Ri bDMoYmFyLCBiYXopIFdIRVJFIChiYXIgPSBiYXopIFdJVEggKHB1Ymxpc2g9J2luc2VydCwgdXBk YXRlLCBkZWxldGUsIHRydW5jYXRlJywgcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucz0nbm9uZScs IHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PSdmYWxzZScpOworIEFMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZGRsXzQgT1dORVIgVE8gcmVncmVzc19wdWJsaWNhdGlvbl9kZGxfdXNlcjsKKygy IHJvd3MpCisKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKChTRUxFQ1Qgb2lkIEZST00g cGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZT0ndGVzdHB1Yl9kZGxfNCcpKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfcHVibGljYXRpb25fZGRsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9kZGxfNCBGT1IgVEFCTEUgcHVibGljLnRlc3RwdWJfZGRsX3RibDMoYmFyLCBiYXopIFdIRVJF IChiYXIgPSBiYXopIFdJVEggKHB1Ymxpc2g9J2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5j YXRlJywgcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucz0nbm9uZScsIHB1Ymxpc2hfdmlhX3BhcnRp dGlvbl9yb290PSdmYWxzZScpOworIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzQgT1dO RVIgVE8gcmVncmVzc19wdWJsaWNhdGlvbl9kZGxfdXNlcjsKKygyIHJvd3MpCisKK1NFTEVDVCBw Z19nZXRfcHVibGljYXRpb25fZGRsKCd0ZXN0cHViX2RkbF80JywgJ3ByZXR0eScsICd0cnVlJyk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdf Z2V0X3B1YmxpY2F0aW9uX2RkbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHVi X2RkbF80ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIEZPUiBUQUJM RSBwdWJsaWMudGVzdHB1Yl9kZGxfdGJsMyhiYXIsIGJheikgV0hFUkUgKGJhciA9IGJheikgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgV0lUSCAocHVibGlzaD0naW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBw dWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPSdub25lJywgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jv b3Q9J2ZhbHNlJyk7CisgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfNCBPV05FUiBUTyBy ZWdyZXNzX3B1YmxpY2F0aW9uX2RkbF91c2VyOworKDIgcm93cykKKworLS0gY3JlYXRlIHB1Ymxp Y2F0aW9uIGZvciBvbmUgdGFibGUgd2l0aCB0d28gY29sdW1ucyBhbmQgYSBjb25kaXRpb24gd2l0 aCBhbiBleHByZXNzaW9uCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfNSBGT1IgVEFC TEUgT05MWSB0ZXN0cHViX2RkbF90Ymw0IChiYXIsYmVxdWUpIFdIRVJFIChiZXF1ZSBJUyBUUlVF KTsKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKCd0ZXN0cHViX2RkbF81Jyk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3B1YmxpY2F0aW9u X2RkbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzUgRk9SIFRBQkxFIHB1YmxpYy50ZXN0cHViX2RkbF90Ymw0 KGJhciwgYmVxdWUpIFdIRVJFIChiZXF1ZSBJUyBUUlVFKSBXSVRIIChwdWJsaXNoPSdpbnNlcnQs IHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScsIHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J25v bmUnLCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdD0nZmFsc2UnKTsKKyBBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX2RkbF81IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXI7 CisoMiByb3dzKQorCitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgoU0VMRUNUIG9pZCBG Uk9NIHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWU9J3Rlc3RwdWJfZGRsXzUnKSk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3B1YmxpY2F0aW9u X2RkbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzUgRk9SIFRBQkxFIHB1YmxpYy50ZXN0cHViX2RkbF90Ymw0 KGJhciwgYmVxdWUpIFdIRVJFIChiZXF1ZSBJUyBUUlVFKSBXSVRIIChwdWJsaXNoPSdpbnNlcnQs IHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScsIHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J25v bmUnLCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdD0nZmFsc2UnKTsKKyBBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX2RkbF81IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXI7 CisoMiByb3dzKQorCitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxf NScsICdwcmV0dHknLCAndHJ1ZScpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVB VEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKworICAgICBGT1IgVEFCTEUgcHVibGljLnRlc3RwdWJfZGRsX3RibDQoYmFyLCBiZXF1 ZSkgV0hFUkUgKGJlcXVlIElTIFRSVUUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgIFdJVEggKHB1Ymxpc2g9J2luc2VydCwgdXBkYXRl LCBkZWxldGUsIHRydW5jYXRlJywgcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucz0nbm9uZScsIHB1 Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PSdmYWxzZScpOworIEFMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfZGRsXzUgT1dORVIgVE8gcmVncmVzc19wdWJsaWNhdGlvbl9kZGxfdXNlcjsKKygyIHJv d3MpCisKKy0tIGNyZWF0ZSBwdWJsaWNhdGlvbiBmb3IgYWxsIHRhYmxlcworQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZGRsXzYgRk9SIEFMTCBUQUJMRVM7CitTRUxFQ1QgcGdfZ2V0X3B1Ymxp Y2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxfNicpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfcHVi bGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfZGRsXzYgRk9SIEFMTCBUQUJMRVMgV0lUSCAocHVibGlzaD0naW5zZXJ0LCB1cGRhdGUsIGRl bGV0ZSwgdHJ1bmNhdGUnLCBwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPSdub25lJywgcHVibGlz aF92aWFfcGFydGl0aW9uX3Jvb3Q9J2ZhbHNlJyk7CisgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9kZGxfNiBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX2RkbF91c2VyOworKDIgcm93cykK KworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoKFNFTEVDVCBvaWQgRlJPTSBwZ19wdWJs aWNhdGlvbiBXSEVSRSBwdWJuYW1lPSd0ZXN0cHViX2RkbF82JykpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwZ19nZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZGRsXzYgRk9SIEFMTCBUQUJMRVMgV0lUSCAocHVibGlzaD0naW5zZXJ0 LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPSdu b25lJywgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q9J2ZhbHNlJyk7CisgQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9kZGxfNiBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX2RkbF91c2Vy OworKDIgcm93cykKKworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRs XzYnLCAncHJldHR5JywgJ3RydWUnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwZ19nZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JF QVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzYgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgRk9SIEFMTCBUQUJMRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICBXSVRIIChwdWJsaXNoPSdpbnNlcnQsIHVwZGF0 ZSwgZGVsZXRlLCB0cnVuY2F0ZScsIHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J25vbmUnLCBw dWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdD0nZmFsc2UnKTsKKyBBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX2RkbF82IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXI7CisoMiBy b3dzKQorCistLSBjcmVhdGUgcHVibGljYXRpb24gZm9yIGFsbCBzZXF1ZW5jZXMKK0NSRUFURSBQ VUJMSUNBVElPTiB0ZXN0cHViX2RkbF83IEZPUiBBTEwgU0VRVUVOQ0VTOworU0VMRUNUIHBnX2dl dF9wdWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsXzcnKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBn X2dldF9wdWJsaWNhdGlvbl9kZGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBQVUJM SUNBVElPTiB0ZXN0cHViX2RkbF83IEZPUiBBTEwgU0VRVUVOQ0VTIFdJVEggKHB1Ymxpc2g9J2lu c2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJywgcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1u cz0nbm9uZScsIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PSdmYWxzZScpOworIEFMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzcgT1dORVIgVE8gcmVncmVzc19wdWJsaWNhdGlvbl9kZGxf dXNlcjsKKygyIHJvd3MpCisKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKChTRUxFQ1Qg b2lkIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZT0ndGVzdHB1Yl9kZGxfNycpKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF83IEZPUiBBTEwgU0VRVUVO Q0VTIFdJVEggKHB1Ymxpc2g9J2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJywgcHVi bGlzaF9nZW5lcmF0ZWRfY29sdW1ucz0nbm9uZScsIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290 PSdmYWxzZScpOworIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzcgT1dORVIgVE8gcmVn cmVzc19wdWJsaWNhdGlvbl9kZGxfdXNlcjsKKygyIHJvd3MpCisKK1NFTEVDVCBwZ19nZXRfcHVi bGljYXRpb25fZGRsKCd0ZXN0cHViX2RkbF83JywgJ3ByZXR0eScsICd0cnVlJyk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3B1Ymxp Y2F0aW9uX2RkbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF83ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIEZPUiBBTEwgU0VRVUVOQ0VT ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgV0lU SCAocHVibGlzaD0naW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBwdWJsaXNoX2dl bmVyYXRlZF9jb2x1bW5zPSdub25lJywgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q9J2ZhbHNl Jyk7CisgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfNyBPV05FUiBUTyByZWdyZXNzX3B1 YmxpY2F0aW9uX2RkbF91c2VyOworKDIgcm93cykKKworLS0gY3JlYXRlIHB1YmxpY2F0aW9uIGZv ciBhbGwgdGFibGVzIGFuZCBhbGwgc2VxdWVuY2VzCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9kZGxfOCBGT1IgQUxMIFRBQkxFUywgQUxMIFNFUVVFTkNFUzsKK1NFTEVDVCBwZ19nZXRfcHVi bGljYXRpb25fZGRsKCd0ZXN0cHViX2RkbF84Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw Z19nZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfOCBGT1IgQUxMIFRBQkxFUywg QUxMIFNFUVVFTkNFUyBXSVRIIChwdWJsaXNoPSdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVu Y2F0ZScsIHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J25vbmUnLCBwdWJsaXNoX3ZpYV9wYXJ0 aXRpb25fcm9vdD0nZmFsc2UnKTsKKyBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF84IE9X TkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXI7CisoMiByb3dzKQorCitTRUxFQ1Qg cGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgoU0VMRUNUIG9pZCBGUk9NIHBnX3B1YmxpY2F0aW9uIFdI RVJFIHB1Ym5hbWU9J3Rlc3RwdWJfZGRsXzgnKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw Z19nZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfOCBGT1IgQUxMIFRBQkxFUywg QUxMIFNFUVVFTkNFUyBXSVRIIChwdWJsaXNoPSdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVu Y2F0ZScsIHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J25vbmUnLCBwdWJsaXNoX3ZpYV9wYXJ0 aXRpb25fcm9vdD0nZmFsc2UnKTsKKyBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF84IE9X TkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXI7CisoMiByb3dzKQorCitTRUxFQ1Qg cGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxfOCcsICdwcmV0dHknLCAndHJ1ZScp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBn X2dldF9wdWJsaWNhdGlvbl9kZGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9kZGxfOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBGT1IgQUxM IFRBQkxFUywgQUxMIFNFUVVFTkNFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICAgIFdJVEggKHB1Ymxpc2g9J2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJywg cHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucz0nbm9uZScsIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9y b290PSdmYWxzZScpOworIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzggT1dORVIgVE8g cmVncmVzc19wdWJsaWNhdGlvbl9kZGxfdXNlcjsKKygyIHJvd3MpCisKKy0tIGV4cGxpY2l0IHB1 Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J25vbmUnCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9kZGxfOSBGT1IgQUxMIFRBQkxFUyBXSVRIIChwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPSdu b25lJyk7CitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxfOScpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwZ19nZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzkgRk9SIEFMTCBUQUJMRVMgV0lUSCAo cHVibGlzaD0naW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBwdWJsaXNoX2dlbmVy YXRlZF9jb2x1bW5zPSdub25lJywgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q9J2ZhbHNlJyk7 CisgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfOSBPV05FUiBUTyByZWdyZXNzX3B1Ymxp Y2F0aW9uX2RkbF91c2VyOworKDIgcm93cykKKworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9k ZGwoKFNFTEVDVCBvaWQgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBwdWJuYW1lPSd0ZXN0cHVi X2RkbF85JykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfcHVibGljYXRpb25fZGRsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzkgRk9SIEFMTCBU QUJMRVMgV0lUSCAocHVibGlzaD0naW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBw dWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPSdub25lJywgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jv b3Q9J2ZhbHNlJyk7CisgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfOSBPV05FUiBUTyBy ZWdyZXNzX3B1YmxpY2F0aW9uX2RkbF91c2VyOworKDIgcm93cykKKworU0VMRUNUIHBnX2dldF9w dWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsXzknLCAncHJldHR5JywgJ3RydWUnKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfcHVi bGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgRk9SIEFMTCBUQUJMRVMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBX SVRIIChwdWJsaXNoPSdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScsIHB1Ymxpc2hf Z2VuZXJhdGVkX2NvbHVtbnM9J25vbmUnLCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdD0nZmFs c2UnKTsKKyBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF85IE9XTkVSIFRPIHJlZ3Jlc3Nf cHVibGljYXRpb25fZGRsX3VzZXI7CisoMiByb3dzKQorCistLSBjb2x1bW5zIGluIHB1YmxpY2F0 aW9uIG11c3QgYmUgcXVvdGVkCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfMTAgRk9S IFRBQkxFIHRlc3RwdWJfZGRsX3RibDUoImJhciBiZXF1ZSIpOworU0VMRUNUIHBnX2dldF9wdWJs aWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsXzEwJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwZ19nZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9kZGxfMTAgRk9SIFRBQkxFIHB1YmxpYy50ZXN0cHViX2RkbF90Ymw1KCJi YXIgYmVxdWUiKSBXSVRIIChwdWJsaXNoPSdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0 ZScsIHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J25vbmUnLCBwdWJsaXNoX3ZpYV9wYXJ0aXRp b25fcm9vdD0nZmFsc2UnKTsKKyBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF8xMCBPV05F UiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX2RkbF91c2VyOworKDIgcm93cykKKworU0VMRUNUIHBn X2dldF9wdWJsaWNhdGlvbl9kZGwoKFNFTEVDVCBvaWQgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVS RSBwdWJuYW1lPSd0ZXN0cHViX2RkbF8xMCcpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBQVUJMSUNB VElPTiB0ZXN0cHViX2RkbF8xMCBGT1IgVEFCTEUgcHVibGljLnRlc3RwdWJfZGRsX3RibDUoImJh ciBiZXF1ZSIpIFdJVEggKHB1Ymxpc2g9J2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRl JywgcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucz0nbm9uZScsIHB1Ymxpc2hfdmlhX3BhcnRpdGlv bl9yb290PSdmYWxzZScpOworIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzEwIE9XTkVS IFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXI7CisoMiByb3dzKQorCitTRUxFQ1QgcGdf Z2V0X3B1YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxfMTAnLCAncHJldHR5JywgJ3RydWUnKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19n ZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJf ZGRsXzEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgRk9SIFRBQkxF IHB1YmxpYy50ZXN0cHViX2RkbF90Ymw1KCJiYXIgYmVxdWUiKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICBXSVRIIChwdWJsaXNoPSdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScsIHB1 Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J25vbmUnLCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9v dD0nZmFsc2UnKTsKKyBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF8xMCBPV05FUiBUTyBy ZWdyZXNzX3B1YmxpY2F0aW9uX2RkbF91c2VyOworKDIgcm93cykKKworLS0gY3JlYXRlIHNjaGVt YSBmb3Igc2NoZW1hIHB1YmxpY2F0aW9uCitDUkVBVEUgU0NIRU1BIHB1Yl9zY2hlbWFfdGVzdF9k ZGw7CitDUkVBVEUgVEFCTEUgcHViX3NjaGVtYV90ZXN0X2RkbC5zY2hlbWFfdGJsMSAoZm9vIGlu dCwgYmFyIGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaGVtYV90ZXN0X2RkbC5zY2hlbWFfdGJs MiAoZm9vIGludCwgYmFyIGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaGVtYV90ZXN0X2RkbC5z Y2hlbWFfdGJsMyAoZm9vIGludCwgYmFyIGludCwgYmF6IGludCk7CistLSBjcmVhdGUgYSBwdWJs aWNhdGlvbiBmb3IgYSBsaXN0IG9mIHRhYmxlcworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJf ZGRsX3NjaGVtYV8xIEZPUiBUQUJMRSBwdWJfc2NoZW1hX3Rlc3RfZGRsLnNjaGVtYV90YmwxLCBw dWJfc2NoZW1hX3Rlc3RfZGRsLnNjaGVtYV90YmwyLCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl9zY2hl bWFfdGVzdF9kZGw7CitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxf c2NoZW1hXzEnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9zY2hlbWFfMSBGT1IgVEFCTEUgcHViX3NjaGVt YV90ZXN0X2RkbC5zY2hlbWFfdGJsMSwgcHViX3NjaGVtYV90ZXN0X2RkbC5zY2hlbWFfdGJsMiwg VEFCTEVTIElOIFNDSEVNQSBwdWJfc2NoZW1hX3Rlc3RfZGRsIFdJVEggKHB1Ymxpc2g9J2luc2Vy dCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJywgcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucz0n bm9uZScsIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PSdmYWxzZScpOworIEFMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZGRsX3NjaGVtYV8xIE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25f ZGRsX3VzZXI7CisoMiByb3dzKQorCitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgoU0VM RUNUIG9pZCBGUk9NIHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWU9J3Rlc3RwdWJfZGRsX3Nj aGVtYV8xJykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JF QVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX3NjaGVtYV8xIEZPUiBUQUJMRSBwdWJfc2NoZW1h X3Rlc3RfZGRsLnNjaGVtYV90YmwxLCBwdWJfc2NoZW1hX3Rlc3RfZGRsLnNjaGVtYV90YmwyLCBU QUJMRVMgSU4gU0NIRU1BIHB1Yl9zY2hlbWFfdGVzdF9kZGwgV0lUSCAocHVibGlzaD0naW5zZXJ0 LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPSdu b25lJywgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q9J2ZhbHNlJyk7CisgQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9kZGxfc2NoZW1hXzEgT1dORVIgVE8gcmVncmVzc19wdWJsaWNhdGlvbl9k ZGxfdXNlcjsKKygyIHJvd3MpCisKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKCd0ZXN0 cHViX2RkbF9zY2hlbWFfMScsICdwcmV0dHknLCAndHJ1ZScpOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfc2NoZW1hXzEgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICBGT1IgVEFCTEUgcHViX3NjaGVtYV90ZXN0X2Rk bC5zY2hlbWFfdGJsMSwgcHViX3NjaGVtYV90ZXN0X2RkbC5zY2hlbWFfdGJsMiwgVEFCTEVTIElO IFNDSEVNQSBwdWJfc2NoZW1hX3Rlc3RfZGRsICAgICAgICArCisgICAgIFdJVEggKHB1Ymxpc2g9 J2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJywgcHVibGlzaF9nZW5lcmF0ZWRfY29s dW1ucz0nbm9uZScsIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PSdmYWxzZScpOworIEFMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX3NjaGVtYV8xIE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGlj YXRpb25fZGRsX3VzZXI7CisoMiByb3dzKQorCistLSBjcmVhdGUgcHVibGljYXRpb24gaW4gc2No ZW1hIG9ubHkgZm9yIHRhYmxlCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfc2NoZW1h XzIgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3NjaGVtYV90ZXN0X2RkbCwgVEFCTEUgcHViX3Nj aGVtYV90ZXN0X2RkbC5zY2hlbWFfdGJsMTsKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRs KCd0ZXN0cHViX2RkbF9zY2hlbWFfMicpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX3NjaGVtYV8yIEZPUiBUQUJMRSBwdWJf c2NoZW1hX3Rlc3RfZGRsLnNjaGVtYV90YmwxLCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl9zY2hlbWFf dGVzdF9kZGwgV0lUSCAocHVibGlzaD0naW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUn LCBwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPSdub25lJywgcHVibGlzaF92aWFfcGFydGl0aW9u X3Jvb3Q9J2ZhbHNlJyk7CisgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfc2NoZW1hXzIg T1dORVIgVE8gcmVncmVzc19wdWJsaWNhdGlvbl9kZGxfdXNlcjsKKygyIHJvd3MpCisKK1NFTEVD VCBwZ19nZXRfcHVibGljYXRpb25fZGRsKChTRUxFQ1Qgb2lkIEZST00gcGdfcHVibGljYXRpb24g V0hFUkUgcHVibmFtZT0ndGVzdHB1Yl9kZGxfc2NoZW1hXzInKSk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9wdWJsaWNhdGlvbl9k ZGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfc2NoZW1hXzIg Rk9SIFRBQkxFIHB1Yl9zY2hlbWFfdGVzdF9kZGwuc2NoZW1hX3RibDEsIFRBQkxFUyBJTiBTQ0hF TUEgcHViX3NjaGVtYV90ZXN0X2RkbCBXSVRIIChwdWJsaXNoPSdpbnNlcnQsIHVwZGF0ZSwgZGVs ZXRlLCB0cnVuY2F0ZScsIHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J25vbmUnLCBwdWJsaXNo X3ZpYV9wYXJ0aXRpb25fcm9vdD0nZmFsc2UnKTsKKyBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X2RkbF9zY2hlbWFfMiBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX2RkbF91c2VyOworKDIg cm93cykKKworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsX3NjaGVt YV8yJywgJ3ByZXR0eScsICd0cnVlJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9zY2hlbWFfMiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgIEZPUiBUQUJMRSBwdWJfc2NoZW1hX3Rlc3RfZGRsLnNjaGVtYV90Ymwx LCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl9zY2hlbWFfdGVzdF9kZGwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgV0lUSCAocHVibGlzaD0naW5zZXJ0LCB1cGRh dGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPSdub25lJywg cHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q9J2ZhbHNlJyk7CisgQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9kZGxfc2NoZW1hXzIgT1dORVIgVE8gcmVncmVzc19wdWJsaWNhdGlvbl9kZGxfdXNl cjsKKygyIHJvd3MpCisKKy0tIGNyZWF0ZSBwdWJsaWNhdGlvbiBmb3IgYWxsIHRhYmxlcyBpbiBz Y2hlbWEKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9zY2hlbWFfMyBGT1IgVEFCTEVT IElOIFNDSEVNQSBwdWJfc2NoZW1hX3Rlc3RfZGRsOworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlv bl9kZGwoJ3Rlc3RwdWJfZGRsX3NjaGVtYV8zJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwZ19nZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9kZGxfc2NoZW1hXzMgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3NjaGVt YV90ZXN0X2RkbCBXSVRIIChwdWJsaXNoPSdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0 ZScsIHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J25vbmUnLCBwdWJsaXNoX3ZpYV9wYXJ0aXRp b25fcm9vdD0nZmFsc2UnKTsKKyBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9zY2hlbWFf MyBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX2RkbF91c2VyOworKDIgcm93cykKKworU0VM RUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoKFNFTEVDVCBvaWQgRlJPTSBwZ19wdWJsaWNhdGlv biBXSEVSRSBwdWJuYW1lPSd0ZXN0cHViX2RkbF9zY2hlbWFfMycpKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9zY2hlbWFfMyBGT1IgVEFCTEVTIElOIFNDSEVN QSBwdWJfc2NoZW1hX3Rlc3RfZGRsIFdJVEggKHB1Ymxpc2g9J2luc2VydCwgdXBkYXRlLCBkZWxl dGUsIHRydW5jYXRlJywgcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucz0nbm9uZScsIHB1Ymxpc2hf dmlhX3BhcnRpdGlvbl9yb290PSdmYWxzZScpOworIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf ZGRsX3NjaGVtYV8zIE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXI7CisoMiBy b3dzKQorCitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxfc2NoZW1h XzMnLCAncHJldHR5JywgJ3RydWUnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwZ19nZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JF QVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX3NjaGVtYV8zICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3NjaGVtYV90ZXN0X2RkbCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICBXSVRIIChwdWJsaXNoPSdpbnNlcnQsIHVwZGF0 ZSwgZGVsZXRlLCB0cnVuY2F0ZScsIHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J25vbmUnLCBw dWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdD0nZmFsc2UnKTsKKyBBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX2RkbF9zY2hlbWFfMyBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX2RkbF91c2Vy OworKDIgcm93cykKKworLS0gYSBuZXcgc2NoZW1hIGZvciBtdWx0aXBsZSBzY2hlbWFzCitDUkVB VEUgU0NIRU1BIHB1Yl9zY2hlbWFfdGVzdF9kZGxfMjsKK0NSRUFURSBUQUJMRSBwdWJfc2NoZW1h X3Rlc3RfZGRsXzIuc2NoZW1hX3RibDEgKGZvbyBpbnQsIGJhciBpbnQpOworLS0gY3JlYXRlIGEg cHVibGljYXRpb24gZm9yIGEgbGlzdCBvZiBzY2hlbWFzCitDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1Yl9kZGxfc2NoZW1hXzQgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3NjaGVtYV90ZXN0X2Rk bCwgcHViX3NjaGVtYV90ZXN0X2RkbF8yOworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwo J3Rlc3RwdWJfZGRsX3NjaGVtYV80Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwZ19nZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRs X3NjaGVtYV80IEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl9zY2hlbWFfdGVzdF9kZGwsIHB1Yl9z Y2hlbWFfdGVzdF9kZGxfMiBXSVRIIChwdWJsaXNoPSdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0 cnVuY2F0ZScsIHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J25vbmUnLCBwdWJsaXNoX3ZpYV9w YXJ0aXRpb25fcm9vdD0nZmFsc2UnKTsKKyBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9z Y2hlbWFfNCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX2RkbF91c2VyOworKDIgcm93cykK KworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoKFNFTEVDVCBvaWQgRlJPTSBwZ19wdWJs aWNhdGlvbiBXSEVSRSBwdWJuYW1lPSd0ZXN0cHViX2RkbF9zY2hlbWFfNCcpKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9wdWJsaWNhdGlvbl9k ZGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUg UFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfc2NoZW1hXzQgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHVi X3NjaGVtYV90ZXN0X2RkbCwgcHViX3NjaGVtYV90ZXN0X2RkbF8yIFdJVEggKHB1Ymxpc2g9J2lu c2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJywgcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1u cz0nbm9uZScsIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PSdmYWxzZScpOworIEFMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZGRsX3NjaGVtYV80IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRp b25fZGRsX3VzZXI7CisoMiByb3dzKQorCitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgn dGVzdHB1Yl9kZGxfc2NoZW1hXzQnLCAncHJldHR5JywgJ3RydWUnKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfcHVibGljYXRpb25f ZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX3NjaGVtYV80ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHVi X3NjaGVtYV90ZXN0X2RkbCwgcHViX3NjaGVtYV90ZXN0X2RkbF8yICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBXSVRIIChwdWJs aXNoPSdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScsIHB1Ymxpc2hfZ2VuZXJhdGVk X2NvbHVtbnM9J25vbmUnLCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdD0nZmFsc2UnKTsKKyBB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9zY2hlbWFfNCBPV05FUiBUTyByZWdyZXNzX3B1 YmxpY2F0aW9uX2RkbF91c2VyOworKDIgcm93cykKKworLS0gY3JlYXRlIGEgcHVibGljYXRpb24g Zm9yIGEgc3BlY2lmaWMgc2NoZW1hIGFuZCBhIHRhYmxlIGluIHB1YmxpYyBzY2hlbWEKKy0tIGJv dGggd2l0aCB0aGUgc2FtZSBuYW1lCitDUkVBVEUgVEFCTEUgc2NoZW1hX3RibDEgKGZvbyBpbnQs IGJhciBpbnQpOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX3NjaGVtYV81ICBGT1Ig VEFCTEUgcHViX3NjaGVtYV90ZXN0X2RkbC5zY2hlbWFfdGJsMSwgc2NoZW1hX3RibDE7CitTRUxF Q1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxfc2NoZW1hXzUnKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3B1YmxpY2F0aW9u X2RkbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBQ VUJMSUNBVElPTiB0ZXN0cHViX2RkbF9zY2hlbWFfNSBGT1IgVEFCTEUgcHViX3NjaGVtYV90ZXN0 X2RkbC5zY2hlbWFfdGJsMSwgcHVibGljLnNjaGVtYV90YmwxIFdJVEggKHB1Ymxpc2g9J2luc2Vy dCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJywgcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucz0n bm9uZScsIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PSdmYWxzZScpOworIEFMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZGRsX3NjaGVtYV81IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25f ZGRsX3VzZXI7CisoMiByb3dzKQorCitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgoU0VM RUNUIG9pZCBGUk9NIHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWU9J3Rlc3RwdWJfZGRsX3Nj aGVtYV81JykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw Z19nZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX3NjaGVtYV81IEZPUiBUQUJM RSBwdWJfc2NoZW1hX3Rlc3RfZGRsLnNjaGVtYV90YmwxLCBwdWJsaWMuc2NoZW1hX3RibDEgV0lU SCAocHVibGlzaD0naW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBwdWJsaXNoX2dl bmVyYXRlZF9jb2x1bW5zPSdub25lJywgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q9J2ZhbHNl Jyk7CisgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfc2NoZW1hXzUgT1dORVIgVE8gcmVn cmVzc19wdWJsaWNhdGlvbl9kZGxfdXNlcjsKKygyIHJvd3MpCisKK1NFTEVDVCBwZ19nZXRfcHVi bGljYXRpb25fZGRsKCd0ZXN0cHViX2RkbF9zY2hlbWFfNScsICdwcmV0dHknLCAndHJ1ZScpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dl dF9wdWJsaWNhdGlvbl9kZGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9k ZGxfc2NoZW1hXzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBGT1IgVEFCTEUg cHViX3NjaGVtYV90ZXN0X2RkbC5zY2hlbWFfdGJsMSwgcHVibGljLnNjaGVtYV90YmwxICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgIFdJVEggKHB1Ymxpc2g9J2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJywgcHVi bGlzaF9nZW5lcmF0ZWRfY29sdW1ucz0nbm9uZScsIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290 PSdmYWxzZScpOworIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX3NjaGVtYV81IE9XTkVS IFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXI7CisoMiByb3dzKQorCistLSBjcmVhdGUg dGFibGVzIGZvciBwYXJ0aXRpb24gdGVzdAorQ1JFQVRFIFRBQkxFIHRlc3RwdWJfZGRsX3BhcnQg KGZvbyBpbnQsIGJhciBpbnQpIFBBUlRJVElPTiBCWSBSQU5HRSAoZm9vKTsKK0NSRUFURSBUQUJM RSB0ZXN0cHViX2RkbF9wYXJ0X3AxIFBBUlRJVElPTiBPRiB0ZXN0cHViX2RkbF9wYXJ0IEZPUiBW QUxVRVMgRlJPTSAoMCkgVE8gKDEwKTsKK0NSRUFURSBUQUJMRSB0ZXN0cHViX2RkbF9wYXJ0X3Ay IFBBUlRJVElPTiBPRiB0ZXN0cHViX2RkbF9wYXJ0IEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgy MCk7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfcGFydDEgRk9SIFRBQkxFIHRlc3Rw dWJfZGRsX3BhcnQ7CitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxf cGFydDEnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfcHVibGljYXRpb25f ZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfcGFydDEgRk9SIFRBQkxFIHB1YmxpYy50 ZXN0cHViX2RkbF9wYXJ0IFdJVEggKHB1Ymxpc2g9J2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRy dW5jYXRlJywgcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucz0nbm9uZScsIHB1Ymxpc2hfdmlhX3Bh cnRpdGlvbl9yb290PSdmYWxzZScpOworIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX3Bh cnQxIE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXI7CisoMiByb3dzKQorCitT RUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgoU0VMRUNUIG9pZCBGUk9NIHBnX3B1YmxpY2F0 aW9uIFdIRVJFIHB1Ym5hbWU9J3Rlc3RwdWJfZGRsX3BhcnQxJykpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0 cHViX2RkbF9wYXJ0MSBGT1IgVEFCTEUgcHVibGljLnRlc3RwdWJfZGRsX3BhcnQgV0lUSCAocHVi bGlzaD0naW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBwdWJsaXNoX2dlbmVyYXRl ZF9jb2x1bW5zPSdub25lJywgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q9J2ZhbHNlJyk7Cisg QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfcGFydDEgT1dORVIgVE8gcmVncmVzc19wdWJs aWNhdGlvbl9kZGxfdXNlcjsKKygyIHJvd3MpCisKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25f ZGRsKCd0ZXN0cHViX2RkbF9wYXJ0MScsICdwcmV0dHknLCAndHJ1ZScpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9wdWJsaWNhdGlv bl9kZGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfcGFydDEgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBGT1IgVEFCTEUgcHVibGljLnRlc3Rw dWJfZGRsX3BhcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIFdJVEggKHB1 Ymxpc2g9J2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJywgcHVibGlzaF9nZW5lcmF0 ZWRfY29sdW1ucz0nbm9uZScsIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PSdmYWxzZScpOwor IEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX3BhcnQxIE9XTkVSIFRPIHJlZ3Jlc3NfcHVi bGljYXRpb25fZGRsX3VzZXI7CisoMiByb3dzKQorCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9kZGxfcGFydDIgRk9SIFRBQkxFIHRlc3RwdWJfZGRsX3BhcnQgV0lUSCAocHVibGlzaF92aWFf cGFydGl0aW9uX3Jvb3Q9J2ZhbHNlJyk7CitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgn dGVzdHB1Yl9kZGxfcGFydDInKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRf cHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfcGFydDIgRk9SIFRB QkxFIHB1YmxpYy50ZXN0cHViX2RkbF9wYXJ0IFdJVEggKHB1Ymxpc2g9J2luc2VydCwgdXBkYXRl LCBkZWxldGUsIHRydW5jYXRlJywgcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucz0nbm9uZScsIHB1 Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PSdmYWxzZScpOworIEFMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfZGRsX3BhcnQyIE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXI7Ciso MiByb3dzKQorCitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgoU0VMRUNUIG9pZCBGUk9N IHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWU9J3Rlc3RwdWJfZGRsX3BhcnQyJykpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBQVUJM SUNBVElPTiB0ZXN0cHViX2RkbF9wYXJ0MiBGT1IgVEFCTEUgcHVibGljLnRlc3RwdWJfZGRsX3Bh cnQgV0lUSCAocHVibGlzaD0naW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBwdWJs aXNoX2dlbmVyYXRlZF9jb2x1bW5zPSdub25lJywgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q9 J2ZhbHNlJyk7CisgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfcGFydDIgT1dORVIgVE8g cmVncmVzc19wdWJsaWNhdGlvbl9kZGxfdXNlcjsKKygyIHJvd3MpCisKK1NFTEVDVCBwZ19nZXRf cHVibGljYXRpb25fZGRsKCd0ZXN0cHViX2RkbF9wYXJ0MicsICdwcmV0dHknLCAndHJ1ZScpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dl dF9wdWJsaWNhdGlvbl9kZGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9k ZGxfcGFydDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBGT1IgVEFCTEUg cHVibGljLnRlc3RwdWJfZGRsX3BhcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgIFdJVEggKHB1Ymxpc2g9J2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJywgcHVi bGlzaF9nZW5lcmF0ZWRfY29sdW1ucz0nbm9uZScsIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290 PSdmYWxzZScpOworIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX3BhcnQyIE9XTkVSIFRP IHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXI7CisoMiByb3dzKQorCitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9kZGxfcGFydDMgRk9SIFRBQkxFIHRlc3RwdWJfZGRsX3BhcnQgV0lUSCAo cHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q9J3RydWUnKTsKK1NFTEVDVCBwZ19nZXRfcHVibGlj YXRpb25fZGRsKCd0ZXN0cHViX2RkbF9wYXJ0MycpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfcGFy dDMgRk9SIFRBQkxFIHB1YmxpYy50ZXN0cHViX2RkbF9wYXJ0IFdJVEggKHB1Ymxpc2g9J2luc2Vy dCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJywgcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucz0n bm9uZScsIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PSd0cnVlJyk7CisgQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9kZGxfcGFydDMgT1dORVIgVE8gcmVncmVzc19wdWJsaWNhdGlvbl9kZGxf dXNlcjsKKygyIHJvd3MpCisKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKChTRUxFQ1Qg b2lkIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZT0ndGVzdHB1Yl9kZGxfcGFydDMn KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFU RSBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9wYXJ0MyBGT1IgVEFCTEUgcHVibGljLnRlc3RwdWJf ZGRsX3BhcnQgV0lUSCAocHVibGlzaD0naW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUn LCBwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPSdub25lJywgcHVibGlzaF92aWFfcGFydGl0aW9u X3Jvb3Q9J3RydWUnKTsKKyBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9wYXJ0MyBPV05F UiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX2RkbF91c2VyOworKDIgcm93cykKKworU0VMRUNUIHBn X2dldF9wdWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsX3BhcnQzJywgJ3ByZXR0eScsICd0cnVl Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw Z19nZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9kZGxfcGFydDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIEZPUiBUQUJM RSBwdWJsaWMudGVzdHB1Yl9kZGxfcGFydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgICBXSVRIIChwdWJsaXNoPSdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScsIHB1 Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J25vbmUnLCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9v dD0ndHJ1ZScpOworIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX3BhcnQzIE9XTkVSIFRP IHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXI7CisoMiByb3dzKQorCitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9kZGxfcGFydDQgRk9SIFRBQkxFIHRlc3RwdWJfZGRsX3BhcnRfcDE7CitT RUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxfcGFydDQnKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUg UFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfcGFydDQgRk9SIFRBQkxFIHB1YmxpYy50ZXN0cHViX2Rk bF9wYXJ0X3AxIFdJVEggKHB1Ymxpc2g9J2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRl JywgcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucz0nbm9uZScsIHB1Ymxpc2hfdmlhX3BhcnRpdGlv bl9yb290PSdmYWxzZScpOworIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX3BhcnQ0IE9X TkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXI7CisoMiByb3dzKQorCitTRUxFQ1Qg cGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgoU0VMRUNUIG9pZCBGUk9NIHBnX3B1YmxpY2F0aW9uIFdI RVJFIHB1Ym5hbWU9J3Rlc3RwdWJfZGRsX3BhcnQ0JykpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0 cHViX2RkbF9wYXJ0NCBGT1IgVEFCTEUgcHVibGljLnRlc3RwdWJfZGRsX3BhcnRfcDEgV0lUSCAo cHVibGlzaD0naW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBwdWJsaXNoX2dlbmVy YXRlZF9jb2x1bW5zPSdub25lJywgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q9J2ZhbHNlJyk7 CisgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfcGFydDQgT1dORVIgVE8gcmVncmVzc19w dWJsaWNhdGlvbl9kZGxfdXNlcjsKKygyIHJvd3MpCisKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRp b25fZGRsKCd0ZXN0cHViX2RkbF9wYXJ0NCcsICdwcmV0dHknLCAndHJ1ZScpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9wdWJsaWNh dGlvbl9kZGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfcGFydDQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBGT1IgVEFCTEUgcHVibGljLnRl c3RwdWJfZGRsX3BhcnRfcDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIFdJVEgg KHB1Ymxpc2g9J2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJywgcHVibGlzaF9nZW5l cmF0ZWRfY29sdW1ucz0nbm9uZScsIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PSdmYWxzZScp OworIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX3BhcnQ0IE9XTkVSIFRPIHJlZ3Jlc3Nf cHVibGljYXRpb25fZGRsX3VzZXI7CisoMiByb3dzKQorCistLSBpZGVudGlmaWVycyB0aGF0IHJl cXVpcmUgcXVvdGluZzogcHVibGljYXRpb24sIHNjaGVtYSwgdGFibGUgYW5kIGNvbHVtbgorQ1JF QVRFIFNDSEVNQSAiUHViIFNjaGVtYSI7CitDUkVBVEUgVEFCTEUgIlB1YiBTY2hlbWEiLiJRdW90 ZWQgVGFibGUiICgiQ29sIE9uZSIgaW50LCAic2VsZWN0IiBpbnQpOworQ1JFQVRFIFBVQkxJQ0FU SU9OICJRdW90ZWQgUHViIiBGT1IgVEFCTEUgIlB1YiBTY2hlbWEiLiJRdW90ZWQgVGFibGUiICgi Q29sIE9uZSIsICJzZWxlY3QiKSBXSEVSRSAoIkNvbCBPbmUiID4gMCk7CitTRUxFQ1QgcGdfZ2V0 X3B1YmxpY2F0aW9uX2RkbCgnUXVvdGVkIFB1YicpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFU RSBQVUJMSUNBVElPTiAiUXVvdGVkIFB1YiIgRk9SIFRBQkxFICJQdWIgU2NoZW1hIi4iUXVvdGVk IFRhYmxlIigiQ29sIE9uZSIsICJzZWxlY3QiKSBXSEVSRSAoIkNvbCBPbmUiID4gMCkgV0lUSCAo cHVibGlzaD0naW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBwdWJsaXNoX2dlbmVy YXRlZF9jb2x1bW5zPSdub25lJywgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q9J2ZhbHNlJyk7 CisgQUxURVIgUFVCTElDQVRJT04gIlF1b3RlZCBQdWIiIE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGlj YXRpb25fZGRsX3VzZXI7CisoMiByb3dzKQorCitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2Rk bCgoU0VMRUNUIG9pZCBGUk9NIHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWU9J1F1b3RlZCBQ dWInKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBVQkxJQ0FUSU9OICJRdW90ZWQgUHVi IiBGT1IgVEFCTEUgIlB1YiBTY2hlbWEiLiJRdW90ZWQgVGFibGUiKCJDb2wgT25lIiwgInNlbGVj dCIpIFdIRVJFICgiQ29sIE9uZSIgPiAwKSBXSVRIIChwdWJsaXNoPSdpbnNlcnQsIHVwZGF0ZSwg ZGVsZXRlLCB0cnVuY2F0ZScsIHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J25vbmUnLCBwdWJs aXNoX3ZpYV9wYXJ0aXRpb25fcm9vdD0nZmFsc2UnKTsKKyBBTFRFUiBQVUJMSUNBVElPTiAiUXVv dGVkIFB1YiIgT1dORVIgVE8gcmVncmVzc19wdWJsaWNhdGlvbl9kZGxfdXNlcjsKKygyIHJvd3Mp CisKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKCdRdW90ZWQgUHViJywgJ3ByZXR0eScs ICd0cnVlJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBQVUJMSUNBVElP TiAiUXVvdGVkIFB1YiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg IEZPUiBUQUJMRSAiUHViIFNjaGVtYSIuIlF1b3RlZCBUYWJsZSIoIkNvbCBPbmUiLCAic2VsZWN0 IikgV0hFUkUgKCJDb2wgT25lIiA+IDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgV0lUSCAocHVibGlzaD0naW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1 bmNhdGUnLCBwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPSdub25lJywgcHVibGlzaF92aWFfcGFy dGl0aW9uX3Jvb3Q9J2ZhbHNlJyk7CisgQUxURVIgUFVCTElDQVRJT04gIlF1b3RlZCBQdWIiIE9X TkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXI7CisoMiByb3dzKQorCistLSBUYWJs ZXMgZm9yIEVYQ0VQVAorQ1JFQVRFIFRBQkxFIHRlc3RwdWJfZGRsX2V4Y2VwdDEgKGZvbyBpbnQs IGJhciBpbnQpOworQ1JFQVRFIFRBQkxFIHRlc3RwdWJfZGRsX2V4Y2VwdDIgKGZvbyBpbnQsIGJh ciBpbnQpOworLS0gY3JlYXRlIHB1YmxpY2F0aW9uIGZvciBhbGwgdGFibGVzIGV4Y2VwdCBvbmUK K0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9leGNlcHQxIEZPUiBBTEwgVEFCTEVTIEVY Q0VQVCAoVEFCTEUgdGVzdHB1Yl9kZGxfZXhjZXB0MSk7CitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0 aW9uX2RkbCgndGVzdHB1Yl9kZGxfZXhjZXB0MScpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwZ19nZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX2V4Y2VwdDEg Rk9SIEFMTCBUQUJMRVMgRVhDRVBUIChUQUJMRSBwdWJsaWMudGVzdHB1Yl9kZGxfZXhjZXB0MSkg V0lUSCAocHVibGlzaD0naW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBwdWJsaXNo X2dlbmVyYXRlZF9jb2x1bW5zPSdub25lJywgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q9J2Zh bHNlJyk7CisgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfZXhjZXB0MSBPV05FUiBUTyBy ZWdyZXNzX3B1YmxpY2F0aW9uX2RkbF91c2VyOworKDIgcm93cykKKworU0VMRUNUIHBnX2dldF9w dWJsaWNhdGlvbl9kZGwoKFNFTEVDVCBvaWQgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBwdWJu YW1lPSd0ZXN0cHViX2RkbF9leGNlcHQxJykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwZ19nZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX2V4Y2VwdDEgRk9S IEFMTCBUQUJMRVMgRVhDRVBUIChUQUJMRSBwdWJsaWMudGVzdHB1Yl9kZGxfZXhjZXB0MSkgV0lU SCAocHVibGlzaD0naW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBwdWJsaXNoX2dl bmVyYXRlZF9jb2x1bW5zPSdub25lJywgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q9J2ZhbHNl Jyk7CisgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfZXhjZXB0MSBPV05FUiBUTyByZWdy ZXNzX3B1YmxpY2F0aW9uX2RkbF91c2VyOworKDIgcm93cykKKworU0VMRUNUIHBnX2dldF9wdWJs aWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsX2V4Y2VwdDEnLCAncHJldHR5JywgJ3RydWUnKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRf cHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRs X2V4Y2VwdDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgRk9SIEFMTCBUQUJM RVMgRVhDRVBUIChUQUJMRSBwdWJsaWMudGVzdHB1Yl9kZGxfZXhjZXB0MSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAg ICBXSVRIIChwdWJsaXNoPSdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScsIHB1Ymxp c2hfZ2VuZXJhdGVkX2NvbHVtbnM9J25vbmUnLCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdD0n ZmFsc2UnKTsKKyBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9leGNlcHQxIE9XTkVSIFRP IHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXI7CisoMiByb3dzKQorCistLSBjcmVhdGUgcHVi bGljYXRpb24gZm9yIGFsbCB0YWJsZXMgZXhjZXB0IHR3byB0YWJsZXMKK0NSRUFURSBQVUJMSUNB VElPTiB0ZXN0cHViX2RkbF9leGNlcHQyIEZPUiBBTEwgU0VRVUVOQ0VTLCBBTEwgVEFCTEVTIEVY Q0VQVCAoVEFCTEUgdGVzdHB1Yl9kZGxfZXhjZXB0MSwgdGVzdHB1Yl9kZGxfZXhjZXB0Mik7CitT RUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxfZXhjZXB0MicpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwZ19nZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfZXhjZXB0MiBGT1IgQUxM IFRBQkxFUywgQUxMIFNFUVVFTkNFUyBFWENFUFQgKFRBQkxFIHB1YmxpYy50ZXN0cHViX2RkbF9l eGNlcHQxLCBwdWJsaWMudGVzdHB1Yl9kZGxfZXhjZXB0MikgV0lUSCAocHVibGlzaD0naW5zZXJ0 LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPSdu b25lJywgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q9J2ZhbHNlJyk7CisgQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9kZGxfZXhjZXB0MiBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX2Rk bF91c2VyOworKDIgcm93cykKKworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoKFNFTEVD VCBvaWQgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBwdWJuYW1lPSd0ZXN0cHViX2RkbF9leGNl cHQyJykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwZ19nZXRfcHVibGljYXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfZXhj ZXB0MiBGT1IgQUxMIFRBQkxFUywgQUxMIFNFUVVFTkNFUyBFWENFUFQgKFRBQkxFIHB1YmxpYy50 ZXN0cHViX2RkbF9leGNlcHQxLCBwdWJsaWMudGVzdHB1Yl9kZGxfZXhjZXB0MikgV0lUSCAocHVi bGlzaD0naW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnLCBwdWJsaXNoX2dlbmVyYXRl ZF9jb2x1bW5zPSdub25lJywgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q9J2ZhbHNlJyk7Cisg QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfZXhjZXB0MiBPV05FUiBUTyByZWdyZXNzX3B1 YmxpY2F0aW9uX2RkbF91c2VyOworKDIgcm93cykKKworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlv bl9kZGwoJ3Rlc3RwdWJfZGRsX2V4Y2VwdDInLCAncHJldHR5JywgJ3RydWUnKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfcHVibGlj YXRpb25fZGRsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX2V4Y2Vw dDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgRk9SIEFMTCBUQUJMRVMsIEFM TCBTRVFVRU5DRVMgRVhDRVBUIChUQUJMRSBwdWJsaWMudGVzdHB1Yl9kZGxfZXhjZXB0MSwgcHVi bGljLnRlc3RwdWJfZGRsX2V4Y2VwdDIpICAgICAgICAgICAgICAgICAgICAgKworICAgICBXSVRI IChwdWJsaXNoPSdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScsIHB1Ymxpc2hfZ2Vu ZXJhdGVkX2NvbHVtbnM9J25vbmUnLCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdD0nZmFsc2Un KTsKKyBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9leGNlcHQyIE9XTkVSIFRPIHJlZ3Jl c3NfcHVibGljYXRpb25fZGRsX3VzZXI7CisoMiByb3dzKQorCistLSBjbGVhbnVwIHB1YmxpY2F0 aW9ucworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF8xOworRFJPUCBQVUJMSUNBVElPTiB0 ZXN0cHViX2RkbF8yOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF8zOworRFJPUCBQVUJM SUNBVElPTiB0ZXN0cHViX2RkbF80OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF81Owor RFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF82OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHVi X2RkbF83OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF84OworRFJPUCBQVUJMSUNBVElP TiB0ZXN0cHViX2RkbF85OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF8xMDsKK0RST1Ag UFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfc2NoZW1hXzE7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfZGRsX3NjaGVtYV8yOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9zY2hlbWFfMzsK K0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfc2NoZW1hXzQ7CitEUk9QIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZGRsX3NjaGVtYV81OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9wYXJ0 MTsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfcGFydDI7CitEUk9QIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZGRsX3BhcnQzOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9wYXJ0NDsK K0RST1AgUFVCTElDQVRJT04gIlF1b3RlZCBQdWIiOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHVi X2RkbF9leGNlcHQxOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9leGNlcHQyOworLS0g Y2xlYW51cCB0YWJsZXMKK0RST1AgVEFCTEUgdGVzdHB1Yl9kZGxfdGJsMTsKK0RST1AgVEFCTEUg dGVzdHB1Yl9kZGxfdGJsMjsKK0RST1AgVEFCTEUgdGVzdHB1Yl9kZGxfdGJsMzsKK0RST1AgVEFC TEUgdGVzdHB1Yl9kZGxfdGJsNDsKK0RST1AgVEFCTEUgdGVzdHB1Yl9kZGxfdGJsNTsKKy0tIGNs ZWFudXAgdGFibGVzIGluIHNjaGVtYXMKK0RST1AgVEFCTEUgcHViX3NjaGVtYV90ZXN0X2RkbC5z Y2hlbWFfdGJsMTsKK0RST1AgVEFCTEUgcHViX3NjaGVtYV90ZXN0X2RkbC5zY2hlbWFfdGJsMjsK K0RST1AgVEFCTEUgcHViX3NjaGVtYV90ZXN0X2RkbC5zY2hlbWFfdGJsMzsKK0RST1AgVEFCTEUg cHViX3NjaGVtYV90ZXN0X2RkbF8yLnNjaGVtYV90YmwxOworRFJPUCBUQUJMRSBzY2hlbWFfdGJs MTsKKy0tIGNsZWFudXAgdGFibGVzIGZvciBwYXJ0aXRpb25zCitEUk9QIFRBQkxFIHRlc3RwdWJf ZGRsX3BhcnQ7CistLSBjbGVhbnVwIHRhYmxlcyBmb3IgcXVvdGVkIG5hbWVzCitEUk9QIFRBQkxF ICJQdWIgU2NoZW1hIi4iUXVvdGVkIFRhYmxlIjsKKy0tIGNsZWFudXAgdGFibGVzIGZvciBleGNl cHQKK0RST1AgVEFCTEUgdGVzdHB1Yl9kZGxfZXhjZXB0MTsKK0RST1AgVEFCTEUgdGVzdHB1Yl9k ZGxfZXhjZXB0MjsKKy0tIGNsZWFudXAgc2NoZW1hcworRFJPUCBTQ0hFTUEgcHViX3NjaGVtYV90 ZXN0X2RkbDsKK0RST1AgU0NIRU1BIHB1Yl9zY2hlbWFfdGVzdF9kZGxfMjsKK0RST1AgU0NIRU1B ICJQdWIgU2NoZW1hIjsKKy0tIGNsZWFudXAgcm9sZQorUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OOworRFJPUCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fZGRsX3VzZXI7CitSRVNFVCBjbGll bnRfbWluX21lc3NhZ2VzOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9z Y2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggOGZhMGE2 YzQ3ZmIuLjNkM2E2YzU3YWY1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVs X3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTEz NSw3ICsxMzUsNiBAQCB0ZXN0OiBjb21wcmVzc2lvbiBjb21wcmVzc2lvbl9sejQgY29tcHJlc3Np b25fcGdseiBjbHVzdGVyCiAjIG9pZGpvaW5zIGlzIHJlYWQtb25seSwgdGhvdWdoLCBhbmQgc2hv dWxkIHJ1biBsYXRlIGZvciBiZXN0IGNvdmVyYWdlCiB0ZXN0OiBvaWRqb2lucyBldmVudF90cmln Z2VyCiAKLQogIyBldmVudF90cmlnZ2VyX2xvZ2luIGNhbm5vdCBydW4gY29uY3VycmVudGx5IHdp dGggYW55IG90aGVyIHRlc3RzIGJlY2F1c2UKICMgb24tbG9naW4gZXZlbnQgaGFuZGxpbmcgY291 bGQgY2F0Y2ggY29ubmVjdGlvbiBvZiBhIGNvbmN1cnJlbnQgdGVzdC4KIHRlc3Q6IGV2ZW50X3Ry aWdnZXJfbG9naW4KQEAgLTE0Myw2ICsxNDIsMTAgQEAgdGVzdDogZXZlbnRfdHJpZ2dlcl9sb2dp bgogIyB0aGlzIHRlc3QgYWxzbyB1c2VzIGV2ZW50IHRyaWdnZXJzLCBzbyBsaWtld2lzZSBydW4g aXQgYnkgaXRzZWxmCiB0ZXN0OiBmYXN0X2RlZmF1bHQKIAorIyBydW4gcmV0YWlsIERETCB0ZXN0 cyBsYXN0IHRvIGF2b2lkIG9iamVjdCBuYW1lIGNvbGxpc2lvbnMgYW5kCisjIGludGVyZmVyZW5j ZSB3aXRoIHByZXZpb3VzIHRlc3RzLgordGVzdDogcHVibGljYXRpb25fZGRsCisKICMgcnVuIHRh Ymxlc3BhY2UgdGVzdCBhdCB0aGUgZW5kIGJlY2F1c2UgaXQgZHJvcHMgdGhlIHRhYmxlc3BhY2Ug Y3JlYXRlZCBkdXJpbmcKICMgc2V0dXAgdGhhdCBvdGhlciB0ZXN0cyBtYXkgdXNlLgogdGVzdDog dGFibGVzcGFjZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb25f ZGRsLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uX2RkbC5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjllYzQxYmMwYWUwCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb25fZGRsLnNxbApAQCAtMCww ICsxLDI0OCBAQAorLS0KKy0tIFRlc3QgZm9yIERETCBzdGF0ZW1lbnQgZnJvbToKKy0tIC0gcGdf Z2V0X3B1YmxpY2F0aW9uX2RkbAorLS0KKworLS0gc3VwcHJlc3Mgd2FybmluZyB0aGF0IGRlcGVu ZHMgb24gd2FsX2xldmVsCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CisKKy0t IFJ1biB0aGUgYm9keSB1bmRlciBhIHN0YWJsZSByb2xlIHNvIHRoZSBBTFRFUiBQVUJMSUNBVElP TiAuLi4gT1dORVIgVE8KKy0tIG91dHB1dCBpcyBkZXRlcm1pbmlzdGljIGFjcm9zcyBlbnZpcm9u bWVudHMuCitDUkVBVEUgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX2RkbF91c2VyIExPR0lOIFNV UEVSVVNFUjsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3NfcHVibGljYXRpb25f ZGRsX3VzZXInOworCistLSB0ZXN0IHdpdGggYSBub24tZXhpc3RpbmcgcHVibGljYXRpb24KK1NF TEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKCdub24tZXhpc3RpbmcnKTsKK1NFTEVDVCBwZ19n ZXRfcHVibGljYXRpb25fZGRsKDA6Om9pZCk7CisKKy0tIGVtcHR5IHB1YmxpY2F0aW9uIGlzIHBv c3NpYmxlIGFuZCBhbGxvd2VkCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfMTsKK1NF TEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKCd0ZXN0cHViX2RkbF8xJyk7CitTRUxFQ1QgcGdf Z2V0X3B1YmxpY2F0aW9uX2RkbCgoU0VMRUNUIG9pZCBGUk9NIHBnX3B1YmxpY2F0aW9uIFdIRVJF IHB1Ym5hbWU9J3Rlc3RwdWJfZGRsXzEnKSk7CitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2Rk bCgndGVzdHB1Yl9kZGxfMScsICdwcmV0dHknLCAndHJ1ZScpOworCistLSBOVUxMIGlucHV0IHNo b3VsZCBwcm9kdWNlIGFuIGVtcHR5IHJlc3VsdCBzZXQKK1NFTEVDVCBjb3VudCgqKSA9IDAgQVMg aXNfbnVsbCBGUk9NIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoTlVMTDo6b2lkKTsKK1NFTEVDVCBj b3VudCgqKSA9IDAgQVMgaXNfbnVsbCBGUk9NIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoTlVMTDo6 dGV4dCk7CisKKy0tIGNyZWF0ZSBiYXNlIHRhYmxlIHRvIHRlc3QgYmFzaWMgdGFibGUgcHVibGlj YXRpb24KK0NSRUFURSBUQUJMRSB0ZXN0cHViX2RkbF90YmwxIChmb28gaW50LCBiYXIgaW50KTsK K0NSRUFURSBUQUJMRSB0ZXN0cHViX2RkbF90YmwyIChmb28gaW50LCBiYXIgaW50KTsKK0NSRUFU RSBUQUJMRSB0ZXN0cHViX2RkbF90YmwzIChmb28gaW50LCBiYXIgaW50LCBiZXF1ZSBpbnQsIGJh eiBpbnQpOworQ1JFQVRFIFRBQkxFIHRlc3RwdWJfZGRsX3RibDQgKGZvbyBpbnQsIGJhciBpbnQs IGJlcXVlIGJvb2wpOworQ1JFQVRFIFRBQkxFIHRlc3RwdWJfZGRsX3RibDUgKGZvbyBpbnQsICJi YXIgYmVxdWUiIGludCk7CisKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF8yIEZPUiBU QUJMRSB0ZXN0cHViX2RkbF90YmwxLCB0ZXN0cHViX2RkbF90YmwyLCB0ZXN0cHViX2RkbF90Ymwz IFdJVEggKHB1Ymxpc2g9J2RlbGV0ZScsIHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM9J3N0b3Jl ZCcsIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PSd0cnVlJyk7CisKK1NFTEVDVCBwZ19nZXRf cHVibGljYXRpb25fZGRsKCd0ZXN0cHViX2RkbF8yJyk7CitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0 aW9uX2RkbCgoU0VMRUNUIG9pZCBGUk9NIHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWU9J3Rl c3RwdWJfZGRsXzInKSk7CitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9k ZGxfMicsICdwcmV0dHknLCAndHJ1ZScpOworCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2Rk bF8yIFNFVCAocHVibGlzaCA9ICdkZWxldGUsIHVwZGF0ZScpOworCitTRUxFQ1QgcGdfZ2V0X3B1 YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxfMicpOworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlv bl9kZGwoKFNFTEVDVCBvaWQgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBwdWJuYW1lPSd0ZXN0 cHViX2RkbF8yJykpOworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRs XzInLCAncHJldHR5JywgJ3RydWUnKTsKKworLS0gY3JlYXRlIHB1YmxpY2F0aW9uIGZvciBvbmUg dGFibGUKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF8zIEZPUiBUQUJMRSBPTkxZIHRl c3RwdWJfZGRsX3RibDE7CisKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKCd0ZXN0cHVi X2RkbF8zJyk7CitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgoU0VMRUNUIG9pZCBGUk9N IHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWU9J3Rlc3RwdWJfZGRsXzMnKSk7CitTRUxFQ1Qg cGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxfMycsICdwcmV0dHknLCAndHJ1ZScp OworCistLSBjcmVhdGUgcHVibGljYXRpb24gZm9yIG9uZSB0YWJsZSB3aXRoIHR3byBjb2x1bW5z IGFuZCBhIGNvbmRpdGlvbgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzQgRk9SIFRB QkxFIE9OTFkgdGVzdHB1Yl9kZGxfdGJsMyAoYmFyLGJheikgV0hFUkUgKGJhciA9IGJheik7CisK K1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKCd0ZXN0cHViX2RkbF80Jyk7CitTRUxFQ1Qg cGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgoU0VMRUNUIG9pZCBGUk9NIHBnX3B1YmxpY2F0aW9uIFdI RVJFIHB1Ym5hbWU9J3Rlc3RwdWJfZGRsXzQnKSk7CitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9u X2RkbCgndGVzdHB1Yl9kZGxfNCcsICdwcmV0dHknLCAndHJ1ZScpOworCistLSBjcmVhdGUgcHVi bGljYXRpb24gZm9yIG9uZSB0YWJsZSB3aXRoIHR3byBjb2x1bW5zIGFuZCBhIGNvbmRpdGlvbiB3 aXRoIGFuIGV4cHJlc3Npb24KK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF81IEZPUiBU QUJMRSBPTkxZIHRlc3RwdWJfZGRsX3RibDQgKGJhcixiZXF1ZSkgV0hFUkUgKGJlcXVlIElTIFRS VUUpOworCitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxfNScpOwor U0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoKFNFTEVDVCBvaWQgRlJPTSBwZ19wdWJsaWNh dGlvbiBXSEVSRSBwdWJuYW1lPSd0ZXN0cHViX2RkbF81JykpOworU0VMRUNUIHBnX2dldF9wdWJs aWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsXzUnLCAncHJldHR5JywgJ3RydWUnKTsKKworLS0gY3Jl YXRlIHB1YmxpY2F0aW9uIGZvciBhbGwgdGFibGVzCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9kZGxfNiBGT1IgQUxMIFRBQkxFUzsKKworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwo J3Rlc3RwdWJfZGRsXzYnKTsKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKChTRUxFQ1Qg b2lkIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZT0ndGVzdHB1Yl9kZGxfNicpKTsK K1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKCd0ZXN0cHViX2RkbF82JywgJ3ByZXR0eScs ICd0cnVlJyk7CisKKy0tIGNyZWF0ZSBwdWJsaWNhdGlvbiBmb3IgYWxsIHNlcXVlbmNlcworQ1JF QVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzcgRk9SIEFMTCBTRVFVRU5DRVM7CitTRUxFQ1Qg cGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxfNycpOworU0VMRUNUIHBnX2dldF9w dWJsaWNhdGlvbl9kZGwoKFNFTEVDVCBvaWQgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBwdWJu YW1lPSd0ZXN0cHViX2RkbF83JykpOworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoJ3Rl c3RwdWJfZGRsXzcnLCAncHJldHR5JywgJ3RydWUnKTsKKworLS0gY3JlYXRlIHB1YmxpY2F0aW9u IGZvciBhbGwgdGFibGVzIGFuZCBhbGwgc2VxdWVuY2VzCitDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1Yl9kZGxfOCBGT1IgQUxMIFRBQkxFUywgQUxMIFNFUVVFTkNFUzsKKworU0VMRUNUIHBnX2dl dF9wdWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsXzgnKTsKK1NFTEVDVCBwZ19nZXRfcHVibGlj YXRpb25fZGRsKChTRUxFQ1Qgb2lkIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZT0n dGVzdHB1Yl9kZGxfOCcpKTsKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKCd0ZXN0cHVi X2RkbF84JywgJ3ByZXR0eScsICd0cnVlJyk7CisKKy0tIGV4cGxpY2l0IHB1Ymxpc2hfZ2VuZXJh dGVkX2NvbHVtbnM9J25vbmUnCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfOSBGT1Ig QUxMIFRBQkxFUyBXSVRIIChwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPSdub25lJyk7CitTRUxF Q1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxfOScpOworU0VMRUNUIHBnX2dl dF9wdWJsaWNhdGlvbl9kZGwoKFNFTEVDVCBvaWQgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBw dWJuYW1lPSd0ZXN0cHViX2RkbF85JykpOworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwo J3Rlc3RwdWJfZGRsXzknLCAncHJldHR5JywgJ3RydWUnKTsKKworLS0gY29sdW1ucyBpbiBwdWJs aWNhdGlvbiBtdXN0IGJlIHF1b3RlZAorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsXzEw IEZPUiBUQUJMRSB0ZXN0cHViX2RkbF90Ymw1KCJiYXIgYmVxdWUiKTsKK1NFTEVDVCBwZ19nZXRf cHVibGljYXRpb25fZGRsKCd0ZXN0cHViX2RkbF8xMCcpOworU0VMRUNUIHBnX2dldF9wdWJsaWNh dGlvbl9kZGwoKFNFTEVDVCBvaWQgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBwdWJuYW1lPSd0 ZXN0cHViX2RkbF8xMCcpKTsKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKCd0ZXN0cHVi X2RkbF8xMCcsICdwcmV0dHknLCAndHJ1ZScpOworCistLSBjcmVhdGUgc2NoZW1hIGZvciBzY2hl bWEgcHVibGljYXRpb24KK0NSRUFURSBTQ0hFTUEgcHViX3NjaGVtYV90ZXN0X2RkbDsKK0NSRUFU RSBUQUJMRSBwdWJfc2NoZW1hX3Rlc3RfZGRsLnNjaGVtYV90YmwxIChmb28gaW50LCBiYXIgaW50 KTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoZW1hX3Rlc3RfZGRsLnNjaGVtYV90YmwyIChmb28gaW50 LCBiYXIgaW50KTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoZW1hX3Rlc3RfZGRsLnNjaGVtYV90Ymwz IChmb28gaW50LCBiYXIgaW50LCBiYXogaW50KTsKKworLS0gY3JlYXRlIGEgcHVibGljYXRpb24g Zm9yIGEgbGlzdCBvZiB0YWJsZXMKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9zY2hl bWFfMSBGT1IgVEFCTEUgcHViX3NjaGVtYV90ZXN0X2RkbC5zY2hlbWFfdGJsMSwgcHViX3NjaGVt YV90ZXN0X2RkbC5zY2hlbWFfdGJsMiwgVEFCTEVTIElOIFNDSEVNQSBwdWJfc2NoZW1hX3Rlc3Rf ZGRsOworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsX3NjaGVtYV8x Jyk7CitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgoU0VMRUNUIG9pZCBGUk9NIHBnX3B1 YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWU9J3Rlc3RwdWJfZGRsX3NjaGVtYV8xJykpOworU0VMRUNU IHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsX3NjaGVtYV8xJywgJ3ByZXR0eScs ICd0cnVlJyk7CisKKy0tIGNyZWF0ZSBwdWJsaWNhdGlvbiBpbiBzY2hlbWEgb25seSBmb3IgdGFi bGUKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9zY2hlbWFfMiBGT1IgVEFCTEVTIElO IFNDSEVNQSBwdWJfc2NoZW1hX3Rlc3RfZGRsLCBUQUJMRSBwdWJfc2NoZW1hX3Rlc3RfZGRsLnNj aGVtYV90YmwxOworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsX3Nj aGVtYV8yJyk7CitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgoU0VMRUNUIG9pZCBGUk9N IHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWU9J3Rlc3RwdWJfZGRsX3NjaGVtYV8yJykpOwor U0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsX3NjaGVtYV8yJywgJ3By ZXR0eScsICd0cnVlJyk7CisKKy0tIGNyZWF0ZSBwdWJsaWNhdGlvbiBmb3IgYWxsIHRhYmxlcyBp biBzY2hlbWEKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9zY2hlbWFfMyBGT1IgVEFC TEVTIElOIFNDSEVNQSBwdWJfc2NoZW1hX3Rlc3RfZGRsOworU0VMRUNUIHBnX2dldF9wdWJsaWNh dGlvbl9kZGwoJ3Rlc3RwdWJfZGRsX3NjaGVtYV8zJyk7CitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0 aW9uX2RkbCgoU0VMRUNUIG9pZCBGUk9NIHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWU9J3Rl c3RwdWJfZGRsX3NjaGVtYV8zJykpOworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoJ3Rl c3RwdWJfZGRsX3NjaGVtYV8zJywgJ3ByZXR0eScsICd0cnVlJyk7CisKKy0tIGEgbmV3IHNjaGVt YSBmb3IgbXVsdGlwbGUgc2NoZW1hcworQ1JFQVRFIFNDSEVNQSBwdWJfc2NoZW1hX3Rlc3RfZGRs XzI7CitDUkVBVEUgVEFCTEUgcHViX3NjaGVtYV90ZXN0X2RkbF8yLnNjaGVtYV90YmwxIChmb28g aW50LCBiYXIgaW50KTsKKworLS0gY3JlYXRlIGEgcHVibGljYXRpb24gZm9yIGEgbGlzdCBvZiBz Y2hlbWFzCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfc2NoZW1hXzQgRk9SIFRBQkxF UyBJTiBTQ0hFTUEgcHViX3NjaGVtYV90ZXN0X2RkbCwgcHViX3NjaGVtYV90ZXN0X2RkbF8yOwor U0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsX3NjaGVtYV80Jyk7CitT RUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgoU0VMRUNUIG9pZCBGUk9NIHBnX3B1YmxpY2F0 aW9uIFdIRVJFIHB1Ym5hbWU9J3Rlc3RwdWJfZGRsX3NjaGVtYV80JykpOworU0VMRUNUIHBnX2dl dF9wdWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsX3NjaGVtYV80JywgJ3ByZXR0eScsICd0cnVl Jyk7CisKKy0tIGNyZWF0ZSBhIHB1YmxpY2F0aW9uIGZvciBhIHNwZWNpZmljIHNjaGVtYSBhbmQg YSB0YWJsZSBpbiBwdWJsaWMgc2NoZW1hCistLSBib3RoIHdpdGggdGhlIHNhbWUgbmFtZQorQ1JF QVRFIFRBQkxFIHNjaGVtYV90YmwxIChmb28gaW50LCBiYXIgaW50KTsKK0NSRUFURSBQVUJMSUNB VElPTiB0ZXN0cHViX2RkbF9zY2hlbWFfNSAgRk9SIFRBQkxFIHB1Yl9zY2hlbWFfdGVzdF9kZGwu c2NoZW1hX3RibDEsIHNjaGVtYV90YmwxOworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwo J3Rlc3RwdWJfZGRsX3NjaGVtYV81Jyk7CitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgo U0VMRUNUIG9pZCBGUk9NIHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWU9J3Rlc3RwdWJfZGRs X3NjaGVtYV81JykpOworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRs X3NjaGVtYV81JywgJ3ByZXR0eScsICd0cnVlJyk7CisKKy0tIGNyZWF0ZSB0YWJsZXMgZm9yIHBh cnRpdGlvbiB0ZXN0CitDUkVBVEUgVEFCTEUgdGVzdHB1Yl9kZGxfcGFydCAoZm9vIGludCwgYmFy IGludCkgUEFSVElUSU9OIEJZIFJBTkdFIChmb28pOworQ1JFQVRFIFRBQkxFIHRlc3RwdWJfZGRs X3BhcnRfcDEgUEFSVElUSU9OIE9GIHRlc3RwdWJfZGRsX3BhcnQgRk9SIFZBTFVFUyBGUk9NICgw KSBUTyAoMTApOworQ1JFQVRFIFRBQkxFIHRlc3RwdWJfZGRsX3BhcnRfcDIgUEFSVElUSU9OIE9G IHRlc3RwdWJfZGRsX3BhcnQgRk9SIFZBTFVFUyBGUk9NICgxMCkgVE8gKDIwKTsKKworQ1JFQVRF IFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRsX3BhcnQxIEZPUiBUQUJMRSB0ZXN0cHViX2RkbF9wYXJ0 OworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsX3BhcnQxJyk7CitT RUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgoU0VMRUNUIG9pZCBGUk9NIHBnX3B1YmxpY2F0 aW9uIFdIRVJFIHB1Ym5hbWU9J3Rlc3RwdWJfZGRsX3BhcnQxJykpOworU0VMRUNUIHBnX2dldF9w dWJsaWNhdGlvbl9kZGwoJ3Rlc3RwdWJfZGRsX3BhcnQxJywgJ3ByZXR0eScsICd0cnVlJyk7CisK K0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9wYXJ0MiBGT1IgVEFCTEUgdGVzdHB1Yl9k ZGxfcGFydCBXSVRIIChwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdD0nZmFsc2UnKTsKK1NFTEVD VCBwZ19nZXRfcHVibGljYXRpb25fZGRsKCd0ZXN0cHViX2RkbF9wYXJ0MicpOworU0VMRUNUIHBn X2dldF9wdWJsaWNhdGlvbl9kZGwoKFNFTEVDVCBvaWQgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVS RSBwdWJuYW1lPSd0ZXN0cHViX2RkbF9wYXJ0MicpKTsKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRp b25fZGRsKCd0ZXN0cHViX2RkbF9wYXJ0MicsICdwcmV0dHknLCAndHJ1ZScpOworCitDUkVBVEUg UFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfcGFydDMgRk9SIFRBQkxFIHRlc3RwdWJfZGRsX3BhcnQg V0lUSCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q9J3RydWUnKTsKK1NFTEVDVCBwZ19nZXRf cHVibGljYXRpb25fZGRsKCd0ZXN0cHViX2RkbF9wYXJ0MycpOworU0VMRUNUIHBnX2dldF9wdWJs aWNhdGlvbl9kZGwoKFNFTEVDVCBvaWQgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBwdWJuYW1l PSd0ZXN0cHViX2RkbF9wYXJ0MycpKTsKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKCd0 ZXN0cHViX2RkbF9wYXJ0MycsICdwcmV0dHknLCAndHJ1ZScpOworCitDUkVBVEUgUFVCTElDQVRJ T04gdGVzdHB1Yl9kZGxfcGFydDQgRk9SIFRBQkxFIHRlc3RwdWJfZGRsX3BhcnRfcDE7CitTRUxF Q1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgndGVzdHB1Yl9kZGxfcGFydDQnKTsKK1NFTEVDVCBw Z19nZXRfcHVibGljYXRpb25fZGRsKChTRUxFQ1Qgb2lkIEZST00gcGdfcHVibGljYXRpb24gV0hF UkUgcHVibmFtZT0ndGVzdHB1Yl9kZGxfcGFydDQnKSk7CitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0 aW9uX2RkbCgndGVzdHB1Yl9kZGxfcGFydDQnLCAncHJldHR5JywgJ3RydWUnKTsKKworLS0gaWRl bnRpZmllcnMgdGhhdCByZXF1aXJlIHF1b3Rpbmc6IHB1YmxpY2F0aW9uLCBzY2hlbWEsIHRhYmxl IGFuZCBjb2x1bW4KK0NSRUFURSBTQ0hFTUEgIlB1YiBTY2hlbWEiOworQ1JFQVRFIFRBQkxFICJQ dWIgU2NoZW1hIi4iUXVvdGVkIFRhYmxlIiAoIkNvbCBPbmUiIGludCwgInNlbGVjdCIgaW50KTsK K0NSRUFURSBQVUJMSUNBVElPTiAiUXVvdGVkIFB1YiIgRk9SIFRBQkxFICJQdWIgU2NoZW1hIi4i UXVvdGVkIFRhYmxlIiAoIkNvbCBPbmUiLCAic2VsZWN0IikgV0hFUkUgKCJDb2wgT25lIiA+IDAp OworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoJ1F1b3RlZCBQdWInKTsKK1NFTEVDVCBw Z19nZXRfcHVibGljYXRpb25fZGRsKChTRUxFQ1Qgb2lkIEZST00gcGdfcHVibGljYXRpb24gV0hF UkUgcHVibmFtZT0nUXVvdGVkIFB1YicpKTsKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRs KCdRdW90ZWQgUHViJywgJ3ByZXR0eScsICd0cnVlJyk7CisKKy0tIFRhYmxlcyBmb3IgRVhDRVBU CitDUkVBVEUgVEFCTEUgdGVzdHB1Yl9kZGxfZXhjZXB0MSAoZm9vIGludCwgYmFyIGludCk7CitD UkVBVEUgVEFCTEUgdGVzdHB1Yl9kZGxfZXhjZXB0MiAoZm9vIGludCwgYmFyIGludCk7CisKKy0t IGNyZWF0ZSBwdWJsaWNhdGlvbiBmb3IgYWxsIHRhYmxlcyBleGNlcHQgb25lCitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9kZGxfZXhjZXB0MSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKFRBQkxF IHRlc3RwdWJfZGRsX2V4Y2VwdDEpOworU0VMRUNUIHBnX2dldF9wdWJsaWNhdGlvbl9kZGwoJ3Rl c3RwdWJfZGRsX2V4Y2VwdDEnKTsKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKChTRUxF Q1Qgb2lkIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZT0ndGVzdHB1Yl9kZGxfZXhj ZXB0MScpKTsKK1NFTEVDVCBwZ19nZXRfcHVibGljYXRpb25fZGRsKCd0ZXN0cHViX2RkbF9leGNl cHQxJywgJ3ByZXR0eScsICd0cnVlJyk7CisKKy0tIGNyZWF0ZSBwdWJsaWNhdGlvbiBmb3IgYWxs IHRhYmxlcyBleGNlcHQgdHdvIHRhYmxlcworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZGRs X2V4Y2VwdDIgRk9SIEFMTCBTRVFVRU5DRVMsIEFMTCBUQUJMRVMgRVhDRVBUIChUQUJMRSB0ZXN0 cHViX2RkbF9leGNlcHQxLCB0ZXN0cHViX2RkbF9leGNlcHQyKTsKK1NFTEVDVCBwZ19nZXRfcHVi bGljYXRpb25fZGRsKCd0ZXN0cHViX2RkbF9leGNlcHQyJyk7CitTRUxFQ1QgcGdfZ2V0X3B1Ymxp Y2F0aW9uX2RkbCgoU0VMRUNUIG9pZCBGUk9NIHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWU9 J3Rlc3RwdWJfZGRsX2V4Y2VwdDInKSk7CitTRUxFQ1QgcGdfZ2V0X3B1YmxpY2F0aW9uX2RkbCgn dGVzdHB1Yl9kZGxfZXhjZXB0MicsICdwcmV0dHknLCAndHJ1ZScpOworCistLSBjbGVhbnVwIHB1 YmxpY2F0aW9ucworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF8xOworRFJPUCBQVUJMSUNB VElPTiB0ZXN0cHViX2RkbF8yOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF8zOworRFJP UCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF80OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2Rk bF81OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF82OworRFJPUCBQVUJMSUNBVElPTiB0 ZXN0cHViX2RkbF83OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF84OworRFJPUCBQVUJM SUNBVElPTiB0ZXN0cHViX2RkbF85OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF8xMDsK K0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfc2NoZW1hXzE7CitEUk9QIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZGRsX3NjaGVtYV8yOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9zY2hl bWFfMzsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfc2NoZW1hXzQ7CitEUk9QIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZGRsX3NjaGVtYV81OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2Rk bF9wYXJ0MTsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9kZGxfcGFydDI7CitEUk9QIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZGRsX3BhcnQzOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9w YXJ0NDsKK0RST1AgUFVCTElDQVRJT04gIlF1b3RlZCBQdWIiOworRFJPUCBQVUJMSUNBVElPTiB0 ZXN0cHViX2RkbF9leGNlcHQxOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2RkbF9leGNlcHQy OworCistLSBjbGVhbnVwIHRhYmxlcworRFJPUCBUQUJMRSB0ZXN0cHViX2RkbF90YmwxOworRFJP UCBUQUJMRSB0ZXN0cHViX2RkbF90YmwyOworRFJPUCBUQUJMRSB0ZXN0cHViX2RkbF90YmwzOwor RFJPUCBUQUJMRSB0ZXN0cHViX2RkbF90Ymw0OworRFJPUCBUQUJMRSB0ZXN0cHViX2RkbF90Ymw1 OworCistLSBjbGVhbnVwIHRhYmxlcyBpbiBzY2hlbWFzCitEUk9QIFRBQkxFIHB1Yl9zY2hlbWFf dGVzdF9kZGwuc2NoZW1hX3RibDE7CitEUk9QIFRBQkxFIHB1Yl9zY2hlbWFfdGVzdF9kZGwuc2No ZW1hX3RibDI7CitEUk9QIFRBQkxFIHB1Yl9zY2hlbWFfdGVzdF9kZGwuc2NoZW1hX3RibDM7CitE Uk9QIFRBQkxFIHB1Yl9zY2hlbWFfdGVzdF9kZGxfMi5zY2hlbWFfdGJsMTsKK0RST1AgVEFCTEUg c2NoZW1hX3RibDE7CisKKy0tIGNsZWFudXAgdGFibGVzIGZvciBwYXJ0aXRpb25zCitEUk9QIFRB QkxFIHRlc3RwdWJfZGRsX3BhcnQ7CisKKy0tIGNsZWFudXAgdGFibGVzIGZvciBxdW90ZWQgbmFt ZXMKK0RST1AgVEFCTEUgIlB1YiBTY2hlbWEiLiJRdW90ZWQgVGFibGUiOworCistLSBjbGVhbnVw IHRhYmxlcyBmb3IgZXhjZXB0CitEUk9QIFRBQkxFIHRlc3RwdWJfZGRsX2V4Y2VwdDE7CitEUk9Q IFRBQkxFIHRlc3RwdWJfZGRsX2V4Y2VwdDI7CisKKy0tIGNsZWFudXAgc2NoZW1hcworRFJPUCBT Q0hFTUEgcHViX3NjaGVtYV90ZXN0X2RkbDsKK0RST1AgU0NIRU1BIHB1Yl9zY2hlbWFfdGVzdF9k ZGxfMjsKK0RST1AgU0NIRU1BICJQdWIgU2NoZW1hIjsKKworLS0gY2xlYW51cCByb2xlCitSRVNF VCBTRVNTSU9OIEFVVEhPUklaQVRJT047CitEUk9QIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl9k ZGxfdXNlcjsKKworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKLS0gCjIuNTMuMAoK --=-UY2ZU6S1z5xo4pEemmFW-- --=-WDdytf9K6DP0l8II7xXN Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEEmw+ucrZ0EVA8vzDQ83vCnOlHMUFAmoKMrIACgkQQ83vCnOl HMVutBAAiN7Yy1PB2qW2B4ro0onPGeS+u09mJZlHv1v/SFtB6CqdbJp6bt/QiqcC hzmo0f2vorZZB2Y69Dh76d0iM5gj0CQzEwm2EmSUQA1SeXY7Jncq5SpMFMG0b9K0 51m1mGHZgv7sFmYs2FqlrO/rZ9jLSM+KqhB//gW+hY4oYTIXfpBzNUV5AXPqNubX 5vvEWscVRRPKDbVub7fl92MhMrR31iSq/X/pdJiy+/gOD/U4Vs8k0IQRB6TNiWid ybtNxj5AduxykNA29L+NlfOaOw4kKf06D02fC+D3i9RwIxISYcq2kONvoxlg/BbT Ffl/3iUW0gYRHiC5pHIRTGIx62QaWWfrDpOCeU91QhoYDEBqbGeJlkclJVtkkj5+ B/ZKtBBOxFp3lEbrZk5R7u5DpUHfajCcrn1JDPpHoR91GGFKkC8qsUdBA31taNBZ rkp4mwRQksLBYZBpUe71VWNkZWli4Q6llP+nRPnYjPEyS4YaGMsgf3DGr9iUpb45 2yeuKJMw6ea81b6a7jT8+0nlThQ4pnzAlQyl7OXTtJSwnU2P75j/BSnDi5VSgK3z bPWKFGu+X9vn/sVkrKygKzQKFGLtuDjx97RJBjVNfKtH3BbJss3zKNvttdk59cuV H9gb/xhYpJDxrDZ9PMtexBieCUZKRlVZT9RrRSBbksTIA1kV+hY= =IbGE -----END PGP SIGNATURE----- --=-WDdytf9K6DP0l8II7xXN--