From: Jeremy Singher Date: Fri, 15 May 2020 19:15:32 +0000 (-0700) Subject: Re: [libre-riscv-dev] Introduction and Questions X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c713734b8314662c353c50e9611b7b1d76c58817;p=libre-riscv-dev.git Re: [libre-riscv-dev] Introduction and Questions --- diff --git a/f4/8a66dcd1dde07aca6984d776f87f21d1658750 b/f4/8a66dcd1dde07aca6984d776f87f21d1658750 new file mode 100644 index 0000000..b3baa9d --- /dev/null +++ b/f4/8a66dcd1dde07aca6984d776f87f21d1658750 @@ -0,0 +1,188 @@ +Return-path: +Envelope-to: publicinbox@libre-riscv.org +Delivery-date: Fri, 15 May 2020 20:15:46 +0100 +Received: from localhost ([::1] helo=libre-riscv.org) + by libre-soc.org with esmtp (Exim 4.89) + (envelope-from ) + id 1jZfo9-00008o-MY; Fri, 15 May 2020 20:15:45 +0100 +Received: from mail-lf1-f41.google.com ([209.85.167.41]) + by libre-soc.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) + (Exim 4.89) (envelope-from ) + id 1jZfo9-00008i-1S + for libre-riscv-dev@lists.libre-riscv.org; Fri, 15 May 2020 20:15:45 +0100 +Received: by mail-lf1-f41.google.com with SMTP id 8so2745347lfp.4 + for ; + Fri, 15 May 2020 12:15:45 -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 + :content-transfer-encoding; + bh=zMKRgFpTCxI0um0UWAW7flBVsJ3cE3uK26Tgf38RpTk=; + b=dPcoMUv2xmrO8ktZqTMS7IevQELbk2M3n9YlAnol2GpJyajlBLkZ17D70Tt9amEfyM + qKOk3IgabF9xxOSMhd7pxmtXqg/CzwJ+WdWBjMp5jRitFDjRkOGhv0KaY6KW4Sn9potP + CN9dTkRNxhq5+ZQzFL2g1NjJRvE55ZjbcYn2GV2w2DetT38tX+KQcYbmxi1WlmOcvpOM + CmRUAUfZ64EYl/HWZhvy7TpDOcbKtsK7dQ5+SIblH0frLoZjNLfc7hrlteUNUc1M2eVS + WQ+T85ybJ0e52eXm2PKOfQm1KDS0J4TH6KHWyQaoWzq9tRLB3+dJmH0gBqoeyJSoxZBC + utbQ== +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:content-transfer-encoding; + bh=zMKRgFpTCxI0um0UWAW7flBVsJ3cE3uK26Tgf38RpTk=; + b=NAgTiik3ins0duGWd1qQLEGAI+L5D/aVo6a3pJ0r2Zmm5UEiN0kx7OFRLqGTTaYRi/ + tehEEyD4tvrXv/1FQWsmW/sydG6CuQhZDjMrHHd8hIrygK/ChXZvqRllw532Wb8T6TNm + ijSYqMKlQvC+yKVWVkIEs1ZbNg2peYCbmzljobKiAHOcIGdar9t5RepX/S9vV8IzMaJ3 + aQDko7c+oYcIkM3w2u3GGL5ZR2C1znr6cpKKOPwMzrbK9mWjvqPzSDb79kJ4yUEqLEyE + L+42N1ZXAxGFxu7cOIm58M0FLLC9qk7P3p9Tn1Z7Fb1zTXUCFMse6gjKc3XTr0TUy+qf + lHEw== +X-Gm-Message-State: AOAM533bR1EGDnx7VBHMKJbXz6CiJU34fJJXEp/RvAfb17bpTPbONM/e + /nqrR4zM2xl5nNWeHDrTetWeK95Htag6ks6KL63R+Ve9 +X-Google-Smtp-Source: ABdhPJzl66ZWgM/jxNHGwov7bcH6vGVNzlMLPSWbvcYq/ZC6s0YBy628A2Tv1bAMhqQDLoDHiqfyebUSsUIZnGM/8YU= +X-Received: by 2002:a05:6512:44e:: with SMTP id + y14mr3355583lfk.190.1589570143960; + Fri, 15 May 2020 12:15:43 -0700 (PDT) +MIME-Version: 1.0 +References: + <747F8870-06C6-46A0-AFD9-D55289D4C41A@gatech.edu> +In-Reply-To: <747F8870-06C6-46A0-AFD9-D55289D4C41A@gatech.edu> +From: Jeremy Singher +Date: Fri, 15 May 2020 12:15:32 -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" + +PiBVbmZvcnR1bmF0ZWx5LCBub3QgeWV0IC0gd291bGQgeW91IGxpa2UgdG8gaGVscCB3aXRoIHRo +aXM/Cj4gV2XigJlyZSBhIGJpdCBzdGFydmVkIG9uIGxhYm9yIC0gYWJvdXQgNGlzaCBmdWxsLXRp +bWUgaW4gbWFuLWhvdXJzPwoKU3VyZSwgaWYgeW91IHBvaW50IG1lIHRvIGRvY3VtZW50YXRpb24g +b24gdGhlIGNvcmUgZGVzaWduLCBJIGNhbiBkcmF3CnVwIGEgZGlhZ3JhbSBvZiBpdC4KSXMgdGhl +cmUgZW5vdWdoIGluZm9ybWF0aW9uIG9uIHRoZSBjb3JlIHRvIG1ha2UgYSBXaWtpQ2hpcC1saWtl +IGRpYWdyYW0/CkkgZmluZCB0aGF0IGRpc3BsYXlpbmcgdGhlIHBpcGVsaW5lIGRlcHRoLCB3aWR0 +aCwgYW5kIGltcG9ydGFudApjb21wb25lbnRzIGlzIGEgZ29vZCB3YXkgb2YKZGlzcGxheWluZyBr +ZXkgY2hhcmFjdGVyaXN0aWNzIG9mIGEgY29yZSwgYW5kIGl0IG1ha2VzIGl0IGVhc2llciBmb3IK +cGVvcGxlIGxpa2UgbWUgdG8gZHJhdyBjb21wYXJpc29ucwphZ2FpbnN0IG90aGVyIGNvcmVzIChj +b21tZXJjaWFsIGFuZCBvcGVuLXNvdXJjZSkuCgo+IFdl4oCZcmUgdXNpbmcgYSBtb2RpZmljYXRp +b24gb24gdGhlIHNjb3JlYm9hcmQgYXJjaGl0ZWN0dXJlIGZyb20gdGhlIENyYXkgQ0RDIDY2MDAu +Cj4gT3VyIHNjb3JlYm9hcmQgaXMgc29tZXdoYXQgc2ltaWxhciB0byB0aGF0IG9mIFRvbWFzdWxv +4oCZcyBhbGdvcml0aG0uCgpTbyB5b3UgaGF2ZSBPT08gZXhlY3V0aW9uIHdpdGggbXVsdGlwbGUg +ZnVuY3Rpb25hbCB1bml0cyBleGVjdXRpbmcgaW4gcGFyYWxsZWwsCmFuZCBhIHNjb3JlYm9hcmQg +dHJhY2tpbmcgY29tcGxldGlvbiBzdGF0dXMgb2Ygd3JpdGVzIHRvIHJlZ2lzdGVycywgcmlnaHQ/ +CklzIHRoaXMgYSB1bmlmaWVkLXJlZ2lzdGVyLWZpbGUsIG9yIHJlZ2lzdGVyLWluLWlzc3VlLXF1 +ZXVlIGRlc2lnbj8KCj4gTm8uIFNvIHNpbmNlIHdl4oCZcmUgaW1wbGVtZW50aW5nIGEgUE9XRVIg +Y2hpcCwgd2UgZGVjaWRlZCB0byBzdGFydCBieSB3cml0aW5nIGEgUE9XRVIKPiBTaW11bGF0b3Ig +Zmlyc3QuIFRoZXJlIGFyZSB3ZXJlIGEgZmV3IG9wdGlvbnMgZm9yIHRoaXMsIFFFTVUsIFBlYXJQ +QywgYW5kIEdlbTUuCgpBaCBJIHNlZSwgdGhhdCdzIG9rLiBZb3UgaGF2ZSB0byBzdGFydCBzb21l +d2hlcmUgOikuCgo+IEZyb20gaW5pdGlhbCBkaXNjdXNzaW9uLCBvdXIgZmlyc3QgdGFwZW91dCB3 +b3VsZCBiZSBsb29raW5nIGF0IFJhc3BiZXJyeSBQaSByZXYgQiAyMDEyIHBlcmZvcm1hbmNlIHdp +c2UuCj4gSXQgd291bGQgYmUgZ29vZCB0byBnZXQgc29tZSBkcnlzdG9uZSBudW1iZXIgZG93bi4K +CkFyZSB5b3UgdGFyZ2V0aW5nIElQQyBhcyB0aGUgcGVyZm9ybWFuY2UgbWV0cmljPyBPciBJUEMg +eCBGcmVxPwpUaGUgUGkgMSBSZXYgQiBzZWVtcyB0byBiZSBhIDEtd2lkZSBpbi1vcmRlciBkZXNp +Z24sIHNvIGl0IHNob3VsZCBiZSBhCnByZXR0eSBjb25zZXJ2YXRpdmUgdGFyZ2V0IHRvIGhpdC4K +QW55IGJhc2ljIE9PTyBjb3JlIHNob3VsZCBiZWF0IHRoZSBQSSBCIGluIElQQywgaXQgb25seSBu +ZWVkcyB0byBydW4KYXQgYW4gZXF1aXZhbGVudCBmcmVxdWVuY3kuCgpEbyB5b3Uga25vdyB3aGF0 +IHRoZSBmaW5hbCBwZXJmb3JtYW5jZSB0YXJnZXQgaXM/IChPciBtaW5pbWFsIHRhcmdldApmb3Ig +YSBjb21tZXJjaWFsbHkgdmlhYmxlIHByb2R1Y3Q/KQpUaGUgQ29ydGV4IEE3MiBpcyBhIDMtdyBP +T08gdGhhdCBtaWdodCBiZSBhIGdvb2QgcG9pbnQgdG8gdGFyZ2V0IChpdCdzCmFsc28gdXNlZCB0 +aGUgbGF0ZXN0IFBpIDRzKS4KCkZyb20gcnVubmluZyBhIGNvdXBsZSBleHBlcmltZW50cyBvbiBv +dGhlciBvcGVuLU9PTyBjb3JlcywgaXQgc2VlbXMKbGlrZSAzLWlzaCBETUlQcy9NSHogaXMgYSBn +b29kCnRhcmdldCBmb3IgYSBPT08gY29yZS4KCj4gQXJlIHlvdSBmYW1pbGlhciB3aXRoIFB5dGhv +biBuTWlnZW4gLSBpdHMgYmFzaWNhbGx5IENoaXNlbCBmb3IgUHl0aG9uLiBZb3UgbWVudGlvbmVk +IG1pY2hyb2FyY2hpdGVjdHVyZeKApiBQZXJoYXBzIHlvdSBjb3VsZCBoZWxwIEx1a2Ugb24gdGhl +IHNjb3JlYm9hcmQuCgpZYSwgSSd2ZSBiZWVuIHRyeWluZyB0byBydW4gdGhlIHNjcmlwdCBvbiB0 +aGUgd2Vic2l0ZSwgcnVubmluZyBpbnRvCnByb2JsZW1zIHdpdGggWW9zeXMsIGRlYnVnZ2luZyBu +b3cuCgpMYXN0bHksIGhhdmUgeW91IGd1eXMgdGFsa2VkIHRvIHRoZSB1bml2ZXJzaXR5IGVmZm9y +dHMgdG8gYnVpbGQKb3Blbi1zb3VyY2UgY29yZXM/IEkgc2VlIGxpbmtzIHRvIHRoZQpTaGFrdGkg +cHJvamVjdCBvbiB0aGUgc2l0ZS4gSXMgdGhpcyBhIGNvbGxhYm9yYXRpb24gd2l0aCB0aGVtPyBJ +CnRob3VnaHQgdGhleSB3ZXJlIGRvaW5nIFJJU0MtVj8KVGhlcmUncyBhbHNvIGdyb3VwcyBhdCBF +VEgsIEJlcmtlbGV5LCBhbmQgTUlUIHB1c2hpbmcgb3V0IHRoZWlyIG93bgphcHBsaWNhdGlvbi1j +bGFzcyBjb3Jlcy4gSG93IGRvZXMKdGhpcyBkZXNpZ24gY29tcGFyZSB0byB0aG9zZT8KClBhcnQg +b2YgdGhlIHJlYXNvbiBJJ20gYXNraW5nIHNvIG1hbnkgcXVlc3Rpb25zIChiZXlvbmQgbXkgb3du +CmN1cmlvc2l0eSkgaXMgdGhhdCBJIHdpbGwgbGlrZWx5IGJlCmEgVEEgZm9yIGEgY29tcHV0ZXIt +YXJjaGl0ZWN0dXJlIGNvdXJzZSBpbiB0aGUgbmVhciBmdXR1cmUsIGFuZCBJCndvdWxkIGxpa2Ug +dG8gcmV2YW1wIHRoZSBjb3Vyc2UgYnkKaGF2aW5nIHN0dWRlbnRzIGludGVyYWN0IHdpdGggcmVh +bCBSVEwgZm9yIGEgY29tcGxleCBTb0MsIGluc3RlYWQgb2YKanVzdCBzaW11bGF0b3JzLgoKClRo +YW5rcywKLUplcmVteQpPbiBGcmksIE1heSAxNSwgMjAyMCBhdCAxMTo0NSBBTSBZZWhvd3NodWEg +PHlpbW1hbnVlbDNAZ2F0ZWNoLmVkdT4gd3JvdGU6Cj4KPgo+Cj4gPiBPbiBNYXkgMTUsIDIwMjAs +IGF0IDI6MjQgUE0sIEplcmVteSBTaW5naGVyIDx0aGVqc2luZ2hlckBnbWFpbC5jb20+IHdyb3Rl +Ogo+ID4KPiA+IEhpIGFsbCwKPiA+Cj4gPiBNeSBuYW1lIGlzIEplcmVteSBTaW5naGVyLgo+Cj4g +SGVsbG8gYW5kIHdlbGNvbWUhCj4KPiA+IEknbSBhIGdyYWR1YXRlIHN0dWRlbnQgc3R1ZHlpbmcg +Y29tcHV0ZXIKPiA+IGFyY2hpdGVjdHVyZSwgaW50ZXJlc3RlZCBpbiBvcGVuLXNvdXJjZSBoYXJk +d2FyZSBhbmQgaGlnaCBwZXJmb3JtYW5jZQo+ID4gbWljcm9hcmNoaXRlY3R1cmVzLiBJIGFtIGxv +b2tpbmcgZm9yIGFuIG9wZW4tc291cmNlIGhhcmR3YXJlIHByb2plY3QgSSBjYW4KPiA+IGNvbnRy +aWJ1dGUgdG8gdGhyb3VnaCB0aGUgY291cnNlIG9mIG15IGdyYWR1YXRlIHN0dWRpZXMsIGFuZCBJ +IGhhdmUgc29tZQo+ID4gcXVlc3Rpb25zIGFib3V0IHRoZSBMaWJyZS1TT0MgcHJvamVjdC4KPiA+ +Cj4gPiAxLiBJdCBzZWVtcyBsaWtlIHlvdSBndXlzIGFyZSBidWlsZGluZyB2YXJpb3VzIGNvbXBv +bmVudHMgb2YgYW4KPiA+IG91dC1vZi1vcmRlciBtaWNyb2FyY2hpdGVjdHVyZSwgc3VjaCBhcyB0 +aGUgc2NvcmVib2FyZCwgYW5kIGxvYWQtc3RvcmUKPiA+IG9yZGVyaW5nIHVuaXRzLiBEbyB5b3Ug +aGF2ZSBhIGNvbXBsZXRlIG1pY3JvYXJjaGl0ZWN0dXJlIGRpYWdyYW0gb2YgdGhlCj4gPiBjb3Jl +IChvciBhIHRleHQgZGVzY3JpcHRpb24pPwo+Cj4gVW5mb3J0dW5hdGVseSwgbm90IHlldCAtIHdv +dWxkIHlvdSBsaWtlIHRvIGhlbHAgd2l0aCB0aGlzPwo+IFdl4oCZcmUgYSBiaXQgc3RhcnZlZCBv +biBsYWJvciAtIGFib3V0IDRpc2ggZnVsbC10aW1lIGluIG1hbi1ob3Vycz8KPgo+ID4gSSBjb3Vs +ZCBmaW5kIGJpdHMgYW5kIHBpZWNlcyBvbiBzcGVjaWZpYwo+ID4gY29tcG9uZW50cywgYnV0IEkn +bSBpbnRlcmVzdGVkIGluIGRldGFpbHMgbGlrZSBwaXBlbGluZSB3aWR0aCwgZGVwdGgsCj4gPiBi +cmFuY2gtdG8tYnJhbmNoIGxhdGVuY3ksIGxvYWQtdXNlIGRlbGF5LCBldGMuCj4KPiBXZeKAmXJl +IHVzaW5nIGEgbW9kaWZpY2F0aW9uIG9uIHRoZSBzY29yZWJvYXJkIGFyY2hpdGVjdHVyZSBmcm9t +IHRoZSBDcmF5IENEQyA2NjAwLgo+IE91ciBzY29yZWJvYXJkIGlzIHNvbWV3aGF0IHNpbWlsYXIg +dG8gdGhhdCBvZiBUb21hc3Vsb+KAmXMgYWxnb3JpdGhtLgo+Cj4gPiAyLiBJcyB0aGUgU29DIGF0 +IGEgc3RhdGUgYXQgd2hpY2ggSSBjYW4gZXZhbHVhdGUgcGVyZm9ybWFuY2Ugb24gc2ltcGxlCj4g +PiBiZW5jaG1hcmtzIGluIHNpbXVsYXRpb24/IE90aGVyIHNpbWlsYXIgb3Blbi1zb3VyY2UgaGFy +ZHdhcmUgcHJvamVjdHMgaGF2ZQo+ID4gbWFrZSB0YXJnZXRzIHRvIGxhdW5jaCB2ZXJpbGF0b3Ig +c2ltdWxhdGlvbnMsIGJ1dCBJIGNvdWxkIG5vdCBmaW5kIGFuCj4gPiBlcXVpdmFsZW50IGluIHlv +dXIgcmVwb3MgKGFsdGhvdWdoIEkgcHJvYmFibHkgYW0ganVzdCBiYWQgYXQgbG9va2luZykuCj4K +PiBOby4gU28gc2luY2Ugd2XigJlyZSBpbXBsZW1lbnRpbmcgYSBQT1dFUiBjaGlwLCB3ZSBkZWNp +ZGVkIHRvIHN0YXJ0IGJ5IHdyaXRpbmcgYSBQT1dFUgo+IFNpbXVsYXRvciBmaXJzdC4gVGhlcmUg +YXJlIHdlcmUgYSBmZXcgb3B0aW9ucyBmb3IgdGhpcywgUUVNVSwgUGVhclBDLCBhbmQgR2VtNS4K +Pgo+IFdl4oCZcmUgbWFraW5nIHR3ZWFrcyB0byBQZWFyUEMgYW5kIHdlIGFsc28gd3JpdGluZyBh +IHNpbXVsYXRvciBpbiBQeXRob24gdGhhdCBwYXJzZXMgdGhlIG9mZmljaWFsIFBPV0VSMy4wQiBz +cGVjLgo+Cj4gSSBjYW7igJl0IHJlbWVtYmVyIHdoeSB3ZSBkZWNpZGVkIHRvIGZpZGRsZSBhcm91 +bmQgd2l0aCBQZWFyUEMgYW5kIG5vdCB1c2UgUUVNVSBvciBHZW01Lgo+Cj4gPiAzLiBXaGF0IGlz +IHlvdXIgdGFyZ2V0IHBlcmZvcm1hbmNlIGluIHRlcm1zIG9mIGFuIGVzdGFibGlzaGVkIGJlbmNo +bWFyawo+ID4gbGlrZSBDb3JlbWFyaywgRGhyeXN0b25lLCBFbWJlbmNoLCBvciBTUEVDPyBJJ20g +dHJ5aW5nIHRvIGNvbXBhcmUgdGhlCj4gPiBtZXJpdHMgYW5kIHByb2dyZXNzIG9mIHZhcmlvdXMg +aGFyZHdhcmUgcHJvamVjdHMgb3V0LXRoZXJlLgo+Cj4gRnJvbSBpbml0aWFsIGRpc2N1c3Npb24s +IG91ciBmaXJzdCB0YXBlb3V0IHdvdWxkIGJlIGxvb2tpbmcgYXQgUmFzcGJlcnJ5IFBpIHJldiBC +IDIwMTIgcGVyZm9ybWFuY2Ugd2lzZS4KPiBJdCB3b3VsZCBiZSBnb29kIHRvIGdldCBzb21lIGRy +eXN0b25lIG51bWJlciBkb3duLgo+Cj4gPiA0LiBXaGF0IGlzIHRoZSByaWdodCB3YXkgdG8gZ2V0 +IHN0YXJ0ZWQgY29udHJpYnV0aW5nPyBNeSBleHBlcmllbmNlIGlzIHdpdGgKPiA+IFZlcmlsb2cs +IGFuZCBJJ3ZlIGxvb2tlZCBhdCBvdGhlciBsYW5ndWFnZXMgdG9vLCBpbmNsdWRpbmcgQlNWIGFu +ZCBDaGlzZWwuCj4gPiBJJ20gcHJpbWFyaWx5IGludGVyZXN0ZWQgaW4gZGV2ZWxvcGluZyBtaWNy +b2FyY2hpdGVjdHVyZSBmb3IKPiA+IHBlcmZvcm1hbmNlLWNyaXRpY2FsIGNvbXBvbmVudHMsIGxp +a2UgYnJhbmNoIHByZWRpY3RvcnMsIHByZWZldGNoZXJzLAo+ID4gaW5zdHJ1Y3Rpb24gc2NoZWR1 +bGVycywgYW5kIGxvYWQtc3RvcmUgdW5pdHMuIElkZWFsbHksIEkgY291bGQgY29udHJpYnV0ZQo+ +ID4gbXkgd29yayBhcyBwYXJ0IG9mIGdyYWR1YXRlIHN0dWRpZXMgdG8gdGhpcyBwcm9qZWN0Lgo+ +ID4KPgo+IEFyZSB5b3UgZmFtaWxpYXIgd2l0aCBQeXRob24gbk1pZ2VuIC0gaXRzIGJhc2ljYWxs +eSBDaGlzZWwgZm9yIFB5dGhvbi4gWW91IG1lbnRpb25lZCBtaWNocm9hcmNoaXRlY3R1cmXigKYg +UGVyaGFwcyB5b3UgY291bGQgaGVscCBMdWtlIG9uIHRoZSBzY29yZWJvYXJkLgo+Cj4gT3VyIGNv +ZGViYXNlIGlzIGEgYml0IG9mIGEgbWVzcyBhdCB0aGUgbW9tZW50IC0gdGhlcmUgd2FzIHNvIG11 +Y2ggdG8gZG8gZm9yIHN1Y2ggYSBsYXJnZSBwcm9qZWN0Lgo+IEJ5IEF1Z3VzdCwgd2l0aCBzaWdu +aWZpY2FudCBleHRyYSBmdW5kaW5nIGFuZCBsYWJvciBpbiB0aGUgcGlwZWxpbmUsIHRoZXJlIHNo +b3VsZCBiZSBtb3JlIGFiaWxpdHkgdG8gY2xlYW4gdGhpbmdzIHVwLgo+Cj4gPiBTb3JyeSBmb3Ig +dGhlIGJhcnJhZ2Ugb2YgcXVlc3Rpb25zLgo+ID4KPgo+IE5vIG9mZmVuc2UgaGVyZSA6KQo+Cj4g +PiBCZXN0LAo+ID4gLUplcmVteQo+Cj4gWWVob3dzaHVhCj4KPiA+IF9fX19fX19fX19fX19fX19f +X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBsaWJyZS1yaXNjdi1kZXYgbWFpbGlu +ZyBsaXN0Cj4gPiBsaWJyZS1yaXNjdi1kZXZAbGlzdHMubGlicmUtcmlzY3Yub3JnCj4gPiBodHRw +Oi8vbGlzdHMubGlicmUtcmlzY3Yub3JnL21haWxtYW4vbGlzdGluZm8vbGlicmUtcmlzY3YtZGV2 +Cj4KPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g +bGlicmUtcmlzY3YtZGV2IG1haWxpbmcgbGlzdAo+IGxpYnJlLXJpc2N2LWRldkBsaXN0cy5saWJy +ZS1yaXNjdi5vcmcKPiBodHRwOi8vbGlzdHMubGlicmUtcmlzY3Yub3JnL21haWxtYW4vbGlzdGlu +Zm8vbGlicmUtcmlzY3YtZGV2CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f +X19fX19fX19fXwpsaWJyZS1yaXNjdi1kZXYgbWFpbGluZyBsaXN0CmxpYnJlLXJpc2N2LWRldkBs +aXN0cy5saWJyZS1yaXNjdi5vcmcKaHR0cDovL2xpc3RzLmxpYnJlLXJpc2N2Lm9yZy9tYWlsbWFu +L2xpc3RpbmZvL2xpYnJlLXJpc2N2LWRldgo= +