Received: by 2002:a05:6358:16cc:b0:ea:6187:17c9 with SMTP id r12csp6016078rwl; Thu, 29 Dec 2022 06:24:19 -0800 (PST) X-Google-Smtp-Source: AMrXdXuQ4c9STjtU6rREQ0ksWayWc1sA8nHEK1hyQSy3MLke6ySE1U8N4Fc2q0x0UcazIHYPYXWL X-Received: by 2002:a17:902:f80c:b0:189:a934:ee3e with SMTP id ix12-20020a170902f80c00b00189a934ee3emr33535811plb.62.1672323859302; Thu, 29 Dec 2022 06:24:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672323859; cv=none; d=google.com; s=arc-20160816; b=0vqtXr+Gk1/nWhzIMWI/K3yRUBsMzMS6zt9IEWXuDiivoAaoWj9lGm9sa2IpC7h1ur M2ocX8+A15vTfxw5/3zWUPBg4WaA0qX+f3GMB9gnLBmcH/pXOfyGBrT+VQKLTC8hJH19 zD4Y4nyOfqgt2BcC24C9ASFuYzzAOdG5ykRqCyyn+779rqO7S/At7pYJsfCyCA5lPpAR TeaHxl7TqqLUms8QuYp81HdCTPVOyP17VfQ3J33WOVP46kbGR3nEkN9RLpYMT00YfuAb n0Km4Nw6LzW9UhM9jT9GlD9FFjFNFRseK2zDp3xvBoQMHJF8e9iWCUtFXsX5rf1sLLMa B4FQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:reply-to:references:in-reply-to:subject:to:from :mime-version:date:message-id:dkim-signature; bh=Ly6jC/WpKj0q7INqd8h2/I8e2z1Zi6It8vX/PuD9KI0=; b=apVeauFSl9eqDcpYr/mG+zU2bDxRABMu8SIsSKe5buLG73Wq9Lc36qqniHKsjKi6Gh wCuD5ety5MtbrupXlGL/yL+uhMYay8KWSnYIrT7OrweO0t/WyqrHgGOPPiS3+tEysgFF sb13k6+wHXwpeRA0USNmzSk6wdJabtBTKmYk8Kfiaq7HoeS+2D63VP1OUSf+/uV/KpjY BVrjDegDV63xF9bOZFgSGXReNPVLH2uhws/TC/kC84Vg3mkLp9Wl56qjYC0/5lLxCDjm lQXYOMzyJi25DZziee2m5YD7ad/ZVGPh9LEQ/ycIBAfqSyHso9fSPFomBW/Q86a0ZrJm O5kw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=c8bMwwTg; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r19-20020a635d13000000b0046ec3bdd048si18802482pgb.484.2022.12.29.06.23.55; Thu, 29 Dec 2022 06:24:19 -0800 (PST) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=c8bMwwTg; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231201AbiL2ORW (ORCPT + 99 others); Thu, 29 Dec 2022 09:17:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44484 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229658AbiL2ORV (ORCPT ); Thu, 29 Dec 2022 09:17:21 -0500 Received: from mail-pj1-x1036.google.com (mail-pj1-x1036.google.com [IPv6:2607:f8b0:4864:20::1036]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CE00711446 for ; Thu, 29 Dec 2022 06:17:18 -0800 (PST) Received: by mail-pj1-x1036.google.com with SMTP id p4so19333739pjk.2 for ; Thu, 29 Dec 2022 06:17:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=reply-to:references:in-reply-to:subject:to:from:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=Ly6jC/WpKj0q7INqd8h2/I8e2z1Zi6It8vX/PuD9KI0=; b=c8bMwwTgJyk5tqpPG/AapiZU5CVFwqIsBU9QaK6yb+m+lDNvMfWaaXh8ofwPbfB214 dnL3WBrlfs3LxmsbC7OgyMd9LiPvpryWsZvVQ6q4zsZQ8+k4bmOwfJ060sqjrUmgHDgu 6Z1UcuSb6qSvj19gCJIl4IY7JVlsDGJrnyW7fSVwHAOuFqGFFj+G+LldXn5yqeK4Vd1R 5SBMrh9sEsl57IoocOsqve80F1Fe42bQcVBecIgrWUV7kWcB+phJC6H9lQNpbBoRAtYu NFOMK+wwYt6QSHqSd3XKJsyTNhIfhI8jqZmY/TqWmNnITu82uSRk+baO0XCKjSVRpYbD nuVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=reply-to:references:in-reply-to:subject:to:from:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Ly6jC/WpKj0q7INqd8h2/I8e2z1Zi6It8vX/PuD9KI0=; b=VuQEzVycGXRUvG+lK3KJDdLbphyqmSXstS8vbR6qkLJCNvIn5Kn8oeWN2+cIL2LAVb 3DA5H2FvDbV5BLMycO2rYHZHnHIwADoLNiaZgwzvszFQE57iVRto7ZbiONX6G+U+VKaq FMm5GseJwk8jxTELocfe912YKRBOmA0CpZrzhAzq35cfEv2ChyOg+B+4MAofb8lJuuXI gbuF8RTTDg6xmwO3PQNq01f3J4jLWIvje/M6+nVlwFpsBCItc6gf/4+/KCb2muGb9R6v Wls1fWlzKY+WeosG9Eab4hN6edZpGXCG3Y/YUi0M4syqmeYz4JE2WFgem1CslDEH29u+ ehFg== X-Gm-Message-State: AFqh2krYftyKcL5m/r1HeDlJhr+OK0ZsTiguuiAfdnIvbZCETUfr+5H/ +u5V/Iu8yznNHr7VZBgFwz9DBQP/q0s= X-Received: by 2002:a05:6a20:2a87:b0:b1:dd00:eb05 with SMTP id v7-20020a056a202a8700b000b1dd00eb05mr45010218pzh.26.1672323437511; Thu, 29 Dec 2022 06:17:17 -0800 (PST) Received: from [172.17.0.2] ([13.64.11.208]) by smtp.gmail.com with ESMTPSA id ik24-20020a170902ab1800b001893a002107sm13082969plb.0.2022.12.29.06.17.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Dec 2022 06:17:17 -0800 (PST) Message-ID: <63ada16d.170a0220.641a8.6384@mx.google.com> Date: Thu, 29 Dec 2022 06:17:17 -0800 (PST) Content-Type: multipart/mixed; boundary="===============0309115705573760085==" MIME-Version: 1.0 From: bluez.test.bot@gmail.com To: linux-bluetooth@vger.kernel.org, abhay.maheshbhai.maheta@intel.com Subject: RE: To add support for Metadata, CID, VID In-Reply-To: <20221229122821.340073-2-abhay.maheshbhai.maheta@intel.com> References: <20221229122821.340073-2-abhay.maheshbhai.maheta@intel.com> Reply-To: linux-bluetooth@vger.kernel.org X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org --===============0309115705573760085== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhdXRvbWF0ZWQgZW1haWwgYW5kIHBsZWFzZSBkbyBub3QgcmVwbHkgdG8gdGhpcyBl bWFpbCEKCkRlYXIgc3VibWl0dGVyLAoKVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRj aGVzIHRvIHRoZSBsaW51eCBibHVldG9vdGggbWFpbGluZyBsaXN0LgpUaGlzIGlzIGEgQ0kgdGVz dCByZXN1bHRzIHdpdGggeW91ciBwYXRjaCBzZXJpZXM6ClBXIExpbms6aHR0cHM6Ly9wYXRjaHdv cmsua2VybmVsLm9yZy9wcm9qZWN0L2JsdWV0b290aC9saXN0Lz9zZXJpZXM9NzA3NTE3CgotLS1U ZXN0IHJlc3VsdC0tLQoKVGVzdCBTdW1tYXJ5OgpDaGVja1BhdGNoICAgICAgICAgICAgICAgICAg ICBQQVNTICAgICAgMi43OCBzZWNvbmRzCkdpdExpbnQgICAgICAgICAgICAgICAgICAgICAgIEZB SUwgICAgICAxLjc1IHNlY29uZHMKQnVpbGRFbGwgICAgICAgICAgICAgICAgICAgICAgUEFTUyAg ICAgIDMyLjk3IHNlY29uZHMKQmx1ZXpNYWtlICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAg IDE2OS45NiBzZWNvbmRzCk1ha2VDaGVjayAgICAgICAgICAgICAgICAgICAgIEZBSUwgICAgICAy LjkxIHNlY29uZHMKTWFrZURpc3RjaGVjayAgICAgICAgICAgICAgICAgUEFTUyAgICAgIDE4MS4z OCBzZWNvbmRzCkNoZWNrVmFsZ3JpbmQgICAgICAgICAgICAgICAgIEZBSUwgICAgICAxMjQuNDIg c2Vjb25kcwpDaGVja1NtYXRjaCAgICAgICAgICAgICAgICAgICBGQUlMICAgICAgMjIzLjU0IHNl Y29uZHMKYmx1ZXptYWtlZXh0ZWxsICAgICAgICAgICAgICAgRkFJTCAgICAgIDY5LjkwIHNlY29u ZHMKSW5jcmVtZW50YWxCdWlsZCAgICAgICAgICAgICAgRkFJTCAgICAgIDQ4OTQuNDEgc2Vjb25k cwpTY2FuQnVpbGQgICAgICAgICAgICAgICAgICAgICBGQUlMICAgICAgOTY2LjY0IHNlY29uZHMK CkRldGFpbHMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IEdpdExpbnQgLSBG QUlMCkRlc2M6IFJ1biBnaXRsaW50Ck91dHB1dDoKW0JsdWVaLHYyLDUvNl0gY2xpZW50L3BsYXll cjogQWRkIHN1cHBvcnQgZm9yIENvbXBhbnkgSUQsIFZlbmRvciBJRCBpbiBCQVAgUHJvZmlsZQoK V0FSTklORzogSTMgLSBpZ25vcmUtYm9keS1saW5lczogZ2l0bGludCB3aWxsIGJlIHN3aXRjaGlu ZyBmcm9tIHVzaW5nIFB5dGhvbiByZWdleCAnbWF0Y2gnIChtYXRjaCBiZWdpbm5pbmcpIHRvICdz ZWFyY2gnIChtYXRjaCBhbnl3aGVyZSkgc2VtYW50aWNzLiBQbGVhc2UgcmV2aWV3IHlvdXIgaWdu b3JlLWJvZHktbGluZXMucmVnZXggb3B0aW9uIGFjY29yZGluZ2x5LiBUbyByZW1vdmUgdGhpcyB3 YXJuaW5nLCBzZXQgZ2VuZXJhbC5yZWdleC1zdHlsZS1zZWFyY2g9VHJ1ZS4gTW9yZSBkZXRhaWxz OiBodHRwczovL2pvcmlzcm9vdmVycy5naXRodWIuaW8vZ2l0bGludC9jb25maWd1cmF0aW9uLyNy ZWdleC1zdHlsZS1zZWFyY2gKMTogVDEgVGl0bGUgZXhjZWVkcyBtYXggbGVuZ3RoICg4Mj44MCk6 ICJbQmx1ZVosdjIsNS82XSBjbGllbnQvcGxheWVyOiBBZGQgc3VwcG9ydCBmb3IgQ29tcGFueSBJ RCwgVmVuZG9yIElEIGluIEJBUCBQcm9maWxlIgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKVGVzdDogQmx1ZXpNYWtlIC0gRkFJTApEZXNjOiBCdWlsZCBCbHVlWgpPdXRwdXQ6Cgp0b29s cy9tZ210LXRlc3Rlci5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp0b29scy9tZ210LXRlc3Rl ci5jOjEyNTE0OjU6IG5vdGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQg d2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAox MjUxNCB8IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4K Y2xpZW50L3BsYXllci5jOiBJbiBmdW5jdGlvbiDigJhnZXRfY2lkX3ZpZOKAmToKY2xpZW50L3Bs YXllci5jOjIwNDQ6NDI6IGVycm9yOiBjb21wYXJpc29uIG9mIGludGVnZXIgZXhwcmVzc2lvbnMg b2YgZGlmZmVyZW50IHNpZ25lZG5lc3M6IOKAmGludOKAmSBhbmQg4oCYdW5zaWduZWQgaW504oCZ IFstV2Vycm9yPXNpZ24tY29tcGFyZV0KIDIwNDQgfCAgaWYgKCFlbmRwdHIgfHwgKmVuZHB0ciAh PSAnXDAnIHx8IHZhbHVlID4gVUlOVDMyX01BWCkgewogICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgpjbGllbnQvcGxheWVyLmM6IEF0IHRvcCBsZXZlbDoK Y2xpZW50L3BsYXllci5jOjIxNDk6NjogZXJyb3I6IG5vIHByZXZpb3VzIGRlY2xhcmF0aW9uIGZv ciDigJhlbmRwb2ludF9zZXRfcGFyYW1ldGVyc+KAmSBbLVdlcnJvcj1taXNzaW5nLWRlY2xhcmF0 aW9uc10KIDIxNDkgfCB2b2lkIGVuZHBvaW50X3NldF9wYXJhbWV0ZXJzKHN0cnVjdCBlbmRwb2lu dCAqZXApCiAgICAgIHwgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjYzE6IGFsbCB3YXJu aW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtlWzFdOiAqKiogW01ha2VmaWxlOjc1NDU6 IGNsaWVudC9wbGF5ZXIub10gRXJyb3IgMQptYWtlWzFdOiAqKiogV2FpdGluZyBmb3IgdW5maW5p c2hlZCBqb2JzLi4uLgptYWtlOiAqKiogW01ha2VmaWxlOjQ0ODI6IGFsbF0gRXJyb3IgMgojIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogTWFrZUNoZWNrIC0gRkFJTApEZXNjOiBS dW4gQmx1ZXogTWFrZSBDaGVjawpPdXRwdXQ6CgpjbGllbnQvcGxheWVyLmM6IEluIGZ1bmN0aW9u IOKAmGdldF9jaWRfdmlk4oCZOgpjbGllbnQvcGxheWVyLmM6MjA0NDo0MjogZXJyb3I6IGNvbXBh cmlzb24gb2YgaW50ZWdlciBleHByZXNzaW9ucyBvZiBkaWZmZXJlbnQgc2lnbmVkbmVzczog4oCY aW504oCZIGFuZCDigJh1bnNpZ25lZCBpbnTigJkgWy1XZXJyb3I9c2lnbi1jb21wYXJlXQogMjA0 NCB8ICBpZiAoIWVuZHB0ciB8fCAqZW5kcHRyICE9ICdcMCcgfHwgdmFsdWUgPiBVSU5UMzJfTUFY KSB7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCmNs aWVudC9wbGF5ZXIuYzogQXQgdG9wIGxldmVsOgpjbGllbnQvcGxheWVyLmM6MjE0OTo2OiBlcnJv cjogbm8gcHJldmlvdXMgZGVjbGFyYXRpb24gZm9yIOKAmGVuZHBvaW50X3NldF9wYXJhbWV0ZXJz 4oCZIFstV2Vycm9yPW1pc3NpbmctZGVjbGFyYXRpb25zXQogMjE0OSB8IHZvaWQgZW5kcG9pbnRf c2V0X3BhcmFtZXRlcnMoc3RydWN0IGVuZHBvaW50ICplcCkKICAgICAgfCAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3Jz Cm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6NzU0NTogY2xpZW50L3BsYXllci5vXSBFcnJvciAxCm1h a2U6ICoqKiBbTWFrZWZpbGU6MTE2ODQ6IGNoZWNrXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwpUZXN0OiBDaGVja1ZhbGdyaW5kIC0gRkFJTApEZXNjOiBSdW4gQmx1ZXog TWFrZSBDaGVjayB3aXRoIFZhbGdyaW5kCk91dHB1dDoKCnRvb2xzL21nbXQtdGVzdGVyLmM6IElu IGZ1bmN0aW9uIOKAmG1haW7igJk6CnRvb2xzL21nbXQtdGVzdGVyLmM6MTI1MTQ6NTogbm90ZTog dmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFyLXRyYWNr aW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CjEyNTE0IHwgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgpjbGllbnQvcGxheWVyLmM6IElu IGZ1bmN0aW9uIOKAmGdldF9jaWRfdmlk4oCZOgpjbGllbnQvcGxheWVyLmM6MjA0NDo0MjogZXJy b3I6IGNvbXBhcmlzb24gb2YgaW50ZWdlciBleHByZXNzaW9ucyBvZiBkaWZmZXJlbnQgc2lnbmVk bmVzczog4oCYaW504oCZIGFuZCDigJh1bnNpZ25lZCBpbnTigJkgWy1XZXJyb3I9c2lnbi1jb21w YXJlXQogMjA0NCB8ICBpZiAoIWVuZHB0ciB8fCAqZW5kcHRyICE9ICdcMCcgfHwgdmFsdWUgPiBV SU5UMzJfTUFYKSB7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCmNsaWVudC9wbGF5ZXIuYzogQXQgdG9wIGxldmVsOgpjbGllbnQvcGxheWVyLmM6MjE0 OTo2OiBlcnJvcjogbm8gcHJldmlvdXMgZGVjbGFyYXRpb24gZm9yIOKAmGVuZHBvaW50X3NldF9w YXJhbWV0ZXJz4oCZIFstV2Vycm9yPW1pc3NpbmctZGVjbGFyYXRpb25zXQogMjE0OSB8IHZvaWQg ZW5kcG9pbnRfc2V0X3BhcmFtZXRlcnMoc3RydWN0IGVuZHBvaW50ICplcCkKICAgICAgfCAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQg YXMgZXJyb3JzCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6NzU0NTogY2xpZW50L3BsYXllci5vXSBF cnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2U6 ICoqKiBbTWFrZWZpbGU6MTE2ODQ6IGNoZWNrXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwpUZXN0OiBDaGVja1NtYXRjaCAtIEZBSUwKRGVzYzogUnVuIHNtYXRjaCB0b29s IHdpdGggc291cmNlCk91dHB1dDoKCnNyYy9zaGFyZWQvY3J5cHRvLmM6MjcxOjIxOiB3YXJuaW5n OiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9jcnlwdG8uYzoyNzI6 MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dh dHQtaGVscGVycy5jOjc2ODozMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVz ZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6ODMwOjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBs ZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzIzOjMxOiB3 YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhl bHBlcnMuYzoxMzU0OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4K c3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjI3NToyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3Ro IGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzo2MTg6MjU6IHdhcm5pbmc6 IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6 NzE3OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJl ZC9nYXR0LWNsaWVudC5jOjI3NDM6MzM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBp cyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6Mjk3MzoyMzogd2FybmluZzogVmFyaWFi bGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzozMDU0OjIz OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0 LWNsaWVudC5jOjM0OTM6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2Vk LgpzcmMvc2hhcmVkL3NoZWxsLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vz ci9pbmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0 eXBlZGVmcy5oOjM1OjIzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBv ZiBmdW5jdGlvbiAnRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6 MzY6MjU6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9u ICdWRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdh cm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0 aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBu b24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCnNy Yy9zaGFyZWQvc2hlbGwuYzo2MDk6MjE6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xh cmF0aW9uIG9mIGZ1bmN0aW9uICdidF9zaGVsbF91c2FnZScKc3JjL3NoYXJlZC9jcnlwdG8uYzoy NzE6MjE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVk L2NyeXB0by5jOjI3MjoyMzogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQu CnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6NzY4OjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5n dGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzo4MzA6MzE6IHdhcm5p bmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVy cy5jOjEzMjM6MzE6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMv c2hhcmVkL2dhdHQtaGVscGVycy5jOjEzNTQ6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBh cnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6Mjc1OjI1OiB3YXJuaW5nOiBW YXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjYx ODoyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQv Z2F0dC1zZXJ2ZXIuYzo3MTc6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1 c2VkLgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6Mjc0MzozMzogd2FybmluZzogVmFyaWFibGUg bGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyOTczOjIzOiB3 YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWNs aWVudC5jOjMwNTQ6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpz cmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MzQ5MzoyMzogd2FybmluZzogVmFyaWFibGUgbGVuZ3Ro IGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvc2hlbGwuYzogbm90ZTogaW4gaW5jbHVkZWQgZmls ZSAodGhyb3VnaCAvdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmVhZGxpbmUuaCk6Ci91c3IvaW5jbHVk ZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzU6MjM6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9u IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5l L3JsdHlwZWRlZnMuaDozNjoyNTogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRp b24gb2YgZnVuY3Rpb24gJ1ZGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRl ZnMuaDozNzoyNzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVu Y3Rpb24gJ0NQRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzg6 Mjk6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdD UFBGdW5jdGlvbicKc3JjL3NoYXJlZC9zaGVsbC5jOjYwOToyMTogd2FybmluZzogbm9uLUFOU0kg ZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2J0X3NoZWxsX3VzYWdlJwp0b29scy9t ZXNoLWNmZ3Rlc3QuYzoxMzA1OjE3OiB3YXJuaW5nOiB1bmtub3duIGVzY2FwZSBzZXF1ZW5jZTog J1wlJwp0b29scy9zY28tdGVzdGVyLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Ci4vbGliL2Js dWV0b290aC5oOjE4NjoxNTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwou L2xpYi9ibHVldG9vdGguaDoxOTE6MzE6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVj dHVyZXMKdG9vbHMvYm5lcHRlc3QuYzo2MzQ6Mzk6IHdhcm5pbmc6IHVua25vd24gZXNjYXBlIHNl cXVlbmNlOiAnXCUnCnRvb2xzL3NlcTJic2VxLmM6NTc6MjY6IHdhcm5pbmc6IFZhcmlhYmxlIGxl bmd0aCBhcnJheSBpcyB1c2VkLgp0b29scy9vYmV4LWNsaWVudC10b29sLmM6IG5vdGU6IGluIGlu Y2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgpOgov dXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3YXJuaW5nOiBub24tQU5T SSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rpb24nCi91c3IvaW5jbHVk ZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9u IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGlu ZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0 aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBl ZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBm dW5jdGlvbiAnQ1BQRnVuY3Rpb24nCmFuZHJvaWQvYXZjdHAuYzo1MDU6MzQ6IHdhcm5pbmc6IFZh cmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgphbmRyb2lkL2F2Y3RwLmM6NTU2OjM0OiB3YXJu aW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdW5pdC90ZXN0LWF2cmNwLmM6Mzcz OjI2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdW5pdC90ZXN0LWF2 cmNwLmM6Mzk4OjI2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdW5p dC90ZXN0LWF2cmNwLmM6NDE0OjI0OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMg dXNlZC4KYW5kcm9pZC9hdnJjcC1saWIuYzoxMDg1OjM0OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5n dGggYXJyYXkgaXMgdXNlZC4KYW5kcm9pZC9hdnJjcC1saWIuYzoxNTgzOjM0OiB3YXJuaW5nOiBW YXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KYW5kcm9pZC9hdnJjcC1saWIuYzoxNjEyOjM0 OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KYW5kcm9pZC9hdnJjcC1s aWIuYzoxNjM4OjM0OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KdW5p dC90ZXN0LW1lc2gtY3J5cHRvLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGU6Ci4vbWVzaC9jcnlw dG8uYzoxMDIzOjMwOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBm dW5jdGlvbiAnbWVzaF9jcnlwdG9fY2hlY2tfYXZhaWwnCnByb2ZpbGVzL2lucHV0L2RldmljZS5j OjE2NToyNjogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCm1lc2gvbWVz aC1pby1tZ210LmM6NTA2OjY3OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNl ZC4KbWVzaC9tYW5hZ2VyLmM6NjY6MzU6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xh cmF0aW9uIG9mIGZ1bmN0aW9uICdmcmVlX3BlbmRpbmdfYWRkX2NhbGwnCmNsaWVudC9kaXNwbGF5 LmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5l L3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3 YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rp b24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5v bi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91c3Iv aW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1 bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUv cmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBk ZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCmNsaWVudC9wbGF5ZXIuYzogSW4g ZnVuY3Rpb24g4oCYZ2V0X2NpZF92aWTigJk6CmNsaWVudC9wbGF5ZXIuYzoyMDQ0OjQyOiBlcnJv cjogY29tcGFyaXNvbiBvZiBpbnRlZ2VyIGV4cHJlc3Npb25zIG9mIGRpZmZlcmVudCBzaWduZWRu ZXNzOiDigJhpbnTigJkgYW5kIOKAmHVuc2lnbmVkIGludOKAmSBbLVdlcnJvcj1zaWduLWNvbXBh cmVdCiAyMDQ0IHwgIGlmICghZW5kcHRyIHx8ICplbmRwdHIgIT0gJ1wwJyB8fCB2YWx1ZSA+IFVJ TlQzMl9NQVgpIHsKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KY2xpZW50L3BsYXllci5jOiBBdCB0b3AgbGV2ZWw6CmNsaWVudC9wbGF5ZXIuYzoyMTQ5 OjY6IGVycm9yOiBubyBwcmV2aW91cyBkZWNsYXJhdGlvbiBmb3Ig4oCYZW5kcG9pbnRfc2V0X3Bh cmFtZXRlcnPigJkgWy1XZXJyb3I9bWlzc2luZy1kZWNsYXJhdGlvbnNdCiAyMTQ5IHwgdm9pZCBl bmRwb2ludF9zZXRfcGFyYW1ldGVycyhzdHJ1Y3QgZW5kcG9pbnQgKmVwKQogICAgICB8ICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBh cyBlcnJvcnMKbWFrZVsxXTogKioqIFtNYWtlZmlsZTo3NTQ1OiBjbGllbnQvcGxheWVyLm9dIEVy cm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KbWFrZTog KioqIFtNYWtlZmlsZTo0NDgyOiBhbGxdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjClRlc3Q6IGJsdWV6bWFrZWV4dGVsbCAtIEZBSUwKRGVzYzogQnVpbGQgQmx1ZXogd2l0 aCBFeHRlcm5hbCBFTEwKT3V0cHV0OgoKY2xpZW50L3BsYXllci5jOiBJbiBmdW5jdGlvbiDigJhn ZXRfY2lkX3ZpZOKAmToKY2xpZW50L3BsYXllci5jOjIwNDQ6NDI6IGVycm9yOiBjb21wYXJpc29u IG9mIGludGVnZXIgZXhwcmVzc2lvbnMgb2YgZGlmZmVyZW50IHNpZ25lZG5lc3M6IOKAmGludOKA mSBhbmQg4oCYdW5zaWduZWQgaW504oCZIFstV2Vycm9yPXNpZ24tY29tcGFyZV0KIDIwNDQgfCAg aWYgKCFlbmRwdHIgfHwgKmVuZHB0ciAhPSAnXDAnIHx8IHZhbHVlID4gVUlOVDMyX01BWCkgewog ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpjbGllbnQv cGxheWVyLmM6IEF0IHRvcCBsZXZlbDoKY2xpZW50L3BsYXllci5jOjIxNDk6NjogZXJyb3I6IG5v IHByZXZpb3VzIGRlY2xhcmF0aW9uIGZvciDigJhlbmRwb2ludF9zZXRfcGFyYW1ldGVyc+KAmSBb LVdlcnJvcj1taXNzaW5nLWRlY2xhcmF0aW9uc10KIDIxNDkgfCB2b2lkIGVuZHBvaW50X3NldF9w YXJhbWV0ZXJzKHN0cnVjdCBlbmRwb2ludCAqZXApCiAgICAgIHwgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtl WzFdOiAqKiogW01ha2VmaWxlOjc1NDU6IGNsaWVudC9wbGF5ZXIub10gRXJyb3IgMQptYWtlWzFd OiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtlOiAqKiogW01ha2VmaWxl OjQ0ODI6IGFsbF0gRXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDog SW5jcmVtZW50YWxCdWlsZCAtIEZBSUwKRGVzYzogSW5jcmVtZW50YWwgYnVpbGQgd2l0aCB0aGUg cGF0Y2hlcyBpbiB0aGUgc2VyaWVzCk91dHB1dDoKW0JsdWVaLHYyLDUvNl0gY2xpZW50L3BsYXll cjogQWRkIHN1cHBvcnQgZm9yIENvbXBhbnkgSUQsIFZlbmRvciBJRCBpbiBCQVAgUHJvZmlsZQoK dG9vbHMvbWdtdC10ZXN0ZXIuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdG9vbHMvbWdtdC10 ZXN0ZXIuYzoxMjUxNDo1OiBub3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2Vl ZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhv dXQKMTI1MTQgfCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBe fn5+CnVuaXQvdGVzdC1hdmR0cC5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp1bml0L3Rlc3Qt YXZkdHAuYzo3NjY6NTogbm90ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRl ZCB3aXRoIOKAmC1mdmFyLXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0 CiAgNzY2IHwgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+ fgp1bml0L3Rlc3QtYXZyY3AuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdW5pdC90ZXN0LWF2 cmNwLmM6OTg5OjU6IG5vdGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQg d2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAog IDk4OSB8IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4K Y2xpZW50L3BsYXllci5jOiBJbiBmdW5jdGlvbiDigJhnZXRfY2lkX3ZpZOKAmToKY2xpZW50L3Bs YXllci5jOjE5OTQ6NDI6IGVycm9yOiBjb21wYXJpc29uIG9mIGludGVnZXIgZXhwcmVzc2lvbnMg b2YgZGlmZmVyZW50IHNpZ25lZG5lc3M6IOKAmGludOKAmSBhbmQg4oCYdW5zaWduZWQgaW504oCZ IFstV2Vycm9yPXNpZ24tY29tcGFyZV0KIDE5OTQgfCAgaWYgKCFlbmRwdHIgfHwgKmVuZHB0ciAh PSAnXDAnIHx8IHZhbHVlID4gVUlOVDMyX01BWCkgewogICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgpjbGllbnQvcGxheWVyLmM6IEF0IHRvcCBsZXZlbDoK Y2xpZW50L3BsYXllci5jOjIwNzU6NjogZXJyb3I6IG5vIHByZXZpb3VzIGRlY2xhcmF0aW9uIGZv ciDigJhlbmRwb2ludF9zZXRfcGFyYW1ldGVyc+KAmSBbLVdlcnJvcj1taXNzaW5nLWRlY2xhcmF0 aW9uc10KIDIwNzUgfCB2b2lkIGVuZHBvaW50X3NldF9wYXJhbWV0ZXJzKHN0cnVjdCBlbmRwb2lu dCAqZXApCiAgICAgIHwgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjYzE6IGFsbCB3YXJu aW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtlWzFdOiAqKiogW01ha2VmaWxlOjc1NDU6 IGNsaWVudC9wbGF5ZXIub10gRXJyb3IgMQptYWtlWzFdOiAqKiogV2FpdGluZyBmb3IgdW5maW5p c2hlZCBqb2JzLi4uLgptYWtlOiAqKiogW01ha2VmaWxlOjQ0ODI6IGFsbF0gRXJyb3IgMgojIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogU2NhbkJ1aWxkIC0gRkFJTApEZXNjOiBS dW4gU2NhbiBCdWlsZApPdXRwdXQ6CgpzcmMvc2hhcmVkL2FkLmM6MzY5OjE5OiB3YXJuaW5nOiBV c2Ugb2YgemVyby1hbGxvY2F0ZWQgbWVtb3J5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYnVmWygqcG9zKSsrXSA9IGFkX3R5cGU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCjEgd2FybmluZyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvZ2F0dC1j bGllbnQuYzozODc6MjE6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQK ICAgICAgICBnYXR0X2RiX3VucmVnaXN0ZXIob3AtPmNsaWVudC0+ZGIsIG9wLT5kYl9pZCk7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVu dC5jOjYzMjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAg ICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBmYWxzZSwgYXR0X2Vjb2RlKTsKICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0 dC1jbGllbnQuYzo5Mjk6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVl ZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsK ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3Jj L3NoYXJlZC9nYXR0LWNsaWVudC5jOjEwMzU6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRl ciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2Vzcywg YXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjEyMjc6Mjogd2FybmluZzogVXNlIG9m IG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShv cCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjEyOTI6Mjogd2Fy bmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9v cF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5j OjE1NjM6Njogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAg IGlmIChyZWFkX2RiX2hhc2gob3ApKSB7CiAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3Jj L3NoYXJlZC9nYXR0LWNsaWVudC5jOjE1Njg6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRl ciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyX2FsbChvcCk7CiAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MjA3MDo2OiB3YXJuaW5nOiBVc2Ugb2Yg bWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgaWYgKHJlYWRfZGJfaGFzaChvcCkpIHsK ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MjA3 ODo4OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzY292ZXJ5X29w X3JlZihvcCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjMx NjE6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGNv bXBsZXRlX3dyaXRlX2xvbmdfb3AocmVxLCBzdWNjZXNzLCAwLCBmYWxzZSk7CiAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dh dHQtY2xpZW50LmM6MzE4MzoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkCiAgICAgICAgcmVxdWVzdF91bnJlZihyZXEpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fgoxMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvYmFwLmM6MjI2ODoyNjogd2Fybmlu ZzogQWNjZXNzIHRvIGZpZWxkICdpb3ZfbGVuJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2Yg YSBudWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdjb250JykKICAgICAgICByZXR1 cm4gaW92X2FwcGVuZChkYXRhLCBjb250LT5pb3ZfbGVuLCBjb250LT5pb3ZfYmFzZSk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJh dGVkLgpzcmMvc2hhcmVkL3NoZWxsLmM6MTE4MDoxMzogd2FybmluZzogQWNjZXNzIHRvIGZpZWxk ICdvcHRpb25zJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIgKGxv YWRlZCBmcm9tIHZhcmlhYmxlICdvcHQnKQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyAh PSBvcHQtPm9wdGlvbnNbaW5kZXggLSBvZmZzZXRdLnZhbCkgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBefn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4Kc3JjL3NoYXJl ZC9hZC5jOjM2OToxOTogd2FybmluZzogVXNlIG9mIHplcm8tYWxsb2NhdGVkIG1lbW9yeQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZlsoKnBvcykrK10gPSBhZF90eXBlOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoxIHdhcm5pbmcgZ2Vu ZXJhdGVkLgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6Mzg3OjIxOiB3YXJuaW5nOiBVc2Ugb2Yg bWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZ2F0dF9kYl91bnJlZ2lzdGVyKG9wLT5j bGllbnQtPmRiLCBvcC0+ZGJfaWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzo2MzI6Mjogd2FybmluZzogVXNlIG9mIG1lbW9y eSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgZmFs c2UsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6OTI5OjI6IHdhcm5pbmc6IFVzZSBv ZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUo b3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMDM1OjI6IHdh cm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlf b3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQu YzoxMjI3OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAg ICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQv Z2F0dC1jbGllbnQuYzoxMjkyOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMg ZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29k ZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNTYzOjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkg YWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNTY4OjI6IHdh cm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcl9h bGwob3ApOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5j OjIwNzA6Njogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAg IGlmIChyZWFkX2RiX2hhc2gob3ApKSB7CiAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3Jj L3NoYXJlZC9nYXR0LWNsaWVudC5jOjIwNzg6ODogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRl ciBpdCBpcyBmcmVlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRpc2NvdmVyeV9vcF9yZWYob3ApLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CnNy Yy9zaGFyZWQvZ2F0dC1jbGllbnQuYzozMTYxOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0 ZXIgaXQgaXMgZnJlZWQKICAgICAgICBjb21wbGV0ZV93cml0ZV9sb25nX29wKHJlcSwgc3VjY2Vz cywgMCwgZmFsc2UpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjMxODM6Mjogd2FybmluZzogVXNl IG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIHJlcXVlc3RfdW5yZWYocmVxKTsK ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4KMTIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2hh cmVkL2JhcC5jOjIyNjg6MjY6IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnaW92X2xlbicgcmVz dWx0cyBpbiBhIGRlcmVmZXJlbmNlIG9mIGEgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJp YWJsZSAnY29udCcpCiAgICAgICAgcmV0dXJuIGlvdl9hcHBlbmQoZGF0YSwgY29udC0+aW92X2xl biwgY29udC0+aW92X2Jhc2UpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9zaGVsbC5jOjExODA6MTM6 IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnb3B0aW9ucycgcmVzdWx0cyBpbiBhIGRlcmVmZXJl bmNlIG9mIGEgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAnb3B0JykKICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKGMgIT0gb3B0LT5vcHRpb25zW2luZGV4IC0gb2Zmc2V0XS52 YWwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+CjEgd2Fy bmluZyBnZW5lcmF0ZWQuCnRvb2xzL2hjaWF0dGFjaC5jOjgxNjo3OiB3YXJuaW5nOiBBbHRob3Vn aCB0aGUgdmFsdWUgc3RvcmVkIHRvICduJyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVz c2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnbicKICAgICAgICBp ZiAoKG4gPSByZWFkX2hjaV9ldmVudChmZCwgcmVzcCwgMTApKSA8IDApIHsKICAgICAgICAgICAg IF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWF0dGFjaC5jOjg2NDo3 OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICduJyBpcyB1c2VkIGluIHRo ZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQg ZnJvbSAnbicKICAgICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChmZCwgcmVzcCwgNCkpIDwg MCkgewogICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9o Y2lhdHRhY2guYzo4ODY6ODogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAn bicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZl ciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAgICAgICAgICBpZiAoKG4gPSByZWFkX2hj aV9ldmVudChmZCwgcmVzcCwgMTApKSA8IDApIHsKICAgICAgICAgICAgICAgICAgICAgXiAgIH5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpYXR0YWNoLmM6OTA4Ojc6IHdhcm5p bmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xv c2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICdu JwogICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2ZW50KGZkLCByZXNwLCA0KSkgPCAwKSB7CiAg ICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWF0dGFj aC5jOjkyOTo3OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICduJyBpcyB1 c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVh bGx5IHJlYWQgZnJvbSAnbicKICAgICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChmZCwgcmVz cCwgNCkpIDwgMCkgewogICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgp0b29scy9oY2lhdHRhY2guYzo5NzM6Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0 b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1 ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAgaWYgKChuID0gcmVhZF9o Y2lfZXZlbnQoZmQsIHJlc3AsIDYpKSA8IDApIHsKICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KNiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9vdWkuYzo1MDoyOiB3 YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2h3ZGInIGlzIG5ldmVyIHJlYWQKICAgICAgICBod2Ri ID0gdWRldl9od2RiX3VucmVmKGh3ZGIpOwogICAgICAgIF4gICAgICB+fn5+fn5+fn5+fn5+fn5+ fn5+fn4Kc3JjL291aS5jOjUzOjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAndWRldicgaXMg bmV2ZXIgcmVhZAogICAgICAgIHVkZXYgPSB1ZGV2X3VucmVmKHVkZXYpOwogICAgICAgIF4gICAg ICB+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9oY2lkdW1wLmM6 MTgwOjk6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdk cCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmRzW2ldLmZkID09IHNvY2sp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fgp0b29scy9oY2lkdW1wLmM6 MjQ4OjE3OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRoLT50c19zZWMgID0gaHRvYmwoZnJtLnRz LnR2X3NlYyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+ fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6MzI2Ojk6IHdhcm5pbmc6IDFzdCBm dW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmUzMnRvaChkcC5mbGFncykgJiAweDAyKSB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci91c3Iv aW5jbHVkZS9lbmRpYW4uaDo0NjoyMjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYmUzMnRv aCcKIyAgZGVmaW5lIGJlMzJ0b2goeCkgX19ic3dhcF8zMiAoeCkKICAgICAgICAgICAgICAgICAg ICAgXn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpZHVtcC5jOjM0MToyMDogd2FybmluZzogMXN0IGZ1 bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZybS5kYXRhX2xlbiA9IGJlMzJ0b2goZHAubGVuKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+ fn4KL3Vzci9pbmNsdWRlL2VuZGlhbi5oOjQ2OjIyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3Jv ICdiZTMydG9oJwojICBkZWZpbmUgYmUzMnRvaCh4KSBfX2Jzd2FwXzMyICh4KQogICAgICAgICAg ICAgICAgICAgICBefn5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6MzQ2OjE0OiB3YXJuaW5n OiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlID0gYmUzMnRvaChkcC5mbGFncykg JiAweGZmZmY7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2VuZGlhbi5oOjQ2OjIyOiBub3RlOiBleHBhbmRlZCBm cm9tIG1hY3JvICdiZTMydG9oJwojICBkZWZpbmUgYmUzMnRvaCh4KSBfX2Jzd2FwXzMyICh4KQog ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6Mzg0OjE3 OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAg ICAgICAgICAgICAgICAgICBmcm0uZGF0YV9sZW4gPSBidG9ocyhkaC5sZW4pOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWR1bXAu YzozOTQ6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVk CiAgICAgICAgICAgICAgICBmcm0ubGVuID0gZnJtLmRhdGFfbGVuOwogICAgICAgICAgICAgICAg ICAgICAgICBeIH5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6Mzk4Ojk6IHdhcm5pbmc6IDFz dCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAg ICAgICAgICAgICAgICAgICAgdHMgPSBiZTY0dG9oKHBoLnRzKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBefn5+fn5+fn5+fn5+fgovdXNyL2luY2x1ZGUvZW5kaWFuLmg6NTE6MjI6IG5v dGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2JlNjR0b2gnCiMgIGRlZmluZSBiZTY0dG9oKHgpIF9f YnN3YXBfNjQgKHgpCiAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CnRvb2xzL2hj aWR1bXAuYzo0MDM6MTM6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFu IHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgZnJtLmluID0gYmUz MnRvaChkcC5mbGFncykgJiAweDAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fgovdXNyL2luY2x1ZGUvZW5kaWFuLmg6NDY6MjI6IG5vdGU6IGV4cGFu ZGVkIGZyb20gbWFjcm8gJ2JlMzJ0b2gnCiMgIGRlZmluZSBiZTMydG9oKHgpIF9fYnN3YXBfMzIg KHgpCiAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWR1bXAuYzo0 MDg6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAg ICAgICAgICAgICAgICAgICAgICAgIGZybS5pbiA9IGRoLmluOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXiB+fn5+fgp0b29scy9oY2lkdW1wLmM6NDM3Ojc6IHdhcm5pbmc6IE51bGwg cG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAg ICAgZmQgPSBvcGVuKGZpbGUsIG9wZW5fZmxhZ3MsIDA2NDQpOwogICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxMSB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL3JmY29t bS5jOjIyODozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2knIGlzIG5ldmVyIHJlYWQKICAg ICAgICAgICAgICAgIGkgPSBleGVjdnAoY21kYXJndlswXSwgY21kYXJndik7CiAgICAgICAgICAg ICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3JmY29tbS5jOjIyODo3 OiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5n ICdub25udWxsJwogICAgICAgICAgICAgICAgaSA9IGV4ZWN2cChjbWRhcmd2WzBdLCBjbWRhcmd2 KTsKICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMv cmZjb21tLmM6MzQ4Ojg6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ2Zk JyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVy IGFjdHVhbGx5IHJlYWQgZnJvbSAnZmQnCiAgICAgICAgICAgICAgICBpZiAoKGZkID0gb3Blbihk ZXZuYW1lLCBPX1JET05MWSB8IE9fTk9DVFRZKSkgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAg IF4gICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9yZmNvbW0uYzo0 OTE6MTQ6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAg ICAgICAgcmVxLmNoYW5uZWwgPSByYWRkci5yY19jaGFubmVsOwogICAgICAgICAgICAgICAgICAg IF4gfn5+fn5+fn5+fn5+fn5+fgp0b29scy9yZmNvbW0uYzo1MDk6ODogd2FybmluZzogQWx0aG91 Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnZmQnIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHBy ZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICdmZCcKICAgICAg ICAgICAgICAgIGlmICgoZmQgPSBvcGVuKGRldm5hbWUsIE9fUkRPTkxZIHwgT19OT0NUVFkpKSA8 IDApIHsKICAgICAgICAgICAgICAgICAgICAgXiAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CjUgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2RwLXhtbC5jOjEyNjoxMDogd2Fy bmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAg ICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+ fn5+fn4Kc3JjL3NkcC14bWwuYzozMDA6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdh cmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFb aSArIDFdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fgpzcmMv c2RwLXhtbC5jOjMzODoxMTogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1 bmRlZmluZWQKICAgICAgICAgICAgICAgICAgICAgICAgYnVmWzFdID0gZGF0YVtpICsgMV07CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+CjMgd2FybmluZ3MgZ2Vu ZXJhdGVkLgp0b29scy9jaXB0b29sLmM6MzUwOjc6IHdhcm5pbmc6IDV0aCBmdW5jdGlvbiBjYWxs IGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICBzayA9IGRvX2Nvbm5l Y3QoY3RsLCBkZXZfaWQsICZzcmMsICZkc3QsIHBzbSwgKDEgPDwgQ01UUF9MT09QQkFDSykpOwog ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdG9vbHMvc2RwdG9vbC5jOjk0 MToyNjogd2FybmluZzogUmVzdWx0IG9mICdtYWxsb2MnIGlzIGNvbnZlcnRlZCB0byBhIHBvaW50 ZXIgb2YgdHlwZSAndWludDMyX3QnLCB3aGljaCBpcyBpbmNvbXBhdGlibGUgd2l0aCBzaXplb2Yg b3BlcmFuZCB0eXBlICdpbnQnCiAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICp2YWx1 ZV9pbnQgPSBtYWxsb2Moc2l6ZW9mKGludCkpOwogICAgICAgICAgICAgICAgICAgICAgICB+fn5+ fn5+fn5+ICAgICAgICAgICAgXn5+fn5+IH5+fn5+fn5+fn5+CnRvb2xzL3NkcHRvb2wuYzo5ODA6 NDogd2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXpl ZCB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICBmcmVlKGFsbG9jQXJyYXlbaV0pOwogICAg ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3NkcHRvb2wuYzoz Nzc3OjI6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdz aS5uYW1lJwogICAgICAgIHJldHVybiBhZGRfc2VydmljZSgwLCAmc2kpOwogICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3NkcHRvb2wuYzo0MTEyOjQ6IHdhcm5pbmc6IFBv dGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdjb250ZXh0LnN2YycKICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn4KNCB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2F2dGVzdC5jOjIyNDo1OiB3YXJuaW5n OiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjIzNDo1 OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDQpOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVz dC5jOjI0Mzo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRv b2xzL2F2dGVzdC5jOjI1Nzo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2 ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBi dWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn4K dG9vbHMvYXZ0ZXN0LmM6MjY0OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBu ZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ss IGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+ fgp0b29scy9hdnRlc3QuYzoyNzE6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlz IG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShz aywgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+ fn5+CnRvb2xzL2F2dGVzdC5jOjI3ODo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicg aXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRl KHNrLCBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+ fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Mjg5OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVu JyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3Jp dGUoc2ssIGJ1ZiwgNCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+ fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MjkzOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3Jl ZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzAyOjU6IHdhcm5pbmc6IFZh bHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzA2OjU6IHdh cm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6 MzE1OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMv YXZ0ZXN0LmM6MzIyOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciBy ZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1Ziwg Mik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+ fn4KdG9vbHMvYXZ0ZXN0LmM6MzQ0OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBp cyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUo c2ssIGJ1ZiwgNCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+ fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzQ4OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0 byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVu ID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAg ICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzU3OjU6IHdhcm5pbmc6IFZhbHVl IHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MzYxOjU6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Mzc0 OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgNCk7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0 ZXN0LmM6Mzc4OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFk CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4K dG9vbHMvYXZ0ZXN0LmM6Mzg1OjQ6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBu ZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIp OwogICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9h dnRlc3QuYzozOTU6NDogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJl YWQKICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAg ICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5j OjU1OTozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAg ICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICBeICAg ICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo1Njc6Mzogd2FybmluZzogVmFsdWUg c3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRl KHNrLCBidWYsIGludmFsaWQgPyAyIDogMyk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjU4MTozOiB3YXJuaW5nOiBW YWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0g d3JpdGUoc2ssIGJ1ZiwgNCArIHNpemVvZihtZWRpYV90cmFuc3BvcnQpKTsKICAgICAgICAgICAg ICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9v bHMvYXZ0ZXN0LmM6NTk0OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZl ciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAg ICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjYwNDozOiB3YXJu aW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAg bGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+ fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2MTY6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICds ZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMp OwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6 NjMxOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAg ICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgIF4gICAg IH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjY0MzozOiB3YXJuaW5nOiBWYWx1ZSBz dG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUo c2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29s cy9hdnRlc3QuYzo2NTI6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVy IHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAg ICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjU5OjM6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBs ZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+ fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjY5NToyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xl bicgaXMgbmV2ZXIgcmVhZAogICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIEFWQ1RQX0hFQURF Ul9MRU5HVEggKyBzaXplb2YocGxheV9wcmVzc2VkKSk7CiAgICAgICAgXiAgICAgfn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgozMiB3YXJu aW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2J0cHJveHkuYzo4MzY6MTU6IHdhcm5pbmc6IE51bGwgcG9p bnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAg ICAgICAgICAgICAgICAgIHRjcF9wb3J0ID0gYXRvaShvcHRhcmcpOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fgp0b29scy9idHByb3h5LmM6ODM5Ojg6IHdh cm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3RpbmcgJ25v bm51bGwnCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJsZW4ob3B0YXJnKSA+IDMgJiYg IXN0cm5jbXAob3B0YXJnLCAiaGNpIiwgMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBe fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvY3JlYXRlLWltYWdlLmM6 NzY6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdmZCcgaXMgbmV2ZXIgcmVhZAogICAgICAg ICAgICAgICAgZmQgPSAtMTsKICAgICAgICAgICAgICAgIF4gICAgfn4KdG9vbHMvY3JlYXRlLWlt YWdlLmM6ODQ6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdmZCcgaXMgbmV2ZXIgcmVhZAog ICAgICAgICAgICAgICAgZmQgPSAtMTsKICAgICAgICAgICAgICAgIF4gICAgfn4KdG9vbHMvY3Jl YXRlLWltYWdlLmM6OTI6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdmZCcgaXMgbmV2ZXIg cmVhZAogICAgICAgICAgICAgICAgZmQgPSAtMTsKICAgICAgICAgICAgICAgIF4gICAgfn4KdG9v bHMvY3JlYXRlLWltYWdlLmM6MTA1OjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnZmQnIGlz IG5ldmVyIHJlYWQKICAgICAgICBmZCA9IC0xOwogICAgICAgIF4gICAgfn4KNCB3YXJuaW5ncyBn ZW5lcmF0ZWQuCnRvb2xzL2J0Z2F0dC1jbGllbnQuYzoxNTk3OjI6IHdhcm5pbmc6IFZhbHVlIHN0 b3JlZCB0byAnYXJndicgaXMgbmV2ZXIgcmVhZAogICAgICAgIGFyZ3YgKz0gb3B0aW5kOwogICAg ICAgIF4gICAgICAgfn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRvb2xzL2J0Z2F0dC1zZXJ2 ZXIuYzoxMjEyOjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnYXJndicgaXMgbmV2ZXIgcmVh ZAogICAgICAgIGFyZ3YgLT0gb3B0aW5kOwogICAgICAgIF4gICAgICAgfn5+fn5+CjEgd2Fybmlu ZyBnZW5lcmF0ZWQuCnRvb2xzL2NoZWNrLXNlbGZ0ZXN0LmM6NDI6Mzogd2FybmluZzogVmFsdWUg c3RvcmVkIHRvICdwdHInIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIHB0ciA9IGZnZXRz KHJlc3VsdCwgc2l6ZW9mKHJlc3VsdCksIGZwKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9n YXR0LXNlcnZpY2UuYzoyOTQ6Mjogd2FybmluZzogMm5kIGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQg aXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgIGNocl93cml0ZShjaHIsIHZhbHVlLCBs ZW4pOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0 ZWQuCnRvb2xzL29iZXgtc2VydmVyLXRvb2wuYzoxMzM6MTM6IHdhcm5pbmc6IE51bGwgcG9pbnRl ciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgZGF0 YS0+ZmQgPSBvcGVuKG5hbWUsIE9fV1JPTkxZIHwgT19DUkVBVCB8IE9fTk9DVFRZLCAwNjAwKTsK ICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CnRvb2xzL29iZXgtc2VydmVyLXRvb2wuYzoxOTI6MTM6IHdhcm5pbmc6IE51bGwg cG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAg ICAgZGF0YS0+ZmQgPSBvcGVuKG5hbWUsIE9fUkRPTkxZIHwgT19OT0NUVFksIDApOwogICAgICAg ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdz IGdlbmVyYXRlZC4KdG9vbHMvYnRwY2xpZW50Y3RsLmM6NDAyOjM6IHdhcm5pbmc6IFZhbHVlIHN0 b3JlZCB0byAnYml0JyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBiaXQgPSAwOwogICAg ICAgICAgICAgICAgXiAgICAgfgp0b29scy9idHBjbGllbnRjdGwuYzoxNjU1OjI6IHdhcm5pbmc6 IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMm5kIHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwn CiAgICAgICAgbWVtY3B5KGNwLT5kYXRhLCBhZF9kYXRhLCBhZF9sZW4pOwogICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3Nk cGQtcmVxdWVzdC5jOjIxMToxMzogd2FybmluZzogUmVzdWx0IG9mICdtYWxsb2MnIGlzIGNvbnZl cnRlZCB0byBhIHBvaW50ZXIgb2YgdHlwZSAnY2hhcicsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3 aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUgJ3VpbnQxNl90JwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBFbGVtID0gbWFsbG9jKHNpemVvZih1aW50MTZfdCkpOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+IH5+fn5+fn5+fn5+fn5+fn4Kc3JjL3Nk cGQtcmVxdWVzdC5jOjIzOToxMzogd2FybmluZzogUmVzdWx0IG9mICdtYWxsb2MnIGlzIGNvbnZl cnRlZCB0byBhIHBvaW50ZXIgb2YgdHlwZSAnY2hhcicsIHdoaWNoIGlzIGluY29tcGF0aWJsZSB3 aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUgJ3VpbnQzMl90JwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBFbGVtID0gbWFsbG9jKHNpemVvZih1aW50MzJfdCkpOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+IH5+fn5+fn5+fn5+fn5+fn4KMiB3YXJu aW5ncyBnZW5lcmF0ZWQuCmFuZHJvaWQvYXZyY3AtbGliLmM6MTk2ODozOiB3YXJuaW5nOiAxc3Qg ZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAg ICAgICAgICBnX2ZyZWUodGV4dFtpXSk7CiAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn4K MSB3YXJuaW5nIGdlbmVyYXRlZC4KdW5pdC90ZXN0LW1pZGkuYzo1NDE6ODI6IGVycm9yOiBmdW5j dGlvbiBkZWZpbml0aW9uIGlzIG5vdCBhbGxvd2VkIGhlcmUKICAgICAgICB2b2lkIGNvbXBhcmVf ZXZlbnRzX2NiKGNvbnN0IHN0cnVjdCBtaWRpX3dyaXRlX3BhcnNlciAqcGFyc2VyLCB2b2lkICp1 c2VyX2RhdGEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KdW5pdC90ZXN0LW1p ZGkuYzo1ODc6MTc6IGVycm9yOiB1c2Ugb2YgdW5kZWNsYXJlZCBpZGVudGlmaWVyICdjb21wYXJl X2V2ZW50c19jYic7IGRpZCB5b3UgbWVhbiAnY29tcGFyZV9ldmVudHMnPwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29tcGFyZV9ldmVudHNfY2IsICZtaWRpX2RhdGEpOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhcmVfZXZlbnRzCnVuaXQvdGVz dC1taWRpLmM6MjM3OjEzOiBub3RlOiAnY29tcGFyZV9ldmVudHMnIGRlY2xhcmVkIGhlcmUKc3Rh dGljIHZvaWQgY29tcGFyZV9ldmVudHMoY29uc3Qgc25kX3NlcV9ldmVudF90ICpldjEsCiAgICAg ICAgICAgIF4KMiBlcnJvcnMgZ2VuZXJhdGVkLgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gdW5pdC90 ZXN0LW1lc2gtY3J5cHRvLmM6MjA6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL21lc2gvY3J5cHRv LmM6MTg6CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuL2VsbC9lbGwuaDoxOgouL2VsbC91dGlsLmg6 MTg3Ojk6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlh bGl6ZWQgdmFsdWUKICAgICAgICByZXR1cm4gTF9CRTMyX1RPX0NQVShMX0dFVF9VTkFMSUdORUQo KGNvbnN0IHVpbnQzMl90ICopIHB0cikpOwogICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9lbGwvdXRpbC5oOjg5OjI4 OiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdMX0JFMzJfVE9fQ1BVJwojZGVmaW5lIExfQkUz Ml9UT19DUFUodmFsKSBic3dhcF8zMih2YWwpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2J5dGVzd2FwLmg6MzQ6MjE6IG5vdGU6IGV4cGFuZGVk IGZyb20gbWFjcm8gJ2Jzd2FwXzMyJwojZGVmaW5lIGJzd2FwXzMyKHgpIF9fYnN3YXBfMzIgKHgp CiAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KdW5pdC90ZXN0LW1lc2gtY3J5cHRv LmM6OTY1OjExOiB3YXJuaW5nOiBUaGUgbGVmdCBleHByZXNzaW9uIG9mIHRoZSBjb21wb3VuZCBh c3NpZ25tZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUuIFRoZSBjb21wdXRlZCB2YWx1ZSB3 aWxsIGFsc28gYmUgZ2FyYmFnZQogICAgICAgICAgICAgICAga2V5X2FpZCB8PSBLRVlfSURfQUtG OwogICAgICAgICAgICAgICAgfn5+fn5+fiBeCnVuaXQvdGVzdC1tZXNoLWNyeXB0by5jOjEwMDg6 Mjogd2FybmluZzogNHRoIGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXpl ZCB2YWx1ZQogICAgICAgIHZlcmlmeV91aW50OCgiTklEIiwgMCwga2V5cy0+bmV0X25pZCwgbmlk KTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdW5p dC90ZXN0LW1lc2gtY3J5cHRvLmM6MTI4OTo2OiB3YXJuaW5nOiBCcmFuY2ggY29uZGl0aW9uIGV2 YWx1YXRlcyB0byBhIGdhcmJhZ2UgdmFsdWUKICAgICAgICBpZiAoY3RsKSB7CiAgICAgICAgICAg IF5+fgp1bml0L3Rlc3QtbWVzaC1jcnlwdG8uYzoxNTA5Ojc6IHdhcm5pbmc6IEJyYW5jaCBjb25k aXRpb24gZXZhbHVhdGVzIHRvIGEgZ2FyYmFnZSB2YWx1ZQogICAgICAgICAgICAgICAgaWYgKG5l dF9jdGwpIHsKICAgICAgICAgICAgICAgICAgICBefn5+fn5+CnVuaXQvdGVzdC1tZXNoLWNyeXB0 by5jOjE3NjM6Mjogd2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5p bml0aWFsaXplZCB2YWx1ZQogICAgICAgIGxfcHV0X2JlNjQoY21hY190bXAsIGNtYWMpOwogICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjYgd2FybmluZ3MgZ2VuZXJhdGVkLgpwcm9m aWxlcy9oZWFsdGgvaGRwLmM6NjQ0OjM6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICAgICAgICAgIGhkcF90bXBfZGNfZGF0YV91bnJlZihkY19kYXRhKTsK ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpwcm9maWxlcy9o ZWFsdGgvaGRwLmM6ODAwOjE5OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkCiAgICAgICAgICAgICAgICBwYXRoID0gZ19zdHJkdXAoY2hhbi0+cGF0aCk7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fgpwcm9maWxlcy9oZWFsdGgvaGRwLmM6 MTc3OTo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZHBfdG1wX2RjX2RhdGFfcmVmKGhkcF9j b25uKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CnByb2ZpbGVzL2hlYWx0aC9oZHAuYzoxODM2OjMwOiB3YXJuaW5n OiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgcmVwbHkgPSBnX2RidXNf Y3JlYXRlX2Vycm9yKGRhdGEtPm1zZywgRVJST1JfSU5URVJGQUNFICIuSGVhbHRoRXJyb3IiLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn4KNCB3YXJuaW5ncyBn ZW5lcmF0ZWQuCnByb2ZpbGVzL2hlYWx0aC9oZHBfdXRpbC5jOjEwNTM6Mjogd2FybmluZzogVXNl IG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGNvbm5fZGF0YS0+ZnVuYyhjb25u X2RhdGEtPmRhdGEsIGdlcnIpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2Vu ZXJhdGVkLgpwcm9maWxlcy9taWRpL21pZGkuYzo2MTo3NTogZXJyb3I6IGZ1bmN0aW9uIGRlZmlu aXRpb24gaXMgbm90IGFsbG93ZWQgaGVyZQogICAgICAgIHZvaWQgZm9yZWFjaF9jYihjb25zdCBz dHJ1Y3QgbWlkaV93cml0ZV9wYXJzZXIgKnBhcnNlciwgdm9pZCAqdXNlcl9kYXRhKSB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KcHJvZmlsZXMvbWlkaS9taWRpLmM6Nzg6NDA6IGVycm9yOiB1 c2Ugb2YgdW5kZWNsYXJlZCBpZGVudGlmaWVyICdmb3JlYWNoX2NiJwogICAgICAgICAgICAgICAg bWlkaV9yZWFkX2V2KCZtaWRpLT5taWRpX291dCwgZXZlbnQsIGZvcmVhY2hfY2IsIG1pZGkpOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KMiBl cnJvcnMgZ2VuZXJhdGVkLgphdHRyaWIvZ2F0dC5jOjk3MDoyOiB3YXJuaW5nOiBQb3RlbnRpYWwg bGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnbG9uZ193cml0ZScKICAgICAgICByZXR1cm4g cHJlcGFyZV93cml0ZShsb25nX3dyaXRlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpzcmMvc2RwZC1yZXF1ZXN0LmM6MjExOjEz OiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxvYycgaXMgY29udmVydGVkIHRvIGEgcG9pbnRlciBv ZiB0eXBlICdjaGFyJywgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJhbmQg dHlwZSAndWludDE2X3QnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcEVsZW0gPSBt YWxsb2Moc2l6ZW9mKHVpbnQxNl90KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBefn5+fn4gfn5+fn5+fn5+fn5+fn5+fgpzcmMvc2RwZC1yZXF1ZXN0LmM6MjM5OjEz OiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxvYycgaXMgY29udmVydGVkIHRvIGEgcG9pbnRlciBv ZiB0eXBlICdjaGFyJywgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJhbmQg dHlwZSAndWludDMyX3QnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcEVsZW0gPSBt YWxsb2Moc2l6ZW9mKHVpbnQzMl90KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBefn5+fn4gfn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3Jj L3NkcC14bWwuYzoxMjY6MTA6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3Ig dW5kZWZpbmVkCiAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgICAg ICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+CnNyYy9zZHAteG1sLmM6MzAwOjExOiB3YXJuaW5n OiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAg ICAgICAgICBidWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4gfn5+fn5+fn5+fn4Kc3JjL3NkcC14bWwuYzozMzg6MTE6IHdhcm5pbmc6IEFzc2lnbmVk IHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1 ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+ fn5+fn5+fgozIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NkcC1jbGllbnQuYzozNTM6MTQ6IHdh cm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnY2InIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBh IG51bGwgcG9pbnRlcgogICAgICAgICgqY3R4dCktPmNiID0gY2I7CiAgICAgICAgfn5+fn5+fn5+ fn5+Xn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpzcmMvZ2F0dC1kYXRhYmFzZS5jOjExMzg6MTA6 IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnYml0cycgZHVyaW5nIGl0cyBpbml0aWFsaXphdGlv biBpcyBuZXZlciByZWFkCiAgICAgICAgdWludDhfdCBiaXRzW10gPSB7IEJUX0dBVFRfQ0hSQ19D TElfRkVBVF9ST0JVU1RfQ0FDSElORywKICAgICAgICAgICAgICAgIF5+fn4gICAgIH5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpzcmMv YWR2ZXJ0aXNpbmcuYzo4OTg6Mjogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAybmQg cGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICBtZW1jcHkoY3AtPmRhdGEgKyBh ZHZfZGF0YV9sZW4sIHNjYW5fcnNwLCBzY2FuX3JzcF9sZW4pOwogICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdl bmVyYXRlZC4KZ29iZXgvZ29iZXgtaGVhZGVyLmM6Njc6Mjogd2FybmluZzogTnVsbCBwb2ludGVy IHBhc3NlZCB0byAybmQgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICBtZW1j cHkodG8sIGZyb20sIGNvdW50KTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdh cm5pbmcgZ2VuZXJhdGVkLgpnb2JleC9nb2JleC10cmFuc2Zlci5jOjQyMzo3OiB3YXJuaW5nOiBV c2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgaWYgKCFnX3NsaXN0X2ZpbmQo dHJhbnNmZXJzLCB0cmFuc2ZlcikpCiAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KY2xpZW50L3BsYXllci5jOiBJbiBmdW5j dGlvbiDigJhnZXRfY2lkX3ZpZOKAmToKY2xpZW50L3BsYXllci5jOjE5OTQ6NDI6IGVycm9yOiBj b21wYXJpc29uIG9mIGludGVnZXIgZXhwcmVzc2lvbnMgb2YgZGlmZmVyZW50IHNpZ25lZG5lc3M6 IOKAmGludOKAmSBhbmQg4oCYdW5zaWduZWQgaW504oCZIFstV2Vycm9yPXNpZ24tY29tcGFyZV0K IDE5OTQgfCAgaWYgKCFlbmRwdHIgfHwgKmVuZHB0ciAhPSAnXDAnIHx8IHZhbHVlID4gVUlOVDMy X01BWCkgewogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgpjbGllbnQvcGxheWVyLmM6IEF0IHRvcCBsZXZlbDoKY2xpZW50L3BsYXllci5jOjIwNzU6Njog ZXJyb3I6IG5vIHByZXZpb3VzIGRlY2xhcmF0aW9uIGZvciDigJhlbmRwb2ludF9zZXRfcGFyYW1l dGVyc+KAmSBbLVdlcnJvcj1taXNzaW5nLWRlY2xhcmF0aW9uc10KIDIwNzUgfCB2b2lkIGVuZHBv aW50X3NldF9wYXJhbWV0ZXJzKHN0cnVjdCBlbmRwb2ludCAqZXApCiAgICAgIHwgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVy cm9ycwptYWtlWzFdOiAqKiogW01ha2VmaWxlOjc1NDU6IGNsaWVudC9wbGF5ZXIub10gRXJyb3Ig MQptYWtlWzFdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtlOiAqKiog W01ha2VmaWxlOjQ0ODI6IGFsbF0gRXJyb3IgMgoKCi0tLQpSZWdhcmRzLApMaW51eCBCbHVldG9v dGgKCg== --===============0309115705573760085==--