From owner-sc22wg5+sc22wg5-dom8=www.open-std.org@open-std.org  Thu Sep 28 14:34:29 2017
Return-Path: <owner-sc22wg5+sc22wg5-dom8=www.open-std.org@open-std.org>
X-Original-To: sc22wg5-dom8
Delivered-To: sc22wg5-dom8@www.open-std.org
Received: by www.open-std.org (Postfix, from userid 521)
	id 9D0E9358A24; Thu, 28 Sep 2017 14:34:29 +0200 (CEST)
Delivered-To: sc22wg5@open-std.org
Received: from ndmsvnpf101.ndc.nasa.gov (NDMSVNPF101.ndc.nasa.gov [198.117.0.151])
	(using TLSv1 with cipher AES128-SHA (128/128 bits))
	(No client certificate requested)
	by www.open-std.org (Postfix) with ESMTP id 69BBB3585C0
	for <sc22wg5@open-std.org>; Thu, 28 Sep 2017 14:34:24 +0200 (CEST)
X-Comment: SPF check N/A for local connections - client-ip=198.117.0.49; helo=ndmsppt204.ndc.nasa.gov; envelope-from=thomas.l.clune@nasa.gov; receiver=van.snyder@jpl.nasa.gov 
DKIM-Filter: OpenDKIM Filter v2.11.0 ndmsvnpf101.ndc.nasa.gov 2355340050B2
Received: from ndmsppt204.ndc.nasa.gov (NDMSPPT204.ndc.nasa.gov [198.117.0.49])
	by ndmsvnpf101.ndc.nasa.gov (Postfix) with ESMTP id 2355340050B2;
	Thu, 28 Sep 2017 07:34:23 -0500 (CDT)
Received: from pps.filterd (ndmsppt204.ndc.nasa.gov [127.0.0.1])
	by ndmsppt204.ndc.nasa.gov (8.16.0.21/8.16.0.21) with SMTP id v8SCXQQJ015946;
	Thu, 28 Sep 2017 07:34:23 -0500
Authentication-Results: ndc.nasa.gov;
	spf=none smtp.mailfrom=thomas.l.clune@nasa.gov;
	dmarc=none
Received: from ndmscht104.ndc.nasa.gov (ndmscht104-pub.ndc.nasa.gov [198.117.0.204])
	by ndmsppt204.ndc.nasa.gov with ESMTP id 2d8gsj4836-1;
	Thu, 28 Sep 2017 07:34:22 -0500
Received: from NDMSMBX303.ndc.nasa.gov ([169.254.2.237]) by
 NDMSCHT104.ndc.nasa.gov ([198.117.0.174]) with mapi id 14.03.0319.002; Thu,
 28 Sep 2017 07:34:22 -0500
From: "Clune, Thomas L. (GSFC-6101)" <thomas.l.clune@nasa.gov>
To: fortran standards email list for J3 <j3@mailman.j3-fortran.org>
CC: sc22wg5 <sc22wg5@open-std.org>, Van Snyder <Van.Snyder@jpl.nasa.gov>
Subject: Re: (j3.2006) (SC22WG5.5976)  Generic programming examples
Thread-Topic: (j3.2006) (SC22WG5.5976)  Generic programming examples
Thread-Index: AQHTOFYc4fg3hrp260SBJbbXK6EH7Q==
Date: Thu, 28 Sep 2017 12:34:21 +0000
Message-ID: <09A43EF1-9B10-4A1B-B430-C95618412B74@nasa.gov>
References: <20170927201113.6D137358742@www.open-std.org>
 <CEB03336-C898-4C72-9BB9-C533DBDFC4C8@cray.com>
 <20170928020816.B2E4D358742@www.open-std.org>
In-Reply-To: <20170928020816.B2E4D358742@www.open-std.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [128.154.133.152]
Content-Type: text/plain; charset="utf-8"
Content-ID: <DD182AEE1FA44F43AE5A354B4BC09D97@mail.nasa.gov>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-09-28_04:,,
 signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0
 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam
 adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000
 definitions=main-1709280188
