Received: from localhost ([::1]:39937 helo=stodi.digitalkingdom.org) by stodi.digitalkingdom.org with esmtp (Exim 4.76) (envelope-from ) id 1So3ii-0005jc-3y; Sun, 08 Jul 2012 19:29:04 -0700 Received: from 173-13-139-235-sfba.hfc.comcastbusiness.net ([173.13.139.235]:48133 helo=digitalkingdom.org) by stodi.digitalkingdom.org with smtp (Exim 4.76) (envelope-from ) id 1So3ia-0005jJ-6d for wikichanges@lojban.org; Sun, 08 Jul 2012 19:29:00 -0700 Received: by digitalkingdom.org (sSMTP sendmail emulation); Sun, 8 Jul 2012 19:28:52 -0700 From: "Apache" Date: Sun, 8 Jul 2012 19:28:52 -0700 To: wikichanges@lojban.org X-PHP-Originating-Script: 48:htmlMimeMail.php MIME-Version: 1.0 Message-ID: X-Spam-Score: 2.0 (++) X-Spam_score: 2.0 X-Spam_score_int: 20 X-Spam_bar: ++ X-Spam-Report: Spam detection software, running on the system "stodi.digitalkingdom.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: The page Folleto de introducción al lojban was created by AldoEZ at 14:28 GMT+12 You can view the page by following this link: http://www.lojban.org/tiki/Folleto%20de%20introducci%C3%B3n%20al%20lojban [...] Content analysis details: (2.0 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.6 RCVD_IN_BRBL_LASTEXT RBL: RCVD_IN_BRBL_LASTEXT [173.13.139.235 listed in bb.barracudacentral.org] 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS Subject: [Wikichanges] =?utf-8?q?Wiki_page_Folleto_de_introducci=C3=B3n_al?= =?utf-8?q?_lojban_created_by_AldoEZ?= X-BeenThere: wikichanges@lojban.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: webmaster@lojban.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: wikichanges-bounces@lojban.org VGhlIHBhZ2UgRm9sbGV0byBkZSBpbnRyb2R1Y2Npw7NuIGFsIGxvamJhbiB3YXMgY3JlYXRlZCBi eSBBbGRvRVogYXQgMTQ6MjggR01UKzEyCgpZb3UgY2FuIHZpZXcgdGhlIHBhZ2UgYnkgZm9sbG93 aW5nIHRoaXMgbGluazoKIApodHRwOi8vd3d3LmxvamJhbi5vcmcvdGlraS9Gb2xsZXRvJTIwZGUl MjBpbnRyb2R1Y2NpJUMzJUIzbiUyMGFsJTIwbG9qYmFuCgoKCioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgoKKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKVGhlIG5ldyBwYWdl IGNvbnRlbnQgZm9sbG93cyBiZWxvdy4KKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKCl5UcmFuc2xhdGlvbiBvZiB0aGlzIHBhZ2UgaXMg aW5jb21wbGV0ZS5eCgoKCiFMb2piYW4gLSBFbCBpZGlvbWEgbMOzZ2ljbwoKCgohJydsYSBsb2pi YW4uIHBvJ3UgbGUgbG9namkgYmFuZ3UnJwoKCgoqIHtBTElOSyhhbmFtZT0+aW50cm8pfUludHJv ZHVjY2nDs257QUxJTkt9CgoqIHtBTElOSyhhbmFtZT0+d2h5KX3Cv1BvciBxdcOpIGZ1ZSBjcmVh ZG8gZWwgbG9qYmFuP3tBTElOS30KCioge0FMSU5LKGFuYW1lPT5vdGhlcnVzZXMpfU90cm9zIHVz b3MgZGVsIGxvamJhbntBTElOS30KCioge0FMSU5LKGFuYW1lPT5kZXNpZ24pfUVsIGRpc2XDsW8g ZGVsIGxvamJhbntBTElOS30KCioge0FMSU5LKGFuYW1lPT5jdXJyZW50KX1Vc28geSBlc3RhZG8g YWN0dWFse0FMSU5LfQoKKiB7QUxJTksoYW5hbWU9PnVuYW1iaWd1aXR5KX1MYSBuYXR1cmFsZXph IGluZXF1w612b2NhIGRlbCBsb2piYW57QUxJTkt9CgoqIHtBTElOSyhhbmFtZT0+c2FwaXJ3aG9y Zil9RWwgbG9qYmFuIHkgU2FwaXItV2hvcmZ7QUxJTkt9CgoqIHtBTElOSyhhbmFtZT0+b3RoZXJs aW5nKX1PdHJhcyBhcGxpY2FjaW9uZXMgbGluZ3XDrXN0aWNhc3tBTElOS30KCioge0FMSU5LKGFu YW1lPT5pbnRlcm5hdGlvbmFsKX1FbCBsb2piYW4gY29tbyB1biBpZGlvbWEgaW50ZXJuYWNpb25h bHtBTElOS30KCioge0FMSU5LKGFuYW1lPT5yZWFzb25zKX1WYXJpYXMgcmF6b25lcyBwYXJhIGFw cmVuZGVyIGxvamJhbiBBSE9SQXtBTElOS30KCioge0FMSU5LKGFuYW1lPT5ob3cpfUPDs21vIGFw cmVuZGVyIGxvamJhbntBTElOS30KCiogKChDb250YWN0IFVTfEVudHJhciBlbiBjb250YWN0bykp CgohIUludHJvZHVjY2nDs257QU5BTUUoKX1pbnRyb3tBTkFNRX0KCgoKRWwgX19sb2piYW5fXyAo L0xPTEwtYmFuLykgZXMgdW5hIGxlbmd1YSBjb25zdHJ1aWRhLiBPcmlnaW5hbG1lbnRlIGVyYSBs bGFtYWRvICJfX2xvZ2xhbl9fIiBwb3IgZWwgX19Eci4gSmFtZXMgQ29va2UgQnJvd25fXywgZnVu ZGFkb3IgZGVsIHByb3llY3RvLCBxdWllbiBjb21lbnrDsyBhIGRlc2Fycm9sbGFyIGVsIGlkaW9t YSBlbiBfXzE5NTVfXy4gTGFzIG1ldGFzIGRlbCBpZGlvbWEgc2UgZGVzY3JpYmllcm9uIHBvciBw cmltZXJhIHZleiBlbiBlbCBhcnTDrWN1bG8gIkxvZ2xhbiIgZGUgJydTY2llbnRpZmljIEFtZXJp Y2FuLCBKdW5pbywgMTk2MCcnLiBFbCBsb2dsYW4vbG9qYmFuIHNlIGNvbnN0cnV5w7MgZW4gbcOh cyBkZSB0cmVzIGTDqWNhZGFzIHBvciBkb2NlbmFzIGRlIHRyYWJhamFkb3JlcyB5IGNpZW50b3Mg ZGUgc2VndWlkb3JlcywgZGlyaWdpZG9zIHBvciBlbCBfX0xvZ2ljYWwgTGFuZ3VhZ2UgR3JvdXBf XyBkZXNkZSBfXzE5ODdfXy4KCgoKRXhpc3RlbiBtdWNoYXMgbGVuZ3VhcyBhcnRpZmljaWFsZXMs IHBlcm8gZWwgbG9nbGFuL2xvamJhbiBzZSBoYSB0cmFiYWphZG8gaW5nZW5pZXJpbG1lbnRlIHBh cmEgc2VyIMO6bmljbyBkZSB2YXJpYXMgbWFuZXJhcy4gVGhlIGZvbGxvd2luZyBhcmUgdGhlIG1h aW4gZmVhdHVyZXMgb2YgTG9qYmFuOgoKCgoqIExvamJhbiBpcyBkZXNpZ25lZCB0byBiZSB1c2Vk IGJ5IHBlb3BsZSBpbiBfX2NvbW11bmljYXRpb25fXyB3aXRoIGVhY2ggb3RoZXIsIGFuZCBwb3Nz aWJseSBpbiB0aGUgZnV0dXJlIHdpdGggY29tcHV0ZXJzLgoKKiBMb2piYW4gaXMgZGVzaWduZWQg dG8gYmUgX19jdWx0dXJhbGx5IG5ldXRyYWxfXy4KCiogTG9qYmFuIGdyYW1tYXIgaXMgYmFzZWQg b24gdGhlIF9fcHJpbmNpcGxlcyBvZiBsb2dpY19fLgoKKiBMb2piYW4gaGFzIGFuIF9fdW5hbWJp Z3VvdXMgZ3JhbW1hcl9fLiAKCiogTG9qYmFuIGhhcyBfX3Bob25ldGljIHNwZWxsaW5nX18sIGFu ZCB1bmFtYmlndW91cyByZXNvbHV0aW9uIG9mIHNvdW5kcyBpbnRvIHdvcmRzLiAKCiogTG9qYmFu IGlzIF9fc2ltcGxlX18gY29tcGFyZWQgdG8gbmF0dXJhbCBsYW5ndWFnZXM7IGl0IGlzIGVhc3kg dG8gbGVhcm4uIAoKKiBMb2piYW4ncyBfXzEzMDAgcm9vdCB3b3Jkc19fIGNhbiBiZSBlYXNpbHkg Y29tYmluZWQgdG8gZm9ybSBhIHZvY2FidWxhcnkgb2YgX19taWxsaW9ucyBvZiB3b3Jkc19fLiAK CiogTG9qYmFuIGlzIHJlZ3VsYXI7IHRoZSBydWxlcyBvZiB0aGUgbGFuZ3VhZ2UgYXJlIF9fd2l0 aG91dCBleGNlcHRpb25fXy4gCgoqIExvamJhbiBhdHRlbXB0cyB0byBfX3JlbW92ZSByZXN0cmlj dGlvbnNfXyBvbiBjcmVhdGl2ZSBhbmQgY2xlYXIgdGhvdWdodCBhbmQgY29tbXVuaWNhdGlvbi4g CgoqIExvamJhbiBoYXMgYSBfX3ZhcmlldHkgb2YgdXNlc19fLCByYW5naW5nIGZyb20gdGhlIGNy ZWF0aXZlIHRvIHRoZSBzY2llbnRpZmljLCBmcm9tIHRoZSB0aGVvcmV0aWNhbCB0byB0aGUgcHJh Y3RpY2FsLiAKCgoKISFXaHkgd2FzIExvamJhbiBkZXZlbG9wZWQ/e0FOQU1FKCl9d2h5e0FOQU1F fQoKCgpMb2piYW4gd2FzIG9yaWdpbmFsbHkgZGVzaWduZWQgZm9yIHRoZSBwdXJwb3NlIG9mIHN1 cHBvcnRpbmcgcmVzZWFyY2ggb24gYSBjb25jZXB0IGtub3duIGFzIHRoZSBfX1NhcGlyLVdob3Jm X18gaHlwb3RoZXNpczogInRoZSBzdHJ1Y3R1cmUgb2YgYSBsYW5ndWFnZSBjb25zdHJhaW5zIHRo ZSB0aGlua2luZyBvZiBwZW9wbGUgdXNpbmcgdGhhdCBsYW5ndWFnZSIuIExvamJhbiBhbGxvd3Mg dGhlIGZ1bGwgZXhwcmVzc2l2ZSBjYXBhYmlsaXR5IG9mIGEgbmF0dXJhbCBsYW5ndWFnZSwgYnV0 IGRpZmZlcnMgaW4gc3RydWN0dXJlIGZyb20gb3RoZXIgbGFuZ3VhZ2VzIGluIG1ham9yIHdheXMu IFRoaXMgYWxsb3dzIGl0cyB1c2UgYXMgYSB0ZXN0IHZlaGljbGUgZm9yIHNjaWVudGlzdHMgc3R1 ZHlpbmcgdGhlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiBsYW5ndWFnZSwgdGhvdWdodCwgYW5kIGN1 bHR1cmUuIAoKCgohIU90aGVyIHVzZXMgZm9yIExvamJhbntBTkFNRSgpfW90aGVydXNlc3tBTkFN RX0KCgoKTG9qYmFuIHdhcyBkZXNpZ25lZCBhcyBhIGh1bWFuIGxhbmd1YWdlLCBhbmQgbm90IGFz IGEgY29tcHV0ZXIgbGFuZ3VhZ2UuIEl0IGlzIHRoZXJlZm9yZSBpbnRlbmRlZCBmb3IgdXNlIGlu IGNvbnZlcnNhdGlvbiwgcmVhZGluZywgd3JpdGluZywgYW5kIHRoaW5raW5nLiBIb3dldmVyLCBz aW5jZSBMb2piYW4gY2FuIGJlIHByb2Nlc3NlZCBieSBhIGNvbXB1dGVyIG11Y2ggbW9yZSBlYXNp bHkgdGhhbiBjYW4gYSBuYXR1cmFsIGxhbmd1YWdlLCBMb2piYW4tYmFzZWQgY29tcHV0ZXIgYXBw bGljYXRpb25zIGFyZSBhIG5hdHVyYWwgZXhwZWN0YXRpb24uIER1ZSB0byBpdHMgdW5hbWJpZ3Vv dXMgZ3JhbW1hciBhbmQgc2ltcGxlIHN0cnVjdHVyZSwgaXQgY2FuIGJlIGVhc2lseSBwYXJzZWQg YnkgY29tcHV0ZXJzLCBtYWtpbmcgaXQgcG9zc2libGUgZm9yIExvamJhbiB0byBiZSB1c2VkIGlu IHRoZSBmdXR1cmUgZm9yIGNvbXB1dGVyLWh1bWFuIGludGVyYWN0aW9uLCBhbmQgcGVyaGFwcyBj b252ZXJzYXRpb24uIExvamJhbidzIHByZWRpY2F0ZSBzdHJ1Y3R1cmUgaXMgc2ltaWxhciB0byBB SSwgc3VnZ2VzdGluZyBpdCBhcyBhIHBvd2VyZnVsIHRvb2wgaW4gQUkgcHJvY2Vzc2luZywgZXNw ZWNpYWxseSBpbiB0aGUgc3RvcmluZyBhbmQgcHJvY2Vzc2luZyBvZiBkYXRhIGFib3V0IHRoZSB3 b3JsZCBhbmQgcGVvcGxlJ3MgY29uY2VwdGlvbnMgb2YgaXQuIExpbmd1aXN0cyBhcmUgaW50ZXJl c3RlZCBpbiBMb2piYW4ncyBwb3RlbnRpYWwgYXMgYW4gaW50ZXJtZWRpYXRlIGxhbmd1YWdlIGlu IGNvbXB1dGVyLWFpZGVkIHRyYW5zbGF0aW9uIG9mIG5hdHVyYWwgbGFuZ3VhZ2VzLiBPdGhlciBw ZW9wbGUgYXJlIGludGVyZXN0ZWQgaW4gTG9qYmFuIGFzIGFuIGludGVybmF0aW9uYWwgbGFuZ3Vh Z2UuIAoKCgohIVRoZSBMb2piYW4gZGVzaWdue0FOQU1FKCl9ZGVzaWdue0FOQU1FfQoKCgpMb2pi YW4ncyBjaGFyYWN0ZXIgc2V0IHVzZXMgb25seSBzdGFuZGFyZCBrZXlib2FyZCBrZXlzOyBjYXBp dGFsaXphdGlvbiBpcyByYXJlOyBwdW5jdHVhdGlvbiBpcyBzcG9rZW4gYXMgd29yZHMuIFdyaXR0 ZW4gbGFuZ3VhZ2UgY29ycmVzcG9uZHMgZXhhY3RseSB0byB0aGUgc291bmRzIG9mIHRoZSBzcG9r ZW4gbGFuZ3VhZ2U7IHNwZWxsaW5nIGlzIHBob25ldGljIGFuZCB1bmFtYmlndW91cywgYW5kIHRo ZSBmbG93aW5nIHNvdW5kcyBvZiB0aGUgbGFuZ3VhZ2UgYnJlYWsgZG93biB1bmlxdWVseSBpbnRv IHdvcmRzLiBUaGVzZSBmZWF0dXJlcyBtYWtlIGNvbXB1dGVyIHNwZWVjaCByZWNvZ25pdGlvbiBh bmQgdHJhbnNjcmlwdGlvbiBtb3JlIHByYWN0aWNhbC4gTGVhcm5pbmcgdG8gd3JpdGUgYW5kIHNw ZWxsIExvamJhbiBpcyB0cml2aWFsLgoKCgpMb2piYW4ncyBwcmVkaWNhdGUgZ3JhbW1hciB3YXMg ZGVyaXZlZCBmcm9tIHRoYXQgb2YgZm9ybWFsIGxvZ2ljLiBMb2piYW4gc2VudGVuY2VzIGFyZSBz dGF0ZWQgYXMgc2V0cyBvZiBhcmd1bWVudHMgdGllZCB0b2dldGhlciBieSBwcmVkaWNhdGVzLiBU aGVzZSBwcmVkaWNhdGUgc3RydWN0dXJlcyBjYW4gYmUgdXNlZCB0byBleHByZXNzICdub24tbG9n aWNhbCcgdGhvdWdodDsgbG9naWNpYW5zIGFyZSBhYmxlIHRvIGFuYWx5emUgYWxsIG1hbm5lciBv ZiB2ZXJiYWwgZXhwcmVzc2lvbnMgYnkgY29udmVydGluZyB0aGVtIGludG8gcHJlZGljYXRlIG5v dGF0aW9uLiBCdXQgd2hpbGUgTG9qYmFuIHdpbGwgYWxyZWFkeSBiZSBleHByZXNzZWQgaW4gYSBw cmVkaWNhdGUtYmFzZWQgc3lzdGVtLCBhbGxvd2luZyBlYXN5IGxvZ2ljYWwgYW5hbHlzaXMsIGl0 IGFsc28gY29udGFpbnMgdGhlIHdpZGUgdmFyaWV0eSBvZiBlbGVtZW50cyBmb3VuZCBpbiBuYXR1 cmFsIGxhbmd1YWdlIGZvciBleHByZXNzaW9uIG9mIGF0dGl0dWRlcywKCmVtb3Rpb25zLCBhbmQg cmljaCBtZXRhcGhvci4KCgoKTG9qYmFuIGhhcyBub25lIG9mIHRoZSBzdGFuZGFyZCBwYXJ0cyBv ZiBzcGVlY2guIExvamJhbidzICdwcmVkaWNhdGUgd29yZHMnIGNhbiBzZXJ2ZSBhcyB0aGUgZXF1 aXZhbGVudCBvZiBhIG5vdW4sIHZlcmIsIGFkamVjdGl2ZSwgb3IgYWR2ZXJiLiBBY3Rpb24gYW5k IGV4aXN0ZW5jZSBhcmUgZXF1YWxseSBhY2Nlc3NpYmxlIHRvIGEgc3BlYWtlcjsgdGhlIGRpc3Rp bmN0aW9uIGNhbiBiZSBpZ25vcmVkLCBvciBjYW4gYmUgZXhwbGljaXRseSBleHByZXNzZWQuIEEg dmFyaWV0eSBvZiBvcGVyYXRvcnMgZGVhbCB3aXRoIGFic3RyYWN0aW9ucyBzdWNoIGFzIGV2ZW50 cywgc3RhdGVzLCBwcm9wZXJ0aWVzLCBhbW91bnRzLCBpZGVhcywgZXhwZXJpZW5jZSwgYW5kIHRy dXRoLCBhbmQgd2l0aCBhdCBsZWFzdCBmb3VyIHByZS1kZWZpbmVkIHZhcmlldGllcyBvZiBjYXVz YWxpdHkuCgoKCkxvamJhbiBoYXMgbm8gbWFuZGF0b3J5IGluZmxlY3Rpb25zIGFuZCBkZWNsZW5z aW9ucyBvbiBub3VucywgdmVyYnMsIGFuZCBhZGplY3RpdmVzLiBOYXR1cmFsIGxhbmd1YWdlcyBl dm9sdmVkIHN1Y2ggdmFyaWF0aW9ucyB0byByZWR1Y2UgYW1iaWd1aXR5IGFzIHRvIGhvdyB3b3Jk cyBhcmUgcmVsYXRlZCBpbiBhIHNlbnRlbmNlLiBFdm9sdXRpb25hcnkgZGV2ZWxvcG1lbnQgbWFk ZSB0aGVzZSBpbmZsZWN0aW9ucyBhbmQgZGVjbGVuc2lvbnMgaGlnaGx5IGlycmVndWxhciBhbmQg dGh1cyBkaWZmaWN1bHQgdG8gbGVhcm4uIFRoZSBzaW1wbGUgYnV0IGZsZXhpYmxlIHByZWRpY2F0 ZSByZWxhdGlvbnNoaXAgZXJhc2VzIGJvdGggdGhlIGlycmVndWxhcml0eSBhbmQgdGhlIGRlY2xl bnNpb25zLgoKCgpUZW5zZSBhbmQgbG9jYXRpb24gbWFya2VycyAoaW5mbGVjdGlvbnMpLCBhZHZl cmJzLCBhbmQgcHJlcG9zaXRpb25zIGFyZSBjb21iaW5lZCBpbnRvIG9uZSBwYXJ0IG9mIHNwZWVj aC4gTmV3IHByZXBvc2l0aW9uLWxpa2UgZm9ybXMgY2FuIGJlIGJ1aWx0IGF0IHdpbGwgZnJvbSBw cmVkaWNhdGVzOyB0aGVzZSBhbGxvdyB0aGUgdXNlciB0byBleHBhbmQgdXBvbiBhIHNlbnRlbmNl IGJ5IGF0dGFjaGluZyBhbmQgcmVsYXRpbmcgY2xhdXNlcyBub3Qgbm9ybWFsbHkgaW1wbGllZCBp biB0aGUgbWVhbmluZyBvZiBhIHdvcmQuCgoKCk51bWJlcnMgYW5kIHF1YW50aWZpZXJzIGFyZSBj b25jZXB0dWFsbHkgZXhwYW5kZWQgZnJvbSBuYXR1cmFsIGxhbmd1YWdlcy4gIk1hbnkiLCAiZW5v dWdoIiwgInRvbyBtdWNoIiwgImEgZmV3IiwgYW5kICJhdCBsZWFzdCIgYXJlIGFtb25nIGNvbmNl cHRzIHRoYXQgYXJlIGV4cHJlc3NlZCBhcyBudW1iZXJzIGluIExvamJhbi4gQ29yZSBjb25jZXB0 cyBvZiBsb2dpYywgbWF0aGVtYXRpY3MsIGFuZCBzY2llbmNlIGFyZSBidWlsdCBpbnRvIHRoZSBy b290IHZvY2FidWxhcnkuIE9uIHRvcCBvZiB0aGUgY29yZSBjb25jZXB0cyBvZiBwcmVkaWNhdGUg bG9naWMsIExvamJhbiBhZGRzIGluIG5vbi1sb2dpY2FsIGNvbnN0cnVjdHMgdGhhdCBkbyBub3Qg YWZmZWN0IG9yIG9ic2N1cmUgdGhlIGxvZ2ljYWwgc3RydWN0dXJlLCBhbGxvd2luZyBjb21tdW5p Y2F0aW9ucyB0aGF0IGFyZSBub3QgYW1lbmFibGUgdG8gbG9naWNhbCBhbmFseXNpcy4gRm9yIGV4 YW1wbGUsIExvamJhbiBoYXMgYSBmdWxsIHNldCBvZiBlbW90aW9uYWwgaW5kaWNhdG9ycywgc2lt aWxhciB0byBzdWNoIGVqYWN1bGF0aW9ucyBpbiBFbmdsaXNoIGFzICJPaCEiLCAiQWhhISIsIGFu ZCAiV2hlZWUhIiwgZXhjZXB0IHRoYXQgZWFjaCBoYXMgYSBzcGVjaWZpYyBtZWFuaW5nLiBTaW1p bGFybHksIExvamJhbiBoYXMgaW5kaWNhdG9ycyBvZiB0aGUgc3BlYWtlcidzIHJlbGF0aW9uc2hp cCB0byB3aGF0IGlzIHNhaWQsIHNpbWlsYXIgdG8gdGhvc2UgZm91bmQgaW4gc29tZSBBbWVyaWNh biBJbmRpYW4gbGFuZ3VhZ2VzLgoKCgpMb2piYW4gc3VwcG9ydHMgbWV0YWxpbmd1aXN0aWMgZGlz Y3Vzc2lvbiBhYm91dCB0aGUgc2VudGVuY2VzIGJlaW5nIHNwb2tlbiB3aGlsZSByZW1haW5pbmcg dW5hbWJpZ3VvdXMuIExvamJhbiBhbHNvIHN1cHBvcnRzIGEgJ3RlbnNlJyBsb2dpYyB0aGF0IGFs bG93cyBleHRyZW1lIHNwZWNpZmljaXR5IG9mIHRpbWUgYW5kIHNwYWNlIHJlbGF0aW9uc2hpcHMs IGV2ZW4gdGhvc2UgaW1wbGllZCBieSB0aW1lIHRyYXZlbC4gTG9qYmFuJ3MgZ3JhbW1hciBpcyBk ZXNpZ25lZCB0byBzdXBwb3J0IHVuYW1iaWd1b3VzIHN0YXRlbWVudCBvZiBtYXRoZW1hdGljYWwg ZXhwcmVzc2lvbnMgYW5kIHJlbGF0aW9ucyBpbiBhIG1hbm5lciBjb21wYXRpYmxlIGJvdGggd2l0 aCBpbnRlcm5hdGlvbmFsIHVzYWdlIGFuZCBMb2piYW4ncyBub24tbWF0aGVtYXRpY2FsIGdyYW1t YXIuCgoKCkxvamJhbiBpcyBtdWNoIHNpbXBsZXIgdGhhbiBuYXR1cmFsIGxhbmd1YWdlcy4gSXRz IGdyYW1tYXIgaXMgY29tcGFyYWJsZSBpbiBjb21wbGV4aXR5IHdpdGggdGhlIGN1cnJlbnQgZ2Vu ZXJhdGlvbiBvZiBjb21wdXRlciBsYW5ndWFnZXMgKHN1Y2ggYXMgQURBKS4gTG9qYmFuJ3MgcHJv bnVuY2lhdGlvbiwgc3BlbGxpbmcsIHdvcmQgZm9ybWF0aW9uLCBhbmQgZ3JhbW1hciBydWxlcyBh cmUgZml4ZWQsIGFuZCB0aGUgbGFuZ3VhZ2UgaXMgZnJlZSBvZiBleGNlcHRpb25zIHRvIHRoZXNl IHJ1bGVzLgoKCgohIUN1cnJlbnQgc3RhdHVzIGFuZCB1c2FnZXtBTkFNRSgpfWN1cnJlbnR7QU5B TUV9CgoKClRoZSBsYW5ndWFnZSwgdGhlbiBjYWxsZWQgX19Mb2dsYW5fXywgd2FzIGZpcnN0IGRl c2NyaWJlZCBpbiB0aGUgMTk1MCdzLCBieSBEci4gSmFtZXMgQ29va2UgQnJvd24uIFRoZSAxOTYw IFNjaWVudGlmaWMgQW1lcmljYW4gYXJ0aWNsZSAiTG9nbGFuIiB3YXMgaGlzIGNhbGwgZm9yIGFz c2lzdGFuY2UgaW4gZGV2ZWxvcGluZyB0aGUgbGFuZ3VhZ2UuIEEgcmV2b2x1dGlvbiBpbiBsaW5n dWlzdGljcyB3YXMgc2ltdWx0YW5lb3VzbHkgdGFraW5nIHBsYWNlOyB0aGUgcmVzdWx0aW5nIGlu Y3JlYXNlIGluIGtub3dsZWRnZSBvZiB0aGUgbmF0dXJlIG9mIGxhbmd1YWdlIGNoYW5nZWQgdGhl IHJlcXVpcmVtZW50cyBmb3IgTG9nbGFuLiBUaGUgZmlyc3Qgd2lkZWx5IGRpc3RyaWJ1dGVkIExv Z2xhbiBkaWN0aW9uYXJ5IGFuZCBsYW5ndWFnZSBkZXNjcmlwdGlvbiBkaWQgbm90IGFwcGVhciB1 bnRpbCAxOTc1OyB0aGlzIGRlc2NyaXB0aW9uIHdhcyBpbmNvbXBsZXRlLCBhbmQgY29udGludWVk IGRldmVsb3BtZW50IHdvcmsgZGlzY291cmFnZWQgbGVhcm5pbmcgdGhlIGxhbmd1YWdlLiBDb21w dXRlcnMgY2F1Z2h0IHVwIHdpdGggTG9nbGFuIGp1c3QgdGhlbiwgbWFraW5nIGl0IHBvc3NpYmxl IHRvIHJlZmluZSB0aGUgZ3JhbW1hciwgZWxpbWluYXRlIGFtYmlndWl0eSBhbmQgbWF0aGVtYXRp Y2FsbHkgcHJvdmUgaXRzIGFic2VuY2U7IHRoaXMgd29yayBoYXMganVzdCBiZWVuIGNvbXBsZXRl ZC4gRm9yIG92ZXIgMzUgeWVhcnMsIHRoaXMgd29yayBoYXMgYmVlbiBwZXJmb3JtZWQgYnkgdm9s dW50ZWVycywgYW5kIHdpdGhvdXQgZmluYW5jaWFsIHN1cHBvcnQuIE5vdywgYWZ0ZXIgc2V2ZXJh bCB2ZXJzaW9ucyBvZiB0aGUgbGFuZ3VhZ2UsIHBlb3BsZSBhcmUgbGVhcm5pbmcgYW5kIHVzaW5n IHRoZSBjdXJyZW50IHZlcnNpb24sIHdoaWNoIGlzIHRoZSBmaXJzdCBjYWxsZWQgX19Mb2piYW5f XyAoZnJvbSB0aGUgcm9vdHMgImxvZ2ljYWwtbGFuZ3VhZ2UiIGluIExvamJhbikuCgoKClRoaXMg dmVyc2lvbiBpcyB0aGUgZmlyc3QgdmVyc2lvbiB3aXRoIGEgc3RhYmxlIHZvY2FidWxhcnksIGFu ZCB0aGUgZmlyc3QgdG8gaGF2ZSBhIHN0YWJsZSBhbmQgY29tcGxldGVseSBkZWZpbmVkIGdyYW1t YXIgKHRoZSBncmFtbWFyIG9mIG1hdGhlbWF0aWNhbCBleHByZXNzaW9ucywgZm9yIGV4YW1wbGUs IHdhcyBub3QgZGV2ZWxvcGVkIHVudGlsIDE5OTApLiBUaGUgYmFzaWMgTG9qYmFuIHZvY2FidWxh cnkgd2FzIGJhc2VsaW5lZCAoc3RhYmlsaXplZCBhZ2FpbnN0IGNoYW5nZSkgaW4gdGhlIGxhc3Qg aGFsZiBvZiAxOTg4LCBhbmQgdGhlIGdyYW1tYXIgc2ltaWxhcmx5IHN0YWJpbGl6ZWQgaW4gbGF0 ZS0xOTkwLCBhZnRlciBjb21wbGV0aW9uIG9mIHRoZSBmaXJzdCBMb2piYW4gY291cnNlcywgYWN0 dWFsIHVzYWdlIG9mIHRoZSBsYW5ndWFnZSwgYW5kIHNldmVyYWwgaXRlcmF0aW9ucyBvZiBjYXJl ZnVsIGFuYWx5c2lzLiBUaGUgZnVsbCBsYW5ndWFnZSBkZXNpZ24gd2FzIGJhc2VsaW5lZCBpbiAx OTk3LCBhbmQgbm8gY2hhbmdlcyB3aWxsIGV2ZW4gYmUgY29uc2lkZXJlZCB1bnRpbCA1IHllYXJz IGFmdGVyIHRoZSBzZXQgb2YgYm9va3MgZGVzY3JpYmluZyB0aGUgbGFuZ3VhZ2UgaXMgcHVibGlz aGVkICh0aHVzIGF0IGxlYXN0IDIwMDUpLiBUaHVzLCB3aGlsZSB0aGUgbGFuZ3VhZ2Ugd2FzIGZp cnN0IHN0YXJ0ZWQgMzUgeWVhcnMgYWdvLCBMb2dsYW4vTG9qYmFuIGlzIGEgdmVyeSBuZXcgbGFu Z3VhZ2UuCgoKClRvIGVuc3VyZSBMb2piYW4gcmVtYWlucyBzdGFibGUgd2hpbGUgcGVvcGxlIGxl YXJuIGl0LCB0aGUgbGFuZ3VhZ2UgZGVmaW5pdGlvbiBpcyBwcmVzY3JpYmVkIGFuZCBjbG9zZWx5 IGNvbnRyb2xsZWQuIFdoZW4gdGhlIG51bWJlciBvZiBzcGVha2VycyBoYXMgZ3Jvd24gc2lnbmlm aWNhbnRseSwgYW5kIGEgTG9qYmFuIGxpdGVyYXR1cmUgaGFzIGRldmVsb3BlZCwgTG9qYmFuIHdp bGwgYmUgdHJlYXRlZCBsaWtlIGEgbmF0dXJhbCBsYW5ndWFnZSBhbmQgYWxsb3dlZCB0byBncm93 IGFuZCBmbG91cmlzaCB3aXRob3V0IGNvbnN0cmFpbnQsIGFzIGRvIG90aGVyIG5hdHVyYWwgbGFu Z3VhZ2VzLgoKCgpPcmlnaW5hbCB0ZXh0IGFuZCBwb2V0cnkgaGF2ZSBiZWVuIHdyaXR0ZW4gaW4g TG9qYmFuLCBhbmQgc29tZSBoYXMgYmVlbiB0cmFuc2xhdGVkIGludG8gdGhlIGxhbmd1YWdlLiBM b2piYW4ncyBwb3dlcmZ1bCBtZXRhcGhvciBzdHJ1Y3R1cmUgYWxsb3dzIGJ1aWxkaW5nIG5ldyBj b25jZXB0cyBpbnRvIHdvcmRzIGVhc2lseSwgYXMgbmVlZGVkLiBBIExvamJhbiBzcGVha2VyIGRv ZXNuJ3QgbmVlZCBhIGRpY3Rpb25hcnkgdG8gdXNlIGFuZCB1bmRlcnN0YW5kIG1pbGxpb25zIG9m IHdvcmRzIHRoYXQgY2FuIHBvdGVudGlhbGx5IGV4aXN0IGluIHRoZSBsYW5ndWFnZS4KCgoKQXMg b2YgMTk5NywgdGhlcmUgYXJlIGFib3V0IDEyMDAgcGVvcGxlIG9uIG91ciBtYWlsaW5nIGxpc3Rz LCBpbmNsdWRpbmcgYWJvdXQgMzAwIGxpc3RlZCBhcyBhY3RpdmVseSB0cnlpbmcgdG8gbGVhcm4g dGhlIGxhbmd1YWdlLiBPdmVyIDEwMCBvZiB0aGVzZSBoYXZlIGRlbW9uc3RyYXRlZCBjb21tdW5p Y2F0aXZlIGFiaWxpdHkgdG8gdXNlIHRoZSBsYW5ndWFnZSBpbiBjb252ZXJzYXRpb24sIHRyYW5z bGF0aW9uLCBvciBvcmlnaW5hbCB3cml0aW5nLCBhbmQgb25lIHBlcnNvbiBpcyBzdWZmaWNpZW50 bHkgc2tpbGxlZCB0byBiZSBjb25zaWRlcmVkIGZsdWVudCBpbiB0aGUgbGFuZ3VhZ2UuIFNldmVy YWwgb2YgdGhlc2UgcmVndWxhcmx5IGdldCB0b2dldGhlciBpbiB0aGUgV2FzaGluZ3RvbiBEQyBh cmVhIGZvciBjb252ZXJzYXRpb24sIGFuZCBhbiBhbm51YWwgbWVldGluZy9taW5pLWNvbnZlbnRp b24gaXMgaGVsZCB0aGVyZSBldmVyeSBzdW1tZXIuIFRoaXMgcHJvZ3Jlc3MgaXMgcmVtYXJrYWJs ZSBzaW5jZSB0aGVyZSBpcyBubyBkaWN0aW9uYXJ5IGZvciB0aGUgY3VycmVudCBsYW5ndWFnZSwg YW5kIGEgdGV4dGJvb2sgZXhpc3RzIG9ubHkgaW4gcGFydGlhbCBkcmFmdCBmb3JtOyBwZW9wbGUg dXNlIHRoZSBsYW5ndWFnZSByZWZlcmVuY2UgbWFudWFsIGFzIGEgbGVhcm5pbmcgc291cmNlLCBh bmQgd2UndmUgZXZvbHZlZCBtZXRob2RzIG9mIHRlYWNoaW5nIHRoZSBsYW5ndWFnZSBhdCBhIGRp c3RhbmNlIHRoYXQgb3ZlcmNvbWUgdGhpcyBoYW5kaWNhcC4KCgoKISFMb2piYW4ncyB1bmFtYmln dWl0eXtBTkFNRSgpfXVuYW1iaWd1aXR5e0FOQU1FfQoKCgpMb2piYW4gaGFzIGFuIHVuYW1iaWd1 b3VzIGdyYW1tYXIgKHByb3ZlbiBieSBjb21wdXRlciBhbmFseXNpcyBvZiBhIGZvcm1hbCBncmFt bWFyIHdpdGggWUFDQyksIHByb251bmNpYXRpb24sIGFuZCBtb3JwaG9sb2d5ICh3b3JkIGZvcm1z KS4gVGhlIHBlcnNvbiB3aG8gcmVhZHMgb3IgaGVhcnMgYSBMb2piYW4gc2VudGVuY2UgaXMgbmV2 ZXIgaW4gZG91YnQgYXMgdG8gd2hhdCB3b3JkcyBpdCBjb250YWlucyBvciB3aGF0IHJvbGVzIHRo ZXkgcGxheSBpbiB0aGUgc2VudGVuY2UuIExvamJhbiBoYXMgbm8gd29yZHMgdGhhdCBzb3VuZCBh bGlrZSBidXQgaGF2ZSBkaWZmZXJlbnQgbWVhbmluZ3MgKGxpa2UgImhlcmQiIGFuZCAiaGVhcmQi KSwgdGhhdCBoYXZlIG11bHRpcGxlIHVucmVsYXRlZCBtZWFuaW5ncyAoInNldCIpLCBvciB0aGF0 IGRpZmZlciBvbmx5IGluIHB1bmN0dWF0aW9uIGJ1dCBub3QgaW4gc291bmQgKGxpa2UgdGhlIGFi b21pbmFibGUgIml0cyIgYW5kICJpdCdzIikuIFRoZXJlIGlzIG5ldmVyIGFueSBkb3VidCBhYm91 dCB3aGVyZSB3b3JkcyBiZWdpbiBhbmQgZW5kICgiY2FyZ28gc2hpcG1lbnQiIGNhbiBiZSBoZWFy ZCBhcyAyLCAzLCBvciA0IHdvcmRzKS4gVGhlIGZ1bmN0aW9uIG9mIGVhY2ggd29yZCBpcyBjbGVh cjsgdGhlcmUgaXMgbm90aGluZyBsaWtlIHRoZSBFbmdsaXNoICJUaW1lIGZsaWVzIGxpa2UgYW4g YXJyb3cuIiwgaW4gd2hpY2ggYW55IG9mIHRoZSBmaXJzdCB0aHJlZSB3b3JkcyBjb3VsZCBiZSB0 aGUgdmVyYi4gUHJlY2lzaW9uIGluIG5vIHdheSBjb25maW5lcyB0aGUgbWVhbmluZyBvZiBhIExv amJhbiBzZW50ZW5jZS4gSXQgaXMgcG9zc2libGUgdG8gc3BlYWsgbm9uc2Vuc2UsIHRvIHRlbGwg YSBsaWUsIG9yIHRvIGJlIG1pc3VuZGVyc3Rvb2QuIFlvdSBjYW4gYmUgdmVyeSBzcGVjaWZpYywg b3IgeW91IGNhbiBiZSBpbnRlbnRpb25hbGx5IHZhZ3VlLiBZb3VyIGhlYXJlciBtYXkgbm90IHVu ZGVyc3RhbmQgd2hhdCB5b3UgbWVhbnQsIGJ1dCB3aWxsIGFsd2F5cyB1bmRlcnN0YW5kIHdoYXQg eW91IHNhaWQuCgoKCkxvamJhbiBpcyBOT1QgZW50aXJlbHkgdW5hbWJpZ3VvdXM7IGh1bWFuIGJl aW5ncyBvY2Nhc2lvbmFsbHkgZGVzaXJlIHRvIGJlIGFtYmlndW91cyBpbiB0aGVpciBleHByZXNz aW9ucy4gSW4gTG9qYmFuLCB0aGlzIGFtYmlndWl0eSBpcyBsaW1pdGVkIHRvIHNlbWFudGljcywg bWV0YXBob3IsIGFuZCBpbnRlbnRpb25hbCBvbWlzc2lvbiBvZiBpbmZvcm1hdGlvbiAoZWxsaXBz aXMpLiBTZW1hbnRpYyBhbWJpZ3VpdHkgaW4gbGFuZ3VhZ2UgcmVzdWx0cyBiZWNhdXNlIHdvcmRz IGluIG5hdHVyYWwgbGFuZ3VhZ2VzIHJlcHJlc2VudCBmYW1pbGllcyBvZiBjb25jZXB0cyByYXRo ZXIgdGhhbiBpbmRpdmlkdWFsIG1lYW5pbmdzLCBvZnRlbiB3aXRoIG9ubHkgd2VhayBzZW1hbnRp YyByZWxhdGlvbnNoaXBzIHRvIGVhY2ggb3RoZXIuIEluIGFkZGl0aW9uLCBlYWNoIGluZGl2aWR1 YWwncyBwZXJzb25hbCBleHBlcmllbmNlcyBwcm92aWRlIGVtb3Rpb25hbCBjb25ub3RhdGlvbnMg dG8gd29yZHMuIEJ5IHByb3ZpZGluZyBhIGZyZXNoLCBjdWx0dXJhbGx5LW5ldXRyYWwgc3RhcnQs IExvamJhbiBhdHRlbXB0cyB0byBtaW5pbWl6ZSB0aGUgdHJhbnNmZXJlbmNlIG9mIHRoZXNlIGFz c29jaWF0aW9ucyBhcyBwZW9wbGUgbGVhcm4gdGhlIGxhbmd1YWdlLiBCeSBpbnRlbnRpb24sIG1v c3QgTG9qYmFuIHdvcmRzIGRvIG5vdCBjbG9zZWx5IHJlc2VtYmxlIGNvcnJlc3BvbmRpbmcgd29y ZHMgaW4gb3RoZXIgbGFuZ3VhZ2VzOyB0aGUgZGlmZmVyZW5jZXMgYWlkIGluIG1ha2luZyB0aGlz IGZyZXNoIHN0YXJ0IHBvc3NpYmxlLiBMb2piYW4ncyBwb3dlcmZ1bCBtZXRhcGhvciBhbmQgd29y ZC1idWlsZGluZyBmZWF0dXJlcyBtYWtlIGl0IGVhc3kgdG8gbWFrZSBmaW5lIGRpc3RpbmN0aW9u cyBiZXR3ZWVuIGNvbmNlcHRzLCBkaXNjb3VyYWdpbmcgaW5kaXZpZHVhbCB3b3JkcyBmcm9tIGhh dmluZyBmYW1pbGllcyBvZiBtZWFuaW5ncy4gTG9qYmFuIG1ldGFwaG9ycyBhcmUgdGhlbXNlbHZl cyBhbWJpZ3VvdXMsIHNwZWNpZnlpbmcgYSByZWxhdGlvbnNoaXAgYmV0d2VlbiBjb25jZXB0cywg YnV0IG5vdCB3aGF0IHRoZSByZWxhdGlvbnNoaXAgaXMuIFRoYXQgcmVsYXRpb25zaGlwIGNhbiBi ZSBtYWRlIGV4cGxpY2l0IHVzaW5nIHVuYW1iaWd1b3VzIGxvZ2ljYWwgY29uc3RydWN0cyBpZiBu ZWNlc3NhcnksIG9yIGNhbiBiZSBsZWZ0IHZhZ3VlIGFzIHRoZSBzcGVha2VyICh1c3VhbGx5KSBk ZXNpcmVzLiBTaW1pbGFybHksIHBvcnRpb25zIG9mIHRoZSBsb2dpY2FsIHN0cnVjdHVyZSBvZiBh IExvamJhbiBleHByZXNzaW9uIGNhbiBiZSBvbWl0dGVkLCBncmVhdGx5IHNpbXBsaWZ5aW5nIHRo ZSBleHByZXNzaW9uIHdoaWxlIGNhdXNpbmcgc29tZSBhbWJpZ3VpdHkuIFVubGlrZSBpbiB0aGUg bmF0dXJhbCBsYW5ndWFnZXMsIHRob3VnaCwgdGhpcyBhbWJpZ3VpdHkgaXMgcmVhZGlseSBpZGVu dGlmaWVkIGJ5IGEgcmVhZGVyIG9yIGxpc3RlbmVyLiBUaHVzIGFsbCBhbWJpZ3VpdHkgaW4gTG9q YmFuIGlzIGNvbnN0cmFpbmVkIGFuZCByZWNvZ25pemFibGUsIGFuZCBjYW4gYmUgY2xhcmlmaWVk IGFzIG5lY2Vzc2FyeSBieSBmdXJ0aGVyIGludGVyYWN0aW9uLgoKCgohIUxvamJhbiBhbmQgU2Fw aXItV2hvcmZ7QU5BTUUoKX1zYXBpcndob3Jme0FOQU1FfQoKCgpUaGlzIGh5cG90aGVzaXMgc3Rh dGVzIHRoYXQgdGhlIHN0cnVjdHVyZSBvZiBhIGxhbmd1YWdlIGNvbnN0cmFpbnMgdGhvdWdodCBp biB0aGF0IGxhbmd1YWdlLCBhbmQgY29uc3RyYWlucyBhbmQgaW5mbHVlbmNlcyB0aGUgY3VsdHVy ZSB0aGF0IHVzZXMgaXQuIEluIG90aGVyIHdvcmRzLCBpZiBjb25jZXB0cyBvciBzdHJ1Y3R1cmFs IHBhdHRlcm5zIGFyZSBkaWZmaWN1bHQgdG8gZXhwcmVzcyBpbiBhIGxhbmd1YWdlLCB0aGUgc29j aWV0eSBhbmQgY3VsdHVyZSB1c2luZyB0aGUgbGFuZ3VhZ2Ugd2lsbCB0ZW5kIHRvIGF2b2lkIHRo ZW0uIEluZGl2aWR1YWxzIG1pZ2h0IG92ZXJjb21lIHRoaXMgYmFycmllciwgYnV0IHRoZSBzb2Np ZXR5IGFzIGEgd2hvbGUgd2lsbCBub3QuIFRoZSBTYXBpci1XaG9yZiBoeXBvdGhlc2lzIGlzIGlt cG9ydGFudCwgYW5kIGNvbnRyb3ZlcnNpYWw7IGl0IGNhbiBiZSB1c2VkIGFzIGEgc29jaW9sb2dp Y2FsIGFyZ3VtZW50IHRvIGp1c3RpZnkgb3IgdG8gb3Bwb3NlIHJhY2lzbSBhbmQgc2V4aXNtIChh bmQgYSB2YXJpZXR5IG9mIG90aGVyICdpc21zJykuIEZvciBleGFtcGxlLCB0aGUgYXNzZXJ0aW9u IHRoYXQgc2luY2UgZ2VuZGVybGVzcyBleHByZXNzaW9ucyBpbiBFbmdsaXNoIHVzZSAnbWFzY3Vs aW5lJyBmb3JtcywgRW5nbGlzaCBpcyAnc2V4aXN0JywgcHJlc3VtZXMgdGhlIFNhcGlyLVdob3Jm IGh5cG90aGVzaXMgaXMgdHJ1ZS4gVW5kZXJzdGFuZGluZyB0aGUgcG90ZW50aWFsIGZvciBTYXBp ci1XaG9yZiBlZmZlY3RzIGNvdWxkIGxlYWQgdG8gYmV0dGVyIGludGVyLWN1bHR1cmFsIHVuZGVy c3RhbmRpbmcsIHByb21vdGluZyBjb21tdW5pY2F0aW9uIGFuZCBwZWFjZS4KCgoKSXQgaXMga25v d24gdGhhdCBwZW9wbGUncyBpZGVhcyBhbmQgdGhvdWdodCBjaGFuZ2Ugc29tZXdoYXQgd2hlbiB0 aGV5IGxlYXJuIGEgZm9yZWlnbiBsYW5ndWFnZS4gSXQgaXMgbm90IGtub3duIHdoZXRoZXIgdGhp cyBjaGFuZ2UgaXMgZHVlIHRvIGV4cG9zdXJlIHRvIGEgZGlmZmVyZW50IGN1bHR1cmUgb3IgZXZl biBqdXN0IGdldHRpbmcgb3V0c2lkZSBvZiBvbmVzIG93biBjdWx0dXJlLiBJdCBpcyBhbHNvIG5v dCBrbm93biBob3cgbXVjaCAoaWYgYW55KSBvZiB0aGUgY2hhbmdlIGlzIGR1ZSB0byB0aGUgbmF0 dXJlIG9mIHRoZSBsYW5ndWFnZSwgYXMgb3Bwb3NlZCB0byB0aGUgY3VsdHVyYWwgYXNzb2NpYXRp b25zLgoKCgpUaGUgU2FwaXItV2hvcmYgaHlwb3RoZXNpcyB3YXMgaW1wb3J0YW50IGluIGxpbmd1 aXN0aWNzIGluIHRoZSAxOTUwJ3MsIGJ1dCBpbnRlcmVzdCBmZWxsIG9mZiBwYXJ0aWFsbHkgYmVj YXVzZSBwcm9wZXJseSB0ZXN0aW5nIGl0IHdhcyBzbyBkaWZmaWN1bHQuIExvZ2xhbi9Mb2piYW4g aXMgYSBuZXcgYXBwcm9hY2ggdG8gc3VjaCB0ZXN0aW5nLiBPYnZpb3VzbHksIGlmIGEgY3VsdHVy ZS1pbmRlcGVuZGVudCBsYW5ndWFnZSBjb3VsZCBiZSB0YXVnaHQgdG8gZ3JvdXBzIG9mIHBlb3Bs ZSwgdGhlIGVmZmVjdHMgb2YgbGFuZ3VhZ2UgY291bGQgbW9yZSBlYXNpbHkgYmUgc2VwYXJhdGVk IGZyb20gdGhvc2Ugb2YgY3VsdHVyZS4KCgoKVW5pcXVlIGZlYXR1cmVzIG9mIExvamJhbiByZW1v dmUgY29uc3RyYWludHMgb24gbGFuZ3VhZ2UgaW4gdGhlIGFyZWFzIG9mIGxvZ2ljLCBhbWJpZ3Vp dHksIGFuZCBleHByZXNzaXZlIHBvd2VyLCBvcGVuaW5nIHVwIGFyZWFzIG9mIHRob3VnaHQgdGhh dCBoYXZlIG5vdCBiZWVuIGVhc2lseSBhY2Nlc3NpYmxlIGJ5IGh1bWFuIGxhbmd1YWdlIGJlZm9y ZS4gTWVhbndoaWxlLCB0aGUgZm9ybWFsIHJpZ2lkaXR5IG9mIHRoZSBsYW5ndWFnZSBkZWZpbml0 aW9uIGFsbG93cyBzcGVha2VycyB0byBjYXJlZnVsbHkgY29udHJvbCB0aGVpciBleHByZXNzaW9u cyAoYW5kIHBlcmhhcHMgdGhlcmVmb3JlIHRoZWlyIHRob3VnaHQgcHJvY2Vzc2VzKS4gVGhpcyBn aXZlcyBzb21lIG1lYXN1cmUgb2YgcHJlZGljdGl2ZSBwb3dlciB0aGF0IGNhbiBiZSB1c2VkIGlu IGRlc2lnbmluZyBhbmQgcHJlcGFyaW5nIGZvciBhY3R1YWwgU2FwaXItV2hvcmYgZXhwZXJpbWVu dHMuCgoKCk9uZSBvZiB0aGUgcHJlcmVxdWlzaXRlcyBvZiBhIFNhcGlyLVdob3JmIGV4cGVyaW1l bnQgaXMgYW4gaW50ZXJuYXRpb25hbCBib2R5IG9mIExvamJhbiBzcGVha2Vycy4gV2UgbmVlZCB0 byBiZSBhYmxlIHRvIHRlYWNoIExvamJhbiB0byBzdWJqZWN0cyB3aG8ga25vdyBvbmx5IHRoZWly IG5hdGl2ZSAobm9uLUVuZ2xpc2gpIHRvbmd1ZSwgYW5kIHdlIG5lZWQgdG8ga25vdyBpbiBhZHZh bmNlIHRoZSBkaWZmaWN1bHRpZXMgdGhhdCBwZW9wbGUgZnJvbSBlYWNoIGxhbmd1YWdlIGFuZCBj dWx0dXJlIHdpbGwgaGF2ZSBpbiBsZWFybmluZyBMb2piYW4uIFRodXMsIHRoZSBMb2piYW4gY29t bXVuaXR5IGlzIGFjdGl2ZWx5IHJlYWNoaW5nIG91dCB0byBzcGVha2VycyBvZiBsYW5ndWFnZXMg b3RoZXIgdGhhbiBFbmdsaXNoLgoKCgpMb2piYW4gZG9lcyBub3QgbmVlZCB0byBwcm92ZSBvciBk aXNwcm92ZSB0aGUgU2FwaXItV2hvcmYgaHlwb3RoZXNpcyBpbiBvcmRlciB0byBiZSBzdWNjZXNz ZnVsLiBIb3dldmVyLCBpZiBldmlkZW5jZSBpcyBwcm9kdWNlZCBzdXBwb3J0aW5nIHRoZSBTYXBp ci1XaG9yZiBlZmZlY3QsIExvamJhbiB3aWxsIGxpa2VseSBiZSBwZXJjZWl2ZWQgYXMgYW4gb3V0 c3RhbmRpbmcgdG9vbCBvZiBhbmFseXRpY2FsIGFuZCBjcmVhdGl2ZSB0aG91Z2h0LiAoKFNhcGly LVdob3JmIEh5cG90aGVzaXN8TW9yZS4uLikpCgoKCiEhT3RoZXIgbGluZ3Vpc3RpYyBhcHBsaWNh dGlvbnN7QU5BTUUoKX1vdGhlcmxpbmd7QU5BTUV9CgoKCkFuIGFydGlmaWNpYWwgbGFuZ3VhZ2Ug KEFMKSBpcyBhIHNpbXBsZSBtb2RlbCBvZiBhIG5hdHVyYWwgbGFuZ3VhZ2UuIEl0IGlzIHVzZWQg Zm9yIGNvbW11bmljYXRpb24gbGlrZSBuYXR1cmFsIGxhbmd1YWdlcywgc2ltcGxlciwgbW9yZSBy ZWd1bGFyLCBhbmQgcmVsYXRpdmVseSB1bmNvbnRhbWluYXRlZCBieSBjdWx0dXJlIGVmZmVjdHMu IFVubGlrZSBtb3N0IG5hdHVyYWwgbGFuZ3VhZ2VzLCBhbiBBTCBoYXMgbm90IGV2b2x2ZWQgdGhy b3VnaCBuYXR1cmFsIHByb2Nlc3NlcyBvZiBpbnRlcm5hbCBjaGFuZ2Ugb3IgY29udGFjdCB3aXRo IG90aGVyIGxhbmd1YWdlcy4gSW4gYWRkaXRpb24sIHRvIHRoZSBleHRlbnQgdG8gd2hpY2ggZGV0 YWlscyBvZiBhbiBBTCBpcyBwcmUtZGVmaW5lZCwgdGhlIGludGVybmFsIHN0cnVjdHVyZSBvZiB0 aGUgbGFuZ3VhZ2UgaXMgZmFyIGJldHRlciBrbm93biB0aGFuIHRoYXQgb2YgYW55IG5hdHVyYWwg bGFuZ3VhZ2UuCgoKClN1Y2ggYSBwcmUtZGVmaW5pdGlvbiwgYSBsYW5ndWFnZSAncHJlc2NyaXB0 aW9uJywgbWFrZXMgYW4gQUwgYSB1bmlxdWUgdG9vbCBmb3Igc3R1ZHlpbmcgdGhlIG5hdHVyZSBv ZiBsYW5ndWFnZS4gQXMgcGVvcGxlIGxlYXJuIHRoZSBsYW5ndWFnZSwgdGhlIHdheSB0aGV5ICdh Y3F1aXJlJyB1bmRlcnN0YW5kaW5nIG9mIHRoYXQgcHJlc2NyaXB0aW9uIGNhbiB0ZWxsIHNjaWVu dGlzdHMgaG93ICduYXR1cmFsJyB0aGUgcHJlc2NyaWJlZCBmb3JtcyBhcmUuIEFjdHVhbCB1c2Fn ZSBvZiB0aGUgbGFuZ3VhZ2UgY2FuIGJlIGNvbXBhcmVkIHRvIHRoZSBwcmVzY3JpcHRpb24gcHJv dmlkaW5nIHF1YW50aXRhdGl2ZSBkYXRhIG9uIHNwZWNpZmljIHBhdHRlcm5zIG9mIHVzYWdlLiBB cyB0aGUgbGFuZ3VhZ2UgZXZvbHZlcyBmcm9tIGl0cyByZWxhdGl2ZWx5IHByaXN0aW5lIGluaXRp YWwgc3RhdGUsIGl0IG1heSBkZXZpYXRlIGZyb20gaXRzIHByZXNjcmlwdGlvbi4gU3VjaCBkZXZp YXRpb25zIHdpbGwgYmV0dGVyIGluZm9ybSByZXNlYXJjaGVycyBhcyB0byB0aGUgcHJvcGVydGll cyBvZiBhICduYXR1cmFsJyBsYW5ndWFnZS4gVGhlIHByb2Nlc3Mgb2YgbGFuZ3VhZ2UgY2hhbmdl IGl0c2VsZiB3aWxsIGJlIG9wZW4gdG8gaW52ZXN0aWdhdGlvbiBpbiBhIHdheSBuZXZlciBiZWZv cmUgcG9zc2libGUuIEZpbmFsbHksIHRoZSBleGlzdGVuY2Ugb2YgYSByZWxhdGl2ZWx5IGNvbXBs ZXRlIGxhbmd1YWdlIHByZXNjcmlwdGlvbiBhdCB0aGUgYmlydGggb2YgdGhlIGxhbmd1YWdlIG1l YW5zIHRoYXQgYSAnZGVzY3JpcHRpb24nIG9mIGFjdHVhbCB1c2FnZSBhZnRlciB0aGF0IGluaXRp YWwgc3RhdGUgY2FuIGJlIG1vcmUgc2ltcGx5IGNyZWF0ZWQsIG1haW50YWluZWQsIGFuZCBzdHVk aWVkLgoKCgpMb2piYW4gaXMgdW5kb3VidGVkbHkgdGhlIG1vc3QgY2FyZWZ1bGx5IGRlc2lnbmVk IGFuZCBkZWZpbmVkIEFMIGV2ZXIgY3JlYXRlZC4gQWxsIGFzcGVjdHMgb2YgaXRzIGRlc2lnbiBo YXZlIGJlZW4gY2FyZWZ1bGx5IGVuZ2luZWVyZWQgYnkgc2V2ZXJhbCBwZW9wbGUgZW5jb21wYXNz aW5nIGV4cGVydGlzZSBpbiBhIHZhcmlldHkgb2YgZGlzY2lwbGluZXMsIGluY2x1ZGluZyBsaW5n dWlzdGljcy4gVGhlIGxhbmd1YWdlIHByZXNjcmlwdGlvbiBpcyBzaW1pbGFybHkgdGhlIG1vc3Qg Y29tcGxldGUgb2YgYW55IGxhbmd1YWdlLiBBcyBzdWNoLCBpdCBzZXJ2ZXMgYXMgYSB1bmlxdWUg YmFzaXMgZm9yIHRoZSBzdHVkeSBvZiBsYW5ndWFnZSB1c2FnZSBhbmQgbGFuZ3VhZ2UgY2hhbmdl LgoKCgpBIG5ldyBsYW5ndWFnZSBsaWtlIExvamJhbiwgd2l0aCBubyBuYXRpdmUgc3BlYWtlcnMs IGlzIGEgJ3BpZGdpbicuIEFzIHRoZSBsYW5ndWFnZSBldm9sdmVzLCBuYXRpdmUgc3BlYWtlcnMg b2Ygb3RoZXIgbGFuZ3VhZ2VzIHdpbGwgbGVhcm4gaXQsIGFuZCB3aWxsIGJyaW5nIGludG8gdGhl aXIgTG9qYmFuIHVzYWdlIHRoZSBwZXJzcGVjdGl2ZSBhbmQgcGF0dGVybnMgb2YgdGhlaXIgbmF0 aXZlIGxhbmd1YWdlLiBUaGlzIGludGVyYWN0aW9uIHByb2Nlc3MsIGNhbGxlZCAnY3Jlb2xpemF0 aW9uJywgYWZmZWN0cyBhbGwgbGFuZ3VhZ2VzLCBhbmQgbWF5IGJlIHRoZSBwcmluY2lwbGUgY2F1 c2Ugb2YgbGFuZ3VhZ2UgY2hhbmdlLiBBcyBMb2piYW4gaXMgbGVhcm5lZCBieSBzcGVha2VycyBv ZiBhIHZhcmlldHkgb2YgbmF0dXJhbCBsYW5ndWFnZXMsIHRoaXMgcHJvY2VzcyBjYW4gYmUgc3R1 ZGllZCBkaXJlY3RseSBpbiBhIHdheSBuZXZlciBiZWZvcmUgcG9zc2libGUsIHdpdGggdGhlIGxh bmd1YWdlIHByZXNjcmlwdGlvbiBzZXJ2aW5nIGFzIGEgc3RhbmRhcmQgYnkgd2hpY2ggZGV2aWF0 aW9ucyBhc3NvY2lhdGVkIHdpdGggc3BlYWtlciBvcmlnaW4sIGFuZCBldm9sdXRpb24gb2YgdXNh Z2UsIGNhbiBiZSBtZWFzdXJlZCBhbmQgZGVzY3JpYmVkIGluIGRldGFpbC4KCgoKQW4gQUwgbGlr ZSBMb2piYW4gaGFzIG5laXRoZXIgYW4gYXNzb2NpYXRlZCAnbmF0aXZlIGFjY2VudCcgbm9yIGEg Y3VsdHVyZSBiYXNlLiBCZWluZyBtdWNoIHNpbXBsZXIgYW5kIG1vcmUgcmVndWxhciB0aGFuIGEg bmF0dXJhbCBsYW5ndWFnZSwgYW4gYWR1bHQgc3BlYWtlciBzaG91bGQgYWNxdWlyZSBhIGZsdWVu Y3kgc2VsZG9tIGFjaGlldmVkIHdoZW4gc3R1ZHlpbmcgYSBuYXR1cmFsIGxhbmd1YWdlLCBhbmQg aW4gYSByZWxhdGl2ZWx5IHNob3J0IHRpbWUuIExvamJhbiB0aHVzIG1ha2VzIHBvc3NpYmxlIHJl bGF0aXZlbHkgc2hvcnQtdGVybSBzdHVkaWVzIG9mIGxhbmd1YWdlIGxlYXJuaW5nIGFuZCBsYW5n dWFnZSBjaGFuZ2UuIFByb2Nlc3NlcyB0aGF0IHRha2UgZ2VuZXJhdGlvbnMgaW4gbmF0dXJhbCBs YW5ndWFnZXMgbWF5IGJlIG9ic2VydmVkIGluIGEgZmV3IHllYXJzIGluIExvamJhbiBzcGVha2Vy cy4KCgoKV2l0aCB0aGUgbGVhcm5pbmcgb2Ygb3RoZXIgbGFuZ3VhZ2VzIGFjcXVpcmluZyBjcml0 aWNhbCBpbXBvcnRhbmNlIGluIHRvZGF5J3MgaW50ZXJuYXRpb25hbCBlY29ub215LCBMb2piYW4g cHJvdmlkZXMgYSB0b29sIGZvciByZXNlYXJjaCBpbiBsYW5ndWFnZSBhY3F1aXNpdGlvbi4gQWdh aW4sIExvamJhbidzIHNpbXBsaWNpdHkgYWxsb3dzIHRoZSByZXN1bHRzIG9mIHN1Y2ggcmVzZWFy Y2ggdG8gYmUgb2J0YWluZWQgbW9yZSBxdWlja2x5IHRoYW4gaW4gc2ltaWxhciBzdHVkaWVzIG9m IG5hdHVyYWwgbGFuZ3VhZ2UgYWNxdWlzaXRpb24uCgoKCk5vIGNsYWltIGlzIG1hZGUgdGhhdCBz dHVkeWluZyBMb2piYW4gd2lsbCB0ZWxsICdhbGwnIGFib3V0IGxhbmd1YWdlLiBMb2piYW4sIGF0 IGxlYXN0IGZvciBzZXZlcmFsIGRlY2FkZXMsIHdpbGwgb25seSBiZSBhICdtb2RlbCcgb2YgYSBs YW5ndWFnZSwgd2hvc2UgJ25hdHVyYWxuZXNzJyB3aWxsIGJlIHN1c3BlY3QuIEhvd2V2ZXIsIHRv IHRoZSBleHRlbnQgdGhhdCBMb2piYW4gc2VydmVzIHRoZSBjb21tdW5pY2F0aXZlIGFuZCBleHBy ZXNzaXZlIGZ1bmN0aW9ucyBvZiBodW1hbiBsYW5ndWFnZSwgYW55IHRoZW9yeSBhYm91dCB0aGUg bmF0dXJlIG9mIGh1bWFuIGxhbmd1YWdlIG11c3QgYXBwbHkgdG8gTG9qYmFuLiBMYW5ndWFnZSBm ZWF0dXJlcyBhbmQgcHJvY2Vzc2VzIG1vcmUgZWFzaWx5IGlkZW50aWZpZWQgaW4gc3R1ZHlpbmcg TG9qYmFuIGNhbiB0aGVuIGJlIGNvbmZpcm1lZCBpbiBuYXR1cmFsIGxhbmd1YWdlcy4gU2ltaWxh cmx5LCB0aGVvcmllcyBvZiB0aGUgbmF0dXJlIG9mIGxhbmd1YWdlIGNhbiBiZSB0ZXN0ZWQgYW5k IHJlZmluZWQgYWdhaW5zdCB0aGlzIHNpbXBsZXIgbW9kZWwgb2YgYSBsYW5ndWFnZSBiZWZvcmUg ZmFjaW5nIHRoZSBtb3JlIGRpZmZpY3VsdCBhbmQgdGltZS1jb25zdW1pbmcgdGVzdGluZyBhbmQg YW5hbHlzaXMgaW52b2x2ZWQgaW4gbmF0dXJhbCBsYW5ndWFnZSByZXNlYXJjaC4KCgoKQmVjYXVz ZSBMb2piYW4gaXMgcmVsYXRpdmVseSBjdWx0dXJlLWZyZWUsIGFuZCBiZWNhdXNlIG9mIGl0cyBw cmVzY3JpYmVkIHN0cnVjdHVyZSB0aGF0IGlzIGNvbnNpc3RlbnQgd2l0aCBwcmVkaWNhdGUgbG9n aWMsIExvamJhbiBpcyBhbiBpZGVhbCBtZWRpdW0gZm9yIHRoZSBhbmFseXNpcyBhbmQgZGVzY3Jp cHRpb24gb2Ygb3RoZXIgbGFuZ3VhZ2VzLiBDdXJyZW50bHksIGZlYXR1cmVzIGluIGxhbmd1YWdl IG11c3QgYmUgY29tcGFyZWQgYWdhaW5zdCBvdGhlciBuYXR1cmFsIGxhbmd1YWdlcywgYW5kIGFy ZSB1c3VhbGx5IGRlc2NyaWJlZCBpbiBzY2llbnRpZmljIGxpdGVyYXR1cmUgYnkgZ2xvc3NlZCB0 cmFuc2xhdGlvbiBpbnRvIEVuZ2xpc2guIExvamJhbiBpcyBzaW1wbGUgYW5kIHJlZ3VsYXIgZW5v dWdoIHRvIGJlIGFjcXVpcmVkIGFzIGEgbWV0YWxhbmd1YWdlIGZvciBkZXNjcmliaW5nIG90aGVy IGxhbmd1YWdlczsgaXRzIHN0cnVjdHVyZXMgYWxsb3cgY2xlYXJlciByZWZsZWN0aW9uIG9mIHRo ZSBwYXR0ZXJucyBvZiB0aGUgbGFuZ3VhZ2UgYmVpbmcgZGVzY3JpYmVkLCB3aXRob3V0IGludGVy ZmVyZW5jZSBmcm9tIHRoZSBjb21wZXRpbmcgcGF0dGVybnMgb2YgRW5nbGlzaC4KCgoKRmluYWxs eSwgTG9qYmFuJ3MgcHJlZGljYXRlIGdyYW1tYXIsIG1ha2VzIGl0IGVtaW5lbnRseSBzdWl0ZWQg Zm9yIG9uZ29pbmcgY29tcHV0ZXIgcmVzZWFyY2ggaW50byBuYXR1cmFsIGxhbmd1YWdlcy4gTG9q YmFuIGNhbiBiZSB1c2VkIGZvciBwYXJzaW5nIGFuZCBhbmFseXNpcywgYXMgYW4gaW50ZXJuYWwg bWVkaXVtIG9mIGRhdGEgc3RvcmFnZSwgb3IgYXMgYW4gaW50ZXJtZWRpYXRlIGxhbmd1YWdlIGZv ciBtYWNoaW5lIHRyYW5zbGF0aW9uLiBIYXZpbmcgYSBjb21iaW5hdGlvbiBvZiBsb2dpY2FsIGFu ZCBuYXR1cmFsIGxhbmd1YWdlIHN0cnVjdHVyZXMsIExvamJhbiBjb21iaW5lcyB0aGUgYmVzdCBv ZiBib3RoIG1ham9yIHN0cnVjdHVyYWwgYXBwcm9hY2hlcyB0byBsYW5ndWFnZSBwcm9jZXNzaW5n IGluIGNvbXB1dGVycy4KCgoKVGhlIGV4ZXJjaXNlIG9mIHRyeWluZyB0byBpbnZlbnQgYSBsYW5n dWFnZSBjYW4gdGVhY2ggdXMgdGhpbmdzIGFib3V0IGxhbmd1YWdlIHRoYXQgcHJvYmFibHkgY2Fu J3QgYmUgbGVhcm5lZCBpbiBhbnkgb3RoZXIgd2F5LiBFdmVuIGlmIExvamJhbiBzaG91bGQgZmFp bCBhcyBhIGxhbmd1YWdlLCB3ZSB3aWxsIGxlYXJuLiBIb3dldmVyLCB0byB0aGUgZXh0ZW50IExv amJhbiBzdWNjZWVkcywgaXRzIHBvdGVudGlhbCBhcyBhIGJhc2lzIGZvciB0ZXN0aW5nIGlkZWFz IGFib3V0IGxhbmd1YWdlLCBpdHMgc3RydWN0dXJlLCBhbmQgdXNhZ2UsIGlzIHVubGltaXRlZC4g VGhlIGludmVudGlvbiBvZiBMb2piYW4gaXMgdGhlIGludmVudGlvbiBvZiB0aGUgc2NpZW5jZSBv ZiBleHBlcmltZW50YWwgbGluZ3Vpc3RpY3MuCgoKCiEhTG9qYmFuIGFzIGFuIGludGVybmF0aW9u YWwgbGFuZ3VhZ2V7QU5BTUUoKX1pbnRlcm5hdGlvbmFse0FOQU1FfQoKCgpMb2piYW4gbWF5IGJl IHRoZSBmaXJzdCBhcnRpZmljaWFsIGxhbmd1YWdlIE5PVCBpbiBkaXJlY3QgY29tcGV0aXRpb24g d2l0aCBFc3BlcmFudG8sIGluIHRoYXQgTG9qYmFuJ3MgcG90ZW50aWFsIHN1Y2Nlc3MgaXMgbm90 IGRlcGVuZGVudCBvbiBpdHMgaW1tZWRpYXRlIHByYWN0aWNhbCB1c2UgYXMgYW4gaW50ZXJuYXRp b25hbCBsYW5ndWFnZS4gSW5kZWVkLCB3ZSB1c2UgRXNwZXJhbnRvIGFzIG9uZSBtZWFucyBvZiBy YXBpZGx5IHNwcmVhZGluZyBpbmZvcm1hdGlvbiBhYm91dCBMb2piYW4gdG8gbm9uLUVuZ2xpc2gg c3BlYWtlcnMsIHNwZWVkaW5nIGEgcHJvY2VzcyB0aGF0IHdvdWxkIHRha2UgZGVjYWRlcyB1c2lu ZyBkaXJlY3QgdHJhbnNsYXRpb24gdG8gYWxsIHRhcmdldCBsYW5ndWFnZXMuIExvamJhbiBoYXMg cHJvdmVuIGF0dHJhY3RpdmUgdG8gRXNwZXJhbnRpc3RzIGludGVyZXN0ZWQgaW4gYWNxdWlyaW5n IGEgbmV3IHBlcnNwZWN0aXZlIG9uIHRoZWlyIG93biBpbnRlcm5hdGlvbmFsIGxhbmd1YWdlOyB0 aGVzZSBmZWVsIGxlc3MgdGhyZWF0ZW5lZCBiZWNhdXNlIExvamJhbiBoYXMgZGlmZmVyZW50IGdv YWxzLiBMb2piYW4ncyBzdXBwb3J0ZXJzIHJlY29nbml6ZSB0aGF0IGl0IHdpbGwgdGFrZSBkZWNh ZGVzIGZvciBMb2piYW4gdG8gYWNxdWlyZSBib3RoIHRoZSBudW1iZXIgYW5kIHZhcmlldHkgb2Yg c3BlYWtlcnMgYW5kIHRoZSBleHRlbnNpdmUgaGlzdG9yeSBvZiB1c2FnZSB0aGF0IG1hcmtzIEVz cGVyYW50byBjdWx0dXJlLiBNZWFud2hpbGUsIGVhY2ggbGFuZ3VhZ2UgY29tbXVuaXR5IGhhcyBt dWNoIHRvIGxlYXJuIGZyb20gZWFjaCBvdGhlcjsgdGhpcyBwcm9jZXNzIGhhcyBzdGFydGVkIGFu ZCBpcyBtb3N0IGFjdGl2ZS4KCgoKISFTZXZlcmFsIHJlYXNvbnMgZm9yIGxlYXJuaW5nIExvamJh biBOT1d7QU5BTUUoKX1yZWFzb25ze0FOQU1FfQoKCgpUaG9zZSB3b3JraW5nIHdpdGggdGhlIGxh bmd1YWdlIG5vdyBhcmUgYWN0aXZlbHkgY29uc3VsdGVkIGZvciB0aGVpciBvcGluaW9ucyBvbiBo b3cgdG8gdGVhY2ggYW5kIHNwcmVhZCB0aGUgbGFuZ3VhZ2UuIFBlb3BsZSB3aG8gd3JpdGUgaW4g dGhlIGxhbmd1YWdlIGFyZSBjb250cmlidXRpbmcgdG8gdGhlIGdyb3d0aCBvZiB0aGUgbGV4aWNv biwgYW5kIGVzdGFibGlzaGluZyB0aGUgY29udmVudGlvbnMgYW5kIGlkaW9tcyB0aGF0IHdpbGwg Z3VpZGUgbGFuZ3VhZ2UgdXNlIGluIGZ1dHVyZSB5ZWFycy4gUGVvcGxlIHdobyBhcmUgZXNwZWNp YWxseSBhY3RpdmUgaGF2ZSBqb2luZWQgdGhlIHByb2plY3QgbGVhZGVyc2hpcCB3aXRoaW4gYSBm ZXcgbW9udGhzIG9mIGJlY29taW5nIGludm9sdmVkLgoKCgpUaG9zZSB3aXRoIGEgY29tcHV0ZXIg YmFja2dyb3VuZCBjYW4gbGVhZCBkZXZlbG9wbWVudCBvZiB0aGUgZmlyc3QgY29tcHV0ZXIgYXBw bGljYXRpb25zIGZvciB0aGUgbGFuZ3VhZ2UuIEV4cGVydGlzZSBpbiB0aGUgbGFuZ3VhZ2Ugd2ls bCBubyBkb3VidCBiZSB2YWx1YWJsZSBhcyBMb2piYW4gYmVjb21lcyByZWNvZ25pemVkIGFzIGEg dXNlZnVsIHRvb2wgZm9yIGNvbXB1dGVyIGFwcGxpY2F0aW9ucyBieSB0aGUgY29tcHV0ZXIgaW5k dXN0cnkuIENvbXB1dGVyLW9yaWVudGVkIExvamJhbmlzdHMgY2FuIGFsc28gYWlkIGluIGRldmVs b3BpbmcgY29tcHV0ZXItYWlkZWQgaW5zdHJ1Y3Rpb24gdG9vbHMgb3IgY29udmVydGluZyBleGlz dGluZyBzb2Z0d2FyZSB0byBydW4gb24gbmV3IGNvbXB1dGVycy4KCgoKUmVnYXJkbGVzcyBvZiBi YWNrZ3JvdW5kLCBsZWFybmluZyBMb2piYW4gaXMgYSBtaW5kLWV4cGFuZGluZyBleHBlcmllbmNl LiBMZWFybmluZyBhbnkgbGFuZ3VhZ2Ugb3RoZXIgdGhhbiB5b3VyIG5hdGl2ZSB0b25ndWUgYnJv YWRlbnMgeW91ciBwZXJzcGVjdGl2ZXMgYW5kIGFsbG93cyB5b3UgdG8gdHJhbnNjZW5kIHRoZSBs aW1pdGVkIHZpZXdwb2ludHMgb2YgeW91ciBuYXRpdmUgbGFuZ3VhZ2UgY3VsdHVyZS4gTG9qYmFu LCBiZWluZyBtdWNoIHNpbXBsZXIgdG8gbGVhcm4gdGhhbiBuYXR1cmFsIGxhbmd1YWdlcywgcHJv dmlkZXMgdGhpcyBiZW5lZml0IG11Y2ggbW9yZSBxdWlja2x5IHRoYW4gZG9lcyB0aGUgc3R1ZHkg b2Ygb3RoZXIgbGFuZ3VhZ2VzLiBCZWluZyBzbyBzdHJvbmdseSBkaWZmZXJlbnQsIHRoZSBpbnRl bnNpdHkgb2YgdGhlIGVmZmVjdCBzZWVtcyB0byBiZSBoZWlnaHRlbmVkLiBXaGVuIExvamJhbmlz dHMgdGFsayBhYm91dCBsYW5ndWFnZSwgdGhlIGRpc2N1c3Npb24gaGFzIGJlZW4gb2JzZXJ2ZWQg dG8gYmUgbW9yZSBzb3BoaXN0aWNhdGVkIGFzIHdlbGwgYXMgcXVhbGl0YXRpdmVseSBkaWZmZXJl bnQgZnJvbSB0aGUgdGFsayBvZiBzdHVkZW50cyBvZiBzZWNvbmQgbmF0dXJhbCBsYW5ndWFnZXMu CgoKClRoZSBsb2dpY2FsIG9yZ2FuaXphdGlvbiBlbWJlZGRlZCBpbiBMb2piYW4gYWlkcyBpbiBv cmdhbml6aW5nIGFuZCBjbGFyaWZ5aW5nIHRob3VnaHRzLiBIYXZpbmcgZG9uZSBzbywgeW91ciBu ZXcgcGVyc3BlY3RpdmUgb24gbGFuZ3VhZ2UsIGFtYmlndWl0eSwgYW5kIGNvbW11bmljYXRpb24g d2lsbCBhbGxvdyB5b3UgdG8gZXhwcmVzcyB0aG9zZSB0aG91Z2h0cyBtb3JlIGNsZWFybHksIGV2 ZW4gd2hlbiB5b3UgdXNlIGFuIGFtYmlndW91cyBuYXR1cmFsIGxhbmd1YWdlLgoKCgpBIHJlbGF0 aXZlbHkgc2hvcnQgc3R1ZHkgb2YgTG9qYmFuIGJ5IGhpZ2ggc2Nob29sIChvciB5b3VuZ2VyKSBz dHVkZW50cyBoYXMgYmVlbiBwcm9wb3NlZCwgcHJvdmlkaW5nIHRoZSBsaW5ndWlzdGljIHVuZGVy c3RhbmRpbmcgdGhhdCB3YXMgb25jZSBhc3NvY2lhdGVkIHdpdGggc3R1ZHlpbmcgTGF0aW4gYW5k IG90aGVyIGxhbmd1YWdlcyBmb3IgbXVjaCBsb25nZXIgcGVyaW9kcyBvZiB0aW1lLiBTdWNoIHN0 dWR5IGNhbiBiZSB0aWVkIGluIHdpdGggY29uY2VwdHMgb2YgbG9naWMsIGFuZCBwb3NzaWJseSB3 aXRoIGNvbXB1dGVyLXJlbGF0ZWQgYWN0aXZpdGllcywgaGVscGluZyB0byBzaG93IHRoZSBlc3Nl bnRpYWwgaW50ZXJyZWxhdGVkIG5hdHVyZSBvZiBsYW5ndWFnZSBhbmQgb3RoZXIgaHVtYW4gZW5k ZWF2b3IuCgoKCllvdSBuZWVkbid0IGxlYXJuIExvamJhbiBmb3IgYW55IHByYWN0aWNhbCBwdXJw b3NlLCBob3dldmVyLiBNYW55IG9mIHRob3NlIGxlYXJuaW5nIExvamJhbiBhcmUgZG9pbmcgc28g YmVjYXVzZSBpdCBpcyBmdW4uIExlYXJuaW5nIExvamJhbiBpcyBpbnRlbGxlY3R1YWxseSBzdGlt dWxhdGluZywgYW5kIHByb3ZpZGVzIGh1bWFuIGludGVyYWN0aW9uIGFuZCBtZW50YWwgY2hhbGxl bmdlLiBMb2piYW4gaGFzIGFsbCB0aGUgYmVuZWZpdHMgb2YgZ2FtZXMgZGVzaWduZWQgZm9yIGVu dGVydGFpbm1lbnQsIHdpdGggdGhlIGFkZGVkIHByb3NwZWN0IG9mIGRldmVsb3BpbmcgdXNlZnVs IHNraWxscyBhcyBhIHNpZGUgYmVuZWZpdC4gTGVhcm5pbmcgTG9qYmFuIGFzIGFuICdpbnRlbGxl Y3R1YWwgdG95JyBtZWFucyB0aGF0IHlvdSBjYW4gZ2V0IGVuam95bWVudCBmcm9tIGxlYXJuaW5n IExvamJhbiB3aXRob3V0IG5lYXJseSB0aGUgZWZmb3J0IG5lZWRlZCB0byBiZW5lZml0IGZyb20g c3R1ZHlpbmcgb3RoZXIgbGFuZ3VhZ2VzLiBXaGlsZSBiZWNvbWluZyBmbHVlbnQgaW4gTG9qYmFu IHdpbGwgcHJvYmFibHkgdGFrZSBodW5kcmVkcyBvZiBob3VycyBvdmVyIHNldmVyYWwgbW9udGhz LCB5b3UgY2FuIGZlZWwgc29tZSBzZW5zZSBvZiBhY2NvbXBsaXNobWVudCBpbiB0aGUgbGFuZ3Vh Z2UgYWZ0ZXIganVzdCBhIGZldyBob3VycyBvZiBzdHVkeS4gWW91IGNhbiB1c2UgTG9qYmFuIGlt bWVkaWF0ZWx5IGZvciBmdW4sIHdoaWxlIGdhaW5pbmcgc2tpbGwgd2l0aCBncmVhdGVyIGV4cGVy aWVuY2UuCgoKCiEhSG93IHRvIGxlYXJuIExvamJhbntBTkFNRSgpfWhvd3tBTkFNRX0KCgoKV3Jp dGUgdG8gW2h0dHA6Ly93d3cubG9qYmFuLm9yZy9sbGcvY29udGFjdC5odG1sfFRoZSBMb2dpY2Fs IExhbmd1YWdlIEdyb3VwLCBJbmMuXSwgYW5kIHdlIHdpbGwgYmUgaGFwcHkgdG8gcHJvdmlkZSBp bmZvcm1hdGlvbiwgdGhvdWdoIG91ciBjb2xsZWN0ZWQgV2ViIGFuZCBmaWxlIGFyY2hpdmVzIGNv bnRhaW4gYWxsIGluZm9ybWF0aW9uIHRoYXQgd2UgaGF2ZSBpbiBkaXN0cmlidXRhYmxlIGZvcm0u IEZvciBwcmludGVkIG1hdHRlciwgd2UgcmVxdWVzdCBhIGNvbnRyaWJ1dGlvbiBvZiAkNSB0byBj b3ZlciB0aGUgY29zdHMgb2YgaW50cm9kdWN0b3J5IG1hdGVyaWFscyAoaW5jbHVkaW5nIGEgY29w eSBvZiB0aGlzIGVzc2F5KSwgYnV0IHdpbGwgc2VuZCB0aGlzIHBhY2thZ2Ugb24gc3BlY3VsYXRp b24uIEFkZGl0aW9uYWwgbWF0ZXJpYWxzIGF2YWlsYWJsZSB0b3RhbCBodW5kcmVkcyBvZiBwYWdl cywgd2hpY2ggYXJlIHByaWNlZCBhcHByb3hpbWF0ZWx5IGF0IG91ciBjb3N0czsgd2UgYXJlIGEg bm9uLXByb2ZpdCBlZHVjYXRpb25hbC9zY2llbnRpZmljIG9yZ2FuaXphdGlvbi4gKChDb250YWN0 IFVzKSkgdXMgcmVnYXJkaW5nIGludGVybmF0aW9uYWwgcGF5bWVudDsgd2Ugb2ZmZXIgc2V2ZXJh bCBvcHRpb25zLiBBIGxpbWl0ZWQgcG9saWN5IGV4aXN0cyBmb3IgcHJvdmlkaW5nIG1hdGVyaWFs cyB0byBwZW9wbGUgd2hvIGNhbm5vdCBhZmZvcmQgcGF5bWVudC4KCgoKV2UgZW5jb3VyYWdlIG5l dyBwZW9wbGUgdG8gY29uY2VudHJhdGUgb24gdm9jYWJ1bGFyeS4gQWxtb3N0IGFueSB1c2Ugb2Yg TG9qYmFuIHJlcXVpcmVzIHNvbWUgbWFzdGVyeSBvZiB0aGUgYmFzaWMgdm9jYWJ1bGFyeSAoMTAw MC0yMDAwIHdvcmRzKS4gWW91IGNhbiBsZWFybiBlbm91Z2ggTG9qYmFuIGdyYW1tYXIgdG8gc3Vw cG9ydCBjb252ZXJzYXRpb24gaW4ganVzdCBhIGNvdXBsZSBvZiBob3VycywgYnV0IGZhY2UgbWFu eSBob3VycyBvZiB2b2NhYnVsYXJ5IHdvcmsgaW4gb3JkZXIgdG8gZWZmZWN0aXZlbHkgdXNlIHRo YXQgZ3JhbW1hci4gV2UgZGlzdHJpYnV0ZSBmbGFzaCBjYXJkcyBhbmQgaGF2ZSBkZXZlbG9wZWQg Zmxhc2ggY2FyZCB0ZWNobmlxdWVzIHRoYXQgYXJlIGV4dHJlbWVseSBlZmZpY2llbnQgaW4gbGVh cm5pbmcgdm9jYWJ1bGFyeS4gVGhlc2UgdGVjaG5pcXVlcyBoYXZlIGJlZW4gYXV0b21hdGVkIGlu dG8gY29tcHV0ZXItYWlkZWQtdGVhY2hpbmcgcHJvZ3JhbXMgc29sZCBhbmQgZGlzdHJpYnV0ZWQg YXMgU2hhcmV3YXJlIHVuZGVyIHRoZSBuYW1lICJMb2dGbGFzaCIsIHdpdGggTVMtRE9TIGFuZCBN YWNJbnRvc2ggdmVyc2lvbnMKCmN1cnJlbnRseSBhdmFpbGFibGUuCgoKCllvdSBjYW4gbGVhcm4g dGhlIExvamJhbiBncmFtbWFyIGluIHNldmVyYWwgd2F5cywgaW5jbHVkaW5nIHN0dWR5IG9mIGV4 YW1wbGVzIGluIHRoZSBxdWFydGVybHkgam91cm5hbCAoKGp1J2kgbG9ieXBsaXxfXycnanUnaSBs b2J5cGxpJydfXykpIG9yIGJ5IGluc3BlY3Rpb24gYW5kIGFuYWx5c2lzIG9mIFlBQ0MgYW5kIEUt Qk5GIGZvcm1hbCBncmFtbWFyIGRlc2NyaXB0aW9ucy4gVGhlcmUgaXMgbm93IGEgcHVibGlzaGVk IGxhbmd1YWdlIHJlZmVyZW5jZSBbaHR0cDovL3d3dy5sb2piYW4ub3JnL3B1YmxpY2F0aW9ucy9j bGwuaHRtbHwgVGhlIENvbXBsZXRlIExvamJhbiBMYW5ndWFnZV0sIGJ5IEpvaG4gQ293YW4uIERy YWZ0IGxlc3NvbiBtYXRlcmlhbHMgKGFib3V0IDE4MCBwYWdlcykgYXJlIHRoZSBiZXN0IG1hdGVy aWFscyBhdmFpbGFibGUgZm9yIHNlbGYtc3R1ZHkuIEEgTG9qYmFuIHRleHQtYm9vayBpcyBiZWlu ZyB3cml0dGVuIHRvIHJlZmxlY3Qgd2hhdCBpcyBsZWFybmVkIGZyb20gdGhlIGZpcnN0IGxlYXJu aW5nIGVmZm9ydHMsIGFuZCBpcyBiZWluZyBkZXNpZ25lZCBzbyB0aGF0IGl0IGNhbiBiZSB1c2Vk IGZvciBzZWxmLWluc3RydWN0aW9uLCBjbGFzc3Jvb20gdGVhY2hpbmcsIG9yIGdyb3VwIHN0dWR5 LiBBIGZvcm1hbCAnTG9qYmFuIGRpY3Rpb25hcnknIHdpbGwgcmVwbGFjZSBtb3N0IG9mIHRoZSBl eGlzdGluZyB3b3JkIGxpc3RzIGFuZCBsYW5ndWFnZSBkZXNjcmlwdGlvbiBtYXRlcmlhbHMsIGFu ZCBpcyBiZWluZyB3b3JrZWQgb24sIGJ1dCBwcmVzZW50IG1hdGVyaWFscyBjb250YWluIHRoZSBl cXVpdmFsZW50IG9mIGEgYmFzaWMgZGljdGlvbmFyeS4KCgoKQWZ0ZXIgdGhlIGRpY3Rpb25hcnkg YW5kIHRleHRib29rIGhhdmUgYmVlbiBwdWJsaXNoZWQgdGhlIExvamJhbiBsYW5ndWFnZSBkZWZp bml0aW9uIHdpbGwgYmUgYmFzZWxpbmVkIChmcm96ZW4pIGZvciBhIG1pbmltdW0gb2YgNSB5ZWFy cywgYW5kIExvamJhbiB3aWxsIHRoZXJlYWZ0ZXIgYmUgc29sZWx5IGNvbnRyb2xsZWQgYnkgc3Bl YWtlcnMgb2YgdGhlIGxhbmd1YWdlLgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCldpa2ljaGFuZ2VzIG1haWxpbmcgbGlzdApXaWtpY2hhbmdlc0Bsb2pi YW4ub3JnCmh0dHA6Ly9tYWlsLmxvamJhbi5vcmcvbWFpbG1hbi9saXN0aW5mby93aWtpY2hhbmdl cwo=