From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qk1-f180.google.com (mail-qk1-f180.google.com [209.85.222.180]) (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 E830B284673 for ; Thu, 24 Apr 2025 17:20:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745515224; cv=none; b=hRmKAEfkxLbEgrQeHfRCZq5XHReBzNHl9crah8FpMdhj6UQPo+pV+/lk4P3mBmlgzggCU14XvKaTYoaAlphXr0zt6GqU6Bn0yo0Gy22087WjxVIHpCkYFYvja9oIbvsYYu6hvKch/AIyYqqKZrJDWVp0H3n1H181q8kminRZNxo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745515224; c=relaxed/simple; bh=sKnhaOXF84aXDOsQ0E4IPYbjHlNI3pTI1SMqzVublVU=; h=Message-ID:Date:Content-Type:MIME-Version:From:To:Subject: In-Reply-To:References; b=fdutPIUA7MsCNvlWs3/ubIsvP09Q/FDAcJ8bQjvwbhBK6n3U18GIJFCC0g+9lfGbgVcZ41ogn+JbgPz/ZfdHcUvpaTNTHufW+EyFb0l5LQyFs1Ij/xb/eBYYZ7Ylt/egZiUVp4Wp1FfB9Qv0VE3+3jRPl8zZGdhC2KwwJBDcCwQ= 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=B6q0kKsk; arc=none smtp.client-ip=209.85.222.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="B6q0kKsk" Received: by mail-qk1-f180.google.com with SMTP id af79cd13be357-7c9376c4dbaso143198085a.0 for ; Thu, 24 Apr 2025 10:20:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745515218; x=1746120018; 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=sKnhaOXF84aXDOsQ0E4IPYbjHlNI3pTI1SMqzVublVU=; b=B6q0kKskXZKPkKDil0UG14OKeau3TtHfbWsNG57/0GriEUxXbzqnqxxoiUK/k0dElQ cJqj0fsiZz4JPSAyxSa7F2HwKxsdXQ152mM99HMLv+ftbMBqc7zowALmb5i/UamdcZSe gG426dszsxnYiHsvbguurojLyOB0IlKT1rjyEc4qtx5aBC9snvc/AEDKVohIvf1bXD8h W/gn4kObALqfgq0X+pA7ZFa2+X4mlJZ0cgs6F6eQkYFUpoiyl5vEF56hJf+FgtpkmbrV IwPuThORSY0DUrjX+Gc1K+blmfpWKnGEdCvR9wsCkrnNNB1mfQd6i8FwvgygyKY0vjUM Uycg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745515218; x=1746120018; 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=sKnhaOXF84aXDOsQ0E4IPYbjHlNI3pTI1SMqzVublVU=; b=nargWuwW3NFAQBYe+pV+lBqALs0dguus2wmraO2wVY7N/Ru+FLoMCKEqpMwEePj9BG c3RwJ9BNDeFwGuZ2vqT3vTdmlrg1goTTeuDodKb/m8FB4ms3sEkrFlSqxzFvlWkr6zpV qe3z0GXU2N2e9l7vmoeGmuP1tqRNWAIBSDXh6eWuaOZfDiU8ZczFwXj6AYR+RSz35Xtm bYvxtylIx+0lvUxAR5AzJDgr33WTBTnpOtuwOVdDvzencIcnO2Qc2ZV+M1+X0kDqkhBf ro7sjGcAoS57cUeoE+1JA0BJcIwsUi2pbDCM8zmoY5D11ZcARGxqjPvwFsr8SfXGy8xd usxQ== X-Gm-Message-State: AOJu0YzvrrZ78JUJL5FZBv0S7CxbBKPQtE1kFkx97Tgf4qoFc19ofcuf ejxYUWDII2LC3ldN+EdRJh7MIVFNlR9HoESm9htZDfh7C4zu6FlWBIIfRg== X-Gm-Gg: ASbGncuAN0TAcnhVc72qNfRhxkmO/swGL2faqNgsoAUewtNzxF/85zSHbiwyulfUpkS 6cpGlXgYvbO5qdr4Cb5CcEvv8v9Ow9ZSDUtgIVubp1k+CR/l/WUA0mPaPfPfyvynYgCfY5hHYR9 5mVuL2rv8d2bghdhYycl931bMda17Ty/5AMpW0/dp3Myh+bxypUMrT9xXXXIHO4656C2CoyQHfh cp+m7N35RQOjs+rZBa9Fn3Dxvm8K/urAVf2QSL+71LUcSYiHBX2K6jaJUHDIH/YvHNu+MxbAtKx 4BLib32+MEgY4fWPKWS+CPk09uiQPyUSup5XqXaYWyrZN61ZzQ== X-Google-Smtp-Source: AGHT+IHKrjz8iM25m8im6k99TOI5G3V6HJJIRsqn+eHOj7fVaww6U7oV8neY6BNelw3yvUPWWaDMiQ== X-Received: by 2002:a05:620a:8a09:b0:7c5:3da4:5bed with SMTP id af79cd13be357-7c9585ec30dmr447520785a.17.1745515217369; Thu, 24 Apr 2025 10:20:17 -0700 (PDT) Received: from [172.17.0.2] ([172.183.133.241]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c958cadb0asm111005685a.30.2025.04.24.10.20.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 10:20:16 -0700 (PDT) Message-ID: <680a72d0.e90a0220.119bae.629b@mx.google.com> Date: Thu, 24 Apr 2025 10:20:16 -0700 (PDT) Content-Type: multipart/mixed; boundary="===============5458358547514761798==" 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, kernel.org@pileofstuff.org Subject: RE: obex: unregster profiles when the user is inactive In-Reply-To: <20250423163343.4160595-2-kernel.org@pileofstuff.org> References: <20250423163343.4160595-2-kernel.org@pileofstuff.org> Reply-To: linux-bluetooth@vger.kernel.org --===============5458358547514761798== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhdXRvbWF0ZWQgZW1haWwgYW5kIHBsZWFzZSBkbyBub3QgcmVwbHkgdG8gdGhpcyBl bWFpbCEKCkRlYXIgc3VibWl0dGVyLAoKVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRj aGVzIHRvIHRoZSBsaW51eCBibHVldG9vdGggbWFpbGluZyBsaXN0LgpUaGlzIGlzIGEgQ0kgdGVz dCByZXN1bHRzIHdpdGggeW91ciBwYXRjaCBzZXJpZXM6ClBXIExpbms6aHR0cHM6Ly9wYXRjaHdv cmsua2VybmVsLm9yZy9wcm9qZWN0L2JsdWV0b290aC9saXN0Lz9zZXJpZXM9OTU2MjU3CgotLS1U ZXN0IHJlc3VsdC0tLQoKVGVzdCBTdW1tYXJ5OgpDaGVja1BhdGNoICAgICAgICAgICAgICAgICAg ICBQRU5ESU5HICAgMC4yNSBzZWNvbmRzCkdpdExpbnQgICAgICAgICAgICAgICAgICAgICAgIFBF TkRJTkcgICAwLjI3IHNlY29uZHMKQnVpbGRFbGwgICAgICAgICAgICAgICAgICAgICAgUEFTUyAg ICAgIDIwLjY2IHNlY29uZHMKQmx1ZXpNYWtlICAgICAgICAgICAgICAgICAgICAgRkFJTCAgICAg IDI3NDIuODEgc2Vjb25kcwpNYWtlQ2hlY2sgICAgICAgICAgICAgICAgICAgICBGQUlMICAgICAg MjMuMzIgc2Vjb25kcwpNYWtlRGlzdGNoZWNrICAgICAgICAgICAgICAgICBQQVNTICAgICAgMjA3 LjU2IHNlY29uZHMKQ2hlY2tWYWxncmluZCAgICAgICAgICAgICAgICAgRkFJTCAgICAgIDIwMi4x MCBzZWNvbmRzCkNoZWNrU21hdGNoICAgICAgICAgICAgICAgICAgIEZBSUwgICAgICAzMDkuMjgg c2Vjb25kcwpibHVlem1ha2VleHRlbGwgICAgICAgICAgICAgICBGQUlMICAgICAgMTI2LjEyIHNl Y29uZHMKSW5jcmVtZW50YWxCdWlsZCAgICAgICAgICAgICAgUEVORElORyAgIDAuMjkgc2Vjb25k cwpTY2FuQnVpbGQgICAgICAgICAgICAgICAgICAgICBGQUlMICAgICAgNDQ4LjI0IHNlY29uZHMK CkRldGFpbHMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IENoZWNrUGF0Y2gg LSBQRU5ESU5HCkRlc2M6IFJ1biBjaGVja3BhdGNoLnBsIHNjcmlwdApPdXRwdXQ6CgojIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogR2l0TGludCAtIFBFTkRJTkcKRGVzYzogUnVu IGdpdGxpbnQKT3V0cHV0OgoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IEJs dWV6TWFrZSAtIEZBSUwKRGVzYzogQnVpbGQgQmx1ZVoKT3V0cHV0OgoKdG9vbHMvbWdtdC10ZXN0 ZXIuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdG9vbHMvbWdtdC10ZXN0ZXIuYzoxMjkwNzo1 OiBub3RlOiB2YXJpYWJsZSB0cmFja2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2 YXItdHJhY2tpbmctYXNzaWdubWVudHPigJksIHJldHJ5aW5nIHdpdGhvdXQKMTI5MDcgfCBpbnQg bWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICB8ICAgICBefn5+CnVuaXQvdGVzdC1h dmR0cC5jOiBJbiBmdW5jdGlvbiDigJhtYWlu4oCZOgp1bml0L3Rlc3QtYXZkdHAuYzo3NjY6NTog bm90ZTogdmFyaWFibGUgdHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFy LXRyYWNraW5nLWFzc2lnbm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CiAgNzY2IHwgaW50IG1h aW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgp1bml0L3Rlc3QtYXZy Y3AuYzogSW4gZnVuY3Rpb24g4oCYbWFpbuKAmToKdW5pdC90ZXN0LWF2cmNwLmM6OTg5OjU6IG5v dGU6IHZhcmlhYmxlIHRyYWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10 cmFja2luZy1hc3NpZ25tZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAogIDk4OSB8IGludCBtYWlu KGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4Kb2JleGQvc3JjL2xvZ2lu ZC5jOiBJbiBmdW5jdGlvbiDigJhsb2dpbmRfaW5pdOKAmToKb2JleGQvc3JjL2xvZ2luZC5jOjEy Njo4OiBlcnJvcjogdmFyaWFibGUg4oCYc291cmNl4oCZIHNldCBidXQgbm90IHVzZWQgWy1XZXJy b3I9dW51c2VkLWJ1dC1zZXQtdmFyaWFibGVdCiAgMTI2IHwgIGd1aW50IHNvdXJjZTsKICAgICAg fCAgICAgICAgXn5+fn5+Cm9iZXhkL3NyYy9sb2dpbmQuYzogSW4gZnVuY3Rpb24g4oCYbG9naW5k X3JlZ2lzdGVy4oCZOgpvYmV4ZC9zcmMvbG9naW5kLmM6MjAzOjI6IGVycm9yOiBJU08gQzkwIGZv cmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0aW9uLWFm dGVyLXN0YXRlbWVudF0KICAyMDMgfCAgc3RydWN0IGNhbGxiYWNrX3BhaXIgKmNicyA9IGdfbmV3 KHN0cnVjdCBjYWxsYmFja19wYWlyLCAxKTsKICAgICAgfCAgXn5+fn5+Cm9iZXhkL3NyYy9sb2dp bmQuYzogSW4gZnVuY3Rpb24g4oCYbG9naW5kX3VucmVnaXN0ZXLigJk6Cm9iZXhkL3NyYy9sb2dp bmQuYzoyMTU6MjogZXJyb3I6IElTTyBDOTAgZm9yYmlkcyBtaXhlZCBkZWNsYXJhdGlvbnMgYW5k IGNvZGUgWy1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50XQogIDIxNSB8ICBHU0xp c3QgKmNiX25vZGUgPSBnX3NsaXN0X2ZpbmRfY3VzdG9tKGNhbGxiYWNrcywgaW5pdF9jYiwgZmlu ZF9jYik7CiAgICAgIHwgIF5+fn5+fgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFz IGVycm9ycwptYWtlWzFdOiAqKiogW01ha2VmaWxlOjk3NzY6IG9iZXhkL3NyYy9vYmV4ZC1sb2dp bmQub10gRXJyb3IgMQptYWtlWzFdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4u LgptYWtlOiAqKiogW01ha2VmaWxlOjQ2OTA6IGFsbF0gRXJyb3IgMgojIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKVGVzdDogTWFrZUNoZWNrIC0gRkFJTApEZXNjOiBSdW4gQmx1ZXogTWFr ZSBDaGVjawpPdXRwdXQ6CgpvYmV4ZC9zcmMvbG9naW5kLmM6IEluIGZ1bmN0aW9uIOKAmGxvZ2lu ZF9pbml04oCZOgpvYmV4ZC9zcmMvbG9naW5kLmM6MTI2Ojg6IGVycm9yOiB2YXJpYWJsZSDigJhz b3VyY2XigJkgc2V0IGJ1dCBub3QgdXNlZCBbLVdlcnJvcj11bnVzZWQtYnV0LXNldC12YXJpYWJs ZV0KICAxMjYgfCAgZ3VpbnQgc291cmNlOwogICAgICB8ICAgICAgICBefn5+fn4Kb2JleGQvc3Jj L2xvZ2luZC5jOiBJbiBmdW5jdGlvbiDigJhsb2dpbmRfcmVnaXN0ZXLigJk6Cm9iZXhkL3NyYy9s b2dpbmQuYzoyMDM6MjogZXJyb3I6IElTTyBDOTAgZm9yYmlkcyBtaXhlZCBkZWNsYXJhdGlvbnMg YW5kIGNvZGUgWy1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50XQogIDIwMyB8ICBz dHJ1Y3QgY2FsbGJhY2tfcGFpciAqY2JzID0gZ19uZXcoc3RydWN0IGNhbGxiYWNrX3BhaXIsIDEp OwogICAgICB8ICBefn5+fn4Kb2JleGQvc3JjL2xvZ2luZC5jOiBJbiBmdW5jdGlvbiDigJhsb2dp bmRfdW5yZWdpc3RlcuKAmToKb2JleGQvc3JjL2xvZ2luZC5jOjIxNToyOiBlcnJvcjogSVNPIEM5 MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZSBbLVdlcnJvcj1kZWNsYXJhdGlv bi1hZnRlci1zdGF0ZW1lbnRdCiAgMjE1IHwgIEdTTGlzdCAqY2Jfbm9kZSA9IGdfc2xpc3RfZmlu ZF9jdXN0b20oY2FsbGJhY2tzLCBpbml0X2NiLCBmaW5kX2NiKTsKICAgICAgfCAgXn5+fn5+CmNj MTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2VbMV06ICoqKiBbTWFr ZWZpbGU6OTc3Njogb2JleGQvc3JjL29iZXhkLWxvZ2luZC5vXSBFcnJvciAxCm1ha2U6ICoqKiBb TWFrZWZpbGU6MTIzNDU6IGNoZWNrXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwpUZXN0OiBDaGVja1ZhbGdyaW5kIC0gRkFJTApEZXNjOiBSdW4gQmx1ZXogTWFrZSBDaGVj ayB3aXRoIFZhbGdyaW5kCk91dHB1dDoKCnRvb2xzL21nbXQtdGVzdGVyLmM6IEluIGZ1bmN0aW9u IOKAmG1haW7igJk6CnRvb2xzL21nbXQtdGVzdGVyLmM6MTI5MDc6NTogbm90ZTogdmFyaWFibGUg dHJhY2tpbmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFyLXRyYWNraW5nLWFzc2ln bm1lbnRz4oCZLCByZXRyeWluZyB3aXRob3V0CjEyOTA3IHwgaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkKICAgICAgfCAgICAgXn5+fgpvYmV4ZC9zcmMvbG9naW5kLmM6IEluIGZ1bmN0 aW9uIOKAmGxvZ2luZF9pbml04oCZOgpvYmV4ZC9zcmMvbG9naW5kLmM6MTI2Ojg6IGVycm9yOiB2 YXJpYWJsZSDigJhzb3VyY2XigJkgc2V0IGJ1dCBub3QgdXNlZCBbLVdlcnJvcj11bnVzZWQtYnV0 LXNldC12YXJpYWJsZV0KICAxMjYgfCAgZ3VpbnQgc291cmNlOwogICAgICB8ICAgICAgICBefn5+ fn4Kb2JleGQvc3JjL2xvZ2luZC5jOiBJbiBmdW5jdGlvbiDigJhsb2dpbmRfcmVnaXN0ZXLigJk6 Cm9iZXhkL3NyYy9sb2dpbmQuYzoyMDM6MjogZXJyb3I6IElTTyBDOTAgZm9yYmlkcyBtaXhlZCBk ZWNsYXJhdGlvbnMgYW5kIGNvZGUgWy1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50 XQogIDIwMyB8ICBzdHJ1Y3QgY2FsbGJhY2tfcGFpciAqY2JzID0gZ19uZXcoc3RydWN0IGNhbGxi YWNrX3BhaXIsIDEpOwogICAgICB8ICBefn5+fn4Kb2JleGQvc3JjL2xvZ2luZC5jOiBJbiBmdW5j dGlvbiDigJhsb2dpbmRfdW5yZWdpc3RlcuKAmToKb2JleGQvc3JjL2xvZ2luZC5jOjIxNToyOiBl cnJvcjogSVNPIEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZSBbLVdlcnJv cj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRdCiAgMjE1IHwgIEdTTGlzdCAqY2Jfbm9kZSA9 IGdfc2xpc3RfZmluZF9jdXN0b20oY2FsbGJhY2tzLCBpbml0X2NiLCBmaW5kX2NiKTsKICAgICAg fCAgXn5+fn5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2Vb MV06ICoqKiBbTWFrZWZpbGU6OTc3Njogb2JleGQvc3JjL29iZXhkLWxvZ2luZC5vXSBFcnJvciAx Cm1ha2VbMV06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2U6ICoqKiBb TWFrZWZpbGU6MTIzNDU6IGNoZWNrXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwpUZXN0OiBDaGVja1NtYXRjaCAtIEZBSUwKRGVzYzogUnVuIHNtYXRjaCB0b29sIHdpdGgg c291cmNlCk91dHB1dDoKCnNyYy9zaGFyZWQvY3J5cHRvLmM6MjcxOjIxOiB3YXJuaW5nOiBWYXJp YWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9jcnlwdG8uYzoyNzI6MjM6IHdh cm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVs cGVycy5jOjc2ODozMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNy Yy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6ODMwOjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGgg YXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzIzOjMxOiB3YXJuaW5n OiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMu YzoxMzU0OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3No YXJlZC9nYXR0LXNlcnZlci5jOjI3ODoyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5 IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzo2MTg6MjU6IHdhcm5pbmc6IFZhcmlh YmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6NzE2OjI1 OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9iYXAu YzozMTU6MjU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKc3JjL3NoYXJl ZC9iYXAuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9zcmMvc2hhcmVkL2FzY3MuaDo4ODoy NTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwpzcmMvc2hhcmVkL3NoZWxs LmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5l L3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3 YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rp b24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5v bi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91c3Iv aW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1 bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUv cmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBk ZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCnNyYy9zaGFyZWQvY3J5cHRvLmM6 MjcxOjIxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJl ZC9jcnlwdG8uYzoyNzI6MjM6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2Vk LgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5jOjc2ODozMTogd2FybmluZzogVmFyaWFibGUgbGVu Z3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1oZWxwZXJzLmM6ODMwOjMxOiB3YXJu aW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBl cnMuYzoxMzIzOjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3Jj L3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzU0OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGgg YXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LXNlcnZlci5jOjI3ODoyNTogd2FybmluZzog VmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzo2 MTg6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVk L2dhdHQtc2VydmVyLmM6NzE2OjI1OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMg dXNlZC4Kc3JjL3NoYXJlZC9iYXAuYzozMTU6MjU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxl IHN0cnVjdHVyZXMKc3JjL3NoYXJlZC9iYXAuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9z cmMvc2hhcmVkL2FzY3MuaDo4ODoyNTogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0 dXJlcwpzcmMvc2hhcmVkL3NoZWxsLmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2gg L3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUv cmx0eXBlZGVmcy5oOjM1OjIzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlv biBvZiBmdW5jdGlvbiAnRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZz Lmg6MzY6MjU6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0 aW9uICdWRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6 IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1 bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5n OiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24n CnRvb2xzL21lc2gtY2ZndGVzdC5jOjE0NTM6MTc6IHdhcm5pbmc6IHVua25vd24gZXNjYXBlIHNl cXVlbmNlOiAnXCUnCnRvb2xzL3Njby10ZXN0ZXIuYzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToK Li9saWIvYmx1ZXRvb3RoLmg6MjMyOjE1OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1 Y3R1cmVzCi4vbGliL2JsdWV0b290aC5oOjIzNzozMTogd2FybmluZzogYXJyYXkgb2YgZmxleGli bGUgc3RydWN0dXJlcwp0b29scy9ibmVwdGVzdC5jOjYzNDozOTogd2FybmluZzogdW5rbm93biBl c2NhcGUgc2VxdWVuY2U6ICdcJScKdG9vbHMvc2VxMmJzZXEuYzo1NzoyNjogd2FybmluZzogVmFy aWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnRvb2xzL29iZXgtY2xpZW50LXRvb2wuYzogbm90 ZTogaW4gaW5jbHVkZWQgZmlsZSAodGhyb3VnaCAvdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmVhZGxp bmUuaCk6Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzU6MjM6IHdhcm5pbmc6 IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdGdW5jdGlvbicKL3Vz ci9pbmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNjoyNTogd2FybmluZzogbm9uLUFOU0kg ZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ1ZGdW5jdGlvbicKL3Vzci9pbmNsdWRl L3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNzoyNzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24g ZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGlu ZS9ybHR5cGVkZWZzLmg6Mzg6Mjk6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0 aW9uIG9mIGZ1bmN0aW9uICdDUFBGdW5jdGlvbicKYW5kcm9pZC9hdmN0cC5jOjUwNTozNDogd2Fy bmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmFuZHJvaWQvYXZjdHAuYzo1NTY6 MzQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0L3Rlc3QtYXZy Y3AuYzozNzM6MjY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp1bml0 L3Rlc3QtYXZyY3AuYzozOTg6MjY6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1 c2VkLgp1bml0L3Rlc3QtYXZyY3AuYzo0MTQ6MjQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBh cnJheSBpcyB1c2VkLgphbmRyb2lkL2F2cmNwLWxpYi5jOjEwODU6MzQ6IHdhcm5pbmc6IFZhcmlh YmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgphbmRyb2lkL2F2cmNwLWxpYi5jOjE1ODM6MzQ6IHdh cm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgphbmRyb2lkL2F2cmNwLWxpYi5j OjE2MTI6MzQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgphbmRyb2lk L2F2cmNwLWxpYi5jOjE2Mzg6MzQ6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1 c2VkLgptZXNoL21lc2gtaW8tbWdtdC5jOjUyNDo2Nzogd2FybmluZzogVmFyaWFibGUgbGVuZ3Ro IGFycmF5IGlzIHVzZWQuCmNsaWVudC9kaXNwbGF5LmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUg KHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JlYWRsaW5lLmgpOgovdXNyL2luY2x1ZGUv cmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBk ZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9y bHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9u IG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZz Lmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0 aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5 OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQ RnVuY3Rpb24nCnNyYy9zaGFyZWQvY3J5cHRvLmM6MjcxOjIxOiB3YXJuaW5nOiBWYXJpYWJsZSBs ZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9jcnlwdG8uYzoyNzI6MjM6IHdhcm5pbmc6 IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtaGVscGVycy5j Ojc2ODozMTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnNyYy9zaGFy ZWQvZ2F0dC1oZWxwZXJzLmM6ODMwOjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkg aXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzIzOjMxOiB3YXJuaW5nOiBWYXJp YWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9nYXR0LWhlbHBlcnMuYzoxMzU0 OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9n YXR0LXNlcnZlci5jOjI3ODoyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVz ZWQuCnNyYy9zaGFyZWQvZ2F0dC1zZXJ2ZXIuYzo2MTg6MjU6IHdhcm5pbmc6IFZhcmlhYmxlIGxl bmd0aCBhcnJheSBpcyB1c2VkLgpzcmMvc2hhcmVkL2dhdHQtc2VydmVyLmM6NzE2OjI1OiB3YXJu aW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4Kc3JjL3NoYXJlZC9iYXAuYzozMTU6 MjU6IHdhcm5pbmc6IGFycmF5IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKc3JjL3NoYXJlZC9iYXAu Yzogbm90ZTogaW4gaW5jbHVkZWQgZmlsZToKLi9zcmMvc2hhcmVkL2FzY3MuaDo4ODoyNTogd2Fy bmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJlcwpzcmMvc2hhcmVkL3NoZWxsLmM6IG5v dGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3JlYWRs aW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3YXJuaW5n OiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rpb24nCi91 c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5vbi1BTlNJ IGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91c3IvaW5jbHVk ZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9u IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVhZGxp bmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJh dGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCm1vbml0b3IvcGFja2V0LmM6IG5vdGU6IGlu IGluY2x1ZGVkIGZpbGU6Cm1vbml0b3IvZGlzcGxheS5oOjgyOjI2OiB3YXJuaW5nOiBWYXJpYWJs ZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KbW9uaXRvci9wYWNrZXQuYzoxODc2OjI2OiB3YXJuaW5n OiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KbW9uaXRvci9wYWNrZXQuYzogbm90ZTog aW4gaW5jbHVkZWQgZmlsZToKbW9uaXRvci9idC5oOjM2MDc6NTI6IHdhcm5pbmc6IGFycmF5IG9m IGZsZXhpYmxlIHN0cnVjdHVyZXMKbW9uaXRvci9idC5oOjM1OTU6NDA6IHdhcm5pbmc6IGFycmF5 IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKbW9uaXRvci9sMmNhcC5jOiBub3RlOiBpbiBpbmNsdWRl ZCBmaWxlOgptb25pdG9yL2Rpc3BsYXkuaDo4MjoyNjogd2FybmluZzogVmFyaWFibGUgbGVuZ3Ro IGFycmF5IGlzIHVzZWQuCm1vbml0b3IvbXNmdC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgpt b25pdG9yL21zZnQuaDo4ODo0NDogd2FybmluZzogYXJyYXkgb2YgZmxleGlibGUgc3RydWN0dXJl cwptb25pdG9yL2F0dC5jOiBub3RlOiBpbiBpbmNsdWRlZCBmaWxlOgptb25pdG9yL2Rpc3BsYXku aDo4MjoyNjogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCnRvb2xzL3Jj dGVzdC5jOjYyNzozMzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2Yg ZnVuY3Rpb24gJ2F1dG9tYXRlZF9zZW5kX3JlY3YnCnRvb2xzL2hleDJoY2QuYzoxMzY6MjY6IHdh cm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgp0b29scy9tZXNoY3RsLmM6MzI0 OjMzOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAn Zm9yZ2V0X21lc2hfZGV2aWNlcycKdG9vbHMvbWVzaC1nYXR0L25vZGUuYzo0NTY6Mzk6IHdhcm5p bmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdub2RlX2dldF9s b2NhbF9ub2RlJwp0b29scy9tZXNoLWdhdHQvbmV0LmM6MTIzOTozMDogd2FybmluZzogbm9uLUFO U0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2dldF9uZXh0X3NlcScKdG9vbHMv bWVzaC1nYXR0L25ldC5jOjIxOTM6Mjk6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xh cmF0aW9uIG9mIGZ1bmN0aW9uICduZXRfZ2V0X2RlZmF1bHRfdHRsJwp0b29scy9tZXNoLWdhdHQv bmV0LmM6MjIwNzoyNjogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gb2Yg ZnVuY3Rpb24gJ25ldF9nZXRfc2VxX251bScKdG9vbHMvbWVzaC1nYXR0L3Byb3YuYzogbm90ZTog aW4gaW5jbHVkZWQgZmlsZSAodGhyb3VnaCAvdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmVhZGxpbmUu aCk6Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzU6MjM6IHdhcm5pbmc6IG5v bi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdGdW5jdGlvbicKL3Vzci9p bmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNjoyNTogd2FybmluZzogbm9uLUFOU0kgZnVu Y3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ1ZGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3Jl YWRsaW5lL3JsdHlwZWRlZnMuaDozNzoyNzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVj bGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9y bHR5cGVkZWZzLmg6Mzg6Mjk6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9u IG9mIGZ1bmN0aW9uICdDUFBGdW5jdGlvbicKdG9vbHMvbWVzaC1nYXR0L29ub2ZmLW1vZGVsLmM6 IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRocm91Z2ggL3Vzci9pbmNsdWRlL3JlYWRsaW5lL3Jl YWRsaW5lLmgpOgovdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmx0eXBlZGVmcy5oOjM1OjIzOiB3YXJu aW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnRnVuY3Rpb24n Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzY6MjU6IHdhcm5pbmc6IG5vbi1B TlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdWRnVuY3Rpb24nCi91c3IvaW5j bHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6Mzc6Mjc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0 aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdDUEZ1bmN0aW9uJwovdXNyL2luY2x1ZGUvcmVh ZGxpbmUvcmx0eXBlZGVmcy5oOjM4OjI5OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNs YXJhdGlvbiBvZiBmdW5jdGlvbiAnQ1BQRnVuY3Rpb24nCmVsbC9sb2cuYzo0MzE6NjU6IHdhcm5p bmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdyZWdpc3Rlcl9k ZWJ1Z19zZWN0aW9uJwplbGwvbG9nLmM6NDM5OjY4OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlv biBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZnJlZV9kZWJ1Z19zZWN0aW9ucycKZWxsL3JhbmRv bS5jOjYwOjQyOiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5j dGlvbiAnbF9nZXRyYW5kb21faXNfc3VwcG9ydGVkJwplbGwvY2lwaGVyLmM6NjYwOjI4OiB3YXJu aW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnaW5pdF9zdXBw b3J0ZWQnCmVsbC9jaGVja3N1bS5jOjM4MjoyODogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24g ZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2luaXRfc3VwcG9ydGVkJwplbGwvY2hlY2tzdW0uYzo0 NDQ6NDc6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9u ICdsX2NoZWNrc3VtX2NtYWNfYWVzX3N1cHBvcnRlZCcKZWxsL2NpcGhlci5jOjUxOToyNDogd2Fy bmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVsbC9jZXJ0LWNyeXB0by5jOjM2 OjMzOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KZWxsL2NlcnQtY3J5 cHRvLmM6MTQyOjM2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KZWxs L2NlcnQtY3J5cHRvLmM6MTk4OjM2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMg dXNlZC4KZWxsL2NlcnQtY3J5cHRvLmM6MjUxOjMxOiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGgg YXJyYXkgaXMgdXNlZC4KZWxsL2tleS5jOjU1MDoyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3Ro IGFycmF5IGlzIHVzZWQuCmVsbC9kYnVzLXNlcnZpY2UuYzo1NDg6NDk6IHdhcm5pbmc6IG5vbi1B TlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdfZGJ1c19vYmplY3RfdHJlZV9u ZXcnCmVsbC9kYnVzLWZpbHRlci5jOjIzMjo0Njogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFy cmF5IGlzIHVzZWQuCmVsbC90bHMuYzo0NToyNTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFy cmF5IGlzIHVzZWQuCmVsbC90bHMuYzo4NjoyMjogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFy cmF5IGlzIHVzZWQuCmVsbC90bHMuYzo4Njo0Njogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFy cmF5IGlzIHVzZWQuCmVsbC90bHMtc3VpdGVzLmM6MTA3ODoyNTogd2FybmluZzogVmFyaWFibGUg bGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVsbC90bHMtc3VpdGVzLmM6MTA4MDozNDogd2FybmluZzog VmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVsbC90bHMtc3VpdGVzLmM6MTA4Mzo0MTog d2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVsbC90bHMtc3VpdGVzLmM6 MTEzMjo0MTogd2FybmluZzogVmFyaWFibGUgbGVuZ3RoIGFycmF5IGlzIHVzZWQuCmVsbC90bHMu YzoxODE5OjI2OiB3YXJuaW5nOiBWYXJpYWJsZSBsZW5ndGggYXJyYXkgaXMgdXNlZC4KZW11bGF0 b3IvYnRkZXYuYzo0NTM6Mjk6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2Vk LgplbXVsYXRvci9idGhvc3QuYzo2Mjg6Mjg6IHdhcm5pbmc6IFZhcmlhYmxlIGxlbmd0aCBhcnJh eSBpcyB1c2VkLgplbXVsYXRvci9idGhvc3QuYzo4MjY6Mjg6IHdhcm5pbmc6IFZhcmlhYmxlIGxl bmd0aCBhcnJheSBpcyB1c2VkLgphdHRyaWIvZ2F0dHRvb2wuYzoyMzU6MjM6IHdhcm5pbmc6IFZh cmlhYmxlIGxlbmd0aCBhcnJheSBpcyB1c2VkLgphdHRyaWIvaW50ZXJhY3RpdmUuYzogbm90ZTog aW4gaW5jbHVkZWQgZmlsZSAodGhyb3VnaCAvdXNyL2luY2x1ZGUvcmVhZGxpbmUvcmVhZGxpbmUu aCk6Ci91c3IvaW5jbHVkZS9yZWFkbGluZS9ybHR5cGVkZWZzLmg6MzU6MjM6IHdhcm5pbmc6IG5v bi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdGdW5jdGlvbicKL3Vzci9p bmNsdWRlL3JlYWRsaW5lL3JsdHlwZWRlZnMuaDozNjoyNTogd2FybmluZzogbm9uLUFOU0kgZnVu Y3Rpb24gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ1ZGdW5jdGlvbicKL3Vzci9pbmNsdWRlL3Jl YWRsaW5lL3JsdHlwZWRlZnMuaDozNzoyNzogd2FybmluZzogbm9uLUFOU0kgZnVuY3Rpb24gZGVj bGFyYXRpb24gb2YgZnVuY3Rpb24gJ0NQRnVuY3Rpb24nCi91c3IvaW5jbHVkZS9yZWFkbGluZS9y bHR5cGVkZWZzLmg6Mzg6Mjk6IHdhcm5pbmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9u IG9mIGZ1bmN0aW9uICdDUFBGdW5jdGlvbicKYXR0cmliL2ludGVyYWN0aXZlLmM6MTc0OjI3OiB3 YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZGlzY29u bmVjdF9pbycKYXR0cmliL2ludGVyYWN0aXZlLmM6Mjk5OjIzOiB3YXJuaW5nOiBWYXJpYWJsZSBs ZW5ndGggYXJyYXkgaXMgdXNlZC4KcHJvZmlsZXMvc2FwL3NlcnZlci5jOiBub3RlOiBpbiBpbmNs dWRlZCBmaWxlOgpwcm9maWxlcy9zYXAvc2FwLmg6Nzc6MzU6IHdhcm5pbmc6IGFycmF5IG9mIGZs ZXhpYmxlIHN0cnVjdHVyZXMKb2JleGQvc3JjL2xvZ2luZC5jOjUxOjE5OiB3YXJuaW5nOiBub24t QU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAndXBkYXRlJwpvYmV4ZC9zcmMv bG9naW5kLmM6MTIzOjI0OiB3YXJuaW5nOiBub24tQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBv ZiBmdW5jdGlvbiAnbG9naW5kX2luaXQnCm9iZXhkL3NyYy9sb2dpbmQuYzoxODA6MjU6IHdhcm5p bmc6IG5vbi1BTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdsb2dpbmRfZXhp dCcKb2JleGQvc3JjL2xvZ2luZC5jOjIwMzo5OiB3YXJuaW5nOiBtaXhpbmcgZGVjbGFyYXRpb25z IGFuZCBjb2RlCm9iZXhkL3NyYy9sb2dpbmQuYzoyMTU6OTogd2FybmluZzogbWl4aW5nIGRlY2xh cmF0aW9ucyBhbmQgY29kZQpvYmV4ZC9zcmMvbG9naW5kLmM6IEluIGZ1bmN0aW9uIOKAmGxvZ2lu ZF9pbml04oCZOgpvYmV4ZC9zcmMvbG9naW5kLmM6MTI2Ojg6IGVycm9yOiB2YXJpYWJsZSDigJhz b3VyY2XigJkgc2V0IGJ1dCBub3QgdXNlZCBbLVdlcnJvcj11bnVzZWQtYnV0LXNldC12YXJpYWJs ZV0KICAxMjYgfCAgZ3VpbnQgc291cmNlOwogICAgICB8ICAgICAgICBefn5+fn4Kb2JleGQvc3Jj L2xvZ2luZC5jOiBJbiBmdW5jdGlvbiDigJhsb2dpbmRfcmVnaXN0ZXLigJk6Cm9iZXhkL3NyYy9s b2dpbmQuYzoyMDM6MjogZXJyb3I6IElTTyBDOTAgZm9yYmlkcyBtaXhlZCBkZWNsYXJhdGlvbnMg YW5kIGNvZGUgWy1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50XQogIDIwMyB8ICBz dHJ1Y3QgY2FsbGJhY2tfcGFpciAqY2JzID0gZ19uZXcoc3RydWN0IGNhbGxiYWNrX3BhaXIsIDEp OwogICAgICB8ICBefn5+fn4Kb2JleGQvc3JjL2xvZ2luZC5jOiBJbiBmdW5jdGlvbiDigJhsb2dp bmRfdW5yZWdpc3RlcuKAmToKb2JleGQvc3JjL2xvZ2luZC5jOjIxNToyOiBlcnJvcjogSVNPIEM5 MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZSBbLVdlcnJvcj1kZWNsYXJhdGlv bi1hZnRlci1zdGF0ZW1lbnRdCiAgMjE1IHwgIEdTTGlzdCAqY2Jfbm9kZSA9IGdfc2xpc3RfZmlu ZF9jdXN0b20oY2FsbGJhY2tzLCBpbml0X2NiLCBmaW5kX2NiKTsKICAgICAgfCAgXn5+fn5+CmNj MTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2VbMV06ICoqKiBbTWFr ZWZpbGU6OTc3Njogb2JleGQvc3JjL29iZXhkLWxvZ2luZC5vXSBFcnJvciAxCm1ha2VbMV06ICoq KiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2U6ICoqKiBbTWFrZWZpbGU6NDY5 MDogYWxsXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBibHVl em1ha2VleHRlbGwgLSBGQUlMCkRlc2M6IEJ1aWxkIEJsdWV6IHdpdGggRXh0ZXJuYWwgRUxMCk91 dHB1dDoKCm9iZXhkL3NyYy9sb2dpbmQuYzogSW4gZnVuY3Rpb24g4oCYbG9naW5kX2luaXTigJk6 Cm9iZXhkL3NyYy9sb2dpbmQuYzoxMjY6ODogZXJyb3I6IHZhcmlhYmxlIOKAmHNvdXJjZeKAmSBz ZXQgYnV0IG5vdCB1c2VkIFstV2Vycm9yPXVudXNlZC1idXQtc2V0LXZhcmlhYmxlXQogIDEyNiB8 ICBndWludCBzb3VyY2U7CiAgICAgIHwgICAgICAgIF5+fn5+fgpvYmV4ZC9zcmMvbG9naW5kLmM6 IEluIGZ1bmN0aW9uIOKAmGxvZ2luZF9yZWdpc3RlcuKAmToKb2JleGQvc3JjL2xvZ2luZC5jOjIw MzoyOiBlcnJvcjogSVNPIEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZSBb LVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRdCiAgMjAzIHwgIHN0cnVjdCBjYWxs YmFja19wYWlyICpjYnMgPSBnX25ldyhzdHJ1Y3QgY2FsbGJhY2tfcGFpciwgMSk7CiAgICAgIHwg IF5+fn5+fgpvYmV4ZC9zcmMvbG9naW5kLmM6IEluIGZ1bmN0aW9uIOKAmGxvZ2luZF91bnJlZ2lz dGVy4oCZOgpvYmV4ZC9zcmMvbG9naW5kLmM6MjE1OjI6IGVycm9yOiBJU08gQzkwIGZvcmJpZHMg bWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0 YXRlbWVudF0KICAyMTUgfCAgR1NMaXN0ICpjYl9ub2RlID0gZ19zbGlzdF9maW5kX2N1c3RvbShj YWxsYmFja3MsIGluaXRfY2IsIGZpbmRfY2IpOwogICAgICB8ICBefn5+fn4KY2MxOiBhbGwgd2Fy bmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKbWFrZVsxXTogKioqIFtNYWtlZmlsZTo5Nzc2 OiBvYmV4ZC9zcmMvb2JleGQtbG9naW5kLm9dIEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcg Zm9yIHVuZmluaXNoZWQgam9icy4uLi4KbWFrZTogKioqIFtNYWtlZmlsZTo0NjkwOiBhbGxdIEVy cm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IEluY3JlbWVudGFsQnVp bGQgLSBQRU5ESU5HCkRlc2M6IEluY3JlbWVudGFsIGJ1aWxkIHdpdGggdGhlIHBhdGNoZXMgaW4g dGhlIHNlcmllcwpPdXRwdXQ6CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDog U2NhbkJ1aWxkIC0gRkFJTApEZXNjOiBSdW4gU2NhbiBCdWlsZApPdXRwdXQ6CgpzcmMvc2hhcmVk L2dhdHQtY2xpZW50LmM6NDUxOjIxOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlz IGZyZWVkCiAgICAgICAgZ2F0dF9kYl91bnJlZ2lzdGVyKG9wLT5jbGllbnQtPmRiLCBvcC0+ZGJf aWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0 dC1jbGllbnQuYzo2OTY6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVl ZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgZmFsc2UsIGF0dF9lY29kZSk7CiAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hh cmVkL2dhdHQtY2xpZW50LmM6OTk2OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9l Y29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMTAyOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1v cnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1 Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMjk2OjI6IHdhcm5pbmc6 IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29t cGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMzYx OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNj b3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1j bGllbnQuYzoxNjM2OjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQK ICAgICAgICBpZiAocmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAgICAgICBefn5+fn5+fn5+fn5+ fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNjQxOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1v cnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcl9hbGwob3ApOwogICAgICAgIF5+ fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjIxNDc6Njogd2FybmluZzog VXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGlmIChyZWFkX2RiX2hhc2go b3ApKSB7CiAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVu dC5jOjIxNTU6ODogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2Nv dmVyeV9vcF9yZWYob3ApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGll bnQuYzozMjQ0OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAg ICAgICBjb21wbGV0ZV93cml0ZV9sb25nX29wKHJlcSwgc3VjY2VzcywgMCwgZmFsc2UpOwogICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3No YXJlZC9nYXR0LWNsaWVudC5jOjMyNjY6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBp dCBpcyBmcmVlZAogICAgICAgIHJlcXVlc3RfdW5yZWYocmVxKTsKICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn4KMTIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2hhcmVkL2JhcC5jOjE0OTU6ODog d2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGJhcCA9IGJ0 X2JhcF9yZWZfc2FmZShiYXApOwogICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CnNy Yy9zaGFyZWQvYmFwLmM6MjI0NToyMDogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBp cyBmcmVlZAogICAgICAgIHJldHVybiBxdWV1ZV9maW5kKHN0cmVhbS0+YmFwLT5zdHJlYW1zLCBO VUxMLCBzdHJlYW0pOwogICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6NDUxOjIx OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZ2F0dF9k Yl91bnJlZ2lzdGVyKG9wLT5jbGllbnQtPmRiLCBvcC0+ZGJfaWQpOwogICAgICAgICAgICAgICAg ICAgICAgICAgICBefn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzo2OTY6Mjogd2Fy bmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9v cF9jb21wbGV0ZShvcCwgZmFsc2UsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6OTk2 OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNj b3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1j bGllbnQuYzoxMTAyOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQK ICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9z aGFyZWQvZ2F0dC1jbGllbnQuYzoxMjk2OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIg aXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0 dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMzYxOjI6IHdhcm5pbmc6IFVzZSBvZiBt ZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3As IHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNjM2OjY6IHdhcm5p bmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9o YXNoKG9wKSkgewogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1j bGllbnQuYzoxNjQxOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQK ICAgICAgICBkaXNjb3Zlcl9hbGwob3ApOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3No YXJlZC9nYXR0LWNsaWVudC5jOjIxNDc6Njogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBp dCBpcyBmcmVlZAogICAgICAgIGlmIChyZWFkX2RiX2hhc2gob3ApKSB7CiAgICAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjIxNTU6ODogd2FybmluZzog VXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2NvdmVyeV9vcF9yZWYob3ApLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzozMjQ0OjI6IHdhcm5pbmc6 IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBjb21wbGV0ZV93cml0ZV9s b25nX29wKHJlcSwgc3VjY2VzcywgMCwgZmFsc2UpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjMy NjY6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIHJl cXVlc3RfdW5yZWYocmVxKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4KMTIgd2FybmluZ3Mg Z2VuZXJhdGVkLgp0b29scy9oY2lhdHRhY2guYzo4MTc6Nzogd2FybmluZzogQWx0aG91Z2ggdGhl IHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24s IHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAgaWYgKChu ID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDEwKSkgPCAwKSB7CiAgICAgICAgICAgICBeICAg fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo4NjU6Nzogd2Fy bmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5j bG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20g J24nCiAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDQpKSA8IDApIHsK ICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpYXR0 YWNoLmM6ODg3Ojg6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlz IHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0 dWFsbHkgcmVhZCBmcm9tICduJwogICAgICAgICAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZl bnQoZmQsIHJlc3AsIDEwKSkgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgIF4gICB+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWF0dGFjaC5jOjkwOTo3OiB3YXJuaW5nOiBB bHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICduJyBpcyB1c2VkIGluIHRoZSBlbmNsb3Npbmcg ZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnbicKICAg ICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChmZCwgcmVzcCwgNCkpIDwgMCkgewogICAgICAg ICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo5 MzA6Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBp biB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSBy ZWFkIGZyb20gJ24nCiAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDQp KSA8IDApIHsKICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9v bHMvaGNpYXR0YWNoLmM6OTc0Ojc6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQg dG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMg bmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICduJwogICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2 ZW50KGZkLCByZXNwLCA2KSkgPCAwKSB7CiAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CjYgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2hhcmVkL2JhcC5jOjE0OTU6 ODogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGJhcCA9 IGJ0X2JhcF9yZWZfc2FmZShiYXApOwogICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ CnNyYy9zaGFyZWQvYmFwLmM6MjI0NToyMDogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBp dCBpcyBmcmVlZAogICAgICAgIHJldHVybiBxdWV1ZV9maW5kKHN0cmVhbS0+YmFwLT5zdHJlYW1z LCBOVUxMLCBzdHJlYW0pOwogICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvb3VpLmM6NTA6Mjogd2FybmluZzogVmFs dWUgc3RvcmVkIHRvICdod2RiJyBpcyBuZXZlciByZWFkCiAgICAgICAgaHdkYiA9IHVkZXZfaHdk Yl91bnJlZihod2RiKTsKICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9v dWkuYzo1MzoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3VkZXYnIGlzIG5ldmVyIHJlYWQK ICAgICAgICB1ZGV2ID0gdWRldl91bnJlZih1ZGV2KTsKICAgICAgICBeICAgICAgfn5+fn5+fn5+ fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvcmZjb21tLmM6MjM0OjM6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAnaScgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgaSA9 IGV4ZWN2cChjbWRhcmd2WzBdLCBjbWRhcmd2KTsKICAgICAgICAgICAgICAgIF4gICB+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvcmZjb21tLmM6MjM0Ojc6IHdhcm5pbmc6IE51bGwg cG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAg ICAgICAgICAgICBpID0gZXhlY3ZwKGNtZGFyZ3ZbMF0sIGNtZGFyZ3YpOwogICAgICAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9yZmNvbW0uYzozNTQ6ODog d2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnZmQnIGlzIHVzZWQgaW4gdGhl IGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBm cm9tICdmZCcKICAgICAgICAgICAgICAgIGlmICgoZmQgPSBvcGVuKGRldm5hbWUsIE9fUkRPTkxZ IHwgT19OT0NUVFkpKSA8IDApIHsKICAgICAgICAgICAgICAgICAgICAgXiAgICB+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3JmY29tbS5jOjQ5NzoxNDogd2FybmluZzog QXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICByZXEuY2hhbm5l bCA9IHJhZGRyLnJjX2NoYW5uZWw7CiAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fn5+ fn5+CnRvb2xzL3JmY29tbS5jOjUxNTo4OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3Rv cmVkIHRvICdmZCcgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1 ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ2ZkJwogICAgICAgICAgICAgICAgaWYgKChm ZCA9IG9wZW4oZGV2bmFtZSwgT19SRE9OTFkgfCBPX05PQ1RUWSkpIDwgMCkgewogICAgICAgICAg ICAgICAgICAgICBeICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KNSB3YXJu 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 IHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvY2lwdG9vbC5jOjM1MDo3OiB3YXJuaW5nOiA1dGgg ZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAg c2sgPSBkb19jb25uZWN0KGN0bCwgZGV2X2lkLCAmc3JjLCAmZHN0LCBwc20sICgxIDw8IENNVFBf TE9PUEJBQ0spKTsKICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnNyYy9z ZHAteG1sLmM6MTI2OjEwOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVu ZGVmaW5lZAogICAgICAgICAgICAgICAgYnVmWzFdID0gZGF0YVtpICsgMV07CiAgICAgICAgICAg ICAgICAgICAgICAgXiB+fn5+fn5+fn5+fgpzcmMvc2RwLXhtbC5jOjMwMDoxMTogd2FybmluZzog QXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgICAg ICAgICAgYnVmWzFdID0gZGF0YVtpICsgMV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeIH5+fn5+fn5+fn5+CnNyYy9zZHAteG1sLmM6MzM4OjExOiB3YXJuaW5nOiBBc3NpZ25lZCB2 YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAgICAgICBidWZb MV0gPSBkYXRhW2kgKyAxXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+ fn5+fn4KMyB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL3NkcHRvb2wuYzo5NDE6MjY6IHdhcm5p bmc6IFJlc3VsdCBvZiAnbWFsbG9jJyBpcyBjb252ZXJ0ZWQgdG8gYSBwb2ludGVyIG9mIHR5cGUg J3VpbnQzMl90Jywgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJhbmQgdHlw ZSAnaW50JwogICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqdmFsdWVfaW50ID0gbWFs bG9jKHNpemVvZihpbnQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fiAgICAg ICAgICAgIF5+fn5+fiB+fn5+fn5+fn5+fgp0b29scy9zZHB0b29sLmM6OTgwOjQ6IHdhcm5pbmc6 IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAg ICAgICAgICAgICAgICAgICAgICAgZnJlZShhbGxvY0FycmF5W2ldKTsKICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9zZHB0b29sLmM6Mzc3NzoyOiB3YXJu aW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnc2kubmFtZScKICAg ICAgICByZXR1cm4gYWRkX3NlcnZpY2UoMCwgJnNpKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgp0b29scy9zZHB0b29sLmM6NDExMjo0OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVh ayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnY29udGV4dC5zdmMnCiAgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+CjQgd2Fy bmluZ3MgZ2VuZXJhdGVkLgp0b29scy9hdnRlc3QuYzoyNDM6NTogd2FybmluZzogVmFsdWUgc3Rv cmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoyNTM6NTogd2FybmluZzog VmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0KTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoyNjI6NTog d2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3Qu YzoyNzY6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVz dC5jOjI4Mzo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0 ZXN0LmM6MjkwOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFk CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fgp0b29scy9h dnRlc3QuYzoyOTc6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJl YWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+CnRvb2xz L2F2dGVzdC5jOjMwOTo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIg cmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYs IDQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+ fn5+CnRvb2xzL2F2dGVzdC5jOjMxMzo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicg aXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRl KHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+ fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjMyMjo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQg dG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl biA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4g ICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjMyNjo1OiB3YXJuaW5nOiBWYWx1 ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjMzNTo1OiB3YXJu aW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM0 Mjo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2 dGVzdC5jOjM2NDo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVh ZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDQp OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+ CnRvb2xzL2F2dGVzdC5jOjM2ODo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMg bmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNr LCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+ fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM3Nzo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8g J2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9 IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAg IH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM4MTo1OiB3YXJuaW5nOiBWYWx1ZSBz dG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM5NDo1OiB3YXJuaW5n OiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDQpOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM5ODo1 OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVz dC5jOjQwNTo0OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAog ICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAgICAgICAg ICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NDE1 OjQ6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAg ICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAg ICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo1ODA6Mzogd2Fy bmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAg IGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+ fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NTg4OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAn bGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCBp bnZhbGlkID8gMiA6IDMpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2MDI6Mzogd2FybmluZzogVmFsdWUgc3RvcmVk IHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBi dWYsIDQgKyBtZWRpYV90cmFuc3BvcnRfc2l6ZSk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjYxNToz OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAg ICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+ fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2MjU6Mzogd2FybmluZzogVmFsdWUgc3RvcmVk IHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBi dWYsIDMpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0 ZXN0LmM6NjM3OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFk CiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAg IF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjY1MjozOiB3YXJuaW5nOiBW YWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0g d3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+ fgp0b29scy9hdnRlc3QuYzo2NjQ6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlz IG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAg ICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NjczOjM6 IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAg ICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+ fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjY4MDozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQg dG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1 ZiwgMik7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRl c3QuYzo3MTY6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQK ICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCBBVkNUUF9IRUFERVJfTEVOR1RIICsgc2l6ZW9m KHBsYXlfcHJlc3NlZCkpOwogICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMzIgd2FybmluZ3MgZ2VuZXJhdGVkLgp0 b29scy9idHByb3h5LmM6ODM2OjE1OiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDFz dCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgICAgICAgICAgICAgICAgICB0 Y3BfcG9ydCA9IGF0b2kob3B0YXJnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBefn5+fn5+fn5+fn4KdG9vbHMvYnRwcm94eS5jOjgzOTo4OiB3YXJuaW5nOiBOdWxsIHBvaW50 ZXIgcGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgICAg ICAgICAgICAgICAgICBpZiAoc3RybGVuKG9wdGFyZykgPiAzICYmICFzdHJuY21wKG9wdGFyZywg ImhjaSIsIDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KMiB3 YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2NyZWF0ZS1pbWFnZS5jOjc2OjM6IHdhcm5pbmc6IFZh bHVlIHN0b3JlZCB0byAnZmQnIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGZkID0gLTE7 CiAgICAgICAgICAgICAgICBeICAgIH5+CnRvb2xzL2NyZWF0ZS1pbWFnZS5jOjg0OjM6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAnZmQnIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGZk ID0gLTE7CiAgICAgICAgICAgICAgICBeICAgIH5+CnRvb2xzL2NyZWF0ZS1pbWFnZS5jOjkyOjM6 IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnZmQnIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAg ICAgIGZkID0gLTE7CiAgICAgICAgICAgICAgICBeICAgIH5+CnRvb2xzL2NyZWF0ZS1pbWFnZS5j OjEwNToyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBuZXZlciByZWFkCiAgICAg ICAgZmQgPSAtMTsKICAgICAgICBeICAgIH5+CjQgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9j aGVjay1zZWxmdGVzdC5jOjQyOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAncHRyJyBpcyBu ZXZlciByZWFkCiAgICAgICAgICAgICAgICBwdHIgPSBmZ2V0cyhyZXN1bHQsIHNpemVvZihyZXN1 bHQpLCBmcCk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdG9vbHMvZ2F0dC1zZXJ2aWNlLmM6Mjk0OjI6 IHdhcm5pbmc6IDJuZCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQg dmFsdWUKICAgICAgICBjaHJfd3JpdGUoY2hyLCB2YWx1ZSwgbGVuKTsKICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9idGdhdHQtY2xp ZW50LmM6MTgyNDoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2FyZ3YnIGlzIG5ldmVyIHJl YWQKICAgICAgICBhcmd2ICs9IG9wdGluZDsKICAgICAgICBeICAgICAgIH5+fn5+fgoxIHdhcm5p bmcgZ2VuZXJhdGVkLgp0b29scy9idGdhdHQtc2VydmVyLmM6MTIxMjoyOiB3YXJuaW5nOiBWYWx1 ZSBzdG9yZWQgdG8gJ2FyZ3YnIGlzIG5ldmVyIHJlYWQKICAgICAgICBhcmd2IC09IG9wdGluZDsK ICAgICAgICBeICAgICAgIH5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9vYmV4LXNl cnZlci10b29sLmM6MTMzOjEzOiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDFzdCBw YXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgIGRhdGEtPmZkID0gb3BlbihuYW1l LCBPX1dST05MWSB8IE9fQ1JFQVQgfCBPX05PQ1RUWSwgMDYwMCk7CiAgICAgICAgICAgICAgICAg ICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9v YmV4LXNlcnZlci10b29sLmM6MTkyOjEzOiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRv IDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgIGRhdGEtPmZkID0gb3Bl bihuYW1lLCBPX1JET05MWSB8IE9fTk9DVFRZLCAwKTsKICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xz L2J0cGNsaWVudGN0bC5jOjQwMjozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2JpdCcgaXMg bmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgYml0ID0gMDsKICAgICAgICAgICAgICAgIF4gICAg IH4KdG9vbHMvYnRwY2xpZW50Y3RsLmM6MTY1NToyOiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFz c2VkIHRvIDJuZCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgIG1lbWNweShj cC0+ZGF0YSwgYWRfZGF0YSwgYWRfbGVuKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9zZHBkLXJlcXVlc3QuYzoyMTE6 MTM6IHdhcm5pbmc6IFJlc3VsdCBvZiAnbWFsbG9jJyBpcyBjb252ZXJ0ZWQgdG8gYSBwb2ludGVy IG9mIHR5cGUgJ2NoYXInLCB3aGljaCBpcyBpbmNvbXBhdGlibGUgd2l0aCBzaXplb2Ygb3BlcmFu ZCB0eXBlICd1aW50MTZfdCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwRWxlbSA9 IG1hbGxvYyhzaXplb2YodWludDE2X3QpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5+fn5+fiB+fn5+fn5+fn5+fn5+fn5+CnNyYy9zZHBkLXJlcXVlc3QuYzoyMzk6 MTM6IHdhcm5pbmc6IFJlc3VsdCBvZiAnbWFsbG9jJyBpcyBjb252ZXJ0ZWQgdG8gYSBwb2ludGVy IG9mIHR5cGUgJ2NoYXInLCB3aGljaCBpcyBpbmNvbXBhdGlibGUgd2l0aCBzaXplb2Ygb3BlcmFu ZCB0eXBlICd1aW50MzJfdCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwRWxlbSA9 IG1hbGxvYyhzaXplb2YodWludDMyX3QpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5+fn5+fiB+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgph bmRyb2lkL2F2cmNwLWxpYi5jOjE5Njg6Mzogd2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwgYXJn dW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgICAgICAgICAgZ19mcmVlKHRl eHRbaV0pOwogICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0 ZWQuCnByb2ZpbGVzL2F1ZGlvL2F2ZHRwLmM6ODk2OjI1OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5 IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgICAgICAgICBzZXNzaW9uLT5wcmlvX3F1ZXVlID0g Z19zbGlzdF9yZW1vdmUoc2Vzc2lvbi0+cHJpb19xdWV1ZSwgcmVxKTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CnByb2ZpbGVzL2F1ZGlvL2F2ZHRwLmM6OTAzOjI0OiB3YXJuaW5nOiBVc2Ugb2YgbWVt b3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgICAgICAgICBzZXNzaW9uLT5yZXFfcXVldWUg PSBnX3NsaXN0X3JlbW92ZShzZXNzaW9uLT5yZXFfcXVldWUsIHJlcSk7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnByb2ZpbGVzL2F1ZGlvL2EyZHAuYzozNzE6ODog d2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAgICAgICAg aWYgKCFjYi0+cmVzdW1lX2NiKQogICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+CjEg d2FybmluZyBnZW5lcmF0ZWQuCnByb2ZpbGVzL2F1ZGlvL2F2cmNwLmM6MTk2MToyOiB3YXJuaW5n OiBWYWx1ZSBzdG9yZWQgdG8gJ29wZXJhbmRzJyBpcyBuZXZlciByZWFkCiAgICAgICAgb3BlcmFu ZHMgKz0gc2l6ZW9mKCpwZHUpOwogICAgICAgIF4gICAgICAgICAgIH5+fn5+fn5+fn5+fgoxIHdh cm5pbmcgZ2VuZXJhdGVkLgpwcm9maWxlcy9oZWFsdGgvaGRwLmM6NjQ0OjM6IHdhcm5pbmc6IFVz ZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgIGhkcF90bXBfZGNf ZGF0YV91bnJlZihkY19kYXRhKTsKICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgpwcm9maWxlcy9oZWFsdGgvaGRwLmM6ODAwOjE5OiB3YXJuaW5nOiBVc2Ugb2Yg bWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgICAgICAgICBwYXRoID0gZ19zdHJkdXAo Y2hhbi0+cGF0aCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fgpw cm9maWxlcy9oZWFsdGgvaGRwLmM6MTc3OTo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVy IGl0IGlzIGZyZWVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZHBf dG1wX2RjX2RhdGFfcmVmKGhkcF9jb25uKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnByb2ZpbGVzL2hlYWx0aC9o ZHAuYzoxODM2OjMwOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAg ICAgICAgcmVwbHkgPSBnX2RidXNfY3JlYXRlX2Vycm9yKGRhdGEtPm1zZywgRVJST1JfSU5URVJG QUNFICIuSGVhbHRoRXJyb3IiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe fn5+fn5+fn4KNCB3YXJuaW5ncyBnZW5lcmF0ZWQuCnByb2ZpbGVzL2hlYWx0aC9oZHBfdXRpbC5j OjEwNTI6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAg IGNvbm5fZGF0YS0+ZnVuYyhjb25uX2RhdGEtPmRhdGEsIGdlcnIpOwogICAgICAgIF5+fn5+fn5+ fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgphdHRyaWIvZ2F0dC5jOjk3MDoyOiB3YXJuaW5n OiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnbG9uZ193cml0ZScKICAg ICAgICByZXR1cm4gcHJlcGFyZV93cml0ZShsb25nX3dyaXRlKTsKICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpzcmMvc2RwZC1yZXF1 ZXN0LmM6MjExOjEzOiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxvYycgaXMgY29udmVydGVkIHRv IGEgcG9pbnRlciBvZiB0eXBlICdjaGFyJywgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggc2l6 ZW9mIG9wZXJhbmQgdHlwZSAndWludDE2X3QnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcEVsZW0gPSBtYWxsb2Moc2l6ZW9mKHVpbnQxNl90KSk7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBefn5+fn4gfn5+fn5+fn5+fn5+fn5+fgpzcmMvc2RwZC1yZXF1 ZXN0LmM6MjM5OjEzOiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxvYycgaXMgY29udmVydGVkIHRv IGEgcG9pbnRlciBvZiB0eXBlICdjaGFyJywgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggc2l6 ZW9mIG9wZXJhbmQgdHlwZSAndWludDMyX3QnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcEVsZW0gPSBtYWxsb2Moc2l6ZW9mKHVpbnQzMl90KSk7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBefn5+fn4gfn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdl bmVyYXRlZC4Kc3JjL3NkcC1jbGllbnQuYzozNTM6MTQ6IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVs ZCAnY2InIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlcgogICAgICAg ICgqY3R4dCktPmNiID0gY2I7CiAgICAgICAgfn5+fn5+fn5+fn5+Xn5+fgoxIHdhcm5pbmcgZ2Vu ZXJhdGVkLgpzcmMvc2RwLXhtbC5jOjEyNjoxMDogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMg Z2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFd OwogICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4Kc3JjL3NkcC14bWwuYzozMDA6 MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAg ICAgICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fgpzcmMvc2RwLXhtbC5jOjMzODoxMTogd2Fybmlu ZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAgICAg ICAgICAgICAgYnVmWzFdID0gZGF0YVtpICsgMV07CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeIH5+fn5+fn5+fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvZ2F0dC1kYXRhYmFz ZS5jOjExNzM6MTA6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnYml0cycgZHVyaW5nIGl0cyBp bml0aWFsaXphdGlvbiBpcyBuZXZlciByZWFkCiAgICAgICAgdWludDhfdCBiaXRzW10gPSB7IEJU X0dBVFRfQ0hSQ19DTElfRkVBVF9ST0JVU1RfQ0FDSElORywKICAgICAgICAgICAgICAgIF5+fn4g ICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2Vu ZXJhdGVkLgpnb2JleC9nb2JleC1oZWFkZXIuYzo5NToyOiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIg cGFzc2VkIHRvIDJuZCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgIG1lbWNw eSh0bywgZnJvbSwgY291bnQpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2Fy bmluZyBnZW5lcmF0ZWQuCmdvYmV4L2dvYmV4LXRyYW5zZmVyLmM6NDIzOjc6IHdhcm5pbmc6IFVz ZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAoIWdfc2xpc3RfZmluZCh0 cmFuc2ZlcnMsIHRyYW5zZmVyKSkKICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgptZXNoL21haW4uYzoxNjI6Mzogd2Fybmlu ZzogVmFsdWUgc3RvcmVkIHRvICdvcHRhcmcnIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAg IG9wdGFyZyArPSBzdHJsZW4oImF1dG8iKTsKICAgICAgICAgICAgICAgIF4gICAgICAgICB+fn5+ fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpsaWIvaGNpLmM6OTc6NDogd2FybmluZzog VmFsdWUgc3RvcmVkIHRvICdwdHInIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAg ICAgcHRyICs9IHNwcmludGYocHRyLCAiJXMiLCBtLT5zdHIpOwogICAgICAgICAgICAgICAgICAg ICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRl ZC4KY2xpZW50L3BsYXllci5jOjIyMTk6ODogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0 byAybmQgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAgICAgICAgICAgIGlmICgh c3RyY21wKGVwLT5wYXRoLCBwYXR0ZXJuKSkKICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgpjbGllbnQvcGxheWVyLmM6MzQ4OToxNjogd2FybmluZzogTnVsbCBw b2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9ubnVsbCcKICAgICAg ICBjb2RlYy0+bmFtZSA9IHN0cmR1cChuYW1lKTsKICAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KZ2RidXMvd2F0Y2guYzoyMjY6Mzogd2Fybmlu ZzogQXR0ZW1wdCB0byBmcmVlIHJlbGVhc2VkIG1lbW9yeQogICAgICAgICAgICAgICAgZ19mcmVl KGwtPmRhdGEpOwogICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5l cmF0ZWQuCmxpYi9zZHAuYzo1MDk6MTc6IHdhcm5pbmc6IERlcmVmZXJlbmNlIG9mIHVuZGVmaW5l ZCBwb2ludGVyIHZhbHVlCiAgICAgICAgICAgICAgICB1aW50OF90IGR0ZCA9ICoodWludDhfdCAq KSBkdGRzW2ldOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fgpsaWIvc2RwLmM6NTM5OjE3OiB3YXJuaW5nOiBEZXJlZmVyZW5jZSBvZiB1bmRlZmluZWQg cG9pbnRlciB2YWx1ZQogICAgICAgICAgICAgICAgdWludDhfdCBkdGQgPSAqKHVpbnQ4X3QgKikg ZHRkc1tpXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+ fn4KbGliL3NkcC5jOjE4ODU6MjY6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBw b2ludGVkIHRvIGJ5ICdhcCcKICAgICAgICBmb3IgKDsgcGRsaXN0OyBwZGxpc3QgPSBwZGxpc3Qt Pm5leHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4KbGliL3NkcC5j OjE4OTk6Njogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkg J3BkcycKICAgICAgICAgICAgICAgIGFwID0gc2RwX2xpc3RfYXBwZW5kKGFwLCBwZHMpOwogICAg ICAgICAgICAgICAgfn5+Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KbGliL3NkcC5jOjE5NDQ6 MTA6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICd1Jwog ICAgICAgICAgICAgICAgICAgICAgICAqc2VxcCA9IHNkcF9saXN0X2FwcGVuZCgqc2VxcCwgdSk7 CiAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fl5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgpsaWIvc2RwLmM6MjA0OTo0OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9p bnRlZCB0byBieSAnbGFuZycKICAgICAgICAgICAgICAgICAgICAgICAgc2RwX2xpc3RfZnJlZSgq bGFuZ1NlcSwgZnJlZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KbGli L3NkcC5jOjIxMzg6OTogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQg dG8gYnkgJ3Byb2ZEZXNjJwogICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgICBeCmxpYi9z ZHAuYzozMjcwOjg6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRv IGJ5ICdwU3ZjUmVjJwogICAgICAgICAgICAgICAgcFNlcSA9IHNkcF9saXN0X2FwcGVuZChwU2Vx LCBwU3ZjUmVjKTsKICAgICAgICAgICAgICAgIH5+fn5+Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KbGliL3NkcC5jOjMyNzE6OTogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVt b3J5IHBvaW50ZWQgdG8gYnkgJ3BTZXEnCiAgICAgICAgICAgICAgICBwZGF0YSArPSBzaXplb2Yo dWludDMyX3QpOwogICAgICAgICAgICAgICAgfn5+fn5+Xn5+fn5+fn5+fn5+fn5+fn5+fgpsaWIv c2RwLmM6NDYwNzoxMzogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQg dG8gYnkgJ3JlY19saXN0JwogICAgICAgICAgICAgICAgICAgICAgICB9IHdoaWxlIChzY2FubmVk IDwgYXR0cl9saXN0X2xlbiAmJiBwZGF0YV9sZW4gPiAwKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXn5+fn5+fgpsaWIvc2RwLmM6NDkwMzo0MDogd2FybmluZzogUG90ZW50aWFs IGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3RzZXEnCiAgICAgICAgZm9yIChkID0gc2Rw ZGF0YS0+dmFsLmRhdGFzZXE7IGQ7IGQgPSBkLT5uZXh0KSB7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCmxpYi9zZHAuYzo0OTM5Ojg6IHdhcm5pbmc6IFBv dGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdzdWJzZXEnCiAgICAgICAgICAg ICAgICB0c2VxID0gc2RwX2xpc3RfYXBwZW5kKHRzZXEsIHN1YnNlcSk7CiAgICAgICAgICAgICAg ICB+fn5+fl5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMTIgd2FybmluZ3MgZ2VuZXJh dGVkLgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6NDUxOjIxOiB3YXJuaW5nOiBVc2Ugb2YgbWVt b3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZ2F0dF9kYl91bnJlZ2lzdGVyKG9wLT5jbGll bnQtPmRiLCBvcC0+ZGJfaWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+ CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzo2OTY6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBh ZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgZmFsc2Us IGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6OTk2OjI6IHdhcm5pbmc6IFVzZSBvZiBt ZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3As IHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxMTAyOjI6IHdhcm5p bmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3Bf Y29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzox Mjk2OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBk aXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7CiAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0 dC1jbGllbnQuYzoxMzYxOjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJl ZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIHN1Y2Nlc3MsIGF0dF9lY29kZSk7 CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNy Yy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNjM2OjY6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0 ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNoKG9wKSkgewogICAgICAgICAg ICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoxNjQxOjI6IHdhcm5p bmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcl9hbGwo b3ApOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjIx NDc6Njogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGlm IChyZWFkX2RiX2hhc2gob3ApKSB7CiAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3JjL3No YXJlZC9nYXR0LWNsaWVudC5jOjIxNTU6ODogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBp dCBpcyBmcmVlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRpc2NvdmVyeV9vcF9yZWYob3ApLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9z aGFyZWQvZ2F0dC1jbGllbnQuYzozMjQ0OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIg aXQgaXMgZnJlZWQKICAgICAgICBjb21wbGV0ZV93cml0ZV9sb25nX29wKHJlcSwgc3VjY2Vzcywg MCwgZmFsc2UpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjMyNjY6Mjogd2FybmluZzogVXNlIG9m IG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIHJlcXVlc3RfdW5yZWYocmVxKTsKICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn4KMTIgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvc2hhcmVk L2JhcC5jOjE0OTU6ODogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAog ICAgICAgIGJhcCA9IGJ0X2JhcF9yZWZfc2FmZShiYXApOwogICAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvYmFwLmM6MjI0NToyMDogd2FybmluZzogVXNlIG9mIG1l bW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIHJldHVybiBxdWV1ZV9maW5kKHN0cmVhbS0+ YmFwLT5zdHJlYW1zLCBOVUxMLCBzdHJlYW0pOwogICAgICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgptb25pdG9yL2wyY2FwLmM6 MTYzODo0OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2RhdGEnIGlzIG5ldmVyIHJlYWQKICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YSArPSBsZW47CiAgICAgICAgICAgICAgICAgICAgICAg IF4gICAgICAgfn5+Cm1vbml0b3IvbDJjYXAuYzoxNjM5OjQ6IHdhcm5pbmc6IFZhbHVlIHN0b3Jl ZCB0byAnc2l6ZScgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICBzaXplIC09 IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgICB+fn4KMiB3YXJuaW5ncyBnZW5l cmF0ZWQuCm1vbml0b3IvaHdkYi5jOjU5OjI6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnaHdk YicgaXMgbmV2ZXIgcmVhZAogICAgICAgIGh3ZGIgPSB1ZGV2X2h3ZGJfdW5yZWYoaHdkYik7CiAg ICAgICAgXiAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fgptb25pdG9yL2h3ZGIuYzo2NDoyOiB3 YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3VkZXYnIGlzIG5ldmVyIHJlYWQKICAgICAgICB1ZGV2 ID0gdWRldl91bnJlZih1ZGV2KTsKICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fgptb25p dG9yL2h3ZGIuYzoxMDY6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdod2RiJyBpcyBuZXZl ciByZWFkCiAgICAgICAgaHdkYiA9IHVkZXZfaHdkYl91bnJlZihod2RiKTsKICAgICAgICBeICAg ICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+Cm1vbml0b3IvaHdkYi5jOjExMToyOiB3YXJuaW5nOiBW YWx1ZSBzdG9yZWQgdG8gJ3VkZXYnIGlzIG5ldmVyIHJlYWQKICAgICAgICB1ZGV2ID0gdWRldl91 bnJlZih1ZGV2KTsKICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fgo0IHdhcm5pbmdzIGdl bmVyYXRlZC4KdG9vbHMvYmx1ZW1vb24uYzoxMTAyOjg6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBw YXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgICAgICAg ICAgICAgICAgIGlmIChzdHJsZW4ob3B0YXJnKSA+IDMgJiYgIXN0cm5jbXAob3B0YXJnLCAiaGNp IiwgMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgoxIHdhcm5p bmcgZ2VuZXJhdGVkLgp0b29scy9tZXNoY3RsLmM6MzI2OjE5OiB3YXJuaW5nOiBBY2Nlc3MgdG8g ZmllbGQgJ21lc2hfZGV2aWNlcycgcmVzdWx0cyBpbiBhIGRlcmVmZXJlbmNlIG9mIGEgbnVsbCBw b2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAnZGVmYXVsdF9jdHJsJykKICAgICAgICBnX2xp c3RfZnJlZV9mdWxsKGRlZmF1bHRfY3RybC0+bWVzaF9kZXZpY2VzLCBnX2ZyZWUpOwogICAgICAg ICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvbWVzaGN0 bC5jOjc2MjoyOiB3YXJuaW5nOiAybmQgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmlu aXRpYWxpemVkIHZhbHVlCiAgICAgICAgYnRfc2hlbGxfcHJpbnRmKCJBdHRlbXB0aW5nIHRvIGRp c2Nvbm5lY3QgZnJvbSAlc1xuIiwgYWRkcik7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvbWVzaGN0bC5jOjE5 NTc6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAg ICBsZW4gPSBsZW4gKyBleHRyYSArIHN0cmxlbigibG9jYWxfbm9kZS5qc29uIik7CiAgICAgICAg XiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjMgd2FybmluZ3Mg Z2VuZXJhdGVkLgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gdG9vbHMvbWVzaC1nYXR0L2NyeXB0by5j OjMyOgouL3NyYy9zaGFyZWQvdXRpbC5oOjI0MTo5OiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2Fs bCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgcmV0dXJuIGJlMzJf dG9fY3B1KGdldF91bmFsaWduZWQoKGNvbnN0IHVpbnQzMl90ICopIHB0cikpOwogICAgICAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgou L3NyYy9zaGFyZWQvdXRpbC5oOjMzOjI2OiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdiZTMy X3RvX2NwdScKI2RlZmluZSBiZTMyX3RvX2NwdSh2YWwpIGJzd2FwXzMyKHZhbCkKICAgICAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2J5dGVzd2FwLmg6MzQ6 MjE6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2Jzd2FwXzMyJwojZGVmaW5lIGJzd2FwXzMy KHgpIF9fYnN3YXBfMzIgKHgpCiAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIHRvb2xzL21lc2gtZ2F0dC9jcnlwdG8uYzozMjoKLi9zcmMvc2hh cmVkL3V0aWwuaDoyNTE6OTogd2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMg YW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgIHJldHVybiBiZTY0X3RvX2NwdShnZXRfdW5h bGlnbmVkKChjb25zdCB1aW50NjRfdCAqKSBwdHIpKTsKICAgICAgICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLi9zcmMvc2hhcmVkL3V0 aWwuaDozNDoyNjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYmU2NF90b19jcHUnCiNkZWZp bmUgYmU2NF90b19jcHUodmFsKSBic3dhcF82NCh2YWwpCiAgICAgICAgICAgICAgICAgICAgICAg ICBefn5+fn5+fn5+fn5+Ci91c3IvaW5jbHVkZS9ieXRlc3dhcC5oOjM3OjIxOiBub3RlOiBleHBh bmRlZCBmcm9tIG1hY3JvICdic3dhcF82NCcKI2RlZmluZSBic3dhcF82NCh4KSBfX2Jzd2FwXzY0 ICh4KQogICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJh dGVkLgplbGwvdXRpbC5jOjg1Mzo4OiB3YXJuaW5nOiBUaGUgbGVmdCBvcGVyYW5kIG9mICc+JyBp cyBhIGdhcmJhZ2UgdmFsdWUKICAgICAgICBpZiAoeCA+IFVJTlQ4X01BWCkKICAgICAgICAgICAg fiBeCmVsbC91dGlsLmM6ODcxOjg6IHdhcm5pbmc6IFRoZSBsZWZ0IG9wZXJhbmQgb2YgJz4nIGlz IGEgZ2FyYmFnZSB2YWx1ZQogICAgICAgIGlmICh4ID4gVUlOVDE2X01BWCkKICAgICAgICAgICAg fiBeCjIgd2FybmluZ3MgZ2VuZXJhdGVkLgplbGwvcGVtLmM6MTMxOjg6IHdhcm5pbmc6IERlcmVm ZXJlbmNlIG9mIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ2VvbCcpCiAgICAg ICAgICAgICAgICAgICAgICAgIGlmICgqZW9sID09ICdccicgfHwgKmVvbCA9PSAnXG4nKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgXn5+fgplbGwvcGVtLmM6MTY2OjE4OiB3YXJuaW5nOiBE ZXJlZmVyZW5jZSBvZiBudWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdlb2wnKQog ICAgICAgICAgICAgICAgaWYgKGJ1Zl9sZW4gJiYgKmVvbCA9PSAnXHInICYmICpidWZfcHRyID09 ICdcbicpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn4KZWxsL3BlbS5jOjE2 NjozNDogd2FybmluZzogRGVyZWZlcmVuY2Ugb2YgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2 YXJpYWJsZSAnYnVmX3B0cicpCiAgICAgICAgICAgICAgICBpZiAoYnVmX2xlbiAmJiAqZW9sID09 ICdccicgJiYgKmJ1Zl9wdHIgPT0gJ1xuJykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+CmVsbC9wZW0uYzozMDQ6MTE6IHdhcm5pbmc6IDFz dCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAg ICByZXN1bHQgPSBwZW1fbG9hZF9idWZmZXIoZmlsZS5kYXRhLCBmaWxlLnN0LnN0X3NpemUsCiAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgplbGwvcGVtLmM6NDY5Ojk6IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlz IGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICBsaXN0ID0gbF9wZW1fbG9hZF9jZXJ0aWZp Y2F0ZV9saXN0X2Zyb21fZGF0YShmaWxlLmRhdGEsCiAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo1IHdhcm5pbmdzIGdlbmVyYXRl ZC4KZWxsL2NlcnQuYzo2NDQ6NDE6IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnYXNuMV9sZW4n IHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20g dmFyaWFibGUgJ2NlcnQnKQogICAgICAgIGtleSA9IGxfa2V5X25ldyhMX0tFWV9SU0EsIGNlcnQt PmFzbjEsIGNlcnQtPmFzbjFfbGVuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgplbGwvZ3Zh cmlhbnQtdXRpbC5jOjE0MzoxODogd2FybmluZzogVGhlIGxlZnQgb3BlcmFuZCBvZiAnPicgaXMg YSBnYXJiYWdlIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbGlnbm1lbnQgPiBt YXhfYWxpZ25tZW50KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+IF4KZWxs L2d2YXJpYW50LXV0aWwuYzo0NTY6NTogd2FybmluZzogRGVyZWZlcmVuY2Ugb2YgbnVsbCBwb2lu dGVyCiAgICAgICAgICAgICAgICAgICAgICAgICFjaGlsZHJlblswXS5maXhlZF9zaXplKSB7CiAg ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3Mg Z2VuZXJhdGVkLgplbGwvZWNjLWV4dGVybmFsLmM6Nzc6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZh bHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICBkZXN0W2ldID0gc3Jj W2ldOwogICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fgplbGwvZWNjLWV4dGVybmFsLmM6 MTYwOjE4OiB3YXJuaW5nOiBUaGUgcmlnaHQgb3BlcmFuZCBvZiAnLScgaXMgYSBnYXJiYWdlIHZh bHVlCiAgICAgICAgICAgICAgICBkaWZmID0gbGVmdFtpXSAtIHJpZ2h0W2ldIC0gYm9ycm93Owog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fgplbGwvZWNjLWV4dGVybmFs LmM6MjI3OjE0OiB3YXJuaW5nOiAybmQgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmlu aXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QgPSBtdWxfNjRf NjQobGVmdFtpXSwgcmlnaHRbayAtIGldKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmVsbC9lY2MtZXh0ZXJuYWwuYzo0 MDg6OTogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAg ICAgICB0bXBbMV0gPSBwcm9kdWN0WzNdOwogICAgICAgICAgICAgICBeIH5+fn5+fn5+fn4KZWxs L2VjYy1leHRlcm5hbC5jOjQzNToyMjogd2FybmluZzogVGhlIGxlZnQgb3BlcmFuZCBvZiAnJicg aXMgYSBnYXJiYWdlIHZhbHVlCiAgICAgICAgdG1wWzFdID0gcHJvZHVjdFszXSAmIDB4ZmZmZmZm ZmYwMDAwMDAwMHVsbDsKICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+IF4KZWxsL2VjYy1leHRl cm5hbC5jOjQ4MzoyMjogd2FybmluZzogVGhlIGxlZnQgb3BlcmFuZCBvZiAnJicgaXMgYSBnYXJi YWdlIHZhbHVlCiAgICAgICAgdG1wWzFdID0gcHJvZHVjdFs1XSAmIDB4ZmZmZmZmZmYwMDAwMDAw MHVsbDsKICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+IF4KZWxsL2VjYy1leHRlcm5hbC5jOjY4 ODoyODogd2FybmluZzogVGhlIGxlZnQgb3BlcmFuZCBvZiAnPj4nIGlzIGEgZ2FyYmFnZSB2YWx1 ZQogICAgICAgICAgICAgICAgdG1wW2ldID0gKHByb2R1Y3RbOCArIGldID4+IDkpIHwgKHByb2R1 Y3RbOSArIGldIDw8IDU1KTsKICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+fn5+ fiBeCjcgd2FybmluZ3MgZ2VuZXJhdGVkLgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gdG9vbHMvcGFy c2VyL2wyY2FwLmM6MjQ6CnRvb2xzL3BhcnNlci9wYXJzZXIuaDoxMjE6MTY6IHdhcm5pbmc6IERl cmVmZXJlbmNlIG9mIG51bGwgcG9pbnRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRpbWVfdCB0ID0gZi0+dHMudHZfc2VjOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXn5+fn5+fn5+fn5+CnRvb2xzL3BhcnNlci9wYXJzZXIuaDoxMjc6Mjc6IHdh cm5pbmc6IERlcmVmZXJlbmNlIG9mIG51bGwgcG9pbnRlcgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHByaW50ZigiJThsdS4lMDZsdSAiLCBmLT50cy50dl9zZWMsIGYtPnRzLnR2X3Vz ZWMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBefn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL3g4Nl82NC1saW51eC1nbnUvYml0cy9zdGRpbzIu aDoxMTE6NDI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ3ByaW50ZicKICBfX3ByaW50Zl9j aGsgKF9fVVNFX0ZPUlRJRllfTEVWRUwgLSAxLCBfX1ZBX0FSR1NfXykKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fgpJbiBmaWxlIGluY2x1ZGVkIGZy b20gdG9vbHMvcGFyc2VyL2wyY2FwLmM6MjQ6CnRvb2xzL3BhcnNlci9wYXJzZXIuaDoxMjk6MTg6 IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnaW4nIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBv ZiBhIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ2YnKQogICAgICAgICAgICAg ICAgcHJpbnRmKCIlYyAiLCAoZi0+aW4gPyAnPicgOiAnPCcpKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fn5+Ci91c3IvaW5jbHVkZS94ODZfNjQtbGludXgtZ251L2JpdHMvc3Rk aW8yLmg6MTExOjQyOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdwcmludGYnCiAgX19wcmlu dGZfY2hrIChfX1VTRV9GT1JUSUZZX0xFVkVMIC0gMSwgX19WQV9BUkdTX18pCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn4KMyB3YXJuaW5ncyBnZW5l cmF0ZWQuCkluIGZpbGUgaW5jbHVkZWQgZnJvbSB0b29scy9wYXJzZXIvc2RwLmM6MjQ6CnRvb2xz L3BhcnNlci9wYXJzZXIuaDoxMjE6MTY6IHdhcm5pbmc6IERlcmVmZXJlbmNlIG9mIG51bGwgcG9p bnRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVfdCB0ID0gZi0+dHMudHZf c2VjOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+ fn5+CnRvb2xzL3BhcnNlci9wYXJzZXIuaDoxMjc6Mjc6IHdhcm5pbmc6IERlcmVmZXJlbmNlIG9m IG51bGwgcG9pbnRlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiJThs dS4lMDZsdSAiLCBmLT50cy50dl9zZWMsIGYtPnRzLnR2X3VzZWMpOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn4KL3Vzci9p bmNsdWRlL3g4Nl82NC1saW51eC1nbnUvYml0cy9zdGRpbzIuaDoxMTE6NDI6IG5vdGU6IGV4cGFu ZGVkIGZyb20gbWFjcm8gJ3ByaW50ZicKICBfX3ByaW50Zl9jaGsgKF9fVVNFX0ZPUlRJRllfTEVW RUwgLSAxLCBfX1ZBX0FSR1NfXykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn5+fn5+fn5+fgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gdG9vbHMvcGFyc2VyL3NkcC5j OjI0Ogp0b29scy9wYXJzZXIvcGFyc2VyLmg6MTI5OjE4OiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmll bGQgJ2luJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIgKGxvYWRl ZCBmcm9tIHZhcmlhYmxlICdmJykKICAgICAgICAgICAgICAgIHByaW50ZigiJWMgIiwgKGYtPmlu ID8gJz4nIDogJzwnKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fgovdXNy L2luY2x1ZGUveDg2XzY0LWxpbnV4LWdudS9iaXRzL3N0ZGlvMi5oOjExMTo0Mjogbm90ZTogZXhw YW5kZWQgZnJvbSBtYWNybyAncHJpbnRmJwogIF9fcHJpbnRmX2NoayAoX19VU0VfRk9SVElGWV9M RVZFTCAtIDEsIF9fVkFfQVJHU19fKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgpJbiBmaWxlIGluY2x1ZGVk IGZyb20gdG9vbHMvcGFyc2VyL3BwcC5jOjIyOgp0b29scy9wYXJzZXIvcGFyc2VyLmg6MTU2OjI6 IHdhcm5pbmc6IFVuZGVmaW5lZCBvciBnYXJiYWdlIHZhbHVlIHJldHVybmVkIHRvIGNhbGxlcgog ICAgICAgIHJldHVybiAqdThfcHRyOwogICAgICAgIF5+fn5+fn5+fn5+fn5+CnRvb2xzL3BhcnNl ci9wcHAuYzoxMDg6MzA6IHdhcm5pbmc6IFRoZSBsZWZ0IG9wZXJhbmQgb2YgJyYnIGlzIGEgZ2Fy YmFnZSB2YWx1ZQogICAgICAgIGlmICgqKCh1aW50OF90ICopIGZybS0+cHRyKSAmIDB4ODApCiAg ICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+IF4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQu CmVtdWxhdG9yL3NlcmlhbC5jOjE1MDoyOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJi YWdlIG9yIHVuZGVmaW5lZAogICAgICAgIGVudW0gYnRkZXZfdHlwZSB1bmluaXRpYWxpemVkX3Zh cih0eXBlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K ZW11bGF0b3Ivc2VyaWFsLmM6MTUwOjM2OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3R5cGUn IGR1cmluZyBpdHMgaW5pdGlhbGl6YXRpb24gaXMgbmV2ZXIgcmVhZAogICAgICAgIGVudW0gYnRk ZXZfdHlwZSB1bmluaXRpYWxpemVkX3Zhcih0eXBlKTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+fgplbXVsYXRvci9zZXJpYWwuYzozNjozMDogbm90ZTogZXhw YW5kZWQgZnJvbSBtYWNybyAndW5pbml0aWFsaXplZF92YXInCiNkZWZpbmUgdW5pbml0aWFsaXpl ZF92YXIoeCkgeCA9IHgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgfgplbXVsYXRv ci9zZXJpYWwuYzoyMTM6Mjogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1 bmRlZmluZWQKICAgICAgICBlbnVtIGJ0ZGV2X3R5cGUgdW5pbml0aWFsaXplZF92YXIoZGV2X3R5 cGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K ZW11bGF0b3Ivc2VyaWFsLmM6MjEzOjM2OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2Rldl90 eXBlJyBkdXJpbmcgaXRzIGluaXRpYWxpemF0aW9uIGlzIG5ldmVyIHJlYWQKICAgICAgICBlbnVt IGJ0ZGV2X3R5cGUgdW5pbml0aWFsaXplZF92YXIoZGV2X3R5cGUpOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fgplbXVsYXRvci9zZXJpYWwuYzozNjoz MDogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAndW5pbml0aWFsaXplZF92YXInCiNkZWZpbmUg dW5pbml0aWFsaXplZF92YXIoeCkgeCA9IHgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe ICAgfgo0IHdhcm5pbmdzIGdlbmVyYXRlZC4KZW11bGF0b3Ivc2VydmVyLmM6MjAwOjI6IHdhcm5p bmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgZW51bSBi dGRldl90eXBlIHVuaW5pdGlhbGl6ZWRfdmFyKHR5cGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgplbXVsYXRvci9zZXJ2ZXIuYzoyMDA6MzY6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAndHlwZScgZHVyaW5nIGl0cyBpbml0aWFsaXphdGlvbiBpcyBu ZXZlciByZWFkCiAgICAgICAgZW51bSBidGRldl90eXBlIHVuaW5pdGlhbGl6ZWRfdmFyKHR5cGUp OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+CmVtdWxhdG9y L3NlcnZlci5jOjM2OjMwOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICd1bmluaXRpYWxpemVk X3ZhcicKI2RlZmluZSB1bmluaXRpYWxpemVkX3Zhcih4KSB4ID0geAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4gICB+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgplbXVsYXRvci9iMWVlLmM6 MjU4OjM6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdz ZXJ2ZXJfcG9ydCcKICAgICAgICAgICAgICAgIGludCBvcHQ7CiAgICAgICAgICAgICAgICBefn5+ fn5+CmVtdWxhdG9yL2IxZWUuYzoyNTg6Mzogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVt b3J5IHBvaW50ZWQgdG8gYnkgJ3NuaWZmZXJfcG9ydCcKICAgICAgICAgICAgICAgIGludCBvcHQ7 CiAgICAgICAgICAgICAgICBefn5+fn5+CmVtdWxhdG9yL2IxZWUuYzoyODk6Mjogd2FybmluZzog VmFsdWUgc3RvcmVkIHRvICdhcmdjJyBpcyBuZXZlciByZWFkCiAgICAgICAgYXJnYyA9IGFyZ2Mg LSBvcHRpbmQ7CiAgICAgICAgXiAgICAgIH5+fn5+fn5+fn5+fn4KMyB3YXJuaW5ncyBnZW5lcmF0 ZWQuCmdvYmV4L2dvYmV4LWhlYWRlci5jOjk1OjI6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNz ZWQgdG8gMm5kIHBhcmFtZXRlciBleHBlY3RpbmcgJ25vbm51bGwnCiAgICAgICAgbWVtY3B5KHRv LCBmcm9tLCBjb3VudCk7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5n IGdlbmVyYXRlZC4KZ29iZXgvZ29iZXgtdHJhbnNmZXIuYzo0MjM6Nzogd2FybmluZzogVXNlIG9m IG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGlmICghZ19zbGlzdF9maW5kKHRyYW5z ZmVycywgdHJhbnNmZXIpKQogICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmF0dHJpYi9nYXR0LmM6OTcwOjI6IHdhcm5pbmc6 IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdsb25nX3dyaXRlJwogICAg ICAgIHJldHVybiBwcmVwYXJlX3dyaXRlKGxvbmdfd3JpdGUpOwogICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmVtdWxhdG9yL2J0ZGV2 LmM6NTQ0ODoyMzogd2FybmluZzogQWNjZXNzIHRvIGZpZWxkICdsZV9leHRfYWR2JyByZXN1bHRz IGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxl ICdyZW1vdGUnKQogICAgICAgIGV4dF9hZHYgPSBxdWV1ZV9maW5kKHJlbW90ZS0+bGVfZXh0X2Fk diwgbWF0Y2hfc2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9idHBjbGllbnQuYzoyNDk1OjM6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAncmVwbHknIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAg IHJlcGx5ID0gbF9kYnVzX21lc3NhZ2VfbmV3X2Vycm9yKGFnLnBlbmRpbmdfcmVxLAogICAgICAg ICAgICAgICAgXiAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CjEgd2FybmluZyBnZW5lcmF0ZWQuCmFuZHJvaWQvYXZkdHAuYzo3NTY6MjU6IHdhcm5pbmc6IFVz ZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgIHNlc3Npb24tPnBy aW9fcXVldWUgPSBnX3NsaXN0X3JlbW92ZShzZXNzaW9uLT5wcmlvX3F1ZXVlLCByZXEpOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KYW5kcm9pZC9hdmR0cC5jOjc2MzoyNDogd2FybmluZzogVXNlIG9m IG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAgICAgICAgc2Vzc2lvbi0+cmVxX3F1 ZXVlID0gZ19zbGlzdF9yZW1vdmUoc2Vzc2lvbi0+cmVxX3F1ZXVlLCByZXEpOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpwcm9maWxlcy9hdWRpby9tZWRpYS5jOjEw NTc6Nzogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAg ICAgICAgaWYgKHJlcS0+Y2IgIT0gcGFjX3NlbGVjdF9jYikgewogICAgICAgICAgICAgICAgICAg IF5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4Kb2JleGQvc3JjL21haW4uYzozMDg6Njogd2Fy bmluZzogQXJyYXkgYWNjZXNzIChmcm9tIHZhcmlhYmxlICdvcHRpb25fcm9vdCcpIHJlc3VsdHMg aW4gYSBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UKICAgICAgICBpZiAob3B0aW9uX3Jvb3RbMF0g IT0gJy8nKSB7CiAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQu Cm9iZXhkL3BsdWdpbnMvdmNhcmQuYzo3MDE6Njogd2FybmluZzogMm5kIGZ1bmN0aW9uIGNhbGwg YXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgIGlmIChzZWxlY3RfcXBf ZW5jb2RpbmcoZm9ybWF0LCBhZGRyZXNzX2ZpZWxkc1swXSwgYWRkcmVzc19maWVsZHNbMV0sCiAg ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4Kb2JleGQvcGx1Z2lucy92Y2FyZC5jOjcwMTo2OiB3YXJuaW5nOiAz cmQgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAg ICAgaWYgKHNlbGVjdF9xcF9lbmNvZGluZyhmb3JtYXQsIGFkZHJlc3NfZmllbGRzWzBdLCBhZGRy ZXNzX2ZpZWxkc1sxXSwKICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpvYmV4ZC9wbHVnaW5zL3ZjYXJkLmM6 NzAxOjY6IHdhcm5pbmc6IDR0aCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlh bGl6ZWQgdmFsdWUKICAgICAgICBpZiAoc2VsZWN0X3FwX2VuY29kaW5nKGZvcm1hdCwgYWRkcmVz c19maWVsZHNbMF0sIGFkZHJlc3NfZmllbGRzWzFdLAogICAgICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Cm9iZXhk L3BsdWdpbnMvdmNhcmQuYzo3MDE6Njogd2FybmluZzogNXRoIGZ1bmN0aW9uIGNhbGwgYXJndW1l bnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgIGlmIChzZWxlY3RfcXBfZW5jb2Rp bmcoZm9ybWF0LCBhZGRyZXNzX2ZpZWxkc1swXSwgYWRkcmVzc19maWVsZHNbMV0sCiAgICAgICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KNCB3YXJuaW5ncyBnZW5lcmF0ZWQuCm9iZXhkL3NyYy9sb2dpbmQuYzogSW4g ZnVuY3Rpb24g4oCYbG9naW5kX2luaXTigJk6Cm9iZXhkL3NyYy9sb2dpbmQuYzoxMjY6ODogZXJy b3I6IHZhcmlhYmxlIOKAmHNvdXJjZeKAmSBzZXQgYnV0IG5vdCB1c2VkIFstV2Vycm9yPXVudXNl ZC1idXQtc2V0LXZhcmlhYmxlXQogIDEyNiB8ICBndWludCBzb3VyY2U7CiAgICAgIHwgICAgICAg IF5+fn5+fgpvYmV4ZC9zcmMvbG9naW5kLmM6IEluIGZ1bmN0aW9uIOKAmGxvZ2luZF9yZWdpc3Rl cuKAmToKb2JleGQvc3JjL2xvZ2luZC5jOjIwMzoyOiBlcnJvcjogSVNPIEM5MCBmb3JiaWRzIG1p eGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZSBbLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0 ZW1lbnRdCiAgMjAzIHwgIHN0cnVjdCBjYWxsYmFja19wYWlyICpjYnMgPSBnX25ldyhzdHJ1Y3Qg Y2FsbGJhY2tfcGFpciwgMSk7CiAgICAgIHwgIF5+fn5+fgpvYmV4ZC9zcmMvbG9naW5kLmM6IElu IGZ1bmN0aW9uIOKAmGxvZ2luZF91bnJlZ2lzdGVy4oCZOgpvYmV4ZC9zcmMvbG9naW5kLmM6MjE1 OjI6IGVycm9yOiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIFst V2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudF0KICAyMTUgfCAgR1NMaXN0ICpjYl9u b2RlID0gZ19zbGlzdF9maW5kX2N1c3RvbShjYWxsYmFja3MsIGluaXRfY2IsIGZpbmRfY2IpOwog ICAgICB8ICBefn5+fn4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMK bWFrZVsxXTogKioqIFtNYWtlZmlsZTo5Nzc2OiBvYmV4ZC9zcmMvb2JleGQtbG9naW5kLm9dIEVy cm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4Kb2JleGQv cGx1Z2lucy9tZXNzYWdlcy1kdW1teS5jOjE2NTo5OiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQg J25leHQnIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlciAobG9hZGVk IGZyb20gdmFyaWFibGUgJ2N1cicpCiAgICAgICAgICAgICAgICBjdXIgPSBjdXItPm5leHQ7CiAg ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KbWFrZTog KioqIFtNYWtlZmlsZTo0NjkwOiBhbGxdIEVycm9yIDIKCgotLS0KUmVnYXJkcywKTGludXggQmx1 ZXRvb3RoCgo= --===============5458358547514761798==--