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.133.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 8CFBD3E173F for ; Tue, 12 May 2026 13:25:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778592350; cv=none; b=pQVYAY3PfQaHaILyXNcV38CmtyZ5BMDps1AfWUGWxc45CMVyjl4aY5gSCy4HL+8r6wsRLm9tCWqNP8Oy+CeJ/uKMCOJtghQfWY8u3FVf2UKPDxSBHq5dZRnu3HXmp4zEiYpnq/ey5VO0yePy9vx/jj9tRkUjSkeen8GVI89kQuE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778592350; c=relaxed/simple; bh=+0pI8Li7KLVqdF01/28jhnax3NiFibES31CtxJSJWdU=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: MIME-Version:Content-Type; b=Qxxq0KPFi2NmrzufaYAa/1Xud+OMN9RbPepdWQiRGtRa0FZvCxBYc6/xkFZXtkxV3ijYcSX/HZ0oeWgL1vV3y1JR8TgDnd6lLooaI2eE68m2TI+Y9UH4Xo2Osh82D/JcGiD04/1Gc01U1WRaLsfk+3gykmNIqu8wX9yEgQYkN7o= 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=cfNAsjhV; arc=none smtp.client-ip=170.10.133.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="cfNAsjhV" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1778592347; 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=+0pI8Li7KLVqdF01/28jhnax3NiFibES31CtxJSJWdU=; b=cfNAsjhVHfh4riDEw0m9sKYtBIk1hBHoc7zYTNpHfQW5aj9G6tD9VCCx6eYorwJ8x8Vnx+ DIxPSmfYJYKBtd9lpPjvu4NOjJvBlU/dUZb7Mg1cr/mX4BEGdGKfS5vXkonuS7cHQnbj84 hPZXSGunl8VtTtBdOBvIoo9cyrsFTjg= 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-126-7B7u-5hENvS0K251zoZHyA-1; Tue, 12 May 2026 09:25:45 -0400 X-MC-Unique: 7B7u-5hENvS0K251zoZHyA-1 X-Mimecast-MFC-AGG-ID: 7B7u-5hENvS0K251zoZHyA_1778592345 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-b8ff07df5e4so478415366b.3 for ; Tue, 12 May 2026 06:25:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778592344; x=1779197144; 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=pr/9Fxb3rD0BzLhvVw6RGaGr+T+079YrkQB3tmPFiIKAnS9vs78QAG3d/LUxVdkMmS 5vKOK26Y16EcEs4NzpDD3Ib9Qdm4kEIkonVffk4LKpne96cyvp8vkCZ4XMkua9B1Abri KPA+IXpA6XnY/T6pbU1YVGGqHw1/KpISP50ajINU28btD7AWqt8KbMYL7uumwZzQlDO2 Qegp17QS8AYSaOheJ6j059WbKLfjrgPQCL+DspTxGJJ0qzDC1fWnE7uQc4VawmqKzFzV NOIwzZs2+GdZ4zD/kxStze0aU+oElnUair6+OflX5I1sBhWGp5zmYfN0bxM+jtz/zq61 1WMA== X-Gm-Message-State: AOJu0YyuZPa3bRczzVuxCXORZUiRjrvefmErXd1N+W6ywdf6Tk6RhJ0t QOpgb3O55HqWrUbQHmtJ14gg37AKxYkDXFend4/g0mN/IXYoBOyGZO5vjTXxRc9uWbeQRrLUZjk HSvJnTYuF6LUXTDV4t68mJj9QgVpyiXLvlW6KnGEPLYTl5eZj3TPWYJnQDDtQC1dTZL3/XmOd0Q == X-Gm-Gg: Acq92OFRm2xxXvPUQ9Bvz/ofFCV/nBB7KVQ+fGExjHi2oF03vB0eQ2uN0sPUfMI8DCT WyjAzm7uvvLHXKqxNiFraTTc9jbvLDXAby7R/HLQd61KOs9xcBjCsrkoz6nLLoGs2xPI2AhQtTA G/uZDhF6BTYjsiRdOvacbOG/AO4mLFm8IZDOPgbG/godHDSr83zwmWGULGyiEdCjsNNrMeXqyzK Av3SRNS83Z1deA1Ibn7rHpNhN1WgSM7tgy/MnUAJ3mBIsG1I5tTKdnJIB/4P6t/NRahn1KavoCp 8KbvcEovPYM+xZndiEbElKCaOr+3f+aS14KIHJCf8ZnCj6m2Qeb7GaBDMR2t+PaHz0A7qKI5tUm ZhrnvxOVXhcb27b38ea7y721tnhGsRVTUsrM+17utuBAuonw0yK4uVuhLKZ38dKd5L+PGpqH5CV rZkgZMSrq0VrEd4LU= X-Received: by 2002:a17:907:849:b0:ba8:a21f:9c4e with SMTP id a640c23a62f3a-bc56b41ef64mr1601196466b.11.1778592344368; 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== User-Agent: Evolution 3.60.1 (3.60.1-1.fc44) Precedence: bulk X-Mailing-List: linux-trace-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: rtHAxzyC3bGv52ZBy7cC-LC8-mJl5VBMPJuj-5SFMgk_1778592345 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 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 IHNlbGYuaW52YXJpYW50czoKDQo=