Return-path: Envelope-to: publicinbox@libre-riscv.org Delivery-date: Sat, 16 May 2020 13:12:21 +0100 Received: from localhost ([::1] helo=libre-riscv.org) by libre-soc.org with esmtp (Exim 4.89) (envelope-from ) id 1jZvfw-0006zM-5D; Sat, 16 May 2020 13:12:20 +0100 Received: from lkcl.net ([217.147.94.29]) by libre-soc.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1jZvfu-0006zG-Q1 for libre-riscv-dev@lists.libre-riscv.org; Sat, 16 May 2020 13:12:18 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lkcl.net; s=201607131; h=Content-Type:To:Subject:Message-ID:Date:From:References:In-Reply-To:MIME-Version; bh=1UFeEwaMyFcMErcePj5hS81RYYyjpHxvwcDJ+4NZxUw=; b=UdzH2orJlK6I1p1mbFNaUL0hs/JqOoQZZ5kg/8Z1/nS1yRXZhDNc3ZWlS+WiJro5W+6tmZsMhCtlMgbEN+utR2I6tXUJiNmqFnKmHYpTwYXaGc2yo0rrUJMgVdh1x8dcdAkr8j3BEVh9UJ7CHaqfAoS4zR8R1hseYqImGzGnoGE=; Received: from mail-lf1-f49.google.com ([209.85.167.49]) by lkcl.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1jZvfu-00074d-Db for libre-riscv-dev@lists.libre-riscv.org; Sat, 16 May 2020 12:12:18 +0000 Received: by mail-lf1-f49.google.com with SMTP id e125so3268660lfd.1 for ; Sat, 16 May 2020 05:12:02 -0700 (PDT) X-Gm-Message-State: AOAM533WIUmIPnI67CrGgsvy+dHmbKZJlzcMq3h04gv9nMAncF/30uwg JpsLJujn/fPM8u3N5m0HVmykOut7vdwSpZ8WZpg= X-Google-Smtp-Source: ABdhPJxZZrdt1DiCc+lJtG3VBIuPTeWzAAS9EoLvImmZQfzPykFQdRV/eJnRd5eE8YGQyYWl61tQjRCBqflKuiR+BDQ= X-Received: by 2002:a05:6512:31c5:: with SMTP id j5mr5530587lfe.26.1589631117299; Sat, 16 May 2020 05:11:57 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a05:6504:31aa:0:0:0:0 with HTTP; Sat, 16 May 2020 05:11:56 -0700 (PDT) In-Reply-To: References: From: Luke Kenneth Casson Leighton Date: Sat, 16 May 2020 13:11:56 +0100 X-Gmail-Original-Message-ID: Message-ID: To: Libre-RISCV General Development X-Content-Filtered-By: Mailman/MimeDel 2.1.23 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" aGl5YSBqZXJlbXkganVzdCBjb21pbmcgYmFjayB0byByZXNwb25kIHRvIHRoZSBvcmlnaW5hbCBt ZXNzYWdlIHlvdSB3cm90ZSwKY292ZXJpbmcgdGhpbmdzIHdlIG1pc3NlZC4geWVzIGxvdHMgb2Yg cXVlc3Rpb25zLCB0aGVyZWZvcmUgbG90cyBvZiBhbnN3ZXJzCjopCgpPbiBGcmlkYXksIE1heSAx NSwgMjAyMCwgSmVyZW15IFNpbmdoZXIgPHRoZWpzaW5naGVyQGdtYWlsLmNvbT4gd3JvdGU6Cgo+ IEhpIGFsbCwKPgo+IE15IG5hbWUgaXMgSmVyZW15IFNpbmdoZXIuIEknbSBhIGdyYWR1YXRlIHN0 dWRlbnQgc3R1ZHlpbmcgY29tcHV0ZXIKPiBhcmNoaXRlY3R1cmUsIGludGVyZXN0ZWQgaW4gb3Bl bi1zb3VyY2UgaGFyZHdhcmUgYW5kIGhpZ2ggcGVyZm9ybWFuY2UKPiBtaWNyb2FyY2hpdGVjdHVy ZXMuIEkgYW0gbG9va2luZyBmb3IgYW4gb3Blbi1zb3VyY2UgaGFyZHdhcmUgcHJvamVjdCBJIGNh bgo+IGNvbnRyaWJ1dGUgdG8gdGhyb3VnaCB0aGUgY291cnNlIG9mIG15IGdyYWR1YXRlIHN0dWRp ZXMsCgoKZ3JlYXQgdG8gaGVhci4gIHdlJ3ZlIGVzdGFibGlzaGVkIHRoYXQgeW91IGtub3cgYSBo ZWNrIG9mIGEgbG90IGFib3V0Cm91dC1vZi1vcmRlciBkZXNpZ24gYW5kIGkgY291bGQgcmVhbGx5 IHVzZSBzb21lIGhlbHAgd2l0aCB0aGUgcHJlY2lzZQpzY29yZWJvYXJkIHN5c3RlbSBhbmQgdGhl IEZTTXMgaW4gdGhlIENvbXB1dGF0aW9uIFVuaXRzLgoKeW91IG1heSBoYXZlIG5vdGljZWQgdGhh dCB3ZSBoYXZlIGZ1bmRpbmcgZnJvbSBOTE5ldC4gIHRoZXJlZm9yZSBpZiB5b3UKY29tcGxldGUg YSB0YXNrIG9uIHRoZSBwcmUtYWdyZWVkIGxpc3QsIHlvdSByZWNlaXZlIGEgZG9uYXRpb24gZnJv bSBOTE5ldApmb3IgZG9pbmcgc28uIGh0dHA6Ly9saWJyZS1kb2Mub3JnL25sbmV0CgppLmUgd2Ug YXJlIG5vdCBleHBlY3RpbmcgeW91IHRvIGhlbHAgImZvciBmcmVlIiwgb2s/IDopCgoKPiAxLiBJ dCBzZWVtcyBsaWtlIHlvdSBndXlzIGFyZSBidWlsZGluZyB2YXJpb3VzIGNvbXBvbmVudHMgb2Yg YW4KPiBvdXQtb2Ytb3JkZXIgbWljcm9hcmNoaXRlY3R1cmUsIHN1Y2ggYXMgdGhlIHNjb3JlYm9h cmQsIGFuZCBsb2FkLXN0b3JlCj4gb3JkZXJpbmcgdW5pdHMuIERvIHlvdSBoYXZlIGEgY29tcGxl dGUgbWljcm9hcmNoaXRlY3R1cmUgZGlhZ3JhbSBvZiB0aGUKPiBjb3JlIChvciBhIHRleHQgZGVz Y3JpcHRpb24pPwoKCml0IGlzIHBpZWNlcywgZnJvbSBub3Rlcywgb2Z0ZW4gZHJhd24gYXMgZ2F0 ZSBsZXZlbCBkaWFncmFtcy4gIG1vcmUgZ2V0CmFkZGVkIGFzIHRoZXkgaGFwcGVuLCBhbmQgdGhl eSBhcmUgbW9yZSBhaWRlLW1lbW9pcmUgdGhhdCB3ZSB3aXNoIHRvIGV4cGFuZAp0byBmdWxsIHRl Y2huaWNhbCBkZXNpZ24gZG9jdW1lbnRhdGlvbi4KCmV4YW1wbGUsIHRvZGF5LCBpIHBsYW4gdG8g ZHJhdyBvdXQgdGhlIHJlZ2lzdGVyIHBvcnQgYWxsb2NhdGlvbnMgdG8gdGhlCkZ1bmN0aW9uIFVu aXRzLiAgaW4gdGhlIDE4MG5tIHZlcnNpb24gdGhlcmUgd2lsbCBiZSBhdCBsZWFzdC4uLiAxMApk aWZmZXJlbnQgdHlwZXMgb2YgRlVzLCBlYWNoIHdpdGggcmFkaWNhbGx5IGRpZmZlcmVudCByZWdp c3RlciBwb3J0CmFsbG9jYXRpb25zICghKS4gaSBuZWVkIHRvIGRvY3VtZW50IHRob3NlLgoKc29t ZSBvZiB0aGVtIGFyZSBhcyBoaWdoIGFzIDUgaW4sIDMgb3V0LiAgZm9ydHVuYXRlbHkgdGhleSBh cmUgYWNyb3NzCm11bHRpcGxlIGRpZmZlcmVudCByZWdmaWxlcyAod2UgdHJlYXQgU1BScywgQ29u ZGl0aW9uIFJlZ3MsIElOVCBhbmQgRlAgYXMKY29tcGxldGVseSBkaWZmZXJlbnQgYW5kIGNvbnNl cXVlbnRseSB0aGUgRlUgcG9ydCByZXF1aXJlbWVudHMgYXJlIG5vdCBhcwpkZWVwbHkgc2Nhcnkg YXMgdGhleSBmaXJzdCBzb3VuZDogd2UgZG8gbm90IG5lZWQgdG8gZ28gYWJvdmUgNFIxVyBmb3Ig YW55Cm9uZSBhY3R1YWwgcmVnZmlsZSkKCmFsc28gaW4gcGFydGljdWxhcmx5IGludm9sdmVkIGNh c2VzIGkgaGF2ZSBkb25lIHlvdXR1YmUgdmlkZW9zCmh0dHA6Ly95b3V0dWJlLmNvbS91c2VyL2xr Y2wgYW5kIGxvb2sgYXQgbGlicmVzb2MgcGxheWxpc3QuCgpzZWUgaHR0cDovL2xpYnJlLXNvYy5v cmcvM2RfZ3B1L2FyY2hpdGVjdHVyZSBhbmQgZHJpbGwgZG93biB0aGUgbGV2ZWxzCnRoZXJlLgoK CiBJIGNvdWxkIGZpbmQgYml0cyBhbmQgcGllY2VzIG9uIHNwZWNpZmljCj4gY29tcG9uZW50cywK Cgp0aGlzIGJlY2F1c2UgdGhhdCBpcyBvdXIgY3VycmVudCBmb2N1cy4KCgo+IGJ1dCBJJ20gaW50 ZXJlc3RlZCBpbiBkZXRhaWxzIGxpa2UgcGlwZWxpbmUgd2lkdGgsCgoKPgogdGhlIDE4MG5tIEFT SUMgd2lsbCBsaWtlbHkgaGF2ZSBhcm91bmQuLi4gMjAgc2VwYXJhdGUgYW5kIGRpc3RpbmN0Cihw YXJhbGxlbCkgRnVuY3Rpb24gVW5pdCBlbnRyeSBwb2ludHMgaW50byBhcm91bmQuLi4gMTAgdG8g MTIgdHlwZXMgb2YKcGlwZWxpbmUuCgpmb3IgYSAxODBubSBBU0lDIHRoYXQgaXMgb25lIGhlbGwg b2YgYSBsb3QuCgpmb3IgdGhlIFF1YWQgQ29yZSBkdWFsIGlzc3VlIHZlcnNpb24gdGhhdCB3aWxs IGp1bXAgdG8gYXJvdW5kLi4uIDI4LgoKCgpkZXB0aCwKPiBicmFuY2gtdG8tYnJhbmNoIGxhdGVu Y3ksIGxvYWQtdXNlIGRlbGF5LCBldGMuCgoKd2UgYXJlIGxpdGVyYWxseSBpbiB0aGUgcHJvY2Vz cyBvZiBhc3NlbWJsaW5nIHRoZSBwaWVjZXMsIGZvciB0aGUgMTgwbm0KdGVzdCBjaGlwLiAgY29u c2VxdWVudGx5IHRoaXMgaXMgYmVjb21pbmcgYXBwYXJlbnQgYXMgZWFjaCBwaWVjZSBpcyBwdXQK dG9nZXRoZXIuCgppbiBvdGhlciB3b3JkcyB3ZSBhcmUgcmlnaHQgYXQgdGhlIHBvaW50IHdoZXJl IHlvdXIgaGVscCBjb3VsZCBkZWZpbmUgc29tZQpvZiB0aG9zZSBjaGFyYWN0ZXJpc3RpY3MuCgoK Cj4gMi4gSXMgdGhlIFNvQyBhdCBhIHN0YXRlIGF0IHdoaWNoIEkgY2FuIGV2YWx1YXRlIHBlcmZv cm1hbmNlIG9uIHNpbXBsZQo+IGJlbmNobWFya3MgaW4gc2ltdWxhdGlvbj8KCgphcyBhIHB5dGhv bi1iYXNlZCBwcm9qZWN0IHdlIGhhdmUgYSBodWdlIG51bWJlciBvZiB1bml0IHRlc3RzLCB5b3Ug ZWl0aGVyCnJ1biB0aGVtIGRpcmVjdGx5IG9yIHlvdSB1c2Ugbm9zZXRlc3RzMwoKd2UgYXJlIHN0 aWxsIGNvbnN0cnVjdGluZyBidWlsZGluZyBibG9ja3MgKHJhcGlkbHkpIHNvIGNvbnNlcXVlbnRs eSB0aGUKaW5kaXZpZHVhbCB0ZXN0cyBhcmUgdGhlIGZvY3VzIG9mIGRldmVsb3BlciBhdHRlbnRp b24uCgoKPiAgT3RoZXIgc2ltaWxhciBvcGVuLXNvdXJjZSBoYXJkd2FyZSBwcm9qZWN0cyBoYXZl Cj4gbWFrZSB0YXJnZXRzIHRvIGxhdW5jaCB2ZXJpbGF0b3Igc2ltdWxhdGlvbnMsIGJ1dCBJIGNv dWxkIG5vdCBmaW5kIGFuCj4gZXF1aXZhbGVudCBpbiB5b3VyIHJlcG9zIChhbHRob3VnaCBJIHBy b2JhYmx5IGFtIGp1c3QgYmFkIGF0IGxvb2tpbmcpLgoKCnRob3NlIHdpbGwgYmUgYWRkZWQgd2hl biBjb21waWxhdGlvbiBvZiB0aGUgd2hvbGUgY2hpcCBpcyByZWFkeSB0byBkbyBzby4KRlBHQSB0 YXJnZXRzIGV0Yy4gdGhlc2Ugd2lsbCBpbmRlZWQgZ28gYXQgdGhlIHRvcCBsZXZlbC4KCmhvd2V2 ZXIgYXMgd2UgdXNlIGEgcHl0aG9uLWJhc2VkIEhETCwgcHl0aG9uIHByYWN0aWNlcyBhcHBseSBh bmQgdGhhdAp0eXBpY2FsbHkgbWVhbnMgInB5dGhvbjMgc2V0dXAucHkgdGVzdCIgb3IgIm5vc2V0 ZXN0czMiIG1vcmUgdGhhbiBpdCBtZWFucwoibWFrZSB0ZXN0IiBhbHRob3VnaCB0aGF0IGkgdGhp bmsgd2FzIGFkZGVkIGludG8gdGhlIHNvYyB0b3AgbGV2ZWwgTWFrZWZpbGUuCgoKPiAzLiBXaGF0 IGlzIHlvdXIgdGFyZ2V0IHBlcmZvcm1hbmNlIGluIHRlcm1zIG9mIGFuIGVzdGFibGlzaGVkIGJl bmNobWFyawo+IGxpa2UgQ29yZW1hcmssIERocnlzdG9uZSwgRW1iZW5jaCwgb3IgU1BFQz8KCgpy ZWFsbHkgaGFyZCB0byB0ZWxsIHJpZ2h0IG5vdy4gdGhlIHByaW1hcnkgZm9jdXMgaXMgbW9yZSBv biBkZXNpZ25pbmcKc29tZXRoaW5nIHRoYXQgaXMgR1BVIENhcGFibGUuICB0aGF0IGlzIHN1Y2gg YSBoaWdoIHBlcmZvcm1hbmNlIGFuZCBkYXRhCnJlcXVpcmVtZW50IHRoYXQgaSB0aGluayBoaWdo IFNQRUMgZXRjIGZpZ3VyZXMgd2lsbCBpbmhlcmVudGx5IGRyb3Agb3V0LgoKCgo+ICBJJ20gdHJ5 aW5nIHRvIGNvbXBhcmUgdGhlCj4gbWVyaXRzIGFuZCBwcm9ncmVzcyBvZiB2YXJpb3VzIGhhcmR3 YXJlIHByb2plY3RzIG91dC10aGVyZS4KCgp0aGlzIG9uZSBpcy4uLiB0aGUgcmVhc29ucyB3aHkg d2UgYXJlIGFsbCBoZXJlIGFyZSBub3QgdGVjaG5pY2FsIG9uZXMsCmFsdGhvdWdoIGl0IGlzIGZh c2NpbmF0aW5nIGJ1dCBkZWVwbHkgY2hhbGxlbmdpbmcgd29yay4KCnRoZSBkcml2aW5nIHJlYXNv bnMgYXJlIHRoYXQgdGhlcmUgYXJlIG5vIFNvQ3Mgb3V0IHRoZXJlIGF0IHRoaXMgbGV2ZWwgb2YK ZGVkaWduIGNhcGFiaWxpdHkgKHF1YWQgY29yZSBkdWFsIGlzc3VlIFNNUCBhbmQgM0QgYW5kIFZQ VSwgYW5kIHRoZXJlIGlzIG5vCnJlYXNvbiB3aHkgd2Ugc2hvdWxkIG5vdCB0cnkgcXVhZCBvciA2 IGlzc3VlLCBhbmQgMS41IGdoeiBhbmQgYWJvdmUsIGxhdGVyKQp0aGF0IGhhdmUgYSBmdWxsIExp YnJlIFNvZnR3YXJlIHN0YWNrLCBpbnRlbmRlZCByaWdodCBmcm9tIHRoZSBzdGFydCBmb3IKMTAw IG1pbGxpb24gYW5kIGFib3ZlIG1hc3Mgdm9sdW1lIGVuZCB1c2VyIG1hcmtldHMuCgpob3dldmVy IGV2ZW4gdGhhdCBtYXNrcyBhIHNpbXBsZXIgd2F5IHRvIHB1dCBpdDoKCndlJ3JlIGdpdmluZyBj aXRpemVucyBiYWNrIFNvdmVyZWlnbiBjb250cm9sIG92ZXIgdGhlaXIgY29tcHV0aW5nIGRldmlj ZXMuCgppZiB0aGF0IHNvdW5kZWQgIm1lcmVseSIgY29vbCBhYm91dCA0IG1vbnRocyBhZ28sIHlv dSB3aWxsIGJlIGtlZW5seSBhd2FyZQp3aXRoIGEgbGl0dGxlIHRob3VnaHQgYW5kIGFuYWx5c2lz IG9mIHRoZSB3b3JsZCBuZXdzIHRoYXQgdGhhdCBpcyBub3cgbm90Cmp1c3QgY29vbCwgaXQgaXMg ZGVlcGx5ICp1cmdlbnQqLgoKbm8gb3RoZXIgTGlicmUgcHJvamVjdCBpcyBjcmVhdGluZyBhbiBl bmQtdXNlciBwcm9kdWN0IHdpdGggYSBidWlsdCBpbgoqTGlicmUqIEdQVSBhbmQgVlBVIGZvciB1 c2UgaW4gbWFzcyB2b2x1bWUgcHJvZHVjdHMuCgoqIFNpRml2ZSBqb2luZWQgZm9yY2VzIHdpdGgg SW1nVGVjIHRvIHVzZSBQb3dlclZSLiB3aHkgb24gZWFydGggdGhleSBkaWQKdGhpcyB3aGVuIElt Z1RlYyBoYXMgc3VjaCBhIGRyZWFkZnVsIHJlcHV0YXRpb24gd2Ugd2lsbCBuZXZlciBrbm93LgoK KiBNSUFPVyBpcyBhIFNJTVQgZW5naW5lLCBub3QgYW4gYWN0dWFsIEdQVS4gdGhlcmUgYXJlIG5v IFRleHR1cmUgb3Bjb2RlcywKbm90aGluZyBsaWtlIHRoYXQ6IHRoZXkgaW1wbGVtZW50ZWQgYSB2 ZXJ5IHNtYWxsIHN1YnNldCBvZiB0aGUgQU1ER1BVIElTQSwKYmFzaWNhbGx5LgoKKiBOeXV6aSBp cyBhbiBhY2FkZW1pYyBleGVyY2lzZSBkZW1vbnN0cmF0aW5nIHdoeSBMYXJyYWJlZSB3YXMgbm90 IGFkZXF1YXRlCmFzIGEgR1BVLiBpdCB3YXMgaGlnaGx5IHN1Y2Nlc3NmdWwgaW4gdGhpcyByZWdh cmQuCgoqIEdQTEdQVSBpcyBub3QgYWN0dWFsbHkgR1BMIGxpY2Vuc2VkIChpdHMgYXV0aG9yIGF1 Z21lbnRlZCB0aGUgR1BMLCBtYWtpbmcKaXQgYSBwcm9wcmlldGFyeSBsaWNlbnNlKSwgYW5kIGl0 IGlzIGJhc2VkIG9uIFBMQU45IHdoaWNoIHdhcyBhIGZpeGVkCmZ1bmN0aW9uIChub24tc2hhZGVy KSBkZXNpZ24gY29uY2VwdCBhbnl3YXkuCgp0aGVyZWZvcmUsIGV2ZW4gYSBMaWJyZSAqR1BVKiBk b2VzIG5vdCBleGlzdCB0aGF0IGNhbiBtZWV0IGNvbW1lcmNpYWwKcG93ZXItcGVyZm9ybWFuY2Ug ZXhwZWN0YXRpb25zIG9mIHRvZGF5J3MgbWFya2V0cy4KCgoKPiA0LiBXaGF0IGlzIHRoZSByaWdo dCB3YXkgdG8gZ2V0IHN0YXJ0ZWQgY29udHJpYnV0aW5nPwoKCm5leHQgc3RlcCBpcyBwcm9iYWJs eSB0byByZWFkIGh0dHA6Ly9saWJyZS1zb2MvSERMX3dvcmtmbG93IHRvIGdldCBhIGZlZWwKZm9y IGhvdyB0byBnZXQgc3RhcnRlZCwgd2hhdCB0aGUgaW50ZXJhY3Rpb24gYW5kIGRldmVsb3BtZW50 IGZsb3cgaXMuCgoKPiAgTXkgZXhwZXJpZW5jZSBpcyB3aXRoCj4gVmVyaWxvZywgYW5kIEkndmUg bG9va2VkIGF0IG90aGVyIGxhbmd1YWdlcyB0b28sIGluY2x1ZGluZyBCU1YgYW5kIENoaXNlbC4K CgpqdXN0IGZvbGxvdyB0aGUgcHJvY2VzcyBzdGVwIGJ5IHN0ZXAgb24gdGhlIGZyb250IHBhZ2Uu ICB5b3UgZGlkIHN0ZXAgMSA6KQoiam9pbiBsaXN0LCBzYXkgaGVsbG8iLgoKaWYgeW91IGFyZSBu b3QgaW1tZWRpYXRlbHkgZmFtaWxpYXIgd2l0aCBubWlnZW4gdGhlcmUgYXJlIHR1dG9yaWFscyB0 aGUKYmVzdCBvbmUgaXMgYnkgcm9iZXJ0IGJhcnVjaApodHRwczovL2dpdGh1Yi5jb20vUm9iZXJ0 QmFydWNoL25taWdlbi10dXRvcmlhbC9ibG9iL21hc3Rlci9SRUFETUUubWQKCmZyb20gdGhlcmUg d2UncmUgaGFwcHkgdG8gZ2l2ZSB5b3UgYSBzbWFsbCAodXNlZnVsKSB0YXNrLCBsaWtlIHRoaXM6 Cmh0dHBzOi8vYnVncy5saWJyZS1zb2Mub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTYKCmV2ZW4ganVz dCByZWFkaW5nIHRoYXQsIHlvdSB3aWxsIHNlZSBzb21lIG9mIHRoZSBnb3RjaGFzIHRvIGV4cGVj dC4KCmJ0dywgQ29sZSBhIGZldyBtb250aHMgYWdvIGtuZXcgdmlydHVhbGx5IG5vdGhpbmcgYWJv dXQgc29mdHdhcmUKZGV2ZWxvcG1lbnQsIG9yIGxpbnV4LCBvciBoYXJkd2FyZSwgb3IgcHl0aG9u LiBvciBnaXQuICBmb3IgYSB0b3RhbApiZWdpbm5lciBhbmQgaSBkbyBtZWFuIHRvdGFsLCBoZSdz IGRvaW5nIHJlYWxseSB3ZWxsLiBpJ20ga2luZGEgc2VyaW91c2x5CmltcHJlc3NlZC4KCgpJJ20g cHJpbWFyaWx5IGludGVyZXN0ZWQgaW4gZGV2ZWxvcGluZyBtaWNyb2FyY2hpdGVjdHVyZSBmb3IK PiBwZXJmb3JtYW5jZS1jcml0aWNhbCBjb21wb25lbnRzLCBsaWtlIGJyYW5jaCBwcmVkaWN0b3Jz LCBwcmVmZXRjaGVycywKPiBpbnN0cnVjdGlvbiBzY2hlZHVsZXJzLCBhbmQgbG9hZC1zdG9yZSB1 bml0cy4KCgpnb29vZC4gIGJlY2F1c2UgdGhvc2UgYXJlIGV4YWN0bHkgdGhlIHRoaW5ncyB0aGF0 IHdlIG5lZWQgaGVscCB3aXRoLCBxdWl0ZQp1cmdlbnRseS4KCgoKSWRlYWxseSwgSSBjb3VsZCBj b250cmlidXRlCj4gbXkgd29yayBhcyBwYXJ0IG9mIGdyYWR1YXRlIHN0dWRpZXMgdG8gdGhpcyBw cm9qZWN0LgoKCmZhbnRhc3RpYy4gIHJlbWVtYmVyOiBhbmQgcmVjZWl2ZSBkb25hdGlvbnMgZnJv bSBOTE5ldCBmb3IgZG9pbmcgc28gOikKCmwuCgoKCi0tIAotLS0KY3Jvd2QtZnVuZGVkIGVjby1j b25zY2lvdXMgaGFyZHdhcmU6IGh0dHBzOi8vd3d3LmNyb3dkc3VwcGx5LmNvbS9lb21hNjgKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlicmUtcmlzY3Yt ZGV2IG1haWxpbmcgbGlzdApsaWJyZS1yaXNjdi1kZXZAbGlzdHMubGlicmUtcmlzY3Yub3JnCmh0 dHA6Ly9saXN0cy5saWJyZS1yaXNjdi5vcmcvbWFpbG1hbi9saXN0aW5mby9saWJyZS1yaXNjdi1k ZXYK