Received: by 2002:ab2:6816:0:b0:1f9:5764:f03e with SMTP id t22csp2605631lqo; Mon, 20 May 2024 10:31:12 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWEIEqGkk9rDVuSkNj528h4J40tDdfR5FHAdIFZDZYDMmfoI2wsUd4/LOu5vyhzJg4mbdQAXBcMZ2gqG0ijjDVf2SWiJByzQB/qFcUvsQ== X-Google-Smtp-Source: AGHT+IFjsXcTCzKpTw54mQzP/WeO2UWcQ9GCNNB8aZ7U2pWxTOHfk2250nKeGLFA+HMyAhm7dkHv X-Received: by 2002:a17:906:75a:b0:a5a:15f6:157f with SMTP id a640c23a62f3a-a5a2d54c7fdmr1844646166b.14.1716226272126; Mon, 20 May 2024 10:31:12 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1716226272; cv=pass; d=google.com; s=arc-20160816; b=Wz96iGa1im9Ch3a0bKlJHkO5J8aQEyb0NC0rII7CufF4Yi981tcASp680yDmfX0iPg +dxprXyLTbukLpPp1HyinoL+JjhM1hCZdZvcvcdgzxS+bM3vDNcyE270dsDSNWYXKnXt DM5OYFUZ/3akunT4kNRvCcW62+W4+jIUh4sfsT+QQ9dqSBecBIW7e0X6YEeZ5/xZPBU1 txYXMSmIbBTtpgdAtlYEGY0nANnqcQChBkpVnkrSlArbr2lquEtVuePDVV7nixMAg76q vNKOpb3AA+rW7B3QZyzwMJza8naZ345ui5bngKeFE5OT9z6tsvAFBee7hxtkoFFd7YAT 6pyw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=reply-to:references:in-reply-to:subject:to:from:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:date:message-id :dkim-signature; bh=/mceuhawPWy2dgAAzPz/2AFxsmsvJADbEE1W/T96uf4=; fh=ZW+214j3OunD6HG9TuvYqsXtO0zRpUGCsehnqGKvGpY=; b=umFbkyiZr1V3mCJfcIxXvE+njY1Yu4xxIR12v8GBq9Yr7xEHmfFWrMQ3lMgy0dvhn/ DukKDX6DtUNHoYNotDuZPYtpOkuR03ziLoqIYX9Hd5Gcqb99AJE5wERr/PR9LzKgX8DI DLuxSuhi2Vt0gzrdO/TIxMuDFfpsxBOzaiSvYltFQJfI2qRriXjq/YCN56FLm0vze8PY lTpkzxqCUzQC7t3VQYpfEGFb4gLjCB3jW5t4wew+h+DFLKr8AAy9UcoKzAsT5X0Q1RxF RBsH8vsPltyZqWPKiGpRL8vBiOahj6aArJrSKYVZD7OjwBXuFVJHbrhxGEBlXqWObe/x evmw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=WLsD1YPL; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-bluetooth+bounces-4813-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-bluetooth+bounces-4813-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id a640c23a62f3a-a5a17bfd493si1353983566b.860.2024.05.20.10.31.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 May 2024 10:31:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth+bounces-4813-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=WLsD1YPL; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-bluetooth+bounces-4813-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-bluetooth+bounces-4813-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 860451F22369 for ; Mon, 20 May 2024 17:31:11 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7176F1386D6; Mon, 20 May 2024 17:28:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="WLsD1YPL" X-Original-To: linux-bluetooth@vger.kernel.org Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) (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 552F11E878 for ; Mon, 20 May 2024 17:28:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.174 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716226084; cv=none; b=H2ESBU4ZkCqnitxSOHKnVn2bbGjmQcnzG4r0zV6A5W02ZHrIj9Cxa0UxUPlWVE2seuC3dZl35CO7Qy3HlrgLh2SJN6ygIZ/50boO9kYqstzCDDAzt5Ehw/UlCuCEx+ADK0WTOwEkCO+OZt13SKQK0kve5CD+O4IF8vrn5CON+/Y= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716226084; c=relaxed/simple; bh=/mceuhawPWy2dgAAzPz/2AFxsmsvJADbEE1W/T96uf4=; h=Message-ID:Date:Content-Type:MIME-Version:From:To:Subject: In-Reply-To:References; b=h9Xkl808dH6rQKsjLF5yGOUlNCrvoGgDE1oxF91U/BZ0SZ7RcLtjqhPGvwBCuWxxQeVOXjyF4K50j17jKCyQFmgCfoDJIWsgtypvErpivlNDqGEBX7yp3jASP5V7Y4JVpefRMhPequlXx0mIQw6MrIgP6id0rIm0xeQDmlr2g/I= 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=WLsD1YPL; arc=none smtp.client-ip=209.85.160.174 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 Received: by mail-qt1-f174.google.com with SMTP id d75a77b69052e-43df44ef3e3so17118021cf.2 for ; Mon, 20 May 2024 10:28:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716226081; x=1716830881; darn=vger.kernel.org; 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=/mceuhawPWy2dgAAzPz/2AFxsmsvJADbEE1W/T96uf4=; b=WLsD1YPLBpcSOoECLvkxbVmYv+NywqBblRP+J4f2Du6wEEBbTYIkeRovtJezgHRNZd 2z568IObpv7ntGRnh/Y8OXmrx/6vMHPfC2z5KMWaW5CBkNn6piiesGQZ6dNHLy1wIgNY 0X2bKpCsv6Q9pKNZjwB2wK4RNYYps6KDygW1Y5gc8P9ND88qzlJ70BluqqdwZ3UBYl66 xNAZfGFEn7BIQxlU3G2UtjkDuYCh3+7KK3cHS0QFvYNNdDMTVRSTE54s+k74U1pCJ2Hp li9Ag0WL5mlblTpfSGcFQpjkLzQeQF9PoEnU2otQ6ypleQRD4jknNwU5+QaAId5DbocC pWxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716226081; x=1716830881; 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=/mceuhawPWy2dgAAzPz/2AFxsmsvJADbEE1W/T96uf4=; b=bv4+urFt9ggJJX/LbzWEh1MP3gwEq5CHOoCEtNeLvYqTfYZp6tR6oiJtI0XLgd5nwo MnQWOiKbHv5WTy5u3hnVlnh23KjBHIHyU+2swFPYwqfhaqPqOqeII/4Mqkh6DOH0Iwo1 IVPWXKE1pCkqx//9uK6bNhfOVpllBcEeVAF3hx+xGlMXbsxFmMKNGtKU6XoUJAhalv62 7LhindXcptRpuKQaGeLjCpeH/X6GAa6D7oyfkmws0bZeetQSD8FoquqQZrrzKuE1Oe1J xkwvVGxKnSArlbX2wAKwphGEKSQAaxTqU3/oS5pKisyKBii/PovxpdgGdUZmy6R/YX1B ZgIw== X-Gm-Message-State: AOJu0YznLNn5/goDwfz3A7IB5TSRyv91AluEqvQoAh2wkW+hl3CF30IT 3BCk2M0wbsl9JFN2U4zOP9u4VDx7qxwWT7BbYGHPMyA2Dtv3TE8N5BpSdg== X-Received: by 2002:a05:6214:5713:b0:6aa:4784:6b41 with SMTP id 6a1803df08f44-6aa478471acmr46505016d6.52.1716226080277; Mon, 20 May 2024 10:28:00 -0700 (PDT) Received: from [172.17.0.2] ([20.81.159.52]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6a15f1d6f25sm113629796d6.108.2024.05.20.10.27.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 May 2024 10:27:59 -0700 (PDT) Message-ID: <664b881f.050a0220.f42f3.51d4@mx.google.com> Date: Mon, 20 May 2024 10:27:59 -0700 (PDT) Content-Type: multipart/mixed; boundary="===============3306894173046624206==" 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, luiz.dentz@gmail.com Subject: RE: [BlueZ,v1,1/3] device: Add btd_device_get_icon In-Reply-To: <20240520154703.1219758-1-luiz.dentz@gmail.com> References: <20240520154703.1219758-1-luiz.dentz@gmail.com> Reply-To: linux-bluetooth@vger.kernel.org --===============3306894173046624206== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhdXRvbWF0ZWQgZW1haWwgYW5kIHBsZWFzZSBkbyBub3QgcmVwbHkgdG8gdGhpcyBl bWFpbCEKCkRlYXIgc3VibWl0dGVyLAoKVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRj aGVzIHRvIHRoZSBsaW51eCBibHVldG9vdGggbWFpbGluZyBsaXN0LgpUaGlzIGlzIGEgQ0kgdGVz dCByZXN1bHRzIHdpdGggeW91ciBwYXRjaCBzZXJpZXM6ClBXIExpbms6aHR0cHM6Ly9wYXRjaHdv cmsua2VybmVsLm9yZy9wcm9qZWN0L2JsdWV0b290aC9saXN0Lz9zZXJpZXM9ODU0NDQzCgotLS1U ZXN0IHJlc3VsdC0tLQoKVGVzdCBTdW1tYXJ5OgpDaGVja1BhdGNoICAgICAgICAgICAgICAgICAg ICBQQVNTICAgICAgMS41NiBzZWNvbmRzCkdpdExpbnQgICAgICAgICAgICAgICAgICAgICAgIFBB U1MgICAgICAwLjk4IHNlY29uZHMKQnVpbGRFbGwgICAgICAgICAgICAgICAgICAgICAgUEFTUyAg ICAgIDI0LjU5IHNlY29uZHMKQmx1ZXpNYWtlICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAg IDU3LjI1IHNlY29uZHMKTWFrZUNoZWNrICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAgIDE2 Ny4xMiBzZWNvbmRzCk1ha2VEaXN0Y2hlY2sgICAgICAgICAgICAgICAgIEZBSUwgICAgICA0Ny42 NCBzZWNvbmRzCkNoZWNrVmFsZ3JpbmQgICAgICAgICAgICAgICAgIEZBSUwgICAgICA0NS40NCBz ZWNvbmRzCkNoZWNrU21hdGNoICAgICAgICAgICAgICAgICAgIEZBSUwgICAgICA5Ni42MSBzZWNv bmRzCmJsdWV6bWFrZWV4dGVsbCAgICAgICAgICAgICAgIEZBSUwgICAgICAyOS4xMCBzZWNvbmRz CkluY3JlbWVudGFsQnVpbGQgICAgICAgICAgICAgIEZBSUwgICAgICAzMDQ4LjkyIHNlY29uZHMK U2NhbkJ1aWxkICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAgIDYzNi43MiBzZWNvbmRzCgpE ZXRhaWxzCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBCbHVlek1ha2UgLSBG QUlMCkRlc2M6IEJ1aWxkIEJsdWVaCk91dHB1dDoKCnRvb2xzL21nbXQtdGVzdGVyLmM6IEluIGZ1 bmN0aW9uIOKAmG1haW7igJk6CnRvb2xzL21nbXQtdGVzdGVyLmM6MTI3MjU6NTogbm90ZTogdmFy aWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFyLXRyYWNraW5n LWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CjEyNzI1IHwgaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgphbmRyb2lkL2hpZGhvc3QuYzogSW4g ZnVuY3Rpb24g4oCYaG9nX2Nvbm5fY2LigJk6CmFuZHJvaWQvaGlkaG9zdC5jOjc5OTo0OiBlcnJv cjogdG9vIGZldyBhcmd1bWVudHMgdG8gZnVuY3Rpb24g4oCYYnRfaG9nX2RldGFjaOKAmQogIDc5 OSB8ICAgIGJ0X2hvZ19kZXRhY2goZGV2LT5ob2cpOwogICAgICB8ICAgIF5+fn5+fn5+fn5+fn4K SW4gZmlsZSBpbmNsdWRlZCBmcm9tIGFuZHJvaWQvaGlkaG9zdC5jOjM4OgouL3Byb2ZpbGVzL2lu cHV0L2hvZy1saWIuaDoyNTo2OiBub3RlOiBkZWNsYXJlZCBoZXJlCiAgIDI1IHwgdm9pZCBidF9o b2dfZGV0YWNoKHN0cnVjdCBidF9ob2cgKmhvZywgYm9vbCBmb3JjZSk7CiAgICAgIHwgICAgICBe fn5+fn5+fn5+fn5+CmFuZHJvaWQvaGlkaG9zdC5jOjgxMTozNDogZXJyb3I6IHBhc3NpbmcgYXJn dW1lbnQgNSBvZiDigJhidF9ob2dfbmV3X2RlZmF1bHTigJkgbWFrZXMgaW50ZWdlciBmcm9tIHBv aW50ZXIgd2l0aG91dCBhIGNhc3QgWy1XZXJyb3I9aW50LWNvbnZlcnNpb25dCiAgODExIHwgICAg ICBkZXYtPnByb2R1Y3QsIGRldi0+dmVyc2lvbiwgTlVMTCk7CiAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXn5+fgogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lk ICoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGFuZHJvaWQvaGlkaG9zdC5jOjM4OgouL3Byb2ZpbGVz L2lucHV0L2hvZy1saWIuaDoxMzoxNjogbm90ZTogZXhwZWN0ZWQg4oCYdWludDhfdOKAmSB7YWth IOKAmHVuc2lnbmVkIGNoYXLigJl9IGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBlIOKAmHZvaWQgKuKA mQogICAxMyB8IHN0cnVjdCBidF9ob2cgKmJ0X2hvZ19uZXdfZGVmYXVsdChjb25zdCBjaGFyICpu YW1lLCB1aW50MTZfdCB2ZW5kb3IsCiAgICAgIHwgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+CmFuZHJvaWQvaGlkaG9zdC5jOjgxMDoxNDogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRz IHRvIGZ1bmN0aW9uIOKAmGJ0X2hvZ19uZXdfZGVmYXVsdOKAmQogIDgxMCB8ICAgZGV2LT5ob2cg PSBidF9ob2dfbmV3X2RlZmF1bHQoImJsdWV6LWlucHV0LWRldmljZSIsIGRldi0+dmVuZG9yLAog ICAgICB8ICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4KSW4gZmlsZSBpbmNsdWRlZCBm cm9tIGFuZHJvaWQvaGlkaG9zdC5jOjM4OgouL3Byb2ZpbGVzL2lucHV0L2hvZy1saWIuaDoxMzox Njogbm90ZTogZGVjbGFyZWQgaGVyZQogICAxMyB8IHN0cnVjdCBidF9ob2cgKmJ0X2hvZ19uZXdf ZGVmYXVsdChjb25zdCBjaGFyICpuYW1lLCB1aW50MTZfdCB2ZW5kb3IsCiAgICAgIHwgICAgICAg ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0 ZWQgYXMgZXJyb3JzCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6NzgwOTogYW5kcm9pZC9oaWRob3N0 Lm9dIEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4K bWFrZTogKioqIFtNYWtlZmlsZTo0NjUxOiBhbGxdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjClRlc3Q6IE1ha2VDaGVjayAtIEZBSUwKRGVzYzogUnVuIEJsdWV6IE1ha2Ug Q2hlY2sKT3V0cHV0OgoKYW5kcm9pZC9oaWRob3N0LmM6IEluIGZ1bmN0aW9uIOKAmGhvZ19jb25u X2Ni4oCZOgphbmRyb2lkL2hpZGhvc3QuYzo3OTk6NDogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRz IHRvIGZ1bmN0aW9uIOKAmGJ0X2hvZ19kZXRhY2jigJkKICA3OTkgfCAgICBidF9ob2dfZGV0YWNo KGRldi0+aG9nKTsKICAgICAgfCAgICBefn5+fn5+fn5+fn5+CkluIGZpbGUgaW5jbHVkZWQgZnJv bSBhbmRyb2lkL2hpZGhvc3QuYzozODoKLi9wcm9maWxlcy9pbnB1dC9ob2ctbGliLmg6MjU6Njog bm90ZTogZGVjbGFyZWQgaGVyZQogICAyNSB8IHZvaWQgYnRfaG9nX2RldGFjaChzdHJ1Y3QgYnRf aG9nICpob2csIGJvb2wgZm9yY2UpOwogICAgICB8ICAgICAgXn5+fn5+fn5+fn5+fgphbmRyb2lk L2hpZGhvc3QuYzo4MTE6MzQ6IGVycm9yOiBwYXNzaW5nIGFyZ3VtZW50IDUgb2Yg4oCYYnRfaG9n X25ld19kZWZhdWx04oCZIG1ha2VzIGludGVnZXIgZnJvbSBwb2ludGVyIHdpdGhvdXQgYSBjYXN0 IFstV2Vycm9yPWludC1jb252ZXJzaW9uXQogIDgxMSB8ICAgICAgZGV2LT5wcm9kdWN0LCBkZXYt PnZlcnNpb24sIE5VTEwpOwogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF5+fn4KICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqCkluIGZpbGUgaW5jbHVkZWQg ZnJvbSBhbmRyb2lkL2hpZGhvc3QuYzozODoKLi9wcm9maWxlcy9pbnB1dC9ob2ctbGliLmg6MTM6 MTY6IG5vdGU6IGV4cGVjdGVkIOKAmHVpbnQ4X3TigJkge2FrYSDigJh1bnNpZ25lZCBjaGFy4oCZ fSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJh2b2lkICrigJkKICAgMTMgfCBzdHJ1Y3QgYnRf aG9nICpidF9ob2dfbmV3X2RlZmF1bHQoY29uc3QgY2hhciAqbmFtZSwgdWludDE2X3QgdmVuZG9y LAogICAgICB8ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fgphbmRyb2lkL2hpZGhv c3QuYzo4MTA6MTQ6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiDigJhidF9o b2dfbmV3X2RlZmF1bHTigJkKICA4MTAgfCAgIGRldi0+aG9nID0gYnRfaG9nX25ld19kZWZhdWx0 KCJibHVlei1pbnB1dC1kZXZpY2UiLCBkZXYtPnZlbmRvciwKICAgICAgfCAgICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBhbmRyb2lkL2hpZGhvc3Qu YzozODoKLi9wcm9maWxlcy9pbnB1dC9ob2ctbGliLmg6MTM6MTY6IG5vdGU6IGRlY2xhcmVkIGhl cmUKICAgMTMgfCBzdHJ1Y3QgYnRfaG9nICpidF9ob2dfbmV3X2RlZmF1bHQoY29uc3QgY2hhciAq bmFtZSwgdWludDE2X3QgdmVuZG9yLAogICAgICB8ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtlWzFd OiAqKiogW01ha2VmaWxlOjc4MDk6IGFuZHJvaWQvaGlkaG9zdC5vXSBFcnJvciAxCm1ha2U6ICoq KiBbTWFrZWZpbGU6MTIxODY6IGNoZWNrXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwpUZXN0OiBNYWtlRGlzdGNoZWNrIC0gRkFJTApEZXNjOiBSdW4gQmx1ZXogTWFrZSBE aXN0Y2hlY2sKT3V0cHV0OgoKUGFja2FnZSBjdXBzIHdhcyBub3QgZm91bmQgaW4gdGhlIHBrZy1j b25maWcgc2VhcmNoIHBhdGguClBlcmhhcHMgeW91IHNob3VsZCBhZGQgdGhlIGRpcmVjdG9yeSBj b250YWluaW5nIGBjdXBzLnBjJwp0byB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50IHZh cmlhYmxlCk5vIHBhY2thZ2UgJ2N1cHMnIGZvdW5kCi4uLy4uL2FuZHJvaWQvaGlkaG9zdC5jOiBJ biBmdW5jdGlvbiDigJhob2dfY29ubl9jYuKAmToKLi4vLi4vYW5kcm9pZC9oaWRob3N0LmM6Nzk5 OjQ6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0byBmdW5jdGlvbiDigJhidF9ob2dfZGV0YWNo 4oCZCiAgNzk5IHwgICAgYnRfaG9nX2RldGFjaChkZXYtPmhvZyk7CiAgICAgIHwgICAgXn5+fn5+ fn5+fn5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi4vLi4vYW5kcm9pZC9oaWRob3N0LmM6Mzg6 Ci4uLy4uL3Byb2ZpbGVzL2lucHV0L2hvZy1saWIuaDoyNTo2OiBub3RlOiBkZWNsYXJlZCBoZXJl CiAgIDI1IHwgdm9pZCBidF9ob2dfZGV0YWNoKHN0cnVjdCBidF9ob2cgKmhvZywgYm9vbCBmb3Jj ZSk7CiAgICAgIHwgICAgICBefn5+fn5+fn5+fn5+Ci4uLy4uL2FuZHJvaWQvaGlkaG9zdC5jOjgx MTozNDogd2FybmluZzogcGFzc2luZyBhcmd1bWVudCA1IG9mIOKAmGJ0X2hvZ19uZXdfZGVmYXVs dOKAmSBtYWtlcyBpbnRlZ2VyIGZyb20gcG9pbnRlciB3aXRob3V0IGEgY2FzdCBbLVdpbnQtY29u dmVyc2lvbl0KICA4MTEgfCAgICAgIGRldi0+cHJvZHVjdCwgZGV2LT52ZXJzaW9uLCBOVUxMKTsK ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+CiAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZvaWQgKgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gLi4vLi4vYW5kcm9p ZC9oaWRob3N0LmM6Mzg6Ci4uLy4uL3Byb2ZpbGVzL2lucHV0L2hvZy1saWIuaDoxMzoxNjogbm90 ZTogZXhwZWN0ZWQg4oCYdWludDhfdOKAmSB7YWthIOKAmHVuc2lnbmVkIGNoYXLigJl9IGJ1dCBh cmd1bWVudCBpcyBvZiB0eXBlIOKAmHZvaWQgKuKAmQogICAxMyB8IHN0cnVjdCBidF9ob2cgKmJ0 X2hvZ19uZXdfZGVmYXVsdChjb25zdCBjaGFyICpuYW1lLCB1aW50MTZfdCB2ZW5kb3IsCiAgICAg IHwgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+Ci4uLy4uL2FuZHJvaWQvaGlkaG9z dC5jOjgxMDoxNDogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIOKAmGJ0X2hv Z19uZXdfZGVmYXVsdOKAmQogIDgxMCB8ICAgZGV2LT5ob2cgPSBidF9ob2dfbmV3X2RlZmF1bHQo ImJsdWV6LWlucHV0LWRldmljZSIsIGRldi0+dmVuZG9yLAogICAgICB8ICAgICAgICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4uLy4uL2FuZHJvaWQvaGlk aG9zdC5jOjM4OgouLi8uLi9wcm9maWxlcy9pbnB1dC9ob2ctbGliLmg6MTM6MTY6IG5vdGU6IGRl Y2xhcmVkIGhlcmUKICAgMTMgfCBzdHJ1Y3QgYnRfaG9nICpidF9ob2dfbmV3X2RlZmF1bHQoY29u c3QgY2hhciAqbmFtZSwgdWludDE2X3QgdmVuZG9yLAogICAgICB8ICAgICAgICAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fgptYWtlWzJdOiAqKiogW01ha2VmaWxlOjc4MDk6IGFuZHJvaWQvaGlk aG9zdC5vXSBFcnJvciAxCm1ha2VbMl06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMu Li4uCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6NDY1MTogYWxsXSBFcnJvciAyCm1ha2U6ICoqKiBb TWFrZWZpbGU6MTIxMDc6IGRpc3RjaGVja10gRXJyb3IgMQojIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKVGVzdDogQ2hlY2tWYWxncmluZCAtIEZBSUwKRGVzYzogUnVuIEJsdWV6IE1ha2Ug Q2hlY2sgd2l0aCBWYWxncmluZApPdXRwdXQ6Cgp0b29scy9tZ210LXRlc3Rlci5jOiBJbiBmdW5j dGlvbiDigJhtYWlu4oCZOgp0b29scy9tZ210LXRlc3Rlci5jOjEyNzI1OjU6IG5vdGU6IHZhcmlh YmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2luZy1h c3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAoxMjcyNSB8IGludCBtYWluKGludCBhcmdj LCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4KYW5kcm9pZC9oaWRob3N0LmM6IEluIGZ1 bmN0aW9uIOKAmGhvZ19jb25uX2Ni4oCZOgphbmRyb2lkL2hpZGhvc3QuYzo3OTk6NDogZXJyb3I6 IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIOKAmGJ0X2hvZ19kZXRhY2jigJkKICA3OTkg fCAgICBidF9ob2dfZGV0YWNoKGRldi0+aG9nKTsKICAgICAgfCAgICBefn5+fn5+fn5+fn5+Cklu IGZpbGUgaW5jbHVkZWQgZnJvbSBhbmRyb2lkL2hpZGhvc3QuYzozODoKLi9wcm9maWxlcy9pbnB1 dC9ob2ctbGliLmg6MjU6Njogbm90ZTogZGVjbGFyZWQgaGVyZQogICAyNSB8IHZvaWQgYnRfaG9n X2RldGFjaChzdHJ1Y3QgYnRfaG9nICpob2csIGJvb2wgZm9yY2UpOwogICAgICB8ICAgICAgXn5+ fn5+fn5+fn5+fgphbmRyb2lkL2hpZGhvc3QuYzo4MTE6MzQ6IGVycm9yOiBwYXNzaW5nIGFyZ3Vt ZW50IDUgb2Yg4oCYYnRfaG9nX25ld19kZWZhdWx04oCZIG1ha2VzIGludGVnZXIgZnJvbSBwb2lu dGVyIHdpdGhvdXQgYSBjYXN0IFstV2Vycm9yPWludC1jb252ZXJzaW9uXQogIDgxMSB8ICAgICAg ZGV2LT5wcm9kdWN0LCBkZXYtPnZlcnNpb24sIE5VTEwpOwogICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF5+fn4KICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAq CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBhbmRyb2lkL2hpZGhvc3QuYzozODoKLi9wcm9maWxlcy9p bnB1dC9ob2ctbGliLmg6MTM6MTY6IG5vdGU6IGV4cGVjdGVkIOKAmHVpbnQ4X3TigJkge2FrYSDi gJh1bnNpZ25lZCBjaGFy4oCZfSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJh2b2lkICrigJkK ICAgMTMgfCBzdHJ1Y3QgYnRfaG9nICpidF9ob2dfbmV3X2RlZmF1bHQoY29uc3QgY2hhciAqbmFt ZSwgdWludDE2X3QgdmVuZG9yLAogICAgICB8ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fgphbmRyb2lkL2hpZGhvc3QuYzo4MTA6MTQ6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0 byBmdW5jdGlvbiDigJhidF9ob2dfbmV3X2RlZmF1bHTigJkKICA4MTAgfCAgIGRldi0+aG9nID0g YnRfaG9nX25ld19kZWZhdWx0KCJibHVlei1pbnB1dC1kZXZpY2UiLCBkZXYtPnZlbmRvciwKICAg ICAgfCAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CkluIGZpbGUgaW5jbHVkZWQgZnJv bSBhbmRyb2lkL2hpZGhvc3QuYzozODoKLi9wcm9maWxlcy9pbnB1dC9ob2ctbGliLmg6MTM6MTY6 IG5vdGU6IGRlY2xhcmVkIGhlcmUKICAgMTMgfCBzdHJ1Y3QgYnRfaG9nICpidF9ob2dfbmV3X2Rl ZmF1bHQoY29uc3QgY2hhciAqbmFtZSwgdWludDE2X3QgdmVuZG9yLAogICAgICB8ICAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVk IGFzIGVycm9ycwptYWtlWzFdOiAqKiogW01ha2VmaWxlOjc4MDk6IGFuZHJvaWQvaGlkaG9zdC5v XSBFcnJvciAxCm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1h a2U6ICoqKiBbTWFrZWZpbGU6MTIxODY6IGNoZWNrXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwpUZXN0OiBDaGVja1NtYXRjaCAtIEZBSUwKRGVzYzogUnVuIHNtYXRjaCB0 b29sIHdpdGggc291cmNlCk91dHB1dDoKCnNyYy9zaGFyZWQvY3J5cHRvLmM6MjcxOjIxOiB3YXJu aW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9jcnlwdG8uYzoy NzI6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVk L2dhdHQtaGVscGVycy5jOjc2ODozMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlz IHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6ODMwOjMxOiB3YXJuaW5nOiBWYXJpYWJs ZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzIzOjMx OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0 LWhlbHBlcnMuYzoxMzU0OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNl ZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjI3ODoyNTogd2FybmluZzogVmFyaWFibGUgbGVu Z3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzo2MjE6MjU6IHdhcm5p bmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVy LmM6NzIwOjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3No YXJlZC9iYXAuYzoyODY6MjU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMK c3JjL3NoYXJlZC9iYXAuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9zcmMvc2hhcmVkL2Fz Y3MuaDo4ODoyNTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwpzcmMvc2hh cmVkL3NoZWxsLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRl L3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5o OjM1OjIzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlv biAnRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdh cm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rp b24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5v bi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNy L2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBm dW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCnNyYy9zaGFyZWQv Y3J5cHRvLmM6MjcxOjIxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4K c3JjL3NoYXJlZC9jcnlwdG8uYzoyNzI6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJh eSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjc2ODozMTogd2FybmluZzogVmFy aWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6ODMw OjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9n YXR0LWhlbHBlcnMuYzoxMzIzOjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMg dXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzU0OjIzOiB3YXJuaW5nOiBWYXJpYWJs ZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjI3ODoyNTog d2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1z ZXJ2ZXIuYzo2MjE6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpz cmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6NzIwOjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGgg YXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9iYXAuYzoyODY6MjU6IHdhcm5pbmc6IGFycmF5IG9m IGZsZXhpYmxlIHN0cnVjdHVyZXMKc3JjL3NoYXJlZC9iYXAuYzogbm90ZTogaW4gaW5jbHVkZWQg ZmlsZToKLi9zcmMvc2hhcmVkL2FzY3MuaDo4ODoyNTogd2FybmluZzogYXJyYXkgb2YgZmxleGli bGUgc3RydWN0dXJlcwpzcmMvc2hhcmVkL3NoZWxsLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUg KHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUv cmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBk ZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9y bHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9u IG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZz Lmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0 aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5 OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQ RnVuY3Rpb24nCnRvb2xzL21lc2gtY2ZndGVzdC5jOjE0NTM6MTc6IHdhcm5pbmc6IHVua25vd24g ZXNjYXBlIHNlcXVlbmNlOiAnXCUnCnRvb2xzL3Njby10ZXN0ZXIuYzogbm90ZTogaW4gaW5jbHVk ZWQgZmlsZToKLi9saWIvYmx1ZXRvb3RoLmg6MjE5OjE1OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4 aWJsZSBzdHJ1Y3R1cmVzCi4vbGliL2JsdWV0b290aC5oOjIyNDozMTogd2FybmluZzogYXJyYXkg b2YgZmxleGlibGUgc3RydWN0dXJlcwp0b29scy9ibmVwdGVzdC5jOjYzNDozOTogd2FybmluZzog dW5rbm93biBlc2NhcGUgc2VxdWVuY2U6ICdcJScKdG9vbHMvc2VxMmJzZXEuYzo1NzoyNjogd2Fy bmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnRvb2xzL29iZXgtY2xpZW50LXRv b2wuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZSAodGhyb3VnaCAvdXNyL2luY2x1ZGUvcmVhZGxp bmUvcmVhZGxpbmUuaCk6Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzU6MjM6 IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdGdW5j dGlvbicKL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNjoyNTogd2FybmluZzog bm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ1ZGdW5jdGlvbicKL3Vz ci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNzoyNzogd2FybmluZzogbm9uLUFOU0kg ZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQRnVuY3Rpb24nCi91c3IvaW5jbHVk ZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzg6Mjk6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9u IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUFBGdW5jdGlvbicKdW5pdC90ZXN0LXVoaWQuYzog SW4gZnVuY3Rpb24g4oCYdGVzdF9jbGllbnTigJk6CnVuaXQvdGVzdC11aGlkLmM6MjM0OjY2OiBl cnJvcjogcGFzc2luZyBhcmd1bWVudCA5IG9mIOKAmGJ0X3VoaWRfY3JlYXRl4oCZIG1ha2VzIGlu dGVnZXIgZnJvbSBwb2ludGVyIHdpdGhvdXQgYSBjYXN0IFstV2Vycm9yPWludC1jb252ZXJzaW9u XQogIDIzNCB8ICBlcnIgPSBidF91aGlkX2NyZWF0ZShjb250ZXh0LT51aGlkLCAiIiwgTlVMTCwg TlVMTCwgMCwgMCwgMCwgMCwgTlVMTCwKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn4KICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gdW5pdC90 ZXN0LXVoaWQuYzoyNToKLi9zcmMvc2hhcmVkL3VoaWQuaDo2MDo0ODogbm90ZTogZXhwZWN0ZWQg 4oCYdWludDhfdOKAmSB7YWthIOKAmHVuc2lnbmVkIGNoYXLigJl9IGJ1dCBhcmd1bWVudCBpcyBv ZiB0eXBlIOKAmHZvaWQgKuKAmQogICA2MCB8ICAgIHVpbnQzMl90IHZlcnNpb24sIHVpbnQzMl90 IGNvdW50cnksIHVpbnQ4X3QgdHlwZSwKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB+fn5+fn5+fl5+fn4KdW5pdC90ZXN0LXVoaWQuYzoyMzQ6ODogZXJyb3I6 IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIOKAmGJ0X3VoaWRfY3JlYXRl4oCZCiAgMjM0 IHwgIGVyciA9IGJ0X3VoaWRfY3JlYXRlKGNvbnRleHQtPnVoaWQsICIiLCBOVUxMLCBOVUxMLCAw LCAwLCAwLCAwLCBOVUxMLAogICAgICB8ICAgICAgICBefn5+fn5+fn5+fn5+fgpJbiBmaWxlIGlu Y2x1ZGVkIGZyb20gdW5pdC90ZXN0LXVoaWQuYzoyNToKLi9zcmMvc2hhcmVkL3VoaWQuaDo1ODo1 OiBub3RlOiBkZWNsYXJlZCBoZXJlCiAgIDU4IHwgaW50IGJ0X3VoaWRfY3JlYXRlKHN0cnVjdCBi dF91aGlkICp1aGlkLCBjb25zdCBjaGFyICpuYW1lLCBiZGFkZHJfdCAqc3JjLAogICAgICB8ICAg ICBefn5+fn5+fn5+fn5+fgp1bml0L3Rlc3QtdWhpZC5jOjI0MDo5OiBlcnJvcjogdG9vIGZldyBh cmd1bWVudHMgdG8gZnVuY3Rpb24g4oCYYnRfdWhpZF9kZXN0cm954oCZCiAgMjQwIHwgICBlcnIg PSBidF91aGlkX2Rlc3Ryb3koY29udGV4dC0+dWhpZCk7CiAgICAgIHwgICAgICAgICBefn5+fn5+ fn5+fn5+fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHVuaXQvdGVzdC11aGlkLmM6MjU6Ci4vc3Jj L3NoYXJlZC91aGlkLmg6Njk6NTogbm90ZTogZGVjbGFyZWQgaGVyZQogICA2OSB8IGludCBidF91 aGlkX2Rlc3Ryb3koc3RydWN0IGJ0X3VoaWQgKnVoaWQsIGJvb2wgZm9yY2UpOwogICAgICB8ICAg ICBefn5+fn5+fn5+fn5+fn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJv cnMKbWFrZVsxXTogKioqIFtNYWtlZmlsZTo3ODA5OiB1bml0L3Rlc3QtdWhpZC5vXSBFcnJvciAx Cm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2U6ICoqKiBb TWFrZWZpbGU6NDY1MTogYWxsXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IwpUZXN0OiBibHVlem1ha2VleHRlbGwgLSBGQUlMCkRlc2M6IEJ1aWxkIEJsdWV6IHdpdGggRXh0 ZXJuYWwgRUxMCk91dHB1dDoKCnVuaXQvdGVzdC11aGlkLmM6IEluIGZ1bmN0aW9uIOKAmHRlc3Rf Y2xpZW504oCZOgp1bml0L3Rlc3QtdWhpZC5jOjIzNDo2NjogZXJyb3I6IHBhc3NpbmcgYXJndW1l bnQgOSBvZiDigJhidF91aGlkX2NyZWF0ZeKAmSBtYWtlcyBpbnRlZ2VyIGZyb20gcG9pbnRlciB3 aXRob3V0IGEgY2FzdCBbLVdlcnJvcj1pbnQtY29udmVyc2lvbl0KICAyMzQgfCAgZXJyID0gYnRf dWhpZF9jcmVhdGUoY29udGV4dC0+dWhpZCwgIiIsIE5VTEwsIE5VTEwsIDAsIDAsIDAsIDAsIE5V TEwsCiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBefn5+CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2b2lkICoKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHVuaXQvdGVzdC11aGlkLmM6MjU6Ci4vc3Jj L3NoYXJlZC91aGlkLmg6NjA6NDg6IG5vdGU6IGV4cGVjdGVkIOKAmHVpbnQ4X3TigJkge2FrYSDi gJh1bnNpZ25lZCBjaGFy4oCZfSBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSDigJh2b2lkICrigJkK ICAgNjAgfCAgICB1aW50MzJfdCB2ZXJzaW9uLCB1aW50MzJfdCBjb3VudHJ5LCB1aW50OF90IHR5 cGUsCiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+ fn5efn5+CnVuaXQvdGVzdC11aGlkLmM6MjM0Ojg6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0 byBmdW5jdGlvbiDigJhidF91aGlkX2NyZWF0ZeKAmQogIDIzNCB8ICBlcnIgPSBidF91aGlkX2Ny ZWF0ZShjb250ZXh0LT51aGlkLCAiIiwgTlVMTCwgTlVMTCwgMCwgMCwgMCwgMCwgTlVMTCwKICAg ICAgfCAgICAgICAgXn5+fn5+fn5+fn5+fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHVuaXQvdGVz dC11aGlkLmM6MjU6Ci4vc3JjL3NoYXJlZC91aGlkLmg6NTg6NTogbm90ZTogZGVjbGFyZWQgaGVy ZQogICA1OCB8IGludCBidF91aGlkX2NyZWF0ZShzdHJ1Y3QgYnRfdWhpZCAqdWhpZCwgY29uc3Qg Y2hhciAqbmFtZSwgYmRhZGRyX3QgKnNyYywKICAgICAgfCAgICAgXn5+fn5+fn5+fn5+fn4KdW5p dC90ZXN0LXVoaWQuYzoyNDA6OTogZXJyb3I6IHRvbyBmZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9u IOKAmGJ0X3VoaWRfZGVzdHJveeKAmQogIDI0MCB8ICAgZXJyID0gYnRfdWhpZF9kZXN0cm95KGNv bnRleHQtPnVoaWQpOwogICAgICB8ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+CkluIGZpbGUgaW5j bHVkZWQgZnJvbSB1bml0L3Rlc3QtdWhpZC5jOjI1OgouL3NyYy9zaGFyZWQvdWhpZC5oOjY5OjU6 IG5vdGU6IGRlY2xhcmVkIGhlcmUKICAgNjkgfCBpbnQgYnRfdWhpZF9kZXN0cm95KHN0cnVjdCBi dF91aGlkICp1aGlkLCBib29sIGZvcmNlKTsKICAgICAgfCAgICAgXn5+fn5+fn5+fn5+fn5+CmNj MTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2VbMV06ICoqKiBbTWFr ZWZpbGU6NzgwOTogdW5pdC90ZXN0LXVoaWQub10gRXJyb3IgMQptYWtlWzFdOiAqKiogV2FpdGlu ZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtlOiAqKiogW01ha2VmaWxlOjQ2NTE6IGFsbF0g RXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogSW5jcmVtZW50YWxC dWlsZCAtIEZBSUwKRGVzYzogSW5jcmVtZW50YWwgYnVpbGQgd2l0aCB0aGUgcGF0Y2hlcyBpbiB0 aGUgc2VyaWVzCk91dHB1dDoKW0JsdWVaLHYxLDMvM10gc2hhcmVkL3VoaWQ6IEFkZCBzcGVjaWFs IGhhbmRsaW5nIGZvciBub24ta2V5Ym9hcmRzCgp0b29scy9tZ210LXRlc3Rlci5jOiBJbiBmdW5j dGlvbiDigJhtYWlu4oCZOgp0b29scy9tZ210LXRlc3Rlci5jOjEyNzI1OjU6IG5vdGU6IHZhcmlh YmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2luZy1h c3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAoxMjcyNSB8IGludCBtYWluKGludCBhcmdj LCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4KdW5pdC90ZXN0LXVoaWQuYzogSW4gZnVu Y3Rpb24g4oCYdGVzdF9jbGllbnTigJk6CnVuaXQvdGVzdC11aGlkLmM6MjM0OjY2OiBlcnJvcjog cGFzc2luZyBhcmd1bWVudCA5IG9mIOKAmGJ0X3VoaWRfY3JlYXRl4oCZIG1ha2VzIGludGVnZXIg ZnJvbSBwb2ludGVyIHdpdGhvdXQgYSBjYXN0IFstV2Vycm9yPWludC1jb252ZXJzaW9uXQogIDIz NCB8ICBlcnIgPSBidF91aGlkX2NyZWF0ZShjb250ZXh0LT51aGlkLCAiIiwgTlVMTCwgTlVMTCwg MCwgMCwgMCwgMCwgTlVMTCwKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn4KICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZvaWQgKgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gdW5pdC90ZXN0LXVo aWQuYzoyNToKLi9zcmMvc2hhcmVkL3VoaWQuaDo2MDo0ODogbm90ZTogZXhwZWN0ZWQg4oCYdWlu dDhfdOKAmSB7YWthIOKAmHVuc2lnbmVkIGNoYXLigJl9IGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBl IOKAmHZvaWQgKuKAmQogICA2MCB8ICAgIHVpbnQzMl90IHZlcnNpb24sIHVpbnQzMl90IGNvdW50 cnksIHVpbnQ4X3QgdHlwZSwKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB+fn5+fn5+fl5+fn4KdW5pdC90ZXN0LXVoaWQuYzoyMzQ6ODogZXJyb3I6IHRvbyBm ZXcgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIOKAmGJ0X3VoaWRfY3JlYXRl4oCZCiAgMjM0IHwgIGVy ciA9IGJ0X3VoaWRfY3JlYXRlKGNvbnRleHQtPnVoaWQsICIiLCBOVUxMLCBOVUxMLCAwLCAwLCAw LCAwLCBOVUxMLAogICAgICB8ICAgICAgICBefn5+fn5+fn5+fn5+fgpJbiBmaWxlIGluY2x1ZGVk IGZyb20gdW5pdC90ZXN0LXVoaWQuYzoyNToKLi9zcmMvc2hhcmVkL3VoaWQuaDo1ODo1OiBub3Rl OiBkZWNsYXJlZCBoZXJlCiAgIDU4IHwgaW50IGJ0X3VoaWRfY3JlYXRlKHN0cnVjdCBidF91aGlk ICp1aGlkLCBjb25zdCBjaGFyICpuYW1lLCBiZGFkZHJfdCAqc3JjLAogICAgICB8ICAgICBefn5+ fn5+fn5+fn5+fgp1bml0L3Rlc3QtdWhpZC5jOjI0MDo5OiBlcnJvcjogdG9vIGZldyBhcmd1bWVu dHMgdG8gZnVuY3Rpb24g4oCYYnRfdWhpZF9kZXN0cm954oCZCiAgMjQwIHwgICBlcnIgPSBidF91 aGlkX2Rlc3Ryb3koY29udGV4dC0+dWhpZCk7CiAgICAgIHwgICAgICAgICBefn5+fn5+fn5+fn5+ fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHVuaXQvdGVzdC11aGlkLmM6MjU6Ci4vc3JjL3NoYXJl ZC91aGlkLmg6Njk6NTogbm90ZTogZGVjbGFyZWQgaGVyZQogICA2OSB8IGludCBidF91aGlkX2Rl c3Ryb3koc3RydWN0IGJ0X3VoaWQgKnVoaWQsIGJvb2wgZm9yY2UpOwogICAgICB8ICAgICBefn5+ fn5+fn5+fn5+fn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKbWFr ZVsxXTogKioqIFtNYWtlZmlsZTo3ODA5OiB1bml0L3Rlc3QtdWhpZC5vXSBFcnJvciAxCm1ha2Vb MV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2U6ICoqKiBbTWFrZWZp bGU6NDY1MTogYWxsXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0 OiBTY2FuQnVpbGQgLSBGQUlMCkRlc2M6IFJ1biBTY2FuIEJ1aWxkCk91dHB1dDoKCnNyYy9zaGFy ZWQvZ2F0dC1jbGllbnQuYzo0NTE6MjE6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICBnYXR0X2RiX3VucmVnaXN0ZXIob3AtPmNsaWVudC0+ZGIsIG9wLT5k Yl9pZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9n YXR0LWNsaWVudC5jOjY5NjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBmYWxzZSwgYXR0X2Vjb2RlKTsK ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9z aGFyZWQvZ2F0dC1jbGllbnQuYzo5OTY6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBp dCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0 X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjExMDI6Mjogd2FybmluZzogVXNlIG9mIG1l bW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwg c3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjEyOTQ6Mjogd2Fybmlu ZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9j b21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjEz NTk6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRp c2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0 LWNsaWVudC5jOjE2MzQ6Njogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVl ZAogICAgICAgIGlmIChyZWFkX2RiX2hhc2gob3ApKSB7CiAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjE2Mzk6Mjogd2FybmluZzogVXNlIG9mIG1l bW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyX2FsbChvcCk7CiAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MjE0Mzo2OiB3YXJuaW5n OiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgaWYgKHJlYWRfZGJfaGFz aChvcCkpIHsKICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xp ZW50LmM6MjE1MTo4OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlz Y292ZXJ5X29wX3JlZihvcCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNs aWVudC5jOjMyNDA6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAog ICAgICAgIGNvbXBsZXRlX3dyaXRlX2xvbmdfb3AocmVxLCBzdWNjZXNzLCAwLCBmYWxzZSk7CiAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMv c2hhcmVkL2dhdHQtY2xpZW50LmM6MzI2MjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVy IGl0IGlzIGZyZWVkCiAgICAgICAgcmVxdWVzdF91bnJlZihyZXEpOwogICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fgoxMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvc2hlbGwuYzoxMzMx OjEzOiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ29wdGlvbnMnIHJlc3VsdHMgaW4gYSBkZXJl ZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ29wdCcpCiAg ICAgICAgICAgICAgICAgICAgICAgIGlmIChjICE9IG9wdC0+b3B0aW9uc1tpbmRleCAtIG9mZnNl dF0udmFsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fgox IHdhcm5pbmcgZ2VuZXJhdGVkLgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6NDUxOjIxOiB3YXJu aW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZ2F0dF9kYl91bnJl Z2lzdGVyKG9wLT5jbGllbnQtPmRiLCBvcC0+ZGJfaWQpOwogICAgICAgICAgICAgICAgICAgICAg ICAgICBefn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzo2OTY6Mjogd2FybmluZzog VXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21w bGV0ZShvcCwgZmFsc2UsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6OTk2OjI6IHdh cm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlf b3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQu YzoxMTAyOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAg ICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQv Z2F0dC1jbGllbnQuYzoxMjk0OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMg ZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29k ZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMzU5OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkg YWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nl c3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNjM0OjY6IHdhcm5pbmc6IFVz ZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNoKG9w KSkgewogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQu YzoxNjM5OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAg ICBkaXNjb3Zlcl9hbGwob3ApOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9n YXR0LWNsaWVudC5jOjIxNDM6Njogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBm cmVlZAogICAgICAgIGlmIChyZWFkX2RiX2hhc2gob3ApKSB7CiAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjIxNTE6ODogd2FybmluZzogVXNlIG9m IG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2NvdmVyeV9vcF9yZWYob3ApLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzozMjQwOjI6IHdhcm5pbmc6IFVzZSBv ZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBjb21wbGV0ZV93cml0ZV9sb25nX29w KHJlcSwgc3VjY2VzcywgMCwgZmFsc2UpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjMyNjI6Mjog d2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIHJlcXVlc3Rf dW5yZWYocmVxKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4KMTIgd2FybmluZ3MgZ2VuZXJh dGVkLgpzcmMvc2hhcmVkL3NoZWxsLmM6MTMzMToxMzogd2FybmluZzogQWNjZXNzIHRvIGZpZWxk ICdvcHRpb25zJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIgKGxv YWRlZCBmcm9tIHZhcmlhYmxlICdvcHQnKQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyAh PSBvcHQtPm9wdGlvbnNbaW5kZXggLSBvZmZzZXRdLnZhbCkgewogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBefn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdG9vbHMvaGNp YXR0YWNoLmM6ODE2Ojc6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24n IGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIg YWN0dWFsbHkgcmVhZCBmcm9tICduJwogICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2ZW50KGZk LCByZXNwLCAxMCkpIDwgMCkgewogICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KdG9vbHMvaGNpYXR0YWNoLmM6ODY0Ojc6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2 YWx1ZSBzdG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0 aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICduJwogICAgICAgIGlmICgobiA9 IHJlYWRfaGNpX2V2ZW50KGZkLCByZXNwLCA0KSkgPCAwKSB7CiAgICAgICAgICAgICBeICAgfn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWF0dGFjaC5jOjg4Njo4OiB3YXJuaW5n OiBBbHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICduJyBpcyB1c2VkIGluIHRoZSBlbmNsb3Np bmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnbicK ICAgICAgICAgICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2ZW50KGZkLCByZXNwLCAxMCkpIDwg MCkgewogICAgICAgICAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgp0b29scy9oY2lhdHRhY2guYzo5MDg6Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0 b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1 ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAgaWYgKChuID0gcmVhZF9o Y2lfZXZlbnQoZmQsIHJlc3AsIDQpKSA8IDApIHsKICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpYXR0YWNoLmM6OTI5Ojc6IHdhcm5pbmc6IEFsdGhv dWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHBy ZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICduJwogICAgICAg IGlmICgobiA9IHJlYWRfaGNpX2V2ZW50KGZkLCByZXNwLCA0KSkgPCAwKSB7CiAgICAgICAgICAg ICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWF0dGFjaC5jOjk3Mzo3 OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICduJyBpcyB1c2VkIGluIHRo ZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQg ZnJvbSAnbicKICAgICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChmZCwgcmVzcCwgNikpIDwg MCkgewogICAgICAgICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo2IHdhcm5p bmdzIGdlbmVyYXRlZC4Kc3JjL291aS5jOjUwOjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAn aHdkYicgaXMgbmV2ZXIgcmVhZAogICAgICAgIGh3ZGIgPSB1ZGV2X2h3ZGJfdW5yZWYoaHdkYik7 CiAgICAgICAgXiAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvb3VpLmM6NTM6Mjogd2Fy bmluZzogVmFsdWUgc3RvcmVkIHRvICd1ZGV2JyBpcyBuZXZlciByZWFkCiAgICAgICAgdWRldiA9 IHVkZXZfdW5yZWYodWRldik7CiAgICAgICAgXiAgICAgIH5+fn5+fn5+fn5+fn5+fn4KMiB3YXJu aW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2hjaWR1bXAuYzoxODA6OTogd2FybmluZzogUG90ZW50aWFs IGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ2RwJwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIChmZHNbaV0uZmQgPT0gc29jaykKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXn5+CnRvb2xzL2hjaWR1bXAuYzoyNDg6MTc6IHdhcm5pbmc6IEFzc2lnbmVk IHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGgtPnRzX3NlYyAgPSBodG9ibChmcm0udHMudHZfc2VjKTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xz L2hjaWR1bXAuYzozMjY6OTogd2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMg YW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IChiZTMydG9oKGRwLmZsYWdzKSAmIDB4MDIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2VuZGlhbi5oOjQ2OjIyOiBu b3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdiZTMydG9oJwojICBkZWZpbmUgYmUzMnRvaCh4KSBf X2Jzd2FwXzMyICh4KQogICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgp0b29scy9o Y2lkdW1wLmM6MzQxOjIwOiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBh biB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJt LmRhdGFfbGVuID0gYmUzMnRvaChkcC5sZW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fgovdXNyL2luY2x1ZGUvZW5kaWFuLmg6 NDY6MjI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2JlMzJ0b2gnCiMgIGRlZmluZSBiZTMy dG9oKHgpIF9fYnN3YXBfMzIgKHgpCiAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+ CnRvb2xzL2hjaWR1bXAuYzozNDY6MTQ6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3Vt ZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvcGNvZGUgPSBiZTMydG9oKGRwLmZsYWdzKSAmIDB4ZmZmZjsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgovdXNyL2luY2x1ZGUv ZW5kaWFuLmg6NDY6MjI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2JlMzJ0b2gnCiMgIGRl ZmluZSBiZTMydG9oKHgpIF9fYnN3YXBfMzIgKHgpCiAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+CnRvb2xzL2hjaWR1bXAuYzozODQ6MTc6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVl IGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICAgICAgICAgIGZybS5kYXRh X2xlbiA9IGJ0b2hzKGRoLmxlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeIH5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpZHVtcC5jOjM5NDoxMTogd2FybmluZzogQXNzaWdu ZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgIGZybS5sZW4g PSBmcm0uZGF0YV9sZW47CiAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn5+CnRv b2xzL2hjaWR1bXAuYzozOTg6OTogd2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQg aXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgICAgICAgICAgICAgICAgICB0cyA9IGJl NjR0b2gocGgudHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+ Ci91c3IvaW5jbHVkZS9lbmRpYW4uaDo1MToyMjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAn YmU2NHRvaCcKIyAgZGVmaW5lIGJlNjR0b2goeCkgX19ic3dhcF82NCAoeCkKICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpZHVtcC5jOjQwMzoxMzogd2FybmluZzog MXN0IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAg ICAgICAgICAgICAgICAgICAgICBmcm0uaW4gPSBiZTMydG9oKGRwLmZsYWdzKSAmIDB4MDE7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci91c3IvaW5j bHVkZS9lbmRpYW4uaDo0NjoyMjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYmUzMnRvaCcK IyAgZGVmaW5lIGJlMzJ0b2goeCkgX19ic3dhcF8zMiAoeCkKICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpZHVtcC5jOjQwODoxMTogd2FybmluZzogQXNzaWduZWQg dmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgICAgICAgICAgZnJt LmluID0gZGguaW47CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+CnRvb2xz L2hjaWR1bXAuYzo0Mzc6Nzogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFy YW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICBmZCA9IG9wZW4oZmlsZSwgb3Blbl9m bGFncywgMDY0NCk7CiAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEx IHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvcmZjb21tLmM6MjM0OjM6IHdhcm5pbmc6IFZhbHVl IHN0b3JlZCB0byAnaScgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgaSA9IGV4ZWN2cChj bWRhcmd2WzBdLCBjbWRhcmd2KTsKICAgICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KdG9vbHMvcmZjb21tLmM6MjM0Ojc6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBw YXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgICAgICAg ICBpID0gZXhlY3ZwKGNtZGFyZ3ZbMF0sIGNtZGFyZ3YpOwogICAgICAgICAgICAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9yZmNvbW0uYzozNTQ6ODogd2FybmluZzog QWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnZmQnIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2lu ZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICdmZCcK ICAgICAgICAgICAgICAgIGlmICgoZmQgPSBvcGVuKGRldm5hbWUsIE9fUkRPTkxZIHwgT19OT0NU VFkpKSA8IDApIHsKICAgICAgICAgICAgICAgICAgICAgXiAgICB+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3JmY29tbS5jOjQ5NzoxNDogd2FybmluZzogQXNzaWduZWQg dmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICByZXEuY2hhbm5lbCA9IHJhZGRy LnJjX2NoYW5uZWw7CiAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fn5+fn5+CnRvb2xz L3JmY29tbS5jOjUxNTo4OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICdm ZCcgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZl ciBhY3R1YWxseSByZWFkIGZyb20gJ2ZkJwogICAgICAgICAgICAgICAgaWYgKChmZCA9IG9wZW4o ZGV2bmFtZSwgT19SRE9OTFkgfCBPX05PQ1RUWSkpIDwgMCkgewogICAgICAgICAgICAgICAgICAg ICBeICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KNSB3YXJuaW5ncyBnZW5l cmF0ZWQuCnNyYy9zZHAteG1sLmM6MTI2OjEwOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBn YXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgYnVmWzFdID0gZGF0YVtpICsgMV07 CiAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fgpzcmMvc2RwLXhtbC5jOjMwMDox MTogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAg ICAgICAgICAgICAgICAgICAgYnVmWzFdID0gZGF0YVtpICsgMV07CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+CnNyYy9zZHAteG1sLmM6MzM4OjExOiB3YXJuaW5n OiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAg ICAgICAgICBidWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4gfn5+fn5+fn5+fn4KMyB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2NpcHRvb2wuYzoz NTA6Nzogd2FybmluZzogNXRoIGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFs aXplZCB2YWx1ZQogICAgICAgIHNrID0gZG9fY29ubmVjdChjdGwsIGRldl9pZCwgJnNyYywgJmRz dCwgcHNtLCAoMSA8PCBDTVRQX0xPT1BCQUNLKSk7CiAgICAgICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5p bmcgZ2VuZXJhdGVkLgp0b29scy9zZHB0b29sLmM6OTQxOjI2OiB3YXJuaW5nOiBSZXN1bHQgb2Yg J21hbGxvYycgaXMgY29udmVydGVkIHRvIGEgcG9pbnRlciBvZiB0eXBlICd1aW50MzJfdCcsIHdo aWNoIGlzIGluY29tcGF0aWJsZSB3aXRoIHNpemVvZiBvcGVyYW5kIHR5cGUgJ2ludCcKICAgICAg ICAgICAgICAgICAgICAgICAgdWludDMyX3QgKnZhbHVlX2ludCA9IG1hbGxvYyhzaXplb2YoaW50 KSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn4gICAgICAgICAgICBefn5+fn4g fn5+fn5+fn5+fn4KdG9vbHMvc2RwdG9vbC5jOjk4MDo0OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24g Y2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICAg ICAgICAgIGZyZWUoYWxsb2NBcnJheVtpXSk7CiAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn4KdG9vbHMvc2RwdG9vbC5jOjM3Nzc6Mjogd2FybmluZzogUG90ZW50aWFs IGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3NpLm5hbWUnCiAgICAgICAgcmV0dXJuIGFk ZF9zZXJ2aWNlKDAsICZzaSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9v bHMvc2RwdG9vbC5jOjQxMTI6NDogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBv aW50ZWQgdG8gYnkgJ2NvbnRleHQuc3ZjJwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g LTE7CiAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fgo0IHdhcm5pbmdzIGdlbmVyYXRl ZC4KdG9vbHMvYXZ0ZXN0LmM6MjI1OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBp cyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUo c2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+ fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MjM1OjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0 byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVu ID0gd3JpdGUoc2ssIGJ1ZiwgNCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAg ICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MjQ0OjU6IHdhcm5pbmc6IFZhbHVl IHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6MjU4OjU6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoyNjU6NTogd2Fy bmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjI3Mjo1OiB3 YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Mjc5OjU6 IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoyOTE6 NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0KTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRl c3QuYzoyOTU6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0 b29scy9hdnRlc3QuYzozMDQ6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5l dmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywg YnVmLCAzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+ fn5+fn5+fgp0b29scy9hdnRlc3QuYzozMDg6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICds ZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3 cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+ fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozMTc6NTogd2FybmluZzogVmFsdWUgc3Rv cmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozMjQ6NTogd2FybmluZzog VmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozNDY6NTog d2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0KTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3Qu YzozNTA6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29s cy9hdnRlc3QuYzozNTk6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVy IHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVm LCAzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+ fn5+fgp0b29scy9hdnRlc3QuYzozNjM6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4n IGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0 ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+ fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozNzY6NTogd2FybmluZzogVmFsdWUgc3RvcmVk IHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZW4gPSB3cml0ZShzaywgYnVmLCA0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe ICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozODA6NTogd2FybmluZzogVmFs dWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzozODc6NDogd2Fy bmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAg ICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICAgICAgICAg IF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM5Nzo0OiB3YXJuaW5nOiBW YWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAg ICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAg fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NTYyOjM6IHdhcm5pbmc6IFZhbHVlIHN0 b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShz aywgYnVmLCAyKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xz L2F2dGVzdC5jOjU3MDozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIg cmVhZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgaW52YWxpZCA/IDIgOiAz KTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K dG9vbHMvYXZ0ZXN0LmM6NTg0OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBu ZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0ICsgc2l6ZW9m KG1lZGlhX3RyYW5zcG9ydCkpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo1OTc6Mzogd2Fybmlu ZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxl biA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+ fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjA3OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVu JyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsK ICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjYx OTozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAg ICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICBeICAgICB+ fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2MzQ6Mzogd2FybmluZzogVmFsdWUgc3Rv cmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNr LCBidWYsIDMpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMv YXZ0ZXN0LmM6NjQ2OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciBy ZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAg ICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjY1NTozOiB3YXJuaW5n OiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVu ID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+ fn5+fgp0b29scy9hdnRlc3QuYzo2NjI6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4n IGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwog ICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6Njk4 OjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAg bGVuID0gd3JpdGUoc2ssIGJ1ZiwgQVZDVFBfSEVBREVSX0xFTkdUSCArIHNpemVvZihwbGF5X3By ZXNzZWQpKTsKICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjMyIHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvYnRw cm94eS5jOjgzNjoxNTogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1l dGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICAgICAgICAgICAgICAgICAgdGNwX3BvcnQg PSBhdG9pKG9wdGFyZyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+CnRvb2xzL2J0cHJveHkuYzo4Mzk6ODogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3Nl ZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKHN0cmxlbihvcHRhcmcpID4gMyAmJiAhc3RybmNtcChvcHRhcmcsICJoY2kiLCAz KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3Mg Z2VuZXJhdGVkLgp0b29scy9jcmVhdGUtaW1hZ2UuYzo3NjozOiB3YXJuaW5nOiBWYWx1ZSBzdG9y ZWQgdG8gJ2ZkJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBmZCA9IC0xOwogICAgICAg ICAgICAgICAgXiAgICB+fgp0b29scy9jcmVhdGUtaW1hZ2UuYzo4NDozOiB3YXJuaW5nOiBWYWx1 ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBmZCA9IC0xOwog ICAgICAgICAgICAgICAgXiAgICB+fgp0b29scy9jcmVhdGUtaW1hZ2UuYzo5MjozOiB3YXJuaW5n OiBWYWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBmZCA9 IC0xOwogICAgICAgICAgICAgICAgXiAgICB+fgp0b29scy9jcmVhdGUtaW1hZ2UuYzoxMDU6Mjog d2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdmZCcgaXMgbmV2ZXIgcmVhZAogICAgICAgIGZkID0g LTE7CiAgICAgICAgXiAgICB+fgo0IHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvYnRnYXR0LWNs aWVudC5jOjE4MjQ6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdhcmd2JyBpcyBuZXZlciBy ZWFkCiAgICAgICAgYXJndiArPSBvcHRpbmQ7CiAgICAgICAgXiAgICAgICB+fn5+fn4KMSB3YXJu aW5nIGdlbmVyYXRlZC4KdG9vbHMvYnRnYXR0LXNlcnZlci5jOjEyMTI6Mjogd2FybmluZzogVmFs dWUgc3RvcmVkIHRvICdhcmd2JyBpcyBuZXZlciByZWFkCiAgICAgICAgYXJndiAtPSBvcHRpbmQ7 CiAgICAgICAgXiAgICAgICB+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdG9vbHMvY2hlY2st c2VsZnRlc3QuYzo0MjozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3B0cicgaXMgbmV2ZXIg cmVhZAogICAgICAgICAgICAgICAgcHRyID0gZmdldHMocmVzdWx0LCBzaXplb2YocmVzdWx0KSwg ZnApOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRvb2xzL2dhdHQtc2VydmljZS5jOjI5NDoyOiB3YXJu aW5nOiAybmQgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVl CiAgICAgICAgY2hyX3dyaXRlKGNociwgdmFsdWUsIGxlbik7CiAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdG9vbHMvb2JleC1zZXJ2ZXItdG9v bC5jOjEzMzoxMzogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1ldGVy IGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICBkYXRhLT5mZCA9IG9wZW4obmFtZSwgT19XUk9O TFkgfCBPX0NSRUFUIHwgT19OT0NUVFksIDA2MDApOwogICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvb2JleC1zZXJ2 ZXItdG9vbC5jOjE5MjoxMzogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFy YW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICBkYXRhLT5mZCA9IG9wZW4obmFtZSwg T19SRE9OTFkgfCBPX05PQ1RUWSwgMCk7CiAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9idHBjbGll bnRjdGwuYzo0MDI6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdiaXQnIGlzIG5ldmVyIHJl YWQKICAgICAgICAgICAgICAgIGJpdCA9IDA7CiAgICAgICAgICAgICAgICBeICAgICB+CnRvb2xz L2J0cGNsaWVudGN0bC5jOjE2NTU6Mjogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAy bmQgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICBtZW1jcHkoY3AtPmRhdGEs IGFkX2RhdGEsIGFkX2xlbik7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgp1bml0L3Rlc3QtdWhpZC5jOiBJbiBmdW5jdGlvbiDi gJh0ZXN0X2NsaWVudOKAmToKdW5pdC90ZXN0LXVoaWQuYzoyMzQ6NjY6IGVycm9yOiBwYXNzaW5n IGFyZ3VtZW50IDkgb2Yg4oCYYnRfdWhpZF9jcmVhdGXigJkgbWFrZXMgaW50ZWdlciBmcm9tIHBv aW50ZXIgd2l0aG91dCBhIGNhc3QgWy1XZXJyb3I9aW50LWNvbnZlcnNpb25dCiAgMjM0IHwgIGVy ciA9IGJ0X3VoaWRfY3JlYXRlKGNvbnRleHQtPnVoaWQsICIiLCBOVUxMLCBOVUxMLCAwLCAwLCAw LCAwLCBOVUxMLAogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fgogICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdm9pZCAqCkluIGZpbGUgaW5jbHVkZWQgZnJvbSB1bml0L3Rlc3QtdWhpZC5jOjI1 OgouL3NyYy9zaGFyZWQvdWhpZC5oOjYwOjQ4OiBub3RlOiBleHBlY3RlZCDigJh1aW50OF904oCZ IHtha2Eg4oCYdW5zaWduZWQgY2hhcuKAmX0gYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUg4oCYdm9p ZCAq4oCZCiAgIDYwIHwgICAgdWludDMyX3QgdmVyc2lvbiwgdWludDMyX3QgY291bnRyeSwgdWlu dDhfdCB0eXBlLAogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH5+fn5+fn5+Xn5+fgp1bml0L3Rlc3QtdWhpZC5jOjIzNDo4OiBlcnJvcjogdG9vIGZldyBhcmd1 bWVudHMgdG8gZnVuY3Rpb24g4oCYYnRfdWhpZF9jcmVhdGXigJkKICAyMzQgfCAgZXJyID0gYnRf dWhpZF9jcmVhdGUoY29udGV4dC0+dWhpZCwgIiIsIE5VTEwsIE5VTEwsIDAsIDAsIDAsIDAsIE5V TEwsCiAgICAgIHwgICAgICAgIF5+fn5+fn5+fn5+fn5+CkluIGZpbGUgaW5jbHVkZWQgZnJvbSB1 bml0L3Rlc3QtdWhpZC5jOjI1OgouL3NyYy9zaGFyZWQvdWhpZC5oOjU4OjU6IG5vdGU6IGRlY2xh cmVkIGhlcmUKICAgNTggfCBpbnQgYnRfdWhpZF9jcmVhdGUoc3RydWN0IGJ0X3VoaWQgKnVoaWQs IGNvbnN0IGNoYXIgKm5hbWUsIGJkYWRkcl90ICpzcmMsCiAgICAgIHwgICAgIF5+fn5+fn5+fn5+ fn5+CnVuaXQvdGVzdC11aGlkLmM6MjQwOjk6IGVycm9yOiB0b28gZmV3IGFyZ3VtZW50cyB0byBm dW5jdGlvbiDigJhidF91aGlkX2Rlc3Ryb3nigJkKICAyNDAgfCAgIGVyciA9IGJ0X3VoaWRfZGVz dHJveShjb250ZXh0LT51aGlkKTsKICAgICAgfCAgICAgICAgIF5+fn5+fn5+fn5+fn5+fgpJbiBm aWxlIGluY2x1ZGVkIGZyb20gdW5pdC90ZXN0LXVoaWQuYzoyNToKLi9zcmMvc2hhcmVkL3VoaWQu aDo2OTo1OiBub3RlOiBkZWNsYXJlZCBoZXJlCiAgIDY5IHwgaW50IGJ0X3VoaWRfZGVzdHJveShz dHJ1Y3QgYnRfdWhpZCAqdWhpZCwgYm9vbCBmb3JjZSk7CiAgICAgIHwgICAgIF5+fn5+fn5+fn5+ fn5+fgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwptYWtlWzFdOiAq KiogW01ha2VmaWxlOjc4MDk6IHVuaXQvdGVzdC11aGlkLm9dIEVycm9yIDEKbWFrZVsxXTogKioq IFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KbWFrZTogKioqIFtNYWtlZmlsZTo0NjUx OiBhbGxdIEVycm9yIDIKCgotLS0KUmVnYXJkcywKTGludXggQmx1ZXRvb3RoCgo= --===============3306894173046624206==--