ZGlmZiAtLWdpdCBhL2NhZGkvYWFmL3NyYy90ZXN0L3Jlc291cmNlcy9jYWRpLnByb3BlcnRpZXMgYi9jYWRpL2FhZi9zcmMvdGVzdC9yZXNvdXJjZXMvY2FkaS5wcm9wZXJ0aWVzCmluZGV4IDgxMGRmNTcuLmVlMGI3MTkgMTAwNjQ0Ci0tLSBhL2NhZGkvYWFmL3NyYy90ZXN0L3Jlc291cmNlcy9jYWRpLnByb3BlcnRpZXMKKysrIGIvY2FkaS9hYWYvc3JjL3Rlc3QvcmVzb3VyY2VzL2NhZGkucHJvcGVydGllcwpAQCAtMSwzICsxLDIyIEBACisjIyMjIyMjIyMKKyMgID09PT09PT09PT09PUxJQ0VOU0VfU1RBUlQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjICBvcmcub25hcC5hYWYKKyMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgQ29weXJpZ2h0IChjKSAyMDE3IEFUJlQgSW50ZWxsZWN0dWFsIFByb3BlcnR5LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIyAgPT09PT09PT09PT09TElDRU5TRV9FTkQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjCiAjIwogIyMgQVVUSFogQVBJIChhdXRoei1zZXJ2aWNlKSBQcm9wZXJ0aWVzCiAjIwpkaWZmIC0tZ2l0IGEvY2FkaS9hYWYvc3JjL3Rlc3QvcmVzb3VyY2VzL2xvZzRqLnByb3BlcnRpZXMgYi9jYWRpL2FhZi9zcmMvdGVzdC9yZXNvdXJjZXMvbG9nNGoucHJvcGVydGllcwppbmRleCA1ZWM2Mzg4Li5lZjhjZWM5IDEwMDY0NAotLS0gYS9jYWRpL2FhZi9zcmMvdGVzdC9yZXNvdXJjZXMvbG9nNGoucHJvcGVydGllcworKysgYi9jYWRpL2FhZi9zcmMvdGVzdC9yZXNvdXJjZXMvbG9nNGoucHJvcGVydGllcwpAQCAtMSwyMCArMSwyMiBAQAorIyMjIyMjIyMjCisjICA9PT09PT09PT09PT1MSUNFTlNFX1NUQVJUPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgb3JnLm9uYXAuYWFmCisjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgIENvcHlyaWdodCAoYykgMjAxNyBBVCZUIEludGVsbGVjdHVhbCBQcm9wZXJ0eS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKICMKLSMgTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQotIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKLSMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KLSMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQotIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCi0jICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKLSMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIyAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKICMKLSMgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIyAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjICA9PT09PT09PT09PT1MSUNFTlNFX0VORD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICMKLSMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAotIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgotIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKLSMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCi0jIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKLSMgdW5kZXIgdGhlIExpY2Vuc2UuCiAjCiBsb2c0ai5hcHBlbmRlci5zdGRvdXQ9b3JnLmFwYWNoZS5sb2c0ai5Db25zb2xlQXBwZW5kZXIKIGxvZzRqLmFwcGVuZGVyLnN0ZG91dC5sYXlvdXQ9b3JnLmFwYWNoZS5sb2c0ai5QYXR0ZXJuTGF5b3V0CmRpZmYgLS1naXQgYS9jYWRpL2NvcmUvY29uZi9jYWRpLnByb3BlcnRpZXMgYi9jYWRpL2NvcmUvY29uZi9jYWRpLnByb3BlcnRpZXMKaW5kZXggMDljNzkyNS4uNzY5MzU2ZiAxMDA2NDQKLS0tIGEvY2FkaS9jb3JlL2NvbmYvY2FkaS5wcm9wZXJ0aWVzCisrKyBiL2NhZGkvY29yZS9jb25mL2NhZGkucHJvcGVydGllcwpAQCAtMSwzICsxLDIyIEBACisjIyMjIyMjIyMKKyMgID09PT09PT09PT09PUxJQ0VOU0VfU1RBUlQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjICBvcmcub25hcC5hYWYKKyMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgQ29weXJpZ2h0IChjKSAyMDE3IEFUJlQgSW50ZWxsZWN0dWFsIFByb3BlcnR5LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIyAgPT09PT09PT09PT09TElDRU5TRV9FTkQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjCiAjIFRoaXMgaXMgYSBub3JtYWwgSmF2YSBQcm9wZXJ0aWVzIEZpbGUKICMgQ29tbWVudHMgYXJlIHdpdGggUG91bmQgU2lnbnMgYXQgYmVnaW5uaW5nIG9mIGxpbmVzLAogIyBhbmQgbXVsdGktbGluZSBleHByZXNzaW9uIG9mIHByb3BlcnRpZXMgY2FuIGJlIG9idGFpbmVkIGJ5IGJhY2tzbGFzaCBhdCBlbmQgb2YgbGluZQpkaWZmIC0tZ2l0IGEvY2FkaS9jb3JlL3NyYy90ZXN0L3Jlc291cmNlcy9jYWRpLnByb3BlcnRpZXMgYi9jYWRpL2NvcmUvc3JjL3Rlc3QvcmVzb3VyY2VzL2NhZGkucHJvcGVydGllcwppbmRleCBiODQ1MDliLi5hNmUyNTZlIDEwMDY0NAotLS0gYS9jYWRpL2NvcmUvc3JjL3Rlc3QvcmVzb3VyY2VzL2NhZGkucHJvcGVydGllcworKysgYi9jYWRpL2NvcmUvc3JjL3Rlc3QvcmVzb3VyY2VzL2NhZGkucHJvcGVydGllcwpAQCAtMSwzNCArMSwyMyBAQAotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgPT09PT09PT09PT09TElDRU5TRV9TVEFSVD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSMgKiBvcmcub25hcC5hYWYKLSMgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSMgKiBDb3B5cmlnaHQgqSAyMDE3IEFUJlQgSW50ZWxsZWN0dWFsIFByb3BlcnR5LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotIyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotIyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLSMgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLSMgKiAKLSMgICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLSMgKiAKLSMgICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotIyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0jICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0jICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotIyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotIyAqID09PT09PT09PT09PUxJQ0VOU0VfRU5EPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotIyAqCi0jLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBDb3B5cmlnaHQgKGMpIDIwMTYgQVQmVCBJbnRlbGxlY3R1YWwgUHJvcGVydHkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIFRoaXMgaXMgYSBub3JtYWwgSmF2YSBQcm9wZXJ0aWVzIEZpbGUKLSMgQ29tbWVudHMgYXJlIHdpdGggUG91bmQgU2lnbnMgYXQgYmVnaW5uaW5nIG9mIGxpbmVzLAotIyBhbmQgbXVsdGktbGluZSBleHByZXNzaW9uIG9mIHByb3BlcnRpZXMgY2FuIGJlIG9idGFpbmVkIGJ5IGJhY2tzbGFzaCBhdCBlbmQgb2YgbGluZQorIyMjIyMjIyMjCisjICA9PT09PT09PT09PT1MSUNFTlNFX1NUQVJUPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgb3JnLm9uYXAuYWFmCisjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgIENvcHlyaWdodCAoYykgMjAxNyBBVCZUIEludGVsbGVjdHVhbCBQcm9wZXJ0eS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMgID09PT09PT09PT09PUxJQ0VOU0VfRU5EPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIwogCi0jIENlcnRhaW4gbWFjaGluZXMgaGF2ZSBzZXZlcmFsIHBvc3NpYmxlIG1hY2hpbmUgbmFtZXMsIGFuZAotIyB0aGUgcmlnaHQgb25lIG1heSBub3QgYmUgcmVwb3J0ZWQuICBUaGlzIGlzIGVzcGVjaWFsbHkKLSMgaW1wb3J0YW50IGZvciBDU1AgQXV0aG9yaXphdGlvbiwgd2hpY2ggd2lsbCBvbmx5IAotIyBmdW5jdGlvbiBvbiBvZmZpY2lhbCBBVCZUIGRvbWFpbnMuCiBob3N0bmFtZT12ZWVnZXIubW8uc2JjLmNvbSAKIAogcG9ydD0yNTMzCmRpZmYgLS1naXQgYS9jYWRpL2NvcmUvc3JjL3Rlc3QvcmVzb3VyY2VzL2NhZGkucHJvcGVydGllcy5kdXBsaWNhdGUgYi9jYWRpL2NvcmUvc3JjL3Rlc3QvcmVzb3VyY2VzL2NhZGkucHJvcGVydGllcy5kdXBsaWNhdGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzYzA0ZDAuLjAwMDAwMDAKLS0tIGEvY2FkaS9jb3JlL3NyYy90ZXN0L3Jlc291cmNlcy9jYWRpLnByb3BlcnRpZXMuZHVwbGljYXRlCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgPT09PT09PT09PT09TElDRU5TRV9TVEFSVD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSMgKiBvcmcub25hcC5hYWYKLSMgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSMgKiBDb3B5cmlnaHQg77+9IDIwMTcgQVQmVCBJbnRlbGxlY3R1YWwgUHJvcGVydHkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0jICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0jICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotIyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotIyAqIAotIyAgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotIyAqIAotIyAgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0jICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLSMgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSMgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0jICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0jICogPT09PT09PT09PT09TElDRU5TRV9FTkQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0jICoKLSMgKgotIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgQ29weXJpZ2h0IChjKSAyMDE2IEFUJlQgSW50ZWxsZWN0dWFsIFByb3BlcnR5LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBUaGlzIGlzIGEgbm9ybWFsIEphdmEgUHJvcGVydGllcyBGaWxlCi0jIENvbW1lbnRzIGFyZSB3aXRoIFBvdW5kIFNpZ25zIGF0IGJlZ2lubmluZyBvZiBsaW5lcywKLSMgYW5kIG11bHRpLWxpbmUgZXhwcmVzc2lvbiBvZiBwcm9wZXJ0aWVzIGNhbiBiZSBvYnRhaW5lZCBieSBiYWNrc2xhc2ggYXQgZW5kIG9mIGxpbmUKLQotIyBDZXJ0YWluIG1hY2hpbmVzIGhhdmUgc2V2ZXJhbCBwb3NzaWJsZSBtYWNoaW5lIG5hbWVzLCBhbmQKLSMgdGhlIHJpZ2h0IG9uZSBtYXkgbm90IGJlIHJlcG9ydGVkLiAgVGhpcyBpcyBlc3BlY2lhbGx5Ci0jIGltcG9ydGFudCBmb3IgQ1NQIEF1dGhvcml6YXRpb24sIHdoaWNoIHdpbGwgb25seSAKLSMgZnVuY3Rpb24gb24gb2ZmaWNpYWwgQVQmVCBkb21haW5zLgotaG9zdG5hbWU9dmVlZ2VyLm1vLnNiYy5jb20gCi0KLXBvcnQ9MjUzMwotCi0jIENTUCBoYXMgUHJvZHVjdGlvbiBtb2RlIChhY3RpdmUgdXNlcnMpIG9yIERFVkwgbW9kZSAoZm9yIAotIyBUZXN0aW5nIHB1cnBvc2VzLi4uIEJvZ3VzIHVzZXJzKQotI2NzcF9kb21haW49REVWTAotY3NwX2RvbWFpbj1QUk9ECi0KLSMgUmVwb3J0IGFsbCBBVVRITiBhbmQgQVVUSFogYWN0aXZpdHkKLWxvZ2xldmVsPUFVRElUCi0KLSMKLSMgQmFzaWNBdXRoIGFuZCBvdGhlciBVc2VyL1Bhc3N3b3JkIHN1cHBvcnQKLSMKLSMgVGhlIHJlYWxtIHJlcG9ydGVkIG9uIEJhc2ljQXV0aCBjYWxsYmFja3MKLWJhc2ljX3JlYWxtPXNwaWRlcm1hbi5hZ2lsZS5hdHQuY29tCi11c2Vycz1rcyV4aVZVc18yNV8xanFHZEoyNGhxeTQzR2k7Ci1ncm91cHM9YWFmOkpkOGJiM2pzbGc4OGJAc3BpZGVybWFuLmFnaWxlLmF0dC5jb20lN3NaQ1BCWl84aVdic2xxZGpXRklETGdUWmxtOXVuZzB5bS1HLFwKLQkJamcxNTU1LGxnMjM4NCxyZDgyMjcsdHAwMDdzLHBlMzYxNzsKLQkKLQotIyBLZXlmaWxlICh3aXRoIHJlbGF0aXZlIHBhdGgpIGZvciBlbmNyeXB0aW9uLiAgVGhpcyBmaWxlCi0jIHNob3VsZCBiZSBtYXJrZWQgYXMgUmVhZE9ubHkgYnkgT25seSB0aGUgcnVubmluZyBwcm9jZXNzCi0jIGZvciBzZWN1cml0eSdzIHNha2UKLWtleWZpbGU9Y29uZi9rZXlmaWxlCmRpZmYgLS1naXQgYS9jYWRpL29hdXRoLWVuZHVzZXIvY2FkaS5wcm9wZXJ0aWVzIGIvY2FkaS9vYXV0aC1lbmR1c2VyL2NhZGkucHJvcGVydGllcwppbmRleCA0MTE1MTRmLi4zMGUyOTkzIDEwMDY0NAotLS0gYS9jYWRpL29hdXRoLWVuZHVzZXIvY2FkaS5wcm9wZXJ0aWVzCisrKyBiL2NhZGkvb2F1dGgtZW5kdXNlci9jYWRpLnByb3BlcnRpZXMKQEAgLTEsMyArMSwyMiBAQAorIyMjIyMjIyMjCisjICA9PT09PT09PT09PT1MSUNFTlNFX1NUQVJUPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgb3JnLm9uYXAuYWFmCisjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgIENvcHlyaWdodCAoYykgMjAxNyBBVCZUIEludGVsbGVjdHVhbCBQcm9wZXJ0eS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMgID09PT09PT09PT09PUxJQ0VOU0VfRU5EPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIFByb3BlcnRpZXMgZm9yIE9BdXRoIEV4YW1wbGUKICMgIEpvbmF0aGFuIEdhdGhtYW4KZGlmZiAtLWdpdCBhL2NhZGkvc2VydmxldC1zYW1wbGUvYnVpbGQuc2ggYi9jYWRpL3NlcnZsZXQtc2FtcGxlL2J1aWxkLnNoCmluZGV4IDY4ODBkYmYuLmMxZmFiYzcgMTAwNjQ0Ci0tLSBhL2NhZGkvc2VydmxldC1zYW1wbGUvYnVpbGQuc2gKKysrIGIvY2FkaS9zZXJ2bGV0LXNhbXBsZS9idWlsZC5zaApAQCAtMSw0ICsxLDI0IEBACiAjIS9iaW4vYmFzaAorIyMjIyMjIyMjCisjICA9PT09PT09PT09PT1MSUNFTlNFX1NUQVJUPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgb3JnLm9uYXAuYWFmCisjICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgIENvcHlyaWdodCAoYykgMjAxNyBBVCZUIEludGVsbGVjdHVhbCBQcm9wZXJ0eS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMgID09PT09PT09PT09PUxJQ0VOU0VfRU5EPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIworCiBybSAtUmYgV0VCLUlORi9jbGFzc2VzLyoKIGNwIC1SZiB0YXJnZXQvdGVzdC1jbGFzc2VzLyogV0VCLUlORi9jbGFzc2VzCiBqYXIgLWN2ZiBjYWRpdGVzdC53YXIgTUVUQS1JTkYgV0VCLUlORiBpbmRleC5odG1sCg==