Received: from merganser.its.uu.se (merganser.its.uu.se [130.238.6.236]) by hub.org (8.9.3/8.9.3) with ESMTP id RAA08531 for ; Tue, 21 Sep 1999 17:44:45 -0400 (EDT) (envelope-from peter@peter-e.yi.org) Received: from uria.its.uu.se ([130.238.7.14]:1676 "EHLO peter-e.yi.org") by merganser.its.uu.se with ESMTP id ; Tue, 21 Sep 1999 23:44:33 +0200 Received: from peter (helo=localhost) by peter-e.yi.org with local-esmtp (Exim 3.02 #2) id 11TXjz-0000lK-00; Tue, 21 Sep 1999 23:46:23 +0200 Date: Tue, 21 Sep 1999 23:46:19 +0200 (CEST) From: Peter Eisentraut To: Bruce Momjian cc: Vince Vielhaber , The Hermit Hacker , docs@postgreSQL.org Subject: INSTALL file (was Re: [HACKERS] Re: HISTORY for 6.5.2) In-Reply-To: <199909210247.WAA27574@candle.pha.pa.us> Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-651635041-937944888=:1899" Content-ID: Sender: Peter Eisentraut This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --8323328-651635041-937944888=:1899 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-ID: On Sep 20, Bruce Momjian mentioned: > I agree our INSTALL is very large. Is there some way we can simplify > the install process? On the one hand a database server is probably not your everyday ./configure && make && make install program you get from freshmeat and you do want to put some time into a proper installation. On the other hand the INSTALL file is really way too long and makes for unpleasant reading. Here are a couple of ideas. * Chapter 2 "Ports" should be moved to the README file (has nothing to do with the actual installation). * Move the gory details of item 5 (flex) to a separate file (README.flex). * Move the locale stuff into a separate file. * Same with Kerberos * Move the release notes at the end to CHANGELOG. That should make the file somewhat smaller, then also it is really to verbose at times and is formatted really oddly, at least on my system. Okay, now I really went out of my way and redid the whole thing. You'll find the result attached. This is merely an idea of what I would consider simpler. I removed some inconsistencies, things that were unnecessary, too complicated, etc. Okay, I removed a lot of stuff, but most of the stuff people can really figure out themselves if they need them in the first place. And I shrunk the thing to 25%. Perhaps there should be a separate Install FAQ of the sort "My shell said 'export: Command not found.'" or "What's a shared library?" to move the really annoying stuff out of people's ways. Comments? -- Peter Eisentraut - peter_e@gmx.net http://yi.org/peter-e --8323328-651635041-937944888=:1899 Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1; NAME="INSTALL.new" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: New INSTALL file? Content-Disposition: ATTACHMENT; FILENAME="INSTALL.new" UG9zdGdyZVNRTCBJbnN0YWxsYXRpb24gR3VpZGUNCmJ5IFRoZSBQb3N0Z3Jl U1FMIERldmVsb3BtZW50IFRlYW0NCg0KUG9zdGdyZVNRTCBpcyCpIDE5OTgt OSBieSB0aGUgUG9zdGdyZXMgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwLg0K DQpQbGVhc2UgY29uc3VsdCB0aGUgZmlsZSBSRUFETUUgZmlyc3QhDQoNClRo aXMgaW5zdGFsbGF0aW9uIHByb2NlZHVyZSBtYWtlcyBzb21lIGFzc3VtcHRp b25zIGFib3V0IHRoZSBkZXNpcmVkDQpjb25maWd1cmF0aW9uIGFuZCBydW50 aW1lIGVudmlyb25tZW50IGZvciB5b3VyIHN5c3RlbS4gVGhpcyBtYXkgYmUN CmFkZXF1YXRlIGZvciBtYW55IGluc3RhbGxhdGlvbnMsIGFuZCBpcyBhbG1v c3QgY2VydGFpbmx5IGFkZXF1YXRlIGZvciBhDQpmaXJzdCBpbnN0YWxsYXRp b24uIEJ1dCB5b3UgbWF5IHdhbnQgdG8gZG8gYW4gaW5pdGlhbCBpbnN0YWxs YXRpb24gdXAgdG8NCnRoZSBwb2ludCBvZiB1bnBhY2tpbmcgdGhlIHNvdXJj ZSB0cmVlIGFuZCBpbnN0YWxsaW5nIGRvY3VtZW50YXRpb24sIGFuZA0KdGhl biBwcmludCBvciBicm93c2UgdGhlIEFkbWluaXN0cmF0b3IncyBHdWlkZS4N Cg0KQmVmb3JlIGluc3RhbGxpbmcgUG9zdGdyZXMsIHlvdSBtYXkgd2lzaCB0 byB2aXNpdCB3d3cucG9zdGdyZXNxbC5vcmcNCihodHRwOi8vd3d3LnBvc3Rn cmVzcWwub3JnKSBmb3IgdXAgdG8gZGF0ZSBpbmZvcm1hdGlvbiwgcGF0Y2hl cywgZXRjLg0KDQpUaGVzZSBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGFz c3VtZToNCm8gIFlvdSBhbHJlYWR5IGhhdmUgZG93bmxvYWRlZCB0aGUgc291 cmNlcy4gKElmIG5vdCwgc2VlIHdlYiBzaXRlLikNCm8gIENvbW1hbmRzIGFy ZSBVbml4LWNvbXBhdGlibGUuIFNlZSBub3RlIGJlbG93LiANCm8gIERlZmF1 bHRzIGFyZSB1c2VkIGV4Y2VwdCB3aGVyZSBub3RlZC4gDQpvICBVc2VyICdw b3N0Z3JlcycgaXMgdGhlIFBvc3RncmVzIHN1cGVydXNlci4gDQpvICBUaGUg c291cmNlIHBhdGggaXMgL3Vzci9zcmMvcGdzcWwgKG90aGVyIHBhdGhzIGFy ZSBwb3NzaWJsZSkuIA0KbyAgVGhlIHJ1bnRpbWUgcGF0aCBpcyAvdXNyL2xv Y2FsL3Bnc3FsIChvdGhlciBwYXRocyBhcmUgcG9zc2libGUpLiANCiAgICAg ICAgDQpDb21tYW5kcyB3ZXJlIHRlc3RlZCBvbiBSZWRIYXQgTGludXggdmVy c2lvbiA1LjIuIEV4Y2VwdCB3aGVyZSBub3RlZCwgdGhleQ0Kd2lsbCBwcm9i YWJseSB3b3JrIG9uIG1vc3Qgc3lzdGVtcy4gQ29tbWFuZHMgbGlrZSBwcyBh bmQgdGFyIG1heSB2YXJ5DQp3aWxkbHkgYmV0d2VlbiBwbGF0Zm9ybXMgb24g d2hhdCBvcHRpb25zIHlvdSBzaG91bGQgdXNlLiBVc2UgY29tbW9uIHNlbnNl DQpiZWZvcmUgdHlwaW5nIGluIHRoZXNlIGNvbW1hbmRzLg0KDQpPdXIgTWFr ZWZpbGVzIHJlcXVpcmUgR05VIG1ha2UuIFRoZXkgd2lsbCBub3Qgd29yayB3 aXRoIG5vbi1HTlUgbWFrZQ0KcHJvZ3JhbXMuIElmIHlvdSBkbyBub3QgaGF2 ZSBHTlUgbWFrZSAoY2hlY2sgbWFrZSAtLXZlcnNpb24pLCBnZXQgaXQgZnJv bQ0Kd3d3LmdudS5vcmcuDQoNCg0KUmVxdWlyZW1lbnRzIHRvIFJ1biBQb3N0 Z3Jlcw0KDQpJbiBnZW5lcmFsLCBtb3N0IFVuaXgtY29tcGF0aWJsZSBwbGF0 Zm9ybXMgd2l0aCBtb2Rlcm4gbGlicmFyaWVzIHNob3VsZCBiZQ0KYWJsZSB0 byBydW4gUG9zdGdyZXMuICBBbHRob3VnaCB0aGUgbWluaW11bSByZXF1aXJl ZCBtZW1vcnkgZm9yIHJ1bm5pbmcNClBvc3RncmVzIGlzIGFzIGxpdHRsZSBh cyA4TUIsIHRoZXJlIGFyZSBub3RpY2FibGUgaW1wcm92ZW1lbnRzIGluIHJ1 bnRpbWVzDQpmb3IgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgd2hlbiBleHBhbmRp bmcgbWVtb3J5IHVwIHRvIDk2TUIgb24gYSByZWxhdGl2ZWx5DQpmYXN0IGR1 YWwtcHJvY2Vzc29yIHN5c3RlbSBydW5uaW5nIFgtV2luZG93cy4gVGhlIHJ1 bGUgaXMgeW91IGNhbiBuZXZlcg0KaGF2ZSB0b28gbXVjaCBtZW1vcnkuDQoN CkNoZWNrIHRoYXQgeW91IGhhdmUgc3VmZmljaWVudCBkaXNrIHNwYWNlLiBZ b3Ugd2lsbCBuZWVkIGFib3V0IDMwIE1ieXRlcw0KZm9yIC91c3Ivc3JjL3Bn c3FsLCBhYm91dCA1IE1ieXRlcyBmb3IgL3Vzci9sb2NhbC9wZ3NxbCAoZXhj bHVkaW5nIHlvdXINCmRhdGFiYXNlKSAgYW5kIDEgTWJ5dGUgZm9yIGFuIGVt cHR5IGRhdGFiYXNlLiBUaGUgZGF0YWJhc2Ugd2lsbA0KdGVtcG9yYXJpbHkg Z3JvdyB0byBhYm91dCAyMCBNYnl0ZXMgZHVyaW5nIHRoZSByZWdyZXNzaW9u IHRlc3RzLiBZb3Ugd2lsbA0KYWxzbyBuZWVkIGFib3V0IDMgTWJ5dGVzIGZv ciB0aGUgZGlzdHJpYnV0aW9uIHRhciBmaWxlLg0KDQpXZSB0aGVyZWZvcmUg cmVjb21tZW5kIHRoYXQgZHVyaW5nIGluc3RhbGxhdGlvbiBhbmQgdGVzdGlu ZyB5b3UgaGF2ZSB3ZWxsDQpvdmVyIDIwIE1ieXRlcyBmcmVlIHVuZGVyIC91 c3IvbG9jYWwgYW5kIGFub3RoZXIgMjUgTWJ5dGVzIGZyZWUgb24gdGhlDQpk aXNrIHBhcnRpdGlvbiBjb250YWluaW5nIHlvdXIgZGF0YWJhc2UuIE9uY2Ug eW91IGRlbGV0ZSB0aGUgc291cmNlIGZpbGVzLA0KdGFyIGZpbGUgYW5kIHJl Z3Jlc3Npb24gZGF0YWJhc2UsIHlvdSB3aWxsIG5lZWQgMiBNYnl0ZXMgZm9y DQovdXNyL2xvY2FsL3Bnc3FsLCAxIE1ieXRlIGZvciB0aGUgZW1wdHkgZGF0 YWJhc2UsIHBsdXMgYWJvdXQgZml2ZSB0aW1lcw0KdGhlIHNwYWNlIHlvdSB3 b3VsZCByZXF1aXJlIHRvIHN0b3JlIHlvdXIgZGF0YWJhc2UgZGF0YSBpbiBh IGZsYXQgZmlsZS4NCg0KVG8gY2hlY2sgZm9yIGRpc2sgc3BhY2UsIHVzZSAN CiQgZGYgLWsNCiAgICAgICAgICAgDQoNCkluc3RhbGxhdGlvbiBQcm9jZWR1 cmUNCg0KMS4gUmVhZCBhbnkgbGFzdCBtaW51dGUgaW5mb3JtYXRpb24gYW5k IHBsYXRmb3JtIHNwZWNpZmljIHBvcnRpbmcgbm90ZXMuDQpUaGVyZSBhcmUg c29tZSBwbGF0Zm9ybSBzcGVjaWZpYyBub3RlcyBhdCB0aGUgZW5kIG9mIHRo aXMgZmlsZSBmb3INClVsdHJpeDQueCwgTGludXgsIEJTRC9PUyBhbmQgTmVY VC4gVGhlcmUgYXJlIG90aGVyIGZpbGVzIGluIGRpcmVjdG9yeQ0KL3Vzci9z cmMvcGdzcWwvZG9jLCBpbmNsdWRpbmcgZmlsZXMgRkFRLUlyaXggYW5kIEZB US1MaW51eC4NCg0KDQoyLiBTb21lIHBsYXRmb3JtcyB1c2UgZmxleC4gSWYg eW91ciBzeXN0ZW0gdXNlcyBmbGV4IHRoZW4gbWFrZSBzdXJlIHlvdQ0KaGF2 ZSBhIGdvb2QgdmVyc2lvbi4gVG8gY2hlY2ssIHR5cGUNCiQgZmxleCAtLXZl cnNpb24NCklmIHRoZSBmbGV4IGNvbW1hbmQgaXMgbm90IGZvdW5kIHRoZW4g eW91IHByb2JhYmx5IGRvIG5vdCBuZWVkIGl0LiBJZiB0aGUNCnZlcnNpb24g aXMgMi41LjIgb3IgMi41LjQgb3IgZ3JlYXRlciB0aGVuIHlvdSBhcmUgb2th eS4gSWYgaXQgaXMgMi41LjMgb3INCmJlZm9yZSAyLjUuMiB0aGVuIHlvdSB3 aWxsIGhhdmUgdG8gdXBncmFkZSBmbGV4LiBQbGVhc2UgcmVhZCB0aGUgZmls ZQ0KUkVBRE1FLmZsZXggZm9yIGRldGFpbHMuDQoNCioqKiBJZiB5b3UgYXJl IG5vdCB1cGdyYWRpbmcgYW4gZXhpc3Rpbmcgc3lzdGVtIHRoZW4gc2tpcCB0 byBzdGVwIDYuICoqKg0KDQoNCjMuIElmIHlvdSBhcmUgdXBncmFkaW5nIGFu IGV4aXN0aW5nIHN5c3RlbSB0aGVuIGJhY2sgdXAgeW91ciBkYXRhYmFzZS4g Rm9yDQphbHBoYS0gYW5kIGJldGEtbGV2ZWwgcmVsZWFzZXMsIHRoZSBkYXRh YmFzZSBmb3JtYXQgaXMgbGlhYmxlIHRvIGNoYW5nZSwNCm9mdGVuIGV2ZXJ5 IGZldyB3ZWVrcywgd2l0aCBubyBub3RpY2UgYmVzaWRlcyBhIHF1aWNrIGNv bW1lbnQgaW4gdGhlDQpIQUNLRVJTIG1haWxpbmcgbGlzdC4gRnVsbCByZWxl YXNlcyBhbHdheXMgcmVxdWlyZSBhIGR1bXAvcmVsb2FkIGZyb20NCnByZXZp b3VzIHJlbGVhc2VzLiBJdCBpcyB0aGVyZWZvcmUgYSBiYWQgaWRlYSB0byBz a2lwIHRoaXMgc3RlcC4NCg0KVGlwOiBEbyBub3QgdXNlIHRoZSBwZ19kdW1w YWxsIHNjcmlwdCBmcm9tIHY2LjAgb3IgZXZlcnl0aGluZyB3aWxsIGJlDQpv d25lZCBieSB0aGUgUG9zdGdyZXMgc3VwZXIgdXNlci4NCg0KVG8gZHVtcCB5 b3VyIGZhaXJseSByZWNlbnQgcG9zdC12Ni4wIGRhdGFiYXNlIGluc3RhbGxh dGlvbiwgdHlwZSANCiQgcGdfZHVtcGFsbCA+IGRiLm91dA0KDQooVG8gdXNl IHRoZSBsYXRlc3QgcGdfZHVtcGFsbCBzY3JpcHQgb24geW91ciBleGlzdGlu ZyBvbGRlciBkYXRhYmFzZSBiZWZvcmUNCiB1cGdyYWRpbmcgUG9zdGdyZXMs IHB1bGwgdGhlIG1vc3QgcmVjZW50IHZlcnNpb24gb2YgcGdfZHVtcGFsbCBm cm9tIHRoZSBuZXcNCiBkaXN0cmlidXRpb246IA0KJCBndW56aXAgLWMgcG9z dGdyZXNxbC12Ni41LnRhci5neiB8IHRhciB4dmYgLSBzcmMvYmluL3BnX2R1 bXAvcGdfZHVtcGFsbA0KJCBjaG1vZCBhK3ggc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXBhbGwNCiQgc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwgPiBkYi5v dXQNCiQgcm0gLXJmIHNyYw0KKQ0KDQpJZiB5b3Ugd2lzaCB0byBwcmVzZXJ2 ZSBvYmplY3QgaWQncyAob2lkcyksIHRoZW4gdXNlIHRoZSAtbyBvcHRpb24g d2hlbg0KcnVubmluZyBwZ19kdW1wYWxsLiAgSG93ZXZlciwgdW5sZXNzIHlv dSBoYXZlIGEgc3BlY2lhbCByZWFzb24gZm9yIGRvaW5nDQp0aGlzIChzdWNo IGFzIHVzaW5nIE9JRHMgYXMga2V5cyBpbiB0YWJsZXMpLCBkb24ndCBkbyBp dC4NCg0KQ0FVVElPTjogWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgeW91ciBk YXRhYmFzZSBpcyBub3QgdXBkYXRlZCBpbiB0aGUNCm1pZGRsZSBvZiB5b3Vy IGJhY2t1cC4gSWYgbmVjZXNzYXJ5LCBicmluZyBkb3duIHBvc3RtYXN0ZXIs IGVkaXQgdGhlDQpwZXJtaXNzaW9ucyBpbiBmaWxlIC91c3IvbG9jYWwvcGdz cWwvZGF0YS9wZ19oYmEuY29uZiB0byBhbGxvdyBvbmx5IHlvdQ0Kb24sIHRo ZW4gYnJpbmcgcG9zdG1hc3RlciBiYWNrIHVwLg0KDQoNCjQuIEtpbGwgdGhl IHBvc3RtYXN0ZXIuIFlvdSBtaWdodCBmaW5kIHRoYXQNCiQga2lsbGFsbCBw b3N0bWFzdGVyDQp3aWxsIGRvIHRoZSBqb2IuIE90aGVyd2lzZSB0eXBlDQok IHBzIC1heCB8IGdyZXAgcG9zdG1hc3Rlcg0KYW5kIHlvdSBtaWdodCBnZXQg YW4gb3V0cHV0IGxpa2UgdGhpczoNCiAyNTY1ICAgNSBTICAgIDA6MDAgZ3Jl cCBwb3N0bWFzdGVyDQogIDI4NSAgPyAgU1cgICAwOjAwIChwb3N0bWFzdGVy KQ0KVGhlbiB0eXBlDQokIGtpbGwgMjg1DQooc3Vic3RpdHV0ZSB5b3VyIG51 bWJlciBoZXJlKS4NCg0KT24gc3lzdGVtcyB3aGljaCBoYXZlIFBvc3RncmVz IHN0YXJ0ZWQgYXQgYm9vdCB0aW1lLCB0aGVyZSBpcyBwcm9iYWJseSBhDQpz dGFydHVwIGZpbGUgd2hpY2ggd2lsbCBhY2NvbXBsaXNoIHRoZSBzYW1lIHRo aW5nLiBGb3IgZXhhbXBsZSwgb24gbXkNCkxpbnV4IHN5c3RlbSBJIGNhbiB0 eXBlDQokIC9ldGMvcmMuZC9pbml0LmQvcG9zdGdyZXMuaW5pdCBzdG9wDQp0 byBoYWx0IFBvc3RncmVzLg0KDQoNCjUuIE1vdmUgdGhlIG9sZCBkaXJlY3Rv cmllcyBvdXQgb2YgdGhlIHdheS4gSWYgeW91IGFyZSBzaG9ydCBvZiBkaXNr IHNwYWNlDQp0aGVuIHlvdSBtYXkgaGF2ZSB0byBiYWNrIHVwIGFuZCBkZWxl dGUgdGhlIGRpcmVjdG9yaWVzIGluc3RlYWQuIElmIHlvdSBkbw0KdGhpcywg c2F2ZSB0aGUgb2xkIGRhdGFiYXNlIGluIHRoZSAvdXNyL2xvY2FsL3Bnc3Fs L2RhdGEgZGlyZWN0b3J5IHRyZWUgb3INCnRoZSBkYXRhYmFzZSBkdW1wIHlv dSBtYWRlLCByZXNwZWN0aXZlbHkuIEF0IGEgbWluaW11bSwgc2F2ZSBmaWxl DQovdXNyL2xvY2FsL3Bnc3FsL2RhdGEvcGdfaGJhLmNvbmYuDQoNClR5cGUg dGhlIGZvbGxvd2luZzogDQokIHN1IC0NCiQgY2QgL3Vzci9zcmMNCiQgbXYg cGdzcWwgcGdzcWxfNl8wDQokIGNkIC91c3IvbG9jYWwNCiQgbXYgcGdzcWwg cGdzcWxfNl8wDQokIGV4aXQNCg0KSWYgeW91IGFyZSBub3QgdXNpbmcgL3Vz ci9sb2NhbC9wZ3NxbC9kYXRhIGFzIHlvdXIgZGF0YSBkaXJlY3RvcnkgKGNo ZWNrDQp0byBzZWUgaWYgZW52aXJvbm1lbnQgdmFyaWFibGUgUEdEQVRBIGlz IHNldCB0byBzb21ldGhpbmcgZWxzZSkgdGhlbiB5b3UNCndpbGwgYWxzbyB3 YW50IHRvIG1vdmUgdGhpcyBkaXJlY3RvcnkgaW4gdGhlIHNhbWUgbWFubmVy Lg0KDQoqKiogQ29udGludWUgaGVyZSBpZiB5b3UgYXJlIGluc3RhbGxpbmcg YSBuZXcgc3lzdGVtLiAqKioNCg0KDQo2LiBNYWtlIGEgZGlyZWN0b3J5IGZv ciB0aGUgc291cmNlIGNvZGUgYW5kIHVucGFjayB0aGUgc291cmNlIHRhcmJh bGwgdGhlcmU6DQokIGd1bnppcCAtYyB+L3Bvc3RncmVzcWwtdjYuNS50YXIu Z3ogfCB0YXIgeHZmIC0NCiQgbXYgcG9zdGdyZXNxbC02LjUgL3Vzci9zcmMv cGdzcWwNCg0KDQo3LiBDb25maWd1cmUgdGhlIHNvdXJjZSBjb2RlIGZvciB5 b3VyIHN5c3RlbS4gSXQgaXMgdGhpcyBzdGVwIGF0IHdoaWNoIHlvdQ0KY2Fu IHNwZWNpZnkgeW91ciBhY3R1YWwgaW5zdGFsbGF0aW9uIHBhdGggZm9yIHRo ZSBidWlsZCBwcm9jZXNzIChzZWUgdGhlDQotLXByZWZpeCBvcHRpb24gYmVs b3cpLiBUeXBlDQokIGNkIC91c3Ivc3JjL3Bnc3FsL3NyYw0KJCAuL2NvbmZp Z3VyZSBbIG9wdGlvbnMgXQ0KDQpUaGUgY29uZmlndXJlIHNjcmlwdCBzZWxl Y3RzIGEgc3lzdGVtLXNwZWNpZmljICJ0ZW1wbGF0ZSIgZmlsZSBmcm9tIHRo ZQ0KZmlsZXMgcHJvdmlkZWQgaW4gdGhlIHRlbXBsYXRlIHN1YmRpcmVjdG9y eS4gSWYgaXQgY2Fubm90IGd1ZXNzIHdoaWNoIG9uZQ0KdG8gdXNlIGZvciB5 b3VyIHN5c3RlbSwgaXQgd2lsbCBzYXkgc28gYW5kIGV4aXQuIEluIHRoYXQg Y2FzZSB5b3UnbGwgbmVlZA0KdG8gZmlndXJlIG91dCB3aGljaCBvbmUgdG8g dXNlIGFuZCBydW4gY29uZmlndXJlIGFnYWluLCB0aGlzIHRpbWUgZ2l2aW5n DQp0aGUgLS13aXRoLXRlbXBsYXRlPVRFTVBMQVRFIG9wdGlvbiB0byBtYWtl IHRoZSByaWdodCBmaWxlIGJlIGNob3Nlbi4NCg0KUGxlYXNlIFJlcG9ydCBQ cm9ibGVtczogSWYgeW91ciBzeXN0ZW0gaXMgbm90IGF1dG9tYXRpY2FsbHkg cmVjb2duaXplZCBieQ0KY29uZmlndXJlIGFuZCB5b3UgaGF2ZSB0byBkbyB0 aGlzLCBwbGVhc2Ugc2VuZCBlbWFpbCB0bw0Kc2NyYXBweUBwb3N0Z3Jlc3Fs Lm9yZyB3aXRoIHRoZSBvdXRwdXQgb2YgdGhlIHByb2dyYW0gLi9jb25maWcu Z3Vlc3MuDQpJbmRpY2F0ZSB3aGF0IHRoZSB0ZW1wbGF0ZSBmaWxlIHNob3Vs ZCBiZS4NCg0KQ2hvb3NlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gQ2hlY2sg Q29uZmlndXJhdGlvbiBPcHRpb25zIGZvciBkZXRhaWxzLg0KSG93ZXZlciwg Zm9yIGEgZmlyc3QgaW5zdGFsbGF0aW9uIHdpdGggbm8gZXh0cmEgb3B0aW9u cyBsaWtlIG11bHRpLWJ5dGUNCmNoYXJhY3RlciBzdXBwb3J0IG9yIGxvY2Fs ZSBjb2xsYXRpb24gc3VwcG9ydCBpdCBtYXkgYmUgYWRlcXVhdGUgdG8ganVz dA0KY2hvc2UgdGhlIGluc3RhbGxhdGlvbiBhcmVhcyBhbmQgcnVuIGNvbmZp Z3VyZSB3aXRob3V0IGV4dHJhIG9wdGlvbnMNCnNwZWNpZmllZC4gVGhlIGNv bmZpZ3VyZSBzY3JpcHQgYWNjZXB0cyBtYW55IGFkZGl0aW9uYWwgb3B0aW9u cyB0aGF0IHlvdQ0KY2FuIHVzZSBpZiB5b3UgZG9uJ3QgbGlrZSB0aGUgZGVm YXVsdCBjb25maWd1cmF0aW9uLiBUbyBzZWUgdGhlbSBhbGwsIHR5cGUNCiQg Li9jb25maWd1cmUgLS1oZWxwDQoNClNvbWUgb2YgdGhlIG1vcmUgY29tbW9u bHkgdXNlZCBvbmVzIGFyZTogDQoNCgktLXByZWZpeD1CQVNFRElSDQpTZWxl Y3RzIGEgZGlmZmVyZW50IGJhc2UgZGlyZWN0b3J5IGZvciB0aGUgaW5zdGFs bGF0aW9uIG9mIHRoZSBQb3N0Z3Jlcw0KY29uZmlndXJhdGlvbi4gVGhlIGRl ZmF1bHQgaXMgL3Vzci9sb2NhbC9wZ3NxbC4NCg0KCS0td2l0aC10ZW1wbGF0 ZT1URU1QTEFURQ0KVXNlIHRlbXBsYXRlIGZpbGUgVEVNUExBVEUgLSB0aGUg dGVtcGxhdGUgZmlsZXMgYXJlIGFzc3VtZWQgdG8gYmUgaW4gdGhlDQpkaXJl Y3Rvcnkgc3JjL3RlbXBsYXRlLCBzbyBsb29rIHRoZXJlIGZvciBwcm9wZXIg dmFsdWVzLg0KDQoJLS13aXRoLXRjbA0KQnVpbGQgaW50ZXJmYWNlIGxpYnJh cmllcyBhbmQgcHJvZ3JhbXMgcmVxdWlyaW5nIFRjbC9UaywgaW5jbHVkaW5n DQpsaWJwZ3RjbCwgcGd0Y2xzaCwgYW5kIHBndGtzaC4NCg0KCS0td2l0aC1w ZXJsDQpCdWlsZCB0aGUgUGVybCBpbnRlcmZhY2UgbGlicmFyeS4NCg0KCS0t d2l0aC1vZGJjDQpCdWlsZCB0aGUgT0RCQyBkcml2ZXIgcGFja2FnZS4NCg0K CS0tZW5hYmxlLWxvY2FsZQ0KRW5hYmxlcyBsb2NhbGUgc3VwcG9ydC4gU2Vl IHRoZSBmaWxlIFJFQURNRS5sb2NhbGUgZm9yIGRldGFpbHMuDQoNCg0KOC4g Q29tcGlsZSB0aGUgcHJvZ3JhbS4gVHlwZQ0KJCBjZCBzcmMNCiQgbWFrZSBh bGwNClRoZSBsYXN0IGxpbmUgZGlzcGxheWVkIHdpbGwgaG9wZWZ1bGx5IGJl ICJBbGwgb2YgUG9zdGdyZVNRTCBpcw0Kc3VjY2Vzc2Z1bGx5IG1hZGUuIFJl YWR5IHRvIGluc3RhbGwuIg0KDQpJZiB0aGUgY29tcGlsZXIgZmFpbHMgd2l0 aCBhIG1lc3NhZ2Ugc3RhdGluZyB0aGF0IHRoZSBmbGV4IGNvbW1hbmQgY2Fu bm90DQpiZSBmb3VuZCB0aGVuIGluc3RhbGwgZmxleCBhcyBkZXNjcmliZWQg ZWFybGllci4gTmV4dCwgY2hhbmdlIGRpcmVjdG9yeQ0KYmFjayB0byB0aGlz IGRpcmVjdG9yeSwgdHlwZQ0KJCBtYWtlIGNsZWFuDQp0aGVuIHJlY29tcGls ZSBhZ2Fpbi4NCg0KQ29tcGlsZXIgb3B0aW9ucywgc3VjaCBhcyBvcHRpbWl6 YXRpb24gYW5kIGRlYnVnZ2luZywgbWF5IGJlIHNwZWNpZmllZCBvbg0KdGhl IGNvbW1hbmQgbGluZSB1c2luZyB0aGUgQ09QVCB2YXJpYWJsZS4gRm9yIGV4 YW1wbGUsIHR5cGluZw0KJCBtYWtlIENPUFQ9Ii1nIiBhbGwNCndvdWxkIGlu dm9rZSB5b3VyIGNvbXBpbGVyJ3MgLWcgb3B0aW9uIGluIGFsbCBzdGVwcyBv ZiB0aGUgYnVpbGQuIFNlZQ0Kc3JjL01ha2VmaWxlLmdsb2JhbC5pbiBmb3Ig ZnVydGhlciBkZXRhaWxzLg0KDQoNCjkuIEluc3RhbGwgdGhlIHByb2dyYW0u IFR5cGUgDQokIG1ha2UgaW5zdGFsbA0KVGhlIGxhc3QgbGluZSBkaXNwbGF5 ZWQgd2lsbCBiZSANCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5IGAvdXNy L3NyYy9wZ3NxbC9zcmMvbWFuJw0KDQoNCjEwLiBJZiBuZWNlc3NhcnksIHRl bGwgeW91ciBzeXN0ZW0gaG93IHRvIGZpbmQgdGhlIG5ldyBzaGFyZWQgbGli cmFyaWVzLg0KWW91IGNhbiBkbyBvbmUgb2YgdGhlIGZvbGxvd2luZywgcHJl ZmVyYWJseSB0aGUgZmlyc3Q6DQphLiBBcyByb290LCBlZGl0IGZpbGUgL2V0 Yy9sZC5zby5jb25mLiBBZGQgYSBsaW5lIA0KL3Vzci9sb2NhbC9wZ3NxbC9s aWINCnRvIHRoZSBmaWxlLiBUaGVuIHJ1biBjb21tYW5kIC9zYmluL2xkY29u ZmlnLg0KYi4gSW4gYSBiYXNoIHNoZWxsLCB0eXBlIA0KJCBleHBvcnQgTERf TElCUkFSWV9QQVRIPS91c3IvbG9jYWwvcGdzcWwvbGliDQpjLiBJbiBhIGNz aCBzaGVsbCwgdHlwZSANCiQgc2V0ZW52IExEX0xJQlJBUllfUEFUSCAvdXNy L2xvY2FsL3Bnc3FsL2xpYg0KDQpQbGVhc2Ugbm90ZSB0aGF0IHRoZSBhYm92 ZSBjb21tYW5kcyBtYXkgdmFyeSB3aWxkbHkgZm9yIGRpZmZlcmVudA0Kb3Bl cmF0aW5nIHN5c3RlbXMuIENoZWNrIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBu b3Rlcywgc3VjaCBhcyB0aG9zZSBmb3INClVsdHJpeDQueCBvciBhbmQgZm9y IG5vbi1FTEYgTGludXguIElmLCB3aGVuIHlvdSBjcmVhdGUgdGhlIGRhdGFi YXNlLCB5b3UNCmdldCB0aGUgbWVzc2FnZQ0KcGdfaWQ6IGNhbid0IGxvYWQg bGlicmFyeSAnbGlicHEuc28nDQp0aGVuIHRoZSBhYm92ZSBzdGVwIHdhcyBu ZWNlc3NhcnkuIFNpbXBseSBkbyB0aGlzIHN0ZXAsIHRoZW4gdHJ5IHRvIGNy ZWF0ZQ0KdGhlIGRhdGFiYXNlIGFnYWluLg0KDQoNCjExLiBJZiB5b3UgdXNl ZCB0aGUgLS13aXRoLXBlcmwgb3B0aW9uIHRvIGNvbmZpZ3VyZSBhbmQgeW91 IHdlcmUgYW4NCnVucHJpdmlsZWdlZCB1c2VyIGR1cmluZyB0aGUgaW5zdGFs bGF0aW9uIHByb2Nlc3MsIHRoZW4gdGhlIFBlcmwgbW9kdWxlDQp3b24ndCBo YXZlIGJlZW4gaW5zdGFsbGVkLCBmb3IgbGFjayBvZiB3cml0ZSBwcml2aWxl Z2VzIG9uIHRoZSBQZXJsDQpsaWJyYXJ5IGRpcmVjdG9yaWVzLiBZb3UgY2Fu IGNvbXBsZXRlIGl0cyBpbnN0YWxsYXRpb24sIGVpdGhlciBub3cgb3INCmxh dGVyLCBieSBkb2luZw0KJCBzdSAtDQokIGNkIC91c3Ivc3JjL3Bnc3FsL3Ny Yy9pbnRlcmZhY2VzL3Blcmw1DQokIG1ha2UgaW5zdGFsbA0KICAgICAgICAg ICAgICANCg0KMTIuIFByZXBhcmUgdGhlIFBvc3RncmVzIHN1cGVydXNlciBh Y2NvdW50LiBPZnRlbiB0aGUgdXNlcm5hbWUgInBvc3RncmVzIiBpcw0KdXNl ZCBmb3IgdGhpcyBidXQgYW55IHVucHJpdmlsZWdlZCB1c2VyIHdpbGwgc3Vm ZmljZS4gSXQgbXVzdCAqbm90KiBiZSByb290IG9yDQphbnkgc2ltaWxhcmx5 IHByaXZpbGVnZWQgdXNlciAoYmluLCBrbWVtLCAuLi4pIGZvciB0aGF0IHdv dWxkIGJlIGEgc2VjdXJpdHkNCnJpc2suDQokIHVzZXJhZGQgcG9zdGdyZXMN CihUaGUgYWJvdmUgY29tbWFuZCBtYXkgZGlmZmVyIGZyb20gc3lzdGVtIHRv IHN5c3RlbS4pDQpNYWtlIHRoZSBwb3N0Z3JlcyBpbnN0YWxsYXRpb24gb3du ZXIgYnkgdGhlIFBvc3RncmVzIHN1cGVydXNlcjoNCiQgY2hvd24gLVIgcG9z dGdyZXMgL3Vzci9sb2NhbC9wb3N0Z3Jlcw0KDQpBZGQgdGhlIGZvbGxvd2lu ZyBsaW5lcyB0byB5b3VyIH4vLmJhc2hfcHJvZmlsZSBvciBlcXVpdmFsZW50 Og0KUEFUSD0kUEFUSDovdXNyL2xvY2FsL3Bnc3FsL2Jpbg0KTUFOUEFUSD0k TUFOUEFUSDovdXNyL2xvY2FsL3Bnc3FsL21hbg0KUEdMSUI9L3Vzci9sb2Nh bC9wZ3NxbC9saWINClBHREFUQT0vdXNyL2xvY2FsL3Bnc3FsL2RhdGENCmV4 cG9ydCBQQVRIIE1BTlBBVEggUEdMSUIgUEdEQVRBDQoNCkFueSBvcmRpbmFy eSB1c2VyIHRoYXQgd2lzaGVzIHRvIHVzZSB0aGUgZGF0YWJhc2UgbXVzdCBk byB0aGUgc2FtZS4NCiAgICAgICAgICAgICAgIA0KU2V2ZXJhbCByZWdyZXNz aW9uIHRlc3RzIGNvdWxkIGZhaWwgaWYgdGhlIHVzZXIncyBsb2NhbGUgY29s bGF0aW9uIHNjaGVtZQ0KaXMgZGlmZmVyZW50IGZyb20gdGhhdCBvZiBzdGFu ZGFyZCBDIGxvY2FsZS4gIElmIHlvdSBjb25maWd1cmUgYW5kIGNvbXBpbGUN ClBvc3RncmVzIHdpdGggdGhlIC0tZW5hYmxlLWxvY2FsZSBvcHRpb24gdGhl biBzZXQgbG9jYWxlIGVudmlyb25tZW50IHRvIEMNCihvciB1bnNldCBhbGwg TENfKiB2YXJpYWJsZXMpIGJ5IHB1dHRpbmcgdGhlc2UgYWRkaXRpb25hbCBs aW5lcyB0byB5b3VyDQpsb2dpbiBlbnZpcm9ubWVudCBiZWZvcmUgc3RhcnRp bmcgdGhlIGRhdGFiYXNlIHNlcnZlcjoNCg0KTENfQ09MTEFURT1DDQpMQ19D VFlQRT1DDQpMQ19DT0xMQVRFPUMNCmV4cG9ydCBMQ19DT0xMQVRFIExDX0NU WVBFIExDX0NPTExBVEUNCiAgICAgICAgICAgICAgICAgICAgIA0KTG9nIGlu dG8geW91ciBwb3N0Z3JlcyBzdXBlcnVzZXIgYWNjb3VudDoNCiQgc3UgLSBw b3N0Z3Jlcw0KICAgICAgICAgICAgICAgICAgICAgDQoNCjEzLiBDcmVhdGUg dGhlIGRhdGFiYXNlIGluc3RhbGxhdGlvbiBmcm9tIHlvdXIgUG9zdGdyZXMg c3VwZXJ1c2VyIGFjY291bnQNCih0eXBpY2FsbHkgYWNjb3VudCBwb3N0Z3Jl cykuIERvIG5vdCBkbyB0aGUgZm9sbG93aW5nIGFzIHJvb3QhIFRoaXMgd291 bGQNCmJlIGEgbWFqb3Igc2VjdXJpdHkgaG9sZS4gVHlwZQ0KJCBpbml0ZGIN Cg0KDQoxNC4gQnJpZWZseSB0ZXN0IHRoYXQgdGhlIGJhY2tlbmQgd2lsbCBz dGFydCBhbmQgcnVuIGJ5IHJ1bm5pbmcgaXQgZnJvbSB0aGUNCmNvbW1hbmQg bGluZS4gU3RhcnQgdGhlIHBvc3RtYXN0ZXIgZGFlbW9uIHJ1bm5pbmcgaW4g dGhlIGJhY2tncm91bmQgYnkgdHlwaW5nIA0KJCBwb3N0bWFzdGVyIC1pDQpD b25uZWN0IHRvIHRoZSBhbHdheXMgZXhpc3RpbmcgdGVtcGxhdGUgZGF0YWJh c2U6DQokIHBzcWwgdGVtcGxhdGUxDQpBbmQgcnVuIGEgc2FtcGxlIHF1ZXJ5 OiANCnBvc3RncmVzPT4gU0VMRUNUIGRhdGV0aW1lICdub3cnOw0KRXhpdA0K cG9zdGdyZXM9PiBccQ0KDQoNCjE1LiBSdW4gcG9zdG1hc3RlciBpbiB0aGUg YmFja2dyb3VuZCBmcm9tIHlvdXIgUG9zdGdyZXMgc3VwZXJ1c2VyIGFjY291 bnQNCih0eXBpY2FsbHkgYWNjb3VudCBwb3N0Z3JlcykuIERvIG5vdCBydW4g cG9zdG1hc3RlciBmcm9tIHRoZSByb290IGFjY291bnQhDQoNClVzdWFsbHks IHlvdSB3aWxsIHdhbnQgdG8gbW9kaWZ5IHlvdXIgY29tcHV0ZXIgc28gdGhh dCBpdCB3aWxsDQphdXRvbWF0aWNhbGx5IHN0YXJ0IHBvc3RtYXN0ZXIgd2hl bmV2ZXIgaXQgYm9vdHMuIEl0IGlzIG5vdCByZXF1aXJlZDsgdGhlDQpQb3N0 Z3JlcyBzZXJ2ZXIgY2FuIGJlIHJ1biBzdWNjZXNzZnVsbHkgZnJvbSBub24t cHJpdmlsZWdlZCBhY2NvdW50cw0Kd2l0aG91dCByb290IGludGVydmVudGlv bi4gSGVyZSBhcmUgc29tZSBzdWdnZXN0aW9ucyBvbiBob3cgdG8gZG8gdGhp cywNCmNvbnRyaWJ1dGVkIGJ5IHZhcmlvdXMgdXNlcnMuDQoNCldoYXRldmVy IHlvdSBkbywgcG9zdG1hc3RlciBtdXN0IGJlIHJ1biBieSB0aGUgUG9zdGdy ZXMgc3VwZXJ1c2VyIGFuZCBub3QNCmJ5IHJvb3QuICBUaGlzIGlzIHdoeSBh bGwgb2YgdGhlIGV4YW1wbGVzIGJlbG93IHN0YXJ0IGJ5IHN3aXRjaGluZyB1 c2VyDQooc3UpIHRvIHBvc3RncmVzLiBUaGVzZSBjb21tYW5kcyBhbHNvIHRh a2UgaW50byBhY2NvdW50IHRoZSBmYWN0IHRoYXQNCmVudmlyb25tZW50IHZh cmlhYmxlcyBsaWtlIFBBVEggYW5kIFBHREFUQSBtYXkgbm90IGJlIHNldCBw cm9wZXJseS4gVGhlDQpleGFtcGxlcyBhcmUgYXMgZm9sbG93cy4gVXNlIHRo ZW0gd2l0aCBleHRyZW1lIGNhdXRpb24uDQoNCm8gIElmIHlvdSBhcmUgaW5z dGFsbGluZyBmcm9tIGEgbm9uLXByaXZpbGVnZWQgYWNjb3VudCBhbmQgaGF2 ZSBubyByb290IGFjY2VzcywNCiAgIHRoZW4gc3RhcnQgdGhlIHBvc3RtYXN0 ZXIgYW5kIHNlbmQgaXQgdG8gdGhlIGJhY2tncm91bmQ6IA0KICAgJCBjZA0K ICAgJCBub2h1cCBwb3N0bWFzdGVyID4gcmVncmVzcy5sb2cgMj4mMSAmDQpv ICBFZGl0IGZpbGUgcmMubG9jYWwgb24gTmV0QlNEIG9yIGZpbGUgcmMyLmQg b24gU1BBUkMgU29sYXJpcyAyLjUuMSB0bw0KICAgY29udGFpbiB0aGUgZm9s bG93aW5nIHNpbmdsZSBsaW5lOiANCiAgIHN1IHBvc3RncmVzIC1jICIvdXNy L2xvY2FsL3Bnc3FsL2Jpbi9wb3N0bWFzdGVyIC1TIC1EIC91c3IvbG9jYWwv cGdzcWwvZGF0YSINCm8gIEluIEZyZWVCU0QgMi4yLVJFTEVBU0UgZWRpdCAv dXNyL2xvY2FsL2V0Yy9yYy5kL3Bnc3FsLnNoIHRvIGNvbnRhaW4gdGhlIA0K ICAgZm9sbG93aW5nIGxpbmVzIGFuZCBtYWtlIGl0IGNobW9kIDc1NSBhbmQg Y2hvd24gcm9vdDpiaW4uIA0KICAgIyEvYmluL3NoDQogICBbIC14IC91c3Iv bG9jYWwvcGdzcWwvYmluL3Bvc3RtYXN0ZXIgXSAmJiB7DQogICBzdSAtbCBw Z3NxbCAtYyAnZXhlYyAvdXNyL2xvY2FsL3Bnc3FsL2Jpbi9wb3N0bWFzdGVy DQogICAgICAgLUQvdXNyL2xvY2FsL3Bnc3FsL2RhdGEgLVMgLW8gLUYgPiAv dXNyL2xvY2FsL3Bnc3FsL2VycmxvZycgJg0KICAgZWNobyAtbiAnIHBnc3Fs Jw0KICAgfQ0KbyAgSW4gUmVkSGF0IExpbnV4IGFkZCBhIGZpbGUgL2V0Yy9y Yy5kL2luaXQuZC9wb3N0Z3Jlcy5pbml0IHdoaWNoIGlzIGJhc2VkIG9uIA0K ICAgdGhlIGV4YW1wbGUgaW4gY29udHJpYi9saW51eC8uIFRoZW4gdHlwZQ0K ICAgJCBjaGtjb25maWcgLS1hZGQgcG9zdGdyZXMNCg0KDQoxNi4gUnVuIHRo ZSByZWdyZXNzaW9uIHRlc3RzLiBUaGUgZmlsZQ0KL3Vzci9zcmMvcGdzcWwv c3JjL3Rlc3QvcmVncmVzcy9SRUFETUUgaGFzIGRldGFpbGVkIGluc3RydWN0 aW9ucyBmb3INCnJ1bm5pbmcgYW5kIGludGVycHJldGluZyB0aGUgcmVncmVz c2lvbiB0ZXN0cy4gV2hpbGUgaXQgaXMgbm90IG1hbmRhdG9yeSB0byBydW4N CnRoZSByZWdyZXNzaW9uIHRlc3QsIGl0IGlzIHByb2JhYmx5IGdvb2QgdG8g a25vdyB3aGV0aGVyIG9yIG5vdCB5b3VyIGRhdGFiYXNlDQpzZXJ2ZXIgZnVu Y3Rpb25zIGxpa2UgdGhlIGRldmVsb3BlcnMgaGFkIGl0IGluIG1pbmQgYmVm b3JlIHJ1bm5pbmcgYW55dGhpbmcNCmltcG9ydGFudCBvbiBpdC4NCg0KDQox Ny4gSWYgeW91IGhhdmVuJ3QgYWxyZWFkeSBkb25lIHNvLCB0aGlzIHdvdWxk IGJlIGEgZ29vZCB0aW1lIHRvIG1vZGlmeQ0KeW91ciBjb21wdXRlciB0byBk byByZWd1bGFyIG1haW50YWluZW5jZS4gVGhlIGZvbGxvd2luZyBzaG91bGQg YmUgZG9uZSBhdA0KcmVndWxhciBpbnRlcnZhbHM6DQoNCk1pbmltYWwgQmFj a3VwIFByb2NlZHVyZQ0KMS4gUnVuIHRoZSBTUUwgY29tbWFuZCBWQUNVVU0u IFRoaXMgd2lsbCBjbGVhbiB1cCB5b3VyIGRhdGFiYXNlLg0KMi4gQmFjayB1 cCB5b3VyIHN5c3RlbS4gKFlvdSBzaG91bGQgcHJvYmFibHkga2VlcCB0aGUg bGFzdCBmZXcgYmFja3VwcyBvbg0KaGFuZC4pIFByZWZlcmFibHksIG5vIG9u ZSBlbHNlIHNob3VsZCBiZSB1c2luZyB0aGUgc3lzdGVtIGF0IHRoZSB0aW1l Lg0KDQoNCjE4LiBJZiB5b3UgYXJlIHVwZ3JhZGluZyBhbiBleGlzdGluZyBz eXN0ZW0gdGhlbiByZWluc3RhbGwgeW91ciBvbGQNCmRhdGFiYXNlLiBUeXBl DQokIHBzcWwgLWUgdGVtcGxhdGUxIDwgZGIub3V0DQoNCklmIHlvdXIgcHJl LXY2LjIgZGF0YWJhc2UgdXNlcyBlaXRoZXIgcGF0aCBvciBwb2x5Z29uIGdl b21ldHJpYyBkYXRhDQp0eXBlcywgdGhlbiB5b3Ugd2lsbCBuZWVkIHRvIHVw Z3JhZGUgYW55IGNvbHVtbnMgY29udGFpbmluZyB0aG9zZSB0eXBlcy4NClRv IGRvIHNvLCB0eXBlIChmcm9tIHdpdGhpbiBwc3FsKQ0KPT4gVVBEQVRFIEZp cnN0VGFibGUgU0VUIFBhdGhDb2wgPSBVcGdyYWRlUGF0aChQYXRoQ29sKTsN Cj0+IFVQREFURSBTZWNvbmRUYWJsZSBTRVQgUGF0aENvbCA9IFVwZ3JhZGVQ YXRoKFBhdGhDb2wpOw0KICAgIC4uLg0KPT4gVkFDVVVNOw0KDQpVcGdyYWRl UGF0aCgpIGNoZWNrcyB0byBzZWUgdGhhdCBhIHBhdGggdmFsdWUgaXMgY29u c2lzdGFudCB3aXRoIHRoZSBvbGQNCnN5bnRheCwgYW5kIHdpbGwgbm90IHVw ZGF0ZSBhIGNvbHVtbiB3aGljaCBmYWlscyB0aGF0IGV4YW1pbmF0aW9uLiAg DQpVcGdyYWRlUG9seSgpIGNhbm5vdCB2ZXJpZnkgdGhhdCBhIHBvbHlnb24g aXMgaW4gZmFjdCBmcm9tIGFuIG9sZCBzeW50YXgsDQpidXQgUmV2ZXJ0UG9s eSgpIGlzIHByb3ZpZGVkIHRvIHJldmVyc2UgdGhlIGVmZmVjdHMgb2YgYSBt aXMtYXBwbGllZA0KdXBncmFkZS4NCg0KDQoxOS4gQ2xlYW4gdXAgYWZ0ZXIg eW91cnNlbGYuIFR5cGUgDQokIHJtIC1yZiAvdXNyL3NyYy9wZ3NxbF82XzUN CiQgcm0gLXJmIC91c3IvbG9jYWwvcGdzcWxfNl81DQojIEFsc28gZGVsZXRl IG9sZCBkYXRhYmFzZSBkaXJlY3RvcnkgdHJlZSBpZiBpdCBpcyBub3QgaW4N CiMgIC91c3IvbG9jYWwvcGdzcWxfNl81L2RhdGENCiQgcm0gfi9wb3N0Z3Jl c3FsLXY2LjUudGFyLmd6DQoNCg0KMjAuIE5vdyBjcmVhdGUsIGFjY2VzcyBh bmQgbWFuaXB1bGF0ZSBkYXRhYmFzZXMgYXMgZGVzaXJlZC4gV3JpdGUgY2xp ZW50DQpwcm9ncmFtcyB0byBhY2Nlc3MgdGhlIGRhdGFiYXNlIHNlcnZlci4g SW4gb3RoZXIgd29yZHMsIGVuam95IQ0KDQpRdWVzdGlvbnM/IEJ1Z3M/IEZl ZWRiYWNrPyBGaXJzdCwgcmVhZCB0aGUgZmlsZXMgaW4gZGlyZWN0b3J5DQov dXNyL3NyYy9wZ3NxbC9kb2MvLiBUaGUgRkFRIGluIHRoaXMgZGlyZWN0b3J5 IG1heSBiZSBwYXJ0aWN1bGFybHkgdXNlZnVsLg0KSWYgUG9zdGdyZXMgZmFp bGVkIHRvIGNvbXBpbGUgb24geW91ciBjb21wdXRlciB0aGVuIGZpbGwgb3V0 IHRoZSBmb3JtIGluDQpmaWxlIC91c3Ivc3JjL3Bnc3FsL2RvYy9idWcudGVt cGxhdGUgYW5kIG1haWwgaXQgdG8gdGhlIGxvY2F0aW9uIGluZGljYXRlZA0K YXQgdGhlIHRvcCBvZiB0aGUgZm9ybS4gQ2hlY2sgb24gdGhlIHdlYiBzaXRl IGF0IGh0dHA6Ly93d3cucG9zdGdyZXNxbC5vcmcNCkZvciBtb3JlIGluZm9y bWF0aW9uIG9uIHRoZSB2YXJpb3VzIHN1cHBvcnQgbWFpbGluZyBsaXN0cy4N Cg0KDQoNCkFwcGVuZGl4IEk6IFBsYXlpbmcgd2l0aCBQb3N0Z3Jlcw0KDQpB ZnRlciBQb3N0Z3JlcyBpcyBpbnN0YWxsZWQsIGEgZGF0YWJhc2Ugc3lzdGVt IGlzIGNyZWF0ZWQsIGEgcG9zdG1hc3Rlcg0KZGFlbW9uIGlzIHJ1bm5pbmcs IGFuZCB0aGUgcmVncmVzc2lvbiB0ZXN0cyBoYXZlIHBhc3NlZCwgeW91J2xs IHdhbnQgdG8NCnNlZSBQb3N0Z3JlcyBkbyBzb21ldGhpbmcuIFRoYXQncyBl YXN5LiBJbnZva2UgdGhlIGludGVyYWN0aXZlIGludGVyZmFjZQ0KdG8gUG9z dGdyZXMsIHBzcWw6DQoNCiQgcHNxbCB0ZW1wbGF0ZTENCg0KKHBzcWwgaGFz IHRvIG9wZW4gYSBwYXJ0aWN1bGFyIGRhdGFiYXNlLCBidXQgYXQgdGhpcyBw b2ludCB0aGUgb25seSBvbmUNCnRoYXQgZXhpc3RzIGlzIHRoZSB0ZW1wbGF0 ZTEgZGF0YWJhc2UsIHdoaWNoIGFsd2F5cyBleGlzdHMuIFdlIHdpbGwNCmNv bm5lY3QgdG8gaXQgb25seSBsb25nIGVub3VnaCB0byBjcmVhdGUgYW5vdGhl ciBvbmUgYW5kIHN3aXRjaCB0byBpdC4pDQoNClRoZSByZXNwb25zZSBmcm9t IHBzcWwgaXM6IA0KDQpXZWxjb21lIHRvIHRoZSBQT1NUR1JFU1FMIGludGVy YWN0aXZlIHNxbCBtb25pdG9yOg0KICBQbGVhc2UgcmVhZCB0aGUgZmlsZSBD T1BZUklHSFQgZm9yIGNvcHlyaWdodCB0ZXJtcyBvZiBQT1NUR1JFU1FMDQpb UG9zdGdyZVNRTCA2LjUuMCBvbiBpNTg2LXBjLWxpbnV4LWdudSwgY29tcGls ZWQgYnkgZWdjcyBdDQoNCiAgIHR5cGUgXD8gZm9yIGhlbHAgb24gc2xhc2gg Y29tbWFuZHMNCiAgIHR5cGUgXHEgdG8gcXVpdA0KICAgdHlwZSBcZyBvciB0 ZXJtaW5hdGUgd2l0aCBzZW1pY29sb24gdG8gZXhlY3V0ZSBxdWVyeQ0KIFlv dSBhcmUgY3VycmVudGx5IGNvbm5lY3RlZCB0byB0aGUgZGF0YWJhc2U6IHRl bXBsYXRlMQ0KDQp0ZW1wbGF0ZTE9Pg0KIA0KQ3JlYXRlIHRoZSBkYXRhYmFz ZSBmb286IA0KDQp0ZW1wbGF0ZTE9PiBjcmVhdGUgZGF0YWJhc2UgZm9vOw0K Q1JFQVRFREINCg0KKEdldCBpbiB0aGUgaGFiaXQgb2YgaW5jbHVkaW5nIHRo b3NlIFNRTCBzZW1pY29sb25zLiAgUHNxbCB3b24ndCBleGVjdXRlDQphbnl0 aGluZyB1bnRpbCBpdCBzZWVzIHRoZSBzZW1pY29sb24gb3IgYSAiXGciIGFu ZCB0aGUgc2VtaWNvbG9uIGlzDQpyZXF1aXJlZCB0byBkZWxpbWl0IG11bHRp cGxlIHN0YXRlbWVudHMuKQ0KDQpOb3cgY29ubmVjdCB0byB0aGUgbmV3IGRh dGFiYXNlOiANCg0KdGVtcGxhdGUxPT4gXGMgZm9vDQpjb25uZWN0aW5nIHRv IG5ldyBkYXRhYmFzZTogZm9vDQoNCigic2xhc2giIGNvbW1hbmRzIGFyZW4n dCBTUUwsIHNvIG5vIHNlbWljb2xvbi4gVXNlIFw/ICB0byBzZWUgYWxsIHRo ZQ0Kc2xhc2ggY29tbWFuZHMuKQ0KDQpBbmQgY3JlYXRlIGEgdGFibGU6IA0K DQpmb289PiBjcmVhdGUgdGFibGUgYmFyIChpIGludDQsIGMgY2hhcigxNikp Ow0KQ1JFQVRFDQoNClRoZW4gaW5zcGVjdCB0aGUgbmV3IHRhYmxlOiANCg0K Zm9vPT4gXGQgYmFyDQpUYWJsZSAgICA9IGJhcg0KKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tKw0KfCAgICAgICAgICAgICAgRmllbGQgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAg IHwgTGVuZ3RofA0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t Kw0KfCBpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGludDQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDQgfA0KfCBjICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGNoYXIoKSAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgMTYgfA0KKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tKw0KDQpBbmQgc28gb24uIFlvdSBnZXQgdGhl IGlkZWEuDQo= --8323328-651635041-937944888=:1899--