From: Jeremy Singher Date: Fri, 15 May 2020 22:15:30 +0000 (-0700) Subject: Re: [libre-riscv-dev] Introduction and Questions X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9e3d1da13692d0b7af2a9985da27db277be30544;p=libre-riscv-dev.git Re: [libre-riscv-dev] Introduction and Questions --- diff --git a/cc/978acba7cc1f67312572113f74c2e370899820 b/cc/978acba7cc1f67312572113f74c2e370899820 new file mode 100644 index 0000000..ba0e51e --- /dev/null +++ b/cc/978acba7cc1f67312572113f74c2e370899820 @@ -0,0 +1,272 @@ +Return-path: +Envelope-to: publicinbox@libre-riscv.org +Delivery-date: Fri, 15 May 2020 23:15:44 +0100 +Received: from localhost ([::1] helo=libre-riscv.org) + by libre-soc.org with esmtp (Exim 4.89) + (envelope-from ) + id 1jZicJ-00035D-GH; Fri, 15 May 2020 23:15:43 +0100 +Received: from mail-lf1-f51.google.com ([209.85.167.51]) + by libre-soc.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) + (Exim 4.89) (envelope-from ) + id 1jZicI-000357-P4 + for libre-riscv-dev@lists.libre-riscv.org; Fri, 15 May 2020 23:15:42 +0100 +Received: by mail-lf1-f51.google.com with SMTP id 188so3078730lfa.10 + for ; + Fri, 15 May 2020 15:15:42 -0700 (PDT) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; + h=mime-version:references:in-reply-to:from:date:message-id:subject:to; + bh=9YDMe6z6gKOE7DBnjV33tyoR0+J6cYN5EGl5npQBi4Q=; + b=p7GCEFTS76u0PriK3mn6h5o0/jIUaZSQyqWvHLrak+YsiONci3Br+zfYTzHn6HaV62 + iSlUlJA/1527mtEVJy/yBjBt+lNKgFS9SH/yKbIVCxnLhy7mML/OEwXATVZmTRxcRbH4 + cLh46uRpvh5HzFDU72I1h2VIhPlbq+3eao3+VCL7RfIKNJZ67yo8pF++uxwvulEFzAfr + +oiBqTAOhgjmmK4n6clSntmFUG0Ed/25ptVHt5I3ZizKgamWLDfT1vMTFEaWOewTqZjv + eTWL3BgHMzL5icgJ8aJepkm5vLQjC3o0XxXpebeSHc6SAcbflKWOqps/G/8f+JpNlNoT + eZaw== +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=1e100.net; s=20161025; + h=x-gm-message-state:mime-version:references:in-reply-to:from:date + :message-id:subject:to; + bh=9YDMe6z6gKOE7DBnjV33tyoR0+J6cYN5EGl5npQBi4Q=; + b=XBNMLi6G3xoU3Tu3WU+z42RrLRsUPz3IBup5A0f/4l/4QwNOzhWHs1BZ08O52U4p8y + 28sY5+CwO+WgwwkQBWtz0TSNh+7gl4eXTSlhgm9oMrWaYWlydZqUcHnp+xmwk7hSonfo + PCbNy/jQ5sz5cUj9V4AToR9SssCd9/WY2eV573aQRQJajICpgv3Qu5I0rztyQWN+XE63 + Fbtx/ojRZA+72+jdgXdjvYXsWLUVgaNTi8FncPlXUCtPcqDYwjT3dSisi5HpEuL0ZI9q + AgtaMkr9tbayaaP9zQkHf16m1Sy4mcR3WJ/px3nbX3ypybY19+ZT+6ZnXzhiiqpREtXm + IIsw== +X-Gm-Message-State: AOAM532K9rCZyLOegj1pezl5KUb0yXjHx7tBjJ5/oUx5RL9gtAcnQilC + lLuSmrOE/hlpCud9PzpXR0Vk7IMn0DueFnn+B+CcnJdV +X-Google-Smtp-Source: ABdhPJx3e6qk071RF2Q2Ztc1rxr2P8nKm+acItUF2k/GjWbG2usVImv7rvQp9Ki3NYJN+/KNJwGySZ6GX34I9HEbEPU= +X-Received: by 2002:a19:84b:: with SMTP id 72mr3784534lfi.133.1589580941650; + Fri, 15 May 2020 15:15:41 -0700 (PDT) +MIME-Version: 1.0 +References: + <747F8870-06C6-46A0-AFD9-D55289D4C41A@gatech.edu> + + <4BDA96A5-9063-42A6-9548-CAE3CBEBEBAC@gatech.edu> + + + +In-Reply-To: +From: Jeremy Singher +Date: Fri, 15 May 2020 15:15:30 -0700 +Message-ID: +To: Libre-RISCV General Development +Subject: Re: [libre-riscv-dev] Introduction and Questions +X-BeenThere: libre-riscv-dev@lists.libre-riscv.org +X-Mailman-Version: 2.1.23 +Precedence: list +List-Id: Libre-RISCV General Development + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +Reply-To: Libre-RISCV General Development + +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: base64 +Errors-To: libre-riscv-dev-bounces@lists.libre-riscv.org +Sender: "libre-riscv-dev" + +PiBpdCdzIGJhc2ljYWxseSBhIENyYXkgVmVjdG9yIExvb3AKPiAoVkwpIGV4Y2VwdCB0aGF0IFZM +LCB3aGVuIHNldCwgYWN0dWFsbHkgKlBBVVNFUyogdGhlIFByb2dyYW0gQ291bnRlciwKPiBhbmQg +aXNzdWVzIE1VTFRJUExFIGluc3RydWN0aW9ucyAtIHVzaW5nIHRoZSBvbmUgYXQgdGhlIFBDIGFz +IGEKPiAidGVtcGxhdGUiIC0gYnV0IGluY3JlbWVudGluZyB0aGUgb3BlcmFuZCByZWdpc3RlciBu +dW1iZXJzCj4gc2VxdWVudGlhbGx5IG9uIGVhY2ggaXRlcmF0aW9uIG9mIHRoZSBsb29wIGZyb20g +MCB0byBWTC0xLgoKU28gaWYgeW91IGRlY29kZSBhIHZhZGQgaW5zdHJ1Y3Rpb24sIHdpdGggVkw9 +NCwgYW5kIGEgMS13aWRlIHBpcGVsaW5lLAp0aGUgZGVzaWduIHdvdWxkIHN0YWxsIGluc3RydWN0 +aW9uIGZldGNoLCBhbmQgaXNzdWUgNCAic2NhbGFyIiBhZGQKbWljcm8tb3BzIHdpdGggaW5jcmVt +ZW50aW5nIHJlZ2lzdGVyIGluZGljZXM/IFRoYXQgc2VlbXMgbGlrZSBpdApzaG91bGQgd29yaywg +YWx0aG91Z2ggeW91IHdvdWxkIGxvc2UgdGhlIGFiaWxpdHkgdG8gZXhwbG9pdCB2ZWN0b3IKY2hh +aW5pbmcsIHNpbmNlIHBhdXNpbmcgdGhlIFBDIHdvdWxkIHByZXZlbnQgYWRkaXRpb25hbCBpbnN0 +cnVjdGlvbnMKYWZ0ZXIgdGhlIHZlY3RvciBpbnN0cnVjdGlvbiBmcm9tIGdldHRpbmcgaXNzdWVk +LiBJIGxvb2tlZCBhIFNpbXBsZVYgYQp3aGlsZSBhZ28sIGFuZCB0byBtZSBpdCBzZWVtZWQgbGlr +ZSB0aGUgZGlmZmVyZW5jZSB2cyBhIG5vcm1hbCB2ZWN0b3IKYXJjaGl0ZWN0dXJlIHdhcyB0aGF0 +IFNpbXBsZVYgbWVyZ2VkIHRoZSB2ZWN0b3IgYW5kIGludGVnZXIgcmVnaXN0ZXIKZmlsZXMuCgo+ +IHVuZm9ydHVuYXRlbHksIHdoZW4gdGhlIEktQ2FjaGUgaXMgc2hhcmVkLCB3ZSBkbyBnaXZlIGEg +ZGFtbi4KPiB0aGVyZWZvcmUgd2UgbmVlZCB0byByZWR1Y2UgdGhlIGluc3RydWN0aW9uIHNpemUg +YW5kIGNhbWUgdXAgd2l0aAo+IFNpbXBsZVYgKGxvb2sgaXQgdXApLgoKWWVwLCB0aGlzIHNlZW1z +IGxpa2UgYSByZWFzb25hYmxlIGNvbmNsdXNpb24gdG8gZHJhdy4KCgo+IHRoaXMgaGFzICJpbXBs +aWNpdCIKPiByZWdpc3Rlci1yZW5hbWluZyBhdXRvbWF0aWNhbGx5IGJ1aWx0LWluIHRvIHRoZSBk +ZXNpZ24uICB0aGVzZSBhcmUgdGhlCj4gRnVuY3Rpb24gVW5pdCBvcGVyYW5kIGxhdGNoZXMuICB0 +aGV5IGFyZSBiZXN0IHRlcm1lZCAibmFtZWxlc3MKPiByZWdpc3RlcnMiIHJhdGhlciB0aGFuICJy +ZWdpc3Rlci1yZW5hbWluZyIuCgpJIHRoaW5rIEkgdW5kZXJzdGFuZCB3aGF0IHlvdSBhcmUgc2F5 +aW5nLCBteSB0ZXJtaW5vbG9neSBmb3IgdGhpcyBpcwp0aGF0IHRoZSBjb3JlIGlzICJyZW5hbWlu +ZyIgcmVnaXN0ZXJzIGludG8gd2hhdCB5b3UgY2FsbCBpbmZsaWdodAoibmFtZWxlc3MgcmVnaXN0 +ZXJzIi4gQXQgdGhlIGVuZCBvZiB0aGUgZGF5LCB0aGUgcG9pbnQgaXMgdGhhdApyZWdpc3RlciBk +YXRhIGlzIHN0b3JlZCBub3QganVzdCBpbiBhIGxvZ2ljYWwgcmVnaXN0ZXIgZmlsZSwgYW5kIHRo +YXQKdGhlIHNjaGVkdWxlciBjYW4gYWdncmVzc2l2ZWx5IGV4ZWN1dGUgaW5zdHJ1Y3Rpb25zIE9P +TyB3aGVuIHRoZWlyCm9wZXJhbmRzIGFyZSBhdmFpbGFibGUsIGluc3RlYWQgb2YgaW4gc2VyaWFs +aXppbmcgZXhlY3V0aW9uIGluIHByb2dyYW0Kb3JkZXIuCkhvdyBkb2VzIHRoZSBzY29yZWJvYXJk +IGhhbmRsZSBhIFdBVyBoYXphcmQuLi4gdHdvIGluc3RydWN0aW9ucwp3cml0aW5nIHRoZSBzYW1l +IHJlZ2lzdGVyPyBEb2VzIHRoZSBzZWNvbmQgaW5zdHJ1Y3Rpb24gd2FpdCBmb3IgdGhlCmZpcnN0 +IHRvIGZpbmlzaD8KCj4gTWl0Y2ggQWxzdXAgaGFkIHRvIHdyaXRlIHR3bwo+IGFkZGl0aW9uYWwg +Y2hhcHRlcnMsIGFzIGFuIGFkZGVuZHVtIHRvIEphbWVzIFRob3JudG9uJ3MgYm9vaywgIkRlc2ln +bgo+IG9mIGEgQ29tcHV0ZXIiLCBpbiBvcmRlciB0byBjb3JyZWN0IFBhdHRlcnNvbidzIG1pc2lu +Zm9ybWF0aW9uLgoKRG8geW91IGhhdmUgYSBsaW5rIHRvIHRoZSBhZGRlbmR1bT8gSSBoYXZlIGEg +cGRmIG9mIHRoZSBib29rLCBidXQgaXQKZG9lc24ndCBzZWVtIHRvIGhhdmUgdGhlIGFkZGVuZHVt +LgoKCgpPbiBGcmksIE1heSAxNSwgMjAyMCBhdCAyOjU0IFBNIEx1a2UgS2VubmV0aCBDYXNzb24g +TGVpZ2h0b24KPGxrY2xAbGtjbC5uZXQ+IHdyb3RlOgo+Cj4gT24gRnJpLCBNYXkgMTUsIDIwMjAg +YXQgOTo1MCBQTSBKZXJlbXkgU2luZ2hlciA8dGhlanNpbmdoZXJAZ21haWwuY29tPiB3cm90ZToK +PiA+Cj4gPiA+IGEgdGVlbnkgdGlueSBiaXQgb3ZlciB3aGF0IHdlIGluaXRpYWxseSBwbGFubmVk +LCB0aGVuIDopCj4gPgo+ID4gVGhhbmtzIEx1a2UsIHRoZXNlIG51bWJlcnMgYXJlIGNsb3NlciB0 +byB3aGF0IHNlZW1zIHJlYXNvbmFibGUgdG8gbWUuCj4gPiBBIHNpbXBsZSBzdXBlcnNjYWxhciBj +b3JlIHdpdGggMiBGUFUgZnVuY3Rpb25hbCB1bml0cyBzaG91bGQgYmUgYWJsZQo+ID4gdG8gYWNo +aWV2ZSA0IEdGTE9QUywgc28gYSB2ZWN0b3IgdW5pdCB3b3VsZCBuZWVkIHRvIGdvIGhpZ2hlciB0 +aGFuCj4gPiB0aGF0IHRvIGJlIHdvcnRoIHRoZSBleHRyYSBzaWxpY29uLgo+Cj4gdGhlIGhhcmR3 +YXJlIHJlcXVpcmVtZW50cyBhcmUgZGVyaXZlZCBmcm9tIHRoZSBzb2Z0d2FyZSBvbmVzLiAgd2UK +PiBkZWNpZGVkIHRob3VnaCB0byBkbyBhIGh5YnJpZCBkZXNpZ24gcmF0aGVyIHRoYW4gYSBzZXBh +cmF0ZSBDUFUKPiBzZXBhcmF0ZSBHUFUgYXBwcm9hY2guLi4gYmVjYXVzZS4uLiB3ZWxsLi4uIHVt +Li4uIHRoYXQncy4uLi4gdHdvLi4uCj4gcHJvY2Vzc29ycyA6KQo+Cj4gaHlicmlkIGRlc2lnbnMg +YXJlIGV4dHJlbWVseSB1bnVzdWFsLiAgdGhlcmUncyBvbmx5IDIgdGhhdCBpIGhhdmUKPiBoZWFy +ZCBvZjogdGhlIElDdWJlQ29ycCBJQzMxMjgsIGFuZCB0aGUgQnJvYWRjb20gVmlkZW9Db3JlIElW +IChiYXNlZAo+IGFyb3VuZCBhbiBBUkMgY29yZSwgQVJDIC0gbm93IGJvdWdodCBieSBTeW5vcHNp +cyAtIGlzIGtub3duIGZvcgo+IHByb3ZpZGluZyBhIHdlYWx0aCBvZiBTSU1EIGFuZCBvdGhlciAi +YWRkaXRpb25hbCIgaW5zdHJ1Y3Rpb25zLAo+IHNpbWlsYXIgdG8gaG93IFJJU0MtViBpcyBub3cg +c2V0IHVwLCBleGNlcHQgY29tcGxldGVseSBzZWNyZXRpdmUgYW5kCj4gdW5kZXIgdGhlIGZ1bGwg +YW5kIHRvdGFsIHByb3ByaWV0YXJ5IGNvbnRyb2wgb2YgU3lub3BzaXMpLgo+Cj4gaSd2ZSBsb29r +ZWQgYXQgVmVjdG9yIElTQXMsIGFuZCBTSU1EIElTQXM6IGkgY29uY2x1ZGVkIHRoYXQgdGhlcmUn +cyBhCj4gYmV0dGVyIHdheSB0byBkbyBhIFZlY3RvciBJU0EsIGtlZXBpbmcgdGhlICpzZW1hbnRp +Y3MqIG91dGxpbmVkIGluIHRoZQo+IGFydGljbGUgIlNJTUQgQ29uc2lkZXJlZCBIYXJtZnVsIi4K +Pgo+ID4gPiBieSBvdmVybG9hZGluZyAibXVsdGktaXNzdWUiLiAgYSBoYXJkd2FyZSBmb3ItbG9v +cCBhdCB0aGUgaW5zdHJ1Y3Rpb24KPiA+ID4gZXhlY3V0aW9uIHBoYXNlIHdpbGwgcHVzaCBtdWx0 +aXBsZSBzZXF1ZW50aWFsIGluc3RydWN0aW9ucyBpbnRvIHRoZQo+ID4gPiBPb08gZW5naW5lIGZy +b20gYSAqc2luZ2xlKiBpbnN0cnVjdGlvbi4KPiA+Cj4gPiBJIHNlZSwgc28gYSBmb3JtIG9mIG1p +Y3JvLW9wIGZpc3Npb24sCj4KPiB5ZXMsIGluIGVmZmVjdC4gIHRoaXMgcmVkdWNlcyBJLUNhY2hl +IHByZXNzdXJlLCB3aGljaCBpbiBhICpoeWJyaWQqCj4gcHJvY2Vzc29yIGlzIGNyaXRpY2FsbHkg +aW1wb3J0YW50LiAgaW4gYSBzZXBhcmF0ZS1DUFUsc2VwYXJhdGUtR1BVCj4gZGVzaWduIHlvdSBo +YXZlIHR3byBJLUNhY2hlcywgcnVubmluZyB0d28gc2VwYXJhdGUgZXhlY3V0YWJsZXMsIHlvdQo+ +IGRvbid0IF9naXZlXyBhIGRhbW4uCj4KPiBpbiBhIGh5YnJpZCBwcm9jZXNzb3IsIHdoZXJlIEdQ +VSBvcGNvZGVzIGFyZSBvZnRlbiA2NC1iaXQgYW5kIGFyZSBtb3JlCj4gdXN1YWxseSAxMjgtYml0 +IChGT1VSIGJhbmtzIG9mIDMyLWJpdCBWTElXIGluc3RydWN0aW9ucyksIGJlY2F1c2Ugb25lCj4g +NjQtYml0IGluc3RydWN0aW9uIG1heSBiZSBkb2luZyAxNnggRlAgdmVjdG9yIG9wZXJhdGlvbnMg +d2hvIF9naXZlc18gYQo+IGRhbW4uCj4KPiB1bmZvcnR1bmF0ZWx5LCB3aGVuIHRoZSBJLUNhY2hl +IGlzIHNoYXJlZCwgd2UgZG8gZ2l2ZSBhIGRhbW4uCj4gdGhlcmVmb3JlIHdlIG5lZWQgdG8gcmVk +dWNlIHRoZSBpbnN0cnVjdGlvbiBzaXplIGFuZCBjYW1lIHVwIHdpdGgKPiBTaW1wbGVWIChsb29r +IGl0IHVwKS4KPgo+ID4gZXNzZW50aWFsbHkgeW91IGFyZSBkZWNvZGluZwo+ID4gY29tcGxleCB2 +ZWN0b3IgKG9yICJHUFUiKSBpbnN0cnVjdGlvbnMgaW50byBhIHNlcXVlbnRpYWwgc3RyZWFtIG9m +Cj4gPiBzaW1wbGUgbWljcm8tb3BzPyBUaGlzIHNlZW1zIGxpa2UgYSBwcmV0dHkgcmVhc29uYWJs +ZSBkZXNpZ24gcG9pbnQuCj4KPiBtbW0gbm90IHF1aXRlLiAgbG9vayB1cCBTaW1wbGVWLiAgaXQn +cyBiYXNpY2FsbHkgYSBDcmF5IFZlY3RvciBMb29wCj4gKFZMKSBleGNlcHQgdGhhdCBWTCwgd2hl +biBzZXQsIGFjdHVhbGx5ICpQQVVTRVMqIHRoZSBQcm9ncmFtIENvdW50ZXIsCj4gYW5kIGlzc3Vl +cyBNVUxUSVBMRSBpbnN0cnVjdGlvbnMgLSB1c2luZyB0aGUgb25lIGF0IHRoZSBQQyBhcyBhCj4g +InRlbXBsYXRlIiAtIGJ1dCBpbmNyZW1lbnRpbmcgdGhlIG9wZXJhbmQgcmVnaXN0ZXIgbnVtYmVy +cwo+IHNlcXVlbnRpYWxseSBvbiBlYWNoIGl0ZXJhdGlvbiBvZiB0aGUgbG9vcCBmcm9tIDAgdG8g +VkwtMS4KPgo+ID4gPiB0aGUgRElWIHBpcGVsaW5lIHdpbGwgYmUuLi4gOCAobWF5YmUgbW9yZSks +IE1VTCB3aWxsIGJlIDIsIEFERCAoZXRjLikgd2lsbCBiZSAxLgo+ID4gPiAqIGZldGNoOiAxLgo+ +ID4gPiAqIGRlY29kZTogMS4KPiA+ID4gKiBpc3N1ZSBhbmQgcmVnLXJlYWQ6IDEgKG1pbmltdW0p +Lgo+ID4gPiAqIGV4ZWN1dGU6IGJldHdlZW4gMSBhbmQgOCAobWF5YmUgbW9yZSkKPiA+ID4gKiB3 +cml0ZTogMSAobWluaW11bSkKPiA+Cj4gPiBTbyB0aGlzIGlzIGp1c3QgZm9yIHRoZSBwcmVsaW1p +bmFyeSB0YXBlb3V0Pwo+Cj4geWVzLCBpbiAxODBubS4gIHdoaWNoIGNhbiBvbmx5IGFjaGlldmUg +YSBtYXggb2YgYXJvdW5kIDMwMG1oei4gIGlmIHdlCj4gaGFkIGEgUExMLiAgd2hpY2ggd2UgZG8g +bm90LiAgYmVjYXVzZSB3ZSBhcmUgbm90IHNpZ25pbmcgRm91bmRyeSBOREFzLgo+IGFuZCB0aGUg +Rm91bmRyeSB3aWxsIG9ubHkgZ2l2ZSB1cyB0aGUgUExMIGJsb2NrIHRoZXkgbm9ybWFsbHkgaGFu +ZAo+IG91dC4uLi4gdW5kZXIgTkRBLgo+Cj4gPiBJIHdvdWxkIGV4cGVjdCBhbiBPT08KPiA+IGNv +cmUgdGFyZ2V0aW5nIDFHSHorIHRvIGhhdmUgbW9yZSBwaXBlbGluZSBzdGFnZXMgdGhhbiB0aGlz +ICgxMCspLiBUaGUKPiA+IEE3MiwgU2t5bGFrZSwgWmVuLCBhbmQgQk9PTSBhbGwgc2VlbSB0byB0 +YXJnZXQgMTArIHN0YWdlcy4KPgo+IHllcC4gIGFuZCB0aGVzZSBhcmUgYWxsIChleGNlcHQgQk9P +TSkgVVNEICQxMDAgbWlsbGlvbiBjdXN0b20gc2lsaWNvbiBkZXNpZ25zLgo+Cj4gPiA+IGJhc2lj +YWxseSB0aGlzIGlzIHdoeSB3ZSdyZSBkb2luZyBPb08gYmVjYXVzZSBjb29yZGluYXRpbmcgYWxs +IHRoYXQgaW4KPiA+ID4gYW4gaW4tb3JkZXIgc3lzdGVtIHdvdWxkIGJlIGFic29sdXRlIGhlbGwu +Cj4gPgo+ID4gSSdtIGEgYml0IGNvbmZ1c2VkIG5vdy4gSW4tb3JkZXIgZXhlY3V0aW9uIHdpdGgg +dmFyaWFibGUtbGF0ZW5jeQo+ID4gZnVuY3Rpb25hbCB1bml0cyBjYW4gYmUgYWNoaWV2ZWQgd2l0 +aCBhIHNjb3JlYm9hcmQsCj4KPiB3aGljaCB3ZSBoYXZlLiAgdXNpbmcgYW4gYXVnbWVudGVkIHZh +cmlhbnQgb2YgdGhlIDY2MDAsIHRoYW5rcyB0byBNaXRjaCBBbHN1cC4KPiBodHRwczovL2xpYnJl +LXNvYy5vcmcvM2RfZ3B1L2FyY2hpdGVjdHVyZS82NjAwc2NvcmVib2FyZC8KPgo+ID4gYW5kIHRo +ZSBwaXBlbGluZQo+ID4gc3RhZ2VzIHlvdSBkZXNjcmliZSByZW1pbmRzIG1lIG9mIGEgaW4tb3Jk +ZXIgY29yZSB3aXRoIE9PTyB3cml0ZS1iYWNrLgo+Cj4gcGlwZWxpbmVzIGNhbiBzdGlsbCBiZSB1 +c2VkIGJlaGluZCBGdW5jdGlvbiBVbml0ICJmcm9udC1lbmRzIi4gIE1pdGNoIEFsc3VwCj4gZGVz +Y3JpYmVzIHRoZW0gYXMgIkNvbmN1cnJlbnQgQ29tcHV0YXRpb24gVW5pdHMiLiAgYmFzaWNhbGx5 +IGlmIHRoZSBwaXBlbGluZQo+IGlzIE4gZGVlcCwgeW91IHB1dCBOLW9yLWdyZWF0ZXIgRnVuY3Rp +b24gVW5pdCAiUmVzZXJ2YXRpb24tU3RhdGlvbiIgc3R5bGUKPiBvcGVyYW5kIGxhdGNoZXMgb24g +dGhlIGZyb250LCB0aGF0IGdpdmVzIHlvdSB0aGUgYWJpbGl0eSB0byB0cmFjayB0aGUgcGlwZWxp +bmUKPiByZXN1bHRzLCBtYXRjaCB0aGVtICpiYWNrKiB1cCB3aXRoIHRoZSBGVSBpbmRleCwgYW5k +IHZvaWxhLCB5b3UgaGF2ZQo+IHR1cm5lZCB3aGF0IGlzIG90aGVyd2lzZSBjb25zaWRlcmVkIHRo +ZSBleGNsdXNpdmUgZG9tYWluIG9mICJpbi1vcmRlciBwaXBlbGluZSIKPiB0ZXJtaW5vbG9neSBp +bnRvIHNvbWV0aGluZyB0aGF0IGZpdHMgaW50byBPb08uCj4KPiA+IElzIHRoaXMgd2hhdCB5b3Ug +YXJlIGRvaW5nPwo+Cj4gbm8uCj4KPiA+IE9yIGFyZSB5b3UgcHVyc3VpbmcgdHJ1ZSBPT08gZXhl +Y3V0aW9uCj4KPiB5ZXMuCj4KPiA+IHdpdGggcmVnaXN0ZXItcmVuYW1pbmc/Cj4KPiBubyAvIG1p +c2xlYWRpbmcgcXVlc3Rpb24uCj4KPiB3ZSBhcmUgdXNpbmcgdGhlIDY2MDAgZGVzaWduLCBmcm9t +IDE5NjUuICB0aGlzIGhhcyAiaW1wbGljaXQiCj4gcmVnaXN0ZXItcmVuYW1pbmcgYXV0b21hdGlj +YWxseSBidWlsdC1pbiB0byB0aGUgZGVzaWduLiAgdGhlc2UgYXJlIHRoZQo+IEZ1bmN0aW9uIFVu +aXQgb3BlcmFuZCBsYXRjaGVzLiAgdGhleSBhcmUgYmVzdCB0ZXJtZWQgIm5hbWVsZXNzCj4gcmVn +aXN0ZXJzIiByYXRoZXIgdGhhbiAicmVnaXN0ZXItcmVuYW1pbmciLgo+Cj4gaWYgeW91IGFyZSBm +YW1pbGlhciB3aXRoIHRoZSBUb21hc3VsbyBBbGdvcml0aG06IGlmIHlvdSBtYWtlIHRoZQo+IG51 +bWJlciBvZiBSZXNlcnZhdGlvbiBTdGF0aW9uIFJvd3MgZXF1YWwgdG8gMSwgdGhlbiB0aGUgUlMg +bGF0Y2hlcyBhcmUKPiBkaXJlY3RseSBlcXVhbCBhbmQgZXF1aXZhbGVudCB0byBGdW5jdGlvbiBV +bml0IG9wZXJhbmQgbGF0Y2hlcywgYW5kCj4gYm90aCBhcmUgaW4gZWZmZWN0ICJyZWdpc3RlciBy +ZW5hbWluZyIuLi4gb25seSB0aGUgYmV0dGVyIHRlcm1pbm9sb2d5Cj4gaXMgIm5hbWVsZXNzIHJl +Z2lzdGVycyIgb3IgImluLWZsaWdodCByZWdpc3RlcnMgLyByZXN1bHRzIi4KPgo+IGlmIHlvdSBo +YXZlIHJlYWQgaGlzIGJvb2sgYW5kIGNvbnNpZGVyIGl0IHRvIGJlIHRoZSBsYXN0IHdvcmQgb24K +PiBzY29yZWJvYXJkcywgUGF0dGVyc29uIGhhcyBjb21wbGV0ZWx5IGFuZCB1dHRlcmx5IG1pc2lu +Zm9ybWVkIHRoZQo+IGdlbmVyYWwgcHVibGljIGFuZCB0aGUgYWNhZGVtaWMgY29tbXVuaXR5IHdp +dGggaGlzIGJvb2ssIHJlZ2FyZGluZyB0aGUKPiA2NjAwIGFuZCBzY29yZWJvYXJkcyBpbiBnZW5l +cmFsLiAgTWl0Y2ggQWxzdXAgaGFkIHRvIHdyaXRlIHR3bwo+IGFkZGl0aW9uYWwgY2hhcHRlcnMs +IGFzIGFuIGFkZGVuZHVtIHRvIEphbWVzIFRob3JudG9uJ3MgYm9vaywgIkRlc2lnbgo+IG9mIGEg +Q29tcHV0ZXIiLCBpbiBvcmRlciB0byBjb3JyZWN0IFBhdHRlcnNvbidzIG1pc2luZm9ybWF0aW9u +Lgo+Cj4gPiA+IGl0J3MgZG93biB1bHRpbWF0ZWx5IHRvIGhvdyB3aWRlIHRoZSByZWdpc3RlciBw +YXRocyBhcmUsIGJldHdlZW4gdGhlCj4gPiA+IFJlZ2ZpbGUgYW5kIHRoZSBGdW5jdGlvbiBVbml0 +cy4gIGlmIHdlIGhhdmUgbXVsdGlwbGUgUmVnaXN0ZXIgRGF0YQo+ID4gPiBCdXNlcywgYW5kIGNh +biBpbXBsZW1lbnQgdGhlIG11bHRpLWlzc3VlIHBhcnQgaW4gdGltZSwgaXQnbGwgYmUgY29kZWQK +PiA+ID4gaW4gYSBnZW5lcmFsLXB1cnBvc2UgZW5vdWdoIHdheSB0aGF0IHdlIGNvdWxkIGNvbnNp +ZGVyIDQtaXNzdWUuCj4gPiA+IGhvd2V2ZXIuLi4gd2l0aG91dCB0aGUgcmVnaXN0ZXIgZGF0YSBw +YXRocywgdGhlcmUncyBubyBwb2ludC4KPgo+ID4KPiA+IEZhaXIgZW5vdWdoLiBCYWxhbmNpbmcg +dGhlIHRocm91Z2hwdXQgb2YgYWxsIHRoZSBjb21wb25lbnRzIGluIGEgT09PCj4gPiBjb3JlIGlz +IHRyaWNreSwgYW5kIHJlZ2lzdGVyIHJlYWQgY2FuIGNlcnRhaW5seSBiZSBhIGJvdHRsZW5lY2su +Cj4KPiB5ZXMuICBzZWUgaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9kL21zZy9jb21wLmFyY2gv +cWVNc0U3VXh2bEkvQW13c29tRG9BUUFKCj4gaSBjYW4ndCBmaW5kIHRoZSBkaWFncmFtIGkgZHJl +dyBhdCB0aGUgbW9tZW50Li4uIHJlZ2ZpbGUgaSB0aGluay4uLgo+IGFoIHllcyBoZXJlIHlvdSBn +bzoKPiBodHRwczovL2xpYnJlLXNvYy5vcmcvM2RfZ3B1L2FyY2hpdGVjdHVyZS9yZWdmaWxlLwo+ +Cj4gdGhhdCdzIGEgZ2xvYmFsIGN5Y2xpYyBidWZmZXIgYXQgdGhlIHJlZ2ZpbGUgKGFjdHMgYXMg +YW4gT3BlcmFuZAo+IEZvcndhcmRpbmcgQnVzKSBhbmQKPiAqbG9jYWwqIGN5Y2xpYyBidWZmZXJz +IGF0IHRoZSBGdW5jdGlvbiBVbml0cy4KPgo+ID4gPiBXZSBoYWQgc29tZSB1bmZvcnR1bmF0ZSBy +dW4taW5zIHdpdGggQmVya2VsZXkgYW5kIFJJU0NWIC0gYW5kIHdlIGRlY2lkZWQgdG8gZ28gd2l0 +aCBQT1dFUiBiZWNhdXNlIHdlIGhhdmUgYWNjZXNzIHRvIHNvbWUgaW1wb3J0YW50IHJlbGF0aW9u +cyBhdCBJQk0KPiA+Cj4gPiBIYXZlIHlvdSBsb29rZWQgYXQgdGhlIG9wZW4gUklTQy1WIG1pY3Jv +LWFyY2hpdGVjdHVyZXMgdGhvdWdoPwo+Cj4geWVzLiAgdGhleSBhcmUgbm93aGVyZSBuZWFyIHRo +ZSBsZXZlbCBvZiBjb21wcmVoZW5zaXZlbmVzcyBuZWVkZWQuCj4gcGx1cywgaXQgd291bGQgYmUg +aW5jcmVkaWJseSBpcnJlc3BvbnNpYmxlIG9mIHVzIHRvIGJyaW5nIHRvIG1hcmtldCBhCj4gMTAw +IG1pbGxpb24gYW5kIGFib3ZlICpsaWJyZSogZGVzaWduIHdoZXJlIHRoZSBtb2RpZmljYXRpb25z +IHRvIHRoZQo+IGNvbXBpbGVyLCB0b29sY2hhaW4sIGV2ZXJ5dGhpbmcsIGFsbCBuZWVkZWQgdG8g +YmUgdXBzdHJlYW0uCj4KPgo+ID4gRXZlbiBpZgo+ID4gdGhpcyBjb3JlIHJ1bnMgUE9XRVIsIGl0 +IHNob3VsZCBiZSBub3QgdG9vIGRpZmZpY3VsdCB0byBwb3J0IGRlc2lnbgo+ID4gaWRlYXMgZnJv +bSBleGlzdGluZyBjb3JlcywgdG8gYXZvaWQgcmVpbnZlbnRpbmcgdGhlIHdoZWVsIGV2ZXJ5d2hl +cmUuCj4KPiBiZWNhdXNlIG9mIHRoZSB3YXkgdGhhdCBTaW1wbGVWIHdvcmtzLCBhbmQgYmVjYXVz +ZSB3ZSBuZWVkIHRvCj4gZHJhc3RpY2FsbHkgZXh0ZW5kIHRoZSB0YXJnZXQgSVNBIChQT1dFUjkp +IHdpdGggb3Bjb2RlcyB0aGF0IGFyZQo+IGV2ZXJ5ZGF5IGNvbW1vbi11c2FnZSBpbiBHUFVzIChU +ZXh0dXJlIE9wcywgU0lOLCBDT1MsIFJHQjJZVVYpLCB3aGlsc3QKPiBvbiB0aGUgZmFjZSBvZiBp +dCB0aGUgaWRlYSBzb3VuZHMgInBlcmZlY3RseSByZWFzb25hYmxlIiwgdGhlIGNoYW5nZXMKPiBy +ZXF1aXJlZCBhcmUgc28gZnVuZGFtZW50YWwgdGhhdCBzdGFydGluZyBmcm9tIHNvbWVvbmUgZWxz +ZSdzIGRlc2lnbgo+IHdvdWxkIHByb2R1Y2UgbWFzc2l2ZSBiYXJyaWVycy4KPgo+IGV4YW1wbGU6 +IHdlIGhhdmUgY3JlYXRlZCBQYXJ0aXRpb25lZFNpZ25hbCAtIGEgY2xhc3MgdGhhdCBub3QganVz +dAo+ICJwZXJmb3JtcyBhZGQgb3BlcmF0aW9ucyIsIGl0IHRha2VzIGFuICphZGRpdGlvbmFsKiAo +ZHluYW1pYykKPiBzaWRlLWFyZ3VtZW50IC0gYSBtYXNrIC0gd2hpY2ggKmR5bmFtaWNhbGx5KiBw +YXJ0aXRpb25zIHdoYXQgd291bGQKPiBvdGhlcndpc2UgYmUgYSA2NC1iaXQgb3BlcmF0aW9uIGlu +dG8gKmFueSogY29tYmluYXRpb24gb2YgOCwgMTYsIDI0LAo+IDMyLCA0MCwgNDggYW5kIDU2IGJp +dCBvcGVyYXRpb25zLgo+Cj4gdGhpcyBjbGFzcywgYmVjYXVzZSB3ZSBhcmUgdXNpbmcgcHl0aG9u +LCBjYW4gYmUgaGFuZGVkIGluIGFzIGEga2xzIGluCj4gYW4gT2JqZWN0LU9yaWVudGF0ZWQgZmFz +aGlvbiwgdG8gKnJlcGxhY2UqIG5taWdlbiBTaWduYWwsIGFuZCB0aHVzIHdlCj4gbWF5IGNvbnN0 +cnVjdCBjb2RlIHRoYXQgb24gdGhlIGZpcnN0IHVzYWdlIGlzIGEgc2ltcGxlIHBpcGVsaW5lLAo+ +IGhvd2V2ZXIgd2UgbWF5IHRoZW4gY29udmVydCB0aGF0IEVYQUNUIFNBTUUgQ09ERSBpbnRvIGEg +ZHluYW1pYyBTSU1ECj4gdmFyaWFudCBwdXJlbHkgd2l0aCBhIG9uZS1saW5lIGNoYW5nZS4KPgo+ +IHRoZXNlIGtpbmRzIG9mIHRlY2huaXF1ZXMgYXJlIG5vcm1hbGx5IHRoZSBleGNsdXNpdmUgZG9t +YWluIG9mCj4gZXhwZXJpZW5jZWQgU29mdHdhcmUgRW5naW5lZXJpbmcgdGVhbXMuICBmb3IgYSAq +aGFyZHdhcmUqIHRlYW0gdG8KPiBkZXBsb3kgdGhlbT8gIHRoaXMgaXMgdW5oZWFyZC1vZiwgYW5k +IGlmIGF0dGVtcHRlZCB3aXRoIGV2ZW4gQ2hpc2VsMyAvCj4gU2NhbGEsIHdvdWxkIGhhdmUgdGhl +IHRlYW0gcnVubmluZyBhd2F5IHNjcmVhbWluZyB3aXRoaW4gYWJvdXQgNgo+IG1vbnRocy4gIGEg +dGVhbSB0aGF0IHdhcyBhc2tlZCB0byBkbyB0aGF0IGluIHZlcmlsb2cgb3IgVkhETCB3b3VsZAo+ +IGZsYXQtb3V0IHNheSAibm8iLiAgb3IgYXNrIGZvciA1MCBleHRyYSBlbmdpbmVlcnMuICB3aGlj +aCwgZm9yIElCTSBvcgo+IEludGVsIG9yIEFSTSBpcyBub3QgdW5yZWFzb25hYmxlLCBidXQgZm9y +IHVzIGl0IGlzIG5vdC4KPgo+IGhlbmNlIHdlIHN0YXJ0ZWQgZnJvbSBzY3JhdGNoLCBpbiBvcmRl +ciB0byBiZSBhYmxlIHRvIGRlcGxveSB0aGVzZQo+IGtpbmRzIG9mIFNvZnR3YXJlIEVuZ2luZWVy +aW5nIHRlY2huaXF1ZXMuCj4KPiBsLgo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f +X19fX19fX19fX19fX19fX18KPiBsaWJyZS1yaXNjdi1kZXYgbWFpbGluZyBsaXN0Cj4gbGlicmUt +cmlzY3YtZGV2QGxpc3RzLmxpYnJlLXJpc2N2Lm9yZwo+IGh0dHA6Ly9saXN0cy5saWJyZS1yaXNj +di5vcmcvbWFpbG1hbi9saXN0aW5mby9saWJyZS1yaXNjdi1kZXYKCl9fX19fX19fX19fX19fX19f +X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpYnJlLXJpc2N2LWRldiBtYWlsaW5nIGxp +c3QKbGlicmUtcmlzY3YtZGV2QGxpc3RzLmxpYnJlLXJpc2N2Lm9yZwpodHRwOi8vbGlzdHMubGli +cmUtcmlzY3Yub3JnL21haWxtYW4vbGlzdGluZm8vbGlicmUtcmlzY3YtZGV2Cg== +