From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7150990665368731648 X-Received: by 2002:a05:6830:6002:b0:660:7be2:59b2 with SMTP id bx2-20020a056830600200b006607be259b2mr610526otb.183.1665007330334; Wed, 05 Oct 2022 15:02:10 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6870:e287:b0:132:302f:c297 with SMTP id v7-20020a056870e28700b00132302fc297ls67770oad.1.-pod-prod-gmail; Wed, 05 Oct 2022 15:02:09 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6o1xI77tiUpVEPXFS4zBr4Bh6cVhChVkVqFv9VfvBtlPIIvgdHhOTGr3L/VIIy3hKCBkDR X-Received: by 2002:a05:6870:790:b0:131:b107:5eea with SMTP id en16-20020a056870079000b00131b1075eeamr935631oab.66.1665007329687; Wed, 05 Oct 2022 15:02:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665007329; cv=none; d=google.com; s=arc-20160816; b=dIjSaSEb4MsqgK1l1xZAzj+XS9WHCaXpaJQq+ltYMzGHDig2MxbX9w7go6VENTpg39 Ne00ye/GznIs1mCnp6R/rEPguEsvAcBPcZvSkvLqPtuncpZbmIhycohpgRteOFv8lYro 04ClUQvYsJDZzXhNUr4FmAQgtkQwlitBvqJi4VfzB+9E+SFO6D57pCmethXrZrAzesHP UAjktC3uW4K3vDMu9DK4JEDNDjXA4A29CaORBfYHZd/ysGJ6/stHTTyBLdlzHgS0PcI1 W7X4j0Cu8Qeb1CO4Qw+9ozKmoOsMLuwIxc62tQLXAsZd9FIUdOR5QbxZMWElkCw5TluY QTxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=JJc0rlwX64AoI9NqQvzAxCb+anKiNZTW3hN3KKKchas=; b=gZZG3Ej9y9MDoyaZIJv0qQQ/TtZLYthTIZ6M/kjK9eaqkvEDDUp3ya4o8sZZtpGOtT gvcI83woAh4/C0Xufm41JbIC9ZKJcpKfobSW6zRhy1gVl1VcPKsIvixJe+75mBRApHQG L2zL4RYc/ZEjbHApdCxiaGkcOVsHPH8/zW9mJdkiyazfpQnQlL19a0iFz6yDAH/LW/kV t601/G4sl7nWRjU4BmVEjA6OhFqShSazQwhsoR9WJKrdAnx5uNN3I1W+EpuKgUgBN6+R SdOSqsQGcQns28IloSSs0eJLilJlJQ9U0uUGPYz0brUvH8BSfav0rIyg+JtUcJDk613B V7Ug== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=jsraLxEx; spf=pass (google.com: domain of roberto.foglietta@gmail.com designates 2607:f8b0:4864:20::635 as permitted sender) smtp.mailfrom=roberto.foglietta@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com. [2607:f8b0:4864:20::635]) by gmr-mx.google.com with ESMTPS id p2-20020a4ad442000000b00475fdcaf44asi769982oos.2.2022.10.05.15.02.09 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 05 Oct 2022 15:02:09 -0700 (PDT) Received-SPF: pass (google.com: domain of roberto.foglietta@gmail.com designates 2607:f8b0:4864:20::635 as permitted sender) client-ip=2607:f8b0:4864:20::635; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=jsraLxEx; spf=pass (google.com: domain of roberto.foglietta@gmail.com designates 2607:f8b0:4864:20::635 as permitted sender) smtp.mailfrom=roberto.foglietta@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: by mail-pl1-x635.google.com with SMTP id l4so1308792plb.8 for ; Wed, 05 Oct 2022 15:02:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=JJc0rlwX64AoI9NqQvzAxCb+anKiNZTW3hN3KKKchas=; b=jsraLxExYSw4mW5kHjOklJ0S+BOywquRhQk1bcLZcuinBDlNWj3v/A5ZUywvXeS4EE xYk8OT0WkZJYp/AdJZGmG+AxrEx1xw/woQgivYtq5aa+thq2yEXIRI0jW82xLJd/JBhD OJbJ0OMOOBSnNmfkrgAHxjq09e1lroNRZJfD7kfckWpUwRffaA8K2PIkJY6ihf6cDJDI LxK+gXUbpxJDEcK/EHOYsMWFVIZ9bqkykmuxPNhmU2AbbmKU8APf/fRVrP1WOn6mEFkd yKwxeag4HKpKkhoEuu104HfI4iYEjYQQInSw/jw/J5jIgvUhqXOyETT6Vv6fb2BSvwnQ fwUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=JJc0rlwX64AoI9NqQvzAxCb+anKiNZTW3hN3KKKchas=; b=YKLNbrej2mYXMkzHHMmfpEnbttP7Vng5YcvkCpVbe3+tPPTFsL1ZH0bLk4sfoYSQZp 4UDvClb61Bxx1r9a0HRaowlaxKqQepWrkP+t0Y0lPYbsMYItmjuD/TQxRu2zyqbCMKId xg4V9dZSodXewVQPKnYF160Z8CgpDwboF8zGnikeYuVHSeH2LpcUIV3hZzqWin1WcKNi k0uN71Z4sxf0yRalzJNC65LDYzpXzUAKwOUvWbqo+dudq2GQCssc9V/UavwWRc3XXmwE aepNwg1NefOGbqMkoK4HOasSkJT+WBQ/6UlOOJcr1HBZsqPpwAGWCr9Y4ttuV7vrK4tA pdhw== X-Gm-Message-State: ACrzQf0APkFBuqZIGzBM8PxfdTGbIrQE35+3mWXu7XKK1i4LVcSnhVAw mCouSv4WlkzDdqPeRxzYh1uvudHqt0q4ndIkUgAkaFULuh/f X-Received: by 2002:a17:90b:4f8d:b0:203:747c:7b7e with SMTP id qe13-20020a17090b4f8d00b00203747c7b7emr1823617pjb.98.1665007328665; Wed, 05 Oct 2022 15:02:08 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: "Roberto A. Foglietta" Date: Thu, 6 Oct 2022 00:01:30 +0200 Message-ID: Subject: Re: ISAR evaluation nVidia image generator based on Debian bullseye To: isar-users@googlegroups.com Cc: "Moessbauer, Felix" , Jan Kiszka , Henning Schild Content-Type: multipart/mixed; boundary="0000000000005fbac305ea50baf7" X-TUID: tUdCbPlIdltP --0000000000005fbac305ea50baf7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Il giorno mer 5 ott 2022 alle ore 13:35 Roberto A. Foglietta ha scritto: > > Dear all, > > I am proud to announce the v0.9.1 of an ISAR evaluation nVidia image > generator based on Debian bullseye. I hardly believe that this project > will surprise you because of the technology adopted nor its use but > probably you will find this file interesting, in particular the > rationale chapter. > > https://github.com/robang74/isar-nvidia-debian/blob/main/README.md The README.md file is in attachment and this is the chapter suggested Rationale --------- An equivalent result can be obtained installing a Debian 11, adding the nVi= dia repositories dedicated to the developers and the other one dedicated to the docker runtime, then installing the 'cuda-demo-suite-11-7' and 'nvidia-dock= er2' packages. The most sensitive difference between these two approaches is that the ISAR image contains the open-source driver while the apt installed the closed-so= urce. In fact, this project is a proof-of-concept that shows how to add the open-source nVidia driver in a Debian 11 system integrating it with the proprietary ful= l software stack without violating the licence and being able to redistribute the image, at least for some usages allowed by the licences (\*). - https://opensource.stackexchange.com/questions/10082/geforce-nvidia-drive= r-license-for-commerical-use This project aims to provide a way to deliver a system with nVidia full sta= ck software installed which is legally distributable also for commercial uses. - https://www.nvidia.com/en-us/drivers/unix In fact, up today (515.76) the .run archive that contains the driver and th= e CUDA libraries is licenced in a way for which two essential operations are = not permitted: - =C2=A72.1.2 does not allow the compilation essential for deliver a binar= y driver - =C2=A72.1.3 does not allow to repackage the .run content in many .deb pa= ckages This project works around these limitations using the open-source driver - https://github.com/NVIDIA/open-gpu-kernel-modules in order to not violate the =C2=A72.1.2 and installing the nVidia software = from their public repositories without changing the .deb packages content and removing= just few dependencies - which are just text fields into a .deb architecture and = have nothing to do with the content delivered aka package metadata, only - allow= s to avoid installing the closed-source driver and the related packages. This allows also to choose a complete different kernel version respect the one delivered with the Debian 11 and compile it by an ISAR recipe applying a custom configuration and patches like this one: - https://lore.kernel.org/lkml/20220921063638.2489-1-kprateek.nayak@amd.co= m that unlock AMD Ryzen CPUs a more +51% of computation power lost due to an old bug. (\*) **Legal notes** - no any warranty is granted and further license changes might happen. - debian legal ml https://lists.debian.org/debian-legal/2022/10/msg00004.h= tml Cheers, R. --0000000000005fbac305ea50baf7 Content-Type: text/markdown; charset="UTF-8"; name="README.md" Content-Disposition: attachment; filename="README.md" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l8w69wz80 SVNBUiBkZWJpYW4gaW1hZ2UgZ2VuZXJhdG9yCj09PT09PT09PT09PT09PT09PT09PT09PT09PQoK QnVpbGQgd2l0aCBJU0FSIGFuIGV2YWx1YXRpb24gaW1hZ2UgYmFzZWQgb24gRGViaWFuIDExIChi dWxsc2V5ZSkgc2VsZWN0aW5nIGZyb20KblZpZGlhIEdQVSBzdXBwb3J0ICg1MTUuNjUuMDEpIHVw IHRvIGEgZ3JhcGhpYyBkZXZlbG9waW5nIGVudmlyb21lbnQgd2l0aCB0aGUKZnVsbCBuVmlkaWEg c29mdHdhcmUgc3RhY2sgKDExLjcpIHJ1bm5pbmcgYSBzdGFuZGFyZCBkZWJpYW4ga2VybmVsCgoK QWJvdXQKLS0tLS0KClRoZSBnZW5lcmF0ZWQgaW1hZ2VzIHJ1biBvbiB4ODYgc3lzdGVtcyBhbmQg dGhlIGNvbXBsZXRlIG9uZSBpbmNsdWRlcyBhIG5WaWRpYQpmdWxsIHNvZnR3YXJlIHN0YWNrIGZv ciBkZXZlbG9waW5nLCBkZWJ1Z2dpbmcgYW5kIHR1bmluZyBBSSBhcHBsaWNhdGlvbnMgb24gdGhl CnRvcCBvZiB0aGUgRGViaWFuIDExIChidWxsc2V5ZSkgd2l0aCBhIEdub21lIDMgYW5kIGEgZGVk aWNhdGVkIEVjbGlwc2UgR1VJOgoKIC0gRUZJIGJvb3QgaW4gYSBzZXBhcmF0ZSBWRkFUIHBhcnRp dGlvbgogLSBEZWJpYW4gMTEgb3BlcmF0aXZlIHN5c3RlbSBpbiBFWFQ0IG9yIEJUUkZTIHBhcnRp dGlvbgogLSBhcHBsaWNhdGlvbiBmb3IgbmV0d29ya2luZywgc3lzdGVtIG1haW50YWluZW5jZSBh bmQgYmFzaWMgZGV2ZWxvcGluZyB0b29scwogLSBDVURBIGxpYnJhcmllcyBydW50aW1lIGFuZCBk ZXZlbG9wbWVudCwgblZpZGlhIHR1bmluZyBhbmQgZGVidWdpbmcgdG9vbHMKIC0gR25vbWUgMyBk ZXNrdG9wIGdyYXBoaWMgZW52aXJvbWVudCB3aXRoIG5WaWRpYSBFY2xpcHNlIGRldmVsIGludGVy ZmFjZQoKVGhlIHNpemUgb2YgdGhlIGNvbXBsZXRlIGltYWdlIGlzIGFib3V0IDkuMSBHQiBhbmQg aXQgc3VwcG9zZWQgdG8gcnVuIG9uIGJhcmUKaGFyZHdhcmUgd2l0aCBhIHN1cHBvcnRlZCBuVmlk aWEgR1BVIGRlZGljYXRlaWQgZm9yIGNvbXB1dGF0aW9uYWwgdGFza3MgYW5kIGFuCmludGVncmF0 ZSBwcmltYXJ5IGdyYXBoaWMgY2FyZCBmb3IgdmlzdWFsaXNhdGlvbi4KClRoZSBtb3N0IGludGVy ZXN0aW5nIG90aGVycyAyIGltYWdlcyB0aGF0IGNhbiBiZSBjcmVhdGVkIHdpdGggdGhpcyBwcm9q ZWN0IGFyZToKCiAgICAtIGJ1aWxkLW1lOiB0aGUgYmFzaWMtb3Mgd2l0aCB0aGUgZG9ja2VyLWNl IGZvciBpc2FyIGJ1aWxkCiAgICAtIG52ZG9ja2VyOiB0aGUgYmFzaWMtb3Mgd2l0aCB0aGUgbnZp ZGlhLWRvY2tlcjIgKyBkcml2ZXIKClRoZSBidWlsZC1tZSBpcyBhbiAxLjEgR0IgaW1hZ2UgdGhh dCBpbnN0YWxsZWQgaW50byBhIDEyMEdCIFNTRC9VU0IgZGV2aWNlIGNhbgpydW4gdGhlIElTQVIg ZW52aXJvbWVudCBpbiBvcmRlciB0byBidWlsZCBldmVyeSBpbWFnZSBpbiB0aGUgZnVsbCBsaXN0 LgpUaGlzIGltYWdlcyBkbyBub3QgY29udGFpbnMgYW55IHNvZnR3YXJlIGZyb20gblZpZGlhIGJ1 dCBqdXN0IHRoZSBJU0FSIHRvb2xzLgoKVGhlIG52ZG9ja2VyIGlzIGFuIDEuMyBHQiBpbWFnZSB0 aGF0IGluc3RhbGxlZCBpbnRvIGEgMTIwR0IgU1NEL1VCQiBkZXZpY2UgY2FuCnJ1biB0aGUgQUkg YXBwbGljYXRpb25zIGludG8gY29udGFpbmVycyBhdmFpbGFibGUgaW4gdGhlIG5WaWRpYSBjYXRh bG9nLgoKClJhdGlvbmFsZQotLS0tLS0tLS0KCkFuIGVxdWl2YWxlbnQgcmVzdWx0IGNhbiBiZSBv YnRhaW5lZCBpbnN0YWxsaW5nIGEgRGViaWFuIDExLCBhZGRpbmcgdGhlIG5WaWRpYQpyZXBvc2l0 b3JpZXMgZGVkaWNhdGVkIHRvIHRoZSBkZXZlbG9wZXJzIGFuZCB0aGUgb3RoZXIgb25lIGRlZGlj YXRlZCB0byB0aGUKZG9ja2VyIHJ1bnRpbWUsIHRoZW4gaW5zdGFsbGluZyB0aGUgJ2N1ZGEtZGVt by1zdWl0ZS0xMS03JyBhbmQgJ252aWRpYS1kb2NrZXIyJwpwYWNrYWdlcy4KClRoZSBtb3N0IHNl bnNpdGl2ZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlc2UgdHdvIGFwcHJvYWNoZXMgaXMgdGhhdCB0 aGUgSVNBUgppbWFnZSBjb250YWlucyB0aGUgb3Blbi1zb3VyY2UgZHJpdmVyIHdoaWxlIHRoZSBh cHQgaW5zdGFsbGVkIHRoZSBjbG9zZWQtc291cmNlLgoKSW4gZmFjdCwgdGhpcyBwcm9qZWN0IGlz IGEgcHJvZi1vZi1jb25jZXB0IHRoYXQgc2hvd3MgaG93IHRvIGFkZCB0aGUgb3Blbi1zb3VyY2UK blZpZGlhIGRyaXZlciBpbiBhIERlYmlhbiAxMSBzeXN0ZW0gaW50ZWdyYXRpbmcgaXQgd2l0aCB0 aGUgcHJvcHJpZXRhcnkgZnVsbApzb2Z0d2FyZSBzdGFjayB3aXRob3V0IHZpb2xhdGluZyB0aGUg bGljZW5jZSBhbmQgYmVpbmcgYWJsZSB0byByZWRpc3RyaWJ1dGUKdGhlIGltYWdlLCBhdCBsZWFz dCBmb3Igc29tZSB1c2FnZXMgYWxsb3dlZCBieSB0aGUgbGljZW5jZXMgKFwqKS4KCi0gaHR0cHM6 Ly9vcGVuc291cmNlLnN0YWNrZXhjaGFuZ2UuY29tL3F1ZXN0aW9ucy8xMDA4Mi9nZWZvcmNlLW52 aWRpYS1kcml2ZXItbGljZW5zZS1mb3ItY29tbWVyaWNhbC11c2UKClRoaXMgcHJvamVjdCBhaW1z IHRvIHByb3ZpZGUgYSB3YXkgdG8gZGVsaXZlciBhIHN5c3RlbSB3aXRoIG5WaWRpYSBmdWxsIHN0 YWNrCnNvZnR3YXJlIGluc3RhbGxlZCB3aGljaCBpcyBsZWdhbGx5IGRpc3RydWJ1dGFibGUgYWxz byBmb3IgY29tbWVyY2lhbCB1c2FzLgoKLSBodHRwczovL3d3dy5udmlkaWEuY29tL2VuLXVzL2Ry aXZlcnMvdW5peAoKSW4gZmFjdCwgdXAgdG9kYXkgKDUxNS43NikgdGhlIC5ydW4gYXJjaGl2ZSB0 aGF0IGNvbnRhaW5zIHRoZSBkcml2ZXIgYW5kIHRoZQpDVURBIGxpYnJhcmllcyBpcyBsaWNlbmNl ZCBpbiBhIHdheSBmb3Igd2hpY2ggdHdvIGVzc2VudGlhbCBvcGVyYXRpb25zIGFyZSBub3QKcGVy bWl0dGVkOgoKIC0gwqcyLjEuMiBkb2VzIG5vdCBhbGxvdyB0aGUgY29tcGlsYXRpb24gZXNzZW50 aWFsIGZvciBkZWxpdmVyIGEgYmlucnkgZHJpdmVyCiAtIMKnMi4xLjMgZG9lcyBub3QgYWxsb3cg dG8gcmVwYWNrYWdlIHRoZSAucnVuIGNvbnRlbnQgaW4gbWFueSAuZGViIHBhY2thZ2VzCgpUaGlz IHByb2plY3Qgd29ya3MgYXJvdW5kIHRoZXNlIGxpbWl0YXRpb25zIHVzaW5nIHRoZSBvcGVuLXNv dXJjZSBkcml2ZXIKCiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9OVklESUEvb3Blbi1ncHUta2VybmVs LW1vZHVsZXMKCmluIG9yZGVyIHRvIG5vdCB2aW9sYXRlIHRoZSDCpzIuMS4yIGFuZCBpbnN0YWxs aW5nIHRoZSBuVmlkaWEgc29mdHdhcmUgZnJvbSB0aGVpcgpwdWJsaWMgcmVwb3NpdG9yaWVzIHdp dGhvdXQgY2hhbmdpbmcgdGhlIC5kZWIgcGFja2FnZXMgY29udGVudCBhbmQgcmVtb3ZpbmcganVz dApmZXcgZGVwZW5lbmNpZXMgLSB3aGljaCBhcmUganVzdCB0ZXh0IGZpbGVkcyBpbnRvIGEgLmRl YiBhcmNoaXRlY3R1cmUgYW5kIGhhdmUKbm90aGluZyB0byBkbyB3aXRoIHRoZSBjb250ZW50IGRl bGl2ZXJkIGFrYSBwYWNrYWdlIG1ldGFkYXRhLCBvbmx5IC0gYWxsb3dzIHRvCmF2b2lkIGluc3Rh bGxpbmcgdGhlIGNsb3NlZC1zb3VyY2UgZHJpdmVyIGFuZCB0aGUgcmVsYXRlZCBwYWNrYWdlcy4K ClRoaXMgYWxsb3dzIGFsc28gdG8gY2hvb3NlIGEgY29tcGxldGUgZGlmZmVyZW50IGtlcm5lbCB2 ZXJzaW9uIHJlc3BlY3QgdGhlCm9uZSBkZWxpdmVyZWQgd2l0aCB0aGUgRGViaWFuIDExIGFuZCBj b21waWxlIGl0IGJ5IGFuIElTQVIgcmVjaXBlIGFwcGx5aW5nCmEgY3VzdG9tIGNvbmZpZ3VyYXRp b24gYW5kIHBhdGNoZXMgbGlrZSB0aGlzIG9uZToKCiAtIGh0dHBzOi8vbG9yZS5rZXJuZWwub3Jn L2xrbWwvMjAyMjA5MjEwNjM2MzguMjQ4OS0xLWtwcmF0ZWVrLm5heWFrQGFtZC5jb20KCnRoYXQg dW5sb2NrIEFNRCBSeXplbiBDUFVzIGEgbW9yZSArNTElIG9mIGNvbXB1dGF0aW9uIHBvd2VyIGxv c3QgZHVlIHRvIG9sZCBidWcuCgooXCopICoqTGVnYWwgbm90ZXMqKgoKIC0gbm8gYW55IHdhcnJh bnR5IGlzIGdyYW50ZWQgYW5kIGZ1cnRoZXIgbGljZW5zZSBjaGFuZ2UgbWlnaHQgaGFwcGVuLiAK IC0gZGViaWFuIGxlZ2FsIG1sIGh0dHBzOi8vbGlzdHMuZGViaWFuLm9yZy9kZWJpYW4tbGVnYWwv MjAyMi8xMC9tc2cwMDAwNC5odG1sCgoKVmlydHVhbCBkaXNrICdidWlsZCBtZScgZG93bmxvYWQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoaXMgTWljcm9zb2Z0IE9uZURyaXZl IGxpbmsgd29ya3Mgd2l0aCBhIFdXVyBicm93c2VyIG9ubHk6CgogLSBodHRwczovLzFkcnYubXMv dS9zIUFySDRGTy1IMEloeWdrLUJyQmV0cTYyd2lBa3EKCmFuZCBsZXQgZXZlcnlvbmUgd2l0aG91 dCBhbnkgYXV0aGVudGljYXRpb24gdG8gZG93bmxvYWQgYSB2aXJ0dWFsIG1hY2hpbmU6CgogLSBp c2FyLWJ1aWxkbWUtdm0ub3ZhLjd6ICgyMjkgTUIpCgp3aGljaCB0aGUgaW50ZWdyaXR5IGNvdWxk IGJlIHZlcmlmaWVkIHdpdGggdGhlc2UgdHdvIGhhc2hlczoKCiAtIG1kNXN1bSBkN2Q2ODczZjdm NDY2NThiMmI2YWE4MjJmZjI5Nzc0YQogLSBzaGEyNTZzdW0gODhjMzkwMTZjMTk4ZDgzMGRhZjI5 ODg0NDA4OWYyY2E5NTMwYzc0NjRjNmM4NTk4OTcxZDU2YmY5MDA2OWI5ZgoKYW5kIGxldCBldmVy eSBNaWNyb3NvZnQgV2luZG93cyB1c2VycyB0byBidWlsZCBpdHMgb3duIGltYWdlIHVzaW5nIGEg dmlydHVhbAptYWNoaW5lIGxpa2UgT3JhY2xlIFZpcnR1YWxCb3guIFBsZWFzZSBub3RlIHRoYXQg aW4gdGhlIFZNIHNldHRpbmdzIHlvdSBzaG91bGQKYWN0aXZhdGUgdGhlIEVVRkkgYm9vdCAoU2V0 dGluZ3MsIFN5c3RlbSwgRW5hYmxlIEVGSSAoc3BlY2lhbCBPU2VzIG9ubHkpLgoKVGhlIHZpcnR1 YWwgbWFjaGluZSBpcyBhY2Nlc3NpYmxlIGFsc28gYnkgU1NIIHVzaW5nIGV2ZXJ5IGNsaWVudDoK CiAtIHNzaCAtcDIwMjIgLW8gU3RyaWN0SG9zdEtleUNoZWNraW5nPW5vIHJvb3RAbG9jYWxob3N0 IChwYXNzd29yZCByb290KQoKVGhlIGZpcnN0IGFjdGlvbiB0byBkbyBpcyB0byBjaGFuZ2UgdGhl IHBhc3N3b3JkcyBmb3IgdXNlcnM6IHJvb3QgYW5kIGRlYnJhZgoKCkRlcGVuZGVuY2llcwotLS0t LS0tLS0tLS0KCkEgR05VL0xpbnV4IGhvc3Qgd2l0aCBkb2NrZXIgb3IgcG9kbWFuIGluc3RhbGxl ZAoKCXN1ZG8gYXB0IGluc3RhbGwgZG9ja2VyLmlvIHxYT1J8IGRvY2tlci1jZSB8WE9SfCBwb2Rt YW4KClVzZXIgYWNjb3VudCB3aXRoIHBlcm1pc3Npb25zIHRvIHJ1biBkb2NrZXIKCglzdWRvIHVz ZXJtb2QgLWFHIGRvY2tlciAkVVNFUiAmJiBuZXdncnAgZG9ja2VyCgoKQnVpbGRpbmcgYW5kIG90 aGVyIGNvbW1hbmRzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKWW91IGNhbiBsb2FkIHRo ZSByZXBvc2l0cm95IHNoZWxsIHByb2ZpbGUgaW4gdGhpcyB3YXk6CgoJc291cmNlIC5wcm9maWxl Cgp0byBsb2QgdGhlIGdpdCBmdW5jdGlvbnMgYW5kIGxvY2FsIHNjcmlwdHMgYWxpYXNlcwoKCWJ1 aWxkLCBjbGVhbiwgd2ljaW5zdCwgd2ljc2hlbGwsIHdpY3FlbXUKCk90aGVyd2lzZSB5b3UgY2Fu IHVzZSB0aGlzIGJ5IGNvbW1hbmQgbGluZToKCgkuL2J1aWxkLnNoIFsgJEJCVEFSR0VUIHwgJElN QUdFIF0KClRoZSBCaXRiYWtlIHRhcmdldCBjb3VsZCBiZSBhbnkgcmVjaXBlLgoKSG93ZXZlciwg dG8gY3JlYXRlIGFuIGltYWdlIHlvdSBzaG91bGQgY2hvb3NlIG9uZSBvZiB0aGVzZToKCgkuL2J1 aWxkLnNoIC1oCgpJdCB3aWxsIHNob3cgYSBsaXN0IGxpa2UgdGhpcywgaW4gd2hpY2ggdGhlIGZp cnN0IGZpZWxkIGlzIHRoZSB0YXJnZXQ6CgogICAgLSBiYXNpYy1vczogYSBkZWJpYW4gMTEgd2l0 aCBzb21lIHN5c3RlbS9uZXR3b3JraW5nIHRvb2xzCiAgICAtIGJ1aWxkLW1lOiB0aGUgYmFzaWMt b3Mgd2l0aCB0aGUgZG9ja2VyLWNlIGZvciBpc2FyIGJ1aWxkCiAgICAtIGJhc2ljZGV2OiB0aGUg YmFzaWMtb3Mgd2l0aCB0aGUgYmFzaWMgZGV2ZWxvcG1lbnQgdG9vbHMKICAgIC0gbnZkb2NrZXI6 IHRoZSBiYXNpYy1vcyB3aXRoIHRoZSBudmlkaWEtZG9ja2VyMiArIGRyaXZlcgogICAgLSBjb21w bGV0ZTogdGhlIGJhc2ljZGV2ICsgbnZkb2NrZXIgKyBHbm9tZTMgKyBDVURBIGRldmVsCgpUaGUg Y29tcGxldGUgdWRwYXRlIGltYWdlcyBsaXN0IGxpdmVzIGluIHJlY2lwZXMtY29yZS9pbWFnZXMv UkVBRE1FLnR4dAoKQWZ0ZXIgaGF2aW5nIGNyZWF0ZWQgYW4gaW1hZ2UgeW91IGNhbiBjaHJvb3Qg aW50byBpdCBydW5uaW5nIHRoaXMgY29tbWFuZAoKCS4vd2ljc2hlbGwuc2gKClRoZW4geW91IGNh biBjbGVhbiB0aGUgSVNBUiBwcm9qZWN0IHdpdGggY29tbWFuZAoKCS4vY2xlYW4uc2ggaXNhcgoK Ckluc3RhbGxpbmcKLS0tLS0tLS0tLQoKWW91IGNhbiBmaW5kIHRoZSBpbWFnZSB3aXRoIHRoaXMg Y29tYW1uZAoKICAgIGltZ2ZpbGU9JChmaW5kIGJ1aWxkLyAtbmFtZSBldmFsLWltYWdlLVwqLndp YyAyPi9kZXYvbnVsbCkKCmFuZCBpbnN0YWxsIGl0IHdpdGggb25lIG9mIHRoZXNlIHR3bwoKICAg IHN1ZG8gZGQgaWY9JHtpbWdmaWxlfSBvZj0vZGV2LyR7VVNCRElTS30gYnM9MU0gc3RhdHVzPXBy b2dyZXNzCgpvciwgaWYgYm1hcC10b29scyBhcmUgaW5zdGFsbGVkLAoKICAgIHN1ZG8gYm1hcHRv b2wgY29weSAke2ltZ2ZpbGV9IC9kZXYvJHtVU0JESVNLfQoKb3IgdXNlIHRoaXMgc2NyaXB0Cgog ICAgc3VkbyAuL3dpY2luc3Quc2ggL2Rldi8ke1VTQkRJU0t9CgpXaXRoIHRoZSBzY3JpcHQgeW91 IGNhbiBhbHNvIHRyYXNmb3JtIHlvdXIgaW1hZ2UgaW4gYSBWTURLIGZpbGU6CgogICAgLi93aWNp bnN0LnNoIHZtZGs6aW1hZ2Uudm1kawoKdGhpcyByZXF1aXJlcyBxZW11LWltZyBpbnN0YWxsaW5n IHRoZSBxZW11LXV0aWxzIGRlYiBwYWNrYWdlCgoKTGljZW5zZQotLS0tLS0tCgpBbG1vc3QgYWxs IHRoZSBmaWxlcyBhcmUgdW5kZXIgTUlUIGxpY2Vuc2UgYW5kIHRoZSBvdGhlciBhcmUgaW4gdGhl IHB1YmxpYwpkb21haW4gZHVlIHRvIHRoZWlyIHNpbXBsaWNpdHkgYW5kL29yIHN0YW5kYXJkaXNh dGlvbiBsaWtlIHN5c3RlbSBjb25maWd1cmF0aW9uLgpIb3dldmVyIHRoZSBjb21wb3NpdGlvbiBv ZiB0aGVzZSBmaWxlcyBpcyBwcm90ZWN0ZWQgYnkgdGhlIEdQTHYzIGxpY2Vuc2UuCgpUaGlzIG1l YW5zIHRoYXQgZXZlcnlvbmUgY2FuIHVzZSBhIHNpbmdsZSBNSVQgbGljZW5zZWQgZmlsZSBvciBh IHBhcnQgb2YgaXQKdW5kZXIgdGhlIE1JVCBsaWNlbnNlIHRlcm1zLiBJbnN0ZWFkLCB1c2luZyB0 d28gb2YgdGhlbSBvciB0d28gcGFydHMgb2YgdGhlbQppbXBsaWVzIHRoYXQgeW91IGFyZSB1c2lu ZyBhIHN1YnNldCBvZiB0aGlzIGNvbGxlY3Rpb24uIFRodXMgYSBkZXJpdmVkIHdvcmsgb2YKdGhp cyBjb2xsZWN0aW9uIHdoaWNoIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBHUEx2MyBhbHNvLgoKVGhl IEdQTHYzIGxpY2Vuc2VzIGFwcGxpZXMgdG8gdGhlIGNvbXBvc2l0aW9uIHVubGVzcyB5b3UgYXJl IHRoZSBvcmlnaW5hbApjb3B5cmlnaHQgb3duZXIgb3IgdGhlIGF1dGhvciBvZiBhIHNwZWNpZmlj IHVubW9kaWZpZWQgZmlsZS4gVGhpcyBtZWFucyB0aGF0CmV2ZXJ5b25lIHRoYXQgY2FuIGxlZ2Fs bHkgY2xhaW1zIHJpZ2h0cyBhYm91dCB0aGUgb3JpZ2luYWwgZmlsZXMgbWFpbnRhaW5zIGl0cwpy aWdodHMsIG9idmlvdXNseS4gU28sIGl0IHNob3VsZCBub3QgbmVlZCB0byBjb21wbGFpbiB3aXRo IHRoZSBHUEx2MyBsaWNlbnNlCmFwcGxpZWQgdG8gdGhlIGNvbXBvc2l0aW9uLiBVbmxlc3MsIHRo ZSBjb21wb3NpdGlvbiBpcyBhZG9wdGVkIGZvciB0aGUgcGFydAp3aGljaCBoYWQgbm90IHRoZSBy aWdodHMsIGJlZm9yZS4KCkZvciBmdXJ0aGVyIGluZm9ybWF0aW9uIG9yIHJlcXVlc3RzLCBwbGVh c2Ugd3JpdGUgYXQgdGhlIHJlcG9zaXRvcnkgbWFpbnRlaW5lcjoKCiAtIFJvYmVydG8gQS4gRm9n bGlldHRhIDxyb2JlcnRvLmZvZ2xpZXR0YUBnbWFpbC5jb20+CgpIYXZlIGZ1biEgPDMK --0000000000005fbac305ea50baf7--