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.94.2) (envelope-from ) id 1vGatN-001esF-AJ for pgpool-hackers@arkaria.postgresql.org; Wed, 05 Nov 2025 10:37:29 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1vGatM-001thP-0W for pgpool-hackers@arkaria.postgresql.org; Wed, 05 Nov 2025 10:37:27 +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.94.2) (envelope-from ) id 1vGatL-001thD-CZ for pgpool-hackers@lists.postgresql.org; Wed, 05 Nov 2025 10:37:26 +0000 Received: from mail-yw1-x112d.google.com ([2607:f8b0:4864:20::112d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vGatH-005ZGV-2r for pgpool-hackers@lists.postgresql.org; Wed, 05 Nov 2025 10:37:25 +0000 Received: by mail-yw1-x112d.google.com with SMTP id 00721157ae682-786a822e73aso5026447b3.3 for ; Wed, 05 Nov 2025 02:37:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tailorbrands.com; s=google; t=1762339043; x=1762943843; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=T2NsN3lTZjBQ7ZqAkFGd21tEhdix/sV/5NmDGX6TYdo=; b=awlMgZ69xOpGyPvvU1Zur5/7AmMsbAVbNi0eGxD44Awvgr6SIHz1mwSRbxzf1clJ+O zQ5iHmegBsSe13u1Jtv4p5Tb3yEsRIlu8miMF3Il0VRgtRpeUub5HmxAzCt7NNnk4DVX NwW4uBrU4g6SfWWrtfiilu9jVtKulcX8h+suW8oX5hxJGKFyhVEZTCfmyBdsfg0vhh9W 88s6eDSprhfCQhyjVvylzhIL78gwbG1IuHPj46yFVl06hZuwWQec0gXjxgXwFIAuVTp1 nvUiuZ2XdC6OBr0ztGjrY7ZXYPFtrPJcQoLvGbSypUZh2vHI0ENlmxLe/wZVtZtqloFj NCiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762339043; x=1762943843; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=T2NsN3lTZjBQ7ZqAkFGd21tEhdix/sV/5NmDGX6TYdo=; b=D8Cp74qdGLUw4mMK929fkbda8gqJXixv5HrvXTAbnxsd4TqzOnS/5cbrXRVMeWk1ab DIHv7RL4jHPPBwcyQIcPm5Gswkny0gVRovZt9Feha5ZC96qeSHNGvtOqCXwvtQcvJRfI J+Xa/Ho6vW4t+pzeZJhuQLPhXbhQV0LqVXpkIWAWFViIcoKd5KBT5bw9F7PmmGm9Fvg5 OkoJm4GKjYVhBCP07ennvC/cr5jOhND3+pbXlRmBvhpDFAhAH3aKSIrC5jHDmtT9kV4J FNqVopCv/lOTZ/QFdT6KTblaVRpKDGSUtxIGPRKti2WFhehVhPHSGSC9unuUV/ScUbQ7 yQZA== X-Gm-Message-State: AOJu0YyZxdwMGtwaDXrARU+x6zLLILHB/xzjRuk6DoCcRtC8UEmdb61W VaMMZhkTN7RCGx7D29siW8oRRZ9VD1xi7f92wi0l1Sz0MWAqj5QVFlLPk1SyzUUv8D2ijAAkOEm MOZg6goFKNfA70ZNTkiUxY50nlblrFjWtCI42QZcB7Hl5OUj4lMSHK8+1sk6u1CA= X-Gm-Gg: ASbGncvM0eFNkOklCU6LgSFOfdMFTq/k0/XDpZIoF11HAFe6D0/rRiI4xzxbFGJ+Sc9 cIRt8XfdtHUJv/6Idjlj9/PtKh0kAdt0AjC3uIqqwDng7BD9MB9LHiI1rQOQC/ZTaQroSbDrRGZ XwFjhMQ5igDuhb6KXhKTYnW3KmFKkOd6W3M3db1QjLjcZYslpLW/Tao40e17e0RxGB9KKuR0OkL IPfRy9682ug0UHhyT91Viq4xc0fJeIsvTpGly1OtixQmV1xnS9M4tKEu1hTt4XZInzqIwstEG// b8nSuTpnlf2DE2ooLrFwJhkR9xdoYItQ3jL8oRwTCrJ3Waea0VlnFPHrGQ== X-Google-Smtp-Source: AGHT+IFw+pYuh/hhu3uQKq3Z6yyMlE2rLtpcI9p9YqPKQ2gQQtd2ttfUI/Lj6vdpf9yJ/t3BzgHB8woUo+nvQlO2y/c= X-Received: by 2002:a05:690e:15c6:b0:63f:a324:bbf3 with SMTP id 956f58d0204a3-63fd357114emr1758391d50.42.1762339042583; Wed, 05 Nov 2025 02:37:22 -0800 (PST) MIME-Version: 1.0 References: <20251031.084526.310963640592087194.ishii@postgresql.org> <20251101.153614.73929001756644634.ishii@postgresql.org> <20251103.160534.1221876310577228273.ishii@postgresql.org> In-Reply-To: <20251103.160534.1221876310577228273.ishii@postgresql.org> From: Nadav Shatz Date: Wed, 5 Nov 2025 12:37:09 +0200 X-Gm-Features: AWmQ_blV8Ib-sqYISFhv2F3jCufUq2hp7NBmzBHQ5MosshAB9y_ptg-cOV4Jvjg Message-ID: Subject: Re: Proposal: recent access based routing for primary-replica setups To: Tatsuo Ishii Cc: pgpool-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="0000000000009bc5310642d6887c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009bc5310642d6887c Content-Type: multipart/alternative; boundary="0000000000009bc52f0642d6887a" --0000000000009bc52f0642d6887a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sorry for that - thanks for the patch. Please find attached a new version On Mon, Nov 3, 2025 at 9:05=E2=80=AFAM Tatsuo Ishii = wrote: > > thanks and sorry for the issues, please find attached updated version. > > No problem. > > This time the patch applies fine, no compiler warnings. However, > regression test did not passed here (on Ubuntu 24 LTS if this > matters). So I looked into > src/test/regression/tests/041.external_replication_delay/test.sh a > little bit and apply attached patch (test.sh.patch). It moved forward > partially but failed at: > > fail: command execution failure not detected > > Please find attached > src/test/regression/tests/041.external_replication_delay/testdir/pgpool.l= og > and src/test/regression/log/041.external_replication_delay. > > Best regards, > -- > Tatsuo Ishii > SRA OSS K.K. > English: http://www.sraoss.co.jp/index_en/ > Japanese:http://www.sraoss.co.jp > --=20 Nadav Shatz Tailor Brands | CTO --0000000000009bc52f0642d6887a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Sorry for that - thanks for the patch.

= Please find attached a new version

On Mon, Nov 3= , 2025 at 9:05=E2=80=AFAM Tatsuo Ishii <ishii@postgresql.org> wrote:
> thanks and sorry for the issues, please fi= nd attached updated version.

No problem.

This time the patch applies fine, no compiler warnings.=C2=A0 However,
regression test did not passed here (on Ubuntu 24 LTS if this
matters).=C2=A0 So I looked into
src/test/regression/tests/041.external_replication_delay/test.sh a
little bit and apply attached patch (test.sh.patch). It moved forward
partially but failed at:

fail: command execution failure not detected

Please find attached
src/test/regression/tests/041.external_replication_delay/testdir/pgpool.log=
and src/test/regression/log/041.external_replication_delay.

Best regards,
--
Tatsuo Ishii
SRA OSS K.K.
English: http://www.sraoss.co.jp/index_en/
Japanese:http://www.sraoss.co.jp


--
Nadav Shatz
<= font color=3D"#000000">Tailor Brands=C2=A0| CTO
--0000000000009bc52f0642d6887a-- --0000000000009bc5310642d6887c Content-Type: application/octet-stream; name="external-replication-delay.mbox" Content-Disposition: attachment; filename="external-replication-delay.mbox" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhlv5k8m0 RnJvbSBiMjZlMWUxYTY1YTgxNWIyZDhhOGNkZDc5YzAzOWVkNWEyODNlMzQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOYWRhdiBTaGF0eiA8bmFkYXZAdGFpbG9yYnJhbmRzLmNvbT4K RGF0ZTogU3VuLCAyIE5vdiAyMDI1IDEzOjA4OjMzICswMjAwClN1YmplY3Q6IFtQQVRDSF0gZmVh dDogZXh0ZXJuYWwgcmVwbGljYXRpb24gZGVsYXkgaW5qZWN0aW9uIHZpYSBleHRlcm5hbAogY29t bWFuZAoKSW1wbGVtZW50YXRpb246Ci0gQWRkIHJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV9jbWQg Y29uZmlndXJhdGlvbiBzdHJpbmcgb3B0aW9uCi0gQ29tbWFuZCByZWNlaXZlcyByZXBsaWNhIG5v ZGUgaWRlbnRpZmllcnMgaW4gaG9zdDpwb3J0IGZvcm1hdAotIFByaW1hcnkgbm9kZSBvbWl0dGVk IGZyb20gY29tbWFuZCBhcmd1bWVudHMgYW5kIG91dHB1dAotIEhhbmRsZSAtMSBmb3IgZG93biBu b2RlcyAobG9nIHdpdGhvdXQgdHJpZ2dlcmluZyBmYWlsb3ZlcikKLSBDb21tYW5kIG91dHB1dHMg b25lIGRlbGF5IHZhbHVlIChtcykgcGVyIHJlcGxpY2EKLSBGYWxscyBiYWNrIHRvIGJ1aWx0aW4g cXVlcmllcyBpZiBjb21tYW5kIG5vdCBjb25maWd1cmVkCi0gVGltZW91dCBoYW5kbGluZyB3aXRo IHJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV90aW1lb3V0Ci0gVXNlIHBzcHJpbnRmKCkgZm9yIGNs ZWFuZXIgY29kZQotIEZpeCBpbmRlbnRhdGlvbiBhbmQgcmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3Bh Y2UKClRlc3RzOgotIFZlcmlmeSBjb21tYW5kIHJlY2VpdmVzIHJlcGxpY2FzIG9ubHkgKHByaW1h cnkgb21pdHRlZCkKLSBWZXJpZnkgaG9zdDpwb3J0IGlkZW50aWZpZXIgZm9ybWF0Ci0gVGVzdCAt MSBoYW5kbGluZyBmb3IgZG93biBub2RlcwotIFRlc3QgaW50ZWdlciBhbmQgZmxvYXQgZGVsYXkg dmFsdWVzCi0gVGVzdCB2YWxpZGF0aW9uLCB0aW1lb3V0cywgYW5kIGVycm9yIGhhbmRsaW5nCi0g VGVzdCB3cm9uZyBvdXRwdXQgY291bnRzIGFuZCBlZGdlIGNhc2VzCgpEb2N1bWVudGF0aW9uOgot IERvY3VtZW50IHJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV9jbWQgd2l0aCByZXBsaWNhLW9ubHkg c2VtYW50aWNzCi0gRG9jdW1lbnQgLTEgZm9yIGRvd24gbm9kZXMKLSBQcm92aWRlIGV4YW1wbGVz IHdpdGggY29ycmVjdCBvdXRwdXQgZm9ybWF0Ci0gVXBkYXRlIHJlcGxpY2F0aW9uX2RlbGF5X3Nv dXJjZV90aW1lb3V0IGRvY3MKLS0tCiBkb2Mvc3JjL3NnbWwvc3RyZWFtLWNoZWNrLnNnbWwgICAg ICAgICAgICAgICAgfCAgNjggKysrCiBzcmMvY29uZmlnL3Bvb2xfY29uZmlnX3ZhcmlhYmxlcy5j ICAgICAgICAgICAgfCAgMjEgKwogc3JjL2luY2x1ZGUvcG9vbF9jb25maWcuaCAgICAgICAgICAg ICAgICAgICAgIHwgICAzICstCiBzcmMvc2FtcGxlL3BncG9vbC5jb25mLnNhbXBsZS1zdHJlYW0g ICAgICAgICAgfCAgMTQgKwogc3JjL3N0cmVhbWluZ19yZXBsaWNhdGlvbi9wb29sX3dvcmtlcl9j aGlsZC5jIHwgMzM2ICsrKysrKysrKysrKysrLQogLi4uLzA0MS5leHRlcm5hbF9yZXBsaWNhdGlv bl9kZWxheS9SRUFETUUgICAgIHwgIDU5ICsrKwogLi4uLzA0MS5leHRlcm5hbF9yZXBsaWNhdGlv bl9kZWxheS90ZXN0LnNoICAgIHwgNDA0ICsrKysrKysrKysrKysrKysrKwogLi4uL3Rlc3RfcGFy c2luZy5zaCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDU0ICsrKwogLi4uL3Rlc3RfdmFs aWRhdGlvbi5zaCAgICAgICAgICAgICAgICAgICAgICAgIHwgMzIzICsrKysrKysrKysrKysrCiA5 IGZpbGVzIGNoYW5nZWQsIDEyNzcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzaW9uL3Rlc3RzLzA0MS5leHRlcm5hbF9yZXBs aWNhdGlvbl9kZWxheS9SRUFETUUKIGNyZWF0ZSBtb2RlIDEwMDc1NSBzcmMvdGVzdC9yZWdyZXNz aW9uL3Rlc3RzLzA0MS5leHRlcm5hbF9yZXBsaWNhdGlvbl9kZWxheS90ZXN0LnNoCiBjcmVhdGUg bW9kZSAxMDA3NTUgc3JjL3Rlc3QvcmVncmVzc2lvbi90ZXN0cy8wNDEuZXh0ZXJuYWxfcmVwbGlj YXRpb25fZGVsYXkvdGVzdF9wYXJzaW5nLnNoCiBjcmVhdGUgbW9kZSAxMDA3NTUgc3JjL3Rlc3Qv cmVncmVzc2lvbi90ZXN0cy8wNDEuZXh0ZXJuYWxfcmVwbGljYXRpb25fZGVsYXkvdGVzdF92YWxp ZGF0aW9uLnNoCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3N0cmVhbS1jaGVjay5zZ21sIGIv ZG9jL3NyYy9zZ21sL3N0cmVhbS1jaGVjay5zZ21sCmluZGV4IGQyY2EzY2E0OS4uZmM0Nzk5MDgw IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvc3RyZWFtLWNoZWNrLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3N0cmVhbS1jaGVjay5zZ21sCkBAIC0zMDksNiArMzA5LDc0IEBAIEdSQU5UIHBnX21v bml0b3IgVE8gc3JfY2hlY2tfdXNlcjsKICAgICA8L2xpc3RpdGVtPgogICA8L3Zhcmxpc3RlbnRy eT4KIAorICA8dmFybGlzdGVudHJ5IGlkPSJndWMtcmVwbGljYXRpb24tZGVsYXktc291cmNlLWNt ZCIgeHJlZmxhYmVsPSJyZXBsaWNhdGlvbl9kZWxheV9zb3VyY2VfY21kIj4KKyAgIDx0ZXJtPjx2 YXJuYW1lPnJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV9jbWQ8L3Zhcm5hbWU+ICg8dHlwZT5zdHJp bmc8L3R5cGU+KQorICAgIDxpbmRleHRlcm0+CisgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnJlcGxp Y2F0aW9uX2RlbGF5X3NvdXJjZV9jbWQ8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVy PC9wcmltYXJ5PgorICAgIDwvaW5kZXh0ZXJtPgorICAgPC90ZXJtPgorICAgPGxpc3RpdGVtPgor ICAgIDxwYXJhPgorICAgICBTcGVjaWZpZXMgYW4gZXh0ZXJuYWwgY29tbWFuZCB0byByZXRyaWV2 ZSByZXBsaWNhdGlvbiBkZWxheSBpbmZvcm1hdGlvbiBmb3IgcmVwbGljYSBub2Rlcy4KKyAgICAg V2hlbiB0aGlzIHBhcmFtZXRlciBpcyBzZXQgYW5kIG5vdCBlbXB0eSwgPHByb2R1Y3RuYW1lPlBn cG9vbC1JSTwvcHJvZHVjdG5hbWU+IHVzZXMgdGhlCisgICAgIGV4dGVybmFsIGNvbW1hbmQgaW5z dGVhZCBvZiBidWlsdC1pbiBkYXRhYmFzZSBxdWVyaWVzIHRvIG9idGFpbiByZXBsaWNhdGlvbiBk ZWxheXMuCisgICAgIFRoZSBjb21tYW5kIGlzIGV4ZWN1dGVkIGFzIHRoZSA8cHJvZHVjdG5hbWU+ UGdwb29sLUlJPC9wcm9kdWN0bmFtZT4gcHJvY2VzcyB1c2VyLgorICAgIDwvcGFyYT4KKyAgICA8 cGFyYT4KKyAgICAgVGhlIGNvbW1hbmQgcmVjZWl2ZXMgcmVwbGljYSBub2RlIGlkZW50aWZpZXJz IGFzIHBvc2l0aW9uYWwgYXJndW1lbnRzLCB3aXRoIHRoZSBwcmltYXJ5CisgICAgIG5vZGUgb21p dHRlZC4gRWFjaCBpZGVudGlmaWVyIGlzIGluIHRoZSBmb3JtYXQgPGxpdGVyYWw+Jmx0O2hvc3Ru YW1lJmd0OzombHQ7cG9ydCZndDs8L2xpdGVyYWw+LAorICAgICBmb3IgZXhhbXBsZSA8bGl0ZXJh bD5zZXJ2ZXIxOjU0MzIgc2VydmVyMjo1NDMyPC9saXRlcmFsPi4gVGhlIG9yZGVyIG1hdGNoZXMK KyAgICAgPHByb2R1Y3RuYW1lPlBncG9vbC1JSTwvcHJvZHVjdG5hbWU+J3MgYmFja2VuZCBvcmRl ciAoZXhjbHVkaW5nIHRoZSBwcmltYXJ5KSwgYWxsb3dpbmcgdGhlCisgICAgIHNjcmlwdCB0byBj b3JyZWxhdGUgZXh0ZXJuYWwgbWV0cmljcyAoc3VjaCBhcyBmcm9tIEFXUyBDbG91ZFdhdGNoIGZv ciBBdXJvcmEpIHRvIHRoZSBjb3JyZWN0IG5vZGVzLgorICAgIDwvcGFyYT4KKyAgICA8cGFyYT4K KyAgICAgVGhlIGNvbW1hbmQgbXVzdCB3cml0ZSBhIHNpbmdsZSBsaW5lIHRvIHN0ZG91dCBjb250 YWluaW5nIG9uZSB3aGl0ZXNwYWNlLXNlcGFyYXRlZCBkZWxheSB2YWx1ZQorICAgICBwZXIgcmVw bGljYSwgaW4gbWlsbGlzZWNvbmRzLCBpbiB0aGUgc2FtZSBvcmRlciBhcyB0aGUgYXJndW1lbnRz LiBUaGUgcHJpbWFyeSBub2RlJ3MgZGVsYXkgaXMKKyAgICAgaW1wbGljaXRseSB6ZXJvIGFuZCBz aG91bGQgbm90IGJlIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIERlbGF5IHZhbHVlcyBjYW4gYmUg aW50ZWdlcnMgb3IKKyAgICAgZmxvYXRpbmctcG9pbnQgbnVtYmVycy4KKyAgICA8L3BhcmE+Cisg ICAgPHBhcmE+CisgICAgIFNwZWNpYWwgdmFsdWU6IDxsaXRlcmFsPi0xPC9saXRlcmFsPiBpbmRp Y2F0ZXMgYSByZXBsaWNhIHRoYXQgaXMgZG93biBidXQgbm90IHlldCBkZXRlY3RlZAorICAgICBi eSA8cHJvZHVjdG5hbWU+UGdwb29sLUlJPC9wcm9kdWN0bmFtZT4ncyBoZWFsdGggY2hlY2tzLiA8 cHJvZHVjdG5hbWU+UGdwb29sLUlJPC9wcm9kdWN0bmFtZT4KKyAgICAgd2lsbCBsb2cgdGhpcyBj b25kaXRpb24gYnV0IHJlbHkgb24gaXRzIG93biBoZWFsdGgtY2hlY2sgbG9naWMgdG8gZGVjaWRl IHdoZXRoZXIgdG8gdHJpZ2dlcgorICAgICBmYWlsb3Zlcjsgbm8gZmFpbG92ZXIgaXMgdHJpZ2dl cmVkIHNvbGVseSBieSByZWNlaXZpbmcgPGxpdGVyYWw+LTE8L2xpdGVyYWw+LgorICAgIDwvcGFy YT4KKyAgICA8cGFyYT4KKyAgICAgRXhhbXBsZSBmb3IgYSAzLW5vZGUgY2x1c3RlciAoMSBwcmlt YXJ5ICsgMiByZXBsaWNhcyk6IGlmIHRoZSBjb21tYW5kIHJlY2VpdmVzIGFyZ3VtZW50cworICAg ICA8bGl0ZXJhbD5zZXJ2ZXIxOjU0MzIgc2VydmVyMjo1NDMyPC9saXRlcmFsPiwgaXQgc2hvdWxk IG91dHB1dCA8bGl0ZXJhbD4iMjUuNSAxMDAiPC9saXRlcmFsPgorICAgICB0byBpbmRpY2F0ZSB0 aGUgZmlyc3QgcmVwbGljYSBoYXMgMjUuNW1zIGRlbGF5IGFuZCB0aGUgc2Vjb25kIGhhcyAxMDBt cyBkZWxheS4KKyAgICA8L3BhcmE+CisgICAgPHBhcmE+CisgICAgIERlZmF1bHQgaXMgZW1wdHkg KHVzZSBidWlsdC1pbiByZXBsaWNhdGlvbiBkZWxheSBxdWVyaWVzKS4KKyAgICA8L3BhcmE+Cisg ICAgPHBhcmE+CisgICAgIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSBjaGFuZ2VkIGJ5IHJlbG9hZGlu ZyB0aGUgPHByb2R1Y3RuYW1lPlBncG9vbC1JSTwvPiBjb25maWd1cmF0aW9ucy4KKyAgICA8L3Bh cmE+CisgICA8L2xpc3RpdGVtPgorICA8L3Zhcmxpc3RlbnRyeT4KKworICA8dmFybGlzdGVudHJ5 IGlkPSJndWMtcmVwbGljYXRpb24tZGVsYXktc291cmNlLXRpbWVvdXQiIHhyZWZsYWJlbD0icmVw bGljYXRpb25fZGVsYXlfc291cmNlX3RpbWVvdXQiPgorICAgPHRlcm0+PHZhcm5hbWU+cmVwbGlj YXRpb25fZGVsYXlfc291cmNlX3RpbWVvdXQ8L3Zhcm5hbWU+ICg8dHlwZT5pbnRlZ2VyPC90eXBl PikKKyAgICA8aW5kZXh0ZXJtPgorICAgICA8cHJpbWFyeT48dmFybmFtZT5yZXBsaWNhdGlvbl9k ZWxheV9zb3VyY2VfdGltZW91dDwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3By aW1hcnk+CisgICAgPC9pbmRleHRlcm0+CisgICA8L3Rlcm0+CisgICA8bGlzdGl0ZW0+CisgICAg PHBhcmE+CisgICAgIFNwZWNpZmllcyB0aGUgdGltZW91dCBpbiBzZWNvbmRzIGZvciB0aGUgZXh0 ZXJuYWwgY29tbWFuZCBzcGVjaWZpZWQgYnkKKyAgICAgPHhyZWYgbGlua2VuZD0iZ3VjLXJlcGxp Y2F0aW9uLWRlbGF5LXNvdXJjZS1jbWQiPi4KKyAgICAgSWYgdGhlIGNvbW1hbmQgZG9lcyBub3Qg ZmluaXNoIHdpdGhpbiB0aGUgdGltZW91dCwgPHByb2R1Y3RuYW1lPlBncG9vbC1JSTwvcHJvZHVj dG5hbWU+CisgICAgIGxvZ3MgYW4gZXJyb3IgYW5kIGNvbnRpbnVlcyB1c2luZyB0aGUgYnVpbHQt aW4gbWV0aG9kLgorICAgIDwvcGFyYT4KKyAgICA8cGFyYT4KKyAgICAgRGVmYXVsdCBpcyAxMCBz ZWNvbmRzLiBWYWxpZCByYW5nZSBpcyAxLTM2MDAgc2Vjb25kcy4KKyAgICA8L3BhcmE+CisgICAg PHBhcmE+CisgICAgIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSBjaGFuZ2VkIGJ5IHJlbG9hZGluZyB0 aGUgPHByb2R1Y3RuYW1lPlBncG9vbC1JSTwvPiBjb25maWd1cmF0aW9ucy4KKyAgICA8L3BhcmE+ CisgICA8L2xpc3RpdGVtPgorICA8L3Zhcmxpc3RlbnRyeT4KKwogICA8dmFybGlzdGVudHJ5IGlk PSJndWMtbG9nLXN0YW5kYnktZGVsYXkiIHhyZWZsYWJlbD0ibG9nX3N0YW5kYnlfZGVsYXkiPgog ICAgPHRlcm0+PHZhcm5hbWU+bG9nX3N0YW5kYnlfZGVsYXk8L3Zhcm5hbWU+ICg8dHlwZT5lbnVt PC90eXBlPikKICAgICA8aW5kZXh0ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2NvbmZpZy9wb29sX2Nv bmZpZ192YXJpYWJsZXMuYyBiL3NyYy9jb25maWcvcG9vbF9jb25maWdfdmFyaWFibGVzLmMKaW5k ZXggNjJhMDU5NzlhLi5hMzVkMjIwMGYgMTAwNjQ0Ci0tLSBhL3NyYy9jb25maWcvcG9vbF9jb25m aWdfdmFyaWFibGVzLmMKKysrIGIvc3JjL2NvbmZpZy9wb29sX2NvbmZpZ192YXJpYWJsZXMuYwpA QCAtOTgwLDYgKzk4MCwxNiBAQCBzdGF0aWMgc3RydWN0IGNvbmZpZ19zdHJpbmcgQ29uZmlndXJl TmFtZXNTdHJpbmdbXSA9CiAJCU5VTEwsIE5VTEwsIE5VTEwsIE5VTEwKIAl9LAogCisJeworCQl7 InJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV9jbWQiLCBDRkdDWFRfUkVMT0FELCBTVFJFQU1JTkdf UkVQTElDQVRJT05fQ09ORklHLAorCQkJIkV4dGVybmFsIGNvbW1hbmQgdG8gcmV0cmlldmUgcmVw bGljYXRpb24gZGVsYXkgaW5mb3JtYXRpb24uIiwKKwkJCUNPTkZJR19WQVJfVFlQRV9TVFJJTkcs IGZhbHNlLCAwCisJCX0sCisJCSZnX3Bvb2xfY29uZmlnLnJlcGxpY2F0aW9uX2RlbGF5X3NvdXJj ZV9jbWQsCisJCSIiLAorCQlOVUxMLCBOVUxMLCBOVUxMLCBOVUxMCisJfSwKKwogCXsKIAkJeyJm YWlsYmFja19jb21tYW5kIiwgQ0ZHQ1hUX1JFTE9BRCwgRkFJTE9WRVJfQ09ORklHLAogCQkJIkNv bW1hbmQgdG8gZXhlY3V0ZSB3aGVuIGJhY2tlbmQgbm9kZSBpcyBhdHRhY2hlZC4iLApAQCAtMjMz NCw2ICsyMzQ0LDE3IEBAIHN0YXRpYyBzdHJ1Y3QgY29uZmlnX2ludCBDb25maWd1cmVOYW1lc0lu dFtdID0KIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCiAKKwl7CisJCXsicmVwbGljYXRpb25fZGVs YXlfc291cmNlX3RpbWVvdXQiLCBDRkdDWFRfUkVMT0FELCBTVFJFQU1JTkdfUkVQTElDQVRJT05f Q09ORklHLAorCQkJIlRpbWVvdXQgZm9yIGV4dGVybmFsIHJlcGxpY2F0aW9uIGRlbGF5IGNvbW1h bmQgZXhlY3V0aW9uIGluIHNlY29uZHMuIiwKKwkJCUNPTkZJR19WQVJfVFlQRV9JTlQsIGZhbHNl LCAwCisJCX0sCisJCSZnX3Bvb2xfY29uZmlnLnJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV90aW1l b3V0LAorCQkxMCwKKwkJMSwgMzYwMCwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisKIAkvKiBF bmQtb2YtbGlzdCBtYXJrZXIgKi8KIAlFTVBUWV9DT05GSUdfSU5UCiB9OwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcG9vbF9jb25maWcuaCBiL3NyYy9pbmNsdWRlL3Bvb2xfY29uZmlnLmgKaW5k ZXggOTE2MGEzMWM4Li41YmM2NDY4MDUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bvb2xfY29u ZmlnLmgKKysrIGIvc3JjL2luY2x1ZGUvcG9vbF9jb25maWcuaApAQCAtODYsNyArODYsNiBAQCB0 eXBlZGVmIGVudW0gTG9nU3RhbmRieURlbGF5TW9kZXMKIAlMU0RfTk9ORQogfSBMb2dTdGFuZGJ5 RGVsYXlNb2RlczsKIAotCiB0eXBlZGVmIGVudW0gTWVtQ2FjaGVNZXRob2QKIHsKIAlTSE1FTV9D QUNIRSA9IDEsCkBAIC0zNjMsNiArMzYyLDggQEAgdHlwZWRlZiBzdHJ1Y3QKIAljaGFyCSAgICpz cl9jaGVja19wYXNzd29yZDsJLyogcGFzc3dvcmQgZm9yIHNyX2NoZWNrX3VzZXIgKi8KIAljaGFy CSAgICpzcl9jaGVja19kYXRhYmFzZTsJLyogUG9zdGdyZVNRTCBkYXRhYmFzZSBuYW1lIGZvciBz dHJlYW1pbmcKIAkJCQkJCQkJCSAqIHJlcGxpY2F0aW9uIGNoZWNrICovCisJY2hhcgkgICAqcmVw bGljYXRpb25fZGVsYXlfc291cmNlX2NtZDsJLyogZXh0ZXJuYWwgY29tbWFuZCBmb3IgcmVwbGlj YXRpb24gZGVsYXkgKi8KKwlpbnQJCQlyZXBsaWNhdGlvbl9kZWxheV9zb3VyY2VfdGltZW91dDsJ LyogdGltZW91dCBmb3IgZXh0ZXJuYWwgY29tbWFuZCBpbiBzZWNvbmRzICovCiAJY2hhcgkgICAq ZmFpbG92ZXJfY29tbWFuZDsJLyogZXhlY3V0ZSBjb21tYW5kIHdoZW4gZmFpbG92ZXIgaGFwcGVu cyAqLwogCWNoYXIJICAgKmZvbGxvd19wcmltYXJ5X2NvbW1hbmQ7IC8qIGV4ZWN1dGUgY29tbWFu ZCB3aGVuIGZhaWxvdmVyIGlzCiAJCQkJCQkJCQkJICogZW5kZWQgKi8KZGlmZiAtLWdpdCBhL3Ny Yy9zYW1wbGUvcGdwb29sLmNvbmYuc2FtcGxlLXN0cmVhbSBiL3NyYy9zYW1wbGUvcGdwb29sLmNv bmYuc2FtcGxlLXN0cmVhbQppbmRleCBiYTZiOTIzYjAuLjM0NDYyZmQ1OSAxMDA2NDQKLS0tIGEv c3JjL3NhbXBsZS9wZ3Bvb2wuY29uZi5zYW1wbGUtc3RyZWFtCisrKyBiL3NyYy9zYW1wbGUvcGdw b29sLmNvbmYuc2FtcGxlLXN0cmVhbQpAQCAtNTE5LDYgKzUxOSwyMCBAQCBiYWNrZW5kX2NsdXN0 ZXJpbmdfbW9kZSA9IHN0cmVhbWluZ19yZXBsaWNhdGlvbgogCiAjc3JfY2hlY2tfZGF0YWJhc2Ug PSAncG9zdGdyZXMnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRGF0YWJh c2UgbmFtZSBmb3Igc3RyZWFtaW5nIHJlcGxpY2F0aW9uIGNoZWNrCisKKyNyZXBsaWNhdGlvbl9k ZWxheV9zb3VyY2VfY21kID0gJycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IyBFeHRlcm5hbCBjb21tYW5kIHRvIHJldHJpZXZlIHJlcGxpY2F0aW9uIGRlbGF5IGluZm9ybWF0 aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgSWYgc2V0LCBwZ3Bvb2wg dXNlcyB0aGlzIGNvbW1hbmQgaW5zdGVhZCBvZiBidWlsdC1pbiBxdWVyaWVzCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgQ29tbWFuZCByZWNlaXZlcyByZXBsaWNhIG5vZGUg aWRlbnRpZmllcnMgKGhvc3Q6cG9ydCkgYXMgYXJndW1lbnRzCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMgUHJpbWFyeSBub2RlIGlzIG9taXR0ZWQgZnJvbSBhcmd1bWVudHMK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBDb21tYW5kIHNob3VsZCBvdXRw dXQgb25lIGRlbGF5IHZhbHVlIChpbiBtcykgcGVyIHJlcGxpY2EKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyBVc2UgLTEgdG8gaW5kaWNhdGUgYSByZXBsaWNhIHRoYXQgaXMg ZG93biBidXQgbm90IHlldCBkZXRlY3RlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjIEZvcm1hdDogIjI1IDEwMCIgZm9yIDIgcmVwbGljYXMgKGUuZy4sIDMtbm9kZSBjbHVz dGVyIHdpdGggMSBwcmltYXJ5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj IENvbW1hbmQgcnVucyBhcyB0aGUgcGdwb29sIHByb2Nlc3MgdXNlcgorI3JlcGxpY2F0aW9uX2Rl bGF5X3NvdXJjZV90aW1lb3V0ID0gMTAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIyBUaW1lb3V0IGZvciBleHRlcm5hbCBjb21tYW5kIGV4ZWN1dGlvbiBpbiBzZWNvbmRzCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgUmFuZ2U6IDEtMzYwMCBzZWNvbmRz IChkZWZhdWx0OiAxMCkKKwogI2RlbGF5X3RocmVzaG9sZCA9IDAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyBUaHJlc2hvbGQgYmVmb3JlIG5vdCBkaXNwYXRjaGluZyBxdWVy eSB0byBzdGFuZGJ5IG5vZGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBV bml0IGlzIGluIGJ5dGVzCmRpZmYgLS1naXQgYS9zcmMvc3RyZWFtaW5nX3JlcGxpY2F0aW9uL3Bv b2xfd29ya2VyX2NoaWxkLmMgYi9zcmMvc3RyZWFtaW5nX3JlcGxpY2F0aW9uL3Bvb2xfd29ya2Vy X2NoaWxkLmMKaW5kZXggNWJmMTljMzdkLi44MWRjODI5MjIgMTAwNjQ0Ci0tLSBhL3NyYy9zdHJl YW1pbmdfcmVwbGljYXRpb24vcG9vbF93b3JrZXJfY2hpbGQuYworKysgYi9zcmMvc3RyZWFtaW5n X3JlcGxpY2F0aW9uL3Bvb2xfd29ya2VyX2NoaWxkLmMKQEAgLTc2LDYgKzc2LDggQEAgc3RhdGlj IHZvbGF0aWxlIHNpZ19hdG9taWNfdCByZXN0YXJ0X3JlcXVlc3QgPSAwOwogc3RhdGljIHZvaWQg ZXN0YWJsaXNoX3BlcnNpc3RlbnRfY29ubmVjdGlvbih2b2lkKTsKIHN0YXRpYyB2b2lkIGRpc2Nh cmRfcGVyc2lzdGVudF9jb25uZWN0aW9uKHZvaWQpOwogc3RhdGljIHZvaWQgY2hlY2tfcmVwbGlj YXRpb25fdGltZV9sYWcodm9pZCk7CitzdGF0aWMgdm9pZCBjaGVja19yZXBsaWNhdGlvbl90aW1l X2xhZ193aXRoX2NtZCh2b2lkKTsKK3N0YXRpYyBjaGFyICpidWlsZF9pbnN0YW5jZV9pZGVudGlm aWVyX2Zvcl9ub2RlKGludCBub2RlX2lkKTsKIHN0YXRpYyB2b2lkIENoZWNrUmVwbGljYXRpb25U aW1lTGFnRXJyb3JDYih2b2lkICphcmcpOwogc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQg dGV4dF90b19sc24oY2hhciAqdGV4dCk7CiBzdGF0aWMgUkVUU0lHVFlQRSBteV9zaWduYWxfaGFu ZGxlcihpbnQgc2lnKTsKQEAgLTI1OSwxMSArMjYxLDE2IEBAIGRvX3dvcmtlcl9jaGlsZCh2b2lk ICpwYXJhbXMpCiAJCQkJCVBPT0xfTk9ERV9TVEFUVVMgKm5vZGVfc3RhdHVzOwogCQkJCQlpbnQJ CQlpOwogCi0JCQkJCS8qIERvIHJlcGxpY2F0aW9uIHRpbWUgbGFnIGNoZWNraW5nICovCi0JCQkJ CWNoZWNrX3JlcGxpY2F0aW9uX3RpbWVfbGFnKCk7CisJCQkvKiBEbyByZXBsaWNhdGlvbiB0aW1l IGxhZyBjaGVja2luZyAqLworCQkJLyogVXNlIGV4dGVybmFsIGNvbW1hbmQgaWYgcmVwbGljYXRp b25fZGVsYXlfc291cmNlX2NtZCBpcyBjb25maWd1cmVkICovCisJCQlpZiAocG9vbF9jb25maWct PnJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV9jbWQgJiYKKwkJCQlzdHJsZW4ocG9vbF9jb25maWct PnJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV9jbWQpID4gMCkKKwkJCQljaGVja19yZXBsaWNhdGlv bl90aW1lX2xhZ193aXRoX2NtZCgpOworCQkJZWxzZQorCQkJCWNoZWNrX3JlcGxpY2F0aW9uX3Rp bWVfbGFnKCk7CiAKLQkJCQkJLyogQ2hlY2sgbm9kZSBzdGF0dXMgKi8KLQkJCQkJbm9kZV9zdGF0 dXMgPSB2ZXJpZnlfYmFja2VuZF9ub2RlX3N0YXR1cyhzbG90cyk7CisJCQkvKiBDaGVjayBub2Rl IHN0YXR1cyAqLworCQkJbm9kZV9zdGF0dXMgPSB2ZXJpZnlfYmFja2VuZF9ub2RlX3N0YXR1cyhz bG90cyk7CiAKIAogCQkJCQlmb3IgKGkgPSAwOyBpIDwgTlVNX0JBQ0tFTkRTOyBpKyspCkBAIC02 NTksNiArNjY2LDMyNyBAQCBjaGVja19yZXBsaWNhdGlvbl90aW1lX2xhZyh2b2lkKQogCWVycm9y X2NvbnRleHRfc3RhY2sgPSBjYWxsYmFjay5wcmV2aW91czsKIH0KIAorI2RlZmluZSBNQVhfQ01E X09VVFBVVCA0MDk2CisjZGVmaW5lIE1BWF9SRUFTT05BQkxFX0RFTEFZX01TIDM2MDAwMDAuMCAg LyogMSBob3VyIGluIG1pbGxpc2Vjb25kcyAqLworCisvKiBHbG9iYWwgdmFyaWFibGUgdG8gdHJh Y2sgY29tbWFuZCB0aW1lb3V0ICovCitzdGF0aWMgdm9sYXRpbGUgc2lnX2F0b21pY190IGNvbW1h bmRfdGltZW91dF9vY2N1cnJlZCA9IDA7CisKKy8qCisgKiBTaWduYWwgaGFuZGxlciBmb3IgY29t bWFuZCB0aW1lb3UKKyAqLworc3RhdGljIHZvaWQKK2NvbW1hbmRfdGltZW91dF9oYW5kbGVyKGlu dCBzaWcpCit7CisJY29tbWFuZF90aW1lb3V0X29jY3VycmVkID0gMTsKK30KKworCisKKy8qCisg KiBDaGVjayByZXBsaWNhdGlvbiB0aW1lIGxhZyB1c2luZyBleHRlcm5hbCBjb21tYW5kCisgKgor ICogVGhlIGV4dGVybmFsIGNvbW1hbmQgcmVjZWl2ZXMgb25seSByZXBsaWNhIChzdGFuZGJ5KSBu b2RlIGlkZW50aWZpZXJzIGFzIGFyZ3VtZW50cywKKyAqIG9taXR0aW5nIHRoZSBwcmltYXJ5IG5v ZGUuIEl0IHJldHVybnMgZGVsYXkgdmFsdWVzIGluIG1pbGxpc2Vjb25kcyBmb3IgZWFjaCByZXBs aWNhLgorICogQSB2YWx1ZSBvZiAtMSBpbmRpY2F0ZXMgYSBub2RlIHRoYXQgaXMgZG93biBidXQg bm90IHlldCBkZXRlY3RlZCBieSBwZ3Bvb2wncyBoZWFsdGggY2hlY2tzLgorICovCitzdGF0aWMg dm9pZAorY2hlY2tfcmVwbGljYXRpb25fdGltZV9sYWdfd2l0aF9jbWQodm9pZCkKK3sKKwlGSUxF CQkgICAqZnA7CisJY2hhcgkJICAgKmNvbW1hbmQ7CisJY2hhcgkJICAgKmxpbmU7CisJY2hhcgkJ ICAgKnRva2VuOworCWNoYXIJCSAgICpzYXZlcHRyOworCWludAkJCQlyZXBsaWNhX2lkeDsKKwlp bnQJCQkJbnVtX3JlcGxpY2FzOworCWRvdWJsZQkJCWRlbGF5X21zOworCXVpbnQ2NAkJCWRlbGF5 OworCWludAkJCQl0b2tlbl9jb3VudCA9IDA7CisJQmFja2VuZEluZm8JICAgKmJraW5mbzsKKwlF cnJvckNvbnRleHRDYWxsYmFjayBjYWxsYmFjazsKKworCWlmIChOVU1fQkFDS0VORFMgPD0gMSkK Kwl7CisJCS8qIElmIHRoZXJlJ3Mgb25seSBvbmUgbm9kZSwgdGhlcmUncyBubyBwb2ludCB0byBk byBjaGVja2luZyAqLworCQlyZXR1cm47CisJfQorCisJaWYgKFJFQUxfUFJJTUFSWV9OT0RFX0lE IDwgMCkKKwl7CisJCS8qIE5vIG5lZWQgdG8gY2hlY2sgaWYgdGhlcmUncyBubyBwcmltYXJ5ICov CisJCXJldHVybjsKKwl9CisKKwlpZiAoIVZBTElEX0JBQ0tFTkQoUkVBTF9QUklNQVJZX05PREVf SUQpKQorCXsKKwkJLyogTm8gbmVlZCB0byBjaGVjayByZXBsaWNhdGlvbiBkZWxheSBpZiBwcmlt YXJ5IGlzIGRvd24gKi8KKwkJcmV0dXJuOworCX0KKworCWlmICghcG9vbF9jb25maWctPnJlcGxp Y2F0aW9uX2RlbGF5X3NvdXJjZV9jbWQgfHwKKwkJc3RybGVuKHBvb2xfY29uZmlnLT5yZXBsaWNh dGlvbl9kZWxheV9zb3VyY2VfY21kKSA9PSAwKQorCXsKKwkJZXJlcG9ydChXQVJOSU5HLAorCQkJ CShlcnJtc2coInJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV9jbWQgaXMgbm90IGNvbmZpZ3VyZWQi KSwKKwkJCQkgZXJyaGludCgiU2V0IHJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV9jbWQgdG8gdXNl IGV4dGVybmFsIGNvbW1hbmQgbW9kZSIpKSk7CisJCS8qIEZhbGwgYmFjayB0byBidWlsdGluIG1l dGhvZCAqLworCQljaGVja19yZXBsaWNhdGlvbl90aW1lX2xhZygpOworCQlyZXR1cm47CisJfQor CisJLyogQWxsb2NhdGUgYnVmZmVyIGZvciBjb21tYW5kIG91dHB1dCAqLworCWxpbmUgPSBwYWxs b2MoTUFYX0NNRF9PVVRQVVQpOworCWZwID0gTlVMTDsKKworCS8qCisJICogUmVnaXN0ZXIgYSBl cnJvciBjb250ZXh0IGNhbGxiYWNrIHRvIHRocm93IHByb3BlciBjb250ZXh0IG1lc3NhZ2UKKwkg Ki8KKwljYWxsYmFjay5jYWxsYmFjayA9IENoZWNrUmVwbGljYXRpb25UaW1lTGFnRXJyb3JDYjsK KwljYWxsYmFjay5hcmcgPSBOVUxMOworCWNhbGxiYWNrLnByZXZpb3VzID0gZXJyb3JfY29udGV4 dF9zdGFjazsKKwllcnJvcl9jb250ZXh0X3N0YWNrID0gJmNhbGxiYWNrOworCisJLyogRXhlY3V0 ZSBjb21tYW5kIGFzIGN1cnJlbnQgcHJvY2VzcyB1c2VyICovCisJUEdfVFJZKCk7CisJeworCQlj b25zdCBjaGFyICpiYXNlX2NvbW1hbmQgPSBwb29sX2NvbmZpZy0+cmVwbGljYXRpb25fZGVsYXlf c291cmNlX2NtZDsKKwkJc2l6ZV90IHRvdGFsX2xlbiA9IHN0cmxlbihiYXNlX2NvbW1hbmQpICsg MTsgLyogKzEgZm9yIE5VTCAqLworCisJCS8qIEJ1aWxkIGNvbW1hbmQgd2l0aCByZXBsaWNhLW9u bHkgYXJndW1lbnRzIChvbWl0IHByaW1hcnkpICovCisJCS8qIENhbGN1bGF0ZSB0b3RhbCBjb21t YW5kIGxlbmd0aCBpbmNsdWRpbmcgc3BhY2Utc2VwYXJhdGVkIHJlcGxpY2EgaWRlbnRpZmllcnMg Ki8KKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBOVU1fQkFDS0VORFM7IGkrKykKKwkJeworCQkJaWYg KGkgPT0gUkVBTF9QUklNQVJZX05PREVfSUQpCisJCQkJY29udGludWU7IC8qIFNraXAgcHJpbWFy eSBub2RlICovCisKKwkJCWNoYXIgKmlkZW50ID0gYnVpbGRfaW5zdGFuY2VfaWRlbnRpZmllcl9m b3Jfbm9kZShpKTsKKwkJCXRvdGFsX2xlbiArPSAxIC8qIHNwYWNlICovICsgc3RybGVuKGlkZW50 KTsKKwkJCXBmcmVlKGlkZW50KTsKKwkJfQorCisJCWNvbW1hbmQgPSBwYWxsb2ModG90YWxfbGVu KTsKKwkJc3RybGNweShjb21tYW5kLCBiYXNlX2NvbW1hbmQsIHRvdGFsX2xlbik7CisKKwkJLyog QXBwZW5kIHJlcGxpY2EgaWRlbnRpZmllcnMgKi8KKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBOVU1f QkFDS0VORFM7IGkrKykKKwkJeworCQkJaWYgKGkgPT0gUkVBTF9QUklNQVJZX05PREVfSUQpCisJ CQkJY29udGludWU7IC8qIFNraXAgcHJpbWFyeSBub2RlICovCisKKwkJCWNoYXIgKmlkZW50ID0g YnVpbGRfaW5zdGFuY2VfaWRlbnRpZmllcl9mb3Jfbm9kZShpKTsKKwkJCXN0cmxjYXQoY29tbWFu ZCwgIiAiLCB0b3RhbF9sZW4pOworCQkJc3RybGNhdChjb21tYW5kLCBpZGVudCwgdG90YWxfbGVu KTsKKwkJCXBmcmVlKGlkZW50KTsKKwkJfQorCisJCWVyZXBvcnQoREVCVUcxLAorCQkJCShlcnJt c2coImV4ZWN1dGluZyByZXBsaWNhdGlvbiBkZWxheSBjb21tYW5kOiAlcyIsIGNvbW1hbmQpKSk7 CisKKwkJLyogU2V0IHVwIHRpbWVvdXQgZm9yIGNvbW1hbmQgZXhlY3V0aW9uICovCisJCWNvbW1h bmRfdGltZW91dF9vY2N1cnJlZCA9IDA7CisJCXNpZ25hbChTSUdBTFJNLCBjb21tYW5kX3RpbWVv dXRfaGFuZGxlcik7CisJCWFsYXJtKHBvb2xfY29uZmlnLT5yZXBsaWNhdGlvbl9kZWxheV9zb3Vy Y2VfdGltZW91dCk7CisKKwkJZnAgPSBwb3Blbihjb21tYW5kLCAiciIpOworCQlpZiAoZnAgPT0g TlVMTCkKKwkJeworCQkJYWxhcm0oMCk7IC8qIENhbmNlbCBhbGFybSAqLworCQkJc2lnbmFsKFNJ R0FMUk0sIFNJR19ERkwpOworCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycm1zZygiZmFpbGVk IHRvIGV4ZWN1dGUgcmVwbGljYXRpb24gZGVsYXkgY29tbWFuZDogJXMiLCBjb21tYW5kKSwKKwkJ CQkJIGVycmRldGFpbCgicG9wZW4gZmFpbGVkOiAlbSIpKSk7CisJCX0KKworCQlpZiAoZmdldHMo bGluZSwgTUFYX0NNRF9PVVRQVVQsIGZwKSA9PSBOVUxMKQorCQl7CisJCQlpbnQgcGNsb3NlX3Jl c3VsdCA9IHBjbG9zZShmcCk7CisJCQlmcCA9IE5VTEw7CisJCQlhbGFybSgwKTsgLyogQ2FuY2Vs IGFsYXJtICovCisJCQlzaWduYWwoU0lHQUxSTSwgU0lHX0RGTCk7CisKKwkJCWlmIChjb21tYW5k X3RpbWVvdXRfb2NjdXJyZWQpCisJCQl7CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJt c2coInJlcGxpY2F0aW9uIGRlbGF5IGNvbW1hbmQgdGltZWQgb3V0IGFmdGVyICVkIHNlY29uZHM6 ICVzIiwKKwkJCQkJCQkJcG9vbF9jb25maWctPnJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV90aW1l b3V0LCBjb21tYW5kKSwKKwkJCQkJCSBlcnJoaW50KCJDb25zaWRlciBpbmNyZWFzaW5nIHJlcGxp Y2F0aW9uX2RlbGF5X3NvdXJjZV90aW1lb3V0IG9yIG9wdGltaXppbmcgdGhlIGNvbW1hbmQiKSkp OworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJybXNn KCJmYWlsZWQgdG8gcmVhZCBvdXRwdXQgZnJvbSByZXBsaWNhdGlvbiBkZWxheSBjb21tYW5kOiAl cyIsIGNvbW1hbmQpLAorCQkJCQkJIGVycmRldGFpbCgiY29tbWFuZCBleGl0IHN0YXR1czogJWQi LCBwY2xvc2VfcmVzdWx0KSkpOworCQkJfQorCQl9CisKKwkJYWxhcm0oMCk7IC8qIENhbmNlbCBh bGFybSAqLworCQlzaWduYWwoU0lHQUxSTSwgU0lHX0RGTCk7CisKKwkJLyogQ2hlY2sgaWYgb3V0 cHV0IHdhcyB0cnVuY2F0ZWQgKi8KKwkJaWYgKHN0cmxlbihsaW5lKSA9PSBNQVhfQ01EX09VVFBV VCAtIDEgJiYgbGluZVtNQVhfQ01EX09VVFBVVCAtIDJdICE9ICdcbicpCisJCXsKKwkJCWVyZXBv cnQoV0FSTklORywKKwkJCQkJKGVycm1zZygicmVwbGljYXRpb24gZGVsYXkgY29tbWFuZCBvdXRw dXQgbWF5IGhhdmUgYmVlbiB0cnVuY2F0ZWQiKSkpOworCQl9CisKKwkJcGNsb3NlKGZwKTsKKwkJ ZnAgPSBOVUxMOworCQlwZnJlZShjb21tYW5kKTsKKwkJY29tbWFuZCA9IE5VTEw7CisKKwkJLyog U2V0IHByaW1hcnkgbm9kZSBkZWxheSB0byAwICovCisJCWJraW5mbyA9IHBvb2xfZ2V0X25vZGVf aW5mbyhSRUFMX1BSSU1BUllfTk9ERV9JRCk7CisJCWJraW5mby0+c3RhbmRieV9kZWxheSA9IDA7 CisJCWJraW5mby0+c3RhbmRieV9kZWxheV9ieV90aW1lID0gdHJ1ZTsKKworCQkvKiBDb3VudCBl eHBlY3RlZCByZXBsaWNhcyAqLworCQludW1fcmVwbGljYXMgPSBOVU1fQkFDS0VORFMgLSAxOyAv KiBUb3RhbCBub2RlcyBtaW51cyBwcmltYXJ5ICovCisKKwkJLyogQ291bnQgdG9rZW5zIGluIG91 dHB1dCBmb3IgdmFsaWRhdGlvbiAqLworCQljaGFyICpsaW5lX2NvcHkgPSBwc3RyZHVwKGxpbmUp OworCQljaGFyICp0ZW1wX3Rva2VuID0gc3RydG9rKGxpbmVfY29weSwgIiBcdFxuIik7CisJCXdo aWxlICh0ZW1wX3Rva2VuICE9IE5VTEwpCisJCXsKKwkJCXRva2VuX2NvdW50Kys7CisJCQl0ZW1w X3Rva2VuID0gc3RydG9rKE5VTEwsICIgXHRcbiIpOworCQl9CisJCXBmcmVlKGxpbmVfY29weSk7 CisKKwkJaWYgKHRva2VuX2NvdW50ICE9IG51bV9yZXBsaWNhcykKKwkJeworCQkJZXJlcG9ydChX QVJOSU5HLAorCQkJCQkoZXJybXNnKCJyZXBsaWNhdGlvbiBkZWxheSBjb21tYW5kIHJldHVybmVk ICVkIHZhbHVlcywgZXhwZWN0ZWQgJWQgKG9uZSBwZXIgcmVwbGljYSwgZXhjbHVkaW5nIHByaW1h cnkpIiwKKwkJCQkJCQl0b2tlbl9jb3VudCwgbnVtX3JlcGxpY2FzKSwKKwkJCQkJIGVycmhpbnQo IkNvbW1hbmQgc2hvdWxkIG91dHB1dCBvbmUgZGVsYXkgdmFsdWUgcGVyIHJlcGxpY2Egbm9kZSIp KSk7CisJCX0KKworCQkvKiBQYXJzZSB0aGUgb3V0cHV0IC0gb25lIGRlbGF5IHZhbHVlIHBlciBy ZXBsaWNhIGluIG9yZGVyICovCisJCXRva2VuID0gc3RydG9rX3IobGluZSwgIiBcdFxuIiwgJnNh dmVwdHIpOworCQlyZXBsaWNhX2lkeCA9IDA7CisKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBOVU1f QkFDS0VORFMgJiYgdG9rZW4gIT0gTlVMTDsgaSsrKQorCQl7CisJCQlpZiAoaSA9PSBSRUFMX1BS SU1BUllfTk9ERV9JRCkKKwkJCQljb250aW51ZTsgLyogU2tpcCBwcmltYXJ5IC0gaXQncyBub3Qg aW4gdGhlIG91dHB1dCAqLworCisJCQlpZiAoIVZBTElEX0JBQ0tFTkQoaSkpCisJCQl7CisJCQkJ LyogU2tpcCBpbnZhbGlkIGJhY2tlbmQgYnV0IGNvbnN1bWUgdG9rZW4gKi8KKwkJCQl0b2tlbiA9 IHN0cnRva19yKE5VTEwsICIgXHRcbiIsICZzYXZlcHRyKTsKKwkJCQlyZXBsaWNhX2lkeCsrOwor CQkJCWNvbnRpbnVlOworCQkJfQorCisJCQljaGFyICplbmRwdHI7CisJCQlkZWxheV9tcyA9IHN0 cnRvZCh0b2tlbiwgJmVuZHB0cik7CisKKwkJCS8qIFZhbGlkYXRlIHRoZSBjb252ZXJzaW9uICov CisJCQlpZiAoKmVuZHB0ciAhPSAnXDAnKQorCQkJeworCQkJCWVyZXBvcnQoV0FSTklORywKKwkJ CQkJCShlcnJtc2coImludmFsaWQgZGVsYXkgdmFsdWUgJyVzJyBmb3Igbm9kZSAlZCwgdHJlYXRp bmcgYXMgMCIsCisJCQkJCQkJCXRva2VuLCBpKSkpOworCQkJCWRlbGF5X21zID0gMDsKKwkJCX0K KworCQkJYmtpbmZvID0gcG9vbF9nZXRfbm9kZV9pbmZvKGkpOworCisJCQkvKiBIYW5kbGUgLTEg Zm9yIGRvd24gbm9kZXMgKi8KKwkJCWlmIChkZWxheV9tcyA9PSAtMS4wKQorCQkJeworCQkJCWVy ZXBvcnQoTE9HLAorCQkJCQkJKGVycm1zZygibm9kZSAlZCByZXBvcnRlZCBhcyBkb3duIGJ5IGV4 dGVybmFsIGNvbW1hbmQgKGRlbGF5IC0xKSwgcmVseWluZyBvbiBoZWFsdGggY2hlY2sgZm9yIGZh aWxvdmVyIGRlY2lzaW9uIiwKKwkJCQkJCQkJaSkpKTsKKwkJCQkvKiBLZWVwIHByZXZpb3VzIGRl bGF5IHZhbHVlLCBkb24ndCB0cmlnZ2VyIGZhaWxvdmVyICovCisJCQkJdG9rZW4gPSBzdHJ0b2tf cihOVUxMLCAiIFx0XG4iLCAmc2F2ZXB0cik7CisJCQkJcmVwbGljYV9pZHgrKzsKKwkJCQljb250 aW51ZTsKKwkJCX0KKworCQkJLyogVmFsaWRhdGUgZGVsYXkgdmFsdWUgcmFuZ2UgKi8KKwkJCWlm IChkZWxheV9tcyA8IDApCisJCQl7CisJCQkJZXJlcG9ydChXQVJOSU5HLAorCQkJCQkJKGVycm1z ZygibmVnYXRpdmUgZGVsYXkgdmFsdWUgJS4zZiBmb3Igbm9kZSAlZCAob3RoZXIgdGhhbiAtMSks IHRyZWF0aW5nIGFzIDAiLAorCQkJCQkJCQlkZWxheV9tcywgaSkpKTsKKwkJCQlkZWxheV9tcyA9 IDA7CisJCQl9CisJCQllbHNlIGlmIChkZWxheV9tcyA+IE1BWF9SRUFTT05BQkxFX0RFTEFZX01T KQorCQkJeworCQkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJCShlcnJtc2coImV4dHJlbWVseSBs YXJnZSBkZWxheSB2YWx1ZSAlLjNmIGZvciBub2RlICVkIiwKKwkJCQkJCQkJZGVsYXlfbXMsIGkp KSk7CisJCQl9CisKKwkJCS8qIENvbnZlcnQgZGVsYXkgZnJvbSBtaWxsaXNlY29uZHMgdG8gbWlj cm9zZWNvbmRzIGZvciBpbnRlcm5hbCBzdG9yYWdlICovCisJCQlkZWxheSA9ICh1aW50NjQpKGRl bGF5X21zICogMTAwMCk7CisJCQlia2luZm8tPnN0YW5kYnlfZGVsYXkgPSBkZWxheTsKKwkJCWJr aW5mby0+c3RhbmRieV9kZWxheV9ieV90aW1lID0gdHJ1ZTsKKworCQkJLyogTG9nIGRlbGF5IGlm IG5lY2Vzc2FyeSAqLworCQkJdWludDY0IGRlbGF5X3RocmVzaG9sZF9ieV90aW1lID0gcG9vbF9j b25maWctPmRlbGF5X3RocmVzaG9sZF9ieV90aW1lICogMTAwMDsgLyogdGhyZXNob2xkIGlzIGlu IG1pbGxpc2Vjb25kcywgY29udmVydCB0byBtaWNyb3NlY29uZHMgKi8KKworCQkJaWYgKChwb29s X2NvbmZpZy0+bG9nX3N0YW5kYnlfZGVsYXkgPT0gTFNEX0FMV0FZUyAmJiBkZWxheV9tcyA+IDAp IHx8CisJCQkJKHBvb2xfY29uZmlnLT5sb2dfc3RhbmRieV9kZWxheSA9PSBMU0RfT1ZFUl9USFJF U0hPTEQgJiYKKwkJCQkgYmtpbmZvLT5zdGFuZGJ5X2RlbGF5ID4gZGVsYXlfdGhyZXNob2xkX2J5 X3RpbWUpKQorCQkJeworCQkJCWVyZXBvcnQoTE9HLAorCQkJCQkJKGVycm1zZygiUmVwbGljYXRp b24gb2Ygbm9kZTogJWQgaXMgYmVoaW5kICUuM2Ygc2Vjb25kKHMpIGZyb20gdGhlIHByaW1hcnkg c2VydmVyIChub2RlOiAlZCkgW2V4dGVybmFsIGNvbW1hbmRdIiwKKwkJCQkJCQkJaSwgZGVsYXlf bXMgLyAxMDAwLCBSRUFMX1BSSU1BUllfTk9ERV9JRCkpKTsKKwkJCX0KKworCQkJdG9rZW4gPSBz dHJ0b2tfcihOVUxMLCAiIFx0XG4iLCAmc2F2ZXB0cik7CisJCQlyZXBsaWNhX2lkeCsrOworCQl9 CisKKwl9CisJUEdfQ0FUQ0goKTsKKwl7CisJCS8qIENsZWFudXAgaW4gY2FzZSBvZiBlcnJvciAq LworCQlhbGFybSgwKTsgLyogQ2FuY2VsIGFueSBwZW5kaW5nIGFsYXJtICovCisJCXNpZ25hbChT SUdBTFJNLCBTSUdfREZMKTsKKwkJaWYgKGZwKQorCQl7CisJCQlwY2xvc2UoZnApOworCQkJZnAg PSBOVUxMOworCQl9CisJCWlmIChsaW5lKQorCQkJcGZyZWUobGluZSk7CisJCWlmIChjb21tYW5k KQorCQkJcGZyZWUoY29tbWFuZCk7CisJCWVycm9yX2NvbnRleHRfc3RhY2sgPSBjYWxsYmFjay5w cmV2aW91czsKKwkJUEdfUkVfVEhST1coKTsKKwl9CisJUEdfRU5EX1RSWSgpOworCisJLyogTm9y bWFsIGNsZWFudXAgKi8KKwlpZiAobGluZSkKKwkJcGZyZWUobGluZSk7CisKKwllcnJvcl9jb250 ZXh0X3N0YWNrID0gY2FsbGJhY2sucHJldmlvdXM7Cit9CisKKy8qCisgKiBidWlsZF9pbnN0YW5j ZV9pZGVudGlmaWVyX2Zvcl9ub2RlCisgKiAgQnVpbGQgYW4gaWRlbnRpZmllciBzdHJpbmcgZm9y IGEgYmFja2VuZCBub2RlIGZvciBwYXNzaW5nIHRvIGV4dGVybmFsIGNvbW1hbmRzLgorICogIEZv cm1hdDogIjxob3N0bmFtZT46PHBvcnQ+IgorICovCitzdGF0aWMgY2hhciAqCitidWlsZF9pbnN0 YW5jZV9pZGVudGlmaWVyX2Zvcl9ub2RlKGludCBub2RlX2lkKQoreworCUJhY2tlbmRJbmZvICpi aSA9IHBvb2xfZ2V0X25vZGVfaW5mbyhub2RlX2lkKTsKKworCWlmICghYmkgfHwgYmktPmJhY2tl bmRfaG9zdG5hbWVbMF0gPT0gJ1wwJyB8fCBiaS0+YmFja2VuZF9wb3J0IDw9IDApCisJeworCQkv KiBGYWxsYmFjayBpZiBob3N0bmFtZSBvciBwb3J0IGlzIG5vdCBzZXQgKi8KKwkJcmV0dXJuIHBz cHJpbnRmKCJ1bmtub3duX25vZGVfJWQiLCBub2RlX2lkKTsKKwl9CisKKwkvKiBVc2UgaG9zdG5h bWU6cG9ydCBmb3JtYXQgKi8KKwlyZXR1cm4gcHNwcmludGYoIiVzOiVkIiwgYmktPmJhY2tlbmRf aG9zdG5hbWUsIGJpLT5iYWNrZW5kX3BvcnQpOworfQorCiBzdGF0aWMgdm9pZAogQ2hlY2tSZXBs aWNhdGlvblRpbWVMYWdFcnJvckNiKHZvaWQgKmFyZykKIHsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Npb24vdGVzdHMvMDQxLmV4dGVybmFsX3JlcGxpY2F0aW9uX2RlbGF5L1JFQURNRSBi L3NyYy90ZXN0L3JlZ3Jlc3Npb24vdGVzdHMvMDQxLmV4dGVybmFsX3JlcGxpY2F0aW9uX2RlbGF5 L1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmI0ZGY1ZGE0MAot LS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Npb24vdGVzdHMvMDQxLmV4dGVybmFs X3JlcGxpY2F0aW9uX2RlbGF5L1JFQURNRQpAQCAtMCwwICsxLDU5IEBACitFeHRlcm5hbCBSZXBs aWNhdGlvbiBEZWxheSBDb21tYW5kIFRlc3QKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKworVGhpcyB0ZXN0IHZlcmlmaWVzIHRoZSBleHRlcm5hbCBjb21tYW5kIHJl cGxpY2F0aW9uIGRlbGF5IHNvdXJjZSBmZWF0dXJlLgorCitUZXN0IENvdmVyYWdlOgorLSBFeHRl cm5hbCBjb21tYW5kIHJlY2VpdmVzIHJlcGxpY2Egbm9kZSBpZGVudGlmaWVycyBvbmx5IChwcmlt YXJ5IG9taXR0ZWQpCistIEluc3RhbmNlIGlkZW50aWZpZXJzIGluIGhvc3Q6cG9ydCBmb3JtYXQK Ky0gQmFzaWMgZXh0ZXJuYWwgY29tbWFuZCBleGVjdXRpb24gd2l0aCBpbnRlZ2VyIGFuZCBmbG9h dCBtaWxsaXNlY29uZCB2YWx1ZXMKKy0gRGVsYXkgdGhyZXNob2xkIGZ1bmN0aW9uYWxpdHkgd2l0 aCBleHRlcm5hbCBjb21tYW5kcworLSBDb21tYW5kIGV4ZWN1dGlvbiBhcyBwZ3Bvb2wgcHJvY2Vz cyB1c2VyIChubyBzdSB3cmFwcGVyKQorLSBFcnJvciBoYW5kbGluZyBmb3IgbWlzc2luZy9pbnZh bGlkIGNvbW1hbmRzCistIENvbW1hbmQgZXhlY3V0aW9uIGZhaWx1cmUgc2NlbmFyaW9zCistIENv bW1hbmQgdGltZW91dCBoYW5kbGluZyB3aXRoIGNvbmZpZ3VyYWJsZSB0aW1lb3V0IHZhbHVlcwor LSBJbnB1dCB2YWxpZGF0aW9uIGZvciBpbnZhbGlkLCBuZWdhdGl2ZSAob3RoZXIgdGhhbiAtMSks IGFuZCBleHRyZW1lbHkgbGFyZ2UgZGVsYXkgdmFsdWVzCistIEhhbmRsaW5nIG9mIC0xIGZvciBk b3duIG5vZGVzIChsb2dnZWQgYnV0IG5vIGltbWVkaWF0ZSBmYWlsb3ZlcikKKy0gV3JvbmcgbnVt YmVyIG9mIG91dHB1dCB2YWx1ZXMgdmFsaWRhdGlvbgorLSBNdWx0aXBsZSAtMSB2YWx1ZXMgKG11 bHRpcGxlIGRvd24gcmVwbGljYXMpCistIE1peGVkIHNjZW5hcmlvcyAoc29tZSByZXBsaWNhcyB1 cCwgc29tZSBkb3duKQorLSBPdXRwdXQgdHJ1bmNhdGlvbiBkZXRlY3Rpb24KKworRmlsZXM6Cist IHRlc3Quc2g6IE1haW4gdGVzdCBzY3JpcHQKKy0gdGVzdF9wYXJzaW5nLnNoOiBVbml0IHRlc3Qg Zm9yIHBhcnNpbmcgbG9naWMKKy0gdGVzdF92YWxpZGF0aW9uLnNoOiBWYWxpZGF0aW9uIGFuZCBl ZGdlIGNhc2UgdGVzdGluZworLSBSRUFETUU6IFRoaXMgZG9jdW1lbnRhdGlvbgorCitLZXkgQ2hh bmdlcyBmcm9tIE9yaWdpbmFsIFZlcnNpb246CistIFByaW1hcnkgbm9kZSBpcyBvbWl0dGVkIGZy b20gY29tbWFuZCBhcmd1bWVudHMKKy0gQ29tbWFuZCByZWNlaXZlcyBvbmx5IHJlcGxpY2EgaWRl bnRpZmllcnMKKy0gSW5zdGFuY2UgaWRlbnRpZmllcnMgYXJlIGluIGhvc3Q6cG9ydCBmb3JtYXQg KG5vdCBhcHBsaWNhdGlvbl9uYW1lKQorLSBPdXRwdXQgZm9ybWF0OiBvbmUgZGVsYXkgcGVyIHJl cGxpY2EgKG5vdCBwZXIgYWxsIG5vZGVzKQorLSAtMSB2YWx1ZSBpbmRpY2F0ZXMgZG93biByZXBs aWNhIHdpdGhvdXQgdHJpZ2dlcmluZyBmYWlsb3ZlcgorLSBGb3JtYXQgZXhhbXBsZTogIjI1IDEw MCIgZm9yIDIgcmVwbGljYXMgKDMtbm9kZSBjbHVzdGVyID0gMSBwcmltYXJ5ICsgMiByZXBsaWNh cykKKworVGhlIHRlc3QgY3JlYXRlcyB0ZW1wb3JhcnkgY29tbWFuZCBzY3JpcHRzIHRoYXQgb3V0 cHV0IGRlbGF5IHZhbHVlcyBpbiB0aGUgZm9ybWF0OgorInJlcGxpY2ExX2RlbGF5IHJlcGxpY2Ey X2RlbGF5IC4uLiIKKworV2hlcmUgZGVsYXlzIGFyZSBpbiBtaWxsaXNlY29uZHMgYW5kIGNhbiBi ZSBpbnRlZ2VyIG9yIGZsb2F0aW5nLXBvaW50IHZhbHVlcy4KK1NwZWNpYWwgdmFsdWUgLTEgaW5k aWNhdGVzIGEgcmVwbGljYSB0aGF0IGlzIGRvd24gYnV0IG5vdCB5ZXQgZGV0ZWN0ZWQgYnkgcGdw b29sLgorCitUZXN0IEVudmlyb25tZW50OgorLSBVc2VzIHN0cmVhbWluZyByZXBsaWNhdGlvbiBt b2RlIHdpdGggMyBub2RlcworLSBOb2RlIDAgaXMgcHJpbWFyeSAob21pdHRlZCBmcm9tIGNvbW1h bmQgYXJndW1lbnRzKQorLSBOb2RlcyAxIGFuZCAyIGFyZSByZXBsaWNhcyAoaW5jbHVkZWQgaW4g Y29tbWFuZCBhcmd1bWVudHMpCistIENvbmZpZ3VyZXMgc3JfY2hlY2tfcGVyaW9kID0gMSBzZWNv bmQgZm9yIGZhc3RlciB0ZXN0aW5nCistIFRlc3RzIHZhcmlvdXMgZGVsYXkgc2NlbmFyaW9zIGFu ZCB0aHJlc2hvbGQgYmVoYXZpb3JzCisKK0V4cGVjdGVkIEJlaGF2aW9yOgorLSBFeHRlcm5hbCBj b21tYW5kcyByZWNlaXZlIHJlcGxpY2EgaWRlbnRpZmllcnMgaW4gaG9zdDpwb3J0IGZvcm1hdAor LSBQcmltYXJ5IG5vZGUgaWRlbnRpZmllciBpcyBuZXZlciBwYXNzZWQgdG8gY29tbWFuZAorLSBD b21tYW5kIG91dHB1dHMgb25lIGRlbGF5IHZhbHVlIHBlciByZXBsaWNhCistIC0xIHZhbHVlcyBh cmUgbG9nZ2VkIGJ1dCBkb24ndCB0cmlnZ2VyIGltbWVkaWF0ZSBmYWlsb3ZlcgorLSBEZWxheSB2 YWx1ZXMgYXJlIHBhcnNlZCBjb3JyZWN0bHkgKGJvdGggaW50IGFuZCBmbG9hdCkKKy0gVGhyZXNo b2xkIGNvbXBhcmlzb25zIHdvcmsgcHJvcGVybHkKKy0gRXJyb3IgY29uZGl0aW9ucyBhcmUgaGFu ZGxlZCBncmFjZWZ1bGx5CistIENvbW1hbmRzIHRpbWVvdXQgYXBwcm9wcmlhdGVseSBiYXNlZCBv biBjb25maWd1cmF0aW9uCistIFRpbWVvdXQgZXJyb3JzIHByb3ZpZGUgaGVscGZ1bCBtZXNzYWdl cyBhbmQgaGludHMKKy0gVGVzdHMgYXJlIHJlbGlhYmxlIHdpdGggcHJvcGVyIHdhaXQgbWVjaGFu aXNtcyBpbnN0ZWFkIG9mIGZpeGVkIHNsZWVwcwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz c2lvbi90ZXN0cy8wNDEuZXh0ZXJuYWxfcmVwbGljYXRpb25fZGVsYXkvdGVzdC5zaCBiL3NyYy90 ZXN0L3JlZ3Jlc3Npb24vdGVzdHMvMDQxLmV4dGVybmFsX3JlcGxpY2F0aW9uX2RlbGF5L3Rlc3Qu c2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwLi5lMWRmYmNlY2YKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzaW9uL3Rlc3RzLzA0MS5leHRlcm5hbF9yZXBs aWNhdGlvbl9kZWxheS90ZXN0LnNoCkBAIC0wLDAgKzEsNDA0IEBACisjIS91c3IvYmluL2VudiBi YXNoCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIyB0ZXN0IHNjcmlwdCBmb3IgZXh0ZXJuYWwgY29tbWFuZCByZXBs aWNhdGlvbiBkZWxheSBzb3VyY2UKKyMKK3NvdXJjZSAkVEVTVExJQlMKK1RFU1RESVI9dGVzdGRp cgorUEdfQ1RMPSRQR0JJTi9wZ19jdGwKK1BTUUw9IiRQR0JJTi9wc3FsIC1YICIKKworcm0gLWZy ICRURVNURElSCitta2RpciAkVEVTVERJUgorY2QgJFRFU1RESVIKKworIyBjcmVhdGUgdGVzdCBl bnZpcm9ubWVudAorZWNobyAtbiAiY3JlYXRpbmcgdGVzdCBlbnZpcm9ubWVudC4uLiIKKyRQR1BP T0xfU0VUVVAgLW0gcyAtbiAzIHx8IGV4aXQgMQorZWNobyAiZG9uZS4iCitzb3VyY2UgLi9iYXNo cmMucG9ydHMKK2V4cG9ydCBQR1BPUlQ9JFBHUE9PTF9QT1JUCisKKyMgQ3JlYXRlIGV4dGVybmFs IGNvbW1hbmQgc2NyaXB0cyBmb3IgdGVzdGluZworIyBOT1RFOiBDb21tYW5kcyBub3cgb25seSBv dXRwdXQgZGVsYXkgdmFsdWVzIGZvciBSRVBMSUNBUyAobm90IHByaW1hcnkpCitjYXQgPiBkZWxh eV9jbWRfc3RhdGljLnNoIDw8ICdFT0YnCisjIS9iaW4vYmFzaAorIyBTdGF0aWMgZGVsYXkgdmFs dWVzIGZvciByZXBsaWNhczogbm9kZTE9MjVtcywgbm9kZTI9NTBtcyAobm9kZTAgaXMgcHJpbWFy eSwgbm90IGluY2x1ZGVkKQorZWNobyAiMjUgNTAiCitFT0YKK2NobW9kICt4IGRlbGF5X2NtZF9z dGF0aWMuc2gKKworY2F0ID4gZGVsYXlfY21kX2Zsb2F0LnNoIDw8ICdFT0YnCisjIS9iaW4vYmFz aAorIyBGbG9hdCBkZWxheSB2YWx1ZXMgZm9yIHJlcGxpY2FzOiBub2RlMT0yNS41bXMsIG5vZGUy PTEwMC43NW1zCitlY2hvICIyNS41IDEwMC43NSIKK0VPRgorY2htb2QgK3ggZGVsYXlfY21kX2Zs b2F0LnNoCisKK2NhdCA+IGRlbGF5X2NtZF9oaWdoLnNoIDw8ICdFT0YnCisjIS9iaW4vYmFzaAor IyBIaWdoIGRlbGF5IHZhbHVlcyB0byB0ZXN0IHRocmVzaG9sZDogbm9kZTE9MjAwMG1zLCBub2Rl Mj0zMDAwbXMKK2VjaG8gIjIwMDAgMzAwMCIKK0VPRgorY2htb2QgK3ggZGVsYXlfY21kX2hpZ2gu c2gKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitlY2hvICI9PT0gVGVzdDA6 IEV4dGVybmFsIGNvbW1hbmQgcmVjZWl2ZXMgcmVwbGljYSBpZGVudGlmaWVycyBvbmx5IChwcmlt YXJ5IG9taXR0ZWQpID09PSIKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBD b21tYW5kIHRoYXQgY2FwdHVyZXMgaXRzIGFyZ3VtZW50cyBhbmQgb3V0cHV0cyB2YWxpZCBkZWxh eXMgZm9yIDIgcmVwbGljYXMKK2NhdCA+IGRlbGF5X2NtZF9hcmdzLnNoIDw8ICdFT0YnCisjIS9i aW4vYmFzaAorcHJpbnRmICIlcyAiICIkQCIgPiBhcmdzLnR4dAorZWNobyAiMjUgNTAiCitFT0YK K2NobW9kICt4IGRlbGF5X2NtZF9hcmdzLnNoCisKK2VjaG8gInJlcGxpY2F0aW9uX2RlbGF5X3Nv dXJjZV9jbWQgPSAnLi9kZWxheV9jbWRfYXJncy5zaCciID4+IGV0Yy9wZ3Bvb2wuY29uZgorZWNo byAic3JfY2hlY2tfcGVyaW9kID0gMSIgPj4gZXRjL3BncG9vbC5jb25mCitlY2hvICJsb2dfbWlu X21lc3NhZ2VzID0gJ0RFQlVHMSciID4+IGV0Yy9wZ3Bvb2wuY29uZgorIyBSZWR1Y2UgbWVtb3J5 IHJlcXVpcmVtZW50cyBmb3IgbWFjT1Mgc2hhcmVkIG1lbW9yeSBsaW1pdHMKK2VjaG8gIm51bV9p bml0X2NoaWxkcmVuID0gNCIgPj4gZXRjL3BncG9vbC5jb25mCitlY2hvICJtYXhfcG9vbCA9IDIi ID4+IGV0Yy9wZ3Bvb2wuY29uZgorIyBEaXNhYmxlIHF1ZXJ5IGNhY2hpbmcgdG8gYXZvaWQgc2hh cmVkIG1lbW9yeSBpc3N1ZXMgb24gbWFjT1MKK2VjaG8gIm1lbW9yeV9jYWNoZV9lbmFibGVkID0g b2ZmIiA+PiBldGMvcGdwb29sLmNvbmYKKworLi9zdGFydGFsbAord2FpdF9mb3JfcGdwb29sX3N0 YXJ0dXAKKworZWNobyAiV2FpdGluZyBmb3Igc3JfY2hlY2sgdG8gcGFzcyBhcmdzLi4uIgorZm9y IGkgaW4gezEuLjEwfTsgZG8KKyAgICBpZiBbIC1mIGFyZ3MudHh0IF07IHRoZW4KKyAgICAgICAg YnJlYWsKKyAgICBmaQorICAgIHNsZWVwIDEKK2RvbmUKKworaWYgWyAhIC1mIGFyZ3MudHh0IF07 IHRoZW4KKyAgICBlY2hvIGZhaWw6IGRpZCBub3QgY2FwdHVyZSBjb21tYW5kIGFyZ3VtZW50cwor ICAgIC4vc2h1dGRvd25hbGwKKyAgICBleGl0IDEKK2ZpCisKK0FSR1NfQ09OVEVOVD0kKGNhdCBh cmdzLnR4dCB8IHNlZCAncy9bWzpzcGFjZTpdXSokLy8nKQorIyBTaG91bGQgcmVjZWl2ZSAyIHJl cGxpY2EgaWRlbnRpZmllcnMgaW4gaG9zdDpwb3J0IGZvcm1hdCAobG9jYWxob3N0OjExMDAzIGxv Y2FsaG9zdDoxMTAwNCBvciBzZXJ2ZXIxOjExMDAzIHNlcnZlcjI6MTEwMDQpCisjIFByaW1hcnkg KGxvY2FsaG9zdDoxMTAwMiBvciBzZXJ2ZXIwOjExMDAyKSBzaG91bGQgYmUgb21pdHRlZAoraWYg ISBlY2hvICIkQVJHU19DT05URU5UIiB8IGdyZXAgLXFFICIoc2VydmVyMXxsb2NhbGhvc3QpOjEx MDAzIjsgdGhlbgorICAgIGVjaG8gImZhaWw6IGV4cGVjdGVkIHJlcGxpY2ExOjExMDAzIGluIGFy Z3VtZW50cywgZ290OiAnJEFSR1NfQ09OVEVOVCciCisgICAgLi9zaHV0ZG93bmFsbAorICAgIGV4 aXQgMQorZmkKK2lmICEgZWNobyAiJEFSR1NfQ09OVEVOVCIgfCBncmVwIC1xRSAiKHNlcnZlcjJ8 bG9jYWxob3N0KToxMTAwNCI7IHRoZW4KKyAgICBlY2hvICJmYWlsOiBleHBlY3RlZCByZXBsaWNh MjoxMTAwNCBpbiBhcmd1bWVudHMsIGdvdDogJyRBUkdTX0NPTlRFTlQnIgorICAgIC4vc2h1dGRv d25hbGwKKyAgICBleGl0IDEKK2ZpCitpZiBlY2hvICIkQVJHU19DT05URU5UIiB8IGdyZXAgLXFF ICIoc2VydmVyMHxsb2NhbGhvc3QpOjExMDAyIjsgdGhlbgorICAgIGVjaG8gImZhaWw6IHByaW1h cnkgc2hvdWxkIG5vdCBiZSBpbiBhcmd1bWVudHMsIGdvdDogJyRBUkdTX0NPTlRFTlQnIgorICAg IC4vc2h1dGRvd25hbGwKKyAgICBleGl0IDEKK2ZpCisKK2VjaG8gb2s6IGFyZ3VtZW50IG9yZGVy IGNvcnJlY3QgLSByZXBsaWNhcyBvbmx5LCBwcmltYXJ5IG9taXR0ZWQsIGhvc3Q6cG9ydCBmb3Jt YXQKKy4vc2h1dGRvd25hbGwKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitl Y2hvICI9PT0gVGVzdDE6IEJhc2ljIGV4dGVybmFsIGNvbW1hbmQgd2l0aCBpbnRlZ2VyIG1pbGxp c2Vjb25kIHZhbHVlcyA9PT0iCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Vj aG8gInJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV9jbWQgPSAnLi9kZWxheV9jbWRfc3RhdGljLnNo JyIgPj4gZXRjL3BncG9vbC5jb25mCitlY2hvICJzcl9jaGVja19wZXJpb2QgPSAxIiA+PiBldGMv cGdwb29sLmNvbmYKK2VjaG8gImxvZ19zdGFuZGJ5X2RlbGF5ID0gJ2Fsd2F5cyciID4+IGV0Yy9w Z3Bvb2wuY29uZgorZWNobyAibG9nX21pbl9tZXNzYWdlcyA9ICdERUJVRzEnIiA+PiBldGMvcGdw b29sLmNvbmYKKworLi9zdGFydGFsbAord2FpdF9mb3JfcGdwb29sX3N0YXJ0dXAKKworJFBTUUwg dGVzdCA8PEVPRgorQ1JFQVRFIFRBQkxFIHQxKGkgSU5URUdFUik7CitFT0YKKworIyBXYWl0IGZv ciBzcl9jaGVjayB0byBydW4gYW5kIHBvcHVsYXRlIGRlbGF5IHZhbHVlcworIyBzcl9jaGVja19w ZXJpb2QgaXMgMSBzZWNvbmQsIHNvIHdhaXQgYSBiaXQgbG9uZ2VyIHRvIGVuc3VyZSBpdCBydW5z CitlY2hvICJXYWl0aW5nIGZvciBzcl9jaGVjayB0byBydW4uLi4iCitmb3IgaSBpbiB7MS4uMTB9 OyBkbworICAgIGlmIGdyZXAgLXEgImV4ZWN1dGluZyByZXBsaWNhdGlvbiBkZWxheSBjb21tYW5k IiBsb2cvcGdwb29sLmxvZyAyPi9kZXYvbnVsbDsgdGhlbgorICAgICAgICBlY2hvICJDb21tYW5k IGV4ZWN1dGVkIGFmdGVyICR7aX0gc2Vjb25kcyIKKyAgICAgICAgYnJlYWsKKyAgICBmaQorICAg IHNsZWVwIDEKK2RvbmUKKworJFBTUUwgdGVzdCA8PEVPRgorU0hPVyBQT09MX05PREVTOworRU9G CisKKyMgQ2hlY2sgdGhhdCBkZWxheSB2YWx1ZXMgYXJlIHBvcHVsYXRlZCBpbiB0aGUgbG9nCitn cmVwICJleGVjdXRpbmcgcmVwbGljYXRpb24gZGVsYXkgY29tbWFuZCIgbG9nL3BncG9vbC5sb2cg Pi9kZXYvbnVsbCAyPiYxCitpZiBbICQ/ICE9IDAgXTt0aGVuCisgICAgZWNobyBmYWlsOiBleHRl cm5hbCBjb21tYW5kIHdhcyBub3QgZXhlY3V0ZWQKKyAgICBlY2hvICJMb2cgY29udGVudHM6Igor ICAgIHRhaWwgLTIwIGxvZy9wZ3Bvb2wubG9nCisgICAgLi9zaHV0ZG93bmFsbAorICAgIGV4aXQg MQorZmkKKworIyBWZXJpZnkgYWN0dWFsIGRlbGF5IHZhbHVlcyB3ZXJlIHBhcnNlZAoraWYgISAk UFNRTCAtdCAtYyAiU0hPVyBQT09MX05PREVTIiB0ZXN0IHwgZ3JlcCAtRSAiWzAtOV0rXC5bMC05 XSsiID4vZGV2L251bGw7IHRoZW4KKyAgICBlY2hvICJXYXJuaW5nOiBObyBkZWxheSB2YWx1ZXMg Zm91bmQgaW4gUE9PTF9OT0RFUyBvdXRwdXQiCitmaQorCisjIENoZWNrIGZvciBkZWxheSBsb2cg bWVzc2FnZXMKK2dyZXAgIlJlcGxpY2F0aW9uIG9mIG5vZGUuKmV4dGVybmFsIGNvbW1hbmQiIGxv Zy9wZ3Bvb2wubG9nID4vZGV2L251bGwgMj4mMQoraWYgWyAkPyAhPSAwIF07dGhlbgorICAgIGVj aG8gZmFpbDogZXh0ZXJuYWwgY29tbWFuZCBkZWxheSBsb2dnaW5nIG5vdCBmb3VuZAorICAgIC4v c2h1dGRvd25hbGwKKyAgICBleGl0IDEKK2ZpCisKK2VjaG8gb2s6IGJhc2ljIGV4dGVybmFsIGNv bW1hbmQgdGVzdCBzdWNjZWVkZWQKKy4vc2h1dGRvd25hbGwKKworIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCitlY2hvICI9PT0gVGVzdDI6IEV4dGVybmFsIGNvbW1hbmQgd2l0aCBm bG9hdGluZy1wb2ludCBtaWxsaXNlY29uZCB2YWx1ZXMgPT09IgorIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisjIFVwZGF0ZSBjb25maWd1cmF0aW9uIHRvIHVzZSBmbG9hdCBjb21t YW5kCitzZWQgLWkuYmFrICJzfGRlbGF5X2NtZF9zdGF0aWMuc2h8ZGVsYXlfY21kX2Zsb2F0LnNo fCIgZXRjL3BncG9vbC5jb25mCisKKy4vc3RhcnRhbGwKK3dhaXRfZm9yX3BncG9vbF9zdGFydHVw CisKKyMgV2FpdCBmb3Igc3JfY2hlY2sgdG8gcnVuIHdpdGggZmxvYXQgdmFsdWVzCitlY2hvICJX YWl0aW5nIGZvciBzcl9jaGVjayB3aXRoIGZsb2F0IHZhbHVlcy4uLiIKK2ZvciBpIGluIHsxLi4x MH07IGRvCisgICAgaWYgZ3JlcCAtcSAiZXhlY3V0aW5nIHJlcGxpY2F0aW9uIGRlbGF5IGNvbW1h bmQuKmRlbGF5X2NtZF9mbG9hdC5zaCIgbG9nL3BncG9vbC5sb2cgMj4vZGV2L251bGw7IHRoZW4K KyAgICAgICAgZWNobyAiRmxvYXQgY29tbWFuZCBleGVjdXRlZCBhZnRlciAke2l9IHNlY29uZHMi CisgICAgICAgIGJyZWFrCisgICAgZmkKKyAgICBzbGVlcCAxCitkb25lCisKKyRQU1FMIHRlc3Qg PDxFT0YKK1NIT1cgUE9PTF9OT0RFUzsKK0VPRgorCisjIENoZWNrIHRoYXQgZmxvYXQgdmFsdWVz IGFyZSBoYW5kbGVkIGNvcnJlY3RseQorZ3JlcCAiZXhlY3V0aW5nIHJlcGxpY2F0aW9uIGRlbGF5 IGNvbW1hbmQuKmRlbGF5X2NtZF9mbG9hdC5zaCIgbG9nL3BncG9vbC5sb2cgPi9kZXYvbnVsbCAy PiYxCitpZiBbICQ/ICE9IDAgXTt0aGVuCisgICAgZWNobyBmYWlsOiBmbG9hdCBjb21tYW5kIHdh cyBub3QgZXhlY3V0ZWQKKyAgICAuL3NodXRkb3duYWxsCisgICAgZXhpdCAxCitmaQorCitlY2hv IG9rOiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgdGVzdCBzdWNjZWVkZWQKKy4vc2h1dGRvd25hbGwK KworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitlY2hvICI9PT0gVGVzdDM6IEV4 dGVybmFsIGNvbW1hbmQgd2l0aCBkZWxheSB0aHJlc2hvbGQgPT09IgorIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisjIFVwZGF0ZSBjb25maWd1cmF0aW9uIHRvIHVzZSBoaWdoIGRl bGF5IGNvbW1hbmQgYW5kIHNldCB0aHJlc2hvbGQKK3NlZCAtaS5iYWsgInN8ZGVsYXlfY21kX2Zs b2F0LnNofGRlbGF5X2NtZF9oaWdoLnNofCIgZXRjL3BncG9vbC5jb25mCitlY2hvICJkZWxheV90 aHJlc2hvbGRfYnlfdGltZSA9IDEwMDAiID4+IGV0Yy9wZ3Bvb2wuY29uZgorZWNobyAiYmFja2Vu ZF93ZWlnaHQwID0gMCIgPj4gZXRjL3BncG9vbC5jb25mICAjIEZvcmNlIHF1ZXJpZXMgdG8gc3Rh bmRieSBub3JtYWxseQorZWNobyAiYmFja2VuZF93ZWlnaHQyID0gMCIgPj4gZXRjL3BncG9vbC5j b25mICAjIE9ubHkgdXNlIG5vZGUgMSBhcyBzdGFuZGJ5CisKKy4vc3RhcnRhbGwKK3dhaXRfZm9y X3BncG9vbF9zdGFydHVwCisKKyMgV2FpdCBmb3Igc3JfY2hlY2sgdG8gcnVuIGFuZCBkZXRlY3Qg aGlnaCBkZWxheXMKK2VjaG8gIldhaXRpbmcgZm9yIHNyX2NoZWNrIHdpdGggaGlnaCBkZWxheSB2 YWx1ZXMuLi4iCitmb3IgaSBpbiB7MS4uMTB9OyBkbworICAgIGlmIGdyZXAgLXEgImV4ZWN1dGlu ZyByZXBsaWNhdGlvbiBkZWxheSBjb21tYW5kLipkZWxheV9jbWRfaGlnaC5zaCIgbG9nL3BncG9v bC5sb2cgMj4vZGV2L251bGw7IHRoZW4KKyAgICAgICAgZWNobyAiSGlnaCBkZWxheSBjb21tYW5k IGV4ZWN1dGVkIGFmdGVyICR7aX0gc2Vjb25kcyIKKyAgICAgICAgYnJlYWsKKyAgICBmaQorICAg IHNsZWVwIDEKK2RvbmUKKworJFBTUUwgdGVzdCA8PEVPRgorU0VMRUNUICogRlJPTSB0MSBMSU1J VCAxOworRU9GCisKKyMgV2l0aCBoaWdoIGRlbGF5cyAoMjAwMG1zID4gMTAwMG1zIHRocmVzaG9s ZCksIHF1ZXJ5IHNob3VsZCBnbyB0byBwcmltYXJ5IChub2RlIDApCisjIExvZyBmb3JtYXQgY2Fu IHZhcnk6IGVpdGhlciAic3RhdGVtZW50OiBTRUxFQ1QuLi4iIG9yICJTRUxFQ1QuLi4gREIgbm9k ZSBpZDoiCitpZiAhIGdyZXAgLUUgIkRCIG5vZGUgaWQ6IDAuKnN0YXRlbWVudDogU0VMRUNUIFwq IEZST00gdDEgTElNSVQgMSIgbG9nL3BncG9vbC5sb2cgPi9kZXYvbnVsbCAyPiYxICYmIFwKKyAg ICEgZ3JlcCAtRSAiU0VMRUNUIFwqIEZST00gdDEgTElNSVQgMS4qREIgbm9kZSBpZDogMCIgbG9n L3BncG9vbC5sb2cgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgZWNobyBmYWlsOiBxdWVyeSB3 YXMgbm90IHNlbnQgdG8gcHJpbWFyeSBub2RlIGRlc3BpdGUgaGlnaCBkZWxheQorICAgIC4vc2h1 dGRvd25hbGwKKyAgICBleGl0IDEKK2ZpCisKK2VjaG8gb2s6IGRlbGF5IHRocmVzaG9sZCB0ZXN0 IHN1Y2NlZWRlZAorLi9zaHV0ZG93bmFsbAorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KK2VjaG8gIj09PSBUZXN0NDogRXh0ZXJuYWwgY29tbWFuZCBleGVjdXRpb24gYXMgcHJv Y2VzcyB1c2VyID09PSIKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBUZXN0 IHRoYXQgY29tbWFuZCBydW5zIGFzIHRoZSBjdXJyZW50IHBncG9vbCBwcm9jZXNzIHVzZXIKK3Nl ZCAtaS5iYWsgInN8ZGVsYXlfY21kX2hpZ2guc2h8ZGVsYXlfY21kX3N0YXRpYy5zaHwiIGV0Yy9w Z3Bvb2wuY29uZgorCisuL3N0YXJ0YWxsCit3YWl0X2Zvcl9wZ3Bvb2xfc3RhcnR1cAorCisjIFdh aXQgZm9yIHNyX2NoZWNrIHRvIHJ1bgorZWNobyAiV2FpdGluZyBmb3Igc3JfY2hlY2sgdG8gcnVu IGFzIHByb2Nlc3MgdXNlci4uLiIKK2ZvciBpIGluIHsxLi4xMH07IGRvCisgICAgaWYgZ3JlcCAt cSAiZXhlY3V0aW5nIHJlcGxpY2F0aW9uIGRlbGF5IGNvbW1hbmQuKmRlbGF5X2NtZF9zdGF0aWMu c2giIGxvZy9wZ3Bvb2wubG9nIDI+L2Rldi9udWxsOyB0aGVuCisgICAgICAgIGVjaG8gIkNvbW1h bmQgZXhlY3V0ZWQgYXMgcHJvY2VzcyB1c2VyIGFmdGVyICR7aX0gc2Vjb25kcyIKKyAgICAgICAg YnJlYWsKKyAgICBmaQorICAgIHNsZWVwIDEKK2RvbmUKKworIyBDaGVjayB0aGF0IGNvbW1hbmQg d2FzIGV4ZWN1dGVkICh3aXRob3V0IHN1IHdyYXBwZXIpCitncmVwICJleGVjdXRpbmcgcmVwbGlj YXRpb24gZGVsYXkgY29tbWFuZC4qZGVsYXlfY21kX3N0YXRpYy5zaCIgbG9nL3BncG9vbC5sb2cg Pi9kZXYvbnVsbCAyPiYxCitpZiBbICQ/ICE9IDAgXTt0aGVuCisgICAgZWNobyBmYWlsOiBjb21t YW5kIHdhcyBub3QgZXhlY3V0ZWQgYXMgcHJvY2VzcyB1c2VyCisgICAgLi9zaHV0ZG93bmFsbAor ICAgIGV4aXQgMQorZmkKKworIyBWZXJpZnkgbm8gc3UgY29tbWFuZCB3YXMgdXNlZAoraWYgZ3Jl cCAtcSAiZXhlY3V0aW5nIHJlcGxpY2F0aW9uIGRlbGF5IGNvbW1hbmQuKnN1LioiIGxvZy9wZ3Bv b2wubG9nIDI+L2Rldi9udWxsOyB0aGVuCisgICAgZWNobyBmYWlsOiBjb21tYW5kIHNob3VsZCBu b3QgdXNlIHN1IHdyYXBwZXIKKyAgICAuL3NodXRkb3duYWxsCisgICAgZXhpdCAxCitmaQorCitl Y2hvIG9rOiBwcm9jZXNzIHVzZXIgZXhlY3V0aW9uIHRlc3Qgc3VjY2VlZGVkCisuL3NodXRkb3du YWxsCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZWNobyAiPT09IFRlc3Q1 OiBFcnJvciBoYW5kbGluZyAtIG1pc3NpbmcgY29tbWFuZCA9PT0iCisjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyMgVGVzdCBlcnJvciBoYW5kbGluZyB3aGVuIGNvbW1hbmQgaXMg bm90IGNvbmZpZ3VyZWQKK3NlZCAtaS5iYWsgInN8cmVwbGljYXRpb25fZGVsYXlfc291cmNlX2Nt ZCA9ICcuL2RlbGF5X2NtZF9zdGF0aWMuc2gnfHJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV9jbWQg PSAnJ3wiIGV0Yy9wZ3Bvb2wuY29uZgorCisuL3N0YXJ0YWxsCit3YWl0X2Zvcl9wZ3Bvb2xfc3Rh cnR1cAorCisjIFdpdGggZW1wdHkgY29tbWFuZCwgc2hvdWxkIGZhbGwgYmFjayB0byBidWlsdGlu IG1ldGhvZAorIyBObyBzcGVjaWZpYyBlcnJvciBtZXNzYWdlIGV4cGVjdGVkIC0ganVzdCB2ZXJp ZnkgaXQgZG9lc24ndCBjcmFzaAorc2xlZXAgMworCitlY2hvICJvazogZW1wdHkgY29tbWFuZCB0 ZXN0IHN1Y2NlZWRlZCAoZmFsbGJhY2sgdG8gYnVpbHRpbikiCisuL3NodXRkb3duYWxsCisKKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZWNobyAiPT09IFRlc3Q2OiBFcnJvciBo YW5kbGluZyAtIGNvbW1hbmQgZXhlY3V0aW9uIGZhaWx1cmUgPT09IgorIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3QgZXJyb3IgaGFuZGxpbmcgd2hlbiBjb21tYW5kIGZh aWxzCitlY2hvICJyZXBsaWNhdGlvbl9kZWxheV9zb3VyY2VfY21kID0gJy4vbm9uZXhpc3RlbnRf Y29tbWFuZC5zaCciID4+IGV0Yy9wZ3Bvb2wuY29uZgorCisuL3N0YXJ0YWxsCit3YWl0X2Zvcl9w Z3Bvb2xfc3RhcnR1cAorCisjIFdhaXQgZm9yIHNyX2NoZWNrIHRvIHJ1biB3aXRoIGZhaWxpbmcg Y29tbWFuZAorZWNobyAiV2FpdGluZyBmb3Igc3JfY2hlY2sgd2l0aCBmYWlsaW5nIGNvbW1hbmQu Li4iCitmb3IgaSBpbiB7MS4uNX07IGRvCisgICAgaWYgZ3JlcCAtcUUgImZhaWxlZCB0byAoZXhl Y3V0ZXxyZWFkIG91dHB1dCBmcm9tKSByZXBsaWNhdGlvbiBkZWxheSBjb21tYW5kIiBsb2cvcGdw b29sLmxvZyAyPi9kZXYvbnVsbDsgdGhlbgorICAgICAgICBlY2hvICJDb21tYW5kIGZhaWx1cmUg ZGV0ZWN0ZWQgYWZ0ZXIgJHtpfSBzZWNvbmRzIgorICAgICAgICBicmVhaworICAgIGZpCisgICAg c2xlZXAgMQorZG9uZQorCisjIENoZWNrIGZvciBlcnJvciBtZXNzYWdlIGFib3V0IGNvbW1hbmQg ZXhlY3V0aW9uIGZhaWx1cmUKKyMgQWNjZXB0IG11bHRpcGxlIHBvc3NpYmxlIGVycm9yIG1lc3Nh Z2VzIGRlcGVuZGluZyBvbiBzaGVsbCBiZWhhdmlvcgoraWYgISBncmVwIC1xRSAiZmFpbGVkIHRv IChleGVjdXRlfHJlYWQgb3V0cHV0IGZyb20pIHJlcGxpY2F0aW9uIGRlbGF5IGNvbW1hbmQiIGxv Zy9wZ3Bvb2wubG9nIDI+L2Rldi9udWxsOyB0aGVuCisgICAgZWNobyBmYWlsOiBjb21tYW5kIGV4 ZWN1dGlvbiBmYWlsdXJlIG5vdCBkZXRlY3RlZAorICAgIGVjaG8gIkxvZyBjb250ZW50czoiCisg ICAgdGFpbCAtNTAgbG9nL3BncG9vbC5sb2cKKyAgICAuL3NodXRkb3duYWxsCisgICAgZXhpdCAx CitmaQorCitlY2hvIG9rOiBjb21tYW5kIGZhaWx1cmUgdGVzdCBzdWNjZWVkZWQKKy4vc2h1dGRv d25hbGwKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitlY2hvICI9PT0gVGVz dDc6IENvbW1hbmQgdGltZW91dCBoYW5kbGluZyA9PT0iCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyMgQ3JlYXRlIGEgY29tbWFuZCB0aGF0IHRha2VzIGxvbmdlciB0aGFuIHRo ZSB0aW1lb3V0CitjYXQgPiBkZWxheV9jbWRfc2xvdy5zaCA8PCAnRU9GJworIyEvYmluL2Jhc2gK KyMgU2xvdyBjb21tYW5kIHRoYXQgdGFrZXMgMTUgc2Vjb25kcyAobG9uZ2VyIHRoYW4gZGVmYXVs dCAxMHMgdGltZW91dCkKK3NsZWVwIDE1CitlY2hvICIyNSA1MCIKK0VPRgorY2htb2QgK3ggZGVs YXlfY21kX3Nsb3cuc2gKKworIyBTZXQgYSBzaG9ydCB0aW1lb3V0IGFuZCB1c2UgdGhlIHNsb3cg Y29tbWFuZAorc2VkIC1pLmJhayAic3xyZXBsaWNhdGlvbl9kZWxheV9zb3VyY2VfY21kID0gJy4v bm9uZXhpc3RlbnRfY29tbWFuZC5zaCd8cmVwbGljYXRpb25fZGVsYXlfc291cmNlX2NtZCA9ICcu L2RlbGF5X2NtZF9zbG93LnNoJ3wiIGV0Yy9wZ3Bvb2wuY29uZgorZWNobyAicmVwbGljYXRpb25f ZGVsYXlfc291cmNlX3RpbWVvdXQgPSAzIiA+PiBldGMvcGdwb29sLmNvbmYKKworLi9zdGFydGFs bAord2FpdF9mb3JfcGdwb29sX3N0YXJ0dXAKKworIyBXYWl0IGZvciBzcl9jaGVjayB0byBydW4g YW5kIHRpbWVvdXQKK2VjaG8gIldhaXRpbmcgZm9yIGNvbW1hbmQgdGltZW91dC4uLiIKK2ZvciBp IGluIHsxLi4xNX07IGRvCisgICAgaWYgZ3JlcCAtcSAicmVwbGljYXRpb24gZGVsYXkgY29tbWFu ZCB0aW1lZCBvdXQiIGxvZy9wZ3Bvb2wubG9nIDI+L2Rldi9udWxsOyB0aGVuCisgICAgICAgIGVj aG8gIkNvbW1hbmQgdGltZW91dCBkZXRlY3RlZCBhZnRlciAke2l9IHNlY29uZHMiCisgICAgICAg IGJyZWFrCisgICAgZmkKKyAgICBzbGVlcCAxCitkb25lCisKKyMgQ2hlY2sgZm9yIHRpbWVvdXQg ZXJyb3IgbWVzc2FnZQorZ3JlcCAicmVwbGljYXRpb24gZGVsYXkgY29tbWFuZCB0aW1lZCBvdXQg YWZ0ZXIgMyBzZWNvbmRzIiBsb2cvcGdwb29sLmxvZyA+L2Rldi9udWxsIDI+JjEKK2lmIFsgJD8g IT0gMCBdO3RoZW4KKyAgICBlY2hvIGZhaWw6IGNvbW1hbmQgdGltZW91dCBub3QgZGV0ZWN0ZWQK KyAgICAuL3NodXRkb3duYWxsCisgICAgZXhpdCAxCitmaQorCitlY2hvIG9rOiBjb21tYW5kIHRp bWVvdXQgdGVzdCBzdWNjZWVkZWQKKy4vc2h1dGRvd25hbGwKKworIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCitlY2hvICI9PT0gVGVzdDg6IEhhbmRsaW5nIG9mIC0xIGZvciBkb3du IG5vZGVzID09PSIKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDcmVhdGUg YSBjb21tYW5kIHRoYXQgcmV0dXJucyAtMSBmb3Igb25lIHJlcGxpY2EKK2NhdCA+IGRlbGF5X2Nt ZF93aXRoX2Rvd25fbm9kZS5zaCA8PCAnRU9GJworIyEvYmluL2Jhc2gKKyMgUmV0dXJuIC0xIGZv ciBmaXJzdCByZXBsaWNhIChpbmRpY2F0aW5nIGl0J3MgZG93biksIG5vcm1hbCB2YWx1ZSBmb3Ig c2Vjb25kCitlY2hvICItMSA1MCIKK0VPRgorY2htb2QgK3ggZGVsYXlfY21kX3dpdGhfZG93bl9u b2RlLnNoCisKKyMgUmVzZXQgY29uZmlnCitybSAtZiBldGMvcGdwb29sLmNvbmYuYmFrCitzZWQg LWkuYmFrICJzfGRlbGF5X2NtZF9zbG93LnNofGRlbGF5X2NtZF93aXRoX2Rvd25fbm9kZS5zaHwi IGV0Yy9wZ3Bvb2wuY29uZgorc2VkIC1pLmJhayAic3xyZXBsaWNhdGlvbl9kZWxheV9zb3VyY2Vf dGltZW91dCA9IDN8cmVwbGljYXRpb25fZGVsYXlfc291cmNlX3RpbWVvdXQgPSAxMHwiIGV0Yy9w Z3Bvb2wuY29uZgorCisuL3N0YXJ0YWxsCit3YWl0X2Zvcl9wZ3Bvb2xfc3RhcnR1cAorCisjIFdh aXQgZm9yIHNyX2NoZWNrIHRvIHByb2Nlc3MgLTEgdmFsdWUKK2VjaG8gIldhaXRpbmcgZm9yIHNy X2NoZWNrIHRvIHByb2Nlc3MgLTEgdmFsdWUuLi4iCitmb3IgaSBpbiB7MS4uMTB9OyBkbworICAg IGlmIGdyZXAgLXEgIm5vZGUuKnJlcG9ydGVkIGFzIGRvd24gYnkgZXh0ZXJuYWwgY29tbWFuZC4q ZGVsYXkgLTEiIGxvZy9wZ3Bvb2wubG9nIDI+L2Rldi9udWxsOyB0aGVuCisgICAgICAgIGVjaG8g Ii0xIGhhbmRsaW5nIGRldGVjdGVkIGFmdGVyICR7aX0gc2Vjb25kcyIKKyAgICAgICAgYnJlYWsK KyAgICBmaQorICAgIHNsZWVwIDEKK2RvbmUKKworIyBDaGVjayBmb3IgLTEgbG9nZ2luZyBtZXNz YWdlCitncmVwICJub2RlLipyZXBvcnRlZCBhcyBkb3duIGJ5IGV4dGVybmFsIGNvbW1hbmQuKmRl bGF5IC0xLipyZWx5aW5nIG9uIGhlYWx0aCBjaGVjayIgbG9nL3BncG9vbC5sb2cgPi9kZXYvbnVs bCAyPiYxCitpZiBbICQ/ICE9IDAgXTt0aGVuCisgICAgZWNobyBmYWlsOiAtMSBoYW5kbGluZyBt ZXNzYWdlIG5vdCBmb3VuZAorICAgIC4vc2h1dGRvd25hbGwKKyAgICBleGl0IDEKK2ZpCisKKyMg VmVyaWZ5IHRoYXQgcGdwb29sIGRpZG4ndCBjcmFzaCBvciB0cmlnZ2VyIGZhaWxvdmVyIGp1c3Qg ZnJvbSAtMQoraWYgZ3JlcCAtcSAiZmFpbG92ZXIiIGxvZy9wZ3Bvb2wubG9nIDI+L2Rldi9udWxs OyB0aGVuCisgICAgZWNobyAiZmFpbDogLTEgc2hvdWxkIG5vdCB0cmlnZ2VyIGltbWVkaWF0ZSBm YWlsb3ZlciIKKyAgICAuL3NodXRkb3duYWxsCisgICAgZXhpdCAxCitmaQorCitlY2hvIG9rOiAt MSBoYW5kbGluZyB0ZXN0IHN1Y2NlZWRlZAorLi9zaHV0ZG93bmFsbAorCitlY2hvICJBbGwgZXh0 ZXJuYWwgcmVwbGljYXRpb24gZGVsYXkgdGVzdHMgcGFzc2VkISIKK2V4aXQgMApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzc2lvbi90ZXN0cy8wNDEuZXh0ZXJuYWxfcmVwbGljYXRpb25fZGVs YXkvdGVzdF9wYXJzaW5nLnNoIGIvc3JjL3Rlc3QvcmVncmVzc2lvbi90ZXN0cy8wNDEuZXh0ZXJu YWxfcmVwbGljYXRpb25fZGVsYXkvdGVzdF9wYXJzaW5nLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1 CmluZGV4IDAwMDAwMDAwMC4uODJmZGFkMTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzc2lvbi90ZXN0cy8wNDEuZXh0ZXJuYWxfcmVwbGljYXRpb25fZGVsYXkvdGVzdF9wYXJz aW5nLnNoCkBAIC0wLDAgKzEsNTQgQEAKKyMhL2Jpbi9iYXNoCisjLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBVbml0 IHRlc3QgZm9yIGV4dGVybmFsIGNvbW1hbmQgcGFyc2luZyBsb2dpYworIyBUaGlzIHRlc3RzIHRo ZSBwYXJzaW5nIHdpdGhvdXQgbmVlZGluZyBhIGZ1bGwgcGdwb29sIHNldHVwCisjCisKK2VjaG8g Ij09PSBUZXN0aW5nIGV4dGVybmFsIGNvbW1hbmQgb3V0cHV0IHBhcnNpbmcgPT09IgorCisjIFRl c3QgMTogSW50ZWdlciB2YWx1ZXMKK2VjaG8gIlRlc3QgMTogSW50ZWdlciBtaWxsaXNlY29uZCB2 YWx1ZXMiCitlY2hvICIwIDI1IDUwIiA+IHRlc3Rfb3V0cHV0LnR4dAorZWNobyAiRXhwZWN0ZWQ6 IDBtcywgMjVtcywgNTBtcyIKK2VjaG8gIk91dHB1dDogJChjYXQgdGVzdF9vdXRwdXQudHh0KSIK K2VjaG8gIiIKKworIyBUZXN0IDI6IEZsb2F0IHZhbHVlcworZWNobyAiVGVzdCAyOiBGbG9hdGlu Zy1wb2ludCBtaWxsaXNlY29uZCB2YWx1ZXMiCitlY2hvICIwIDI1LjUgMTAwLjc1IiA+IHRlc3Rf b3V0cHV0X2Zsb2F0LnR4dAorZWNobyAiRXhwZWN0ZWQ6IDBtcywgMjUuNW1zLCAxMDAuNzVtcyIK K2VjaG8gIk91dHB1dDogJChjYXQgdGVzdF9vdXRwdXRfZmxvYXQudHh0KSIKK2VjaG8gIiIKKwor IyBUZXN0IDM6IEhpZ2ggcHJlY2lzaW9uIGZsb2F0IHZhbHVlcworZWNobyAiVGVzdCAzOiBIaWdo IHByZWNpc2lvbiB2YWx1ZXMiCitlY2hvICIwIDAuMDAxIDk5OS45OTkiID4gdGVzdF9vdXRwdXRf cHJlY2lzaW9uLnR4dAorZWNobyAiRXhwZWN0ZWQ6IDBtcywgMC4wMDFtcywgOTk5Ljk5OW1zIgor ZWNobyAiT3V0cHV0OiAkKGNhdCB0ZXN0X291dHB1dF9wcmVjaXNpb24udHh0KSIKK2VjaG8gIiIK KworIyBUZXN0IDQ6IEVkZ2UgY2FzZSAtIHplcm8gdmFsdWVzCitlY2hvICJUZXN0IDQ6IEFsbCB6 ZXJvIHZhbHVlcyIKK2VjaG8gIjAgMCAwIiA+IHRlc3Rfb3V0cHV0X3plcm9zLnR4dAorZWNobyAi RXhwZWN0ZWQ6IDBtcywgMG1zLCAwbXMiCitlY2hvICJPdXRwdXQ6ICQoY2F0IHRlc3Rfb3V0cHV0 X3plcm9zLnR4dCkiCitlY2hvICIiCisKKyMgVGVzdCA1OiBFZGdlIGNhc2UgLSBsYXJnZSB2YWx1 ZXMKK2VjaG8gIlRlc3QgNTogTGFyZ2UgZGVsYXkgdmFsdWVzIgorZWNobyAiMCA1MDAwIDEwMDAw IiA+IHRlc3Rfb3V0cHV0X2xhcmdlLnR4dAorZWNobyAiRXhwZWN0ZWQ6IDBtcywgNTAwMG1zLCAx MDAwMG1zIgorZWNobyAiT3V0cHV0OiAkKGNhdCB0ZXN0X291dHB1dF9sYXJnZS50eHQpIgorZWNo byAiIgorCisjIFRlc3QgNjogTWl4ZWQgaW50ZWdlciBhbmQgZmxvYXQgdmFsdWVzCitlY2hvICJU ZXN0IDY6IE1peGVkIGludGVnZXIgYW5kIGZsb2F0IHZhbHVlcyIKK2VjaG8gIjAgMjUgNTAuNSIg PiB0ZXN0X291dHB1dF9taXhlZC50eHQKK2VjaG8gIkV4cGVjdGVkOiAwbXMsIDI1bXMsIDUwLjVt cyIKK2VjaG8gIk91dHB1dDogJChjYXQgdGVzdF9vdXRwdXRfbWl4ZWQudHh0KSIKK2VjaG8gIiIK KworIyBDbGVhbnVwCitybSAtZiB0ZXN0X291dHB1dF8qLnR4dAorCitlY2hvICJBbGwgcGFyc2lu ZyB0ZXN0cyBjb21wbGV0ZWQuIFRoZXNlIG91dHB1dHMgc2hvdWxkIGJlIHBhcnNlYWJsZSBieSB0 aGUgZXh0ZXJuYWwgY29tbWFuZCBmZWF0dXJlLiIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Npb24vdGVzdHMvMDQxLmV4dGVybmFsX3JlcGxpY2F0aW9uX2RlbGF5L3Rlc3RfdmFsaWRhdGlv bi5zaCBiL3NyYy90ZXN0L3JlZ3Jlc3Npb24vdGVzdHMvMDQxLmV4dGVybmFsX3JlcGxpY2F0aW9u X2RlbGF5L3Rlc3RfdmFsaWRhdGlvbi5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAw MDAwMDAuLjJjZDRhN2YwYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Npb24v dGVzdHMvMDQxLmV4dGVybmFsX3JlcGxpY2F0aW9uX2RlbGF5L3Rlc3RfdmFsaWRhdGlvbi5zaApA QCAtMCwwICsxLDMyMyBAQAorIyEvdXNyL2Jpbi9lbnYgYmFzaAorIy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgdGVz dCBzY3JpcHQgZm9yIGV4dGVybmFsIGNvbW1hbmQgdmFsaWRhdGlvbiBhbmQgZWRnZSBjYXNlcwor Iworc291cmNlICRURVNUTElCUworVEVTVERJUj10ZXN0ZGlyX3ZhbGlkYXRpb24KK1BHX0NUTD0k UEdCSU4vcGdfY3RsCitQU1FMPSIkUEdCSU4vcHNxbCAtWCAiCisKK3JtIC1mciAkVEVTVERJUgor bWtkaXIgJFRFU1RESVIKK2NkICRURVNURElSCisKKyMgY3JlYXRlIHRlc3QgZW52aXJvbm1lbnQK K2VjaG8gLW4gImNyZWF0aW5nIHRlc3QgZW52aXJvbm1lbnQuLi4iCiskUEdQT09MX1NFVFVQIC1t IHMgLW4gMyB8fCBleGl0IDEKK2VjaG8gImRvbmUuIgorc291cmNlIC4vYmFzaHJjLnBvcnRzCitl eHBvcnQgUEdQT1JUPSRQR1BPT0xfUE9SVAorCisjIENyZWF0ZSB0ZXN0IGNvbW1hbmQgc2NyaXB0 cworIyBOT1RFOiBBbGwgY29tbWFuZHMgb3V0cHV0IHZhbHVlcyBmb3IgUkVQTElDQVMgb25seSAo cHJpbWFyeSBvbWl0dGVkKQorY2F0ID4gZGVsYXlfY21kX3ZhbGlkYXRpb24uc2ggPDwgJ0VPRicK KyMhL2Jpbi9iYXNoCisjIFRlc3QgdmFsaWRhdGlvbjogb3V0cHV0IHdpdGggaW52YWxpZCB2YWx1 ZXMgZm9yIDIgcmVwbGljYXMKK2VjaG8gImludmFsaWRfdmFsdWUgNTAuNSIKK0VPRgorY2htb2Qg K3ggZGVsYXlfY21kX3ZhbGlkYXRpb24uc2gKKworY2F0ID4gZGVsYXlfY21kX25lZ2F0aXZlLnNo IDw8ICdFT0YnCisjIS9iaW4vYmFzaAorIyBUZXN0IG5lZ2F0aXZlIHZhbHVlcyAob3RoZXIgdGhh biAtMSkKK2VjaG8gIi0yNSA1MCIKK0VPRgorY2htb2QgK3ggZGVsYXlfY21kX25lZ2F0aXZlLnNo CisKK2NhdCA+IGRlbGF5X2NtZF9sYXJnZS5zaCA8PCAnRU9GJworIyEvYmluL2Jhc2gKKyMgVGVz dCBleHRyZW1lbHkgbGFyZ2UgdmFsdWVzCitlY2hvICI5OTk5OTk5IDUwIgorRU9GCitjaG1vZCAr eCBkZWxheV9jbWRfbGFyZ2Uuc2gKKworY2F0ID4gZGVsYXlfY21kX3dyb25nX2NvdW50LnNoIDw8 ICdFT0YnCisjIS9iaW4vYmFzaAorIyBUZXN0IHdyb25nIG51bWJlciBvZiB2YWx1ZXMgKG9ubHkg MSBpbnN0ZWFkIG9mIDIgZm9yIDIgcmVwbGljYXMpCitlY2hvICIyNSIKK0VPRgorY2htb2QgK3gg ZGVsYXlfY21kX3dyb25nX2NvdW50LnNoCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorZWNobyAiPT09IFRlc3QxOiBWYWxpZGF0aW9uIG9mIGludmFsaWQgZGVsYXkgdmFsdWVz ID09PSIKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZWNobyAicmVwbGljYXRp b25fZGVsYXlfc291cmNlX2NtZCA9ICcuL2RlbGF5X2NtZF92YWxpZGF0aW9uLnNoJyIgPj4gZXRj L3BncG9vbC5jb25mCitlY2hvICJzcl9jaGVja19wZXJpb2QgPSAxIiA+PiBldGMvcGdwb29sLmNv bmYKK2VjaG8gImxvZ19zdGFuZGJ5X2RlbGF5ID0gJ2Fsd2F5cyciID4+IGV0Yy9wZ3Bvb2wuY29u ZgorZWNobyAibG9nX21pbl9tZXNzYWdlcyA9ICdERUJVRzEnIiA+PiBldGMvcGdwb29sLmNvbmYK KyMgUmVkdWNlIG1lbW9yeSByZXF1aXJlbWVudHMgZm9yIG1hY09TIHNoYXJlZCBtZW1vcnkgbGlt aXRzCitlY2hvICJudW1faW5pdF9jaGlsZHJlbiA9IDQiID4+IGV0Yy9wZ3Bvb2wuY29uZgorZWNo byAibWF4X3Bvb2wgPSAyIiA+PiBldGMvcGdwb29sLmNvbmYKKyMgRGlzYWJsZSBxdWVyeSBjYWNo aW5nIHRvIGF2b2lkIHNoYXJlZCBtZW1vcnkgaXNzdWVzIG9uIG1hY09TCitlY2hvICJtZW1vcnlf Y2FjaGVfZW5hYmxlZCA9IG9mZiIgPj4gZXRjL3BncG9vbC5jb25mCisKKy4vc3RhcnRhbGwKK3dh aXRfZm9yX3BncG9vbF9zdGFydHVwCisKKyRQU1FMIHRlc3QgPDxFT0YKK0NSRUFURSBUQUJMRSB0 MShpIElOVEVHRVIpOworRU9GCisKKyMgV2FpdCBmb3Igc3JfY2hlY2sgdG8gcnVuCitlY2hvICJX YWl0aW5nIGZvciB2YWxpZGF0aW9uIHRlc3QuLi4iCitmb3IgaSBpbiB7MS4uMTB9OyBkbworICAg IGlmIGdyZXAgLXEgImludmFsaWQgZGVsYXkgdmFsdWUiIGxvZy9wZ3Bvb2wubG9nIDI+L2Rldi9u dWxsOyB0aGVuCisgICAgICAgIGVjaG8gIlZhbGlkYXRpb24gZXJyb3IgZGV0ZWN0ZWQgYWZ0ZXIg JHtpfSBzZWNvbmRzIgorICAgICAgICBicmVhaworICAgIGZpCisgICAgc2xlZXAgMQorZG9uZQor CisjIENoZWNrIGZvciB2YWxpZGF0aW9uIHdhcm5pbmcKK2dyZXAgImludmFsaWQgZGVsYXkgdmFs dWUgJ2ludmFsaWRfdmFsdWUnIGZvciBub2RlIiBsb2cvcGdwb29sLmxvZyA+L2Rldi9udWxsIDI+ JjEKK2lmIFsgJD8gIT0gMCBdO3RoZW4KKyAgICBlY2hvIGZhaWw6IHZhbGlkYXRpb24gd2Fybmlu ZyBub3QgZm91bmQKKyAgICAuL3NodXRkb3duYWxsCisgICAgZXhpdCAxCitmaQorCitlY2hvIG9r OiBpbnZhbGlkIHZhbHVlIHZhbGlkYXRpb24gdGVzdCBzdWNjZWVkZWQKKy4vc2h1dGRvd25hbGwK KworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitlY2hvICI9PT0gVGVzdDI6IE5l Z2F0aXZlIGRlbGF5IHZhbHVlcyAob3RoZXIgdGhhbiAtMSkgPT09IgorIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCitzZWQgLWkuYmFrICJzfGRlbGF5X2NtZF92YWxpZGF0aW9uLnNo fGRlbGF5X2NtZF9uZWdhdGl2ZS5zaHwiIGV0Yy9wZ3Bvb2wuY29uZgorCisuL3N0YXJ0YWxsCit3 YWl0X2Zvcl9wZ3Bvb2xfc3RhcnR1cAorCisjIFdhaXQgZm9yIHNyX2NoZWNrIHRvIHJ1bgorZWNo byAiV2FpdGluZyBmb3IgbmVnYXRpdmUgdmFsdWUgdGVzdC4uLiIKK2ZvciBpIGluIHsxLi4xMH07 IGRvCisgICAgaWYgZ3JlcCAtcSAibmVnYXRpdmUgZGVsYXkgdmFsdWUuKm90aGVyIHRoYW4gLTEi IGxvZy9wZ3Bvb2wubG9nIDI+L2Rldi9udWxsOyB0aGVuCisgICAgICAgIGVjaG8gIk5lZ2F0aXZl IHZhbHVlIHdhcm5pbmcgZGV0ZWN0ZWQgYWZ0ZXIgJHtpfSBzZWNvbmRzIgorICAgICAgICBicmVh aworICAgIGZpCisgICAgc2xlZXAgMQorZG9uZQorCisjIENoZWNrIGZvciBuZWdhdGl2ZSB2YWx1 ZSB3YXJuaW5nCitncmVwICJuZWdhdGl2ZSBkZWxheSB2YWx1ZS4qb3RoZXIgdGhhbiAtMS4qdHJl YXRpbmcgYXMgMCIgbG9nL3BncG9vbC5sb2cgPi9kZXYvbnVsbCAyPiYxCitpZiBbICQ/ICE9IDAg XTt0aGVuCisgICAgZWNobyBmYWlsOiBuZWdhdGl2ZSB2YWx1ZSB3YXJuaW5nIG5vdCBmb3VuZAor ICAgIC4vc2h1dGRvd25hbGwKKyAgICBleGl0IDEKK2ZpCisKK2VjaG8gb2s6IG5lZ2F0aXZlIHZh bHVlIHZhbGlkYXRpb24gdGVzdCBzdWNjZWVkZWQKKy4vc2h1dGRvd25hbGwKKworIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitlY2hvICI9PT0gVGVzdDM6IEV4dHJlbWVseSBsYXJn ZSBkZWxheSB2YWx1ZXMgPT09IgorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitz ZWQgLWkuYmFrICJzfGRlbGF5X2NtZF9uZWdhdGl2ZS5zaHxkZWxheV9jbWRfbGFyZ2Uuc2h8IiBl dGMvcGdwb29sLmNvbmYKKworLi9zdGFydGFsbAord2FpdF9mb3JfcGdwb29sX3N0YXJ0dXAKKwor IyBXYWl0IGZvciBzcl9jaGVjayB0byBydW4KK2VjaG8gIldhaXRpbmcgZm9yIGxhcmdlIHZhbHVl IHRlc3QuLi4iCitmb3IgaSBpbiB7MS4uMTB9OyBkbworICAgIGlmIGdyZXAgLXEgImV4dHJlbWVs eSBsYXJnZSBkZWxheSB2YWx1ZSIgbG9nL3BncG9vbC5sb2cgMj4vZGV2L251bGw7IHRoZW4KKyAg ICAgICAgZWNobyAiTGFyZ2UgdmFsdWUgd2FybmluZyBkZXRlY3RlZCBhZnRlciAke2l9IHNlY29u ZHMiCisgICAgICAgIGJyZWFrCisgICAgZmkKKyAgICBzbGVlcCAxCitkb25lCisKKyMgQ2hlY2sg Zm9yIGxhcmdlIHZhbHVlIHdhcm5pbmcKK2dyZXAgImV4dHJlbWVseSBsYXJnZSBkZWxheSB2YWx1 ZS4qZm9yIG5vZGUiIGxvZy9wZ3Bvb2wubG9nID4vZGV2L251bGwgMj4mMQoraWYgWyAkPyAhPSAw IF07dGhlbgorICAgIGVjaG8gZmFpbDogbGFyZ2UgdmFsdWUgd2FybmluZyBub3QgZm91bmQKKyAg ICAuL3NodXRkb3duYWxsCisgICAgZXhpdCAxCitmaQorCitlY2hvIG9rOiBsYXJnZSB2YWx1ZSB2 YWxpZGF0aW9uIHRlc3Qgc3VjY2VlZGVkCisuL3NodXRkb3duYWxsCisKKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorZWNobyAiPT09IFRlc3Q0OiBXcm9uZyBudW1iZXIgb2Ygb3V0 cHV0IHZhbHVlcyA9PT0iCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3NlZCAt aS5iYWsgInN8ZGVsYXlfY21kX2xhcmdlLnNofGRlbGF5X2NtZF93cm9uZ19jb3VudC5zaHwiIGV0 Yy9wZ3Bvb2wuY29uZgorCisuL3N0YXJ0YWxsCit3YWl0X2Zvcl9wZ3Bvb2xfc3RhcnR1cAorCisj IFdhaXQgZm9yIHNyX2NoZWNrIHRvIHJ1bgorZWNobyAiV2FpdGluZyBmb3Igd3JvbmcgY291bnQg dGVzdC4uLiIKK2ZvciBpIGluIHsxLi4xMH07IGRvCisgICAgaWYgZ3JlcCAtcSAicmV0dXJuZWQu KnZhbHVlcywgZXhwZWN0ZWQuKnJlcGxpY2EiIGxvZy9wZ3Bvb2wubG9nIDI+L2Rldi9udWxsOyB0 aGVuCisgICAgICAgIGVjaG8gIldyb25nIGNvdW50IHdhcm5pbmcgZGV0ZWN0ZWQgYWZ0ZXIgJHtp fSBzZWNvbmRzIgorICAgICAgICBicmVhaworICAgIGZpCisgICAgc2xlZXAgMQorZG9uZQorCisj IENoZWNrIGZvciB3cm9uZyBjb3VudCB3YXJuaW5nCitncmVwICJyZXR1cm5lZC4qdmFsdWVzLCBl eHBlY3RlZC4qcmVwbGljYS4qQ29tbWFuZCBzaG91bGQgb3V0cHV0IG9uZSBkZWxheSB2YWx1ZSBw ZXIgcmVwbGljYSIgbG9nL3BncG9vbC5sb2cgPi9kZXYvbnVsbCAyPiYxCitpZiBbICQ/ICE9IDAg XTt0aGVuCisgICAgZWNobyBmYWlsOiB3cm9uZyBjb3VudCB2YWxpZGF0aW9uIHRlc3Qgbm90IGZv dW5kCisgICAgLi9zaHV0ZG93bmFsbAorICAgIGV4aXQgMQorZmkKKworZWNobyBvazogd3Jvbmcg Y291bnQgdmFsaWRhdGlvbiB0ZXN0IHN1Y2NlZWRlZAorLi9zaHV0ZG93bmFsbAorCisjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2VjaG8gIj09PSBUZXN0NTogTXVsdGlwbGUgLTEg dmFsdWVzID09PSIKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorY2F0ID4gZGVs YXlfY21kX211bHRpX2Rvd24uc2ggPDwgJ0VPRicKKyMhL2Jpbi9iYXNoCisjIFRlc3QgbXVsdGlw bGUgcmVwbGljYXMgZG93bgorZWNobyAiLTEgLTEiCitFT0YKK2NobW9kICt4IGRlbGF5X2NtZF9t dWx0aV9kb3duLnNoCisKK3NlZCAtaS5iYWsgInN8ZGVsYXlfY21kX3dyb25nX2NvdW50LnNofGRl bGF5X2NtZF9tdWx0aV9kb3duLnNofCIgZXRjL3BncG9vbC5jb25mCisKKy4vc3RhcnRhbGwKK3dh aXRfZm9yX3BncG9vbF9zdGFydHVwCisKKyMgV2FpdCBmb3Igc3JfY2hlY2sgdG8gcnVuCitlY2hv ICJXYWl0aW5nIGZvciBtdWx0aS1kb3duIHRlc3QuLi4iCitmb3IgaSBpbiB7MS4uMTB9OyBkbwor ICAgIGlmIGdyZXAgLXEgIm5vZGUuKnJlcG9ydGVkIGFzIGRvd24gYnkgZXh0ZXJuYWwgY29tbWFu ZCIgbG9nL3BncG9vbC5sb2cgMj4vZGV2L251bGw7IHRoZW4KKyAgICAgICAgZWNobyAiTXVsdGlw bGUgZG93biBub2RlcyBkZXRlY3RlZCBhZnRlciAke2l9IHNlY29uZHMiCisgICAgICAgIGJyZWFr CisgICAgZmkKKyAgICBzbGVlcCAxCitkb25lCisKKyMgQ2hlY2sgZm9yIG11bHRpcGxlIC0xIGhh bmRsaW5nCitET1dOX0NPVU5UPSQoZ3JlcCAtYyAibm9kZS4qcmVwb3J0ZWQgYXMgZG93biBieSBl eHRlcm5hbCBjb21tYW5kLipkZWxheSAtMSIgbG9nL3BncG9vbC5sb2cpCitpZiBbICIkRE9XTl9D T1VOVCIgLWx0IDIgXTsgdGhlbgorICAgIGVjaG8gZmFpbDogZXhwZWN0ZWQgMiBkb3duIG5vZGUg bWVzc2FnZXMsIGZvdW5kICRET1dOX0NPVU5UCisgICAgLi9zaHV0ZG93bmFsbAorICAgIGV4aXQg MQorZmkKKworZWNobyBvazogbXVsdGlwbGUgLTEgaGFuZGxpbmcgdGVzdCBzdWNjZWVkZWQKKy4v c2h1dGRvd25hbGwKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitlY2hvICI9 PT0gVGVzdDY6IENvbW1hbmQgdGltZW91dCB3aXRoIGRpZmZlcmVudCB0aW1lb3V0IHZhbHVlcyA9 PT0iCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2NhdCA+IGRlbGF5X2NtZF90 aW1lb3V0LnNoIDw8ICdFT0YnCisjIS9iaW4vYmFzaAorIyBDb21tYW5kIHRoYXQgdGFrZXMgNSBz ZWNvbmRzCitzbGVlcCA1CitlY2hvICIyNSA1MCIKK0VPRgorY2htb2QgK3ggZGVsYXlfY21kX3Rp bWVvdXQuc2gKKworIyBUZXN0IHdpdGggdGltZW91dCBzaG9ydGVyIHRoYW4gY29tbWFuZCBkdXJh dGlvbgorc2VkIC1pLmJhayAic3xkZWxheV9jbWRfbXVsdGlfZG93bi5zaHxkZWxheV9jbWRfdGlt ZW91dC5zaHwiIGV0Yy9wZ3Bvb2wuY29uZgorZWNobyAicmVwbGljYXRpb25fZGVsYXlfc291cmNl X3RpbWVvdXQgPSAyIiA+PiBldGMvcGdwb29sLmNvbmYKKworLi9zdGFydGFsbAord2FpdF9mb3Jf cGdwb29sX3N0YXJ0dXAKKworIyBXYWl0IGZvciB0aW1lb3V0CitlY2hvICJXYWl0aW5nIGZvciB0 aW1lb3V0IHRlc3QgKDJzIHRpbWVvdXQsIDVzIGNvbW1hbmQpLi4uIgorZm9yIGkgaW4gezEuLjEw fTsgZG8KKyAgICBpZiBncmVwIC1xICJyZXBsaWNhdGlvbiBkZWxheSBjb21tYW5kIHRpbWVkIG91 dCBhZnRlciAyIHNlY29uZHMiIGxvZy9wZ3Bvb2wubG9nIDI+L2Rldi9udWxsOyB0aGVuCisgICAg ICAgIGVjaG8gIlRpbWVvdXQgZGV0ZWN0ZWQgYWZ0ZXIgJHtpfSBzZWNvbmRzIgorICAgICAgICBi cmVhaworICAgIGZpCisgICAgc2xlZXAgMQorZG9uZQorCisjIENoZWNrIGZvciB0aW1lb3V0IG1l c3NhZ2UKK2dyZXAgInJlcGxpY2F0aW9uIGRlbGF5IGNvbW1hbmQgdGltZWQgb3V0IGFmdGVyIDIg c2Vjb25kcyIgbG9nL3BncG9vbC5sb2cgPi9kZXYvbnVsbCAyPiYxCitpZiBbICQ/ICE9IDAgXTt0 aGVuCisgICAgZWNobyBmYWlsOiB0aW1lb3V0IG5vdCBkZXRlY3RlZAorICAgIC4vc2h1dGRvd25h bGwKKyAgICBleGl0IDEKK2ZpCisKK2VjaG8gb2s6IHRpbWVvdXQgdGVzdCBzdWNjZWVkZWQKKy4v c2h1dGRvd25hbGwKKworIyBUZXN0IHdpdGggdGltZW91dCBsb25nZXIgdGhhbiBjb21tYW5kIGR1 cmF0aW9uCitzZWQgLWkuYmFrICJzfHJlcGxpY2F0aW9uX2RlbGF5X3NvdXJjZV90aW1lb3V0ID0g MnxyZXBsaWNhdGlvbl9kZWxheV9zb3VyY2VfdGltZW91dCA9IDEwfCIgZXRjL3BncG9vbC5jb25m CisKKy4vc3RhcnRhbGwKK3dhaXRfZm9yX3BncG9vbF9zdGFydHVwCisKKyMgV2FpdCBmb3Igc3Vj Y2Vzc2Z1bCBleGVjdXRpb24KK2VjaG8gIldhaXRpbmcgZm9yIHN1Y2Nlc3NmdWwgZXhlY3V0aW9u ICgxMHMgdGltZW91dCwgNXMgY29tbWFuZCkuLi4iCitmb3IgaSBpbiB7MS4uMTV9OyBkbworICAg IGlmIGdyZXAgLXEgImV4ZWN1dGluZyByZXBsaWNhdGlvbiBkZWxheSBjb21tYW5kLipkZWxheV9j bWRfdGltZW91dC5zaCIgbG9nL3BncG9vbC5sb2cgMj4vZGV2L251bGw7IHRoZW4KKyAgICAgICAg ZWNobyAiQ29tbWFuZCBleGVjdXRlZCBzdWNjZXNzZnVsbHkgYWZ0ZXIgJHtpfSBzZWNvbmRzIgor ICAgICAgICBicmVhaworICAgIGZpCisgICAgc2xlZXAgMQorZG9uZQorCisjIFNob3VsZCBub3Qg dGltZW91dCB0aGlzIHRpbWUKK2lmIGdyZXAgLXEgInJlcGxpY2F0aW9uIGRlbGF5IGNvbW1hbmQg dGltZWQgb3V0IiBsb2cvcGdwb29sLmxvZyAyPi9kZXYvbnVsbDsgdGhlbgorICAgIGVjaG8gZmFp bDogY29tbWFuZCBzaG91bGQgbm90IGhhdmUgdGltZWQgb3V0IHdpdGggMTBzIHRpbWVvdXQKKyAg ICAuL3NodXRkb3duYWxsCisgICAgZXhpdCAxCitmaQorCitlY2hvIG9rOiBleHRlbmRlZCB0aW1l b3V0IHRlc3Qgc3VjY2VlZGVkCisuL3NodXRkb3duYWxsCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorZWNobyAiPT09IFRlc3Q3OiBNaXggb2YgdmFsaWQgZGVsYXlzIGFuZCAt MSA9PT0iCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2NhdCA+IGRlbGF5X2Nt ZF9taXhlZC5zaCA8PCAnRU9GJworIyEvYmluL2Jhc2gKKyMgT25lIHJlcGxpY2EgdXAgKDI1bXMp LCBvbmUgZG93biAoLTEpCitlY2hvICIyNSAtMSIKK0VPRgorY2htb2QgK3ggZGVsYXlfY21kX21p eGVkLnNoCisKK3NlZCAtaS5iYWsgInN8ZGVsYXlfY21kX3RpbWVvdXQuc2h8ZGVsYXlfY21kX21p eGVkLnNofCIgZXRjL3BncG9vbC5jb25mCisKKy4vc3RhcnRhbGwKK3dhaXRfZm9yX3BncG9vbF9z dGFydHVwCisKKyMgV2FpdCBmb3Igc3JfY2hlY2sKK2VjaG8gIldhaXRpbmcgZm9yIG1peGVkIGRl bGF5IHRlc3QuLi4iCitmb3IgaSBpbiB7MS4uMTB9OyBkbworICAgIGlmIGdyZXAgLXEgIm5vZGUu KnJlcG9ydGVkIGFzIGRvd24gYnkgZXh0ZXJuYWwgY29tbWFuZCIgbG9nL3BncG9vbC5sb2cgMj4v ZGV2L251bGw7IHRoZW4KKyAgICAgICAgZWNobyAiTWl4ZWQgZGVsYXkgaGFuZGxpbmcgZGV0ZWN0 ZWQgYWZ0ZXIgJHtpfSBzZWNvbmRzIgorICAgICAgICBicmVhaworICAgIGZpCisgICAgc2xlZXAg MQorZG9uZQorCisjIFNob3VsZCBsb2cgb25lIC0xIGFuZCBwcm9jZXNzIG9uZSBub3JtYWwgZGVs YXkKK2dyZXAgIm5vZGUuKnJlcG9ydGVkIGFzIGRvd24gYnkgZXh0ZXJuYWwgY29tbWFuZC4qZGVs YXkgLTEiIGxvZy9wZ3Bvb2wubG9nID4vZGV2L251bGwgMj4mMQoraWYgWyAkPyAhPSAwIF07dGhl bgorICAgIGVjaG8gZmFpbDogLTEgbm90IGxvZ2dlZAorICAgIC4vc2h1dGRvd25hbGwKKyAgICBl eGl0IDEKK2ZpCisKKyMgU2hvdWxkIGFsc28gbG9nIHRoZSBub3JtYWwgcmVwbGljYSBkZWxheQor Z3JlcCAiUmVwbGljYXRpb24gb2Ygbm9kZS4qZXh0ZXJuYWwgY29tbWFuZCIgbG9nL3BncG9vbC5s b2cgPi9kZXYvbnVsbCAyPiYxCitpZiBbICQ/ICE9IDAgXTt0aGVuCisgICAgZWNobyAiTm90ZTog Tm9ybWFsIHJlcGxpY2EgZGVsYXkgbG9nZ2luZyBtYXkgbm90IGJlIHZpc2libGUgd2l0aCBsb2df c3RhbmRieV9kZWxheSBzZXR0aW5ncyIKK2ZpCisKK2VjaG8gb2s6IG1peGVkIGRlbGF5IGhhbmRs aW5nIHRlc3Qgc3VjY2VlZGVkCisuL3NodXRkb3duYWxsCisKK2VjaG8gIkFsbCB2YWxpZGF0aW9u IHRlc3RzIHBhc3NlZCEiCitleGl0IDAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0tIAoy LjUxLjIKCg== --0000000000009bc5310642d6887c--