From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Qiantan Hong Newsgroups: gmane.emacs.devel Subject: Re: sqlite3 Date: Mon, 13 Dec 2021 12:23:04 +0000 Message-ID: <1FAB70D6-1E6A-4B08-A9FD-BD0F0F4550FB@mit.edu> References: <87tufmjyai.fsf@gnus.org> <605AE63E-2356-4048-AAD1-D25B13ED0B1F@mit.edu> <3128233.LASfulB0cI@galex-713.eu> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="_003_1FAB70D61E6A4B08A9FDBD0F0F4550FBmitedu_" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="17062"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Philip Kaludercic , "larsi@gnus.org" , "rms@gnu.org" , "emacs-devel@gnu.org" To: Alexandre Garreau Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Dec 13 13:25:58 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mwkOz-0004E1-Pf for ged-emacs-devel@m.gmane-mx.org; Mon, 13 Dec 2021 13:25:57 +0100 Original-Received: from localhost ([::1]:36386 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mwkOx-0003pm-K5 for ged-emacs-devel@m.gmane-mx.org; Mon, 13 Dec 2021 07:25:55 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:60876) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mwkMX-00025B-IA for emacs-devel@gnu.org; Mon, 13 Dec 2021 07:23:26 -0500 Original-Received: from outgoing-exchange-1.mit.edu ([18.9.28.15]:34819) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mwkMV-0001xN-PF; Mon, 13 Dec 2021 07:23:25 -0500 Original-Received: from w92exedge3.exchange.mit.edu (W92EXEDGE3.EXCHANGE.MIT.EDU [18.7.73.15]) by outgoing-exchange-1.mit.edu (8.14.7/8.12.4) with ESMTP id 1BDCMuIX003220; Mon, 13 Dec 2021 07:23:15 -0500 Original-Received: from oc11expo16.exchange.mit.edu (18.9.4.47) by w92exedge3.exchange.mit.edu (18.7.73.15) with Microsoft SMTP Server (TLS) id 15.0.1497.26; Mon, 13 Dec 2021 07:22:52 -0500 Original-Received: from oc11expo16.exchange.mit.edu (18.9.4.47) by oc11expo16.exchange.mit.edu (18.9.4.47) with Microsoft SMTP Server (TLS) id 15.0.1497.23; Mon, 13 Dec 2021 07:23:04 -0500 Original-Received: from oc11expo16.exchange.mit.edu ([18.9.4.47]) by oc11expo16.exchange.mit.edu ([18.9.4.47]) with mapi id 15.00.1497.023; Mon, 13 Dec 2021 07:23:04 -0500 Thread-Topic: sqlite3 Thread-Index: AQHX6kP05Uksy0m/5EaKKPl4hlIxS6wudL9LgABV5YCAAQhBvIAAqdaAgAA66IA= In-Reply-To: <3128233.LASfulB0cI@galex-713.eu> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [128.12.11.144] Received-SPF: pass client-ip=18.9.28.15; envelope-from=qhong@mit.edu; helo=outgoing-exchange-1.mit.edu X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:281839 Archived-At: --_003_1FAB70D61E6A4B08A9FDBD0F0F4550FBmitedu_ Content-Type: text/plain; charset="utf-8" Content-ID: <58A7F50166B7124A876A757FE0272AD3@exchange.mit.edu> Content-Transfer-Encoding: base64 Pj4+IEnigJltIHRoaW5raW5nIG9mIHJhdGhlciBub3QgZXhwb3NpbmcgbXVsdGlzZXNzaW9uLmVs IGRpcmVjdGx5LA0KPj4+IGJ1dCBpbnN0ZWFkIHVzZSBpdCBhcyBhIGJhY2tlbmQgZm9yIHN0b3Jl LmVsLg0KPj4gDQo+PiBXaGF0IGlzIHN0b3JlLmVsPyAgQ291bGQgeW91IHNob3cgdXMgaXRzIGlu dGVyZmFjZSBzcGVjcz8NCj4+IElzIGl0IHdyaXR0ZW4sIG9yIGlzIGl0IGEgcHJvcG9zYWw/DQo+ IA0KPiBzdGlsbCBhIHByb3Bvc2FsLCBvZiBhIGNvbW1vbiBhYnN0cmFjdGlvbiBvdmVyIHBlcnNp c3RlbnQga2V5LXZhbHVlIA0KPiBzdG9yZXMsIHRoYXQgd291bGQgaGF2ZSBzcWxpdGUgYW1vbmcg YmFja2VuZHMsIGJ1dCBhbHNvIGxpc3AtaW1wbGVtZW50ZWQgDQo+IHN0b3JlcyBzdWNoIGFzIHRo ZSDigJxvbmUtZmlsZS1wZXItdmFsdWUgaW4gYSBkaXJlY3RvcnnigJ0gcGVyc2lzdC5lbCBjdXJy ZW50bHkgDQo+IHVzZSAobW9zdCBlZmZpY2llbnQgb24gYnRyZWUgZnMgbGlrZSBidHJmcyBvciB6 ZnMpLCBhbmQgYSBsb2dnaW5nIGRlbHRhIA0KPiBzdG9yZSBxaWFudGFuIGhvbmcgaW1wbGVtZW50 ZWQgaW5pdGlhbGx5IG9uIGEgc2NyYXRjaCBieSByZWFjdGlvbiB0byANCj4gc3FsaXRlIHN1Z2dl c3Rpb24uDQpJdCBpcyBub3cgd3JpdHRlbiBCVFcuIEnigJl2ZSBmaW5pc2hlZCB0aGUgd29yayBv ZiBleHRyYWN0aW5nDQprZXkgdmFsdWUgc3RvcmUgcGFydCBmcm9tIHJlc2lzdCEuZWwuIEkgaGF2 ZW7igJl0IHN0YXJ0IGV4dHJhY3RpbmcNCnBlcnNpc3RlbnQgdmFyaWFibGUgcGFydCBhcyBJIGhh dmVu4oCZdCBoZWFyIGJhY2sgYWJvdXQgcGVyc2lzdC5lbA0KbmFtZXNwYWNlIGF2YWlsYWJpbGl0 eSB5ZXQuDQoNCknigJl2ZSBhbHJlYWR5IGluY2x1ZGVkIHRoZSBhYm92ZSBtZW50aW9uZWQgdHdv IGJhY2tlbmRzLg0KTGFyc+KAmSBzcWxpdGUzIGltcGxlbWVudGF0aW9uIGNvdWxkIGJlIGluY2x1 ZGVkIGFzIHRoZSB0aGlyZA0Kd2l0aCBzbGlnaHQgbW9kaWZpY2F0aW9uLg0KDQpDb2RlIGlzIGhv c3RlZCBhdCBodHRwczovL2NvZGUubGlicmVocS5jb20vcWhvbmcvc3RvcmUuZWwvDQpGb3IgcGVv cGxlIHRoYXQgZG9u4oCZdCB3YW50IHRvIGZvbGxvdyBsaW5rLCBJIGFsc28gYXR0YWNoIHRoZQ0K Y3VycmVudCByZXZpc2lvbiBiZWxvdw0K --_003_1FAB70D61E6A4B08A9FDBD0F0F4550FBmitedu_ Content-Type: application/octet-stream; name="store.el" Content-Description: store.el Content-Disposition: attachment; filename="store.el"; size=15645; creation-date="Mon, 13 Dec 2021 12:23:04 GMT"; modification-date="Mon, 13 Dec 2021 12:23:04 GMT" Content-ID: <9CCEAFDC3DB72D45A296DFE734717B69@exchange.mit.edu> Content-Transfer-Encoding: base64 Ozs7IHN0b3JlLmVsIC0tLSBQZXJzaXN0YW50IEtleS1WYWx1ZSBTdG9yZSAgLSotIGxleGljYWwt YmluZGluZzogdDsgLSotDQoNCjs7IENvcHlyaWdodCAoQykgMjAyMSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4NCg0KOzsgQXV0aG9yOiBRaWFudGFuIEhvbmcgPHFob25nQGFsdW0ubWl0 LmVkdT4NCjs7IE1haW50YWluZXI6IFFpYW50YW4gSG9uZyA8cWhvbmdAYWx1bS5taXQuZWR1Pg0K OzsgS2V5d29yZHM6IHBlcnNpc3RlbmNlIGRhdGFiYXNlDQo7OyBWZXJzaW9uOiAwLjAuMQ0KDQo7 OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuDQoNCjs7IEdOVSBFbWFjcyBpcyBmcmVl IHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQo7OyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQ0KOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3INCjs7IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uDQoNCjs7IEdOVSBFbWFjcyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLA0KOzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YNCjs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCjs7IEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQoNCjs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQo7OyBhbG9uZyB3aXRoIEdO VSBFbWFjcy4gIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQoN Cjs7OyBDb21tZW50YXJ5Og0KOzsgVGhpcyBwYWNrYWdlIGltcGxlbWVudHMgYSBwZXJzaXN0ZW50 IGtleS12YWx1ZSBzdG9yZSBmYWNpbGl0eS4NCg0KOzsgVGhlIGludGVyZmFjZSBwcm92aWRlcyB0 aGUgZm9sbG93aW5nIGZ1bmN0aW9uczoNCg0KOzsgLSBDcmVhdGluZyBhbmQgY29tcGFjdGluZyBz dG9yZTogYHN0b3JlLWNyZWF0ZScsIGBzdG9yZS1jb21wYWN0Jw0KOzsgLSBHZXQgdGhlIHBhdGgg b2YgYSBzdG9yZTogYHN0b3JlLXBhdGgnDQo7OyAtIFB1dCwgcmVtb3ZlIGFuZCBsb29rIHVwIGtl eSB2YWx1ZSBwYWlyczogYHN0b3JlLXB1dCcsDQo7OyAgIGBzdG9yZS1yZW0nLCBgc3RvcmUtZ2V0 JywNCjs7IC0gTGlzdCBvcGVyYXRpb25zOiBgc3RvcmUtcHVzaCcsIGBzdG9yZS1kZWxldGUnDQo7 OyBTZWUgdGhlaXIgZG9jc3RyaW5ncyBmb3IgZGV0YWlscy4NCg0KOzsgVGhlIHBhY2thZ2Ugc3Vw cG9ydHMgbXVsdGlwbGUgYmFja2VuZHMuICBBbGwgYmFja2VuZHMgc2hvdWxkDQo7OyBwZXJzaXN0 IGFsbCBjaGFuZ2VzIGltbWVkaWF0ZWx5IGludG8gZXh0ZXJuYWwgc3RvcmFnZS4gIEl0IGNvbWVz DQo7OyB3aXRoIHRoZSBmb2xsb3dpbmcgYnVpbHQtaW4gYmFja2VuZHM6DQoNCjs7IC0gYGxvZyc6 IExvZy1zdHJ1Y3R1cmVkIGluY3JlbWVudGFsIFMtZXhwciBzdG9yZS4gIE9ubHkgaW5jcmVtZW50 cw0KOzsgICBhcmUgc3RvcmVkLCB0aGVyZWZvcmUgdGhlIGNvc3QgZm9yIGVhY2ggcGVyc2lzdGVu dCBvcGVyYXRpb24NCjs7ICAgc2hvdWxkIGJlIGluZGVwZW5kZW50IG9mIHRoZSB0b3RhbCBzaXpl IG9mIHRoZSBzdG9yZSwgYW5kIHRoZQ0KOzsgICBjb3N0IGZvciBlYWNoIHBlcnNpc3RlbnQgbGlz dCBvcGVyYXRpb24gc2hvdWxkIGJlIGluZGVwZW5kZW50IG9mDQo7OyAgIHRoZSB0b3RhbCBzaXpl IG9mIHRoZSBsaXN0Lg0KDQo7OyAtIGBmcyc6IEZpbGUtc3lzdGVtIGJhc2VkIFMtZXhwciBzdG9y ZS4gIFVzZSBhIGZpbGUgcGVyIGtleS12YWx1ZQ0KOzsgICBwYWlyLCB3aXRoIGtleSBTLWV4cHIg YXMgZmlsZSBuYW1lIGFuZCB2YWx1ZSBTLWV4cHIgYXMgY29udGVudC4NCg0KOzs7IENvZGU6DQoN CihyZXF1aXJlICdjbC1saWIpDQoocmVxdWlyZSAnY2wtZ2VuZXJpYykNCg0KOzs7IEN1c3RvbXMN CihkZWZncm91cCBwZXJzaXN0ZW5jZSBuaWwgIlBlcnNpc3RlbmNlIGZhY2lsaXR5LiINCiAgICAg ICAgICA6Z3JvdXAgJ2VtYWNzKQ0KDQooZGVmY3VzdG9tIHN0b3JlLWNvbXBhY3QtaWRsZS10aW1l IDMwDQogICJJZGxlIHRpbWUgaW4gc2Vjb25kcyB0byB3YWl0IGJlZm9yZSBjb21wYWN0aW5nIGtl eSB2YWx1ZSBzdG9yZXMuIg0KICA6dHlwZSAnbnVtYmVyIDpncm91cCAncGVyc2lzdGVuY2UpDQoN Cjs7OyBHZW5lcmljIEludGVyZmFjZQ0KKGNsLWRlZmdlbmVyaWMgc3RvcmUtY3JlYXRlIChwYXRo IGJhY2tlbmQgJmtleSAmYWxsb3ctb3RoZXIta2V5cykNCiAgIkNyZWF0ZSBhbmQgcmV0dXJuIGEg a2V5IHZhbHVlIHN0b3JlIGJhY2tlZCBieSBQQVRIIGFuZCBCQUNLRU5ELg0KSWYgdGhlIGJhY2tp bmcgc3RvcmFnZSBkb2Vzbid0IGV4aXN0LCBjcmVhdGUgaXQuICBPdGhlcndpc2UsDQpjb250ZW50 IG9mIHRoZSByZXR1cm5lZCBzdG9yZSBpcyBzeW5jaHJvbml6ZWQgdG8gdGhlIGJhY2tpbmcNCnN0 b3JhZ2UuIikNCihjbC1kZWZnZW5lcmljIHN0b3JlLWNvbXBhY3QgKHN0b3JlICZvcHRpb25hbCBu b25ibG9jaykNCiAgIkNvbXByZXNzL3ZhY3V1bS9nYXJiYWdlIGNvbGxlY3QgU1RPUkUsIGlmIGFw cGxpY2FibGUuDQpJZiB0aGUgYmFja2luZyBzdG9yYWdlIGlzIGFscmVhZHkgbG9ja2VkLCBzaWdu YWwgYGZpbGUtbG9ja2VkJw0KaW1tZWRpYXRlbHkgaWYgTk9OQkxPQ0sgaXMgbm9uIG5pbCBvciB3 YWl0IGlmIE5PTkJMT0NLIGlzIG5pbC4iDQogIDs7IFdlIHByb3ZpZGUgYSBtb2NrIGltcGxlbWVu dGF0aW9uIGZvciBiYWNrZW5kcyB0aGF0IGRvIG5vdCBzdXBwb3J0DQogIDs7IGNvbXBhY3Rpbmcu DQogIG5pbCkNCihjbC1kZWZnZW5lcmljIHN0b3JlLXBhdGggKHN0b3JlKQ0KICAiUmV0dXJuIHRo ZSBwYXRoIG9mIFNUT1JFJ3MgYmFja2luZyBzdG9yYWdlLg0KVGhlIHJldHVybmVkIHBhdGggc2hv dWxkIGNyZWF0ZSBhIHN0b3JlIGJhY2tlZCBieSB0aGUgc2FtZQ0Kc3RvcmFnZSB3aGVuIHBhc3Nl ZCB0byBgc3RvcmUtY3JlYXRlJy4iKQ0KDQooY2wtZGVmZ2VuZXJpYyBzdG9yZS1jYWxsLXdpdGgt dHJhbnNhY3Rpb24gKHN0b3JlIGZ1bmN0aW9uICZrZXkgKG5vbmJsb2NrIG5pbCkgKGxvY2sgdCkp DQogICJDYWxsIEZVTkNUSU9OIHdoaWxlIGhvbGRpbmcgYSB0cmFuc2FjdGlvbiBmb3IgU1RPUkUu DQpJZiBMT0NLIGlzIG5vbiBuaWwsIGdyYWIgYSBsb2NrIG9mIHRoZSBiYWNraW5nIHN0b3JhZ2Ug d2hlbg0KYXBwbGljYWJsZS4gIElmIHRoZSBiYWNraW5nIHN0b3JhZ2UgaXMgYWxyZWFkeSBsb2Nr ZWQsIHdhaXQgaWYNCk5PTkJMT0NLIGlzIG5pbCBvciBzaWduYWwgYGZpbGUtbG9ja2VkJyBpbW1l ZGlhdGVseSBpZiBOT05CTE9DSw0KaXMgbm9uIG5pbC4iDQogIDs7IFdlIHByb3ZpZGUgYSBtb2Nr IGltcGxlbWVudGF0aW9uIGZvciBiYWNrZW5kcyB0aGF0IGRvIG5vdCBzdXBwb3J0DQogIDs7IHRy YW5zYWN0aW9uLg0KICAoZnVuY2FsbCBmdW5jdGlvbikpDQooY2wtZGVmbWFjcm8gc3RvcmUtd2l0 aC10cmFuc2FjdGlvbg0KICAgICgoc3RvcmUgJmtleSAobm9uYmxvY2sgbmlsKSAobG9jayB0KSkg JnJlc3QgYm9keSkNCiAgIlJ1biBCT0RZIHdoaWxlIGhvbGRpbmcgYSB0cmFuc2FjdGlvbiBmb3Ig U1RPUkUuDQpJZiBMT0NLIGlzIG5vbiBuaWwsIGdyYWIgYSBsb2NrIG9mIHRoZSBiYWNraW5nIHN0 b3JhZ2Ugd2hlbg0KYXBwbGljYWJsZS4gIElmIHRoZSBiYWNraW5nIHN0b3JhZ2UgaXMgYWxyZWFk eSBsb2NrZWQsIHdhaXQgaWYNCk5PTkJMT0NLIGlzIG5pbCBvciBzaWduYWwgYGZpbGUtbG9ja2Vk JyBpbW1lZGlhdGVseSBpZiBOT05CTE9DSw0KaXMgbm9uIG5pbC4iDQogIChkZWNsYXJlIChpbmRl bnQgMSkgKGRlYnVnIChbJnJlc3QgZm9ybV0gYm9keSkpKQ0KICBgKHN0b3JlLWNhbGwtd2l0aC10 cmFuc2FjdGlvbiAsc3RvcmUgKGxhbWJkYSAoKSAsQGJvZHkpDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDpsb2NrICxsb2NrIDpub25ibG9jayAsbm9uYmxvY2spKQ0KDQooY2wtZGVmZ2Vu ZXJpYyBzdG9yZS1wdXQgKGtleSB2YWx1ZSBzdG9yZSkNCiAgIkFzc29jaWF0ZSBLRVkgd2l0aCBW QUxVRSBpbiBTVE9SRS4NClRoZSBvcGVyYXRpb24gaXMgaW1tZWRpYXRlbHkgcGVyc2lzdGVkLg0K UmV0dXJuIFZBTFVFLiIpDQooY2wtZGVmZ2VuZXJpYyBzdG9yZS1nZXQgKGtleSBzdG9yZSAmb3B0 aW9uYWwgZGZsdCkNCiAgIkxvb2sgdXAgS0VZIGluIFNUT1JFIGFuZCByZXR1cm4gaXRzIGFzc29j aWF0ZWQgdmFsdWUuDQpJZiBLRVkgaXMgbm90IGZvdW5kLCByZXR1cm4gREZMVCB3aGljaCBkZWZh dWx0cyB0byBuaWwuIikNCihjbC1kZWZnZW5lcmljIHN0b3JlLXJlbSAoa2V5IHN0b3JlKQ0KICAi UmVtb3ZlIEtFWSBmcm9tIFNUT1JFLg0KVGhlIG9wZXJhdGlvbiBpcyBpbW1lZGlhdGVseSBwZXJz aXN0ZWQuDQpSZXR1cm4gbmlsLiIpDQooZ3YtZGVmaW5lLXNldHRlciBzdG9yZS1nZXQgKHZhbCBr ZXkgc3RvcmUgJm9wdGlvbmFsIF9kZmx0KQ0KICA7OyBUT0RPOiBjYW4gd2UgZGV0ZWN0IGlmIHRo ZSBwbGFjZSBpcyB1c2VkIGluIGBwdXNoJywgYGNsLXB1c2huZXcnLA0KICA7OyBldGMgYW5kIHVz ZSB0aGUgcG90ZW50aWFsbHkgbW9yZSBlZmZpY2llbnQgYHN0b3JlLXB1c2gnIGluc3RlYWQ/DQog IGAoc3RvcmUtcHV0ICxrZXkgLHZhbCAsc3RvcmUpKQ0KDQooY2wtZGVmZ2VuZXJpYyBzdG9yZS1w dXNoIChrZXkgdmFsdWUgc3RvcmUpDQogICJBZGQgVkFMVUUgdG8gdGhlIGxpc3QgYXNzb2NpYXRl ZCB3aXRoIEtFWSBpbiBTVE9SRS4NClRoZSBvcGVyYXRpb24gaXMgaW1tZWRpYXRlbHkgcGVyc2lz dGVkLg0KUmV0dXJuIHRoZSBuZXcgbGlzdCB3aXRoIFZBTFVFIGFkZGVkLiINCiAgOzsgV2UgcHJv dmlkZSBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIGJhY2tlbmRzIG5vdCBuYXRpdmVseQ0K ICA7OyBzdXBwb3J0aW5nIGxpc3Qgb3BlcmF0aW9ucy4gIEJhY2tlbmRzIGFyZSBlbmNvdXJhZ2Vk IHRvIG92ZXJyaWRlDQogIDs7IHRoaXMgd2l0aCBtb3JlIGVmZmljaWVudCBpbXBsZW1lbnRhdGlv bi4NCiAgKHN0b3JlLXB1dCBrZXkgKGNvbnMgdmFsdWUgKHN0b3JlLWdldCBrZXkgc3RvcmUpKSBz dG9yZSkpDQooY2wtZGVmZ2VuZXJpYyBzdG9yZS1kZWxldGUgKGtleSB2YWx1ZSBzdG9yZSkNCiAg IlJlbW92ZSBWQUxVRSBmcm9tIHRoZSBsaXN0IGFzc29jaWF0ZWQgd2l0aCBLRVkgaW4gU1RPUkUu DQpUaGUgb3BlcmF0aW9uIGlzIGltbWVkaWF0ZWx5IHBlcnNpc3RlZC4NClJldHVybiB0aGUgbmV3 IGxpc3Qgd2l0aCBWQUxVRSByZW1vdmVkLiINCiAgOzsgV2UgcHJvdmlkZSBhIGRlZmF1bHQgaW1w bGVtZW50YXRpb24gZm9yIGJhY2tlbmRzIG5vdCBuYXRpdmVseQ0KICA7OyBzdXBwb3J0aW5nIGxp c3Qgb3BlcmF0aW9ucy4gIEJhY2tlbmRzIGFyZSBlbmNvdXJhZ2VkIHRvIG92ZXJyaWRlDQogIDs7 IHRoaXMgd2l0aCBtb3JlIGVmZmljaWVudCBpbXBsZW1lbnRhdGlvbi4NCiAgKHN0b3JlLXB1dCBr ZXkgKGRlbGV0ZSB2YWx1ZSAoc3RvcmUtZ2V0IGtleSBzdG9yZSkpIHN0b3JlKSkNCg0KOzs7IEF1 dG9tYXRpYyBDb21wYWN0aW5nDQooZGVmdmFyIHN0b3JlLW5lZWQtY29tcGFjdGluZy1saXN0IG5p bA0KICAiTGlzdCBvZiBzdG9yZXMgdGhhdCBzaGFsbCBiZSBjb21wYWN0ZWQgYnkgYHN0b3JlLWNv bXBhY3QtZGVtb24nLiIpDQooZGVmdmFyIHN0b3JlLWNvbXBhY3QtaWRsZS10aW1lciBuaWwgIklk bGUgdGltZXIgdGhhdCBydW5zIGBzdG9yZS1jb21wYWN0LWRlbW9uJy4iKQ0KKGRlZnVuIHN0b3Jl LWNvbXBhY3QtZGVtb24gKCkNCiAgKHdoaWxlIHN0b3JlLW5lZWQtY29tcGFjdGluZy1saXN0DQog ICAgKGxldCAoKHN0b3JlIChwb3Agc3RvcmUtbmVlZC1jb21wYWN0aW5nLWxpc3QpKSkNCiAgICAg IChjb25kaXRpb24tY2FzZSBuaWwNCiAgICAgICAgICAoc3RvcmUtY29tcGFjdCBzdG9yZSAnbm9u YmxvY2spDQogICAgICAgIChmaWxlLWxvY2tlZA0KICAgICAgICAgKG1lc3NhZ2UgIkdpdmluZyB1 cCBjb21wYWN0aW5nICVzIHRoaXMgdGltZSwgYmVjYXVzZSBpdCBpcyBsb2NrZWQuIg0KICAgICAg ICAgICAgICAgICAgKHN0b3JlLXBhdGggc3RvcmUpKQ0KICAgICAgICAgbmlsKSkpKSkNCihkZWZ1 biBzdG9yZS1jb21wYWN0LWRlbW9uLXN1bW1vbiAoKQ0KICAodW5sZXNzIHN0b3JlLWNvbXBhY3Qt aWRsZS10aW1lcg0KICAgIChzZXRxIHN0b3JlLWNvbXBhY3QtaWRsZS10aW1lciAodGltZXItY3Jl YXRlKSkNCiAgICAodGltZXItc2V0LWZ1bmN0aW9uIHN0b3JlLWNvbXBhY3QtaWRsZS10aW1lciAn c3RvcmUtY29tcGFjdC1kZW1vbikNCiAgICAodGltZXItc2V0LWlkbGUtdGltZSBzdG9yZS1jb21w YWN0LWlkbGUtdGltZXIgc3RvcmUtY29tcGFjdC1pZGxlLXRpbWUpKQ0KICAodW5sZXNzIChtZW1x IHN0b3JlLWNvbXBhY3QtaWRsZS10aW1lciB0aW1lci1saXN0KQ0KICAgICh0aW1lci1hY3RpdmF0 ZS13aGVuLWlkbGUgc3RvcmUtY29tcGFjdC1pZGxlLXRpbWVyIHQpKSkNCg0KOzs7IFNlcmlhbGl6 YXRpb24gdXRpbGl0eQ0KKGRlZnN1YnN0IHN0b3JlLS1wcmludCAoZm9ybSkNCiAgKGxldCAoKHBy aW50LWxlbmd0aCBuaWwpIChwcmludC1sZXZlbCBuaWwpKQ0KICAgIChwcmluMSBmb3JtIChjdXJy ZW50LWJ1ZmZlcikpKQ0KICAoaW5zZXJ0ICJcbiIpKQ0KDQo7OzsgYGxvZycgYmFja2VuZA0KKGRl ZnZhciBzdG9yZS1pbmhpYml0LWFzay11c2VyLWFib3V0LWxvY2sgbmlsKQ0KKGRlZnVuIHN0b3Jl LWluaGliaXQtYXNrLXVzZXItYWJvdXQtbG9jay1hZHZpY2UgKG9yaWctZnVuYyBmaWxlIG9wcG9u ZW50KQ0KICAoaWYgc3RvcmUtaW5oaWJpdC1hc2stdXNlci1hYm91dC1sb2NrDQogICAgICAoc2ln bmFsICdmaWxlLWxvY2tlZCAobGlzdCBmaWxlIG9wcG9uZW50KSkNCiAgICAoZnVuY2FsbCBvcmln LWZ1bmMgZmlsZSBvcHBvbmVudCkpKQ0KKGFkdmljZS1hZGQgJ2Fzay11c2VyLWFib3V0LWxvY2sg OmFyb3VuZCAjJ3N0b3JlLWluaGliaXQtYXNrLXVzZXItYWJvdXQtbG9jay1hZHZpY2UpDQooZGVm dmFyIHN0b3JlLWluaGliaXQtYXNrLXVzZXItYWJvdXQtc3VwZXJzZXNzaW9uLXRocmVhdCBuaWwp DQooZGVmdW4gc3RvcmUtaW5oaWJpdC1hc2stdXNlci1hYm91dC1zdXBlcnNlc3Npb24tdGhyZWF0 LWFkdmljZSAob3JpZy1mdW5jIGZpbGUpDQogICh1bmxlc3Mgc3RvcmUtaW5oaWJpdC1hc2stdXNl ci1hYm91dC1zdXBlcnNlc3Npb24tdGhyZWF0DQogICAgKGZ1bmNhbGwgb3JpZy1mdW5jIGZpbGUp KSkNCihhZHZpY2UtYWRkICdhc2stdXNlci1hYm91dC1zdXBlcnNlc3Npb24tdGhyZWF0IDphcm91 bmQgIydzdG9yZS1pbmhpYml0LWFzay11c2VyLWFib3V0LXN1cGVyc2Vzc2lvbi10aHJlYXQtYWR2 aWNlKQ0KDQooY2wtZGVmc3RydWN0IChzdG9yZS1sb2cgKDpjb25zdHJ1Y3RvciBzdG9yZS1sb2ct LW1ha2UpKQ0KICBwYXRoICh0YWJsZSAobWFrZS1oYXNoLXRhYmxlIDp0ZXN0ICdlcXVhbCkpIChs b2ctY291bnQgMCkgY29tcGFjdC1yYXRpbw0KICA7OyBJIHVzZWQgdG8gdXNlIGEgYGdlbnN5bScg cmVkaXJlY3Rpb24gdG8gZXhwbG9pdCB0aHJlYWQtc2FmZQ0KICA7OyBkeW5hbWljIGJpbmRpbmcg Zm9yIGBzdG9yZS1sb2ctdHJhbnNhY3Rpb24tYnVmZmVyJywgYnV0IGN1cnJlbnRseQ0KICA7OyBJ IGRyb3BwZWQgdGhlIHN1cHBvcnQgZm9yIHJlY3Vyc2l2ZSBhbmQgY29uY3VycmVudCB0cmFuc2Fj dGlvbg0KICA7OyAoZHVlIHRvIGxpbWl0YXRpb24gb2YgYGxvY2stZmlsZScpLiAgV2hlbiB3ZSBh ZGQgaXQgYmFjayBpbiB0aGUNCiAgOzsgZnV0dXJlLCByZW1lbWJlciB0aGUgYGdlbnN5bScgdHJp Y2suDQogIHRyYW5zYWN0aW9uLWJ1ZmZlcikNCg0KKGRlZnVuIHN0b3JlLWxvZy0tbG9jayAoc3Rv cmUpDQogIChzZXRmIChidWZmZXItbW9kaWZpZWQtcCAoc3RvcmUtbG9nLXRyYW5zYWN0aW9uLWJ1 ZmZlciBzdG9yZSkpIHQpIDsgb3RoZXJ3aXNlIGBsb2NrLWJ1ZmZlcicgd291bGQgZG8gbm90aGlu Zw0KICAod2l0aC1jdXJyZW50LWJ1ZmZlciAoc3RvcmUtbG9nLXRyYW5zYWN0aW9uLWJ1ZmZlciBz dG9yZSkNCiAgICAobGV0ICgoY3JlYXRlLWxvY2tmaWxlcyB0KQ0KICAgICAgICAgIChzdG9yZS1p bmhpYml0LWFzay11c2VyLWFib3V0LWxvY2sgdCkNCiAgICAgICAgICAoc3RvcmUtaW5oaWJpdC1h c2stdXNlci1hYm91dC1zdXBlcnNlc3Npb24tdGhyZWF0IHQpKQ0KICAgICAgKGxvY2stYnVmZmVy KSkpKQ0KKGNsLWRlZm1ldGhvZCBzdG9yZS1jYWxsLXdpdGgtdHJhbnNhY3Rpb24gKChzdG9yZSBz dG9yZS1sb2cpIGZ1bmN0aW9uICZrZXkgKG5vbmJsb2NrIG5pbCkgKGxvY2sgdCkpDQogICh3aGVu IChzdG9yZS1sb2ctdHJhbnNhY3Rpb24tYnVmZmVyIHN0b3JlKQ0KICAgIChlcnJvciAiUmVjdXJz aXZlIG9yIGNvbmN1cnJlbnQgdHJhbnNhY3Rpb24gaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQi KSkNCiAgKGxldCAoKGJ1ZmZlciAoZ2VuZXJhdGUtbmV3LWJ1ZmZlciAiICp0ZW1wIGxvZyB0cmFu c2FjdGlvbioiKSkpDQogICAgKHNldGYgKGJ1ZmZlci1sb2NhbC12YWx1ZSAnYnVmZmVyLWZpbGUt dHJ1ZW5hbWUgYnVmZmVyKSAoc3RvcmUtbG9nLXBhdGggc3RvcmUpKQ0KICAgICh1bndpbmQtcHJv dGVjdA0KICAgICAgICAgKHByb2duDQogICAgICAgICAgIChzZXRmIChzdG9yZS1sb2ctdHJhbnNh Y3Rpb24tYnVmZmVyIHN0b3JlKSBidWZmZXIpDQogICAgICAgICAgICh3aGVuIGxvY2sNCiAgICAg ICAgICAgICAoaWYgbm9uYmxvY2sNCiAgICAgICAgICAgICAgICAgKHN0b3JlLWxvZy0tbG9jayBz dG9yZSkNCiAgICAgICAgICAgICAgICh3aGlsZSAobm90IChpZ25vcmUtZXJyb3JzIChzdG9yZS1s b2ctLWxvY2sgc3RvcmUpIHQpKQ0KICAgICAgICAgICAgICAgICAoc2l0LWZvciAwLjAgdCkpKSkN CiAgICAgICAgICAgKHByb2cxIChmdW5jYWxsIGZ1bmN0aW9uKQ0KICAgICAgICAgICAgICh3aXRo LWN1cnJlbnQtYnVmZmVyIGJ1ZmZlcg0KICAgICAgICAgICAgICAgKHdyaXRlLXJlZ2lvbiBuaWwg bmlsIChzdG9yZS1sb2ctcGF0aCBzdG9yZSkgdCAnc2lsZW50KSkpKQ0KICAgICAgKHNldGYgKHN0 b3JlLWxvZy10cmFuc2FjdGlvbi1idWZmZXIgc3RvcmUpIG5pbCkNCiAgICAgIChraWxsLWJ1ZmZl ciBidWZmZXIpKSkpDQooY2wtZGVmbWFjcm8gc3RvcmUtbG9nLS1lbnN1cmUtdHJhbnNhY3Rpb24t YnVmZmVyICgoc3RvcmUgJnJlc3QgYXJncykgJnJlc3QgYm9keSkNCiAgIk1ha2Ugc3VyZSBCT0RZ IGlzIGV4ZWN1dGVkIGluc2lkZSBhIHRyYW5zYWN0aW9uIGJ1ZmZlciBmb3IgU1RPUkUuDQpJZiBu byB0cmFuc2FjdGlvbiBidWZmZXIgZm9yIFNUT1JFIGlzIGluIGVmZmVjdCwgY3JlYXRlIGEgdGVt cG9yYXJ5IGJ1ZmZlcg0KZm9yIGFwcGVuZGluZyBsb2dzLg0KQVJHUyBhcmUgcGFzc2VkIHRvIGBz dG9yZS1jYWxsLXdpdGgtdHJhbnNhY3Rpb24nLiINCiAgKGRlY2xhcmUgKGluZGVudCAxKSAoZGVi dWcgKFsmcmVzdCBmb3JtXSBib2R5KSkpDQogIChsZXQgKChzdG9yZS12YXIgKGdlbnN5bSAic3Rv cmUiKSkNCiAgICAgICAgKGJvZHktc3ltIChnZW5zeW0gImJvZHkiKSkpDQogICAgYChsZXQgKCgs c3RvcmUtdmFyICxzdG9yZSkpDQogICAgICAgKGNsLWZsZXQgKCgsYm9keS1zeW0gKCkNCiAgICAg ICAgICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAoc3RvcmUtbG9nLXRyYW5zYWN0aW9u LWJ1ZmZlciAsc3RvcmUtdmFyKQ0KICAgICAgICAgICAgICAgICAgICAgLEBib2R5KSkpDQogICAg ICAgICAoaWYgKHN0b3JlLWxvZy10cmFuc2FjdGlvbi1idWZmZXIgLHN0b3JlLXZhcikNCiAgICAg ICAgICAgICAoLGJvZHktc3ltKQ0KICAgICAgICAgICAoc3RvcmUtY2FsbC13aXRoLXRyYW5zYWN0 aW9uICxzdG9yZS12YXIgIycsYm9keS1zeW0gLEBhcmdzKSkpKSkpDQoNCihkZWZ1biBzdG9yZS1s b2ctbG9hZCAoc3RvcmUgJm9wdGlvbmFsIGluY3JlbWVudGFsKQ0KICAiTG9hZCB0aGUgY29udGVu dCBTVE9SRSBmcm9tIGl0cyBiYWNraW5nIGZpbGUuDQpJZiBJTkNSRU1FTlRBTCBpcyBuaWwsIGxv YWQgdGhlIGVudGlyZSBiYWNraW5nIGZpbGUgYW5kIHJlcGxhY2UNClNUT1JFJ3MgY29udGVudC4g IE90aGVyd2lzZSwgSU5DUkVNRU5UQUwgc2hvdWxkIGJlIGEgbnVtYmVyDQpzcGVjaWZ5aW5nIGEg c3RhcnQgb2Zmc2V0IG9mIHRoZSBiYWNraW5nIGZpbGUsIGFuZCB0aGUgcG9ydGlvbg0KYWZ0ZXIg dGhpcyBvZmZzZXQgd2lsbCBiZSBsb2FkZWQgYW5kIGFkZGVkIHRvIFNUT1JFJ3MNCmNvbnRlbnQu Ig0KICAoc3RvcmUtd2l0aC10cmFuc2FjdGlvbiAoc3RvcmUpDQogICAgKHVubGVzcyBpbmNyZW1l bnRhbCAoY2xyaGFzaCAoc3RvcmUtbG9nLXRhYmxlIHN0b3JlKSkpDQogICAgKGNvbmRpdGlvbi1j YXNlIG5pbA0KICAgICAgICAod2l0aC10ZW1wLWJ1ZmZlcg0KICAgICAgICAgIChpbnNlcnQtZmls ZS1jb250ZW50cyAoc3RvcmUtbG9nLXBhdGggc3RvcmUpIG5pbCAob3IgaW5jcmVtZW50YWwgMCkp DQogICAgICAgICAgKHdoaWxlICg8IChwb2ludCkgKDEtIChwb2ludC1tYXgpKSkgOyBleGNsdWRl IHRyYWlsaW5nIG5ld2xpbmUNCiAgICAgICAgICAgIChsZXQgKChlbnRyeSAocmVhZCAoY3VycmVu dC1idWZmZXIpKSkpDQogICAgICAgICAgICAgIChwY2FzZSAoY2FyIGVudHJ5KQ0KICAgICAgICAg ICAgICAgICgnKysgKHB1dGhhc2ggKGNhZHIgZW50cnkpIChjYWRkciBlbnRyeSkgKHN0b3JlLWxv Zy10YWJsZSBzdG9yZSkpKQ0KICAgICAgICAgICAgICAgICgnLS0gKHJlbWhhc2ggKGNhZHIgZW50 cnkpIChzdG9yZS1sb2ctdGFibGUgc3RvcmUpKSkNCiAgICAgICAgICAgICAgICAoJ2wrIChwdXNo IChjYWRkciBlbnRyeSkgKGdldGhhc2ggKGNhZHIgZW50cnkpIChzdG9yZS1sb2ctdGFibGUgc3Rv cmUpKSkpDQogICAgICAgICAgICAgICAgKCdsLSAocHV0aGFzaCAoY2FkciBlbnRyeSkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChkZWxldGUgKGNhZGRyIGVudHJ5KSAoZ2V0aGFzaCAo Y2FkciBlbnRyeSkgKHN0b3JlLWxvZy10YWJsZSBzdG9yZSkpKQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHN0b3JlLWxvZy10YWJsZSBzdG9yZSkpKSkNCiAgICAgICAgICAgICAgKGNs LWluY2YgKHN0b3JlLWxvZy1sb2ctY291bnQgc3RvcmUpKSkpKQ0KICAgICAgKGVuZC1vZi1maWxl DQogICAgICAgOzsgV2UgbWlnaHQgZW5jb3VudGVyIHRyYWlsaW5nIHVuYmFsYW5jZWQgZm9ybSBp ZiBFbWFjcw0KICAgICAgIDs7IGNyYXNoZWQgaW4gdGhlIG1pZGRsZSBvZiBgbG9nLXB1dCcuICBX ZSBjb21wYWN0IHRoZSBmaWxlDQogICAgICAgOzsgYW5kIGZpeCB1bmJhbGFuY2VkIGZvcm0gYXMg YSBzaWRlIGVmZmVjdA0KICAgICAgIChzdG9yZS1jb21wYWN0IHN0b3JlKSkpKSkNCihjbC1kZWZt ZXRob2Qgc3RvcmUtY3JlYXRlIChwYXRoIChfYmFja2VuZCAoZXFsIGxvZykpICZrZXkgKGNvbXBh Y3QtcmF0aW8gNC4wKSAmYWxsb3ctb3RoZXIta2V5cykNCiAgIkNyZWF0ZSBhIGtleSB2YWx1ZSBz dG9yZSBiYWNrZWQgYnkgZmlsZSBQQVRILg0KSWYgZmlsZSBQQVRIIGRvZXMgbm90IGV4aXN0LCBj cmVhdGUgaXQgYW5kIHJldHVybiBhbiBlbXB0eSBrZXkgdmFsdWUgc3RvcmUuDQpJZiBmaWxlIFBB VEggZXhpc3RzLCBsb2FkIGl0cyBjb250ZW50IGludG8gYSBrZXkgdmFsdWUgc3RvcmUgYW5kIHJl dHVybiBpdC4NCg0KQ09NUEFDVC1SQVRJTyBjb250cm9scyBhdXRvbWF0aWMgY29tcGFjdGluZy4g IEFycmFuZ2UgZm9yDQpjb21wYWN0aW5nIGlmIGxvZyBjb3VudCBleGNlZWRzIChDT01QQUNULVJB VElPICogc2l6ZS1vZi10YWJsZSkuIg0KICAobGV0KiAoKHN0b3JlLWxvZyAoc3RvcmUtbG9nLS1t YWtlIDpwYXRoIHBhdGggOmNvbXBhY3QtcmF0aW8gY29tcGFjdC1yYXRpbykpKQ0KICAgICh3aGVu IChmaWxlLWV4aXN0cy1wIHBhdGgpDQogICAgICAoc3RvcmUtbG9nLWxvYWQgc3RvcmUtbG9nKSkN CiAgICBzdG9yZS1sb2cpKQ0KKGNsLWRlZm1ldGhvZCBzdG9yZS1wYXRoICgoc3RvcmUgc3RvcmUt bG9nKSkNCiAgKHN0b3JlLWxvZy1wYXRoIHN0b3JlKSkNCg0KKGNsLWRlZm1ldGhvZCBzdG9yZS1j b21wYWN0ICgoc3RvcmUgc3RvcmUtbG9nKSAmb3B0aW9uYWwgbm9uYmxvY2spDQogIChzdG9yZS1s b2ctLWVuc3VyZS10cmFuc2FjdGlvbi1idWZmZXIgKHN0b3JlIDpub25ibG9jayBub25ibG9jaykN CiAgICAoc2V0ZiAoc3RvcmUtbG9nLWxvZy1jb3VudCBzdG9yZSkgKGhhc2gtdGFibGUtY291bnQg KHN0b3JlLWxvZy10YWJsZSBzdG9yZSkpKQ0KICAgICh3aXRoLXRlbXAtYnVmZmVyDQogICAgICAo bWFwaGFzaCAobGFtYmRhIChrZXkgdmFsdWUpIChzdG9yZS0tcHJpbnQgKGxpc3QgJysrIGtleSB2 YWx1ZSkpKQ0KICAgICAgICAgICAgICAgKHN0b3JlLWxvZy10YWJsZSBzdG9yZSkpDQogICAgICAo bGV0ICgoZmlsZS1wcmVjaW91cy1mbGFnIHQpKQ0KICAgICAgICAod3JpdGUtcmVnaW9uIG5pbCBu aWwgKHN0b3JlLWxvZy1wYXRoIHN0b3JlKSBuaWwgJ3NpbGVudCkpKSkpDQoNCihkZWZzdWJzdCBz dG9yZS1sb2ctLWluYy1sb2ctY291bnQgKHN0b3JlKQ0KICAiSW5jcmVhc2UgbG9nIGNvdW50IGZv ciBTVE9SRSwgcG9zc2libHkgYXJyYW5nZSBmb3IgY29tcGFjdGluZy4NCkFycmFuZ2UgZm9yIGNv bXBhY3RpbmcgaWYgbG9nIGNvdW50IGV4Y2VlZHMgKGNvbXBhY3QtcmF0aW8gKiBzaXplLW9mLXRh YmxlKS4iDQogIChjbC1pbmNmIChzdG9yZS1sb2ctbG9nLWNvdW50IHN0b3JlKSkNCiAgKHdoZW4g KGFuZCAoc3RvcmUtbG9nLWNvbXBhY3QtcmF0aW8gc3RvcmUpDQogICAgICAgICAgICAgKD4gKHN0 b3JlLWxvZy1sb2ctY291bnQgc3RvcmUpDQogICAgICAgICAgICAgICAgKCogKHN0b3JlLWxvZy1j b21wYWN0LXJhdGlvIHN0b3JlKSAoaGFzaC10YWJsZS1jb3VudCAoc3RvcmUtbG9nLXRhYmxlIHN0 b3JlKSkpKSkNCiAgICAoY2wtcHVzaG5ldyBzdG9yZSBzdG9yZS1uZWVkLWNvbXBhY3RpbmctbGlz dCkNCiAgICAoc3RvcmUtY29tcGFjdC1kZW1vbi1zdW1tb24pKSkNCihjbC1kZWZtZXRob2Qgc3Rv cmUtcHV0IChrZXkgdmFsdWUgKHN0b3JlIHN0b3JlLWxvZykpDQogIChzdG9yZS1sb2ctLWVuc3Vy ZS10cmFuc2FjdGlvbi1idWZmZXIgKHN0b3JlKQ0KICAgIChzdG9yZS0tcHJpbnQgKGxpc3QgJysr IGtleSB2YWx1ZSkpDQogICAgKHN0b3JlLWxvZy0taW5jLWxvZy1jb3VudCBzdG9yZSkNCiAgICAo cHV0aGFzaCBrZXkgdmFsdWUgKHN0b3JlLWxvZy10YWJsZSBzdG9yZSkpKSkNCihjbC1kZWZtZXRo b2Qgc3RvcmUtcmVtIChrZXkgKHN0b3JlIHN0b3JlLWxvZykpDQogIChzdG9yZS1sb2ctLWVuc3Vy ZS10cmFuc2FjdGlvbi1idWZmZXIgKHN0b3JlKQ0KICAgIChzdG9yZS0tcHJpbnQgKGxpc3QgJy0t IGtleSkpDQogICAgKHN0b3JlLWxvZy0taW5jLWxvZy1jb3VudCBzdG9yZSkNCiAgICAocmVtaGFz aCBrZXkgKHN0b3JlLWxvZy10YWJsZSBzdG9yZSkpKSkNCihjbC1kZWZtZXRob2Qgc3RvcmUtcHVz aCAoa2V5IHZhbHVlIChzdG9yZSBzdG9yZS1sb2cpKQ0KICAoc3RvcmUtbG9nLS1lbnN1cmUtdHJh bnNhY3Rpb24tYnVmZmVyIChzdG9yZSkNCiAgICAoc3RvcmUtLXByaW50IChsaXN0ICdsKyBrZXkg dmFsdWUpKQ0KICAgIChzdG9yZS1sb2ctLWluYy1sb2ctY291bnQgc3RvcmUpDQogICAgKHB1c2gg dmFsdWUgKGdldGhhc2gga2V5IChzdG9yZS1sb2ctdGFibGUgc3RvcmUpKSkpKQ0KKGNsLWRlZm1l dGhvZCBzdG9yZS1kZWxldGUgKGtleSB2YWx1ZSAoc3RvcmUgc3RvcmUtbG9nKSkNCiAgKHN0b3Jl LWxvZy0tZW5zdXJlLXRyYW5zYWN0aW9uLWJ1ZmZlciAoc3RvcmUpDQogICAgKHN0b3JlLS1wcmlu dCAobGlzdCAnbC0ga2V5IHZhbHVlKSkNCiAgICAoc3RvcmUtbG9nLS1pbmMtbG9nLWNvdW50IHN0 b3JlKQ0KICAgIChwdXRoYXNoIGtleSAoZGVsZXRlIHZhbHVlIChnZXRoYXNoIGtleSAoc3RvcmUt bG9nLXRhYmxlIHN0b3JlKSkpDQogICAgICAgICAgICAgKHN0b3JlLWxvZy10YWJsZSBzdG9yZSkp KSkNCihjbC1kZWZtZXRob2Qgc3RvcmUtZ2V0IChrZXkgKHN0b3JlIHN0b3JlLWxvZykgJm9wdGlv bmFsIGRmbHQpDQogIChnZXRoYXNoIGtleSAoc3RvcmUtbG9nLXRhYmxlIHN0b3JlKSBkZmx0KSkN Cg0KOzsgYGZzJyBiYWNrZW5kDQooY2wtZGVmc3RydWN0IChzdG9yZS1mcyAoOmNvbnN0cnVjdG9y IHN0b3JlLWZzLS1tYWtlKSkNCiAgcGF0aCkNCihjbC1kZWZtZXRob2Qgc3RvcmUtY3JlYXRlIChw YXRoIChfYmFja2VuZCAoZXFsIGZzKSkgJmtleSAmYWxsb3ctb3RoZXIta2V5cykNCiAgKGlmIChm aWxlLWV4aXN0cy1wIHBhdGgpDQogICAgICAodW5sZXNzIChmaWxlLWRpcmVjdG9yeS1wIHBhdGgp DQogICAgICAgIChlcnJvciAiYGZzJyBiYWNrZW5kIHJlcXVpcmVzIFBBVEggdG8gYmUgYSBkaXJl Y3RvcnksIGJ1dCAlcyBpcyBub3QiIHBhdGgpKQ0KICAgIChta2RpciBwYXRoKSkNCiAgOzsgV2Ug bm9ybWFsaXplIFBBVEggcmlnaHQgYXdheSwgc2F2aW5nIGZ1dHVyZSBoYXNzbGVzLg0KICAoc3Rv cmUtZnMtLW1ha2UgOnBhdGggKGZpbGUtbmFtZS1hcy1kaXJlY3RvcnkgcGF0aCkpKQ0KKGNsLWRl Zm1ldGhvZCBzdG9yZS1wYXRoICgoc3RvcmUgc3RvcmUtZnMpKQ0KICAoc3RvcmUtZnMtcGF0aCBz dG9yZSkpDQoNCihkZWZzdWJzdCBzdG9yZS1mcy0ta2V5LXRvLXBhdGggKGtleSBzdG9yZSkNCiAg OzsgVE9ETzogZXNjYXBlIGlsbGVnYWwgY2hhcmFjdGVycw0KICAoY29uY2F0IChzdG9yZS1mcy1w YXRoIHN0b3JlKSAocHJpbjEtdG8tc3RyaW5nIGtleSkpKQ0KKGNsLWRlZm1ldGhvZCBzdG9yZS1w dXQgKGtleSB2YWx1ZSAoc3RvcmUgc3RvcmUtZnMpKQ0KICAod2l0aC10ZW1wLWJ1ZmZlcg0KICAg IChzdG9yZS0tcHJpbnQgdmFsdWUpDQogICAgKGxldCAoKGZpbGUtcHJlY2lvdXMtZmxhZyB0KSkN CiAgICAgICh3cml0ZS1yZWdpb24gbmlsIG5pbA0KICAgICAgICAgICAgICAgICAgICAoc3RvcmUt ZnMtLWtleS10by1wYXRoIGtleSBzdG9yZSkNCiAgICAgICAgICAgICAgICAgICAgbmlsICdxdWll dCkpKQ0KICB2YWx1ZSkNCihjbC1kZWZtZXRob2Qgc3RvcmUtZ2V0IChrZXkgKHN0b3JlIHN0b3Jl LWZzKSAmb3B0aW9uYWwgZGZsdCkNCiAgKGxldCAoKHBhdGggKHN0b3JlLWZzLS1rZXktdG8tcGF0 aCBrZXkgc3RvcmUpKSkNCiAgICAoaWYgKGZpbGUtZXhpc3RzLXAgcGF0aCkNCiAgICAgICAgKHdp dGgtdGVtcC1idWZmZXINCiAgICAgICAgICAoaW5zZXJ0LWZpbGUtY29udGVudHMgcGF0aCkNCiAg ICAgICAgICAocmVhZCAoY3VycmVudC1idWZmZXIpKSkNCiAgICAgIGRmbHQpKSkNCihjbC1kZWZt ZXRob2Qgc3RvcmUtcmVtIChrZXkgKHN0b3JlIHN0b3JlLWZzKSkNCiAgKGRlbGV0ZS1maWxlIChz dG9yZS1mcy0ta2V5LXRvLXBhdGgga2V5IHN0b3JlKSkNCiAgbmlsKQ0KKHByb3ZpZGUgJ3N0b3Jl KQ0KOzs7IHN0b3JlLmVsIGVuZHMgaGVyZQ0K --_003_1FAB70D61E6A4B08A9FDBD0F0F4550FBmitedu_ Content-Type: text/plain; name="ATT00001.c" Content-Description: ATT00001.c Content-Disposition: attachment; filename="ATT00001.c"; size=22; creation-date="Mon, 13 Dec 2021 12:23:04 GMT"; modification-date="Mon, 13 Dec 2021 12:23:04 GMT" Content-ID: <1C33D7C1338BDD4D89F458563FAF0476@exchange.mit.edu> Content-Transfer-Encoding: base64 DQoNCkJlc3QsDQpRaWFudGFuDQoNCg== --_003_1FAB70D61E6A4B08A9FDBD0F0F4550FBmitedu_--