From owner-freebsd-mips@FreeBSD.ORG Fri Jan 29 17:03:02 2010 Return-Path: Delivered-To: freebsd-mips@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF6CA106568F; Fri, 29 Jan 2010 17:03:02 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 73B6C8FC22; Fri, 29 Jan 2010 17:03:02 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.3/8.14.1) with ESMTP id o0TGxwx3032016; Fri, 29 Jan 2010 09:59:58 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Fri, 29 Jan 2010 10:00:52 -0700 (MST) Message-Id: <20100129.100052.1013538172663276257.imp@bsdimp.com> To: neelnatu@gmail.com From: "M. Warner Losh" In-Reply-To: References: <85D9D383-29A3-4F09-A2FE-61E4EA85CE9B@lakerest.net> X-Mailer: Mew version 6.3 on Emacs 22.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=utf-8 Content-Transfer-Encoding: base64 Cc: jmallett@FreeBSD.org, freebsd-mips@FreeBSD.org Subject: Re: Code review: groundwork for SMP X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2010 17:03:03 -0000 R3JlZXRpbmdzIG9uZSBhbmQgYWxsLiAgVGhhbmtzIGZvciB3ZWlnaGluZyBpbiBvbiB0aGlzIGlz c3VlLg0KDQpJbiBnZW5lcmFsLCBJIGFncmVlIHdpdGggTmVlbCBoZXJlLiAgQnV0IEkgYWxzbyB0 aGluayB3ZSBuZWVkIHRvIHNlZQ0KaWYgd2UgY2FuIGJlIGZsZXhpYmxlIGFuZCBwdXNoIHRoaXMg ZG93biBpbnRvIGEgcGVyLWNwdS10eXBlDQpkZWNpc2lvbiAod2hpY2ggZGlmZmVycyBzbGlnaHRs eSBmcm9tIGEgcGVyLXBsYXRmb3JtIHR5cGUgYmVjYXVzZSB3ZQ0KY2FuIGhhdmUgYSBDUFUgYXBw ZWFyaW5nIGluIG11bHRpcGxlIHBsYXRmb3Jtcywgb3IgbXVsdGlwbGUgQ1BVcw0KYXBwZWFyaW5n IHdpdGhpbiBvbmUgcGxhdGZvcm0pLiAgSWYgd2UgbWFrZSBpdCBhIHBlci1jcHUtdHlwZQ0Kc29s dXRpb24sIHdlIGNvdWxkIGhhdmUgYSBzeXMvbWlwcy9taXBzL3BjcHVfbWFjaGRlcC5jIHdoaWNo IGRvZXMgdGhlDQpub3JtYWwgU01QIHN0dWZmLCBhcyB3ZWxsIGFzIGhhdmluZyBzeXMvbWlwcy94 bHIvcGNwdV9tYWNoZGVwLmMgd2hpY2gNCmRvZXMgc29tZXRoaW5nIG9wdGltaXplZCBmb3IgdGhl IFhMUi4gIENoYW5jZXMgYXJlIGdvb2QgdGhhdCBkaWZmZXJlbnQNCkNQVXMgd2lsbCB3YW50IHRv IGhhdmUgZGlmZmVyZW50IHRyYWRlLW9mZnMgaGVyZS4gIFdlJ2QgYWxzbyBuZWVkIHNvbWUNCndh eSB0byBlbmNvZGUgdGhpcyBpbiBhbiBpbmNsdWRlIGZpbGUsIHNvIHRoZXJlJ3Mgc29tZSB3b3Jr IHRvIG1ha2UNClBDUFUgbWFjcm8gZGlmZmVyZW50IGZvciBkaWZmZXJlbnQgQ1BVcy4uLg0KDQpX ZSBjb3VsZCBsb2FkICRncCB3aXRoIHRoZSBwZXItY3B1IGluZm8uICBUaGlzIGxvYWRpbmcgaXMg b3J0aG9nb25hbA0KdG8gdGhlIHZhbHVlIHdlIGxvYWQuICBXaXRoIE5lZWwncyBtZXRob2QsIHdl IGNvdWxkIGxvYWQgaXQgd2l0aCB0aGUNCnNhbWUgdmFsdWUgb24gdGhlIHRyaXAgaW50byB0aGUg a2VybmVsIGV2ZXJ5IHRpbWUuICBXZSBuZWVkIHRvIGxvYWQgaXQNCnRvIHNvbWUgdmFsdWUsIHNh dmluZyB0aGUgb2xkIHZhbHVlLCB3aGVuIHdlIHRyYXAgaW50byB0aGUga2VybmVsDQpiZWNhdXNl IHdlIGNhbid0IHRydXN0IHRoZSB1c2VyIHRvIG5vdCBkbyBzb21ldGhpbmcgbGlrZToNCglvciBn cCwgemVybywgemVybw0Kb3Igd29yc2UsIGNhdXNpbmcgc2VjdXJpdHkgaXNzdWVzIChwYW5pY3Ms IHdyb25nIGRhdGEgYWNjZXNzZWQsIGV0YykuDQpFdmVuIG9uIHRoZSBYTFIgaWYgd2UgaGF2ZSBs b3RzIG9mIHRyaXBzIGludG8gdGhlIGtlcm5lbCwgd2UncmUgbGlrZWx5DQp0byBwdXQgYSBsb3Qg b2YgcHJlc3N1cmUgb24gdGhlIFRMQnMgaWYgd2UncmUgY29uc3RhbnRseSBpbnN0YWxsaW5nDQpv bmUgdGhhdCBpc24ndCB3aXJlZC4gIFNvIGV2ZW4gdGhlIHBjcHVbZ2V0Y3B1aWQoKV0gbWV0aG9k IGZhaWxzIGhlcmUuDQoNClRoZSBhZHZhbnRhZ2Ugb2YgTmVlbCdzIG1ldGhvZCBpcyB0aGF0IGl0 IHdvcmtzIHdlbGwgZm9yIGEgbGFyZ2UgY2xhc3MNCm9mIFNNUCBtYWNoaW5lcywgYW5kIHRoZSBj b2RlIHBhdGggaXMgbm8gZGlmZmVyZW50IGZvciBub24tU01QDQptYWNoaW5lcyAoc2luY2UgdGhl IG5vbi1TTVAgbWFjaGluZXMgY2FuIGp1c3QgdXNlIGFuIGFkZHJlc3MgaW4gS1NFRzANCmFuZCBu b3QgbmVlZCBhbnkgVExCIGVudHJ5KS4gIEl0IGFsc28gc2NhbGVzIHdlbGwgd2l0aCB0aGUgbnVt YmVyIG9mDQpDUFVzLCBzaW5jZSBlYWNoIGFkZGl0aW9uYWwgQ1BVIGp1c3QgbmVlZHMgMiBwYWdl cyBvZiBSQU0gYW5kIHdlIGRvbid0DQpoYXZlIHRvIGJlIGxpbWl0ZWQgYnkgTUFYQ1BVLiAgTWFu eSBzeXN0ZW1zIHdpbGwgYmVuZWZpdCBmcm9tIHRoaXMgYXMNCndlbGwsIHNpbmNlLCBmb3IgZXhh bXBsZSwgdGhlIE9jdGVvbiBzdXBwb3J0cyBtdWxpcGxlIGV4ZWN1dGl2ZXMNCnBhcnRpdGlvbmlu ZyB0aGUgY29yZXMuICBJbiB0aGF0IHNjZW5hcmlvLCBGcmVlQlNEIG1heSBiZSBnaXZlbiBDUFVz IDENCmFuZCAxNSwgbGVhdmluZyBhIHJhdGhlciBsYXJnZSBnYXAgaW4gQ1BVIG51bWJlcnMgKHNp bmNlIHRoZSBNSVBTNjRyMg0KbWV0aG9kIG9mIGdldHRpbmcgdGhlIGNvcmUgcmV0dXJucyBhIHJh dyBudW1iZXIpLiAgVGhpcyBnYXAgd2lsbCBtZWFuDQphIHRhYmxlIGxvb2t1cCwgb3IgbGFyZ2Vy IHRhYmxlcy4gIEkgZG9uJ3Qga25vdyBpZiBhbGwgdGhlIGFzc3VtcHRpb25zDQphYm91dCBjb250 aWd1b3VzIENQVSBudW1iZXJzIGFyZSB5ZXQgb3V0IG9mIHRoZSBrZXJuZWwuDQoNCkkgYWxzbyB0 ZW5kIHRvIGFncmVlIHdpdGggTmVlbCB0aGF0IHBjcHVbZ2V0Y3B1aWQoKV0gbGlrZWx5IGlzIGdv aW5nDQp0byBiZSBleHBlbnNpdmUgdG8gY29tcHV0ZSBmb3IgdGhlIHRyYXAgYW5kIGludGVycnVw dCBjb250ZXh0cyB3ZSBoYXZlDQp0byBydW4gaW4uIFdlIHNob3VsZCBhdm9pZCB0aGF0IGFzIG11 Y2ggYXMgcG9zc2libGUuDQoNCk9uZSBvdGhlciBuaWNlIHNpZGUgZWZmZWN0IG9mIE5lZWwncyBz Y2hlbWUgaXMgdGhhdCB5b3UgY2FuIGhhdmUgTVANCmFuZCAhTVAga2VybmVsIG1vZHVsZXMgdGhh dCB1c2UgdGhlIHNhbWUgbWV0aG9kIHRvIGdldCBwY3B1IGRhdGEuICBCdXQNCnRoYXQncyBhIG1p bm9yIHBvaW50IGF0IHRoaXMgc3RhZ2Ugb2YgdGhlIGdhbWUuDQoNClRoZSBYTFIgd2lsbCBoYXZl IHNjaGVkdWxlciBjaGFsbGVuZ2VzIGFzIHdlbGwuICBJdCB3aWxsIHB1c2ggdGhlDQpkZXNpZ24g YXNzdW1wdGlvbnMgb2YgVUxFIGJleW9uZCB0aGUgYnJlYWtpbmcgcG9pbnQsIEkgZmVhci4NCkh5 cGVydGhyZWFkaW5nIGFscmVhZHkgZXhpc3RzIG9uIGludGVsLCBhbmQgVUxFIGNvcGVzLCBhIGJp dCwgd2l0aA0KaXQuICBCdXQgd2l0aCB0aGUgaGlnaCBudW1iZXIgb2YgdGhyZWFkcyBlYWNoIENQ VSBjYW4gaGF2ZSwgd2UgbWF5DQpuZWVkIHNvbWV0aGluZyB3aXRoIGEgbGl0dGxlIG1vcmUgc21h cnRzLiAgU29tZXRoaW5nIHRoYXQga25vd3MgaXQNCm1pZ2h0IGJlIGJldHRlciB0byBzY2hlZHVs ZSB0d28gZGlmZmVyZW50IHByb2Nlc3NlcyBvbiB0d28gZGlmZmVyZW50DQpjb3JlcywgYW5kIGxl YXZlIHNvbWUgb2YgdGhlIHRocmVhZHMgaWRsZSB0byByZWR1Y2UgVExCIHByZXNzdXJlLCBmb3IN CmV4YW1wbGUuDQoNClBlciBDUFUgc2NyYXRjaCByZWdpc3RlcnMgZG8gbm90IGV4aXN0IG9uIE1J UFMsIGluIGdlbmVyYWwuICBTb21lIENQVXMNCmhhdmUgdGhlbSwgYW5kIG1hbnkgZG8gbm90LiAg Q1AwIHJlZ2lzdGVycyBhcmUgcGxlbnRpZnVsIGluIG1vcmUNCm1vZGVybiBkZXNpZ25zLCBhbmQg c29tZSBvZiB0aGVtIG1heSBldmVuIGJlIHVzZWZ1bCBmb3Igb3VyIG5lZWRzLg0KSG93ZXZlciwg bWZjMCBhbmQgbXRjMCBvZnRlbiBoYXZlIHBpcGVsaW5lIGhhemFyZHMgYXNzb2NpYXRlZCB3aXRo DQp0aGVtIHdoaWNoIHdpbGwgdHJpcCB1cCB0aGUgdW53YXJ5LiAgV2hlbiByZWFkaW5nIHRoZSBo aXN0b3JpY2FsDQplcnJhdGEgZm9yIE1JUFMgQ1BVcywgd2Ugb2Z0ZW4gZmluZCB0aGF0IHRoaXMg aXMgd2hlcmUgd2UgbmVlZCB0byBkbw0KdGhlIG1vc3Qgd29ya2Fyb3VuZHMuDQoNCkkgZ3Vlc3Mg dGhpcyBpcyBhIGxvbmcgd2F5IHRvIHNheSAiSSB0aGluayB3ZSBzaG91bGQgY29tbWl0IE5lZWwn cw0KcGF0Y2hlcy4gIFdlIHNob3VsZCB3b3JrIGFsb25nIHR3byBmcm9udHM6ICgxKSBpbXBsZW1l bnRpbmcgSnVsaSdzDQppZGVhIG9mIHNoYXJpbmcga3N0YWNrIGFuZCBwY3B1IGRhdGEgaW4gb25l IFRMQiBhbmQgKDIpIG1ha2luZyBpdCBzbw0KdGhhdCBDUFVzIHdoZXJlIHRoaXMgaXMgc3ViLW9w dGltYWwgY2FuIHN3YXAgaW4gdGhlaXIgb3duDQppbXBsZW1lbnRhdGlvbi4iDQoNCldhcm5lcg0K DQpJbiBtZXNzYWdlOiA8ZGZmZTg0ODMxMDAxMjkwNzI1ZzJjYTI1NzRhcDIyYjgyZjJhZDM4YWYy ZDZAbWFpbC5nbWFpbC5jb20+DQogICAgICAgICAgICBOZWVsIE5hdHUgPG5lZWxuYXR1QGdtYWls LmNvbT4gd3JpdGVzOg0KOiBUaGFua3MgSnVsaSwgUmFuZGFsbCBhbmQgSkMgZm9yIHRoZSBjb21t ZW50cy4NCjogDQo6IEkgdGhpbmsgaXQgaXMgZmFpciB0byBhc2sgdGhhdCB3ZSBkb24ndCBidXJu IGFub3RoZXIgVExCIGVudHJ5IHRvDQo6IHN0b3JlIHRoZSBwY3B1IGRhdGEuIFNvIG1heWJlIGl0 IG1pZ2h0IGhlbHAgaWYgSSB3ZW50IHRocm91Z2ggd2hhdA0KOiBvcHRpb25zIEkgY29uc2lkZXJl ZCBiZWZvcmUgc2V0dGxpbmcgb24gdGhpcyBvbmU6DQo6IA0KOiAtIE9uZSBvZiB0aGUgZmlyc3Qg dGhpbmdzIHRoYXQgSSBkaWQgaW52ZXN0aWdhdGUgd2FzIHVzaW5nIHBlci1jcHUNCjogc2NyYXRj aCByZWdpc3RlcnMgYnV0IHRoZSBTaWJ5dGUgZGlkIG5vdCBoYXZlIGFueSBhbmQgdGhleSBhcmUg bm90DQo6IHBhcnQgb2YgdGhlIE1JUFMgYXJjaGl0ZWN0dXJlLg0KOiANCjogLSBUaGUgc2Vjb25k IHRoaW5nIEkgY29uc2lkZXJlZCB3YXMgdXNpbmcgYSBwbGF0Zm9ybS1zcGVjaWZpYw0KOiBnZXRj cHVpZCgpIHRvIGluZGV4IGludG8gdGhlIHN0cnVjdCBwY3B1IHBjcHVbTUFYQ1BVXSBhcnJheSB0 byBjb21wdXRlDQo6IHRoZSBLU0VHMCBhZGRyZXNzIG9mIHBjcHUgYXQgcnVudGltZS4gSG93ZXZl ciB0aGlzIHR1cm5lZCBvdXQgdG8gYmUgYQ0KOiBiaXQgbWVzc3kgYmVjYXVzZSB0aGVyZSBhcmUg Y29uc3VtZXJzIG9mIGdldGNwdWlkKCkgaW4gZXhjZXB0aW9uDQo6IGNvbnRleHQgd2hlcmUgd2Ug YXJlIHJlc3RyaWN0ZWQgdG8gdXNpbmcgb25seSBrMCBhbmQgazEgKGFuZCBzb21ldGltZXMNCjog b25seSBvbmUgb2YgdGhlbSkuIEFsc28sIGxpa2UgSnVsaSBwb2ludGVkIG91dCBnZXRjcHVpZCgp IGlzIHNsb3cgb24NCjogc29tZSBjcHVzIGFuZCBJIGRpZCBub3Qgd2FudCB0byBtYWtlIHRoZSBh c3N1bXB0aW9uIHRoYXQgb25lIGNvdWxkDQo6IHdyaXRlIGdldGNwdWlkKCkgdXNpbmcgYSBzaW5n bGUgazAvazEgcmVnaXN0ZXIuDQo6IA0KOiBTbywgaGF2aW5nIHRoZSBwY3B1IHBvaW50ZXIgaW4g YSBUTEIgZW50cnkgZGl2b3JjZXMgdXMgZnJvbSBhbnkNCjogYXNzdW1wdGlvbnMgYWJvdXQgdGhl IENQVSB3ZSBhcmUgcnVubmluZyBvbi4NCjogDQo6IEkgdGhpbmsgdGhhdCB0aGVyZSBpcyBhIGxl Z2l0aW1hdGUgY29uY2VybiBhYm91dCB0aGlzIG9uIHRoZSBYTFIgLSBidXQNCjogZ2l2ZW4gdGhh dCB5b3UgYXJlIHNoYXJpbmcgdGhlIFRMQiBhbW9uZyA0IHRocmVhZHMgSSB0aGluayB0aGVyZSBp cw0KOiB0aGUgYmlnZ2VyIGlzc3VlIG9mIHRoZSB3aXJlZCBrc3RhY2sgZW50cmllcyB0aGF0IHlv dSBuZWVkIHRvIHNvbHZlDQo6IGJlZm9yZSBldmVuIHRoaW5raW5nIGFib3V0IHBjcHUgbWFwcGlu Zy4NCjogDQo6IEkgZGlkIG5vdCBjb25zaWRlciB0aGUgYXBwcm9hY2ggc3VnZ2VzdGVkIGJ5IEp1 bGkgd2hlcmUgdGhlIHBjcHUgYW5kDQo6IGtzdGFjayBwb2ludGVycyBjYW4gYmUgc3Rhc2hlZCBp biBhIHNpbmdsZSB3aXJlZCBUTEIgZW50cnkuIEkgbmVlZA0KOiBzb21lIHRpbWUgdG8gY2hldyBv biBpdCBhbmQgcHJvdG90eXBlIGl0Lg0KOiANCjogSSB3b3VsZCBzdGlsbCBsaWtlIHRvIGNvbW1p dCB0aGlzIHNvIGFzIHRvIGtlZXAgbWFraW5nIHByb2dyZXNzIG9uIHRoZQ0KOiBTTVAgc3VwcG9y dC4gVGhpcyBpcyBhIHNtYWxsIHBpZWNlIG9mIHRoZSBiaWdnZXIgZ29hbCBvZiBnZXR0aW5nIFNN UA0KOiBmdW5jdGlvbmFsIGFuZCBjYW4gYmUgcmVwbGFjZWQgaW4gdGhlIGZ1dHVyZSBpZiBuZWVk IGJlLg0KOiANCjogYmVzdA0KOiBOZWVsDQo6IA0KOiBPbiBUaHUsIEphbiAyOCwgMjAxMCBhdCAx MDo0MiBQTSwgSnVsaSBNYWxsZXR0IDxqbWFsbGV0dEBmcmVlYnNkLm9yZz4gd3JvdGU6DQo6ID4g T24gVGh1LCBKYW4gMjgsIDIwMTAgYXQgMjE6MjgsIFJhbmRhbGwgU3Rld2FydCA8cnJzQGxha2Vy ZXN0Lm5ldD4gd3JvdGU6DQo6ID4+PiBbIFVzaW5nIGEgc2luZ2xlIHdpcmVkIFRMQiBlbnRyeSBm b3Iga3N0YWNrIGFuZCBwY3B1IF0NCjogPj4NCjogPj4gV2hpY2ggbWVhbnMgeW91IGhhdmUgYSBi aWcgYXJyYXkgdGhhdCB5b3UgYXJlIG9mZnNldHRpbmcuDQo6ID4NCjogPiBOb3QgcmVhbGx5IOKA lCB5b3UgY2FuIGhhdmUgYSBzdHJ1Y3R1cmUgYXQgMHhjMDAwMDAwMDAwMDAwMDAwdSAob3IgdGhl DQo6ID4gc2FtZSA+PiAzMikgd2l0aCB0d28gcG9pbnRlcnMgaW4gaXQsIGV2ZW4sIG9uZSB0byBw Y3B1IGFuZCBvbmUgdG8NCjogPiBLU1RBQ0tfUEFHRVMgZGlyZWN0LW1hcHBlZCwgY29udGlndW91 cyBwYWdlcy4gwqBUaGVuIHlvdSBjYW4gbG9hZCB0aGUNCjogPiBrc3RhY2sgYWRkcmVzcyBvciB0 aGUgcGNwdSBiYXNlIHZlcnkgcXVpY2tseS4gwqBPZiBjb3Vyc2UsIHlvdSBjYW4gZXZlbg0KOiA+ IGhhdmUgYSBzaW5nbGUgd2lyZWQgZW50cnkgY29uc2lzdGluZyBvZiB0aGUgcGNwdSBkYXRhIGFu ZCB0aGVuIHB1dCBhDQo6ID4gcG9pbnRlciB0byB0aGUgdG9wIG9mIHRoZSBrc3RhY2sgaW4gaXQu IMKgSSBkb24ndCB0aGluayB5b3UgY2FuIGdldCBieQ0KOiA+IHdpdGggbm8gd2lyZWQgVExCIGVu dHJpZXMsIGJ1dCB5b3UgYWxzbyBkb24ndCBoYXZlIHRvIGluZGV4IGEgYmlnDQo6ID4gYXJyYXku IMKgVGhlIG5pY2UgdGhpbmcgYWJvdXQgc2V0dGluZyB1cCBhIHBlci1DUFUgVExCIGVudHJ5ICh5 b3UgaGF2ZQ0KOiA+IHRvIHNldCB1cCBhdCBsZWFzdCBvbmUsIHRoZSBrc3RhY2ssIGluIG9yZGVy IHRvIGJlIGFibGUgdG8gaGFuZGxlDQo6ID4gZXhjZXB0aW9ucykgaXMgdGhhdCB0aGVuIHlvdSBu ZWVkIG9ubHkgYWNjZXNzIG9mZnNldHMgaW50byBpdCB0aGF0IGFyZQ0KOiA+IGtub3duIGF0IGNv bXBpbGUgdGltZSBhbmQgY29uc3RhbnQgbm8gbWF0dGVyIHdoYXQgQ1BVIHlvdSdyZSBydW5uaW5n DQo6ID4gb24uIMKgTG9hZCB0aGUga3N0YWNrIGJ5IGRvaW5nICJsZCBzcCwgMCgweGMuLi4pIiBh bmQgbG9hZCB0aGUgcGNwdQ0KOiA+IGFkZHJlc3MgYnkgZG9pbmcgImxkIHQwLCA4KDB4Yy4uLi4p Ii4gwqBUd28gd2lyZWQgZW50cmllcyBsZXRzIHlvdSBnZXQNCjogPiByaWQgb2YgdGhlIGluZGly ZWN0aW9uLCBidXQgeW91IGNhbiBnZXQgYnkgd2l0aCBvbmUgYW5kIHN0aWxsIG5vdCBoYXZlDQo6 ID4gdG8gZG8gKDEpIHJ1bi10aW1lIGNvbXB1dGF0aW9uIG9mIHRoZSBpbmRleCBpbnRvIHNvbWUg YXJyYXkgKDIpDQo6ID4gcG9zc2libHkgdmVyeSBleHBlbnNpdmUgZ2V0dGluZyBvZiB0aGUgY3B1 aWQuDQo6ID4NCjogPj4gSSB3YXMgZXZlbiB0aGlua2luZyBnZXQgYSBMQVJHRSBlbnRyeS4uIG9u ZSB0aGF0IGlzIHNheSA4IE1lZw0KOiA+PiBmb3IgdGhlIGtlcm5lbC4uIGNvdmVyaW5nIGFsbCB0 ZXh0L2RhdGEgZXRjLi4uIHdpdGggdGhpcw0KOiA+PiBuZXcgc3VwZXIgcGFnZSBzdHVmZi4gb2Yg Y291cnNlIEkgaGF2ZSBuZXZlciBsb29rZWQgaW50byBob3cNCjogPj4gaXRzIGltcGxlbWVudGVk Li4NCjogPg0KOiA+IFRoYXQgd291bGQgYmUgZWFzeSB0byBkbywgYnV0IHdoYXQgd291bGQgYmUg dGhlIGJlbmVmaXRzIG9mIGFjY2Vzc2luZw0KOiA+IHRoYXQgZGF0YSB0aHJvdWdoIGEgd2lyZWQg VExCIGVudHJ5IGluc3RlYWQgb2YgdGhlIGRpcmVjdCBtYXA/DQo6ID4NCjogPj4gWWVzLCB5b3Ug cGF5IGFuIGluZGV4IHJlZmVyZW5jZSBmb3IgZXZlcnkgYWNjZXNzIC4uIG9yIGF0DQo6ID4+IGxl YXN0IG9uZSB0byBzZXR1cCBhIHBvaW50ZXIuLiBidXQgSSB0aGluayB0aGF0IGl0IG11Y2ggY2hl YXBlcg0KOiA+PiB0aGFuIGEgVExCIG1pc3MgaXMuLi4gKHdvcmRzIGZvciBpbXAgdG8gdGhpbmsg YWJvdXQpLi4uDQo6ID4NCjogPiBZZXMsIFRMQiBtaXNzZXMgYXJlIHZlcnkgc2xvdy4gwqBZb3Vy IGRlc2lyZSB0byBhdm9pZCBhZGRpbmcgYW5vdGhlcg0KOiA+IHdpcmVkIGVudHJ5IHNlZW1zIHBy ZXR0eSByZWFzb25hYmxlLiDCoEkgdGhpbmsgdGhhdCB1c2luZyBhIHNpbmdsZQ0KOiA+IHdpcmVk IFRMQiBlbnRyeSBmb3IgYSBtdXggb3IgZm9yIGJvdGggdGhlIGtzdGFjayBhbmQgcGNwdSBpcyBl YXN5IGFuZA0KOiA+IHVzYWJsZS4gwqBJIGZlZWwgbGlrZSBqdXN0IHdpcmluZyB0aGUga3N0YWNr IGFuZCBwdXR0aW5nIGENCjogPiBkaXJlY3QtbWFwcGVkLCBzb21ldGltZXMtcmVjb21wdXRlZCBw b2ludGVyIHRvIHRoZSBwY3B1IGludG8gZ3AgaXMgdGhlDQo6ID4gYmVzdCBjb21iaW5hdGlvbiBp biB0aGUgbG9uZyBydW4g4oCUIGV2ZW4ganVzdCBsb2FkaW5nIGFuIGltbWVkaWF0ZQ0KOiA+IDY0 LWJpdCBhZGRyZXNzIGlzIHByZXR0eSBzbG93IHdydCBob3cgb2Z0ZW4gdGhpbmdzIGluIHRoZSBQ Q1BVIGFyZQ0KOiA+IGFjY2Vzc2VkIGluIFNNUCBrZXJuZWxzLg0KOiA+DQo6ID4gSnVsaS4NCjog Pg0KOiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KOiBm cmVlYnNkLW1pcHNAZnJlZWJzZC5vcmcgbWFpbGluZyBsaXN0DQo6IGh0dHA6Ly9saXN0cy5mcmVl YnNkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVic2QtbWlwcw0KOiBUbyB1bnN1YnNjcmliZSwg c2VuZCBhbnkgbWFpbCB0byAiZnJlZWJzZC1taXBzLXVuc3Vic2NyaWJlQGZyZWVic2Qub3JnIg0K OiANCjogDQo=