ZGlmZiAtLWdpdCBhL0FOTk9VTkNFIGIvQU5OT1VOQ0UKaW5kZXggNmIyZmFmMi4uOTg0ZDljZSAxMDA2NDQKLS0tIGEvQU5OT1VOQ0UKKysrIGIvQU5OT1VOQ0UKQEAgLTEsMTIgKzEsMTMgQEAKLVRoaXMgaXMgcmVsZWFzZSAyMDA0MDYxNSBvZiBXaW5lLCBhIGZyZWUgaW1wbGVtZW50YXRpb24gb2YgV2luZG93cyBvbgorVGhpcyBpcyByZWxlYXNlIDIwMDQwNzE2IG9mIFdpbmUsIGEgZnJlZSBpbXBsZW1lbnRhdGlvbiBvZiBXaW5kb3dzIG9uCiBVbml4LiAgVGhpcyBpcyBzdGlsbCBhIGRldmVsb3BlcnMgb25seSByZWxlYXNlLiAgVGhlcmUgYXJlIG1hbnkgYnVncwogYW5kIHVuaW1wbGVtZW50ZWQgZmVhdHVyZXMuICBNb3N0IGFwcGxpY2F0aW9ucyBzdGlsbCBkbyBub3Qgd29yawogY29ycmVjdGx5LgogCi1XSEFUJ1MgTkVXIHdpdGggV2luZS0yMDA0MDYxNTogKHNlZSBDaGFuZ2VMb2cgZm9yIGRldGFpbHMpCi0gICAgICAgIC0gTWFqb3Igd2luZWRiZyByZXdyaXRlIHVzaW5nIHRoZSBkYmdoZWxwIGRsbC4KLSAgICAgICAgLSBOZXcgV2luZSBwcmVsb2FkZXIgdG8gcmVzZXJ2ZSBtZW1vcnkgYXJlYXMgYXQgc3RhcnR1cC4KLSAgICAgICAgLSBNYW55IGltcHJvdmVtZW50cyB0byB0aGUgYXVkaW8gc3VwcG9ydC4KK1dIQVQnUyBORVcgd2l0aCBXaW5lLTIwMDQwNzE2OiAoc2VlIENoYW5nZUxvZyBmb3IgZGV0YWlscykKKyAgICAgICAgLSBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgTWljcm9zb2Z0IEluc3RhbGxlciBkbGwuCisgICAgICAgIC0gQmVnaW5uaW5ncyBvZiBwcm9wZXIgaW50ZXItcHJvY2VzcyB3aW5kb3cgcmVwYWludHMuCisgICAgICAgIC0gU2V2ZXJhbCBEaXJlY3RTb3VuZCBpbXByb3ZlbWVudHMuCisgICAgICAgIC0gRml4ZXMgZm9yIHRoZSByZWdyZXNzaW9ucyBjYXVzZWQgYnkgdGhlIG5ldyBmaWxlc3lzdGVtIHN1cHBvcnQuCiAgICAgICAgIC0gTG90cyBvZiBidWcgZml4ZXMuCiAKIFNlZSB0aGUgUkVBRE1FIGZpbGUgaW4gdGhlIGRpc3RyaWJ1dGlvbiBmb3IgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucy4KQEAgLTE1LDggKzE2LDggQEAKIHRoZSByZWxlYXNlIGlzIGF2YWlsYWJsZSBhdCB0aGUgZnRwIHNpdGVzLiAgVGhlIHNvdXJjZXMgd2lsbCBiZSBhdmFpbGFibGUKIGZyb20gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6CiAKLSAgaHR0cDovL3d3dy5pYmlibGlvLm9yZy9wdWIvTGludXgvQUxQSEEvd2luZS9kZXZlbG9wbWVudC9XaW5lLTIwMDQwNjE1LnRhci5negotICBodHRwOi8vcHJkb3dubG9hZHMuc291cmNlZm9yZ2UubmV0L3dpbmUvV2luZS0yMDA0MDYxNS50YXIuZ3oKKyAgaHR0cDovL3d3dy5pYmlibGlvLm9yZy9wdWIvTGludXgvQUxQSEEvd2luZS9kZXZlbG9wbWVudC9XaW5lLTIwMDQwNzE2LnRhci5negorICBodHRwOi8vcHJkb3dubG9hZHMuc291cmNlZm9yZ2UubmV0L3dpbmUvV2luZS0yMDA0MDcxNi50YXIuZ3oKIAogSXQgc2hvdWxkIGFsc28gYmUgYXZhaWxhYmxlIGZyb20gYW55IG90aGVyIHNpdGUgdGhhdCBtaXJyb3JzIGliaWJsaW8ub3JnLgogVGhlc2UgbG9jYXRpb25zIGFsc28gaG9sZCBwcmUtYnVpbHQgZG9jdW1lbnRhdGlvbiBwYWNrYWdlcyBpbiB2YXJpb3VzCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggNGFlMjJlZi4uMjU4M2FkNCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSw0ICsxLDEzMzkgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIwMDQtMDctMTYgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvc2hsd2FwaS9vcmRpbmFsLmMsIGRsbHMvc2hsd2FwaS9zaGx3YXBpLnNwZWM6CisJSW1wbGVtZW50ZWQgR2V0VUlWZXJzaW9uIChiYXNlZCBvbiBhIHBhdGNoIGJ5IFN0ZWZhbiBMZWljaHRlcikuCisKKwkqIGRsbHMvZHNvdW5kL3Rlc3RzL2Rzb3VuZC5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCURvbid0IHRyeSB0byBjcmVhdGUgYSBJRGlyZWN0U291bmQzREJ1ZmZlciwgcGFydGx5IHRvIGtlZXAgdGhpcyB0ZXN0CisJc2ltcGxlIGFuZCBwYXJ0bHkgYmVjYXVzZSBpdCdzIGdvaW5nIHRvIGZhaWwgc2luY2Ugd2UgZGlkIG5vdCByZXF1ZXN0CisJRFNCQ0FQU19DVFJMM0QuIEZpeGVzIGEgY3Jhc2ggb24gV2luZG93cy4KKwlEb24ndCByZXF1ZXN0IHVubmVlZGVkIGNhcHMuCisKKwkqIGRsbHMva2VybmVsL2xvY2FsZS5jOiBTaGFjaGFyIFNoZW1lc2ggPHdpbmUtcGF0Y2hlc0BzaGVtZXNoLmJpej4KKwlTeXN0ZW0gZGVmYXVsdCBsb2NhbGUgaW4gV2luZG93cyBkZXRlcm1pbmVzIHRoZSBBTlNJIGVuY29kaW5nCisJKExDX0NUWVBFIG9uIFVuaXgpLgorCisJKiBkbGxzL2NvbW1kbGcvcHJpbnRkbGcuYzogSmFtZXMgSGF3a2lucyA8dHJ1aWtlbkBnbWFpbC5jb20+CisJRml4ZWQgY29sbGF0ZSBpY29uIGJlaGF2aW9yLgorCisJKiBkbGxzL2Rzb3VuZC90ZXN0cy9kc291bmQuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlHZXQgYW5kIHByaW50IHRoZSBEaXJlY3RTb3VuZCBwcmltYXJ5IGJ1ZmZlciB2b2x1bWUuCisKKwkqIGRsbHMvZHNvdW5kL3Rlc3RzL2RzM2QuYywgZGxscy9kc291bmQvdGVzdHMvZHNvdW5kX3Rlc3QuaDoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUtlZXAgdHJhY2sgb2YgaG93IG11Y2ggaGFzIGJlZW4gcGxheWVkIGFuZCBnZXQgcmlkIG9mIGxhc3RfcG9zLiBUaGlzCisJZml4ZXMgYSBidWcgd2hlcmUgYnVmZmVyX3NlcnZpY2UoKSB3b3VsZCBub3QgZGV0ZWN0IHRoYXQgZXZlcnl0aGluZworCWhhZCBiZWVuIHBsYXllZC4KKwlDaGVjayB0aGF0IHRoZSBhY3R1YWwgc291bmQgZHVyYXRpb24gd2FzIHdpdGhpbiAxMCUgb2YgdGhlIGV4cGVjdGVkCisJdmFsdWUuCisJTWFrZSBCVUZGRVJfTEVOIGFuZCBUSU1FX1NMSUNFIGluZGVwZW5kZW50LCBtYWtlIHN1cmUgVElNRV9TTElDRSBkb2VzCisJbm90IGRpdmlkZSBCVUZGRVJfTEVOIHRvIHNwaWNlIHRoaW5ncyB1cCBhIGJpdC4KKworCSogZGxscy91c2VyL3Rlc3RzL2RpYWxvZy5jOgorCUtyaXNobmEgTXVydGh5IDxLcmlzaG5hLk11cnRoeUBndXB0YXdvcmxkd2lkZS5jb20+CisJQWRkZWQgcmVncmVzc2lvbiB0ZXN0IGZvciBXTV9ORVhURExHQ1RMIGFuZCBkZWZhdWx0IGJ1dHRvbiBJRAorCWJlaGF2aW9yLgorCisJKiBtaXNjL3JlZ2lzdHJ5LmM6IEtldmluIEtvbHR6YXUgPGtldmluQHBsb3Aub3JnPgorCVByZXZlbnQgZ2FyYmFnZSBiZWluZyBwYXNzZWQgZm9yIHdpbmRvd3MgZGlyZWN0b3J5LgorCisJKiBkbGxzL2Rzb3VuZC90ZXN0cy9kc291bmQuYzogRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlDYWxsIElEaXJlY3RTb3VuZDo6SW5pdGlhbGl6ZSgpIGFzIHBlciBNU0ROIGJlZm9yZSB1c2luZyB0aGUKKwlEaXJlY3RTb3VuZCBvYmplY3QuIEZpeGVzIGEgY3Jhc2ggb24gV2luZG93cy4KKworCSogZGxscy9kc291bmQvdGVzdHMvZHMzZC5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCU9uIFdpbmRvd3MgR2V0UGFuKCkgbWF5IG5vdCByZXR1cm4gdGhlIHZhbHVlIHRoYXQgd2FzIGp1c3Qgc2V0IHdpdGgKKwlTZXRQYW4oKS4KKworCSogZGxscy9tc2h0bWwvbWFpbi5jLCBkbGxzL21zaHRtbC9tc2h0bWwuc3BlYzoKKwlTdGVmYW4gTGVpY2h0ZXIgPFN0ZWZhbi5MZWljaHRlckBjYW1MaW5lLmNvbT4KKwlBZGRlZCBzdHVicyBmb3IgRGxsSW5zdGFsbCBhbmQgRGxsUmVnaXN0ZXJTZXJ2ZXIuCisKKwkqIGRsbHMvY29tY3RsMzIvdG9vbGJhci5jOiBGaWxpcCBOYXZhcmEgPHhuYXZhcmFAdm9sbnkuY3o+CisJTWFrZSB0aGUgcGF0dGVybiBkcmF3aW5nIGluIFRPT0xCQVJfRHJhd1BhdHRlcm4gbG9vayBiZXR0ZXIuCisKKwkqIGRsbHMvbXNybGUzMi9tc3JsZTMyLmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUZpeGVkIGx2YWx1ZSBjYXN0cyBmb3IgbmV3IGNvbXBpbGVyLgorCisJKiBkbGxzL2FkdmFwaTMyL2NyeXB0LmM6CisJRml4ZWQgc29tZSBkdXBsaWNhdGUgQ1JZUFRfRnJlZSBjYWxscyAoc3BvdHRlZCBieSBNaWNoYWVsIEp1bmcpLgorCisJKiBpbmNsdWRlL3dpbmNyeXB0Lmg6IE1pY2hhZWwgSnVuZyA8bWp1bmdAaXNzLnR1LWRhcm1zdGFkdC5kZT4KKwlBZGRlZCBQUk9WX0VOVU1BTEdTW19FWF0gc3RydWN0cyBhbmQgdHlwZWRlZnMuCisJQWRkZWQgc29tZSBkZWZpbmVzLgorCisJKiBkbGxzL21zaS9hY3Rpb24uYywgZGxscy93aW5pbmV0L2h0dHAuYywgaW5jbHVkZS9tbXN5c3RlbS5oOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUFzc29ydGVkIHNwZWxsaW5nIGZpeGVzLgorCisJKiB0b29scy9tYWtlX2N0ZXN0cywgdG9vbHMvd2luYXBpL21zdmNtYWtlcjoKKwlGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUZpeCBtc3ZjbWFrZXIgc28gdGhlIGdlbmVyYXRlZCB0ZXN0bGlzdC5jIGZpbGVzIGluY2x1ZGUgc3RkYXJnLmguCisJQWRkIGNvbW1lbnRzIHBvaW50aW5nIG91dCB0aGUgcmVsYXRpb24gYmV0d2VlbiBtc3ZjbWFrZXIgYW5kCisJbWFrZV9jdGVzdHMuCisKKwkqIGRsbHMvY29tbWRsZy9wcmludGRsZy5jOiBKYW1lcyBIYXdraW5zIDx0cnVpa2VuQGdtYWlsLmNvbT4KKwlDaGVjayBmb3IgZW1wdHkgUHJpbnRlck5hbWUgaW4gUFJJTlRETEdfV01Db21tYW5kVy4KKworCSogZGxscy9zaGVsbDMyL3NobHZpZXcuYzogTWFydGluIEZ1Y2hzIDxtYXJ0aW4tZnVjaHNAZ214Lm5ldD4KKwlEaXN0aW5ndWlzaCBiZXR3ZWVuIE9wZW4gYW5kIEV4cGxvcmUgY29tbWFuZHMuCisJRXhlY3V0ZSBpdGVtcyBieSBkZWZhdWx0LgorCisJKiBkbGxzL2tlcm5lbC9wcm9jZXNzLmMsIGluY2x1ZGUvd2luZS9zZXJ2ZXJfcHJvdG9jb2wuaCwKKwkgIHNlcnZlci9wcm90b2NvbC5kZWYsIHNlcnZlci90cmFjZS5jOgorCVBhc3MgdGhlIGVudmlyb25tZW50IGZvciBhIGNoaWxkIHByb2Nlc3MgdGhyb3VnaCB0aGUgc2VydmVyIGluc3RlYWQgb2YKKwlyZWx5aW5nIG9uIHRoZSBVbml4IGVudmlyb25tZW50LgorCisJKiB0b29scy93aW5lLmluZjoKKwlTcGVjaWZ5IHRoZSBQQVRIIHZhcmlhYmxlIGluIHVwcGVyY2FzZSB0byBhdm9pZCBnZXR0aW5nIHR3byBmbGF2b3JzIG9mCisJUEFUSCB3aGVuIGNvbnZlcnRpbmcgdGhlIFVuaXggZW52aXJvbm1lbnQuCisKKwkqIGRsbHMvbXN2Y3J0L3Byb2Nlc3MuYzogSW1wbGVtZW50ZWQgX3NwYXdubGUgYW5kIF9zcGF3bmxwZS4KKworCSogdG9vbHMvd2luZXdyYXBwZXI6CisJSW52b2tlIHdpbmVwcmVmaXhjcmVhdGUgaWYgdGhlIC53aW5lIGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdC4KKworCSogZGxscy9rZXJuZWwvcHJvZmlsZS5jOgorCVN1cHBvcnQgZm9yIGxhcmdlIHByb2ZpbGUgdmFsdWVzIChiYXNlZCBvbiBhIHBhdGNoIGJ5IFJvYmVydAorCVNoZWFybWFuKS4KKwlGaXhlZCBQUk9GSUxFX0ZsdXNoRmlsZSB0byBjb3JyZWN0bHkgdHJ1bmNhdGUgdGhlIGZpbGUgYmVmb3JlIHNhdmluZworCWl0LgorCisJKiBwcm9ncmFtcy93aW5lZGJnL3dpbmVkYmcuYzogUGllcnJlIGQnSGVyYmVtb250IDxzdGVnZWZpbkBmcmVlLmZyPgorCURlZmluZSB0aGUgYmFja2VuZF9jcHUgcmVnYXJkaW5nIHRoZSBob3N0IHByb2Nlc3Nvci4KKworCSogZGxscy9zaGx3YXBpL29yZGluYWwuYywgZGxscy9zaGx3YXBpL3Rlc3RzL29yZGluYWwuYzoKKwlTdGVmYW4gTGVpY2h0ZXIgPFN0ZWZhbi5MZWljaHRlckBjYW1MaW5lLmNvbT4KKwlSZW1vdmVkIHRoZSBjcm9zc2NhbGxzICh1bmljb2RlIHRvIGFzY2lpKSBmcm9tIEdldEFjY2VwdExhbmd1YWdlc1cuCisJUmVtb3ZlZCB0b2RvX3dpbmUgZnJvbSBHZXRBY2NlcHRMYW5ndWFnZXNBIHRlc3RzLgorCisJKiBkbGxzL2NvbWN0bDMyL3RhYi5jOiBKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCURvbid0IGNyYXNoIG9uIE5VTEwgdGFiIHRleHQuCisKKzIwMDQtMDctMTUgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIHByb2dyYW1zL3dpbmVjb25zb2xlL2N1cnNlcy5jOgorCU1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUZpeGVkIG9uZSBsdmFsdWUgY2FzdGVkIGFzc2lnbm1lbnQgZm9yIHRoZSBuZXcgY29tcGlsZXIuCisKKwkqIGRsbHMvc2hsd2FwaS9tc2dib3guYzogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJRG8gbm90IGFzc2lnbiB0byBjYXN0ZWQgdmFsdWVzLgorCisJKiBkbGxzL29sZTMyL2NvbXBvYmouYywgZGxscy9vbGUzMi9ycGMuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJRml4IGEgZmV3IHNlcmlvdXMgcmFjZSBjb25kaXRpb25zIGluIHRoZSBPTEUgb2JqZWN0IHBpcGUgc2VydmVyLgorCisJKiBkbGxzL2tlcm5lbC9wcm9jZXNzLmMsIGRsbHMvbnRkbGwvbG9hZGVyLmMsIGRsbHMvbnRkbGwvbG9hZG9yZGVyLmMsCisJICBkbGxzL250ZGxsL250ZGxsLnNwZWMsIGRsbHMvbnRkbGwvbnRkbGxfbWlzYy5oOgorCVNldCB0aGUgc3lzdGVtIGRpcmVjdG9yeSBpbiBudGRsbCBhcyBzb29uIGFzIHdlIGhhdmUgZGV0ZXJtaW5lZCBpdC4KKworCSogZGxscy93aW4zMnMvdzMyc2tlcm5lbC5jOgorCURvbid0IGdldCBzeXN0ZW0gZGlyZWN0b3J5IGZyb20gdGhlIGVudmlyb25tZW50LCB1c2UKKwlHZXRTeXN0ZW1EaXJlY3RvcnkgaW5zdGVhZC4KKworCSogc2VydmVyL25hbWVkX3BpcGUuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUZpeCBhIGRvdWJsZSBmcmVlIGluIHRoZSBuYW1lZCBwaXBlIGNvZGUuCisKKwkqIGRsbHMvYWR2YXBpMzIvY3J5cHQuYzogTWljaGFlbCBKdW5nIDxtanVuZ0Bpc3MudHUtZGFybXN0YWR0LmRlPgorCVVzZSBSZWdRdWVyeVZhbHVlRXhBIGluc3RlYWQgb2YgUmVnUXVlcnlWYWx1ZUEgaW4KKwlDcnlwdEVudW1Qcm92aWRlclR5cGVzLgorCisJKiB0b29scy93aW5lYnVpbGQvc3BlYzMyLmM6IFBpZXJyZSBkJ0hlcmJlbW9udCA8c3RlZ2VmaW5AZnJlZS5mcj4KKwlEYXJ3aW4vTWFjIE9TIFggV2VhayBpbXBvcnQgd29ya2Fyb3VuZC4KKworCSogdG9vbHMvd2luZWJ1aWxkL2ltcG9ydC5jOiBQaWVycmUgZCdIZXJiZW1vbnQgPHN0ZWdlZmluQGZyZWUuZnI+CisJLSBCZSBtb3JlIGFjY3VyYXRlIG9uIERhcndpbiBzdGFjayBzaXplLgorCS0gRGVsYXkgaW1wb3J0IGZpeCBvbiBQb3dlclBDIGhvc3RzLgorCisJKiBkbGxzL3dpbmluZXQvaHR0cC5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCS0gQ2hhbmdlIHRoZSB3YXkgdGhhdCB0aGUgcmVzcG9uc2UgaGVhZGVycyBhcmUgcmVjb25zdHJ1Y3RlZCB0byByZWR1Y2UKKwkgIHRoZSBjaGFuY2Ugb2YgbWVtb3J5IGJlaW5nIGluY29ycmVjdGx5IGFsbG9jYXRlZC4KKwktIFJldHVybiB0aGUgY29ycmVjdCBlcnJvciB3aGVuIGEgaGVhZGVyIGlzIG5vdCBmb3VuZC4KKwktIHJlbW92ZSBhbGwgdGhlIHJlc3BvbnNlIGhlYWRlcnMgYmVmb3JlIHJlY2VpdmluZyBuZXcgb25lcyBzbyB0aGF0IHdlCisJICBkb24ndCBtZXJnZSBoZWFkZXJzIGZyb20gdHdvIHJlc3BvbnNlcy4KKwktIEFkZCBleHRyYSBzdGFuZGFyZCBmaWVsZHMuCisJLSBTcGxpdCB0aGUgc3RhdHVzIGxpbmUgaW50byBodHRwIHZlcnNpb24sIHN0YXR1cyBjb2RlIGFuZCBzdGF0dXMgdGV4dAorCSAgYW5kIHN0b3JlIHRob3NlIGluIHRoZSByZXNwb25zZSBkYXRhLCB3aXRob3V0IHVzaW5nIHVzZSBhIGZha2UKKwkgIGZpZWxkLgorCisyMDA0LTA3LTE0ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL2NvbW1kbGcvZmlsZWRsZy5jOgorCUtyaXNobmEgTXVydGh5IDxLcmlzaG5hLk11cnRoeUBndXB0YXdvcmxkd2lkZS5jb20+CisJQWRkIHRoZSBzZWxlY3RlZCBleHRlbnNpb24gZnJvbSBmaWxlIHR5cGUgZmlsdGVyIGlmIGZpbGUgbmFtZSBkb2VzIG5vdAorCWNvbnRhaW4gdGhlIGZpbGUgZXh0ZW5zaW9uLgorCisJKiBkbGxzL3VzZXIvZGRlL2NsaWVudC5jOiBFcmljIEZyaWFzIDxlZnJpYXNAc3luY2FkLmNvbT4KKwlGaXhlZCBtZW1vcnkgYWxsb2NhdGlvbiBidWcuCisKKwkqIGRsbHMvd2lubW0vd2luZW9zcy9hdWRpby5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAZnJlZS5mcj4KKwlBbiBTTkRDVExfRFNQX1NFVERVUExFWCBmYWlsdXJlIHNob3VsZCBiZSBhIFdBUk4oKSwgbm90IGFuIEVSUigpLAorCXNpbmNlIHRoZSBPU1Mgc3BlY2lmaWNhdGlvbnMgc2F5IHdlIGhhdmUgdG8gY2FsbCBpdCBiZWZvcmUga25vd2luZyBpZgorCXRoZSBzb3VuZCBjYXJkIGlzIGZ1bGwtZHVwbGV4IGNhcGFibGUuCisKKwkqIGluY2x1ZGUvd2lucmVnLmg6IE1pY2hhZWwgSnVuZyA8bWp1bmdAaXNzLnR1LWRhcm1zdGFkdC5kZT4KKwlBZGRlZCBSZWdPcGVuQ3VycmVudFVzZXIgcHJvdG90eXBlLgorCisJKiBkbGxzL250ZGxsL3ZlcnNpb24uYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZXBvcnQgd2luMmsgc2VydmljZSBwYWNrIDQgaW5zdGVhZCBvZiAzLgorCisJKiBkbGxzL21zaS9wYWNrYWdlLmM6IEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50IHRoZSBmdW5jdGlvbmFsaXR5IHRoYXQgYWxsb3dzIG9uZSB0byBjYWxsIE1zaU9wZW5QYWNrYWdlCisJd2l0aCAjbm5uIHdoZXJlIG5ubiBpcyBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGhhbmRsZSB0byBhbiBvcGVuCisJZGF0YWJhc2UuCisKKwkqIHRvb2xzL3dpbmUuaW5mOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCVVuY29tbWVudCBpbXBsZW1lbnRlZCBpbiBXaW5lIG1zdmlkYzMyIChNU1ZDL0NSQU0pIGNvZGVjLgorCisJKiBkbGxzL3dpbm1tL21jaWF2aS9tY2lhdmkuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlNYWtlIGl0IHBvc3NpYmxlIHRvIG9wZW4gcmVhZC1vbmx5IEFWSSBmaWxlcyBmb3IgYSBwbGF5YmFjay4KKworCSogZGxscy9tc2kvdmVyc2lvbi5yYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlVcGRhdGUgdGhlIE1TSSB2ZXJzaW9uIHRvIGJlIHRoZSBzYW1lIGFzIG9uIHdpbjJrLgorCisJKiBkbGxzL2dkaS9mcmVldHlwZS5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUZpeCBmb250IHJlcGxhY2VtZW50cyB0byB3b3JrIHdpdGggYml0bWFwIGZvbnRzLgorCUVudW1lcmF0ZSBTeXN0ZW0sIFRlcm1pbmFsLCBGaXhlZFN5cyBpbiB0aGF0IG9yZGVyLgorCisJKiB0b29scy93aW5lYnVpbGQvaW1wb3J0LmM6IFBpZXJyZSBkJ0hlcmJlbW9udCA8c3RlZ2VmaW5AZnJlZS5mcj4KKwlEZWxheWVkIGltcG9ydCBmaXggZm9yIERhcndpbiBhbmQgUG93ZXJQQyBIb3N0LgorCisJKiBkbGxzL3VzZXIvdGVzdHMvY2xhc3MuYywgZGxscy91c2VyL3Rlc3RzL3Jlc291cmNlLnJjOgorCVNhbWkgQWFyaW8gPHNhbWkuYWFyaW9Ac3VyZmV1LmZpPgorCUFkZGVkIHRlc3RzIGZvciByZWdpc3RlcmluZyBhIGRpYWxvZyBib3ggY3JlYXRlZCBieSB1c2luZyB0aGUgQ0xBU1MKKwlkaXJlY3RpdmUgaW4gYSByZXNvdXJjZSBmaWxlLCB0aGVuIGNyZWF0aW5nIHRoZSBkaWFsb2cgdXNpbmcKKwlDcmVhdGVEaWFsb2dQYXJhbS4KKworCSogZGxscy91c2VyL2NvbnRyb2xzLmgsIGRsbHMvdXNlci9kaWFsb2cxNi5jLCB3aW5kb3dzL2RlZmRsZy5jLAorCSAgd2luZG93cy9kaWFsb2cuYzoKKwlBbGxvY2F0ZSB0aGUgZGlhbG9nIGluZm8gaW4gRElBTE9HX0NyZWF0ZUluZGlyZWN0IGlmIHRoaXMgd2Fzbid0CisJYWxyZWFkeSBkb25lIGJ5IHRoZSBkaWFsb2cgcHJvY2VkdXJlLgorCisJKiBkbGxzL2RiZ2hlbHAvc3RhYnMuYzogSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlQcmV2ZW50IHRoZSBkZWJ1ZyBidWZmZXIgZnJvbSBvdmVyZmxvd2luZyBvbiBsb25nIHN0YWJzLgorCisJKiBkbGxzL2RiZ2hlbHAvc3RhYnMuYzogRml4ZWQgaGFuZGxpbmcgb2YgaW5jbHVkZXMgc3RhY2suCisKKwkqIGRsbHMvY29tbWRsZy9NYWtlZmlsZS5pbiwgZGxscy9jb21tZGxnL2ZpbGVkbGcuYywKKwkgIGRsbHMvY29tbWRsZy9maWxlZGxnMTYuYywgZGxscy9jb21tZGxnL2ZpbGVkbGczMS5jLAorCSAgZGxscy9jb21tZGxnL2ZpbGVkbGczMS5oOgorCUdlIHZhbiBHZWxkb3JwIDxndmdAcmVhY3Rvcy5jb20+CisJRml4IDE2LzMyIGJpdCBzZXBhcmF0aW9uLgorCisyMDA0LTA3LTEzICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL29sZWRsZy9vbGVkbGdfRGUucmMsIGRsbHMvc2VyaWFsdWkvRGUucmMsCisJICBkbGxzL3dpbm1tL3dpbm1tX0RlLnJjLCBkbGxzL3dpbm1tL3dpbm1tX3Jlcy5yYywKKwkgIHByb2dyYW1zL2NtZGxndHN0L0RlLnJjLCBwcm9ncmFtcy9jbWRsZ3RzdC9jbWRsZ3IucmMsCisJICBwcm9ncmFtcy9zdGFydC9EZS5yYywgcHJvZ3JhbXMvc3RhcnQvcnNyYy5yYywgcHJvZ3JhbXMvdmlldy9EZS5yYywKKwkgIHByb2dyYW1zL3ZpZXcvdmlld3JjLnJjOgorCUhlbm5pbmcgR2VyaGFyZHQgPGhlbm5pbmcuZ2VyaGFyZHRAd2ViLmRlPgorCU1vcmUgR2VybWFuIHRyYW5zbGF0aW9ucy4KKworCSogZGxscy9kc291bmQvYnVmZmVyLmMsIGRsbHMvZHNvdW5kL2Rzb3VuZC5jLAorCSAgZGxscy9kc291bmQvZHNvdW5kX3ByaXZhdGUuaCwgZGxscy9kc291bmQvcHJpbWFyeS5jLAorCSAgZGxscy9kc291bmQvcHJvcHNldC5jLCBkbGxzL2Rzb3VuZC9zb3VuZDNkLmMsCisJICBkbGxzL2Rzb3VuZC90ZXN0cy9kc291bmQuYzoKKwlSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCVJlbW92ZSBEaXJlY3RTb3VuZCByZWZlcmVuY2UgY291bnRzIGJ5IGJ1ZmZlcnMgYW5kIGFkZCBEZXN0cm95CisJZnVuY3Rpb25zIHRvIGJ1ZmZlciBjb21wb25lbnRzIGFuZCBEaXJlY3RTb3VuZCB0byBhbGxvdyBwcm9wZXIKKwlkZXN0cnVjdGlvbiBldmVuIHdpdGggb3V0c3RhbmRpbmcgcmVmZXJlbmNlcy4KKwlSZW1vdmUgdHJhaWxpbmcgd2hpdGUgc3BhY2UuCisJQWRkIHRlc3RzIGZvciBwcm9wZXIgcmVsZWFzZSBldmVuIHdpdGggYWN0aXZlIGJ1ZmZlcnMuCisKKwkqIGRsbHMvd2luaW5ldC9odHRwLmM6IFJvYmVydCBTaGVhcm1hbiA8cm9iQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBY2NlcHQgaGVhZGVycyB3aXRob3V0IFxyXG4gZW5kaW5nIGluIEh0dHBBZGRSZXF1ZXN0SGVhZGVycy4KKworCSogZGxscy9hZHZhcGkzMi9jcnlwdC5jLCBkbGxzL2FkdmFwaTMyL2NyeXB0Lmg6CisJTWljaGFlbCBKdW5nIDxtanVuZ0Bpc3MudHUtZGFybXN0YWR0LmRlPgorCVJlZmVyZW5jZSBjb3VudGluZyBmb3IgQ1JZUFRQUk9WIG9iamVjdHMuCisJSW1wbGVtZW50ZWQgQ3J5cHRDb250ZXh0QWRkUmVmLgorCisJKiBkbGxzL2tlcm5lbC92b2x1bWUuYzogUmVpbiBLbGF6ZXMgPHJrbGF6ZXNAeHM0YWxsLm5sPgorCUluIEdldFZvbHVtZUluZm9ybWF0aW9uVyBoYW5kbGUgdGhlIGNhc2Ugd2hlbiB0aGVyZSBhcmUgbm8gcGVybWlzc2lvbnMKKwlhY2Nlc3NpbmcgdGhlIGRldmljZSB0aGUgc2FtZSB3YXkgYXMgd2hlbiBubyBkZXZpY2UgaXMgZm91bmQuCisKKwkqIGRsbHMvYWR2YXBpMzIvcmVnaXN0cnkuYzogSmFtZXMgSGF3a2lucyA8dHJ1aWtlbkBnbWFpbC5jb20+CisJQWRkZWQgYW5kIGNsZWFuZWQgQVBJIGRvY3MuCisKKwkqIGRsbHMvZ2RpL2RyaXZlci5jLCBkbGxzL3VzZXIvdXNlcl9tYWluLmM6CisJQWxsb3cgc3BlY2lmeWluZyBtdWx0aXBsZSBncmFwaGljcyBkcml2ZXJzIGFuZCB1c2UgdGhlIGZpcnN0IG9uZSB0aGF0CisJbG9hZHMgc3VjY2Vzc2Z1bGx5LgorCisJKiBkbGxzL3gxMWRydi9iaXRtYXAuYywgZGxscy94MTFkcnYvaW5pdC5jLCBkbGxzL3gxMWRydi94MTFkcnYuaCwKKwkgIGRsbHMveDExZHJ2L3gxMWRydl9tYWluLmM6CisJTWFrZSB4MTFkcnYgZmFpbCB0byBsb2FkIHdoZW4gaXQgY2FuJ3Qgb3BlbiB0aGUgZGlzcGxheSwgaW5zdGVhZCBvZgorCWtpbGxpbmcgdGhlIHdob2xlIHByb2Nlc3MuCisKKwkqIHRvb2xzL3dpbmVkdW1wL25lLmM6CisJQWRkZWQgc3VwcG9ydCBmb3IgZHVtcGluZyBleHBvcnRlZCBlbnRyeSBwb2ludHMgaW4gTkUgbW9kdWxlcy4KKworCSogZGxscy9NYWtlZmlsZS5pbiwgZGxscy90d2Fpbi8uY3ZzaWdub3JlLCBkbGxzL3R3YWluL01ha2VmaWxlLmluLAorCSAgZGxscy90d2Fpbi90d2Fpbi5zcGVjLCBkbGxzL3R3YWluL3R3YWluMTZfbWFpbi5jOgorCU1pa2UgSGVhcm4gPG1oQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgYSAxNiBiaXQgcGFpciBETEwgZm9yIFRXQUlOLgorCisyMDA0LTA3LTEyICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBjb250cm9scy9jb21iby5jLCB3aW5kb3dzL25vbmNsaWVudC5jOgorCU1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUZpeGVkIHN3aXRjaCAodW5zaWduZWQgaW50KSB7IGNhc2UgLTEgLyAtMjogfSBwcm9ibGVtcy4KKworCSogZGxscy9tc3ZjcnQvdGVzdHMvaGVhZGVycy5jOiBQaWVycmUgZCdIZXJiZW1vbnQgPHN0ZWdlZmluQGZyZWUuZnI+CisJRG9uJ3QgdGVzdCBpMzg2IHR5cGVzIG9uIG5vbiBpMzg2LgorCisJKiBkbGxzL3VybG1vbi91bW9uLmMsIGRsbHMvdXJsbW9uL3VybG1vbi5zcGVjOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGRlZCBhIGZldyBzdHViIGltcGxlbWVudGF0aW9ucy4KKworCSogZGxscy9jb21jdGwzMi9wcm9wc2hlZXQuYzogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudGVkIFBTTV9IV05EVE9JTkRFWC4KKworCSogZGxscy9hZHZhcGkzMi9hZHZhcGkuYywgZGxscy9hZHZhcGkzMi9jcnlwdC5jLAorCSAgZGxscy9hZHZhcGkzMi9ldmVudGxvZy5jOgorCUphbWVzIEhhd2tpbnMgPHRydWlrZW5AZ21haWwuY29tPgorCUFkZGVkIHNvbWUgbW9yZSBBUEkgZG9jcy4KKworCSogZGxscy9tc2kvY29uZC55OiBBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCVByb3Blcmx5IGhhbmRsZSBxdW90ZWQgbnVtYmVyIGxpdGVyYWxzIGluIE1TSSBjb25kaXRpb24gc3RhdGVtZW50cy4KKworCSogZGxscy9jb21jdGwzMi9wcm9wc2hlZXQuYzogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzdHVicyBmb3Igc29tZSBuZXcgcHJvcGVydHkgc2hlZXQgbWVzc2FnZXMuCisKKwkqIGRsbHMvdXNlci90ZXN0cy9yZXNvdXJjZS5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJQWRkIGEgcmVncmVzc2lvbiB0ZXN0IGZvciBhY2NlbGVyYXRvcnMuCisKKwkqIGRsbHMvdXNlci9yZXNvdXJjZS5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJLSBXaW5kb3dzIGFsd2F5cyBzdHJpcHMgdGhlIGhpZ2ggYml0ICgweDgwKSBvZiB0aGUgZlZpcnQgbWVtYmVyIGluIHRoZQorCSAgYWNjZWxlcmF0b3Igc3RydWN0dXJlLgorCS0gSWYgdGhlIEZWSVJUS0VZIGJpdCBvZiBmVmlydCBpcyBzZXQsIHRoZSB2YWx1ZSBvZiB0aGUga2V5IGZpZWxkIGlzCisJICBsaW1pdGVkIHRvIHRoZSByYW5nZSBvZiBvbmUgYnl0ZS4KKwktIFJlbW92ZSBhbm5veWluZyBmaXhtZXMgYWJvdXQgYWNjZWxlcmF0b3IgdGFibGUgY2hlY2tpbmcuICBXaW5kb3dzCisJICBhcHBlYXJzIHRvIGRvIG5vIG1vcmUgY2hlY2tpbmcgdGhhbiB0aGUgYWJvdmUuCisKKwkqIGRsbHMvbXNybGUzMi9tc3JsZV9KYS5yYywgZGxscy9tc3JsZTMyL3JzcmMucmMsIGRsbHMvd2luaW5ldC9yc3JjLnJjLAorCSAgZGxscy93aW5pbmV0L3dpbmluZXRfSmEucmMsIHByb2dyYW1zL3JlZ2VkaXQvSmEucmMsCisJICBwcm9ncmFtcy93Y21kL0phLnJjLCBwcm9ncmFtcy93Y21kL3djbWRyYy5yYzoKKwlIYWppbWUgU2VnYXdhIDx3aW5ldGlwc0BzaWRlbmV0LmRkby5qcD4KKwlBZGRlZCBKYXBhbmVzZSB0cmFuc2xhdGlvbiBmb3IgbXNybGUzMiwgd2luaW5ldCwgd2NtZC4KKwlGaXhlZCB1bnRyYW5zbGF0ZWQgbWVzc2FnZXMgb2YgcmVnZWRpdC4KKworCSogZGxscy9zaGVsbDMyL3NoZWxsMzJfRW4ucmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX0VzLnJjLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfRnIucmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX0l0LnJjLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfUHQucmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX1VrLnJjLAorCSAgZGxscy9zaGVsbDMyL3NocmVzLnJjOgorCUpvc+kgTWFudWVsIEZlcnJlciBPcnRpeiA8am1mbzE5ODJAeWFob28uZXM+CisJVXBkYXRlZCB0aGUgU3BhbmlzaCBzaGVsbDMyIHRyYW5zbGF0aW9uIGFuZCBtYWRlIHNvbWUgY29ycmVjdGlvbnMgdG8KKwlvdGhlciBsYW5ndWFnZSBmaWxlcy4KKworCSogaW5jbHVkZS9wcnNodC5oOiBSb2JlcnQgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJQWRkIGRlZmluaXRpb25zIGZvciB2NS44MCBtZXNzYWdlcy4KKworCSogZGxscy9tc2kvYWN0aW9uLmM6IEhhbnMgTGVpZGVra2VyIDxoYW5zQGl0LnZ1Lm5sPgorCUZpeCBjb21tYW5kIGxpbmUgcGFyc2luZy4KKworCSogZGxscy91c2VyL3Jlc291cmNlLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwktIENvcHlBY2NlbGVyYXRvclRhYmxlIGNhbiBjYXVzZSBhIGJ1ZmZlciBvdmVyZmxvdyBiZWNhdXNlIGl0IHVzZXMgYW4KKwkgIGluY29ycmVjdCBjb21wYXJpc29uIGJldHdlZW4gdGhlIG51bWJlciBvZiBhY2NlbGVyYXRvciBlbnRyaWVzCisJICBhdmFpbGFibGUgYW5kIHRoZSBudW1iZXIgb2YgYWNjZWxlcmF0b3IgZW50cmllcyBpbiB0aGUgb3V0cHV0IGJ1ZmZlci4KKwktIE15IHRlc3RzIHNob3cgdGhhdCBDb3B5QWNjZWxlcmF0b3JUYWJsZSBhbHdheXMgc3RyaXBzIHRoZSBoaWdoIGJpdAorCSAgb2YgdGhlIGZWaXJ0IG1lbWJlciBvZiB0aGUgYWNjZWwgc3RydWN0LgorCS0gQ2FsbGluZyBEZXN0cm95QWNjZWxlcmF0b3JUYWJsZSB3aXRoIGEgTlVMTCBhY2NlbGVyYXRvciBzaG91bGQKKwkgIHJldHVybiBGQUxTRS4KKworCSogZGxscy9tcHIvbXByLnJjLCBkbGxzL21wci9tcHJfRGUucmMsIGRsbHMvbXNhY20vbXNhY20ucmMsCisJICBkbGxzL21zYWNtL21zYWNtX0RlLnJjLCBkbGxzL29sZWF1dDMyL29sZWF1dDMyX0RlLnJjLAorCSAgZGxscy9vbGVkbGcvb2xlZGxnX0RlLnJjLCBkbGxzL29sZWRsZy9yc3JjLnJjLCBkbGxzL3NlcmlhbHVpL0RlLnJjLAorCSAgZGxscy9zZXJpYWx1aS9zZXJpYWx1aV9yYy5yYywgZGxscy9zZXR1cGFwaS9EZS5yYywKKwkgIGRsbHMvc2V0dXBhcGkvc2V0dXBhcGkucmMsIGRsbHMvc2hsd2FwaS9zaGx3YXBpLnJjLAorCSAgZGxscy9zaGx3YXBpL3NobHdhcGlfRGUucmMsIGRsbHMvd2luaW5ldC9yc3JjLnJjLAorCSAgZGxscy93aW5pbmV0L3dpbmluZXRfRGUucmM6CisJSGVubmluZyBHZXJoYXJkdCA8aGVubmluZy5nZXJoYXJkdEB3ZWIuZGU+CisJVHJhbnNsYXRlZCBzb21lIEVuZ2xpc2ggcmVzb3VyY2UgZmlsZXMgaW50byBHZXJtYW4uCisKKwkqIGRsbHMvZG1sb2FkZXIvbG9hZGVyc3RyZWFtLmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUZpeGVkIChMUERJUkVDVE1VU0lDTE9BREVSOCkgY2FzdC4KKworCSogb2JqZWN0cy9yZWdpb24uYzogUm9iZXJ0IFNoZWFybWFuIDxyb2JAY29kZXdlYXZlcnMuY29tPgorCUZpeCBhIGZldyByZWdpb24gZGVidWcgbWVzc2FnZXMuCisKKwkqIGRsbHMvbXNpL21zaS5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJTWlub3Igc3BlbGxpbmcgZml4LgorCisJKiBkbGxzL3VzZXIvZXh0aWNvbi5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJU3RvcCBQcml2YXRlRXh0cmFjdEljb25zIGZyb20gY3Jhc2hpbmcgZ2l2ZW4gYW4gaW52YWxpZCBpY29uIGluZGV4LgorCisJKiBkbGxzL3dpbmVkb3MvaW50MjEuYzogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJUmVtb3ZlIGx2YWx1ZSBjYXN0cyB0aGF0IGFyZSBubyBsb25nZXIgc3VwcG9ydGVkLgorCisJKiBkbGxzL21zaS90YWJsZS5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJUmVtb3ZlIGEgcGllY2Ugb2YgZGVhZCBjb2RlIGNhdXNpbmcgYSB3YXJuaW5nLgorCisJKiBkbGxzL3NlY3VyMzIvc2VjdXIzMi5jLCBkbGxzL3NlY3VyMzIvc2VjdXIzMi5zcGVjOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgc3R1YiBpbXBsZW1lbnRhdGlvbiBmb3IgR2V0Q29tcHV0ZXJPYmplY3ROYW1lLgorCisJKiBpbmNsdWRlL01ha2VmaWxlLmluLCBpbmNsdWRlL3NlY2V4dC5oOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgc2VjZXh0LmguCisKKwkqIGRsbHMvc2hlbGwzMi9jb250cm9sLmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX21haW4uaCwKKwkgIGRsbHMvc2hlbGwzMi9zaGVsbG9sZS5jOgorCU1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUZpeGVkIGRvdWJsZSBhcHBsZXQgPSBhcHBsZXQgPSBhc3NpZ25tZW50LgorCVJlbW92ZWQgc2ljX2hkcGEgb25seSB1c2VkIGluIDEgQyBmaWxlIGFzIHN0YXRpYyB2YXIuCisJTWFrZSBWVF9TaGVsbF9JTWFsbG9jMzIgYW5kIHJlbGF0ZWQgdmFyaWFibGVzIHN0YXRpYy4KKworCSogZGxscy9vbGUzMi9yZWdzdnIuYzogTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJSUlEX0lPYmplY3RXaXRoU2l0ZSBpcyBhbHJlYWR5IGluIGxpYnV1aWQsIG5vIG5lZWQgdG8gZGVjbGFyZSBoZXJlLgorCisJKiBkbGxzL29sZTMyL2lmcy5jOiBNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlJTWFsbG9jIHZ0YWJsZXMgYXJlIHN0YXRpYy4KKworCSogZGxscy9kcGxheXgvZHBsYXkuYywgZGxscy9kcGxheXgvZHBsYXlfZ2xvYmFsLmg6CisJTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJTW92ZSBkZWZpbml0aW9ucyBvZiBzdGF0aWMgdnRhYmxlcyBmcm9tIGhlYWRlciB0byBkcGxheS5jLgorCisJKiBtaXNjL3JlZ2lzdHJ5LmM6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJQWRkIEhLRVlfRFlOX0RBVEFcQ29uZmlnIE1hbmFnZXJcRW51bSB0byByZWdpc3RyeS4KKworCSogcHJvZ3JhbXMvd2luZWRiZy9zdGFjay5jOiBFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwlGaXhlZCByZWdyZXNzaW9uIG9uICdidCA8dGlkPicgY29tbWFuZC4KKworCSogZGxscy9kZHJhdy9kM2RkZXZpY2UvbWVzYS5jOiBMaW9uZWwgVWxtZXIgPGxpb25lbC51bG1lckBmcmVlLmZyPgorCUJldHRlciBoYW5kbGUgdGhlIGZyYW1lLWJ1ZmZlciBsb2NraW5nIGNhc2UuCisKKwkqIGRsbHMvcHNhcGkvdGVzdHMvbW9kdWxlLmM6CisJU3RlZmFuIExlaWNodGVyIDxTdGVmYW4uTGVpY2h0ZXJAY2FtTGluZS5jb20+CisJRml4IHRlc3RzIG9mIEdldE1vZHVsZUZpbGVOYW1lQSBvbiA5OC9YUC4KKworCSogZGxscy94MTFkcnYvZGliX2NvbnZlcnQuYywgZGxscy94MTFkcnYvZGliX3NyY19zd2FwLmM6CisJTWFyY3VzIE1laXNzbmVyIDxtYXJjdXNAamV0LmZyYW5rZW4uZGU+CisJUmVwbGFjZWQgbHZhbHVlIGNhc3RzIC8gcG9zdGluY3JlbWVudCBtaXhlcy4KKworCSogZGxscy9kc291bmQvdGVzdHMvTWFrZWZpbGUuaW4sIGRsbHMvZHNvdW5kL3Rlc3RzL2Rzb3VuZC5jOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJLSBDcmVhdGUgSURpcmVjdFNvdW5kIGFuZCBJRGlyZWN0U291bmQ4IG9iamVjdHMgdXNpbmcgdGhlCisJICBDb0NyZWF0ZUluc3RhbmNlIENPTSBmdW5jdGlvbiB0byB0ZXN0IHRoZSBDbGFzcyBGYWN0b3J5IGludGVyZmFjZXMuCisJLSBDcmVhdGUgSURpcmVjdFNvdW5kIGFuZCBJRGlyZWN0U291bmQ4IG9iamVjdHMgdXNpbmcgQ3JlYXRlRGlyZWN0U291bmQKKwkgIGFuZCBDcmVhdGVEaXJlY3RTb3VuZDggdXNpbmcgYSBOVUxMIGRldmljZSBHVUlELgorCisyMDA0LTA3LTA5ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL21zaS9hY3Rpb24uYywgZGxscy9tc2kvY29uZC55LCBkbGxzL21zaS9tc2kuYywgZGxscy9tc2kvcGFja2FnZS5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbXBsZW1lbnQgTXNpVmVyaWZ5UGFja2FnZSwgY29zbWV0aWMgZml4ZXMuCisKKwkqIGRsbHMvc2hlbGwzMi9kaWFsb2dzLmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyLnNwZWMsCisJICBkbGxzL3NoZWxsMzIvc2hlbGwzMl9Fbi5yYywgZGxscy9zaGVsbDMyL3NocmVzZGVmLmgsCisJICBkbGxzL3NoZWxsMzIvdW5kb2NzaGVsbC5oLCBpbmNsdWRlL3NobG9iai5oOgorCU1hcnRpbiBGdWNocyA8bWFydGluLWZ1Y2hzQGdteC5uZXQ+CisJR2UgdmFuIEdlbGRvcnAgPGd2Z0ByZWFjdG9zLmNvbT4KKwlJbXBsZW1lbnQgTWVzc2FnZUJveC1iYXNlZCBSZXN0YXJ0RGlhbG9nKCkgYW5kIFJlc3RhcnREaWFsb2dFeCgpLCB1c2UKKwlzdHJpbmcgcmVzb3VyY2VzIGZvciBFeGl0V2luZG93c0RpYWxvZygpIHRvIGFsbG93CisJaW50ZXJuYXRpb25hbGl6YXRpb24uCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jLCBkbGxzL21zaS9jb25kLnksIGRsbHMvbXNpL2NyZWF0ZS5jLAorCSAgZGxscy9tc2kvZGlzdGluY3QuYywgZGxscy9tc2kvaGFuZGxlLmMsIGRsbHMvbXNpL2luc2VydC5jLAorCSAgZGxscy9tc2kvbXNpLmMsIGRsbHMvbXNpL21zaXByaXYuaCwgZGxscy9tc2kvbXNpcXVlcnkuYywKKwkgIGRsbHMvbXNpL29yZGVyLmMsIGRsbHMvbXNpL3BhY2thZ2UuYywgZGxscy9tc2kvcmVjb3JkLmMsCisJICBkbGxzL21zaS9zZWxlY3QuYywgZGxscy9tc2kvc3VtaW5mby5jLCBkbGxzL21zaS90YWJsZS5jLAorCSAgZGxscy9tc2kvdXBkYXRlLmMsIGRsbHMvbXNpL3doZXJlLmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJUmVmY291bnQgYWxsIG9iamVjdHMsIGFuZCB1c2UgcG9pbnRlcnMgaW50ZXJuYWxseS4KKworCSogZGxscy9rZXJuZWwvZmlsZS5jOiBSb2IgU2hlYXJtYW4gPHJvYkBjb2Rld2VhdmVycy5jb20+CisJQWRkIFRSQUNFIHRvIFJlYWRGaWxlRXguCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jLCBkbGxzL21zaS9tc2kuYywgZGxscy9tc2kvbXNpcHJpdi5oOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVdyaXRlIHRoZSBlbmNvZGVkIEdVSURzIGZvciBwcm9kdWN0IHJlZ2lzdHJhdGlvbiBpbiB0aGUgSW5zdGFsbGVyCisJcmVnaXN0cnkuCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jLCBkbGxzL21zaS9tc2kuYywgZGxscy9tc2kvbXNpLnNwZWMsCisJICBkbGxzL21zaS9tc2lxdWVyeS5jOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJQ2xlYW51cCBvZiBhY3Rpb25zLgorCisJKiBkbGxzL21zaS9tc2kuc3BlYywgZGxscy9tc2kvbXNpcXVlcnkuYywgZGxscy9tc2kvcmVjb3JkLmM6CisJQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgYSBzdHViIGZvciBNc2lNb2RpZnlWaWV3LCBmaXggYSBjb3VwbGUgb2YgYnVncy4KKworCSogZGxscy9tc2kvYWN0aW9uLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlDb3NtZXRpYyBmaXhlcy4KKworCSogZGxscy9tc2kvYWN0aW9uLmMsIGRsbHMvbXNpL21zaS5jLCBkbGxzL21zaS9tc2lwcml2LmgsCisJICBkbGxzL21zaS9wYWNrYWdlLmM6CisJQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbXBsZW1lbnQgbG9nZ2luZy4KKworCSogZGxscy94MTFkcnYveDExZHJ2X21haW4uYzogTWlrZSBIZWFybiA8bWhAY29kZXdlYXZlcnMuY29tPgorCU91dHB1dCBYMTEgcHJvdG9jb2wgZXJyb3JzIGJlZm9yZSBicmVha2luZyBpbnRvIGRlYnVnZ2VyLgorCisJKiBkbGxzL2Rzb3VuZC9kc291bmQuYzogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlCZXR0ZXIgZXJyb3IgY2hlY2tpbmcgYW5kIHJlY292ZXJ5LgorCisJKiBjb250cm9scy9zY3JvbGwuYywgZGxscy91c2VyL3Rlc3RzL21zZy5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWRkIGEgdGVzdCBjYXNlIGZvciBzY3JvbGwgQVBJcywgZml4IGEgZmV3IGJ1Z3Mgc3BvdHRlZCBieSBpdC4KKworMjAwNC0wNy0wOCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogcHJvZ3JhbXMvbm90ZXBhZC9tYWluLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWRkIFdTX0hTQ1JPTEwgc3R5bGUgdG8gdGhlIG5vdGVwYWQncyBlZGl0IGNvbnRyb2wuCisKKwkqIGluY2x1ZGUvd2luZ2RpLmgsIG9iamVjdHMvZ2Rpb2JqLmM6CisJQW5kcmVhcyBNb2hyIDxhbmRpQHJobHgwMS5maHQtZXNzbGluZ2VuLmRlPgorCVNldmVyYWwgR0RJIG9iamVjdCBoYW5kbGluZyBmdW5jdGlvbnMgYXJlIGRlZmluZWQgdG8gdGFrZSBhIEhHRElPQkoKKwlpbnN0ZWFkIG9mIGEgSEFORExFLgorCisJKiBkbGxzL2Rzb3VuZC9kc291bmQuYywgZGxscy9vbGUzMi9jb21wb2JqLmMsIGluY2x1ZGUvc2hsd2FwaS5oOgorCUZyYW5jb2lzIEdvdWdldCA8ZmdvdWdldEBmcmVlLmZyPgorCUFzc29ydGVkIHNwZWxsaW5nIGZpeGVzLgorCisJKiBjb250cm9scy9zY3JvbGwuYzogVHJveSBSb2xsbyA8d2luZUB0cm95LnJvbGxvLm5hbWU+CisJLSBTZXR0aW5nIHRoZSBzY3JvbGwgcmFuZ2Ugd2l0aCB0aGUgImJSZWRyYXciIGZsYWcgc2V0IHRvIHRydWUgb24gYQorCSAgbm9uLWNvbnRyb2wgc2Nyb2xsYmFyIHJlc3VsdGVkIGluIHRoZSBzY3JvbGxiYXIgYmVpbmcgZHJhd24gb3ZlciB0aGUKKwkgIHdob2xlIHdpbmRvdyBhcmVhLgorCS0gSWYgeW91IGRvbid0IHNldCBXU19IU0NST0xML1dTX1ZTQ1JPTEwgb24gd2luZG93IGNyZWF0aW9uLCBzZXR0aW5nIGEgc2Nyb2xsCisJICByYW5nZSBkb2VzIG5vdGhpbmcuIFNldHRpbmcgdGhlIHNjcm9sbCByYW5nZSB0byBhIG5vbi16ZXJvIHJhbmdlIHNob3VsZCBjYXVzZQorCSAgc2Nyb2xsIGJhcnMgdG8gYmUgZGlzcGxheWVkLiBTZXR0aW5nIHRoZSByYW5nZSB0byBhIHplcm8gcmFuZ2UKKwkgIHNob3VsZCBjYXVzZSB0aGUgcmVsZXZhbnQgc2Nyb2xsIGJhciB0byBiZSBoaWRkZW4uCisKKwkqIGRsbHMveDExZHJ2L2NsaXBib2FyZC5jOiBVbHJpY2ggQ3pla2FsbGEgPHVscmljaEBjb2Rld2VhdmVycy5jb20+CisJSWYgdGhlIHNlbGVjdGlvbiBvd25lciBkb2Vzbid0IHVuZGVyc3RhbmQgVEFSR0VUUywgdHJ5IHJldHJpZXZpbmcKKwlYQV9TVFJJTkcuCisKKwkqIGRsbHMveDExZHJ2L2V2ZW50LmM6IFVscmljaCBDemVrYWxsYSA8dWxyaWNoQGNvZGV3ZWF2ZXJzLmNvbT4KKwlIYW5kbGUgY2FzZSB3aGVuIGRhdGEgdHlwZSBpcyBub3QgcmVnaXN0ZXJlZC4KKworCSogcHJvZ3JhbXMvcmVnZWRpdC9jaGlsZHduZC5jLCBwcm9ncmFtcy9yZWdlZGl0L3JlZ3Byb2MuYywKKwkgIHByb2dyYW1zL3JlZ2VkaXQvdHJlZXZpZXcuYzoKKwlSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUFkZGVkIEhLRVlfRFlOX0RBVEEgc3VwcG9ydC4KKworMjAwNC0wNy0wNyAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9rZXJuZWwva2VybmVsMzIuc3BlYywgZGxscy9rZXJuZWwvdGhyZWFkLmM6CisJUm9nZXIgT2xzb24gPHU2MEBjb21jYXN0Lm5ldD4KKwlBZGRlZCBzdHViIGZvciBDcmVhdGVSZW1vdGVUaHJlYWQoKS4KKworCSogaW5jbHVkZS9kc291bmQuaDogUm9iZXJ0IFJlaWYgPHJlaWZAZWFydGhsaW5rLm5ldD4KKwlOdW1iZXIgb2YgYXJndW1lbnRzIHRvIElEaXJlY3RTb3VuZEJ1ZmZlcjhfR2V0T2JqZWN0SW5QYXRoIHdhcyB3cm9uZy4KKworCSogZGxscy9hZHZhcGkzMi9zZWN1cml0eS5jLCBpbmNsdWRlL3dpbm50Lmg6CisJR2UgdmFuIEdlbGRvcnAgPGd2Z0ByZWFjdG9zLmNvbT4KKwlBZGQgbWlzc2luZyBwcml2aWxlZ2UgbmFtZXMuCisKKwkqIGRsbHMva2VybmVsL2xvY2FsZS5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUluaXRpYWxpemUgYWxzbyBBQ1AsIE9FTUNQIGFuZCBNQUNDUCBpbiByZWdpc3RyeSBvbiBsb2NhbGUgY2hhbmdlLgorCisJKiBkbGxzL250ZGxsL2RpcmVjdG9yeS5jOiBFbW1hbnVlbCBNYWlsbGFyZCA8ZS5yc3pAbGliZXJ0eXN1cmYuZnI+CisJQWRkZWQgRGFyd2luIHN1cHBvcnQgaW4gZ2V0X2RlZmF1bHRfZHJpdmVfZGV2aWNlLgorCisyMDA0LTA3LTA2ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3gxMWRydi93aW5wb3MuYzogRml4ZWQgWDExRFJWX0dldERDIGZvciB0aGUgZGVza3RvcCB3aW5kb3cuCisJVXNlIHRoZSBjbGllbnQgd2luZG93IGFzIGRyYXdhYmxlIHdoZW4gcG9zc2libGUuCisKKwkqIHNlcnZlci93aW5kb3cuYzoKKwlnZXRfdmlzaWJsZV9yZWdpb246IGRvIG5vdCBjbGlwIG91dCBzaWJsaW5ncyBvZiB0aGUgdG9wLWxldmVsIHdpbmRvdy4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvZmlsZS5jLCBkbGxzL2tlcm5lbC92eGQuYzoKKwlNaWtlIEhlYXJuIDxtaWtlQG5hdmkuY3g+CisJQ29ycmVjdCBlcnJvciBjb2RlIHJldHVybmVkIGJ5IENyZWF0ZUZpbGUgd2hlbiBnaXZlbiBhIG5vbi1leGlzdGVudAorCVZ4RCBvbiBOVCwgYWRkIGEgdGVzdCBjYXNlLgorCisJKiBkbGxzL29sZWF1dDMyL3R5cGVsaWIuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCVJlZmNvdW50aW5nIGZpeGVzLgorCisJKiBkbGxzL29sZTMyL2NvbXBvYmouYzogTWlrZSBIZWFybiA8bWhAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzb21lIGV4cGxhbmF0aW9ucyB0byBjb21wb2JqLmMsIGltcGxlbWVudCBmbHVzaGluZyBtZXNzYWdlIHF1ZXVlCisJb24gc2h1dGRvd24uCisKKwkqIGRsbHMvY29tY3RsMzIvbGlzdHZpZXcuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUNyZWF0ZSBhIHRvb2x0aXAgb24gZGVtYW5kIGluIHRoZSBMaXN0dmlldy4KKworCSogZG9jdW1lbnRhdGlvbi9jb25maWd1cmluZy5zZ21sOgorCVJpY2hhcmQgU3RvbmVob3VzZSA8cmljaGFyZEByc3RvbmVob3VzZS5jby51az4KKwlVcGRhdGVkIGZvciB0aGUgbmV3ICdkb3NkZXZpY2VzJyBkaXJlY3Rvcnkgc3lzdGVtLgorCisJKiBwcm9ncmFtcy93aW5ldGVzdC9tYWluLmMsIHByb2dyYW1zL3dpbmV0ZXN0L3NlbmQuYzoKKwlGZXJlbmMgV2FnbmVyIDx3ZmVyaUBhZmF2YW50LmVsdGUuaHU+CisJU3VwcHJlc3Mgc29tZSBtb3JlIGVycm9yIG1lc3NhZ2UgYm94ZXMuCisJVHJ1bmNhdGUgcmVwb3J0IGZpbGUgaWYgdG9vIGJpZy4KKworCSogZGxscy9tYXBpMzIvdGVzdHMvcHJvcC5jOiBGZXJlbmMgV2FnbmVyIDx3ZmVyaUBhZmF2YW50LmVsdGUuaHU+CisJQXZvaWQgc2VnZmF1bHRzIG9uIHVuaW5pdGlhbGl6ZWQgZGF0YS4KKworCSogaW5jbHVkZS9jb21tY3RybC5oOiBKb24gR3JpZmZpdGhzIDxqb25fcF9ncmlmZml0aHNAeWFob28uY29tPgorCUZpeCBhIHR5cG8gaW4gdGhlIFRhYkN0cmxfU2V0SXRlbSBtYWNyby4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRsbHMvTWFrZWZpbGUuaW4sIGRsbHMvYXRsLy5jdnNpZ25vcmUsCisJICBkbGxzL2F0bC9NYWtlZmlsZS5pbiwgZGxscy9hdGwvYXRsLnNwZWMsIGRsbHMvYXRsL2F0bF9tYWluLmMsCisJICBkbGxzL2F0bC9hdGxiYXNlLmg6CisJQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXJzdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgQWR2YW5jZWQgVGVtcGxhdGUgTGlicmFyeSwgd2l0aCBqdXN0IGEgZmV3CisJZnVuY3Rpb25zIGltcGxlbWVudGVkLgorCisJKiBkbGxzL250ZGxsL250LmM6IEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJUmVwb3J0IE5PVF9JTVBMRU1FTlRFRCBmb3Igbm90IGltcGxlbWVudGVkIHRva2VuIGNsYXNzZXMuCisKKwkqIHNlcnZlci9maWxlLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlUcmFuc2xhdGUgRU5PREVWIGFuZCBFTlhJTyBlcnJvciBjb2RlcyB0byBOVCBzdGF0dXMgY29kZXMuCisKKwkqIGluY2x1ZGUvZHNvdW5kLmg6IFJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJQWRkZWQgc29tZSBtaXNzaW5nICoqTFBMUCB0eXBlZGVmcy4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWM6IEVtbWFudWVsIE1haWxsYXJkIDxlLnJzekBsaWJlcnR5c3VyZi5mcj4KKwlDaGVjayBmb3IgLWxyZXNvbHYgZm9yIERhcndpbi4KKworCSogaW5jbHVkZS9NYWtlZmlsZS5pbiwgaW5jbHVkZS9tbGFuZy5oLCBpbmNsdWRlL21sYW5nLmlkbDoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJQWRkIE11bHRpIExhbmd1YWdlIHN1cHBvcnQgSURMIGFuZCBoZWFkZXJzLgorCisJKiBkbGxzL2Rzb3VuZC9idWZmZXIuYywgZGxscy9kc291bmQvcHJpbWFyeS5jLCBpbmNsdWRlL2Rzb3VuZC5oOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJRml4IElEaXJlY3RTb3VuZEJ1ZmZlcjhfSW5pdGlhbGl6ZSBmdW5jdGlvbiBwcm90b3R5cGUgYW5kIHVzZS4KKworCSogdG9vbHMvd3JjL25ld3N0cnVjLmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUdlbmVyaWMgU0tJUF9UQUcgdG8gc2tpcCBhIG51bWJlciBvZiBieXRlcywgdXNlIGl0IHdoZXJlIGFwcGxpY2FibGUuCisKKwkqIHdpbmRvd3Mvd2lucHJvYy5jOiBNYXJjdXMgTWVpc3NuZXIgPG1hcmN1c0BqZXQuZnJhbmtlbi5kZT4KKwlSZXBsYWNlIGx2YWx1ZSBjYXN0cyBvZiBwb3N0IGluY3JlbWVudHMgZm9yIG5ld2VyIGNvbXBpbGVyLgorCisJKiBkbGxzL2Rzb3VuZC9kc291bmRfbWFpbi5jOiBSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUNyZWF0ZSBEaXJlY3RTb3VuZCBvciBEaXJlY3RTb3VuZDggZGVwZW5kaW5nIG9uIHJpaWQuCisKKwkqIGRsbHMvbXNpL3RhYmxlLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBbGxvdyBiaW5hcnkgZmllbGRzIHdpdGggc3RyZWFtIG5hbWVzIGxvbmdlciB0aGFuIHRhYmxlIG5hbWVzLgorCisJKiBkbGxzL21zaS9hY3Rpb24uYywgZGxscy9tc2kvcGFja2FnZS5jOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50ZWQgQ3JlYXRlU2hvcnRjdXQgYW5kIFB1Ymxpc2hQcm9kdWN0LgorCisJKiBkbGxzL21zaS9hY3Rpb24uYywgZGxscy9tc2kvY3JlYXRlLmMsIGRsbHMvbXNpL2Rpc3RpbmN0LmMsCisJICBkbGxzL21zaS9pbnNlcnQuYywgZGxscy9tc2kvbXNpcHJpdi5oLCBkbGxzL21zaS9tc2lxdWVyeS5jLAorCSAgZGxscy9tc2kvb3JkZXIuYywgZGxscy9tc2kvc2VsZWN0LmMsIGRsbHMvbXNpL3RhYmxlLmMsCisJICBkbGxzL21zaS91cGRhdGUuYywgZGxscy9tc2kvd2hlcmUuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJRmV0Y2ggYmluYXJ5IHN0cmVhbXMgYXQgdGhlIHRhYmxlIGxldmVsLgorCisJKiBkbGxzL21zaS9wYWNrYWdlLmM6IEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJTXNpR2V0UHJvcGVydHkgc2hvdWxkIHJldHVybiBlbXB0eSBzdHJpbmdzIG9uIGVycm9yLgorCisJKiBkbGxzL21zaS9hY3Rpb24uYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlJbXBsZW1lbnRlZCByZWdpc3RlcmluZyBDbGFzc2VzIGFuZCBQcm9nSUQuCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jOiBBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudGVkIFJlZ2lzdGVyVHlwZUxpYnJhcmllcy4KKworCSogZGxscy9tc2kvYWN0aW9uLmMsIGRsbHMvbXNpL2NvbmQueSwgZGxscy9tc2kvbXNpcHJpdi5oLAorCSAgZGxscy9tc2kvcGFja2FnZS5jOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50ZWQgUHJvY2Vzc0NvbXBvbmVudHMuCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jLCBkbGxzL21zaS9wYWNrYWdlLmM6CisJQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlTZW5kIHByb2dyZXNzIGFuZCBhY3Rpb24gbWVzc2FnZXMuCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jOiBBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUFsbG93IEFERExPQ0FMIHRvIG92ZXJyaWRlIElOU1RBTExMRVZFTCwgaW1wbGVtZW50IExhdW5jaENvbmRpdGlvbnMuCisKKwkqIGxvYWRlci9wcmVsb2FkZXIuYzogQXZvaWQgdXNpbmcgc3RybGVuLgorCisJKiBkbGxzL21zdmNydC90ZXN0cy9oZWFkZXJzLmM6IEFkZGVkIHRlc3RzIGZvciBkaXZfdCBhbmQgbGRpdl90LgorCisJKiBkbGxzL21zdmNydC9tc3ZjcnQuaDogUGllcnJlIGQnSGVyYmVtb250IDxzdGVnZWZpbkBmcmVlLmZyPgorCURlZmluZSBNU1ZDUlRfZGl2X3QgYW5kIE1TVkNSVF9sZGl2X3QuCisKKwkqIGluY2x1ZGUvYWNsYXBpLmg6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgdHJ1c3RlZSBmdW5jdGlvbnMuCisKKwkqIGRsbHMvZHNvdW5kL2Rzb3VuZC5jLCBkbGxzL3dpbm1tL3dpbmVvc3MvYXVkaW8uYzoKKwlSb2JlcnQgUmVpZiA8cmVpZkBlYXJ0aGxpbmsubmV0PgorCUdldCBjZXJ0aWZpY2F0aW9uIGZvciBWZXJpZnlDZXJ0aWZpY2F0aW9uIGZyb20gZHJpdmVyIHRvIG1hdGNoCisJR2V0Q2Fwcy4KKwlDaGFuZ2UgT1NTIGRyaXZlciB0byByZXBvcnQgY2VydGlmaWVkLgorCUNoYW5nZSBPU1MgZHJpdmVyIHRvIHNob3cgbWVzc2FnZSBuYW1lIHJhdGhlciB0aGFuIG51bWJlciBpbiB0cmFjZXMuCisKKwkqIGRsbHMvZGRyYXcvZHN1cmZhY2UvZGliLmM6IE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUNPUFlfQ09MT1JLRVlfRlg6IERvIG5vdCB1c2UgbHZhbHVlIGNhc3RzLgorCisJKiBkbGxzL21zaS9hY3Rpb24uYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggYnVncyBpbiByZXNvbHZlX2ZvbGRlci4KKworMjAwNC0wNy0wNCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9tc2kvYWN0aW9uLmMsIGRsbHMvbXNpL3BhY2thZ2UuYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUFjdGl2YXRlIGZlYXR1cmVzIGFuZCBjb21wb25lbnRzIGJhc2VkIG9uIHRoZWlyIHZhcmlvdXMgY29uZGl0aW9ucy4KKworCSogZGxscy9tc2kvTWFrZWZpbGUuaW4sIGRsbHMvbXNpL2FjdGlvbi5jLCBkbGxzL21zaS9jb25kLnksCisJICBkbGxzL21zaS9tc2lwcml2LmgsIGRsbHMvbXNpL3BhY2thZ2UuYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUJlZ2lubmluZ3Mgb2YgY29zdGluZyBhbmQgb3JnYW5pemluZyBpbnRvIGNvbXBvbmVudHMgYW5kIGZlYXR1cmVzLgorCisJKiBkbGxzL21zaS9hY3Rpb24uYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggY29tbWFuZCBsaW5lIHByb2Nlc3NpbmcgYW5kIGZvbGRlciBwYXRocy4KKworCSogZGxscy9tc2kvYWN0aW9uLmMsIGRsbHMvbXNpL21zaXByaXYuaCwgZGxscy9tc2kvcGFja2FnZS5jOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJRml4IE1zaUdldFRhcmdldFBhdGgsIE1zaUdldFNvdXJjZVBhdGggYW5kIE1zaVNldFRhcmdldFBhdGguCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jLCBkbGxzL21zaS9tc2kuYywgZGxscy9tc2kvbXNpcHJpdi5oLAorCSAgZGxscy9tc2kvcGFja2FnZS5jOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJVXNlIHRoZSBuZXdseSBpbXBsZW1lbnRlZCBVUERBVEUgY29kZSB0byBzZXQgcHJvcGVydGllcy4KKworCSogZGxscy9tc2kvTWFrZWZpbGUuaW4sIGRsbHMvbXNpL3F1ZXJ5LmgsIGRsbHMvbXNpL3NxbC55LAorCSAgZGxscy9tc2kvdXBkYXRlLmMsIGRsbHMvbXNpL3doZXJlLmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudCB0aGUgVVBEQVRFIHF1ZXJ5LgorCisJKiBkbGxzL21zaS9xdWVyeS5oLCBkbGxzL21zaS9zcWwueSwgZGxscy9tc2kvd2hlcmUuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJQ3JlYXRlIHRoZSBXSEVSRSBwYXJ0IG9mIGEgcXVlcnkgaW4gb25lIGZ1bmN0aW9uIGNhbGwuCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jLCBkbGxzL21zaS9tc2kuYywgZGxscy9tc2kvbXNpLnNwZWMsCisJICBkbGxzL21zaS9tc2lwcml2LmgsIGRsbHMvbXNpL3BhY2thZ2UuYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudCBTZXRUYXJnZXRQYXRoLCBzdGFydCB0aGUgYmFzaWNzIGZvciB0cmFja2luZyBVSSBsZXZlbC4KKworCSogcHJvZ3JhbXMvd2luZWRiZy9pbmZvLmMsIHByb2dyYW1zL3dpbmVkYmcvc3ltYm9sLmMsCisJICBwcm9ncmFtcy93aW5lZGJnL3dpbmVkYmcuYzoKKwlFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwktIGVuaGFuY2VkICdpbmZvIHNoYXJlJyBvdXRwdXQKKwktIG1hZGUgdXNlIG9mIG5ldyBkYmdoZWxwIHB1cmUgRUxGIHN5bWJvbCBsb29rdXAKKworCSogZGxscy9tc2kvYWN0aW9uLmMsIGRsbHMvbXNpL3BhY2thZ2UuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJQ29zbWV0aWMgZml4ZXMuCisKKwkqIGRsbHMvd2luaW5ldC9odHRwLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlCdWlsZCBodHRwIHJlcXVlc3RzIGluIGEgbW9yZSBjb25zaXN0ZW50IHdheS4KKwlGaXggdGhlIHNpemUgb2YgdGhlIHJlcXVlc3QgYnVmZmVyLgorCURvbid0IHRyeSBjb252ZXJ0aW5nIHRoZSBvcHRpb25hbCBpbmZvcm1hdGlvbiBmcm9tIFcgdG8gQS4KKworCSogZGxscy9kbWltZS9wZXJmb3JtYW5jZS5jOiBGaXhlZCBhIHdhcm5pbmcuCisKKwkqIGRsbHMvZHNvdW5kL01ha2VmaWxlLmluLCBkbGxzL2Rzb3VuZC9kc291bmQuYywKKwkgIGRsbHMvZHNvdW5kL2Rzb3VuZC5zcGVjLCBkbGxzL2Rzb3VuZC9kc291bmRfbWFpbi5jLAorCSAgZGxscy9kc291bmQvZHNvdW5kX3ByaXZhdGUuaCwgZGxscy9kc291bmQvdGVzdHMvZHNvdW5kLmMsCisJICBpbmNsdWRlL2Rzb3VuZC5oOgorCVJvYmVydCBSZWlmIDxyZWlmQGVhcnRobGluay5uZXQ+CisJU2VwYXJhdGVkIERpcmVjdFNvdW5kQ3JlYXRlOCBpbnRvIHR3byBmdW5jdGlvbnMgYW5kIGFkZGVkIGEKKwlJRGlyZWN0U291bmQgaW1wbGVtZW50YXRpb24uCisJQWRkZWQgcHJvcGVyIENPTSBiZWhhdmlvciBmb3IgUXVlcnlJbnRlcmZhY2UgZm9yIElEaXJlY3RTb3VuZCBhbmQKKwlJRGlyZWN0U291bmQ4LgorCUZpeGVkIGEgYnVnIGluIHRoZSBkc291bmQuaCBoZWFkZXIgZmlsZSBmb3IgSURpcmVjdFNvdW5kOAorCUNyZWF0ZVNvdW5kQnVmZmVyIGFuZCBEdXBsaWNhdGVTb3VuZEJ1ZmZlci4KKwlBZGRlZCBuZXcgdGVzdHMgZm9yIHByb3BlciBDT00gYmVoYXZpb3IgYW5kIGVuYWJsZXMgc29tZSBjb21tZW50ZWQgb3V0CisJY29kZSBmb3IgdGVzdHMgdGhhdCB3b3JrIG9uIHdpbmRvd3MuICBBZGRlZCBuZXcgdGVzdHMgZm9yCisJSURpcmVjdFNvdW5kOC4KKworCSogZGxscy9hdmlmaWwzMi9hcGkuYywgZGxscy9hdmlmaWwzMi9hdmlmaWxlLmMsIGRsbHMvYXZpZmlsMzIvd2F2ZmlsZS5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggc3RyaW5nIGNvbnZlcnNpb24gYnVncy4KKworCSogZGxscy9zaGVsbDMyL2F1dG9jb21wbGV0ZS5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJRml4IGEgYnVmZmVyIG92ZXJydW4gaW4gYXV0b2NvbXBsZXRlLgorCisJKiBkbGxzL2RiZ2hlbHAvZGJnaGVscC5jLCBkbGxzL2RiZ2hlbHAvZGJnaGVscF9wcml2YXRlLmgsCisJICBkbGxzL2RiZ2hlbHAvZWxmX21vZHVsZS5jLCBkbGxzL2RiZ2hlbHAvbW9kdWxlLmMsCisJICBkbGxzL2RiZ2hlbHAvc3RhYnMuYywgZGxscy9kYmdoZWxwL3N5bWJvbC5jOgorCUVyaWMgUG91ZWNoIDxwb3VlY2gtZXJpY0B3YW5hZG9vLmZyPgorCS0gYWRkZWQgc3VwcG9ydCBmb3IgR0NDIHN0YXRpYyBsb2NhbCB2YXJpYWJsZXMKKwktIGZpeGVkIHNvbWUgYnVncyBpbiBTWU1PUFRfTk9fUFVCTElDUyBhbmQgU1lNT1BUX1BVQkxJQ1NfT05MWQorCSAgaGFuZGxpbmcKKwktIGluIHN0YWJzIHBhcnNpbmcsIGp1c3QgZHJvcCBhbnkgZGVidWcgaW5mbyBmb3IgYSBtb2R1bGUgaWYgc3RhYnMKKwkgIHBhcnNpbmcgZmFpbHMgKGluc3RlYWQgb2YgYXNzZXJ0KCknaW5nKQorCS0gc3ltYm9sIGxvb2t1cCBub3cgYWxsb3dzIGxvb2t1cCBpbiBwdXJlIEVMRiBtb2R1bGVzCisJLSBmaXhlZCBzb21lIGJ1Z3MgaW4gc3ltYm9sIGVudW1lcmF0aW9uCisKKwkqIGRsbHMvb2xlYXV0MzIvc2FmZWFycmF5LmMsIGRsbHMvb2xlYXV0MzIvdmFyZm9ybWF0LmMsCisJICBkbGxzL29sZWF1dDMyL3ZhcmlhbnQuYywgZGxscy9vbGVhdXQzMi92YXJ0eXBlLmM6CisJTWlrZSBIZWFybiA8bWhAY29kZXdlYXZlcnMuY29tPgorCU1vdmUgdmFyaWFudCBjb2RlIHRvIGl0cyBvd24gZGVidWcgY2hhbm5lbC4KKworCSogZGxscy9tcHIvbXByLnJjLCBkbGxzL21wci9tcHJfRXMucmM6CisJSm9z6SBNYW51ZWwgRmVycmVyIE9ydGl6IDxqbWZvMTk4MkB5YWhvby5lcz4KKwlBZGRlZCBTcGFuaXNoIHRyYW5zbGF0aW9uLgorCisJKiBkbGxzL2tlcm5lbC9sb2NhbGUuYzogVml0YWx5IExpcGF0b3YgPGxhdkBhbHRsaW51eC5ydT4KKwlSZXR1cm4gcHJvcGVyIGNvZGVwYWdlIHZhbHVlIGluIEdldENQSW5mb0V4LgorCisJKiBkbGxzL21zaS9hY3Rpb24uYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlTdGFydCBpbXBsZW1lbnRpbmcgRmVhdHVyZSBhbmQgQ29tcG9uZW50IGxldmVsIGluc3RhbGwgY29udHJvbC4KKworCSogZGxscy93aW5pbmV0L2ludGVybmV0LmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBbGxvY2F0ZSB0aGUgY29ycmVjdCBzaXplIHN0cmluZyBpbiBJbnRlcm5ldENyYWNrVXJsLgorCisJKiBkbGxzL3NobHdhcGkvYXNzb2MuYywgZGxscy9zaGx3YXBpL3JlZy5jLCBkbGxzL3NobHdhcGkvdXJsLmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUZpeCBtZW1vcnkgYWxsb2NhdGlvbiBwcm9ibGVtcy4KKworMjAwNC0wNi0zMCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9tc2kvcmVjb3JkLmM6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggcmV0cmlldmFsIG9mIG51bCByZWNvcmRzIGFzIHN0cmluZ3MuCisKKwkqIGRsbHMvbXNpL2luc2VydC5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJRml4IHRoZSBJTlNFUlQgcXVlcnkgd2hlbiBpbnNlcnRpbmcgaW50ZWdlcnMgaW50byBhIHRhYmxlLgorCisJKiBkbGxzL21zaS9NYWtlZmlsZS5pbiwgZGxscy9tc2kvYWN0aW9uLmMsIGRsbHMvbXNpL2NvbmQueSwKKwkgIGRsbHMvbXNpL21zaS5jLCBkbGxzL21zaS9tc2lwcml2LmgsIGRsbHMvbXNpL3BhY2thZ2UuYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCVN0YXJ0IGltcGxlbWVudGluZyBNc2lPcGVuUGFja2FnZS4KKworCSogZGxscy9tc2kvbXNpLmMsIGRsbHMvbXNpL3JlY29yZC5jLCBkbGxzL21zaS9zdHJpbmcuYzoKKwlNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJU2V0IHRoZSBzdG9yYWdlIGZpbGUncyBHVUlEIHNvIG5hdGl2ZSBNU0kgcmVjb2duaXplcyBpdC4KKwlGaXggY3Jhc2ggd2hlbiBpbnNlcnRpbmcgbXVsdGlwbGUgY29sdW1ucyB0aGF0IGFyZSBpbnZhbGlkLgorCisJKiBkbGxzL21zaS9jcmVhdGUuYywgZGxscy9tc2kvc3FsLnk6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUhhY2sgZmllbGQgdHlwZXMsIGZpeCByZWYgY291bnRpbmcuCisKKwkqIGRsbHMvbXNpL3JlY29yZC5jOiBNaWtlIE1jQ29ybWFjayA8bWlrZUBjb2Rld2VhdmVycy5jb20+CisJRml4IGJ1ZmZlciBvdmVyZmxvdy4KKworCSogZGxscy9tc2kvbXNpcHJpdi5oLCBkbGxzL21zaS9zcWwueSwgZGxscy9tc2kvc3RyaW5nLmMsCisJICBkbGxzL21zaS90YWJsZS5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggdGhlIFVQREFURSBxdWVyeS4KKworCSogZGxscy9tc2kvY3JlYXRlLmM6IEFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJRml4IGZpZWxkIG51bWJlcmluZyBzbyB0aGUgQ1JFQVRFIHF1ZXJ5IHdvcmtzIGZvciBtdWx0aXBsZSBjb2x1bW5zLgorCisJKiBkbGxzL21zaS9pbnNlcnQuYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggdGhlIElOU0VSVCBxdWVyeS4KKworCSogZGxscy9tc2kvaW5zZXJ0LmMsIGRsbHMvbXNpL21zaXByaXYuaCwgZGxscy9tc2kvcXVlcnkuaCwKKwkgIGRsbHMvbXNpL3JlY29yZC5jLCBkbGxzL21zaS9zZWxlY3QuYywgZGxscy9tc2kvc3FsLnksCisJICBkbGxzL21zaS9zdHJpbmcuYywgZGxscy9tc2kvdGFibGUuYywgZGxscy9tc2kvdG9rZW5pemUuYywKKwkgIGRsbHMvbXNpL3doZXJlLmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCU1ha2UgdGhlIFNRTCBpbnNlcnQgcXVlcnkgd29yay4KKworCSogZGxscy9oaGN0cmwub2N4L2hoY3RybC5jLCBkbGxzL2ltbTMyL2ltbS5jLCBkbGxzL21wci93bmV0LmM6CisJVXdlIEJvbm5lcyA8Ym9uQGVsZWt0cm9uLmlrcC5waHlzaWsudHUtZGFybXN0YWR0LmRlPgorCUhlYXBBbGxvYyBmb3IgV1NUUiBtdXN0IGFsbG9jYXRlIGxlbiogc2l6ZW9mKFdDSEFSUykuCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jOiBTdGV2ZW4gRWR3YXJkcyA8c3RldmVuX2VkNDE1M0B5YWhvby5jb20+CisJRml4ZWQgRXh0cmFjdCBwcm90b3R5cGUuCisKKwkqIGRsbHMvdXNlci90ZXN0cy9tc2cuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgbW9yZSBNREkgbWVzc2FnZSB0ZXN0cy4KKworCSogd2luZG93cy9tZGkuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlEbyBub3QgZG8gU2V0V2luZG93UG9zKFNXUF9GUkFNRUNIQU5HRUQpIGluIHRoZQorCURlZkZyYW1lUHJvYyhXTV9TRVRURVhUKSBoYW5kbGVyLCBEZWZXaW5kb3dQcm9jIGFscmVhZHkgdGFrZXMgY2FyZSBvZgorCWl0LgorCisJKiBkbGxzL2NvbW1kbGcvY2RsZ19DYS5yYywgZGxscy9jb21tZGxnL2NkbGdfRGUucmMsCisJICBkbGxzL2NvbW1kbGcvY2RsZ19Gci5yYywgZGxscy9jb21tZGxnL2NkbGdfUnUucmMsCisJICBkbGxzL2NvbW1kbGcvY2RsZ19Vay5yYzoKKwlEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCUZpeCBjb250cm9sIGNvb3JkaW5hdGVzIGluIEdlcm1hbiBhbmQgRnJlbmNoIHZlcnNpb25zIG9mIG9wZW4gZmlsZQorCWRpYWxvZy4KKwlSZW1vdmUgZHVwbGljYXRlIGNvbnRyb2wgaWRzIGluIENhdGFsYW4sIFJ1c3NpYW4gYW5kIFVrcmFpbmlhbgorCWRpYWxvZ3MuCisKKwkqIGRsbHMvb2RiYzMyL3Byb3h5b2RiYy5jOiBCaWxsIE1lZGxhbmQgPGJpbGxtZWRsYW5kQG1lcmN1cnlzcGVlZC5jb20+CisJU2V0IFJUTERfR0xPQkFMIHdoZW4gbG9hZGluZyB0aGUgb2RiYyBkcml2ZXIgbWFuYWdlciBzbyB0aGF0IHdoZW4gaXQKKwlsb2FkcyAgaXRzIG93biBkcml2ZXIgdGhhdCBkcml2ZXIgY2FuIGNhbGwgYmFjayBpbnRvIHRoZSBtYW5hZ2VyIChhcworCXRoZSBPcmFjbGUgQmV0YSBkcml2ZXIgZG9lcywgZm9yIGV4YW1wbGUpLgorCisJKiBkbGxzL29sZTMyL21hcnNoYWwuYzogQXJpYyBTdGV3YXJ0IDxhcmljQGNvZGV3ZWF2ZXJzLmNvbT4KKwlSZXR1cm4gYW4gZXJyb3IgaW4gQ29NYXJzaGFsSW50ZXJmYWNlIGlmIHRoZSBJVW5rbm93biBwb2ludGVyIGlzIE5VTEwKKwlhbmQgZG9uJ3QgY3Jhc2guCisKKwkqIGRsbHMvc2hlbGwzMi9zaGxmc2JpbmQuYywgaW5jbHVkZS9zaGxvYmouaDoKKwlHZSB2YW4gR2VsZG9ycCA8Z3ZnQHJlYWN0b3MuY29tPgorCUZpeCBJRmlsZVN5c3RlbUJpbmREYXRhIG1ldGhvZCBvcmRlci4KKworCSogZGxscy93aW5tbS9kcml2ZXIuYywgZGxscy93aW5tbS9tY2kuYywgZGxscy93aW5tbS93aW5lbW0uaCwKKwkgIGRsbHMvd2lubW0vd2lubW0uYzoKKwlEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUxvb2t1cCBkcml2ZXIgaW5mb3JtYXRpb24gaW4gcmVnaXN0cnkgYW5kIHN5c3RlbS5pbmkuCisJTWFrZSB0aGUgY29kZSBpbnNwZWN0IHRoZSByZWdpc3RyeS9zeXN0ZW0uaW5pIGF0IGNhbGwgdGltZSwgcmF0aGVyCisJdGhlbiBpbml0aWFsaXphdGlvbiB0aW1lLgorCUNvZGUgY2xlYW51cHMuCisKKwkqIGRsbHMvbXNhY20vTWFrZWZpbGUuaW4sIGRsbHMvbXNhY20vaW50ZXJuYWwuYzoKKwlEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUxvb2sgdXAgZHJpdmVyIGluZm8gaW4gdGhlIHJlZ2lzdHJ5IGFzIHdlbGwgYXMgaW4gc3lzdGVtLmluaS4KKworCSogd2luZG93cy9kcml2ZXIuYzogRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlTbWFsbCBkb2N1bWVudGF0aW9uIGNsZWFudXAuCisKKzIwMDQtMDYtMjkgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvbXN2aWRlby9NYWtlZmlsZS5pbiwgZGxscy9tc3ZpZGVvL21zdmlkZW8xNi5jLAorCSAgZGxscy9tc3ZpZGVvL21zdmlkZW9fbWFpbi5jOgorCURpbWl0cmllIE8uIFBhdW4gPGRwYXVuQHJvZ2Vycy5jb20+CisJTG9vayB1cCBkcml2ZXIgaW5mbyBpbiB0aGUgcmVnaXN0cnkgYXMgd2VsbCBhcyBpbiBzeXN0ZW0uaW5pLgorCUNsZWFudXAgaGFuZGxpbmcgb2YgZHJpdmVyIGVudW1lcmF0aW9uIGFuZCBmb3VyQ0MuCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jLCBkbGxzL21zaS9tc2kuc3BlYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudCBNc2lHZXRTb3VyY2VQYXRoLgorCUltcGxlbWVudCBCaW5hcnkgYW5kIER3b3JkIGRhdGEgdHlwZSBmb3IgcmVnaXN0cnkgd3JpdGluZy4KKworCSogZGxscy9tc2kvYWN0aW9uLmMsIGRsbHMvbXNpL21zaS5jLCBkbGxzL21zaS9tc2kuc3BlYzoKKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCUhhbmRsZSBjdXN0b20gYWN0aW9ucyB0eXBlIDEgYW5kIDIuCisKKwkqIGRsbHMvbXNpL21zaS5jLCBkbGxzL21zaS9tc2lwcml2LmgsIGRsbHMvbXNpL3RhYmxlLmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUR1bXAgZGF0YWJhc2UgdGFibGUgbmFtZXMgb24gc3RhcnR1cC4KKworCSogZGxscy94MTFkcnYvd2lucG9zLmMsIGluY2x1ZGUvd2luZS9zZXJ2ZXJfcHJvdG9jb2wuaCwKKwkgIHNlcnZlci9wcm90b2NvbC5kZWYsIHNlcnZlci9yZWdpb24uYywgc2VydmVyL3JlcXVlc3QuaCwKKwkgIHNlcnZlci90cmFjZS5jLCBzZXJ2ZXIvdXNlci5oLCBzZXJ2ZXIvd2luZG93LmMsIHdpbmRvd3Mvd2lucG9zLmM6CisJQWRkZWQgc3VwcG9ydCBmb3Igd2luZG93IHJlZ2lvbnMgaW4gdGhlIHNlcnZlci4KKworCSogZGxscy9tc2kvbXNpcXVlcnkuYywgZGxscy9tc2kvcmVjb3JkLmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUZpeCByZWZjb3VudGluZyBvZiBzdHJlYW1zLgorCisJKiBvYmplY3RzL3JlZ2lvbi5jOiBJZ25vcmUgZW1wdHkgcmVjdGFuZ2xlcyBpbiBFeHRDcmVhdGVSZWdpb24uCisKKwkqIGRsbHMvbXNpL2FjdGlvbi5jLCBkbGxzL21zaS9jb25kLnksIGRsbHMvbXNpL21zaS5zcGVjLAorCSAgZGxscy9tc2kvbXNpcHJpdi5oLCBkbGxzL21zaS9tc2lxdWVyeS5jOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJSW1wbGVtZW50IE1zaUdldFRhcmdldFBhdGhBL1cuCisKKwkqIGRsbHMvbXNpL21zaXByaXYuaCwgZGxscy9tc2kvbXNpcXVlcnkuYywgZGxscy9tc2kvcmVjb3JkLmMsCisJICBkbGxzL21zaS90YWJsZS5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBbGxvdyByZWFkaW5nIHJlY29yZHMgY29udGFpbmluZyBzdHJlYW1zLgorCisyMDA0LTA2LTI4ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL21zaS9jb25kLnk6IE1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXhlZCB0aGUgd2F5IHRoZSBwYXJzZXIgdGFrZXMgaW5wdXQgc3RyaW5ncy4KKworCSogZGxscy94MTFkcnYvd2lucG9zLmM6CisJVXNlIFgxMURSVl9HZXRSZWdpb25EYXRhIHRvIGltcGxlbWVudCBYMTFEUlZfU2V0V2luZG93UmduIGluc3RlYWQgb2YKKwlkdXBsaWNhdGluZyB0aGF0IGZ1bmN0aW9uYWxpdHkuCisKKwkqIGRsbHMvY29tY3RsMzIvaW1hZ2VsaXN0LmM6IEZpbGlwIE5hdmFyYSA8eG5hdmFyYUB2b2xueS5jej4KKwlTZXQgdGhlIHBhbGV0dGUgZm9yIGltYWdlIGxpc3QgRElCcyB0aGF0IGhhcyA4IG9yIGxlc3MgYml0cyBwZXIKKwlwaXhlbC4KKworCSogZGxscy9jb21jdGwzMi90b29sdGlwcy5jLCBpbmNsdWRlL2NvbW1jdHJsLmg6CisJUm9iZXJ0IFNoZWFybWFuIDxSLkouU2hlYXJtYW5Ad2Fyd2ljay5hYy51az4KKwlTdGFydCBvZiBiYWxsb29uIHRpcCBzdXBwb3J0LgorCisJKiBwcm9ncmFtcy91bmluc3RhbGxlci9tYWluLmM6IEhhbm51IFZhbHRvbmVuIDxIYW5udS5WYWx0b25lbkBodXQuZmk+CisJRG9uJ3QgZGlzcGxheSB0aGUgY29tbWFuZGxpbmUgdGV4dCAoQSB0cmFjZSBzdGlsbCBnaXZlcyBpdCkuCisJU2V0IGEgZmV3IGZvbnRzIHRvIGF2b2lkIHVzaW5nIHRoZSBob3JyaWJsZSBzeXN0ZW0gZm9udCBvbiBuYXRpdmUKKwlXaW5kb3dzLgorCisJKiBkbGxzL3ZlcnNpb24vdGVzdHMvaW5mby5jOgorCVN0ZWZhbiBMZWljaHRlciA8U3RlZmFuLkxlaWNodGVyQGNhbUxpbmUuY29tPgorCUZpeGVkIHRlc3RzIG9mIEdldEZpbGVWZXJzaW9uSW5mb1NpemVBIGZvciB3aW45OCAvIFhQLgorCisJKiBkbGxzL29sZWF1dDMyL3RtYXJzaGFsLmM6IE1pa2UgSGVhcm4gPG1oQGNvZGV3ZWF2ZXJzLmNvbT4KKwlNYWtlIHR5cGVsaWIgbWFyc2hhbGxlciBzYWZlIGZvciBzeXN0ZW1zIHRoYXQgZG9uJ3QgYWxsb3cgZXhlY3V0YWJsZQorCWNvZGUgb24gdGhlIGhlYXAsIHBsdWcgYSBsZWFrIG9mIHRoZSBhc3NlbWJseSBzdHViIGJsb2NrLgorCisJKiBwcm9ncmFtcy9jbG9jay9Fcy5yYywgcHJvZ3JhbXMvd2luZWNvbnNvbGUvd2luZWNvbnNvbGVfRXMucmMsCisJICBwcm9ncmFtcy93aW5lY29uc29sZS93aW5lY29uc29sZV9yZXMucmMsIHByb2dyYW1zL3dpbmVmaWxlL0VzLnJjLAorCSAgcHJvZ3JhbXMvd2luZWZpbGUvcnNyYy5yYzoKKwlKb3PpIE1hbnVlbCBGZXJyZXIgT3J0aXogPGptZm8xOTgyQHlhaG9vLmVzPgorCUFkZGVkIHNvbWUgU3BhbmlzaCB0cmFuc2xhdGlvbnMuCisKKwkqIGRsbHMvYXZpZmlsMzIvYXZpZmlsZV9KYS5yYywgZGxscy9hdmlmaWwzMi9yc3JjLnJjLCBkbGxzL21wci9tcHIucmMsCisJICBkbGxzL21wci9tcHJfSmEucmMsIGRsbHMvbXNhY20vbXNhY20ucmMsIGRsbHMvbXNhY20vbXNhY21fSmEucmMsCisJICBkbGxzL29sZWRsZy9vbGVkbGdfSmEucmMsIGRsbHMvb2xlZGxnL3JzcmMucmMsIGRsbHMvc2VyaWFsdWkvSmEucmMsCisJICBkbGxzL3NlcmlhbHVpL3NlcmlhbHVpX3JjLnJjLCBkbGxzL3NldHVwYXBpL0phLnJjLAorCSAgZGxscy9zZXR1cGFwaS9zZXR1cGFwaS5yYywgZGxscy9zaGx3YXBpL3NobHdhcGkucmMsCisJICBkbGxzL3NobHdhcGkvc2hsd2FwaV9KYS5yYywgZGxscy93aW5lcHMvcnNyYy5yYywKKwkgIGRsbHMvd2luZXBzL3dwc19KYS5yYywgZGxscy93aW5tbS93aW5tbV9KYS5yYywKKwkgIGRsbHMvd2lubW0vd2lubW1fcmVzLnJjLCBwcm9ncmFtcy9ub3RlcGFkL0phLnJjLAorCSAgcHJvZ3JhbXMvbm90ZXBhZC9yc3JjLnJjLCBwcm9ncmFtcy9yZWdlZGl0L0phLnJjLAorCSAgcHJvZ3JhbXMvcmVnZWRpdC9yc3JjLnJjOgorCUhhamltZSBTZWdhd2EgPHdpbmV0aXBzQHNpZGVuZXQuZGRvLmpwPgorCUFkZGVkIHNvbWUgSmFwYW5lc2UgdHJhbnNsYXRpb25zLgorCisJKiBkbGxzL21zaS9NYWtlZmlsZS5pbiwgZGxscy9tc2kvYWN0aW9uLmMsIGRsbHMvbXNpL2NvbmQueSwKKwkgIGRsbHMvbXNpL2hhbmRsZS5jLCBkbGxzL21zaS9tc2kuYywgZGxscy9tc2kvbXNpLnNwZWMsCisJICBkbGxzL21zaS9tc2lwcml2LmgsIGRsbHMvbXNpL3NxbC55LCBkbGxzL21zaS90YWJsZS5jOgorCUFyaWMgU3Rld2FydCA8YXJpY0Bjb2Rld2VhdmVycy5jb20+CisJU3RhcnQgaW1wbGVtZW50aW5nIGFjdGlvbnMuCisKKwkqIGRsbHMvc2hlbGwzMi9waWRsLmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX21haW4uYywKKwkgIGRsbHMvc2hlbGwzMi9zaGVsbG9sZS5jLCBkbGxzL3NoZWxsMzIvc2hlbGxvcmQuYywKKwkgIGRsbHMvc2hlbGwzMi9zaGxmaWxlb3AuYywgaW5jbHVkZS9zaGxvYmouaDoKKwlHZSB2YW4gR2VsZG9ycCA8Z3ZnQHJlYWN0b3MuY29tPgorCU1hdGNoIHByb3RvdHlwZXMgdG8gUGxhdGZvcm0gU0RLLgorCisJKiBkbGxzL29sZWF1dDMyL3R5cGVsaWIuYzogTWlrZSBIZWFybiA8bWhAY29kZXdlYXZlcnMuY29tPgorCUR1bXAgZnVuY3Rpb24gcmV0dXJuIHR5cGUgaW4gdHlwZWxpYiB0cmFjZXMsIGFkZCB0cmFjZSBzdXBwb3J0IGZvcgorCVZUX0hSRVNVTFQuCisKKwkqIGRsbHMvb2xlYXV0MzIvb2FpZGxfcC5jOiBNaWtlIEhlYXJuIDxtaEBjb2Rld2VhdmVycy5jb20+CisJQ2hhbmdlIFJFRklJRCB0byBJSUQqIGZvciBzdGFjayBkZWNsYXJhdGlvbnMgdG8gYXZvaWQgaW5pdGlhbGl6ZXJzCisJYmVpbmcgZGlzY2FyZGVkLgorCisJKiBkbGxzL3NobHdhcGkvdGVzdHMvb3JkaW5hbC5jOgorCVN0ZWZhbiBMZWljaHRlciA8U3RlZmFuLkxlaWNodGVyQGNhbUxpbmUuY29tPgorCVNraXAgdGVzdHMgb2YgR2V0QWNjZXB0TGFuZ3VhZ2VzQSBpZiBhIGNvcnJlY3QgY2FsbCB0byB0aGUgZnVuY3Rpb24KKwlkb2VzIG5vdCByZXR1cm4gYW55dGhpbmcgdXNlZnVsLgorCisJKiBkbGxzL3BzYXBpL3Rlc3RzL21vZHVsZS5jOgorCVN0ZWZhbiBMZWljaHRlciA8U3RlZmFuLkxlaWNodGVyQGNhbUxpbmUuY29tPgorCVNraXAgdGVzdHMgd2l0aG91dCBlcnJvciBpZiBwc2FwaS5kbGwgY291bGQgbm90IGJlIGxvYWRlZC4KKworCSogZG9jdW1lbnRhdGlvbi9zYW1wbGVzL2NvbmZpZzoKKwlVd2UgQm9ubmVzIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CisJQ2hhbmdlIGRlc2t0b3Agc2l6ZSBmb3IgX0lOUzU1NzYuX01QLgorCisJKiBkbGxzL2NvbWN0bDMyL3Rvb2xiYXIuYzogUm9iZXJ0IFNoZWFybWFuIDxSLkouU2hlYXJtYW5Ad2Fyd2ljay5hYy51az4KKwktIENsZWFuIHVwIHRoZSBtYXNrIGRyYXdpbmcgY29kZS4KKwktIEltcHJvdmUgYml0bWFwIG5vdCBmb3VuZCBtZXNzYWdlLgorCisJKiBkbGxzL3dpbmluZXQvaHR0cC5jLCBkbGxzL3dpbmluZXQvaW50ZXJuZXQuYzoKKwlEaW1pdHJpZSBPLiBQYXVuIDxkcGF1bkByb2dlcnMuY29tPgorCUZpeCB0aGUgZnVuY3Rpb24gbmFtZXMgaW4gc29tZSBvZiB0aGUgY29tbWVudHMuCisKKwkqIGxvYWRlci9wcmVsb2FkZXIuYzogTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCURlZmluZSBBVF9TWVNJTkZPXyogaWYgaXQncyBtaXNzaW5nLgorCisJKiBpbmNsdWRlL2NvbW1jdHJsLmg6IEpvbiBHcmlmZml0aHMgPGpvbl9wX2dyaWZmaXRoc0B5YWhvby5jb20+CisJQ29ycmVjdCBzdHJ1Y3QgdGFnIG5hbWUgZm9yIFVEQUNDRUwuCisJQWRkIG1pc3NpbmcgVENJVEVNSEVBREVSIGFuZCBvbGQgbmFtZXMgVENfSVRFTUhFQURFUi9UQ19JVEVNLgorCisyMDA0LTA2LTI2ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL21zaS9tc2lwcml2LmgsIGRsbHMvbXNpL3N0cmluZy5jLCBkbGxzL21zaS90YWJsZS5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlQdWxsIHRoZSBjb2RlcGFnZSBmcm9tIHRoZSBzdHJpbmcgdGFibGUuCisKKwkqIGRsbHMvbXNpL3NxbC55LCBkbGxzL21zaS93aGVyZS5jOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlGaXggY3Jhc2ggdGhhdCBvY2N1cnJlZCB3aGVuIGFuIGludmFsaWQgcXVlcnkgc3RyaW5nIHdhcyBkZWxldGVkCisJdHdpY2UuCisKKwkqIGxvYWRlci9wcmVsb2FkZXIuYzoKKwlSZW1vdmUgdGhlIEFUX1NZU0lORk8gYW5kIEFUX1NZU0lORk9fRUhEUiB2YWx1ZXMgaWYgdGhlIHN5c2luZm8gcGFnZQorCWlzIGluIG9uZSBvZiBvdXIgcmVzZXJ2ZWQgcmFuZ2VzLgorCisJKiBkbGxzL21zaS9tc2lwcml2LmgsIGRsbHMvbXNpL3F1ZXJ5LmgsIGRsbHMvbXNpL3NxbC55LAorCSAgZGxscy9tc2kvc3RyaW5nLmMsIGRsbHMvbXNpL3doZXJlLmM6CisJTWlrZSBNY0Nvcm1hY2sgPG1pa2VAY29kZXdlYXZlcnMuY29tPgorCUltcGxlbWVudCBxdWVyaWVzIGJ5IHN0cmluZyB2YWx1ZS4KKworCSogaW5jbHVkZS9tc2kuaCwgaW5jbHVkZS9tc2lxdWVyeS5oOgorCU1pa2UgTWNDb3JtYWNrIDxtaWtlQGNvZGV3ZWF2ZXJzLmNvbT4KKwlBcmljIFN0ZXdhcnQgPGFyaWNAY29kZXdlYXZlcnMuY29tPgorCVVwZGF0ZSBoZWFkZXIgZGVjbGFyYXRpb25zIGZvciBtc2kuCisKKzIwMDQtMDYtMjUgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvdXNlci90ZXN0cy8uY3ZzaWdub3JlLCBkbGxzL3VzZXIvdGVzdHMvTWFrZWZpbGUuaW4sCisJICBkbGxzL3VzZXIvdGVzdHMvY2xpcGJvYXJkLmMsIGRsbHMveDExZHJ2L2NsaXBib2FyZC5jLAorCSAgc2VydmVyL2NsaXBib2FyZC5jLCB3aW5kb3dzL2NsaXBib2FyZC5jOgorCURtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWRkIGEgdGVzdCBjYXNlIGZvciBjbGlwYm9hcmQgZnVuY3Rpb25hbGl0eSBhbmQgZml4IHNvbWUgYnVncyByZXZlYWxlZAorCWJ5IGl0LgorCisJKiBkbGxzL21zdmNydC9NYWtlZmlsZS5pbiwgZGxscy9tc3ZjcnQvY29uc29sZS5jLCBkbGxzL21zdmNydC9jcHAuYywKKwkgIGRsbHMvbXN2Y3J0L2NwcGV4Y2VwdC5jLCBkbGxzL21zdmNydC9jdHlwZS5jLCBkbGxzL21zdmNydC9kYXRhLmMsCisJICBkbGxzL21zdmNydC9kaXIuYywgZGxscy9tc3ZjcnQvZW52aXJvbi5jLCBkbGxzL21zdmNydC9lcnJuby5jLAorCSAgZGxscy9tc3ZjcnQvZXhjZXB0LmMsIGRsbHMvbXN2Y3J0L2V4aXQuYywgZGxscy9tc3ZjcnQvZmlsZS5jLAorCSAgZGxscy9tc3ZjcnQvaGVhcC5jLCBkbGxzL21zdmNydC9sb2NhbGUuYywgZGxscy9tc3ZjcnQvbWFpbi5jLAorCSAgZGxscy9tc3ZjcnQvbWF0aC5jLCBkbGxzL21zdmNydC9tYmNzLmMsIGRsbHMvbXN2Y3J0L21pc2MuYywKKwkgIGRsbHMvbXN2Y3J0L21zdmNydC5oLCBkbGxzL21zdmNydC9tc3ZjcnQuc3BlYywgZGxscy9tc3ZjcnQvcHJvY2Vzcy5jLAorCSAgZGxscy9tc3ZjcnQvc2NhbmYuYywgZGxscy9tc3ZjcnQvc3RyaW5nLmMsCisJICBkbGxzL21zdmNydC90ZXN0cy8uY3ZzaWdub3JlLCBkbGxzL21zdmNydC90ZXN0cy9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvbXN2Y3J0L3Rlc3RzL2hlYWRlcnMuYywgZGxscy9tc3ZjcnQvdGhyZWFkLmMsCisJICBkbGxzL21zdmNydC90aW1lLmMsIGRsbHMvbXN2Y3J0L3djcy5jLCBpbmNsdWRlL21zdmNydC9jb25pby5oLAorCSAgaW5jbHVkZS9tc3ZjcnQvY3R5cGUuaCwgaW5jbHVkZS9tc3ZjcnQvZGlyZWN0LmgsCisJICBpbmNsdWRlL21zdmNydC9kb3MuaCwgaW5jbHVkZS9tc3ZjcnQvZWguaCwgaW5jbHVkZS9tc3ZjcnQvZXJybm8uaCwKKwkgIGluY2x1ZGUvbXN2Y3J0L2ZjbnRsLmgsIGluY2x1ZGUvbXN2Y3J0L2Zsb2F0LmgsIGluY2x1ZGUvbXN2Y3J0L2lvLmgsCisJICBpbmNsdWRlL21zdmNydC9sb2NhbGUuaCwgaW5jbHVkZS9tc3ZjcnQvbWFsbG9jLmgsCisJICBpbmNsdWRlL21zdmNydC9tYXRoLmgsIGluY2x1ZGUvbXN2Y3J0L21iY3R5cGUuaCwKKwkgIGluY2x1ZGUvbXN2Y3J0L21ic3RyaW5nLmgsIGluY2x1ZGUvbXN2Y3J0L3Byb2Nlc3MuaCwKKwkgIGluY2x1ZGUvbXN2Y3J0L3NlYXJjaC5oLCBpbmNsdWRlL21zdmNydC9zZXRqbXAuaCwKKwkgIGluY2x1ZGUvbXN2Y3J0L3N0ZGRlZi5oLCBpbmNsdWRlL21zdmNydC9zdGRpby5oLAorCSAgaW5jbHVkZS9tc3ZjcnQvc3RkbGliLmgsIGluY2x1ZGUvbXN2Y3J0L3N0cmluZy5oLAorCSAgaW5jbHVkZS9tc3ZjcnQvc3lzL3N0YXQuaCwgaW5jbHVkZS9tc3ZjcnQvc3lzL3RpbWViLmgsCisJICBpbmNsdWRlL21zdmNydC9zeXMvdHlwZXMuaCwgaW5jbHVkZS9tc3ZjcnQvc3lzL3V0aW1lLmgsCisJICBpbmNsdWRlL21zdmNydC90aW1lLmgsIGluY2x1ZGUvbXN2Y3J0L3djaGFyLmgsCisJICBpbmNsdWRlL21zdmNydC93Y3R5cGUuaCwgaW5jbHVkZS93aW5zb2NrLmg6CisJRGltaXRyaWUgTy4gUGF1biA8ZHBhdW5Acm9nZXJzLmNvbT4KKwlTcGxpdCB0aGUgTVNWQ1JUIGltcGxlbWVudGF0aW9uIGhlYWRlcnMgZnJvbSB0aGUgcHVibGljIGhlYWRlcnMuCisJRml4IHNvbWUgbmFtaW5nIGNvbnZlbnRpb25zIGFiZXJyYXRpb25zLgorCUFkZCB0ZXN0cyB0byBlbnN1cmUgY29uc2lzdGVuY3kgYmV0d2VlbiB0aGUgdHdvIHNldHMgb2Ygc3ltYm9scy4KKworCSogaW5jbHVkZS93aW5kZWYuaCwgaW5jbHVkZS93aW51c2VyLmg6CisJSm9uIEdyaWZmaXRocyA8am9uX3BfZ3JpZmZpdGhzQHlhaG9vLmNvbT4KKwlDb3JyZWN0IHRhZyBuYW1lcyBmb3IgUkVDVEwgYW5kIFNDUk9MTElORk8gc3RydWN0cy4KKworCSogZGxscy9yc2FiYXNlL21haW4uYzoKKwlNaWNoYWVsIEp1bmcgPG1qdW5nQHJiZy5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZT4KKwlDaGFuZ2VkIHR5cGUgb2YgIlNpZ25hdHVyZSIgcmVnaXN0cnkga2V5IHZhbHVlIHRvIFJFR19CSU5BUlkuCisKKzIwMDQtMDYtMjQgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMva2VybmVsL2hlYXAuYzoKKwlJbiBHbG9iYWxNZW1vcnlTdGF0dXMsIGFsc28gY2FwIHRoZSBzdW0gb2YgZHdBdmFpbFBoeXMgYW5kCisJZHdBdmFpbFBhZ2VGaWxlIGF0IDJHYiB0byBhdm9pZCBhIGJ1ZyBpbiBQaG90b3Nob3AgNC4KKworCSogbG9hZGVyL2t0aHJlYWQuYzoKKwlVc2Ugd2luZV9kbHN5bSBpbnN0ZWFkIG9mIGRsc3ltIHRvIGF2b2lkIHRoZSBnbGliYyBkbGVycm9yIGJ1Zy4KKwlDYWxsIGRsc3ltIHdpdGggUlRMRF9ERUZBVUxUIGZvciBzeW1ib2xzIHRoYXQgd2UgZG9uJ3QgcmVkZWZpbmUgdG8KKwl3b3JrIGFyb3VuZCBhbm90aGVyIGdsaWJjIGJ1Zy4KKworCSogZGxscy94MTFkcnYvd2lucG9zLmM6IFJvYmVydCBTaGVhcm1hbiA8Ui5KLlNoZWFybWFuQHdhcndpY2suYWMudWs+CisJRml4IHNtYWxsIG1pc3Rha2UgaW4gdGhlIHByZXZpb3VzIHZpc2libGUgcmVnaW9uIHBhdGNoLgorCisyMDA0LTA2LTIzICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL3VzZXIvdGVzdHMvbXNnLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJQWRkIGEgcHJvdG90eXBlIGZvciBNREkgbWVzc2FnZSB0ZXN0cy4KKworCSogd2luZG93cy9tZGkuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlNYWtlIHN1cmUgdGhhdCBib3RoIGRlYWN0aXZhdGVkIGFuZCBhY3RpdmF0ZWQgTURJIGNoaWxkcmVuIHJlY2VpdmUKKwlXTV9NRElBQ1RJVkFURSBtZXNzYWdlIGluIGFsbCBjYXNlcy4KKworCSogZGxscy94MTFkcnYvd2lucG9zLmM6IERtaXRyeSBUaW1vc2hrb3YgPGRtaXRyeUBjb2Rld2VhdmVycy5jb20+CisJV01fV0lORE9XUE9TQ0hBTkdFRCBzaG91bGQgYWx3YXlzIGNvbnRhaW4gYSBmaW5hbCB3aW5kb3cgcG9zaXRpb24uCisKKwkqIGRsbHMveDExZHJ2L3dpbnBvcy5jLCBpbmNsdWRlL3dpbmUvc2VydmVyX3Byb3RvY29sLmgsCisJICBzZXJ2ZXIvTWFrZWZpbGUuaW4sIHNlcnZlci9wcm90b2NvbC5kZWYsIHNlcnZlci9yZWdpb24uYywKKwkgIHNlcnZlci9yZXF1ZXN0LmgsIHNlcnZlci90cmFjZS5jLCBzZXJ2ZXIvdXNlci5oLCBzZXJ2ZXIvd2luZG93LmM6CisJTW92ZWQgdmlzaWJsZSByZWdpb24gY2FsY3VsYXRpb24gdG8gdGhlIHNlcnZlci4KKworCSogd2luZG93cy9tdWx0aW1vbi5jOgorCUZpeGVkIHdyb25nIFVuaWNvZGUgc3RyaW5nIHN5bnRheCBpbiBHZXRNb25pdG9ySW5mb1cuCisKKwkqIGRsbHMvb2xlYXV0MzIvdG1hcnNoYWwuYywgZGxscy9ycGNydDQvcnBjX2JpbmRpbmcuYzoKKwlNaWtlIEhlYXJuIDxtaEBjb2Rld2VhdmVycy5jb20+CisJLSBEb24ndCBFUlIgb24gYSB1c2VkIGNvbm5lY3Rpb24gYmVpbmcgZGVzdHJveWVkLgorCS0gRG9uJ3QgcHJpbnQgYW4gZXh0cmEgbmV3bGluZSBpbiB0aGUgb2xlcmVsYXkgY29kZS4KKworCSogcHJvZ3JhbXMvd2luZWRiZy9kYmcueSwgcHJvZ3JhbXMvd2luZWRiZy9kZWJ1Zy5sLAorCSAgcHJvZ3JhbXMvd2luZWRiZy9kZWJ1Z2dlci5oLCBwcm9ncmFtcy93aW5lZGJnL3N0YWNrLmMsCisJICBwcm9ncmFtcy93aW5lZGJnL3dpbmVkYmcuYzoKKwlNaWtlIEhlYXJuIDxtaWtlQG5hdmkuY3g+CisJQWRkIGEgLS1jb21tYW5kIG9wdGlvbiB0byB3aW5lZGJnLCBhZGQgYW4gImFsbCIgb3B0aW9uIHRvIHRoZQorCWJhY2t0cmFjZSBjb21tYW5kLgorCisyMDA0LTA2LTIyICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL250ZGxsL3ZpcnR1YWwuYzoKKwlXZSBubyBsb25nZXIgbmVlZCB0byBtYWtlIHRoZSBpbXBvcnQgZGlyZWN0b3J5IHdyaXRhYmxlLCB0aGUgbG9hZGVyCisJdGFrZXMgY2FyZSBvZiB0aGF0IG5vdy4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGxvYWRlci9NYWtlZmlsZS5pbiwgbG9hZGVyL3ByZWxvYWRlci5jOgorCURvIGRpcmVjdCBMaW51eCBzeXN0ZW0gY2FsbHMgaW4gdGhlIHByZWxvYWRlciB0byBhdm9pZCB0cm91YmxlIHdpdGgKKwlzb21lIGJyb2tlbiBzdGF0aWMgbGliY3MuCisKKwkqIGRsbHMvbnRkbGwvbG9hZGVyLmM6IEZpbGlwIE5hdmFyYSA8bmF2YXJhZkByZWFjdG9zLmNvbT4KKwlVbnByb3RlY3QgSW1wb3J0IEFkZHJlc3MgVGFibGUgd2hpbGUgZmlsbGluZyBpdC4KKworCSogcHJvZ3JhbXMvd2luZWRiZy9zdGFjay5jOiBFcmljIFBvdWVjaCA8cG91ZWNoLWVyaWNAd2FuYWRvby5mcj4KKwlGaXggY29tcGlsZSBlcnJvciBvbiBub24taTM4Ni4KKworMjAwNC0wNi0yMSAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy9zZXR1cGFwaS9zZXR1cGNhYi5jLCBkbGxzL3gxMWRydi9rZXlib2FyZC5jLAorCSAgcHJvZ3JhbXMvd2luZWxhdW5jaGVyLmluLCB3aW5kb3dzL21zZ2JveC5jOgorCVZpbmNlbnQgQulyb24gPHZiZXJvbkBtZWNhbm8uZ21lLnVzaGVyYi5jYT4KKwlSZXBsYWNlIHNvbWUgbW9yZSAtZGVidWdtc2cgcmVmZXJlbmNlcyBmb3IgV0lORURFQlVHLgorCisJKiBkbGxzL250ZGxsL3ZlcnNpb24uYzogTWlrZSBIZWFybiA8bWlrZUBuYXZpLmN4PgorCURlZmF1bHQgdG8gV2luOTggaW4gRExMIGxpbmthZ2UgaGV1cmlzdGljcy4KKworCSogZGxscy9zaGVsbDMyL3NoZWxsMzJfQ2EucmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX0NuLnJjLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfQ3MucmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX0RhLnJjLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfRGUucmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX0VuLnJjLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfRW8ucmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX0VzLnJjLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfRmkucmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX0ZyLnJjLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfSHUucmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX0l0LnJjLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfSmEucmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX0tvLnJjLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfTmwucmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX05vLnJjLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfUGwucmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX1B0LnJjLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfUnUucmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX1NpLnJjLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfU2sucmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX1N2LnJjLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfVWsucmMsIGRsbHMvc2hlbGwzMi9zaGVsbDMyX1dhLnJjLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfWmgucmM6CisJUm95Y2UgTWl0Y2hlbGwgSUlJIDxyb3ljZTNAZXYxLm5ldD4KKwlTaGVsbDMyIHJ1biBkaWFsb2cgY29tYm9ib3ggc2hvdWxkIGFsc28gaGF2ZSBXU19UQUJTVE9QIHN0eWxlLgorCisJKiBkbGxzL2QzZDgvdXRpbHMuYzogQ2hyaXN0aWFuIENvc3RhIDx0aXRhbi5jb3N0YUB3YW5hZG9vLmZyPgorCVNvbWUgbW9yZSB0ZXh0dXJlIG9wcyBmaXhlcy4KKworMjAwNC0wNi0xOCAgQWxleGFuZHJlIEp1bGxpYXJkICA8anVsbGlhcmRAd2luZWhxLmNvbT4KKworCSogZGxscy94MTFkcnYvd2lucG9zLmM6CisJT25seSB1bm1hcCB0aGUgd2luZG93IHdoZW4gaXQgZ2V0cyBtb3ZlZCBvZmYtc2NyZWVuIGJ5IHRoZSBhcHAsIG5vdCBieQorCXRoZSB3aW5kb3cgbWFuYWdlci4KKworCSogZG9jdW1lbnRhdGlvbi9zYW1wbGVzL2NvbmZpZywKKwkgIHByb2dyYW1zL3dpbmVtZW51YnVpbGRlci93aW5lbWVudWJ1aWxkZXIuYzoKKwlDaHJpcyBNb3JnYW4gPGNtb3JnYW5AYWx1bS53cGkuZWR1PgorCUhhcmRjb2RlICJ3aW5lc2hlbGxsaW5rIiBpbiB3aW5lbWVudWJ1aWxkZXIsIHJlbW92ZSBpdCBmcm9tIHRoZSBjb25maWcKKwlmaWxlLgorCisJKiBjb250cm9scy9lZGl0LmM6IEtyaXNobmEgTXVydGh5IDxLcmlzaG5hLk11cnRoeUBndXB0YXdvcmxkd2lkZS5jb20+CisJTW9kaWZpZWQgRURJVF9FTV9VbmRvKCk6IFJlbW92ZWQgdW5kbyBidWZmZXIgbGVuZ3RoIGNoZWNrIGZvcgorCWVtcHR5LiBFRElUX0VNX1JlcGxhY2VTZWwoKSBpcyBjYWxsZWQgd2l0aCBzZW5kX3VwZGF0ZSBwYXJhbWV0ZXIgc2V0CisJdG8gVFJVRS4KKworCSogd2luZG93cy9tc2dib3guYzogTWlrZSBIZWFybiA8bWlrZUBuYXZpLmN4PgorCUFkZCBhIGRlZGljYXRlZCBkZWJ1ZyBjaGFubmVsIGZvciBtZXNzYWdlIGJveGVzIHdoaWNoIG91dHB1dHMgdGhlCisJY29udGVudHMgb2YgdGhlIG1lc3NhZ2UuCisKKwkqIGRsbHMveDExZHJ2L3dpbnBvcy5jOiBEbWl0cnkgVGltb3Noa292IDxkbWl0cnlAY29kZXdlYXZlcnMuY29tPgorCVNob3dXaW5kb3cgc2hvdWxkbid0IGZpeCBTV1BfIGZsYWdzLCBpdCdzIHRoZSBqb2Igb2YgU2V0V2luZG93UG9zLgorCisJKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgaW5jbHVkZS9jb25maWcuaC5pbiwKKwkgIHRvb2xzL3dpbmVidWlsZC9pbXBvcnQuYzoKKwlQaWVycmUgZCdIZXJiZW1vbnQgPHN0ZWdlZmluQGZyZWUuZnI+CisJLSBEZXRlY3Rpb24gb2YgLnNpemUgaW5zdHJ1Y3Rpb24uCisJLSBEZXRlY3Rpb24gb2YgdGhlIGFzc2VtYmxlciBuYW1lIHByZWZpeC4KKworCSogZGxscy9udGRsbC9yZWxheS5jOiBQaWVycmUgZCdIZXJiZW1vbnQgPHN0ZWdlZmluQGZyZWUuZnI+CisJRml4IGEgY29tcGlsZSBlcnJvciBmb3IgU05PT1BfR2V0UHJvY0FkZHJlc3MgYW5kIFJFTEFZX0dldFByb2NBZGRyZXNzCisJb24gbm9uLWkzODYuCisKKwkqIGRsbHMvdXNlci90ZXN0cy9tc2cuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlBZGQgdGVzdHMgZm9yIGNoaWxkIGFjdGl2YXRpb24gYnkgU2hvd1dpbmRvdy9TZXRXaW5kb3dQb3MuCisKKwkqIGRsbHMvZ2RpL2VuaG1mZHJ2L2luaXQuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlEbyBub3QgYWxsb3cgY3JlYXRpb24gb2Ygbm90IGFsaWduZWQgRU1GIHJlY29yZHMgYnkgR0RJIGNvZGUuCisKKwkqIGNvbnRyb2xzL21lbnUuYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlVc2UgYmV0dGVyIGRpbWVuc2lvbnMgZm9yIE1ESSBzeXN0ZW0gbWVudSBidXR0b25zIHRvIGF2b2lkIE1ESSBjbGllbnQKKwl3aW5kb3cgcmVzaXppbmcuCisKKwkqIGRsbHMvc2hsd2FwaS90ZXN0cy9vcmRpbmFsLmM6CisJU3RlZmFuIExlaWNodGVyIDxTdGVmYW4uTGVpY2h0ZXJAY2FtTGluZS5jb20+CisJQWRkIGxvZ2dpbmcgdG8gdGhlIEdldEFjY2VwdExhbmd1YWdlc0EgdGVzdHMuCisKKwkqIGRsbHMvbnRkbGwvbG9hZGVyLmMsIGRsbHMvbnRkbGwvbnRkbGxfbWlzYy5oLCBkbGxzL250ZGxsL3ZpcnR1YWwuYzoKKwlBZGRlZCBzdXBwb3J0IGZvciB0aGUgSU1BR0VfRklMRV9MQVJHRV9BRERSRVNTX0FXQVJFIGZsYWcuCisKKwkqIGRsbHMvc2hlbGwzMi9NYWtlZmlsZS5pbiwgZGxscy9zaGVsbDMyL2NsaXBib2FyZC5jLAorCSAgZGxscy9zaGVsbDMyL3NoZWxsMzJfbWFpbi5oLCBkbGxzL3NoZWxsMzIvc2hlbGxvbGUuYywKKwkgIGRsbHMvc2hlbGwzMi9zaGVsbG9yZC5jLCBkbGxzL3NoZWxsMzIvc2hsdmlldy5jLAorCSAgZGxscy9zaGVsbDMyL3Nodl9iZ19jbWVudS5jLCBkbGxzL3NoZWxsMzIvc2h2X2l0ZW1fY21lbnUuYzoKKwlSb2JlcnQgU2hlYXJtYW4gPFIuSi5TaGVhcm1hbkB3YXJ3aWNrLmFjLnVrPgorCU1ha2Ugb2xlMzIgYSBkZWxheS1sb2FkIGltcG9ydCBvZiBzaGVsbDMyLgorCisyMDA0LTA2LTE3ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBkbGxzL250ZGxsL2NyaXRzZWN0aW9uLmM6CisJVGFrZSBzcGluIGNvdW50IGludG8gYWNjb3VudCBpbiBSdGxFbnRlckNyaXRpY2FsU2VjdGlvbi4KKworCSogZGxscy9udGRsbC9maWxlLmM6CisJRG9uJ3QgdXNlIGxzZWVrIHdoZW4gdHJ1bmNhdGluZyBhIGZpbGUgdG8gYXZvaWQgY29ycnVwdGluZyB0aGUgY3VycmVudAorCWZpbGUgcG9zaXRpb24uCisKKwkqIGRsbHMvb2xlYXV0MzIvdG1hcnNoYWwuYzogTWlrZSBIZWFybiA8bWhAY29kZXdlYXZlcnMuY29tPgorCUZpeCB0eXBlbGliIG1hcnNoYWxsZXIgcmVsYXlpbmcsIGFkZCBhIGNvbW1lbnQgZGVzY3JpYmluZyB3aGF0IGl0IGlzLAorCWRvbid0IHByaW50IHRoZSB1Z2x5IEwiIiBwYXJ0cyBvZiBVbmljb2RlIHN0cmluZ3MgaW4gdGhlIHJlbGF5IHRyYWNlLgorCisJKiBkbGxzL2Rzb3VuZC90ZXN0cy8uY3ZzaWdub3JlLCBkbGxzL2Rzb3VuZC90ZXN0cy9NYWtlZmlsZS5pbiwKKwkgIGRsbHMvZHNvdW5kL3Rlc3RzL2NhcHR1cmUuYywgZGxscy9kc291bmQvdGVzdHMvZHMzZC5jLAorCSAgZGxscy9kc291bmQvdGVzdHMvZHNvdW5kLmMsIGRsbHMvZHNvdW5kL3Rlc3RzL2Rzb3VuZF90ZXN0Lmg6CisJRnJhbmNvaXMgR291Z2V0IDxmZ291Z2V0QGNvZGV3ZWF2ZXJzLmNvbT4KKwlTcGxpdCB0aGUgJ2Rzb3VuZCcgdGVzdCBpbnRvIHR3byBwYXJ0czoKKwktIHRoZSBzb3VuZCBmb3JtYXQgdGVzdC4gUGxheXMgYSA1IHNlY29uZCByZWZlcmVuY2UgdG9uZSB0byBoZWxwCisJICBkZWJ1ZyBpc3N1ZXMgd2l0aCB0aGUgdG9uZSBkdXJhdGlvbiBhbmQgaGVscCBkZXRlY3Qgc3R1dHRlciBpc3N1ZXMuCisJICBQcmludHMgZXhwbGFuYXRpb25zIGRlc2NyaWJpbmcgdGhlIHNvdW5kIGZvcm1hdCBpbnRlcmFjdGl2ZQorCSAgdGVzdC4gVGhlbiBwbGF5cyBhIDEgc2Vjb25kIHRlc3QgdG9uZSBmb3IgZWFjaCBzdXBwb3J0ZWQgc291bmQKKwkgIGZvcm1hdC4KKwktIHRoZSAzRCBzb3VuZCB0ZXN0cy4gUGVyZm9ybXMgdGhlIHZvbHVtZSwgcGFubmluZywgbW92aW5nIGxpc3RlbmVyCisJICB0ZXN0cywgZXRjLgorCisJKiBwcm9ncmFtcy93aW5ldGVzdC9NYWtlZmlsZS5pbjogRmVyZW5jIFdhZ25lciA8d2ZlcmlAYWZhdmFudC5lbHRlLmh1PgorCUluY2x1ZGUgbmV3IG9yIGZvcmdvdHRlbiB0ZXN0cy4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvcHJvZmlsZS5jOgorCVN0ZWZhbiBMZWljaHRlciA8U3RlZmFuLkxlaWNodGVyQGNhbUxpbmUuY29tPgorCUZpeCB0aGUgR2V0UHJpdmF0ZVByb2ZpbGVJbnRBIHRlc3RzIGZvciB0aGUgd2luOXggcGxhdGZvcm0uCisKKwkqIGRsbHMvdXNlci90ZXN0cy93aW4uYzogRG1pdHJ5IFRpbW9zaGtvdiA8ZG1pdHJ5QGNvZGV3ZWF2ZXJzLmNvbT4KKwlNYWtlIHVzZXIvdGVzdHMvd2luLmMgdGVzdHMgcGFzcyB1bmRlciBXaW5kb3dzOTguCisKKwkqIHNlcnZlci9xdWV1ZS5jOgorCVByb3Blcmx5IHJlc2V0IG1zZ190aHJlYWQgd2hlbiByZWxlYXNpbmcgdGhlIHRocmVhZCBpbnB1dCBzdHJ1Y3R1cmUuCisKKwkqIHRvb2xzL3dpbmVidWlsZC9zcGVjMzIuYzogUGllcnJlIGQnSGVyYmVtb250IDxzdGVnZWZpbkBmcmVlLmZyPgorCUhpZGUgdGhlIF9pbml0IGFuZCBfZmluaSB3cmFwcGVycyBvbiBkYXJ3aW4uCisKKwkqIGRsbHMvb2xlMzIvbWFyc2hhbC5jOiBJdmFuIExlbyBQdW90aSA8cHVvdGlAaW53aW5kLml0PgorCVJlbW92ZWQgdGhlIHdpbmVkZWZhdWx0LnJlZyBtZXNzYWdlLgorCisJKiBkbGxzL3JwY3J0NC9ycGNfYmluZGluZy5jLCBkbGxzL3JwY3J0NC9ycGNfc2VydmVyLmM6CisJTWlrZSBIZWFybiA8bWlrZUBuYXZpLmN4PgorCVJlbW92ZSB0aGUgUlBDIGNvbm5lY3Rpb24gY2FjaGUgYXMgV2luZG93cyBkb2VzIG5vdCBhbGxvdyBtdWx0aXBsZQorCWJpbmRzIG9uIHRoZSBzYW1lIGNvbm5lY3Rpb24uCisKKwkqIGluY2x1ZGUvd2ludXNlci5oOiBBbmRyZWFzIE1vaHIgPGFuZGlAcmhseDAxLmZodC1lc3NsaW5nZW4uZGU+CisJQWRkZWQgc29tZSBtaXNzaW5nIHN0YXRpYyBjb250cm9sIHN0eWxlcy4KKworCSogZGxscy9rZXJuZWwvdGVzdHMvZGlyZWN0b3J5LmM6CisJQWRkZWQgYSBjb3VwbGUgb2YgdGVzdHMgZm9yIFNldEN1cnJlbnREaXJlY3RvcnlBLgorCisJKiBkbGxzL3dpbmVkb3MvaW50MjEuYzoKKwlDaGVjayBmb3Igbm9uLWV4aXN0ZW50IGRpcmVjdG9yeSBpbiBJTlQyMV9TZXRDdXJyZW50RGlyZWN0b3J5IHRvCisJcmV0dXJuIGEgcHJvcGVyIGVycm9yIHdoZW4gdGhlIGRpcmVjdG9yeSBpcyBub3Qgb24gdGhlIGN1cnJlbnQgZHJpdmUuCisKKwkqIGRsbHMvc2hsd2FwaS9vcmRpbmFsLmMsIGRsbHMvc2hsd2FwaS90ZXN0cy9vcmRpbmFsLmM6CisJU3RlZmFuIExlaWNodGVyIDxTdGVmYW4uTGVpY2h0ZXJAY2FtTGluZS5jb20+CisJQWRkZWQgdGVzdHMgZm9yIEdldEFjY2VwdExhbmd1YWdlc0EuCisKKzIwMDQtMDYtMTYgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CisKKwkqIGRsbHMvcnBjcnQ0L3JwY19iaW5kaW5nLmM6IE1pa2UgSGVhcm4gPG1pa2VAbmF2aS5jeD4KKwlDb3JyZWN0IGNvbm5lY3Rpb24gcmVsZWFzZXMgb24gZXJyb3IgcGF0aCBpbiBSUENSVDRfT3BlbkJpbmRpbmcuCisKKwkqIGRsbHMvd2luc3Bvb2wvdGVzdHMvaW5mby5jOgorCVN0ZWZhbiBMZWljaHRlciA8U3RlZmFuLkxlaWNodGVyQGNhbUxpbmUuY29tPgorCUFkZGVkIHNvbWUgbG9nZ2luZyB0byB0aGUgR2V0UHJpbnRlckRyaXZlckRpcmVjdG9yeUEgdGVzdHMuCisKKwkqIGRsbHMvd2lubW0vd2luZW9zcy9hdWRpby5jOiBGcmFuY29pcyBHb3VnZXQgPGZnb3VnZXRAY29kZXdlYXZlcnMuY29tPgorCUxvZyB0aGUgZm9ybWF0IHdoZW4gbWFwcGluZyB0aGUgc291bmQgZGV2aWNlIChvciBmYWlsaW5nIHRvKS4KKworCSogY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRsbHMvZ2RpL2ZyZWV0eXBlLmMsIGluY2x1ZGUvY29uZmlnLmguaW4sCisJICBvYmplY3RzL2ZvbnQuYzoKKwlIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCUFkZCBzdXBwb3J0IGZvciBiaXRtYXAgZm9udHMuCisKKwkqIHByb2dyYW1zL3dpbmV0ZXN0L01ha2VmaWxlLmluOiBBZGRlZCBtaXNzaW5nIGRlcGVuZGVuY3kuCisKKwkqIGRsbHMvbnRkbGwvY2Ryb20uYzogR2VyYWxkIFBmZWlmZXIgPGdlcmFsZEBwZmVpZmVyLmNvbT4KKwlSZW1vdmUgaW5jb3JyZWN0IHN1cHBvcnQgZm9yIEZyZWVCU0QgYW5kIE5ldEJTRCBpbgorCURWRF9TdGFydFNlc3Npb24oKS4KKworCSogZGxscy9yc2FiYXNlL21haW4uYzogR2VyYWxkIFBmZWlmZXIgPGdlcmFsZEBwZmVpZmVyLmNvbT4KKwlBdm9pZCB1bnVzZWQgdmFyaWFibGUgd2FybmluZy4KKworCSogZGxscy94MTFkcnYveHJlbmRlci5jOiBIdXcgRGF2aWVzIDxodXdAY29kZXdlYXZlcnMuY29tPgorCVJlbW92ZSBhbiBpbmNvcnJlY3QgTGVhdmVDcml0aWNhbFNlY3Rpb24uCisKKwkqIGRsbHMva2VybmVsL25lX21vZHVsZS5jLCBkbGxzL2tlcm5lbC9uZV9zZWdtZW50LmMsCisJICBkbGxzL2tlcm5lbC90aHVuay5jOgorCU1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgorCUZpeGVkIHNvbWUgaWxsZWdhbCBsdmFsdWUgY2FzdHMgLyBpbmNyZW1lbnRzLgorCisyMDA0LTA2LTE1ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEB3aW5laHEuY29tPgorCisJKiBWRVJTSU9OLCBjb25maWd1cmUsIEFOTk9VTkNFLCBDaGFuZ2VMb2c6IFJlbGVhc2UgMjAwNDA2MTUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIwMDQtMDYtMTUgIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQHdpbmVocS5jb20+CiAKIAkqIEFVVEhPUlM6IFVwZGF0ZWQgYXV0aG9ycyBsaXN0LgpkaWZmIC0tZ2l0IGEvVkVSU0lPTiBiL1ZFUlNJT04KaW5kZXggMzNkNDQyYS4uYzJhODZhYyAxMDA2NDQKLS0tIGEvVkVSU0lPTgorKysgYi9WRVJTSU9OCkBAIC0xICsxIEBACi1XaW5lIHZlcnNpb24gMjAwNDA2MTUKK1dpbmUgdmVyc2lvbiAyMDA0MDcxNgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IGExZjRkNTQuLmM0YzczMWUgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25maWd1cmUKQEAgLTEsNiArMSw2IEBACiAjISAvYmluL3NoCiAjIEd1ZXNzIHZhbHVlcyBmb3Igc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgYW5kIGNyZWF0ZSBNYWtlZmlsZXMuCi0jIEdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OSBmb3IgV2luZSAyMDA0MDYxNS4KKyMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5IGZvciBXaW5lIDIwMDQwNzE2LgogIwogIyBSZXBvcnQgYnVncyB0byA8d2luZS1kZXZlbEB3aW5laHEub3JnPi4KICMKQEAgLTI2OSw4ICsyNjksOCBAQAogIyBJZGVudGl0eSBvZiB0aGlzIHBhY2thZ2UuCiBQQUNLQUdFX05BTUU9J1dpbmUnCiBQQUNLQUdFX1RBUk5BTUU9J3dpbmUnCi1QQUNLQUdFX1ZFUlNJT049JzIwMDQwNjE1JwotUEFDS0FHRV9TVFJJTkc9J1dpbmUgMjAwNDA2MTUnCitQQUNLQUdFX1ZFUlNJT049JzIwMDQwNzE2JworUEFDS0FHRV9TVFJJTkc9J1dpbmUgMjAwNDA3MTYnCiBQQUNLQUdFX0JVR1JFUE9SVD0nd2luZS1kZXZlbEB3aW5laHEub3JnJwogCiBhY191bmlxdWVfZmlsZT0ic2VydmVyL2F0b20uYyIKQEAgLTc4OCw3ICs3ODgsNyBAQAogICAjIE9taXQgc29tZSBpbnRlcm5hbCBvciBvYnNvbGV0ZSBvcHRpb25zIHRvIG1ha2UgdGhlIGxpc3QgbGVzcyBpbXBvc2luZy4KICAgIyBUaGlzIG1lc3NhZ2UgaXMgdG9vIGxvbmcgdG8gYmUgYSBzdHJpbmcgaW4gdGhlIEEvVVggMy4xIHNoLgogICBjYXQgPDxfQUNFT0YKLVxgY29uZmlndXJlJyBjb25maWd1cmVzIFdpbmUgMjAwNDA2MTUgdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgorXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgV2luZSAyMDA0MDcxNiB0byBhZGFwdCB0byBtYW55IGtpbmRzIG9mIHN5c3RlbXMuCiAKIFVzYWdlOiAkMCBbT1BUSU9OXS4uLiBbVkFSPVZBTFVFXS4uLgogCkBAIC04NTMsNyArODUzLDcgQEAKIAogaWYgdGVzdCAtbiAiJGFjX2luaXRfaGVscCI7IHRoZW4KICAgY2FzZSAkYWNfaW5pdF9oZWxwIGluCi0gICAgIHNob3J0IHwgcmVjdXJzaXZlICkgZWNobyAiQ29uZmlndXJhdGlvbiBvZiBXaW5lIDIwMDQwNjE1OiI7OworICAgICBzaG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRpb24gb2YgV2luZSAyMDA0MDcxNjoiOzsKICAgIGVzYWMKICAgY2F0IDw8XF9BQ0VPRgogCkBAIC05ODIsNyArOTgyLDcgQEAKIHRlc3QgLW4gIiRhY19pbml0X2hlbHAiICYmIGV4aXQgMAogaWYgJGFjX2luaXRfdmVyc2lvbjsgdGhlbgogICBjYXQgPDxcX0FDRU9GCi1XaW5lIGNvbmZpZ3VyZSAyMDA0MDYxNQorV2luZSBjb25maWd1cmUgMjAwNDA3MTYKIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OQogCiBDb3B5cmlnaHQgKEMpIDIwMDMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCkBAIC05OTYsNyArOTk2LDcgQEAKIFRoaXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCiBydW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlkIGRlYnVnZ2luZyBpZiBjb25maWd1cmUgbWFrZXMgYSBtaXN0YWtlLgogCi1JdCB3YXMgY3JlYXRlZCBieSBXaW5lICRhc19tZSAyMDA0MDYxNSwgd2hpY2ggd2FzCitJdCB3YXMgY3JlYXRlZCBieSBXaW5lICRhc19tZSAyMDA0MDcxNiwgd2hpY2ggd2FzCiBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKIAogICAkICQwICRACkBAIC0yMDU0OCw3ICsyMDU0OCw3IEBACiB9ID4mNQogY2F0ID4mNSA8PF9DU0VPRgogCi1UaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFdpbmUgJGFzX21lIDIwMDQwNjE1LCB3aGljaCB3YXMKK1RoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgV2luZSAkYXNfbWUgMjAwNDA3MTYsIHdoaWNoIHdhcwogZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCiAKICAgQ09ORklHX0ZJTEVTICAgID0gJENPTkZJR19GSUxFUwpAQCAtMjA2MTEsNyArMjA2MTEsNyBAQAogCiBjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgogYWNfY3NfdmVyc2lvbj0iXFwKLVdpbmUgY29uZmlnLnN0YXR1cyAyMDA0MDYxNQorV2luZSBjb25maWcuc3RhdHVzIDIwMDQwNzE2CiBjb25maWd1cmVkIGJ5ICQwLCBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTksCiAgIHdpdGggb3B0aW9ucyBcXCJgZWNobyAiJGFjX2NvbmZpZ3VyZV9hcmdzIiB8IHNlZCAncy9bXFwiIlxgXCRdL1xcXFwmL2cnYFxcIgogCg==