[libre-riscv-dev] Some recent documenting of work performed for tape-out
[libre-riscv-dev.git] / f2 / 249f3723673a14c480fff93e0f47aa31061c4d
1 Return-path: <libre-riscv-dev-bounces@lists.libre-riscv.org>
2 Envelope-to: publicinbox@libre-riscv.org
3 Delivery-date: Sat, 16 May 2020 01:41:32 +0100
4 Received: from localhost ([::1] helo=libre-riscv.org)
5 by libre-soc.org with esmtp (Exim 4.89)
6 (envelope-from <libre-riscv-dev-bounces@lists.libre-riscv.org>)
7 id 1jZktP-0005Q8-Dw; Sat, 16 May 2020 01:41:31 +0100
8 Received: from lkcl.net ([217.147.94.29])
9 by libre-soc.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
10 (Exim 4.89) (envelope-from <lkcl@lkcl.net>) id 1jZktN-0005Q2-RA
11 for libre-riscv-dev@lists.libre-riscv.org; Sat, 16 May 2020 01:41:29 +0100
12 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lkcl.net;
13 s=201607131;
14 h=Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version;
15 bh=7VTwKY1umT1ck0iSJBgu+r1LgeHfdr6vUyry7id2454=;
16 b=eoeQp6aO3UesadiHhECMRInstAzoXTFpCIaO+eQBTBo0X9oV2ZQ/YPeqDM8XO1NbRknYZdEDKu8SrnzLgOFJEEUm0QA4V903jiiaa/XsaHKCbh5hmeHMJb4fOZyiPh2Zz8+26RLC/L8h932oJGHD2HbvnNu3vyY/vQ2XdZhJOFI=;
17 Received: from mail-lf1-f52.google.com ([209.85.167.52])
18 by lkcl.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
19 (Exim 4.84_2) (envelope-from <lkcl@lkcl.net>) id 1jZktN-0005ZO-E6
20 for libre-riscv-dev@lists.libre-riscv.org; Sat, 16 May 2020 00:41:29 +0000
21 Received: by mail-lf1-f52.google.com with SMTP id 82so3310286lfh.2
22 for <libre-riscv-dev@lists.libre-riscv.org>;
23 Fri, 15 May 2020 17:41:14 -0700 (PDT)
24 X-Gm-Message-State: AOAM532ncqZkE7AcUsI23GQ/tPXZ49Qx2wTekcT3XFlxIOXjYYIjkqZh
25 GlTJxTuEK6xKwsnTU1CxkgPXsixlZyMat8rIJK4=
26 X-Google-Smtp-Source: ABdhPJyfF2xFkSB4qz39bLMishJdU45e4qQj+j7gD5ia8apd7u9ilVrSbSwgpMjRk2fWqHpRR9TV+nZNhdXHwSnUIXc=
27 X-Received: by 2002:a05:6512:3082:: with SMTP id
28 z2mr4085813lfd.32.1589589668349;
29 Fri, 15 May 2020 17:41:08 -0700 (PDT)
30 MIME-Version: 1.0
31 References: <CAEoCstQz36UuDJ+ZUgLRJNeQkA=pTfYuzCr+XgF-FJY9+yJsvA@mail.gmail.com>
32 <747F8870-06C6-46A0-AFD9-D55289D4C41A@gatech.edu>
33 <CAEoCstRUXkB_LxXXubx4A0dhLGvFqq6EPL+GzukDQORpHopaiw@mail.gmail.com>
34 <4BDA96A5-9063-42A6-9548-CAE3CBEBEBAC@gatech.edu>
35 <CAPweEDyZQEBsh8uZ4VkzzALPcoiTgs0AvTmTwS6B0Dc+jy+mfw@mail.gmail.com>
36 <CAEoCstTERH=Z84je148ffL7_yiBYFj_Zet2VfOzkbe86MVmyQQ@mail.gmail.com>
37 <CAPweEDyHrrQqPaNy7OqCsPUgR0yrELuRENqZTw_qr-tBVHVg+g@mail.gmail.com>
38 <CAEoCstT7yZObkbS9GhWDRE7rm3p=Y5CzAJgYYj_3THCuRy=MCQ@mail.gmail.com>
39 <CAPweEDzObJ1RXD51Y1D1WDJqsmsiNJKL1j-jDQqy0OwKLs6fdQ@mail.gmail.com>
40 <CAEoCstS+xz_K6AYNkq-nXB=e7B4FqdC5nzdOXRaNyiqNOuCC7w@mail.gmail.com>
41 In-Reply-To: <CAEoCstS+xz_K6AYNkq-nXB=e7B4FqdC5nzdOXRaNyiqNOuCC7w@mail.gmail.com>
42 From: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
43 Date: Sat, 16 May 2020 01:40:56 +0100
44 X-Gmail-Original-Message-ID: <CAPweEDxb77LOOKr=fcWFDhG80ML4MVuBydJWKycZ_2RrDRvUXQ@mail.gmail.com>
45 Message-ID: <CAPweEDxb77LOOKr=fcWFDhG80ML4MVuBydJWKycZ_2RrDRvUXQ@mail.gmail.com>
46 To: Libre-RISCV General Development <libre-riscv-dev@lists.libre-riscv.org>
47 Subject: Re: [libre-riscv-dev] Introduction and Questions
48 X-BeenThere: libre-riscv-dev@lists.libre-riscv.org
49 X-Mailman-Version: 2.1.23
50 Precedence: list
51 List-Id: Libre-RISCV General Development
52 <libre-riscv-dev.lists.libre-riscv.org>
53 List-Unsubscribe: <http://lists.libre-riscv.org/mailman/options/libre-riscv-dev>,
54 <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=unsubscribe>
55 List-Archive: <http://lists.libre-riscv.org/pipermail/libre-riscv-dev/>
56 List-Post: <mailto:libre-riscv-dev@lists.libre-riscv.org>
57 List-Help: <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=help>
58 List-Subscribe: <http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev>,
59 <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=subscribe>
60 Reply-To: Libre-RISCV General Development
61 <libre-riscv-dev@lists.libre-riscv.org>
62 Content-Type: text/plain; charset="utf-8"
63 Content-Transfer-Encoding: base64
64 Errors-To: libre-riscv-dev-bounces@lists.libre-riscv.org
65 Sender: "libre-riscv-dev" <libre-riscv-dev-bounces@lists.libre-riscv.org>
66
67 T24gU2F0LCBNYXkgMTYsIDIwMjAgYXQgMTI6NDkgQU0gSmVyZW15IFNpbmdoZXIgPHRoZWpzaW5n
68 aGVyQGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiA+IG5vdCBtaWNyby1vcHMsICphY3R1YWwqIHNjYWxh
69 ciBhZGQgb3BzLgo+Cj4gSSB0aGluayB3ZSBqdXN0IGhhdmUgZGlmZmVyZW50IHRlcm1pbm9sb2d5
70 IGZvciB0aGlzLiBUbyBtZSwgYSBtaWNyby1vcAo+IGlzIHRoZSBzbWFsbGVzdCB1bml0IG9mIGNv
71 bXB1dGUgdGhhdCBpcyBwYXNzZWQgdGhyb3VnaCBhIHBpcGVsaW5lLCBhbmQKPiBhIG1pY3JvLW9w
72 IGNvdWxkIGluZGljYXRlIHRoYXQgdGhlIGNvcmUgc2hvdWxkIHBlcmZvcm0gYSBzY2FsYXIgYWRk
73 Cj4gb3AuIEknbSBoYXBweSB3aXRoIHlvdXIgZXhwbGFuYXRpb24sIHRob3VnaCwgdGhhbmsgeW91
74 LgoKOikgIGFsbG93IG1lIHRvIGV4cGxhaW4gZm9yIHRoZSBiZW5lZml0IG9mIGZ1dHVyZSByZWFk
75 ZXJzLiAgdGhlc2UgZGlzY3Vzc2lvbnMKYXJlIGFyY2hpdmVkIGFuZCB0aHVzIHRoZSBsaXN0IGlz
76 IGFuIGluZm9ybWF0aW9uYWwgcmVzb3VyY2UgZm9yIG90aGVycy4KCndlIGRvIGludGVuZCB0byBk
77 byBtaWNyby1vcHMuICB0aGlzIGJlY2F1c2Ugd2Ugd2lsbCBiZSBzaGFyaW5nIHRoZSBNVUwgYW5k
78 CkRJViAqaW50ZWdlciogcGlwZWxpbmUocykgd2l0aCB0aGUgRlAgTVVMIGFuZCBGUCBESVYgcGlw
79 ZWxpbmVzLgoKYXBhcnQgZnJvbSB0aGF0LCB0aGVyZSBpcyBhIGRpcmVjdCBhbmQgb25lLXRvLW9u
80 ZSBkaXJlY3QgY29ycmVzcG9uZGFuY2UKYmV0d2VlbiAiUE9XRVI5IGluc3RydWN0aW9uIiBhbmQg
81 d2hhdCBpcyB0ZXJtZWQgIm1pY3JvLW9wcyIuCgp0aGF0IHNhaWQsIG1pY3Jvd2F0dCBkaWQgc29t
82 ZSByZWFsbHkgY2xldmVyIG11bmdpbmcsIHdoaWNoIHdlIGZvbGxvd2VkIGV4YWN0bHkuCnNvIGkg
83 c2FhYXkgImRpcmVjdCIsIGJ1dC4uLiB0ZWNobmljYWxseS4uLiBub3cgdGhhdCBpIHRoaW5rIGFi
84 b3V0IGl0LAp5b3UncmUgY29ycmVjdC4KCmFuIGV4YW1wbGU6CgpodHRwczovL2dpdC5saWJyZS1z
85 b2Mub3JnLz9wPXNvYy5naXQ7YT1ibG9iO2Y9c3JjL3NvYy9sb2dpY2FsL21haW5fc3RhZ2UucHk7
86 aGI9SEVBRAoKbm90ZSB0aGVyZSwgT1BfWE9SLCBPUF9PUiwgT1BfQU5ELCB0aGVyZSdzIG5vICJP
87 UF9OT1IiIG9yICJPUF9OQU5EIj8KdGhpcyBpcyBiZWNhdXNlIHRoZSB0YWJsZXMgKHNlZSBodHRw
88 czovL2xpYnJlLXNvYy5vcmcvb3BlbnBvd2VyL2lzYXRhYmxlcy8gd2hpY2gKd2UgZXh0cmFjdGVk
89 IGZyb20gbWljcm93YXR0IGRlY29kZTEudmhkbCkgaGF2ZSAqcHJlLWFuYWx5c2VkKiB0aGUgb3Bl
90 cmF0aW9ucwphbmQgbWFwcGVkIHRoZW0gZG93biB0bzoKCiogYSBwcmUtcHJvY2Vzc2luZyBzdGFn
91 ZSAoYml0LWludmVyc2lvbiBvZiBSQSwgc2VsZWN0aW9uIG9mIENhcnJ5PTEvMC9DYXJyeV9SZWcp
92 CiogdGhlIG1haW4gcHJvY2Vzc2luZyBzdGFnZQoqIGEgcG9zdC1wcm9jZXNzaW5nIHN0YWdlIChi
93 aXQtaW52ZXJzaW9uIG9mIG91dHB1dCwgc2V0dGluZyBvZgpDb25kaXRpb24gUmVnaXN0ZXIgQ1Iw
94 KQoKd2UgKmJlbGlldmUqIHRoaXMgaXMgYSByZWZsZWN0aW9uIG9mIHRoZSBpbnRlbnQgb2YgdGhl
95 IG9yaWdpbmFsCmRlc2lnbmVycyBvZiBQT1dFUiwKYW5kIHRoZSBwZW9wbGUgd2hvIGRlc2lnbmVk
96 IG1pY3Jvd2F0dCBoYXZlIGJlZW4gdHJhY2tpbmcgUE9XRVIgZm9yIDIwIHllYXJzLgptYW55IG9m
97 IHRoZW0gd29yayBmb3IgSUJNIFJlc2VhcmNoLgoKc28gdGhlc2UgYXJlIGtpaWluZGEgbWljcm8t
98 b3AnZC4uLiBleGNlcHQgYWN0dWFsbHkgd2hhdCB3ZSBkaWQgd2FzOiBzcGxpdCB0aG9zZQozIHBo
99 YXNlcyBpbnRvIDMgc2VwYXJhdGUgY29tYmluYXRvcmlhbCBibG9ja3Mgd2hpY2ggYXJlIHJlLXVz
100 ZWQgaW4gbXVsdGlwbGUKcGlwZWxpbmUgc3RhZ2VzLgoKPiA+IGl0J3MgYmFzaWNhbGx5IGMgbWFj
101 cm9zLi4uIGFwcGxpZWQgdG8gaGFyZHdhcmUuCj4KPiBHb29kIGFuYWxvZ3ksIHRoYW5rcy4gVGhl
102 IG9uZSBjb25jZXJuIEkgaGF2ZSBpcyB0aGF0IHRoaXMgInZlY3RvciBvcAo+IGZpc3Npb24iIGFw
103 cHJvYWNoIHdpbGwgcHVtcCB0aGUgcGlwZWxpbmUgd2l0aCB0b25zIGFuZCB0b25zIG9mCj4gc2Nh
104 bGFyLW9wcywKCmkga25vdywgcmlnaHQ/IDopCgo+IHdoaWxlIGEgdHJhZGl0aW9uYWwgdmVjdG9y
105 IGV4ZWN1dGlvbiBlbmdpbmUgd291bGQgbm90Cj4gZGVjb25zdHJ1Y3QgdGhlIHZlY3RvciBpbnN0
106 cnVjdGlvbiBpbnRvIG1hbnkgc2NhbGFyIGluc3RydWN0aW9ucy4KCnllcy4gIHRoZSBvbmx5IHJl
107 YWwgcGxhY2Ugd2hlcmUgdGhlcmUgaXMgY2F1c2UgZm9yIGNvbmNlcm4gaXMgb24gbG9zaW5nIHRo
108 ZQplbGVtZW50LXN0cmlkZSBpbmZvcm1hdGlvbiBmcm9tIHNlcXVlbnRpYWwgTEQvU1Qgb3BlcmF0
109 aW9uczogc2VlIGJlbG93LgoKPiBEb2VzIHRoZSB2ZWN0b3IgcGlwZWxpbmUgdXNlIEFMTCB0aGUg
110 c2FtZSBleGVjdXRpb24gcmVzb3VyY2VzIGFzIHRoZQo+IHNjYWxhciBwaXBlbGluZT8gVGhlIHNh
111 bWUgaXNzdWUgcXVldWVzLCBmdW5jdGlvbmFsIHVuaXRzLCByZWFkIHBvcnRzLAo+IHdyaXRlYmFj
112 ayBwYXRocz8KCnl5eXVwIDopCgp0aGUgb25seSAicHJvYmxlbSIgY29tZXMgaW4gdGhlIGFkZHJl
113 c3MtbWF0Y2hpbmcgd2hlbiBsb29raW5nIHRvCm1lcmdlIGEgYmF0Y2ggb2YgTERzIChvciBTVHMp
114 IGludG8gYSBzaW5nbGUgTDEgY2FjaGUtbGluZSByZWFkLgp0aGUgYWRkcmVzcy1tYXRjaGluZyBp
115 ZiB5b3UgbG9zZSB0aGUgZmFjdCB0aGF0IHRoZSBhZGRyZXNzZXMgd2VyZQpvcmlnaW5hbGx5IGVs
116 ZW1lbnQtc3RyaWRlZCBhbmQgdGh1cyBzZXF1ZW50aWFsLCB5b3UgZ2V0IGhpdCBieSBhIG1hc3Np
117 dmUKcG93ZXIgc3VyZ2Ugb2Ygb3ZlciAxMDAwIFhPUiBnYXRlcyB0byBnZXQgdGhhdCBpbmZvcm1h
118 dGlvbiBiYWNrLAppZiB5b3UgaGF2ZSA4IExEL1NUIENvbXBVbml0cy4KCnRoZXJlZm9yZSB0aGUg
119 aW50ZW50aW9uIGlzIHRvICJtYXJrIiBhZGRyZXNzZXMgYXMgYmVpbmcgc2VxdWVudGlhbCwgaWYK
120 dGhleSB3ZXJlIGF1dG8tZ2VuZXJhdGVkIGJ5IGFuIGVsZW1lbnQtc3RyaWRlZCBWZWN0b3ItTEQv
121 U1QsIGFuZApjb25zZXF1ZW50bHksIHZlcnkgZmV3IGJpdHMgbmVlZCB0byBiZSBleGFtaW5lZCB0
122 byBkZXRlY3QgaWYgdGhlCmFkZHJlc3Mgcm9sbHMgb3ZlciB0byBhIG5ldyBMMSBjYWNoZS1saW5l
123 LgoKdGhpcyBpcyAqbGl0ZXJhbGx5KiB0aGUgb25seSAidW5wbGFubmVkIiBkZXNpZ24gb3B0aW1p
124 c2F0aW9uIHRoYXQgbmVlZHMKdG8gYmUgYWRkZWQgYXQgdGhlIGhhcmR3YXJlIGxldmVsLCBqdXN0
125 IGJlY2F1c2Ugb2YgdGhlIGRlY2lzaW9uIHRvCmphbSBhcyBtYW55IHNjYWxhciAoZWxlbWVudCkg
126 b3BlcmF0aW9ucyBpbnRvCgo+ID4gPiBIb3cgZG9lcyB0aGUgc2NvcmVib2FyZCBoYW5kbGUgYSBX
127 QVcgaGF6YXJkLi4uIHR3byBpbnN0cnVjdGlvbnMKPiA+ID4gd3JpdGluZyB0aGUgc2FtZSByZWdp
128 c3Rlcj8gRG9lcyB0aGUgc2Vjb25kIGluc3RydWN0aW9uIHdhaXQgZm9yIHRoZQo+ID4gPiBmaXJz
129 dCB0byBmaW5pc2g/Cj4KPiA+IHNpZ2ggb3ZlciBhIHllYXIgYWdvIGkgdW5kZXJzdG9vZCB0aGlz
130 IGVub3VnaCB0byBiZSBhYmxlIHRvIGFuc3dlci4KPiA+IHdoYXQgd2Ugd2lsbCBoYXZlIHRvIGRv
131 IGlzIHNpbXBseSBpZ25vcmUgdGhlIG9wdGltaXNhdGlvbiBvcHBvcnR1bml0eS4KPgo+IEhtbW0s
132 IGlnbm9yaW5nIFdBVyB3aWxsIHNpZ25pZmljYW50bHkgbGltaXQgdGhlIGFiaWxpdHkgb2YgdGhl
133 IGNvcmUgdG8KPiBleHBsb2l0IElMUCwgd2hpY2ggaXMgb25lIG9mIHRoZSBmdW5kYW1lbnRhbCBy
134 ZWFzb25zIGZvciBnb2luZyBPT08uCgp3ZSBoYXZlIGEgaGVsbCBvZiBhIGxvdCB0byBnZXQgZG9u
135 ZSBpbiBhYm91dCAxNCB3ZWVrcywgd2hpY2ggaXMgdGhlCmN1dG9mZiBwb2ludCBhdCB3aGljaCB3
136 ZSBoYXZlIHRvIGJlZ2luIHRoZSBhY3R1YWwgbGF5b3V0LiAgb3VyIGZpcnN0IHByaW1hcnkKZ29h
137 bCBpcyB0byBtZWV0IHRoZSBPY3QgMjAyMCB0YXBlb3V0IHdpdGggImF0IGxlYXN0IHNvbWV0aGlu
138 ZyBmdW5jdGlvbmFsIi4KCmFmdGVyIHRoYXQsIHdlIGNhbiByZXR1cm4gdG8gZXhhbWluaW5nIG9w
139 dGltaXNhdGlvbnMuICBpIGhhdmUgYSB3YXkgdG8Kc3BvdCBXQVcsIGFzIHdlbGwgYXMgYSBjaGFp
140 bi1lbGltaW5hdGlvbiBvZiBhbGwgb25nb2luZyBjYXNjYWRpbmcKZGVwZW5kZW5jaWVzIC0gaXQg
141 d2lsbCBqdXN0IHRha2UgbWUgYWJvdXQgYW4gZW50aXJlIG1vbnRoIHRvIHJlbWVtYmVyCml0LCBh
142 bmQgMyBtb250aHMgdG8gaW1wbGVtZW50IGl0LCBhbmQgd2UgZG9uJ3QgaGF2ZSB0aW1lIHRvIGRv
143 IHRoYXQuLi4KcmlnaHQgbm93LCB0aGlzIHZlcnkgbWludXRlLgoKZm9yIGEgNTAgbWh6IHByb29m
144 LW9mLWNvbmNlcHQgQVNJQywgaSdtIG5vdCBnb2luZyB0byB3b3JyeSBhYm91dCBpdC4KCj4gPiBu
145 byBpdCBkb2VzIG5vdC4gIHlvdSB3aWxsIG5lZWQgdG8gc3RhdGUgdGhhdCB5b3UgYXJlIGhhcHB5
146 IHRvIGdpdmUKPiA+IGNyZWRpdCBpZiB5b3UgdXNlIHRoZSBib29rIGNoYXB0ZXJzLCBhbmQgdGhh
147 dCBpZiB5b3UgcGFzcyB0aGVtIG9uIHlvdQo+ID4gd2lsbCBsaWtld2lzZSBhc2sgdGhlIHJlY2lw
148 aWVudCB0byBndWFyYW50ZWUgdGhhdCB0aGV5IGFsc28gd2lsbCBnaXZlCj4gPiBjcmVkaXQgdG8g
149 TWl0Y2ggQWxzdXAuCj4KPiBPZiBjb3Vyc2UsIEknbSBnbGFkIHRvIGhhdmUgdGhlIGNvbmRpdGlv
150 bnMgb2YgdXNlIEFPVC4KCmFwcHJlY2lhdGVkLiAgdGhleSBhcmUuLi4gYWJzb2x1dGVseSBmYXNj
151 aW5hdGluZywgYW5kIGV4dHJlbWVseQppbmZvcm1hdGl2ZSwgYXMgd2VsbAphcyByZXByZXNlbnRp
152 bmcgYW4gYWR2YW5jZW1lbnQgYW5kIHNpZ25pZmljYW50IHNpbXBsaWZpY2F0aW9uIG9uIGhvdyB0
153 byBkbwpPb08gbXVsdGktaXNzdWUgZGVzaWducy4KCml0IGRvZXMgaGF2ZSB0byBiZSBzYWlkIHRo
154 YXQgbWFueSBBcmNoaXRlY3RzIF9oYXZlXyByZWRpc2NvdmVyZWQgdGhlIGtub3dsZWRnZQpmcm9t
155 IHRoZSBvcmlnaW5hbCA2NjAwLCBob3dldmVyIHdpdGggdGhlIG1ham9yaXR5IG9mIHB1YmxpY2x5
156 LWF2YWlsYWJsZSBkZXNpZ25zCnVzaW5nICpiaW5hcnkqIFEtVGFibGVzLCBpdCBiZWNvbWVzIGV4
157 dHJlbWVseSBkaWZmaWN1bHQgdG8gZG8gbXVsdGktaXNzdWUgb24gdG9wCm9mIGJpbmFyeS1lbmNv
158 ZGVkIFEtVGFibGVzLgoKb25lIG9mIHRoZSAobWFueSkgaW5zaWdodHMgdGhhdCBNaXRjaCBwcm92
159 aWRlZCB3YXMgdGhhdCBpZiB5b3UgY29udmVydAp0aGUgUS1UYWJsZXMKdG8gYW4gKnVuYXJ5KiBh
160 cnJheSwgeW91IGNhbiBwZXJmb3JtIHRyYW5zaXRpdmUgUmFXL1dhUi9XYVcgY2FzY2FkZSBiaXQt
161 c2V0dGluZwpvZiB0aGUgcmVnaXN0ZXIgdmVjdG9yIG51bWJlcnMgYWNyb3NzIG11bHRpcGxlIGlu
162 c3RydWN0aW9ucyBpbiBhbnkKZ2l2ZW4gbXVsdGktaXNzdWUKYmF0Y2gsIGFuZCB0aHVzLCB3aXRo
163 IHNpbXBsZSBzaW5nbGUtYml0IE9SIGFuZCBBTkQgZ2F0ZXMsIHRocm93Cm11bHRpcGxlIGluc3Ry
164 dWN0aW9ucwppbnRvIHRoZSBEZXBlbmRlbmN5IE1hdHJpY2VzIGFuZCBoYXZlIHRoZWlyIG9yZGVy
165 IHN0aWxsIGJlIGNvcnJlY3RseQpwcmVzZXJ2ZWQgaW4KdGhlIERlcGVuZGVuY3kgTWF0cmljZXMg
166 REFHcy4KCmluIGFkZGl0aW9uIHRvIHRoYXQsIHRoZSBjaGFwdGVycyBkZXNjcmliZSBob3cgdG8g
167 aW1wbGVtZW50IFByZWNpc2UgRXhjZXB0aW9ucwpvbiB0b3Agb2YgYSA2NjAwIGRlc2lnbi4gIGl0
168 J3MgcmVhbCBzaW1wbGUuICBpIGxlYXZlIGl0IHRvIHlvdSB0byByZWFkIHVwIG9uLgoKdGhlIG9u
169 bHkgdGhpbmcgeW91IG5lZWQgdG8gYmUgYXdhcmUgb2YgaXMgdGhhdCB0aGUgZGVzaWduIGNvbmNl
170 cHQgZGVzY3JpYmVkIGluCkNoYXB0ZXIgMTEgaXMgZmF1bHR5ICh0aGUgb25lIHRoYXQgcmVtb3Zl
171 cyB0aGUgRlUtRlUgTWF0cml4IGFuZCByZXBsYWNlcyBpdAp3aXRoIGEgYmlnIE5PUiBnYXRlKS4g
172 IGl0IHVuZm9ydHVuYXRlbHkgdG9vayBNaXRjaCBhbmQgSSBhYm91dCAzLTQgbW9udGhzIG9mCmRp
173 c2N1c3Npb24gKGFuZCBpbXBsZW1lbnRhdGlvbikgdG8gZGV0ZWN0IHRoaXMgZXJyb3IuCgp0aGUg
174 ZGVzY3JpcHRpb24gaW4gY2hhcHRlciAxMCBob3dldmVyIGlzIHBlcmZlY3RseSBmdW5jdGlvbmFs
175 LgoKKmJlIGF3YXJlKiBhbHNvIHRoYXQgdGhlIGdhdGUtbGV2ZWwgZGlhZ3JhbXMgZm9yIHRoZSBG
176 VS1SZWdzLCBGVS1GVQpNYXRyaWNlcywgYW5kIGZvciB0aGUgQ29tcHV0YXRpb24gVW5pdHMgKnJl
177 cXVpcmUqIHRoYXQgY2VydGFpbiBvcGVyYXRpb25zCnRha2UgcGxhY2Ugb24gdGhlIFJJU0lORyBl
178 ZGdlIG9mIENMSywgd2hpbHN0IG90aGVycyB0YWtlIHBsYWNlIG9uIHRoZQpGQUxMSU5HIGVkZ2Ug
179 b2YgQ0xLLgoKaWYgdGhpcyBpcyBub3QgYm9ybmUgaW4gbWluZCwgdGhlIGRpYWdyYW1zIGxvb2sg
180 ZmF1bHR5IGFuZCB3aWxsIG5vdCB3b3JrIGlmCmltcGxlbWVudGVkIGFzLWlzIG9uIGEgIm5vcm1h
181 bCIgKHJpc2luZyBlZGdlKSBtb2Rlcm4gSERMIGNsb2NrIGRlc2lnbi4KaSBjb252ZXJ0ZWQgdGhl
182 IGNvZGUgaW4gbGlicmUtc29jIHRvIHdvcmsgKnNvbGVseSogb24gdGhlIFJJU0lORyBlZGdlLgoK
183 PiBJdHMgaW5jcmVkaWJseQo+IGFubm95aW5nIHdoZW4gb25lIGlzIHByb3ZpZGVkIHNvbWUgaW5m
184 b3JtYXRpb24sIG9ubHkgZm9yIHRoZSBwcm92aWRlcgo+IG9mIHRoZSBpbmZvIHRvIGNvbWUgYmFj
185 ayBtb250aHMgbGF0ZXIgYW5kIHRlbGwgeW91ICJSZW1lbWJlciB0aGF0Cj4gZG9jdW1lbnQgSSBz
186 ZW50IHlvdSwgeWVhaCwgbWFrZSBzdXJlIHlvdSBuZXZlciByZWZlcmVuY2UgaXQgaW4gYW55Cj4g
187 cHVibGlzaGVkIHdvcmsgZXZlciIuCgo6KQoKbC4KCl9fX19fX19fX19fX19fX19fX19fX19fX19f
188 X19fX19fX19fX19fX19fX19fX19fCmxpYnJlLXJpc2N2LWRldiBtYWlsaW5nIGxpc3QKbGlicmUt
189 cmlzY3YtZGV2QGxpc3RzLmxpYnJlLXJpc2N2Lm9yZwpodHRwOi8vbGlzdHMubGlicmUtcmlzY3Yu
190 b3JnL21haWxtYW4vbGlzdGluZm8vbGlicmUtcmlzY3YtZGV2Cg==
191