From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 82DD72E8DFC for ; Tue, 12 May 2026 13:25:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778592351; cv=none; b=eL1/j5BZvFE1ajK7mZ+5eT1BMOA46p6gUuHcQ080WC4LrWpXpf0OCncCqVfbbilGftzhPdTicq/ojntMIkyIB5xIHttgxGPBi8FzDNNBFTaieVbw/v4/9pa38wuiPdNvL31JZJaVi8npnInMHg4IDGCGBrZv/o3gFT0eR09Qjlc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778592351; c=relaxed/simple; bh=h/10qV1l45Cf/w9OSqWJkLp+rJCgPPzr3w+QWiUZOPc=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=oHCsz0p69hJ30fGnmLnpCCToZg71o+PcJubahAMQssg+sDXMxuIIyMmKTFdIDlzz+/0/WBL9JDguQy6E7uY1eJNEmokeUC81PMAfK8ysRm25ywgx6leD0gCNGXcxrUvfRCIlXS8LFHLW/6hJN27ugTImTSH/uS9mvXUy8m6MUJ8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=Ck1dBDyZ; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=cC994m0S; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Ck1dBDyZ"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="cC994m0S" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1778592348; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=h/10qV1l45Cf/w9OSqWJkLp+rJCgPPzr3w+QWiUZOPc=; b=Ck1dBDyZR+frQtSFCa/MntgUyC1116Mdts6MFDF05F4RP/ignWSynpF6Voko/SIILbpYvu LRnUSJy8KHHnCrZmHJNwgdkkzK//JhHCfdt82ZuK6bTtLlXQEcCeWfjEf4cgk4xdC0i8LG K3snCJy5jW3y9LKfd6NdlCmKSRXIU5Q= Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-529-HzRPFsHFPCuiTQ1QQzA51w-1; Tue, 12 May 2026 09:25:46 -0400 X-MC-Unique: HzRPFsHFPCuiTQ1QQzA51w-1 X-Mimecast-MFC-AGG-ID: HzRPFsHFPCuiTQ1QQzA51w_1778592345 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-bcd55c93265so200685166b.0 for ; Tue, 12 May 2026 06:25:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1778592345; x=1779197145; darn=vger.kernel.org; h=mime-version:user-agent:content-transfer-encoding:autocrypt :references:in-reply-to:date:cc:to:from:subject:message-id:from:to :cc:subject:date:message-id:reply-to; bh=h/10qV1l45Cf/w9OSqWJkLp+rJCgPPzr3w+QWiUZOPc=; b=cC994m0Swu+mupkR/70HeVP8M0KJx8EnTPKs5HWOv4Ranloc4vFKtvizGpilRpk00V XKPjlRZCwQOTmltYB6TsyJpRyOzHqA+3rQg2kY2HWB2d9jxl5RAiMohA05b+Ye0Rs1XY frpWZTFebLuvT6d89ND82uI008kuaGCeuTsIMszQPCkNKRAwa7FbKclrEqho5pQZ7hHp CkfuWtjPnhghx2EAavZG8RFGFucFTCdF7AfB/gJuzXcvsjCDQYvkk9yBynZaANInJieB 8FT4paY4w/TBfj6Uq4B3Iyd4LaQhE26wzbLcHrfjsbaNTnZWX7wD2hCM+O0cygZNkKoV /rlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778592345; x=1779197145; h=mime-version:user-agent:content-transfer-encoding:autocrypt :references:in-reply-to:date:cc:to:from:subject:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=h/10qV1l45Cf/w9OSqWJkLp+rJCgPPzr3w+QWiUZOPc=; b=Z4tNG4iqGAQnQXNrLwgTcSnqL+312/PfFuAn7cL0pnoIHAbDLoAZ4fh1IaYBHJg3E2 VTz+r330kgaqaFr1nz/N2gzaSrzkl8rZok1xnddQh4tso+7k0C3LqoDxCZLOxP9yIzPa 3FoDSqggMNu0Um2RMh4ZtE6xTKGEc8/73imZG6rEBY2+NA1pFInw4iBxTZvLjcki4rDU SyH6ihWpRxgBvePaepIy3iewYHnGZ49JEbHIePvK2H/HlWgz3Ink6ear4Or1kVNYp7jp Cif8iyQnU0PI5NzwvSkkj+dq6P6tfV8Yr+HgbjmXNgyKiXj2WwxBe3VzHMAkKJmJzPBc zVRg== X-Forwarded-Encrypted: i=1; AFNElJ8rcrpAVvBG3wkKZN5c1ndEOhCU6CKEZ07JTsZOeVmTb9Oc9+A9NVHh9hrq5z0oKhte/8JzdjoYbmiU3iI=@vger.kernel.org X-Gm-Message-State: AOJu0YxVbHOfXt1jcVMjoDazDSjmPupF+hot3KESyQoNGvUdm1GEYVLT NkvI1u+zideY+dL7oYWqEuNathQD381pWpgMq+gYFlftL8IcL63F2DLKuGFC3LYC6SPM3x12I7b dxuWUaf8SVtKI8OOe3YQgByWBbhF2T04nZGhC4q1vILEeZsqRB6py42AgKO1I35Pm3g== X-Gm-Gg: Acq92OEOQvPJZuiHhn2a8sThIHDH5kOAS5UlKcSA7TiL/vCfexWlGXV9hvKdEdCAmn8 2mwt4Xm30gJHj5RHx+rCj+fu/PLfaX8FMTO20fsf/VTKlJJ9vFjjeSWc1bFiOLEbjHkMWFegnQL TS3Q5yETWaDZkA9q4nfRzkhwj4k5CUAT7vdItnX7XuE3L4JDiTvWUL5PNujmd4cuZYDZ3R8fDD/ 6PgbzUIf03FW5fQqwYitvf1UTY6kv/vIQsLAZ/bc0JLwRsBnh6RoG8XiLqHko1AujI324UMvrtk ffkZFBtubo7W8zVtBm6oe0nREKCHNcgygUdmG73jxBVqzrZwpKsE1blni/NPJpUQwxUln646iTC o5EyZBUUrpFpEy3EQaEwIm+iDFjl60IO6UuKm3xUBkXynNBOjrJcrYYp8ntISAvvEbt9u3H+qXk 0oX53Jpt2CzbrLlmg= X-Received: by 2002:a17:907:849:b0:ba8:a21f:9c4e with SMTP id a640c23a62f3a-bc56b41ef64mr1601196666b.11.1778592344380; Tue, 12 May 2026 06:25:44 -0700 (PDT) X-Received: by 2002:a17:907:849:b0:ba8:a21f:9c4e with SMTP id a640c23a62f3a-bc56b41ef64mr1601193166b.11.1778592343782; Tue, 12 May 2026 06:25:43 -0700 (PDT) Received: from gmonaco-thinkpadt14gen3.rmtit.csb (212-8-243-115.hosted-by-worldstream.net. [212.8.243.115]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bcce944d379sm477101666b.20.2026.05.12.06.25.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 May 2026 06:25:43 -0700 (PDT) Message-ID: <63b8f141689e2ba34adaed43ca78a8cd883bfa5f.camel@redhat.com> Subject: Re: [RFC PATCH v2 06/10] rvgen: support reset() on the __init arrow for global-window HA clocks From: Gabriele Monaco To: wen.yang@linux.dev Cc: linux-trace-kernel@vger.kernel.org, linux-kernel@vger.kernel.org, Steven Rostedt Date: Tue, 12 May 2026 15:25:41 +0200 In-Reply-To: References: Autocrypt: addr=gmonaco@redhat.com; prefer-encrypt=mutual; keydata=mDMEZuK5YxYJKwYBBAHaRw8BAQdAmJ3dM9Sz6/Hodu33Qrf8QH2bNeNbOikqYtxWFLVm0 1a0JEdhYnJpZWxlIE1vbmFjbyA8Z21vbmFjb0BrZXJuZWwub3JnPoiZBBMWCgBBFiEEysoR+AuB3R Zwp6j270psSVh4TfIFAmjKX2MCGwMFCQWjmoAFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgk Q70psSVh4TfIQuAD+JulczTN6l7oJjyroySU55Fbjdvo52xiYYlMjPG7dCTsBAMFI7dSL5zg98I+8 cXY1J7kyNsY6/dcipqBM4RMaxXsOtCRHYWJyaWVsZSBNb25hY28gPGdtb25hY29AcmVkaGF0LmNvb T6InAQTFgoARAIbAwUJBaOagAULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgBYhBMrKEfgLgd0WcK eo9u9KbElYeE3yBQJoymCyAhkBAAoJEO9KbElYeE3yjX4BAJ/ETNnlHn8OjZPT77xGmal9kbT1bC1 7DfrYVISWV2Y1AP9HdAMhWNAvtCtN2S1beYjNybuK6IzWYcFfeOV+OBWRDQ== Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.60.1 (3.60.1-1.fc44) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 CgpPbiBUdWUsIDIwMjYtMDUtMTIgYXQgMDI6MjQgKzA4MDAsIHdlbi55YW5nQGxpbnV4LmRldiB3 cm90ZToKPiBGcm9tOiBXZW4gWWFuZyA8d2VuLnlhbmdAbGludXguZGV2Pgo+IAo+IHJ2Z2VuIHJl amVjdHMgYSBzdGF0ZSBpbnZhcmlhbnQgd2hlbiBpdHMgZW52IGlzIG5ldmVyIHJlc2V0IG9uIGFu eQo+IHN0YXRlLXRyYW5zaXRpb24gZWRnZS7CoCBUaGlzIHByZXZlbnRzIGV4cHJlc3NpbmcgbW9u aXRvcnMgd2hlcmUgYSBjbG9jawo+IHRyYWNrcyB0aGUgZnVsbCBtb25pdG9yaW5nIHdpbmRvdyDi gJQgcmVzZXQgb25jZSBhdCBvYmplY3QgY3JlYXRpb24sCj4gYWN0aXZlIGluIGFsbCBzdGF0ZXMu Cj4gCj4gQWxsb3cgcmVzZXQoKSBhbm5vdGF0aW9ucyBvbiB0aGUgX19pbml0X1NUQVRFIC0+IFNU QVRFIGFycm93Lgo+IGF1dG9tYXRhLnB5IGFkZHMgbGlzdGVkIGVudnMgdG8gdGhlIG5ldyBlbnZf aW5pdF9zdGFydGVkIHNldCAoYW5kIHRvCj4gZW52X3N0b3JlZCBzbyB0aGUgSEEgZnJhbWV3b3Jr IGFsbG9jYXRlcyBwZXItb2JqZWN0IHN0b3JhZ2UpLsKgIGRvdDJrLnB5Cj4gdXNlcyBlbnZfaW5p dF9zdGFydGVkIGZvciB0aHJlZSBwdXJwb3NlczoKPiAKPiAtIEdlbmVyYXRlIGEgaGFuZGxlX21v bml0b3Jfc3RhcnQoKSBza2VsZXRvbiB0aGF0IHJlc2V0cyB0aGUgZW52IGFuZAo+IMKgIGFybXMg dGhlIHRpbWVyIGFmdGVyIHRoZSBjYWxsZXIgc2V0cyB1cCBEQSBzdG9yYWdlIGFuZCBpbml0aWFs IHN0YXRlLgo+IAo+IC0gR3VhcmQgaGFfaW52X3RvX2d1YXJkIGNhbGxzIHdpdGggIWhhX21vbml0 b3JfZW52X2ludmFsaWQoKSBmb3IgdGhlc2UKPiDCoCBlbnZzOiBhIGNvbmN1cnJlbnQgREEgZXZl bnQgYmV0d2VlbiBkYV9oYW5kbGVfc3RhcnRfZXZlbnQoKSBhbmQKPiDCoCBoYV9yZXNldF9lbnYo KSB3b3VsZCBvdGhlcndpc2Ugc3RvcmUgVTY0X01BWCAtIEJVREdFVCBhcyB0aGUgZ3VhcmQKPiDC oCBhbmNob3IsIHNpbGVudGx5IGRpc2FibGluZyBlbmZvcmNlbWVudC4KPiAKPiAtIEFsd2F5cyBn ZW5lcmF0ZSBoYV92ZXJpZnlfZ3VhcmRzKCkgZm9yIG1vbml0b3JzIHdpdGggaW52YXJpYW50cywK PiDCoCBwcm92aWRpbmcgYSBzdGFibGUgZXh0ZW5zaW9uIHBvaW50IGZvciBmdXR1cmUgcGVyLWV2 ZW50IGd1YXJkcy4KPiAKPiBNb2RlbHMgd2l0aG91dCBfX2luaXQgcmVzZXRzIChlLmcuIHN0YWxs LmRvdCkgYXJlIHVuYWZmZWN0ZWQuCj4gCj4gU2lnbmVkLW9mZi1ieTogV2VuIFlhbmcgPHdlbi55 YW5nQGxpbnV4LmRldj4KCk1taCwgSSBzZWUgdGhhdCdzIGFuIGlzc3VlLCBidXQgdGVjaG5pY2Fs bHkgdGhlIGluaXQgYXJyb3cgaXNuJ3QgYSByZWFsIHN0YXRlCnRyYW5zaXRpb24uIEluIHlvdXIg Y2FzZSwgeW91IGhhdmUgYSBzdGFydCBjb25kaXRpb24gdGhhdCB5b3UgbGFiZWxsZWQKInN3aXRj aF9pbl90bG9iIiBhbHRob3VnaCBpdCBpc24ndCBhIHN3aXRjaCBpbi4KCldoeSBkb24ndCB5b3Ug bWFrZSBpdCBhIHNlcGFyYXRlIGV2ZW50IChlLmcuICJzdGFydF90bG9iIiksIGl0IHNlZW1zIHRv IG1lIHlvdQpjYW5ub3QgcmVhbGx5IGhhdmUgdGhhdCBvY2N1ciBtdWx0aXBsZSB0aW1lcywgc28g ZG9pbmcgdGhlIGZvbGxvd2luZyB3b3VsZG4ndApoYXJtIGFuZCB5b3Ugd291bGRuJ3QgbmVlZCB0 byBjaGFuZ2UgaG93IEhBIG1vbml0b3JzIHdvcms6CgogICAgICAgICAgICAgICAgfAogICAgICAg ICAgICAgICAgfAogICAgICAgICAgICAgICAgdgogICAgICAgICAgICAgICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSsgICBzdGFydDtyZXNldChjbGspCiAgICAgICAgICAgICAgfCAgICAg ICAgICAgcnVubmluZyAgICAgICAgICAgfCAtLS0tLS0tLS0tLS0tLS0tLS0tKwogc3dpdGNoX2lu ICAgIHwgICAgICBjbGsgPCBCVURHRVRfTlMoKSAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwK ICArLS0tLS0tLS0tPiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDwtLS0tLS0tLS0t LS0tLS0tLS0rCiAgfCAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwog IHwgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgIHwKICB8ICAgICAgICAgICAgIHwgc2xl ZXAgICAgICAgICAgICB8CiAgfCAgICAgICAgICAgICB2ICAgICAgICAgICAgICAgICAgfAogIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICB8ICAgICAgICAgIHNsZWVwaW5nICAg ICAgICAgICAgICB8CiAgfCAgICAgIGNsayA8IEJVREdFVF9OUygpICAgICAgICAgfAogIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcHJlZW1wdAogIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgIHwKICB8ICAgICAgICAgICAgIHwgd2FrZXVwICAgICAgICAgICB8CiAg fCAgICAgICAgICAgICB2ICAgICAgICAgICAgICAgICAgfAogIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwKICB8ICAgICAgICAgICAgICAgICB3YWl0aW5nICAgICAgICB8CiAgKy0t LS0tLS0tLS0gIGNsayA8IEJVREdFVF9OUygpICA8KwoKClRoZW4geW91IGFsc28gd291bGRuJ3Qg bmVlZCB0byBjYWxsIHJlc2V0KCkgYW5kIHN0YXJ0X3RpbWVyKCkgbWFudWFsbHkuCklzbid0IHRo YXQgZmVhc2libGU/CgpUaGFua3MsCkdhYnJpZWxlCgo+IC0tLQo+IMKgdG9vbHMvdmVyaWZpY2F0 aW9uL3J2Z2VuL3J2Z2VuL2F1dG9tYXRhLnB5IHzCoCAyNiArKysrKysKPiDCoHRvb2xzL3Zlcmlm aWNhdGlvbi9ydmdlbi9ydmdlbi9kb3Qyay5wecKgwqDCoCB8IDEwMCArKysrKysrKysrKysrKysr KysrLS0KPiDCoDIgZmlsZXMgY2hhbmdlZCwgMTE5IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3ZlcmlmaWNhdGlvbi9ydmdlbi9ydmdlbi9hdXRv bWF0YS5weQo+IGIvdG9vbHMvdmVyaWZpY2F0aW9uL3J2Z2VuL3J2Z2VuL2F1dG9tYXRhLnB5Cj4g aW5kZXggYjlmODE0OWY3MTE4Li4xNzhhMWE0ZmZkOGEgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvdmVy aWZpY2F0aW9uL3J2Z2VuL3J2Z2VuL2F1dG9tYXRhLnB5Cj4gKysrIGIvdG9vbHMvdmVyaWZpY2F0 aW9uL3J2Z2VuL3J2Z2VuL2F1dG9tYXRhLnB5Cj4gQEAgLTY5LDE1ICs2OSw0MSBAQCBjbGFzcyBB dXRvbWF0YToKPiDCoMKgwqDCoMKgwqDCoMKgIHNlbGYuc3RhdGVzLCBzZWxmLmluaXRpYWxfc3Rh dGUsIHNlbGYuZmluYWxfc3RhdGVzID0KPiBzZWxmLl9fZ2V0X3N0YXRlX3ZhcmlhYmxlcygpCj4g wqDCoMKgwqDCoMKgwqDCoCBzZWxmLmVudl90eXBlcyA9IHt9Cj4gwqDCoMKgwqDCoMKgwqDCoCBz ZWxmLmVudl9zdG9yZWQgPSBzZXQoKQo+ICvCoMKgwqDCoMKgwqDCoCBzZWxmLmVudl9pbml0X3N0 YXJ0ZWQgPSBzZXQoKQo+IMKgwqDCoMKgwqDCoMKgwqAgc2VsZi5jb25zdHJhaW50X3ZhcnMgPSBz ZXQoKQo+IMKgwqDCoMKgwqDCoMKgwqAgc2VsZi5zZWxmX2xvb3BfcmVzZXRfZXZlbnRzID0gc2V0 KCkKPiDCoMKgwqDCoMKgwqDCoMKgIHNlbGYuZXZlbnRzLCBzZWxmLmVudnMgPSBzZWxmLl9fZ2V0 X2V2ZW50X3ZhcmlhYmxlcygpCj4gK8KgwqDCoMKgwqDCoMKgIHNlbGYuX19wYXJzZV9pbml0X3Jl c2V0cygpCj4gwqDCoMKgwqDCoMKgwqDCoCBzZWxmLmZ1bmN0aW9uLCBzZWxmLmNvbnN0cmFpbnRz ID0gc2VsZi5fX2NyZWF0ZV9tYXRyaXgoKQo+IMKgwqDCoMKgwqDCoMKgwqAgc2VsZi5ldmVudHNf c3RhcnQsIHNlbGYuZXZlbnRzX3N0YXJ0X3J1biA9IHNlbGYuX19zdG9yZV9pbml0X2V2ZW50cygp Cj4gwqDCoMKgwqDCoMKgwqDCoCBzZWxmLmVudl9zdG9yZWQgPSBzb3J0ZWQoc2VsZi5lbnZfc3Rv cmVkKQo+ICvCoMKgwqDCoMKgwqDCoCBzZWxmLmVudl9pbml0X3N0YXJ0ZWQgPSBzb3J0ZWQoc2Vs Zi5lbnZfaW5pdF9zdGFydGVkKQo+IMKgwqDCoMKgwqDCoMKgwqAgc2VsZi5jb25zdHJhaW50X3Zh cnMgPSBzb3J0ZWQoc2VsZi5jb25zdHJhaW50X3ZhcnMpCj4gwqDCoMKgwqDCoMKgwqDCoCBzZWxm LnNlbGZfbG9vcF9yZXNldF9ldmVudHMgPSBzb3J0ZWQoc2VsZi5zZWxmX2xvb3BfcmVzZXRfZXZl bnRzKQo+IMKgCj4gK8KgwqDCoCBkZWYgX19wYXJzZV9pbml0X3Jlc2V0cyhzZWxmKSAtPiBOb25l Ogo+ICvCoMKgwqDCoMKgwqDCoCAiIiJQYXJzZSByZXNldCgpIGFubm90YXRpb25zIG9uIHRoZSBf X2luaXRfU1RBVEUgLT4gU1RBVEUgYXJyb3cuCj4gKwo+ICvCoMKgwqDCoMKgwqDCoCBBZGRzIGVh Y2ggbGlzdGVkIGVudiB0byBlbnZfc3RvcmVkIChIQSBmcmFtZXdvcmsgYWxsb2NhdGVzIHBlci1v YmplY3QKPiArwqDCoMKgwqDCoMKgwqAgc3RvcmFnZSkgYW5kIGVudl9pbml0X3N0YXJ0ZWQgKGhh MmsgZ2VuZXJhdGVzCj4gaGFuZGxlX21vbml0b3Jfc3RhcnQoKSkuCj4gK8KgwqDCoMKgwqDCoMKg ICIiIgo+ICvCoMKgwqDCoMKgwqDCoCBpbml0X3ByZWZpeCA9IGYnIntzZWxmLmluaXRfbWFya2Vy fScKPiArwqDCoMKgwqDCoMKgwqAgZm9yIGxpbmUgaW4gbWFwKHN0ci5sc3RyaXAsIHNlbGYuX19k b3RfbGluZXMpOgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIG5vdCBsaW5lLnN0YXJ0c3dp dGgoaW5pdF9wcmVmaXgpOgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29udGlu dWUKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzcGxpdF9saW5lID0gbGluZS5zcGxpdCgpCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgbGVuKHNwbGl0X2xpbmUpIDwgMyBvciBzcGxpdF9s aW5lWzFdICE9ICItPiI6Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51 ZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICJsYWJlbCIgbm90IGluIGxpbmU6Cj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51ZQo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGxhYmVsID0gIiIuam9pbihzcGxpdF9saW5lW3NwbGl0X2xpbmUuaW5kZXgoImxhYmVs IikgKyAyOi0KPiAxXSkucmVwbGFjZSgnIicsICcnKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGZvciBwYXJ0IGluIGxhYmVsLnNwbGl0KCI7Iik6Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCByZXNldF9tID0gc2VsZi5jb25zdHJhaW50X3Jlc2V0LnNlYXJjaChwYXJ0LnN0cmlw KCkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiByZXNldF9tOgo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbnYgPSByZXNldF9tWyJlbnYiXQo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzZWxmLmVudl9zdG9yZWQu YWRkKGVudikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2VsZi5l bnZfaW5pdF9zdGFydGVkLmFkZChlbnYpCj4gKwo+IMKgwqDCoMKgIGRlZiBfX2dldF9tb2RlbF9u YW1lKHNlbGYpIC0+IHN0cjoKPiDCoMKgwqDCoMKgwqDCoMKgIGJhc2VuYW1lID0gbnRwYXRoLmJh c2VuYW1lKHNlbGYuX19kb3RfcGF0aCkKPiDCoMKgwqDCoMKgwqDCoMKgIGlmIG5vdCBiYXNlbmFt ZS5lbmRzd2l0aCgiLmRvdCIpIGFuZCBub3QgYmFzZW5hbWUuZW5kc3dpdGgoIi5ndiIpOgo+IGRp ZmYgLS1naXQgYS90b29scy92ZXJpZmljYXRpb24vcnZnZW4vcnZnZW4vZG90MmsucHkKPiBiL3Rv b2xzL3ZlcmlmaWNhdGlvbi9ydmdlbi9ydmdlbi9kb3Qyay5weQo+IGluZGV4IGU2ZjQ3NmI5MDNi MC4uZTgwNjYyNjBjMGFmIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL3ZlcmlmaWNhdGlvbi9ydmdlbi9y dmdlbi9kb3Qyay5weQo+ICsrKyBiL3Rvb2xzL3ZlcmlmaWNhdGlvbi9ydmdlbi9ydmdlbi9kb3Qy ay5weQo+IEBAIC0zNjYsNyArMzY2LDE4IEBAIGYiIiJzdGF0aWMgaW5saW5lIHZvaWQgaGFfY29u dmVydF9pbnZfZ3VhcmQoc3RydWN0Cj4gaGFfbW9uaXRvciAqaGFfbW9uLAo+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBjb25mX2cgPSBbZSBmb3IgcywgZSBpbiBjb25mbGljdF9ndWFyZHMgaWYg cyA9PSBzdGF0ZV0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgbm90IGNvbmZfaSBhbmQg bm90IGNvbmZfZzoKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51ZQo+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJ1ZmYuYXBwZW5kKGYiXHR7X2Vsc2V9aWYgKGN1cnJf c3RhdGUgPT0KPiB7c2VsZi5zdGF0ZXNbc3RhdGVdfXtzZWxmLmVudW1fc3VmZml4fSkiKQo+ICsK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdGF0ZV9uYW1lID0gZiJ7c2VsZi5zdGF0ZXNbc3Rh dGVdfXtzZWxmLmVudW1fc3VmZml4fSIKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbnZfZnVs bCA9IHNlbGYuX19nZXRfY29uc3RyYWludF9lbnYoY29uc3RyKQo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGVudl9iYXJlID0gZW52X2Z1bGxbOi1sZW4oc2VsZi5lbnVtX3N1ZmZpeCldCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgZW52X2JhcmUgaW4gc2VsZi5lbnZfaW5pdF9zdGFydGVk Ogo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIyBlbnZfc3RvcmUgaXMgRU5WX0lO VkFMSURfVkFMVUUgdW50aWwKPiBoYW5kbGVfbW9uaXRvcl9zdGFydCgpOwo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgIyBza2lwIGhhX2ludl90b19ndWFyZCBkdXJpbmcgdGhlIGlu aXQgcmFjZSB3aW5kb3cuCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250ID0g Ilx0XHQgIiBpZiBfZWxzZSBlbHNlICJcdMKgwqDCoCAiCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBidWZmLmFwcGVuZChmIlx0e19lbHNlfWlmIChjdXJyX3N0YXRlID09IHtzdGF0 ZV9uYW1lfSAmJiIpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZmLmFwcGVu ZChmIntjb250fSFoYV9tb25pdG9yX2Vudl9pbnZhbGlkKGhhX21vbiwKPiB7ZW52X2Z1bGx9KSki KQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVsc2U6Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBidWZmLmFwcGVuZChmIlx0e19lbHNlfWlmIChjdXJyX3N0YXRlID09IHtzdGF0 ZV9uYW1lfSkiKQo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJ1ZmYuYXBwZW5kKGYi XHRcdHtzZWxmLl9fc3RhcnRfdG9fY29udihjb25zdHIpfTsiKQo+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBfZWxzZSA9ICJlbHNlICIKPiBAQCAtMzc2LDE2ICszODcsMjIgQEAgZiIiInN0YXRp YyBpbmxpbmUgdm9pZCBoYV9jb252ZXJ0X2ludl9ndWFyZChzdHJ1Y3QKPiBoYV9tb25pdG9yICpo YV9tb24sCj4gwqAKPiDCoMKgwqDCoCBkZWYgX19maWxsX3ZlcmlmeV9ndWFyZHNfZnVuYyhzZWxm KSAtPiBsaXN0W3N0cl06Cj4gwqDCoMKgwqDCoMKgwqDCoCBidWZmID0gW10KPiAtwqDCoMKgwqDC oMKgwqAgaWYgbm90IHNlbGYuZ3VhcmRzOgo+ICvCoMKgwqDCoMKgwqDCoCAjIEFsd2F5cyBnZW5l cmF0ZSBmb3IgbW9uaXRvcnMgd2l0aCBpbnZhcmlhbnRzOiBzdGFibGUgZXh0ZW5zaW9uCj4gK8Kg wqDCoMKgwqDCoMKgICMgcG9pbnQgZm9yIGZ1dHVyZSBndWFyZCBjb25kaXRpb25zLgo+ICvCoMKg wqDCoMKgwqDCoCBpZiBub3Qgc2VsZi5ndWFyZHMgYW5kIG5vdCBzZWxmLmludmFyaWFudHM6Cj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBbXQo+IMKgCj4gwqDCoMKgwqDCoMKgwqDC oCBidWZmLmFwcGVuZCgKPiDCoGYiIiJzdGF0aWMgaW5saW5lIGJvb2wgaGFfdmVyaWZ5X2d1YXJk cyhzdHJ1Y3QgaGFfbW9uaXRvciAqaGFfbW9uLAo+IMKgXHRcdFx0XHTCoMKgwqAgZW51bSB7c2Vs Zi5lbnVtX3N0YXRlc19kZWZ9IGN1cnJfc3RhdGUsIGVudW0KPiB7c2VsZi5lbnVtX2V2ZW50c19k ZWZ9IGV2ZW50LAo+IMKgXHRcdFx0XHTCoMKgwqAgZW51bSB7c2VsZi5lbnVtX3N0YXRlc19kZWZ9 IG5leHRfc3RhdGUsIHU2NCB0aW1lX25zKQo+IC17ewo+IC1cdGJvb2wgcmVzID0gdHJ1ZTsKPiAt IiIiKQo+ICt7eyIiIikKPiArCj4gK8KgwqDCoMKgwqDCoMKgIGlmIG5vdCBzZWxmLmd1YXJkczoK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZmLmFwcGVuZCgiXHRyZXR1cm4gdHJ1ZTtcbn1c biIpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGJ1ZmYKPiArCj4gK8KgwqDCoMKg wqDCoMKgIGJ1ZmYuYXBwZW5kKCJcdGJvb2wgcmVzID0gdHJ1ZTtcbiIpCj4gwqAKPiDCoMKgwqDC oMKgwqDCoMKgIF9lbHNlID0gIiIKPiDCoMKgwqDCoMKgwqDCoMKgIGZvciBlZGdlLCBjb25zdHIg aW4gc29ydGVkKHNlbGYuZ3VhcmRzLml0ZW1zKCkpOgo+IEBAIC01MjIsNyArNTM5LDcgQEAgZiIi InN0YXRpYyBib29sIGhhX3ZlcmlmeV9jb25zdHJhaW50KHN0cnVjdCBoYV9tb25pdG9yCj4gKmhh X21vbiwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnVmZi5hcHBlbmQoIlx0aGFfY29udmVy dF9pbnZfZ3VhcmQoaGFfbW9uLCBjdXJyX3N0YXRlLCBldmVudCwgIgo+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAibmV4dF9zdGF0ZSwgdGltZV9ucyk7 XG4iKQo+IMKgCj4gLcKgwqDCoMKgwqDCoMKgIGlmIHNlbGYuZ3VhcmRzOgo+ICvCoMKgwqDCoMKg wqDCoCBpZiBzZWxmLmd1YXJkcyBvciBzZWxmLmludmFyaWFudHM6Cj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGJ1ZmYuYXBwZW5kKCJcdGlmICghaGFfdmVyaWZ5X2d1YXJkcyhoYV9tb24sIGN1 cnJfc3RhdGUsIGV2ZW50LCAiCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICJuZXh0X3N0YXRlLCB0aW1lX25zKSlcblx0XHRyZXR1cm4gZmFsc2U7XG4i KQo+IMKgCj4gQEAgLTU5OSw4ICs2MTYsNzcgQEAgZiIiInN0YXRpYyBib29sIGhhX3ZlcmlmeV9j b25zdHJhaW50KHN0cnVjdCBoYV9tb25pdG9yCj4gKmhhX21vbiwKPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBidWZmLmFwcGVuZCgifVxuIikKPiDCoMKgwqDCoMKgwqDCoMKgIHJl dHVybiBidWZmCj4gwqAKPiArwqDCoMKgIGRlZiBfX2ZpbGxfaW5pdF9zdGFydF9oZWxwZXIoc2Vs ZikgLT4gbGlzdFtzdHJdOgo+ICvCoMKgwqDCoMKgwqDCoCAiIiJHZW5lcmF0ZSBoYW5kbGVfbW9u aXRvcl9zdGFydCgpIGZvciBlbnZzIHJlc2V0IG9uIHRoZSBfX2luaXQKPiBhcnJvdy4KPiArCj4g K8KgwqDCoMKgwqDCoMKgIGVudl9zdG9yZSBpcyBpbnZhbGlkIGluc2lkZSBkYV9oYW5kbGVfc3Rh cnRfZXZlbnQoKTsgdGhpcyBoZWxwZXIgbXVzdAo+ICvCoMKgwqDCoMKgwqDCoCBiZSBjYWxsZWQg YWZ0ZXIgREEgc3RvcmFnZSBpcyBhbGxvY2F0ZWQgYW5kIGluaXRpYWwgc3RhdGUgaXMgc2V0Lgo+ ICvCoMKgwqDCoMKgwqDCoCAiIiIKPiArwqDCoMKgwqDCoMKgwqAgaWYgbm90IHNlbGYuZW52X2lu aXRfc3RhcnRlZDoKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gW10KPiArCj4gK8Kg wqDCoMKgwqDCoMKgICMgQ29sbGVjdCB0aGUgaGFfc3RhcnRfdGltZXIgY2FsbCBmb3IgZWFjaCBp bml0LXN0YXJ0ZWQgZW52IGZyb20gdGhlCj4gK8KgwqDCoMKgwqDCoMKgICMgZmlyc3Qgc3RhdGUg aW52YXJpYW50IHRoYXQgcmVmZXJlbmNlcyBpdC4KPiArwqDCoMKgwqDCoMKgwqAgdGltZXJfY2Fs bHM6IGRpY3Rbc3RyLCBzdHJdID0ge30KPiArwqDCoMKgwqDCoMKgwqAgZm9yIGVudiBpbiBzZWxm LmVudl9pbml0X3N0YXJ0ZWQ6Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW52X2Z1bGwgPSBm IntlbnZ9e3NlbGYuZW51bV9zdWZmaXh9Igo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZvciBj b25zdHIgaW4gc2VsZi5pbnZhcmlhbnRzLnZhbHVlcygpOgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgaWYgZW52X2Z1bGwgaW4gY29uc3RyOgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB0aW1lcl9jYWxsc1tlbnZdID0gY29uc3RyCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrCj4gKwo+ICvCoMKgwqDCoMKgwqDC oCBidWZmID0gW10KPiArwqDCoMKgwqDCoMKgwqAgYnVmZi5hcHBlbmQoCj4gKyIiIi8qCj4gKyAq IGhhbmRsZV9tb25pdG9yX3N0YXJ0IC0gcmVzZXQgcGVyLW9iamVjdCBjbG9jayhzKSBhbmQgYXJt IHRoZSB0aW1lci4KPiArICoKPiArICogZW52X3N0b3JlIGlzIGludmFsaWQgaW5zaWRlIGRhX2hh bmRsZV9zdGFydF9ldmVudCgpOyBjYWxsIHRoaXMgaGVscGVyCj4gKyAqIGFmdGVyIGFsbG9jYXRp bmcgREEgc3RvcmFnZSBhbmQgc2V0dGluZyB0aGUgaW5pdGlhbCBEQSBzdGF0ZS4KPiArICoKPiAr ICogWFhYOiByZXBsYWNlIHRoZSBwbGFjZWhvbGRlcnMgd2l0aCB0aGUgYWN0dWFsIGxvZ2ljIGZv ciB5b3VyIG1vbml0b3IuCj4gKyAqLyIiIikKPiArCj4gK8KgwqDCoMKgwqDCoMKgIGlmIHNlbGYu bW9uaXRvcl90eXBlID09ICJwZXJfb2JqIjoKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZm LmFwcGVuZCgic3RhdGljIGludCBoYW5kbGVfbW9uaXRvcl9zdGFydChpbnQgaWQsCj4gbW9uaXRv cl90YXJnZXQgdCkiKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJ1ZmYuYXBwZW5kKCJ7IikK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZmLmFwcGVuZCgiXHRzdHJ1Y3QgaGFfbW9uaXRv ciAqaGFfbW9uOyIpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnVmZi5hcHBlbmQoIlx0dTY0 IHRpbWVfbnMgPSBrdGltZV9nZXRfbnMoKTtcbiIpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAg YnVmZi5hcHBlbmQoIlx0LyogWFhYOiBhbGxvY2F0ZSBEQSBzdG9yYWdlLCBlLmcuCj4gZGFfY3Jl YXRlX29yX2dldChpZCwgdCkgKi8iKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJ1ZmYuYXBw ZW5kKCJcdC8qIFhYWDogc2V0IGluaXRpYWwgREEgc3RhdGUsIGUuZy4KPiBkYV9oYW5kbGVfc3Rh cnRfZXZlbnQoaWQsIHQsIDxldmVudD4pICovIikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBi dWZmLmFwcGVuZCgiXHRoYV9tb24gPSAvKiBYWFg6IHJldHJpZXZlIGhhX21vbml0b3IgZm9yIChp ZCwgdCkKPiAqLzsiKQo+ICvCoMKgwqDCoMKgwqDCoCBlbGlmIHNlbGYubW9uaXRvcl90eXBlID09 ICJwZXJfdGFzayI6Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnVmZi5hcHBlbmQoInN0YXRp YyBpbnQgaGFuZGxlX21vbml0b3Jfc3RhcnQoc3RydWN0IHRhc2tfc3RydWN0Cj4gKnApIikKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZmLmFwcGVuZCgieyIpCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqAgYnVmZi5hcHBlbmQoIlx0c3RydWN0IGhhX21vbml0b3IgKmhhX21vbjsiKQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJ1ZmYuYXBwZW5kKCJcdHU2NCB0aW1lX25zID0ga3RpbWVf Z2V0X25zKCk7XG4iKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJ1ZmYuYXBwZW5kKCJcdC8q IFhYWDogYWxsb2NhdGUgREEgc3RvcmFnZSwgZS5nLgo+IGRhX2NyZWF0ZV9vcl9nZXQocC0+cGlk LCBwKSAqLyIpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnVmZi5hcHBlbmQoIlx0LyogWFhY OiBzZXQgaW5pdGlhbCBEQSBzdGF0ZSwgZS5nLgo+IGRhX2hhbmRsZV9zdGFydF9ldmVudChwLT5w aWQsIHAsIDxldmVudD4pICovIikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZmLmFwcGVu ZCgiXHRoYV9tb24gPSAvKiBYWFg6IHJldHJpZXZlIGhhX21vbml0b3IgZm9yIHAgKi87IikKPiAr wqDCoMKgwqDCoMKgwqAgZWxzZToKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZmLmFwcGVu ZCgic3RhdGljIGludCBoYW5kbGVfbW9uaXRvcl9zdGFydCh2b2lkKSIpCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgYnVmZi5hcHBlbmQoInsiKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJ1 ZmYuYXBwZW5kKCJcdHN0cnVjdCBoYV9tb25pdG9yICpoYV9tb247IikKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBidWZmLmFwcGVuZCgiXHR1NjQgdGltZV9ucyA9IGt0aW1lX2dldF9ucygpO1xu IikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZmLmFwcGVuZCgiXHRoYV9tb24gPSAvKiBY WFg6IHJldHJpZXZlIGdsb2JhbCBoYV9tb25pdG9yICovOyIpCj4gKwo+ICvCoMKgwqDCoMKgwqDC oCBidWZmLmFwcGVuZCgiXHRpZiAoIWhhX21vbikiKQo+ICvCoMKgwqDCoMKgwqDCoCBidWZmLmFw cGVuZCgiXHRcdHJldHVybiAtRU5PRU5UOyIpCj4gKwo+ICvCoMKgwqDCoMKgwqDCoCBmb3IgZW52 IGluIHNlbGYuZW52X2luaXRfc3RhcnRlZDoKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZm LmFwcGVuZChmIlx0aGFfcmVzZXRfZW52KGhhX21vbiwge2Vudn17c2VsZi5lbnVtX3N1ZmZpeH0s Cj4gdGltZV9ucyk7IikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiBlbnYgaW4gdGltZXJf Y2FsbHM6Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZmLmFwcGVuZChmIlx0 e3RpbWVyX2NhbGxzW2Vudl19OyIpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZWxzZToKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJ1ZmYuYXBwZW5kKGYiXHQvKiBYWFg6IGFy bSB0aW1lciBmb3Ige2Vudn0gKi8iKQo+ICsKPiArwqDCoMKgwqDCoMKgwqAgYnVmZi5hcHBlbmQo Ilx0cmV0dXJuIDA7IikKPiArwqDCoMKgwqDCoMKgwqAgYnVmZi5hcHBlbmQoIn1cbiIpCj4gK8Kg wqDCoMKgwqDCoMKgIHJldHVybiBidWZmCj4gKwo+IMKgwqDCoMKgIGRlZiBfZmlsbF9oeWJyaWRf ZGVmaW5pdGlvbnMoc2VsZikgLT4gbGlzdFtzdHJdOgo+IC3CoMKgwqDCoMKgwqDCoCByZXR1cm4g c2VsZi5fX2ZpbGxfaHlicmlkX2dldF9yZXNldF9mdW5jdGlvbnMoKSArCj4gc2VsZi5fX2ZpbGxf Y29uc3RyX2Z1bmMoKQo+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gKHNlbGYuX19maWxsX2h5YnJp ZF9nZXRfcmVzZXRfZnVuY3Rpb25zKCkgKwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgc2VsZi5fX2ZpbGxfaW5pdF9zdGFydF9oZWxwZXIoKSArCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBzZWxmLl9fZmlsbF9jb25zdHJfZnVuYygpKQo+IMKgCj4gwqDCoMKgwqAg ZGVmIF9maWxsX3RpbWVyX3R5cGUoc2VsZikgLT4gbGlzdDoKPiDCoMKgwqDCoMKgwqDCoMKgIGlm IHNlbGYuaW52YXJpYW50czoK