From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from picard.linux.it (picard.linux.it [213.254.12.146]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C0865C4828F for ; Thu, 8 Feb 2024 16:16:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=lists.linux.it; i=@lists.linux.it; q=dns/txt; s=picard; t=1707408974; h=message-id : date : mime-version : to : references : in-reply-to : subject : list-id : list-unsubscribe : list-archive : list-post : list-help : list-subscribe : from : reply-to : content-transfer-encoding : content-type : sender : from; bh=L5aXWE6ORExJvZ/ACOo5yqILl6+g2XeyV4xzB3SR7Xs=; b=mvqG2TXf3vKeq9BpEsdyovnN7iFZkk3DCdK0gw8KqK5Vow/X1EYog8aGiBeEEbX/h0EoY oRpVLCUP9nOB3pi3BOqKR0WHfQWyrNS9iYiGRKyabT90fi2pATAHdWWcSK6sghhdALTJPm0 BGyv6uGj+qrPw5n+NNS+vl9TCIWFHRk= Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 1F9503CF539 for ; Thu, 8 Feb 2024 17:16:14 +0100 (CET) Received: from in-5.smtp.seeweb.it (in-5.smtp.seeweb.it [217.194.8.5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id 4A06E3CAB54 for ; Thu, 8 Feb 2024 17:15:52 +0100 (CET) Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by in-5.smtp.seeweb.it (Postfix) with ESMTPS id 5178B605642 for ; Thu, 8 Feb 2024 17:15:51 +0100 (CET) Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-40ef3f351d2so6488095e9.1 for ; Thu, 08 Feb 2024 08:15:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1707408950; x=1708013750; darn=lists.linux.it; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=AETFF4HbfsF/Q5yQ1RI5f1dTiT2mSsgJMgTQqWp4jnE=; b=eFbhzPUV8vDSCyeRqVr4KH8Qxj6SZthc8g5CyPBqDLG7nU6v71jLXo+juRmYHyx3h2 KU5mVer61fF5UNRsv1yG9Zyh5vpK8TUgh2lc382VL41T3W6c+dNqJ3fJiTe+Y62wNErM HLghrhdLR28pmQhs4+xYZxY6JSzterr9fdBW0oVEu4SiPqAd4r+wHDIHGMoeNMaaDxow KtQDRJEYjMLa3g687LoKz6H26NrrpfmW3csBlvfmJANBz5slFyd92V1PhS25eGS3H4p7 wUHyrLET67z4toPMb8mIfDPR7zRIRQlrm2bxqoUzWrh7dJ8uKKB2FtKoD6DrlefSED/3 KXwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707408950; x=1708013750; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=AETFF4HbfsF/Q5yQ1RI5f1dTiT2mSsgJMgTQqWp4jnE=; b=VLIM0hPe5YvsTDeClHq8VvwPkNOhyyf3BSWjDSzkoLWYt6CzDZz8kNB5jbKs/kz/y9 YIN/qRASGq4dp7pOvUbO1oH6Ya9BR7ORn3D7ndiEe/Nepq/TZJFuNZMNNXVbN+QSWRnn w91FqCNiHiPVUqi6bVIA4rINdFyTQNn/O7iumLcI51wh0WzCgMYDSjFfRQ3VCaZJVNmO +ukyHSfnNn2y++1o4gxTIxxa5wzlR4Kwcs3Bd0OoqHQ990EtvWfjtnYDNpAIn+80yZcT sm6uNIPuGldiP5aA4RcYj9gKN/aHgRa0OCFClq6V1E0FgK1SBK6GWK704p6vrCTfVFRz BTAg== X-Gm-Message-State: AOJu0Yw9QRvqjsMJjDajR6z8qQIQdLYmWt/UgpQBQLGkewQCWxANW09S ///T6Xm4yj4LjXo07S8sY+N6oAKC+q+g/T1od3qAzb8rvMA2CSa267a3Z3aeRy7yD0psE0MEzhp WFbw= X-Google-Smtp-Source: AGHT+IFnafN/CI6BJX2b0WoHl65hd15FZaCKEivog7++qgXtaNiBgjgKGR0QCNVVbiXSfDWGhpjy6w== X-Received: by 2002:a05:600c:1e0a:b0:410:2dc5:c3a4 with SMTP id ay10-20020a05600c1e0a00b004102dc5c3a4mr73270wmb.0.1707408950404; Thu, 08 Feb 2024 08:15:50 -0800 (PST) Received: from [10.232.133.56] ([88.128.88.176]) by smtp.gmail.com with ESMTPSA id l1-20020a5d5601000000b0033b406bc689sm3910695wrv.75.2024.02.08.08.15.49 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 08 Feb 2024 08:15:49 -0800 (PST) Message-ID: <05affd60-0bb5-4b77-a8c0-896eef3f80a1@suse.com> Date: Thu, 8 Feb 2024 17:15:49 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ltp@lists.linux.it References: <20230925112245.30701-1-wegao@suse.com> <20231201005902.15630-1-wegao@suse.com> <20231201005902.15630-2-wegao@suse.com> In-Reply-To: <20231201005902.15630-2-wegao@suse.com> X-Virus-Scanned: clamav-milter 1.0.3 at in-5.smtp.seeweb.it X-Virus-Status: Clean Subject: Re: [LTP] [PATCH v2 1/2] ptrace05: Refactor the test using new LTP API X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Andrea Cervesato via ltp Reply-To: Andrea Cervesato Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ltp-bounces+ltp=archiver.kernel.org@lists.linux.it Sender: "ltp" SGkhCgpPbiAxMi8xLzIzIDAxOjU5LCBXZWkgR2FvIHZpYSBsdHAgd3JvdGU6Cj4gU2lnbmVkLW9m Zi1ieTogV2VpIEdhbyA8d2VnYW9Ac3VzZS5jb20+Cj4gLS0tCj4gdGVzdGNhc2VzL2tlcm5lbC9z eXNjYWxscy9wdHJhY2UvcHRyYWNlMDUuYyB8IDE3OSArKysrKystLS0tLS0tLS0tLS0tLQo+IDEg ZmlsZSBjaGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspLCAxMjkgZGVsZXRpb25zKC0pCj4KPiBkaWZm IC0tZ2l0IGEvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9wdHJhY2UvcHRyYWNlMDUuYyAKPiBi L3Rlc3RjYXNlcy9rZXJuZWwvc3lzY2FsbHMvcHRyYWNlL3B0cmFjZTA1LmMKPiBpbmRleCA1NDEw MTgzOTMuLjI2N2Q1ZjlkMiAxMDA2NDQKPiAtLS0gYS90ZXN0Y2FzZXMva2VybmVsL3N5c2NhbGxz L3B0cmFjZS9wdHJhY2UwNS5jCj4gKysrIGIvdGVzdGNhc2VzL2tlcm5lbC9zeXNjYWxscy9wdHJh Y2UvcHRyYWNlMDUuYwo+IEBAIC0xLDE3OCArMSw5OSBAQAo+ICsvLyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgo+IC8qCj4gLSAKPiAqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKPiAtICoKPiAtICrCoMKgIHB0cmFjZTA1IC0gYW4gYXBwIHdoaWNoIHB0cmFjZXMgaXRzZWxm IGFzIHBlciBhcmJpdHJhcmlseSAKPiBzcGVjaWZpZWQgc2lnbmFscywKPiAtICrCoMKgIG92ZXIg YSB1c2VyIHNwZWNpZmllZCByYW5nZS4KPiAtICoKPiAtICrCoMKgIENvcHlyaWdodCAoQykgMjAw OSwgTmdpZSBDb29wZXIKPiAtICoKPiAtICrCoMKgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgCj4gbW9kaWZ5Cj4gLSAqwqDCoCBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIAo+ IHB1Ymxpc2hlZCBieQo+IC0gKsKgwqAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKPiAtICrCoMKgIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCj4gLSAqCj4gLSAqwqDCoCBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKPiAtICrCoMKgIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCj4gLSAqwqDCoCBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuwqAgU2VlIHRoZQo+IC0gKsKgwqAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KPiArICogQ29weXJpZ2h0IChjKSBMaW51eCBUZXN0IFByb2plY3Qs IDIwMDktMjAxOQo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMDksIE5naWUgQ29vcGVyCj4gKyAqIENv cHlyaWdodCAoYykgMjAyMyBXZWkgR2FvIDx3ZWdhb0BzdXNlLmNvbT4KPiArICovCj4gKwo+ICsv KlwKPiArICogW0Rlc2NyaXB0aW9uXQo+IMKgKgo+IC0gKsKgwqAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIAo+IExpY2Vuc2UgYWxvbmcK PiAtICrCoMKgIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv ZnR3YXJlIAo+IEZvdW5kYXRpb24sIEluYy4sCj4gLSAqwqDCoCA1MSBGcmFua2xpbiBTdHJlZXQs IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBLgo+ICsgKiBUaGlzIHRlc3Qg cHRyYWNlcyBpdHNlbGYgYXMgcGVyIGFyYml0cmFyaWx5IHNwZWNpZmllZCBzaWduYWxzLAo+ICsg KiBvdmVyIDAgdG8gU0lHUlRNQVggcmFuZ2UuCj4gwqAqCj4gLSAKPiAqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKPiDCoCovCj4KPiAtI2luY2x1ZGUgPHN5cy90eXBlcy5oPgo+IC0jaW5jbHVkZSA8c3lz L3dhaXQuaD4KPiAtI2luY2x1ZGUgPHNpZ25hbC5oPgo+IC0jaW5jbHVkZSA8ZXJybm8uaD4KPiAt I2luY2x1ZGUgPGxpYmdlbi5oPgo+IC0jaW5jbHVkZSA8bWF0aC5oPgo+ICNpbmNsdWRlIDxzdGRs aWIuaD4KPiAtI2luY2x1ZGUgPHN0ZGlvLmg+Cj4gLSNpbmNsdWRlIDxzdHJpbmcuaD4KPiAtI2lu Y2x1ZGUgPHVuaXN0ZC5oPgo+ICNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Cj4gLQo+IC0jaW5jbHVk ZSAidGVzdC5oIgo+ICNpbmNsdWRlICJsYXBpL3NpZ25hbC5oIgo+ICsjaW5jbHVkZSAidHN0X3Rl c3QuaCIKPgo+IC1jaGFyICpUQ0lEID0gInB0cmFjZTA1IjsKPiAtaW50IFRTVF9UT1RBTCA9IDA7 Cj4gLQo+IC1pbnQgdXNhZ2UoY29uc3QgY2hhciAqKTsKPiAtCj4gLWludCB1c2FnZShjb25zdCBj aGFyICphcmd2MCkKPiAtewo+IC3CoMKgwqAgZnByaW50ZihzdGRlcnIsICJ1c2FnZTogJXMgW3N0 YXJ0LXNpZ251bV0gW2VuZC1zaWdudW1dXG4iLCBhcmd2MCk7Cj4gLcKgwqDCoCByZXR1cm4gMTsK PiAtfQo+IC0KPiAtaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICtzdGF0aWMgdm9p ZCBydW4odm9pZCkKPiB7Cj4KbmV3IGxpbmUgdG8gcmVtb3ZlCj4gLcKgwqDCoCBpbnQgZW5kX3Np Z251bSA9IC0xOwo+IC3CoMKgwqAgaW50IHNpZ251bTsKPiAtwqDCoMKgIGludCBzdGFydF9zaWdu dW0gPSAtMTsKPiArwqDCoMKgIGludCBzaWdudW0gPSAwOwo+IMKgwqDCoMKgaW50IHN0YXR1czsK PgpuZXcgbGluZSB0byByZW1vdmUKPiDCoMKgwqDCoHBpZF90IGNoaWxkOwo+Cj4gLcKgwqDCoCB0 c3RfcGFyc2Vfb3B0cyhhcmdjLCBhcmd2LCBOVUxMLCBOVUxMKTsKPiAtCj4gLcKgwqDCoCBpZiAo c3RhcnRfc2lnbnVtID09IC0xKSB7Cj4gLcKgwqDCoMKgwqDCoMKgIHN0YXJ0X3NpZ251bSA9IDA7 Cj4gLcKgwqDCoCB9Cj4gLcKgwqDCoCBpZiAoZW5kX3NpZ251bSA9PSAtMSkgewo+IC3CoMKgwqDC oMKgwqDCoCBlbmRfc2lnbnVtID0gU0lHUlRNQVg7Cj4gLcKgwqDCoCB9Cj4gLQo+IC3CoMKgwqAg Zm9yIChzaWdudW0gPSBzdGFydF9zaWdudW07IHNpZ251bSA8PSBlbmRfc2lnbnVtOyBzaWdudW0r Kykgewo+IC0KPiArwqDCoMKgIGZvciAoc2lnbnVtID0gMDsgc2lnbnVtIDw9IFNJR1JUTUFYOyBz aWdudW0rKykgewo+IMKgwqDCoMKgwqDCoMKgIGlmIChzaWdudW0gPj0gX19TSUdSVE1JTiAmJiBz aWdudW0gPCBTSUdSVE1JTikKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVlOwo+Cj4g LcKgwqDCoMKgwqDCoMKgIHN3aXRjaCAoY2hpbGQgPSBmb3JrKCkpIHsKPiAtwqDCoMKgwqDCoMKg wqAgY2FzZSAtMToKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0c3RfYnJrbShUQlJPSyB8IFRF UlJOTywgTlVMTCwgImZvcmsoKSBmYWlsZWQiKTsKPiAtwqDCoMKgwqDCoMKgwqAgY2FzZSAwOgo+ ICvCoMKgwqDCoMKgwqDCoCBjaGlsZCA9IFNBRkVfRk9SSygpOwo+Cj4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgaWYgKHB0cmFjZShQVFJBQ0VfVFJBQ0VNRSwgMCwgTlVMTCwgTlVMTCkgIT0gLTEp IHsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRzdF9yZXNtKFRJTkZPLCAiW2No aWxkXSBTZW5kaW5nIGtpbGwoLi4sICVkKSIsCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgc2lnbnVtKTsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGlmIChraWxsKGdldHBpZCgpLCBzaWdudW0pIDwgMCkgewo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB0c3RfcmVzbShUSU5GTyB8IFRFUlJOTywKPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJbY2hpbGRdIGtpbGwoLi4s ICVkKSBmYWlsZWQuIiwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHNpZ251bSk7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4g K8KgwqDCoMKgwqDCoMKgIGlmIChjaGlsZCA9PSAwKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgVEVTVChwdHJhY2UoUFRSQUNFX1RSQUNFTUUsIDAsIE5VTEwsIE5VTEwpKTsKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBpZiAoVFNUX1JFVCAhPSAtMSkgewo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgdHN0X3JlcyhUSU5GTywgIltjaGlsZF0gU2VuZGluZyBraWxsKC4uLCAl ZCkiLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNp Z251bSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBTQUZFX0tJTEwoZ2V0cGlk KCksIHNpZ251bSk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9IGVsc2Ugewo+IC0KPiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICogVGhpcyB3b24ndCBpbmNyZW1lbnQgdGhlIFRTVF9DT1VOVCB2YXIuCj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogcHJvcGVybHksIGJ1dCBpdCdsbCBzaG93 IHVwIGFzIGEgZmFpbHVyZQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIG5v bmV0aGVsZXNzLgo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLwo+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdHN0X3Jlc20oVEZBSUwgfCBURVJSTk8sCj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIkZhaWxlZCB0byBwdHJhY2Uo UFRSQUNFX1RSQUNFTUUsIC4uLikgIgo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICJwcm9wZXJseSIpOwo+IC0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHRzdF9icmsoVEZBSUwgfCBURVJSTk8sCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgIkZhaWxlZCB0byBwdHJhY2UoUFRSQUNFX1RSQUNFTUUsIC4u LikgIgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJw cm9wZXJseSIpOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+ICsKPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIC8qIFNob3VsZG4ndCBnZXQgaGVyZSBpZiBzaWdudW0gPT0gMC4gKi8KPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGV4aXQoKHNpZ251bSA9PSAwID8gMCA6IDIpKTsKPiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPiAtCj4gLcKgwqDCoMKgwqDCoMKgIGRlZmF1bHQ6Cj4g LQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHdhaXRwaWQoY2hpbGQsICZzdGF0dXMsIDApOwo+ ICvCoMKgwqDCoMKgwqDCoCB9IGVsc2UgewoKSSB3b3VsZCByZW1vdmUgdGhlICJlbHNlIiBzdGF0 ZW1lbnQsIGJlY2F1c2Ugd2UgZG9uJ3QgcmVhbGx5IG5lZWQgaXQgCm9uY2Ugd2UgaGFuZGxlIHRo ZSBjaGlsZCBhbmQgaXQgY3JlYXRlcyBtb3JlIGluZGVudGF0aW9uLgoKPiArIFNBRkVfV0FJVFBJ RChjaGlsZCwgJnN0YXR1cywgMCk7Cj4KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN3aXRjaCAo c2lnbnVtKSB7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjYXNlIDA6Cj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGlmIChXSUZFWElURUQoc3RhdHVzKQo+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICYmIFdFWElUU1RBVFVTKHN0YXR1cykgPT0gMCkgewo+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0c3RfcmVzbShUUEFTUywK PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJraWxs KC4uLCAwKSBleGl0ZWQgIgo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgIndpdGggMCwgYXMgZXhwZWN0ZWQuIik7Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRzdF9yZXMoVFBBU1MsCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAia2lsbCguLiwgMCkgZXhpdGVkIHdpdGgg MCwgYXMgZXhwZWN0ZWQuIik7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0gZWxz ZSB7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRzdF9yZXNtKFRG QUlMLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg ImtpbGwoLi4sIDApIGRpZG4ndCBleGl0ICIKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICJ3aXRoIDAuIik7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHRzdF9icmsoVEZBSUwgfCBURVJSTk8sCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAia2lsbCguLiwgMCkgZGlkbid0 IGV4aXQgd2l0aCAwLiIpOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgY2FzZSBTSUdLSUxMOgo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoV0lG U0lHTkFMRUQoc3RhdHVzKSkgewo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIC8qIFNJR0tJTEwgbXVzdCBiZSB1bmNhdGNoYWJsZS4gKi8KPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoV1RFUk1TSUcoc3RhdHVzKSA9PSBTSUdLSUxMKSB7 Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdHN0X3Jl c20oVFBBU1MsCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICJLaWxsZWQgd2l0aCBTSUdLSUxMLCAiCj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJhcyBleHBlY3RlZC4iKTsK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0c3RfcmVz KFRQQVNTLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAiS2lsbGVkIHdpdGggU0lHS0lMTCwgYXMgZXhwZWN0ZWQuIik7Cj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfSBlbHNlIHsKPiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0c3RfcmVzbShUUEFTUywKPiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIkRp ZG4ndCBkaWUgd2l0aCAiCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgICJTSUdLSUxMICg/ISkgIik7Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdHN0X2JyayhURkFJTCB8IFRFUlJOTywKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg IkRpZG4ndCBkaWUgd2l0aCBTSUdLSUxMICg/ISkgIik7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgfQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9IGVs c2UgaWYgKFdJRkVYSVRFRChzdGF0dXMpKSB7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHRzdF9yZXNtKFRGQUlMLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIkV4aXRlZCB1bmV4cGVjdGVkbHkgaW5zdGVhZCAiCj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAib2YgZHlp bmcgd2l0aCBTSUdLSUxMLiIpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCB0c3RfcmVzKFRGQUlMIHwgVEVSUk5PLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIkV4aXRlZCB1bmV4cGVjdGVkbHkgaW5zdGVhZCBvZiBk eWluZyB3aXRoIAo+IFNJR0tJTEwuIik7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IH0gZWxzZSBpZiAoV0lGU1RPUFBFRChzdGF0dXMpKSB7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHRzdF9yZXNtKFRGQUlMLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIlN0b3BwZWQgaW5zdGVhZCBvZiBkeWluZyAi Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAid2l0 aCBTSUdLSUxMLiIpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0 c3RfcmVzKFRGQUlMIHwgVEVSUk5PLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgIlN0b3BwZWQgaW5zdGVhZCBvZiBkeWluZyB3aXRoIFNJR0tJTEwu Iik7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8q IEFsbCBvdGhlciBwcm9jZXNzZXMgc2hvdWxkIGJlIHN0b3BwZWQuICovCj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBkZWZhdWx0Ogo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYg KFdJRlNUT1BQRUQoc3RhdHVzKSkgewo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB0c3RfcmVzbShUUEFTUywgIlN0b3BwZWQgYXMgZXhwZWN0ZWQiKTsKPiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0gZWxzZSB7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHRzdF9yZXNtKFRGQUlMLCAiRGlkbid0IHN0b3AgYXMgIgo+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgImV4cGVjdGVk LiIpOwo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoa2lsbChj aGlsZCwgMCkpIHsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCB0c3RfcmVzbShUSU5GTywKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIklzIHN0aWxsIGFsaXZlIT8iKTsKPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfSBlbHNlIGlmIChXSUZFWElURUQoc3RhdHVz KSkgewo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRz dF9yZXNtKFRJTkZPLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAiRXhpdGVkIG5vcm1hbGx5Iik7Cj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0gZWxzZSBpZiAoV0lGU0lHTkFMRUQoc3RhdHVzKSkgewo+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRzdF9yZXNt KFRJTkZPLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAiV2FzIHNpZ25hbGVkIHdpdGggIgo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAic2lnbnVtPSVkIiwKPiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgV1RFUk1T SUcoc3RhdHVzKSk7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0K PiAtCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4gLQo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKFdJRlNUT1BQRUQoc3RhdHVzKSkKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdHN0X3JlcyhUUEFTUywgIlN0b3BwZWQgYXMg ZXhwZWN0ZWQiKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVsc2UKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdHN0X3JlcyhURkFJTCB8IFRFUlJO TywgIkRpZG4ndCBzdG9wIGFzIGV4cGVjdGVkLiIpOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBicmVhazsKPiAtCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4KbmV3IGxpbmUg dG8gcmVtb3ZlIDotKSBJIGtub3cgaXQgY2FuIGJlIGJvcmluZywgYnV0IHBsZWFzZSBrZWVwIG5l dyBsaW5lIAp3aGVyZSBpdCdzIG5lZWRlZC4KPiDCoMKgwqDCoMKgwqDCoCB9Cj4gLcKgwqDCoMKg wqDCoMKgIC8qIE1ha2Ugc3VyZSB0aGUgY2hpbGQgZGllcyBhIHF1aWNrIGFuZCBwYWlubGVzcyBk ZWF0aCAuLi4gKi8KPiAtwqDCoMKgwqDCoMKgwqAga2lsbChjaGlsZCwgOSk7Cj4gLQpuZXcgbGlu ZSB0byBhZGQKPiArwqDCoMKgwqDCoMKgwqAgaWYgKHNpZ251bSAhPSAwICYmIHNpZ251bSAhPSBT SUdLSUxMKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFNBRkVfUFRSQUNFKFBUUkFDRV9DT05U LCBjaGlsZCwgTlVMTCwgTlVMTCk7Cj4gwqDCoMKgwqB9Cj4gLQo+IC3CoMKgwqAgdHN0X2V4aXQo KTsKPiAtCj4gfQo+ICsKPiArc3RhdGljIHN0cnVjdCB0c3RfdGVzdCB0ZXN0ID0gewo+ICvCoMKg wqAgLnRlc3RfYWxsID0gcnVuLAo+ICvCoMKgwqAgLmZvcmtzX2NoaWxkID0gMSwKPiArfTsKCkJl c2lkZXMgYSBmZXcgc3R5bGlzaCB0aGluZ3MsIGl0J3MgZmluZS4KClJlZ2FyZHMsCkFuZHJlYSBD ZXJ2ZXNhdG8KCgotLSAKTWFpbGluZyBsaXN0IGluZm86IGh0dHBzOi8vbGlzdHMubGludXguaXQv bGlzdGluZm8vbHRwCg==