ZGlmZiAtLWdpdCBhL0luY2x1ZGUvc3RtMzJsNDEyeHguaCBiL0luY2x1ZGUvc3RtMzJsNDEyeHguaAppbmRleCBkMzhiMDMzLi5jZTBlY2M2IDEwMDY0NAotLS0gYS9JbmNsdWRlL3N0bTMybDQxMnh4LmgKKysrIGIvSW5jbHVkZS9zdG0zMmw0MTJ4eC5oCkBAIC03LDE4ICs3LDE3IEBACiAgICogICAgICAgICAgVGhpcyBmaWxlIGNvbnRhaW5zOgogICAqICAgICAgICAgICAtIERhdGEgc3RydWN0dXJlcyBhbmQgdGhlIGFkZHJlc3MgbWFwcGluZyBmb3IgYWxsIHBlcmlwaGVyYWxzCiAgICogICAgICAgICAgIC0gUGVyaXBoZXJhbCdzIHJlZ2lzdGVycyBkZWNsYXJhdGlvbnMgYW5kIGJpdHMgZGVmaW5pdGlvbgotICAqICAgICAgICAgICAtIE1hY3JvcyB0byBhY2Nlc3MgcGVyaXBoZXJhbJJzIHJlZ2lzdGVycyBoYXJkd2FyZQorICAqICAgICAgICAgICAtIE1hY3JvcyB0byBhY2Nlc3MgcGVyaXBoZXJhbCdzIHJlZ2lzdGVycyBoYXJkd2FyZQogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC00NSwxMSArNDQsMTEgQEAKIC8qKgogICAqIEBicmllZiBDb25maWd1cmF0aW9uIG9mIHRoZSBDb3J0ZXgtTTQgUHJvY2Vzc29yIGFuZCBDb3JlIFBlcmlwaGVyYWxzCiAgICAqLwotI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyohPCBDb3J0ZXgtTTQgcmV2aXNpb24gcjBwMSAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgX19NUFVfUFJFU0VOVCAgICAgICAgICAgICAxICAgICAgIC8qITwgU1RNMzJMNFhYIHByb3ZpZGVzIGFuIE1QVSAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTlZJQ19QUklPX0JJVFMgICAgICAgICAgNCAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLwotI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDAgICAgICAgLyohPCBTZXQgdG8gMSBpZiBkaWZmZXJlbnQgU3lzVGljayBDb25maWcgaXMgdXNlZCAgKi8KLSNkZWZpbmUgX19GUFVfUFJFU0VOVCAgICAgICAgICAgICAxICAgICAgIC8qITwgRlBVIHByZXNlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fQ000X1JFViAgICAgICAgICAgICAgICAgMHgwMDAxVSAgLyohPCBDb3J0ZXgtTTQgcmV2aXNpb24gcjBwMSAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19NUFVfUFJFU0VOVCAgICAgICAgICAgICAxVSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDRVICAgICAgIC8qITwgU1RNMzJMNFhYIHVzZXMgNCBCaXRzIGZvciB0aGUgUHJpb3JpdHkgTGV2ZWxzICovCisjZGVmaW5lIF9fVmVuZG9yX1N5c1RpY2tDb25maWcgICAgMFUgICAgICAgLyohPCBTZXQgdG8gMSBpZiBkaWZmZXJlbnQgU3lzVGljayBDb25maWcgaXMgdXNlZCAgKi8KKyNkZWZpbmUgX19GUFVfUFJFU0VOVCAgICAgICAgICAgICAxVSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAvKioKICAgKiBAfQpAQCAtMTAxMSw2ICsxMDEwLDE1IEBACiAgICogQHsKICAgKi8KIAorLyoqIEBhZGR0b2dyb3VwIEhhcmR3YXJlX0NvbnN0YW50X0RlZmluaXRpb24KKyAgKiBAeworICAqLworI2RlZmluZSBMU0lfU1RBUlRVUF9USU1FIDEzMFUgLyohPCBMU0kgTWF4aW11bSBzdGFydHVwIHRpbWUgaW4gdXMgKi8KKworLyoqCisgICogQH0KKyAgKi8KKwogLyoqIEBhZGR0b2dyb3VwIFBlcmlwaGVyYWxfUmVnaXN0ZXJzX0JpdHNfRGVmaW5pdGlvbgogICAqIEB7CiAgICovCkBAIC0xMTYxLDcgKzExNjksNyBAQAogCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX1BvcyAgICAgICAgICAgICAoNVUpCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAoMHgxVUwgPDwgQURDX0NGR1JfQUxJR05fUG9zKSAgICAgICAgICAgLyohPCAweDAwMDAwMDIwICovCi0jZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbmVtZW50ICovCisjZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbm1lbnQgKi8KIAogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfUG9zICAgICAgICAgICAgKDZVKQogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfTXNrICAgICAgICAgICAgKDB4RlVMIDw8IEFEQ19DRkdSX0VYVFNFTF9Qb3MpICAgICAgICAgIC8qITwgMHgwMDAwMDNDMCAqLwpAQCAtMTA5MTAsNCArMTA5MTgsMyBAQAogICAqIEB9CiAgICovCiAKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0bTMybDQyMnh4LmggYi9JbmNsdWRlL3N0bTMybDQyMnh4LmgKaW5kZXggZTFiYzBlNi4uNDJhOTRiZCAxMDA2NDQKLS0tIGEvSW5jbHVkZS9zdG0zMmw0MjJ4eC5oCisrKyBiL0luY2x1ZGUvc3RtMzJsNDIyeHguaApAQCAtNywxOCArNywxNyBAQAogICAqICAgICAgICAgIFRoaXMgZmlsZSBjb250YWluczoKICAgKiAgICAgICAgICAgLSBEYXRhIHN0cnVjdHVyZXMgYW5kIHRoZSBhZGRyZXNzIG1hcHBpbmcgZm9yIGFsbCBwZXJpcGhlcmFscwogICAqICAgICAgICAgICAtIFBlcmlwaGVyYWwncyByZWdpc3RlcnMgZGVjbGFyYXRpb25zIGFuZCBiaXRzIGRlZmluaXRpb24KLSAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWyScyByZWdpc3RlcnMgaGFyZHdhcmUKKyAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWwncyByZWdpc3RlcnMgaGFyZHdhcmUKICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNDUsMTEgKzQ0LDExIEBACiAvKioKICAgKiBAYnJpZWYgQ29uZmlndXJhdGlvbiBvZiB0aGUgQ29ydGV4LU00IFByb2Nlc3NvciBhbmQgQ29yZSBQZXJpcGhlcmFscwogICAgKi8KLSNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDEgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDQgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KLSNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCi0jZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMVUgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0VSAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLworI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDBVICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCisjZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogLyoqCiAgICogQH0KQEAgLTEwNDYsNiArMTA0NSwxNSBAQAogICAqIEB7CiAgICovCiAKKy8qKiBAYWRkdG9ncm91cCBIYXJkd2FyZV9Db25zdGFudF9EZWZpbml0aW9uCisgICogQHsKKyAgKi8KKyNkZWZpbmUgTFNJX1NUQVJUVVBfVElNRSAxMzBVIC8qITwgTFNJIE1heGltdW0gc3RhcnR1cCB0aW1lIGluIHVzICovCisKKy8qKgorICAqIEB9CisgICovCisKIC8qKiBAYWRkdG9ncm91cCBQZXJpcGhlcmFsX1JlZ2lzdGVyc19CaXRzX0RlZmluaXRpb24KICAgKiBAewogICAqLwpAQCAtMTE5Niw3ICsxMjA0LDcgQEAKIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Qb3MgICAgICAgICAgICAgKDVVKQogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgKDB4MVVMIDw8IEFEQ19DRkdSX0FMSUdOX1BvcykgICAgICAgICAgIC8qITwgMHgwMDAwMDAyMCAqLwotI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25lbWVudCAqLworI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25tZW50ICovCiAKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX1BvcyAgICAgICAgICAgICg2VSkKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX01zayAgICAgICAgICAgICgweEZVTCA8PCBBRENfQ0ZHUl9FWFRTRUxfUG9zKSAgICAgICAgICAvKiE8IDB4MDAwMDAzQzAgKi8KQEAgLTExMTM4LDQgKzExMTQ2LDMgQEAKICAgKiBAfQogICAqLwogCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9zdG0zMmw0MzF4eC5oIGIvSW5jbHVkZS9zdG0zMmw0MzF4eC5oCmluZGV4IDdiZjYwMTEuLmEwZGM0MTQgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvc3RtMzJsNDMxeHguaAorKysgYi9JbmNsdWRlL3N0bTMybDQzMXh4LmgKQEAgLTcsMTggKzcsMTcgQEAKICAgKiAgICAgICAgICBUaGlzIGZpbGUgY29udGFpbnM6CiAgICogICAgICAgICAgIC0gRGF0YSBzdHJ1Y3R1cmVzIGFuZCB0aGUgYWRkcmVzcyBtYXBwaW5nIGZvciBhbGwgcGVyaXBoZXJhbHMKICAgKiAgICAgICAgICAgLSBQZXJpcGhlcmFsJ3MgcmVnaXN0ZXJzIGRlY2xhcmF0aW9ucyBhbmQgYml0cyBkZWZpbml0aW9uCi0gICogICAgICAgICAgIC0gTWFjcm9zIHRvIGFjY2VzcyBwZXJpcGhlcmFsknMgcmVnaXN0ZXJzIGhhcmR3YXJlCisgICogICAgICAgICAgIC0gTWFjcm9zIHRvIGFjY2VzcyBwZXJpcGhlcmFsJ3MgcmVnaXN0ZXJzIGhhcmR3YXJlCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTQ1LDExICs0NCwxMSBAQAogLyoqCiAgICogQGJyaWVmIENvbmZpZ3VyYXRpb24gb2YgdGhlIENvcnRleC1NNCBQcm9jZXNzb3IgYW5kIENvcmUgUGVyaXBoZXJhbHMKICAgICovCi0jZGVmaW5lIF9fQ000X1JFViAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiE8IENvcnRleC1NNCByZXZpc2lvbiByMHAxICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX01QVV9QUkVTRU5UICAgICAgICAgICAgIDEgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0ICAgICAgIC8qITwgU1RNMzJMNFhYIHVzZXMgNCBCaXRzIGZvciB0aGUgUHJpb3JpdHkgTGV2ZWxzICovCi0jZGVmaW5lIF9fVmVuZG9yX1N5c1RpY2tDb25maWcgICAgMCAgICAgICAvKiE8IFNldCB0byAxIGlmIGRpZmZlcmVudCBTeXNUaWNrIENvbmZpZyBpcyB1c2VkICAqLwotI2RlZmluZSBfX0ZQVV9QUkVTRU5UICAgICAgICAgICAgIDEgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDFVICAvKiE8IENvcnRleC1NNCByZXZpc2lvbiByMHAxICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX01QVV9QUkVTRU5UICAgICAgICAgICAgIDFVICAgICAgIC8qITwgU1RNMzJMNFhYIHByb3ZpZGVzIGFuIE1QVSAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTlZJQ19QUklPX0JJVFMgICAgICAgICAgNFUgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KKyNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwVSAgICAgICAvKiE8IFNldCB0byAxIGlmIGRpZmZlcmVudCBTeXNUaWNrIENvbmZpZyBpcyB1c2VkICAqLworI2RlZmluZSBfX0ZQVV9QUkVTRU5UICAgICAgICAgICAgIDFVICAgICAgIC8qITwgRlBVIHByZXNlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAKIC8qKgogICAqIEB9CkBAIC0xMTQ1LDYgKzExNDQsMTUgQEAKICAgKiBAewogICAqLwogCisvKiogQGFkZHRvZ3JvdXAgSGFyZHdhcmVfQ29uc3RhbnRfRGVmaW5pdGlvbgorICAqIEB7CisgICovCisjZGVmaW5lIExTSV9TVEFSVFVQX1RJTUUgMTMwVSAvKiE8IExTSSBNYXhpbXVtIHN0YXJ0dXAgdGltZSBpbiB1cyAqLworCisvKioKKyAgKiBAfQorICAqLworCiAvKiogQGFkZHRvZ3JvdXAgUGVyaXBoZXJhbF9SZWdpc3RlcnNfQml0c19EZWZpbml0aW9uCiAgICogQHsKICAgKi8KQEAgLTEyOTUsNyArMTMwMyw3IEBACiAKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fUG9zICAgICAgICAgICAgICg1VSkKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICgweDFVTCA8PCBBRENfQ0ZHUl9BTElHTl9Qb3MpICAgICAgICAgICAvKiE8IDB4MDAwMDAwMjAgKi8KLSNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWduZW1lbnQgKi8KKyNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWdubWVudCAqLwogCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Qb3MgICAgICAgICAgICAoNlUpCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Nc2sgICAgICAgICAgICAoMHhGVUwgPDwgQURDX0NGR1JfRVhUU0VMX1BvcykgICAgICAgICAgLyohPCAweDAwMDAwM0MwICovCkBAIC0xNTA2NSw0ICsxNTA3MywzIEBACiAgICogQH0KICAgKi8KIAotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvc3RtMzJsNDMyeHguaCBiL0luY2x1ZGUvc3RtMzJsNDMyeHguaAppbmRleCAyMjczMTNiLi4yOTUyNWE5IDEwMDY0NAotLS0gYS9JbmNsdWRlL3N0bTMybDQzMnh4LmgKKysrIGIvSW5jbHVkZS9zdG0zMmw0MzJ4eC5oCkBAIC03LDE4ICs3LDE3IEBACiAgICogICAgICAgICAgVGhpcyBmaWxlIGNvbnRhaW5zOgogICAqICAgICAgICAgICAtIERhdGEgc3RydWN0dXJlcyBhbmQgdGhlIGFkZHJlc3MgbWFwcGluZyBmb3IgYWxsIHBlcmlwaGVyYWxzCiAgICogICAgICAgICAgIC0gUGVyaXBoZXJhbCdzIHJlZ2lzdGVycyBkZWNsYXJhdGlvbnMgYW5kIGJpdHMgZGVmaW5pdGlvbgotICAqICAgICAgICAgICAtIE1hY3JvcyB0byBhY2Nlc3MgcGVyaXBoZXJhbJJzIHJlZ2lzdGVycyBoYXJkd2FyZQorICAqICAgICAgICAgICAtIE1hY3JvcyB0byBhY2Nlc3MgcGVyaXBoZXJhbCdzIHJlZ2lzdGVycyBoYXJkd2FyZQogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC00NSwxMSArNDQsMTEgQEAKIC8qKgogICAqIEBicmllZiBDb25maWd1cmF0aW9uIG9mIHRoZSBDb3J0ZXgtTTQgUHJvY2Vzc29yIGFuZCBDb3JlIFBlcmlwaGVyYWxzCiAgICAqLwotI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyohPCBDb3J0ZXgtTTQgcmV2aXNpb24gcjBwMSAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgX19NUFVfUFJFU0VOVCAgICAgICAgICAgICAxICAgICAgIC8qITwgU1RNMzJMNFhYIHByb3ZpZGVzIGFuIE1QVSAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTlZJQ19QUklPX0JJVFMgICAgICAgICAgNCAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLwotI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDAgICAgICAgLyohPCBTZXQgdG8gMSBpZiBkaWZmZXJlbnQgU3lzVGljayBDb25maWcgaXMgdXNlZCAgKi8KLSNkZWZpbmUgX19GUFVfUFJFU0VOVCAgICAgICAgICAgICAxICAgICAgIC8qITwgRlBVIHByZXNlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fQ000X1JFViAgICAgICAgICAgICAgICAgMHgwMDAxVSAgLyohPCBDb3J0ZXgtTTQgcmV2aXNpb24gcjBwMSAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19NUFVfUFJFU0VOVCAgICAgICAgICAgICAxVSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDRVICAgICAgIC8qITwgU1RNMzJMNFhYIHVzZXMgNCBCaXRzIGZvciB0aGUgUHJpb3JpdHkgTGV2ZWxzICovCisjZGVmaW5lIF9fVmVuZG9yX1N5c1RpY2tDb25maWcgICAgMFUgICAgICAgLyohPCBTZXQgdG8gMSBpZiBkaWZmZXJlbnQgU3lzVGljayBDb25maWcgaXMgdXNlZCAgKi8KKyNkZWZpbmUgX19GUFVfUFJFU0VOVCAgICAgICAgICAgICAxVSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAvKioKICAgKiBAfQpAQCAtMTEzMCw2ICsxMTI5LDE1IEBACiAgICogQHsKICAgKi8KIAorLyoqIEBhZGR0b2dyb3VwIEhhcmR3YXJlX0NvbnN0YW50X0RlZmluaXRpb24KKyAgKiBAeworICAqLworI2RlZmluZSBMU0lfU1RBUlRVUF9USU1FIDEzMFUgLyohPCBMU0kgTWF4aW11bSBzdGFydHVwIHRpbWUgaW4gdXMgKi8KKworLyoqCisgICogQH0KKyAgKi8KKwogLyoqIEBhZGR0b2dyb3VwIFBlcmlwaGVyYWxfUmVnaXN0ZXJzX0JpdHNfRGVmaW5pdGlvbgogICAqIEB7CiAgICovCkBAIC0xMjgwLDcgKzEyODgsNyBAQAogCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX1BvcyAgICAgICAgICAgICAoNVUpCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAoMHgxVUwgPDwgQURDX0NGR1JfQUxJR05fUG9zKSAgICAgICAgICAgLyohPCAweDAwMDAwMDIwICovCi0jZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbmVtZW50ICovCisjZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbm1lbnQgKi8KIAogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfUG9zICAgICAgICAgICAgKDZVKQogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfTXNrICAgICAgICAgICAgKDB4RlVMIDw8IEFEQ19DRkdSX0VYVFNFTF9Qb3MpICAgICAgICAgIC8qITwgMHgwMDAwMDNDMCAqLwpAQCAtMTQ4NTksNCArMTQ4NjcsMyBAQAogICAqIEB9CiAgICovCiAKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0bTMybDQzM3h4LmggYi9JbmNsdWRlL3N0bTMybDQzM3h4LmgKaW5kZXggNjYxMDA5Zi4uY2FkZTBjMiAxMDA2NDQKLS0tIGEvSW5jbHVkZS9zdG0zMmw0MzN4eC5oCisrKyBiL0luY2x1ZGUvc3RtMzJsNDMzeHguaApAQCAtNywxOCArNywxNyBAQAogICAqICAgICAgICAgIFRoaXMgZmlsZSBjb250YWluczoKICAgKiAgICAgICAgICAgLSBEYXRhIHN0cnVjdHVyZXMgYW5kIHRoZSBhZGRyZXNzIG1hcHBpbmcgZm9yIGFsbCBwZXJpcGhlcmFscwogICAqICAgICAgICAgICAtIFBlcmlwaGVyYWwncyByZWdpc3RlcnMgZGVjbGFyYXRpb25zIGFuZCBiaXRzIGRlZmluaXRpb24KLSAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWyScyByZWdpc3RlcnMgaGFyZHdhcmUKKyAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWwncyByZWdpc3RlcnMgaGFyZHdhcmUKICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNDUsMTEgKzQ0LDExIEBACiAvKioKICAgKiBAYnJpZWYgQ29uZmlndXJhdGlvbiBvZiB0aGUgQ29ydGV4LU00IFByb2Nlc3NvciBhbmQgQ29yZSBQZXJpcGhlcmFscwogICAgKi8KLSNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDEgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDQgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KLSNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCi0jZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMVUgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0VSAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLworI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDBVICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCisjZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogLyoqCiAgICogQH0KQEAgLTEyMDQsNiArMTIwMywxNSBAQAogICAqIEB7CiAgICovCiAKKy8qKiBAYWRkdG9ncm91cCBIYXJkd2FyZV9Db25zdGFudF9EZWZpbml0aW9uCisgICogQHsKKyAgKi8KKyNkZWZpbmUgTFNJX1NUQVJUVVBfVElNRSAxMzBVIC8qITwgTFNJIE1heGltdW0gc3RhcnR1cCB0aW1lIGluIHVzICovCisKKy8qKgorICAqIEB9CisgICovCisKIC8qKiBAYWRkdG9ncm91cCBQZXJpcGhlcmFsX1JlZ2lzdGVyc19CaXRzX0RlZmluaXRpb24KICAgKiBAewogICAqLwpAQCAtMTM1NCw3ICsxMzYyLDcgQEAKIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Qb3MgICAgICAgICAgICAgKDVVKQogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgKDB4MVVMIDw8IEFEQ19DRkdSX0FMSUdOX1BvcykgICAgICAgICAgIC8qITwgMHgwMDAwMDAyMCAqLwotI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25lbWVudCAqLworI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25tZW50ICovCiAKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX1BvcyAgICAgICAgICAgICg2VSkKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX01zayAgICAgICAgICAgICgweEZVTCA8PCBBRENfQ0ZHUl9FWFRTRUxfUG9zKSAgICAgICAgICAvKiE8IDB4MDAwMDAzQzAgKi8KQEAgLTE1OTYzLDQgKzE1OTcxLDMgQEAKICAgKiBAfQogICAqLwogCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9zdG0zMmw0NDJ4eC5oIGIvSW5jbHVkZS9zdG0zMmw0NDJ4eC5oCmluZGV4IDg4OWQ0NDIuLjU4Njg5MWMgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvc3RtMzJsNDQyeHguaAorKysgYi9JbmNsdWRlL3N0bTMybDQ0Mnh4LmgKQEAgLTcsMTggKzcsMTcgQEAKICAgKiAgICAgICAgICBUaGlzIGZpbGUgY29udGFpbnM6CiAgICogICAgICAgICAgIC0gRGF0YSBzdHJ1Y3R1cmVzIGFuZCB0aGUgYWRkcmVzcyBtYXBwaW5nIGZvciBhbGwgcGVyaXBoZXJhbHMKICAgKiAgICAgICAgICAgLSBQZXJpcGhlcmFsJ3MgcmVnaXN0ZXJzIGRlY2xhcmF0aW9ucyBhbmQgYml0cyBkZWZpbml0aW9uCi0gICogICAgICAgICAgIC0gTWFjcm9zIHRvIGFjY2VzcyBwZXJpcGhlcmFsknMgcmVnaXN0ZXJzIGhhcmR3YXJlCisgICogICAgICAgICAgIC0gTWFjcm9zIHRvIGFjY2VzcyBwZXJpcGhlcmFsJ3MgcmVnaXN0ZXJzIGhhcmR3YXJlCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTQ1LDExICs0NCwxMSBAQAogLyoqCiAgICogQGJyaWVmIENvbmZpZ3VyYXRpb24gb2YgdGhlIENvcnRleC1NNCBQcm9jZXNzb3IgYW5kIENvcmUgUGVyaXBoZXJhbHMKICAgICovCi0jZGVmaW5lIF9fQ000X1JFViAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiE8IENvcnRleC1NNCByZXZpc2lvbiByMHAxICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX01QVV9QUkVTRU5UICAgICAgICAgICAgIDEgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0ICAgICAgIC8qITwgU1RNMzJMNFhYIHVzZXMgNCBCaXRzIGZvciB0aGUgUHJpb3JpdHkgTGV2ZWxzICovCi0jZGVmaW5lIF9fVmVuZG9yX1N5c1RpY2tDb25maWcgICAgMCAgICAgICAvKiE8IFNldCB0byAxIGlmIGRpZmZlcmVudCBTeXNUaWNrIENvbmZpZyBpcyB1c2VkICAqLwotI2RlZmluZSBfX0ZQVV9QUkVTRU5UICAgICAgICAgICAgIDEgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDFVICAvKiE8IENvcnRleC1NNCByZXZpc2lvbiByMHAxICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX01QVV9QUkVTRU5UICAgICAgICAgICAgIDFVICAgICAgIC8qITwgU1RNMzJMNFhYIHByb3ZpZGVzIGFuIE1QVSAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTlZJQ19QUklPX0JJVFMgICAgICAgICAgNFUgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KKyNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwVSAgICAgICAvKiE8IFNldCB0byAxIGlmIGRpZmZlcmVudCBTeXNUaWNrIENvbmZpZyBpcyB1c2VkICAqLworI2RlZmluZSBfX0ZQVV9QUkVTRU5UICAgICAgICAgICAgIDFVICAgICAgIC8qITwgRlBVIHByZXNlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAKIC8qKgogICAqIEB9CkBAIC0xMTY1LDYgKzExNjQsMTUgQEAKICAgKiBAewogICAqLwogCisvKiogQGFkZHRvZ3JvdXAgSGFyZHdhcmVfQ29uc3RhbnRfRGVmaW5pdGlvbgorICAqIEB7CisgICovCisjZGVmaW5lIExTSV9TVEFSVFVQX1RJTUUgMTMwVSAvKiE8IExTSSBNYXhpbXVtIHN0YXJ0dXAgdGltZSBpbiB1cyAqLworCisvKioKKyAgKiBAfQorICAqLworCiAvKiogQGFkZHRvZ3JvdXAgUGVyaXBoZXJhbF9SZWdpc3RlcnNfQml0c19EZWZpbml0aW9uCiAgICogQHsKICAgKi8KQEAgLTEzMTUsNyArMTMyMyw3IEBACiAKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fUG9zICAgICAgICAgICAgICg1VSkKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICgweDFVTCA8PCBBRENfQ0ZHUl9BTElHTl9Qb3MpICAgICAgICAgICAvKiE8IDB4MDAwMDAwMjAgKi8KLSNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWduZW1lbnQgKi8KKyNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWdubWVudCAqLwogCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Qb3MgICAgICAgICAgICAoNlUpCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Nc2sgICAgICAgICAgICAoMHhGVUwgPDwgQURDX0NGR1JfRVhUU0VMX1BvcykgICAgICAgICAgLyohPCAweDAwMDAwM0MwICovCkBAIC0xNTA4Nyw0ICsxNTA5NSwzIEBACiAgICogQH0KICAgKi8KIAotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvc3RtMzJsNDQzeHguaCBiL0luY2x1ZGUvc3RtMzJsNDQzeHguaAppbmRleCBkNDJiOGE5Li4wYjRjNDczIDEwMDY0NAotLS0gYS9JbmNsdWRlL3N0bTMybDQ0M3h4LmgKKysrIGIvSW5jbHVkZS9zdG0zMmw0NDN4eC5oCkBAIC03LDE4ICs3LDE3IEBACiAgICogICAgICAgICAgVGhpcyBmaWxlIGNvbnRhaW5zOgogICAqICAgICAgICAgICAtIERhdGEgc3RydWN0dXJlcyBhbmQgdGhlIGFkZHJlc3MgbWFwcGluZyBmb3IgYWxsIHBlcmlwaGVyYWxzCiAgICogICAgICAgICAgIC0gUGVyaXBoZXJhbCdzIHJlZ2lzdGVycyBkZWNsYXJhdGlvbnMgYW5kIGJpdHMgZGVmaW5pdGlvbgotICAqICAgICAgICAgICAtIE1hY3JvcyB0byBhY2Nlc3MgcGVyaXBoZXJhbJJzIHJlZ2lzdGVycyBoYXJkd2FyZQorICAqICAgICAgICAgICAtIE1hY3JvcyB0byBhY2Nlc3MgcGVyaXBoZXJhbCdzIHJlZ2lzdGVycyBoYXJkd2FyZQogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC00NSwxMSArNDQsMTEgQEAKIC8qKgogICAqIEBicmllZiBDb25maWd1cmF0aW9uIG9mIHRoZSBDb3J0ZXgtTTQgUHJvY2Vzc29yIGFuZCBDb3JlIFBlcmlwaGVyYWxzCiAgICAqLwotI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyohPCBDb3J0ZXgtTTQgcmV2aXNpb24gcjBwMSAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgX19NUFVfUFJFU0VOVCAgICAgICAgICAgICAxICAgICAgIC8qITwgU1RNMzJMNFhYIHByb3ZpZGVzIGFuIE1QVSAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTlZJQ19QUklPX0JJVFMgICAgICAgICAgNCAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLwotI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDAgICAgICAgLyohPCBTZXQgdG8gMSBpZiBkaWZmZXJlbnQgU3lzVGljayBDb25maWcgaXMgdXNlZCAgKi8KLSNkZWZpbmUgX19GUFVfUFJFU0VOVCAgICAgICAgICAgICAxICAgICAgIC8qITwgRlBVIHByZXNlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fQ000X1JFViAgICAgICAgICAgICAgICAgMHgwMDAxVSAgLyohPCBDb3J0ZXgtTTQgcmV2aXNpb24gcjBwMSAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19NUFVfUFJFU0VOVCAgICAgICAgICAgICAxVSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDRVICAgICAgIC8qITwgU1RNMzJMNFhYIHVzZXMgNCBCaXRzIGZvciB0aGUgUHJpb3JpdHkgTGV2ZWxzICovCisjZGVmaW5lIF9fVmVuZG9yX1N5c1RpY2tDb25maWcgICAgMFUgICAgICAgLyohPCBTZXQgdG8gMSBpZiBkaWZmZXJlbnQgU3lzVGljayBDb25maWcgaXMgdXNlZCAgKi8KKyNkZWZpbmUgX19GUFVfUFJFU0VOVCAgICAgICAgICAgICAxVSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAvKioKICAgKiBAfQpAQCAtMTIzOSw2ICsxMjM4LDE1IEBACiAgICogQHsKICAgKi8KIAorLyoqIEBhZGR0b2dyb3VwIEhhcmR3YXJlX0NvbnN0YW50X0RlZmluaXRpb24KKyAgKiBAeworICAqLworI2RlZmluZSBMU0lfU1RBUlRVUF9USU1FIDEzMFUgLyohPCBMU0kgTWF4aW11bSBzdGFydHVwIHRpbWUgaW4gdXMgKi8KKworLyoqCisgICogQH0KKyAgKi8KKwogLyoqIEBhZGR0b2dyb3VwIFBlcmlwaGVyYWxfUmVnaXN0ZXJzX0JpdHNfRGVmaW5pdGlvbgogICAqIEB7CiAgICovCkBAIC0xMzg5LDcgKzEzOTcsNyBAQAogCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX1BvcyAgICAgICAgICAgICAoNVUpCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAoMHgxVUwgPDwgQURDX0NGR1JfQUxJR05fUG9zKSAgICAgICAgICAgLyohPCAweDAwMDAwMDIwICovCi0jZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbmVtZW50ICovCisjZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbm1lbnQgKi8KIAogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfUG9zICAgICAgICAgICAgKDZVKQogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfTXNrICAgICAgICAgICAgKDB4RlVMIDw8IEFEQ19DRkdSX0VYVFNFTF9Qb3MpICAgICAgICAgIC8qITwgMHgwMDAwMDNDMCAqLwpAQCAtMTYxOTEsNCArMTYxOTksMyBAQAogICAqIEB9CiAgICovCiAKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0bTMybDQ1MXh4LmggYi9JbmNsdWRlL3N0bTMybDQ1MXh4LmgKaW5kZXggNTcxYTMyZS4uYWY0MzEzNCAxMDA2NDQKLS0tIGEvSW5jbHVkZS9zdG0zMmw0NTF4eC5oCisrKyBiL0luY2x1ZGUvc3RtMzJsNDUxeHguaApAQCAtNywxOCArNywxNyBAQAogICAqICAgICAgICAgIFRoaXMgZmlsZSBjb250YWluczoKICAgKiAgICAgICAgICAgLSBEYXRhIHN0cnVjdHVyZXMgYW5kIHRoZSBhZGRyZXNzIG1hcHBpbmcgZm9yIGFsbCBwZXJpcGhlcmFscwogICAqICAgICAgICAgICAtIFBlcmlwaGVyYWwncyByZWdpc3RlcnMgZGVjbGFyYXRpb25zIGFuZCBiaXRzIGRlZmluaXRpb24KLSAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWyScyByZWdpc3RlcnMgaGFyZHdhcmUKKyAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWwncyByZWdpc3RlcnMgaGFyZHdhcmUKICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNDUsMTEgKzQ0LDExIEBACiAvKioKICAgKiBAYnJpZWYgQ29uZmlndXJhdGlvbiBvZiB0aGUgQ29ydGV4LU00IFByb2Nlc3NvciBhbmQgQ29yZSBQZXJpcGhlcmFscwogICAgKi8KLSNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDEgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDQgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KLSNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCi0jZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMVUgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0VSAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLworI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDBVICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCisjZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogLyoqCiAgICogQH0KQEAgLTExODcsNiArMTE4NiwxNSBAQAogICAqIEB7CiAgICovCiAKKy8qKiBAYWRkdG9ncm91cCBIYXJkd2FyZV9Db25zdGFudF9EZWZpbml0aW9uCisgICogQHsKKyAgKi8KKyNkZWZpbmUgTFNJX1NUQVJUVVBfVElNRSAxMzBVIC8qITwgTFNJIE1heGltdW0gc3RhcnR1cCB0aW1lIGluIHVzICovCisKKy8qKgorICAqIEB9CisgICovCisKIC8qKiBAYWRkdG9ncm91cCBQZXJpcGhlcmFsX1JlZ2lzdGVyc19CaXRzX0RlZmluaXRpb24KICAgKiBAewogICAqLwpAQCAtMTM0MSw3ICsxMzQ5LDcgQEAKIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Qb3MgICAgICAgICAgICAgKDVVKQogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgKDB4MVVMIDw8IEFEQ19DRkdSX0FMSUdOX1BvcykgICAgICAgICAgIC8qITwgMHgwMDAwMDAyMCAqLwotI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25lbWVudCAqLworI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25tZW50ICovCiAKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX1BvcyAgICAgICAgICAgICg2VSkKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX01zayAgICAgICAgICAgICgweEZVTCA8PCBBRENfQ0ZHUl9FWFRTRUxfUG9zKSAgICAgICAgICAvKiE8IDB4MDAwMDAzQzAgKi8KQEAgLTE1MzI2LDQgKzE1MzM0LDMgQEAKICAgKiBAfQogICAqLwogCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9zdG0zMmw0NTJ4eC5oIGIvSW5jbHVkZS9zdG0zMmw0NTJ4eC5oCmluZGV4IDA5Njc2MmYuLmFhNDZmZWIgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvc3RtMzJsNDUyeHguaAorKysgYi9JbmNsdWRlL3N0bTMybDQ1Mnh4LmgKQEAgLTcsMTggKzcsMTcgQEAKICAgKiAgICAgICAgICBUaGlzIGZpbGUgY29udGFpbnM6CiAgICogICAgICAgICAgIC0gRGF0YSBzdHJ1Y3R1cmVzIGFuZCB0aGUgYWRkcmVzcyBtYXBwaW5nIGZvciBhbGwgcGVyaXBoZXJhbHMKICAgKiAgICAgICAgICAgLSBQZXJpcGhlcmFsJ3MgcmVnaXN0ZXJzIGRlY2xhcmF0aW9ucyBhbmQgYml0cyBkZWZpbml0aW9uCi0gICogICAgICAgICAgIC0gTWFjcm9zIHRvIGFjY2VzcyBwZXJpcGhlcmFsknMgcmVnaXN0ZXJzIGhhcmR3YXJlCisgICogICAgICAgICAgIC0gTWFjcm9zIHRvIGFjY2VzcyBwZXJpcGhlcmFsJ3MgcmVnaXN0ZXJzIGhhcmR3YXJlCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTQ1LDExICs0NCwxMSBAQAogLyoqCiAgICogQGJyaWVmIENvbmZpZ3VyYXRpb24gb2YgdGhlIENvcnRleC1NNCBQcm9jZXNzb3IgYW5kIENvcmUgUGVyaXBoZXJhbHMKICAgICovCi0jZGVmaW5lIF9fQ000X1JFViAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiE8IENvcnRleC1NNCByZXZpc2lvbiByMHAxICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX01QVV9QUkVTRU5UICAgICAgICAgICAgIDEgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0ICAgICAgIC8qITwgU1RNMzJMNFhYIHVzZXMgNCBCaXRzIGZvciB0aGUgUHJpb3JpdHkgTGV2ZWxzICovCi0jZGVmaW5lIF9fVmVuZG9yX1N5c1RpY2tDb25maWcgICAgMCAgICAgICAvKiE8IFNldCB0byAxIGlmIGRpZmZlcmVudCBTeXNUaWNrIENvbmZpZyBpcyB1c2VkICAqLwotI2RlZmluZSBfX0ZQVV9QUkVTRU5UICAgICAgICAgICAgIDEgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDFVICAvKiE8IENvcnRleC1NNCByZXZpc2lvbiByMHAxICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX01QVV9QUkVTRU5UICAgICAgICAgICAgIDFVICAgICAgIC8qITwgU1RNMzJMNFhYIHByb3ZpZGVzIGFuIE1QVSAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTlZJQ19QUklPX0JJVFMgICAgICAgICAgNFUgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KKyNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwVSAgICAgICAvKiE8IFNldCB0byAxIGlmIGRpZmZlcmVudCBTeXNUaWNrIENvbmZpZyBpcyB1c2VkICAqLworI2RlZmluZSBfX0ZQVV9QUkVTRU5UICAgICAgICAgICAgIDFVICAgICAgIC8qITwgRlBVIHByZXNlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAKIC8qKgogICAqIEB9CkBAIC0xMjI5LDYgKzEyMjgsMTUgQEAKICAgKiBAewogICAqLwogCisvKiogQGFkZHRvZ3JvdXAgSGFyZHdhcmVfQ29uc3RhbnRfRGVmaW5pdGlvbgorICAqIEB7CisgICovCisjZGVmaW5lIExTSV9TVEFSVFVQX1RJTUUgMTMwVSAvKiE8IExTSSBNYXhpbXVtIHN0YXJ0dXAgdGltZSBpbiB1cyAqLworCisvKioKKyAgKiBAfQorICAqLworCiAvKiogQGFkZHRvZ3JvdXAgUGVyaXBoZXJhbF9SZWdpc3RlcnNfQml0c19EZWZpbml0aW9uCiAgICogQHsKICAgKi8KQEAgLTEzODMsNyArMTM5MSw3IEBACiAKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fUG9zICAgICAgICAgICAgICg1VSkKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICgweDFVTCA8PCBBRENfQ0ZHUl9BTElHTl9Qb3MpICAgICAgICAgICAvKiE8IDB4MDAwMDAwMjAgKi8KLSNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWduZW1lbnQgKi8KKyNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWdubWVudCAqLwogCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Qb3MgICAgICAgICAgICAoNlUpCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Nc2sgICAgICAgICAgICAoMHhGVUwgPDwgQURDX0NGR1JfRVhUU0VMX1BvcykgICAgICAgICAgLyohPCAweDAwMDAwM0MwICovCkBAIC0xNjA3MCw0ICsxNjA3OCwzIEBACiAgICogQH0KICAgKi8KIAotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvc3RtMzJsNDYyeHguaCBiL0luY2x1ZGUvc3RtMzJsNDYyeHguaAppbmRleCAyYmI1OGM3Li43YTQ3YzIzIDEwMDY0NAotLS0gYS9JbmNsdWRlL3N0bTMybDQ2Mnh4LmgKKysrIGIvSW5jbHVkZS9zdG0zMmw0NjJ4eC5oCkBAIC03LDE4ICs3LDE3IEBACiAgICogICAgICAgICAgVGhpcyBmaWxlIGNvbnRhaW5zOgogICAqICAgICAgICAgICAtIERhdGEgc3RydWN0dXJlcyBhbmQgdGhlIGFkZHJlc3MgbWFwcGluZyBmb3IgYWxsIHBlcmlwaGVyYWxzCiAgICogICAgICAgICAgIC0gUGVyaXBoZXJhbCdzIHJlZ2lzdGVycyBkZWNsYXJhdGlvbnMgYW5kIGJpdHMgZGVmaW5pdGlvbgotICAqICAgICAgICAgICAtIE1hY3JvcyB0byBhY2Nlc3MgcGVyaXBoZXJhbJJzIHJlZ2lzdGVycyBoYXJkd2FyZQorICAqICAgICAgICAgICAtIE1hY3JvcyB0byBhY2Nlc3MgcGVyaXBoZXJhbCdzIHJlZ2lzdGVycyBoYXJkd2FyZQogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC00NSwxMSArNDQsMTEgQEAKIC8qKgogICAqIEBicmllZiBDb25maWd1cmF0aW9uIG9mIHRoZSBDb3J0ZXgtTTQgUHJvY2Vzc29yIGFuZCBDb3JlIFBlcmlwaGVyYWxzCiAgICAqLwotI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyohPCBDb3J0ZXgtTTQgcmV2aXNpb24gcjBwMSAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgX19NUFVfUFJFU0VOVCAgICAgICAgICAgICAxICAgICAgIC8qITwgU1RNMzJMNFhYIHByb3ZpZGVzIGFuIE1QVSAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTlZJQ19QUklPX0JJVFMgICAgICAgICAgNCAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLwotI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDAgICAgICAgLyohPCBTZXQgdG8gMSBpZiBkaWZmZXJlbnQgU3lzVGljayBDb25maWcgaXMgdXNlZCAgKi8KLSNkZWZpbmUgX19GUFVfUFJFU0VOVCAgICAgICAgICAgICAxICAgICAgIC8qITwgRlBVIHByZXNlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fQ000X1JFViAgICAgICAgICAgICAgICAgMHgwMDAxVSAgLyohPCBDb3J0ZXgtTTQgcmV2aXNpb24gcjBwMSAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19NUFVfUFJFU0VOVCAgICAgICAgICAgICAxVSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDRVICAgICAgIC8qITwgU1RNMzJMNFhYIHVzZXMgNCBCaXRzIGZvciB0aGUgUHJpb3JpdHkgTGV2ZWxzICovCisjZGVmaW5lIF9fVmVuZG9yX1N5c1RpY2tDb25maWcgICAgMFUgICAgICAgLyohPCBTZXQgdG8gMSBpZiBkaWZmZXJlbnQgU3lzVGljayBDb25maWcgaXMgdXNlZCAgKi8KKyNkZWZpbmUgX19GUFVfUFJFU0VOVCAgICAgICAgICAgICAxVSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAvKioKICAgKiBAfQpAQCAtMTI2NCw2ICsxMjYzLDE1IEBACiAgICogQHsKICAgKi8KIAorLyoqIEBhZGR0b2dyb3VwIEhhcmR3YXJlX0NvbnN0YW50X0RlZmluaXRpb24KKyAgKiBAeworICAqLworI2RlZmluZSBMU0lfU1RBUlRVUF9USU1FIDEzMFUgLyohPCBMU0kgTWF4aW11bSBzdGFydHVwIHRpbWUgaW4gdXMgKi8KKworLyoqCisgICogQH0KKyAgKi8KKwogLyoqIEBhZGR0b2dyb3VwIFBlcmlwaGVyYWxfUmVnaXN0ZXJzX0JpdHNfRGVmaW5pdGlvbgogICAqIEB7CiAgICovCkBAIC0xNDE4LDcgKzE0MjYsNyBAQAogCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX1BvcyAgICAgICAgICAgICAoNVUpCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAoMHgxVUwgPDwgQURDX0NGR1JfQUxJR05fUG9zKSAgICAgICAgICAgLyohPCAweDAwMDAwMDIwICovCi0jZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbmVtZW50ICovCisjZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbm1lbnQgKi8KIAogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfUG9zICAgICAgICAgICAgKDZVKQogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfTXNrICAgICAgICAgICAgKDB4RlVMIDw8IEFEQ19DRkdSX0VYVFNFTF9Qb3MpICAgICAgICAgIC8qITwgMHgwMDAwMDNDMCAqLwpAQCAtMTYyOTgsNCArMTYzMDYsMyBAQAogICAqIEB9CiAgICovCiAKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0bTMybDQ3MXh4LmggYi9JbmNsdWRlL3N0bTMybDQ3MXh4LmgKaW5kZXggODM0N2E4ZS4uMjBiYmRiNiAxMDA2NDQKLS0tIGEvSW5jbHVkZS9zdG0zMmw0NzF4eC5oCisrKyBiL0luY2x1ZGUvc3RtMzJsNDcxeHguaApAQCAtNywxOCArNywxNyBAQAogICAqICAgICAgICAgIFRoaXMgZmlsZSBjb250YWluczoKICAgKiAgICAgICAgICAgLSBEYXRhIHN0cnVjdHVyZXMgYW5kIHRoZSBhZGRyZXNzIG1hcHBpbmcgZm9yIGFsbCBwZXJpcGhlcmFscwogICAqICAgICAgICAgICAtIFBlcmlwaGVyYWwncyByZWdpc3RlcnMgZGVjbGFyYXRpb25zIGFuZCBiaXRzIGRlZmluaXRpb24KLSAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWyScyByZWdpc3RlcnMgaGFyZHdhcmUKKyAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWwncyByZWdpc3RlcnMgaGFyZHdhcmUKICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNDUsMTEgKzQ0LDExIEBACiAvKioKICAgKiBAYnJpZWYgQ29uZmlndXJhdGlvbiBvZiB0aGUgQ29ydGV4LU00IFByb2Nlc3NvciBhbmQgQ29yZSBQZXJpcGhlcmFscwogICAgKi8KLSNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDEgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDQgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KLSNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCi0jZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMVUgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0VSAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLworI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDBVICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCisjZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogLyoqCiAgICogQH0KQEAgLTEzMDEsNiArMTMwMCwxNSBAQAogICAqIEB7CiAgICovCiAKKy8qKiBAYWRkdG9ncm91cCBIYXJkd2FyZV9Db25zdGFudF9EZWZpbml0aW9uCisgICogQHsKKyAgKi8KKyNkZWZpbmUgTFNJX1NUQVJUVVBfVElNRSAxMzBVIC8qITwgTFNJIE1heGltdW0gc3RhcnR1cCB0aW1lIGluIHVzICovCisKKy8qKgorICAqIEB9CisgICovCisKIC8qKiBAYWRkdG9ncm91cCBQZXJpcGhlcmFsX1JlZ2lzdGVyc19CaXRzX0RlZmluaXRpb24KICAgKiBAewogICAqLwpAQCAtMTQ1MSw3ICsxNDU5LDcgQEAKIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Qb3MgICAgICAgICAgICAgKDVVKQogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgKDB4MVVMIDw8IEFEQ19DRkdSX0FMSUdOX1BvcykgICAgICAgICAgIC8qITwgMHgwMDAwMDAyMCAqLwotI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25lbWVudCAqLworI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25tZW50ICovCiAKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX1BvcyAgICAgICAgICAgICg2VSkKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX01zayAgICAgICAgICAgICgweEZVTCA8PCBBRENfQ0ZHUl9FWFRTRUxfUG9zKSAgICAgICAgICAvKiE8IDB4MDAwMDAzQzAgKi8KQEAgLTc2MDMsNyArNzYxMSw3IEBACiAvKioqKioqKioqKioqKioqKioqICBCaXQgZGVmaW5pdGlvbiBmb3IgRk1DX0JDUjEgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Qb3MgICAgICAgICgyMFUpCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICgweDFVTCA8PCBGTUNfQkNSMV9DQ0xLRU5fUG9zKSAgICAgICAgICAgICAgLyohPCAweDAwMTAwMDAwICovCi0jZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbm91cyBjbG9jayBlbmFibGUgICAgICovCisjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbnVvdXMgY2xvY2sgZW5hYmxlICAgICAqLwogCiAvKioqKioqKioqKioqKioqKioqICBCaXQgZGVmaW5pdGlvbiBmb3IgRk1DX0JDUnggcmVnaXN0ZXJzICh4PTEuLjQpICAqKioqKioqKiovCiAjZGVmaW5lIEZNQ19CQ1J4X01CS0VOX1BvcyAgICAgICAgICgwVSkKQEAgLTE2ODQyLDQgKzE2ODUwLDMgQEAKICAgKiBAfQogICAqLwogCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9zdG0zMmw0NzV4eC5oIGIvSW5jbHVkZS9zdG0zMmw0NzV4eC5oCmluZGV4IDA5YTNjYTIuLmJiMWVkMDUgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvc3RtMzJsNDc1eHguaAorKysgYi9JbmNsdWRlL3N0bTMybDQ3NXh4LmgKQEAgLTcsMTggKzcsMTcgQEAKICAgKiAgICAgICAgICBUaGlzIGZpbGUgY29udGFpbnM6CiAgICogICAgICAgICAgIC0gRGF0YSBzdHJ1Y3R1cmVzIGFuZCB0aGUgYWRkcmVzcyBtYXBwaW5nIGZvciBhbGwgcGVyaXBoZXJhbHMKICAgKiAgICAgICAgICAgLSBQZXJpcGhlcmFsJ3MgcmVnaXN0ZXJzIGRlY2xhcmF0aW9ucyBhbmQgYml0cyBkZWZpbml0aW9uCi0gICogICAgICAgICAgIC0gTWFjcm9zIHRvIGFjY2VzcyBwZXJpcGhlcmFsknMgcmVnaXN0ZXJzIGhhcmR3YXJlCisgICogICAgICAgICAgIC0gTWFjcm9zIHRvIGFjY2VzcyBwZXJpcGhlcmFsJ3MgcmVnaXN0ZXJzIGhhcmR3YXJlCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTQ1LDExICs0NCwxMSBAQAogLyoqCiAgICogQGJyaWVmIENvbmZpZ3VyYXRpb24gb2YgdGhlIENvcnRleC1NNCBQcm9jZXNzb3IgYW5kIENvcmUgUGVyaXBoZXJhbHMKICAgICovCi0jZGVmaW5lIF9fQ000X1JFViAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiE8IENvcnRleC1NNCByZXZpc2lvbiByMHAxICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX01QVV9QUkVTRU5UICAgICAgICAgICAgIDEgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0ICAgICAgIC8qITwgU1RNMzJMNFhYIHVzZXMgNCBCaXRzIGZvciB0aGUgUHJpb3JpdHkgTGV2ZWxzICovCi0jZGVmaW5lIF9fVmVuZG9yX1N5c1RpY2tDb25maWcgICAgMCAgICAgICAvKiE8IFNldCB0byAxIGlmIGRpZmZlcmVudCBTeXNUaWNrIENvbmZpZyBpcyB1c2VkICAqLwotI2RlZmluZSBfX0ZQVV9QUkVTRU5UICAgICAgICAgICAgIDEgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDFVICAvKiE8IENvcnRleC1NNCByZXZpc2lvbiByMHAxICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX01QVV9QUkVTRU5UICAgICAgICAgICAgIDFVICAgICAgIC8qITwgU1RNMzJMNFhYIHByb3ZpZGVzIGFuIE1QVSAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTlZJQ19QUklPX0JJVFMgICAgICAgICAgNFUgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KKyNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwVSAgICAgICAvKiE8IFNldCB0byAxIGlmIGRpZmZlcmVudCBTeXNUaWNrIENvbmZpZyBpcyB1c2VkICAqLworI2RlZmluZSBfX0ZQVV9QUkVTRU5UICAgICAgICAgICAgIDFVICAgICAgIC8qITwgRlBVIHByZXNlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAKIC8qKgogICAqIEB9CkBAIC0xNDM4LDYgKzE0MzcsMTUgQEAKICAgKiBAewogICAqLwogCisvKiogQGFkZHRvZ3JvdXAgSGFyZHdhcmVfQ29uc3RhbnRfRGVmaW5pdGlvbgorICAqIEB7CisgICovCisjZGVmaW5lIExTSV9TVEFSVFVQX1RJTUUgMTMwVSAvKiE8IExTSSBNYXhpbXVtIHN0YXJ0dXAgdGltZSBpbiB1cyAqLworCisvKioKKyAgKiBAfQorICAqLworCiAvKiogQGFkZHRvZ3JvdXAgUGVyaXBoZXJhbF9SZWdpc3RlcnNfQml0c19EZWZpbml0aW9uCiAgICogQHsKICAgKi8KQEAgLTE1ODgsNyArMTU5Niw3IEBACiAKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fUG9zICAgICAgICAgICAgICg1VSkKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICgweDFVTCA8PCBBRENfQ0ZHUl9BTElHTl9Qb3MpICAgICAgICAgICAvKiE8IDB4MDAwMDAwMjAgKi8KLSNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWduZW1lbnQgKi8KKyNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWdubWVudCAqLwogCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Qb3MgICAgICAgICAgICAoNlUpCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Nc2sgICAgICAgICAgICAoMHhGVUwgPDwgQURDX0NGR1JfRVhUU0VMX1BvcykgICAgICAgICAgLyohPCAweDAwMDAwM0MwICovCkBAIC03NzU4LDcgKzc3NjYsNyBAQAogLyoqKioqKioqKioqKioqKioqKiAgQml0IGRlZmluaXRpb24gZm9yIEZNQ19CQ1IxIHJlZ2lzdGVyICAqKioqKioqKioqKioqKioqKioqLwogI2RlZmluZSBGTUNfQkNSMV9DQ0xLRU5fUG9zICAgICAgICAoMjBVKQogI2RlZmluZSBGTUNfQkNSMV9DQ0xLRU5fTXNrICAgICAgICAoMHgxVUwgPDwgRk1DX0JDUjFfQ0NMS0VOX1BvcykgICAgICAgICAgICAgIC8qITwgMHgwMDEwMDAwMCAqLwotI2RlZmluZSBGTUNfQkNSMV9DQ0xLRU4gICAgICAgICAgICBGTUNfQkNSMV9DQ0xLRU5fTXNrICAgICAgICAgICAgICAgICAgICAgICAgIC8qITxDb250aW5vdXMgY2xvY2sgZW5hYmxlICAgICAqLworI2RlZmluZSBGTUNfQkNSMV9DQ0xLRU4gICAgICAgICAgICBGTUNfQkNSMV9DQ0xLRU5fTXNrICAgICAgICAgICAgICAgICAgICAgICAgIC8qITxDb250aW51b3VzIGNsb2NrIGVuYWJsZSAgICAgKi8KIAogLyoqKioqKioqKioqKioqKioqKiAgQml0IGRlZmluaXRpb24gZm9yIEZNQ19CQ1J4IHJlZ2lzdGVycyAoeD0xLi40KSAgKioqKioqKioqLwogI2RlZmluZSBGTUNfQkNSeF9NQktFTl9Qb3MgICAgICAgICAoMFUpCkBAIC0xODMzMCw0ICsxODMzOCwzIEBACiAgICogQH0KICAgKi8KIAotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvc3RtMzJsNDc2eHguaCBiL0luY2x1ZGUvc3RtMzJsNDc2eHguaAppbmRleCA2MTM0MWE3Li4zOTcxYWU5IDEwMDY0NAotLS0gYS9JbmNsdWRlL3N0bTMybDQ3Nnh4LmgKKysrIGIvSW5jbHVkZS9zdG0zMmw0NzZ4eC5oCkBAIC03LDE4ICs3LDE3IEBACiAgICogICAgICAgICAgVGhpcyBmaWxlIGNvbnRhaW5zOgogICAqICAgICAgICAgICAtIERhdGEgc3RydWN0dXJlcyBhbmQgdGhlIGFkZHJlc3MgbWFwcGluZyBmb3IgYWxsIHBlcmlwaGVyYWxzCiAgICogICAgICAgICAgIC0gUGVyaXBoZXJhbCdzIHJlZ2lzdGVycyBkZWNsYXJhdGlvbnMgYW5kIGJpdHMgZGVmaW5pdGlvbgotICAqICAgICAgICAgICAtIE1hY3JvcyB0byBhY2Nlc3MgcGVyaXBoZXJhbJJzIHJlZ2lzdGVycyBoYXJkd2FyZQorICAqICAgICAgICAgICAtIE1hY3JvcyB0byBhY2Nlc3MgcGVyaXBoZXJhbCdzIHJlZ2lzdGVycyBoYXJkd2FyZQogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC00NSwxMSArNDQsMTEgQEAKIC8qKgogICAqIEBicmllZiBDb25maWd1cmF0aW9uIG9mIHRoZSBDb3J0ZXgtTTQgUHJvY2Vzc29yIGFuZCBDb3JlIFBlcmlwaGVyYWxzCiAgICAqLwotI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyohPCBDb3J0ZXgtTTQgcmV2aXNpb24gcjBwMSAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgX19NUFVfUFJFU0VOVCAgICAgICAgICAgICAxICAgICAgIC8qITwgU1RNMzJMNFhYIHByb3ZpZGVzIGFuIE1QVSAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTlZJQ19QUklPX0JJVFMgICAgICAgICAgNCAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLwotI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDAgICAgICAgLyohPCBTZXQgdG8gMSBpZiBkaWZmZXJlbnQgU3lzVGljayBDb25maWcgaXMgdXNlZCAgKi8KLSNkZWZpbmUgX19GUFVfUFJFU0VOVCAgICAgICAgICAgICAxICAgICAgIC8qITwgRlBVIHByZXNlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fQ000X1JFViAgICAgICAgICAgICAgICAgMHgwMDAxVSAgLyohPCBDb3J0ZXgtTTQgcmV2aXNpb24gcjBwMSAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19NUFVfUFJFU0VOVCAgICAgICAgICAgICAxVSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDRVICAgICAgIC8qITwgU1RNMzJMNFhYIHVzZXMgNCBCaXRzIGZvciB0aGUgUHJpb3JpdHkgTGV2ZWxzICovCisjZGVmaW5lIF9fVmVuZG9yX1N5c1RpY2tDb25maWcgICAgMFUgICAgICAgLyohPCBTZXQgdG8gMSBpZiBkaWZmZXJlbnQgU3lzVGljayBDb25maWcgaXMgdXNlZCAgKi8KKyNkZWZpbmUgX19GUFVfUFJFU0VOVCAgICAgICAgICAgICAxVSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAvKioKICAgKiBAfQpAQCAtMTQ1NSw2ICsxNDU0LDE1IEBACiAgICogQHsKICAgKi8KIAorLyoqIEBhZGR0b2dyb3VwIEhhcmR3YXJlX0NvbnN0YW50X0RlZmluaXRpb24KKyAgKiBAeworICAqLworI2RlZmluZSBMU0lfU1RBUlRVUF9USU1FIDEzMFUgLyohPCBMU0kgTWF4aW11bSBzdGFydHVwIHRpbWUgaW4gdXMgKi8KKworLyoqCisgICogQH0KKyAgKi8KKwogLyoqIEBhZGR0b2dyb3VwIFBlcmlwaGVyYWxfUmVnaXN0ZXJzX0JpdHNfRGVmaW5pdGlvbgogICAqIEB7CiAgICovCkBAIC0xNjA1LDcgKzE2MTMsNyBAQAogCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX1BvcyAgICAgICAgICAgICAoNVUpCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAoMHgxVUwgPDwgQURDX0NGR1JfQUxJR05fUG9zKSAgICAgICAgICAgLyohPCAweDAwMDAwMDIwICovCi0jZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbmVtZW50ICovCisjZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbm1lbnQgKi8KIAogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfUG9zICAgICAgICAgICAgKDZVKQogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfTXNrICAgICAgICAgICAgKDB4RlVMIDw8IEFEQ19DRkdSX0VYVFNFTF9Qb3MpICAgICAgICAgIC8qITwgMHgwMDAwMDNDMCAqLwpAQCAtNzc4MSw3ICs3Nzg5LDcgQEAKIC8qKioqKioqKioqKioqKioqKiogIEJpdCBkZWZpbml0aW9uIGZvciBGTUNfQkNSMSByZWdpc3RlciAgKioqKioqKioqKioqKioqKioqKi8KICNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOX1BvcyAgICAgICAgKDIwVSkKICNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOX01zayAgICAgICAgKDB4MVVMIDw8IEZNQ19CQ1IxX0NDTEtFTl9Qb3MpICAgICAgICAgICAgICAvKiE8IDB4MDAxMDAwMDAgKi8KLSNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOICAgICAgICAgICAgRk1DX0JDUjFfQ0NMS0VOX01zayAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8Q29udGlub3VzIGNsb2NrIGVuYWJsZSAgICAgKi8KKyNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOICAgICAgICAgICAgRk1DX0JDUjFfQ0NMS0VOX01zayAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8Q29udGludW91cyBjbG9jayBlbmFibGUgICAgICovCiAKIC8qKioqKioqKioqKioqKioqKiogIEJpdCBkZWZpbml0aW9uIGZvciBGTUNfQkNSeCByZWdpc3RlcnMgKHg9MS4uNCkgICoqKioqKioqKi8KICNkZWZpbmUgRk1DX0JDUnhfTUJLRU5fUG9zICAgICAgICAgKDBVKQpAQCAtOTY5Miw2ICs5NzAwLDkgQEAKIAogCiAvKioqKioqKioqKioqKioqKioqKiogIEJpdCBkZWZpbml0aW9uIGZvciBQV1JfQ1I0IHJlZ2lzdGVyICAqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgUFdSX0NSNF9FWFRfU01QU19PTl9Qb3MgICAgICAoMTNVKQorI2RlZmluZSBQV1JfQ1I0X0VYVF9TTVBTX09OX01zayAgICAgICgweDFVTCA8PCBQV1JfQ1I0X0VYVF9TTVBTX09OX1BvcykgICAgICAgICAvKiE8IDB4MDAwMDIwMDAgKi8KKyNkZWZpbmUgUFdSX0NSNF9FWFRfU01QU19PTiAgICAgICAgICBQV1JfQ1I0X0VYVF9TTVBTX09OX01zayAgICAgICAgICAgICAgICAgICAvKiE8IEluZm9ybSB0aGUgaW50ZXJuYWwgcmVndWxhdG9yIG9uIGV4dGVybmFsIFNNUFMgc3dpdGNoIHN0YXR1cyAqLwogI2RlZmluZSBQV1JfQ1I0X1ZCUlNfUG9zICAgICAgICAgICAgICg5VSkKICNkZWZpbmUgUFdSX0NSNF9WQlJTX01zayAgICAgICAgICAgICAoMHgxVUwgPDwgUFdSX0NSNF9WQlJTX1BvcykgICAgICAgICAgICAgICAvKiE8IDB4MDAwMDAyMDAgKi8KICNkZWZpbmUgUFdSX0NSNF9WQlJTICAgICAgICAgICAgICAgICBQV1JfQ1I0X1ZCUlNfTXNrICAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IFZCQVQgQmF0dGVyeSBjaGFyZ2luZyBSZXNpc3RvciBTZWxlY3Rpb24gKi8KQEAgLTk3MTgsNiArOTcyOSw5IEBACiAjZGVmaW5lIFBXUl9TUjFfV1VGSV9Qb3MgICAgICAgICAgICAgKDE1VSkKICNkZWZpbmUgUFdSX1NSMV9XVUZJX01zayAgICAgICAgICAgICAoMHgxVUwgPDwgUFdSX1NSMV9XVUZJX1BvcykgICAgICAgICAgICAgICAvKiE8IDB4MDAwMDgwMDAgKi8KICNkZWZpbmUgUFdSX1NSMV9XVUZJICAgICAgICAgICAgICAgICBQV1JfU1IxX1dVRklfTXNrICAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IFdha2UtVXAgRmxhZyBJbnRlcm5hbCAqLworI2RlZmluZSBQV1JfU1IxX0VYVF9TTVBTX1JEWV9Qb3MgICAgICgxM1UpCisjZGVmaW5lIFBXUl9TUjFfRVhUX1NNUFNfUkRZX01zayAgICAgKDB4MVVMIDw8IFBXUl9TUjFfRVhUX1NNUFNfUkRZX1BvcykgICAgICAgIC8qITwgMHgwMDAwMjAwMCAqLworI2RlZmluZSBQV1JfU1IxX0VYVF9TTVBTX1JEWSAgICAgICAgIFBXUl9TUjFfRVhUX1NNUFNfUkRZX01zayAgICAgICAgICAgICAgICAgIC8qITwgU3dpdGNoaW5nIHRvIGV4dGVybmFsIFNNUFMgUmVhZHkgRmxhZyAqLwogI2RlZmluZSBQV1JfU1IxX1NCRl9Qb3MgICAgICAgICAgICAgICg4VSkKICNkZWZpbmUgUFdSX1NSMV9TQkZfTXNrICAgICAgICAgICAgICAoMHgxVUwgPDwgUFdSX1NSMV9TQkZfUG9zKSAgICAgICAgICAgICAgICAvKiE8IDB4MDAwMDAxMDAgKi8KICNkZWZpbmUgUFdSX1NSMV9TQkYgICAgICAgICAgICAgICAgICBQV1JfU1IxX1NCRl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IFN0YW5kLUJ5IEZsYWcgKi8KQEAgLTE4NDg0LDQgKzE4NDk4LDMgQEAKICAgKiBAfQogICAqLwogCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9zdG0zMmw0ODV4eC5oIGIvSW5jbHVkZS9zdG0zMmw0ODV4eC5oCmluZGV4IDFiYzM3ZTUuLjQ1ZDI2NDMgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvc3RtMzJsNDg1eHguaAorKysgYi9JbmNsdWRlL3N0bTMybDQ4NXh4LmgKQEAgLTcsMTggKzcsMTcgQEAKICAgKiAgICAgICAgICBUaGlzIGZpbGUgY29udGFpbnM6CiAgICogICAgICAgICAgIC0gRGF0YSBzdHJ1Y3R1cmVzIGFuZCB0aGUgYWRkcmVzcyBtYXBwaW5nIGZvciBhbGwgcGVyaXBoZXJhbHMKICAgKiAgICAgICAgICAgLSBQZXJpcGhlcmFsJ3MgcmVnaXN0ZXJzIGRlY2xhcmF0aW9ucyBhbmQgYml0cyBkZWZpbml0aW9uCi0gICogICAgICAgICAgIC0gTWFjcm9zIHRvIGFjY2VzcyBwZXJpcGhlcmFsknMgcmVnaXN0ZXJzIGhhcmR3YXJlCisgICogICAgICAgICAgIC0gTWFjcm9zIHRvIGFjY2VzcyBwZXJpcGhlcmFsJ3MgcmVnaXN0ZXJzIGhhcmR3YXJlCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTQ1LDExICs0NCwxMSBAQAogLyoqCiAgICogQGJyaWVmIENvbmZpZ3VyYXRpb24gb2YgdGhlIENvcnRleC1NNCBQcm9jZXNzb3IgYW5kIENvcmUgUGVyaXBoZXJhbHMKICAgICovCi0jZGVmaW5lIF9fQ000X1JFViAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiE8IENvcnRleC1NNCByZXZpc2lvbiByMHAxICAgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX01QVV9QUkVTRU5UICAgICAgICAgICAgIDEgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0ICAgICAgIC8qITwgU1RNMzJMNFhYIHVzZXMgNCBCaXRzIGZvciB0aGUgUHJpb3JpdHkgTGV2ZWxzICovCi0jZGVmaW5lIF9fVmVuZG9yX1N5c1RpY2tDb25maWcgICAgMCAgICAgICAvKiE8IFNldCB0byAxIGlmIGRpZmZlcmVudCBTeXNUaWNrIENvbmZpZyBpcyB1c2VkICAqLwotI2RlZmluZSBfX0ZQVV9QUkVTRU5UICAgICAgICAgICAgIDEgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDFVICAvKiE8IENvcnRleC1NNCByZXZpc2lvbiByMHAxICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX01QVV9QUkVTRU5UICAgICAgICAgICAgIDFVICAgICAgIC8qITwgU1RNMzJMNFhYIHByb3ZpZGVzIGFuIE1QVSAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTlZJQ19QUklPX0JJVFMgICAgICAgICAgNFUgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KKyNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwVSAgICAgICAvKiE8IFNldCB0byAxIGlmIGRpZmZlcmVudCBTeXNUaWNrIENvbmZpZyBpcyB1c2VkICAqLworI2RlZmluZSBfX0ZQVV9QUkVTRU5UICAgICAgICAgICAgIDFVICAgICAgIC8qITwgRlBVIHByZXNlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAKIC8qKgogICAqIEB9CkBAIC0xNDczLDYgKzE0NzIsMTUgQEAKICAgKiBAewogICAqLwogCisvKiogQGFkZHRvZ3JvdXAgSGFyZHdhcmVfQ29uc3RhbnRfRGVmaW5pdGlvbgorICAqIEB7CisgICovCisjZGVmaW5lIExTSV9TVEFSVFVQX1RJTUUgMTMwVSAvKiE8IExTSSBNYXhpbXVtIHN0YXJ0dXAgdGltZSBpbiB1cyAqLworCisvKioKKyAgKiBAfQorICAqLworCiAvKiogQGFkZHRvZ3JvdXAgUGVyaXBoZXJhbF9SZWdpc3RlcnNfQml0c19EZWZpbml0aW9uCiAgICogQHsKICAgKi8KQEAgLTE2MjMsNyArMTYzMSw3IEBACiAKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fUG9zICAgICAgICAgICAgICg1VSkKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICgweDFVTCA8PCBBRENfQ0ZHUl9BTElHTl9Qb3MpICAgICAgICAgICAvKiE8IDB4MDAwMDAwMjAgKi8KLSNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWduZW1lbnQgKi8KKyNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWdubWVudCAqLwogCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Qb3MgICAgICAgICAgICAoNlUpCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Nc2sgICAgICAgICAgICAoMHhGVUwgPDwgQURDX0NGR1JfRVhUU0VMX1BvcykgICAgICAgICAgLyohPCAweDAwMDAwM0MwICovCkBAIC03OTc0LDcgKzc5ODIsNyBAQAogLyoqKioqKioqKioqKioqKioqKiAgQml0IGRlZmluaXRpb24gZm9yIEZNQ19CQ1IxIHJlZ2lzdGVyICAqKioqKioqKioqKioqKioqKioqLwogI2RlZmluZSBGTUNfQkNSMV9DQ0xLRU5fUG9zICAgICAgICAoMjBVKQogI2RlZmluZSBGTUNfQkNSMV9DQ0xLRU5fTXNrICAgICAgICAoMHgxVUwgPDwgRk1DX0JDUjFfQ0NMS0VOX1BvcykgICAgICAgICAgICAgIC8qITwgMHgwMDEwMDAwMCAqLwotI2RlZmluZSBGTUNfQkNSMV9DQ0xLRU4gICAgICAgICAgICBGTUNfQkNSMV9DQ0xLRU5fTXNrICAgICAgICAgICAgICAgICAgICAgICAgIC8qITxDb250aW5vdXMgY2xvY2sgZW5hYmxlICAgICAqLworI2RlZmluZSBGTUNfQkNSMV9DQ0xLRU4gICAgICAgICAgICBGTUNfQkNSMV9DQ0xLRU5fTXNrICAgICAgICAgICAgICAgICAgICAgICAgIC8qITxDb250aW51b3VzIGNsb2NrIGVuYWJsZSAgICAgKi8KIAogLyoqKioqKioqKioqKioqKioqKiAgQml0IGRlZmluaXRpb24gZm9yIEZNQ19CQ1J4IHJlZ2lzdGVycyAoeD0xLi40KSAgKioqKioqKioqLwogI2RlZmluZSBGTUNfQkNSeF9NQktFTl9Qb3MgICAgICAgICAoMFUpCkBAIC0xODU1OCw0ICsxODU2NiwzIEBACiAgICogQH0KICAgKi8KIAotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvc3RtMzJsNDg2eHguaCBiL0luY2x1ZGUvc3RtMzJsNDg2eHguaAppbmRleCAxNzJiMjYwLi5kYTllMzQ0IDEwMDY0NAotLS0gYS9JbmNsdWRlL3N0bTMybDQ4Nnh4LmgKKysrIGIvSW5jbHVkZS9zdG0zMmw0ODZ4eC5oCkBAIC03LDE4ICs3LDE3IEBACiAgICogICAgICAgICAgVGhpcyBmaWxlIGNvbnRhaW5zOgogICAqICAgICAgICAgICAtIERhdGEgc3RydWN0dXJlcyBhbmQgdGhlIGFkZHJlc3MgbWFwcGluZyBmb3IgYWxsIHBlcmlwaGVyYWxzCiAgICogICAgICAgICAgIC0gUGVyaXBoZXJhbCdzIHJlZ2lzdGVycyBkZWNsYXJhdGlvbnMgYW5kIGJpdHMgZGVmaW5pdGlvbgotICAqICAgICAgICAgICAtIE1hY3JvcyB0byBhY2Nlc3MgcGVyaXBoZXJhbJJzIHJlZ2lzdGVycyBoYXJkd2FyZQorICAqICAgICAgICAgICAtIE1hY3JvcyB0byBhY2Nlc3MgcGVyaXBoZXJhbCdzIHJlZ2lzdGVycyBoYXJkd2FyZQogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC00NSwxMSArNDQsMTEgQEAKIC8qKgogICAqIEBicmllZiBDb25maWd1cmF0aW9uIG9mIHRoZSBDb3J0ZXgtTTQgUHJvY2Vzc29yIGFuZCBDb3JlIFBlcmlwaGVyYWxzCiAgICAqLwotI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyohPCBDb3J0ZXgtTTQgcmV2aXNpb24gcjBwMSAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgX19NUFVfUFJFU0VOVCAgICAgICAgICAgICAxICAgICAgIC8qITwgU1RNMzJMNFhYIHByb3ZpZGVzIGFuIE1QVSAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTlZJQ19QUklPX0JJVFMgICAgICAgICAgNCAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLwotI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDAgICAgICAgLyohPCBTZXQgdG8gMSBpZiBkaWZmZXJlbnQgU3lzVGljayBDb25maWcgaXMgdXNlZCAgKi8KLSNkZWZpbmUgX19GUFVfUFJFU0VOVCAgICAgICAgICAgICAxICAgICAgIC8qITwgRlBVIHByZXNlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fQ000X1JFViAgICAgICAgICAgICAgICAgMHgwMDAxVSAgLyohPCBDb3J0ZXgtTTQgcmV2aXNpb24gcjBwMSAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19NUFVfUFJFU0VOVCAgICAgICAgICAgICAxVSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDRVICAgICAgIC8qITwgU1RNMzJMNFhYIHVzZXMgNCBCaXRzIGZvciB0aGUgUHJpb3JpdHkgTGV2ZWxzICovCisjZGVmaW5lIF9fVmVuZG9yX1N5c1RpY2tDb25maWcgICAgMFUgICAgICAgLyohPCBTZXQgdG8gMSBpZiBkaWZmZXJlbnQgU3lzVGljayBDb25maWcgaXMgdXNlZCAgKi8KKyNkZWZpbmUgX19GUFVfUFJFU0VOVCAgICAgICAgICAgICAxVSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAvKioKICAgKiBAfQpAQCAtMTQ5MCw2ICsxNDg5LDE1IEBACiAgICogQHsKICAgKi8KIAorLyoqIEBhZGR0b2dyb3VwIEhhcmR3YXJlX0NvbnN0YW50X0RlZmluaXRpb24KKyAgKiBAeworICAqLworI2RlZmluZSBMU0lfU1RBUlRVUF9USU1FIDEzMFUgLyohPCBMU0kgTWF4aW11bSBzdGFydHVwIHRpbWUgaW4gdXMgKi8KKworLyoqCisgICogQH0KKyAgKi8KKwogLyoqIEBhZGR0b2dyb3VwIFBlcmlwaGVyYWxfUmVnaXN0ZXJzX0JpdHNfRGVmaW5pdGlvbgogICAqIEB7CiAgICovCkBAIC0xNjQwLDcgKzE2NDgsNyBAQAogCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX1BvcyAgICAgICAgICAgICAoNVUpCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAoMHgxVUwgPDwgQURDX0NGR1JfQUxJR05fUG9zKSAgICAgICAgICAgLyohPCAweDAwMDAwMDIwICovCi0jZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbmVtZW50ICovCisjZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbm1lbnQgKi8KIAogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfUG9zICAgICAgICAgICAgKDZVKQogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfTXNrICAgICAgICAgICAgKDB4RlVMIDw8IEFEQ19DRkdSX0VYVFNFTF9Qb3MpICAgICAgICAgIC8qITwgMHgwMDAwMDNDMCAqLwpAQCAtNzk5Nyw3ICs4MDA1LDcgQEAKIC8qKioqKioqKioqKioqKioqKiogIEJpdCBkZWZpbml0aW9uIGZvciBGTUNfQkNSMSByZWdpc3RlciAgKioqKioqKioqKioqKioqKioqKi8KICNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOX1BvcyAgICAgICAgKDIwVSkKICNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOX01zayAgICAgICAgKDB4MVVMIDw8IEZNQ19CQ1IxX0NDTEtFTl9Qb3MpICAgICAgICAgICAgICAvKiE8IDB4MDAxMDAwMDAgKi8KLSNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOICAgICAgICAgICAgRk1DX0JDUjFfQ0NMS0VOX01zayAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8Q29udGlub3VzIGNsb2NrIGVuYWJsZSAgICAgKi8KKyNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOICAgICAgICAgICAgRk1DX0JDUjFfQ0NMS0VOX01zayAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8Q29udGludW91cyBjbG9jayBlbmFibGUgICAgICovCiAKIC8qKioqKioqKioqKioqKioqKiogIEJpdCBkZWZpbml0aW9uIGZvciBGTUNfQkNSeCByZWdpc3RlcnMgKHg9MS4uNCkgICoqKioqKioqKi8KICNkZWZpbmUgRk1DX0JDUnhfTUJLRU5fUG9zICAgICAgICAgKDBVKQpAQCAtMTg3MTIsNCArMTg3MjAsMyBAQAogICAqIEB9CiAgICovCiAKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0bTMybDQ5Nnh4LmggYi9JbmNsdWRlL3N0bTMybDQ5Nnh4LmgKaW5kZXggNWMxY2MwMy4uMjdhOTkyMSAxMDA2NDQKLS0tIGEvSW5jbHVkZS9zdG0zMmw0OTZ4eC5oCisrKyBiL0luY2x1ZGUvc3RtMzJsNDk2eHguaApAQCAtNywxOCArNywxNyBAQAogICAqICAgICAgICAgIFRoaXMgZmlsZSBjb250YWluczoKICAgKiAgICAgICAgICAgLSBEYXRhIHN0cnVjdHVyZXMgYW5kIHRoZSBhZGRyZXNzIG1hcHBpbmcgZm9yIGFsbCBwZXJpcGhlcmFscwogICAqICAgICAgICAgICAtIFBlcmlwaGVyYWwncyByZWdpc3RlcnMgZGVjbGFyYXRpb25zIGFuZCBiaXRzIGRlZmluaXRpb24KLSAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWyScyByZWdpc3RlcnMgaGFyZHdhcmUKKyAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWwncyByZWdpc3RlcnMgaGFyZHdhcmUKICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNDUsMTEgKzQ0LDExIEBACiAvKioKICAgKiBAYnJpZWYgQ29uZmlndXJhdGlvbiBvZiB0aGUgQ29ydGV4LU00IFByb2Nlc3NvciBhbmQgQ29yZSBQZXJpcGhlcmFscwogICAgKi8KLSNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDEgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDQgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KLSNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCi0jZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMVUgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0VSAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLworI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDBVICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCisjZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogLyoqCiAgICogQH0KQEAgLTE1NDAsNiArMTUzOSwxNSBAQAogICAqIEB7CiAgICovCiAKKy8qKiBAYWRkdG9ncm91cCBIYXJkd2FyZV9Db25zdGFudF9EZWZpbml0aW9uCisgICogQHsKKyAgKi8KKyNkZWZpbmUgTFNJX1NUQVJUVVBfVElNRSAxMzBVIC8qITwgTFNJIE1heGltdW0gc3RhcnR1cCB0aW1lIGluIHVzICovCisKKy8qKgorICAqIEB9CisgICovCisKIC8qKiBAYWRkdG9ncm91cCBQZXJpcGhlcmFsX1JlZ2lzdGVyc19CaXRzX0RlZmluaXRpb24KICAgKiBAewogICAqLwpAQCAtMTY5NCw3ICsxNzAyLDcgQEAKIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Qb3MgICAgICAgICAgICAgKDVVKQogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgKDB4MVVMIDw8IEFEQ19DRkdSX0FMSUdOX1BvcykgICAgICAgICAgIC8qITwgMHgwMDAwMDAyMCAqLwotI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25lbWVudCAqLworI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25tZW50ICovCiAKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX1BvcyAgICAgICAgICAgICg2VSkKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX01zayAgICAgICAgICAgICgweEZVTCA8PCBBRENfQ0ZHUl9FWFRTRUxfUG9zKSAgICAgICAgICAvKiE8IDB4MDAwMDAzQzAgKi8KQEAgLTg2MzMsNyArODY0MSw3IEBACiAvKioqKioqKioqKioqKioqKioqICBCaXQgZGVmaW5pdGlvbiBmb3IgRk1DX0JDUjEgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Qb3MgICAgICAgICgyMFUpCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICgweDFVTCA8PCBGTUNfQkNSMV9DQ0xLRU5fUG9zKSAgICAgICAgICAgICAgLyohPCAweDAwMTAwMDAwICovCi0jZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbm91cyBjbG9jayBlbmFibGUgICAgICovCisjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbnVvdXMgY2xvY2sgZW5hYmxlICAgICAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Qb3MgICAgICAgICAoMjFVKQogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAoMHgxVUwgPDwgRk1DX0JDUjFfV0ZESVNfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDIwMDAwMCAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJUyAgICAgICAgICAgICBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITxXcml0ZSBGSUZPIERpc2FibGUgICAgICAgICAqLwpAQCAtMTk3MzYsNCArMTk3NDQsMyBAQAogICAqIEB9CiAgICovCiAKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0bTMybDRhNnh4LmggYi9JbmNsdWRlL3N0bTMybDRhNnh4LmgKaW5kZXggYzA2YWVjZC4uYTUzNzI1NiAxMDA2NDQKLS0tIGEvSW5jbHVkZS9zdG0zMmw0YTZ4eC5oCisrKyBiL0luY2x1ZGUvc3RtMzJsNGE2eHguaApAQCAtNywxOCArNywxNyBAQAogICAqICAgICAgICAgIFRoaXMgZmlsZSBjb250YWluczoKICAgKiAgICAgICAgICAgLSBEYXRhIHN0cnVjdHVyZXMgYW5kIHRoZSBhZGRyZXNzIG1hcHBpbmcgZm9yIGFsbCBwZXJpcGhlcmFscwogICAqICAgICAgICAgICAtIFBlcmlwaGVyYWwncyByZWdpc3RlcnMgZGVjbGFyYXRpb25zIGFuZCBiaXRzIGRlZmluaXRpb24KLSAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWyScyByZWdpc3RlcnMgaGFyZHdhcmUKKyAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWwncyByZWdpc3RlcnMgaGFyZHdhcmUKICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNDUsMTEgKzQ0LDExIEBACiAvKioKICAgKiBAYnJpZWYgQ29uZmlndXJhdGlvbiBvZiB0aGUgQ29ydGV4LU00IFByb2Nlc3NvciBhbmQgQ29yZSBQZXJpcGhlcmFscwogICAgKi8KLSNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDEgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDQgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KLSNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCi0jZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMVUgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0VSAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLworI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDBVICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCisjZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogLyoqCiAgICogQH0KQEAgLTE2MDQsNiArMTYwMywxNSBAQAogICAqIEB7CiAgICovCiAKKy8qKiBAYWRkdG9ncm91cCBIYXJkd2FyZV9Db25zdGFudF9EZWZpbml0aW9uCisgICogQHsKKyAgKi8KKyNkZWZpbmUgTFNJX1NUQVJUVVBfVElNRSAxMzBVIC8qITwgTFNJIE1heGltdW0gc3RhcnR1cCB0aW1lIGluIHVzICovCisKKy8qKgorICAqIEB9CisgICovCisKIC8qKiBAYWRkdG9ncm91cCBQZXJpcGhlcmFsX1JlZ2lzdGVyc19CaXRzX0RlZmluaXRpb24KICAgKiBAewogICAqLwpAQCAtMTc1OCw3ICsxNzY2LDcgQEAKIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Qb3MgICAgICAgICAgICAgKDVVKQogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgKDB4MVVMIDw8IEFEQ19DRkdSX0FMSUdOX1BvcykgICAgICAgICAgIC8qITwgMHgwMDAwMDAyMCAqLwotI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25lbWVudCAqLworI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25tZW50ICovCiAKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX1BvcyAgICAgICAgICAgICg2VSkKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX01zayAgICAgICAgICAgICgweEZVTCA8PCBBRENfQ0ZHUl9FWFRTRUxfUG9zKSAgICAgICAgICAvKiE8IDB4MDAwMDAzQzAgKi8KQEAgLTg4NzgsNyArODg4Niw3IEBACiAvKioqKioqKioqKioqKioqKioqICBCaXQgZGVmaW5pdGlvbiBmb3IgRk1DX0JDUjEgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Qb3MgICAgICAgICgyMFUpCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICgweDFVTCA8PCBGTUNfQkNSMV9DQ0xLRU5fUG9zKSAgICAgICAgICAgICAgLyohPCAweDAwMTAwMDAwICovCi0jZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbm91cyBjbG9jayBlbmFibGUgICAgICovCisjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbnVvdXMgY2xvY2sgZW5hYmxlICAgICAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Qb3MgICAgICAgICAoMjFVKQogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAoMHgxVUwgPDwgRk1DX0JDUjFfV0ZESVNfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDIwMDAwMCAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJUyAgICAgICAgICAgICBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITxXcml0ZSBGSUZPIERpc2FibGUgICAgICAgICAqLwpAQCAtMjAwNzksNCArMjAwODcsMyBAQAogICAqIEB9CiAgICovCiAKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0bTMybDRwNXh4LmggYi9JbmNsdWRlL3N0bTMybDRwNXh4LmgKaW5kZXggODM5OGU1Ny4uNmNiN2MyZCAxMDA2NDQKLS0tIGEvSW5jbHVkZS9zdG0zMmw0cDV4eC5oCisrKyBiL0luY2x1ZGUvc3RtMzJsNHA1eHguaApAQCAtNywxOCArNywxNyBAQAogICAqICAgICAgICAgIFRoaXMgZmlsZSBjb250YWluczoKICAgKiAgICAgICAgICAgLSBEYXRhIHN0cnVjdHVyZXMgYW5kIHRoZSBhZGRyZXNzIG1hcHBpbmcgZm9yIGFsbCBwZXJpcGhlcmFscwogICAqICAgICAgICAgICAtIFBlcmlwaGVyYWwncyByZWdpc3RlcnMgZGVjbGFyYXRpb25zIGFuZCBiaXRzIGRlZmluaXRpb24KLSAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWyScyByZWdpc3RlcnMgaGFyZHdhcmUKKyAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWwncyByZWdpc3RlcnMgaGFyZHdhcmUKICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNDUsMTEgKzQ0LDExIEBACiAvKioKICAgKiBAYnJpZWYgQ29uZmlndXJhdGlvbiBvZiB0aGUgQ29ydGV4LU00IFByb2Nlc3NvciBhbmQgQ29yZSBQZXJpcGhlcmFscwogICAgKi8KLSNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDEgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDQgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KLSNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCi0jZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMVUgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0VSAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLworI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDBVICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCisjZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogLyoqCiAgICogQH0KQEAgLTE3NTEsNiArMTc1MCwxNSBAQAogICAqIEB7CiAgICovCiAKKy8qKiBAYWRkdG9ncm91cCBIYXJkd2FyZV9Db25zdGFudF9EZWZpbml0aW9uCisgICogQHsKKyAgKi8KKyNkZWZpbmUgTFNJX1NUQVJUVVBfVElNRSAxMzBVIC8qITwgTFNJIE1heGltdW0gc3RhcnR1cCB0aW1lIGluIHVzICovCisKKy8qKgorICAqIEB9CisgICovCisKIC8qKiBAYWRkdG9ncm91cCBQZXJpcGhlcmFsX1JlZ2lzdGVyc19CaXRzX0RlZmluaXRpb24KICAgKiBAewogICAqLwpAQCAtMTkwNSw3ICsxOTEzLDcgQEAKIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Qb3MgICAgICAgICAgICAgKDVVKQogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgKDB4MVVMIDw8IEFEQ19DRkdSX0FMSUdOX1BvcykgICAgICAgICAgIC8qITwgMHgwMDAwMDAyMCAqLwotI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25lbWVudCAqLworI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25tZW50ICovCiAKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX1BvcyAgICAgICAgICAgICg2VSkKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX01zayAgICAgICAgICAgICgweEZVTCA8PCBBRENfQ0ZHUl9FWFRTRUxfUG9zKSAgICAgICAgICAvKiE8IDB4MDAwMDAzQzAgKi8KQEAgLTkwNjYsNyArOTA3NCw3IEBACiAvKioqKioqKioqKioqKioqKioqICBCaXQgZGVmaW5pdGlvbiBmb3IgRk1DX0JDUjEgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Qb3MgICAgICAgICgyMFUpCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICgweDFVTCA8PCBGTUNfQkNSMV9DQ0xLRU5fUG9zKSAgICAgICAgICAgICAgLyohPCAweDAwMTAwMDAwICovCi0jZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbm91cyBjbG9jayBlbmFibGUgICAgICovCisjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbnVvdXMgY2xvY2sgZW5hYmxlICAgICAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Qb3MgICAgICAgICAoMjFVKQogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAoMHgxVUwgPDwgRk1DX0JDUjFfV0ZESVNfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDIwMDAwMCAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJUyAgICAgICAgICAgICBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITxXcml0ZSBGSUZPIERpc2FibGUgICAgICAgICAqLwpAQCAtMTA5MzEsNyArMTA5MzksNyBAQAogCiAjZGVmaW5lIExURENfQVdDUl9BQUhfUG9zICAgICAgICAgICAgKDBVKQogI2RlZmluZSBMVERDX0FXQ1JfQUFIX01zayAgICAgICAgICAgICgweDdGRlVMIDw8IExURENfQVdDUl9BQUhfUG9zKSAgICAgICAgICAgIC8qITwgMHgwMDAwMDdGRiAqLwotI2RlZmluZSBMVERDX0FXQ1JfQUFIICAgICAgICAgICAgICAgIExURENfQVdDUl9BQUhfTXNrICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgQWNjdW11bGF0ZWQgQWN0aXZlIGhlaWdoICovCisjZGVmaW5lIExURENfQVdDUl9BQUggICAgICAgICAgICAgICAgTFREQ19BV0NSX0FBSF9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBBY2N1bXVsYXRlZCBBY3RpdmUgSGVpZ2h0ICovCiAjZGVmaW5lIExURENfQVdDUl9BQVdfUG9zICAgICAgICAgICAgKDE2VSkKICNkZWZpbmUgTFREQ19BV0NSX0FBV19Nc2sgICAgICAgICAgICAoMHhGRkZVTCA8PCBMVERDX0FXQ1JfQUFXX1BvcykgICAgICAgICAgICAvKiE8IDB4MEZGRjAwMDAgKi8KICNkZWZpbmUgTFREQ19BV0NSX0FBVyAgICAgICAgICAgICAgICBMVERDX0FXQ1JfQUFXX01zayAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFjY3VtdWxhdGVkIEFjdGl2ZSBXaWR0aCAqLwpAQCAtMTA5NDAsNyArMTA5NDgsNyBAQAogCiAjZGVmaW5lIExURENfVFdDUl9UT1RBTEhfUG9zICAgICAgICAgKDBVKQogI2RlZmluZSBMVERDX1RXQ1JfVE9UQUxIX01zayAgICAgICAgICgweDdGRlVMIDw8IExURENfVFdDUl9UT1RBTEhfUG9zKSAgICAgICAgIC8qITwgMHgwMDAwMDdGRiAqLwotI2RlZmluZSBMVERDX1RXQ1JfVE9UQUxIICAgICAgICAgICAgIExURENfVFdDUl9UT1RBTEhfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgVG90YWwgSGVpZ2ggKi8KKyNkZWZpbmUgTFREQ19UV0NSX1RPVEFMSCAgICAgICAgICAgICBMVERDX1RXQ1JfVE9UQUxIX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IFRvdGFsIEhlaWdodCAqLwogI2RlZmluZSBMVERDX1RXQ1JfVE9UQUxXX1BvcyAgICAgICAgICgxNlUpCiAjZGVmaW5lIExURENfVFdDUl9UT1RBTFdfTXNrICAgICAgICAgKDB4RkZGVUwgPDwgTFREQ19UV0NSX1RPVEFMV19Qb3MpICAgICAgICAgLyohPCAweDBGRkYwMDAwICovCiAjZGVmaW5lIExURENfVFdDUl9UT1RBTFcgICAgICAgICAgICAgTFREQ19UV0NSX1RPVEFMV19Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBUb3RhbCBXaWR0aCAqLwpAQCAtMTM4MzEsNiArMTM4MzksOSBAQAogLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lIFJOR19WRVJfM18yCisjZGVmaW5lIFJOR19DUl9DT05GSUdfVkFMICAgICAgICAweDAwRjAwRDAwVSAvKiE8IERlZmF1bHQgQ09ORklHIDEsMiwzIGluIENSIHJlZ2lzdGVyICovCisjZGVmaW5lIFJOR19IVENGRyAgICAgICAgICAgICAgICAweDAwMDBBQTc0VSAvKiE8IEhUQ1IgcmVjb21tZW5kZWQgdmFsdWUgZm9yIGJlc3QgbGF0ZW5jeSBhbmQgTklTVCBjb21wbGlhbmNlICovCisjZGVmaW5lIFJOR19IVENGR18xICAgICAgICAgICAgICAweDE3NTkwQUJDVSAvKiE8IE1hZ2ljIG51bWJlciAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqICBCaXRzIGRlZmluaXRpb24gZm9yIFJOR19DUiByZWdpc3RlciAgKioqKioqKioqKioqKioqKioqKi8KICNkZWZpbmUgUk5HX0NSX1JOR0VOX1BvcyAgICAoMlUpCiAjZGVmaW5lIFJOR19DUl9STkdFTl9Nc2sgICAgKDB4MVVMIDw8IFJOR19DUl9STkdFTl9Qb3MpICAgICAgICAgICAgICAgICAgICAgICAgLyohPCAweDAwMDAwMDA0ICovCkBAIC0yMTE0OSw0ICsyMTE2MCwzIEBACiAgICogQH0KICAgKi8KIAotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvc3RtMzJsNHE1eHguaCBiL0luY2x1ZGUvc3RtMzJsNHE1eHguaAppbmRleCA1OGFkMTJhLi5jZjBkZDVjIDEwMDY0NAotLS0gYS9JbmNsdWRlL3N0bTMybDRxNXh4LmgKKysrIGIvSW5jbHVkZS9zdG0zMmw0cTV4eC5oCkBAIC03LDE4ICs3LDE3IEBACiAgICogICAgICAgICAgVGhpcyBmaWxlIGNvbnRhaW5zOgogICAqICAgICAgICAgICAtIERhdGEgc3RydWN0dXJlcyBhbmQgdGhlIGFkZHJlc3MgbWFwcGluZyBmb3IgYWxsIHBlcmlwaGVyYWxzCiAgICogICAgICAgICAgIC0gUGVyaXBoZXJhbCdzIHJlZ2lzdGVycyBkZWNsYXJhdGlvbnMgYW5kIGJpdHMgZGVmaW5pdGlvbgotICAqICAgICAgICAgICAtIE1hY3JvcyB0byBhY2Nlc3MgcGVyaXBoZXJhbJJzIHJlZ2lzdGVycyBoYXJkd2FyZQorICAqICAgICAgICAgICAtIE1hY3JvcyB0byBhY2Nlc3MgcGVyaXBoZXJhbCdzIHJlZ2lzdGVycyBoYXJkd2FyZQogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC00NSwxMSArNDQsMTEgQEAKIC8qKgogICAqIEBicmllZiBDb25maWd1cmF0aW9uIG9mIHRoZSBDb3J0ZXgtTTQgUHJvY2Vzc29yIGFuZCBDb3JlIFBlcmlwaGVyYWxzCiAgICAqLwotI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyohPCBDb3J0ZXgtTTQgcmV2aXNpb24gcjBwMSAgICAgICAgICAgICAgICAgICAgICAgKi8KLSNkZWZpbmUgX19NUFVfUFJFU0VOVCAgICAgICAgICAgICAxICAgICAgIC8qITwgU1RNMzJMNFhYIHByb3ZpZGVzIGFuIE1QVSAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTlZJQ19QUklPX0JJVFMgICAgICAgICAgNCAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLwotI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDAgICAgICAgLyohPCBTZXQgdG8gMSBpZiBkaWZmZXJlbnQgU3lzVGljayBDb25maWcgaXMgdXNlZCAgKi8KLSNkZWZpbmUgX19GUFVfUFJFU0VOVCAgICAgICAgICAgICAxICAgICAgIC8qITwgRlBVIHByZXNlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fQ000X1JFViAgICAgICAgICAgICAgICAgMHgwMDAxVSAgLyohPCBDb3J0ZXgtTTQgcmV2aXNpb24gcjBwMSAgICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19NUFVfUFJFU0VOVCAgICAgICAgICAgICAxVSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDRVICAgICAgIC8qITwgU1RNMzJMNFhYIHVzZXMgNCBCaXRzIGZvciB0aGUgUHJpb3JpdHkgTGV2ZWxzICovCisjZGVmaW5lIF9fVmVuZG9yX1N5c1RpY2tDb25maWcgICAgMFUgICAgICAgLyohPCBTZXQgdG8gMSBpZiBkaWZmZXJlbnQgU3lzVGljayBDb25maWcgaXMgdXNlZCAgKi8KKyNkZWZpbmUgX19GUFVfUFJFU0VOVCAgICAgICAgICAgICAxVSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogCiAvKioKICAgKiBAfQpAQCAtMTgwMyw2ICsxODAyLDE1IEBACiAgICogQHsKICAgKi8KIAorLyoqIEBhZGR0b2dyb3VwIEhhcmR3YXJlX0NvbnN0YW50X0RlZmluaXRpb24KKyAgKiBAeworICAqLworI2RlZmluZSBMU0lfU1RBUlRVUF9USU1FIDEzMFUgLyohPCBMU0kgTWF4aW11bSBzdGFydHVwIHRpbWUgaW4gdXMgKi8KKworLyoqCisgICogQH0KKyAgKi8KKwogLyoqIEBhZGR0b2dyb3VwIFBlcmlwaGVyYWxfUmVnaXN0ZXJzX0JpdHNfRGVmaW5pdGlvbgogICAqIEB7CiAgICovCkBAIC0xOTU3LDcgKzE5NjUsNyBAQAogCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX1BvcyAgICAgICAgICAgICAoNVUpCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAoMHgxVUwgPDwgQURDX0NGR1JfQUxJR05fUG9zKSAgICAgICAgICAgLyohPCAweDAwMDAwMDIwICovCi0jZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbmVtZW50ICovCisjZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbm1lbnQgKi8KIAogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfUG9zICAgICAgICAgICAgKDZVKQogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfTXNrICAgICAgICAgICAgKDB4RlVMIDw8IEFEQ19DRkdSX0VYVFNFTF9Qb3MpICAgICAgICAgIC8qITwgMHgwMDAwMDNDMCAqLwpAQCAtOTMwNiw3ICs5MzE0LDcgQEAKIC8qKioqKioqKioqKioqKioqKiogIEJpdCBkZWZpbml0aW9uIGZvciBGTUNfQkNSMSByZWdpc3RlciAgKioqKioqKioqKioqKioqKioqKi8KICNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOX1BvcyAgICAgICAgKDIwVSkKICNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOX01zayAgICAgICAgKDB4MVVMIDw8IEZNQ19CQ1IxX0NDTEtFTl9Qb3MpICAgICAgICAgICAgICAvKiE8IDB4MDAxMDAwMDAgKi8KLSNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOICAgICAgICAgICAgRk1DX0JDUjFfQ0NMS0VOX01zayAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8Q29udGlub3VzIGNsb2NrIGVuYWJsZSAgICAgKi8KKyNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOICAgICAgICAgICAgRk1DX0JDUjFfQ0NMS0VOX01zayAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8Q29udGludW91cyBjbG9jayBlbmFibGUgICAgICovCiAjZGVmaW5lIEZNQ19CQ1IxX1dGRElTX1BvcyAgICAgICAgICgyMVUpCiAjZGVmaW5lIEZNQ19CQ1IxX1dGRElTX01zayAgICAgICAgICgweDFVTCA8PCBGTUNfQkNSMV9XRkRJU19Qb3MpICAgICAgICAgICAgICAgLyohPCAweDAwMjAwMDAwICovCiAjZGVmaW5lIEZNQ19CQ1IxX1dGRElTICAgICAgICAgICAgIEZNQ19CQ1IxX1dGRElTX01zayAgICAgICAgICAgICAgICAgICAgICAgICAgLyohPFdyaXRlIEZJRk8gRGlzYWJsZSAgICAgICAgICovCkBAIC0xMTE3MSw3ICsxMTE3OSw3IEBACiAKICNkZWZpbmUgTFREQ19BV0NSX0FBSF9Qb3MgICAgICAgICAgICAoMFUpCiAjZGVmaW5lIExURENfQVdDUl9BQUhfTXNrICAgICAgICAgICAgKDB4N0ZGVUwgPDwgTFREQ19BV0NSX0FBSF9Qb3MpICAgICAgICAgICAgLyohPCAweDAwMDAwN0ZGICovCi0jZGVmaW5lIExURENfQVdDUl9BQUggICAgICAgICAgICAgICAgTFREQ19BV0NSX0FBSF9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBBY2N1bXVsYXRlZCBBY3RpdmUgaGVpZ2ggKi8KKyNkZWZpbmUgTFREQ19BV0NSX0FBSCAgICAgICAgICAgICAgICBMVERDX0FXQ1JfQUFIX01zayAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFjY3VtdWxhdGVkIEFjdGl2ZSBIZWlnaHQgKi8KICNkZWZpbmUgTFREQ19BV0NSX0FBV19Qb3MgICAgICAgICAgICAoMTZVKQogI2RlZmluZSBMVERDX0FXQ1JfQUFXX01zayAgICAgICAgICAgICgweEZGRlVMIDw8IExURENfQVdDUl9BQVdfUG9zKSAgICAgICAgICAgIC8qITwgMHgwRkZGMDAwMCAqLwogI2RlZmluZSBMVERDX0FXQ1JfQUFXICAgICAgICAgICAgICAgIExURENfQVdDUl9BQVdfTXNrICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgQWNjdW11bGF0ZWQgQWN0aXZlIFdpZHRoICovCkBAIC0xMTE4MCw3ICsxMTE4OCw3IEBACiAKICNkZWZpbmUgTFREQ19UV0NSX1RPVEFMSF9Qb3MgICAgICAgICAoMFUpCiAjZGVmaW5lIExURENfVFdDUl9UT1RBTEhfTXNrICAgICAgICAgKDB4N0ZGVUwgPDwgTFREQ19UV0NSX1RPVEFMSF9Qb3MpICAgICAgICAgLyohPCAweDAwMDAwN0ZGICovCi0jZGVmaW5lIExURENfVFdDUl9UT1RBTEggICAgICAgICAgICAgTFREQ19UV0NSX1RPVEFMSF9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBUb3RhbCBIZWlnaCAqLworI2RlZmluZSBMVERDX1RXQ1JfVE9UQUxIICAgICAgICAgICAgIExURENfVFdDUl9UT1RBTEhfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgVG90YWwgSGVpZ2h0ICovCiAjZGVmaW5lIExURENfVFdDUl9UT1RBTFdfUG9zICAgICAgICAgKDE2VSkKICNkZWZpbmUgTFREQ19UV0NSX1RPVEFMV19Nc2sgICAgICAgICAoMHhGRkZVTCA8PCBMVERDX1RXQ1JfVE9UQUxXX1BvcykgICAgICAgICAvKiE8IDB4MEZGRjAwMDAgKi8KICNkZWZpbmUgTFREQ19UV0NSX1RPVEFMVyAgICAgICAgICAgICBMVERDX1RXQ1JfVE9UQUxXX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IFRvdGFsIFdpZHRoICovCkBAIC0xMTcyMiwxMiArMTE3MzAsMTIgQEAKIC8qIEFyaXRobWV0aWMgYWRkaXRpb24gb3V0cHV0IGRhdGEgKi8KICNkZWZpbmUgUEtBX0FSSVRITUVUSUNfQUREX09VVF9SRVNVTFQgICAgICAgICAgICAgKCgweDBCRDBVTCAtIFBLQV9SQU1fT0ZGU0VUKT4+MikgICAvKiE8IE91dHB1dCByZXN1bHQgKi8KIAotLyogQXJpdGhtZXRpYyBzdWJzdHJhY3Rpb24gaW5wdXQgZGF0YSAqLworLyogQXJpdGhtZXRpYyBzdWJ0cmFjdGlvbiBpbnB1dCBkYXRhICovCiAjZGVmaW5lIFBLQV9BUklUSE1FVElDX1NVQl9OQl9CSVRTICAgICAgICAgICAgICAgICgoMHgwNDA0VUwgLSBQS0FfUkFNX09GRlNFVCk+PjIpICAgLyohPCBJbnB1dCBvcGVyYW5kIG51bWJlciBvZiBiaXRzICovCiAjZGVmaW5lIFBLQV9BUklUSE1FVElDX1NVQl9JTl9PUDEgICAgICAgICAgICAgICAgICgoMHgwOEI0VUwgLSBQS0FfUkFNX09GRlNFVCk+PjIpICAgLyohPCBJbnB1dCBvcGVyYW5kIG9wMSAqLwogI2RlZmluZSBQS0FfQVJJVEhNRVRJQ19TVUJfSU5fT1AyICAgICAgICAgICAgICAgICAoKDB4MEE0NFVMIC0gUEtBX1JBTV9PRkZTRVQpPj4yKSAgIC8qITwgSW5wdXQgb3BlcmFuZCBvcDIgKi8KIAotLyogQXJpdGhtZXRpYyBzdWJzdHJhY3Rpb24gb3V0cHV0IGRhdGEgKi8KKy8qIEFyaXRobWV0aWMgc3VidHJhY3Rpb24gb3V0cHV0IGRhdGEgKi8KICNkZWZpbmUgUEtBX0FSSVRITUVUSUNfU1VCX09VVF9SRVNVTFQgICAgICAgICAgICAgKCgweDBCRDBVTCAtIFBLQV9SQU1fT0ZGU0VUKT4+MikgICAvKiE8IE91dHB1dCByZXN1bHQgKi8KIAogLyogQXJpdGhtZXRpYyBtdWx0aXBsaWNhdGlvbiBpbnB1dCBkYXRhICovCkBAIC0xMTc2MywxMyArMTE3NzEsMTMgQEAKIC8qIE1vZHVsYXIgaW52ZXJzaW9uIG91dHB1dCBkYXRhICovCiAjZGVmaW5lIFBLQV9NT0RVTEFSX0lOVl9PVVRfUkVTVUxUICAgICAgICAgICAgICAgICgoMHgwQkQwVUwgLSBQS0FfUkFNX09GRlNFVCk+PjIpICAgLyohPCBPdXRwdXQgcmVzdWx0ICovCiAKLS8qIE1vZHVsYXIgc3Vic3RyYWN0aW9uIGlucHV0IGRhdGEgKi8KKy8qIE1vZHVsYXIgc3VidHJhY3Rpb24gaW5wdXQgZGF0YSAqLwogI2RlZmluZSBQS0FfTU9EVUxBUl9TVUJfTkJfQklUUyAgICAgICAgICAgICAgICAgICAoKDB4MDQwNFVMIC0gUEtBX1JBTV9PRkZTRVQpPj4yKSAgIC8qITwgSW5wdXQgb3BlcmFuZCBudW1iZXIgb2YgYml0cyAqLwogI2RlZmluZSBQS0FfTU9EVUxBUl9TVUJfSU5fT1AxICAgICAgICAgICAgICAgICAgICAoKDB4MDhCNFVMIC0gUEtBX1JBTV9PRkZTRVQpPj4yKSAgIC8qITwgSW5wdXQgb3BlcmFuZCBvcDEgKi8KICNkZWZpbmUgUEtBX01PRFVMQVJfU1VCX0lOX09QMiAgICAgICAgICAgICAgICAgICAgKCgweDBBNDRVTCAtIFBLQV9SQU1fT0ZGU0VUKT4+MikgICAvKiE8IElucHV0IG9wZXJhbmQgb3AyICovCiAjZGVmaW5lIFBLQV9NT0RVTEFSX1NVQl9JTl9PUDNfTU9EICAgICAgICAgICAgICAgICgoMHgwRDVDVUwgLSBQS0FfUkFNX09GRlNFVCk+PjIpICAgLyohPCBJbnB1dCBvcGVyYW5kIG9wMyAqLwogCi0vKiBNb2R1bGFyIHN1YnN0cmFjdGlvbiBvdXRwdXQgZGF0YSAqLworLyogTW9kdWxhciBzdWJ0cmFjdGlvbiBvdXRwdXQgZGF0YSAqLwogI2RlZmluZSBQS0FfTU9EVUxBUl9TVUJfT1VUX1JFU1VMVCAgICAgICAgICAgICAgICAoKDB4MEJEMFVMIC0gUEtBX1JBTV9PRkZTRVQpPj4yKSAgIC8qITwgT3V0cHV0IHJlc3VsdCAqLwogCiAvKiBNb250Z29tZXJ5IG11bHRpcGxpY2F0aW9uIGlucHV0IGRhdGEgKi8KQEAgLTE0MzQyLDYgKzE0MzUwLDkgQEAKIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogI2RlZmluZSBSTkdfVkVSXzNfMgorI2RlZmluZSBSTkdfQ1JfQ09ORklHX1ZBTCAgICAgICAgMHgwMEYwMEQwMFUgLyohPCBEZWZhdWx0IENPTkZJRyAxLDIsMyBpbiBDUiByZWdpc3RlciAqLworI2RlZmluZSBSTkdfSFRDRkcgICAgICAgICAgICAgICAgMHgwMDAwQUE3NFUgLyohPCBIVENSIHJlY29tbWVuZGVkIHZhbHVlIGZvciBiZXN0IGxhdGVuY3kgYW5kIE5JU1QgY29tcGxpYW5jZSAqLworI2RlZmluZSBSTkdfSFRDRkdfMSAgICAgICAgICAgICAgMHgxNzU5MEFCQ1UgLyohPCBNYWdpYyBudW1iZXIgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKiAgQml0cyBkZWZpbml0aW9uIGZvciBSTkdfQ1IgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lIFJOR19DUl9STkdFTl9Qb3MgICAgKDJVKQogI2RlZmluZSBSTkdfQ1JfUk5HRU5fTXNrICAgICgweDFVTCA8PCBSTkdfQ1JfUk5HRU5fUG9zKSAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgMHgwMDAwMDAwNCAqLwpAQCAtMjE2NjYsNCArMjE2NzcsMyBAQAogICAqIEB9CiAgICovCiAKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0bTMybDRyNXh4LmggYi9JbmNsdWRlL3N0bTMybDRyNXh4LmgKaW5kZXggMDRkNmQxZC4uZWEzNDdiMSAxMDA2NDQKLS0tIGEvSW5jbHVkZS9zdG0zMmw0cjV4eC5oCisrKyBiL0luY2x1ZGUvc3RtMzJsNHI1eHguaApAQCAtNywxOCArNywxNyBAQAogICAqICAgICAgICAgIFRoaXMgZmlsZSBjb250YWluczoKICAgKiAgICAgICAgICAgLSBEYXRhIHN0cnVjdHVyZXMgYW5kIHRoZSBhZGRyZXNzIG1hcHBpbmcgZm9yIGFsbCBwZXJpcGhlcmFscwogICAqICAgICAgICAgICAtIFBlcmlwaGVyYWwncyByZWdpc3RlcnMgZGVjbGFyYXRpb25zIGFuZCBiaXRzIGRlZmluaXRpb24KLSAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWyScyByZWdpc3RlcnMgaGFyZHdhcmUKKyAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWwncyByZWdpc3RlcnMgaGFyZHdhcmUKICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNDUsMTEgKzQ0LDExIEBACiAvKioKICAgKiBAYnJpZWYgQ29uZmlndXJhdGlvbiBvZiB0aGUgQ29ydGV4LU00IFByb2Nlc3NvciBhbmQgQ29yZSBQZXJpcGhlcmFscwogICAgKi8KLSNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDEgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDQgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KLSNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCi0jZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMVUgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0VSAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLworI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDBVICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCisjZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogLyoqCiAgICogQH0KQEAgLTE2MDcsNiArMTYwNiwxNSBAQAogICAqIEB7CiAgICovCiAKKy8qKiBAYWRkdG9ncm91cCBIYXJkd2FyZV9Db25zdGFudF9EZWZpbml0aW9uCisgICogQHsKKyAgKi8KKyNkZWZpbmUgTFNJX1NUQVJUVVBfVElNRSAxMzBVIC8qITwgTFNJIE1heGltdW0gc3RhcnR1cCB0aW1lIGluIHVzICovCisKKy8qKgorICAqIEB9CisgICovCisKIC8qKiBAYWRkdG9ncm91cCBQZXJpcGhlcmFsX1JlZ2lzdGVyc19CaXRzX0RlZmluaXRpb24KICAgKiBAewogICAqLwpAQCAtMTc2MCw3ICsxNzY4LDcgQEAKIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Qb3MgICAgICAgICAgICAgKDVVKQogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgKDB4MVVMIDw8IEFEQ19DRkdSX0FMSUdOX1BvcykgICAgICAgICAgIC8qITwgMHgwMDAwMDAyMCAqLwotI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25lbWVudCAqLworI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25tZW50ICovCiAKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX1BvcyAgICAgICAgICAgICg2VSkKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX01zayAgICAgICAgICAgICgweEZVTCA8PCBBRENfQ0ZHUl9FWFRTRUxfUG9zKSAgICAgICAgICAvKiE8IDB4MDAwMDAzQzAgKi8KQEAgLTg3ODQsNyArODc5Miw3IEBACiAvKioqKioqKioqKioqKioqKioqICBCaXQgZGVmaW5pdGlvbiBmb3IgRk1DX0JDUjEgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Qb3MgICAgICAgICgyMFUpCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICgweDFVTCA8PCBGTUNfQkNSMV9DQ0xLRU5fUG9zKSAgICAgICAgICAgICAgLyohPCAweDAwMTAwMDAwICovCi0jZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbm91cyBjbG9jayBlbmFibGUgICAgICovCisjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbnVvdXMgY2xvY2sgZW5hYmxlICAgICAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Qb3MgICAgICAgICAoMjFVKQogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAoMHgxVUwgPDwgRk1DX0JDUjFfV0ZESVNfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDIwMDAwMCAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJUyAgICAgICAgICAgICBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITxXcml0ZSBGSUZPIERpc2FibGUgICAgICAgICAqLwpAQCAtMjAxMTIsNCArMjAxMjAsMyBAQAogICAqIEB9CiAgICovCiAKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0bTMybDRyN3h4LmggYi9JbmNsdWRlL3N0bTMybDRyN3h4LmgKaW5kZXggYjk5MDA3My4uMGZhMDVlOCAxMDA2NDQKLS0tIGEvSW5jbHVkZS9zdG0zMmw0cjd4eC5oCisrKyBiL0luY2x1ZGUvc3RtMzJsNHI3eHguaApAQCAtNywxOCArNywxNyBAQAogICAqICAgICAgICAgIFRoaXMgZmlsZSBjb250YWluczoKICAgKiAgICAgICAgICAgLSBEYXRhIHN0cnVjdHVyZXMgYW5kIHRoZSBhZGRyZXNzIG1hcHBpbmcgZm9yIGFsbCBwZXJpcGhlcmFscwogICAqICAgICAgICAgICAtIFBlcmlwaGVyYWwncyByZWdpc3RlcnMgZGVjbGFyYXRpb25zIGFuZCBiaXRzIGRlZmluaXRpb24KLSAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWyScyByZWdpc3RlcnMgaGFyZHdhcmUKKyAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWwncyByZWdpc3RlcnMgaGFyZHdhcmUKICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNDUsMTEgKzQ0LDExIEBACiAvKioKICAgKiBAYnJpZWYgQ29uZmlndXJhdGlvbiBvZiB0aGUgQ29ydGV4LU00IFByb2Nlc3NvciBhbmQgQ29yZSBQZXJpcGhlcmFscwogICAgKi8KLSNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDEgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDQgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KLSNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCi0jZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMVUgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0VSAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLworI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDBVICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCisjZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogLyoqCiAgICogQH0KQEAgLTE2OTMsNiArMTY5MiwxNSBAQAogICAqIEB7CiAgICovCiAKKy8qKiBAYWRkdG9ncm91cCBIYXJkd2FyZV9Db25zdGFudF9EZWZpbml0aW9uCisgICogQHsKKyAgKi8KKyNkZWZpbmUgTFNJX1NUQVJUVVBfVElNRSAxMzBVIC8qITwgTFNJIE1heGltdW0gc3RhcnR1cCB0aW1lIGluIHVzICovCisKKy8qKgorICAqIEB9CisgICovCisKIC8qKiBAYWRkdG9ncm91cCBQZXJpcGhlcmFsX1JlZ2lzdGVyc19CaXRzX0RlZmluaXRpb24KICAgKiBAewogICAqLwpAQCAtMTg0Niw3ICsxODU0LDcgQEAKIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Qb3MgICAgICAgICAgICAgKDVVKQogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgKDB4MVVMIDw8IEFEQ19DRkdSX0FMSUdOX1BvcykgICAgICAgICAgIC8qITwgMHgwMDAwMDAyMCAqLwotI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25lbWVudCAqLworI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25tZW50ICovCiAKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX1BvcyAgICAgICAgICAgICg2VSkKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX01zayAgICAgICAgICAgICgweEZVTCA8PCBBRENfQ0ZHUl9FWFRTRUxfUG9zKSAgICAgICAgICAvKiE8IDB4MDAwMDAzQzAgKi8KQEAgLTg4NzAsNyArODg3OCw3IEBACiAvKioqKioqKioqKioqKioqKioqICBCaXQgZGVmaW5pdGlvbiBmb3IgRk1DX0JDUjEgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Qb3MgICAgICAgICgyMFUpCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICgweDFVTCA8PCBGTUNfQkNSMV9DQ0xLRU5fUG9zKSAgICAgICAgICAgICAgLyohPCAweDAwMTAwMDAwICovCi0jZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbm91cyBjbG9jayBlbmFibGUgICAgICovCisjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbnVvdXMgY2xvY2sgZW5hYmxlICAgICAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Qb3MgICAgICAgICAoMjFVKQogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAoMHgxVUwgPDwgRk1DX0JDUjFfV0ZESVNfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDIwMDAwMCAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJUyAgICAgICAgICAgICBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITxXcml0ZSBGSUZPIERpc2FibGUgICAgICAgICAqLwpAQCAtMTA3NDksNyArMTA3NTcsNyBAQAogCiAjZGVmaW5lIExURENfQVdDUl9BQUhfUG9zICAgICAgICAgICAgKDBVKQogI2RlZmluZSBMVERDX0FXQ1JfQUFIX01zayAgICAgICAgICAgICgweDdGRlVMIDw8IExURENfQVdDUl9BQUhfUG9zKSAgICAgICAgICAgIC8qITwgMHgwMDAwMDdGRiAqLwotI2RlZmluZSBMVERDX0FXQ1JfQUFIICAgICAgICAgICAgICAgIExURENfQVdDUl9BQUhfTXNrICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgQWNjdW11bGF0ZWQgQWN0aXZlIGhlaWdoICovCisjZGVmaW5lIExURENfQVdDUl9BQUggICAgICAgICAgICAgICAgTFREQ19BV0NSX0FBSF9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBBY2N1bXVsYXRlZCBBY3RpdmUgSGVpZ2h0ICovCiAjZGVmaW5lIExURENfQVdDUl9BQVdfUG9zICAgICAgICAgICAgKDE2VSkKICNkZWZpbmUgTFREQ19BV0NSX0FBV19Nc2sgICAgICAgICAgICAoMHhGRkZVTCA8PCBMVERDX0FXQ1JfQUFXX1BvcykgICAgICAgICAgICAvKiE8IDB4MEZGRjAwMDAgKi8KICNkZWZpbmUgTFREQ19BV0NSX0FBVyAgICAgICAgICAgICAgICBMVERDX0FXQ1JfQUFXX01zayAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFjY3VtdWxhdGVkIEFjdGl2ZSBXaWR0aCAqLwpAQCAtMTA3NTgsNyArMTA3NjYsNyBAQAogCiAjZGVmaW5lIExURENfVFdDUl9UT1RBTEhfUG9zICAgICAgICAgKDBVKQogI2RlZmluZSBMVERDX1RXQ1JfVE9UQUxIX01zayAgICAgICAgICgweDdGRlVMIDw8IExURENfVFdDUl9UT1RBTEhfUG9zKSAgICAgICAgIC8qITwgMHgwMDAwMDdGRiAqLwotI2RlZmluZSBMVERDX1RXQ1JfVE9UQUxIICAgICAgICAgICAgIExURENfVFdDUl9UT1RBTEhfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgVG90YWwgSGVpZ2ggKi8KKyNkZWZpbmUgTFREQ19UV0NSX1RPVEFMSCAgICAgICAgICAgICBMVERDX1RXQ1JfVE9UQUxIX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IFRvdGFsIEhlaWdodCAqLwogI2RlZmluZSBMVERDX1RXQ1JfVE9UQUxXX1BvcyAgICAgICAgICgxNlUpCiAjZGVmaW5lIExURENfVFdDUl9UT1RBTFdfTXNrICAgICAgICAgKDB4RkZGVUwgPDwgTFREQ19UV0NSX1RPVEFMV19Qb3MpICAgICAgICAgLyohPCAweDBGRkYwMDAwICovCiAjZGVmaW5lIExURENfVFdDUl9UT1RBTFcgICAgICAgICAgICAgTFREQ19UV0NSX1RPVEFMV19Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBUb3RhbCBXaWR0aCAqLwpAQCAtMjA2MTcsNCArMjA2MjUsMyBAQAogICAqIEB9CiAgICovCiAKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0bTMybDRyOXh4LmggYi9JbmNsdWRlL3N0bTMybDRyOXh4LmgKaW5kZXggNDdhZjM1NS4uZTE5NzI5OCAxMDA2NDQKLS0tIGEvSW5jbHVkZS9zdG0zMmw0cjl4eC5oCisrKyBiL0luY2x1ZGUvc3RtMzJsNHI5eHguaApAQCAtNywxOCArNywxNyBAQAogICAqICAgICAgICAgIFRoaXMgZmlsZSBjb250YWluczoKICAgKiAgICAgICAgICAgLSBEYXRhIHN0cnVjdHVyZXMgYW5kIHRoZSBhZGRyZXNzIG1hcHBpbmcgZm9yIGFsbCBwZXJpcGhlcmFscwogICAqICAgICAgICAgICAtIFBlcmlwaGVyYWwncyByZWdpc3RlcnMgZGVjbGFyYXRpb25zIGFuZCBiaXRzIGRlZmluaXRpb24KLSAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWyScyByZWdpc3RlcnMgaGFyZHdhcmUKKyAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWwncyByZWdpc3RlcnMgaGFyZHdhcmUKICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNDUsMTEgKzQ0LDExIEBACiAvKioKICAgKiBAYnJpZWYgQ29uZmlndXJhdGlvbiBvZiB0aGUgQ29ydGV4LU00IFByb2Nlc3NvciBhbmQgQ29yZSBQZXJpcGhlcmFscwogICAgKi8KLSNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDEgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDQgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KLSNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCi0jZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMVUgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0VSAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLworI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDBVICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCisjZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogLyoqCiAgICogQH0KQEAgLTU2OCw3ICs1NjcsNyBAQAogICB1aW50MzJfdCAgICAgIFJFU0VSVkVEN1s3XTsgICAvKiE8IFJlc2VydmVkLCAweDExQyAtIDB4MTM3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogICBfX0lPIHVpbnQzMl90IFZNQ0NSOyAgICAgICAgICAvKiE8IERTSSBIb3N0IFZpZGVvIE1vZGUgQ3VycmVudCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyLCAgICAgICAgQWRkcmVzcyBvZmZzZXQ6IDB4MTM4ICAgICAqLwogICBfX0lPIHVpbnQzMl90IFZQQ0NSOyAgICAgICAgICAvKiE8IERTSSBIb3N0IFZpZGVvIFBhY2tldCBDdXJyZW50IENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIsICAgICAgQWRkcmVzcyBvZmZzZXQ6IDB4MTNDICAgICAqLwotICBfX0lPIHVpbnQzMl90IFZDQ0NSOyAgICAgICAgICAvKiE8IERTSSBIb3N0IFZpZGVvIENodW5ja3MgQ3VycmVudCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyLCAgICAgQWRkcmVzcyBvZmZzZXQ6IDB4MTQwICAgICAqLworICBfX0lPIHVpbnQzMl90IFZDQ0NSOyAgICAgICAgICAvKiE8IERTSSBIb3N0IFZpZGVvIENodW5rcyBDdXJyZW50IENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIsICAgICBBZGRyZXNzIG9mZnNldDogMHgxNDAgICAgICovCiAgIF9fSU8gdWludDMyX3QgVk5QQ0NSOyAgICAgICAgIC8qITwgRFNJIEhvc3QgVmlkZW8gTnVsbCBQYWNrZXQgQ3VycmVudCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyLCBBZGRyZXNzIG9mZnNldDogMHgxNDQgICAgICovCiAgIF9fSU8gdWludDMyX3QgVkhTQUNDUjsgICAgICAgIC8qITwgRFNJIEhvc3QgVmlkZW8gSFNBIEN1cnJlbnQgQ29uZmlndXJhdGlvbiBSZWdpc3RlciwgICAgICAgICBBZGRyZXNzIG9mZnNldDogMHgxNDggICAgICovCiAgIF9fSU8gdWludDMyX3QgVkhCUENDUjsgICAgICAgIC8qITwgRFNJIEhvc3QgVmlkZW8gSEJQIEN1cnJlbnQgQ29uZmlndXJhdGlvbiBSZWdpc3RlciwgICAgICAgICBBZGRyZXNzIG9mZnNldDogMHgxNEMgICAgICovCkBAIC0xNzc1LDYgKzE3NzQsMTUgQEAKICAgKiBAewogICAqLwogCisvKiogQGFkZHRvZ3JvdXAgSGFyZHdhcmVfQ29uc3RhbnRfRGVmaW5pdGlvbgorICAqIEB7CisgICovCisjZGVmaW5lIExTSV9TVEFSVFVQX1RJTUUgMTMwVSAvKiE8IExTSSBNYXhpbXVtIHN0YXJ0dXAgdGltZSBpbiB1cyAqLworCisvKioKKyAgKiBAfQorICAqLworCiAvKiogQGFkZHRvZ3JvdXAgUGVyaXBoZXJhbF9SZWdpc3RlcnNfQml0c19EZWZpbml0aW9uCiAgICogQHsKICAgKi8KQEAgLTE5MjgsNyArMTkzNiw3IEBACiAKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fUG9zICAgICAgICAgICAgICg1VSkKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICgweDFVTCA8PCBBRENfQ0ZHUl9BTElHTl9Qb3MpICAgICAgICAgICAvKiE8IDB4MDAwMDAwMjAgKi8KLSNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWduZW1lbnQgKi8KKyNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWdubWVudCAqLwogCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Qb3MgICAgICAgICAgICAoNlUpCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Nc2sgICAgICAgICAgICAoMHhGVUwgPDwgQURDX0NGR1JfRVhUU0VMX1BvcykgICAgICAgICAgLyohPCAweDAwMDAwM0MwICovCkBAIC04MTgxLDcgKzgxODksNyBAQAogCiAjZGVmaW5lIERTSV9MQ09MQ1JfTFBFX1BvcyAgICAgICAgICAgICg4VSkKICNkZWZpbmUgRFNJX0xDT0xDUl9MUEVfTXNrICAgICAgICAgICAgKDB4MVVMIDw8IERTSV9MQ09MQ1JfTFBFX1BvcykgICAgICAgICAgICAvKiE8IDB4MDAwMDAxMDAgKi8KLSNkZWZpbmUgRFNJX0xDT0xDUl9MUEUgICAgICAgICAgICAgICAgRFNJX0xDT0xDUl9MUEVfTXNrICAgICAgICAgICAgICAgICAgICAgICAvKiE8IExvb3NseSBQYWNrZXQgRW5hYmxlICovCisjZGVmaW5lIERTSV9MQ09MQ1JfTFBFICAgICAgICAgICAgICAgIERTSV9MQ09MQ1JfTFBFX01zayAgICAgICAgICAgICAgICAgICAgICAgLyohPCBMb29zZWx5IFBhY2tldCBFbmFibGUgKi8KIAogLyoqKioqKioqKioqKioqKioqKiogIEJpdCBkZWZpbml0aW9uIGZvciBEU0lfTFBDUiByZWdpc3RlciAgKioqKioqKioqKioqKioqLwogI2RlZmluZSBEU0lfTFBDUl9ERVBfUG9zICAgICAgICAgICAgICAoMFUpCkBAIC0xMTk4OSw3ICsxMTk5Nyw3IEBACiAvKioqKioqKioqKioqKioqKioqICBCaXQgZGVmaW5pdGlvbiBmb3IgRk1DX0JDUjEgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Qb3MgICAgICAgICgyMFUpCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICgweDFVTCA8PCBGTUNfQkNSMV9DQ0xLRU5fUG9zKSAgICAgICAgICAgICAgLyohPCAweDAwMTAwMDAwICovCi0jZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbm91cyBjbG9jayBlbmFibGUgICAgICovCisjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbnVvdXMgY2xvY2sgZW5hYmxlICAgICAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Qb3MgICAgICAgICAoMjFVKQogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAoMHgxVUwgPDwgRk1DX0JDUjFfV0ZESVNfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDIwMDAwMCAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJUyAgICAgICAgICAgICBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITxXcml0ZSBGSUZPIERpc2FibGUgICAgICAgICAqLwpAQCAtMTM4NjgsNyArMTM4NzYsNyBAQAogCiAjZGVmaW5lIExURENfQVdDUl9BQUhfUG9zICAgICAgICAgICAgKDBVKQogI2RlZmluZSBMVERDX0FXQ1JfQUFIX01zayAgICAgICAgICAgICgweDdGRlVMIDw8IExURENfQVdDUl9BQUhfUG9zKSAgICAgICAgICAgIC8qITwgMHgwMDAwMDdGRiAqLwotI2RlZmluZSBMVERDX0FXQ1JfQUFIICAgICAgICAgICAgICAgIExURENfQVdDUl9BQUhfTXNrICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgQWNjdW11bGF0ZWQgQWN0aXZlIGhlaWdoICovCisjZGVmaW5lIExURENfQVdDUl9BQUggICAgICAgICAgICAgICAgTFREQ19BV0NSX0FBSF9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBBY2N1bXVsYXRlZCBBY3RpdmUgSGVpZ2h0ICovCiAjZGVmaW5lIExURENfQVdDUl9BQVdfUG9zICAgICAgICAgICAgKDE2VSkKICNkZWZpbmUgTFREQ19BV0NSX0FBV19Nc2sgICAgICAgICAgICAoMHhGRkZVTCA8PCBMVERDX0FXQ1JfQUFXX1BvcykgICAgICAgICAgICAvKiE8IDB4MEZGRjAwMDAgKi8KICNkZWZpbmUgTFREQ19BV0NSX0FBVyAgICAgICAgICAgICAgICBMVERDX0FXQ1JfQUFXX01zayAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFjY3VtdWxhdGVkIEFjdGl2ZSBXaWR0aCAqLwpAQCAtMTM4NzcsNyArMTM4ODUsNyBAQAogCiAjZGVmaW5lIExURENfVFdDUl9UT1RBTEhfUG9zICAgICAgICAgKDBVKQogI2RlZmluZSBMVERDX1RXQ1JfVE9UQUxIX01zayAgICAgICAgICgweDdGRlVMIDw8IExURENfVFdDUl9UT1RBTEhfUG9zKSAgICAgICAgIC8qITwgMHgwMDAwMDdGRiAqLwotI2RlZmluZSBMVERDX1RXQ1JfVE9UQUxIICAgICAgICAgICAgIExURENfVFdDUl9UT1RBTEhfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgVG90YWwgSGVpZ2ggKi8KKyNkZWZpbmUgTFREQ19UV0NSX1RPVEFMSCAgICAgICAgICAgICBMVERDX1RXQ1JfVE9UQUxIX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IFRvdGFsIEhlaWdodCAqLwogI2RlZmluZSBMVERDX1RXQ1JfVE9UQUxXX1BvcyAgICAgICAgICgxNlUpCiAjZGVmaW5lIExURENfVFdDUl9UT1RBTFdfTXNrICAgICAgICAgKDB4RkZGVUwgPDwgTFREQ19UV0NSX1RPVEFMV19Qb3MpICAgICAgICAgLyohPCAweDBGRkYwMDAwICovCiAjZGVmaW5lIExURENfVFdDUl9UT1RBTFcgICAgICAgICAgICAgTFREQ19UV0NSX1RPVEFMV19Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBUb3RhbCBXaWR0aCAqLwpAQCAtMjM3NDksNCArMjM3NTcsMyBAQAogICAqIEB9CiAgICovCiAKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0bTMybDRzNXh4LmggYi9JbmNsdWRlL3N0bTMybDRzNXh4LmgKaW5kZXggZjRkOTc0ZC4uYzczMGQ2ZiAxMDA2NDQKLS0tIGEvSW5jbHVkZS9zdG0zMmw0czV4eC5oCisrKyBiL0luY2x1ZGUvc3RtMzJsNHM1eHguaApAQCAtNywxOCArNywxNyBAQAogICAqICAgICAgICAgIFRoaXMgZmlsZSBjb250YWluczoKICAgKiAgICAgICAgICAgLSBEYXRhIHN0cnVjdHVyZXMgYW5kIHRoZSBhZGRyZXNzIG1hcHBpbmcgZm9yIGFsbCBwZXJpcGhlcmFscwogICAqICAgICAgICAgICAtIFBlcmlwaGVyYWwncyByZWdpc3RlcnMgZGVjbGFyYXRpb25zIGFuZCBiaXRzIGRlZmluaXRpb24KLSAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWyScyByZWdpc3RlcnMgaGFyZHdhcmUKKyAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWwncyByZWdpc3RlcnMgaGFyZHdhcmUKICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNDUsMTEgKzQ0LDExIEBACiAvKioKICAgKiBAYnJpZWYgQ29uZmlndXJhdGlvbiBvZiB0aGUgQ29ydGV4LU00IFByb2Nlc3NvciBhbmQgQ29yZSBQZXJpcGhlcmFscwogICAgKi8KLSNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDEgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDQgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KLSNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCi0jZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMVUgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0VSAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLworI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDBVICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCisjZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogLyoqCiAgICogQH0KQEAgLTE2NzEsNiArMTY3MCwxNSBAQAogICAqIEB7CiAgICovCiAKKy8qKiBAYWRkdG9ncm91cCBIYXJkd2FyZV9Db25zdGFudF9EZWZpbml0aW9uCisgICogQHsKKyAgKi8KKyNkZWZpbmUgTFNJX1NUQVJUVVBfVElNRSAxMzBVIC8qITwgTFNJIE1heGltdW0gc3RhcnR1cCB0aW1lIGluIHVzICovCisKKy8qKgorICAqIEB9CisgICovCisKIC8qKiBAYWRkdG9ncm91cCBQZXJpcGhlcmFsX1JlZ2lzdGVyc19CaXRzX0RlZmluaXRpb24KICAgKiBAewogICAqLwpAQCAtMTgyNCw3ICsxODMyLDcgQEAKIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Qb3MgICAgICAgICAgICAgKDVVKQogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgKDB4MVVMIDw8IEFEQ19DRkdSX0FMSUdOX1BvcykgICAgICAgICAgIC8qITwgMHgwMDAwMDAyMCAqLwotI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25lbWVudCAqLworI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25tZW50ICovCiAKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX1BvcyAgICAgICAgICAgICg2VSkKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX01zayAgICAgICAgICAgICgweEZVTCA8PCBBRENfQ0ZHUl9FWFRTRUxfUG9zKSAgICAgICAgICAvKiE8IDB4MDAwMDAzQzAgKi8KQEAgLTkwMzYsNyArOTA0NCw3IEBACiAvKioqKioqKioqKioqKioqKioqICBCaXQgZGVmaW5pdGlvbiBmb3IgRk1DX0JDUjEgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Qb3MgICAgICAgICgyMFUpCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICgweDFVTCA8PCBGTUNfQkNSMV9DQ0xLRU5fUG9zKSAgICAgICAgICAgICAgLyohPCAweDAwMTAwMDAwICovCi0jZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbm91cyBjbG9jayBlbmFibGUgICAgICovCisjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbnVvdXMgY2xvY2sgZW5hYmxlICAgICAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Qb3MgICAgICAgICAoMjFVKQogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAoMHgxVUwgPDwgRk1DX0JDUjFfV0ZESVNfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDIwMDAwMCAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJUyAgICAgICAgICAgICBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITxXcml0ZSBGSUZPIERpc2FibGUgICAgICAgICAqLwpAQCAtMjA0NjIsNCArMjA0NzAsMyBAQAogICAqIEB9CiAgICovCiAKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0bTMybDRzN3h4LmggYi9JbmNsdWRlL3N0bTMybDRzN3h4LmgKaW5kZXggMzdiODQ4ZS4uMmJjZTQxNiAxMDA2NDQKLS0tIGEvSW5jbHVkZS9zdG0zMmw0czd4eC5oCisrKyBiL0luY2x1ZGUvc3RtMzJsNHM3eHguaApAQCAtNywxOCArNywxNyBAQAogICAqICAgICAgICAgIFRoaXMgZmlsZSBjb250YWluczoKICAgKiAgICAgICAgICAgLSBEYXRhIHN0cnVjdHVyZXMgYW5kIHRoZSBhZGRyZXNzIG1hcHBpbmcgZm9yIGFsbCBwZXJpcGhlcmFscwogICAqICAgICAgICAgICAtIFBlcmlwaGVyYWwncyByZWdpc3RlcnMgZGVjbGFyYXRpb25zIGFuZCBiaXRzIGRlZmluaXRpb24KLSAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWyScyByZWdpc3RlcnMgaGFyZHdhcmUKKyAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWwncyByZWdpc3RlcnMgaGFyZHdhcmUKICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNDUsMTEgKzQ0LDExIEBACiAvKioKICAgKiBAYnJpZWYgQ29uZmlndXJhdGlvbiBvZiB0aGUgQ29ydGV4LU00IFByb2Nlc3NvciBhbmQgQ29yZSBQZXJpcGhlcmFscwogICAgKi8KLSNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDEgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDQgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KLSNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCi0jZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMVUgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0VSAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLworI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDBVICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCisjZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogLyoqCiAgICogQH0KQEAgLTE3NTcsNiArMTc1NiwxNSBAQAogICAqIEB7CiAgICovCiAKKy8qKiBAYWRkdG9ncm91cCBIYXJkd2FyZV9Db25zdGFudF9EZWZpbml0aW9uCisgICogQHsKKyAgKi8KKyNkZWZpbmUgTFNJX1NUQVJUVVBfVElNRSAxMzBVIC8qITwgTFNJIE1heGltdW0gc3RhcnR1cCB0aW1lIGluIHVzICovCisKKy8qKgorICAqIEB9CisgICovCisKIC8qKiBAYWRkdG9ncm91cCBQZXJpcGhlcmFsX1JlZ2lzdGVyc19CaXRzX0RlZmluaXRpb24KICAgKiBAewogICAqLwpAQCAtMTkxMCw3ICsxOTE4LDcgQEAKIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Qb3MgICAgICAgICAgICAgKDVVKQogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgKDB4MVVMIDw8IEFEQ19DRkdSX0FMSUdOX1BvcykgICAgICAgICAgIC8qITwgMHgwMDAwMDAyMCAqLwotI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25lbWVudCAqLworI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25tZW50ICovCiAKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX1BvcyAgICAgICAgICAgICg2VSkKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX01zayAgICAgICAgICAgICgweEZVTCA8PCBBRENfQ0ZHUl9FWFRTRUxfUG9zKSAgICAgICAgICAvKiE8IDB4MDAwMDAzQzAgKi8KQEAgLTkxMjIsNyArOTEzMCw3IEBACiAvKioqKioqKioqKioqKioqKioqICBCaXQgZGVmaW5pdGlvbiBmb3IgRk1DX0JDUjEgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Qb3MgICAgICAgICgyMFUpCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICgweDFVTCA8PCBGTUNfQkNSMV9DQ0xLRU5fUG9zKSAgICAgICAgICAgICAgLyohPCAweDAwMTAwMDAwICovCi0jZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbm91cyBjbG9jayBlbmFibGUgICAgICovCisjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbnVvdXMgY2xvY2sgZW5hYmxlICAgICAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Qb3MgICAgICAgICAoMjFVKQogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAoMHgxVUwgPDwgRk1DX0JDUjFfV0ZESVNfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDIwMDAwMCAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJUyAgICAgICAgICAgICBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITxXcml0ZSBGSUZPIERpc2FibGUgICAgICAgICAqLwpAQCAtMTEwNzgsNyArMTEwODYsNyBAQAogCiAjZGVmaW5lIExURENfQVdDUl9BQUhfUG9zICAgICAgICAgICAgKDBVKQogI2RlZmluZSBMVERDX0FXQ1JfQUFIX01zayAgICAgICAgICAgICgweDdGRlVMIDw8IExURENfQVdDUl9BQUhfUG9zKSAgICAgICAgICAgIC8qITwgMHgwMDAwMDdGRiAqLwotI2RlZmluZSBMVERDX0FXQ1JfQUFIICAgICAgICAgICAgICAgIExURENfQVdDUl9BQUhfTXNrICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgQWNjdW11bGF0ZWQgQWN0aXZlIGhlaWdoICovCisjZGVmaW5lIExURENfQVdDUl9BQUggICAgICAgICAgICAgICAgTFREQ19BV0NSX0FBSF9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBBY2N1bXVsYXRlZCBBY3RpdmUgSGVpZ2h0ICovCiAjZGVmaW5lIExURENfQVdDUl9BQVdfUG9zICAgICAgICAgICAgKDE2VSkKICNkZWZpbmUgTFREQ19BV0NSX0FBV19Nc2sgICAgICAgICAgICAoMHhGRkZVTCA8PCBMVERDX0FXQ1JfQUFXX1BvcykgICAgICAgICAgICAvKiE8IDB4MEZGRjAwMDAgKi8KICNkZWZpbmUgTFREQ19BV0NSX0FBVyAgICAgICAgICAgICAgICBMVERDX0FXQ1JfQUFXX01zayAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFjY3VtdWxhdGVkIEFjdGl2ZSBXaWR0aCAqLwpAQCAtMTEwODcsNyArMTEwOTUsNyBAQAogCiAjZGVmaW5lIExURENfVFdDUl9UT1RBTEhfUG9zICAgICAgICAgKDBVKQogI2RlZmluZSBMVERDX1RXQ1JfVE9UQUxIX01zayAgICAgICAgICgweDdGRlVMIDw8IExURENfVFdDUl9UT1RBTEhfUG9zKSAgICAgICAgIC8qITwgMHgwMDAwMDdGRiAqLwotI2RlZmluZSBMVERDX1RXQ1JfVE9UQUxIICAgICAgICAgICAgIExURENfVFdDUl9UT1RBTEhfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgVG90YWwgSGVpZ2ggKi8KKyNkZWZpbmUgTFREQ19UV0NSX1RPVEFMSCAgICAgICAgICAgICBMVERDX1RXQ1JfVE9UQUxIX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IFRvdGFsIEhlaWdodCAqLwogI2RlZmluZSBMVERDX1RXQ1JfVE9UQUxXX1BvcyAgICAgICAgICgxNlUpCiAjZGVmaW5lIExURENfVFdDUl9UT1RBTFdfTXNrICAgICAgICAgKDB4RkZGVUwgPDwgTFREQ19UV0NSX1RPVEFMV19Qb3MpICAgICAgICAgLyohPCAweDBGRkYwMDAwICovCiAjZGVmaW5lIExURENfVFdDUl9UT1RBTFcgICAgICAgICAgICAgTFREQ19UV0NSX1RPVEFMV19Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBUb3RhbCBXaWR0aCAqLwpAQCAtMjA5NjcsNCArMjA5NzUsMyBAQAogICAqIEB9CiAgICovCiAKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0bTMybDRzOXh4LmggYi9JbmNsdWRlL3N0bTMybDRzOXh4LmgKaW5kZXggM2U1OTQ4NC4uNjczYTY4MiAxMDA2NDQKLS0tIGEvSW5jbHVkZS9zdG0zMmw0czl4eC5oCisrKyBiL0luY2x1ZGUvc3RtMzJsNHM5eHguaApAQCAtNywxOCArNywxNyBAQAogICAqICAgICAgICAgIFRoaXMgZmlsZSBjb250YWluczoKICAgKiAgICAgICAgICAgLSBEYXRhIHN0cnVjdHVyZXMgYW5kIHRoZSBhZGRyZXNzIG1hcHBpbmcgZm9yIGFsbCBwZXJpcGhlcmFscwogICAqICAgICAgICAgICAtIFBlcmlwaGVyYWwncyByZWdpc3RlcnMgZGVjbGFyYXRpb25zIGFuZCBiaXRzIGRlZmluaXRpb24KLSAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWyScyByZWdpc3RlcnMgaGFyZHdhcmUKKyAgKiAgICAgICAgICAgLSBNYWNyb3MgdG8gYWNjZXNzIHBlcmlwaGVyYWwncyByZWdpc3RlcnMgaGFyZHdhcmUKICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNDUsMTEgKzQ0LDExIEBACiAvKioKICAgKiBAYnJpZWYgQ29uZmlndXJhdGlvbiBvZiB0aGUgQ29ydGV4LU00IFByb2Nlc3NvciBhbmQgQ29yZSBQZXJpcGhlcmFscwogICAgKi8KLSNkZWZpbmUgX19DTTRfUkVWICAgICAgICAgICAgICAgICAweDAwMDEgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCi0jZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IFNUTTMyTDRYWCBwcm92aWRlcyBhbiBNUFUgICAgICAgICAgICAgICAgICAgICAqLwotI2RlZmluZSBfX05WSUNfUFJJT19CSVRTICAgICAgICAgIDQgICAgICAgLyohPCBTVE0zMkw0WFggdXNlcyA0IEJpdHMgZm9yIHRoZSBQcmlvcml0eSBMZXZlbHMgKi8KLSNkZWZpbmUgX19WZW5kb3JfU3lzVGlja0NvbmZpZyAgICAwICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCi0jZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMSAgICAgICAvKiE8IEZQVSBwcmVzZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBfX0NNNF9SRVYgICAgICAgICAgICAgICAgIDB4MDAwMVUgIC8qITwgQ29ydGV4LU00IHJldmlzaW9uIHIwcDEgICAgICAgICAgICAgICAgICAgICAgICovCisjZGVmaW5lIF9fTVBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBTVE0zMkw0WFggcHJvdmlkZXMgYW4gTVBVICAgICAgICAgICAgICAgICAgICAgKi8KKyNkZWZpbmUgX19OVklDX1BSSU9fQklUUyAgICAgICAgICA0VSAgICAgICAvKiE8IFNUTTMyTDRYWCB1c2VzIDQgQml0cyBmb3IgdGhlIFByaW9yaXR5IExldmVscyAqLworI2RlZmluZSBfX1ZlbmRvcl9TeXNUaWNrQ29uZmlnICAgIDBVICAgICAgIC8qITwgU2V0IHRvIDEgaWYgZGlmZmVyZW50IFN5c1RpY2sgQ29uZmlnIGlzIHVzZWQgICovCisjZGVmaW5lIF9fRlBVX1BSRVNFTlQgICAgICAgICAgICAgMVUgICAgICAgLyohPCBGUFUgcHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIAogLyoqCiAgICogQH0KQEAgLTU2OSw3ICs1NjgsNyBAQAogICB1aW50MzJfdCAgICAgIFJFU0VSVkVEN1s3XTsgICAvKiE8IFJlc2VydmVkLCAweDExQyAtIDB4MTM3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogICBfX0lPIHVpbnQzMl90IFZNQ0NSOyAgICAgICAgICAvKiE8IERTSSBIb3N0IFZpZGVvIE1vZGUgQ3VycmVudCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyLCAgICAgICAgQWRkcmVzcyBvZmZzZXQ6IDB4MTM4ICAgICAqLwogICBfX0lPIHVpbnQzMl90IFZQQ0NSOyAgICAgICAgICAvKiE8IERTSSBIb3N0IFZpZGVvIFBhY2tldCBDdXJyZW50IENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIsICAgICAgQWRkcmVzcyBvZmZzZXQ6IDB4MTNDICAgICAqLwotICBfX0lPIHVpbnQzMl90IFZDQ0NSOyAgICAgICAgICAvKiE8IERTSSBIb3N0IFZpZGVvIENodW5ja3MgQ3VycmVudCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyLCAgICAgQWRkcmVzcyBvZmZzZXQ6IDB4MTQwICAgICAqLworICBfX0lPIHVpbnQzMl90IFZDQ0NSOyAgICAgICAgICAvKiE8IERTSSBIb3N0IFZpZGVvIENodW5rcyBDdXJyZW50IENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIsICAgICBBZGRyZXNzIG9mZnNldDogMHgxNDAgICAgICovCiAgIF9fSU8gdWludDMyX3QgVk5QQ0NSOyAgICAgICAgIC8qITwgRFNJIEhvc3QgVmlkZW8gTnVsbCBQYWNrZXQgQ3VycmVudCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyLCBBZGRyZXNzIG9mZnNldDogMHgxNDQgICAgICovCiAgIF9fSU8gdWludDMyX3QgVkhTQUNDUjsgICAgICAgIC8qITwgRFNJIEhvc3QgVmlkZW8gSFNBIEN1cnJlbnQgQ29uZmlndXJhdGlvbiBSZWdpc3RlciwgICAgICAgICBBZGRyZXNzIG9mZnNldDogMHgxNDggICAgICovCiAgIF9fSU8gdWludDMyX3QgVkhCUENDUjsgICAgICAgIC8qITwgRFNJIEhvc3QgVmlkZW8gSEJQIEN1cnJlbnQgQ29uZmlndXJhdGlvbiBSZWdpc3RlciwgICAgICAgICBBZGRyZXNzIG9mZnNldDogMHgxNEMgICAgICovCkBAIC0xODM5LDYgKzE4MzgsMTUgQEAKICAgKiBAewogICAqLwogCisvKiogQGFkZHRvZ3JvdXAgSGFyZHdhcmVfQ29uc3RhbnRfRGVmaW5pdGlvbgorICAqIEB7CisgICovCisjZGVmaW5lIExTSV9TVEFSVFVQX1RJTUUgMTMwVSAvKiE8IExTSSBNYXhpbXVtIHN0YXJ0dXAgdGltZSBpbiB1cyAqLworCisvKioKKyAgKiBAfQorICAqLworCiAvKiogQGFkZHRvZ3JvdXAgUGVyaXBoZXJhbF9SZWdpc3RlcnNfQml0c19EZWZpbml0aW9uCiAgICogQHsKICAgKi8KQEAgLTE5OTIsNyArMjAwMCw3IEBACiAKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fUG9zICAgICAgICAgICAgICg1VSkKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICgweDFVTCA8PCBBRENfQ0ZHUl9BTElHTl9Qb3MpICAgICAgICAgICAvKiE8IDB4MDAwMDAwMjAgKi8KLSNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWduZW1lbnQgKi8KKyNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWdubWVudCAqLwogCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Qb3MgICAgICAgICAgICAoNlUpCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Nc2sgICAgICAgICAgICAoMHhGVUwgPDwgQURDX0NGR1JfRVhUU0VMX1BvcykgICAgICAgICAgLyohPCAweDAwMDAwM0MwICovCkBAIC04NDMzLDcgKzg0NDEsNyBAQAogCiAjZGVmaW5lIERTSV9MQ09MQ1JfTFBFX1BvcyAgICAgICAgICAgICg4VSkKICNkZWZpbmUgRFNJX0xDT0xDUl9MUEVfTXNrICAgICAgICAgICAgKDB4MVVMIDw8IERTSV9MQ09MQ1JfTFBFX1BvcykgICAgICAgICAgICAvKiE8IDB4MDAwMDAxMDAgKi8KLSNkZWZpbmUgRFNJX0xDT0xDUl9MUEUgICAgICAgICAgICAgICAgRFNJX0xDT0xDUl9MUEVfTXNrICAgICAgICAgICAgICAgICAgICAgICAvKiE8IExvb3NseSBQYWNrZXQgRW5hYmxlICovCisjZGVmaW5lIERTSV9MQ09MQ1JfTFBFICAgICAgICAgICAgICAgIERTSV9MQ09MQ1JfTFBFX01zayAgICAgICAgICAgICAgICAgICAgICAgLyohPCBMb29zZWx5IFBhY2tldCBFbmFibGUgKi8KIAogLyoqKioqKioqKioqKioqKioqKiogIEJpdCBkZWZpbml0aW9uIGZvciBEU0lfTFBDUiByZWdpc3RlciAgKioqKioqKioqKioqKioqLwogI2RlZmluZSBEU0lfTFBDUl9ERVBfUG9zICAgICAgICAgICAgICAoMFUpCkBAIC0xMjI0MSw3ICsxMjI0OSw3IEBACiAvKioqKioqKioqKioqKioqKioqICBCaXQgZGVmaW5pdGlvbiBmb3IgRk1DX0JDUjEgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Qb3MgICAgICAgICgyMFUpCiAjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICgweDFVTCA8PCBGTUNfQkNSMV9DQ0xLRU5fUG9zKSAgICAgICAgICAgICAgLyohPCAweDAwMTAwMDAwICovCi0jZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbm91cyBjbG9jayBlbmFibGUgICAgICovCisjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbnVvdXMgY2xvY2sgZW5hYmxlICAgICAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Qb3MgICAgICAgICAoMjFVKQogI2RlZmluZSBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAoMHgxVUwgPDwgRk1DX0JDUjFfV0ZESVNfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDIwMDAwMCAqLwogI2RlZmluZSBGTUNfQkNSMV9XRkRJUyAgICAgICAgICAgICBGTUNfQkNSMV9XRkRJU19Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITxXcml0ZSBGSUZPIERpc2FibGUgICAgICAgICAqLwpAQCAtMTQxOTcsNyArMTQyMDUsNyBAQAogCiAjZGVmaW5lIExURENfQVdDUl9BQUhfUG9zICAgICAgICAgICAgKDBVKQogI2RlZmluZSBMVERDX0FXQ1JfQUFIX01zayAgICAgICAgICAgICgweDdGRlVMIDw8IExURENfQVdDUl9BQUhfUG9zKSAgICAgICAgICAgIC8qITwgMHgwMDAwMDdGRiAqLwotI2RlZmluZSBMVERDX0FXQ1JfQUFIICAgICAgICAgICAgICAgIExURENfQVdDUl9BQUhfTXNrICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgQWNjdW11bGF0ZWQgQWN0aXZlIGhlaWdoICovCisjZGVmaW5lIExURENfQVdDUl9BQUggICAgICAgICAgICAgICAgTFREQ19BV0NSX0FBSF9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBBY2N1bXVsYXRlZCBBY3RpdmUgSGVpZ2h0ICovCiAjZGVmaW5lIExURENfQVdDUl9BQVdfUG9zICAgICAgICAgICAgKDE2VSkKICNkZWZpbmUgTFREQ19BV0NSX0FBV19Nc2sgICAgICAgICAgICAoMHhGRkZVTCA8PCBMVERDX0FXQ1JfQUFXX1BvcykgICAgICAgICAgICAvKiE8IDB4MEZGRjAwMDAgKi8KICNkZWZpbmUgTFREQ19BV0NSX0FBVyAgICAgICAgICAgICAgICBMVERDX0FXQ1JfQUFXX01zayAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFjY3VtdWxhdGVkIEFjdGl2ZSBXaWR0aCAqLwpAQCAtMTQyMDYsNyArMTQyMTQsNyBAQAogCiAjZGVmaW5lIExURENfVFdDUl9UT1RBTEhfUG9zICAgICAgICAgKDBVKQogI2RlZmluZSBMVERDX1RXQ1JfVE9UQUxIX01zayAgICAgICAgICgweDdGRlVMIDw8IExURENfVFdDUl9UT1RBTEhfUG9zKSAgICAgICAgIC8qITwgMHgwMDAwMDdGRiAqLwotI2RlZmluZSBMVERDX1RXQ1JfVE9UQUxIICAgICAgICAgICAgIExURENfVFdDUl9UT1RBTEhfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgVG90YWwgSGVpZ2ggKi8KKyNkZWZpbmUgTFREQ19UV0NSX1RPVEFMSCAgICAgICAgICAgICBMVERDX1RXQ1JfVE9UQUxIX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IFRvdGFsIEhlaWdodCAqLwogI2RlZmluZSBMVERDX1RXQ1JfVE9UQUxXX1BvcyAgICAgICAgICgxNlUpCiAjZGVmaW5lIExURENfVFdDUl9UT1RBTFdfTXNrICAgICAgICAgKDB4RkZGVUwgPDwgTFREQ19UV0NSX1RPVEFMV19Qb3MpICAgICAgICAgLyohPCAweDBGRkYwMDAwICovCiAjZGVmaW5lIExURENfVFdDUl9UT1RBTFcgICAgICAgICAgICAgTFREQ19UV0NSX1RPVEFMV19Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBUb3RhbCBXaWR0aCAqLwpAQCAtMjQwOTksNCArMjQxMDcsMyBAQAogICAqIEB9CiAgICovCiAKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0bTMybDR4eC5oIGIvSW5jbHVkZS9zdG0zMmw0eHguaAppbmRleCBmNGFlNGY3Li5kMWU2M2MyIDEwMDY0NAotLS0gYS9JbmNsdWRlL3N0bTMybDR4eC5oCisrKyBiL0luY2x1ZGUvc3RtMzJsNHh4LmgKQEAgLTgsMjEgKzgsMjAgQEAKICAgKiAgICAgICAgICBpcyB1c2luZyBpbiB0aGUgQyBzb3VyY2UgY29kZSwgdXN1YWxseSBpbiBtYWluLmMuIFRoaXMgZmlsZSBjb250YWluczoKICAgKiAgICAgICAgICAgLSBDb25maWd1cmF0aW9uIHNlY3Rpb24gdGhhdCBhbGxvd3MgdG8gc2VsZWN0OgogICAqICAgICAgICAgICAgICAtIFRoZSBTVE0zMkw0eHggZGV2aWNlIHVzZWQgaW4gdGhlIHRhcmdldCBhcHBsaWNhdGlvbgotICAqICAgICAgICAgICAgICAtIFRvIHVzZSBvciBub3QgdGhlIHBlcmlwaGVyYWyScyBkcml2ZXJzIGluIGFwcGxpY2F0aW9uIGNvZGUoaS5lLgotICAqICAgICAgICAgICAgICAgIGNvZGUgd2lsbCBiZSBiYXNlZCBvbiBkaXJlY3QgYWNjZXNzIHRvIHBlcmlwaGVyYWyScyByZWdpc3RlcnMKKyAgKiAgICAgICAgICAgICAgLSBUbyB1c2Ugb3Igbm90IHRoZSBwZXJpcGhlcmFsJ3MgZHJpdmVycyBpbiBhcHBsaWNhdGlvbiBjb2RlKGkuZS4KKyAgKiAgICAgICAgICAgICAgICBjb2RlIHdpbGwgYmUgYmFzZWQgb24gZGlyZWN0IGFjY2VzcyB0byBwZXJpcGhlcmFsJ3MgcmVnaXN0ZXJzCiAgICogICAgICAgICAgICAgICAgcmF0aGVyIHRoYW4gZHJpdmVycyBBUEkpLCB0aGlzIG9wdGlvbiBpcyBjb250cm9sbGVkIGJ5CiAgICogICAgICAgICAgICAgICAgIiNkZWZpbmUgVVNFX0hBTF9EUklWRVIiCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTEwNyw3ICsxMDYsNyBAQAogICAqLwogI2RlZmluZSBfX1NUTTMyTDRfQ01TSVNfVkVSU0lPTl9NQUlOICAgKDB4MDEpIC8qITwgWzMxOjI0XSBtYWluIHZlcnNpb24gKi8KICNkZWZpbmUgX19TVE0zMkw0X0NNU0lTX1ZFUlNJT05fU1VCMSAgICgweDA3KSAvKiE8IFsyMzoxNl0gc3ViMSB2ZXJzaW9uICovCi0jZGVmaW5lIF9fU1RNMzJMNF9DTVNJU19WRVJTSU9OX1NVQjIgICAoMHgwMSkgLyohPCBbMTU6OF0gIHN1YjIgdmVyc2lvbiAqLworI2RlZmluZSBfX1NUTTMyTDRfQ01TSVNfVkVSU0lPTl9TVUIyICAgKDB4MDIpIC8qITwgWzE1OjhdICBzdWIyIHZlcnNpb24gKi8KICNkZWZpbmUgX19TVE0zMkw0X0NNU0lTX1ZFUlNJT05fUkMgICAgICgweDAwKSAvKiE8IFs3OjBdICByZWxlYXNlIGNhbmRpZGF0ZSAqLwogI2RlZmluZSBfX1NUTTMyTDRfQ01TSVNfVkVSU0lPTiAgICAgICAgKChfX1NUTTMyTDRfQ01TSVNfVkVSU0lPTl9NQUlOIDw8IDI0KVwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwoX19TVE0zMkw0X0NNU0lTX1ZFUlNJT05fU1VCMSA8PCAxNilcCkBAIC0yMjQsOCArMjIzLDYyIEBACiAKICNkZWZpbmUgTU9ESUZZX1JFRyhSRUcsIENMRUFSTUFTSywgU0VUTUFTSykgIFdSSVRFX1JFRygoUkVHKSwgKCgoUkVBRF9SRUcoUkVHKSkgJiAofihDTEVBUk1BU0spKSkgfCAoU0VUTUFTSykpKQogCi0jZGVmaW5lIFBPU0lUSU9OX1ZBTChWQUwpICAgICAoX19DTFooX19SQklUKFZBTCkpKQorLyogVXNlIG9mIENNU0lTIGNvbXBpbGVyIGludHJpbnNpY3MgZm9yIHJlZ2lzdGVyIGV4Y2x1c2l2ZSBhY2Nlc3MgKi8KKy8qIEF0b21pYyAzMi1iaXQgcmVnaXN0ZXIgYWNjZXNzIG1hY3JvIHRvIHNldCBvbmUgb3Igc2V2ZXJhbCBiaXRzICovCisjZGVmaW5lIEFUT01JQ19TRVRfQklUKFJFRywgQklUKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB1aW50MzJfdCB2YWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgdmFsID0gX19MRFJFWFcoKF9fSU8gdWludDMyX3QgKikmKFJFRykpIHwgKEJJVCk7ICAgICAgIFwKKyAgICB9IHdoaWxlICgoX19TVFJFWFcodmFsLChfX0lPIHVpbnQzMl90ICopJihSRUcpKSkgIT0gMFUpOyBcCisgIH0gd2hpbGUoMCkKIAorLyogQXRvbWljIDMyLWJpdCByZWdpc3RlciBhY2Nlc3MgbWFjcm8gdG8gY2xlYXIgb25lIG9yIHNldmVyYWwgYml0cyAqLworI2RlZmluZSBBVE9NSUNfQ0xFQVJfQklUKFJFRywgQklUKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdWludDMyX3QgdmFsOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHZhbCA9IF9fTERSRVhXKChfX0lPIHVpbnQzMl90ICopJihSRUcpKSAmIH4oQklUKTsgICAgICBcCisgICAgfSB3aGlsZSAoKF9fU1RSRVhXKHZhbCwoX19JTyB1aW50MzJfdCAqKSYoUkVHKSkpICE9IDBVKTsgXAorICB9IHdoaWxlKDApCisKKy8qIEF0b21pYyAzMi1iaXQgcmVnaXN0ZXIgYWNjZXNzIG1hY3JvIHRvIGNsZWFyIGFuZCBzZXQgb25lIG9yIHNldmVyYWwgYml0cyAqLworI2RlZmluZSBBVE9NSUNfTU9ESUZZX1JFRyhSRUcsIENMRUFSTVNLLCBTRVRNQVNLKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHVpbnQzMl90IHZhbDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgdmFsID0gKF9fTERSRVhXKChfX0lPIHVpbnQzMl90ICopJihSRUcpKSAmIH4oQ0xFQVJNU0spKSB8IChTRVRNQVNLKTsgXAorICAgIH0gd2hpbGUgKChfX1NUUkVYVyh2YWwsKF9fSU8gdWludDMyX3QgKikmKFJFRykpKSAhPSAwVSk7ICAgICAgICAgICAgICAgXAorICB9IHdoaWxlKDApCisKKy8qIEF0b21pYyAxNi1iaXQgcmVnaXN0ZXIgYWNjZXNzIG1hY3JvIHRvIHNldCBvbmUgb3Igc2V2ZXJhbCBiaXRzICovCisjZGVmaW5lIEFUT01JQ19TRVRIX0JJVChSRUcsIEJJVCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB1aW50MTZfdCB2YWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgdmFsID0gX19MRFJFWEgoKF9fSU8gdWludDE2X3QgKikmKFJFRykpIHwgKEJJVCk7ICAgICAgIFwKKyAgICB9IHdoaWxlICgoX19TVFJFWEgodmFsLChfX0lPIHVpbnQxNl90ICopJihSRUcpKSkgIT0gMFUpOyBcCisgIH0gd2hpbGUoMCkKKworLyogQXRvbWljIDE2LWJpdCByZWdpc3RlciBhY2Nlc3MgbWFjcm8gdG8gY2xlYXIgb25lIG9yIHNldmVyYWwgYml0cyAqLworI2RlZmluZSBBVE9NSUNfQ0xFQVJIX0JJVChSRUcsIEJJVCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdWludDE2X3QgdmFsOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHZhbCA9IF9fTERSRVhIKChfX0lPIHVpbnQxNl90ICopJihSRUcpKSAmIH4oQklUKTsgICAgICBcCisgICAgfSB3aGlsZSAoKF9fU1RSRVhIKHZhbCwoX19JTyB1aW50MTZfdCAqKSYoUkVHKSkpICE9IDBVKTsgXAorICB9IHdoaWxlKDApCisKKy8qIEF0b21pYyAxNi1iaXQgcmVnaXN0ZXIgYWNjZXNzIG1hY3JvIHRvIGNsZWFyIGFuZCBzZXQgb25lIG9yIHNldmVyYWwgYml0cyAqLworI2RlZmluZSBBVE9NSUNfTU9ESUZZSF9SRUcoUkVHLCBDTEVBUk1TSywgU0VUTUFTSykgICAgICAgICAgICAgICAgICAgICAgICAgXAorICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHVpbnQxNl90IHZhbDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgdmFsID0gKF9fTERSRVhIKChfX0lPIHVpbnQxNl90ICopJihSRUcpKSAmIH4oQ0xFQVJNU0spKSB8IChTRVRNQVNLKTsgXAorICAgIH0gd2hpbGUgKChfX1NUUkVYSCh2YWwsKF9fSU8gdWludDE2X3QgKikmKFJFRykpKSAhPSAwVSk7ICAgICAgICAgICAgICAgXAorICB9IHdoaWxlKDApCisKKyNkZWZpbmUgUE9TSVRJT05fVkFMKFZBTCkgICAgIChfX0NMWihfX1JCSVQoVkFMKSkpCiAKIC8qKgogICAqIEB9CkBAIC0yNDgsNyArMzAxLDMgQEAKICAgKiBAfQogICAqLwogCi0KLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9zeXN0ZW1fc3RtMzJsNHh4LmggYi9JbmNsdWRlL3N5c3RlbV9zdG0zMmw0eHguaAppbmRleCAwMDE2NmE1Li45NTdhMzY0IDEwMDY0NAotLS0gYS9JbmNsdWRlL3N5c3RlbV9zdG0zMmw0eHguaAorKysgYi9JbmNsdWRlL3N5c3RlbV9zdG0zMmw0eHguaApAQCAtNiwxMyArNiwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtMTA0LDQgKzEwMyw0IEBACiAvKioKICAgKiBAfQogICAqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvTGljZW5zZS5tZCBiL0xpY2Vuc2UubWQKaW5kZXggZTBkODI5Yi4uNDc5YzRmNiAxMDA2NDQKLS0tIGEvTGljZW5zZS5tZAorKysgYi9MaWNlbnNlLm1kCkBAIC0xLDgzICsxLDI3IEBACi1BcGFjaGUgTGljZW5zZQotIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKLSBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCitDb3B5cmlnaHQgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCitBbGwgcmlnaHRzIHJlc2VydmVkLgogCi1URVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCithcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CiAKLTEuIERlZmluaXRpb25zLgorMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCitsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KIAotIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCisyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCit0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KIAotIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5nIHRoZSBMaWNlbnNlLgorMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKK21heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CitzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAKLSJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbiBjb250cm9sIHdpdGggdGhhdCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVzZSB0aGUgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3Igb3RoZXJ3aXNlLCBvciAoaWkpIG93bmVyc2hpcCBvZiBmaWZ0eSBwZXJjZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhlIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCi0KLSJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KLQotIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24gc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KLQotIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBjb21waWxlZCBvYmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24sIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KLQotIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYSBjb3B5cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQgdG8gdGhlIHdvcmsgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KLQotIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KLQotIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucyB0byB0aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCB0aGF0IGlzIGludGVudGlvbmFsbHkgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lciBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YgdGhlIGNvcHlyaWdodCBvd25lci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJzdWJtaXR0ZWQiIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gY29tbXVuaWNhdGlvbiBvbiBlbGVjdHJvbmljIG1haWxpbmcgbGlzdHMsIHNvdXJjZSBjb2RlIGNvbnRyb2wgc3lzdGVtcywgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0IGV4Y2x1ZGluZyBjb21tdW5pY2F0aW9uIHRoYXQgaXMgY29uc3BpY3VvdXNseSBtYXJrZWQgb3Igb3RoZXJ3aXNlIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgotCi0iQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsuCi0KLTIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLgotCi1TdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLCBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KLQotMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuCi0KLVN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsIHVzZSwgb2ZmZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0LCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBXb3JrLCB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpciBDb250cmlidXRpb24ocykgYWxvbmUgb3IgYnkgY29tYmluYXRpb24gb2YgdGhlaXIgQ29udHJpYnV0aW9uKHMpIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91IGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFdvcmsgb3IgYSBDb250cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3Qgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHRvIFlvdSB1bmRlciB0aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29yayBzaGFsbCB0ZXJtaW5hdGUgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgotCi00LiBSZWRpc3RyaWJ1dGlvbi4KLQotWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYW5kIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0xLllvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKLTIuWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAotMy5Zb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAotNC5JZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cyBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0IGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZCB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3IgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24gbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZCBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuCi0KLVlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZCBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsIHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhlcndpc2UgY29tcGxpZXMgd2l0aCB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgotCi01LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuCi0KLVVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4gTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeSB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZCB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCi0KLTYuIFRyYWRlbWFya3MuCi0KLVRoaXMgTGljZW5zZSBkb2VzIG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLCBleGNlcHQgYXMgcmVxdWlyZWQgZm9yIHJlYXNvbmFibGUgYW5kIGN1c3RvbWFyeSB1c2UgaW4gZGVzY3JpYmluZyB0aGUgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCi0KLTcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuCi0KLVVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoIENvbnRyaWJ1dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55IHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJjaXNlIG9mIHBlcm1pc3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KLQotOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCi0KLUluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLCB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseSBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZSBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYSByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvciBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCi0KLTkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4KLQotV2hpbGUgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwgYW5kIGNoYXJnZSBhIGZlZSBmb3IsIGFjY2VwdGFuY2Ugb2Ygc3VwcG9ydCwgd2FycmFudHksIGluZGVtbml0eSwgb3Igb3RoZXIgbGlhYmlsaXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkgb24gWW91ciBvd24gYmVoYWxmIGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9uc2liaWxpdHksIG5vdCBvbiBiZWhhbGYgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQgb25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LCBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkgaW5jdXJyZWQgYnksIG9yIGNsYWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNvbiBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxpYWJpbGl0eS4KLQotRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCi0KLUFQUEVORElYOgotCi0gICBDb3B5cmlnaHQgWzIwMTldIFtTVE1pY3JvZWxlY3Ryb25pY3NdCi0KLSAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0KLSAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0KLSAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLSAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0gICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLSAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLSAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAorQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKK1dBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKK0RJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCitBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyhJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKK0xPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyhJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCitTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KZGlmZiAtLWdpdCBhL1JFQURNRS5tZCBiL1JFQURNRS5tZAppbmRleCBjYWRmNmI4Li5jNTgzZGM1IDEwMDY0NAotLS0gYS9SRUFETUUubWQKKysrIGIvUkVBRE1FLm1kCkBAIC0xLDE0ICsxLDE2IEBACiAjIFNUTTMyQ3ViZUw0IENNU0lTIERldmljZSBNQ1UgQ29tcG9uZW50CiAKKyFbbGF0ZXN0IHRhZ10oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvdi90YWcvU1RNaWNyb2VsZWN0cm9uaWNzL2Ntc2lzX2RldmljZV9sNC5zdmc/Y29sb3I9YnJpZ2h0Z3JlZW4pCisKICMjIE92ZXJ2aWV3CiAKLSoqU1RNMzJDdWJlKiogaXMgYW4gU1RNaWNyb2VsZWN0cm9uaWNzIG9yaWdpbmFsIGluaXRpYXRpdmUgdG8gZWFzZSB0aGUgZGV2ZWxvcGVycycgbGlmZSBieSByZWR1Y2luZyBlZmZvcnRzLCB0aW1lIGFuZCBjb3N0LgorKipTVE0zMkN1YmUqKiBpcyBhbiBTVE1pY3JvZWxlY3Ryb25pY3Mgb3JpZ2luYWwgaW5pdGlhdGl2ZSB0byBlYXNlIGRldmVsb3BlcnMnIGxpZmUgYnkgcmVkdWNpbmcgZWZmb3J0cywgdGltZSBhbmQgY29zdC4KIAogKipTVE0zMkN1YmUqKiBjb3ZlcnMgdGhlIG92ZXJhbGwgU1RNMzIgcHJvZHVjdHMgcG9ydGZvbGlvLiBJdCBpbmNsdWRlcyBhIGNvbXByZWhlbnNpdmUgZW1iZWRkZWQgc29mdHdhcmUgcGxhdGZvcm0gZGVsaXZlcmVkIGZvciBlYWNoIFNUTTMyIHNlcmllcy4KICAgICogVGhlIENNU0lTIG1vZHVsZXMgKGNvcmUgYW5kIGRldmljZSkgY29ycmVzcG9uZGluZyB0byB0aGUgQVJNKHRtKSBjb3JlIGltcGxlbWVudGVkIGluIHRoaXMgU1RNMzIgcHJvZHVjdC4KICAgICogVGhlIFNUTTMyIEhBTC1MTCBkcml2ZXJzLCBhbiBhYnN0cmFjdGlvbiBsYXllciBvZmZlcmluZyBhIHNldCBvZiBBUElzIGVuc3VyaW5nIG1heGltaXplZCBwb3J0YWJpbGl0eSBhY3Jvc3MgdGhlIFNUTTMyIHBvcnRmb2xpby4KICAgICogVGhlIEJTUCBkcml2ZXJzIG9mIGVhY2ggZXZhbHVhdGlvbiwgZGVtb25zdHJhdGlvbiBvciBudWNsZW8gYm9hcmQgcHJvdmlkZWQgZm9yIHRoaXMgU1RNMzIgc2VyaWVzLgotICAgKiBBIGNvbnNpc3RlbnQgc2V0IG9mIG1pZGRsZXdhcmUgY29tcG9uZW50cyBzdWNoIGFzIFJUT1MsIFVTQiwgRmF0RlMsIGdyYXBoaWNzLCB0b3VjaCBzZW5zaW5nIGxpYnJhcnkuLi4KKyAgICogQSBjb25zaXN0ZW50IHNldCBvZiBtaWRkbGV3YXJlIGxpYnJhcmllcyBzdWNoIGFzIFJUT1MsIFVTQiwgRmF0RlMsIGdyYXBoaWNzLCB0b3VjaCBzZW5zaW5nIGxpYnJhcnkuLi4KICAgICogQSBmdWxsIHNldCBvZiBzb2Z0d2FyZSBwcm9qZWN0cyAoYmFzaWMgZXhhbXBsZXMsIGFwcGxpY2F0aW9ucywgYW5kIGRlbW9uc3RyYXRpb25zKSBmb3IgZWFjaCBib2FyZCBwcm92aWRlZCBmb3IgdGhpcyBTVE0zMiBzZXJpZXMuCiAKIFR3byBtb2RlbHMgb2YgcHVibGljYXRpb24gYXJlIHByb3Bvc2VkIGZvciB0aGUgU1RNMzJDdWJlIGVtYmVkZGVkIHNvZnR3YXJlOgpAQCAtMzQsMTAgKzM2LDEyIEBACiBUYWcgdjEuNi4xIHwgVGFnIHY1LjQuMF9jbTQgfCBUYWcgdjEuMTUuMSAoYW5kIGZvbGxvd2luZywgaWYgYW55LCB0aWxsIG5leHQgQ01TSVMgdGFnKQogVGFnIHYxLjcuMCB8IFRhZyB2NS42LjBfY200IHwgVGFnIHYxLjE2LjAgKGFuZCBmb2xsb3dpbmcsIGlmIGFueSwgdGlsbCBuZXh0IENNU0lTIHRhZykKIFRhZyB2MS43LjEgfCBUYWcgdjUuNi4wX2NtNCB8IFRhZyB2MS4xNy4wIChhbmQgZm9sbG93aW5nLCBpZiBhbnksIHRpbGwgbmV4dCBDTVNJUyB0YWcpCitUYWcgdjEuNy4yIHwgVGFnIHY1LjYuMF9jbTQgfCBUYWcgdjEuMTcuMSAoYW5kIGZvbGxvd2luZywgaWYgYW55LCB0aWxsIG5leHQgQ01TSVMgdGFnKQogCiBUaGUgZnVsbCAqKlNUTTMyQ3ViZUw0KiogTUNVIHBhY2thZ2UgaXMgYXZhaWxhYmxlIFtoZXJlXShodHRwczovL2dpdGh1Yi5jb20vU1RNaWNyb2VsZWN0cm9uaWNzL1NUTTMyQ3ViZUw0KS4KIAogIyMgVHJvdWJsZXNob290aW5nCi1JZiB5b3UgaGF2ZSBhbnkgaXNzdWUgd2l0aCB0aGUgKipTb2Z0d2FyZSBjb250ZW50Kiogb2YgdGhpcyByZXBvLCB5b3UgY2FuIFtmaWxlIGFuIGlzc3VlIG9uIEdpdGh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL1NUTWljcm9lbGVjdHJvbmljcy9jbXNpc19kZXZpY2VfbDQvaXNzdWVzL25ldykuCiAKLUZvciBhbnkgb3RoZXIgcXVlc3Rpb24gcmVsYXRlZCB0byB0aGUgcHJvZHVjdCwgdGhlIHRvb2xzLCB0aGUgZW52aXJvbm1lbnQsIHlvdSBjYW4gc3VibWl0IGEgdG9waWMgb24gdGhlIFtTVCBDb21tdW5pdHkvU1RNMzIgTUNVcyBmb3J1bV0oaHR0cHM6Ly9jb21tdW5pdHkuc3QuY29tL3MvZ3JvdXAvMEY5MFgwMDAwMDBBWHNBU0FXL3N0bTMyLW1jdXMpLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK0lmIHlvdSBoYXZlIGFueSBpc3N1ZSB3aXRoIHRoZSAqKnNvZnR3YXJlIGNvbnRlbnQqKiBvZiB0aGlzIHJlcG9zaXRvcnksIHlvdSBjYW4gZmlsZSBhbiBpc3N1ZSBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL1NUTWljcm9lbGVjdHJvbmljcy9jbXNpc19kZXZpY2VfbDQvaXNzdWVzL25ldy9jaG9vc2UpLgorCitGb3IgYW55IG90aGVyIHF1ZXN0aW9uIHJlbGF0ZWQgdG8gdGhlIHByb2R1Y3QsIHRoZSB0b29scywgdGhlIGVudmlyb25tZW50LCB5b3UgY2FuIHN1Ym1pdCBhIHRvcGljIG9uIHRoZSBbU1QgQ29tbXVuaXR5L1NUTTMyIE1DVXMgZm9ydW1dKGh0dHBzOi8vY29tbXVuaXR5LnN0LmNvbS9zL2dyb3VwLzBGOTBYMDAwMDAwQVhzQVNBVy9zdG0zMi1tY3VzKS4KZGlmZiAtLWdpdCBhL1JlbGVhc2VfTm90ZXMuaHRtbCBiL1JlbGVhc2VfTm90ZXMuaHRtbAppbmRleCBkMjdiZWY0Li45NDUyYzIzIDEwMDY0NAotLS0gYS9SZWxlYXNlX05vdGVzLmh0bWwKKysrIGIvUmVsZWFzZV9Ob3Rlcy5odG1sCkBAIC0yNSwxMSArMjUsOCBAQAogPGgxIGlkPSJzdG0zMmw0eHgtY21zaXMiPjxtYXJrPlNUTTMyTDR4eCBDTVNJUzwvbWFyaz48L2gxPgogPHA+Q29weXJpZ2h0IMKpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzPGJyIC8+CiA8L3A+Ci08YSBocmVmPSJodHRwczovL3d3dy5zdC5jb20iIGNsYXNzPSJsb2dvIj48aW1nIHNyYz0iLi9faHRtcmVzYy9zdF9sb2dvXzIwMjAucG5nIiBhbHQ9IlNUIGxvZ28iIC8+PC9hPgorPGEgaHJlZj0iaHR0cHM6Ly93d3cuc3QuY29tIiBjbGFzcz0ibG9nbyI+PGltZyBzcmM9Il9odG1yZXNjL3N0X2xvZ29fMjAyMC5wbmciIGFsdD0iU1QgbG9nbyIgLz48L2E+CiA8L2NlbnRlcj4KLTxoMSBpZD0ibGljZW5zZSI+TGljZW5zZTwvaDE+Ci08cD5UaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUtMi4wIGxpY2Vuc2UsIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGNvbXBvbmVudCBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6PC9wPgotPHA+PGEgaHJlZj0iaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wIj5BcGFjaGUgTGljZW5zZSB2Mi4wPC9hPjwvcD4KIDxoMSBpZD0icHVycG9zZSI+UHVycG9zZTwvaDE+CiA8cD5UaGlzIGRyaXZlciBwcm92aWRlcyB0aGUgQ01TSVMgZGV2aWNlIGZvciB0aGUgc3RtMzJsNHh4IHByb2R1Y3RzLiBUaGlzIGNvdmVyczwvcD4KIDx1bD4KQEAgLTUyLDEwICs0OSwzNSBAQAogPGRpdiBjbGFzcz0iY29sLXNtLTEyIGNvbC1sZy04Ij4KIDxoMSBpZD0idXBkYXRlLWhpc3RvcnkiPlVwZGF0ZSBIaXN0b3J5PC9oMT4KIDxkaXYgY2xhc3M9ImNvbGxhcHNlIj4KLTxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNvbGxhcHNlLXNlY3Rpb24yNCIgY2hlY2tlZCBhcmlhLWhpZGRlbj0idHJ1ZSI+IDxsYWJlbCBmb3I9ImNvbGxhcHNlLXNlY3Rpb24yNCIgYXJpYS1oaWRkZW49InRydWUiPlYxLjcuMSAvIDExLUZlYnJ1YXJ5LTIwMjE8L2xhYmVsPgorPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY29sbGFwc2Utc2VjdGlvbjI1IiBjaGVja2VkIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjI1IiBhcmlhLWhpZGRlbj0idHJ1ZSI+VjEuNy4yIC8gMjYtTm92ZW1iZXItMjAyMTwvbGFiZWw+CiA8ZGl2PgogPGgyIGlkPSJtYWluLWNoYW5nZXMiPk1haW4gQ2hhbmdlczwvaDI+CiA8dWw+Cis8bGk+R2VuZXJhbCB1cGRhdGVzIHRvIGZpeCBrbm93biBkZWZlY3RzIGFuZCBlbmhhbmNlbWVudHMgaW1wbGVtZW50YXRpb24uPC9saT4KKzxsaT48cD5BbGwgc291cmNlIGZpbGVzOiB1cGRhdGUgZGlzY2xhaW1lciB0byBhZGQgcmVmZXJlbmNlIHRvIHRoZSBuZXcgbGljZW5zZSBhZ3JlZW1lbnQuPC9wPjwvbGk+Cis8bGk+PHN0cm9uZz5IZWFkbGluZTwvc3Ryb25nPgorPHVsPgorPGxpPkFkZCBMU0kgbWF4aW11bSBzdGFydHVwIHRpbWUgZGF0YXNoZWV0IHZhbHVlOiBMU0lfU1RBUlRVUF9USU1FLjwvbGk+Cis8bGk+X19GUFVfUFJFU0VOVCBkZWZpbmVkIHdpdGggMVUgaW5zdGVhZCBvZiAxIHRvIGF2b2lkIGNvbXBpbGF0aW9uIHdhcm5pbmc8L2xpPgorPGxpPkltcHJvdmUgR0NDIHN0YXJ0dXAgZmlsZXMgcm9idXN0bmVzcy48L2xpPgorPGxpPjxzdHJvbmc+U1RNMzJMNDc2eHguaDwvc3Ryb25nPiBoZWFkZXIgZmlsZTogQWRkIFBXUiBTUjEgRVhUX1NNUFNfUkRZIGJpdCBkZWZpbml0aW9uIGZvciBXTENTUDgyIHBhY2thZ2Ugd2l0aCBFeHQgU01QUzwvbGk+Cis8L3VsPjwvbGk+Cis8bGk+c3RtMzJsNHh4LmgKKzx1bD4KKzxsaT5BZGQgbmV3IGF0b21pYyByZWdpc3RlciBhY2Nlc3MgbWFjcm9zLjwvbGk+Cis8L3VsPjwvbGk+Cis8bGk+c3lzdGVtX3N0bTMybDR4eC5jCis8dWw+Cis8bGk+VXBkYXRlIFN5c3RlbUluaXQoKSBBUEkgdG8gZG9u4oCZdCByZXNldCBSQ0MgcmVnaXN0ZXJzIHRvIGl0cyByZXNldCB2YWx1ZXM8L2xpPgorPC91bD48L2xpPgorPC91bD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+Cis8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMjQiIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjI0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+VjEuNy4xIC8gMTEtRmVicnVhcnktMjAyMTwvbGFiZWw+Cis8ZGl2PgorPGgyIGlkPSJtYWluLWNoYW5nZXMtMSI+TWFpbiBDaGFuZ2VzPC9oMj4KKzx1bD4KIDxsaT5zdG0zMmw0MzF4eC5oLCBzdG0zMmw0MzJ4eC5oLCBzdG0zMmw0MzN4eC5oLCBzdG0zMmw0NDJ4eC5oLCBzdG0zMmw0NDN4eC5oIGFuZCBzdG0zMmw0eHh4eHguaAogPHVsPgogPGxpPlJldmVydCBjb3JyZWN0aW9uIGRvbmUgb24gSFNJVFJJTSBmaWVsZCBmb3IgU1RNMzJMNDN4L1NUTTMyTDQ0eCBkZXZpY2VzIGFmdGVyIHVwZGF0ZSBvZiByZWZlcmVuY2UgbWFudWFsPC9saT4KQEAgLTc5LDcgKzEwMSw3IEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMjMiIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjIzIiBhcmlhLWhpZGRlbj0idHJ1ZSI+VjEuNy4wIC8gMjYtSnVuZS0yMDIwPC9sYWJlbD4KIDxkaXY+Ci08aDIgaWQ9Im1haW4tY2hhbmdlcy0xIj5NYWluIENoYW5nZXM8L2gyPgorPGgyIGlkPSJtYWluLWNoYW5nZXMtMiI+TWFpbiBDaGFuZ2VzPC9oMj4KIDx1bD4KIDxsaT5zdG0zMmw0cDV4eC5oLCBzdG0zMmw0cTV4eC5oLCBzdG0zMmw0cjV4eC5oLCBzdG0zMmw0cjd4eC5oLCBzdG0zMmw0cjl4eC5oLCBzdG0zMmw0czV4eC5oLCBzdG0zMmw0czd4eC5oLCBzdG0zMmw0czl4eC5oIGFuZCBzdG0zMmw0eHh4eHguaAogPHVsPgpAQCAtMTA3LDcgKzEyOSw3IEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMjIiIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjIyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+VjEuNi4xIC8gMDctRmVicnVhcnktMjAyMDwvbGFiZWw+CiA8ZGl2PgotPGgyIGlkPSJtYWluLWNoYW5nZXMtMiI+TWFpbiBDaGFuZ2VzPC9oMj4KKzxoMiBpZD0ibWFpbi1jaGFuZ2VzLTMiPk1haW4gQ2hhbmdlczwvaDI+CiA8dWw+CiA8bGk+QWRkIGJpdCBkZWZpbml0aW9ucyBpbiBPQ1RPU1BJIHJlZ2lzdGVycwogPHVsPgpAQCAtMTI2LDcgKzE0OCw3IEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMjEiIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjIxIiBhcmlhLWhpZGRlbj0idHJ1ZSI+VjEuNi4wIC8gMjItTm92ZW1iZXItMjAxOTwvbGFiZWw+CiA8ZGl2PgotPGgyIGlkPSJtYWluLWNoYW5nZXMtMyI+TWFpbiBDaGFuZ2VzPC9oMj4KKzxoMiBpZD0ibWFpbi1jaGFuZ2VzLTQiPk1haW4gQ2hhbmdlczwvaDI+CiA8dWw+CiA8bGk+QWRkIHRoZSBzdXBwb3J0IG9mIDxzdHJvbmc+U1RNMzJMNFA1eHgvU1RNMzJMNFE1eHg8L3N0cm9uZz4gZGV2aWNlcwogPHVsPgpAQCAtMTgwLDcgKzIwMiw3IEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMjAiIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjIwIiBhcmlhLWhpZGRlbj0idHJ1ZSI+VjEuNS4xIC8gMDMtQXByaWwtMjAxOTwvbGFiZWw+CiA8ZGl2PgotPGgyIGlkPSJtYWluLWNoYW5nZXMtNCI+TWFpbiBDaGFuZ2VzPC9oMj4KKzxoMiBpZD0ibWFpbi1jaGFuZ2VzLTUiPk1haW4gQ2hhbmdlczwvaDI+CiA8dWw+CiA8bGk+c3RtMzJsNDEyeHguaCwgc3RtMzJsNDIyeHguaCwgc3RtMzJsNDMxeHguaCwgc3RtMzJsNDMyeHguaCwgc3RtMzJsNDMzeHguaCwgc3RtMzJsNDQyeHguaCwgc3RtMzJsNDQzeHguaCwgc3RtMzJsNDUxeHguaCwgc3RtMzJsNDUyeHguaCwgc3RtMzJsNDYyeHguaCBhbmQgc3RtMzJsNDcxeHguaAogPHVsPgpAQCAtMjIxLDcgKzI0Myw3IEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMTkiIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjE5IiBhcmlhLWhpZGRlbj0idHJ1ZSI+VjEuNS4wIC8gMjctSnVseS0yMDE4PC9sYWJlbD4KIDxkaXY+Ci08aDIgaWQ9Im1haW4tY2hhbmdlcy01Ij5NYWluIENoYW5nZXM8L2gyPgorPGgyIGlkPSJtYWluLWNoYW5nZXMtNiI+TWFpbiBDaGFuZ2VzPC9oMj4KIDx1bD4KIDxsaT48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPkFkZMKgPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+c3RtMzJsNDEyeHguaCBhbmQgPHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPnN0bTMybDQyMnh4Lmg8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij5kZXZpY2UgZGVzY3JpcHRpb24gZmlsZXM8L3NwYW4+PC9saT4KIDxsaT48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPkFkZCBzdGFydHVwIGZpbGVzPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+c3RhcnR1cF88L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij5zdG0zMmw0MTJ4eC5zPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+PHNwYW4gY2xhc3M9IkFwcGxlLWNvbnZlcnRlZC1zcGFjZSI+PC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPmFuZDxzcGFuIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPsKgPC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPnN0YXJ0dXBfPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+c3RtMzJsNDIyeHguczwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPmZvciBFV0FSTSwgTURLLUFSTSBhbmQgU1c0U1RNMzIgdG9vbGNoYWluczwvc3Bhbj48L2xpPgpAQCAtMjU0LDcgKzI3Niw3IEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMSIgYXJpYS1oaWRkZW49InRydWUiPiA8bGFiZWwgZm9yPSJjb2xsYXBzZS1zZWN0aW9uMSIgYXJpYS1oaWRkZW49InRydWUiPlYxLjQuMyAvIDMwLUFwcmlsLTIwMTg8L2xhYmVsPgogPGRpdj4KLTxoMiBpZD0ibWFpbi1jaGFuZ2VzLTYiPk1haW4gQ2hhbmdlczwvaDI+Cis8aDIgaWQ9Im1haW4tY2hhbmdlcy03Ij5NYWluIENoYW5nZXM8L2gyPgogPHVsPgogPGxpPjxwPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+QWxswqA8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij5zdG0zMmw0WFh4eC5oIGRldmljZcKgZGVzY3JpcHRpb24gZmlsZXM8L3NwYW4+PC9wPgogPHVsPgpAQCAtMjc3LDcgKzI5OSw3IEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uNSIgYXJpYS1oaWRkZW49InRydWUiPiA8bGFiZWwgZm9yPSJjb2xsYXBzZS1zZWN0aW9uNSIgYXJpYS1oaWRkZW49InRydWUiPlYxLjQuMiAvIDIyLURlY2VtYmVyLTIwMTc8L2xhYmVsPgogPGRpdj4KLTxoMiBpZD0ibWFpbi1jaGFuZ2VzLTciPk1haW4gQ2hhbmdlczwvaDI+Cis8aDIgaWQ9Im1haW4tY2hhbmdlcy04Ij5NYWluIENoYW5nZXM8L2gyPgogPHVsPgogPGxpPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+U1BJX1R5cGVEZWYgY2xlYW51cCBvZiBSZXNlcnZlZCBmaWVsZHMuPC9zcGFuPjwvbGk+CiA8L3VsPgpAQCAtMjg2LDcgKzMwOCw3IEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uNiIgYXJpYS1oaWRkZW49InRydWUiPiA8bGFiZWwgZm9yPSJjb2xsYXBzZS1zZWN0aW9uNiIgYXJpYS1oaWRkZW49InRydWUiPlYxLjQuMSAvIDYtT2N0b2Jlci0yMDE3PC9sYWJlbD4KIDxkaXY+Ci08aDIgaWQ9Im1haW4tY2hhbmdlcy04Ij5NYWluIENoYW5nZXM8L2gyPgorPGgyIGlkPSJtYWluLWNoYW5nZXMtOSI+TWFpbiBDaGFuZ2VzPC9oMj4KIDxwPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+c3RtMzJsNHI1eHguaCBhbmQgc3RtMzJsNHM1eHguaCBkZXNjcmlwdGlvbiBmaWxlczwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPjwvc3Bhbj48L3A+CiA8dWw+CiA8bGk+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij5SZW1vdmUgTFREQyBwZXJpcGhlcmFsIGRlZmluaXRpb25zIGFzIExUREMgbm90IGF2YWlsYWJsZSBvbiBTVE0zMkw0UjV4eC9TVE0zMkw0UzV4eCBkZXZpY2VzPC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyI+PC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsiPjwvc3Bhbj48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7Ij48L3NwYW4+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyI+PC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsiPjwvc3Bhbj48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7Ij48L3NwYW4+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyI+PC9zcGFuPjwvc3Bhbj48L2xpPgpAQCAtMjk2LDcgKzMxOCw3IEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uNyIgYXJpYS1oaWRkZW49InRydWUiPiA8bGFiZWwgZm9yPSJjb2xsYXBzZS1zZWN0aW9uNyIgYXJpYS1oaWRkZW49InRydWUiPlYxLjQuMCAvIDI1LUF1Z3VzdC0yMDE3PC9sYWJlbD4KIDxkaXY+Ci08aDIgaWQ9Im1haW4tY2hhbmdlcy05Ij5NYWluIENoYW5nZXM8L2gyPgorPGgyIGlkPSJtYWluLWNoYW5nZXMtMTAiPk1haW4gQ2hhbmdlczwvaDI+CiA8dWw+CiA8bGk+PHA+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij5BZGQgdGhlIHN1cHBvcnQgb2bCoDwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsiPlNUTTMyTDRSNXh4Lzwvc3Bhbj48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7Ij5TVE0zMkw0Ujd4eC88L3NwYW4+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyI+U1RNMzJMNFI5eHgvPC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsiPlNUTTMyTDRTNXh4Lzwvc3Bhbj48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7Ij5TVE0zMkw0Uzd4eC9TVE0zMkw0Uzl4eDwvc3Bhbj48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7Ij48L3NwYW4+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyI+PC9zcGFuPiBkZXZpY2VzPC9zcGFuPjwvcD4KIDx1bD4KQEAgLTMzMyw3ICszNTUsNyBAQAogPGRpdiBjbGFzcz0iY29sbGFwc2UiPgogPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY29sbGFwc2Utc2VjdGlvbjgiIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjgiIGFyaWEtaGlkZGVuPSJ0cnVlIj5WMS4zLjIgLyAxNi1KdW5lLTIwMTc8L2xhYmVsPgogPGRpdj4KLTxoMiBpZD0ibWFpbi1jaGFuZ2VzLTEwIj5NYWluIENoYW5nZXM8L2gyPgorPGgyIGlkPSJtYWluLWNoYW5nZXMtMTEiPk1haW4gQ2hhbmdlczwvaDI+CiA8dWw+CiA8bGk+PHA+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij5zdG0zMmw0NTF4eC5oLCBzdG0zMmw0NTJ4eC5oLCBzdG0zMmw0NjJ4eC5oIGRlc2NyaXB0aW9uIGZpbGVzPC9zcGFuPjwvcD4KIDx1bD4KQEAgLTM2MCw3ICszODIsNyBAQAogPGRpdiBjbGFzcz0iY29sbGFwc2UiPgogPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY29sbGFwc2Utc2VjdGlvbjkiIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjkiIGFyaWEtaGlkZGVuPSJ0cnVlIj5WMS4zLjEgLyAyMS1BcHJpbC0yMDE3PC9sYWJlbD4KIDxkaXY+Ci08aDIgaWQ9Im1haW4tY2hhbmdlcy0xMSI+TWFpbiBDaGFuZ2VzPC9oMj4KKzxoMiBpZD0ibWFpbi1jaGFuZ2VzLTEyIj5NYWluIENoYW5nZXM8L2gyPgogPHVsPgogPGxpPjxwPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+c3RtMzJsNDk2eHguaCBhbmQgc3RtMzJsNGE2eHguaCBkZXZpY2UgZGVzY3JpcHRpb24gZmlsZXM8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48L3NwYW4+PC9wPgogPHVsPgpAQCAtMzc5LDcgKzQwMSw3IEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMTAiIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjEwIiBhcmlhLWhpZGRlbj0idHJ1ZSI+VjEuMy4wIC8gMTctRmVicnVhcnktMjAxNzwvbGFiZWw+CiA8ZGl2PgotPGgyIGlkPSJtYWluLWNoYW5nZXMtMTIiPk1haW4gQ2hhbmdlczwvaDI+Cis8aDIgaWQ9Im1haW4tY2hhbmdlcy0xMyI+TWFpbiBDaGFuZ2VzPC9oMj4KIDx1bD4KIDxsaT48cD48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPkFkZCB0aGUgc3VwcG9ydCBvZsKgPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyI+PC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsiPlNUTTMyTDQ5Nnh4L1NUTTMyTDRBNnh4PC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsiPjwvc3Bhbj4gZGV2aWNlczwvc3Bhbj48L3A+CiA8dWw+CkBAIC00MDYsNyArNDI4LDcgQEAKIDxkaXYgY2xhc3M9ImNvbGxhcHNlIj4KIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNvbGxhcHNlLXNlY3Rpb24xMSIgYXJpYS1oaWRkZW49InRydWUiPiA8bGFiZWwgZm9yPSJjb2xsYXBzZS1zZWN0aW9uMTEiIGFyaWEtaGlkZGVuPSJ0cnVlIj5WMS4yLjAgLyAyOC1PY3RvYmVyLTIwMTY8L2xhYmVsPgogPGRpdj4KLTxoMiBpZD0ibWFpbi1jaGFuZ2VzLTEzIj5NYWluIENoYW5nZXM8L2gyPgorPGgyIGlkPSJtYWluLWNoYW5nZXMtMTQiPk1haW4gQ2hhbmdlczwvaDI+CiA8dWw+CiA8bGk+PHA+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij5BZGQgdGhlIHN1cHBvcnQgb2bCoDxzcGFuIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsiPlNUTTMyTDQ1MXh4L1NUTTMyTDQ1Mnh4L1NUTTMyTDQ2Mnh4PC9zcGFuPiBkZXZpY2VzPC9zcGFuPjwvcD4KIDx1bD4KQEAgLTQ0MCw3ICs0NjIsNyBAQAogPGRpdiBjbGFzcz0iY29sbGFwc2UiPgogPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY29sbGFwc2Utc2VjdGlvbjEyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+IDxsYWJlbCBmb3I9ImNvbGxhcHNlLXNlY3Rpb24xMiIgYXJpYS1oaWRkZW49InRydWUiPlYxLjEuMiAvIDEyLVNlcHRlbWJlci0yMDE2PC9sYWJlbD4KIDxkaXY+Ci08aDIgaWQ9Im1haW4tY2hhbmdlcy0xNCI+TWFpbiBDaGFuZ2VzPC9oMj4KKzxoMiBpZD0ibWFpbi1jaGFuZ2VzLTE1Ij5NYWluIENoYW5nZXM8L2gyPgogPHVsPgogPGxpPjxwPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+Rml4IERBQ19TUl9CV1NUMSBiaXQgZGVmaW5pdGlvbjwvc3Bhbj48L3A+PC9saT4KIDxsaT48cD48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPkZpeCBTRE1NQ19EQ1RSTF9EQkxPQ0tTSVpFXzIgYW5kIFNETU1DX0RDVFJMX0RCTE9DS1NJWkVfMyBiaXRzIGRlZmluaXRpb248L3NwYW4+PC9wPjwvbGk+CkBAIC00NTYsNyArNDc4LDcgQEAKIDxkaXYgY2xhc3M9ImNvbGxhcHNlIj4KIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNvbGxhcHNlLXNlY3Rpb24xMyIgYXJpYS1oaWRkZW49InRydWUiPiA8bGFiZWwgZm9yPSJjb2xsYXBzZS1zZWN0aW9uMTMiIGFyaWEtaGlkZGVuPSJ0cnVlIj5WMS4xLjEgLyAyOS1BcHJpbC0yMDE2PC9sYWJlbD4KIDxkaXY+Ci08aDIgaWQ9Im1haW4tY2hhbmdlcy0xNSI+TWFpbiBDaGFuZ2VzPC9oMj4KKzxoMiBpZD0ibWFpbi1jaGFuZ2VzLTE2Ij5NYWluIENoYW5nZXM8L2gyPgogPHVsPgogPGxpPjxwPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+PC9zcGFuPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+QWxsIGRldmljZSByZWdpc3RlciBkZXNjcmlwdGlvbiBmaWxlcyBlbnJpY2hlZCB3aXRoIF9Qb3MgYW5kIF9Nc2sgZGVmaW5lcyB0byBiZSB1c2VkIHdpdGggX1ZBTDJGTEQoZmllbGQsIHZhbHVlKSBhbmQgX0ZMRDJWQUwoZmllbGQsIHZhbHVlKSBmcm9tIENNU0lTIENvcmUgKHByZXZpb3VzIGRlZmluZXMgYXJlIGtlcHQgZm9yIGNvbXBhdGliaWxpdHkpPC9zcGFuPjwvcD48L2xpPgogPGxpPjxwPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+c3RtMzJsNDcxeHguaCwgc3RtMzJsNDc1eHguaCwgc3RtMzJsNDc2eHguaCwgc3RtMzJsNDg1eHguaCBhbmQgc3RtMzJsNDg2eHguaCBkZXZpY2UgZGVzY3JpcHRpb24gZmlsZXM8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48L3NwYW4+PC9wPgpAQCAtNTEyLDcgKzUzNCw3IEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMTQiIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjE0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+VjEuMS4wIC8gMjYtRmVicnVhcnktMjAxNjwvbGFiZWw+CiA8ZGl2PgotPGgyIGlkPSJtYWluLWNoYW5nZXMtMTYiPk1haW4gQ2hhbmdlczwvaDI+Cis8aDIgaWQ9Im1haW4tY2hhbmdlcy0xNyI+TWFpbiBDaGFuZ2VzPC9oMj4KIDx1bD4KIDxsaT48cD48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPkFkZCB0aGUgc3VwcG9ydCBvZiA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7Ij5TVE0zMkw0MzF4eC9TVE0zMkw0MzJ4eC9TVE0zMkw0MzN4eC9TVE0zMkw0NDJ4eC9TVE0zMkw0NDN4eDwvc3Bhbj4gZGV2aWNlczwvc3Bhbj48L3A+CiA8dWw+CkBAIC01NDYsNyArNTY4LDcgQEAKIDxkaXYgY2xhc3M9ImNvbGxhcHNlIj4KIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNvbGxhcHNlLXNlY3Rpb24xNSIgYXJpYS1oaWRkZW49InRydWUiPiA8bGFiZWwgZm9yPSJjb2xsYXBzZS1zZWN0aW9uMTUiIGFyaWEtaGlkZGVuPSJ0cnVlIj5WMS4wLjMgLyAyOS1KYW51YXJ5LTIwMTY8L2xhYmVsPgogPGRpdj4KLTxoMiBpZD0ibWFpbi1jaGFuZ2VzLTE3Ij5NYWluIENoYW5nZXM8L2gyPgorPGgyIGlkPSJtYWluLWNoYW5nZXMtMTgiPk1haW4gQ2hhbmdlczwvaDI+CiA8dWw+CiA8bGk+PHA+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij5zdG0zMmw0NzF4eC5oLCBzdG0zMmw0NzV4eC5oLCBzdG0zMmw0NzZ4eC5oLCBzdG0zMmw0ODV4eC5oIGFuZCBzdG0zMmw0ODZ4eC5oIGRldmljZSBkZXNjcmlwdGlvbiBmaWxlczwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPjwvc3Bhbj48L3A+CiA8dWw+CkBAIC01NzAsNyArNTkyLDcgQEAKIDxkaXYgY2xhc3M9ImNvbGxhcHNlIj4KIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNvbGxhcHNlLXNlY3Rpb24xNiIgYXJpYS1oaWRkZW49InRydWUiPiA8bGFiZWwgZm9yPSJjb2xsYXBzZS1zZWN0aW9uMTYiIGFyaWEtaGlkZGVuPSJ0cnVlIj5WMS4wLjIgLyAyNS1Ob3ZlbWJlci0yMDE1PC9sYWJlbD4KIDxkaXY+Ci08aDIgaWQ9Im1haW4tY2hhbmdlcy0xOCI+TWFpbiBDaGFuZ2VzPC9oMj4KKzxoMiBpZD0ibWFpbi1jaGFuZ2VzLTE5Ij5NYWluIENoYW5nZXM8L2gyPgogPHVsPgogPGxpPjxwPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBWZXJkYW5hOyI+c3RtMzJsNDcxeHguaCwgc3RtMzJsNDc1eHguaCwgc3RtMzJsNDc2eHguaCwgc3RtMzJsNDg1eHguaCBhbmQgc3RtMzJsNDg2eHguaCBkZXZpY2UgZGVzY3JpcHRpb24gZmlsZXM8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij48L3NwYW4+PC9wPgogPHVsPgpAQCAtNjA3LDcgKzYyOSw3IEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMTciIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjE3IiBhcmlhLWhpZGRlbj0idHJ1ZSI+VjEuMC4xIC8gMTYtU2VwdGVtYmVyLTIwMTU8L2xhYmVsPgogPGRpdj4KLTxoMiBpZD0ibWFpbi1jaGFuZ2VzLTE5Ij5NYWluIENoYW5nZXM8L2gyPgorPGgyIGlkPSJtYWluLWNoYW5nZXMtMjAiPk1haW4gQ2hhbmdlczwvaDI+CiA8dWw+CiA8bGk+PHA+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7Ij5zdG0zMmw0NzF4eC5oLCBzdG0zMmw0NzV4eC5oLCBzdG0zMmw0NzZ4eC5oLCBzdG0zMmw0ODV4eC5oIGFuZCBzdG0zMmw0ODZ4eC5oIGRldmljZTwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPmRlc2NyaXB0aW9uIGZpbGVzPC9zcGFuPjwvcD4KIDx1bD4KQEAgLTYzOSw3ICs2NjEsNyBAQAogPGRpdiBjbGFzcz0iY29sbGFwc2UiPgogPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY29sbGFwc2Utc2VjdGlvbjE4IiBhcmlhLWhpZGRlbj0idHJ1ZSI+IDxsYWJlbCBmb3I9ImNvbGxhcHNlLXNlY3Rpb24xOCIgYXJpYS1oaWRkZW49InRydWUiPlYxLjAuMCAvIDI2LUp1bmUtMjAxNTwvbGFiZWw+CiA8ZGl2PgotPGgyIGlkPSJtYWluLWNoYW5nZXMtMjAiPk1haW4gQ2hhbmdlczwvaDI+Cis8aDIgaWQ9Im1haW4tY2hhbmdlcy0yMSI+TWFpbiBDaGFuZ2VzPC9oMj4KIDx1bD4KIDxsaT48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPkZpcnN0IG9mZmljaWFsIHJlbGVhc2UgZm9ywqA8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IFZlcmRhbmE7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC13ZWlnaHQ6IGJvbGQ7Ij5TVE0zMkw0NzF4eCwgU1RNMzJMNDc1eHgsIFNUTTMyTDQ3Nnh4LCBTVE0zMkw0ODV4eCBhbmQgU1RNMzJMNDg2eHggZGV2aWNlczwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LWZhbWlseTogVmVyZGFuYTsiPjxzcGFuIHN0eWxlPSJmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtd2VpZ2h0OiBib2xkOyI+PGJyIC8+CiA8L3NwYW4+PC9zcGFuPjwvbGk+CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQxMnh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQxMnh4LnMKaW5kZXggNjU3ZjZiZC4uOGZjZWIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0MTJ4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDEyeHgucwpAQCAtMTAsMTYgKzEwLDE2IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxzIG1haW4oKSkuCiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCi07KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxOCBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTggU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKLTsqCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgorOwogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsqIDw8PCBVc2UgQ29uZmlndXJhdGlvbiBXaXphcmQgaW4gQ29udGV4dCBNZW51ID4+PgogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawpAQCAtMzcwLDQgKzM3MCw0IEBACiAKICAgICAgICAgICAgICAgICAgRU5ECiAKLTsqKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKioqCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDIyeHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDIyeHgucwppbmRleCBjM2M1MmM2Li5iNTlkZDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQyMnh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0MjJ4eC5zCkBAIC0xMCwxNiArMTAsMTYgQEAKIDsqICAgICAgICAgICAgICAgICAgICAgICAgY2FsbHMgbWFpbigpKS4KIDsqICAgICAgICAgICAgICAgICAgICAgIEFmdGVyIFJlc2V0IHRoZSBDb3J0ZXgtTTQgcHJvY2Vzc29yIGlzIGluIFRocmVhZCBtb2RlLAogOyogICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHkgaXMgUHJpdmlsZWdlZCwgYW5kIHRoZSBTdGFjayBpcyBzZXQgdG8gTWFpbi4KLTsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE4IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxOCBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOyogPDw8IFVzZSBDb25maWd1cmF0aW9uIFdpemFyZCBpbiBDb250ZXh0IE1lbnUgPj4+CiA7IEFtb3VudCBvZiBtZW1vcnkgKGluIGJ5dGVzKSBhbGxvY2F0ZWQgZm9yIFN0YWNrCkBAIC0zNzIsNCArMzcyLDQgQEAKIAogICAgICAgICAgICAgICAgICBFTkQKIAotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0MzF4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0MzF4eC5zCmluZGV4IGFhYTcxYzguLmE2YTcxNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDMxeHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQzMXh4LnMKQEAgLTEwLDE2ICsxMCwxNiBAQAogOyogICAgICAgICAgICAgICAgICAgICAgICBjYWxscyBtYWluKCkpLgogOyogICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgUmVzZXQgdGhlIENvcnRleC1NNCBwcm9jZXNzb3IgaXMgaW4gVGhyZWFkIG1vZGUsCiA7KiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eSBpcyBQcml2aWxlZ2VkLCBhbmQgdGhlIFN0YWNrIGlzIHNldCB0byBNYWluLgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCi07KgorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KKzsKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7KiA8PDwgVXNlIENvbmZpZ3VyYXRpb24gV2l6YXJkIGluIENvbnRleHQgTWVudSA+Pj4KIDsgQW1vdW50IG9mIG1lbW9yeSAoaW4gYnl0ZXMpIGFsbG9jYXRlZCBmb3IgU3RhY2sKQEAgLTM4Niw0ICszODYsNCBAQAogCiAgICAgICAgICAgICAgICAgIEVORAogCi07KioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqKgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQzMnh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQzMnh4LnMKaW5kZXggYTk0NWY1MC4uOWExZGMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0MzJ4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDMyeHgucwpAQCAtMTAsMTYgKzEwLDE2IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxzIG1haW4oKSkuCiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCi07KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKLTsqCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgorOwogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsqIDw8PCBVc2UgQ29uZmlndXJhdGlvbiBXaXphcmQgaW4gQ29udGV4dCBNZW51ID4+PgogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawpAQCAtMzc4LDQgKzM3OCw0IEBACiAKICAgICAgICAgICAgICAgICAgRU5ECiAKLTsqKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKioqCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDMzeHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDMzeHgucwppbmRleCAyNzJmOGRmLi44OTk0NGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQzM3h4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0MzN4eC5zCkBAIC0xMCwxNiArMTAsMTYgQEAKIDsqICAgICAgICAgICAgICAgICAgICAgICAgY2FsbHMgbWFpbigpKS4KIDsqICAgICAgICAgICAgICAgICAgICAgIEFmdGVyIFJlc2V0IHRoZSBDb3J0ZXgtTTQgcHJvY2Vzc29yIGlzIGluIFRocmVhZCBtb2RlLAogOyogICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHkgaXMgUHJpdmlsZWdlZCwgYW5kIHRoZSBTdGFjayBpcyBzZXQgdG8gTWFpbi4KLTsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOyogPDw8IFVzZSBDb25maWd1cmF0aW9uIFdpemFyZCBpbiBDb250ZXh0IE1lbnUgPj4+CiA7IEFtb3VudCBvZiBtZW1vcnkgKGluIGJ5dGVzKSBhbGxvY2F0ZWQgZm9yIFN0YWNrCkBAIC0zOTAsNCArMzkwLDQgQEAKIAogICAgICAgICAgICAgICAgICBFTkQKIAotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0NDJ4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0NDJ4eC5zCmluZGV4IDYxZDMwZjUuLjk5ZDYyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDQyeHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQ0Mnh4LnMKQEAgLTEwLDE2ICsxMCwxNiBAQAogOyogICAgICAgICAgICAgICAgICAgICAgICBjYWxscyBtYWluKCkpLgogOyogICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgUmVzZXQgdGhlIENvcnRleC1NNCBwcm9jZXNzb3IgaXMgaW4gVGhyZWFkIG1vZGUsCiA7KiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eSBpcyBQcml2aWxlZ2VkLCBhbmQgdGhlIFN0YWNrIGlzIHNldCB0byBNYWluLgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCi07KgorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KKzsKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7KiA8PDwgVXNlIENvbmZpZ3VyYXRpb24gV2l6YXJkIGluIENvbnRleHQgTWVudSA+Pj4KIDsgQW1vdW50IG9mIG1lbW9yeSAoaW4gYnl0ZXMpIGFsbG9jYXRlZCBmb3IgU3RhY2sKQEAgLTM4MCw0ICszODAsNCBAQAogCiAgICAgICAgICAgICAgICAgIEVORAogCi07KioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqKgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQ0M3h4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQ0M3h4LnMKaW5kZXggMTU5YTJlNS4uMWNkYzg5MCAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0NDN4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDQzeHgucwpAQCAtMTAsMTYgKzEwLDE2IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxzIG1haW4oKSkuCiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCi07KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKLTsqCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgorOwogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsqIDw8PCBVc2UgQ29uZmlndXJhdGlvbiBXaXphcmQgaW4gQ29udGV4dCBNZW51ID4+PgogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawpAQCAtMzkyLDQgKzM5Miw0IEBACiAKICAgICAgICAgICAgICAgICAgRU5ECiAKLTsqKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKioqCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDUxeHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDUxeHgucwppbmRleCBlMGJhMjljLi4yZjk0MTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQ1MXh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0NTF4eC5zCkBAIC0xMCwxNiArMTAsMTYgQEAKIDsqICAgICAgICAgICAgICAgICAgICAgICAgY2FsbHMgbWFpbigpKS4KIDsqICAgICAgICAgICAgICAgICAgICAgIEFmdGVyIFJlc2V0IHRoZSBDb3J0ZXgtTTQgcHJvY2Vzc29yIGlzIGluIFRocmVhZCBtb2RlLAogOyogICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHkgaXMgUHJpdmlsZWdlZCwgYW5kIHRoZSBTdGFjayBpcyBzZXQgdG8gTWFpbi4KLTsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOyogPDw8IFVzZSBDb25maWd1cmF0aW9uIFdpemFyZCBpbiBDb250ZXh0IE1lbnUgPj4+CiA7IEFtb3VudCBvZiBtZW1vcnkgKGluIGJ5dGVzKSBhbGxvY2F0ZWQgZm9yIFN0YWNrCkBAIC0zOTYsNCArMzk2LDQgQEAKIAogICAgICAgICAgICAgICAgICBFTkQKIAotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0NTJ4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0NTJ4eC5zCmluZGV4IDk3MzhhNGQuLjczMWRhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDUyeHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQ1Mnh4LnMKQEAgLTEwLDE2ICsxMCwxNiBAQAogOyogICAgICAgICAgICAgICAgICAgICAgICBjYWxscyBtYWluKCkpLgogOyogICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgUmVzZXQgdGhlIENvcnRleC1NNCBwcm9jZXNzb3IgaXMgaW4gVGhyZWFkIG1vZGUsCiA7KiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eSBpcyBQcml2aWxlZ2VkLCBhbmQgdGhlIFN0YWNrIGlzIHNldCB0byBNYWluLgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCi07KgorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KKzsKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7KiA8PDwgVXNlIENvbmZpZ3VyYXRpb24gV2l6YXJkIGluIENvbnRleHQgTWVudSA+Pj4KIDsgQW1vdW50IG9mIG1lbW9yeSAoaW4gYnl0ZXMpIGFsbG9jYXRlZCBmb3IgU3RhY2sKQEAgLTM5OCw0ICszOTgsNCBAQAogCiAgICAgICAgICAgICAgICAgIEVORAogCi07KioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqKgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQ2Mnh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQ2Mnh4LnMKaW5kZXggMTgyNDhlMS4uNDM5N2Y2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0NjJ4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDYyeHgucwpAQCAtMTAsMTYgKzEwLDE2IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxzIG1haW4oKSkuCiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCi07KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKLTsqCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgorOwogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsqIDw8PCBVc2UgQ29uZmlndXJhdGlvbiBXaXphcmQgaW4gQ29udGV4dCBNZW51ID4+PgogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawpAQCAtNDAwLDQgKzQwMCw0IEBACiAKICAgICAgICAgICAgICAgICAgRU5ECiAKLTsqKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKioqCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDcxeHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDcxeHgucwppbmRleCAyMmIyMDExLi5iY2ZlMTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQ3MXh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0NzF4eC5zCkBAIC0xMCwxNiArMTAsMTYgQEAKIDsqICAgICAgICAgICAgICAgICAgICAgICAgY2FsbHMgbWFpbigpKS4KIDsqICAgICAgICAgICAgICAgICAgICAgIEFmdGVyIFJlc2V0IHRoZSBDb3J0ZXgtTTQgcHJvY2Vzc29yIGlzIGluIFRocmVhZCBtb2RlLAogOyogICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHkgaXMgUHJpdmlsZWdlZCwgYW5kIHRoZSBTdGFjayBpcyBzZXQgdG8gTWFpbi4KLTsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOyogPDw8IFVzZSBDb25maWd1cmF0aW9uIFdpemFyZCBpbiBDb250ZXh0IE1lbnUgPj4+CiA7IEFtb3VudCBvZiBtZW1vcnkgKGluIGJ5dGVzKSBhbGxvY2F0ZWQgZm9yIFN0YWNrCkBAIC00MTUsNCArNDE1LDQgQEAKIAogICAgICAgICAgICAgICAgICBFTkQKIAotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0NzV4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0NzV4eC5zCmluZGV4IDZmZTc5MDQuLjJjMTY1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDc1eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQ3NXh4LnMKQEAgLTEwLDE2ICsxMCwxNiBAQAogOyogICAgICAgICAgICAgICAgICAgICAgICBjYWxscyBtYWluKCkpLgogOyogICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgUmVzZXQgdGhlIENvcnRleC1NNCBwcm9jZXNzb3IgaXMgaW4gVGhyZWFkIG1vZGUsCiA7KiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eSBpcyBQcml2aWxlZ2VkLCBhbmQgdGhlIFN0YWNrIGlzIHNldCB0byBNYWluLgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCi07KgorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KKzsKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7KiA8PDwgVXNlIENvbmZpZ3VyYXRpb24gV2l6YXJkIGluIENvbnRleHQgTWVudSA+Pj4KIDsgQW1vdW50IG9mIG1lbW9yeSAoaW4gYnl0ZXMpIGFsbG9jYXRlZCBmb3IgU3RhY2sKQEAgLTQxNyw0ICs0MTcsNCBAQAogCiAgICAgICAgICAgICAgICAgIEVORAogCi07KioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqKgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQ3Nnh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQ3Nnh4LnMKaW5kZXggOWY1OTZmOC4uZGU2MDFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0NzZ4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDc2eHgucwpAQCAtMTAsMTYgKzEwLDE2IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxzIG1haW4oKSkuCiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCi07KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKLTsqCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgorOwogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsqIDw8PCBVc2UgQ29uZmlndXJhdGlvbiBXaXphcmQgaW4gQ29udGV4dCBNZW51ID4+PgogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawpAQCAtNDE5LDQgKzQxOSw0IEBACiAKICAgICAgICAgICAgICAgICAgRU5ECiAKLTsqKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKioqCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDg1eHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDg1eHgucwppbmRleCBhYzZhNjkzLi5iY2I2OGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQ4NXh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0ODV4eC5zCkBAIC0xMCwxNiArMTAsMTYgQEAKIDsqICAgICAgICAgICAgICAgICAgICAgICAgY2FsbHMgbWFpbigpKS4KIDsqICAgICAgICAgICAgICAgICAgICAgIEFmdGVyIFJlc2V0IHRoZSBDb3J0ZXgtTTQgcHJvY2Vzc29yIGlzIGluIFRocmVhZCBtb2RlLAogOyogICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHkgaXMgUHJpdmlsZWdlZCwgYW5kIHRoZSBTdGFjayBpcyBzZXQgdG8gTWFpbi4KLTsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOyogPDw8IFVzZSBDb25maWd1cmF0aW9uIFdpemFyZCBpbiBDb250ZXh0IE1lbnUgPj4+CiA7IEFtb3VudCBvZiBtZW1vcnkgKGluIGJ5dGVzKSBhbGxvY2F0ZWQgZm9yIFN0YWNrCkBAIC00MTksNCArNDE5LDQgQEAKIAogICAgICAgICAgICAgICAgICBFTkQKIAotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0ODZ4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0ODZ4eC5zCmluZGV4IDg3OTMzMmYuLjY0MDk1ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDg2eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQ4Nnh4LnMKQEAgLTEwLDE2ICsxMCwxNiBAQAogOyogICAgICAgICAgICAgICAgICAgICAgICBjYWxscyBtYWluKCkpLgogOyogICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgUmVzZXQgdGhlIENvcnRleC1NNCBwcm9jZXNzb3IgaXMgaW4gVGhyZWFkIG1vZGUsCiA7KiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eSBpcyBQcml2aWxlZ2VkLCBhbmQgdGhlIFN0YWNrIGlzIHNldCB0byBNYWluLgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCi07KgorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KKzsKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7KiA8PDwgVXNlIENvbmZpZ3VyYXRpb24gV2l6YXJkIGluIENvbnRleHQgTWVudSA+Pj4KIDsgQW1vdW50IG9mIG1lbW9yeSAoaW4gYnl0ZXMpIGFsbG9jYXRlZCBmb3IgU3RhY2sKQEAgLTQyMSw0ICs0MjEsNCBAQAogCiAgICAgICAgICAgICAgICAgIEVORAogCi07KioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqKgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQ5Nnh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDQ5Nnh4LnMKaW5kZXggYzc1Nzg5YS4uODUwZDIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0OTZ4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNDk2eHgucwpAQCAtMTAsMTYgKzEwLDE2IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxzIG1haW4oKSkuCiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCi07KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKLTsqCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgorOwogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsqIDw8PCBVc2UgQ29uZmlndXJhdGlvbiBXaXphcmQgaW4gQ29udGV4dCBNZW51ID4+PgogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawpAQCAtNDQ2LDQgKzQ0Niw0IEBACiAKICAgICAgICAgICAgICAgICAgRU5ECiAKLTsqKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKioqCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNGE2eHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNGE2eHgucwppbmRleCAxNWEzOWMwLi4zOWZhYTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDRhNnh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0YTZ4eC5zCkBAIC0xMCwxNiArMTAsMTYgQEAKIDsqICAgICAgICAgICAgICAgICAgICAgICAgY2FsbHMgbWFpbigpKS4KIDsqICAgICAgICAgICAgICAgICAgICAgIEFmdGVyIFJlc2V0IHRoZSBDb3J0ZXgtTTQgcHJvY2Vzc29yIGlzIGluIFRocmVhZCBtb2RlLAogOyogICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHkgaXMgUHJpdmlsZWdlZCwgYW5kIHRoZSBTdGFjayBpcyBzZXQgdG8gTWFpbi4KLTsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOyogPDw8IFVzZSBDb25maWd1cmF0aW9uIFdpemFyZCBpbiBDb250ZXh0IE1lbnUgPj4+CiA7IEFtb3VudCBvZiBtZW1vcnkgKGluIGJ5dGVzKSBhbGxvY2F0ZWQgZm9yIFN0YWNrCkBAIC00NDgsNCArNDQ4LDQgQEAKIAogICAgICAgICAgICAgICAgICBFTkQKIAotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0cDV4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0cDV4eC5zCmluZGV4IDc5NjY4YWQuLjZlNjFmMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNHA1eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDRwNXh4LnMKQEAgLTEwLDE2ICsxMCwxNiBAQAogOyogICAgICAgICAgICAgICAgICAgICAgICBjYWxscyBtYWluKCkpLgogOyogICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgUmVzZXQgdGhlIENvcnRleC1NNCBwcm9jZXNzb3IgaXMgaW4gVGhyZWFkIG1vZGUsCiA7KiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eSBpcyBQcml2aWxlZ2VkLCBhbmQgdGhlIFN0YWNrIGlzIHNldCB0byBNYWluLgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTkgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE5IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCi07KgorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KKzsKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7KiA8PDwgVXNlIENvbmZpZ3VyYXRpb24gV2l6YXJkIGluIENvbnRleHQgTWVudSA+Pj4KIDsgQW1vdW50IG9mIG1lbW9yeSAoaW4gYnl0ZXMpIGFsbG9jYXRlZCBmb3IgU3RhY2sKQEAgLTQ0NCw0ICs0NDQsNCBAQAogCiAgICAgICAgICAgICAgICAgIEVORAogCi07KioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqKgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDRxNXh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDRxNXh4LnMKaW5kZXggNjU4YThmNS4uNjczMjIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0cTV4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNHE1eHgucwpAQCAtMTAsMTYgKzEwLDE2IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxzIG1haW4oKSkuCiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCi07KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxOSBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTkgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKLTsqCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgorOwogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsqIDw8PCBVc2UgQ29uZmlndXJhdGlvbiBXaXphcmQgaW4gQ29udGV4dCBNZW51ID4+PgogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawpAQCAtNDQ4LDQgKzQ0OCw0IEBACiAKICAgICAgICAgICAgICAgICAgRU5ECiAKLTsqKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKioqCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNHI1eHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNHI1eHgucwppbmRleCAyZDFkM2RmLi41ZGU2ODdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDRyNXh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0cjV4eC5zCkBAIC0xMCwxNiArMTAsMTYgQEAKIDsqICAgICAgICAgICAgICAgICAgICAgICAgY2FsbHMgbWFpbigpKS4KIDsqICAgICAgICAgICAgICAgICAgICAgIEFmdGVyIFJlc2V0IHRoZSBDb3J0ZXgtTTQgcHJvY2Vzc29yIGlzIGluIFRocmVhZCBtb2RlLAogOyogICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHkgaXMgUHJpdmlsZWdlZCwgYW5kIHRoZSBTdGFjayBpcyBzZXQgdG8gTWFpbi4KLTsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOyogPDw8IFVzZSBDb25maWd1cmF0aW9uIFdpemFyZCBpbiBDb250ZXh0IE1lbnUgPj4+CiA7IEFtb3VudCBvZiBtZW1vcnkgKGluIGJ5dGVzKSBhbGxvY2F0ZWQgZm9yIFN0YWNrCkBAIC00NDYsNCArNDQ2LDQgQEAKIAogICAgICAgICAgICAgICAgICBFTkQKIAotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0cjd4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0cjd4eC5zCmluZGV4IDQxYmM3MGEuLmJmMTgwZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNHI3eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDRyN3h4LnMKQEAgLTEwLDE2ICsxMCwxNiBAQAogOyogICAgICAgICAgICAgICAgICAgICAgICBjYWxscyBtYWluKCkpLgogOyogICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgUmVzZXQgdGhlIENvcnRleC1NNCBwcm9jZXNzb3IgaXMgaW4gVGhyZWFkIG1vZGUsCiA7KiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eSBpcyBQcml2aWxlZ2VkLCBhbmQgdGhlIFN0YWNrIGlzIHNldCB0byBNYWluLgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCi07KgorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KKzsKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7KiA8PDwgVXNlIENvbmZpZ3VyYXRpb24gV2l6YXJkIGluIENvbnRleHQgTWVudSA+Pj4KIDsgQW1vdW50IG9mIG1lbW9yeSAoaW4gYnl0ZXMpIGFsbG9jYXRlZCBmb3IgU3RhY2sKQEAgLTQ0Niw0ICs0NDYsNCBAQAogCiAgICAgICAgICAgICAgICAgIEVORAogCi07KioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqKgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDRyOXh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDRyOXh4LnMKaW5kZXggNjIyNDFjMi4uYzI2NmFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0cjl4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNHI5eHgucwpAQCAtMTAsMTYgKzEwLDE2IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxzIG1haW4oKSkuCiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCi07KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKLTsqCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgorOwogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsqIDw8PCBVc2UgQ29uZmlndXJhdGlvbiBXaXphcmQgaW4gQ29udGV4dCBNZW51ID4+PgogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawpAQCAtNDQ4LDQgKzQ0OCw0IEBACiAKICAgICAgICAgICAgICAgICAgRU5ECiAKLTsqKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKioqCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNHM1eHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNHM1eHgucwppbmRleCAxNTI5ZDI1Li4xNTEwNzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDRzNXh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0czV4eC5zCkBAIC0xMCwxNiArMTAsMTYgQEAKIDsqICAgICAgICAgICAgICAgICAgICAgICAgY2FsbHMgbWFpbigpKS4KIDsqICAgICAgICAgICAgICAgICAgICAgIEFmdGVyIFJlc2V0IHRoZSBDb3J0ZXgtTTQgcHJvY2Vzc29yIGlzIGluIFRocmVhZCBtb2RlLAogOyogICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHkgaXMgUHJpdmlsZWdlZCwgYW5kIHRoZSBTdGFjayBpcyBzZXQgdG8gTWFpbi4KLTsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOyogPDw8IFVzZSBDb25maWd1cmF0aW9uIFdpemFyZCBpbiBDb250ZXh0IE1lbnUgPj4+CiA7IEFtb3VudCBvZiBtZW1vcnkgKGluIGJ5dGVzKSBhbGxvY2F0ZWQgZm9yIFN0YWNrCkBAIC00NDgsNCArNDQ4LDQgQEAKIAogICAgICAgICAgICAgICAgICBFTkQKIAotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0czd4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0czd4eC5zCmluZGV4IDgwZDdjOWYuLmNhZWFhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNHM3eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDRzN3h4LnMKQEAgLTEwLDE2ICsxMCwxNiBAQAogOyogICAgICAgICAgICAgICAgICAgICAgICBjYWxscyBtYWluKCkpLgogOyogICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgUmVzZXQgdGhlIENvcnRleC1NNCBwcm9jZXNzb3IgaXMgaW4gVGhyZWFkIG1vZGUsCiA7KiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eSBpcyBQcml2aWxlZ2VkLCBhbmQgdGhlIFN0YWNrIGlzIHNldCB0byBNYWluLgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCi07KgorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KKzsKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7KiA8PDwgVXNlIENvbmZpZ3VyYXRpb24gV2l6YXJkIGluIENvbnRleHQgTWVudSA+Pj4KIDsgQW1vdW50IG9mIG1lbW9yeSAoaW4gYnl0ZXMpIGFsbG9jYXRlZCBmb3IgU3RhY2sKQEAgLTQ0OCw0ICs0NDgsNCBAQAogCiAgICAgICAgICAgICAgICAgIEVORAogCi07KioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqKgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDRzOXh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMybDRzOXh4LnMKaW5kZXggYzExZDU3OS4uNWQzY2JlNyAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmw0czl4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJsNHM5eHgucwpAQCAtMTAsMTYgKzEwLDE2IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxzIG1haW4oKSkuCiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCi07KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKLTsqCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgorOwogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsqIDw8PCBVc2UgQ29uZmlndXJhdGlvbiBXaXphcmQgaW4gQ29udGV4dCBNZW51ID4+PgogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawpAQCAtNDUwLDQgKzQ1MCw0IEBACiAKICAgICAgICAgICAgICAgICAgRU5ECiAKLTsqKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKioqCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDEyeHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDEyeHgucwppbmRleCA5YmM3Mjc4Li43YjczYjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQxMnh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0MTJ4eC5zCkBAIC0xNSwxMyArMTUsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxOCBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxOCBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTY2LDMyICs2NSwzNSBAQAogICAgIGJsICBTeXN0ZW1Jbml0CiAKIC8qIENvcHkgdGhlIGRhdGEgc2VnbWVudCBpbml0aWFsaXplcnMgZnJvbSBmbGFzaCB0byBTUkFNICovCi0gIG1vdnMJcjEsICMwCi0gIGIJTG9vcENvcHlEYXRhSW5pdAorICBsZHIgcjAsID1fc2RhdGEKKyAgbGRyIHIxLCA9X2VkYXRhCisgIGxkciByMiwgPV9zaWRhdGEKKyAgbW92cyByMywgIzAKKyAgYiBMb29wQ29weURhdGFJbml0CiAKIENvcHlEYXRhSW5pdDoKLQlsZHIJcjMsID1fc2lkYXRhCi0JbGRyCXIzLCBbcjMsIHIxXQotCXN0cglyMywgW3IwLCByMV0KLQlhZGRzCXIxLCByMSwgIzQKKyAgbGRyIHI0LCBbcjIsIHIzXQorICBzdHIgcjQsIFtyMCwgcjNdCisgIGFkZHMgcjMsIHIzLCAjNAogCiBMb29wQ29weURhdGFJbml0OgotCWxkcglyMCwgPV9zZGF0YQotCWxkcglyMywgPV9lZGF0YQotCWFkZHMJcjIsIHIwLCByMQotCWNtcAlyMiwgcjMKLQliY2MJQ29weURhdGFJbml0Ci0JbGRyCXIyLCA9X3Nic3MKLQliCUxvb3BGaWxsWmVyb2JzcworICBhZGRzIHI0LCByMCwgcjMKKyAgY21wIHI0LCByMQorICBiY2MgQ29weURhdGFJbml0CisgIAogLyogWmVybyBmaWxsIHRoZSBic3Mgc2VnbWVudC4gKi8KKyAgbGRyIHIyLCA9X3Nic3MKKyAgbGRyIHI0LCA9X2Vic3MKKyAgbW92cyByMywgIzAKKyAgYiBMb29wRmlsbFplcm9ic3MKKwogRmlsbFplcm9ic3M6Ci0JbW92cwlyMywgIzAKLQlzdHIJcjMsIFtyMl0sICM0CisgIHN0ciAgcjMsIFtyMl0KKyAgYWRkcyByMiwgcjIsICM0CiAKIExvb3BGaWxsWmVyb2JzczoKLQlsZHIJcjMsID0gX2Vic3MKLQljbXAJcjIsIHIzCi0JYmNjCUZpbGxaZXJvYnNzCisgIGNtcCByMiwgcjQKKyAgYmNjIEZpbGxaZXJvYnNzCiAKIC8qIENhbGwgc3RhdGljIGNvbnN0cnVjdG9ycyAqLwogICAgIGJsIF9fbGliY19pbml0X2FycmF5CkBAIC00MzIsNCArNDM0LDQgQEAKIAkKIAkud2VhawlDUlNfSVJRSGFuZGxlcgogCS50aHVtYl9zZXQgQ1JTX0lSUUhhbmRsZXIsRGVmYXVsdF9IYW5kbGVyCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQyMnh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQyMnh4LnMKaW5kZXggZmFhYjU3Ni4uYWNkZTgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0MjJ4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDIyeHgucwpAQCAtMTUsMTMgKzE1LDEyIEBACiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTggU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTggU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC02NiwzMiArNjUsMzUgQEAKICAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwotICBtb3ZzCXIxLCAjMAotICBiCUxvb3BDb3B5RGF0YUluaXQKKyAgbGRyIHIwLCA9X3NkYXRhCisgIGxkciByMSwgPV9lZGF0YQorICBsZHIgcjIsID1fc2lkYXRhCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcENvcHlEYXRhSW5pdAogCiBDb3B5RGF0YUluaXQ6Ci0JbGRyCXIzLCA9X3NpZGF0YQotCWxkcglyMywgW3IzLCByMV0KLQlzdHIJcjMsIFtyMCwgcjFdCi0JYWRkcwlyMSwgcjEsICM0CisgIGxkciByNCwgW3IyLCByM10KKyAgc3RyIHI0LCBbcjAsIHIzXQorICBhZGRzIHIzLCByMywgIzQKIAogTG9vcENvcHlEYXRhSW5pdDoKLQlsZHIJcjAsID1fc2RhdGEKLQlsZHIJcjMsID1fZWRhdGEKLQlhZGRzCXIyLCByMCwgcjEKLQljbXAJcjIsIHIzCi0JYmNjCUNvcHlEYXRhSW5pdAotCWxkcglyMiwgPV9zYnNzCi0JYglMb29wRmlsbFplcm9ic3MKKyAgYWRkcyByNCwgcjAsIHIzCisgIGNtcCByNCwgcjEKKyAgYmNjIENvcHlEYXRhSW5pdAorICAKIC8qIFplcm8gZmlsbCB0aGUgYnNzIHNlZ21lbnQuICovCisgIGxkciByMiwgPV9zYnNzCisgIGxkciByNCwgPV9lYnNzCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcEZpbGxaZXJvYnNzCisKIEZpbGxaZXJvYnNzOgotCW1vdnMJcjMsICMwCi0Jc3RyCXIzLCBbcjJdLCAjNAorICBzdHIgIHIzLCBbcjJdCisgIGFkZHMgcjIsIHIyLCAjNAogCiBMb29wRmlsbFplcm9ic3M6Ci0JbGRyCXIzLCA9IF9lYnNzCi0JY21wCXIyLCByMwotCWJjYwlGaWxsWmVyb2JzcworICBjbXAgcjIsIHI0CisgIGJjYyBGaWxsWmVyb2JzcwogCiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQpAQCAtNDM1LDQgKzQzNyw0IEBACiAJCiAJLndlYWsJQ1JTX0lSUUhhbmRsZXIKIAkudGh1bWJfc2V0IENSU19JUlFIYW5kbGVyLERlZmF1bHRfSGFuZGxlcgotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0MzF4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0MzF4eC5zCmluZGV4IDdlNWZiYTQuLmY2NTIxMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDMxeHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQzMXh4LnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNjYsMzIgKzY1LDM1IEBACiAgICAgYmwgIFN5c3RlbUluaXQKIAogLyogQ29weSB0aGUgZGF0YSBzZWdtZW50IGluaXRpYWxpemVycyBmcm9tIGZsYXNoIHRvIFNSQU0gKi8KLSAgbW92cwlyMSwgIzAKLSAgYglMb29wQ29weURhdGFJbml0CisgIGxkciByMCwgPV9zZGF0YQorICBsZHIgcjEsID1fZWRhdGEKKyAgbGRyIHIyLCA9X3NpZGF0YQorICBtb3ZzIHIzLCAjMAorICBiIExvb3BDb3B5RGF0YUluaXQKIAogQ29weURhdGFJbml0OgotCWxkcglyMywgPV9zaWRhdGEKLQlsZHIJcjMsIFtyMywgcjFdCi0Jc3RyCXIzLCBbcjAsIHIxXQotCWFkZHMJcjEsIHIxLCAjNAorICBsZHIgcjQsIFtyMiwgcjNdCisgIHN0ciByNCwgW3IwLCByM10KKyAgYWRkcyByMywgcjMsICM0CiAKIExvb3BDb3B5RGF0YUluaXQ6Ci0JbGRyCXIwLCA9X3NkYXRhCi0JbGRyCXIzLCA9X2VkYXRhCi0JYWRkcwlyMiwgcjAsIHIxCi0JY21wCXIyLCByMwotCWJjYwlDb3B5RGF0YUluaXQKLQlsZHIJcjIsID1fc2JzcwotCWIJTG9vcEZpbGxaZXJvYnNzCisgIGFkZHMgcjQsIHIwLCByMworICBjbXAgcjQsIHIxCisgIGJjYyBDb3B5RGF0YUluaXQKKyAgCiAvKiBaZXJvIGZpbGwgdGhlIGJzcyBzZWdtZW50LiAqLworICBsZHIgcjIsID1fc2JzcworICBsZHIgcjQsID1fZWJzcworICBtb3ZzIHIzLCAjMAorICBiIExvb3BGaWxsWmVyb2JzcworCiBGaWxsWmVyb2JzczoKLQltb3ZzCXIzLCAjMAotCXN0cglyMywgW3IyXSwgIzQKKyAgc3RyICByMywgW3IyXQorICBhZGRzIHIyLCByMiwgIzQKIAogTG9vcEZpbGxaZXJvYnNzOgotCWxkcglyMywgPSBfZWJzcwotCWNtcAlyMiwgcjMKLQliY2MJRmlsbFplcm9ic3MKKyAgY21wIHIyLCByNAorICBiY2MgRmlsbFplcm9ic3MKIAogLyogQ2FsbCBzdGF0aWMgY29uc3RydWN0b3JzICovCiAgICAgYmwgX19saWJjX2luaXRfYXJyYXkKQEAgLTQ1Niw0ICs0NTgsNCBAQAogCQogCS53ZWFrCUNSU19JUlFIYW5kbGVyCiAJLnRodW1iX3NldCBDUlNfSVJRSGFuZGxlcixEZWZhdWx0X0hhbmRsZXIKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDMyeHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDMyeHgucwppbmRleCAzZjVmYWQxLi4yN2IyYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQzMnh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0MzJ4eC5zCkBAIC0xNSwxMyArMTUsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTY2LDMyICs2NSwzNSBAQAogICAgIGJsICBTeXN0ZW1Jbml0CiAKIC8qIENvcHkgdGhlIGRhdGEgc2VnbWVudCBpbml0aWFsaXplcnMgZnJvbSBmbGFzaCB0byBTUkFNICovCi0gIG1vdnMJcjEsICMwCi0gIGIJTG9vcENvcHlEYXRhSW5pdAorICBsZHIgcjAsID1fc2RhdGEKKyAgbGRyIHIxLCA9X2VkYXRhCisgIGxkciByMiwgPV9zaWRhdGEKKyAgbW92cyByMywgIzAKKyAgYiBMb29wQ29weURhdGFJbml0CiAKIENvcHlEYXRhSW5pdDoKLQlsZHIJcjMsID1fc2lkYXRhCi0JbGRyCXIzLCBbcjMsIHIxXQotCXN0cglyMywgW3IwLCByMV0KLQlhZGRzCXIxLCByMSwgIzQKKyAgbGRyIHI0LCBbcjIsIHIzXQorICBzdHIgcjQsIFtyMCwgcjNdCisgIGFkZHMgcjMsIHIzLCAjNAogCiBMb29wQ29weURhdGFJbml0OgotCWxkcglyMCwgPV9zZGF0YQotCWxkcglyMywgPV9lZGF0YQotCWFkZHMJcjIsIHIwLCByMQotCWNtcAlyMiwgcjMKLQliY2MJQ29weURhdGFJbml0Ci0JbGRyCXIyLCA9X3Nic3MKLQliCUxvb3BGaWxsWmVyb2JzcworICBhZGRzIHI0LCByMCwgcjMKKyAgY21wIHI0LCByMQorICBiY2MgQ29weURhdGFJbml0CisgIAogLyogWmVybyBmaWxsIHRoZSBic3Mgc2VnbWVudC4gKi8KKyAgbGRyIHIyLCA9X3Nic3MKKyAgbGRyIHI0LCA9X2Vic3MKKyAgbW92cyByMywgIzAKKyAgYiBMb29wRmlsbFplcm9ic3MKKwogRmlsbFplcm9ic3M6Ci0JbW92cwlyMywgIzAKLQlzdHIJcjMsIFtyMl0sICM0CisgIHN0ciAgcjMsIFtyMl0KKyAgYWRkcyByMiwgcjIsICM0CiAKIExvb3BGaWxsWmVyb2JzczoKLQlsZHIJcjMsID0gX2Vic3MKLQljbXAJcjIsIHIzCi0JYmNjCUZpbGxaZXJvYnNzCisgIGNtcCByMiwgcjQKKyAgYmNjIEZpbGxaZXJvYnNzCiAKIC8qIENhbGwgc3RhdGljIGNvbnN0cnVjdG9ycyAqLwogICAgIGJsIF9fbGliY19pbml0X2FycmF5CkBAIC00NDQsNCArNDQ2LDQgQEAKIAkKIAkud2VhawlDUlNfSVJRSGFuZGxlcgogCS50aHVtYl9zZXQgQ1JTX0lSUUhhbmRsZXIsRGVmYXVsdF9IYW5kbGVyCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQzM3h4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQzM3h4LnMKaW5kZXggZWU2ZGRlMC4uM2Y0YjFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0MzN4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDMzeHgucwpAQCAtMTUsMTMgKzE1LDEyIEBACiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC02NiwzMiArNjUsMzUgQEAKICAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwotICBtb3ZzCXIxLCAjMAotICBiCUxvb3BDb3B5RGF0YUluaXQKKyAgbGRyIHIwLCA9X3NkYXRhCisgIGxkciByMSwgPV9lZGF0YQorICBsZHIgcjIsID1fc2lkYXRhCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcENvcHlEYXRhSW5pdAogCiBDb3B5RGF0YUluaXQ6Ci0JbGRyCXIzLCA9X3NpZGF0YQotCWxkcglyMywgW3IzLCByMV0KLQlzdHIJcjMsIFtyMCwgcjFdCi0JYWRkcwlyMSwgcjEsICM0CisgIGxkciByNCwgW3IyLCByM10KKyAgc3RyIHI0LCBbcjAsIHIzXQorICBhZGRzIHIzLCByMywgIzQKIAogTG9vcENvcHlEYXRhSW5pdDoKLQlsZHIJcjAsID1fc2RhdGEKLQlsZHIJcjMsID1fZWRhdGEKLQlhZGRzCXIyLCByMCwgcjEKLQljbXAJcjIsIHIzCi0JYmNjCUNvcHlEYXRhSW5pdAotCWxkcglyMiwgPV9zYnNzCi0JYglMb29wRmlsbFplcm9ic3MKKyAgYWRkcyByNCwgcjAsIHIzCisgIGNtcCByNCwgcjEKKyAgYmNjIENvcHlEYXRhSW5pdAorICAKIC8qIFplcm8gZmlsbCB0aGUgYnNzIHNlZ21lbnQuICovCisgIGxkciByMiwgPV9zYnNzCisgIGxkciByNCwgPV9lYnNzCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcEZpbGxaZXJvYnNzCisKIEZpbGxaZXJvYnNzOgotCW1vdnMJcjMsICMwCi0Jc3RyCXIzLCBbcjJdLCAjNAorICBzdHIgIHIzLCBbcjJdCisgIGFkZHMgcjIsIHIyLCAjNAogCiBMb29wRmlsbFplcm9ic3M6Ci0JbGRyCXIzLCA9IF9lYnNzCi0JY21wCXIyLCByMwotCWJjYwlGaWxsWmVyb2JzcworICBjbXAgcjIsIHI0CisgIGJjYyBGaWxsWmVyb2JzcwogCiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQpAQCAtNDYyLDQgKzQ2NCw0IEBACiAJCiAJLndlYWsJQ1JTX0lSUUhhbmRsZXIKIAkudGh1bWJfc2V0IENSU19JUlFIYW5kbGVyLERlZmF1bHRfSGFuZGxlcgotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0NDJ4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0NDJ4eC5zCmluZGV4IDExNTA1NDAuLjA2YTA5MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDQyeHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQ0Mnh4LnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNjYsMzIgKzY1LDM1IEBACiAgICAgYmwgIFN5c3RlbUluaXQKIAogLyogQ29weSB0aGUgZGF0YSBzZWdtZW50IGluaXRpYWxpemVycyBmcm9tIGZsYXNoIHRvIFNSQU0gKi8KLSAgbW92cwlyMSwgIzAKLSAgYglMb29wQ29weURhdGFJbml0CisgIGxkciByMCwgPV9zZGF0YQorICBsZHIgcjEsID1fZWRhdGEKKyAgbGRyIHIyLCA9X3NpZGF0YQorICBtb3ZzIHIzLCAjMAorICBiIExvb3BDb3B5RGF0YUluaXQKIAogQ29weURhdGFJbml0OgotCWxkcglyMywgPV9zaWRhdGEKLQlsZHIJcjMsIFtyMywgcjFdCi0Jc3RyCXIzLCBbcjAsIHIxXQotCWFkZHMJcjEsIHIxLCAjNAorICBsZHIgcjQsIFtyMiwgcjNdCisgIHN0ciByNCwgW3IwLCByM10KKyAgYWRkcyByMywgcjMsICM0CiAKIExvb3BDb3B5RGF0YUluaXQ6Ci0JbGRyCXIwLCA9X3NkYXRhCi0JbGRyCXIzLCA9X2VkYXRhCi0JYWRkcwlyMiwgcjAsIHIxCi0JY21wCXIyLCByMwotCWJjYwlDb3B5RGF0YUluaXQKLQlsZHIJcjIsID1fc2JzcwotCWIJTG9vcEZpbGxaZXJvYnNzCisgIGFkZHMgcjQsIHIwLCByMworICBjbXAgcjQsIHIxCisgIGJjYyBDb3B5RGF0YUluaXQKKyAgCiAvKiBaZXJvIGZpbGwgdGhlIGJzcyBzZWdtZW50LiAqLworICBsZHIgcjIsID1fc2JzcworICBsZHIgcjQsID1fZWJzcworICBtb3ZzIHIzLCAjMAorICBiIExvb3BGaWxsWmVyb2JzcworCiBGaWxsWmVyb2JzczoKLQltb3ZzCXIzLCAjMAotCXN0cglyMywgW3IyXSwgIzQKKyAgc3RyICByMywgW3IyXQorICBhZGRzIHIyLCByMiwgIzQKIAogTG9vcEZpbGxaZXJvYnNzOgotCWxkcglyMywgPSBfZWJzcwotCWNtcAlyMiwgcjMKLQliY2MJRmlsbFplcm9ic3MKKyAgY21wIHIyLCByNAorICBiY2MgRmlsbFplcm9ic3MKIAogLyogQ2FsbCBzdGF0aWMgY29uc3RydWN0b3JzICovCiAgICAgYmwgX19saWJjX2luaXRfYXJyYXkKQEAgLTQ0Nyw0ICs0NDksNCBAQAogCQogCS53ZWFrCUNSU19JUlFIYW5kbGVyCiAJLnRodW1iX3NldCBDUlNfSVJRSGFuZGxlcixEZWZhdWx0X0hhbmRsZXIKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDQzeHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDQzeHgucwppbmRleCA4NDM3ZTBiLi4yNTZhODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQ0M3h4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0NDN4eC5zCkBAIC0xNSwxMyArMTUsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTY2LDMyICs2NSwzNSBAQAogICAgIGJsICBTeXN0ZW1Jbml0CiAKIC8qIENvcHkgdGhlIGRhdGEgc2VnbWVudCBpbml0aWFsaXplcnMgZnJvbSBmbGFzaCB0byBTUkFNICovCi0gIG1vdnMJcjEsICMwCi0gIGIJTG9vcENvcHlEYXRhSW5pdAorICBsZHIgcjAsID1fc2RhdGEKKyAgbGRyIHIxLCA9X2VkYXRhCisgIGxkciByMiwgPV9zaWRhdGEKKyAgbW92cyByMywgIzAKKyAgYiBMb29wQ29weURhdGFJbml0CiAKIENvcHlEYXRhSW5pdDoKLQlsZHIJcjMsID1fc2lkYXRhCi0JbGRyCXIzLCBbcjMsIHIxXQotCXN0cglyMywgW3IwLCByMV0KLQlhZGRzCXIxLCByMSwgIzQKKyAgbGRyIHI0LCBbcjIsIHIzXQorICBzdHIgcjQsIFtyMCwgcjNdCisgIGFkZHMgcjMsIHIzLCAjNAogCiBMb29wQ29weURhdGFJbml0OgotCWxkcglyMCwgPV9zZGF0YQotCWxkcglyMywgPV9lZGF0YQotCWFkZHMJcjIsIHIwLCByMQotCWNtcAlyMiwgcjMKLQliY2MJQ29weURhdGFJbml0Ci0JbGRyCXIyLCA9X3Nic3MKLQliCUxvb3BGaWxsWmVyb2JzcworICBhZGRzIHI0LCByMCwgcjMKKyAgY21wIHI0LCByMQorICBiY2MgQ29weURhdGFJbml0CisgIAogLyogWmVybyBmaWxsIHRoZSBic3Mgc2VnbWVudC4gKi8KKyAgbGRyIHIyLCA9X3Nic3MKKyAgbGRyIHI0LCA9X2Vic3MKKyAgbW92cyByMywgIzAKKyAgYiBMb29wRmlsbFplcm9ic3MKKwogRmlsbFplcm9ic3M6Ci0JbW92cwlyMywgIzAKLQlzdHIJcjMsIFtyMl0sICM0CisgIHN0ciAgcjMsIFtyMl0KKyAgYWRkcyByMiwgcjIsICM0CiAKIExvb3BGaWxsWmVyb2JzczoKLQlsZHIJcjMsID0gX2Vic3MKLQljbXAJcjIsIHIzCi0JYmNjCUZpbGxaZXJvYnNzCisgIGNtcCByMiwgcjQKKyAgYmNjIEZpbGxaZXJvYnNzCiAKIC8qIENhbGwgc3RhdGljIGNvbnN0cnVjdG9ycyAqLwogICAgIGJsIF9fbGliY19pbml0X2FycmF5CkBAIC00NjUsNCArNDY3LDQgQEAKIAkKIAkud2VhawlDUlNfSVJRSGFuZGxlcgogCS50aHVtYl9zZXQgQ1JTX0lSUUhhbmRsZXIsRGVmYXVsdF9IYW5kbGVyCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQ1MXh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQ1MXh4LnMKaW5kZXggNDQxNTM3ZS4uYzVjYTZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0NTF4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDUxeHgucwpAQCAtMTUsMTMgKzE1LDEyIEBACiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC02NiwzMiArNjUsMzUgQEAKICAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwotICBtb3ZzCXIxLCAjMAotICBiCUxvb3BDb3B5RGF0YUluaXQKKyAgbGRyIHIwLCA9X3NkYXRhCisgIGxkciByMSwgPV9lZGF0YQorICBsZHIgcjIsID1fc2lkYXRhCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcENvcHlEYXRhSW5pdAogCiBDb3B5RGF0YUluaXQ6Ci0JbGRyCXIzLCA9X3NpZGF0YQotCWxkcglyMywgW3IzLCByMV0KLQlzdHIJcjMsIFtyMCwgcjFdCi0JYWRkcwlyMSwgcjEsICM0CisgIGxkciByNCwgW3IyLCByM10KKyAgc3RyIHI0LCBbcjAsIHIzXQorICBhZGRzIHIzLCByMywgIzQKIAogTG9vcENvcHlEYXRhSW5pdDoKLQlsZHIJcjAsID1fc2RhdGEKLQlsZHIJcjMsID1fZWRhdGEKLQlhZGRzCXIyLCByMCwgcjEKLQljbXAJcjIsIHIzCi0JYmNjCUNvcHlEYXRhSW5pdAotCWxkcglyMiwgPV9zYnNzCi0JYglMb29wRmlsbFplcm9ic3MKKyAgYWRkcyByNCwgcjAsIHIzCisgIGNtcCByNCwgcjEKKyAgYmNjIENvcHlEYXRhSW5pdAorICAKIC8qIFplcm8gZmlsbCB0aGUgYnNzIHNlZ21lbnQuICovCisgIGxkciByMiwgPV9zYnNzCisgIGxkciByNCwgPV9lYnNzCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcEZpbGxaZXJvYnNzCisKIEZpbGxaZXJvYnNzOgotCW1vdnMJcjMsICMwCi0Jc3RyCXIzLCBbcjJdLCAjNAorICBzdHIgIHIzLCBbcjJdCisgIGFkZHMgcjIsIHIyLCAjNAogCiBMb29wRmlsbFplcm9ic3M6Ci0JbGRyCXIzLCA9IF9lYnNzCi0JY21wCXIyLCByMwotCWJjYwlGaWxsWmVyb2JzcworICBjbXAgcjIsIHI0CisgIGJjYyBGaWxsWmVyb2JzcwogCiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQpAQCAtNDcwLDQgKzQ3Miw0IEBACiAJCiAJLndlYWsJSTJDNF9FUl9JUlFIYW5kbGVyCiAJLnRodW1iX3NldCBJMkM0X0VSX0lSUUhhbmRsZXIsRGVmYXVsdF9IYW5kbGVyCQotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0NTJ4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0NTJ4eC5zCmluZGV4IDFjZTlkNzguLjY0NDdhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDUyeHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQ1Mnh4LnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNjYsMzIgKzY1LDM1IEBACiAgICAgYmwgIFN5c3RlbUluaXQKIAogLyogQ29weSB0aGUgZGF0YSBzZWdtZW50IGluaXRpYWxpemVycyBmcm9tIGZsYXNoIHRvIFNSQU0gKi8KLSAgbW92cwlyMSwgIzAKLSAgYglMb29wQ29weURhdGFJbml0CisgIGxkciByMCwgPV9zZGF0YQorICBsZHIgcjEsID1fZWRhdGEKKyAgbGRyIHIyLCA9X3NpZGF0YQorICBtb3ZzIHIzLCAjMAorICBiIExvb3BDb3B5RGF0YUluaXQKIAogQ29weURhdGFJbml0OgotCWxkcglyMywgPV9zaWRhdGEKLQlsZHIJcjMsIFtyMywgcjFdCi0Jc3RyCXIzLCBbcjAsIHIxXQotCWFkZHMJcjEsIHIxLCAjNAorICBsZHIgcjQsIFtyMiwgcjNdCisgIHN0ciByNCwgW3IwLCByM10KKyAgYWRkcyByMywgcjMsICM0CiAKIExvb3BDb3B5RGF0YUluaXQ6Ci0JbGRyCXIwLCA9X3NkYXRhCi0JbGRyCXIzLCA9X2VkYXRhCi0JYWRkcwlyMiwgcjAsIHIxCi0JY21wCXIyLCByMwotCWJjYwlDb3B5RGF0YUluaXQKLQlsZHIJcjIsID1fc2JzcwotCWIJTG9vcEZpbGxaZXJvYnNzCisgIGFkZHMgcjQsIHIwLCByMworICBjbXAgcjQsIHIxCisgIGJjYyBDb3B5RGF0YUluaXQKKyAgCiAvKiBaZXJvIGZpbGwgdGhlIGJzcyBzZWdtZW50LiAqLworICBsZHIgcjIsID1fc2JzcworICBsZHIgcjQsID1fZWJzcworICBtb3ZzIHIzLCAjMAorICBiIExvb3BGaWxsWmVyb2JzcworCiBGaWxsWmVyb2JzczoKLQltb3ZzCXIzLCAjMAotCXN0cglyMywgW3IyXSwgIzQKKyAgc3RyICByMywgW3IyXQorICBhZGRzIHIyLCByMiwgIzQKIAogTG9vcEZpbGxaZXJvYnNzOgotCWxkcglyMywgPSBfZWJzcwotCWNtcAlyMiwgcjMKLQliY2MJRmlsbFplcm9ic3MKKyAgY21wIHIyLCByNAorICBiY2MgRmlsbFplcm9ic3MKIAogLyogQ2FsbCBzdGF0aWMgY29uc3RydWN0b3JzICovCiAgICAgYmwgX19saWJjX2luaXRfYXJyYXkKQEAgLTQ3Myw0ICs0NzUsNCBAQAogCQogCS53ZWFrCUkyQzRfRVJfSVJRSGFuZGxlcgogCS50aHVtYl9zZXQgSTJDNF9FUl9JUlFIYW5kbGVyLERlZmF1bHRfSGFuZGxlcgkKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDYyeHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDYyeHgucwppbmRleCAyZmY4NTkzLi40ZjM5ZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQ2Mnh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0NjJ4eC5zCkBAIC0xNSwxMyArMTUsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTY2LDMyICs2NSwzNSBAQAogICAgIGJsICBTeXN0ZW1Jbml0CiAKIC8qIENvcHkgdGhlIGRhdGEgc2VnbWVudCBpbml0aWFsaXplcnMgZnJvbSBmbGFzaCB0byBTUkFNICovCi0gIG1vdnMJcjEsICMwCi0gIGIJTG9vcENvcHlEYXRhSW5pdAorICBsZHIgcjAsID1fc2RhdGEKKyAgbGRyIHIxLCA9X2VkYXRhCisgIGxkciByMiwgPV9zaWRhdGEKKyAgbW92cyByMywgIzAKKyAgYiBMb29wQ29weURhdGFJbml0CiAKIENvcHlEYXRhSW5pdDoKLQlsZHIJcjMsID1fc2lkYXRhCi0JbGRyCXIzLCBbcjMsIHIxXQotCXN0cglyMywgW3IwLCByMV0KLQlhZGRzCXIxLCByMSwgIzQKKyAgbGRyIHI0LCBbcjIsIHIzXQorICBzdHIgcjQsIFtyMCwgcjNdCisgIGFkZHMgcjMsIHIzLCAjNAogCiBMb29wQ29weURhdGFJbml0OgotCWxkcglyMCwgPV9zZGF0YQotCWxkcglyMywgPV9lZGF0YQotCWFkZHMJcjIsIHIwLCByMQotCWNtcAlyMiwgcjMKLQliY2MJQ29weURhdGFJbml0Ci0JbGRyCXIyLCA9X3Nic3MKLQliCUxvb3BGaWxsWmVyb2JzcworICBhZGRzIHI0LCByMCwgcjMKKyAgY21wIHI0LCByMQorICBiY2MgQ29weURhdGFJbml0CisgIAogLyogWmVybyBmaWxsIHRoZSBic3Mgc2VnbWVudC4gKi8KKyAgbGRyIHIyLCA9X3Nic3MKKyAgbGRyIHI0LCA9X2Vic3MKKyAgbW92cyByMywgIzAKKyAgYiBMb29wRmlsbFplcm9ic3MKKwogRmlsbFplcm9ic3M6Ci0JbW92cwlyMywgIzAKLQlzdHIJcjMsIFtyMl0sICM0CisgIHN0ciAgcjMsIFtyMl0KKyAgYWRkcyByMiwgcjIsICM0CiAKIExvb3BGaWxsWmVyb2JzczoKLQlsZHIJcjMsID0gX2Vic3MKLQljbXAJcjIsIHIzCi0JYmNjCUZpbGxaZXJvYnNzCisgIGNtcCByMiwgcjQKKyAgYmNjIEZpbGxaZXJvYnNzCiAKIC8qIENhbGwgc3RhdGljIGNvbnN0cnVjdG9ycyAqLwogICAgIGJsIF9fbGliY19pbml0X2FycmF5CkBAIC00NzYsNCArNDc4LDQgQEAKIAkKIAkud2VhawlJMkM0X0VSX0lSUUhhbmRsZXIKIAkudGh1bWJfc2V0IEkyQzRfRVJfSVJRSGFuZGxlcixEZWZhdWx0X0hhbmRsZXIJCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQ3MXh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQ3MXh4LnMKaW5kZXggYzljNjhjMy4uNmFkMDAyZiAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0NzF4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDcxeHgucwpAQCAtMTUsMTMgKzE1LDEyIEBACiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC02NiwzMiArNjUsMzUgQEAKICAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwotICBtb3ZzCXIxLCAjMAotICBiCUxvb3BDb3B5RGF0YUluaXQKKyAgbGRyIHIwLCA9X3NkYXRhCisgIGxkciByMSwgPV9lZGF0YQorICBsZHIgcjIsID1fc2lkYXRhCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcENvcHlEYXRhSW5pdAogCiBDb3B5RGF0YUluaXQ6Ci0JbGRyCXIzLCA9X3NpZGF0YQotCWxkcglyMywgW3IzLCByMV0KLQlzdHIJcjMsIFtyMCwgcjFdCi0JYWRkcwlyMSwgcjEsICM0CisgIGxkciByNCwgW3IyLCByM10KKyAgc3RyIHI0LCBbcjAsIHIzXQorICBhZGRzIHIzLCByMywgIzQKIAogTG9vcENvcHlEYXRhSW5pdDoKLQlsZHIJcjAsID1fc2RhdGEKLQlsZHIJcjMsID1fZWRhdGEKLQlhZGRzCXIyLCByMCwgcjEKLQljbXAJcjIsIHIzCi0JYmNjCUNvcHlEYXRhSW5pdAotCWxkcglyMiwgPV9zYnNzCi0JYglMb29wRmlsbFplcm9ic3MKKyAgYWRkcyByNCwgcjAsIHIzCisgIGNtcCByNCwgcjEKKyAgYmNjIENvcHlEYXRhSW5pdAorICAKIC8qIFplcm8gZmlsbCB0aGUgYnNzIHNlZ21lbnQuICovCisgIGxkciByMiwgPV9zYnNzCisgIGxkciByNCwgPV9lYnNzCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcEZpbGxaZXJvYnNzCisKIEZpbGxaZXJvYnNzOgotCW1vdnMJcjMsICMwCi0Jc3RyCXIzLCBbcjJdLCAjNAorICBzdHIgIHIzLCBbcjJdCisgIGFkZHMgcjIsIHIyLCAjNAogCiBMb29wRmlsbFplcm9ic3M6Ci0JbGRyCXIzLCA9IF9lYnNzCi0JY21wCXIyLCByMwotCWJjYwlGaWxsWmVyb2JzcworICBjbXAgcjIsIHI0CisgIGJjYyBGaWxsWmVyb2JzcwogCiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQpAQCAtNTAwLDQgKzUwMiw0IEBACiAJCiAJLndlYWsJRlBVX0lSUUhhbmRsZXIKIAkudGh1bWJfc2V0IEZQVV9JUlFIYW5kbGVyLERlZmF1bHRfSGFuZGxlcgotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0NzV4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0NzV4eC5zCmluZGV4IDVlNDBiOWMuLmYwMGVmY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDc1eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQ3NXh4LnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNjYsMzIgKzY1LDM1IEBACiAgICAgYmwgIFN5c3RlbUluaXQKIAogLyogQ29weSB0aGUgZGF0YSBzZWdtZW50IGluaXRpYWxpemVycyBmcm9tIGZsYXNoIHRvIFNSQU0gKi8KLSAgbW92cwlyMSwgIzAKLSAgYglMb29wQ29weURhdGFJbml0CisgIGxkciByMCwgPV9zZGF0YQorICBsZHIgcjEsID1fZWRhdGEKKyAgbGRyIHIyLCA9X3NpZGF0YQorICBtb3ZzIHIzLCAjMAorICBiIExvb3BDb3B5RGF0YUluaXQKIAogQ29weURhdGFJbml0OgotCWxkcglyMywgPV9zaWRhdGEKLQlsZHIJcjMsIFtyMywgcjFdCi0Jc3RyCXIzLCBbcjAsIHIxXQotCWFkZHMJcjEsIHIxLCAjNAorICBsZHIgcjQsIFtyMiwgcjNdCisgIHN0ciByNCwgW3IwLCByM10KKyAgYWRkcyByMywgcjMsICM0CiAKIExvb3BDb3B5RGF0YUluaXQ6Ci0JbGRyCXIwLCA9X3NkYXRhCi0JbGRyCXIzLCA9X2VkYXRhCi0JYWRkcwlyMiwgcjAsIHIxCi0JY21wCXIyLCByMwotCWJjYwlDb3B5RGF0YUluaXQKLQlsZHIJcjIsID1fc2JzcwotCWIJTG9vcEZpbGxaZXJvYnNzCisgIGFkZHMgcjQsIHIwLCByMworICBjbXAgcjQsIHIxCisgIGJjYyBDb3B5RGF0YUluaXQKKyAgCiAvKiBaZXJvIGZpbGwgdGhlIGJzcyBzZWdtZW50LiAqLworICBsZHIgcjIsID1fc2JzcworICBsZHIgcjQsID1fZWJzcworICBtb3ZzIHIzLCAjMAorICBiIExvb3BGaWxsWmVyb2JzcworCiBGaWxsWmVyb2JzczoKLQltb3ZzCXIzLCAjMAotCXN0cglyMywgW3IyXSwgIzQKKyAgc3RyICByMywgW3IyXQorICBhZGRzIHIyLCByMiwgIzQKIAogTG9vcEZpbGxaZXJvYnNzOgotCWxkcglyMywgPSBfZWJzcwotCWNtcAlyMiwgcjMKLQliY2MJRmlsbFplcm9ic3MKKyAgY21wIHIyLCByNAorICBiY2MgRmlsbFplcm9ic3MKIAogLyogQ2FsbCBzdGF0aWMgY29uc3RydWN0b3JzICovCiAgICAgYmwgX19saWJjX2luaXRfYXJyYXkKQEAgLTUwMyw0ICs1MDUsNCBAQAogCQogCS53ZWFrCUZQVV9JUlFIYW5kbGVyCiAJLnRodW1iX3NldCBGUFVfSVJRSGFuZGxlcixEZWZhdWx0X0hhbmRsZXIKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDc2eHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDc2eHgucwppbmRleCBmMDc2ZmFjLi40NWI2ZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQ3Nnh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0NzZ4eC5zCkBAIC0xNSwxMyArMTUsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTY2LDMyICs2NSwzNSBAQAogICAgIGJsICBTeXN0ZW1Jbml0CiAKIC8qIENvcHkgdGhlIGRhdGEgc2VnbWVudCBpbml0aWFsaXplcnMgZnJvbSBmbGFzaCB0byBTUkFNICovCi0gIG1vdnMJcjEsICMwCi0gIGIJTG9vcENvcHlEYXRhSW5pdAorICBsZHIgcjAsID1fc2RhdGEKKyAgbGRyIHIxLCA9X2VkYXRhCisgIGxkciByMiwgPV9zaWRhdGEKKyAgbW92cyByMywgIzAKKyAgYiBMb29wQ29weURhdGFJbml0CiAKIENvcHlEYXRhSW5pdDoKLQlsZHIJcjMsID1fc2lkYXRhCi0JbGRyCXIzLCBbcjMsIHIxXQotCXN0cglyMywgW3IwLCByMV0KLQlhZGRzCXIxLCByMSwgIzQKKyAgbGRyIHI0LCBbcjIsIHIzXQorICBzdHIgcjQsIFtyMCwgcjNdCisgIGFkZHMgcjMsIHIzLCAjNAogCiBMb29wQ29weURhdGFJbml0OgotCWxkcglyMCwgPV9zZGF0YQotCWxkcglyMywgPV9lZGF0YQotCWFkZHMJcjIsIHIwLCByMQotCWNtcAlyMiwgcjMKLQliY2MJQ29weURhdGFJbml0Ci0JbGRyCXIyLCA9X3Nic3MKLQliCUxvb3BGaWxsWmVyb2JzcworICBhZGRzIHI0LCByMCwgcjMKKyAgY21wIHI0LCByMQorICBiY2MgQ29weURhdGFJbml0CisgIAogLyogWmVybyBmaWxsIHRoZSBic3Mgc2VnbWVudC4gKi8KKyAgbGRyIHIyLCA9X3Nic3MKKyAgbGRyIHI0LCA9X2Vic3MKKyAgbW92cyByMywgIzAKKyAgYiBMb29wRmlsbFplcm9ic3MKKwogRmlsbFplcm9ic3M6Ci0JbW92cwlyMywgIzAKLQlzdHIJcjMsIFtyMl0sICM0CisgIHN0ciAgcjMsIFtyMl0KKyAgYWRkcyByMiwgcjIsICM0CiAKIExvb3BGaWxsWmVyb2JzczoKLQlsZHIJcjMsID0gX2Vic3MKLQljbXAJcjIsIHIzCi0JYmNjCUZpbGxaZXJvYnNzCisgIGNtcCByMiwgcjQKKyAgYmNjIEZpbGxaZXJvYnNzCiAKIC8qIENhbGwgc3RhdGljIGNvbnN0cnVjdG9ycyAqLwogICAgIGJsIF9fbGliY19pbml0X2FycmF5CkBAIC01MDYsNCArNTA4LDQgQEAKIAkKIAkud2VhawlGUFVfSVJRSGFuZGxlcgogCS50aHVtYl9zZXQgRlBVX0lSUUhhbmRsZXIsRGVmYXVsdF9IYW5kbGVyCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQ4NXh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQ4NXh4LnMKaW5kZXggYzk0NGQ3Yy4uM2FjYmZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0ODV4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDg1eHgucwpAQCAtMTUsMTMgKzE1LDEyIEBACiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC02NiwzMiArNjUsMzUgQEAKICAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwotICBtb3ZzCXIxLCAjMAotICBiCUxvb3BDb3B5RGF0YUluaXQKKyAgbGRyIHIwLCA9X3NkYXRhCisgIGxkciByMSwgPV9lZGF0YQorICBsZHIgcjIsID1fc2lkYXRhCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcENvcHlEYXRhSW5pdAogCiBDb3B5RGF0YUluaXQ6Ci0JbGRyCXIzLCA9X3NpZGF0YQotCWxkcglyMywgW3IzLCByMV0KLQlzdHIJcjMsIFtyMCwgcjFdCi0JYWRkcwlyMSwgcjEsICM0CisgIGxkciByNCwgW3IyLCByM10KKyAgc3RyIHI0LCBbcjAsIHIzXQorICBhZGRzIHIzLCByMywgIzQKIAogTG9vcENvcHlEYXRhSW5pdDoKLQlsZHIJcjAsID1fc2RhdGEKLQlsZHIJcjMsID1fZWRhdGEKLQlhZGRzCXIyLCByMCwgcjEKLQljbXAJcjIsIHIzCi0JYmNjCUNvcHlEYXRhSW5pdAotCWxkcglyMiwgPV9zYnNzCi0JYglMb29wRmlsbFplcm9ic3MKKyAgYWRkcyByNCwgcjAsIHIzCisgIGNtcCByNCwgcjEKKyAgYmNjIENvcHlEYXRhSW5pdAorICAKIC8qIFplcm8gZmlsbCB0aGUgYnNzIHNlZ21lbnQuICovCisgIGxkciByMiwgPV9zYnNzCisgIGxkciByNCwgPV9lYnNzCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcEZpbGxaZXJvYnNzCisKIEZpbGxaZXJvYnNzOgotCW1vdnMJcjMsICMwCi0Jc3RyCXIzLCBbcjJdLCAjNAorICBzdHIgIHIzLCBbcjJdCisgIGFkZHMgcjIsIHIyLCAjNAogCiBMb29wRmlsbFplcm9ic3M6Ci0JbGRyCXIzLCA9IF9lYnNzCi0JY21wCXIyLCByMwotCWJjYwlGaWxsWmVyb2JzcworICBjbXAgcjIsIHI0CisgIGJjYyBGaWxsWmVyb2JzcwogCiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQpAQCAtNTA2LDQgKzUwOCw0IEBACiAJCiAJLndlYWsJRlBVX0lSUUhhbmRsZXIKIAkudGh1bWJfc2V0IEZQVV9JUlFIYW5kbGVyLERlZmF1bHRfSGFuZGxlcgotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0ODZ4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0ODZ4eC5zCmluZGV4IDBlN2Y5YjYuLjU0OWM0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDg2eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQ4Nnh4LnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNjYsMzIgKzY1LDM1IEBACiAgICAgYmwgIFN5c3RlbUluaXQKIAogLyogQ29weSB0aGUgZGF0YSBzZWdtZW50IGluaXRpYWxpemVycyBmcm9tIGZsYXNoIHRvIFNSQU0gKi8KLSAgbW92cwlyMSwgIzAKLSAgYglMb29wQ29weURhdGFJbml0CisgIGxkciByMCwgPV9zZGF0YQorICBsZHIgcjEsID1fZWRhdGEKKyAgbGRyIHIyLCA9X3NpZGF0YQorICBtb3ZzIHIzLCAjMAorICBiIExvb3BDb3B5RGF0YUluaXQKIAogQ29weURhdGFJbml0OgotCWxkcglyMywgPV9zaWRhdGEKLQlsZHIJcjMsIFtyMywgcjFdCi0Jc3RyCXIzLCBbcjAsIHIxXQotCWFkZHMJcjEsIHIxLCAjNAorICBsZHIgcjQsIFtyMiwgcjNdCisgIHN0ciByNCwgW3IwLCByM10KKyAgYWRkcyByMywgcjMsICM0CiAKIExvb3BDb3B5RGF0YUluaXQ6Ci0JbGRyCXIwLCA9X3NkYXRhCi0JbGRyCXIzLCA9X2VkYXRhCi0JYWRkcwlyMiwgcjAsIHIxCi0JY21wCXIyLCByMwotCWJjYwlDb3B5RGF0YUluaXQKLQlsZHIJcjIsID1fc2JzcwotCWIJTG9vcEZpbGxaZXJvYnNzCisgIGFkZHMgcjQsIHIwLCByMworICBjbXAgcjQsIHIxCisgIGJjYyBDb3B5RGF0YUluaXQKKyAgCiAvKiBaZXJvIGZpbGwgdGhlIGJzcyBzZWdtZW50LiAqLworICBsZHIgcjIsID1fc2JzcworICBsZHIgcjQsID1fZWJzcworICBtb3ZzIHIzLCAjMAorICBiIExvb3BGaWxsWmVyb2JzcworCiBGaWxsWmVyb2JzczoKLQltb3ZzCXIzLCAjMAotCXN0cglyMywgW3IyXSwgIzQKKyAgc3RyICByMywgW3IyXQorICBhZGRzIHIyLCByMiwgIzQKIAogTG9vcEZpbGxaZXJvYnNzOgotCWxkcglyMywgPSBfZWJzcwotCWNtcAlyMiwgcjMKLQliY2MJRmlsbFplcm9ic3MKKyAgY21wIHIyLCByNAorICBiY2MgRmlsbFplcm9ic3MKIAogLyogQ2FsbCBzdGF0aWMgY29uc3RydWN0b3JzICovCiAgICAgYmwgX19saWJjX2luaXRfYXJyYXkKQEAgLTUwOSw0ICs1MTEsNCBAQAogCQogCS53ZWFrCUZQVV9JUlFIYW5kbGVyCiAJLnRodW1iX3NldCBGUFVfSVJRSGFuZGxlcixEZWZhdWx0X0hhbmRsZXIKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDk2eHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNDk2eHgucwppbmRleCAzNWJkMGZiLi40Y2JkMDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDQ5Nnh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0OTZ4eC5zCkBAIC0xNSwxMyArMTUsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTY2LDMyICs2NSwzNSBAQAogICAgIGJsICBTeXN0ZW1Jbml0CiAKIC8qIENvcHkgdGhlIGRhdGEgc2VnbWVudCBpbml0aWFsaXplcnMgZnJvbSBmbGFzaCB0byBTUkFNICovCi0gIG1vdnMJcjEsICMwCi0gIGIJTG9vcENvcHlEYXRhSW5pdAorICBsZHIgcjAsID1fc2RhdGEKKyAgbGRyIHIxLCA9X2VkYXRhCisgIGxkciByMiwgPV9zaWRhdGEKKyAgbW92cyByMywgIzAKKyAgYiBMb29wQ29weURhdGFJbml0CiAKIENvcHlEYXRhSW5pdDoKLQlsZHIJcjMsID1fc2lkYXRhCi0JbGRyCXIzLCBbcjMsIHIxXQotCXN0cglyMywgW3IwLCByMV0KLQlhZGRzCXIxLCByMSwgIzQKKyAgbGRyIHI0LCBbcjIsIHIzXQorICBzdHIgcjQsIFtyMCwgcjNdCisgIGFkZHMgcjMsIHIzLCAjNAogCiBMb29wQ29weURhdGFJbml0OgotCWxkcglyMCwgPV9zZGF0YQotCWxkcglyMywgPV9lZGF0YQotCWFkZHMJcjIsIHIwLCByMQotCWNtcAlyMiwgcjMKLQliY2MJQ29weURhdGFJbml0Ci0JbGRyCXIyLCA9X3Nic3MKLQliCUxvb3BGaWxsWmVyb2JzcworICBhZGRzIHI0LCByMCwgcjMKKyAgY21wIHI0LCByMQorICBiY2MgQ29weURhdGFJbml0CisgIAogLyogWmVybyBmaWxsIHRoZSBic3Mgc2VnbWVudC4gKi8KKyAgbGRyIHIyLCA9X3Nic3MKKyAgbGRyIHI0LCA9X2Vic3MKKyAgbW92cyByMywgIzAKKyAgYiBMb29wRmlsbFplcm9ic3MKKwogRmlsbFplcm9ic3M6Ci0JbW92cwlyMywgIzAKLQlzdHIJcjMsIFtyMl0sICM0CisgIHN0ciAgcjMsIFtyMl0KKyAgYWRkcyByMiwgcjIsICM0CiAKIExvb3BGaWxsWmVyb2JzczoKLQlsZHIJcjMsID0gX2Vic3MKLQljbXAJcjIsIHIzCi0JYmNjCUZpbGxaZXJvYnNzCisgIGNtcCByMiwgcjQKKyAgYmNjIEZpbGxaZXJvYnNzCiAKIC8qIENhbGwgc3RhdGljIGNvbnN0cnVjdG9ycyAqLwogICAgIGJsIF9fbGliY19pbml0X2FycmF5CkBAIC01NDIsNCArNTQ0LDQgQEAKIAkKIAkud2VhawlETUEyRF9JUlFIYW5kbGVyCiAJLnRodW1iX3NldCBGUFVfSVJRSGFuZGxlcixEZWZhdWx0X0hhbmRsZXIgICAgCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDRhNnh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDRhNnh4LnMKaW5kZXggN2JlYjg1OC4uYjVhZjBjZSAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0YTZ4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNGE2eHgucwpAQCAtMTUsMTMgKzE1LDEyIEBACiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC02NiwzMiArNjUsMzUgQEAKICAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwotICBtb3ZzCXIxLCAjMAotICBiCUxvb3BDb3B5RGF0YUluaXQKKyAgbGRyIHIwLCA9X3NkYXRhCisgIGxkciByMSwgPV9lZGF0YQorICBsZHIgcjIsID1fc2lkYXRhCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcENvcHlEYXRhSW5pdAogCiBDb3B5RGF0YUluaXQ6Ci0JbGRyCXIzLCA9X3NpZGF0YQotCWxkcglyMywgW3IzLCByMV0KLQlzdHIJcjMsIFtyMCwgcjFdCi0JYWRkcwlyMSwgcjEsICM0CisgIGxkciByNCwgW3IyLCByM10KKyAgc3RyIHI0LCBbcjAsIHIzXQorICBhZGRzIHIzLCByMywgIzQKIAogTG9vcENvcHlEYXRhSW5pdDoKLQlsZHIJcjAsID1fc2RhdGEKLQlsZHIJcjMsID1fZWRhdGEKLQlhZGRzCXIyLCByMCwgcjEKLQljbXAJcjIsIHIzCi0JYmNjCUNvcHlEYXRhSW5pdAotCWxkcglyMiwgPV9zYnNzCi0JYglMb29wRmlsbFplcm9ic3MKKyAgYWRkcyByNCwgcjAsIHIzCisgIGNtcCByNCwgcjEKKyAgYmNjIENvcHlEYXRhSW5pdAorICAKIC8qIFplcm8gZmlsbCB0aGUgYnNzIHNlZ21lbnQuICovCisgIGxkciByMiwgPV9zYnNzCisgIGxkciByNCwgPV9lYnNzCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcEZpbGxaZXJvYnNzCisKIEZpbGxaZXJvYnNzOgotCW1vdnMJcjMsICMwCi0Jc3RyCXIzLCBbcjJdLCAjNAorICBzdHIgIHIzLCBbcjJdCisgIGFkZHMgcjIsIHIyLCAjNAogCiBMb29wRmlsbFplcm9ic3M6Ci0JbGRyCXIzLCA9IF9lYnNzCi0JY21wCXIyLCByMwotCWJjYwlGaWxsWmVyb2JzcworICBjbXAgcjIsIHI0CisgIGJjYyBGaWxsWmVyb2JzcwogCiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQpAQCAtNTQ1LDQgKzU0Nyw0IEBACiAJCiAJLndlYWsJRE1BMkRfSVJRSGFuZGxlcgogCS50aHVtYl9zZXQgRE1BMkRfSVJRSGFuZGxlcixEZWZhdWx0X0hhbmRsZXIgICAgCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDRwNXh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDRwNXh4LnMKaW5kZXggNDBmOTlhYy4uYTgxZTdjZiAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0cDV4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNHA1eHgucwpAQCAtMTUsMTMgKzE1LDEyIEBACiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTkgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC02NiwzMiArNjUsMzUgQEAKICAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwotICBtb3ZzCXIxLCAjMAotICBiCUxvb3BDb3B5RGF0YUluaXQKKyAgbGRyIHIwLCA9X3NkYXRhCisgIGxkciByMSwgPV9lZGF0YQorICBsZHIgcjIsID1fc2lkYXRhCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcENvcHlEYXRhSW5pdAogCiBDb3B5RGF0YUluaXQ6Ci0JbGRyCXIzLCA9X3NpZGF0YQotCWxkcglyMywgW3IzLCByMV0KLQlzdHIJcjMsIFtyMCwgcjFdCi0JYWRkcwlyMSwgcjEsICM0CisgIGxkciByNCwgW3IyLCByM10KKyAgc3RyIHI0LCBbcjAsIHIzXQorICBhZGRzIHIzLCByMywgIzQKIAogTG9vcENvcHlEYXRhSW5pdDoKLQlsZHIJcjAsID1fc2RhdGEKLQlsZHIJcjMsID1fZWRhdGEKLQlhZGRzCXIyLCByMCwgcjEKLQljbXAJcjIsIHIzCi0JYmNjCUNvcHlEYXRhSW5pdAotCWxkcglyMiwgPV9zYnNzCi0JYglMb29wRmlsbFplcm9ic3MKKyAgYWRkcyByNCwgcjAsIHIzCisgIGNtcCByNCwgcjEKKyAgYmNjIENvcHlEYXRhSW5pdAorICAKIC8qIFplcm8gZmlsbCB0aGUgYnNzIHNlZ21lbnQuICovCisgIGxkciByMiwgPV9zYnNzCisgIGxkciByNCwgPV9lYnNzCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcEZpbGxaZXJvYnNzCisKIEZpbGxaZXJvYnNzOgotCW1vdnMJcjMsICMwCi0Jc3RyCXIzLCBbcjJdLCAjNAorICBzdHIgIHIzLCBbcjJdCisgIGFkZHMgcjIsIHIyLCAjNAogCiBMb29wRmlsbFplcm9ic3M6Ci0JbGRyCXIzLCA9IF9lYnNzCi0JY21wCXIyLCByMwotCWJjYwlGaWxsWmVyb2JzcworICBjbXAgcjIsIHI0CisgIGJjYyBGaWxsWmVyb2JzcwogCiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQpAQCAtNTM0LDQgKzUzNiw0IEBACiAKIAkud2VhawlETUFNVVgxX09WUl9JUlFIYW5kbGVyCiAJLnRodW1iX3NldCBETUFNVVgxX09WUl9JUlFIYW5kbGVyLERlZmF1bHRfSGFuZGxlcgotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0cTV4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0cTV4eC5zCmluZGV4IDljMTJkYmUuLjUzZTg1YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNHE1eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDRxNXh4LnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE5IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNjYsMzIgKzY1LDM1IEBACiAgICAgYmwgIFN5c3RlbUluaXQKIAogLyogQ29weSB0aGUgZGF0YSBzZWdtZW50IGluaXRpYWxpemVycyBmcm9tIGZsYXNoIHRvIFNSQU0gKi8KLSAgbW92cwlyMSwgIzAKLSAgYglMb29wQ29weURhdGFJbml0CisgIGxkciByMCwgPV9zZGF0YQorICBsZHIgcjEsID1fZWRhdGEKKyAgbGRyIHIyLCA9X3NpZGF0YQorICBtb3ZzIHIzLCAjMAorICBiIExvb3BDb3B5RGF0YUluaXQKIAogQ29weURhdGFJbml0OgotCWxkcglyMywgPV9zaWRhdGEKLQlsZHIJcjMsIFtyMywgcjFdCi0Jc3RyCXIzLCBbcjAsIHIxXQotCWFkZHMJcjEsIHIxLCAjNAorICBsZHIgcjQsIFtyMiwgcjNdCisgIHN0ciByNCwgW3IwLCByM10KKyAgYWRkcyByMywgcjMsICM0CiAKIExvb3BDb3B5RGF0YUluaXQ6Ci0JbGRyCXIwLCA9X3NkYXRhCi0JbGRyCXIzLCA9X2VkYXRhCi0JYWRkcwlyMiwgcjAsIHIxCi0JY21wCXIyLCByMwotCWJjYwlDb3B5RGF0YUluaXQKLQlsZHIJcjIsID1fc2JzcwotCWIJTG9vcEZpbGxaZXJvYnNzCisgIGFkZHMgcjQsIHIwLCByMworICBjbXAgcjQsIHIxCisgIGJjYyBDb3B5RGF0YUluaXQKKyAgCiAvKiBaZXJvIGZpbGwgdGhlIGJzcyBzZWdtZW50LiAqLworICBsZHIgcjIsID1fc2JzcworICBsZHIgcjQsID1fZWJzcworICBtb3ZzIHIzLCAjMAorICBiIExvb3BGaWxsWmVyb2JzcworCiBGaWxsWmVyb2JzczoKLQltb3ZzCXIzLCAjMAotCXN0cglyMywgW3IyXSwgIzQKKyAgc3RyICByMywgW3IyXQorICBhZGRzIHIyLCByMiwgIzQKIAogTG9vcEZpbGxaZXJvYnNzOgotCWxkcglyMywgPSBfZWJzcwotCWNtcAlyMiwgcjMKLQliY2MJRmlsbFplcm9ic3MKKyAgY21wIHIyLCByNAorICBiY2MgRmlsbFplcm9ic3MKIAogLyogQ2FsbCBzdGF0aWMgY29uc3RydWN0b3JzICovCiAgICAgYmwgX19saWJjX2luaXRfYXJyYXkKQEAgLTU0MCw0ICs1NDIsNCBAQAogCiAJLndlYWsJRE1BTVVYMV9PVlJfSVJRSGFuZGxlcgogCS50aHVtYl9zZXQgRE1BTVVYMV9PVlJfSVJRSGFuZGxlcixEZWZhdWx0X0hhbmRsZXIKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNHI1eHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNHI1eHgucwppbmRleCBlMGFkNDIzLi4wMTExNGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDRyNXh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0cjV4eC5zCkBAIC0xNSwxMyArMTUsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTY2LDMyICs2NSwzNSBAQAogICAgIGJsICBTeXN0ZW1Jbml0CiAKIC8qIENvcHkgdGhlIGRhdGEgc2VnbWVudCBpbml0aWFsaXplcnMgZnJvbSBmbGFzaCB0byBTUkFNICovCi0gIG1vdnMJcjEsICMwCi0gIGIJTG9vcENvcHlEYXRhSW5pdAorICBsZHIgcjAsID1fc2RhdGEKKyAgbGRyIHIxLCA9X2VkYXRhCisgIGxkciByMiwgPV9zaWRhdGEKKyAgbW92cyByMywgIzAKKyAgYiBMb29wQ29weURhdGFJbml0CiAKIENvcHlEYXRhSW5pdDoKLQlsZHIJcjMsID1fc2lkYXRhCi0JbGRyCXIzLCBbcjMsIHIxXQotCXN0cglyMywgW3IwLCByMV0KLQlhZGRzCXIxLCByMSwgIzQKKyAgbGRyIHI0LCBbcjIsIHIzXQorICBzdHIgcjQsIFtyMCwgcjNdCisgIGFkZHMgcjMsIHIzLCAjNAogCiBMb29wQ29weURhdGFJbml0OgotCWxkcglyMCwgPV9zZGF0YQotCWxkcglyMywgPV9lZGF0YQotCWFkZHMJcjIsIHIwLCByMQotCWNtcAlyMiwgcjMKLQliY2MJQ29weURhdGFJbml0Ci0JbGRyCXIyLCA9X3Nic3MKLQliCUxvb3BGaWxsWmVyb2JzcworICBhZGRzIHI0LCByMCwgcjMKKyAgY21wIHI0LCByMQorICBiY2MgQ29weURhdGFJbml0CisgIAogLyogWmVybyBmaWxsIHRoZSBic3Mgc2VnbWVudC4gKi8KKyAgbGRyIHIyLCA9X3Nic3MKKyAgbGRyIHI0LCA9X2Vic3MKKyAgbW92cyByMywgIzAKKyAgYiBMb29wRmlsbFplcm9ic3MKKwogRmlsbFplcm9ic3M6Ci0JbW92cwlyMywgIzAKLQlzdHIJcjMsIFtyMl0sICM0CisgIHN0ciAgcjMsIFtyMl0KKyAgYWRkcyByMiwgcjIsICM0CiAKIExvb3BGaWxsWmVyb2JzczoKLQlsZHIJcjMsID0gX2Vic3MKLQljbXAJcjIsIHIzCi0JYmNjCUZpbGxaZXJvYnNzCisgIGNtcCByMiwgcjQKKyAgYmNjIEZpbGxaZXJvYnNzCiAKIC8qIENhbGwgc3RhdGljIGNvbnN0cnVjdG9ycyAqLwogICAgIGJsIF9fbGliY19pbml0X2FycmF5CkBAIC01NDAsNCArNTQyLDQgQEAKIAkKIAkud2VhawlETUFNVVgxX09WUl9JUlFIYW5kbGVyCiAJLnRodW1iX3NldCBETUFNVVgxX09WUl9JUlFIYW5kbGVyLERlZmF1bHRfSGFuZGxlcgotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0cjd4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0cjd4eC5zCmluZGV4IDRmZTNjMzUuLjJkOWRjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNHI3eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDRyN3h4LnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNjYsMzIgKzY1LDM1IEBACiAgICAgYmwgIFN5c3RlbUluaXQKIAogLyogQ29weSB0aGUgZGF0YSBzZWdtZW50IGluaXRpYWxpemVycyBmcm9tIGZsYXNoIHRvIFNSQU0gKi8KLSAgbW92cwlyMSwgIzAKLSAgYglMb29wQ29weURhdGFJbml0CisgIGxkciByMCwgPV9zZGF0YQorICBsZHIgcjEsID1fZWRhdGEKKyAgbGRyIHIyLCA9X3NpZGF0YQorICBtb3ZzIHIzLCAjMAorICBiIExvb3BDb3B5RGF0YUluaXQKIAogQ29weURhdGFJbml0OgotCWxkcglyMywgPV9zaWRhdGEKLQlsZHIJcjMsIFtyMywgcjFdCi0Jc3RyCXIzLCBbcjAsIHIxXQotCWFkZHMJcjEsIHIxLCAjNAorICBsZHIgcjQsIFtyMiwgcjNdCisgIHN0ciByNCwgW3IwLCByM10KKyAgYWRkcyByMywgcjMsICM0CiAKIExvb3BDb3B5RGF0YUluaXQ6Ci0JbGRyCXIwLCA9X3NkYXRhCi0JbGRyCXIzLCA9X2VkYXRhCi0JYWRkcwlyMiwgcjAsIHIxCi0JY21wCXIyLCByMwotCWJjYwlDb3B5RGF0YUluaXQKLQlsZHIJcjIsID1fc2JzcwotCWIJTG9vcEZpbGxaZXJvYnNzCisgIGFkZHMgcjQsIHIwLCByMworICBjbXAgcjQsIHIxCisgIGJjYyBDb3B5RGF0YUluaXQKKyAgCiAvKiBaZXJvIGZpbGwgdGhlIGJzcyBzZWdtZW50LiAqLworICBsZHIgcjIsID1fc2JzcworICBsZHIgcjQsID1fZWJzcworICBtb3ZzIHIzLCAjMAorICBiIExvb3BGaWxsWmVyb2JzcworCiBGaWxsWmVyb2JzczoKLQltb3ZzCXIzLCAjMAotCXN0cglyMywgW3IyXSwgIzQKKyAgc3RyICByMywgW3IyXQorICBhZGRzIHIyLCByMiwgIzQKIAogTG9vcEZpbGxaZXJvYnNzOgotCWxkcglyMywgPSBfZWJzcwotCWNtcAlyMiwgcjMKLQliY2MJRmlsbFplcm9ic3MKKyAgY21wIHIyLCByNAorICBiY2MgRmlsbFplcm9ic3MKIAogLyogQ2FsbCBzdGF0aWMgY29uc3RydWN0b3JzICovCiAgICAgYmwgX19saWJjX2luaXRfYXJyYXkKQEAgLTU0MCw0ICs1NDIsNCBAQAogCQogCS53ZWFrCURNQU1VWDFfT1ZSX0lSUUhhbmRsZXIKIAkudGh1bWJfc2V0IERNQU1VWDFfT1ZSX0lSUUhhbmRsZXIsRGVmYXVsdF9IYW5kbGVyCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDRyOXh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDRyOXh4LnMKaW5kZXggMjA1NzQ4NC4uMDBkNDg0NSAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0cjl4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNHI5eHgucwpAQCAtMTUsMTMgKzE1LDEyIEBACiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC02NiwzMiArNjUsMzUgQEAKICAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwotICBtb3ZzCXIxLCAjMAotICBiCUxvb3BDb3B5RGF0YUluaXQKKyAgbGRyIHIwLCA9X3NkYXRhCisgIGxkciByMSwgPV9lZGF0YQorICBsZHIgcjIsID1fc2lkYXRhCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcENvcHlEYXRhSW5pdAogCiBDb3B5RGF0YUluaXQ6Ci0JbGRyCXIzLCA9X3NpZGF0YQotCWxkcglyMywgW3IzLCByMV0KLQlzdHIJcjMsIFtyMCwgcjFdCi0JYWRkcwlyMSwgcjEsICM0CisgIGxkciByNCwgW3IyLCByM10KKyAgc3RyIHI0LCBbcjAsIHIzXQorICBhZGRzIHIzLCByMywgIzQKIAogTG9vcENvcHlEYXRhSW5pdDoKLQlsZHIJcjAsID1fc2RhdGEKLQlsZHIJcjMsID1fZWRhdGEKLQlhZGRzCXIyLCByMCwgcjEKLQljbXAJcjIsIHIzCi0JYmNjCUNvcHlEYXRhSW5pdAotCWxkcglyMiwgPV9zYnNzCi0JYglMb29wRmlsbFplcm9ic3MKKyAgYWRkcyByNCwgcjAsIHIzCisgIGNtcCByNCwgcjEKKyAgYmNjIENvcHlEYXRhSW5pdAorICAKIC8qIFplcm8gZmlsbCB0aGUgYnNzIHNlZ21lbnQuICovCisgIGxkciByMiwgPV9zYnNzCisgIGxkciByNCwgPV9lYnNzCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcEZpbGxaZXJvYnNzCisKIEZpbGxaZXJvYnNzOgotCW1vdnMJcjMsICMwCi0Jc3RyCXIzLCBbcjJdLCAjNAorICBzdHIgIHIzLCBbcjJdCisgIGFkZHMgcjIsIHIyLCAjNAogCiBMb29wRmlsbFplcm9ic3M6Ci0JbGRyCXIzLCA9IF9lYnNzCi0JY21wCXIyLCByMwotCWJjYwlGaWxsWmVyb2JzcworICBjbXAgcjIsIHI0CisgIGJjYyBGaWxsWmVyb2JzcwogCiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQpAQCAtNTQzLDQgKzU0NSw0IEBACiAJCiAJLndlYWsJRE1BTVVYMV9PVlJfSVJRSGFuZGxlcgogCS50aHVtYl9zZXQgRE1BTVVYMV9PVlJfSVJRSGFuZGxlcixEZWZhdWx0X0hhbmRsZXIKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNHM1eHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNHM1eHgucwppbmRleCA3ZjMzMTk3Li44MGRkYzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDRzNXh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0czV4eC5zCkBAIC0xNSwxMyArMTUsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTY2LDMyICs2NSwzNSBAQAogICAgIGJsICBTeXN0ZW1Jbml0CiAKIC8qIENvcHkgdGhlIGRhdGEgc2VnbWVudCBpbml0aWFsaXplcnMgZnJvbSBmbGFzaCB0byBTUkFNICovCi0gIG1vdnMJcjEsICMwCi0gIGIJTG9vcENvcHlEYXRhSW5pdAorICBsZHIgcjAsID1fc2RhdGEKKyAgbGRyIHIxLCA9X2VkYXRhCisgIGxkciByMiwgPV9zaWRhdGEKKyAgbW92cyByMywgIzAKKyAgYiBMb29wQ29weURhdGFJbml0CiAKIENvcHlEYXRhSW5pdDoKLQlsZHIJcjMsID1fc2lkYXRhCi0JbGRyCXIzLCBbcjMsIHIxXQotCXN0cglyMywgW3IwLCByMV0KLQlhZGRzCXIxLCByMSwgIzQKKyAgbGRyIHI0LCBbcjIsIHIzXQorICBzdHIgcjQsIFtyMCwgcjNdCisgIGFkZHMgcjMsIHIzLCAjNAogCiBMb29wQ29weURhdGFJbml0OgotCWxkcglyMCwgPV9zZGF0YQotCWxkcglyMywgPV9lZGF0YQotCWFkZHMJcjIsIHIwLCByMQotCWNtcAlyMiwgcjMKLQliY2MJQ29weURhdGFJbml0Ci0JbGRyCXIyLCA9X3Nic3MKLQliCUxvb3BGaWxsWmVyb2JzcworICBhZGRzIHI0LCByMCwgcjMKKyAgY21wIHI0LCByMQorICBiY2MgQ29weURhdGFJbml0CisgIAogLyogWmVybyBmaWxsIHRoZSBic3Mgc2VnbWVudC4gKi8KKyAgbGRyIHIyLCA9X3Nic3MKKyAgbGRyIHI0LCA9X2Vic3MKKyAgbW92cyByMywgIzAKKyAgYiBMb29wRmlsbFplcm9ic3MKKwogRmlsbFplcm9ic3M6Ci0JbW92cwlyMywgIzAKLQlzdHIJcjMsIFtyMl0sICM0CisgIHN0ciAgcjMsIFtyMl0KKyAgYWRkcyByMiwgcjIsICM0CiAKIExvb3BGaWxsWmVyb2JzczoKLQlsZHIJcjMsID0gX2Vic3MKLQljbXAJcjIsIHIzCi0JYmNjCUZpbGxaZXJvYnNzCisgIGNtcCByMiwgcjQKKyAgYmNjIEZpbGxaZXJvYnNzCiAKIC8qIENhbGwgc3RhdGljIGNvbnN0cnVjdG9ycyAqLwogICAgIGJsIF9fbGliY19pbml0X2FycmF5CkBAIC01NDMsNCArNTQ1LDQgQEAKIAkKIAkud2VhawlETUFNVVgxX09WUl9JUlFIYW5kbGVyCiAJLnRodW1iX3NldCBETUFNVVgxX09WUl9JUlFIYW5kbGVyLERlZmF1bHRfSGFuZGxlcgotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0czd4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0czd4eC5zCmluZGV4IGM0NmYxMzEuLmY2ZDhlMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNHM3eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDRzN3h4LnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNjYsMzIgKzY1LDM1IEBACiAgICAgYmwgIFN5c3RlbUluaXQKIAogLyogQ29weSB0aGUgZGF0YSBzZWdtZW50IGluaXRpYWxpemVycyBmcm9tIGZsYXNoIHRvIFNSQU0gKi8KLSAgbW92cwlyMSwgIzAKLSAgYglMb29wQ29weURhdGFJbml0CisgIGxkciByMCwgPV9zZGF0YQorICBsZHIgcjEsID1fZWRhdGEKKyAgbGRyIHIyLCA9X3NpZGF0YQorICBtb3ZzIHIzLCAjMAorICBiIExvb3BDb3B5RGF0YUluaXQKIAogQ29weURhdGFJbml0OgotCWxkcglyMywgPV9zaWRhdGEKLQlsZHIJcjMsIFtyMywgcjFdCi0Jc3RyCXIzLCBbcjAsIHIxXQotCWFkZHMJcjEsIHIxLCAjNAorICBsZHIgcjQsIFtyMiwgcjNdCisgIHN0ciByNCwgW3IwLCByM10KKyAgYWRkcyByMywgcjMsICM0CiAKIExvb3BDb3B5RGF0YUluaXQ6Ci0JbGRyCXIwLCA9X3NkYXRhCi0JbGRyCXIzLCA9X2VkYXRhCi0JYWRkcwlyMiwgcjAsIHIxCi0JY21wCXIyLCByMwotCWJjYwlDb3B5RGF0YUluaXQKLQlsZHIJcjIsID1fc2JzcwotCWIJTG9vcEZpbGxaZXJvYnNzCisgIGFkZHMgcjQsIHIwLCByMworICBjbXAgcjQsIHIxCisgIGJjYyBDb3B5RGF0YUluaXQKKyAgCiAvKiBaZXJvIGZpbGwgdGhlIGJzcyBzZWdtZW50LiAqLworICBsZHIgcjIsID1fc2JzcworICBsZHIgcjQsID1fZWJzcworICBtb3ZzIHIzLCAjMAorICBiIExvb3BGaWxsWmVyb2JzcworCiBGaWxsWmVyb2JzczoKLQltb3ZzCXIzLCAjMAotCXN0cglyMywgW3IyXSwgIzQKKyAgc3RyICByMywgW3IyXQorICBhZGRzIHIyLCByMiwgIzQKIAogTG9vcEZpbGxaZXJvYnNzOgotCWxkcglyMywgPSBfZWJzcwotCWNtcAlyMiwgcjMKLQliY2MJRmlsbFplcm9ic3MKKyAgY21wIHIyLCByNAorICBiY2MgRmlsbFplcm9ic3MKIAogLyogQ2FsbCBzdGF0aWMgY29uc3RydWN0b3JzICovCiAgICAgYmwgX19saWJjX2luaXRfYXJyYXkKQEAgLTU0Myw0ICs1NDUsNCBAQAogCQogCS53ZWFrCURNQU1VWDFfT1ZSX0lSUUhhbmRsZXIKIAkudGh1bWJfc2V0IERNQU1VWDFfT1ZSX0lSUUhhbmRsZXIsRGVmYXVsdF9IYW5kbGVyCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDRzOXh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMybDRzOXh4LnMKaW5kZXggZTQ2MzA4OS4uZDViN2MyMCAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmw0czl4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJsNHM5eHgucwpAQCAtMTUsMTMgKzE1LDEyIEBACiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC02NiwzMiArNjUsMzUgQEAKICAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwotICBtb3ZzCXIxLCAjMAotICBiCUxvb3BDb3B5RGF0YUluaXQKKyAgbGRyIHIwLCA9X3NkYXRhCisgIGxkciByMSwgPV9lZGF0YQorICBsZHIgcjIsID1fc2lkYXRhCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcENvcHlEYXRhSW5pdAogCiBDb3B5RGF0YUluaXQ6Ci0JbGRyCXIzLCA9X3NpZGF0YQotCWxkcglyMywgW3IzLCByMV0KLQlzdHIJcjMsIFtyMCwgcjFdCi0JYWRkcwlyMSwgcjEsICM0CisgIGxkciByNCwgW3IyLCByM10KKyAgc3RyIHI0LCBbcjAsIHIzXQorICBhZGRzIHIzLCByMywgIzQKIAogTG9vcENvcHlEYXRhSW5pdDoKLQlsZHIJcjAsID1fc2RhdGEKLQlsZHIJcjMsID1fZWRhdGEKLQlhZGRzCXIyLCByMCwgcjEKLQljbXAJcjIsIHIzCi0JYmNjCUNvcHlEYXRhSW5pdAotCWxkcglyMiwgPV9zYnNzCi0JYglMb29wRmlsbFplcm9ic3MKKyAgYWRkcyByNCwgcjAsIHIzCisgIGNtcCByNCwgcjEKKyAgYmNjIENvcHlEYXRhSW5pdAorICAKIC8qIFplcm8gZmlsbCB0aGUgYnNzIHNlZ21lbnQuICovCisgIGxkciByMiwgPV9zYnNzCisgIGxkciByNCwgPV9lYnNzCisgIG1vdnMgcjMsICMwCisgIGIgTG9vcEZpbGxaZXJvYnNzCisKIEZpbGxaZXJvYnNzOgotCW1vdnMJcjMsICMwCi0Jc3RyCXIzLCBbcjJdLCAjNAorICBzdHIgIHIzLCBbcjJdCisgIGFkZHMgcjIsIHIyLCAjNAogCiBMb29wRmlsbFplcm9ic3M6Ci0JbGRyCXIzLCA9IF9lYnNzCi0JY21wCXIyLCByMwotCWJjYwlGaWxsWmVyb2JzcworICBjbXAgcjIsIHI0CisgIGJjYyBGaWxsWmVyb2JzcwogCiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQpAQCAtNTQ2LDQgKzU0OCw0IEBACiAJCiAJLndlYWsJRE1BTVVYMV9PVlJfSVJRSGFuZGxlcgogCS50aHVtYl9zZXQgRE1BTVVYMV9PVlJfSVJRSGFuZGxlcixEZWZhdWx0X0hhbmRsZXIKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDEyeHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDEyeHgucwppbmRleCBiN2VjZjI0Li40ZWVlZmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQxMnh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0MTJ4eC5zCkBAIC0xMiwxNSArMTIsMTUgQEAKIDsqICAgICAgICAgICAgICAgICAgICAgIEFmdGVyIFJlc2V0IHRoZSBDb3J0ZXgtTTQgcHJvY2Vzc29yIGlzIGluIFRocmVhZCBtb2RlLAogOyogICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHkgaXMgUHJpdmlsZWdlZCwgYW5kIHRoZSBTdGFjayBpcyBzZXQgdG8gTWFpbi4KIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTggU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE4IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCi07KgorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KKzsKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7CiA7CkBAIC00OTQsNCArNDk0LDQgQEAKICAgICAgICAgQiBDUlNfSVJRSGFuZGxlcgogCiAgICAgICAgIEVORAotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0MjJ4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0MjJ4eC5zCmluZGV4IGQ0OTM0NmEuLmYwMzM5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDIyeHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQyMnh4LnMKQEAgLTEyLDE1ICsxMiwxNSBAQAogOyogICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgUmVzZXQgdGhlIENvcnRleC1NNCBwcm9jZXNzb3IgaXMgaW4gVGhyZWFkIG1vZGUsCiA7KiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eSBpcyBQcml2aWxlZ2VkLCBhbmQgdGhlIFN0YWNrIGlzIHNldCB0byBNYWluLgogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxOCBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTggU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKLTsqCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgorOwogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsKIDsKQEAgLTQ5OSw0ICs0OTksNCBAQAogICAgICAgICBCIENSU19JUlFIYW5kbGVyCiAKICAgICAgICAgRU5ECi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQzMXh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQzMXh4LnMKaW5kZXggMTg5MTdiMC4uMmQ3NTNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0MzF4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDMxeHgucwpAQCAtMTIsMTUgKzEyLDE1IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOwogOwpAQCAtNTM0LDQgKzUzNCw0IEBACiAgICAgICAgIEIgQ1JTX0lSUUhhbmRsZXIKIAogICAgICAgICBFTkQKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDMyeHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDMyeHgucwppbmRleCA3MzgyYzNlLi4zY2NhZTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQzMnh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0MzJ4eC5zCkBAIC0xMiwxNSArMTIsMTUgQEAKIDsqICAgICAgICAgICAgICAgICAgICAgIEFmdGVyIFJlc2V0IHRoZSBDb3J0ZXgtTTQgcHJvY2Vzc29yIGlzIGluIFRocmVhZCBtb2RlLAogOyogICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHkgaXMgUHJpdmlsZWdlZCwgYW5kIHRoZSBTdGFjayBpcyBzZXQgdG8gTWFpbi4KIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCi07KgorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KKzsKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7CiA7CkBAIC01MTQsNCArNTE0LDQgQEAKICAgICAgICAgQiBDUlNfSVJRSGFuZGxlcgogCiAgICAgICAgIEVORAotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0MzN4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0MzN4eC5zCmluZGV4IDE3NTFiMGEuLmRiZTgyZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDMzeHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQzM3h4LnMKQEAgLTEyLDE1ICsxMiwxNSBAQAogOyogICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgUmVzZXQgdGhlIENvcnRleC1NNCBwcm9jZXNzb3IgaXMgaW4gVGhyZWFkIG1vZGUsCiA7KiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eSBpcyBQcml2aWxlZ2VkLCBhbmQgdGhlIFN0YWNrIGlzIHNldCB0byBNYWluLgogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKLTsqCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgorOwogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsKIDsKQEAgLTU0NCw0ICs1NDQsNCBAQAogICAgICAgICBCIENSU19JUlFIYW5kbGVyCiAKICAgICAgICAgRU5ECi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQ0Mnh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQ0Mnh4LnMKaW5kZXggYWU2OTM1Yi4uZTFmN2QwZSAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0NDJ4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDQyeHgucwpAQCAtMTIsMTUgKzEyLDE1IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOwogOwpAQCAtNTE5LDQgKzUxOSw0IEBACiAgICAgICAgIEIgQ1JTX0lSUUhhbmRsZXIKIAogICAgICAgICBFTkQKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDQzeHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDQzeHgucwppbmRleCA0NWU1Zjg1Li5iY2MyYWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQ0M3h4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0NDN4eC5zCkBAIC0xMiwxNSArMTIsMTUgQEAKIDsqICAgICAgICAgICAgICAgICAgICAgIEFmdGVyIFJlc2V0IHRoZSBDb3J0ZXgtTTQgcHJvY2Vzc29yIGlzIGluIFRocmVhZCBtb2RlLAogOyogICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHkgaXMgUHJpdmlsZWdlZCwgYW5kIHRoZSBTdGFjayBpcyBzZXQgdG8gTWFpbi4KIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCi07KgorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KKzsKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7CiA7CkBAIC01NDksNCArNTQ5LDQgQEAKICAgICAgICAgQiBDUlNfSVJRSGFuZGxlcgogCiAgICAgICAgIEVORAotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0NTF4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0NTF4eC5zCmluZGV4IDdiZmM1ZTIuLmIxYzlmZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDUxeHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQ1MXh4LnMKQEAgLTEyLDE1ICsxMiwxNSBAQAogOyogICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgUmVzZXQgdGhlIENvcnRleC1NNCBwcm9jZXNzb3IgaXMgaW4gVGhyZWFkIG1vZGUsCiA7KiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eSBpcyBQcml2aWxlZ2VkLCBhbmQgdGhlIFN0YWNrIGlzIHNldCB0byBNYWluLgogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKLTsqCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgorOwogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsKIDsKQEAgLTU1Niw0ICs1NTYsNCBAQAogICAgICAgICBCIEkyQzRfRVJfSVJRSGFuZGxlcgogCiAgICAgICAgIEVORAotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0NTJ4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0NTJ4eC5zCmluZGV4IDU0YmM3NzguLmY2MjNkODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDUyeHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQ1Mnh4LnMKQEAgLTEyLDE1ICsxMiwxNSBAQAogOyogICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgUmVzZXQgdGhlIENvcnRleC1NNCBwcm9jZXNzb3IgaXMgaW4gVGhyZWFkIG1vZGUsCiA7KiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eSBpcyBQcml2aWxlZ2VkLCBhbmQgdGhlIFN0YWNrIGlzIHNldCB0byBNYWluLgogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKLTsqCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgorOwogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsKIDsKQEAgLTU2MSw0ICs1NjEsNCBAQAogICAgICAgICBCIEkyQzRfRVJfSVJRSGFuZGxlcgogCiAgICAgICAgIEVORAotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0NjJ4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0NjJ4eC5zCmluZGV4IDBiMDg2MzUuLjQyNmRlMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDYyeHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQ2Mnh4LnMKQEAgLTEyLDE1ICsxMiwxNSBAQAogOyogICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgUmVzZXQgdGhlIENvcnRleC1NNCBwcm9jZXNzb3IgaXMgaW4gVGhyZWFkIG1vZGUsCiA7KiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eSBpcyBQcml2aWxlZ2VkLCBhbmQgdGhlIFN0YWNrIGlzIHNldCB0byBNYWluLgogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKLTsqCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgorOwogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsKIDsKQEAgLTU2Niw0ICs1NjYsNCBAQAogICAgICAgICBCIEkyQzRfRVJfSVJRSGFuZGxlcgogCiAgICAgICAgIEVORAotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0NzF4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0NzF4eC5zCmluZGV4IDdiODhmMTIuLjg1Mjk0NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDcxeHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQ3MXh4LnMKQEAgLTEyLDE1ICsxMiwxNSBAQAogOyogICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgUmVzZXQgdGhlIENvcnRleC1NNCBwcm9jZXNzb3IgaXMgaW4gVGhyZWFkIG1vZGUsCiA7KiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eSBpcyBQcml2aWxlZ2VkLCBhbmQgdGhlIFN0YWNrIGlzIHNldCB0byBNYWluLgogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKLTsqCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgorOwogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsKIDsKQEAgLTYwOCw0ICs2MDgsNCBAQAogICAgICAgICBCIEZQVV9JUlFIYW5kbGVyCiAKICAgICAgICAgRU5ECi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQ3NXh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQ3NXh4LnMKaW5kZXggYTZiOWQ0NS4uNTczZGIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0NzV4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDc1eHgucwpAQCAtMTIsMTUgKzEyLDE1IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOwogOwpAQCAtNjEzLDQgKzYxMyw0IEBACiAgICAgICAgIEIgRlBVX0lSUUhhbmRsZXIKIAogICAgICAgICBFTkQKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDc2eHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDc2eHgucwppbmRleCBhZWVkOWM0Li4zMTM2MjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQ3Nnh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0NzZ4eC5zCkBAIC0xMiwxNSArMTIsMTUgQEAKIDsqICAgICAgICAgICAgICAgICAgICAgIEFmdGVyIFJlc2V0IHRoZSBDb3J0ZXgtTTQgcHJvY2Vzc29yIGlzIGluIFRocmVhZCBtb2RlLAogOyogICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHkgaXMgUHJpdmlsZWdlZCwgYW5kIHRoZSBTdGFjayBpcyBzZXQgdG8gTWFpbi4KIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCi07KgorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KKzsKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7CiA7CkBAIC02MTgsNCArNjE4LDQgQEAKICAgICAgICAgQiBGUFVfSVJRSGFuZGxlcgogCiAgICAgICAgIEVORAotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0ODV4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0ODV4eC5zCmluZGV4IDkwYzgzMzEuLjY0ODE5NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDg1eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQ4NXh4LnMKQEAgLTEyLDE1ICsxMiwxNSBAQAogOyogICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgUmVzZXQgdGhlIENvcnRleC1NNCBwcm9jZXNzb3IgaXMgaW4gVGhyZWFkIG1vZGUsCiA7KiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eSBpcyBQcml2aWxlZ2VkLCBhbmQgdGhlIFN0YWNrIGlzIHNldCB0byBNYWluLgogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKLTsqCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgorOwogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsKIDsKQEAgLTYxOCw0ICs2MTgsNCBAQAogICAgICAgICBCIEZQVV9JUlFIYW5kbGVyCiAKICAgICAgICAgRU5ECi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQ4Nnh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQ4Nnh4LnMKaW5kZXggNjFkNDM3My4uNWQzYzAzZiAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0ODZ4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDg2eHgucwpAQCAtMTIsMTUgKzEyLDE1IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOwogOwpAQCAtNjIzLDQgKzYyMyw0IEBACiAgICAgICAgIEIgRlBVX0lSUUhhbmRsZXIKIAogICAgICAgICBFTkQKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDk2eHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNDk2eHgucwppbmRleCAxNDljZWNjLi45YmEzMzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDQ5Nnh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0OTZ4eC5zCkBAIC0xMiwxNSArMTIsMTUgQEAKIDsqICAgICAgICAgICAgICAgICAgICAgIEFmdGVyIFJlc2V0IHRoZSBDb3J0ZXgtTTQgcHJvY2Vzc29yIGlzIGluIFRocmVhZCBtb2RlLAogOyogICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHkgaXMgUHJpdmlsZWdlZCwgYW5kIHRoZSBTdGFjayBpcyBzZXQgdG8gTWFpbi4KIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTcgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCi07KgorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KKzsKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7CiA7CkBAIC02NzIsNCArNjcyLDQgQEAKICAgICAgICAgQiBETUEyRF9JUlFIYW5kbGVyICAgICAgICAgICAgICAgICAgCiAKICAgICAgICAgRU5ECi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDRhNnh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDRhNnh4LnMKaW5kZXggYjFmZjQxNC4uZTNiNDhlOCAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0YTZ4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNGE2eHgucwpAQCAtMTIsMTUgKzEyLDE1IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOwogOwpAQCAtNjc3LDQgKzY3Nyw0IEBACiAgICAgICAgIEIgRE1BMkRfSVJRSGFuZGxlciAgICAgICAgICAgICAgICAgIAogCiAgICAgICAgIEVORAotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0cDV4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0cDV4eC5zCmluZGV4IDQwY2U4NmQuLjk5M2U3OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNHA1eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDRwNXh4LnMKQEAgLTEyLDE1ICsxMiwxNSBAQAogOyogICAgICAgICAgICAgICAgICAgICAgQWZ0ZXIgUmVzZXQgdGhlIENvcnRleC1NNCBwcm9jZXNzb3IgaXMgaW4gVGhyZWFkIG1vZGUsCiA7KiAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eSBpcyBQcml2aWxlZ2VkLCBhbmQgdGhlIFN0YWNrIGlzIHNldCB0byBNYWluLgogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxOSBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTkgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0FwYWNoZS0yLjAKLTsqCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgorOwogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsKIDsKQEAgLTY1Niw0ICs2NTYsNCBAQAogICAgICAgICBCIERNQU1VWDFfT1ZSX0lSUUhhbmRsZXIKIAogICAgICAgICBFTkQKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNHE1eHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNHE1eHgucwppbmRleCBkZTkxNTZmLi5hYjBkNjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDRxNXh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0cTV4eC5zCkBAIC0xMiwxNSArMTIsMTUgQEAKIDsqICAgICAgICAgICAgICAgICAgICAgIEFmdGVyIFJlc2V0IHRoZSBDb3J0ZXgtTTQgcHJvY2Vzc29yIGlzIGluIFRocmVhZCBtb2RlLAogOyogICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHkgaXMgUHJpdmlsZWdlZCwgYW5kIHRoZSBTdGFjayBpcyBzZXQgdG8gTWFpbi4KIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTkgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE5IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCi07KgorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KKzsKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7CiA7CkBAIC02NjYsNCArNjY2LDQgQEAKICAgICAgICAgQiBETUFNVVgxX09WUl9JUlFIYW5kbGVyCiAKICAgICAgICAgRU5ECi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDRyNXh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDRyNXh4LnMKaW5kZXggNTdlZTNjMi4uMTAyNWZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0cjV4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNHI1eHgucwpAQCAtMTIsMTUgKzEyLDE1IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOwogOwpAQCAtNjY2LDQgKzY2Niw0IEBACiAgICAgICAgIEIgRE1BTVVYMV9PVlJfSVJRSGFuZGxlcgogICAgICAgICAKICAgICAgICAgRU5ECi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDRyN3h4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDRyN3h4LnMKaW5kZXggY2Q5ZmNkZS4uMjc5ZDJmZiAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0cjd4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNHI3eHgucwpAQCAtMTIsMTUgKzEyLDE1IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOwogOwpAQCAtNjY2LDQgKzY2Niw0IEBACiAgICAgICAgIEIgRE1BTVVYMV9PVlJfSVJRSGFuZGxlcgogICAgICAgICAKICAgICAgICAgRU5ECi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDRyOXh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDRyOXh4LnMKaW5kZXggZmYzOWFiMi4uNzUxYjc2OSAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0cjl4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNHI5eHgucwpAQCAtMTIsMTUgKzEyLDE1IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOwogOwpAQCAtNjcxLDQgKzY3MSw0IEBACiAgICAgICAgIEIgRE1BTVVYMV9PVlJfSVJRSGFuZGxlcgogICAgICAgICAKICAgICAgICAgRU5ECi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDRzNXh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDRzNXh4LnMKaW5kZXggMDBkMDk2Ny4uM2ZmNGRkYyAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0czV4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNHM1eHgucwpAQCAtMTIsMTUgKzEyLDE1IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOwogOwpAQCAtNjcxLDQgKzY3MSw0IEBACiAgICAgICAgIEIgRE1BTVVYMV9PVlJfSVJRSGFuZGxlcgogICAgICAgICAKICAgICAgICAgRU5ECi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDRzN3h4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDRzN3h4LnMKaW5kZXggYzhiMDVkYi4uZGRjMDE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0czd4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNHM3eHgucwpAQCAtMTIsMTUgKzEyLDE1IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOwogOwpAQCAtNjcxLDQgKzY3MSw0IEBACiAgICAgICAgIEIgRE1BTVVYMV9PVlJfSVJRSGFuZGxlcgogICAgICAgICAKICAgICAgICAgRU5ECi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDRzOXh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMybDRzOXh4LnMKaW5kZXggYjliMDVjMS4uNmRjZTg2MyAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmw0czl4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJsNHM5eHgucwpAQCAtMTIsMTUgKzEyLDE1IEBACiA7KiAgICAgICAgICAgICAgICAgICAgICBBZnRlciBSZXNldCB0aGUgQ29ydGV4LU00IHByb2Nlc3NvciBpcyBpbiBUaHJlYWQgbW9kZSwKIDsqICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5IGlzIFByaXZpbGVnZWQsIGFuZCB0aGUgU3RhY2sgaXMgc2V0IHRvIE1haW4uCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE3IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAotOyoKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCis7CiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOwogOwpAQCAtNjc2LDQgKzY3Niw0IEBACiAgICAgICAgIEIgRE1BTVVYMV9PVlJfSVJRSGFuZGxlcgogICAgICAgICAKICAgICAgICAgRU5ECi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL3N5c3RlbV9zdG0zMmw0eHguYyBiL1NvdXJjZS9UZW1wbGF0ZXMvc3lzdGVtX3N0bTMybDR4eC5jCmluZGV4IGYxNWZlNTcuLmJlOWNmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvc3lzdGVtX3N0bTMybDR4eC5jCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvc3lzdGVtX3N0bTMybDR4eC5jCkBAIC02NiwxMyArNjYsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hlLTIuMAorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTIwNiwyNSArMjA1LDYgQEAKICNpZiAoX19GUFVfUFJFU0VOVCA9PSAxKSAmJiAoX19GUFVfVVNFRCA9PSAxKQogICBTQ0ItPkNQQUNSIHw9ICgoM1VMIDw8IDIwVSl8KDNVTCA8PCAyMlUpKTsgIC8qIHNldCBDUDEwIGFuZCBDUDExIEZ1bGwgQWNjZXNzICovCiAjZW5kaWYKLQotICAvKiBSZXNldCB0aGUgUkNDIGNsb2NrIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGRlZmF1bHQgcmVzZXQgc3RhdGUgLS0tLS0tLS0tLS0tKi8KLSAgLyogU2V0IE1TSU9OIGJpdCAqLwotICBSQ0MtPkNSIHw9IFJDQ19DUl9NU0lPTjsKLQotICAvKiBSZXNldCBDRkdSIHJlZ2lzdGVyICovCi0gIFJDQy0+Q0ZHUiA9IDB4MDAwMDAwMDBVOwotCi0gIC8qIFJlc2V0IEhTRU9OLCBDU1NPTiAsIEhTSU9OLCBhbmQgUExMT04gYml0cyAqLwotICBSQ0MtPkNSICY9IDB4RUFGNkZGRkZVOwotCi0gIC8qIFJlc2V0IFBMTENGR1IgcmVnaXN0ZXIgKi8KLSAgUkNDLT5QTExDRkdSID0gMHgwMDAwMTAwMFU7Ci0KLSAgLyogUmVzZXQgSFNFQllQIGJpdCAqLwotICBSQ0MtPkNSICY9IDB4RkZGQkZGRkZVOwotCi0gIC8qIERpc2FibGUgYWxsIGludGVycnVwdHMgKi8KLSAgUkNDLT5DSUVSID0gMHgwMDAwMDAwMFU7CiB9CiAKIC8qKgo=