Re: [libre-riscv-dev] finishing off the crowdsupply update
[libre-riscv-dev.git] / 5c / 469eae634a871e7d88a35dbaa8f50210e864d4
1 Return-path: <libre-riscv-dev-bounces@lists.libre-riscv.org>
2 Envelope-to: publicinbox@libre-riscv.org
3 Delivery-date: Mon, 30 Mar 2020 10:35:51 +0100
4 Received: from localhost ([::1] helo=libre-riscv.org)
5 by libre-riscv.org with esmtp (Exim 4.89)
6 (envelope-from <libre-riscv-dev-bounces@lists.libre-riscv.org>)
7 id 1jIqpj-00024t-Fc; Mon, 30 Mar 2020 10:35:51 +0100
8 Received: from ozlabs.org ([203.11.71.1])
9 by libre-riscv.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
10 (Exim 4.89) (envelope-from <paulus@ozlabs.org>) id 1jIl7t-0004yT-NN
11 for libre-riscv-dev@lists.libre-riscv.org; Mon, 30 Mar 2020 04:30:14 +0100
12 Received: by ozlabs.org (Postfix, from userid 1003)
13 id 48rHym3S9Wz9sPF; Mon, 30 Mar 2020 14:30:08 +1100 (AEDT)
14 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ozlabs.org; s=201707;
15 t=1585539008; bh=SZ0YO1M/NlaQGcfd9YC7FG87YOvxu3p0mTzS7u5x4vw=;
16 h=Date:From:To:Cc:Subject:References:In-Reply-To:From;
17 b=DmW88xn4ZGXzxEyP3FId8fpkZLgW6hluNxqHboOgVDphprooYj0S0LiLqv8qPz+gx
18 0X3MGYZymeZneCR+VbHI8obcgzS9G3RrZ4jmPSGy2U1HoenIMagUwt/R74FGdEdJ09
19 rWJtWkIKX6x4IidQYZE+hP3Uzs+BztwXd4JiqMYCg0ULd8Wpsqv660fPCvcjCR2bXn
20 CGY11V44W58QeZBnqzkrgu+83OG4HPXR+CSjyTpb1bpTwHPjWCNLVbrmV5FNFgUWYr
21 ADpg/emSSUoVHt5Wu99wWo7i06iaSRFW6HtxwBQCI8WW0P2tfea2YFUh7w6N1yQRIA
22 IhbFGIr5ZrKmw==
23 Date: Mon, 30 Mar 2020 14:30:02 +1100
24 From: Paul Mackerras <paulus@ozlabs.org>
25 To: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
26 Message-ID: <20200330033002.GB15134@blackberry>
27 References: <CAPweEDzGri9hXAk5JPhQnLhqNoKD_M3v1yhasNDEtO8=xpz7Cw@mail.gmail.com>
28 MIME-Version: 1.0
29 Content-Disposition: inline
30 In-Reply-To: <CAPweEDzGri9hXAk5JPhQnLhqNoKD_M3v1yhasNDEtO8=xpz7Cw@mail.gmail.com>
31 User-Agent: Mutt/1.5.24 (2015-08-30)
32 X-Mailman-Approved-At: Mon, 30 Mar 2020 10:35:49 +0100
33 Subject: Re: [libre-riscv-dev] [OpenPOWER-HDL-Cores] microwatt tlb
34 X-BeenThere: libre-riscv-dev@lists.libre-riscv.org
35 X-Mailman-Version: 2.1.23
36 Precedence: list
37 List-Id: Libre-RISCV General Development
38 <libre-riscv-dev.lists.libre-riscv.org>
39 List-Unsubscribe: <http://lists.libre-riscv.org/mailman/options/libre-riscv-dev>,
40 <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=unsubscribe>
41 List-Archive: <http://lists.libre-riscv.org/pipermail/libre-riscv-dev/>
42 List-Post: <mailto:libre-riscv-dev@lists.libre-riscv.org>
43 List-Help: <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=help>
44 List-Subscribe: <http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev>,
45 <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=subscribe>
46 Reply-To: Libre-RISCV General Development
47 <libre-riscv-dev@lists.libre-riscv.org>
48 Cc: openpower-hdl-cores@mailinglist.openpowerfoundation.org,
49 Libre-RISCV General Development <libre-riscv-dev@lists.libre-riscv.org>
50 Content-Type: text/plain; charset="utf-8"
51 Content-Transfer-Encoding: base64
52 Errors-To: libre-riscv-dev-bounces@lists.libre-riscv.org
53 Sender: "libre-riscv-dev" <libre-riscv-dev-bounces@lists.libre-riscv.org>
54
55 T24gRnJpLCBNYXIgMjcsIDIwMjAgYXQgMDI6MTU6MDNBTSArMDAwMCwgTHVrZSBLZW5uZXRoIENh
56 c3NvbiBMZWlnaHRvbiB3cm90ZToKPiBoaSB0aGlzIGlzIGZvciBwYXVsIG1hY2tlcnJhcyB3aGVu
57 IHlvdSBzZWUgaXQuCj4gCj4gZ3JlYXQgdG8ga25vdyB5b3UncmUgd29ya2luZyBvbiBtaWNyb3dh
58 dHQuIGJlZW4gc3VjaCBhIGxvbmcgdGltZSwgYW5kCj4gcmVhbGx5IGdvb2QgdG8gZW5jb3VudGVy
59 IHlvdSBvdmVyIHRoZSB2aXJ0dWFsIGNvZmZlZSBjaGF0IGVhcmxpZXIgdG9kYXkuCj4gCj4gaGVy
60 ZSdzIHRoZSBsaW5rIHRvIHRoZSByYWRpeCB3YWxrIGRvYyBpIHdhcyB0YWxraW5nIGFib3V0Ogo+
61 IGh0dHBzOi8vZ2l0aHViLmNvbS9wb3dlci1nZW01L2dlbTUvYmxvYi9nZW01LWV4cGVyaW1lbnRh
62 bC9zcmMvYXJjaC9wb3dlci9yYWRpeF93YWxrX2V4YW1wbGUudHh0Cj4gCj4gaXQgaXMgcmVhbGx5
63 IGdvb2QuICBpbXBsZW1lbnRhdGlvbnMgYWxzbyBleGlzdCBpbiB0aGUgc2FtZSBjb2RlYmFzZSwg
64 dGhlCj4gZWFzaWVzdCB3YXkgdG8gdHJhY2sgdGhlbSBkb3duIGlzIHZpYSB0aGUgY29tbWl0IGxv
65 Z3MgaW4gdGhlCj4gZ2VtNS1leHBlcmltZW50YWwgYnJhbmNoLgo+IAo+IGZvciBsaWJyZXNvYyB3
66 ZSByZWFsbHkgcmVhbGx5IG5lZWQgY2xlYXIgSERMIHRvICJ0cmFjayIgaWYgeW91IGtub3cgd2hh
67 dCBpCj4gbWVhbiwgYmVjYXVzZSBzb21lIG9mIHRoZXNlIGFsZ29yaXRobXMgYXJlIHZlcnkgdGlt
68 ZWNvbnN1bWluZyB0byBpbXBsZW1lbnQKPiBmcm9tIHNjcmF0Y2guCj4gCj4gcGF1bCwgY29udGlu
69 dWluZyB0aGUgKGJyaWVmKSBkaXNjdXNzaW9uIHNvbWV3aGF0LCBpbiBhIHJlbGF0ZWQgd2F5LCBp
70 Cj4gcmVhbGx5IHdhbnRlZCB0byBtYWtlIHlvdSBhd2FyZSBvZiB0aGUgaW1wbGljYXRpb25zIGZv
71 ciBtaWNyb3dhdHQgb2YgdHJ5aW5nCj4gdG8gbWFrZSBpdCBtdWx0aXN0YWdlIHBpcGVsaW5lZC4K
72 PiAKPiBpZiB5b3UgbG9vayB1cCBqb24gZGF3c29uJ3MgSUVFNzU0IEZQVSBjb2RlIHlvdSBmaW5k
73 IHRoYXQgaXQgaXMgZW50aXJlbHkKPiBGU00gYmFzZWQuICBhcyBzdWNoIGl0IGlzIHN1cGVyYiBm
74 b3IgZml0dGluZyBpbiBzbWFsbCBGUEdBcy4KPiAKPiBvdmVyIGEgNiBtb250aCBwZXJpb2QgaSBt
75 b3JwaGVkIGl0IGZyb20gaXRzIGh1bWJsZSBiZWdpbm5pbmdzIGludG8gYW4KPiBhYnNvbHV0ZSBi
76 ZWFzdCBvZiBhIGZsZXhpYmx5IHJlcHJvZ3JhbW1hYmxlIE9iamVjdCBPcmllbnRhdGVkIElFRUU3
77 NTQgRlAKPiB0b29sa2l0LCBjYXBhYmxlIG9mIDE2LCAzMiBvciA2NCBiaXQgKGFuZCBhbnl0aGlu
78 ZyBlbHNlIHlvdSBjYXJlIHRvIGFkZCksCj4gYXJiaXRyYXJ5IHBpcGVsaW5lIGRlcHRoICpvciog
79 RlNNIHN0eWxlIGVuZ2luZXMsIFNJTUQgY2FwYWJpbGl0eSwgKmR5bmFtaWMqCj4gcGlwZWxpbmVz
80 LCB0aGUgd29ya3MuICBKYWNvYiBoZWxwZWQgYWRkIGEgZmFudGFzdGljIGh5YnJpZCBmcGRpdiwg
81 c3FydAo+ICphbmQqIHJzcXJ0IGVuZ2luZSBhbGwgaW4gdGhlIHNhbWUgcGlwZWxpbmUuICBpdCdz
82 IG5vdyB3ZWxsIG5vcnRoIG9mIDEwLDAwMAo+IGxpbmVzIG9mIHB5dGhvbiBjb2RlIGFuZCB0YWtl
83 cyBhIHdlZWsgdG8gcnVuIGFsbCB0aGUgdW5pdCB0ZXN0cy4KPiAKPiB3aGF0IGkgbGVhcm5lZCBh
84 bG9uZyB0aGUgd2F5IHdhcyB0aGF0IHRoZSBGU00gYmFzZWQgc3lzdGVtcyB2cyBwaXBlbGluZQo+
85 IHN5c3RlbXMgdHJhZGUgbG93IGdhdGUgY291bnQgYW5kIHNpbXBsaWNpdHkgYW5kIGNvZGUgcmVh
86 ZGFiaWxpdHkgZm9yIHNwZWVkLAo+IG11Y2ggaGlnaGVyIGdhdGUgY291bnQsIGFuZCwgdW5sZXNz
87 ICphbmQgZXZlbiogaWYgT08gZGVzaWduIGlzIHVzZWQsIHR1cm4KPiBpbnRvIHRoZSBtb3N0IGF3
88 ZnVsIHVucmVhZGFibGUgdW5tYWludGFpbmFibGUgdG90YWwgdHJhc2guCj4gCj4gcm9ja2V0Y2hp
89 cCB1bmZvcnR1bmF0ZWx5LCBmb3IgYWxsIHRoZSBjb21wYWN0bmVzcyBhbmQgb3RoZXIgYWR2YW50
90 YWdlcywgaXMKPiBwYXJ0aWN1bGFybHkgYmFkLCAqYmVjYXVzZSogb2YgdGhlIE9PIChhbmQgdG90
91 YWwgbGFjayBvZiBjb2RlIGNvbW1lbnRzKS4KPiB0aGUgT08gaGllcmFyY2h5IG1ha2VzIGl0IGZs
92 YXQtb3V0IGltcG9zc2libGUgZm9yIGFueW9uZSBidXQgaXRzIG9yaWdpbmFsCj4gY3JlYXRvcnMg
93 dG8gd29yayB3aXRoLiAgKHNvbWV0aGluZyB0byBhbGVydCB0aGUgY2hpc2Vsd2F0dCB0ZWFtIG9u
94 LCB0aGVyZSwKPiBhbHRob3VnaCBmcm9tIHdoYXQgaSBoYXZlIHNlZW4sIHRoZSBjb2RlIGNvbW1l
95 bnRzIGluIGNoaXNlbHdhdHQgYXJlIGRhbW4KPiBnb29kKS4KPiAKPiBhbmQgeWV0IGlmIHlvdSBl
96 dmVuIHJlbW90ZWx5IHRyeSBhbnl0aGluZyBsaWtlIG1vZGVybiBPTyBwcm9ncmFtbWluZyBkZXNp
97 Z24KPiBzdHJhdGVnaWVzIGFuZCB0ZWN1bmlxdWVzIHdpdGggdGhlc2UgMTk4MHMgZXJhIGxhbmd1
98 YWdlcyAoSERMLCBWZXJpbG9nKSB5b3UKPiBpbW1lZGlhdGVseSBhbHNvIHJ1biBpbnRvIHNlcmlv
99 dXMgZGlmZmljdWx0aWVzIG9mIGEgZGlmZmVyZW50IGtpbmQsIHdoaWNoIGkKPiB3b24ndCBnbyBp
100 bnRvLCByaWdodCBub3cuCj4gCj4gdGhlIGJvdHRvbSBsaW5lIGlzOiBhZGRpbmcgZXh0cmEgcGlw
101 ZWxpbmUgc3RhZ2VzIHRvIG1pY3Jvd2F0dCBub3Qgb25seQo+IGNvbXBsaWNhdGVzIGl0IGFuZCBt
102 YWtlcyBpdCB1bnJlYWRhYmxlIGFuZCB1bm1haW50YWluYWJsZSwgaXQgaW5jcmVhc2VzIHRoZQo+
103 IG51bWJlciBvZiBMVVRzIHJlcXVpcmVkIHRvIHRoZSBwb250IHdoZXJlIHlvdSB3aWxsIG5lZWQg
104 dG8gY2FsbCBpdCAid2F0dCIKPiBvciAibWVnYXdhdHQiCj4gCj4gOikKPiAKPiByZWdhcmRpbmcg
105 ZXhjZXB0aW9ucyBhbmQgdHJhcHM6IGZvciBpbi1vcmRlciBwaXBlbGluZWQgc3lzdGVtcyB0aGVz
106 ZSBhcmUgYQo+IGRhbW4gbnVpc2FuY2UuCj4gCj4gZXZlcnkgc29sdXRpb24gdG8gZXZlcnkgcHJv
107 YmxlbSBpbiBhbiBpbm9yZGVyIHN5c3RlbSBpczoKPiAKPiBzdGFsbC4KPiAKPiB0aGF0J3MgaXQu
108 Cj4gCj4gYWZ0ZXIgbGVhcm5pbmcgYWJvdXQgdGhlIENEQzY2MDAsIHdoaWNoIGlzIGEgZGVlcGx5
109 IGltcHJlc3NpdmUgZGVzaWduIHRoYXQKPiB0YWtlcyBsaXRlcmFsbHkgbW9udGhzIHRvIGJlZ2lu
110 IHRvIGNvbXByZWhlbmQsIGkgZGlzbGlrZSBpbm9yZGVyIHN5c3RlbXMKPiBpbnRlbnNlbHkuCj4g
111 Cj4gdGhlIGtleSB0aGluZyB0aGF0IGkgbGVhcm5lZCBmcm9tIE1pdGNoIEFsc3VwIGFib3V0IGhv
112 dyB0byBoYW5kbGUKPiBleGNlcHRpb25zIGlzOiB5b3UgKm11c3QqIHByZXZlbnQgdGhlIEFMVSAo
113 b3Igd2hhdGV2ZXIpIGZyb20gImNvbW1pdHRpbmciCj4gaXRzIHJlc3VsdCB1bnRpbCBpdCBpcyBH
114 VUFSQU5URUVEIGtub3duIHRoYXQgdGhlIGV4Y2VwdGlvbiB3aWxsIG5vdCBvY2N1ci4KPiAKPiB0
115 aGF0IGlzIHRoZSBhYnNvbHV0ZSBjb3JlIGNvbmNlcHQgb2YgZXhjZXB0aW9ucyAoYWthIGludGVy
116 cnVwdHMpLCB5b3UgTVVTVAo+IGFjaGlldmUsIGluIHNvbWUgZnVuZGFtZW50YWwgd2F5Lgo+IAo+
117 IHRoaXMgaXMgZG9uZSBpbiBhbiBPb08gZGVzaWduIGJ5IG1hcmtpbmcgYW5kIHRyYWNraW5nIHRo
118 ZSBvcGVyYXRpb24gLSBhbGwKPiB0aGUgd2F5IGRvd24gdGhlIHBpcGVsaW5lIC0gd2l0aCAiY2Fu
119 Y2VsbGF0aW9uIG1hc2tzIiAoYSBnbG9iYWwgSUQgd2hpY2gKPiB0cmF2ZWxzICp3aXRoKiB0aGUg
120 cGFydGlhbCByZXN1bHQgZGF0YSwgZG93biBhIGdpdmVuIHBpcGVsaW5lKQo+IAo+IHRoaXMgaXMg
121 a25vd24gYXMgInNoYWRvd2luZyIsIGFuZCBpdCBpcyBub3Qgb25seSB0aGUgb3BlcmF0aW9uIHRo
122 YXQgKm1pZ2h0Kgo+IGJlIGNhbmNlbGxlZCB0aGF0IGhhcyB0byBiZSAic2hhZG93bWFya2VkIiwg
123 aXQgaXMgKmFsbCBmb2xsb3dpbmcKPiBpbnN0cnVjdGlvbnMgYXMgd2VsbCogKGhlbmNlIHRoZSB0
124 ZXJtICJzaGFkb3ciKS4KPiAKPiBzaGFkb3dlZCBvcGVyYXRpb25zIGFyZSByZWFsIGVhc3kgdG8g
125 Y2FuY2VsOiBwdWxsIHRoZSAiY2FuY2VsIiB3aXJlIHVwLCBhbmUKPiBldmVyeXRoaW5nIHdpdGgg
126 dGhlIHJlcXVpc2l0ZSBtYXNrIElEIGdldHMgYSBnbG9iYWwgc2lnbmFsICJ3aG9vcHMgd2Ugbm8K
127 PiBsb25nZXIgbmVlZCB0byBwYXNzIHRoaXMgZG93biB0aGUgcGlwZWxpbmUsIGRyb3AgaXQgb24g
128 dGhlIGZsb29yIi4KPiAKPiB3aXRoIGFsbCAiZnV0dXJlIiBwYXJ0aWFsIChhbmQgY29tcGxldGVk
129 IGJ1dCBub25jb21taXR0ZWQpIHJlc3VsdHMgbm93Cj4ga2lsbGVkLCB0aGUgUEMgY2FuIHNhZmVs
130 eSBiZSByZWRpcmVjdGVkIGF0IHRoZSBleGNlcHRpb24sIGludGVycnVwdCwgb3IgdGhlCj4gYWx0
131 ZXJuYXRpdmUgYnJhbmNoLCBvciB3aGF0ZXZlcjogdGhlc2UgYWxsIHVzZSAqZXhhY3RseSogdGhl
132 IHNhbWUgc2hhZG93aW5nCj4gdGVjaG5pcXVlLgo+IAo+IHlvdSBzdGFydCB0byBzZWUgd2h5IHRo
133 ZSBtYWpvcml0eSBvZiBpbm9yZGVyIHN5c3RlbXMgdXNlICJzdGFsbCBzdGFsbCBzdGFsbAo+IHN0
134 YWxsIHN0YWxsIiBhcyB0aGUgYmUtYWxsIGFuZCBlbmQtYWxsICJvbm5uZSBhbmQgb25seSB0cnVl
135 IHNvbHV0aW9uIiwKPiBoZXJlPyBbIGhhbGxlbHVqYWgsIHByYWlzZSB0aGUgc3RhbGwuLi4gXSA6
136 KQo+IAo+IGJhc2ljYWxseSBpZiBpIGhhdmUgZGlzY291cmFnZWQgeW91IGZyb20gcHVyc3Vpbmcg
137 dGhlIHBhdGggb2YgYWRkaW5nCj4gbXVsdGlwbGUgcGlwZWxpbmUgc3RhZ2VzIHRvIG1pY3Jvd2F0
138 dCwgdGhlbiBpIGhhdmUgc3VjY2VlZGVkIGluIHdoYXQgaSBzZXQKPiBvdXQgdG8gZXhwbGFpbi4g
139 IGJlY2F1c2UgbWljcm93YXR0J3MgdmFsdWUgaXMgbm90IGp1c3QgaXRzIHNtYWxsIGNvZGUgc2l6
140 ZSwKPiBpdHMgcmVhZGFiaWxpdHkgYW5kIGNvbXBhY3RuZXNzIG1ha2VzIGl0IGFuIGlkZWFsIHJl
141 ZmVyZW5jZSBpbXBsZW1lbnRhdGlvbgo+ICphbmQqLCBmdXJ0aGVybW9yZSwgaXRzIGNvbXBsZXRl
142 IGxhY2sgb2Ygb3B0aW1pc2F0aW9uIG5vcm1hbGx5IHNlZW4gaW4KPiAic2ltcGxlIiBwaXBlbGlu
143 ZWQgZGVzaWducyBhY3R1YWxseSBzYXZlcyBvbiBnYXRlcyAvIEZQR0EgcmVzb3VyY2VzLgo+IAo+
144 IHRoZSBtb21lbnQgeW91IGFkZCBleHRyYSBzdGFnZXMsIGFsbCB0aGF0IGdvZXMgb3V0IHRoZSB3
145 aW5kb3cuCj4gCj4gYW4gYXNzb2NpYXRlIGFuZCBjb250cmlidXRvciBvbiBvdXIgbGlzdCwgU2Ft
146 dWVsIEZhbHZvLCB0YXVnaHQgbWUgc29tZQo+IGF3ZXNvbWUgdHJpY2tzLgo+IAo+IGhpcyBDUFVz
147 IGFyZSBpbmNyZWRpYmxlLCBkZXNpZ25lZCBpbiB0aGUgbW9zdCBhbWF6aW5nIGVsZWdhbnQgYW5k
148 IHVudXN1YWwKPiB3YXlzLiAgaGUgd3JvdGUgaGlzIG93biBQTEEgc3R5bGUgImxhbmd1YWdlIiAo
149 d3JpdHRlbiBpbiBsaXNwKSB3aGljaCB0YWtlcwo+IHNwZWNpZmljYXRpb25zIChpbiBsaXNwIGxp
150 c3RzKSBmb3IgZnVuY3Rpb25hbGl0eSBhbmQgKmdlbmVyYXRlcyogVkhETAo+IGNvbWJpbmF0b3Jp
151 YWwgYmxvY2tzLgo+IAo+IGhlIHVzZWQgdGhpcyB0b29sIHRvIGNyZWF0ZSBhIDY1MDItbGlrZSBw
152 cm9jZXNzb3Igd2l0aCB2aXJ0dWFsbHkgbm8KPiBtYW51YWxseSB3cml0dGVuIGdsdWUgbG9naWMg
153 KGV2ZW4gdGhlIGRlY29kZXIgd2FzIHdyaXR0ZW4gaW4gdGhpcyBzaW1wbGUKPiBzcGVjaWZpY2F0
154 aW9uKSwgdGhhdCBlYXNpbHkgZml0cyBpbnRvIGFuIHVsdHJhIGxvdyBjb3N0IElDRTQwIHlldCBo
155 YXMKPiBtYXNzaXZlIGFtb3VudHMgb2Ygcm9vbSB0byBzcGFyZSBmb3IgcGVyaXBoZXJhbHMuCj4g
156 Cj4gdGhlIGtleSB0byB0aGUgc3VjY2VzcyBvZiB0aGlzIGFwcHJvYWNoIHdhcyB0aGUgaGVhdnkg
157 dHJhZGVvZmYgb2YgKm5vdCoKPiB1c2luZyBwaXBlbGluZSBzdGFnZXMsIGJ1dCBlZmZlY3RpdmVs
158 eSBkb2luZyBhIEZTTSBzdHlsZSBlbnRpcmUgZXhlY3V0aW9uCj4gZGVzaWduLiAgYWN0dWFsbHkg
159 aXQgd2Fzbid0IGV2ZW4gYSBGU00sIGkgdGhpbmsgaGUgdXNlZCB0aGUgdGVybSAiUExBIi4gIGkK
160 PiBhbSBnYXJibGluZyBpdCwgaXQgd2FzIGEgeWVhciBhZ28sIHRoZXJlIGFyZSBzb21lIGtleXdv
161 cmRzIGkgaGF2ZSBtaXNzZWQKPiBvdXQsIHlvdSBnZXQgdGhlIGlkZWEgdGhvdWdoLgo+IAo+IHdo
162 YXQgaSBhbSByZWFsbHkgc2F5aW5nIGlzOiBwbGVhc2UgZG8gc2VyaW91c2x5IGNvbnNpZGVyIHNp
163 bXBseSBzdGFsbGluZyBvbgo+IGFueXRoaW5nIHRoYXQgY291bGQgaGF2ZSBhbiBleGNlcHRpb24g
164 dGhyb3duLiAgYXJyYW5nZSBmb3IgdGhlIGVudGlyZQo+IHBpcGVsaW5lIHRvIHNpbXBseSBncmlu
165 ZCB0byBhIGhhbHQsICpnbG9iYWxseSogZnJlZXppbmcgcmlnaHQgdGhlIHdheSBiYWNrCj4gdG8g
166 dGhlIGRlY29kZSBwaGFzZSwgb25seSBwcm9jZWVkaW5nIHdoZW4gaXQgaXMgZ3VhcmFudGVlZCBr
167 bm93biwgMTAwJSwKPiB0aGF0IHRoZSBleGNlcHRpb24gd2lsbCBOT1Qgb2NjdXIuCj4gCj4gdGhp
168 cyBpcywgYmVsaWV2ZSBpdCBvciBub3QsIGFuIGluZHVzdHJ5LXdpZGUgImFjY2VwdGFibGUiIHRl
169 Y2huaXF1ZSBpbiBBTEwKPiBpbi1vcmRlciBkZXNpZ25zLgo+IAo+IGxvb2sgdXAgIm1pbmVydmEg
170 cnYzMiIgb24gZ2l0aHViIChpdCBpcyB2ZXJ5IHJlYWRhYmxlIGNvZGUpIGFuZCBncmVwIGl0cwo+
171 IHNvdXJjZSBmb3IgdGhlIHdvcmQgInN0YWxsIi4KPiAKPiB5b3Ugd2lsbCBmaW5kIGEgKmNvbWJp
172 bmF0b3JpYWwqIGdsb2JhbCBzaWduYWwgcHJvcGFnYXRlcyB0aHJvdWdob3V0ICpldmVyeSoKPiBw
173 aXBlbGluZSBzdGFnZSwgaW1wbGVtZW50aW5nIHRoaXMgInN0b3AgdGhlIHdvcmxkIGkgd2FudCB0
174 byBnZXQgb2ZmISIKPiBpbmR1c3RyeS13aWRlICJzb2x1dGlvbiIuCj4gCj4gbGl0ZXJhbGx5IGV2
175 ZXJ5IGVmZm9ydCB0aGF0IGkgaGF2ZSBzZWVuIHRoYXQgYXR0ZW1wdHMgKm5vdCogdG8gZm9sbG93
176 IHRoYXQKPiAic29sdXRpb24iIGZvciBpbm9yZGVyIGRlc2lnbnMgaW52b2x2ZXMgdGhlIHdvcmQg
177 ImJ1dCIgYW5kIGl0IGdvZXMgZG93bmhpbGwKPiBmcm9tIHRoZXJlLgo+IAo+IHN1cnByaXNpbmcs
178 IGVobj8gOikKClRoYW5rcyBmb3IgdGhlIGNvbW1lbnRzIGFuZCB0aGUgcG9pbnRlcnMuICBXZSBk
179 byBhbHJlYWR5IGhhdmUgc3RhbGwKc2lnbmFscyBpbiBtaWNyb3dhdHQsIGJ1dCB0aGUgd2F5IGl0
180 IHdvcmtzIGlzIHByZXR0eSBzaW1wbGUgc28gZmFyLgpUaGUgcGlwZWxpbmVkLCBpbi1vcmRlciBl
181 eGVjdXRpb24gc3RydWN0dXJlIGJhc2ljYWxseSBjb21lcyBmcm9tCkFudG9uJ3MgaW5pdGlhbCB3
182 b3JrLCBzbyBJIGRvbid0IHRoaW5rIHdlJ2xsIGJlIHRocm93aW5nIHRoYXQgb3V0LgpXZSB3aWxs
183 IGNvbnRpbnVlIHRvIG1ha2UgcmVhZGFiaWxpdHkgYW5kIHVuZGVyc3RhbmRhYmlsaXR5IGEgZm9j
184 dXMsCmFuZCBJIGZvciBvbmUgd2lsbCB0cnkgdG8gYWRkIG1vcmUgY29kZSBjb21tZW50cyBhcyBJ
185 IHdvcmsgb24gaXQgdG8KbWFrZSBpdCBlYXNpZXIgdG8gZm9sbG93LgoKVGhhbmtzLApQYXVsLgoK
186 X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlicmUtcmlz
187 Y3YtZGV2IG1haWxpbmcgbGlzdApsaWJyZS1yaXNjdi1kZXZAbGlzdHMubGlicmUtcmlzY3Yub3Jn
188 Cmh0dHA6Ly9saXN0cy5saWJyZS1yaXNjdi5vcmcvbWFpbG1hbi9saXN0aW5mby9saWJyZS1yaXNj
189 di1kZXYK
190