From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dy1-f178.google.com (mail-dy1-f178.google.com [74.125.82.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D4BA7472528 for ; Tue, 13 Oct 2026 04:24:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.178 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791865450; cv=none; b=fuNKk1JTjUwf3verzwJWqnqfD5EJlCXFHdaPiKgHTeGnmP8hrYui3oaz2uVEXXWi0fS3yn07RVFznGDrYAg0hBVyeh8S7Ulo/7rEyei3zhCQ/ipk7hayt0TZNhX7CwwBcARq6sWEurkrawvp0j1uyblDsLQ49mZPTPslBOAN6+I= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791865450; c=relaxed/simple; bh=L4PMXg9Ouss77vFWM6CmKitJRX3hdtLMjZh7TTN4LyA=; h=Message-ID:Date:Content-Type:MIME-Version:From:To:Subject: In-Reply-To:References; b=ZkhLiB/4qXWYzeVEz2XNmddFfEw2+0hS7ibJcZ9wfkuf19p4PjG5mdspIPe8Hs/8T245HhNdqbhiTIoK2PaIUedVjI8uu5Crc+Lr47zXsJKqBJGZThrKtuZogSXUSeFRPX8JvK9bXyzb2ZWdGt7pkzACsmY2R1dvYaOlVUk/Odk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=SWrTmAj0; arc=none smtp.client-ip=74.125.82.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="SWrTmAj0" Received: by mail-dy1-f178.google.com with SMTP id 5a478bee46e88-35aa0cf7c40so1828842eec.1 for ; Mon, 12 Oct 2026 21:24:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1791865447; x=1792470247; darn=vger.kernel.org; h=reply-to:references:in-reply-to:subject:to:from:mime-version :content-type:date:message-id:from:to:cc:subject:date:message-id :reply-to:content-type; bh=L4PMXg9Ouss77vFWM6CmKitJRX3hdtLMjZh7TTN4LyA=; b=SWrTmAj0Rwirvp7JRERdFdOTI3UOrnhbM/7k6NIvLAQdQFB5snS65NI/uXFHXejFx0 2jsGQHx1QDE1+WYkiSYlXrTX31GW7TXOcg/yWNI/PYQ7nNrs5EXQA9OiWfG54d3/C5Wf 1ZLFttxViPUzNRq60x/4EmXPHztChMPgKrscYXweqirc1JBAqsutslyKQ6Ej7Xd6HfwA 0rWS0/G9QbVmIuZ5zGgO3GUuzDFjNKudgPfiPnpesZD6+MdJKJ6X7vpH3m0Kc2YoiCWm /OCta2QoKBdzMWP45Evoy53VnK9c9PszXZk8wRoV+ADKkqQlU7SU5H6q8H7etsViuOI9 PKMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791865447; x=1792470247; h=reply-to:references:in-reply-to:subject:to:from:mime-version :content-type:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=L4PMXg9Ouss77vFWM6CmKitJRX3hdtLMjZh7TTN4LyA=; b=N6yKqQiQxV3nZt/bKTjL2JDJ95j2JoGgkjlx7b6IrF1KW1wvmfWxaWetAp4+m5Ul0w FezAhqgTwlHViW3IehvAIf+zv2mD4IJokRwEJOO4x9HhqkkCZQtcmc/K3HSrXuamciJj bvt4E8E2oA6T8fJ4EuEeMPSDDBh2x6I2PzvUxwq5QyfxaBw5SEvP2a6RybMz/V39g4dX l91bFOs3Yg6hDxlwJ5Y5rKVD6FGkq+7cQwp/vIwiLKZw6CVeXNi0DzLaucxLbT02TOF1 16xCcafvRbw6VWvN9O9Azdof6Ul3RvRoD8fv6cB8MbUJJ9ANIJnIqMhhnlh13p20PO8o vZug== X-Gm-Message-State: AFq9FYLtIsEDIfUrbcrBOicWNXfw8ANN+HX5M9ROcwMHT9p4Se/qMg9J XrFRdg8Pda7lkHhx2nl94bEKvHQ9Q07hODuHbM0Z60RlMpKqPR3Me0o+5IHY5Q== X-Gm-Gg: AYBFou359aEBM4VqKvhdztKBx2ctaOKlzAHJaO2y8CJwPgh6Uqs81/jgXPZpQ0qjuwE Bz8E3HA4hwt2aCx04a3dxpnD+Odh2gDD7nBN+A2WMRiEz6aaI8vFEvxMn049ygVLzLlL+9RID+h A7OPe/gosRkX2ND9DU5CEjBw9VkLz0sYa73w3ar6q6bvVQaVSL0RMuzk7GSDqM/APR8h1dd+txF j/h2GDWJ9vzKSTdZ6TJjHbBh7Q+Z+XdwRkyXWEUMAQjp+NP2iEBmPVjxg/qoiySFUT7miHZDo0I SrANRVN2Oycn9ol/I8quL2hzQydyHNoUp1jEp8hrO8puS5HGeyr7PjHqftDK5oaCUul0mOSBISV 5KX4xK2nMem6ZlT2MlQMhjrLeBDGbydptOjAdB0MotNgBsJXCdeVjPtb1P/jF7m1HVETX451NoC AThm50G3dcSoGqv7bA92vBln3LyIpiHC39kfq7GJP46xwuAK+R2HcTlM627vIcvSwhy1LkfntMR YM2peBK X-Received: by 2002:a05:7300:ce13:b0:35a:3045:3aff with SMTP id 5a478bee46e88-35a3054a74bmr7960141eec.29.1791865446411; Mon, 12 Oct 2026 21:24:06 -0700 (PDT) Received: from [172.17.0.2] ([172.182.245.131]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3537cacb61asm41249992eec.21.2026.10.12.21.24.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Oct 2026 21:24:05 -0700 (PDT) Message-ID: <6acdb265.6ad13f2a.1fc63f.4c03@mx.google.com> Date: Mon, 12 Oct 2026 21:24:05 -0700 (PDT) Content-Type: multipart/mixed; boundary="===============5885681724992569430==" Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: bluez.test.bot@gmail.com To: linux-bluetooth@vger.kernel.org, cochcoder@proton.me Subject: RE: [RFC] asha: Notify connection interval changes In-Reply-To: <20261013035559.527818-1-cochcoder@proton.me> References: <20261013035559.527818-1-cochcoder@proton.me> Reply-To: linux-bluetooth@vger.kernel.org --===============5885681724992569430== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhdXRvbWF0ZWQgZW1haWwgYW5kIHBsZWFzZSBkbyBub3QgcmVwbHkgdG8gdGhpcyBl bWFpbCEKCkRlYXIgc3VibWl0dGVyLAoKVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRj aGVzIHRvIHRoZSBsaW51eCBibHVldG9vdGggbWFpbGluZyBsaXN0LgpUaGlzIGlzIGEgQ0kgdGVz dCByZXN1bHRzIHdpdGggeW91ciBwYXRjaCBzZXJpZXM6ClBXIExpbms6aHR0cHM6Ly9wYXRjaHdv cmsua2VybmVsLm9yZy9zZXJpZXMvMTE4NDM2My8KCi0tLVRlc3QgcmVzdWx0LS0tCgpUZXN0IFN1 bW1hcnk6CkNoZWNrUGF0Y2ggICAgICAgICAgICAgICAgICAgIFBBU1MgICAgICAwLjc1IHNlY29u ZHMKR2l0TGludCAgICAgICAgICAgICAgICAgICAgICAgUEFTUyAgICAgIDAuMjIgc2Vjb25kcwpC dWlsZEVsbCAgICAgICAgICAgICAgICAgICAgICBQQVNTICAgICAgMTUuODEgc2Vjb25kcwpCbHVl ek1ha2UgICAgICAgICAgICAgICAgICAgICBGQUlMICAgICAgMTU2Ljc0IHNlY29uZHMKTWFrZUNo ZWNrICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAgIDEzMC4yNCBzZWNvbmRzCk1ha2VEaXN0 Y2hlY2sgICAgICAgICAgICAgICAgIFBBU1MgICAgICAxMTUuMTYgc2Vjb25kcwpDaGVja1ZhbGdy aW5kICAgICAgICAgICAgICAgICBGQUlMICAgICAgNDQuNDUgc2Vjb25kcwpDaGVja1NtYXRjaCAg ICAgICAgICAgICAgICAgICBGQUlMICAgICAgODguODcgc2Vjb25kcwpibHVlem1ha2VleHRlbGwg ICAgICAgICAgICAgICBGQUlMICAgICAgMjguNTMgc2Vjb25kcwpUZXN0RnVuY3Rpb25hbCAgICAg ICAgICAgICAgICBFUlJPUiAgICAgMTU4LjEzIHNlY29uZHMKSW5jcmVtZW50YWxCdWlsZCAgICAg ICAgICAgICAgRkFJTCAgICAgIDE2MC4zNyBzZWNvbmRzClNjYW5CdWlsZCAgICAgICAgICAgICAg ICAgICAgIEZBSUwgICAgICAxNDQuOTUgc2Vjb25kcwoKRGV0YWlscwojIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKVGVzdDogQmx1ZXpNYWtlIC0gRkFJTApEZXNjOiBCdWlsZCBCbHVlWgpP dXRwdXQ6Cgp0b29scy9tZ210LXRlc3Rlci5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp0b29s cy9tZ210LXRlc3Rlci5jOjEzODI4OjU6IG5vdGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGlt aXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlp bmcgd2l0aG91dAoxMzgyOCB8IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAg IHwgICAgIF5+fn4KdW5pdC90ZXN0LWFzaGEtY29ubi5jOjMzOjU6IGVycm9yOiBubyBwcmV2aW91 cyBkZWNsYXJhdGlvbiBmb3Ig4oCYX193cmFwX3NvY2tldOKAmSBbLVdlcnJvcj1taXNzaW5nLWRl Y2xhcmF0aW9uc10KICAgMzMgfCBpbnQgX193cmFwX3NvY2tldChpbnQgZG9tYWluLCBpbnQgdHlw ZSwgaW50IHByb3RvY29sKQogICAgICB8ICAgICBefn5+fn5+fn5+fn5+CnVuaXQvdGVzdC1hc2hh LWNvbm4uYzo0ODo1OiBlcnJvcjogbm8gcHJldmlvdXMgZGVjbGFyYXRpb24gZm9yIOKAmF9fd3Jh cF9iaW5k4oCZIFstV2Vycm9yPW1pc3NpbmctZGVjbGFyYXRpb25zXQogICA0OCB8IGludCBfX3dy YXBfYmluZChpbnQgZmQsIGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqYWRkciwgc29ja2xlbl90IGxl bmd0aCkKICAgICAgfCAgICAgXn5+fn5+fn5+fn4KdW5pdC90ZXN0LWFzaGEtY29ubi5jOjY3OjU6 IGVycm9yOiBubyBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3Ig4oCYX193cmFwX3NldHNvY2tvcHTi gJkgWy1XZXJyb3I9bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAgIDY3IHwgaW50IF9fd3JhcF9zZXRz b2Nrb3B0KGludCBmZCwgaW50IGxldmVsLCBpbnQgb3B0LCBjb25zdCB2b2lkICp2YWx1ZSwKICAg ICAgfCAgICAgXn5+fn5+fn5+fn5+fn5+fn4KdW5pdC90ZXN0LWFzaGEtY29ubi5jOjc2OjU6IGVy cm9yOiBubyBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3Ig4oCYX193cmFwX2dldHNvY2tvcHTigJkg Wy1XZXJyb3I9bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAgIDc2IHwgaW50IF9fd3JhcF9nZXRzb2Nr b3B0KGludCBmZCwgaW50IGxldmVsLCBpbnQgb3B0LCB2b2lkICp2YWx1ZSwKICAgICAgfCAgICAg Xn5+fn5+fn5+fn5+fn5+fn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJv cnMKbWFrZVsxXTogKioqIFtNYWtlZmlsZTo5ODEwOiB1bml0L3Rlc3RfYXNoYV9jb25uLXRlc3Qt YXNoYS1jb25uLm9dIEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQg am9icy4uLi4KdW5pdC90ZXN0LWF2ZHRwLmM6IEluIGZ1bmN0aW9uIOKAmG1haW7igJk6CnVuaXQv dGVzdC1hdmR0cC5jOjc2Njo1OiBub3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4 Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdp dGhvdXQKICA3NjYgfCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAg ICBefn5+CnVuaXQvdGVzdC1hdnJjcC5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp1bml0L3Rl c3QtYXZyY3AuYzoxMzgyOjU6IG5vdGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhj ZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0 aG91dAogMTM4MiB8IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwgICAg IF5+fn4KbWFrZTogKioqIFtNYWtlZmlsZTo0Mjg0OiBhbGxdIEVycm9yIDIKIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IE1ha2VDaGVjayAtIEZBSUwKRGVzYzogUnVuIEJsdWV6 IE1ha2UgQ2hlY2sKT3V0cHV0OgoKdW5pdC90ZXN0LWFzaGEtY29ubi5jOjMzOjU6IGVycm9yOiBu byBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3Ig4oCYX193cmFwX3NvY2tldOKAmSBbLVdlcnJvcj1t aXNzaW5nLWRlY2xhcmF0aW9uc10KICAgMzMgfCBpbnQgX193cmFwX3NvY2tldChpbnQgZG9tYWlu LCBpbnQgdHlwZSwgaW50IHByb3RvY29sKQogICAgICB8ICAgICBefn5+fn5+fn5+fn5+CnVuaXQv dGVzdC1hc2hhLWNvbm4uYzo0ODo1OiBlcnJvcjogbm8gcHJldmlvdXMgZGVjbGFyYXRpb24gZm9y IOKAmF9fd3JhcF9iaW5k4oCZIFstV2Vycm9yPW1pc3NpbmctZGVjbGFyYXRpb25zXQogICA0OCB8 IGludCBfX3dyYXBfYmluZChpbnQgZmQsIGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqYWRkciwgc29j a2xlbl90IGxlbmd0aCkKICAgICAgfCAgICAgXn5+fn5+fn5+fn4KdW5pdC90ZXN0LWFzaGEtY29u bi5jOjY3OjU6IGVycm9yOiBubyBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3Ig4oCYX193cmFwX3Nl dHNvY2tvcHTigJkgWy1XZXJyb3I9bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAgIDY3IHwgaW50IF9f d3JhcF9zZXRzb2Nrb3B0KGludCBmZCwgaW50IGxldmVsLCBpbnQgb3B0LCBjb25zdCB2b2lkICp2 YWx1ZSwKICAgICAgfCAgICAgXn5+fn5+fn5+fn5+fn5+fn4KdW5pdC90ZXN0LWFzaGEtY29ubi5j Ojc2OjU6IGVycm9yOiBubyBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3Ig4oCYX193cmFwX2dldHNv Y2tvcHTigJkgWy1XZXJyb3I9bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAgIDc2IHwgaW50IF9fd3Jh cF9nZXRzb2Nrb3B0KGludCBmZCwgaW50IGxldmVsLCBpbnQgb3B0LCB2b2lkICp2YWx1ZSwKICAg ICAgfCAgICAgXn5+fn5+fn5+fn5+fn5+fn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRl ZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtNYWtlZmlsZTo5ODEwOiB1bml0L3Rlc3RfYXNoYV9j b25uLXRlc3QtYXNoYS1jb25uLm9dIEVycm9yIDEKbWFrZTogKioqIFtNYWtlZmlsZToxMTA2NDog Y2hlY2tdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IENoZWNr VmFsZ3JpbmQgLSBGQUlMCkRlc2M6IFJ1biBCbHVleiBNYWtlIENoZWNrIHdpdGggVmFsZ3JpbmQK T3V0cHV0OgoKdW5pdC90ZXN0LWFzaGEtY29ubi5jOjMzOjU6IGVycm9yOiBubyBwcmV2aW91cyBk ZWNsYXJhdGlvbiBmb3Ig4oCYX193cmFwX3NvY2tldOKAmSBbLVdlcnJvcj1taXNzaW5nLWRlY2xh cmF0aW9uc10KICAgMzMgfCBpbnQgX193cmFwX3NvY2tldChpbnQgZG9tYWluLCBpbnQgdHlwZSwg aW50IHByb3RvY29sKQogICAgICB8ICAgICBefn5+fn5+fn5+fn5+CnVuaXQvdGVzdC1hc2hhLWNv bm4uYzo0ODo1OiBlcnJvcjogbm8gcHJldmlvdXMgZGVjbGFyYXRpb24gZm9yIOKAmF9fd3JhcF9i aW5k4oCZIFstV2Vycm9yPW1pc3NpbmctZGVjbGFyYXRpb25zXQogICA0OCB8IGludCBfX3dyYXBf YmluZChpbnQgZmQsIGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqYWRkciwgc29ja2xlbl90IGxlbmd0 aCkKICAgICAgfCAgICAgXn5+fn5+fn5+fn4KdW5pdC90ZXN0LWFzaGEtY29ubi5jOjY3OjU6IGVy cm9yOiBubyBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3Ig4oCYX193cmFwX3NldHNvY2tvcHTigJkg Wy1XZXJyb3I9bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAgIDY3IHwgaW50IF9fd3JhcF9zZXRzb2Nr b3B0KGludCBmZCwgaW50IGxldmVsLCBpbnQgb3B0LCBjb25zdCB2b2lkICp2YWx1ZSwKICAgICAg fCAgICAgXn5+fn5+fn5+fn5+fn5+fn4KdW5pdC90ZXN0LWFzaGEtY29ubi5jOjc2OjU6IGVycm9y OiBubyBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3Ig4oCYX193cmFwX2dldHNvY2tvcHTigJkgWy1X ZXJyb3I9bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAgIDc2IHwgaW50IF9fd3JhcF9nZXRzb2Nrb3B0 KGludCBmZCwgaW50IGxldmVsLCBpbnQgb3B0LCB2b2lkICp2YWx1ZSwKICAgICAgfCAgICAgXn5+ fn5+fn5+fn5+fn5+fn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMK bWFrZVsxXTogKioqIFtNYWtlZmlsZTo5ODEwOiB1bml0L3Rlc3RfYXNoYV9jb25uLXRlc3QtYXNo YS1jb25uLm9dIEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9i cy4uLi4KdG9vbHMvbWdtdC10ZXN0ZXIuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdG9vbHMv bWdtdC10ZXN0ZXIuYzoxMzgyODo1OiBub3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0 IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5n IHdpdGhvdXQKMTM4MjggfCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8 ICAgICBefn5+Cm1ha2U6ICoqKiBbTWFrZWZpbGU6MTEwNjQ6IGNoZWNrXSBFcnJvciAyCiMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBDaGVja1NtYXRjaCAtIEZBSUwKRGVzYzog UnVuIHNtYXRjaCB0b29sIHdpdGggc291cmNlCk91dHB1dDoKCnNyYy9zaGFyZWQvY3J5cHRvLmM6 MjcxOjIxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJl ZC9jcnlwdG8uYzoyNzI6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2Vk LgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjc2NDozMTogd2FybmluZzogVmFyaWFibGUgbGVu Z3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6ODQyOjMxOiB3YXJu aW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBl cnMuYzoxMzM1OjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3Jj L3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzY2OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGgg YXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9iYXAuYzozMTg6MjU6IHdhcm5pbmc6IGFycmF5IG9m IGZsZXhpYmxlIHN0cnVjdHVyZXMKc3JjL3NoYXJlZC9iYXAuYzogbm90ZTogaW4gaW5jbHVkZWQg ZmlsZToKLi9zcmMvc2hhcmVkL2FzY3MuaDo4ODoyNTogd2FybmluZzogYXJyYXkgb2YgZmxleGli bGUgc3RydWN0dXJlcwpzcmMvc2hhcmVkL3NoZWxsLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUg KHRocm91Z2ggL3Vzci9pbmNsdWRlL3g4Nl82NC1saW51eC1nbnUvL3N5cy9pb2N0bC5oLCAvdXNy L2luY2x1ZGUveDg2XzY0LWxpbnV4LWdudS8vc3lzL2Vwb2xsLmgsIHNyYy9zaGFyZWQvbWFpbmxv b3AuaCk6Ci91c3IvaW5jbHVkZS94ODZfNjQtbGludXgtZ251Ly9zeXMvdHR5ZGVmYXVsdHMuaDo1 NTo5OiB3YXJuaW5nOiBwcmVwcm9jZXNzb3IgdG9rZW4gQ1RSTCByZWRlZmluZWQKc3JjL3NoYXJl ZC9zaGVsbC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlICh0aHJvdWdoIC91c3IvaW5jbHVkZS9y ZWFkbGluZS9rZXltYXBzLmgsIC91c3IvaW5jbHVkZS9yZWFkbGluZS9yZWFkbGluZS5oKToKL3Vz ci9pbmNsdWRlL3JlYWRsaW5lL2NoYXJkZWZzLmg6NTE6OTogdGhpcyB3YXMgdGhlIG9yaWdpbmFs IGRlZmluaXRpb24Kc3JjL3NoYXJlZC9jcnlwdG8uYzoyNzE6MjE6IHdhcm5pbmc6IFZhcmlhYmxl IGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2NyeXB0by5jOjI3MjoyMzogd2Fybmlu ZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJz LmM6NzY0OjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3No YXJlZC9nYXR0LWhlbHBlcnMuYzo4NDI6MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJh eSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjEzMzU6MzE6IHdhcm5pbmc6IFZh cmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjEz NjY6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVk L2JhcC5jOjMxODoyNTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwpzcmMv c2hhcmVkL2JhcC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgouL3NyYy9zaGFyZWQvYXNjcy5o Ojg4OjI1OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCnNyYy9zaGFyZWQv c2hlbGwuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZSAodGhyb3VnaCAvdXNyL2luY2x1ZGUveDg2 XzY0LWxpbnV4LWdudS8vc3lzL2lvY3RsLmgsIC91c3IvaW5jbHVkZS94ODZfNjQtbGludXgtZ251 Ly9zeXMvZXBvbGwuaCwgc3JjL3NoYXJlZC9tYWlubG9vcC5oKToKL3Vzci9pbmNsdWRlL3g4Nl82 NC1saW51eC1nbnUvL3N5cy90dHlkZWZhdWx0cy5oOjU1Ojk6IHdhcm5pbmc6IHByZXByb2Nlc3Nv ciB0b2tlbiBDVFJMIHJlZGVmaW5lZApzcmMvc2hhcmVkL3NoZWxsLmM6IG5vdGU6IGluIGluY2x1 ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5lL2tleW1hcHMuaCwgL3Vzci9p bmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvY2hhcmRl ZnMuaDo1MTo5OiB0aGlzIHdhcyB0aGUgb3JpZ2luYWwgZGVmaW5pdGlvbgp0b29scy9tZXNoLWNm Z3Rlc3QuYzoxNDUzOjE3OiB3YXJuaW5nOiB1bmtub3duIGVzY2FwZSBzZXF1ZW5jZTogJ1wlJwp0 b29scy9zY28tdGVzdGVyLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Ci4vbGliL2JsdWV0b290 aC9ibHVldG9vdGguaDoyMzI6MTU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVy ZXMKLi9saWIvYmx1ZXRvb3RoL2JsdWV0b290aC5oOjIzNzozMTogd2FybmluZzogYXJyYXkgb2Yg ZmxleGlibGUgc3RydWN0dXJlcwp0b29scy9ibmVwdGVzdC5jOjYzNDozOTogd2FybmluZzogdW5r bm93biBlc2NhcGUgc2VxdWVuY2U6ICdcJScKdG9vbHMvc2VxMmJzZXEuYzo1NzoyNjogd2Fybmlu ZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmNsaWVudC9idHBjbGllbnQvZ2F0dC5j OiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgouL3NyYy9zaGFyZWQvYnRwLmg6MzM4OjQxOiB3YXJu aW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVzCi4vc3JjL3NoYXJlZC9idHAuaDozNDM6 NTU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKLi9zcmMvc2hhcmVkL2J0 cC5oOjM2Njo0Nzogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwouL3NyYy9z aGFyZWQvYnRwLmg6Mzk1OjQyOiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1cmVz CnNyYy9hZHZlcnRpc2luZy5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgouL3NyYy9zaGFyZWQv bWdtdC5oOjk1OjI1OiBlcnJvcjogcmVkZWZpbml0aW9uIG9mIHVuc2lnbmVkIGludCBlbnVtIG1n bXRfaW9fY2FwYWJpbGl0eQpzcmMvYWdlbnQuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKc3Jj L3NoYXJlZC9xdWV1ZS5oOjE5OjIwOiBlcnJvcjogcmVkZWZpbml0aW9uIG9mIHN0cnVjdCBxdWV1 ZV9lbnRyeQpzcmMvYWR2X21vbml0b3IuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9zcmMv c2hhcmVkL21nbXQuaDo5NToyNTogZXJyb3I6IHJlZGVmaW5pdGlvbiBvZiB1bnNpZ25lZCBpbnQg ZW51bSBtZ210X2lvX2NhcGFiaWxpdHkKdW5pdC9hdmN0cC5jOjUwNTozNDogd2FybmluZzogVmFy aWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnVuaXQvYXZjdHAuYzo1NTY6MzQ6IHdhcm5pbmc6 IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L3Rlc3QtYXZyY3AuYzozNzQ6MjY6 IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L3Rlc3QtYXZyY3Au YzozOTk6MjY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L3Rl c3QtYXZyY3AuYzo0MTU6MjQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2Vk Lgp1bml0L2F2cmNwLWxpYi5jOjEwODU6MzQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJh eSBpcyB1c2VkLgp1bml0L2F2cmNwLWxpYi5jOjE1ODM6MzQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxl bmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L2F2cmNwLWxpYi5jOjE2MTI6MzQ6IHdhcm5pbmc6IFZh cmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L2F2cmNwLWxpYi5jOjE2Mzg6MzQ6IHdh cm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L3Rlc3QtYXNoYS1jb25u LmM6MzM6NTogZXJyb3I6IG5vIHByZXZpb3VzIGRlY2xhcmF0aW9uIGZvciDigJhfX3dyYXBfc29j a2V04oCZIFstV2Vycm9yPW1pc3NpbmctZGVjbGFyYXRpb25zXQogICAzMyB8IGludCBfX3dyYXBf c29ja2V0KGludCBkb21haW4sIGludCB0eXBlLCBpbnQgcHJvdG9jb2wpCiAgICAgIHwgICAgIF5+ fn5+fn5+fn5+fn4KdW5pdC90ZXN0LWFzaGEtY29ubi5jOjQ4OjU6IGVycm9yOiBubyBwcmV2aW91 cyBkZWNsYXJhdGlvbiBmb3Ig4oCYX193cmFwX2JpbmTigJkgWy1XZXJyb3I9bWlzc2luZy1kZWNs YXJhdGlvbnNdCiAgIDQ4IHwgaW50IF9fd3JhcF9iaW5kKGludCBmZCwgY29uc3Qgc3RydWN0IHNv Y2thZGRyICphZGRyLCBzb2NrbGVuX3QgbGVuZ3RoKQogICAgICB8ICAgICBefn5+fn5+fn5+fgp1 bml0L3Rlc3QtYXNoYS1jb25uLmM6Njc6NTogZXJyb3I6IG5vIHByZXZpb3VzIGRlY2xhcmF0aW9u IGZvciDigJhfX3dyYXBfc2V0c29ja29wdOKAmSBbLVdlcnJvcj1taXNzaW5nLWRlY2xhcmF0aW9u c10KICAgNjcgfCBpbnQgX193cmFwX3NldHNvY2tvcHQoaW50IGZkLCBpbnQgbGV2ZWwsIGludCBv cHQsIGNvbnN0IHZvaWQgKnZhbHVlLAogICAgICB8ICAgICBefn5+fn5+fn5+fn5+fn5+fgp1bml0 L3Rlc3QtYXNoYS1jb25uLmM6NzY6NTogZXJyb3I6IG5vIHByZXZpb3VzIGRlY2xhcmF0aW9uIGZv ciDigJhfX3dyYXBfZ2V0c29ja29wdOKAmSBbLVdlcnJvcj1taXNzaW5nLWRlY2xhcmF0aW9uc10K ICAgNzYgfCBpbnQgX193cmFwX2dldHNvY2tvcHQoaW50IGZkLCBpbnQgbGV2ZWwsIGludCBvcHQs IHZvaWQgKnZhbHVlLAogICAgICB8ICAgICBefn5+fn5+fn5+fn5+fn5+fgpjYzE6IGFsbCB3YXJu aW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtlWzFdOiAqKiogW01ha2VmaWxlOjk4MTA6 IHVuaXQvdGVzdF9hc2hhX2Nvbm4tdGVzdC1hc2hhLWNvbm4ub10gRXJyb3IgMQptYWtlWzFdOiAq KiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtlOiAqKiogW01ha2VmaWxlOjQy ODQ6IGFsbF0gRXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogYmx1 ZXptYWtlZXh0ZWxsIC0gRkFJTApEZXNjOiBCdWlsZCBCbHVleiB3aXRoIEV4dGVybmFsIEVMTApP dXRwdXQ6Cgp1bml0L3Rlc3QtYXNoYS1jb25uLmM6MzM6NTogZXJyb3I6IG5vIHByZXZpb3VzIGRl Y2xhcmF0aW9uIGZvciDigJhfX3dyYXBfc29ja2V04oCZIFstV2Vycm9yPW1pc3NpbmctZGVjbGFy YXRpb25zXQogICAzMyB8IGludCBfX3dyYXBfc29ja2V0KGludCBkb21haW4sIGludCB0eXBlLCBp bnQgcHJvdG9jb2wpCiAgICAgIHwgICAgIF5+fn5+fn5+fn5+fn4KdW5pdC90ZXN0LWFzaGEtY29u bi5jOjQ4OjU6IGVycm9yOiBubyBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3Ig4oCYX193cmFwX2Jp bmTigJkgWy1XZXJyb3I9bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAgIDQ4IHwgaW50IF9fd3JhcF9i aW5kKGludCBmZCwgY29uc3Qgc3RydWN0IHNvY2thZGRyICphZGRyLCBzb2NrbGVuX3QgbGVuZ3Ro KQogICAgICB8ICAgICBefn5+fn5+fn5+fgp1bml0L3Rlc3QtYXNoYS1jb25uLmM6Njc6NTogZXJy b3I6IG5vIHByZXZpb3VzIGRlY2xhcmF0aW9uIGZvciDigJhfX3dyYXBfc2V0c29ja29wdOKAmSBb LVdlcnJvcj1taXNzaW5nLWRlY2xhcmF0aW9uc10KICAgNjcgfCBpbnQgX193cmFwX3NldHNvY2tv cHQoaW50IGZkLCBpbnQgbGV2ZWwsIGludCBvcHQsIGNvbnN0IHZvaWQgKnZhbHVlLAogICAgICB8 ICAgICBefn5+fn5+fn5+fn5+fn5+fgp1bml0L3Rlc3QtYXNoYS1jb25uLmM6NzY6NTogZXJyb3I6 IG5vIHByZXZpb3VzIGRlY2xhcmF0aW9uIGZvciDigJhfX3dyYXBfZ2V0c29ja29wdOKAmSBbLVdl cnJvcj1taXNzaW5nLWRlY2xhcmF0aW9uc10KICAgNzYgfCBpbnQgX193cmFwX2dldHNvY2tvcHQo aW50IGZkLCBpbnQgbGV2ZWwsIGludCBvcHQsIHZvaWQgKnZhbHVlLAogICAgICB8ICAgICBefn5+ fn5+fn5+fn5+fn5+fgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwpt YWtlWzFdOiAqKiogW01ha2VmaWxlOjk4MTA6IHVuaXQvdGVzdF9hc2hhX2Nvbm4tdGVzdC1hc2hh LWNvbm4ub10gRXJyb3IgMQptYWtlWzFdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2Jz Li4uLgptYWtlOiAqKiogW01ha2VmaWxlOjQyODQ6IGFsbF0gRXJyb3IgMgojIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogVGVzdEZ1bmN0aW9uYWwgLSBFUlJPUgpEZXNjOiBSdW4g dGVzdC1mdW5jdGlvbmFsCk91dHB1dDoKRmFpbGVkIHRvIGJ1aWxkIEJsdWVaOgpGYWlsZWQgdG8g YnVpbGQgQmx1ZVoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IEluY3JlbWVu dGFsQnVpbGQgLSBGQUlMCkRlc2M6IEluY3JlbWVudGFsIGJ1aWxkIHdpdGggdGhlIHBhdGNoZXMg aW4gdGhlIHNlcmllcwpPdXRwdXQ6Cgp0b29scy9tZ210LXRlc3Rlci5jOiBJbiBmdW5jdGlvbiDi gJhtYWlu4oCZOgp0b29scy9tZ210LXRlc3Rlci5jOjEzODI4OjU6IG5vdGU6IHZhcmlhYmxlIHRy YWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25t ZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAoxMzgyOCB8IGludCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4KdW5pdC90ZXN0LWFzaGEtY29ubi5jOjMzOjU6IGVy cm9yOiBubyBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3Ig4oCYX193cmFwX3NvY2tldOKAmSBbLVdl cnJvcj1taXNzaW5nLWRlY2xhcmF0aW9uc10KICAgMzMgfCBpbnQgX193cmFwX3NvY2tldChpbnQg ZG9tYWluLCBpbnQgdHlwZSwgaW50IHByb3RvY29sKQogICAgICB8ICAgICBefn5+fn5+fn5+fn5+ CnVuaXQvdGVzdC1hc2hhLWNvbm4uYzo0ODo1OiBlcnJvcjogbm8gcHJldmlvdXMgZGVjbGFyYXRp b24gZm9yIOKAmF9fd3JhcF9iaW5k4oCZIFstV2Vycm9yPW1pc3NpbmctZGVjbGFyYXRpb25zXQog ICA0OCB8IGludCBfX3dyYXBfYmluZChpbnQgZmQsIGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqYWRk ciwgc29ja2xlbl90IGxlbmd0aCkKICAgICAgfCAgICAgXn5+fn5+fn5+fn4KdW5pdC90ZXN0LWFz aGEtY29ubi5jOjY3OjU6IGVycm9yOiBubyBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3Ig4oCYX193 cmFwX3NldHNvY2tvcHTigJkgWy1XZXJyb3I9bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAgIDY3IHwg aW50IF9fd3JhcF9zZXRzb2Nrb3B0KGludCBmZCwgaW50IGxldmVsLCBpbnQgb3B0LCBjb25zdCB2 b2lkICp2YWx1ZSwKICAgICAgfCAgICAgXn5+fn5+fn5+fn5+fn5+fn4KdW5pdC90ZXN0LWFzaGEt Y29ubi5jOjc2OjU6IGVycm9yOiBubyBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3Ig4oCYX193cmFw X2dldHNvY2tvcHTigJkgWy1XZXJyb3I9bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAgIDc2IHwgaW50 IF9fd3JhcF9nZXRzb2Nrb3B0KGludCBmZCwgaW50IGxldmVsLCBpbnQgb3B0LCB2b2lkICp2YWx1 ZSwKICAgICAgfCAgICAgXn5+fn5+fn5+fn5+fn5+fn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcg dHJlYXRlZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtNYWtlZmlsZTo5ODEwOiB1bml0L3Rlc3Rf YXNoYV9jb25uLXRlc3QtYXNoYS1jb25uLm9dIEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcg Zm9yIHVuZmluaXNoZWQgam9icy4uLi4KdW5pdC90ZXN0LWF2ZHRwLmM6IEluIGZ1bmN0aW9uIOKA mG1haW7igJk6CnVuaXQvdGVzdC1hdmR0cC5jOjc2Njo1OiBub3RlOiB2YXJpYWJsZSB0cmFja2lu ZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmctYXNzaWdubWVudHPi gJksIHJldHJ5aW5nIHdpdGhvdXQKICA3NjYgfCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQogICAgICB8ICAgICBefn5+CnVuaXQvdGVzdC1hdnJjcC5jOiBJbiBmdW5jdGlvbiDigJht YWlu4oCZOgp1bml0L3Rlc3QtYXZyY3AuYzoxMzgyOjU6IG5vdGU6IHZhcmlhYmxlIHRyYWNraW5n IHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25tZW50c+KA mSwgcmV0cnlpbmcgd2l0aG91dAogMTM4MiB8IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2 W10pCiAgICAgIHwgICAgIF5+fn4KbWFrZTogKioqIFtNYWtlZmlsZTo0Mjg0OiBhbGxdIEVycm9y IDIKW1JGQ10gYXNoYTogTm90aWZ5IGNvbm5lY3Rpb24gaW50ZXJ2YWwgY2hhbmdlcwoKdG9vbHMv bWdtdC10ZXN0ZXIuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdG9vbHMvbWdtdC10ZXN0ZXIu YzoxMzgyODo1OiBub3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdp dGgg4oCYLWZ2YXItdHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKMTM4 MjggfCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+CnVu aXQvdGVzdC1hc2hhLWNvbm4uYzozMzo1OiBlcnJvcjogbm8gcHJldmlvdXMgZGVjbGFyYXRpb24g Zm9yIOKAmF9fd3JhcF9zb2NrZXTigJkgWy1XZXJyb3I9bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAg IDMzIHwgaW50IF9fd3JhcF9zb2NrZXQoaW50IGRvbWFpbiwgaW50IHR5cGUsIGludCBwcm90b2Nv bCkKICAgICAgfCAgICAgXn5+fn5+fn5+fn5+fgp1bml0L3Rlc3QtYXNoYS1jb25uLmM6NDg6NTog ZXJyb3I6IG5vIHByZXZpb3VzIGRlY2xhcmF0aW9uIGZvciDigJhfX3dyYXBfYmluZOKAmSBbLVdl cnJvcj1taXNzaW5nLWRlY2xhcmF0aW9uc10KICAgNDggfCBpbnQgX193cmFwX2JpbmQoaW50IGZk LCBjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIsIHNvY2tsZW5fdCBsZW5ndGgpCiAgICAgIHwg ICAgIF5+fn5+fn5+fn5+CnVuaXQvdGVzdC1hc2hhLWNvbm4uYzo2Nzo1OiBlcnJvcjogbm8gcHJl dmlvdXMgZGVjbGFyYXRpb24gZm9yIOKAmF9fd3JhcF9zZXRzb2Nrb3B04oCZIFstV2Vycm9yPW1p c3NpbmctZGVjbGFyYXRpb25zXQogICA2NyB8IGludCBfX3dyYXBfc2V0c29ja29wdChpbnQgZmQs IGludCBsZXZlbCwgaW50IG9wdCwgY29uc3Qgdm9pZCAqdmFsdWUsCiAgICAgIHwgICAgIF5+fn5+ fn5+fn5+fn5+fn5+CnVuaXQvdGVzdC1hc2hhLWNvbm4uYzo3Njo1OiBlcnJvcjogbm8gcHJldmlv dXMgZGVjbGFyYXRpb24gZm9yIOKAmF9fd3JhcF9nZXRzb2Nrb3B04oCZIFstV2Vycm9yPW1pc3Np bmctZGVjbGFyYXRpb25zXQogICA3NiB8IGludCBfX3dyYXBfZ2V0c29ja29wdChpbnQgZmQsIGlu dCBsZXZlbCwgaW50IG9wdCwgdm9pZCAqdmFsdWUsCiAgICAgIHwgICAgIF5+fn5+fn5+fn5+fn5+ fn5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2VbMV06ICoq KiBbTWFrZWZpbGU6OTgxMDogdW5pdC90ZXN0X2FzaGFfY29ubi10ZXN0LWFzaGEtY29ubi5vXSBF cnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCnVuaXQv dGVzdC1hdmR0cC5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp1bml0L3Rlc3QtYXZkdHAuYzo3 NjY6NTogbm90ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKA mC1mdmFyLXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CiAgNzY2IHwg aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgp1bml0L3Rl c3QtYXZyY3AuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdW5pdC90ZXN0LWF2cmNwLmM6MTM4 Mjo1OiBub3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCY LWZ2YXItdHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKIDEzODIgfCBp bnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+Cm1ha2U6ICoq KiBbTWFrZWZpbGU6NDI4NDogYWxsXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwpUZXN0OiBTY2FuQnVpbGQgLSBGQUlMCkRlc2M6IFJ1biBTY2FuIEJ1aWxkCk91dHB1dDoK CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzo0NTg6MjE6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkg YWZ0ZXIgaXQgaXMgZnJlZWQgW3VuaXguTWFsbG9jXQogIDQ1OCB8ICAgICAgICAgZ2F0dF9kYl91 bnJlZ2lzdGVyKG9wLT5jbGllbnQtPmRiLCBvcC0+ZGJfaWQpOwogICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjcwMzoy OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10K ICA3MDMgfCAgICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgZmFsc2UsIGF0dF9lY29k ZSk7CiAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMTA5OjI6IHdhcm5pbmc6IFVzZSBvZiBt ZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQgW3VuaXguTWFsbG9jXQogMTEwOSB8ICAgICAgICAgZGlz Y292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICB8ICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFy ZWQvZ2F0dC1jbGllbnQuYzoxMzAzOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQgW3VuaXguTWFsbG9jXQogMTMwMyB8ICAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBs ZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQu YzoxMzY4OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQgW3VuaXgu TWFsbG9jXQogMTM2OCB8ICAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNz LCBhdHRfZWNvZGUpOwogICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNjQzOjY6IHdhcm5p bmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQgW3VuaXguTWFsbG9jXQogMTY0MyB8 ICAgICAgICAgaWYgKHJlYWRfZGJfaGFzaChvcCkpIHsKICAgICAgfCAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNjQ4OjI6IHdhcm5pbmc6IFVz ZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQgW3VuaXguTWFsbG9jXQogMTY0OCB8ICAgICAg ICAgZGlzY292ZXJfYWxsKG9wKTsKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3Jj L3NoYXJlZC9nYXR0LWNsaWVudC5jOjE3MDM6NTY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0 ZXIgaXQgaXMgZnJlZWQgW3VuaXguTWFsbG9jXQogMTcwMyB8ICAgICAgICAgbm90aWZ5X2RhdGEt PmNocmMtPmNjY193cml0ZV9pZCA9IG5vdGlmeV9kYXRhLT5hdHRfaWQgPSBhdHRfaWQ7CiAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+ fn5+fn5+fiBeCnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMTcwOjY6IHdhcm5pbmc6IFVzZSBv ZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQgW3VuaXguTWFsbG9jXQogMjE3MCB8ICAgICAgICAg aWYgKHJlYWRfZGJfaGFzaChvcCkpIHsKICAgICAgfCAgICAgICAgICAgICBefn5+fn5+fn5+fn5+ fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMTc4Ojg6IHdhcm5pbmc6IFVzZSBvZiBtZW1v cnkgYWZ0ZXIgaXQgaXMgZnJlZWQgW3VuaXguTWFsbG9jXQogMjE3OCB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzY292ZXJ5X29wX3Jl ZihvcCksCiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50 LmM6MzM2NDoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4 Lk1hbGxvY10KIDMzNjQgfCAgICAgICAgIGNvbXBsZXRlX3dyaXRlX2xvbmdfb3AocmVxLCBzdWNj ZXNzLCAwLCBmYWxzZSk7CiAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzozMzg2OjI6IHdh cm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQgW3VuaXguTWFsbG9jXQogMzM4 NiB8ICAgICAgICAgcmVxdWVzdF91bnJlZihyZXEpOwogICAgICB8ICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+CjEyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9yYXAuYzozOTM2OjMw OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyB1bmluaXRpYWxpemVkIFtjb3JlLnVuaW5pdGlh bGl6ZWQuQXNzaWduXQogMzkzNiB8ICAgICAgICAgICAgICAgICAgICAgICAgIG91dC0+dG9uZV9w Y3Rba10uaV9zYW1wbGUgPSB0b25lX3BjdF9pW2tdOwogICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fn5+CnNyYy9zaGFy ZWQvcmFwLmM6NDk4MToxMzogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVl ZCBbdW5peC5NYWxsb2NdCiA0OTgxIHwgICAgICAgICBhdHRhY2hlZCA9IHF1ZXVlX2ZpbmQoc2Vz c2lvbnMsIE5VTEwsIHJhcCk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvYmFw LmM6MTU0Mzo4OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4 Lk1hbGxvY10KIDE1NDMgfCAgICAgICAgIGJhcCA9IGJ0X2JhcF9yZWZfc2FmZShiYXApOwogICAg ICB8ICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9iYXAuYzoy MzU5OjIwOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1h bGxvY10KIDIzNTkgfCAgICAgICAgIHJldHVybiBxdWV1ZV9maW5kKHN0cmVhbS0+YmFwLT5zdHJl YW1zLCBOVUxMLCBzdHJlYW0pOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvZ2F0dC1j bGllbnQuYzo0NTg6MjE6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQg W3VuaXguTWFsbG9jXQogIDQ1OCB8ICAgICAgICAgZ2F0dF9kYl91bnJlZ2lzdGVyKG9wLT5jbGll bnQtPmRiLCBvcC0+ZGJfaWQpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjcwMzoyOiB3YXJuaW5nOiBVc2Ugb2Yg bWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10KICA3MDMgfCAgICAgICAgIGRp c2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgZmFsc2UsIGF0dF9lY29kZSk7CiAgICAgIHwgICAgICAg ICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQv Z2F0dC1jbGllbnQuYzoxMTA5OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMg ZnJlZWQgW3VuaXguTWFsbG9jXQogMTEwOSB8ICAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRl KG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzox MzAzOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQgW3VuaXguTWFs bG9jXQogMTMwMyB8ICAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBh dHRfZWNvZGUpOwogICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMzY4OjI6IHdhcm5pbmc6 IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQgW3VuaXguTWFsbG9jXQogMTM2OCB8ICAg ICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAg ICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNjQzOjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkg YWZ0ZXIgaXQgaXMgZnJlZWQgW3VuaXguTWFsbG9jXQogMTY0MyB8ICAgICAgICAgaWYgKHJlYWRf ZGJfaGFzaChvcCkpIHsKICAgICAgfCAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9z aGFyZWQvZ2F0dC1jbGllbnQuYzoxNjQ4OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIg aXQgaXMgZnJlZWQgW3VuaXguTWFsbG9jXQogMTY0OCB8ICAgICAgICAgZGlzY292ZXJfYWxsKG9w KTsKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVu dC5jOjE3MDM6NTY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQgW3Vu aXguTWFsbG9jXQogMTcwMyB8ICAgICAgICAgbm90aWZ5X2RhdGEtPmNocmMtPmNjY193cml0ZV9p ZCA9IG5vdGlmeV9kYXRhLT5hdHRfaWQgPSBhdHRfaWQ7CiAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fiBeCnNyYy9zaGFy ZWQvZ2F0dC1jbGllbnQuYzoyMTcwOjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQgW3VuaXguTWFsbG9jXQogMjE3MCB8ICAgICAgICAgaWYgKHJlYWRfZGJfaGFzaChv cCkpIHsKICAgICAgfCAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0 dC1jbGllbnQuYzoyMTc4Ojg6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJl ZWQgW3VuaXguTWFsbG9jXQogMjE3OCB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGlzY292ZXJ5X29wX3JlZihvcCksCiAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzM2NDoyOiB3YXJuaW5n OiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10KIDMzNjQgfCAg ICAgICAgIGNvbXBsZXRlX3dyaXRlX2xvbmdfb3AocmVxLCBzdWNjZXNzLCAwLCBmYWxzZSk7CiAg ICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzozMzg2OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1v cnkgYWZ0ZXIgaXQgaXMgZnJlZWQgW3VuaXguTWFsbG9jXQogMzM4NiB8ICAgICAgICAgcmVxdWVz dF91bnJlZihyZXEpOwogICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CjEyIHdhcm5p bmdzIGdlbmVyYXRlZC4KdG9vbHMvaGNpYXR0YWNoLmM6ODE3Ojc6IHdhcm5pbmc6IEFsdGhvdWdo IHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNz aW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICduJyBbZGVhZGNvZGUu RGVhZFN0b3Jlc10KICA4MTcgfCAgICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2ZW50KGZkLCBy ZXNwLCAxMCkpIDwgMCkgewogICAgICB8ICAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo4NjU6Nzogd2FybmluZzogQWx0aG91Z2gg dGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Np b24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nIFtkZWFkY29kZS5E ZWFkU3RvcmVzXQogIDg2NSB8ICAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJl c3AsIDQpKSA8IDApIHsKICAgICAgfCAgICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo4ODc6ODogd2FybmluZzogQWx0aG91Z2ggdGhl IHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24s IHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nIFtkZWFkY29kZS5EZWFk U3RvcmVzXQogIDg4NyB8ICAgICAgICAgICAgICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChm ZCwgcmVzcCwgMTApKSA8IDApIHsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBeICAgfn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo5MDk6Nzogd2Fybmlu ZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9z aW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24n IFtkZWFkY29kZS5EZWFkU3RvcmVzXQogIDkwOSB8ICAgICAgICAgaWYgKChuID0gcmVhZF9oY2lf ZXZlbnQoZmQsIHJlc3AsIDQpKSA8IDApIHsKICAgICAgfCAgICAgICAgICAgICAgXiAgIH5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo5MzA6Nzogd2FybmluZzog QWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5n IGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nIFtk ZWFkY29kZS5EZWFkU3RvcmVzXQogIDkzMCB8ICAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZl bnQoZmQsIHJlc3AsIDQpKSA8IDApIHsKICAgICAgfCAgICAgICAgICAgICAgXiAgIH5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo5NzQ6Nzogd2FybmluZzogQWx0 aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4 cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nIFtkZWFk Y29kZS5EZWFkU3RvcmVzXQogIDk3NCB8ICAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQo ZmQsIHJlc3AsIDYpKSA8IDApIHsKICAgICAgfCAgICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgo2IHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvaGNpYXR0YWNoX2F0 aDNrLmM6NTMwOjk6IHdhcm5pbmc6IEZpbGUgcG9zaXRpb24gb2YgdGhlIHN0cmVhbSBtaWdodCBi ZSAnaW5kZXRlcm1pbmF0ZScgYWZ0ZXIgYSBmYWlsZWQgb3BlcmF0aW9uLiBDYW4gY2F1c2UgdW5k ZWZpbmVkIGJlaGF2aW9yIFt1bml4LlN0cmVhbV0KICA1MzAgfCAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoIWZnZXRzKGJ5dGUsIDMsIHN0cmVhbSkpCiAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWF0dGFjaF9hdGgz ay5jOjUzMDo5OiB3YXJuaW5nOiBSZWFkIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIHN0cmVhbSBpcyBp biBFT0Ygc3RhdGUuIEZ1bmN0aW9uIGhhcyBubyBlZmZlY3QgW3VuaXguU3RyZWFtXQogIDUzMCB8 ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmdldHMoYnl0ZSwgMywgc3RyZWFtKSkKICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K MiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvcmFwLmM6MzkzNjozMDogd2FybmluZzog QXNzaWduZWQgdmFsdWUgaXMgdW5pbml0aWFsaXplZCBbY29yZS51bmluaXRpYWxpemVkLkFzc2ln bl0KIDM5MzYgfCAgICAgICAgICAgICAgICAgICAgICAgICBvdXQtPnRvbmVfcGN0W2tdLmlfc2Ft cGxlID0gdG9uZV9wY3RfaVtrXTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL3JhcC5jOjQ5 ODE6MTM6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQgW3VuaXguTWFs bG9jXQogNDk4MSB8ICAgICAgICAgYXR0YWNoZWQgPSBxdWV1ZV9maW5kKHNlc3Npb25zLCBOVUxM LCByYXApOwogICAgICB8ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2hhcmVkL2JhcC5jOjE1NDM6ODog d2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZCBbdW5peC5NYWxsb2NdCiAx NTQzIHwgICAgICAgICBiYXAgPSBidF9iYXBfcmVmX3NhZmUoYmFwKTsKICAgICAgfCAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvYmFwLmM6MjM1OToyMDogd2Fy bmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZCBbdW5peC5NYWxsb2NdCiAyMzU5 IHwgICAgICAgICByZXR1cm4gcXVldWVfZmluZChzdHJlYW0tPmJhcC0+c3RyZWFtcywgTlVMTCwg c3RyZWFtKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvb3VpLmM6NTA6Mjogd2FybmluZzogVmFs dWUgc3RvcmVkIHRvICdod2RiJyBpcyBuZXZlciByZWFkIFtkZWFkY29kZS5EZWFkU3RvcmVzXQog ICA1MCB8ICAgICAgICAgaHdkYiA9IHVkZXZfaHdkYl91bnJlZihod2RiKTsKICAgICAgfCAgICAg ICAgIF4gICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL291aS5jOjUzOjI6IHdhcm5pbmc6 IFZhbHVlIHN0b3JlZCB0byAndWRldicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jl c10KICAgNTMgfCAgICAgICAgIHVkZXYgPSB1ZGV2X3VucmVmKHVkZXYpOwogICAgICB8ICAgICAg ICAgXiAgICAgIH5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL3Jm Y29tbS5jOjIzNDozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2knIGlzIG5ldmVyIHJlYWQg W2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgMjM0IHwgICAgICAgICAgICAgICAgIGkgPSBleGVjdnAo Y21kYXJndlswXSwgY21kYXJndik7CiAgICAgIHwgICAgICAgICAgICAgICAgIF4gICB+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvcmZjb21tLmM6MjM0Ojc6IHdhcm5pbmc6IE51bGwg cG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnIFtjb3Jl Lk5vbk51bGxQYXJhbUNoZWNrZXJdCiAgMjM0IHwgICAgICAgICAgICAgICAgIGkgPSBleGVjdnAo Y21kYXJndlswXSwgY21kYXJndik7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvcmZjb21tLmM6MzU0Ojg6IHdhcm5pbmc6IEFsdGhv dWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhw cmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnZmQnIFtkZWFk Y29kZS5EZWFkU3RvcmVzXQogIDM1NCB8ICAgICAgICAgICAgICAgICBpZiAoKGZkID0gb3Blbihk ZXZuYW1lLCBPX1JET05MWSB8IE9fTk9DVFRZKSkgPCAwKSB7CiAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgXiAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3Jm Y29tbS5jOjQ3Mzo2OiB3YXJuaW5nOiBUaGUgMXN0IGFyZ3VtZW50IHRvICdnZXRzb2NrbmFtZScg aXMgLTEgYnV0IHNob3VsZCBiZSA+PSAwIFt1bml4LlN0ZENMaWJyYXJ5RnVuY3Rpb25zXQogIDQ3 MyB8ICAgICAgICAgaWYgKGdldHNvY2tuYW1lKG5zaywgKHN0cnVjdCBzb2NrYWRkciAqKSZsYWRk ciwgJmFsZW4pIDwgMCkgewogICAgICB8ICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3JmY29tbS5jOjQ5NzoxNDogd2Fy bmluZzogQXNzaWduZWQgdmFsdWUgaXMgdW5pbml0aWFsaXplZCBbY29yZS51bmluaXRpYWxpemVk LkFzc2lnbl0KICA0OTcgfCAgICAgICAgIHJlcS5jaGFubmVsID0gcmFkZHIucmNfY2hhbm5lbDsK ICAgICAgfCAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn5+fn5+fgp0b29scy9yZmNv bW0uYzo1MTU6ODogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnZmQnIGlz IHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0 dWFsbHkgcmVhZCBmcm9tICdmZCcgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgNTE1IHwgICAgICAg ICAgICAgICAgIGlmICgoZmQgPSBvcGVuKGRldm5hbWUsIE9fUkRPTkxZIHwgT19OT0NUVFkpKSA8 IDApIHsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBeICAgIH5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KNiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2NpcHRvb2wuYzoz NTE6Nzogd2FybmluZzogNXRoIGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFs aXplZCB2YWx1ZSBbY29yZS5DYWxsQW5kTWVzc2FnZV0KICAzNTEgfCAgICAgICAgIHNrID0gZG9f Y29ubmVjdChjdGwsIGRldl9pZCwgJnNyYywgJmRzdCwgcHNtLCAoMSA8PCBDTVRQX0xPT1BCQUNL KSk7CiAgICAgIHwgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRvb2xz L3NkcHRvb2wuYzo5NDE6MjY6IHdhcm5pbmc6IFJlc3VsdCBvZiAnbWFsbG9jJyBpcyBjb252ZXJ0 ZWQgdG8gYSBwb2ludGVyIG9mIHR5cGUgJ3VpbnQzMl90Jywgd2hpY2ggaXMgaW5jb21wYXRpYmxl IHdpdGggc2l6ZW9mIG9wZXJhbmQgdHlwZSAnaW50JyBbdW5peC5NYWxsb2NTaXplb2ZdCiAgOTQx IHwgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKnZhbHVlX2ludCA9IG1hbGxvYyhz aXplb2YoaW50KSk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fiAg ICAgICAgICAgIF5+fn5+fiB+fn5+fn5+fn5+fgp0b29scy9zZHB0b29sLmM6OTgwOjQ6IHdhcm5p bmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUg W2NvcmUuQ2FsbEFuZE1lc3NhZ2VdCiAgOTgwIHwgICAgICAgICAgICAgICAgICAgICAgICAgZnJl ZShhbGxvY0FycmF5W2ldKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+CnRvb2xzL3NkcHRvb2wuYzozNzc3OjI6IHdhcm5pbmc6IFBvdGVudGlhbCBs ZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdzaS5uYW1lJyBbdW5peC5NYWxsb2NdCiAzNzc3 IHwgICAgICAgICByZXR1cm4gYWRkX3NlcnZpY2UoMCwgJnNpKTsKICAgICAgfCAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3NkcHRvb2wuYzo0MTEyOjQ6IHdhcm5pbmc6 IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdjb250ZXh0LnN2YycgW3Vu aXguTWFsbG9jXQogNDExMiB8ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn4KNCB3YXJuaW5ncyBnZW5lcmF0 ZWQuCnNyYy9zZHAteG1sLmM6MTI5OjEwOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyB1bmlu aXRpYWxpemVkIFtjb3JlLnVuaW5pdGlhbGl6ZWQuQXNzaWduXQogIDEyOSB8ICAgICAgICAgICAg ICAgICBidWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg IF4gfn5+fn5+fn5+fn4Kc3JjL3NkcC14bWwuYzozMDk6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZh bHVlIGlzIHVuaW5pdGlhbGl6ZWQgW2NvcmUudW5pbml0aWFsaXplZC5Bc3NpZ25dCiAgMzA5IHwg ICAgICAgICAgICAgICAgICAgICAgICAgYnVmWzFdID0gZGF0YVtpICsgMV07CiAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4Kc3JjL3NkcC14bWwuYzoz NDc6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIHVuaW5pdGlhbGl6ZWQgW2NvcmUudW5p bml0aWFsaXplZC5Bc3NpZ25dCiAgMzQ3IHwgICAgICAgICAgICAgICAgICAgICAgICAgYnVmWzFd ID0gZGF0YVtpICsgMV07CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4g fn5+fn5+fn5+fn4KMyB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL3JmY29tbS10ZXN0ZXIuYzo0 MTA6Njogd2FybmluZzogVGhlIDFzdCBhcmd1bWVudCB0byAnYmluZCcgaXMgLTEgYnV0IHNob3Vs ZCBiZSA+PSAwIFt1bml4LlN0ZENMaWJyYXJ5RnVuY3Rpb25zXQogIDQxMCB8ICAgICAgICAgaWYg KGJpbmQoc2ssIChzdHJ1Y3Qgc29ja2FkZHIgKikgJmFkZHIsIHNpemVvZihhZGRyKSkgPCAwKSB7 CiAgICAgIHwgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgp0b29scy9yZmNvbW0tdGVzdGVyLmM6NDI4Ojg6IHdhcm5pbmc6IFRoZSAx c3QgYXJndW1lbnQgdG8gJ2Nvbm5lY3QnIGlzIC0xIGJ1dCBzaG91bGQgYmUgPj0gMCBbdW5peC5T dGRDTGlicmFyeUZ1bmN0aW9uc10KICA0MjggfCAgICAgICAgIGVyciA9IGNvbm5lY3Qoc2ssIChz dHJ1Y3Qgc29ja2FkZHIgKikgJmFkZHIsIHNpemVvZihhZGRyKSk7CiAgICAgIHwgICAgICAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9hdnRlc3QuYzoyNDM6NTogd2FybmluZzogVmFs dWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAg MjQzIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVm LCAzKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+ fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjI1Mzo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQg dG8gJ2xlbicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICAyNTMgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDQpOwogICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+ fn4KdG9vbHMvYXZ0ZXN0LmM6MjYyOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBp cyBuZXZlciByZWFkIFtkZWFkY29kZS5EZWFkU3RvcmVzXQogIDI2MiB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9h dnRlc3QuYzoyNzY6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJl YWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgMjc2IHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLAogICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn4KICAyNzcgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzICsgc2l6ZW9mKG1lZGlhX3RyYW5zcG9y dCkpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MjgzOjU6IHdh cm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkIFtkZWFkY29kZS5EZWFk U3RvcmVzXQogIDI4MyB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3Jp dGUoc2ssIGJ1ZiwKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAg IH5+fn5+fn5+fn5+fn5+CiAgMjg0IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMSArIG1lZGlhX3RyYW5zcG9ydF9zaXplKTsKICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjI5MDo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8g J2xlbicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICAyOTAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsCiAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fgogIDI5MSB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKyBtZWRp YV90cmFuc3BvcnRfc2l6ZSk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3Qu YzoyOTc6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQgW2Rl YWRjb2RlLkRlYWRTdG9yZXNdCiAgMjk3IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZW4gPSB3cml0ZShzaywgYnVmLAogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn4KICAyOTggfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAyICsgbWVkaWFfdHJhbnNwb3J0X3NpemUpOwogICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzA5OjU6IHdhcm5pbmc6IFZhbHVl IHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkIFtkZWFkY29kZS5EZWFkU3RvcmVzXQogIDMw OSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1Ziwg NCk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+ fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozMTM6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRv ICdsZW4nIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgMzEzIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+ CnRvb2xzL2F2dGVzdC5jOjMyMjo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMg bmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICAzMjIgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0 ZXN0LmM6MzI2OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFk IFtkZWFkY29kZS5EZWFkU3RvcmVzXQogIDMyNiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozMzU6 NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2Rl LkRlYWRTdG9yZXNdCiAgMzM1IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4g PSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM0Mjo1OiB3YXJuaW5n OiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jl c10KICAzNDIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNr LCBidWYsIDIpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAg fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzY0OjU6IHdhcm5pbmc6IFZhbHVlIHN0 b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkIFtkZWFkY29kZS5EZWFkU3RvcmVzXQogIDM2NCB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgNCk7 CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+ fn5+fn5+fgp0b29scy9hdnRlc3QuYzozNjg6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICds ZW4nIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgMzY4IHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRv b2xzL2F2dGVzdC5jOjM3Nzo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2 ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICAzNzcgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0 LmM6MzgxOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkIFtk ZWFkY29kZS5EZWFkU3RvcmVzXQogIDM4MSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozOTQ6NTog d2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRl YWRTdG9yZXNdCiAgMzk0IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3 cml0ZShzaywgYnVmLCA0KTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM5ODo1OiB3YXJuaW5nOiBW YWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10K ICAzOTggfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBi dWYsIDIpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+ fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NDA1OjQ6IHdhcm5pbmc6IFZhbHVlIHN0b3Jl ZCB0byAnbGVuJyBpcyBuZXZlciByZWFkIFtkZWFkY29kZS5EZWFkU3RvcmVzXQogIDQwNSB8ICAg ICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVz dC5jOjQxNTo0OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZCBb ZGVhZGNvZGUuRGVhZFN0b3Jlc10KICA0MTUgfCAgICAgICAgICAgICAgICAgICAgICAgICBsZW4g PSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBeICAg ICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo1ODA6Mzogd2FybmluZzogVmFsdWUg c3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9yZXNdCiAgNTgw IHwgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICB8ICAgICAg ICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo1ODg6Mzog d2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRl YWRTdG9yZXNdCiAgNTg4IHwgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIGlu dmFsaWQgPyAyIDogMyk7CiAgICAgIHwgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjAyOjM6IHdhcm5pbmc6IFZhbHVl IHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkIFtkZWFkY29kZS5EZWFkU3RvcmVzXQogIDYw MiB8ICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0ICsgbWVkaWFfdHJhbnNw b3J0X3NpemUpOwogICAgICB8ICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjYxNTozOiB3YXJuaW5nOiBW YWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10K ICA2MTUgfCAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgIHwg ICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjYy NTozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNv ZGUuRGVhZFN0b3Jlc10KICA2MjUgfCAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1 ZiwgMyk7CiAgICAgIHwgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRv b2xzL2F2dGVzdC5jOjYzNzozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2 ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICA2MzcgfCAgICAgICAgICAgICAgICAgbGVu ID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgIHwgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+ fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjY1MjozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQg dG8gJ2xlbicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICA2NTIgfCAgICAg ICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgIHwgICAgICAgICAgICAg ICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjY2NDozOiB3YXJuaW5n OiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jl c10KICA2NjQgfCAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAg IHwgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5j OjY3MzozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZCBbZGVh ZGNvZGUuRGVhZFN0b3Jlc10KICA2NzMgfCAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ss IGJ1ZiwgMyk7CiAgICAgIHwgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+ CnRvb2xzL2F2dGVzdC5jOjY4MDozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMg bmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICA2ODAgfCAgICAgICAgICAgICAgICAg bGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgIHwgICAgICAgICAgICAgICAgIF4gICAgIH5+ fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjcxNjoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9y ZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICA3MTYgfCAg ICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIEFWQ1RQX0hFQURFUl9MRU5HVEggKyBzaXplb2Yo cGxheV9wcmVzc2VkKSk7CiAgICAgIHwgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjMyIHdhcm5pbmdzIGdlbmVy YXRlZC4KdG9vbHMvY3JlYXRlLWltYWdlLmM6NzY6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRv ICdmZCcgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICAgNzYgfCAgICAgICAg ICAgICAgICAgZmQgPSAtMTsKICAgICAgfCAgICAgICAgICAgICAgICAgXiAgICB+fgp0b29scy9j cmVhdGUtaW1hZ2UuYzo4NDozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBuZXZl ciByZWFkIFtkZWFkY29kZS5EZWFkU3RvcmVzXQogICA4NCB8ICAgICAgICAgICAgICAgICBmZCA9 IC0xOwogICAgICB8ICAgICAgICAgICAgICAgICBeICAgIH5+CnRvb2xzL2NyZWF0ZS1pbWFnZS5j OjkyOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnZmQnIGlzIG5ldmVyIHJlYWQgW2RlYWRj b2RlLkRlYWRTdG9yZXNdCiAgIDkyIHwgICAgICAgICAgICAgICAgIGZkID0gLTE7CiAgICAgIHwg ICAgICAgICAgICAgICAgIF4gICAgfn4KdG9vbHMvY3JlYXRlLWltYWdlLmM6MTA1OjI6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAnZmQnIGlzIG5ldmVyIHJlYWQgW2RlYWRjb2RlLkRlYWRTdG9y ZXNdCiAgMTA1IHwgICAgICAgICBmZCA9IC0xOwogICAgICB8ICAgICAgICAgXiAgICB+fgp0b29s cy9jcmVhdGUtaW1hZ2UuYzoxMDg6Mjogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAx c3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcgW2NvcmUuTm9uTnVsbFBhcmFtQ2hlY2tl cl0KICAxMDggfCAgICAgICAgIGZwcmludGYoZnAsIEhEUl9GTVQsIEhEUl9NQUdJQywgaW5vLCBt b2RlLCAwLCAwLCAxLCAwLAogICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgMTA5IHwgICAgICAgICAgICAgICAgICh1 aW50bWF4X3QpIHN0LnN0X3NpemUsIDAsIDAsIDAsIDAsIG5hbWVsZW4gKyAxLCAwLCBuYW1lKTsK ICAgICAgfCAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2NyZWF0ZS1pbWFnZS5jOjE4ODoyOiB3YXJu aW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25u dWxsJyBbY29yZS5Ob25OdWxsUGFyYW1DaGVja2VyXQogIDE4OCB8ICAgICAgICAgZmNsb3NlKGZw KTsKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn4KNiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xz L2J0Z2F0dC1jbGllbnQuYzoxODIyOjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnYXJndicg aXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KIDE4MjIgfCAgICAgICAgIGFyZ3Yg Kz0gb3B0aW5kOwogICAgICB8ICAgICAgICAgXiAgICAgICB+fn5+fn4KMSB3YXJuaW5nIGdlbmVy YXRlZC4KdG9vbHMvY2hlY2stc2VsZnRlc3QuYzo0MjozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQg dG8gJ3B0cicgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KdG9vbHMvYnRnYXR0 LXNlcnZlci5jOjEyMDQ6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdhcmd2JyBpcyBuZXZl ciByZWFkIFtkZWFkY29kZS5EZWFkU3RvcmVzXQogICA0MiB8ICAgICAgICAgICAgICAgICBwdHIg PSBmZ2V0cyhyZXN1bHQsIHNpemVvZihyZXN1bHQpLCBmcCk7CiAxMjA0IHwgICAgICAgICBhcmd2 IC09IG9wdGluZDsKICAgICAgfCAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CiAgICAgIHwgICAgICAgICBeICAgICAgIH5+fn5+fgoxIHdhcm5p bmcgZ2VuZXJhdGVkLgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9nYXR0LXNlcnZpY2UuYzoy OTQ6Mjogd2FybmluZzogMm5kIGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFs aXplZCB2YWx1ZSBbY29yZS5DYWxsQW5kTWVzc2FnZV0KICAyOTQgfCAgICAgICAgIGNocl93cml0 ZShjaHIsIHZhbHVlLCBsZW4pOwogICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHRvb2xzL29i ZXgtc2VydmVyLXRvb2wuYzoxNzoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC91c3IvaW5jbHVkZS9m Y250bC5oOjM0MjoKL3Vzci9pbmNsdWRlL3g4Nl82NC1saW51eC1nbnUvYml0cy9mY250bDIuaDo3 NjoxMDogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVj dGluZyAnbm9ubnVsbCcgW2NvcmUuTm9uTnVsbFBhcmFtQ2hlY2tlcl0KICAgNzYgfCAgIHJldHVy biBfX29wZW5fYWxpYXMgKF9fcGF0aCwgX19vZmxhZywgX19tb2RlKTsKICAgICAgfCAgICAgICAg ICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJh dGVkLgpjbGllbnQvYnRwY2xpZW50L2J0cGNsaWVudGN0bC5jOjQwMjozOiB3YXJuaW5nOiBWYWx1 ZSBzdG9yZWQgdG8gJ2JpdCcgaXMgbmV2ZXIgcmVhZCBbZGVhZGNvZGUuRGVhZFN0b3Jlc10KICA0 MDIgfCAgICAgICAgICAgICAgICAgYml0ID0gMDsKICAgICAgfCAgICAgICAgICAgICAgICAgXiAg ICAgfgpjbGllbnQvYnRwY2xpZW50L2J0cGNsaWVudGN0bC5jOjE2NTU6Mjogd2FybmluZzogTnVs bCBwb2ludGVyIHBhc3NlZCB0byAybmQgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcgW2Nv cmUuTm9uTnVsbFBhcmFtQ2hlY2tlcl0KIDE2NTUgfCAgICAgICAgIG1lbWNweShjcC0+ZGF0YSwg YWRfZGF0YSwgYWRfbGVuKTsKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NkcC1jbGllbnQuYzozNTM6MTQ6 IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnY2InIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBv ZiBhIG51bGwgcG9pbnRlciBbY29yZS5OdWxsRGVyZWZlcmVuY2VdCiAgMzUzIHwgICAgICAgICAo KmN0eHQpLT5jYiA9IGNiOwogICAgICB8ICAgICAgICAgfn5+fn5+fn5+fn5+Xn5+fgoxIHdhcm5p bmcgZ2VuZXJhdGVkLgpzcmMvc2RwZC1yZXF1ZXN0LmM6MjA5OjEzOiB3YXJuaW5nOiBSZXN1bHQg b2YgJ21hbGxvYycgaXMgY29udmVydGVkIHRvIGEgcG9pbnRlciBvZiB0eXBlICdjaGFyJywgd2hp Y2ggaXMgaW5jb21wYXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJhbmQgdHlwZSAndWludDE2X3QnIFt1 bml4Lk1hbGxvY1NpemVvZl0KICAyMDkgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBFbGVtID0gbWFsbG9jKHNpemVvZih1aW50MTZfdCkpOwogICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4gfn5+fn5+fn5+fn5+fn5+fgpzcmMvc2Rw ZC1yZXF1ZXN0LmM6MjM3OjEzOiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxvYycgaXMgY29udmVy dGVkIHRvIGEgcG9pbnRlciBvZiB0eXBlICdjaGFyJywgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdp dGggc2l6ZW9mIG9wZXJhbmQgdHlwZSAndWludDMyX3QnIFt1bml4Lk1hbGxvY1NpemVvZl0KICAy MzcgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBFbGVtID0gbWFsbG9jKHNpemVv Zih1aW50MzJfdCkpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn5+fn4gfn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL2dh dHQtY2xpZW50LmM6MTU3MjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkIFt1bml4Lk1hbGxvY10KIDE1NzIgfCAgICAgICAgIG5vdGlmeV9jbGllbnRfdW5yZWYoY2xp ZW50KTsKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5p bmcgZ2VuZXJhdGVkLgpzcmMvc2RwLXhtbC5jOjEyOToxMDogd2FybmluZzogQXNzaWduZWQgdmFs dWUgaXMgdW5pbml0aWFsaXplZCBbY29yZS51bmluaXRpYWxpemVkLkFzc2lnbl0KICAxMjkgfCAg ICAgICAgICAgICAgICAgYnVmWzFdID0gZGF0YVtpICsgMV07CiAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICBeIH5+fn5+fn5+fn5+CnNyYy9zZHAteG1sLmM6MzA5OjExOiB3YXJuaW5nOiBB c3NpZ25lZCB2YWx1ZSBpcyB1bmluaXRpYWxpemVkIFtjb3JlLnVuaW5pdGlhbGl6ZWQuQXNzaWdu XQogIDMwOSB8ICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwog ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+CnNyYy9z ZHAteG1sLmM6MzQ3OjExOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyB1bmluaXRpYWxpemVk IFtjb3JlLnVuaW5pdGlhbGl6ZWQuQXNzaWduXQogIDM0NyB8ICAgICAgICAgICAgICAgICAgICAg ICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeIH5+fn5+fn5+fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgp1bml0L2F2cmNwLWxp Yi5jOjE5Njg6Mzogd2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5p bml0aWFsaXplZCB2YWx1ZSBbY29yZS5DYWxsQW5kTWVzc2FnZV0KIDE5NjggfCAgICAgICAgICAg ICAgICAgZ19mcmVlKHRleHRbaV0pOwogICAgICB8ICAgICAgICAgICAgICAgICBefn5+fn5+fn5+ fn5+fn4KdW5pdC9hdnJjcC1saWIuYzozNTEwOjQ6IHdhcm5pbmc6IEFkZHJlc3Mgb2Ygc3RhY2sg bWVtb3J5IGFzc29jaWF0ZWQgd2l0aCBsb2NhbCB2YXJpYWJsZSAndmFsJyBpcyBzdGlsbCByZWZl cnJlZCB0byBieSB0aGUgY2FsbGVyIHZhcmlhYmxlICdpb3YnIHVwb24gcmV0dXJuaW5nIHRvIHRo ZSBjYWxsZXIuICBUaGlzIHdpbGwgYmUgYSBkYW5nbGluZyByZWZlcmVuY2UgW2NvcmUuU3RhY2tB ZGRyZXNzRXNjYXBlXQogMzUwMyB8ICAgICAgICAgc3RydWN0IG1lZGlhX2l0ZW0gdmFsW0FWUkNQ X01FRElBX0FUVFJJQlVURV9MQVNUXTsKICAgICAgfCAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIDM1MDQgfCAKIDM1MDUgfCAgICAgICAg IGZvciAoaSA9IDA7IGkgPCBudW1iZXI7IGkrKykgewogMzUwNiB8ICAgICAgICAgICAgICAgICB1 aW50MTZfdCBsZW4gPSAwOwogMzUwNyB8IAogMzUwOCB8ICAgICAgICAgICAgICAgICBpZiAoYXR0 cnNbaV0gPiBBVlJDUF9NRURJQV9BVFRSSUJVVEVfTEFTVCB8fAogMzUwOSB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXR0cnNbaV0gPT0gQVZSQ1BfTUVESUFfQVRUUklCVVRFX0lM TEVHQUwpCiAzNTEwIHwgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fgp1bml0L2F2cmNwLWxpYi5j OjM1MjY6Mjogd2FybmluZzogQWRkcmVzcyBvZiBzdGFjayBtZW1vcnkgYXNzb2NpYXRlZCB3aXRo IGxvY2FsIHZhcmlhYmxlICd2YWwnIGlzIHN0aWxsIHJlZmVycmVkIHRvIGJ5IHRoZSBjYWxsZXIg dmFyaWFibGUgJ2lvdicgdXBvbiByZXR1cm5pbmcgdG8gdGhlIGNhbGxlci4gIFRoaXMgd2lsbCBi ZSBhIGRhbmdsaW5nIHJlZmVyZW5jZSBbY29yZS5TdGFja0FkZHJlc3NFc2NhcGVdCiAzNTAzIHwg ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+CjMgd2Fybmlu Z3MgZ2VuZXJhdGVkLgp1bml0L2F2ZHRwLmM6NzU2OjI1OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5 IGFmdGVyIGl0IGlzIGZyZWVkIFt1bml4Lk1hbGxvY10KICA3NTYgfCAgICAgICAgICAgICAgICAg c2Vzc2lvbi0+cHJpb19xdWV1ZSA9IGdfc2xpc3RfcmVtb3ZlKHNlc3Npb24tPnByaW9fcXVldWUs IHJlcSk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnVuaXQvYXZkdHAuYzo3NjM6MjQ6 IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQgW3VuaXguTWFsbG9jXQog IDc2MyB8ICAgICAgICAgICAgICAgICBzZXNzaW9uLT5yZXFfcXVldWUgPSBnX3NsaXN0X3JlbW92 ZShzZXNzaW9uLT5yZXFfcXVldWUsIHJlcSk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoy IHdhcm5pbmdzIGdlbmVyYXRlZC4KdW5pdC90ZXN0LWFzaGEtY29ubi5jOjMzOjU6IGVycm9yOiBu byBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3Ig4oCYX193cmFwX3NvY2tldOKAmSBbLVdlcnJvcj1t aXNzaW5nLWRlY2xhcmF0aW9uc10KICAgMzMgfCBpbnQgX193cmFwX3NvY2tldChpbnQgZG9tYWlu LCBpbnQgdHlwZSwgaW50IHByb3RvY29sKQogICAgICB8ICAgICBefn5+fn5+fn5+fn5+CnVuaXQv dGVzdC1hc2hhLWNvbm4uYzo0ODo1OiBlcnJvcjogbm8gcHJldmlvdXMgZGVjbGFyYXRpb24gZm9y IOKAmF9fd3JhcF9iaW5k4oCZIFstV2Vycm9yPW1pc3NpbmctZGVjbGFyYXRpb25zXQogICA0OCB8 IGludCBfX3dyYXBfYmluZChpbnQgZmQsIGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqYWRkciwgc29j a2xlbl90IGxlbmd0aCkKICAgICAgfCAgICAgXn5+fn5+fn5+fn4KdW5pdC90ZXN0LWFzaGEtY29u bi5jOjY3OjU6IGVycm9yOiBubyBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3Ig4oCYX193cmFwX3Nl dHNvY2tvcHTigJkgWy1XZXJyb3I9bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAgIDY3IHwgaW50IF9f d3JhcF9zZXRzb2Nrb3B0KGludCBmZCwgaW50IGxldmVsLCBpbnQgb3B0LCBjb25zdCB2b2lkICp2 YWx1ZSwKICAgICAgfCAgICAgXn5+fn5+fn5+fn5+fn5+fn4KdW5pdC90ZXN0LWFzaGEtY29ubi5j Ojc2OjU6IGVycm9yOiBubyBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3Ig4oCYX193cmFwX2dldHNv Y2tvcHTigJkgWy1XZXJyb3I9bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAgIDc2IHwgaW50IF9fd3Jh cF9nZXRzb2Nrb3B0KGludCBmZCwgaW50IGxldmVsLCBpbnQgb3B0LCB2b2lkICp2YWx1ZSwKICAg ICAgfCAgICAgXn5+fn5+fn5+fn5+fn5+fn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRl ZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtNYWtlZmlsZTo5ODEwOiB1bml0L3Rlc3RfYXNoYV9j b25uLXRlc3QtYXNoYS1jb25uLm9dIEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcgZm9yIHVu ZmluaXNoZWQgam9icy4uLi4KbWFrZTogKioqIFtNYWtlZmlsZTo0Mjg0OiBhbGxdIEVycm9yIDIK CgpodHRwczovL2dpdGh1Yi5jb20vYmx1ZXovYmx1ZXovcHVsbC8yNjY5CgotLS0KUmVnYXJkcywK TGludXggQmx1ZXRvb3RoCgo= --===============5885681724992569430==--