SF.net SVN: phpwiki:[11090] trunk
carstenklapp--- via phpwiki-checkins <[email protected]> Thu, 13 Feb 2025 23:24:53 +0000
| Newsgroups | gmane.comp.web.wiki.phpwiki.checkins |
|---|---|
| Message-ID | <[email protected]> |
UmV2aXNpb246IDExMDkwCiAgICAgICAgICBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvcGhwd2lr aS9jb2RlLzExMDkwCkF1dGhvcjogICBjYXJzdGVua2xhcHAKRGF0ZTogICAgIDIwMjUtMDItMTMg MjM6MjQ6NTMgKzAwMDAgKFRodSwgMTMgRmViIDIwMjUpCkxvZyBNZXNzYWdlOgotLS0tLS0tLS0t LQpDb21wbGV0ZSByZXdyaXRlIG9mIFNwYWNlV2lraSB0aGVtZSB1c2luZyBtb2Rlcm4gY3NzLgoK TW9kaWZpZWQgUGF0aHM6Ci0tLS0tLS0tLS0tLS0tCiAgICB0cnVuay9wZ3NyYy9SZWxlYXNlTm90 ZXMKICAgIHRydW5rL3RoZW1lcy9TcGFjZVdpa2kvU3BhY2VXaWtpLmNzcwogICAgdHJ1bmsvdGhl bWVzL1NwYWNlV2lraS9saWIvUmVjZW50Q2hhbmdlcy5waHAKICAgIHRydW5rL3RoZW1lcy9TcGFj ZVdpa2kvdGhlbWVpbmZvLnBocAoKQWRkZWQgUGF0aHM6Ci0tLS0tLS0tLS0tCiAgICB0cnVuay90 aGVtZXMvU3BhY2VXaWtpL0FudG9uaW8tQm9sZC53b2ZmCiAgICB0cnVuay90aGVtZXMvU3BhY2VX aWtpL0FudG9uaW8tQm9sZC53b2ZmMgogICAgdHJ1bmsvdGhlbWVzL1NwYWNlV2lraS9BbnRvbmlv LVJlZ3VsYXIud29mZgogICAgdHJ1bmsvdGhlbWVzL1NwYWNlV2lraS9BbnRvbmlvLVJlZ3VsYXIu d29mZjIKICAgIHRydW5rL3RoZW1lcy9TcGFjZVdpa2kvaW1hZ2VzL2xpZ2h0cy5naWYKICAgIHRy dW5rL3RoZW1lcy9TcGFjZVdpa2kvaW1hZ2VzL3N0YXJyeV9za3lfbmlnaHRfZGFya18xNTIwMzlf MTM2Nng3NjguanBnCgpSZW1vdmVkIFBhdGhzOgotLS0tLS0tLS0tLS0tCiAgICB0cnVuay90aGVt ZXMvU3BhY2VXaWtpL2ltYWdlcy9saWdodHMucG5nCgpNb2RpZmllZDogdHJ1bmsvcGdzcmMvUmVs ZWFzZU5vdGVzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIHRydW5rL3Bnc3JjL1JlbGVhc2VOb3RlcwkyMDI1LTAy LTEzIDIyOjU3OjQ0IFVUQyAocmV2IDExMDg5KQorKysgdHJ1bmsvcGdzcmMvUmVsZWFzZU5vdGVz CTIwMjUtMDItMTMgMjM6MjQ6NTMgVVRDIChyZXYgMTEwOTApCkBAIC0xLDExODQgKzEsMTE4NyBA QAotRGF0ZTogU3VuLCAgOSBGZWIgMjAyNSAyMDowMToyMCArMDAwMAotTWltZS1WZXJzaW9uOiAx LjAgKFByb2R1Y2VkIGJ5IFBocFdpa2kgMS42LjQpCi1Db250ZW50LVR5cGU6IGFwcGxpY2F0aW9u L3gtcGhwd2lraTsKLSAgcGFnZW5hbWU9UmVsZWFzZU5vdGVzOwotICBmbGFncz1QQUdFX0xPQ0tF RDsKLSAgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmluYXJ5Ci0K LTw8Q3JlYXRlVG9jIHdpdGhfdG9jbGlua3x8PTEgaGVhZGVyc3x8PTEsMiwzIHdpZHRoPTMwMHB4 IHBvc2l0aW9uPXJpZ2h0Pj4KLQotPT0gMS42LjUgMjAyNC1YWC1YWCBNYXJjLUV0aWVubmUgVmFy Z2VuYXUgPT0KLQotKiBVcGdyYWRlIFBFQVIgdG8gcmVsZWFzZSAxLjEwLjE2LCBQRUFSIERCIHRv IHJlbGVhc2UgMS4xMi4yCi0KLT09IDEuNi40IDIwMjQtMDMtMTMgTWFyYy1FdGllbm5lIFZhcmdl bmF1LCBDaHJpc3RvZiBNZWVyd2FsZCA9PQotCi0qIFVwZ3JhZGUgUEVBUiB0byByZWxhc2UgMS4x MC4xNCwgUEVBUiBEQiB0byByZWxlYXNlIDEuMTIuMQotKiBDaGVjayBmb3IgInNoZWxsX2V4ZWMi IGJlZm9yZSB1c2luZyBpdCAoQ2hyaXN0b2YgTWVlcndhbGQpCi0qIEltcHJvdmUgUlNTIChDaHJp c3RvZiBNZWVyd2FsZCkKLSogQWRkIHN1cHBvcnQgZm9yIFNRTGl0ZSBpbiBQRE8sIGFkZCBzdXBw b3J0IGZvciBTUUxpdGUzIGluIFBFQVIgKENocmlzdG9mIE1lZXJ3YWxkKQotCi09PSAxLjYuMyAy MDIzLTExLTE1IE1hcmMtRXRpZW5uZSBWYXJnZW5hdSA9PQotCi1UaGlzIGlzIGEgYnVnLWZpeCBy ZWxlYXNlLgotCi1JdCBmaXhlcyBhIGJ1ZyBpbiB+RXh0ZXJuYWxSZWZlcnJlciB3aXRoIFBIUCA4 LjIuCi1SZXBvcnRlZCBieSBUaG9tIEplZXJhLgotCi09PSAxLjYuMiAyMDIzLTA3LTEzIE1hcmMt RXRpZW5uZSBWYXJnZW5hdSA9PQotCi1QaHBXaWtpIDEuNi4yIGlzIHRoZSBsYXN0IHJlbGVhc2Ug Y29tcGF0aWJsZSB3aXRoIFBIUCA1LgotSXQgc2hvdWxkIHdvcmsgZm9yIGFsbCBQSFAgcmVsZWFz ZXMgZnJvbSA1LjMuMyB0byA4LjIueC4KLVBocFdpa2kgMS43LjAgd2lsbCByZXF1aXJlIGF0IGxl YXN0IFBIUCA3LjQuCi0KLT09PSBGaXhlcyA9PT0KLSogTWFrZSByZW5hbWluZyBvZiBwYWdlcyB3 b3JrIGZvciBEQVRBQkFTRV9UWVBFID0gUERPIGFuZCBmaWxlLgotKiBNYWtlIFdhbnRlZFBhZ2Vz IHdvcmsgZm9yIERBVEFCQVNFX1RZUEUgPSBkYmEgYW5kIGZpbGUKLSogQmFjayBsaW5rcyBub3cg d29yayB3aGVuIHRoZSBsaW5rIGlzIGluc2lkZSBhIHRhYmxlLCBpbiBhIHRlbXBsYXRlIG9yIGlu IGFuIGluY2x1ZGVkIHBhZ2UuCi0KLT09PSBNaXNjID09PQotKiBBZGQgU291cmNlRm9yZ2UgT3Bl biBTb3VyY2UgRXhjZWxsZW5jZSBiYWRnZSB0byBmb290ZXIKLQotPT0gMS42LjEgMjAyMi0wMS0y NCBNYXJjLUV0aWVubmUgVmFyZ2VuYXUgPT0KLQotVGhpcyByZWxlYXNlIG1ha2VzIH5QaHBXaWtp IGNvbXBhdGlibGUgd2l0aCBQSFAgOC4xLgotIyNSRUFET05MWSMjIGlzIHJlbmFtZWQgYXMgIyNJ U1JFQURPTkxZIyMsIHNpbmNlICMjcmVhZG9ubHkjIyBpcyBub3cgYSBrZXl3b3JkIGluIFBIUCA4 LjEuCi0KLT09PSBGaXhlcyA9PT0KLSogTWFrZSBsaXN0IG9mIHBhZ2VzIHdvcmsgd2l0aCBQRE8g KH5BbGxQYWdlcywgfk1vc3RQb3B1bGFyLi4uKS4KLSogQmV0dGVyIGhhbmRsaW5nIG9mIHRoZW1l IGNoYW5nZSBpbiB+VXNlclByZWZlcmVuY2VzLgotKiBJbiBEQVRBQkFTRV9UWVBFID0gZmlsZSwg ZG8gbm90IHVwZGF0ZSBtZXRhZGF0YSBpZiBwYWdlIGRvZXMgbm90IGV4aXN0IChyZXBvcnRlZCBi eSBIYXJvbGQgSGFsbGlrYWluZW4pLgotKiBNYWtlIHRoZSB0b29sYmFyIGltYWdlIGJ1dHRvbiB3 b3JrIHdoZW4gIyNVUExPQURfVVNFUkRJUiMjIGlzIHNldC4KLSogYmxvZyB0aGVtZSBpbXByb3Zl ZC4KLQotPT09IENoYW5nZXMgPT09Ci0qIFdhcm4gdXNlciB0aGF0IGxlYXZpbmcgdGhlIHBhZ2Ug d2lsbCBsb3NlIG1vZGlmaWNhdGlvbnMuCi0qIEFkZCBidXR0b24gdG8gY3JlYXRlIHRoZSBwYWdl IGlmIGl0IGRvZXMgbm90IGV4aXN0LgotKiBUT09MQkFSX0lNQUdFX1BVTExET1dOIGlzIHRydWUg YnkgZGVmYXVsdC4KLSogUmVtb3ZlIEFET0RCIERBVEFCQVNFX1RZUEUuIFVzZSBTUUwgKFBlYXIp IG9yIFBETy4KLSogQWRkIOKAnFJlbmFtZeKAnSB0YWIgaW4gU2lkZWJhciB0aGVtZS4KLSogUGFn ZSBsb2NraW5nIGFuZCB1bmxvY2tpbmcgaXMgbm93IHNhdmVkIGluIHBhZ2UgaGlzdG9yeSAoaW4g RWRpdCBtb2RlKS4KLSogQWRkIHNhbXBsZSBpbWFnZXMgZm9yIH5QaG90b0FsYnVtIGluIGJsb2cg dGhlbWUuCi0qIFJlbW92ZSBFRElUSU5HX1BPTElDWQotKiBSZW1vdmUgRU5BQkxFX1hIVE1MX1hN TAotKiBSZW1vdmUgVVNFQ0FDSEUsIGFsd2F5cyB0cnVlCi0qIE1vcmUgdHJhbnNsYXRpb25zCi0K LT09PSBQbHVnaW5zID09PQotKiBDaGFydCBwbHVnaW46IG5ldyBhcmd1bWVudCDigJxsZWdlbmTi gJ0KLSogVXBMb2FkIHBsdWdpbjogYWxsb3cgbW9yZSBmaWxlbmFtZXMgKGUuZy4gd2l0aCBDaGlu ZXNlIGNoYXJhY3RlcnMpCi0qIH5QcmVmZXJlbmNlc0luZm8gcGx1Z2luIHJlbW92ZWQKLSogfkNh dGVnb3J5UGFnZSBwbHVnaW4gcmVtb3ZlZCwgY2F0ZWdvcmllcyBhcmUgYmV0dGVyIGNyZWF0ZWQg d2l0aCB0aGUgYnV0dG9uIGluIHRoZSB0b29sYmFyCi0qIH5SZWNlbnRDaGFuZ2VzQ2FjaGVkIHBs dWdpbiByZW1vdmVkLCB+UmVjZW50Q2hhbmdlcyBwbHVnaW4gaXMgZmFzdCBlbm91Z2gKLQotPT0g MS42LjAgMjAyMS0wOC0xMiBNYXJjLUV0aWVubmUgVmFyZ2VuYXUgPT0KLQotTWFqb3IgcmVsZWFz ZToKLSogUEhQIDcgYW5kIDggY29tcGF0aWJsZSAod29ya3MgZnJvbSBQSFAgNS4zLjMgdG8gUEhQ IDguMCkKLSogRnVsbCBIVE1MIDU6IEFkZCBIVE1MIDUgPG1haW4+IDxoZWFkZXI+IDxmb290ZXI+ IDxuYXY+IGluIGFsbCB0aGVtZXMuIEFkZCBBUklBIHJvbGVzLgotKiBGbGFzaCBpcyBkZWFkCi0q IEludGVybmV0IEV4cGxvcmVyIGlzIGRlYWQKLQotPT09IEZpeGVzID09PQotKiBNYWtlIGZ1bmN0 aW9uIElzU2FmZVVSTCBtb3JlIHN0cmljdAotKiBNYWtlIFhIVE1MIFpJUCBTbmFwc2hvdCB3b3Jr IGFnYWluIChicm9rZW4gc2luY2UgflBocFdpa2kgMS41LjMpCi0qIEl0IHdhcyBwb3NzaWJsZSB0 byByZW5hbWUgYSBwYWdlIHRvIGEgbmFtZSB3aXRoIGlsbGVnYWwgY2hhcmFjdGVycywgbGlrZSB+ W35dCi0qIEJldHRlciBoYW5kbGluZyBvZiBwYWdlIG5hbWVzIHdpdGggc2xhc2gKLSogUmVtb3Zl IHdyb25nIGNhbGxzIHRvIHNldFRpZ2h0bmVzcyBpbiAjI2xpYi9+SW5saW5lUGFyc2VyLnBocCMj IChidWcgcmVwb3J0ZWQgYnkgSGFyb2xkIEhhbGxpa2FpbmVuKQotKiBJbXBvcnRpbmcgYSBaSVAg ZnJvbSBhbiBvbGQgd2lraSBpbiBMYXRpbiAxIChJU08gODg1OS0xKSBmYWlsZWQuIFJlcG9ydGVk IGJ5IEZyYW5rIE1pY2hhZWwuCi0qIEJldHRlciBjaGVjayBhcmd1bWVudHMgZm9yIH5Hb29nbGVN YXBzIHBsdWdpbgotKiBSZXZlcnQgU3VidmVyc2lvbiBjb21taXQgOTExMSwgYmFkIHNpZGUgZWZm ZWN0czsgcmUtb3BlbmluZyBCdWcjNjA3IEJhY2tMaW5rcyBkbyBub3Qgd29yayBpbnNpZGUgYSB+ UmljaFRhYmxlCi0qIFNlY3VyaXR5IGZpeGVzCi0KLT09PSBDaGFuZ2VzID09PQotKiBBbGwgcmV2 aXNpb25zIGFyZSBrZXB0LgotKiBBZGQgbmV3IGJ1dHRvbiBpbiBFZGl0IFRvb2xiYXI6IGNvbnZl cnQgVGFiIFNlcGFyYXRlZCBWYWx1ZXMgdG8gV2lraWNyZW9sZSB0YWJsZQotKiBVcGRhdGUgalF1 ZXJ5IHRvIDIuMi40Ci0qIFBlYXI6IHVzZSAjI215c3FsaSMjIGluc3RlYWQgb2YgIyNteXNxbCMj Ci0qIFVwZGF0ZSBQRUFSLnBocCB0byByZWxlYXNlIDEuMTAuMTIKLSogVXBkYXRlIFBlYXIgREIg bGlicmFyeSB0byAxLjEwLjAKLSogVXBkYXRlIFBlYXIgQ2FjaGUgbGlicmFyeSB0byAxLjUuNgot KiBVcGRhdGUgQWRvZGIgdG8gdmVyc2lvbiA1LjIwLjE5Ci0qIFVwZGF0ZSBBU0NJSU1hdGhQSFAg dG8gdmVyc2lvbiAyLjEgKGZyb20gWmVmbGluZy9BU0NJSU1hdGhQSFAgb24gZ2l0aHViLmNvbSkK LSogVXBkYXRlIGhpZ2hsaWdodC5qcyB0byB2ZXJzaW9uIDkuMTUuNgotKiBBbGxvdyBXaWtpY3Jl b2xlIHN5bnRheCBmb3IgcGx1Z2lucyBpbiB0aGVtZSB0ZW1wbGF0ZXMKLSogVmFsaWQgSFRNTDUg YW5kIENTUzMgbG9nb3MgKGluIGRlYnVnIG1vZGUpCi0qIEJldHRlciBpc19sb2NhbGhvc3QoKSBm dW5jdGlvbiAoYWxsb3cgSVB2NiwgYWxsb3cgV2luZG93cyBJSVMpLiBQYXRjaCBieSBUaGllcnJ5 IE5hYmV0aC4KLSogUmVtb3ZlIEZ1c2lvbmZvcmdlLXNwZWNpZmljIGZpbGVzIChnIHZpZXcucGhw IHdpa2lhZG1pbi5waHAgd2lraWxpc3QucGhwKQotKiBSZW1vdmUgVVNFX1NBRkVfREJTRVNTSU9O IChhbHdheXMgdHJ1ZSksIERJU0FCTEVfSFRUUF9SRURJUkVDVAotKiBQRE8gcGF0Y2ggYnkgU8Op YmFzdGllbiBMZSBDYWxsb25uZWMKLSogVXBkYXRlZCBwZ3NyYyBwYWdlcyBpbiBhbGwgbGFuZ3Vh Z2VzCi0qIEFkZGluZyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllciBpbiBQSFAgc291cmNlIGZpbGVz Ci0KLT09PSBQbHVnaW5zID09PQotKiB+VXBMb2FkIHBsdWdpbjogcHV0IGRhdGUgYW5kIGF1dGhv ciBpbiBoaXN0b3J5Ci0qIH5VcExvYWQgcGx1Z2luOiBkb24ndCBpbmxpbmUgaW1hZ2VzCi0qIH5Q aHBXZWF0aGVyIHJlbW92ZWQsIHVzZXMgZGVwcmVjYXRlZCBteXNxbCBmdW5jdGlvbnMKLSogfkh0 bWxDb252ZXJ0ZXIgcGx1Z2luOiBjaGVjayBmaWxlIGlzIGVuY29kZWQgaW4gVVRGLTg7IH5IdG1s Q29udmVydGVyIHBsdWdpbiBhbGxvd2VkIGluIEZ1c2lvbmZvcmdlCi0qIFVzZSBqcXVlcnkuYXV0 b2hlaWdodC5qcyBwbHVnaW4gZm9yIFRyYW5zY2x1ZGUgcGx1Z2luCi0qIFJlcGFpciBbW0hlbHA6 UGhvdG9BbGJ1bVBsdWdpbnxQaG90b0FsYnVtUGx1Z2luXV0KLSogUmVuYW1lIGFjdGlvbiBwYWdl IH5EZWJ1Z0luZm8gYXMgfkRlYnVnQmFja2VuZEluZm8gKHRvIGJlIGNvbnNpc3RlbnQgd2l0aCBw bHVnaW4gbmFtZSkKLSogQmV0dGVyIGNoZWNrIGJvb2xlYW4gYXJndW1lbnRzIGluIHBsdWdpbnMK LQotPT0gMS41LjUgMjAxNS0xMi0xMSBNYXJjLUV0aWVubmUgVmFyZ2VuYXUgPT0KLQotKiBGaXgg dG9vbHRpcCB0cmFuc2xhdGlvbiBpbiB+Q3JlYXRlVG9jIHBsdWdpbgotKiBSZW1vdmUgYWNjZXNz IGtleXMKLSogQ2hlY2sgTUFYX1BBR0VOQU1FX0xFTkdUSCBpbiBDcmVhdGVQYWdlCi0qIEZpeCBm YXRhbCBkYXRhYmFzZSBlcnJvciB3aXRoIG11bHRpcGxlIGNvbW1hLWRlbGltaXRlZCBzb3J0Ynkg YXJncwotKiBSZW1vdmUgZm9yYmlkZGVuIGNoYXJhY3RlcnM6IH48fj5+W35dfnt+fX4ifnx+IyBm cm9tIHBhZ2VuYW1lCi0qIE5ldyBwcm9wZXJ0eTogQUxMT1dFRF9MT0FEIGdpdmluZyBsaXN0IG9m IGRpcmVjdG9yaWVzIGZyb20gd2hpY2ggaXQgaXMgYWxsb3dlZCB0byBsb2FkIHBhZ2VzLgotKiBV cGxvYWR+OiByZXBsYWNlIG11bHRpcGxlIHNwYWNlcyBieSBzaW5nbGUgc3BhY2UKLSogTWFrZSBm dW5jdGlvbnMgbWVyZ2VkIGFuZCBpc19jb25mbGljdCBwdWJsaWMgaW4gbGliL2RpZmYzLnBocCAo c3VwcG9ydCByZXF1ZXN0ICMxNjIpCi0KLT09IDEuNS40IDIwMTUtMDYtMjkgTWFyYy1FdGllbm5l IFZhcmdlbmF1ID09Ci0KLSogRml4IH5XYW50ZWRQYWdlcyBmb3IgRnVzaW9uZm9yZ2UKLSogUmVt b3ZlIH5XYW50ZWRQYWdlc09sZCAodXNlIH5XYW50ZWRQYWdlcyBpbnN0ZWFkKQotKiBBZGQgV2Vi TSBmb3JtYXQgaW4gVmlkZW8gcGx1Z2luCi0qIFVwZGF0ZSBqc2NhbGVuZGFyIHRvIDEuMAotKiBS ZW1vdmUgV2lkdGggYW5kIEhlaWdodCBwcmVmZXJlbmNlcyBtb2RpZmljYXRpb24gaW4gRWRpdCBU b29sYmFyCi0qIE5ldyBpY29ucyBpbiBFZGl0IFRvb2xiYXIKLSogTWFrZSBzdGF0aWMgdGVtcGxh dGVzIGluIEVkaXQgVG9vbGJhciB3b3JrCi0qIEZpeCBtZW1vcnlfbGltaXQgZm9yIFdJS0lfU09B UAotKiBSZW1vdmUgfk1vY2tSZXF1ZXN0Ci0qIFVwZGF0ZSBqcXVlcnkgdG8gMS4xMS4zCi0KLT09 IDEuNS4zIDIwMTUtMDMtMDQgTWFyYy1FdGllbm5lIFZhcmdlbmF1ID09Ci0KLSogRml4IEJ1ZyM2 NDggQ2FsbCB0byBwcm90ZWN0ZWQgbWV0aG9kCi0qIGVhc2llciBmaWxlIHVwbG9hZDogZm9yYmlk ZGVuIGNoYXJhY3RlcnMgaW4gZmlsZW5hbWUgYXJlIHJlcGxhY2VkIGJ5IGRhc2hlcyAoaW5zdGVh ZCBvZiByZWplY3RpbmcgdXBsb2FkKQotKiBpbXByb3ZlIGhhbmRsaW5nIG9mIGltYWdlIGluc2Vy dGlvbiBpY29uIGluIGVkaXQgdG9vbGJhciAoaWNvbiBkaWQgbm90IGFsd2F5cyBhcHBlYXIgYWZ0 ZXIgaW1hZ2UgdXBsb2FkaW5nKQotKiBiaWdnZXIgd2lraXBhZ2luZyBmb250Ci0qIHRlc3QgYWdh aW4gZm9yIGZ1bmN0aW9uICdwb3NpeF90aW1lcycsIGl0IGRvZXMgbm90IGV4aXN0IG9uIFdpbmRv d3MgKHJlcG9ydGVkIGJ5IGpkZWJlcnQpCi0qIHJlbW92ZSBGUERGLCBsaWIvZ2lmLnBocCwgbGli L2ZvbnQgKHdlcmUgbm90IHVzZWQpCi0qIHJlbmFtZSBwbHVnaW4gX1JldHJhbnNmb3JtIHRvIH5E ZWJ1Z1JldHJhbnNmb3JtCi0qIHVzZSBQSFAgWklQIGNsYXNzIGluc3RlYWQgb2YgaG9tZS1tYWRl IGZ1bmN0aW9ucy4gemlwbGliIHJlbmFtZWQgdG8gbWltZWxpYgotKiBhZGQgU09BUCBzY3JpcHRz Ci0qIHJlbmFtZSBGQ0tlZGl0b3IgdG8gQ0tlZGl0b3IKLSogbG9hZCB0aGVtZSBwZ3NyYywgaWYg aXQgZXhpc3RzCi0qIFNVQlBBR0VfU0VQQVJBVE9SIHJlbW92ZWQsIGl0IG11c3QgYmUgJy8nCi0q IFJhdGVJdCBwbHVnaW4gZm9yIEZ1c2lvbmZvcmdlCi0qIHJlbW92ZSBhY2Ryb3Bkb3duIGFuZCBs aXZlc2VhcmNoCi0qIHJlbW92ZSBDVlMgYmFja2VuZAotCi09PSAxLjUuMiAyMDE0LTEwLTEwIE1h cmMtRXRpZW5uZSBWYXJnZW5hdSA9PQotCi1UaGlzIGlzIGEgc2VjdXJpdHkgZml4IHJlbGVhc2Uu Ci0qIEZpeCBDVkUtMjAxNC01NTE5OiB2dWxuZXJhYmlsaXR5IGluIFBsb3RpY3VzIHBsdWdpbi4g W1todHRwOi8vd3d3LmN2ZWRldGFpbHMuY29tL2N2ZS9DVkUtMjAxNC01NTE5L11dCi0KLVRoaXMg dnVsbmVyYWJpbGl0eSBpcyBwcmVzZW50IGluIH5QaHBXaWtpIDEuNS4wIGFuZCAxLjUuMS4gQWxs IHVzZXJzIGFyZSBhZHZpc2VkIHRvIHVwZ3JhZGUgdG8gflBocFdpa2kgMS41LjIuCi0KLT09IDEu NS4xIDIwMTQtMTAtMDIgTWFyYy1FdGllbm5lIFZhcmdlbmF1ID09Ci0KLSogZml4IEJ1ZyM0NTYg J09wdGltaXppbmcgRGF0YWJhc2UnIG1lc3NhZ2Ugc29tZXRpbWVzIHByaW50ZWQgb24gcGFnZQot KiByZW1vdmUgfkZyYW1lSW5jbHVkZSBwbHVnaW4gKGZyYW1lcyBhcmUgbm90IHN1cHBvcnRlZCBp biBIVE1MIDUpCi0qIHNvcnQgdGFibGVzIHdpdGggW1todHRwOi8vdGFibGVzb3J0ZXIuY29tfHRh Ymxlc29ydGVyIGpRdWVyeSBwbHVnaW5dXSBpbnN0ZWFkIG9mIHNvcnRhYmxlLmpzCi0qIGZpeCBC dWcjNjM2IFJlY3Vyc2l2ZSBpbmNsdWRlIGlzIG5vdCB0cmFwcGVkCi0qIGZpeCBCdWcjNjQ3IHVu ZGVmaW5lZCBtZXRob2Qge3t7V2lraURCX2JhY2tlbmRfZGJhOjpXaWtpREJfYmFja2VuZF9kYmFC YXNlfX19Ci0qIGNvcnJlY3QgdG90YWwgbnVtYmVyIG9mIHBhZ2VzIGZvciBBbGxQYWdlc0NyZWF0 ZWRCeU1lLCBBbGxQYWdlc093bmVkQnlNZSwgQWxsUGFnZXNMYXN0RWRpdGVkQnlNZQotKiBmaXgg QnVnIzYwNyBCYWNrTGlua3MgZG8gbm90IHdvcmsgaW5zaWRlIGEgW1tIZWxwOlJpY2hUYWJsZVBs dWdpbnxSaWNoVGFibGVdXQotKiBmaXggQnVnIzY0NiBXcm9uZyBudW1iZXIgb2YgbGlua3MgaW4g QmFja0xpbmtzCi0qIG1ha2UgPGluY2x1ZGVvbmx5PiB3b3JrCi0qIHJlbW92ZSBvbGQgfldpa2lV c2VyIGNvZGUgKEVOQUJMRV9VU0VSX05FVykKLSogYWRtaW4gYWx3YXlzIGhhcyByaWdodHMgdG8g c2VlIGFuZCBtb2RpZnkgcGFnZXMsIHJlZ2FyZGxlc3Mgb2YgQUNMcywgdG8gYXZvaWQgbG9ja2lu ZyBoaW1zZWxmIG91dAotKiBhZGQgbWlzc2luZyBpbWFnZXMgaW4gU2lkZWJhciB0aGVtZQotCi09 PSAxLjUuMCAyMDE0LTA3LTI5IE1hcmMtRXRpZW5uZSBWYXJnZW5hdSA9PQotCi09PT0gTWFpbiBD aGFuZ2VzID09PQotKiB+UGhwV2lraSAxLjUuMCBuZWVkcyBhdCBsZWFzdCBQSFAgNS4zLiBJdCBp cyBjb21wYXRpYmxlIHdpdGggUEhQIDUuMywgNS40IGFuZCA1LjUuCi0qIE9uZSBzaW5nbGUgd2lr aSBtYXJrdXAsIGJhc2VkIG9uIFdpa2ljcmVvbGUgYW5kIGNvbXBhdGlibGUgd2l0aCBjbGFzc2lj IHBocFdpa2kgbWFya3VwLgotKiBGdWxsIEhUTUwgNSBhbmQgQ1NTIDMuIEEgbW9kZXJuIGJyb3dz ZXIgaXMgbmVlZGVkLgotKiBGdWxsIFVURi04LgotCi09PT0gT3RoZXIgQ2hhbmdlcyA9PT0KLSog Rml4IGJhZCBkaXNwbGF5IGluIFRvb2xib3ggbWVudSAoU2lkZWJhciBhbmQgTW9ub2Jvb2sgdGhl bWVzKSByZXBvcnRlZCBieSBIYXJvbGQgSGFsbGlrYWluZW4KLSogRml4IENhcHRjaGEgcHJvYmxl bSByZXBvcnRlZCBieSBIYXJvbGQgSGFsbGlrYWluZW4KLSogTWVyZ2Ugfk9sZFRleHRGb3JtYXR0 aW5nUnVsZXMgaW50byB+VGV4dEZvcm1hdHRpbmdSdWxlcwotKiB+U3ludGF4SGlnaGxpZ2h0ZXIg cGx1Z2luIGlzIG5vdyBpbXBsZW1lbnRlZCB3aXRoIFtbaHR0cDovL2hpZ2hsaWdodGpzLm9yZy9d XSBpbnN0ZWFkIG9mIFtbaHR0cDovL3d3dy5hbmRyZS1zaW1vbi5kZV1dLgotKiBDaG1vZCBhY3Rp b24gaXMgcmVtb3ZlZC4KLSogTmV3IGFjdGlvbjogfkRlbGV0ZUFjbAotKiBVcGRhdGVkIGRvY3Vt ZW50YXRpb24gcGFnZXMgaW4gcGdzcmMuCi0qIFVwZGF0ZWQgdHJhbnNsYXRpb25zLgotCi09PSAx LjQuMCAyMDE0LTA3LTI1IFJlaW5pIFVyYmFuLCBNYXJjLUV0aWVubmUgVmFyZ2VuYXUsIFNhYnJp IExhYmJlbmVzLCBTw6liYXN0aWVuIExlIENhbGxvbm5lYyA9PQotCi1+UGhwV2lraSAxLjQuMCBp cyB0aGUgc2FtZSBhcyB+UGhwV2lraSAxLjQuMFJDMS4gSXQgaXMgdGhlIGxhc3QgcmVsZWFzZSBj b21wYXRpYmxlIHdpdGggUEhQIDQuCi0KLT09IDEuNC4wUkMxIDIwMTAtMDktMTcgUmVpbmkgVXJi YW4sIE1hcmMtRXRpZW5uZSBWYXJnZW5hdSwgU2FicmkgTGFiYmVuZXMsIFPDqWJhc3RpZW4gTGUg Q2FsbG9ubmVjID09Ci0KLVRoaXMgaXMgYSBuZXcgbWFqb3IgcmVsZWFzZSwgd2hlcmUgZXZlcnl0 aGluZyBjaGFuZ2VkIGZyb20gMS4yLCBhbmQgbG90cyBvZiBjaGFuZ2VzIHNpbmNlIDEuMy4xNC4K LQotQW4gaW1wb3J0YW50IG1vZGlmaWNhdGlvbiBpbiB0aGlzIHJlbGVhc2UgaXMgdGhlIGltcGxl bWVudGF0aW9uCi1vZiBmdWxsIFdpa2ljcmVvbGUgMS4wIHN5bnRheCwgaW5jbHVkaW5nIGFkZGl0 aW9ucy4KLQotVGhlICJjbGFzc2ljIiBQaHB3aWtpIHN5bnRheCBpcyBzdGlsbCBzdXBwb3J0ZWQu Ci0KLVRoZSBkb2N1bWVudGF0aW9uIHBhZ2VzIGZvdW5kIGluIHBnc3JjIGhhdmUgYmVlbiBtb3N0 bHkgY29udmVydGVkIHRvIFVURi04IGFuZAotV2lraWNyZW9sZSBzeW50YXggKHdpdGggdGhlIGFk ZGl0aW9uIG9mIHRhYmxlcyBpbiBNZWRpYXdpa2kgc3ludGF4LCBzaW5jZSBXaWtpY3Jlb2xlIDEu MAotZG9lcyBub3Qgc3VwcG9ydCAiY29tcGxleCIgdGFibGVzIHdpdGggYmxvY2sgZWxlbWVudHMg aW4gY2VsbHMsIGxpa2UgbGlzdHMgb3IKLXBhcmFncmFwaHMpLgotCi1JbXByb3ZlZCBkdW1waW5n LCBwYWdlc2V0IGhhbmRsaW5nIGZvciBmb3JtYXQ9IHdpdGggfkFjdGlvblBhZ2VzLgotZS5nLiBk dW1wIHBhZ2VzZXRzIG9yIG11bHRpLXBhZ2UgcGRmJ3MuCi0KLVRoZSBTaWRlYmFyIHRoZW1lIGlz IG5vdyBhbiBleHRlbnNpb24gb2YgdGhlIE1vbm9ib29rIHRoZW1lIChrbm93biBmcm9tIFdpa2lw ZWRpYSksCi10aGUgbmV3IGZ1c2lvbmZvcmdlIHRoZW1lIGlzIHRvIGJlIHVzZWQgdG9nZXRoZXIg d2l0aCBbW2h0dHA6Ly9mdXNpb25mb3JnZS5vcmd8RnVzaW9uRm9yZ2VdXSAodGhlIHN1Y2Nlc3Nv ciBvZiBHZm9yZ2UpLgotCi09PT0gRml4ZXMgPT09Ci0qIGZpeCB+UGFnZVBlcm0gZm9yIG11bHRp cGxlIGdyb3Vwczogbm90IGEgbWVtYmVyIGFuZCB1bmRlY2lkZWQ6IGNoZWNrIG90aGVyIGdyb3Vw cwotKiBmaXggcnNzIGJ1dHRvbiBhY3Rpb25zIGZvciBzcGVjaWFsIFJlY2VudENoYW5nZXMgYWN0 aW9ucyAoVXNlckNvbnRyaWJzLCBQYWdlSGlzdG9yeSwgLi4uKQotKiBmaXggQnVnIzE3NDk5NTAg YWNjZXNzbG9nIFNRTCBkdXJhdGlvbiBmbG9hdCB3aXRoICIsIgotKiBmaXggdGVtcGxhdGUgaW5j bHVzaW9uIHdpdGggYSByZWN1cnNpb24gY3ljbGUgbGVhZGluZyB0byBjcmFzaGVzIGluIGJsb2cg UGFnZUluZm8KLSogcmVtb3ZlZCBkeW5hbWljIGZlYXR1cmVzIGZyb20gaHRtbGR1bXAgcGFnZXMg Zm9yIG1vcmUgc3RhdGljIHBsZWFzdXJlCi0qIGlnbm9yZSBmYXRhbHMgYW5kIGFjY2Vzcy1kZW5p ZWQgc3Rvd3N0b3BwZXJzIG9uIG11bHRpLXBhZ2UgZHVtcHMKLSogbGluayBvbmx5IHRvIGV4aXN0 aW5nIHBhZ2VzIG9uIG11bHRpLXBhZ2UgZHVtcHMgKHBhZ2VzZXRzKQotKiBmaXggQnVnIzE3OTU0 MjAgYnkgU3ZlbiBHaW5rYTogVXNlIC9VIGluIHByZWdfbWF0Y2gKLSogZW5zdXJlIGVuZGluZyB1 cGxvYWRzIHNsYXNoIGV2ZW4gb24gdXNlciBwcm92aWRlZCBVUExPQUQgY29uc3RhbnRzLiBGaXhl cyBwbHVnaW4vflVwTG9hZAotKiBzdGFiaWxpemUgQ29tbWVudC4gc3Vic3RyaW5nIHNlYXJjaCBm b3IgYmFzZXBhZ2VzLCBkbyBub3QgdG9rZW5pemUuCi0qIGZpeCBCdWcjMTc5MjE3MCBIYW5kbGUg IiAoICIgb3IgIih0ZXN0IiB3aXRob3V0IGNsb3NpbmcgIikiIGFzIHBsYWluIHdvcmQuIEFsbG93 IHNpbmdsZSBzdHJpbmcgdG9rZW4gIjAiCi0qIGZpeCBCdWcjMTc1MjE3MiB1bmRlZmluZWQgbWV0 aG9kIHt7e1RleHRTZWFyY2hRdWVyeV9ub2RlX29yOjpfc3FsX3F1b3RlKCl9fX0KLSogZGJhOiBm aXggc29ydGluZyBmb3IgZW1wdHkgbXRpbWUgZmllbGQKLSogfkxkYXBTZWFyY2g6IGZpeCBsYXlv dXQgYW5kIGxvZ2ljCi0qIH5GaWxlSW5mbzogZml4ICMjVXBsb2FkfjojIyBsaW5rcwotKiBYSFRN TCB2YWxpZGF0aW9uIGNvcnJlY3Rpb25zICh2YXJnZW5hdSkKLSogYXZvaWQgcmVjdXJzaXZlIG1v ZGlmaWNhdGlvbiB3aGVuIHJlbmFtaW5nIGEgcGFnZSBsaWtlICd+UGFnZUZvbyB0byAnflBhZ2VG b29Ud28nICh2YXJnZW5hdSkKLSogZml4IEJ1ZyMxODA4MDAyIFRhYmxlIG9mIGNvbnRlbnRzIHBs dWdpbiBkb2VzIG5vdCBuZXN0IG51bWJlcmluZyAodmFyZ2VuYXUpCi0qIGZpeCBCdWcjMTkwMzgx NSBDYW5ub3QgcHV0ICIwIiBpbiB+UmljaFRhYmxlIGNlbGwsIGNlbGwgYmVjb21lcyBlbXB0eSAo dmFyZ2VuYXUpCi0qIGZpeCBCdWcjMTkwNDA4OCAgU29tZSBicmFja2V0cyBsaW5rcyB3aXRoIFxu IGNhdXNlIHRoZSBwYXJzZXIgdG8gY3Jhc2gKLSogZml4ZWQgaW5jb3JyZWN0IG51bWJlcmluZyBp biBUYWJsZSBvZiBDb250ZW50cyBudW1iZXJpbmcgKHZhcmdlbmF1KQotKiBmaXggQnVnIzE5Njcx NDcgfkZpbGVJbmZvUGx1Z2luIGRvZXMgbm90IGFsbG93IGRpc3BsYXk9b3duZXIKLSogZml4IEJ1 ZyMxOTkyMTcyIEludGVyd2lraSBsaW5rIGRvZXMgbm90IHdvcmsgaW4gflJpY2hUYWJsZSAodmFy Z2VuYXUpCi0qIGZpeCBCdWcjMjAxMDc0OCBNaXNzaW5nIGltYWdlCi0qIGZpeCBCdWcjMTgzMTg4 MSBGYXRhbCBkYXRhYmFzZSBlcnJvciB3aGVuIHNvcnRpbmcgY29sdW1ucyAodmFyZ2VuYXUpCi0q IGZpeCB+UGFnZUxpc3QgcHJldi9uZXh0IGxpbmtzIG9uIG11bHRpLWNvbHVtbnMgbGlzdHMsIGlt cHJvdmUgaGFuZGxpbmcgb2Ygb3JkZXJlZCBsaXN0cwotICBmaXhlZCBzbGljaW5nIHdpdGggbGlz dC1iYXNlZCBiYWNrZW5kcyAoZGJhLCBmaWxlKS4KLSogYWxsb3cgc2luZ2xlICIwIiBhcyBub3Qt ZW1wdHkgcGFnZSBjb250ZW50Ci0qIGZpeCBhY3Rpb249cmVuYW1lLCBzdXBwb3J0IG5ldyBvcHRp b25hbCBhcmd1bWVudCB0bz1uZXdwYWdlbmFtZQotKiBmaXggbXVsdGlwbGUgVVNFUl9BVVRIX01F VEhPRCB3aGVyZSB0aGUgZmlyc3QgbWV0aG9kIGRpZCBub3Qgc3VjY2VlZC4KLQotPT09IENoYW5n ZXMgPT09Ci0tIGNoYW5nZWQgflNlbWFudGljU2VhcmNoIHF1ZXJ5IHNlbWFudGljczogYWxsIHJl Z2V4PWF1dG8gdGVybXMgd2l0aCBubyByZWdleCBjaGFycyAoLisqP14kIikKLSAgd2lsbCBiZSBz ZWFyY2hlZCBleGFjdCwgYW5kIG5vdCB3aXRoIHJlZ2V4PWF1dG8uIFRoaXMgbWVhbnMgbm8gd29y ZCBzcGxpdHRpbmcsIG5vIHN1YnN0cmluZ3MuCi0qIHJhbmtlZCBzZWFyY2ggZm9yIHRpdGxlIGFu ZCBmdWxsdGV4dCBmb3Igbm9uLVNRTCBiYWNrZW5kcy4gU2ltcGxlIHNjb3JlIGZ1bmN0aW9uLgot KiBhbGxvdyBjb21tZW50cyBpbiB+V2lraUdyb3VwIGxpc3RzIGFmdGVyIHVzZXJuYW1lCi0qIGFl c3RoZXRpYyByZXF1ZXN0OiByZW1vdmUgP2FjdGlvbj1lZGl0IGFmdGVyIGVkaXQKLSogY3JlYXRl IGludGVyaW0gcGFnZXMgYXMgbWlub3Igbm90IHNlZSB0aGVtIGluIFJlY2VudENoYW5nZXMKLSog ZGVmYXVsdCB0aGVtZTogdXNlIHN0YW5kYXJkIHNlYXJjaCB0ZW1wbGF0ZSAofkxpdmVTZWFyY2gp Ci0qIFtbSGVscDpDYWxlbmRhclBsdWdpbl1dIGNoYW5nZWQgZGVmYXVsdCBzdGFydF93ZGF5IGZy b20gMCB0byAxIChNb25kYXkpCi0qIFtbSGVscDpDYWxlbmRhckxpc3RQbHVnaW5dXSBwYWdlcyBu b3cgaW4gcGFyYWxsZWwgd2l0aCBDYWxlbmRhcjogeWVhciArIG1vbnRoIGFyZ3MgYXMgc3RhcnQg YmFzZS4KLSAgVGhlIGJlaGF2aW91ciBiZWZvcmUgMjAwNyB3aXRoIGxhc3QvbmV4dF9uX2RheXMg d2FzIHRvIHN0YXJ0IG5vdy4KLSogcmVtb3ZlZCBmcGRmIHN1cHBvcnQuIG9ubHkgdXNlIGV4dGVy bmFsIGNvbnZlcnRlcnMKLSogY2hhbmdlIHJlbmFtZSBhY3Rpb24gZnJvbSBhY2Nlc3MgcGVybSBj aGFuZ2UgdG8gZWRpdDogYWxsb3cgdGhlIHNpZ25lZC1pbiB1c2VyIHRvIHJlbmFtZS4KLSogaHRt bGR1bXAgY29waWVzIGxvY2FsbHkgdXBsb2FkZWQgaW1hZ2VzIGFsc28KLSogaW1wcm92ZSBTZW1h bnRpY1JlbGF0aW9ucyBsYXlvdXQ6IGRpcmVjdCBsaW5rcywgc3VwcG9ydCBhdHRyaWJ1dGVzIGFu ZCByZWxhdGlvbnMgZmlsdGVycwotKiB+TGRhcFNlYXJjaDogdXNlIGRlZmF1bHQgYmFzZWRuCi0q IFdob0lzT25saW5lIGNsZWFucyBzdGFsZSBzZXNzaW9ucwotKiByZW1vdmUgVXBsb2FkIGJ1dHRv biBmcm9tIGVkaXQKLSogY2hhbmdlZCBXaWtpd3lnIGVkaXRvciB3b3JrZmxvdyAobGFiYmVuZXMp Ci0qIGFsbG93IDxzPiB0byBzdHJpa2U7IHVwZGF0ZSBIZWxwIGZvciA8cz4gYW5kIDxzdHJpa2U+ ICh2YXJnZW5hdSkKLSogflJpY2hUYWJsZSBwbHVnaW46IGVucmljaCBzeW50YXggZm9yIGF0dHJp YnV0ZXMgKHZhcmdlbmF1KQotKiBtb3JlIGljb25zIGZvciB0b29sYmFyICh2YXJnZW5hdSkKLSog VXNlclByZWZlcmVuY2VzOiBzcGVjaWZpYyBtZXNzYWdlIHdoZW4gb25seSBvbmUgcHJlZmVyZW5j ZSBpcyB1cGRhdGVkICh2YXJnZW5hdSkKLSogcmVuYW1lZCBjbGFzcyBUaGVtZSB0byB+V2lraVRo ZW1lIHRvIGF2b2lkIEdmb3JnZSBuYW1lIGNsYXNoICh2YXJnZW5hdSkKLSogbnVtZXJpYyBjZWxs cyBpbiB0YWJsZXMgYXJlIG5vdyByaWdodC1hbGlnbmVkIGJ5IGRlZmF1bHQgKHZhcmdlbmF1KQot KiA8bm9pbmNsdWRlPiBhbmQgPC9ub2luY2x1ZGU+IHNob3VsZCBub3QgYXBwZWFyIGV2ZW4gd2hl biBub3QgaW5jbHVkZWQgKHZhcmdlbmF1KQotKiBzcGxpdCBQaHBXaWtpQWRtaW5pc3RyYXRpb24g aW4gdHdvIHBhZ2VzOiBQaHBXaWtpQWRtaW5pc3RyYXRpb24gYW5kIFBocFdpa2lEZWJ1ZyAodmFy Z2VuYXUpCi0qIEltcHJvdmUgaGFuZGxpbmcgb2YgY29sb3IgdGV4dCAoZXNwZWNpYWxseSBpbiBj YXNlIG9mIGVycm9ycykuIE1vcmUgY29sb3IgbmFtZXMgYXJlIGFsbG93ZWQuICh2YXJnZW5hdSkK LSogflNldEFjbCwgQ2hvd24sIE1hcmt1cCBhbmQgUmVuYW1lIGFyZSBtYXJrZWQgYXMgbWlub3Ig ZWRpdHMuICh2YXJnZW5hdSkKLSogRGlzcGxheSAibWlub3IgZWRpdCIgZm9yIG1pbm9yIGVkaXRz IGluIH5SZWNlbnRDaGFuZ2VzIChsaWtlIGluIH5QYWdlSGlzdG9yeSkuICh2YXJnZW5hdSkKLSog SW4gV2lraUFkbWluU2VsZWN0LCBwdXQgYnV0dG9ucyBpbiBhbHBoYWJldGljIG9yZGVyIGxpa2Ug aW4gcGFnZSB+UGhwV2lraUFkbWluaXN0cmF0aW9uLiAodmFyZ2VuYXUpCi0qIEluIH5QaHBXaWtp QWRtaW5pc3RyYXRpb24sIGFsbCBwYWdlcyBhcmUgc2hvd24gaW5zdGVhZCBvZiBmaXJzdCA1MC4g Tm8gcGFnaW5nIGlzIGRvbmUuICh2YXJnZW5hdSkKLSogSW4gfldpa2lBZG1pblNlYXJjaFJlcGxh Y2UsIG9ubHkgcGFnZXMgd2hlcmUgYSByZXBsYWNlbWVudCB3YXMgZG9uZSBhcmUgc2hvd24gYXMg ZmVlZGJhY2suICh2YXJnZW5hdSkKLSogSW4gfldpa2lBZG1pblNlYXJjaFJlcGxhY2UsIHNob3cg cGFnZXMgd2hlcmUgcmVwbGFjZW1lbnQgd2lsbCBiZSBkb25lLiAodmFyZ2VuYXUpCi0qIEZvciBm aWxlIHVwbG9hZCwgdXNlIGJsYWNrIGxpc3Qgb2YgZXh0ZW5zaW9ucyBpbnN0ZWFkIG9mIHdoaXRl IGxpc3QuICh2YXJnZW5hdSkKLSogSXQgaXMgbm93IHBvc3NpYmxlIHRvIGluc2VydCBwcmVkZWZp bmVkIGljb25zIGluIHdpa2kgdGV4dC4gU2VlIFtbSGVscDpQcmVkZWZpbmVkSWNvbnNdXS4gKHZh cmdlbmF1KQotKiBBbGxvdyAie3t7I1tbfX19IiBzeW50YXggZm9yIGFuY2hvcnMuICh2YXJnZW5h dSkKLSogSGFuZGxlIHJlZGlyZWN0aW9ucyBpbiBUZW1wbGF0ZSBwbHVnaW4uICh2YXJnZW5hdSkK LSogQWxsb3cgV2lraWNyZW9sZSBzeW50YXggZm9yIHJlZGlyZWN0aW9ucyBpbiB+SW5jbHVkZVBh Z2UgcGx1Z2luLiAodmFyZ2VuYXUpCi0qIE5ldyBwcmVmZXJlbmNlIHRvIGF2b2lkIGUtbWFpbCBu b3RpZmljYXRpb25zIGZvciBtaW5vciBlZGl0cyBvbiBXaWtpICh2YXJnZW5hdSkKLSogTm8gZGVj b3JhdGlvbiBmb3IgYWJicmV2aWF0aW9ucyB3aGVuIHByaW50aW5nICh2YXJnZW5hdSkKLSogQWRk IENTUzMgY29kZSBmb3IgcGFnZSBoZWFkZXJzIGFuZCBmb290ZXJzICh3b3JrcyBmb3IgUERGIGdl bmVyYXRpb24gd2l0aCBQcmluY2UgWE1MKSAodmFyZ2VuYXUpCi0qIFJlbW92ZSBzdXBlcmZsdW91 cyBzY3JvbGxiYXIgZnJvbSBwcmludGFibGUgcHJlJ3MKLQotPT09IE5ldyA9PT0KLSogflBhZ2VM aXN0IHN1cHBvcnRzIGxpc3R0eXBlPXVsLG9sLGRsLiBkbCB1c2VkIGJ5IEZ1bGxUZXh0U2VhcmNo Ci0qIHBhZ2VhYmxlIHRleHRzZWFyY2ggcmVzdWx0cwotKiBleHRlcm5hbCBzZWFyY2ggYnV0dG9u IGJ5IHVzaW5nIFNlYXJjaDogYW5kIHNlYXJjaHR5cGU9ZXh0ZXJuYWwKLSogYWRkZWQgflVuaXZl cnNhbFdpa2lFZGl0QnV0dG9uIHRvIH5Nb25vQm9vaywgZGVmYXVsdCwgYmxvZy4gTW9yZSB0aGVt ZXMgbGF0ZXIuCi0qIGFkZCBJTlNFQ1VSRV9BQ1RJT05TX0xPQ0FMSE9TVF9PTkxZIGZvciBhZHZh bmNlZCBzZWN1cml0eSBhY3Rpb25zCi0qIGVuYWJsZSAiXkEgb3IgXkIiIHBhZ2VzIGFyZ3VtZW50 IGZvciB+UGFnZUxpc3RzOiBlLmcuIHNwbGl0dGVkIGFjdGlvbnMgZm9yIGxhcmdlIGh0bWxkdW1w J3MKLSogZGJhOiBhZGQgYXJncyB0byBjaGVjayBhbmQgcmVidWlsZCAoZnVsbCBvciBsaW5rcyBv bmx5KQotKiBSZWNlbnRDaGFuZ2VzOiBhZGQgY2F0ZWdvcnksIHBhZ2VtYXRjaCBhcmd1bWVudHMK LSogYWRkIFVyaVJlc29sdmVyIG5lZWRlZCBmb3IgZXh0ZXJuYWwgcmRmIGFjY2VzcwotKiBBcHBl bmRUZXh0OiBzdXBwb3J0IHBhZ2VzIGFyZ3VtZW50OiBhcHBlbmQgdG8gbXVsdGlwbGUgcGFnZXMK LSogbmV3IHJlYWRvbmx5IGRhdGFiYXNlIGRldGVjdGlvbiBmb3IgZGJhLCBhbmQgb3B0aW9uYWwg Y29uZmlnIFJFQURPTkxZIGZvciBtYWludGVuYW5jZQotKiBuZXcgcGFnZXM6IFNwZWNpYWxQYWdl cywgTG9ja2VkUGFnZXMgKHZhcmdlbmF1KQotKiBpbXBsZW1lbnRlZCBNZWRpYXdpa2ktbGlrZSBz eW50YXggZm9yIHRhYmxlcyAodmFyZ2VuYXUpCi0qIGVuYWJsZSB+UmVjZW50Q2hhbmdlc0NhY2hl ZCBhcyBib3gsIGltcHJvdmUgcGVyZm9ybWFuY2UuCi0qIGltcGxlbWVudGVkIFdpa2ljcmVvbGUg MS4wIHN5bnRheCwgaW5jbHVkaW5nIGFkZGl0aW9ucyAodmFyZ2VuYXUpCi0qIGltcGxlbWVudGVk IHNpbXBsZSBbW0hlbHA6U3ByZWFkc2hlZXR8c3ByZWFkc2hlZXRdXSBmdW5jdGlvbnMgZm9yIFdp a2ljcmVvbGUgdGFibGVzICh2YXJnZW5hdSkKLSogbmV3IHBsdWdpbjogW1tIZWxwOkN1cnJlbnRU aW1lUGx1Z2lufEN1cnJlbnRUaW1lXV0gKHZhcmdlbmF1KQotKiBuZXcgcGx1Z2luOiBbW0hlbHA6 Q2hhcnRQbHVnaW58Q2hhcnRdXSAodmFyZ2VuYXUpCi0qIG5ldyBtc3NxbG5hdGl2ZSBiYWNrZW5k IChNUyBTUUwgU2VydmVyIDIwMDUrKSAoY2hyaXNkcHVjY2kpCi0KLT09IDEuMy4xNCBKdWx5LCAx IDIwMDcsIFJlaW5pIFVyYmFuID09Ci0KLT09PSBGaXhlcyA9PT0KLSogRml4IHRoZSBicm9rZW4g TERBUCBmaXggZnJvbSAxLjMuMTNwMQotKiBmaXhlZCBzb3J0Ynkgd2l0aCBtdWx0aXBsZSBwYWdl bGlzdHMKLQotPT09IENoYW5nZXMgPT09Ci0qIGNoYW5nZXMgYWxsIHRoZW1laW5mby5waHAgZmls ZXMsIG1vdmVkIGdsb2JhbCB0byBtZXRob2QgbG9hZCgpIHRvIGJlCi0gIGVhc2llciBkZXJpdmVk IGZyb20gY3VzdG9tIHRoZW1lIGNsYXNzZXMsIG1haW4gbm93IGNhbGxzICR+V2lraVRoZW1lLT5s b2FkCi0qIH5NYWlsTm90aWZ5IGlzIG5vdyBzaWxlbnQgdW5sZXNzIERFQlVHCi0KLT09PSBOZXcg PT09Ci0qIGFkZGVkIGV4cGVyaW1lbnRhbCBBVE9NIHN1cHBvcnQKLSogYWRkZWQgQ2hhbmdlcyBh bmQgVXBsb2FkIGJ1dHRvbiB0byBlZGl0Ci0KLT09IDEuMy4xM3AxIEp1bmUsIDkgMjAwNywgUmVp bmkgVXJiYW4gPT0KLQotQW4gaW1tZWRpYXRlIHNlY3VyaXR5IGZpeCBmb3IgMS4zLjEzLCBwbHVz IHNvbWUgbWlub3IgZml4ZXMuCi0KLT09PSBGaXhlcyA9PT0KLSogTERBUCBBdXRoOiBEaXNhbGxv dyBlbXB0eSBwYXNzd29yZHMhIENlcnRhaW4gbGRhcCBpbXBsZW1lbnRhdGlvbnMgcmV0dXJuIHRy dWUKLSAgb24gZW1wdHkgcGFzc3dvcmRzIHdpdGggbGRhcF9iaW5kKCkuCi0qIExEQVAgQXV0aDog Zml4IHBhc3N3b3JkIHF1b3RpbmcKLSogZml4IGFjdGlvbj11cGdyYWRlIGZvciBkYmEsIHJlbmFt ZSBub3NxbCB0byBub2RiCi0qIGZpeGVzIH5TcGFtQmxvY2tMaXN0IGNvbmZpZyBmaWxlIGxvY2F0 aW9ucyAoY29uZmlnL3R3by1sZXZlbC10bGRzLCBjb25maWcvd2hpdGVsaXN0KQotKiBlbmFibGUg JH5NYWlsTm90aWZ5LT5vbkNoYW5nZVBhZ2UKLSogZml4IGRpc3BsYXkgb2YgcGFnZW5hbWVzIGNv bnRhaW5pbmcgIjoiIGluIGNlcnRhaW4gbGlzdHMKLSogZml4ZWQgYmFja2VuZCBhc0FycmF5IGFj Y2VzcyB0byBpdGVyYXRvcnMgKH5EZWJ1Z0luZm8gd2l0aCBTUUwpCi0qIGZpeCB3cm9uZyB+UGhw V2lraUN2cyBJbnRlcldpa2lNYXAgZW50cnkKLSogZml4IHN5bnRheCBlcnJvciBpbiBwZ3NyYy9I ZWxwJTJGQWN0aW9uUGFnZQotKiBmaXggY2FzZSBpbiBwZ3NyYy9IZWxwJTJGQXNjaWlTVkdQbHVn aW4KLSogZml4IGxpbmtzIGluIHBnc3JjL0hlbHAlMkZTZW1hbnRpY1JlbGF0aW9ucwotKiBmaXgg cGdzcmMvSGVscCUyRldpa2lQbHVnaW4KLQotPT09IENoYW5nZXMgPT09Ci0qIGFsbG93IFxuIGFu ZCBzaW5nbGUgbGV0dGVyIHBhZ2VzIGluIH57fnsgfn1+fSB0ZW1wbGF0ZSBzeW50YXguCi0gIHBh dGNoICMxNzMyNzkzIGJ5IH5BbEpldXggYW5kIH5SZWluaVVyYmFuCi0qIHdpdGggRU5BQkxFX1NQ QU1CTE9DS0xJU1QgY2hlY2sgb25seSBuZXcgZXh0ZXJuYWwgbGlua3M6Ci0gIG1heCA1LCBhbGxv dyBpbnRlcndpa2kgbGlua3MsIGFuZCBpbXByb3ZlIGZhaWxlZCBvdXRwdXQuCi0KLT09IDEuMy4x MyBKdW5lLCAyIDIwMDcsIFJlaW5pIFVyYmFuID09Ci0KLVRoaXMgaXMgbWFqb3IgZmVhdHVyZSBy ZWxlYXNlIHdoaWNoIHdpbGwgYmUgdGhlIGJhc2UgZm9yIHRoZSBzdGFibGUKLTEuNC4wLiAgVGhl IGhpZ2hsaWdodHMgYXJlIH5TZW1hbnRpY1dlYiBzdXBwb3J0LCBiYXNpYyBzdXBwb3J0IGZvcgot dmFyaW91cyBXWVNJV1lHIGVkaXRvcnMgKG5vdCB5ZXQgc3RhYmxlKSwgYSBzdGFibGUgfk1vbm9C b29rICh3aWtpcGVkaWEpCi1hbmQgQmxvZyB0aGVtZSwgZW5hYmxlZCBhY2Ryb3Bkb3duIHN1cHBv cnQgKH5MaXZlU2VhcmNoKSwgcG9zdGdyZXNxbCBhbmQKLW9yYWNsZSBlbmhhbmNlbWVudHMsIG1v dmluZyBIZWxwIHBhZ2VzIGludG8gSGVscC8sIHN1cHBvcnQgZGlmZmVyZW50Ci1jaGFyc2V0cyBp biBwZ3NyYyBhbmQgV2luZG93cyBOVExNIGF1dGggc3VwcG9ydCB2aWEgfkh0dHBBdXRoLCBhIGxv dAotbW9yZSBwbHVnaW5zIGFuZCBlbmhhbmNlbWVudHMuIFVURi04IHNob3VsZCB3b3JrLgotCi09 PT0gRml4ZXMgPT09Ci0qIGZpeCB+VXBMb2FkIHRvIGRpc2FsbG93IGFsbCBwaHAgZXh0ZW5zaW9u cwotKiBEQjogdXNlIEFOU0kgU1FMIHN0YXRlbWVudHMgKG9yYWNsZSBieSBCb2IgUGVlbGUgJiBD aHJpc3RvcGhlciBKb25lcywKLSAgcG9zdGdyZXNxbCBieSBSZWluaSBVcmJhbikKLSogZml4ZWQg YmxvZywgfk1vbm9Cb29rLCBzaWRlYmFyIGFuZCB3aWtpbGVucyB0aGVtZSBsYXlvdXQKLSogZml4 IFRlbXBsYXRlIGFuZCB+Q3JlYXRlUGFnZSB2YXJpYWJsZSBleHBhbnNpb24KLSogeGh0bWwgZHVt cCBmb3Igc3VicGFnZXMgaW50byBzdWJkaXJlY3RvcmllcywgZml4ZWQgZmlsZW5hbWVzIGFuZCBz dWJkaXIgbmFtZXMKLSogZml4ZWQgbG9hZGluZyBwYWdlcyBpbnRvIGZvcmVpZ24gY2hhcnNldHMg KHN1Y2ggYXMgdXRmLTgpCi0qIH5FcnJvck1hbmFnZXI6IHBhdGNoICMxNDM4NDM5IGJ5IE1hdHQg QnJvd246Ci0gIE9ubHkgc2V0IG5vLWNhY2hlIGhlYWRlcnMgd2hlbiBlcnJvciBvdXRwdXQgaXMg Z2VuZXJhdGVkCi0qIH5JbWFnZUxpbmtzOiBwYXRjaCAjMTM0ODk5NiBieSBSb2JlcnQgTGl0d2lu aWVjCi0qIGZpeCBidWcgIzEzMjc5MTIgbnVtZXJpYyBwYWdlbmFtZXMgY2FuIGJyZWFrIHBsdWdp bnMgKEpvYWNoaW0gTG91cykKLSogaW1wcm92ZSBwZGYgb3V0cHV0IHZpYSBleHRlcm5hbCBjb252 ZXJ0ZXIKLSogZm9yY2UgaW50ZWdlciBjb25zdGFudHMgdG8gYmUgc2V0IGFzIGludGVnZXIKLSog cGFydGlhbGx5IGZpeCBDUkMgb3ZlcmZsb3cgaW4gemlwbGliIChCb2IgQXB0aG9ycGUpCi0qIHRl c3RzdWl0ZTogZm9yY2UgQyBsb2NhbGUgYW5kIEVOICRMQU5HCi0qIGZpeGVkIGRpc3BsYXkgb2Yg ZWRpdGVkIEludGVyV2lraU1hcC4gc3RhdGljIHZhciBpc3N1ZQotKiBmaXhlZCBkaXNwbGF5IG9m ICJNZXJnZSBhbmQgRWRpdDogcGFnZW5hbWUiIGhlYWRlciBpbiBtZXJnZSBlZGl0IChoYWNrISkK LSogfldpa2lGb3JtUmljaDogZml4IG5hbWU9dmFsdWUgcGFyc2luZy4gZml4IGxpbWl0IHdpdGgg cGx1Z2luLWxpc3QgaW52b2NhdGlvbnMKLSogcGx1Z2luL0RpZmY6IGZpeCBsaWIvZGlmZiBsb2Fk aW5nIGNvbmZsaWN0cyBieSByZW1vdmluZyBkdXBsaWNhdGUgY2xhc3NlcwotKiBwbHVnaW4vUGxv dGljdXM6IHN1cHBvcnQgUExPVElDVVNfUFJFRkFCUyBjb25maWcuaW5pIHNldHRpbmcgKGRvY3Vt ZW50ZWQgYnV0IG5ldmVyIHdvcmtlZCkKLSogZml4IGVkaXQ6bG9ja2VkIGxhYmVsIHNlbGVjdGlv bjogdHlwbywgd2FzIGVkaXQ6bG9jawotKiBmaXhlZCBtb2FjZHJvcGRvd24gaW50ZWdyYXRpb24K LSogZml4ZWQgZm9ydHVuZSBlcnJvciBoYW5kbGluZwotKiBmaXhlZCBsaW1pdCBoYW5kbGluZyB3 aXRoIG11bHRpcGxlIHBhZ2VsaXN0czogZG9uJ3Qgb3ZlcndyaXRlIHJlcXVlc3QgYXJnCi0qIGNo YW5nZSBQYWdlRHVtcCBDb250ZW50LVR5cGUgaGVhZGVyIGZvciBkb3dubG9hZCB0byBhcHBsaWNh dGlvbi9vY3RldC1zdHJlYW0gdG8gYXZvaWQKLSAgcGVzdHkgLnR4dCBzdWZmaXhlcyBvbiBXaW5k b3dzIGNsaWVudHMKLSogZml4ZWQgd2lraWxlbnMgd2l0aCBkYmEgYW5kIFJBVElOR19TVE9SQUdF PVNRTC4gUkFUSU5HX1NUT1JBR0U9V0lLSVBBR0Ugbm90IHlldCBmaXhlZC4KLSogZml4ZWQgYWN0 aW9uPWRpZmYgZXJyb3Igd2l0aCBleHRlcm5hbCBsaW5rcwotCi09PT0gQ2hhbmdlcyA9PT0KLSog YWRkIH5VcExvYWQgcG9saWN5IERJU0FCTEVfVVBMT0FEX09OTFlfQUxMT1dFRF9FWFRFTlNJT05T LCBkZWZhdWx0OiBmYWxzZQotKiB+U2VtYW50aWNXZWI6IGFkZCBsaW5rcmVsYXRpb24gc3VwcG9y dCwgZ2V0UGFnZUxpbmtzIHJldHVybnMgbm93IGFuIGFycmF5IG9mIGhhc2hlcy4KLSAgb3B0aW1p emUgZ2V0X2xpbmtzIGZvciByZWxhdGlvbnMuCi0qIGFkZCBuZXcgbGlua3N5bnRheCAifls6cGFn ZW5hbWV+XSIgaW5zaWRlIHNxdWFyZSBicmFja2V0cyBvbmx5LCBub3QgdG8gc3RvcmUgYmFja2xp bmtzLgotICB+Wzp+RG9udFN0b3JlTGlua35dIChleHBlcmltZW50YWwpCi0qIG1vdmVkIGRlZmF1 bHQgaGVscCBwYWdlcyB0byBIZWxwLyBzdWJwYWdlcy4gUGFydGlhbGx5IGZvciAiZGUiIGFsc28u Ci0qIGdlbmVyYWxpemVkIEVOQUJMRV9IVE1MQVJFQTMgdG8gRU5BQkxFX1dZU0lXWUcKLSogc3Vw cG9ydCBtb3JlIH5XaWtpRm9ybVJpY2ggbWV0aG9kIGFyZ3VtZW50czogdXJsLCBkeW51cmwsIHht bHJwYywgZHlueG1scnBjLCBwbHVnaW4sCi0gIHRoZSBhdXRvY29tcGxldGUgb3B0aW9uIGZvciBw dWxsZG93bn5bfl0gYW5kIGVkaXRib3h+W35dIGFuZCB0aGUgbmV3IGNvbWJvYm94flt+XSB3aWRn ZXQuCi0gIEltcHJvdmUgfldpa2lGb3JtUmljaCBsYXlvdXQuCi0qIERCOiBmb3JlaWduIGtleSBz dXBwb3J0IGluIHNjaGVtYXMsIHNpbXBsaWZ5IG1ldGhvZHMKLSogcmVtb3ZlIHVzZXIgdGFibGU6 IHVwZ3JhZGUgZnJvbSBTUUwgZGIuCi0qIHVwZGF0ZWQgbG9jYWxlIGZvciBpdCwgZGUgYW5kIGVz IChnb29nbGUgdHJhbnNsYXRpb24pCi0qIGltcHJvdmUgbG9hZGluZyBtdWx0aXBsZSB2ZXJzaW9u IGFyY2hpdmVzIHN1Y2ggYXMgZnVsbCB6aXBkdW1wcy4gZm9yY2UgdGVtcC4gb3ZlcndyaXRlLgot ICBzdXBwb3J0IGxvYWRmaWxlIGZvciBtdWx0aXBhcnQgYXJjaGl2ZXMgKGZ1bGwgZHVtcHMpIGF1 dG9tYXRpY2FsbHkKLSogb21pdCBhY3Rpb25iYXIgZnJvbSBwZGYgb3V0cHV0Ci0qIHN1cHBvcnQg Y2hhcnNldHMgaW4gcGFnZWR1bXBzIGZvciBsb2FkZmlsZSBhbmQgdmlyZ2luIHNldHVwCi0qIF9+ QmFja2VuZEluZm9QbHVnaW4gcHJpbnRzIGxpbmtpbmZvIGFsc28uCi0qIH5FeHRlcm5hbFNlYXJj aFBsdWdpbiBkaXNwbGF5cyB0aGUgYnV0dG9uIGF0IHRoZSByaWdodC4gQ2hhbmdlIGl0IHdpdGgK LSAgRVhURVJOQUxTRUFSQ0hfREVGQVVMVF9CVVRUT05fUE9TSVRJT04gPSBsZWZ0LCBvciB0aGUg YXJndW1lbnQgYnV0dG9uX3Bvc2l0aW9uPWxlZnQgb3Igbm9uZS4KLSogZGlzYWJsZWQgcG9zdGdy ZXNxbCBvcHRpbWl6ZSgpIGluIGZhdm9yIG9mIGF1dG92YWN1dW0sCi0gIGVuYWJsZSBpdCBpbiB0 aGUgYmFja2VuZCBtZXRob2QgaWYgdGhlIHdlYiB1c2VyIGlzIHRoZSB0YWJsZSBvd25lciAoc2Vj dXJpdHkgcmlzaykKLSogcHJpbnQgIklnbm9yZWQgc3RvcGxpc3Qgd29yZHMiIG9uIEZ1bGxUZXh0 U2VhcmNoLAotICBhZGQgRlVMTFRFWFRTRUFSQ0hfU1RPUExJU1QgY29uc3RhbnQsCi0gIG1ha2Ug flRleHRTZWFyY2hRdWVyeS0+X3N0b3BsaXN0IGxvY2FsaXphYmxlCi0qIGZpeCBhcmcgb3JkZXIg aW4gV2lraURCX2JhY2tlbmRfc2VhcmNoKCkKLSogcHJvdGVjdGVkIHRlc3RzLiBvbmx5IGFsbG93 IGxvY2FsaG9zdAotKiBvcHRpbWl6ZSB+QXJjaGl2ZUNsZWFuZXIgZm9yIHRoZSBuZXcgZGVmYXVs dCBjYXNlIChzaW5jZSAxLjMuMTEpOiBLZWVwIGFsbCByZXZpc2lvbnMuCi0qIGNoYW5nZWQgdGhl IGRlZmF1bHQgREIgYmFja2VuZCBmcm9tIGdkYm0gdG8gZGJhIGRiNAotKiBjaGFuZ2VkIGFjdGlv bj11cGdyYWRlIHRvIGNoZWNrIGFuZCBzdG9yZSBhIGRiIHZlcnNpb24KLSogZG9uJ3QgbG9hZGZp bGUgKi5vcmlnIGZpbGVzICh0aGlzIG1pZ2h0IGJlIGEgbGltaXRhdGlvbi4gc29ycnkpCi0qIHJl bmFtZSBffkF1dGhGaWxlIHRvIH5EZWJ1Z0F1dGhGaWxlIGluIHVwZ3JhZGUKLSogdXBkYXRlZCBt b3N0IHRlbXBsYXRlIGZpbGVzIGZvciBoYXJtb25pc2F0aW9uCi0qIGNoYW5nZWQgZGVmYXVsdCB+ TGl2ZVNlYXJjaCBtZXRob2QgaW4gc2VhcmNoLnRtcGwgZnJvbSB1cmwgdG8geG1scnBjLiBmYXN0 ZXIgYW5kIGxlc3MgaGFja2lzaC4KLSogZml4ZWQgYWxsIHRlbXBsYXRlcyB3aXRoIG1pc3Npbmcg cmV2aXNpb24gY2hlY2suIGNhbiBiZSBmYWxzZS4KLSogcmV3cm90ZSBhbmQgcmVkZWZpbmVkIHt7 e1dpa2lEQjo6bGlzdFJlbGF0aW9uc319fS4gbGlzdCBvbmx5IGFsbCByZWxhdGlvbnMgYXMgYXJy YXkuCi0qIGNoYW5nZWQgU2VtYW50aWMgYXR0cmlidXRlIHN5bnRheCBmcm9tICI6LSIgdG8gIjo9 IiAocmVsZXZhbnQgdG8gY3ZzIHVzZXJzIG9ubHkpCi0qIGNoYW5nZSB+VGV4dFNlYXJjaFF1ZXJ5 IGhhbmRsaW5nIG9mIHJlZ2V4PXBjcmU6IHBsYWluIHN0cmluZywgbm8gcGFyc2luZyBhdCBhbGws Ci0gIGRldGVjdCBhbmQgYXBwbHkgbW9kaWZpZXJzLgotKiBlbmhhbmNlIHRleHQycG5nIGFyZ3Vt ZW50cyBhbmQgZmVhdHVyZXMuIFNlZSBbW0hlbHA6dGV4dDJwbmdQbHVnaW5dXQotKiBUZW1wbGF0 ZSBwbHVnaW46IGFsbG93IHBhc3NpbmcgYXJiaXRyYXJ5IGFyZ3MsIG5vdCBqdXN0IGluIHZhcnMu Ci0qIGFkZGVkIG9sZCBnZCBzdXBwb3J0IHRvIH5QaG90b0FsYnVtIHRodW1icyAofkltYWdlVGls ZSkKLSogSW1wcm92ZSB+TGRhcFNlYXJjaCBwbHVnaW4gYW5kIGFkZCBhY3Rpb24gcGFnZS4KLSog SW1wcm92ZWQgd2lraWxlbnMgdGhlbWUuCi0qIENoYW5nZWQgYWxsIGRlZmF1bHQgVGVtcGxhdGUg dmFycyB0byBleHBhbmRlZCB0byB1cHBlcmNhc2U6IFBBR0VOQU1FLCBVU0VSSUQsIC4uLgotKiBD U1M6IG5vIH5Nb25vQm9vayBjc3MgaGFja3MvcmVxdWVzdHMsIGNoZWNrIHNwZWNpYWwgYnJvd3Nl ciB2ZXJzaW9ucyBpbiBwaHAKLQotPT09IE5ldyA9PT0KLSogYWRkIH5TZW1hbnRpY1JlbGF0aW9u cyBzeW50YXgsIGRiIHN0cnVjdHVyZSBhbmQgYXR0cmlidXRlIHVuaXRzLgotICBTYW1wbGU6IHBh Z2VuYW1lPX5TYW5EaWVnbyBpc19hIDo6IGNpdHkgPT4gflNhbkRpZWdvIHJlbGF0aW9uID0gaXNf YSwgbGlua3RvID0gY2l0eQotICAgICAgICAgIHBvcHVsYXRpb24gOj0gMSwzMDUsNzM2IChudW1l cmljIHVuaXRzKQotICBTdG9yZSB1bmlmaWVkIGF0dHJpYnV0ZSBpbiBwYWdlZGF0YS4KLSogbmV3 IGV4cGVyaW1lbnRhbCBXWVNJV1lHIGVkaXQgbGlicmFyeSBmcmFtZXdvcms6Ci0gIH5XaWtpV3ln LCB0aW55bWNlLCBGQ0tlZGl0b3IsIGh0bWxhcmVhMywgaHRtbGFyZWEyLCBzcGF3Ci0qIG5ldyB3 eXNpd3lnX2VkaXRvciBmZWF0dXJlIGJ5IEplYW4tTmljb2xhcyBHRVJFT05FIGFuZCBTYWJyaSBM QUJCRU5FIChleHBlcmltZW50YWwpCi0qIGFkZGVkIHBvc3RncmVzcWwgdHNlYXJjaDIgc3VwcG9y dAotKiBuZXcgZXhwZXJpbWVudGFsIGZsYXRmaWxlIGJhY2tlbmQ6IHJlYWRhYmxlIHBhZ2Ugc291 cmNlIGZpbGVzIChleHBlcmltZW50YWwpCi0qIGFkZGVkIG5ldyB4bWxycGMgYW5kIFNPQVAgbWV0 aG9kczogfmxpc3RQbHVnaW5zLCB+Z2V0UGx1Z2luU3lub3BzaXMsIH5tYWlsUGFzc3dvcmRUb1Vz ZXIsCi0gIH5nZXRVcGxvYWRlZEZpbGVJbmZvLCB+bGlzdFJlbGF0aW9ucywgfmNhbGxQbHVnaW4s IH5saW5rU2VhcmNoCi0qIG5ldyBwbHVnaW5zOiB+U2VtYW50aWNTZWFyY2gsIH5TZW1hbnRpY1Jl bGF0aW9ucywgfkxpbmtTZWFyY2gsIH5MaXN0UmVsYXRpb25zLAotICB+RmlsZUluZm8sIH5Cb3hS aWdodCwgflBhc3N3b3JkUmVzZXQsIH5XYXRjaFBhZ2UsIH5TcGVsbENoZWNrLCB+U2VhcmNoSGln aGxpZ2h0LAotICBBc2NpaVNWRwotKiBhZGQgPG5vd2lraT48L25vd2lraT4gdGFnOiBUcmFuc2Zv cm0gb25seSBodG1sIG1hcmt1cCBhbmQgZW50aXRpZXMKLSogbmV3IG9wdGlvbiBESVNBQkxFX01B UktVUF9XSUtJV09SRCB0byBmb3JjZSBbIF0gZm9yIGxpbmtzCi0qIG5ldyBvcHRpb24gRU5BQkxF X01BUktVUF9ESVZTUEFOIChleHBlcmltZW50YWwpCi0qIG5ldyBvcHRpb24gUExVR0lOX01BUktV UF9NQVAgZm9yIHhtbC1zdHlsZSBwbHVnaW4gc3ludGF4IChleHBlcmltZW50YWwpCi0qIHN1cHBv cnQgV2luZG93cyBOVExNIEF1dGggdmlhIH5IdHRwQXV0aDogbW9kX250bG0gKGFwYWNoZTErMi4g YWxzbyBvbiBsaW51eCkKLSAgYW5kIG1vZF9hdXRoX3NzcGkgKGFwYWNoZTIuIGJldHRlciwgYnV0 IHdpbmRvd3Mgb25seSkKLSogbmV3IHN0YWJsZSBvcHRpb24gRU5BQkxFX1NFQVJDSEhJR0hMSUdI VCB3aXRoIGFjdGlvbnBhZ2UgYW5kIHBsdWdpbiBTZWFyY2hIaWdobGlnaHQuCi0gIEluIENWUyBm b3Igc29tZSB0aW1lIGNhbGxlZCBVU0VfU0VBUkNISElHSExJR0hULgotKiBwYXRjaCAjMTM3NzAx MSBieSBNYXR0IEJyb3duOiBhZGQgREFUQUJBU0VfT1BUSU1JU0VfRlJFUVVFTkNZCi0qIG5ldyBv cHRpb25zIGRiLWNoZWNrIGFuZCBkYi1yZWJ1aWxkIGZvciB+V2lraUFkbWluUGx1Z2luLgotICBZ b3UgY2FuIG5vdyByZXRyYW5zZm9ybSBhbGwgcGFnZXMgYXQgb25jZS4KLSogbmV3IH5NYWlsTm90 aWZ5IGNsYXNzLCBzaW1wbGlmaWVkIFdpa2lEQi5waHAKLSogYWRkZWQgIlByaW50YWJsZSB2ZXJz aW9uIiBqcyB0byBtb25vYm9vayB0aGVtZS4gU2VlIExpY2Vuc2UgaW4KLSAgaHR0cDovL3d3dy5o b3d0b2NyZWF0ZS5jby51ay9qc2xpYnMvdGVybXNPZlVzZS5odG1sCi0qIG5ldyB+QWN0aW9uQnV0 dG9uIGZ1bmN0aW9uIGZvciB+TW9ub0Jvb2sgd2l0aCBzZWxlY3RlZCBzdGF0ZS4gKHRhYiBzdGF0 ZSkKLSogYWRkZWQgflN5bmNXaWtpIHBsdWdpbiB0byBzeW5jIHBhZ2VzIGFuZCB1cGxvYWRzIHdp dGggYSBtYXN0ZXIgd2lraS4KLSAgKGZvcmVpZ24gYXV0aCBub3QgeWV0IHNvbHZlZCkKLSogYWRk ZWQgYm9vbGVhbiBVUExPQURfVVNFUkRJUiB0byB1cGxvYWQgaW50byB1c2VyLXNwZWNpZmljIGRp cmVjdG9yeS4KLSogYWRkZWQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgcGFnZSBhcmd1bWVudHMgaW4g QmFja0xpbmtzLiBMb2dpY2FsIEFORC4KLSogYWRkZWQgd2lraWRiLT5iYWNrZW5kLT5yZWJ1aWxk KCkKLSogYWRkZWQgIktlZXAgb2xkIiBhbmQgIk92ZXJ3cml0ZSB3aXRoIG5ldyIgYnV0dG9ucyBh bmQgYWN0aW9ucyBmb3IgbG9hZGZpbGUgbWVyZ2UgZWRpdC4KLSogYWRkZWQgbGliL35YbWxScGND bGllbnQsIHhtbHJwYyBtZXRob2RzIHRvIGxpYi9+SHR0cENsaWVudCBhbmQgYWNkcm9wZG93bi5q cy4gSlNPTiBub3QgeWV0LgotKiBjcmVhdGVkIEhlbHAvfipQbHVnaW4gc3R1YnMgZm9yICpBTEwq IHBsdWdpbnMgaW4gcGdzcmMKLSogYWRkZWQgYSBuZXcgX0RFQlVHX1JFTU9URSBmbGFnIHRvIGRl YnVnIGludG8gcmVtb3RlIHNlc3Npb25zICh4bWxycGMsIGFqYXgsIC4uLikKLSogYWRkZWQge3t7 V2lraURCOjpsaW5rU2VhcmNofX19IGFuZCBiYWNrZW5kL2R1bWIvfkxpbmtTZWFyY2hJdGVyLnBo cC4gTWFpbmx5IGZvciB+U2VtYW50aWNTZWFyY2gsCi0gIGFuZCBMaW5rU2VhcmNoLCBidXQgY2Fu IGJlIHVzZWQgZm9yIH5TZW1hbnRpY1NlYXJjaEFkdmFuY2VkIChjb21iaW5lZCBxdWVyaWVzIGFz IDxhc2s+KSBhbmQKLSAgQmFja0xpbmtzIGV0IGFsIGFsc28uCi0qIGFkZGVkIENhbGVuZGFyIGRp c3BsYXlfd2Vla251bSBhcmd1bWVudAotKiBhZGRlZCBuZXcgfkFzY2lpU1ZHIHBsdWdpbgotKiBh ZGRlZCBuZXcgfllvdVR1YmUgcGx1Z2luCi0qIGFkZGVkIH5YbWxScGNUZXN0IHRlc3RzCi0qIEFk ZGVkIG5vcGFnZSBhcmd1bWVudCB0byB+UGFnZUxpc3QgYW5kIGFsbCBpdHMgcGx1Z2lucy4gVW5p cXVlIHJvd3Mgb25seSBub3QgeWV0LgotKiBBZGRlZCBhdXRob3IsIG93bmVyIGFyZ3VtZW50IHRv IFJlY2VudENoYW5nZXMgYW5kIGFkZGVkIGFjdGlvbiBwYWdlczoKLSAgTXlSZWNlbnRDaGFuZ2Vz LCBNeVJlY2VudEVkaXRzLCBVc2VyQ29udHJpYnMKLSogYWRkZWQgUmVjZW50Q2hhbmdlcyBmb3Jt YXQ9Y29udHJpYnMgZm9yIH5Nb25vQm9vayB0aGVtZTogPT4gVXNlckNvbnRyaWJzCi0qIGFkZGVk IH5Nb25vQm9vayBhY2Nlc3NrZXlzCi0KLT09IDEuMy4xMnAzIEp1biwgMTggMjAwNiwgUmVpbmkg VXJiYW4gPT0KLQotKiBmaXggflsvU3VicGFnZX5dIGxpbmtzCi0qIGZpeCBwcmVmIHN0b3Jpbmcg b2YgYWxyZWFkeSBjcnlwdGVkIHBhc3N3b3Jkcy4gYnVnICMxMzI3NDcwIChUb20gSGFyZGluZykK LSogZml4IGNhY2hlIGhlYWRlcnMgb24gZXJyb3JzIChAb2JfZW5kX2ZsdXNoIGlzc3VlKS4gKG1h dHQgYnJvd24pCi0qIGZpeCB+Qm9nb0xvZ2luIHdoZW4gRU5BQkxFX1BBR0VQRVJNPWZhbHNlLiBw YXRjaCAjMTQzODM5MiBieSBNYXR0IEJyb3duCi0qIHVuaXF1ZSBXSUtJX0lEIGNvb2tpZXMgcGVy IFdJS0lfTkFNRS4gcGF0Y2ggIzEzMzM5NTcgYnkgTWF0dCBCcm93bgotKiBhZGRlZCBEQVRBQkFT RV9PUFRJTUlTRV9GUkVRVUVOQ1kgZmVhdHVyZS4gcGF0Y2ggIzEzNzcwMTEgYnkgTWF0dCBCcm93 bgotKiBkb24ndCBjaGVjayBsb2NrX3RhYmxlIHByaXYgb24gYWN0aW9uPXVwZ3JhZGUKLSogZml4 IF9hY2Nlc3Nsb2ctPmxvZ3RhYmxlIGFuZCBfaXNfYnVmZmVyaW5nX291dHB1dCB3YXJuaW5ncyAo dWNrZWxtYW4pCi0qIGRvIG5vdCBwcmludCB3cm9uZyBsZW5ndGggaGVhZGVyIG9uIHVybC1yZXdy aXRpbmcuIGJ1ZyAjMTM3NjAwNwotKiBmaXggcHJlZi0+c2V0OiBFcnJvciBnZW5lcmF0ZWQgd2hl biBsb2dpbiBvdXQuIGJ1ZyAjMTM1NTUzMyAoVGhpZXJyeSBOYWJldGgpCi0qIGZpeCBkZWZhdWx0 IHByZWZlcmVuY2VzIGZvciBlZGl0aGVpZ2h0IG1heHJvd3MsIGJ5IE1hbnVlbCBWYWNlbGV0Lgot KiBmaXggREJBVVRIIGFyZ3VtZW50cyB0byBiZSBwb3NpdGlvbiBpbmRlcGVuZGVudCwgYnVnICMx MzU4OTczCi0qIGFkZCB+UGRvRGJQYXNzVXNlciB1c2VyCi0qIGZpeCBvdXRwdXQgb2YgSG9tZXBh Z2UgcHJlZnMgdXBkYXRlCi0qIHVwZGF0ZSBjb25maWctZGlzdC5pbmkgZm9ybWF0IGZyb20gQ1ZT Ci0qIHVwZGF0ZSBjb25maWd1cmF0b3IucGhwIGZyb20gQ1ZTCi0qIHByaW50IG9wdGltaXplIHdp a2lkYiBvbmx5IHdoZW4gREVCVUcKLSogc2ltcGxpZnkgbWVzc2FnZXMgZm9yIHRyYW5zbGF0b3Jz Ci0qIGFkZGVkIH5JbWFnZVRpbGUucGhwCi0qIGFkZGVkIHRzZWFyY2gyIHRvIGRvYy9JTlNUQUxM LnBnc3FsCi0qIGFkZGVkIGJhc2VwYWdlIHRvIHt7e0NhY2hlZF9XaWtpTGluazo6YXNYTUx9fX0g Zm9yIHN1YnBhZ2VzIHdpdGhpbiB+Q3JlYXRlVE9DCi0qIHByaW50IGZpbGVuYW1lIG9uIGRiYSBh Y2Nlc3MgZXJyb3IKLSogdXNlIGJpbmRfdGV4dGRvbWFpbl9jb2Rlc2V0LiBidWcgIzE0ODAwNzcg KEthaSBLcmFrb3cpCi0qIG1ha2UgflRleHRTZWFyY2hRdWVyeS0+X3N0b3BsaXN0IGxvY2FsaXph YmxlIGFuZCBvdmVycmlkYWJsZSB3aXRoaW4gY29uZmlnLmluaQotKiBmaXhlcyBmb3IgbXlzcWwg NS54IHdhbnRlZHBhZ2VzIGpvaW4KLSogYWRkIHJlbD1ub2ZvbGxvdyB0byBtb3JlIGFjdGlvbnMu IHBhdGNoIGJ5IE1hdHQgQnJvd24KLSogYWRkIHZlcmlmeSB0byB+UmV2ZXJ0UGFnZSwgZGlzcGxh eSByZXZlcnRlZCBwYWdlIGFzIHRlbXBsYXRlCi0qIHVwZGF0ZSBwbHVnaW4vfkNhbGVuZGFyTGlz dDogcGF0Y2hlcyBieSBtcHVsbGVuIGFuZCBiYW5qbwotKiB1cGRhdGUgcGx1Z2luL35HcmFwaFZp egotKiBhZGRlZCBwbHVnaW4vflBhc3N3b3JkUmVzZXQKLSogZml4ZWQgaGFzaCgpIGluIHBsdWdp bi9+UmF0ZUl0Ci0qIHBsdWdpbi9ffkF1dGhJbmZvOiBwcm90ZWN0IEZpbGUgcGFzc3dvcmRzCi0q IGFkZGVkIENhcHRjaGEgdG8gQ3JhbyBlZGl0IHRlbXBsYXRlCi0qIGFkZGVkIE1hY09TWCBQZGYg YnV0dG9uCi0qIGZpeGVkIFBvcnRsYW5kIGFuZCBXb3JkcHJlc3MgZWRpdHBhZ2UgdGVtcGxhdGUK LSogcmVtb3ZlZCBXb3JkcHJlc3MgYnV0dG9ucywgdHJhbnNwYXJlbnQgZGVmYXVsdCBidXR0b25z IHNob3VsZCBiZSB1c2VkLgotKiBkaXNhYmxlZCBSZWxhdGVkQ2hhbmdlcyBidXR0b24KLQotPT0g MS4zLjEycDIgTWFyLCA3IDIwMDYsIFJlaW5pIFVyYmFuID09Ci0KLSogZml4IGNoYW5nZSBwcmVm cyBmb3IgRmlsZSB+V2lraVVzZXIKLSogZml4IH5Ib21lcGFnZVByZWZzIHVwZGF0ZSBtZXNzYWdl Ci0qIHJlbW92ZSBwbHVnaW4vSW1kYgotKiBhcHBseSB+UGx1Z2luVG9vbGJhckJ1dHRvbiBmaXgg ZnJvbSBjdnMKLQotPT0gMS4zLjEycDEgTWFyLCA0IDIwMDYsIFJlaW5pIFVyYmFuID09Ci0KLSog Zml4ICJDYWxsLXRpbWUgcGFzcy1ieS1yZWZlcmVuY2UiIGluIH5DcmVhdGVCaWIKLSogZml4IHBh cnNlIGVycm9yIGluIH5TaXRlTWFwLnBocAotCi09PSAxLjMuMTIgTWFyLCA0IDIwMDYsIFJlaW5p IFVyYmFuID09Ci0KLVJlbmFtZSBmdW5jdGlvbiBoYXNoKCkgYW5kIG1ldGhvZCBmaW5hbCgpIGZv ciBwaHAtNS4xIGNvbXBhdGliaWxpdHkuCi1BZGQgdmFyaW91cyBiYWNrcG9ydHMgZnJvbSBjdnM6 Ci0KLT09PSBGaXhlcyA9PT0KLSogZml4IH5aaXBSZWFkZXIKLSogRml4ICJDYWxsLXRpbWUgcGFz cy1ieS1yZWZlcmVuY2UgaGFzIGJlZW4gZGVwcmVjYXRlZCIgZXJyb3JzLAotICBhbGxvd19jYWxs X3RpbWVfcGFzc19yZWZlcmVuY2UgPSBPZmYKLSogZml4IGJyb2tlbiBsb2NhbGUgdXBkYXRlIGZv ciBwaHAtNS4xLjEKLSogZGVmYXVsdCBsb2NhbGUgZml4IGJ5IFRob21hcyBIYXJkaW5nCi0qIGZp eCBCdWcgIzEzODE0NjQgIkR1cGxpY2F0ZSBmdW5jdGlvbnMiIHdpdGggcGhwLTUuMS4xCi0qIElu dGVyV2lraU1hcDogYWxsb3cgc3BhY2VzIGluIHBhdGhzLCBldmVuIGltcGxpY2l0bHkuIGZpeGVz IGJ1ZyAjMTIxODczMwotKiBmaXggJ1ZPSUQnIGluIH5UZXh0U2VhcmNoUXVlcnkKLSogcmVtb3Zl IExJTUlUIDEgaW4gQURPREIKLSogZml4IFNRTCBXYW50ZWRQYWdlcwotKiBmaXhlZCBmdWxsdGV4 dCBzZWFyY2ggYW5kIHN0b3BsaXN0IGhhbmRsaW5nCi0qIGZpeCBidWcgIzEzMjc5MTIgbnVtZXJp YyBwYWdlbmFtZXMgY2FuIGJyZWFrIHBsdWdpbnMgKEpvYWNoaW0gTG91cykKLSogZml4IHhtbHJw YyBhbmQgdGVzdHMvdW5pdCBmb3IgIXJlZ2lzdGVyX2xvbmdfYXJyYXlzCi0qIGVuc3VyZSBhYnNv bHV0ZSB1cGxvYWRzIHBhdGgKLSogZml4IH5Hb29nbGVNYXBzIHN5bnRheCBlcnJvcgotKiBmaXgg fkxpc3RQYWdlcyBmb3Igbm9uLVNRTCBiYWNrZW5kcy4gQWRkIHRvcDNyZWNzIGFzIGRlZmF1bHQg b25seSBpZgotICByYXRpbmdzIGFyZSBhdmFpbGFibGUKLSogcGx1Z2luL35QYWdlVHJhaWwgaW1w cm92ZWQgZW1wdHkgY29va2llCi0qIHBsdWdpbi9ffldpa2lUcmFuc2xhdGlvbjogcHJvdGVjdCBh Z2FpbnN0IDJ4IGRlZmluZQotKiByZW1vdmUgbXlzcWwgc3BlY2lmaWMgSVNOVUxMKCkKLSogZml4 IHNpZ25vdXQgcHJlZiBlcnJvcgotKiBkb24ndCBsb2cgb24gQUNDRVNTX0xPR19TUUwgPCAyCi0K LT09PSBDaGFuZ2VzID09PQotKiBjYWNoZSB+RWRpdFRvb2xiYXIgcG9wdXAgY29udGVudAotKiBi ZWF1dGlmeSBTQ1JJUFQgbGluZXMKLSogYWRkZWQgY2ZnLWFibGUgbWFya3VwcyBvbmx5IGZvciBk ZWZhdWx0IH5UZXh0VHJhbnNmb3JtYXRpb24sIG5vdAotICBmb3IgbGlua3MgYW5kIG90aGVycwot KiBhZGQgYSBwcm9wZXIgQ29udGVudC1FbmNvZGluZzogZ3ppcCBpZiBjb21wcmVzc2VkLCBhbmQg b21pdCBDb250ZW50LUxlbmd0aCB0aGVuLgotICBUcmljayB0byBzZW5kIHRoZSBjb3JyZWN0IGd6 aXBwZWQgQ29udGVudC1MZW5ndGgKLSogc2V0IGRzbiBhZnRlciBTUUwvQURPREIgc3dpdGNoZXMg aW4gV2lraURCIGJhY2tlbmRzIGZvciBlYXNpZXIgdW5pdCB0ZXN0aW5nCi0qIGUtbWFpbCBub3Rp ZmljYXRpb25zOiBiZXR0ZXIgRnJvbTogaGVhZGVyCi0qIGFkZCBEQkFVVEhfUFJFRl9JTlNFUlQ6 IHNlbGYtY3JlYXRpbmcgdXNlcnMuIGJ5IEpvaG4gU3RldmVucwotKiBpbXByb3ZlZCB+V2lraVVz ZXIvTGRhcCBlcnJvciBkZXNjcmlwdGlvbgotKiBjYWNoZSBTeXN0ZW1JbmZvIG1ldGhvZHMKLSog flZpc3VhbFdpa2k6IHJlbW92ZSBJTkNMVURFRCBmcm9tIEVYQ0xVREVELCBpbmNsdWRlcyBvdmVy cmlkZSBleGNsdWRlcy4KLSogaW1wcm92ZSBwb3N0Z3Jlc3FsIHNjaGVtYXMgKHRzZWFyY2gyIGFu ZCBzdG9yZWQgcHJvY2VkdXJlcyBub3QgeWV0KQotCi09PT0gTmV3ID09PQotKiBhZGRlZCBOVU1f U1BBTV9MSU5LUyBhcyBjb25maWcuaW5pIG9wdGlvbgotKiBuZXcgRU5BQkxFX1NQQU1CTE9DS0xJ U1QsIGxpYi9+U3BhbUJsb2NrbGlzdC5waHA6Ci0gIGNoZWNrIGV4dGVybmFsIGxpbmtzIGFnYWlu c3Qgc3VyYmwub3JnIGFuZCBibC5zcGFtY29wLm5ldAotKiBhZGRlZCBDYXB0Y2hhIGNsYXNzIGFu ZCBiZXR0ZXIgc3BpcmFsCi0qIGFkZGVkIGdldF9jYXB0Y2hhX3JhbmRvbV93b3JkKCkgY29udHJp YnV0ZWQgYnkgRGFuIEZyYW5rb3dza2kKLSogZHVtcGh0bWwgd2hlbiBub3QgYXQgYWRtaW4gcGFn ZTogZHVtcCB0aGUgY3VycmVudCBvciBnaXZlbiBwYWdlCi0qIGFkZGVkIHBsdWdpbiB+RmlsZUlu Zm8KLSogbWFqb3IgflBob3RvQWxidW0gZmVhdHVyZSBlbmhhbmNlbWVudHMgYnkgVGhvbWFzIEhh cmRpbmc6Ci0gIHNsaWRlcyBtb2RlLCByZWFsIHRodW1ibmFpbHMKLSogYWRkIG1vcmUgYmFja2Vu ZHMgdG8gdGhlIHRlc3RzdWl0ZSAoUGVhckRCX3Bnc3FsLCAuLi4pCi0KLT09IDEuMy4xMXAxIFNl cCwgMTggMjAwNSwgUmVpbmkgVXJiYW4gPT0KLQotPT09IEZpeGVzID09PQotKiBhZGRlZCBtaXNz aW5nIHBnc3JjL35PbGRTdHlsZVRhYmxlc1BsdWdpbgotKiBmaXhlZCB+T2xkU3R5bGVUYWJsZXMg cGx1Z2luIHdpdGggYXJncwotKiBwcm90ZWN0IGFnYWluc3QgQ29udGVudC1MZW5ndGggaWYgaGVh ZGVyc19zZW50KCkKLSogZml4ZWQgRU5BQkxFX01BUktVUF9URU1QTEFURSB3YXJuaW5nIGlmIHVu ZGVmaW5lZAotKiBmaXhlZCB3cml0aW5nIHVud2FudGVkIGFjY2Vzc2xvZyBzcWwgZW50cmllcwot KiBmaXhlZCBXaWtpQWRtaW5TZWxlY3QgcHJlc2VsZWN0aW9uCi0qIGZpeGVkIHBhc3NlbmNyeXB0 LnBocCBmb3IgUEhQNSAhcmVnaXN0ZXJfbG9uZ19hcnJheXMKLSogZml4ZWQgY29uZmlndXJhdG9y IGZvciBEQVRBQkFTRV9EU04sIFVTRVJfQVVUSF9PUkRFUgotCi09PT0gQ2hhbmdlcyA9PT0KLSog b3B0aW1pemVkIGV4cGxvZGVQYWdlTGlzdCB0byB1c2UgU1FMIHdoZW4gYXZhaWxhYmxlCi0gICh0 aXRsZVNlYXJjaCBpbnN0ZWFkIG9mIGdldEFsbFBhZ2VzKQotKiBhZGRlZCBvcHRpbWl6YXRpb24g Zm9yIGEgbmV3IEFMTCB0ZXh0c2VhcmNoIHRva2VuCi0gICgqID0+IHBjcmU6IC4qLCBzcWw6ICUp Ci0qIGNvbmZpZ3VyYXRvciB0YWtlcyBkZWZhdWx0IGRlc2NyaXB0aW9uIGZyb20gY29uZmlnLWRp c3QuaW5pCi0qIGFkZGVkIHNvbWUgbWlzc2luZyBjb25maWd1cmF0b3IgY29uc3RhbnRzCi0KLT09 IDEuMy4xMSBTZXAsIDExIDIwMDUsIFJlaW5pIFVyYmFuLCBKb2VsIFVja2VsbWFuID09Ci0KLUxv dHMgb2YgYnVnZml4ZXMsIGFuZCBzb21lIGZlYXR1cmUgYW5kIHBlcmZvcm1hbmNlIGVuaGFuY2Vt ZW50cy4KLQotQSBuZXcgRURJVF9UT09MQkFSIGZyb20gTWVkaWF3aWtpLCBtb3JlIHBhZ2UgcGVy bWlzc2lvbiBlbmhhbmNlbWVudHMsCi1yZWR1Y2VkIG1lbW9yeSB1c2FnZSBmb3IgcGFnZWxpc3Rz IHdoaWNoIG5lZWQgbm8gcGFnZSBjb250ZW50LAotcmVsYXRlZCBpbXByb3ZlbWVudCBmb3Igfk9s ZE1hcmt1cCBjcmFzaGVzIGJlY2F1c2Ugb2YgUENSRSBtZW1vcnkgZXhoYXVzdGlvbi4KLQotTmV3 IDwhcGx1Z2luLWxpc3QgIT4gc3ludGF4IGFuZCB+UGhwV2lraTp+UGFnZUxpc3RMaWJyYXJ5IGFy Z3MuCi0KLUJlY2F1c2Ugb2YgU1FMIGNoYW5nZXMgeW91J2QgbmVlZCB0byA/YWN0aW9uPXVwZ3Jh ZGUgdG8gdXBkYXRlIGZvciBTUUwuCi0KLT09PSBGaXhlcyA9PT0KLSogZml4ZWQgY3Jhc2ggYWZ0 ZXIgbG9naW4sIGJ5IGVsaW1pbmF0aW5nIGVuZGxlc3MgcmVjdXJzaW9uIGluCi0gIGdyb3VwIGlz QWRtaW4oKSBjaGVja3MKLSogZml4ZWQgc3ludGF4IGVycm9ycyBpbiBzaWduaW4udG1wbAotKiBm aXhlZCBtaXNzaW5nIERFQlVHIHdhcm5pbmdzIChTdXBwb3J0ICM5NTQyNjApCi0qIH5QaHBXaWtp IGlzIG5vdyBhbGxvd19jYWxsX3RpbWVfcGFzc19yZWZlcmVuY2UgPSBPZmYgc2FmZSAocGhwLmlu aSkKLSAgU29tZSBleHRlcm5hbCBsaWJyYXJpZXMgYXJlIG5vdCAoUGVhcl9EQiBvZGJjLCBhZG9k YiBvcmFjbGUpCi0qIGZpeGVkIHNxbCBzdGF0ZW1lbnRzIGZvciBwYWdlZGF0YSB3aGVyZSBpdCBp cyBub3QgbmVlZGVkLCBmaXhpbmcgdGhlCi0gIHR5cGljYWwgflBhZ2VMaXN0IG1lbW9yeSBleGhh dXN0aW9uIG9uIHNpbXBsZSBwYWdlIGxpc3RzLgotICBjYWNoZWRfaHRtbCBpcyBoYW5kbGVkIGNv bXBsZXRlIHNlcGFyYXRlIG5vdy4KLSogZml4ZWQgYW5kIGltcHJvdmVkIFdpa2lEQiBwYWdlaWQg Y2FjaGluZy4KLSogZml4ZWQgc29tZSB+V2lraUdyb3VwIGVycm9ycyBmb3IgV0lLSVBBR0UgYW5k IERCCi0qIGZpeGVkIEpTX1NFQVJDSFJFUExBQ0UKLSogZml4ZWQgcmVuYW1lIHdpdGggZGJhCi0q IGZpeGVkIFRvZGF5IGxpbmsgaW4gYWxsIHRlbXBsYXRlcyBpZiBVU0VfUEFUSF9JTkZPID0gZmFs c2UKLSogZml4ZWQgUGx1Z2luTWFuYWdlciBmYXRhbCBlcnJvciBsaW5lIDIyMgotKiB1dGYtOCBw YWdlbmFtZXMgZml4ZWQgKHR5cGVkIGZvcmVpZ24gbmFtZXMgZnJvbSBJRSkKLSogQ0dJOiBubyBQ QVRIX0lORk8gZml4Ci0qIGZpeCBzb21lIHRvbyBsb29zZSBQaHBXaWtpOlBhZ2VQZXJtaXNzaW9u cyBmb3Igc2lnbmVkLCBidXQgbm90IGF1dGhlbnRpY2F0ZWQgdXNlcnMKLSAgKGFkbWluLCBvd25l ciwgY3JlYXRvciksIGFuZCBlZGl0IGFuZCB2aWV3IGZvciBCb2dvIGFuZCBQYXNzd29yZCB1c2Vy cwotKiBzZWN1cml0eSBmaXggZm9yIGNyZWF0ZSBBQ0w6IGFjdGlvbj1lZGl0IGlzIG5vdyBjaGVj a2VkIGZvciBjcmVhdGUKLSogZml4ZWQgaW1wb3J0YW50IFdpa2lEQiBidWcgd2l0aCBERUJVRyA+ IDA6IHdyb25nIGFzc2VydGlvbgotICBhcm91bmQgbGluZSAxNzIgKCM5NTQ2NDgpCi0qIGZpeGVk IGZsYXRmaWxlIH5BcmNoaXZlQ2xlYW5lciBhc3NlcnRpb24KLSogflJzc0ZlZWRQbHVnaW4gc3Rh YmlsaXR5IGZpeCBmb3IgZW1wdHkgZmVlZHMgb3IgYnJva2VuIGNvbm5lY3Rpb25zCi0qIGZpeGVk IFNpZGViYXIgdGhlbWUgQ1NTLCBhZGRlZCBleGlzdGluZyBkYXRlcyB0byBqc2NhbGVuZGFyCi0q IGZpeGVkIFBocFdpa2k6SW1hZ2VMaW5rcywgYnJva2VuIHNpbmNlIDEuMy4xMCAoQnVnICM5NTYw NjgpCi0qIGZpeGVkIGxpYi9wZWFyL0ZpbGVfUGFzc3dkIGxvYWRpbmcKLSogflRyYW5zbGF0ZVRl eHQ6IHZlcmJhdGltIG5lZWRlZCBhIHBhZ2VicmVhawotKiBmaXhlZCBkdXBsaWNhdGUgc2Vzc2lv bl9pZCB3YXJuaW5nIHdpdGggYWRvZGIKLSogZml4ZWQgYWRvZGIgfkRiUGFzc1VzZXIgbG9naW4K LSogZml4ZWQgZXh0ZXJuYWwgfkRiUGFzc1VzZXIgbG9naW4KLSogZml4ZWQgYWRvZGIgYWN0aW9u PXVwZ3JhZGUKLSogZml4ZWQgfkZpbGVQYXNzVXNlciBsb2NraW5nIHByb2JsZW1zIGFuZCBzZXNz aW9uIGhhbmRsaW5nCi0qIGZpeGVkIGEgbG90IG9mIExEQVAgYXV0aCBhbmQgZ3JvdXAgaXNzdWVz Ci0qIGZpeGVkIExEQVAgb3B0aW9ucyBoYW5kbGluZyAoYnkgSm9obiBDb2xlKQotKiBmaXhlZCBw b3NzaWJsZSBzZWN1cml0eSBwcm9ibGVtczogYWxsb3dpbmcgb25seSBwb3NpeGx5IHN0cmljdCB1 c2VybmFtZXMsCi0gIGFuZCBhbiBhY3R1YWwgTERBUCBJbmplY3Rpb24gcHJvYmxlbSwgZGV0ZWN0 ZWQgYnkgU3RldmUgQ2hyaXN0ZXksIE1JVFJFLgotKiBob25vciBzPXdpbGRjYXJkIGFyZ3VtZW50 cyBmb3Igfldpa2lBZG1pbiBwbHVnaW5zCi0qIGZpeGVkIGZsYXRmaWxlIGFzc2VydGlvbiAoIzk2 MzI2OCkgLSBjaGVjayBleGlzdGluZyBwcmV2aW91cyB2ZXJzaW9uCi0qIGZpeGVkIGFsbCBtc2cg cmVmZXJlbmNlcyBmcm9tIGluZGV4LnBocCB0byBjb25maWcvY29uZmlnLmluaQotKiBmaXhlZCBp bW1lZGlhdGUgTEFORyBhbmQgVEhFTUUgaW4tc2Vzc2lvbiB1cGRhdGVzIGlmIG5vdCBzdG9yZWQg aW4gcHJlZnMKLSogZml4ZWQgVVNFUl9BVVRIX1BPTElDWT1vbGQsIHVzZSBvbmx5IFVTRVJfQVVU SF9PUkRFUiBtZXRob2RzIChiZXNpZGVzIH5IdHRwQXV0aCkKLSAgYW5kIHJlbW92ZWQgTERBUCwg UE9QMywgSU1BUCBkZWZhdWx0IGNvbmZpZ3MuCi0qIFJlbGF0ZWRDaGFuZ2VzOiBmaXhlZCBkYXlz IGxpbmtzCi0qIGZpeCBSZW5hbWU6IENoYW5nZSBwYWdlbmFtZSBpbiBhbGwgbGlua2VkIHBhZ2Vz Ci0qIGZpeGVkIFBocFdpa2k6flBhZ2VDaGFuZ2VOb3RpZmljYXRpb24gZm9yIG5vdC1jdXJyZW50 IHVzZXJzCi0qIGZpeGVkIH5VcExvYWRQbHVnaW4gZm9yIGZpbGVuYW1lcyB3aXRoIHNwYWNlIChC dWcgIzk2OTUzMikKLSogZml4ZWQgbGFiZWwgc3VwcG9ydCBmb3IgfkNyZWF0ZVRvY1BsdWdpbiAo QnVnICM5Njk0OTUpCi0qIGZpeGVkIEFwYWNoZTIgY3Jhc2hpbmcgd2l0aCBvbGQgbWFya3VwIGFu ZCB0aGUgfkNyZWF0ZVRvY1BsdWdpbi4KLSogY2F0Y2ggZmF0YWxzIGFuZCByZXF1ZXN0LT5hcmdz IGNoYW5nZXMgb24gZHVtcGluZwotKiBmaXhlZCB1bm5lZWRlZCBVc2VyUHJlZmVyZW5jZXMgcGx1 Z2luIGxvZ2luIHNjcmVlbiBvbiBkdW1waHRtbAotKiBjYXRjaCBTT0FQIGZhdGFsIG9uIH5Hb29n bGVQbHVnaW4gd2l0aG91dCBHT09HTEVfTElDRU5TRV9LRVkKLSogc2lsZW50bHkgaWdub3JlIGpz aGlkZSBhcmd1bWVudCBvbiBNYWNJRSBmb3IgfkFkZENvbW1lbnRQbHVnaW4gYW5kIH5DcmVhdGVU b2NQbHVnaW4KLSogZml4ZWQgeG1scnBjIHRvIGJlIGFibGUgdG8gdXNlIHRoZSBuYXRpdmUgeG1s cnBjIGV4dGVuc2lvbi4KLSogZml4ZWQgeG1scnBjIHdpa2kubGlzdExpbmtzIG1ldGhvZDogIm5h bWUiID0+ICJwYWdlIiBwYXJhbQotKiBmaXhlZCB4bWxycGMgc2VjdXJpdHkgbm90IHVzaW5nIGV2 YWwgb24gdXNlcmNvZGUgYW55bW9yZQotKiBmaXhlZCB+V2lraUFkbWluVXRpbHMgYmVoYXZpb3Vy IG9uIFBPU1QKLSogZml4ZWQgc3RyaWN0IGxvZ2luIG9uICJEYiIgKGJ5IE1pa2hhaWwgVmxhZGlt aXJvdikKLSogbW9yZSAvdG1wIHdhcm5pbmdzIG9uIGZsYXRmaWxlIChieSBKb2VsIFVja2VsbWFu KQotCi09PT0gQ2hhbmdlcyA9PT0KLSogfldpa2lBZG1pblNldEFjbCBmdW5jdGlvbmFsCi0qIGVu YWJsZWQgUGhwV2lraTpQYWdlUGVybWlzc2lvbnMgZm9yIGFsbCBhZG1pbiBwbHVnaW5zIChubyBh ZG1pbiByZXF1aXJlZCk6Ci0gIFJlbW92ZSwgUmVuYW1lLCBSZXBsYWNlLCB+U2V0QWNsLCBDaG93 bgotKiByZW5hbWVkIERCX1Nlc3Npb24ucGhwIHRvIH5EYlNlc3Npb24ucGhwIGFuZCBtb3ZlZCBs aWJzIHRvIGEgc3ViZGlyCi0qIG5ldyBFcnJvci1zdHlsZSB3aXRoIGNvbGxhcHNlZCBvdXRwdXQg b2YgcmVwZWF0ZWQgbWVzc2FnZXMKLSogd2hpdGVzcGFjZSB0cmltIHBhZ2VuYW1lcyB0byBhdm9p ZCBhYnVzZQotKiBubyBkb3VibGUgbG9naW4gcGFnZSBoZWFkZXIsIGJldHRlciBsb2dpbiBtc2cu Ci0qIGltcHJvdmVkIH5GaWxlRmluZGVyIGluY2x1ZGVfcGF0aCBsb2dpYyAofm5vcm1hbGl6ZUxv Y2FsRmlsZU5hbWUsIC4uLikKLSoqIGluaXQgZ2xvYmFsIH5GaWxlRmluZGVyIHRvIGFkZCBwcm9w ZXIgaW5jbHVkZSBwYXRocyBhdCBzdGFydHVwCi0gICBhZGRzIFBIUFdJS0lfRElSIHRvIHRoZSBm cm9udCBpZiBzdGFydGVkIGZyb20gYW5vdGhlciBkaXIsIGxpYi9wZWFyIHRvIHRoZSBlbmQuCi0q KiBmaXggc2xhc2hpZnkgZm9yIFdpbmRvd3MKLSogY2hlY2sgbW9yZSBjb25maWctZGVmYXVsdCBh bmQgcHJlZGVmaW5lZCBjb25zdGFudHMKLSogfkF1dG9TcGxpdCBwYWdlbmFtZXMgYXQgc3VicGFn ZSBzZXBhcmF0b3JzLCBlc3AgZm9yIFNpZGViYXIgdGhlbWUKLSogaW1wcm92ZSBQYWdlbGlzdCBs YXlvdXQgYnkgZXF1YWwgcGFnZW5hbWUgd2lkdGggZm9yIGxpbWl0ZWQgbGlzdHMKLSogYWRkZWQg Q1BBTiwgfk9zRmFxMiwgfldpa2lMZW5zIHRvIGludGVyd2lraS5tYXAKLSogfkV4dGVybmFsU2Vh cmNoUGx1Z2luIHVzZWltYWdlIGFyZyAoUkZFICM5NTIzMjMpCi0qIHNpbXBsaWZpZWQgc29tZSBz dHJpbmdzIGZvciBlYXNpZXIgdHJhbnNsYXRpb24KLSogYWRkZWQgaGFzaCBhbmQgb2JqZWN0IHN1 cHBvcnQgZm9yIH5TZXNzaW9uUGFzc1VzZXIgdXNlcmlkIHNlc3Npb24gdmFyaWFibGUKLSogYXV0 aCBwYWdlPT5EQiB+UGFzc1VzZXIgdXBncmFkZTogZGVsZXRlIGV4aXN0aW5nIFBhZ2UgcHJlZnMs IGlmIERiIHByZWZzIGFyZSBzYXZlZC4KLSogdmFzdGx5IGltcHJvdmVkIGZyZW5jaCBsb2NhbGUg c3VwcG9ydCwgd2hpY2ggaXMgbm93IGNvbXBsZXRlIChieSBQaWVycmljayBNZWlnbmVuKS4KLSAg ZW5nbGlzaCwgZ2VybWFuIGFuZCBmcmVuY2ggYXJlIG5vdyBjb21wbGV0ZWx5IHRyYW5zbGF0ZWQu IFRoZSBvdGhlcnMgcGFydGlhbGx5LgotKiBpbXByb3ZlZCB+U2V0dXBXaWtpICh2aXJnaW4gc2V0 dXApIGxvYWRpbmcgYWxsIHJlcXVpcmVkIGFjdGlvbiBwYWdlcyBpbiBlbmdsaXNoLAotICBpZiBu byBmb3JlaWduIHRyYW5zbGF0aW9uIGZvdW5kIChieSBQaWVycmljayBNZWlnbmVuKQotKiBzaG93 IFJlbGF0ZWRDaGFuZ2VzIG9ubHkgaWYgbWluaW11bSB0d28gbGlua3Mgb24gdGhlIGN1cnJlbnQg cGFnZS4KLSogUGFnZUR1bXA6IH5WaWV3U291cmNlIGxpbmssIGJldHRlciBhY3Rpb25wYWdlIHVz YWdlLCBNZXNzYWdlSUQgVFoKLSogYnJvdWdodCB+V2lraVVzZXIgKG9sZCkgdXB0b2RhdGUKLSog YWRkZWQgb3duZXIgYW5kIGFjbCBmaWVsZHMgdG8gZHVtcHMKLSogaW1wb3J0IEdPT0dMRV9MSUNF TlNFX0tFWSBhbmQgRk9SVFVORV9ESVIgZnJvbSBjb25maWcuaW5pCi0qIHJlbmFtZWQgZ2xvYmFs ICRUaGVtZSB0byAkfldpa2lUaGVtZSAoR2ZvcmdlIG5hbWVjbGFzaCkKLSogYWdncmVzc2l2ZSBX aWtpREIgYW5kIGNhY2hlIG1lbW9yeSBvcHRpbWl6YXRpb246IGRvbid0IGNhY2hlICVjb250ZW50 Ci0gIGFuZCBfY2FjaGVkX2h0bWwgaWYgbm90IG5lZWRlZC4KLSogUGFnZUR1bXAgYWRkZWQgZm9y bWF0PWJhY2t1cDogZHVtcCBhbGwgcmV2aXNpb25zLgotKiBmb3JjZSBteXNxbCB0byB1c2UgYXV0 b19pbmNyZW1lbnQgcGFnZS5pZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4KLSAgY2FsbCA/YWN0 aW9uPXVwZ3JhZGUKLSogZXh0ZW5kZWQgYWxsIHBsdWdpbnMgd2hpY2ggdGFrZSAicGFnZXMiIGFu ZCAiZXhjbHVkZSIgcGFyYW1zIHRvIGFjY2VwdAotICA8IXBsdWdpbi1saXN0ICE+IHBhZ2VsaXN0 cwotKiBlbmFibGVkIGxpbWl0LCBleGNsdWRlIGFuZCBzb3J0YnkgflBhZ2VMaXN0IG9wdGlvbnMg Zm9yIGFsbW9zdCBhbGwgZGIgYmFja2VuZHMgbmF0aXZlbHkKLSogaW1wcm92ZWQgflNxbFJlc3Vs dDogdGVtcGxhdGVzIGFuZCB2YXJpYWJsZSBleHBhbnNpb24uCi0gIGF1dG9tYXRpYyBwYWdpbmcg bm90IHlldC4KLSogdXNlIGxhdGVzdCBQZWFyIERCIGZlYXR1cmVzLCB3aGljaCB3aWxsIGJyZWFr IG9uIG9sZGVyIFBlYXJEQiBsaWJzLgotICAoZXNjYXBlU2ltcGxlKS4gVXNlIElOQ0xVREVfUEFU SCB0byBvdmVycmlkZS4KLSogSU5DTFVERV9QQVRIIGlzIG5vdyBwcmVwZW5kZWQsIG5vdCBhcHBl bmRlZC4gUEhQV0lLSV9ESVIgaXMgZm9yY2VkIHRvIGJlIGZpcnN0LgotKiByZXdyb3RlIH5PbGRU ZXh0Rm9ybWF0dGluZ1J1bGVzLCB+QW5jaWVubmVzflIlRThnbGVzfkRlRm9ybWF0YWdlCi0gIGZv ciBwcm9wZXIgaW1wb3J0aW5nIChQQ1JFK21lbW9yeSByZWxhdGVkIGNyYXNoZXMgb24gb2xkZXIg cGhwJ3MpCi0qIGFkZGVkIGV4dHJhIHBhZ2UuY2FjaGVkX2h0bWwgY29sdW1uLiA/YWN0aW9uPXVw Z3JhZGUgb3IgUGhwV2lraUFkbWluaXN0cmF0aW9uCi0gICJDb252ZXJ0IGNhY2hlZF9odG1sIiBp cyBuZWVkZWQgdG8gY29udmVydCB5b3VyIG9sZCBwYWdlZGF0YSAiX2NhY2hlZF9odG1sIi4KLSog cGFnZSBkZWxldGlvbiBpcyBub3cgdW5kb2FibGUgYW5kIGJlaW5nIHNlZW4gaW4gUmVjZW50Q2hh bmdlcy4gUHVyZ2UgcGFnZXMKLSAgYnkgbmV3IGFkbWluIGJ1dHRvbi4KLSogemlwZHVtcCBhbmQg ZHVtcGh0bWwgY29udGFpbnMgbm93IGltYWdlcywgYnV0dG9ucyBhbmQgY3NzCi0qIGltcHJvdmVk IF9+V2lraVRyYW5zbGF0aW9uIHBlcmZvcm1hbmNlIHdpdGggZ2V0dGV4dCBleHRlbnNpb24KLSog bW92ZWQgfkRiU2Vzc2lvbiBtZXRob2RzIHRvIGV4dHJhIGZpbGVzIGFzIHdpdGggfldpa2lVc2Vy IGZpbGVzLgotKiBjaGFuZ2VkIGNvbmZpZy5pbmkgb3B0aW9uczoKLSAgS0VZV09SRFM6ICJDYXRl Z29yeTpUb3BpYyIgPT4gIkNhdGVnb3J5KiBPUiBUb3BpYyoiLAotICBLRVlXT1JEX0xJTktfUkVH RVhQIHJlbW92ZWQsCi0qIGFjdGlvbj1kdW1waHRtbCBkdW1wcyBvbmx5IHRoZSBjdXJyZW50IHBh Z2UgdW5sZXNzIGRvbmUgZnJvbSBQaHBXaWtpQWRtaW5pc3RyYXRpb24KLQotPT09IE5ldyA9PT0K LSogbmV3IEVOQUJMRV9FRElUX1RPT0xCQVIgKGZyb20gbWVkaWF3aWtpKSwgSlNfU0VBUkNIUkVQ TEFDRSwKLSAgfkFkZENhdGVnb3J5LCB+QWRkUGx1Z2luIGJ1dHRvbnMKLSogbmV3IG90aGVyIGNv bmZpZyBvcHRpb25zOgotKiogRU5BQkxFX1BBR0VQRVJNIHRvIHR1cm4gb2ZmIEFDTCAobm8gb3du ZXIgYXQgdGhlIHN0YXR1c2xpbmUgaWYgb2ZmKQotKiogRk9SVFVORV9ESVIgdG8gZW5hYmxlIHJh bmRvbSBxdW90ZXMgZm9yIG5ldyBwYWdlcwotKiogR09PR0xFX0xJTktTX05PRk9MTE9XLCBBQ0NF U1NfTE9HX1NRTCwgQkFCWUNBUlRfUEFUSCwgQkxPR19ERUZBVUxUX0VNUFRZX1BSRUZJWCwKLSAg ICBDQVRFR09SWV9HUk9VUF9QQUdFLCBEQVRBQkFTRV9QRVJTSVNURU5ULCBEQkFETUlOX1BBU1NX RCwgREJBRE1JTl9VU0VSLAotICAgIERFRkFVTFRfRFVNUF9ESVIsIERJU0FCTEVfR0VUSU1BR0VT SVpFLCBFTkFCTEVfRE9VQkxFQ0xJQ0tFRElULAotICAgIEVOQUJMRV9MSVZFU0VBUkNILCBFTkFC TEVfTU9ERVJBVEVEUEFHRV9BTEwsIEVOQUJMRV9SQVdfSFRNTF9MT0NLRURPTkxZLAotICAgIEVO QUJMRV9SQVdfSFRNTF9TQUZFLCBFTkFCTEVfU1BBTUFTU0FTU0lOLCBFTkFCTEVfWEhUTUxfWE1M LAotICAgIEdPT0dMRV9MSUNFTlNFX0tFWSwgSFRNTF9EVU1QX0RJUiwgTERBUF9PVV9HUk9VUCwg TERBUF9PVV9VU0VSUwotICAgIFBMVUdJTl9DQUNIRURfQ0FDSEVfRElSLCBQTFVHSU5fQ0FDSEVE X0RBVEFCQVNFLCBQTFVHSU5fQ0FDSEVEX0ZJTEVOQU1FX1BSRUZJWCwKLSAgICBQTFVHSU5fQ0FD SEVEX0ZPUkNFX1NZTkNNQVAsIFBMVUdJTl9DQUNIRURfSElHSFdBVEVSLAotICAgIFBMVUdJTl9D QUNIRURfSU1HVFlQRVMsIFBMVUdJTl9DQUNIRURfTE9XV0FURVIsIFBMVUdJTl9DQUNIRURfTUFY QVJHTEVOLAotICAgIFBMVUdJTl9DQUNIRURfTUFYTElGRVRJTUUsIFBMVUdJTl9DQUNIRURfVVNF Q0FDSEUsIFRFTVBfRElSLCBVU0VDQUNIRSwKLSAgICBVU0VfRVhURVJOQUxfSFRNTDJQREYsIEVO QUJMRV9NQVJLVVBfQ09MT1IsIEVOQUJMRV9NQVJLVVBfVEVNUExBVEUKLSogaW1wbGVtZW50ZWQg V2lraURCIHBhZ2UgY3JlYXRvciBhbmQgb3duZXJzaGlwCi0qIGFkZGVkIHBhZ2luZyBzdXBwb3J0 IGZvciBzaW1wbGUgb25lLWNvbHVtbiBwYWdlbGlzdHMKLSogYWRkZWQgbmV3IH5QYWdlTGlzdCBv cHRpb25zOiBjb2xzLCBhemhlYWQsIGNvbW1hLCBjb21tYXNlcCwgb3JkZXJlZCBhbmQgZW5hYmxl ZCB0aGUgbmV3IGFyZ3Mgb24gbW9zdCBwbHVnaW5zLgotKiBuZXcgcGFnZW5hbWUgdXRmOCBkZXRl Y3Rpb24gbG9naWMgKGZyb20gbWVkaWF3aWtpKQotKiBhZGRlZCBhY3Rpb24gcmV2ZXJ0LCB3aXRo IGJ1dHRvbiBmcm9tIGFjdGlvbj1kaWZmCi0qIGFkZGVkIG5ldyA8IXBsdWdpbi1saXN0IH5QbHVn aW5OYW1lIGFyZ3MhPiBzeW50YXggd2l0aGluIHBsdWdpbiBhcmdzCi0qIG5ldyBwbHVnaW4gfklu Y2x1ZGVQYWdlcywgZXNwLiBmb3IgPCFwbHVnaW4tbGlzdCAhPgotKiBhZGRlZCB0ZW1wbGF0ZSB2 YXJpYWJsZSBleHBhbnNpb24gc3VwcG9ydCB0byB0aGUgfkNyZWF0ZVBhZ2VQbHVnaW4KLSogfldp a2lTcGFtIHByZXZlbnRpb246Ci0qKiBPbiBHT09HTEVfTElOS1NfTk9GT0xMT1cgYWRkIHJlbD1u b3dmb2xsb3cgdG8gYWxsIGV4dGVybmFsIGxpbmtzLCB1bmxlc3MgdGhlIGF1dGhvciB3YXMgYXV0 aGVudGljYXRlZC4KLSoqIG1heCAyMCBuZXcgbGlua3MgaGFyZGNvZGVkCi0qKiBuZXcgYmFieWNh cnQgbW9kdWxlIGludGVyZmFjaW5nIH5TcGFtQXNzYXNzaW4KLSogYWRkZWQgfldpa2lQbHVnaW5D YWNoZWQgc3VwcG9ydCBmb3IgaW1hZ2UgbWFwcywgc3RhdGljIGNhY2hlIGluIHVwbG9hZHMvIGFu ZCBTVkcKLSogYWRkZWQgY2FzZS1zZW5zaXRpdmUvaW5zZW5zaXRpdmUgYW5kIHJlZ2V4IHNlYXJj aGluZywgcmVwbGFjZSBhbHNvCi0qIGFkZGVkIGFjdGlvbj1wZGY6IG9ubHkgcGFnZSBmb3JtYXR0 ZXIgbWlzc2luZywgdXNlIFVTRV9FWFRFUk5BTF9IVE1MMlBERiBpbnN0ZWFkCi0qIG5ldyB+WG1s UGFyc2VyLCB+SHRtbFBhcnNlcjogbmV3IGxpYnMgZm9yIEhUTUwtPndpa2kgaW1wb3J0IGFuZCBo dG1sYXJlYTMgc3VwcG9ydAotKiBuZXcgYWN0aW9uPWNob3dufHNldGFjbHxyZW5hbWV8ZHVtcCBh Y3Rpb24gc2hvcnRjdXRzIHBvaW50aW5nIHRvIHRoZSBwbHVnaW4KLSogbmV3IH5TeW50YXhIaWdo bGlnaHRlciBwbHVnaW4gKGJhc2VkIG9uIHdvcmsgYnkgYWxlY3Rob21hcyksCi0gIG5lZWRzIGhp Z2hsaWdodCBmcm9tIGh0dHA6Ly93d3cuYW5kcmUtc2ltb24uZGUvCi0qIG5ldyB+UGxvdGljdXNQ bHVnaW4uIEZ1bGwgYXBwbGljYXRpb24veGh0bWwreG1sIHN1cHBvcnQgbm90IHlldAotICAoamF2 YXNjcmlwdCBkb2N1bWVudC53cml0ZSgpIG5vdCBzdXBwb3J0ZWQgd2l0aCBFTkFCTEVfWEhUTUxf WE1MKQotKiBuZXcgfkxpc3RQYWdlcyBwbHVnaW4gKGJ5IERhbiBGcmFua293c2tpKQotKiBuZXcg flRlWDJwbmdQbHVnaW4gKGJ5IFBpZXJyaWNrIE1laWduZW4pCi0qIGFkZGVkIHN1cHBvcnQgZm9y ID9mb3JjZV91bmxvY2s9MSBwYXJhbWV0ZXIgZm9yIHN0YWxlIEZpbGVfUGFzc3dkIGxvY2tzCi0g IChzaG91bGQgbm90IGJlIG5lZWRlZCBhbnltb3JlLCB3ZSBsb2NrIG9ubHkgd2hlbiB3ZSBhY3R1 YWxseSBjaGFuZ2UgdGhlIHBhc3N3ZCkKLSogYWRkZWQgbXlzcWwtNC4xIGZpeCBhdCBhY3Rpb249 dXBncmFkZSwKLSAgYWRkZWQgQ0FDSEVfQ09OVFJPTCBOT05FID0+IE5PX0NBQ0hFIGNvbmZpZy5p bmkgZml4IHRvIGFjdGlvbj11cGdyYWRlCi0qIGF1dGhvciwgb3duZXIsIGNyZWF0b3Igc3VwcG9y dCBmb3Igfldpa2lBZG1pbiogYW5kIEFsbFBhZ2VzIHBsdWdpbnM6Ci0qKiBBbGxQYWdlc0NyZWF0 ZWRCeU1lLCBBbGxQYWdlc0xhc3RFZGl0ZWRCeU1lLCBBbGxQYWdlc093bmVkQnlNZQotKiBhZGRl ZCBvcHRpb24gcmVnZXggdG8gfldpa2lBZG1pblNlYXJjaFJlcGxhY2UgYW5kIH5XaWtpQWRtaW5S ZW5hbWUKLSogYWRkZWQgb3JhY2xlIFBlYXJEQiBiYWNrZW5kIChieSBQaGlsaXBwZSBWYW5oYWVz ZW5kb25jaykKLSogYWRkZWQgZXhwZXJpbWVudGFsIFNlYXJjaEhpZ2hsaWdodCBmZWF0dXJlIChu b3QgZm9yIEhUTUwgeWV0KQotKiBhZGRlZCBleHBlcmltZW50YWwgfkxpdmVTZWFyY2ggZmVhdHVy ZQotKiBhZGRlZCB+W35PdmVyV3JpdGUgQWxsXSBidXR0b24gdG8gbG9hZGZpbGUgYWN0aW9uIG9u IHRoZSBmaXJzdCBwYWdlLgotKiBhZGRlZCB+W0xvYWQgJiB+T3ZlcldyaXRlXSBidXR0b24gdG8g UGhwV2lraUFkbWluaXN0cmF0aW9uCi0qIHBlcmZvcm1hbmNlOiB1c2UgY2FjaGVkIHN0YXRpYyBj b25maWcvY29uZmlnLnBocCwgaWYgaXQncyB3cml0YWJsZSBieQotICB0aGUgd2Vic2VydmVyLiAo ZXhwZXJpbWVudGFsKQotKiBhZGRlZCBBQ0NFU1NfTE9HX1NRTCAmMTogcmVhZCwgJjIgd3JpdGUu IG5ldyBhY2Nlc3Nsb2cgc3FsIHRhYmxlLgotICBmb3IgdmFyaW91cyBsb2cgYW5hbHlzaXM6IGFi dXNlIHByZXZlbnRpb24sIHJlY2VudCByZWZlcnJlcnMuCi0qIGFkZGVkIG1vcmUgflBhZ2VDaGFu Z2VOb3RpZmljYXRpb24gb24gb3RoZXIgYWN0aW9uczogcmVuYW1lLCByZW1vdmUuCi0gIGNoYW5n ZWQgc3ViamVjdCBvbiBjcmVhdGUuIENvbGxhcHNlIG11bHQuIGVtYWlscyB0byBvbmUuCi0qIGFk ZGVkIG5ldyBQaHBXaWtpOn5XaWtpRm9ybVJpY2ggcGx1Z2luCi0qIGFkZGVkIG5ldyB+QXBwZW5k VGV4dFBsdWdpbiAoYnkgUGFzY2FsIEdpYXJkKQotKiBhZGRlZCBSU1MyIGxpbmsgKGZvcm1hdD1y c3MyKSAgaW4gUmVjZW50Q2hhbmdlcy4gKG5vIGNsb3VkIGNoYW5uZWwgeWV0KQotKiBhZGRlZCBQ aHBXaWtpQWRtaW5pc3RyYXRpb24gV2lraURCIGJ1dHRvbnM6Ci0gIH5bUHVyZ2UgYWxsIGVtcHR5 IHVucmVmZXJlbmNlZCBwYWdlc10sIH5bQ29udmVydCBjYWNoZWRfaHRtbF0KLSogKG55aSkgbmV3 IGV4cGVyaW1lbnRhbCBNb2RlcmF0ZWRQYWdlIGZlYXR1cmUuIChpLmUuIGRlbGF5ZWQgUE9TVCBh Y3Rpb25zKQotKiBuZXcgZWRpdCAiflt+XSBvbGQgbWFya3VwIH5bQ29udmVydH5dIiBidXR0b24g dG8gY29udmVydCBhbmQgc2F2ZSB0byBuZXcgbWFya3VwLgotKiBuZXcgTGlua0RhdGFiYXNlIHBs dWdpbiBhbmQgYWN0aW9ucGFnZSBmb3IgdGhlIGh0dHA6Ly90b3VjaGdyYXBoLnNvdXJjZWZvcmdl Lm5ldC8gfldpa2lCcm93c2VyCi0qIG5ldyBoeXBlcndpa2kgYXBwbGV0IGluIHRoZSBTaWRlYmFy IHRoZW1lLiBTZWUgaHR0cDovL2h5cGVyZ3JhcGguc291cmNlZm9yZ2UubmV0LwotKiBuZXcgeG1s cnBjIG1ldGhvZHM6IHB1dFBhZ2UsIG1haWxQYXNzd29yZFRvVXNlcgotKiBuZXcgeG1scnBjIHRl c3QgZnJhbWV3b3JrCi0qIGFjdGlvbj11cGdyYWRlIHBlcmZvcm1zIG5vdyBhIG15c3FsIExPQ0sg VEFCTEUgcHJpdmlsZWdlcyBjaGVjayBhbmQgZml4Ci0qIGFjdGlvbj11cGdyYWRlIGFza3Mgbm93 IGZvciB0aGUgYWRtaW4ncyB1c2VyIGFuZCBwYXNzd29yZCBpZiBub3QgZGVmaW5lZAotKiBhZGRl ZCBsaWIvQVNDSUlNYXRoUEhQIGFuZCB+QXNjaWlNYXRoIHBsdWdpbgotKiBuZXcgfkFuYWx5c2VB Y2Nlc3NMb2dTcWxQbHVnaW4gKGJ5IENoYXJsZXMgQ29ycmlnYW4pCi0qIG5ldyB+VGVtcGxhdGVQ bHVnaW4sIG9wdGlvbmFsbHkgbWVkaWF3aWtpLXN0eWxlIH57fntUZW1wbGF0ZX59fn0gc3ludGF4 Ci0qIG5ldyBFTkFCTEVfQUNEUk9QRE9XTiBtb2FjZHJvcGRvd24gbGlicmFyeS4gZmFzdCB4bWxy cGMgY29tbXVuaWNhdGlvbiBueWkKLQotPT0gMS4yLjExID09Ci0qIHN1cHBvcnQgcmVtb3ZlIGZv ciAkfldoaWNoRGF0YWJhc2UgPSBmaWxlCi0KLT09IDEuMi4xMCA9PQotKiBzdXBwb3J0IHBocDUg d2l0aCByZWdpc3Rlcl9sb25nX2FycmF5cyA9IG9mZgotCi09PSAxLjIuOSBidWdmaXggPT0KLSog Sm9zZSBWaW5hIGZpeGVkIE1vc3RQb3B1bGFyIHNvcnRpbmcgZm9yIGRiYSBhbmQgZGJtLAotICB3 aGljaCB3YXMgYnJva2VuIHNpbmNlIDEuMi4zCi0KLT09IDEuMi44ICh0aGUgb2xkLXN0YWJsZSBi cmFuY2gpIEphbiwgMzAgMjAwNSwgUmVpbmkgVXJiYW4gPT0KLSogcmVnaXN0ZXJfZ2xvYmFscz1v ZmYgZml4OgotICBmaXggYW5kIGNlbnRyYWxpemUgYnJva2VuIHJlZ2lzdGVyX2dsb2JhbHM9b2Zm IGxvZ2ljLgotKiB1cGRhdGUgbWVzc2FnZSBjYXRhbG9nCi0qIHJlcGxhY2UgbXlzcWxfcGNvbm5l Y3QgYnkgbXlzcWxfY29ubmVjdAotCi09PSAxLjIuNyAodGhlIG9sZC1zdGFibGUgYnJhbmNoKSBK YW4sIDYgMjAwNSwgUmVpbmkgVXJiYW4gPT0KLQotflBocFdpa2kgMS4yLjcgYmFja3BvcnQgY3Zz IHJlbGVhc2UtMV8yLWJyYW5jaCBlbmhhbmNlbWVudHMgbmV2ZXIgcmVsZWFzZWQgd2l0aCAxLjIu My0xLjIuNjoKLSogZnVsbCB4aHRtbCBjb25mb3JtaXR5Ci0qIHNwbGl0X3BhZ2VuYW1lIGluIHRp dGxlIGFuZCBoZWFkZXIgdG8gaGVscCBnb29nbGUKLSogIklOU1RBTEwuTWFjIE9TIFgiIGFkZGVk IGZyb20gY3ZzCi0qIGxpYi96aXBmaWxlLnBocDogQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNo bWVudAotKiBsaWIvY29uZmlnLnBocCwgbGliL3N0ZGxpYi5waHA6IHN1cHBvcnQgbmV3IFVTRV9M SU5LX0lDT05TIGFuZCBBVVRPU1BMSVRfV0lLSVdPUkRTLAotICBiZXR0ZXIgaTE4biAkIX5XaWtp TmFtZVJlZ2V4cAotLSByZS1hZGRlZCBpbWFnZXMvKiBMSU5LX0lDT05TLCBwcmUtY2FsY3VsYXRl IERBVEFfUEFUSAotLSBsb2NhbGUvKjogZml4IGFuZCB1cGRhdGUgc3RyaW5ncyBhbmQgdGVtcGxh dGVzIGVzcC4gZm9yIGdlcm1hbiwKLSogaW5kZXgucGhwOiB1cmxwYXJzZXIgZXh0ZW5kZWQgdG8g b21pdCAmc3RhcnRfZGVidWc9MSBhbmQgb3RoZXIgYXJncwotKiBhZGRlZCBtaW5vcl9lZGl0IGNo ZWNrYm94Ci0qIHByaW50IG1vcmUgbWV0YSB0YWdzOiByb2JvdHMsIGZhdmljb24sIGxhbmd1YWdl IGFuZCBQSFBXSUtJX1ZFUlNJT04KLQotPT0gMS4yLjYgKHRoZSBvbGQtc3RhYmxlIGJyYW5jaCkg RGVjLCAxOSAyMDA0LCBSZWluaSBVcmJhbiA9PQotCi1GbGF0ZmlsZSBmaXhlcyBhbmQgZW5oYW5j ZW1lbnQ6Ci0qIGZpeGVkICFUaXRsZVNlYXJjaCBhbmQgQmFja2xpbmtzIGZvciBmbGF0ZmlsZS4K LSogZW5hYmxlIE1vc3RQb3B1bGFyIChoaXRjb3VudCBzdG9yYWdlKSBmb3IgZmxhdGZpbGUKLQot PT0gMS4yLjUgKHRoZSBvbGQtc3RhYmxlIGJyYW5jaCkgTm92LCAyOCAyMDA0LCBSZWluaSBVcmJh biA9PQotKiB3b3JrcyB3aXRoIHJlZ2lzdGVyX2dsb2JhbHM9b2ZmCi0qIGFkZHMgdXNlci9wYXNz d29yZCB0byBwZ3NxbCwKLSogZml4IHppcCBhbmQgZHVtcHNlcmlhbCBvbiBkYmEsIGRibSwgbXNx bCBhbmQgZmlsZSwKLSogYW5kIGZpeGVzIGEgbWlub3IgKHVuKWxvY2sgaXNzdWUsIGRpc3BsYXlp bmcgdGhlICh1bilsb2NrZWQgcGFnZSBhZnRlcndhcmRzCi0gIGFuZCBub3QgdGhlIH5Gcm9udFBh Z2UuCi0KLT09IDEuMy4xMCBNYXksIDEzIDIwMDQsIFJlaW5pIFVyYmFuLCBKb2J5IFdhbGtlciA9 PQotCi1JbiBzaG9ydDogcGFnaW5nIHN1cHBvcnQsIGFkb2RiIHJld3JpdGUsIHBlcm1pc3Npb24g cHJvYmxlbSBmaXhlZC4KLQotPT09IEZpeGVzID09PQotKiBmaXhlZCBzZXZlcmUgcGVybWlzc2lv biBwcm9ibGVtOgotICBEZWZhdWx0IHBlcm1pc3Npb25zIG5vdCBob25vcmVkLiBFdmVyeWJvZHkg d2FzIGFibGUgdG8gZWRpdC4KLSogc2V0IFVzZXJQcmVmZXJlbmNlcyBmb3IgYm9vbCBhbmQgaW50 IGZpeGVkCi0qIFBPUDMgYXV0aAotKiBkYmEgb3BlbiBwcm9ibGVtcyBpbXByb3ZlZCwgYnV0IG5v dCBnZW5lcmFsbHkgZml4ZWQKLSogZml4ZWQgZGJhIHNlc3Npb24gcmVhZGluZywgYnV0IHN0aWxs IGJyb2tlbgotKiBzdXBwb3J0IHdpa2l3b3JkIGxpbmtzIGFuZCBpbWFnZSBsaW5rcyBpbiB+Umlj aFRhYmxlIGNvbnRlbnQsCi0gIGJhY2tsaW5rcyBzdGlsbCBub3Qgd29ya2luZy4KLSogZml4ZWQg bmF2YmFyIGxpbmtzIGluIHRoZW1lIHNtYWxsZXIsIGFuZCBtYWRlIHRoZW0gZGVmYXVsdAotKiBm aXhlZCBsb2FkaW5nIG9mIGxvY2FsaXplZCBwYWdlbmFtZXMgb24gYWN0aW9uPXVwZ3JhZGUKLSog Zml4ZWQgaW50ZXJ3aWtpLm1hcCBsb2FkaW5nIG9uIGNlcnRhaW4gflByZXR0eVdpa2kgc2V0dXBz Ci0qIHJlLWVuYWJsZWQgcGhwLTQuMC42IHN1cHBvcnQgKGJyb2tlbiBzaW5jZSAxLjMuODogc3Vw ZXJnbG9iYWxzLCBhcnJheV9rZXlfZXhpc3RzKSwKLSAgNC4wLjQtcGwxIGFuZCA0LjAuNSBkbyB3 b3JrLCBidXQgbm90IHN0YWJsZSBlbm91Z2guCi0qIGZpeCBydW5uaW5nIHBocHdpa2kgaW4gImh0 dHA6Ly9zZXJ2ZXIvIiAoZW1wdHkgREFUQV9QQVRIKQotKiBmaXggUGhwV2lraTp+UHJldHR5V2lr aSBkZXRlY3Rpb246IHN0YXJ0ZXIgc2NyaXB0IGluY2x1ZGVzIGluZGV4LnBocCwKLSAgYW5kIGlu Y2x1ZGUgbWFpbi5waHAgYnkgaXRzIG93biB0byBvdmVycmlkZSBjZXJ0YWluIGNvbmZpZyB2YWx1 ZXMuCi0qIGZpeCB+V2lraUFkbWluUmVtb3ZlIGFyZ3VtZW50cyBwYXNzZWQgZnJvbSBXaWtpQWRt aW5TZWxlY3QsCi0gIH5XaWtpQWRtaW5SZW1vdmUgZGVsZXRlZCB0b28gbWFueSBhcmdzIGlmIHBh c3NlZCBmcm9tIFdpa2lBZG1pblNlbGVjdAotKiBzZXNzaW9uIHRyYW5zcG9ydGF0aW9uIGltcHJv dmVkLCBubyBkYiBvYmplY3RzIHN0b3JlZAotKiB+UGFnZUdyb3VwIHN1cHBvcnQgZm9yIH5bbGlu a3NdIGFuZCBzdWJwYWdlcwotKiB+SHR0cENsaWVudCBmaXhlcyBmb3Igb2xkZXIgcGhwJ3MKLSog flJzc0ZlZWQgZm9yIGFsbG93X3VybF9mb3Blbj1mYWxzZSwgSU1BR0Ugc3VwcG9ydCwgZW1wdHkg SVRFTSBsaXN0Ci0qIFRoZW1lIGJ1dHRvbnMgYXJlIG5vdyBhbHNvIHNlYXJjaGVkIGluIHRoZSBk ZWZhdWx0IHRoZW1lCi0qIG51bWVyb3VzIG90aGVyIG1pbm9yIGJ1Z2ZpeGVzLgotCi09PT0gQ2hh bmdlcyA9PT0KLSogQURPREIgdXBkYXRlIGZyb20gYW5jaWVudCBteXNxbC1vbmx5LCB0byA0LjIx IHdpdGggYWxsIHN1cHBvcnRlZCBkYXRhYmFzZXMuCi0gIHRyYW5zYWN0aW9uIHN1cHBvcnQsIHdp dGggbXlzcWwgbG9ja2luZy13b3JrYXJvdW5kcwotKiBwZWFyIG5vdCBpbiBvdXIgaW5jbHVkZV9w YXRoIGFueW1vcmU6IGVpdGhlciB1c2UgeW91ciBwZWFyIG9yIG91ciBwZWFyLAotICBieSBhZGRp bmcgaXQgdG8geW91ciBpbmNsdWRlX3BhdGggb3Igbm90LiB1c2Ugbm93IDE6MSBjb3BpZXMgb2Yg cGVhciBsaWJzLgotKiB+Q3JlYXRlVG9jIHBhcnNlcyBub3cgaGVhZGVycyB3aXRoIGxpbmtzIGFu ZCBmb3JtYXR0aW5nIG9wdGlvbmFsbHksIGlmCi0gIFRPQ19GVUxMX1NZTlRBWCBpcyBkZWZpbmVk Ci0qIH5QYWdlQ2hhbmdlTm90aWZpY2F0aW9uOiB1c2VyaWRzLCBub3QgZW1haWxzIGFyZSBwcmlu dGVkCi0qIGRlZmF1bHQgdGhlbWUgbmF2YmFyIGNvbnNpc3RlbmN5OiBsaW5rQnV0dG9ucyBpbnN0 ZWFkIG9mIGFjdGlvbiBidXR0b25zCi0qIF9+V2lraVRyYW5zbGF0aW9uIHdoYXQ9YnV0dG9ucywg bm9UPTEsIG5vbGlua3M9MQotKiB+U2V0dXBXaWtpICh2aXJnaW4gc2V0dXApIGFsc28gbG9hZHMg YWxsIG1hbmRhdG9yeSBwYWdlcyBub3cKLSAgYW5kIG92ZXJ3cml0ZXMgUmVsZWFzZU5vdGVzCi0q IH5QYWdlQ2hhbmdlTm90aWZpY2F0aW9uIGNoYW5nZWQgc3ViamVjdCB0byAiflt+V2lraU5hbWVd IFBhZ2UgY2hhbmdlICVzIiwKLSAgdXBkYXRlIHlvdXIgZmlsdGVycyBhY2NvcmRpbmdseQotKiBh Y3Rpb249dXBncmFkZSBub3cgbGlua2VkIGluIFBocFdpa2lBZG1pbmlzdHJhdGlvbiwKLSAgZGI6 IGZpeCBwYWdlLmlkIGF1dG9faW5jcmVtZW50IGFuZCBBREQgc2Vzc2lvbi5zZXNzX2lwCi0qIHNv bWUgaW50ZXJuYWwgfklubGluZVBhcnNlciBvcHRpbWl6YXRpb24KLSogREJBdXRoUGFyYW0gc3Rh dGVtZW50IHN5bnRheCBjaGFuZ2U6IHZhcmlhYmxlcyBub3cgbGlrZSAnJHVzZXJpZCcKLQotPT09 IE5ldyA9PT0KLSogbmV3IGluaS1zdHlsZSBjb25maWcgaW5zdGVhZCBvZiBvbGQgaW5kZXgucGhw LCBieSBKb2J5IFdhbGtlcgotKiBwYWdpbmcgc3VwcG9ydCBmb3IgcGFnZWxpc3RzIGxvbmdlciB0 aGFuIGxpbWl0Ci0qIH5Qb3B1bGFyTmVhcmJ5IHBsdWdpbjogc2FtZSBhcyB0aGUgY2xhc3NpYyBt b3N0IHBvcHVsYXIgZm9vdGVyCi0qIGZvcm1hdHRlZCBzaW5nbGUtbGluZSBwbHVnaW5zIHN1cHBv cnRlZAotKiBSZWxhdGVkQ2hhbmdlcyBwbHVnaW46IG9ubHkgdGhvc2Ugd2hpY2ggYXJlIGxpbmtz IGF0IHRoZSBjdXJyZW50IHBhZ2UKLSogbmV3IH5Hb29nbGVMaW5rIHByZWY6IGFkZCAifltHXSIg bG9va3VwIG9uIHVua25vd24gbGlua3MKLSogYWRkZWQgY2hpbmVzZSBsYW5ndWFnZSBzdXBwb3J0 LCBieSBZYW4tcmVuIFRzYWkgKGRydXJ5bCkKLSogYWRkZWQgbWlzc2luZyBNYWNPU1ggYnV0dG9u cywgYnkgQ2Fyc3RlbiBLbGFwcC4KLSogbmV3IENyYW8gdGhlbWUgZnJvbSBodHRwOi8vd2lraS5j cmFvLm5ldCwgYnkgQXJuYXVkIEZvbnRhaW5lIGFuZCBMYXVyZW50IEx1bmF0aQotKiBleHRlbmRl ZCBQaHBXaWtpOklubGluZUltYWdlcyBtYXJrdXAgKHNpemUsIGJvcmRlciwgLi4uKQotCi09PSAx LjMuOS1wMSBNYXksNSAyMDA0LCBSZWluaSBVcmJhbiA9PQotCi1CdWdmaXggcGF0Y2ggZm9yIHRo ZSBmb2xsb3dpbmcgMS4zLjkgcHJvYmxlbXM6Ci0qIERlZmF1bHQgcGVybWlzc2lvbnMgbm90IGhv bm9yZWQuIEV2ZXJ5Ym9keSB3YXMgYWJsZSB0byBlZGl0LgotKiBzZXQgVXNlclByZWZlcmVuY2Vz IGZvciBib29sIGFuZCBpbnQgZml4ZWQKLSogZGJhIG9wZW4gcHJvYmxlbXMgaW1wcm92ZWQKLSog c2Vzc2lvbiB0cmFuc3BvcnRhdGlvbiBpbXByb3ZlZCwgbm8gZGIgb2JqZWN0cyBzdG9yZWQKLSog cGhwLTQuMC42IHN1cHBvcnQgcmUtZW5hYmxlZCAoc3VwZXJnbG9iYWxzLCBhcnJheV9rZXlfZXhp c3RzKQotKiB+V2lraUFkbWluUmVtb3ZlIGRlbGV0ZWQgdG9vIG1hbnkgaWYgYXJncyBwYXNzZWQg ZnJvbSBXaWtpQWRtaW5TZWxlY3QKLSogflBhZ2VHcm91cCBzdXBwb3J0IGZvciB+W2xpbmtzXSBh bmQgc3VicGFnZXMKLSogZGlzYWJsZWQgZGVmYXVsdCBkYmEgc2Vzc2lvbnMsIGJyb2tlbiEKLSog fkh0dHBDbGllbnQgZml4ZXMgZm9yIG9sZGVyIHBocCdzCi0qIH5Sc3NGZWVkIGZvciBhbGxvd191 cmxfZm9wZW49ZmFsc2UsIElNQUdFIHN1cHBvcnQsIGVtcHR5IElURU0gbGlzdAotCi09PSAxLjIu NCAodGhlIG9sZC1zdGFibGUgdmVyc2lvbikgTWF5LCA0IDIwMDQsIFJlaW5pIFVyYmFuID09Ci0q IGltcHJvdmVzIHBvc3NpYmxlIGRlYWRsb2NrcyBpbiBEQkEsCi0qIGZpeGVzIHByb2JsZW1zIHdp dGggREJBIG9wZW4gZmFpbHVyZXMuCi0KLT09IDEuMi4zICh0aGUgb2xkLXN0YWJsZSB2ZXJzaW9u KSBBcHIsIDI5IDIwMDQsIFJlaW5pIFVyYmFuID09Ci0qIGFkZGVkIHRoZSBtb3N0IHBvcHVsYXIg Zm9vdGVyIGZvciBkYmEKLSogYWRkZWQgcmVtb3ZlIGZvciBkYmEKLSogZml4ZWQgYSB3YXJuaW5n IG9uIGluZm8gcGFnZQotCi09PSAxLjMuOSBBcHIsIDEyIDIwMDQsIFJlaW5pIFVyYmFuID09Ci0K LUJ1Z2ZpeCByZWxlYXNlIGZvciB0aGUgZm9sbG93aW5nIDEuMy44IHByb2JsZW1zOgotKiBzeW50 YXggZXJyb3JzIGluIGxpYi9wbHVnaW4vflVwTG9hZC5waHAKLSogc3ludGF4IGVycm9ycyBpbiBs aWIvcGx1Z2luL35XaWtpQWRtaW5SZW1vdmUucGhwCi0qIHN5bnRheCBlcnJvciBpbiBzY2hlbWFz L215c3FsLnNxbAotKiBzZXZlcmFsIHBhdGggaXNzdWVzIChjYW5ub3QgZmluZGZpbGUuLi4pLCB3 aGljaCB3ZXJlIGNhdXNlZAotICBieSBhIGNoZGlyIGZvciBiaW5kdGV4dGRvbWFpbiBpbiBsaWIv Y29uZmlnLnBocC4KLSAgICBGYWlsZWQgb3BlbmluZyByZXF1aXJlZCAnbGliL3N0ZGxpYi5waHAn LAotICAgIHRlbXBsYXRlcy9odG1sLnRtcGw6IG5vdCBmb3VuZCwgYW5kIG1vcmUKLSogYWRkZWQg c2VsZi1yZWdpc3RyYXRpb24gZm9yIH5EYlBhc3NVc2VyCi0qIGFkZGVkIH5Hb1RvIHBsdWdpbiwg flJhdGVJdCBhY3Rpb24gcGFnZQotCi09PSAxLjMuOCBKYW4tQXByIDIwMDQsIFJlaW5pIFVyYmFu ID09Ci0KLUV4dGVybmFsIHBsdWdhYmxlIGF1dGhlbnRpY2F0aW9uLCBEQiBwcmVmcyBhbmQgc2Vz c2lvbnMsCi1zb21lIG1vcmUgZml4ZXMsIGRvY3MsIHRoZW1lcyBhbmQgcGx1Z2lucy4KLQotKiBu ZXcgfldpa2lVc2VyTmV3IGNsYXNzIChzdGFydGVkIGJ5IENhcnN0ZW4gS2xhcHApLAotKiBuZXcg UHJlZmVyZW5jZXMgKG9wdGlvbmFsbHkgZnJvbSBEQiwgbm8gY29va2llcyBhbnltb3JlKQotKiBp bXByb3ZlZCBEQl9TZXNzaW9uIChhZGRlZCBBRE9EQiArIGRiYSBzdXBwb3J0LAotICBXaG9Jc09u bGluZSBzdXBwb3J0KQotKiBlbmFibGVkIH5XaWtpR3JvdXAgKEpvYnkgV2Fsa2VyIGFuZCBSZWlu aSBVcmJhbikKLSogbmV3IGluZGl2aWR1YWwgflBhZ2VQZXJtaXNzaW9ucyAoZW5hYmxlZCwgYnV0 IG5vdCB5ZXQgZW5mb3JjZWQpCi0qIG5ldyB+V2lraUFkbWluUmVuYW1lLCB+V2lraUFkbWluU2Vh cmNoUmVwbGFjZSwgfldpa2lBZG1pblNldEFjbAotKiBzZXZlcmFsIG90aGVyIG5ldyBwbHVnaW5z OiB+V2lraVBvbGwsIFdob0lzT25saW5lLAotICB+Q3JlYXRlVG9jIChleHBlcmltZW50YWwpLCB+ QWRkQ29tbWVudCwKLSAgX35XaWtpVHJhbnNsYXRpb24gYW5kIH5UcmFuc2xhdGVUZXh0LCB+Tm9D YWNoZSwKLSAgflVwTG9hZCAoYnkgTmF0aGFuIEdhc3MsIHF1Yml0IGFuZCBSZWluaSBVcmJhbiks Ci0gIH5JbmNsdWRlU2l0ZU1hcCAoYnkgY3V0aGJlcnRjYXQgYW5kIFJlaW5pIFVyYmFuKSwKLSAg flJpY2hUYWJsZSAoYnkgU2FtZWVyIEQuIFNhaGFzcmFidWRkaGUpLAotICB+Q3JlYXRlUGFnZSBh bmQgflJhdGVJdCAoYnkgRGFuIEZyYW5rb3dza2kpLAotICB+UnNzRmVlZCAoYnkgQXJuYXVkIEZv bnRhaW5lKQotKiBhZGRlZCB+SW50ZXJXaWtpIGltYWdlIGJ1dHRvbiBzdXBwb3J0Ci0qIGFkZGVk IEphcGFuZXNlIGxhbmd1YWdlIHN1cHBvcnQgKGJ5IFRhZGFzaGkgSm9rYWdpKQotKiBhZGRlZCBz cWxpdGUgc3VwcG9ydCAodGhhbmtzIHRvIE1hdHRoZXcgUGFsbWVyKQotKiBhZGRlZCB0aGVtZSBh bmQgcGx1Z2luLXNwZWNpZmljIH5QYWdlTGlzdCBjb2x1bW4gdHlwZXMgYW5kIHRoZW1lLXNwZWNp ZmljIFVzZXJQcmVmZXJlbmNlcwotKiBhZGRlZCB+RW1haWxWZXJpZmljYXRpb24gYW5kIH5QYWdl Q2hhbmdlTm90aWZpY2F0aW9uIChleHBlcmltZW50YWwpCi0qIGFkZGVkIG5ldyBzZXNzX2lwIGNv bHVtbiAoREJfU2Vzc2lvbikgZm9yIGlwLWJhc2VkIHJvYm90IHRocm90dGxpbmcKLQotKiBQZWFy IERCIHVwZGF0ZSwgbWlub3IgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQgZm9yIFBlYXJEQgotKiB+ UGFnZUxpc3Q6IGVuaGFuY2VkIHNvcnRieSArIGxpbWl0IHN1cHBvcnQsIHNvcnRhYmxlIGdyaWRi dXR0b25zIGVuZm9yY2VkLCBjbGVhbnVwLgotKiBtaW5vciB0aGVtZS9kZWZhdWx0IG92ZXJoYXVs LCBuZXcgdGhlbWUvc21hbGxlciwgbmV3IGV4cGVyaW1lbnRhbCB0aGVtZS93aWtpbGVucwotKiBu ZXcgdGhlbWUvV29yZHByZXNzIGJ5IE1pa2UgUGlja2VyaW5nCi0qIHVwZGF0ZWQgdGhlbWUvU2lk ZWJhcjogYm94IG1ldGhvZHMsIGZhc3QganNjYWxlbmRhciBhbmQgZWFzaWVyIHRvIGN1c3RvbWl6 ZQotKiBtb3JlIH5PbGRTdHlsZVRhYmxlIGFyZ3VtZW50cywgflBob3RvQWxidW0gbG9jYWwgZnMg c3VwcG9ydAotKiBwcmVsaW1pbmFyeSBhY3Rpb249dXBncmFkZSAoVG8gaW1wb3J0IG5ldyBwZ3Ny YyBwYWdlcyBvbmx5IHlldC4gbm90IGZvciBEQikKLSogcHJlbGltaW5hcnkgU09BUCBzdXBwb3J0 Ci0qIGFkZGVkIH5QZGZPdXRwdXQgbGlicmFyaWVzCi0qIGV4cGVyaW1lbnRhbCBqYXZhc2NyaXB0 IFNlYXJjaCZSZXBsYWNlIGVkaXQgYnV0dG9ucwotKiBleHBlcmltZW50YWwgb2xkLWJyb3dzZXIg Y29tcGF0aWJpbGl0eSBjb2RlLgotKiBmaXhlZCBXaWtpQWRtaW5TZWxlY3QsIH5XaWtpQWRtaW5S ZW1vdmUKLSogZml4ZWQgYW5kIGltcHJvdmVkIFhIVE1MIGR1bXBzIChjc3MsIGltYWdlcywgdW5s aW5rZWQgcGFnZXMsIFxyXHJcbiBpc3N1ZSkKLSogZml4ZWQgQURPREIgbGltaXQgcHJvYmxlbSwg Zml4ZWQgZGJhIG9uIFdpbmRvd3MgUEhQIDQuMy54Ci0qIGZpeGVkIH5CbG9ja1BhcnNlciBwcm9i bGVtIHdpdGggIjAiIGFzIHRleHQKLSogZml4ZWQgflVuZm9sZFN1YnBhZ2VzIHNvcnRieQotKiBm aXhlcyBmb3IgUEhQNSBjb21wYXRpYmlsaXR5IHN0YXJ0ZWQKLSogZml4ZWQgZ2V0dGV4dCwgc2V0 bG9jYWxlIGFuZCB1cGRhdGVfbG9jYWxlIHByb2JsZW1zCi0KLT09IDEuMy40IHVudGlsIDEuMy43 LCAyMDAyLTIwMDMgSmVmZiwgQ2Fyc3RlbiBhbmQgU3RldmUgV2FpbnN0ZWFkID09Ci0KLSogc2V2 ZXJhbCBzdGFibGUgcmVsZWFzZXMgd2l0aCBiZXR0ZXIgZG9jdW1lbnRhdGlvbiAobW9zdCBwbHVn aW5zKSBhbmQgdmFyaW91cyBidWdmaXhlcy4KLSogfkVkaXRNZXRhRGF0YSAoYnkgTWljaGFlbCBW YW4gRGFtKSBmb3IgZXhhbXBsZS4gKGZvcmdvdCB3aGF0IGVsc2Ugd2FzIG5ldykKLSogSm9jaGVu IEthbG1iYWNoJ3MgbmV3IH5Vc2VyRmlsZU1hbmFnZW1lbnQgYW5kIH5Vc2VyUmVnaXN0cmF0aW9u IGRpZG4ndCB3ZW50IHVwc3RyZWFtLgotICAocGVyc29uYWwgdXBsb2FkcywgLi4uKQotCi09PSAx LjMuMyBlYXJseSAyMDAyLCBKZWZmIHN0cmlrZXMgYmFjaywgd2l0aCB0aGUgaGVscCBvZiBDYXJz dGVuIEtsYXBwID09Ci0KLSogbWFqb3IgZmVhdHVyZSBlbmhhbmNlbWVudHM6Ci0qIENhY2hlIGFs bCBvdXRwdXQgYW5kIHVzZSBhIGNsZXZlciBwYWdlIGNhY2hlLiBHZXQgcmlkIG9mIHBsdWdpbi1o ZWFkLgotKiBuZXcgflBhZ2VUeXBlIGNsYXNzLiBGb3JtYXR0ZXIgYW5kIFNlYXJjaCBlbmdpbmUg cmV3cml0ZS4KLSogVmFsaWRhdG9yCi0qIGJyb2tlIHNldmVyYWwgb2xkZXIgcGx1Z2luczogSW50 ZXJXaWtpU2VhcmNoLCBXaWtpQWRtaW5TZWxlY3QuIGJyb2tlIGltYWdlIGJ1dHRvbnMKLSogQ2Fy c3RlbiBLbGFwcCdzIGJlbG92ZWQgTWFjIE9TIFggdGhlbWUsIGJ1dHRvbiBmYWN0b3J5IGFuZCBD U1Mgd2l6YXJkcnkgaW4gZ2VuZXJhbC4KLSogWEhUTUwgZHVtcHMsIFdpa2lCbG9nIGFzIHBhZ2Ug dHlwZS4KLSogUGx1Z2luTWFuYWdlciBhbmQgc2V2ZXJhbCBtb3JlIHBsdWdpbnMuCi0KLT09IDEu My4yIGVhcmx5IDIwMDIsIFJlaW5pIFVyYmFuIHN0cmlrZXM6ID09Ci0KLSogU3RhcnQgb2YgZXh0 ZXJuYWwgYXV0aG9yaXNhdGlvbiBpbiB0aGUgY29uZmlnLCBidXQgbm90IGluIGNvZGUuCi0qIFN0 b3JlIFByZWZlcmVuY2VzIGluIHRoZSB1c2VycyB+UGVyc29uYWxQYWdlIChKZWZmKQotKiBTZXNz aW9ucyBpbiBEQiwgcGVhciBEQiB1cGRhdGUKLSogY29uY2VwdCBvZiBTdWJwYWdlcywgflVuZm9s ZFN1YnBhZ2VzLCB+U2l0ZU1hcCwgQWxsUGFnZXMsIEFsbFVzZXJzLCAuLi4KLSogflBhZ2VMaXN0 IChKZWZmIGFuZCBSZWluaSkKLSogU2V2ZXJhbCBuZXcgcGx1Z2luczogflJlZGlyZWN0VG8sIHBs dWdpbi1oZWFkIGFyY2hpdGVjdHVyZS4KLSAgTm9ybWFsaXplIHRlbXBsYXRlIG5hbWVzLiBXaWtp QWRtaW5TZWxlY3QgYXJjaGl0ZWN0dXJlOiB+V2lraUFkbWluUmVtb3ZlCi0qIH5WaXN1YWxXaWtp LCB+VGV4VG9QbmcsIHRleHQycG5nICsgc2V2ZXJhbCBjYWNoZWQgcGx1Z2lucyAoYnkgSm9oYW5u ZXMgR3Jvw59lKQotKiB+UGhwV2VhdGhlciAoPyksIH5QcmV2TmV4dCwgaW1hZ2UgYnV0dG9ucywK LSogfkluY2x1ZGVQYWdlIChKb2UgRWRlbG1hbiksIH5GcmFtZUluY2x1ZGUgKFJlaW5pKSwgVHJh bnNjbHVkZSAoSmVmZikKLSogQ2FsZW5kYXIgKGNvbnRyaWJ1dGVkIGJ5ID8pLCB+Q2FsZW5kYXJM aXN0LCBXaWtpQmxvZywgLi4uCi0KLS4uLi4gYSBzbWFsbCBob2xlIGhlcmUgLi4uLiAodGhyZWUg eWVhcnMgbm8gZGV0YWlsZWQgSElTVE9SWS4gc2VlIHRoZSBvdXRsaW5lIGFib3ZlKQotCi09PSBK ZWZmcyBIYWNrcyA9PQotCi0qIE5ldyBkYXRhYmFzZSBBUEkuICBTZWUgPWxpYi9XaWtpREIucGhw PSBhbmQgPWxpYi9XaWtpREIvYmFja2VuZC5waHA9Ci0gIGZvciB0aGUgYnVsayBvZiB0aGUgZG9j dW1lbnRhdGlvbiBvbiB0aGlzLiAgVGhlIG5ldyBkYXRhYmFzZSBjYW4KLSAgc2F2ZSBtdWx0aXBs ZSBhcmNoaXZlZCB2ZXJzaW9ucyBvZiBlYWNoIHBhZ2UuICBBIG1lY2hhbmlzbSBmb3IKLSAgcHVy Z2luZyBhcmNoaXZlZCByZXZpc2lvbnMgaXMgbm93IGluIHBsYWNlIGFzIHdlbGwuICBTZWUgdGhl Ci0gICR+RXhwaXJlUGFyYW1zIHNldHRpbmcgaW4gPWluZGV4LnBocD0sIGFuZCA9bGliL35BcmNo aXZlQ2xlYW5lci5waHA9Ci0gIGZvciBkZXRhaWxzLiAgQXQgdGhpcyBwb2ludCwgdGhlIERCQSwg TXlTUUwgYW5kIFBvc3RncmVzIGJhY2tlbmRzCi0gIGFyZSBmdW5jdGlvbmFsLiAgVGhlIERCQSBi YWNrZW5kIGNvdWxkIHVzZSBzb21lIHBlcmZvcm1hbmNlCi0gIG9wdGltaXphdGlvbi4gIFRoZSB3 aG9sZSBBUEkgaXMgc3RpbGwgc3ViamVjdCB0byBzb21lIGNoYW5nZSBhcyBJCi0gIGZpZ3VyZSBv dXQgYSBjbGVhbiB3YXkgdG8gcHJvdmlkZSBmb3IgYSB2YXJpZXR5IG9mIChub3QgYWxsIGZvcnNl ZW4pCi0gIG1ldGhvZHMgb2YgaW5kZXhpbmcgYW5kIHNlYXJjaGluZyB0aGUgd2lraS4KLSogTmV3 IH5XaWtpUGx1Z2luIGFyY2hpdGVjdHVyZS4KLSogTmV3IHRlbXBsYXRlIGVuZ2luZS4gIFRoaXMg bmVlZHMgdG8gYmUgZG9jdW1lbnRlZCBmdXJ0aGVyLCBidXQsIGZvcgotICBub3csIHNlZSA9bGli L1RlbXBsYXRlLnBocD0uICBPbiBzZWNvbmQgdGhvdWdodCwgZG9uJ3QKLSAgKD1saWIvVGVtcGxh dGUucGhwPSBkZXNwZXJhdGVseSBuZWVkcyByZWZhY3RvcmluZywgc3RpbGwuKSAgVGhlCi0gIGJh c2ljIGFkdmFuY2UgaXMgdGhhdCBQSFA0J3MgPW9iXyooKT0gZnVuY3Rpb25zIGNhbiBiZSB1c2Vk IHRvCi0gIGNhcHR1cmUgb3V0cHV0IGZyb20gY29kZSB0aGF0IGlzIHJ1biB0aHJvdWdoID1ldmFs KCkuICBUaGlzIGFsbG93cwotICB0aGUgdGVtcGxhdGVzIHRvIGJlIFBIUCBjb2RlLi4uCi0qIEVk aXQgcHJldmlldyBidXR0b24gb24gdGhlIGVkaXQgcGFnZS4gIE5vdyB5b3UgY2FuIHNlZSB3aGF0 IHlvdXIKLSAgZWRpdHMgbG9vayBsaWtlIGJlZm9yZSBjb21taXR0aW5nIHRoZW0uCi0qIFJld29y a2VkIHRoZSBzdHlsZS1zaGVldHMuICBJIHN0aWxsIG5lZWQgdG8gY2xlYW4gdGhpcyB1cCBzb21l IG1vcmUuCi0gIEkgd291bGQgYXBwcmVjaWF0ZSBjb21tZW50cyBhbmQgYnVnIHJlcG9ydHMgb24g aXQuICBTbyBmYXIgSSd2ZSBvbmx5Ci0gIHRlc3RlZCB0aGUgbmV3IHN0eWxlIHNoZWV0cyB3aXRo IE5ldHNjYXBlIDQuNzcgYW5kIE1vemlsbGEgMC45LjMKLSAgKGJvdGggcnVubmluZyB1bmRlciBM aW51eC4pCi0qIEV4cGFuZGVkIHN5bnRheCBmb3IgdGV4dCBzZWFyY2gsIFNlYXJjaGVzIGxpa2Ug Indpa2kgb3Igd2ViIC1wYWdlIgotICAob3IgIih3aWtpIG9yIHdlYikgYW5kIG5vdCBwYWdlIikg d2lsbCBub3cgZG8gbW9yZS1vci1sZXNzIHdoYXQgdGhleQotICBsb29rIGxpa2UgdGhleSdsbCBk by4KLSogU2VjdXJpdHkgSXNzdWVzOiB+UGhwV2lraSB3aWxsIG5vdyB3b3JrIHdpdGggUEhQJ3Mg PXJlZ2lzdGVyX2dsb2JhbHM9Ci0gIHNldCB0byBvZmYuCi0KLT09IDEuMy54IGRldmVsb3BtZW50 IGJyYW5jaCA9PQotCi0qIFBhZ2VuYW1lcyBpbiA9UEFUSF9JTkZPPS4KLSogRmlsZSB1cGxvYWRz OiBzZWUgUGhwV2lraUFkbWluaXN0cmF0aW9uLgotKiBVc2VyUHJlZmVyZW5jZXMuCi0qIFVnbHkg fk1hZ2ljUGhwV2lraVVSTHMgZm9yIGFkbWluaXN0cmF0aXZlIGxpbmtzLgotCi09PSAxLjIgPT0K LQotKiBEYXRhYmFzZSBzdXBwb3J0IGZvciBNeVNRTCwgUG9zdGdyZXNxbCwgbVNRTCwgZmxhdCBm aWxlIGFuZCB0aGUgbmV3Ci0gIGRiYV8gbGlicmFyeSBpbiBQSFA0IGlzIGluY2x1ZGVkLgotKiBJ bnRlcm5hdGlvbmFsaXphdGlvbjogc3VwcG9ydCBmb3IgZGlmZmVyZW50IGxhbmd1YWdlcywgZG93 biB0byB0aGUKLSAgc291cmNlIGxldmVsLCBpcyBpbmNsdWRlZC4gR2VybWFuLCBTcGFuaXNoLCBT d2VkaXNoIGFuZCBEdXRjaCBhcmUKLSAgY3VycmVudGx5IHNoaXBwZWQgd2l0aCB+UGhwV2lraS4g QW4gYXJjaGl0ZWN0dXJlIGlzIGluIHBsYWNlIHRvCi0gIGVhc2lseSBhZGQgbW9yZSBsYW5ndWFn ZXMuCi0qIE5ldyBsaW5raW5nIHNjaGVtZXMgdXNpbmcgc3F1YXJlIGJyYWNrZXRzIGluIGFkZGl0 aW9uIHRvIHRoZSBvbGQKLSAgc3R5bGUgfkJ1bXB5VGV4dC4KLSogQWRtaW5pc3RyYXRpb24gZmVh dHVyZXMgaW5jbHVkZSBwYWdlIGxvY2tpbmcsIGR1bXBpbmcgdGhlIFdpa2kgdG8gYQotICB6aXAg ZmlsZSwgYW5kIGRlbGV0aW5nIHBhZ2VzLgotKiBBIE1vc3RQb3B1bGFyIHBhZ2Ugc2hvd2luZyB0 aGUgbW9zdCBmcmVxdWVudGx5IGhpdCBwYWdlcy4KLSogRnVsbCBIVE1MIGNvbXBsaWFuY2UuCi0q IExpbmtzIGF0IHRoZSBib3R0b20gb2YgcGFnZXMgZGVzY3JpYmluZyByZWxhdGlvbnNoaXBzIGxp a2UgaW5jb21pbmcKLSAgbGlua3MgZnJvbSBvdGhlciBwYWdlcyBhbmQgdGhlaXIgaGl0cywgb3V0 Z29pbmcgYW5kIHRoZWlyIGhpdHMsIGFuZAotICB0aGUgbW9zdCBwb3B1bGFyIG5lYXJieSBwYWdl cy4KLSogQ29sb3IgcGFnZSBkaWZmcyBiZXR3ZWVuIHRoZSBjdXJyZW50IGFuZCBwcmV2aW91cyB2 ZXJzaW9uLgotKiBBbiBpbmZvIHBhZ2UgdG8gdmlldyBwYWdlIG1ldGFkYXRhLgotKiBGYXIgbW9y ZSBjdXN0b21pemF0aW9uIGNhcGFiaWxpdHkgZm9yIHRoZSBhZG1pbi4KLSogQSB0ZW1wbGF0aW5n IHN5c3RlbSB0byBzZXBhcmF0ZSB0aGUgcGFnZSBIVE1MIGZyb20gdGhlIFBIUCBjb2RlLgotKiBO ZXcgbWFya3VwIGNvbnN0cnVjdHMgZm9yID08Qj49LCA9PEk+PSwgPTxERD49LCA9PEJSPj0gYW5k IG1vcmUuCi0qIFRhYmxlc3MgbWFya3VwIHRvIHN1cGVyY2VkZSB0aGUgb2xkZXIgbWFya3VwIChi b3RoIHN0aWxsIHN1cHBvcnRlZCkuCi0KLT09IDEuMS45ID09Ci0KLX5QaHBXaWtpIDEuMS45IGlu Y2x1ZGVzIFNwYW5pc2ggbGFuZ3VhZ2UgcGFnZXMsIGEgZnVsbCBpbXBsZW1lbnRhdGlvbgotZm9y IFBvc3RncmVzcWwsIG51bWVyb3VzIGJ1ZyBmaXhlcyBhbmQgbW9yZS4gU2VlIHRoZSA9SElTVE9S WT0gZmlsZQotZm9yIG1vcmUgaW5mbzogaHR0cDovL3BocHdpa2kuc291cmNlZm9yZ2UubmV0L3Bo cHdpa2kvSElTVE9SWQotCi09PSAxLjEuNiA9PQotCi1+UGhwV2lraSAxLjEuNiBpcyBhIG1ham9y IHJldmlzaW9uIG9mIH5QaHBXaWtpLiBUaGUgYWJpbGl0eSB0byBoYXZlCi10aGVtZXMgKHZpYSBh biBlYXN5LXRvLWVkaXQgdGVtcGxhdGUgc3lzdGVtKSBoYXMgYmVlbiBhZGRlZDsgdGhlCi1zY2hl bWEgZm9yIE15U1FMIGhhcyBiZWVuIGNvbXBsZXRlbHkgb3ZlcmhhdWxlZCwgYnJlYWtpbmcgdGhl IHBhZ2UKLWRldGFpbHMgaW50byBjb2x1bW5zIChmb3IgZWZmaWNpZW5jeSB3ZSBhZ3JlZWQgbm90 IHRvIHB1dCByZWZlcmVuY2VzCi1pbiBhIHNlcGFyYXRlIHRhYmxlLCBzbyBpdCdzIG5vdCBjb21w bGV0ZWx5IG5vcm1hbGl6ZWQuICJEb24ndCBsZXQgdGhlCi1iZXN0IGJlIHRoZSBlbmVteSBvZiB0 aGUgZ29vZC4iKQotCi1Qb3N0Z3Jlc3FsIHN1cHBvcnQgaGFzIGJlZW4gYWRkZWQgYW5kIHRoZSBt YXJrdXAgbGFuZ3VhZ2UgaXMgZXZvbHZpbmcsIG5vdyBhbGxvd2luZyAhISEgZm9yIDxoMj4sICEh IGZvciA8aDM+LCAhIGZvciA8aDQ+IHRhZ3MgYW5kIH5fX2EgbmV3IHdheSB0byBtYWtlIHRleHQg Ym9sZF9fLCBhbmQgb2YgY291cnNlIHRoZSB+W25ldyBsaW5raW5nIHNjaGVtZV0uCi0KLVRoZXJl IGlzIGEgbmV3IGZlYXR1cmUgb24gYWxsIHBhZ2VzIGNhbGxlZCAvL21vcmUgaW5mby8vIHRoYXQg Z2l2ZXMKLXlvdSBhIGxvdyBsZXZlbCBkZXRhaWxlZCB2aWV3IG9mIGEgcGFnZSwgd2hpY2ggaXMg cHJvYmFibHkgbW9yZSB1c2VmdWwKLWZvciBkZWJ1Z2dpbmcgdGhhbiBhbnl0aGluZy4KLQotQXMg d2UgbW92ZSB0b3dhcmRzIGEgMS4yIHJlbGVhc2Ugd2Ugd2lsbCBiZSBhZGRpbmcgbG9nZ2luZywg dG9wIHRlbgotbW9zdCBhY3RpdmUgcGFnZXMgYW5kIG90aGVyIG5ldyBmZWF0dXJlcyB3aXRoIHRo ZSBuZXcgZGF0YWJhc2Ugc2NoZW1hCi0oYW5kIHllcywgdGhlc2UgZmVhdHVyZXMgd2lsbCBtYWtl IGl0IGludG8gdGhlIERCTSB2ZXJzaW9uIHRvbykuIEkKLWFsc28gd2FudCB0byBhZGQgbVNRTCBz dXBwb3J0IGFuZCB0ZXN0IGl0IHVuZGVyIFplbmQsIHRoZSBuZXcgUEhQNC4KLQotPT0gMS4wLjMg PT0KLQotQmVsb3cgYXJlIHRoZSByZWxlYXNlIG5vdGVzIGZvciB2ZXJzaW9uIDEuMDMsIHRoZSBs YXN0IHJlbGVhc2Ugb2YgdGhlCi0xLjAgflBocFdpa2kgc2VyaWVzLgotCi0tLVN0ZXZlIFdhaW5z dGVhZCwgbWFpbHRvOnN3YWluQHBhbml4LmNvbQotCi1+UGhwV2lraSB3YXMgd3JpdHRlbiBiZWNh dXNlIEkgYW0gc28gaW50ZXJlc3RlZCBpbiB+V2lraVdpa2lXZWJ+cywgYW5kIEkKLWhhdmVuJ3Qg dXNlZCBQSFAgc2luY2UgdmVyc2lvbiAyLjAuIEkgd2FudGVkIHRvIHNlZSBob3cgaXQgaGFkCi1h ZHZhbmNlZC4KLQotVmVyc2lvbiAxLjAgaXMgYSBuZWFyLXBlcmZlY3QgY2xvbmUgb2YgdGhlIFBv cnRsYW5kIFBhdHRlcm4KLVJlcG9zaXRvcnksIGh0dHA6Ly9jMi5jb20vY2dpLWJpbi93aWtpP1dp a2lXaWtpV2ViLiBJbiB0cnV0aCwgSSB3YXMKLXVzaW5nIHRoZSBXaWtpIHNjcmlwdCB5b3UgY2Fu IGRvd25sb2FkIGZyb20gdGhlcmUgYXMgYSBtb2RlbDsgdGhhdAotV2lraSBsYWNrcyBhIG51bWJl ciBvZiBmZWF0dXJlcyB0aGUgUFBSIGhhcywgbGlrZSB+RWRpdENvcHkuIFNvIGluCi10cnV0aCB+ UGhwV2lraSBpcyBhIGtpbmQgb2YgaHlicmlkIG9mIHRoZSBQUFIgYW5kIHRoZSBnZW5lcmljIFdp a2kgeW91Ci1jYW4gZ2V0IGZyb20gdGhlcmUgKHdoaWNoIGlzIHdyaXR0ZW4gaW4gUGVybCkuCi0K LVRoZSBvbmUgY2F2ZWF0IG9mIH5QaHBXaWtpIGlzIHRoZSBhbGxvd2FuY2Ugb2YgSFRNTCBpZiB0 aGUgbGluZSBpcwotcHJlY2VkZWQgYnkgYSBiYXIgKG9yIHBpcGUsIHdoaWNoIGlzIGhvdyBJIHVz dWFsbHkgc2F5IGl0KS4gKFRoYXQncyBhCi0nPXw9JykuIEl0IHdhcyB2ZXJ5IHNpbXBsZSB0byBh ZGQsIGFuZCB0aGUgaWRlYSBjYW1lIGZyb20gYSBwb3N0aW5nCi1zb21ld2hlcmUgb24gdGhlIFBQ UiBhYm91dCBob3cgQVQmVCBoYWQgYW4gaW50ZXJuYWwgV2lraSBjbG9uZSBhbmQKLXVzZWQgdGhl IHNhbWUgdGVjaG5pcXVlLiBUaGUgYWJpbGl0eSB0byBlbWJlZCBIVE1MIGlzIGRpc2FibGVkIGJ5 Ci1kZWZhdWx0IGZvciBzZWN1cml0eSByZWFzb25zLgotCi1WZXJzaW9uIDEuMDEgaW5jbHVkZXMg YSBwYXRjaCB0aGF0IGZpeGVzIGEgc21hbGwgZXJyb3Igd2l0aCByZW5kZXJpbmcKLTxocj4gbGlu ZXMuIFRoYW5rcyB0byBHZXJyeSBCYXJrc2RhbGUuCi0KLVNlZSB0aGUgIyNISVNUT1JZIyMgZmls ZSBmb3IgYSBydW5kb3duIG9uIHRoZSB3aG9sZSBkZXZlbG9wbWVudCBwcm9jZXNzCi1pZiB0aGF0 IHNvcnQgb2YgdGhpbmcgcmVhbGx5IGludGVyZXN0cyB5b3UgOi0pCi0KLS0tIFtbSGVscDpTdGV2 ZSBXYWluc3RlYWR8U3RldmUgV2FpbnN0ZWFkXV0KLQotLS0tLQotW1tQaHBXaWtpRG9jdW1lbnRh dGlvbl1dCitEYXRlOiBUaHUsIDEzIEZlYiAyMDI1IDIyOjE4OjAwICswMDAwCitNaW1lLVZlcnNp b246IDEuMCAoUHJvZHVjZWQgYnkgUGhwV2lraSAxLjYuNSkKK0NvbnRlbnQtVHlwZTogYXBwbGlj YXRpb24veC1waHB3aWtpOworICBwYWdlbmFtZT1SZWxlYXNlTm90ZXM7CisgIGZsYWdzPVBBR0Vf TE9DS0VEOworICBhdXRob3I9VGhlJTIwUGhwV2lraSUyMFRlYW07CisgIGNoYXJzZXQ9VVRGLTgK K0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJpbmFyeQorCis8PENyZWF0ZVRvYyB3aXRoX3Rv Y2xpbmt8fD0xIGhlYWRlcnN8fD0xLDIsMyB3aWR0aD0zMDBweCBwb3NpdGlvbj1yaWdodD4+CisK Kz09IDEuNi41IDIwMjUtWFgtWFggTWFyYy1FdGllbm5lIFZhcmdlbmF1LCBDYXJzdGVuIEtsYXBw ID09CisKKyogVXBncmFkZSBQRUFSIHRvIHJlbGVhc2UgMS4xMC4xNiwgUEVBUiBEQiB0byByZWxl YXNlIDEuMTIuMgorKiBSZWFkbWUgZm9yIGJhc2ljIFdpbmRvd3MgMTEgaW5zdGFsbCBpbnN0cnVj dGlvbnMuCisqIENvbXBsZXRlIHJld3JpdGUgb2YgflNwYWNlV2lraSB0aGVtZSB1c2luZyBtb2Rl cm4gY3NzLgorCis9PSAxLjYuNCAyMDI0LTAzLTEzIE1hcmMtRXRpZW5uZSBWYXJnZW5hdSwgQ2hy aXN0b2YgTWVlcndhbGQgPT0KKworKiBVcGdyYWRlIFBFQVIgdG8gcmVsYXNlIDEuMTAuMTQsIFBF QVIgREIgdG8gcmVsZWFzZSAxLjEyLjEKKyogQ2hlY2sgZm9yICJzaGVsbF9leGVjIiBiZWZvcmUg dXNpbmcgaXQgKENocmlzdG9mIE1lZXJ3YWxkKQorKiBJbXByb3ZlIFJTUyAoQ2hyaXN0b2YgTWVl cndhbGQpCisqIEFkZCBzdXBwb3J0IGZvciBTUUxpdGUgaW4gUERPLCBhZGQgc3VwcG9ydCBmb3Ig U1FMaXRlMyBpbiBQRUFSIChDaHJpc3RvZiBNZWVyd2FsZCkKKworPT0gMS42LjMgMjAyMy0xMS0x NSBNYXJjLUV0aWVubmUgVmFyZ2VuYXUgPT0KKworVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZS4K KworSXQgZml4ZXMgYSBidWcgaW4gfkV4dGVybmFsUmVmZXJyZXIgd2l0aCBQSFAgOC4yLgorUmVw b3J0ZWQgYnkgVGhvbSBKZWVyYS4KKworPT0gMS42LjIgMjAyMy0wNy0xMyBNYXJjLUV0aWVubmUg VmFyZ2VuYXUgPT0KKworUGhwV2lraSAxLjYuMiBpcyB0aGUgbGFzdCByZWxlYXNlIGNvbXBhdGli bGUgd2l0aCBQSFAgNS4KK0l0IHNob3VsZCB3b3JrIGZvciBhbGwgUEhQIHJlbGVhc2VzIGZyb20g NS4zLjMgdG8gOC4yLnguCitQaHBXaWtpIDEuNy4wIHdpbGwgcmVxdWlyZSBhdCBsZWFzdCBQSFAg Ny40LgorCis9PT0gRml4ZXMgPT09CisqIE1ha2UgcmVuYW1pbmcgb2YgcGFnZXMgd29yayBmb3Ig REFUQUJBU0VfVFlQRSA9IFBETyBhbmQgZmlsZS4KKyogTWFrZSBXYW50ZWRQYWdlcyB3b3JrIGZv ciBEQVRBQkFTRV9UWVBFID0gZGJhIGFuZCBmaWxlCisqIEJhY2sgbGlua3Mgbm93IHdvcmsgd2hl biB0aGUgbGluayBpcyBpbnNpZGUgYSB0YWJsZSwgaW4gYSB0ZW1wbGF0ZSBvciBpbiBhbiBpbmNs dWRlZCBwYWdlLgorCis9PT0gTWlzYyA9PT0KKyogQWRkIFNvdXJjZUZvcmdlIE9wZW4gU291cmNl IEV4Y2VsbGVuY2UgYmFkZ2UgdG8gZm9vdGVyCisKKz09IDEuNi4xIDIwMjItMDEtMjQgTWFyYy1F dGllbm5lIFZhcmdlbmF1ID09CisKK1RoaXMgcmVsZWFzZSBtYWtlcyB+UGhwV2lraSBjb21wYXRp YmxlIHdpdGggUEhQIDguMS4KKyMjUkVBRE9OTFkjIyBpcyByZW5hbWVkIGFzICMjSVNSRUFET05M WSMjLCBzaW5jZSAjI3JlYWRvbmx5IyMgaXMgbm93IGEga2V5d29yZCBpbiBQSFAgOC4xLgorCis9 PT0gRml4ZXMgPT09CisqIE1ha2UgbGlzdCBvZiBwYWdlcyB3b3JrIHdpdGggUERPICh+QWxsUGFn ZXMsIH5Nb3N0UG9wdWxhci4uLikuCisqIEJldHRlciBoYW5kbGluZyBvZiB0aGVtZSBjaGFuZ2Ug aW4gflVzZXJQcmVmZXJlbmNlcy4KKyogSW4gREFUQUJBU0VfVFlQRSA9IGZpbGUsIGRvIG5vdCB1 cGRhdGUgbWV0YWRhdGEgaWYgcGFnZSBkb2VzIG5vdCBleGlzdCAocmVwb3J0ZWQgYnkgSGFyb2xk IEhhbGxpa2FpbmVuKS4KKyogTWFrZSB0aGUgdG9vbGJhciBpbWFnZSBidXR0b24gd29yayB3aGVu ICMjVVBMT0FEX1VTRVJESVIjIyBpcyBzZXQuCisqIGJsb2cgdGhlbWUgaW1wcm92ZWQuCisKKz09 PSBDaGFuZ2VzID09PQorKiBXYXJuIHVzZXIgdGhhdCBsZWF2aW5nIHRoZSBwYWdlIHdpbGwgbG9z ZSBtb2RpZmljYXRpb25zLgorKiBBZGQgYnV0dG9uIHRvIGNyZWF0ZSB0aGUgcGFnZSBpZiBpdCBk b2VzIG5vdCBleGlzdC4KKyogVE9PTEJBUl9JTUFHRV9QVUxMRE9XTiBpcyB0cnVlIGJ5IGRlZmF1 bHQuCisqIFJlbW92ZSBBRE9EQiBEQVRBQkFTRV9UWVBFLiBVc2UgU1FMIChQZWFyKSBvciBQRE8u CisqIEFkZCDigJxSZW5hbWXigJ0gdGFiIGluIFNpZGViYXIgdGhlbWUuCisqIFBhZ2UgbG9ja2lu ZyBhbmQgdW5sb2NraW5nIGlzIG5vdyBzYXZlZCBpbiBwYWdlIGhpc3RvcnkgKGluIEVkaXQgbW9k ZSkuCisqIEFkZCBzYW1wbGUgaW1hZ2VzIGZvciB+UGhvdG9BbGJ1bSBpbiBibG9nIHRoZW1lLgor KiBSZW1vdmUgRURJVElOR19QT0xJQ1kKKyogUmVtb3ZlIEVOQUJMRV9YSFRNTF9YTUwKKyogUmVt b3ZlIFVTRUNBQ0hFLCBhbHdheXMgdHJ1ZQorKiBNb3JlIHRyYW5zbGF0aW9ucworCis9PT0gUGx1 Z2lucyA9PT0KKyogQ2hhcnQgcGx1Z2luOiBuZXcgYXJndW1lbnQg4oCcbGVnZW5k4oCdCisqIFVw TG9hZCBwbHVnaW46IGFsbG93IG1vcmUgZmlsZW5hbWVzIChlLmcuIHdpdGggQ2hpbmVzZSBjaGFy YWN0ZXJzKQorKiB+UHJlZmVyZW5jZXNJbmZvIHBsdWdpbiByZW1vdmVkCisqIH5DYXRlZ29yeVBh Z2UgcGx1Z2luIHJlbW92ZWQsIGNhdGVnb3JpZXMgYXJlIGJldHRlciBjcmVhdGVkIHdpdGggdGhl IGJ1dHRvbiBpbiB0aGUgdG9vbGJhcgorKiB+UmVjZW50Q2hhbmdlc0NhY2hlZCBwbHVnaW4gcmVt b3ZlZCwgflJlY2VudENoYW5nZXMgcGx1Z2luIGlzIGZhc3QgZW5vdWdoCisKKz09IDEuNi4wIDIw MjEtMDgtMTIgTWFyYy1FdGllbm5lIFZhcmdlbmF1ID09CisKK01ham9yIHJlbGVhc2U6CisqIFBI UCA3IGFuZCA4IGNvbXBhdGlibGUgKHdvcmtzIGZyb20gUEhQIDUuMy4zIHRvIFBIUCA4LjApCisq IEZ1bGwgSFRNTCA1OiBBZGQgSFRNTCA1IDxtYWluPiA8aGVhZGVyPiA8Zm9vdGVyPiA8bmF2PiBp biBhbGwgdGhlbWVzLiBBZGQgQVJJQSByb2xlcy4KKyogRmxhc2ggaXMgZGVhZAorKiBJbnRlcm5l dCBFeHBsb3JlciBpcyBkZWFkCisKKz09PSBGaXhlcyA9PT0KKyogTWFrZSBmdW5jdGlvbiBJc1Nh ZmVVUkwgbW9yZSBzdHJpY3QKKyogTWFrZSBYSFRNTCBaSVAgU25hcHNob3Qgd29yayBhZ2FpbiAo YnJva2VuIHNpbmNlIH5QaHBXaWtpIDEuNS4zKQorKiBJdCB3YXMgcG9zc2libGUgdG8gcmVuYW1l IGEgcGFnZSB0byBhIG5hbWUgd2l0aCBpbGxlZ2FsIGNoYXJhY3RlcnMsIGxpa2Ugflt+XQorKiBC ZXR0ZXIgaGFuZGxpbmcgb2YgcGFnZSBuYW1lcyB3aXRoIHNsYXNoCisqIFJlbW92ZSB3cm9uZyBj YWxscyB0byBzZXRUaWdodG5lc3MgaW4gIyNsaWIvfklubGluZVBhcnNlci5waHAjIyAoYnVnIHJl cG9ydGVkIGJ5IEhhcm9sZCBIYWxsaWthaW5lbikKKyogSW1wb3J0aW5nIGEgWklQIGZyb20gYW4g b2xkIHdpa2kgaW4gTGF0aW4gMSAoSVNPIDg4NTktMSkgZmFpbGVkLiBSZXBvcnRlZCBieSBGcmFu ayBNaWNoYWVsLgorKiBCZXR0ZXIgY2hlY2sgYXJndW1lbnRzIGZvciB+R29vZ2xlTWFwcyBwbHVn aW4KKyogUmV2ZXJ0IFN1YnZlcnNpb24gY29tbWl0IDkxMTEsIGJhZCBzaWRlIGVmZmVjdHM7IHJl LW9wZW5pbmcgQnVnIzYwNyBCYWNrTGlua3MgZG8gbm90IHdvcmsgaW5zaWRlIGEgflJpY2hUYWJs ZQorKiBTZWN1cml0eSBmaXhlcworCis9PT0gQ2hhbmdlcyA9PT0KKyogQWxsIHJldmlzaW9ucyBh cmUga2VwdC4KKyogQWRkIG5ldyBidXR0b24gaW4gRWRpdCBUb29sYmFyOiBjb252ZXJ0IFRhYiBT ZXBhcmF0ZWQgVmFsdWVzIHRvIFdpa2ljcmVvbGUgdGFibGUKKyogVXBkYXRlIGpRdWVyeSB0byAy LjIuNAorKiBQZWFyOiB1c2UgIyNteXNxbGkjIyBpbnN0ZWFkIG9mICMjbXlzcWwjIworKiBVcGRh dGUgUEVBUi5waHAgdG8gcmVsZWFzZSAxLjEwLjEyCisqIFVwZGF0ZSBQZWFyIERCIGxpYnJhcnkg dG8gMS4xMC4wCisqIFVwZGF0ZSBQZWFyIENhY2hlIGxpYnJhcnkgdG8gMS41LjYKKyogVXBkYXRl IEFkb2RiIHRvIHZlcnNpb24gNS4yMC4xOQorKiBVcGRhdGUgQVNDSUlNYXRoUEhQIHRvIHZlcnNp b24gMi4xIChmcm9tIFplZmxpbmcvQVNDSUlNYXRoUEhQIG9uIGdpdGh1Yi5jb20pCisqIFVwZGF0 ZSBoaWdobGlnaHQuanMgdG8gdmVyc2lvbiA5LjE1LjYKKyogQWxsb3cgV2lraWNyZW9sZSBzeW50 YXggZm9yIHBsdWdpbnMgaW4gdGhlbWUgdGVtcGxhdGVzCisqIFZhbGlkIEhUTUw1IGFuZCBDU1Mz IGxvZ29zIChpbiBkZWJ1ZyBtb2RlKQorKiBCZXR0ZXIgaXNfbG9jYWxob3N0KCkgZnVuY3Rpb24g KGFsbG93IElQdjYsIGFsbG93IFdpbmRvd3MgSUlTKS4gUGF0Y2ggYnkgVGhpZXJyeSBOYWJldGgu CisqIFJlbW92ZSBGdXNpb25mb3JnZS1zcGVjaWZpYyBmaWxlcyAoZyB2aWV3LnBocCB3aWtpYWRt aW4ucGhwIHdpa2lsaXN0LnBocCkKKyogUmVtb3ZlIFVTRV9TQUZFX0RCU0VTU0lPTiAoYWx3YXlz IHRydWUpLCBESVNBQkxFX0hUVFBfUkVESVJFQ1QKKyogUERPIHBhdGNoIGJ5IFPDqWJhc3RpZW4g TGUgQ2FsbG9ubmVjCisqIFVwZGF0ZWQgcGdzcmMgcGFnZXMgaW4gYWxsIGxhbmd1YWdlcworKiBB ZGRpbmcgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXIgaW4gUEhQIHNvdXJjZSBmaWxlcworCis9PT0g UGx1Z2lucyA9PT0KKyogflVwTG9hZCBwbHVnaW46IHB1dCBkYXRlIGFuZCBhdXRob3IgaW4gaGlz dG9yeQorKiB+VXBMb2FkIHBsdWdpbjogZG9uJ3QgaW5saW5lIGltYWdlcworKiB+UGhwV2VhdGhl ciByZW1vdmVkLCB1c2VzIGRlcHJlY2F0ZWQgbXlzcWwgZnVuY3Rpb25zCisqIH5IdG1sQ29udmVy dGVyIHBsdWdpbjogY2hlY2sgZmlsZSBpcyBlbmNvZGVkIGluIFVURi04OyB+SHRtbENvbnZlcnRl ciBwbHVnaW4gYWxsb3dlZCBpbiBGdXNpb25mb3JnZQorKiBVc2UganF1ZXJ5LmF1dG9oZWlnaHQu anMgcGx1Z2luIGZvciBUcmFuc2NsdWRlIHBsdWdpbgorKiBSZXBhaXIgW1tIZWxwOlBob3RvQWxi dW1QbHVnaW58UGhvdG9BbGJ1bVBsdWdpbl1dCisqIFJlbmFtZSBhY3Rpb24gcGFnZSB+RGVidWdJ bmZvIGFzIH5EZWJ1Z0JhY2tlbmRJbmZvICh0byBiZSBjb25zaXN0ZW50IHdpdGggcGx1Z2luIG5h bWUpCisqIEJldHRlciBjaGVjayBib29sZWFuIGFyZ3VtZW50cyBpbiBwbHVnaW5zCisKKz09IDEu NS41IDIwMTUtMTItMTEgTWFyYy1FdGllbm5lIFZhcmdlbmF1ID09CisKKyogRml4IHRvb2x0aXAg dHJhbnNsYXRpb24gaW4gfkNyZWF0ZVRvYyBwbHVnaW4KKyogUmVtb3ZlIGFjY2VzcyBrZXlzCisq IENoZWNrIE1BWF9QQUdFTkFNRV9MRU5HVEggaW4gQ3JlYXRlUGFnZQorKiBGaXggZmF0YWwgZGF0 YWJhc2UgZXJyb3Igd2l0aCBtdWx0aXBsZSBjb21tYS1kZWxpbWl0ZWQgc29ydGJ5IGFyZ3MKKyog UmVtb3ZlIGZvcmJpZGRlbiBjaGFyYWN0ZXJzOiB+PH4+flt+XX57fn1+In58fiMgZnJvbSBwYWdl bmFtZQorKiBOZXcgcHJvcGVydHk6IEFMTE9XRURfTE9BRCBnaXZpbmcgbGlzdCBvZiBkaXJlY3Rv cmllcyBmcm9tIHdoaWNoIGl0IGlzIGFsbG93ZWQgdG8gbG9hZCBwYWdlcy4KKyogVXBsb2Fkfjog cmVwbGFjZSBtdWx0aXBsZSBzcGFjZXMgYnkgc2luZ2xlIHNwYWNlCisqIE1ha2UgZnVuY3Rpb25z IG1lcmdlZCBhbmQgaXNfY29uZmxpY3QgcHVibGljIGluIGxpYi9kaWZmMy5waHAgKHN1cHBvcnQg cmVxdWVzdCAjMTYyKQorCis9PSAxLjUuNCAyMDE1LTA2LTI5IE1hcmMtRXRpZW5uZSBWYXJnZW5h dSA9PQorCisqIEZpeCB+V2FudGVkUGFnZXMgZm9yIEZ1c2lvbmZvcmdlCisqIFJlbW92ZSB+V2Fu dGVkUGFnZXNPbGQgKHVzZSB+V2FudGVkUGFnZXMgaW5zdGVhZCkKKyogQWRkIFdlYk0gZm9ybWF0 IGluIFZpZGVvIHBsdWdpbgorKiBVcGRhdGUganNjYWxlbmRhciB0byAxLjAKKyogUmVtb3ZlIFdp ZHRoIGFuZCBIZWlnaHQgcHJlZmVyZW5jZXMgbW9kaWZpY2F0aW9uIGluIEVkaXQgVG9vbGJhcgor KiBOZXcgaWNvbnMgaW4gRWRpdCBUb29sYmFyCisqIE1ha2Ugc3RhdGljIHRlbXBsYXRlcyBpbiBF ZGl0IFRvb2xiYXIgd29yaworKiBGaXggbWVtb3J5X2xpbWl0IGZvciBXSUtJX1NPQVAKKyogUmVt b3ZlIH5Nb2NrUmVxdWVzdAorKiBVcGRhdGUganF1ZXJ5IHRvIDEuMTEuMworCis9PSAxLjUuMyAy MDE1LTAzLTA0IE1hcmMtRXRpZW5uZSBWYXJnZW5hdSA9PQorCisqIEZpeCBCdWcjNjQ4IENhbGwg dG8gcHJvdGVjdGVkIG1ldGhvZAorKiBlYXNpZXIgZmlsZSB1cGxvYWQ6IGZvcmJpZGRlbiBjaGFy YWN0ZXJzIGluIGZpbGVuYW1lIGFyZSByZXBsYWNlZCBieSBkYXNoZXMgKGluc3RlYWQgb2YgcmVq ZWN0aW5nIHVwbG9hZCkKKyogaW1wcm92ZSBoYW5kbGluZyBvZiBpbWFnZSBpbnNlcnRpb24gaWNv biBpbiBlZGl0IHRvb2xiYXIgKGljb24gZGlkIG5vdCBhbHdheXMgYXBwZWFyIGFmdGVyIGltYWdl IHVwbG9hZGluZykKKyogYmlnZ2VyIHdpa2lwYWdpbmcgZm9udAorKiB0ZXN0IGFnYWluIGZvciBm dW5jdGlvbiAncG9zaXhfdGltZXMnLCBpdCBkb2VzIG5vdCBleGlzdCBvbiBXaW5kb3dzIChyZXBv cnRlZCBieSBqZGViZXJ0KQorKiByZW1vdmUgRlBERiwgbGliL2dpZi5waHAsIGxpYi9mb250ICh3 ZXJlIG5vdCB1c2VkKQorKiByZW5hbWUgcGx1Z2luIF9SZXRyYW5zZm9ybSB0byB+RGVidWdSZXRy YW5zZm9ybQorKiB1c2UgUEhQIFpJUCBjbGFzcyBpbnN0ZWFkIG9mIGhvbWUtbWFkZSBmdW5jdGlv bnMuIHppcGxpYiByZW5hbWVkIHRvIG1pbWVsaWIKKyogYWRkIFNPQVAgc2NyaXB0cworKiByZW5h bWUgRkNLZWRpdG9yIHRvIENLZWRpdG9yCisqIGxvYWQgdGhlbWUgcGdzcmMsIGlmIGl0IGV4aXN0 cworKiBTVUJQQUdFX1NFUEFSQVRPUiByZW1vdmVkLCBpdCBtdXN0IGJlICcvJworKiBSYXRlSXQg cGx1Z2luIGZvciBGdXNpb25mb3JnZQorKiByZW1vdmUgYWNkcm9wZG93biBhbmQgbGl2ZXNlYXJj aAorKiByZW1vdmUgQ1ZTIGJhY2tlbmQKKworPT0gMS41LjIgMjAxNC0xMC0xMCBNYXJjLUV0aWVu bmUgVmFyZ2VuYXUgPT0KKworVGhpcyBpcyBhIHNlY3VyaXR5IGZpeCByZWxlYXNlLgorKiBGaXgg Q1ZFLTIwMTQtNTUxOTogdnVsbmVyYWJpbGl0eSBpbiBQbG90aWN1cyBwbHVnaW4uIFtbaHR0cDov L3d3dy5jdmVkZXRhaWxzLmNvbS9jdmUvQ1ZFLTIwMTQtNTUxOS9dXQorCitUaGlzIHZ1bG5lcmFi aWxpdHkgaXMgcHJlc2VudCBpbiB+UGhwV2lraSAxLjUuMCBhbmQgMS41LjEuIEFsbCB1c2VycyBh cmUgYWR2aXNlZCB0byB1cGdyYWRlIHRvIH5QaHBXaWtpIDEuNS4yLgorCis9PSAxLjUuMSAyMDE0 LTEwLTAyIE1hcmMtRXRpZW5uZSBWYXJnZW5hdSA9PQorCisqIGZpeCBCdWcjNDU2ICdPcHRpbWl6 aW5nIERhdGFiYXNlJyBtZXNzYWdlIHNvbWV0aW1lcyBwcmludGVkIG9uIHBhZ2UKKyogcmVtb3Zl IH5GcmFtZUluY2x1ZGUgcGx1Z2luIChmcmFtZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gSFRNTCA1 KQorKiBzb3J0IHRhYmxlcyB3aXRoIFtbaHR0cDovL3RhYmxlc29ydGVyLmNvbXx0YWJsZXNvcnRl ciBqUXVlcnkgcGx1Z2luXV0gaW5zdGVhZCBvZiBzb3J0YWJsZS5qcworKiBmaXggQnVnIzYzNiBS ZWN1cnNpdmUgaW5jbHVkZSBpcyBub3QgdHJhcHBlZAorKiBmaXggQnVnIzY0NyB1bmRlZmluZWQg bWV0aG9kIHt7e1dpa2lEQl9iYWNrZW5kX2RiYTo6V2lraURCX2JhY2tlbmRfZGJhQmFzZX19fQor KiBjb3JyZWN0IHRvdGFsIG51bWJlciBvZiBwYWdlcyBmb3IgQWxsUGFnZXNDcmVhdGVkQnlNZSwg QWxsUGFnZXNPd25lZEJ5TWUsIEFsbFBhZ2VzTGFzdEVkaXRlZEJ5TWUKKyogZml4IEJ1ZyM2MDcg QmFja0xpbmtzIGRvIG5vdCB3b3JrIGluc2lkZSBhIFtbSGVscDpSaWNoVGFibGVQbHVnaW58Umlj aFRhYmxlXV0KKyogZml4IEJ1ZyM2NDYgV3JvbmcgbnVtYmVyIG9mIGxpbmtzIGluIEJhY2tMaW5r cworKiBtYWtlIDxpbmNsdWRlb25seT4gd29yaworKiByZW1vdmUgb2xkIH5XaWtpVXNlciBjb2Rl IChFTkFCTEVfVVNFUl9ORVcpCisqIGFkbWluIGFsd2F5cyBoYXMgcmlnaHRzIHRvIHNlZSBhbmQg bW9kaWZ5IHBhZ2VzLCByZWdhcmRsZXNzIG9mIEFDTHMsIHRvIGF2b2lkIGxvY2tpbmcgaGltc2Vs ZiBvdXQKKyogYWRkIG1pc3NpbmcgaW1hZ2VzIGluIFNpZGViYXIgdGhlbWUKKworPT0gMS41LjAg MjAxNC0wNy0yOSBNYXJjLUV0aWVubmUgVmFyZ2VuYXUgPT0KKworPT09IE1haW4gQ2hhbmdlcyA9 PT0KKyogflBocFdpa2kgMS41LjAgbmVlZHMgYXQgbGVhc3QgUEhQIDUuMy4gSXQgaXMgY29tcGF0 aWJsZSB3aXRoIFBIUCA1LjMsIDUuNCBhbmQgNS41LgorKiBPbmUgc2luZ2xlIHdpa2kgbWFya3Vw LCBiYXNlZCBvbiBXaWtpY3Jlb2xlIGFuZCBjb21wYXRpYmxlIHdpdGggY2xhc3NpYyBwaHBXaWtp IG1hcmt1cC4KKyogRnVsbCBIVE1MIDUgYW5kIENTUyAzLiBBIG1vZGVybiBicm93c2VyIGlzIG5l ZWRlZC4KKyogRnVsbCBVVEYtOC4KKworPT09IE90aGVyIENoYW5nZXMgPT09CisqIEZpeCBiYWQg ZGlzcGxheSBpbiBUb29sYm94IG1lbnUgKFNpZGViYXIgYW5kIE1vbm9ib29rIHRoZW1lcykgcmVw b3J0ZWQgYnkgSGFyb2xkIEhhbGxpa2FpbmVuCisqIEZpeCBDYXB0Y2hhIHByb2JsZW0gcmVwb3J0 ZWQgYnkgSGFyb2xkIEhhbGxpa2FpbmVuCisqIE1lcmdlIH5PbGRUZXh0Rm9ybWF0dGluZ1J1bGVz IGludG8gflRleHRGb3JtYXR0aW5nUnVsZXMKKyogflN5bnRheEhpZ2hsaWdodGVyIHBsdWdpbiBp cyBub3cgaW1wbGVtZW50ZWQgd2l0aCBbW2h0dHA6Ly9oaWdobGlnaHRqcy5vcmcvXV0gaW5zdGVh ZCBvZiBbW2h0dHA6Ly93d3cuYW5kcmUtc2ltb24uZGVdXS4KKyogQ2htb2QgYWN0aW9uIGlzIHJl bW92ZWQuCisqIE5ldyBhY3Rpb246IH5EZWxldGVBY2wKKyogVXBkYXRlZCBkb2N1bWVudGF0aW9u IHBhZ2VzIGluIHBnc3JjLgorKiBVcGRhdGVkIHRyYW5zbGF0aW9ucy4KKworPT0gMS40LjAgMjAx NC0wNy0yNSBSZWluaSBVcmJhbiwgTWFyYy1FdGllbm5lIFZhcmdlbmF1LCBTYWJyaSBMYWJiZW5l cywgU8OpYmFzdGllbiBMZSBDYWxsb25uZWMgPT0KKworflBocFdpa2kgMS40LjAgaXMgdGhlIHNh bWUgYXMgflBocFdpa2kgMS40LjBSQzEuIEl0IGlzIHRoZSBsYXN0IHJlbGVhc2UgY29tcGF0aWJs ZSB3aXRoIFBIUCA0LgorCis9PSAxLjQuMFJDMSAyMDEwLTA5LTE3IFJlaW5pIFVyYmFuLCBNYXJj LUV0aWVubmUgVmFyZ2VuYXUsIFNhYnJpIExhYmJlbmVzLCBTw6liYXN0aWVuIExlIENhbGxvbm5l YyA9PQorCitUaGlzIGlzIGEgbmV3IG1ham9yIHJlbGVhc2UsIHdoZXJlIGV2ZXJ5dGhpbmcgY2hh bmdlZCBmcm9tIDEuMiwgYW5kIGxvdHMgb2YgY2hhbmdlcyBzaW5jZSAxLjMuMTQuCisKK0FuIGlt cG9ydGFudCBtb2RpZmljYXRpb24gaW4gdGhpcyByZWxlYXNlIGlzIHRoZSBpbXBsZW1lbnRhdGlv bgorb2YgZnVsbCBXaWtpY3Jlb2xlIDEuMCBzeW50YXgsIGluY2x1ZGluZyBhZGRpdGlvbnMuCisK K1RoZSAiY2xhc3NpYyIgUGhwd2lraSBzeW50YXggaXMgc3RpbGwgc3VwcG9ydGVkLgorCitUaGUg ZG9jdW1lbnRhdGlvbiBwYWdlcyBmb3VuZCBpbiBwZ3NyYyBoYXZlIGJlZW4gbW9zdGx5IGNvbnZl cnRlZCB0byBVVEYtOCBhbmQKK1dpa2ljcmVvbGUgc3ludGF4ICh3aXRoIHRoZSBhZGRpdGlvbiBv ZiB0YWJsZXMgaW4gTWVkaWF3aWtpIHN5bnRheCwgc2luY2UgV2lraWNyZW9sZSAxLjAKK2RvZXMg bm90IHN1cHBvcnQgImNvbXBsZXgiIHRhYmxlcyB3aXRoIGJsb2NrIGVsZW1lbnRzIGluIGNlbGxz LCBsaWtlIGxpc3RzIG9yCitwYXJhZ3JhcGhzKS4KKworSW1wcm92ZWQgZHVtcGluZywgcGFnZXNl dCBoYW5kbGluZyBmb3IgZm9ybWF0PSB3aXRoIH5BY3Rpb25QYWdlcy4KK2UuZy4gZHVtcCBwYWdl c2V0cyBvciBtdWx0aS1wYWdlIHBkZidzLgorCitUaGUgU2lkZWJhciB0aGVtZSBpcyBub3cgYW4g ZXh0ZW5zaW9uIG9mIHRoZSBNb25vYm9vayB0aGVtZSAoa25vd24gZnJvbSBXaWtpcGVkaWEpLAor dGhlIG5ldyBmdXNpb25mb3JnZSB0aGVtZSBpcyB0byBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggW1to dHRwOi8vZnVzaW9uZm9yZ2Uub3JnfEZ1c2lvbkZvcmdlXV0gKHRoZSBzdWNjZXNzb3Igb2YgR2Zv cmdlKS4KKworPT09IEZpeGVzID09PQorKiBmaXggflBhZ2VQZXJtIGZvciBtdWx0aXBsZSBncm91 cHM6IG5vdCBhIG1lbWJlciBhbmQgdW5kZWNpZGVkOiBjaGVjayBvdGhlciBncm91cHMKKyogZml4 IHJzcyBidXR0b24gYWN0aW9ucyBmb3Igc3BlY2lhbCBSZWNlbnRDaGFuZ2VzIGFjdGlvbnMgKFVz ZXJDb250cmlicywgUGFnZUhpc3RvcnksIC4uLikKKyogZml4IEJ1ZyMxNzQ5OTUwIGFjY2Vzc2xv ZyBTUUwgZHVyYXRpb24gZmxvYXQgd2l0aCAiLCIKKyogZml4IHRlbXBsYXRlIGluY2x1c2lvbiB3 aXRoIGEgcmVjdXJzaW9uIGN5Y2xlIGxlYWRpbmcgdG8gY3Jhc2hlcyBpbiBibG9nIFBhZ2VJbmZv CisqIHJlbW92ZWQgZHluYW1pYyBmZWF0dXJlcyBmcm9tIGh0bWxkdW1wIHBhZ2VzIGZvciBtb3Jl IHN0YXRpYyBwbGVhc3VyZQorKiBpZ25vcmUgZmF0YWxzIGFuZCBhY2Nlc3MtZGVuaWVkIHN0b3dz dG9wcGVycyBvbiBtdWx0aS1wYWdlIGR1bXBzCisqIGxpbmsgb25seSB0byBleGlzdGluZyBwYWdl cyBvbiBtdWx0aS1wYWdlIGR1bXBzIChwYWdlc2V0cykKKyogZml4IEJ1ZyMxNzk1NDIwIGJ5IFN2 ZW4gR2lua2E6IFVzZSAvVSBpbiBwcmVnX21hdGNoCisqIGVuc3VyZSBlbmRpbmcgdXBsb2FkcyBz bGFzaCBldmVuIG9uIHVzZXIgcHJvdmlkZWQgVVBMT0FEIGNvbnN0YW50cy4gRml4ZXMgcGx1Z2lu L35VcExvYWQKKyogc3RhYmlsaXplIENvbW1lbnQuIHN1YnN0cmluZyBzZWFyY2ggZm9yIGJhc2Vw YWdlcywgZG8gbm90IHRva2VuaXplLgorKiBmaXggQnVnIzE3OTIxNzAgSGFuZGxlICIgKCAiIG9y ICIodGVzdCIgd2l0aG91dCBjbG9zaW5nICIpIiBhcyBwbGFpbiB3b3JkLiBBbGxvdyBzaW5nbGUg c3RyaW5nIHRva2VuICIwIgorKiBmaXggQnVnIzE3NTIxNzIgdW5kZWZpbmVkIG1ldGhvZCB7e3tU ZXh0U2VhcmNoUXVlcnlfbm9kZV9vcjo6X3NxbF9xdW90ZSgpfX19CisqIGRiYTogZml4IHNvcnRp bmcgZm9yIGVtcHR5IG10aW1lIGZpZWxkCisqIH5MZGFwU2VhcmNoOiBmaXggbGF5b3V0IGFuZCBs b2dpYworKiB+RmlsZUluZm86IGZpeCAjI1VwbG9hZH46IyMgbGlua3MKKyogWEhUTUwgdmFsaWRh dGlvbiBjb3JyZWN0aW9ucyAodmFyZ2VuYXUpCisqIGF2b2lkIHJlY3Vyc2l2ZSBtb2RpZmljYXRp b24gd2hlbiByZW5hbWluZyBhIHBhZ2UgbGlrZSAnflBhZ2VGb28gdG8gJ35QYWdlRm9vVHdvJyAo dmFyZ2VuYXUpCisqIGZpeCBCdWcjMTgwODAwMiBUYWJsZSBvZiBjb250ZW50cyBwbHVnaW4gZG9l cyBub3QgbmVzdCBudW1iZXJpbmcgKHZhcmdlbmF1KQorKiBmaXggQnVnIzE5MDM4MTUgQ2Fubm90 IHB1dCAiMCIgaW4gflJpY2hUYWJsZSBjZWxsLCBjZWxsIGJlY29tZXMgZW1wdHkgKHZhcmdlbmF1 KQorKiBmaXggQnVnIzE5MDQwODggIFNvbWUgYnJhY2tldHMgbGlua3Mgd2l0aCBcbiBjYXVzZSB0 aGUgcGFyc2VyIHRvIGNyYXNoCisqIGZpeGVkIGluY29ycmVjdCBudW1iZXJpbmcgaW4gVGFibGUg b2YgQ29udGVudHMgbnVtYmVyaW5nICh2YXJnZW5hdSkKKyogZml4IEJ1ZyMxOTY3MTQ3IH5GaWxl SW5mb1BsdWdpbiBkb2VzIG5vdCBhbGxvdyBkaXNwbGF5PW93bmVyCisqIGZpeCBCdWcjMTk5MjE3 MiBJbnRlcndpa2kgbGluayBkb2VzIG5vdCB3b3JrIGluIH5SaWNoVGFibGUgKHZhcmdlbmF1KQor KiBmaXggQnVnIzIwMTA3NDggTWlzc2luZyBpbWFnZQorKiBmaXggQnVnIzE4MzE4ODEgRmF0YWwg ZGF0YWJhc2UgZXJyb3Igd2hlbiBzb3J0aW5nIGNvbHVtbnMgKHZhcmdlbmF1KQorKiBmaXggflBh Z2VMaXN0IHByZXYvbmV4dCBsaW5rcyBvbiBtdWx0aS1jb2x1bW5zIGxpc3RzLCBpbXByb3ZlIGhh bmRsaW5nIG9mIG9yZGVyZWQgbGlzdHMKKyAgZml4ZWQgc2xpY2luZyB3aXRoIGxpc3QtYmFzZWQg YmFja2VuZHMgKGRiYSwgZmlsZSkuCisqIGFsbG93IHNpbmdsZSAiMCIgYXMgbm90LWVtcHR5IHBh Z2UgY29udGVudAorKiBmaXggYWN0aW9uPXJlbmFtZSwgc3VwcG9ydCBuZXcgb3B0aW9uYWwgYXJn dW1lbnQgdG89bmV3cGFnZW5hbWUKKyogZml4IG11bHRpcGxlIFVTRVJfQVVUSF9NRVRIT0Qgd2hl cmUgdGhlIGZpcnN0IG1ldGhvZCBkaWQgbm90IHN1Y2NlZWQuCisKKz09PSBDaGFuZ2VzID09PQor LSBjaGFuZ2VkIH5TZW1hbnRpY1NlYXJjaCBxdWVyeSBzZW1hbnRpY3M6IGFsbCByZWdleD1hdXRv IHRlcm1zIHdpdGggbm8gcmVnZXggY2hhcnMgKC4rKj9eJCIpCisgIHdpbGwgYmUgc2VhcmNoZWQg ZXhhY3QsIGFuZCBub3Qgd2l0aCByZWdleD1hdXRvLiBUaGlzIG1lYW5zIG5vIHdvcmQgc3BsaXR0 aW5nLCBubyBzdWJzdHJpbmdzLgorKiByYW5rZWQgc2VhcmNoIGZvciB0aXRsZSBhbmQgZnVsbHRl eHQgZm9yIG5vbi1TUUwgYmFja2VuZHMuIFNpbXBsZSBzY29yZSBmdW5jdGlvbi4KKyogYWxsb3cg Y29tbWVudHMgaW4gfldpa2lHcm91cCBsaXN0cyBhZnRlciB1c2VybmFtZQorKiBhZXN0aGV0aWMg cmVxdWVzdDogcmVtb3ZlID9hY3Rpb249ZWRpdCBhZnRlciBlZGl0CisqIGNyZWF0ZSBpbnRlcmlt IHBhZ2VzIGFzIG1pbm9yIG5vdCBzZWUgdGhlbSBpbiBSZWNlbnRDaGFuZ2VzCisqIGRlZmF1bHQg dGhlbWU6IHVzZSBzdGFuZGFyZCBzZWFyY2ggdGVtcGxhdGUgKH5MaXZlU2VhcmNoKQorKiBbW0hl bHA6Q2FsZW5kYXJQbHVnaW5dXSBjaGFuZ2VkIGRlZmF1bHQgc3RhcnRfd2RheSBmcm9tIDAgdG8g MSAoTW9uZGF5KQorKiBbW0hlbHA6Q2FsZW5kYXJMaXN0UGx1Z2luXV0gcGFnZXMgbm93IGluIHBh cmFsbGVsIHdpdGggQ2FsZW5kYXI6IHllYXIgKyBtb250aCBhcmdzIGFzIHN0YXJ0IGJhc2UuCisg IFRoZSBiZWhhdmlvdXIgYmVmb3JlIDIwMDcgd2l0aCBsYXN0L25leHRfbl9kYXlzIHdhcyB0byBz dGFydCBub3cuCisqIHJlbW92ZWQgZnBkZiBzdXBwb3J0LiBvbmx5IHVzZSBleHRlcm5hbCBjb252 ZXJ0ZXJzCisqIGNoYW5nZSByZW5hbWUgYWN0aW9uIGZyb20gYWNjZXNzIHBlcm0gY2hhbmdlIHRv IGVkaXQ6IGFsbG93IHRoZSBzaWduZWQtaW4gdXNlciB0byByZW5hbWUuCisqIGh0bWxkdW1wIGNv cGllcyBsb2NhbGx5IHVwbG9hZGVkIGltYWdlcyBhbHNvCisqIGltcHJvdmUgU2VtYW50aWNSZWxh dGlvbnMgbGF5b3V0OiBkaXJlY3QgbGlua3MsIHN1cHBvcnQgYXR0cmlidXRlcyBhbmQgcmVsYXRp b25zIGZpbHRlcnMKKyogfkxkYXBTZWFyY2g6IHVzZSBkZWZhdWx0IGJhc2VkbgorKiBXaG9Jc09u bGluZSBjbGVhbnMgc3RhbGUgc2Vzc2lvbnMKKyogcmVtb3ZlIFVwbG9hZCBidXR0b24gZnJvbSBl ZGl0CisqIGNoYW5nZWQgV2lraXd5ZyBlZGl0b3Igd29ya2Zsb3cgKGxhYmJlbmVzKQorKiBhbGxv dyA8cz4gdG8gc3RyaWtlOyB1cGRhdGUgSGVscCBmb3IgPHM+IGFuZCA8c3RyaWtlPiAodmFyZ2Vu YXUpCisqIH5SaWNoVGFibGUgcGx1Z2luOiBlbnJpY2ggc3ludGF4IGZvciBhdHRyaWJ1dGVzICh2 YXJnZW5hdSkKKyogbW9yZSBpY29ucyBmb3IgdG9vbGJhciAodmFyZ2VuYXUpCisqIFVzZXJQcmVm ZXJlbmNlczogc3BlY2lmaWMgbWVzc2FnZSB3aGVuIG9ubHkgb25lIHByZWZlcmVuY2UgaXMgdXBk YXRlZCAodmFyZ2VuYXUpCisqIHJlbmFtZWQgY2xhc3MgVGhlbWUgdG8gfldpa2lUaGVtZSB0byBh dm9pZCBHZm9yZ2UgbmFtZSBjbGFzaCAodmFyZ2VuYXUpCisqIG51bWVyaWMgY2VsbHMgaW4gdGFi bGVzIGFyZSBub3cgcmlnaHQtYWxpZ25lZCBieSBkZWZhdWx0ICh2YXJnZW5hdSkKKyogPG5vaW5j bHVkZT4gYW5kIDwvbm9pbmNsdWRlPiBzaG91bGQgbm90IGFwcGVhciBldmVuIHdoZW4gbm90IGlu Y2x1ZGVkICh2YXJnZW5hdSkKKyogc3BsaXQgUGhwV2lraUFkbWluaXN0cmF0aW9uIGluIHR3byBw YWdlczogUGhwV2lraUFkbWluaXN0cmF0aW9uIGFuZCBQaHBXaWtpRGVidWcgKHZhcmdlbmF1KQor KiBJbXByb3ZlIGhhbmRsaW5nIG9mIGNvbG9yIHRleHQgKGVzcGVjaWFsbHkgaW4gY2FzZSBvZiBl cnJvcnMpLiBNb3JlIGNvbG9yIG5hbWVzIGFyZSBhbGxvd2VkLiAodmFyZ2VuYXUpCisqIH5TZXRB Y2wsIENob3duLCBNYXJrdXAgYW5kIFJlbmFtZSBhcmUgbWFya2VkIGFzIG1pbm9yIGVkaXRzLiAo dmFyZ2VuYXUpCisqIERpc3BsYXkgIm1pbm9yIGVkaXQiIGZvciBtaW5vciBlZGl0cyBpbiB+UmVj ZW50Q2hhbmdlcyAobGlrZSBpbiB+UGFnZUhpc3RvcnkpLiAodmFyZ2VuYXUpCisqIEluIFdpa2lB ZG1pblNlbGVjdCwgcHV0IGJ1dHRvbnMgaW4gYWxwaGFiZXRpYyBvcmRlciBsaWtlIGluIHBhZ2Ug flBocFdpa2lBZG1pbmlzdHJhdGlvbi4gKHZhcmdlbmF1KQorKiBJbiB+UGhwV2lraUFkbWluaXN0 cmF0aW9uLCBhbGwgcGFnZXMgYXJlIHNob3duIGluc3RlYWQgb2YgZmlyc3QgNTAuIE5vIHBhZ2lu ZyBpcyBkb25lLiAodmFyZ2VuYXUpCisqIEluIH5XaWtpQWRtaW5TZWFyY2hSZXBsYWNlLCBvbmx5 IHBhZ2VzIHdoZXJlIGEgcmVwbGFjZW1lbnQgd2FzIGRvbmUgYXJlIHNob3duIGFzIGZlZWRiYWNr LiAodmFyZ2VuYXUpCisqIEluIH5XaWtpQWRtaW5TZWFyY2hSZXBsYWNlLCBzaG93IHBhZ2VzIHdo ZXJlIHJlcGxhY2VtZW50IHdpbGwgYmUgZG9uZS4gKHZhcmdlbmF1KQorKiBGb3IgZmlsZSB1cGxv YWQsIHVzZSBibGFjayBsaXN0IG9mIGV4dGVuc2lvbnMgaW5zdGVhZCBvZiB3aGl0ZSBsaXN0LiAo dmFyZ2VuYXUpCisqIEl0IGlzIG5vdyBwb3NzaWJsZSB0byBpbnNlcnQgcHJlZGVmaW5lZCBpY29u cyBpbiB3aWtpIHRleHQuIFNlZSBbW0hlbHA6UHJlZGVmaW5lZEljb25zXV0uICh2YXJnZW5hdSkK KyogQWxsb3cgInt7eyNbW319fSIgc3ludGF4IGZvciBhbmNob3JzLiAodmFyZ2VuYXUpCisqIEhh bmRsZSByZWRpcmVjdGlvbnMgaW4gVGVtcGxhdGUgcGx1Z2luLiAodmFyZ2VuYXUpCisqIEFsbG93 IFdpa2ljcmVvbGUgc3ludGF4IGZvciByZWRpcmVjdGlvbnMgaW4gfkluY2x1ZGVQYWdlIHBsdWdp bi4gKHZhcmdlbmF1KQorKiBOZXcgcHJlZmVyZW5jZSB0byBhdm9pZCBlLW1haWwgbm90aWZpY2F0 aW9ucyBmb3IgbWlub3IgZWRpdHMgb24gV2lraSAodmFyZ2VuYXUpCisqIE5vIGRlY29yYXRpb24g Zm9yIGFiYnJldmlhdGlvbnMgd2hlbiBwcmludGluZyAodmFyZ2VuYXUpCisqIEFkZCBDU1MzIGNv ZGUgZm9yIHBhZ2UgaGVhZGVycyBhbmQgZm9vdGVycyAod29ya3MgZm9yIFBERiBnZW5lcmF0aW9u IHdpdGggUHJpbmNlIFhNTCkgKHZhcmdlbmF1KQorKiBSZW1vdmUgc3VwZXJmbHVvdXMgc2Nyb2xs YmFyIGZyb20gcHJpbnRhYmxlIHByZSdzCisKKz09PSBOZXcgPT09CisqIH5QYWdlTGlzdCBzdXBw b3J0cyBsaXN0dHlwZT11bCxvbCxkbC4gZGwgdXNlZCBieSBGdWxsVGV4dFNlYXJjaAorKiBwYWdl YWJsZSB0ZXh0c2VhcmNoIHJlc3VsdHMKKyogZXh0ZXJuYWwgc2VhcmNoIGJ1dHRvbiBieSB1c2lu ZyBTZWFyY2g6IGFuZCBzZWFyY2h0eXBlPWV4dGVybmFsCisqIGFkZGVkIH5Vbml2ZXJzYWxXaWtp RWRpdEJ1dHRvbiB0byB+TW9ub0Jvb2ssIGRlZmF1bHQsIGJsb2cuIE1vcmUgdGhlbWVzIGxhdGVy LgorKiBhZGQgSU5TRUNVUkVfQUNUSU9OU19MT0NBTEhPU1RfT05MWSBmb3IgYWR2YW5jZWQgc2Vj dXJpdHkgYWN0aW9ucworKiBlbmFibGUgIl5BIG9yIF5CIiBwYWdlcyBhcmd1bWVudCBmb3IgflBh Z2VMaXN0czogZS5nLiBzcGxpdHRlZCBhY3Rpb25zIGZvciBsYXJnZSBodG1sZHVtcCdzCisqIGRi YTogYWRkIGFyZ3MgdG8gY2hlY2sgYW5kIHJlYnVpbGQgKGZ1bGwgb3IgbGlua3Mgb25seSkKKyog UmVjZW50Q2hhbmdlczogYWRkIGNhdGVnb3J5LCBwYWdlbWF0Y2ggYXJndW1lbnRzCisqIGFkZCBV cmlSZXNvbHZlciBuZWVkZWQgZm9yIGV4dGVybmFsIHJkZiBhY2Nlc3MKKyogQXBwZW5kVGV4dDog c3VwcG9ydCBwYWdlcyBhcmd1bWVudDogYXBwZW5kIHRvIG11bHRpcGxlIHBhZ2VzCisqIG5ldyBy ZWFkb25seSBkYXRhYmFzZSBkZXRlY3Rpb24gZm9yIGRiYSwgYW5kIG9wdGlvbmFsIGNvbmZpZyBS RUFET05MWSBmb3IgbWFpbnRlbmFuY2UKKyogbmV3IHBhZ2VzOiBTcGVjaWFsUGFnZXMsIExvY2tl ZFBhZ2VzICh2YXJnZW5hdSkKKyogaW1wbGVtZW50ZWQgTWVkaWF3aWtpLWxpa2Ugc3ludGF4IGZv ciB0YWJsZXMgKHZhcmdlbmF1KQorKiBlbmFibGUgflJlY2VudENoYW5nZXNDYWNoZWQgYXMgYm94 LCBpbXByb3ZlIHBlcmZvcm1hbmNlLgorKiBpbXBsZW1lbnRlZCBXaWtpY3Jlb2xlIDEuMCBzeW50 YXgsIGluY2x1ZGluZyBhZGRpdGlvbnMgKHZhcmdlbmF1KQorKiBpbXBsZW1lbnRlZCBzaW1wbGUg W1tIZWxwOlNwcmVhZHNoZWV0fHNwcmVhZHNoZWV0XV0gZnVuY3Rpb25zIGZvciBXaWtpY3Jlb2xl IHRhYmxlcyAodmFyZ2VuYXUpCisqIG5ldyBwbHVnaW46IFtbSGVscDpDdXJyZW50VGltZVBsdWdp bnxDdXJyZW50VGltZV1dICh2YXJnZW5hdSkKKyogbmV3IHBsdWdpbjogW1tIZWxwOkNoYXJ0UGx1 Z2lufENoYXJ0XV0gKHZhcmdlbmF1KQorKiBuZXcgbXNzcWxuYXRpdmUgYmFja2VuZCAoTVMgU1FM IFNlcnZlciAyMDA1KykgKGNocmlzZHB1Y2NpKQorCis9PSAxLjMuMTQgSnVseSwgMSAyMDA3LCBS ZWluaSBVcmJhbiA9PQorCis9PT0gRml4ZXMgPT09CisqIEZpeCB0aGUgYnJva2VuIExEQVAgZml4 IGZyb20gMS4zLjEzcDEKKyogZml4ZWQgc29ydGJ5IHdpdGggbXVsdGlwbGUgcGFnZWxpc3RzCisK Kz09PSBDaGFuZ2VzID09PQorKiBjaGFuZ2VzIGFsbCB0aGVtZWluZm8ucGhwIGZpbGVzLCBtb3Zl ZCBnbG9iYWwgdG8gbWV0aG9kIGxvYWQoKSB0byBiZQorICBlYXNpZXIgZGVyaXZlZCBmcm9tIGN1 c3RvbSB0aGVtZSBjbGFzc2VzLCBtYWluIG5vdyBjYWxscyAkfldpa2lUaGVtZS0+bG9hZAorKiB+ TWFpbE5vdGlmeSBpcyBub3cgc2lsZW50IHVubGVzcyBERUJVRworCis9PT0gTmV3ID09PQorKiBh ZGRlZCBleHBlcmltZW50YWwgQVRPTSBzdXBwb3J0CisqIGFkZGVkIENoYW5nZXMgYW5kIFVwbG9h ZCBidXR0b24gdG8gZWRpdAorCis9PSAxLjMuMTNwMSBKdW5lLCA5IDIwMDcsIFJlaW5pIFVyYmFu ID09CisKK0FuIGltbWVkaWF0ZSBzZWN1cml0eSBmaXggZm9yIDEuMy4xMywgcGx1cyBzb21lIG1p bm9yIGZpeGVzLgorCis9PT0gRml4ZXMgPT09CisqIExEQVAgQXV0aDogRGlzYWxsb3cgZW1wdHkg cGFzc3dvcmRzISBDZXJ0YWluIGxkYXAgaW1wbGVtZW50YXRpb25zIHJldHVybiB0cnVlCisgIG9u IGVtcHR5IHBhc3N3b3JkcyB3aXRoIGxkYXBfYmluZCgpLgorKiBMREFQIEF1dGg6IGZpeCBwYXNz d29yZCBxdW90aW5nCisqIGZpeCBhY3Rpb249dXBncmFkZSBmb3IgZGJhLCByZW5hbWUgbm9zcWwg dG8gbm9kYgorKiBmaXhlcyB+U3BhbUJsb2NrTGlzdCBjb25maWcgZmlsZSBsb2NhdGlvbnMgKGNv bmZpZy90d28tbGV2ZWwtdGxkcywgY29uZmlnL3doaXRlbGlzdCkKKyogZW5hYmxlICR+TWFpbE5v dGlmeS0+b25DaGFuZ2VQYWdlCisqIGZpeCBkaXNwbGF5IG9mIHBhZ2VuYW1lcyBjb250YWluaW5n ICI6IiBpbiBjZXJ0YWluIGxpc3RzCisqIGZpeGVkIGJhY2tlbmQgYXNBcnJheSBhY2Nlc3MgdG8g aXRlcmF0b3JzICh+RGVidWdJbmZvIHdpdGggU1FMKQorKiBmaXggd3JvbmcgflBocFdpa2lDdnMg SW50ZXJXaWtpTWFwIGVudHJ5CisqIGZpeCBzeW50YXggZXJyb3IgaW4gcGdzcmMvSGVscCUyRkFj dGlvblBhZ2UKKyogZml4IGNhc2UgaW4gcGdzcmMvSGVscCUyRkFzY2lpU1ZHUGx1Z2luCisqIGZp eCBsaW5rcyBpbiBwZ3NyYy9IZWxwJTJGU2VtYW50aWNSZWxhdGlvbnMKKyogZml4IHBnc3JjL0hl bHAlMkZXaWtpUGx1Z2luCisKKz09PSBDaGFuZ2VzID09PQorKiBhbGxvdyBcbiBhbmQgc2luZ2xl IGxldHRlciBwYWdlcyBpbiB+e357IH59fn0gdGVtcGxhdGUgc3ludGF4LgorICBwYXRjaCAjMTcz Mjc5MyBieSB+QWxKZXV4IGFuZCB+UmVpbmlVcmJhbgorKiB3aXRoIEVOQUJMRV9TUEFNQkxPQ0tM SVNUIGNoZWNrIG9ubHkgbmV3IGV4dGVybmFsIGxpbmtzOgorICBtYXggNSwgYWxsb3cgaW50ZXJ3 aWtpIGxpbmtzLCBhbmQgaW1wcm92ZSBmYWlsZWQgb3V0cHV0LgorCis9PSAxLjMuMTMgSnVuZSwg MiAyMDA3LCBSZWluaSBVcmJhbiA9PQorCitUaGlzIGlzIG1ham9yIGZlYXR1cmUgcmVsZWFzZSB3 aGljaCB3aWxsIGJlIHRoZSBiYXNlIGZvciB0aGUgc3RhYmxlCisxLjQuMC4gIFRoZSBoaWdobGln aHRzIGFyZSB+U2VtYW50aWNXZWIgc3VwcG9ydCwgYmFzaWMgc3VwcG9ydCBmb3IKK3ZhcmlvdXMg V1lTSVdZRyBlZGl0b3JzIChub3QgeWV0IHN0YWJsZSksIGEgc3RhYmxlIH5Nb25vQm9vayAod2lr aXBlZGlhKQorYW5kIEJsb2cgdGhlbWUsIGVuYWJsZWQgYWNkcm9wZG93biBzdXBwb3J0ICh+TGl2 ZVNlYXJjaCksIHBvc3RncmVzcWwgYW5kCitvcmFjbGUgZW5oYW5jZW1lbnRzLCBtb3ZpbmcgSGVs cCBwYWdlcyBpbnRvIEhlbHAvLCBzdXBwb3J0IGRpZmZlcmVudAorY2hhcnNldHMgaW4gcGdzcmMg YW5kIFdpbmRvd3MgTlRMTSBhdXRoIHN1cHBvcnQgdmlhIH5IdHRwQXV0aCwgYSBsb3QKK21vcmUg cGx1Z2lucyBhbmQgZW5oYW5jZW1lbnRzLiBVVEYtOCBzaG91bGQgd29yay4KKworPT09IEZpeGVz ID09PQorKiBmaXggflVwTG9hZCB0byBkaXNhbGxvdyBhbGwgcGhwIGV4dGVuc2lvbnMKKyogREI6 IHVzZSBBTlNJIFNRTCBzdGF0ZW1lbnRzIChvcmFjbGUgYnkgQm9iIFBlZWxlICYgQ2hyaXN0b3Bo ZXIgSm9uZXMsCisgIHBvc3RncmVzcWwgYnkgUmVpbmkgVXJiYW4pCisqIGZpeGVkIGJsb2csIH5N b25vQm9vaywgc2lkZWJhciBhbmQgd2lraWxlbnMgdGhlbWUgbGF5b3V0CisqIGZpeCBUZW1wbGF0 ZSBhbmQgfkNyZWF0ZVBhZ2UgdmFyaWFibGUgZXhwYW5zaW9uCisqIHhodG1sIGR1bXAgZm9yIHN1 YnBhZ2VzIGludG8gc3ViZGlyZWN0b3JpZXMsIGZpeGVkIGZpbGVuYW1lcyBhbmQgc3ViZGlyIG5h bWVzCisqIGZpeGVkIGxvYWRpbmcgcGFnZXMgaW50byBmb3JlaWduIGNoYXJzZXRzIChzdWNoIGFz IHV0Zi04KQorKiB+RXJyb3JNYW5hZ2VyOiBwYXRjaCAjMTQzODQzOSBieSBNYXR0IEJyb3duOgor ICBPbmx5IHNldCBuby1jYWNoZSBoZWFkZXJzIHdoZW4gZXJyb3Igb3V0cHV0IGlzIGdlbmVyYXRl ZAorKiB+SW1hZ2VMaW5rczogcGF0Y2ggIzEzNDg5OTYgYnkgUm9iZXJ0IExpdHdpbmllYworKiBm aXggYnVnICMxMzI3OTEyIG51bWVyaWMgcGFnZW5hbWVzIGNhbiBicmVhayBwbHVnaW5zIChKb2Fj aGltIExvdXMpCisqIGltcHJvdmUgcGRmIG91dHB1dCB2aWEgZXh0ZXJuYWwgY29udmVydGVyCisq IGZvcmNlIGludGVnZXIgY29uc3RhbnRzIHRvIGJlIHNldCBhcyBpbnRlZ2VyCisqIHBhcnRpYWxs eSBmaXggQ1JDIG92ZXJmbG93IGluIHppcGxpYiAoQm9iIEFwdGhvcnBlKQorKiB0ZXN0c3VpdGU6 IGZvcmNlIEMgbG9jYWxlIGFuZCBFTiAkTEFORworKiBmaXhlZCBkaXNwbGF5IG9mIGVkaXRlZCBJ bnRlcldpa2lNYXAuIHN0YXRpYyB2YXIgaXNzdWUKKyogZml4ZWQgZGlzcGxheSBvZiAiTWVyZ2Ug YW5kIEVkaXQ6IHBhZ2VuYW1lIiBoZWFkZXIgaW4gbWVyZ2UgZWRpdCAoaGFjayEpCisqIH5XaWtp Rm9ybVJpY2g6IGZpeCBuYW1lPXZhbHVlIHBhcnNpbmcuIGZpeCBsaW1pdCB3aXRoIHBsdWdpbi1s aXN0IGludm9jYXRpb25zCisqIHBsdWdpbi9EaWZmOiBmaXggbGliL2RpZmYgbG9hZGluZyBjb25m bGljdHMgYnkgcmVtb3ZpbmcgZHVwbGljYXRlIGNsYXNzZXMKKyogcGx1Z2luL1Bsb3RpY3VzOiBz dXBwb3J0IFBMT1RJQ1VTX1BSRUZBQlMgY29uZmlnLmluaSBzZXR0aW5nIChkb2N1bWVudGVkIGJ1 dCBuZXZlciB3b3JrZWQpCisqIGZpeCBlZGl0OmxvY2tlZCBsYWJlbCBzZWxlY3Rpb246IHR5cG8s IHdhcyBlZGl0OmxvY2sKKyogZml4ZWQgbW9hY2Ryb3Bkb3duIGludGVncmF0aW9uCisqIGZpeGVk IGZvcnR1bmUgZXJyb3IgaGFuZGxpbmcKKyogZml4ZWQgbGltaXQgaGFuZGxpbmcgd2l0aCBtdWx0 aXBsZSBwYWdlbGlzdHM6IGRvbid0IG92ZXJ3cml0ZSByZXF1ZXN0IGFyZworKiBjaGFuZ2UgUGFn ZUR1bXAgQ29udGVudC1UeXBlIGhlYWRlciBmb3IgZG93bmxvYWQgdG8gYXBwbGljYXRpb24vb2N0 ZXQtc3RyZWFtIHRvIGF2b2lkCisgIHBlc3R5IC50eHQgc3VmZml4ZXMgb24gV2luZG93cyBjbGll bnRzCisqIGZpeGVkIHdpa2lsZW5zIHdpdGggZGJhIGFuZCBSQVRJTkdfU1RPUkFHRT1TUUwuIFJB VElOR19TVE9SQUdFPVdJS0lQQUdFIG5vdCB5ZXQgZml4ZWQuCisqIGZpeGVkIGFjdGlvbj1kaWZm IGVycm9yIHdpdGggZXh0ZXJuYWwgbGlua3MKKworPT09IENoYW5nZXMgPT09CisqIGFkZCB+VXBM b2FkIHBvbGljeSBESVNBQkxFX1VQTE9BRF9PTkxZX0FMTE9XRURfRVhURU5TSU9OUywgZGVmYXVs dDogZmFsc2UKKyogflNlbWFudGljV2ViOiBhZGQgbGlua3JlbGF0aW9uIHN1cHBvcnQsIGdldFBh Z2VMaW5rcyByZXR1cm5zIG5vdyBhbiBhcnJheSBvZiBoYXNoZXMuCisgIG9wdGltaXplIGdldF9s aW5rcyBmb3IgcmVsYXRpb25zLgorKiBhZGQgbmV3IGxpbmtzeW50YXggIn5bOnBhZ2VuYW1lfl0i IGluc2lkZSBzcXVhcmUgYnJhY2tldHMgb25seSwgbm90IHRvIHN0b3JlIGJhY2tsaW5rcy4KKyAg fls6fkRvbnRTdG9yZUxpbmt+XSAoZXhwZXJpbWVudGFsKQorKiBtb3ZlZCBkZWZhdWx0IGhlbHAg cGFnZXMgdG8gSGVscC8gc3VicGFnZXMuIFBhcnRpYWxseSBmb3IgImRlIiBhbHNvLgorKiBnZW5l cmFsaXplZCBFTkFCTEVfSFRNTEFSRUEzIHRvIEVOQUJMRV9XWVNJV1lHCisqIHN1cHBvcnQgbW9y ZSB+V2lraUZvcm1SaWNoIG1ldGhvZCBhcmd1bWVudHM6IHVybCwgZHludXJsLCB4bWxycGMsIGR5 bnhtbHJwYywgcGx1Z2luLAorICB0aGUgYXV0b2NvbXBsZXRlIG9wdGlvbiBmb3IgcHVsbGRvd25+ W35dIGFuZCBlZGl0Ym94flt+XSBhbmQgdGhlIG5ldyBjb21ib2JveH5bfl0gd2lkZ2V0LgorICBJ bXByb3ZlIH5XaWtpRm9ybVJpY2ggbGF5b3V0LgorKiBEQjogZm9yZWlnbiBrZXkgc3VwcG9ydCBp biBzY2hlbWFzLCBzaW1wbGlmeSBtZXRob2RzCisqIHJlbW92ZSB1c2VyIHRhYmxlOiB1cGdyYWRl IGZyb20gU1FMIGRiLgorKiB1cGRhdGVkIGxvY2FsZSBmb3IgaXQsIGRlIGFuZCBlcyAoZ29vZ2xl IHRyYW5zbGF0aW9uKQorKiBpbXByb3ZlIGxvYWRpbmcgbXVsdGlwbGUgdmVyc2lvbiBhcmNoaXZl cyBzdWNoIGFzIGZ1bGwgemlwZHVtcHMuIGZvcmNlIHRlbXAuIG92ZXJ3cml0ZS4KKyAgc3VwcG9y dCBsb2FkZmlsZSBmb3IgbXVsdGlwYXJ0IGFyY2hpdmVzIChmdWxsIGR1bXBzKSBhdXRvbWF0aWNh bGx5CisqIG9taXQgYWN0aW9uYmFyIGZyb20gcGRmIG91dHB1dAorKiBzdXBwb3J0IGNoYXJzZXRz IGluIHBhZ2VkdW1wcyBmb3IgbG9hZGZpbGUgYW5kIHZpcmdpbiBzZXR1cAorKiBffkJhY2tlbmRJ bmZvUGx1Z2luIHByaW50cyBsaW5raW5mbyBhbHNvLgorKiB+RXh0ZXJuYWxTZWFyY2hQbHVnaW4g ZGlzcGxheXMgdGhlIGJ1dHRvbiBhdCB0aGUgcmlnaHQuIENoYW5nZSBpdCB3aXRoCisgIEVYVEVS TkFMU0VBUkNIX0RFRkFVTFRfQlVUVE9OX1BPU0lUSU9OID0gbGVmdCwgb3IgdGhlIGFyZ3VtZW50 IGJ1dHRvbl9wb3NpdGlvbj1sZWZ0IG9yIG5vbmUuCisqIGRpc2FibGVkIHBvc3RncmVzcWwgb3B0 aW1pemUoKSBpbiBmYXZvciBvZiBhdXRvdmFjdXVtLAorICBlbmFibGUgaXQgaW4gdGhlIGJhY2tl bmQgbWV0aG9kIGlmIHRoZSB3ZWIgdXNlciBpcyB0aGUgdGFibGUgb3duZXIgKHNlY3VyaXR5IHJp c2spCisqIHByaW50ICJJZ25vcmVkIHN0b3BsaXN0IHdvcmRzIiBvbiBGdWxsVGV4dFNlYXJjaCwK KyAgYWRkIEZVTExURVhUU0VBUkNIX1NUT1BMSVNUIGNvbnN0YW50LAorICBtYWtlIH5UZXh0U2Vh cmNoUXVlcnktPl9zdG9wbGlzdCBsb2NhbGl6YWJsZQorKiBmaXggYXJnIG9yZGVyIGluIFdpa2lE Ql9iYWNrZW5kX3NlYXJjaCgpCisqIHByb3RlY3RlZCB0ZXN0cy4gb25seSBhbGxvdyBsb2NhbGhv c3QKKyogb3B0aW1pemUgfkFyY2hpdmVDbGVhbmVyIGZvciB0aGUgbmV3IGRlZmF1bHQgY2FzZSAo c2luY2UgMS4zLjExKTogS2VlcCBhbGwgcmV2aXNpb25zLgorKiBjaGFuZ2VkIHRoZSBkZWZhdWx0 IERCIGJhY2tlbmQgZnJvbSBnZGJtIHRvIGRiYSBkYjQKKyogY2hhbmdlZCBhY3Rpb249dXBncmFk ZSB0byBjaGVjayBhbmQgc3RvcmUgYSBkYiB2ZXJzaW9uCisqIGRvbid0IGxvYWRmaWxlICoub3Jp ZyBmaWxlcyAodGhpcyBtaWdodCBiZSBhIGxpbWl0YXRpb24uIHNvcnJ5KQorKiByZW5hbWUgX35B dXRoRmlsZSB0byB+RGVidWdBdXRoRmlsZSBpbiB1cGdyYWRlCisqIHVwZGF0ZWQgbW9zdCB0ZW1w bGF0ZSBmaWxlcyBmb3IgaGFybW9uaXNhdGlvbgorKiBjaGFuZ2VkIGRlZmF1bHQgfkxpdmVTZWFy Y2ggbWV0aG9kIGluIHNlYXJjaC50bXBsIGZyb20gdXJsIHRvIHhtbHJwYy4gZmFzdGVyIGFuZCBs ZXNzIGhhY2tpc2guCisqIGZpeGVkIGFsbCB0ZW1wbGF0ZXMgd2l0aCBtaXNzaW5nIHJldmlzaW9u IGNoZWNrLiBjYW4gYmUgZmFsc2UuCisqIHJld3JvdGUgYW5kIHJlZGVmaW5lZCB7e3tXaWtpREI6 Omxpc3RSZWxhdGlvbnN9fX0uIGxpc3Qgb25seSBhbGwgcmVsYXRpb25zIGFzIGFycmF5LgorKiBj aGFuZ2VkIFNlbWFudGljIGF0dHJpYnV0ZSBzeW50YXggZnJvbSAiOi0iIHRvICI6PSIgKHJlbGV2 YW50IHRvIGN2cyB1c2VycyBvbmx5KQorKiBjaGFuZ2UgflRleHRTZWFyY2hRdWVyeSBoYW5kbGlu ZyBvZiByZWdleD1wY3JlOiBwbGFpbiBzdHJpbmcsIG5vIHBhcnNpbmcgYXQgYWxsLAorICBkZXRl Y3QgYW5kIGFwcGx5IG1vZGlmaWVycy4KKyogZW5oYW5jZSB0ZXh0MnBuZyBhcmd1bWVudHMgYW5k IGZlYXR1cmVzLiBTZWUgW1tIZWxwOnRleHQycG5nUGx1Z2luXV0KKyogVGVtcGxhdGUgcGx1Z2lu OiBhbGxvdyBwYXNzaW5nIGFyYml0cmFyeSBhcmdzLCBub3QganVzdCBpbiB2YXJzLgorKiBhZGRl ZCBvbGQgZ2Qgc3VwcG9ydCB0byB+UGhvdG9BbGJ1bSB0aHVtYnMgKH5JbWFnZVRpbGUpCisqIElt cHJvdmUgfkxkYXBTZWFyY2ggcGx1Z2luIGFuZCBhZGQgYWN0aW9uIHBhZ2UuCisqIEltcHJvdmVk IHdpa2lsZW5zIHRoZW1lLgorKiBDaGFuZ2VkIGFsbCBkZWZhdWx0IFRlbXBsYXRlIHZhcnMgdG8g ZXhwYW5kZWQgdG8gdXBwZXJjYXNlOiBQQUdFTkFNRSwgVVNFUklELCAuLi4KKyogQ1NTOiBubyB+ TW9ub0Jvb2sgY3NzIGhhY2tzL3JlcXVlc3RzLCBjaGVjayBzcGVjaWFsIGJyb3dzZXIgdmVyc2lv bnMgaW4gcGhwCisKKz09PSBOZXcgPT09CisqIGFkZCB+U2VtYW50aWNSZWxhdGlvbnMgc3ludGF4 LCBkYiBzdHJ1Y3R1cmUgYW5kIGF0dHJpYnV0ZSB1bml0cy4KKyAgU2FtcGxlOiBwYWdlbmFtZT1+ U2FuRGllZ28gaXNfYSA6OiBjaXR5ID0+IH5TYW5EaWVnbyByZWxhdGlvbiA9IGlzX2EsIGxpbmt0 byA9IGNpdHkKKyAgICAgICAgICBwb3B1bGF0aW9uIDo9IDEsMzA1LDczNiAobnVtZXJpYyB1bml0 cykKKyAgU3RvcmUgdW5pZmllZCBhdHRyaWJ1dGUgaW4gcGFnZWRhdGEuCisqIG5ldyBleHBlcmlt ZW50YWwgV1lTSVdZRyBlZGl0IGxpYnJhcnkgZnJhbWV3b3JrOgorICB+V2lraVd5ZywgdGlueW1j ZSwgRkNLZWRpdG9yLCBodG1sYXJlYTMsIGh0bWxhcmVhMiwgc3BhdworKiBuZXcgd3lzaXd5Z19l ZGl0b3IgZmVhdHVyZSBieSBKZWFuLU5pY29sYXMgR0VSRU9ORSBhbmQgU2FicmkgTEFCQkVORSAo ZXhwZXJpbWVudGFsKQorKiBhZGRlZCBwb3N0Z3Jlc3FsIHRzZWFyY2gyIHN1cHBvcnQKKyogbmV3 IGV4cGVyaW1lbnRhbCBmbGF0ZmlsZSBiYWNrZW5kOiByZWFkYWJsZSBwYWdlIHNvdXJjZSBmaWxl cyAoZXhwZXJpbWVudGFsKQorKiBhZGRlZCBuZXcgeG1scnBjIGFuZCBTT0FQIG1ldGhvZHM6IH5s aXN0UGx1Z2lucywgfmdldFBsdWdpblN5bm9wc2lzLCB+bWFpbFBhc3N3b3JkVG9Vc2VyLAorICB+ Z2V0VXBsb2FkZWRGaWxlSW5mbywgfmxpc3RSZWxhdGlvbnMsIH5jYWxsUGx1Z2luLCB+bGlua1Nl YXJjaAorKiBuZXcgcGx1Z2luczogflNlbWFudGljU2VhcmNoLCB+U2VtYW50aWNSZWxhdGlvbnMs IH5MaW5rU2VhcmNoLCB+TGlzdFJlbGF0aW9ucywKKyAgfkZpbGVJbmZvLCB+Qm94UmlnaHQsIH5Q YXNzd29yZFJlc2V0LCB+V2F0Y2hQYWdlLCB+U3BlbGxDaGVjaywgflNlYXJjaEhpZ2hsaWdodCwK KyAgQXNjaWlTVkcKKyogYWRkIDxub3dpa2k+PC9ub3dpa2k+IHRhZzogVHJhbnNmb3JtIG9ubHkg aHRtbCBtYXJrdXAgYW5kIGVudGl0aWVzCisqIG5ldyBvcHRpb24gRElTQUJMRV9NQVJLVVBfV0lL SVdPUkQgdG8gZm9yY2UgWyBdIGZvciBsaW5rcworKiBuZXcgb3B0aW9uIEVOQUJMRV9NQVJLVVBf RElWU1BBTiAoZXhwZXJpbWVudGFsKQorKiBuZXcgb3B0aW9uIFBMVUdJTl9NQVJLVVBfTUFQIGZv ciB4bWwtc3R5bGUgcGx1Z2luIHN5bnRheCAoZXhwZXJpbWVudGFsKQorKiBzdXBwb3J0IFdpbmRv d3MgTlRMTSBBdXRoIHZpYSB+SHR0cEF1dGg6IG1vZF9udGxtIChhcGFjaGUxKzIuIGFsc28gb24g bGludXgpCisgIGFuZCBtb2RfYXV0aF9zc3BpIChhcGFjaGUyLiBiZXR0ZXIsIGJ1dCB3aW5kb3dz IG9ubHkpCisqIG5ldyBzdGFibGUgb3B0aW9uIEVOQUJMRV9TRUFSQ0hISUdITElHSFQgd2l0aCBh Y3Rpb25wYWdlIGFuZCBwbHVnaW4gU2VhcmNoSGlnaGxpZ2h0LgorICBJbiBDVlMgZm9yIHNvbWUg dGltZSBjYWxsZWQgVVNFX1NFQVJDSEhJR0hMSUdIVC4KKyogcGF0Y2ggIzEzNzcwMTEgYnkgTWF0 dCBCcm93bjogYWRkIERBVEFCQVNFX09QVElNSVNFX0ZSRVFVRU5DWQorKiBuZXcgb3B0aW9ucyBk Yi1jaGVjayBhbmQgZGItcmVidWlsZCBmb3Igfldpa2lBZG1pblBsdWdpbi4KKyAgWW91IGNhbiBu b3cgcmV0cmFuc2Zvcm0gYWxsIHBhZ2VzIGF0IG9uY2UuCisqIG5ldyB+TWFpbE5vdGlmeSBjbGFz cywgc2ltcGxpZmllZCBXaWtpREIucGhwCisqIGFkZGVkICJQcmludGFibGUgdmVyc2lvbiIganMg dG8gbW9ub2Jvb2sgdGhlbWUuIFNlZSBMaWNlbnNlIGluCisgIGh0dHA6Ly93d3cuaG93dG9jcmVh dGUuY28udWsvanNsaWJzL3Rlcm1zT2ZVc2UuaHRtbAorKiBuZXcgfkFjdGlvbkJ1dHRvbiBmdW5j dGlvbiBmb3Igfk1vbm9Cb29rIHdpdGggc2VsZWN0ZWQgc3RhdGUuICh0YWIgc3RhdGUpCisqIGFk ZGVkIH5TeW5jV2lraSBwbHVnaW4gdG8gc3luYyBwYWdlcyBhbmQgdXBsb2FkcyB3aXRoIGEgbWFz dGVyIHdpa2kuCisgIChmb3JlaWduIGF1dGggbm90IHlldCBzb2x2ZWQpCisqIGFkZGVkIGJvb2xl YW4gVVBMT0FEX1VTRVJESVIgdG8gdXBsb2FkIGludG8gdXNlci1zcGVjaWZpYyBkaXJlY3Rvcnku CisqIGFkZGVkIHN1cHBvcnQgZm9yIG11bHRpcGxlIHBhZ2UgYXJndW1lbnRzIGluIEJhY2tMaW5r cy4gTG9naWNhbCBBTkQuCisqIGFkZGVkIHdpa2lkYi0+YmFja2VuZC0+cmVidWlsZCgpCisqIGFk ZGVkICJLZWVwIG9sZCIgYW5kICJPdmVyd3JpdGUgd2l0aCBuZXciIGJ1dHRvbnMgYW5kIGFjdGlv bnMgZm9yIGxvYWRmaWxlIG1lcmdlIGVkaXQuCisqIGFkZGVkIGxpYi9+WG1sUnBjQ2xpZW50LCB4 bWxycGMgbWV0aG9kcyB0byBsaWIvfkh0dHBDbGllbnQgYW5kIGFjZHJvcGRvd24uanMuIEpTT04g bm90IHlldC4KKyogY3JlYXRlZCBIZWxwL34qUGx1Z2luIHN0dWJzIGZvciAqQUxMKiBwbHVnaW5z IGluIHBnc3JjCisqIGFkZGVkIGEgbmV3IF9ERUJVR19SRU1PVEUgZmxhZyB0byBkZWJ1ZyBpbnRv IHJlbW90ZSBzZXNzaW9ucyAoeG1scnBjLCBhamF4LCAuLi4pCisqIGFkZGVkIHt7e1dpa2lEQjo6 bGlua1NlYXJjaH19fSBhbmQgYmFja2VuZC9kdW1iL35MaW5rU2VhcmNoSXRlci5waHAuIE1haW5s eSBmb3IgflNlbWFudGljU2VhcmNoLAorICBhbmQgTGlua1NlYXJjaCwgYnV0IGNhbiBiZSB1c2Vk IGZvciB+U2VtYW50aWNTZWFyY2hBZHZhbmNlZCAoY29tYmluZWQgcXVlcmllcyBhcyA8YXNrPikg YW5kCisgIEJhY2tMaW5rcyBldCBhbCBhbHNvLgorKiBhZGRlZCBDYWxlbmRhciBkaXNwbGF5X3dl ZWtudW0gYXJndW1lbnQKKyogYWRkZWQgbmV3IH5Bc2NpaVNWRyBwbHVnaW4KKyogYWRkZWQgbmV3 IH5Zb3VUdWJlIHBsdWdpbgorKiBhZGRlZCB+WG1sUnBjVGVzdCB0ZXN0cworKiBBZGRlZCBub3Bh Z2UgYXJndW1lbnQgdG8gflBhZ2VMaXN0IGFuZCBhbGwgaXRzIHBsdWdpbnMuIFVuaXF1ZSByb3dz IG9ubHkgbm90IHlldC4KKyogQWRkZWQgYXV0aG9yLCBvd25lciBhcmd1bWVudCB0byBSZWNlbnRD aGFuZ2VzIGFuZCBhZGRlZCBhY3Rpb24gcGFnZXM6CisgIE15UmVjZW50Q2hhbmdlcywgTXlSZWNl bnRFZGl0cywgVXNlckNvbnRyaWJzCisqIGFkZGVkIFJlY2VudENoYW5nZXMgZm9ybWF0PWNvbnRy aWJzIGZvciB+TW9ub0Jvb2sgdGhlbWU6ID0+IFVzZXJDb250cmlicworKiBhZGRlZCB+TW9ub0Jv b2sgYWNjZXNza2V5cworCis9PSAxLjMuMTJwMyBKdW4sIDE4IDIwMDYsIFJlaW5pIFVyYmFuID09 CisKKyogZml4IH5bL1N1YnBhZ2V+XSBsaW5rcworKiBmaXggcHJlZiBzdG9yaW5nIG9mIGFscmVh ZHkgY3J5cHRlZCBwYXNzd29yZHMuIGJ1ZyAjMTMyNzQ3MCAoVG9tIEhhcmRpbmcpCisqIGZpeCBj YWNoZSBoZWFkZXJzIG9uIGVycm9ycyAoQG9iX2VuZF9mbHVzaCBpc3N1ZSkuIChtYXR0IGJyb3du KQorKiBmaXggfkJvZ29Mb2dpbiB3aGVuIEVOQUJMRV9QQUdFUEVSTT1mYWxzZS4gcGF0Y2ggIzE0 MzgzOTIgYnkgTWF0dCBCcm93bgorKiB1bmlxdWUgV0lLSV9JRCBjb29raWVzIHBlciBXSUtJX05B TUUuIHBhdGNoICMxMzMzOTU3IGJ5IE1hdHQgQnJvd24KKyogYWRkZWQgREFUQUJBU0VfT1BUSU1J U0VfRlJFUVVFTkNZIGZlYXR1cmUuIHBhdGNoICMxMzc3MDExIGJ5IE1hdHQgQnJvd24KKyogZG9u J3QgY2hlY2sgbG9ja190YWJsZSBwcml2IG9uIGFjdGlvbj11cGdyYWRlCisqIGZpeCBfYWNjZXNz bG9nLT5sb2d0YWJsZSBhbmQgX2lzX2J1ZmZlcmluZ19vdXRwdXQgd2FybmluZ3MgKHVja2VsbWFu KQorKiBkbyBub3QgcHJpbnQgd3JvbmcgbGVuZ3RoIGhlYWRlciBvbiB1cmwtcmV3cml0aW5nLiBi dWcgIzEzNzYwMDcKKyogZml4IHByZWYtPnNldDogRXJyb3IgZ2VuZXJhdGVkIHdoZW4gbG9naW4g b3V0LiBidWcgIzEzNTU1MzMgKFRoaWVycnkgTmFiZXRoKQorKiBmaXggZGVmYXVsdCBwcmVmZXJl bmNlcyBmb3IgZWRpdGhlaWdodCBtYXhyb3dzLCBieSBNYW51ZWwgVmFjZWxldC4KKyogZml4IERC QVVUSCBhcmd1bWVudHMgdG8gYmUgcG9zaXRpb24gaW5kZXBlbmRlbnQsIGJ1ZyAjMTM1ODk3Mwor KiBhZGQgflBkb0RiUGFzc1VzZXIgdXNlcgorKiBmaXggb3V0cHV0IG9mIEhvbWVwYWdlIHByZWZz IHVwZGF0ZQorKiB1cGRhdGUgY29uZmlnLWRpc3QuaW5pIGZvcm1hdCBmcm9tIENWUworKiB1cGRh dGUgY29uZmlndXJhdG9yLnBocCBmcm9tIENWUworKiBwcmludCBvcHRpbWl6ZSB3aWtpZGIgb25s eSB3aGVuIERFQlVHCisqIHNpbXBsaWZ5IG1lc3NhZ2VzIGZvciB0cmFuc2xhdG9ycworKiBhZGRl ZCB+SW1hZ2VUaWxlLnBocAorKiBhZGRlZCB0c2VhcmNoMiB0byBkb2MvSU5TVEFMTC5wZ3NxbAor KiBhZGRlZCBiYXNlcGFnZSB0byB7e3tDYWNoZWRfV2lraUxpbms6OmFzWE1MfX19IGZvciBzdWJw YWdlcyB3aXRoaW4gfkNyZWF0ZVRPQworKiBwcmludCBmaWxlbmFtZSBvbiBkYmEgYWNjZXNzIGVy cm9yCisqIHVzZSBiaW5kX3RleHRkb21haW5fY29kZXNldC4gYnVnICMxNDgwMDc3IChLYWkgS3Jh a293KQorKiBtYWtlIH5UZXh0U2VhcmNoUXVlcnktPl9zdG9wbGlzdCBsb2NhbGl6YWJsZSBhbmQg b3ZlcnJpZGFibGUgd2l0aGluIGNvbmZpZy5pbmkKKyogZml4ZXMgZm9yIG15c3FsIDUueCB3YW50 ZWRwYWdlcyBqb2luCisqIGFkZCByZWw9bm9mb2xsb3cgdG8gbW9yZSBhY3Rpb25zLiBwYXRjaCBi eSBNYXR0IEJyb3duCisqIGFkZCB2ZXJpZnkgdG8gflJldmVydFBhZ2UsIGRpc3BsYXkgcmV2ZXJ0 ZWQgcGFnZSBhcyB0ZW1wbGF0ZQorKiB1cGRhdGUgcGx1Z2luL35DYWxlbmRhckxpc3Q6IHBhdGNo ZXMgYnkgbXB1bGxlbiBhbmQgYmFuam8KKyogdXBkYXRlIHBsdWdpbi9+R3JhcGhWaXoKKyogYWRk ZWQgcGx1Z2luL35QYXNzd29yZFJlc2V0CisqIGZpeGVkIGhhc2goKSBpbiBwbHVnaW4vflJhdGVJ dAorKiBwbHVnaW4vX35BdXRoSW5mbzogcHJvdGVjdCBGaWxlIHBhc3N3b3JkcworKiBhZGRlZCBD YXB0Y2hhIHRvIENyYW8gZWRpdCB0ZW1wbGF0ZQorKiBhZGRlZCBNYWNPU1ggUGRmIGJ1dHRvbgor KiBmaXhlZCBQb3J0bGFuZCBhbmQgV29yZHByZXNzIGVkaXRwYWdlIHRlbXBsYXRlCisqIHJlbW92 ZWQgV29yZHByZXNzIGJ1dHRvbnMsIHRyYW5zcGFyZW50IGRlZmF1bHQgYnV0dG9ucyBzaG91bGQg YmUgdXNlZC4KKyogZGlzYWJsZWQgUmVsYXRlZENoYW5nZXMgYnV0dG9uCisKKz09IDEuMy4xMnAy IE1hciwgNyAyMDA2LCBSZWluaSBVcmJhbiA9PQorCisqIGZpeCBjaGFuZ2UgcHJlZnMgZm9yIEZp bGUgfldpa2lVc2VyCisqIGZpeCB+SG9tZXBhZ2VQcmVmcyB1cGRhdGUgbWVzc2FnZQorKiByZW1v dmUgcGx1Z2luL0ltZGIKKyogYXBwbHkgflBsdWdpblRvb2xiYXJCdXR0b24gZml4IGZyb20gY3Zz CisKKz09IDEuMy4xMnAxIE1hciwgNCAyMDA2LCBSZWluaSBVcmJhbiA9PQorCisqIGZpeCAiQ2Fs bC10aW1lIHBhc3MtYnktcmVmZXJlbmNlIiBpbiB+Q3JlYXRlQmliCisqIGZpeCBwYXJzZSBlcnJv ciBpbiB+U2l0ZU1hcC5waHAKKworPT0gMS4zLjEyIE1hciwgNCAyMDA2LCBSZWluaSBVcmJhbiA9 PQorCitSZW5hbWUgZnVuY3Rpb24gaGFzaCgpIGFuZCBtZXRob2QgZmluYWwoKSBmb3IgcGhwLTUu MSBjb21wYXRpYmlsaXR5LgorQWRkIHZhcmlvdXMgYmFja3BvcnRzIGZyb20gY3ZzOgorCis9PT0g Rml4ZXMgPT09CisqIGZpeCB+WmlwUmVhZGVyCisqIEZpeCAiQ2FsbC10aW1lIHBhc3MtYnktcmVm ZXJlbmNlIGhhcyBiZWVuIGRlcHJlY2F0ZWQiIGVycm9ycywKKyAgYWxsb3dfY2FsbF90aW1lX3Bh c3NfcmVmZXJlbmNlID0gT2ZmCisqIGZpeCBicm9rZW4gbG9jYWxlIHVwZGF0ZSBmb3IgcGhwLTUu MS4xCisqIGRlZmF1bHQgbG9jYWxlIGZpeCBieSBUaG9tYXMgSGFyZGluZworKiBmaXggQnVnICMx MzgxNDY0ICJEdXBsaWNhdGUgZnVuY3Rpb25zIiB3aXRoIHBocC01LjEuMQorKiBJbnRlcldpa2lN YXA6IGFsbG93IHNwYWNlcyBpbiBwYXRocywgZXZlbiBpbXBsaWNpdGx5LiBmaXhlcyBidWcgIzEy MTg3MzMKKyogZml4ICdWT0lEJyBpbiB+VGV4dFNlYXJjaFF1ZXJ5CisqIHJlbW92ZSBMSU1JVCAx IGluIEFET0RCCisqIGZpeCBTUUwgV2FudGVkUGFnZXMKKyogZml4ZWQgZnVsbHRleHQgc2VhcmNo IGFuZCBzdG9wbGlzdCBoYW5kbGluZworKiBmaXggYnVnICMxMzI3OTEyIG51bWVyaWMgcGFnZW5h bWVzIGNhbiBicmVhayBwbHVnaW5zIChKb2FjaGltIExvdXMpCisqIGZpeCB4bWxycGMgYW5kIHRl c3RzL3VuaXQgZm9yICFyZWdpc3Rlcl9sb25nX2FycmF5cworKiBlbnN1cmUgYWJzb2x1dGUgdXBs b2FkcyBwYXRoCisqIGZpeCB+R29vZ2xlTWFwcyBzeW50YXggZXJyb3IKKyogZml4IH5MaXN0UGFn ZXMgZm9yIG5vbi1TUUwgYmFja2VuZHMuIEFkZCB0b3AzcmVjcyBhcyBkZWZhdWx0IG9ubHkgaWYK KyAgcmF0aW5ncyBhcmUgYXZhaWxhYmxlCisqIHBsdWdpbi9+UGFnZVRyYWlsIGltcHJvdmVkIGVt cHR5IGNvb2tpZQorKiBwbHVnaW4vX35XaWtpVHJhbnNsYXRpb246IHByb3RlY3QgYWdhaW5zdCAy eCBkZWZpbmUKKyogcmVtb3ZlIG15c3FsIHNwZWNpZmljIElTTlVMTCgpCisqIGZpeCBzaWdub3V0 IHByZWYgZXJyb3IKKyogZG9uJ3QgbG9nIG9uIEFDQ0VTU19MT0dfU1FMIDwgMgorCis9PT0gQ2hh bmdlcyA9PT0KKyogY2FjaGUgfkVkaXRUb29sYmFyIHBvcHVwIGNvbnRlbnQKKyogYmVhdXRpZnkg U0NSSVBUIGxpbmVzCisqIGFkZGVkIGNmZy1hYmxlIG1hcmt1cHMgb25seSBmb3IgZGVmYXVsdCB+ VGV4dFRyYW5zZm9ybWF0aW9uLCBub3QKKyAgZm9yIGxpbmtzIGFuZCBvdGhlcnMKKyogYWRkIGEg cHJvcGVyIENvbnRlbnQtRW5jb2Rpbmc6IGd6aXAgaWYgY29tcHJlc3NlZCwgYW5kIG9taXQgQ29u dGVudC1MZW5ndGggdGhlbi4KKyAgVHJpY2sgdG8gc2VuZCB0aGUgY29ycmVjdCBnemlwcGVkIENv bnRlbnQtTGVuZ3RoCisqIHNldCBkc24gYWZ0ZXIgU1FML0FET0RCIHN3aXRjaGVzIGluIFdpa2lE QiBiYWNrZW5kcyBmb3IgZWFzaWVyIHVuaXQgdGVzdGluZworKiBlLW1haWwgbm90aWZpY2F0aW9u czogYmV0dGVyIEZyb206IGhlYWRlcgorKiBhZGQgREJBVVRIX1BSRUZfSU5TRVJUOiBzZWxmLWNy ZWF0aW5nIHVzZXJzLiBieSBKb2huIFN0ZXZlbnMKKyogaW1wcm92ZWQgfldpa2lVc2VyL0xkYXAg ZXJyb3IgZGVzY3JpcHRpb24KKyogY2FjaGUgU3lzdGVtSW5mbyBtZXRob2RzCisqIH5WaXN1YWxX aWtpOiByZW1vdmUgSU5DTFVERUQgZnJvbSBFWENMVURFRCwgaW5jbHVkZXMgb3ZlcnJpZGUgZXhj bHVkZXMuCisqIGltcHJvdmUgcG9zdGdyZXNxbCBzY2hlbWFzICh0c2VhcmNoMiBhbmQgc3RvcmVk IHByb2NlZHVyZXMgbm90IHlldCkKKworPT09IE5ldyA9PT0KKyogYWRkZWQgTlVNX1NQQU1fTElO S1MgYXMgY29uZmlnLmluaSBvcHRpb24KKyogbmV3IEVOQUJMRV9TUEFNQkxPQ0tMSVNULCBsaWIv flNwYW1CbG9ja2xpc3QucGhwOgorICBjaGVjayBleHRlcm5hbCBsaW5rcyBhZ2FpbnN0IHN1cmJs Lm9yZyBhbmQgYmwuc3BhbWNvcC5uZXQKKyogYWRkZWQgQ2FwdGNoYSBjbGFzcyBhbmQgYmV0dGVy IHNwaXJhbAorKiBhZGRlZCBnZXRfY2FwdGNoYV9yYW5kb21fd29yZCgpIGNvbnRyaWJ1dGVkIGJ5 IERhbiBGcmFua293c2tpCisqIGR1bXBodG1sIHdoZW4gbm90IGF0IGFkbWluIHBhZ2U6IGR1bXAg dGhlIGN1cnJlbnQgb3IgZ2l2ZW4gcGFnZQorKiBhZGRlZCBwbHVnaW4gfkZpbGVJbmZvCisqIG1h am9yIH5QaG90b0FsYnVtIGZlYXR1cmUgZW5oYW5jZW1lbnRzIGJ5IFRob21hcyBIYXJkaW5nOgor ICBzbGlkZXMgbW9kZSwgcmVhbCB0aHVtYm5haWxzCisqIGFkZCBtb3JlIGJhY2tlbmRzIHRvIHRo ZSB0ZXN0c3VpdGUgKFBlYXJEQl9wZ3NxbCwgLi4uKQorCis9PSAxLjMuMTFwMSBTZXAsIDE4IDIw MDUsIFJlaW5pIFVyYmFuID09CisKKz09PSBGaXhlcyA9PT0KKyogYWRkZWQgbWlzc2luZyBwZ3Ny Yy9+T2xkU3R5bGVUYWJsZXNQbHVnaW4KKyogZml4ZWQgfk9sZFN0eWxlVGFibGVzIHBsdWdpbiB3 aXRoIGFyZ3MKKyogcHJvdGVjdCBhZ2FpbnN0IENvbnRlbnQtTGVuZ3RoIGlmIGhlYWRlcnNfc2Vu dCgpCisqIGZpeGVkIEVOQUJMRV9NQVJLVVBfVEVNUExBVEUgd2FybmluZyBpZiB1bmRlZmluZWQK KyogZml4ZWQgd3JpdGluZyB1bndhbnRlZCBhY2Nlc3Nsb2cgc3FsIGVudHJpZXMKKyogZml4ZWQg V2lraUFkbWluU2VsZWN0IHByZXNlbGVjdGlvbgorKiBmaXhlZCBwYXNzZW5jcnlwdC5waHAgZm9y IFBIUDUgIXJlZ2lzdGVyX2xvbmdfYXJyYXlzCisqIGZpeGVkIGNvbmZpZ3VyYXRvciBmb3IgREFU QUJBU0VfRFNOLCBVU0VSX0FVVEhfT1JERVIKKworPT09IENoYW5nZXMgPT09CisqIG9wdGltaXpl ZCBleHBsb2RlUGFnZUxpc3QgdG8gdXNlIFNRTCB3aGVuIGF2YWlsYWJsZQorICAodGl0bGVTZWFy Y2ggaW5zdGVhZCBvZiBnZXRBbGxQYWdlcykKKyogYWRkZWQgb3B0aW1pemF0aW9uIGZvciBhIG5l dyBBTEwgdGV4dHNlYXJjaCB0b2tlbgorICAoKiA9PiBwY3JlOiAuKiwgc3FsOiAlKQorKiBjb25m aWd1cmF0b3IgdGFrZXMgZGVmYXVsdCBkZXNjcmlwdGlvbiBmcm9tIGNvbmZpZy1kaXN0LmluaQor KiBhZGRlZCBzb21lIG1pc3NpbmcgY29uZmlndXJhdG9yIGNvbnN0YW50cworCis9PSAxLjMuMTEg U2VwLCAxMSAyMDA1LCBSZWluaSBVcmJhbiwgSm9lbCBVY2tlbG1hbiA9PQorCitMb3RzIG9mIGJ1 Z2ZpeGVzLCBhbmQgc29tZSBmZWF0dXJlIGFuZCBwZXJmb3JtYW5jZSBlbmhhbmNlbWVudHMuCisK K0EgbmV3IEVESVRfVE9PTEJBUiBmcm9tIE1lZGlhd2lraSwgbW9yZSBwYWdlIHBlcm1pc3Npb24g ZW5oYW5jZW1lbnRzLAorcmVkdWNlZCBtZW1vcnkgdXNhZ2UgZm9yIHBhZ2VsaXN0cyB3aGljaCBu ZWVkIG5vIHBhZ2UgY29udGVudCwKK3JlbGF0ZWQgaW1wcm92ZW1lbnQgZm9yIH5PbGRNYXJrdXAg Y3Jhc2hlcyBiZWNhdXNlIG9mIFBDUkUgbWVtb3J5IGV4aGF1c3Rpb24uCisKK05ldyA8IXBsdWdp bi1saXN0ICE+IHN5bnRheCBhbmQgflBocFdpa2k6flBhZ2VMaXN0TGlicmFyeSBhcmdzLgorCitC ZWNhdXNlIG9mIFNRTCBjaGFuZ2VzIHlvdSdkIG5lZWQgdG8gP2FjdGlvbj11cGdyYWRlIHRvIHVw ZGF0ZSBmb3IgU1FMLgorCis9PT0gRml4ZXMgPT09CisqIGZpeGVkIGNyYXNoIGFmdGVyIGxvZ2lu LCBieSBlbGltaW5hdGluZyBlbmRsZXNzIHJlY3Vyc2lvbiBpbgorICBncm91cCBpc0FkbWluKCkg Y2hlY2tzCisqIGZpeGVkIHN5bnRheCBlcnJvcnMgaW4gc2lnbmluLnRtcGwKKyogZml4ZWQgbWlz c2luZyBERUJVRyB3YXJuaW5ncyAoU3VwcG9ydCAjOTU0MjYwKQorKiB+UGhwV2lraSBpcyBub3cg YWxsb3dfY2FsbF90aW1lX3Bhc3NfcmVmZXJlbmNlID0gT2ZmIHNhZmUgKHBocC5pbmkpCisgIFNv bWUgZXh0ZXJuYWwgbGlicmFyaWVzIGFyZSBub3QgKFBlYXJfREIgb2RiYywgYWRvZGIgb3JhY2xl KQorKiBmaXhlZCBzcWwgc3RhdGVtZW50cyBmb3IgcGFnZWRhdGEgd2hlcmUgaXQgaXMgbm90IG5l ZWRlZCwgZml4aW5nIHRoZQorICB0eXBpY2FsIH5QYWdlTGlzdCBtZW1vcnkgZXhoYXVzdGlvbiBv biBzaW1wbGUgcGFnZSBsaXN0cy4KKyAgY2FjaGVkX2h0bWwgaXMgaGFuZGxlZCBjb21wbGV0ZSBz ZXBhcmF0ZSBub3cuCisqIGZpeGVkIGFuZCBpbXByb3ZlZCBXaWtpREIgcGFnZWlkIGNhY2hpbmcu CisqIGZpeGVkIHNvbWUgfldpa2lHcm91cCBlcnJvcnMgZm9yIFdJS0lQQUdFIGFuZCBEQgorKiBm aXhlZCBKU19TRUFSQ0hSRVBMQUNFCisqIGZpeGVkIHJlbmFtZSB3aXRoIGRiYQorKiBmaXhlZCBU b2RheSBsaW5rIGluIGFsbCB0ZW1wbGF0ZXMgaWYgVVNFX1BBVEhfSU5GTyA9IGZhbHNlCisqIGZp eGVkIFBsdWdpbk1hbmFnZXIgZmF0YWwgZXJyb3IgbGluZSAyMjIKKyogdXRmLTggcGFnZW5hbWVz IGZpeGVkICh0eXBlZCBmb3JlaWduIG5hbWVzIGZyb20gSUUpCisqIENHSTogbm8gUEFUSF9JTkZP IGZpeAorKiBmaXggc29tZSB0b28gbG9vc2UgUGhwV2lraTpQYWdlUGVybWlzc2lvbnMgZm9yIHNp Z25lZCwgYnV0IG5vdCBhdXRoZW50aWNhdGVkIHVzZXJzCisgIChhZG1pbiwgb3duZXIsIGNyZWF0 b3IpLCBhbmQgZWRpdCBhbmQgdmlldyBmb3IgQm9nbyBhbmQgUGFzc3dvcmQgdXNlcnMKKyogc2Vj dXJpdHkgZml4IGZvciBjcmVhdGUgQUNMOiBhY3Rpb249ZWRpdCBpcyBub3cgY2hlY2tlZCBmb3Ig Y3JlYXRlCisqIGZpeGVkIGltcG9ydGFudCBXaWtpREIgYnVnIHdpdGggREVCVUcgPiAwOiB3cm9u ZyBhc3NlcnRpb24KKyAgYXJvdW5kIGxpbmUgMTcyICgjOTU0NjQ4KQorKiBmaXhlZCBmbGF0Zmls ZSB+QXJjaGl2ZUNsZWFuZXIgYXNzZXJ0aW9uCisqIH5Sc3NGZWVkUGx1Z2luIHN0YWJpbGl0eSBm aXggZm9yIGVtcHR5IGZlZWRzIG9yIGJyb2tlbiBjb25uZWN0aW9ucworKiBmaXhlZCBTaWRlYmFy IHRoZW1lIENTUywgYWRkZWQgZXhpc3RpbmcgZGF0ZXMgdG8ganNjYWxlbmRhcgorKiBmaXhlZCBQ aHBXaWtpOkltYWdlTGlua3MsIGJyb2tlbiBzaW5jZSAxLjMuMTAgKEJ1ZyAjOTU2MDY4KQorKiBm aXhlZCBsaWIvcGVhci9GaWxlX1Bhc3N3ZCBsb2FkaW5nCisqIH5UcmFuc2xhdGVUZXh0OiB2ZXJi YXRpbSBuZWVkZWQgYSBwYWdlYnJlYWsKKyogZml4ZWQgZHVwbGljYXRlIHNlc3Npb25faWQgd2Fy bmluZyB3aXRoIGFkb2RiCisqIGZpeGVkIGFkb2RiIH5EYlBhc3NVc2VyIGxvZ2luCisqIGZpeGVk IGV4dGVybmFsIH5EYlBhc3NVc2VyIGxvZ2luCisqIGZpeGVkIGFkb2RiIGFjdGlvbj11cGdyYWRl CisqIGZpeGVkIH5GaWxlUGFzc1VzZXIgbG9ja2luZyBwcm9ibGVtcyBhbmQgc2Vzc2lvbiBoYW5k bGluZworKiBmaXhlZCBhIGxvdCBvZiBMREFQIGF1dGggYW5kIGdyb3VwIGlzc3VlcworKiBmaXhl ZCBMREFQIG9wdGlvbnMgaGFuZGxpbmcgKGJ5IEpvaG4gQ29sZSkKKyogZml4ZWQgcG9zc2libGUg c2VjdXJpdHkgcHJvYmxlbXM6IGFsbG93aW5nIG9ubHkgcG9zaXhseSBzdHJpY3QgdXNlcm5hbWVz LAorICBhbmQgYW4gYWN0dWFsIExEQVAgSW5qZWN0aW9uIHByb2JsZW0sIGRldGVjdGVkIGJ5IFN0 ZXZlIENocmlzdGV5LCBNSVRSRS4KKyogaG9ub3Igcz13aWxkY2FyZCBhcmd1bWVudHMgZm9yIH5X aWtpQWRtaW4gcGx1Z2lucworKiBmaXhlZCBmbGF0ZmlsZSBhc3NlcnRpb24gKCM5NjMyNjgpIC0g Y2hlY2sgZXhpc3RpbmcgcHJldmlvdXMgdmVyc2lvbgorKiBmaXhlZCBhbGwgbXNnIHJlZmVyZW5j ZXMgZnJvbSBpbmRleC5waHAgdG8gY29uZmlnL2NvbmZpZy5pbmkKKyogZml4ZWQgaW1tZWRpYXRl IExBTkcgYW5kIFRIRU1FIGluLXNlc3Npb24gdXBkYXRlcyBpZiBub3Qgc3RvcmVkIGluIHByZWZz CisqIGZpeGVkIFVTRVJfQVVUSF9QT0xJQ1k9b2xkLCB1c2Ugb25seSBVU0VSX0FVVEhfT1JERVIg bWV0aG9kcyAoYmVzaWRlcyB+SHR0cEF1dGgpCisgIGFuZCByZW1vdmVkIExEQVAsIFBPUDMsIElN QVAgZGVmYXVsdCBjb25maWdzLgorKiBSZWxhdGVkQ2hhbmdlczogZml4ZWQgZGF5cyBsaW5rcwor KiBmaXggUmVuYW1lOiBDaGFuZ2UgcGFnZW5hbWUgaW4gYWxsIGxpbmtlZCBwYWdlcworKiBmaXhl ZCBQaHBXaWtpOn5QYWdlQ2hhbmdlTm90aWZpY2F0aW9uIGZvciBub3QtY3VycmVudCB1c2Vycwor KiBmaXhlZCB+VXBMb2FkUGx1Z2luIGZvciBmaWxlbmFtZXMgd2l0aCBzcGFjZSAoQnVnICM5Njk1 MzIpCisqIGZpeGVkIGxhYmVsIHN1cHBvcnQgZm9yIH5DcmVhdGVUb2NQbHVnaW4gKEJ1ZyAjOTY5 NDk1KQorKiBmaXhlZCBBcGFjaGUyIGNyYXNoaW5nIHdpdGggb2xkIG1hcmt1cCBhbmQgdGhlIH5D cmVhdGVUb2NQbHVnaW4uCisqIGNhdGNoIGZhdGFscyBhbmQgcmVxdWVzdC0+YXJncyBjaGFuZ2Vz IG9uIGR1bXBpbmcKKyogZml4ZWQgdW5uZWVkZWQgVXNlclByZWZlcmVuY2VzIHBsdWdpbiBsb2dp biBzY3JlZW4gb24gZHVtcGh0bWwKKyogY2F0Y2ggU09BUCBmYXRhbCBvbiB+R29vZ2xlUGx1Z2lu IHdpdGhvdXQgR09PR0xFX0xJQ0VOU0VfS0VZCisqIHNpbGVudGx5IGlnbm9yZSBqc2hpZGUgYXJn dW1lbnQgb24gTWFjSUUgZm9yIH5BZGRDb21tZW50UGx1Z2luIGFuZCB+Q3JlYXRlVG9jUGx1Z2lu CisqIGZpeGVkIHhtbHJwYyB0byBiZSBhYmxlIHRvIHVzZSB0aGUgbmF0aXZlIHhtbHJwYyBleHRl bnNpb24uCisqIGZpeGVkIHhtbHJwYyB3aWtpLmxpc3RMaW5rcyBtZXRob2Q6ICJuYW1lIiA9PiAi cGFnZSIgcGFyYW0KKyogZml4ZWQgeG1scnBjIHNlY3VyaXR5IG5vdCB1c2luZyBldmFsIG9uIHVz ZXJjb2RlIGFueW1vcmUKKyogZml4ZWQgfldpa2lBZG1pblV0aWxzIGJlaGF2aW91ciBvbiBQT1NU CisqIGZpeGVkIHN0cmljdCBsb2dpbiBvbiAiRGIiIChieSBNaWtoYWlsIFZsYWRpbWlyb3YpCisq IG1vcmUgL3RtcCB3YXJuaW5ncyBvbiBmbGF0ZmlsZSAoYnkgSm9lbCBVY2tlbG1hbikKKworPT09 IENoYW5nZXMgPT09CisqIH5XaWtpQWRtaW5TZXRBY2wgZnVuY3Rpb25hbAorKiBlbmFibGVkIFBo cFdpa2k6UGFnZVBlcm1pc3Npb25zIGZvciBhbGwgYWRtaW4gcGx1Z2lucyAobm8gYWRtaW4gcmVx dWlyZWQpOgorICBSZW1vdmUsIFJlbmFtZSwgUmVwbGFjZSwgflNldEFjbCwgQ2hvd24KKyogcmVu YW1lZCBEQl9TZXNzaW9uLnBocCB0byB+RGJTZXNzaW9uLnBocCBhbmQgbW92ZWQgbGlicyB0byBh IHN1YmRpcgorKiBuZXcgRXJyb3Itc3R5bGUgd2l0aCBjb2xsYXBzZWQgb3V0cHV0IG9mIHJlcGVh dGVkIG1lc3NhZ2VzCisqIHdoaXRlc3BhY2UgdHJpbSBwYWdlbmFtZXMgdG8gYXZvaWQgYWJ1c2UK Kyogbm8gZG91YmxlIGxvZ2luIHBhZ2UgaGVhZGVyLCBiZXR0ZXIgbG9naW4gbXNnLgorKiBpbXBy b3ZlZCB+RmlsZUZpbmRlciBpbmNsdWRlX3BhdGggbG9naWMgKH5ub3JtYWxpemVMb2NhbEZpbGVO YW1lLCAuLi4pCisqKiBpbml0IGdsb2JhbCB+RmlsZUZpbmRlciB0byBhZGQgcHJvcGVyIGluY2x1 ZGUgcGF0aHMgYXQgc3RhcnR1cAorICAgYWRkcyBQSFBXSUtJX0RJUiB0byB0aGUgZnJvbnQgaWYg c3RhcnRlZCBmcm9tIGFub3RoZXIgZGlyLCBsaWIvcGVhciB0byB0aGUgZW5kLgorKiogZml4IHNs YXNoaWZ5IGZvciBXaW5kb3dzCisqIGNoZWNrIG1vcmUgY29uZmlnLWRlZmF1bHQgYW5kIHByZWRl ZmluZWQgY29uc3RhbnRzCisqIH5BdXRvU3BsaXQgcGFnZW5hbWVzIGF0IHN1YnBhZ2Ugc2VwYXJh dG9ycywgZXNwIGZvciBTaWRlYmFyIHRoZW1lCisqIGltcHJvdmUgUGFnZWxpc3QgbGF5b3V0IGJ5 IGVxdWFsIHBhZ2VuYW1lIHdpZHRoIGZvciBsaW1pdGVkIGxpc3RzCisqIGFkZGVkIENQQU4sIH5P c0ZhcTIsIH5XaWtpTGVucyB0byBpbnRlcndpa2kubWFwCisqIH5FeHRlcm5hbFNlYXJjaFBsdWdp biB1c2VpbWFnZSBhcmcgKFJGRSAjOTUyMzIzKQorKiBzaW1wbGlmaWVkIHNvbWUgc3RyaW5ncyBm b3IgZWFzaWVyIHRyYW5zbGF0aW9uCisqIGFkZGVkIGhhc2ggYW5kIG9iamVjdCBzdXBwb3J0IGZv ciB+U2Vzc2lvblBhc3NVc2VyIHVzZXJpZCBzZXNzaW9uIHZhcmlhYmxlCisqIGF1dGggcGFnZT0+ REIgflBhc3NVc2VyIHVwZ3JhZGU6IGRlbGV0ZSBleGlzdGluZyBQYWdlIHByZWZzLCBpZiBEYiBw cmVmcyBhcmUgc2F2ZWQuCisqIHZhc3RseSBpbXByb3ZlZCBmcmVuY2ggbG9jYWxlIHN1cHBvcnQs IHdoaWNoIGlzIG5vdyBjb21wbGV0ZSAoYnkgUGllcnJpY2sgTWVpZ25lbikuCisgIGVuZ2xpc2gs IGdlcm1hbiBhbmQgZnJlbmNoIGFyZSBub3cgY29tcGxldGVseSB0cmFuc2xhdGVkLiBUaGUgb3Ro ZXJzIHBhcnRpYWxseS4KKyogaW1wcm92ZWQgflNldHVwV2lraSAodmlyZ2luIHNldHVwKSBsb2Fk aW5nIGFsbCByZXF1aXJlZCBhY3Rpb24gcGFnZXMgaW4gZW5nbGlzaCwKKyAgaWYgbm8gZm9yZWln biB0cmFuc2xhdGlvbiBmb3VuZCAoYnkgUGllcnJpY2sgTWVpZ25lbikKKyogc2hvdyBSZWxhdGVk Q2hhbmdlcyBvbmx5IGlmIG1pbmltdW0gdHdvIGxpbmtzIG9uIHRoZSBjdXJyZW50IHBhZ2UuCisq IFBhZ2VEdW1wOiB+Vmlld1NvdXJjZSBsaW5rLCBiZXR0ZXIgYWN0aW9ucGFnZSB1c2FnZSwgTWVz c2FnZUlEIFRaCisqIGJyb3VnaHQgfldpa2lVc2VyIChvbGQpIHVwdG9kYXRlCisqIGFkZGVkIG93 bmVyIGFuZCBhY2wgZmllbGRzIHRvIGR1bXBzCisqIGltcG9ydCBHT09HTEVfTElDRU5TRV9LRVkg YW5kIEZPUlRVTkVfRElSIGZyb20gY29uZmlnLmluaQorKiByZW5hbWVkIGdsb2JhbCAkVGhlbWUg dG8gJH5XaWtpVGhlbWUgKEdmb3JnZSBuYW1lY2xhc2gpCisqIGFnZ3Jlc3NpdmUgV2lraURCIGFu ZCBjYWNoZSBtZW1vcnkgb3B0aW1pemF0aW9uOiBkb24ndCBjYWNoZSAlY29udGVudAorICBhbmQg X2NhY2hlZF9odG1sIGlmIG5vdCBuZWVkZWQuCisqIFBhZ2VEdW1wIGFkZGVkIGZvcm1hdD1iYWNr dXA6IGR1bXAgYWxsIHJldmlzaW9ucy4KKyogZm9yY2UgbXlzcWwgdG8gdXNlIGF1dG9faW5jcmVt ZW50IHBhZ2UuaWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuCisgIGNhbGwgP2FjdGlvbj11cGdy YWRlCisqIGV4dGVuZGVkIGFsbCBwbHVnaW5zIHdoaWNoIHRha2UgInBhZ2VzIiBhbmQgImV4Y2x1 ZGUiIHBhcmFtcyB0byBhY2NlcHQKKyAgPCFwbHVnaW4tbGlzdCAhPiBwYWdlbGlzdHMKKyogZW5h YmxlZCBsaW1pdCwgZXhjbHVkZSBhbmQgc29ydGJ5IH5QYWdlTGlzdCBvcHRpb25zIGZvciBhbG1v c3QgYWxsIGRiIGJhY2tlbmRzIG5hdGl2ZWx5CisqIGltcHJvdmVkIH5TcWxSZXN1bHQ6IHRlbXBs YXRlcyBhbmQgdmFyaWFibGUgZXhwYW5zaW9uLgorICBhdXRvbWF0aWMgcGFnaW5nIG5vdCB5ZXQu CisqIHVzZSBsYXRlc3QgUGVhciBEQiBmZWF0dXJlcywgd2hpY2ggd2lsbCBicmVhayBvbiBvbGRl ciBQZWFyREIgbGlicy4KKyAgKGVzY2FwZVNpbXBsZSkuIFVzZSBJTkNMVURFX1BBVEggdG8gb3Zl cnJpZGUuCisqIElOQ0xVREVfUEFUSCBpcyBub3cgcHJlcGVuZGVkLCBub3QgYXBwZW5kZWQuIFBI UFdJS0lfRElSIGlzIGZvcmNlZCB0byBiZSBmaXJzdC4KKyogcmV3cm90ZSB+T2xkVGV4dEZvcm1h dHRpbmdSdWxlcywgfkFuY2llbm5lc35SJUU4Z2xlc35EZUZvcm1hdGFnZQorICBmb3IgcHJvcGVy IGltcG9ydGluZyAoUENSRSttZW1vcnkgcmVsYXRlZCBjcmFzaGVzIG9uIG9sZGVyIHBocCdzKQor KiBhZGRlZCBleHRyYSBwYWdlLmNhY2hlZF9odG1sIGNvbHVtbi4gP2FjdGlvbj11cGdyYWRlIG9y IFBocFdpa2lBZG1pbmlzdHJhdGlvbgorICAiQ29udmVydCBjYWNoZWRfaHRtbCIgaXMgbmVlZGVk IHRvIGNvbnZlcnQgeW91ciBvbGQgcGFnZWRhdGEgIl9jYWNoZWRfaHRtbCIuCisqIHBhZ2UgZGVs ZXRpb24gaXMgbm93IHVuZG9hYmxlIGFuZCBiZWluZyBzZWVuIGluIFJlY2VudENoYW5nZXMuIFB1 cmdlIHBhZ2VzCisgIGJ5IG5ldyBhZG1pbiBidXR0b24uCisqIHppcGR1bXAgYW5kIGR1bXBodG1s IGNvbnRhaW5zIG5vdyBpbWFnZXMsIGJ1dHRvbnMgYW5kIGNzcworKiBpbXByb3ZlZCBffldpa2lU cmFuc2xhdGlvbiBwZXJmb3JtYW5jZSB3aXRoIGdldHRleHQgZXh0ZW5zaW9uCisqIG1vdmVkIH5E YlNlc3Npb24gbWV0aG9kcyB0byBleHRyYSBmaWxlcyBhcyB3aXRoIH5XaWtpVXNlciBmaWxlcy4K KyogY2hhbmdlZCBjb25maWcuaW5pIG9wdGlvbnM6CisgIEtFWVdPUkRTOiAiQ2F0ZWdvcnk6VG9w aWMiID0+ICJDYXRlZ29yeSogT1IgVG9waWMqIiwKKyAgS0VZV09SRF9MSU5LX1JFR0VYUCByZW1v dmVkLAorKiBhY3Rpb249ZHVtcGh0bWwgZHVtcHMgb25seSB0aGUgY3VycmVudCBwYWdlIHVubGVz cyBkb25lIGZyb20gUGhwV2lraUFkbWluaXN0cmF0aW9uCisKKz09PSBOZXcgPT09CisqIG5ldyBF TkFCTEVfRURJVF9UT09MQkFSIChmcm9tIG1lZGlhd2lraSksIEpTX1NFQVJDSFJFUExBQ0UsCisg IH5BZGRDYXRlZ29yeSwgfkFkZFBsdWdpbiBidXR0b25zCisqIG5ldyBvdGhlciBjb25maWcgb3B0 aW9uczoKKyoqIEVOQUJMRV9QQUdFUEVSTSB0byB0dXJuIG9mZiBBQ0wgKG5vIG93bmVyIGF0IHRo ZSBzdGF0dXNsaW5lIGlmIG9mZikKKyoqIEZPUlRVTkVfRElSIHRvIGVuYWJsZSByYW5kb20gcXVv dGVzIGZvciBuZXcgcGFnZXMKKyoqIEdPT0dMRV9MSU5LU19OT0ZPTExPVywgQUNDRVNTX0xPR19T UUwsIEJBQllDQVJUX1BBVEgsIEJMT0dfREVGQVVMVF9FTVBUWV9QUkVGSVgsCisgICAgQ0FURUdP UllfR1JPVVBfUEFHRSwgREFUQUJBU0VfUEVSU0lTVEVOVCwgREJBRE1JTl9QQVNTV0QsIERCQURN SU5fVVNFUiwKKyAgICBERUZBVUxUX0RVTVBfRElSLCBESVNBQkxFX0dFVElNQUdFU0laRSwgRU5B QkxFX0RPVUJMRUNMSUNLRURJVCwKKyAgICBFTkFCTEVfTElWRVNFQVJDSCwgRU5BQkxFX01PREVS QVRFRFBBR0VfQUxMLCBFTkFCTEVfUkFXX0hUTUxfTE9DS0VET05MWSwKKyAgICBFTkFCTEVfUkFX X0hUTUxfU0FGRSwgRU5BQkxFX1NQQU1BU1NBU1NJTiwgRU5BQkxFX1hIVE1MX1hNTCwKKyAgICBH T09HTEVfTElDRU5TRV9LRVksIEhUTUxfRFVNUF9ESVIsIExEQVBfT1VfR1JPVVAsIExEQVBfT1Vf VVNFUlMKKyAgICBQTFVHSU5fQ0FDSEVEX0NBQ0hFX0RJUiwgUExVR0lOX0NBQ0hFRF9EQVRBQkFT RSwgUExVR0lOX0NBQ0hFRF9GSUxFTkFNRV9QUkVGSVgsCisgICAgUExVR0lOX0NBQ0hFRF9GT1JD RV9TWU5DTUFQLCBQTFVHSU5fQ0FDSEVEX0hJR0hXQVRFUiwKKyAgICBQTFVHSU5fQ0FDSEVEX0lN R1RZUEVTLCBQTFVHSU5fQ0FDSEVEX0xPV1dBVEVSLCBQTFVHSU5fQ0FDSEVEX01BWEFSR0xFTiwK KyAgICBQTFVHSU5fQ0FDSEVEX01BWExJRkVUSU1FLCBQTFVHSU5fQ0FDSEVEX1VTRUNBQ0hFLCBU RU1QX0RJUiwgVVNFQ0FDSEUsCisgICAgVVNFX0VYVEVSTkFMX0hUTUwyUERGLCBFTkFCTEVfTUFS S1VQX0NPTE9SLCBFTkFCTEVfTUFSS1VQX1RFTVBMQVRFCisqIGltcGxlbWVudGVkIFdpa2lEQiBw YWdlIGNyZWF0b3IgYW5kIG93bmVyc2hpcAorKiBhZGRlZCBwYWdpbmcgc3VwcG9ydCBmb3Igc2lt cGxlIG9uZS1jb2x1bW4gcGFnZWxpc3RzCisqIGFkZGVkIG5ldyB+UGFnZUxpc3Qgb3B0aW9uczog Y29scywgYXpoZWFkLCBjb21tYSwgY29tbWFzZXAsIG9yZGVyZWQgYW5kIGVuYWJsZWQgdGhlIG5l dyBhcmdzIG9uIG1vc3QgcGx1Z2lucy4KKyogbmV3IHBhZ2VuYW1lIHV0ZjggZGV0ZWN0aW9uIGxv Z2ljIChmcm9tIG1lZGlhd2lraSkKKyogYWRkZWQgYWN0aW9uIHJldmVydCwgd2l0aCBidXR0b24g ZnJvbSBhY3Rpb249ZGlmZgorKiBhZGRlZCBuZXcgPCFwbHVnaW4tbGlzdCB+UGx1Z2luTmFtZSBh cmdzIT4gc3ludGF4IHdpdGhpbiBwbHVnaW4gYXJncworKiBuZXcgcGx1Z2luIH5JbmNsdWRlUGFn ZXMsIGVzcC4gZm9yIDwhcGx1Z2luLWxpc3QgIT4KKyogYWRkZWQgdGVtcGxhdGUgdmFyaWFibGUg ZXhwYW5zaW9uIHN1cHBvcnQgdG8gdGhlIH5DcmVhdGVQYWdlUGx1Z2luCisqIH5XaWtpU3BhbSBw cmV2ZW50aW9uOgorKiogT24gR09PR0xFX0xJTktTX05PRk9MTE9XIGFkZCByZWw9bm93Zm9sbG93 IHRvIGFsbCBleHRlcm5hbCBsaW5rcywgdW5sZXNzIHRoZSBhdXRob3Igd2FzIGF1dGhlbnRpY2F0 ZWQuCisqKiBtYXggMjAgbmV3IGxpbmtzIGhhcmRjb2RlZAorKiogbmV3IGJhYnljYXJ0IG1vZHVs ZSBpbnRlcmZhY2luZyB+U3BhbUFzc2Fzc2luCisqIGFkZGVkIH5XaWtpUGx1Z2luQ2FjaGVkIHN1 cHBvcnQgZm9yIGltYWdlIG1hcHMsIHN0YXRpYyBjYWNoZSBpbiB1cGxvYWRzLyBhbmQgU1ZHCisq IGFkZGVkIGNhc2Utc2Vuc2l0aXZlL2luc2Vuc2l0aXZlIGFuZCByZWdleCBzZWFyY2hpbmcsIHJl cGxhY2UgYWxzbworKiBhZGRlZCBhY3Rpb249cGRmOiBvbmx5IHBhZ2UgZm9ybWF0dGVyIG1pc3Np bmcsIHVzZSBVU0VfRVhURVJOQUxfSFRNTDJQREYgaW5zdGVhZAorKiBuZXcgflhtbFBhcnNlciwg fkh0bWxQYXJzZXI6IG5ldyBsaWJzIGZvciBIVE1MLT53aWtpIGltcG9ydCBhbmQgaHRtbGFyZWEz IHN1cHBvcnQKKyogbmV3IGFjdGlvbj1jaG93bnxzZXRhY2x8cmVuYW1lfGR1bXAgYWN0aW9uIHNo b3J0Y3V0cyBwb2ludGluZyB0byB0aGUgcGx1Z2luCisqIG5ldyB+U3ludGF4SGlnaGxpZ2h0ZXIg cGx1Z2luIChiYXNlZCBvbiB3b3JrIGJ5IGFsZWN0aG9tYXMpLAorICBuZWVkcyBoaWdobGlnaHQg ZnJvbSBodHRwOi8vd3d3LmFuZHJlLXNpbW9uLmRlLworKiBuZXcgflBsb3RpY3VzUGx1Z2luLiBG dWxsIGFwcGxpY2F0aW9uL3hodG1sK3htbCBzdXBwb3J0IG5vdCB5ZXQKKyAgKGphdmFzY3JpcHQg ZG9jdW1lbnQud3JpdGUoKSBub3Qgc3VwcG9ydGVkIHdpdGggRU5BQkxFX1hIVE1MX1hNTCkKKyog bmV3IH5MaXN0UGFnZXMgcGx1Z2luIChieSBEYW4gRnJhbmtvd3NraSkKKyogbmV3IH5UZVgycG5n UGx1Z2luIChieSBQaWVycmljayBNZWlnbmVuKQorKiBhZGRlZCBzdXBwb3J0IGZvciA/Zm9yY2Vf dW5sb2NrPTEgcGFyYW1ldGVyIGZvciBzdGFsZSBGaWxlX1Bhc3N3ZCBsb2NrcworICAoc2hvdWxk IG5vdCBiZSBuZWVkZWQgYW55bW9yZSwgd2UgbG9jayBvbmx5IHdoZW4gd2UgYWN0dWFsbHkgY2hh bmdlIHRoZSBwYXNzd2QpCisqIGFkZGVkIG15c3FsLTQuMSBmaXggYXQgYWN0aW9uPXVwZ3JhZGUs CisgIGFkZGVkIENBQ0hFX0NPTlRST0wgTk9ORSA9PiBOT19DQUNIRSBjb25maWcuaW5pIGZpeCB0 byBhY3Rpb249dXBncmFkZQorKiBhdXRob3IsIG93bmVyLCBjcmVhdG9yIHN1cHBvcnQgZm9yIH5X aWtpQWRtaW4qIGFuZCBBbGxQYWdlcyBwbHVnaW5zOgorKiogQWxsUGFnZXNDcmVhdGVkQnlNZSwg QWxsUGFnZXNMYXN0RWRpdGVkQnlNZSwgQWxsUGFnZXNPd25lZEJ5TWUKKyogYWRkZWQgb3B0aW9u IHJlZ2V4IHRvIH5XaWtpQWRtaW5TZWFyY2hSZXBsYWNlIGFuZCB+V2lraUFkbWluUmVuYW1lCisq IGFkZGVkIG9yYWNsZSBQZWFyREIgYmFja2VuZCAoYnkgUGhpbGlwcGUgVmFuaGFlc2VuZG9uY2sp CisqIGFkZGVkIGV4cGVyaW1lbnRhbCBTZWFyY2hIaWdobGlnaHQgZmVhdHVyZSAobm90IGZvciBI VE1MIHlldCkKKyogYWRkZWQgZXhwZXJpbWVudGFsIH5MaXZlU2VhcmNoIGZlYXR1cmUKCkBAIERp ZmYgb3V0cHV0IHRydW5jYXRlZCBhdCAxMDAwMDAgY2hhcmFjdGVycy4gQEAKVGhpcyB3YXMgc2Vu dCBieSB0aGUgU291cmNlRm9yZ2UubmV0IGNvbGxhYm9yYXRpdmUgZGV2ZWxvcG1lbnQgcGxhdGZv cm0sIHRoZSB3b3JsZCdzIGxhcmdlc3QgT3BlbiBTb3VyY2UgZGV2ZWxvcG1lbnQgc2l0ZS4KCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcGhwd2lraS1j aGVja2lucyBtYWlsaW5nIGxpc3QKcGhwd2lraS1jaGVja2luc0BsaXN0cy5zb3VyY2Vmb3JnZS5u ZXQKaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vcGhwd2lraS1j aGVja2lucwo=