NS4xOSAyMDExLTAzLTEyIEdyZWdvcnkgTnV0dCA8Z251dHRAbnV0dHgub3JnPgoKCSogSW5pdGlhbCB2ZXJzaW9uIG9mIHRoZSBhcHBzLyBkaXJlY3Rvcnkgd2FzIHJlbGVhc2VkIGFzIGNvbnRyaWJ1dGVkIGJ5CgkgIFVyb3MgUGxhdGlzZS4KCjYuMCAyMDExLTAzLTIxIEdyZWdvcnkgTnV0dCA8Z251dHRAbnV0dHgub3JnPgoKCSogUkVBRE1FLnR4dCAtLSBSRUFETUUgY29zbWV0aWNzCgkqIGhlbGxvLyAtLSBoZWxsbyB3b3JsZCBtaW5vciBjaGFuZ2VzCgkqIE1ha2VmaWxlIC0tIE1ha2VmaWxlIGNvc21ldGljcyAoSSBhbSBzbG93bHkgYWRkaW5nIHRoZSBEYXJqZWVsaW5nIEpWTSkKCSogTWFrZS5kZWZzIC0tIE5ldyBmaWxlIGFkZHMgY29tbW9uIG1ha2UgZGVmaW5pdGlvbnMgZm9yIGFwcGxpY2F0aW9ucy4KCSogaGVsbG8vTWFrZWZpbGUgLS0gTm93IHVzZXMgbmV3IE1ha2UuZGVmcyBkZWZpbml0aW9ucy4gIEFkZGVkIFJFQURNRS50eHQuCgkqIGFwcHMvcG93ZXJvZmYgLS0gTmV3IGFwcGxpY2F0aW9uIHRvIHR1cm4gb2ZmIGJvYXJkIHBvd2VyLgoJKiBNb3ZlZCBOU0ggbGlicmFyeSwgbmV0dXRpbHMsIGFuZCBleGFtcGxlcyBmcm9tIHRoZSBudXR0eC8gZGlyZWN0b3J5IHRvCgkgIHRoZSBhcHBzLyBkaXJlY3RvcnkKCSogTW92ZWQgZXhlY19udXR0YXBwIG1hY2hpbmVyeSBpbnRvIHRoZSBudXR0YXBwLyBkaXJlY3RvcnkuCgo2LjEgMjAxMS0wNC0xMCBHcmVnb3J5IE51dHQgPGdudXR0QG51dHR4Lm9yZz4KCgkqIENyZWF0aW9uIG9mIGF1dG8tZ2VuZXJhdGVkIGhlYWRlciBmaWxlcyBub3cgb2NjdXJzIGR1cmluZyB0aGUgY29udGV4dAoJICBidWlsZCBwaGFzZS4KCSogQWRkZWQgc2RjYXJkIGluc2VydCBhbmQgZWplY3QsIG5zaCBjb21tYW5kICc/JyBhbmQgc29tZSBjb2RlIHJlbWFya3MKCSogUmVuYW1lZCBudXR0YXBwIHRvIG5hbWVkYXBwCgkqIG5hbWVkYXBwL2JpbmZzLmMgLS0gQ3JlYXRlIGEgdGlueSBmaWxlc3lzdGVtIHRoYXQgY2FuIGJlIHVzZWQKCSAgdG8gc2hvdyB0aGUgaW50ZXJuYWwgbmFtZWQgYXBwcyB1bmRlciAvYmluLgoJKiBOdW1lcm91cyBmaXhlcyB0byBidWlsZCBzeXN0ZW0gcmVxdWlyZWQgdG8gc3VwcG9ydCBidWlsZGluZyB3aXRoIG5hdGl2ZQoJICBXaW5kb3dzIHRvb2xjaGFpbi4KCjYuMiAyMDExLTA1LTA2IEdyZWdvcnkgTnV0dCA8Z251dHRAbnV0dHgub3JnPgoKCSogYXBwcy9leGFtcGxlcy9ueGZmczogIEFkZCBhIHRlc3QgYSBhIGNvbmZpZ3VyYXRpb24gdGhhdCB3aWxsIGJlIHVzZWQgdG8KCSAgdmVyaWZ5IE5YRkZTLgoKNi4zIDIwMTEtMDUtMTUgR3JlZ29yeSBOdXR0IDxnbnV0dEBudXR0eC5vcmc+CgoJKiBhcHBzL2ludGVycHJldGVyOiBBZGQgYSBkaXJlY3RvcnkgdG8gaG9sZCBpbnRlcnByZXRlcnMuICBUaGUgUGFzY2FsIGFkZC0KCSAgb24gbW9kdWxlIG5vdyBpbnN0YWxscyBhbmQgYnVpbGRzIHVuZGVyIHRoaXMgZGlyZWN0b3J5LgoJKiBhcHBzL2ludGVycHJldGVyL2ZpY2w6IEFkZGVkIGxvZ2ljIHRvIGJ1aWxkIEZpY2wgKHRoZSAiRm9ydGggSW5zcGlyZWQKCSAgQ29tbWFuZCBMYW5ndWFnZSIpLiAgU2VlIGh0dHA6Ly9maWNsLnNvdXJjZWZvcmdlLm5ldC8uCgkqIGFwcHMvbmV0dXRpbHMvZGhjcGMsIGRoY3BjZCwgYW5kIHRmdHAuICBJZiB0aGVzZSBkaXJlY3RvcmllcyBhcmUgaW5jbHVkZWQKCSAgaW4gdGhlIGNvbmZpZ3VyYXRpb24gYnV0IENPTkZJR19ORVRfVURQIGlzIGRpc2FibGUgKHdoaWNoIGlzIG5vdCB2ZXJ5IHdpc2UpLAoJICB0aGVuIGEgbWFrZSBlcnJvciBvY2N1cnMgYmVjYXVzZSB0b29scy9ta2RlcC5zaCBpcyBjYWxsZWQgd2l0aCBubyBmaWxlcy4KCSogc3lzdGVtL2ZyZWU6IE1vdmUgVXJvcycgY3VzdG9tIGZyZWUgY29tbWFuZCBmcm9tIHZzbi9mcmVlCgkqIHN5c3RlbS9pbnN0YWxsOiBBZGQgYSBuZXcgaW5zdGFsbCBjb21tYW5kIHN1Ym1pdHRlZCBieSBVcm9zIFBsYXRpc2UuCgkqIGV4YW1wbGVzL3JnbXAuICBBZGQgYSBwbGFjZWhvbGRlciBmb3IgYW4gUkdNUCBidWlsZCBleGFtcGxlLgoJICBSR01QIGlzIGEgcHJvamVjdCBmb3IgcnVubmluZyBHUE9TIGFuZCBSVE9TIHNpbXVsdGFuZW91c2x5IG9uCgkgIG11bHRpLXByb2Nlc3NvciBwbGF0Zm9ybXMuIFNlZSBodHRwOi8vcmdtcC5zb3VyY2Vmb3JnZS5uZXQvd2lraS9pbmRleC5waHAvTWFpbl9QYWdlCgkgIGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uIGFib3V0IFJHTVAuICBOT1RFOiAgVGhpcyBpcyBhbiBlbXB0eSBleGFtcGxlCgkgIG9uIGluaXRpYWwgY2hlY2staW4uCgo2LjQgMjAxMS0wNi0wNiBHcmVnb3J5IE51dHQgPGdudXR0QG51dHR4Lm9yZz4KCgkqIG5zaGxpYi9uc2hfbmV0Y21kcy5jOiBJZiBhIG5ldHdvcmsgZGV2aWNlIG5hbWUgYW5kIElQIGFkZHJlc3MgYXJlIHByb3ZpZGVkCgkgIHdpdGggdGhlIGlmY29uZmlnIGNvbW1hbmQsIHRoZW4gdGhpcyBjb21tYW5kIHdpbGwgbm93IHNldCB0aGUgbmV0d29yayBhZGRyZXNzLgoJICAoQ29udHJpYnV0ZWQgYnkgWXUgUWlhbmcpLgoJKiBuZXR1dGlscy9mdHBjOiBBIGxpYnJhcnkgdG8gc3VwcG9ydCBjbGllbnQtc2lkZSBGVFAuCgkqIGV4YW1wbGVzL2Z0cGM6IEEgc2ltcGxlIGFkZC1vbiB0byB0aGUgTlNILiAgRnJvbSBOU0gsIHlvdSBjYW4gc3RhcnQKCSAgdGhpcyBzaW1wbGUgRlRQIHNoZWxsIHRvIHRyYW5zZmVyIGZpbGVzIHRvL2Zyb20gYSByZW1vdGUgRlRQIHNlcnZlci4KCjYuNSAyMDExLTA2LTIxIEdyZWdvcnkgTnV0dCA8Z251dHRAbnV0dHgub3JnPgoKCSogbmV0dXRpbHMvZnRwYzogIFNpbXBmbGljYXRpb24gYW5kIHNpemUgcmVkdWN0aW9uLgoKNi42IDIwMTEtMDctMTEgR3JlZ29yeSBOdXR0IDxnbnV0dEBudXR0eC5vcmc+CgoJKiBNYWtlLmRlZnMsIG5hbWVkYXBwL25hbWVkYXBwLmM6IFNldmVyYWwgc3RydWN0dXJhbCBjaGFuZ2VzIG1hZGUgdG8gZ2V0IGEKCSAgY2xlYW4gY29tcGlsZSB1bmRlciB0aGUgZXo4MCBaRFMtSUkgdG9vbGNoYWluIChubyBkZXNpZ24gY2hhbmdlcykuCgkqIGFwcHMvZXhhbXBsZXMvYnV0dG9uczogQWRkIGEgdGVzdCBmb3IgdGhlIG5ldyBzdGFuZGFyZGl6ZWQgYnV0dG9uIGludGVyZmFjZXMKCSogYXBwcy9leGFtcGxlcy9ueHRleHQ6IEFkZCBhbm90aGVyIE5YIGdyYXBoaWNzIHRlc3QuICBUaGlzIG9uZSBmb2N1cyBvbgoJICBwbGFjaW5nIHRleHQgb24gdGhlIGJhY2tncm91bmQgd2hpbGUgcG9wLXVwIHdpbmRvd3Mgb2NjdXIuICBUZXh0IHNob3VsZAoJICBjb250aW51ZSB0byB1cGRhdGUgbm9ybWFsbHkgd2l0aCBvciB3aXRob3V0IHRoZSBwb3B1cCB3aW5kb3dzIHByZXNlbnQuCgo2LjcgMjAxMS0wOC0wMiBHcmVnb3J5IE51dHQgPGdudXR0QG51dHR4Lm9yZz4KCgkqIGFwcHMvZXhhbXBsZXMvbnggYW5kIG54dGV4dDogIFRoZXNlIGV4YW1wbGVzIGNhbiBub3cgYmUgYnVpbHQgYXMgTlNICgkgICJidWlsdC1pbiIgY29tbWFuZHMuCgkqIGFwcHMvZXhhbXBsZXMvbnhoZWxsbzogIFRoZSBzaW1wbGVzdCBncmFwaGljcyBleGFtcGxlOiAgSXQganVzdCBzYXlzCgkgICJIZWxsbywgV29ybGQhIiBpbiB0aGUgY2VudGVyIG9mIHRoZSBkaXNwbGF5LiBUaGlzIGV4YW1wbGUgY2FuIGFsc28gYmUKCSAgYnVpbHQgYXMgYW4gTlNIICJidWlsdC1pbiIgY29tbWFuZC4KCSogYXBwcy9leGFtcGxlcy9ueCwgbnRleHQsIGFuZCBueGhlbGxvOiAgQWxsIHVwZGF0ZWQgdG8gdXNlIHRoZSBuZXcKCSAgTnV0dFggZm9udCBpbnRlcmZhY2VzLgoJKiBhcHBzL2V4YW1wbGVzL254aW1hZ2U6ICBBbm90aGVyIHN1cGVyIHNpbXBsZSAgZ3JhcGhpY3MgZXhhbXBsZTogIEl0IGp1c3QgcHV0cwoJICB0aGUgTnV0dFggbG9nbyBpbiB0aGUgY2VudGVyIG9mIHRoZSBkaXNwbGF5LiBUaGlzIGV4YW1wbGUgY2FuIGFsc28gYmUKCSAgYnVpbHQgYXMgYW4gTlNIICJidWlsdC1pbiIgY29tbWFuZC4KCSogYXBwcy9leGFtcGxlcy91c2JzdG9yYWdlOiBDYW4gbm93IGJlIGJ1aWx0IGFzIHR3byBOU0ggImJ1aWx0LWluIiBjb21tYW5kczoKCSAgJ21zY29ubicgd2lsbCBjb25uZWN0IHRoZSBVU0IgbWFzcyBzdG9yYWdlIGRldmljZTsgJ21zZGlzJyB3aWxsIGRpc2Nvbm5lY3QKCSAgdGhlIFVTQiBzdG9yYWdlIGRldmljZS4KCSogYXBwcy9leGFtcGxlcy9ueCo6ICBBbGwgTlggaGVhZGVyIGZpbGVzIG1vdmVkIGZyb20gbnV0dHgvaW5jbHVkZS9udXR0eCB0bwoJICBudXR0eC9pbmNsdWRlL251dHR4L254LgoJKiBhcHBzL2V4YW1wbGVzL3VzYnN0b3JhZ2U6IEFkZGVkIGluc3RydW1lbnRhdGlvbiB0byBtb25pdG9yIG1lbW9yeSB1c2FnZQoJICB0byBjaGVjayBmb3IgbWVtb3J5IGxlYWtzIGluIHRoZSBVU0Igc3RvcmFnZSBkcml2ZXIuCgkqIGFwcHMvZXhhbXBsZXMvbnhoZWxsby9ueGhlbGxvX2JrZ2QuYzogIEZpeCBoYW5kbGluZyBvZiBhbGxvY2F0ZWQgZ2x5cGgKCSAgbWVtb3J5LgoKNi44IDIwMTEtMDgtMTEgR3JlZ29yeSBOdXR0IDxnbnV0dEBudXR0eC5vcmc+CgoJKiBhcHBzL2V4YW1wbGVzL254bGluZXM6ICBBZGRlZCBhIHRlc3QgZm9yIE5YIGxpbmUgZHJhd2luZyBjYXBhYmlsaXRpZXMuCgo2LjkgMjAxMS0wOS0xMSBHcmVnb3J5IE51dHQgPGdudXR0QG51dHR4Lm9yZz4KCgkqIGFwcHMvZXhhbXBsZXMvbnhsaW5lczogIEV4dGVuZCB0aGUgbGluZSBkcmF3aW5nIHRleHQgdG8gaW5jbHVkZSBkcmF3aW5nCgkgIG9mIGNpcmNsZXMuCgkqIGFwcHMvc3lzdGVtL2kyYzogIEFkZCBhbiBJMkMgdGVzdCB0b29sIHRoYXQgc2hvdWxkIGhlbHAgdG8gYnJpbmcgdXAgSTJDCgkgIGRldmljZXMgKHdoZW4gaXQgaXMgZnVsbHkgZnVuY3Rpb25hbCkuCgkqIGFwcHMvbnNobGliL25zaF90aW1jbWRzLmM6ICBBZGQgdGhlIGRhdGUgY29tbWFuZCB0aGF0IGNhbiBiZSB1c2VkIHRvCgkgIHNob3cgb3Igc2V0IHRoZSB0aW1lIChvbmx5IGlmIENPTkZJR19SVEMgaXMgc2V0KS4KCjYuMTAgMjAxMS0xMC0wNiBHcmVnb3J5IE51dHQgPGdudXR0QG51dHR4Lm9yZz4KCgkqIGFwcHMvc3lzdGVtL2kyYzogIEFkZCByZXBpdGl0aW9uIGFuZCBhZGRyZXNzIGF1dG8taW5jcmVtZW50aW5nIHNvIHRoYXQKCSAgYW5kIGNvbW1hbmQgY2FuIGJlIGV4ZWN1dGVkIG51bWVyb3VzIHRpbWVzLiAgQWRkIGEgbmV3IHZlcmlmeSBjb21tYW5kCgkgIHRoYXQgd2lsbCB3cml0ZSB0byBhIHJlZ2lzdGVyLCByZWFkIGZyb20gcmVnaXN0ZXIsIGFuZCB2ZXJpZnkgdGhhdAoJICByZXR1cm5lZCB2YWx1ZS4KCSogYXBwcy9ncmFwaGljcy90aWZmOiAgQWRkIGEgbGlicmFyeSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBUSUZGIGZpbGVzLgoJKiBhcHBzL2V4YW1wbGVzL3RpZmY6ICBBZGQgYSB1bml0IHRlc3QgZm9yIHRoZSBUSUZGIGZpbGUgY3JlYXRpb24gbG9naWMKCSogYXBwcy9leGFtcGxlcy9sY2RydzogIEFkZCBhIHRlc3QgdG8gdmVyaWZ5IGlmIHlvdSBjYW4gb3IgY2FuIG9yIHJlYWQKCSAgZGF0YSBmcm9tIGFuIExDRCBjb3JyZWN0bHkuCgkqIGFwcHMvZXhhbXBsZXMvdXNidGVybTogIEEgVVNCIHRlcm1pbmFsIGV4YW1wbGUuLiBtb3JlIG9mIGEgVVNCIGNoYXQgb3IKCSAgc2VyaWFsIGJyaWRnZTogIERhdGEgcmVjZWl2ZWQgb24gbG9jYWwgY29uc29sZSBlY2hvZWQgdmlhIFVTQiBzZXJpYWw7CgkgIGRhdGEgcmVjZWl2ZWQgb24gVVNCIHNlcmlhbCBpcyBlY2hvZWQgb24gdGhlIGxvY2FsIGNvbnNvbGUuCgkqIGFwcHMvZXhhbXBsZXMvdG91Y2hzY3JlZW46ICBBZGQgYSBzaW1wbGUsIGdlbmVyaWMgdGVzdCBmb3IgYW55CgkgIHRvdXNjaHNjcmVlbiBkcml2ZXIuCgkqIE1ha2VmaWxlOiAgVGhlIGFwcHMvIE1ha2VmaWxlIG5vdyBjaGVja3MgZm9yIGFuIGFwcHMvZXh0ZXJuYWwgZGlyZWN0b3J5CgkgIG9yIHN5bWJvbGljIGxpbmsuICBJZiBzdWNoIGEgZGlyZWN0b3J5L2xpbmsgZXhpc3RzIChhbmQgaGFzIGEgTWFrZWZpbGUpLAoJICBpdCB3aWxsIGJlIGFkZGVkIHRvIHRoZSBhcHBzLyBidWlsZC4gIFRoaXMgYWxsb3dzIGV4dGVybmFsIGRpcmVjdG9yaWVzCgkgIHRvIGJlIGluY2x1ZGVkIGludG8gdGhlIGFwcHMvIGJ1aWxkIGJ5IHNpbXBseSBjcmVhdGluZyBhIHN5bWJvbGljIGxpbmsuCgo2LjExIDIwMTEtMTEtMTIgR3JlZ29yeSBOdXR0IDxnbnV0dEBudXR0eC5vcmc+CgoJKE5vIG1ham9yIGNoYW5nZXMgZnJvbSA2LjEwKQoKNi4xMiAyMDExLTEyLTA2IEdyZWdvcnkgTnV0dCA8Z251dHRAbnV0dHgub3JnPgoKCSogYXBwcy9leGFtcGxlcy9idXR0b25zOiAgVGhlIGJ1dHRvbiB0ZXN0IGNhbiBub3cgYmUgZXhlY3V0ZWQgYXMgYW4gTlNICgkgIGJ1aWx0IGluIGNvbW1hbmQuCgo2LjEzIDIwMTItMTItMjYgR3JlZ29yeSBOdXR0IDxnbnV0dEBudXR0eC5vcmc+CgoJKiBhcHBzL2V4YW1wbGVzL2RoY3BkOiBNYXkgbm93IGJlIGJ1aWx0IGFzIGFuIE5TSCBidWlsdC1pbiBhcHBsaWNhdGlvbgoJICBieSBzZXR0aW5nIENPTkZJR19OU0hfQlVJTFRJTl9BUFBTLgoJKiBhcHBzL25ldHV0aWxzL2RoY3BkL2RoY3BkLmM6IEZpeCBzZXZlcmFsIHByb2JsZW1zIHVzaW5nIGhvc3Qgb3JkZXIgYWRkcmVzcwoJICB3aGVyZSBuZXR3b3JrIGFkZHJlc3NlcyBleHBlY3RlZCAoYW5kIHZpY2UgdmVyc2EpLgoJKiBhcHBzL2V4YW1wbGVzL25ldHRlc3Q6IE1heSBub3cgYmUgYnVpbHQgYXMgYW4gTlNIIGJ1aWx0LWluIGFwcGxpY2F0aW9uCgkgIGJ5IHNldHRpbmcgQ09ORklHX05TSF9CVUlMVElOX0FQUFMuCgkqIGFwcHMvZXhhbXBsZXMvbmV0dGVzdDogQ29ycmVjdCBzb21lIGJ1aWxkIGlzc3VlcyB3aXRoIHRoZSBuZXR0ZXN0IGlzCgkgIGJ1aWx0IGZvciBwZXJmb3JtYW5jZSBldmFsdWF0aW9uLgoJKiBhcHBzL2V4YW1wbGVzL2FkYzogIEFkZCBhIHZlcnkgc2ltcGxlIHRlc3QgdG8gZHJpdmUgYW5kIHRlc3QgYW4gQURDCgkgIGRyaXZlci4KCSogYXBwcy9leGFtcGxlcy9wd206ICBBZGQgYW4gTlNIIFBXTSBjb21tYW5kIHRvIGRyaXZlIGFuZCB0ZXN0IGEgUFdNCgkgIGRyaXZlci4KCSogYXBwcy9leGFtcGxlcy9jYW46ICBBZGQgYW4gTlNIIENBTiBjb21tYW5kIHRvIGRyaXZlIGFuZCB0ZXN0IGEgQ0FOCgkgIGRyaXZlciBpbiBsb29wYmFjayBtb2RlLgoKNi4xNCAyMDEyLTAxLTE1IEdyZWdvcnkgTnV0dCA8Z251dHRAbnV0dHgub3JnPgoKCSogYXBwcy9leGFtcGxlcy9idXR0b25zL21haW4uYzogIFRoZSB0ZXN0IG5lZWRzIHRvIGNhbGwgdXBfYnV0dG9uaW5pdCgpIHRvCgkgIHByb3Blcmx5IGNvbmZpZ3VyZSB0aGUgYnV0dG9uIGludGVycnVwdCBHUElPcy4KCSogYXBwcy9leGFtcGxlcy9wd206ICBBZGQgc3VwcG9ydCB0byB0ZXN0IHRoZSBwdWxzZSBjb3VudCBvcHRpb24gcmVjZW50bHkKCSAgYWRkZWQgdG8gdGhlIFBXTSBpbnRlcmZhY2UuCgo2LjE1IDIwMTItMDItMTIgR3JlZ29yeSBOdXR0IDxnbnV0dEBudXR0eC5vcmc+CgoJKiBhcHBzL25zaGxpYi9uc2hfc2VyaWFsLmMgYW5kIG5zaF91c2JkZXYuYzogIElmIE51dHRYIGlzIGNvbmZpZ3VyZWQgdG8gdXNlCgkgIGEgVVNCIHNlcmlhbCBjb25zb2xlLCB0aGVuIE5TSCBuZWVkcyB0byB3YWl0IHVudGlsIHRoZSBVU0IgY29uc29sZSBpcwoJICBjb25uZWN0ZWQgYW5kIGF2YWlsYWJsZS4KCSogYXBwcy9leGFtcGxlcy9jb21wb3NpdGU6ICBBZGQgYSB0ZXN0IG9mIHRoZSBVU0IgY29tcG9zaXRlIGRldmljZS4KCSogYXBwcy9leGFtcGxlcy9UZWxuZXRkOiAgTW92ZSB0aGUgdGlueSB1SVAgc2hlbGwgZXhhbXBsZSBmcm9tCgkgIG5ldHV0aWxzL1RlbG5ldGQgdG8gZXhhbXBsZXMvVGVsbmV0ZC4gIEVuaGFuY2VkIHRoZSBUZWxuZXRkIGRhZW1vbiBzbyB0aGF0CgkgIGl0IHN1cHBvcnRzIFRlbG5ldGQgdmlhIGEgVFRZIGRldmljZSBkcml2ZXI6IEEgbmV3IFRUWSBkZXZpY2UgZHJpdmVyIGlzCgkgIGNyZWF0ZWQgd2hlbiBlYWNoIG5ldyBUZWxuZXQgY29ubmVjdGlvbiBpcyBjcmVhdGVkLiAgVGhlIHNoZWxsIHRocmVhZAoJICBpcyBzdGFydGVkIHdpdGggc3RkaW4sIHN0ZG91dCwgYW5kIHN0ZGVyciBtYXBwZWQgdG8gdGhlIFRUWSBkZXZpY2UuCgkqIG5ldHV0aWxzL1RlbG5ldGQ6ICBUaGUgb2xkIHVJUCBUZWxuZXQgZGVtbyBpcyBnb25lLiAgSW4gaXRzIHBsYWNlIGlzIGEgbmV3CgkgIFRlbG5ldCBpbmZyYXN0cnVjdHVyZS4gVGhlIG5ldyBUZWxuZXQgZGFlbW9uIGNyZWF0ZXMgc2Vzc2lvbnMgdGhhdCBhcmUKCSAgIndyYXBwZWQiIGFzIGNoYXJhY3RlciBkZXZpY2VzIGFuZCBtYXBwZWQgdG8gc3RkaW4sIHN0ZG91dCwgYW5kIHN0ZGVyci4KCSAgTm93IHRoZSBUZWxuZXQgc2Vzc2lvbiBjYW4gYmUgaW5oZXJpdGVkIGJ5IHNwYXduZWQgdGFza3MuCgkqIGV4YW1wbGVzL1RlbG5ldGQ6ICBBZGQgYSB0ZXN0IGZvciB0aGUgbmV3IFRlbG5ldCBkYWVtb24uCgkqIGV4YW1wbGVzL1RlbG5ldGQvdGVsbmV0ZF9kcml2ZXIuYzogTW92ZSB0aGUgaW50ZXJuYWwgc29ja2V0IHN0cnVjdHVyZSBmcm9tCgkgIHRoZSBkYWVtb24ncyBzb2NrZXQgYXJyYXkgaW50byB0aGUgZHJpdmVyJ3Mgc3RhdGUgZGF0YSBzbyB0aGF0IGl0IHdpbGwgYmUKCSAgaW5kZXBlbmRlbnQgZnJvbSB0aGUgdGhlIFRlbG5ldGQgZGFlbW9uLgoJKiBhcHBzL3N5c3RlbS9yZWFkbGluZTogIE1vdmVkIHRoZSBvbGQgbnV0dHgvbGliL3N0ZGlvL2xpYl9mZ2V0cy5jIGhlcmUKCSAgYW5kIHJlbmFtZWQgaXQgYXMgcmVhZGxpbmUoKS4gIFRoZSBvbGQgZmdldHMgd2FzIHNpbXBsaWVkIGFuZCB0aGUgb3ZlcmxvYWRlZAoJICByZWFkbGluZSBmdW5jdGlvbmFsaXR5IHdhcyByZW1vdmVkLgoJKiBhcHBzL25ldHV0aWxzL2Z0cGQ6ICBBZGQgYW4gRlRQRCBzZXJ2ZXIgKGRvZXMgbm90IGV2ZW4gY29tcGlsZSBvbiBpbml0aWFsCgkgIGNoZWNraW4pLgoJKiBhcHBzL2V4YW1wbGVzL2Z0cGQ6ICBBZGQgYSB0ZXN0IGZvciB0aGUgRlRQRCBzZXJ2ZXIgKHVudGVzdCBvbiBpbml0aWFsCgkgIGNoZWNrLWluKS4KCSogYXBwcy9uc2hsaWIvbnNoX2ZzY21kcy5jOiAgQWRkIHN1cHBvcnQgZm9yIGEgJ2RtZXNnJyBjb21tYW5kIHRoYXQgd2lsbAoJICBkdW1wIHRoZSBzeXN0ZW0gbG9nIGlmIENPTkZJR19TWVNMT0cgaXMgc2VsZWN0ZWQuCgo2LjE2IDIwMTItMDMtMTAgR3JlZ29yeSBOdXR0IDxnbnV0dEBudXR0eC5vcmc+CgoJKiBhcHBzL2V4YW1wbGVzL3FlbmNvZGVyOiAgQWRkIGEgcXVhZHJhdHVyZSBkcml2ZXIgdGVzdC4KCSogYXBwcy9leGFtcGxlcy9vc3Rlc3QvZnB1LmM6ICBBZGQgYSB0ZXN0IHRvIHZlcmlmeSB0aGF0IEZQVSByZWdpc3RlcnMKCSAgYXJlIHByb3Blcmx5IHNhdmVkIGFuZCByZXN0b3JlZCBvbiBjb250ZXh0IHN3aXRjaGVzLgoJKiBhcHBzL3N5c3RlbS9yZWFkbGluZS9yZWFkbGluZS5jOiAgcmVhZGxpbmUoKSB3aWxsIG5vdyB0cmVhdCBlaXRoZXIgYQoJICBiYWNrc3BhY2Ugb3IgYSBERUwgY2hhcmFjdGVyIGFzIGEgYmFja3NwYWNlIChpLmUuLCBkZWxldGluZyB0aGUgY2hhcmFjdGVyCgkgIHRvIHRoZSBsZWZ0IG9mIHRoZSBjdXJzb3IpLiAgVGhpcyBtYWtlcyBOU0ggbGVzcyBkZXBlbmRlbnQgb24gcGFydGljdWxhcgoJICBrZXlib2FyZCBtYXBwaW5ncyBvZiB0aGUgQmFja3NwYWNlIGtleS4gIFN1Ym1pdHRlZCBieSBNaWtlIFNtaXRoLgoJKiBhcHBzL3N5c3RlbS9jZGNhY206ICBBbiBleGFtcGxlIHRoYXQgaWxsdXN0cmF0ZXMgaG93IHRoZSBDREMvQUNNIGRyaXZlcgoJICBtYXkgdG8gY29ubmVjdGVkIGFuZCBkaXNjb25uZWN0ZWQgdGhyb3VnaCBzb2Z0d2FyZSBjb250cm9sLgoJKiBhcHBzL2V4YW1wbGVzL25zaC9uc2hfbWFpbi5jOiAgSWYgYXZhaWxhYmxlLCBjYWxsIHVwX2N4eGluaXRpYWxpemUoKSB0bwoJICBpbml0aWFsaXplIGFsbCBzdGF0aWNhbGx5IGRlZmluZWQgQysrIGNsYXNzZXMuCgkqIGFwcHMvbnNobGliOiAgTm93IHN1cHBvcnRzIGEgVVNCIHNlcmlhbCBkZXZpY2UgZm9yIE5TSCBjb25zb2xlIEkvTy4gIFRoaXMKCSAgYWxsb3dzIE5TSCB0byBiZSB1c2VkIG9uIGJvYXJkcyB0aGF0IGhhdmUgVVNCIGJ1dCBubyBzZXJpYWwgY29ubmVjdG9ycy4KCjYuMTcgMjAxMi0wNC0xNCBHcmVnb3J5IE51dHQgPGdudXR0QG51dHR4Lm9yZz4KCgkqIGFwcHMvZXhhbXBsZXMvY2FuOiAgQWRkIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHNvIHRoYXQgdGhlIHRlc3QgY2FuIGJlCgkgIGNvbmZpZ3VyZWQgdG8gb25seSBzZW5kIG1lc3NhZ2VzIG9yIHRvIG9ubHkgcmVjZWl2ZSBtZXNzYWdlcy4gIFRoaXMgd2lsbAoJICBsZXQgdGhlIHRlc3Qgd29yayBpbiBvdGhlciBtb2RlcyB0aGFuIHNpbXBsZSBsb29wYmFjayB0ZXN0aW5nLgoJKiBhcHBzL2V4YW1wbGVzL2hlbGxvIGFuZCBhcHBzL2V4YW1wbGVzL29zdGVzdDogIENhbiBub3cgYmUgYnVpbHQgYXMgTlNICgkgIGJ1aWx0LWludCBmdW5jdGlvbnMuCgkqIHZzbi9oZWxsbzogIFJlbW92ZWQuICBUaGUgbW9kaWZpZWQgYXBwcy9leGFtcGxlcy9oZWxsbyBpcyBlbm91Z2ggIkhlbGxvLAoJICBXb3JsZCEiCgkqIGFwcHMvZXhhbXBsZXMvbnhjb25zb2xlOiAgQWRkIGEgdGVzdCBvZiB0aGUgTlggY29uc29sZSBkZXZpY2UuCgkqIGFwcHMvZXhhbXBsZXMvbnhjb25zb2xlOiAgVGhlIE5YIGNvbnNvbGUgZXhhbXBsZSBub3cgc3VwcG9ydHMgcnVubmluZwoJICB0aGUgTnV0dFNoZWxsIChOU0gpIHdpdGhpbiBhbiBOWCB3aW5kb3cuCgkqIGFwcHMvc3lzdGVtL3JlYWRsaW5lOiAgTm93IHVzZXMgc3RhbmRhcmQgZGVmaW5pdGlvbnMgZnJvbQoJICBpbmNsdWRlL251dHR4L2FzY2lpLmggYW5kIHZ0MTAwLmgKCSogS2NvbmZpZywgKi9LY29uZmlnOiAgQWRkZWQgc2tlbGV0b24gS2NvbmZpZyBmaWxlcyB0byBhbGwgZGlyZWN0b3JpZXMgdGhhdAoJICBtYXkgbmVlZCB0aGVtLgoKNi4xOCAyMDEyLTA1LTE5IEdyZWdvcnkgTnV0dCA8Z251dHRAbnV0dHgub3JnPgoKCSogS2NvbmZpZzogIENvbnRpbnVlZCBLY29uZmlnIGZpbGUgdXBkYXRlcyAobm8gbG9uZ2VyIHRyYWNraW5nIG9uIGEgcGVyLWZpbGUKCSAgYmFzaXMgaW4gdGhlIENoYW5nZUxvZykKCSogYXBwcy9leGFtcGxlcy93YXRjaGRvZzogIEFkZCBhIHdhdGNoZG9nIHRpbWVyIGV4YW1wbGUuCgkqIGFwcHMvZXhhbXBsZXMvdGlmZjogIEZpeCB3cm9uZyBwYXRoIHVzZWQgZm9yIHRlbXBvcmFyeSBmaWxlLgoJKiBhcHBzL2V4YW1wbGVzL3RvdWNoc2NyZWVuOiAgU3RhbmRhcmRpemUgdGhlIGJvYXJkLXNwZWNpZmljLCB0b3VjaHNjcmVlbgoJICBpbml0aWFsaXphdGlvbiBpbnRlcmZhY2VzLgoKNi4xOSAyMDEyLTA2LTE1IEdyZWdvcnkgTnV0dCA8Z251dHRAbnV0dHgub3JnPgoKCSogYXBwcy9uc2hsaWIvbnNoX3VzYmRldi5jOiAgQWRkIHRoZSBjYXBhYmlsaXR5IHRvIHVzZSBhbiBhcmJpdHJhcnkgVVNCCgkgIGRldmljZSBhcyB0aGUgY29uc29sZSAobm90IG5lY2Vzc2FyaWx5IC9kZXYvY29uc29sZSkuICBUaGlzIGlzIGEgdXNlZnVsCgkgIG9wdGlvbiBiZWNhdXNlIHRoZW4geW91IGNhbiBzdGlsbCB1c2UgdGhlIHNlcmlhbCBjb25zb2xlIHRvIGRlYnVnIHdpdGguCgkqIGFwcHMvbnNobGliL25zaF91c2JkZXYuYzogIFVzZXIgbm93IGhhcyB0byBwcmVzcyBFTlRFUiAzIHRpbWVzIGJlZm9yZQoJICBVU0IgY29uc29sZSB3aWxsIHN0YXJ0LiAgT3RoZXJ3aXNlLCB0aGUgVVNCIGNvbnNvbGUgc3RhcnRzIGJlZm9yZSB0aGVyZQoJICBpcyBhbnlvbmUgYXQgdGhlIG90aGVyIGVuZCB0byBsaXN0ZW4uCgkqIGFwcHMvbnNobGliL25zaF91c2JkZXYuYyBhbmQgbnNoX2NvbnNvbGVtYWluLmM6ICBBZGQgc3VwcG9ydCBmb3IgdGhlIFVTQgoJICBjYXBhYmlsaXR5IHdoZW4gYSBVU0IgY29uc29sZSBpcyB1c2VkLgoJKiBhcHBzL25zaGxpYi9uc2hfZnNjbWRzLmM6ICBBZGQgdGhlICdtdicgY29tbWFuZAoKNi4yMCAyMDEyLTA3LTEyIEdyZWdvcnkgTnV0dCA8Z251dHRAbnV0dHgub3JnPgoKCSogbmFtZWRhcHAvZXhlY19uYW1lZGFwcC5jIC0gQ29ycmVjdCBhbiBlcnJvciB3aGVuIHJvdW5kIHJvYmluIHNjaGVkdWxpbmcKCSAgaXMgZW5hYmxlZC4gIFRoZSBwcmlvcml0eSBvZiB0aGUgbmV3LCBuYW1lZCBhcHBsaWNhdGlvbiB3YXMgZXJyb25lb3VzbHkKCSAgYmVpbmcgc2V0IHRvIHRoZSBwcmlvcml0eSBvZiB0aGUgcGFyZW50IHRocmVhZDsgbG9zaW5nIGl0cyBjb25maWd1cmVkCgkgIHByaW9yaXR5LiAgUmVwb3J0ZWQgYnkgTWlrZSBTbWl0aC4KCjYuMjEgMjAxMi0wOC0yNSBHcmVnb3J5IE51dHQgPGdudXR0QG51dHR4Lm9yZz4KCgkqIGFwcHMvaW5jbHVkZS86IFN0eWxpc3RpYyBjbGVhbi11cCBvZiBhbGwgaGVhZGVyIGZpbGVzLgoJKiBhcHBzL21vZGJ1cyBhbmQgYXBwcy9pbmNsdWRlL21vZGJ1czogIEEgcG9ydCBvZiBmcmVlbW9kYnVzLXYxLjUuMAoJICBoYXMgYmVlbiBhZGRlZCB0byB0aGUgTnV0dFggYXBwcy8gc291cmNlIHRyZWUuCgkqIGFwcHMvZXhhbXBsZXMvbW9kYnVzOiAgQSBwb3J0IG9mIHRoZSBmcmVlbW9kYnVzLXYxLjUuMCAiZGVtbyIKCSAgcHJvZ3JhbSB0aGF0IHdpbGwgYmUgdXNlZCB0byB2ZXJpZnkgdGhlIEZyZWVNb2RCdXMgcG9ydAoJKiBhcHBzL21vZGJ1czogIERvbid0IHVzZSBzdHJlcnJvcigpLiAgSXQgaXMganVzdCB0b28gYmlnLgoJKiBhcHBzL21vZGJ1czogIEFkZCBDT05GSUdfTUJfVEVSTUlPUy4gIElmIHRoZSBkcml2ZXIgZG9lc24ndCBzdXBwb3J0CgkgIHRlcm1pb3MgaW9jdGxzLCB0aGVuIGRvbid0IGJvdGhlciB0cnlpbmcgdG8gY29uZmlndXJlIHRoZSBiYXVkLCBwYXJpdHkKCSAgZXRjLgoJKiBhcHBzL25zaGxpYjogIElmIHdhaXRwaWQoKSBpcyBzdXBwb3J0ZWQsIHRoZW4gTlNIIG5vdyBjYXRjaGVzIHRoZQoJICByZXR1cm4gdmFsdWUgZnJvbSBzcGF3bmVkIGFwcGxpY2F0aW9ucyAocHJvdmlkZWQgYnkgTWlrZSBTbWl0aCkKCSogYXBwcy9uc2hsaWI6ICBMb2NrIHRoZSBzY2hlZHVsZXIgd2hpbGUgc3RhcnRpbmcgYnVpbHQtaW4gYXBwbGljYXRpb25zCgkgIGluIG9yZGVyIHRvIGVsaW1pbmF0ZSByYWNlIGNvbmRpdGlvbnMgKGFsc28gZnJvbSBNaWtlIFNtaXRoKS4KCSogYXBwcy9leGFtcGxlcy9hZGMsIHB3bSwgYW5kIHFlbmNvZGVyOiAgQWRkIHN1cHBvcnQgZm9yIHRlc3RpbmcKCSAgZGV2aWNlcyB3aXRoIG11bHRpcGxlIEFEQywgUFdNLCBhbmQgUUUgZGV2aWNlcy4KCSogYXBwcy9uc2hsaWIvbnNoX21udGNtZHMuYzogIFNlcGFyYXRlZCBtb3VudC1yZWxhdGVkIGNvbW1hbmRzIG91dCBvZgoJICBuc2hfZnNjbWRzLmMuICBFeHRlbmRlZCB0byB0aGUgbW91bnQgY29tbWFuZCBzbyB0aGF0IGlmIG5vIGFyZ3VtZW50cwoJICBhcmUgcHJvdmlkZWQsIHRoZW4gdGhlIGN1cnJlbnQgbW91bnRwb2ludHMgYXJlIGVudW1lcmF0ZWQuCgkqIGFwcHMvbnNobGliL25zaF9tbnRjbWRzLmM6ICBBZGQgYW4gTlNIIGRmIGNvbW1hbmQgdG8gbGlzdCB0aGUKCSAgcHJvcGVydGllcyBvZiBtb3VudGVkIGZpbGUgc3lzdGVtcy4KCSogYXBwcy9uc2hsaWIvbnNoX3BhcnNlLmM6ICBFeHRlbmQgaGVscCBjb21tYW5kIG9wdGlvbnMuICAnaGVscCcgd2l0aAoJICBubyBhcmd1bWVudHMgb3V0cHV0cyBhIHNob3J0IGxpc3Qgb2YgY29tbWFuZHMuICBXaXRoIC12IGxpc3RzIGFsbAoJICBjb21tYW5kIGxpbmUgZGV0YWlscy4gIEEgY29tbWFuZCBuYW1lIGNhbiBiZSBhZGRlZCB0byBqdXN0IGdldAoJICBoZWxwIG9uIG9uZSBjb21tYW5kLgoJKiBzeXN0ZW0vcmVhZGxpbmUuYzogIElmIGNoYXJhY3RlciBpbnB1dC9vdXRwdXQgaXMgaW50ZXJydXB0ZWQgYnkgYQoJICBzaWduYWwsIHRoZW4gcmVhZGxpbmUoKSB3aWxsIHRyeSB0aGUgcmVhZC93cml0ZSBhZ2Fpbi4KCSogYXBwcy8qL01ha2UuZGVmczogIE51bWVyb3VzIGZpeGVzIG5lZWRlZCB0byB1c2UgdGhlIGF1dG9tYXRlZAoJICBjb25maWd1cmF0aW9uIChmcm9tIFJpY2hhcmQgQ29jaHJhbikuCgo2LjIyIDIwMTItMDktMjkgR3JlZ29yeSBOdXR0IDxnbnV0dEBudXR0eC5vcmc+CgoJKiBhcHBzL25ldHV0aWxzL3RodHRwZC90aHR0cGRfY2dpLmM6ICBNaXNzaW5nIE5VTEwgaW4gYXJndltdCgkgIGxpc3QgKGNvbnRyaWJ1dGVkIGJ5IEthdGUpLgoJKiBhcHBzL25zaGxpYi9uc2hfcGFyc2UuYzogQ09ORklHX05TSF9ESVNBQkxFX1dHRVQgbm90IENPTkZJR19OU0hfRElTQUJMRV9HRVQKCSAgaW4gb25lIGxvY2F0aW9uIChmb3VuZCBieSBLYXRlKS4KCSogYXBwcy9leGFtcGxlcy9vc3Rlc3QvcHJpb2luaGVyaXQuYzogIExpbWl0IHRoZSBudW1iZXIgb2YgdGVzdAoJICB0aHJlYWRzIHRvIG5vIG1vcmUgdGhhbiAzIG9mIGVhY2ggcHJpb3JpdHkuICBCYWQgdGhpbmdzIGhhcHBlbgoJICB3aGVuIHRoZSBleGlzdGluZyBsb2dpYyB0cmllZCB0byBjcmVhdGVkIHNldmVyYWwgaHVuZHJlZCB0ZXN0CgkgIHRyZWFkcyEKCSogYXBwcy9uc2hsaWIvbnNoLmg6ICBCb3RoIENPTkZJR19MSUJDX1NUUkVSUk9SIGFuZCBDT05GSUdfTlNIX1NUUkVSUk9SCgkgIG11c3QgYmUgZGVmaW5lZCB0byB1c2Ugc3RyZXJyb3IoKSB3aXRoIE5TSC4KCSogYXBwcy9leGFtcGxlcy8qLypfbWFpbi5jLCBzeXN0ZW0vaTJjL2kyY19tYWluLmMsIGFuZCBvdGhlcnM6ICBBZGRlZAoJICBjb25maWd1cmF0aW9uIHZhcmlhYmxlIENPTkZJR19VU0VSX0VOVFJZUE9JTlQgdGhhdCBtYXkgYmUgdXNlZCB0byBjaGFuZ2UKCSAgdGhlIGRlZmF1bHQgZW50cnkgZnJvbSB1c2VyX3N0YXJ0IHRvIHNvbWUgb3RoZXIgc3ltYm9sLiAgQ29udHJpYnV0ZWQgYnkKCSAgS2F0ZS4KCSogYXBwcy9uZXR1dGlscy93ZWJzZXJ2ZXIvaHR0cGQvYzogIEZpeCBhIHR5cG8gdGhhdCBhcyBpbnRyb2R1Y2VkIGluCgkgIHZlcnNpb24gcjQ0MDI6ICAnbGVzZScgaW5zdGVhZCBvZiAnZWxzZScgKE5vdGVkIGJ5IE1heCBIb2x0emJlcmcpLgoJKiB0b29scy9ta2ZzZGF0YS5wbDogVGhlIHVJUCB3ZWIgc2VydmVyIENHSSBpbWFnZSBtYWtpbmcgcGVybCBzY3JpcHQgd2FzCgkgIG1vdmVkIGZyb20gYXBwcy9uZXR1dGlscy93ZWJzZXJ2ZXIvbWFrZWZzZGF0YSB0byBudXR0eC90b29scy9ta2ZzZGF0YS5wbAoJICAoUGFydCBvZiBhIGxhcmdlciBjaGFuZ2Ugc3VibWl0dGVkIGJ5IE1heCBIb2x0emJlcmcpLgoJKiBhcHBzL25ldHV0aWxzL3dlYnNlcnZlciwgYXBwcy9leGFtcGxlcy91aXAsIGFuZCBhcHBzL2luY2x1ZGUvbmV0dXRpbHMvaHR0cGQuaDoKCSAgVGhlICJjYW5uZWQiIHZlcnNpb24gb2YgdGhlIHVJUCB3ZWIgc2VydmVycyBjb250ZW50IHRoYXQgd2FzIGF0CgkgIG5ldHV0aWxzL3dlYnNlcnZlci9odHRwZF9mc2RhdGEuYyBoYXMgYmVlbiByZXBsYWNlZCB3aXRoIGEgZHluYW1pY2FsbHkKCSAgYnVpbHQgY29uZmlndXJhdGlvbiBsb2NhdGVkIGF0IGFwcHMvZXhhbXBsZXMvdWlwIChDb250cmlidXRlZCBieQoJICBNYXggSG9sdHpiZXJnKS4KCSogYXBwcy9uZXR1dGlscy93ZWJzZXJ2ZXI6ICBTZXZlcmFsIGluZW5oYW5jZW1lbnRzIGZyb20gS2F0ZSBpbmNsdWRpbmcgdGhlCgkgIGFiaWxpdHkgdG8gZWxpZGUgc2NyaXB0aW5nIGFuZCBTRVJWRVIgaGVhZGVycyBhbmQgdGhlIGFiaWxpdHkgdG8gbWFwCgkgIGZpbGVzIGludG8gbWVtb3J5IGJlZm9yZSB0cmFuc2ZlcnJpbmcgdGhlbS4KCSogYXBwcy9uZXR1dGlscy93ZWJzZXJ2ZXI6ICBBZGQgYWJpbGl0eSB0byBtYXAgYSBVUkwgdG8gQ0dJIGZ1bmN0aW9uLgoJICBDb250cmlidXRlZCBieSBLYXRlLgoJKiBhcHBzL25zaGxpYi9uc2hfbW50Y21kcy5jOiBUaGUgY2hhbmdlcyBvZiA2LjIxIGludHJvZHVjZWQgaG9sZXMgaW4gdGhlCgkgIGVycm9yIGhhbmRsaW5nOiAgTm93IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIG1vdW50IGNhbiBiZSAwIG9yIDQuCgkgIEFkZGl0aW9uYWwgcGFyYW1ldGVyIGNoZWNraW5nIGlzIHJlcXVpcmVkIHRvIHByZXZlbnQgbXlzdGVyaW91cyBlcnJvcnMKCSAgKHN1Ym1pdGVlZCBieSBLYXRlKS4KCSogYXBwcy9uZXR1dGlscy93ZWJzZXJ2ZXIvaHR0cGRfbW1hcC5jOiAgRml4IGVycm9ycyB3aGVuIHRoZSBtbWFwKCkKCSAgbGVuZ3RoIGlzIHplcm8gKHN1Ym1pdHRlZCBieSBLYXRlKS4KCSogYXBwcy9uZXR1dGlscy93ZWJzZXJ2ZXIvaHR0cGRfc2VuZGZpbGUuYzogIEFkZCBhbmQgb3B0aW9uLAoJICBDT05GSUdfTkVUVVRJTFNfSFRUUERfU0VOREZJTEUgdG8gdHJhbnNmZXIgZmlsZXMgdXNpbmcgdGhlIE51dHRYCgkgIHNlbmRmaWxlKCkgaW50ZXJmYWNlLgoJKiBhcHBzL25ldHV0aWxzL2Rpc2NvdmVyOiAgQSBVRFAgbmV0d29yayBkaXNjb3ZlcnkgdXRpbGl0eSBjb250cmlidXRlZAoJICBieSBNYXggSG9sdHpiZXJnLgoJKiBhcHBzL2V4YW1wbGVzL2Rpc2NvdmVyOiAgQSB0ZXN0IGV4YW1wbGUgZm9yIHRoZSBVRFAgbmV0d29yayBkaXNjb3ZlcnkKCSAgdXRpbGl0eSAoYWxzbyBjb250cmliZWQgYnkgTWF4IEhvbHR6YmVyZykuCgkqIGFwcHMvZXhhbXBsZXMvKi9tYWluLmM6ICBUb28gbWFueSBmaWxlcyBjYWxsZWQgbWFpbi5jLiAgRWFjaCByZW5hbWVkCgkgIHRvIHNvbWV0aGluZyB1bmlxdWUgc28gdGhhdCB0aGV5IHdpbGwgbm90IGNvbGxpZGUgaW4gdGhlIGFyY2hpdmUuCgkqIGFwcHMvbmV0dXRpbHMveG1scnBjOiBUaGUgRW1iZWRkYWJsZSBMaWdodHdlaWdodCBYTUwtUlBDIFNlcnZlcgoJICBkaXNjdXNzZWQgYXQgaHR0cDovL3d3dy5kcmRvYmJzLmNvbS93ZWItZGV2ZWxvcG1lbnQvXAoJICBhbi1lbWJlZGRhYmxlLWxpZ2h0d2VpZ2h0LXhtbC1ycGMtc2VydmVyLzE4NDQwNTM2NC4gIENvbnRyaWJ1dGVkIGJ5CgkgIE1heCBIb2x0emJlcmcuCgkqIGFwcHMvbmV0dXRpbHMvdWlwX2xpc3Rlbm9uLmM6ICBMb2dpYyBpbiB1aXBfc2VydmVyLmMgdGhhdCBjcmVhdGVzCgkgIHRoZSBsaXN0ZW5pbmcgc29ja2V0IHdhcyBtb3ZlZCB0byB0aGlzIG5ldyBmaWxlIHRvIHN1cHBvcnQgcmUtdXNlLgoJICBDb250cmlidXRlZCBieSBLYXRlLgoJKiBhcHBzL25ldHV0aWxzL3dlYnNlcnZlci9odHRwZC5jOiAgVGhlIG9wdGlvbiBDT05GSUdfTkVUVVRJTFNfSFRUUERfU0lOR0xFQ09OTkVDVAoJICBjYW4gbm93IGJlIHVzZWQgdG8gbGltaXQgdGhlIHNlcnZlciB0byBhIHNpbmdsZSB0aHJlYWQuICBPcHRpb24KCSAgQ09ORklHX05FVFVUSUxTX0hUVFBEX1RJTUVPVVQgY2FuIGJlIHVzZWQgdG8gZ2VuZXJhdGUgSFRUUCA0MDggZXJyb3JzLgoJICBCb3RoIGZyb20gS2F0ZS4KCSogYXBwcy9uZXR1dGlscy93ZWJzZXJ2ZXIvaHR0cGQuYzogIEltcHJvdmVtZW50cyB0byBIVFRQIHBhcnNlciBmcm9tCgkgIEthdGUuCgkqIGFwcHMvbmV0dXRpbHMvd2Vic2VydmVyL2h0dHBkLmM6ICBBZGQgc3VwcG9ydCBmb3IgS2VlcC1hbGl2ZSBjb25uZWN0aW9ucwoJICAoZnJvbSBLYXRlKS4KCSogYXBwcy9OeFdpZGdldC9LY29uZmlnOiAgVGhpcyBpcyBhIGtsdWRnZS4gIEkgY3JlYXRlZCB0aGlzIE54V2lkZ2V0cwoJICBkaXJlY3RvcnkgdGhhdCBPTkxZIGNvbnRhaW5zIEtjb25maWcuICBOeFdpZGdldHMgZG9lcyBub3QgbGl2ZSBpbgoJICBlaXRoZXIgdGhlIG51dHR4LyBvciB0aGUgYXBwcy8gc291cmNlIHRyZWVzLiAgVGhpcyBrbHVkZ2UgbWFrZXMgaXQKCSAgcG9zc2libGUgdG8gY29uZmlndXJlIE54V2lkZ2V0cy9OeFdNIHdpdGhvdXQgdG9vIG11Y2ggdHJvdWJsZSAod2l0aAoJICB0aGUgdHJhZGVvZmYgYmVpbmcgYSBraW5kIHVnbHkgc3RydWN0dXJlIGFuZCBzb21lIG1haW50ZW5hbmNlIGlzc3VlcykuCgkqIGFwcHMvZXhhbXBsZXMvTWFrZS5kZWZzOiBNaXNzaW5nIHN1cHBvcnQgZm9yIGFwcHMvZXhhbXBsZXMvd2F0Y2hkb2cuCgkqIGFwcHMvTnhXaWRnZXRzL0tjb25maWc6ICBBZGQgb3B0aW9uIHRvIHR1cm4gb24gdGhlIG1lbW9yeSBtb25pdG9yCgkgIGZlYXR1cmUgb2YgdGhlIE54V2lkZ2V0cy9OeFdNIHVuaXQgdGVzdHMuCgo2LjIzIDIwMTItMTEtMDUgR3JlZ29yeSBOdXR0IDxnbnV0dEBudXR0eC5vcmc+CgoJKiB2c246IE1vdmVkIGFsbCBOU0ggY29tbWFuZHMgZnJvbSB2c24vIHRvIHN5c3RlbS8uICBEZWxldGVkIHRoZSB2c24vCgkgIGRpcmVjdG9yeS4KCSogTWFrZWZpbGU6ICBDaGFuZ2Ugb3JkZXIgb2YgaW5jbHVkZXMgd2hlbiBDT05GSUdfTkVXQ09ORklHPXkuICBJbgoJICB0aGF0IGNhc2UsIG5hbWVkYXBwIG11c3QgYmUgaW5jbHVkZWQgZmlyc3Qgc28gdGhhdCB0aGUgbmFtZWRhcHAKCSAgY29udGV4dCBpcyBlc3RhYmxpc2hlZCBmaXJzdC4gIElmIHRoZSBuYW1lZGFwcCBjb250ZXh0IGlzIGVzdGFibGlzaGVkCgkgIGxhdGVyLCBpdCB3aWxsIG92ZXJ3cml0ZSBhbnkgZXhpc3RpbmcgbmFtZWRhcHBfbGlzdC5oIGFuZCBuYW1lYXBwX3Byb3RvLmgKCSAgZmlsZXMuCgkqIENPTkZJR19FWEFNUExFU18qOiBUbyBtYWtlIHRoaW5ncyBjb25zaXN0ZW50LCBjaGFuZ2VkIGFsbCBvY2N1cnJlbmNlcwoJICBvZiBDT05GSUdfRVhBTVBMRV8qIHRvIENPTkZJR19FWEFNUExFU18qLgoJKiBLY29uZmlnOiAgRmxlc2hlZCBvdXQgYXBwcy9leGFtcGxlcy9hZGMvS2NvbmZpZyBhbmQgYXBwcy9leGFtcGxlcy93Z2V0L0tjb25maWcuCgkgIFRoZXJlIGFyZSBzdGlsbCBhIExPVCBvZiBlbXB0eSwgc3R1YiBLY29uZmlnIGZpbGVzLgoJKiBLY29uZmlnOiAgRmxlc2hlZCBvdXQgYXBwcy9leGFtcGxlcy9idXR0b25zL0tjb25maWcuIFRoZXJlIGFyZSBzdGlsbCBhIExPVAoJICBvZiBlbXB0eSwgc3R1YiBLY29uZmlnIGZpbGVzLgoJKiBhcHBzL25ldHV0aWxzL3dlYnNlcnZlci9odHRwZC5jOiAgRml4IGEgYnVnIHRoYXQgSSBpbnRyb2R1Y2VkIGluCgkgIHJlY2VudCBjaGVjay1pbnMgKERhcmN5IEdvbmcpLgoJKiBhcHBzL25ldHV0aWxzL3dlYmNsaWVudC93ZWJjbGllbnQuYzogIEZpeCBhbm90aGVyIGJ1dCB0aGF0IEkgaW50cm9kdWNlZAoJICB3aGVuIEkgd2FzIHRyeWluZyB0byBhZGQgY29ycmVjdCBoYW5kbGluZyBmb3IgbG9zcyBvZiBjb25uZWN0aW9uIChEYXJjeSBHb25nKQoJKiBhcHBzL25zaGxpYi9uc2hfdGVsbmV0ZC5jOiAgQWRkIHN1cHBvcnQgZm9yIGxvZ2luIHRvIFRlbG5ldCBzZXNzaW9uIHZpYQoJICB1c2VybmFtZSBhbmQgcGFzc3dvcmQgKERhcmN5IEdvbmcpLgoJKiBhcHBzL25ldHV0aWxzL3Jlc29sdi9yZXNvbHYuYyAoYW5kIGZpbGVzIHVzaW5nIHRoZSBETlMgcmVzb2x2ZXIpOiBWYXJpb3VzCgkgIEROUyBhZGRyZXNzIHJlc29sdXRpb24gaW1wcm92ZW1lbnRzIGZyb20gRGFyY3kgR29uZy4KCSogYXBwcy9uc2hsaWIvbnNoX25ldGNtZHMuYzogIFRoZSBwaW5nIGNvbW1hbmQgbm93IHBhc3NlcyBhIG1heGltdW0gcm91bmQKCSAgdHJpcCB0aW1lIHRvIHVpcF9pY21wcGluZygpLiAgVGhpcyBhbGxvd3MgcGluZ2luZyBvZiBob3N0cyBvbiBjb21wbGV4CgkgIG5ldHdvcmtzIHdoZXJlIHRoZSBJQ01QIEVDSE8gcm91bmQgdHJpcCB0aW1lIG1heSBleGNlZWQgdGhlIHBpbmcgaW50ZXJ2YWwuCgkqIGFwcHMvZXhhbXBsZXMvbnh0ZXh0L254dGV4dF9tYWluLmM6ICBGaXggYmFkIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uCgkgIHdoZW4gQ09ORklHX05YX0tCRCBpcyBub3QgZGVmaW5lZC4gIFN1Ym1pdHRlZCBieSBQZXR0ZXJpIEFpbW9uZW4uCgkqIGFwcHMvZXhhbXBsZXMvbnhpbWFnZS9ueGltYWdlX21haW4uYzogIEFkZCBhIDUgc2Vjb25kIGRlbGF5IGFmdGVyIHRoZQoJICBOWCBsb2dvIGlzIHByZXNlbnRlZCBzbyB0aGF0IHRoZXJlIGlzIHRpbWUgZm9yIHRoZSBpbWFnZSB0byBiZSB2ZXJpZmllZC4KCSAgU3VnZ2VzdGVkIGJ5IFBldHRlcmkgQWltb25lbi4KCSogYXBwcy9NYWtlZmlsZTogU21hbGwgY2hhbmdlIHRoYXQgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIHNoZWxsIGludm9jYXRpb25zCgkgIGJ5IG9uZSAoTWlrZSBTbWl0aCkuCgkqIGFwcHMvZXhhbXBsZXMvZWxmOiAgVGVzdCBleGFtcGxlIGZvciB0aGUgRUxGIGxvYWRlci4KCSogYXBwcy9leGFtcGxlcy9lbGY6ICBUaGUgRUxGIG1vZHVsZSB0ZXN0IGV4YW1wbGUgYXBwZWFycyBmdWxseSBmdW5jdGlvbmFsLgoJKiBhcHBzL25ldHV0aWxzL2pzb246ICBBZGQgYSBzbmFwc2hvdCBvZiB0aGUgY0pTT04gcHJvamVjdC4gIENvbnRyaWJ1dGVkIGJ5CgkgIERhcmN5IEdvbmcuCgkqIGFwcHMvZXhhbXBsZXMvanNvbjogIFRlc3QgZXhhbXBsZSBmb3IgY0pTT04gZnJvbSBEYXJjeSBHb25nCgkqIGFwcHMvbnNobGliL25zaF9uZXRpbml0LmM6IEZpeCBzdGF0aWMgSVAgRE5TIHByb2JsZW0gKERhcmN5IEdvbmcpCgkqIGFwcHMvbmV0dXRpbHMvcmVzb2x2L3Jlc29sdi5jOiBETlMgZml4ZXMgZnJvbSBEYXJjeSBHb25nLgoJKiBDT1BZSU5HOiBMaWNlbnNpbmcgaW5mb3JtYXRpb24gYWRkZWQuCgkqIGFwcHMvbmV0dXRpbHMvY29kZWMgYW5kIGluY2x1ZGUvbmV0dXRpbHMvdXJsZGVjb2RlLmgsIGJhc2U2NC5oLCBhbmQgbWQ1Lmg6CgkgIEEgcG9ydCBvZiB0aGUgQkFTRTQ2LCBNRDUgYW5kIFVSTCBDT0RFQyBsaWJyYXJ5IGZyb20gRGFyY3kgR29uZy4KCSogbnNubGliL25zaF9jb2RlY2NtZC5jOiAgTlNIIGNvbW1hbmRzIHRvIHVzZSB0aGUgQ09ERUMgbGlicmFyeS4KCSAgQ29udHJpYnV0ZWQgYnkgRGFyY3kgR29uZy4KCSogYXBwcy9leGFtcGxlcy93Z2V0anNvbjogVGVzdCBleGFtcGxlIGNvbnRyaWJ1dGVkIGJ5IERhcmN5IEdvbmcKCSogYXBwcy9leGFtcGxlcy9jeHh0ZXN0OiAgQSB0ZXN0IGZvciB0aGUgdUNsaWJjKysgbGlicmFyeSBwcm92aWRlZCBieQoJICBRaWFuZyBZdSBhbmQgdGhlIFJHTVAgdGVhbS4KCSogYXBwcy9uZXR1dGlscy93ZWJjbGllbnQsIGFwcHMvbmV0dXRpbHMuY29kZXMsIGFuZCBhcHBzL2V4YW1wbGVzL3dnZXRqc29uOgoJICBBZGQgc3VwcG9ydCBmb3Igd2dldCBQT1NUIGludGVyZmFjZS4gIENvbnRyaWJ1dGVkIGJ5IERhcmN5IEdvbmcuCgkqIGFwcHMvZXhhbXBsZXMvcmVsYXlzOiAgQSByZWxheSBleGFtcGxlIGNvbnRyaWJ1dGVkIGJ5IERhcmN5IEdvbmcuCgkqIGFwcHMvbnNobGliL25zaF9uZXRjbWRzOiBBZGQgaWZ1cCBhbmQgaWZkb3duIGNvbW1hbmRzIChmcm9tIERhcmN5CgkgIEdvbmcpLgoJKiBhcHBzL25zaGxpYi9uc2hfbmV0Y21kczogRXh0ZW5kIHRoZSBpZmNvbmZpZyBjb21tYW5kIHNvIHRoYXQgaXQKCSAgc3VwcG9ydHMgc2V0dGluZyBJUCBhZGRyZXNzZXMsIG5ldHdvcmsgbWFza3MsIG5hbWUgc2VydmVyIGFkZHJlc3NlcywKCSAgYW5kIGhhcmR3YXJlIGFkZHJlc3MgKGZyb20gRGFyY3kgR29uZykuCgo2LjI0IDIwMTItMTItMjAgR3JlZ29yeSBOdXR0IDxnbnV0dEBudXR0eC5vcmc+CgoJKiBhcHBzL2V4YW1wbGVzL29zdGVzdC9yb3VuZHJvYmluLmM6ICBSZXBsYWNlIGxhcmdlIHRhYmxlcyB3aXRoCgkgIGFsZ29yaXRobWljIHByaW1lIG51bWJlciBnZW5lcmF0aW9uLiAgVGhpcyBhbGxvd3MgdGhlIHJvdW5kcm9iaW4KCSAgdGVzdCB0byBydW4gb24gcGxhdGZvcm1zIHdpdGggbWluaW1hbCBTUkFNIChGcmVkZGllIENob3BpbikuCgkqIGFwcHMvbnNobGliL25zaF9kYmdjbWRzLmM6ICBBZGQgaGV4ZHVtcCBjb21tYW5kIHRvIGR1bXAgdGhlIGNvbnRlbnRzCgkgIG9mIGEgZmlsZSAob3IgY2hhcmFjdGVyIGRldmljZSkgdG8gdGhlIGNvbnNvbGUgIENvbnRyaWJ1dGVkIGJ5IFBldHRlcmkKCSAgQWltb25lbi4KCSogYXBwcy9leGFtcGxlcy9tb2RidXM6ICBGaXhlcyBmcm9tIEZyZWRkaWUgQ2hvcGluCgkqIGFwcHMvZXhhbXBsZXMvbW9kYnVzL0tjb25maWc6IEtjb25maWcgbG9naWMgZm9yIEZyZWVNb2RCdXMgY29udHJpYnV0ZWQKCSAgYnkgRnJlZGRpZSBDaG9waW4uCgkqIE1ha2VmaWxlLCAqL01ha2VmaWxlOiAgVmFyaW91cyBmaXhlcyBmb3IgV2luZG93cyBuYXRpdmUgYnVpbGQuICBOb3cgdXNlcwoJICBtYWtlIGZvcmVhY2ggbG9vcHMgaW5zdGVhZCBvZiBzaGVsbCBsb29wcy4KCSogYXBwcy9leGFtcGxlcy9lbGYvdGVzdC8qL01ha2VmaWxlOiBPU1ggZG9lc24ndCBzdXBwb3J0IGluc3RhbGwgLUQsIHVzZQoJICBta2RpciAtcCB0aGVuIGluc3RhbGwgd2l0aG91dCB0aGUgLUQuICBGcm9tIE1pa2UgU21pdGguCgkqIGFwcHMvZXhhbXBsZXMvcmVsYXlzL01ha2VmaWxlOiBSZWR1Y2VkIHN0YWNrIHJlcXVpcmVtZW50IChEYXJjeSBHb25nKS4KCSogYXBwcy9uc2hsaWIgYW5kIGFwcHMvbmV0dXRpbHMvZGhjcGM6ICBFeHRlbmQgdGhlIE5TSCBpZmNvbmZpZyBjb21tYW5kIHBsdXMKCSAgdmFyaW91cyBESENQQyBpbXByb3ZlbWVudHMoRGFyY3kgR29uZykuCgkqIGFwcHMvbnNobGliL25zaF9hcHBzLmM6IEZpeCBjb21waWxhdGlvbiBlcnJvcnMgd2hlbiBDT05GSUdfTlNIX0RJU0FCTEVCRz15LgoJICBGcm9tIEZyZWRkaWUgQ2hvcGluLgoJKiBSZW5hbWUgQ09ORklHX1BDT0RFIGFuZCBDT05GSUdfRklDTCBhcyBDT05GSUdfSU5URVJQUkVURVJTX1BDT0RFIGFuZAoJICBDT05GSUdfSU5URVJQUkVURVJTX0ZJQ0wgZm9yIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgY29uZmlndXJhdGlvbiBuYW1pbmcuCgkqIGFwcHMvZXhhbXBsZXMva2V5cGFkdGVzdDogIEEga2V5cGFkIHRlc3QgZXhhbXBsZSBjb250cmlidXRlZCBieSBEZW5pcwoJICBDYXJpa2xpLgoJKiBhcHBzL2V4YW1wbGVzL2VsZiBhbmQgbnhmbGF0OiAgSWYgQ09ORklHX0JJTkZNVF9FWEVQQVRIIGlzIGRlZmluZWQsIHRoZXNlCgkgIHRlc3RzIHdpbGwgbm93IHVzZSBhIHJlbGF0aXZlIHBhdGggdG8gdGhlIHByb2dyYW0gYW5kIGV4cGVjdCB0aGUgYmluZm10LwoJICBsb2dpYyB0byBmaW5kIHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBwcm9ncmFtIHVzaW5nIHRoZSBQQVRIIHZhcmlhYmxlLgoKNi4yNSAyMDEzLTAyLTAxIEdyZWdvcnkgTnV0dCA8Z251dHRAbnV0dHgub3JnPgoKCSogTWFrZWZpbGVzOiBSZW1vdmVkIGRlcGVuZGVuY3kgb2YgZGlzdGNsZWFuIG9uIGNsZWFuIGluIG1vc3QgdG9wLWxldmVsCgkgIGZpbGVzLiAgSXQgbWFrZXMgc2Vuc2UgZm9yICdsZWFmJyBNYWtlZmlsZXMgdG8gaGF2ZSB0aGlzIGRlcGVuZGVuY3ksCgkgIGJ1dCBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIGZvciB1cHBlci1sZXZlbCBNYWtlZmlsZXMuCgkqIGFwcHMvbmFtZWRhcHAvOiBSZW5hbWVkIHRvIGJ1aWx0aW5zIGluIHByZXBhcmF0aW9uIGZvciBhbm90aGVyIGNoYW5nZS4KCSogLmNvbnRleHQ6ICBSZW1vdmVkIHRoZSAuY29udGV4dCBrbHVkZ2UuICBUaGlzIGNhdXNlZCBsb3RzIG9mIHByb2JsZW1zCgkgIHdoZW4gY2hhbmdpbmcgY29uZmlndXJhdGlvbnMgYmVjYXVzZSB0aGVyZSBpcyBubyBlYXN5IHdheSB0byBnZXQgdGhlCgkgIHN5c3RlbSB0byByZWJ1aWxkIHRoZSBjb250ZXh0LiAgTm93LCB0aGUgY29udGV4dCB3aWxsIGJlIHJlYnVpbHQKCSAgd2hlbmV2ZXIgdGhlcmUgaXMgYSBjaGFuZ2UgaW4gZWl0aGVyIC5jb25maWcgb3IgdGhlIE1ha2VmaWxlLgoJKiBhcHBzL2J1aWx0aW4vcmVnaXN0cnk6ICBVcGRhdGVkIG5ldyBidWlsdC1pbiByZWdpc3RyYXRpb24gbG9naWMgdG8gaGFuZGxlCgkgIGNhc2VzIHdoZXJlICgxKSBvbGQgYXBwcy8uY29uZmlnIGlzIHVzZWQsIGFuZCAoMikgYXBwbGljYXRpb25zIGFyZWQKCSAgcmVtb3ZlZCwgbm90IGp1c3QgYWRkZWQuCgkqIGFwcHMvZXhhbXBsZXMvbmV0dGVzdC9NYWtlZmlsZTogIEZpeCBhbiBlcnJvciB0aGF0IGNyZXB0IGluIGR1cmluZwoJICBzb21lIG9mIHRoZSByZWNlbnQsIG1hc3NpdmUgYnVpbGQgc3lzdGVtIGNoYW5nZXMuCgkqIGFwcHMvYnVpbHRpbi9NYWtlZmlsZTogIE5lZWQgdG8gaGF2ZSBhdXRvLWdlbmVyYXRlZCBoZWFkZXIgZmlsZXMKCSAgaW4gcGxhY2UgZWFybHkgaW4gdGhlIGRlcGVuZGVuY3kgZ2VuZXJhdGlvbiBwaGFzZSB0byBhdm9pZCB3YXJuaW5ncy4KCSAgSXQgaXMgbm90IGltcG9ydGFudCBpZiB0aGV5IGFyZSBvbmx5IHN0dWJiZWQgb3V0IGhlYWRlciBmaWxlcyBhdAoJICB0aGlzIGJ1aWxkIHBoYXNlLgoJKiBhcHBzL2V4YW1wbGVzL2hpZGJrZDogTm93IHN1cHBvcnRzIGRlY29kaW5nIG9mIGVuY29kZWQgc3BlY2lhbCBrZXlzCgkgIGlmIENPTkZJR19FWEFNUExFU19ISURLQkRfRU5DT0RFRCBpcyBkZWZpbmVkLgoJKiBhcHBzL2V4YW1wbGVzL2hpZGJrZDogIEFkZCBzdXBwb3J0IGZvciBkZWNvZGluZyBrZXkgcmVsZWFzZSBldmVudHMKCSAgYXMgd2VsbC4gIEhvd2V2ZXIsIHRoZSBVU0IgSElEIGtleWJvYXJkIGRyaWVyIGhhcyBub3QgeWV0IGJlZW4KCSAgdXBkYXRlZCB0byBkZXRlY3Qga2V5IHJlbGVhc2UgZXZlbnRzLiAgVGhhdCBpcyBraW5kIG9mIHRyaWNreSBpbgoJICB0aGUgVVNCIEhJRCBrZXlib2FyZCByZXBvcnQgZGF0YS4KCSogYXBwcy9leGFtcGxlcy93bGFuOiBSZW1vdmUgbm9uLWZ1bmN0aW9uYWwgZXhhbXBsZS4KCSogYXBwcy9leGFtcGxlcy9vc3Rlc3QvdmZvcmsuYzogIEFkZGVkIGEgdGVzdCBvZiB2Zm9yaygpLgoJKiBhcHBzL2V4YW1wZXMvcG9zaXhfc3Bhd246IEFkZGVkIGEgdGVzdCBvZiBwb3NpeF9zcGF3bigpLgoJKiBhcHBzL2V4YW1wbGVzL29zdGVzdDogIEV4dGVuZCBzaWduYWwgaGFuZGxlciB0ZXN0IHRvIGNhdGNoCgkgIGRlYXRoLW9mLWNoaWxkIHNpZ25hbHMgKFNJR0NITEQpLgoJKiBhcHBzL2V4YW1wbGVzL29zdGVzdC93YWl0cGlkLmM6ICBBZGQgYSB0ZXN0IGZvciB3YWl0cGlkKCksIHdhaXRpZCgpLAoJICBhbmQgd2FpdCgpLgoJKiBidWlsdGluL2JpbmZzLmM6ICBBZGQgaG9va3MgZm9yIGR1cCgpIG1ldGhvZCAobm90IGltcGxlbWVudGVkKS4KCSogYnVpbHRpbi9leGVjX2J1aWx0aW4uYywgbnNobGliL25zaF9wYXJzZS5jLCBhbmQgbnNobGliL25zaF9idWlsdGluLmM6CgkgIE5TSCBub3cgc3VwcG9ydHMgcmUtZGlyZWN0aW9uIG9mIEkvTyB0byBmaWxlcyAoYnV0IHN0aWxsIG5vdCBmcm9tKS4KCSogYnVpbHRpbi9iaW5mcy5jOiAgR3JlYXRseSBzaW1wbGlmaWVkIChpdCBpcyBnb2luZyB0byBuZWVkIHRvIGJlCgkgIHZlcnkgbGlnaHR3ZWlnaHQpLiAgTm93IHN1cHBvcnRzIG9wZW4sIGNsb3NlLCBhbmQgYSBuZXcgaW9jdGwgdG8gcmVjb3ZlcgoJICB0aGUgYnVpbHRpbiBmaWxlbmFtZS4gIFRoZSBsYXR0ZXIgd2lsbCBiZSBuZWVkZWQgdG8gc3VwcG9ydCBhIGJpbmZzCgkgIGJpbmZtdC4KCSogYnVpbHRpbi9iaW5mcy5jOiAgTW92ZSBhcHBzL2J1aWx0aW4vYmluZnMuYyB0byBmcy9iaW5mcy9mc19iaW5mcy5jCgkgIENPTkZJR19BUFBTX0JJTkRJUiByZW5hbWUgQ09ORklHX0ZTX0JJTkZTCgkqIGFwcHMvaW5jbHVkZS9idWlsdGluLmg6ICBTb21lIG9mIHRoZSBjb250ZW50IG9mCgkgIGFwcHMvaW5jbHVkZS9hcHBzLmggbW92ZWQgdG8gaW5jbHVkZS9udXR0eC9iaW5mbXQvYnVpbHRpbi5oLgoJICBhcHBzL2luY2x1ZGUvYXBwcy5oIHJlbmFtZWQgYnVpbHRpbi5oCgkqIGFwcHMvYnVpbHRpbi9leGVjX2J1aWx0aW5zLmM6ICBNb3ZlIGJ1aWx0aW4KCSAgdXRpbGl0eSBmdW5jdGlvbnMgZnJvbSBhcHBzL2J1aWx0aW4vZXhlY19idWlsdGlucy5jIHRvCgkgIGJpbmZtdC9saWJidWlsdGluL2xpYmJ1aWx0aW5fdXRpbHMuYwoJKiBhcHBzL25zaGxpYi9uc2hfbW91bnRjbWRzLmM6ICBUaGUgYmxvY2sgZHJpdmVyL3NvdXJjZQoJICBhcmd1bWVudCBpcyBub3cgb3B0aW9uYWwuICBNYW55IGZpbGVzIHN5c3RlbXMgZG8gbm90IG5lZWQKCSAgYSBzb3VyY2UgYW5kIGl0IGlzIHJlYWxseSBzdHVwaWQgdG8gaGF2ZSB0byBlbnRlciBhIGJvZ3VzCgkgIHNvdXJjZSBwYXJhbWV0ZXIuCgkqIGFwcHMvbnNobGliL25zaF9maWxlYXBwLmM6ICBBZGQgdGhlIGFiaWxpdHkgdG8gZXhlY3V0ZSBhIGZpbGUKCSAgZnJvbSBhIGZpbGUgc3lzdGVtIHVzaW5nIHBvc2l4X3NwYXduKCkuCgkqIGFwcHMvYnVpbHRpbi86IEV4dGVuc2lvbnMgZnJvbSBNaWtlIFNtaXRoLgoJKiBhcHBzL2V4YW1wbGVzL2Z0cGQvTWFrZWZpbGU6IE5hbWUgZnRwZF9zdGFydCBpcyBub3QgdGhlIG5hbWUgb2YKCSAgdGhlIGVudHJ5cG9pbnQuICBTaG91bGQgYmUgZnRwZF9tYWluIChmcm9tIFlhbiBULikKCSogYXBwcy9uZXR1dGlscy90ZWxuZXRkL3RlbG5ldGRfZHJpdmVyOiBXYXMgc3R1Y2sgaW4gYSBsb29wIGlmCgkgIHJlY3ZbZnJvbV0oKSBldmVyIHJldHVybmVkIGEgdmFsdWUgPD0gMC4KCSogYXBwcy9leGFtcGxlcy9uZXR0ZXN0IGFuZCBwb2xsOiAgQ29tcGxldGUgS2NvbmZpZyBmaWxlcy4KCSogYXBwcy9leGFtcGxlcy9vc3Rlc3Qvd2FpdHBpZC5jOiAgTmVlZCB0byB1c2UgV0VYSVRTVEFUVVMoKQoJICB0byBkZWNvZGUgdGhlIGNvcnJlY3QgZXhpdCBzdGF0dXMuCgkqIGFwcHMvc3lzdGVtL3VzYm1vbml0b3I6ICBBIGRhZW1vbiB0aGF0IGNhbiBiZSB1c2VkIHRvIG1vbml0b3IgVVNCCgkgIHRyYWNlIG91dHBvdXQuCgkqIGFwcHMvbnNobGliL25zaF91c2JkZXYuYywgbnNoX2NvbnNvbGVtYWluLmMsIG5zaF9zZXNzaW9uLmMsIG5zaF9zY3JpcHQuYzoKCSAgQWRkIHN1cHBvcnQgZm9yIGEgbG9naW4gc2NyaXB0LiAgVGhlIGluaXQuZC9yY1Mgc2NyaXB0IHdpbGwgYmUgZXhlY3V0ZWQKCSAgb25jZSB3aGVuIE5TSCBzdGFydHM7IHRoZSAubnNocmMgc2NyaXB0IHdpbGwgYmUgZXhlY3V0ZWQgZm9yIGVhY2ggc2Vzc2lvbjoKCSAgT25jZSBmb3Igc2VyaWFsLCBvbmNlIGZvciBlYWNoIFVTQiBjb25uZWN0aW9uLCBvbmNlIGZvciBlYWNoIFRlbG5ldAoJICBzZXNzaW9uLgoJKiBhcHBzL3N5c3RlbS9yZWFkbGluZTogQ29ycmVjdCByZWFkbGluZSgpIHJldHVybiB2YWx1ZS4gIFdhcyBub3QKCSAgYW55IHJldHVybmluZyBzcGVjaWFsIHZhbHVlcyB3aGVuIGVuZC1vZi1maWxlIG9yIHJlYWQgZXJyb3JzCgkgIG9jY3VyIChpdCB3b3VsZCByZXR1cm4gYW4gZW1wdHkgc3RyaW5nIHdoaWNoIGlzIG5vdCB2ZXJ5IHVzZWZ1bCkuCgo2LjI2IDIwMTMtMDMtMTUgR3JlZ29yeSBOdXR0IDxnbnV0dEBudXR0eC5vcmc+CgoJKiBhcHBzL2J1aWx0aW4vZXhlY19idWlsdGluLmM6ICBOb3cgdXNlcyB0YXNrX3NwYXduKCkgdG8gc3RhcnQKCSAgYnVpbHRpbiBhcHBsaWNhdGlvbnMuCgkqIFR5cGUgb2YgYXJndiBoYXMgY2hhbmdlZCBmcm9tIGNvbnN0IGNoYXIgKiogdG8gY2hhciAqIGNvbnN0ICoKCSogYXBwcy9uc2hsaWIvbnNoX3BhcnNlLmM6ICBGaXggbWVtb3J5IGxlYWQ6IE5lZWQgdG8gZGV0YWNoIGFmdGVyCgkgIGNyZWF0aW5nIGEgcHRocmVhZC4KCSogYXBwcy9leGFtcGxlcyBhbmQgbnNobGliOiAgQ2hhbmdlIG5hbWUgb2YgX1RDQiB0byBzdHJ1Y3QgdGNiX3MgdG8KCSAgbWF0Y2ggTnV0dFggbmFtZSBjaGFuZ2UuCgkqIGFwcHMvZXhhbXBsZXMvb3N0ZXN0L3Jlc3RhcnQuYzogIEFkZCBhIHRlc3QgY2FzZSB0byB2ZXJpZnkKCSAgdGFza19yZXN0YXJ0KCkuCgkqIGFwcHMvc3lzdGVtL3JlYWRsaW5lLmM6ICByZWFkbGluZSgpIG5vdyByZXR1cm5zIEVPRiBvbiBhbnkgZmFpbHVyZQoJICAoaW5zdGVhZCBvZiBhIG5lZ2F0ZWQgZXJybm8gdmFsdWUpLiAgVGhpcyBpcyBiZWNhdXNlIHRoZSB1bmRlcmx5aW5nCgkgIHJlYWQgaXMgYmFzZWQgb24gbG9naWMgc2ltaWxhciB0byBnZXRjLiAgVGhlIHZhbHVlIHplcm8gd2FzIGJlaW5nCgkgIGNvbmZ1c2VkIHdpdGggYSBOVUwuICBTbyBpZiBhIE5VTCB3YXMgcmVjZWl2ZWQsIHRoZSBOU0ggc2Vzc2lvbgoJICB3b3VsZCB0ZXJtaW5hdGUgYmVjYXVzZSBpdCB0aG91Z2h0IGl0IHdhcyB0aGUgZW5kIG9mIGZpbGUuCgo2LjI3IDIwMTMtMDQtMjggR3JlZ29yeSBOdXR0IDxnbnV0dEBudXR0eC5vcmc+CgoJKiBhcHBzL3N5c3RlbS9yYW10ZXN0OiAgQWRkIGEgc2ltcGxlIG1lbW9yeSB0ZXN0ICgyMDEzLTAzLTI2KS4KCSogYXBwcy9leGFtcGxlcy9vc3Rlc3Q6ICBJbiB0aGUgbm9uLWNhbmNlbGFibGUgdGhyZWFkIHRlc3QsIHdlIG5lZWQKCSAgdG8gZ2l2ZSB0aGUgdGhyZWFkIGFuIG9wcG9ydHVuaXR5IHRvIHJ1biBhbmQgdG8gc2V0IHRoZSBub24tCgkgIGNhbmNlbGFibGUgc3RhdGUuCgkqIGFwcHMvbnNobGliL25zaF9kZGNtZC5jOiBDb3JyZWN0IHRoZSB0ZXN0IG9mIHRoZSBza2lwIGlucHV0CgkgIHBhcmFtZXRlci4gIFdhcyBsaW1pdGluZyB0aGUgcmFuZ2UgdG8gPD0gY291bnQuICBGcm9tIEtlbgoJICBQZXRpdCAoMjAxNC00LTI0KS4KCjYuMjggMjAxMy0wNi0xNCBHcmVnb3J5IE51dHQgPGdudXR0QG51dHR4Lm9yZz4KCgkqIGFwcHMvZXhhbXBsZXMvbXRkcGFydDogIFByb3ZpZGVzIGEgc2ltcGxlIHRlc3Qgb2YgTVREIHBhcnRpdGlvbnMuCgkqIGFwcHMvbnNobGliL25zaF9tbnRjbWRzLmM6ICBBZGQgYSAtaCBvcHRpb24gdG8gdGhlIGRmIGNvbW1hbmQgdG8gc2hvdwoJICB0aGUgdm9sdW1lIGluZm9ybWF0aW9uIGluIGh1bWFuIHJlYWRhYmxlIGZvcm0gKEtlbiBQZXRpdCwgMjAxMy00LTMwKS4KCSogYXBwcy9uc2hsaWIvbnNoX2ZzY21kcy5jOiBBZGQgc3VwcG9ydCBmb3IgdGhlIG1rc21hcnRmcyBjb21tYW5kLgoJICAoS2VuIFBldGl0LCAyMDEzLTQtMzApLgoJKiBhcHBzL3N5c3RlbS9mbGFzaF9lcmFzZWFsbDogIEFkZCBhbiBpbnRlcmZhY2UgdG8gZXJhc2UgRkxBU0ggdXNpbmcgYQoJICBmbGFzaF9lcmFzZWFsbCBOU0ggY29tbWFuZCAgKEtlbiBQZXR0aXQsIDIwMTMtNS0xKS4KCSogYXBwcy9leGFtcGxlcy9mbGFzaF90ZXN0IGFuZCBhcHBzL2V4YW1wbGVzL3NtYXJ0X3Rlc3Q6ICBBZGQgdGVzdHMgb2YKCSAgdGhlIFNNQVJUIGJsb2NrIGRyaXZlciBhbmQgZmlsZSBzeXN0ZW0gIChLZW4gUGV0dGl0LCAyMDEzLTUtMSkuCgkqIGFwcHMvZXhhbXBsZXMvbXRkcGFydDogIEV4dGVuZGVkIHRoZSB0ZXN0LiAgVGhlIG9yaWdpbmFsIHRlc3QKCSAgY292ZXJhZ2Ugd2FzIHN1cGVyZmljaWFsICgyMDEzLTUtMykuCgkqIGFwcHMvZXhhbXBsZXMvc21hcnQ6ICBUaGlzIGlzIGFuIGFkYXB0YXRpb24gb2YgdGhlIE5YRkZTIHN0cmVzcwoJICB0ZXN0IGZvciB0aGUgU01BUlQgZmlsZSBzeXN0ZW0gKEtlbiBQZXR0aXQsIDIwMTMtNS0zKS4KCSogYXBwcy9leGFtcGxleC9ueHRleHQ6ICBSZW1vdmUgdGhlIENPTkZJR19FWEFNUExFU19OWFRFWFRfTk9HRVRSVU4KCSAgb3B0aW9uLiAgVGhlIHRlc3QgbG9naWMgd2FzIGJhZCBmb3IgdGhlIGNhc2Ugd2hlcmUgdGhpcyBvcHRpb25zCgkgIGlzIG5vdCBzZWxlY3RlZC4gIEFsc28sIGNvbXBsZXRlIHRoZSBlbXB0eSBLY29uZmlnIGZpbGUgKDIwMTMtNS03KS4KCSogYXBwcy9OeFdpZGdldHMvS2NvbmZpZzogIFVwZGF0ZWQgdG8gbWF0Y2ggTnhXaWRnZXRzL0tjb25maWcgYnkKCSAgS2VuIFBldHRpdCAoMjAxMy01LTExKS4KCSogYXBwcy9leGFtcGxlcy9oZWxsb3h4OiAgQysrIG5hbWUgbWFuZ2xpbmcgd2FzIG9jY3VycmluZyB3aGVuIHRoaXMKCSAgZXhhbXBsZSBpcyBidWlsdCBhcyBhbiBOU0ggYnVpbHQtaW4gYXBwbGljYXRpb24uICAoMjAxMy01LTE2KS4KCSogYXBwcy9uZXR1dGlscy9kaXNjb3ZlcjogIEFkZGVkIGEgcnVudGltZSBjb25maWd1cmF0aW9uIGZvciB0aGUKCSAgVURQIGRpc2NvdmVyIHV0aWxpdHkuICBGcm9tIE1heCBIb2x0emJlcmcgKDIwMTMtNS0yMSkuCgkqIGFwcHMvZXhhbXBsZXMvdGNwZWNobzogIEFkZGVkIGEgc2ltcGxlIHNpbmdsZSB0aHJlYWRlZCwgcG9sbCBiYXNlZAogCSAgVENQIGVjaG8gc2VydmVyIGJhc2VkIG9uIFcuIFJpY2hhcmQgU3RldmVucyBVTklYIE5ldHdvcmsgUHJvZ3JhbW1pbmcKCSAgQm9vay4gIENvbnRyaWJ1dGVkIGJ5IE1heCBIb2x0emJlcmcgKDIwMTMtNS0yMikuCgkqIGFwcHMvZXhhbXBsZXMvc2xjZDogIEFkZCBhbiBleGFtcGxlIGZvciB0ZXN0aW5nIGFscGhhbnVtZXJpYywKCSAgc2VnbWVudCBMQ0RzICgyMDEzLTUtMjQpLgoJKiBhcHBzL2V4YW1wbGVzL3NsY2Q6ICBFeHRlbmQgU0xDRCB0ZXN0IHRvIGhhbmRsZSBtdWx0aS1saW5lIGRpc3BsYXlzCgkgICgyMDEzLTUtMjYpLgoJKiBhcHBzL2V4YW1wbGVzL3NsY2Q6ICBUaGlzIHRlc3Qgbm93IHNldHMgdGhlIFNMQ0QgYnJpZ2h0bmVzcyBsZXZlbCB0bwoJICB0aGUgbWlkLXBvaW50IGFzIHBhcnQgb2YgaXRzIGluaXRpYWxpemF0aW9uICgyMDEzLTUtMjcpLgoJKiAuZ2l0aWdub3JlOiAgQ2xlYW4tdXAgb2YgbW9zdCBhbGwgLmdpdGlnbm9yZSBmaWxlczogIE1ha2Ugc2NvcGUgb2YKCSAgaWdub3JlIHRvIGJlIG9ubHkgdGhlIGN1cnJlbnQgZGlyZWN0b3J5OyBJZ25vcmUgLmRTWU0gZmlsZXMgaW4KCSAgZGlyZWN0b3JpZXMgd2hlcmUgLmV4ZSdzIG1heSBiZSBidWlsZC4gIEFsc28sIGluIE1ha2VmaWxlcywKCSAgY2xlYW4gLmRTWU0gZmlsZXMgaW4gZGlyZWN0b3JpZXMgd2hlcmUgLmV4ZSBtYXkgYmUgYnVpbHQgKDIwMTMtNS0zMCkuCgkqIGFwcHMvZXhhbXBsZXMvbnJmMzVsMDFfdGVybTogQWRkIGFuIGV4YW1wbGUgYXBwbGljYXRpb24gdG8gZGVtbyB0aGUKCSAgblJGMjRMMDEgZHJpdmVyLiAgRnJvbSBMYXVyZW50IExhdGlsICgyMDEzLTYtMSkuCgkqIGFwcHMvbnNobGliL0tjb25maWc6ICBBZGQgc29tZSBtaXNzaW5nIE5TSCBjb25maWd1cmF0aW9uIHZhbHVlcy4KCSAgRnJvbSBMb3JlbnogTWVpZXIgKDIwMTMtNi0yKS4KCSogU3RhbmRhcmRpemUgb24gQ09ORklHX05TSF9CVUlMVElOX0FQUFMuICBSZW1vdmUgYWxsIG90aGVyIHZhcmlhbnRzCgkgIG9mIHRoZSBidWlsZC1hcy1hbi1OU0gtYXBwbGljYXRpb24gY29uZmlndXJhdGlvbiBzZXR0aW5ncwoJICAoMjAxMy02LTEyKS4KCjYuMjkgMjAxMy0wNy0zMSBHcmVnb3J5IE51dHQgPGdudXR0QG51dHR4Lm9yZz4KCgkqIGFwcHMvZXhhbXBsZXMvbnNoLCBjeHh0ZXN0LCBhbmQgaGVsbG94eDogIEMrKyBpbml0aWFsaXplcnMgc2hvdWxkIGJlCgkgIHNldCBvbmNlIGFuZCwgcHJlZmVyYWJseSwgaW4gdGhlIGNvbnRleHQgb2YgdGhlIHRhc2sgdGhhdCB1c2VzIGFueSBDKysKCSAgc3RhdGljYWxseSBpbml0aWFsaXplZCBjbGFzc2VzLiAgVGhlc2Ugb25seSBiZWNvbWVzIGFuIGlzc3VlIGlmIGN4eHRlc3QKCSAgb3IgaGVsbG94eCBhcmUgYnVpbHQgYXMgTlNIIGJ1aWx0aW4gYXBwbGljYXRpb25zLiAgVGhlbiB5b3Ugd2FudCB0aGUKCSAgaW5pdGlhbGl6YXRpb24gZG9uZSBpbiBjeHh0ZXh0IG9yIGhlbGxveHggYW5kIG5vdCBpbiBOU0ggKGFuZCBjZXJ0YWlubHkKCSAgbm90IHR3aWNlKS4gIEFkZGVkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byBjb250cm9sIHdobyBkb2VzIHRoZSBDKysKCSAgaW5pdGlhbGl6YXRpb24uICBOU0ggbm93IGRvZXMgbm90IGRvIEMrKyBpbml0aWFsaXphdGlvbiBiZSBkZWZhdWx0IGFuZAoJICBtdXN0IGJlIGNvbmZpZ3VyZWQgdG8gZG8gb3RoZXJ3aXNlLiAgQ29udmVyZWx5LCBjeHh0ZXN0IGFuZCBoZWxsb3h4CgkgIHdpbGwgZG8gQysrIGluaXRpYWxpemF0aW9uIHVubGVzcyBjb25maWd1cmVkIGRvIG90aGVyd2lzZSAoMjAxMy02LTIxKS4KCSogYXBwcy9leGFtcGxlcy9jeHh0ZXh0OiAgQWRkIG9zdHJlYW0gdGVzdCBhcyBwcm92aWRlZCBieSBNaWNoYWVsCgkgICgyMDEzLTYtMjEpLgoJKiBhcHBzL2V4YW1wbGVzL254aGVsbG86ICBNaW5vciBmaXggZm9yIGNvbXBpbGF0aW9uIGVycm9yIHdoZW4gdGhlCgkgIGRpc3BsYXkgcmVzb2x1dGlvbiBpcyBsb3cgKDwgOGJwcCkgZHVlIHRvIGEgdHlwbyB0aGF0IGhhcyBiZWVuIHRoZXJlCgkgIGZvciBhIGxvbmcgdGltZSAoMjAxMy02LTIzKS4KCSogYXBwcy9leGFtcGxleC9ueGhlbGxvOiAgQ29ycmVjdCBkZWZhdWx0IGNvbG9ycyB3aGVuIGluIFkxIGNvZGUgbW9kZS4KCSAgKDIwMTMtNi0yNCkuCgkqIGFwcHMvc3lzdGVtL01ha2UuZGVmcyBhbmQgS2NvbmZpZzogIFRoZSBSQU0gdGVzdCB3YXMgbm90IGNvcnJlY3RseSBidWlsdAoJICBpbnRvIHRoZSBjb25maWd1cmF0aW9uIGFuZCBidWlsZCBzeXN0ZW0gKDIwMTMtNi0yNikuCgkqIGFwcHMvZXhhbXBsZXMvY29tcG9zaXRlL2NvbXBvc2l0ZV9tYWluLmM6ICBTb3VyY2VGb3JnZSBCdXQgVGlja2V0ICMxOS4KCSAgQ2hhbmdlIHRvIHByZXZlbnQgc29tZSBmYWxzZSBhbGFybSBkZWJ1ZyBhc3NlcnRpb25zIChGcm9tIENoaWEgQ2hlbmcKCSAgVGFvLCAyMDEzLTctOSkuCgkqIGFwcHMvc3lzdGVtL3ptb2RlbTogIEFkZCBjb25maWd1cmF0aW9uIHN1cHBvcnQgYW5kIGEgYnVpbGQgZnJhbWV3b3JrCgkgIGZvciB0aGUgWm1vZGVtIHN6IGFuZCByeiBjb21tYW5kICh3aGljaCBleGlzdCBidXQgaGF2ZSBub3QgeWV0IGJlZW4KCSAgY2hlY2tlZCBpbikgKDIwMTMtNy0xMikuCgkqIGFwcHMvc3lzdGVtL3ptb2RlbTogIFRoZSAnc3onIGNvbW1hbmQgaXMgbm93IGNvbXBsZXRlIGFuZCBzZWVtcwoJICBmdW5jdGlvbmFsIChnaXZlbiBvbiBsaWdodCB0ZXN0aW5nKS4gIFRoZSByeiBjb21tYW5kIGxvZ2ljIGV4aXN0cyBidXQKCSAgaXMgc3RpbGwgdW50ZXN0ZWQgYW5kIG5vdCB5ZXQgY2hlY2tlZCBpbiAgKDIwMTMtNy0xMykuCgkqIGFwcHMvc3lzdGVtL3ptb2RlbTogIFRoZSAncnonIGNvbW1hbmQgaXMgbm93IGNvbXBsZXRlIGFuZCBmdW5jdGlvbmFsCgkgIHVuZGVyIGNlcnRhaW4gY29uZGl0YWlvbnMuICBUaGVyZSBhcmUsIGhvd2V2ZXIsIHNvbWUgZGF0YSBvdmVycnVuCgkgIGlzc3VlcyB0aGF0IEkgYW0gc3RpbGwgdW5jZXJ0YWluIGhvdyBzaG91bGQgYmUgaGFuZGxlZCAoMjAxMi03LTE1KS4KCSogYXBwcy9zeXN0ZW0vem1vZGVtL01ha2VmaWxlLmhvc3QgYW5kIGhvc3QvOiBUaGUgWm1vZGVtIHV0aWxpdGllcwoJICBjYW4gbm93IGJlIGJ1aWx0IHRvIGV4ZWN1dGUgb24gYSBMaW51eCBob3N0LgoJKiBhcHBzL25zaGxpYi9uc2hfZnNjbWRzLmM6ICBBZGQgYSAnY21wJyBjb21tYW5kIHRoYXQgY2FuIGJlIHVzZWQgdG8KCSAgY29tcGFyZSB0d28gZmlsZXMgZm9yIGVxdWl2YWxlbmNlLiAgUmV0dXJucyBhbiBpbmRpY2F0aW9uIGlmIHRoZSBmaWxlcwoJICBkaWZmZXIuICBDb250cmlidXRlZCBieSBBbmRyZXcgVHJpZGdlbGwgKHZpYSBMb3JlbnogTWVpZXIpICgyMDEzLTctMTgpLgoKNi4zMCAyMDEzLTA5LTE0IEdyZWdvcnkgTnV0dCA8Z251dHRAbnV0dHgub3JnPgoKCSogYXBwcy9leGFtcGxlcy9jb21wb3NpdGUvOiAgU291cmNlRm9yZ2UgYnVnICMxOTogRml4IGEgdHlwbyB0aGF0IGNhbgoJICBjYXVzZSBhIGNvbmZpZ3VyYXRpb24gZXJyb3IuICBGcm9tIENDVFNBTyAoMjAxMy05LTQpLgoJKiBhcHBzL2V4YW1wbGVzL2NjMzAwMC4gIEluaXRpYWwgc3VwcG9ydCBmb3IgdGhlIFRJIENDMzAwMCBuZXR3b3JrIG1vZHVsZQoJICBvbiB0aGUgRnJlZXNjYWxlIEZyZWVkb20tS0wyNVogYm9hcmQgZnJvbSBBbGFuIENhcnZhbGhvIGRlIEFzc2lzLgoJICBJbmNsdWRlcyB0aGUgdGVzdCB0byB2ZXJpZnkgdGhlIENDMzAwMCAoMjAxMy05LTMpLgoJKiBhcHBzL2V4YW1wbGVzL3VzYm1zYzogIGFwcHMvZXhhbXBsZXMvdXNic3RvcmFnZSByZW5hbWVkIHVzYm1zYy4KCSAgQ2hhbmdlIHN1Ym1pdHRlZCBieSBDQ1RTQU8gKDIwMTMtNi01KS4KCSogYXBwcy9leGFtcGxlcy9wd206ICBDbGVhbi11cCBzb21lIGNvbmZpZ3VyYXRpb24gY29uZnVzaW9uICgyMDEzLTktNSkuCgkqIGFwcHMvbmV0dXRpbHMvZGhjcGQvZGhjcGQuYzogIEZpeCBjYWxjdWxhdGlvbiBvZiB0aGUgbmV4dCBsZWFzZQoJICBhZGRyZXNzLiAgU291cmNlRm9yZ2UgYnVnICMyMSBmcm9tIFBhb2xvIE1lc3NpbmEgKDIwMTMtOS02KS4KCSogYXBwcy9leGFtcGxlcy91c2Jtc2M6ICBEb24ndCB0cnkgdG8gY29udHJvbCBVU0IgdHJhY2UgaWYgd2UgYXJlCgkgIGFuIE5TSCBidWlsdC1pbiB0YXNrLiAgSW4gdGhhdCBjYXNlIG91ciBhdHRlbXB0cyBhcmUgaW5hZGVxdWF0ZQoJICBhbmQgb25seSBpbnRlcmZlcmUgd2l0aCB3aXRoIG90aGVyIGxvZ2ljIHRoYXQgaXMgYXR0ZW1wdGluZyB0bwoJICB0byBkbyB0aGUgc2FtZSB0aGluZyAoaW4gTlNIIG9yIGluIHRoZSBVU0IgbW9uaXRvcikgKDIwMTMtOS02KS4KCSogYXBwcy9leGFtcGxlcy91c2Jtc2M6ICBJTVBPUlRBTlQgYnVnIGZpeDogQ2hhbmdlIGhvdyB0aGUgbXNjb25uCgkgIHdvcmtzLiAgQmVjYXVzZSBvZiByZWNlbnQgY2hhbmdlcyB0aGUgbXNjb25uIGNvbW1hbmQgd2FzIGhhbmdpbmcuCgkgIFRoaXMgd2FzIGJlY2F1c2UgdGhlIFVTQiBNU0Mgc3RhcnQtdXAgbG9naWMgY3JlYXRlcyBhIHB0aHJlYWQ7CgkgIE5vdyB3YWl0cGlkKCkgd2lsbCB3YWl0IHVudGlsIGFsbCBtZW1iZXJzIG9mIHRoZSB0YXNrIGdyb3VwCgkgIGV4aXQuICBTbyBOU0ggd2FzIGhhbmdpbmcgaW4gd2FpdHBpZCB3aGVuIG1zY29ubiBzdGFydGVkIGV2ZW4KCSAgdGhvdWdoIG1zY29ubiByZXR1cm5lZC4gIFRoZSBVU0IgTVNDIGxvZ2ljIHJlYWxseSBzaG91bGQgbm90IHVzZQoJICBhIHB0aHJlYWQsIGJ1dCB3ZSBhcmUgc3R1Y2sgd2l0aCB0aGF0IGZvciBub3cuICBUaGUgd29yay1hcm91bmQKCSAgaXMgdGhhdCBtc2Nvbm4gbm93IGRhZW1vbml6ZXMgaXRzZWxmIHNvIHRoYXQgaXQgc28gdGhhdCB0aGUgcHRocmVhZAoJICBpcyBjcmVhdGVkIGluIGEgZGlmZmVyZW50IHRhc2sgZ3JvdXAgKDIwMTMtOS03KS4KCSogYXBwcy9zeXN0ZW0vdXNibW9uaXRvcjogIFRoZSBVU0IgbW9uaXRvciBoYXMgYmVlbiBleHRlbmRlZCBzbwoJICB0aGF0IGl0IGNhbiBiZSB1c2VkIHdpdGggVVNCIGRldmljZSBvciBob3N0IHRyYWNlIGRhdGEgKDIwMTMtOS05KS4KCSogYXBwcy9uc2hsaWIvbnNoX2ZzY21kcy5jOiAgRml4IE5TSCBsaXN0aW5nIG91dHB1dCBmb3IgdGhlIGNhc2UKCSAgb2YgYSBzaW5nbGUgZmlsZS4gIFByb3ZpZGVkIGJ5IExvcmVueiBNZWllciAoMjAxMy05LTEzKS4KCjYuMzEgMjAxMy0xMC0yOCBHcmVnb3J5IE51dHQgPGdudXR0QG51dHR4Lm9yZz4KCgkqIGFwcHMvbnNobGliL25zaF9uZXRjbWRzLmM6ICBSZW1vdmUgYSB3YXJuaW5nIHdoZW4gREhDUCBpcyBub3QKCSAgZW5hYmxlZCAoMjAxMy05LTE3KS4KCSogYXBwcy9uc2hsaWIvS2NvbmZpZzogIERlZmF1bHQgSVAgYWRkcmVzcyBzaG91bGQgYmUgMHgwYTAwMDAwMQoJICAoMTAuMC4wLjEpLCBub3QgMHhhMDAwMDAwMSAoMTYwLjAuMC4xKS4gIERpdHRvIGZvciB0aGUgZ2F0ZXdheQoJICAoMjAxMy05MDE3KS4KCSogYXBwcy9leGFtcGxlcy9vc3Rlc3QvS2NvbmZpZzogIEFkZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yCgkgIHRoZSBGUFUgdGVzdC4gIFRoZXJlIGFyZSBzdGlsbCBtYW55IE9TIHRlc3QgY29uZmlndXJhdGlvbgoJICBvcHRpb25zIHRoYXQgZG8gbm90IGFwcGVhciBpbiBLY29uZmlnICgyMDEzLTktMTgpLgoJKiBhcHBzL2V4YW1wbGVzL2NjMzAwMDogIENvbmRpdGlvbiB0aGUgQ0MzMDAwIGV4YW1wbGUgb24gaGF2aW5nCgkgIHNlbGVjdGVkIHRoZSBDQzMwMDAgZGV2aWNlLiAgT3RoZXJ3aXNlLCB5b3UgYXJlIHByb21wdGVkIGZvcgoJICB0aGlzIG9wdGlvbiBvbiBlYWNoICdtYWtlIG9sZGNvbmZpZycgKDIwMTMtOS0xOCkuCgkqIGFwcHMvc3lzdGVtL3VzYm1vbml0b3IvdXNibW9uaXRvci5jOiAgRml4IHNvbWUgYmFkIGNvbmRpdGlvbmFsCgkgIGNvbXBpbGF0aW9uIHByb2JhYmx5IGludHJvZHVjZWQgb24gMjAxMy05LTkgKDIwMTMtOS0yMykuCgkqIGFwcHMvc3lzdGVtL3N0YWNrbW9uaXRvcjogIEFkZCBhIGRhZW1vbiB0aGF0IGNhbiBiZSB1c2VkIHRvCgkgIG1vbml0b3Igc3RhY2sgdXNhZ2UgYnkgYWxsIHRocmVhZHMgKDIwMTMtOS0yNCkuCgkqIHN5c3RlbS91c2Jtc2M6ICBNb3ZlIGV4YW1wbGVzL3VzYm1zYyB0byBzeXN0ZW0vdXNibXNjICgyMDEzLTktMjUpLgoJKiBzeXN0ZW0vY2RjYWNtOiAgTW92ZSBleGFtcGxlcy9jZGNhY20gdG8gc3lzdGVtL2NkY2FjbSAoMjAxMy05LTI1KS4KCSogc3lzdGVtL2NvbXBvc2l0ZTogIE1vdmUgZXhhbXBsZXMvY29tcG9zaXRlIHRvIHN5c3RlbS9jb21wb3NpdGUKCSAgKDIwMTMtOS0yNSkuCgkqIGFwcHMvbnNobGliIGFuZCBhcHBzL3JlYWRsaW5lOiAgTnVtZXJvdXMgY2hhbmdlcyB0byBnZXQgTlNICgkgIHdvcmtpbmcgd2l0aCBubyBmaWxlIHN5c3RlbS4gIEJhc2ljYWxseSB0aGlzIHN1cHByZXNzZXMgSS9PCgkgIHJlZGlyZWN0aW9uIGFuZCByZXBsYWNlcyBmaWxlIEkvTyB3aXRoIGNhbGxzIHRvIGxvdy1sZXZlbAoJICBjb25zb2xlIHJlYWQvd3JpdGUgZnVuY3Rpb25zLiAgU3VnZ2VzdGVkIGJ5IEFsYW4gQ2FydmFsaG8gZGUgQXNzaXMKCSAgaW4gYSBzb21ld2hhdCBkaWZmZXJlbnQgZm9ybS4gKDIwMTMtOS0zMCkuCgkqIGFwcHMvbnNobGliL25zbV9yb3V0ZWNtZHMuYzogIEFkZCBhZGRyb3V0ZSBhbmQgZGVscm91dGUKCSAgY29tbWFuZHMgKDIwMTMtMTAtNSkuCgkqIGFwcHMvc3lzdGVtL2kyY3Rvb2wvS2NvbmZpZzogIEZpeCBkZWZhdWx0IEkyQyBmcmVxdWVuY3k6ICA0MDBLSHoKCSAgaW5zdGVhZCBvZiA0TUh6LiAgU3VnZ2VzdGVkIGJ5IE1heCBLcmllZ2xlZGVyICgyMDEzLTEwLTEwKS4KCSogYXBwcy9zeXN0ZW0vaW5mby9LY29uZmlnIGFuZCBNYWtlZmlsZTogIEluY3JlYXNlIHN0YWNrIHNpemUuCgkgIEtlbiBQZXRpdCByZXBvcnRzIHRoYXQgdGhpcyBzaW1wbGUgY29tbWFuZCBjYW4gZXhjZWVkIGl0cyA3NjgKCSAgc3RhY2sgc2l6ZSB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMuICBUaGUgc2l6ZSBpcyBtYXJnaW5hbCBhbmQKCSAgaGFzIGJlZW4gaW5jcmVhc2VkIHRvIDEwMjQgYnkgZGVmYXVsdCBidXQgaXMgYWxzbyBub3cgY29uZmlndXJhYmxlCgkgICgyMDEzLTEwLTE0KS4KCSogYXBwcy9NYWtlZmlsZTogIE5lZWQgdG8gaW5jbHVkZSBleHRlcm5hbC9NYWtlLmRlZnMgaWYgd2Ugd2FudAoJICBhbGxvdyBleHRlcm5hbCBhcHBsaWNhdGlvbnMgdG8gcGFydGljaXBhdGUgaW4gdGhlIE51dHRYCgkgIGNvbmZpZ3VyYXRpb24uICBTdWdnZXN0ZWQgYnkgZ2RpQGVtYmVkZGVycy5vcmcgKDIwMTMtMTAtMTQpLgoJKiBhcHBzL2V4YW1wbGVzL2NjMzMwMDogVXBkYXRlcyBhcyBwYXJ0IG9mIGxhcmdlciByZS1vcmdhbml6YWlvbgoJICBvZiBDQzMwMDAgbG9naWMgYnkgRGF2aWQgU2lkcmFuZSAoMjAxMy0xMC0xNikuCgkqIGFwcHMvZXhhbXBsZXMvcmFuZG9tOiAgQWRkIGEgc2ltcGxlIHRlc3QgdGhhdCBkdW1wcyB2YWx1ZXMgZnJvbQoJICAvZGV2L3JhbmRvbSAoMjAxMy0xMC0yMCkuCgkqIGFwcHMvZXhhbXBsZXMvY2MzMDAwOiAgRXh0ZW5zaW9ucyBhbmQgZW5oYW5jZW1lbnRzIGZyb20gRGF2aWQKCSAgU2lkcmFuZSAoMjAxMy0xMC0yMykuCgkqIGFwcHMvbmV0dXRpbHMvdGVsbmV0ZC90ZWxuZXRkX2RyaXZlci5jOiAgTWlzc2luZyBhcmd1bWVudCB0bwoJICBkZWJ1ZyBzdGF0ZW1lbnQgY2FuIGNhdXNlIGNyYXNoZXMgaW4gY2VydGFpbiBlcnJvciBjb25kaXRpb25zLgoJICBGcm9tIERhdmlkIFNpZHJhbmUgKDIwMTMtMTAtMjQpLgoJKiBhcHBzL2V4YW1wbGVzL2NjMzAwMDogIFVwZGF0ZXMgZnJvbSBEYXZpZCBTaWRyYW5lLiAgUGx1cwoJICBzb21lIGtydWZ0IHJlbW92YWwgKDIwMTMtMTAtMjQpLgoJKiBhcHBzL2V4YW1wbGVzL2Nhbi9jYW5fbWFpbi5jOiAgQ29ycmVjdCBhbiBlcnJvciBpbiBhIGRlYnVnCgkgIHN0YXRlbWVudC4gIEZyb20gTWFydGluIExlZGVyaGlsZ2VyICgyMDEzLTEwLTI0KS4KCSogYXBwcy9leGFtcGxlcy9hZGM6ICBBZGQgc3VwcG9ydCBzbyB0aGF0IGEgQURDIGRyaXZlbiBieQoJICBzb2Z0d2FyZSB0cmlnZ2VyaW5nIGNhbiBiZSB0ZXN0ZWQgKDIwMTMtMTAtMjUpLgoJKiBhcHBzL2V4YW1wbGVzL2NjMzAwMDogIFVwZGF0ZXMgZnJvbSBEYXZpZCBTaWRyYW5lICgyMDEzLTEwLTI1KS4KCSogYXBwcy9zeXN0ZW0vbnhwbGF5ZXI6ICBJbXBsZW1lbnRzIGEgY29tbWFuZCBsaW5lIG1lZGlhCgkgIHBsYXllci4gIEZyb20gS2VuIFBldHRpdCAoMjAxMy0xMC0yNykuCgkqIGFwcHMvc3lzdGVtL254cGxheWVyOiBBZGQgbG9naWMgdG8gdmVyaWZ5IHRoZSBhdWRpbyBzdWItZm9ybWF0LgoJICBGcm9tIEtlbiBQZXR0aXQgKDIwMTMtMTAtMjgpLgoKNi4zMiAyMDEzLTEyLTA3IEdyZWdvcnkgTnV0dCA8Z251dHRAbnV0dHgub3JnPgoKCSogYXBwcy9wbGF0Zm9ybTogIEEgbmV3IGhvbWUgZm9yIGJvYXJkLXNwZWNpZmljIGFwcGxpY2F0aW9uIGNvZGUKCSAgKDIwMTMtMTAtMzApLgoJKiBhcHBzL2luY2x1ZGUvcGxhdGZvcm0vY29uZmlnZGF0YS5oOiAgRGVmaW5lIGFuIGludGVyZmFjZSB0aGF0IGNhbiBiZQoJICB1c2VkIHRvIG1hbmFnZSBwbGF0Zm9ybS1zcGVjaWZpYyBzdG9yYWdlIG9mIGNvbmZpZ3VyYXRpb24gZGF0YQoJICAoMjAxMy0xMC0zMCkuCgkqIGFwcHMvZXhhbXBsZXMvY2MzMDAwOiBGaW5lIHR1bmluZyBvZiBtZW1vcnkgdXNhZ2UgZnJvbSBEYXZpZCBTaWRyYW5lCgkgICgyMDEzLTEwLTMwKS4KCSogYXBwcy9wbGF0Zm9ybS9taWtyb2Utc3RtMzJmNDogTm93IHN1cHBvcnRzIHN0b3JhZ2Ugb2YgY29uZmlndXJhdGlvbgoJICBkYXRhLiAgRnJvbSBLZW4gUGV0dGl0ICgyMDEzLTEwLTMwKS4KCSogYXBwcy9uc2hsaWIvbnNoX2RiZ2NtZHMuYyBhbmQgb3RoZXJzOiAgQWRkIHNraXA9IGFuZCBjb3VudD0KCSAgb3B0aW9ucyB0byB0aGUgaGV4ZHVtcCBjb21tYW5kLiAgRnJvbSBLZW4gUGV0dGl0ICgyMDEzLTExLTEpLgoJKiBhcHBzL3BsYXRmb3JtL21pa3JvZS1zdG0zMmY0OiAgTm93IHVzZXMgL2Rldi9jb25maWcgZm9yIGNvbmZpZ3VyYXRpb24KCSAgZGF0YSBzdG9yYWdlLiAgRnJvbSBLZW4gUGV0dGl0ICgyMDEzLTExLTEpLgoJKiBhcHBzL3BsYXRmb3JtL01ha2VmaWxlOiAgV2FzIG5vdCBkZWFsaW5nIHdpdGggdGhlIGJpbiBzdWItZGlyZWN0b3J5CgkgIGNvcnJlY3RseSAoMjAxMy0xMS0yKS4KCSogYXBwcy9leGFtcGxlcy9jb25maWdkYXRhOiAgQSB1bml0IHRlc3QgZm9yIHRoZSBNVEQgY29uZmlndXJhdGlvbgoJICBkYXRhIGRyaXZlciBmcm9tIEtlbiBQZXR0aXQgKDIwMTMtMTEtNCkuCgkqIGFwcHMvcGxhdGZvcm0vbWlrcm9lLXN0bTMyZjQ6ICBVcGRhdGVkIHRvIHVzZSBuZXcgTVREIGNvbmZpZ3VyYXRpb24KCSAgZHJpdmVyIGZlYXR1cmVzLiAgRnJvbSBLZW4gUGV0dGl0ICgyMDEzLTExLTEpLgoJKiBhcHBzL25zaGxpYi9uc2guaDogIEFsbG93IFVTQiB0cmFjZSB3aXRob3V0IGEgVVNCIGNvbnNvbGUuIEZyb20KCSAgRGF2aWQgU2lkcmFuZSAoMjAxMy0xMS0wNikuCgkqIGFwcHMvc3lzdGVtL2NvbXBvc2l0ZS9jb21wb3NpdGVfbWFpbi5jOiAgVGhlIHdyb25nIGhhbmRsZSB3YXMgZ2V0dGluZwoJICBudWxsaWZpZWQuICBGcm9tIERhdmlkIFNpZHJhbmUgKDIwMTMtMTEtNykuCgkqIGFwcHMvc3lzdGVtL254cGxheWVyOiBQbGF5IHRocmVhZCBzdGFjayBzaXplIGlzIG5vdyBjb25maWd1cmFibGUuICBBbGwKCSAgTnhQbGF5ZXIgdGhyZWFkcyBub3cgaGF2ZSBuYW1lcyBhc3NpZ25lZCB2aWEgcHRocmVhZF9zZXRuYW1lX25wKCkuCgkgIEZyb20gS2VuIFBldHRpdCAoMjAxMy0xMS0xMCkuCgkqIGFwcHMvZXhhbXBsZXMvaTJzY2hhcjogIFRoZSBiZWdpbm5pbmcgb2YgYW4gSTJTIHRlc3QgYmFzZWQgb24gdGhlIEkyUwoJICBjaGFyYWN0ZXIgZHJpdmVyICgyMDEzLTExLTEwKS4KCSogYXBwcy9uc2hsaWIvbnNoX21udGNtZHMuYzogIE1vdW50IGNvbW1hbmQgdXBkYXRlcyBmcm9tIEtlbiBQZXR0aXQKCSAgKDIwMTMtMTEtMTcpLgoJKiBhcHBzL2V4YW1wbGVzL2hpZGtiZC9oaWRrYmRfbWFpbi5jOiAgTm93IGNhbGxzIGEgZnVuY3Rpb24gbmFtZWQKCSAgYXJjaF91c2Job3N0X2luaXRpYWxpemUoKSB0aGF0IG11c3QgYmUgcHJvdmlkZWQgYnkgdGhlIHBsYXRmb3JtLQoJICBzcGVjaWZpYyBjb2RlICgyMDEzLTExLTI5KS4KCSogYXBwcy9uc2hsaWIvbnNoX2ZzY21kcy5jOiAgQWRkIGFuIG9wdGlvbiB0byB0aGUgbWtmYXRmcyBjb21tYW5kIHRvCgkgIHNwZWNpZnkgRkFUMTIsIEZBVDE2LCBvciBGQVQzMiAoMjAxMy0xMi01KS4KCjYuMzMgMjAxNC0wMS0zMCBHcmVnb3J5IE51dHQgPGdudXR0QG51dHR4Lm9yZz4KCgkqIGFwcHMvbnNobGliL25zaF9tbnRjbWRzLmM6ICBNb2RpZmllZCB0aGUgZGYgLWggbG9naWMgdG8gZWxpbWluYXRlCgkgIHRydW5jYXRpbmcgbnVtYmVycyBpbiBjb252ZXJzaW9uIChsaWtlIDc5MDAgLT4gN00pLiAgRnJvbSBLZW4KCSAgUGV0dGl0ICgyMDEzLTEyLTEyKS4KCSogTW92ZWQgY29uZmlncy9zdG0zMjQwZy1ldmFsL3NyYy91cF9jeHhpbml0aWFsaXplLmMgdG8KCSAgYXBwcy9wbGF0Zm9ybS9zdG0zMjQwZy1ldmFsL3VwX2N4eGluaXRpYWxpemUuYzogIE5vdyBpdCBpcyBhdmFpbGFibGUKCSAgaW4gdXNlci1zcGFjZSBpbiB0aGUga2VybmVsIG1vZGUgYnVpbGQgKDIwMTMtMTItMjkpLgoJKiBhcHBzL2V4YW1wbGVzL21vdW50L0tjb25maWc6ICBGaWxsIGluIGVtcHR5IEtjb25maWcgZmlsZSAoMjAxMy0xMi0zMSkuCgkqIGJ1aWx0aW4vTWFrZWZpbGU6IEZpeGVzIGZvciBuYXRpdmUgV2luZG93cyBidWlsZCBmcm9tIE1heCBIb2x0emJlcmcKCSAgKDIwMTQtMS00KS4KCSogYXBwcy9uZXR1dGlscy9kaGNwYy9LY29uZmlnLCByZXNvbHYvS2NvbmZpZywgdGVsbmV0ZC9LY29uZmlnLCBhbmQKCSAgYXBwcy9uc2hsaWIvS2NvbmZpZzogIFJlZmFjdG9yIHNvbWUgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXM6ICBOU0gKCSAgZmVhdHVyZXMgc2hvdWxkIGRlcGVuZCBvbiBuZXR1dGlsIHNlbGVjdGlvbnM7IG5ldHV0aWwgc2VsZWN0aW9ucwoJICBzaG91bGQgZGVwZW5kIG9uIG5ldHdvcmtpbmcgc2VsZWN0aW9ucy4gKDIwMTQtMS05KS4KCSogYXBwcy9uc2hsaWIvbnNoX2NvbW1hbmQuYzogIFNlcGFyYXRlIE5TSCBjb21tYW5kIGhhbmRsaW5nIGZyb20gTlNICgkgIGxpbmUgcGFyc2luZy4gIFRoaXMgcmUtcGFydGl0aW9uaW5nIHNpbXBsaWZpZXMgdGhlIGxvZ2ljIGFuZCB3aWxsCgkgIGVuYWJsZSBzb21lIHRoaW5ncyB0byBjb21lICgyMDE0LTEtMTApLgoJKiBhcHBzL25zaGxpYi9uc2hfcGFyc2UuYzogIFdpbGwgbm93IHN1cHBvcnQgbXVsdGlwbGUgY29tbWFuZHMgb24gYQoJICBjb21tYW5kIGxpbmUsIGVhY2ggc2VwYXJhdGVkIHdpdGggYSBzZW1pLWNvbG9uICgyMDE0LTEtMTApLgoJKiBhcHBzL25zaGxpYi9uc2hfcGFyc2UuYzogIFB1dCB0aGUgbG9naWMgdGhhdCBleGVjdXRlcyBhIGNvbW1hbmQKCSAgYWZ0ZXIgcGFyc2luZyBwYXJhbWV0ZXJzIGludG8gYSBzZXBhcmF0ZSBmaWxlIHNvIHRoYXQgaXQgY2FuIGJlCgkgIHJldXNlZCAoMjAxNC0xLTEwKS4KCSogYXBwcy9uc2hsaWIvbnNoX3BhcnNlLmM6ICBBZGQgaW5pdGlhbCBzdXBwb3J0IG9mIGNvbW1hbmRzIGVuY2xvc2VkCgkgIGluIGJhY2sgcXVvdGVzIGFzIGNvbW1hbmQgYXJndW1lbnRzLiAgRnVuY3Rpb25hbGl0eSBzdGlsbCBpbmNvbXBsZXRlCgkgIG9uIGluaXRpYWwgY29tbWl0ICgyMDE0LTEtMTApLgoJKiBMb2dpYyB0byBzdXBwb3J0IGNvbW1hbmRzIGVuY2xvc2VkIGluIGJhY2sgcXVvdGVzIGlzIGZ1bmN0aW9uYWwKCSAgYnV0IG5vdCB0aG9yb3VnaGx5IHRlc3RlZCAoMjAxNC0xLTExKS4KCSogYXBwcy9uc2hsaWIvbnNoX3BhcnNlLmM6ICBDYW4gbm93IGhhbmRsZSBhcmd1bWVudHMgdGhhdCBhcmUKCSAgY29uY2F0ZW5hdGlvbnMgb2YgY29uc3RhbnQgc3RyaW5ncywgY29tbWFuZCByZXR1cm4gZGF0YSwgYXBwbGljYXRpb24KCSAgcmV0dXJuIGRhdGEsIGFuZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKDIwMTQtMS0xMSkuCgkqIGFwcHMvbnNobGliL25zaF9wYXJzZS5jOiAgRml4IGEgbWVtb3J5IGxlYWsgLi4uIGZvcmdvdCB0byBjbG9zZQoJICBhIHRlbXBvcmFyeSBmaWxlICgyMDEzLTEtMTIpLgoJKiBhcHBzL3N5c3RlbS9pbmlmaWxlOiAgQSBzaW1wbGUgSU5JIGZpbGUgcGFyc2VyIChwZXJoYXBzIHRvbyBzaW1wbGUpLgoJICBUaGlzIGlzIGNvZGUgdGhhdCBJIHdyb3RlIGEgbG9uZyB0aW1lIGFnbyBhbmQgaGF2ZSB1c2VkIG1hbnkgdGltZSBidXQKCSAgaXMgdW50ZXN0ZWQgaW4gaXRzIGN1cnJlbnQgaW5jYXJuYXRpb24gKDIwMTQtMS0xNSkuCgkqIGFwcy9uc2hsaWIvbnNoX3BhcnNlLmM6ICBSZWNlbnQgY2hhbmdlcyBicm9rZSByZWRpcmVjdGlvbiBvZiBvdXRwdXQKCSAgKDIwMTQtMS0xNCkuCgkqIGFwcHMvbnNobGliL25zaF9wYXJzZS5jOiAgQWRkIHRydWUgYW5kIGZhbHNlIGNvbW1hbmRzICgyMDE0LTEtMTcpCgkqIGFwcHMvbnNobGliL25zaC5oIGFuZCBuc2hfcGFyc2UuYzogIFJlLW5hbWUgYW5kIHJlLW9yZ2FuaXplIHNvbWUKCSAgaWYtdGhlbi1lbHNlIHJlbGF0ZWQgc3RydWN0dXJlcyB0byBiZXR0ZXIgc3VwcG9ydCBmb3J0aGNvbWluZyB1bnRpbAoJICBhbmQgd2hpbGUgbG9vcHMgKDIwMTQtMS0xNykuCgkqIGFwcHMvbnNobGliL25zaF9zY3JpcHQuYzogIE5vdyBzYXZlcyB0aGUgRklMRSBzdHJlYW0gZm9yIHRoZSBzY3JpcHQKCSAgZmlsZSBpbiB0aGUgdnRibCBzdHJ1Y3R1cmUgc28gdGhhdCBpdCBjYW4gYmUgYWNjZXNzZWQgYnkgZm9ydGhjb21pbmcKCSAgd2hpbGUgYW5kIHVudGlsIGxvZ2ljICgyMDE0LTEtMTcpLgoJKiBhcHBzL25zaGxpYi9uc2guaCwgbnNoX2NvbW1hbmQuYywgbnNoX3BhcnNlLmMsIGFuZCBuc2hfc2NyaXB0LmM6ICBBZGQKCSAgc3VwcG9ydCBmb3Igd2hpbGUtZG8tZG9uZSBhbmQgdW50aWwtZG8tZG9uZSBsb29wcy4gIFRoZXNlIG9ubHkgd29yawoJICB3aGVuIGV4ZWN1dGluZyBhIHNjcmlwdCBmaWxlIGJlY2F1c2UgdGhleSBkZXBlbmQgb24gdGhlIGFiaWxpdHkgdG8gc2VlawoJICBpbiB0aGUgZmlsZSB0byBpbXBsZW1lbnQgdGhlIGxvb3BpbmcgYmVoYXZpb3JzICgyMDE0LTEtMTcpLgoJKiBhcHBzL25zaGxpYi9uc2hfcGFyc2UuYzogIExvb3NlbiB1cCBpZi10aGVuLWVsc2UtZmkgc3ludGF4IHRvIGFsbG93CgkgIGEgY29tbWFuZCB0byBiZSBvbiB0aGUgc2FtZSBsaW5lIGFzIHRoZSB0aGVuIGFuZCBlbHNlIHRva2VucyBsaWtlOgoJICAiaWYgdHJ1ZTsgdGhlbiBlY2hvIHRydWU7IGVsc2UgZWNobyBmYWxzZTsgZmkiLiAgTXVjaCBtb3JlIGxpa2UgYmFzaCEKCSAgKDIwMTQtMS0xNykuCgkqIGFwcHMvbnNobGliL0tjb25maWcsIFJFQURNRS50eHQsIG5zaC5oLCBuc2hfY29tbWFuZC5jLCBhbmQKCSAgbnNoX3NjcmlwdC5jOiAgQWRkIGFuIG9wdGlvbiB0byBjb25kaXRpb25hbGx5IGNvbXBpbGUgb3V0IHN1cHBvcnQgZm9yCgkgIGxvb3AgYW5kIGZvciBpZi10aGVuLWVsc2UtZmkgc2VxdWVuY2UgKDIwMTQtMS0xNykuCgkqIGFwcHMvbnNobGliL25zaC5oLCBuc2hfY29tbWFuZC5jLCBhbmQgbnNoX3BhcnNlLmM6ICBBZGQgYSBicmVhawoJICBjb21tYW5kIHRoYXQgY2FuIGJlIGV4ZWN1dGVkIHdpdGggYSBsb29wIHRvIHRlcm1pbmF0ZSB0aGUgbG9vcAoJICBpbW1lZGlhdGVseSAoMjAxNC0xLTE3KS4KCSogYXBwcy9zeXN0ZW0vdmk6ICBBZGQgc3VwcG9ydCBmb3IgYSB0aW55LCBWSSB3b3JrLWFsaWtlIGVkaXRvci4gIFRoaXMKCSAgaXMgc3RpbGwgdmVyeSBtdWNoIGEgd29yay1pbi1wcm9ncmVzcyBvbiBpbml0aWFsIGNoZWNrLWluICgyMDE0LTEtMjApLgoJKiBhcHBzL25ldHV0aWxzL3VpcGxpYjogIFN1cHBvcnQgbmV3IGRlZmluaXRpb25zIGFuZCBzdGF0ZSBwYXNzaW5nIGZvcgoJICBuZXR3b3JrIGRldmljZSBzdGF0dXMuIEZyb20gTWF6IEhvbHR6YmVyZyAoMjAxNC0xLTIxKS4KCSogYXBwcy9zeXN0ZW0vdmk6ICBUaW55IFZJIGlzIGJhc2ljYWxseSBmdW5jdGlvbmFsLiAgQWxsIGNvbW1hbmRzIHNlZW0KCSAgdG8gd29yay4gIFRoZXJlIGFyZSBzdGlsbCBzb21lIGRpc3BsYXkgYXJ0aWZhY3RzIGFuZCBwcm9iYWJseSBzZXZlcmFsCgkgIHVudGVzdGVkIGNvbmRpdGlvbnMgKDIwMTQtMS0yMSkuCgo3LjEgMjAxNC0wMy0xNSBHcmVnb3J5IE51dHQgPGdudXR0QG51dHR4Lm9yZz4KCgkqIGFwcHMvc3lzdGVtL2NsZTogIEFkZCBhIEVNQUNTLWxpa2UgY29tbWFuZCBsaW5lIGVkaXRvci4gIFRoaXMgQ0xFLAoJICBpcyByZWFsbHkgbW9yZSBsaWtlIHJlYWRsaW5lIHRoYW4gdGhlIE51dHRYIHJlYWRsaW5lIGlzISAgKDIwMTQtMDItMDIpLgoJKiBhcHBzL25zaGxpYjogVXNlIG9mIHRoZSBzdGFuZGFyZCB0aW55IHJlYWRsaW5lIChhYm91dCAuMjVLQikgaXMgbm93CgkgIGFuIG9wdGlvbiBhbmQgY2FuIGJlIHJlcGxhY2VzIHdpdGggdGhlIEVNQUNYLWxpa2UgQ0xFIChhYm91dCAyS0IpCgkgICgyMDE0LTAyLTAyKS4KCSogU2V2ZXJhbCBjaGFuZ2VzIHRvIHJlc3RvcmUgV2luZG93cyBuYXRpdmUgYnVpbGQgKDIwMTQtMi03KQoJKiBhcHBzL2V4YW1wbGVzL3RvdWNoc2NyZWVuOiAgQ2FuIG5vdyBiZSBjb25maWd1cmVkIHRvIHdvcmsgd2l0aCBhIG1vdXNlCgkgIGludGVyZmFjZSBhcyB3ZWxsICgyMDE0LTItMTApLgoJKiBTZXZlcmFsIGZpbGVzIGNoYW5nZXMgYmFzZWQgb24gY29tcGxhaW50cyBmcm9tIHRoZSB0b29sIENwcENoZWNrLiAgU29tZQoJICBsYXRlbnQgYnVncyB3ZXJlIGZpeGVkIChhbmQgbW9zdCBsaWtlbHkgc29tZSBuZXcgdHlwb3Mgd2VyZSBpbnRyb2R1Y2VkKQoJICAoMjAxNC0yLTEwKS4KCSogYXBwcy9leGFtcGxlcy9ueGltYWdlL0tjb25maWcgYW5kIGFwcHMvZXhhbXBsZXMvdWlwL0tjb25maWc6IEluY29tcGxldGUKCSAgS2NvbmZpZyBmaWxlcyBmbGVzaGVkIG91dCBieSBBbGFuIENhcnZhbGhvIGRlIEFzc2lzICgyMDE0LTItMTgpLgoJKiBhcHBzL25zaGxpYjogJ3JtZGlyJyBjYW4gbm93IGJlIHVzZWQgaW4gdGhlIHBzZXVkby1maWxlc3lzdGVtLiAgSGVuY2UsCgkgIHRoZSBjb21tYW5kIG5lZWRzIHRvIGJlIGF2YWlsYWJsZSBldmVuIGlmIHRoZXJlIGFyZSBubyB3cml0ZS1hYmxlCgkgIGZpbGVzeXN0ZW0gZW5hYmxlZCAoMjAxNC0yLTE5KS4KCSogYXBwcy9uc2hsaWI6ICdta2RpcicgY2FuIG5vdyBiZSB1c2VkIGluIHRoZSBwc2V1ZG8tZmlsZXN5c3RlbS4gIEhlbmNlLAoJICB0aGUgY29tbWFuZCBuZWVkcyB0byBiZSBhdmFpbGFibGUgZXZlbiBpZiB0aGVyZSBhcmUgbm8gd3JpdGUtYWJsZQoJICBmaWxlc3lzdGVtIGVuYWJsZWQgKDIwMTQtMi0xOSkuCgkqIGFwcHMvbnNobGliOiAnbXYnIGNhbiBub3cgYmUgdXNlZCBpbiB0aGUgcHNldWRvLWZpbGVzeXN0ZW0uICBIZW5jZSwKCSAgdGhlICdtdicgY29tbWFuZCBuZWVkcyB0byBiZSBhdmFpbGFibGUgZXZlbiBpZiB0aGVyZSBhcmUgbm8gd3JpdGUtYWJsZQoJICBmaWxlc3lzdGVtIGVuYWJsZWQgKDIwMTQtMi0xOSkuCgkqIGFwcHMvbnNobGliOiAncm0nIGNhbiBub3cgYmUgdXNlZCB0byByZW1vdmUgbm9kZXMgZnJvbSB0aGUgcHNldWRvLQoJICBmaWxlc3lzdGVtLiAgSGVuY2UsIHRoZSAncm0nIGNvbW1hbmQgbmVlZHMgdG8gYmUgYXZhaWxhYmxlIGV2ZW4gaWYgdGhlcmUKCSAgYXJlIG5vIHdyaXRlLWFibGUgZmlsZXN5c3RlbSBlbmFibGVkICgyMDE0LTItMjApLgoJKiBDT05GSUdfRElTQUJMRV9QU0VVRE9GU19PUEVSQVRJT05TOiBUaGlzIG5ldyBjb25maWd1cmF0aW9uIHNldHRpbmcKCSAgYmFzaWNhbGx5IGJhY2tzIG91dCB0aGUgcmVjZW50IGNoYW5nZXMgdG8gbXYsIHJtLCBta2RpciwgYW5kIHJtZGlyCgkgICgyMDE0LTItMjApLgoJKiBuc2hsaWIvS2NvbmZpZzogIFVzZSBDT05GSUdfREVGQVVMVF9TTUFMTCBpbiBzZWxlY3RpbmcgZGVmYXVsdAoJICBzZXR0aW5ncyAoMjAxNC0yLTIwKS4KCSogbnNobGliL25zaF90ZWxuZXRkLmM6ICBVc2Ugc3RybmNweSB2cyBzdHJjcHkgdG8gYXZvaWQgb3ZlcnJ1bmluZyB0aGUKCSAgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGJ1ZmZlcnMuICBGcm9tIEJlcnRvbGQgVmFuIGRlbiBCZXJnaCAoMjAxNC0yLTIyKS4KCSogbnNobGliL0tjb25maWcsIG5zaF9wcm9jY21kcy5jOiAgSWYgdGhlIENQVSBsb2FkIGZlYXR1cmUgYW5kIHRoZSBwcm9jZnMKCSAgZmVhdHVyZXMgYXJlIGVuYWJsZWQsIHRoZW4gc2hvdyBDUFUgbG9hZCB1c2VkIGJ5IGVhY2ggdGhyZWFkIGluIHRoZQoJICAncHMnIGNvbW1hbmQgKDIwMTQtMi0yNykuCgkqIG5zaGxpYi9uc2hfZnNjbWRzLmM6ICBBZGQgYSBuZXdsaW5lIGFmdGVyIHByaW50aW5nIHRoZSBmaWxlIGluIHRoZQoJICAnY2F0JyBjb21tYW5kLiAgVGhpcyBwcmV2ZW50cyB0aGUgTlNIIHByb21wdCBmcm9tIGJlIGluIHRoZSBzYW1lIGxpbmUKCSAgYXMgdGhlIGZpbmFsIGxpbmUgb2YgdGhlIGZpbGUgaW4gdGhlIGNhc2Ugd2hlcmUgdGhlcmUgaXMgbm8gbmV3bGluZQoJICBhdCB0aGUgZW5kIG9mIHRoZSBmaWxlICgyMDE0LTItMjcpLgoJKiBuZXR1dGlscy9kaGNwZC9kaGNwZC5jOiBhbGxvY2lwYWRkcigpIHNob3VsZCBub3QgY2FsbCBudG9obCgpLCB0aGUKCSAgcmV0dXJuZWQgSVAgYWRkcmVzcyBpcyBhbHJlYWR5IGluIGhvc3Qgb3JkZXIuCgkqIGFwcHMvbmV0dXRpbHMvZGhjcGQvS2NvbmZpZzogQWRkIG1pc3NpbmcgREhDUEQgY29uZmlndXJhdGlvbgoJICBzZXR0aW5ncygyMDE0LTMtMykuCgkqIFN1cHBvcnQgZm9yIHRoZSBsZWdhY3kgY29uZmlndXJhdGlvbiBtZWNoYW5pc20gKHVzaW5nIGFwcGNvbmZpZyBmaWxlcykKCSAgaXMgcmVtb3ZlZC4gIE9ubHkgdGhlIG5ld2VyIGNvbmZpZ3VyYXRpb24gdXNpbmcgdGhlIGtjb25maWctZnJvbnRlbmRzCgkgIHRvb2xzIGlzIG5vdyBzdXBwb3J0ZWQgKDIwMTQtMy02KS4KCjcuMiAyMDE0LTA0LTI5IEdyZWdvcnkgTnV0dCA8Z251dHRAbnV0dHgub3JnPgoKCSogYXBwcy9uc2hsaWIvbnNoX3BhcnNlLmM6IEZpeCBOdXR0U2hlbGwgdmVyc2lvbiBudW1iZXIgZGlzcGxheSBpbgoJICB3ZWxjb21lIG1lc3NhZ2UuICB2ZXJzaW9uLmggd2FzIG5vdCBiZWluZyBpbmNsdWRlZCAoMjAxNC0zLTIzKS4KCSogYXBwcy9leGFtcGxlcy9pZ21wOiAgRmlsbCBvdXQgS2NvbmZpZyBmaWxlOyB1cGRhdGUgbWFrZWZpbGUgc28KCSAgdGhhdCB0aGUgSUdNUCBleGFtcGxlIGNhbiBiZSB1c2VkIGFzIGFuIE5TSCBidWlsdC1pbiBhcHBsaWNhdGlvbi4KCSAgRnJvbSBNYW51ZWwgU3T8aG4gKDIwMTQtMy0yNCkuCgkqIGFwcHMvc3lzdGVtL3VzYm1zYzogIEJhY2sgb3V0IHRoZSBVU0JNU0MgZGFlbW9uLi4uIGl0IGlzIG5vIGxvbmdlcgoJICBuZWVkZWQgd2l0aCB0aGUgcmVjZW50IGZpeCB0byB0aGUgVVNCTVNDIGNsYXNzIGRyaXZlciAoMjAxNC0zLTI1KS4KCSogYXBwcy9leGFtcGxlcy9sY2RydzogIEZpbGwgb3V0IGVtcHR5IEtjb25maWcgZmlsZSAoMjAxNC0yLTI3KS4KCSogYXBwcy9uZXR1dGlscy9kaGNwZC9kaGNwZC5jOiAgVGhlIGNvcnJlY3QgdmFsdWUgb2YgdGhlIFBBRCBvcHRpb24KCSAgaXMgemVybywgbm90IG9uZS4gIEZyb20gQnJlbm5hbiBBc2h0b24gKDIwMTQtMy0zMSkuCgkqIGFwcHMvc3lzaW5mbzogICBDT05GSUdfVkVSU0lPTl9CVUlMRCBpcyBhIHN0cmluZyBhbiBuZWVkcyB0byBiZQoJICBwcmludGVkIHdpdGggJXMsIG5vdCAlZC4gIE5vdGVkIGJ5IExpYnJhZSAoMjAxNC00LTgpLgoJKiBhcHBzL25ldHV0aWxzL250cGNsaWVudC8gYW5kIGFwcHMvaW5jbHVkZS9uZXR1Zmlscy9udHBjbGllbnQuaDogIEFkZAoJICBhIHZlcnkgcHJpbWl0aXZlIE5UUCBjbGllbnQuICBUaGUgaW5pdGlhbCBjaGVjay1pbiBpcyB1bnRlc3RlZCBhbmQKCSAgcHJvYmFibHkgaW5jb21wbGV0ZSAoMjAxNC00LTEwKS4KCSogYXBwcy9uZXR1dGlscy9yZXNvbHY6ICBMb25nIG5lZWRlZCBtYWpvciBjbGVhbiB1cCBmb3IgY29kaW5nIHN0eWxlCgkgIGFuZCB1bmlmaWNhdGlvbiBvZiBuYW1pbmcgY29udmVudGlvbnMgKHJlc29sdiB2cyBkbnMpICgyMDE0LTQtMTEpLgoJKiBhcHBzL25ldHV0aWxzL2Ruc2NsaWVudCBhbmQgaW5jbHVkZS9uZXR1dGlscy9kbnNjbGllbnQuaDogIEZpbGUgbmFtZQoJICBjaGFuZ2VzIHRoYXQgYXJlIHBhcnQgb2YgdGhlIG92ZXJhbCByZXNvbHYtPmRucyByZW5hbWluZyAoMjAxNC00LTExKS4KCSogYXBwcy9uZXR1dGlscy9kbnNjbGllbnQ6ICBCcmVhayB0aGUgb25lIGJpZyBtb25vbGl0aGljIGZpbGUgaW50bwoJICB0aHJlZSBzbWFsbGVyIGZpbGVzICgyMDE0LTQtMTEpLgoJKiBhcHBzL25ldHV0aWxzL250cGNsaWVudC9udHBjbGllbnQuYzogQ29ycmVjdGlvbnMgdG8gdGhlIE5UUCBjbGllbnQKCSAgZnJvbSBNYW51ZWwgU3R1ZWhuICgyMDE0LTQtMTIpLgoJKiBhcHBzL2V4YW1wbGVzL3RvdWNoc2NyZWVuOiAgQWRkIGEgY29uZmlndXJhdGlvbiBvcHRpb24gdG8gaW5kaWNhdGUgaWYKCSAgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGluaXRpYWxpemVkIGlzIHJlcXVpcmVkLCB5ZXMgb3Igbm8gKDIwMTQtNC0xNCkuCgkqIGFwcHMvc3lzdGVtL254cGxheWVyL254cGxheWVyLmM6ICBDb21waWxhdGlvbiBmYWlsdXJlIGluIG9uZQoJICBjb25maWd1cmF0aW9uIHJlcG9ydGVkIGJ5IE1hbnVlbCBTdHVobiAoMjAxNC00LTIxKS4KCSogYXBwcy9zeXN0ZW0vc2RjYXJkOiAgUmVtb3ZlIGFuIFNUTTMyIGRlcGVuZGVuY3kuICBGcm9tIEJvYiBEb2lyb24KCSAgKDIwMTQtNC0yMSkuCgkqIGFwcHMvbnNobGliOiBtYWxsb2MvZnJlZSBJT0JVRkZFUiBmb3IgJ2NhdCcgYW5kICdoZXhkdW1wJyBjb21tYW5kcwoJICBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBzdGFjay4gIEZyb20gQm9iIERvaXJvbiAoMjAxNC00LTIxKS4KCSogYXBwcy9leGFtcGxlcy9jcHVob2csIHNlcmlhbGJsYXN0ZXIsIGFuZCBzZXJpYWxyeDogIFN0cmVzcyB0ZXN0CgkgIGV4YW1wbGVzIGFkZGVkIGJ5IEJvYiBEb2lyb24gKDIwMTQtNC0yMikuCgkqIGFwcHMvZXhhbXBsZXMvdGVsbmV0ZDogIE5hbWluZyBpcyBjb25mdXNlZC4gIEluIHNvbWVwbGFjZXMgJ3RlbG5ldGQnLAoJICBhbmQgaW4gb3RoZXJzICdzaGVsbC4nICBBbGwgY2hhbmdlcyB0byB0ZWxuZXRkLiAgTm90ZWQgYnkgUGVsbGUKCSAgV2luZGVzdGFtICgyMDE0LTQtMzgpLgoKNy4zIDIwMTQtMDYtMjUgR3JlZ29yeSBOdXR0IDxnbnV0dEBudXR0eC5vcmc+CgoJKiBhcHBzL2V4YW1wbGVzL3NlcmlhbGJsYXN0ZXI6ICBVcGRhdGUgY29uZmlndXJhdGlvbiBhbiBtYWtlIGxvZ2ljIGluCgkgIG9yZGVyIHRvIHNlbGVjdCB0aGF0IHRoZSBzZXJpYWwgYmxhc3RlciB0YXNrIHByaW9yaXR5IGFuZCBzdGFjayBzaXplLgoJICBGcm9tIEJvYiBEb2lyb24gKDIwMTQtNC0zMCkuCgkqIGFwcHMvbnNobGliL0tjb25maWcgYW5kIG90aGVyIE5TSCBmaWxlczogIFRoZSBhbHRlcm5hdGUgY29uc29sZSBkZXZpY2UKCSAgQ09ORklHX05TSF9DT05ERVYgbXVzdCBub3QgYmUgZGVmaW5lZCB1bmNvbmRpdGlvbmFsbHkuICBUaGlzIGNhdXNlcyBlcnJvcnMKCSAgd2hlbiB1c2luZyBUZWxuZXQgc2Vzc2lvbnMuICBUaGlzIHdhcyBzb2x2ZWQgYnkgYWRkaW5nIENPTkZJR19OU0hfQUxUQ09OREVWOgoJICBDT05GSUdfTlNIX0FMVENPTkRFViBlbmFibGVzIG9yIGRpc2FibGVzIHRoZSBmZWF0dXJlIHRoZW4sIGlmIGVuYWJsZWQsCgkgIENPTkZJR19OU0hfQ09OREVWIHByb3ZpZGVzIHRoZSBhbHRlcm5hdGl2ZSBjb25zb2xlIGRldmljZSBuYW1lICgyMDE0LTUtNSkuCgkqIGFwcHMvc3lzdGVtL2kyYy9pMmNfZ2V0LmM6ICBGaXggdG8gc2hvdyB0aGUgdXBkYXRlZCByZWdpc3RlciBhZGRyZXNzIG9uCgkgIGVhY2ggZmV0Y2ggKHZzLiBzaG93aW5nIHRoZSBzYW1lIHN0YXJ0aW5nIGFkZHJlc3MgZWFjaCB0aW1lKS4gIEZyb20KCSAgUnlhbiBWYW5TaWNrbGUgKDIwMTQtNS04KS4KCSogYXBwcy9pbnRlcnByZXRlcnMvcHJ1biBhbmQgYXBwcy9pbmNsdWRlL2ludGVycHJldGVycy9wcnVuLmg6ICBCcm9rZSBvdXQKCSAgdGhlIFAtY29kZSBleGVjdXRpb24gbG9naWMgZnJvbSBhcHBzL2V4YW1wbGVzL3Bhc2hlbGxvIGFuZCBtb3ZlZCBpdCB0bwoJICB0aGVzZSBkaXJlY3Rvcnkgd2hlcmUgaXQgY2FuIGJlIHVzZWQgbW9yZSBnZW5lcmFsbHkgKDIwMTQtNS05KS4KCSogYXBwcy9zeXN0ZW0vcHJ1biBhbmQgYXBwcy9pbmNsdWRlL2ludGVycHJldGVycy9wZXhlY19tYWluLmM6ICBNb3ZlIHRoZQoJICBQLUNvZGUgZXhlY3V0aW9uIGxvZ2ljIGZyb20gYXBwcy9pbnRlcnByZXRlcnMvcHJ1biB0bwoJICBhcHBzL3N5c3RlbS9wcnVuOyBBZGQgcGV4ZWNfbWFpbi5jIHdoaWNoIGlzIGFuIE5TSCBidWlsdC1pbgoJICBhcHBsaWNhdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHJ1biBQLUNvZGUgcHJvZ3JhbXMgZnJvbSB0aGUgTlNICgkgIGNvbW1hbmQgbGluZSAoMjAxNC01LTkpLgoJKiBTZXZlcmFsIGZpbGVzOiBDb252ZXJ0IGFsbCBvbGQtc3R5bGUgdmFyaWFkaWMgbWFjcm9zIHRvIHRoZSBDOTkgZm9ybS4KCSAgUmVjZW50IEdDQyBjaGFuZ2VzIHRpZ2h0ZW5zIHVwIHRoYXQgYmVoYXZpb3IgYW5kIGNhbiBjYXVzZSBzb21lIHByb2JsZW1zCgkgIChhdCBsZWFzdCBmb3IgdGhlIElBUiBjb21waWxlciBmb3Igc29tZSByZWFzb24pLiAgU2VlCgkgIGh0dHBzOi8vZ2NjLmdudS5vcmcvb25saW5lZG9jcy9jcHAvVmFyaWFkaWMtTWFjcm9zLmh0bWwjVmFyaWFkaWMtTWFjcm9zLgoJICBOb3RlZCBieSBCb2IgR3JpbWVzICgyMDE0LTUtMjIpLgoJKiBhcHBzL3N5c3RlbS9jbGU6ICBDTEUgd2FzIG5vdCByZXR1cm5pbmcgdGhlIHRlcm1pbmF0aW5nIG5ld2xpbmUgY2hhcmFjdGVyLgoJICBCdXQgcmVwb3J0ZWQgYnkgTWF4IGtyaWVnbGVkZXI7IHdvcmstYXJvdW5kIHJlcG9ydGVkIGJ5IExvcmVueiBNZWllcgoJICAoMjAxNS01LTIzKS4KCSogTWlzYyBjaGFuZ2VzIGR1ZSB0byBtb3ZpbmcgbnV0dHgvbmV0L3VpcC91aXAtYXJwLmggdG8gbnV0dHgvbmV0L2FycC5oCgkgICgyMDE1LTUtMzApLgoJKiBhcHBzL2V4YW1wbGVzL25ldHBrdC86ICBBICJyYXciIHNvY2tldCB0ZXN0IGZyb20gTGF6bG8gU2l0emVyCgkgICgyMDE0LTYtMTIpLgoJKiBhcHBzL3N5c3RlbS9oZXgyYmluLzogIEEgbGlicmFyeSBhbmQgYnVpbHQtaW4gdGFzayB0byBjb252ZXJ0IGZyb20KCSAgSW50ZWwgSEVYIHRvIGJpbmFyeSBmb3JtYXQuICBVbnRlc3RlZCBvbiBpbml0aWFsIGNvbW1pdCAoMjAxNC02LTE1KS4KCSogYXBwcy9zeXN0ZW0vaGV4MmJpbi86IEFwcGVhcnMgdG8gYmUgZnVuY3Rpb25hbCBidXQgdGVzdGluZyBpcyBzdGlsbAoJICBsaWdodCAoMjAxNC02LTE2KS4KCSogYXBwcy9zeXN0ZW0vaGV4MmJpbi9oZXgybWVtX21haW46IEFkZCBhIHZhcmlhbnQgYXBwbGljYXRpb24gdGhhdCB3aWxsCgkgIHdyaXRlIEludGVsIEhFWCBmaWxlcyBkaXJlY3RseSB0byBtZW1vcnkgKDIwMTQtNi0xNikuCgkqIG5ldHV0aWxzL3dlYnNlcnZlcjogaHR0cGRfZnNfb3BlbigpIHNob3VsZCByZXR1cm4gT0sgb24gc3VjY2VzcyBhbmQKCSAgRVJST1Igb24gZmFpbHVyZSwgbm90IDEgYW5kIDAgKDIwMTQtNi0yMykKCjcuNCAyMDE0LTA4LTE1IEdyZWdvcnkgTnV0dCA8Z251dHRAbnV0dHgub3JnPgoKCSogYXBwcy9zeXN0ZW0vbWRpbzogIFBIWSB0b29sIGZyb20gRGFuaWVsIExhemxvIFNpenRlciAoMjAxNC02LTI3KS4KCSogYXBwcy9uc2hsaWI6ICBOZXR3b3JraW5nIGxvZ2ljIG1vZGlmaWVkIHRvIGhhbmRsZXIgdGhlIGNhc2Ugb2YgU0xJUAoJICB0cmFuc3BvcnQuICBGcm9tIE1heCBOZWtseXVkb3YgKDIwMTQtNi0yNykuCgkqIGFwcHMvbnNobGliOiAgaWYgIyBhcHBlYXJzIG9uIGxpbmUsIG5lZWQgdG8gY29tbWVudCBpZ25vcmUgYWRkaXRpb25hbAoJICBjb21tYW5kcyBvbiB0aGUgbGluZSAoMjAxNC03LTEpLgoJKiBhcHBzL25ldGxpYjogUmVuYW1lZCBhbGwgb2NjdXJyZW5jZXMgb2YgdWlwbGliIHRvIG5ldGxpYi4gIFJlbmFtZWQKCSAgZmlsZXMgdW5kZXIgbmV0dXRpbHMvdWlwbGliL3VpcF8qLmMgdG8gbmV0dXRpbHMvbmV0bGliL25ldGxpYl8qLmMuCgkgIFJlbmFtZWQgYWxsIGZ1bmN0aW9ucyBkZWZpbmVkIGluIG5ldHV0aWxzL25ldGxpYi8gdG8gYmVnaW4gd2l0aCBuZXRsaWJfLAoJICBpbnN0ZWFkIG9mIHVpcF8uICgyMDE0LTctMikuCgkqIGFwcHMvbnNobGliL25zaF91c2JrZXlib2FyZC5jOiAgQWRkIGEgY29uZmlndXJhdGlvbiB0byB1c2UgYSBVU0IKCSAga2V5Ym9hcmQgZm9yIHRoZSBzdGRpbiBkZXZpY2UgKDIwMTQtNy0zKS4KCSogYXBwcy9uZXR1cmlscy93ZWJjbGllbnQvd2ViY2xpZW50LmM6ICBGaXggdG8gb2Zmc2V0IGNhbGN1bGF0aW9uIGZyb20KCSAgUm9ueSBYbG4uICBQcmV2ZW50cyAweDBhIGF0IHRoZSBiZWdpbm5pbmcgb2YgbGluZXMgKDIwMTQtNy03KS4KCSogbmV0dXRpbHMvd2Vic2VydmVyIChhbmQgb3RoZXIgZmlsZXMpOiAgRml4IHNvbWUgY29uZmlndXJhdGlvbiB1c2FnZToKCSAgQ09ORklHX05FVFVUSUxTX0hUVFBEX1NFTkRGSUxFIHdhcyBtaXNzaW5nIGZyb20gS2NvbmZpZzsgQ09ORklHX05FVF9IQVZFX1NPTElOR0VSCgkgIHNob3VsZCBiZSBDT05GSUdfTkVUX1NPTElOR0VSOyBUeXBlIG9mIENPTkZJR19ORVRfSFRUUERfTUFYUEFUSCB3YXMgd3JvbmcKCSAgaW4gS2NvbmZpZyBmaWxlLiAgRnJvbSBNYXggKDIwMTQtNy0xMSkuCgkqIGFwcHMvc3lzdGVtL254cGxheWVyL254cGxheWVyLmM6ICBDaGVjayBmb3IgZmlsZSByZWFkIGVycm9ycyBhbmQgZW5kLW9mLWZpbGUKCSAgd2l0aCB6ZXJvIGJ5dGVzIHJlYWQgKDIwMTQtNy0yMykuCgkqIGFwcHMvc3lzdGVtL254cGxheWVyOiBNaXNjIGNoYW5nZXMgdG8gYmV0dGVyIGludGVncmF0ZSB3aXRoCgkgIE54V006OkNNZWRpYVBsYXllciAoMjAxNC03LTIzKS4KCSogYXBwcy9zeXN0ZW0vbnhwbGF5ZXIvbnhwbGF5ZXIuYyBhbmQgYXBwcy9pbmNsdWRlL254cGxheWVyLmg6IEFkZCBob29rcwoJICBmb3IgZmFzdC1mb3J3YXJkIGFuZCByZXdpbmQgbmVlZGVkIGJ5IENNZWRpYVBsYXllcjsgYWRkIGhvb2tzIGZvcgoJICBlcXVhbGl6ZXIgc2V0dGluZ3MgbmVlZGVkIGJ5IHRoZSBXTTg5MDQgICgyMDE0LTctMjQpLgoJKiBhcHBzL2luY2x1ZGUvbnhwbGF5ZXIuaCBhbmQgYXBwcy9zeXN0ZW0vbnhwbGF5ZXIvbnhwbGF5ZXIuYzogQ2hhbmdlcyB0bwoJICBpbnRlZ3JhdGUgd2l0aCBLZW4ncyBOeFdNOjpDTWVkaWFQbGF5ZXIgKDIwMTQtNy0yNCkuCgkqIGFwcHMvaW5jbHVkZS9ueHBsYXllci5oOiBNb3ZlIHN1YnNhbXBsaW5nIHJhdGUgZGVmaW5pdGlvbnMgZnJvbSBueHBsYXllci5oCgkgIHRvIGF1ZGlvLmggKjIwMTQtNy0yNykuCgkqIGFwcHMvc3lzdGVtL254cGxheWVyL254cGxheWVyLmM6IE54UGxheWVyIG5lZWRzIHRvIHNldCBjdXJieXRlIGZpZWxkIHRvCgkgIHplcm8gYmVmb3JlIGVucXVldWluZyBhIGJ1ZmZlci4gIE90aGVyd2lzZSwgaXQgbG9va3MgbGlrZSBiZWdpbm5pbmcgb2YKCSAgdGhlIGJ1ZmZlciBoYXMgYWxyZWFkeSBiZWVuIGNvbnN1bWVkLiAoMjAxNC03LTI3KS4KCSogYXBwcy9uZXR1dGlscy93ZWJzZXJ2ZXIvaHR0cGQuYzogIE1pc3NpbmcgbG9naWMgdG8gY2xvc2Ugc29ja2V0cyBvbiBsb29wCgkgIHRlcm1pbmF0aW9uLiAgRnJvbSBNYXggKDIwMTQtNy0yOCkuCgkqIGFwcHMvc3lzdGVtL254cGxheWVyL254cGxheWVyLmM6ICBGaXggc29tZSBlcnJvciBoYW5kbGluZywgdXBkYXRlCgkgIGNvbW1lbnRzLCBtb3JlIGRlYnVnIG91dHB1dCAoMjAxNC03LTMxKS4KCSogYXBwcy9zeXN0ZW0vbnhwbGF5ZXIvbnhwbGF5ZXIuYzogQ2hhbmdlIGhvdyB0aGUgZW5kIG9mIHRoZSBhdWRpbwoJICBzdHJlYW0gaXMgZGV0ZWN0ZWQgYnkgdGhlIGxlYWYgYXVkaW8gY29tcG9uZW50LiAgVGhpcyB1c2VkIGJ5IGJlIGRvbmUKCSAgYnkgbG9va2luZyBmb3IgdGhlIGZpcnN0IHBhcnRpYWwgYnVmZmVyLiAgVGhhdCBkb2VzIG5vdCB3b3JrIHdpdGggdGhlCgkgIGluLXBsYWNlIHN1Yi1zYW1wbGluZyBwZXJmb3JtZWQgYnkgdGhlIFBDTSBkZWNvZGVyOiAgVGhhdCBhbHdheXMgcmVkdWNlcwoJICB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIHNvIHRoYXQgYWxsIGJ1ZmZlcnMgb25seSBwYXJ0aWFsbHkgZmlsbGVkIGJ5IHRoZQoJICB0aW1lIHRoZXkgZ2V0IHRvIHRoZSBsZWFmLiAgTm93LCBhIGZsYWcgaXMgc2V0IGluIHRoZSBhdWRpbyBidWZmZXIKCSAgZmxhZ3Mgc2V0IHRvIGluZGljYXRlIHRoZSBmaW5hbCBidWZmZXIgaW4gdGhlIHN0cmVhbSAoMjAxNC03LTMxKS4KCSogYXBwcy9zeXN0ZW0vbnhwbGF5ZXIvbnhwbGF5ZXIuYzogRml4IGFuIGVycm9yIEkgaW50cm9kdWNlZDogIE5lZWQgdG8KCSAgcGFzcyB0aHJvdWdoIGZpbmFsIGJ1ZmZlciBldmVuIGlmIGlzIGl0IHplcm8gbGVuZ3RoIGJlY2F1c2UgaXQgY29udGFpbnMKCSAgdGhlIGVuZCBvZiBhdWRpbyBzdHJlYW0gZmxhZyAoMjAxNC04LTEpLgoJKiBhcHBzL3N5c3RlbS9ueHBsYXllci9ueHBsYXllci5jOiBCcmVhayByZWFkaW5nIGFuZCBlbnF1ZXVlaW5nIG9mIGF1ZGlvCgkgIGJ1ZmZlcnMgaW50byB0d28gc3RlcHMgc28gdGhhdCBlcnJvcnMgaW4gZW5xdWV1ZWluZyBjYW4gYmUKCSAgZGlzdGluZ3Vpc2hlZCBmcm9tIGVycm9ycyBpbiByZWFkaW5nLiAgRXJyb3JzIGluIGVucXVldWVpbmcgc2lnbmFsIGEKCSAgZG93bnN0cmVhbSBkZWNvZGVyIGVycm9yLiAgQWRkIGxvZ2ljIHRvIGdyYWNlZnVsbHkgcmVjb3ZlciBmcm9tCgkgIGRvd25zdHJlYW0gZGVjb2RlciBlcnJvcnMgKDIwMTQtOC01KS4KCSogYXBwcy9uc2hsaWIvS2NvbmZpZywgbnNoLmgsIGFuZCBuc2hfbmV0aW5pdC5jOiBTb2Z0d2FyZSBhc3NpZ25lZCBNQUMKCSAgYWRkcmVzcyBpcyBub3cgY29uZmlndXJhYmxlLiBGcm9tIExhemxvICgyMDE0LTgtNikuCgkqIGFwcHMvbnNobGliL0tjb25maWcsIG5zaC5oLCBhbmQgbnNoX25ldGluaXQuYzogQWxzbyBhZGQgYW4gb3B0aW9uIHRvCgkgIGxldCBwbGF0Zm9ybS1zcGVjaWZpYyBsb2dpYyBzZWxlY3QgdGhlIE1BQyBhZGRyZXNzICgyMDE0LTgtNSkuCgkqIGFwcHMvbnNobGliL0tjb25maWcsIG5zaC5oLCBhbmQgbnNoX25ldGluaXQuYzogIFRoZXJlIGlzIG5vdyBhCgkgIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRoYXQgd2lsbCBicmluZyB1cCB0aGUgbmV0d29yayBvbiBhbiBzZXBhcmF0ZQoJICB0aHJlYWQuICBTaW5jZSB0aGUgbmV0d29yayBicmluZy11cCBpcyBhc3luY2hyb25vdXMsIHRoZXJlIGFyZSBub3QKCSAgc2VyaWFsIGNvbnNvbGUgc3RhcnQtdXAgZGVsYXlzIGR1ZSB0byB0aGUgbmV0d29yayBuZWdvdGlhdGlvbiB0aW1lCgkgICgyMDE0LTgtNikuCgkqIGFwcHMvc3lzdGVtL3N1ZG9rdTogIEFkZCBhIHN1ZG9rdSBnYW1lICgyMDE0LTgtMTEpLgoKNy41IDIwMTQteHgteHggR3JlZ29yeSBOdXR0IDxnbnV0dEBudXR0eC5vcmc+Cgo=