Received: from localhost ([::1]:53915 helo=stodi.digitalkingdom.org) by stodi.digitalkingdom.org with esmtp (Exim 4.80.1) (envelope-from ) id 1WmNBq-0005Mk-6i; Mon, 19 May 2014 06:01:14 -0700 Received: from 173-13-139-235-sfba.hfc.comcastbusiness.net ([173.13.139.235]:58651 helo=jukni.digitalkingdom.org) by stodi.digitalkingdom.org with smtp (Exim 4.80.1) (envelope-from ) id 1WmNBh-0005M7-Ap for wikichanges@lojban.org; Mon, 19 May 2014 06:01:12 -0700 Received: by jukni.digitalkingdom.org (sSMTP sendmail emulation); Mon, 19 May 2014 06:01:05 -0700 From: "Apache" Date: Mon, 19 May 2014 06:01:05 -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 gadri: an unofficial commentary from a logical point of view was changed by guskant at 13:00 UTC You can view the page by following this link: http://www.lojban.org/tiki/gadri%3A%20an%20unofficial%20commentary%20from%20a%20logical%20point%20of%20view [...] 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] Wiki page gadri: an unofficial commentary from a logical point of view changed by guskant X-BeenThere: wikichanges@lojban.org X-Mailman-Version: 2.1.15 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 VGhlIHBhZ2UgZ2Fkcmk6IGFuIHVub2ZmaWNpYWwgY29tbWVudGFyeSBmcm9tIGEgbG9naWNhbCBw b2ludCBvZiB2aWV3IHdhcyBjaGFuZ2VkIGJ5IGd1c2thbnQgYXQgMTM6MDAgVVRDCgpZb3UgY2Fu IHZpZXcgdGhlIHBhZ2UgYnkgZm9sbG93aW5nIHRoaXMgbGluazoKIApodHRwOi8vd3d3LmxvamJh bi5vcmcvdGlraS9nYWRyaSUzQSUyMGFuJTIwdW5vZmZpY2lhbCUyMGNvbW1lbnRhcnklMjBmcm9t JTIwYSUyMGxvZ2ljYWwlMjBwb2ludCUyMG9mJTIwdmlldwoKWW91IGNhbiB2aWV3IGEgZGlmZiBi YWNrIHRvIHRoZSBwcmV2aW91cyB2ZXJzaW9uIGJ5IGZvbGxvd2luZyB0aGlzIGxpbms6IApodHRw Oi8vd3d3LmxvamJhbi5vcmcvdGlraS90aWtpLXBhZ2VoaXN0b3J5LnBocD9wYWdlPWdhZHJpJTNB JTIwYW4lMjB1bm9mZmljaWFsJTIwY29tbWVudGFyeSUyMGZyb20lMjBhJTIwbG9naWNhbCUyMHBv aW50JTIwb2YlMjB2aWV3JmNvbXBhcmU9MSZvbGR2ZXI9MTImbmV3dmVyPTEzCgoKKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKVGhlIGNo YW5nZXMgaW4gdGhpcyB2ZXJzaW9uIGZvbGxvdyBiZWxvdywgZm9sbG93ZWQgYWZ0ZXIgYnkgdGhl IGN1cnJlbnQgZnVsbCBwYWdlIHRleHQuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCgoKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKQEAgLUxpbmVzOiA0My00NyBjaGFuZ2Vk IHRvICtMaW5lczogNDMtNDcgQEAKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSsKKEhvd2V2ZXIsIGl0IGlzIHBvc3NpYmxlIHRvIGludGVy cHJldCB0aGUgcHJlZGljYXRlICJlYXQiIGFzIGludm9sdmluZyBjb2xsZWN0aXZpdHkuIEZvciBl eGFtcGxlLCBpZiBpdCBpcyBpbnRlcnByZXRlZCBhcyAicHV0IGZvb2QgYXdheSBmcm9tIG91dHNp ZGUgdG8gaW5zaWRlIG9mIGJvZHkiLCB3ZSBtYXkgc2F5ICJjb2xsZWN0aXZlbHkgZWF0IiB0byBl eHByZXNzIGFuIGV2ZW50IHRoYXQgcGVvcGxlIGVhdCBhbmQgY29uc3VtZSBhIG1hc3Mgb2YgZm9v ZCB0b2dldGhlci4pCgotIFRoZXJlIGFyZSBhbHNvIHByZWRpY2F0ZXMgdGhhdCBhbGxvdyBib3Ro IHByb3BlcnRpZXMgJnF1b3Q7Y29sbGV2dGl2aXR5JnF1b3Q7IGFuZCAmcXVvdDtkaXN0cmlidXRp dml0eSZxdW90Oy4KKyBUaGVyZSBhcmUgYWxzbyBwcmVkaWNhdGVzIHRoYXQgYWxsb3cgYm90aCBw cm9wZXJ0aWVzICZxdW90O2NvbGxlY3Rpdml0eSZxdW90OyBhbmQgJnF1b3Q7ZGlzdHJpYnV0aXZp dHkmcXVvdDsuCiJQZW9wbGUgY29va2VkIiBtYXkgbWVhbiB0aGF0IHBsdXJhbCBwZW9wbGUga25l YWQgcGFzdGUgb2YgcGl6emEgdG9nZXRoZXIsIGFuZCB0aGF0IGVhY2ggb2YgdGhlbSBpcyBpbiBj aGFyZ2Ugb2YgY2FrZXMgb3IgcG90LWF1LWZldS4gSW4gdGhpcyBjYXNlLCB0aGUgY29uc3RhbnQg InBlb3BsZSIgcmVmZXJzIHRvIHBsdXJhbCBwZW9wbGUsIGFuZCB0aGV5IGNvb2tlZCBwaXp6YSBj b2xsZWN0aXZlbHksIGNha2VzIGFuZCBwb3QtYXUtZmV1IGRpc3RyaWJ1dGl2ZWx5LiBUaGUgY29u c3RhbnQgInBlb3BsZSIgdGh1cyBzYXRpc2ZpZXMgdGhlIHByZWRpY2F0ZSAiY29va2VkIiBjb2xs ZWN0aXZlbHkgYW5kIGRpc3RyaWJ1dGl2ZWx5LgoKCistKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCkBAIC1MaW5lczogMTU4LTE2MiBjaGFu Z2VkIHRvICtMaW5lczogMTU4LTE2MiBAQAorLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwoKV2hlbiB7a28nYX0gaXMgbmVpdGhlciBhbiBp bmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscywgd2hhdCBhY3R1YWxseSBkb2VzIGl0IHJlZmVyIHRv PwotIFdlIG1heSBpbnRlcnByZXQgdGhhdCBpdCByZWZlcnMgdG8gd2hhdCBpcyByZWZlcmVkIHRv IGJ5IGEgbWF0ZXJpYWwgbm91biwgZm9yIGV4YW1wbGUuCisgV2UgbWF5IGludGVycHJldCB0aGF0 IGl0IHJlZmVycyB0byB3aGF0IGlzIHJlZmVycmVkIHRvIGJ5IGEgbWF0ZXJpYWwgbm91biwgZm9y IGV4YW1wbGUuCkJ5IGEgc3BlYWtlciB3aG8gdGhpbmtzIHRoYXQgYSBjdXQtb2ZmIHBpZWNlIG9m IGJyZWFkIGlzIGFsc28gYnJlYWQsIGJyZWFkIGlzIHJlZ2FyZGVkIGFzIG5laXRoZXIgYW4gaW5k aXZpZHVhbCBub3IgaW5kaXZpZHVhbHMuCgoKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKQEAgLUxpbmVzOiAxODMtMTg3IGNoYW5nZWQg dG8gK0xpbmVzOiAxODMtMTg3IEBACistKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rCk9uIHRoZSBvdGhlciBoYW5kLCBwdXR0aW5nIGEgcXVh bnRpZmllciBiZWZvcmUgZ2FkcmksIG9yIGJlZm9yZSBhIHN1bXRpIG1vcmUgZ2VuZXJhbGx5LCBp cyBjYWxsZWQgX19vdXRlciBxdWFudGlmaWNhdGlvbl9fLCBhbmQgdGhlIHF1YW50aWZpZXIgaXMg Y2FsbGVkIF9fb3V0ZXIgcXVhbnRpZmllcl9fLiBPdXRlciBxdWFudGlmaWNhdGlvbiB3aWxsIGJl IGRpc2N1c3NlZCBtb3JlIHByZWNpc2VseSBpbiAoKHwjT3V0ZXJfcXVhbnRpZmljYXRpb258U2Vj dGlvbiAzLjIpKS4KCi0gQWxsIHN1bXRpIGZvcm1lZCB3aXRoIGdhZHJpIGFyZSBkZWZpbmVkIHNv IHRoYXQgdGhleSBhcmUgZXhwYW5kZWQgaW50byBleHByZXNzaW9ucyB3aXRoIHt6bydlfS4gVGhh dCBpcyB0byBzYXksIHRoZSBtb3N0IGdlbmVyYWwgcGx1cmFsIGNvbnN0YW50IGlzIHJlcHJlc2Vu dGVkIGJ5IGEgc2luZ2xlIHt6bydlfS4gQSBzdW10aSBmb3JtZWQgd2l0aCBnYWRyaSBpcyB7em8n ZX0gYWNjb25wYW5pZWQgYnkgYW4gZXhwbGFuYXRpb24uCisgQWxsIHN1bXRpIGZvcm1lZCB3aXRo IGdhZHJpIGFyZSBkZWZpbmVkIHNvIHRoYXQgdGhleSBhcmUgZXhwYW5kZWQgaW50byBleHByZXNz aW9ucyB3aXRoIHt6bydlfS4gVGhhdCBpcyB0byBzYXksIHRoZSBtb3N0IGdlbmVyYWwgcGx1cmFs IGNvbnN0YW50IGlzIHJlcHJlc2VudGVkIGJ5IGEgc2luZ2xlIHt6bydlfS4gQSBzdW10aSBmb3Jt ZWQgd2l0aCBnYWRyaSBpcyB7em8nZX0gYWNjb21wYW5pZWQgYnkgYW4gZXhwbGFuYXRpb24uCl4K O0V4YW1wbGU6IFBlb3BsZSBnYXRoZXJlZCwgY29va2VkIGFuZCBhdGUuCgorLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwpAQCAtTGluZXM6 IDIxMS0yMTUgY2hhbmdlZCB0byArTGluZXM6IDIxMS0yMTUgQEAKKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKbGFpIFBBICcnc3VtdGkn JyB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbGEgUEEgJydzdW10aScnCnx8Ci0gQmFjYXVzZSB7bG9p L2xlaS9sYWl9IGlzIHRodXMgZGVmaW5lZCBieSBhbm90aGVyIHBsdXJhbCBjb25zdGFudCB7bG8g Z3VubWEgYmUgbG8vbGUvbGF9LCBpdCBkb2VzIG5vdCByZWZlciBkaXJlY3RseSB0byByZWZlcmVu dCBvZiB7bG8gYnJvZGF9IG9yIHtsbyBQQSAnJ3N1bXRpJyd9LCBidXQgcmVmZXJlbnQgb2Yge2xv IGd1bm1hfS4gVGhlcmVmb3JlLCBldmVuIGlmIHtsbyBicm9kYX0gb3Ige2xvIFBBICcnc3VtdGkn J30gaXMgbm90IGFuIGluZGl2aWR1YWwsIHtsb2kgYnJvZGF9IG9yIHtsb2kgUEEgJydzdW10aScn fSBjYW4gYmUgYW4gaW5kaXZpZHVhbCB7bG8gZ3VubWF9IHVuZGVyIHRoZSBmb2xsb3dpbmcgY29u ZGl0aW9uOgorIEJlY2F1c2Uge2xvaS9sZWkvbGFpfSBpcyB0aHVzIGRlZmluZWQgYnkgYW5vdGhl ciBwbHVyYWwgY29uc3RhbnQge2xvIGd1bm1hIGJlIGxvL2xlL2xhfSwgaXQgZG9lcyBub3QgcmVm ZXIgZGlyZWN0bHkgdG8gcmVmZXJlbnQgb2Yge2xvIGJyb2RhfSBvciB7bG8gUEEgJydzdW10aScn fSwgYnV0IHJlZmVyZW50IG9mIHtsbyBndW5tYX0uIFRoZXJlZm9yZSwgZXZlbiBpZiB7bG8gYnJv ZGF9IG9yIHtsbyBQQSAnJ3N1bXRpJyd9IGlzIG5vdCBhbiBpbmRpdmlkdWFsLCB7bG9pIGJyb2Rh fSBvciB7bG9pIFBBICcnc3VtdGknJ30gY2FuIGJlIGFuIGluZGl2aWR1YWwge2xvIGd1bm1hfSB1 bmRlciB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbjoKXnJvJ29pIGRhIHBvaSBrZSdhIG1lIGxvIGd1 bm1hIGJlIGxvL2xlL2xhIFtbUEFdIGJyb2RhIHpvJ3UgbG8gZ3VubWEgYmUgbG8vbGUvbGEgW1tQ QV0gYnJvZGEgY3UgbWUgZGF+cHB+Cn4vcHB+cm8nb2kgZGEgcG9pIGtlJ2EgbWUgbG8gZ3VubWEg YmUgbG8vbGUvbGEgUEEgJydzdW10aScnIHpvJ3UgbG8gZ3VubWEgYmUgbG8vbGUvbGEgUEEgJydz dW10aScnIGN1IG1lIGRhXgoKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSsKQEAgLUxpbmVzOiAzMjctMzMxIGNoYW5nZWQgdG8gK0xpbmVz OiAzMjctMzMxIEBACistKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rCnBpUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBwaVBBIHNpJ2UgYmUg cGEgbWUgJydzdW10aScnCnx8Ci0gQXMgd2UgY2FuIHNlZSBpbiB0aGUgZGVmaW5pdGlvbiwgdGhl IGJvZHkgb2Ygb3V0ZXIgcXVhbnRpZmljYXRpb24gYnkge3BpUEF9IGlzIHBsdXJhbCBjb25zdGFu dCB7bG8gcGlQQSBzaSdlfSwgd2hpY2ggaXMgbm90IGEgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUu IEhvd2V2ZXIsIHgyIG9mIHtwaVBBIHNpJ2V9IGlzIHtwYSBtZSAnJ3N1bXRpJyd9LCB0byB3aGlj aCAoKEJQRksgU2VjdGlvbjogZ2Fkcml8dGhlIGRlZmludGlvbiBvZiBQQSBicm9kYSkpIGlzIGFw cGxpZWQ6CisgQXMgd2UgY2FuIHNlZSBpbiB0aGUgZGVmaW5pdGlvbiwgdGhlIGJvZHkgb2Ygb3V0 ZXIgcXVhbnRpZmljYXRpb24gYnkge3BpUEF9IGlzIHBsdXJhbCBjb25zdGFudCB7bG8gcGlQQSBz aSdlfSwgd2hpY2ggaXMgbm90IGEgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUuIEhvd2V2ZXIsIHgy IG9mIHtwaVBBIHNpJ2V9IGlzIHtwYSBtZSAnJ3N1bXRpJyd9LCB0byB3aGljaCAoKEJQRksgU2Vj dGlvbjogZ2Fkcml8dGhlIGRlZmluaXRpb24gb2YgUEEgYnJvZGEpKSBpcyBhcHBsaWVkOgp8fApQ QSBicm9kYSB+aHN+fH5oc34gUEEgZGEgcG9pIGJyb2RhIAoKKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKQEAgLUxpbmVzOiAzODYtMzk2 IGNoYW5nZWQgdG8gK0xpbmVzOiAzODYtMzk2IEBACistKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCntQQSBsbyBicm9kYX0gZGlmZmVycyBm cm9tIHtQQSBicm9kYX0gaW4gZG9tYWluIG9mIHJlZmVyZW50cyBvZiBib3VuZCBzaW5ndWxhciB2 YXJpYWJsZSB0byBiZSBjb3VudGVkLiBUaGUgZGVmaW5pdGlvbnMgb2Ygb3V0ZXIgcXVhbnRpZmlj YXRpb24gYXJlIGFwcGxpZWQgdG8gdGhlbSBhcyBmb2xsb3dzOgp8fAotIFBBIGxvIGJyb2RhIH5o c358fmhzfiBQQSBkYSBwb2kga2UnYSBtZSBsbyBicm9kYSB+aHN+fH5oc34gVGhlIGRvbWFpbiBv ZiBib3VuZCBzaW5ndWxhciB2YWlhYmxlIGlzIGEgcmVmZXJlbnQgb2YgcGx1cmFsIGNvbnN0YW50 IHtsbyBicm9kYX0gaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgYW5kIGNvdW50ZWQgdG8g YmUgUEEKKyBQQSBsbyBicm9kYSB+aHN+fH5oc34gUEEgZGEgcG9pIGtlJ2EgbWUgbG8gYnJvZGEg fmhzfnx+aHN+IFRoZSBkb21haW4gb2YgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUgaXMgYSByZWZl cmVudCBvZiBwbHVyYWwgY29uc3RhbnQge2xvIGJyb2RhfSBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlz Y291cnNlLCBhbmQgY291bnRlZCB0byBiZSBQQQpQQSBicm9kYSB+aHN+fH5oc34gUEEgZGEgcG9p IGtlJ2EgYnJvZGEgfmhzfnx+aHN+IFRoZSBkb21haW4gb2YgYm91bmQgc2luZ3VsYXIgdmFyaWFi bGUgaXMgYWxsIHRoYXQgYXJlIHticm9kYX0gaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwg YW5kIGNvdW50ZWQgdG8gYmUgUEEKfHwKCl4KLSA7RXhhbXBsZSAxOiBybyBqbWl2ZSBiYSBtb3Jz aSB+aHN+ICcnQWxsIGxpdmluZyB0aGluZ3Mgd2lsbCBkaWUnJzxiciAvPjtFeGFtcGxlIDI6IHJv IGxvIHByZW51IHRpIGtsYW1hIH5oc34gJydBbGwgdGhlIHBlb3BsZSBjb21lIGhlcmUnJ14KKyA7 RXhhbXBsZSAxOiBybyBqbWl2ZSBiYSBtb3JzaSB+aHN+ICcnQWxsIGxpdmluZyB0aGluZ3Mgd2ls bCBkaWUuJyc8YnIgLz47RXhhbXBsZSAyOiBybyBsbyBwcmVudSB0aSBrbGFtYSB+aHN+ICcnQWxs IHRoZSBwZW9wbGUgY29tZSBoZXJlLicnXgpFeGFtcGxlIDEgbWVudGlvbnMgYWxsIHtqbWl2ZX0g aW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4gSW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJz ZSBvZiBFeGFtcGxlIDIsIGl0IGlzIHBvc3NpYmxlIHRvIGludGVycHJldCB0aGF0IHRoZXJlIGFy ZSB7cHJlbnV9IG90aGVyIHRoYW4gdGhlIHJlZmVyZW50IG9mIHRoZSBwbHVyYWwgY29uc3RhbnQg e2xvIHByZW51fS4KCgoKCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgpUaGUgbmV3IHBhZ2UgY29udGVudCBmb2xsb3dzIGJlbG93Lgoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgoKKChCUEZLIFNlY3Rpb246IGdhZHJpfEJQRksncyBnYWRyaSBwYWdlKSkgY29udGFpbnMgZXhw cmVzc2lvbnMgbWlzbGVhZGluZyBwZW9wbGUgd2hvIGhhdmUgYXQgbGVhc3QgYSBsaXR0bGUga25v d2xlZGdlIG9mIGxvZ2ljIChbaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9kL3RvcGljL2xvamJh bi9SQXRFN1lrLWRxdy9kaXNjdXNzaW9ufGRpc2N1c3Npb25dKS4KCkkgd2lsbCBtYWtlIGhlcmUg YSBjb21tZW50YXJ5IG9uIEJQRksncyBnYWRyaSBzbyB0aGF0IGl0IGlzIHVuZGVyc29vZCBieSB0 aGVtIGNvcnJlY3RseS4KCgoKe21ha2V0b2N9CgoKCiEhIyBHbG9zc2FyeQoKV2Ugd2lsbCB1c2Ug dGhlIGZvbGxvd2luZyB0ZXJtcyBpbiB0aGlzIGNvbW1lbnRhcnkuCgo7X19hcmd1bWVudCAoc3Vt dGkpX186IFN5bWJvbCB0aGF0IHJlZmVycyB0byBhIHJlZmVyZW50LCBvciB0aGF0IGFub3RoZXIg YXJndW1lbnQgY2FuIGJlIHN1YnN0aXR1dGVkIGZvci4KCjtfX3VuaXZlcnNlIG9mIGRpc2NvdXJz ZV9fOiBTZXQgb2YgYWxsIHJlZmVyZW50cyBvZiBhcmd1bWVudHMuIEl0IGlzIG5hdHVyYWxseSBh IHVuaXZlcnNlIHRoYXQgaXMgZGlzY3Vzc2VkLiBBIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBkZXBl bmRzIG9uIHRoZSBjb250ZXh0LgoKO19fY29uc3RhbnRfXzogQXJndW1lbnQgdGhhdCByZWZlcnMg dG8gYSByZWZlcmVudC4KCjtfX3ZhcmlhYmxlX186IEFyZ3VtZW50IGFzIGEgcGxhY2UgaG9sZGVy LiBJdCBkb2VzIG5vdCByZWZlciB0byBhbnl0aGluZy4gSXQgaXMgdG8gYmUgc3Vic3RpdHV0ZWQg Zm9yLiBWYXJpYWJsZSBvdGhlciB0aGFuIGJvdW5kIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBkZWZp bmVkIGJlbGxvdyBpcyBjYWxsZWQgX19mcmVlIHZhcmlhYmxlX18uIFRoZSB0cnV0aCB2YWx1ZSBv ZiBhIHNlbnRlbmNlIHRoYXQgaW5jbHVkZXMgYSBmcmVlIHZhcmlhYmxlIGlzIGluZGVmaW5pdGUu IFN1Y2ggYSBzZW50ZW5jZSBpcyBjYWxsZWQgX19vcGVuIHNlbnRlbmNlX18uCgpeSW4gTG9qYmFu LCB7a2UnYX0gYW5kIHtjZSd1fSBhcmUgYWx3YXlzIGZyZWUgdmFyaWFibGVzLiBBIHNlbnRlbmNl IGluIE5PSS1jbGF1c2Ugb3IgTlUtY2xhdXNlIHdpdGgge2NlJ3V9IGlzIG9wZW4uIChBIHNlbnRl bmNlIGluIE5VLWNsYXNlIHdpdGggbm8ge2NlJ3V9IGhhcyBhIHRydXRoIHZhbHVlLCBidXQgZWFj aCBvZiB0aGUgaW5zaWRlIGFuZCB0aGUgb3V0c2lkZSBvZiBOVS1jbGF1c2UgaGFzIGFuIGluZGVw ZW5kZW50IHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgYW5kIHRodXMgZWFjaCBvZiB0aGVtIGhhcyBh biBpbmRlcGVuZGVudCB0cnV0aCB2YWx1ZSAoZm9yIGV4YW1wbGUsIHNlZSBbaHR0cDovL2RhZy5n aXRodWIuaW8vY2xsLzkvNy98Q0xMOS43XSkuIEluIGRlZmluaXRpb25zIG9mIHdvcmRzIGluIExv amJhbiwga28nVi9mbydWIHNlcmllcyB7a28nYSwga28nZSwgLi4ufSBvZiBzZWxtYSdvIEtPaEE0 IGFyZSB1c2VkIGFzIGZyZWUgdmFyaWFibGVzLCBidXQgaXQgaXMgb25seSBhIGN1c3RvbSBmb3Ig Y29udmVuaWVuY2UuIEFsbCBjbWF2byBvZiBLT2hBMiwzLDQsNSw2IGFuZCB7em8nZX0gb2YgS09o QTcgYXJlIGVzc2VudGlhbGx5IGNvbnN0YW50cy5eCgo7X19xdWFudGlmeV9fOiBJbiBzdWJzdGl0 dXRpbmcgcG9zc2libGUgYXJndW1lbnRzIG9uZSBieSBvbmUgZm9yIGEgdmFyaWFibGUgaW4gYSBz ZW50ZW5jZSwgY291bnQgdGhlIG51bWJlciBvZiByZWZlcmVudHMgdGhhdCBtYWtlIHRoZSBzZW50 ZW5jZSB0cnVlLCBhbmQgcHJlZml4IHRoZSBudW1iZXIgdG8gdGhlIHZhcmlhYmxlLgoKO19fcXVh bnRpZmllcl9fOiBOdW1iZXIgdXNlZCBmb3IgcXVhbnRpZmljYXRpb24uIEJlc2lkZXMge3BhfSwg e3JlfSwge3ZlaSBueSBzdSdpIHBhICh2ZSdvKX0gYW5kIHNvIG9uLCB7cm99ICJhbGwiIGFuZCB7 c3Unb30gInRoZXJlIGlzIG9uZSBvciBtb3JlIiBhcmUgYWxzbyBxdWFudGlmaWVycy4KCjtfX2Jv dW5kIHZhcmlhYmxlX186IFZhcmlhYmxlIHByZWZpeGVkIGJ5IGEgcXVhbnRpZmllci4gQXMgYSBy ZXN1bHQgb2YgcXVhbnRpZmljYXRpb24sIHRoZXJlIGlzIG5vIHJvb20gZm9yIHN1YnN0aXR1dGlu ZyBhbiBhcmJpdHJhcnkgYXJndW1lbnQgZm9yIHRoZSB2YXJpYWJsZS4KCl5JbiBMb2piYW4sIHtk YX0sIHtkZX0gYW5kIHtkaX0gYXJlIGJvdW5kIHZhcmlhYmxlcy4gRm9yIGV4YW1wbGUsIHtybyBk YSB6byd1IGRhIGJyb2RhfSBtZWFucyAiRm9yIGFsbCB7ZGF9IGluIHRoZSB1bml2ZXJzZSBvZiBk aXNjb3Vyc2UsIHtkYSBicm9kYX0gaXMgdHJ1ZS4iIEluIHRoZSBjYXNlIHRoYXQge2RhfSwge2Rl fSBvciB7ZGl9IGFyZSBub3QgcHJlZml4ZWQgYnkgYSBxdWFudGlmaWVyLCB0aGV5IGFyZSByZWdh cmRlZCBhcyBpbXBsaWNpdGx5IHByZWZpeGVkIGJ5IHtzdSdvfS5eCgo7X19kb21haW5fXzogUmFu Z2Ugb2YgcmVmZXJlbnRzIHRvIGJlIHN1YnN0aXR1dGVkIGZvciBhIHZhcmlhYmxlLCBvciByYW5n ZSB0byBiZSBjb25zaWRlcmVkIGluIGNvdW50aW5nIHJlZmVyZW50cyBpbiBxdWFudGlmaWNhdGlv bi4KCl5JbiBMb2piYW4sIGEgZG9tYWluIG9mIGEgYm91bmQgdmFyaWFibGUgY2FuIGJlIGxpbWl0 ZWQgd2l0aCBhbiBleHByZXNzaW9uIHtkYSBwb2kuLi59LiBGb3IgZXhhbXBsZSwge3JvIGRhIHBv aSBrZSdhIGJyb2RhIHpvJ3UgZGEgYnJvZGV9IG1lYW5zICJGb3IgYWxsIHtkYX0gdGhhdCBhcmUg eDEgb2Yge2Jyb2RhfSBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCB7ZGEgYnJvZGV9IGlz IHRydWUuIiBJZiB7cG9pLi4ufSBkb2VzIG5vdCBmb2xsb3cge2RhfSwgdGhlIGRvbWFpbiBpcyB0 aGUgd2hvbGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLl4KCjtfX3RhdXRvbG9neV9fOiBTZW50ZW5j ZSB0aGF0IGlzIGFsd2F5cyB0cnVlIGluZGVwZW5kZW50bHkgb2YgY29udGV4dC4ge2tvJ2EgZHUg a28nYX0gZXRjLgoKO19fbG9naWNhbCBheGlvbXNfXzogU2VudGVuY2VzIHNlbGVjdGVkIGZyb20g dGF1dG9sb2dpZXMgc28gdGhhdCBhbGwgdGF1dG9sb2dpZXMgYXJlIHByb3ZlZCBmcm9tIHRoZW0g d2l0aCBydWxlcyBvZiBpbmZlcmVuY2UgdGhhdCBhcmUgZGVmaW5lZC4KCgoKISEjIFBsdXJhbCBx dWFudGlmaWNhdGlvbgoKSW4gb3JkZXIgdG8gdW5kZXJzdGFuZCBhcmd1bWVudHMgb2YgTG9qYmFu IGZyb20gYSBsb2dpY2FsIHBvaW50IG9mIHZpZXcsIGl0IGlzIGVzc2VudGlhbCB0byBoYXZlIGEg a25vd2xlZGdlIG9mIF9fcGx1cmFsIHF1YW50aWZpY2F0aW9uX18uCgoKClBsdXJhbCBxdWFudGlm aWNhdGlvbiB3YXMgaW52ZW50ZWQgaW4gb3JkZXIgdG8gZmFjaWxpdGF0ZSBleHByZXNzaW9uIG9m IHByb3Bvc2l0aW9uIHRoYXQgaXMgbWVhbmluZ2Z1bCBvbmx5IHdoZW4gdGhlIHJlZmVyZW50IG9m IGFuIGFyZ3VtZW50IGlzIHBsdXJhbC4gCgpeCgo7RXhhbXBsZTogUGVvcGxlIGdhdGhlcmVkLCBj b29rZWQgYW5kIGF0ZS5eCgpMb2dpY2FsbHksIHRoaXMgc2VudGVuY2UgaXMgYSBwcm9wb3NpdGlv biB0aGF0IGNvbnNpc3RzIG9mIGEgY29uc3RhbnQgInBlb3BsZSIgYW5kIHRocmVlIHByZWRpY2F0 ZXMgImdhdGhlcmVkIiAiY29va2VkIiBhbmQgImF0ZSIuIFRoZSBwcmVkaWNhdGVzIGFyZSBkaWZm ZXJlbnQgZnJvbSBlYWNoIG90aGVyIGluIHByb3BlcnR5IG9mIHRyZWF0aW5nIHRoZSBhcmd1bWVu dC4gV2Ugd2lsbCBkaXNjdXNzIHByZWNpc2VseSBob3cgdGhlIGFyZ3VtZW50IGluIHRoZSBzZW50 ZW5jZSBpcyB0cmVhdGVkLgoKCgohISEjIENvbGxlY3Rpdml0eSBhbmQgZGlzdHJpYnV0aXZpdHkK CgoKQ29uc2lkZXIgdGhlIGV4cHJlc3Npb24gInBlb3BsZSBnYXRoZXJlZCI6IGJhc2VkIG9uIHRo ZSBtZWFuaW5nIG9mIHRoZSBwcmVkaWNhdGUgImdhdGhlcmVkIiwgdGhlIGNvbnN0YW50ICJwZW9w bGUiIHNob3VsZCByZWZlciB0byBwbHVyYWwgcGVvcGxlLgoKV2hlbiByZWZlcmVudHMgb2YgYW4g YXJndW1lbnQgc2F0aXNmeSBhIHByZWRpY2F0ZSBhcyBjb2xsZWN0aXZlIHBsdXJhbCB0aGluZ3Mg bGlrZSB0aGlzLCB3ZSBleHByZXNzIGl0IGFzICJhbiBhcmd1bWVudCBzYXRpc2ZpZXMgYW4gcHJl ZGljYXRlIF9fY29sbGVjdGl2ZWx5X18iLCBvciAidGhlIGFyZ3VtZW50IGhhcyBfX2NvbGxlY3Rp dml0eV9fIi4KCgoKQXMgZm9yIGVhY2ggb2YgdGhlIHBsdXJhbCBwZW9wbGUgcmVmZXJyZWQgdG8g YnkgdGhlIGNvbnN0YW50LCAgZWFjaCBzZW50ZW5jZSBzdWNoIHRoYXQgIkFsaWNlIGdhdGhlcmVk IiwgIkJvYiBnYXRoZXJlZCIgYW5kIHNvIG9uIGlzIG5vbnNlbnNlLgoKV2hlbiBlYWNoIHJlZmVy ZW50IHJlZmVycmVkIHRvIGJ5IGEgY29uc3RhbnQgY2Fubm90IHNhdGlzZnkgYSBwcmVkaWNhdGUg YWxvbmUsIHdlIGV4cHJlc3MgaXQgYXMgImFuIGFyZ3VtZW50IHNhdGlzZmllcyBhbiBwcmVkaWNh dGUgX19ub24tZGlzdHJpYnV0aXZlbHlfXyIuCgoKCk9uIHRoZSBvdGhlciBoYW5kLCBpbiB0aGUg ZXhwcmVzc2lvbiAicGVvcGxlIGF0ZSIsIGFsdGhvdWdoIHRoZSBjb25zdGFudCAicGVvcGxlIiBy ZWZlcnMgdG8gcGx1cmFsIHBlb3BsZSwgdGhlIHByZWRpY2F0ZSAiYXRlIiBpcyBzYXRpc2ZpZWQg YnkgZWFjaCBwZXJzb24uIFRoYXQgaXMgdG8gc2F5LCBlYWNoIHNlbnRlbmNlIHN1Y2ggdGhhdCAi QWxpY2UgYXRlIiwgIkJvYiBhdGUiIGFuZCBzbyBvbiBpcyBtZWFuaW5nZnVsLgoKV2hlbiBlYWNo IHJlZmVyZW50IHJlZmVycmVkIHRvIGJ5IGEgY29uc3RhbnQgc2F0aXNmaWVzIGEgcHJlZGljYXRl IGFsb25lLCB3ZSBleHByZXNzIGl0IGFzICJhbiBhcmd1bWVudCBzYXRpc2ZpZXMgYW4gcHJlZGlj YXRlIF9fZGlzdHJpYnV0aXZlbHlfXyIsIG9yICJ0aGUgYXJndW1lbnQgaGFzIF9fZGlzdHJpYnV0 aXZpdHlfXyIuCgoKCk1vcmVvdmVyLCBpZiB0aGUgcHJlZGljYXRlICJlYXQiIG1lYW5zIGFuIGFj dCAicHV0IGZvb2QgaW4gYSBtb3V0aCwgYml0ZSBpdCwgbGV0IGl0IHBhc3MgdGhyb3VnaCBhbiBl c29waGFndXMgYW5kIHNlbmQgaXQgdG8gYSBzdG9tYWNoIiwgaXQgaXMgaGFyZGx5IGNvbnNpZGVy ZWQgdGhhdCAicGVvcGxlIiBzYXRpc2ZpZXMgImVhdCIgY29sbGVjdGl2ZWx5LiBFdmVuIGlmIGEg cGVyc29uIGhlbHBzIGFub3RoZXIgdG8gZWF0LCB0aGUgaGVscGVyIGlzIG5vdCBlYXRlciwgYW5k IHRoZSBlYXRlciBpcyBub3QgY29sbGVjdGl2ZSBwZW9wbGUgYnV0IGFuIGluZGl2aWR1YWwuIAoK V2hlbiBlYWNoIHJlZmVyZW50IHJlZmVycmVkIHRvIGJ5IGEgY29uc3RhbnQgY2Fubm90IHNhdGlz ZnkgYSBwcmVkaWNhdGUgYXMgY29sbGVjdGl2ZSBwbHVyYWwgdGhpbmdzLCB3ZSBleHByZXNzIGl0 IGFzICJhbiBhcmd1bWVudCBzYXRpc2ZpZXMgYW4gcHJlZGljYXRlIF9fbm9uLWNvbGxlY3RpdmVs eV9fIi4KCihIb3dldmVyLCBpdCBpcyBwb3NzaWJsZSB0byBpbnRlcnByZXQgdGhlIHByZWRpY2F0 ZSAiZWF0IiBhcyBpbnZvbHZpbmcgY29sbGVjdGl2aXR5LiBGb3IgZXhhbXBsZSwgaWYgaXQgaXMg aW50ZXJwcmV0ZWQgYXMgInB1dCBmb29kIGF3YXkgZnJvbSBvdXRzaWRlIHRvIGluc2lkZSBvZiBi b2R5Iiwgd2UgbWF5IHNheSAiY29sbGVjdGl2ZWx5IGVhdCIgdG8gZXhwcmVzcyBhbiBldmVudCB0 aGF0IHBlb3BsZSBlYXQgYW5kIGNvbnN1bWUgYSBtYXNzIG9mIGZvb2QgdG9nZXRoZXIuKQoKCgpU aGVyZSBhcmUgYWxzbyBwcmVkaWNhdGVzIHRoYXQgYWxsb3cgYm90aCBwcm9wZXJ0aWVzICJjb2xs ZWN0aXZpdHkiIGFuZCAiZGlzdHJpYnV0aXZpdHkiLgoKIlBlb3BsZSBjb29rZWQiIG1heSBtZWFu IHRoYXQgcGx1cmFsIHBlb3BsZSBrbmVhZCBwYXN0ZSBvZiBwaXp6YSB0b2dldGhlciwgYW5kIHRo YXQgZWFjaCBvZiB0aGVtIGlzIGluIGNoYXJnZSBvZiBjYWtlcyBvciBwb3QtYXUtZmV1LiBJbiB0 aGlzIGNhc2UsIHRoZSBjb25zdGFudCAicGVvcGxlIiByZWZlcnMgdG8gcGx1cmFsIHBlb3BsZSwg YW5kIHRoZXkgY29va2VkIHBpenphIGNvbGxlY3RpdmVseSwgY2FrZXMgYW5kIHBvdC1hdS1mZXUg ZGlzdHJpYnV0aXZlbHkuIFRoZSBjb25zdGFudCAicGVvcGxlIiB0aHVzIHNhdGlzZmllcyB0aGUg cHJlZGljYXRlICJjb29rZWQiIGNvbGxlY3RpdmVseSBhbmQgZGlzdHJpYnV0aXZlbHkuCgoKCk5v dGUgdGhhdCB0aGUgY29uc3RhbnQgInBlb3BsZSIgcmVmZXJzIHRvIHdoYXQgaXMgY29tbW9uIHRv IHRocmVlIHByZWRpY2F0ZXMgImdhdGhlcmVkIiwgImNvb2tlZCIgYW5kICJhdGUiLiBObyBtYXR0 ZXIgaWYgYSBjb25zdGFudCBzYXRpc2ZpZXMgcHJlZGljYXRlcyBjb2xsZWN0aXZlbHkgb3IgZGlz dHJpYnV0aXZlbHksIHRoZSByZWZlcmVudCBpcyB0aGUgc2FtZS4KCgoKSWYgd2UgdXNlIGFuIGFy Z3VtZW50ICJhIHNldCBvZiBwZW9wbGUiIGluIHRoZSBjYXNlIG9mIHNhdGlzZnlpbmcgYSBwcmVk aWNhdGUgY29sbGVjdGl2ZWx5LCBpdCBtaWdodCBiZSBwb3NzaWJsZSB0byBpbnRlcnByZXQgdGhl IHByZWRpY2F0ZSAiZ2F0aGVyZWQiIHNvIHRoYXQgdGhlIGFyZ3VtZW50IHNhdGlzZmllcyBpdCwg YnV0IHRoZSBzYW1lIGFyZ3VtZW50IGNhbm5vdCBzYXRpc2Z5IHRoZSBwcmVkaWNhdGUgImF0ZSIs IGJlY2F1c2Ugd2UgY2FuIGhhcmRseSBzYXkgdGhhdCBhIHNldCBvZiBwZW9wbGUsIHdoaWNoIGlz IGFuIGFic3RyYWN0IGVudGl0eSwgcGVyZm9ybXMgImF0ZSIuCgoKClVzaW5nIHBsdXJhbCBjb25z dGFudHMgYW5kIHBsdXJhbCB2YXJpYWJsZXMgdGhhdCB3aWxsIGJlIGRpc2N1c3NlZCBpbiB0aGUg Zm9sbG93aW5nIHNlY3Rpb25zLCB3ZSBjYW4gZXhwcmVzcyBwbHVyYWwgdGhpbmdzIGluIHRoZSBm b3JtIG9mIHByZWRpY2F0ZSBsb2dpYyB3aXRob3V0IHVzaW5nIHNldHMuCgoKCiEhISMgUGx1cmFs IGNvbnN0YW50IGFuZCBwbHVyYWwgdmFyaWFibGUKCkFuIGFyZ3VtZW50IHRoYXQgcmVmZXJzIHRv IHJlZmVyZW50IHdpdGhvdXQgaW50cm9kdWNpbmcgYSBub3Rpb24gb2Ygc2V0cywgd2l0aG91dCBk aXN0aW5ndWlzaGluZyBjb2xsZWN0aXZpdHkgYW5kIGRpc3RyaWJ1dGl2aXR5LCB3aXRob3V0IGRp c3Rpbmd1aXNoaW5nIHBsdXJhbGl0eSBhbmQgc2luZ3VsYXJpdHksIGlzIGNhbGxlZCBfX3BsdXJh bCBjb25zdGFudF9fLgoKQSB2YXJpYWJsZSBmb3Igd2hpY2ggYSBwbHVyYWwgY29uc3RhbnQgY2Fu IGJlIHN1YnN0aXR1dGVkIGlzIGNhbGxlZCBfX3BsdXJhbCB2YXJpYWJsZV9fLgoKUXVhbnRpZnlp bmcgYSBwbHVyYWwgdmFyaWFibGUgaXMgY2FsbGVkIF9fcGx1cmFsIHF1YW50aWZpY2F0aW9uX18u IEEgcXVhbnRpZmllciB1c2VkIGZvciBwbHVyYWwgcXVhbnRpZmljYXRpb24gaXMgY2FsbGVkIF9f cGx1cmFsIHF1YW50aWZpZXJfXy4gQSBwbHVyYWwgdmFyaWFibGUgcHJlZml4ZWQgd2l0aCBhIHBs dXJhbCBxdWFudGlmaWVyIGlzIGNhbGxlZCBhIF9fYm91bmQgcGx1cmFsIHZhcmlhYmxlX18uCgoK CiEhISEjIG1lIGFuZCBqbyd1CgpXZSBpbnRyb2R1Y2UgcmVsYXRpb25zIGJldHdlZW4gcGx1cmFs IGNvbnN0YW50cyBhbmQgcGx1cmFsIHZhcmlhYmxlczoge21lfSBhbmQge2pvJ3V9LgoKCgp8fAoK WCBtZSBZIChtZSd1KSB+aHN+fH5oc34gWCBpcyBhbW9uZyBZCgp8fAoKWCBhbmQgWSByZXByZXNl bnQgaGVyZSBwbHVyYWwgY29uc3RhbnRzIG9yIHBsdXJhbCB2YXJpYWJsZXMuIEEgY2x1c3RlciB7 bWUgWSAobWUndSl9IGlzIGEgc2VsYnJpIGluIExvamJhbiBncmFtbWFyLiB7bWUndX0gaXMgYW4g ZWxpZGFibGUgdGVybWluYXRvciBvZiBzdHJ1Y3R1cmUgYmVnaW5uaW5nIHdpdGgge21lfS4KCgoK e21lfSBoYXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdpdGggYXJiaXRyYXJ5IGFyZ3VtZW50 cyBYLCBZIGFuZCBaOgoKIyBYIG1lIFggKHJlZmxleGl2aXR5KQoKIyBYIG1lIFkgaWplYm8gWSBt ZSBaIGluYWphIFggbWUgWiAodHJhbnNpdGl2aXR5KQoKIyBYIG1lIFkgaWplYm8gWSBtZSBYIGlq byBYIGR1IFkgKGlkZW50aXR5KQoKVGhlIHByb3BlcnR5IDMgbWVhbnMgdGhhdCB0aGUgaWRlbnRp dHkgYmV0d2VlbiByZWZlcmVudHMgb2YgWCBhbmQgWSBpcyByZXByZXNlbnRlZCB3aXRoIHttZX0s IGFzIGEgcmVsYXRpb24gdGhhdCB7WCBtZSBZIGlqZWJvIFkgbWUgWH0uCgoKCnx8CgpYIGpvJ3Ug WSB+aHN+fH5oc34gWCBhbmQgWQoKfHwKCntqbyd1fSBjb21iaW5lcyB0d28gYXJndW1lbnRzIFgg YW5kIFkgaW50byBvbmUgcGx1cmFsIGNvbnN0YW50IG9yIG9uZSBwbHVyYWwgdmFyaWFibGUuCgoK Cntqbyd1fSBoYXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdpdGggYXJiaXRyYXJ5IGFyZ3Vt ZW50cyBYIGFuZCBZOgoKIyBYIG1lIFggam8ndSBZCgojIFggam8ndSBZIGR1IFkgam8ndSBYCgoj IFggam8ndSBYIGR1IFgKClRoZSBwcm9wZXJ0eSAyIG1lYW5zIHRoYXQgdGhlIHJlZmVyZW50IG9m IHRoZSB3aG9sZSBhcmd1bWVudCBkb2VzIG5vdCB2YXJ5IHdoZW4gdHdvIGFyZ3VtZW50cyBjb21i aW5lZCBieSB7am8ndX0gYXJlIGludGVyY2hhbmdlZCB3aXRoIGVhY2ggb3RoZXIuIFRoZSBwcm9w ZXJ0eSAzIG1lYW5zIHRoYXQge2pvJ3V9IGRvZXMgbm90IGFkZCBhbnkgcmVmZXJlbnQgd2hlbiBp dCBjb21iaW5lcyBhbiBhcmd1bWVudCB3aXRoIGl0c2VsZi4KCgoKVXNpbmcge2pvJ3V9LCB0aGUg Zm9sbG93aW5nIGV4cHJlc3Npb24gaXMgcG9zc2libGU6CgpeCgo7RXhhbXBsZTogQiBhbmQgQyBn YXRoZXJlZCwgY29va2VkIGFuZCBhdGUuCgo7OiBieSBqbyd1IGN5IGptYWppIGdpJ2UganVrcGEg Z2knZSBjaXRrYV4KCkVhY2ggb2Yge2J5fSBhbmQge2N5fSBpcyBhIHBsdXJhbCBjb25zdGFudC4K CgoKVGhlIHByZWRpY2F0ZSB7anVrcGF9IChjb29rKSBjYW4gYmUgaW50ZXJwcmV0ZWQgY29sbGVj dGl2ZWx5IGFuZC9vciBkaXN0cmlidXRpdmVseSwgYnV0IHRoZSBwbHVyYWwgY29uc3RhbnQge2J5 IGpvJ3UgY3l9IHNheXMgbm90aGluZyBhYm91dCB3aGV0aGVyIGl0IHNhdGlzZmllcyB7anVrcGF9 IGNvbGxlY3RpdmVseSBhbmQvb3IgZGlzdHJpYnV0aXZlbHkuIElmIHdlIHdhbnQgdG8gbWFrZSBl eHBsaWNpdCB0aGF0IHRoZXkgY29va2VkICJjb2xsZWN0aXZlbHkiLCB3ZSBzYXkge2J5IGpvaSBj eX0gdXNpbmcgKChCUEZLIFNlY3Rpb246IE5vbi1sb2dpY2FsIENvbm5lY3RpdmVzfHtqb2l9IHRo YXQgY29tYmluZXMgdHdvIGFyZ3VtZW50cyBpbnRvIGFuIGFyZ3VtZW50IHRoYXQgc2F0aXNmaWVz IGEgcHJlZGljYXRlIG5vbi1kaXN0cmlidXRpdmVseSkpLCBvciB7bHUnbyBieSBqbyd1IGN5fSB1 c2luZyB7bHUnb30gdGhhdCB3aWxsIGJlIGRpc2N1c3NlZCBpbiAoKHwjUmVsYXRpb25fYmV0d2Vl bl9sdV9hX2x1X29fbHVfaV9hbmRfZ2Fkcml8U2VjdGlvbiAzLjMpKS4gQ29udHJhc3RpdmVseSwg aWYgd2Ugd2FudCB0byBtYWtlIGV4cGxpY2l0IHRoYXQgdGhleSBjb29rZWQgImRpc3RyaWJ1dGl2 ZWx5Iiwgd2Ugc2F5ICB7bHUnYSBieSBqbyd1IGN5fSB1c2luZyB7bHUnYX0gdGhhdCB3aWxsIGJl IGRpc2N1c3NlZCBpbiAoKHwjUmVsYXRpb25fYmV0d2Vlbl9sdV9hX2x1X29fbHVfaV9hbmRfZ2Fk cml8U2VjdGlvbiAzLjMpKS4gSG93ZXZlciwgdGhlc2UgYXJndW1lbnRzIHRoYXQgc2F5cyBleHBs aWNpdGx5IGNvbGxlY3Rpdml0eSBhbmQvb3IgZGlzdHJpYnV0aXZpdHkgYXJlIG5vdCBhbHdheXMg Y29tbW9ubHkgdXNlZCBmb3Igb3RoZXIgcHJlZGljYXRlcyBsaWtlIHtqbWFqaX0gb3Ige2NpdGth fS4KCgoKVGhlIGRpYWdyYW0gYmVsbG93IHNob3dzIHJlbGF0aW9ucyBjb25zdHJ1Y3RlZCB3aXRo IHttZX0gYW5kIHtqbyd1fSByZXByZXNlbnRlZCB3aXRoIGEgZGlyZWN0ZWQgZ3JhcGgsIGluIHdo aWNoIHRoZSB2ZXJ0aWNlcyByZXByZXNlbnQgcGx1cmFsIGNvbnN0YW50cy4KCgoKe2ltZyBmaWxl SWQ9IjciIHRodW1iPSJ5IiByZWw9ImJveFtnXSJ9CgoKCiEhISEjIEluZGl2aWR1YWwKClJlZmVy ZW50IG9mIGEgcGx1cmFsIGNvbnN0YW50IGlzIG5vdCBuZWNlc3NhcmlseSBwbHVyYWw6IGEgcGx1 cmFsIGNvbnN0YW50IGNhbiByZWZlciB0byBvbmUgaW5kaXZpZHVhbC4KCl9fQW4gaW5kaXZpZHVh bF9fIGlzIGRlZmluZWQgYXMgZm9sbG93czoKCnx8CgpfX1ggaXMgYW4gaW5kaXZpZHVhbF9fIH5o c358fmhzfiA9Y2EnZSB+aHN+fH5oc34gcm8nb2kgZGEgcG9pIGtlJ2EgbWUgWCB6byd1IFggbWUg ZGEKCnx8CgoKCndoZXJlIF9fcm8nb2lfXyBpcyBhbiBleHBlcmltZW50YWwgY21hdm8gcHJvcG9z ZWQgYnkgKCh4b3J4ZXN8bGEgeG9yeGVzKSksIHdoaWNoIGlzIGEgcGx1cmFsIHF1YW50aWZpZXIg bWVhbmluZyAiYWxsIi4gIHtybydvaSBkYX0gaXMgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUgbWVh bmluZyAiZm9yIGFsbCB0aGF0IGNhbiBiZSBzdWJzdGl0dXRlZCBmb3Ige2RhfSIuIFRoaXMgZGVm aW5pdGlvbiBtZWFucyB0aGF0IFggaXMgY2FsbGVkIGFuIGluZGl2aWR1YWwgd2hlbiB0aGUgY29u ZGl0aW9uICJmb3IgYWxsIHtkYX0gdGhhdCBhcmUgYW1vbmcgWCwgWCBpcyBhbW9uZyB7ZGF9IiBp cyBzYXRpc2ZpZWQuIEluIG90aGVyIHdvcmRzLCAiaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJz ZSwgbm90aGluZyBvdGhlciB0aGFuIHtYfSBjYW4gYmUgc3Vic3RpdHV0ZWQgZm9yIHtkYX0gc3Vj aCB0aGF0IHtYIG1lIGRhfSIgaXMgZXhwcmVzc2VkIGJ5ICJYIGlzIGFuIGluZGl2aWR1YWwiLgoK CgpXaGVuIGVhY2ggb2YgWCBhbmQgWSBpcyBhbiBpbmRpdmlkdWFsLCB7WCBqbyd1IFl9IGlzIGNh bGxlZCBfX2luZGl2aWR1YWxzX18uIFdoZW4gZWFjaCBvZiBYIGFuZCBZIGlzIGFuIGluZGl2aWR1 YWwgb3IgaW5kaXZpZHVhbHMsIHtYIGpvJ3UgWX0gaXMgY2FsbGVkIGluZGl2aWR1YWxzIGFzIHdl bGwuCgoKCiEhISEjIERpZmZlcmVuY2UgYmV0d2VlbiBwbHVyYWwgYW5kIHNpbmd1bGFyCgpBIHBs dXJhbCBjb25zdGFudCB0aGF0IGlzIGFuIGluZGl2aWR1YWwgaXMgY2FsbGVkIF9fc2luZ3VsYXIg Y29uc3RhbnRfXy4KCgoKTm8gbWF0dGVyIHdoZXRoZXIgZWFjaCBvZiBYIGFuZCBZIGlzIHBsdXJh bCBvciBzaW5ndWxhciwge1ggam8ndSBZfSBpcyBub3QgYSBzaW5ndWxhciBjb25zdGFudC4gSXQg aXMgYmVjYXVzZSAKCl5YIG1lIFggam8ndSBZIGlqZW5haSBYIGpvJ3UgWSBtZSBYXgoKaG9sZHMg dHJ1ZSwgYW5kIHRoZW4ge1ggam8ndSBZfSBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBjb25kaXRpb24g b2YgYW4gaW5kaXZpZHVhbCB7cm8nb2kgZGEgcG9pIGtlJ2EgbWUgWCBqbyd1IFkgem8ndSBYIGpv J3UgWSBtZSBkYX0uCgoKCiEhISEjIEJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlCgpXaGVuIHRoZSBk b21haW4gb2YgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUgaXMgcmVzdHJpY3RlZCB0byB3aGF0IGlz IGFuIGluZGl2aWR1YWwsIHRoZSB2YXJpYWJsZSBpcyBjYWxsZWQgX19ib3VuZCBzaW5ndWxhciB2 YXJpYWJsZV9fLgoKe3JvIGRhfSAoZm9yIGFsbCB7ZGF9KSBhbmQge3N1J28gZGF9ICh0aGVyZSBp cyBhdCBsZWFzdCBvbmUge2RhfSksIHdoaWNoIGFyZSBvZmZpY2lhbGx5IGRlZmluZWQgaW4gTG9q YmFuLCBhcmUgYm91bmQgc2luZ3VsYXIgdmFyaWFibGVzLiBUaGV5IGNhbiBiZSBkZWZpbmVkIHdp dGggYm91bmQgcGx1cmFsIHZhcmlhYmxlcyBhcyBmb2xsb3dzOgoKfHwKCnJvIGRhIH5oc358fmhz fiBybydvaSBkYSBwb2kgcm8nb2kgZGUgcG9pIGtlJ2EgeGkgcGEgbWUga2UnYSB4aSByZSB6byd1 IGtlJ2EgeGkgcmUgbWUgZGUKCnN1J28gZGEgfmhzfnx+aHN+IHN1J29pIGRhIHBvaSBybydvaSBk ZSBwb2kga2UnYSB4aSBwYSBtZSBrZSdhIHhpIHJlIHpvJ3Uga2UnYSB4aSByZSBtZSBkZQoKfHwK Cl9fc3Unb2lfXyBpcyBhbiBleHBlcmltZW50YWwgY21hdm8gcHJvcG9zZWQgYnkgKCh4b3J4ZXN8 bGEgeG9yeGVzKSksIGFuZCBpcyBhIHBsdXJhbCBxdWFudGlmaWVyIG1lYW5pbmcgInRoZXJlIGlz L2FyZSIuIE5vdGUgdGhhdCB7c3Unb2l9IGlzIF9fbm90X18gImF0IGxlYXN0IG9uZSIuIHtzdSdv aSBkYX0gaXMgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUgbWVhbmluZyAidGhlcmUgaXMvYXJlIHtk YX0iLgoKCgpGb3IgZXhhbXBsZSwgYSBwbHVyYWwgY29uc3RhbnQge0Egam8ndSBCfSBjYW4gYmUg aW4gYSBkb21haW4gb2YgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUsIGJ1dCBpdCBjYW5ub3QgYmUg aW4gYSBkb21haW4gb2YgYSBib3VuZCBzaW5ndWxhciB2YXJpYWJsZSBiZWNhdXNlIGl0IGlzIG5v dCBhbiBpbmRpdmlkdWFsLgoKCgohISEhIyBXaGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBu b3IgaW5kaXZpZHVhbHMKClJlZmVyZW50IG9mIGEgcGx1cmFsIGNvbnN0YW50IGlzIG5vdCBuZWNl c3NhcmlseSBhbiBpbmRpdmlkdWFsIG9yIGluZGl2aWR1YWxzLiAKCkl0IGlzIHBvc3NpYmxlIHRv IGRpc2N1c3MgYSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2Ugc3VjaCB0aGF0IHJlZmVyZW50IG9mIGEg cGx1cmFsIGNvbnN0YW50IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMu CgoKCkZvciBleGFtcGxlLCBjb25zaWRlciBzdWNoIGEgdW5pdmVyc2Ugb2YgZGlzY291cnNlIGlu IHdoaWNoIHRoZSBmb2xsb3dpbmcgcHJvcG9zaXRpb24gaG9sZHMgdHJ1ZS4KCl5ybydvaSBkYSBw b2kga2UnYSBtZSBrbydhIGt1J28gc3Unb2kgZGUgem8ndSBkZSBtZSBkYSBpamVuYWkgZGEgbWUg ZGUgfi0tfiBDb25kaXRpb25fMV4KCkluIG90aGVyIHdvcmRzLCBpbiB0aGlzIHVuaXZlcnNlIG9m IGRpc2NvdXJzZSwgZm9yIGFsbCBYIHN1Y2ggdGhhdCB7WCBtZSBrbydhfSwgdGhlcmUgaXMgYWx3 YXlzIFkgc3VjaCB0aGF0IHtZIG1lIFh9IGFuZCBub3Qge1ggbWUgWX0uCgoKCjtUaGVvcmVtOiBJ biBhIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSB3aGVyZSBDb25kaXRpb25fMSBpcyB0cnVlLCB7a28n YX0gaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscy4KCgoKO1Byb29mOiBT dXBwb3NlIHtrbydhfSBpcyBhbiBpbmRpdmlkdWFsLiBGcm9tIHRoZSBkZWZpbml0aW9uIG9mICJh biBpbmRpdmlkdWFsIjoKCl5ybydvaSBkYSBwb2kga2UnYSBtZSBrbydhIHpvJ3Uga28nYSBtZSBk YSB+LS1+IFN1cHBvc2l0aW9uXzJeCgpSZXBsYWNlIHtybydvaSBkYX0gd2l0aCB7bmFrdSBzdSdv aSBkYSBuYWt1fToKCl5uYWt1IHN1J29pIGRhIHBvaSBrZSdhIG1lIGtvJ2Ega3UnbyBuYWt1IHpv J3Uga28nYSBtZSBkYSB+LS1+IFN1cHBvc2l0aW9uXzItMV4KCk1vdmUgdGhlIGlubmVyLW1vc3Qg e25ha3V9IGludG8gdGhlIHByb3Bvc2l0aW9uOgoKXm5ha3Ugc3Unb2kgZGEgcG9pIGtlJ2EgbWUg a28nYSB6byd1IG5ha3Uga28nYSBtZSBkYSB+LS1+IFN1cHBvc2l0aW9uXzItMl4KClJlcGxhY2Ug e3N1J29pIGRhIHBvaX0gd2l0aCB7aWplfSBhbmQgbW92ZSBpbnRvIHRoZSBwcm9wb3NpdGlvbjoK Cl5uYWt1IHN1J29pIGRhIHpvJ3UgZGEgbWUga28nYSBpamUgbmFrdSBrbydhIG1lIGRhIH4tLX4g U3VwcG9zaXRpb25fMi0zXgoKUmVwbGFjZSB7aWplIG5ha3V9IHdpdGgge2lqZW5haX06CgpebmFr dSBzdSdvaSBkYSB6byd1IGRhIG1lIGtvJ2EgaWplbmFpIGtvJ2EgbWUgZGEgfi0tfiBTdXBwb3Np dGlvbl8yLTReCgpCeSB0aGUgd2F5LCBmcm9tIGEgcHJvcGVydHkgb2Yge21lfSwKCl5rbydhIG1l IGtvJ2EgXgoKaXMgYWx3YXlzIHRydWUuIHtrbydhfSBpcyB0aGVyZWZvcmUgaW4gdGhlIGRvbWFp biBvZiB7ZGF9IG9mIENvbmRpdGlvbl8xLiBSZXBsYWNlIHtybydvaSBkYX0gb2YgQ29uZGl0aW9u XzEgd2l0aCB7a28nYX0sIGFuZCBpdCB0aHVzIGhvbGRzIHRydWU6Cgpec3Unb2kgZGUgem8ndSBk ZSBtZSBrbydhIGlqZW5haSBrbydhIG1lIGRlIH4tLX4gQ29uZGl0aW9uXzEtMV4KCkNvbmRpdGlv bl8xLTEgYW5kIFN1cHBvc2l0aW9uXzItNCBjb250cmFkaWN0IGVhY2ggb3RoZXIuCgpTdXBwb3Np dGlvbl8yIGlzIHRodXMgcmVqZWN0ZWQgYnkgcmVkdWN0aW8gYWQgYWJzdXJkdW0uCgpJdCBtZWFu cyB0aGF0IHtrbydhfSBpcyBub3QgYW4gaW5kaXZpZHVhbC4KCgoKTW9yZW92ZXIsIHdoZW4ge2tv J2F9IGlzIGV4cGFuZGVkIHRvIHtBIGpvJ3UgQn0sIGZyb20gYSBwcm9wZXJ0eSBvZiB7am8ndX0s IHRoZSBmb2xsb3dpbmcgcHJvcG9zaXRpb25zIGhvbGQgdHJ1ZToKCl5BIG1lIGtvJ2F+cHB+Cgp+ L3BwfkIgbWUga28nYV4KCkVhY2ggb2YgQSBhbmQgQiBpcyBpbiB0aGUgZG9tYWluIG9mIHtkYX0g b2YgQ29uZGl0aW9uXzEuIENvbnNpZGVyaW5nIHNpbWlsYXJseSB0byBDb25kaXRpb25fMS0xLCBu ZWl0aGVyIEEgbm9yIEIgaXMgYW4gaW5kaXZpZHVhbC4ge2tvJ2F9IGlzIHRodXMgbm90IGluZGl2 aWR1YWxzLgoKUS5FLkQuCgoKCldoZW4ge2tvJ2F9IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBu b3IgaW5kaXZpZHVhbHMsIHdoYXQgYWN0dWFsbHkgZG9lcyBpdCByZWZlciB0bz8KCldlIG1heSBp bnRlcnByZXQgdGhhdCBpdCByZWZlcnMgdG8gd2hhdCBpcyByZWZlcnJlZCB0byBieSBhIG1hdGVy aWFsIG5vdW4sIGZvciBleGFtcGxlLgoKQnkgYSBzcGVha2VyIHdobyB0aGlua3MgdGhhdCBhIGN1 dC1vZmYgcGllY2Ugb2YgYnJlYWQgaXMgYWxzbyBicmVhZCwgYnJlYWQgaXMgcmVnYXJkZWQgYXMg bmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscy4KCgoKW2h0dHBzOi8vZ3JvdXBz Lmdvb2dsZS5jb20vZC9tc2cvbG9qYmFuL1JBdEU3WWstZHF3L3BDR2VZQ0U5bDFRSnwoUmVsYXRl ZCBkaXNjdXNzaW9uOiBmb3IgdGhlIGNhc2Ugb2Yge2tvJ2F9PXtsbyBzaWRib30sIEkgd3JvdGUg dGhlIHNhbWUgcHJvb2Ygb25seSBpbiBMb2piYW4uKV0KCgoKISEhISMgQSBsb2dpY2FsIGF4aW9t IG9uIHBsdXJhbCBjb25zdGFudAoKVGhlIGZvbGxvd2luZyBsb2dpY2FsIGF4aW9tIGlzIGdpdmVu IHRvIGFuIGFyYml0cmFyeSBwbHVyYWwgY29uc3RhbnQgQzoKCl5nYW5haSBDIGJyb2RhIGdpIHN1 J29pIGRhIHpvJ3UgZGEgYnJvZGFeCgoKCkl0IG1lYW5zICJpbiBhIHVuaXZlcnNlIG9mIGRpc2Nv dXJzZSwgaWYgYSBwcm9wb3NpdGlvbiBpbiB3aGljaCBhIHBsdXJhbCBjb25zdGFudCBpcyB4MSBv ZiB7YnJvZGF9IGhvbGRzIHRydWUsIHRoZXJlIGlzIHJlZmVyZW50IHRoYXQgaXMgeDEgb2Yge2Jy b2RhfSIuCgoKClRoYXQgaXMgdG8gc2F5LCBhbiBhcmd1bWVudCB0aGF0IGhhcyBubyByZWZlcmVu dCBpbiBhIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgYnkgYSBw bHVyYWwgY29uc3RhbnQuIEFuIGFyZ3VtZW50IHRoYXQgaGFzIG5vIHJlZmVyZW50IGlzIGV4cHJl c3NlZCBpbiB0aGUgZm9ybSB7bmFrdSBzdSdvaSBkYX0sIHdoaWNoIGlzIGEgbmVnYXRpb24gb2Yg YSBib3VuZCBwbHVyYWwgdmFyaWFibGUge3N1J29pIGRhfSBtZWFuaW5nICJ0aGVyZSBpcy9hcmUi LgoKCgohISMgRGVmaW5pdGlvbiBvZiBnYWRyaQoKO19fbG9fXyAoTEUpOiBJdCBpcyBwcmVmaXhl ZCB0byBzZWxicmksIGFuZCBmb3JtcyBhIHBsdXJhbCBjb25zdGFudCB0aGF0IHJlZmVycyB0byB3 aGF0IHNhdGlzZmllcyB4MSwgdGhlIGZpcnN0IHBsYWNlIG9mIHRoZSBzZWxicmkuIElmIGEgcXVh bnRpZmllciBmb2xsb3dzIHtsb30sIHRoZSBxdWFudGlmaWVyIHJlcHJlc2VudHMgdGhlIHN1bSBv ZiBhbGwgdGhlIHJlZmVyZW50cyBvZiB0aGUgcGx1cmFsIGNvbnN0YW50LiBJbiB0aGUgY2FzZSB0 aGF0IGEgcXVhbnRpZmllciBmb2xsb3dzIHtsb30sIGEgc3VtdGkgbWF5IGZvbGxvdyBpdCwgYW5k IHRoZSBxdWFudGlmaWVyIHJlcHJlc2VudHMgdGhlIHN1bSBvZiBhbGwgdGhlIHJlZmVyZW50cyBv ZiB0aGUgc3VtdGkuCgp8fAoKbG8gW1tQQV0gYnJvZGEgKGt1KSB+aHN+fH5oc34gem8nZSBub2kg a2UnYSBicm9kYSBbW2dpJ2Ugemlsa2FuY3UgbGkgUEEgbG8gYnJvZGFdIChrdSdvKSB+aHN+fH5o c34gd2hhdCBpcy9hcmUgYnJvZGEgW1t0aGF0IGlzL2FyZSBQQSBpbiB0b3RhbF0KCmxvIFBBICcn c3VtdGknJyAoa3UpIH5oc358fmhzfiBsbyBQQSBtZSAnJ3N1bXRpJycgKG1lJ3UpIChrdSkgfmhz fnx+aHN+IHdoYXQgaXMvYXJlIGFtb25nICcnc3VtdGknJyB0aGF0IGlzL2FyZSBQQSBpbiB0b3Rh bAoKfHwKCntrdX0sIHtrdSdvfSwge21lJ3V9IGFyZSBlbGlkYWJsZSB0ZXJtaW5hdG9ycy4KCgoK UHV0dGluZyBhIHF1YW50aWZpZXIgYWZ0ZXIgZ2FkcmkgbGlrZSB7bG8gUEF9IGlzIGNhbGxlZCBf X2lubmVyIHF1YW50aWZpY2F0aW9uX18sIGFuZCB0aGUgcXVhbnRpZmllciBpcyBjYWxsZWQgX19p bm5lciBxdWFudGlmaWVyX18uIEFsdGhvdWdoIHRoZSB0ZXJtICJxdWFudGlmeSIgaXMgaW52b2x2 ZWQsIGl0IGlzIGRpZmZlcmVudCBmcm9tIHF1YW50aWZpY2F0aW9uIG9mIGxvZ2ljLiBJbm5lciBx dWFudGlmaWNhdGlvbiBkb2VzIG5vdCBpbnZvbHZlIGNvdW50aW5nIHJlZmVyZW50cyBvZiBjb25z dGFudHMgdGhhdCBjYW4gYmUgc3Vic3RpdHV0ZWQgZm9yIGEgdmFyaWFibGUsIGJ1dCBjb3VudGlu ZyBhbGwgdGhlIHJlZmVyZW50cyBvZiBvbmUgcGx1cmFsIGNvbnN0YW50LiBJbm5lciBxdWFudGlm aWNhdGlvbiB3aWxsIGJlIGRpc2N1c3NlZCBtb3JlIHByZWNpc2VseSBpbiAoKHwjSW5uZXJfcXVh bnRpZmljYXRpb258U2VjdGlvbiAzLjEpKS4KCgoKT24gdGhlIG90aGVyIGhhbmQsIHB1dHRpbmcg YSBxdWFudGlmaWVyIGJlZm9yZSBnYWRyaSwgb3IgYmVmb3JlIGEgc3VtdGkgbW9yZSBnZW5lcmFs bHksIGlzIGNhbGxlZCBfX291dGVyIHF1YW50aWZpY2F0aW9uX18sIGFuZCB0aGUgcXVhbnRpZmll ciBpcyBjYWxsZWQgX19vdXRlciBxdWFudGlmaWVyX18uIE91dGVyIHF1YW50aWZpY2F0aW9uIHdp bGwgYmUgZGlzY3Vzc2VkIG1vcmUgcHJlY2lzZWx5IGluICgofCNPdXRlcl9xdWFudGlmaWNhdGlv bnxTZWN0aW9uIDMuMikpLgoKCgpBbGwgc3VtdGkgZm9ybWVkIHdpdGggZ2FkcmkgYXJlIGRlZmlu ZWQgc28gdGhhdCB0aGV5IGFyZSBleHBhbmRlZCBpbnRvIGV4cHJlc3Npb25zIHdpdGgge3pvJ2V9 LiBUaGF0IGlzIHRvIHNheSwgdGhlIG1vc3QgZ2VuZXJhbCBwbHVyYWwgY29uc3RhbnQgaXMgcmVw cmVzZW50ZWQgYnkgYSBzaW5nbGUge3pvJ2V9LiBBIHN1bXRpIGZvcm1lZCB3aXRoIGdhZHJpIGlz IHt6bydlfSBhY2NvbXBhbmllZCBieSBhbiBleHBsYW5hdGlvbi4KCl4KCjtFeGFtcGxlOiBQZW9w bGUgZ2F0aGVyZWQsIGNvb2tlZCBhbmQgYXRlLgoKOzogbG8gcHJlbnUgY3Ugam1hamkgZ2knZSBq dWtwYSBnaSdlIGNpdGthXgoKCgpXaGlsZSB0aGUgcHJlZGljYXRlIHtqdWtwYX0gKGNvb2spIGNh biBiZSBpbnRlcnByZXRlZCBjb2xsZWN0aXZlbHkgYXMgd2VsbCBhcyBkaXN0cmlidXRpdmVseSwg dGhlIHBsdXJhbCBjb25zdGFudCB7bG8gcHJlbnV9IChwZW9wbGUpIGRvZXMgbm90IHNheSBleHBs aWNpdGx5IGlmIGl0IHNhdGlzZmllcyB7anVrcGF9IGNvbGxlY3RpdmVseSBvciBkaXN0cmlidXRp dmVseS4gSWYgd2Ugd2FudCB0byBzYXkgZXhwbGljaXRseSB0aGF0IHRoZXkgImNvbGxlY3RpdmVs eSIgY29va2VkLCB3ZSB1c2Uge2xvaX0sIHdoaWNoIHdpbGwgYmUgZGlzY3Vzc2VkIGxhdGVyLCBh bmQgc2F5IHtsb2kgcHJlbnV9LiBDb250cmFzdGl2ZWx5LCBpZiB3ZSB3YW50IHRvIHNheSBleHBs aWNpdGx5IHRoYXQgdGhleSAiZGlzdHJpYnV0aXZlbHkiIGNvb2tlZCwgd2Ugc2F5IHtybyBsbyBw cmVudX0gd2l0aCBhbiBvdXRlciBxdWFudGlmaWNhdGlvbiwgb3Ige2x1J2EgbG8gcHJlbnV9LiBI b3dldmVyLCBhIHN1bXRpIHRoYXQgc2F5cyBleHBsaWNpdGx5IGNvbGxlY3Rpdml0eSBvciBkaXN0 cmlidXRpdml0eSBpcyBub3QgbmVjZXNzYXJpbHkgYWJsZSB0byBiZSBzaGFyZWQgd2l0aCBvdGhl ciBwcmVkaWNhdGUgbGlrZSB7am1haml9IG9yIHtjaXRrYX0uCgoKCjtfX2xlX18gKExFKToge2xl IGJyb2RhfSByZWZlcnMgX19zcGVjaWZpY2FsbHlfXyB0byBhIHJlZmVyZW50IG9mIHtsbyBicm9k YX0sIGFuZCBfX2V4cGxpY2l0bHkgZXhwcmVzcyB0aGF0IHRoZSBzcGVha2VyIGhhcyB0aGUgcmVm ZXJlbnQgaW4gbWluZF9fLiBJdHMgbG9naWNhbCBwcm9wZXJ0eSBpcyB0aGUgc2FtZSBhcyB0aGF0 IG9mIHtsb30uCgp8fAoKbGUgW1tQQV0gYnJvZGEgKGt1KSB+aHN+fH5oc34gem8nZSBub2kgbWkg a2UnYSBkbyBza2ljdSBsbyBrYSBjZSd1IGJyb2RhIFtbZ2knZSB6aWxrYW5jdSBsaSBQQSBsbyBi cm9kYV0gKGt1J28pIAoKbGUgUEEgJydzdW10aScnIChrdSkgfmhzfnx+aHN+IGxlIFBBIG1lICcn c3VtdGknJyAobWUndSkgKGt1KQoKfHwKCgoKO19fbGFfXyAoTEEpOiBJdCBpcyBwcmVmaXhlZCB0 byBzZWxicmkgb3IgY21ldmxhLCBhbmQgZm9ybXMgYSBwbHVyYWwgY29uc3RhbnQgdGhhdCByZWZl cnMgdG8gd2hhdCBpcyBuYW1lZCB0aGUgc2VsYnJpIG9yIGNtZXZsYSBzdHJpbmcuIEl0cyBsb2dp Y2FsIHByb3BlcnR5IGlzIHRoZSBzYW1lIGFzIHRoYXQgb2Yge2xvfS4KCnx8CgpsYSBbW1BBXSBi cm9kYSAoa3UpIH5oc358fmhzfiB6bydlIG5vaSBsdSBbW1BBXSBicm9kYSBsaSd1IGNtZW5lIGtl J2EgbWkgKGt1J28pIAoKbGEgUEEgJydzdW10aScnIChrdSkgfmhzfnx+aHN+IHpvJ2Ugbm9pIGx1 IFBBIHN1bXRpIGxpJ3UgY21lbmUga2UnYSBtaSAoa3UnbykgCgp8fAoKCgo7X19sb2lfXyAoTEUp LCBfX2xlaV9fIChMRSksIF9fbGFpX18gKExBKToge2xvaS9sZWkvbGFpIGJyb2RhfSByZWZlcnMg dG8gYSByZWZlcmVudCBvZiB7bG8vbGUvbGEgYnJvZGF9LCBhbmQgX19leHBsaWNpdGx5IGV4cHJl c3MgdGhhdCB0aGUgcmVmZXJlbnQgc2F0aXNmaWVzIGEgcHJlZGljYXRlIGNvbGxlY3RpdmVseV9f LgoKfHwKCmxvaSBbW1BBXSBicm9kYSB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbG8gW1tQQV0gYnJv ZGEKCmxlaSBbW1BBXSBicm9kYSB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbGUgW1tQQV0gYnJvZGEK CmxhaSBbW1BBXSBicm9kYSB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbGEgW1tQQV0gYnJvZGEKCmxv aSBQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxvIFBBICcnc3VtdGknJwoKbGVp IFBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbGUgUEEgJydzdW10aScnCgpsYWkg UEEgJydzdW10aScnIH5oc358fmhzfiBsbyBndW5tYSBiZSBsYSBQQSAnJ3N1bXRpJycKCnx8CgpC ZWNhdXNlIHtsb2kvbGVpL2xhaX0gaXMgdGh1cyBkZWZpbmVkIGJ5IGFub3RoZXIgcGx1cmFsIGNv bnN0YW50IHtsbyBndW5tYSBiZSBsby9sZS9sYX0sIGl0IGRvZXMgbm90IHJlZmVyIGRpcmVjdGx5 IHRvIHJlZmVyZW50IG9mIHtsbyBicm9kYX0gb3Ige2xvIFBBICcnc3VtdGknJ30sIGJ1dCByZWZl cmVudCBvZiB7bG8gZ3VubWF9LiBUaGVyZWZvcmUsIGV2ZW4gaWYge2xvIGJyb2RhfSBvciB7bG8g UEEgJydzdW10aScnfSBpcyBub3QgYW4gaW5kaXZpZHVhbCwge2xvaSBicm9kYX0gb3Ige2xvaSBQ QSAnJ3N1bXRpJyd9IGNhbiBiZSBhbiBpbmRpdmlkdWFsIHtsbyBndW5tYX0gdW5kZXIgdGhlIGZv bGxvd2luZyBjb25kaXRpb246Cgpecm8nb2kgZGEgcG9pIGtlJ2EgbWUgbG8gZ3VubWEgYmUgbG8v bGUvbGEgW1tQQV0gYnJvZGEgem8ndSBsbyBndW5tYSBiZSBsby9sZS9sYSBbW1BBXSBicm9kYSBj dSBtZSBkYX5wcH4KCn4vcHB+cm8nb2kgZGEgcG9pIGtlJ2EgbWUgbG8gZ3VubWEgYmUgbG8vbGUv bGEgUEEgJydzdW10aScnIHpvJ3UgbG8gZ3VubWEgYmUgbG8vbGUvbGEgUEEgJydzdW10aScnIGN1 IG1lIGRhXgoKCgo7X19sbydpX18gKExFKSwgX19sZSdpX18gKExFKSwgX19sYSdpX18gKExBKTog e2xvJ2kvbGUnaS9sYSdpIGJyb2RhfSByZWZlcnMgdG8gYSBzZXQgb3Igc2V0cyBvZiBpbmRpdmlk dWFsKHMpIHRoYXQgY29uc3RpdHV0ZShzKSBhIHBsdXJhbCBjb25zdGFudCB7bG8vbGUvbGEgYnJv ZGF9LiBCZWNhdXNlIHtsbydpL2xlJ2kvbGEnaX0gZm9ybXMgYSBzZXQgb3Igc2V0cywgaXQgaXMg ZGVmaW5lZCBvbmx5IHdoZW4gaXRzL3RoZWlyIG1lbWJlcihzKSB7bG8vbGUvbGEgYnJvZGF9IGlz L2FyZSBhbiBpbmRpdmlkdWFsIG9yIGluZGl2aWR1YWxzLiBBIHNldCBpdHNlbGYgaXMgYWx3YXlz IGFuIGluZGl2aWR1YWwsIGFuZCBzZXRzIGFyZSBhbHdheXMgaW5kaXZpZHVhbHM6IHRoZXJlIGlz IG5vIHNldCB0aGF0IGlzIG5vdCBhbiBpbmRpdmlkdWFsLgoKfHwKCmxvJ2kgW1tQQV0gYnJvZGEg fmhzfnx+aHN+IGxvIHNlbGNtaSBiZSBsbyBbW1BBXSBicm9kYQoKbGUnaSBbW1BBXSBicm9kYSB+ aHN+fH5oc34gbG8gc2VsY21pIGJlIGxlIFtbUEFdIGJyb2RhCgpsYSdpIFtbUEFdIGJyb2RhIH5o c358fmhzfiBsbyBzZWxjbWkgYmUgbGEgW1tQQV0gYnJvZGEKCmxvJ2kgUEEgJydzdW10aScnIH5o c358fmhzfiBsbyBzZWxjbWkgYmUgbG8gUEEgJydzdW10aScnCgpsZSdpIFBBICcnc3VtdGknJyB+ aHN+fH5oc34gbG8gc2VsY21pIGJlIGxlIFBBICcnc3VtdGknJwoKbGEnaSBQQSAnJ3N1bXRpJycg fmhzfnx+aHN+IGxvIHNlbGNtaSBiZSBsYSBQQSAnJ3N1bXRpJycKCnx8CgpCZWNhdXNlIHtsbydp L2xlJ2kvbGEnaX0gaXMgZGVmaW5lZCBieSBhbm90aGVyIHBsdXJhbCBjb25zdGFudCB7bG8gc2Vs Y21pIGJlIGxvL2xlL2xhfSwgaXQgZG9lcyBub3QgcmVmZXIgZGlyZWN0bHkgdG8gcmVmZXJlbnQg b2Yge2xvIGJyb2RhfSBvciB7bG8gUEEgJydzdW10aScnfSwgYnV0IHJlZmVyZW50IG9mIHtsbyBz ZWxjbWl9LgoKCgpBbiBlbXB0eSBzZXQgaXMge2xvIHNlbGNtaSBiZSBubyBkYX0sIGFuZCBhbiBl eHByZXNzaW9uIHtsbyBubyBicm9kYX0gaXMgb2ZmaWNpYWxseSBtZWFuaW5nbGVzcyAoc2VlICgo fCNJbm5lcl9xdWFudGlmaWNhdGlvbnxTZWN0aW9uIDMuMSkpLiBUaGlzIGltcGxpZXMgdGhhdCBh biBlbXB0eSBzZXQgY2Fubm90IGJlIGV4cHJlc3NlZCB3aXRoIHtsbydpL2xlJ2kvbGEnaX0uIAoK CgohISEjIElubmVyIHF1YW50aWZpY2F0aW9uCgooKEJQRksgU2VjdGlvbjogZ2Fkcml8QlBGSyBk ZWZpbmVzIGlubmVyIHF1YW50aWZpY2F0aW9uKSkgYXMgZm9sbG93czoKCnx8CgpsbyBbW1BBXSBi cm9kYSB+aHN+fH5oc34gem8nZSBub2kga2UnYSBicm9kYSBbW2dpJ2Ugemlsa2FuY3UgbGkgUEEg bG8gYnJvZGFdCgpsbyBQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIFBBIG1lICcnc3VtdGknJwoK fHwKClRoYXQgaXMgdG8gc2F5LCBpbm5lciBxdWFudGlmaWVyIG1lYW5zIG51bWJlciBvZiByZWZl cmVudCBjb3VudGVkIGJ5IHVuaXQge2xvIGJyb2RhfSBvciB7bG8gbWUgJydzdW10aScnfSB0aGF0 IGlzIHgzIG9mIHt6aWxrYW5jdX0uIAoKSG93ZXZlciwgaW5zdGVhZCBvZiB7emlsa2FuY3V9LCB0 aGUgbWVhbmluZyBvZiB3aGljaCBpcyB0b28gdmFndWUgZm9yIGRlZmluaXRpb24sIFtodHRwczov L2dyb3Vwcy5nb29nbGUuY29tL2QvbXNnL2xvamJhbi9SQXRFN1lrLWRxdy94aTJoNkExN0N1c0p8 YW4gaWRlYSBvZiByZWRlZmluaXRpb24gdXNpbmcge21laX0gd2FzIHN1Z2dlc3RlZF0gYXMgZm9s bG93czoKCgoKO0F4aW9tIDE6IHJvJ29pIGRhIHN1J28gcGEgbWVpCgo7RGVmaW5pdGlvbjp8fAoK KEQxKSBrbydhIHN1J28gTiBtZWkgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiBzdSdvaSBkYSBw b2kgbWUga28nYSBrdSdvIHN1J29pIGRlIHBvaSBtZSBrbydhIHpvJ3UgZ2UgZGEgc3UnbyBOLTEg bWVpIGdpbmFpIGRlIG1lIGRhCgooRDIpIGtvJ2EgTiBtZWkgfmhzfnx+aHN+ID1jYSdlIH5oc358 fmhzfiBrbydhIHN1J28gTiBtZWkgZ2knZSBuYWkgc3UnbyBOKzEgbWVpIAoKKEQzKSBsbyBQQSBi cm9kYSB+aHN+fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IHpvJ2Ugbm9pIGtlJ2EgUEEgbWVpIGdpJ2Ug YnJvZGEKCnx8CgoKClVzaW5nIHRoZXNlIGRlZmluaXRpb25zIGFuZCBBeGlvbSAxLCB0aGUgZm9s bG93aW5nIHRoZW9yZW0gd2lsbCBiZSBwcm92ZWQuCgpeSWYgYW5kIG9ubHkgaWYge2tvJ2EgcGEg bWVpfSwge2tvJ2F9IGlzIGFuIGluZGl2aWR1YWwuXgoKCgo7UHJvb2Y6IChEMikgaXMKCnx8Cgpr bydhIE4gbWVpCXw9fCBrbydhIHN1J28gTiBtZWkgZ2knZSBuYWkgc3UnbyBOKzEgbWVpIAoKCQl8 PXwgZ2Uga28nYSBzdSdvIE4gbWVpIC0tLS0tKFMxKQoKCQl8IHwgZ2kgbmFrdSBrbydhIHN1J28g TisxIG1laSAtLS0tLShTMikKCnx8CgpBcHBseWluZyAoRDEpIHRvIChTMiksIAoKfHwKCihTMikJ CXw9fCBuYWt1IHN1J29pIGRhIHBvaSBtZSBrbydhIGt1J28gc3Unb2kgZGUgcG9pIG1lIGtvJ2Eg em8ndSAKCgkJfCB8IGdlIGRhIHN1J28gTiBtZWkgCgoJCXwgfCBnaW5haSBkZSBtZSBkYQoKCQl8 PXwgcm8nb2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBybydvaSBkZSBwb2kgbWUga28nYSB6byd1CgoJ CXwgfCBuYWt1IGdlIGRhIHN1J28gTiBtZWkgCgoJCXwgfCBnaSBuYWt1IGRlIG1lIGRhCgoJCXw9 fCBybydvaSBkYSBwb2kgbWUga28nYSBrdSdvIHJvJ29pIGRlIHBvaSBtZSBrbydhIHpvJ3UKCgkJ fCB8IGdhbmFpIGRhIHN1J28gTiBtZWkgCgoJCXwgfCBnaSBkZSBtZSBkYQoKfHwKCihEMikgaXMg dGhlcmVmb3JlCgp8fAoKa28nYSBOIG1laQl8PXwgZ2UgKFMxKSBnaSAoUzIpIAoKCQl8PXwgZ2Ug a28nYSBzdSdvIE4gbWVpCgoJCXwgfCBnaSBybydvaSBkYSBwb2kgbWUga28nYSBrdSdvIHJvJ29p IGRlIHBvaSBtZSBrbydhIHpvJ3UKCgkJfCB8IGdhbmFpIGRhIHN1J28gTiBtZWkgCgoJCXwgfCBn aSBkZSBtZSBkYQoKfHwKCldoZW4gTj0xLAoKfHwKCmtvJ2EgcGEgbWVpCXw9fCBnZSBrbydhIHN1 J28gcGEgbWVpCgoJCXwgfCBnaSBybydvaSBkYSBwb2kgbWUga28nYSBrdSdvIHJvJ29pIGRlIHBv aSBtZSBrbydhIHpvJ3UKCgkJfCB8IGdhbmFpIGRhIHN1J28gcGEgbWVpIAoKCQl8IHwgZ2kgZGUg bWUgZGEgCgp8fAoKQmVjYXVzZSBvZiBBeGlvbSAxLCBpdCBpbXBsaWVzCgp8fAoKa28nYSBwYSBt ZWkJfD18IHJvJ29pIGRhIHBvaSBtZSBrbydhIGt1J28gcm8nb2kgZGUgcG9pIG1lIGtvJ2Egem8n dSBkZSBtZSBkYQoKfHwKClRoZSByaWdodCBzaWRlIGltcGxpZXMge3JvJ29pIGRhIHBvaSBrZSdh IG1lIGtvJ2Egem8ndSBrbydhIG1lIGRhfSwgd2hpY2ggaXMgdGhlIGNvbmRpdGlvbiBmb3IgIntr bydhfSBpcyBhbiBpbmRpdmlkdWFsIi4gSXRzIGNvbnZlcnNlIGlzIGFsc28gdHJ1ZS4KClEuRS5E LgoKCgpUaGUgZGlhZ3JhbSBiZWxvdyBzaG93cyBhIHByb2NlZHVyZSBvZiBjb3VudGluZyBzb21l dGhpbmcgdXAgdG8gZm91ciByZXByZXNlbnRlZCB3aXRoIGEgZGlyZWN0ZWQgZ3JhcGguIEluIHRo aXMgZGlhZ3JhbSwgbG9vcHMgc3VjaCBhcyB7WCBtZSBYfSBhcmUgb21pdHRlZCBmb3Igc2ltcGxp Y2l0eSwgdGhvdWdoIHRoZXkgZXhpc3QuIENvdW50aW5nIHVwIGNvcnJlc3BvbmRzIHRvIHNlbGVj dGluZyBhIHN1YmdyYXBoIG9mIGEgZGlyZWN0ZWQgZ3JhcGggZm9ybWVkIHdpdGgge21lfTogdGhl IHN1YmdyYXBoIHRoYXQgaGFzIGEgZm9ybSBvZiB0cmVlIHRoYXQgaW5jbHVkZXMgYWxsIGxlYXZl cyAoY29uc3RhbnRzIGVhY2ggb2Ygd2hpY2ggaXMgYW4gaW5kaXZpZHVhbCkgdG8gYmUgY291bnRl ZCwgZm9yIGV4YW1wbGUgdGhlIHBhcnQgb2YgbWFnZW50YSBjb2xvciBpbiB0aGUgZGlhZ3JhbS4K CgoKe2ltZyBmaWxlSWQ9IjEwIiB0aHVtYj0ieSIgcmVsPSJib3hbZ10ifQoKCgohISEhIyBSZXBl YXRpbmcgaW5uZXIgcXVhbnRpZmljYXRpb24KCkJlY2F1c2Uge2xvIFBBICcnc3VtdGknJ30gaXMg ZGVmaW5lZCwgd2UgY2FuIHJlcGVhdCBpbm5lciBxdWFudGlmaWNhdGlvbiB0byBmb3JtIGFuIGFy Z3VtZW50LgoKXgoKO0V4YW1wbGU6IGxvIG11bG5vIGthcmR5Z3JpIGN1IGd1bm1hIGxvIHZvIGxv aSBwYWNpIGthcmRhIH5oc34gJydBIGZ1bGwgZGVjayBjb25zaXN0cyBvZiBmb3VyIGdyb3VwcyBv ZiB0aGlydGVlbiBjYXJkcy4nJwoKOzogc3UnbyBkYSB6byd1IGxvaSByZSBsbydpIHJvIG1va2Nh IG5vaSBzZXBsaSBweSBub2kgbW9rY2Ega3UnbyBkYSBjdSByZWxjdWt0YWkgfmhzfiAnJ1R3byBz ZXRzIG9mIHBvaW50cyB0aGF0IGFyZSBlcXVpZGlzdGFudCBmcm9tIGEgcG9pbnQgUCBpcyBhIGRv dWJsZSBjaXJjbGUuJydeCgoKCiEhISEjIFByb2JsZW1zIG9uIGlubmVyIHF1YW50aWZpY2F0aW9u CgohISEhISMgQ2Fubm90IHNheSB6ZXJvCgoKCkJlY2F1c2UgYW4gYXJndW1lbnQgZm9ybWVkIGJ5 IGdhZHJpIGlzIGEgcGx1cmFsIGNvbnN0YW50LCB7bG8gYnJvZGF9IGltcGxpZXMge3N1J29pIGRh IHpvJ3UgZGEgYnJvZGF9IGFjY29yZGluZyB0byB0aGUgbG9naWNhbCBheGlvbSBvbiBwbHVyYWwg Y29uc3RhbnQgc2hvd24gaW4gKCh8I0FfbG9naWNhbF9heGlvbV9vbl9wbHVyYWxfY29uc3RhbnR8 U2VjdGlvbiAyLjIuNikpLiBUaGF0IGlzIHRvIHNheSwgdGhlIGV4cHJlc3Npb24ge2xvIG5vIGJy b2RhfSBpbXBsaWVzICJ0aGVyZSBhcmUgd2hhdCBhcmUgYnJvZGEsIHdoaWNoIGFyZSBjb3VudGVk IDAiLCB3aGljaCBzZWVtcyBtZWFuaW5nbGVzcy4KCgoKVGhpcyBtZWFucyB0aGF0IG9mZmljaWFs IExvamJhbiBjYW5ub3QgZXhwcmVzcyBuZWdhdGlvbiBvZiBleGlzdGVuY2Ugb2YgcGx1cmFsIHZh cmlhYmxlIHtuYWt1IHN1J29pIGRhfSwgd2hpY2ggaXMgbmV2ZXJ0aGVsZXNzIG5lY2Vzc2FyeSwg Zm9yIGV4YW1wbGUgaW4gdGhlIGZvbGxvd2luZyBzaXR1YXRpb246CgoKCl4gbG8geG8gcHJlbnUg Y3Ugam1hamkgZ2knZSBqdWtwYSBnaSdlIGNpdGthIH5oc35+LS1+IG5vfnBwfgoKfi9wcH4nJyJI b3cgbWFueSBwZW9wbGUgZ2F0aGVyZWQsIGNvb2tlZCBhbmQgYXRlPyIgInplcm8uIicnXgoKCgpU aGlzIHJlc3BvbnNlIGlzIGFuIGFiYnJldmlhdGVkIGZvcm0gb2Yge2xvIG5vIHByZW51IGN1IGpt YWppIGdpJ2UganVrcGEgZ2knZSBjaXRrYX0uCgoKClRoaXMgcHJvcG9zaXRpb24gbWVhbnMgdGhh dCB7bG8gbm8gcHJlbnV9IHNhdGlzZmllcyBzZWxicmkge2ptYWppfSBjb2xsZWN0aXZlbHkgYW5k IChqZSkgbm9uLWRpc3RyaWJ1dGl2ZWx5LCB7anVrcGF9IGNvbGxlY3RpdmVseSBvciAoamEpIGRp c3RyaWJ1dGl2ZWx5LCB7Y2l0a2F9IG5vbi1jb2xsZWN0aXZlbHkgYW5kIChqZSkgZGlzdHJpYnV0 aXZlbHkuIEJlY2F1c2UgaXQgaW5jbHVkZXMgc2VsYnJpIHtqbWFqaX0gdG8gYmUgc2F0aXNmaWVk IG5vbi1kaXN0cmlidXRpdmVseSwgdGhlIHN1bXRpIGNhbm5vdCBiZSByZXBsYWNlZCBieSBuZWdh dGlvbiBvZiBleGlzdGVuY2Ugb2YgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUge25ha3Ugc3UnbyBk YX09e25vIGRhfS4gTW9yZW92ZXIsIGJlY2F1c2UgaXQgaW5jbHVkZXMgc2VsYnJpIHtjaXRrYX0g dG8gYmUgc2F0aXNmaWVkIG5vbi1jb2xsZWN0aXZlbHksIHtsb30gb2YgdGhlIHN1bXRpIGNhbm5v dCBiZSByZXBsYWNlZCBieSB7bG9pfT17bG8gZ3VubWEgYmUgbG99LgoKCgpGb3IgbWFraW5nIHN1 Y2ggYSBwcm9wb3NpdGlvbiBtZWFuaW5nZnVsLCBpdCBpcyBlc3NlbnRpYWwgdG8gZ2l2ZSBhbiBl eHByZXNzaW9uIHtsbyBubyBicm9kYX0gYSBtZWFuaW5nIG9mIG5lZ2F0aW9uIG9mIGV4aXN0ZW5j ZSBvZiBwbHVyYWwgdmFyaWFibGUuCgpGb3IgdGhpcyBwdXJwb3NlLCBJIHN1Z2dlc3QgdGhlIGZv bGxvd2luZyBkZWZpbml0aW9uIHZhbGlkIGluIHRoZSBjYXNlIHRoYXQgUEE9MCBmb3Ige2xvIFBB IGJyb2RhfS4KCjtVbm9mZmljaWFsIGRlZmluaXRpb24gb2Yge2xvIG5vIGJyb2RhfTp8fAoKbG8g bm8gYnJvZGEgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiBuYWt1IHN1J29pIGRhIHBvaSBrZSdh IGJyb2RhCgp8fAoKCgrvvIhJZiBpdCB3ZXJlIGRlZmluZWQgYXMge25ha3UgbG8gYnJvZGF9LCB0 aGUgbmVnYXRpb24gd291bGQgaGF2ZSBzcGFubmVkIHRoZSB3aG9sZSBwcm9wb3NpdGlvbiwgYW5k IGl0IHdvdWxkIG5vdCBoYXZlIGltcGxpZWQgcXVhbnRpZmljYXRpb24uIEkgYWJhbmRvbmVkIHRo ZXJlZm9yZSBzdWNoIGEgZGVmaW5pdGlvbi4pCgoKCiEhISEhIyBDYW5ub3QgcXVhbnRpZnkgbWF0 ZXJpYWwgbm91biBvciBzb21ldGhpbmcKCkF4aW9tIDEgb2YgKCh8I0lubmVyX3F1YW50aWZpY2F0 aW9ufFNlY3Rpb24gMy4xKSkgZXhjbHVkZXMgc3VtdGkgdGhhdCBpcyBuZWl0aGVyIGFuIGluZGl2 aWR1YWwgbm9yIGluZGl2aWR1YWxzIGZyb20gZXhwcmVzc2lvbnMgeyhzdSdvKSBOIG1laX0gYW5k IHtsbyBOIGJyb2RhfS4KCgoKQ2FuIHdlIHVzZSB7cGlQQX0gZm9yIHN1bXRpIHRoYXQgaXMgbmVp dGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscywgdGhlbj8gTm8uCgooKEJQRksgU2Vj dGlvbjogZ2Fkcml8QWN0dWFsbHksIHBpUEEgaXMgZGVmaW5lZCBvbmx5IGZvciBvdXRlciBxdWFu dGlmaWNhdGlvbi4pKQoKfHwKCnBpUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBwaVBBIHNpJ2Ug YmUgcGEgbWUgJydzdW10aScnCgp8fAoKQXMgd2UgY2FuIHNlZSBpbiB0aGUgZGVmaW5pdGlvbiwg dGhlIGJvZHkgb2Ygb3V0ZXIgcXVhbnRpZmljYXRpb24gYnkge3BpUEF9IGlzIHBsdXJhbCBjb25z dGFudCB7bG8gcGlQQSBzaSdlfSwgd2hpY2ggaXMgbm90IGEgYm91bmQgc2luZ3VsYXIgdmFyaWFi bGUuIEhvd2V2ZXIsIHgyIG9mIHtwaVBBIHNpJ2V9IGlzIHtwYSBtZSAnJ3N1bXRpJyd9LCB0byB3 aGljaCAoKEJQRksgU2VjdGlvbjogZ2Fkcml8dGhlIGRlZmluaXRpb24gb2YgUEEgYnJvZGEpKSBp cyBhcHBsaWVkOgoKfHwKClBBIGJyb2RhIH5oc358fmhzfiBQQSBkYSBwb2kgYnJvZGEgCgp8fAoK QXMgYSByZXN1bHQsIHtwaVBBICcnc3VtdGknJ30gaXMgZGVmaW5lZCBvbmx5IHdoZW4gdGhlcmUg aXMgYW4gaW5kaXZpZHVhbCB0aGF0IHNhdGlzZmllcyB4MSBvZiB7bWUgJydzdW10aScnfS4gVGhh dCBpcyB0byBzYXksIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFs cyBpcyBleGNsdWRlZCBhbHNvIGZyb20gYW4gZXhwcmVzc2lvbiBvZiBvdXRlciBxdWFudGlmaWNh dGlvbiB3aXRoIHtwaVBBfS4KCgoKV2hhdCB3b3VsZCBiZSBpZiB7cGlQQX0gd2VyZSBkZWZpbmVk IGFsc28gZm9yIGlubmVyIHF1YW50aWZpY2F0aW9uPwoKSW4gdGhhdCBjYXNlLCB0aGUgZm9sbG93 aW5nIGRlZmluaXRpb24gd291bGQgYmUgZGVzaXJhYmxlIHRvIGNvbmZvcm0gdGhlIGRlZmluaXRp b24gb2Yge3BpUEF9IG9mIG91dGVyIHF1YW50aWZpY2F0aW9uOgoKOyBVbm9mZmljaWFsIGRlZmlu aXRpb24gb2Yge3BpUEF9IG9mIGlubmVyIHF1YW50aWZpY2F0aW9uOnx8CgpsbyBwaVBBIGJyb2Rh IH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34gem8nZSBub2kga2UnYSBwaVBBIHNpJ2UgYmUgbG8g cGEgYnJvZGEKCnx8CgpUaGlzIGRlZmluaXRpb24gb2Yge3BpUEF9IG9mIGlubmVyIHF1YW50aWZp Y2F0aW9uIHN0aWxsIGV4Y2x1ZGVzIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBp bmRpdmlkdWFscyB1bmxlc3Mge2xvIHBhIGJyb2RhfSBpcyBkZWZpbmVkIGluIGFub3RoZXIgd2F5 IHNvIHRoYXQgaXQgY2FuIGJlIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRp dmlkdWFscy4KCgoKV2h5IGRvbid0IHdlIHVzZSB7UEEgc2knZX0gdG8gZXhwcmVzcyBxdWFudGlm aWNhdGlvbiBvZiB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHM/ IAoKSXQgaXMgcG9zc2libGUsIGJ1dCAoKEJQRksgU2VjdGlvbjogTnVtZXJpYyBzZWxicml8QlBG SydzIGN1cnJlbnQgZGVmaW5pdGlvbiBvZiB7c2knZX0pKSBkZXBlbmRzIG9uIHtwYWdidX06Cgp8 fAoKeDEgbnVtYmVyIHNpJ2UgeDIgfmhzfnx+aHN+IHgxIHBhZ2J1IHgyIGdpJ2Uga2xhbmkgbGkg bnVtYmVyIGxvIHNlIGdyYWR1IGJlIHgyCgp8fAoKSWYgd2UgaW50ZXJwcmV0IHtwYWdidX0gc28g dGhhdCB4MSBpcyBub3QgbGFyZ2VyIHRoYW4geDIgKGFuZCB0aGlzIGlzIG9yZGluYXJ5IGludGVy cHJldGF0aW9uKSwgW2h0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZC9tc2cvbG9qYmFuL1JBdEU3 WWstZHF3L25VYlppd21CMk0wSnx7c2knZX0gaXMgdmVyeSBpbmNvbnZlbmllbnQgYmVjYXVzZSB0 aGUgdW5pdCBzaG91bGQgYmUgY2hhbmdlZCBldmVyeSB0aW1lIGNvdW50aW5nIHVwLl0gSWYge3Np J2V9IHdlcmUgZGVmaW5lZCBzbyB0aGF0IFBBIG9mIHtQQSBzaSdlfSBjb3VsZCBiZSBsYXJnZXIg dGhhbiAxLCB7c2knZX0gd291bGQgaGF2ZSBiZWVuIHByYWdtYXRpYyBmb3IgcXVhbnRpZmljYXRp b24gb2Ygd2hhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgpC ZXNpZGVzIHRob3NlIGNvbnNpZGVyYXRpb25zLCBpZiB3ZSBhYmFuZG9uIEF4aW9tIDEgb2YgKCh8 I0lubmVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4xKSksIERlZmluaXRpb25zIChEMSkgKEQy KSAoRDMpIGNhbiBiZSBhcHBsaWVkIHRvIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5v ciBpbmRpdmlkdWFscy4KCkluIHRoaXMgY2FzZSwgYSBzcGVha2VyIHNob3VsZCBzZWxlY3Qgc29t ZSBwbHVyYWwgY29uc3RhbnRzIHtrbydhLCBrbydlLCAuLi59LCBhbmQgZGVjaWRlIHRoYXQge1tb a28nYS9rbydlLy4uLl0gc3UnbyBwYSBtZWl9OyB0aGUgc2VsZWN0aW9uIG11c3QgYmUgZG9uZSBh dHRlbnRpdmVseSBzbyB0aGF0IHJlZmVyZW50cyBvZiBwbHVyYWwgY29uc3RhbnRzIHRoYXQgYXJl IHtwYSBtZWl9IGRvIG5vdCBvdmVybGFwIHdpdGggZWFjaCBvdGhlci4KClRob3NlIHByZXBhcmF0 aW9ucyBvZiB7a28nYSwga28nZSwgLi4ufSBhbmQgKEQyKSBpbXBseSBvbmx5Cgp8fAoKZ2FuYWkg W1trbydhL2tvJ2UvLi4uXSBwYSBtZWkgCgpnaSBybydvaSBkZSBwb2kgbWUgW1trbydhL2tvJ2Uv Li4uXSB6byd1IGRlIG1lIFtba28nYS9rbydlLy4uLl0KCnx8CgpVbmRlciB0aGVzZSBjb25kaXRp b25zLCB0aGVyZSBpcyBubyBuZWVkIHRoYXQgd2hhdCBpcyB4MSBvZiB7cGEgbWVpfSBpcyBhbiBp bmRpdmlkdWFsLgoKCgpXaGVuIHdlIHVzZSBEZWZpbml0aW9ucyAoRDEpIChEMikgKEQzKSB3aXRo b3V0IHVzaW5nIEF4aW9tIDEgb2YgKCh8I0lubmVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4x KSksIGEgY29uZGl0aW9uIHtnaSdlIHN1J28gcGEgbWVpfSBtdXN0IGJlIGFkZGVkIHRvIHtkZX0g b2YgKEQxKe+8iFdoZW4gQXhpb20gMSBpcyB1c2VkLCByZWZlcmVudHMgaW4gdGhlIGRvbWFpbiBv ZiB2YXJpYWJsZSB7ZGV9IHNhdGlzZmllcyB0aGlzIGNvbmRpdGlvbiBhdXRvbWF0aWNhbGx5KS4g Cgo7VW5vZmZpY2lhbCBkZWZpbml0aW9ucyB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgQXhpb20g MSBpcyBhYmFuZG9uZWQ6fHwKCihEMScpIGtvJ2Egc3UnbyBOIG1laSB+aHN+fH5oc34gPWNhJ2Ug fmhzfnx+aHN+IHN1J29pIGRhIHBvaSBtZSBrbydhIGt1J28gc3Unb2kgZGUgcG9pIG1lIGtvJ2Eg Z2knZSBzdSdvIHBhIG1laSB6byd1IGdlIGRhIHN1J28gTi0xIG1laSBnaW5haSBkZSBtZSBkYQoK KEQyKSBrbydhIE4gbWVpIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34ga28nYSBzdSdvIE4gbWVp IGdpJ2UgbmFpIHN1J28gTisxIG1laSAKCihEMykgbG8gUEEgYnJvZGEgfmhzfnx+aHN+ID1jYSdl IH5oc358fmhzfiB6bydlIG5vaSBrZSdhIFBBIG1laSBnaSdlIGJyb2RhCgp8fAoKVXNpbmcgdGhl c2UgZGVmaW5pdGlvbnMsIGlubmVyIHF1YW50aWZpY2F0aW9uIG9mIHdoYXQgaXMgbmVpdGhlciBh biBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscyBiZWNvbWVzIHBvc3NpYmxlLiBNb3Jlb3Zlciwg IlVub2ZmaWNpYWwgZGVmaW5pdGlvbiBvZiB7cGlQQX0gb2YgaW5uZXIgcXVhbnRpZmljYXRpb24i IGRpc2N1c3NlZCBhYm92ZSBiZWNvbWVzIGFibGUgdG8gYmUgYXBwbGllZCB0byB3aGF0IGlzIG5l aXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMuCgoKClRoZSBkaWFncmFtIGJlbG93 IHNob3dzIGEgcHJvY2VkdXJlIG9mIGNvdW50aW5nIHVwIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRp dmlkdWFsIG5vciBpbmRpdmlkdWFscyByZXByZXNlbnRlZCB3aXRoIGEgZGlyZWN0ZWQgZ3JhcGgu IEluIHRoaXMgZGlhZ3JhbSwgbG9vcHMgc3VjaCBhcyB7WCBtZSBYfSBhcmUgb21pdHRlZCBmb3Ig c2ltcGxpY2l0eSwgdGhvdWdoIHRoZXkgZXhpc3QuIEFtb25nIGluZmluaXRlIG51bWJlciBvZiB2 ZXJ0aWNlcyAocGx1cmFsIGNvbnN0YW50cyksIHRoZSB2ZXJ0aWNlcyB0aGF0IGEgc3BlYWtlciBz ZWxlY3RlZCBhcyB7c3UnbyBwYSBtZWl9IGFyZSBjb2xvcmVkIHBpbmsuIENvdW50aW5nIHVwIGNv cnJlc3BvbmRzIHRvIHNlbGVjdGluZyBhIHRyZWUgdGhhdCBpcyBhIHN1YmdyYXBoIG9mIGEgZGly ZWN0ZWQgZ3JhcGggZm9ybWVkIHdpdGgge21lfSwgZm9yIGV4YW1wbGUgdGhlIHBhcnQgb2YgYmx1 ZSBjb2xvciBpbiB0aGUgZGlhZ3JhbS4KCgoKe2ltZyBmaWxlSWQ9IjkiIHRodW1iPSJ5IiByZWw9 ImJveFtnXSJ9CgoKCiEhISMgT3V0ZXIgcXVhbnRpZmljYXRpb24KCigoQlBGSyBTZWN0aW9uOiBn YWRyaXxCUEZLIGRlZmluZXMgb3V0ZXIgcXVhbnRpZmljYXRpb24pKSBhcyBmb2xsb3dzOgoKfHwK ClBBICcnc3VtdGknJyB+aHN+fH5oc34gUEEgZGEgcG9pIGtlJ2EgbWUgJydzdW10aScnCgpQQSBi cm9kYSB+aHN+fH5oc34gUEEgZGEgcG9pIGJyb2RhIAoKcGlQQSAnJ3N1bXRpJycgfmhzfnx+aHN+ IGxvIHBpUEEgc2knZSBiZSBwYSBtZSAnJ3N1bXRpJycKCnx8CgoKCk91dGVyIHF1YW50aWZpY2F0 aW9uIGV4Y2VwdCB7cGlQQX0gZm9ybXMge1BBIGRhfSwgd2hpY2ggaXMgb2ZmaWNpYWxseSBhIGJv dW5kIHNpbmd1bGFyIHZhcmlhYmxlLiBJdCBpbXBsaWVzIHRoYXQgdGhlc2UgYXJndW1lbnRzIHNh dGlzZnkgYSBwcmVkaWNhdGUgX19kaXN0cmlidXRpdmVseV9fLiBGb3IgZXhhbXBsZSwgaXQgaXMg bWVhbmluZ2xlc3MgdG8gdXNlIHtjaSBsbyBwcmVudX0gYXMgeDEgb2Yge2ptYWppfSAoZ2F0aGVy KSwgYmVjYXVzZSBpdCBpcyBub3QgdGhlIGNhc2UgdGhhdCBlYWNoIG9mIHRocmVlIHBlb3BsZSBz YXRpc2ZpZXMgdGhlIHByZWRpY2F0ZSAiZ2F0aGVyIi4KCgoKSG93ZXZlciwgaWYgd2UgdXNlIHVu b2ZmaWNpYWwgcGx1cmFsIHF1YW50aWZpZXJzIHtybydvaX0gb3Ige3N1J29pfSBmb3IgUEEsIG91 dGVyIHF1YW50aWZpY2F0aW9uIGNhbiBmb3JtIGJvdW5kIHBsdXJhbCB2YXJpYWJsZS4gRm9yIGV4 YW1wbGUsCgpec3Unb2kgcHJlbnUgY3Ugam1hamkgfmhzfiB0aGVyZSBhcmUgcGVvcGxlIHdobyBn YXRoZXIuXgoKVGhpcyBwcm9wb3NpdGlvbiBpcyBpbXBsaWVkIGJ5IGEgcHJvcG9zaXRpb24gaW5j bHVkaW5nIHBsdXJhbCBjb25zdGFudAoKXmxvIHByZW51IGN1IGptYWppIH5oc34gUGVvcGxlIGdh dGhlci5eCgp3aXRoIHRoZSBsb2dpY2FsIGF4aW9tIGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25f cGx1cmFsX2NvbnN0YW50fFNlY3Rpb24gMi4yLjYpKS4KCgoKe1BBIGxvIGJyb2RhfSBkaWZmZXJz IGZyb20ge1BBIGJyb2RhfSBpbiBkb21haW4gb2YgcmVmZXJlbnRzIG9mIGJvdW5kIHNpbmd1bGFy IHZhcmlhYmxlIHRvIGJlIGNvdW50ZWQuIFRoZSBkZWZpbml0aW9ucyBvZiBvdXRlciBxdWFudGlm aWNhdGlvbiBhcmUgYXBwbGllZCB0byB0aGVtIGFzIGZvbGxvd3M6Cgp8fAoKUEEgbG8gYnJvZGEg fmhzfnx+aHN+IFBBIGRhIHBvaSBrZSdhIG1lIGxvIGJyb2RhIH5oc358fmhzfiBUaGUgZG9tYWlu IG9mIGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlIGlzIGEgcmVmZXJlbnQgb2YgcGx1cmFsIGNvbnN0 YW50IHtsbyBicm9kYX0gaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgYW5kIGNvdW50ZWQg dG8gYmUgUEEKClBBIGJyb2RhIH5oc358fmhzfiBQQSBkYSBwb2kga2UnYSBicm9kYSB+aHN+fH5o c34gVGhlIGRvbWFpbiBvZiBib3VuZCBzaW5ndWxhciB2YXJpYWJsZSBpcyBhbGwgdGhhdCBhcmUg e2Jyb2RhfSBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCBhbmQgY291bnRlZCB0byBiZSBQ QQoKfHwKCgoKXgoKO0V4YW1wbGUgMTogcm8gam1pdmUgYmEgbW9yc2kgfmhzfiAnJ0FsbCBsaXZp bmcgdGhpbmdzIHdpbGwgZGllLicnCgo7RXhhbXBsZSAyOiBybyBsbyBwcmVudSB0aSBrbGFtYSB+ aHN+ICcnQWxsIHRoZSBwZW9wbGUgY29tZSBoZXJlLicnXgoKRXhhbXBsZSAxIG1lbnRpb25zIGFs bCB7am1pdmV9IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UuIEluIHRoZSB1bml2ZXJzZSBv ZiBkaXNjb3Vyc2Ugb2YgRXhhbXBsZSAyLCBpdCBpcyBwb3NzaWJsZSB0byBpbnRlcnByZXQgdGhh dCB0aGVyZSBhcmUge3ByZW51fSBvdGhlciB0aGFuIHRoZSByZWZlcmVudCBvZiB0aGUgcGx1cmFs IGNvbnN0YW50IHtsbyBwcmVudX0uCgoKClRoZSBvdXRlciBxdWFudGlmaWNhdGlvbiBieSB7cGlQ QX0gZm9ybXMgcGx1cmFsIGNvbnN0YW50IHtsbyBwaVBBIHNpJ2V9LiBIb3dldmVyLCB4MiBvZiB7 cGlQQSBzaSdlfSBpcyBib3VuZCBzaW5ndWxhciB2YXJpYWJsZSB7cGEgbWUgJydzdW10aScnfS4g e3BpfSBpbiB0aGlzIGRlZmluaXRpb24gbWVhbnMgIm5vdCBsYXJnZXIgdGhhbiAxIjsgcHJhY3Rp Y2FsbHksIHtmaSd1fSBvciBzb21ldGhpbmcgY2FuIGJlIHVzZWQgaW5zdGVhZCBvZiB7cGl9CgoK CiEhISEjIENvbWJpbmF0aW9uIG9mIG91dGVyIGFuZCBpbm5lciBxdWFudGlmaWNhdGlvbnMKClRo ZSBkZWZpbml0aW9ucyBvZiBpbm5lciBhbmQgb3V0ZXIgcXVhbnRpZmljYXRpb24gaW1wbHkgdGhl IGZvbGxvd2luZyBpbnRlcnByZXRhdGlvbnM6Cgp8fAoKTSBsbyBbW05dIGJyb2RhIH5oc358fmhz fiBNICh3aGljaCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgZGlzdHJpYnV0aXZlbHkpIG9mIHtsbyBi cm9kYX0gW1t0aGF0IGFyZSBOXQoKTSBsb2kgW1tOXSBicm9kYSB+aHN+fH5oc34gTSAod2hpY2gg c2F0aXNmaWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5KSBvZiB7bG8gZ3VubWF9IHRoYXQg Y29uc2lzdHMgb2Yge2xvIGJyb2RhfSBbW3RoYXQgYXJlIE5dCgpNIGxvJ2kgW1tOXSBicm9kYSB+ aHN+fH5oc34gTSAod2hpY2ggc2F0aXNmaWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5KSBv ZiB7bG8gc2VsY21pfSB0aGF0IGNvbnNpc3RzIG9mIHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoK cGkgTSBsbyBbW05dIGJyb2RhIH5oc358fmhzfiBRdWFudGl0eSB7cGkgTSBzaSdlfSBvZiBhIHBh cnQgb2Ygb25lIG9mIHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoKcGkgTSBsb2kgW1tOXSBicm9k YSB+aHN+fH5oc34gUXVhbnRpdHkge3BpIE0gc2knZX0gb2YgYSBwYXJ0IG9mIG9uZSBvZiB7bG8g Z3VubWF9IHRoYXQgY29uc2lzdHMgb2Yge2xvIGJyb2RhfSBbW3RoYXQgYXJlIE5dCgpwaSBNIGxv J2kgW1tOXSBicm9kYSB+aHN+fH5oc34gUXVhbnRpdHkge3BpIE0gc2knZX0gb2YgYSBwYXJ0IChz dWJzZXQpIG9mIG9uZSBvZiB7bG8gc2VsY21pfSB0aGF0IGNvbnNpc3RzIG9mIHtsbyBicm9kYX0g W1t0aGF0IGFyZSBOXQoKfHwKCgoKQW1vbmcgdGhlbSwge00gbG8gW1tOXSBicm9kYX0gYW5kIHtw aSBNIGxvaSBbW05dIGJyb2RhfSBjYW4gZXhwcmVzcyBzb21lIG9mIHBsdXJhbCBudW1iZXIgb2Yg dGhpbmdzLgoKXgoKO0V4YW1wbGUgMTogcmUgbG8gW1tjaV0gbWxhdHUgbWkgdmlza2EgfmhzfiAn J1R3byBbW29mIHRocmVlXSBjYXRzIHNlZSBtZS4nJwoKO0V4YW1wbGUgMjogcmUgZmkndSBjaSBs b2kgW1t2ZWkgY2kgcGknaSBueSAodmUnbyldIG1sYXR1IG1pIHZpc2thIH5oc34gJydUd28gdGhp cmQgb2YgW1szbl0gY2F0cyBzZWUgbWUuJydeCgoKCntyZSBsbyBbW2NpXSBtbGF0dX0gb2YgRXhh bXBsZSAxIHJlZmVycyB0byB0d28gY2F0cyBhbW9uZyBbW3RocmVlXSBjYXRzIHRoYXQgYXJlIHJl ZmVyZW50IG9mIHtsbyBbW2NpXSBtbGF0dX0uCgpJZiB0aGUgaW5uZXIgcXVhbnRpZmllciB7Y2l9 IGlzIG5vdCBzYWlkLCBpdCBpcyB1bmNsZWFyIGhvdyBtYW55IGNhdHMgYXJlIHJlZmVycmVkIHRv IGJ5IHtsbyBtbGF0dX07IGluIGFueSBjYXNlIHtyZSBsbyBtbGF0dX0gcmVmZXJzIHRvIHR3byBv ZiB0aGVtLgoKCgpJbiBFeGFtcGxlIDIsIHRoZSBhcmd1bWVudCBpcyBmb3JtZWQgYnkge2xvaX0s IGFuZCB0aGUgcmVmZXJlbnQgaXMgYWN0dWFsbHkge2xvIGd1bm1hfS4gRXhwYW5kaW5nIEV4YW1w bGUgMiBhY2NvcmRpbmcgdG8gdGhlIGRlZmluaXRpb25zIG9mIHtsb2l9IGFuZCB7cGlQQSAnJ3N1 bXRpJyd9LAoKXgoKO0V4YW1wbGUgMi0xOiBsbyByZSBmaSd1IGNpIHNpJ2UgYmUgcGEgbWUgbG8g Z3VubWEgYmUgbG8gW1t2ZWkgY2kgcGknaSBueSAodmUnbyldIG1sYXR1IG1pIHZpc2thXgoKVGhh dCBpcyB0byBzYXksIHtyZSBmaSd1IGNpIGxvaS4uLn0gcmVmZXJzIHRvIHR3byB0aGlyZCBvZiBh biBpbmRpdmlkdWFsIHtwYSBtZSBsbyBndW5tYS4uLn0uIFRoaXMge2xvIGd1bm1hfSBjb25zaXN0 cyBvZiB7dmVpIGNpIHBpJ2kgbnkgKHZlJ28pfSBjYXRzLiAKCklmIHRoZSBpbm5lciBxdWFudGlm aWVyIGlzIG5vdCBzYWlkLCBpdCBpcyB1bmNsZWFyIGhvdyBtYW55IGNhdHMgY29uc3RpdHV0ZSB7 bG8gZ3VubWF9IHRoYXQgaXMge2xvaSBtbGF0dX07IGluIGFueSBjYXNlIHtyZSBmaSd1IGNpIGxv aSBtbGF0dX0gcmVmZXJzIHRvIHR3byB0aGlyZCBvZiB7bG8gZ3VubWF9LiBIb3dldmVyLCAKCl5y ZSBmaSd1IGNpIGxvaSBtbGF0dSBtaSB2aXNrYV4KCmlzIG1lYW5pbmdmdWwgb25seSB3aGVuIHts b2kgbWxhdHV9IGNvbnNpc3RzIG9mIDNuIGNhdHMsIGJlY2F1c2UgaXQgaXMgbm90IG9yZGluYXJ5 IHRvIGludGVycHJldCB0aGF0IGEgZnJhZ21lbnQgb2YgYSBjYXQgc2F0aXNmaWVzIHRoZSBwcmVk aWNhdGUge3Zpc2thfS4KCkFjY29yZGluZyB0byBCUEZLJ3MgZGVmaW5pdGlvbiwge2xvaX0gY2Fu bm90IGZvcm0gYSBwbHVyYWwgY29uc3RhbnQgdGhhdCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgbm9u LWNvbGxlY3RpdmVseS4gSWYgeW91IHdhbnQgdG8gbWVhbiAiY2F0cyBzZWUgbWUgbm9uLWNvbGxl Y3RpdmVseSIsIGF2b2lkIHtsb2l9LCBvciB1c2Uge2x1J2F9LCB3aGljaCB3aWxsIGJlIGRpc2N1 c3NlZCBpbiAoKHwjUmVsYXRpb25fYmV0d2Vlbl9sdV9hX2x1X29fbHVfaV9hbmRfZ2Fkcml8U2Vj dGlvbiAzLjMpKToKCl5sdSdhIHJlIGZpJ3UgY2kgbG9pIG1sYXR1IG1pIHZpc2thXgoKCgohISEj IFJlbGF0aW9uIGJldHdlZW4gbHUnYSwgbHUnbywgbHUnaSBhbmQgZ2FkcmkKCigoQlBGSyBTZWN0 aW9uOiBJbmRpcmVjdCBSZWZlcmVyc3xCUEZLIGRlZmluZXMpKSB7bHUnYX0sIHtsdSdvfSwge2x1 J2l9IG9mIExBaEUgYXMgZm9sbG93czoKCnx8CgpsdSdhICcnc3VtdGknJyB+aHN+fH5oc34gbG8g bWUgJydzdW10aScnIH5oc358fmhzfiBsbyBjbWltYSBiZSAnJ3N1bXRpJycgW1tub2kgc2VsY21p XQoKbHUnbyAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvaSBtZSAnJ3N1bXRpJycKCmx1J2kgJydzdW10 aScnIH5oc358fmhzfiBsbydpIG1lICcnc3VtdGknJwoKfHwKCkhvd2V2ZXIsIGd1ZXNzaW5nIGZy b20gdGhlIEVuZ2xpc2ggZGVmaW5pdGlvbnMgb24gdGhlIHNhbWUgcGFnZSwgdGhlIGRlZmluaXRp b24gb2Yge2x1J2F9IGlzIHVuc2F0aXNmYWN0b3J5LCBhbmQgdGhhdCBvZiB7bHUnb30gaGFzIHNv bWUgcHJvYmxlbS4KCgoKe2x1J2F9IGV4dHJhY3RzIHgyIG9mIHtzZWxjbWl9IGZyb20gc3VtdGkg dGhhdCBpcyB7bG8gc2VsY21pfSwgYW5kIHgyIG9mIHtndW5tYX0gZnJvbSBzdW10aSB0aGF0IGlz IHtsbyBndW5tYX0uIE1vcmVvdmVyLCB7bHUnYX0gbWFrZXMgZXhwbGljaXQgdGhhdCB0aGUgc3Vt dGkgc2F0aXNmaWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5IGFuZCBub24tY29sbGVjdGl2 ZWx5LiBPbiB0aGUgb3RoZXIgaGFuZCwgYWNjb3JkaW5nIHRvIHRoZSBkZWZpbml0aW9uIG9mIHts b30sIHtsbyBtZSAnJ3N1bXRpJyd9IGRvZXMgbm90IGltcGx5ICJkaXN0cmlidXRpdmVseSBhbmQg bm9uLWNvbGxlY3RpdmVseSIuCgoKCntsdSdvfSBtYWtlcyBleHBsaWNpdCB0aGF0IHRoZSBzdW10 aSBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgbm9uLWRpc3RyaWJ1dGl2ZWx5IGFuZCBjb2xsZWN0aXZl bHkuIE9uIHRoZSBvdGhlciBoYW5kLCBhY2NvcmRpbmcgdG8gdGhlIGRlZmluaXRpb24gb2Yge2xv aX0sIHtsb2kgbWUgJydzdW10aScnfSBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgY29sbGVjdGl2ZWx5 LCBidXQgc3RpbGwgdW5jbGVhciBpZiBpdCBkb2VzIG5vbi1kaXN0cmlidXRpdmVseS4gRm9yIGNv bnNpc3RlbmN5LCBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gYWRkICJ7bG9pIGJyb2RhfSBpbXBsaWVz IHRoYXQgcmVmZXJlbnQgb2YgeDEgb2YgYnJvZGEgY29sbGVjdGl2ZWx5IGFuZCBub24tZGlzdHJp YnV0aXZlbHkgc2F0aXNmaWVzIGEgcHJlZGljYXRlIiB0byB0aGUgZGVmaW5pdGlvbiBvZiB7bG9p fS4KCgoKQXMgYSBjb25jbHVzaW9uIG9mIHRoaXMgc2VjdGlvbiwgSSBzdWdnZXN0IHRvIHJlLWRl ZmluZSB7bHUnYX0gYXMgZm9sbG93czoKCjsgVW5vZmZpY2lhbCBkZWZpbml0aW9uIG9mIHtsdSdh fTp8fAoKbHUnYSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIGNtaW1hIGJlICcnc3VtdGknJyBub2kg c2VsY21pIGt1IG9uYWkgbG8gc2UgZ3VubWEgYmUgJydzdW10aScnIG5vaSBndW5tYSBrdSBvbmFp IGxvIG1lICcnc3VtdGknJyBrdSB+cHB+Cgp+L3BwfiB+aHN+IHZ1J28gbm9pIHN1J28gZGEgem8n dSBkYSBtZSBrZSdhIGdpJ2Ugbm8nYQoKfHwKCkluIHtub2l9IGNsYXVzZSBhZnRlciB7dnUnb30s IGl0IGlzIG1hZGUgZXhwbGljaXQgdGhhdCB0aGUgcmVmZXJlbnQgb2Yge2x1J2EgJydzdW10aScn fSBkaXN0cmlidXRpdmVseSBzYXRpc2ZpZXMgdGhlIHNlbnRlbmNlIHRoYXQgaW5jbHVkZXMgdGhp cyBzdW10aS4KCgoKISEjIE5vdGVzCgpUaGlzIHNlY3Rpb24gY29uc2lzdHMgb2Ygbm90ZXMgb2Yg dGhlIGF1dGhvciBndXNrYW50LCBhbmQgaXQgaXMgbm90IGF0IGFsbCBpbXBvcnRhbnQgZm9yIHVu ZGVyc3RhbmRpbmcgZ2FkcmkuCgoKCiEhISMgQWJvdXQgb250b2xvZ3kKCl4oKEJQRksgU2VjdGlv bjogZ2Fkcml8JydQb3NpdGl2ZSBpbXBhY3Q6IFNvbWUgdXNhZ2VzIHRoYXQgbWFrZSBsaXR0bGUg c2Vuc2Ugd2l0aCB7bG99PXtzdSdvfSBiZWNvbWUgdmFsaWRhdGVkLicnKSkgYWNjb3JkaW5nIHRv IEJQRksuXgoKCgp7bG99PXtzdSdvfSB3YXMgYWJhbmRvbmVkLCBidXQgYmVjYXVzZSBvZiB0aGUg ZmFjdCB0aGF0IHtsbyBicm9kYX0gaXMgYSBwbHVyYWwgY29uc3RhbnQsIGFuZCBiZWNhdXNlIG9m IGEgbG9naWNhbCBheGlvbSBvZiBwbHVyYWwgY29uc3RhbnQgaW4gKCh8I0FfbG9naWNhbF9heGlv bV9vbl9wbHVyYWxfY29uc3RhbnR8U2VjdGlvbiAyLjIuNikpLCB7bG8gYnJvZGEgY3UgYnJvZGV9 IGltcGxpY2l0bHkgaW1wbGllcyB7c3Unb2kgZGEgYnJvZGV9LgoKCgohISEjIGNsYXh1IHgyCgpe KChCUEZLIFNlY3Rpb246IGdhZHJpfGxlIGNtYW5hIF9fbG9fXyBjaWRqYSBiYSBjbGF4dSkpfnBw fgoKfi9wcH4gICcnSW4gdGhlIG1vdW50YWlucyB0aGVyZSBpcyBubyBmb29kLicnfnBwfgoKfi9w cH4oKGxhcG9pIHBlbHh1IGt1J28gdHJhanlub2JsaSkpXgoKCgpFeHBhbmRpbmcge2xvIGNpZGph fSwgCgpebGUgY21hbmEgem8nZSBub2kga2UnYSBjaWRqYSBrdSdvIGJhIGNsYXh1XgoKQWNjb3Jk aW5nIHRvICgoQlBGSyBTZWN0aW9uOiBTdWJvcmRpbmF0b3JzfHRoZSBkZWZpbml0aW9uIG9mIHtu b2l9KSksIAoKXmxlIGNtYW5hIHpvJ2UgdG8gcmkgeGkgcmF1IGNpZGphIHRvaSBiYSBjbGF4dV4K ClRoZSBwYXJ0IGJldHdlZW4ge3RvfSBhbmQge3RvaX0gaXMgYSBwYXJlbnRoZXRpY2FsIGV4cHJl c3Npb24uIFRoZSBtYWluIHByb3Bvc2l0aW9uIGlzIHRodXMKCl5sZSBjbWFuYSB6bydlIGJhIGNs YXh1XgoKd2hlcmUge3pvJ2V9IGlzIGEgcGx1cmFsIGNvbnN0YW50LiBBY2NvcmRpbmcgdG8gdGhl IGxvZ2ljYWwgYXhpb20gb2YgcGx1cmFsIGNvbnN0YW50IGluICgofCNBX2xvZ2ljYWxfYXhpb21f b25fcGx1cmFsX2NvbnN0YW50fFNlY3Rpb24gMi4yLjYpKSwgVGhpcyBwcm9wb3NpdGlvbiBpbXBs aWVzIAoKXnN1J29pIGRhIHpvJ3UgbGUgY21hbmEgZGEgYmEgY2xheHVeCgp3aGljaCBtZWFucyB0 aGF0IHRoZXJlIGlzIGEgcmVmZXJlbnQgb2YgIndoYXQgaXMgbGFja2VkIGJ5IHRoZSBtb3VudGFp biIgaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4KClRoZSBzdHJhbmdlbmVzcyBjb21lcyBm cm9tIHRoZSBmYWN0IHRoYXQgeDIgb2Yge2NsYXh1fSBfX2FwcGFyZW50bHlfXyBtZWFucyBub24t ZXhpc3RlbmNlLiBXZSBjYW4gaW50ZXJwcmV0IGl0IGNvbnNpc3RlbnRseSB0aGF0IHtjbGF4dX0g bWVhbnMgb25seSB0aGF0IHRoZSByZWZlcmVudCBvZiB4MiBpcyBub3QgcGxhY2VkIGF0IHRoZSBy ZWZlcmVudCBvZiB4MSwgYW5kIGl0IHNheXMgbm90aGluZyBhYm91dCBleGlzdGVuY2UgaW4gdGhl IHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4gCgoKCiEhISMgem8nZSBpcyBhIHBsdXJhbCBjb25zdGFu dAoKQXNzdW1pbmcgdGhhdCB7em8nZX0gY2FuIGJlIGFueSBvZiBmcmVlIHZhcmlhYmxlLCBib3Vu ZCBwbHVyYWwgdmFyaWFibGUgb3IgcGx1cmFsIGNvbnN0YW50LCB0aGUgbGFuZ3VhZ2Ugd291bGQg YmUgbW9yZSByZWFzb25hYmxlIGZyb20gYSBsb2dpY2FsIHBvaW50IG9mIHZpZXcuCgpIb3dldmVy LCB0aGlzIGlkZWEgd2FzIGNsZWFybHkgZGVuaWVkIGluIFtodHRwczovL2dyb3Vwcy5nb29nbGUu Y29tL2QvdG9waWMvbG9qYmFuL1JBdEU3WWstZHF3L2Rpc2N1c3Npb258dGhlIGRpc2N1c3Npb25d LiBUaGF0IGlzIHRvIHNheSwge3pvJ2V9IGlzIGFsd2F5cyBhIHBsdXJhbCBjb25zdGFudCBhY2Nv cmRpbmcgdG8gdGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uLgoKSSB3aWxsIGV4YW1pbmUgdGhl c2UgY29uZmxpY3RpbmcgaWRlYXMsIGFuZCB0cnkgdG8gc29sdmUgc29tZSBwcm9ibGVtcyBjYXVz ZWQgYnkgdGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uIHRoYXQge3pvJ2V9IGlzIGEgcGx1cmFs IGNvbnN0YW50LgoKCgohISEhIyBJZiB6bydlIGNvdWxkIGJlIGEgYm91bmQgcGx1cmFsIHZhcmlh YmxlCgpJIHdpbGwgbGlzdCB1cCBoZXJlIG1lcml0cyBhbmQgZGVtZXJpdHMgb2YgYXNzdW1pbmcg dGhhdCB7em8nZX0gaW4gbm8gY29udGV4dCBpcyBhIGZyZWUgdmFyaWFibGUsIGFuZCB0aGF0IHRo ZSBjb250ZXh0IGRldGVybWluZXMgdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgYmFzZWQgb24g d2hpY2gge3pvJ2V9IGlzIHJlZ2FyZGVkIGFzIHN1YnN0aXR1dGVkIGZvciBieSBhIHBsdXJhbCBj b25zdGFudCwgb3IgYm91bmQgYnkgYSBwbHVyYWwgcXVhbnRpZmllci4KCgoKISEhISEjIE1lcml0 cwoKVW5kZXIgdGhpcyBhc3N1bXB0aW9uLCB0aGVyZSBpcyBubyBuZWVkIHRvIGV4Y2x1ZGUgdGhl IGNhc2UgUEE9MCBvZiB7bG8gUEEgYnJvZGF9LCBvciBnaXZlIGl0IGFuIHVub2ZmaWNpYWwgZGVm aW5pdGlvbiBhcyBkaXNjdXNzZWQgaW4gKCh8I0Nhbm5vdF9zYXlfemVyb3xTZWN0aW9uIDMuMS4y LjEpKS4gSXQgaXMgYmVjYXVzZSBpZiB7bG8gUEEgYnJvZGF9IGluIG5vIGNvbnRleHQgaXMgYSBm cmVlIHZhcmlhYmxlLCB3ZSBjYW4gaW50ZXJwcmV0IGl0LCB3aGVuIGEgY29udGV4dCBpcyBnaXZl biwgYXMgc3Vic3RpdHV0ZWQgZm9yIGJ5IGEgcGx1cmFsIGNvbnN0YW50IG9yIGJvdW5kIGJ5IGEg cGx1cmFsIHF1YW50aWZpZXIgbGlrZSB7c3Unb2kgZGF9IGluIHRoZSBjYXNlIG9mIFBBPjA7IHdl IGNhbiBpbnRlcnByZXQgaXQgYXMgYm91bmQgYnkge25ha3Ugc3Unb2kgZGF9IGluIHRoZSBjYXNl IG9mIFBBPTAgYXMgd2VsbC4KCgoKVGhpcyBhc3N1bXB0aW9uIG1ha2VzIHRoZSBpbnRlcnByZXRh dGlvbiBjbG9zZXIgdG8gbmF0dXJhbCBsYW5ndWFnZXMgbm90IG9ubHkgaW4gdGhlIGNhc2UgUEE9 MCBidXQgYWxzbyBpbiB0aGUgY2FzZSBQQT4wLiBGb3IgZXhhbXBsZSwgCgpebG8gY2kgeGFudG8g Y3Ugemlsa2FuY3UgbGkgY2kgbG8geGFudG9eCgpUaGUgbGFzdCB7bG8geGFudG99IGlzIGEgdW5p dCBvZiBjb3VudGluZy4gSXQgaXMgbmF0dXJhbCB0byBpbnRlcnByZXQgaXQgYXMgYSBib3VuZCBw bHVyYWwgdmFyaWFibGUgcXVhbnRpZmllZCBieSAiMSIgcmF0aGVyIHRoYW4gYSBwbHVyYWwgY29u c3RhbnQsIHdoaWNoIHNob3VsZCByZWZlciB0byBzb21ldGhpbmcuIElmIHdlIGludGVycHJldCBp dCBhcyBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSwgd2Ugc2hvdWxkIGNvbnNpZGVyIHRoZSByZWxh dGl2ZSBvcmRlciB3aXRoIHRoZSBvdGhlciBib3VuZCB2YXJpYWJsZXMgYW5kIHtuYWt1fS4gV2Ug Y2FuIGhhbmRsZSB0aGUgb3JkZXIgZnJlZWx5IGJ5IHB1dHRpbmcgdGhlIGFyZ3VtZW50cyBpbiBw cmVuZXguCgoKCk1vcmVvdmVyLCB0aGlzIGFzc3VtcHRpb24gZW1ib2RpZXMgdGhlIHByb3BlcnR5 IG9mIG5hdHVyYWwgbGFuZ3VhZ2VzIHRoYXQgdGhlIHRydXRoIHZhbHVlIG9mIGEgcHJvcG9zaXRp b24gaW4gbm8gY29udGV4dCBpcyBnZW5lcmFsbHkgaW5kZWZpbml0ZS4gQnkgaW50ZXJwcmV0aW5n IHRoYXQge3pvJ2V9IGluIG5vIGNvbnRleHQgaXMgYSBmcmVlIHZhcmlhYmxlLCB3aGljaCB3aWxs IGJlIHN1YnN0aXR1dGVkIGZvciBieSBhIHBsdXJhbCBjb25zdGFudCBvciBib3VuZCBieSBhIHBs dXJhbCBxdWFudGlmaWVyIHdoZW4gYSBjb250ZXh0IGlzIGdpdmVuLCBuYXR1cmFsIGludGVycHJl dGF0aW9uIG9mIExvamJhbiBzZW50ZW5jZSBpcyBwb3NzaWJsZSB3aXRob3V0IGxvc2luZyBsb2dp Y2FsIGFzcGVjdHMgYW5kIHN0cnVjdHVyYWwgYmVhdXR5LgoKCgohISEhISMgRGVtZXJpdHMKCkJl Y2F1c2Uge3pvJ2V9IGNhbiBiZSBhIGZyZWUgdmFyaWFibGUsIGEgYm91bmQgcGx1cmFsIHZhcmlh YmxlIG9yIGEgcGx1cmFsIGNvbnN0YW50IGRlcGVuZGluZyBvbiB0aGUgY29udGV4dCwgYSBzaW5n bGUgYnJpZGkgZG9lcyBub3QgbGV0IGxpc3RlbmVycyBkZXRlcm1pbmUgd2hpY2ggb2YgdGhlbSBp cyB0aGUgY3VycmVudCB7em8nZX0sIG9yIHRoZSB0cnV0aCB2YWx1ZSBvZiB0aGUgcHJvcG9zaXRp b24uCgpIb3dldmVyLCBzdWNoIGFuIGFzcGVjdCB0aGF0IHRoZSB0cnV0aCB2YWx1ZSBvZiBhIHBy b3Bvc2l0aW9uIGdlbmVyYWxseSBkZXBlbmRzIG9uIHRoZSBjb250ZXh0IGlzIGEgY29tbW9uIHBy b3BlcnR5IHRvIGFsbCBuYXR1cmFsIGxhbmd1YWdlcy4KCgoKT24gdGhlIG90aGVyIGhhbmQsIGV2 ZW4gaWYgd2UgdGFrZSB0aGUgb2ZmaWNpYWwgaW50ZXJwcmV0YXRpb24gdGhhdCB7em8nZX0gaXMg YWx3YXlzIGEgcGx1cmFsIGNvbnN0YW50LCBsaXN0ZW5lcnMgYXJlIG9ubHkgaW5mb3JtZWQgYnkg e3pvJ2V9IHRoYXQgYSBjZXJ0YWluIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBpcyBnaXZlbi4gV2l0 aCBubyBjb250ZXh0LCB0aGVyZSBpcyBubyB3YXkgdG8gZGV0ZXJtaW5lIHdoYXQgaXMgdGhlIHVu aXZlcnNlIG9mIGRpc2NvdXJzZS4gVGhlIHRydXRoIHZhbHVlIG9mIGEgcHJvcG9zaXRpb24gaW4g bm8gY29udGV4dCBpcyBpbmRlZmluaXRlIGV2ZW4gd2l0aCB0aGUgb2ZmaWNpYWwgaW50ZXJwcmV0 YXRpb24uCgoKCiEhISEjIFByb2JsZW1zIGNhdXNlZCBieSB0aGUgZmFjdCB0aGF0IHpvJ2UgaXMg YSBwbHVyYWwgY29uc3RhbnQgYW5kIHRoZSBjb3VudGVyLW1lYXN1cmVzCgpUaGUgb2ZmaWNpYWwg aW50ZXJwcmV0YXRpb24gdGhhdCB7em8nZX0gaXMgYSBwbHVyYWwgY29uc3RhbnQgY2F1c2VzIHRo ZSBmb2xsb3dpbmcgcHJvYmxlbXMuCgoKCiEhISEhIyBDYW5ub3QgZXhwcmVzcyBwbHVyYWwgcXVh bnRpZmljYXRpb24gb2Ygbm9uLWV4aXN0ZW5jZQoKUmVhc29uYWJsZSBpbnRlcnByZXRhdGlvbiBv ZiB7bG8gbm8gYnJvZGF9IGlzIG9mZmljaWFsbHkgZXhjbHVkZWQgZnJvbSBMb2piYW4uIFRoYXQg aXMgdG8gc2F5LCBMb2piYW4gY2Fubm90IG9mZmljaWFsbHkgZGVhbCB3aXRoIHRoZSBleHByZXNz aW9uICJ0aGVyZSBpcyBub3Qgd2hhdCBpcyBzdWJzdGl0dXRlZCBmb3Ige2RhfSIgZm9yIHBsdXJh bCB2YXJpYWJsZSAoe25ha3Ugc3Unb2kgZGF9KSwgd2hpY2ggaXMgbmF0dXJhbGx5IGRlYWx0IHdp dGggYnkgcGx1cmFsIHF1YW50aWZpY2F0aW9uLiBJbiBvcmRlciB0byBleHByZXNzIHtsbyBubyBi cm9kYX0gd2l0aCByZWFzb25hYmxlIGludGVycHJldGF0aW9uLCB3ZSBuZWVkIGFuIHVub2ZmaWNp YWwgaW50ZXJwcmV0YXRpb24gbGlrZSAoKHwjQ2Fubm90X3NheV96ZXJvfFNlY3Rpb24gMy4xLjIu MSkpLgoKCgohISEhISMgQ2Fubm90IGV4cHJlc3MgYm91bmQgcGx1cmFsIHZhcmlhYmxlLCB3aGlj aCBkb2VzIG5vdCBzcGVjaWZ5IGEgcmVmZXJlbnQKCkJlY2F1c2UgdGhlIG9mZmljaWFsIGludGVy cHJldGF0aW9uIGRvZXMgbm90IGFsbG93IHtsbyBQQSBicm9kYX0gdG8gYmUgYSBib3VuZCBwbHVy YWwgdmFyaWFibGUgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0LCBhbiBhcmd1bWVudCB0aGF0IHNo b3VsZCByZWZlciB0byBub3RoaW5nLCBhIHVuaXQgb2YgY291bnRpbmcgZm9yIGV4YW1wbGUsIHNo b3VsZCBiZSBpbnRlcnByZXRlZCBhcyBhIHBsdXJhbCBjb25zdGFudCwgd2hpY2ggcmVmZXJzIHRv IHNvbWV0aGluZy4gRm9yIGV4YW1wbGUgCgpebG8gY2kgeGFudG8gY3Ugemlsa2FuY3UgbGkgY2kg bG8geGFudG9eCgpmb3Igd2hpY2ggd2UgYXJlIGNvbXBlbGxlZCB0byBpbnRlcnByZXQgdGhhdCB0 aGVyZSBpcyB0aGUgIkVsZXBoYW50IGRlcyBBcmNoaXZlcyIgaW4gdGhlIHVuaXZlcnNlIG9mIGRp c2NvdXJzZSwganVzdCBsaWtlIHRoZSAiTcOodHJlIGRlcyBBcmNoaXZlcyIgKGFsdGhvdWdoIGl0 IGhhcyBhbHJlYWR5IGZpbmlzaGVkIGl0cyByb2xlKSwgaW4gb3JkZXIgdG8gdXNlIHtsbyB4YW50 b30gYXMgYSB1bml0IGluIGEgcHJvcG9zaXRpb24uCgoKCiEhISEhIyBDYW5ub3QgZXhwcmVzcyBl bGVtZW50YXJ5IHBhcnRpY2xlcyB3aXRoIGxvCgpBcyBsb25nIGFzIHtsbyBicm9kYX0gaXMgaW50 ZXJwcmV0ZWQgYXMgYSBwbHVyYWwgY29uc3RhbnQsIHRoZSBmb2xsb3dpbmcgTG9qYmFuIHNlbnRl bmNlIGlzIG1lYW5pbmdsZXNzOgoKCgpebG8gZ3Vza2EndSBjdSBnYXUgam1hamkgc2VwaSdvIGxv IGxlbmpvIGdpJ2UgcGFncmUgbG8gZmVucmF+cHB+Cgp+L3BwficnUGhvdG9ucyBhcmUgY29uZGVu c2VkIGJ5IGxlbnNlcywgYW5kIHBhc3MgdGhyb3VnaCBzbGl0cy4nJ14KCgoKQWN0dWFsbHksIHBo b3RvbnMgYXJlIGluZGl2aWR1YWxzLCBhbmQgd2UgY2FuIGNvdW50IHRoZW0sIGJ1dCB3ZSBjYW5u b3QgZGlzdGluZ3Vpc2ggZWFjaCBvZiB0aGVtOiB3ZSBjYW5ub3QgcmVmZXIgdG8gYSBzcGVjaWZp YyBwaG90b24uIFF1YW50aWZpY2F0aW9uIGlzIGluZGVlZCBzdWl0YWJsZSBmb3IgYXJndW1lbnRz IHRoYXQgcmVwcmVzZW50IHBhcnRpY2xlcyBsaWtlIHBob3RvbnMuIEhvd2V2ZXIsIExvamJhbiBv ZmZpY2lhbGx5IGRvZXMgbm90IGhhdmUgYSBwbHVyYWwgcXVhbnRpZmllciwgYW5kIGNhbm5vdCBl eHByZXNzIHF1YW50aWZpY2F0aW9uIG9mICBzdW10aSB0aGF0IHNhdGlzZmllcyBzZWxicmkgYm90 aCBjb2xsZWN0aXZlbHkgYW5kIGRpc3RyaWJ1dGl2ZWx5LiBNb3Jlb3ZlciwgYmVjYXVzZSB7bG8g YnJvZGF9IGlzIG9mZmljaWFsbHkgYWx3YXlzIGEgcGx1cmFsIGNvbnN0YW50LCB0aGVyZSBpcyBu byByb29tIHRvIGludGVycHJldCB7bG8gZ3Vza2EndX0gYXMgYSBib3VuZCBwbHVyYWwgdmFyaWFi bGUuIEluIG9yZGVyIHRvIHNvbHZlIHRoZSBwcm9ibGVtLCB3ZSBzaG91bGQgdXNlIGFuIHVub2Zm aWNpYWwgcGx1cmFsIHF1YW50aWZpZXIge3N1J29pfSBzdWdnZXN0ZWQgYnkgKCh4b3J4ZXN8bGEg eG9yeGVzKSkuCgoKCl5zdSdvaSBkYSBwb2kga2UnYSBndXNrYSd1IGN1IGdhdSBqbWFqaSBzZXBp J28gbG8gbGVuam8gZ2knZSBwYWdyZSBsbyBmZW5yYV4KCgoKISEhISEjIEhvdyB0byBpbnRlcnBy ZXQgYSBwcmV2YWlsaW5nIHZpZXcKClRoZSBmb2xsb3dpbmcgZXhhbXBsZSBpcyBnaXZlbiBvbiAo KEJQRksgU2VjdGlvbjogZ2Fkcml8QlBGSydzIGdhZHJpIHBhZ2UpKToKCgoKXmxvIHBhIHBpeHJh IGN1IHNlIHZhbWppIGxvIGtpJ28gdmFsc2l+cHB+Cgp+L3BwficnT25lIHBpY3R1cmUgaXMgd29y dGggYSB0aG91c2FuZCB3b3Jkcy4nJyBeCgoKCkV2ZW4gaW4gc3VjaCBhIHNlbnRlbmNlIHRoYXQg c2VlbXMgYSBwcmV2YWlsaW5nIHZpZXcsIHtsbyBwYSBwaXhyYX0gYW5kIHtsbyBraSdvIHZhbHNp fSBhcmUgaW50ZXJwcmV0ZWQgYXMgcmVmZXJyaW5nIHRvIHNvbWV0aGluZy4gV2Ugc2hvdWxkIHBy ZXBhcmUgc29tZSByZWZlcmVudHMgb2Ygc3VtdGkgb2YgYSBwcmV2YWlsaW5nIHZpZXcgaW4gdGhl IHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4KCgoKSW50dWl0aW9uYWxseSBzcGVha2luZywgd2UgbWF5 IHVzZSB7bG8nZX0gaW5zdGVhZCBvZiB7bG99LCBidXQgd2UgY2Fubm90IHlldCBleHBsYWluIHts bydlfSBmcm9tIGEgbG9naWNhbCBwb2ludCBvZiB2aWV3IGJlY2F1c2UgKChCUEZLIFNlY3Rpb246 IFR5cGljYWxzfGFjdHVhbGx5IHRoZXJlIGlzIG5vIG9mZmljaWFsIGNvbmNsdXNpb24gYWJvdXQg cmVsYXRpb24gYmV0d2VlbiB7bG8nZX0gYW5kIHtsb30pKS4KCgoKQXMgYSBtZXRob2Qgb2YgYXZv aWRpbmcgbWVudGlvbiBvZiBhIHJlZmVyZW50IGluIGFuIGV4cHJlc3Npb24gb2YgcHJldmFpbGlu ZyB2aWV3LCB3ZSBtYXkgcHV0IHRoZSB3aG9sZSBwcm9wb3NpdGlvbiBpbiBOVSBjbGF1c2UuIElu IGZhY3QsIHRydXRoIHZhbHVlIG9mIGEgcHJvcG9zaXRpb24gaW4gTlUgY2xhdXNlIGRvZXMgbm90 IGluZmx1ZW5jZSB0cnV0aCB2YWx1ZSBvZiB0aGUgb3V0ZXIgcHJvcG9zaXRpb24gKHJlZmVyZW50 aWFsbHkgb3BhcXVlOyB0aGlzIHRvcGljIGlzIHJlbGF0ZWQgdG8gW2h0dHA6Ly9kYWcuZ2l0aHVi LmlvL2NsbC85LzcvfENMTDkuN10pLiBJbiBvdGhlciB3b3JkcywgdGhlIHVuaXZlcnNlIG9mIGRp c2NvdXJzZSBvZiBhIHByb3Bvc2l0aW9uIGluIE5VIGNsYXVzZSBpcyBkaWZmZXJlbnQgZnJvbSB0 aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlIG9mIGEgcHJvcG9zaXRpb24gb3V0IG9mIE5VLgoKSWYg d2UgYWNjZXB0IHRoaXMgbWV0aG9kLCB0aGUgZXhhbXBsZSBhYm92ZSB3aWxsIGJlIG1vZGlmaWVk LCB1c2luZyB7c2knb30gZm9yIGV4YW1wbGUsIGFzIGZvbGxvd3M6CgoKCl5zaSdvIGxvIHBhIHBp eHJhIGN1IHNlIHZhbWppIGxvIGtpJ28gdmFsc2kgfnBwfgoKfi9wcH4nJ0lzIGFuIGlkZWEgdGhh dCBvbmUgcGljdHVyZSBpcyB3b3J0aCBhIHRob3VzYW5kIHdvcmRzLicnXgoKCgp3aGVyZSB4MSBv ZiB7c2knb30gaXMgaW1wbGljaXQge3pvJ2V9LCB3aGljaCBoYXMgYSByZWZlcmVudCBpbiB0aGUg dW5pdmVyc2Ugb2YgZGlzY291cnNlLiBBcyBhbiBpbnRlcnByZXRhdGlvbiBvZiBhIHByZXZhaWxp bmcgdmlldywgc3VwcG9zaW5nIGEgcmVmZXJlbnQgb2YgeDEgb2Yge3NpJ299IGlzIG1vcmUgbmF0 dXJhbCB0aGFuIHN1cHBvc2luZyBhIHJlZmVyZW50IG9mIHtsbyBwYSBwaXhyYX0gb3Ige2xvIGtp J28gdmFsc2l9LgoKKFN1Y2ggYSBicmlkaSB3aXRoIG5vIHRlcmJyaSBpcyBjYWxsZWQgIm9ic2Vy dmF0aXZlIiBpbiAoKFRoZSBDb21wbGV0ZSBMb2piYW4gTGFuZ3VhZ2UpKSwgYnV0IHRoaXMgaW50 ZXJwcmV0YXRpb24gaXMgbm90IHN1aXRhYmxlIGhlcmUsIGJlY2F1c2UgdGhpcyBpcyBub3QgdGhl IHV0dGVyYW5jZSB0aGF0IGlzIGFsd2F5cyBjYXVzZWQgYnkgYSBzcGVjaWZpYyBzdGltdWx1cy4p CgoKCiEhISEhIyBIb3cgdG8gZXhwcmVzcyBmcmVlIHZhcmlhYmxlcwoKQXMgYSBjdXN0b20sIGtv J1YvZm8nViBzZXJpZXMgb2YgS09oQTQgYXJlIHVzZWQgYXMgZnJlZSB2YXJpYWJsZXMgaW4gZGVm aW5pdGlvbnMgb2Ygd29yZHMgb3Igc29tZXRoaW5nLiBIb3dldmVyLCB0aGV5IGFyZSBhY3R1YWxs eSBwbHVyYWwgY29uc3RhbnRzLgoKSWYgd2UgYWJhbmRvbiB0aGlzIGN1c3RvbSwge2tlJ2F9IGFu ZCB7Y2UndX0gYXJlIHN1aXRhYmxlIGZvciBleHByZXNzaW9uIHdpdGggZnJlZSB2YXJpYWJsZXMg KG9wZW4gc2VudGVuY2UpLCBiZWNhdXNlIHRoZSB0cnV0aCB2YWx1ZSBvZiBicmlkaSBpbiB3aGlj aCB7a2UnYX0gb3Ige2NlJ3V9IGlzIHVzZWQgaXMgaW5kZWZpbml0ZS4gCgpJbiBhIGJyaWRpIGlu IHdoaWNoIHtrZSdhfSBhcHBlYXJzIHR3byB0aW1lcyBvciBtb3JlLCB0aGVzZSB7a2UnYX1zIGFy ZSByZWdhcmRlZCBhcyByZXByZXNlbnRpbmcgYW4gaWRlbnRpY2FsIHN1bXRpOgoKXmRhIHBvaSBr ZSdhIGd5IHhsdXJhIGtlJ2EgY3UgcGFuY2kgbG8ga2EnZSBzZSBjaXRrYX5wcH4KCn4vcHB+fi0t fiAoKGxvIG51IGJpbnhvKSleCgpPbiB0aGUgb3RoZXIgaGFuZCwgaW4gYSBicmlkaSBpbiB3aGlj aCB7Y2UndX0gYXBwZWFycyB0d28gdGltZXMgb3IgbW9yZSwgdGhlc2Uge2NlJ3V9cyBhcmUgbm90 IG5lY2Vzc2FyaWx5IHJlZ2FyZGVkIGFzIHJlcHJlc2VudGluZyBhbiBpZGVudGljYWwgc3VtdGk6 CgpebG8gbWFtdGEgam8ndSBsbyBtZW5zaSBjdSBzaW14dSBsbyBrYSBjZSd1IGNpc21hIGZhJ2Eg Y2UndX5wcH4KCn4vcHB+fi0tfiAoKGxvIG51IGJpbnhvKSleCgpDb25zaWRlcmluZyB0aGVzZSBw cm9wZXJ0aWVzLCBpbiBvcmRlciB0byBleHByZXNzIGFuIG9wZW4gc2VudGVuY2Ugd2l0aCBmcmVl IHZhcmlhYmxlcyBpbiBubyBjb250ZXh0LCB7Y2UndX0gaXMgbW9yZSBjb252ZW5pZW50IHRoYW4g e2tlJ2F9IHdoaWNoIGhhcyByZXN0cmljdGlvbiBvZiBpZGVudGljYWwgc3VtdGkuCgpeY2UndSBj ZSd1IGNpdGthfnBwfgoKfi9wcH4nJ0EgZWF0cyBCLicnIChPcGVuIHNlbnRlbmNlLCB0cnV0aCB2 YWx1ZSBpbmRlZmluaXRlLileCgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpXaWtpY2hhbmdlcyBtYWlsaW5nIGxpc3QKV2lraWNoYW5nZXNAbG9qYmFu Lm9yZwpodHRwOi8vbWFpbC5sb2piYW4ub3JnL21haWxtYW4vbGlzdGluZm8vd2lraWNoYW5nZXMK