X-Proofpoint-Envelope-Sender: thomas.l.clune@nasa.gov
Sender: owner-sc22wg5@open-std.org
Precedence: bulk

U29ycnkgLSBub3Qgc3VyZSBob3cgbXkgc3ViY29uc2Npb3VzIGluamVjdGVkIHRoZSB3b3JkIOKA
nGV4Y2VwdGlvbnPigJ0gYmVsb3cuICAgSSBtZWFudCDigJxVc2luZyBnZW5lcmljcy90ZW1wbGF0
ZXMgc2hvdWxkIG5vdCBtYWtlIHVzIGxvc2UgdGhpcyBvdGhlciBbdHlwZS1ib3VuZCBwcm9jZWR1
cmVzXSBjYXBhYmlsaXR5LuKAnQ0KDQoNCg0KDQo+IE9uIFNlcCAyNywgMjAxNywgYXQgMTA6MDgg
UE0sIENsdW5lLCBUaG9tYXMgTC4gKEdTRkMtNjEwMSkgPHRob21hcy5sLmNsdW5lQG5hc2EuZ292
PiB3cm90ZToNCj4gDQo+IEkgZGlzYWdncmVlLiAgSXQgaXMgY3J1Y2lhbCB0byBoYXZlIHR5cGUt
Ym91bmQgcHJvY2VkdXJlcy4gICBUaGlzIGFsbG93cyBhbGwgc29ydHMgb2YgZ29vZG5lc3Mgd2hl
biBtYW5hZ2luZyBjb21wbGV4IHNvZnR3YXJlLg0KPiANCj4gR29vZG5lc3MgIzE6ICAgIEkgY2Fu
IGNyZWF0ZSBhIG1vY2sgc3ViY2xhc3MgdGhhdCBhbGxvd3MgbWUgdG8gdGVzdCBvdGhlciBjbGll
bnRzIG9mIHRoaXMgbGF5ZXIgd2l0aG91dCBkZWFsaW5nIHdpdGggdGhlIGNvbXBsZXhpdHkgb2Yg
dGhlIGNsYXNzIHRoYXQgSSBhbSBtb2NraW5nLg0KPiANCj4gR29vZG5lc3MgIzI6ICAgSSBjYW4g
c3ViY2xhc3Mgd2l0aCB2YXJpYW50IGJlaGF2aW9yIHdpdGhvdXQgbW9kaWZ5aW5nIG90aGVyIGNv
ZGUuDQo+IA0KPiBVc2luZyBleGNlcHRpb25zIHNob3VsZCBub3QgbWFrZSB1cyBsb3NlIHRoaXMg
b3RoZXIgZXh0cmVtZWx5IGltcG9ydGFudCBjYXBhYmlsaXR5IQ0KPiANCj4gV2l0aCB0aGUgYWR2
ZW50IG9mIG1hdHVyZSBGMjAwMyBzdXBwb3J0IGluIHZlbmRvcnMsIEkgd291bGQgZ3Vlc3MgdGhh
dCBsZXNzIHRoYXQgMTUlIG9mIG15IG5ldyBwcm9jZWR1cmVzIGFuZCBzdWJyb3V0aW5lcyBhcmUg
YW55dGhpbmcgb3RoZXIgdGhhbiB0eXBlLWJvdW5kIHByb2NlZHVyZXMuICAgIFRoZSBtYWpvciBl
eGNlcHRpb25zIGFyZSBoZWxwZXIgcHJvY2VkdXJlcyBfd2l0aGluXyB0eXBlLWJvdW5kIHByb2Nl
ZHVyZXMgYW5kIHRoZSBvY2Nhc2lvbmFsIHF1aWNrLWFuZC1kaXJ0eSBwcm9jZWR1cmUgaW4gYSBk
cml2ZXIuDQo+IA0KPj4gT24gU2VwIDI3LCAyMDE3LCBhdCA3OjE2IFBNLCBCaWxsIExvbmcgPGxv
bmdiQGNyYXkuY29tPiB3cm90ZToNCj4+IA0KPj4gT3IgbWF5YmUganVzdA0KPj4gDQo+PiBtb2R1
bGUgU3BsaW5lcw0KPj4gdHlwZSA6OiBDb2VmcyAocmspDQo+PiAgICBpbnRlZ2VyLGtpbmQgOjog
cmsNCj4+ICAgIHJlYWwsYWxsb2NhdGFibGUgOjogYSg6KSwgYig6KSwgYyg6KSwgZCg6KQ0KPj4g
ZW5kIHR5cGUgQ29lZnMNCj4+IGNvbnRhaW5zDQo+PiB0ZW1wbGF0ZSBzdWJyb3V0aW5lIGV2YWwg
KGMsIHgsIHkpDQo+PiAgICB0eXBlIChjb2Vmcyhyaz0qKSkgOjogYw0KPj4gICAgcmVhbCgqKSwg
aW50ZW50KGluKSA6OiB4DQo+PiAgICByZWFsKCopLCBpbnRlbnQob3V0KSA6OiB5DQo+PiAgIDxj
b21wdXRhdGlvbiBwYXJ0IGhlcmU+DQo+PiBlbmQgc3Vicm91dGluZSBldmFsDQo+PiBlbmQgbW9k
dWxlIFNwbGluZXMNCj4+IA0KPj4gRm9yIHNpbXBsZSBjYXNlcywgZ2VuZXJpY3MgYXJlIHVubmVj
ZXNzYXJ5IGlmIHlvdSBoYXZlIHRlbXBsYXRlcy4gIEFuZCB0aGUgY29tcGxpY2F0aW9uIG9mIHR5
cGUtYm91bmQgcHJvY2VkdXJlcyBzZWVtcyB1bm5lY2Vzc2FyeSBhcyB3ZWxsLiAgU2ltcGxlLCBj
bGVhbiBjb2RlIGlzIGFsbW9zdCBhbHdheXMgYmV0dGVyLiANCj4+IA0KPj4gDQo+PiBDaGVlcnMs
DQo+PiBCaWxsDQo+PiANCj4+IA0KPj4gDQo+Pj4gT24gU2VwIDI3LCAyMDE3LCBhdCAzOjExIFBN
LCBWYW4gU255ZGVyIDx2YW4uc255ZGVyQGpwbC5uYXNhLmdvdj4gd3JvdGU6DQo+Pj4gDQo+Pj4g
Q29uc2lkZXIgYSBtb2R1bGUgZm9yIHNwbGluZSBpbnRlcnBvbGF0aW9uOg0KPj4+IA0KPj4+IG1v
ZHVsZSBTcGxpbmVzDQo+Pj4gIHR5cGUgOjogQ29lZmZzICggUksgKQ0KPj4+ICAgIGludGVnZXIs
IGtpbmQgOjogUksNCj4+PiAgICByZWFsLCBhbGxvY2F0YWJsZSA6OiBBKDopLCBCKDopLCBDKDop
LCBEKDopDQo+Pj4gIGNvbnRhaW5zDQo+Pj4gICAgcHJvY2VkdXJlIDo6IEV2YWxfRCwgRXZhbF9T
LCAuLi4NCj4+PiAgICBnZW5lcmljIDo6IEV2YWwgPT4gRXZhbF9ELCBFdmFsX1MNCj4+PiAgICAh
IEFuZCBtb3JlIHByb2NlZHVyZXMgdG8gY29tcHV0ZSBBLCBCLCBDLCBELCBldGMuDQo+Pj4gIGVu
ZCB0eXBlIENvZWZmcw0KPj4+ICBpbnRlZ2VyLCBwdWJsaWMsIHBhcmFtZXRlciA6OiBESyA9IGtp
bmQoMC4wZDApLCBTSyA9PiBraW5kKDAuMGUwKQ0KPj4+IGNvbnRhaW5zDQo+Pj4gIHN1YnJvdXRp
bmUgRXZhbF9EICggQywgWCwgWSApDQo+Pj4gICAgaW50ZWdlciwgcGFyYW1ldGVyIDo6IFJLID0g
ZGsNCj4+PiAgICBjbGFzcyhjb2VmZnMocmspKSwgaW50ZW50KGluKSA6OiBDDQo+Pj4gICAgcmVh
bChyayksIGludGVudChpbikgOjogWA0KPj4+ICAgIHJlYWwocmspLCBpbnRlbnQob3V0KSA6OiBZ
DQo+Pj4gICAgaW5jbHVkZSAiRXZhbF9Cb2R5LmY5aCINCj4+PiAgZW5kIHN1YnJvdXRpbmUgRXZh
bF9EDQo+Pj4gDQo+Pj4gIHN1YnJvdXRpbmUgRXZhbF9TICggQywgWCwgWSApDQo+Pj4gICAgaW50
ZWdlciwgcGFyYW1ldGVyIDo6IFJLID0gc2sNCj4+PiAgICBjbGFzcyhjb2VmZnMocmspKSwgaW50
ZW50KGluKSA6OiBDDQo+Pj4gICAgcmVhbChyayksIGludGVudChpbikgOjogWA0KPj4+ICAgIHJl
YWwocmspLCBpbnRlbnQob3V0KSA6OiBZDQo+Pj4gICAgaW5jbHVkZSAiRXZhbF9Cb2R5LmY5aCIN
Cj4+PiAgZW5kIHN1YnJvdXRpbmUgRXZhbF9TDQo+Pj4gIC4uLi4NCj4+PiBlbmQgbW9kdWxlIFNw
bGluZXMNCj4+PiANCj4+PiBOb3cgSSBuZWVkIHNpbmdsZSwgZG91YmxlIGFuZCBRLXByZWNpc2lv
biBzcGxpbmVzOg0KPj4+IA0KPj4+IHVzZSBTcGxpbmVzLCBvbmx5OiBDb2VmZnMsIERLLCBTSw0K
Pj4+IGludGVnZXIsIHBhcmFtZXRlciA6OiBRSyA9IHNlbGVjdGVkX3JlYWxfa2luZCAoIDEgKyBw
cmVjaXNpb24oMS4wZDApICkNCj4+PiB0eXBlKGNvZWZmcyhkaykpIDo6IENfRA0KPj4+IHR5cGUo
Y29lZmZzKHNrKSkgOjogQ19TDQo+Pj4gdHlwZShjb2VmZnMocWspKSA6OiBDX1ENCj4+PiByZWFs
KGRrKSA6OiBZX2QNCj4+PiByZWFsKHNrKSA6OiBZX1MNCj4+PiByZWFsKHFrKSA6OiBZX3ENCj4+
PiBjYWxsIGNfZCVldmFsICggMS41X2RrLCB5X2QgKQ0KPj4+IGNhbGwgY19zJWV2YWwgKCAxLjVf
c2ssIHlfcyApDQo+Pj4gY2FsbCBjX3ElZXZhbCAoIDEuNV9xaywgeV9xICkNCj4+PiANCj4+PiBO
b3RpY2UgdGhhdCBTcGxpbmVzIGRvZXNuJ3QgZGVmaW5lIGEgUS1wcmVjaXNpb24gRXZhbF8qIHN1
YnJvdXRpbmUsIGFuZA0KPj4+IENvZWZmcyBkb2Vzbid0IHByb3ZpZGUgYSBnZW5lcmljIGJpbmRp
bmcgZm9yIG9uZS4gIFNvIHRoZSBjb2RlIHdvbid0DQo+Pj4gZXZlbiBjb21waWxlLiAgR2VuZXJp
YyByZXNvbHV0aW9uIGZhaWxzIGJlY2F1c2UgdGhlcmUgaXMgbm8gUS1wcmVjaXNpb24NCj4+PiBn
ZW5lcmljIHRvIG1hdGNoIGNfcSVldmFsLiAgVGhpcyBpcyBhIHByb2JsZW0gaWYgYWxsIHlvdSBo
YXZlIGZvciB5b3VyDQo+Pj4gc3BsaW5lIGxpYnJhcnkgaXMgLm8gYW5kIC5tb2QgZmlsZXMsIGFu
ZCB0aGUgY29tcGFueSB0aGF0IHByb3ZpZGVkIGl0IG5vDQo+Pj4gbG9uZ2VyIGV4aXN0cyB0byBn
aXZlIChvciBzZWxsKSB5b3Ugc291cmNlIHRvIHVwZ3JhZGUgdG8geW91cg0KPj4+IHJlcXVpcmVt
ZW50cy4NCj4+PiANCj4+PiBUaGlzIGlzIHdoYXQgUmljaGFyZCBNYWluZSB3YXJuZWQgYWJvdXQg
dHdlbnR5IHllYXJzIGFnbyAtLSB3aGVuIEFkYQ0KPj4+IGdlbmVyaWMgcGFja2FnZXMgaGFkIGFs
cmVhZHkgYmVlbiBpbiB1c2UgZm9yIGZvdXJ0ZWVuIHllYXJzLCBhbmQgaGFkDQo+Pj4gYmVlbiBw
YXJ0IG9mIHRoZSBBZGEgcmVxdWlyZW1lbnRzIHNpbmNlIGJlZm9yZSBGT1JUUkFOIDc3Lg0KPj4+
IA0KPj4+IExldCdzIGRvIGl0IHVzaW5nIGEgcGFyYW1ldGVyaXplZCBwcm9jZWR1cmUgd2l0aG91
dCBhIHBhcmFtZXRlcml6ZWQNCj4+PiBtb2R1bGUgKHRoZSBzeW50YXggZXh0ZW5zaW9ucyBzaG91
bGQgYmUgb2J2aW91cyk6DQo+Pj4gDQo+Pj4gbW9kdWxlIFNwbGluZXMNCj4+PiAgdHlwZSA6OiBD
b2VmZnMgKCBSSyApDQo+Pj4gICAgaW50ZWdlciwga2luZCA6OiBSSw0KPj4+ICAgIHJlYWwsIGFs
bG9jYXRhYmxlIDo6IEEoOiksIEIoOiksIEMoOiksIEQoOikNCj4+PiAgY29udGFpbnMNCj4+PiAg
ICBwcm9jZWR1cmUgOjogRXZhbF9ELCBFdmFsX1MsIC4uLg0KPj4+ICAgIGdlbmVyaWMgOjogRXZh
bCA9PiBFdmFsX0QsIEV2YWxfUw0KPj4+ICBlbmQgdHlwZSBDb2VmZnMNCj4+PiAgaW50ZWdlciwg
cHVibGljLCBwYXJhbWV0ZXIgOjogREsgPSBraW5kKDAuMGQwKSwgU0sgPT4ga2luZCgwLjBlMCkN
Cj4+PiAgcHJvY2VkdXJlIDo6IEV2YWxfRCA9PiBFdmFsICggZGsgKQ0KPj4+ICBwcm9jZWR1cmUg
OjogRXZhbF9TID0+IEV2YWwgKCBzayApDQo+Pj4gY29udGFpbnMNCj4+PiAgc3Vicm91dGluZSAo
cmspIEV2YWwgKCBDLCBYLCBZICkNCj4+PiAgICBpbnRlZ2VyIDo6IFJLDQo+Pj4gICAgY2xhc3Mo
Y29lZmZzKHJrKSksIGludGVudChpbikgOjogQw0KPj4+ICAgIHJlYWwocmspLCBpbnRlbnQoaW4p
IDo6IFgNCj4+PiAgICByZWFsKHJrKSwgaW50ZW50KG91dCkgOjogWQ0KPj4+ICAgIC4uLiAoZG9u
J3QgbmVlZCBJbmNsdWRlICJFdmFsX0JvZHkuZjloIikNCj4+PiAgZW5kIHN1YnJvdXRpbmUgRXZh
bA0KPj4+IGVuZCBtb2R1bGUgU3BsaW5lcw0KPj4+IA0KPj4+IE5vdyBJIG5lZWQgc2luZ2xlLCBk
b3VibGUgYW5kIFEtcHJlY2lzaW9uIHNwbGluZXM6DQo+Pj4gDQo+Pj4gQXNzdW1lIEkgZ290IG9u
bHkgLm8gYW5kIC5tb2QgZmlsZXMgZnJvbSBhIHZlbmRvciwgc28gSSBkb24ndCBoYXZlDQo+Pj4g
c291cmNlIHRvIHVwZ3JhZGUuICBTbyBmaXJzdCwgSSBuZWVkIHRvIGV4dGVuZCBDb2VmZnMgYW5k
IGRlZmluZSBhDQo+Pj4gUS1wcmVjaXNpb24gZXZhbHVhdG9yOg0KPj4+IA0KPj4+IG1vZHVsZSBT
cGxpbmVzX1ENCj4+PiAgdXNlIFNwbGluZXMsIG9ubHk6IENvZWZmcywgRXZhbA0KPj4+ICB0eXBl
LCBleHRlbmRzKGNvZWZmcykgOjogQ29lZmZzX1ENCj4+PiAgY29udGFpbnMNCj4+PiAgICBwcm9j
ZWR1cmUgOjogRXZhbF9RDQo+Pj4gICAgZ2VuZXJpYyA6OiBFdmFsID0+IEV2YWxfUQ0KPj4+ICBl
bmQgdHlwZSBDb2VmZnNfUQ0KPj4+ICBpbnRlZ2VyLCBwdWJsaWMsIHBhcmFtZXRlciA6OiBRSyA9
IHNlbGVjdGVkX3JlYWxfa2luZCAoIDEgKyBwcmVjaXNpb24oMS4wZDApICkNCj4+PiAgcHJvY2Vk
dXJlIDo6IEV2YWxfUSA9PiBFdmFsICggcWsgKQ0KPj4+IGVuZCBtb2R1bGUgU3BsaW5lc19RDQo+
Pj4gDQo+Pj4gdXNlIFNwbGluZXNfUSwgb25seTogQ29lZmZzX1EsIERLLCBTSywgUUsNCj4+PiB0
eXBlKGNvZWZmc19xKGRrKSkgOjogQ19EDQo+Pj4gdHlwZShjb2VmZnNfcShzaykpIDo6IENfUw0K
Pj4+IHR5cGUoY29lZmZzX3EocWspKSA6OiBDX1ENCj4+PiByZWFsKGRrKSA6OiBZX2QNCj4+PiBy
ZWFsKHNrKSA6OiBZX1MNCj4+PiByZWFsKHFrKSA6OiBZX3ENCj4+PiBjYWxsIGNfZCVldmFsICgg
MS41X2RrLCB5X2QgKQ0KPj4+IGNhbGwgY19zJWV2YWwgKCAxLjVfc2ssIHlfcyApDQo+Pj4gY2Fs
bCBjX3ElZXZhbCAoIDEuNV9xaywgeV9xICkNCj4+PiANCj4+PiBOb3cgbGV0J3MgZG8gaXQgdXNp
bmcgYSBwYXJhbWV0ZXJpemVkIG1vZHVsZToNCj4+PiANCj4+PiBtb2R1bGUgU3BsaW5lcyAoIFJL
ICkNCj4+PiAgaW50ZWdlciwgcHVibGljLCBraW5kIDo6IFJLICEgTW9kdWxlIHBhcmFtZXRlcg0K
Pj4+ICB0eXBlIDo6IENvZWZmcyAhIERvZXNuJ3QgaGF2ZSBhIHR5cGUgcGFyYW1ldGVyDQo+Pj4g
ICAgcmVhbChyayksIGFsbG9jYXRhYmxlIDo6IEEoOiksIEIoOiksIEMoOiksIEQoOikNCj4+PiAg
Y29udGFpbnMNCj4+PiAgICBwcm9jZWR1cmUgRXZhbA0KPj4+ICBlbmQgdHlwZSBDb2VmZnMNCj4+
PiBjb250YWlucw0KPj4+ICBzdWJyb3V0aW5lIEV2YWwgKCBDLCBYLCBZICkNCj4+PiAgICBjbGFz
cyhjb2VmZnMpLCBpbnRlbnQoaW4pIDo6IEMNCj4+PiAgICByZWFsKHJrKSwgaW50ZW50KGluKSA6
OiBYDQo+Pj4gICAgcmVhbChyayksIGludGVudChvdXQpIDo6IFkNCj4+PiAgICAuLi4gKGRvbid0
IG5lZWQgSW5jbHVkZSAiRXZhbF9Cb2R5LmY5aCIpDQo+Pj4gIGVuZCBzdWJyb3V0aW5lIEV2YWwN
Cj4+PiBlbmQgbW9kdWxlIFNwbGluZXMNCj4+PiANCj4+PiBOb3cgSSBuZWVkIHNpbmdsZSwgZG91
YmxlIGFuZCBRLXByZWNpc2lvbiBzcGxpbmVzOg0KPj4+IA0KPj4+IHVzZSBTcGxpbmVzICgga2lu
ZCgxLjBkMCkgKSwgb25seTogQ29lZmZzX0QgPT4gQ29lZmZzLCBESyA9PiBSSw0KPj4+IHVzZSBT
cGxpbmVzICgga2luZCgxLjBlMCkgKSwgb25seTogQ29lZmZzX1MgPT4gQ29lZmZzLCBTSyA9PiBS
Sw0KPj4+IHVzZSBTcGxpbmVzICggc2VsZWN0ZWRfcmVhbF9raW5kICggMSArIHByZWNpc2lvbigx
LjBkMCkgKSwgb25seTogQ29lZmZzX1EgPT4gQ29lZmZzLCAmDQo+Pj4gICYgUUsgPT4gUksNCj4+
PiANCj4+PiB0eXBlKGNvZWZmc19kKSA6OiBDX0QNCj4+PiB0eXBlKGNvZWZmc19zKSA6OiBDX1MN
Cj4+PiB0eXBlKGNvZWZmc19xKSA6OiBDX1ENCj4+PiByZWFsKGRrKSA6OiBZX2QNCj4+PiByZWFs
KHNrKSA6OiBZX3MNCj4+PiByZWFsKHFrKSA6OiBZX3ENCj4+PiBjYWxsIGNfZCVldmFsICggMS41
X2RrLCB5X2QgKQ0KPj4+IGNhbGwgY19zJWV2YWwgKCAxLjVfcmssIHlfcyApDQo+Pj4gY2FsbCBj
X3ElZXZhbCAoIDEuNV9xaywgeV9xICkNCj4+PiANCj4+PiBUaGlzIHdvcmtzLCBldmVuIGlmIHlv
dSBkb24ndCBoYXZlIHNvdXJjZSBjb2RlIGZvciB0aGUgbW9kdWxlLiAgSXQncw0KPj4+IGVhc3kg
dG8gY29uc3RydWN0IGEgdHlwZSBhbmQgY29uc2lzdGVudCByZWxhdGVkIHR5cGUtYm91bmQgcHJv
Y2VkdXJlcy4NCj4+PiBZb3UgY2FuJ3QgZG8gdGhhdCBuZWFybHkgc28gZWFzaWx5IHVzaW5nIHBh
cmFtZXRlcml6ZWQgcHJvY2VkdXJlcw0KPj4+IHdpdGhvdXQgcGFyYW1ldGVyaXplZCBtb2R1bGVz
LiAgSWYgeW91IGhhdmUgYSBwYXJhbWV0ZXJpemVkIEVWQUwNCj4+PiBwcm9jZWR1cmUgYnV0IHlv
dSBkb24ndCBoYXZlIHRoZSBzb3VyY2UgZm9yIHRoZSBTcGxpbmVzIG1vZHVsZSwgeW91IG5lZWQN
Cj4+PiB0byBleHRlbmQgdGhlIHR5cGUgdG8gYWRkIGEgYmluZGluZyBmb3IgdGhlIFEtcHJlY2lz
aW9uIEV2YWwgc3Vicm91dGluZS4NCj4+PiBJdCdzIG5vdCBpbXBvc3NpYmxlLCBidXQgaXQncyB1
Z2x5IGFuZCByZXF1aXJlcyBtb3JlIGxhYm9yIGV4cGVuc2UgZm9yDQo+Pj4gZGV2ZWxvcG1lbnQg
YW5kIG1haW50ZW5hbmNlLg0KPj4+IA0KPj4+IFRvIG1ha2UgdGhpbmdzIGEgbGl0dGxlIGJpdCBz
bW9vdGhlciwgd2Ugc2hvdWxkIGFsbG93IGRlY2xhcmF0aW9ucw0KPj4+IGJlZm9yZSBVU0Ugc3Rh
dGVtZW50cywgc28gbG9uZyBhcyB0aGV5IGRlcGVuZCBvbmx5IHVwb24gdGhpbmdzIGRlY2xhcmVk
DQo+Pj4gZWFybGllciAoYW4gYWxyZWFkeS11YmlxdWl0b3VzIHJlcXVpcmVtZW50IGluIHRoZSBG
b3J0cmFuIHN0YW5kYXJkKToNCj4+PiANCj4+PiBpbnRlZ2VyLCBwYXJhbWV0ZXIgOjogREsgPSBr
aW5kKDAuMGQwKQ0KPj4+IGludGVnZXIsIHBhcmFtZXRlciA6OiBTSyA9IGtpbmQoMC4wZTApDQo+
Pj4gaW50ZWdlciwgcGFyYW1ldGVyIDo6IFFLID0gc2VsZWN0ZWRfcmVhbF9raW5kICggMSArIHBy
ZWNpc2lvbigxLjBkMCkgKQ0KPj4+IA0KPj4+IHVzZSBTcGxpbmVzICggZGsgKSwgb25seTogQ29l
ZmZzX0QgPT4gQ29lZmZzDQo+Pj4gdXNlIFNwbGluZXMgKCBzayApLCBvbmx5OiBDb2VmZnNfUyA9
PiBDb2VmZnMNCj4+PiB1c2UgU3BsaW5lcyAoIHFrICksIG9ubHk6IENvZWZmc19RID0+IENvZWZm
cw0KPj4+IA0KPj4+IFRoaXMgd2FzIGFsbCBsYWlkIG91dCBpbiBtdWNoIGdyZWF0ZXIgZGV0YWls
IGluIDA0LTM4M3IxLCB3aXRoIG1hbnkgbW9yZQ0KPj4+IHVzZSBjYXNlIGV4YW1wbGVzLg0KPj4+
IA0KPj4+IA0KPj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fDQo+Pj4gSjMgbWFpbGluZyBsaXN0DQo+Pj4gSjNAbWFpbG1hbi5qMy1mb3J0cmFuLm9yZw0K
Pj4+IGh0dHA6Ly9tYWlsbWFuLmozLWZvcnRyYW4ub3JnL21haWxtYW4vbGlzdGluZm8vajMNCj4+
IA0KPj4gQmlsbCBMb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nYkBjcmF5LmNvbQ0KPj4gUHJpbmNpcGFs
IEVuZ2luZWVyLCBGb3J0cmFuIFRlY2huaWNhbCBTdXBwb3J0ICYgICB2b2ljZTogIDY1MS02MDUt
OTAyNA0KPj4gQmlvaW5mb3JtYXRpY3MgU29mdHdhcmUgRGV2ZWxvcG1lbnQgICAgICAgICAgICAg
ICAgICAgICAgZmF4OiAgNjUxLTYwNS05MTQzDQo+PiBDcmF5IEluYy4vIDIxMzEgTGluZGF1IExh
bmUvICBTdWl0ZSAxMDAwLyAgQmxvb21pbmd0b24sIE1OICA1NTQyNQ0KPj4gDQo+PiANCj4+IF9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+PiBKMyBtYWls
aW5nIGxpc3QNCj4+IEozQG1haWxtYW4uajMtZm9ydHJhbi5vcmcNCj4+IGh0dHA6Ly9tYWlsbWFu
LmozLWZvcnRyYW4ub3JnL21haWxtYW4vbGlzdGluZm8vajMNCj4gDQo+IF9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IEozIG1haWxpbmcgbGlzdA0KPiBK
M0BtYWlsbWFuLmozLWZvcnRyYW4ub3JnDQo+IGh0dHA6Ly9tYWlsbWFuLmozLWZvcnRyYW4ub3Jn
L21haWxtYW4vbGlzdGluZm8vajMNCg0K
