看板 FB_announce 關於我們 聯絡資訊
RnJlZUJTRCBRdWFydGVybHkgU3RhdHVzIFJlcG9ydCwgT2N0b2Jlci1EZWNlbWJlciAyMDEzCgpJ bnRyb2R1Y3Rpb24KCiAgIFRoaXMgcmVwb3J0IGNvdmVycyBGcmVlQlNELXJlbGF0ZWQgcHJvamVj dHMgYmV0d2VlbiBPY3RvYmVyIGFuZAogICBEZWNlbWJlciAyMDEzLiBUaGlzIGlzIHRoZSBsYXN0 IG9mIGZvdXIgcmVwb3J0cyBwbGFubmVkIGZvciAyMDEzLgoKICAgVGhlIGxhc3QgcXVhcnRlciBv ZiAyMDEzIHdhcyB2ZXJ5IGFjdGl2ZSBmb3IgdGhlIEZyZWVCU0QgY29tbXVuaXR5LAogICBtdWNo IGxpa2UgdGhlIHByZWNlZGluZyBxdWFydGVycy4gTWFueSBhZHZhbmNlcyB3ZXJlIG1hZGUgaW4g Z2V0dGluZwogICBGcmVlQlNEIHRvIHJ1biBvbiBBUk0tYmFzZWQgU3lzdGVtLW9uLUNoaXAgYm9h cmRzIGxpa2UgQ3ViaWVib2FyZCwKICAgUm9ja2NoaXAsIFNuYXBkcmFnb24sIFM0LCBGcmVlc2Nh bGUgaS5NWDYgYW5kIFZ5YnJpZCBWRjZ4eC4gRnJlZUJTRCBpcwogICBhbHNvIGJlY29taW5nIGEg YmV0dGVyIHBsYXRmb3JtIGZvciBYZW4gYW5kIHRoZSBBbWF6b24gRWxhc3RpYyBDb21wdXRlCiAg IENsb3VkLiBUaGVyZSBhcmUgcGxhbnMgZm9yIEZyZWVCU0QgdG8gYmVjb21lIGEgZnVsbHkgc3Vw cG9ydGVkIGNvbXB1dGUKICAgaG9zdCBmb3IgT3BlblN0YWNrLiBUaGUgSS9PIHN0YWNrIGhhcyBh Z2FpbiByZWNlaXZlZCBzb21lIHBlcmZvcm1hbmNlCiAgIGJvb3N0cyBvbiBtdWx0aS1wcm9jZXNz b3Igc3lzdGVtcyB0aHJvdWdoIHdvcmsgdG91Y2hpbmcgdGhlIENBTSBhbmQKICAgR0VPTSBzdWJz eXN0ZW1zLCBhbmQgdGhyb3VnaCBiZXR0ZXIgYWRhcHRhdGlvbiBvZiBVTUEgY2FjaGVzIHRvIHN5 c3RlbQogICBtZW1vcnkgY29uc3RyYWludHMgZm9yIFpGUy4gVGhlIEZyZWVCU0QgRm91bmRhdGlv biBkaWQgYW4gZXhjZWxsZW50IGpvYgogICBpbiB0aGlzIHF1YXJ0ZXIsIGFuZCBtYW55IG9mIHRo ZWlyIHNwb25zb3JlZCBwcm9qZWN0cyBsaWtlIFZULWQgYW5kCiAgIFVFRkkgc3VwcG9ydCwgaVND U0kgc3RhY2ssIENhcHNpY3VtLCBhbmQgYXVkaXRkaXN0ZCBhcmUgYWJvdXQgdG8KICAgY29tcGxl dGUuIEF0IHRoZSBzYW1lIHRpbWUsIG5ldyBwcm9qZWN0cyBsaWtlIEF1dG9tb3VudGVyIGFuZCBJ bnRlbCBHUFUKICAgdXBkYXRlcyBoYXZlIGp1c3QgYmVlbiBsYXVuY2hlZC4gVGhlIE5ld2NvbnMg cHJvamVjdCBoYXMgYmVlbiBtZXJnZWQKICAgaW50byAtQ1VSUkVOVCwgd2hpY2ggd2lsbCBtYWtl IGl0IHBvc3NpYmxlIHRvIGZpbmFsbHkgbW92ZSB0byB0aGUKICAgbGF0ZXN0IHZlcnNpb24gb2Yg WC5PcmcgaW4gdGhlIFBvcnRzIENvbGxlY3Rpb24uIEVmZm9ydHMgYXJlIGFsc28gdW5kZXIKICAg d2F5IHRvIGltcHJvdmUgdGVzdGluZyB3aXRoIEplbmtpbnMgYW5kIEt5dWEuIEl0IGlzIGFuIGV4 Y2l0aW5nIHRpbWUKICAgZm9yIHVzZXJzIGFuZCBkZXZlbG9wZXJzIG9mIEZyZWVCU0QhCgogICBU aGFua3MgdG8gYWxsIHRoZSByZXBvcnRlcnMgZm9yIHRoZSBleGNlbGxlbnQgd29yayEgIFRoaXMg cmVwb3J0CiAgIGNvbnRhaW5zIDM3IGVudHJpZXMgYW5kIHdlIGhvcGUgeW91IGVuam95IHJlYWRp bmcgaXQuCgogICBUaGUgZGVhZGxpbmUgZm9yIHN1Ym1pc3Npb25zIGNvdmVyaW5nIGJldHdlZW4g SmFudWFyeSBhbmQgTWFyY2ggMjAxNCBpcwogICBBcHJpbCA3dGgsIDIwMTQuCiAgICAgX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCgpGcmVlQlNEIFRlYW0gUmVwb3J0cwoKICAgICAqIEZyZWVCU0QgQ2x1c3RlciBBZG1pbmlz dHJhdGlvbiBUZWFtCiAgICAgKiBGcmVlQlNEIENvcmUgVGVhbQogICAgICogRnJlZUJTRCBQb3J0 IE1hbmFnZW1lbnQgVGVhbQogICAgICogRnJlZUJTRCBQb3N0bWFzdGVyIFRlYW0KICAgICAqIEZy ZWVCU0QgUmVsZWFzZSBFbmdpbmVlcmluZyBUZWFtCgpQcm9qZWN0cwoKICAgICAqIENCU0QKICAg ICAqIEplbmtpbnMgQ29udGludW91cyBJbnRlZ3JhdGlvbiBmb3IgRnJlZUJTRAoKS2VybmVsCgog ICAgICogR0VPTSBEaXJlY3QgRGlzcGF0Y2ggYW5kIEZpbmUtR3JhaW5lZCBDQU0gTG9ja2luZwog ICAgICogSW50ZWwgODAyLjExbiBOSUMgKGl3big0KSkgV29yawogICAgICogSW50ZWwgR1BVIERy aXZlciBVcGRhdGUKICAgICAqIE5hdGl2ZSBpU0NTSSBTdGFjawogICAgICogTmV3IEF1dG9tb3Vu dGVyCiAgICAgKiBVRUZJIEJvb3QKICAgICAqIFVNQS9aRlMgYW5kIFJQQy9ORlMgUGVyZm9ybWFu Y2UgSW1wcm92ZW1lbnRzCiAgICAgKiBVcGRhdGVkIHZ0KDkpIFN5c3RlbSBDb25zb2xlCgpBcmNo aXRlY3R1cmVzCgogICAgICogRnJlZUJTRCBIb3N0IFN1cHBvcnQgZm9yIE9wZW5TdGFjayBhbmQg T3BlbkNvbnRyYWlsCiAgICAgKiBGcmVlQlNEIG9uIEN1YmllYm9hcmR7MSwyfQogICAgICogRnJl ZUJTRCBvbiBGcmVlc2NhbGUgaS5NWDYgcHJvY2Vzc29ycwogICAgICogRnJlZUJTRCBvbiBGcmVl c2NhbGUgVnlicmlkIFZGNnh4CiAgICAgKiBGcmVlQlNEIG9uIE5ld2VyIEFSTSBCb2FyZHMKICAg ICAqIEZyZWVCU0QvRUMyCiAgICAgKiBGcmVlQlNEL1hlbgogICAgICogSW50ZWwgSU9NTVUgKFZU LWQsIERNQVIpIFN1cHBvcnQKClVzZXJsYW5kIFByb2dyYW1zCgogICAgICogYXVkaXRkaXN0ZCg4 KQogICAgICogQmFzZSBHQ0MgVXBkYXRlcwogICAgICogQlNESW5zdGFsbCBaRlNCb290CiAgICAg KiBDYXBzaWN1bSBhbmQgQ2FzcGVyCiAgICAgKiBDZW50cmFsaXplZCBQYW5pYyBSZXBvcnRpbmcK ICAgICAqIEZyZWVCU0QgVGVzdCBTdWl0ZQogICAgICogVGhlIExMREIgRGVidWdnZXIKClBvcnRz CgogICAgICogRnJlZUJTRCBQeXRob24gUG9ydHMKICAgICAqIEdOT01FL0ZyZWVCU0QKICAgICAq IEtERS9GcmVlQlNECiAgICAgKiBXaW5lL0ZyZWVCU0QKICAgICAqIFguT3JnIG9uIEZyZWVCU0QK ICAgICAqIFhmY2UvRnJlZUJTRAoKTWlzY2VsbGFuZW91cwoKICAgICAqIFRoZSBGcmVlQlNEIEZv dW5kYXRpb24KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KCkZyZWVCU0QgQ2x1c3RlciBBZG1pbmlzdHJhdGlvbiBU ZWFtCgogICBDb250YWN0OiBGcmVlQlNEIENsdXN0ZXIgQWRtaW5pc3RyYXRpb24gVGVhbSA8YWRt aW5zQD4KCiAgIFRoZSBGcmVlQlNEIENsdXN0ZXIgQWRtaW5pc3RyYXRpb24gVGVhbSBjb25zaXN0 cyBvZiB0aGUgcGVvcGxlCiAgIHJlc3BvbnNpYmxlIGZvciBhZG1pbmlzdGVyaW5nIHRoZSBtYWNo aW5lcyB0aGF0IHRoZSBwcm9qZWN0IHJlbGllcyBvbgogICBmb3IgaXRzIGRpc3RyaWJ1dGVkIHdv cmsgYW5kIGNvbW11bmljYXRpb25zIHRvIGJlIHN5bmNocm9uaXNlZC4gSW4gdGhlCiAgIGxhc3Qg cXVhcnRlciBvZiAyMDEzLCB0aGV5IGNvbnRpbnVlZCBnZW5lcmFsIG1haW50ZW5hbmNlIG9mIHRo ZSBGcmVlQlNECiAgIGNsdXN0ZXIgYWNyb3NzIGFsbCBzaXRlcy4KCiAgIEluIGFkZGl0aW9uIHRv IGdlbmVyYWwgdXBrZWVwIHRhc2tzLCBhZGRpdGlvbmFsIGNsdXN0ZXItcmVsYXRlZCBpdGVtcwog ICB3ZXJlIGFkZHJlc3NlZC4gU29tZSBvZiB0aGVzZSBpdGVtcyBpbmNsdWRlOgoKICAgICAqIEFk ZGVkIHNldmVyYWwgbWFjaGluZXMgZm9yIHRoZSBLeXVhIHRlc3RpbmcgZnJhbWV3b3JrLgogICAg ICogUmVwbGFjZWQgZmFpbGVkIGhhcmR3YXJlIGhvc3RpbmcgdmFyaW91cyB3ZWIgc2VydmljZXMu CiAgICAgKiBDb29yZGluYXRlZCB3aXRoIHRoZSBGcmVlQlNEIFNlY3VyaXR5IE9mZmljZXIgYW5k IFBvcnRzIE1hbmFnZW1lbnQKICAgICAgIFRlYW1zIHRvIGltcGxlbWVudCBzaWduZWQgYmluYXJ5 IHBhY2thZ2VzLgogICAgICogQWRkZWQgdGhlIHJlZHBvcnRzLm9yZyBtYWNoaW5lcyB0byB0aGUg bGlzdCBvZiBtYWNoaW5lcyBtYW5hZ2VkIGJ5CiAgICAgICB0aGUgQ2x1c3RlciBBZG1pbmlzdHJh dGlvbiBUZWFtLgogICAgICogQmVnYW4gZGlzY3Vzc2lvbiB3aXRoIGNvbnRhY3RzIGF0IFlhbmRl eCByZWdhcmRpbmcgdGhlIGFkZGl0aW9uIG9mCiAgICAgICBhIG1pcnJvciBzaXRlIGZvciBiaW5h cnkgcGFja2FnZXMgYW5kIFN1YnZlcnNpb24gcmVwb3NpdG9yaWVzLgogICAgIF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoK RnJlZUJTRCBDb3JlIFRlYW0KCiAgIENvbnRhY3Q6IEZyZWVCU0QgQ29yZSBUZWFtIDxjb3JlQEZy ZWVCU0Qub3JnPgoKICAgVGhlIEZyZWVCU0QgQ29yZSBUZWFtIGNvbnN0aXR1dGVzIHRoZSBwcm9q ZWN0J3MgIkJvYXJkIG9mIERpcmVjdG9ycyIsCiAgIHJlc3BvbnNpYmxlIGZvciBkZWNpZGluZyB0 aGUgcHJvamVjdCdzIG92ZXJhbGwgZ29hbHMgYW5kIGRpcmVjdGlvbiBhcwogICB3ZWxsIGFzIG1h bmFnaW5nIHNwZWNpZmljIGFyZWFzIG9mIHRoZSBGcmVlQlNEIHByb2plY3QgbGFuZHNjYXBlLgoK ICAgSW4gdGhlIGZvdXJ0aCBxdWFydGVyIG9mIDIwMTMsIHRoZSBDb3JlIFRlYW0gZmluYWxseSBy ZWFjaGVkIGl0cwogICBwcmV2aW91cyBnb2FsIG9mIGxhdW5jaGluZyB0aGUgb2ZmaWNpYWwgcmVw b3NpdG9yaWVzIGZvciBwa2coOCktYmFzZWQKICAgYmluYXJ5IHBhY2thZ2VzLiBUaGUgQ29yZSBU ZWFtIGFsc28gdW5pZmllZCB0aGUgY29tbWl0IGJpdCBleHBpcmF0aW9uCiAgIHBvbGljaWVzIGZv ciBhbGwgUHJvamVjdCByZXBvc2l0b3JpZXMsIGFsbG93aW5nIGNvbW1pdHRlcnMgdG8gaWRsZSBm b3IKICAgMTggbW9udGhzIGJlZm9yZSB0aGVpciBjb21taXQgYml0cyBhcmUgYXV0b21hdGljYWxs eSB0YWtlbiBpbnRvCiAgIHNhZmVrZWVwaW5nLiBUaGlzIHdhcyB0aGVuIGZvbGxvd2VkIGJ5IGFu IGV4dGVuc2lvbiB0byBzdXNwZW5zaW9uIG9mCiAgIGNsdXN0ZXIgYWNjb3VudHMgZm9yIHRoZSBj b21taXR0ZXJzIHdobyBsb3N0IGFsbCBvZiB0aGVpciBjb21taXQgYml0cy4KICAgVGhpcyBoZWxw cyB0byBpbXByb3ZlIHRoZSBzZWN1cml0eSBvZiB0aGUgUHJvamVjdCBzZXJ2ZXIgY2x1c3RlciBi eQogICB0ZW1wb3JhcmlseSBkaXNhYmxpbmcgaW5hY3RpdmUgYWNjb3VudHMuIEluIGFkZGl0aW9u IHRvIHRoZSBhYm92ZQogICBlZmZvcnRzLCBUaG9tYXMgQWJ0aG9ycGUgcmVzdXJyZWN0ZWQgdGhl ICJHcmltIFJlYXBlciIgc2VydmljZSB3aGljaAogICBoZWxwcyB0byBlbmZvcmNlIHRoZSBhZm9y ZW1lbnRpb25lZCBwb2xpY3kuCgogICBXaXRoIHRoZSB3b3JrIG9mIEpvaG4gQmFsZHdpbiwgSGly b2tpIFNhdG8sIGFuZCBvdGhlcnMsIG1hbnkgbGljZW5zZXMKICAgaW4gdGhlIGJhc2Ugc3lzdGVt IHNvdXJjZSBjb2RlIGhhdmUgYmVlbiByZXZpc2l0ZWQgYW5kIGNsZWFuZWQgdXAuCiAgIEZ1cnRo ZXJtb3JlLCB0aGUgQ29yZSBUZWFtIGlzIGhvcGluZyB0aGF0IHRoZSBzaXR1YXRpb24gY2FuIGJl IGltcHJvdmVkCiAgIGJ5IGludHJvZHVjaW5nIHBlcmlvZGljIGF1dG9tYXRlZCBjaGVja3Mgb2Yg dGhlIGxpY2Vuc2UgYWdyZWVtZW50cywgYW5kCiAgIGJ5IHByb3ZpZGluZyBkZXZlbG9wZXJzIGd1 aWRlbGluZXMgb24gcXVlc3Rpb25zIG9mIGxpY2Vuc2luZy4gSm9obgogICBCYWxkd2luIGFuZCBE YXZpZCBDaGlzbmFsbCBoYXZlIGJlZW4gZ3VpZGluZyB0aGUgd29yayBvZiB0aGUgRnJlZUJTRAog ICBHcmFwaGljcyBUZWFtIG9uIG1vdmluZyB0byB0aGUgbmV3ZXIgdmVyc2lvbiBvZiBYLk9yZyBh bmQgcmVsYXRlZAogICBzb2Z0d2FyZSBpbiB0aGUgUG9ydHMgQ29sbGVjdGlvbiwgaW4gY29vcmRp bmF0aW9uIHdpdGggdGhlIHN3aXRjaCB0bwogICBOZXdjb25zIG9uIEZyZWVCU0QgMTAueC4KCiAg IEl0IHdhcyBhIGJ1c3kgcXVhcnRlciBmb3IgdGhlIHNyYyByZXBvc2l0b3J5IGFzIHdlbGwuIFRo ZSBDb3JlIFRlYW0gd2FzCiAgIGhhcHB5IHRvIHdlbGNvbWUgSm9yZGFuIEsuIEh1YmJhcmQgKGpr aCkgYmFjayB3aG8gaGFzIHJlY2VudGx5IHJldHVybmVkCiAgIHRvIHRoZSBGcmVlQlNEIGJ1c2lu ZXNzLCBhbmQgam9pbmVkIGlYc3lzdGVtcyBhcyBwcm9qZWN0IG1hbmFnZXIgYW5kCiAgIHJlbGVh c2UgZW5naW5lZXIgb2YgRnJlZU5BUy4gSW4gYWRkaXRpb24gdG8gdGhpcywgdGhlcmUgd2VyZSAz IGNvbW1pdAogICBiaXRzIG9mZmVyZWQgZm9yIG5ldyBkZXZlbG9wZXJzLCAyIGNvbW1pdHRlcnMg d2VyZSB1cGdyYWRlZCwgMSBjb21taXQKICAgYml0IHdhcyB0YWtlbiBmb3Igc2FmZWtlZXBpbmcs IGFuZCAxIHNyYyBiaXQgd2FzIHJlYWN0aXZhdGVkLgogICAgIF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKRnJlZUJTRCBQ b3J0IE1hbmFnZW1lbnQgVGVhbQoKICAgVVJMOiBodHRwOi8vd3d3LkZyZWVCU0Qub3JnL3BvcnRz LwogICBVUkw6IGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvZG9jL2VuL2FydGljbGVzL2NvbnRyaWJ1 dGluZy1wb3J0cy8KICAgVVJMOiBodHRwOi8vcG9ydHNtb24uZnJlZWJzZC5vcmcvaW5kZXguaHRt bAogICBVUkw6IGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvcG9ydG1nci9pbmRleC5odG1sCiAgIFVS TDogaHR0cDovL2Jsb2dzLmZyZWVic2Rpc2gub3JnL3BvcnRtZ3IvCiAgIFVSTDogaHR0cDovL3d3 dy50d2l0dGVyLmNvbS9mcmVlYnNkX3BvcnRtZ3IvCiAgIFVSTDogaHR0cDovL3d3dy5mYWNlYm9v ay5jb20vcG9ydG1ncgogICBVUkw6IGh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vY29tbXVuaXRpZXMv MTA4MzM1ODQ2MTk2NDU0MzM4MzgzCgogICBDb250YWN0OiBGcmVlQlNEIFBvcnQgTWFuYWdlbWVu dCBUZWFtIDxwb3J0bWdyQEZyZWVCU0Qub3JnPgoKICAgVGhlIEZyZWVCU0QgUG9ydHMgY29sbGVj dGlvbiBpcyBhIHBhY2thZ2UgbWFuYWdlbWVudCBzeXN0ZW0gZm9yIHRoZQogICBGcmVlQlNEIG9w ZXJhdGluZyBzeXN0ZW0sIHByb3ZpZGluZyBhbiBlYXN5IGFuZCBjb25zaXN0ZW50IHdheSBvZgog ICBpbnN0YWxsaW5nIHNvZnR3YXJlIHBhY2thZ2VzLiBUaGUgRnJlZUJTRCBQb3J0cyBDb2xsZWN0 aW9uIG5vdyBjb250YWlucwogICBhcHByb3hpbWF0ZWx5IDI0LDUwMCBwb3J0cywgd2hpbGUgdGhl IFBSIGNvdW50IGV4Y2VlZHMgMSw5MDAuCgogICBUaGUgRnJlZUJTRCBQb3J0IE1hbmFnZW1lbnQg VGVhbSBlbnN1cmVzIHRoYXQgdGhlIEZyZWVCU0QgcG9ydHMKICAgZGV2ZWxvcGVyIGNvbW11bml0 eSBwcm92aWRlcyBhIFBvcnRzIENvbGxlY3Rpb24gdGhhdCBpcyBmdW5jdGlvbmFsLAogICBzdGFi bGUsIHVwLXRvLWRhdGUgYW5kIGZ1bGwtZmVhdHVyZWQuIEl0cyBzZWNvbmRhcnkgcmVzcG9uc2li aWxpdHkgaXMKICAgdG8gY29vcmRpbmF0ZSBhbW9uZyB0aGUgY29tbWl0dGVycyBhbmQgZGV2ZWxv cGVycyB3aG8gd29yayBvbiBpdC4gQXMKICAgcGFydCBvZiB0aGVzZSBlZmZvcnRzLCB3ZSBhZGRl ZCAzIG5ldyBjb21taXR0ZXJzLCB0b29rIGluIDMgY29tbWl0IGJpdHMKICAgZm9yIHNhZmUga2Vl cGluZywgYW5kIHJlaW5zdGF0ZWQgMSBjb21taXQgYml0IGluIHRoZSBmb3VydGggcXVhcnRlciBv ZgogICAyMDEzLgoKICAgT25nb2luZyBlZmZvcnQgd2VudCBpbnRvIHRlc3RpbmcgbGFyZ2VyIGNo YW5nZXMsIGFzIG1hbnkgYXMgOCBhIHdlZWssCiAgIGluY2x1ZGluZyBzd2VlcGluZyBjaGFuZ2Vz IHRvIHRoZSB0cmVlLCBtb2Rlcml6YXRpb24gb2YgdGhlCiAgIGluZnJhc3RydWN0dXJlLCBhbmQg YmFzaWMgcXVhbGl0eSBhc3N1cmFuY2UgKFFBKSBydW5zLiBNYW55IGl0ZXJhdGlvbnMKICAgb2Yg dGVzdHMgYWdhaW5zdCAxMC4wLVJFTEVBU0Ugd2VyZSBydW4gdG8gZW5zdXJlIHRoYXQgdGhlIG1h eGltdW0KICAgbnVtYmVyIG9mIHBhY2thZ2VzIHdvdWxkIGJlIGF2YWlsYWJsZSBmb3IgdGhlIHJl bGVhc2UuCgogICBXZSBub3cgaGF2ZSBwa2coOCkgcGFja2FnZXMgZm9yIHRoZSByZWxlYXNlcyA4 LjMsIDguNCwgOS4xLCA5LjIsIDEwLjAKICAgYW5kIC1DVVJSRU5UIG9uIHBrZy5GcmVlQlNELm9y Zy4gRHVyaW5nIHRoaXMgc2FtZSB0aW1lLCBmdXJ0aGVyCiAgIGVuaGFuY2VtZW50cyB3ZXJlIHB1 dCBpbnRvIHBrZyg4KSwgaW5jbHVkaW5nIHNlY3VyZSBwYWNrYWdlIHNpZ25pbmcuCgogICBDb21t ZW5jaW5nIE5vdmVtYmVyIDEsIHRoZSBQb3J0IE1hbmFnZW1lbnQgVGVhbSB1bmRlcnRvb2sgYQog ICAicG9ydG1nci1sdXJrZXJzIiBwaWxvdCBwcm9qZWN0IGluIHdoaWNoIHBvcnRzIGNvbW1pdHRl cnMgY291bGQKICAgdm9sdW50ZWVyIHRvIGFzc2lzdCB0aGUgUG9ydCBNYW5hZ2VtZW50IFRlYW0g Zm9yIGEgZm91ci1tb250aCBkdXJhdGlvbi4KICAgVGhlIGZpcnN0IHR3byBjYW5kaWF0ZXMgYXJl IE1hdGhpZXUgQXJub2xkIChtYXQpIGFuZCBBbnRvaW5lIEJyb2RpbgogICAoYW50b2luZSkuCgog ICBPbmdvaW5nIG1haW50ZW5hbmNlIGdvZXMgaW50byByZWRwb3J0cy5vcmcsIGluY2x1ZGluZyBR QVQgcnVucywgcG9ydHMKICAgYW5kIHNlY3VyaXR5IHVwZGF0ZXMuCgpPcGVuIHRhc2tzOgoKICAg IDEuIEFzIHByZXZpb3VzbHkgbm90ZWQsIG1hbnkgUFJzIGNvbnRpbnVlIHRvIGxhbmd1aXNoOyB3 ZSB3b3VsZCBsaWtlCiAgICAgICB0byBzZWUgc29tZSBjb21taXR0ZXJzIGRlZGljYXRlIHRoZW1z ZWx2ZXMgdG8gY2xvc2luZyBhcyBtYW55IGFzCiAgICAgICBwb3NzaWJsZSEKICAgICBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KCkZyZWVCU0QgUG9zdG1hc3RlciBUZWFtCgogICBVUkw6IGh0dHA6Ly9saXN0cy5mcmVlYnNk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3N2bi1zcmMtc3RhYmxlLTEwCiAgIFVSTDogaHR0cDovL2xp c3RzLmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGluZm8vY3RtLXNyYy0xMAogICBVUkw6IGh0dHA6 Ly9saXN0cy5mcmVlYnNkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2N0bS1zcmMtMTAtZmFzdAogICBV Ukw6IGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvZG9jL2VuL2FydGljbGVzL2NvbW1pdHRlcnMtZ3Vp ZGUvcGdwa2V5cy5odG1sCgogICBDb250YWN0OiBGcmVlQlNEIFBvc3RtYXN0ZXIgVGVhbSA8cG9z dG1hc3RlckBGcmVlQlNELm9yZz4KCiAgIEluIHRoZSBmb3VydGggcXVhcnRlciBvZiAyMDEzLCB0 aGUgRnJlZUJTRCBQb3N0bWFzdGVyIFRlYW0gaGFzCiAgIGltcGxlbWVudGVkIHRoZSBmb2xsb3dp bmcgaXRlbXMgdGhhdCBtYXkgYmUgaW50ZXJlc3Qgb2YgdGhlIGdlbmVyYWwKICAgcHVibGljOgoK ICAgICAqIFJldGlyZWQgdGhlIGZyZWVic2QtYWljN3h4eCBtYWlsaW5nIGxpc3QuCiAgICAgKiBD cmVhdGVkIGEgZ3JhcGhpY3MtdGVhbSBhbGlhcywgcmVxdWVzdGVkIGJ5IE5pY2xhcyBaZWlzaW5n LgogICAgICogV29ya2VkIHdpdGggdGhlIEZyZWVCU0QgUG9ydCBNYW5hZ2VtZW50IFRlYW0gdG8g c2V0IHVwCiAgICAgICBwb3J0bWdyLWx1cmtlcnMgc28gcG9ydCBtYW5hZ2VycyBjYW4gbW92ZSBh ZGRyZXNzZXMgYmV0d2VlbiB0aG9zZQogICAgICAgdHdvIGFsaWFzZXMgYXQgdGhlaXIgZGlzY3Jl dGlvbi4KICAgICAqIENyZWF0ZWQgdGhlIGxpc3RzIGFzc29jaWF0ZWQgd2l0aCB0aGUgbmV3IHN0 YWJsZS8xMCBicmFuY2g6CiAgICAgICBzdm4tc3JjLXN0YWJsZS0xMCwgY3RtLXNyYy0xMCwgYW5k IGN0bS1zcmMtMTAtZmFzdC4KICAgICAqIFJlZGlyZWN0ZWQgdGhlIHZib3ggYWxpYXMgdG8gdGhl IGVtdWxhdGlvbiBsaXN0LCByZXF1ZXN0ZWQgYnkKICAgICAgIEJlcm5oYXJkIEZyw7ZobGljaC4K ICAgICAqIENvbnRpbnVlZCBhIGRpc2N1c3Npb24gb24gY3VycmVudCBhbmQgcG9zc2libGUgZnV0 dXJlIG1haWwgYW5kIHNwYW0KICAgICAgIGZpbHRlcmluZy4KICAgICAqIERpc2JhbmRlZCBsdWEg YW5kIHRyYW5zZmVycmVkIGl0IHRvIEJhcHRpc3RlIERhcm91c3NpbiwgcmVxdWVzdGVkCiAgICAg ICBieSBNYXR0aGlhcyBBbmRyZWUgYW5kIEJhcHRpc3RlIERhcm91c3Npbi4KICAgICAqIE1vZGlm aWVkIHRoZSBsaXN0IG1vZGVyYXRvcnMvYWRtaW5pc3RyYXRvcnMgZm9yIHBvcnRzLXNlY3RlYW0s CiAgICAgICByZXF1ZXN0ZWQgYnkgRGFnLUVybGluZyBTbcO4cmdyYXYuCiAgICAgKiBBc3Npc3Rl ZCBXYXJyZW4gQmxvY2sgd2l0aCBhbiB1cGRhdGUgdG8gdGhlICJPcGVuUEdQIEtleXMgZm9yCiAg ICAgICBGcmVlQlNEIiBzZWN0aW9uIG9mIHRoZSBDb21taXR0ZXIncyBHdWlkZS4KICAgICBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KCkZyZWVCU0QgUmVsZWFzZSBFbmdpbmVlcmluZyBUZWFtCgogICBVUkw6IGh0dHA6Ly93 d3cuRnJlZUJTRC5vcmcvcmVsZWFzZXMvMTAuMFIvc2NoZWR1bGUuaHRtbAogICBVUkw6IGh0dHA6 Ly9mdHAuRnJlZUJTRC5vcmcvcHViL0ZyZWVCU0Qvc25hcHNob3RzL1ZNLUlNQUdFUy8KICAgVVJM OiBodHRwOi8vZnRwLkZyZWVCU0Qub3JnL3B1Yi9GcmVlQlNEL3NuYXBzaG90cy9JU08tSU1BR0VT LwoKICAgQ29udGFjdDogRnJlZUJTRCBSZWxlYXNlIEVuZ2luZWVyaW5nIFRlYW0gPHJlQEZyZWVC U0Qub3JnPgoKICAgVGhlIEZyZWVCU0QgUmVsZWFzZSBFbmdpbmVlcmluZyBUZWFtIGlzIGZpbmlz aGluZyB0aGUgMTAuMC1SRUxFQVNFCiAgIGN5Y2xlLiBUaGUgcmVsZWFzZSBjeWNsZSBjaGFuZ2Vk IHdpdGggdHdvIGxhc3QtbWludXRlIHJlbGVhc2UgY2FuZGlkYXRlCiAgIGJ1aWxkcywgZWFjaCBh ZGRyZXNzaW5nIGZpeGVzIGNyaXRpY2FsIHRvIGluY2x1ZGUgaW4gdGhlIGZpbmFsIHJlbGVhc2Uu CgogICBUaGUgRnJlZUJTRCAxMC4wLVJFTEVBU0UgY3ljbGUgaXMgZXhwZWN0ZWQgdG8gYmUgY29t cGxldGVkIGJ5CiAgIG1pZC1KYW51YXJ5LCBhcHByb3hpbWF0ZWx5IGVpZ2h0IHdlZWtzIGJlaGlu ZCB0aGUgb3JpZ2luYWwgc2NoZWR1bGUuCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpDQlNECgogICBVUkw6IGh0 dHA6Ly93d3cuYnNkc3RvcmUucnUvCiAgIFVSTDogaHR0cHM6Ly9naXRodWIuY29tL29sZXZvbGUv Y2JzZAoKICAgQ29udGFjdDogT2xlZyBHaW56YnVyZyA8b2xldm9sZUBvbGV2b2xlLnJ1PgoKICAg Q0JTRCBpcyBhbm90aGVyIEZyZWVCU0QgamFpbCBtYW5hZ2VtZW50IHNvbHV0aW9uLCBhaW1lZCBh dCBjb21iaW5pbmcKICAgdmFyaW91cyBmZWF0dXJlcywgc3VjaCBhcyByYWNjdCg4KSwgdm5ldCwg emZzKDgpLCBjYXJwKDQpLCBhbmQKICAgaGFzdGQoOCksIGludG8gYSBzaW5nbGUgdG9vbC4gVGhp cyBwcm92aWRlcyBhIG1vcmUgY29tcHJlaGVuc2l2ZSB3YXkgdG8KICAgYnVpbGQgYXBwbGljYXRp b24gc2VydmVycyB1c2luZyBwcmUtaW5zdGFsbGVkIGphaWxzIHdpdGggYSB0eXBpY2FsIHNldAog ICBvZiBzb2Z0d2FyZSwgYW5kIHJlcXVpcmVzIG1pbmltYWwgZWZmb3J0IHRvIGNvbmZpZ3VyZS4K Ck9wZW4gdGFza3M6CgogICAgMS4gUHJvcGVyIEVuZ2xpc2ggdHJhbnNsYXRpb24gb2YgdGhlIHdl YnNpdGUgYW5kIHRoZSBkb2N1bWVudGF0aW9uLgogICAgIF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKSmVua2lucyBDb250 aW51b3VzIEludGVncmF0aW9uIGZvciBGcmVlQlNECgogICBVUkw6IGh0dHA6Ly93d3cuaXhzeXN0 ZW1zLmNvbS93aGF0cy1uZXcvamVua2lucy1iaHl2ZS1hbmQtd2ViZHJpdmVyLWNvbnRpbnVvdXMt aW50ZWdyYXRpb24tdGVzdGluZy1vbi1mcmVlbmFzLwoKICAgQ29udGFjdDogQ3JhaWcgUm9kcmln dWVzIDxyb2RyaWdjQEZyZWVCU0Qub3JnPgoKICAgQXQgdGhlIE5vdmVtYmVyIDIwMTMgRnJlZUJT RCBWZW5kb3IgU3VtbWl0LCBzb21lIG9mIHRoZSB3b3JrIHdhcwogICBwcmVzZW50ZWQgdGhhdCBD cmFpZyBSb2RyaWd1ZXMgaGFzIGJlZW4gZG9pbmcgd2l0aCBDb250aW51b3VzCiAgIEludGVncmF0 aW9uIGFuZCBUZXN0aW5nIGF0IGlYc3lzdGVtcy4gQ3JhaWcncyBwcmVzZW50YXRpb24gZGVzY3Jp YmVkCiAgIGhvdyBpWHN5c3RlbXMgaXMgdXNpbmcgbW9kZXJuIGJlc3QgcHJhY3RpY2VzIGZvciBi dWlsZGluZyBhbmQgdGVzdGluZwogICB0aGUgRnJlZU5BUyBjb2RlLiBKZW5raW5zIGlzIGEgZnJh bWV3b3JrIGZvciBkb2luZyBjb250aW51b3VzIGJ1aWxkcwogICBhbmQgaW50ZWdyYXRpb24gdGhh dCBpcyB1c2VkIGJ5IGh1bmRyZWRzIG9mIGNvbXBhbmllcy4gQkh5dmUgKEJTRAogICBIeXB2ZXJ2 aXNvcikgaXMgdGhlIG5ldyB2aXJ0dWFsIG1hY2hpbmUgc3lzdGVtIHdoaWNoIHdpbGwgYmUgcGFy dCBvZgogICBGcmVlQlNEIDEwLiBXZWJkcml2ZXIgaXMgYSBQeXRob24gdG9vbGtpdCBmb3IgdGVz dGluZyB3ZWIgYXBwbGljYXRpb25zLgogICBCeSBjb21iaW5pbmcgdGhlc2UgdGVjaG5vbG9naWVz LCBpWHN5c3RlbXMgaXMgZGV2ZWxvcGluZyBhIG1vZGVybiBhbmQKICAgc29waGlzdGljYXRlZCB3 b3JrZmxvdyBmb3IgdGVzdGluZyBhbmQgaW1wcm92aW5nIHRoZSBxdWFsaXR5IG9mCiAgIEZyZWVO QVMuCgogICBFZCBNYXN0ZSBmcm9tIFRoZSBGcmVlQlNEIEZvdW5kYXRpb24gd2FzIGludGVyZXN0 ZWQgaW4gdGhpcyB3b3JrLCBhbmQKICAgYmFzZWQgb24gdGhpcyBpbnRlcmVzdCwgaXQgaXMgbm93 IGJlaW5nIHBvcnRlZCB0byBGcmVlQlNELiBDdXJyZW50bHksIGEKICAgbWFjaGluZSBpbiB0aGUg RnJlZUJTRCBjbHVzdGVyIGhhcyBiZWVuIGFsbG9jYXRlZCBmb3IgdGhpcyBwdXJwb3NlLAogICB3 aGVyZSBhIGJoeXZlKDQpLWJhc2VkIHZpcnR1YWwgbWFjaGluZSB3YXMgc2V0IHVwIGFuZCBKZW5r aW5zIHdhcwogICBpbnN0YWxsZWQuIFRoZSByZW1haW5kZXIgaXMgc3RpbGwgaW4gcHJvZ3Jlc3Mu CgpPcGVuIHRhc2tzOgoKICAgIDEuIEZpbmlzaCBzZXR0aW5nIHVwIEplbmtpbnMuCiAgICAyLiBB ZGQgbW9yZSBidWlsZHMgdG8gSmVua2lucy4KICAgIDMuIEludGVncmF0ZSB0ZXN0aW5nIHdpdGgg SmVua2lucy4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KCkdFT00gRGlyZWN0IERpc3BhdGNoIGFuZCBGaW5lLUdy YWluZWQgQ0FNIExvY2tpbmcKCiAgIFVSTDogaHR0cDovL3Blb3BsZS5mcmVlYnNkLm9yZy9+bWF2 L2Rpc2sucGRmCiAgIFVSTDogaHR0cDovL3N2bndlYi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFz ZS8yNjAzODcKICAgVVJMOiBodHRwOi8vc3Zud2ViLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNl LzI2MDM4NQoKICAgQ29udGFjdDogQWxleGFuZGVyIE1vdGluIDxtYXZARnJlZUJTRC5vcmc+Cgog ICBUaGUgQ0FNIGFuZCBHRU9NIG11bHRpLXByb2Nlc3NvciBzY2FsYWJpbGl0eSBpbXByb3ZlbWVu dCBwcm9qZWN0IGhhcwogICBjb21wbGV0ZWQuIFRoZSBjb3JyZXNwb25kaW5nIGNvZGUgaGFzIGJl ZW4gY29tbWl0dGVkIHRvIEZyZWVCU0QgaGVhZAogICBhbmQgcmVjZW50bHkgbWVyZ2VkIHRvIHRo ZSBzdGFibGUvMTAgYnJhbmNoOyBpdCBzaGFsbCBhcHBlYXIgaW4KICAgMTAuMS1SRUxFQVNFLgoK ICAgQXMgcGFydCBvZiB0aGlzIHByb2plY3QsIGNhbSg0KSAodGhlIEFUQS9TQ1NJIHN1YnN5c3Rl bSkgaGFzIHJlY2VpdmVkCiAgIG1vcmUgZmluZS1ncmFpbmVkIGxvY2tpbmcgZm9yIGJldHRlciB1 dGlsaXphdGlvbiBvZiBtdWx0aS1jb3JlIHN5c3RlbXMuCiAgIEluIGFkZGl0aW9uLCB0aGUgbG9j a2luZyBpbiBnZW9tKDQpICh0aGUgYmxvY2sgc3RvcmFnZSBzdWJzeXN0ZW0pIGhhcwogICBhbHNv IGJlZW4gcG9saXNoZWQsIGFuZCBhIG5ldyBkaXJlY3QgZGlzcGF0Y2ggZnVuY3Rpb25hbGl0eSB3 YXMKICAgaW1wbGVtZW50ZWQgdG8gc3ByZWFkIHRoZSBsb2FkIGJldHdlZW4gbXVsdGlwbGUgdGhy ZWFkcyBhbmQgcHJvY2Vzc29ycywKICAgYW5kIHJlZHVjZSB0aGUgbnVtYmVyIG9mIGNvbnRleHQg c3dpdGNoZXMuCgogICBUaGFua3MgdG8gdGhlc2UgY2FtKDQpIGFuZCBnZW9tKDQpIGNoYW5nZXMs IHRoZSBwZWFrIEkvTyByYXRlIGhhcwogICBkb3VibGVkIG9uIGNvbXB0ZW1wb3JhcnkgaGFyZHdh cmUsIHJlYWNoaW5nIHVwIHRvIDEsMDAwLDAwMCBJT1BTIQoKICAgVGhpcyBwcm9qZWN0IGlzIHNw b25zb3JlZCBieSBpWHN5c3RlbXMsIEluYy4KCk9wZW4gdGFza3M6CgogICAgMS4gU29tZSBDQU0g Y29udHJvbGxlciBkcml2ZXJzIChTSU1zKSBjb3VsZCBhbHNvIGJlIG9wdGltaXplZCB0byBnZXQK ICAgICAgIG1vcmUgYmVuZWZpdHMgZnJvbSB0aGlzIHByb2plY3QsIHV0aWxpemluZyB0aGUgbmV3 IGxvY2tpbmcgbW9kZWxzCiAgICAgICBhbmQgZGlyZWN0IGNvbW1hbmQgY29tcGxldGlvbnMgZnJv bSBtdWx0aXBsZSBpbnRlcnJ1cHQgdGhyZWFkcy4KICAgICBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCkludGVsIDgwMi4x MW4gTklDIChpd24oNCkpIFdvcmsKCiAgIENvbnRhY3Q6IEFkcmlhbiBDaGFkZCA8YWRyaWFuQGZy ZWVic2Qub3JnPgoKICAgVGhlcmUgaGFzIGJlZW4gYSBsYXJnZSBhbW91bnQgb2Ygd29yayBvbiBp d24oNCkgb3ZlciB0aGUgbGFzdCBzaXgKICAgbW9udGhzOgoKICAgICAqIE5ldyBoYXJkd2FyZSBz dXBwb3J0OiAyeHh4LCA2eHh4LCAxeHggc2VyaWVzIGhhcmR3YXJlLgogICAgICogTWFueSBidWdz IHdlcmUgZml4ZWQsIGluY2x1ZGluZyBzY2FubmluZywgYXNzb2NpYXRpb24sIEVBUE9MCiAgICAg ICByZWxhdGVkIGZpeGVzLgogICAgICogaXduKDQpIG5vdyBuYXRpdmVseSB3b3JrcyB3aXRoIDgw Mi4xMW4gcmF0ZXMgZnJvbSB0aGUgbmV0ODAyMTEgcmF0ZQogICAgICAgY29udHJvbCBjb2RlLCBy YXRoZXIgdGhhbiBtYXBwaW5nIG5vbi0xMW4gcmF0ZXMgdG8gMTFuIHJhdGVzLgoKT3BlbiB0YXNr czoKCiAgICAxLiBUaGVyZSBhcmUgc3RpbGwgc29tZSBzY2FuIGhhbmdzLCBkdWUgdG8gaG93IG5l dDgwMjExIHNjYW5zIGEgc2luZ2xlCiAgICAgICBjaGFubmVsIGF0IGEgdGltZS4gVGhpcyBuZWVk cyB0byBiZSByZXNvbHZlZC4KICAgIDIuIFRoZSB0cmFuc21pdCwgcmVjZWl2ZSwgc2NhbiBhbmQg Y2FsaWJyYXRpb24gY29kZSBuZWVkcyB0byBiZQogICAgICAgcmVmYWN0b3JlZCBvdXQgb2YgaWZf aXduLmMgYW5kIGludG8gc2VwYXJhdGUgc291cmNlIGZpbGVzLgogICAgMy4gVGhlcmUgc3RpbGwg c2VlbSB0byBiZSBzb21lIGlzc3VlcyBzdXJyb3VuZGluZyAyIEdIeiB2ZXJzdXMgNSBHSHoKICAg ICAgIGFzc29jaWF0aW9uIGF0dGVtcHRzIGxlYWRpbmcgdG8gZmlybXdhcmUgYXNzZXJ0aW9ucywg ZXNwZWNpYWxseSBvbgogICAgICAgdGhlIEludGVsIDQ5NjUgTklDLgogICAgIF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoK SW50ZWwgR1BVIERyaXZlciBVcGRhdGUKCiAgIENvbnRhY3Q6IEtvbnN0YW50aW4gQmVsb3Vzb3Yg PGtpYkBGcmVlQlNELm9yZz4KCiAgIFRoaXMgcHJvamVjdCB3aWxsIHVwZGF0ZSB0aGUgSW50ZWwg Z3JhcGhpY3MgY2hpcHNldCBkcml2ZXIsIGk5MTVrbXMsIHRvCiAgIGEgcmVjZW50IHNuYXBzaG90 IG9mIHRoZSBMaW51eCB1cHN0cmVhbSBjb2RlLiBUaGUgdXBkYXRlIHdpbGwgcHJvdmlkZQogICBh dCBsZWFzdCAxLjUgeWVhcnMgb2YgYnVnZml4ZXMgZnJvbSB0aGUgSW50ZWwgdGVhbSwgYW5kIGlu dHJvZHVjZQogICBzdXBwb3J0IGZvciB0aGUgbmV3ZXN0IGhhcmR3YXJlIC0tIGluIHBhcnRpY3Vs YXIgSGFzd2VsbCBhbmQKICAgVmFsbGV5Vmlldy4gVGhlIEl2eUJyaWRnZSBjb2RlIHdpbGwgYWxz byBiZSB1cGRhdGVkLiBUaGUgYWRkaXRpb24gb2YKICAgc2V2ZXJhbCBmZWF0dXJlcywgd2hpY2gg YXJlIHJlcXVpcmVkIGluIG9yZGVyIHRvIHVwZGF0ZSBYLk9yZyBhbmQgTWVzYSwKICAgaXMgYWxz byBwbGFubmVkLgoKICAgVGhpcyBwcm9qZWN0IGlzIHNwb25zb3JlZCBieSBUaGUgRnJlZUJTRCBG b3VuZGF0aW9uLgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwoKTmF0aXZlIGlTQ1NJIFN0YWNrCgogICBVUkw6IGh0 dHBzOi8vd2lraS5mcmVlYnNkLm9yZy9OYXRpdmUlMjBpU0NTSSUyMHRhcmdldAoKICAgQ29udGFj dDogRWR3YXJkIFRvbWFzeiBOYXBpZXJhxYJhIDx0cmFzekBGcmVlQlNELm9yZz4KCiAgIGlTQ1NJ IGlzIGEgcG9wdWxhciBibG9jayBzdG9yYWdlIHByb3RvY29sLiBVbmRlciB0aGlzIHByb2plY3Qs IGEgbmV3LAogICBmYXN0LCBhbmQgcmVsaWFibGUga2VybmVsLWJhc2VkIGlTQ1NJIGluaXRpYXRv ciAoY2xpZW50KSBhbmQgdGFyZ2V0CiAgIChzZXJ2ZXIpIGhhdmUgYmVlbiBpbXBsZW1lbnRlZC4K CiAgIER1cmluZyBPY3RvYmVyIHRvIERlY2VtYmVyLCB0aGUgd29yayBmb2N1c2VkIG9uIHBlcmZv cm1hbmNlIGFuZAogICBzY2FsYWJpbGl0eS4gVGhlIHRhcmdldCBhbmQgdGhlIGluaXRpYXRvciBu b3cgc3ByZWFkIHRoZSBsb2FkIG92ZXIKICAgbXVsdGlwbGUga2VybmVsIHRocmVhZHMsIGFuZCB0 aGUgbG9ja2luZyBpcyBvcHRpbWl6ZWQgdG8gcmVkdWNlCiAgIGNvbnRlbnRpb24uIFRoaXMgbWFr ZXMgYmV0dGVyIHVzZSBvZiBtdWx0aXBsZSBwcm9jZXNzb3IgY29yZXMuCgogICBXb3JrIHRvIGZp bmlzaCBpU0VSIHN1cHBvcnQgaXMgb25nb2luZy4gQWxsIHRob3NlIG9wdGltaXphdGlvbnMgd2ls bCBiZQogICBncmFkdWFsbHkgbWVyZ2VkIHRvIGhlYWQgaW4gRmVicnVhcnksIGFuZCBhcmUgZXhw ZWN0ZWQgdG8gbWVyZ2VkIGJhY2sKICAgdG8gc3RhYmxlLzEwIGFuZCBmaW5hbGx5IGFycml2ZSBp biAxMC4xLVJFTEVBU0UuCgogICBUaGlzIHByb2plY3QgaXMgc3BvbnNvcmVkIGJ5IFRoZSBGcmVl QlNEIEZvdW5kYXRpb24uCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpOZXcgQXV0b21vdW50ZXIKCiAgIENvbnRh Y3Q6IEVkd2FyZCBUb21hc3ogTmFwaWVyYcWCYSA8dHJhc3pARnJlZUJTRC5vcmc+CgogICBSZXNl YXJjaCBhbmQgcHJvdG90eXBpbmcgaGFzIGJlZ3VuIG9uIGEgbmV3IHByb2plY3QgdG8gaW1wbGVt ZW50CiAgIGF1dG9mcyg0KSAtLSBhbiBhdXRvbW91bnRlciBmaWxlc3lzdGVtIC0tIGFuZCBpdHMg dXNlcmxhbmQgY291bnRlcnBhcnQsCiAgIGF1dG9tb3VudGQoOCkuIFRoZSBpZGVhIGlzIHRvIHBy b3ZpZGUgYSB2ZXJ5IHNpbWlsYXIgdXNlciBleHBlcmllbmNlIHRvCiAgIHRoZSBhdXRvbW91bnRl cnMgYXZhaWxhYmxlIG9uIExpbnV4LCBNYWNPUyBYLCBhbmQgU29sYXJpcywgaW5jbHVkaW5nCiAg IHVzaW5nIHRoZSBzYW1lIG1hcCBmb3JtYXQuIFRoZSBhdXRvbW91bnRlciB3aWxsIGFsc28gaW50 ZWdyYXRlIHdpdGgKICAgZGlyZWN0b3J5IHNlcnZpY2VzLCBzdWNoIGFzIExEQVAuCgogICBUaGlz IHByb2plY3QgaXMgc3BvbnNvcmVkIGJ5IFRoZSBGcmVlQlNEIEZvdW5kYXRpb24uCiAgICAgX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCgpVRUZJIEJvb3QKCiAgIFVSTDogaHR0cHM6Ly93aWtpLmZyZWVic2Qub3JnL1VFRkkK ICAgVVJMOiBodHRwOi8vc3Zud2ViLmZyZWVic2Qub3JnL2Jhc2UvcHJvamVjdHMvdWVmaS8KCiAg IENvbnRhY3Q6IEVkIE1hc3RlIDxlbWFzdGVARnJlZUJTRC5vcmc+CgogICBUaGUgVW5pZmllZCBF eHRlbnNpYmxlIEZpcm13YXJlIEludGVyZmFjZSAoVUVGSSkgcHJvdmlkZXMgYm9vdC0gYW5kCiAg IHJ1bi10aW1lIHNlcnZpY2VzIGZvciB4ODYgY29tcHV0ZXJzLCBhbmQgaXMgYSByZXBsYWNlbWVu dCBmb3IgdGhlCiAgIGxlZ2FjeSBCSU9TLiBUaGlzIHByb2plY3Qgd2lsbCBhZGFwdCB0aGUgRnJl ZUJTRCBsb2FkZXIgYW5kIGtlcm5lbCBib290CiAgIHByb2Nlc3MgZm9yIGNvbXBhdGliaWxpdHkg d2l0aCBVRUZJIGZpcm13YXJlLCBmb3VuZCBvbiBjb250ZW1wb3JhcnkKICAgc2VydmVycywgZGVz a3RvcHMsIGFuZCBsYXB0b3BzLgoKICAgSW4gMjAxMywgVGhlIEZyZWVCU0QgRm91bmRhdGlvbiBz cG9uc29yZWQgQmVubm8gUmljZSBmb3IgYSBzaG9ydAogICBwcm9qZWN0IHRvIGltcHJvdmUgdGhl IFVFRkkgYm9vdGxvYWRlci4gVGhpcyByZXN1bHRlZCBpbiBhIHdvcmtpbmcKICAgcHJvb2Ytb2Yt Y29uY2VwdCBpbiB0aGUgVUVGSSBwcm9qZWN0IGJyYW5jaCwgYnV0IGl0IHdhcyBub3QgcmVhZHkg dG8gYmUKICAgbWVyZ2VkIHRvIEZyZWVCU0QgaGVhZC4KCiAgIEVkIE1hc3RlIGhhcyB0YWtlbiB0 aGF0IG9yaWdpbmFsIHdvcmsgYW5kLCB3aXRoIHJldmlldyBmZWVkYmFjayBmcm9tCiAgIEtvbnN0 YW50aW4gQmVsb3Vzb3YsIGJlZW4gcHJlcGFyaW5nIGl0IGZvciBpbnRlZ3JhdGlvbiBpbnRvIEZy ZWVCU0QKICAgaGVhZC4gU29tZSBjaGFuZ2VzIGhhdmUgYmVlbiBtZXJnZWQgdG8gaGVhZCBhbHJl YWR5LiBUaGUgcmVzdCB3aWxsIGJlCiAgIG1lcmdlZCBhcyB0aGV5IGFyZSByZWZpbmVkLgoKICAg SW50ZWwgcHJvdmlkZWQgYSBtb3RoZXJib2FyZCBhbmQgQ1BVIGZvciB0aGUgcHJvamVjdCwgd2hp Y2ggcHJvdmVkCiAgIGludmFsdWFibGUgZm9yIGFkZHJlc3NpbmcgYnVncyB0aGF0IGRpZCBub3Qg YXBwZWFyIHdoaWxlIHRlc3Rpbmcgd2l0aAogICB0aGUgUUVNVSBlbXVsYXRvci4KCiAgIFRoaXMg cHJvamVjdCBpcyBzcG9uc29yZWQgYnkgVGhlIEZyZWVCU0QgRm91bmRhdGlvbi4KCk9wZW4gdGFz a3M6CgogICAgMS4gUmVzb2x2ZSBhIDMyLSB2ZXJzdXMgNjQtYml0IGxpYnN0YW5kKDMpIGJ1aWxk IGlzc3VlLgogICAgMi4gTWVyZ2Uga2VybmVsIHBhcnNpbmcgb2YgRUZJIG1lbW9yeSBtYXAgbWV0 YWRhdGEuCiAgICAzLiBJbnRlZ3JhdGUgdGhlIEVGSSBmcmFtZWJ1ZmZlciB3aXRoIHZ0KDkpIChh bHNvIGtub3duIGFzIE5ld2NvbnMpLgogICAgNC4gQ29ubmVjdCBlZmlsb2FkZXIgdG8gdGhlIGJ1 aWxkLgogICAgNS4gRG9jdW1lbnQgbWFudWFsIGluc3RhbGxhdGlvbiBmb3IgZHVhbC1ib290IGNv bmZpZ3VyYXRpb25zLgogICAgNi4gSW50ZWdyYXRlIFVFRkkgY29uZmlndXJhdGlvbiB3aXRoIHRo ZSBGcmVlQlNEIGluc3RhbGxlci4KICAgIDcuIFN1cHBvcnQgc2VjdXJlIGJvb3QuCiAgICAgX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCgpVTUEvWkZTIGFuZCBSUEMvTkZTIFBlcmZvcm1hbmNlIEltcHJvdmVtZW50cwoKICAg VVJMOiBodHRwOi8vZG9jcy5mcmVlYnNkLm9yZy9jZ2kvbWlkLmNnaT81Mjg5NEM5Mi42MDkwNQoK ICAgQ29udGFjdDogQWxleGFuZGVyIE1vdGluIDxtYXZARnJlZUJTRC5vcmc+CgogICBUaGUgcGVy Zm9ybWFuY2Ugb2YgWkZTIGFuZCBORlMgd2FzIHN1Ym9wdGltYWwgaW4gRnJlZUJTRCwgc28gd2Ug aGF2ZQogICByZWNlbnRseSBpbnZlc3RpZ2F0ZWQgc29tZSBwb3NzaWJsZSBpbXByb3ZlbWVudCBw YXRocy4gVGhlIHVtYSg5KQogICBtZW1vcnkgYWxsb2NhdG9yIGNhY2hpbmcgY29kZSB3YXMgaW1w cm92ZWQgdG8gYWRhcHQgYmV0dGVyIHRvIHN5c3RlbQogICBtZW1vcnkgY29uc3RyYWludHMuIENv bWJpbmVkIHdpdGggb3RoZXIgdmlydHVhbCBtZW1vcnkgc3Vic3lzdGVtCiAgIGltcHJvdmVtZW50 cyBkb25lIGluIHRoZSBwcmV2aW91cyB5ZWFycywgaXQgc2hvdWxkIGJlIHNhZmUgdG8gYWN0aXZl bHkKICAgdXNlIHVtYSg5KSBjYWNoZXMgbm93LiBUaGVpciB1c2UgaW4gWkZTIGZvciBaSU8vQVJD IG1heSBiZSBlbmFibGVkIHZpYQogICB0aGUgdmZzLnpmcy56aW8udXNlX3VtYSBsb2FkZXIoOCkg dHVuYWJsZSwgd2hpY2ggaXMgbm93IHRoZSBkZWZhdWx0IGZvcgogICBhbWQ2NCwgd2hlcmUgaXQg aXMgcmVjb21tZW5kZWQuIFVzZSBvZiB1bWEoOSkgY2FjaGVzIGZvciBMWjQKICAgY29tcHJlc3Np b24gYnVmZmVycyBpcyB1bmNvbmRpdGlvbmFsbHkgZW5hYmxlZCBvbiBhbGwgYXJjaGl0ZWN0dXJl cyBhcwogICBpdCBpcyBoYXMgbm8gc2VyaW91cyBkcmF3YmFja3MuIE9uIHN5c3RlbXMgd2l0aCBt YW55IENQVXMsIHRoZXNlCiAgIGNoYW5nZXMgZG91YmxlZCB0aGUgcGVyZm9ybWFuY2UgaW4gdGhl IGJlbmNobWFya3MuCgogICBTZXZlcmFsIGFyZWFzIG9mIHRoZSBORlMgc2VydmVyIHN0YWNrIChS UEMsIEZIQSwgRFJDKSBnb3QgYSBudW1iZXIgb2YKICAgZml4ZXMgYW5kIHBlcmZvcm1hbmNlIG9w dGltaXphdGlvbnMgdGhhdCBzaWduaWZpY2FudGx5IGltcHJvdmUKICAgcGVyZm9ybWFuY2UgYW5k IHJlZHVjZSB0aGUgQ1BVIHVzYWdlIGluIGEgbnVtYmVyIG9mIHRlc3RzLiBUb2dldGhlcgogICB3 aXRoIHRoZSBaRlMgbWVtb3J5IGFsbG9jYXRvciBjaGFuZ2VzIG1lbnRpb25lZCBhYm92ZSwgaXQg d2FzIHBvc3NpYmxlCiAgIHRvIHJlYWNoIDIwMEsgTkZTIGJsb2NrIHJlYWQgSU9QUyBhbmQgNTVL IFNQRUMgTkZTIElPUFMuCgogICBUaGUgY29kZSB3YXMgY29tbWl0dGVkIHRvIGhlYWQuIFRoZSB1 bWEoOSkgWkZTIGNvbW1pdHMgaGF2ZSBiZWVuCiAgIGFscmVhZHkgbWVyZ2VkIHRvIHN0YWJsZS8x MCwgYW5kIHRoZSByZW1haW5kZXIgd2lsbCBiZSBkb25lIHNvb24gYXMKICAgd2VsbC4KCiAgIFRo aXMgcHJvamVjdCBpcyBzcG9uc29yZWQgYnkgaVhzeXN0ZW1zLCBJbmMuCgpPcGVuIHRhc2tzOgoK ICAgIDEuIFRoZSBTUEVDIE5GUyB0ZXN0IGhpdHMgbG9jayBjb25nZXN0aW9uIG9uIHNldmVyYWwg Z2xvYmFsIGxvY2tzIGluCiAgICAgICB0aGUgZmlsZSBzeXN0ZW0gbGF5ZXIgd2hlbiBhIHF1aXRl IGludGVuc2l2ZSBSRUFERElSUExVUyBORlMKICAgICAgIHJlcXVlc3QgaXMgcmVjZWl2ZWQuIEZp eGluZyB0aGlzIHByb2JsZW0gY291bGQgaW1wcm92ZSBwZXJmb3JtYW5jZQogICAgICAgb24gbGFy Z2Ugc3lzdGVtcyBldmVuIGZ1cnRoZXIuCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpVcGRhdGVkIHZ0KDkpIFN5 c3RlbSBDb25zb2xlCgogICBVUkw6IGh0dHBzOi8vd2lraS5mcmVlYnNkLm9yZy9OZXdjb25zCgog ICBDb250YWN0OiBBbGVrc2FuZHIgUnliYWxrbyA8cmF5QEZyZWVCU0Qub3JnPgogICBDb250YWN0 OiBFZCBNYXN0ZSA8ZW1hc3RlQEZyZWVCU0Qub3JnPgogICBDb250YWN0OiBFZCBTY2hvdXRlbiA8 ZWRARnJlZUJTRC5vcmc+CgogICBDb2xsb3F1aWFsbHkga25vd24gYXMgTmV3Y29ucywgdnQoOSkg aXMgYSBtb2Rlcm4gcmVwbGFjZW1lbnQgZm9yIHRoZQogICBleGlzdGluZywgcXVpdGUgb2xkLCB2 aXJ0dWFsIHRlcm1pbmFsIGVtdWxhdG9yIGNhbGxlZCBzeXNjb25zKDQpLgogICBJbml0aWFsbHkg bW90aXZhdGVkIGJ5IHRoZSBsYWNrIG9mIFVuaWNvZGUgc3VwcG9ydCBpbiBzeXNjb25zKDQpLCB0 aGUKICAgcHJvamVjdCB3YXMgbGF0ZXIgZXhwYW5kZWQgdG8gY292ZXIgdGhlIG5ldyByZXF1aXJl bWVudCB0byBzdXBwb3J0CiAgIEtlcm5lbCBNb2RlIFN3aXRjaGluZyAoS01TKS4KCiAgIFRoZSBw cm9qZWN0IGlzIG5vdyBhcHByb2FjaGluZyBjb21wbGV0aW9uIGFuZCBpcyByZWFkeSBmb3Igd2lk ZXIKICAgdGVzdGluZyBhcyB0aGUgcmVsYXRlZCBjb2RlIHdhcyBhbHJlYWR5IG1lcmdlZCB0byBG cmVlQlNEIGhlYWQuIEhlbmNlLAogICB2dCg5KSBjYW4gYmUgdGVzdGVkIGVhc2lseSBieSByZXBs YWNpbmcgdGhlIGZvbGxvd2luZyB0d28gbGluZXMgaW4gdGhlCiAgIGtlcm5lbCBjb25maWcgZmls ZToKCiAgIGRldmljZSBzYwogICBkZXZpY2UgdmdhCgogICB3aXRoIHRoZSBmb2xsb3dpbmcgb25l czoKCiAgIGRldmljZSB2dAogICBkZXZpY2UgdnRfdmdhCgogICBNYWpvciBoaWdobGlnaHRzOgoK ICAgICAqIFVuaWNvZGUgc3VwcG9ydC4KICAgICAqIERvdWJsZS13aWR0aCBjaGFyYWN0ZXIgc3Vw cG9ydCBmb3IgQ0pLIGNoYXJhY3RlcnMuCiAgICAgKiB4dGVybSgxKS1saWtlIHRlcm1pbmFsIGVt dWxhdGlvbi4KICAgICAqIFN1cHBvcnQgZm9yIEtlcm5lbCBNb2RlIFNldHRpbmcgKEtNUykgZHJp dmVycyAoaTkxNWttcywgcmFkZW9ua21zKS4KICAgICAqIFN1cHBvcnQgZm9yIGRpZmZlcmVudCBm b250cyBwZXIgdGVybWluYWwgd2luZG93LgogICAgICogU2ltcGxpZmllZCBkcml2ZXJzLgoKICAg QnJpZWYgc3RhdHVzIG9mIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmVzIGFuZCBoYXJkd2FyZToKCiAg ICAgKiBhbWQ2NCAoVkdBL2k5MTVrbXMvcmFkZW9ua21zKSAtLSB3b3Jrcy4KICAgICAqIEFSTSBm cmFtZWJ1ZmZlciAtLSB3b3Jrcy4KICAgICAqIGkzODYgKFZHQS9pOTE1a21zL3JhZGVvbmttcykg LS0gd29ya3MuCiAgICAgKiBJQTY0IC0tIHVudGVzdGVkLgogICAgICogTUlQUyAtLSB1bnRlc3Rl ZC4KICAgICAqIFBQQyBhbmQgUFBDNjQgLS0gV29ya3MsIGJ1dCB3aXRob3V0IFguT3JnIHlldC4K ICAgICAqIFNQQVJDIC0tIHdvcmtzIG9uIGNlcnRhaW4gaGFyZHdhcmUgKGUuZy4sIFVsdHJhIDUp LgogICAgICogdmVzYSg0KSAtLSBpbiBwcm9ncmVzcy4KICAgICAqIGkzODYvYW1kNjQgblZpZGlh IGRyaXZlciAtLSBuZWVkIHRlc3RpbmcuCiAgICAgKiBYYm94IGZyYW1lYnVmZmVyIGRyaXZlciAt LSBuZWVkIHRlc3RpbmcuCgogICBLbm93biBJc3N1ZXM6CgogICAgICogU3dpdGNoaW5nIHRvIHZ0 eTAgZnJvbSBYLk9yZyBvbiBGYXRhbCBldmVudHMgd2lsbCBub3Qgd29yay4KICAgICAqIENlcnRh aW4gaGFyZHdhcmUgKGUuZy4sIExlbm92byBYMjIwKSBnZXQgYSBibGFjayBzY3JlZW4gd2hlbgog ICAgICAgaTkxNWttcyBpcyBwcmVsb2FkZWQuCiAgICAgKiBTY3JvbGxpbmcgY2FuIGJlIHNsb3c7 CiAgICAgKiBTY3JlZW4gYm9yZGVycyBhcmUgbm90IGNsZWFyZWQgd2hlbiBjaGFuZ2luZyBmb250 cy4KICAgICAqIHZ0KDkpIGxvY2tzIHVwIHdpdGggdGhlIGdhbGxhbnQxMngyMiBmb250IGluIFZp cnR1YWxCb3guCgogICBUaGlzIHByb2plY3QgaXMgc3BvbnNvcmVkIGJ5IFRoZSBGcmVlQlNEIEZv dW5kYXRpb24uCgpPcGVuIHRhc2tzOgoKICAgIDEuIENyZWF0ZSBzdWItZGlyZWN0b3JpZXMgZm9y IHZ0KDkpIHVuZGVyIC91c3Ivc2hhcmUvIHRvIHN0b3JlIGtleQogICAgICAgbWFwcyBhbmQgZm9u dHMuCiAgICAyLiBJbXBsZW1lbnQgcmVtYWluaW5nIGZlYXR1cmVzIHN1cHBvcnRlZCBieSB2aWRj b250cm9sKDEpLgogICAgMy4gV3JpdGUgdGhlIHZ0KDkpIG1hbnVhbCBwYWdlLgogICAgNC4gU3Vw cG9ydCBrZXlib2FyZCBoYW5kbGVkIGRpcmVjdGx5IGJ5IGRldmljZSBrYmQgKHdpdGhvdXQKICAg ICAgIGtiZG11eCg0KSkuCiAgICA1LiBDSksgZm9udHMgKGluIHByb2dyZXNzKS4KICAgICBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KCkZyZWVCU0QgSG9zdCBTdXBwb3J0IGZvciBPcGVuU3RhY2sgYW5kIE9wZW5Db250cmFp bAoKICAgVVJMOiBodHRwOi8vd3d3Lm9wZW5zdGFjay5vcmcvCiAgIFVSTDogaHR0cDovL3d3dy5v cGVuY29udHJhaWwub3JnLwogICBVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9TZW1paGFsZi9vcGVu c3RhY2stZGV2c3RhY2sKICAgVVJMOiBodHRwczovL2dpdGh1Yi5jb20vU2VtaWhhbGYvb3BlbnN0 YWNrLW5vdmEKICAgVVJMOiBodHRwczovL2dpdGh1Yi5jb20vU2VtaWhhbGYvY29udHJhaWwtdnJv dXRlcgogICBVUkw6IGh0dHBzOi8vYmx1ZXByaW50cy5sYXVuY2hwYWQubmV0L25vdmEvK3NwZWMv ZnJlZWJzZC1jb21wdXRlLW5vZGUKCiAgIENvbnRhY3Q6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJA c2VtaWhhbGYuY29tPgogICBDb250YWN0OiBNaWNoYcWCIER1YmllbCA8bWRAc2VtaWhhbGYuY29t PgogICBDb250YWN0OiBSYWZhxYIgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCiAgIE9w ZW5TdGFjayBpcyBhIGNsb3VkIG9wZXJhdGluZyBzeXN0ZW0gdGhhdCBjb250cm9scyBsYXJnZSBw b29scyBvZgogICBjb21wdXRlLCBzdG9yYWdlLCBhbmQgbmV0d29ya2luZyByZXNvdXJjZXMgaW4g YSBkYXRhIGNlbnRlci4KICAgT3BlbkNvbnRyYWlsIGlzIGEgbmV0d29yayB2aXJ0dWFsaXphdGlv biAoU0ROKSBzb2x1dGlvbiBjb21wcmlzaW5nIGEKICAgbmV0d29yayBjb250cm9sbGVyLCBhIHZp cnR1YWwgcm91dGVyLCBhbmQgYW4gYW5hbHl0aWNzIGVuZ2luZSwgd2hpY2gKICAgY2FuIGJlIGlu dGVncmF0ZWQgd2l0aCBjbG91ZCBvcmNoZXN0cmF0aW9uIHN5c3RlbXMgbGlrZSBPcGVuU3RhY2sg b3IKICAgQ2xvdWRTdGFjay4KCiAgIFRoZSBnb2FsIG9mIHRoaXMgd29yayBpcyB0byBlbmFibGUg RnJlZUJTRCBhcyBhIGZ1bGx5IHN1cHBvcnRlZCBjb21wdXRlCiAgIGhvc3QgZm9yIE9wZW5TdGFj aywgdXNpbmcgT3BlbkNvbnRyYWlsIHZpcnR1YWxpemVkIG5ldHdvcmtpbmcuIFRoZSBtYWluCiAg IGFyZWFzIG9mIGRldmVsb3BtZW50IGFyZSB0aGUgZm9sbG93aW5nOgoKICAgICAqIE9wZW5TdGFj ayBjb21wdXRlIGRyaXZlciAobm92YS1jb21wdXRlKSBmb3IgdGhlIEZyZWVCU0QgYmh5dmUoNCkK ICAgICAgIGh5cGVydmlzb3IuCiAgICAgKiBPcGVuQ29udHJhaWwgdlJvdXRlciAoZm9yd2FyZGlu Zy1wbGFuZSBrZXJuZWwgbW9kdWxlKSBwb3J0IHRvCiAgICAgICBGcmVlQlNELgogICAgICogSW50 ZWdyYXRpb24gYW5kIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbnMuCgogICBUaGUgY3VycmVudCBz dGF0ZSBvZiBkZXZlbG9wbWVudCBmZWF0dXJlcyBhIHdvcmtpbmcgZGVtbyBvZiBPcGVuU3RhY2sK ICAgd2l0aCBjb21wdXRlIG5vZGUgY29tcG9uZW50cyBydW5uaW5nIG9uIGEgRnJlZUJTRCBob3N0 OgoKICAgICAqIFRoZSBuYXRpdmUgYmh5dmUoNCkgaHlwZXJ2aXNvciBpcyBkcml2ZW4gYnkgYSBu b3ZhLWNvbXB1dGUKICAgICAgIGNvbXBvbmVudCBmb3Igc3Bhd25pbmcgZ3Vlc3QgaW5zdGFuY2Vz IGFuZCBhIG5vdmEtbmV0d29yayBjb21wb25lbnQKICAgICAgIGZvciBwcm92aWRpbmcgc2ltcGxl IG5ldHdvcmtpbmcgYmV0d2VlbiB0aG9zZSBndWVzdHMuCiAgICAgKiBUaGUgbm92YS1uZXR3b3Jr IGFwcHJvYWNoIChiYXNlZCBvbiBsb2NhbCBob3N0IGJyaWRnaW5nKSBpcwogICAgICAgYmVjb21p bmcgYW4gb2Jzb2xldGUgdGVjaG5vbG9neSBpbiBPcGVuU3RhY2sgYW5kIHdhcyB1c2VkIGhlcmUg b25seQogICAgICAgZm9yIGRlbW9uc3RyYXRpb24gYW5kIHByb29mLW9mLWNvbmNlcHQgcHVycG9z ZXMsIHdpdGhvdXQgZXhwbG9yaW5nCiAgICAgICBhbGwgdGhlIHBvc3NpYmxlIGZlYXR1cmVzLgog ICAgICogVGhlIG1haW4gb2JqZWN0aXZlIGlzIHRvIG1vdmUgdG8gT3BlbkNvbnRyYWlsLWJhc2Vk IG5ldHdvcmtpbmcsCiAgICAgICB0aGVyZWZvcmUgYmVjb21pbmcgY29tcGxpYW50IHdpdGggdGhl IG1vZGVybiBPcGVuU3RhY2sgbmV0d29ya2luZwogICAgICAgQVBJICgibmV1dHJvbiIpLgoKICAg VGhpcyBwcm9qZWN0IGlzIHNwb25zb3JlZCBieSBKdW5pcGVyIE5ldHdvcmtzLCBJbmMuCgpPcGVu IHRhc2tzOgoKICAgIDEuIERlY2lkZSBob3cgdG8gaW50ZWdyYXRlIGJoeXZlKDQpIHdpdGggbm92 YS1jb21wdXRlLCBlaXRoZXIgbmF0aXZlbHkKICAgICAgIG9yIHZpYSB0aGUgbGlidmlydCBtYW5h Z2VtZW50IGxheWVyLgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKRnJlZUJTRCBvbiBDdWJpZWJvYXJkezEsMn0K CiAgIFVSTDogaHR0cHM6Ly9naXRodWIuY29tL3RzZ2FuL2FsbHdpbm5lcl9hMTAvYmxvYi9tYXN0 ZXIvaWZfZW1hYy5jCgogICBDb250YWN0OiBHYW5ib2xkIFRzYWdhYW5raHV1IDxnYW5ib2xkQEZy ZWVCU0Qub3JnPgoKICAgQ3ViaWVib2FyZCBpcyBhIHNpbmdsZS1ib2FyZCBjb21wdXRlciBiYXNl ZCBvbiB0aGUgQWxsV2lubmVyIEExMCBTb0MsCiAgIHBvcHVsYXIgb24gY2hlYXAgdGFibGV0cywg cGhvbmVzIGFuZCBtZWRpYSBQQ3MuIFRoZSBzZWNvbmQgdmVyc2lvbgogICBlbmhhbmNlcyB0aGUg Ym9hcmQgbWFpbmx5IGJ5IHJlcGxhY2luZyB0aGUgQWxsV2lubmVyIEExMCBTb0Mgd2l0aCBhbgog ICBBbGxXaW5uZXIgQTIwIHdoaWNoIGNvbnRhaW5zIDIgQVJNIENvcnRleC1BNyBNUENvcmUgQ1BV cyBhbmQgMiBNYWxpLTQwMAogICBHUFVzIChNYWxpLTQwME1QMikuIEluIHRoZSBsYXN0IGZldyBt b250aHMsIHdvcmsgaGFzIGNvbnRpbnVlZCBvbiB0aGVpcgogICBGcmVlQlNEIHBvcnQsIGFuZCBz b21lIHdvcmsgd2FzIGRvbmUgb24gdGhlIEVNQUMgMTAvMTAwIEV0aGVybmV0IGRyaXZlcgogICAo c2VlIGxpbmspLiBUaGUgZHJpdmVyIGlzIG5vdyBpbiBhIGdvb2Qgc2hhcGUsIGhvd2V2ZXIgdGhl IFJYIHNpZGUgaXMKICAgdmVyeSBzbG93IGFuZCB0aGVyZSBpcyBuZWVkIHRvIGhhdmUgYW4gZXh0 ZXJuYWwgRE1BIGRyaXZlciB0aGF0IGNhbiBiZQogICB1c2VkIGluIHRoaXMgY2FzZS4KICAgICBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KCkZyZWVCU0Qgb24gRnJlZXNjYWxlIGkuTVg2IHByb2Nlc3NvcnMKCiAgIFVSTDog aHR0cDovL2xpc3RzLmZyZWVic2Qub3JnL3BpcGVybWFpbC9mcmVlYnNkLWFybS8yMDEzLU5vdmVt YmVyLzAwNjg3Ny5odG1sCgogICBDb250YWN0OiBJYW4gTGVwb3JlIDxpYW5AZnJlZWJzZC5vcmc+ CgogICBUaGUgaS5NWCByYW5nZSBpcyBhIGZhbWlseSBvZiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3Rv ciBwcm9wcmlldGFyeQogICBtaWNyb3Byb2Nlc3NvcnMgZm9yIG11bHRpbWVkaWEgYXBwbGljYXRp b25zIGJhc2VkIG9uIHRoZSBBUk0KICAgYXJjaGl0ZWN0dXJlIGFuZCBmb2N1c2VkIG9uIGxvdy1w b3dlciBjb25zdW1wdGlvbi4gVGhlIGkuTVg2eCBzZXJpZXMgaXMKICAgYmFzZWQgb24gdGhlIEFS TSBDb3J0ZXggQTkgc29sbywgZHVhbCBvciBxdWFkIGNvcmVzLiBJbml0aWFsIHN1cHBvcnQKICAg Zm9yIHRoZW0gaGFzIGJlZW4gY29tbWl0dGVkIHRvIGhlYWQsIGFuZCBtZXJnZWQgdG8gc3RhYmxl LzEwLiBBbGwKICAgbWVtYmVycyBvZiB0aGUgaS5NWDYgZmFtaWx5IChTb2xvLCBEdWFsLCBhbmQg UXVhZCBjb3JlKSBhcmUgc3VwcG9ydGVkLAogICBidXQgU01QIHN1cHBvcnQgb24gdGhlIG11bHRp LWNvcmUgU29DcyBoYXMgbm90IHlldCBiZWVuIGVuYWJsZWQuCgogICBJbml0aWFsIGRyaXZlciBz dXBwb3J0IGluY2x1ZGVzOgoKICAgICAqIFVTQiAoRUhDSSkKICAgICAqIEV0aGVybmV0IChHaWdh Yml0KQogICAgICogU0QgQ2FyZAogICAgICogVUFSVAoKICAgVGhlIGluaXRpYWwgaGFyZHdhcmUg YnJpbmd1cCB3YXMgZG9uZSBvbiBXYW5kYm9hcmQgaGFyZHdhcmUsIHNlZSB0aGUKICAgYW5ub3Vu Y2VtZW50IG9uIGZyZWVic2QtYXJtIGluIHRoZSBsaW5rcyBzZWN0aW9uIGZvciBtb3JlIGluZm9y bWF0aW9uLgoKT3BlbiB0YXNrczoKCiAgICAxLiBXcml0ZSBkcml2ZXJzIGZvciBhZGRpdGlvbmFs IG9uLWNoaXAgaGFyZHdhcmUsIGluY2x1ZGluZyBJMkMsIFNQSSwKICAgICAgIEFIQ0ksIGF1ZGlv LCBhbmQgdmlkZW8uCiAgICAyLiBBZGQgc3VwcG9ydCB0byBGcmVlQlNELWNyb2NoZXQgc2NyaXB0 IHRvIGdlbmVyYXRlIFdhbmRib2FyZCBpbWFnZXMKICAgICBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCkZyZWVCU0Qgb24g RnJlZXNjYWxlIFZ5YnJpZCBWRjZ4eAoKICAgVVJMOiBodHRwOi8vc3Zud2ViLmZyZWVic2Qub3Jn L2NoYW5nZXNldC9iYXNlLzI1ODA1NwoKICAgQ29udGFjdDogUnVzbGFuIEJ1a2luIDxickBmcmVl YnNkLm9yZz4KCiAgIEJhc2ljIHN1cHBvcnQgZm9yIHRoZSBGcmVlc2NhbGUgVnlicmlkIEZhbWls eSBWRjZ4eCBoZXRlcm9nZW5lb3VzIEFSTQogICBDb3J0ZXgtQTUvTTQgU3lzdGVtLW9uLUNoaXAg KFNvQykgd2FzIGFkZGVkIHRvIEZyZWVCU0QgaGVhZC4gVGhlIFZ5YnJpZAogICBWRjZ4eCBmYW1p bHkgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIG5ldyBtb2Rlcm4gQ29ydGV4LUE1LWJhc2Vk CiAgIGxvdy1wb3dlciBBUk0gU29DIGJvYXJkcy4gVnlicmlkIGRldmljZXMgYXJlIGlkZWFsIGZv ciBhcHBsaWNhdGlvbnMKICAgaW5jbHVkaW5nIHNpbXBsZSBITUkgaW4gYXBwbGlhbmNlcyBhbmQg aW5kdXN0cmlhbCBtYWNoaW5lcywgc2VjdXJlCiAgIGNvbnRyb2wgb2YgaW5mcmFzdHJ1Y3R1cmUg YW5kIG1hbnVmYWN0dXJpbmcgZXF1aXBtZW50LCBlbmVyZ3kKICAgY29udmVyc2lvbiBhcHBsaWNh dGlvbnMgc3VjaCBhcyBtb3RvciBkcml2ZXMgYW5kIHBvd2VyIGludmVydGVycywKICAgcnVnZ2Vk aXplZCB3aXJlZCBhbmQgd2lyZWxlc3MgY29ubmVjdGl2aXR5LCBhbmQgY29udHJvbCBvZiBtb2Jp bGUKICAgYmF0dGVyeS1vcGVyYXRlZCBzeXN0ZW1zIHN1Y2ggYXMgcm9ib3RzIGFuZCBpbmR1c3Ry aWFsIHZlaGljbGVzLgoKICAgU3VwcG9ydGVkIGRldmljZSBkcml2ZXJzOgoKICAgICAqIE5BTkQg Rmxhc2ggQ29udHJvbGxlciAoTkZDKQogICAgICogVVNCIEVuaGFuY2VkIEhvc3QgQ29udHJvbGxl ciBJbnRlcmZhY2UgKEVIQ0kpCiAgICAgKiBHZW5lcmFsLVB1cnBvc2UgSW5wdXQvT3V0cHV0IChH UElPKQogICAgICogVW5pdmVyc2FsIEFzeW5jaHJvbm91cyBSZWNlaXZlci9UcmFuc21pdHRlciAo VUFSVCkKCiAgIEFsc28gc3VwcG9ydGVkOgoKICAgICAqIEdlbmVyaWMgSW50ZXJydXB0IENvbnRy b2xsZXIgKEdJQykKICAgICAqIE1QQ29yZSB0aW1lcgogICAgICogZmZlYyBFdGhlcm5ldCBkcml2 ZXIKCk9wZW4gdGFza3M6CgogICAgMS4gQWRkIHN1cHBvcnQgZm9yIGEgbnVtYmVyIG9mIGRpZmZl cmVudCBWRjV4eC0gYW5kIFZGNnh4LWJhc2VkCiAgICAgICBkZXZlbG9wbWVudCBib2FyZHMuCiAg ICAyLiBFeHBhbmQgZGV2aWNlIGRyaXZlciBzdXBwb3J0LCBpbmNsdWRpbmcgZnJhbWVidWZmZXIg YW5kIG90aGVyCiAgICAgICBkZXZpY2VzLgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKRnJlZUJTRCBvbiBOZXdl ciBBUk0gQm9hcmRzCgogICBVUkw6IGh0dHBzOi8vd2lraS5mcmVlYnNkLm9yZy9GcmVlQlNEL2Fy bS9SYWR4YSUyMFJvY2sKICAgVVJMOiBodHRwOi8vc3Zud2ViLmZyZWVic2Qub3JnL2NoYW5nZXNl dC9iYXNlLzI1Njk0OQogICBVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS90c2dhbi9xdWFsY29tbQoK ICAgQ29udGFjdDogR2FuYm9sZCBUc2FnYWFua2h1dSA8Z2FuYm9sZEBGcmVlQlNELm9yZz4KCiAg IFJvY2tjaGlwIGlzIGEgc2VyaWVzIG9mIFNvQyAoU3lzdGVtIG9uIENoaXApIGludGVncmF0ZWQg Y2lyY3VpdHMgdGhhdAogICBhcmUgbWFpbmx5IGZvciBlbWJlZGRlZCBzeXN0ZW1zIGFwcGxpY2F0 aW9ucyBpbiBtb2JpbGUgZW50ZXJ0YWlubWVudAogICBkZXZpY2VzIHN1Y2ggYXMgc21hcnRwaG9u ZXMsIHRhYmxldHMsIGUtYm9va3MsIHNldC10b3AgYm94ZXMsIG1lZGlhCiAgIHBsYXllcnMsIHBl cnNvbmFsIHZpZGVvLCBhbmQgTVAzIHBsYXllcnMuIER1ZSB0byB0aGVpciBldm9sdXRpb24gZnJv bQogICB0aGUgTVAzL01QNCBwbGF5ZXIgbWFya2V0LCBtb3N0IFJvY2tjaGlwIElDcyBmZWF0dXJl IGFkdmFuY2VkIG1lZGlhCiAgIGRlY29kaW5nIGxvZ2ljIGJ1dCBsYWNrIGludGVncmF0ZWQgY2Vs bHVsYXIgcmFkaW8gYmFzZWJhbmRzLiBJbml0aWFsCiAgIHN1cHBvcnQgZm9yIHRoZSBSb2NrY2hp cCBSSzMxODggKFF1YWQgY29yZSBDb3J0ZXggQTkpIFNvQyBpcyBjb21taXR0ZWQKICAgdG8gaGVh ZC4gTm93IEZyZWVCU0QgcnVucyBvbiBSYWR4YSBSb2NrIGFuZCBpdCBzdXBwb3J0cyB0aGUgZm9s bG93aW5nCiAgIHBlcmlwaGVyYWxzOgoKICAgICAqIEV4aXN0aW5nIERXQyBPVEcgZHJpdmVyIGlu IGhvc3QgbW9kZQogICAgICogR1BJTwoKICAgU29tZSB3b3JrIHdhcyBhbHNvIGRvbmUgb24gaW5p dGlhbCBzdXBwb3J0IGZvciB0aGUgUXVhbGNvbW0gU25hcGRyYWdvbgogICBTNCBTb0MsIGZlYXR1 cmluZyB0aGUgS3JhaXQgQ1BVLCB3aGljaCBpcyBjb25zaWRlcmVkIGEgInBsYXRmb3JtIiBmb3IK ICAgdXNlIGluIHNtYXJ0cGhvbmVzLCB0YWJsZXRzLCBhbmQgc21hcnRib29rIGRldmljZXMuIEty YWl0IGhhcyBtYW55CiAgIHNpbWlsYXJpdGllcyB3aXRoIHRoZSBBUk0gQ29ydGV4LUExNSBDUFUg YW5kIGlzIGFsc28gYmFzZWQgb24gdGhlIEFSTXY3CiAgIGluc3RydWN0aW9uIHNldC4gQSBtaW5p bWFsIGNvbnNvbGUgZHJpdmVyIHdhcyB3cml0dGVuLCBhbmQgRnJlZUJTRCdzCiAgIGVhcmx5IGJv b3QgbWVzc2FnZXMgY2FuIGJlIG5vdyBzZWVuIG9uIHRoZSBzZXJpYWwgY29uc29sZS4gVGhlIHRp bWVyCiAgIGRyaXZlciB3b3JrcyB0b28sIGFuZCB0aGUgYm9vdCBub3cgc3RvcHMgYXQgdGhlIG1v dW50cm9vdCBwcm9tcHQuCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpGcmVlQlNEL0VDMgoKICAgVVJMOiBodHRw Oi8vd3d3LmRhZW1vbm9sb2d5Lm5ldC9mcmVlYnNkLW9uLWVjMi8KICAgVVJMOiBodHRwOi8vd3d3 LmRhZW1vbm9sb2d5Lm5ldC9ibG9nLzIwMTMtMTItMDktRnJlZUJTRC1FQzItY29uZmlnaW5pdC5o dG1sCgogICBDb250YWN0OiBDb2xpbiBQZXJjaXZhbCA8Y3BlcmNpdmFAZnJlZWJzZC5vcmc+Cgog ICBBbiBBbWF6b24gTWFjaGluZSBJbWFnZSAoQU1JKSBpcyBhIHNwZWNpYWwgdHlwZSBvZiB2aXJ0 dWFsIGFwcGxpYW5jZQogICB0aGF0IGlzIHVzZWQgdG8gY3JlYXRlIGEgdmlydHVhbCBtYWNoaW5l IHdpdGhpbiB0aGUgQW1hem9uIEVsYXN0aWMKICAgQ29tcHV0ZSBDbG91ZCAoIkVDMiIpLiBJdCBz ZXJ2ZXMgYXMgdGhlIGJhc2ljIHVuaXQgb2YgZGVwbG95bWVudCBmb3IKICAgc2VydmljZXMgZGVs aXZlcmVkIHVzaW5nIEVDMi4gU3VjaCBBTUlzIGFyZSBhdmFpbGFibGUgZm9yIDguMy1SRUxFQVNF CiAgIGFuZCBsYXRlciBGcmVlQlNEIHJlbGVhc2VzLCBhbmQgZXZlcnkgQUxQSEEsIEJFVEEsIGFu ZCBSQyBvZgogICBGcmVlQlNEIDEwLjAuIFN0YXJ0aW5nIGZyb20gRnJlZUJTRCAxMC4wLUJFVEEx LCBGcmVlQlNEL0VDMiBpbWFnZXMgYXJlCiAgIHJ1bm5pbmcgImZ1bGx5IHN1cHBvcnRlZCIgRnJl ZUJTRCBiaW5hcmllcywgYW5kIHN0YXJ0aW5nIGZyb20KICAgRnJlZUJTRCAxMC4wLVJDMSwgRnJl ZUJTRC9FQzIgaW1hZ2VzIGluY2x1ZGUgYSAiY29uZmlnaW5pdCIgc3lzdGVtIGZvcgogICBhdXRv Y29uZmlndXJhdGlvbiB1c2luZyBFQzIgdXNlci1kYXRhLgoKICAgRHVlIHRvIGxpbWl0YXRpb25z IG9mIG9sZCAobTEsIG0yLCBjMSwgdDEpIGluc3RhbmNlIHR5cGVzLAogICAiV2luZG93cyItbGFi ZWxsZWQgaW1hZ2VzIGFyZSByZXF1aXJlZCBmb3IgdGhvc2UgaW5zdGFuY2UgdHlwZXM7CiAgIGhv d2V2ZXIgYWxsIG9mIHRoZSByZWNlbnQgaW5zdGFuY2VzIHR5cGVzIC0tIG0zIChnZW5lcmFsIHB1 cnBvc2UpLCBjMwogICAoaGlnaC1DUFUpLCBhbmQgaTIgKGhpZ2gtSS9PKSAtLSBzdXBwb3J0IEZy ZWVCU0QgYXQgdGhlICJ1bml4IiBwcmljaW5nCiAgIHJhdGVzLgoKICAgVGhlIG1haW50YWluZXIg b2YgdGhpcyBwbGF0Zm9ybSBjb25zaWRlcnMgaXQgdG8gYmUgcmVhZHkgZm9yIHByb2R1Y3Rpb24K ICAgdXNlLgoKT3BlbiB0YXNrczoKCiAgICAxLiBIYW5kIG92ZXIgdGhlIHRhc2sgb2YgYnVpbGRp bmcgRnJlZUJTRCBBTUlzIHRvIHRoZSBSZWxlYXNlCiAgICAgICBFbmdpbmVlcmluZyBUZWFtLgog ICAgMi4gR2V0IEFtYXpvbiB0byBhZGQgIkZyZWVCU0QiIHRvIHRoZSBsaXN0IG9mIHBsYXRmb3Jt cyBzdXBwb3J0ZWQgYnkKICAgICAgIEVDMiwgc28gdGhhdCBpdCBjYW4gc3RvcCBzaG93aW5nIHVw IGFzICJPdGhlciBMaW51eCIuCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpGcmVlQlNEL1hlbgoKICAgVVJMOiBo dHRwOi8vd2lraS54ZW4ub3JnL3dpa2kvRnJlZUJTRF9QVkgKCiAgIENvbnRhY3Q6IFJvZ2VyIFBh dSBNb25uw6kgPHJveWdlckBGcmVlQlNELm9yZz4KICAgQ29udGFjdDogSnVzdGluIFQuIEdpYmJz IDxnaWJic0BGcmVlQlNELm9yZz4KCiAgIFhlbiBpcyBhIG5hdGl2ZSAoYmFyZS1tZXRhbCkgaHlw ZXJ2aXNvciBwcm92aWRpbmcgc2VydmljZXMgdGhhdCBhbGxvdwogICBtdWx0aXBsZSBjb21wdXRl ciBvcGVyYXRpbmcgc3lzdGVtcyB0byBleGVjdXRlIG9uIHRoZSBzYW1lIGNvbXB1dGVyCiAgIGhh cmR3YXJlIGNvbmN1cnJlbnRseS4gWGVuIDQuNCB3aWxsIGJyaW5nIGEgdmlydHVhbGl6YXRpb24g bW9kZSBjYWxsZWQKICAgUFZIIC0tIFBWIChwYXJhdmlydHVhbGl6YXRpb24pIGluIGFuIEhWTSAo ZnVsbHktdmlydHVhbCkgY29udGFpbmVyLgogICBUaGlzIGlzIGVzc2VudGlhbGx5IGEgcGFyYXZp cnR1YWxpemVkIGd1ZXN0IHVzaW5nIHBhcmF2aXJ0dWFsaXplZAogICBkcml2ZXJzIGZvciBib290 IGFuZCBJL08uIE90aGVyd2lzZSBpdCB1c2VzIGhhcmR3YXJlIHZpcnR1YWxpemF0aW9uCiAgIGV4 dGVuc2lvbnMsIHdpdGhvdXQgdGhlIG5lZWQgZm9yIGVtdWxhdGlvbi4KCiAgIEFmdGVyIG1lcmdp bmcgdGhlIGNoYW5nZXMgaW4gb3JkZXIgdG8gaW1wcm92ZSBYZW4gUFZIVk0gc3VwcG9ydCwgd29y awogICBoYXMgc2hpZnRlZCBvbiBnZXR0aW5nIFBWSCBEb21VIHN1cHBvcnQgb24gRnJlZUJTRC4g UGF0Y2hlcyBoYXZlIGJlZW4KICAgcG9zdGVkLCBhbmQgYWZ0ZXIgYSBjb3VwbGUgb2Ygcm91bmRz IG9mIHJldmlldyB0aGUgc2VyaWVzIGxvb2tzIGFsbW9zdAogICByZWFkeSBmb3IgbWVyZ2luZyBp bnRvIGhlYWQuIEFsc28sIHZlcnkgaW5pdGlhbCBwYXRjaGVzIGZvciBGcmVlQlNEIFBWSAogICBE b20wIHN1cHBvcnQgaGFzIGJlZW4gcG9zdGVkLiBTbyBmYXIgdGhlIHBvc3RlZCBzZXJpZXMgb25s eSBmb2N1c2VzIG9uCiAgIGdldHRpbmcgRnJlZUJTRCBib290aW5nIGFzIGEgRG9tMCBhbmQgYmVp bmcgYWJsZSB0byBpbnRlcmFjdCB3aXRoIHRoZQogICBoYXJkd2FyZS4KCiAgIFRoaXMgcHJvamVj dCBpcyBzcG9uc29yZWQgYnkgQ2l0cml4IFN5c3RlbXMgUiZELCBhbmQgU3BlY3RyYSBMb2dpYwog ICBDb3Jwb3JhdGlvbi4KCk9wZW4gdGFza3M6CgogICAgMS4gRmluaXNoIHJldmlld2luZyBhbmQg Y29tbWl0IHRoZSBQVkggRG9tVSBzdXBwb3J0LgogICAgMi4gV29yayBvbiBQVkggRG9tMCBzdXBw b3J0LgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwoKSW50ZWwgSU9NTVUgKFZULWQsIERNQVIpIFN1cHBvcnQKCiAg IFVSTDogaHR0cDovL3N2bndlYi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yNTcyNTEKICAg VVJMOiBodHRwOi8vc3Zud2ViLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzI1OTUxMgoKICAg Q29udGFjdDogS29uc3RhbnRpbiBCZWxvdXNvdiA8a2liQEZyZWVCU0Qub3JnPgoKICAgQW4gSW5w dXQvT3V0cHV0IE1lbW9yeSBNYW5hZ2VtZW50IFVuaXQgKElPTU1VKSBpcyBhIE1lbW9yeSBNYW5h Z2VtZW50CiAgIFVuaXQgKE1NVSkgdGhhdCBjb25uZWN0cyBhIERpcmVjdCBNZW1vcnkgQWNjZXNz LWNhcGFibGUgKERNQS1jYXBhYmxlKQogICBJL08gYnVzIHRvIG1haW4gbWVtb3J5OyB0aGVyZWZv cmUsIEkvTyB2aXJ0dWFsaXphdGlvbiBpcyBwZXJmb3JtZWQgYnkKICAgdGhlIGNoaXBzZXQuIEFu IGV4YW1wbGUgSU9NTVUgaXMgdGhlIGdyYXBoaWNzIGFkZHJlc3MgcmVtYXBwaW5nIHRhYmxlCiAg IChHQVJUKSB1c2VkIGJ5IEFHUCBhbmQgUENJIEV4cHJlc3MgZ3JhcGhpY3MgY2FyZHMuIEludGVs IGhhcyBwdWJsaXNoZWQKICAgYSBzcGVjaWZpY2F0aW9uIGZvciBJT01NVSB0ZWNobm9sb2d5IGFz IFZpcnR1YWxpemF0aW9uIFRlY2hub2xvZ3kgZm9yCiAgIERpcmVjdGVkIEkvTywgYWJicmV2aWF0 ZWQgVlQtZC4KCiAgIEEgVlQtZCBkcml2ZXIgd2FzIGNvbW1pdHRlZCB0byBoZWFkIGFuZCBzdGFi bGUvMTAsIHNvIGJ1c2RtYSg5KSBpcyBub3cKICAgYWJsZSB0byB1dGlsaXplIFZULWQuIFRoZSBm ZWF0dXJlIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQsIGJ1dCBpdCBtYXkgYmUKICAgZW5hYmxlZCB2 aWEgdGhlIGh3LmRtYXIuZW5hYmxlIGxvYWRlcig4KSB0dW5hYmxlIC0tIHNlZSB0aGUgbGlua3Mg Zm9yCiAgIG1vcmUgaW5mb3JtYXRpb24uIFRoZSBpbW1lZGlhdGUgcGxhbnMgaW5jbHVkZSBpbmNy ZWFzaW5nIHRoZSBzdXBwb3J0CiAgIGZvciB0aGlzIGtpbmQgb2YgaGFyZHdhcmUgYnkgdGVzdGlu ZyBhbmQgcHJvdmlkaW5nIHdvcmthcm91bmRzIGZvcgogICBzcGVjaWZpYyBpc3N1ZXMsIGFuZCBi eSBhZGRpbmcgZmVhdHVyZXMgb2YgdGhlIG5leHQgZ2VuZXJhdGlvbiBvZiBJbnRlbAogICBJT01N VS4gSG9wZWZ1bGx5LCB0aGUgZXhpc3RpbmcgYW5kIG5ldyBjb25zdW1lcnMgb2YgVlQtZCB3aWxs IHN0YXJ0IHRvCiAgIHVzZSB0aGUgZHJpdmVyIHNvb24uCgogICBUaGlzIHByb2plY3QgaXMgc3Bv bnNvcmVkIGJ5IFRoZSBGcmVlQlNEIEZvdW5kYXRpb24uCiAgICAgX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgphdWRpdGRp c3RkKDgpCgogICBDb250YWN0OiBQYXdlbCBKYWt1YiBEYXdpZGVrIDxwamRARnJlZUJTRC5vcmc+ CgogICBUaGUgYXVkaXRkaXN0ZCg4KSBkYWVtb24gaXMgcmVzcG9uc2libGUgZm9yIGRpc3RyaWJ1 dGluZyBhdWRpdCB0cmFpbAogICBmaWxlcyBvdmVyIFRDUC9JUCBuZXR3b3JrIHNlY3VyZWx5IGFu ZCByZWxpYWJseS4gQ3VycmVudGx5LCB0aGUgZGFlbW9uCiAgIHVzZXMgVHJhbnNwb3J0IExheWVy IFNlY3VyaXR5IChUTFMpIGZvciBjb21tdW5pY2F0aW9uLCBidXQgb25seQogICBzZXJ2ZXItc2lk ZSBjZXJ0aWZpY2F0ZXMgYXJlIHZlcmlmaWVkLCBiYXNlZCBvbiB0aGUgY2VydGlmaWNhdGUncwog ICBmaW5nZXJwcmludC4gVGhlIG9uZ29pbmcgd29yayB3aWxsIG1ha2UgaXQgcG9zc2libGUgdG8g dXNlIGNsaWVudC1zaWRlCiAgIGNlcnRpZmljYXRlcyBhbmQgd2lsbCBzdXBwb3J0IG1vcmUgY29t cGxldGUgcHVibGljLWtleSBpbmZhc3RydWN0dXJlLAogICB3aGljaCBpbmNsdWRlcyB2YWxpZGF0 aW9uIG9mIHRoZSBlbnRpcmUgY2VydGlmaWNhdGUgY2hhaW4sIGluY2x1ZGluZwogICByZXZvY2F0 aW9uIGNoZWNraW5nIGFnYWluc3QgQ2VydGlmaWNhdGlvbiBSZXZvY2F0aW9uIExpc3RzIGF0IGV2 ZXJ5CiAgIGxldmVsLiBGcm9tIG5vdyBvbiwgYXVkaXRkaXN0ZCg4KSB3aWxsIHN1cHBvcnQgVExT djEuMiBhbmQgUEZTIG1vZGVzCiAgIG9ubHkuIEluIGFkZGl0aW9uLCBpdCB3aWxsIGJlIHBvc3Np YmxlIHRvIHNlbmQgYXVkaXQgdHJhaWwgZmlsZXMgdG8KICAgbXVsdGlwbGUgcmVjZWl2ZXJzLgoK ICAgVGhlIHdvcmsgd2lsbCBiZSBjb21wbGV0ZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBGZWJydWFy eSAyMDE0LgoKICAgVGhpcyBwcm9qZWN0IGlzIHNwb25zb3JlZCBieSBUaGUgRnJlZUJTRCBGb3Vu ZGF0aW9uLgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwoKQmFzZSBHQ0MgVXBkYXRlcwoKICAgQ29udGFjdDogUGVk cm8gR2lmZnVuaSA8cGZnQEZyZWVCU0Qub3JnPgoKICAgVGhlIEdDQyBjb21waWxlciBpbiB0aGUg RnJlZUJTRCBiYXNlIHN5c3RlbSBpcyBvbiBpdHMgd2F5IHRvCiAgIGRlcHJlY2F0aW9uIGFuZCBp cyBvbmx5IHVzZWQgYnkgc29tZSBUaWVyLTIgcGxhdGZvcm1zIGF0IHRoaXMgdGltZS4KICAgV2hp bGUgQ2xhbmcgaXMgbXVjaCBiZXR0ZXIgaW4gbWFueSBhc3BlY3RzLCB3ZSBzdGlsbCBjYW5ub3Qg dXNlIGluIHRoZQogICBiYXNlIHN5c3RlbSBhbGwgdGhlIG5ldyBmZWF0dXJlcyB0aGF0IGl0IGJy aW5ncyB1bnRpbCB3ZSBjYW4gZHJvcCBHQ0MKICAgY29tcGxldGVseS4gQXMgYSBzdG9wLWdhcCBz b2x1dGlvbiwgc2V2ZXJhbCBidWcgZml4ZXMgYW5kIGZlYXR1cmVzIGZyb20KICAgQXBwbGUgR0ND IGFuZCBvdGhlciBzb3VyY2VzIGhhdmUgYmVlbiBwb3J0ZWQgdG8gb3VyIHZlcnNpb24gb2YKICAg R0NDIDQuMi4xIHRvIG1ha2UgaXQgbW9yZSBjb21wYXRpYmxlIHdpdGggQ2xhbmcuIEZyZWVCU0Qn cyBHQ0MgaGFzCiAgIGFkZGVkIG1vcmUgd2FybmluZ3MgYW5kIHNvbWUgZW5oYW5jZW1lbnRzIGxp a2UgLVdtb3N0IGFuZAogICAtV25ld2xpbmUtZW9mLiBBbiBpbXBsZW1lbnRhdGlvbiBmb3IgQXBw bGUncyBibG9ja3MgZXh0ZW5zaW9uIGlzIG5vdwogICBhdmFpbGFibGUsIHRvbywgYW5kIGl0IHdp bGwgYmUgdmVyeSB1c2VmdWwgdG8gZW5oYW5jZSBGcmVlQlNEJ3Mgc3VwcG9ydAogICBmb3IgQXBw bGUncyBHcmFuZCBDZW50cmFsIERpc3BhdGNoIChHQ0QpLgoKT3BlbiB0YXNrczoKCiAgICAxLiBB IG1lcmdlIGZyb20gaGVhZCB0byBzdGFibGUvOSBpcyBiZWluZyBjb25zaWRlcmVkIGJ1dCBpdCBk aXNhYmxlcwogICAgICAgbmVzdGVkIGZ1bmN0aW9ucyBieSBkZWZhdWx0LCBzbyB0aGUgaW1wYWN0 IG9uIHRoZSBQb3J0cyBDb2xsZWN0aW9uCiAgICAgICBuZWVkcyB0byBiZSBldmFsdWF0ZWQuCiAg ICAyLiBObyBmdXJ0aGVyIGRldmVsb3BtZW50IG9mIEdDQyA0LjIgaW4gdGhlIGJhc2Ugc3lzdGVt IGlzIHBsYW5uZWQuCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCgpCU0RJbnN0YWxsIFpGU0Jvb3QKCiAgIFVSTDog aHR0cDovL2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWJzZC1zeXNpbnN0 YWxsCiAgIFVSTDogaHR0cHM6Ly93aWtpLmZyZWVic2Qub3JnL1Jvb3RPblpGUy9HUFRaRlNCb290 LzkuMC1SRUxFQVNFCgogICBDb250YWN0OiBBbGxhbiBKdWRlIDxmcmVlYnNkQGFsbGFuanVkZS5j b20+CiAgIENvbnRhY3Q6IERldmluIFRlc2tlIDxkdGVza2VARnJlZUJTRC5vcmc+CiAgIENvbnRh Y3Q6IFdhcnJlbiBCbG9jayA8d2Jsb2NrQEZyZWVCU0Qub3JnPgoKICAgQlNESW5zdGFsbCBoYXMg YmVlbiB0aGUgZGVmYXVsdCBpbnN0YWxsYXRpb24gcHJvZ3JhbSBzaW5jZQogICBGcmVlQlNEIDku MC1SRUxFQVNFLiBIb3dldmVyLCBpdCBjb3VsZCBub3QgdXRpbGl6ZSBvbmUgb2YgdGhlIGJlc3QK ICAgZmVhdHVyZXMgb2YgRnJlZUJTRCwgWkZTLgoKICAgVGhlIFpGU0Jvb3QgcHJvamVjdCBzdGFy dGVkIGF0IEV1cm9CU0RDb24gMjAxMyBhbmQgcmVhY2hlZCBzdGFibGUKICAgc3RhdHVzIGluIERl Y2VtYmVyLCBqdXN0IGluIHRpbWUgZm9yIEZyZWVCU0QgMTAuMC1SRUxFQVNFLiBDdXJyZW50bHks CiAgIFpGU0Jvb3QgaW1wbGVtZW50cyByb290LW9uLVpGUyB3aXRoIDRrIHBhcnRpdGlvbiBhbGln bm1lbnQsIG9wdGlvbmFsCiAgIGZvcmNlZCA0ayBzZWN0b3JzLCBvcHRpb25hbCBnZWxpKDgpIGZ1 bGwgZGlzayBlbmNyeXB0aW9uLCBhbmQgc3VwcG9ydAogICBmb3IgYm9vdCBlbnZpcm9ubWVudHMu CgogICBBcyBwYXJ0IG9mIFpGU0Jvb3QsIEJTREluc3RhbGwgaXRzZWxmIGFsc28gcmVjZWl2ZWQg YSBudW1iZXIgb2YKICAgdXBkYXRlcywgaW5jbHVkaW5nIGVuaGFuY2VkIGRlYnVnZ2luZywgbW9y ZSBzY3JpcHRhYmlsaXR5LCBhIG5ldyBrZXltYXAKICAgc2VsZWN0aW9uIG1lbnUsIGFuZCBhIG51 bWJlciBvZiBvdGhlciBzbWFsbCBjaGFuZ2VzIHRvIHN0cmVhbWxpbmUgdGhlCiAgIGluc3RhbGxh dGlvbiBwcm9jZXNzLiBUaGUgbmV3IGtleW1hcCBtZW51IGFsbG93cyB0aGUgdXNlciB0byB0ZXN0 IHRoZQogICBzZWxlY3RlZCBrZXltYXAgYmVmb3JlIGNvbnRpbnVpbmcsIHRvIGVuc3VyZSBpdCBp cyB0aGUgZGVzaXJlZCBrZXltYXAuCiAgIE1pbm9yIGNoYW5nZXMgd2VyZSBtYWRlIHRvIHRoZSBu ZXR3b3JrIGNvbmZpZ3VyYXRpb24gZGlhbG9ndWVzIHRvIG1ha2UKICAgdGhlIGlkZW50aWZpY2F0 aW9uIG9mIHdpcmVsZXNzIGludGVyZmFjZXMgZWFzaWVyLgoKICAgQSBudW1iZXIgb2YgYWRkaXRp b25hbCBmZWF0dXJlcyBhcmUgYWxzbyBwbGFubmVkLiBUaGUgdXNlciBzaG91bGQgYmUKICAgYWJs ZSB0byBjcmVhdGUgYWRkaXRpb25hbCBkYXRhc2V0cyBhbmQgYWRqdXN0IHRoZSBwcm9wZXJ0aWVz IG9uIGFsbAogICBkYXRhc2V0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtZW51LiBUaGVyZSBzaG91bGQg YWxzbyBiZSBpbnRlZ3JhdGlvbiB3aXRoCiAgIEJTRENvbmZpZyB0byBhbGxvdyB1c2VycyB0byBp bnN0YWxsIHBhY2thZ2VzIGFuZCB0aGUgdmFyaW91cyBvdGhlcgogICBmdW5jdGlvbmFsaXR5IHRo YXQgd2FzIHByZXZpb3VzbHkgcHJvdmlkZWQgYnkgc3lzaW5zdGFsbC4KCk9wZW4gdGFza3M6Cgog ICAgMS4gSW50ZXJhY3RpdmUgZGF0YXNldCBlZGl0b3IuCiAgICAyLiBEYXRhc2V0IHByb3BlcnR5 IGVkaXRvci4KICAgIDMuIENvbnNpZGVyIHVzaW5nIHNoZWxsIGdlb20oNCkgcGFyc2VyLgogICAg NC4gQlNEQ29uZmlnIGludGVncmF0aW9uLgogICAgNS4gVUZTIGFzIGEgZmlsZSBzeXN0ZW0gb3B0 aW9uLCB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUgZW5jcnlwdGVkIFVGUwogICAgICAgaW5zdGFs bHMuCiAgICA2LiBPcHRpb25hbGx5IG1ha2UgdGhlIGJvb3QgcG9vbCBVRlMgb3IgcmVzaWRlIG9u IFVTQiBkZXZpY2UocykuCiAgICA3LiBGdXJ0aGVyIHN0cmVhbWxpbmUgdGhlIGluc3RhbGxhdGlv biBwcm9jZXNzLgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwoKQ2Fwc2ljdW0gYW5kIENhc3BlcgoKICAgVVJMOiBo dHRwOi8vZnJlZWJzZGZvdW5kYXRpb24uYmxvZ3Nwb3QuY29tLzIwMTMvMTIvZnJlZWJzZC1mb3Vu ZGF0aW9uLWFubm91bmNlcy1jYXBzaWN1bS5odG1sCgogICBDb250YWN0OiBQYXdlbCBKYWt1YiBE YXdpZGVrIDxwamRARnJlZUJTRC5vcmc+CgogICBDYXBzaWN1bSBpcyBhIGxpZ2h0d2VpZ2h0IE9T IGNhcGFiaWxpdHkgYW5kIHNhbmRib3ggZnJhbWV3b3JrCiAgIGltcGxlbWVudGluZyBhIGh5YnJp ZCBjYXBhYmlsaXR5IHN5c3RlbSBtb2RlbC4gVGhlIENhc3BlciBkYWVtb24KICAgZW5hYmxlcyBz YW5kYm94ZWQgYXBwbGljYXRpb24gdG8gdXNlIGZ1bmN0aW9uYWxpdHkgbm9ybWFsbHkgdW5hdmFp bGFibGUKICAgaW4gY2FwYWJpbGl0eS1tb2RlIHNhbmRib3hlcy4KCiAgIFRoZSBDYXNwZXIgZGFl bW9uLCBsaWJjYXNwZXIsIGxpYmNhcHNpY3VtKDMpLCBsaWJudigzKSBhbmQgQ2FzcGVyCiAgIHNl cnZpY2VzIChzeXN0ZW0uZG5zLCBzeXN0ZW0uZ3JwLCBzeXN0ZW0ucHdkLCBzeXN0ZW0ucmFuZG9t IGFuZAogICBzeXN0ZW0uc3lzY3RsKSBoYXZlIGJlZW4gY29tbWl0dGVkIHRvIEZyZWVCU0QgaGVh ZC4gVGhlIHRjcGR1bXAoOCkKICAgdXRpbGl0eSBpbiBoZWFkIG5vdyB1c2VzIHRoZSBzeXN0ZW0u ZG5zIHNlcnZpY2UgdG8gZG8gRE5TIGxvb2t1cHMuIFRoZQogICBrZHVtcCgxKSB1dGlsaXR5IGlu IGhlYWQgbm93IHVzZXMgdGhlIHN5c3RlbS5wd2QgYW5kIHN5c3RlbS5ncnAKICAgc2VydmljZXMg dG8gY29udmVydCB1c2VyIGFuZCBncm91cCBpZGVudGlmaWVycyB0byB1c2VyIGFuZCBncm91cCBu YW1lcy4KCiAgIFRoZXJlIGlzIG9uZ29pbmcgd29yayB0byBzYW5kYm94IG1vcmUgYXBwbGljYXRp b25zLiBJZiB5b3UgYXJlCiAgIGludGVyZXN0ZWQgaW4gaGVscGluZyB0byBtYWtlIEZyZWVCU0Qg bW9yZSBzZWN1cmUgYW5kIHdvdWxkIGxpa2UgdG8KICAgbGVhcm4gYWJvdXQgQ2Fwc2ljdW0gYW5k IENhc3BlciwgZG8gbm90IGhlc2l0YXRlIHRvIGNvbnRhY3QgUGF3ZWwgLS0gaGUKICAgY2FuIHBy b3ZpZGUgY2FuZGlkYXRlIHByb2dyYW1zIHRoYXQgY291bGQgdXNlIHNhbmRib3hpbmcuCgogICBU aGlzIHByb2plY3QgaXMgc3BvbnNvcmVkIGJ5IFRoZSBGcmVlQlNEIEZvdW5kYXRpb24uCiAgICAg X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCgpDZW50cmFsaXplZCBQYW5pYyBSZXBvcnRpbmcKCiAgIFVSTDogaHR0cDovL3d3 dy5kYWVtb25vbG9neS5uZXQvYmxvZy8yMDEzLTExLTA2LWF1dG9tYXRlZC1mcmVlYnNkLXBhbmlj LXJlcG9ydGluZy5odG1sCgogICBDb250YWN0OiBDb2xpbiBQZXJjaXZhbCA8Y3BlcmNpdmFAZnJl ZWJzZC5vcmc+CgogICBXaXRoIHRoZSBzeXN1dGlscy9wYW5pY21haWwgcG9ydCwgYSBtZWNoYW5p c20gaXMgbm93IGluIHBsYWNlIGZvcgogICBhdXRvbWF0ZWQgc3VibWlzc2lvbiBvZiBrZXJuZWwg cGFuaWMgcmVwb3J0cyB0byBhIGNlbnRyYWwgbG9jYXRpb24uIEl0CiAgIGlzIGhvcGVkIHRoYXQg dGhpcyB3aWxsIHByb3ZlIHVzZWZ1bCwgYXMgc2ltaWxhciBzeXN0ZW1zIGhhdmUgZm9yIG90aGVy CiAgIG9wZXJhdGluZyBzeXN0ZW1zLCBpbiBpZGVudGlmeWluZyBjb21tb24gcGFuaWNzIHNvIHRo YXQgZGV2ZWxvcGVycyBjYW4KICAgYmUgYWxlcnRlZCBhbmQgdGhleSBjYW4gYmUgZml4ZWQgZmFz dGVyLgoKICAgSW4gdGhlIGZpcnN0IHR3byBtb250aHMgdGhhdCB0aGlzIG1lY2hhbmlzbSBoYXMg YmVlbiBpbiBwbGFjZSwgMjgKICAga2VybmVsIHBhbmljcyBoYXZlIGJlZW4gcmVwb3J0ZWQuIFRo aXMgaXMgbm93aGVyZSBuZWFyIGVub3VnaCB0byBiZQogICB1c2VmdWwsIHNvIHJlYWRlcnMgYXJl IHN0cm9uZ2x5IGVuY291cmFnZWQgdG8gaW5zdGFsbCB0aGUKICAgc3lzdXRpbHMvcGFuaWNtYWls IHBvcnQgYW5kIGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIHRvIGVuYWJsZSBpdC4KCk9wZW4gdGFz a3M6CgogICAgMS4gR2V0IG1vcmUgc3lzdGVtcyBzZXQgdXAgdG8gYXV0b21hdGljYWxseSBzdWJt aXQgcGFuaWMgcmVwb3J0cyEKICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCkZyZWVCU0QgVGVzdCBTdWl0ZQoKICAg VVJMOiBodHRwOi8vd2lraS5GcmVlQlNELm9yZy9UZXN0U3VpdGUKICAgVVJMOiBodHRwOi8va3l1 YTEubnlpLkZyZWVCU0Qub3JnLwogICBVUkw6IGh0dHA6Ly9saXN0cy5mcmVlYnNkLm9yZy9waXBl cm1haWwvZnJlZWJzZC10ZXN0aW5nLzIwMTMtRGVjZW1iZXIvMDAwMTA5Lmh0bWwKICAgVVJMOiBo dHRwOi8vanVsaXBlZGlhLm1lcm9oLm5ldC8yMDEzLzEyL2ludHJvZHVjaW5nLWZyZWVic2QtdGVz dC1zdWl0ZS5odG1sCgogICBDb250YWN0OiBKdWxpbyBNZXJpbm8gPGptbXZARnJlZUJTRC5vcmc+ CgogICBUaGUgRnJlZUJTRCBUZXN0IFN1aXRlIHByb2plY3QgYWltcyB0byBlcXVpcCBGcmVlQlNE IHdpdGggYQogICBjb21wcmVoZW5zaXZlIHRlc3Qgc3VpdGUgdGhhdCBpcyBlYXN5IHRvIHJ1biBv dXQgb2YgdGhlIGJveCBhbmQgZHVyaW5nCiAgIHRoZSBkZXZlbG9wbWVudCBvZiB0aGUgc3lzdGVt LiBUaGUgdGVzdCBzdWl0ZSBpcyBpbnN0YWxsZWQgaW50bwogICAvdXNyL3Rlc3RzLyBhbmQgdGhl IGt5dWEoMSkgY29tbWFuZC1saW5lIHRvb2wgKGRldmVsL2t5dWEgaW4gdGhlIFBvcnRzCiAgIENv bGxlY3Rpb24pIGlzIHVzZWQgdG8gcnVuIHRoZW0uCgogICBUaGUgYmVuZWZpdHMgb2YgaGF2aW5n IGEgdGVzdCBzdWl0ZSB0aGF0IGlzIGVhc3kgdG8gdXNlIGFuZAogICBjb250aW51b3VzbHkgcnVu IGFyZSBvYnZpb3VzOiByZWdyZXNzaW9ucyBjYW4gYmUgY2F1Z2h0IHNvb25lciByYXRoZXIKICAg dGhhbiBsYXRlciBhbmQgdGhlIFJlbGVhc2UgRW5naW5lZXJpbmcgVGVhbSBjYW4gYmV0dGVyIGFz c2VzcyB0aGUKICAgcXVhbGl0eSBvZiB0aGUgdHJlZSBiZWZvcmUgZGVjaWRpbmcgdG8gY3V0IGEg cmVsZWFzZS4gQWRkaXRpb25hbGx5LAogICBiZWNhdXNlIHdlIGNob29zZSB0byBpbnN0YWxsIHRo ZSB0ZXN0cywgd2UgYWxsb3cgYW55IGVuZCB1c2VyIHRvCiAgIHBlcmZvcm0gc2FuaXR5IGNoZWNr cyBvbiBuZXcgaW5zdGFsbGF0aW9ucyBvZiB0aGUgc3lzdGVtIG9uIHRoZWlyCiAgIHBhcnRpY3Vs YXIgaGFyZHdhcmUgY29uZmlndXJhdGlvbiAtLSBhIHZlcnkgYXR0cmFjdGl2ZSB0aGluZyB0byBk byB3aGVuCiAgIGRlcGxveWluZyBwcm9kdWN0aW9uIHNlcnZlcnMuCgogICBEdXJpbmcgdGhlIGxh c3QgZmV3IG1vbnRocywgd2UgaGF2ZSBhZGRlZCB0aGUgbmVjZXNzYXJ5IHBpZWNlcyB0byB0aGUK ICAgYnVpbGQgc3lzdGVtIHRvIHN1cHBvcnQgYnVpbGRpbmcgYW5kIGluc3RhbGxpbmcgdGVzdCBw cm9ncmFtcyBvZgogICB2YXJpb3VzIGtpbmRzLiBUbyBkZW1vbnN0cmF0ZSB0aGUgZnVuY3Rpb25h bGl0eSBvZiB0aGVzZSwgc29tZSB0ZXN0CiAgIHByb2dyYW1zIHdlcmUgYWRkZWQgYW5kIG90aGVy cyB3ZXJlIG1pZ3JhdGVkIGZyb20gdGhlIG9sZCB0ZXN0aW5nIHRyZWUKICAgaW4gdG9vbHMvcmVn cmVzc2lvbi8gdG8gdGhlIG5ldyBsYXlvdXQgZm9yIHRlc3RzLgoKICAgVGhlIGN1cnJlbnQgdGVz dCBzdWl0ZSBzaG91bGQgYmUgc2VlbiBhcyBhIHByb29mIG9mIGNvbmNlcHQgYXQgdGhpcwogICBw b2ludDogaXQgaXMgb25seSBjb21wb3NlZCBvZiBhIHNtYWxsIHNldCBvZiB0ZXN0IHByb2dyYW1z IGFuZCB0aGUgZ29hbAogICBpcyB0byBnZXQgdGhlIGluZnJhc3RydWN0dXJlIGluIHBsYWNlIGJl Zm9yZSBtYXNzLW1pZ3JhdGluZyBleGlzdGluZwogICB0ZXN0IGNvZGUgYW5kL29yIGltcG9ydGlu ZyBleHRlcm5hbCB0ZXN0cy4KCiAgIEFzIHBhcnQgb2YgdGhpcyB3b3JrLCB0d28gbmV3IHJlbGVh c2VzIG9mIEt5dWEgd2VyZSBwdWJsaXNoZWQuIE9mCiAgIHNwZWNpYWwgaW50ZXJlc3QgaXMgdGhl IGFkZGl0aW9uIG9mIGEgVEFQLWNvbXBsaWFudCBiYWNrZW5kIHNvIHRoYXQKICAgZXhpc3Rpbmcg dGVzdHMgZnJvbSB0b29scy9yZWdyZXNzaW9uLyBjYW4gYmUgcGx1Z2dlZCBpbnRvIHRoZSB0ZXN0 CiAgIHN1aXRlIHdpdGggbWluaW11bSBlZmZvcnQuCgogICBBcyBvZiBEZWNlbWJlciAzMXN0LCB0 aGUgYmFzaWMgY29udGludW91cyB0ZXN0aW5nIGluZnJhc3RydWN0dXJlIGlzIHVwCiAgIGFuZCBy dW5uaW5nLCBzZWUgdGhlIGxpbmtzIHNlY3Rpb24gZm9yIHRoZSBob21lIHBhZ2UuIEZvciBmdXJ0 aGVyCiAgIGluZm9ybWF0aW9uLCBwbGVhc2Ugc2VlIHRoZSByZWxhdGVkIGFubm91bmNlbWVudCBh bmQgYmxvZyBwb3N0IG9uIHRoZQogICBzdWJqZWN0IChhbHNvIGluIHRoZSBsaW5rcyBzZWN0aW9u KS4KCk9wZW4gdGFza3M6CgogICAgMS4gV2UgaGF2ZSB0aHJlZSBtYWNoaW5lcyBmb3IgdGhlIHRl c3QgY2x1c3Rlci4gQXQgdGhlIG1vbWVudCwgb25seQogICAgICAgb25lIG9mIHRoZW0gaXMgaW4g dXNlIHRvIGNvbnRpbnVvdXNseSB0ZXN0IGFtZDY0IG9uIGJvdGggaGVhZCBhbmQKICAgICAgIHN0 YWJsZS8xMC4gV2UgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSByaWdodCBsZXZlbCBvZiBwYXJhbGxl bGl6YXRpb24KICAgICAgIHRvIHB1dCBvdGhlciBtYWNoaW5lcyB0byB1c2UgLS0gYnV0IGEgZmly c3QgZWFzeSBjdXQgbWF5IGJlIHRvIGp1c3QKICAgICAgIHRlc3QgZGlmZmVyZW50IGFyY2hpdGVj dHVyZXMgKHdpdGggdGhlIGhlbHAgb2YgUUVNVSkuCiAgICAyLiBSZWxhdGVkIHRvIHRoZSBhYm92 ZSwgdGhlIEt5dWEgcmVwb3J0aW5nIGVuZ2luZSBuZWVkcyBzaWduaWZpY2FudAogICAgICAgdHVu aW5nIHRvIG1ha2UgdGhlIHJlcG9ydHMgbmljZSBhbmQgY2xlYW4uIElkZWFsbHksIEt5dWEgc2hv dWxkIGJlCiAgICAgICBhYmxlIHRvIGNvYWxlc2NlIHJlc3VsdHMgZnJvbSBkaWZmZXJlbnQgcnVu cyBpbnRvIGEgc2luZ2xlIGxvY2F0aW9uCiAgICAgICBhbmQgZ2VuZXJhdGUgY29oZXNpdmUgcmVw b3J0cyBvdXQgb2YgdGhlbS4gRml4aW5nIHRoaXMgaXMgYSBoaWdoCiAgICAgICBwcmlvcml0eS4K ICAgIDMuIEEgdHV0b3JpYWwgb24gd3JpdGluZyB0ZXN0cyBmb3IgRnJlZUJTRCBoYXMgYmVlbiBw cm9wb3NlZCBmb3IKICAgICAgIEFzaWFCU0RDb24gMjAxNC4gVGhlIG91dGNvbWUgb2YgdGhlIHBy b3Bvc2FsIGlzIHN0aWxsIHVua25vd24sIGJ1dAogICAgICAgc3RheSB0dW5lZCEKICAgIDQuIFBv cnQsIHBvcnQsIGFuZCBwb3J0IG1vcmUgdGVzdHMgdG8gdGhlIG5ldyB0ZXN0IHN1aXRlLiBBIHRl c3Qgc3VpdGUKICAgICAgIGlzIHdvcnRobGVzcyBpZiBpdCBkb2VzIG5vdCB2YWxpZGF0ZSBzdHVm Zi4gU3RheSB0dW5lZCBmb3IgYQogICAgICAgcmVxdWVzdCBmb3IgaGVscCBvbmNlIHdlIGhhdmUg cHV0IGFsbCBiYXNpYyBwaWVjZXMgaW4gcGxhY2UgYW5kCiAgICAgICBoYXZlIHN0cmVhbWxpbmVk IHRoZSBtaWdyYXRpb24gcHJvY2Vzcy4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KClRoZSBMTERCIERlYnVnZ2Vy CgogICBVUkw6IGh0dHBzOi8vd2lraS5mcmVlYnNkLm9yZy9sbGRiCgogICBDb250YWN0OiBFZCBN YXN0ZSA8ZW1hc3RlQEZyZWVCU0Qub3JnPgoKICAgTExEQiBpcyB0aGUgZGVidWdnZXIgaW4gdGhl IExMVk0gZmFtaWx5IG9mIHByb2plY3RzLiBJdCBzdXBwb3J0cyBNYWMgT1MKICAgWCwgTGludXgs IGFuZCBGcmVlQlNELCB3aXRoIG9uZ29pbmcgd29yayB0byBzdXBwb3J0IFdpbmRvd3MuCgogICBJ biB0aGUgbGFzdCBxdWFydGVyIG9mIDIwMTMsIExMREIgZ2FpbmVkIHN1cHBvcnQgZm9yIGxpdmUK ICAgKHB0cmFjZSgyKS1iYXNlZCkgZGVidWdnaW5nIG9mIG11bHRpdGhyZWFkZWQgcHJvY2Vzc2Vz IG9uIEZyZWVCU0QuCiAgIEluaXRpYWwgRnJlZUJTRCBNSVBTIHRhcmdldCBzdXBwb3J0IGhhcyBh bHNvIGJlZW4gY29tbWl0dGVkLCBhbG9uZyB3aXRoCiAgIGEgbnVtYmVyIG9mIGVuZGlhbm5lc3Mg Zml4ZXMgaW4gdGhlIGdlbmVyYWwgTExEQiBpbmZyYXN0cnVjdHVyZS4KCiAgIFRoZSBMTERCIHNu YXBzaG90IGluIHRoZSBGcmVlQlNEIHRyZWUgd2FzIHVwZGF0ZWQgdG8gcjE5NjMyMi4gQ3VycmVu dGx5CiAgIGRpc2FibGVkIGJ5IGRlZmF1bHQsIGl0IHdpbGwgYmUgZW5hYmxlZCBmb3IgYW1kNjQg YWZ0ZXIgdGhlIGltcG9ydCBvZgogICBDbGFuZyAzLjQuIEluIHRoZSBpbnRlcmltLCBpdCBtYXkg YmUgZW5hYmxlZCBieSBhZGRpbmcgV0lUSF9MTERCPSB0bwogICBzcmMuY29uZig1KS4KCiAgIFRo aXMgcHJvamVjdCBpcyBzcG9uc29yZWQgYnkgREFSUEEvQUZSTCwgU1JJIEludGVybmF0aW9uYWws IGFuZAogICBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZS4KCk9wZW4gdGFza3M6CgogICAgMS4gVXBk YXRlIHRoZSBpbi10cmVlIHNuYXBzaG90IHRvIGJ1aWxkIGFmdGVyIHRoZSBDbGFuZyAzLjQgaW1w b3J0LgogICAgMi4gRml4IGFtZDY0IHdhdGNocG9pbnRzLgogICAgMy4gVGVzdCBhbmQgZml4IHRo ZSBpMzg2IHBvcnQuCiAgICA0LiBJbXBsZW1lbnQgRnJlZUJTRCBBUk0gc3VwcG9ydC4KICAgIDUu IEFkZCBzdXBwb3J0IGZvciBrZXJuZWwgZGVidWdnaW5nIChsaXZlIGxvY2FsIGFuZCByZW1vdGUg ZGVidWdnaW5nLAogICAgICAgYW5kIGNvcmUgZmlsZXMpLgogICAgNi4gRml4IHRoZSByZW1haW5p bmcgdGVzdCBzdWl0ZSBmYWlsdXJlcy4KICAgIDcuIEVuYWJsZSBieSBkZWZhdWx0IG9uIHRoZSBh bWQ2NCBhcmNoaXRlY3R1cmUuCiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpGcmVlQlNEIFB5dGhvbiBQb3J0cwoK ICAgVVJMOiBodHRwczovL3dpa2kuRnJlZUJTRC5vcmcvUHl0aG9uCiAgIFVSTDogaXJjOi8vZnJl ZWJzZC1weXRob25AaXJjLmZyZWVub2RlLm5ldAoKICAgQ29udGFjdDogRnJlZUJTRCBQeXRob24g VGVhbSA8cHl0aG9uQEZyZWVCU0Qub3JnPgoKICAgUHl0aG9uIGlzIGEgd2lkZWx5IHVzZWQgZ2Vu ZXJhbC1wdXJwb3NlLCBoaWdoLWxldmVsIHByb2dyYW1taW5nCiAgIGxhbmd1YWdlLiBGb3IgbWFu eSBvcGVyYXRpbmcgc3lzdGVtcywgUHl0aG9uIGlzIGEgc3RhbmRhcmQgY29tcG9uZW50OwogICBp dCBzaGlwcyB3aXRoIEZyZWVCU0QgYXMgd2VsbC4gQSBsb3Qgb2YgcHJvZ3Jlc3MgaGFzIGJlZW4g bWFkZSBhcm91bmQKICAgdGhlIEZyZWVCU0QgUHl0aG9uIHBvcnRzIGluIHRoZSBsYXN0IHF1YXJ0 ZXIuCgogICBUaGUgZGV2ZWwvcHktZGlzdHJpYnV0ZSBwb3J0IGhhcyBiZWVuIHJlcGxhY2VkIGJ5 IHRoZSByZWZyZXNoZWQKICAgZGV2ZWwvcHktc2V0dXB0b29scyBwb3J0LCB3aGljaCBjb21lcyB3 aXRoIGEgbG90IG9mIGZlYXR1cmVzIHRoYXQKICAgc2ltcGxpZnkgdGhlIHdheXMgb2YgaW5zdGFs bGluZyBQeXRob24gcGFja2FnZXMuIFRoZSBjaGFuZ2UgYWxzbyBsZWQgdXMKICAgdG8gaW5zdGFs bCBldmVyeXRoaW5nIHRocm91Z2ggU2V0dXB0b29scyBub3csIHdoaWNoIHJlc2VtYmxlcyBhIFB5 SVAgYQogICBiaXQgYW5kIGFsbG93cyB1cyB0byBwZXJmb3JtIHNvbWUgbWFqb3IgY2xlYW51cCBv biB0aGUgZGlzdHV0aWxzCiAgIGluc3RhbGxhdGlvbiBiZWhhdmlvdXIuCgogICBUaGUgaW1wbGlj aXQgbGFuZy9weXRob24gYnVpbGQgYW5kIHJ1bi10aW1lIGRlcGVuZGVuY3kgd2FzIHJlbW92ZWQg ZnJvbQogICB0aGUgcG9ydHMgaW5mcmFzdHJ1Y3R1cmUuIEV2ZXJ5IHBvcnQgbm93IGRlcGVuZHMg b24gYSBzcGVjaWZpYyBQeXRob24KICAgdmVyc2lvbiBvciBvbiB0aGUgbGFuZy9weXRob24gbWV0 YXBvcnQuIFRoaXMgcHJldmVudHMgY29tcGF0aWJpbGl0eQogICBpc3N1ZXMgZm9yIHBvcnRzIHRo YXQgZGVwZW5kIG9uIFB5dGhvbiAyLnggT1IgUHl0aG9uIDMueCBleGNsdXNpdmVseSwKICAgYnV0 IHVzZSB0aGUgcHl0aG9uIGNvbW1hbmQsIHdoaWNoIG1pZ2h0IHBvaW50IHRvIGEgdmVyc2lvbiBv ZgogICBpbmNvbXBhdGlibGUgdXNlciBjaG9pY2UuCgogICBUaGUgbGFuZy9weXRob24yNyBwb3J0 IHdhcyB1cGRhdGVkIHRvIHZlcnNpb24gMi43LjYsIGFuZCB0aGUKICAgbGFuZy9weXRob24zMyBw b3J0IHdhcyB1cGRhdGVkIHRvIHZlcnNpb24gMy4zLjMsIGFuZCB0aGUgbGFuZy9weXB5IHBvcnQK ICAgd2FzIHVwZGF0ZWQgdG8gdmVyc2lvbiAyLjIuMS4KCiAgIFdlIGFyZSBjdXJyZW50bHkgd29y a2luZyBvbiB0aGUgbmVjZXNzYXJ5IGluZnJhc3RydWN0dXJlIHF1aXJrcyB0bwogICBzdXBwb3J0 IGRpZmZlcmVudCBQeXRob24gdmVyc2lvbnMgZm9yIHRoZSBzYW1lIHBvcnQuIE1vc3Qgb2YgdGhl IHdvcmsKICAgaGFzIGJlZW4gZG9uZSBhbmQgbmVlZHMgdG8gYmUgdGVzdGVkIGJlZm9yZSBpdCBj YW4gYmUgaW50ZWdyYXRlZC4KCk9wZW4gdGFza3M6CgogICAgMS4gRGV2ZWxvcCBhIGhpZ2gtbGV2 ZWwgYW5kIGxpZ2h0d2VpZ2h0IFB5dGhvbiBQb3J0cyBQb2xpY3kuCiAgICAyLiBBZGQgc3VwcG9y dCBmb3IgZ3JhbnVsYXIgZGVwZW5kZW5jaWVzIChmb3IgZXhhbXBsZSA+PTEuMCBvciA8Mi4wKS4K ICAgIDMuIExvb2sgYXQgd2hhdCBhZGRpbmcgcGlwIHN1cHBvcnQgbG9va3MgbGlrZS4KICAgIDQu IENvbnZlcnQgYWxsIFVTRV9QWURJU1RVVElMUz1lYXN5X2luc3RhbGwgZW50cmllcyB0byB5ZXMg YW5kIHJlbW92ZQogICAgICAgdGhlIHVzZSBvZiBlYXN5X2luc3RhbGwgZnJvbSB0aGUgcG9ydHMg aW5mcmFzdHJ1Y3R1cmUuCiAgICA1LiBNb3JlIHRhc2tzIGNhbiBiZSBmb3VuZCBvbiB0aGUgdGVh bSdzIHdpa2kgcGFnZSAoc2VlIGxpbmtzKS4KICAgICBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KCkdOT01FL0ZyZWVCU0QK CiAgIFVSTDogaHR0cDovL3d3dy5GcmVlQlNELm9yZy9nbm9tZS8KICAgVVJMOiBodHRwOi8vc3Zu d2ViLmZyZWVic2Qub3JnL2NoYW5nZXNldC9wb3J0cy8zMzQ2NjEKCiAgIENvbnRhY3Q6IEZyZWVC U0QgR05PTUUgVGVhbSA8Z25vbWVARnJlZUJTRC5vcmc+CgogICBHTk9NRSBpcyBhIGRlc2t0b3Ag ZW52aXJvbm1lbnQgYW5kIGdyYXBoaWNhbCB1c2VyIGludGVyZmFjZSB0aGF0IHJ1bnMKICAgb24g dG9wIG9mIGEgY29tcHV0ZXIgb3BlcmF0aW5nIHN5c3RlbS4gR05PTUUgaXMgcGFydCBvZiB0aGUg R05VIFByb2plY3QKICAgYW5kIGNhbiBiZSB1c2VkIHdpdGggdmFyaW91cyBVbml4LWxpa2Ugb3Bl cmF0aW5nIHN5c3RlbXMsIGluY2x1ZGluZwogICBGcmVlQlNELgoKICAgSW4gdGhpcyBxdWFydGVy LCBNQVRFIDEuNiB3YXMgZmluYWxseSBpbXBvcnRlZCBpbnRvIHRoZSBQb3J0cwogICBDb2xsZWN0 aW9uLCB0aGFua3MgdG8gdGhlIGVmZm9ydHMgb2YgSmVyZW15IE1lc3Nlbmdlci4gTUFURSBpcyBh CiAgIGRlc2t0b3AgZW52aXJvbm1lbnQgZm9ya2VkIGZyb20gdGhlIG5vdy11bm1haW50YWluZWQg Y29kZSBiYXNlIG9mCiAgIEdOT01FIDIsIHRoZXJlZm9yZSBpdCBpcyBiYXNpY2FsbHkgYSByZXBs YWNlbWVudCBmb3IgR05PTUUgMi4gSXQKICAgcmVjb21tZW5kZWQgZm9yIHVzZXJzIHdhbnRpbmcg dG8ga2VlcCBHTk9NRSAyIGFzIHRoZWlyIGRlc2t0b3AgdG8KICAgc3dpdGNoIHNpbmNlIEdOT01F IDIgd2lsbCBiZSByZXBsYWNlZCBieSBHTk9NRSAzIGluIHRoZSBuZWFyIGZ1dHVyZS4KICAgVGhp cyBzd2l0Y2ggd2lsbCBiZSBhbm5vdW5jZWQgaW4gYWR2YW5jZSwgc28gcGVvcGxlIHdpbGwgaGF2 ZSB0aW1lIHRvCiAgIG1vdmUgdG8gTUFURSBpZiB0aGV5IGhhdmUgbm90IGFscmVhZHkuIFRoZSBj b21wbGV0ZSBNQVRFLWJhc2VkIGRlc2t0b3AKICAgZW52aXJvbm1lbnQgY2FuIGJlIGluc3RhbGxl ZCB2aWEgdGhlIHgxMS9tYXRlIHBvcnQsIG9yLCBmb3IgYSBtaW5pbWFsCiAgIGluc3RhbGwsIHgx MS9tYXRlLWJhc2UuCgogICBPdXIgaG9tZSBwYWdlIGlzIHF1aXRlIG91dCBvZiBkYXRlLiBBbiB1 cGRhdGUgZm9yIGl0IGZvciBHTk9NRSAzLjYgaXMKICAgdW5kZXJ3YXkuIFBhcnQgb2YgdGhpcyB1 cGRhdGUgaXMgcmV3cml0aW5nIGFuZCB1cGRhdGluZyB0aGUgb2xkIEdOT01FCiAgIHBvcnRpbmcg Z3VpZGUgYXMgYSBjaGFwdGVyIG9mIHRoZSBQb3J0ZXIncyBIYW5kYm9vay4KCiAgIEFub3RoZXIg bWFqb3IgdGFzayByZXF1aXJlZCBmb3IgZ2V0dGluZyBhIGJsZWVkaW5nLWVkZ2UgR05PTUUgdG8g YnVpbGQKICAgb24gRnJlZUJTRCBtb3N0bHkgb3V0LW9mLXRoZSBib3ggaXMgbW92aW5nIHRvIEpI YnVpbGQgd2l0aCBzb21lIGN1c3RvbQogICBydWxlcy4gVGhpcyBpcyBkb25lIHRvIGZpbmQgYW5k IGZpeCBjb21waWxlIGlzc3VlcyBvbiBvdGhlciBCU0RzIG1vcmUKICAgcXVpY2tseS4KCk9wZW4g dGFza3M6CgogICAgMS4gR05PTUUgMiBwb3J0cyBzdGlsbCBuZWVkIHRvIGJlIHNvcnRlZCBvdXQg dG8gZXZhbHVhdGUgd2hpY2ggR05PTUUgMgogICAgICAgY29tcG9uZW50cyB3aWxsIGJlIGdvbmUg b3IgYmUgcmVwbGFjZWQgd2l0aCB0aGVpciBuZXdlciBHTk9NRSAzCiAgICAgICB2ZXJzaW9ucy4g VGhpcyB0YXNrIGlzIGN1cnJlbnQgaGFsdGVkIHVudGlsIHdlIGNhbiBnZXQgdGhlCiAgICAgICBk b2N1bWVudGF0aW9uIGludG8gYSBzaGFwZSBnb29kIGVub3VnaCB0byBnYXRoZXIgdGhlIGlzc3Vl cyBhbmQKICAgICAgIGRvY3VtZW50IHRoZSBtaWdyYXRpb24sIGluY2x1ZGluZyBob3cgdG8gYXZv aWQgdGhlIG1pZ3JhdGlvbiBpZiB0aGUKICAgICAgIHVwZ3JhZGUgaXMgbm90IHByZWZlcnJlZC4g KFRoaXMgZG9lcyBub3QgbWVhbiB3ZSBkbyBub3Qgd2FudCB0bwogICAgICAga25vdyBhYm91dCBp c3N1ZXMgd2l0aCB1cGdyYWRpbmcsIHRob3VnaCkuCiAgICAyLiBIZWxwIHRoZSBYMTEgVGVhbSB3 aXRoIENhaXJvIDEuMTIsIHNpbmNlIHRoZSBuZXh0IHZlcnNpb24gb2YKICAgICAgIEdOT01FIDMg KDMuMTIpIHdpbGwgbmVlZCBhbiB1cC10by1kYXRlIHZlcnNpb24gb2YgUGFuZ28gYW5kIEdUSyAz LgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwoKS0RFL0ZyZWVCU0QKCiAgIFVSTDogaHR0cDovL0ZyZWVCU0Qua2Rl Lm9yZwogICBVUkw6IGh0dHA6Ly9GcmVlQlNELmtkZS5vcmcvYXJlYTUxLnBocAogICBVUkw6IGh0 dHA6Ly9wb3J0c2NvdXQuZnJlZWJzZC5vcmcva2RlQGZyZWVic2Qub3JnLmh0bWwKCiAgIENvbnRh Y3Q6IEtERSBGcmVlQlNEIFRlYW0gPGtkZUBGcmVlQlNELm9yZz4KCiAgIEtERSBpcyBhbiBpbnRl cm5hdGlvbmFsIGZyZWUgc29mdHdhcmUgY29tbXVuaXR5IHByb2R1Y2luZyBhbiBpbnRlZ3JhdGVk CiAgIHNldCBvZiBjcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbnMgZGVzaWduZWQgdG8gcnVuIG9u IExpbnV4LCBGcmVlQlNELAogICBTb2xhcmlzLCBNaWNyb3NvZnQgV2luZG93cywgYW5kIE9TIFgg c3lzdGVtcy4gVGhlIEtERS9GcmVlQlNEIFRlYW0gaGF2ZQogICBjb250aW51ZWQgdG8gaW1wcm92 ZSB0aGUgZXhwZXJpZW5jZSBvZiBLREUgc29mdHdhcmUgYW5kIFF0IHVuZGVyCiAgIEZyZWVCU0Qu CgogICBEdXJpbmcgbGFzdCBxdWFydGVyLCB0aGUgdGVhbSBoYXMga2VwdCBtb3N0IG9mIHRoZSBL REUgYW5kIFF0IHBvcnRzCiAgIHVwLXRvLWRhdGUsIHdvcmtpbmcgb24gdGhlIGZvbGxvd2luZyBy ZWxlYXNlczoKCiAgICAgKiBLREUgU0MgKGFyZWE1MSk6IDQuMTEuMiwgNC4xMS4zLCA0LjExLjQK ICAgICAqIFF0OiA0LjguNSBhbmQgNS4yIChhcmVhNTEpCiAgICAgKiBQeVF0OiA0LjEwLjM7IFNJ UDogNC4xNS4yOyBRU2NpbnRpbGxhMjogMi44CiAgICAgKiBRdCBDcmVhdG9yIDIuOC4wCiAgICAg KiBLRGV2ZWxvcDogNC41LjIKICAgICAqIENhbGxpZ3JhOiAyLjcuNQogICAgICogQ01ha2U6IDIu OC4xMiwgMi44LjEyLjEKCiAgIEFzIGEgcmVzdWx0LCBhY2NvcmRpbmcgdG8gUG9ydFNjb3V0LCBv dXIgdGVhbSBoYXMgNDY0IHBvcnRzIChkb3duIGZyb20KICAgNDczKSwgb2Ygd2hpY2ggODguMTUl IGFyZSB1cC10by1kYXRlIChkb3duIGZyb20gOTguNzMlKS4gaVhzeXN0ZW1zIEluYy4KICAgY29u dGludWVzIHRvIHByb3ZpZGUgYSBtYWNoaW5lIGZvciB0aGUgdGVhbSB0byBidWlsZCBwYWNrYWdl cyBhbmQgdG8KICAgdGVzdCB1cGRhdGVzLiBpWHN5c3RlbXMgSW5jLiBoYXMgYmVlbiBwcm92aWRp bmcgdGhlIEtERS9GcmVlQlNEIFRlYW0KICAgd2l0aCBzdXBwb3J0IGZvciBxdWl0ZSBhIGxvbmcg dGltZSBhbmQgd2UgYXJlIHZlcnkgZ3JhdGVmdWwgZm9yIHRoYXQuCgogICBBcyB1c3VhbCwgdGhl IHRlYW0gaXMgYWx3YXlzIGxvb2tpbmcgZm9yIG1vcmUgdGVzdGVycyBhbmQgcG9ydGVycyBzbwog ICBwbGVhc2UgY29udGFjdCB1cyBvciB2aXNpdCBvdXIgaG9tZSBwYWdlIChzZWUgbGlua3MpLiBJ dCB3b3VsZCBiZQogICBlc3BlY2lhbGx5IHVzZWZ1bCB0byBoYXZlIG1vcmUgaGVscGluZyBoYW5k cyBvbiB0YXNrcyBzdWNoIGFzIGdldHRpbmcKICAgcmlkIG9mIHRoZSBkZXBlbmRlbmN5IG9uIHRo ZSBkZWZ1bmN0IEhBTCBwcm9qZWN0IGFuZCBwcm92aWRpbmcKICAgaW50ZWdyYXRpb24gd2l0aCBL REUncyBCbHVlZGV2aWwgQmx1ZXRvb3RoIGludGVyZmFjZS4KCk9wZW4gdGFza3M6CgogICAgMS4g VXBkYXRlIG91dC1vZi1kYXRlIHBvcnRzLCBzZWUgbGlua3MgZm9yIGEgbGlzdC4KICAgIDIuIFdv cmtlIG9uIEtERSA0LjEyIGFuZCBRdCA1LgogICAgMy4gTWFrZSBzdXJlIHRoZSB3aG9sZSBLREUg c3RhY2sgKGluY2x1ZGluZyBRdCkgYnVpbGRzIGFuZCB3b3JrcwogICAgICAgY29ycmVjdGx5IHdp dGggQ2xhbmcgYW5kIGxpYmMrKy4KICAgIDQuIFJlbW92ZSB0aGUgZGVwZW5kZW5jeSBvbiBIQUwu CiAgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCgpXaW5lL0ZyZWVCU0QKCiAgIFVSTDogaHR0cDovL3dpa2kuRnJlZUJT RC5vcmcvV2luZQogICBVUkw6IGh0dHA6Ly93aWtpLkZyZWVCU0Qub3JnL2kzODYtV2luZQogICBV Ukw6IGh0dHA6Ly93d3cud2luZWhxLm9yZy8KCiAgIENvbnRhY3Q6IEdlcmFsZCBQZmVpZmZlciA8 Z2VyYWxkQEZyZWVCU0Qub3JnPgogICBDb250YWN0OiBEYXZpZCBOYXlsb3IgPGRibkBGcmVlQlNE Lm9yZz4KCiAgIFdpbmUgaXMgYSBmcmVlIGFuZCBvcGVuIHNvdXJjZSBzb2Z0d2FyZSBhcHBsaWNh dGlvbiB0aGF0IGFpbXMgdG8gYWxsb3cKICAgYXBwbGljYXRpb25zIGRlc2lnbmVkIGZvciBNaWNy b3NvZnQgV2luZG93cyB0byBydW4gb24gVW5peC1saWtlCiAgIG9wZXJhdGluZyBzeXN0ZW1zLCBz dWNoIGFzIEZyZWVCU0QuIFRoZSBXaW5lL0ZyZWVCU0QgVGVhbSBoYXZlCiAgIGNvbnRpbnVlZCB0 byBpbXByb3ZlIHRoZSBleHBlcmllbmNlIG9mIFdpbmUgdW5kZXIgRnJlZUJTRC4KCiAgIER1cmlu ZyB0aGUgZm91cnRoIHF1YXJ0ZXIgb2YgMjAxMywgdGhlIHRlYW0gaGFzIGtlcHQgV2luZSB1cGRh dGVkIGJ5CiAgIHBvcnRpbmc6CgogICAgICogU3RhYmxlIHJlbGVhc2VzOiAxLjYgYW5kIDEuNi4x CiAgICAgKiBEZXZlbG9wbWVudCByZWxlYXNlczogMS43LjQgdGhyb3VnaCAxLjcuOAoKICAgVGhl IHBvcnRzIGhhdmUgaW5jbHVkZWQgcGFja2FnZXMgYnVpbHQgZm9yIGFtZDY0IChhdmFpbGFibGUg dGhyb3VnaCB0aGUKICAgUG9ydHMgQ29sbGVjdGlvbikuCgogICBUaGUgV2luZSBwb3J0cyBoYXZl IGJlZW4ga2VwdCB1cC10by1kYXRlIHdpdGggdGhlIGNoYW5nZXMgaW4gdGhlIFBvcnRzCiAgIENv bGxlY3Rpb24sIGluY2x1ZGluZyBzb21lIGltcHJvdmVtZW50czoKCiAgICAgKiBCdWlsZGluZyB3 aXRoIENsYW5nIGJ5IGRlZmF1bHQgKHZpYSBVU0VTPWNvbXBpbGVyOmMxMSkuCiAgICAgKiBDb25k aXRpb25hbCBYMTEgc3VwcG9ydCAob24gYnkgZGVmYXVsdDsgYWxsb3dpbmcgZm9yIGhlYWRsZXNz CiAgICAgICBpbnN0YW5jZXMgb2YgV2luZSkuCiAgICAgKiBTdGFnaW5nIHN1cHBvcnQgYW5kIG90 aGVyIHBvcnRzIGJlc3QgcHJhY3RpY2VzLgoKICAgU3VwcG9ydCBpbiBpbXByb3ZpbmcgdGhlIGV4 cGVyaWVuY2Ugb2YgV2luZSBvbiBGcmVlQlNEIGlzIG5lZWRlZC4gS2V5CiAgIGFyZWFzIGluY2x1 ZGluZyBmaXhpbmcgcmVncmVzc2lvbnMsIGFkZGluZyBjb3B5IHByb3RlY3Rpb24gc2NoZW1lCiAg IHN1cHBvcnQgYW5kIGZpeGluZyByZWdyZXNzaW9ucyB3aGVuIHVzaW5nIFdpbmUgdW5kZXIgRnJl ZUJTRC9hbWQ2NC4KCk9wZW4gdGFza3M6CgogICAgMS4gT3BlbiBUYXNrcyBhbmQgS25vd24gUHJv YmxlbXMgKHNlZSBsaW5rcyBmb3IgdGhlIHdpa2kgcGFnZSkuCiAgICAyLiBGcmVlQlNEL2FtZDY0 IGludGVncmF0aW9uIChzZWUgbGlua3MgZm9yIHRoZSBpMzg2LVdpbmUgd2lraSBwYWdlKS4KICAg IDMuIFBvcnRpbmcgV29XNjQgYW5kIFdpbmU2NC4KICAgICBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KClguT3JnIG9uIEZy ZWVCU0QKCiAgIFVSTDogaHR0cHM6Ly93aWtpLmZyZWVic2Qub3JnL0dyYXBoaWNzCiAgIFVSTDog aHR0cDovL3RyaWxsaWFuLmNocnVldGVydGVlLmNoL3BvcnRzL2Jyb3dzZXIvdHJ1bmsKICAgVVJM OiBodHRwOi8vbGlzdHMuZnJlZWJzZC5vcmcvcGlwZXJtYWlsL2ZyZWVic2QteDExLzIwMTQtSmFu dWFyeS8wMTQwMDMuaHRtbAoKICAgQ29udGFjdDogRnJlZUJTRCBYMTEgVGVhbSA8eDExQEZyZWVC U0Qub3JnPgoKICAgVGhlIG5ld2VyIGdyYXBoaWNzIHN0YWNrIChXSVRIX05FV19YT1JHKSBpcyBu b3cgYnVpbHQgYnkgZGVmYXVsdCBvbgogICBoZWFkIGFuZCBpcyBwcm92aWRlZCBhcyBiaW5hcnkg cGFja2FnZXMgZnJvbSB0aGUgb2ZmaWNpYWwgRnJlZUJTRAogICBwa2coOCkgcmVwb3NpdG9yeSBm b3IgMTEtQ1VSUkVOVC4gVGhlIG1ham9yIHVwZGF0ZXMgYXJlOgoKICAgICAqIFguT3JnIHNlcnZl ciAxLjEyLgogICAgICogTWVzYSA5LjEuCiAgICAgKiBSZWNlbnQgSW50ZWwgYW5kIFJhZGVvbiBY Lk9yZyBkcml2ZXJzLCB1c2luZyBleGNsdXNpdmVseSB0aGUgS01TCiAgICAgICBrZXJuZWwgZHJp dmVycyBhdmFpbGFibGUgaW4gRnJlZUJTRCA5LnggKEludGVsKSBhbmQgRnJlZUJTRCAxMC54CiAg ICAgICAoUmFkZW9uKS4KCiAgIFRoaXMgY2hhbmdlIG1ha2VzIFguT3JnIG9uIEZyZWVCU0QgaGVh ZCB3b3JrIG91dC1vZi10aGUtYm94IG9uCiAgIHdvcmtzdGF0aW9ucyBhbmQgbGFwdG9wcyBiYXNl ZCBvbiByZWNlbnQgSW50ZWwgYW5kIFJhZGVvbiBHUFVzLgogICBGcmVlQlNEIDEwLnggd2lsbCBm b2xsb3cgaW4gYSBmZXcgd2Vla3Mgb3IgbW9udGhzLgoKICAgU29tZSBzb2Z0d2FyZSBoYXMgc3Rh cnRlZCB0byByZXF1aXJlIENhaXJvIDEuMTIsIGZvciBleGFtcGxlIEdUSysgMy4xMAogICBhbmQg UGFuZ28uIFVuZm9ydHVuYXRlbHksIHRoaXMgdmVyc2lvbiBvZiBDYWlybyB0cmlnZ2VycyBhIGJ1 ZyBpbiB0aGUKICAgb2xkIEludGVsIGRyaXZlciAoMi43LjEsIGluc3RhbGxlZCB3aGVuIFdJVEhf TkVXX1hPUkcgaXMgbm90IHNldCksCiAgIHdoaWNoIGNhdXNlcyBkaXNwbGF5IGFydGlmYWN0cy4g QSAiQ2FsbCBGb3IgVGVzdGVycyIgbWFpbCB3YXMgcG9zdGVkIG9uCiAgIHRoZSBmcmVlYnNkLXgx MSBtYWlsaW5nLWxpc3QgKHNlZSB0aGUgbGlua3MgYWJvdmUpIHRvIGdhdGhlcgogICBpbmZvcm1h dGlvbiBhYm91dCB0aGUgYmVoYXZpb3Igb24gb3RoZXIgY29uZmlndXJhdGlvbnMgKG5ldyBJbnRl bAogICBkcml2ZXIgYW5kIG5vbi1JbnRlbCBkcml2ZXJzKS4gQXMgb2YgdGhpcyB3cml0aW5nLCB0 aGUgcmVwb3J0cyByZWNlaXZlZAogICB0YWxrIGFib3V0IGltcHJvdmVtZW50cyBvciwgYXQgbGVh c3QsIG5vIGNoYW5nZSBub3RpY2VkLgoKICAgVG8gYmV0dGVyIG1hbmFnZSBjaGFuZ2VzIHN1Y2gg YXMgdGhlIFdJVEhfTkVXX1hPUkcgYW5kIENhaXJvIDEuMTIKICAgY2hhbmdlcyBtZW50aW9uZWQg YWJvdmUsIHdlIGFza2VkIG9uIHRoZSBmcmVlYnNkLXgxMSBtYWlsaW5nLWxpc3QgaWYKICAgcGVv cGxlIGFyZSB1c2luZyBGcmVlQlNEIDgueCBvbiB0aGVpciBkZXNrdG9wIGNvbXB1dGVycyBhbmQg d2h5IHRoZXkgZG8KICAgbm90IHVwZ3JhZGUgdG8gRnJlZUJTRCA5Lnggb3IgMTAueC4gU28gZmFy LCB3ZSByZWNlaXZlZCB2ZXJ5IGZldwogICBhbnN3ZXJzIHRvIHRoaXMuCgogICBUaGUgUmFkZW9u IEtNUyBkcml2ZXIgaW4gRnJlZUJTRCAxMC54IGlzIG5vdyBjb25zaWRlcmVkIHN0YWJsZSwKICAg ZXNwZWNpYWxseSB0aGF0IGludGVncmF0ZWQgR1BVcyBhcmUgbm93IHByb3Blcmx5IGluaXRpYWxp emVkLiBPbmUgb2YKICAgdGhlIG5leHQgc3RlcHMgd2lsbCBiZSB0byBtZXJnZSB0aGlzIHRvIHN0 YWJsZS85LgoKICAgQSAiR3JhcGhpY3MiIHdpa2kgYXJ0aWNsZSAoc2VlIGxpbmtzKSB3YXMgY3Jl YXRlZCB0byBjZW50cmFsaXplIGFuZAogICBjb29yZGluYXRlIHRoZSB3b3JrIGJlaW5nIGRvbmUg b24gYm90aCB0aGUgcG9ydHMgYW5kIHRoZSBrZXJuZWwuIEl0CiAgIGNvbnRhaW5zIHRoZSBmb2xs b3dpbmcgaW1wb3J0YW50IGluZm9ybWF0aW9uOgoKICAgICAqIEEgcm9hZG1hcCBvZiB0aGUgdGVh bS4KICAgICAqIEEgbWF0cml4IG9mIHN1cHBvcnRlZCBoYXJkd2FyZS4KICAgICAqIEluc3RydWN0 aW9ucyBvbiB1cGdyYWRpbmcgdG8gS01TLgogICAgICogUHJvamVjdCBzdGF0dXMgYW5kIHJlc3Vs dHMuCgogICBUaGlzIHN0YXJ0aW5nIHBhZ2UgdGhlbiBwb2ludHMgdG8gcHJvamVjdC0gYW5kIHRv cGljLXNwZWNpZmljIGFydGljbGVzCiAgIHdoZXJlIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24g aXMgYXZhaWxhYmxlLgoKT3BlbiB0YXNrczoKCiAgICAxLiBSZXBvcnQgd2h5IEZyZWVCU0QgOC54 IGlzIHN0aWxsIHVzZWQgb24geW91ciBkZXNrdG9wIGFuZCB3aHkgbW92aW5nCiAgICAgICB0byBG cmVlQlNEIDkueCBvciAxMC54IGlzIG5vdCBhbiBvcHRpb24uCiAgICAyLiBSZXBvcnQgYWJvdXQg dGhlIENhaXJvIDEuMTIgdXBkYXRlIG9uIHlvdXIgc3lzdGVtLgogICAgMy4gU2VlIHRoZSAiR3Jh cGhpY3MiIHdpa2kgcGFnZSBmb3IgdXAtdG8tZGF0ZSBpbmZvcm1hdGlvbi4KICAgICBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KClhmY2UvRnJlZUJTRAoKICAgVVJMOiBodHRwczovL3dpa2kuZnJlZWJzZC5vcmcvWGZjZQog ICBVUkw6IGh0dHBzOi8vcGVvcGxlLmZyZWVic2Qub3JnL35vbGl2aWVyZC94ZmNlLWNvcmUtdW5z dGFibGUuaHRtbAogICBVUkw6IGh0dHBzOi8vcGVvcGxlLmZyZWVic2Qub3JnL35vbGl2aWVyZC9w YXJvbGUtdW5zdGFibGUuaHRtbAoKICAgQ29udGFjdDogRnJlZUJTRCBYZmNlIFRlYW0gPHhmY2VA RnJlZUJTRC5vcmc+CgogICBYZmNlIGlzIGEgZnJlZSBzb2Z0d2FyZSBkZXNrdG9wIGVudmlyb25t ZW50IGZvciBVbml4IGFuZCBVbml4LWxpa2UKICAgcGxhdGZvcm1zLCBzdWNoIGFzIEZyZWVCU0Qu IEl0IGFpbXMgdG8gYmUgZmFzdCBhbmQgbGlnaHR3ZWlnaHQsIHdoaWxlCiAgIHN0aWxsIGJlaW5n IHZpc3VhbGx5IGFwcGVhbGluZyBhbmQgZWFzeSB0byB1c2UuIFRoZSBGcmVlQlNEIFhmY2UgVGVh bQogICBoYXMga2VwdCBtb3N0IG9mIHRoZSBYZmNlIHBvcnRzIHVwLXRvLWRhdGUsIHdoaWxlIGZp eGluZyBtYW55IGlzc3VlcwogICBhbG9uZyB0aGUgd2F5IGluIHRoaXMgcXVhcnRlci4KCiAgIEN1 cnJlbnRseSwgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzIHdpdGggdGhlIGZvbGxvd2luZyB2ZXJz aW9ucyBhcmUKICAgYXZhaWxhYmxlOgoKICAgICBBcHBsaWNhdGlvbnM6CgogICAgICAgKiBPcmFn ZSAoNC4xMC4wKQogICAgICAgKiBNaWRvcmkgKDAuNS42KQogICAgICAgKiB4ZmNlNC10ZXJtaW5h bCAoMC42LjMpCiAgICAgICAqIHhmY2U0LXBhcm9sZSAoMC41LjMsIDAuNS40KQoKICAgICBQYW5l bCBwbHVnaW5zOgoKICAgICAgICogeGZjZTQtd2hpc2tlcm1lbnUtcGx1Z2luICgxLjIuMCwgMS4y LjEsIDEuMi4yLCAxLjMuMCkKICAgICAgICogeGZjZTQtbWFpbHdhdGNoLXBsdWdpbiAoMS4yLjAp CiAgICAgICAqIHhmY2U0LXdtZG9jay1wbHVnaW4gKDAuNi4wKQoKICAgV2UgaGVscGVkIE1pZG9y aSdzIHVwc3RyZWFtIHN3aXRjaCBmcm9tIFdhZiAoUHl0aG9uIHNjcmlwdCkgdG8gQ01ha2UuCiAg IFhmY2Ugbm93IGFsc28gc3VwcG9ydHMgR3RrMiwgR3RrMywgYW5kIHRoZSBuZXcgV2ViS2l0R3Rr IEFQSSwgYXZhaWxhYmxlCiAgIGZyb20gdGhlIDIueCBicmFuY2gsIG5vdCBwcmVzZW50IGluIG91 ciBwb3J0cyB0cmVlIGF0IHRoZSBtb21lbnQsCiAgIHRob3VnaC4gTW9zdCBvZiB0aGUgcG9ydHMg bm93IHVzZSBzdGFnZSBkaXJlY3Rvcmllcywgd2l0aCBvbmx5IHNvbWUKICAgcGx1Z2lucyBsZWZ0 IHRvIGNvbnZlcnQuCgogICBXZSBhbHNvIHJlbW92ZWQgb2Jzb2xldGUgcG9ydHM6CgogICAgICog eDExLXRoZW1lcy9saWxhLXhmd200IChYZndtNCB0aGVtZSkKICAgICAqIG11bHRpbWVkaWEveGZj ZTQtbWVkaWEgKG11bHRpbWVkaWEgcGxheWVyKQogICAgICogbmV0LWltL3hmY2U0LW1lc3Nlbmdl ci1wbHVnaW4KCiAgIEJlc2lkZXMsIHdlIGZvbGxvd2VkIHRoZSBkZXZlbG9wbWVudCBvZiB0aGUg WGZjZSBjb3JlIGNvbXBvbmVudHMgYW5kCiAgIFBhcm9sZSBjbG9zZWx5LiBTZWUgdGhlIGxpbmtz IGZvciBkb2N1bWVudGF0aW9uIG9uIGhvdyB0byB1cGdyYWRlIHRob3NlCiAgIGxpYnJhcmllcy4K Ck9wZW4gdGFza3M6CgogICAgMS4gRml4IE1pZG9yaSdzIGJ1aWxkIG9uIERyYWdvbkZseSwgdGhy b3VnaCBEUG9ydHMuCiAgICAyLiBGaXggYnVpbGQgb2YgdGhlIEdyYW5pdGUgZnJhbWV3b3JrIChp dCBpcyBhbiBleHRlbnNpb24gdG8gR3RrIGFuZAogICAgICAgTWlkb3JpIHVzZXMgaXQpIG9uIEZy ZWVCU0QgMTAgYW5kIGhlYWQuIFRob3NlIGFyZSBtb3N0bHkgTExWTQogICAgICAgZmFpbHVyZXMu CiAgICAzLiBBZGQgc3VwcG9ydCBmb3IgQmVya2VsZXkgREIgNSBhbmQgaGlnaGVyIHRvIE9yYWdl LgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwoKVGhlIEZyZWVCU0QgRm91bmRhdGlvbgoKICAgVVJMOiBodHRwOi8v d3d3LkZyZWVCU0RGb3VuZGF0aW9uLm9yZy8KICAgVVJMOiBodHRwOi8vd3d3LmZyZWVic2Rmb3Vu ZGF0aW9uLm9yZy9wcmVzcy8yMDEzRGVjLW5ld3NsZXR0ZXIKICAgVVJMOiBodHRwOi8vZnJlZWJz ZGpvdXJuYWwuY29tLwoKICAgQ29udGFjdDogRGViIEdvb2RraW4gPGRlYkBGcmVlQlNERm91bmRh dGlvbi5vcmc+CgogICBUaGUgRnJlZUJTRCBGb3VuZGF0aW9uIGlzIGEgNTAxKGMpKDMpIG5vbi1w cm9maXQgb3JnYW5pemF0aW9uIGRlZGljYXRlZAogICB0byBzdXBwb3J0aW5nIGFuZCBwcm9tb3Rp bmcgdGhlIEZyZWVCU0QgUHJvamVjdCBhbmQgY29tbXVuaXR5CiAgIHdvcmxkd2lkZS4gTW9zdCBv ZiB0aGUgZnVuZGluZyBpcyB1c2VkIHRvIHN1cHBvcnQgRnJlZUJTRCBkZXZlbG9wbWVudAogICBw cm9qZWN0cywgY29uZmVyZW5jZXMgYW5kIGRldmVsb3BlciBzdW1taXRzLCBwdXJjaGFzZSBlcXVp cG1lbnQgdG8gZ3JvdwogICBhbmQgaW1wcm92ZSB0aGUgRnJlZUJTRCBpbmZyYXN0cnVjdHVyZSwg YW5kIHByb3ZpZGUgbGVnYWwgc3VwcG9ydCBmb3IKICAgdGhlIFByb2plY3QuCgogICBXZSBoZWxk IG91ciB5ZWFyLWVuZCBmdW5kcmFpc2luZyBjYW1wYWlnbi4gV2UgYXJlIHN0aWxsIHByb2Nlc3Np bmcKICAgZG9uYXRpb25zIGFuZCB3aWxsIHBvc3QgdGhlIGZpbmFsIG51bWJlcnMgYnkgbWlkLUph bnVhcnkuIFdlIGFyZQogICBleHRyZW1lbHkgZ3JhdGVmdWwgdG8gYWxsIHRoZSBpbmRpdmlkdWFs cyBhbmQgb3JnYW5pemF0aW9ucyB0aGF0CiAgIHN1cHBvcnRlZCB1cyBhbmQgdGhlIFByb2plY3Qg YnkgbWFraW5nIGEgZG9uYXRpb24gaW4gMjAxMy4gV2UgaGF2ZQogICBhbHJlYWR5IHN0YXJ0ZWQg b3VyIGZ1bmRyYWlzaW5nIGVmZm9ydHMgZm9yIDIwMTQuCgogICBTb21lIG9mIHRoZSBoaWdobGln aHRzIGZyb20gdGhpcyBwYXN0IHF1YXJ0ZXIgaW5jbHVkZToKCiAgICAgKiBXZSBzcG9uc29yZWQg b3IgYXJlIHNwb25zb3JpbmcgdGhlIGZvbGxvd2luZyBwcm9qZWN0czoKCiAgICAgICAgICArIFBy b2plY3RzIGNvbXBsZXRlZCBsYXN0IHF1YXJ0ZXI6IENhcHNpY3VtLCBDYXNwZXIgZGFlbW9uLCBh bmQKICAgICAgICAgICAgSW50ZWwgSS9PIE1lbW9yeSBNYW5hZ2VtZW50IFVuaXQgZHJpdmVyLgog ICAgICAgICAgKyBQcm9qZWN0cyBpbiBwcm9ncmVzczogTmF0aXZlIGluLWtlcm5lbCBpU0NTSSBz dGFjaywgbmV0d29yawogICAgICAgICAgICBzdGFjayBsYXllciAyIG1vZGVybml6YXRpb24sIFVF RkkgYm9vdCwgdXBkYXRlZCB2dCg5KSBzeXN0ZW0KICAgICAgICAgICAgY29uc29sZS4KICAgICAg ICAgICsgUHJvamVjdHMgc3RhcnRlZCBsYXN0IHF1YXJ0ZXI6IEF1dG9tb3VudGVyLCBJbnRlbCBn cmFwaGljcwogICAgICAgICAgICBkcml2ZXIgdXBkYXRlLgoKICAgICAqIENvbnRpbnVlZCB3b3Jr IG9uIHRoZSBGcmVlQlNEIEpvdXJuYWwsIG91ciBuZXcgb25saW5lIEZyZWVCU0QKICAgICAgIG1h Z2F6aW5lLCB3aGljaCBkZWJ1dHMgb24gSmFudWFyeSAyN3RoIChzZWUgbGlua3MpLgogICAgICog U3BvbnNvcmVkLCBvcmdhbml6ZWQsIGFuZCByYW4gdGhlIEJheSBBcmVhIERldmVsb3BlciBTdW1t aXQuCiAgICAgKiBTcG9uc29yZWQgYW5kIGF0dGVuZGVkIHRoZSBmaXJzdCBldmVyIHZCU0RDb24s IHdoaWNoIGhhZCBhbgogICAgICAgaW1wcmVzc2l2ZSBhdHRlbmRhbmNlLgogICAgICogU3BvbnNv cmVkIGFuZCBhdHRlbmRlZCB0aGUgT3BlblpGUyBkZXZlbG9wZXIgc3VtbWl0LgogICAgICogUmVw cmVzZW50ZWQgdGhlIGZvdW5kYXRpb24gYXQgdGhlIGZvbGxvd2luZyBjb25mZXJlbmNlczogQWxs IFRoaW5ncwogICAgICAgT3BlbiBpbiBSYWxlaWdoLCBOQyBhbmQgTElTQSBpbiBXYXNoaW5ndG9u LCBEQy4KICAgICAqIFNwb25zb3JlZCB0aGUgRnJlZUJTRCAyMHRoIEJpcnRoZGF5IFBhcnR5LCBo ZWxkIGluIFNhbiBGcmFuY2lzY28uCiAgICAgKiBBdHRlbmRlZCB0aGUgSUNBTk4gbWVldGluZyBp biBCdWVub3MgQWlyZXMgaW4gTm92ZW1iZXIgYW5kIGdhdmUgYQogICAgICAgc2hvcnQgcHJlc2Vu dGF0aW9uIG9uIHRoZSBjaGFuZ2UgZnJvbSBCSU5EIHRvIHVuYm91bmQgaW4KICAgICAgIEZyZWVC U0QgMTAuMCBkdXJpbmcgdGhlIGNjTlNPIFRlY2ggRGF5LgogICAgICogTWV0IHdpdGggYSBmZXcg Y29tcGFuaWVzIHRvIGRpc2N1c3MgdGhlaXIgRnJlZUJTRCB1c2UsIHdoYXQgdGhleQogICAgICAg d291bGQgbGlrZSB0byBzZWUgc3VwcG9ydGVkIGluIEZyZWVCU0QsIGFuZCBhc3Npc3Qgd2l0aAog ICAgICAgY29sbGFib3JhdGlvbiBiZXR3ZWVuIHRoZW0gYW5kIHRoZSBQcm9qZWN0LgogICAgICog UHVyY2hhc2VkIGFuIDgwLWNvcmUgc2VydmVyIHRvIHJlc2lkZSBhdCBTZW50ZXggZm9yIHRoZSBQ cm9qZWN0IHRvCiAgICAgICB1c2UgZm9yIHN0YWJpbGl0eSwgc2NhbGFiaWxpdHksIGFuZCBwZXJm b3JtYW5jZSBpbXByb3ZlbWVudHMuIEl0IGlzCiAgICAgICBhIGJpZyBzdGVwIGZvcndhcmRzIGZv ciB0aGUgRm91bmRhdGlvbiBpbiBwcm92aWRpbmcgdGhpcyBraW5kIG9mCiAgICAgICBoYXJkd2Fy ZSB0byB0aGUgUHJvamVjdCdzIGRldmVsb3BlcnMuIEl0IHdpbGwgbGV0IHVzIHRlc3Qgb3VyCiAg ICAgICBzY2FsaW5nIHRvIDgwIHNpbXVsdGFuZW91cyBjb3JlcyBhbmQgMSBUQiBvZiBSQU0uIEl0 IHdpbGwgYWxzbyBiZQogICAgICAgdXNlZCB0byBkbyBwZXJmb3JtYW5jZSBhbmFseXNpcyBvbiBs YXJnZSB3b3JrbG9hZHMsIHN1Y2ggYXMgbGFyZ2UKICAgICAgIGRhdGFiYXNlcyBldGMuCiAgICAg KiBBY3F1aXJlZCBhIHNlY29uZCByYWNrIHRvIHVzZSBhdCBTZW50ZXguCiAgICAgKiBXZSByZWNl aXZlZCBhIGNvbW1pdG1lbnQgZnJvbSBWTXdhcmUsIEluYy4gZm9yIEJTRC1saWNlbnNlZAogICAg ICAgZHJpdmVycy4gVGhleSBhbHNvIGNvbW1pdHRlZCB0byBhIHllYXJseSBzaWx2ZXIgbGV2ZWwg ZG9uYXRpb24uCiAgICAgKiBTaWduZWQgdXAgYXMgYSBHb29nbGUgQ29tcHV0ZSB0cnVzdGVkIHRl c3RlciBmb3IgdGhlIFByb2plY3QuCiAgICAgKiBGdW5kZWQgYSBwcm9qZWN0IHRvIHByb2R1Y2Ug YSB3aGl0ZSBwYXBlciB0aXRsZWQgIk1hbmFnZWQgU2VydmljZXMKICAgICAgIFVzaW5nIEZyZWVC U0QgYXQgTllJIi4KICAgICAqIEZpbmFsbHksIHdlIHB1Ymxpc2hlZCBvdXIgc2VtaS1hbm51YWwg bmV3c2xldHRlciAoc2VlIGxpbmtzKQogICAgICAgaGlnaGxpZ2h0aW5nIHdoYXQgd2UgZGlkIHRv IHN1cHBvcnQgdGhlIEZyZWVCU0QgUHJvamVjdCBhbmQKICAgICAgIENvbW11bml0eSBpbiAyMDEz LgogICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwoKTG92ZSBGcmVlQlNEPyAgU3VwcG9ydCB0aGUgZGV2ZWxvcG1lbnQg d2l0aCBhIGRvbmF0aW9uIHRvIHRoZSBGcmVlQlNECkZvdW5kYXRpb24hICBodHRwczovL3d3dy5m cmVlYnNkZm91bmRhdGlvbi5vcmcvZG9uYXRlLwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpmcmVlYnNkLWFubm91bmNlQGZyZWVic2Qub3JnIG1haWxpbmcg bGlzdApodHRwOi8vbGlzdHMuZnJlZWJzZC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlYnNkLWFu bm91bmNlClRvIHVuc3Vic2NyaWJlLCBzZW5kIGFueSBtYWlsIHRvICJmcmVlYnNkLWFubm91bmNl LXVuc3Vic2NyaWJlQGZyZWVic2Qub3JnIg==