ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtLzAwLUlOREVYIGIvRG9jdW1lbnRhdGlvbi9hcm0vMDAtSU5ERVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDc1M2ZlNQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtLzAwLUlOREVYCkBAIC0wLDAgKzEsMjAgQEAKKzAwLUlOREVYCisJLSB0aGlzIGZpbGUKK0Jvb3RpbmcKKwktIHJlcXVpcmVtZW50cyBmb3IgYm9vdGluZworSW50ZXJydXB0cworCS0gQVJNIEludGVycnVwdCBzdWJzeXN0ZW0gZG9jdW1lbnRhdGlvbgorTmV0d2luZGVyCisJLSBOZXR3aW5kZXIgc3BlY2lmaWMgZG9jdW1lbnRhdGlvbgorUkVBRE1FCisJLSBHZW5lcmFsIEFSTSBkb2N1bWVudGF0aW9uCitTQTExMDAKKwktIFNBMTEwMCBkb2N1bWVudGF0aW9uCitYU2NhbGUKKwktIFhTY2FsZSBkb2N1bWVudGF0aW9uCitlbXBlZworCS0gRW1wZWcgZG9jdW1lbnRhdGlvbgorbWVtX2FsaWdubWVudAorCS0gYWxpZ25tZW50IGFib3J0IGhhbmRsZXIgZG9jdW1lbnRhdGlvbgorbndmcGUKKwktIE5XRlBFIGZsb2F0aW5nIHBvaW50IGVtdWxhdG9yIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL0Jvb3RpbmcgYi9Eb2N1bWVudGF0aW9uL2FybS9Cb290aW5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhZDU2NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9Cb290aW5nCkBAIC0wLDAgKzEsMTQxIEBACisJCQlCb290aW5nIEFSTSBMaW51eAorCQkJPT09PT09PT09PT09PT09PT0KKworQXV0aG9yOglSdXNzZWxsIEtpbmcKK0RhdGUgIDogMTggTWF5IDIwMDIKKworVGhlIGZvbGxvd2luZyBkb2N1bWVudGF0aW9uIGlzIHJlbGV2YW50IHRvIDIuNC4xOC1ybWs2IGFuZCBiZXlvbmQuCisKK0luIG9yZGVyIHRvIGJvb3QgQVJNIExpbnV4LCB5b3UgcmVxdWlyZSBhIGJvb3QgbG9hZGVyLCB3aGljaCBpcyBhIHNtYWxsCitwcm9ncmFtIHRoYXQgcnVucyBiZWZvcmUgdGhlIG1haW4ga2VybmVsLiAgVGhlIGJvb3QgbG9hZGVyIGlzIGV4cGVjdGVkCit0byBpbml0aWFsaXNlIHZhcmlvdXMgZGV2aWNlcywgYW5kIGV2ZW50dWFsbHkgY2FsbCB0aGUgTGludXgga2VybmVsLAorcGFzc2luZyBpbmZvcm1hdGlvbiB0byB0aGUga2VybmVsLgorCitFc3NlbnRpYWxseSwgdGhlIGJvb3QgbG9hZGVyIHNob3VsZCBwcm92aWRlIChhcyBhIG1pbmltdW0pIHRoZQorZm9sbG93aW5nOgorCisxLiBTZXR1cCBhbmQgaW5pdGlhbGlzZSB0aGUgUkFNLgorMi4gSW5pdGlhbGlzZSBvbmUgc2VyaWFsIHBvcnQuCiszLiBEZXRlY3QgdGhlIG1hY2hpbmUgdHlwZS4KKzQuIFNldHVwIHRoZSBrZXJuZWwgdGFnZ2VkIGxpc3QuCis1LiBDYWxsIHRoZSBrZXJuZWwgaW1hZ2UuCisKKworMS4gU2V0dXAgYW5kIGluaXRpYWxpc2UgUkFNCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRXhpc3RpbmcgYm9vdCBsb2FkZXJzOgkJTUFOREFUT1JZCitOZXcgYm9vdCBsb2FkZXJzOgkJTUFOREFUT1JZCisKK1RoZSBib290IGxvYWRlciBpcyBleHBlY3RlZCB0byBmaW5kIGFuZCBpbml0aWFsaXNlIGFsbCBSQU0gdGhhdCB0aGUKK2tlcm5lbCB3aWxsIHVzZSBmb3Igdm9sYXRpbGUgZGF0YSBzdG9yYWdlIGluIHRoZSBzeXN0ZW0uICBJdCBwZXJmb3JtcwordGhpcyBpbiBhIG1hY2hpbmUgZGVwZW5kZW50IG1hbm5lci4gIChJdCBtYXkgdXNlIGludGVybmFsIGFsZ29yaXRobXMKK3RvIGF1dG9tYXRpY2FsbHkgbG9jYXRlIGFuZCBzaXplIGFsbCBSQU0sIG9yIGl0IG1heSB1c2Uga25vd2xlZGdlIG9mCit0aGUgUkFNIGluIHRoZSBtYWNoaW5lLCBvciBhbnkgb3RoZXIgbWV0aG9kIHRoZSBib290IGxvYWRlciBkZXNpZ25lcgorc2VlcyBmaXQuKQorCisKKzIuIEluaXRpYWxpc2Ugb25lIHNlcmlhbCBwb3J0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitFeGlzdGluZyBib290IGxvYWRlcnM6CQlPUFRJT05BTCwgUkVDT01NRU5ERUQKK05ldyBib290IGxvYWRlcnM6CQlPUFRJT05BTCwgUkVDT01NRU5ERUQKKworVGhlIGJvb3QgbG9hZGVyIHNob3VsZCBpbml0aWFsaXNlIGFuZCBlbmFibGUgb25lIHNlcmlhbCBwb3J0IG9uIHRoZQordGFyZ2V0LiAgVGhpcyBhbGxvd3MgdGhlIGtlcm5lbCBzZXJpYWwgZHJpdmVyIHRvIGF1dG9tYXRpY2FsbHkgZGV0ZWN0Cit3aGljaCBzZXJpYWwgcG9ydCBpdCBzaG91bGQgdXNlIGZvciB0aGUga2VybmVsIGNvbnNvbGUgKGdlbmVyYWxseQordXNlZCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLCBvciBjb21tdW5pY2F0aW9uIHdpdGggdGhlIHRhcmdldC4pCisKK0FzIGFuIGFsdGVybmF0aXZlLCB0aGUgYm9vdCBsb2FkZXIgY2FuIHBhc3MgdGhlIHJlbGV2YW50ICdjb25zb2xlPScKK29wdGlvbiB0byB0aGUga2VybmVsIHZpYSB0aGUgdGFnZ2VkIGxpc3RzIHNwZWNpZnlpbmcgdGhlIHBvcnQsIGFuZAorc2VyaWFsIGZvcm1hdCBvcHRpb25zIGFzIGRlc2NyaWJlZCBpbgorCisgICAgICAgRG9jdW1lbnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQuCisKKworMy4gRGV0ZWN0IHRoZSBtYWNoaW5lIHR5cGUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0V4aXN0aW5nIGJvb3QgbG9hZGVyczoJCU9QVElPTkFMCitOZXcgYm9vdCBsb2FkZXJzOgkJTUFOREFUT1JZCisKK1RoZSBib290IGxvYWRlciBzaG91bGQgZGV0ZWN0IHRoZSBtYWNoaW5lIHR5cGUgaXRzIHJ1bm5pbmcgb24gYnkgc29tZQorbWV0aG9kLiAgV2hldGhlciB0aGlzIGlzIGEgaGFyZCBjb2RlZCB2YWx1ZSBvciBzb21lIGFsZ29yaXRobSB0aGF0Citsb29rcyBhdCB0aGUgY29ubmVjdGVkIGhhcmR3YXJlIGlzIGJleW9uZCB0aGUgc2NvcGUgb2YgdGhpcyBkb2N1bWVudC4KK1RoZSBib290IGxvYWRlciBtdXN0IHVsdGltYXRlbHkgYmUgYWJsZSB0byBwcm92aWRlIGEgTUFDSF9UWVBFX3h4eAordmFsdWUgdG8gdGhlIGtlcm5lbC4gKHNlZSBsaW51eC9hcmNoL2FybS90b29scy9tYWNoLXR5cGVzKS4KKworCis0LiBTZXR1cCB0aGUga2VybmVsIHRhZ2dlZCBsaXN0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0V4aXN0aW5nIGJvb3QgbG9hZGVyczoJCU9QVElPTkFMLCBISUdITFkgUkVDT01NRU5ERUQKK05ldyBib290IGxvYWRlcnM6CQlNQU5EQVRPUlkKKworVGhlIGJvb3QgbG9hZGVyIG11c3QgY3JlYXRlIGFuZCBpbml0aWFsaXNlIHRoZSBrZXJuZWwgdGFnZ2VkIGxpc3QuCitBIHZhbGlkIHRhZ2dlZCBsaXN0IHN0YXJ0cyB3aXRoIEFUQUdfQ09SRSBhbmQgZW5kcyB3aXRoIEFUQUdfTk9ORS4KK1RoZSBBVEFHX0NPUkUgdGFnIG1heSBvciBtYXkgbm90IGJlIGVtcHR5LiAgQW4gZW1wdHkgQVRBR19DT1JFIHRhZworaGFzIHRoZSBzaXplIGZpZWxkIHNldCB0byAnMicgKDB4MDAwMDAwMDIpLiAgVGhlIEFUQUdfTk9ORSBtdXN0IHNldAordGhlIHNpemUgZmllbGQgdG8gemVyby4KKworQW55IG51bWJlciBvZiB0YWdzIGNhbiBiZSBwbGFjZWQgaW4gdGhlIGxpc3QuICBJdCBpcyB1bmRlZmluZWQKK3doZXRoZXIgYSByZXBlYXRlZCB0YWcgYXBwZW5kcyB0byB0aGUgaW5mb3JtYXRpb24gY2FycmllZCBieSB0aGUKK3ByZXZpb3VzIHRhZywgb3Igd2hldGhlciBpdCByZXBsYWNlcyB0aGUgaW5mb3JtYXRpb24gaW4gaXRzCitlbnRpcmV0eTsgc29tZSB0YWdzIGJlaGF2ZSBhcyB0aGUgZm9ybWVyLCBvdGhlcnMgdGhlIGxhdHRlci4KKworVGhlIGJvb3QgbG9hZGVyIG11c3QgcGFzcyBhdCBhIG1pbmltdW0gdGhlIHNpemUgYW5kIGxvY2F0aW9uIG9mCit0aGUgc3lzdGVtIG1lbW9yeSwgYW5kIHJvb3QgZmlsZXN5c3RlbSBsb2NhdGlvbi4gIFRoZXJlZm9yZSwgdGhlCittaW5pbXVtIHRhZ2dlZCBsaXN0IHNob3VsZCBsb29rOgorCisJKy0tLS0tLS0tLS0tKworYmFzZSAtPgl8IEFUQUdfQ09SRSB8ICB8CisJKy0tLS0tLS0tLS0tKyAgfAorCXwgQVRBR19NRU0gIHwgIHwgaW5jcmVhc2luZyBhZGRyZXNzCisJKy0tLS0tLS0tLS0tKyAgfAorCXwgQVRBR19OT05FIHwgIHwKKwkrLS0tLS0tLS0tLS0rICB2CisKK1RoZSB0YWdnZWQgbGlzdCBzaG91bGQgYmUgc3RvcmVkIGluIHN5c3RlbSBSQU0uCisKK1RoZSB0YWdnZWQgbGlzdCBtdXN0IGJlIHBsYWNlZCBpbiBhIHJlZ2lvbiBvZiBtZW1vcnkgd2hlcmUgbmVpdGhlcgordGhlIGtlcm5lbCBkZWNvbXByZXNzb3Igbm9yIGluaXRyZCAnYm9vdHAnIHByb2dyYW0gd2lsbCBvdmVyd3JpdGUKK2l0LiAgVGhlIHJlY29tbWVuZGVkIHBsYWNlbWVudCBpcyBpbiB0aGUgZmlyc3QgMTZLaUIgb2YgUkFNLgorCis1LiBDYWxsaW5nIHRoZSBrZXJuZWwgaW1hZ2UKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitFeGlzdGluZyBib290IGxvYWRlcnM6CQlNQU5EQVRPUlkKK05ldyBib290IGxvYWRlcnM6CQlNQU5EQVRPUlkKKworVGhlcmUgYXJlIHR3byBvcHRpb25zIGZvciBjYWxsaW5nIHRoZSBrZXJuZWwgekltYWdlLiAgSWYgdGhlIHpJbWFnZQoraXMgc3RvcmVkIGluIGZsYXNoLCBhbmQgaXMgbGlua2VkIGNvcnJlY3RseSB0byBiZSBydW4gZnJvbSBmbGFzaCwKK3RoZW4gaXQgaXMgbGVnYWwgZm9yIHRoZSBib290IGxvYWRlciB0byBjYWxsIHRoZSB6SW1hZ2UgaW4gZmxhc2gKK2RpcmVjdGx5LgorCitUaGUgekltYWdlIG1heSBhbHNvIGJlIHBsYWNlZCBpbiBzeXN0ZW0gUkFNIChhdCBhbnkgbG9jYXRpb24pIGFuZAorY2FsbGVkIHRoZXJlLiAgTm90ZSB0aGF0IHRoZSBrZXJuZWwgdXNlcyAxNksgb2YgUkFNIGJlbG93IHRoZSBpbWFnZQordG8gc3RvcmUgcGFnZSB0YWJsZXMuICBUaGUgcmVjb21tZW5kZWQgcGxhY2VtZW50IGlzIDMyS2lCIGludG8gUkFNLgorCitJbiBlaXRoZXIgY2FzZSwgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIG11c3QgYmUgbWV0OgorCistIFF1aWVzY2UgYWxsIERNQSBjYXBhYmxlIGRldmljZXNzIHNvIHRoYXQgbWVtb3J5IGRvZXMgbm90IGdldAorICBjb3JydXB0ZWQgYnkgYm9ndXMgbmV0d29yayBwYWNrZXRzIG9yIGRpc2sgZGF0YS4gVGhpcyB3aWxsIHNhdmUKKyAgeW91IG1hbnkgaG91cnMgb2YgZGVidWcuCisKKy0gQ1BVIHJlZ2lzdGVyIHNldHRpbmdzCisgIHIwID0gMCwKKyAgcjEgPSBtYWNoaW5lIHR5cGUgbnVtYmVyIGRpc2NvdmVyZWQgaW4gKDMpIGFib3ZlLgorICByMiA9IHBoeXNpY2FsIGFkZHJlc3Mgb2YgdGFnZ2VkIGxpc3QgaW4gc3lzdGVtIFJBTS4KKworLSBDUFUgbW9kZQorICBBbGwgZm9ybXMgb2YgaW50ZXJydXB0cyBtdXN0IGJlIGRpc2FibGVkIChJUlFzIGFuZCBGSVFzKQorICBUaGUgQ1BVIG11c3QgYmUgaW4gU1ZDIG1vZGUuICAoQSBzcGVjaWFsIGV4Y2VwdGlvbiBleGlzdHMgZm9yIEFuZ2VsKQorCistIENhY2hlcywgTU1VcworICBUaGUgTU1VIG11c3QgYmUgb2ZmLgorICBJbnN0cnVjdGlvbiBjYWNoZSBtYXkgYmUgb24gb3Igb2ZmLgorICBEYXRhIGNhY2hlIG11c3QgYmUgb2ZmLgorCistIFRoZSBib290IGxvYWRlciBpcyBleHBlY3RlZCB0byBjYWxsIHRoZSBrZXJuZWwgaW1hZ2UgYnkganVtcGluZworICBkaXJlY3RseSB0byB0aGUgZmlyc3QgaW5zdHJ1Y3Rpb24gb2YgdGhlIGtlcm5lbCBpbWFnZS4KKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vSVhQMjAwMCBiL0RvY3VtZW50YXRpb24vYXJtL0lYUDIwMDAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTAxNDhiNgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL0lYUDIwMDAKQEAgLTAsMCArMSw2OSBAQAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitSZWxlYXNlIE5vdGVzIGZvciBMaW51eCBvbiBJbnRlbCdzIElYUDIwMDAgTmV0d29yayBQcm9jZXNzb3IKKworTWFpbnRhaW5lZCBieSBEZWVwYWsgU2F4ZW5hIDxkc2F4ZW5hQHBsZXhpdHkubmV0PgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisxLiBPdmVydmlldworCitJbnRlbCdzIElYUDIwMDAgZmFtaWx5IG9mIE5QVXMgKElYUDI0MDAsIElYUDI4MDAsIElYUDI4NTApIGlzIGRlc2lnbmVkCitmb3IgaGlnaC1wZXJmb3JtYW5jZSBuZXR3b3JrIGFwcGxpY2F0aW9ucyBzdWNoIGhpZ2gtYXZhaWxhYmlsaXR5Cit0ZWxlY29tIHN5c3RlbXMuIEluIGFkZGl0aW9uIHRvIGFuIFhTY2FsZSBjb3JlLCBpdCBjb250YWlucyB1cCB0byA4CisiTWljcm9FbmdpbmVzIiB0aGF0IHJ1biBzcGVjaWFsIGNvZGUsIHNldmVyYWwgaGlnaC1lbmQgbmV0d29ya2luZyAKK2ludGVyZmFjZXMgKFVUT1BJQSwgU1BJLCBldGMpLCBhIFBDSSBob3N0IGJyaWRnZSwgb25lIHNlcmlhbCBwb3J0LAorZmxhc2ggaW50ZXJmYWNlLCBhbmQgc29tZSBvdGhlciBvZGRzIGFuZCBlbmRzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlOgorCitodHRwOi8vZGV2ZWxvcGVyLmludGVsLmNvbS9kZXNpZ24vbmV0d29yay9wcm9kdWN0cy9ucGZhbWlseS9peHAyeHh4Lmh0bQorCisyLiBMaW51eCBTdXBwb3J0CisKK0xpbnV4IGN1cnJlbnRseSBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGZlYXR1cmVzIG9uIHRoZSBJWFAyMDAwIE5QVXM6CisKKy0gT24tY2hpcCBzZXJpYWwKKy0gUENJCistIEZsYXNoIChNVEQvSkZGUzIpCistIEkyQyB0aHJvdWdoIEdQSU8KKy0gVGltZXJzICh3YXRjaGRvZywgT1MpCisKK1RoYXQgaXMgYWJvdXQgYWxsIHdlIGNhbiBzdXBwb3J0IHVuZGVyIExpbnV4IEFUTSBiL2MgdGhlIGNvcmUgbmV0d29ya2luZworY29tcG9uZW50cyBvZiB0aGUgY2hpcCBhcmUgYWNjZXNzZWQgdmlhIEludGVsJ3MgY2xvc2VkIHNvdXJjZSBTREsuIAorUGxlYXNlIGNvbnRhY3QgSW50ZWwgZGlyZWN0bHkgb24gaXNzdWVzIHdpdGggdXNpbmcgdGhvc2UuIFRoZXJlIGlzCithbHNvIGEgbWFpbGluZyBsaXN0IHJ1biBieSBzb21lIGZvbGtzIGF0IFByaW5jZXRvbiBVbml2ZXJzaXR5IHRoYXQgbWlnaHQKK2JlIG9mIGhlbHA6ICBodHRwczovL2xpc3RzLmNzLnByaW5jZXRvbi5lZHUvbWFpbG1hbi9saXN0aW5mby9peHAyeHh4CisKK1dIQVRFVkVSIFlPVSBETywgRE8gTk9UIFBPU1QgRU1BSUwgVE8gVEhFIExJTlVYLUFSTSBPUiBMSU5VWC1BUk0tS0VSTkVMCitNQUlMSU5HIExJU1RTIFJFR0FSRElORyBUSEUgSU5URUwgU0RLLgorCiszLiBTdXBwb3J0ZWQgUGxhdGZvcm1zCisKKy0gSW50ZWwgSVhEUDI0MDAgUmVmZXJlbmNlIFBsYXRmb3JtCistIEludGVsIElYRFAyODAwIFJlZmVyZW5jZSBQbGF0Zm9ybQorLSBJbnRlbCBJWERQMjQwMSBSZWZlcmVuY2UgUGxhdGZvcm0KKy0gSW50ZWwgSVhEUDI4MDEgUmVmZXJlbmNlIFBsYXRmb3JtCistIFJhZGlTeXMgRU5QLTI2MTEKKworNC4gVXNhZ2UgTm90ZXMKKworLSBUaGUgSVhQMjAwMCBwbGF0Zm9ybXMgdXN1YWxseSBoYXZlIHJhdGhlciBjb21wbGV4IFBDSSBidXMgdG9wb2xvZ2llcworICB3aXRoIGxhcmdlIG1lbW9yeSBzcGFjZSByZXF1aXJlbWVudHMuIEluIGFkZGl0aW9uLCBiL2Mgb2YgdGhlIHdheSB0aGUKKyAgSW50ZWwgU0RLIGlzIGRlc2lnbmVkLCBkZXZpY2VzIGFyZSBlbnVtZXJhdGVkIGluIGEgdmVyeSBzcGVjaWZpYworICB3YXkuIEIvYyBvZiB0aGlzIHRoaXMsIHdlIHVzZSAicGNpPWZpcm13YXJlIiBvcHRpb24gaW4gdGhlIGtlcm5lbAorICBjb21tYW5kIGxpbmUgc28gdGhhdCB3ZSBkbyBub3QgcmUtZW51bWVyYXRlIHRoZSBidXMuCisKKy0gSVhEUDJ4MDEgc3lzdGVtcyBoYXZlIHZhcmlhYmxlIGNsb2NrIHRpY2sgcmF0ZXMgdGhhdCB3ZSBjYW5ub3QgZGV0ZXJtaW5lIAorICB2aWEgSFcgcmVnaXN0ZXJzLiBUaGUgIml4ZHAyeDAxX2Nsaz1YWFgiIGNtZCBsaW5lIG9wdGlvbnMgYWxsb3cgeW91CisgIHRvIHBhc3MgdGhlIGNsb2NrIHJhdGUgdG8gdGhlIGJvYXJkIHBvcnQuCisKKzUuIFRoYW5rcworCitUaGUgSVhQMjAwMCB3b3JrIGhhcyBiZWVuIGZ1bmRlZCBieSBJbnRlbCBDb3JwLiBhbmQgTW9udGFWaXN0YSBTb2Z0d2FyZSwgSW5jLgorCitUaGUgZm9sbG93aW5nIHBlb3BsZSBoYXZlIGNvbnRyaWJ1dGVkIHBhdGNoZXMvY29tbWVudHMvZXRjOgorCitOYWVlbSBGLiBBZnphbAorTGVubmVydCBCdXl0ZW5oZWsKK0plZmZyZXkgRGFseQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMYXN0IFVwZGF0ZTogOC8wOS8yMDA0CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9JWFA0eHggYi9Eb2N1bWVudGF0aW9uL2FybS9JWFA0eHgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDRjNmQzYQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL0lYUDR4eApAQCAtMCwwICsxLDE3NCBAQAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitSZWxlYXNlIE5vdGVzIGZvciBMaW51eCBvbiBJbnRlbCdzIElYUDR4eCBOZXR3b3JrIFByb2Nlc3NvcgorCitNYWludGFpbmVkIGJ5IERlZXBhayBTYXhlbmEgPGRzYXhlbmFAcGxleGl0eS5uZXQ+CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKzEuIE92ZXJ2aWV3CisKK0ludGVsJ3MgSVhQNHh4IG5ldHdvcmsgcHJvY2Vzc29yIGlzIGEgaGlnaGx5IGludGVncmF0ZWQgU09DIHRoYXQKK2lzIHRhcmdldGVkIGZvciBuZXR3b3JrIGFwcGxpY2F0aW9ucywgdGhvdWdoIGl0IGhhcyBiZWNvbWUgcG9wdWxhciAKK2luIGluZHVzdHJpYWwgY29udHJvbCBhbmQgb3RoZXIgYXJlYXMgZHVlIHRvIGxvdyBjb3N0IGFuZCBwb3dlcgorY29uc3VtcHRpb24uIFRoZSBJWFA0eHggZmFtaWx5IGN1cnJlbnRseSBjb25zaXN0cyBvZiBzZXZlcmFsIHByb2Nlc3NvcnMKK3RoYXQgc3VwcG9ydCBkaWZmZXJlbnQgbmV0d29yayBvZmZsb2FkIGZ1bmN0aW9ucyBzdWNoIGFzIGVuY3J5cHRpb24sCityb3V0aW5nLCBmaXJld2FsbGluZywgZXRjLiBUaGUgSVhQNDZ4IGZhbWlseSBpcyBhbiB1cGRhdGVkIHZlcnNpb24gd2hpY2gKK3N1cHBvcnRzIGZhc3RlciBzcGVlZHMsIG5ldyBtZW1vcnkgYW5kIGZsYXNoIGNvbmZpZ3VyYXRpb25zLCBhbmQgbW9yZQoraW50ZWdyYXRpb24gc3VjaCBhcyBhbiBvbi1jaGlwIEkyQyBjb250cm9sbGVyLgorCitGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgdmFyaW91cyB2ZXJzaW9ucyBvZiB0aGUgQ1BVLCBzZWU6CisKKyAgIGh0dHA6Ly9kZXZlbG9wZXIuaW50ZWwuY29tL2Rlc2lnbi9uZXR3b3JrL3Byb2R1Y3RzL25wZmFtaWx5L2l4cDR4eC5odG0KKworSW50ZWwgYWxzbyBtYWRlIHRoZSBJWENQMTEwMCBDUFUgZm9yIHNvbWV0aW1lIHdoaWNoIGlzIGFuIElYUDR4eCAKK3N0cmlwcGVkIG9mIG11Y2ggb2YgdGhlIG5ldHdvcmsgaW50ZWxsaWdlbmNlLgorCisyLiBMaW51eCBTdXBwb3J0CisKK0xpbnV4IGN1cnJlbnRseSBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGZlYXR1cmVzIG9uIHRoZSBJWFA0eHggY2hpcHM6CisKKy0gRHVhbCBzZXJpYWwgcG9ydHMKKy0gUENJIGludGVyZmFjZQorLSBGbGFzaCBhY2Nlc3MgKE1URC9KRkZTKQorLSBJMkMgdGhyb3VnaCBHUElPIG9uIElYUDQyeAorLSBHUElPIGZvciBpbnB1dC9vdXRwdXQvaW50ZXJydXB0cyAKKyAgU2VlIGluY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDR4eC9wbGF0Zm9ybS5oIGZvciBhY2Nlc3MgZnVuY3Rpb25zLgorLSBUaW1lcnMgKHdhdGNoZG9nLCBPUykKKworVGhlIGZvbGxvd2luZyBjb21wb25lbnRzIG9mIHRoZSBjaGlwcyBhcmUgbm90IHN1cHBvcnRlZCBieSBMaW51eCBhbmQKK3JlcXVpcmUgdGhlIHVzZSBvZiBJbnRlbCdzIHByb3BpZXRhcnkgQ1NSIHNvZnRhcmU6CisKKy0gVVNCIGRldmljZSBpbnRlcmZhY2UKKy0gTmV0d29yayBpbnRlcmZhY2VzIChIU1MsIFV0b3BpYSwgTlBFcywgZXRjKQorLSBOZXR3b3JrIG9mZmxvYWQgZnVuY3Rpb25hbGl0eQorCitJZiB5b3UgbmVlZCB0byB1c2UgYW55IG9mIHRoZSBhYm92ZSwgeW91IG5lZWQgdG8gZG93bmxvYWQgSW50ZWwncworc29mdHdhcmUgZnJvbToKKworICAgaHR0cDovL2RldmVsb3Blci5pbnRlbC5jb20vZGVzaWduL25ldHdvcmsvcHJvZHVjdHMvbnBmYW1pbHkvaXhwNDI1c3dyMS5odG0KKworRE8gTk9UIFBPU1QgUVVFU1RJT05TIFRPIFRIRSBMSU5VWCBNQUlMSU5HIExJU1RTIFJFR0FSRElORyBUSEUgUFJPUElFVEFSWQorU09GVFdBUkUuCisKK1RoZXJlIGFyZSBzZXZlcmFsIHdlYnNpdGVzIHRoYXQgcHJvdmlkZSBkaXJlY3Rpb25zL3BvaW50ZXJzIG9uIHVzaW5nCitJbnRlbCdzIHNvZnR3YXJlOgorCitodHRwOi8vaXhwNHh4LW9zZGcuc291cmNlZm9yZ2UubmV0LyAKKyAgIE9wZW4gU291cmNlIERldmVsb3BlcidzIEd1aWRlIGZvciB1c2luZyB1Q2xpbnV4IGFuZCB0aGUgSW50ZWwgbGlicmFyaWVzIAorCitodHRwOi8vZ2F0ZXdheW1ha2VyLnNvdXJjZWZvcmdlLm5ldC8gCisgICBTaW1wbGUgb25lIHBhZ2Ugc3VtbWFyeSBvZiBidWlsZGluZyBhIGdhdGV3YXkgdXNpbmcgYW4gSVhQNDI1IGFuZCBMaW51eAorCitodHRwOi8vaXhwNDI1LnNvdXJjZWZvcmdlLm5ldC8KKyAgIEFUTSBkZXZpY2UgZHJpdmVyIGZvciBJWFA0MjUgdGhhdCByZWxpZXMgb24gSW50ZWwncyBsaWJyYXJpZXMKKworMy4gS25vd24gSXNzdWVzL0xpbWl0YXRpb25zCisKKzNhLiBMaW1pdGVkIGluYm91bmQgUENJIHdpbmRvdworCitUaGUgSVhQNHh4IGZhbWlseSBhbGxvd3MgZm9yIHVwIHRvIDI1Nk1CIG9mIG1lbW9yeSBidXQgdGhlIFBDSSBpbnRlcmZhY2UKK2NhbiBvbmx5IGV4cG9zZSA2NE1CIG9mIHRoYXQgbWVtb3J5IHRvIHRoZSBQQ0kgYnVzLiBUaGlzIG1lYW5zIHRoYXQgaWYKK3lvdSBhcmUgcnVubmluZyB3aXRoID4gNjRNQiwgYWxsIFBDSSBidWZmZXJzIG91dHNpZGUgb2YgdGhlIGFjY2Vzc2libGUKK3JhbmdlIHdpbGwgYmUgYm91bmNlZCB1c2luZyB0aGUgcm91dGluZXMgaW4gYXJjaC9hcm0vY29tbW9uL2RtYWJvdW5jZS5jLgorICAgCiszYi4gTGltaXRlZCBvdXRib3VuZCBQQ0kgd2luZG93CisKK0lYUDR4eCBwcm92aWRlcyB0d28gbWV0aG9kcyBvZiBhY2Nlc3NpbmcgUENJIG1lbW9yeSBzcGFjZToKKworMSkgQSBkaXJlY3QgbWFwcGVkIHdpbmRvdyBmcm9tIDB4NDgwMDAwMDAgdG8gMHg0YmZmZmZmZiAoNjRNQikuCisgICBUbyBhY2Nlc3MgUENJIHZpYSB0aGlzIHNwYWNlLCB3ZSBzaW1wbHkgaW9yZW1hcCgpIHRoZSBCQVIKKyAgIGludG8gdGhlIGtlcm5lbCBhbmQgd2UgY2FuIHVzZSB0aGUgc3RhbmRhcmQgcmVhZFtid2xdL3dyaXRlW2J3bF0KKyAgIG1hY3Jvcy4gVGhpcyBpcyB0aGUgcHJlZmZlcmVkIG1ldGhvZCBkdWUgdG8gc3BlZWQgYnV0IGl0CisgICBsaW1pdHMgdGhlIHN5c3RlbSB0byBqdXN0IDY0TUIgb2YgUENJIG1lbW9yeS4gVGhpcyBjYW4gYmUgCisgICBwcm9ibGFtYXRpYyBpZiB1c2luZyB2aWRlbyBjYXJkcyBhbmQgb3RoZXIgbWVtb3J5LWhlYXZ5IGRldmljZXMuCisgICAgICAgICAgCisyKSBJZiA+IDY0TUIgb2YgbWVtb3J5IHNwYWNlIGlzIHJlcXVpcmVkLCB0aGUgSVhQNHh4IGNhbiBiZSAKKyAgIGNvbmZpZ3VyZWQgdG8gdXNlIGluZGlyZWN0IHJlZ2lzdGVycyB0byBhY2Nlc3MgUENJIFRoaXMgYWxsb3dzIAorICAgZm9yIHVwIHRvIDEyOE1CICgweDQ4MDAwMDAwIHRvIDB4NGZmZmZmZmYpIG9mIG1lbW9yeSBvbiB0aGUgYnVzLiAKKyAgIFRoZSBkaXNhZHZhbnRhZGdlIG9mIHRoaXMgaXMgdGhhdCBldmVyeSBQQ0kgYWNjZXNzIHJlcXVpcmVzIAorICAgdGhyZWUgbG9jYWwgcmVnaXN0ZXIgYWNjZXNzZXMgcGx1cyBhIHNwaW5sb2NrLCBidXQgaW4gc29tZSAKKyAgIGNhc2VzIHRoZSBwZXJmb3JtYW5jZSBoaXQgaXMgYWNjZXB0YWJsZS4gSW4gYWRkaXRpb24sIHlvdSBjYW5ub3QgCisgICBtbWFwKCkgUENJIGRldmljZXMgaW4gdGhpcyBjYXNlIGR1ZSB0byB0aGUgaW5kaXJlY3QgbmF0dXJlCisgICBvZiB0aGUgUENJIHdpbmRvdy4KKworQnkgZGVmYXVsdCwgdGhlIGRpcmVjdCBtZXRob2QgaXMgdXNlZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4gSWYKK3lvdSBuZWVkIG1vcmUgUENJIG1lbW9yeSwgZW5hYmxlIHRoZSBJWFA0WFhfSU5ESVJFQ1RfUENJIGNvbmZpZyBvcHRpb24uCisKKzNjLiBHUElPIGFzIEludGVycnVwdHMKKworQ3VycmVudGx5IHRoZSBjb2RlIG9ubHkgaGFuZGxlcyBsZXZlbC1zZW5zaXRpdmUgR1BJTyBpbnRlcnJ1cHRzIAorCis0LiBTdXBwb3J0ZWQgcGxhdGZvcm1zCisKK0FESSBFbmdpbmVlcmluZyBDb3lvdGUgR2F0ZXdheSBSZWZlcmVuY2UgUGxhdGZvcm0KK2h0dHA6Ly93d3cuYWRpZW5naW5lZXJpbmcuY29tL3Byb2R1Y3RzQ295b3RlLmh0bWwKKworICAgVGhlIEFESSBDb3lvdGUgcGxhdGZvcm0gaXMgcmVmZXJlbmNlIGRlc2lnbiBmb3IgdGhvc2UgYnVpbGRpbmcgCisgICBzbWFsbCByZXNpZGVudGlhbC9vZmZpY2UgZ2F0ZXdheXMuIE9uZSBOUEUgaXMgY29ubmVjdGVkIHRvIGEgMTAvMTAwCisgICBpbnRlcmZhY2UsIG9uZSB0byA0LXBvcnQgMTAvMTAwIHN3aXRjaCwgYW5kIHRoZSB0aGlyZCB0byBhbmQgQURTTAorICAgaW50ZXJmYWNlLiBJbiBhZGRpdGlvbiwgaXQgYWxzbyBzdXBwb3J0cyB0byBQT1RzIGludGVyZmFjZXMgY29ubmVjdGVkCisgICB2aWEgU0xJQ3MuIE5vdGUgdGhhdCB0aG9zZSBhcmUgbm90IHN1cHBvcnRlZCBieSBMaW51eCBBVE0uIEZpbmFsbHksCisgICB0aGUgcGxhdGZvcm0gaGFzIHR3byBtaW5pLVBDSSBzbG90cyB1c2VkIGZvciA4MDIuMTFbYmdhXSBjYXJkcy4KKyAgIEZpbmFsbHksIHRoZXJlIGlzIGFuIElERSBwb3J0IGhhbmdpbmcgb2ZmIHRoZSBleHBhbnNpb24gYnVzLgorCitHYXRld29ya3MgQXZpbGEgTmV0d29yayBQbGF0Zm9ybQoraHR0cDovL3d3dy5nYXRld29ya3MuY29tL2F2aWxhX3NiYy5odG0KKworICAgVGhlIEF2aWxhIHBsYXRmb3JtIGlzIGJhc2ljYWxseSBhbmQgSVhEUDQyNSB3aXRoIHRoZSA0IFBDSSBzbG90cworICAgcmVwbGFjZWQgd2l0aCBtaW5pLVBDSSBzbG90cyBhbmQgYSBDRiBJREUgaW50ZXJmYWNlIGhhbmdpbmcgb2ZmCisgICB0aGUgZXhwYW5zaW9uIGJ1cy4KKworSW50ZWwgSVhEUDQyNSBEZXZlbG9wbWVudCBQbGF0Zm9ybQoraHR0cDovL2RldmVsb3Blci5pbnRlbC5jb20vZGVzaWduL25ldHdvcmsvcHJvZHVjdHMvbnBmYW1pbHkvaXhkcDQyNS5odG0KKworICAgVGhpcyBpcyBJbnRlbCdzIHN0YW5kYXJkIHJlZmVyZW5jZSBwbGF0Zm9ybSBmb3IgdGhlIElYRFA0MjUgYW5kIGlzIAorICAgYWxzbyBrbm93biBhcyB0aGUgUmljaGZpZWxkIGJvYXJkLiBJdCBjb250YWlucyA0IFBDSSBzbG90cywgMTZNQgorICAgb2YgZmxhc2gsIHR3byAxMC8xMDAgcG9ydHMgYW5kIG9uZSBBRFNMIHBvcnQuCisKK0ludGVsIElYRFA0NjUgRGV2ZWxvcG1lbnQgUGxhdGZvcm0KK2h0dHA6Ly9kZXZlbG9wZXIuaW50ZWwuY29tL2Rlc2lnbi9uZXR3b3JrL3Byb2R1Y3RzL25wZmFtaWx5L2l4ZHA0NjUuaHRtCisKKyAgIFRoaXMgaXMgYmFzaWNhbGx5IGFuIElYRFA0MjUgd2l0aCBhbiBJWFA0NjUgYW5kIDMyTSBvZiBmbGFzaCBpbnN0ZWFkCisgICBvZiBqdXN0IDE2LgorCitJbnRlbCBJWERQRzQyNSBEZXZlbG9wbWVudCBQbGF0Zm9ybQorCisgICBUaGlzIGlzIGJhc2ljYWxseSBhbmQgQURJIENveW90ZSBib2FyZCB3aXRoIGEgTkVDIEVIQ0kgY29udHJvbGxlcgorICAgYWRkZWQuIE9uZSBpc3N1ZSB3aXRoIHRoaXMgYm9hcmQgaXMgdGhhdCB0aGUgbWluaS1QQ0kgc2xvdHMgb25seQorICAgaGF2ZSB0aGUgMy4zdiBsaW5lIGNvbm5lY3RlZCwgc28geW91IGNhbid0IHVzZSBhIFBDSSB0byBtaW5pLVBDSQorICAgYWRhcHRlciB3aXRoIGFuIEUxMDAgY2FyZC4gU28gdG8gTkZTIHJvb3QgeW91IG5lZWQgdG8gdXNlIGVpdGhlcgorICAgdGhlIENTUiBvciBhIFdpRmkgY2FyZCBhbmQgYSByYW1kaXNrIHRoYXQgQk9PVFBzIGFuZCB0aGVuIGRvZXMKKyAgIGEgcGl2b3Rfcm9vdCB0byBORlMuCisKK01vdG9yb2xhIFByUE1DMTEwMCBQcm9jZXNzb3IgTWV6YW5pbmUgQ2FyZAoraHR0cDovL3d3dy5mb3VudGFpbnN5cy5jb20vZGF0YXNoZWV0L1ByUE1DMTEwMC5wZGYKKworICAgVGhlIFByUE1DMTEwMCBpcyBiYXNlZCBvbiB0aGUgSVhDUDExMDAgYW5kIGlzIG1lYW50IHRvIHBsdWcgaW50bworICAgYW5kIElYUDI0MDAvMjgwMCBzeXN0ZW0gdG8gYWN0IGFzIHRoZSBzeXN0ZW0gY29udHJvbGxlci4gSXQgc2ltcGx5CisgICBjb250YWlucyBhIENQVSBhbmQgMTZNQiBvZiBmbGFzaCBvbiB0aGUgYm9hcmQgYW5kIG5lZWRzIHRvIGJlCisgICBwbHVnZ2VkIGludG8gYSBjYXJyaWVyIGJvYXJkIHRvIGZ1bmN0aW9uLiBDdXJyZW50bHkgTGludXggb25seQorICAgc3VwcG9ydHMgdGhlIE1vdG9yb2xhIFByUE1DIGNhcnJpZXIgYm9hcmQgZm9yIHRoaXMgcGxhdGZvcm0uCisgICBTZWUgaHR0cHM6Ly9tY2cubW90b3JvbGEuY29tL3VzL2RzL3BkZi9kczAxNDQucGRmIGZvciBpbmZvCisgICBvbiB0aGUgY2FycmllciBib2FyZC4KKworNS4gVE9ETyBMSVNUCisKKy0gQWRkIHN1cHBvcnQgZm9yIENveW90ZSBJREUKKy0gQWRkIHN1cHBvcnQgZm9yIGVkZ2UtYmFzZWQgR1BJTyBpbnRlcnJ1cHRzCistIEFkZCBzdXBwb3J0IGZvciBDRiBJREUgb24gZXhwYW5zaW9uIGJ1cworCis2LiBUaGFua3MKKworVGhlIElYUDR4eCB3b3JrIGhhcyBiZWVuIGZ1bmRlZCBieSBJbnRlbCBDb3JwLiBhbmQgTW9udGFWaXN0YSBTb2Z0d2FyZSwgSW5jLgorCitUaGUgZm9sbG93aW5nIHBlb3BsZSBoYXZlIGNvbnRyaWJ1dGVkIHBhdGNoZXMvY29tbWVudHMvZXRjOgorCitMZW5uZXJ0eSBCdXl0ZW5oZWsKK0x1dHogSmFlbmlja2UKK0p1c3RpbiBNYXlmaWVsZAorUm9iZXJ0IEUuIFJhbnNsYW0KK1tJIGtub3cgSSd2ZSBmb3Jnb3R0ZW4gb3RoZXJzLCBwbGVhc2UgZW1haWwgbWUgdG8gYmUgYWRkZWRdIAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0xhc3QgVXBkYXRlOiAwMS8wNC8yMDA1CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9JbnRlcnJ1cHRzIGIvRG9jdW1lbnRhdGlvbi9hcm0vSW50ZXJydXB0cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MmM5M2RlCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vSW50ZXJydXB0cwpAQCAtMCwwICsxLDE3MyBAQAorMi41LjItcm1rNQorLS0tLS0tLS0tLQorCitUaGlzIGlzIHRoZSBmaXJzdCBrZXJuZWwgdGhhdCBjb250YWlucyBhIG1ham9yIHNoYWtlIHVwIG9mIHNvbWUgb2YgdGhlCittYWpvciBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgc3Vic3lzdGVtcy4KKworRmlyc3RseSwgaXQgY29udGFpbnMgc29tZSBwcmV0dHkgbWFqb3IgY2hhbmdlcyB0byB0aGUgd2F5IHdlIGhhbmRsZSB0aGUKK01NVSBUTEIuICBFYWNoIE1NVSBUTEIgdmFyaWFudCBpcyBub3cgaGFuZGxlZCBjb21wbGV0ZWx5IHNlcGFyYXRlbHkgLQord2UgaGF2ZSBUTEIgdjMsIFRMQiB2NCAod2l0aG91dCB3cml0ZSBidWZmZXIpLCBUTEIgdjQgKHdpdGggd3JpdGUgYnVmZmVyKSwKK2FuZCBmaW5hbGx5IFRMQiB2NCAod2l0aCB3cml0ZSBidWZmZXIsIHdpdGggSSBUTEIgaW52YWxpZGF0ZSBlbnRyeSkuCitUaGVyZSBpcyBtb3JlIGFzc2VtYmx5IGNvZGUgaW5zaWRlIGVhY2ggb2YgdGhlc2UgZnVuY3Rpb25zLCBtYWlubHkgdG8KK2FsbG93IG1vcmUgZmxleGlibGUgVExCIGhhbmRsaW5nIGZvciB0aGUgZnV0dXJlLgorCitTZWNvbmRseSwgdGhlIElSUSBzdWJzeXN0ZW0uCisKK1RoZSAyLjUga2VybmVscyB3aWxsIGJlIGhhdmluZyBtYWpvciBjaGFuZ2VzIHRvIHRoZSB3YXkgSVJRcyBhcmUgaGFuZGxlZC4KK1VuZm9ydHVuYXRlbHksIHRoaXMgbWVhbnMgdGhhdCBtYWNoaW5lIHR5cGVzIHRoYXQgdG91Y2ggdGhlIGlycV9kZXNjW10KK2FycmF5IChiYXNpY2FsbHkgYWxsIG1hY2hpbmUgdHlwZXMpIHdpbGwgYnJlYWssIGFuZCB0aGlzIG1lYW5zIGV2ZXJ5CittYWNoaW5lIHR5cGUgdGhhdCB3ZSBjdXJyZW50bHkgaGF2ZS4KKworTGV0cyB0YWtlIGFuIGV4YW1wbGUuICBPbiB0aGUgQXNzYWJldCB3aXRoIE5lcG9uc2V0LCB3ZSBoYXZlOgorCisgICAgICAgICAgICAgICAgICBHUElPMjUgICAgICAgICAgICAgICAgIElSUjoyCisgICAgICAgIFNBMTEwMCAtLS0tLS0tLS0tLS0+IE5lcG9uc2V0IC0tLS0tLS0tLS0tPiBTQTExMTEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUlSOjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0+IFVTQVIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUlSOjAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0+IFNNQzkxOTYKKworVGhlIHdheSBzdHVmZiBjdXJyZW50bHkgd29ya3MsIGFsbCBTQTExMTEgaW50ZXJydXB0cyBhcmUgbXV0dWFsbHkKK2V4Y2x1c2l2ZSBvZiBlYWNoIG90aGVyIC0gaWYgeW91J3JlIHByb2Nlc3Npbmcgb25lIGludGVycnVwdCBmcm9tIHRoZQorU0ExMTExIGFuZCBhbm90aGVyIGNvbWVzIGluLCB5b3UgaGF2ZSB0byB3YWl0IGZvciB0aGF0IGludGVycnVwdCB0bworZmluaXNoIHByb2Nlc3NpbmcgYmVmb3JlIHlvdSBjYW4gc2VydmljZSB0aGUgbmV3IGludGVycnVwdC4gIEVnLCBhbgorSURFIFBJTy1iYXNlZCBpbnRlcnJ1cHQgb24gdGhlIFNBMTExMSBleGNsdWRlcyBhbGwgb3RoZXIgU0ExMTExIGFuZAorU01DOTE5NiBpbnRlcnJ1cHRzIHVudGlsIGl0IGhhcyBmaW5pc2hlZCB0cmFuc2ZlcnJpbmcgaXRzIG11bHRpLXNlY3RvcgorZGF0YSwgd2hpY2ggY2FuIGJlIGEgbG9uZyB0aW1lLiAgTm90ZSBhbHNvIHRoYXQgc2luY2Ugd2UgbG9vcCBpbiB0aGUKK1NBMTExMSBJUlEgaGFuZGxlciwgU0ExMTExIElSUXMgY2FuIGhvbGQgb2ZmIFNNQzkxOTYgSVJRcyBpbmRlZmluaXRlbHkuCisKKworVGhlIG5ldyBhcHByb2FjaCBicmluZ3Mgc2V2ZXJhbCBuZXcgaWRlYXMuLi4KKworV2UgaW50cm9kdWNlIHRoZSBjb25jZXB0IG9mIGEgInBhcmVudCIgYW5kIGEgImNoaWxkIi4gIEZvciBleGFtcGxlLAordG8gdGhlIE5lcG9uc2V0IGhhbmRsZXIsIHRoZSAicGFyZW50IiBpcyBHUElPMjUsIGFuZCB0aGUgImNoaWxkcmVuImQKK2FyZSBTQTExMTEsIFNNQzkxOTYgYW5kIFVTQVIuCisKK1dlIGFsc28gYnJpbmcgdGhlIGlkZWEgb2YgYW4gSVJRICJjaGlwIiAobWFpbmx5IHRvIHJlZHVjZSB0aGUgc2l6ZSBvZgordGhlIGlycWRlc2MgYXJyYXkpLiAgVGhpcyBkb2Vzbid0IGhhdmUgdG8gYmUgYSByZWFsICJJQyI7IGluZGVlZCB0aGUKK1NBMTF4MCBJUlFzIGFyZSBoYW5kbGVkIGJ5IHR3byBzZXBhcmF0ZSAiY2hpcCIgc3RydWN0dXJlcywgb25lIGZvcgorR1BJTzAtMTAsIGFuZCBhbm90aGVyIGZvciBhbGwgdGhlIHJlc3QuICBJdCBpcyBqdXN0IGEgY29udGFpbmVyIGZvcgordGhlIHZhcmlvdXMgb3BlcmF0aW9ucyAobWF5YmUgdGhpcydsbCBjaGFuZ2UgdG8gYSBiZXR0ZXIgbmFtZSkuCitUaGlzIHN0cnVjdHVyZSBoYXMgdGhlIGZvbGxvd2luZyBvcGVyYXRpb25zOgorCitzdHJ1Y3QgaXJxY2hpcCB7CisgICAgICAgIC8qCisgICAgICAgICAqIEFja25vd2xlZGdlIHRoZSBJUlEuCisgICAgICAgICAqIElmIHRoaXMgaXMgYSBsZXZlbC1iYXNlZCBJUlEsIHRoZW4gaXQgaXMgZXhwZWN0ZWQgdG8gbWFzayB0aGUgSVJRCisgICAgICAgICAqIGFzIHdlbGwuCisgICAgICAgICAqLworICAgICAgICB2b2lkICgqYWNrKSh1bnNpZ25lZCBpbnQgaXJxKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogTWFzayB0aGUgSVJRIGluIGhhcmR3YXJlLgorICAgICAgICAgKi8KKyAgICAgICAgdm9pZCAoKm1hc2spKHVuc2lnbmVkIGludCBpcnEpOworICAgICAgICAvKgorICAgICAgICAgKiBVbm1hc2sgdGhlIElSUSBpbiBoYXJkd2FyZS4KKyAgICAgICAgICovCisgICAgICAgIHZvaWQgKCp1bm1hc2spKHVuc2lnbmVkIGludCBpcnEpOworICAgICAgICAvKgorICAgICAgICAgKiBSZS1ydW4gdGhlIElSUQorICAgICAgICAgKi8KKyAgICAgICAgdm9pZCAoKnJlcnVuKSh1bnNpZ25lZCBpbnQgaXJxKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogU2V0IHRoZSB0eXBlIG9mIHRoZSBJUlEuCisgICAgICAgICAqLworICAgICAgICBpbnQgKCp0eXBlKSh1bnNpZ25lZCBpbnQgaXJxLCB1bnNpZ25lZCBpbnQsIHR5cGUpOworfTsKKworYWNrICAgIC0gcmVxdWlyZWQuICBNYXkgYmUgdGhlIHNhbWUgZnVuY3Rpb24gYXMgbWFzayBmb3IgSVJRcworICAgICAgICAgaGFuZGxlZCBieSBkb19sZXZlbF9JUlEuCittYXNrICAgLSByZXF1aXJlZC4KK3VubWFzayAtIHJlcXVpcmVkLgorcmVydW4gIC0gb3B0aW9uYWwuICBOb3QgcmVxdWlyZWQgaWYgeW91J3JlIHVzaW5nIGRvX2xldmVsX0lSUSBmb3IgYWxsCisgICAgICAgICBJUlFzIHRoYXQgdXNlIHRoaXMgJ2lycWNoaXAnLiAgR2VuZXJhbGx5IGV4cGVjdGVkIHRvIHJlLXRyaWdnZXIKKyAgICAgICAgIHRoZSBoYXJkd2FyZSBJUlEgaWYgcG9zc2libGUuICBJZiBub3QsIG1heSBjYWxsIHRoZSBoYW5kbGVyCisJIGRpcmVjdGx5LgordHlwZSAgIC0gb3B0aW9uYWwuICBJZiB5b3UgZG9uJ3Qgc3VwcG9ydCBjaGFuZ2luZyB0aGUgdHlwZSBvZiBhbiBJUlEsCisgICAgICAgICBpdCBzaG91bGQgYmUgbnVsbCBzbyBwZW9wbGUgY2FuIGRldGVjdCBpZiB0aGV5IGFyZSB1bmFibGUgdG8KKyAgICAgICAgIHNldCB0aGUgSVJRIHR5cGUuCisKK0ZvciBlYWNoIElSUSwgd2Uga2VlcCB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOgorCisgICAgICAgIC0gImRpc2FibGUiIGRlcHRoIChudW1iZXIgb2YgZGlzYWJsZV9pcnEoKXMgd2l0aG91dCBlbmFibGVfaXJxKClzKQorICAgICAgICAtIGZsYWdzIGluZGljYXRpbmcgd2hhdCB3ZSBjYW4gZG8gd2l0aCB0aGlzIElSUSAodmFsaWQsIHByb2JlLAorICAgICAgICAgIG5vYXV0b3VubWFzaykgYXMgYmVmb3JlCisgICAgICAgIC0gc3RhdHVzIG9mIHRoZSBJUlEgKHByb2JpbmcsIGVuYWJsZSwgZXRjKQorICAgICAgICAtIGNoaXAKKyAgICAgICAgLSBwZXItSVJRIGhhbmRsZXIKKyAgICAgICAgLSBpcnFhY3Rpb24gc3RydWN0dXJlIGxpc3QKKworVGhlIGhhbmRsZXIgY2FuIGJlIG9uZSBvZiB0aGUgMyBzdGFuZGFyZCBoYW5kbGVycyAtICJsZXZlbCIsICJlZGdlIiBhbmQKKyJzaW1wbGUiLCBvciB5b3VyIG93biBzcGVjaWZpYyBoYW5kbGVyIGlmIHlvdSBuZWVkIHRvIGRvIHNvbWV0aGluZyBzcGVjaWFsLgorCitUaGUgImxldmVsIiBoYW5kbGVyIGlzIHdoYXQgd2UgY3VycmVudGx5IGhhdmUgLSBpdHMgcHJldHR5IHNpbXBsZS4KKyJlZGdlIiBrbm93cyBhYm91dCB0aGUgYnJva2VubmVzcyBvZiBzdWNoIElSUSBpbXBsZW1lbnRhdGlvbnMgLSB0aGF0IHlvdQorbmVlZCB0byBsZWF2ZSB0aGUgaGFyZHdhcmUgSVJRIGVuYWJsZWQgd2hpbGUgcHJvY2Vzc2luZyBpdCwgYW5kIHF1ZXVlaW5nCitmdXJ0aGVyIElSUSBldmVudHMgc2hvdWxkIHRoZSBJUlEgaGFwcGVuIGFnYWluIHdoaWxlIHByb2Nlc3NpbmcuICBUaGUKKyJzaW1wbGUiIGhhbmRsZXIgaXMgdmVyeSBiYXNpYywgYW5kIGRvZXMgbm90IHBlcmZvcm0gYW55IGhhcmR3YXJlCittYW5pcHVsYXRpb24sIG5vciBzdGF0ZSB0cmFja2luZy4gIFRoaXMgaXMgdXNlZnVsIGZvciB0aGluZ3MgbGlrZSB0aGUKK1NNQzkxOTYgYW5kIFVTQVIgYWJvdmUuCisKK1NvLCB3aGF0J3MgY2hhbmdlZD8KKworMS4gTWFjaGluZSBpbXBsZW1lbnRhdGlvbnMgbXVzdCBub3Qgd3JpdGUgdG8gdGhlIGlycWRlc2MgYXJyYXkuCisKKzIuIE5ldyBmdW5jdGlvbnMgdG8gbWFuaXB1bGF0ZSB0aGUgaXJxZGVzYyBhcnJheS4gIFRoZSBmaXJzdCA0IGFyZSBleHBlY3RlZAorICAgdG8gYmUgdXNlZnVsIG9ubHkgdG8gbWFjaGluZSBzcGVjaWZpYyBjb2RlLiAgVGhlIGxhc3QgaXMgcmVjb21tZW5kZWQgdG8KKyAgIG9ubHkgYmUgdXNlZCBieSBtYWNoaW5lIHNwZWNpZmljIGNvZGUsIGJ1dCBtYXkgYmUgdXNlZCBpbiBkcml2ZXJzIGlmCisgICBhYnNvbHV0ZWx5IG5lY2Vzc2FyeS4KKworICAgICAgICBzZXRfaXJxX2NoaXAoaXJxLGNoaXApCisKKyAgICAgICAgICAgICAgICBTZXQgdGhlIG1hc2svdW5tYXNrIG1ldGhvZHMgZm9yIGhhbmRsaW5nIHRoaXMgSVJRCisKKyAgICAgICAgc2V0X2lycV9oYW5kbGVyKGlycSxoYW5kbGVyKQorCisgICAgICAgICAgICAgICAgU2V0IHRoZSBoYW5kbGVyIGZvciB0aGlzIElSUSAobGV2ZWwsIGVkZ2UsIHNpbXBsZSkKKworICAgICAgICBzZXRfaXJxX2NoYWluZWRfaGFuZGxlcihpcnEsaGFuZGxlcikKKworICAgICAgICAgICAgICAgIFNldCBhICJjaGFpbmVkIiBoYW5kbGVyIGZvciB0aGlzIElSUSAtIGF1dG9tYXRpY2FsbHkKKyAgICAgICAgICAgICAgICBlbmFibGVzIHRoaXMgSVJRIChlZywgTmVwb25zZXQgYW5kIFNBMTExMSBoYW5kbGVycykuCisKKyAgICAgICAgc2V0X2lycV9mbGFncyhpcnEsZmxhZ3MpCisKKyAgICAgICAgICAgICAgICBTZXQgdGhlIHZhbGlkL3Byb2JlL25vYXV0b2VuYWJsZSBmbGFncy4KKworICAgICAgICBzZXRfaXJxX3R5cGUoaXJxLHR5cGUpCisKKyAgICAgICAgICAgICAgICBTZXQgYWN0aXZlIHRoZSBJUlEgZWRnZShzKS9sZXZlbC4gIFRoaXMgcmVwbGFjZXMgdGhlCisgICAgICAgICAgICAgICAgU0ExMTExIElOVFBPTCBtYW5pcHVsYXRpb24sIGFuZCB0aGUgc2V0X0dQSU9fSVJRX2VkZ2UoKQorICAgICAgICAgICAgICAgIGZ1bmN0aW9uLiAgVHlwZSBzaG91bGQgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6CisKKyAgICAgICAgICAgICAgICAjZGVmaW5lIElSUVRfTk9FREdFICAgICAoMCkKKyAgICAgICAgICAgICAgICAjZGVmaW5lIElSUVRfUklTSU5HICAgICAoX19JUlFUX1JJU0VER0UpCisgICAgICAgICAgICAgICAgI2RlZmluZSBJUlFUX0ZBTExJTkcgICAgKF9fSVJRVF9GQUxFREdFKQorICAgICAgICAgICAgICAgICNkZWZpbmUgSVJRVF9CT1RIRURHRSAgIChfX0lSUVRfUklTRURHRXxfX0lSUVRfRkFMRURHRSkKKyAgICAgICAgICAgICAgICAjZGVmaW5lIElSUVRfTE9XICAgICAgICAoX19JUlFUX0xPV0xWTCkKKyAgICAgICAgICAgICAgICAjZGVmaW5lIElSUVRfSElHSCAgICAgICAoX19JUlFUX0hJR0hMVkwpCisKKzMuIHNldF9HUElPX0lSUV9lZGdlKCkgaXMgb2Jzb2xldGUsIGFuZCBzaG91bGQgYmUgcmVwbGFjZWQgYnkgc2V0X2lycV90eXBlLgorCis0LiBEaXJlY3QgYWNjZXNzIHRvIFNBMTExMSBJTlRQT0wgaXMgZGVwcmVjaWF0ZWQuICBVc2Ugc2V0X2lycV90eXBlIGluc3RlYWQuCisKKzUuIEEgaGFuZGxlciBpcyBleHBlY3RlZCB0byBwZXJmb3JtIGFueSBuZWNlc3NhcnkgYWNrbm93bGVkZ2VtZW50IG9mIHRoZQorICAgcGFyZW50IElSUSB2aWEgdGhlIGNvcnJlY3QgY2hpcCBzcGVjaWZpYyBmdW5jdGlvbi4gIEZvciBpbnN0YW5jZSwgaWYKKyAgIHRoZSBTQTExMTEgaXMgZGlyZWN0bHkgY29ubmVjdGVkIHRvIGEgU0ExMTEwIEdQSU8sIHRoZW4geW91IHNob3VsZAorICAgYWNrbm93bGVkZ2UgdGhlIFNBMTExMCBJUlEgZWFjaCB0aW1lIHlvdSByZS1yZWFkIHRoZSBTQTExMTEgSVJRIHN0YXR1cy4KKworNi4gRm9yIGFueSBjaGlsZCB3aGljaCBkb2Vzbid0IGhhdmUgaXRzIG93biBJUlEgZW5hYmxlL2Rpc2FibGUgY29udHJvbHMKKyAgIChlZywgU01DOTE5NiksIHRoZSBoYW5kbGVyIG11c3QgbWFzayBvciBhY2tub3dsZWRnZSB0aGUgcGFyZW50IElSUQorICAgd2hpbGUgdGhlIGNoaWxkIGhhbmRsZXIgaXMgY2FsbGVkLCBhbmQgdGhlIGNoaWxkIGhhbmRsZXIgc2hvdWxkIGJlIHRoZQorICAgInNpbXBsZSIgaGFuZGxlciAobm90ICJlZGdlIiBub3IgImxldmVsIikuICBBZnRlciB0aGUgaGFuZGxlciBjb21wbGV0ZXMsCisgICB0aGUgcGFyZW50IElSUSBzaG91bGQgYmUgdW5tYXNrZWQsIGFuZCB0aGUgc3RhdHVzIG9mIGFsbCBjaGlsZHJlbiBtdXN0CisgICBiZSByZS1jaGVja2VkIGZvciBwZW5kaW5nIGV2ZW50cy4gIChzZWUgdGhlIE5lcG9uc2V0IElSUSBoYW5kbGVyIGZvcgorICAgZGV0YWlscykuCisKKzcuIGZpeHVwX2lycSgpIGlzIGdvbmUsIGFzIGlzIGluY2x1ZGUvYXNtLWFybS9hcmNoLSovaXJxLmgKKworUGxlYXNlIG5vdGUgdGhhdCB0aGlzIHdpbGwgbm90IHNvbHZlIGFsbCBwcm9ibGVtcyAtIHNvbWUgb2YgdGhlbSBhcmUKK2hhcmR3YXJlIGJhc2VkLiAgTWl4aW5nIGxldmVsLWJhc2VkIGFuZCBlZGdlLWJhc2VkIElSUXMgb24gdGhlIHNhbWUKK3BhcmVudCBzaWduYWwgKGVnIG5lcG9uc2V0KSBpcyBvbmUgc3VjaCBhcmVhIHdoZXJlIGEgc29mdHdhcmUgYmFzZWQKK3NvbHV0aW9uIGNhbid0IHByb3ZpZGUgdGhlIGZ1bGwgYW5zd2VyIHRvIGxvdyBJUlEgbGF0ZW5jeS4KKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vTmV0d2luZGVyIGIvRG9jdW1lbnRhdGlvbi9hcm0vTmV0d2luZGVyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxYjQ1N2YKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9OZXR3aW5kZXIKQEAgLTAsMCArMSw3OCBAQAorTmV0V2luZGVyIHNwZWNpZmljIGRvY3VtZW50YXRpb24KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZSBOZXRXaW5kZXIgaXMgYSBzbWFsbCBsb3ctcG93ZXIgY29tcHV0ZXIsIHByaW1hcmlseSBkZXNpZ25lZAordG8gcnVuIExpbnV4LiAgSXQgaXMgYmFzZWQgYXJvdW5kIHRoZSBTdHJvbmdBUk0gUklTQyBwcm9jZXNzb3IsCitEQzIxMjg1IFBDSSBicmlkZ2UsIHdpdGggUEMtdHlwZSBoYXJkd2FyZSBnbHVlZCBhcm91bmQgaXQuCisKK1BvcnQgdXNhZ2UKKz09PT09PT09PT0KKworTWluICAgIC0gTWF4CURlc2NyaXB0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzB4MDAwMCAtIDB4MDAwZglETUExCisweDAwMjAgLSAweDAwMjEJUElDMQorMHgwMDYwIC0gMHgwMDZmCUtleWJvYXJkCisweDAwNzAgLSAweDAwN2YJUlRDCisweDAwODAgLSAweDAwODcJRE1BMQorMHgwMDg4IC0gMHgwMDhmCURNQTIKKzB4MDBhMCAtIDB4MDBhMwlQSUMyCisweDAwYzAgLSAweDAwZGYJRE1BMgorMHgwMTgwIC0gMHgwMTg3CUlSREEKKzB4MDFmMCAtIDB4MDFmNglpZGUwCisweDAyMDEJCUdhbWUgcG9ydAorMHgwMjAzCQlSV0EwMTAgY29uZmlndXJhdGlvbiByZWFkCisweDAyMjAgLSA/CVNvdW5kQmxhc3RlcgorMHgwMjUwIC0gPwlXYXZlQXJ0aXN0CisweDAyNzkJCVJXQTAxMCBjb25maWd1cmF0aW9uIGluZGV4CisweDAyZjggLSAweDAyZmYJU2VyaWFsIHR0eVMxCisweDAzMDAgLSAweDAzMWYJRXRoZXIxMAorMHgwMzM4CQlHUElPMQorMHgwMzNhCQlHUElPMgorMHgwMzcwIC0gMHgwMzcxCVc4Mzk3N0YgY29uZmlndXJhdGlvbiByZWdpc3RlcnMKKzB4MDM4OCAtID8JQWRMaWIKKzB4MDNjMCAtIDB4MDNkZglWR0EKKzB4MDNmNgkJaWRlMAorMHgwM2Y4IC0gMHgwM2ZmCVNlcmlhbCB0dHlTMAorMHgwNDAwIC0gMHgwNDA4CURDMjExNDMKKzB4MDQ4MCAtIDB4MDQ4NwlETUExCisweDA0ODggLSAweDA0OGYJRE1BMgorMHgwYTc5CQlSV0EwMTAgY29uZmlndXJhdGlvbiB3cml0ZQorMHhlODAwIC0gMHhlODBmCWlkZTAvaWRlMSBCTSBETUEKKworCitJbnRlcnJ1cHQgdXNhZ2UKKz09PT09PT09PT09PT09PQorCitJUlEJdHlwZQlEZXNjcmlwdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMAlJU0EJMTAwSHogdGltZXIKKyAxCUlTQQlLZXlib2FyZAorIDIJSVNBCWNhc2NhZGUKKyAzCUlTQQlTZXJpYWwgdHR5UzEKKyA0CUlTQQlTZXJpYWwgdHR5UzAKKyA1CUlTQQlQUy8yIG1vdXNlCisgNglJU0EJSVJEQQorIDcJSVNBCVByaW50ZXIKKyA4CUlTQQlSVEMgYWxhcm0KKyA5CUlTQQorMTAJSVNBCUdQMTAgKE9yYW5nZSByZXNldCBidXR0b24pCisxMQlJU0EKKzEyCUlTQQlXYXZlQXJ0aXN0CisxMwlJU0EKKzE0CUlTQQloZGExCisxNQlJU0EKKworRE1BIHVzYWdlCis9PT09PT09PT0KKworRE1BCXR5cGUJRGVzY3JpcHRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDAJSVNBCUlSREEKKyAxCUlTQQorIDIJSVNBCWNhc2NhZGUKKyAzCUlTQQlXYXZlQXJ0aXN0CisgNAlJU0EKKyA1CUlTQQorIDYJSVNBCisgNwlJU0EJV2F2ZUFydGlzdApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vUG9ydGluZyBiL0RvY3VtZW50YXRpb24vYXJtL1BvcnRpbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQ5MjIzMwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1BvcnRpbmcKQEAgLTAsMCArMSwxMzUgQEAKK1Rha2VuIGZyb20gbGlzdCBhcmNoaXZlIGF0IGh0dHA6Ly9saXN0cy5hcm0ubGludXgub3JnLnVrL3BpcGVybWFpbC9saW51eC1hcm0ta2VybmVsLzIwMDEtSnVseS8wMDQwNjQuaHRtbAorCitJbml0aWFsIGRlZmluaXRpb25zCistLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZSBmb2xsb3dpbmcgc3ltYm9sIGRlZmluaXRpb25zIHJlbHkgb24geW91IGtub3dpbmcgdGhlIHRyYW5zbGF0aW9uIHRoYXQKK19fdmlydF90b19waHlzKCkgZG9lcyBmb3IgeW91ciBtYWNoaW5lLiAgVGhpcyBtYWNybyBjb252ZXJ0cyB0aGUgcGFzc2VkCit2aXJ0dWFsIGFkZHJlc3MgdG8gYSBwaHlzaWNhbCBhZGRyZXNzLiAgTm9ybWFsbHksIGl0IGlzIHNpbXBseToKKworCQlwaHlzID0gdmlydCAtIFBBR0VfT0ZGU0VUICsgUEhZU19PRkZTRVQKKworCitEZWNvbXByZXNzb3IgU3ltYm9scworLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWlRFWFRBRERSCisJU3RhcnQgYWRkcmVzcyBvZiBkZWNvbXByZXNzb3IuICBUaGVyZSdzIG5vIHBvaW50IGluIHRhbGtpbmcgYWJvdXQKKwl2aXJ0dWFsIG9yIHBoeXNpY2FsIGFkZHJlc3NlcyBoZXJlLCBzaW5jZSB0aGUgTU1VIHdpbGwgYmUgb2ZmIGF0CisJdGhlIHRpbWUgd2hlbiB5b3UgY2FsbCB0aGUgZGVjb21wcmVzc29yIGNvZGUuICBZb3Ugbm9ybWFsbHkgY2FsbAorCXRoZSBrZXJuZWwgYXQgdGhpcyBhZGRyZXNzIHRvIHN0YXJ0IGl0IGJvb3RpbmcuICBUaGlzIGRvZXNuJ3QgaGF2ZQorCXRvIGJlIGxvY2F0ZWQgaW4gUkFNLCBpdCBjYW4gYmUgaW4gZmxhc2ggb3Igb3RoZXIgcmVhZC1vbmx5IG9yCisJcmVhZC13cml0ZSBhZGRyZXNzYWJsZSBtZWRpdW0uCisKK1pCU1NBRERSCisJU3RhcnQgYWRkcmVzcyBvZiB6ZXJvLWluaXRpYWxpc2VkIHdvcmsgYXJlYSBmb3IgdGhlIGRlY29tcHJlc3Nvci4KKwlUaGlzIG11c3QgYmUgcG9pbnRpbmcgYXQgUkFNLiAgVGhlIGRlY29tcHJlc3NvciB3aWxsIHplcm8gaW5pdGlhbGlzZQorCXRoaXMgZm9yIHlvdS4gIEFnYWluLCB0aGUgTU1VIHdpbGwgYmUgb2ZmLgorCitaUkVMQUREUgorCVRoaXMgaXMgdGhlIGFkZHJlc3Mgd2hlcmUgdGhlIGRlY29tcHJlc3NlZCBrZXJuZWwgd2lsbCBiZSB3cml0dGVuLAorCWFuZCBldmVudHVhbGx5IGV4ZWN1dGVkLiAgVGhlIGZvbGxvd2luZyBjb25zdHJhaW50IG11c3QgYmUgdmFsaWQ6CisKKwkJX192aXJ0X3RvX3BoeXMoVEVYVEFERFIpID09IFpSRUxBRERSCisKKwlUaGUgaW5pdGlhbCBwYXJ0IG9mIHRoZSBrZXJuZWwgaXMgY2FyZWZ1bGx5IGNvZGVkIHRvIGJlIHBvc2l0aW9uCisJaW5kZXBlbmRlbnQuCisKK0lOSVRSRF9QSFlTCisJUGh5c2ljYWwgYWRkcmVzcyB0byBwbGFjZSB0aGUgaW5pdGlhbCBSQU0gZGlzay4gIE9ubHkgcmVsZXZhbnQgaWYKKwl5b3UgYXJlIHVzaW5nIHRoZSBib290cEltYWdlIHN0dWZmICh3aGljaCBvbmx5IHdvcmtzIG9uIHRoZSBvbGQKKwlzdHJ1Y3QgcGFyYW1fc3RydWN0KS4KKworSU5JVFJEX1ZJUlQKKwlWaXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIGluaXRpYWwgUkFNIGRpc2suICBUaGUgZm9sbG93aW5nICBjb25zdHJhaW50CisJbXVzdCBiZSB2YWxpZDoKKworCQlfX3ZpcnRfdG9fcGh5cyhJTklUUkRfVklSVCkgPT0gSU5JVFJEX1BIWVMKKworUEFSQU1TX1BIWVMKKwlQaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBzdHJ1Y3QgcGFyYW1fc3RydWN0IG9yIHRhZyBsaXN0LCBnaXZpbmcgdGhlCisJa2VybmVsIHZhcmlvdXMgcGFyYW1ldGVycyBhYm91dCBpdHMgZXhlY3V0aW9uIGVudmlyb25tZW50LgorCisKK0tlcm5lbCBTeW1ib2xzCistLS0tLS0tLS0tLS0tLQorCitQSFlTX09GRlNFVAorCVBoeXNpY2FsIHN0YXJ0IGFkZHJlc3Mgb2YgdGhlIGZpcnN0IGJhbmsgb2YgUkFNLgorCitQQUdFX09GRlNFVAorCVZpcnR1YWwgc3RhcnQgYWRkcmVzcyBvZiB0aGUgZmlyc3QgYmFuayBvZiBSQU0uICBEdXJpbmcgdGhlIGtlcm5lbAorCWJvb3QgcGhhc2UsIHZpcnR1YWwgYWRkcmVzcyBQQUdFX09GRlNFVCB3aWxsIGJlIG1hcHBlZCB0byBwaHlzaWNhbAorCWFkZHJlc3MgUEhZU19PRkZTRVQsIGFsb25nIHdpdGggYW55IG90aGVyIG1hcHBpbmdzIHlvdSBzdXBwbHkuCisJVGhpcyBzaG91bGQgYmUgdGhlIHNhbWUgdmFsdWUgYXMgVEFTS19TSVpFLgorCitUQVNLX1NJWkUKKwlUaGUgbWF4aW11bSBzaXplIG9mIGEgdXNlciBwcm9jZXNzIGluIGJ5dGVzLiAgU2luY2UgdXNlciBzcGFjZQorCWFsd2F5cyBzdGFydHMgYXQgemVybywgdGhpcyBpcyB0aGUgbWF4aW11bSBhZGRyZXNzIHRoYXQgYSB1c2VyCisJcHJvY2VzcyBjYW4gYWNjZXNzKzEuICBUaGUgdXNlciBzcGFjZSBzdGFjayBncm93cyBkb3duIGZyb20gdGhpcworCWFkZHJlc3MuCisKKwlBbnkgdmlydHVhbCBhZGRyZXNzIGJlbG93IFRBU0tfU0laRSBpcyBkZWVtZWQgdG8gYmUgdXNlciBwcm9jZXNzCisJYXJlYSwgYW5kIHRoZXJlZm9yZSBtYW5hZ2VkIGR5bmFtaWNhbGx5IG9uIGEgcHJvY2VzcyBieSBwcm9jZXNzCisJYmFzaXMgYnkgdGhlIGtlcm5lbC4gIEknbGwgY2FsbCB0aGlzIHRoZSB1c2VyIHNlZ21lbnQuCisKKwlBbnl0aGluZyBhYm92ZSBUQVNLX1NJWkUgaXMgY29tbW9uIHRvIGFsbCBwcm9jZXNzZXMuICBJJ2xsIGNhbGwKKwl0aGlzIHRoZSBrZXJuZWwgc2VnbWVudC4KKworCShJbiBvdGhlciB3b3JkcywgeW91IGNhbid0IHB1dCBJTyBtYXBwaW5ncyBiZWxvdyBUQVNLX1NJWkUsIGFuZAorCWhlbmNlIFBBR0VfT0ZGU0VUKS4KKworVEVYVEFERFIKKwlWaXJ0dWFsIHN0YXJ0IGFkZHJlc3Mgb2Yga2VybmVsLCBub3JtYWxseSBQQUdFX09GRlNFVCArIDB4ODAwMC4KKwlUaGlzIGlzIHdoZXJlIHRoZSBrZXJuZWwgaW1hZ2UgZW5kcyB1cC4gIFdpdGggdGhlIGxhdGVzdCBrZXJuZWxzLAorCWl0IG11c3QgYmUgbG9jYXRlZCBhdCAzMjc2OCBieXRlcyBpbnRvIGEgMTI4TUIgcmVnaW9uLiAgUHJldmlvdXMKKwlrZXJuZWxzIHBsYWNlZCBhIHJlc3RyaWN0aW9uIG9mIDI1Nk1CIGhlcmUuCisKK0RBVEFBRERSCisJVmlydHVhbCBhZGRyZXNzIGZvciB0aGUga2VybmVsIGRhdGEgc2VnbWVudC4gIE11c3Qgbm90IGJlIGRlZmluZWQKKwl3aGVuIHVzaW5nIHRoZSBkZWNvbXByZXNzb3IuCisKK1ZNQUxMT0NfU1RBUlQKK1ZNQUxMT0NfRU5ECisJVmlydHVhbCBhZGRyZXNzZXMgYm91bmRpbmcgdGhlIHZtYWxsb2MoKSBhcmVhLiAgVGhlcmUgbXVzdCBub3QgYmUKKwlhbnkgc3RhdGljIG1hcHBpbmdzIGluIHRoaXMgYXJlYTsgdm1hbGxvYyB3aWxsIG92ZXJ3cml0ZSB0aGVtLgorCVRoZSBhZGRyZXNzZXMgbXVzdCBhbHNvIGJlIGluIHRoZSBrZXJuZWwgc2VnbWVudCAoc2VlIGFib3ZlKS4KKwlOb3JtYWxseSwgdGhlIHZtYWxsb2MoKSBhcmVhIHN0YXJ0cyBWTUFMTE9DX09GRlNFVCBieXRlcyBhYm92ZSB0aGUKKwlsYXN0IHZpcnR1YWwgUkFNIGFkZHJlc3MgKGZvdW5kIHVzaW5nIHZhcmlhYmxlIGhpZ2hfbWVtb3J5KS4KKworVk1BTExPQ19PRkZTRVQKKwlPZmZzZXQgbm9ybWFsbHkgaW5jb3Jwb3JhdGVkIGludG8gVk1BTExPQ19TVEFSVCB0byBwcm92aWRlIGEgaG9sZQorCWJldHdlZW4gdmlydHVhbCBSQU0gYW5kIHRoZSB2bWFsbG9jIGFyZWEuICBXZSBkbyB0aGlzIHRvIGFsbG93CisJb3V0IG9mIGJvdW5kcyBtZW1vcnkgYWNjZXNzZXMgKGVnLCBzb21ldGhpbmcgd3JpdGluZyBvZmYgdGhlIGVuZAorCW9mIHRoZSBtYXBwZWQgbWVtb3J5IG1hcCkgdG8gYmUgY2F1Z2h0LiAgTm9ybWFsbHkgc2V0IHRvIDhNQi4KKworQXJjaGl0ZWN0dXJlIFNwZWNpZmljIE1hY3JvcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitCT09UX01FTShwcmFtLHBpbyx2aW8pCisJYHByYW0nIHNwZWNpZmllcyB0aGUgcGh5c2ljYWwgc3RhcnQgYWRkcmVzcyBvZiBSQU0uICBNdXN0IGFsd2F5cworCWJlIHByZXNlbnQsIGFuZCBzaG91bGQgYmUgdGhlIHNhbWUgYXMgUEhZU19PRkZTRVQuCisKKwlgcGlvJyBpcyB0aGUgcGh5c2ljYWwgYWRkcmVzcyBvZiBhbiA4TUIgcmVnaW9uIGNvbnRhaW5pbmcgSU8gZm9yCisJdXNlIHdpdGggdGhlIGRlYnVnZ2luZyBtYWNyb3MgaW4gYXJjaC9hcm0va2VybmVsL2RlYnVnLWFybXYuUy4KKworCWB2aW8nIGlzIHRoZSB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIDhNQiBkZWJ1Z2dpbmcgcmVnaW9uLgorCisJSXQgaXMgZXhwZWN0ZWQgdGhhdCB0aGUgZGVidWdnaW5nIHJlZ2lvbiB3aWxsIGJlIHJlLWluaXRpYWxpc2VkCisJYnkgdGhlIGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBjb2RlIGxhdGVyIGluIHRoZSBjb2RlICh2aWEgdGhlCisJTUFQSU8gZnVuY3Rpb24pLgorCitCT09UX1BBUkFNUworCVNhbWUgYXMsIGFuZCBzZWUgUEFSQU1TX1BIWVMuCisKK0ZJWFVQKGZ1bmMpCisJTWFjaGluZSBzcGVjaWZpYyBmaXh1cHMsIHJ1biBiZWZvcmUgbWVtb3J5IHN1YnN5c3RlbXMgaGF2ZSBiZWVuCisJaW5pdGlhbGlzZWQuCisKK01BUElPKGZ1bmMpCisJTWFjaGluZSBzcGVjaWZpYyBmdW5jdGlvbiB0byBtYXAgSU8gYXJlYXMgKGluY2x1ZGluZyB0aGUgZGVidWcKKwlyZWdpb24gYWJvdmUpLgorCitJTklUSVJRKGZ1bmMpCisJTWFjaGluZSBzcGVjaWZpYyBmdW5jdGlvbiB0byBpbml0aWFsaXNlIGludGVycnVwdHMuCisKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL1JFQURNRSBiL0RvY3VtZW50YXRpb24vYXJtL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmY3MThlCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vUkVBRE1FCkBAIC0wLDAgKzEsMTk4IEBACisJCQkgICBBUk0gTGludXggMi42CisJCQkgICA9PT09PT09PT09PT09CisKKyAgICBQbGVhc2UgY2hlY2sgPGZ0cDovL2Z0cC5hcm0ubGludXgub3JnLnVrL3B1Yi9hcm1saW51eD4gZm9yCisgICAgdXBkYXRlcy4KKworQ29tcGlsYXRpb24gb2Yga2VybmVsCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICBJbiBvcmRlciB0byBjb21waWxlIEFSTSBMaW51eCwgeW91IHdpbGwgbmVlZCBhIGNvbXBpbGVyIGNhcGFibGUgb2YKKyAgZ2VuZXJhdGluZyBBUk0gRUxGIGNvZGUgd2l0aCBHTlUgZXh0ZW5zaW9ucy4gIEdDQyAyLjk1LjEsIEVHQ1MKKyAgMS4xLjIsIGFuZCBHQ0MgMy4zIGFyZSBrbm93biB0byBiZSBnb29kIGNvbXBpbGVycy4gIEZvcnR1bmF0ZWx5LCB5b3UKKyAgbmVlZG4ndCBndWVzcy4gIFRoZSBrZXJuZWwgd2lsbCByZXBvcnQgYW4gZXJyb3IgaWYgeW91ciBjb21waWxlciBpcworICBhIHJlY29nbml6ZWQgb2ZmZW5kZXIuCisKKyAgVG8gYnVpbGQgQVJNIExpbnV4IG5hdGl2ZWx5LCB5b3Ugc2hvdWxkbid0IGhhdmUgdG8gYWx0ZXIgdGhlIEFSQ0ggPSBsaW5lCisgIGluIHRoZSB0b3AgbGV2ZWwgTWFrZWZpbGUuICBIb3dldmVyLCBpZiB5b3UgZG9uJ3QgaGF2ZSB0aGUgQVJNIExpbnV4IEVMRgorICB0b29scyBpbnN0YWxsZWQgYXMgZGVmYXVsdCwgdGhlbiB5b3Ugc2hvdWxkIGNoYW5nZSB0aGUgQ1JPU1NfQ09NUElMRQorICBsaW5lIGFzIGRldGFpbGVkIGJlbG93LgorCisgIElmIHlvdSB3aXNoIHRvIGNyb3NzLWNvbXBpbGUsIHRoZW4gYWx0ZXIgdGhlIGZvbGxvd2luZyBsaW5lcyBpbiB0aGUgdG9wCisgIGxldmVsIG1ha2UgZmlsZToKKworICAgIEFSQ0ggPSA8d2hhdGV2ZXI+CisJd2l0aAorICAgIEFSQ0ggPSBhcm0KKworCWFuZAorCisgICAgQ1JPU1NfQ09NUElMRT0KKwl0bworICAgIENST1NTX0NPTVBJTEU9PHlvdXItcGF0aC10by15b3VyLWNvbXBpbGVyLXdpdGhvdXQtZ2NjPgorCWVnLgorICAgIENST1NTX0NPTVBJTEU9YXJtLWxpbnV4LQorCisgIERvIGEgJ21ha2UgY29uZmlnJywgZm9sbG93ZWQgYnkgJ21ha2UgSW1hZ2UnIHRvIGJ1aWxkIHRoZSBrZXJuZWwgCisgIChhcmNoL2FybS9ib290L0ltYWdlKS4gIEEgY29tcHJlc3NlZCBpbWFnZSBjYW4gYmUgYnVpbHQgYnkgZG9pbmcgYSAKKyAgJ21ha2UgekltYWdlJyBpbnN0ZWFkIG9mICdtYWtlIEltYWdlJy4KKworCitCdWcgcmVwb3J0cyBldGMKKy0tLS0tLS0tLS0tLS0tLQorCisgIFBsZWFzZSBzZW5kIHBhdGNoZXMgdG8gdGhlIHBhdGNoIHN5c3RlbS4gIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUKKyAgaHR0cDovL3d3dy5hcm0ubGludXgub3JnLnVrL3BhdGNoZXMvaW5mby5odG1sICBBbHdheXMgaW5jbHVkZSBzb21lCisgIGV4cGxhbmF0aW9uIGFzIHRvIHdoYXQgdGhlIHBhdGNoIGRvZXMgYW5kIHdoeSBpdCBpcyBuZWVkZWQuCisKKyAgQnVnIHJlcG9ydHMgc2hvdWxkIGJlIHNlbnQgdG8gbGludXgtYXJtLWtlcm5lbEBsaXN0cy5hcm0ubGludXgub3JnLnVrLAorICBvciBzdWJtaXR0ZWQgdGhyb3VnaCB0aGUgd2ViIGZvcm0gYXQKKyAgaHR0cDovL3d3dy5hcm0ubGludXgub3JnLnVrL2Zvcm1zL3NvbHV0aW9uLnNodG1sCisKKyAgV2hlbiBzZW5kaW5nIGJ1ZyByZXBvcnRzLCBwbGVhc2UgZW5zdXJlIHRoYXQgdGhleSBjb250YWluIGFsbCByZWxldmFudAorICBpbmZvcm1hdGlvbiwgZWcuIHRoZSBrZXJuZWwgbWVzc2FnZXMgdGhhdCB3ZXJlIHByaW50ZWQgYmVmb3JlL2R1cmluZworICB0aGUgcHJvYmxlbSwgd2hhdCB5b3Ugd2VyZSBkb2luZywgZXRjLgorCisKK0luY2x1ZGUgZmlsZXMKKy0tLS0tLS0tLS0tLS0KKworICBTZXZlcmFsIG5ldyBpbmNsdWRlIGRpcmVjdG9yaWVzIGhhdmUgYmVlbiBjcmVhdGVkIHVuZGVyIGluY2x1ZGUvYXNtLWFybSwKKyAgd2hpY2ggYXJlIHRoZXJlIHRvIHJlZHVjZSB0aGUgY2x1dHRlciBpbiB0aGUgdG9wLWxldmVsIGRpcmVjdG9yeS4gIFRoZXNlCisgIGRpcmVjdG9yaWVzLCBhbmQgdGhlaXIgcHVycG9zZSBpcyBsaXN0ZWQgYmVsb3c6CisKKyAgIGFyY2gtKgltYWNoaW5lL3BsYXRmb3JtIHNwZWNpZmljIGhlYWRlciBmaWxlcworICAgaGFyZHdhcmUJZHJpdmVyLWludGVybmFsIEFSTSBzcGVjaWZpYyBkYXRhIHN0cnVjdHVyZXMvZGVmaW5pdGlvbnMKKyAgIG1hY2gJCWRlc2NyaXB0aW9ucyBvZiBnZW5lcmljIEFSTSB0byBzcGVjaWZpYyBtYWNoaW5lIGludGVyZmFjZXMKKyAgIHByb2MtKglwcm9jZXNzb3IgZGVwZW5kZW50IGhlYWRlciBmaWxlcyAoY3VycmVudGx5IG9ubHkgdHdvCisJCWNhdGVnb3JpZXMpCisKKworTWFjaGluZS9QbGF0Zm9ybSBzdXBwb3J0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICBUaGUgQVJNIHRyZWUgY29udGFpbnMgc3VwcG9ydCBmb3IgYSBsb3Qgb2YgZGlmZmVyZW50IG1hY2hpbmUgdHlwZXMuICBUbworICBjb250aW51ZSBzdXBwb3J0aW5nIHRoZXNlIGRpZmZlcmVuY2VzLCBpdCBoYXMgYmVjb21lIG5lY2Vzc2FyeSB0byBzcGxpdAorICBtYWNoaW5lLXNwZWNpZmljIHBhcnRzIGJ5IGRpcmVjdG9yeS4gIEZvciB0aGlzLCB0aGUgbWFjaGluZSBjYXRlZ29yeSBpcworICB1c2VkIHRvIHNlbGVjdCB3aGljaCBkaXJlY3RvcmllcyBhbmQgZmlsZXMgZ2V0IGluY2x1ZGVkICh3ZSB3aWxsIHVzZQorICAkKE1BQ0hJTkUpIHRvIHJlZmVyIHRvIHRoZSBjYXRlZ29yeSkKKworICBUbyB0aGlzIGVuZCwgd2Ugbm93IGhhdmUgYXJjaC9hcm0vbWFjaC0kKE1BQ0hJTkUpIGRpcmVjdG9yaWVzIHdoaWNoIGFyZQorICBkZXNpZ25lZCB0byBob3VzZSB0aGUgbm9uLWRyaXZlciBmaWxlcyBmb3IgYSBwYXJ0aWN1bGFyIG1hY2hpbmUgKGVnLCBQQ0ksCisgIG1lbW9yeSBtYW5hZ2VtZW50LCBhcmNoaXRlY3R1cmUgZGVmaW5pdGlvbnMgZXRjKS4gIEZvciBhbGwgZnV0dXJlCisgIG1hY2hpbmVzLCB0aGVyZSBzaG91bGQgYmUgYSBjb3JyZXNwb25kaW5nIGluY2x1ZGUvYXNtLWFybS9hcmNoLSQoTUFDSElORSkKKyAgZGlyZWN0b3J5LgorCisKK01vZHVsZXMKKy0tLS0tLS0KKworICBBbHRob3VnaCBtb2R1bGFyaXNhdGlvbiBpcyBzdXBwb3J0ZWQgKGFuZCByZXF1aXJlZCBmb3IgdGhlIEZQIGVtdWxhdG9yKSwKKyAgZWFjaCBtb2R1bGUgb24gYW4gQVJNMi9BUk0yNTAvQVJNMyBtYWNoaW5lIHdoZW4gaXMgbG9hZGVkIHdpbGwgdGFrZQorICBtZW1vcnkgdXAgdG8gdGhlIG5leHQgMzJrIGJvdW5kYXJ5IGR1ZSB0byB0aGUgc2l6ZSBvZiB0aGUgcGFnZXMuCisgIFRoZXJlZm9yZSwgbW9kdWxhcmlzYXRpb24gb24gdGhlc2UgbWFjaGluZXMgcmVhbGx5IHdvcnRoIGl0PworCisgIEhvd2V2ZXIsIEFSTTYgYW5kIHVwIG1hY2hpbmVzIGFsbG93IG1vZHVsZXMgdG8gdGFrZSBtdWx0aXBsZXMgb2YgNGssIGFuZAorICBhcyBzdWNoIEFjb3JuIFJpc2NQQ3MgYW5kIG90aGVyIGFyY2hpdGVjdHVyZXMgdXNpbmcgdGhlc2UgcHJvY2Vzc29ycyBjYW4KKyAgbWFrZSBnb29kIHVzZSBvZiBtb2R1bGFyaXNhdGlvbi4KKworCitBREZTIEltYWdlIGZpbGVzCistLS0tLS0tLS0tLS0tLS0tCisKKyAgWW91IGNhbiBhY2Nlc3MgaW1hZ2UgZmlsZXMgb24geW91ciBBREZTIHBhcnRpdGlvbnMgYnkgbW91bnRpbmcgdGhlIEFERlMKKyAgcGFydGl0aW9uLCBhbmQgdGhlbiB1c2luZyB0aGUgbG9vcGJhY2sgZGV2aWNlIGRyaXZlci4gIFlvdSBtdXN0IGhhdmUKKyAgbG9zZXR1cCBpbnN0YWxsZWQuCisKKyAgUGxlYXNlIG5vdGUgdGhhdCB0aGUgUENFbXVsYXRvciBET1MgcGFydGl0aW9ucyBoYXZlIGEgcGFydGl0aW9uIHRhYmxlIGF0CisgIHRoZSBzdGFydCwgYW5kIGFzIHN1Y2gsIHlvdSB3aWxsIGhhdmUgdG8gZ2l2ZSAnLW8gb2Zmc2V0JyB0byBsb3NldHVwLgorCisKK1JlcXVlc3QgdG8gZGV2ZWxvcGVycworLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgV2hlbiB3cml0aW5nIGRldmljZSBkcml2ZXJzIHdoaWNoIGluY2x1ZGUgYSBzZXBhcmF0ZSBhc3NlbWJsZXIgZmlsZSwgcGxlYXNlCisgIGluY2x1ZGUgaXQgaW4gd2l0aCB0aGUgQyBmaWxlLCBhbmQgbm90IHRoZSBhcmNoL2FybS9saWIgZGlyZWN0b3J5LiAgVGhpcworICBhbGxvd3MgdGhlIGRyaXZlciB0byBiZSBjb21waWxlZCBhcyBhIGxvYWRhYmxlIG1vZHVsZSB3aXRob3V0IHJlcXVpcmluZworICBoYWxmIHRoZSBjb2RlIHRvIGJlIGNvbXBpbGVkIGludG8gdGhlIGtlcm5lbCBpbWFnZS4KKworICBJbiBnZW5lcmFsLCB0cnkgdG8gYXZvaWQgdXNpbmcgYXNzZW1ibGVyIHVubGVzcyBpdCBpcyByZWFsbHkgbmVjZXNzYXJ5LiAgSXQKKyAgbWFrZXMgZHJpdmVycyBmYXIgbGVzcyBlYXN5IHRvIHBvcnQgdG8gb3RoZXIgaGFyZHdhcmUuCisKKworU1Q1MDYgaGFyZCBkcml2ZXMKKy0tLS0tLS0tLS0tLS0tLS0tCisKKyAgVGhlIFNUNTA2IGhhcmQgZHJpdmUgY29udHJvbGxlcnMgc2VlbSB0byBiZSB3b3JraW5nIGZpbmUgKGlmIGEgbGl0dGxlCisgIHNsb3dseSkuICBBdCB0aGUgbW9tZW50IHRoZXkgd2lsbCBvbmx5IHdvcmsgb2ZmIHRoZSBjb250cm9sbGVycyBvbiBhbgorICBBNHgwJ3MgbW90aGVyYm9hcmQsIGJ1dCBmb3IgaXQgdG8gd29yayBvZmYgYSBQb2R1bGUganVzdCByZXF1aXJlcworICBzb21lb25lIHdpdGggYSBwb2R1bGUgdG8gYWRkIHRoZSBhZGRyZXNzZXMgZm9yIHRoZSBJUlEgbWFzayBhbmQgdGhlCisgIEhEQyBiYXNlIHRvIHRoZSBzb3VyY2UuCisKKyAgQXMgb2YgMzEvMy85NiBpdCB3b3JrcyB3aXRoIHR3byBkcml2ZXMgKHlvdSBzaG91bGQgZ2V0IHRoZSBBREZTCisgICpjb25maWd1cmUgaGFyZGRyaXZlIHNldCB0byAyKS4gSSd2ZSBnb3QgYW4gaW50ZXJuYWwgMjBNQiBhbmQgYSBncmVhdAorICBiaWcgZXh0ZXJuYWwgNS4yNSIgRkggNjRNQiBkcml2ZSAod2hvIGNvdWxkIGV2ZXIgd2FudCBtb3JlIDotKSApLgorCisgIEkndmUganVzdCBnb3QgMjQwSy9zIG9mZiBpdCAoYSBkZCB3aXRoIGJzPTEyOGspOyB0aGF0cyBhYm91dCBoYWxmIG9mIHdoYXQKKyAgUmlzY09TIGdldHM7IGJ1dCBpdCdzIGEgaGVjayBvZiBhIGxvdCBiZXR0ZXIgdGhhbiB0aGUgNTBLL3MgSSB3YXMgZ2V0dGluZworICBsYXN0IHdlZWsgOi0pCisKKyAgS25vd24gYnVnOiBEcml2ZSBkYXRhIGVycm9ycyBjYW4gY2F1c2UgYSBoYW5nOyBpbmNsdWRpbmcgY2FzZXMgd2hlcmUKKyAgdGhlIGNvbnRyb2xsZXIgaGFzIGZpeGVkIHRoZSBlcnJvciB1c2luZyBFQ0MuIChQb3NzaWJseSBPTkxZCisgIGluIHRoYXQgY2FzZS4uLmhtbSkuCisKKworMTc3MiBGbG9wcHkKKy0tLS0tLS0tLS0tCisgIFRoaXMgYWxzbyBzZWVtcyB0byB3b3JrIE9LLCBidXQgaGFzbid0IGJlZW4gc3RyZXNzZWQgbXVjaCBsYXRlbHkuICBJdAorICBoYXNuJ3QgZ290IGFueSBjb2RlIGZvciBkaXNjIGNoYW5nZSBkZXRlY3Rpb24gaW4gdGhlcmUgYXQgdGhlIG1vbWVudCB3aGljaAorICBjb3VsZCBiZSBhIGJpdCBvZiBhIHByb2JsZW0hICBTdWdnZXN0aW9ucyBvbiB0aGUgY29ycmVjdCB3YXkgdG8gZG8gdGhpcworICBhcmUgd2VsY29tZS4KKworCitDT05GSUdfTUFDSF8gYW5kIENPTkZJR19BUkNIXworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgQSBjaGFuZ2Ugd2FzIG1hZGUgaW4gMjAwMyB0byB0aGUgbWFjcm8gbmFtZXMgZm9yIG5ldyBtYWNoaW5lcy4KKyAgSGlzdG9yaWNhbGx5LCBDT05GSUdfQVJDSF8gd2FzIHVzZWQgZm9yIHRoZSBib25hZmlkZSBhcmNoaXRlY3R1cmUsCisgIGUuZy4gU0ExMTAwLCBhcyB3ZWxsIGFzIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgYXJjaGl0ZWN0dXJlLAorICBlLmcuIEFzc2FiZXQuICBJdCB3YXMgZGVjaWRlZCB0byBjaGFuZ2UgdGhlIGltcGxlbWVudGF0aW9uIG1hY3JvcworICB0byByZWFkIENPTkZJR19NQUNIXyBmb3IgY2xhcml0eS4gIE1vcmVvdmVyLCBhIHJldHJvYWN0aXZlIGZpeHVwIGhhcworICBub3QgYmVlbiBtYWRlIGJlY2F1c2UgaXQgd291bGQgY29tcGxpY2F0ZSBwYXRjaGluZy4KKworICBQcmV2aW91cyByZWdpc3RyYXRpb25zIG1heSBiZSBmb3VuZCBvbmxpbmUuCisKKyAgICA8aHR0cDovL3d3dy5hcm0ubGludXgub3JnLnVrL2RldmVsb3Blci9tYWNoaW5lcy8+CisKK0tlcm5lbCBlbnRyeSAoaGVhZC5TKQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgVGhlIGluaXRpYWwgZW50cnkgaW50byB0aGUga2VybmVsIGlzIHZpYSBoZWFkLlMsIHdoaWNoIHVzZXMgbWFjaGluZQorICBpbmRlcGVuZGVudCBjb2RlLiAgVGhlIG1hY2hpbmUgaXMgc2VsZWN0ZWQgYnkgdGhlIHZhbHVlIG9mICdyMScgb24KKyAgZW50cnksIHdoaWNoIG11c3QgYmUga2VwdCB1bmlxdWUuCisKKyAgRHVlIHRvIHRoZSBsYXJnZSBudW1iZXIgb2YgbWFjaGluZXMgd2hpY2ggdGhlIEFSTSBwb3J0IG9mIExpbnV4IHByb3ZpZGVzCisgIGZvciwgd2UgaGF2ZSBhIG1ldGhvZCB0byBtYW5hZ2UgdGhpcyB3aGljaCBlbnN1cmVzIHRoYXQgd2UgZG9uJ3QgZW5kIHVwCisgIGR1cGxpY2F0aW5nIGxhcmdlIGFtb3VudHMgb2YgY29kZS4KKworICBXZSBncm91cCBtYWNoaW5lIChvciBwbGF0Zm9ybSkgc3VwcG9ydCBjb2RlIGludG8gbWFjaGluZSBjbGFzc2VzLiAgQQorICBjbGFzcyB0eXBpY2FsbHkgYmFzZWQgYXJvdW5kIG9uZSBvciBtb3JlIHN5c3RlbSBvbiBhIGNoaXAgZGV2aWNlcywgYW5kCisgIGFjdHMgYXMgYSBuYXR1cmFsIGNvbnRhaW5lciBhcm91bmQgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbnMuICBUaGVzZQorICBjbGFzc2VzIGFyZSBnaXZlbiBkaXJlY3RvcmllcyAtIGFyY2gvYXJtL21hY2gtPGNsYXNzPiBhbmQKKyAgaW5jbHVkZS9hc20tYXJtL2FyY2gtPGNsYXNzPiAtIHdoaWNoIGNvbnRhaW4gdGhlIHNvdXJjZSBmaWxlcyB0bworICBzdXBwb3J0IHRoZSBtYWNoaW5lIGNsYXNzLiAgVGhpcyBkaXJlY3RvcmllcyBhbHNvIGNvbnRhaW4gYW55IG1hY2hpbmUKKyAgc3BlY2lmaWMgc3VwcG9ydGluZyBjb2RlLgorCisgIEZvciBleGFtcGxlLCB0aGUgU0ExMTAwIGNsYXNzIGlzIGJhc2VkIHVwb24gdGhlIFNBMTEwMCBhbmQgU0ExMTEwIFNvQworICBkZXZpY2VzLCBhbmQgY29udGFpbnMgdGhlIGNvZGUgdG8gc3VwcG9ydCB0aGUgd2F5IHRoZSBvbi1ib2FyZCBhbmQgb2ZmLQorICBib2FyZCBkZXZpY2VzIGFyZSB1c2VkLCBvciB0aGUgZGV2aWNlIGlzIHNldHVwLCBhbmQgcHJvdmlkZXMgdGhhdAorICBtYWNoaW5lIHNwZWNpZmljICJwZXJzb25hbGl0eS4iCisKKyAgVGhpcyBmaW5lLWdyYWluZWQgbWFjaGluZSBzcGVjaWZpYyBzZWxlY3Rpb24gaXMgY29udHJvbGxlZCBieSB0aGUgbWFjaGluZQorICB0eXBlIElELCB3aGljaCBhY3RzIGJvdGggYXMgYSBydW4tdGltZSBhbmQgYSBjb21waWxlLXRpbWUgY29kZSBzZWxlY3Rpb24KKyAgbWV0aG9kLgorCisgIFlvdSBjYW4gcmVnaXN0ZXIgYSBuZXcgbWFjaGluZSB2aWEgdGhlIHdlYiBzaXRlIGF0OgorCisgICAgPGh0dHA6Ly93d3cuYXJtLmxpbnV4Lm9yZy51ay9kZXZlbG9wZXIvbWFjaGluZXMvPgorCistLS0KK1J1c3NlbGwgS2luZyAoMTUvMDMvMjAwNCkKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9BRFNCaXRzeSBiL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9BRFNCaXRzeQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjQ3YzM4Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0FEU0JpdHN5CkBAIC0wLDAgKzEsNDMgQEAKK0FEUyBCaXRzeSBTaW5nbGUgQm9hcmQgQ29tcHV0ZXIKKyhJdCBpcyBkaWZmZXJlbnQgZnJvbSBCaXRzeShpUEFRKSBvZiBDb21wYXEpCisKK0ZvciBtb3JlIGRldGFpbHMsIGNvbnRhY3QgQXBwbGllZCBEYXRhIFN5c3RlbXMgb3Igc2VlCitodHRwOi8vd3d3LmFwcGxpZWRkYXRhLm5ldC9wcm9kdWN0cy5odG1sCisKK1RoZSBMaW51eCBzdXBwb3J0IGZvciB0aGlzIHByb2R1Y3QgaGFzIGJlZW4gcHJvdmlkZWQgYnkKK1dvb2p1bmcgSHVoIDx3aHVoQGFwcGxpZWRkYXRhLm5ldD4KKworVXNlICdtYWtlIGFkc2JpdHN5X2NvbmZpZycgYmVmb3JlIGFueSAnbWFrZSBjb25maWcnLgorVGhpcyB3aWxsIHNldCB1cCBkZWZhdWx0cyBmb3IgQURTIEJpdHN5IHN1cHBvcnQuCisKK1RoZSBrZXJuZWwgekltYWdlIGlzIGxpbmtlZCB0byBiZSBsb2FkZWQgYW5kIGV4ZWN1dGVkIGF0IDB4YzA0MDAwMDAuCisKK0xpbnV4IGNhbiAgYmUgdXNlZCB3aXRoIHRoZSBBRFMgQm9vdExvYWRlciB0aGF0IHNoaXBzIHdpdGggdGhlCituZXdlciByZXYgYm9hcmRzLiBTZWUgdGhlaXIgZG9jdW1lbnRhdGlvbiBvbiBob3cgdG8gbG9hZCBMaW51eC4KKworU3VwcG9ydGVkIHBlcmlwaGVyYWxzOgorLSBTQTExMDAgTENEIGZyYW1lIGJ1ZmZlciAoOC8xNmJwcC4uLnNvcnQgb2YpCistIFNBMTExMSBVU0IgTWFzdGVyCistIFNBMTEwMCBzZXJpYWwgcG9ydAorLSBwY21jaWEsIGNvbXBhY3QgZmxhc2gKKy0gdG91Y2hzY3JlZW4odWNiMTIwMCkKKy0gY29uc29sZSBvbiBMQ0Qgc2NyZWVuCistIHNlcmlhbCBwb3J0cyAodHR5U1swLTJdKQorICAtIHR0eVMwIGlzIGRlZmF1bHQgZm9yIHNlcmlhbCBjb25zb2xlCisKK1RvIGRvOgorLSBldmVyeXRoaW5nIGVsc2UhICA6LSkKKworTm90ZXM6CisKKy0gVGhlIGZsYXNoIG9uIGJvYXJkIGlzIGRpdmlkZWQgaW50byAzIHBhcnRpdGlvbnMuCisgIFlvdSBzaG91bGQgYmUgY2FyZWZ1bCB0byB1c2UgZmxhc2ggb24gYm9hcmQuCisgIEl0J3MgcGFydGl0aW9uIGlzIGRpZmZlcmVudCBmcm9tIEdyYXBoaWNzQ2xpZW50IFBsdXMgYW5kIEdyYXBoaWNzTWFzdGVyCisKKy0gMTZicHAgbW9kZSByZXF1aXJlcyBhIGRpZmZlcmVudCBjYWJsZSB0aGFuIHdoYXQgc2hpcHMgd2l0aCB0aGUgYm9hcmQuCisgIENvbnRhY3QgQURTIG9yIGxvb2sgdGhyb3VnaCB0aGUgbWFudWFsIHRvIHdpcmUgeW91ciBvd24uIEN1cnJlbnRseSwKKyAgaWYgeW91IGNvbXBpbGUgd2l0aCAxNmJpdCBtb2RlIHN1cHBvcnQgYW5kIHN3aXRjaCBpbnRvIGEgbG93ZXIgYnBwCisgIG1vZGUsIHRoZSB0aW1pbmcgaXMgb2ZmIHNvIHRoZSBpbWFnZSBpcyBjb3JydXB0ZWQuICBUaGlzIHdpbGwgYmUKKyAgZml4ZWQgc29vbi4KKworQW55IGNvbnRyaWJ1dGlvbiBjYW4gYmUgc2VudCB0byBuaWNvQGNhbS5vcmcgYW5kIHdpbGwgYmUgZ3JlYXRseSB3ZWxjb21lIQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0Fzc2FiZXQgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvQXNzYWJldApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYmJlNTU4Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0Fzc2FiZXQKQEAgLTAsMCArMSwzMDEgQEAKK1RoZSBJbnRlbCBBc3NhYmV0IChTQS0xMTEwIGV2YWx1YXRpb24pIGJvYXJkCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitQbGVhc2Ugc2VlOgoraHR0cDovL2RldmVsb3Blci5pbnRlbC5jb20vZGVzaWduL3N0cm9uZy9xdWlja2xpc3QvZXZhbC1wbGF0L3NhLTExMTAuaHRtCitodHRwOi8vZGV2ZWxvcGVyLmludGVsLmNvbS9kZXNpZ24vc3Ryb25nL2d1aWRlcy8yNzgyNzguaHRtCisKK0Fsc28gc29tZSBub3RlcyBmcm9tIEpvaG4gRyBEb3JzZXkgPGpkNXFAYW5kcmV3LmNtdS5lZHU+OgoraHR0cDovL3d3dy5jcy5jbXUuZWR1L353ZWFyYWJsZS9zb2Z0d2FyZS9hc3NhYmV0Lmh0bWwKKworCitCdWlsZGluZyB0aGUga2VybmVsCistLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RvIGJ1aWxkIHRoZSBrZXJuZWwgd2l0aCBjdXJyZW50IGRlZmF1bHRzOgorCisJbWFrZSBhc3NhYmV0X2NvbmZpZworCW1ha2Ugb2xkY29uZmlnCisJbWFrZSB6SW1hZ2UKKworVGhlIHJlc3VsdGluZyBrZXJuZWwgaW1hZ2Ugc2hvdWxkIGJlIGF2YWlsYWJsZSBpbiBsaW51eC9hcmNoL2FybS9ib290L3pJbWFnZS4KKworCitJbnN0YWxsaW5nIGEgYm9vdGxvYWRlcgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQSBjb3VwbGUgb2YgYm9vdGxvYWRlcnMgYWJsZSB0byBib290IExpbnV4IG9uIEFzc2FiZXQgYXJlIGF2YWlsYWJsZToKKworQkxPQiAoaHR0cDovL3d3dy5sYXJ0LnR1ZGVsZnQubmwvbGFydHdhcmUvYmxvYi8pCisKKyAgIEJMT0IgaXMgYSBib290bG9hZGVyIHVzZWQgd2l0aGluIHRoZSBMQVJUIHByb2plY3QuICBTb21lIGNvbnRyaWJ1dGVkCisgICBwYXRjaGVzIHdlcmUgbWVyZ2VkIGludG8gQkxPQiB0byBhZGQgc3VwcG9ydCBmb3IgQXNzYWJldC4KKworQ29tcGFxJ3MgQm9vdGxkciArIEpvaG4gRG9yc2V5J3MgcGF0Y2ggZm9yIEFzc2FiZXQgc3VwcG9ydAorKGh0dHA6Ly93d3cuaGFuZGhlbGRzLm9yZy9Db21wYXEvYm9vdGxkci5odG1sKQorKGh0dHA6Ly93d3cud2VhcmFibGVncm91cC5vcmcvc29mdHdhcmUvYm9vdGxkci8pCisKKyAgIEJvb3RsZHIgaXMgdGhlIGJvb3Rsb2FkZXIgZGV2ZWxvcGVkIGJ5IENvbXBhcSBmb3IgdGhlIGlQQVEgUG9ja2V0IFBDLgorICAgSm9obiBEb3JzZXkgaGFzIHByb2R1Y2VkIGFkZC1vbiBwYXRjaGVzIHRvIGFkZCBzdXBwb3J0IGZvciBBc3NhYmV0IGFuZAorICAgdGhlIEpGRlMgZmlsZXN5c3RlbS4KKworUmVkQm9vdCAoaHR0cDovL3NvdXJjZXMucmVkaGF0LmNvbS9yZWRib290LykKKworICAgUmVkQm9vdCBpcyBhIGJvb3Rsb2FkZXIgZGV2ZWxvcGVkIGJ5IFJlZCBIYXQgYmFzZWQgb24gdGhlIGVDb3MgUlRPUworICAgaGFyZHdhcmUgYWJzdHJhY3Rpb24gbGF5ZXIuICBJdCBzdXBwb3J0cyBBc3NhYmV0IGFtb25nc3QgbWFueSBvdGhlcgorICAgaGFyZHdhcmUgcGxhdGZvcm1zLgorCitSZWRCb290IGlzIGN1cnJlbnRseSB0aGUgcmVjb21tZW5kZWQgY2hvaWNlIHNpbmNlIGl0J3MgdGhlIG9ubHkgb25lIHRvIGhhdmUKK25ldHdvcmtpbmcgc3VwcG9ydCwgYW5kIGlzIHRoZSBtb3N0IGFjdGl2ZWx5IG1haW50YWluZWQuCisKK0JyaWVmIGV4YW1wbGVzIG9uIGhvdyB0byBib290IExpbnV4IHdpdGggUmVkQm9vdCBhcmUgc2hvd24gYmVsb3cuICBCdXQgZmlyc3QKK3lvdSBuZWVkIHRvIGhhdmUgUmVkQm9vdCBpbnN0YWxsZWQgaW4geW91ciBmbGFzaCBtZW1vcnkuICBBIGtub3duIHRvIHdvcmsKK3ByZWNvbXBpbGVkIFJlZEJvb3QgYmluYXJ5IGlzIGF2YWlsYWJsZSBmcm9tIHRoZSBmb2xsb3dpbmcgbG9jYXRpb246CisKK2Z0cDovL2Z0cC5uZXR3aW5kZXIub3JnL3VzZXJzL24vbmljby8KK2Z0cDovL2Z0cC5hcm0ubGludXgub3JnLnVrL3B1Yi9saW51eC9hcm0vcGVvcGxlL25pY28vCitmdHA6Ly9mdHAuaGFuZGhlbGRzLm9yZy9wdWIvbGludXgvYXJtL3NhLTExMDAtcGF0Y2hlcy8KKworTG9vayBmb3IgcmVkYm9vdC1hc3NhYmV0Ki50Z3ouICBTb21lIGluc3RhbGxhdGlvbiBpbmZvcyBhcmUgcHJvdmlkZWQgaW4KK3JlZGJvb3QtYXNzYWJldCoudHh0LgorCisKK0luaXRpYWwgUmVkQm9vdCBjb25maWd1cmF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgY29tbWFuZHMgdXNlZCBoZXJlIGFyZSBleHBsYWluZWQgaW4gVGhlIFJlZEJvb3QgVXNlcidzIEd1aWRlIGF2YWlsYWJsZQorb24tbGluZSBhdCBodHRwOi8vc291cmNlcy5yZWRoYXQuY29tL2Vjb3MvZG9jcy1sYXRlc3QvcmVkYm9vdC9yZWRib290Lmh0bWwuCitQbGVhc2UgcmVmZXIgdG8gaXQgZm9yIGV4cGxhbmF0aW9ucy4KKworSWYgeW91IGhhdmUgYSBDRiBuZXR3b3JrIGNhcmQgKG15IEFzc2FiZXQga2l0IGNvbnRhaW5lZCBhIENGKyBMUC1FIGZyb20KK1NvY2tldCBDb21tdW5pY2F0aW9ucyBJbmMuKSwgeW91IHNob3VsZCBzdHJvbmdseSBjb25zaWRlciB1c2luZyBpdCBmb3IgVEZUUAorZmlsZSB0cmFuc2ZlcnMuICBZb3UgbXVzdCBpbnNlcnQgaXQgYmVmb3JlIFJlZEJvb3QgcnVucyBzaW5jZSBpdCBjYW4ndCBkZXRlY3QKK2l0IGR5bmFtaWNhbGx5LgorCitUbyBpbml0aWFsaXplIHRoZSBmbGFzaCBkaXJlY3Rvcnk6CisKKwlmaXMgaW5pdCAtZgorCitUbyBpbml0aWFsaXplIHRoZSBub24tdm9sYXRpbGUgc2V0dGluZ3MsIGxpa2Ugd2hldGhlciB5b3Ugd2FudCB0byB1c2UgQk9PVFAgb3IKK2Egc3RhdGljIElQIGFkZHJlc3MsIGV0YywgdXNlIHRoaXMgY29tbWFuZDoKKworCWZjb25maWcgLWkKKworCitXcml0aW5nIGEga2VybmVsIGltYWdlIGludG8gZmxhc2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitGaXJzdCwgdGhlIGtlcm5lbCBpbWFnZSBtdXN0IGJlIGxvYWRlZCBpbnRvIFJBTS4gIElmIHlvdSBoYXZlIHRoZSB6SW1hZ2UgZmlsZQorYXZhaWxhYmxlIG9uIGEgVEZUUCBzZXJ2ZXI6CisKKwlsb2FkIHpJbWFnZSAtciAtYiAweDEwMDAwMAorCitJZiB5b3UgcmF0aGVyIHdhbnQgdG8gdXNlIFktTW9kZW0gdXBsb2FkIG92ZXIgdGhlIHNlcmlhbCBwb3J0OgorCisJbG9hZCAtbSB5bW9kZW0gLXIgLWIgMHgxMDAwMDAKKworVG8gd3JpdGUgaXQgdG8gZmxhc2g6CisKKwlmaXMgY3JlYXRlICJMaW51eCBrZXJuZWwiIC1iIDB4MTAwMDAwIC1sIDB4YzAwMDAKKworCitCb290aW5nIHRoZSBrZXJuZWwKKy0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUga2VybmVsIHN0aWxsIHJlcXVpcmVzIGEgZmlsZXN5c3RlbSB0byBib290LiAgQSByYW1kaXNrIGltYWdlIGNhbiBiZSBsb2FkZWQKK2FzIGZvbGxvd3M6CisKKwlsb2FkIHJhbWRpc2tfaW1hZ2UuZ3ogLXIgLWIgMHg4MDAwMDAKKworQWdhaW4sIFktTW9kZW0gdXBsb2FkIGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgVEZUUCBieSByZXBsYWNpbmcgdGhlIGZpbGUgbmFtZQorYnkgJy15IHltb2RlbScuCisKK05vdyB0aGUga2VybmVsIGNhbiBiZSByZXRyaWV2ZWQgZnJvbSBmbGFzaCBsaWtlIHRoaXM6CisKKwlmaXMgbG9hZCAiTGludXgga2VybmVsIgorCitvciBsb2FkZWQgYXMgZGVzY3JpYmVkIHByZXZpb3VzbHkuICBUbyBib290IHRoZSBrZXJuZWw6CisKKwlleGVjIC1iIDB4MTAwMDAwIC1sIDB4YzAwMDAKKworVGhlIHJhbWRpc2sgaW1hZ2UgY291bGQgYmUgc3RvcmVkIGludG8gZmxhc2ggYXMgd2VsbCwgYnV0IHRoZXJlIGFyZSBiZXR0ZXIKK3NvbHV0aW9ucyBmb3Igb24tZmxhc2ggZmlsZXN5c3RlbXMgYXMgbWVudGlvbmVkIGJlbG93LgorCisKK1VzaW5nIEpGRlMyCistLS0tLS0tLS0tLQorCitVc2luZyBKRkZTMiAodGhlIFNlY29uZCBKb3VybmFsbGluZyBGbGFzaCBGaWxlIFN5c3RlbSkgaXMgcHJvYmFibHkgdGhlIG1vc3QKK2NvbnZlbmllbnQgd2F5IHRvIHN0b3JlIGEgd3JpdGFibGUgZmlsZXN5c3RlbSBpbnRvIGZsYXNoLiAgSkZGUzIgaXMgdXNlZCBpbgorY29uanVuY3Rpb24gd2l0aCB0aGUgTVREIGxheWVyIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciBsb3ctbGV2ZWwgZmxhc2gKK21hbmFnZW1lbnQuICBNb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBMaW51eCBNVEQgY2FuIGJlIGZvdW5kIG9uLWxpbmUgYXQ6CitodHRwOi8vd3d3LmxpbnV4LW10ZC5pbmZyYWRlYWQub3JnLy4gIEEgSkZGUyBob3d0byB3aXRoIHNvbWUgaW5mb3MgYWJvdXQKK2NyZWF0aW5nIEpGRlMvSkZGUzIgaW1hZ2VzIGlzIGF2YWlsYWJsZSBmcm9tIHRoZSBzYW1lIHNpdGUuCisKK0ZvciBpbnN0YW5jZSwgYSBzYW1wbGUgSkZGUzIgaW1hZ2UgY2FuIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBzYW1lIEZUUCBzaXRlcworbWVudGlvbmVkIGJlbG93IGZvciB0aGUgcHJlY29tcGlsZWQgUmVkQm9vdCBpbWFnZS4KKworVG8gbG9hZCB0aGlzIGZpbGU6CisKKwlsb2FkIHNhbXBsZV9pbWcuamZmczIgLXIgLWIgMHgxMDAwMDAKKworVGhlIHJlc3VsdCBzaG91bGQgbG9vayBsaWtlOgorCitSZWRCb290PiBsb2FkIHNhbXBsZV9pbWcuamZmczIgLXIgLWIgMHgxMDAwMDAKK1JhdyBmaWxlIGxvYWRlZCAweDAwMTAwMDAwLTB4MDAzNzc0MjQKKworTm93IHdlIG11c3Qga25vdyB0aGUgc2l6ZSBvZiB0aGUgdW5hbGxvY2F0ZWQgZmxhc2g6CisKKwlmaXMgZnJlZQorCitSZXN1bHQ6CisKK1JlZEJvb3Q+IGZpcyBmcmVlCisgIDB4NTAwRTAwMDAgLi4gMHg1MDNDMDAwMAorCitUaGUgdmFsdWVzIGFib3ZlIG1heSBiZSBkaWZmZXJlbnQgZGVwZW5kaW5nIG9uIHRoZSBzaXplIG9mIHRoZSBmaWxlc3lzdGVtIGFuZAordGhlIHR5cGUgb2YgZmxhc2guICBTZWUgdGhlaXIgdXNhZ2UgYmVsb3cgYXMgYW4gZXhhbXBsZSBhbmQgdGFrZSBjYXJlIG9mCitzdWJzdGl0dXRpbmcgeW91cnMgYXBwcm9wcmlhdGVseS4KKworV2UgbXVzdCBkZXRlcm1pbmUgc29tZSB2YWx1ZXM6CisKK3NpemUgb2YgdW5hbGxvY2F0ZWQgZmxhc2g6CTB4NTAzYzAwMDAgLSAweDUwMGUwMDAwID0gMHgyZTAwMDAKK3NpemUgb2YgdGhlIGZpbGVzeXN0ZW0gaW1hZ2U6CTB4MDAzNzc0MjQgLSAweDAwMTAwMDAwID0gMHgyNzc0MjQKKworV2Ugd2FudCB0byBmaXQgdGhlIGZpbGVzeXN0ZW0gaW1hZ2Ugb2YgY291cnNlLCBidXQgd2UgYWxzbyB3YW50IHRvIGdpdmUgaXQgYWxsCit0aGUgcmVtYWluaW5nIGZsYXNoIHNwYWNlIGFzIHdlbGwuICBUbyB3cml0ZSBpdDoKKworCWZpcyB1bmxvY2sgLWYgMHg1MDBFMDAwMCAtbCAweDJlMDAwMAorCWZpcyBlcmFzZSAtZiAweDUwMEUwMDAwIC1sIDB4MmUwMDAwCisJZmlzIHdyaXRlIC1iIDB4MTAwMDAwIC1sIDB4Mjc3NDI0IC1mIDB4NTAwRTAwMDAKKwlmaXMgY3JlYXRlICJKRkZTMiIgLW4gLWYgMHg1MDBFMDAwMCAtbCAweDJlMDAwMAorCitOb3cgdGhlIGZpbGVzeXN0ZW0gaXMgYXNzb2NpYXRlZCB0byBhIE1URCAicGFydGl0aW9uIiBvbmNlIExpbnV4IGhhcyBkaXNjb3ZlcmVkCit3aGF0IHRoZXkgYXJlIGluIHRoZSBib290IHByb2Nlc3MuICBGcm9tIFJlZGJvb3QsIHRoZSAnZmlzIGxpc3QnIGNvbW1hbmQKK2Rpc3BsYXlzIHRoZW06CisKK1JlZEJvb3Q+IGZpcyBsaXN0CitOYW1lICAgICAgICAgICAgICBGTEFTSCBhZGRyICBNZW0gYWRkciAgICBMZW5ndGggICAgICBFbnRyeSBwb2ludAorUmVkQm9vdCAgICAgICAgICAgMHg1MDAwMDAwMCAgMHg1MDAwMDAwMCAgMHgwMDAyMDAwMCAgMHgwMDAwMDAwMAorUmVkQm9vdCBjb25maWcgICAgMHg1MDNDMDAwMCAgMHg1MDNDMDAwMCAgMHgwMDAyMDAwMCAgMHgwMDAwMDAwMAorRklTIGRpcmVjdG9yeSAgICAgMHg1MDNFMDAwMCAgMHg1MDNFMDAwMCAgMHgwMDAyMDAwMCAgMHgwMDAwMDAwMAorTGludXgga2VybmVsICAgICAgMHg1MDAyMDAwMCAgMHgwMDEwMDAwMCAgMHgwMDBDMDAwMCAgMHgwMDAwMDAwMAorSkZGUzIgICAgICAgICAgICAgMHg1MDBFMDAwMCAgMHg1MDBFMDAwMCAgMHgwMDJFMDAwMCAgMHgwMDAwMDAwMAorCitIb3dldmVyIExpbnV4IHNob3VsZCBkaXNwbGF5IHNvbWV0aGluZyBsaWtlOgorCitTQTExMDAgZmxhc2g6IHByb2JpbmcgMzItYml0IGZsYXNoIGJ1cworU0ExMTAwIGZsYXNoOiBGb3VuZCAyIHgxNiBkZXZpY2VzIGF0IDB4MCBpbiAzMi1iaXQgbW9kZQorVXNpbmcgUmVkQm9vdCBwYXJ0aXRpb24gZGVmaW5pdGlvbgorQ3JlYXRpbmcgNSBNVEQgcGFydGl0aW9ucyBvbiAiU0ExMTAwIGZsYXNoIjoKKzB4MDAwMDAwMDAtMHgwMDAyMDAwMCA6ICJSZWRCb290IgorMHgwMDAyMDAwMC0weDAwMGUwMDAwIDogIkxpbnV4IGtlcm5lbCIKKzB4MDAwZTAwMDAtMHgwMDNjMDAwMCA6ICJKRkZTMiIKKzB4MDAzYzAwMDAtMHgwMDNlMDAwMCA6ICJSZWRCb290IGNvbmZpZyIKKzB4MDAzZTAwMDAtMHgwMDQwMDAwMCA6ICJGSVMgZGlyZWN0b3J5IgorCitXaGF0J3MgaW1wb3J0YW50IGhlcmUgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBwYXJ0aXRpb24gd2UgYXJlIGludGVyZXN0ZWQgaW4sCit3aGljaCBpcyB0aGUgdGhpcmQgb25lLiAgV2l0aGluIExpbnV4LCB0aGlzIGNvcnJlc3BvbmQgdG8gL2Rldi9tdGRibG9jazIuCitUaGVyZWZvcmUgdG8gYm9vdCBMaW51eCB3aXRoIHRoZSBrZXJuZWwgYW5kIGl0cyByb290IGZpbGVzeXN0ZW0gaW4gZmxhc2gsIHdlCituZWVkIHRoaXMgUmVkQm9vdCBjb21tYW5kOgorCisJZmlzIGxvYWQgIkxpbnV4IGtlcm5lbCIKKwlleGVjIC1iIDB4MTAwMDAwIC1sIDB4YzAwMDAgLWMgInJvb3Q9L2Rldi9tdGRibG9jazIiCisKK09mIGNvdXJzZSBvdGhlciBmaWxlc3lzdGVtcyB0aGFuIEpGRlMgbWlnaHQgYmUgdXNlZCwgbGlrZSBjcmFtZnMgZm9yIGV4YW1wbGUuCitZb3UgbWlnaHQgd2FudCB0byBib290IHdpdGggYSByb290IGZpbGVzeXN0ZW0gb3ZlciBORlMsIGV0Yy4gIEl0IGlzIGFsc28KK3Bvc3NpYmxlLCBhbmQgc29tZXRpbWVzIG1vcmUgY29udmVuaWVudCwgdG8gZmxhc2ggYSBmaWxlc3lzdGVtIGRpcmVjdGx5IGZyb20KK3dpdGhpbiBMaW51eCB3aGlsZSBib290ZWQgZnJvbSBhIHJhbWRpc2sgb3IgTkZTLiAgVGhlIExpbnV4IE1URCByZXBvc2l0b3J5IGhhcworbWFueSB0b29scyB0byBkZWFsIHdpdGggZmxhc2ggbWVtb3J5IGFzIHdlbGwsIHRvIGVyYXNlIGl0IGZvciBleGFtcGxlLiAgSkZGUzIKK2NhbiB0aGVuIGJlIG1vdW50ZWQgZGlyZWN0bHkgb24gYSBmcmVzaGx5IGVyYXNlZCBwYXJ0aXRpb24gYW5kIGZpbGVzIGNhbiBiZQorY29waWVkIG92ZXIgZGlyZWN0bHkuICBFdGMuLi4KKworCitSZWRCb290IHNjcmlwdGluZworLS0tLS0tLS0tLS0tLS0tLS0KKworQWxsIHRoZSBjb21tYW5kcyBhYm92ZSBhcmVuJ3Qgc28gdXNlZnVsIGlmIHRoZXkgaGF2ZSB0byBiZSB0eXBlZCBpbiBldmVyeQordGltZSB0aGUgQXNzYWJldCBpcyByZWJvb3RlZC4gIFRoZXJlZm9yZSBpdCdzIHBvc3NpYmxlIHRvIGF1dG9tYXRpemUgdGhlIGJvb3QKK3Byb2Nlc3MgdXNpbmcgUmVkQm9vdCdzIHNjcmlwdGluZyBjYXBhYmlsaXR5LgorCitGb3IgZXhhbXBsZSwgSSB1c2UgdGhpcyB0byBib290IExpbnV4IHdpdGggYm90aCB0aGUga2VybmVsIGFuZCB0aGUgcmFtZGlzaworaW1hZ2VzIHJldHJpZXZlZCBmcm9tIGEgVEZUUCBzZXJ2ZXIgb24gdGhlIG5ldHdvcms6CisKK1JlZEJvb3Q+IGZjb25maWcKK1J1biBzY3JpcHQgYXQgYm9vdDogZmFsc2UgdHJ1ZQorQm9vdCBzY3JpcHQ6CitFbnRlciBzY3JpcHQsIHRlcm1pbmF0ZSB3aXRoIGVtcHR5IGxpbmUKKz4+IGxvYWQgekltYWdlIC1yIC1iIDB4MTAwMDAwCis+PiBsb2FkIHJhbWRpc2tfa3MuZ3ogLXIgLWIgMHg4MDAwMDAKKz4+IGV4ZWMgLWIgMHgxMDAwMDAgLWwgMHhjMDAwMAorPj4KK0Jvb3Qgc2NyaXB0IHRpbWVvdXQgKDEwMDBtcyByZXNvbHV0aW9uKTogMworVXNlIEJPT1RQIGZvciBuZXR3b3JrIGNvbmZpZ3VyYXRpb246IHRydWUKK0dEQiBjb25uZWN0aW9uIHBvcnQ6IDkwMDAKK05ldHdvcmsgZGVidWcgYXQgYm9vdCB0aW1lOiBmYWxzZQorVXBkYXRlIFJlZEJvb3Qgbm9uLXZvbGF0aWxlIGNvbmZpZ3VyYXRpb24gLSBhcmUgeW91IHN1cmUgKHkvbik/IHkKKworVGhlbiwgcmVib290aW5nIHRoZSBBc3NhYmV0IGlzIGp1c3QgYSBtYXR0ZXIgb2Ygd2FpdGluZyBmb3IgdGhlIGxvZ2luIHByb21wdC4KKworCisKK05pY29sYXMgUGl0cmUKK25pY29AY2FtLm9yZworSnVuZSAxMiwgMjAwMQorCisKK1N0YXR1cyBvZiBwZXJpcGhlcmFscyBpbiAtcm1rIHRyZWUgKHVwZGF0ZWQgMTQvMTAvMjAwMSkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQXNzYWJldDoKKyBTZXJpYWwgcG9ydHM6CisgIFJhZGlvOgkJVFgsIFJYLCBDVFMsIERTUiwgRENELCBSSQorICAgUE06CQkJTm90IHRlc3RlZC4KKyAgQ09NOgkJCVRYLCBSWCwgQ1RTLCBEU1IsIERDRCwgUlRTLCBEVFIsIFBNCisgICBQTToJCQlOb3QgdGVzdGVkLgorICBJMkM6CQkJSW1wbGVtZW50ZWQsIG5vdCBmdWxseSB0ZXN0ZWQuCisgIEwzOgkJCUZ1bGx5IHRlc3RlZCwgcGFzcy4KKyAgIFBNOgkJCU5vdCB0ZXN0ZWQuCisKKyBWaWRlbzoKKyAgTENEOgkJCUZ1bGx5IHRlc3RlZC4gIFBNCisJCQkoTENEIGRvZXNuJ3QgbGlrZSBiZWluZyBibGFua2VkIHdpdGgKKwkJCSBuZXBvbnNldCBjb25uZWN0ZWQpCisgIFZpZGVvIG91dDoJCU5vdCBmdWxseQorCisgQXVkaW86CisgIFVEQTEzNDE6CisgICBQbGF5YmFjazoJCUZ1bGx5IHRlc3RlZCwgcGFzcy4KKyAgIFJlY29yZDoJCUltcGxlbWVudGVkLCBub3QgdGVzdGVkLgorICAgUE06CQkJTm90IHRlc3RlZC4KKworICBVQ0IxMjAwOgorICAgQXVkaW8gcGxheToJCUltcGxlbWVudGVkLCBub3QgaGVhdmlseSB0ZXN0ZWQuCisgICBBdWRpbyByZWM6CQlJbXBsZW1lbnRlZCwgbm90IGhlYXZpbHkgdGVzdGVkLgorICAgVGVsY28gYXVkaW8gcGxheToJSW1wbGVtZW50ZWQsIG5vdCBoZWF2aWx5IHRlc3RlZC4KKyAgIFRlbGNvIGF1ZGlvIHJlYzoJSW1wbGVtZW50ZWQsIG5vdCBoZWF2aWx5IHRlc3RlZC4KKyAgIFBPVFMgY29udHJvbDoJTm8KKyAgIFRvdWNoc2NyZWVuOgkJWWVzCisgICBQTToJCQlOb3QgdGVzdGVkLgorCisgT3RoZXI6CisgIFBDTUNJQToKKyAgIExQRToJCQlGdWxseSB0ZXN0ZWQsIHBhc3MuCisgIFVTQjoJCQlObworICBJUkRBOgorICAgU0lSOgkJCUZ1bGx5IHRlc3RlZCwgcGFzcy4KKyAgIEZJUjoJCQlGdWxseSB0ZXN0ZWQsIHBhc3MuCisgICBQTToJCQlOb3QgdGVzdGVkLgorCitOZXBvbnNldDoKKyBTZXJpYWwgcG9ydHM6CisgIENPTTEsMjoJVFgsIFJYLCBDVFMsIERTUiwgRENELCBSVFMsIERUUgorICAgUE06CQkJTm90IHRlc3RlZC4KKyAgVVNCOgkJCUltcGxlbWVudGVkLCBub3QgaGVhdmlseSB0ZXN0ZWQuCisgIFBDTUNJQToJCUltcGxlbWVudGVkLCBub3QgaGVhdmlseSB0ZXN0ZWQuCisgICBQTToJCQlOb3QgdGVzdGVkLgorICBDRjoJCQlJbXBsZW1lbnRlZCwgbm90IGhlYXZpbHkgdGVzdGVkLgorICAgUE06CQkJTm90IHRlc3RlZC4KKworTW9yZSBzdHVmZiBjYW4gYmUgZm91bmQgaW4gdGhlIC1ucCAoTmljb2xhcyBQaXRyZSdzKSB0cmVlLgorCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvQnJ1dHVzIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0JydXR1cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjU0YzhmCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0JydXR1cwpAQCAtMCwwICsxLDY2IEBACitCcnV0dXMgaXMgYW4gZXZhbHVhdGlvbiBwbGF0Zm9ybSBmb3IgdGhlIFNBMTEwMCBtYW51ZmFjdHVyZWQgYnkgSW50ZWwuICAKK0ZvciBtb3JlIGRldGFpbHMsIHNlZToKKworaHR0cDovL2RldmVsb3Blci5pbnRlbC5jb20vZGVzaWduL3N0cm9uZy9hcHBsbm90cy9zYTExMDBseC9nZXRzdGFydC5odG0KKworVG8gY29tcGlsZSBmb3IgQnJ1dHVzLCB5b3UgbXVzdCBpc3N1ZSB0aGUgZm9sbG93aW5nIGNvbW1hbmRzOgorCisJbWFrZSBicnV0dXNfY29uZmlnCisJbWFrZSBjb25maWcKKwlbYWNjZXB0IGFsbCB0aGUgZGVmYXVsdHNdCisJbWFrZSB6SW1hZ2UKKworVGhlIHJlc3VsdGluZyBrZXJuZWwgd2lsbCBlbmQgdXAgaW4gbGludXgvYXJjaC9hcm0vYm9vdC96SW1hZ2UuICBUaGlzIGZpbGUKK211c3QgYmUgbG9hZGVkIGF0IDB4YzAwMDgwMDAgaW4gQnJ1dHVzJ3MgbWVtb3J5IGFuZCBleGVjdXRpb24gc3RhcnRlZCBhdAorMHhjMDAwODAwMCBhcyB3ZWxsIHdpdGggdGhlIHZhbHVlIG9mIHJlZ2lzdGVycyByMCA9IDAgYW5kIHIxID0gMTYgdXBvbgorZW50cnkuCisKK0J1dCBwcmlvciB0byBleGVjdXRlIHRoZSBrZXJuZWwsIGEgcmFtZGlzayBpbWFnZSBtdXN0IGFsc28gYmUgbG9hZGVkIGluCittZW1vcnkuICBVc2UgbWVtb3J5IGFkZHJlc3MgMHhkODAwMDAwMCBmb3IgdGhpcy4gIE5vdGUgdGhhdCB0aGUgZmlsZSAKK2NvbnRhaW5pbmcgdGhlIChjb21wcmVzc2VkKSByYW1kaXNrIGltYWdlIG11c3Qgbm90IGV4Y2VlZCA0IE1CLgorCitUeXBpY2FsbHksIHlvdSdsbCBuZWVkIGFuZ2VsYm9vdCB0byBsb2FkIHRoZSBrZXJuZWwuCitUaGUgZm9sbG93aW5nIGFuZ2VsYm9vdC5vcHQgZmlsZSBzaG91bGQgYmUgdXNlZDoKKworLS0tLS0gYmVnaW4gYW5nZWxib290Lm9wdCAtLS0tLQorYmFzZSAweGMwMDA4MDAwCitlbnRyeSAweGMwMDA4MDAwCityMCAweDAwMDAwMDAwCityMSAweDAwMDAwMDEwCitkZXZpY2UgL2Rldi90dHlTMAorb3B0aW9ucyAiOTYwMCA4TjEiCitiYXVkIDExNTIwMAorb3RoZXJmaWxlIHJhbWRpc2tfaW1nLmd6CitvdGhlcmJhc2UgMHhkODAwMDAwMAorLS0tLS0gZW5kIGFuZ2VsYm9vdC5vcHQgLS0tLS0KKworVGhlbiBsb2FkIHRoZSBrZXJuZWwgYW5kIHJhbWRpc2sgd2l0aDoKKworCWFuZ2VsYm9vdCAtZiBhbmdlbGJvb3Qub3B0IHpJbWFnZQorCitUaGUgZmlyc3QgQnJ1dHVzIHNlcmlhbCBwb3J0IChhc3N1bWVkIHRvIGJlIGxpbmtlZCB0byAvZGV2L3R0eVMwIG9uIHlvdXIKK2hvc3QgUEMpIGlzIHVzZWQgYnkgYW5nZWwgdG8gbG9hZCB0aGUga2VybmVsIGFuZCByYW1kaXNrIGltYWdlLiBUaGUgc2VyaWFsCitjb25zb2xlIGlzIHByb3ZpZGVkIHRocm91Z2ggdGhlIHNlY29uZCBCcnV0dXMgc2VyaWFsIHBvcnQuIFRvIGFjY2VzcyBpdCwKK3lvdSBtYXkgdXNlIG1pbmljb20gY29uZmlndXJlZCB3aXRoIC9kZXYvdHR5UzEsIDk2MDAgYmF1ZCwgOE4xLCBubyBmbG93Citjb250cm9sLgorCitDdXJyZW50bHkgc3VwcG9ydGVkOgorCS0gUlMyMzIgc2VyaWFsIHBvcnRzCisJLSBhdWRpbyBvdXRwdXQKKwktIExDRCBzY3JlZW4KKwktIGtleWJvYXJkCisJCitUaGUgYWN0dWFsIEJydXR1cyBzdXBwb3J0IG1heSBub3QgYmUgY29tcGxldGUgd2l0aG91dCBleHRyYSBwYXRjaGVzLiAKK0lmIHN1Y2ggcGF0Y2hlcyBleGlzdCwgdGhleSBzaG91bGQgYmUgZm91bmQgZnJvbSAKK2Z0cC5uZXR3aW5kZXIub3JnL3VzZXJzL24vbmljby4KKworQSBmdWxsIFBDTUNJQSBzdXBwb3J0IGlzIHN0aWxsIG1pc3NpbmcsIGFsdGhvdWdoIGl0J3MgcG9zc2libGUgdG8gaGFjaworc29tZSBkcml2ZXJzIGluIG9yZGVyIHRvIGRyaXZlIGFscmVhZHkgaW5zZXJ0ZWQgY2FyZHMgYXQgYm9vdCB0aW1lIHdpdGgKK2xpdHRsZSBtb2RpZmljYXRpb25zLgorCitBbnkgY29udHJpYnV0aW9uIGlzIHdlbGNvbWUuCisKK1BsZWFzZSBzZW5kIHBhdGNoZXMgdG8gbmljb0BjYW0ub3JnCisKK0hhdmUgRnVuICEKKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0NFUkYgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvQ0VSRgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iM2Q4NDUzCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0NFUkYKQEAgLTAsMCArMSwyOSBAQAorKioqIFRoZSBTdHJvbmdBUk0gdmVyc2lvbiBvZiB0aGUgQ2VyZkJvYXJkL0N1YmUgaGFzIGJlZW4gZGlzY29udGludWVkICoqKgorCitUaGUgSW50cmluc3ljIENlcmZCb2FyZCBpcyBhIFN0cm9uZ0FSTSAxMTEwLWJhc2VkIGNvbXB1dGVyIG9uIGEgYm9hcmQKK3RoYXQgbWVhc3VyZXMgYXBwcm94aW1hdGVseSAyIiBzcXVhcmUuIEl0IGluY2x1ZGVzIGFuIEV0aGVybmV0Citjb250cm9sbGVyLCBhbiBSUzIzMi1jb21wYXRpYmxlIHNlcmlhbCBwb3J0LCBhIFVTQiBmdW5jdGlvbiBwb3J0LCBhbmQKK29uZSBDb21wYWN0Rmxhc2grIHNsb3Qgb24gdGhlIGJhY2suIFBpY3R1cmVzIGNhbiBiZSBmb3VuZCBhdCB0aGUKK0ludHJpbnN5YyB3ZWJzaXRlLCBodHRwOi8vd3d3LmludHJpbnN5Yy5jb20uCisKK1RoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIHRoZSBzdXBwb3J0IGluIHRoZSBMaW51eCBrZXJuZWwgZm9yIHRoZQorSW50cmluc3ljIENlcmZCb2FyZC4KKworU3VwcG9ydGVkIGluIHRoaXMgdmVyc2lvbjoKKyAgIC0gQ29tcGFjdEZsYXNoKyBzbG90IChzZWxlY3QgUENNQ0lBIGluIEdlbmVyYWwgU2V0dXAgYW5kIGFueSBvcHRpb25zCisgICAgIHRoYXQgbWF5IGJlIHJlcXVpcmVkKQorICAgLSBPbmJvYXJkIENyeXN0YWwgQ1M4OTAwIEV0aGVybmV0IGNvbnRyb2xsZXIgKENlcmYgQ1M4OTAwQSBzdXBwb3J0IGluCisgICAgIE5ldHdvcmsgRGV2aWNlcykKKyAgIC0gU2VyaWFsIHBvcnRzIHdpdGggYSBzZXJpYWwgY29uc29sZSAoaGFyZGNvZGVkIHRvIDM4NDAwIDhOMSkKKworSW4gb3JkZXIgdG8gZ2V0IHRoaXMga2VybmVsIG9udG8geW91ciBDZXJmLCB5b3UgbmVlZCBhIHNlcnZlciB0aGF0IHJ1bnMKK2JvdGggQk9PVFAgYW5kIFRGVFAuIERldGFpbGVkIGluc3RydWN0aW9ucyBzaG91bGQgaGF2ZSBjb21lIHdpdGggeW91cgorZXZhbHVhdGlvbiBraXQgb24gaG93IHRvIHVzZSB0aGUgYm9vdGxvYWRlci4gVGhpcyBzZXJpZXMgb2YgY29tbWFuZHMKK3dpbGwgc3VmZmljZToKKworICAgbWFrZSBBUkNIPWFybSBDUk9TU19DT01QSUxFPWFybS1saW51eC0gY2VyZmN1YmVfZGVmY29uZmlnCisgICBtYWtlIEFSQ0g9YXJtIENST1NTX0NPTVBJTEU9YXJtLWxpbnV4LSB6SW1hZ2UKKyAgIG1ha2UgQVJDSD1hcm0gQ1JPU1NfQ09NUElMRT1hcm0tbGludXgtIG1vZHVsZXMKKyAgIGNwIGFyY2gvYXJtL2Jvb3QvekltYWdlIDxURlRQIGRpcmVjdG9yeT4KKworc3VwcG9ydEBpbnRyaW5zeWMuY29tCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvRnJlZUJpcmQgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvRnJlZUJpcmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWRhMjhiMwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9GcmVlQmlyZApAQCAtMCwwICsxLDIxIEBACitGcmVlYmlyZC0xLjEgaXMgcHJvZHVjZWQgYnkgTGVnbmVkKEMpICxJbmMuCisoaHR0cDovL3d3dy5sZWdlbmQuY29tLmNuKQorYW5kIHNvZnR3YXJlL2xpbnV4IG1haW5hdGluZWQgYnkgQ292ZW50aXZlKEMpLEluYy4KKyhodHRwOi8vd3d3LmNvdmVudGl2ZS5jb20pCisKK0Jhc2VkIG9uIHRoZSBOaWNvbGFzJ3Mgc3Ryb25nYXJtIGtlcm5lbCB0cmVlLgorCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK01haW50YWluZXI6CisKK0NoZXN0ZXIgS3VvIDxjaGVzdGVyQGNvdmVudGl2ZS5jb20+CisJICAgIDxjaGVzdGVyQGxpbnV4Lm9yZy50dz4KKworQXV0aG9yIDoKK1RpbSB3dSA8dGltd3VAY292ZW50aXZlLmNvbT4KK0NJSCA8Y2loQGNvdmVudGl2ZS5jb20+CitFcmljIFBlbmcgPGVyaWNwZW5nQGNvdmVudGl2ZS5jb20+CitKZWZmIExlZSA8amVmZl9sZWVAY292ZW50aXZlLmNvbT4KK0FsbGVuIENoZW5nCitUb255IExpdSA8dG9ueWxpdUBjb3ZlbnRpdmUuY29tPgorCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvR3JhcGhpY3NDbGllbnQgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvR3JhcGhpY3NDbGllbnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZhN2U4MAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9HcmFwaGljc0NsaWVudApAQCAtMCwwICsxLDk4IEBACitBRFMgR3JhcGhpY3NDbGllbnQgUGx1cyBTaW5nbGUgQm9hcmQgQ29tcHV0ZXIKKworRm9yIG1vcmUgZGV0YWlscywgY29udGFjdCBBcHBsaWVkIERhdGEgU3lzdGVtcyBvciBzZWUKK2h0dHA6Ly93d3cuYXBwbGllZGRhdGEubmV0L3Byb2R1Y3RzLmh0bWwKKworVGhlIG9yaWdpbmFsIExpbnV4IHN1cHBvcnQgZm9yIHRoaXMgcHJvZHVjdCBoYXMgYmVlbiBwcm92aWRlZCBieSAKK05pY29sYXMgUGl0cmUgPG5pY29AY2FtLm9yZz4uIENvbnRpbnVlZCBkZXZlbG9wbWVudCB3b3JrIGJ5CitXb29qdW5nIEh1aCA8d2h1aEBhcHBsaWVkZGF0YS5uZXQ+CisKK0l0J3MgY3VycmVudGx5IHBvc3NpYmxlIHRvIG1vdW50IGEgcm9vdCBmaWxlc3lzdGVtIHZpYSBORlMgcHJvdmlkaW5nIGEKK2NvbXBsZXRlIExpbnV4IGVudmlyb25tZW50LiAgT3RoZXJ3aXNlIGEgcmFtZGlzayBpbWFnZSBtYXkgYmUgdXNlZC4gIFRoZQorYm9hcmQgc3VwcG9ydHMgTVREL0pGRlMsIHNvIHlvdSBjb3VsZCBhbHNvIG1vdW50IHNvbWV0aGluZyBvbiB0aGVyZS4KKworVXNlICdtYWtlIGdyYXBoaWNzY2xpZW50X2NvbmZpZycgYmVmb3JlIGFueSAnbWFrZSBjb25maWcnLiAgVGhpcyB3aWxsIHNldCB1cAorZGVmYXVsdHMgZm9yIEdyYXBoaWNzQ2xpZW50IFBsdXMgc3VwcG9ydC4KKworVGhlIGtlcm5lbCB6SW1hZ2UgaXMgbGlua2VkIHRvIGJlIGxvYWRlZCBhbmQgZXhlY3V0ZWQgYXQgMHhjMDIwMDAwMC4gIAorQWxzbyB0aGUgZm9sbG93aW5nIHJlZ2lzdGVycyBzaG91bGQgaGF2ZSB0aGUgc3BlY2lmaWVkIHZhbHVlcyB1cG9uIGVudHJ5OgorCisJcjAgPSAwCisJcjEgPSAyOQkodGhpcyBpcyB0aGUgR3JhcGhpY3NDbGllbnQgYXJjaGl0ZWN0dXJlIG51bWJlcikKKworTGludXggY2FuICBiZSB1c2VkIHdpdGggdGhlIEFEUyBCb290TG9hZGVyIHRoYXQgc2hpcHMgd2l0aCB0aGUKK25ld2VyIHJldiBib2FyZHMuIFNlZSB0aGVpciBkb2N1bWVudGF0aW9uIG9uIGhvdyB0byBsb2FkIExpbnV4LgorQW5nZWwgaXMgbm90IGF2YWlsYWJsZSBmb3IgdGhlIEdyYXBoaWNzQ2xpZW50IFBsdXMgQUZBSUsuCisKK1RoZXJlIGlzIGEgIGJvYXJkIGtub3duIGFzIGp1c3QgdGhlIEdyYXBoaWNzQ2xpZW50IHRoYXQgQURTIHVzZWQgdG8KK3Byb2R1Y2UgYnV0IGhhcyBlbmQgb2YgbGlmZWQuIFRoaXMgY29kZSB3aWxsIG5vdCB3b3JrIG9uIHRoZSBvbGRlcgorYm9hcmQgd2l0aCB0aGUgQURTIGJvb3Rsb2FkZXIsIGJ1dCBzaG91bGQgc3RpbGwgd29yayB3aXRoIEFuZ2VsLAorYXMgb3V0bGluZWQgYmVsb3cuICBJbiBhbnkgY2FzZSwgaWYgeW91J3JlIHBsYW5uaW5nIG9uIGRlcGxveWluZworc29tZXRoaW5nIGVuIG1hc3NlLCB5b3Ugc2hvdWxkIHByb2JhYmx5IGdldCB0aGUgbmV3ZXIgYm9hcmQuCisKK0lmIHVzaW5nIEFuZ2VsIG9uIHRoZSBvbGRlciBib2FyZHMsIGhlcmUgaXMgYSB0eXBpY2FsIGFuZ2VsLm9wdCBvcHRpb24gZmlsZQoraWYgdGhlIGtlcm5lbCBpcyBsb2FkZWQgdGhyb3VnaCB0aGUgQW5nZWwgRGVidWcgTW9uaXRvcjoKKworLS0tLS0gYmVnaW4gYW5nZWxib290Lm9wdCAtLS0tLQorYmFzZSAweGMwMjAwMDAwCitlbnRyeSAweGMwMjAwMDAwCityMCAweDAwMDAwMDAwCityMSAweDAwMDAwMDFkCitkZXZpY2UgL2Rldi90dHlTMQorb3B0aW9ucyAiMzg0MDAgOE4xIgorYmF1ZCAxMTUyMDAKKyNvdGhlcmZpbGUgcmFtZGlzay5negorI290aGVyYmFzZSAweGMwODAwMDAwCitleGVjIG1pbmljb20KKy0tLS0tIGVuZCBhbmdlbGJvb3Qub3B0IC0tLS0tCisKK1RoZW4gdGhlIGtlcm5lbCAoYW5kIHJhbWRpc2sgaWYgb3RoZXJmaWxlL290aGVyYmFzZSBsaW5lcyBhYm92ZSBhcmUKK3VuY29tbWVudGVkKSB3b3VsZCBiZSBsb2FkZWQgd2l0aDoKKworCWFuZ2VsYm9vdCAtZiBhbmdlbGJvb3Qub3B0IHpJbWFnZQorCitIZXJlIGl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgYm9hcmQgaXMgY29ubmVjdGVkIHRvIHR0eVMxIG9uIHlvdXIgUEMKK2FuZCB0aGF0IG1pbmljb20gaXMgcHJlY29uZmlndXJlZCB3aXRoIC9kZXYvdHR5UzEsIDM4NDAwIGJhdWQsIDhOMSwgbm8gZmxvdworY29udHJvbCBieSBkZWZhdWx0LgorCitJZiBhbnkgb3RoZXIgYm9vdGxvYWRlciBpcyB1c2VkLCBlbnN1cmUgaXQgYWNjb21wbGlzaCB0aGUgc2FtZSwgZXNwZWNpYWxseQorZm9yIHIwL3IxIHJlZ2lzdGVyIHZhbHVlcyBiZWZvcmUganVtcGluZyBpbnRvIHRoZSBrZXJuZWwuCisKKworU3VwcG9ydGVkIHBlcmlwaGVyYWxzOgorLSBTQTExMDAgTENEIGZyYW1lIGJ1ZmZlciAoOC8xNmJwcC4uLnNvcnQgb2YpCistIG9uLWJvYXJkIFNNQyA5MkM5NiBldGhlcm5ldCBOSUMKKy0gU0ExMTAwIHNlcmlhbCBwb3J0CistIGZsYXNoIG1lbW9yeSBhY2Nlc3MgKE1URC9KRkZTKQorLSBwY21jaWEKKy0gdG91Y2hzY3JlZW4odWNiMTIwMCkKKy0gcHMvMiBrZXlib2FyZAorLSBjb25zb2xlIG9uIExDRCBzY3JlZW4KKy0gc2VyaWFsIHBvcnRzICh0dHlTWzAtMl0pCisgIC0gdHR5UzAgaXMgZGVmYXVsdCBmb3Igc2VyaWFsIGNvbnNvbGUKKy0gU21hcnQgSS9PIChBREMsIGtleXBhZCwgZGlnaXRhbCBpbnB1dHMsIGV0YykKKyAgU2VlIGh0dHA6Ly93d3cuYXBwbGllZGRhdGEuY29tL2RldmVsb3BlcnMvbGludXggZm9yIElPQ1RMIGRvY3VtZW50YXRpb24KKyAgYW5kIGV4YW1wbGUgdXNlciBzcGFjZSBjb2RlLiBwcy8yIGtleWJkIGlzIG11bHRpcGxleGVkIHRocm91Z2ggdGhpcyBkcml2ZXIKKworVG8gZG86CistIFVDQjEyMDAgYXVkaW8gd2l0aCBuZXcgdWNiX2dlbmVyaWMgbGF5ZXIKKy0gZXZlcnl0aGluZyBlbHNlISAgOi0pCisKK05vdGVzOgorCistIFRoZSBmbGFzaCBvbiBib2FyZCBpcyBkaXZpZGVkIGludG8gMyBwYXJ0aXRpb25zLiAgbXRkMCBpcyB3aGVyZQorICB0aGUgQURTIGJvb3QgUk9NIGFuZCB6SW1hZ2UgaXMgc3RvcmVkLiAgSXQncyBiZWVuIG1hcmtlZCBhcworICByZWFkLW9ubHkgdG8ga2VlcCB5b3UgZnJvbSBibGFzdGluZyBvdmVyIHRoZSBib290bG9hZGVyLiA6KSAgbXRkMSBpcworICBmb3IgdGhlIHJhbWRpc2suZ3ogaW1hZ2UuICBtdGQyIGlzIHVzZXIgZmxhc2ggc3BhY2UgYW5kIGNhbiBiZQorICB1dGlsaXplZCBmb3IgZWl0aGVyIEpGRlMgb3IgaWYgeW91J3JlIGZlZWxpbmcgY3JhenksIHJ1bm5pbmcgZXh0MgorICBvbiB0b3Agb2YgaXQuIElmIHlvdSdyZSBub3QgdXNpbmcgdGhlIEFEUyBib290bG9hZGVyLCB5b3UncmUKKyAgd2VsY29tZSB0byBibGFzdCBvdmVyIHRoZSBtdGQxIHBhcnRpdGlvbiBhbHNvLgorCistIDE2YnBwIG1vZGUgcmVxdWlyZXMgYSBkaWZmZXJlbnQgY2FibGUgdGhhbiB3aGF0IHNoaXBzIHdpdGggdGhlIGJvYXJkLgorICBDb250YWN0IEFEUyBvciBsb29rIHRocm91Z2ggdGhlIG1hbnVhbCB0byB3aXJlIHlvdXIgb3duLiBDdXJyZW50bHksCisgIGlmIHlvdSBjb21waWxlIHdpdGggMTZiaXQgbW9kZSBzdXBwb3J0IGFuZCBzd2l0Y2ggaW50byBhIGxvd2VyIGJwcAorICBtb2RlLCB0aGUgdGltaW5nIGlzIG9mZiBzbyB0aGUgaW1hZ2UgaXMgY29ycnVwdGVkLiAgVGhpcyB3aWxsIGJlCisgIGZpeGVkIHNvb24uCisKK0FueSBjb250cmlidXRpb24gY2FuIGJlIHNlbnQgdG8gbmljb0BjYW0ub3JnIGFuZCB3aWxsIGJlIGdyZWF0bHkgd2VsY29tZSEKKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0dyYXBoaWNzTWFzdGVyIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0dyYXBoaWNzTWFzdGVyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMjg3NDUKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvR3JhcGhpY3NNYXN0ZXIKQEAgLTAsMCArMSw1MyBAQAorQURTIEdyYXBoaWNzTWFzdGVyIFNpbmdsZSBCb2FyZCBDb21wdXRlcgorCitGb3IgbW9yZSBkZXRhaWxzLCBjb250YWN0IEFwcGxpZWQgRGF0YSBTeXN0ZW1zIG9yIHNlZQoraHR0cDovL3d3dy5hcHBsaWVkZGF0YS5uZXQvcHJvZHVjdHMuaHRtbAorCitUaGUgb3JpZ2luYWwgTGludXggc3VwcG9ydCBmb3IgdGhpcyBwcm9kdWN0IGhhcyBiZWVuIHByb3ZpZGVkIGJ5CitOaWNvbGFzIFBpdHJlIDxuaWNvQGNhbS5vcmc+LiBDb250aW51ZWQgZGV2ZWxvcG1lbnQgd29yayBieQorV29vanVuZyBIdWggPHdodWhAYXBwbGllZGRhdGEubmV0PgorCitVc2UgJ21ha2UgZ3JhcGhpY3NtYXN0ZXJfY29uZmlnJyBiZWZvcmUgYW55ICdtYWtlIGNvbmZpZycuCitUaGlzIHdpbGwgc2V0IHVwIGRlZmF1bHRzIGZvciBHcmFwaGljc01hc3RlciBzdXBwb3J0LgorCitUaGUga2VybmVsIHpJbWFnZSBpcyBsaW5rZWQgdG8gYmUgbG9hZGVkIGFuZCBleGVjdXRlZCBhdCAweGMwNDAwMDAwLgorCitMaW51eCBjYW4gIGJlIHVzZWQgd2l0aCB0aGUgQURTIEJvb3RMb2FkZXIgdGhhdCBzaGlwcyB3aXRoIHRoZQorbmV3ZXIgcmV2IGJvYXJkcy4gU2VlIHRoZWlyIGRvY3VtZW50YXRpb24gb24gaG93IHRvIGxvYWQgTGludXguCisKK1N1cHBvcnRlZCBwZXJpcGhlcmFsczoKKy0gU0ExMTAwIExDRCBmcmFtZSBidWZmZXIgKDgvMTZicHAuLi5zb3J0IG9mKQorLSBTQTExMTEgVVNCIE1hc3RlcgorLSBvbi1ib2FyZCBTTUMgOTJDOTYgZXRoZXJuZXQgTklDCistIFNBMTEwMCBzZXJpYWwgcG9ydAorLSBmbGFzaCBtZW1vcnkgYWNjZXNzIChNVEQvSkZGUykKKy0gcGNtY2lhLCBjb21wYWN0IGZsYXNoCistIHRvdWNoc2NyZWVuKHVjYjEyMDApCistIHBzLzIga2V5Ym9hcmQKKy0gY29uc29sZSBvbiBMQ0Qgc2NyZWVuCistIHNlcmlhbCBwb3J0cyAodHR5U1swLTJdKQorICAtIHR0eVMwIGlzIGRlZmF1bHQgZm9yIHNlcmlhbCBjb25zb2xlCistIFNtYXJ0IEkvTyAoQURDLCBrZXlwYWQsIGRpZ2l0YWwgaW5wdXRzLCBldGMpCisgIFNlZSBodHRwOi8vd3d3LmFwcGxpZWRkYXRhLmNvbS9kZXZlbG9wZXJzL2xpbnV4IGZvciBJT0NUTCBkb2N1bWVudGF0aW9uCisgIGFuZCBleGFtcGxlIHVzZXIgc3BhY2UgY29kZS4gcHMvMiBrZXliZCBpcyBtdWx0aXBsZXhlZCB0aHJvdWdoIHRoaXMgZHJpdmVyCisKK1RvIGRvOgorLSBldmVyeXRoaW5nIGVsc2UhICA6LSkKKworTm90ZXM6CisKKy0gVGhlIGZsYXNoIG9uIGJvYXJkIGlzIGRpdmlkZWQgaW50byAzIHBhcnRpdGlvbnMuICBtdGQwIGlzIHdoZXJlCisgIHRoZSB6SW1hZ2UgaXMgc3RvcmVkLiAgSXQncyBiZWVuIG1hcmtlZCBhcyByZWFkLW9ubHkgdG8ga2VlcCB5b3UKKyAgZnJvbSBibGFzdGluZyBvdmVyIHRoZSBib290bG9hZGVyLiA6KSAgbXRkMSBpcworICBmb3IgdGhlIHJhbWRpc2suZ3ogaW1hZ2UuICBtdGQyIGlzIHVzZXIgZmxhc2ggc3BhY2UgYW5kIGNhbiBiZQorICB1dGlsaXplZCBmb3IgZWl0aGVyIEpGRlMgb3IgaWYgeW91J3JlIGZlZWxpbmcgY3JhenksIHJ1bm5pbmcgZXh0MgorICBvbiB0b3Agb2YgaXQuIElmIHlvdSdyZSBub3QgdXNpbmcgdGhlIEFEUyBib290bG9hZGVyLCB5b3UncmUKKyAgd2VsY29tZSB0byBibGFzdCBvdmVyIHRoZSBtdGQxIHBhcnRpdGlvbiBhbHNvLgorCistIDE2YnBwIG1vZGUgcmVxdWlyZXMgYSBkaWZmZXJlbnQgY2FibGUgdGhhbiB3aGF0IHNoaXBzIHdpdGggdGhlIGJvYXJkLgorICBDb250YWN0IEFEUyBvciBsb29rIHRocm91Z2ggdGhlIG1hbnVhbCB0byB3aXJlIHlvdXIgb3duLiBDdXJyZW50bHksCisgIGlmIHlvdSBjb21waWxlIHdpdGggMTZiaXQgbW9kZSBzdXBwb3J0IGFuZCBzd2l0Y2ggaW50byBhIGxvd2VyIGJwcAorICBtb2RlLCB0aGUgdGltaW5nIGlzIG9mZiBzbyB0aGUgaW1hZ2UgaXMgY29ycnVwdGVkLiAgVGhpcyB3aWxsIGJlCisgIGZpeGVkIHNvb24uCisKK0FueSBjb250cmlidXRpb24gY2FuIGJlIHNlbnQgdG8gbmljb0BjYW0ub3JnIGFuZCB3aWxsIGJlIGdyZWF0bHkgd2VsY29tZSEKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9IVVdfV0VCUEFORUwgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvSFVXX1dFQlBBTkVMCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkNTZiNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvSFVXX1dFQlBBTkVMCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSBIVVdfV0VCUEFORUwgaXMgYSBwcm9kdWN0IG9mIHRoZSBnZXJtYW4gY29tcGFueSBIb2VmdCAmIFdlc3NlbCBBRworCitJZiB5b3Ugd2FudCBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlzaXQKK2h0dHA6Ly93d3cuaG9lZnQtd2Vzc2VsLmRlCisKK1RvIGJ1aWxkIHRoZSBrZXJuZWw6CisJbWFrZSBodXdfd2VicGFuZWxfY29uZmlnCisJbWFrZSBvbGRjb25maWcKKwlbYWNjZXB0IGFsbCBkZWZhdWx0c10KKwltYWtlIHpJbWFnZQorCitNb3N0bHkgb2YgdGhlIHdvcmsgaXMgZG9uZSBieToKK1JvbWFuIEpvcmRhbiAgICAgICAgIGpvckBob2VmdC13ZXNzZWwuZGUKK0NocmlzdG9waCBTY2h1bHogICAgc2NodUBob2VmdC13ZXNzZWwuZGUKKworMjAwMC8xMi8xOC8KKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0l0c3kgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvSXRzeQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjU5NDUzCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0l0c3kKQEAgLTAsMCArMSwzOSBAQAorSXRzeSBpcyBhIHJlc2VhcmNoIHByb2plY3QgZG9uZSBieSB0aGUgV2VzdGVybiBSZXNlYXJjaCBMYWIsIGFuZCBTeXN0ZW1zCitSZXNlYXJjaCBDZW50ZXIgaW4gUGFsbyBBbHRvLCBDQS4gVGhlIEl0c3kgcHJvamVjdCBpcyBvbmUgb2Ygc2V2ZXJhbAorcmVzZWFyY2ggcHJvamVjdHMgYXQgQ29tcGFxIHRoYXQgYXJlIHJlbGF0ZWQgdG8gcG9ja2V0IGNvbXB1dGluZy4KKworRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZToKKworCWh0dHA6Ly93d3cucmVzZWFyY2guZGlnaXRhbC5jb20vd3JsL2l0c3kvaW5kZXguaHRtbAorCitOb3RlcyBvbiBpbml0aWFsIDIuNCBJdHN5IHN1cHBvcnQgKDgvMjcvMjAwMCkgOgorVGhlIHBvcnQgd2FzIGRvbmUgb24gYW4gSXRzeSB2ZXJzaW9uIDEuNSBtYWNoaW5lIHdpdGggYSBkYXVnaHRlcmNhcmQgd2l0aAorNjQgTWVnIG9mIERSQU0gYW5kIDMyIE1lZyBvZiBGbGFzaC4gVGhlIGluaXRpYWwgd29yayBpbmNsdWRlcyBzdXBwb3J0IGZvcgorc2VyaWFsIGNvbnNvbGUgKHRvIHNlZSB3aGF0IHlvdSdyZSBkb2luZykuICBObyBvdGhlciBkZXZpY2VzIGhhdmUgYmVlbgorZW5hYmxlZC4KKworVG8gYnVpbGQsIGRvIGEgIm1ha2UgbWVudWNvbmZpZyIgKG9yIHhtZW51Y29uZmlnKSBhbmQgc2VsZWN0IEl0c3kgc3VwcG9ydC4KK0Rpc2FibGUgRmxhc2ggYW5kIExDRCBzdXBwb3J0LiBhbmQgdGhlbiBkbyBhIG1ha2UgekltYWdlLgorRmluYWxseSwgeW91IHdpbGwgbmVlZCB0byBjZCB0byBhcmNoL2FybS9ib290L3Rvb2xzIGFuZCBleGVjdXRlIGEgbWFrZSB0aGVyZQordG8gYnVpbGQgdGhlIHBhcmFtcy1pdHN5IHByb2dyYW0gdXNlZCB0byBib290IHRoZSBrZXJuZWwuCisKK0luIG9yZGVyIHRvIGluc3RhbGwgdGhlIHBvcnQgb2YgMi40IHRvIHRoZSBpdHN5LCBZb3Ugd2lsbCBuZWVkIHRvIHNldCB0aGUKK2NvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBpbiB0aGUgbW9uaXRvciBhcyBmb2xsb3dzOgorQXJnIDE6MHgwODM0MDAwMCwgQXJnMjogMHhDMDAwMDAwMCwgQXJnMzoxOCAoMHgxMiksIEFyZzQ6MAorTWFrZSBzdXJlIHRoZSBzdGFydC1yb3V0aW5lIGFkZHJlc3MgaXMgc2V0IHRvIDB4MDAwNjAwMDAuCisKK05leHQsIGZsYXNoIHRoZSBwYXJhbXMtaXRzeSBwcm9ncmFtIHRvIDB4MDAwNjAwMDAgKCJwIDEgMHgwMDA2MDAwMCIgaW4gdGhlCitmbGFzaCBtZW51KSAgRmxhc2ggdGhlIGtlcm5lbCBpbiBhcmNoL2FybS9ib290L3pJbWFnZSBpbnRvIDB4MDgzNDAwMDAKKygicCAxIDB4MDAzNDAwMDAiKS4gIEZpbmFsbHkgZmxhc2ggYW4gaW5pdGlhbCByYW1kaXNrIGludG8gMHhDODAwMDAwMAorKCJwIDIgMHgwIikgIFdlIHVzZWQgcmFtZGlzay0yLTMwLmd6IGZyb20gdGhlIDAuMTEgdmVyc2lvbiBkaXJlY3Rvcnkgb24KK2hhbmRoZWxkcy5vcmcuCisKK1RoZSBzZXJpYWwgY29ubmVjdGlvbiB3ZSBlc3RhYmxpc2hlZCB3YXMgYXQ6CisgOC1iaXQgZGF0YSwgbm8gcGFyaXR5LCAxIHN0b3AgYml0KHMpLCAxMTUyMDAuMDAgYi9zLiBpbiB0aGUgbW9uaXRvciwgaW4gdGhlCitwYXJhbXMtaXRzeSBwcm9ncmFtLCBhbmQgaW4gdGhlIGtlcm5lbCBpdHNlbGYuICBUaGlzIGNhbiBiZSBjaGFuZ2VkLCBidXQKK25vdCBlYXNpbHkuIFRoZSBtb25pdG9yIHBhcmFtZXRlcnMgYXJlIGVhc2lseSBjaGFuZ2VkLCB0aGUgcGFyYW1zIHByb2dyYW0KK3NldHVwIGlzIGFzc2VtYmx5IG91dGwncywgYW5kIHRoZSBrZXJuZWwgaXMgYSBjb25maWd1cmF0aW9uIGl0ZW0gc3BlY2lmaWMgdG8KK3RoZSBpdHN5LiAoaS5lLiBncmVwIGZvciBDT05GSUdfU0ExMTAwX0lUU1kgYW5kIHlvdSdsbCBmaW5kIHdoZXJlIGl0IGlzLikKKworCitUaGlzIHNob3VsZCBnZXQgeW91IGEgcHJvcGVybHkgYm9vdGluZyAyLjQga2VybmVsIG9uIHRoZSBpdHN5LgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0xBUlQgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvTEFSVApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjczZjUxCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL0xBUlQKQEAgLTAsMCArMSwxNCBAQAorTGludXggQWR2YW5jZWQgUmFkaW8gVGVybWluYWwgKExBUlQpCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIExBUlQgaXMgYSBzbWFsbCAoNy41IHggMTBjbSkgU0EtMTEwMCBib2FyZCwgZGVzaWduZWQgZm9yIGVtYmVkZGVkCithcHBsaWNhdGlvbnMuIEl0IGhhcyAzMiBNQiBEUkFNLCA0TUIgRmxhc2ggUk9NLCBkb3VibGUgUlMyMzIgYW5kIGFsbAorb3RoZXIgU3Ryb25nQVJNLWdhZGdldHMuIEFsbW9zdCBhbGwgU0Egc2lnbmFscyBhcmUgZGlyZWN0bHkgYWNjZXNzaWJsZQordGhyb3VnaCBhIG51bWJlciBvZiBjb25uZWN0b3JzLiBUaGUgcG93ZXJzdXBwbHkgYWNjZXB0cyB2b2x0YWdlcworYmV0d2VlbiAzLjVWIGFuZCAxNlYgYW5kIGlzIG92ZXJkaW1lbnNpb25lZCB0byBzdXBwb3J0IGEgcmFuZ2Ugb2YKK2RhdWdodGVyYm9hcmRzLiBBIHF1YWQgRXRoZXJuZXQgLyBJREUgLyBQUzIgLyBzb3VuZCBkYXVnaHRlcmJvYXJkCitpcyB1bmRlciBkZXZlbG9wbWVudCwgd2l0aCBwbGVudHkgb2Ygb3RoZXJzIGluIGRpZmZlcmVudCBzdGFnZXMgb2YKK3BsYW5uaW5nLgorCitUaGUgaGFyZHdhcmUgZGVzaWducyBmb3IgdGhpcyBib2FyZCBoYXZlIGJlZW4gcmVsZWFzZWQgdW5kZXIgYW4gb3BlbiBsaWNlbnNlOworc2VlIHRoZSBMQVJUIHBhZ2UgYXQgaHR0cDovL3d3dy5sYXJ0LnR1ZGVsZnQubmwvIGZvciBtb3JlIGluZm9ybWF0aW9uLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL1BMRUIgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvUExFQgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MmNhZTA2Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL1BMRUIKQEAgLTAsMCArMSwxMSBAQAorVGhlIFBMRUIgcHJvamVjdCB3YXMgc3RhcnRlZCBhcyBhIHN0dWRlbnQgaW5pdGlhdGl2ZSBhdCB0aGUgU2Nob29sIG9mCitDb21wdXRlciBTY2llbmNlIGFuZCBFbmdpbmVlcmluZywgVW5pdmVyc2l0eSBvZiBOZXcgU291dGggV2FsZXMgdG8gbWFrZSBhCitwb2NrZXQgY29tcHV0ZXIgY2FwYWJsZSBvZiBydW5uaW5nIHRoZSBMaW51eCBLZXJuZWwuCisKK1BMRUIgc3VwcG9ydCBoYXMgeWV0IHRvIGJlIGZ1bGx5IGludGVncmF0ZWQuCisKK0ZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWU6CisKKwlodHRwOi8vd3d3LmNzZS51bnN3LmVkdS5hdS9+cGxlYi8KKworCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvUGFuZ29saW4gYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvUGFuZ29saW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDc3YTYxMgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9QYW5nb2xpbgpAQCAtMCwwICsxLDIzIEBACitQYW5nb2xpbiBpcyBhIFN0cm9uZ0FSTSAxMTEwLWJhc2VkIGV2YWx1YXRpb24gcGxhdGZvcm0gcHJvZHVjZWQKK2J5IERpYWxvZ3VlIFRlY2hub2xvZ3kgKGh0dHA6Ly93d3cuZGlhbG9ndWUuY29tLnR3LykuCitJdCBoYXMgRUlTQSBzbG90cyBmb3IgZWFzZSBvZiBjb25maWd1cmF0aW9uIHdpdGggU0RSQU0vRmxhc2gKK21lbW9yeSBjYXJkLCBVU0IvU2VyaWFsL0F1ZGlvIGNhcmQsIENvbXBhY3QgRmxhc2ggY2FyZCwKK1BDTUNJQS9JREUgY2FyZCBhbmQgVEZULUxDRCBjYXJkLgorCitUbyBjb21waWxlIGZvciBQYW5nb2xpbiwgeW91IG11c3QgaXNzdWUgdGhlIGZvbGxvd2luZyBjb21tYW5kczoKKworCW1ha2UgcGFuZ29saW5fY29uZmlnCisJbWFrZSBvbGRjb25maWcKKwltYWtlIHpJbWFnZQorCitTdXBwb3J0ZWQgcGVyaXBoZXJhbHM6CistIFNBMTExMCBzZXJpYWwgcG9ydCAoVUFSVDEvVUFSVDIvVUFSVDMpCistIGZsYXNoIG1lbW9yeSBhY2Nlc3MKKy0gY29tcGFjdCBmbGFzaCBkcml2ZXIKKy0gVURBMTM0MSBzb3VuZCBkcml2ZXIKKy0gU0ExMTAwIExDRCBjb250cm9sbGVyIGZvciA4MDB4NjAwIDE2YnBwIFRGVC1MQ0QKKy0gTVEtMjAwIGRyaXZlciBmb3IgODAweDYwMCAxNmJwcCBURlQtTENECistIFBlbm1vdW50KHRvdWNoIHBhbmVsKSBkcml2ZXIKKy0gUENNQ0lBIGRyaXZlcgorLSBTTUM5MUM5NCBMQU4gZHJpdmVyCistIElERSBkcml2ZXIgKGV4cGVyaW1lbnRhbCkKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9UaWZvbiBiL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9UaWZvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDE5MzRkCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL1RpZm9uCkBAIC0wLDAgKzEsNyBAQAorVGlmb24KKy0tLS0tCisKK01vcmUgaW5mbyBoYXMgdG8gY29tZS4uLgorCitDb250YWN0OiBQZXRlciBEYW5pZWxzc29uIDxwZXRlci5kYW5pZWxzc29uQGVyYS10LmVyaWNzc29uLnNlPgorCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvVmljdG9yIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL1ZpY3RvcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMWU4MWZjCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL1ZpY3RvcgpAQCAtMCwwICsxLDE2IEBACitWaWN0b3IgaXMga25vd24gYXMgYSAiZGlnaXRhbCB0YWxraW5nIGJvb2sgcGxheWVyIiBtYW51ZmFjdHVyZWQgYnkKK1Zpc3VBaWRlLCBJbmMuIHRvIGJlIHVzZWQgYnkgYmxpbmQgcGVvcGxlLgorCitGb3IgbW9yZSBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIFZpY3Rvciwgc2VlOgorCisJaHR0cDovL3d3dy52aXN1YWlkZS5jb20vdmljdG9yCisKK09mIGNvdXJzZSBWaWN0b3IgaXMgdXNpbmcgTGludXggYXMgaXRzIG1haW4gb3BlcmF0aW5nIHN5c3RlbS4KK1RoZSBWaWN0b3IgaW1wbGVtZW50YXRpb24gZm9yIExpbnV4IGlzIG1haW50YWluZWQgYnkgTmljb2xhcyBQaXRyZToKKworCW5pY29AdmlzdWFpZGUuY29tCisJbmljb0BjYW0ub3JnCisKK0ZvciBhbnkgY29tbWVudHMsIHBsZWFzZSBmZWVsIGZyZWUgdG8gY29udGFjdCBtZSB0aHJvdWdoIHRoZSBhYm92ZQorYWRkcmVzc2VzLgorCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvWW9weSBiL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9Zb3B5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxNGYxNmQKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvWW9weQpAQCAtMCwwICsxLDIgQEAKK1NlZSBodHRwOi8vd3d3LnlvcHlkZXZlbG9wZXIub3JnIGZvciBtb3JlLgorCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvZW1wZWcgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvZW1wZWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVjZTQ4NAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9lbXBlZwpAQCAtMCwwICsxLDIgQEAKK1NlZSAuLi9lbXBlZy9SRUFETUUKKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL25hbm9FbmdpbmUgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvbmFub0VuZ2luZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzQzMWNiCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU0ExMTAwL25hbm9FbmdpbmUKQEAgLTAsMCArMSwxMSBAQAorbmFub0VuZ2luZQorLS0tLS0tLS0tLQorCisibmFub0VuZ2luZSIgaXMgYSBTQTExMTAgYmFzZWQgc2luZ2xlIGJvYXJkIGNvbXB1dGVyIGZyb20gCitCcmlnaHQgU3RhciBFbmdpbmVlcmluZyBJbmMuICBTZWUgd3d3LmJyaWdodHN0YXJlbmcuY29tL2FybQorZm9yIG1vcmUgaW5mby4KKyhSZWY6IFN0dWFydCBBZGFtcyA8c2phQGJyaWdodHN0YXJlbmcuY29tPikKKworQWxzbyB2aXNpdCBMYXJyeSBEb29saXR0bGUncyAiTGludXggZm9yIHRoZSBuYW5vRW5naW5lIiBzaXRlOgoraHR0cDovL3JlY3ljbGUubGJsLmdvdi9+bGRvb2xpdHQvYnNlLworCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvc2VyaWFsX1VBUlQgYi9Eb2N1bWVudGF0aW9uL2FybS9TQTExMDAvc2VyaWFsX1VBUlQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWVhMmU5MQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NBMTEwMC9zZXJpYWxfVUFSVApAQCAtMCwwICsxLDQ3IEBACitUaGUgU0ExMTAwIHNlcmlhbCBwb3J0IGhhZCBpdHMgbWFqb3IvbWlub3IgbnVtYmVycyBvZmZpY2lhbGx5IGFzc2lnbmVkOgorCis+IERhdGU6IFN1biwgMjQgU2VwIDIwMDAgMjE6NDA6MjcgLTA3MDAKKz4gRnJvbTogSC4gUGV0ZXIgQW52aW4gPGhwYUB0cmFuc21ldGEuY29tPgorPiBUbzogTmljb2xhcyBQaXRyZSA8bmljb0BDQU0uT1JHPgorPiBDYzogRGV2aWNlIExpc3QgTWFpbnRhaW5lciA8ZGV2aWNlQGxhbmFuYS5vcmc+Cis+IFN1YmplY3Q6IFJlOiBkZXZpY2UKKz4gCis+IE9rYXkuICBOb3RlIHRoYXQgZGV2aWNlIG51bWJlcnMgMjA0IGFuZCAyMDUgYXJlIHVzZWQgZm9yICJsb3cgZGVuc2l0eQorPiBzZXJpYWwgZGV2aWNlcyIsIHNvIHlvdSB3aWxsIGhhdmUgYSByYW5nZSBvZiBtaW5vcnMgb24gdGhvc2UgbWFqb3JzICh0aGUKKz4gdHR5IGRldmljZSBsYXllciBoYW5kbGVzIHRoaXMganVzdCBmaW5lLCBzbyB5b3UgZG9uJ3QgaGF2ZSB0byB3b3JyeSBhYm91dAorPiBkb2luZyBhbnl0aGluZyBzcGVjaWFsLikKKz4gCis+IFNvIHlvdXIgYXNzaWdubWVudHMgYXJlOgorPiAKKz4gMjA0IGNoYXIgICAgICAgIExvdy1kZW5zaXR5IHNlcmlhbCBwb3J0cworPiAgICAgICAgICAgICAgICAgICA1ID0gL2Rldi90dHlTQTAgICAgICAgICAgICAgICBTQTExMDAgYnVpbHRpbiBzZXJpYWwgcG9ydCAwCis+ICAgICAgICAgICAgICAgICAgIDYgPSAvZGV2L3R0eVNBMSAgICAgICAgICAgICAgIFNBMTEwMCBidWlsdGluIHNlcmlhbCBwb3J0IDEKKz4gICAgICAgICAgICAgICAgICAgNyA9IC9kZXYvdHR5U0EyICAgICAgICAgICAgICAgU0ExMTAwIGJ1aWx0aW4gc2VyaWFsIHBvcnQgMgorPiAKKz4gMjA1IGNoYXIgICAgICAgIExvdy1kZW5zaXR5IHNlcmlhbCBwb3J0cyAoYWx0ZXJuYXRlIGRldmljZSkKKz4gICAgICAgICAgICAgICAgICAgNSA9IC9kZXYvY3VzYTAgICAgICAgICAgICAgICAgQ2FsbG91dCBkZXZpY2UgZm9yIHR0eVNBMAorPiAgICAgICAgICAgICAgICAgICA2ID0gL2Rldi9jdXNhMSAgICAgICAgICAgICAgICBDYWxsb3V0IGRldmljZSBmb3IgdHR5U0ExCis+ICAgICAgICAgICAgICAgICAgIDcgPSAvZGV2L2N1c2EyICAgICAgICAgICAgICAgIENhbGxvdXQgZGV2aWNlIGZvciB0dHlTQTIKKz4KKworSWYgeW91J3JlIG5vdCB1c2luZyBkZXZmcywgeW91IG11c3QgY3JlYXRlIHRob3NlIGlub2RlcyBpbiAvZGV2CitvbiB0aGUgcm9vdCBmaWxlc3lzdGVtIHVzZWQgYnkgeW91ciBTQTExMDAtYmFzZWQgZGV2aWNlOgorCisJbWtub2QgdHR5U0EwIGMgMjA0IDUKKwlta25vZCB0dHlTQTEgYyAyMDQgNgorCW1rbm9kIHR0eVNBMiBjIDIwNCA3CisJbWtub2QgY3VzYTAgYyAyMDUgNQorCW1rbm9kIGN1c2ExIGMgMjA1IDYKKwlta25vZCBjdXNhMiBjIDIwNSA3CisKK0luIGFkZGl0aW9uIHRvIHRoZSBjcmVhdGlvbiBvZiB0aGUgYXBwcm9wcmlhdGUgZGV2aWNlIG5vZGVzIGFib3ZlLCB5b3UKK211c3QgZW5zdXJlIHlvdXIgdXNlciBzcGFjZSBhcHBsaWNhdGlvbnMgbWFrZSB1c2Ugb2YgdGhlIGNvcnJlY3QgZGV2aWNlCituYW1lLiBUaGUgY2xhc3NpYyBleGFtcGxlIGlzIHRoZSBjb250ZW50IG9mIHRoZSAvZXRjL2luaXR0YWIgZmlsZSB3aGVyZQoreW91IG1pZ2h0IGhhdmUgYSBnZXR0eSBwcm9jZXNzIHN0YXJ0ZWQgb24gdHR5UzAuICBJbiB0aGlzIGNhc2U6CisKKy0gcmVwbGFjZSBvY2N1cnJlbmNlcyBvZiB0dHlTMCB3aXRoIHR0eVNBMCwgdHR5UzEgd2l0aCB0dHlTQTEsIGV0Yy4KKworLSBkb24ndCBmb3JnZXQgdG8gYWRkICd0dHlTQTAnLCAnY29uc29sZScsIG9yIHRoZSBhcHByb3ByaWF0ZSB0dHkgbmFtZQorICBpbiAvZXRjL3NlY3VyZXR0eSBmb3Igcm9vdCB0byBiZSBhbGxvd2VkIHRvIGxvZ2luIGFzIHdlbGwuCisKKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU2Ftc3VuZy1TM0MyNFhYL0VCMjQxMElUWC50eHQgYi9Eb2N1bWVudGF0aW9uL2FybS9TYW1zdW5nLVMzQzI0WFgvRUIyNDEwSVRYLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDBlM2Q3Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU2Ftc3VuZy1TM0MyNFhYL0VCMjQxMElUWC50eHQKQEAgLTAsMCArMSw1OCBAQAorCQlTaW10ZWMgRWxlY3Ryb25pY3MgRUIyNDEwSVRYIChCQVNUKQorCQk9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisJaHR0cDovL3d3dy5zaW10ZWMuY28udWsvcHJvZHVjdHMvRUIyNDEwSVRYLworCitJbnRyb2R1Y3Rpb24KKy0tLS0tLS0tLS0tLQorCisgIFRoZSBFQjI0MTBJVFggaXMgYSBTM0MyNDEwIGJhc2VkIGRldmVsb3BtZW50IGJvYXJkIHdpdGggYSB2YXJpZXR5IG9mCisgIHBlcmlwaGVyYWxzIGFuZCBleHBhbnNpb24gY29ubmVjdG9ycy4gVGhpcyBib2FyZCBpcyBhbHNvIGtub3duIGJ5CisgIHRoZSBzaG9ydGVuZWQgbmFtZSBvZiBCYXN0LgorCisKK0NvbmZpZ3VyYXRpb24KKy0tLS0tLS0tLS0tLS0KKworICBUbyBzZXQgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiwgdXNlIGBtYWtlIGJhc3RfZGVmY29uZmlnYCB3aGljaAorICBzdXBwb3J0cyB0aGUgY29tbW9ubHkgdXNlZCBmZWF0dXJlcyBvZiB0aGlzIGJvYXJkLgorCisKK1N1cHBvcnQKKy0tLS0tLS0KKworICBPZmZpY2lhbCBzdXBwb3J0IGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBvbiB0aGUgU2ltdGVjIEVsZWN0cm9uaWNzCisgIHdlYnNpdGUsIGF0IHRoZSBwcm9kdWN0IHBhZ2UgaHR0cDovL3d3dy5zaW10ZWMuY28udWsvcHJvZHVjdHMvRUIyNDEwSVRYLworCisgIFVzZWZ1bCBsaW5rczoKKworICAgIC0gUmVzb3VyY2VzIFBhZ2UgaHR0cDovL3d3dy5zaW10ZWMuY28udWsvcHJvZHVjdHMvRUIyNDEwSVRYL3Jlc291cmNlcy5odG1sCisKKyAgICAtIEJvYXJkIEZBUSBhdCBodHRwOi8vd3d3LnNpbXRlYy5jby51ay9wcm9kdWN0cy9FQjI0MTBJVFgvZmFxLmh0bWwKKworICAgIC0gQm9vdGxvYWRlciBpbmZvIGh0dHA6Ly93d3cuc2ltdGVjLmNvLnVrL3Byb2R1Y3RzL1NXQUJMRS9yZXNvdXJjZXMuaHRtbAorICAgICAgYW5kIEZBUSBodHRwOi8vd3d3LnNpbXRlYy5jby51ay9wcm9kdWN0cy9TV0FCTEUvZmFxLmh0bWwKKworCitNVEQKKy0tLQorCisgIFRoZSBOQU5EIGFuZCBOT1Igc3VwcG9ydCBoYXMgYmVlbiBtZXJnZWQgZnJvbSB0aGUgbGludXgtbXRkIHByb2plY3QuCisgIEFueSBwcm9sYmVtcywgc2VlIGh0dHA6Ly93d3cubGludXgtbXRkLmluZnJhZGVhZC5vcmcvIGZvciBtb3JlCisgIGluZm9ybWF0aW9uIG9yIHVwLXRvLWRhdGUgdmVyc2lvbnMgb2YgbGludXgtbXRkLgorCisKK0lERQorLS0tCisKKyAgQm90aCBvbmJvYXJkIElERSBwb3J0cyBhcmUgc3VwcG9ydGVkLCBob3dldmVyIHRoZXJlIGlzIG5vIHN1cHBvcnQgZm9yCisgIGNoYW5naW5nIHNwZWVkIG9mIGRldmljZXMsIFBJTyBNb2RlIDQgY2FwYWJsZSBkcml2ZXMgc2hvdWxkIGJlIHVzZWQuCisKKworTWFpbnRhaW5lcnMKKy0tLS0tLS0tLS0tCisKKyAgVGhpcyBib2FyZCBpcyBtYWludGFpbmVkIGJ5IFNpbXRlYyBFbGVjdHJvbmljcy4KKworCisoYykgMjAwNCBCZW4gRG9va3MsIFNpbXRlYyBFbGVjdHJvbmljcwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU2Ftc3VuZy1TM0MyNFhYL0dQSU8udHh0IGIvRG9jdW1lbnRhdGlvbi9hcm0vU2Ftc3VuZy1TM0MyNFhYL0dQSU8udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4MjI3NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TYW1zdW5nLVMzQzI0WFgvR1BJTy50eHQKQEAgLTAsMCArMSwxMjIgQEAKKwkJCVMzQzI0MTAgR1BJTyBDb250cm9sCisJCQk9PT09PT09PT09PT09PT09PT09PQorCitJbnRyb2R1Y3Rpb24KKy0tLS0tLS0tLS0tLQorCisgIFRoZSBzM2MyNDEwIGtlcm5lbCBwcm92aWRlcyBhbiBpbnRlcmZhY2UgdG8gY29uZmlndXJlIGFuZAorICBtYW5pcHVsYXRlIHRoZSBzdGF0ZSBvZiB0aGUgR1BJTyBwaW5zLCBhbmQgZmluZCBvdXQgb3RoZXIKKyAgaW5mb3JtYXRpb24gYWJvdXQgdGhlbS4KKworICBUaGVyZSBhcmUgYSBudW1iZXIgb2YgY29uZGl0aW9ucyBhdHRhY2hlZCB0byB0aGUgY29uZmlndXJhdGlvbgorICBvZiB0aGUgczNjMjQxMCBHUElPIHN5c3RlbSwgcGxlYXNlIHJlYWQgdGhlIFNhbXN1bmcgcHJvdmlkZWQKKyAgZGF0YS1zaGVldC91c2VycyBtYW51YWwgdG8gZmluZCBvdXQgdGhlIGNvbXBsZXRlIGxpc3QuCisKKworSGVhZGVycworLS0tLS0tLQorCisgIFNlZSBpbmNsdWRlL2FzbS1hcm0vYXJjaC1zM2MyNDEwL3JlZ3MtZ3Bpby5oIGZvciB0aGUgbGlzdAorICBvZiBHUElPIHBpbnMsIGFuZCB0aGUgY29uZmlndXJhdGlvbiB2YWx1ZXMgZm9yIHRoZW0uIFRoaXMKKyAgaXMgaW5jbHVkZWQgYnkgdXNpbmcgI2luY2x1ZGUgPGFzbS9hcmNoL3JlZ3MtZ3Bpby5oPgorCisgIFRoZSBHUElPIG1hbmFnZW1lbnQgZnVuY3Rpb25zIGFyZSBkZWZpbmVkIGluIHRoZSBoYXJkd2FyZQorICBoZWFkZXIgaW5jbHVkZS9hc20tYXJtL2FyY2gtczNjMjQxMC9oYXJkd2FyZS5oIHdoaWNoIGNhbiBiZQorICBpbmNsdWRlZCBieSAjaW5jbHVkZSA8YXNtL2FyY2gvaGFyZHdhcmUuaD4KKworICBBIHVzZWZ1bCBhbW1vdW50IG9mIGRvY3VtZW50YXRpb24gY2FuIGJlIGZvdW5kIGluIHRoZSBoYXJkd2FyZQorICBoZWFkZXIgb24gaG93IHRoZSBHUElPIGZ1bmN0aW9ucyAoYW5kIG90aGVycykgd29yay4KKworICBXaGlsc3QgYSBudW1iZXIgb2YgdGhlc2UgZnVuY3Rpb25zIGRvIG1ha2Ugc29tZSBjaGVja3Mgb24gd2hhdAorICBpcyBwYXNzZWQgdG8gdGhlbSwgZm9yIHNwZWVkIG9mIHVzZSwgdGhleSBtYXkgbm90IGFsd2F5cyBlbnN1cmUKKyAgdGhhdCB0aGUgdXNlciBzdXBwbGllZCBkYXRhIHRvIHRoZW0gaXMgY29ycmVjdC4KKworCitQSU4gTnVtYmVycworLS0tLS0tLS0tLS0KKworICBFYWNoIHBpbiBoYXMgYW4gdW5pcXVlIG51bWJlciBhc3NvY2lhdGVkIHdpdGggaXQgaW4gcmVncy1ncGlvLmgsCisgIGVnIFMzQzI0MTBfR1BBMCBvciBTM0MyNDEwX0dQRjEuIFRoZXNlIGRlZmluZXMgYXJlIHVzZWQgdG8gdGVsbAorICB0aGUgR1BJTyBmdW5jdGlvbnMgd2hpY2ggcGluIGlzIHRvIGJlIHVzZWQuCisKKworQ29uZmlndXJpbmcgYSBwaW4KKy0tLS0tLS0tLS0tLS0tLS0tCisKKyAgVGhlIGZvbGxvd2luZyBmdW5jdGlvbiBhbGxvd3MgdGhlIGNvbmZpZ3VyYXRpb24gb2YgYSBnaXZlbiBwaW4gdG8KKyAgYmUgY2hhbmdlZC4KKworICAgIHZvaWQgczNjMjQxMF9ncGlvX2NmZ3Bpbih1bnNpZ25lZCBpbnQgcGluLCB1bnNpZ25lZCBpbnQgZnVuY3Rpb24pOworCisgIEVnOgorCisgICAgIHMzYzI0MTBfZ3Bpb19jZmdwaW4oUzNDMjQxMF9HUEEwLCBTM0MyNDEwX0dQQTBfQUREUjApOworICAgICBzM2MyNDEwX2dwaW9fY2ZncGluKFMzQzI0MTBfR1BFOCwgUzNDMjQxMF9HUEU4X1NEREFUMSk7CisKKyAgIHdoaWNoIHdvdWxkIHR1cm4gR1BBMCBpbnRvIHRoZSBsb3dlc3QgQWRkcmVzcyBsaW5lIEEwLCBhbmQgc2V0CisgICBHUEU4IHRvIGJlIGNvbm5lY3RlZCB0byB0aGUgU0RJTy9NTUMgY29udHJvbGxlcidzIFNEREFUMSBsaW5lLgorCisKK1JlYWRpbmcgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgVGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBvZiBhIHBpbiBjYW4gYmUgcmVhZCBieSB1c2luZzoKKworICBzM2MyNDEwX2dwaW9fZ2V0Y2ZnKHVuc2lnbmVkIGludCBwaW4pOworCisgIFRoZSByZXR1cm4gdmFsdWUgd2lsbCBiZSBmcm9tIHRoZSBzYW1lIHNldCBvZiB2YWx1ZXMgd2hpY2ggY2FuIGJlCisgIHBhc3NlZCB0byBzM2MyNDEwX2dwaW9fY2ZncGluKCkuCisKKworQ29uZmlndXJpbmcgYSBwdWxsLXVwIHJlc2lzdG9yCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICBBIGxhcmdlIHByb3BvcnRpb24gb2YgdGhlIEdQSU8gcGlucyBvbiB0aGUgUzNDMjQxMCBjYW4gaGF2ZSB3ZWFrCisgIHB1bGwtdXAgcmVzaXN0b3JzIGVuYWJsZWQuIFRoaXMgY2FuIGJlIGNvbmZpZ3VyZWQgYnkgdGhlIGZvbGxvd2luZworICBmdW5jdGlvbjoKKworICAgIHZvaWQgczNjMjQxMF9ncGlvX3B1bGx1cCh1bnNpZ25lZCBpbnQgcGluLCB1bnNpZ25lZCBpbnQgdG8pOworCisgIFdoZXJlIHRoZSB0byB2YWx1ZSBpcyB6ZXJvIHRvIHNldCB0aGUgcHVsbC11cCBvZmYsIGFuZCAxIHRvIGVuYWJsZQorICB0aGUgc3BlY2lmaWVkIHB1bGwtdXAuIEFueSBvdGhlciB2YWx1ZXMgYXJlIGN1cnJlbnRseSB1bmRlZmluZWQuCisKKworR2V0dGluZyB0aGUgc3RhdGUgb2YgYSBQSU4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgVGhlIHN0YXRlIG9mIGEgcGluIGNhbiBiZSByZWFkIGJ5IHVzaW5nIHRoZSBmdW5jdGlvbjoKKworICAgIHVuc2lnbmVkIGludCBzM2MyNDEwX2dwaW9fZ2V0cGluKHVuc2lnbmVkIGludCBwaW4pOworCisgIFRoaXMgd2lsbCByZXR1cm4gZWl0aGVyIHplcm8gb3Igbm9uLXplcm8uIERvIG5vdCBjb3VudCBvbiB0aGlzCisgIGZ1bmN0aW9uIHJldHVybmluZyAxIGlmIHRoZSBwaW4gaXMgc2V0LgorCisKK1NldHRpbmcgdGhlIHN0YXRlIG9mIGEgUElOCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgIFRoZSB2YWx1ZSBhbiBwaW4gaXMgb3V0cHV0aW5nIGNhbiBiZSBtb2RpZmllZCBieSB1c2luZyB0aGUgZm9sbG93aW5nOgorCisgICAgdm9pZCBzM2MyNDEwX2dwaW9fc2V0cGluKHVuc2lnbmVkIGludCBwaW4sIHVuc2lnbmVkIGludCB0byk7CisKKyAgV2hpY2ggc2V0cyB0aGUgZ2l2ZW4gcGluIHRvIHRoZSB2YWx1ZS4gVXNlIDAgdG8gd3JpdGUgMCwgYW5kIDEgdG8KKyAgc2V0IHRoZSBvdXRwdXQgdG8gMS4KKworCitHZXR0aW5nIHRoZSBJUlEgbnVtYmVyIGFzc29jaWF0ZWQgd2l0aCBhIFBJTgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICBUaGUgZm9sbG93aW5nIGZ1bmN0aW9uIGNhbiBtYXAgdGhlIGdpdmVuIHBpbiBudW1iZXIgdG8gYW4gSVJRCisgIG51bWJlciB0byBwYXNzIHRvIHRoZSBJUlEgc3lzdGVtLgorCisgICBpbnQgczNjMjQxMF9ncGlvX2dldGlycSh1bnNpZ25lZCBpbnQgcGluKTsKKworICBOb3RlLCBub3QgYWxsIHBpbnMgaGF2ZSBhbiBJUlEuCisKKworQXV0aG91cgorLS0tLS0tLQorCisKK0JlbiBEb29rcywgMDMgT2N0b2JlciAyMDA0CisoYykgMjAwNCBCZW4gRG9va3MsIFNpbXRlYyBFbGVjdHJvbmljcwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU2Ftc3VuZy1TM0MyNFhYL0gxOTQwLnR4dCBiL0RvY3VtZW50YXRpb24vYXJtL1NhbXN1bmctUzNDMjRYWC9IMTk0MC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDZiMWRlOQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NhbXN1bmctUzNDMjRYWC9IMTk0MC50eHQKQEAgLTAsMCArMSw0MCBAQAorCQlIUCBJUEFRIEgxOTQwCisJCT09PT09PT09PT09PT0KKworaHR0cDovL3d3dy5oYW5kaGVsZHMub3JnL3Byb2plY3RzL2gxOTQwLmh0bWwKKworSW50cm9kdWN0aW9uCistLS0tLS0tLS0tLS0KKworICBUaGUgSFAgSDE5NDAgaXMgYSBTM0MyNDEwIGJhc2VkIGhhbmRoZWxkIGRldmljZSwgd2l0aAorICBibHVldG9vdGggY29ubmVjdGl2aXR5LgorCisKK1N1cHBvcnQKKy0tLS0tLS0KKworICBBIHZhcmlldHkgb2YgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlCisKKyAgaGFuZGhlbGRzLm9yZyBwcm9qZWN0IHBhZ2U6CisKKyAgICBodHRwOi8vd3d3LmhhbmRoZWxkcy5vcmcvcHJvamVjdHMvaDE5NDAuaHRtbAorCisgIGhhbmRoZWxkcy5vcmcgd2lraSBwYWdlOgorCisgICAgaHR0cDovL2hhbmRoZWxkcy5vcmcvbW9pbi9tb2luLmNnaS9IcElwYXFIMTk0MAorCisgIEhlcmJlcnQgUPZ0emwgcGFnZXM6CisKKyAgICBodHRwOi8vdnNlcnZlci4xM3RoZmxvb3IuYXQvSDE5NDAvCisKKworTWFpbnRhaW5lcnMKKy0tLS0tLS0tLS0tCisKKyAgVGhpcyBwcm9qZWN0IGlzIGJlaW5nIG1haW50YWluZWQgYW5kIGRldmVsb3BlZCBieSBhIHZhcmlldHkKKyAgb2YgcGVvcGxlLCBpbmNsdWRpbmcgQmVuIERvb2tzLCBBcm5hdWQgUGF0YXJkLCBhbmQgSGVyYmVydCBQ9nR6bC4KKworICBUaGFua3MgdG8gdGhlIG1hbnkgb3RoZXJzIHdobyBoYXZlIGFsc28gcHJvdmlkZWQgc3VwcG9ydC4KKworCisoYykgMjAwNSBCZW4gRG9va3MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TYW1zdW5nLVMzQzI0WFgvT3ZlcnZpZXcudHh0IGIvRG9jdW1lbnRhdGlvbi9hcm0vU2Ftc3VuZy1TM0MyNFhYL092ZXJ2aWV3LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWY0ZDI5Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU2Ftc3VuZy1TM0MyNFhYL092ZXJ2aWV3LnR4dApAQCAtMCwwICsxLDE1NiBAQAorCQkJUzNDMjRYWCBBUk0gTGludXggT3ZlcnZpZXcKKwkJCT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKworCitJbnRyb2R1Y3Rpb24KKy0tLS0tLS0tLS0tLQorCisgIFRoZSBTYW1zdW5nIFMzQzI0WFggcmFuZ2Ugb2YgQVJNOSBTeXN0ZW0tb24tQ2hpcCBDUFVzIGFyZSBzdXBwb3J0ZWQKKyAgYnkgdGhlICdzM2MyNDEwJyBhcmNoaXRlY3R1cmUgb2YgQVJNIExpbnV4LiBDdXJyZW50bHkgdGhlIFMzQzI0MTAgYW5kCisgIHRoZSBTM0MyNDQwIGFyZSBzdXBwb3J0ZWQgQ1BVcy4KKworCitDb25maWd1cmF0aW9uCistLS0tLS0tLS0tLS0tCisKKyAgQSBnZW5lcmljIFMzQzI0MTAgY29uZmlndXJhdGlvbiBpcyBwcm92aWRlZCwgYW5kIGNhbiBiZSB1c2VkIGFzIHRoZQorICBkZWZhdWx0IGJ5IGBtYWtlIHMzYzI0MTBfZGVmY29uZmlnYC4gVGhpcyBjb25maWd1cmF0aW9uIGhhcyBzdXBwb3J0CisgIGZvciBhbGwgdGhlIG1hY2hpbmVzLCBhbmQgdGhlIGNvbW1vbmx5IHVzZWQgZmVhdHVyZXMgb24gdGhlbS4KKworICBDZXJ0YWluIG1hY2hpbmVzIG1heSBoYXZlIHRoZWlyIG93biBkZWZhdWx0IGNvbmZpZ3VyYXRpb25zIGFzIHdlbGwsCisgIHBsZWFzZSBjaGVjayB0aGUgbWFjaGluZSBzcGVjaWZpYyBkb2N1bWVudGF0aW9uLgorCisKK01hY2hpbmVzCistLS0tLS0tLQorCisgIFRoZSBjdXJyZW50bHkgc3VwcG9ydGVkIG1hY2hpbmVzIGFyZSBhcyBmb2xsb3dzOgorCisgIFNpbXRlYyBFbGVjdHJvbmljcyBFQjI0MTBJVFggKEJBU1QpCisKKyAgICBBIGdlbmVyYWwgcHVycG9zZSBkZXZlbG9wbWVudCBib2FyZCwgc2VlIEVCMjQxMElUWC50eHQgZm9yIGZ1cnRoZXIKKyAgICBkZXRhaWxzCisKKyAgU2Ftc3VuZyBTTURLMjQxMAorCisgICAgU2Ftc3VuZydzIG93biBkZXZlbG9wbWVudCBib2FyZCwgZ2VhcmVkIGZvciBQREEgd29yay4KKworICBTYW1zdW5nL01lcml0ZWNoIFNNREsyNDQwCisKKyAgICBUaGUgUzNDMjQ0MCBjb21wYXRpYmxlIHZlcnNpb24gb2YgdGhlIFNNREsyNDQwCisKKyAgVGhvcmNvbSBWUjEwMDAKKworICAgIEN1c3RvbSBlbWJlZGRlZCBib2FyZAorCisgIEhQIElQQVEgMTk0MAorCisgICAgSGFuZGhlbGQgKElQQVEpLCBhdmFpbGFibGUgaW4gc2V2ZXJhbCB2YXJpZXRpZXMKKworICBIUCBpUEFRIHJ4MzcxNQorCisgICAgUzNDMjQ0MCBiYXNlZCBJUEFRLCB3aXRoIGEgbnVtYmVyIG9mIHZhcmlhdGlvbnMgZGVwZW5kaW5nIG9uCisgICAgZmVhdHVyZXMgc2hpcHBlZC4KKworICBBY2VyIE4zMAorCisgICAgQSBTM0MyNDEwIGJhc2VkIFBEQSBmcm9tIEFjZXIuICBUaGVyZSBpcyBhIFdpa2kgcGFnZSBhdAorICAgIGh0dHA6Ly9oYW5kaGVsZHMub3JnL21vaW4vbW9pbi5jZ2kvQWNlck4zMERvY3VtZW50YXRpb24gLgorCisKK0FkZGluZyBOZXcgTWFjaGluZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKworICBUaGUgYXJjaGljdHVyZSBoYXMgYmVlbiBkZXNpZ25lZCB0byBzdXBwb3J0IGFzIG1hbnkgbWFjaGluZXMgYXMgY2FuCisgIGJlIGNvbmZpZ3VyZWQgZm9yIGl0IGluIG9uZSBrZXJuZWwgYnVpbGQsIGFuZCBhbnkgZnV0dXJlIGFkZGl0aW9ucworICBzaG91bGQga2VlcCB0aGlzIGluIG1pbmQgYmVmb3JlIGFsdGVyaW5nIGl0ZW1zIG91dHNpZGUgb2YgdGhlaXIgb3duCisgIG1hY2hpbmUgZmlsZXMuCisKKyAgTWFjaGluZSBkZWZpbml0aW9ucyBzaG91bGQgYmUga2VwdCBpbiBsaW51eC9hcmNoL2FybS9tYWNoLXMzYzI0MTAsCisgIGFuZCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgZXhhbXBsZXMgdGhhdCBjYW4gYmUgbG9va2VkIGF0LgorCisgIFJlYWQgdGhlIGtlcm5lbCBwYXRjaCBzdWJtaXNzaW9uIHBvbGljaWVzIGFzIHdlbGwgYXMgdGhlCisgIERvY3VtZW50YXRpb24vYXJtIGRpcmVjdG9yeSBiZWZvcmUgc3VibWl0dGluZyBwYXRjaGVzLiBUaGUKKyAgQVJNIGtlcm5lbCBzZXJpZXMgaXMgbWFuYWdlZCBieSBSdXNzZWxsIEtpbmcsIGFuZCBoYXMgYSBwYXRjaCBzeXN0ZW0KKyAgbG9jYXRlZCBhdCBodHRwOi8vd3d3LmFybS5saW51eC5vcmcudWsvZGV2ZWxvcGVyL3BhdGNoZXMvCisgIGFzIHdlbGwgYXMgbWFpbGluZyBsaXN0cyB0aGF0IGNhbiBiZSBmb3VuZCBmcm9tIHRoZSBzYW1lIHNpdGUuCisKKyAgQXMgYSBjb3VydGVzeSwgcGxlYXNlIG5vdGlmeSA8YmVuLWxpbnV4QGZsdWZmLm9yZz4gb2YgYW55IG5ldworICBtYWNoaW5lcyBvciBvdGhlciBtb2RpZmljYXRpb25zLgorCisgIEFueSBsYXJnZSBzY2FsZSBtb2RpZmljYXRpb25zLCBvciBuZXcgZHJpdmVycyBzaG91bGQgYmUgZGlzY3Vzc2VkCisgIG9uIHRoZSBBUk0ga2VybmVsIG1haWxpbmcgbGlzdCAobGludXgtYXJtLWtlcm5lbCkgYmVmb3JlIGJlaW5nCisgIGF0dGVtcHRlZC4KKworCitOQU5ECistLS0tCisKKyAgVGhlIGN1cnJlbnQga2VybmVscyBub3cgaGF2ZSBzdXBwb3J0IGZvciB0aGUgczNjMjQxMCBOQU5ECisgIGNvbnRyb2xsZXIuIElmIHRoZXJlIGFyZSBhbnkgcHJvYmxlbXMgdGhlIGxhdGVzdCBsaW51eC1tdGQKKyAgQ1ZTIGNhbiBiZSBmb3VuZCBmcm9tIGh0dHA6Ly93d3cubGludXgtbXRkLmluZnJhZGVhZC5vcmcvCisKKworU2VyaWFsCistLS0tLS0KKworICBUaGUgczNjMjQxMCBzZXJpYWwgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZSBpbnRlcm5hbAorICBzZXJpYWwgcG9ydHMuIFRoZXNlIGRldmljZXMgYXBwZWFyIGFzIC9kZXYvdHR5U0FDMCB0aHJvdWdoIDMuCisKKyAgVG8gY3JlYXRlIGRldmljZSBub2RlcyBmb3IgdGhlc2UsIHVzZSB0aGUgZm9sbG93aW5nIGNvbW1hbmRzCisKKyAgICBta25vZCB0dHlTQUMwIGMgMjA0IDY0CisgICAgbWtub2QgdHR5U0FDMSBjIDIwNCA2NQorICAgIG1rbm9kIHR0eVNBQzIgYyAyMDQgNjYKKworCitHUElPCistLS0tCisKKyAgVGhlIGNvcmUgY29udGFpbnMgc3VwcG9ydCBmb3IgbWFuaXB1bGF0aW5nIHRoZSBHUElPLCBzZWUgdGhlCisgIGRvY3VtZW50YXRpb24gaW4gR1BJTy50eHQgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRoaXMgZmlsZS4KKworCitDbG9jayBNYW5hZ2VtZW50CistLS0tLS0tLS0tLS0tLS0tCisKKyAgVGhlIGNvcmUgcHJvdmlkZXMgdGhlIGludGVyZmFjZSBkZWZpbmVkIGluIHRoZSBoZWFkZXIgZmlsZQorICBpbmNsdWRlL2FzbS1hcm0vaGFyZHdhcmUvY2xvY2suaCwgdG8gYWxsb3cgY29udHJvbCBvdmVyIHRoZQorICB2YXJpb3VzIGNsb2NrIHVuaXRzCisKKworUG9ydCBDb250cmlidXRvcnMKKy0tLS0tLS0tLS0tLS0tLS0tCisKKyAgQmVuIERvb2tzIChCSkQpCisgIFZpbmNlbnQgU2FuZGVycworICBIZXJiZXJ0IFBvdHpsCisgIEFybmF1ZCBQYXRhcmQgKFJUUCkKKyAgUm9jIFd1CisgIEtsYXVzIEZldHNjaGVyCisgIERpbWl0cnkgQW5kcmljCisgIFNoYW5ub24gSG9sbGFuZAorICBHdWlsbGF1bWUgR291cmF0IChOZXhWaXNpb24pCisgIENocmlzdGVyIFdlaW5pZ2VsICh3aW5nZWwpIChBY2VyIE4zMCkKKyAgTHVjYXMgQ29ycmVpYSBWaWxsYSBSZWFsIChTM0MyNDAwIHBvcnQpCisKKworRG9jdW1lbnQgQ2hhbmdlcworLS0tLS0tLS0tLS0tLS0tLQorCisgIDA1IFNlcCAyMDA0IC0gQkpEIC0gQWRkZWQgRG9jdW1lbnQgQ2hhbmdlcyBzZWN0aW9uCisgIDA1IFNlcCAyMDA0IC0gQkpEIC0gQWRkZWQgS2xhdXMgRmV0c2NoZXIgdG8gbGlzdCBvZiBjb250cmlidXRvcnMKKyAgMjUgT2N0IDIwMDQgLSBCSkQgLSBBZGRlZCBEaW1pdHJ5IEFuZHJpYyB0byBsaXN0IG9mIGNvbnRyaWJ1dG9ycworICAyNSBPY3QgMjAwNCAtIEJKRCAtIFVwZGF0ZWQgdGhlIE1URCBmcm9tIHRoZSAyLjYuOSBtZXJnZQorICAyMSBKYW4gMjAwNSAtIEJKRCAtIEFkZGVkIHJ4MzcxNSwgYWRkZWQgU2hhbm5vbiB0byBjb250cmlidXRvcnMKKyAgMTAgRmViIDIwMDUgLSBCSkQgLSBBZGRlZCBHdWlsbGF1bWUgR291cmF0IHRvIGNvbnRyaWJ1dG9ycworICAwMiBNYXIgMjAwNSAtIEJKRCAtIEFkZGVkIFNNREsyNDQwIHRvIGxpc3Qgb2YgbWFjaGluZXMKKyAgMDYgTWFyIDIwMDUgLSBCSkQgLSBBZGRlZCBDaHJpc3RlciBXZWluaWdlbAorICAwOCBNYXIgMjAwNSAtIEJKRCAtIEFkZGVkIExDVlIgdG8gbGlzdCBvZiBwZW9wbGUsIHVwZGF0ZWQgaW50cm9kdWN0aW9uCisgIDA4IE1hciAyMDA1IC0gQkpEIC0gQWRkZWQgc2VjdGlvbiBvbiBhZGRpbmcgbWFjaGluZXMKKworRG9jdW1lbnQgQXV0aG9yCistLS0tLS0tLS0tLS0tLS0KKworQmVuIERvb2tzLCAoYykgMjAwNC0yMDA1IFNpbXRlYyBFbGVjdHJvbmljcwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU2Ftc3VuZy1TM0MyNFhYL1NNREsyNDQwLnR4dCBiL0RvY3VtZW50YXRpb24vYXJtL1NhbXN1bmctUzNDMjRYWC9TTURLMjQ0MC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJlMWVhZQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NhbXN1bmctUzNDMjRYWC9TTURLMjQ0MC50eHQKQEAgLTAsMCArMSw1NiBAQAorCQlTYW1zdW5nL01lcml0ZWNoIFNNREsyNDQwCisJCT09PT09PT09PT09PT09PT09PT09PT09PT0KKworSW50cm9kdWN0aW9uCistLS0tLS0tLS0tLS0KKworICBUaGUgU01ESzI0NDAgaXMgYSB0d28gcGFydCBldmFsdWF0aW9uIGJvYXJkIGZvciB0aGUgU2Ftc3VuZyBTM0MyNDQwCisgIHByb2Nlc3Nvci4gSXQgaW5jbHVkZXMgc3VwcG9ydCBmb3IgTENELCBTbWFydE1lZGlhLCBBdWRpbywgU0QgYW5kCisgIDEwTUJpdCBFdGhlcm5ldCwgYW5kIGV4cGFuc2lvbiBoZWFkZXJzIGZvciB2YXJpb3VzIHNpZ25hbHMsIGluY2x1ZGluZworICB0aGUgY2FtZXJhIGFuZCB1bnVzZWQgR1BJTy4KKworCitDb25maWd1cmF0aW9uCistLS0tLS0tLS0tLS0tCisKKyAgVG8gc2V0IHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24sIHVzZSBgbWFrZSBzbWRrMjQ0MF9kZWZjb25maWdgIHdoaWNoCisgIHdpbGwgY29uZmlndXJlIHRoZSBjb21tb24gZmVhdHVyZXMgb2YgdGhpcyBib2FyZCwgb3IgdXNlCisgIGBtYWtlIHMzYzI0MTBfY29uZmlnYCB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIGFsbCBzM2MyNDEwL3MzYzI0NDAgbWFjaGluZXMKKworCitTdXBwb3J0CistLS0tLS0tCisKKyAgQmVuIERvb2tzJyBTTURLMjQ0MCBzaXRlIGF0IGh0dHA6Ly93d3cuZmx1ZmYub3JnL2Jlbi9zbWRrMjQ0MC8gd2hpY2gKKyAgaW5jbHVkZXMgbGludXggYmFzZWQgVVNCIGRvd25sb2FkIHRvb2xzLgorCisgIFNvbWUgb2YgdGhlIGgxOTQwIHBhdGNoZXMgdGhhdCBjYW4gYmUgZm91bmQgZnJvbSB0aGUgSDE5NDAgcHJvamVjdAorICBzaXRlIGF0IGh0dHA6Ly93d3cuaGFuZGhlbGRzLm9yZy9wcm9qZWN0cy9oMTk0MC5odG1sIGNhbiBhbHNvIGJlCisgIGFwcGxpZWQgdG8gdGhpcyBib2FyZC4KKworCitQZXJpcGhlcmFscworLS0tLS0tLS0tLS0KKworICBUaGVyZSBpcyBubyBjdXJyZW50IHN1cHBvcnQgZm9yIGFueSBvZiB0aGUgZXh0cmEgcGVyaXBoZXJhbHMgb24gdGhlCisgIGJhc2UtYm9hcmQgaXRzZWxmLgorCisKK01URAorLS0tCisKKyAgVGhlIE5BTkQgZmxhc2ggc2hvdWxkIGJlIHN1cHBvcnRlZCBieSB0aGUgaW4ga2VybmVsIE1URCBOQU5EIHN1cHBvcnQsCisgIE5PUiBmbGFzaCB3aWxsIGJlIGFkZGVkIGxhdGVyLgorCisKK01haW50YWluZXJzCistLS0tLS0tLS0tLQorCisgIFRoaXMgYm9hcmQgaXMgYmVpbmcgbWFpbnRhaW5lZCBieSBCZW4gRG9va3MsIGZvciBtb3JlIGluZm8sIHNlZQorICBodHRwOi8vd3d3LmZsdWZmLm9yZy9iZW4vc21kazI0NDAvCisKKyAgTWFueSB0aGFua3MgdG8gRGltaXRyeSBBbmRyaWMgb2YgVG9tVG9tIGZvciB0aGUgbG9hbiBvZiB0aGUgU01ESzI0NDAsCisgIGFuZCB0byBTaW10ZWMgRWxlY3Ryb25pY3MgZm9yIGFsbG93aW5nIG1lIHRpbWUgdG8gd29yayBvbiB0aGlzLgorCisKKyhjKSAyMDA0IEJlbiBEb29rcwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL1NhbXN1bmctUzNDMjRYWC9TdXNwZW5kLnR4dCBiL0RvY3VtZW50YXRpb24vYXJtL1NhbXN1bmctUzNDMjRYWC9TdXNwZW5kLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTJiYzMyCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU2Ftc3VuZy1TM0MyNFhYL1N1c3BlbmQudHh0CkBAIC0wLDAgKzEsMTA2IEBACisJCQlTM0MyNFhYIFN1c3BlbmQgU3VwcG9ydAorCQkJPT09PT09PT09PT09PT09PT09PT09PT0KKworCitJbnRyb2R1Y3Rpb24KKy0tLS0tLS0tLS0tLQorCisgIFRoZSBTM0MyNDEwIHN1cHBvcnRzIGEgbG93LXBvd2VyIHN1c3BlbmQgbW9kZSwgd2hlcmUgdGhlIFNEUkFNIGlzIGtlcHQKKyAgaW4gU2VsZi1SZWZyZXNoIG1vZGUsIGFuZCBhbGwgYnV0IHRoZSBlc3NlbnRpYWwgcGVyaXBoZXJhbCBibG9ja3MgYXJlCisgIHBvd2VyZWQgZG93bi4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRoaXMgd29ya3MsIHBsZWFzZSBsb29rCisgIGF0IHRoZSBTM0MyNDEwIGRhdGFzaGVldHMgZnJvbSBTYW1zdW5nLgorCisKK1JlcXVpcmVtZW50cworLS0tLS0tLS0tLS0tCisKKyAgMSkgQSBib290bG9hZGVyIHRoYXQgY2FuIHN1cHBvcnQgdGhlIG5lY2Vzc2FyeSByZXN1bWUgb3BlcmF0aW9uCisKKyAgMikgU3VwcG9ydCBmb3IgYXQgbGVhc3QgMSBzb3VyY2UgZm9yIHJlc3VtZQorCisgIDMpIENPTkZJR19QTSBlbmFibGVkIGluIHRoZSBrZXJuZWwKKworICA0KSBBbnkgcGVyaXBoZXJhbHMgdGhhdCBhcmUgZ29pbmcgdG8gYmUgcG93ZXJlZCBkb3duIGF0IHRoZSBzYW1lCisgICAgIHRpbWUgcmVxdWlyZSBzdXNwZW5kL3Jlc3VtZSBzdXBwb3J0LgorCisKK1Jlc3VtaW5nCistLS0tLS0tLQorCisgIFRoZSBTM0MyNDEwIHVzZXIgbWFudWFsIGRlZmluZXMgdGhlIHByb2Nlc3Mgb2Ygc2VuZGluZyB0aGUgQ1BVIHRvCisgIHNsZWVwIGFuZCBob3cgaXQgcmVzdW1lcy4gVGhlIGRlZmF1bHQgYmVoYXZpb3VyIG9mIHRoZSBMaW51eCBjb2RlCisgIGlzIHRvIHNldCB0aGUgR1NUQVRVUzMgcmVnaXN0ZXIgdG8gdGhlIHBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlCisgIGNvZGUgdG8gcmVzdW1lIExpbnV4IG9wZXJhdGlvbi4KKworICBHU1RBVFVTNCBpcyBjdXJyZW50bHkgbGVmdCBhbG9uZSBieSB0aGUgc2xlZXAgY29kZSwgYW5kIGlzIGZyZWUgdG8KKyAgdXNlIGZvciBhbnkgb3RoZXIgcHVycG9zZXMgKGZvciBleGFtcGxlLCB0aGUgRUIyNDEwSVRYIHVzZXMgdGhpcyB0bworICBzYXZlIG1lbW9yeSBjb25maWd1cmF0aW9uIGluKS4KKworCitNYWNoaW5lIFN1cHBvcnQKKy0tLS0tLS0tLS0tLS0tLQorCisgIFRoZSBtYWNoaW5lIHNwZWNpZmljIGZ1bmN0aW9ucyBtdXN0IGNhbGwgdGhlIHMzYzI0MTBfcG1faW5pdCgpIGZ1bmN0aW9uCisgIHRvIHNheSB0aGF0IGl0cyBib290bG9hZGVyIGlzIGNhcGFibGUgb2YgcmVzdW1pbmcuIFRoaXMgY2FuIGJlIGFzCisgIHNpbXBsZSBhcyBhZGRpbmcgdGhlIGZvbGxvd2luZyB0byB0aGUgbWFjaGluZSdzIGRlZmluaXRpb246CisKKyAgSU5JVE1BQ0hJTkUoczNjMjQxMF9wbV9pbml0KQorCisgIEEgYm9hcmQgY2FuIGRvIGl0cyBvd24gc2V0dXAgYmVmb3JlIGNhbGxpbmcgczNjMjQxMF9wbV9pbml0LCBpZiBpdAorICBuZWVkcyB0byBzZXR1cCBhbnl0aGluZyBlbHNlIGZvciBwb3dlciBtYW5hZ2VtZW50IHN1cHBvcnQuCisKKyAgVGhlcmUgaXMgY3VycmVudGx5IG5vIHN1cHBvcnQgZm9yIG92ZXItcmlkaW5nIHRoZSBkZWZhdWx0IG1ldGhvZCBvZgorICBzYXZpbmcgdGhlIHJlc3VtZSBhZGRyZXNzLCBpZiB5b3VyIGJvYXJkIHJlcXVpcmVzIGl0LCB0aGVuIGNvbnRhY3QKKyAgdGhlIG1haW50YWluZXIgYW5kIGRpc2N1c3Mgd2hhdCBpcyByZXF1aXJlZC4KKworICBOb3RlLCB0aGUgb3JpZ2luYWwgbWV0aG9kIG9mIGFkZGluZyBhbiBsYXRlX2luaXRjYWxsKCkgaXMgd3JvbmcsCisgIGFuZCB3aWxsIGVuZCB1cCBpbml0aWFsaXNpbmcgYWxsIGNvbXBpbGVkIG1hY2hpbmVzJyBwbSBpbml0IQorCisKK0RlYnVnZ2luZworLS0tLS0tLS0tCisKKyAgVGhlcmUgYXJlIHNldmVyYWwgaW1wb3J0YW50IHRoaW5ncyB0byByZW1lbWJlciB3aGVuIHVzaW5nIFBNIHN1c3BlbmQ6CisKKyAgMSkgVGhlIHVhcnQgZHJpdmVycyB3aWxsIGRpc2FibGUgdGhlIGNsb2NrcyB0byB0aGUgVUFSVCBibG9ja3Mgd2hlbgorICAgICBzdXNwZW5kaW5nLCB3aGljaCBtZWFucyB0aGF0IHVzZSBvZiBwcmludGFzY2lpKCkgb3Igc2ltaWxhciBkaXJlY3QKKyAgICAgYWNjZXNzIHRvIHRoZSBVQVJUcyB3aWxsIGNhdXNlIHRoZSBkZWJ1ZyB0byBzdG9wLgorCisgIDIpIFdoaWxzdCB0aGUgcG0gY29kZSBpdHNlbGYgd2lsbCBhdHRlbXB0IHRvIHJlLWVuYWJsZSB0aGUgVUFSVCBjbG9ja3MsCisgICAgIGNhcmUgc2hvdWxkIGJlIHRha2VuIHRoYXQgYW55IGV4dGVybmFsIGNsb2NrIHNvdXJjZXMgdGhhdCB0aGUgVUFSVHMKKyAgICAgcmVseSBvbiBhcmUgc3RpbGwgZW5hYmxlZCBhdCB0aGF0IHBvaW50LgorCisKK0NvbmZpZ3VyYXRpb24KKy0tLS0tLS0tLS0tLS0KKworICBUaGUgUzNDMjQxMCBzcGVjaWZpYyBjb25maWd1cmF0aW9uIGluIGBTeXN0ZW0gVHlwZWAgZGVmaW5lcyB2YXJpb3VzCisgIGFzcGVjdHMgb2YgaG93IHRoZSBTM0MyNDEwIHN1c3BlbmQgYW5kIHJlc3VtZSBzdXBwb3J0IGlzIGNvbmZpZ3VyZWQKKworICBgUzNDMjQxMCBQTSBTdXNwZW5kIGRlYnVnYAorCisgICAgVGhpcyBvcHRpb24gcHJpbnRzIG1lc3NhZ2VzIHRvIHRoZSBzZXJpYWwgY29uc29sZSBiZWZvcmUgYW5kIGFmdGVyCisgICAgdGhlIGFjdHVhbCBzdXNwZW5kLCBnaXZpbmcgZGV0YWlsZWQgaW5mb3JtYXRpb24gb24gd2hhdCBpcworICAgIGhhcHBlbmluZworCisKKyAgYFMzQzI0MTAgUE0gU3VzcGVuZCBNZW1vcnkgQ1JDYAorCisgICAgQWxsb3dzIHRoZSBlbnRpcmUgbWVtb3J5IHRvIGJlIGNoZWNrc3VtbWVkIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlCisgICAgc3VzcGVuZCB0byBzZWUgaWYgdGhlcmUgaGFzIGJlZW4gYW55IGNvcnJ1cHRpb24gb2YgdGhlIGNvbnRlbnRzLgorCisgICAgVGhpcyBzdXBwb3J0IHJlcXVpcmVzIHRoZSBDUkMzMiBmdW5jdGlvbiB0byBiZSBlbmFibGVkLgorCisKKyAgYFMzQzI0MTAgUE0gU3VzcGVuZCBDUkMgQ2h1bmtzaXplIChLaUIpYAorCisgICAgRGVmaW5lcyB0aGUgc2l6ZSBvZiBtZW1vcnkgZWFjaCBDUkMgY2h1bmsgY292ZXJzLiBBIHNtYWxsZXIgdmFsdWUKKyAgICB3aWxsIG1lYW4gdGhhdCB0aGUgQ1JDIGRhdGEgYmxvY2sgd2lsbCB0YWtlIG1vcmUgbWVtb3J5LCBidXQgd2lsbAorICAgIGlkZW50aWZ5IGFueSBmYXVsdHMgd2l0aCBiZXR0ZXIgcHJlY2lzaW9uCisKKworRG9jdW1lbnQgQXV0aG9yCistLS0tLS0tLS0tLS0tLS0KKworQmVuIERvb2tzLCAoYykgMjAwNCBTaW10ZWMgRWxlY3Ryb25pY3MKKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vU2V0dXAgYi9Eb2N1bWVudGF0aW9uL2FybS9TZXR1cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYWJkMDcyCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vU2V0dXAKQEAgLTAsMCArMSwxMjkgQEAKK0tlcm5lbCBpbml0aWFsaXNhdGlvbiBwYXJhbWV0ZXJzIG9uIEFSTSBMaW51eAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZSBmb2xsb3dpbmcgZG9jdW1lbnQgZGVzY3JpYmVzIHRoZSBrZXJuZWwgaW5pdGlhbGlzYXRpb24gcGFyYW1ldGVyCitzdHJ1Y3R1cmUsIG90aGVyd2lzZSBrbm93biBhcyAnc3RydWN0IHBhcmFtX3N0cnVjdCcgd2hpY2ggaXMgdXNlZAorZm9yIG1vc3QgQVJNIExpbnV4IGFyY2hpdGVjdHVyZXMuCisKK1RoaXMgc3RydWN0dXJlIGlzIHVzZWQgdG8gcGFzcyBpbml0aWFsaXNhdGlvbiBwYXJhbWV0ZXJzIGZyb20gdGhlCitrZXJuZWwgbG9hZGVyIHRvIHRoZSBMaW51eCBrZXJuZWwgcHJvcGVyLCBhbmQgbWF5IGJlIHNob3J0IGxpdmVkCit0aHJvdWdoIHRoZSBrZXJuZWwgaW5pdGlhbGlzYXRpb24gcHJvY2Vzcy4gIEFzIGEgZ2VuZXJhbCBydWxlLCBpdAorc2hvdWxkIG5vdCBiZSByZWZlcmVuY2VkIG91dHNpZGUgb2YgYXJjaC9hcm0va2VybmVsL3NldHVwLmM6c2V0dXBfYXJjaCgpLgorCitUaGVyZSBhcmUgYSBsb3Qgb2YgcGFyYW1ldGVycyBsaXN0ZWQgaW4gdGhlcmUsIGFuZCB0aGV5IGFyZSBkZXNjcmliZWQKK2JlbG93OgorCisgcGFnZV9zaXplCisKKyAgIFRoaXMgcGFyYW1ldGVyIG11c3QgYmUgc2V0IHRvIHRoZSBwYWdlIHNpemUgb2YgdGhlIG1hY2hpbmUsIGFuZAorICAgd2lsbCBiZSBjaGVja2VkIGJ5IHRoZSBrZXJuZWwuCisKKyBucl9wYWdlcworCisgICBUaGlzIGlzIHRoZSB0b3RhbCBudW1iZXIgb2YgcGFnZXMgb2YgbWVtb3J5IGluIHRoZSBzeXN0ZW0uICBJZgorICAgdGhlIG1lbW9yeSBpcyBiYW5rZWQsIHRoZW4gdGhpcyBzaG91bGQgY29udGFpbiB0aGUgdG90YWwgbnVtYmVyCisgICBvZiBwYWdlcyBpbiB0aGUgc3lzdGVtLgorCisgICBJZiB0aGUgc3lzdGVtIGNvbnRhaW5zIHNlcGFyYXRlIFZSQU0sIHRoaXMgdmFsdWUgc2hvdWxkIG5vdAorICAgaW5jbHVkZSB0aGlzIGluZm9ybWF0aW9uLgorCisgcmFtZGlza19zaXplCisKKyAgIFRoaXMgaXMgbm93IG9ic29sZXRlLCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLgorCisgZmxhZ3MKKworICAgVmFyaW91cyBrZXJuZWwgZmxhZ3MsIGluY2x1ZGluZzoKKyAgICBiaXQgMCAtIDEgPSBtb3VudCByb290IHJlYWQgb25seQorICAgIGJpdCAxIC0gdW51c2VkCisgICAgYml0IDIgLSAwID0gbG9hZCByYW1kaXNrCisgICAgYml0IDMgLSAwID0gcHJvbXB0IGZvciByYW1kaXNrCisKKyByb290ZGV2CisKKyAgIG1ham9yL21pbm9yIG51bWJlciBwYWlyIG9mIGRldmljZSB0byBtb3VudCBhcyB0aGUgcm9vdCBmaWxlc3lzdGVtLgorCisgdmlkZW9fbnVtX2NvbHMKKyB2aWRlb19udW1fcm93cworCisgICBUaGVzZSB0d28gdG9nZXRoZXIgZGVzY3JpYmUgdGhlIGNoYXJhY3RlciBzaXplIG9mIHRoZSBkdW1teSBjb25zb2xlLAorICAgb3IgVkdBIGNvbnNvbGUgY2hhcmFjdGVyIHNpemUuICBUaGV5IHNob3VsZCBub3QgYmUgdXNlZCBmb3IgYW55IG90aGVyCisgICBwdXJwb3NlLgorCisgICBJdCdzIGdlbmVyYWxseSBhIGdvb2QgaWRlYSB0byBzZXQgdGhlc2UgdG8gYmUgZWl0aGVyIHN0YW5kYXJkIFZHQSwgb3IKKyAgIHRoZSBlcXVpdmFsZW50IGNoYXJhY3RlciBzaXplIG9mIHlvdXIgZmJjb24gZGlzcGxheS4gIFRoaXMgdGhlbiBhbGxvd3MKKyAgIGFsbCB0aGUgYm9vdHVwIG1lc3NhZ2VzIHRvIGJlIGRpc3BsYXllZCBjb3JyZWN0bHkuCisKKyB2aWRlb194CisgdmlkZW9feQorCisgICBUaGlzIGRlc2NyaWJlcyB0aGUgY2hhcmFjdGVyIHBvc2l0aW9uIG9mIGN1cnNvciBvbiBWR0EgY29uc29sZSwgYW5kCisgICBpcyBvdGhlcndpc2UgdW51c2VkLiAoc2hvdWxkIG5vdCB1c2VkIGZvciBvdGhlciBjb25zb2xlIHR5cGVzLCBhbmQKKyAgIHNob3VsZCBub3QgYmUgdXNlZCBmb3Igb3RoZXIgcHVycG9zZXMpLgorCisgbWVtY19jb250cm9sX3JlZworCisgICBNRU1DIGNoaXAgY29udHJvbCByZWdpc3RlciBmb3IgQWNvcm4gQXJjaGltZWRlcyBhbmQgQWNvcm4gQTUwMDAKKyAgIGJhc2VkIG1hY2hpbmVzLiAgTWF5IGJlIHVzZWQgZGlmZmVyZW50bHkgYnkgZGlmZmVyZW50IGFyY2hpdGVjdHVyZXMuCisKKyBzb3VuZGRlZmF1bHQKKworICAgRGVmYXVsdCBzb3VuZCBzZXR0aW5nIG9uIEFjb3JuIG1hY2hpbmVzLiAgTWF5IGJlIHVzZWQgZGlmZmVyZW50bHkgYnkKKyAgIGRpZmZlcmVudCBhcmNoaXRlY3R1cmVzLgorCisgYWRmc2RyaXZlcworCisgICBOdW1iZXIgb2YgQURGUy9NRk0gZGlza3MuICBNYXkgYmUgdXNlZCBkaWZmZXJlbnRseSBieSBkaWZmZXJlbnQKKyAgIGFyY2hpdGVjdHVyZXMuCisKKyBieXRlc19wZXJfY2hhcl9oCisgYnl0ZXNfcGVyX2NoYXJfdgorCisgICBUaGVzZSBhcmUgbm93IG9ic29sZXRlLCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLgorCisgcGFnZXNfaW5fYmFua1s0XQorCisgICBOdW1iZXIgb2YgcGFnZXMgaW4gZWFjaCBiYW5rIG9mIHRoZSBzeXN0ZW1zIG1lbW9yeSAodXNlZCBmb3IgUmlzY1BDKS4KKyAgIFRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBzeXN0ZW1zIHdoZXJlIHRoZSBwaHlzaWNhbCBtZW1vcnkKKyAgIGlzIG5vbi1jb250aWd1b3VzIGZyb20gdGhlIHByb2Nlc3NvcnMgcG9pbnQgb2Ygdmlldy4KKworIHBhZ2VzX2luX3ZyYW0KKworICAgTnVtYmVyIG9mIHBhZ2VzIGluIFZSQU0gKHVzZWQgb24gQWNvcm4gUmlzY1BDKS4gIFRoaXMgdmFsdWUgbWF5IGFsc28KKyAgIGJlIHVzZWQgYnkgbG9hZGVycyBpZiB0aGUgc2l6ZSBvZiB0aGUgdmlkZW8gUkFNIGNhbid0IGJlIG9idGFpbmVkCisgICBmcm9tIHRoZSBoYXJkd2FyZS4KKworIGluaXRyZF9zdGFydAorIGluaXRyZF9zaXplCisKKyAgIFRoaXMgZGVzY3JpYmVzIHRoZSBrZXJuZWwgdmlydHVhbCBzdGFydCBhZGRyZXNzIGFuZCBzaXplIG9mIHRoZQorICAgaW5pdGlhbCByYW1kaXNrLgorCisgcmRfc3RhcnQKKworICAgU3RhcnQgYWRkcmVzcyBpbiBzZWN0b3JzIG9mIHRoZSByYW1kaXNrIGltYWdlIG9uIGEgZmxvcHB5IGRpc2suCisKKyBzeXN0ZW1fcmV2CisKKyAgIHN5c3RlbSByZXZpc2lvbiBudW1iZXIuCisKKyBzeXN0ZW1fc2VyaWFsX2xvdworIHN5c3RlbV9zZXJpYWxfaGlnaAorCisgICBzeXN0ZW0gNjQtYml0IHNlcmlhbCBudW1iZXIKKworIG1lbV9mY2xrXzIxMjg1CisKKyAgIFRoZSBzcGVlZCBvZiB0aGUgZXh0ZXJuYWwgb3NjaWxsYXRvciB0byB0aGUgMjEyODUgKGZvb3RicmlkZ2UpLAorICAgd2hpY2ggY29udHJvbCdzIHRoZSBzcGVlZCBvZiB0aGUgbWVtb3J5IGJ1cywgdGltZXIgJiBzZXJpYWwgcG9ydC4KKyAgIERlcGVuZGluZyB1cG9uIHRoZSBzcGVlZCBvZiB0aGUgY3B1IGl0cyB2YWx1ZSBjYW4gYmUgYmV0d2VlbgorICAgMC02NiBNSHouIElmIG5vIHBhcmFtcyBhcmUgcGFzc2VkIG9yIGEgdmFsdWUgb2YgemVybyBpcyBwYXNzZWQsCisgICB0aGVuIGEgdmFsdWUgb2YgNTAgTWh6IGlzIHRoZSBkZWZhdWx0IG9uIDIxMjg1IGFyY2hpdGVjdHVyZXMuCisKKyBwYXRoc1s4XVsxMjhdCisKKyAgIFRoZXNlIGFyZSBub3cgb2Jzb2xldGUsIGFuZCBzaG91bGQgbm90IGJlIHVzZWQuCisKKyBjb21tYW5kbGluZQorCisgICBLZXJuZWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMuICBEZXRhaWxzIGNhbiBiZSBmb3VuZCBlbHNld2hlcmUuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9Db21wYWN0Rmxhc2ggYi9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9Db21wYWN0Rmxhc2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODYxNmQ4NwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NoYXJwLUxIL0NvbXBhY3RGbGFzaApAQCAtMCwwICsxLDMyIEBACitSRUFETUUgb24gdGhlIENvbXBhY3QgRmxhc2ggZm9yIENhcmQgRW5naW5lcworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhlcmUgYXJlIHRocmVlIGNoYWxsZW5nZXMgaW4gc3VwcG9ydGluZyB0aGUgQ0YgaW50ZXJmYWNlIG9mIHRoZSBDYXJkCitFbmdpbmVzLiAgRmlyc3QsIGV2ZXJ5IElPIG9wZXJhdGlvbiBtdXN0IGJlIGZvbGxvd2VkIHdpdGggSU8gdG8KK2Fub3RoZXIgbWVtb3J5IHJlZ2lvbi4gIFNlY29uZCwgdGhlIHNsb3QgaXMgd2lyZWQgZm9yIG9uZS10by1vbmUKK2FkZHJlc3MgbWFwcGluZyAqYW5kKiBpdCBpcyB3aXJlZCBmb3IgMTYgYml0IGFjY2VzcyBvbmx5LiAgU2Vjb25kLCB0aGUKK2ludGVycnVwdCByZXF1ZXN0IGxpbmUgZnJvbSB0aGUgQ0YgZGV2aWNlIGlzbid0IHdpcmVkLgorCitUaGUgSU9CQVJSSUVSIGlzc3VlIGlzIGNvdmVyZWQgaW4gUkVBRE1FLklPQkFSUklFUi4gIFRoaXMgaXNuJ3QgYW4KK29uZXJvdXMgcHJvYmxlbS4gIEVub3VnaCBzYWlkIGhlcmUuCisKK1RoZSBhZGRyZXNzaW5nIGlzc3VlIGlzIHNvbHZlZCBpbiB0aGUKK2FyY2gvYXJtL21hY2gtbGg3YTQweC9pZGUtbHBkN2E0MHguYyBmaWxlIHdpdGggc29tZSBhd2t3YXJkCit3b3JrLWFyb3VuZHMuICBXZSBpbXBsZW1lbnQgYSBzcGVjaWFsIFNFTEVDVF9EUklWRSByb3V0aW5lIHRoYXQgaXMKK2NhbGxlZCBiZWZvcmUgdGhlIElERSBkcml2ZXIgcGVyZm9ybXMgaXRzIG93biBTRUxFQ1RfRFJJVkUuICBPdXIgY29kZQorcmVjb2duaXplcyB0aGF0IHRoZSBTRUxFQ1QgcmVnaXN0ZXIgY2Fubm90IGJlIG1vZGlmaWVkIHdpdGhvdXQgYWxzbword3JpdGluZyBhIGNvbW1hbmQuICBJdCBzZW5kIGFuIElETEVfSU1NRURJQVRFIGNvbW1hbmQgb24gc2VsZWN0aW5nIGEKK2RyaXZlLiAgVGhlIGZ1bmN0aW9uIGFsc28gcHJldmVudHMgZHJpdmUgc2VsZWN0IHRvIHRoZSBzbGF2ZSBkcml2ZQorc2luY2UgdGhlcmUgY2FuIGJlIG9ubHkgb25lLiAgVGhlIGF3a3dhcmQgcGFydCBpcyB0aGF0IHRoZSBJREUgZHJpdmVyLAorZXZlbiB0aG91Z2ggd2UgaGF2ZSBhIHNlbGVjdCBwcm9jZWR1cmUsIGFsc28gYXR0ZW1wdHMgdG8gY2hhbmdlIHRoZQorZHJpdmUgYnkgd3JpdGluZyBkaXJlY3RseSB0aGUgU0VMRUNUIHJlZ2lzdGVyLiAgVGhpcyBhdHRlbXB0IGlzCitleHBsaWNpdGx5IGJsb2NrZWQgYnkgdGhlIE9VVEIgZnVuY3Rpb24tLW5vdCBwcmV0dHksIGJ1dCBlZmZlY3RpdmUuCisKK1RoZSBsYWNrIG9mIGludGVycnVwdHMgaXMgYSBtb3JlIHNlcmlvdXMgcHJvYmxlbS4gIEV2ZW4gdGhvdWdoIHRoZSBDRgorY2FyZCBpcyBmYXN0IHdoZW4gY29tcGFyZWQgdG8gYSBub3JtYWwgSURFIGRldmljZSwgd2UgZG9uJ3Qga25vdyB0aGF0Cit0aGUgQ0YgaXMgcmVhbGx5IGZsYXNoLiAgQSB1c2VyIGNvdWxkIHVzZSBvbmUgb2YgdGhlIHZlcnkgc21hbGwgaGFyZAorZHJpdmVzIGJlaW5nIHNoaXBwZWQgd2l0aCBhIENGIGludGVyZmFjZS4gIFRoZSBJREUgY29kZSBpbmNsdWRlcyBhCitjaGVjayBmb3IgaW50ZXJmYWNlcyB0aGF0IGxhY2sgYW4gSVJRLiAgSW4gdGhlc2UgY2FzZXMsIHN1Ym1pdHRpbmcgYQorY29tbWFuZCB0byB0aGUgSURFIGNvbnRyb2xsZXIgaXMgZm9sbG93ZWQgYnkgYSBjYWxsIHRvIHBvbGwgZm9yCitjb21wbGV0aW9uLiAgSWYgdGhlIGRldmljZSBpc24ndCBpbW1lZGlhdGVseSByZWFkeSwgaXQgc2NoZWR1bGVzIGEKK3RpbWVyIHRvIHBvbGwgYWdhaW4gbGF0ZXIuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9JT0JhcnJpZXIgYi9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9JT0JhcnJpZXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzBkODg1MwotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NoYXJwLUxIL0lPQmFycmllcgpAQCAtMCwwICsxLDQ1IEBACitSRUFETUUgb24gdGhlIElPQkFSUklFUiBmb3IgQ2FyZEVuZ2luZSBJTworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworRHVlIHRvIGFuIHVuZm9ydHVuYXRlIG92ZXJzaWdodCB3aGVuIHRoZSBDYXJkIEVuZ2luZXMgd2VyZSBkZXNpZ25lZCwKK3RoZSBzaWduYWxzIHRoYXQgY29udHJvbCBhY2Nlc3MgdG8gc29tZSBwZXJpcGhlcmFscywgbW9zdCBub3RhYmx5IHRoZQorU01DOTFDOTExMSBldGhlcm5ldCBjb250cm9sbGVyLCBhcmUgbm90IHByb3Blcmx5IGhhbmRsZWQuCisKK1RoZSBzeW1wdG9tIGlzIHRoYXQgc29tZSBiYWNrIHRvIGJhY2sgSU8gd2l0aCB0aGUgcGVyaXBoZXJhbCByZXR1cm5zCit1bnJlbGlhYmxlIGRhdGEuICBXaXRoIHRoZSBTTUMgY2hpcCwgeW91J2xsIHNlZSBlcnJvcnMgYWJvdXQgdGhlIGJhbmsKK3JlZ2lzdGVyIGJlaW5nICdzY3Jld2VkJy4KKworVGhlIGNhdXNlIGlzIHRoYXQgdGhlIEFFTiBzaWduYWwgdG8gdGhlIFNNQyBjaGlwIGRvZXMgbm90IHRyYW5zaXRpb24KK2ZvciBldmVyeSBtZW1vcnkgYWNjZXNzLiAgSXQgaXMgZHJpdmVuIHRocm91Z2ggdGhlIENQTEQgZnJvbSB0aGUgQ1M3CitsaW5lIG9mIHRoZSBDUFUncyBzdGF0aWMgbWVtb3J5IGNvbnRyb2xsZXIgd2hpY2ggaXMgb3B0aW1pemVkIHRvCitlbGltaW5hdGUgdW5uZWNlc3NhcnkgdHJhbnNpdGlvbnMuICBZZXQsIHRoZSBTTUMgcmVxdWlyZXMgYSB0cmFuc2l0aW9uCitmb3IgZXZlcnkgd3JpdGUgYWNjZXNzLiAgVGhlIFNoYXJwIHdlYnNpdGUgaGFzIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQKK3RoZSBlZmZlY3QgdGhpcyBwb3dlci1jb25zZXJ2aW5nIGZlYXR1cmUgaGFzIG9uIHBlcmlwaGVyYWwKK2ludGVyZmFjaW5nLgorCitUaGUgc29sdXRpb24gaXMgdG8gZm9sbG93IGV2ZXJ5IHdyaXRlIGFjY2VzcyB0byB0aGUgU01DIGNoaXAgd2l0aCBhbgorYWNjZXNzIHRvIGFub3RoZXIgbWVtb3J5IHJlZ2lvbiB0aGF0IHdpbGwgZm9yY2UgdGhlIENQVSB0byByZWxlYXNlIHRoZQorY2hpcCBzZWxlY3QgbGluZS4gIEl0IGlzIGltcG9ydGFudCB0byBndWFyYW50ZWUgdGhhdCB0aGlzIGFjY2VzcworZm9yY2VzIHRoZSBDUFUgb2ZmLWNoaXAuICBXZSBtYXAgYSBwYWdlIG9mIFNEUkFNIGFzIGlmIGl0IHdlcmUgYW4KK3VuY2FjaGVhYmxlIElPIGRldmljZSBhbmQgcmVhZCBmcm9tIGl0IGFmdGVyIGV2ZXJ5IFNNQyBJTyB3cml0ZQorb3BlcmF0aW9uLgorCisgIFNNQyBJTworICBCQVJSSUVSIElPCisKK09ubHkgdGhpcyBzZXF1ZW5jZSBpcyBpbXBvcnRhbnQuICBJdCBkb2VzIG5vdCBtYXR0ZXIgdGhhdCB0aGVyZSBpcyBubworQkFSUklFUiBJTyBiZWZvcmUgdGhlIGFjY2VzcyB0byB0aGUgU01DIGNoaXAgYmVjYXVzZSB0aGUgQUVOIGxhdGNoCitvbmx5IG5lZWRzIG9jY3VycyBhZnRlciB0aGUgU01DIElPIHdyaXRlIGN5Y2xlLiAgVGhlIHJvdXRpbmVzIHRoYXQKK2ltcGxlbWVudCB0aGlzIHdvcmstYXJvdW5kIG1ha2UgYW4gYWRkaXRpb25hbCBjb25jZXNzaW9uIHdoaWNoIGlzIHRvCitkaXNhYmxlIGludGVycnVwdHMgZHVyaW5nIHRoZSBJTyBzZXF1ZW5jZS4gIE90aGVyIGhhcmR3YXJlIGRldmljZXMKKyh0aGUgTG9naWNQRCBDUExEKSBoYXZlIHJlZ2lzdGVycyBpbiB0aGUgc2FtZSB0aGUgcGh5c2ljYWwgbWVtb3J5CityZWdpb24gYXMgdGhlIFNNQyBjaGlwLiAgQW4gaW50ZXJydXB0IG1pZ2h0IGFsbG93IGFuIGFjY2VzcyB0byBvbmUgb2YKK3Rob3NlIHJlZ2lzdGVycyB3aGlsZSBTTUMgSU8gaXMgYmVpbmcgcGVyZm9ybWVkLgorCitZb3UgbWlnaHQgYmUgdGVtcHRlZCB0byB0aGluayB0aGF0IHdlIGhhdmUgdG8gYWNjZXNzIGFub3RoZXIgZGV2aWNlCithdHRhY2hlZCB0byB0aGUgc3RhdGljIG1lbW9yeSBjb250cm9sbGVyLCBidXQgdGhlIGVtcGlyaWNhbCBldmlkZW5jZQoraW5kaWNhdGVzIHRoYXQgdGhpcyBpcyBub3Qgc28uICBNYXBwaW5nIDB4MDAwMDAwMDAgKGZsYXNoKSBhbmQKKzB4YzAwMDAwMDAgKFNEUkFNKSBhcHBlYXIgdG8gaGF2ZSB0aGUgc2FtZSBlZmZlY3QuICBVc2luZyBTRFJBTSBzZWVtcwordG8gYmUgZmFzdGVyLiAgQ2hvb3NpbmcgdG8gYWNjZXNzIGFuIHVuZGVjb2RlZCBtZW1vcnkgcmVnaW9uIGlzIG5vdAorZGVzaXJhYmxlIGFzIHRoZXJlIGlzIG5vIHdheSB0byBrbm93IGhvdyB0aGF0IGNoaXAgc2VsZWN0IHdpbGwgYmUgdXNlZAoraW4gdGhlIGZ1dHVyZS4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL1NoYXJwLUxIL0tFVjdBNDAwIGIvRG9jdW1lbnRhdGlvbi9hcm0vU2hhcnAtTEgvS0VWN0E0MDAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmUzMmIxNAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NoYXJwLUxIL0tFVjdBNDAwCkBAIC0wLDAgKzEsOCBAQAorUkVBRE1FIG9uIEltcGxlbWVudGluZyBMaW51eCBmb3IgU2hhcnAncyBLRVY3YTQwMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGlzIHByb2R1Y3QgaGFzIGJlZW4gZGlzY29udGludWVkIGJ5IFNoYXJwLiAgRm9yIHRoZSB0aW1lIGJlaW5nLCB0aGUKK3BhcnRpYWxseSBpbXBsZW1lbnRlZCBjb2RlIHJlbWFpbnMgaW4gdGhlIGtlcm5lbC4gIEF0IHNvbWUgcG9pbnQgaW4KK3RoZSBmdXR1cmUsIGVpdGhlciB0aGUgY29kZSB3aWxsIGJlIGZpbmlzaGVkIG9yIGl0IHdpbGwgYmUgcmVtb3ZlZAorY29tcGxldGVseS4gIFRoaXMgZGVwZW5kcyBwcmltYXJpbHkgb24gaG93IG1hbnkgb2YgdGhlIGRldmVsb3BtZW50Citib2FyZHMgYXJlIGluIHRoZSBmaWVsZC4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL1NoYXJwLUxIL0xQRDdBNDAwIGIvRG9jdW1lbnRhdGlvbi9hcm0vU2hhcnAtTEgvTFBEN0E0MDAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzI3NWI0NQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NoYXJwLUxIL0xQRDdBNDAwCkBAIC0wLDAgKzEsMTUgQEAKK1JFQURNRSBvbiBJbXBsZW1lbnRpbmcgTGludXggZm9yIHRoZSBMb2dpYyBQRCBMUEQ3QTQwMC0xMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gQ1BMRCBtZW1vcnkgbWFwcGluZworCisgIFRoZSBib2FyZCBkZXNpZ25lcnMgY2hvc2UgdG8gdXNlIGhpZ2ggYWRkcmVzcyBsaW5lcyBmb3IgY29udHJvbGxpbmcKKyAgYWNjZXNzIHRvIHRoZSBDUExEIHJlZ2lzdGVycy4gIEl0IHR1cm5zIG91dCB0byBiZSBhIGJpZyB3YXN0ZQorICBiZWNhdXNlIHdlJ3JlIHVzaW5nIGFuIE1NVSBhbmQgbXVzdCBtYXAgSU8gc3BhY2UgaW50byB2aXJ0dWFsCisgIG1lbW9yeS4gIFRoZSByZXN1bHQgaXMgdGhhdCB3ZSBoYXZlIHRvIG1ha2UgYSBtYXBwaW5nIGZvciBldmVyeQorICByZWdpc3Rlci4KKworLSBTZXJpYWwgQ29uc29sZQorCisgIEl0IG1heSBiZSBPSyBub3QgdG8gdXNlIHRoZSBzZXJpYWwgY29uc29sZSBvcHRpb24gaWYgdGhlIHVzZXIgcGFzc2VzCisgIHRoZSBjb25zb2xlIGRldmljZSBuYW1lIHRvIHRoZSBrZXJuZWwuICBUaGlzIGRlc2VydmVzIHNvbWUgZXhwbG9yYXRpb24uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9MUEQ3QTQwWCBiL0RvY3VtZW50YXRpb24vYXJtL1NoYXJwLUxIL0xQRDdBNDBYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjMjlhMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9MUEQ3QTQwWApAQCAtMCwwICsxLDE2IEBACitSRUFETUUgb24gSW1wbGVtZW50aW5nIExpbnV4IGZvciB0aGUgTG9naWMgUEQgTFBEN0E0MFgtMTAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIENQTEQgbWVtb3J5IG1hcHBpbmcKKworICBUaGUgYm9hcmQgZGVzaWduZXJzIGNob3NlIHRvIHVzZSBoaWdoIGFkZHJlc3MgbGluZXMgZm9yIGNvbnRyb2xsaW5nCisgIGFjY2VzcyB0byB0aGUgQ1BMRCByZWdpc3RlcnMuICBJdCB0dXJucyBvdXQgdG8gYmUgYSBiaWcgd2FzdGUKKyAgYmVjYXVzZSB3ZSdyZSB1c2luZyBhbiBNTVUgYW5kIG11c3QgbWFwIElPIHNwYWNlIGludG8gdmlydHVhbAorICBtZW1vcnkuICBUaGUgcmVzdWx0IGlzIHRoYXQgd2UgaGF2ZSB0byBtYWtlIGEgbWFwcGluZyBmb3IgZXZlcnkKKyAgcmVnaXN0ZXIuCisKKy0gU2VyaWFsIENvbnNvbGUKKworICBJdCBtYXkgYmUgT0sgbm90IHRvIHVzZSB0aGUgc2VyaWFsIGNvbnNvbGUgb3B0aW9uIGlmIHRoZSB1c2VyIHBhc3NlcworICB0aGUgY29uc29sZSBkZXZpY2UgbmFtZSB0byB0aGUga2VybmVsLiAgVGhpcyBkZXNlcnZlcyBzb21lIGV4cGxvcmF0aW9uLgorCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9TRFJBTSBiL0RvY3VtZW50YXRpb24vYXJtL1NoYXJwLUxIL1NEUkFNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzZGRjMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9TRFJBTQpAQCAtMCwwICsxLDUxIEBACitSRUFETUUgb24gdGhlIFNEUkFNIENvbnRyb2xsZXIgZm9yIHRoZSBMSDdhNDBYCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZSBzdGFuZGFyZCBjb25maWd1cmF0aW9uIGZvciB0aGUgU0RSQU0gY29udHJvbGxlciBnZW5lcmF0ZXMgYSBzcGFyc2UKK21lbW9yeSBhcnJheS4gIFRoZSBwcmVjaXNlIGxheW91dCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBTRFJBTSBjaGlwcy4gIEEKK2RlZmF1bHQga2VybmVsIGNvbmZpZ3VyYXRpb24gYXNzZW1ibGVzIHRoZSBkaXNjb250aWd1b3VzIG1lbW9yeQorcmVnaW9ucyBpbnRvIHNlcGFyYXRlIG1lbW9yeSBub2RlcyB2aWEgdGhlIE5VTUEgKE5vbi1Vbmlmb3JtIE1lbW9yeQorQXJjaGl0ZWN0dXJlKSBmYWNpbGl0aWVzLiAgSW4gdGhpcyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24sIHRoZSBrZXJuZWwKK2lzIGZvcmdpdmluZyBhYm91dCB0aGUgcHJlY2lzZSBsYXlvdXQuICBBcyBsb25nIGFzIGl0IGlzIGdpdmVuIGFuCithY2N1cmF0ZSBwaWN0dXJlIG9mIGF2YWlsYWJsZSBtZW1vcnkgYnkgdGhlIGJvb3Rsb2FkZXIgdGhlIGtlcm5lbCB3aWxsCitleGVjdXRlIGNvcnJlY3RseS4KKworVGhlIFNEUkMgc3VwcG9ydHMgYSBtb2RlIHdoZXJlIHNvbWUgb2YgdGhlIGNoaXAgc2VsZWN0IGxpbmVzIGFyZQorc3dhcHBlZCBpbiBvcmRlciB0byBtYWtlIFNEUkFNIGxvb2sgbGlrZSBhIHN5bmNocm9ub3VzIFJPTS4gIFNldHRpbmcKK3RoaXMgYml0IG1lYW5zIHRoYXQgdGhlIFJBTSB3aWxsIHByZXNlbnQgYXMgYSBjb250aWd1b3VzIGFycmF5LiAgU29tZQorcHJvZ3JhbW1lcnMgcHJlZmVyIHRoaXMgdG8gdGhlIGRpc2NvbnRpZ3VvdXMgbGF5b3V0LiAgQmUgYXdhcmUgdGhhdAorbWF5IGJlIGEgcGVuYWx0eSBmb3IgdGhpcyBmZWF0dXJlIHdoZXJlIHNvbWUgc29tZSBjb25maWd1cmF0aW9ucyBvZgorbWVtb3J5IGFyZSBzaWduaWZpY2FudGx5IHJlZHVjZWQ7IGkuZS4gNjRNaUIgb2YgUkFNIGFwcGVhcnMgYXMgb25seSAzMgorTWlCLgorCitUaGVyZSBhcmUgYSBjb3VwbGUgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0CitiZWhhdmlvci4gIFdoZW4gdGhlIFNST01MTCBiaXQgaXMgc2V0IGFuZCBtZW1vcnkgYXBwZWFycyBhcyBhCitjb250aWd1b3VzIGFycmF5LCB0aGVyZSBpcyBubyByZWFzb24gdG8gc3VwcG9ydCBOVU1BLgorQ09ORklHX0xIN0E0MFhfQ09OVElHTUVNIGRpc2FibGVzIE5VTUEgc3VwcG9ydC4gIFdoZW4gcGh5c2ljYWwgbWVtb3J5CitpcyBkaXNjb250aWd1b3VzLCB0aGUgbWVtb3J5IHRhYmxlcyBhcmUgb3JnYW5pemVkIHN1Y2ggdGhhdCB0aGVyZSBhcmUKK3R3byBiYW5rcyBwZXIgbm9kZXMgd2l0aCBhIHNtYWxsIGdhcCBiZXR3ZWVuIHRoZW0uICBUaGlzIGxheW91dCB3YXN0ZXMKK3NvbWUga2VybmVsIG1lbW9yeSBmb3IgcGFnZSB0YWJsZXMgcmVwcmVzZW50aW5nIG5vbi1leGlzdGVudCBtZW1vcnkuCitDT05GSUdfTEg3QTQwWF9PTkVfQkFOS19QRVJfTk9ERSBvcHRpbWl6ZXMgdGhlIG5vZGUgdGFibGVzIHN1Y2ggdGhhdAordGhlcmUgYXJlIG5vIGdhcHMuICBUaGVzZSBvcHRpb25zIGNvbnRyb2wgdGhlIGxvdyBsZXZlbCBvcmdhbml6YXRpb24KK29mIHRoZSBtZW1vcnkgbWFuYWdlbWVudCB0YWJsZXMgaW4gd2F5cyB0aGF0IG1heSBwcmV2ZW50IHRoZSBrZXJuZWwKK2Zyb20gYm9vdGluZyBvciBtYXkgY2F1c2UgdGhlIGtlcm5lbCB0byBhbGxvY2F0ZWQgZXhjZXNzaXZlbHkgbGFyZ2UKK3BhZ2UgdGFibGVzLiAgQmUgd2FybmVkLiAgT25seSBjaGFuZ2UgdGhlc2Ugb3B0aW9ucyBpZiB5b3Uga25vdyB3aGF0Cit5b3UgYXJlIGRvaW5nLiAgVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgYSByZWFzb25hYmxlIGNvbXByb21pc2UgdGhhdAord2lsbCBzdWl0IGFsbCB1c2Vycy4KKworLS0KKworQSB0eXBpY2FsIDMyTWlCIHN5c3RlbSB3aXRoIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB3aWxsCitmaW5kIHBoeXNpY2FsIG1lbW9yeSBtYW5hZ2VkIGFzIGZvbGxvd3MuCisKKyAgIG5vZGUgMDogMHhjMDAwMDAwMCA0TWlCCisgICAgICAgICAgIDB4YzEwMDAwMDAgNE1pQgorICAgbm9kZSAxOiAweGM0MDAwMDAwIDRNaUIKKyAgICAgICAgICAgMHhjNTAwMDAwMCA0TWlCCisgICBub2RlIDI6IDB4YzgwMDAwMDAgNE1pQgorICAgICAgICAgICAweGM5MDAwMDAwIDRNaUIKKyAgIG5vZGUgMzogMHhjYzAwMDAwMCA0TWlCCisgICAgICAgICAgIDB4Y2QwMDAwMDAgNE1pQgorCitTZXR0aW5nIENPTkZJR19MSDdBNDBYX09ORV9CQU5LX1BFUl9OT0RFIHdpbGwgcHV0IGVhY2ggYmFuayBpbnRvIGEKK3NlcGFyYXRlIG5vZGUuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9WZWN0b3JlZEludGVycnVwdENvbnRyb2xsZXIgYi9Eb2N1bWVudGF0aW9uL2FybS9TaGFycC1MSC9WZWN0b3JlZEludGVycnVwdENvbnRyb2xsZXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjMwNDdlOQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL1NoYXJwLUxIL1ZlY3RvcmVkSW50ZXJydXB0Q29udHJvbGxlcgpAQCAtMCwwICsxLDgwIEBACitSRUFETUUgb24gdGhlIFZlY3RvcmVkIEludGVycnVwdCBDb250cm9sbGVyIG9mIHRoZSBMSDdBNDA0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZSA0MDQgcmV2aXNpb24gb2YgdGhlIExIN0E0MFggc2VyaWVzIGNvbWVzIHdpdGggdHdvIHZlY3RvcmVkCitpbnRlcnJ1cHRzIGNvbnRyb2xsZXJzLiAgV2hpbGUgdGhlIGtlcm5lbCBkb2VzIHVzZSBzb21lIG9mIHRoZQorZmVhdHVyZXMgb2YgdGhlc2UgZGV2aWNlcywgaXQgaXMgZmFyIGZyb20gdGhlIHB1cnBvc2UgZm9yIHdoaWNoIHRoZXkKK3dlcmUgZGVzaWduZWQuCisKK1doZW4gdGhpcyBSRUFETUUgd2FzIHdyaXR0ZW4sIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVklDcyB3YXMgaW4KK2ZsdXguICBJdCBpcyBwb3NzaWJsZSB0aGF0IHNvbWUgZGV0YWlscywgZXNwZWNpYWxseSB3aXRoIHByaW9yaXRpZXMsCit3aWxsIGNoYW5nZS4KKworVGhlIFZJQyBzdXBwb3J0IGNvZGUgaXMgaW5zcGlyZWQgYnkgcm91dGluZXMgd3JpdHRlbiBieSBTaGFycC4KKworCitQcmlvcml0eSBDb250cm9sCistLS0tLS0tLS0tLS0tLS0tCisKK1RoZSBzaWduaWZpY2FudCByZWFzb24gZm9yIHVzaW5nIHRoZSBWSUMncyB2ZWN0b3JpbmcgaXMgdG8gY29udHJvbAoraW50ZXJydXB0IHByaW9yaXRpZXMuICBUaGVyZSBhcmUgdHdvIHRhYmxlcyBpbgorYXJjaC9hcm0vbWFjaC1saDdhNDB4L2lycS1saDdhNDA0LmMgdGhhdCBsb29rIHNvbWV0aGluZyBsaWtlIHRoaXMuCisKKyAgc3RhdGljIHVuc2lnbmVkIGNoYXIgaXJxX3ByaV92aWMxW10gPSB7IElSUV9HUElPM0lOVFIsIH07CisgIHN0YXRpYyB1bnNpZ25lZCBjaGFyIGlycV9wcmlfdmljMltdID0geworCUlSUV9UM1VJLCBJUlFfR1BJTzdJTlRSLAorCUlSUV9VQVJUMUlOVFIsIElSUV9VQVJUMklOVFIsIElSUV9VQVJUM0lOVFIsIH07CisKK1RoZSBpbml0aWFsaXphdGlvbiBjb2RlIHJlYWRzIHRoZXNlIHRhYmxlcyBhbmQgaW5zZXJ0cyBhIHZlY3RvcgorYWRkcmVzcyBhbmQgZW5hYmxlIGZvciBlYWNoIGluZGljYXRlZCBJUlEuICBWZWN0b3JlZCBpbnRlcnJ1cHRzIGhhdmUKK2hpZ2hlciBwcmlvcml0eSB0aGFuIG5vbi12ZWN0b3JlZCBpbnRlcnJ1cHRzLiAgU28sIG9uIFZJQzEsCitJUlFfR1BJTzNJTlRSIHdpbGwgYmUgc2VydmVkIGJlZm9yZSBhbnkgb3RoZXIgbm9uLUZJUSBpbnRlcnJ1cHQuICBEdWUKK3RvIHRoZSB3YXkgdGhhdCB0aGUgdmVjdG9yaW5nIHdvcmtzLCBJUlFfVDNVSSBpcyB0aGUgbmV4dCBoaWdoZXN0Citwcmlvcml0eSBmb2xsb3dlZCBieSB0aGUgb3RoZXIgdmVjdG9yZWQgaW50ZXJydXB0cyBvbiBWSUMyLiAgQWZ0ZXIKK3RoYXQsIHRoZSBub24tdmVjdG9yZWQgaW50ZXJydXB0cyBhcmUgc2Nhbm5lZCBpbiBWSUMxIHRoZW4gaW4gVklDMi4KKworCitJU1IKKy0tLQorCitUaGUgaW50ZXJydXB0IHNlcnZpY2Ugcm91dGluZSBtYWNybyBnZXRfaXJxbnIoKSBpbgorYXJjaC9hcm0va2VybmVsL2VudHJ5LWFybXYuUyBzY2FucyB0aGUgVklDcyBmb3IgdGhlIG5leHQgYWN0aXZlCitpbnRlcnJ1cHQuICBUaGUgdmVjdG9yaW5nIG1ha2VzIHRoaXMgY29kZSBzb21ld2hhdCBsYXJnZXIgdGhhbiBpdCB3YXMKK2JlZm9yZSB1c2luZyB2ZWN0b3JpbmcgKHJlZmVyIHRvIHRoZSBMSDdBNDAwIGltcGxlbWVudGF0aW9uKS4gIEluIHRoZQorY2FzZSB3aGVyZSBhbiBpbnRlcnJ1cHQgaXMgdmVjdG9yZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiB3aWxsIHRlbmQgdG8KK2JlIGZhc3RlciB0aGFuIHRoZSBub24tdmVjdG9yZWQgdmVyc2lvbi4gIEhvd2V2ZXIsIHRoZSB3b3JzdC1jYXNlIHBhdGgKK2lzIGxvbmdlci4KKworSXQgaXMgd29ydGggbm90aW5nIHRoYXQgYXQgcHJlc2VudCwgdGhlcmUgaXMgbm8gbmVlZCB0byByZWFkCitWSUMyX1ZFQ1RBRERSIGJlY2F1c2UgdGhlIHJlZ2lzdGVyIGFwcGVhcnMgdG8gYmUgc2hhcmVkIGJldHdlZW4gdGhlCitjb250cm9sbGVycy4gIFRoZSBjb2RlIGlzIHdyaXR0ZW4gc3VjaCB0aGF0IGlmIHRoaXMgY2hhbmdlcywgaXQgb3VnaHQKK3RvIHN0aWxsIHdvcmsgcHJvcGVybHkuCisKKworVmVjdG9yIEFkZHJlc3NlcworLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgcHJvcGVyIHVzZSBvZiB0aGUgdmVjdG9yaW5nIGhhcmR3YXJlIHdvdWxkIGp1bXAgdG8gdGhlIElTUgorc3BlY2lmaWVkIGJ5IHRoZSB2ZWN0b3JpbmcgYWRkcmVzcy4gIExpbnV4IGlzbid0IHN0cnVjdHVyZWQgdG8gdGFrZQorYWR2YW50YWdlIG9mIHRoaXMgZmVhdHVyZSwgdGhvdWdoIGl0IG1pZ2h0IGJlIHBvc3NpYmxlIHRvIGNoYW5nZQordGhpbmdzIHRvIHN1cHBvcnQgaXQuCisKK0luIHRoaXMgaW1wbGVtZW50YXRpb24sIHRoZSB2ZWN0b3JpbmcgYWRkcmVzcyBpcyB1c2VkIHRvIHNwZWVkIHRoZQorc2VhcmNoIGZvciB0aGUgYWN0aXZlIElSUS4gIFRoZSBhZGRyZXNzIGlzIGNvZGVkIHN1Y2ggdGhhdCB0aGUgbG93ZXN0Cis2IGJpdHMgc3RvcmUgdGhlIElSUSBudW1iZXIgZm9yIHZlY3RvcmVkIGludGVycnVwdHMuICBUaGVzZSBudW1iZXJzCitjb3JyZXNwb25kIHRvIHRoZSBiaXRzIGluIHRoZSBpbnRlcnJ1cHQgc3RhdHVzIHJlZ2lzdGVycy4gIElSUSB6ZXJvIGlzCit0aGUgbG93ZXN0IGludGVycnVwdCBiaXQgaW4gVklDMS4gIElSUSAzMiBpcyB0aGUgbG93ZXN0IGludGVycnVwdCBiaXQKK2luIFZJQzIuICBCZWNhdXNlIHplcm8gaXMgYSB2YWxpZCBJUlEgbnVtYmVyIGFuZCBiZWNhdXNlIHdlIGNhbm5vdAorZGV0ZWN0IHdoZXRoZXIgb3Igbm90IHRoZXJlIGlzIGEgdmFsaWQgdmVjdG9yaW5nIGFkZHJlc3MgaWYgdGhhdAorYWRkcmVzcyBpcyB6ZXJvLCB0aGUgZWlndGggYml0ICgweDEwMCkgaXMgc2V0IGZvciB2ZWN0b3JlZCBpbnRlcnJ1cHRzLgorVGhlIGFkZHJlc3MgZm9yIElSUSAweDE4IChWSUMyKSBpcyAweDExOC4gIE9ubHkgdGhlIG5pbnRoIGJpdCBpcyBzZXQKK2ZvciB0aGUgZGVmYXVsdCBoYW5kbGVyIG9uIFZJQzEgYW5kIG9ubHkgdGhlIHRlbnRoIGJpdCBpcyBzZXQgZm9yIHRoZQorZGVmYXVsdCBoYW5kbGVyIG9uIFZJQzIuCisKK0luIG90aGVyIHdvcmRzLgorCisgIDB4MDAwCQktIG5vIGFjdGl2ZSBpbnRlcnJ1cHQKKyAgMHgxaWkJCS0gdmVjdG9yZWQgaW50ZXJydXB0IDB4aWkKKyAgMHgyeHgJCS0gdW52ZWN0b3JlZCBpbnRlcnJ1cHQgb24gVklDMSAoeHggaXMgZG9uJ3QgY2FyZSkKKyAgMHg0eHgJCS0gdW52ZWN0b3JlZCBpbnRlcnJ1cHQgb24gVklDMiAoeHggaXMgZG9uJ3QgY2FyZSkKKwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vVkZQL3JlbGVhc2Utbm90ZXMudHh0IGIvRG9jdW1lbnRhdGlvbi9hcm0vVkZQL3JlbGVhc2Utbm90ZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyOGUwMjIKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9WRlAvcmVsZWFzZS1ub3Rlcy50eHQKQEAgLTAsMCArMSw1NSBAQAorUmVsZWFzZSBub3RlcyBmb3IgTGludXggS2VybmVsIFZGUCBzdXBwb3J0IGNvZGUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RhdGU6IAkyMCBNYXkgMjAwNAorQXV0aG9yOglSdXNzZWxsIEtpbmcKKworVGhpcyBpcyB0aGUgZmlyc3QgcmVsZWFzZSBvZiB0aGUgTGludXggS2VybmVsIFZGUCBzdXBwb3J0IGNvZGUuICBJdAorcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlIGV4Y2VwdGlvbnMgYm91bmNlZCBmcm9tIFZGUCBoYXJkd2FyZSBmb3VuZAorb24gQVJNOTI2RUotUy4KKworVGhpcyByZWxlYXNlIGhhcyBiZWVuIHZhbGlkYXRlZCBhZ2FpbnN0IHRoZSBTb2Z0RmxvYXQtMmIgbGlicmFyeSBieQorSm9obiBSLiBIYXVzZXIgdXNpbmcgdGhlIFRlc3RGbG9hdC0yYSB0ZXN0IHN1aXRlLiAgRGV0YWlscyBvZiB0aGlzCitsaWJyYXJ5IGFuZCB0ZXN0IHN1aXRlIGNhbiBiZSBmb3VuZCBhdDoKKworICAgaHR0cDovL3d3dy5jcy5iZXJrZWxleS5lZHUvfmpoYXVzZXIvYXJpdGhtZXRpYy9Tb2Z0RmxvYXQuaHRtbAorCitUaGUgb3BlcmF0aW9ucyB3aGljaCBoYXZlIGJlZW4gdGVzdGVkIHdpdGggdGhpcyBwYWNrYWdlIGFyZToKKworIC0gZmRpdgorIC0gZnN1YgorIC0gZmFkZAorIC0gZm11bAorIC0gZmNtcAorIC0gZmNtcGUKKyAtIGZjdnRkCisgLSBmY3Z0cworIC0gZnNpdG8KKyAtIGZ0b3NpCisgLSBmc3FydAorCitBbGwgdGhlIGFib3ZlIHBhc3Mgc29mdGZsb2F0IHRlc3RzIHdpdGggdGhlIGZvbGxvd2luZyBleGNlcHRpb25zOgorCistIGZhZGQvZnN1YiBzaG93cyBzb21lIGRpZmZlcmVuY2VzIGluIHRoZSBoYW5kbGluZyBvZiArMCAvIC0wIHJlc3VsdHMKKyAgd2hlbiBpbnB1dCBvcGVyYW5kcyBkaWZmZXIgaW4gc2lnbnMuCistIHRoZSBoYW5kbGluZyBvZiB1bmRlcmZsb3cgZXhjZXB0aW9ucyBpcyBzbGlnaHRseSBkaWZmZXJlbnQuICBJZiBhCisgIHJlc3VsdCB1bmRlcmZsb3dzIGJlZm9yZSByb3VuZGluZywgYnV0IGJlY29tZXMgYSBub3JtYWxpc2VkIG51bWJlcgorICBhZnRlciByb3VuZGluZywgd2UgZG8gbm90IHNpZ25hbCBhbiB1bmRlcmZsb3cgZXhjZXB0aW9uLgorCitPdGhlciBvcGVyYXRpb25zIHdoaWNoIGhhdmUgYmVlbiB0ZXN0ZWQgYnkgYmFzaWMgYXNzZW1ibHktb25seSB0ZXN0cworYXJlOgorCisgLSBmY3B5CisgLSBmYWJzCisgLSBmbmVnCisgLSBmdG91aQorIC0gZnRvc2l6CisgLSBmdG91aXoKKworVGhlIGNvbWJpbmF0aW9uIG9wZXJhdGlvbnMgaGF2ZSBub3QgYmVlbiB0ZXN0ZWQ6CisKKyAtIGZtYWMKKyAtIGZubWFjCisgLSBmbXNjCisgLSBmbm1zYworIC0gZm5tdWwKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL2VtcGVnL1JFQURNRSBiL0RvY3VtZW50YXRpb24vYXJtL2VtcGVnL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWNjOGQwCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vZW1wZWcvUkVBRE1FCkBAIC0wLDAgKzEsMTMgQEAKK0VtcGVnLCBMdGQncyBFbXBlZyBNUDMgQ2FyIEF1ZGlvIFBsYXllcgorCitUaGUgaW5pdGlhbCBkZXNpZ24gaXMgdG8gZ28gaW4geW91ciBjYXIsIGJ1dCB5b3UgY2FuIHVzZSBpdCBhdCBob21lLCBvbiBhCitib2F0Li4uIGFsbW9zdCBhbnl3aGVyZS4gVGhlIHByaW5jaXBsZSBpcyB0byBzdG9yZSBDRC1xdWFsaXR5IG11c2ljIHVzaW5nCitNUEVHIHRlY2hub2xvZ3kgb250byBhIGhhcmQgZGlzayBpbiB0aGUgdW5pdCwgYW5kIHVzZSB0aGUgcG93ZXIgb2YgdGhlCitlbWJlZGRlZCBjb21wdXRlciB0byBzZXJ2ZSB1cCB0aGUgbXVzaWMgeW91IHdhbnQuCisKK0ZvciBtb3JlIGRldGFpbHMsIHNlZToKKworCWh0dHA6Ly93d3cuZW1wZWcuY29tCisKKworCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9lbXBlZy9pci50eHQgYi9Eb2N1bWVudGF0aW9uL2FybS9lbXBlZy9pci50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTBhMjk3NAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL2VtcGVnL2lyLnR4dApAQCAtMCwwICsxLDQ5IEBACitJbmZyYS1yZWQgZHJpdmVyIGRvY3VtZW50YXRpb24uCisKK01pa2UgQ3Jvd2UgPG1hY0BlbXBlZy5jb20+CisoQykgRW1wZWcgTHRkIDE5OTkKKworTm90IGEgbG90IGhlcmUgeWV0IDotKQorCitUaGUgS2Vud29vZCBLQ0EtUjZBIHJlbW90ZSBjb250cm9sIGdlbmVyYXRlcyBhIHNlcXVlbmNlIGxpa2UgdGhlIGZvbGxvd2luZzoKKworR28gbG93IGZvciBhcHByb3ggMTZUIChBcm91bmQgOTAwMHVzKQorR28gaGlnaCBmb3IgYXBwcm94IDhUIChBcm91bmQgNDAwMHVzKQorR28gbG93IGZvciBsZXNzIHRoYW4gMlQgKEFyb3VuZCA3NTB1cykKKworRm9yIGVhY2ggb2YgdGhlIDMyIGJpdHMKKyAgR28gaGlnaCBmb3IgbW9yZSB0aGFuIDJUIChBcm91bmQgMTUwMHVzKSA9PSAxCisgIEdvIGhpZ2ggZm9yIGxlc3MgdGhhbiBUIChBcm91bmQgNDAwdXMpID09IDAKKyAgR28gbG93IGZvciBsZXNzIHRoYW4gMlQgKEFyb3VuZCA3NTB1cykKKworUmF0aGVyIHRoYW4gcmVwZWF0IGEgc2lnbmFsIHdoZW4gdGhlIGJ1dHRvbiBpcyBoZWxkIGRvd24gY2VydGFpbiBidXR0b25zCitnZW5lcmF0ZSB0aGUgZm9sbG93aW5nIGNvZGUgdG8gaW5kaWNhdGUgcmVwZXRpdGlvbi4KKworR28gbG93IGZvciBhcHByb3ggMTZUCitHbyBoaWdoIGZvciBhcHByb3ggNFQKK0dvIGxvdyBmb3IgbGVzcyB0aGFuIDJUCisKKyhCeSByZW1vdmluZyB0aGUgPDJUIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBzZXF1ZW5jZSBhbmQgcGxhY2luZyBhdCB0aGUgZW5kCisgaXQgY2FuIGJlIGNvbnNpZGVyZWQgYSBzdG9wIGJpdCBidXQgSSBmb3VuZCBpdCBlYXNpZXIgdG8gZGVhbCB3aXRoIGl0IGF0CisgdGhlIHN0YXJ0KS4KKworVGhlIDMyIGJpdHMgYXJlIGVuY29kZWQgYXMgWHhZeSB3aGVyZSB4IGFuZCB5IGFyZSB0aGUgYWN0dWFsIGRhdGEgdmFsdWVzCit3aGlsZSBYIGFuZCBZIGFyZSB0aGUgbG9naWNhbCBpbnZlcnNlcyBvZiB0aGUgYXNzb2NpYXRlZCBkYXRhIHZhbHVlcy4gVXNpbmcgCitMU0IgZmlyc3QgeWllbGRzIHNlbnNpYmxlIGNvZGVzIGZvciB0aGUgbnVtYmVycy4KKworQWxsIGNvZGVzIGFyZSBvZiB0aGUgZm9ybSBiOXh4CisKK1RoZSBudW1lcmljIGtleXMgZ2VuZXJhdGUgdGhlIGNvZGUgMHggd2hlcmUgeCBpcyB0aGUgbnVtYmVyIHByZXNzZWQuCisKK1R1bmVyCQkxYworVGFwZQkJMWQKK0NECQkxZQorQ0QtTUQtQ0gJMWYKK1RyYWNrLQkJMGEKK1RyYWNrKwkJMGIKK1Jld2luZAkJMGMKK0ZGCQkwZAorRE5QUAkJNWUKK1BsYXkvUGF1c2UJMGUKK1ZvbCsJCTE0CitWb2wtCQkxNQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vZW1wZWcvbWtkZXZzIGIvRG9jdW1lbnRhdGlvbi9hcm0vZW1wZWcvbWtkZXZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhODVlMjgKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9lbXBlZy9ta2RldnMKQEAgLTAsMCArMSwxMSBAQAorIyEvYmluL3NoCitta25vZCAvZGV2L2Rpc3BsYXkgYyAyNDQgMAorbWtub2QgL2Rldi9pciBjIDI0MiAwCitta25vZCAvZGV2L3VzYjAgYyAyNDMgMAorbWtub2QgL2Rldi9hdWRpbyBjIDI0NSA0Citta25vZCAvZGV2L2RzcCBjIDI0NSAzCitta25vZCAvZGV2L21peGVyIGMgMjQ1IDAKK21rbm9kIC9kZXYvZW1wZWdfc3RhdGUgYyAyNDYgMAorbWtub2QgL2Rldi9yYWRpbzAgYyA4MSA2NAorbG4gLXNmIHJhZGlvMCByYWRpbworbG4gLXNmIHVzYjAgdXNiCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9tZW1fYWxpZ25tZW50IGIvRG9jdW1lbnRhdGlvbi9hcm0vbWVtX2FsaWdubWVudApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTQ1Y2NjCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vbWVtX2FsaWdubWVudApAQCAtMCwwICsxLDU4IEBACitUb28gbWFueSBwcm9ibGVtcyBwb3BlZCB1cCBiZWNhdXNlIG9mIHVubm90aWNlZCBtaXNhbGlnbmVkIG1lbW9yeSBhY2Nlc3MgaW4KK2tlcm5lbCBjb2RlIGxhdGVseS4gIFRoZXJlZm9yZSB0aGUgYWxpZ25tZW50IGZpeHVwIGlzIG5vdyB1bmNvbmRpdGlvbmFsbHkKK2NvbmZpZ3VyZWQgaW4gZm9yIFNBMTF4MCBiYXNlZCB0YXJnZXRzLiAgQWNjb3JkaW5nIHRvIEFsYW4gQ294LCB0aGlzIGlzIGEKK2JhZCBpZGVhIHRvIGNvbmZpZ3VyZSBpdCBvdXQsIGJ1dCBSdXNzZWxsIEtpbmcgaGFzIHNvbWUgZ29vZCByZWFzb25zIGZvcgorZG9pbmcgc28gb24gc29tZSBmKioqZWQgdXAgQVJNIGFyY2hpdGVjdHVyZXMgbGlrZSB0aGUgRUJTQTExMC4gIEhvd2V2ZXIKK3RoaXMgaXMgbm90IHRoZSBjYXNlIG9uIG1hbnkgZGVzaWduIEknbSBhd2FyZSBvZiwgbGlrZSBhbGwgU0ExMXgwIGJhc2VkCitvbmVzLgorCitPZiBjb3Vyc2UgdGhpcyBpcyBhIGJhZCBpZGVhIHRvIHJlbHkgb24gdGhlIGFsaWdubWVudCB0cmFwIHRvIHBlcmZvcm0KK3VuYWxpZ25lZCBtZW1vcnkgYWNjZXNzIGluIGdlbmVyYWwuICBJZiB0aG9zZSBhY2Nlc3MgYXJlIHByZWRpY3RhYmxlLCB5b3UKK2FyZSBiZXR0ZXIgdG8gdXNlIHRoZSBtYWNyb3MgcHJvdmlkZWQgYnkgaW5jbHVkZS9hc20vdW5hbGlnbmVkLmguICBUaGUKK2FsaWdubWVudCB0cmFwIGNhbiBmaXh1cCBtaXNhbGlnbmVkIGFjY2VzcyBmb3IgdGhlIGV4Y2VwdGlvbiBjYXNlcywgYnV0IGF0CithIGhpZ2ggcGVyZm9ybWFuY2UgY29zdC4gIEl0IGJldHRlciBiZSByYXJlLgorCitOb3cgZm9yIHVzZXIgc3BhY2UgYXBwbGljYXRpb25zLCBpdCBpcyBwb3NzaWJsZSB0byBjb25maWd1cmUgdGhlIGFsaWdubWVudAordHJhcCB0byBTSUdCVVMgYW55IGNvZGUgcGVyZm9ybWluZyB1bmFsaWduZWQgYWNjZXNzIChnb29kIGZvciBkZWJ1Z2dpbmcgYmFkCitjb2RlKSwgb3IgZXZlbiBmaXh1cCB0aGUgYWNjZXNzIGJ5IHNvZnR3YXJlIGxpa2UgZm9yIGtlcm5lbCBjb2RlLiAgVGhlIGxhdGVyCittb2RlIGlzbid0IHJlY29tbWVuZGVkIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIChqdXN0IHRoaW5rIGFib3V0IHRoZQorZmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uIHRoYXQgd29ya3MgYWJvdXQgdGhlIHNhbWUgd2F5KS4gIEZpeCB5b3VyIGNvZGUKK2luc3RlYWQhCisKK1BsZWFzZSBub3RlIHRoYXQgcmFuZG9tbHkgY2hhbmdpbmcgdGhlIGJlaGF2aW91ciB3aXRob3V0IGdvb2QgdGhvdWdodCBpcworcmVhbCBiYWQgLSBpdCBjaGFuZ2VzIHRoZSBiZWhhdmlvdXIgb2YgYWxsIHVuYWxpZ25lZCBpbnN0cnVjdGlvbnMgaW4gdXNlcgorc3BhY2UsIGFuZCBtaWdodCBjYXVzZSBwcm9ncmFtcyB0byBmYWlsIHVuZXhwZWN0ZWRseS4KKworVG8gY2hhbmdlIHRoZSBhbGlnbm1lbnQgdHJhcCBiZWhhdmlvciwgc2ltcGx5IGVjaG8gYSBudW1iZXIgaW50bworL3Byb2Mvc3lzL2RlYnVnL2FsaWdubWVudC4gIFRoZSBudW1iZXIgaXMgbWFkZSB1cCBmcm9tIHZhcmlvdXMgYml0czoKKworYml0CQliZWhhdmlvciB3aGVuIHNldAorLS0tCQktLS0tLS0tLS0tLS0tLS0tLQorCiswCQlBIHVzZXIgcHJvY2VzcyBwZXJmb3JtaW5nIGFuIHVuYWxpZ25lZCBtZW1vcnkgYWNjZXNzCisJCXdpbGwgY2F1c2UgdGhlIGtlcm5lbCB0byBwcmludCBhIG1lc3NhZ2UgaW5kaWNhdGluZworCQlwcm9jZXNzIG5hbWUsIHBpZCwgcGMsIGluc3RydWN0aW9uLCBhZGRyZXNzLCBhbmQgdGhlCisJCWZhdWx0IGNvZGUuCisKKzEJCVRoZSBrZXJuZWwgd2lsbCBhdHRlbXB0IHRvIGZpeCB1cCB0aGUgdXNlciBwcm9jZXNzCisJCXBlcmZvcm1pbmcgdGhlIHVuYWxpZ25lZCBhY2Nlc3MuICBUaGlzIGlzIG9mIGNvdXJzZQorCQlzbG93ICh0aGluayBhYm91dCB0aGUgZmxvYXRpbmcgcG9pbnQgZW11bGF0b3IpIGFuZAorCQlub3QgcmVjb21tZW5kZWQgZm9yIHByb2R1Y3Rpb24gdXNlLgorCisyCQlUaGUga2VybmVsIHdpbGwgc2VuZCBhIFNJR0JVUyBzaWduYWwgdG8gdGhlIHVzZXIgcHJvY2VzcworCQlwZXJmb3JtaW5nIHRoZSB1bmFsaWduZWQgYWNjZXNzLgorCitOb3RlIHRoYXQgbm90IGFsbCBjb21iaW5hdGlvbnMgYXJlIHN1cHBvcnRlZCAtIG9ubHkgdmFsdWVzIDAgdGhyb3VnaCA1LgorKDYgYW5kIDcgZG9uJ3QgbWFrZSBzZW5zZSkuCisKK0ZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIHdpbGwgdHVybiBvbiB0aGUgd2FybmluZ3MsIGJ1dCB3aXRob3V0CitmaXhpbmcgdXAgb3Igc2VuZGluZyBTSUdCVVMgc2lnbmFsczoKKworCWVjaG8gMSA+IC9wcm9jL3N5cy9kZWJ1Zy9hbGlnbm1lbnQKKworWW91IGNhbiBhbHNvIHJlYWQgdGhlIGNvbnRlbnQgb2YgdGhlIHNhbWUgZmlsZSB0byBnZXQgc3RhdGlzdGljYWwKK2luZm9ybWF0aW9uIG9uIHVuYWxpZ25lZCBhY2Nlc3Mgb2NjdXJyZW5jZXMgcGx1cyB0aGUgY3VycmVudCBtb2RlIG9mCitvcGVyYXRpb24gZm9yIHVzZXIgc3BhY2UgY29kZS4KKworCitOaWNvbGFzIFBpdHJlLCBNYXIgMTMsIDIwMDEuICBNb2RpZmllZCBSdXNzZWxsIEtpbmcsIE5vdiAzMCwgMjAwMS4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL21lbW9yeS50eHQgYi9Eb2N1bWVudGF0aW9uL2FybS9tZW1vcnkudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiMWM5M2EKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2FybS9tZW1vcnkudHh0CkBAIC0wLDAgKzEsNzIgQEAKKwkJS2VybmVsIE1lbW9yeSBMYXlvdXQgb24gQVJNIExpbnV4CisKKwkJUnVzc2VsbCBLaW5nIDxybWtAYXJtLmxpbnV4Lm9yZy51az4KKwkJCU1heSAyMSwgMjAwNCAoMi42LjYpCisKK1RoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIHRoZSB2aXJ0dWFsIG1lbW9yeSBsYXlvdXQgd2hpY2ggdGhlIExpbnV4CitrZXJuZWwgdXNlcyBmb3IgQVJNIHByb2Nlc3NvcnMuICBJdCBpbmRpY2F0ZXMgd2hpY2ggcmVnaW9ucyBhcmUKK2ZyZWUgZm9yIHBsYXRmb3JtcyB0byB1c2UsIGFuZCB3aGljaCBhcmUgdXNlZCBieSBnZW5lcmljIGNvZGUuCisKK1RoZSBBUk0gQ1BVIGlzIGNhcGFibGUgb2YgYWRkcmVzc2luZyBhIG1heGltdW0gb2YgNEdCIHZpcnR1YWwgbWVtb3J5CitzcGFjZSwgYW5kIHRoaXMgbXVzdCBiZSBzaGFyZWQgYmV0d2VlbiB1c2VyIHNwYWNlIHByb2Nlc3NlcywgdGhlCitrZXJuZWwsIGFuZCBoYXJkd2FyZSBkZXZpY2VzLgorCitBcyB0aGUgQVJNIGFyY2hpdGVjdHVyZSBtYXR1cmVzLCBpdCBiZWNvbWVzIG5lY2Vzc2FyeSB0byByZXNlcnZlCitjZXJ0YWluIHJlZ2lvbnMgb2YgVk0gc3BhY2UgZm9yIHVzZSBmb3IgbmV3IGZhY2lsaXRpZXM7IHRoZXJlZm9yZQordGhpcyBkb2N1bWVudCBtYXkgcmVzZXJ2ZSBtb3JlIFZNIHNwYWNlIG92ZXIgdGltZS4KKworU3RhcnQJCUVuZAkJVXNlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZmZmZjgwMDAJZmZmZmZmZmYJY29weV91c2VyX3BhZ2UgLyBjbGVhcl91c2VyX3BhZ2UgdXNlLgorCQkJCUZvciBTQTExeHggYW5kIFhzY2FsZSwgdGhpcyBpcyB1c2VkIHRvCisJCQkJc2V0dXAgYSBtaW5pY2FjaGUgbWFwcGluZy4KKworZmZmZjEwMDAJZmZmZjdmZmYJUmVzZXJ2ZWQuCisJCQkJUGxhdGZvcm1zIG11c3Qgbm90IHVzZSB0aGlzIGFkZHJlc3MgcmFuZ2UuCisKK2ZmZmYwMDAwCWZmZmYwZmZmCUNQVSB2ZWN0b3IgcGFnZS4KKwkJCQlUaGUgQ1BVIHZlY3RvcnMgYXJlIG1hcHBlZCBoZXJlIGlmIHRoZQorCQkJCUNQVSBzdXBwb3J0cyB2ZWN0b3IgcmVsb2NhdGlvbiAoY29udHJvbAorCQkJCXJlZ2lzdGVyIFYgYml0LikKKworZmZjMDAwMDAJZmZmZWZmZmYJRE1BIG1lbW9yeSBtYXBwaW5nIHJlZ2lvbi4gIE1lbW9yeSByZXR1cm5lZAorCQkJCWJ5IHRoZSBkbWFfYWxsb2NfeHh4IGZ1bmN0aW9ucyB3aWxsIGJlCisJCQkJZHluYW1pY2FsbHkgbWFwcGVkIGhlcmUuCisKK2ZmMDAwMDAwCWZmYmZmZmZmCVJlc2VydmVkIGZvciBmdXR1cmUgZXhwYW5zaW9uIG9mIERNQQorCQkJCW1hcHBpbmcgcmVnaW9uLgorCitWTUFMTE9DX0VORAlmZWZmZmZmZglGcmVlIGZvciBwbGF0Zm9ybSB1c2UsIHJlY29tbWVuZGVkLgorCitWTUFMTE9DX1NUQVJUCVZNQUxMT0NfRU5ELTEJdm1hbGxvYygpIC8gaW9yZW1hcCgpIHNwYWNlLgorCQkJCU1lbW9yeSByZXR1cm5lZCBieSB2bWFsbG9jL2lvcmVtYXAgd2lsbAorCQkJCWJlIGR5bmFtaWNhbGx5IHBsYWNlZCBpbiB0aGlzIHJlZ2lvbi4KKwkJCQlWTUFMTE9DX1NUQVJUIG1heSBiZSBiYXNlZCB1cG9uIHRoZSB2YWx1ZQorCQkJCW9mIHRoZSBoaWdoX21lbW9yeSB2YXJpYWJsZS4KKworUEFHRV9PRkZTRVQJaGlnaF9tZW1vcnktMQlLZXJuZWwgZGlyZWN0LW1hcHBlZCBSQU0gcmVnaW9uLgorCQkJCVRoaXMgbWFwcyB0aGUgcGxhdGZvcm1zIFJBTSwgYW5kIHR5cGljYWxseQorCQkJCW1hcHMgYWxsIHBsYXRmb3JtIFJBTSBpbiBhIDE6MSByZWxhdGlvbnNoaXAuCisKK1RBU0tfU0laRQlQQUdFX09GRlNFVC0xCUtlcm5lbCBtb2R1bGUgc3BhY2UKKwkJCQlLZXJuZWwgbW9kdWxlcyBpbnNlcnRlZCB2aWEgaW5zbW9kIGFyZQorCQkJCXBsYWNlZCBoZXJlIHVzaW5nIGR5bmFtaWMgbWFwcGluZ3MuCisKKzAwMDAxMDAwCVRBU0tfU0laRS0xCVVzZXIgc3BhY2UgbWFwcGluZ3MKKwkJCQlQZXItdGhyZWFkIG1hcHBpbmdzIGFyZSBwbGFjZWQgaGVyZSB2aWEKKwkJCQl0aGUgbW1hcCgpIHN5c3RlbSBjYWxsLgorCiswMDAwMDAwMAkwMDAwMGZmZglDUFUgdmVjdG9yIHBhZ2UgLyBudWxsIHBvaW50ZXIgdHJhcAorCQkJCUNQVXMgd2hpY2ggZG8gbm90IHN1cHBvcnQgdmVjdG9yIHJlbWFwcGluZworCQkJCXBsYWNlIHRoZWlyIHZlY3RvciBwYWdlIGhlcmUuICBOVUxMIHBvaW50ZXIKKwkJCQlkZXJlZmVyZW5jZXMgYnkgYm90aCB0aGUga2VybmVsIGFuZCB1c2VyCisJCQkJc3BhY2UgYXJlIGFsc28gY2F1Z2h0IHZpYSB0aGlzIG1hcHBpbmcuCisKK1BsZWFzZSBub3RlIHRoYXQgbWFwcGluZ3Mgd2hpY2ggY29sbGlkZSB3aXRoIHRoZSBhYm92ZSBhcmVhcyBtYXkgcmVzdWx0CitpbiBhIG5vbi1ib290YWJsZSBrZXJuZWwsIG9yIG1heSBjYXVzZSB0aGUga2VybmVsIHRvIChldmVudHVhbGx5KSBwYW5pYworYXQgcnVuIHRpbWUuCisKK1NpbmNlIGZ1dHVyZSBDUFVzIG1heSBpbXBhY3QgdGhlIGtlcm5lbCBtYXBwaW5nIGxheW91dCwgdXNlciBwcm9ncmFtcworbXVzdCBub3QgYWNjZXNzIGFueSBtZW1vcnkgd2hpY2ggaXMgbm90IG1hcHBlZCBpbnNpZGUgdGhlaXIgMHgwMDAxMDAwCit0byBUQVNLX1NJWkUgYWRkcmVzcyByYW5nZS4gIElmIHRoZXkgd2lzaCB0byBhY2Nlc3MgdGhlc2UgYXJlYXMsIHRoZXkKK211c3Qgc2V0IHVwIHRoZWlyIG93biBtYXBwaW5ncyB1c2luZyBvcGVuKCkgYW5kIG1tYXAoKS4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL253ZnBlL05PVEVTIGIvRG9jdW1lbnRhdGlvbi9hcm0vbndmcGUvTk9URVMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDA1NzdiNQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL253ZnBlL05PVEVTCkBAIC0wLDAgKzEsMjkgQEAKK1RoZXJlIHNlZW1zIHRvIGJlIGEgcHJvYmxlbSB3aXRoIGV4cChkb3VibGUpIGFuZCBvdXIgZW11bGF0b3IuICBJIGhhdmVuJ3QKK2JlZW4gYWJsZSB0byB0cmFjayBpdCBkb3duIHlldC4gIFRoaXMgZG9lcyBub3Qgb2NjdXIgd2l0aCB0aGUgZW11bGF0b3IKK3N1cHBsaWVkIGJ5IFJ1c3NlbGwgS2luZy4KKworSSBhbHNvIGZvdW5kIG9uZSBvZGRpdHkgaW4gdGhlIGVtdWxhdG9yLiAgSSBkb24ndCB0aGluayBpdCBpcyBzZXJpb3VzIGJ1dAord2lsbCBwb2ludCBpdCBvdXQuICBUaGUgQVJNIGNhbGxpbmcgY29udmVudGlvbnMgcmVxdWlyZSBmbG9hdGluZyBwb2ludAorcmVnaXN0ZXJzIGY0LWY3IHRvIGJlIHByZXNlcnZlZCBvdmVyIGEgZnVuY3Rpb24gY2FsbC4gIFRoZSBjb21waWxlciBxdWl0ZQorb2Z0ZW4gdXNlcyBhbiBzdGZlIGluc3RydWN0aW9uIHRvIHNhdmUgZjQgb24gdGhlIHN0YWNrIHVwb24gZW50cnkgdG8gYQorZnVuY3Rpb24sIGFuZCBhbiBsZGZlIGluc3RydWN0aW9uIHRvIHJlc3RvcmUgaXQgYmVmb3JlIHJldHVybmluZy4KKworSSB3YXMgbG9va2luZyBhdCBzb21lIGNvZGUsIHRoYXQgY2FsY3VsYXRlZCBhIGRvdWJsZSByZXN1bHQsIHN0b3JlZCBpdCBpbiBmNAordGhlbiBtYWRlIGEgZnVuY3Rpb24gY2FsbC4gVXBvbiByZXR1cm4gZnJvbSB0aGUgZnVuY3Rpb24gY2FsbCB0aGUgbnVtYmVyIGluCitmNCBoYWQgYmVlbiBjb252ZXJ0ZWQgdG8gYW4gZXh0ZW5kZWQgdmFsdWUgaW4gdGhlIGVtdWxhdG9yLgorCitUaGlzIGlzIGEgc2lkZSBlZmZlY3Qgb2YgdGhlIHN0ZmUgaW5zdHJ1Y3Rpb24uICBUaGUgZG91YmxlIGluIGY0IGhhZCB0byBiZQorY29udmVydGVkIHRvIGV4dGVuZGVkLCB0aGVuIHN0b3JlZC4gIElmIGFuIGxmbS9zZm0gY29tYmluYXRpb24gaGFkIGJlZW4gdXNlZCwKK3RoZW4gbm8gY29udmVyc2lvbiB3b3VsZCBvY2N1ci4gIFRoaXMgaGFzIHBlcmZvcm1hbmNlIGNvbnNpZGVyYXRpb25zLiAgVGhlCityZXN1bHQgZnJvbSB0aGUgZnVuY3Rpb24gY2FsbCBhbmQgZjQgd2VyZSB1c2VkIGluIGEgbXVsdGlwbGljYXRpb24uICBJZiB0aGUKK2VtdWxhdG9yIHNlZXMgYSBtdWx0aXBseSBvZiBhIGRvdWJsZSBhbmQgZXh0ZW5kZWQsIGl0IHByb21vdGVzIHRoZSBkb3VibGUgdG8KK2V4dGVuZGVkLCB0aGVuIGRvZXMgdGhlIG11bHRpcGx5IGluIGV4dGVuZGVkIHByZWNpc2lvbi4KKworVGhpcyBjb2RlIHdpbGwgY2F1c2UgdGhpcyBwcm9ibGVtOgorCitkb3VibGUgeCwgeSwgejsKK3ogPSBsb2coeCkvbG9nKHkpOworCitUaGUgcmVzdWx0IG9mIGxvZyh4KSAoYSBkb3VibGUpIHdpbGwgYmUgY2FsY3VsYXRlZCwgcmV0dXJuZWQgaW4gZjAsIHRoZW4KK21vdmVkIHRvIGY0IHRvIHByZXNlcnZlIGl0IG92ZXIgdGhlIGxvZyh5KSBjYWxsLiAgVGhlIGRpdmlzaW9uIHdpbGwgYmUgZG9uZQoraW4gZXh0ZW5kZWQgcHJlY2lzaW9uLCBkdWUgdG8gdGhlIHN0ZmUgaW5zdHJ1Y3Rpb24gdXNlZCB0byBzYXZlIGY0IGluIGxvZyh5KS4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXJtL253ZnBlL1JFQURNRSBiL0RvY3VtZW50YXRpb24vYXJtL253ZnBlL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzE4NzFkCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vbndmcGUvUkVBRE1FCkBAIC0wLDAgKzEsNzAgQEAKK1RoaXMgZGlyZWN0b3J5IGNvbnRhaW5zIHRoZSB2ZXJzaW9uIDAuOTIgdGVzdCByZWxlYXNlIG9mIHRoZSBOZXRXaW5kZXIgCitGbG9hdGluZyBQb2ludCBFbXVsYXRvci4KKworVGhlIG1ham9yaXR5IG9mIHRoZSBjb2RlIHdhcyB3cml0dGVuIGJ5IG1lLCBTY290dCBCYW1icm91Z2ggSXQgaXMKK3dyaXR0ZW4gaW4gQywgd2l0aCBhIHNtYWxsIG51bWJlciBvZiByb3V0aW5lcyBpbiBpbmxpbmUgYXNzZW1ibGVyCit3aGVyZSByZXF1aXJlZC4gIEl0IHdhcyB3cml0dGVuIHF1aWNrbHksIHdpdGggYSBnb2FsIG9mIGltcGxlbWVudGluZyBhCit3b3JraW5nIHZlcnNpb24gb2YgYWxsIHRoZSBmbG9hdGluZyBwb2ludCBpbnN0cnVjdGlvbnMgdGhlIGNvbXBpbGVyCitlbWl0cyBhcyB0aGUgZmlyc3QgdGFyZ2V0LiAgSSBoYXZlIGF0dGVtcHRlZCB0byBiZSBhcyBvcHRpbWFsIGFzCitwb3NzaWJsZSwgYnV0IHRoZXJlIHJlbWFpbnMgbXVjaCByb29tIGZvciBpbXByb3ZlbWVudC4KKworSSBoYXZlIGF0dGVtcHRlZCB0byBtYWtlIHRoZSBlbXVsYXRvciBhcyBwb3J0YWJsZSBhcyBwb3NzaWJsZS4gIE9uZSBvZgordGhlIHByb2JsZW1zIGlzIHdpdGggbGVhZGluZyB1bmRlcnNjb3JlcyBvbiBrZXJuZWwgc3ltYm9scy4gIEVsZgora2VybmVscyBoYXZlIG5vIGxlYWRpbmcgdW5kZXJzY29yZXMsIGEub3V0IGNvbXBpbGVkIGtlcm5lbHMgZG8uICBJCitoYXZlIGF0dGVtcHRlZCB0byB1c2UgdGhlIENfU1lNQk9MX05BTUUgbWFjcm8gd2hlcmV2ZXIgdGhpcyBtYXkgYmUKK2ltcG9ydGFudC4KKworQW5vdGhlciBjaG9pY2UgSSBtYWRlIHdhcyBpbiB0aGUgZmlsZSBzdHJ1Y3R1cmUuICBJIGhhdmUgYXR0ZW1wdGVkIHRvCitjb250YWluIGFsbCBvcGVyYXRpbmcgc3lzdGVtIHNwZWNpZmljIGNvZGUgaW4gb25lIG1vZHVsZSAoZnBtb2R1bGUuKikuCitBbGwgdGhlIG90aGVyIGZpbGVzIGNvbnRhaW4gZW11bGF0b3Igc3BlY2lmaWMgY29kZS4gIFRoaXMgc2hvdWxkIGFsbG93CitvdGhlcnMgdG8gcG9ydCB0aGUgZW11bGF0b3IgdG8gTmV0QlNEIGZvciBpbnN0YW5jZSByZWxhdGl2ZWx5IGVhc2lseS4KKworVGhlIGZsb2F0aW5nIHBvaW50IG9wZXJhdGlvbnMgYXJlIGJhc2VkIG9uIFNvZnRGbG9hdCBSZWxlYXNlIDIsIGJ5CitKb2huIEhhdXNlci4gIFNvZnRGbG9hdCBpcyBhIHNvZnR3YXJlIGltcGxlbWVudGF0aW9uIG9mIGZsb2F0aW5nLXBvaW50Cit0aGF0IGNvbmZvcm1zIHRvIHRoZSBJRUMvSUVFRSBTdGFuZGFyZCBmb3IgQmluYXJ5IEZsb2F0aW5nLXBvaW50CitBcml0aG1ldGljLiAgQXMgbWFueSBhcyBmb3VyIGZvcm1hdHMgYXJlIHN1cHBvcnRlZDogc2luZ2xlIHByZWNpc2lvbiwKK2RvdWJsZSBwcmVjaXNpb24sIGV4dGVuZGVkIGRvdWJsZSBwcmVjaXNpb24sIGFuZCBxdWFkcnVwbGUgcHJlY2lzaW9uLgorQWxsIG9wZXJhdGlvbnMgcmVxdWlyZWQgYnkgdGhlIHN0YW5kYXJkIGFyZSBpbXBsZW1lbnRlZCwgZXhjZXB0IGZvcgorY29udmVyc2lvbnMgdG8gYW5kIGZyb20gZGVjaW1hbC4gIFdlIHVzZSBvbmx5IHRoZSBzaW5nbGUgcHJlY2lzaW9uLAorZG91YmxlIHByZWNpc2lvbiBhbmQgZXh0ZW5kZWQgZG91YmxlIHByZWNpc2lvbiBmb3JtYXRzLiAgVGhlIHBvcnQgb2YKK1NvZnRGbG9hdCB0byB0aGUgQVJNIHdhcyBkb25lIGJ5IFBoaWwgQmx1bmRlbGwsIGJhc2VkIG9uIGFuIGVhcmxpZXIKK3BvcnQgb2YgU29mdEZsb2F0IHZlcnNpb24gMSBieSBOZWlsIENhcnNvbiBmb3IgTmV0QlNEL2FybTMyLgorCitUaGUgZmlsZSBSRUFETUUuRlBFIGNvbnRhaW5zIGEgZGVzY3JpcHRpb24gb2Ygd2hhdCBoYXMgYmVlbiBpbXBsZW1lbnRlZAorc28gZmFyIGluIHRoZSBlbXVsYXRvci4gIFRoZSBmaWxlIFRPRE8gY29udGFpbnMgYSBpbmZvcm1hdGlvbiBvbiB3aGF0IAorcmVtYWlucyB0byBiZSBkb25lLCBhbmQgb3RoZXIgaWRlYXMgZm9yIHRoZSBlbXVsYXRvci4KKworQnVnIHJlcG9ydHMsIGNvbW1lbnRzLCBzdWdnZXN0aW9ucyBzaG91bGQgYmUgZGlyZWN0ZWQgdG8gbWUgYXQKKzxzY290dGJAbmV0d2luZGVyLm9yZz4uICBHZW5lcmFsIHJlcG9ydHMgb2YgInRoaXMgcHJvZ3JhbSBkb2Vzbid0Cit3b3JrIGNvcnJlY3RseSB3aGVuIHlvdXIgZW11bGF0b3IgaXMgaW5zdGFsbGVkIiBhcmUgdXNlZnVsIGZvcgorZGV0ZXJtaW5pbmcgdGhhdCBidWdzIHN0aWxsIGV4aXN0OyBidXQgYXJlIHZpcnR1YWxseSB1c2VsZXNzIHdoZW4KK2F0dGVtcHRpbmcgdG8gaXNvbGF0ZSB0aGUgcHJvYmxlbS4gIFBsZWFzZSByZXBvcnQgdGhlbSwgYnV0IGRvbid0CitleHBlY3QgcXVpY2sgYWN0aW9uLiAgQnVncyBzdGlsbCBleGlzdC4gIFRoZSBwcm9ibGVtIHJlbWFpbnMgaW4gaXNvbGF0aW5nCit3aGljaCBpbnN0cnVjdGlvbiBjb250YWlucyB0aGUgYnVnLiAgU21hbGwgcHJvZ3JhbXMgaWxsdXN0cmF0aW5nIGEgc3BlY2lmaWMKK3Byb2JsZW0gYXJlIGEgZ29kc2VuZC4KKworTGVnYWwgTm90aWNlcworLS0tLS0tLS0tLS0tLQorCitUaGUgTmV0V2luZGVyIEZsb2F0aW5nIFBvaW50IEVtdWxhdG9yIGlzIGZyZWUgc29mdHdhcmUuICBFdmVyeXRoaW5nIFJlYmVsLmNvbQoraGFzIHdyaXR0ZW4gaXMgcHJvdmlkZWQgdW5kZXIgdGhlIEdOVSBHUEwuICBTZWUgdGhlIGZpbGUgQ09QWUlORyBmb3IgY29weWluZworY29uZGl0aW9ucy4gIEV4Y2x1ZGVkIGZyb20gdGhlIGFib3ZlIGlzIHRoZSBTb2Z0RmxvYXQgY29kZS4gIEpvaG4gSGF1c2VyJ3MgCitsZWdhbCBub3RpY2UgZm9yIFNvZnRGbG9hdCBpcyBpbmNsdWRlZCBiZWxvdy4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorU29mdEZsb2F0IExlZ2FsIE5vdGljZQorCitTb2Z0RmxvYXQgd2FzIHdyaXR0ZW4gYnkgSm9obiBSLiBIYXVzZXIuICBUaGlzIHdvcmsgd2FzIG1hZGUgcG9zc2libGUgaW4KK3BhcnQgYnkgdGhlIEludGVybmF0aW9uYWwgQ29tcHV0ZXIgU2NpZW5jZSBJbnN0aXR1dGUsIGxvY2F0ZWQgYXQgU3VpdGUgNjAwLAorMTk0NyBDZW50ZXIgU3RyZWV0LCBCZXJrZWxleSwgQ2FsaWZvcm5pYSA5NDcwNC4gIEZ1bmRpbmcgd2FzIHBhcnRpYWxseQorcHJvdmlkZWQgYnkgdGhlIE5hdGlvbmFsIFNjaWVuY2UgRm91bmRhdGlvbiB1bmRlciBncmFudCBNSVAtOTMxMTk4MC4gIFRoZQorb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGlzIGNvZGUgd2FzIHdyaXR0ZW4gYXMgcGFydCBvZiBhIHByb2plY3QgdG8gYnVpbGQKK2EgZml4ZWQtcG9pbnQgdmVjdG9yIHByb2Nlc3NvciBpbiBjb2xsYWJvcmF0aW9uIHdpdGggdGhlIFVuaXZlcnNpdHkgb2YKK0NhbGlmb3JuaWEgYXQgQmVya2VsZXksIG92ZXJzZWVuIGJ5IFByb2ZzLiBOZWxzb24gTW9yZ2FuIGFuZCBKb2huIFdhd3J6eW5lay4KKworVEhJUyBTT0ZUV0FSRSBJUyBESVNUUklCVVRFRCBBUyBJUywgRk9SIEZSRUUuICBBbHRob3VnaCByZWFzb25hYmxlIGVmZm9ydAoraGFzIGJlZW4gbWFkZSB0byBhdm9pZCBpdCwgVEhJUyBTT0ZUV0FSRSBNQVkgQ09OVEFJTiBGQVVMVFMgVEhBVCBXSUxMIEFUCitUSU1FUyBSRVNVTFQgSU4gSU5DT1JSRUNUIEJFSEFWSU9SLiAgVVNFIE9GIFRISVMgU09GVFdBUkUgSVMgUkVTVFJJQ1RFRCBUTworUEVSU09OUyBBTkQgT1JHQU5JWkFUSU9OUyBXSE8gQ0FOIEFORCBXSUxMIFRBS0UgRlVMTCBSRVNQT05TSUJJTElUWSBGT1IgQU5ZCitBTkQgQUxMIExPU1NFUywgQ09TVFMsIE9SIE9USEVSIFBST0JMRU1TIEFSSVNJTkcgRlJPTSBJVFMgVVNFLgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hcm0vbndmcGUvUkVBRE1FLkZQRSBiL0RvY3VtZW50YXRpb24vYXJtL253ZnBlL1JFQURNRS5GUEUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZmNWQ3YgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYXJtL253ZnBlL1JFQURNRS5GUEUKQEAgLTAsMCArMSwxNTYgQEAKK1RoZSBmb2xsb3dpbmcgZGVzY3JpYmVzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBOZXRXaW5kZXIncyBmbG9hdGluZyBwb2ludAorZW11bGF0b3IuCisKK0luIHRoZSBmb2xsb3dpbmcgbm9tZW5jbGF0dXJlIGlzIHVzZWQgdG8gZGVzY3JpYmUgdGhlIGZsb2F0aW5nIHBvaW50CitpbnN0cnVjdGlvbnMuICBJdCBmb2xsb3dzIHRoZSBjb252ZW50aW9ucyBpbiB0aGUgQVJNIG1hbnVhbC4KKworPFN8RHxFPiA9IDxzaW5nbGV8ZG91YmxlfGV4dGVuZGVkPiwgbm8gZGVmYXVsdAore1B8TXxafSA9IHtyb3VuZCB0byAraW5maW5pdHkscm91bmQgdG8gLWluZmluaXR5LHJvdW5kIHRvIHplcm99LAorICAgICAgICAgIGRlZmF1bHQgPSByb3VuZCB0byBuZWFyZXN0CisKK05vdGU6IGl0ZW1zIGVuY2xvc2VkIGluIHt9IGFyZSBvcHRpb25hbC4KKworRmxvYXRpbmcgUG9pbnQgQ29wcm9jZXNzb3IgRGF0YSBUcmFuc2ZlciBJbnN0cnVjdGlvbnMgKENQRFQpCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworTERGL1NURiAtIGxvYWQgYW5kIHN0b3JlIGZsb2F0aW5nCisKKzxMREZ8U1RGPntjb25kfTxTfER8RT4gRmQsIFJuCis8TERGfFNURj57Y29uZH08U3xEfEU+IEZkLCBbUm4sICM8ZXhwcmVzc2lvbj5deyF9Cis8TERGfFNURj57Y29uZH08U3xEfEU+IEZkLCBbUm5dLCAjPGV4cHJlc3Npb24+CisKK1RoZXNlIGluc3RydWN0aW9ucyBhcmUgZnVsbHkgaW1wbGVtZW50ZWQuCisKK0xGTS9TRk0gLSBsb2FkIGFuZCBzdG9yZSBtdWx0aXBsZSBmbG9hdGluZworCitGb3JtIDEgc3ludGF4OgorPExGTXxTRk0+e2NvbmR9PFN8RHxFPiBGZCwgPGNvdW50PiwgW1JuXQorPExGTXxTRk0+e2NvbmR9PFN8RHxFPiBGZCwgPGNvdW50PiwgW1JuLCAjPGV4cHJlc3Npb24+XXshfQorPExGTXxTRk0+e2NvbmR9PFN8RHxFPiBGZCwgPGNvdW50PiwgW1JuXSwgIzxleHByZXNzaW9uPgorCitGb3JtIDIgc3ludGF4OgorPExGTXxTRk0+e2NvbmR9PEZELEVBPiBGZCwgPGNvdW50PiwgW1JuXXshfQorCitUaGVzZSBpbnN0cnVjdGlvbnMgYXJlIGZ1bGx5IGltcGxlbWVudGVkLiAgVGhleSBzdG9yZS9sb2FkIHRocmVlIHdvcmRzCitmb3IgZWFjaCBmbG9hdGluZyBwb2ludCByZWdpc3RlciBpbnRvIHRoZSBtZW1vcnkgbG9jYXRpb24gZ2l2ZW4gaW4gdGhlIAoraW5zdHJ1Y3Rpb24uICBUaGUgZm9ybWF0IGluIG1lbW9yeSBpcyB1bmxpa2VseSB0byBiZSBjb21wYXRpYmxlIHdpdGgKK290aGVyIGltcGxlbWVudGF0aW9ucywgaW4gcGFydGljdWxhciB0aGUgYWN0dWFsIGhhcmR3YXJlLiAgU3BlY2lmaWMKK21lbnRpb24gb2YgdGhpcyBpcyBtYWRlIGluIHRoZSBBUk0gbWFudWFscy4gIAorCitGbG9hdGluZyBQb2ludCBDb3Byb2Nlc3NvciBSZWdpc3RlciBUcmFuc2ZlciBJbnN0cnVjdGlvbnMgKENQUlQpCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0NvbnZlcnNpb25zLCByZWFkL3dyaXRlIHN0YXR1cy9jb250cm9sIHJlZ2lzdGVyIGluc3RydWN0aW9ucworCitGTFR7Y29uZH08UyxELEU+e1AsTSxafSBGbiwgUmQgICAgICAgICAgQ29udmVydCBpbnRlZ2VyIHRvIGZsb2F0aW5nIHBvaW50CitGSVh7Y29uZH17UCxNLFp9IFJkLCBGbiAgICAgICAgICAgICAgICAgQ29udmVydCBmbG9hdGluZyBwb2ludCB0byBpbnRlZ2VyCitXRlN7Y29uZH0gUmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUgZmxvYXRpbmcgcG9pbnQgc3RhdHVzIHJlZ2lzdGVyCitSRlN7Y29uZH0gUmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhZCBmbG9hdGluZyBwb2ludCBzdGF0dXMgcmVnaXN0ZXIKK1dGQ3tjb25kfSBSZCAgICAgICAgICAgICAgICAgICAgICAgICAgICBXcml0ZSBmbG9hdGluZyBwb2ludCBjb250cm9sIHJlZ2lzdGVyCitSRkN7Y29uZH0gUmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhZCBmbG9hdGluZyBwb2ludCBjb250cm9sIHJlZ2lzdGVyCisKK0ZMVC9GSVggYXJlIGZ1bGx5IGltcGxlbWVudGVkLgorCitSRlMvV0ZTIGFyZSBmdWxseSBpbXBsZW1lbnRlZC4KKworUkZDL1dGQyBhcmUgZnVsbHkgaW1wbGVtZW50ZWQuICBSRkMvV0ZDIGFyZSBzdXBlcnZpc29yIG9ubHkgaW5zdHJ1Y3Rpb25zLCBhbmQKK3ByZXNlbnRseSBjaGVjayB0aGUgQ1BVIG1vZGUsIGFuZCBkbyBhbiBpbnZhbGlkIGluc3RydWN0aW9uIHRyYXAgaWYgbm90IGNhbGxlZAorZnJvbSBzdXBlcnZpc29yIG1vZGUuCisKK0NvbXBhcmUgaW5zdHJ1Y3Rpb25zCisKK0NNRntjb25kfSBGbiwgRm0gICAgICAgIENvbXBhcmUgZmxvYXRpbmcKK0NNRkV7Y29uZH0gRm4sIEZtICAgICAgIENvbXBhcmUgZmxvYXRpbmcgd2l0aCBleGNlcHRpb24KK0NORntjb25kfSBGbiwgRm0gICAgICAgIENvbXBhcmUgbmVnYXRlZCBmbG9hdGluZworQ05GRXtjb25kfSBGbiwgRm0gICAgICAgQ29tcGFyZSBuZWdhdGVkIGZsb2F0aW5nIHdpdGggZXhjZXB0aW9uCisKK1RoZXNlIGFyZSBmdWxseSBpbXBsZW1lbnRlZC4KKworRmxvYXRpbmcgUG9pbnQgQ29wcm9jZXNzb3IgRGF0YSBJbnN0cnVjdGlvbnMgKENQRFQpCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHlhZGljIG9wZXJhdGlvbnM6CisKK0FERntjb25kfTxTfER8RT57UCxNLFp9IEZkLCBGbiwgPEZtLCN2YWx1ZT4gLSBhZGQKK1NVRntjb25kfTxTfER8RT57UCxNLFp9IEZkLCBGbiwgPEZtLCN2YWx1ZT4gLSBzdWJ0cmFjdAorUlNGe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIEZuLCA8Rm0sI3ZhbHVlPiAtIHJldmVyc2Ugc3VidHJhY3QKK01VRntjb25kfTxTfER8RT57UCxNLFp9IEZkLCBGbiwgPEZtLCN2YWx1ZT4gLSBtdWx0aXBseQorRFZGe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIEZuLCA8Rm0sI3ZhbHVlPiAtIGRpdmlkZQorUkRWe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIEZuLCA8Rm0sI3ZhbHVlPiAtIHJldmVyc2UgZGl2aWRlCisKK1RoZXNlIGFyZSBmdWxseSBpbXBsZW1lbnRlZC4KKworRk1Me2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIEZuLCA8Rm0sI3ZhbHVlPiAtIGZhc3QgbXVsdGlwbHkKK0ZEVntjb25kfTxTfER8RT57UCxNLFp9IEZkLCBGbiwgPEZtLCN2YWx1ZT4gLSBmYXN0IGRpdmlkZQorRlJEe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIEZuLCA8Rm0sI3ZhbHVlPiAtIGZhc3QgcmV2ZXJzZSBkaXZpZGUKKworVGhlc2UgYXJlIGZ1bGx5IGltcGxlbWVudGVkIGFzIHdlbGwuICBUaGV5IHVzZSB0aGUgc2FtZSBhbGdvcml0aG0gYXMgdGhlCitub24tZmFzdCB2ZXJzaW9ucy4gIEhlbmNlLCBpbiB0aGlzIGltcGxlbWVudGF0aW9uIHRoZWlyIHBlcmZvcm1hbmNlIGlzCitlcXVpdmFsZW50IHRvIHRoZSBNVUYvRFZGL1JEViBpbnN0cnVjdGlvbnMuICBUaGlzIGlzIGFjY2VwdGFibGUgYWNjb3JkaW5nCit0byB0aGUgQVJNIG1hbnVhbC4gIFRoZSBtYW51YWwgbm90ZXMgdGhlc2UgYXJlIGRlZmluZWQgb25seSBmb3Igc2luZ2xlCitvcGVyYW5kcywgb24gdGhlIGFjdHVhbCBGUEExMSBoYXJkd2FyZSB0aGV5IGRvIG5vdCB3b3JrIGZvciBkb3VibGUgb3IKK2V4dGVuZGVkIHByZWNpc2lvbiBvcGVyYW5kcy4gIFRoZSBlbXVsYXRvciBjdXJyZW50bHkgZG9lcyBub3QgY2hlY2sKK3RoZSByZXF1ZXN0ZWQgcGVybWlzc2lvbnMgY29uZGl0aW9ucywgYW5kIHBlcmZvcm1zIHRoZSByZXF1ZXN0ZWQgb3BlcmF0aW9uLgorCitSTUZ7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgRm4sIDxGbSwjdmFsdWU+IC0gSUVFRSByZW1haW5kZXIKKworVGhpcyBpcyBmdWxseSBpbXBsZW1lbnRlZC4KKworTW9uYWRpYyBvcGVyYXRpb25zOgorCitNVkZ7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgPEZtLCN2YWx1ZT4gLSBtb3ZlCitNTkZ7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgPEZtLCN2YWx1ZT4gLSBtb3ZlIG5lZ2F0ZWQKKworVGhlc2UgYXJlIGZ1bGx5IGltcGxlbWVudGVkLgorCitBQlN7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgPEZtLCN2YWx1ZT4gLSBhYnNvbHV0ZSB2YWx1ZQorU1FUe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIDxGbSwjdmFsdWU+IC0gc3F1YXJlIHJvb3QKK1JORHtjb25kfTxTfER8RT57UCxNLFp9IEZkLCA8Rm0sI3ZhbHVlPiAtIHJvdW5kCisKK1RoZXNlIGFyZSBmdWxseSBpbXBsZW1lbnRlZC4KKworVVJEe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIDxGbSwjdmFsdWU+IC0gdW5ub3JtYWxpemVkIHJvdW5kCitOUk17Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgPEZtLCN2YWx1ZT4gLSBub3JtYWxpemUKKworVGhlc2UgYXJlIGltcGxlbWVudGVkLiAgVVJEIGlzIGltcGxlbWVudGVkIHVzaW5nIHRoZSBzYW1lIGNvZGUgYXMgdGhlIFJORAoraW5zdHJ1Y3Rpb24uICBTaW5jZSBVUkQgY2Fubm90IHJldHVybiBhIHVubm9ybWFsaXplZCBudW1iZXIsIE5STSBiZWNvbWVzCithIE5PUC4KKworTGlicmFyeSBjYWxsczoKKworUE9Xe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIEZuLCA8Rm0sI3ZhbHVlPiAtIHBvd2VyCitSUFd7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgRm4sIDxGbSwjdmFsdWU+IC0gcmV2ZXJzZSBwb3dlcgorUE9Me2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIEZuLCA8Rm0sI3ZhbHVlPiAtIHBvbGFyIGFuZ2xlIChhcmN0YW4yKQorCitMT0d7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgPEZtLCN2YWx1ZT4gLSBsb2dhcml0aG0gdG8gYmFzZSAxMAorTEdOe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIDxGbSwjdmFsdWU+IC0gbG9nYXJpdGhtIHRvIGJhc2UgZSAKK0VYUHtjb25kfTxTfER8RT57UCxNLFp9IEZkLCA8Rm0sI3ZhbHVlPiAtIGV4cG9uZW50CitTSU57Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgPEZtLCN2YWx1ZT4gLSBzaW5lCitDT1N7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgPEZtLCN2YWx1ZT4gLSBjb3NpbmUKK1RBTntjb25kfTxTfER8RT57UCxNLFp9IEZkLCA8Rm0sI3ZhbHVlPiAtIHRhbmdlbnQKK0FTTntjb25kfTxTfER8RT57UCxNLFp9IEZkLCA8Rm0sI3ZhbHVlPiAtIGFyY3NpbmUKK0FDU3tjb25kfTxTfER8RT57UCxNLFp9IEZkLCA8Rm0sI3ZhbHVlPiAtIGFyY2Nvc2luZQorQVROe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIDxGbSwjdmFsdWU+IC0gYXJjdGFuZ2VudAorCitUaGVzZSBhcmUgbm90IGltcGxlbWVudGVkLiAgVGhleSBhcmUgbm90IGN1cnJlbnRseSBpc3N1ZWQgYnkgdGhlIGNvbXBpbGVyLAorYW5kIGFyZSBoYW5kbGVkIGJ5IHJvdXRpbmVzIGluIGxpYmMuICBUaGVzZSBhcmUgbm90IGltcGxlbWVudGVkIGJ5IHRoZSBGUEExMQoraGFyZHdhcmUsIGJ1dCBhcmUgaGFuZGxlZCBieSB0aGUgZmxvYXRpbmcgcG9pbnQgc3VwcG9ydCBjb2RlLiAgVGhleSBzaG91bGQgCitiZSBpbXBsZW1lbnRlZCBpbiBmdXR1cmUgdmVyc2lvbnMuCisKK1NpZ25hbGxpbmc6CisKK1NpZ25hbHMgYXJlIGltcGxlbWVudGVkLiAgSG93ZXZlciBjdXJyZW50IEVMRiBrZXJuZWxzIHByb2R1Y2VkIGJ5IFJlYmVsLmNvbQoraGF2ZSBhIGJ1ZyBpbiB0aGVtIHRoYXQgcHJldmVudHMgdGhlIG1vZHVsZSBmcm9tIGdlbmVyYXRpbmcgYSBTSUdGUEUuICBUaGlzCitpcyBjYXVzZWQgYnkgYSBmYWlsdXJlIHRvIGFsaWFzIGZwX2N1cnJlbnQgdG8gdGhlIGtlcm5lbCB2YXJpYWJsZQorY3VycmVudF9zZXRbMF0gY29ycmVjdGx5LgorCitUaGUga2VybmVsIHByb3ZpZGVkIHdpdGggdGhpcyBkaXN0cmlidXRpb24gKHZtbGludXgtbndmcGUtMC45MykgY29udGFpbnMKK2EgZml4IGZvciB0aGlzIHByb2JsZW0gYW5kIGFsc28gaW5jb3Jwb3JhdGVzIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlCitlbXVsYXRvciBkaXJlY3RseS4gIEl0IGlzIHBvc3NpYmxlIHRvIHJ1biB3aXRoIG5vIGZsb2F0aW5nIHBvaW50IG1vZHVsZQorbG9hZGVkIHdpdGggdGhpcyBrZXJuZWwuICBJdCBpcyBwcm92aWRlZCBhcyBhIGRlbW9uc3RyYXRpb24gb2YgdGhlIAordGVjaG5vbG9neSBhbmQgZm9yIHRob3NlIHdobyB3YW50IHRvIGRvIGZsb2F0aW5nIHBvaW50IHdvcmsgdGhhdCBkZXBlbmRzCitvbiBzaWduYWxzLiAgSXQgaXMgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSB0byB1c2UgdGhlIG1vZHVsZS4KKworQSBtb2R1bGUgKGVpdGhlciB0aGUgb25lIHByb3ZpZGVkIGJ5IFJ1c3NlbGwgS2luZywgb3IgdGhlIG9uZSBpbiB0aGlzIAorZGlzdHJpYnV0aW9uKSBjYW4gYmUgbG9hZGVkIHRvIHJlcGxhY2UgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGVtdWxhdG9yCitidWlsdCBpbnRvIHRoZSBrZXJuZWwuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FybS9ud2ZwZS9UT0RPIGIvRG9jdW1lbnRhdGlvbi9hcm0vbndmcGUvVE9ETwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDI3MDYxCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi9hcm0vbndmcGUvVE9ETwpAQCAtMCwwICsxLDY3IEBACitUT0RPIExJU1QKKy0tLS0tLS0tLQorCitQT1d7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgRm4sIDxGbSwjdmFsdWU+IC0gcG93ZXIKK1JQV3tjb25kfTxTfER8RT57UCxNLFp9IEZkLCBGbiwgPEZtLCN2YWx1ZT4gLSByZXZlcnNlIHBvd2VyCitQT0x7Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgRm4sIDxGbSwjdmFsdWU+IC0gcG9sYXIgYW5nbGUgKGFyY3RhbjIpCisKK0xPR3tjb25kfTxTfER8RT57UCxNLFp9IEZkLCA8Rm0sI3ZhbHVlPiAtIGxvZ2FyaXRobSB0byBiYXNlIDEwCitMR057Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgPEZtLCN2YWx1ZT4gLSBsb2dhcml0aG0gdG8gYmFzZSBlIAorRVhQe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIDxGbSwjdmFsdWU+IC0gZXhwb25lbnQKK1NJTntjb25kfTxTfER8RT57UCxNLFp9IEZkLCA8Rm0sI3ZhbHVlPiAtIHNpbmUKK0NPU3tjb25kfTxTfER8RT57UCxNLFp9IEZkLCA8Rm0sI3ZhbHVlPiAtIGNvc2luZQorVEFOe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIDxGbSwjdmFsdWU+IC0gdGFuZ2VudAorQVNOe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIDxGbSwjdmFsdWU+IC0gYXJjc2luZQorQUNTe2NvbmR9PFN8RHxFPntQLE0sWn0gRmQsIDxGbSwjdmFsdWU+IC0gYXJjY29zaW5lCitBVE57Y29uZH08U3xEfEU+e1AsTSxafSBGZCwgPEZtLCN2YWx1ZT4gLSBhcmN0YW5nZW50CisKK1RoZXNlIGFyZSBub3QgaW1wbGVtZW50ZWQuICBUaGV5IGFyZSBub3QgY3VycmVudGx5IGlzc3VlZCBieSB0aGUgY29tcGlsZXIsCithbmQgYXJlIGhhbmRsZWQgYnkgcm91dGluZXMgaW4gbGliYy4gIFRoZXNlIGFyZSBub3QgaW1wbGVtZW50ZWQgYnkgdGhlIEZQQTExCitoYXJkd2FyZSwgYnV0IGFyZSBoYW5kbGVkIGJ5IHRoZSBmbG9hdGluZyBwb2ludCBzdXBwb3J0IGNvZGUuICBUaGV5IHNob3VsZCAKK2JlIGltcGxlbWVudGVkIGluIGZ1dHVyZSB2ZXJzaW9ucy4KKworVGhlcmUgYXJlIGEgY291cGxlIG9mIHdheXMgdG8gYXBwcm9hY2ggdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlLiAgT25lCittZXRob2Qgd291bGQgYmUgdG8gdXNlIGFjY3VyYXRlIHRhYmxlIG1ldGhvZHMgZm9yIHRoZXNlIHJvdXRpbmVzLiAgSSBoYXZlIAorYSBjb3VwbGUgb2YgcGFwZXJzIGJ5IFMuIEdhbCBmcm9tIElCTSdzIHJlc2VhcmNoIGxhYnMgaW4gSGFpZmEsIElzcmFlbCB0aGF0CitzZWVtIHRvIHByb21pc2UgZXh0cmVtZSBhY2N1cmFjeSAoaW4gdGhlIG9yZGVyIG9mIDk5LjglKSBhbmQgcmVhc29uYWJsZSBzcGVlZC4KK1RoZXNlIG1ldGhvZHMgYXJlIHVzZWQgaW4gR0xJQkMgZm9yIHNvbWUgb2YgdGhlIHRyYW5zY2VuZGVudGFsIGZ1bmN0aW9ucy4KKworQW5vdGhlciBhcHByb2FjaCwgd2hpY2ggSSBrbm93IGxpdHRsZSBhYm91dCBpcyBDT1JESUMuICBUaGlzIHN0YW5kcyBmb3IKK0Nvb3JkaW5hdGUgUm90YXRpb24gRGlnaXRhbCBDb21wdXRlciwgYW5kIGlzIGEgbWV0aG9kIG9mIGNvbXB1dGluZyAKK3RyYW5zY2VuZGVudGFsIGZ1bmN0aW9ucyB1c2luZyBtb3N0bHkgc2hpZnRzIGFuZCBhZGRzIGFuZCBhIGZldworbXVsdGlwbGljYXRpb25zIGFuZCBkaXZpc2lvbnMuICBUaGUgQVJNIGV4Y2VscyBhdCBzaGlmdHMgYW5kIGFkZHMsCitzbyBzdWNoIGEgbWV0aG9kIGNvdWxkIGJlIHByb21pc2luZywgYnV0IHJlcXVpcmVzIG1vcmUgcmVzZWFyY2ggdG8gCitkZXRlcm1pbmUgaWYgaXQgaXMgZmVhc2libGUuCisKK1JvdW5kaW5nIE1ldGhvZHMKKworVGhlIElFRUUgc3RhbmRhcmQgZGVmaW5lcyA0IHJvdW5kaW5nIG1vZGVzLiAgUm91bmQgdG8gbmVhcmVzdCBpcyB0aGUKK2RlZmF1bHQsIGJ1dCByb3VuZGluZyB0byArIG9yIC0gaW5maW5pdHkgb3Igcm91bmQgdG8gemVybyBhcmUgYWxzbyBhbGxvd2VkLgorTWFueSBhcmNoaXRlY3R1cmVzIGFsbG93IHRoZSByb3VuZGluZyBtb2RlIHRvIGJlIHNwZWNpZmllZCBieSBtb2RpZnlpbmcgYml0cworaW4gYSBjb250cm9sIHJlZ2lzdGVyLiAgTm90IHNvIHdpdGggdGhlIEFSTSBGUEExMSBhcmNoaXRlY3R1cmUuICBUbyBjaGFuZ2UKK3RoZSByb3VuZGluZyBtb2RlIG9uZSBtdXN0IHNwZWNpZnkgaXQgd2l0aCBlYWNoIGluc3RydWN0aW9uLgorCitUaGlzIGhhcyBtYWRlIHBvcnRpbmcgc29tZSBiZW5jaG1hcmtzIGRpZmZpY3VsdC4gIEl0IGlzIHBvc3NpYmxlIHRvCitpbnRyb2R1Y2Ugc3VjaCBhIGNhcGFiaWxpdHkgaW50byB0aGUgZW11bGF0b3IuICBUaGUgRlBDUiBjb250YWlucyAKK2JpdHMgZGVzY3JpYmluZyB0aGUgcm91bmRpbmcgbW9kZS4gIFRoZSBlbXVsYXRvciBjb3VsZCBiZSBhbHRlcmVkIHRvIAorZXhhbWluZSBhIGZsYWcsIHdoaWNoIGlmIHNldCBmb3JjZWQgaXQgdG8gaWdub3JlIHRoZSByb3VuZGluZyBtb2RlIGluCit0aGUgaW5zdHJ1Y3Rpb24sIGFuZCB1c2UgdGhlIG1vZGUgc3BlY2lmaWVkIGluIHRoZSBiaXRzIGluIHRoZSBGUENSLgorCitUaGlzIHdvdWxkIHJlcXVpcmUgYSBtZXRob2Qgb2YgZ2V0dGluZy9zZXR0aW5nIHRoZSBmbGFnLCBhbmQgdGhlIGJpdHMKK2luIHRoZSBGUENSLiAgVGhpcyByZXF1aXJlcyBhIGtlcm5lbCBjYWxsIGluIEFybUxpbnV4LCBhcyBXRkMvUkZDIGFyZQorc3VwZXJ2aXNvciBvbmx5IGluc3RydWN0aW9ucy4gIElmIGFueW9uZSBoYXMgYW55IGlkZWFzIG9yIGNvbW1lbnRzIEkKK3dvdWxkIGxpa2UgdG8gaGVhciB0aGVtLgorCitbTk9URTogcHVsbGVkIG91dCBmcm9tIHNvbWUgZG9jcyBvbiBBUk0gZmxvYXRpbmcgcG9pbnQsIHNwZWNpZmljYWxseQorIGZvciB0aGUgQWNvcm4gRlBFLCBidXQgbm90IGxpbWl0ZWQgdG8gaXQ6CisKKyBUaGUgZmxvYXRpbmcgcG9pbnQgY29udHJvbCByZWdpc3RlciAoRlBDUikgbWF5IG9ubHkgYmUgcHJlc2VudCBpbiBzb21lCisgaW1wbGVtZW50YXRpb25zOiBpdCBpcyB0aGVyZSB0byBjb250cm9sIHRoZSBoYXJkd2FyZSBpbiBhbiBpbXBsZW1lbnRhdGlvbi0KKyBzcGVjaWZpYyBtYW5uZXIsIGZvciBleGFtcGxlIHRvIGRpc2FibGUgdGhlIGZsb2F0aW5nIHBvaW50IHN5c3RlbS4gIFRoZSB1c2VyCisgbW9kZSBvZiB0aGUgQVJNIGlzIG5vdCBwZXJtaXR0ZWQgdG8gdXNlIHRoaXMgcmVnaXN0ZXIgKHNpbmNlIHRoZSByaWdodCBpcworIHJlc2VydmVkIHRvIGFsdGVyIGl0IGJldHdlZW4gaW1wbGVtZW50YXRpb25zKSBhbmQgdGhlIFdGQyBhbmQgUkZDCisgaW5zdHJ1Y3Rpb25zIHdpbGwgdHJhcCBpZiB0cmllZCBpbiB1c2VyIG1vZGUuCisKKyBIZW5jZSwgdGhlIGFuc3dlciBpcyB5ZXMsIHlvdSBjb3VsZCBkbyB0aGlzLCBidXQgdGhlbiB5b3Ugd2lsbCBydW4gYSBoaWdoCisgcmlzayBvZiBiZWNvbWluZyBpc29sYXRlZCBpZiBhbmQgd2hlbiBoYXJkd2FyZSBGUCBlbXVsYXRpb24gY29tZXMgb3V0CisJCS0tIFJ1c3NlbGxdLgo=