ZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvQ09QWUlORy5NSVQgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL0NPUFlJTkcuTUlUCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiOTUwZGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL0NPUFlJTkcuTUlUCkBAIC0wLDAgKzEsMTcgQEAKK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgCitvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCAKK2luIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgCit0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIAorZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gCithbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IgCitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgCitBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIAorTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIAorVEhFIFNPRlRXQVJFLgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9SRUFETUUgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODQyMjc5Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9SRUFETUUKQEAgLTAsMCArMSw3MCBAQAorbWV0YS13ZWJzZXJ2ZXIKKz09PT09PT09PT09PT09CisKK1RoaXMgbGF5ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgYnVpbGRpbmcgd2ViIHNlcnZlcnMsIHdlYi1iYXNlZAorYXBwbGljYXRpb25zIGFuZCByZWxhdGVkIHNvZnR3YXJlLgorCisKKworRGVwZW5kZW5jaWVzCistLS0tLS0tLS0tLS0KKworVGhpcyBsYXllciBkZXBlbmRzIG9uOgorCitVUkk6IGdpdDovL2dpdGh1Yi5jb20vb3BlbmVtYmVkZGVkL29lLWNvcmUuZ2l0CitzdWJkaXJlY3Rvcnk6IG1ldGEKK2JyYW5jaDoga3JvZ290aCAKK3JldmlzaW9uOiBIRUFECisKK0ZvciBzb21lIHJlY2lwZXMsIHRoZSBtZXRhLW9lIGxheWVyIGlzIHJlcXVpcmVkOgorCitVUkk6IGdpdDovL2dpdGh1Yi5jb20vb3BlbmVtYmVkZGVkL21ldGEtb2UuZ2l0CitzdWJkaXJlY3Rvcnk6IG1ldGEtb2UKK2JyYW5jaDoga3JvZ290aCAKK3JldmlzaW9uOiBIRUFECisKKworCitMYXlvdXQKKy0tLS0tLQorCityZWNpcGVzLWh0dHBkLyAgICAgIFdlYiBzZXJ2ZXJzCityZWNpcGVzLXBocC8gICAgICAgIFBIUCBhcHBsaWNhdGlvbnMKK3JlY2lwZXMtc3VwcG9ydC8gICAgTWlzY2VsbGFuZW91cyBzdXBwb3J0IHJlY2lwZXMKK3JlY2lwZXMtd2ViYWRtaW4vICAgU3RhbmRhbG9uZSB3ZWIgYWRtaW5pc3RyYXRpb24gaW50ZXJmYWNlcworCisKK05vdGVzCistLS0tLQorCisqIFRoaXMgbGF5ZXIgdXNlZCB0byBwcm92aWRlIGEgbW9kcGhwIHJlY2lwZSB0aGF0IGJ1aWx0IG1vZF9waHAsIGJ1dAorICB0aGlzIGlzIG5vdyBidWlsdCBhcyBwYXJ0IG9mIHRoZSBwaHAgcmVjaXBlIGluIG1ldGEtb2UuIEhvd2V2ZXIsIHNpbmNlCisgIGFwYWNoZTIgaXMgcmVxdWlyZWQgdG8gYnVpbGQgbW9kX3BocCwgYW5kIGFwYWNoZTIgcmVjaXBlIGlzIGluIHRoaXMKKyAgbGF5ZXIgYW5kIHJlY2lwZXMgaW4gbWV0YS1vZSBjYW4ndCBkZXBlbmQgb24gaXQsIG1vZF9waHAgaXMgbm90IGJ1aWx0CisgIGJ5IGRlZmF1bHQuIElmIHlvdSBkbyB3aXNoIHRvIHVzZSBtb2RfcGhwLCB5b3UgbmVlZCB0byBhZGQgImFwYWNoZTIiCisgIHRvIHRoZSBQQUNLQUdFQ09ORklHIHZhbHVlIGZvciB0aGUgcGhwIHJlY2lwZSBpbiBvcmRlciB0byBlbmFibGUgaXQuCisgIFNlZSBoZXJlIGZvciBpbmZvIG9uIGhvdyB0byBkbyB0aGF0OgorCisgIGh0dHA6Ly93d3cueW9jdG9wcm9qZWN0Lm9yZy9kb2NzL2N1cnJlbnQvcmVmLW1hbnVhbC9yZWYtbWFudWFsLmh0bWwjdmFyLVBBQ0tBR0VDT05GSUcKKworCitNYWludGVuYW5jZQorLS0tLS0tLS0tLS0KK1NlbmQgcHVsbCByZXF1ZXN0cyB0byBvcGVuZW1iZWRkZWQtZGV2ZWxAbGlzdHMub3BlbmVtYmVkZGVkLm9yZyB3aXRoICdbbWV0YS1zeXN0ZW1kXVtrcm9nb3RoXScgaW4gdGhlIHN1YmplY3QnCisKK1doZW4gc2VuZGluZyBzaW5nbGUgcGF0Y2hlcywgcGxlYXNlIHVzZSBzb21ldGhpbmcgbGlrZToKKydnaXQgc2VuZC1lbWFpbCAtTSAtMSAtLXRvIG9wZW5lbWJlZGRlZC1kZXZlbEBsaXN0cy5vcGVuZW1iZWRkZWQub3JnIC0tc3ViamVjdC1wcmVmaXg9bWV0YS1zeXN0ZW1kXVtrcm9nb3RoXVtQQVRDSCcKKworCitrcm9nb3RoIEJyYW5jaCBNYWludGFpbmVyOgorQXJtaW4gS3VzdGVyIDxha3VzdGVyODA4QGdtYWlsLmNvbT4KKworTGljZW5zZQorLS0tLS0tLQorCitBbGwgbWV0YWRhdGEgaXMgTUlUIGxpY2Vuc2VkIHVubGVzcyBvdGhlcndpc2Ugc3RhdGVkLiBTb3VyY2UgY29kZSBpbmNsdWRlZAoraW4gdHJlZSBmb3IgaW5kaXZpZHVhbCByZWNpcGVzIGlzIHVuZGVyIHRoZSBMSUNFTlNFIHN0YXRlZCBpbiBlYWNoIHJlY2lwZQorKC5iYiBmaWxlKSB1bmxlc3Mgb3RoZXJ3aXNlIHN0YXRlZC4KKworVGhpcyBSRUFETUUgZG9jdW1lbnQgaXMgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL2NvbmYvbGF5ZXIuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvY29uZi9sYXllci5jb25mCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiNTA4YTgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL2NvbmYvbGF5ZXIuY29uZgpAQCAtMCwwICsxLDI0IEBACisjIExheWVyIGNvbmZpZ3VyYXRpb24gZm9yIG1ldGEtd2Vic2VydmVyIGxheWVyCisjIENvcHlyaWdodCAyMDEyIEludGVsIENvcnBvcmF0aW9uCisKKyMgV2UgaGF2ZSBhIGNvbmYgYW5kIGNsYXNzZXMgZGlyZWN0b3J5LCBhZGQgdG8gQkJQQVRICitCQlBBVEggLj0gIjoke0xBWUVSRElSfSIKKworIyBXZSBoYXZlIHZhcmlvdXMgcmVjaXBlLSogZGlyZWN0b3JpZXMsIGFkZCB0byBCQkZJTEVTCitCQkZJTEVTICs9ICIke0xBWUVSRElSfS9yZWNpcGVzLSovKi8qLmJiICR7TEFZRVJESVJ9L3JlY2lwZXMtKi8qLyouYmJhcHBlbmQiCisKK0JCRklMRV9DT0xMRUNUSU9OUyArPSAid2Vic2VydmVyIgorQkJGSUxFX1BBVFRFUk5fd2Vic2VydmVyIDo9ICJeJHtMQVlFUkRJUn0vIgorQkJGSUxFX1BSSU9SSVRZX3dlYnNlcnZlciA9ICI2IgorCisjIFRoaXMgc2hvdWxkIG9ubHkgYmUgaW5jcmVtZW50ZWQgb24gc2lnbmlmaWNhbnQgY2hhbmdlcyB0aGF0IHdpbGwKKyMgY2F1c2UgY29tcGF0aWJpbGl0eSBpc3N1ZXMgd2l0aCBvdGhlciBsYXllcnMKK0xBWUVSVkVSU0lPTl93ZWJzZXJ2ZXIgPSAiMSIKKworTEFZRVJERVBFTkRTX3dlYnNlcnZlciA9ICJjb3JlIgorCitMSUNFTlNFX1BBVEggKz0gIiR7TEFZRVJESVJ9L2xpY2Vuc2VzIgorCitTSUdHRU5fRVhDTFVERV9TQUZFX1JFQ0lQRV9ERVBTICs9ICIgXAorICBwaHBteWFkbWluLT5iYXNoIFwKKyIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvbGljZW5zZXMvT01MIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9saWNlbnNlcy9PTUwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U2YmRmZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvbGljZW5zZXMvT01MCkBAIC0wLDAgKzEsMjggQEAKK1RoaXMgRmFzdENHSSBhcHBsaWNhdGlvbiBsaWJyYXJ5IHNvdXJjZSBhbmQgb2JqZWN0IGNvZGUgKHRoZQorIlNvZnR3YXJlIikgYW5kIGl0cyBkb2N1bWVudGF0aW9uICh0aGUgIkRvY3VtZW50YXRpb24iKSBhcmUKK2NvcHlyaWdodGVkIGJ5IE9wZW4gTWFya2V0LCBJbmMgKCJPcGVuIE1hcmtldCIpLiAgVGhlIGZvbGxvd2luZyB0ZXJtcworYXBwbHkgdG8gYWxsIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgU29mdHdhcmUgYW5kIERvY3VtZW50YXRpb24KK3VubGVzcyBleHBsaWNpdGx5IGRpc2NsYWltZWQgaW4gaW5kaXZpZHVhbCBmaWxlcy4KKworT3BlbiBNYXJrZXQgcGVybWl0cyB5b3UgdG8gdXNlLCBjb3B5LCBtb2RpZnksIGRpc3RyaWJ1dGUsIGFuZCBsaWNlbnNlCit0aGlzIFNvZnR3YXJlIGFuZCB0aGUgRG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2UsIHByb3ZpZGVkIHRoYXQKK2V4aXN0aW5nIGNvcHlyaWdodCBub3RpY2VzIGFyZSByZXRhaW5lZCBpbiBhbGwgY29waWVzIGFuZCB0aGF0IHRoaXMKK25vdGljZSBpcyBpbmNsdWRlZCB2ZXJiYXRpbSBpbiBhbnkgZGlzdHJpYnV0aW9ucy4gIE5vIHdyaXR0ZW4KK2FncmVlbWVudCwgbGljZW5zZSwgb3Igcm95YWx0eSBmZWUgaXMgcmVxdWlyZWQgZm9yIGFueSBvZiB0aGUKK2F1dGhvcml6ZWQgdXNlcy4gIE1vZGlmaWNhdGlvbnMgdG8gdGhpcyBTb2Z0d2FyZSBhbmQgRG9jdW1lbnRhdGlvbiBtYXkKK2JlIGNvcHlyaWdodGVkIGJ5IHRoZWlyIGF1dGhvcnMgYW5kIG5lZWQgbm90IGZvbGxvdyB0aGUgbGljZW5zaW5nCit0ZXJtcyBkZXNjcmliZWQgaGVyZS4gIElmIG1vZGlmaWNhdGlvbnMgdG8gdGhpcyBTb2Z0d2FyZSBhbmQKK0RvY3VtZW50YXRpb24gaGF2ZSBuZXcgbGljZW5zaW5nIHRlcm1zLCB0aGUgbmV3IHRlcm1zIG11c3QgYmUgY2xlYXJseQoraW5kaWNhdGVkIG9uIHRoZSBmaXJzdCBwYWdlIG9mIGVhY2ggZmlsZSB3aGVyZSB0aGV5IGFwcGx5LgorCitPUEVOIE1BUktFVCBNQUtFUyBOTyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVFkgV0lUSCBSRVNQRUNUIFRPIFRIRQorU09GVFdBUkUgT1IgVEhFIERPQ1VNRU5UQVRJT04sIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gQU5ZCitXQVJSQU5UWSBPRiBNRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBJTgorTk8gRVZFTlQgU0hBTEwgT1BFTiBNQVJLRVQgQkUgTElBQkxFIFRPIFlPVSBPUiBBTlkgVEhJUkQgUEFSVFkgRk9SIEFOWQorREFNQUdFUyBBUklTSU5HIEZST00gT1IgUkVMQVRJTkcgVE8gVEhJUyBTT0ZUV0FSRSBPUiBUSEUKK0RPQ1VNRU5UQVRJT04sIElOQ0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgSU5ESVJFQ1QsIFNQRUNJQUwgT1IKK0NPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBTSU1JTEFSIERBTUFHRVMsIElOQ0xVRElORyBMT1NUIFBST0ZJVFMgT1IKK0xPU1QgREFUQSwgRVZFTiBJRiBPUEVOIE1BUktFVCBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorU1VDSCBEQU1BR0VTLiAgVEhFIFNPRlRXQVJFIEFORCBET0NVTUVOVEFUSU9OIEFSRSBQUk9WSURFRCAiQVMgSVMiLgorT1BFTiBNQVJLRVQgSEFTIE5PIExJQUJJTElUWSBJTiBDT05UUkFDVCwgVE9SVCwgTkVHTElHRU5DRSBPUgorT1RIRVJXSVNFIEFSSVNJTkcgT1VUIE9GIFRISVMgU09GVFdBUkUgT1IgVEhFIERPQ1VNRU5UQVRJT04uCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL2xpY2Vuc2VzL1hkZWJ1ZyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvbGljZW5zZXMvWGRlYnVnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjZGJmMDUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL2xpY2Vuc2VzL1hkZWJ1ZwpAQCAtMCwwICsxLDYwIEBACistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAKKyAgICAgICAgICAgICAgICAgVGhlIFhkZWJ1ZyBMaWNlbnNlLCB2ZXJzaW9uIDEuMDEKKyAgICAgICAgICAgICAoQmFzZWQgb24gIlRoZSBQSFAgTGljZW5zZSIsIHZlcnNpb24gMy4wKQorICAgQ29weXJpZ2h0IChjKSAyMDAzLTIwMTIgRGVyaWNrIFJldGhhbnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAKKworUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cittb2RpZmljYXRpb24sIGlzIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworYXJlIG1ldDoKKworICAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgCisgIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbgorICAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgICAgIGRpc3RyaWJ1dGlvbi4KKyAKKyAgMy4gVGhlIG5hbWUgIlhkZWJ1ZyIgbXVzdCBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAgICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIEZvcgorICAgICB3cml0dGVuIHBlcm1pc3Npb24sIHBsZWFzZSBjb250YWN0IGRlcmlja0B4ZGVidWcub3JnLgorICAKKyAgNC4gUHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgbWF5IG5vdCBiZSBjYWxsZWQgIlhkZWJ1ZyIsIG5vcgorICAgICBtYXkgIlhkZWJ1ZyIgYXBwZWFyIGluIHRoZWlyIG5hbWUsIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uCisgICAgIGZyb20gZGVyaWNrQHhkZWJ1Zy5vcmcuCisgCisgIDUuIERlcmljayBSZXRoYW5zIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZiB0aGUKKyAgICAgbGljZW5zZSBmcm9tIHRpbWUgdG8gdGltZS4gRWFjaCB2ZXJzaW9uIHdpbGwgYmUgZ2l2ZW4gYQorICAgICBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gIE9uY2UgY292ZXJlZCBjb2RlIGhhcyBiZWVuCisgICAgIHB1Ymxpc2hlZCB1bmRlciBhIHBhcnRpY3VsYXIgdmVyc2lvbiBvZiB0aGUgbGljZW5zZSwgeW91IG1heQorICAgICBhbHdheXMgY29udGludWUgdG8gdXNlIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGF0IHZlcnNpb24uIFlvdQorICAgICBtYXkgYWxzbyBjaG9vc2UgdG8gdXNlIHN1Y2ggY292ZXJlZCBjb2RlIHVuZGVyIHRoZSB0ZXJtcyBvZiBhbnkKKyAgICAgc3Vic2VxdWVudCB2ZXJzaW9uIG9mIHRoZSBsaWNlbnNlIHB1Ymxpc2hlZCBieSBEZXJpY2sgUmV0aGFucy4gTm8KKyAgICAgb25lIG90aGVyIHRoYW4gRGVyaWNrIFJldGhhbnMgaGFzIHRoZSByaWdodCB0byBtb2RpZnkgdGhlIHRlcm1zCisgICAgIGFwcGxpY2FibGUgdG8gY292ZXJlZCBjb2RlIGNyZWF0ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLgorCisgIDYuIFJlZGlzdHJpYnV0aW9ucyBvZiBhbnkgZm9ybSB3aGF0c29ldmVyIG11c3QgcmV0YWluIHRoZSBmb2xsb3dpbmcKKyAgICAgYWNrbm93bGVkZ21lbnQ6ICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgWGRlYnVnLCBmcmVlbHkgYXZhaWxhYmxlCisgICAgIGZyb20gPGh0dHA6Ly94ZGVidWcub3JnLz4iLgorCitUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIERFUklDSyBSRVRIQU5TIGBgQVMgSVMnJyBBTkQgQU5ZCitFWFBSRVNTRUQgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCitJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKK1BVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUEhQIERFVkVMT1BNRU5UIFRFQU0gT1IKK0lUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKK1NQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKK0xJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCitUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKK09GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoaXMgc29mdHdhcmUgY29uc2lzdHMgb2Ygdm9sdW50YXJ5IGNvbnRyaWJ1dGlvbnMgbWFkZSBieSBzb21lCitpbmRpdmlkdWFscyBvbiBiZWhhbGYgb2YgRGVyaWNrIFJldGhhbnMuCisKK0RlcmljayBSZXRoYW5zIGNhbiBiZSBjb250YWN0ZWQgdmlhIGUtbWFpbCBhdCBkZXJpY2tAeGRlYnVnLm9yZy4KKworRm9yIG1vcmUgaW5mb3JtYXRpb24gWGRlYnVnLCBwbGVhc2Ugc2VlIDxodHRwOi8veGRlYnVnLm9yZz4uCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlLW1vZC9hcGFjaGUtd2Vic29ja2V0X2dpdC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUtbW9kL2FwYWNoZS13ZWJzb2NrZXRfZ2l0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhMzMxMTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlLW1vZC9hcGFjaGUtd2Vic29ja2V0X2dpdC5iYgpAQCAtMCwwICsxLDMzIEBACitTVU1NQVJZID0gIldlYnNvY2tldCBtb2R1bGUgZm9yIEFwYWNoZSB3ZWIgc2VydmVyIgorREVTQ1JJUFRJT04gPSAiUHJvY2VzcyByZXF1ZXN0cyB1c2luZyB0aGUgV2ViU29ja2V0IHByb3RvY29sIChSRkMgNjQ1NSkiCitIT01FUEFHRSA9ICJodHRwczovL2dpdGh1Yi5jb20vamNoYW1waW8vJHtQTn0vIgorU0VDVElPTiA9ICJuZXQiCitMSUNFTlNFID0gIkFwYWNoZS0yLjAiCisKK2luaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCBwa2djb25maWcKKworREVQRU5EUyA9ICJhcGFjaGUyIGFwYWNoZTItbmF0aXZlIgorUkRFUEVORFNfJHtQTn0gKz0gImFwYWNoZTIiCisKKyMgT3JpZ2luYWwgKGdpdGh1Yi5jb20vZGlzY29ubmVjdC9hcGFjaGUtd2Vic29ja2V0KSBpcyBkZWFkIHNpbmNlIDIwMTIsIHRoZQorIyBmb3JrIGNvbnRhaW5zIHBhdGNoZXMgZnJvbSB0aGUgbW9kdWxlcyBNTCBhbmQgZml4ZXMgQ1ZFIGNvbXBsaWFuY2UgaXNzdWVzCitTUkNfVVJJID0gImdpdDovL2dpdGh1Yi5jb20vamNoYW1waW8vYXBhY2hlLXdlYnNvY2tldC5naXQiCisKK1NSQ1JFViA9ICJmNTIzMGQ4YzUyMGRjY2Y4NjMxZGE5NGJmOTBjMjNmM2MxMTAwZGNjIgorCitQViA9ICIwLjEuMSIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MmVlNDExMTJhNDRmZTcwMTRkY2UzM2UyNjQ2OGJhOTMiCisKK0VYVFJBX09FQ09ORiA9ICJBUEFDSEVDVEw9JHtTVEFHSU5HX0RJUl9UQVJHRVR9JHtzYmluZGlyfS9hcGFjaGVjdGwgXAorICAgICAgICAgICAgICAgIExJQlRPT0w9JHtTVEFHSU5HX0RJUl9UQVJHRVR9JHtiaW5kaXJfY3Jvc3NzY3JpcHRzfS8ke0hPU1RfU1lTfS1saWJ0b29sIgorCitkb19pbnN0YWxsKCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7bGliZGlyfS9hcGFjaGUyL21vZHVsZXMvCisgICAgaW5zdGFsbCAke0J9Ly5saWJzL21vZF93ZWJzb2NrZXQuc28gJHtEfSR7bGliZGlyfS9hcGFjaGUyL21vZHVsZXMvCit9CisKK0ZJTEVTXyR7UE59ICs9ICIgJHtsaWJkaXJ9L2FwYWNoZTIvbW9kdWxlcy8qICIKK0ZJTEVTXyR7UE59LWRiZyArPSAiICR7bGliZGlyfS9hcGFjaGUyL21vZHVsZXMvLmRlYnVnLyogIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi1uYXRpdmVfMi40LjIwLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi1uYXRpdmVfMi40LjIwLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5MzJkMTIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyLW5hdGl2ZV8yLjQuMjAuYmIKQEAgLTAsMCArMSw0NSBAQAorREVTQ1JJUFRJT04gPSAiVGhlIEFwYWNoZSBIVFRQIFNlcnZlciBpcyBhIHBvd2VyZnVsLCBlZmZpY2llbnQsIGFuZCBcCitleHRlbnNpYmxlIHdlYiBzZXJ2ZXIuIgorU1VNTUFSWSA9ICJBcGFjaGUgSFRUUCBTZXJ2ZXIiCitIT01FUEFHRSA9ICJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iCitERVBFTkRTID0gImV4cGF0LW5hdGl2ZSBwY3JlLW5hdGl2ZSBhcHItbmF0aXZlIGFwci11dGlsLW5hdGl2ZSIKK1NFQ1RJT04gPSAibmV0IgorTElDRU5TRSA9ICJBcGFjaGUtMi4wIgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcgbmF0aXZlCisKK1NSQ19VUkkgPSAiaHR0cDovL3d3dy5hcGFjaGUub3JnL2Rpc3QvaHR0cGQvaHR0cGQtJHtQVn0udGFyLmJ6MiBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLWNvbmZpZ3VyZS11c2UtcGtnLWNvbmZpZy1mb3ItUENSRS1kZXRlY3Rpb24ucGF0Y2ggXAorICAgICAgICAgICIKKworUyA9ICIke1dPUktESVJ9L2h0dHBkLSR7UFZ9IgorCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1kYmZmNWEyYjU0MmZhNTg4NTQ0NTViZjFhMGI5NGI4MyIKK1NSQ19VUklbbWQ1c3VtXSA9ICIzZmY0ZjAwZWUwNTFjZjVkNTMwNGI0N2IxYmM0MThiOCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIwZTc2YTM3NWVkM2RiYWM2MzZmNTBhYzM5ZGU5NjZlY2U0NDM3NTFmZTRkNjIzOTJmOWEzNjBhMTlkOTRkMGRhIgorCitFWFRSQV9PRUNPTkYgPSAiLS13aXRoLWFwcj0ke1NUQUdJTkdfQklORElSX0NST1NTfS9hcHItMS1jb25maWcgXAorICAgICAgICAgICAgICAgIC0td2l0aC1hcHItdXRpbD0ke1NUQUdJTkdfQklORElSX0NST1NTfS9hcHUtMS1jb25maWcgXAorICAgICAgICAgICAgICAgIC0tcHJlZml4PSR7cHJlZml4fSAtLWRhdGFkaXI9JHtkYXRhZGlyfS9hcGFjaGUyIFwKKyAgICAgICAgICAgICAgICIKKworZG9faW5zdGFsbCAoKSB7CisgICAgaW5zdGFsbCAtZCAke0R9JHtiaW5kaXJ9ICR7RH0ke2xpYmRpcn0KKyAgICBjcCBzZXJ2ZXIvZ2VuX3Rlc3RfY2hhciAke0R9JHtiaW5kaXJ9CisgICAgaW5zdGFsbCAtbSA3NTUgc3VwcG9ydC9hcHhzICR7RH0ke2JpbmRpcn0vCisgICAgaW5zdGFsbCAtbSA3NTUgaHR0cGQgJHtEfSR7YmluZGlyfS8KKyAgICBpbnN0YWxsIC1kICR7RH0ke2RhdGFkaXJ9L2FwYWNoZTIvYnVpbGQKKyAgICBjcCAke1N9L2J1aWxkLyoubWsgJHtEfSR7ZGF0YWRpcn0vYXBhY2hlMi9idWlsZAorICAgIGNwIGJ1aWxkLyoubWsgJHtEfSR7ZGF0YWRpcn0vYXBhY2hlMi9idWlsZAorICAgIGNwICR7U30vYnVpbGQvaW5zdGRzby5zaCAke0R9JHtkYXRhZGlyfS9hcGFjaGUyL2J1aWxkCisKKyAgICBpbnN0YWxsIC1kICR7RH0ke2luY2x1ZGVkaXJ9L2FwYWNoZTIKKyAgICBjcCAke1N9L2luY2x1ZGUvKiAke0R9JHtpbmNsdWRlZGlyfS9hcGFjaGUyCisgICAgY3AgaW5jbHVkZS8qICR7RH0ke2luY2x1ZGVkaXJ9L2FwYWNoZTIKKyAgICBjcCAke1N9L29zL3VuaXgvb3MuaCAke0R9JHtpbmNsdWRlZGlyfS9hcGFjaGUyCisgICAgY3AgJHtTfS9vcy91bml4L3VuaXhkLmggJHtEfSR7aW5jbHVkZWRpcn0vYXBhY2hlMgorCisgICAgY3Agc3VwcG9ydC9lbnZ2YXJzLXN0ZCAke0R9JHtiaW5kaXJ9L2VudnZhcnMKKyAgICBjaG1vZCA3NTUgJHtEfSR7YmluZGlyfS9lbnZ2YXJzCit9CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTIvYXBhY2hlLWNvbmZpZ3VyZV9wZXJsYmluLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi9hcGFjaGUtY29uZmlndXJlX3BlcmxiaW4ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzkwMjc5ZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTIvYXBhY2hlLWNvbmZpZ3VyZV9wZXJsYmluLnBhdGNoCkBAIC0wLDAgKzEsMjAgQEAKKyMgQXV0aG9yOiBlY2hvIDxmZWkuZ2VuZ0B3aW5kcml2ZXIuY29tPgorIyBEYXRlOiBBcHJpbCAyOCAyMDA5CisjIFN1bW1hcnk6Rml4IHBlcmwgaW5zdGFsbCBkaXJlY3RvcnkgdG8gL3Vzci9iaW4KKyMKKyMgVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQorCistLS0gYS9jb25maWd1cmUuaW4KKysrKyBiL2NvbmZpZ3VyZS5pbgorQEAgLTYzOCwxMCArNjM4LDcgQEAKKyBBQ19ERUZJTkVfVU5RVU9URUQoQVBBQ0hFX01QTV9ESVIsICIkTVBNX0RJUiIsCisgCVtMb2NhdGlvbiBvZiB0aGUgc291cmNlIGZvciB0aGUgY3VycmVudCBNUE1dKQorIAorLXBlcmxiaW49YCRhY19hdXhfZGlyL1ByaW50UGF0aCBwZXJsYAorLWlmIHRlc3QgIngkcGVybGJpbiIgPSAieCI7IHRoZW4KKy0gICAgcGVybGJpbj0iL3JlcGxhY2Uvd2l0aC9wYXRoL3RvL3BlcmwvaW50ZXJwcmV0ZXIiCistZmkKKytwZXJsYmluPScvdXNyL2Jpbi9wZXJsJworIEFDX1NVQlNUKHBlcmxiaW4pCisgCisgZG5sIElmIHdlIGFyZSBydW5uaW5nIG9uIEJTRC9PUywgd2UgbmVlZCB0byB1c2UgdGhlIEJTRCAuaW5jbHVkZSBzeW50YXguCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyL2FwYWNoZS1zc2wtbHRtYWluLXJwYXRoLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi9hcGFjaGUtc3NsLWx0bWFpbi1ycGF0aC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTNkYzUzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi9hcGFjaGUtc3NsLWx0bWFpbi1ycGF0aC5wYXRjaApAQCAtMCwwICsxLDg0IEBACisgYnVpbGQvbHRtYWluLnNoIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2J1aWxkL2x0bWFpbi5zaCBiL2J1aWxkL2x0bWFpbi5zaAoraW5kZXggNWVjYTRhZS4uODA1YjQ2MSAxMDA2NDQKKy0tLSBhL2J1aWxkL2x0bWFpbi5zaAorKysrIGIvYnVpbGQvbHRtYWluLnNoCitAQCAtNjk0NCw3ICs2OTQ0LDcgQEAgZnVuY19tb2RlX2xpbmsgKCkKKyAJZGlyPSRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQKKyAJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCisgCWNhc2UgJGRpciBpbgorLQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7CisrCT0qIHwgW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7OworIAkqKQorIAkgIGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKKyAJICB0ZXN0IC16ICIkYWJzZGlyIiAmJiBcCitAQCAtODEzNyw3ICs4MTM3LDcgQEAgZnVuY19tb2RlX2xpbmsgKCkKKyAJICAgICRFQ0hPICIqKiogJGxpbmtsaWIgaXMgbm90IHBvcnRhYmxlISIKKyAJICBmaQorIAkgIGlmIHRlc3QgbGliID0gIiRsaW5rbW9kZSIgJiYKKy0JICAgICB0ZXN0IHllcyA9ICIkaGFyZGNvZGVfaW50b19saWJzIjsgdGhlbgorKwkgICAgIHRlc3QgIngkd3JzX3VzZV9ycGF0aHMiID0gInh5ZXMiICYmIHRlc3QgIiRoYXJkY29kZV9pbnRvX2xpYnMiID0geWVzOyB0aGVuCisgCSAgICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGguCisgCSAgICAjIFNraXAgZGlyZWN0b3JpZXMgdGhhdCBhcmUgaW4gdGhlIHN5c3RlbSBkZWZhdWx0IHJ1bi10aW1lCisgCSAgICAjIHNlYXJjaCBwYXRoLgorQEAgLTg0MDQsNyArODQwNCw3IEBAIGZ1bmNfbW9kZV9saW5rICgpCisgCisgCWlmIHRlc3QgbGliID0gIiRsaW5rbW9kZSI7IHRoZW4KKyAJICBpZiB0ZXN0IC1uICIkZGVwZW5kZW5jeV9saWJzIiAmJgorLQkgICAgIHsgdGVzdCB5ZXMgIT0gIiRoYXJkY29kZV9pbnRvX2xpYnMiIHx8CisrICAgICAgICAgICAgICB7IHRlc3QgeWVzICE9ICIkaGFyZGNvZGVfaW50b19saWJzIiB8fCB0ZXN0ICJ4JHdyc191c2VfcnBhdGhzIiAhPSAieHllcyIgfHwKKyAJICAgICAgIHRlc3QgeWVzID0gIiRidWlsZF9vbGRfbGlicyIgfHwKKyAJICAgICAgIHRlc3QgeWVzID0gIiRsaW5rX3N0YXRpYyI7IH07IHRoZW4KKyAJICAgICMgRXh0cmFjdCAtUiBmcm9tIGRlcGVuZGVuY3lfbGlicworQEAgLTkwMjUsNyArOTAyNSw4IEBAIGZ1bmNfbW9kZV9saW5rICgpCisgCSAgKikgZnVuY19hcHBlbmQgZmluYWxpemVfcnBhdGggIiAkbGliZGlyIiA7OworIAkgIGVzYWMKKyAJZG9uZQorLQlpZiB0ZXN0IHllcyAhPSAiJGhhcmRjb2RlX2ludG9fbGlicyIgfHwgdGVzdCB5ZXMgPSAiJGJ1aWxkX29sZF9saWJzIjsgdGhlbgorKyAgICAgICAgaWYgdGVzdCB5ZXMgIT0gIiRoYXJkY29kZV9pbnRvX2xpYnMiICB8fCB0ZXN0ICJ4JHdyc191c2VfcnBhdGhzIiAhPSAieHllcyIgfHwKKysgICAgICAgICAgIHRlc3QgeWVzID0gIiRidWlsZF9vbGRfbGlicyI7IHRoZW4KKyAJICBkZXBlbmRlbmN5X2xpYnM9IiR0ZW1wX3hycGF0aCAkZGVwZW5kZW5jeV9saWJzIgorIAlmaQorICAgICAgIGZpCitAQCAtOTQ3Myw3ICs5NDc0LDcgQEAgRU9GCisgCWNhc2UgJGFyY2hpdmVfY21kcyBpbgorIAkgICpcJExEXCAqKSB3bD0gOzsKKyAgICAgICAgIGVzYWMKKy0JaWYgdGVzdCB5ZXMgPSAiJGhhcmRjb2RlX2ludG9fbGlicyI7IHRoZW4KKysJaWYgdGVzdCB5ZXMgPSAiJGhhcmRjb2RlX2ludG9fbGlicyIgJiYgdGVzdCAieCR3cnNfdXNlX3JwYXRocyIgPSAieHllcyI7IHRoZW4KKyAJICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGhzCisgCSAgaGFyZGNvZGVfbGliZGlycz0KKyAJICBkZXBfcnBhdGg9CitAQCAtMTAyMTEsNiArMTAyMTIsMjcgQEAgRU9GCisgICAgICAgIyBOb3cgaGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0aHMKKyAgICAgICBycGF0aD0KKyAgICAgICBoYXJkY29kZV9saWJkaXJzPQorKworKyAgICAgICMgc2hvcnQgY2lyY3VpdCBwdXR0aW5nIHJwYXRocyBpbiBleGVjdXRhYmxlcworKyAgICAgICMKKysgICAgICBpZiB0ZXN0ICJ4JHdyc191c2VfcnBhdGhzIiAhPSAieHllcyIgOyB0aGVuCisrICAgICAgICBmbGFnPQorKyAgICAgICAgZm9yIGxpYmRpciBpbiAkY29tcGlsZV9ycGF0aDsgZG8KKysgICAgICAgICAgY2FzZSAkKGVjaG8gJGxpYmRpciB8ICR7U0VEfSAncywvWy9dKiwvLGcnKSBpbgorKyAgICAgICAgICAgIC91c3IvbGliLyogfCAvdXNyL2xpYjMyLyogfCAvdXNyL2xpYjY0LyogKSBmbGFnPSIkZmxhZyAkbGliZGlyIiA7OworKyAgICAgICAgICBlc2FjCisrICAgICAgICBkb25lCisrICAgICAgICBjb21waWxlX3JwYXRoPSIkZmxhZyIKKysKKysgICAgICAgIGZsYWc9CisrICAgICAgICBmb3IgbGliZGlyIGluICRmaW5hbGl6ZV9ycGF0aDsgZG8KKysgICAgICAgICAgY2FzZSAkKGVjaG8gJGxpYmRpciB8ICR7U0VEfSAncywvWy9dKiwvLGcnKSBpbgorKyAgICAgICAgICAgIC91c3IvbGliLyogfCAvdXNyL2xpYjMyLyogfCAvdXNyL2xpYjY0LyogKSBmbGFnPSIkZmxhZyAkbGliZGlyIiA7OworKyAgICAgICAgICBlc2FjCisrICAgICAgICBkb25lCisrICAgICAgICBmaW5hbGl6ZV9ycGF0aD0iJGZsYWciCisrICAgICAgZmkKKysKKyAgICAgICBmb3IgbGliZGlyIGluICRjb21waWxlX3JwYXRoICRmaW5hbGl6ZV9ycGF0aDsgZG8KKyAJaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCisgCSAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCistLSAKKzEuOS4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTIvZml4LWxpYnRvb2wtbmFtZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTIvZml4LWxpYnRvb2wtbmFtZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjdhZjA0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi9maXgtbGlidG9vbC1uYW1lLnBhdGNoCkBAIC0wLDAgKzEsNTUgQEAKK0ZpeCBidWlsZCBzY3JpcHRzIHRvIHVzZSBjb3JyZWN0IGxpYnRvb2wgZmlsZW5hbWUKKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQorCistLS0KKyBodHRwZC0yLjQuMi9idWlsZC9jb25maWdfdmFycy5zaC5pbiB8ICAgIDIgKy0KKyBodHRwZC0yLjQuMi9jb25maWd1cmUgICAgICAgICAgICAgICB8ICAgIDIgKy0KKyBodHRwZC0yLjQuMi9jb25maWd1cmUuaW4gICAgICAgICAgICB8ICAgIDIgKy0KKyBodHRwZC0yLjQuMi9zdXBwb3J0L2FweHMuaW4gICAgICAgICB8ICAgIDIgKy0KKyA0IGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKKworLS0tIGEvYnVpbGQvY29uZmlnX3ZhcnMuc2guaW4KKysrKyBiL2J1aWxkL2NvbmZpZ192YXJzLnNoLmluCitAQCAtMzUsNyArMzUsNyBAQCBlbHNlCisgICAgQVBVX0NPTkZJRz1AQVBVX0NPTkZJR0AKKyBmaQorIAorLUFQUl9MSUJUT09MPSJgJHtBUFJfQ09ORklHfSAtLWFwci1saWJ0b29sYCIKKytBUFJfTElCVE9PTD0iYCR7QVBSX0NPTkZJR30gLS1hcHItbGlidG9vbCB8IHNlZCAtZSBzLGxpYnRvb2wsJHtob3N0X2FsaWFzfS1saWJ0b29sLGAiCisgQVBSX0lOQ0xVREVESVI9ImAke0FQUl9DT05GSUd9IC0taW5jbHVkZWRpcmAiCisgdGVzdCAtbiAiQEFQVV9DT05GSUdAIiAmJiBBUFVfSU5DTFVERURJUj0iYCR7QVBVX0NPTkZJR30gLS1pbmNsdWRlZGlyYCIKKyAKKy0tLSBhL2NvbmZpZ3VyZQorKysrIGIvY29uZmlndXJlCitAQCAtNjIwNSw3ICs2MjA1LDcgQEAgY2FzZSAkaG9zdCBpbgorICAgICAgIGlmIHRlc3QgIngkTFRGTEFHUyIgPSAieCI7IHRoZW4KKyAgICAgICAgICAgTFRGTEFHUz0nLS1zaWxlbnQnCisgICAgICAgZmkKKy0gICAgICBteV9saWJ0b29sPWAkYXByX2NvbmZpZyAtLWFwci1saWJ0b29sYAorKyAgICAgIG15X2xpYnRvb2w9YCRhcHJfY29uZmlnIC0tYXByLWxpYnRvb2wgfCBzZWQgLWUgcyxsaWJ0b29sLCR7aG9zdF9hbGlhc30tbGlidG9vbCxgCisgICAgICAgTElCVE9PTD0iJG15X2xpYnRvb2wgXCQoTFRGTEFHUykiCisgICAgICAgbGlidG9vbHZlcnNpb249YCRteV9saWJ0b29sIC0tdmVyc2lvbmAKKyAgICAgICBjYXNlICRsaWJ0b29sdmVyc2lvbiBpbgorLS0tIGEvY29uZmlndXJlLmluCisrKysgYi9jb25maWd1cmUuaW4KK0BAIC0yNjQsNyArMjY0LDcgQEAgY2FzZSAkaG9zdCBpbgorICAgICAgIGlmIHRlc3QgIngkTFRGTEFHUyIgPSAieCI7IHRoZW4KKyAgICAgICAgICAgTFRGTEFHUz0nLS1zaWxlbnQnCisgICAgICAgZmkKKy0gICAgICBteV9saWJ0b29sPWAkYXByX2NvbmZpZyAtLWFwci1saWJ0b29sYAorKyAgICAgIG15X2xpYnRvb2w9YCRhcHJfY29uZmlnIC0tYXByLWxpYnRvb2wgfCBzZWQgLWUgcyxsaWJ0b29sLCR7aG9zdF9hbGlhc30tbGlidG9vbCxgCisgICAgICAgTElCVE9PTD0iJG15X2xpYnRvb2wgXCQoTFRGTEFHUykiCisgICAgICAgbGlidG9vbHZlcnNpb249YCRteV9saWJ0b29sIC0tdmVyc2lvbmAKKyAgICAgICBjYXNlICRsaWJ0b29sdmVyc2lvbiBpbgorLS0tIGEvc3VwcG9ydC9hcHhzLmluCisrKysgYi9zdXBwb3J0L2FweHMuaW4KK0BAIC0zNTIsNyArMzUyLDcgQEAgaWYgKCRhcHJfbWFqb3JfdmVyc2lvbiA8IDIpIHsKKyAgICAgfQorIH0KKyAKKy1teSAkbGlidG9vbCA9IGAkYXByX2NvbmZpZyAtLWFwci1saWJ0b29sYDsKKytteSAkbGlidG9vbCA9IGAkYXByX2NvbmZpZyAtLWFwci1saWJ0b29sfCBzZWQgLWUgcyxsaWJ0b29sLCR7aG9zdF9hbGlhc30tbGlidG9vbCxgOworIGNob21wKCRsaWJ0b29sKTsKKyAKKyBteSAkYXByX2luY2x1ZGVkaXIgPSBgJGFwcl9jb25maWcgLS1pbmNsdWRlc2A7CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyL2h0dHBkLTIuNC4xLWNvcmVsaW1pdC5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTIvaHR0cGQtMi40LjEtY29yZWxpbWl0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4ZTQxMDcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyL2h0dHBkLTIuNC4xLWNvcmVsaW1pdC5wYXRjaApAQCAtMCwwICsxLDM3IEBACisKK0J1bXAgdXAgdGhlIGNvcmUgc2l6ZSBsaW1pdCBpZiBDb3JlRHVtcERpcmVjdG9yeSBpcworY29uZmlndXJlZC4KKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nIAorCitOb3RlOiB1cHN0cmVhbWluZyB3YXMgZGlzY3Vzc2VkIGJ1dCB0aGVyZSBhcmUgY29tcGV0aW5nIGRlc2lyZXM7CisJdGhlcmUgYXJlIHBvcnRhYmlsaXR5IG9kZGl0aWVzIGhlcmUgdG9vLgorCistLS0gaHR0cGQtMi40LjEvc2VydmVyL2NvcmUuYy5jb3JlbGltaXQKKysrKyBodHRwZC0yLjQuMS9zZXJ2ZXIvY29yZS5jCitAQCAtNDQzMyw2ICs0NDMzLDI1IEBAIHN0YXRpYyBpbnQgY29yZV9wb3N0X2NvbmZpZyhhcHJfcG9vbF90ICoKKyAgICAgfQorICAgICBhcHJfcG9vbF9jbGVhbnVwX3JlZ2lzdGVyKHBjb25mLCBOVUxMLCBhcF9tcG1fZW5kX2dlbl9oZWxwZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXByX3Bvb2xfY2xlYW51cF9udWxsKTsKKysKKysjaWZkZWYgUkxJTUlUX0NPUkUKKysgICAgaWYgKGFwX2NvcmVkdW1wZGlyX2NvbmZpZ3VyZWQpIHsKKysgICAgICAgIHN0cnVjdCBybGltaXQgbGltOworKworKyAgICAgICAgaWYgKGdldHJsaW1pdChSTElNSVRfQ09SRSwgJmxpbSkgPT0gMCAmJiBsaW0ucmxpbV9jdXIgPT0gMCkgeworKyAgICAgICAgICAgIGxpbS5ybGltX2N1ciA9IGxpbS5ybGltX21heDsKKysgICAgICAgICAgICBpZiAoc2V0cmxpbWl0KFJMSU1JVF9DT1JFLCAmbGltKSA9PSAwKSB7CisrICAgICAgICAgICAgICAgIGFwX2xvZ19lcnJvcihBUExPR19NQVJLLCBBUExPR19OT1RJQ0UsIDAsIE5VTEwsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29yZSBkdW1wIGZpbGUgc2l6ZSBsaW1pdCByYWlzZWQgdG8gJWx1IGJ5dGVzIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbS5ybGltX2N1cik7CisrICAgICAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgICAgICAgYXBfbG9nX2Vycm9yKEFQTE9HX01BUkssIEFQTE9HX05PVElDRSwgZXJybm8sIE5VTEwsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29yZSBkdW1wIGZpbGUgc2l6ZSBpcyB6ZXJvLCBzZXRybGltaXQgZmFpbGVkIik7CisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICB9CisrI2VuZGlmCisrCisgICAgIHJldHVybiBPSzsKKyB9CisgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyL2h0dHBkLTIuNC4xLXNlbGludXgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyL2h0dHBkLTIuNC4xLXNlbGludXgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODczMzI4ZAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTIvaHR0cGQtMi40LjEtc2VsaW51eC5wYXRjaApAQCAtMCwwICsxLDYzIEBACisKK0xvZyB0aGUgU0VMaW51eCBjb250ZXh0IGF0IHN0YXJ0dXAuCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbb3RoZXJdCisKK05vdGU6IHVubGlrZWx5IHRvIGJlIGFueSBpbnRlcmVzdCBpbiB0aGlzIHVwc3RyZWFtCisKKy0tLSBodHRwZC0yLjQuMS9jb25maWd1cmUuaW4uc2VsaW51eAorKysrIGh0dHBkLTIuNC4xL2NvbmZpZ3VyZS5pbgorQEAgLTQ1OCw2ICs0NTgsMTEgQEAgZm9wZW42NAorIGRubCBjb25maXJtIHRoYXQgYSB2b2lkIHBvaW50ZXIgaXMgbGFyZ2UgZW5vdWdoIHRvIHN0b3JlIGEgbG9uZyBpbnRlZ2VyCisgQVBBQ0hFX0NIRUNLX1ZPSURfUFRSX0xFTgorIAorK0FDX0NIRUNLX0xJQihzZWxpbnV4LCBpc19zZWxpbnV4X2VuYWJsZWQsIFsKKysgICBBQ19ERUZJTkUoSEFWRV9TRUxJTlVYLCAxLCBbRGVmaW5lZCBpZiBTRUxpbnV4IGlzIHN1cHBvcnRlZF0pCisrICAgQVBSX0FERFRPKEFQX0xJQlMsIFstbHNlbGludXhdKQorK10pCisrCisgQUNfQ0FDSEVfQ0hFQ0soW2ZvciBnZXR0aWQoKV0sIGFjX2N2X2dldHRpZCwKKyBbQUNfVFJZX1JVTigjZGVmaW5lIF9HTlVfU09VUkNFCisgI2luY2x1ZGUgPHVuaXN0ZC5oPgorLS0tIGh0dHBkLTIuNC4xL3NlcnZlci9jb3JlLmMuc2VsaW51eAorKysrIGh0dHBkLTIuNC4xL3NlcnZlci9jb3JlLmMKK0BAIC01OCw2ICs1OCwxMCBAQAorICNpbmNsdWRlIDx1bmlzdGQuaD4KKyAjZW5kaWYKKyAKKysjaWZkZWYgSEFWRV9TRUxJTlVYCisrI2luY2x1ZGUgPHNlbGludXgvc2VsaW51eC5oPgorKyNlbmRpZgorKworIC8qIExpbWl0UmVxdWVzdEJvZHkgaGFuZGxpbmcgKi8KKyAjZGVmaW5lIEFQX0xJTUlUX1JFUV9CT0RZX1VOU0VUICAgICAgICAgKChhcHJfb2ZmX3QpIC0xKQorICNkZWZpbmUgQVBfREVGQVVMVF9MSU1JVF9SRVFfQk9EWSAgICAgICAoKGFwcl9vZmZfdCkgMCkKK0BAIC00NDUyLDYgKzQ0NTYsMjggQEAgc3RhdGljIGludCBjb3JlX3Bvc3RfY29uZmlnKGFwcl9wb29sX3QgKgorICAgICB9CisgI2VuZGlmCisgCisrI2lmZGVmIEhBVkVfU0VMSU5VWAorKyAgICB7CisrICAgICAgICBzdGF0aWMgaW50IGFscmVhZHlfd2FybmVkID0gMDsKKysgICAgICAgIGludCBpc19lbmFibGVkID0gaXNfc2VsaW51eF9lbmFibGVkKCkgPiAwOworKyAgICAgICAgCisrICAgICAgICBpZiAoaXNfZW5hYmxlZCAmJiAhYWxyZWFkeV93YXJuZWQpIHsKKysgICAgICAgICAgICBzZWN1cml0eV9jb250ZXh0X3QgY29uOworKyAgICAgICAgICAgIAorKyAgICAgICAgICAgIGlmIChnZXRjb24oJmNvbikgPT0gMCkgeworKyAgICAgICAgICAgICAgICAKKysgICAgICAgICAgICAgICAgYXBfbG9nX2Vycm9yKEFQTE9HX01BUkssIEFQTE9HX05PVElDRSwgMCwgTlVMTCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTRUxpbnV4IHBvbGljeSBlbmFibGVkOyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cGQgcnVubmluZyBhcyBjb250ZXh0ICVzIiwgY29uKTsKKysgICAgICAgICAgICAgICAgCisrICAgICAgICAgICAgICAgIGFscmVhZHlfd2FybmVkID0gMTsKKysgICAgICAgICAgICAgICAgCisrICAgICAgICAgICAgICAgIGZyZWVjb24oY29uKTsKKysgICAgICAgICAgICB9CisrICAgICAgICB9CisrICAgIH0KKysjZW5kaWYKKysKKyAgICAgcmV0dXJuIE9LOworIH0KKyAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTIvaHR0cGQtMi40LjQtZXhwb3J0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi9odHRwZC0yLjQuNC1leHBvcnQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZiZWQ4ZQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTIvaHR0cGQtMi40LjQtZXhwb3J0LnBhdGNoCkBAIC0wLDAgKzEsMjIgQEAKKworVGhlcmUgaXMgbm8gbmVlZCB0byAic3VjayBpbiIgdGhlIGFwci9hcHItdXRpbCBzeW1ib2xzIHdoZW4gdXNpbmcKK2Egc2hhcmVkIGxpYmFwcnssdXRpbH0sIGl0IGp1c3QgYmxvYXRzIHRoZSBzeW1ib2wgdGFibGU7IHNvIGRvbid0LgorCitVcHN0cmVhbS1IRUFEOiBuZWVkZWQKK1Vwc3RyZWFtLTIuMDogb21pdAorVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK05vdGU6IEVYUE9SVF9ESVJTIGNoYW5nZSBpcyBjb25kaXRpb25hbCBvbiB1c2luZyBzaGFyZWQgYXByCisKKy0tLSBodHRwZC0yLjQuNC9zZXJ2ZXIvTWFrZWZpbGUuaW4uZXhwb3J0CisrKysgaHR0cGQtMi40LjQvc2VydmVyL01ha2VmaWxlLmluCitAQCAtNTcsOSArNTcsNiBAQCBleHBvcnRfZmlsZXM6CisgCSggZm9yIGRpciBpbiAkKEVYUE9SVF9ESVJTKTsgZG8gXAorIAkgICAgICBscyAkJGRpci8qLmggOyBcCisgCSAgZG9uZTsgXAorLQkgIGZvciBkaXIgaW4gJChFWFBPUlRfRElSU19BUFIpOyBkbyBcCistCSAgICAgIGxzICQkZGlyL2FwW3J1XS5oICQkZGlyL2FwW3J1XV8qLmggMj4vZGV2L251bGw7IFwKKy0JICBkb25lOyBcCisgCSkgfCBzZWQgLWUgcywvLywvLGcgfCBzb3J0IC11ID4gJEAKKyAKKyBleHBvcnRzLmM6IGV4cG9ydF9maWxlcwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi9yZXBsYWNlLWx5bngtdG8tY3VybC1pbi1hcGFjaGVjdGwtc2NyaXB0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi9yZXBsYWNlLWx5bngtdG8tY3VybC1pbi1hcGFjaGVjdGwtc2NyaXB0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4NGRkYzgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyL3JlcGxhY2UtbHlueC10by1jdXJsLWluLWFwYWNoZWN0bC1zY3JpcHQucGF0Y2gKQEAgLTAsMCArMSw1MiBAQAorRnJvbSA3NjBjY2JiMmZiMDQ2NjIxYTJhZWFlY2FiYjJiMWVmOWFhMjgwY2YxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWXVsb25nIFBlaSA8WXVsb25nLnBlaUB3aW5kcml2ZXIuY29tPgorRGF0ZTogVGh1LCAxIFNlcCAyMDExIDAxOjAzOjE0ICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIHJlcGxhY2UgbHlueCB0byBjdXJsIGluIGFwYWNoZWN0bCBzY3JpcHQKKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQorCitTaWduZWQtb2ZmLWJ5OiBZdWxvbmcgUGVpIDxZdWxvbmcucGVpQHdpbmRyaXZlci5jb20+CistLS0KKyBzdXBwb3J0L2FwYWNoZWN0bC5pbiB8ICAgMTQgKysrKysrKysrKy0tLS0KKyAxIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zdXBwb3J0L2FwYWNoZWN0bC5pbiBiL3N1cHBvcnQvYXBhY2hlY3RsLmluCitpbmRleCBkNGRmZjM4Li4xMDllYTEzIDEwMDY0NAorLS0tIGEvc3VwcG9ydC9hcGFjaGVjdGwuaW4KKysrKyBiL3N1cHBvcnQvYXBhY2hlY3RsLmluCitAQCAtNTEsMTEgKzUxLDExIEBAIGZpCisgIyBhIGNvbW1hbmQgdGhhdCBvdXRwdXRzIGEgZm9ybWF0dGVkIHRleHQgdmVyc2lvbiBvZiB0aGUgSFRNTCBhdCB0aGUKKyAjIHVybCBnaXZlbiBvbiB0aGUgY29tbWFuZCBsaW5lLiAgRGVzaWduZWQgZm9yIGx5bngsIGhvd2V2ZXIgb3RoZXIKKyAjIHByb2dyYW1zIG1heSB3b3JrLiAgCistTFlOWD0iQExZTlhfUEFUSEAgLWR1bXAiCisrQ1VSTD0iL3Vzci9iaW4vY3VybCIKKyAjCisgIyB0aGUgVVJMIHRvIHlvdXIgc2VydmVyJ3MgbW9kX3N0YXR1cyBzdGF0dXMgcGFnZS4gIElmIHlvdSBkbyBub3QKKyAjIGhhdmUgb25lLCB0aGVuIHN0YXR1cyBhbmQgZnVsbHN0YXR1cyB3aWxsIG5vdCB3b3JrLgorLVNUQVRVU1VSTD0iaHR0cDovL2xvY2FsaG9zdDpAUE9SVEAvc2VydmVyLXN0YXR1cyIKKytTVEFUVVNVUkw9Imh0dHA6Ly9sb2NhbGhvc3Q6QFBPUlRALyIKKyAjCisgIyBTZXQgdGhpcyB2YXJpYWJsZSB0byBhIGNvbW1hbmQgdGhhdCBpbmNyZWFzZXMgdGhlIG1heGltdW0KKyAjIG51bWJlciBvZiBmaWxlIGRlc2NyaXB0b3JzIGFsbG93ZWQgcGVyIGNoaWxkIHByb2Nlc3MuIFRoaXMgaXMKK0BAIC05MSwxMCArOTEsMTYgQEAgY29uZmlndGVzdCkKKyAgICAgRVJST1I9JD8KKyAgICAgOzsKKyBzdGF0dXMpCistICAgICRMWU5YICRTVEFUVVNVUkwgfCBhd2sgJyAvcHJvY2VzcyQvIHsgcHJpbnQ7IGV4aXQgfSB7IHByaW50IH0gJworKyAgICAkQ1VSTCAtcyAkU1RBVFVTVVJMIHwgZ3JlcCAtbyAiSXQgd29ya3MhIgorKyAgICBpZiBbICQ/ICE9IDAgXSA7IHRoZW4KKysgICAgICAgIGVjaG8gVGhlIGh0dHBkIHNlcnZlciBkb2VzIG5vdCB3b3JrIQorKyAgICBmaQorICAgICA7OworIGZ1bGxzdGF0dXMpCistICAgICRMWU5YICRTVEFUVVNVUkwKKysgICAgJENVUkwgLXMgJFNUQVRVU1VSTCB8IGdyZXAgLW8gIkl0IHdvcmtzISIKKysgICAgaWYgWyAkPyAhPSAwIF0gOyB0aGVuCisrICAgICAgICBlY2hvIFRoZSBodHRwZCBzZXJ2ZXIgZG9lcyBub3Qgd29yayEKKysgICAgZmkKKyAgICAgOzsKKyAqKQorICAgICAkSFRUUEQgJEFSR1YKKy0tIAorMS42LjQKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi9zZXJ2ZXItbWFrZWZpbGUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyL3NlcnZlci1tYWtlZmlsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTM0OWNiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvYXBhY2hlMi9zZXJ2ZXItbWFrZWZpbGUucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIGh0dHAtMi4wLjU0L3NlcnZlci9NYWtlZmlsZS5pbi1vbGQJMjAwNS0xMi0yMCAxMzoyNjo1Ni4wMDAwMDAwMDAgLTA1MDAKKysrKyBodHRwLTIuMC41NC9zZXJ2ZXIvTWFrZWZpbGUuaW4JMjAwNS0xMi0yMCAxMzoyNzoyMi4wMDAwMDAwMDAgLTA1MDAKK0BAIC0yNyw3ICsyNyw3IEBACisgCSQoTElOSykgJChFWFRSQV9MREZMQUdTKSAkKGdlbl90ZXN0X2NoYXJfT0JKRUNUUykgJChFWFRSQV9MSUJTKQorIAorIHRlc3RfY2hhci5oOiBnZW5fdGVzdF9jaGFyCistCS4vZ2VuX3Rlc3RfY2hhciA+IHRlc3RfY2hhci5oCisrCWdlbl90ZXN0X2NoYXIgPiB0ZXN0X2NoYXIuaAorIAorIHV0aWwubG86IHRlc3RfY2hhci5oCisgCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyXzIuNC4yMC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9hcGFjaGUyL2FwYWNoZTJfMi40LjIwLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxMTUxZDEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9hcGFjaGUyXzIuNC4yMC5iYgpAQCAtMCwwICsxLDE4MSBAQAorREVTQ1JJUFRJT04gPSAiVGhlIEFwYWNoZSBIVFRQIFNlcnZlciBpcyBhIHBvd2VyZnVsLCBlZmZpY2llbnQsIGFuZCBcCitleHRlbnNpYmxlIHdlYiBzZXJ2ZXIuIgorU1VNTUFSWSA9ICJBcGFjaGUgSFRUUCBTZXJ2ZXIiCitIT01FUEFHRSA9ICJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iCitERVBFTkRTID0gImxpYnRvb2wtbmF0aXZlIGFwYWNoZTItbmF0aXZlIG9wZW5zc2wgZXhwYXQgcGNyZSBhcHIgYXByLXV0aWwiCitTRUNUSU9OID0gIm5ldCIKK0xJQ0VOU0UgPSAiQXBhY2hlLTIuMCIKKworU1JDX1VSSSA9ICJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZGlzdC9odHRwZC9odHRwZC0ke1BWfS50YXIuYnoyIFwKKyAgICAgICAgICAgZmlsZTovL3NlcnZlci1tYWtlZmlsZS5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9odHRwZC0yLjQuMS1jb3JlbGltaXQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vaHR0cGQtMi40LjQtZXhwb3J0LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2h0dHBkLTIuNC4xLXNlbGludXgucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vYXBhY2hlLWNvbmZpZ3VyZV9wZXJsYmluLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3JlcGxhY2UtbHlueC10by1jdXJsLWluLWFwYWNoZWN0bC1zY3JpcHQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vYXBhY2hlLXNzbC1sdG1haW4tcnBhdGgucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vaHR0cGQtMi40LjMtZml4LXJhY2UtaXNzdWUtb2YtZGlyLWluc3RhbGwucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1jb25maWd1cmUtdXNlLXBrZy1jb25maWctZm9yLVBDUkUtZGV0ZWN0aW9uLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2NvbmZpZ3VyZS1hbGxvdy10by1kaXNhYmxlLXNlbGludXgtc3VwcG9ydC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9pbml0IFwKKyAgICAgICAgICAgZmlsZTovL2FwYWNoZTItdm9sYXRpbGUuY29uZiBcCisgICAgICAgICAgIGZpbGU6Ly9hcGFjaGUyLnNlcnZpY2UgXAorICAgICAgICAgICIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9ZGJmZjVhMmI1NDJmYTU4ODU0NDU1YmYxYTBiOTRiODMiCitTUkNfVVJJW21kNXN1bV0gPSAiM2ZmNGYwMGVlMDUxY2Y1ZDUzMDRiNDdiMWJjNDE4YjgiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMGU3NmEzNzVlZDNkYmFjNjM2ZjUwYWMzOWRlOTY2ZWNlNDQzNzUxZmU0ZDYyMzkyZjlhMzYwYTE5ZDk0ZDBkYSIKKworUyA9ICIke1dPUktESVJ9L2h0dHBkLSR7UFZ9IgorCitpbmhlcml0IGF1dG90b29scyB1cGRhdGUtcmMuZCBwa2djb25maWcgc3lzdGVtZAorCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAiYXBhY2hlMi5zZXJ2aWNlIgorU1lTVEVNRF9BVVRPX0VOQUJMRV8ke1BOfSA9ICJkaXNhYmxlIgorCitTU1RBVEVfU0NBTl9GSUxFUyArPSAiYXB4cyBjb25maWdfdmFycy5tayBjb25maWcubmljZSIKKworQ0ZMQUdTX2FwcGVuZCA9ICIgLURQQVRIX01BWD00MDk2IgorQ0ZMQUdTX3ByZXBlbmQgPSAiLUkke1NUQUdJTkdfSU5DRElSfS9vcGVuc3NsICIKK0VYVFJBX09FQ09ORiA9ICItLWVuYWJsZS1zc2wgXAorICAgIC0td2l0aC1zc2w9JHtTVEFHSU5HX0xJQkRJUn0vLi4gXAorICAgIC0td2l0aC1leHBhdD0ke1NUQUdJTkdfTElCRElSfS8uLiBcCisgICAgLS13aXRoLWFwcj0ke1NUQUdJTkdfQklORElSX0NST1NTfS9hcHItMS1jb25maWcgXAorICAgIC0td2l0aC1hcHItdXRpbD0ke1NUQUdJTkdfQklORElSX0NST1NTfS9hcHUtMS1jb25maWcgXAorICAgIC0tZW5hYmxlLWluZm8gXAorICAgIC0tZW5hYmxlLXJld3JpdGUgXAorICAgIC0td2l0aC1kYm09c2RibSBcCisgICAgLS13aXRoLWJlcmtlbGV5LWRiPW5vIFwKKyAgICAtLWxvY2Fsc3RhdGVkaXI9L3Zhci8ke0JQTn0gXAorICAgIC0td2l0aC1nZGJtPW5vIFwKKyAgICAtLXdpdGgtbmRibT1ubyBcCisgICAgLS1pbmNsdWRlZGlyPSR7aW5jbHVkZWRpcn0vJHtCUE59IFwKKyAgICAtLWRhdGFkaXI9JHtkYXRhZGlyfS8ke0JQTn0gXAorICAgIC0tc3lzY29uZmRpcj0ke3N5c2NvbmZkaXJ9LyR7QlBOfSBcCisgICAgLS1saWJleGVjZGlyPSR7bGliZGlyfS8ke0JQTn0vbW9kdWxlcyBcCisgICAgYXBfY3Zfdm9pZF9wdHJfbHRfbG9uZz1ubyBcCisgICAgLS1lbmFibGUtbXBtcy1zaGFyZWQgXAorICAgIGFjX2N2X2hhdmVfdGhyZWFkc2FmZV9wb2xsc2V0PW5vIgorCitQQUNLQUdFQ09ORklHID89ICIke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3NlbGludXgnLCAnc2VsaW51eCcsICcnLCBkKX0iCitQQUNLQUdFQ09ORklHW3NlbGludXhdID0gIi0tZW5hYmxlLXNlbGludXgsLS1kaXNhYmxlLXNlbGludXgsbGlic2VsaW51eCxsaWJzZWxpbnV4IgorUEFDS0FHRUNPTkZJR1tvcGVubGRhcF0gPSAiLS1lbmFibGUtbGRhcCAtLWVuYWJsZS1hdXRobnotbGRhcCwtLWRpc2FibGUtbGRhcCAtLWRpc2FibGUtYXV0aG56LWxkYXAsb3BlbmxkYXAiCisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgIGluc3RhbGwgLWQgJHtEfS8ke3N5c2NvbmZkaXJ9L2luaXQuZAorICAgIGNhdCAke1dPUktESVJ9L2luaXQgfCBcCisgICAgICAgIHNlZCAtZSAncywvdXNyL3NiaW4vLCR7c2JpbmRpcn0vLGcnIFwKKyAgICAgICAgICAgIC1lICdzLC91c3IvYmluLywke2JpbmRpcn0vLGcnIFwKKyAgICAgICAgICAgIC1lICdzLC91c3IvbGliLCR7bGliZGlyfS8sZycgXAorICAgICAgICAgICAgLWUgJ3MsL2V0Yy8sJHtzeXNjb25mZGlyfS8sZycgXAorICAgICAgICAgICAgLWUgJ3MsL3Vzci8sJHtwcmVmaXh9LyxnJyA+ICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQvJHtCUE59CisgICAgY2htb2QgNzU1ICR7RH0vJHtzeXNjb25mZGlyfS9pbml0LmQvJHtCUE59CisgICAgIyByZW1vdmUgdGhlIGdvb2Z5IG9yaWdpbmFsIGZpbGVzLi4uCisgICAgcm0gLXJmICR7RH0vJHtzeXNjb25mZGlyfS8ke0JQTn0vb3JpZ2luYWwKKyAgICAjIEV4cGF0IHNob3VsZCBiZSBmb3VuZCBpbiB0aGUgc3RhZ2luZyBhcmVhIHZpYSBERVBFTkRTLi4uCisgICAgcm0gLWYgJHtEfS8ke2xpYmRpcn0vbGliZXhwYXQuKgorCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS8ke0JQTn0vY29uZi5kCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS8ke0JQTn0vbW9kdWxlcy5kCisKKyAgICAjIEVuc3VyZSBjb25maWd1cmF0aW9uIGZpbGUgcHVsbHMgaW4gY29uZi5kIGFuZCBtb2R1bGVzLmQKKyAgICBwcmludGYgIlxuSW5jbHVkZU9wdGlvbmFsICR7c3lzY29uZmRpcn0vJHtCUE59L2NvbmYuZC8qLmNvbmYiID4+ICR7RH0vJHtzeXNjb25mZGlyfS8ke0JQTn0vaHR0cGQuY29uZgorICAgIHByaW50ZiAiXG5JbmNsdWRlT3B0aW9uYWwgJHtzeXNjb25mZGlyfS8ke0JQTn0vbW9kdWxlcy5kLyouY29uZlxuXG4iID4+ICR7RH0vJHtzeXNjb25mZGlyfS8ke0JQTn0vaHR0cGQuY29uZgorICAgICMgbWF0Y2ggd2l0aCB0aGF0IGlzIGluIGluaXQgc2NyaXB0CisgICAgcHJpbnRmICJcblBpZEZpbGUgL3J1bi9odHRwZC5waWQiID4+ICR7RH0vJHtzeXNjb25mZGlyfS8ke0JQTn0vaHR0cGQuY29uZgorICAgICMgU2V0ICdTZXJ2ZXJOYW1lJyB0byBmaXggZXJyb3IgbWVzc2FnZXMgd2hlbiByZXN0YXJ0IGFwYWNoZSBzZXJ2aWNlCisgICAgc2VkIC1pICdzL14jU2VydmVyTmFtZSB3d3cuZXhhbXBsZS5jb20vU2VydmVyTmFtZSBsb2NhbGhvc3QvJyAke0R9LyR7c3lzY29uZmRpcn0vJHtCUE59L2h0dHBkLmNvbmYKKworICAgIGlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICd0cnVlJywgJ2ZhbHNlJywgZCl9OyB0aGVuIAorICAgICAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQvCisgICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2FwYWNoZTItdm9sYXRpbGUuY29uZiAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kLworICAgIGZpCisKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vYXBhY2hlMi5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgc2VkIC1pIC1lICdzLEBTQklORElSQCwke3NiaW5kaXJ9LGcnICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL2FwYWNoZTIuc2VydmljZQorICAgIHNlZCAtaSAtZSAncyxAQkFTRV9CSU5ESVJALCR7YmFzZV9iaW5kaXJ9LGcnICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL2FwYWNoZTIuc2VydmljZQorCisgICAgY2hvd24gLVIgcm9vdDpyb290ICR7RH0KK30KKworZG9faW5zdGFsbF9hcHBlbmRfY2xhc3MtdGFyZ2V0KCkgeworICAgIHNlZCAtaSAtZSAncywke1NUQUdJTkdfRElSX0hPU1R9LCxnJyBcCisgICAgICAgICAgIC1lICdzLEFQVV9JTkNMVURFRElSID0gLiosQVBVX0lOQ0xVREVESVIgPSAsZycgXAorICAgICAgICAgICAtZSAncyxBUFVfQ09ORklHID0gLiosQVBVX0NPTkZJRyA9ICxnJyAke0R9JHtkYXRhZGlyfS9hcGFjaGUyL2J1aWxkL2NvbmZpZ192YXJzLm1rCisKKyAgICBzZWQgLWkgLWUgJ3MsJHtTVEFHSU5HX0RJUl9IT1NUfSwsZycgXAorICAgICAgICAgICAtZSAncywiLiovY29uZmlndXJlIiwiY29uZmlndXJlIixnJyAke0R9JHtkYXRhZGlyfS9hcGFjaGUyL2J1aWxkL2NvbmZpZy5uaWNlCit9CisKK1NZU1JPT1RfUFJFUFJPQ0VTU19GVU5DUyArPSAiYXBhY2hlX3N5c3Jvb3RfcHJlcHJvY2VzcyIKKworYXBhY2hlX3N5c3Jvb3RfcHJlcHJvY2VzcyAoKSB7CisgICAgaW5zdGFsbCAtZCAke1NZU1JPT1RfREVTVERJUn0ke2JpbmRpcl9jcm9zc3NjcmlwdHN9LworICAgIGluc3RhbGwgLW0gNzU1ICR7RH0ke2JpbmRpcn0vYXB4cyAke1NZU1JPT1RfREVTVERJUn0ke2JpbmRpcl9jcm9zc3NjcmlwdHN9LworICAgIGluc3RhbGwgLWQgJHtTWVNST09UX0RFU1RESVJ9JHtzYmluZGlyfS8KKyAgICBpbnN0YWxsIC1tIDc1NSAke0R9JHtzYmluZGlyfS9hcGFjaGVjdGwgJHtTWVNST09UX0RFU1RESVJ9JHtzYmluZGlyfS8KKyAgICBzZWQgLWkgJ3MhbXkgJGluc3RhbGxidWlsZGRpciA9IC4qIW15ICRpbnN0YWxsYnVpbGRkaXIgPSAiJHtTVEFHSU5HX0RJUl9IT1NUfS8ke2RhdGFkaXJ9LyR7QlBOfS9idWlsZCI7IScgJHtTWVNST09UX0RFU1RESVJ9JHtiaW5kaXJfY3Jvc3NzY3JpcHRzfS9hcHhzCisgICAgc2VkIC1pICdzIW15ICRsaWJ0b29sID0gLiohbXkgJGxpYnRvb2wgPSAiJHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vJHtUQVJHRVRfUFJFRklYfWxpYnRvb2wiOyEnICR7U1lTUk9PVF9ERVNURElSfSR7YmluZGlyX2Nyb3Nzc2NyaXB0c30vYXB4cworCisgICAgc2VkIC1pICdzIV5BUFJfQ09ORklHID0gLiohQVBSX0NPTkZJRyA9ICR7U1RBR0lOR19CSU5ESVJfQ1JPU1N9L2Fwci0xLWNvbmZpZyEnICR7U1lTUk9PVF9ERVNURElSfSR7ZGF0YWRpcn0vJHtCUE59L2J1aWxkL2NvbmZpZ192YXJzLm1rCisgICAgc2VkIC1pICdzIV5BUFVfQ09ORklHID0gLiohQVBVX0NPTkZJRyA9ICR7U1RBR0lOR19CSU5ESVJfQ1JPU1N9L2FwdS0xLWNvbmZpZyEnICR7U1lTUk9PVF9ERVNURElSfSR7ZGF0YWRpcn0vJHtCUE59L2J1aWxkL2NvbmZpZ192YXJzLm1rCisgICAgc2VkIC1pICdzIV5pbmNsdWRlZGlyID0gLiohaW5jbHVkZWRpciA9ICR7U1RBR0lOR19JTkNESVJ9L2FwYWNoZTIhJyAke1NZU1JPT1RfREVTVERJUn0ke2RhdGFkaXJ9LyR7QlBOfS9idWlsZC9jb25maWdfdmFycy5taworICAgIHNlZCAtaSAncyFeQ0ZMQUdTID0gLUlbXiBdKiFDRkxBR1MgPSAtSSR7U1RBR0lOR19JTkNESVJ9L29wZW5zc2whJyAke1NZU1JPT1RfREVTVERJUn0ke2RhdGFkaXJ9LyR7QlBOfS9idWlsZC9jb25maWdfdmFycy5taworICAgIHNlZCAtaSAncyFeRVhUUkFfTERGTEFHUyA9IC4qIUVYVFJBX0xERkxBR1MgPSAtTCR7U1RBR0lOR19MSUJESVJ9IScgJHtTWVNST09UX0RFU1RESVJ9JHtkYXRhZGlyfS8ke0JQTn0vYnVpbGQvY29uZmlnX3ZhcnMubWsKKyAgICBzZWQgLWkgJ3MhXkVYVFJBX0lOQ0xVREVTID0gLiohRVhUUkFfSU5DTFVERVMgPSAtSSQoaW5jbHVkZWRpcikgLUkuIC1JJHtTVEFHSU5HX0lOQ0RJUn0hJyAke1NZU1JPT1RfREVTVERJUn0ke2RhdGFkaXJ9LyR7QlBOfS9idWlsZC9jb25maWdfdmFycy5taworICAgIHNlZCAtaSAncyEtLXN5c3Jvb3Q9W14gXSohLS1zeXNyb290PSR7U1RBR0lOR19ESVJfSE9TVH0hJyAke1NZU1JPT1RfREVTVERJUn0ke2RhdGFkaXJ9LyR7QlBOfS9idWlsZC9jb25maWdfdmFycy5taworfQorCisjCisjIGltcGxpY2F0aW9ucyAtIHVzZWQgYnkgdXBkYXRlLXJjLmQgc2NyaXB0cworIworSU5JVFNDUklQVF9OQU1FID0gImFwYWNoZTIiCitJTklUU0NSSVBUX1BBUkFNUyA9ICJkZWZhdWx0cyA5MSAyMCIKK0xFQURfU09OQU1FID0gImxpYmFwci0xLnNvLjAiCisKK1BBQ0tBR0VTID0gIiR7UE59LXNjcmlwdHMgJHtQTn0tZG9jICR7UE59LWRldiAke1BOfS1kYmcgJHtQTn0iCisKK0NPTkZGSUxFU18ke1BOfSA9ICIke3N5c2NvbmZkaXJ9LyR7QlBOfS9odHRwZC5jb25mIFwKKyAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9LyR7QlBOfS9tYWdpYyBcCisgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS8ke0JQTn0vbWltZS50eXBlcyBcCisgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9pbml0LmQvJHtCUE59ICIKKworIyB3ZSBvdmVycmlkZSBoZXJlIHJhdGhlciB0aGFuIGFwcGVuZCBzbyB0aGF0IC5zbyBsaW5rcyBhcmUKKyMgaW5jbHVkZWQgaW4gdGhlIHJ1bnRpbWUgcGFja2FnZSByYXRoZXIgdGhhbiBoZXJlICgtZGV2KQorIyBhbmQgdG8gZ2V0IGJ1aWxkLCBpY29ucywgZXJyb3IgaW50byB0aGUgLWRldiBwYWNrYWdlCitGSUxFU18ke1BOfS1kZXYgPSAiJHtkYXRhZGlyfS8ke0JQTn0vYnVpbGQgXAorICAgICAgICAgICAgICAgICAgICR7ZGF0YWRpcn0vJHtCUE59L2ljb25zIFwKKyAgICAgICAgICAgICAgICAgICAke2RhdGFkaXJ9LyR7QlBOfS9lcnJvciBcCisgICAgICAgICAgICAgICAgICAgJHtiaW5kaXJ9L2Fwci1jb25maWcgJHtiaW5kaXJ9L2FwdS1jb25maWcgXAorICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9hcHIqLmV4cCBcCisgICAgICAgICAgICAgICAgICAgJHtpbmNsdWRlZGlyfS8ke0JQTn0gXAorICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS8qLmxhIFwKKyAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vKi5hIFwKKyAgICAgICAgICAgICAgICAgICAke2JpbmRpcn0vYXB4cyBcCisgICAgICAgICAgICAgICAgIgorCisKKyMgbWFudWFsIHRvIG1hbnVhbAorRklMRVNfJHtQTn0tZG9jICs9ICIgJHtkYXRhZGlyfS8ke0JQTn0vbWFudWFsIgorCitGSUxFU18ke1BOfS1zY3JpcHRzICs9ICIke2JpbmRpcn0vZGJtbWFuYWdlIgorCisjCisjIG92ZXJyaWRlIHRoaXMgdG9vIC0gaGVyZSBpcyB0aGUgZGVmYXVsdCwgbGVzcyBkYXRhZGlyCisjCitGSUxFU18ke1BOfSA9ICAiJHtiaW5kaXJ9ICR7c2JpbmRpcn0gJHtsaWJleGVjZGlyfSAke2xpYmRpcn0vbGliKi5zby4qICR7c3lzY29uZmRpcn0gXAorICAgICAgICAgICAgICAgICR7c2hhcmVkc3RhdGVkaXJ9ICR7bG9jYWxzdGF0ZWRpcn0gL2JpbiAvc2JpbiAvbGliLyouc28qIFwKKyAgICAgICAgICAgICAgICAke2xpYmRpcn0vJHtCUE59IgorCisjIHdlIHdhbnQgaHRkb2NzIGFuZCBjZ2ktYmluIHRvIGdvIHdpdGggdGhlIGJpbmFyeQorRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vJHtCUE59L2h0ZG9jcyAke2RhdGFkaXJ9LyR7QlBOfS9jZ2ktYmluIgorCisjbWFrZSBzdXJlIHRoZSBsb25lIC5zbyBsaW5rcyBhbHNvIGdldCB3cmFwcGVkIGluIHRoZSBiYXNlIHBhY2thZ2UKK0ZJTEVTXyR7UE59ICs9ICIke2xpYmRpcn0vbGliKi5zbyAke2xpYmRpcn0vcGtnY29uZmlnLyoiCisKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9LyR7QlBOfS9tb2R1bGVzLy5kZWJ1ZyIKKworUkRFUEVORFNfJHtQTn0gKz0gIm9wZW5zc2wgbGliZ2NjIgorUkRFUEVORFNfJHtQTn0tc2NyaXB0cyArPSAicGVybCAke1BOfSIKK1JERVBFTkRTXyR7UE59LWRldiA9ICJwZXJsIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvZmlsZXMvMDAwMS1jb25maWd1cmUtdXNlLXBrZy1jb25maWctZm9yLVBDUkUtZGV0ZWN0aW9uLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvZmlsZXMvMDAwMS1jb25maWd1cmUtdXNlLXBrZy1jb25maWctZm9yLVBDUkUtZGV0ZWN0aW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzMDk2ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9maWxlcy8wMDAxLWNvbmZpZ3VyZS11c2UtcGtnLWNvbmZpZy1mb3ItUENSRS1kZXRlY3Rpb24ucGF0Y2gKQEAgLTAsMCArMSw1MiBAQAorRnJvbSBkODgzNzc1NmYyYTQ4YWRjZmU1ZDY0NWMzOWNmMTYzZDk2ZWFjNzZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS29lbiBLb29pIDxrb2VuLmtvb2lAbGluYXJvLm9yZz4KK0RhdGU6IFR1ZSwgMTcgSnVuIDIwMTQgMDk6MTA6NTcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gY29uZmlndXJlOiB1c2UgcGtnLWNvbmZpZyBmb3IgUENSRSBkZXRlY3Rpb24KKworU2lnbmVkLW9mZi1ieTogS29lbiBLb29pIDxrb2VuLmtvb2lAbGluYXJvLm9yZz4KK1Vwc3RyZWFtLVN0YXR1czogcGVuZGluZworLS0tCisgY29uZmlndXJlLmluIHwgMjcgKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuaW4gYi9jb25maWd1cmUuaW4KK2luZGV4IDg2NGQ3YzcuLmRhNDEzOGUgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuaW4KKysrKyBiL2NvbmZpZ3VyZS5pbgorQEAgLTIxNSwyOCArMjE1LDExIEBAIGZpCisgQUNfQVJHX1dJVEgocGNyZSwKKyBBUEFDSEVfSEVMUF9TVFJJTkcoLS13aXRoLXBjcmU9UEFUSCxVc2UgZXh0ZXJuYWwgUENSRSBsaWJyYXJ5KSkKKyAKKy1BQ19QQVRIX1BST0coUENSRV9DT05GSUcsIHBjcmUtY29uZmlnLCBmYWxzZSkKKy1pZiB0ZXN0IC1kICIkd2l0aF9wY3JlIiAmJiB0ZXN0IC14ICIkd2l0aF9wY3JlL2Jpbi9wY3JlLWNvbmZpZyI7IHRoZW4KKy0gICBQQ1JFX0NPTkZJRz0kd2l0aF9wY3JlL2Jpbi9wY3JlLWNvbmZpZworLWVsaWYgdGVzdCAteCAiJHdpdGhfcGNyZSI7IHRoZW4KKy0gICBQQ1JFX0NPTkZJRz0kd2l0aF9wY3JlCistZmkKKy0KKy1pZiB0ZXN0ICIkUENSRV9DT05GSUciICE9ICJmYWxzZSI7IHRoZW4KKy0gIGlmICRQQ1JFX0NPTkZJRyAtLXZlcnNpb24gPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKKy0gICAgQUNfTVNHX0VSUk9SKFtEaWQgbm90IGZpbmQgcGNyZS1jb25maWcgc2NyaXB0IGF0ICRQQ1JFX0NPTkZJR10pCistICBmaQorLSAgY2FzZSBgJFBDUkVfQ09ORklHIC0tdmVyc2lvbmAgaW4KKy0gIFtbMS01XS4qXSkKKy0gICAgQUNfTVNHX0VSUk9SKFtOZWVkIGF0IGxlYXN0IHBjcmUgdmVyc2lvbiA2LjBdKQorLSAgICA7OworLSAgZXNhYworLSAgQUNfTVNHX05PVElDRShbVXNpbmcgZXh0ZXJuYWwgUENSRSBsaWJyYXJ5IGZyb20gJFBDUkVfQ09ORklHXSkKKy0gIEFQUl9BRERUTyhQQ1JFX0lOQ0xVREVTLCBbYCRQQ1JFX0NPTkZJRyAtLWNmbGFnc2BdKQorLSAgQVBSX0FERFRPKFBDUkVfTElCUywgW2AkUENSRV9DT05GSUcgLS1saWJzYF0pCistZWxzZQorLSAgQUNfTVNHX0VSUk9SKFtwY3JlLWNvbmZpZyBmb3IgbGlicGNyZSBub3QgZm91bmQuIFBDUkUgaXMgcmVxdWlyZWQgYW5kIGF2YWlsYWJsZSBmcm9tIGh0dHA6Ly9wY3JlLm9yZy9dKQorLWZpCisrUEtHX0NIRUNLX01PRFVMRVMoW1BDUkVdLCBbbGlicGNyZV0sIFsKKysgIEFDX0RFRklORShbSEFWRV9QQ1JFXSwgWzFdLCBbRGVmaW5lIGlmIHlvdSBoYXZlIFBDUkUgbGlicmFyeV0pCisrXSwgWworKyAgQUNfTVNHX0VSUk9SKFskUENSRV9QS0dfRVJST1JTXSkKKytdKQorIEFQQUNIRV9TVUJTVChQQ1JFX0xJQlMpCisgCisgQUNfTVNHX05PVElDRShbXSkKKy0tIAorMS45LjMKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvZmlsZXMvYXBhY2hlMi12b2xhdGlsZS5jb25mIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvZmlsZXMvYXBhY2hlMi12b2xhdGlsZS5jb25mCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmMmM1ODcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9maWxlcy9hcGFjaGUyLXZvbGF0aWxlLmNvbmYKQEAgLTAsMCArMSwyIEBACitkICAvdmFyL3J1bi9hcGFjaGUyIDA3NTUgcm9vdCByb290IC0KK2QgIC92YXIvbG9nL2FwYWNoZTIgMDc1NSByb290IHJvb3QgLQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvZmlsZXMvYXBhY2hlMi5zZXJ2aWNlIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvZmlsZXMvYXBhY2hlMi5zZXJ2aWNlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliNTU0OGMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9maWxlcy9hcGFjaGUyLnNlcnZpY2UKQEAgLTAsMCArMSwxNCBAQAorW1VuaXRdCitEZXNjcmlwdGlvbj1UaGUgQXBhY2hlIEhUVFAgU2VydmVyCitBZnRlcj1uZXR3b3JrLnRhcmdldCByZW1vdGUtZnMudGFyZ2V0IG5zcy1sb29rdXAudGFyZ2V0CisKK1tTZXJ2aWNlXQorVHlwZT1zaW1wbGUKK0Vudmlyb25tZW50PUxBTkc9QworRXhlY1N0YXJ0PUBTQklORElSQC9odHRwZCAtREZPUkVHUk9VTkQgLUQgU1NMIC1EIFBIUDUgLWsgc3RhcnQKK0V4ZWNTdG9wPUBCQVNFX0JJTkRJUkAva2lsbCAtV0lOQ0ggJHtNQUlOUElEfQorS2lsbFNpZ25hbD1TSUdDT05UCitQcml2YXRlVG1wPXRydWUKKworW0luc3RhbGxdCitXYW50ZWRCeT1tdWx0aS11c2VyLnRhcmdldApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvZmlsZXMvY29uZmlndXJlLWFsbG93LXRvLWRpc2FibGUtc2VsaW51eC1zdXBwb3J0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvZmlsZXMvY29uZmlndXJlLWFsbG93LXRvLWRpc2FibGUtc2VsaW51eC1zdXBwb3J0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViNWMyOTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9maWxlcy9jb25maWd1cmUtYWxsb3ctdG8tZGlzYWJsZS1zZWxpbnV4LXN1cHBvcnQucGF0Y2gKQEAgLTAsMCArMSw0MCBAQAorRnJvbSBkMjNkZDMzZTM3MzM0MGY2ZmRkZjExOTA0ODM5ZDFhMTE4ODI0NDAxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogV2Vuem9uZyBGYW4gPHdlbnpvbmcuZmFuQHdpbmRyaXZlci5jb20+CitEYXRlOiBNb24sIDEgRGVjIDIwMTQgMDI6MDg6MjcgLTA1MDAKK1N1YmplY3Q6IFtQQVRDSF0gYXBhY2hlMjogYWxsb3cgdG8gZGlzYWJsZSBzZWxpbnV4IHN1cHBvcnQKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IFdlbnpvbmcgRmFuIDx3ZW56b25nLmZhbkB3aW5kcml2ZXIuY29tPgorLS0tCisgY29uZmlndXJlLmluIHwgICAxNCArKysrKysrKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmluIGIvY29uZmlndXJlLmluCitpbmRleCBkZjk0ZWU1Li44YzNhYjIxIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmluCisrKysgYi9jb25maWd1cmUuaW4KK0BAIC00NjYsMTAgKzQ2NiwxNiBAQCBnZXRsb2FkYXZnCisgZG5sIGNvbmZpcm0gdGhhdCBhIHZvaWQgcG9pbnRlciBpcyBsYXJnZSBlbm91Z2ggdG8gc3RvcmUgYSBsb25nIGludGVnZXIKKyBBUEFDSEVfQ0hFQ0tfVk9JRF9QVFJfTEVOCisgCistQUNfQ0hFQ0tfTElCKHNlbGludXgsIGlzX3NlbGludXhfZW5hYmxlZCwgWworLSAgIEFDX0RFRklORShIQVZFX1NFTElOVVgsIDEsIFtEZWZpbmVkIGlmIFNFTGludXggaXMgc3VwcG9ydGVkXSkKKy0gICBBUFJfQUREVE8oQVBfTElCUywgWy1sc2VsaW51eF0pCistXSkKKysjIFNFTGludXggc3VwcG9ydAorK0FDX0FSR19FTkFCTEUoc2VsaW51eCxBUEFDSEVfSEVMUF9TVFJJTkcoLS1lbmFibGUtc2VsaW51eCxFbmFibGUgU0VMaW51eCBzdXBwb3J0IFtkZWZhdWx0PWF1dG9dKSwKKysgICAgW10sW2VuYWJsZV9zZWxpbnV4PWF1dG9dKQorKworK2lmIHRlc3QgeCRlbmFibGVfc2VsaW51eCAhPSB4bm87IHRoZW4KKysgICAgQUNfQ0hFQ0tfTElCKHNlbGludXgsIGlzX3NlbGludXhfZW5hYmxlZCwgWworKyAgICAgICAgQUNfREVGSU5FKEhBVkVfU0VMSU5VWCwgMSwgW0RlZmluZWQgaWYgU0VMaW51eCBpcyBzdXBwb3J0ZWRdKQorKyAgICAgICAgQVBSX0FERFRPKEFQX0xJQlMsIFstbHNlbGludXhdKQorKyAgICBdKQorK2ZpCisgCisgQUNfQ0FDSEVfQ0hFQ0soW2ZvciBnZXR0aWQoKV0sIGFjX2N2X2dldHRpZCwKKyBbQUNfVFJZX1JVTigjZGVmaW5lIF9HTlVfU09VUkNFCistLSAKKzEuNy45LjUKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvZmlsZXMvaHR0cGQtMi40LjMtZml4LXJhY2UtaXNzdWUtb2YtZGlyLWluc3RhbGwucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9maWxlcy9odHRwZC0yLjQuMy1maXgtcmFjZS1pc3N1ZS1vZi1kaXItaW5zdGFsbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTQ4NzUzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvZmlsZXMvaHR0cGQtMi40LjMtZml4LXJhY2UtaXNzdWUtb2YtZGlyLWluc3RhbGwucGF0Y2gKQEAgLTAsMCArMSwyMSBAQAorVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK2ZpeCBmb2xsb3dpbmcgcmFjZSBpc3N1ZSB3aGVuIGRvIHBhcmFsbGVsIGluc3RhbGwKK3wgbWtkaXI6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5IGAvaG9tZS9teXBjL3dvcmtzcGFjZS9wb2t5L2J1aWxkX3A0MDgwZHNfcmVsZWFzZS90bXAvd29yay9wcGNlNTAwbWMtZnNsX25ldHdvcmtpbmctbGludXgvYXBhY2hlMi8yLjQuMy1yMS9pbWFnZS91c3Ivc2hhcmUvYXBhY2hlMic6IEZpbGUgZXhpc3RzCisuLi4KK3wgbWtkaXI6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5IGAvaG9tZS9teXBjL3dvcmtzcGFjZS9wb2t5L2J1aWxkX3A0MDgwZHNfcmVsZWFzZS90bXAvd29yay9wcGNlNTAwbWMtZnNsX25ldHdvcmtpbmctbGludXgvYXBhY2hlMi8yLjQuMy1yMS9pbWFnZS91c3Ivc2hhcmUvYXBhY2hlMic6IEZpbGUgZXhpc3RzCit8IG1ha2VbMV06ICoqKiBbaW5zdGFsbC1tYW5dIEVycm9yIDEKK3wgbWFrZVsxXTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KKworLVNpZ25lZC1vZmYtYnk6IFpoZW5odWEgTHVvIDx6aGVuaHVhLmx1b0BmcmVlc2NhbGUuY29tPgorLS0tIGh0dHBkLTIuNC4zL2J1aWxkL21rZGlyLnNoLm9yaWcJMjAxMy0wMS0yNSAwMzo0NzoyMS41NjUyNTU0MjAgLTA2MDAKKysrKyBodHRwZC0yLjQuMy9idWlsZC9ta2Rpci5zaAkyMDEzLTAxLTI1IDAzOjQ2OjE3LjgzMzA1MTIzMCAtMDYwMAorQEAgLTM5LDcgKzM5LDcgQEAKKyAgICAgICAgIGVzYWMKKyAgICAgICAgIGlmIHRlc3QgISAtZCAiJHBhdGhjb21wIjsgdGhlbgorICAgICAgICAgICAgIGVjaG8gIm1rZGlyICRwYXRoY29tcCIgMT4mMgorLSAgICAgICAgICAgIG1rZGlyICIkcGF0aGNvbXAiIHx8IGVycnN0YXR1cz0kPworKyAgICAgICAgICAgIG1rZGlyIC1wICIkcGF0aGNvbXAiIHx8IGVycnN0YXR1cz0kPworICAgICAgICAgZmkKKyAgICAgICAgIHBhdGhjb21wPSIkcGF0aGNvbXAvIgorICAgICBkb25lCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvYXBhY2hlMi9maWxlcy9pbml0IGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvZmlsZXMvaW5pdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NThkMTMzCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2FwYWNoZTIvZmlsZXMvaW5pdApAQCAtMCwwICsxLDIzMCBAQAorIyEvYmluL3NoCisjIyMgQkVHSU4gSU5JVCBJTkZPCisjIFByb3ZpZGVzOiBodHRwZAorIyBSZXF1aXJlZC1TdGFydDogJGxvY2FsX2ZzICRyZW1vdGVfZnMgJG5ldHdvcmsgJG5hbWVkCisjIFJlcXVpcmVkLVN0b3A6ICRsb2NhbF9mcyAkcmVtb3RlX2ZzICRuZXR3b3JrCisjIFNob3VsZC1TdGFydDogZGlzdGNhY2hlCisjIFNob3J0LURlc2NyaXB0aW9uOiBzdGFydCBhbmQgc3RvcCBBcGFjaGUgSFRUUCBTZXJ2ZXIKKyMgRGVzY3JpcHRpb246IFRoZSBBcGFjaGUgSFRUUCBTZXJ2ZXIgaXMgYW4gZXh0ZW5zaWJsZSBzZXJ2ZXIKKyMgIGltcGxlbWVudGluZyB0aGUgY3VycmVudCBIVFRQIHN0YW5kYXJkcy4KKyMjIyBFTkQgSU5JVCBJTkZPCisKK0FSR1M9Ii1EIFNTTCAtRCBQSFA1IC1rIHN0YXJ0IgorTkFNRT1hcGFjaGUyCitQQVRIPS9iaW46L3Vzci9iaW46L3NiaW46L3Vzci9zYmluCitEQUVNT049L3Vzci9zYmluL2h0dHBkCitTVUVYRUM9L3Vzci9saWIvYXBhY2hlL3N1ZXhlYworUElERklMRT0vcnVuL2h0dHBkLnBpZAorQ09ORj0vZXRjL2FwYWNoZTIvaHR0cGQuY29uZgorQVBBQ0hFQ1RMPS91c3Ivc2Jpbi9hcGFjaGVjdGwgCisKK3RyYXAgIiIgMQorZXhwb3J0IExBTkc9QworZXhwb3J0IFBBVEgKKwordGVzdCAtZiAkREFFTU9OIHx8IGV4aXQgMAordGVzdCAtZiAkQVBBQ0hFQ1RMIHx8IGV4aXQgMAorCisjIGVuc3VyZSB3ZSBkb24ndCBsZWFrIGVudmlyb25tZW50IHZhcnMgaW50byBhcGFjaGVjdGwKK0FQQUNIRUNUTD0iZW52IC1pIExBTkc9JHtMQU5HfSBQQVRIPSR7UEFUSH0gJEFQQUNIRUNUTCIKKworYXBhY2hlX2NvbmZ0ZXN0KCkgeworICAgIGlmICQoJEFQQUNIRUNUTCBjb25maWd0ZXN0ID4gL2Rldi9udWxsIDI+JjEgKTsgdGhlbgorICAgICAgICByZXR1cm4gMAorICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIDEKKyAgICBmaQorfQorCithcGFjaGVfd2FpdF9zdGFydCgpIHsKKyAgICBsb2NhbCBTVEFUVVM9JDEKKworICAgIGlmIFsgJFNUQVRVUyAhPSAwIF0gOyB0aGVuCisgICAgICAgIHJldHVybiAkU1RBVFVTCisgICAgZmkKKworICAgIGxvY2FsIGk9MAorICAgIHdoaWxlIDogOyBkbworICAgICAgICAgICAgUElEVE1QPSQocGlkb2YgJERBRU1PTiB8IHRyICcgJyAnXG4nIHwgZ3JlcCAtdyAkKGNhdCAkUElERklMRSkpCisgICAgICAgICAgICBpZiBbIC1uICIke1BJRFRNUDotfSIgXSAmJiBraWxsIC0wICIke1BJRFRNUDotfSIgMj4gL2Rldi9udWxsOyB0aGVuCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAkU1RBVFVTCisgICAgICAgICAgICBmaQorCisgICAgICAgICAgICBpZiBbICRpID0gIjIwIiBdIDsgdGhlbgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gMgorICAgICAgICAgICAgZmkKKworICAgICAgICAgICAgc2xlZXAgMQorICAgICAgICAgICAgaT0kKCgkaSsxKSkKKyAgICBkb25lCit9CisKK2FwYWNoZV93YWl0X3N0b3AoKSB7CisgICAgbG9jYWwgU1RBVFVTPSQxCisKKyAgICBpZiBbICRTVEFUVVMgIT0gMCBdIDsgdGhlbgorICAgICAgICByZXR1cm4gJFNUQVRVUworICAgIGZpCisKKyAgICBQSURUTVA9JChwaWRvZiAkREFFTU9OIHwgdHIgJyAnICdcbicgfCBncmVwIC13ICQoY2F0ICRQSURGSUxFKSkKKyAgICBpZiBbIC1uICIke1BJRFRNUDotfSIgXSAmJiBraWxsIC0wICIke1BJRFRNUDotfSIgMj4gL2Rldi9udWxsOyB0aGVuCisgICAgICAgICAgICBsb2NhbCBpPTAKKyAgICAgICAgICAgIHdoaWxlIGtpbGwgLTAgIiR7UElEVE1QOi19IiAyPiAvZGV2L251bGw7ICBkbworICAgICAgICAgICAgICAgICAgICBpZiBbICRpID0gJzYwJyBdOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBVFVTPTIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICBzbGVlcCAxCisgICAgICAgICAgICAgICAgICAgIGk9JCgoJGkrMSkpCisgICAgICAgICAgICBkb25lCisgICAgICAgICAgICByZXR1cm4gJFNUQVRVUworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuICRTVEFUVVMKKyAgICBmaQorfQorCisjCisjIEZ1bmN0aW9uIHRoYXQgc3RhcnRzIHRoZSBkYWVtb24vc2VydmljZQorIworZG9fc3RhcnQoKQoreworICAgICMgUmV0dXJuCisgICAgIyAgIDAgaWYgZGFlbW9uIGhhcyBiZWVuIHN0YXJ0ZWQKKyAgICAjICAgMSBpZiBkYWVtb24gd2FzIGFscmVhZHkgcnVubmluZworICAgICMgICAyIGlmIGRhZW1vbiBjb3VsZCBub3QgYmUgc3RhcnRlZAorCisgICAgaWYgWyAtZSAkUElERklMRSBdICYmIHBpZG9mICREQUVNT04gfCB0ciAnICcgJ1xuJyB8IGdyZXAgLXcgJChjYXQgJFBJREZJTEUpID4gL2Rldi9udWxsIDI+JjEgOyB0aGVuCisgICAgICAgICAgICByZXR1cm4gMQorICAgIGZpCisKKyAgICBpZiBhcGFjaGVfY29uZnRlc3QgOyB0aGVuCisgICAgICAgICAgICAkQVBBQ0hFQ1RMIHN0YXJ0CisgICAgICAgICAgICBhcGFjaGVfd2FpdF9zdGFydCAkPworICAgICAgICAgICAgcmV0dXJuICQ/CisgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIDIKKyAgICBmaQorfQorCisjCisjIEZ1bmN0aW9uIHRoYXQgc3RvcHMgdGhlIGRhZW1vbi9zZXJ2aWNlCisjCitkb19zdG9wKCkKK3sKKyAgICAjIFJldHVybgorICAgICMgICAwIGlmIGRhZW1vbiBoYXMgYmVlbiBzdG9wcGVkCisgICAgIyAgIDEgaWYgZGFlbW9uIHdhcyBhbHJlYWR5IHN0b3BwZWQKKyAgICAjICAgMiBpZiBkYWVtb24gY291bGQgbm90IGJlIHN0b3BwZWQKKyAgICAjICAgb3RoZXIgaWYgYSBmYWlsdXJlIG9jY3VycmVkCisKKyAgICAgICAgbG9jYWwgQVBfUkVUPTAKKworICAgICAgICBpZiBwaWRvZiAkREFFTU9OID4gL2Rldi9udWxsIDI+JjEgOyB0aGVuCisgICAgICAgICAgICAgICAgaWYgWyAtZSAkUElERklMRSBdICYmIHBpZG9mICREQUVNT04gfCB0ciAnICcgJ1xuJyB8IGdyZXAgLXcgJChjYXQgJFBJREZJTEUpID4gL2Rldi9udWxsIDI+JjEgOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICBBUF9SRVQ9MgorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIEFQX1JFVD0xCisgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQVBfUkVUPTAKKyAgICAgICAgZmkKKworICAgICAgICAjIEFQX1JFVCBpczoKKyAgICAgICAgIyAwIGlmIEFwYWNoZSAod2hpY2hldmVyKSBpcyBub3QgcnVubmluZworICAgICAgICAjIDEgaWYgQXBhY2hlICh3aGljaGV2ZXIpIGlzIHJ1bm5pbmcKKyAgICAgICAgIyAyIGlmIEFwYWNoZSBmcm9tIHRoZSBQSURGSUxFIGlzIHJ1bm5pbmcKKworICAgICAgICBpZiBbICRBUF9SRVQgPSAwIF0gOyB0aGVuCisgICAgICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgZmkKKworICAgICAgICBpZiBbICRBUF9SRVQgPSAyIF0gJiYgYXBhY2hlX2NvbmZ0ZXN0IDsgdGhlbgorICAgICAgICAgICAgICAgICRBUEFDSEVDVEwgc3RvcAorICAgICAgICAgICAgICAgIGFwYWNoZV93YWl0X3N0b3AgJD8KKyAgICAgICAgICAgICAgICByZXR1cm4gJD8KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGlmIFsgJEFQX1JFVCA9IDIgXTsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAga2lsbCAkKHBpZG9mICREQUVNT04gfCB0ciAnICcgJ1xuJyB8IGdyZXAgLXcgJChjYXQgJFBJREZJTEUpKQorICAgICAgICAgICAgICAgICAgICAgICAgYXBhY2hlX3dhaXRfc3RvcCAkPworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQ/CisgICAgICAgICAgICAgICAgZWxpZiBbICRBUF9SRVQgPSAxIF0gOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMgorICAgICAgICAgICAgICAgIGZpCisgICAgICAgIGZpCisKK30KKworY2FzZSAiJDEiIGluCisgIHN0YXJ0KQorICAgIGVjaG8gLW4gIlN0YXJ0aW5nIHdlYiBzZXJ2ZXI6ICROQU1FIgorICAgIGRvX3N0YXJ0CisgICAgY2FzZSAkPyBpbgorICAgICAgICAwfDEpCisgICAgICAgICAgICBlY2hvIC4KKyAgICAgICAgICAgIGV4aXQgMAorICAgICAgICAgICAgOzsKKyAgICAgICAgMikKKyAgICAgICAgICAgIGVjaG8gZmFpbGVkCisgICAgICAgICAgICBleGl0IDEKKyAgICAgICAgICAgIDs7CisgICAgZXNhYworICAgIDs7CisKKyAgc3RvcCkKKyAgICBlY2hvIC1uICJTdG9wcGluZyB3ZWIgc2VydmVyOiAkTkFNRSIKKyAgICBkb19zdG9wCisgICAgY2FzZSAkPyBpbgorICAgICAgICAwfDEpCisgICAgICAgICAgICBlY2hvIC4KKyAgICAgICAgICAgIGV4aXQgMAorICAgICAgICAgICAgOzsKKyAgICAgICAgMikKKyAgICAgICAgICAgIGVjaG8gZmFpbGVkCisgICAgICAgICAgICBleGl0IDEKKyAgICAgICAgICAgIDs7CisgICAgZXNhYworICAgIDs7CisKKyAgcmVsb2FkKQorICAgIGVjaG8gLW4gIlJlbG9hZGluZyAkTkFNRSBjb25maWd1cmF0aW9uIgorICAgIGtpbGwgLUhVUCBgY2F0ICRQSURGSUxFYAorICAgIDs7CisKKyAgcmVsb2FkLW1vZHVsZXMpCisgICAgZWNobyAtbiAiUmVsb2FkaW5nICROQU1FIG1vZHVsZXMiCisgICAgJEFQQUNIRUNUTCByZXN0YXJ0CisgICAgOzsKKworICByZXN0YXJ0KQorICAgIGVjaG8gIlJlc3RhcnRpbmcgd2ViIHNlcnZlcjogJE5BTUUiCisgICAgZG9fc3RvcAorICAgIGNhc2UgIiQ/IiBpbgorICAgICAgICAwfDEpCisgICAgICAgICAgICBkb19zdGFydAorICAgICAgICAgICAgZXhpdCAkPworICAgICAgICAgICAgOzsKKyAgICAgICAgKikKKyAgICAgICAgICAgICMgRmFpbGVkIHRvIHN0b3AKKyAgICAgICAgICAgIGV4aXQgMQorICAgICAgICAgICAgOzsKKyAgICBlc2FjCisgICAgOzsKKworICBmb3JjZS1yZWxvYWQpCisgICAgJDAgcmVsb2FkLW1vZHVsZXMKKyAgICBleGl0ICQ/CisgICAgOzsKKworICAqKQorICAgIGVjaG8gIlVzYWdlOiAvZXRjL2luaXQuZC8kTkFNRSB7c3RhcnR8c3RvcHxyZWxvYWR8cmVsb2FkLW1vZHVsZXN8Zm9yY2UtcmVsb2FkfHJlc3RhcnR9IgorICAgIGV4aXQgMQorICAgIDs7Citlc2FjCisKK2lmIFsgJD8gPSAwIF07IHRoZW4KKwllY2hvIC4KKwlleGl0IDAKK2Vsc2UKKwllY2hvIGZhaWxlZAorCWV4aXQgMQorZmkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9jaGVyb2tlZS9jaGVyb2tlZS9jaGVyb2tlZS1pbnN0YWxsLWNvbmZpZ3VyZWQucHktb25jZS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9jaGVyb2tlZS9jaGVyb2tlZS9jaGVyb2tlZS1pbnN0YWxsLWNvbmZpZ3VyZWQucHktb25jZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzM2ZjdkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2NoZXJva2VlL2NoZXJva2VlL2NoZXJva2VlLWluc3RhbGwtY29uZmlndXJlZC5weS1vbmNlLnBhdGNoCkBAIC0wLDAgKzEsNDAgQEAKK0Zyb20gOThhMGYxOWRmMGEzMWQ1NjQ5YWQ4OWQzOTVmZDFiOGRlNTU5MTgyNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJvYmVydCBZYW5nIDxsaWV6aGkueWFuZ0B3aW5kcml2ZXIuY29tPgorRGF0ZTogVGh1LCAzIEFwciAyMDE0IDIxOjMzOjI1ICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIGFkbWluL01ha2VmaWxlLmFtOiBvbmx5IGluc3RhbGwgY29uZmlndXJlZC5weSBvbmNlCisKK0JvdGggdGhlIHR3byBydWxlcyBpbnN0YWxsLWFkbWlucHlEQVRBIGFuZCBpbnN0YWxsLWdlbmVyYXRlZERBVEEgd2lsbAoraW5zdGFsbCB0aGUgY29uZmlndXJlZC5weSB0byB0aGUgc2FtZSBsb2NhdGlvbiwgdGhleSBjYW4gcnVuIHBhcmFsbGVsLAorYW5kIHRoZXkgdXNlICJpbnN0YWxsIC1tIiwgd2hpY2ggd291bGQgbWlnaHQgYnVpbGQgZmFpbHVyZXM6CisKKy91c3IvYmluL2luc3RhbGw6IHNldHRpbmcgcGVybWlzc2lvbnMgZm9yIGAvcGF0aC90by9jb25maWd1cmVkLnB5JzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQorCitUaGlzIGlzIGJlY2F1c2UgdGhlIGZpcnN0IGluc3RhbGwgaXMgc2V0dGluZyB0aGUgcGVybWlzc2lvbiB3aGlsZSB0aGUKK3NlY29uZCBpbnN0YWxsIGlzIHJlbW92aW5nIHRoZSBmaWxlIGFuIHJlLWluc3RhbGwuCisKK09ubHkgaW5zdGFsbCB0aGUgY29uZmlndXJlZC5weSBvbmNlIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBJIHRoaW5rIHRoYXQKK3RoZXJlIGlzIG5vIHNpZGUgZWZmZWN0IHNpbmNlIGl0IGluc3RhbGxlZCB0aGUgc2FtZSBmaWxlIHRvIHRoZSBzYW1lCitsb2NhdGlvbiB0d2ljZSBpbiB0aGUgcGFzdC4KKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IFJvYmVydCBZYW5nIDxsaWV6aGkueWFuZ0B3aW5kcml2ZXIuY29tPgorLS0tCisgYWRtaW4vTWFrZWZpbGUuYW0gfCAxIC0KKyAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvYWRtaW4vTWFrZWZpbGUuYW0gYi9hZG1pbi9NYWtlZmlsZS5hbQoraW5kZXggY2U1OTM3Yi4uNmY5NjkzNCAxMDA2NDQKKy0tLSBhL2FkbWluL01ha2VmaWxlLmFtCisrKysgYi9hZG1pbi9NYWtlZmlsZS5hbQorQEAgLTczLDcgKzczLDYgQEAgU3lzdGVtU3RhdHNXaWRnZXRzLnB5IFwKKyBXaXphcmQucHkgXAorIFhNTFNlcnZlckRpZ2VzdC5weSBcCisgY29uZmlnX3ZlcnNpb24ucHkgXAorLWNvbmZpZ3VyZWQucHkgXAorIGNvbnN0cy5weSBcCisgdXRpbC5weSBcCisgcG9wZW4ucHkgXAorLS0gCisxLjguMi4xCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9jaGVyb2tlZS9jaGVyb2tlZS9jaGVyb2tlZS5pbml0IGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2NoZXJva2VlL2NoZXJva2VlL2NoZXJva2VlLmluaXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTM2MDNiOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9jaGVyb2tlZS9jaGVyb2tlZS9jaGVyb2tlZS5pbml0CkBAIC0wLDAgKzEsMzIgQEAKKyMhL2Jpbi9zaAorREFFTU9OPS91c3Ivc2Jpbi9jaGVyb2tlZQorQ09ORklHPS9ldGMvY2hlcm9rZWUvY2hlcm9rZWUuY29uZgorUElERklMRT0vdmFyL3J1bi9jaGVyb2tlZS5waWQKK05BTUU9ImNoZXJva2VlIgorREVTQz0iQ2hlcm9rZWUgaHR0cCBzZXJ2ZXIiCisKK3Rlc3QgLXIgL2V0Yy9kZWZhdWx0L2NoZXJva2VlICYmIC4gL2V0Yy9kZWZhdWx0L2NoZXJva2VlCit0ZXN0IC14ICIkREFFTU9OIiB8fCBleGl0IDAKK3Rlc3QgISAtciAiJENPTkZJRyIgJiYgZXhpdCAwCisgICAgICAgIAorY2FzZSAiJDEiIGluCisgIHN0YXJ0KQorICAgIGVjaG8gIlN0YXJ0aW5nICRERVNDOiAiCisgICAgc3RhcnQtc3RvcC1kYWVtb24gLS1va25vZG8gLVMgLXggJERBRU1PTiAtLSAtZCAtQyAkQ09ORklHCisgICAgOzsKKworICBzdG9wKQorICAgIGVjaG8gIlN0b3BwaW5nICRERVNDOiIKKyAgICBzdGFydC1zdG9wLWRhZW1vbiAtSyAtcCAkUElERklMRQorICAgIDs7CisKKyAgcmVzdGFydCkKKyAgICAkMCBzdG9wID4vZGV2L251bGwgMj4mMQorICAgICQwIHN0YXJ0CisgICAgOzsKKworICAqKQorICAgIGVjaG8gIlVzYWdlOiAkMCB7c3RhcnR8c3RvcHxyZXN0YXJ0fSIKKyAgICBleGl0IDAKKyAgICA7OworZXNhYwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2NoZXJva2VlL2NoZXJva2VlL2NoZXJva2VlLnNlcnZpY2UgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvY2hlcm9rZWUvY2hlcm9rZWUvY2hlcm9rZWUuc2VydmljZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMmQ3MDMxCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2NoZXJva2VlL2NoZXJva2VlL2NoZXJva2VlLnNlcnZpY2UKQEAgLTAsMCArMSwxMCBAQAorW1VuaXRdCitEZXNjcmlwdGlvbj1DaGVyb2tlZSB3ZWIgc2VydmVyCitBZnRlcj1zeXNsb2cudGFyZ2V0CisKK1tTZXJ2aWNlXQorVHlwZT1mb3JraW5nCitFeGVjU3RhcnQ9L3Vzci9zYmluL2NoZXJva2VlIC1kIC1DIC9ldGMvY2hlcm9rZWUvY2hlcm9rZWUuY29uZgorCitbSW5zdGFsbF0KK1dhbnRlZEJ5PW11bHRpLXVzZXIudGFyZ2V0CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvY2hlcm9rZWUvY2hlcm9rZWVfMS4yLjk4LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2NoZXJva2VlL2NoZXJva2VlXzEuMi45OC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Mjg3ZWE0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2NoZXJva2VlL2NoZXJva2VlXzEuMi45OC5iYgpAQCAtMCwwICsxLDY4IEBACitTVU1NQVJZID0gIkNoZXJva2VlIFdlYiBTZXJ2ZXIgZmFzdCBhbmQgc2VjdXJlIgorU1VNTUFSWV9jZ2V0ID0gIlNtYWxsIGRvd25sb2FkZXIgYmFzZWQgaW4gdGhlIENoZXJva2VlIGNsaWVudCBsaWJyYXJ5IgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5jaGVyb2tlZS1wcm9qZWN0LmNvbS8iCitTRUNUSU9OID0gIm5ldHdvcmsiCitMSUNFTlNFID0gIkdQTHYyIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9OTRkNTVkNTEyYTliYTM2Y2FhOWI3ZGYwNzliYWUxOWYiCisKK1BSID0gInI5IgorCitERVBFTkRTID0gImxpYnBjcmUgb3BlbnNzbCBteXNxbDUgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdwYW0nLCAnbGlicGFtJywgJycsIGQpfSIKKworU1JDX1VSSSA9ICJodHRwOi8vd3d3LmNoZXJva2VlLXByb2plY3QuZGUvbWlycm9ycy9jaGVyb2tlZS8xLjIvJHtQVn0vY2hlcm9rZWUtJHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL2NoZXJva2VlLmluaXQgXAorICAgICAgICAgICBmaWxlOi8vY2hlcm9rZWUuc2VydmljZSBcCisgICAgICAgICAgIGZpbGU6Ly9jaGVyb2tlZS1pbnN0YWxsLWNvbmZpZ3VyZWQucHktb25jZS5wYXRjaCBcCisiCitTUkNfVVJJW21kNXN1bV0gPSAiMjFiMDFlN2Q0NWMwZTgyZWNjMGM0MjU3YTljMjdmZWIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMDQyYjU2ODdiMWEzZGIzY2E4MTgxNjc1NDhjZTVkMzJjMzVlMjI3YzY2NDA3MzJkY2I2MjJhNmY0YTA3OGI3ZCIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGJpbmNvbmZpZyB1cGRhdGUtcmMuZCBzeXN0ZW1kCisKK1BBQ0tBR0VDT05GSUcgPz89ICIiCitQQUNLQUdFQ09ORklHW2ZmbXBlZ10gPSAiLS13aXRoLWZmbXBlZywtLXdpdGhvdXQtZmZtcGVnLGxpYmF2IgorUEFDS0FHRUNPTkZJR1tsZGFwXSA9ICItLXdpdGgtbGRhcCwtLXdpdGhvdXQtbGRhcCxvcGVubGRhcCIKK1BBQ0tBR0VDT05GSUdbZ2VvaXBdID0gIi0td2l0aC1nZW9pcCwtLXdpdGhvdXQtZ2VvaXAsZ2VvaXAiCisKK0VYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtc3RhdGljIFwKKyAgICAgICAgICAgICAgICAtLWRpc2FibGUtbmxzIFwKKyAgICAgICAgICAgICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAncGFtJywgJy0tZW5hYmxlLXBhbScsICctLWRpc2FibGUtcGFtJywgZCl9IFwKKyAgICAgICAgICAgICAgIC0td2l0aC13d3dyb290PSR7bG9jYWxzdGF0ZWRpcn0vd3d3L2NoZXJva2VlIFwKKyIKKworZG9faW5zdGFsbF9hcHBlbmQgKCkgeworICAgIGluc3RhbGwgLW0gMDc1NSAtZCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQKKyAgICBpbnN0YWxsIC1tIDc1NSAke1dPUktESVJ9L2NoZXJva2VlLmluaXQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL2NoZXJva2VlCisKKyAgICAjIGNsZWFuIHVwIC5sYSBmaWxlcyBmb3IgcGx1Z2lucworICAgIHJtIC1mICR7RH0ke2xpYmRpcn0vY2hlcm9rZWUvKi5sYQorCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L2NoZXJva2VlLnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KKyAgICBybWRpciAiJHtEfSR7bG9jYWxzdGF0ZWRpcn0vcnVuIgorICAgIHJtZGlyIC0taWdub3JlLWZhaWwtb24tbm9uLWVtcHR5ICIke0R9JHtsb2NhbHN0YXRlZGlyfSIKK30KKworIyBQdXQgLWRldiBuZWFyIHRoZSBmcm9udCBzbyB3ZSBjYW4gbW92ZSB0aGUgLmxhIGZpbGVzIGludG8gaXQgd2l0aCBhIHdpbGRjYXJkCitQQUNLQUdFUyA9KyAibGliY2hlcm9rZWUtc2VydmVyIGxpYmNoZXJva2VlLWNsaWVudCBsaWJjaGVyb2tlZS1iYXNlIGNnZXQiCisKK0ZJTEVTX2NnZXQgPSAiJHtiaW5kaXJ9L2NnZXQiCitGSUxFU19saWJjaGVyb2tlZS1zZXJ2ZXIgPSAiJHtsaWJkaXJ9L2xpYmNoZXJva2VlLXNlcnZlciR7U09MSUJTfSIKK0ZJTEVTX2xpYmNoZXJva2VlLWNsaWVudCA9ICIke2xpYmRpcn0vbGliY2hlcm9rZWUtY2xpZW50JHtTT0xJQlN9IgorRklMRVNfbGliY2hlcm9rZWUtYmFzZSA9ICIke2xpYmRpcn0vbGliY2hlcm9rZWUtYmFzZSR7U09MSUJTfSIKKworIyBQYWNrIHRoZSBodGRvY3MKK0ZJTEVTXyR7UE59ICs9ICIke2xvY2Fsc3RhdGVkaXJ9L3d3dy9jaGVyb2tlZSIKKworQ09ORkZJTEVTXyR7UE59ID0gIiBcCisgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9jaGVyb2tlZS9jaGVyb2tlZS5jb25mIFwKKyAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L2luaXQuZC9jaGVyb2tlZSBcCisiCisKK0lOSVRTQ1JJUFRfTkFNRSA9ICJjaGVyb2tlZSIKK0lOSVRTQ1JJUFRfUEFSQU1TID0gImRlZmF1bHRzIDkxIDkxIgorCitSUFJPVklERVNfJHtQTn0gKz0gIiR7UE59LXN5c3RlbWQiCitSUkVQTEFDRVNfJHtQTn0gKz0gIiR7UE59LXN5c3RlbWQiCitSQ09ORkxJQ1RTXyR7UE59ICs9ICIke1BOfS1zeXN0ZW1kIgorU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gImNoZXJva2VlLnNlcnZpY2UiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvaGlhd2F0aGEvZmlsZXMvaGlhd2F0aGEtaW5pdCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9oaWF3YXRoYS9maWxlcy9oaWF3YXRoYS1pbml0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3ZmMwODcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvaGlhd2F0aGEvZmlsZXMvaGlhd2F0aGEtaW5pdApAQCAtMCwwICsxLDQ0IEBACisjIS9iaW4vc2gKKworIyMjIEJFR0lOIElOSVQgSU5GTworIyBQcm92aWRlczogICAgICAgICAgaGlhd2F0aGEgaHR0cGQgaHR0cGQtY2dpCisjIFJlcXVpcmVkLVN0YXJ0OiAgICAkc3lzbG9nICRuZXR3b3JrICRyZW1vdGVfZnMKKyMgUmVxdWlyZWQtU3RvcDogICAgICRzeXNsb2cgJG5ldHdvcmsgJHJlbW90ZV9mcworIyBEZWZhdWx0LVN0YXJ0OiAgICAgMiAzIDQgNQorIyBEZWZhdWx0LVN0b3A6ICAgICAgMCAxIDYKKyMgU2hvcnQtRGVzY3JpcHRpb246IEhpYXdhdGhhIHdlYnNlcnZlcgorIyBEZXNjcmlwdGlvbjogICAgICAgSGlhd2F0aGEsIGEgc2VjdXJlIGFuZCBhZHZhbmNlZCB3ZWJzZXJ2ZXIuCisjIyMgRU5EIElOSVQgSU5GTworCitQQVRIPS9zYmluOi9iaW46L3Vzci9zYmluOi91c3IvYmluCitEQUVNT049c2VkX3NiaW5fcGF0aC9oaWF3YXRoYQorTkFNRT1oaWF3YXRoYQorREVTQz0iSGlhd2F0aGEgV2ViIFNlcnZlciIKK09QVFM9IiIKKworY2FzZSAiJDEiIGluCisgIHN0YXJ0KQorCWVjaG8gLW4gIlN0YXJ0aW5nICRERVNDOiAiCisJc3RhcnQtc3RvcC1kYWVtb24gLS1zdGFydCAteCAiJERBRU1PTiIgLS0gJE9QVFMKKwllY2hvICIkTkFNRS4iCisJOzsKKyAgc3RvcCkKKwllY2hvIC1uICJTdG9wcGluZyAkREVTQzogIgorCXN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RvcCAteCAiJERBRU1PTiIKKwllY2hvICIkTkFNRS4iCisJOzsKKyAgcmVzdGFydHxmb3JjZS1yZWxvYWQpCisJZWNobyAtbiAiUmVzdGFydGluZyAkREVTQzogIgorCXN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RvcCAteCAiJERBRU1PTiIKKwlzbGVlcCAxCisJc3RhcnQtc3RvcC1kYWVtb24gLS1zdGFydCAteCAiJERBRU1PTiIgLS0gJE9QVFMKKwllY2hvICIkTkFNRS4iCisJOzsKKyAgKikKKwlOPS9ldGMvaW5pdC5kLyROQU1FCisJZWNobyAiVXNhZ2U6ICROIHtzdGFydHxzdG9wfHJlc3RhcnR8Zm9yY2UtcmVsb2FkfSIgPiYyCisJZXhpdCAxCisJOzsKK2VzYWMKKworZXhpdCAwCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvaGlhd2F0aGEvZmlsZXMvaGlhd2F0aGEuc2VydmljZSBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9oaWF3YXRoYS9maWxlcy9oaWF3YXRoYS5zZXJ2aWNlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2Y2I4ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvaGlhd2F0aGEvZmlsZXMvaGlhd2F0aGEuc2VydmljZQpAQCAtMCwwICsxLDE2IEBACitbVW5pdF0KK0Rlc2NyaXB0aW9uPUhpYXdhdGhhIFdlYiBTZXJ2ZXIKK0FmdGVyPW5ldHdvcmsudGFyZ2V0IHJlbW90ZS1mcy50YXJnZXQgbnNzLWxvb2t1cC50YXJnZXQKKworW1NlcnZpY2VdCitUeXBlPXNpbXBsZQorU3lzbG9nSWRlbnRpZmllcj1oaWF3YXRoYQorRXhlY1N0YXJ0UHJlPS91c3Ivc2Jpbi9oaWF3YXRoYSAtayA7IC91c3Ivc2Jpbi93aWd3YW0KK0V4ZWNTdGFydD0gL3Vzci9zYmluL2hpYXdhdGhhIC1kCitUaW1lb3V0U2VjPTEwCisjKGRvZXNuJ3QgbGlrZSB0aGlzIHNldHRpbmcuIENhbid0IGZpbmQgZmlsZXMpIFByaXZhdGVUbXA9dHJ1ZQorTGltaXROT0ZJTEU9aW5maW5pdHkKK0NhcGFiaWxpdHlCb3VuZGluZ1NldD1DQVBfTkVUX0JJTkRfU0VSVklDRSBDQVBfQ0hPV04gQ0FQX0RBQ19PVkVSUklERSBDQVBfRk9XTkVSIENBUF9GU0VUSUQgQ0FQX1NFVEdJRCBDQVBfU0VUVUlEIAorCitbSW5zdGFsbF0KK1dhbnRlZEJ5PW11bHRpLXVzZXIudGFyZ2V0CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvaGlhd2F0aGEvaGlhd2F0aGFfOS4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2hpYXdhdGhhL2hpYXdhdGhhXzkuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDYyMTc0Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL2hpYXdhdGhhL2hpYXdhdGhhXzkuMi5iYgpAQCAtMCwwICsxLDY1IEBACitTVU1NQVJZID0gIkxpZ2h0d2VpZ2h0IHNlY3VyZSB3ZWIgc2VydmVyIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5oaWF3YXRoYS13ZWJzZXJ2ZXIub3JnIgorTElDRU5TRSA9ICJHUEx2MiIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTc1MTQxOTI2MGFhOTU0NDk5ZjdhYmFhYmFhODgyYmJlIgorREVQRU5EUyA9ICJsaWJ4bWwyIGxpYnhzbHQiCisKK1NFQ1RJT04gPSAibmV0IgorCitTUkNfVVJJID0gImh0dHA6Ly9oaWF3YXRoYS13ZWJzZXJ2ZXIub3JnL2ZpbGVzLyR7QlB9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9oaWF3YXRoYS1pbml0IFwKKyAgICAgICAgICAgZmlsZTovL2hpYXdhdGhhLnNlcnZpY2UgIgorCitTUkNfVVJJW21kNXN1bV0gPSAiYTc3ZjA0NDYzNDg4NGM0Y2M1ZDIxZGFiNDRlODIyYTMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNWQ5Y2RlYzUxYzYxOGJiM2VmYWI3NDcwMzBlNTkzZDliZDQ5ZGZhZjMyMzYyNTRjOGUwY2I2MDcxNTcxNmRiZiIKKworSU5JVFNDUklQVF9OQU1FID0gImhpYXdhdGhhIgorSU5JVFNDUklQVF9QQVJBTVMgPSAiZGVmYXVsdHMgNzAiCisKK1NZU1RFTURfU0VSVklDRV8ke1BOfSA9ICJoaWF3YXRoYS5zZXJ2aWNlIgorCitpbmhlcml0IGNtYWtlIHVwZGF0ZS1yYy5kIHN5c3RlbWQKKworRVhUUkFfT0VDTUFLRSA9ICIgLURFTkFCTEVfSVBWNj1PRkYgXAorICAgICAgICAgICAgICAgICAgLURFTkFCTEVfQ0FDSEU9T0ZGIFwKKyAgICAgICAgICAgICAgICAgIC1ERU5BQkxFX0RFQlVHPU9GRiBcCisgICAgICAgICAgICAgICAgICAtREVOQUJMRV9TU0w9T0ZGIFwKKyAgICAgICAgICAgICAgICAgIC1ERU5BQkxFX1RPT0xLSVQ9T0ZGIFwKKyAgICAgICAgICAgICAgICAgIC1ERU5BQkxFX0NIUk9PVD1PRkYgXAorICAgICAgICAgICAgICAgICAgLURFTkFCTEVfWFNMVD1PTiBcCisgICAgICAgICAgICAgICAgICAtREVOQUJMRV9UT01BSEFXSz1PRkYgXAorICAgICAgICAgICAgICAgICAgLURDTUFLRV9JTlNUQUxMX01BTkRJUj0ke21hbmRpcn0gXAorICAgICAgICAgICAgICAgICAgLURDTUFLRV9JTlNUQUxMX0JJTkRJUj0ke2JpbmRpcn0gXAorICAgICAgICAgICAgICAgICAgLURDTUFLRV9JTlNUQUxMX1NCSU5ESVI9JHtzYmluZGlyfSBcCisgICAgICAgICAgICAgICAgICAtRENNQUtFX0lOU1RBTExfU1lTQ09ORkRJUj0ke3N5c2NvbmZkaXJ9IFwKKyAgICAgICAgICAgICAgICAgIC1EQ01BS0VfSU5TVEFMTF9MSUJESVI9JHtsaWJkaXJ9IFwKKyAgICAgICAgICAgICAgICAgIC1ETE9HX0RJUj0vdmFyL2xvZy9oaWF3YXRoYSBcCisgICAgICAgICAgICAgICAgICAtRFBJRF9ESVI9L3Zhci9ydW4gXAorICAgICAgICAgICAgICAgICAgLURXRUJST09UX0RJUj0vdmFyL3d3dy9oaWF3YXRoYSBcCisgICAgICAgICAgICAgICAgICAtRFdPUktfRElSPS92YXIvbGliL2hpYXdhdGhhICIKKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisgICAgIyBDb3B5IG92ZXIgaW5pdCBzY3JpcHQgYW5kIHNlZCBpbiB0aGUgY29ycmVjdCBzYmluIHBhdGgKKyAgICBzZWQgLWkgJ3Msc2VkX3NiaW5fcGF0aCwke3NiaW5kaXJ9LCcgJHtXT1JLRElSfS9oaWF3YXRoYS1pbml0CisgICAgbWtkaXIgLXAgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCisgICAgaW5zdGFsbCAtbSAwNzU1ICR7V09SS0RJUn0vaGlhd2F0aGEtaW5pdCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvaGlhd2F0aGEKKworICAgICMgY29uZmlndXJlIHBocC1mY2dpIHRvIGhhdmUgYSB3b3JraW5nIGNvbmZpZ3VyYXRpb24KKyAgICAjIGJ5IGRlZmF1bHQgaWYgcGhwIGlzIGluc3RhbGxlZAorICAgIGVjaG8gIlNlcnZlciA9ICR7YmluZGlyfS9waHAtY2dpIDsgMiA7IDEyNy4wLjAuMToyMDA1IDsgbm9ib2R5Om5vYm9keSA7ICR7c3lzY29uZmRpcn0vcGhwL2hpYXdhdGhhLXBocDUvcGhwLmluaSIgPj4gJHtEfSR7c3lzY29uZmRpcn0vaGlhd2F0aGEvcGhwLWZjZ2kuY29uZgorCisgICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsJ3N5c3RlbWQnLCd0cnVlJywnZmFsc2UnLGQpfTsgdGhlbgorICAgICAgICBpbnN0YWxsIC1kICR7RH0vJHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgICAgICBpbnN0YWxsIC1tIDY0NCAke1dPUktESVJ9L2hpYXdhdGhhLnNlcnZpY2UgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgZmkKKworICAgIHJtZGlyIC0taWdub3JlLWZhaWwtb24tbm9uLWVtcHR5ICIke0R9JHtsb2NhbHN0YXRlZGlyfSIKK30KKworQ09ORkZJTEVTXyR7UE59ID0gIiBcCisgICAgJHtzeXNjb25mZGlyfS9oaWF3YXRoYS9jZ2ktd3JhcHBlci5jb25mIFwKKyAgICAke3N5c2NvbmZkaXJ9L2hpYXdhdGhhL2hpYXdhdGhhLmNvbmYgXAorICAgICR7c3lzY29uZmRpcn0vaGlhd2F0aGEvaW5kZXgueHNsdCBcCisgICAgJHtzeXNjb25mZGlyfS9oaWF3YXRoYS9taW1ldHlwZS5jb25mIFwKKyAgICAke3N5c2NvbmZkaXJ9L2hpYXdhdGhhL3BocC1mY2dpLmNvbmYgXAorIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL21vbmtleS9maWxlcy9tb25rZXkuaW5pdCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9tb25rZXkvZmlsZXMvbW9ua2V5LmluaXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBiMjExOAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9tb25rZXkvZmlsZXMvbW9ua2V5LmluaXQKQEAgLTAsMCArMSwzNCBAQAorIyEvYmluL3NoCisKK1BBVEg9L3NiaW46L2JpbjovdXNyL3NiaW46L3Vzci9iaW4KK0RBRU1PTj0vdXNyL2Jpbi9tb25rZXkKK05BTUU9bW9ua2V5CitERVNDPSJNb25rZXkgSFRUUCBTZXJ2ZXIiCitPUFRTPSItLWRhZW1vbiIKKworY2FzZSAiJDEiIGluCisgIHN0YXJ0KQorCWVjaG8gLW4gIlN0YXJ0aW5nICRERVNDOiAiCisJc3RhcnQtc3RvcC1kYWVtb24gLS1zdGFydCAteCAiJERBRU1PTiIgLS0gJE9QVFMKKwllY2hvICIkTkFNRS4iCisJOzsKKyAgc3RvcCkKKwllY2hvIC1uICJTdG9wcGluZyAkREVTQzogIgorCXN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RvcCAteCAiJERBRU1PTiIKKwllY2hvICIkTkFNRS4iCisJOzsKKyAgcmVzdGFydHxmb3JjZS1yZWxvYWQpCisJZWNobyAtbiAiUmVzdGFydGluZyAkREVTQzogIgorCXN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RvcCAteCAiJERBRU1PTiIKKwlzbGVlcCAxCisJc3RhcnQtc3RvcC1kYWVtb24gLS1zdGFydCAteCAiJERBRU1PTiIgLS0gJE9QVFMKKwllY2hvICIkTkFNRS4iCisJOzsKKyAgKikKKwlOPS9ldGMvaW5pdC5kLyROQU1FCisJZWNobyAiVXNhZ2U6ICROIHtzdGFydHxzdG9wfHJlc3RhcnR8Zm9yY2UtcmVsb2FkfSIgPiYyCisJZXhpdCAxCisJOzsKK2VzYWMKKworZXhpdCAwCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbW9ua2V5L2ZpbGVzL21vbmtleS5zZXJ2aWNlIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL21vbmtleS9maWxlcy9tb25rZXkuc2VydmljZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWFhNTdmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL21vbmtleS9maWxlcy9tb25rZXkuc2VydmljZQpAQCAtMCwwICsxLDEyIEBACitbVW5pdF0KK0Rlc2NyaXB0aW9uPU1vbmtleSBIVFRQIFNlcnZlcgorQWZ0ZXI9bmV0d29yay50YXJnZXQgcmVtb3RlLWZzLnRhcmdldAorCitbU2VydmljZV0KK1R5cGU9Zm9ya2luZworRXhlY1N0YXJ0PS91c3IvYmluL21vbmtleSAtLWRhZW1vbgorUElERmlsZT0vdmFyL3J1bi9tb25rZXkucGlkLjIwMDEKK1RpbWVvdXRTZWM9MTAKKworW0luc3RhbGxdCitXYW50ZWRCeT1tdWx0aS11c2VyLnRhcmdldApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL21vbmtleS9tb25rZXlfMS41LjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbW9ua2V5L21vbmtleV8xLjUuNi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZThlZDM3Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL21vbmtleS9tb25rZXlfMS41LjYuYmIKQEAgLTAsMCArMSw2NSBAQAorU1VNTUFSWSA9ICJGYXN0IGFuZCBMaWdodHdlaWdodCBIVFRQIFNlcnZlciBmb3IgTGludXgiCitIT01FUEFHRSA9ICJodHRwOi8vbW9ua2V5LXByb2plY3QuY29tIgorQlVHVFJBQ0tFUiA9ICJodHRwczovL2dpdGh1Yi5jb20vbW9ua2V5L21vbmtleS9pc3N1ZXMiCisKK0xJQ0VOU0UgPSAiQXBhY2hlLTIuMCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PTJlZTQxMTEyYTQ0ZmU3MDE0ZGNlMzNlMjY0NjhiYTkzIgorCitTRUNUSU9OID0gIm5ldCIKKworU1JDX1VSSSA9ICJodHRwOi8vbW9ua2V5LXByb2plY3QuY29tL3JlbGVhc2VzLzEuNS9tb25rZXktJHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL21vbmtleS5zZXJ2aWNlIFwKKyAgICAgICAgICAgZmlsZTovL21vbmtleS5pbml0IgorCitTUkNfVVJJW21kNXN1bV0gPSAiOTY5OWU0YzllYTZjZTZiOTg5OTA3YzI1MmFlODAyNTQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiN2MzZDg0NTMwNmFhNzRlZTZlZmZkN2FiNjE2OWQxNmFjNGU2NDUwZTU2NDk1NGQwZDBiYWEyZDFlOWJlMWEyMiIKKworRVhUUkFfT0VDT05GID0gIi0tcGx1Z2Rpcj0ke2xpYmRpcn0vbW9ua2V5LyBcCisgICAgICAgICAgICAgICAgLS1sb2dkaXI9JHtsb2NhbHN0YXRlZGlyfS9sb2cvbW9ua2V5LyBcCisgICAgICAgICAgICAgICAgLS1waWRmaWxlPSR7bG9jYWxzdGF0ZWRpcn0vcnVuL21vbmtleS5waWQgXAorICAgICAgICAgICAgICAgIC0tZGVmYXVsdC11c2VyPXd3dy1kYXRhIFwKKyAgICAgICAgICAgICAgICAtLWRhdGFkaXI9JHtsb2NhbHN0YXRlZGlyfS93d3cvbW9ua2V5LyBcCisgICAgICAgICAgICAgICAgLS1zeXNjb25mZGlyPSR7c3lzY29uZmRpcn0vbW9ua2V5LyBcCisgICAgICAgICAgICAgICAgLS1lbmFibGUtcGx1Z2lucz0qIFwKKyAgICAgICAgICAgICAgICAtLWRpc2FibGUtcGx1Z2lucz1tYmVkdGxzIFwKKyAgICAgICAgICAgICAgICAtLWRlYnVnIFwKKyAgICAgICAgICAgICAgICAtLW1hbGxvYy1saWJjIgorRElTQUJMRV9TVEFUSUMgPSAiIgorCitpbmhlcml0IGF1dG90b29scy1icm9rZW5zZXAgcGtnY29uZmlnIHVwZGF0ZS1yYy5kIHN5c3RlbWQKKworSU5JVFNDUklQVF9OQU1FID0gIm1vbmtleSIKK0lOSVRTQ1JJUFRfUEFSQU1TID0gImRlZmF1bHRzIDcwIgorCitTWVNURU1EX1NFUlZJQ0VfJHtQTn0gPSAibW9ua2V5LnNlcnZpY2UiCisKK0ZJTEVTXyR7UE59ICs9ICIke2xvY2Fsc3RhdGVkaXJ9L3d3dy9tb25rZXkvIgorCitDT05GRklMRVNfJHtQTn0gPSAiJHtzeXNjb25mZGlyfS9tb25rZXkvbW9ua2V5LmNvbmYgXAorICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vbW9ua2V5L3NpdGVzL2RlZmF1bHQgXAorICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vbW9ua2V5L21vbmtleS5taW1lIFwKKyAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L21vbmtleS9wbHVnaW5zLmxvYWQgXAorICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vbW9ua2V5L3BsdWdpbnMvcHJveHlfcmV2ZXJzZS9wcm94eV9yZXZlcnNlLmNvbmYgXAorICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vbW9ua2V5L3BsdWdpbnMvbWFuZHJpbC9tYW5kcmlsLmNvbmYgXAorICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vbW9ua2V5L3BsdWdpbnMvZmFzdGNnaS9mYXN0Y2dpLmNvbmYgXAorICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vbW9ua2V5L3BsdWdpbnMvbG9nZ2VyL2xvZ2dlci5jb25mIFwKKyAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L21vbmtleS9wbHVnaW5zL2NnaS9jZ2kuY29uZiBcCisgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9tb25rZXkvcGx1Z2lucy9jaGVldGFoL2NoZWV0YWguY29uZiBcCisgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9tb25rZXkvcGx1Z2lucy9kaXJsaXN0aW5nL2Rpcmh0bWwuY29uZiBcCisgICAgICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9tb25rZXkvcGx1Z2lucy9kaXJsaXN0aW5nL3RoZW1lcy9ndWluZW8vaGVhZGVyLnRoZW1lIFwKKyAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L21vbmtleS9wbHVnaW5zL2Rpcmxpc3RpbmcvdGhlbWVzL2d1aW5lby9mb290ZXIudGhlbWUgXAorICAgICAgICAgICAgICAgICAgICR7c3lzY29uZmRpcn0vbW9ua2V5L3BsdWdpbnMvZGlybGlzdGluZy90aGVtZXMvZ3VpbmVvL2VudHJ5LnRoZW1lIFwKKyAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L21vbmtleS9wbHVnaW5zL2F1dGgvUkVBRE1FIFwKKyAgICAgICAgICAgICAgICAgICAke3N5c2NvbmZkaXJ9L21vbmtleS9wbHVnaW5zL2F1dGgvbW9ua2V5LnVzZXJzIFwKKyAgICAgICAgICAgICAgICAgICAiCisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworCisgICAgbWtkaXIgLXAgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCisgICAgaW5zdGFsbCAtbSAwNzU1ICR7V09SS0RJUn0vbW9ua2V5LmluaXQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL21vbmtleQorCisgICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsJ3N5c3RlbWQnLCd0cnVlJywnZmFsc2UnLGQpfTsgdGhlbgorICAgICAgICBpbnN0YWxsIC1kICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgICAgIGluc3RhbGwgLW0gNjQ0ICR7V09SS0RJUn0vbW9ua2V5LnNlcnZpY2UgJHtEfS8ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgZmkKK30KZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9maWxlcy9uZ2lueC1jcm9zcy5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9maWxlcy9uZ2lueC1jcm9zcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Njc5MmJhCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L2ZpbGVzL25naW54LWNyb3NzLnBhdGNoCkBAIC0wLDAgKzEsMjE4IEBACitXZSBkbyBub3QgaGF2ZSBjYXBhYmlsaXR5IHRvIHJ1biBiaW5hcmllcyB3aGVuIGNyb3NzIGNvbXBpbGluZworCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworCitkaWZmIC11cmFOIG5naW54LTEuMC4xMS5vcmlnL2F1dG8vZmVhdHVyZSBuZ2lueC0xLjAuMTEvYXV0by9mZWF0dXJlCistLS0gbmdpbngtMS4wLjExLm9yaWcvYXV0by9mZWF0dXJlCTIwMTEtMDUtMTEgMDY6NTA6MTkuMDAwMDAwMDAwIC0wNTAwCisrKysgbmdpbngtMS4wLjExL2F1dG8vZmVhdHVyZQkyMDExLTEyLTI3IDEzOjU2OjQyLjMyMzM3MDA0MCAtMDYwMAorQEAgLTQ4LDEyICs0OCwyMCBAQAorIAorIGlmIFsgLXggJE5HWF9BVVRPVEVTVCBdOyB0aGVuCisgCisrICAgIGlmIFsgIi4kTkdYX0NST1NTX0NPTVBJTEUiID0gIi55ZXMiIF07IHRoZW4KKysgICAgICAgIE5HWF9BVVRPVEVTVF9FWEVDPSJ0cnVlIgorKwlOR1hfRk9VTkRfTVNHPSIgKG5vdCB0ZXN0ZWQsIGNyb3NzIGNvbXBpbGluZykiCisrICAgIGVsc2UKKysgICAgICAgIE5HWF9BVVRPVEVTVF9FWEVDPSIkTkdYX0FVVE9URVNUIgorKwlOR1hfRk9VTkRfTVNHPSIiCisrICAgIGZpCisrCisgICAgIGNhc2UgIiRuZ3hfZmVhdHVyZV9ydW4iIGluCisgCisgICAgICAgICB5ZXMpCisgICAgICAgICAgICAgIyAvYmluL3NoIGlzIHVzZWQgdG8gaW50ZXJjZXB0ICJLaWxsZWQiIG9yICJBYm9ydCB0cmFwIiBtZXNzYWdlcworLSAgICAgICAgICAgIGlmIC9iaW4vc2ggLWMgJE5HWF9BVVRPVEVTVCA+PiAkTkdYX0FVVE9DT05GX0VSUiAyPiYxOyB0aGVuCistICAgICAgICAgICAgICAgIGVjaG8gIiBmb3VuZCIKKysgICAgICAgICAgICBpZiAvYmluL3NoIC1jICROR1hfQVVUT1RFU1RfRVhFQyA+PiAkTkdYX0FVVE9DT05GX0VSUiAyPiYxOyB0aGVuCisrICAgICAgICAgICAgICAgIGVjaG8gIiBmb3VuZCROR1hfRk9VTkRfTVNHIgorICAgICAgICAgICAgICAgICBuZ3hfZm91bmQ9eWVzCisgCisgICAgICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRuZ3hfZmVhdHVyZV9uYW1lIjsgdGhlbgorQEAgLTY3LDE3ICs3NSwyNyBAQAorIAorICAgICAgICAgdmFsdWUpCisgICAgICAgICAgICAgIyAvYmluL3NoIGlzIHVzZWQgdG8gaW50ZXJjZXB0ICJLaWxsZWQiIG9yICJBYm9ydCB0cmFwIiBtZXNzYWdlcworLSAgICAgICAgICAgIGlmIC9iaW4vc2ggLWMgJE5HWF9BVVRPVEVTVCA+PiAkTkdYX0FVVE9DT05GX0VSUiAyPiYxOyB0aGVuCistICAgICAgICAgICAgICAgIGVjaG8gIiBmb3VuZCIKKysgICAgICAgICAgICBpZiAvYmluL3NoIC1jICROR1hfQVVUT1RFU1RfRVhFQyA+PiAkTkdYX0FVVE9DT05GX0VSUiAyPiYxOyB0aGVuCisrICAgICAgICAgICAgICAgIGVjaG8gIiBmb3VuZCROR1hfRk9VTkRfTVNHIgorICAgICAgICAgICAgICAgICBuZ3hfZm91bmQ9eWVzCisgCistICAgICAgICAgICAgICAgIGNhdCA8PCBFTkQgPj4gJE5HWF9BVVRPX0NPTkZJR19ICisrICAgICAgICAgICAgICAgIGlmIFsgIi4kTkdYX0NST1NTX0NPTVBJTEUiID0gIi55ZXMiIF07IHRoZW4KKysgICAgICAgICAgICAgICAgICAgIGNhdCA8PCBFTkQgPj4gJE5HWF9BVVRPX0NPTkZJR19ICisgCisgI2lmbmRlZiAkbmd4X2ZlYXR1cmVfbmFtZQorLSNkZWZpbmUgJG5neF9mZWF0dXJlX25hbWUgIGAkTkdYX0FVVE9URVNUYAorKyNkZWZpbmUgJG5neF9mZWF0dXJlX25hbWUgICQoZXZhbCAiZWNobyBcJE5HWF9XSVRIXyR7bmd4X2ZlYXR1cmVfbmFtZX0iKQorICNlbmRpZgorIAorIEVORAorKwkJZWxzZQorKyAgICAgICAgICAgICAgICAgICAgY2F0IDw8IEVORCA+PiAkTkdYX0FVVE9fQ09ORklHX0gKKysKKysjaWZuZGVmICRuZ3hfZmVhdHVyZV9uYW1lCisrI2RlZmluZSAkbmd4X2ZlYXR1cmVfbmFtZSAgYCROR1hfQVVUT1RFU1RfRVhFQ2AKKysjZW5kaWYKKysKKytFTkQKKysgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgIGVjaG8gIiBmb3VuZCBidXQgaXMgbm90IHdvcmtpbmciCisgICAgICAgICAgICAgZmkKK0BAIC04NSw3ICsxMDMsNyBAQAorIAorICAgICAgICAgYnVnKQorICAgICAgICAgICAgICMgL2Jpbi9zaCBpcyB1c2VkIHRvIGludGVyY2VwdCAiS2lsbGVkIiBvciAiQWJvcnQgdHJhcCIgbWVzc2FnZXMKKy0gICAgICAgICAgICBpZiAvYmluL3NoIC1jICROR1hfQVVUT1RFU1QgPj4gJE5HWF9BVVRPQ09ORl9FUlIgMj4mMTsgdGhlbgorKyAgICAgICAgICAgIGlmIC9iaW4vc2ggLWMgJE5HWF9BVVRPVEVTVF9FWEVDID4+ICROR1hfQVVUT0NPTkZfRVJSIDI+JjE7IHRoZW4KKyAgICAgICAgICAgICAgICAgZWNobyAiIG5vdCBmb3VuZCIKKyAKKyAgICAgICAgICAgICBlbHNlCitkaWZmIC11cmFOIG5naW54LTEuMC4xMS5vcmlnL2F1dG8vb3B0aW9ucyBuZ2lueC0xLjAuMTEvYXV0by9vcHRpb25zCistLS0gbmdpbngtMS4wLjExLm9yaWcvYXV0by9vcHRpb25zCTIwMTEtMTItMTQgMDc6MzQ6MTYuMDAwMDAwMDAwIC0wNjAwCisrKysgbmdpbngtMS4wLjExL2F1dG8vb3B0aW9ucwkyMDExLTEyLTI3IDEzOjU2OjQyLjMyMzM3MDA0MCAtMDYwMAorQEAgLTI4OSw2ICsyODksMTggQEAKKyAgICAgICAgIC0tdGVzdC1idWlsZC1ydHNpZykgICAgICAgICAgICAgIE5HWF9URVNUX0JVSUxEX1JUU0lHPVlFUyAgIDs7CisgICAgICAgICAtLXRlc3QtYnVpbGQtc29sYXJpcy1zZW5kZmlsZXYpICBOR1hfVEVTVF9CVUlMRF9TT0xBUklTX1NFTkRGSUxFVj1ZRVMgOzsKKyAKKysgICAgICAgICMgY3Jvc3MgY29tcGlsZSBzdXBwb3J0CisrICAgICAgICAtLXdpdGgtaW50PSopICAgICAgICAgICAgICAgICAgICBOR1hfV0lUSF9JTlQ9IiR2YWx1ZSIgICAgICAgICAgOzsKKysgICAgICAgIC0td2l0aC1sb25nPSopICAgICAgICAgICAgICAgICAgIE5HWF9XSVRIX0xPTkc9IiR2YWx1ZSIgICAgICAgICA7OworKyAgICAgICAgLS13aXRoLWxvbmctbG9uZz0qKSAgICAgICAgICAgICAgTkdYX1dJVEhfTE9OR19MT05HPSIkdmFsdWUiICAgIDs7CisrICAgICAgICAtLXdpdGgtcHRyLXNpemU9KikgICAgICAgICAgICAgICBOR1hfV0lUSF9QVFJfU0laRT0iJHZhbHVlIiAgICAgOzsKKysgICAgICAgIC0td2l0aC1zaWctYXRvbWljLXQ9KikgICAgICAgICAgIE5HWF9XSVRIX1NJR19BVE9NSUNfVD0iJHZhbHVlIiA7OworKyAgICAgICAgLS13aXRoLXNpemUtdD0qKSAgICAgICAgICAgICAgICAgTkdYX1dJVEhfU0laRV9UPSIkdmFsdWUiICAgICAgIDs7CisrICAgICAgICAtLXdpdGgtb2ZmLXQ9KikgICAgICAgICAgICAgICAgICBOR1hfV0lUSF9PRkZfVD0iJHZhbHVlIiAgICAgICAgOzsKKysgICAgICAgIC0td2l0aC10aW1lLXQ9KikgICAgICAgICAgICAgICAgIE5HWF9XSVRIX1RJTUVfVD0iJHZhbHVlIiAgICAgICA7OworKyAgICAgICAgLS13aXRoLXN5cy1uZXJyPSopICAgICAgICAgICAgICAgTkdYX1dJVEhfTkdYX1NZU19ORVJSPSIkdmFsdWUiIDs7CisrICAgICAgICAtLXdpdGgtZW5kaWFuPSopICAgICAgICAgICAgICAgICBOR1hfV0lUSF9FTkRJQU49IiR2YWx1ZSIgICAgICAgOzsKKysKKyAgICAgICAgICopCisgICAgICAgICAgICAgZWNobyAiJDA6IGVycm9yOiBpbnZhbGlkIG9wdGlvbiBcIiRvcHRpb25cIiIKKyAgICAgICAgICAgICBleGl0IDEKK0BAIC00MzQsNiArNDQ2LDE3IEBACisgCisgICAtLXdpdGgtZGVidWcgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZSBkZWJ1ZyBsb2dnaW5nCisgCisrICAtLXdpdGgtaW50PVZBTFVFICAgICAgICAgICAgICAgICAgIGZvcmNlIGludCBzaXplCisrICAtLXdpdGgtbG9uZz1WQUxVRSAgICAgICAgICAgICAgICAgIGZvcmNlIGxvbmcgc2l6ZQorKyAgLS13aXRoLWxvbmctbG9uZz1WQUxVRSAgICAgICAgICAgICBmb3JjZSBsb25nIGxvbmcgc2l6ZQorKyAgLS13aXRoLXB0ci1zaXplPVZBTFVFICAgICAgICAgICAgICBmb3JjZSBwb2ludGVyIHNpemUKKysgIC0td2l0aC1zaWctYXRvbWljLXQ9VkFMVUUgICAgICAgICAgZm9yY2Ugc2lnX2F0b21pY190IHNpemUKKysgIC0td2l0aC1zaXplLXQ9VkFMVUUgICAgICAgICAgICAgICAgZm9yY2Ugc2l6ZV90IHNpemUKKysgIC0td2l0aC1vZmYtdD1WQUxVRSAgICAgICAgICAgICAgICAgZm9yY2Ugb2ZmX3Qgc2l6ZQorKyAgLS13aXRoLXRpbWUtdD1WQUxVRSAgICAgICAgICAgICAgICBmb3JjZSB0aW1lX3Qgc2l6ZQorKyAgLS13aXRoLXN5cy1uZXJyPVZBTFVFICAgICAgICAgICAgICBmb3JjZSBzeXNfbmVyciB2YWx1ZQorKyAgLS13aXRoLWVuZGlhbj1WQUxVRSAgICAgICAgICAgICAgICBmb3JjZSBzeXN0ZW0gZW5kaWFuZXNzCisrCisgRU5ECisgCisgICAgIGV4aXQgMQorQEAgLTQ1NSw2ICs0NzgsOCBAQAorIAorIGlmIFsgIi4kTkdYX1BMQVRGT1JNIiA9ICIud2luMzIiIF07IHRoZW4KKyAgICAgTkdYX1dJTkU9JFdJTkUKKytlbGlmIFsgISAteiAiJE5HWF9QTEFURk9STSIgXTsgdGhlbgorKyAgICBOR1hfQ1JPU1NfQ09NUElMRT0ieWVzIgorIGZpCisgCisgCitkaWZmIC11cmFOIG5naW54LTEuMC4xMS5vcmlnL2F1dG8vdHlwZXMvc2l6ZW9mIG5naW54LTEuMC4xMS9hdXRvL3R5cGVzL3NpemVvZgorLS0tIG5naW54LTEuMC4xMS5vcmlnL2F1dG8vdHlwZXMvc2l6ZW9mCTIwMDYtMDYtMjggMTE6MDA6MjYuMDAwMDAwMDAwIC0wNTAwCisrKysgbmdpbngtMS4wLjExL2F1dG8vdHlwZXMvc2l6ZW9mCTIwMTEtMTItMjcgMTM6NTY6NDIuMzIzMzcwMDQwIC0wNjAwCitAQCAtMTIsOSArMTIsMTIgQEAKKyAKKyBFTkQKKyAKKy1uZ3hfc2l6ZT0KKytuZ3hfc2l6ZT0kKGV2YWwgImVjaG8gXCROR1hfV0lUSF8ke25neF9wYXJhbX0iKQorIAorLWNhdCA8PCBFTkQgPiAkTkdYX0FVVE9URVNULmMKKytpZiBbICIuJG5neF9zaXplIiAhPSAiLiIgXTsgdGhlbgorKyAgICBlY2hvICIgJG5neF9zaXplIGJ5dGVzIgorK2Vsc2UKKysgICAgY2F0IDw8IEVORCA+ICROR1hfQVVUT1RFU1QuYworIAorICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KK0BAIC0zMywyMCArMzYsMjAgQEAKKyBFTkQKKyAKKyAKKy1uZ3hfdGVzdD0iJENDICRDQ19URVNUX0ZMQUdTICRDQ19BVVhfRkxBR1MgXAorLSAgICAgICAgICAtbyAkTkdYX0FVVE9URVNUICROR1hfQVVUT1RFU1QuYyAkTkdYX0xEX09QVCAkbmd4X2ZlYXR1cmVfbGlicyIKKysgICAgbmd4X3Rlc3Q9IiRDQyAkQ0NfVEVTVF9GTEFHUyAkQ0NfQVVYX0ZMQUdTIFwKKysJICAgICAgLW8gJE5HWF9BVVRPVEVTVCAkTkdYX0FVVE9URVNULmMgJE5HWF9MRF9PUFQgJG5neF9mZWF0dXJlX2xpYnMiCisgCistZXZhbCAiJG5neF90ZXN0ID4+ICROR1hfQVVUT0NPTkZfRVJSIDI+JjEiCisrICAgIGV2YWwgIiRuZ3hfdGVzdCA+PiAkTkdYX0FVVE9DT05GX0VSUiAyPiYxIgorIAorIAorLWlmIFsgLXggJE5HWF9BVVRPVEVTVCBdOyB0aGVuCistICAgIG5neF9zaXplPWAkTkdYX0FVVE9URVNUYAorLSAgICBlY2hvICIgJG5neF9zaXplIGJ5dGVzIgorLWZpCisrICAgIGlmIFsgLXggJE5HWF9BVVRPVEVTVCBdOyB0aGVuCisrCW5neF9zaXplPWAkTkdYX0FVVE9URVNUYAorKwllY2hvICIgJG5neF9zaXplIGJ5dGVzIgorKyAgICBmaQorIAorIAorLXJtIC1yZiAkTkdYX0FVVE9URVNUKgorLQorKyAgICBybSAtcmYgJE5HWF9BVVRPVEVTVCoKKytmaQorIAorIGNhc2UgJG5neF9zaXplIGluCisgICAgIDQpCitkaWZmIC11cmFOIG5naW54LTEuMC4xMS5vcmlnL2F1dG8vdW5peCBuZ2lueC0xLjAuMTEvYXV0by91bml4CistLS0gbmdpbngtMS4wLjExLm9yaWcvYXV0by91bml4CTIwMTEtMTItMTQgMDc6MzQ6MTYuMDAwMDAwMDAwIC0wNjAwCisrKysgbmdpbngtMS4wLjExL2F1dG8vdW5peAkyMDExLTEyLTI3IDEzOjU2OjQyLjMyNzM3MDA2MCAtMDYwMAorQEAgLTM5MywxMyArMzkzLDEzIEBACisgCisgIyBDIHR5cGVzCisgCistbmd4X3R5cGU9ImludCI7IC4gYXV0by90eXBlcy9zaXplb2YKKytuZ3hfdHlwZT0iaW50Ijsgbmd4X3BhcmFtPSJJTlQiOyAuIGF1dG8vdHlwZXMvc2l6ZW9mCisgCistbmd4X3R5cGU9ImxvbmciOyAuIGF1dG8vdHlwZXMvc2l6ZW9mCisrbmd4X3R5cGU9ImxvbmciOyBuZ3hfcGFyYW09IkxPTkciOyAuIGF1dG8vdHlwZXMvc2l6ZW9mCisgCistbmd4X3R5cGU9ImxvbmcgbG9uZyI7IC4gYXV0by90eXBlcy9zaXplb2YKKytuZ3hfdHlwZT0ibG9uZyBsb25nIjsgbmd4X3BhcmFtPSJMT05HX0xPTkciOyAuIGF1dG8vdHlwZXMvc2l6ZW9mCisgCistbmd4X3R5cGU9InZvaWQgKiI7IC4gYXV0by90eXBlcy9zaXplb2Y7IG5neF9wdHJfc2l6ZT0kbmd4X3NpemUKKytuZ3hfdHlwZT0idm9pZCAqIjsgbmd4X3BhcmFtPSJQVFJfU0laRSI7IC4gYXV0by90eXBlcy9zaXplb2Y7IG5neF9wdHJfc2l6ZT0kbmd4X3NpemUKKyBuZ3hfcGFyYW09TkdYX1BUUl9TSVpFOyBuZ3hfdmFsdWU9JG5neF9zaXplOyAuIGF1dG8vdHlwZXMvdmFsdWUKKyAKKyAKK0BAIC00MTYsNyArNDE2LDcgQEAKKyAKKyBuZ3hfdHlwZT0idWludDY0X3QiOyBuZ3hfdHlwZXM9InVfaW50NjRfdCI7IC4gYXV0by90eXBlcy90eXBlZGVmCisgCistbmd4X3R5cGU9InNpZ19hdG9taWNfdCI7IG5neF90eXBlcz0iaW50IjsgLiBhdXRvL3R5cGVzL3R5cGVkZWYKKytuZ3hfdHlwZT0ic2lnX2F0b21pY190Ijsgbmd4X3BhcmFtPSJTSUdfQVRPTUlDX1QiOyBuZ3hfdHlwZXM9ImludCI7IC4gYXV0by90eXBlcy90eXBlZGVmCisgLiBhdXRvL3R5cGVzL3NpemVvZgorIG5neF9wYXJhbT1OR1hfU0lHX0FUT01JQ19UX1NJWkU7IG5neF92YWx1ZT0kbmd4X3NpemU7IC4gYXV0by90eXBlcy92YWx1ZQorIAorQEAgLTQzMiwxNSArNDMyLDE1IEBACisgCisgLiBhdXRvL2VuZGlhbmVzcworIAorLW5neF90eXBlPSJzaXplX3QiOyAuIGF1dG8vdHlwZXMvc2l6ZW9mCisrbmd4X3R5cGU9InNpemVfdCI7IG5neF9wYXJhbT0iU0laRV9UIjsgLiBhdXRvL3R5cGVzL3NpemVvZgorIG5neF9wYXJhbT1OR1hfTUFYX1NJWkVfVF9WQUxVRTsgbmd4X3ZhbHVlPSRuZ3hfbWF4X3ZhbHVlOyAuIGF1dG8vdHlwZXMvdmFsdWUKKyBuZ3hfcGFyYW09TkdYX1NJWkVfVF9MRU47IG5neF92YWx1ZT0kbmd4X21heF9sZW47IC4gYXV0by90eXBlcy92YWx1ZQorIAorLW5neF90eXBlPSJvZmZfdCI7IC4gYXV0by90eXBlcy9zaXplb2YKKytuZ3hfdHlwZT0ib2ZmX3QiOyBuZ3hfcGFyYW09Ik9GRl9UIjsgLiBhdXRvL3R5cGVzL3NpemVvZgorIG5neF9wYXJhbT1OR1hfTUFYX09GRl9UX1ZBTFVFOyBuZ3hfdmFsdWU9JG5neF9tYXhfdmFsdWU7IC4gYXV0by90eXBlcy92YWx1ZQorIG5neF9wYXJhbT1OR1hfT0ZGX1RfTEVOOyBuZ3hfdmFsdWU9JG5neF9tYXhfbGVuOyAuIGF1dG8vdHlwZXMvdmFsdWUKKyAKKy1uZ3hfdHlwZT0idGltZV90IjsgLiBhdXRvL3R5cGVzL3NpemVvZgorK25neF90eXBlPSJ0aW1lX3QiOyBuZ3hfcGFyYW09IlRJTUVfVCI7IC4gYXV0by90eXBlcy9zaXplb2YKKyBuZ3hfcGFyYW09TkdYX1RJTUVfVF9TSVpFOyBuZ3hfdmFsdWU9JG5neF9zaXplOyAuIGF1dG8vdHlwZXMvdmFsdWUKKyBuZ3hfcGFyYW09TkdYX1RJTUVfVF9MRU47IG5neF92YWx1ZT0kbmd4X21heF9sZW47IC4gYXV0by90eXBlcy92YWx1ZQorIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L2ZpbGVzL25naW54LXZvbGF0aWxlLmNvbmYgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvZmlsZXMvbmdpbngtdm9sYXRpbGUuY29uZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45M2YzYzY2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L2ZpbGVzL25naW54LXZvbGF0aWxlLmNvbmYKQEAgLTAsMCArMSwyIEBACitkIHd3dyB3d3ctZGF0YSAwNzU1IC9ydW4vbmdpbnggbm9uZQorZCByb290IHJvb3QgMDc1NSAvdmFyL2xvZy9uZ2lueCBub25lCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvZmlsZXMvbmdpbnguY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9maWxlcy9uZ2lueC5jb25mCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiN2U0YjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvZmlsZXMvbmdpbnguY29uZgpAQCAtMCwwICsxLDExOCBAQAorCit1c2VyICB3d3ctZGF0YTsKK3dvcmtlcl9wcm9jZXNzZXMgIDE7CisKK2Vycm9yX2xvZyAgL3Zhci9sb2cvbmdpbngvZXJyb3IubG9nOworI2Vycm9yX2xvZyAgbG9ncy9lcnJvci5sb2cgIG5vdGljZTsKKyNlcnJvcl9sb2cgIGxvZ3MvZXJyb3IubG9nICBpbmZvOworCitwaWQgICAgICAgIC9ydW4vbmdpbngvbmdpbngucGlkOworCisKK2V2ZW50cyB7CisgICAgd29ya2VyX2Nvbm5lY3Rpb25zICAxMDI0OworfQorCisKK2h0dHAgeworICAgIGluY2x1ZGUgICAgICAgbWltZS50eXBlczsKKyAgICBkZWZhdWx0X3R5cGUgIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTsKKworICAgIGxvZ19mb3JtYXQgIG1haW4gICckcmVtb3RlX2FkZHIgLSAkcmVtb3RlX3VzZXIgWyR0aW1lX2xvY2FsXSAiJHJlcXVlc3QiICcKKyAgICAgICAgICAgICAgICAgICAgICAnJHN0YXR1cyAkYm9keV9ieXRlc19zZW50ICIkaHR0cF9yZWZlcmVyIiAnCisgICAgICAgICAgICAgICAgICAgICAgJyIkaHR0cF91c2VyX2FnZW50IiAiJGh0dHBfeF9mb3J3YXJkZWRfZm9yIic7CisKKyAgICBhY2Nlc3NfbG9nICAvdmFyL2xvZy9uZ2lueC9hY2Nlc3MubG9nICBtYWluOworCisgICAgc2VuZGZpbGUgICAgICAgIG9uOworICAgICN0Y3Bfbm9wdXNoICAgICBvbjsKKworICAgICNrZWVwYWxpdmVfdGltZW91dCAgMDsKKyAgICBrZWVwYWxpdmVfdGltZW91dCAgNjU7CisKKyAgICAjZ3ppcCAgb247CisKKyAgICBzZXJ2ZXIgeworICAgICAgICBsaXN0ZW4gICAgICAgODA7CisgICAgICAgIHNlcnZlcl9uYW1lICBsb2NhbGhvc3Q7CisKKyAgICAgICAgI2NoYXJzZXQga29pOC1yOworCisgICAgICAgICNhY2Nlc3NfbG9nICBsb2dzL2hvc3QuYWNjZXNzLmxvZyAgbWFpbjsKKworICAgICAgICBsb2NhdGlvbiAvIHsKKyAgICAgICAgICAgIHJvb3QgICAvdmFyL3d3dy9sb2NhbGhvc3QvaHRtbDsKKyAgICAgICAgICAgIGluZGV4ICBpbmRleC5odG1sIGluZGV4Lmh0bTsKKyAgICAgICAgfQorCisgICAgICAgICNlcnJvcl9wYWdlICA0MDQgICAgICAgICAgICAgIC80MDQuaHRtbDsKKworICAgICAgICAjIHJlZGlyZWN0IHNlcnZlciBlcnJvciBwYWdlcyB0byB0aGUgc3RhdGljIHBhZ2UgLzUweC5odG1sCisgICAgICAgICMKKyAgICAgICAgZXJyb3JfcGFnZSAgIDUwMCA1MDIgNTAzIDUwNCAgLzUweC5odG1sOworICAgICAgICBsb2NhdGlvbiA9IC81MHguaHRtbCB7CisgICAgICAgICAgICByb290ICAgL3Zhci93d3cvbG9jYWxob3N0L2h0bWw7CisgICAgICAgIH0KKworICAgICAgICAjIHByb3h5IHRoZSBQSFAgc2NyaXB0cyB0byBBcGFjaGUgbGlzdGVuaW5nIG9uIDEyNy4wLjAuMTo4MAorICAgICAgICAjCisgICAgICAgICNsb2NhdGlvbiB+IFwucGhwJCB7CisgICAgICAgICMgICAgcHJveHlfcGFzcyAgIGh0dHA6Ly8xMjcuMC4wLjE7CisgICAgICAgICN9CisKKyAgICAgICAgIyBwYXNzIHRoZSBQSFAgc2NyaXB0cyB0byBGYXN0Q0dJIHNlcnZlciBsaXN0ZW5pbmcgb24gMTI3LjAuMC4xOjkwMDAKKyAgICAgICAgIworICAgICAgICAjbG9jYXRpb24gfiBcLnBocCQgeworICAgICAgICAjICAgIHJvb3QgICAgICAgICAgIGh0bWw7CisgICAgICAgICMgICAgZmFzdGNnaV9wYXNzICAgMTI3LjAuMC4xOjkwMDA7CisgICAgICAgICMgICAgZmFzdGNnaV9pbmRleCAgaW5kZXgucGhwOworICAgICAgICAjICAgIGZhc3RjZ2lfcGFyYW0gIFNDUklQVF9GSUxFTkFNRSAgL3NjcmlwdHMkZmFzdGNnaV9zY3JpcHRfbmFtZTsKKyAgICAgICAgIyAgICBpbmNsdWRlICAgICAgICBmYXN0Y2dpX3BhcmFtczsKKyAgICAgICAgI30KKworICAgICAgICAjIGRlbnkgYWNjZXNzIHRvIC5odGFjY2VzcyBmaWxlcywgaWYgQXBhY2hlJ3MgZG9jdW1lbnQgcm9vdAorICAgICAgICAjIGNvbmN1cnMgd2l0aCBuZ2lueCdzIG9uZQorICAgICAgICAjCisgICAgICAgICNsb2NhdGlvbiB+IC9cLmh0IHsKKyAgICAgICAgIyAgICBkZW55ICBhbGw7CisgICAgICAgICN9CisgICAgfQorCisKKyAgICAjIGFub3RoZXIgdmlydHVhbCBob3N0IHVzaW5nIG1peCBvZiBJUC0sIG5hbWUtLCBhbmQgcG9ydC1iYXNlZCBjb25maWd1cmF0aW9uCisgICAgIworICAgICNzZXJ2ZXIgeworICAgICMgICAgbGlzdGVuICAgICAgIDgwMDA7CisgICAgIyAgICBsaXN0ZW4gICAgICAgc29tZW5hbWU6ODA4MDsKKyAgICAjICAgIHNlcnZlcl9uYW1lICBzb21lbmFtZSAgYWxpYXMgIGFub3RoZXIuYWxpYXM7CisKKyAgICAjICAgIGxvY2F0aW9uIC8geworICAgICMgICAgICAgIHJvb3QgICBodG1sOworICAgICMgICAgICAgIGluZGV4ICBpbmRleC5odG1sIGluZGV4Lmh0bTsKKyAgICAjICAgIH0KKyAgICAjfQorCisKKyAgICAjIEhUVFBTIHNlcnZlcgorICAgICMKKyAgICAjc2VydmVyIHsKKyAgICAjICAgIGxpc3RlbiAgICAgICA0NDM7CisgICAgIyAgICBzZXJ2ZXJfbmFtZSAgbG9jYWxob3N0OworCisgICAgIyAgICBzc2wgICAgICAgICAgICAgICAgICBvbjsKKyAgICAjICAgIHNzbF9jZXJ0aWZpY2F0ZSAgICAgIGNlcnQucGVtOworICAgICMgICAgc3NsX2NlcnRpZmljYXRlX2tleSAgY2VydC5rZXk7CisKKyAgICAjICAgIHNzbF9zZXNzaW9uX3RpbWVvdXQgIDVtOworCisgICAgIyAgICBzc2xfcHJvdG9jb2xzICBTU0x2MiBTU0x2MyBUTFN2MTsKKyAgICAjICAgIHNzbF9jaXBoZXJzICBISUdIOiFhTlVMTDohTUQ1OworICAgICMgICAgc3NsX3ByZWZlcl9zZXJ2ZXJfY2lwaGVycyAgIG9uOworCisgICAgIyAgICBsb2NhdGlvbiAvIHsKKyAgICAjICAgICAgICByb290ICAgaHRtbDsKKyAgICAjICAgICAgICBpbmRleCAgaW5kZXguaHRtbCBpbmRleC5odG07CisgICAgIyAgICB9CisgICAgI30KKworfQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L2ZpbGVzL25naW54LmluaXQgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvZmlsZXMvbmdpbnguaW5pdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZjM4YjljCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L2ZpbGVzL25naW54LmluaXQKQEAgLTAsMCArMSw1MiBAQAorIyEgL2Jpbi9zaAorUEFUSD0vc2JpbjovYmluOi91c3Ivc2JpbjovdXNyL2JpbgorREFFTU9OPS91c3Ivc2Jpbi9uZ2lueAorTkFNRT1uZ2lueAorREVTQz1uZ2lueAorUElEPS92YXIvcnVuL25naW54L25naW54LnBpZAorCit0ZXN0IC14ICREQUVNT04gfHwgZXhpdCAwCisKKyMgSW5jbHVkZSBuZ2lueCBkZWZhdWx0cyBpZiBhdmFpbGFibGUKK2lmIFsgLWYgL2V0Yy9kZWZhdWx0L25naW54IF0gOyB0aGVuCisgICAgICAgIC4gL2V0Yy9kZWZhdWx0L25naW54CitmaQorCitzZXQgLWUKKworY2FzZSAiJDEiIGluCisgIHN0YXJ0KQorICAgICAgICBlY2hvIC1uICJTdGFydGluZyAkREVTQzogIgorICAgICAgICBzdGFydC1zdG9wLWRhZW1vbiAtLXN0YXJ0IC0tcXVpZXQgLS1waWRmaWxlICRQSUQgXAorICAgICAgICAgICAgICAgIC0tbmFtZSAkTkFNRSAtLWV4ZWMgJERBRU1PTiAtLSAkREFFTU9OX09QVFMKKyAgICAgICAgZWNobyAiJE5BTUUuIgorICAgICAgICA7OworICBzdG9wKQorICAgICAgICBlY2hvIC1uICJTdG9wcGluZyAkREVTQzogIgorICAgICAgICBzdGFydC1zdG9wLWRhZW1vbiAtSyAtLXF1aWV0IC0tcGlkZmlsZSAkUElEIFwKKyAgICAgICAgICAgICAgICAtLW5hbWUgJE5BTUUKKyAgICAgICAgZWNobyAiJE5BTUUuIgorICAgICAgICA7OworICByZXN0YXJ0fGZvcmNlLXJlbG9hZCkKKyAgICAgICAgZWNobyAtbiAiUmVzdGFydGluZyAkREVTQzogIgorICAgICAgICBzdGFydC1zdG9wLWRhZW1vbiAtSyAtLXF1aWV0IC0tcGlkZmlsZSAkUElEIFwKKyAgICAgICAgICAgICAgICAtLW5hbWUgJE5BTUUKKyAgICAgICAgc2xlZXAgMQorICAgICAgICBzdGFydC1zdG9wLWRhZW1vbiAtLXN0YXJ0IC0tcXVpZXQgLS1waWRmaWxlICRQSUQgXAorICAgICAgICAgICAgICAgIC0tbmFtZSAkTkFNRSAtLWV4ZWMgJERBRU1PTiAtLSAkREFFTU9OX09QVFMKKyAgICAgICAgZWNobyAiJE5BTUUuIgorICAgICAgICA7OworICByZWxvYWQpCisgICAgICBlY2hvIC1uICJSZWxvYWRpbmcgJERFU0MgY29uZmlndXJhdGlvbjogIgorICAgICAgc3RhcnQtc3RvcC1kYWVtb24gLS1zdG9wIC0tc2lnbmFsIEhVUCAtLXF1aWV0IC0tcGlkZmlsZSAkUElEIFwKKyAgICAgICAgICAtLWV4ZWMgJERBRU1PTgorICAgICAgZWNobyAiJE5BTUUuIgorICAgICAgOzsKKyAgKikKKyAgICAgICAgTj0vZXRjL2luaXQuZC8kTkFNRQorICAgICAgICBlY2hvICJVc2FnZTogJE4ge3N0YXJ0fHN0b3B8cmVzdGFydHxmb3JjZS1yZWxvYWR9IiA+JjIKKyAgICAgICAgZXhpdCAxCisgICAgICAgIDs7Citlc2FjCisKK2V4aXQgMApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L2ZpbGVzL25naW54LnNlcnZpY2UgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvZmlsZXMvbmdpbnguc2VydmljZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OTI2YTRiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L2ZpbGVzL25naW54LnNlcnZpY2UKQEAgLTAsMCArMSwxMiBAQAorW1VuaXRdCitEZXNjcmlwdGlvbj1OZ2lueCBTZXJ2ZXIKK0FmdGVyPW5ldHdvcmsudGFyZ2V0CitbU2VydmljZV0KK1R5cGU9Zm9ya2luZworUElERmlsZT1AU1lTQ09ORkRJUkAvbmdpbngvcnVuL25naW54LnBpZAorRXhlY1N0YXJ0UHJlPUBCQVNFQklORElSQC9ta2RpciAtcCBATE9DQUxTVEFURURJUkAvbG9nL25naW54CitFeGVjU3RhcnQ9QFNZU0NPTkZESVJAL2luaXQuZC9uZ2lueCBzdGFydAorRXhlY1N0b3A9QFNZU0NPTkZESVJAL2luaXQuZC9uZ2lueCBzdG9wCitbSW5zdGFsbF0KK1dhbnRlZEJ5PW11bHRpLXVzZXIudGFyZ2V0CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9uZ2lueC0xLjkuMTQvbmdpbngtY3Jvc3MucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvbmdpbngtMS45LjE0L25naW54LWNyb3NzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlOTY2NDQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvbmdpbngtMS45LjE0L25naW54LWNyb3NzLnBhdGNoCkBAIC0wLDAgKzEsMjExIEBACitXZSBkbyBub3QgaGF2ZSBjYXBhYmlsaXR5IHRvIHJ1biBiaW5hcmllcyB3aGVuIGNyb3NzIGNvbXBpbGluZworCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworCitkaWZmIC11cmFOIG5naW54LTEuMC4xMS5vcmlnL2F1dG8vZmVhdHVyZSBuZ2lueC0xLjAuMTEvYXV0by9mZWF0dXJlCistLS0gbmdpbngtMS4wLjExLm9yaWcvYXV0by9mZWF0dXJlCTIwMTEtMDUtMTEgMDY6NTA6MTkuMDAwMDAwMDAwIC0wNTAwCisrKysgbmdpbngtMS4wLjExL2F1dG8vZmVhdHVyZQkyMDExLTEyLTI3IDEzOjU2OjQyLjMyMzM3MDA0MCAtMDYwMAorQEAgLTQ5LDEyICs0OSwyMCBAQAorIAorIGlmIFsgLXggJE5HWF9BVVRPVEVTVCBdOyB0aGVuCisgCisrICAgIGlmIFsgIi4kTkdYX0NST1NTX0NPTVBJTEUiID0gIi55ZXMiIF07IHRoZW4KKysgICAgICAgIE5HWF9BVVRPVEVTVF9FWEVDPSJ0cnVlIgorKwlOR1hfRk9VTkRfTVNHPSIgKG5vdCB0ZXN0ZWQsIGNyb3NzIGNvbXBpbGluZykiCisrICAgIGVsc2UKKysgICAgICAgIE5HWF9BVVRPVEVTVF9FWEVDPSIkTkdYX0FVVE9URVNUIgorKwlOR1hfRk9VTkRfTVNHPSIiCisrICAgIGZpCisrCisgICAgIGNhc2UgIiRuZ3hfZmVhdHVyZV9ydW4iIGluCisgCisgICAgICAgICB5ZXMpCisgICAgICAgICAgICAgIyAvYmluL3NoIGlzIHVzZWQgdG8gaW50ZXJjZXB0ICJLaWxsZWQiIG9yICJBYm9ydCB0cmFwIiBtZXNzYWdlcworLSAgICAgICAgICAgIGlmIC9iaW4vc2ggLWMgJE5HWF9BVVRPVEVTVCA+PiAkTkdYX0FVVE9DT05GX0VSUiAyPiYxOyB0aGVuCistICAgICAgICAgICAgICAgIGVjaG8gIiBmb3VuZCIKKysgICAgICAgICAgICBpZiAvYmluL3NoIC1jICROR1hfQVVUT1RFU1RfRVhFQyA+PiAkTkdYX0FVVE9DT05GX0VSUiAyPiYxOyB0aGVuCisrICAgICAgICAgICAgICAgIGVjaG8gIiBmb3VuZCROR1hfRk9VTkRfTVNHIgorICAgICAgICAgICAgICAgICBuZ3hfZm91bmQ9eWVzCisgCisgICAgICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRuZ3hfZmVhdHVyZV9uYW1lIjsgdGhlbgorQEAgLTY4LDE3ICs3NSwyNyBAQAorIAorICAgICAgICAgdmFsdWUpCisgICAgICAgICAgICAgIyAvYmluL3NoIGlzIHVzZWQgdG8gaW50ZXJjZXB0ICJLaWxsZWQiIG9yICJBYm9ydCB0cmFwIiBtZXNzYWdlcworLSAgICAgICAgICAgIGlmIC9iaW4vc2ggLWMgJE5HWF9BVVRPVEVTVCA+PiAkTkdYX0FVVE9DT05GX0VSUiAyPiYxOyB0aGVuCistICAgICAgICAgICAgICAgIGVjaG8gIiBmb3VuZCIKKysgICAgICAgICAgICBpZiAvYmluL3NoIC1jICROR1hfQVVUT1RFU1RfRVhFQyA+PiAkTkdYX0FVVE9DT05GX0VSUiAyPiYxOyB0aGVuCisrICAgICAgICAgICAgICAgIGVjaG8gIiBmb3VuZCROR1hfRk9VTkRfTVNHIgorICAgICAgICAgICAgICAgICBuZ3hfZm91bmQ9eWVzCisgCistICAgICAgICAgICAgICAgIGNhdCA8PCBFTkQgPj4gJE5HWF9BVVRPX0NPTkZJR19ICisrICAgICAgICAgICAgICAgIGlmIFsgIi4kTkdYX0NST1NTX0NPTVBJTEUiID0gIi55ZXMiIF07IHRoZW4KKysgICAgICAgICAgICAgICAgICAgIGNhdCA8PCBFTkQgPj4gJE5HWF9BVVRPX0NPTkZJR19ICisgCisgI2lmbmRlZiAkbmd4X2ZlYXR1cmVfbmFtZQorLSNkZWZpbmUgJG5neF9mZWF0dXJlX25hbWUgIGAkTkdYX0FVVE9URVNUYAorKyNkZWZpbmUgJG5neF9mZWF0dXJlX25hbWUgICQoZXZhbCAiZWNobyBcJE5HWF9XSVRIXyR7bmd4X2ZlYXR1cmVfbmFtZX0iKQorICNlbmRpZgorIAorIEVORAorKwkJZWxzZQorKyAgICAgICAgICAgICAgICAgICAgY2F0IDw8IEVORCA+PiAkTkdYX0FVVE9fQ09ORklHX0gKKysKKysjaWZuZGVmICRuZ3hfZmVhdHVyZV9uYW1lCisrI2RlZmluZSAkbmd4X2ZlYXR1cmVfbmFtZSAgYCROR1hfQVVUT1RFU1RfRVhFQ2AKKysjZW5kaWYKKysKKytFTkQKKysgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgIGVjaG8gIiBmb3VuZCBidXQgaXMgbm90IHdvcmtpbmciCisgICAgICAgICAgICAgZmkKK0BAIC04Niw3ICsxMDUsNyBAQAorIAorICAgICAgICAgYnVnKQorICAgICAgICAgICAgICMgL2Jpbi9zaCBpcyB1c2VkIHRvIGludGVyY2VwdCAiS2lsbGVkIiBvciAiQWJvcnQgdHJhcCIgbWVzc2FnZXMKKy0gICAgICAgICAgICBpZiAvYmluL3NoIC1jICROR1hfQVVUT1RFU1QgPj4gJE5HWF9BVVRPQ09ORl9FUlIgMj4mMTsgdGhlbgorKyAgICAgICAgICAgIGlmIC9iaW4vc2ggLWMgJE5HWF9BVVRPVEVTVF9FWEVDID4+ICROR1hfQVVUT0NPTkZfRVJSIDI+JjE7IHRoZW4KKyAgICAgICAgICAgICAgICAgZWNobyAiIG5vdCBmb3VuZCIKKyAKKyAgICAgICAgICAgICBlbHNlCitkaWZmIC11cmFOIG5naW54LTEuMC4xMS5vcmlnL2F1dG8vb3B0aW9ucyBuZ2lueC0xLjAuMTEvYXV0by9vcHRpb25zCistLS0gbmdpbngtMS4wLjExLm9yaWcvYXV0by9vcHRpb25zCTIwMTEtMTItMTQgMDc6MzQ6MTYuMDAwMDAwMDAwIC0wNjAwCisrKysgbmdpbngtMS4wLjExL2F1dG8vb3B0aW9ucwkyMDExLTEyLTI3IDEzOjU2OjQyLjMyMzM3MDA0MCAtMDYwMAorQEAgLTM1Myw2ICszNTMsMTggQEAKKyAgICAgICAgIC0tdGVzdC1idWlsZC1lcG9sbCkgICAgICAgICAgICAgIE5HWF9URVNUX0JVSUxEX0VQT0xMPVlFUyAgIDs7CisgICAgICAgICAtLXRlc3QtYnVpbGQtc29sYXJpcy1zZW5kZmlsZXYpICBOR1hfVEVTVF9CVUlMRF9TT0xBUklTX1NFTkRGSUxFVj1ZRVMgOzsKKyAKKysgICAgICAgICMgY3Jvc3MgY29tcGlsZSBzdXBwb3J0CisrICAgICAgICAtLXdpdGgtaW50PSopICAgICAgICAgICAgICAgICAgICBOR1hfV0lUSF9JTlQ9IiR2YWx1ZSIgICAgICAgICAgOzsKKysgICAgICAgIC0td2l0aC1sb25nPSopICAgICAgICAgICAgICAgICAgIE5HWF9XSVRIX0xPTkc9IiR2YWx1ZSIgICAgICAgICA7OworKyAgICAgICAgLS13aXRoLWxvbmctbG9uZz0qKSAgICAgICAgICAgICAgTkdYX1dJVEhfTE9OR19MT05HPSIkdmFsdWUiICAgIDs7CisrICAgICAgICAtLXdpdGgtcHRyLXNpemU9KikgICAgICAgICAgICAgICBOR1hfV0lUSF9QVFJfU0laRT0iJHZhbHVlIiAgICAgOzsKKysgICAgICAgIC0td2l0aC1zaWctYXRvbWljLXQ9KikgICAgICAgICAgIE5HWF9XSVRIX1NJR19BVE9NSUNfVD0iJHZhbHVlIiA7OworKyAgICAgICAgLS13aXRoLXNpemUtdD0qKSAgICAgICAgICAgICAgICAgTkdYX1dJVEhfU0laRV9UPSIkdmFsdWUiICAgICAgIDs7CisrICAgICAgICAtLXdpdGgtb2ZmLXQ9KikgICAgICAgICAgICAgICAgICBOR1hfV0lUSF9PRkZfVD0iJHZhbHVlIiAgICAgICAgOzsKKysgICAgICAgIC0td2l0aC10aW1lLXQ9KikgICAgICAgICAgICAgICAgIE5HWF9XSVRIX1RJTUVfVD0iJHZhbHVlIiAgICAgICA7OworKyAgICAgICAgLS13aXRoLXN5cy1uZXJyPSopICAgICAgICAgICAgICAgTkdYX1dJVEhfTkdYX1NZU19ORVJSPSIkdmFsdWUiIDs7CisrICAgICAgICAtLXdpdGgtZW5kaWFuPSopICAgICAgICAgICAgICAgICBOR1hfV0lUSF9FTkRJQU49IiR2YWx1ZSIgICAgICAgOzsKKysKKyAgICAgICAgICopCisgICAgICAgICAgICAgZWNobyAiJDA6IGVycm9yOiBpbnZhbGlkIG9wdGlvbiBcIiRvcHRpb25cIiIKKyAgICAgICAgICAgICBleGl0IDEKK0BAIC01MzMsNiArNDQ1LDE3IEBACisgCisgICAtLXdpdGgtZGVidWcgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZSBkZWJ1ZyBsb2dnaW5nCisgCisrICAtLXdpdGgtaW50PVZBTFVFICAgICAgICAgICAgICAgICAgIGZvcmNlIGludCBzaXplCisrICAtLXdpdGgtbG9uZz1WQUxVRSAgICAgICAgICAgICAgICAgIGZvcmNlIGxvbmcgc2l6ZQorKyAgLS13aXRoLWxvbmctbG9uZz1WQUxVRSAgICAgICAgICAgICBmb3JjZSBsb25nIGxvbmcgc2l6ZQorKyAgLS13aXRoLXB0ci1zaXplPVZBTFVFICAgICAgICAgICAgICBmb3JjZSBwb2ludGVyIHNpemUKKysgIC0td2l0aC1zaWctYXRvbWljLXQ9VkFMVUUgICAgICAgICAgZm9yY2Ugc2lnX2F0b21pY190IHNpemUKKysgIC0td2l0aC1zaXplLXQ9VkFMVUUgICAgICAgICAgICAgICAgZm9yY2Ugc2l6ZV90IHNpemUKKysgIC0td2l0aC1vZmYtdD1WQUxVRSAgICAgICAgICAgICAgICAgZm9yY2Ugb2ZmX3Qgc2l6ZQorKyAgLS13aXRoLXRpbWUtdD1WQUxVRSAgICAgICAgICAgICAgICBmb3JjZSB0aW1lX3Qgc2l6ZQorKyAgLS13aXRoLXN5cy1uZXJyPVZBTFVFICAgICAgICAgICAgICBmb3JjZSBzeXNfbmVyciB2YWx1ZQorKyAgLS13aXRoLWVuZGlhbj1WQUxVRSAgICAgICAgICAgICAgICBmb3JjZSBzeXN0ZW0gZW5kaWFuZXNzCisrCisgRU5ECisgCisgICAgIGV4aXQgMQorQEAgLTU1NCw2ICs1NzcsOCBAQAorIAorIGlmIFsgIi4kTkdYX1BMQVRGT1JNIiA9ICIud2luMzIiIF07IHRoZW4KKyAgICAgTkdYX1dJTkU9JFdJTkUKKytlbGlmIFsgISAteiAiJE5HWF9QTEFURk9STSIgXTsgdGhlbgorKyAgICBOR1hfQ1JPU1NfQ09NUElMRT0ieWVzIgorIGZpCisgCisgCitkaWZmIC11cmFOIG5naW54LTEuMC4xMS5vcmlnL2F1dG8vdHlwZXMvc2l6ZW9mIG5naW54LTEuMC4xMS9hdXRvL3R5cGVzL3NpemVvZgorLS0tIG5naW54LTEuMC4xMS5vcmlnL2F1dG8vdHlwZXMvc2l6ZW9mCTIwMDYtMDYtMjggMTE6MDA6MjYuMDAwMDAwMDAwIC0wNTAwCisrKysgbmdpbngtMS4wLjExL2F1dG8vdHlwZXMvc2l6ZW9mCTIwMTEtMTItMjcgMTM6NTY6NDIuMzIzMzcwMDQwIC0wNjAwCitAQCAtMTIsOSArMTIsMTIgQEAKKyAKKyBFTkQKKyAKKy1uZ3hfc2l6ZT0KKytuZ3hfc2l6ZT0kKGV2YWwgImVjaG8gXCROR1hfV0lUSF8ke25neF9wYXJhbX0iKQorIAorLWNhdCA8PCBFTkQgPiAkTkdYX0FVVE9URVNULmMKKytpZiBbICIuJG5neF9zaXplIiAhPSAiLiIgXTsgdGhlbgorKyAgICBlY2hvICIgJG5neF9zaXplIGJ5dGVzIgorK2Vsc2UKKysgICAgY2F0IDw8IEVORCA+ICROR1hfQVVUT1RFU1QuYworIAorICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KK0BAIC0zMywxNSArMzYsMTYgQEAKKyBFTkQKKyAKKyAKKy1uZ3hfdGVzdD0iJENDICRDQ19URVNUX0ZMQUdTICRDQ19BVVhfRkxBR1MgXAorLSAgICAgICAgICAtbyAkTkdYX0FVVE9URVNUICROR1hfQVVUT1RFU1QuYyAkTkdYX0xEX09QVCAkbmd4X2ZlYXR1cmVfbGlicyIKKysgICAgbmd4X3Rlc3Q9IiRDQyAkQ0NfVEVTVF9GTEFHUyAkQ0NfQVVYX0ZMQUdTIFwKKysgICAgICAgICAgICAgIC1vICROR1hfQVVUT1RFU1QgJE5HWF9BVVRPVEVTVC5jICROR1hfTERfT1BUICRuZ3hfZmVhdHVyZV9saWJzIgorIAorLWV2YWwgIiRuZ3hfdGVzdCA+PiAkTkdYX0FVVE9DT05GX0VSUiAyPiYxIgorKyAgICBldmFsICIkbmd4X3Rlc3QgPj4gJE5HWF9BVVRPQ09ORl9FUlIgMj4mMSIKKyAKKyAKKy1pZiBbIC14ICROR1hfQVVUT1RFU1QgXTsgdGhlbgorLSAgICBuZ3hfc2l6ZT1gJE5HWF9BVVRPVEVTVGAKKy0gICAgZWNobyAiICRuZ3hfc2l6ZSBieXRlcyIKKysgICAgaWYgWyAteCAkTkdYX0FVVE9URVNUIF07IHRoZW4KKysgICAgICAgIG5neF9zaXplPWAkTkdYX0FVVE9URVNUYAorKyAgICAgICAgZWNobyAiICRuZ3hfc2l6ZSBieXRlcyIKKysgICAgZmkKKyBmaQorIAorIAorZGlmZiAtdXJhTiBuZ2lueC0xLjAuMTEub3JpZy9hdXRvL3VuaXggbmdpbngtMS4wLjExL2F1dG8vdW5peAorLS0tIG5naW54LTEuMC4xMS5vcmlnL2F1dG8vdW5peAkyMDExLTEyLTE0IDA3OjM0OjE2LjAwMDAwMDAwMCAtMDYwMAorKysrIG5naW54LTEuMC4xMS9hdXRvL3VuaXgJMjAxMS0xMi0yNyAxMzo1Njo0Mi4zMjczNzAwNjAgLTA2MDAKK0BAIC0zOTMsMTMgKzM5MywxMyBAQAorIAorICMgQyB0eXBlcworIAorLW5neF90eXBlPSJpbnQiOyAuIGF1dG8vdHlwZXMvc2l6ZW9mCisrbmd4X3R5cGU9ImludCI7IG5neF9wYXJhbT0iSU5UIjsgLiBhdXRvL3R5cGVzL3NpemVvZgorIAorLW5neF90eXBlPSJsb25nIjsgLiBhdXRvL3R5cGVzL3NpemVvZgorK25neF90eXBlPSJsb25nIjsgbmd4X3BhcmFtPSJMT05HIjsgLiBhdXRvL3R5cGVzL3NpemVvZgorIAorLW5neF90eXBlPSJsb25nIGxvbmciOyAuIGF1dG8vdHlwZXMvc2l6ZW9mCisrbmd4X3R5cGU9ImxvbmcgbG9uZyI7IG5neF9wYXJhbT0iTE9OR19MT05HIjsgLiBhdXRvL3R5cGVzL3NpemVvZgorIAorLW5neF90eXBlPSJ2b2lkICoiOyAuIGF1dG8vdHlwZXMvc2l6ZW9mOyBuZ3hfcHRyX3NpemU9JG5neF9zaXplCisrbmd4X3R5cGU9InZvaWQgKiI7IG5neF9wYXJhbT0iUFRSX1NJWkUiOyAuIGF1dG8vdHlwZXMvc2l6ZW9mOyBuZ3hfcHRyX3NpemU9JG5neF9zaXplCisgbmd4X3BhcmFtPU5HWF9QVFJfU0laRTsgbmd4X3ZhbHVlPSRuZ3hfc2l6ZTsgLiBhdXRvL3R5cGVzL3ZhbHVlCisgCisgCitAQCAtNDE2LDcgKzQxNiw3IEBACisgCisgbmd4X3R5cGU9InVpbnQ2NF90Ijsgbmd4X3R5cGVzPSJ1X2ludDY0X3QiOyAuIGF1dG8vdHlwZXMvdHlwZWRlZgorIAorLW5neF90eXBlPSJzaWdfYXRvbWljX3QiOyBuZ3hfdHlwZXM9ImludCI7IC4gYXV0by90eXBlcy90eXBlZGVmCisrbmd4X3R5cGU9InNpZ19hdG9taWNfdCI7IG5neF9wYXJhbT0iU0lHX0FUT01JQ19UIjsgbmd4X3R5cGVzPSJpbnQiOyAuIGF1dG8vdHlwZXMvdHlwZWRlZgorIC4gYXV0by90eXBlcy9zaXplb2YKKyBuZ3hfcGFyYW09TkdYX1NJR19BVE9NSUNfVF9TSVpFOyBuZ3hfdmFsdWU9JG5neF9zaXplOyAuIGF1dG8vdHlwZXMvdmFsdWUKKyAKK0BAIC00MzIsMTUgKzQzMiwxNSBAQAorIAorIC4gYXV0by9lbmRpYW5lc3MKKyAKKy1uZ3hfdHlwZT0ic2l6ZV90IjsgLiBhdXRvL3R5cGVzL3NpemVvZgorK25neF90eXBlPSJzaXplX3QiOyBuZ3hfcGFyYW09IlNJWkVfVCI7IC4gYXV0by90eXBlcy9zaXplb2YKKyBuZ3hfcGFyYW09TkdYX01BWF9TSVpFX1RfVkFMVUU7IG5neF92YWx1ZT0kbmd4X21heF92YWx1ZTsgLiBhdXRvL3R5cGVzL3ZhbHVlCisgbmd4X3BhcmFtPU5HWF9TSVpFX1RfTEVOOyBuZ3hfdmFsdWU9JG5neF9tYXhfbGVuOyAuIGF1dG8vdHlwZXMvdmFsdWUKKyAKKy1uZ3hfdHlwZT0ib2ZmX3QiOyAuIGF1dG8vdHlwZXMvc2l6ZW9mCisrbmd4X3R5cGU9Im9mZl90Ijsgbmd4X3BhcmFtPSJPRkZfVCI7IC4gYXV0by90eXBlcy9zaXplb2YKKyBuZ3hfcGFyYW09TkdYX01BWF9PRkZfVF9WQUxVRTsgbmd4X3ZhbHVlPSRuZ3hfbWF4X3ZhbHVlOyAuIGF1dG8vdHlwZXMvdmFsdWUKKyBuZ3hfcGFyYW09TkdYX09GRl9UX0xFTjsgbmd4X3ZhbHVlPSRuZ3hfbWF4X2xlbjsgLiBhdXRvL3R5cGVzL3ZhbHVlCisgCistbmd4X3R5cGU9InRpbWVfdCI7IC4gYXV0by90eXBlcy9zaXplb2YKKytuZ3hfdHlwZT0idGltZV90Ijsgbmd4X3BhcmFtPSJUSU1FX1QiOyAuIGF1dG8vdHlwZXMvc2l6ZW9mCisgbmd4X3BhcmFtPU5HWF9USU1FX1RfU0laRTsgbmd4X3ZhbHVlPSRuZ3hfc2l6ZTsgLiBhdXRvL3R5cGVzL3ZhbHVlCisgbmd4X3BhcmFtPU5HWF9USU1FX1RfTEVOOyBuZ3hfdmFsdWU9JG5neF9tYXhfbGVuOyAuIGF1dG8vdHlwZXMvdmFsdWUKKyAKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9uZ2lueC9uZ2lueC5pbmMgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvbmdpbnguaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViZjkyNmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvbmdpbnguaW5jCkBAIC0wLDAgKzEsMTM3IEBACitTVU1NQVJZID0gIkhUVFAgYW5kIHJldmVyc2UgcHJveHkgc2VydmVyIgorCitERVNDUklQVElPTiA9ICJOZ2lueCBpcyBhIHdlYiBzZXJ2ZXIgYW5kIGEgcmV2ZXJzZSBwcm94eSBzZXJ2ZXIgZm9yIFwKK0hUVFAsIFNNVFAsIFBPUDMgYW5kIElNQVAgcHJvdG9jb2xzLCB3aXRoIGEgc3Ryb25nIGZvY3VzIG9uIGhpZ2ggIFwKK2NvbmN1cnJlbmN5LCBwZXJmb3JtYW5jZSBhbmQgbG93IG1lbW9yeSB1c2FnZS4iCisKK0hPTUVQQUdFID0gImh0dHA6Ly9uZ2lueC5vcmcvIgorTElDRU5TRSA9ICJCU0QtMi1DbGF1c2UiCisKK1NFQ1RJT04gPSAibmV0IgorCitERVBFTkRTID0gImxpYnBjcmUgZ3ppcCBvcGVuc3NsIgorCitTUkNfVVJJID0gIiBcCisJaHR0cDovL25naW54Lm9yZy9kb3dubG9hZC9uZ2lueC0ke1BWfS50YXIuZ3ogXAorCWZpbGU6Ly9uZ2lueC1jcm9zcy5wYXRjaCBcCisJZmlsZTovL25naW54LmNvbmYgXAorCWZpbGU6Ly9uZ2lueC5pbml0IFwKKwlmaWxlOi8vbmdpbngtdm9sYXRpbGUuY29uZiBcCisJZmlsZTovL25naW54LnNlcnZpY2UgXAorIgorCitpbmhlcml0IHVwZGF0ZS1yYy5kIHVzZXJhZGQKKworQ0ZMQUdTX2FwcGVuZCA9ICIgLWZQSUUgLXBpZSIKK0NYWEZMQUdTX2FwcGVuZCA9ICIgLWZQSUUgLXBpZSIKKworTkdJTlhfV1dXRElSID89ICIke2xvY2Fsc3RhdGVkaXJ9L3d3dy9sb2NhbGhvc3QiCitOR0lOWF9VU0VSICAgPz0gInd3dyIKKworRVhUUkFfT0VDT05GID0gIiIKK0RJU0FCTEVfU1RBVElDID0gIiIKKworZG9fY29uZmlndXJlICgpIHsKKwlpZiBbICIke1NJVEVJTkZPX0JJVFN9IiA9ICI2NCIgXTsgdGhlbgorCQlQVFJTSVpFPTgKKwllbHNlCisJCVBUUlNJWkU9NAorCWZpCisKKwllY2hvICRDRkxBR1MKKwllY2hvICRMREZMQUdTCisKKwkuL2NvbmZpZ3VyZSBcCisJLS1jcm9zc2J1aWxkPUxpbnV4OiR7VFVORV9BUkNIfSBcCisJLS13aXRoLWVuZGlhbj0ke0BiYXNlX2NvbmRpdGlvbmFsKCdTSVRFSU5GT19FTkRJQU5ORVNTJywgJ2xlJywgJ2xpdHRsZScsICdiaWcnLCBkKX0gXAorCS0td2l0aC1pbnQ9NCBcCisJLS13aXRoLWxvbmc9JHtQVFJTSVpFfSBcCisJLS13aXRoLWxvbmctbG9uZz04IFwKKwktLXdpdGgtcHRyLXNpemU9JHtQVFJTSVpFfSBcCisJLS13aXRoLXNpZy1hdG9taWMtdD0ke1BUUlNJWkV9IFwKKwktLXdpdGgtc2l6ZS10PSR7UFRSU0laRX0gXAorCS0td2l0aC1vZmYtdD0ke1BUUlNJWkV9IFwKKwktLXdpdGgtdGltZS10PSR7UFRSU0laRX0gXAorCS0td2l0aC1zeXMtbmVycj0xMzIgXAorCS0tY29uZi1wYXRoPSR7c3lzY29uZmRpcn0vbmdpbngvbmdpbnguY29uZiBcCisJLS1odHRwLWxvZy1wYXRoPSR7bG9jYWxzdGF0ZWRpcn0vbG9nL25naW54L2FjY2Vzcy5sb2cgXAorCS0tZXJyb3ItbG9nLXBhdGg9JHtsb2NhbHN0YXRlZGlyfS9sb2cvbmdpbngvZXJyb3IubG9nIFwKKwktLXBpZC1wYXRoPS9ydW4vbmdpbngvbmdpbngucGlkIFwKKwktLXByZWZpeD0ke3ByZWZpeH0gXAorCS0td2l0aC1odHRwX3NzbF9tb2R1bGUgXAorCS0td2l0aC1odHRwX2d6aXBfc3RhdGljX21vZHVsZSBcCisJJHtFWFRSQV9PRUNPTkZ9Cit9CisKK2RvX2luc3RhbGwgKCkgeworCW9lX3J1bm1ha2UgJ0RFU1RESVI9JHtEfScgaW5zdGFsbAorCXJtIC1mciAke0R9JHtsb2NhbHN0YXRlZGlyfS9ydW4gJHtEfS9ydW4KKwlpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3N5c3RlbWQnLCAndHJ1ZScsICdmYWxzZScsIGQpfTsgdGhlbgorCQlpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3RtcGZpbGVzLmQKKwkJZWNobyAiZCAvcnVuLyR7QlBOfSAtIC0gLSAtIiBcCisJCSAgICAgPiAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kLyR7QlBOfS5jb25mCisJZmkKKwlpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9LyR7QlBOfQorCWxuIC1zbmYgJHtsb2NhbHN0YXRlZGlyfS9ydW4vJHtCUE59ICR7RH0ke3N5c2NvbmZkaXJ9LyR7QlBOfS9ydW4KKwlpbnN0YWxsIC1kICR7RH0ke05HSU5YX1dXV0RJUn0KKwltdiAke0R9L3Vzci9odG1sICR7RH0ke05HSU5YX1dXV0RJUn0vCisJY2hvd24gJHtOR0lOWF9VU0VSfTp3d3ctZGF0YSAtUiAke0R9JHtOR0lOWF9XV1dESVJ9CisKKwlpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZAorCWluc3RhbGwgLW0gMDc1NSAke1dPUktESVJ9L25naW54LmluaXQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL25naW54CisJc2VkIC1pICdzLC91c3Ivc2Jpbi8sJHtzYmluZGlyfS8sZycgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL25naW54CisJc2VkIC1pICdzLC9ldGMvLCR7c3lzY29uZmRpcn0vLGcnICAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvbmdpbngKKworCWluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vbmdpbngKKwlpbnN0YWxsIC1tIDA2NDQgJHtXT1JLRElSfS9uZ2lueC5jb25mICR7RH0ke3N5c2NvbmZkaXJ9L25naW54L25naW54LmNvbmYKKwlzZWQgLWkgJ3MsL3Zhci8sJHtsb2NhbHN0YXRlZGlyfS8sZycgJHtEfSR7c3lzY29uZmRpcn0vbmdpbngvbmdpbnguY29uZgorCWluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vbmdpbngvc2l0ZXMtZW5hYmxlZAorCisJaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L3ZvbGF0aWxlcworCWluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L25naW54LXZvbGF0aWxlLmNvbmYgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC92b2xhdGlsZXMvOTlfbmdpbngKKwlzZWQgLWkgJ3MsL3Zhci8sJHtsb2NhbHN0YXRlZGlyfS8sZycgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC92b2xhdGlsZXMvOTlfbmdpbngKKworICAgICAgICBpZiAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywnc3lzdGVtZCcsJ3RydWUnLCdmYWxzZScsZCl9O3RoZW4KKyAgICAgICAgICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0KKyAgICAgICAgICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L25naW54LnNlcnZpY2UgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vCisgICAgICAgICAgICBzZWQgLWkgLWUgJ3MsQFNZU0NPTkZESVJALCR7c3lzY29uZmRpcn0sZycgXAorICAgICAgICAgICAgICAgICAgICAtZSAncyxATE9DQUxTVEFURURJUkAsJHtsb2NhbHN0YXRlZGlyfSxnJyBcCisgICAgICAgICAgICAgICAgICAgIC1lICdzLEBCQVNFQklORElSQCwke2Jhc2VfYmluZGlyfSxnJyBcCisgICAgICAgICAgICAgICAgICAgICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL25naW54LnNlcnZpY2UKKyAgICAgICAgZmkKK30KKworcGtnX3Bvc3RpbnN0XyR7UE59ICgpIHsKKwlpZiBbIC16ICIkRCIgXTsgdGhlbgorCQlpZiB0eXBlIHN5c3RlbWQtdG1wZmlsZXMgPi9kZXYvbnVsbDsgdGhlbgorCQkJc3lzdGVtZC10bXBmaWxlcyAtLWNyZWF0ZQorCQllbGlmIFsgLWUgJHtzeXNjb25mZGlyfS9pbml0LmQvcG9wdWxhdGUtdm9sYXRpbGUuc2ggXTsgdGhlbgorCQkJJHtzeXNjb25mZGlyfS9pbml0LmQvcG9wdWxhdGUtdm9sYXRpbGUuc2ggdXBkYXRlCisJCWZpCisJZmkKK30KKworRklMRVNfJHtQTn0gKz0gIiR7bG9jYWxzdGF0ZWRpcn0vIFwKKyAgICAgICAgICAgICAgICAke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL25naW54LnNlcnZpY2UgXAorICAgICAgICAgICAgICAgICIKKworQ09ORkZJTEVTXyR7UE59ID0gIiR7c3lzY29uZmRpcn0vbmdpbngvbmdpbnguY29uZiBcCisJCSR7c3lzY29uZmRpcn0vbmdpbngvZmFzdGNnaS5jb25mXAorCQkke3N5c2NvbmZkaXJ9L25naW54L2Zhc3RjZ2lfcGFyYW1zIFwKKwkJJHtzeXNjb25mZGlyfS9uZ2lueC9rb2ktdXRmIFwKKwkJJHtzeXNjb25mZGlyfS9uZ2lueC9rb2ktd2luIFwKKwkJJHtzeXNjb25mZGlyfS9uZ2lueC9taW1lLnR5cGVzIFwKKwkJJHtzeXNjb25mZGlyfS9uZ2lueC9zY2dpX3BhcmFtcyBcCisJCSR7c3lzY29uZmRpcn0vbmdpbngvdXdzZ2lfcGFyYW1zIFwKKwkJJHtzeXNjb25mZGlyfS9uZ2lueC93aW4tdXRmIFwKKyIKKworSU5JVFNDUklQVF9OQU1FID0gIm5naW54IgorSU5JVFNDUklQVF9QQVJBTVMgPSAiZGVmYXVsdHMgOTIgMjAiCisKK1VTRVJBRERfUEFDS0FHRVMgPSAiJHtQTn0iCitVU0VSQUREX1BBUkFNXyR7UE59ID0gIiBcCisgICAgLS1zeXN0ZW0gLS1uby1jcmVhdGUtaG9tZSBcCisgICAgLS1ob21lICR7TkdJTlhfV1dXRElSfSBcCisgICAgLS1ncm91cHMgd3d3LWRhdGEgXAorICAgIC0tdXNlci1ncm91cCAke05HSU5YX1VTRVJ9IgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L25naW54XzEuOC4xLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L25naW54XzEuOC4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4OWY1NDcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvbmdpbnhfMS44LjEuYmIKQEAgLTAsMCArMSw2IEBACityZXF1aXJlIG5naW54LmluYworCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0zODQ1ODUyYWVkZmE4ZDZkNzc2NWY1NWQwNmNjM2ViZCIKKworU1JDX1VSSVttZDVzdW1dID0gIjJlOTE2OTUwNzRkYmRmYmYxYmNlYzBhZGE5ZmRhNDYyIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjhmNGIzYzYzMDk2NmMwNDRlYzcyNzE1NzU0MzM0ZDFmZGY3NDFjYWExZDU3OTVmYjQ2NDZjMjdkMDlmNzk3YjciCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbmdpbngvbmdpbnhfMS45LjE0LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L25naW54XzEuOS4xNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODVjNTJjCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25naW54L25naW54XzEuOS4xNC5iYgpAQCAtMCwwICsxLDEyIEBACityZXF1aXJlIG5naW54LmluYworCisjIDEuOS54IGlzIHRoZSBjdXJyZW50IG1haW5saW5lIGJyYW5jaGVzIGNvbnRhaW5pbmcgYWxsIG5ldyBmZWF0dXJlcworIyAxLjgueCBicmFuY2ggaXMgdGhlIGN1cnJlbnQgc3RhYmxlIGJyYW5jaCwgdGhlIHJlY29tbWVuZGVkIGRlZmF1bHQKK0RFRkFVTFRfUFJFRkVSRU5DRSA9ICItMSIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vTElDRU5TRTttZDU9MGJiNThlZDBkZmQ0ZjVkYmVjZTNiNTJhYmE3OWYwMjMiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJhMjU4MTgwMzlmMzRiNWQ1NGIwMTdkNDRjNzYzMjFjNCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIyYjQ4OTMwNzZkMjhlNmI0Mzg0YmJhOGM0ZmRlYmZjYTZkZTZmOGY2OGVjNDhhMWNhOTRiOWI4NTVmZjQ1N2QyIgorCitESVNBQkxFX1NUQVRJQyA9ICIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbm9zdHJvbW8vZmlsZXMvMDAwMS1HTlVtYWtlZmlsZS1hZGQtcG9zc2liaWxpdHktdG8tb3ZlcnJpZGUtdmFyaWFibGVzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25vc3Ryb21vL2ZpbGVzLzAwMDEtR05VbWFrZWZpbGUtYWRkLXBvc3NpYmlsaXR5LXRvLW92ZXJyaWRlLXZhcmlhYmxlcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Y2YwMTFiCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25vc3Ryb21vL2ZpbGVzLzAwMDEtR05VbWFrZWZpbGUtYWRkLXBvc3NpYmlsaXR5LXRvLW92ZXJyaWRlLXZhcmlhYmxlcy5wYXRjaApAQCAtMCwwICsxLDE0MSBAQAorRnJvbSA3ZmEwZDMxZWM1YzBiZTlkY2E4NGEwMzg1MWIyZDQ0ZjYxNTI3ZWM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP0VyaWM9MjBCPUMzPUE5bmFyZD89IDxlcmljQGV1a3JlYS5jb20+CitEYXRlOiBTdW4sIDQgRGVjIDIwMTEgMTY6MDE6MDQgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gR05VbWFrZWZpbGU6IGFkZCBwb3NzaWJpbGl0eSB0byBvdmVycmlkZSB2YXJpYWJsZXMKK01JTUUtVmVyc2lvbjogMS4wCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKwordGhpcyBpcyB1c2VmdWwgZm9yIGNyb3NzIGNvbXBpbGF0aW9uCisKK1NpZ25lZC1vZmYtYnk6IEVyaWMgQsOpbmFyZCA8ZXJpY0BldWtyZWEuY29tPgorLS0tCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2VtYmVkZGVkIHNwZWNpZmljXQorIHNyYy9saWJic2QvR05VbWFrZWZpbGUgfCAgIDEwICsrKysrLS0tLS0KKyBzcmMvbGlibXkvR05VbWFrZWZpbGUgIHwgICAyNiArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQorIHNyYy9uaHR0cGQvR05VbWFrZWZpbGUgfCAgIDEyICsrKysrKy0tLS0tLQorIHNyYy90b29scy9HTlVtYWtlZmlsZSAgfCAgICA4ICsrKystLS0tCisgNCBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9saWJic2QvR05VbWFrZWZpbGUgYi9zcmMvbGliYnNkL0dOVW1ha2VmaWxlCitpbmRleCBlMmQwMWEzLi5iMDM0YmM2IDEwMDY0NAorLS0tIGEvc3JjL2xpYmJzZC9HTlVtYWtlZmlsZQorKysrIGIvc3JjL2xpYmJzZC9HTlVtYWtlZmlsZQorQEAgLTEsMTIgKzEsMTIgQEAKKy1DQ0ZMQUdTID0gLU8yIC1waXBlIC1XYWxsIC1XZXJyb3IgLVdzdHJpY3QtcHJvdG90eXBlcyAtYworK0NGTEFHUyA6PSAtTzIgLXBpcGUgLVdhbGwgLVdlcnJvciAtV3N0cmljdC1wcm90b3R5cGVzIC1jCisgCisgbGliYnNkLmE6CXN0cmxjcHkubyBzdHJsY2F0Lm8KKy0JCWFyIC1yIGxpYmJzZC5hIHN0cmxjcHkubyBzdHJsY2F0Lm8KKy0JCXJhbmxpYiBsaWJic2QuYQorKwkJJChBUikgLXIgbGliYnNkLmEgc3RybGNweS5vIHN0cmxjYXQubworKwkJJChSQU5MSUIpIGxpYmJzZC5hCisgCisgc3RybGNweS5vOglzdHJsY3B5LmMKKy0JCWNjICR7Q0NGTEFHU30gc3RybGNweS5jCisrCQkkKENDKSAkKENGTEFHUykgc3RybGNweS5jCisgc3RybGNhdC5vOglzdHJsY2F0LmMKKy0JCWNjICR7Q0NGTEFHU30gc3RybGNhdC5jCisrCQkkKENDKSAkKENGTEFHUykgc3RybGNhdC5jCisgY2xlYW46CisgCQlybSAtZiBsaWJic2QuYSAqLm8KK2RpZmYgLS1naXQgYS9zcmMvbGlibXkvR05VbWFrZWZpbGUgYi9zcmMvbGlibXkvR05VbWFrZWZpbGUKK2luZGV4IGNlOTBkZDkuLjg5MWZmZWEgMTAwNjQ0CistLS0gYS9zcmMvbGlibXkvR05VbWFrZWZpbGUKKysrKyBiL3NyYy9saWJteS9HTlVtYWtlZmlsZQorQEAgLTEsMzAgKzEsMzAgQEAKKy1DQ0ZMQUdTID0gLU8yIC1XYWxsIC1XZXJyb3IgLVdzdHJpY3QtcHJvdG90eXBlcyAtYworK0NGTEFHUyA6PSAtTzIgLVdhbGwgLVdlcnJvciAtV3N0cmljdC1wcm90b3R5cGVzIC1jCisgCisgbGlibXkuYToJc3RyY3V0bC5vIHN0cmN1dHcubyBzdHJjdXRzLm8gc3RyY3V0aS5vIHN0cmN1dGYubyBmbG9nLm8gZmxvZ2QubyBmcGFyc2UubyBzdHJsb3dlci5vIHN0cmI2NGQubworLQkJYXIgLXIgbGlibXkuYSBzdHJjdXRsLm8gc3RyY3V0dy5vIHN0cmN1dHMubyBzdHJjdXRpLm8gc3RyY3V0Zi5vIGZsb2cubyBmbG9nZC5vIGZwYXJzZS5vIHN0cmxvd2VyLm8gc3RyYjY0ZC5vCistCQlyYW5saWIgbGlibXkuYQorKwkJJChBUikgLXIgbGlibXkuYSBzdHJjdXRsLm8gc3RyY3V0dy5vIHN0cmN1dHMubyBzdHJjdXRpLm8gc3RyY3V0Zi5vIGZsb2cubyBmbG9nZC5vIGZwYXJzZS5vIHN0cmxvd2VyLm8gc3RyYjY0ZC5vCisrCQkkKFJBTkxJQikgbGlibXkuYQorIAorIHN0cmN1dGwubzoJc3RyY3V0bC5jCistCQljYyAke0NDRkxBR1N9IHN0cmN1dGwuYworKwkJJChDQykgJChDRkxBR1MpIHN0cmN1dGwuYworIHN0cmN1dHcubzoJc3RyY3V0dy5jCistCQljYyAke0NDRkxBR1N9IHN0cmN1dHcuYworKwkJJChDQykgJChDRkxBR1MpIHN0cmN1dHcuYworIHN0cmN1dHMubzoJc3RyY3V0cy5jCistCQljYyAke0NDRkxBR1N9IHN0cmN1dHMuYworKwkJJChDQykgJChDRkxBR1MpIHN0cmN1dHMuYworIHN0cmN1dGkubzoJc3RyY3V0aS5jCistCQljYyAke0NDRkxBR1N9IHN0cmN1dGkuYworKwkJJChDQykgJChDRkxBR1MpIHN0cmN1dGkuYworIHN0cmN1dGYubzoJc3RyY3V0Zi5jCistCQljYyAke0NDRkxBR1N9IHN0cmN1dGYuYworKwkJJChDQykgJChDRkxBR1MpIHN0cmN1dGYuYworIHN0cmxvd2VyLm86CXN0cmxvd2VyLmMKKy0JCWNjICR7Q0NGTEFHU30gc3RybG93ZXIuYworKwkJJChDQykgJChDRkxBR1MpIHN0cmxvd2VyLmMKKyBzdHJiNjRkLm86CXN0cmI2NGQuYworLQkJY2MgJHtDQ0ZMQUdTfSBzdHJiNjRkLmMKKysJCSQoQ0MpICQoQ0ZMQUdTKSBzdHJiNjRkLmMKKyAKKyBmbG9nLm86CQlmbG9nLmMKKy0JCWNjICR7Q0NGTEFHU30gZmxvZy5jCisrCQkkKENDKSAkKENGTEFHUykgZmxvZy5jCisgZmxvZ2QubzoJZmxvZ2QuYworLQkJY2MgJHtDQ0ZMQUdTfSBmbG9nZC5jCisrCQkkKENDKSAkKENGTEFHUykgZmxvZ2QuYworIGZwYXJzZS5vOglmcGFyc2UuYworLQkJY2MgJHtDQ0ZMQUdTfSBmcGFyc2UuYworKwkJJChDQykgJChDRkxBR1MpIGZwYXJzZS5jCisgCisgY2xlYW46CisgCQlybSAtZiBsaWJteS5hICoubworZGlmZiAtLWdpdCBhL3NyYy9uaHR0cGQvR05VbWFrZWZpbGUgYi9zcmMvbmh0dHBkL0dOVW1ha2VmaWxlCitpbmRleCBmNmQxMmRlLi45NTI0OTExIDEwMDY0NAorLS0tIGEvc3JjL25odHRwZC9HTlVtYWtlZmlsZQorKysrIGIvc3JjL25odHRwZC9HTlVtYWtlZmlsZQorQEAgLTEsMTggKzEsMTggQEAKKy1DQ0ZMQUdTID0gLU8yIC1waXBlIC1XYWxsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLWMKKytDRkxBR1MgOj0gLU8yIC1waXBlIC1XYWxsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLWMKKyAKKyBuaHR0cGQ6CW1haW4ubyBodHRwLm8gc3lzLm8KKy0JY2MgLUwuLi9saWJteSAtTC4uL2xpYmJzZCAtbyBuaHR0cGQgbWFpbi5vIGh0dHAubyBzeXMubyAtbG15IC1sYnNkIC1sc3NsIC1sY3J5cHQKKy0Jc3RyaXAgbmh0dHBkCisrCSQoQ0MpIC1MLi4vbGlibXkgLUwuLi9saWJic2QgLW8gbmh0dHBkIG1haW4ubyBodHRwLm8gc3lzLm8gLWxteSAtbGJzZCAtbHNzbCAtbGNyeXB0CisrIwkkKFNUUklQKSBuaHR0cGQKKyAJbnJvZmYgLVRhc2NpaSAtYyAtbWFuZG9jIG5odHRwZC44ID4gbmh0dHBkLmNhdDgKKyAKKyBtYWluLm86CW1haW4uYworLQljYyAke0NDRkxBR1N9IG1haW4uYworKwkkKENDKSAkKENGTEFHUykgbWFpbi5jCisgCisgaHR0cC5vOglodHRwLmMKKy0JY2MgJHtDQ0ZMQUdTfSBodHRwLmMKKysJJChDQykgJChDRkxBR1MpIGh0dHAuYworIAorIHN5cy5vOglzeXMuYworLQljYyAke0NDRkxBR1N9IHN5cy5jCisrCSQoQ0MpICQoQ0ZMQUdTKSBzeXMuYworIAorIGNsZWFuOgorIAlybSAtZiBuaHR0cGQgbmh0dHBkLmNhdDggKi5vCitkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL0dOVW1ha2VmaWxlIGIvc3JjL3Rvb2xzL0dOVW1ha2VmaWxlCitpbmRleCAxNWJlYTYxLi42NjNkZGI1IDEwMDY0NAorLS0tIGEvc3JjL3Rvb2xzL0dOVW1ha2VmaWxlCisrKysgYi9zcmMvdG9vbHMvR05VbWFrZWZpbGUKK0BAIC0xLDExICsxLDExIEBACistQ0NGTEFHUyA9IC1PMiAtcGlwZSAtV2FsbCAtV2Vycm9yIC1Xc3RyaWN0LXByb3RvdHlwZXMgLWMKKytDQ0ZMQUdTIDo9IC1PMiAtcGlwZSAtV2FsbCAtV2Vycm9yIC1Xc3RyaWN0LXByb3RvdHlwZXMKKyAKKyBjcnlwdDoJCWNyeXB0Lm8KKy0JCWNjIC1vIGNyeXB0IGNyeXB0Lm8gLWxjcnlwdAorLQkJc3RyaXAgY3J5cHQKKysJCSQoQ0MpICQoQ0ZMQUdTKSAtbyBjcnlwdCBjcnlwdC5vIC1sY3J5cHQKKysjCQkkKFNUUklQKSBjcnlwdAorIAorIGNyeXB0Lm86CWNyeXB0LmMKKy0JCWNjICR7Q0NGTEFHU30gY3J5cHQuYworKwkJJChDQykgJChDRkxBR1MpIC1jIGNyeXB0LmMKKyAKKyBjbGVhbjoKKyAJCXJtIC1mIGNyeXB0ICoubworLS0gCisxLjcuNi40CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9ub3N0cm9tby9maWxlcy9uaHR0cGQuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9ub3N0cm9tby9maWxlcy9uaHR0cGQuY29uZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Njc0YmI2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25vc3Ryb21vL2ZpbGVzL25odHRwZC5jb25mCkBAIC0wLDAgKzEsNTUgQEAKKyMgTUFJTiBbTUFOREFUT1JZXQorCitzZXJ2ZXJuYW1lCQlsb2NhbGhvc3QKKyNzZXJ2ZXJuYW1lCQl3d3cubmF6Z3VsLmNoOjgwODAKK3NlcnZlcmxpc3RlbgkJKgorI3NlcnZlcmxpc3RlbgkJODEuMjIxLjIxLjI1MCAxMjcuMC4wLjEgOjoxCitzZXJ2ZXJhZG1pbgkJd2VibWFzdGVyQGxvY2FsaG9zdAorc2VydmVycm9vdAkJL3Zhci9ub3N0cm9tbworc2VydmVybWltZXMJCS92YXIvbm9zdHJvbW8vY29uZi9taW1lcworZG9jcm9vdAkJCS92YXIvbm9zdHJvbW8vaHRkb2NzCitkb2NpbmRleAkJaW5kZXguaHRtbAorCisjIExPR1MgW09QVElPTkFMXQorCitsb2dwaWQJCQkvdmFyL3J1bi9ub3N0cm9tby9uaHR0cGQucGlkCisjbG9nYWNjZXNzCQkvdmFyL2xvZy9ub3N0cm9tby9hY2Nlc3NfbG9nCisKKyMgU0VUVUlEIFtSRUNPTU1FTkRFRF0KKwordXNlcgkJCXd3dy1kYXRhCisKKyMgQkFTSUMgQVVUSEVOVElDQVRJT04gW09QVElPTkFMXQorCisjaHRhY2Nlc3MJCS5odGFjY2VzcworI2h0cGFzc3dkCQkvdmFyL25vc3Ryb21vL2NvbmYvLmh0cGFzc3dkCisjaHRwYXNzd2QJCStic2RhdXRoCisjaHRwYXNzd2QJCStic2RhdXRobm9zc2wKKworIyBTU0wgW09QVElPTkFMXQorCisjc3NscG9ydAkJNDQzCisjc3NsY2VydAkJL2V0Yy9zc2wvc2VydmVyLmNydAorI3NzbGNlcnRrZXkJCS9ldGMvc3NsL3NlcnZlci5rZXkKKworIyBDVVNUT00gUkVTUE9OU0VTIFtPUFRJT05BTF0KKyMKKyMgVGhlIGN1c3RvbSByZXNwb25zZXMgYXJlIHNlYXJjaGVkIGluIHRoZSBjb3JyZXNwb25kaW5nIGRvY3VtZW50IHJvb3QuCisKKyNjdXN0b21fNDAxCQljdXN0b21fNDAxLmh0bWwKKyNjdXN0b21fNDAzCQljdXN0b21fNDAzLmh0bWwKKyNjdXN0b21fNDA0CQljdXN0b21fNDA0Lmh0bWwKKworIyBBTElBU0VTIFtPUFRJT05BTF0KKworL2ljb25zCQkJL3Zhci9ub3N0cm9tby9pY29ucworCisjIFZJUlRVQUwgSE9TVFMgW09QVElPTkFMXQorCisjd3d3LnJhaGVsLmNoCQkvdmFyL25vc3Ryb21vL2h0ZG9jcy93d3cucmFoZWwuY2gKKyN3d3cucmFoZWwuY2g6ODA4MAkvdmFyL25vc3Ryb21vL2h0ZG9jcy93d3cucmFoZWwuY2gKKworIyBIT01FRElSUyBbT1BUSU9OQUxdCisKKyNob21lZGlycwkJL2hvbWUKKyNob21lZGlyc19wdWJsaWMJcHVibGljX3d3dwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25vc3Ryb21vL2ZpbGVzL25vc3Ryb21vIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25vc3Ryb21vL2ZpbGVzL25vc3Ryb21vCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhMjg4NjgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbm9zdHJvbW8vZmlsZXMvbm9zdHJvbW8KQEAgLTAsMCArMSwzNCBAQAorIyEvYmluL3NoCisKK1BBVEg9L3NiaW46L2JpbjovdXNyL3NiaW46L3Vzci9iaW4KK0RBRU1PTj1uaHR0cGQKK05BTUU9bmh0dHBkCitERVNDPSJOb3N0cm9tbyBXZWIgU2VydmVyIgorT1BUUz0iLWMgL2V0Yy9uaHR0cGQuY29uZiIKKworY2FzZSAiJDEiIGluCisgIHN0YXJ0KQorCWVjaG8gLW4gIlN0YXJ0aW5nICRERVNDOiAiCisJc3RhcnQtc3RvcC1kYWVtb24gLS1zdGFydCAteCAiJERBRU1PTiIgLS0gJE9QVFMKKwllY2hvICIkTkFNRS4iCisJOzsKKyAgc3RvcCkKKwllY2hvIC1uICJTdG9wcGluZyAkREVTQzogIgorCXN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RvcCAteCAiJERBRU1PTiIKKwllY2hvICIkTkFNRS4iCisJOzsKKyAgcmVzdGFydHxmb3JjZS1yZWxvYWQpCisJZWNobyAtbiAiUmVzdGFydGluZyAkREVTQzogIgorCXN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RvcCAteCAiJERBRU1PTiIKKwlzbGVlcCAxCisJc3RhcnQtc3RvcC1kYWVtb24gLS1zdGFydCAteCAiJERBRU1PTiIgLS0gJE9QVFMKKwllY2hvICIkTkFNRS4iCisJOzsKKyAgKikKKwlOPS9ldGMvaW5pdC5kLyROQU1FCisJZWNobyAiVXNhZ2U6ICROIHtzdGFydHxzdG9wfHJlc3RhcnR8Zm9yY2UtcmVsb2FkfSIgPiYyCisJZXhpdCAxCisJOzsKK2VzYWMKKworZXhpdCAwCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbm9zdHJvbW8vZmlsZXMvdG1wZmlsZXMuY29uZiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9ub3N0cm9tby9maWxlcy90bXBmaWxlcy5jb25mCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3YTlmNDgKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbm9zdHJvbW8vZmlsZXMvdG1wZmlsZXMuY29uZgpAQCAtMCwwICsxIEBACitkIC9ydW4vbm9zdHJvbW8gLSB3d3ctZGF0YSB3d3ctZGF0YSAtCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbm9zdHJvbW8vZmlsZXMvdm9sYXRpbGVzIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25vc3Ryb21vL2ZpbGVzL3ZvbGF0aWxlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDkyNDk2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25vc3Ryb21vL2ZpbGVzL3ZvbGF0aWxlcwpAQCAtMCwwICsxLDIgQEAKK2Qgd3d3LWRhdGEgd3d3LWRhdGEgMDc3NSAvdmFyL3J1bi9ub3N0cm9tbyBub25lCitkIHd3dy1kYXRhIHd3dy1kYXRhIDA3NzUgL3Zhci9sb2cvbm9zdHJvbW8gbm9uZQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25vc3Ryb21vL25vc3Ryb21vXzEuOS41LmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL25vc3Ryb21vL25vc3Ryb21vXzEuOS41LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2MmVjZDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvbm9zdHJvbW8vbm9zdHJvbW9fMS45LjUuYmIKQEAgLTAsMCArMSw2OSBAQAorU1VNTUFSWSA9ICJBIHNpbXBsZSwgZmFzdCBhbmQgc2VjdXJlIEhUVFAgc2VydmVyIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5uYXpndWwuY2gvZGV2X25vc3Ryb21vLmh0bWwiCitMSUNFTlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL3NyYy9uaHR0cGQvbWFpbi5jO2JlZ2lubGluZT0yO2VuZGxpbmU9MTQ7bWQ1PWU1ZWMzZmE3MjNiMjliN2Q1OWQyMDVhZmQ4ZDM2OTM4IgorCitTUkNfVVJJID0gImh0dHA6Ly93d3cubmF6Z3VsLmNoL2Rldi8ke0JQTn0tJHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtR05VbWFrZWZpbGUtYWRkLXBvc3NpYmlsaXR5LXRvLW92ZXJyaWRlLXZhcmlhYmxlcy5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9uaHR0cGQuY29uZiBcCisgICAgICAgICAgIGZpbGU6Ly92b2xhdGlsZXMgXAorICAgICAgICAgICBmaWxlOi8vdG1wZmlsZXMuY29uZiBcCisgICAgICAgICAgIGZpbGU6Ly9ub3N0cm9tbyBcCisiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJkYzZjZmQ2YjVhYWUwNGMzNzBjN2Y4MThmYTdiZGU1NSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI1ZjYyNTc4Mjg1ZTAyNDQ5NDA2YjQ2Y2YwNmE3ODg4ZmUzZGM0YTkwYmVkZjU4Y2MxODUyM2JhZDYyZjZiOTE0IgorCitUQVJHRVRfQ0NfQVJDSCArPSAiJHtMREZMQUdTfSIKKworREVQRU5EUyA9ICJvcGVuc3NsIgorCitpbmhlcml0IHVwZGF0ZS1yYy5kIHVzZXJhZGQKKworSU5JVFNDUklQVF9OQU1FID0gIm5vc3Ryb21vIgorSU5JVFNDUklQVF9QQVJBTVMgPSAiZGVmYXVsdHMgNzAiCisKK2RvX2NvbXBpbGUoKSB7CisgICAgb2VfcnVubWFrZQorfQorCisjIHdlIG5lZWQgdXNlci9ncm91cCB3d3ctZGF0YSB0byBleGlzdCB3aGVuIHdlIGluc3RhbGwKKyMKK1VTRVJBRERfUEFDS0FHRVMgPSAiJHtQTn0iCitVU0VSQUREX1BBUkFNXyR7UE59ID0gIi0tc3lzdGVtIC1nIHd3dy1kYXRhIHd3dy1kYXRhIgorCitkb19pbnN0YWxsKCkgeworICAgIGluc3RhbGwgLWQgJHtEfS8ke3NiaW5kaXJ9CisgICAgaW5zdGFsbCAtbSAwNzU1IHNyYy9uaHR0cGQvbmh0dHBkICR7RH0vJHtzYmluZGlyfS9uaHR0cGQKKyAgICBpbnN0YWxsIC1tIDA3NTUgc3JjL3Rvb2xzL2NyeXB0ICR7RH0vJHtzYmluZGlyfS9jcnlwdAorICAgIGluc3RhbGwgLWQgJHtEfS8ke21hbmRpcn0vbWFuOAorICAgIGluc3RhbGwgLW0gMDQ0NCBzcmMvbmh0dHBkL25odHRwZC44ICR7RH0vJHttYW5kaXJ9L21hbjgvbmh0dHBkLjgKKyAgICBpbnN0YWxsIC1kICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L25vc3Ryb21vL2NvbmYKKyAgICBpbnN0YWxsIC1kICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L25vc3Ryb21vL2h0ZG9jcy9jZ2ktYmluCisgICAgaW5zdGFsbCAtZCAke0R9JHtsb2NhbHN0YXRlZGlyfS9ub3N0cm9tby9pY29ucworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCisgICAgaW5zdGFsbCAtbSAwNjQ0IGNvbmYvbWltZXMgJHtEfSR7bG9jYWxzdGF0ZWRpcn0vbm9zdHJvbW8vY29uZi9taW1lcworICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L25odHRwZC5jb25mICR7RH0ke3N5c2NvbmZkaXJ9CisgICAgaW5zdGFsbCAtbSAwNzU1ICR7V09SS0RJUn0vbm9zdHJvbW8gJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCisgICAgaW5zdGFsbCAtRCAtbSAwNjQ0ICR7V09SS0RJUn0vdm9sYXRpbGVzICR7RH0ke3N5c2NvbmZkaXJ9L2RlZmF1bHQvdm9sYXRpbGVzL25vc3Ryb21vCisgICAgaWYgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdzeXN0ZW1kJywgJ3RydWUnLCAnZmFsc2UnLCBkKX07IHRoZW4KKyAgICAgICAgaW5zdGFsbCAtRCAtbSAwNjQ0ICR7V09SS0RJUn0vdG1wZmlsZXMuY29uZiAke0R9JHtzeXNjb25mZGlyfS90bXBmaWxlcy5kL25vc3Ryb21vLmNvbmYKKyAgICBmaQorICAgIGluc3RhbGwgLW0gMDY0NCBodGRvY3MvaW5kZXguaHRtbCAke0R9JHtsb2NhbHN0YXRlZGlyfS9ub3N0cm9tby9odGRvY3MvaW5kZXguaHRtbAorICAgIGluc3RhbGwgLW0gMDY0NCBodGRvY3Mvbm9zdHJvbW8uZ2lmICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L25vc3Ryb21vL2h0ZG9jcy9ub3N0cm9tby5naWYKKyAgICBpbnN0YWxsIC1tIDA2NDQgaWNvbnMvZGlyLmdpZiAke0R9JHtsb2NhbHN0YXRlZGlyfS9ub3N0cm9tby9pY29ucy9kaXIuZ2lmCisgICAgaW5zdGFsbCAtbSAwNjQ0IGljb25zL2ZpbGUuZ2lmICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L25vc3Ryb21vL2ljb25zL2ZpbGUuZ2lmCisgICAgY2hvd24gLVIgd3d3LWRhdGE6d3d3LWRhdGEgJHtEfS8ke2xvY2Fsc3RhdGVkaXJ9L25vc3Ryb21vCit9CisKK0NPTkZGSUxFU18ke1BOfSArPSAiL3Zhci9ub3N0cm9tby9jb25mL21pbWVzICR7c3lzY29uZmRpcn0vbmh0dHBkLmNvbmYiCisKK3BrZ19wb3N0aW5zdF8ke1BOfSAoKSB7CisgICAgaWYgWyAteiAiJEQiIF07IHRoZW4KKyAgICAgICAgaWYgWyAtZSAvc3lzL2ZzL2Nncm91cC9zeXN0ZW1kIF07IHRoZW4KKyAgICAgICAgICAgIHN5c3RlbWQtdG1wZmlsZXMgLS1jcmVhdGUgJHtzeXNjb25mZGlyfS90bXBmaWxlcy5kL25vc3Ryb21vLmNvbmYKKyAgICAgICAgZWxpZiBbIC1lICR7c3lzY29uZmRpcn0vaW5pdC5kL3BvcHVsYXRlLXZvbGF0aWxlLnNoIF07IHRoZW4KKyAgICAgICAgICAgICR7c3lzY29uZmRpcn0vaW5pdC5kL3BvcHVsYXRlLXZvbGF0aWxlLnNoIHVwZGF0ZQorICAgICAgICBmaQorICAgIGZpCit9CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvc3RodHRwZC9zdGh0dHBkL2luaXQgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvc3RodHRwZC9zdGh0dHBkL2luaXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVmN2IwMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9zdGh0dHBkL3N0aHR0cGQvaW5pdApAQCAtMCwwICsxLDUyIEBACisjIS9iaW4vc2gKKworIyMjIEJFR0lOIElOSVQgSU5GTworIyBQcm92aWRlczogICAgICAgICAgdGh0dHBkCisjIFJlcXVpcmVkLVN0YXJ0OiAgICAkcmVtb3RlX2ZzICRzeXNsb2cKKyMgUmVxdWlyZWQtU3RvcDogICAgICRyZW1vdGVfZnMgJHN5c2xvZworIyBEZWZhdWx0LVN0YXJ0OiAgICAgMiAzIDQgNQorIyBEZWZhdWx0LVN0b3A6ICAgICAgMCAxIDYKKyMgU2hvcnQtRGVzY3JpcHRpb246IFNtYWxsIGh0dHAgc2VydmVyCisjIERlc2NyaXB0aW9uOiAgICAgICB0aHR0cGQgaXMgYSBzaW1wbGUsIHNtYWxsLCBwb3J0YWJsZSwgZmFzdCwgYW5kIHNlY3VyZSBIVFRQIHNlcnZlci4KKyMjIyBFTkQgSU5JVCBJTkZPCisKKwordGh0dHBkPS91c3Ivc2Jpbi90aHR0cGQKK3Rlc3QgLXggIiR0aHR0cGQiIHx8IGV4aXQgMAorCisKK2Nhc2UgIiQxIiBpbgorICBzdGFydCkKKyAgICBlY2hvIC1uICJTdGFydGluZyB0aHR0cGQiCisgICAgc3RhcnQtc3RvcC1kYWVtb24gLS1zdGFydCAtLXF1aWV0IC0tZXhlYyAkdGh0dHBkIC0tIC1DIEBAQ09ORkZJTEUKKyAgICBlY2hvICIuIgorICAgIDs7CisgIHN0b3ApCisgICAgZWNobyAtbiAiU3RvcHBpbmcgdGh0dHBkIgorICAgIHN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RvcCAtLXF1aWV0IC0tZXhlYyAkdGh0dHBkCisgICAgZWNobyAiLiIKKyAgICA7OworICByZWxvYWR8Zm9yY2UtcmVsb2FkKQorICAgIHN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RvcCAtLXF1aWV0IC0tc2lnbmFsIDEgLS1leGVjICR0aHR0cGQKKyAgICA7OworICByZXN0YXJ0KQorICAgIGVjaG8gLW4gIlN0b3BwaW5nIHRodHRwZCIKKyAgICBzdGFydC1zdG9wLWRhZW1vbiAtLXN0b3AgLS1xdWlldCAtLWV4ZWMgJHRodHRwZCAtLSAtQyBAQENPTkZGSUxFCisgICAgZWNobyAiLiIKKyAgICBlY2hvIC1uICJXYWl0aW5nIGZvciB0aHR0cGQgdG8gZGllIG9mZiIKKyAgICBmb3IgaSBpbiAxIDIgMyA7CisgICAgZG8KKyAgICAgICAgc2xlZXAgMQorICAgICAgICBlY2hvIC1uICIuIgorICAgIGRvbmUKKyAgICBlY2hvICIiCisgICAgZWNobyAtbiAiU3RhcnRpbmcgdGh0dHBkIgorICAgIHN0YXJ0LXN0b3AtZGFlbW9uIC0tc3RhcnQgLS1xdWlldCAtLWV4ZWMgJHRodHRwZCAtLSAtQyBAQENPTkZGSUxFCisgICAgZWNobyAiLiIKKyAgICA7OworICAqKQorICAgIGVjaG8gIlVzYWdlOiAvZXRjL2luaXQuZC90aHR0cGQge3N0YXJ0fHN0b3B8cmVsb2FkfHJlc3RhcnR8Zm9yY2UtcmVsb2FkfSIKKyAgICBleGl0IDEKK2VzYWMKKworZXhpdCAwCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvc3RodHRwZC9zdGh0dHBkL3RodHRwZC5jb25mIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL3N0aHR0cGQvc3RodHRwZC90aHR0cGQuY29uZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTc5ODRmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLWh0dHBkL3N0aHR0cGQvc3RodHRwZC90aHR0cGQuY29uZgpAQCAtMCwwICsxIEBACitkaXI9QEBTUlZESVIKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9zdGh0dHBkL3N0aHR0cGQvdGh0dHBkLnNlcnZpY2UgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvc3RodHRwZC9zdGh0dHBkL3RodHRwZC5zZXJ2aWNlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxMDk1MDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvc3RodHRwZC9zdGh0dHBkL3RodHRwZC5zZXJ2aWNlCkBAIC0wLDAgKzEsMTAgQEAKK1tVbml0XQorRGVzY3JpcHRpb249VGlueS9UdXJiby9UaHJvdHRsaW5nIFdlYiBTZXJ2ZXIKKworW1NlcnZpY2VdCitUeXBlPWZvcmtpbmcKK0V4ZWNTdGFydD0vdXNyL3NiaW4vdGh0dHBkIC1DIEBAQ09ORkZJTEUgLWMgY2dpLWJpbi8qIC1pIC92YXIvcnVuL3RodHRwZC5waWQKK1BJREZpbGU9L3Zhci9ydW4vdGh0dHBkLnBpZAorCitbSW5zdGFsbF0KK1dhbnRlZEJ5PW11bHRpLXVzZXIudGFyZ2V0CmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvc3RodHRwZC9zdGh0dHBkXzIuMjYuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1odHRwZC9zdGh0dHBkL3N0aHR0cGRfMi4yNi40LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwMzQ5MjEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtaHR0cGQvc3RodHRwZC9zdGh0dHBkXzIuMjYuNC5iYgpAQCAtMCwwICsxLDQ1IEBACitTVU1NQVJZID0gIkEgc2ltcGxlLCBzbWFsbCwgcG9ydGFibGUsIGZhc3QsIGFuZCBzZWN1cmUgSFRUUCBzZXJ2ZXIiCitERVNDUklQVElPTiA9ICJBIHNpbXBsZSwgc21hbGwsIHBvcnRhYmxlLCBmYXN0LCBhbmQgc2VjdXJlIEhUVFAgc2VydmVyIChzdXBwb3J0ZWQgZm9yayBvZiB0aHR0cGQpLiIKK0hPTUVQQUdFID0gImh0dHA6Ly9vcGVuc291cmNlLmR5Yy5lZHUvc3RodHRwZCIKK0xJQ0VOU0UgPSAiQlNELTItQ2xhdXNlIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vc3JjL3RodHRwZC5jO2JlZ2lubGluZT0xO2VuZGxpbmU9MjY7bWQ1PTBjNTc2MmMyYzM0ZGNiZTllYjE4ODE1NTE2NTAyODcyIgorCitTUkNfVVJJID0gImh0dHA6Ly9vcGVuc291cmNlLmR5Yy5lZHUvcHViL3N0aHR0cGQvc3RodHRwZC0ke1BWfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vdGh0dHBkLnNlcnZpY2UgXAorICAgICAgICAgICBmaWxlOi8vdGh0dHBkLmNvbmYgXAorICAgICAgICAgICBmaWxlOi8vaW5pdCIKKworU1JDX1VSSVttZDVzdW1dID0gImU2NDVhODVhOTdkM2NiODgzMDExYTM1YmMyMjExODE1IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjc4ZTg3OTc5MTQwY2JkYTEyM2M4MWI0MDUxNTUyMjQyZGJiZmZiNWRlYzFhMTdlNWY5NWVjNDgyNmIxZWFkZGIiCisKK1MgPSAiJHtXT1JLRElSfS9zdGh0dHBkLSR7UFZ9IgorCitpbmhlcml0IGF1dG90b29scyB1cGRhdGUtcmMuZCBzeXN0ZW1kCisKK1NSVl9ESVIgPz0gIiR7c2VydmljZWRpcn0vd3d3IgorCitFWFRSQV9PRU1BS0UgKz0gIidXRUJESVI9JHtTUlZfRElSfSciCisKK2RvX2luc3RhbGxfYXBwZW5kICgpIHsKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZAorICAgIGluc3RhbGwgLWMgLW0gNzU1ICR7V09SS0RJUn0vaW5pdCAke0R9JHtzeXNjb25mZGlyfS9pbml0LmQvdGh0dHBkCisgICAgaW5zdGFsbCAtYyAtbSA3NTUgJHtXT1JLRElSfS90aHR0cGQuY29uZiAke0R9JHtzeXNjb25mZGlyfQorICAgIHNlZCAtaSAtZSAncyxAQENPTkZGSUxFLCR7c3lzY29uZmRpcn0vdGh0dHBkLmNvbmYsZycgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL3RodHRwZAorICAgIHNlZCAtaSAtZSAncyxAQFNSVkRJUiwke1NSVl9ESVJ9LGcnICR7RH0ke3N5c2NvbmZkaXJ9L3RodHRwZC5jb25mCisgICAgc2VkIC1pICdzIS91c3Ivc2Jpbi8hJHtzYmluZGlyfS8hZycgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL3RodHRwZAorCisgICAgaW5zdGFsbCAtZCAke0R9JHtzeXN0ZW1kX3VuaXRkaXJ9L3N5c3RlbQorICAgIGluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L3RodHRwZC5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCisgICAgc2VkIC1pICdzIS91c3Ivc2Jpbi8hJHtzYmluZGlyfS8hZycgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vdGh0dHBkLnNlcnZpY2UKKyAgICBzZWQgLWkgJ3MhL3Zhci8hJHtsb2NhbHN0YXRlZGlyfS8hZycgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vdGh0dHBkLnNlcnZpY2UKKyAgICBzZWQgLWkgLWUgJ3MsQEBDT05GRklMRSwke3N5c2NvbmZkaXJ9L3RodHRwZC5jb25mLGcnICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtL3RodHRwZC5zZXJ2aWNlCit9CisKK0lOSVRTQ1JJUFRfTkFNRSA9ICJ0aHR0cGQiCitJTklUU0NSSVBUX1BBUkFNUyA9ICJkZWZhdWx0cyIKKworU1lTVEVNRF9TRVJWSUNFXyR7UE59ID0gInRodHRwZC5zZXJ2aWNlIgorCitGSUxFU18ke1BOfSArPSAiJHtTUlZfRElSfSIKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtTUlZfRElSfS9jZ2ktYmluLy5kZWJ1ZyIKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC9waHBteWFkbWluL3BocG15YWRtaW4vUG9ydC1jb250ZW50LXNwb29maW5nLWZpeC1DVkUtMjAxNS03ODczLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC9waHBteWFkbWluL3BocG15YWRtaW4vUG9ydC1jb250ZW50LXNwb29maW5nLWZpeC1DVkUtMjAxNS03ODczLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlNmJjYmQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtcGhwL3BocG15YWRtaW4vcGhwbXlhZG1pbi9Qb3J0LWNvbnRlbnQtc3Bvb2ZpbmctZml4LUNWRS0yMDE1LTc4NzMucGF0Y2gKQEAgLTAsMCArMSw0OCBAQAorRnJvbSBhZTdlYWUxY2M4OGNiZGYyZDI3YTZmMTBmMDk3ZWY3MzE4MjM2ODllIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogV2Vuem9uZyBGYW4gPHdlbnpvbmcuZmFuQHdpbmRyaXZlci5jb20+CitEYXRlOiBTYXQsIDE0IE5vdiAyMDE1IDAyOjAxOjU0IC0wNTAwCitTdWJqZWN0OiBbUEFUQ0hdIFBvcnQgY29udGVudCBzcG9vZmluZyBmaXgKKworQmFja3BvcnQgdXBzdHJlYW0gY29tbWl0IGZvciBmaXhpbmcgQ1ZFLTIwMTUtNzg3MzoKKyAgaHR0cHM6Ly9naXRodWIuY29tL3BocG15YWRtaW4vcGhwbXlhZG1pbi9jb21taXQvY2QwOTc2NTY3NThmOTgxZjgwZmI5MDI5YzdkNmI0Mjk0NTgyYjcwNgorCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CisKK1NpZ25lZC1vZmYtYnk6IE1hcmMgRGVsaXNsZSA8bWFyY0BpbmZvbWFyYy5pbmZvPgorU2lnbmVkLW9mZi1ieTogV2Vuem9uZyBGYW4gPHdlbnpvbmcuZmFuQHdpbmRyaXZlci5jb20+CistLS0KKyBDaGFuZ2VMb2cgfCA0ICsrKysKKyB1cmwucGhwICAgfCAzICsrLQorIDIgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKK2luZGV4IDRjYjY3MDguLjk2OTM2YzggMTAwNjQ0CistLS0gYS9DaGFuZ2VMb2cKKysrKyBiL0NoYW5nZUxvZworQEAgLTEwNyw2ICsxMDcsMTAgQEAgcGhwTXlBZG1pbiAtIENoYW5nZUxvZworIC0gaXNzdWUgIzExNDQ4IENsYXJpZnkgZG9jIGFib3V0IHRoZSBNZW1vcnlMaW1pdCBkaXJlY3RpdmUKKyAtIGlzc3VlICMxMTQ4OSBDYW5ub3QgY29weSBhIGRhdGFiYXNlIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucworIAorKzQuNC4xNS4xICgyMDE1LTEwLTIzKQorKy0gaXNzdWUgIzExNDY0IHBocE15QWRtaW4gc3VnZ2VzdHMgdXBncmFkaW5nIHRvIG5ld2VyIHZlcnNpb24gbm90IHVzYWJsZSBvbiB0aGF0IHN5c3RlbQorKy0gaXNzdWUgW3NlY3VyaXR5XSBDb250ZW50IHNwb29maW5nIG9uIHVybC5waHAKKysKKyA0LjQuMTUuMCAobm90IHlldCByZWxlYXNlZCkKKyAtIGlzc3VlICMxMTQxMSBVbmRlZmluZWQgInJlcGxhY2UiIGZ1bmN0aW9uIG9uIG51bWVyaWMgc2NhbGFyCisgLSBpc3N1ZSAjMTE0MjEgU3RvcmVkLXByb2MgLyByb3V0aW5lIC0gYnJva2VuIHBhcmFtZXRlciBwYXJzaW5nCitkaWZmIC0tZ2l0IGEvdXJsLnBocCBiL3VybC5waHAKK2luZGV4IGVlYzc4YTUuLjljNGM4ODQgMTAwNjQ0CistLS0gYS91cmwucGhwCisrKysgYi91cmwucGhwCitAQCAtMzIsNiArMzIsNyBAQCBpZiAoISBQTUFfaXNWYWxpZCgkX1JFUVVFU1RbJ3VybCddKQorICAgICAgICAgICAgIH0KKyAgICAgICAgIDwvc2NyaXB0PiI7CisgICAgIC8vIERpc3BsYXkgcmVkaXJlY3RpbmcgbXNnIG9uIHNjcmVlbi4KKy0gICAgcHJpbnRmKF9fKCdUYWtpbmcgeW91IHRvICVzLicpLCBodG1sc3BlY2lhbGNoYXJzKCRfUkVRVUVTVFsndXJsJ10pKTsKKysgICAgLy8gRG8gbm90IGRpc3BsYXkgdGhlIHZhbHVlIG9mICRfUkVRVUVTVFsndXJsJ10gdG8gYXZvaWQgc2hvd2luZyBpbmplY3RlZCBjb250ZW50CisrICAgIGVjaG8gX18oJ1Rha2luZyB5b3UgdG8gdGhlIHRhcmdldCBzaXRlLicpOworIH0KKyBkaWUoKTsKKy0tIAorMS45LjEKKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC9waHBteWFkbWluL3BocG15YWRtaW4vYXBhY2hlLmNvbmYgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtcGhwL3BocG15YWRtaW4vcGhwbXlhZG1pbi9hcGFjaGUuY29uZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGNiZDg2Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC9waHBteWFkbWluL3BocG15YWRtaW4vYXBhY2hlLmNvbmYKQEAgLTAsMCArMSw0MiBAQAorIyBwaHBNeUFkbWluIGRlZmF1bHQgQXBhY2hlIGNvbmZpZ3VyYXRpb24KKworQWxpYXMgL3BocG15YWRtaW4gL3Vzci9zaGFyZS9waHBteWFkbWluCisKKzxEaXJlY3RvcnkgL3Vzci9zaGFyZS9waHBteWFkbWluPgorCU9wdGlvbnMgRm9sbG93U3ltTGlua3MKKwlEaXJlY3RvcnlJbmRleCBpbmRleC5waHAKKwlSZXF1aXJlIGFsbCBncmFudGVkCisKKwk8SWZNb2R1bGUgbW9kX3BocDUuYz4KKwkJQWRkVHlwZSBhcHBsaWNhdGlvbi94LWh0dHBkLXBocCAucGhwCisKKwkJcGhwX2ZsYWcgbWFnaWNfcXVvdGVzX2dwYyBPZmYKKwkJcGhwX2ZsYWcgdHJhY2tfdmFycyBPbgorCQlwaHBfZmxhZyByZWdpc3Rlcl9nbG9iYWxzIE9mZgorCQlwaHBfYWRtaW5fZmxhZyBhbGxvd191cmxfZm9wZW4gT2ZmCisJCXBocF92YWx1ZSBpbmNsdWRlX3BhdGggLgorCQlwaHBfYWRtaW5fdmFsdWUgdXBsb2FkX3RtcF9kaXIgL3Zhci9saWIvcGhwbXlhZG1pbi90bXAKKwkJcGhwX2FkbWluX3ZhbHVlIG9wZW5fYmFzZWRpciAvdXNyL3NoYXJlL3BocG15YWRtaW4vOi9ldGMvcGhwbXlhZG1pbi86L3Zhci9saWIvcGhwbXlhZG1pbi8KKwk8L0lmTW9kdWxlPgorPC9EaXJlY3Rvcnk+CisKKyMgQXV0aG9yaXplIGZvciBzZXR1cAorPERpcmVjdG9yeSAvdXNyL3NoYXJlL3BocG15YWRtaW4vc2V0dXA+CisgICAgPElmTW9kdWxlIG1vZF9hdXRobl9maWxlLmM+CisgICAgQXV0aFR5cGUgQmFzaWMKKyAgICBBdXRoTmFtZSAicGhwTXlBZG1pbiBTZXR1cCIKKyAgICBBdXRoVXNlckZpbGUgL2V0Yy9waHBteWFkbWluL2h0cGFzc3dkLnNldHVwCisgICAgPC9JZk1vZHVsZT4KKyAgICBSZXF1aXJlIHZhbGlkLXVzZXIKKzwvRGlyZWN0b3J5PgorCisjIERpc2FsbG93IHdlYiBhY2Nlc3MgdG8gZGlyZWN0b3JpZXMgdGhhdCBkb24ndCBuZWVkIGl0Cis8RGlyZWN0b3J5IC91c3Ivc2hhcmUvcGhwbXlhZG1pbi9saWJyYXJpZXM+CisgICAgT3JkZXIgRGVueSxBbGxvdworICAgIERlbnkgZnJvbSBBbGwKKzwvRGlyZWN0b3J5PgorPERpcmVjdG9yeSAvdXNyL3NoYXJlL3BocG15YWRtaW4vc2V0dXAvbGliPgorICAgIE9yZGVyIERlbnksQWxsb3cKKyAgICBEZW55IGZyb20gQWxsCis8L0RpcmVjdG9yeT4KKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC9waHBteWFkbWluL3BocG15YWRtaW4vcGhwbXlhZG1pbi1DVkUtMjAxNS04NjY5LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC9waHBteWFkbWluL3BocG15YWRtaW4vcGhwbXlhZG1pbi1DVkUtMjAxNS04NjY5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1ZmZmNjQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtcGhwL3BocG15YWRtaW4vcGhwbXlhZG1pbi9waHBteWFkbWluLUNWRS0yMDE1LTg2NjkucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorW1NlY3VyaXR5XSBQYXRoIGRpc2Nsb3N1cmUsIHNlZSBQTUFTQS0yMDE1LTYKKworVXBzdHJlYW0tU3RhdHVzOiBCYWNwb3J0CisKK1NpZ25lZC1vZmYtYnk6IE1hcmMgRGVsaXNsZSA8bWFyY0BpbmZvbWFyYy5pbmZvPgorCitkaWZmIC1OdXIgcGhwTXlBZG1pbi00LjUuMC4yLWFsbC1sYW5ndWFnZXMub3JpZy9saWJyYXJpZXMvY29uZmlnL21lc3NhZ2VzLmluYy5waHAgcGhwTXlBZG1pbi00LjUuMC4yLWFsbC1sYW5ndWFnZXMvbGlicmFyaWVzL2NvbmZpZy9tZXNzYWdlcy5pbmMucGhwCistLS0gcGhwTXlBZG1pbi00LjUuMC4yLWFsbC1sYW5ndWFnZXMub3JpZy9saWJyYXJpZXMvY29uZmlnL21lc3NhZ2VzLmluYy5waHAJMjAxNi0wMS0yMCAxNToxMToxNS40MTAxMDY4ODggKzA4MDAKKysrKyBwaHBNeUFkbWluLTQuNS4wLjItYWxsLWxhbmd1YWdlcy9saWJyYXJpZXMvY29uZmlnL21lc3NhZ2VzLmluYy5waHAJMjAxNi0wMS0yMCAxNToxNDowNS43NTgxMDgwNzYgKzA4MDAKK0BAIC0xMSw3ICsxMSw3IEBACisgICovCisgCisgaWYgKCFmdW5jdGlvbl9leGlzdHMoJ19fJykpIHsKKy0gICAgUE1BX2ZhdGFsRXJyb3IoJ0JhZCBpbnZvY2F0aW9uIScpOworKyAgICBleGl0KCk7CisgfQorIAorICRzdHJDb25maWdBbGxvd0FyYml0cmFyeVNlcnZlcl9kZXNjID0gX18oCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtcGhwL3BocG15YWRtaW4vcGhwbXlhZG1pbl80LjUuMC4yLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC9waHBteWFkbWluL3BocG15YWRtaW5fNC41LjAuMi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzMyMTg1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXBocC9waHBteWFkbWluL3BocG15YWRtaW5fNC41LjAuMi5iYgpAQCAtMCwwICsxLDM4IEBACitTVU1NQVJZID0gIldlYi1iYXNlZCBNeVNRTCBhZG1pbmlzdHJhdGlvbiBpbnRlcmZhY2UiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LnBocG15YWRtaW4ubmV0IgorIyBNYWluIGNvZGUgaXMgR1BMdjIsIGxpYnJhcmllcy90Y3BkZiBpcyB1bmRlciBMR1BMdjMsIGpzL2pxdWVyeSBpcyB1bmRlciBNSVQKK0xJQ0VOU0UgPSAiR1BMdjIgJiBMR1BMdjMgJiBNSVQiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9saWJyYXJpZXMvdGNwZGYvTElDRU5TRS5UWFQ7bWQ1PTVjODdiNjZhNTM1OGViY2M0OTViMDNlMGFmY2QzNDJjIgorCitTUkNfVVJJID0gImh0dHBzOi8vZmlsZXMucGhwbXlhZG1pbi5uZXQvcGhwTXlBZG1pbi80LjUuMC4yL3BocE15QWRtaW4tNC41LjAuMi1hbGwtbGFuZ3VhZ2VzLnRhci54eiBcCisgICAgICAgICAgIGZpbGU6Ly9Qb3J0LWNvbnRlbnQtc3Bvb2ZpbmctZml4LUNWRS0yMDE1LTc4NzMucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vYXBhY2hlLmNvbmYgXAorICAgICAgICAgICBmaWxlOi8vcGhwbXlhZG1pbi1DVkUtMjAxNS04NjY5LnBhdGNoIFwKKyIKKworU1JDX1VSSVttZDVzdW1dID0gIjJkMDhkMmZjYzhmNzBmODhhMTFhMTQ3MjNlM2NhMjc1IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImQyZTkwZWE0ODZkOTBiNGViZTVlYjAyZDdhZDM0OWFkMjkxNmMxMmE4OTgxZjk4NTUzMzk1ZWY3OGQyMmE4ZWMiCisKK1MgPSAiJHtXT1JLRElSfS9waHBNeUFkbWluLSR7UFZ9LWFsbC1sYW5ndWFnZXMiCisKK2luaGVyaXQgYWxsYXJjaAorCitkb19pbnN0YWxsKCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7ZGF0YWRpcn0vJHtCUE59CisgICAgY3AgLVIgLS1uby1kZXJlZmVyZW5jZSAtLXByZXNlcnZlPW1vZGUsbGlua3MgLXYgKiAke0R9JHtkYXRhZGlyfS8ke0JQTn0KKyAgICBjaG93biAtUiByb290OnJvb3QgJHtEfSR7ZGF0YWRpcn0vJHtCUE59CisgICAgIyBEb24ndCBpbnN0YWxsIHBhdGNoZXMgdG8gdGFyZ2V0CisgICAgcm0gLXJmICR7RH0ke2RhdGFkaXJ9LyR7QlBOfS9wYXRjaGVzCisKKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L2FwYWNoZTIvY29uZi5kCisgICAgaW5zdGFsbCAtbSAwNjQ0ICR7V09SS0RJUn0vYXBhY2hlLmNvbmYgJHtEfSR7c3lzY29uZmRpcn0vYXBhY2hlMi9jb25mLmQvcGhwbXlhZG1pbi5jb25mCisKKyAgICAjIFJlbW92ZSBhIGZldyBzY3JpcHRzIHRoYXQgZXhwbGljaXRseSByZXF1aXJlIGJhc2ggKCEpCisgICAgcm0gLWYgJHtEfSR7ZGF0YWRpcn0vcGhwbXlhZG1pbi9saWJyYXJpZXMvdHJhbnNmb3JtYXRpb25zLyouc2gKK30KKworRklMRVNfJHtQTn0gPSAiJHtkYXRhZGlyfS8ke0JQTn0gXAorICAgICAgICAgICAgICAgJHtzeXNjb25mZGlyfS9hcGFjaGUyL2NvbmYuZCIKKworUkRFUEVORFNfJHtQTn0gKz0gImJhc2giCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtcGhwL3hkZWJ1Zy94ZGVidWdfMi4yLjYuYmIgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtcGhwL3hkZWJ1Zy94ZGVidWdfMi4yLjYuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWVjYWM4OAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1waHAveGRlYnVnL3hkZWJ1Z18yLjIuNi5iYgpAQCAtMCwwICsxLDM0IEBACitTVU1NQVJZID0gIkRlYnVnZ2luZyBhbmQgcHJvZmlsaW5nIGV4dGVuc2lvbiBmb3IgUEhQIgorTElDRU5TRSA9ICJYZGVidWciCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFO21kNT0zNGRmM2EyNzRhYTEyYjc5NTQxN2M2NTYzNGMwN2YxNiIKKworREVQRU5EUyA9ICJwaHAiCisKK1NSQ19VUkkgPSAiaHR0cDovL3hkZWJ1Zy5vcmcvZmlsZXMveGRlYnVnLSR7UFZ9LnRneiIKKworU1JDX1VSSVttZDVzdW1dID0gImYyMTYzNTY4NjFlMjcyODQ1ODBkMDIwODA2MGVhN2ZhIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjZkZDFjYmEwNjA1ZTc1MDA5MzMxYWEzNjI1YTE5ZWY0OWFkZTVhNzVhYTlmZTJmZjhhODE4MTA4ZDJjY2U4NGUiCisKK2luaGVyaXQgYXV0b3Rvb2xzCisKK0VYVFJBX09FQ09ORiArPSAiLS1lbmFibGUteGRlYnVnIC13aXRoLXBocC1jb25maWc9JHtTVEFHSU5HX0JJTkRJUl9DUk9TU30vcGhwLWNvbmZpZyIKKworZG9fY29uZmlndXJlKCkgeworICAgIGNkICR7U30KKyAgICAke1NUQUdJTkdfQklORElSX0NST1NTfS9waHBpemUKKyAgICBjZCAke0J9CisKKyAgICAjIFJ1bm5pbmcgYXV0b3JlY29uZiBhcyBhdXRvdG9vbHNfZG9fY29uZmlndXJlIHdvdWxkIGRvIGhlcmUKKyAgICAjIGJyZWFrcyB0aGUgbGlidG9vbCBjb25maWd1cmF0aW9uIHJlc3VsdGluZyBpbiBhIGZhaWx1cmUgbGF0ZXIKKyAgICAjIGluIGRvX2NvbXBpbGUuIEl0J3MgcG9zc2libGUgdGhpcyBtYXkgYmUgZml4YWJsZSwgaG93ZXZlciB0aGUKKyAgICAjIGVhc2llc3QgY291cnNlIG9mIGFjdGlvbiBmb3IgdGhlIG1vbWVudCBpcyB0byBhdm9pZCBkb2luZyB0aGF0LgorICAgIG9lX3J1bmNvbmYKK30KKworZG9faW5zdGFsbCgpIHsKKyAgICBvZV9ydW5tYWtlIGluc3RhbGwgSU5TVEFMTF9ST09UPSR7RH0KK30KKworRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS9waHA1L2V4dGVuc2lvbnMvKi8qLnNvIgorRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vcGhwNS9leHRlbnNpb25zLyovLmRlYnVnIgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtc3VwcG9ydC9mY2dpL2ZjZ2kvRml4X0VPRl9ub3RfZGVjbGFyZWRfaXNzdWUucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtc3VwcG9ydC9mY2dpL2ZjZ2kvRml4X0VPRl9ub3RfZGVjbGFyZWRfaXNzdWUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTFkZGVhYQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1zdXBwb3J0L2ZjZ2kvZmNnaS9GaXhfRU9GX25vdF9kZWNsYXJlZF9pc3N1ZS5wYXRjaApAQCAtMCwwICsxLDE3IEBACitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworRml4IEVPRiBub3QgZGVjbGFyZWQgaXNzdWUsIGZvbGxvd2luZyBpcyB0aGUgZXJyb3IgbG9nLgorZmNnaW8uY3BwOjcwOjcyOiBlcnJvcjogJ0VPRicgd2FzIG5vdCBkZWNsYXJlZCBpbiB0aGlzIHNjb3BlCisgICAgICAgICAgICAgIGlmIChGQ0dYX1B1dFN0cihwYmFzZSgpLCBwbGVuLCB0aGlzLT5mY2d4KSAhPSBwbGVuKSByZXR1cm4gRU9GOworCitTaWduZWQtb2ZmLWJ5OiBZYW5nIEhhaWJvIDxiNDA4NjlAZnJlZXNjYWxlLmNvbT4KKy0tLSBmY2dpLW9yaS9saWJmY2dpL2ZjZ2lvLmNwcCAyMDE0LTA3LTI4IDE4OjAxOjAwLjAwMDAwMDAwMCArMDgwMAorKysrIGZjZ2ktMi40LjAvbGliZmNnaS9mY2dpby5jcHAgICAgICAgMjAxNC0wNy0yOCAxODowMToyMi4wMDAwMDAwMDAgKzA4MDAKK0BAIC0yMiw2ICsyMiw3IEBACisgI2RlZmluZSBETExBUEkgIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQorICNlbmRpZgorCisrI2luY2x1ZGUgPHN0ZGlvLmg+CisgI2luY2x1ZGUgPGxpbWl0cy5oPgorICNpbmNsdWRlICJmY2dpby5oIgorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtc3VwcG9ydC9mY2dpL2ZjZ2kvYWRkX2ZvcmVpZ25fdG9fQU1fSU5JVF9BVVRPTUFLRS5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1zdXBwb3J0L2ZjZ2kvZmNnaS9hZGRfZm9yZWlnbl90b19BTV9JTklUX0FVVE9NQUtFLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjYTY5NGEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtc3VwcG9ydC9mY2dpL2ZjZ2kvYWRkX2ZvcmVpZ25fdG9fQU1fSU5JVF9BVVRPTUFLRS5wYXRjaApAQCAtMCwwICsxLDE4IEBACitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKwordXNlIGF1dG9tYWtlIG9wdGlvbnMgImZvcmVpZ24iIHRvIHNldCB0aGUgc3RyaWN0bmVzcyBhcyBhcHByb3ByaWF0ZQorCitTaWduZWQtb2ZmLWJ5OiBZYW5nIEhhaWJvIDxiNDA4NjlAZnJlZXNjYWxlLmNvbT4KKy0tLSBmY2dpLW9yaS9jb25maWd1cmUuaW4JMjAxNC0wOC0wNSAxNDo1ODozNS4wMDAwMDAwMDAgKzA4MDAKKysrKyBmY2dpLTIuNC4wL2NvbmZpZ3VyZS5pbgkyMDE0LTA4LTA1IDE0OjU5OjA4LjAwMDAwMDAwMCArMDgwMAorQEAgLTQsOCArNCw4IEBACisgZG5sICAgICBnZW5lcmF0ZSB0aGUgZmlsZSAiY29uZmlndXJlIiwgd2hpY2ggaXMgcnVuIGR1cmluZyB0aGUgYnVpbGQKKyBkbmwgICAgIHRvIGNvbmZpZ3VyZSB0aGUgc3lzdGVtIGZvciB0aGUgbG9jYWwgZW52aXJvbm1lbnQuCisgCistQUNfSU5JVAorLUFNX0lOSVRfQVVUT01BS0UoZmNnaSwgMi40LjApCisrQUNfSU5JVChbZmNnaV0sIFsyLjQuMF0pCisrQU1fSU5JVF9BVVRPTUFLRShbZm9yZWlnbl0pCisgCisgQU1fQ09ORklHX0hFQURFUihmY2dpX2NvbmZpZy5oKQorIApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXN1cHBvcnQvZmNnaS9mY2dpXzIuNC4wLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXN1cHBvcnQvZmNnaS9mY2dpXzIuNC4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4YzU5NDQKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtc3VwcG9ydC9mY2dpL2ZjZ2lfMi40LjAuYmIKQEAgLTAsMCArMSwxNSBAQAorREVTQ1JJUFRJT04gPSAiRmFzdENHSSBpcyBhIHByb3RvY29sIGZvciBpbnRlcmZhY2luZyBpbnRlcmFjdGl2ZSBwcm9ncmFtcyB3aXRoIGEgd2ViIHNlcnZlci4iCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmZhc3RjZ2kuY29tIgorTElDRU5TRSA9ICJPTUwiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9MSUNFTlNFLlRFUk1TO21kNT1lM2FhY2FjM2E2NDdhZjZlN2UzMWYxODFjZGEwYTA2YSIKKworU1JDX1VSSSA9ICJodHRwOi8vZm9zc2llcy5vcmcvbGludXgvd3d3L29sZC8ke0JQfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vRml4X0VPRl9ub3RfZGVjbGFyZWRfaXNzdWUucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vYWRkX2ZvcmVpZ25fdG9fQU1fSU5JVF9BVVRPTUFLRS5wYXRjaCBcCisiCitTUkNfVVJJW21kNXN1bV0gPSAiZDE1MDYwYTgxM2I5MTM4M2E5ZjNjNjZmYWY4NDg2N2UiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjZmYzQ1YzZiMzZhMjFiZjJmYmJiNjhlOTBmNzgwY2MyMWE5ZGExZmZmYmFlNzVlNzZkMmI0NDAyZDNmMDViOSIKKworaW5oZXJpdCBhdXRvdG9vbHMKKworUEFSQUxMRUxfTUFLRSA9ICIiCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtc3VwcG9ydC9zcGF3bi1mY2dpL3NwYXduLWZjZ2ktMS42LjQvZml4X2NvbmZpZ3VyZV9pcHY2X3Rlc3QucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtc3VwcG9ydC9zcGF3bi1mY2dpL3NwYXduLWZjZ2ktMS42LjQvZml4X2NvbmZpZ3VyZV9pcHY2X3Rlc3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQwOWRkMgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1zdXBwb3J0L3NwYXduLWZjZ2kvc3Bhd24tZmNnaS0xLjYuNC9maXhfY29uZmlndXJlX2lwdjZfdGVzdC5wYXRjaApAQCAtMCwwICsxLDM1IEBACitUZXN0aW5nIGZvciBJUHY2IHN1cHBvcnQgZ290IGJyb2tlbiBieSBjb25maWd1cmUuYWMgY2hhbmdlcyBpbiAxLjYuNAorQXMgYSB0ZW1wIHdvcmthcm91bmQsIHJldmVydCBiYWNrIHRvIHRoZSAxLjYuMyB2ZXJzaW9uLgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworLS0tIHNwYXduLWZjZ2ktMS42LjQvY29uZmlndXJlLmFjCisrKysgc3Bhd24tZmNnaS0xLjYuMy9jb25maWd1cmUuYWMKK0BAIC02Niw4ICs0Nyw4IEBACisgIyBDaGVjayBmb3IgSVB2NiBzdXBwb3J0CisgCisgQUNfQVJHX0VOQUJMRShpcHY2LAorLSAgQUNfSEVMUF9TVFJJTkcoWy0tZGlzYWJsZS1pcHY2XSxbZGlzYWJsZSBJUHY2IHN1cHBvcnRdKSwKKy0gIFtjYXNlICIke2VuYWJsZXZhbH0iIGluCisrIEFDX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtaXB2Nl0sW2Rpc2FibGUgSVB2NiBzdXBwb3J0XSksCisrIFtjYXNlICIke2VuYWJsZXZhbH0iIGluCisgICAgeWVzKSBpcHY2PXRydWUgOzsKKyAgICAgbm8pIGlwdjY9ZmFsc2UgOzsKKyAgICAgICopIEFDX01TR19FUlJPUihiYWQgdmFsdWUgJHtlbmFibGV2YWx9IGZvciAtLWVuYWJsZS1pcHY2KSA7OworQEAgLTc1LDEzICs1NiwxMCBAQAorIAorIGlmIHRlc3QgeCRpcHY2ID0geHRydWU7IHRoZW4KKyAgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgSVB2NiBzdXBwb3J0XSwgYWNfY3ZfaXB2Nl9zdXBwb3J0LAorLSAgICBbQUNfVFJZX0xJTksoW1sKKy0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisrICBbQUNfVFJZX0xJTksoWyAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKy0jaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorLSAgICBdXSwgW1sKKy1zdHJ1Y3Qgc29ja2FkZHJfaW42IHM7IHN0cnVjdCBpbjZfYWRkciB0PWluNmFkZHJfYW55OyBpbnQgaT1BRl9JTkVUNjsgczsgdC5zNl9hZGRyWzBdID0gMDsKKy0gICAgXV0sIFthY19jdl9pcHY2X3N1cHBvcnQ9eWVzXSwgW2FjX2N2X2lwdjZfc3VwcG9ydD1ub10pXSkKKysjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPl0sIFtzdHJ1Y3Qgc29ja2FkZHJfaW42IHM7IHN0cnVjdCBpbjZfYWRkciB0PWluNmFkZHJfYW55OyBpbnQgaT1BRl9JTkVUNjsgczsgdC5zNl9hZGRyWzBdID0gMDsgXSwKKysgIFthY19jdl9pcHY2X3N1cHBvcnQ9eWVzXSwgW2FjX2N2X2lwdjZfc3VwcG9ydD1ub10pXSkKKyAKKyAgIGlmIHRlc3QgIiRhY19jdl9pcHY2X3N1cHBvcnQiID0geWVzOyB0aGVuCisgICAgIEFDX0RFRklORShIQVZFX0lQVjYsMSxbV2hldGhlciB0byBlbmFibGUgSVB2NiBzdXBwb3J0XSkKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1zdXBwb3J0L3NwYXduLWZjZ2kvc3Bhd24tZmNnaV8xLjYuNC5iYiBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy1zdXBwb3J0L3NwYXduLWZjZ2kvc3Bhd24tZmNnaV8xLjYuNC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OWU1OGJkCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXN1cHBvcnQvc3Bhd24tZmNnaS9zcGF3bi1mY2dpXzEuNi40LmJiCkBAIC0wLDAgKzEsMTYgQEAKK1NVTU1BUlJZID0gInNwYXduLWZjZ2kgaXMgdXNlZCB0byBzcGF3biBGYXN0Q0dJIGFwcGxpY2F0aW9ucyIKK0hPTUVQQUdFID0gImh0dHA6Ly9yZWRtaW5lLmxpZ2h0dHBkLm5ldC9wcm9qZWN0cy9zcGF3bi1mY2dpIgorCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWU0ZGFjNWM2YWIxNjlhYTIxMmZlYjUwMjg4NTNhNTc5IgorCitTUkNfVVJJID0gImh0dHA6Ly9kb3dubG9hZC5saWdodHRwZC5uZXQvc3Bhd24tZmNnaS9yZWxlYXNlcy0xLjYueC9zcGF3bi1mY2dpLSR7UFZ9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9maXhfY29uZmlndXJlX2lwdjZfdGVzdC5wYXRjaCIKKworU1JDX1VSSVttZDVzdW1dID0gImU5NzBkZTRlZmU4MDQ1YzAxZGQ3NjI4MGYzOTkwMWFhIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImFiMzI3NDYyY2I5OTg5NGEzNjk5Zjg3NDQyNWE0MjFkOTM0Zjk1N2NiMjQyMjFmMDBiYjg4ODEwOGQ5ZGQwOWUiCisKK2luaGVyaXQgYXV0b3Rvb2xzCisKK1BBQ0tBR0VDT05GSUcgPz89ICIke0BiYi51dGlscy5jb250YWlucygiRElTVFJPX0ZFQVRVUkVTIiwgImlwdjYiLCAiaXB2NiIsICIiLCBkKX0iCitQQUNLQUdFQ09ORklHW2lwdjZdID0gIi0tZW5hYmxlLWlwdjYsLS1kaXNhYmxlLWlwdjYsIgpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9kaXNhYmxlLXZlcnNpb24tY2hlY2sucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL2Rpc2FibGUtdmVyc2lvbi1jaGVjay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWVlNDA1Ci0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9kaXNhYmxlLXZlcnNpb24tY2hlY2sucGF0Y2gKQEAgLTAsMCArMSw0NSBAQAorRGlzYWJsZSBPUyB2ZXJzaW9uIGNoZWNrIGluIHN0YXR1cyBzY3JlZW4KKworVGhlIGNvZGUgaXMgbm90IGFibGUgdG8gYWNjdXJhdGVseSBkZXRlY3QgdGhlIGNvcnJlY3QgZGlzdHJvL3ZlcnNpb24gYXQKK3RoZSBtb21lbnQuCisKK1Vwc3RyZWFtLXN0YXR1czogSW5hcHByb3ByaWF0ZQorCitTaWduZWQtb2ZmLWJ5OiBQYXVsIEVnZ2xldG9uIDxwYXVsLmVnZ2xldG9uQGxpbnV4LmludGVsLmNvbT4KKworZGlmZiAtLWdpdCBhL3dlYm1pbi93ZWJtaW4tbGliLnBsIGIvd2VibWluL3dlYm1pbi1saWIucGwKK2luZGV4IDU3YTM3ZjcuLjgzOGI5NDQgMTAwNzU1CistLS0gYS93ZWJtaW4vd2VibWluLWxpYi5wbAorKysrIGIvd2VibWluL3dlYm1pbi1saWIucGwKK0BAIC0xMDU5LDE4ICsxMDU5LDE5IEBAIG15ICVtaW5pc2VydjsKKyAmbG9hZF90aGVtZV9saWJyYXJ5KCk7CSMgU28gdGhhdCBVSSBmdW5jdGlvbnMgd29yaworIAorICMgTmVlZCBPUyB1cGdyYWRlCistbXkgJXJlYWxvcyA9ICZkZXRlY3Rfb3BlcmF0aW5nX3N5c3RlbSh1bmRlZiwgMSk7CistaWYgKCgkcmVhbG9zeydvc192ZXJzaW9uJ30gbmUgJGdjb25maWd7J29zX3ZlcnNpb24nfSB8fAorLSAgICAgJHJlYWxvc3snb3NfdHlwZSd9IG5lICRnY29uZmlneydvc190eXBlJ30pICYmCistICAgICRyZWFsb3N7J29zX3ZlcnNpb24nfSAmJiAkcmVhbG9zeydvc190eXBlJ30gJiYKKy0gICAgJmZvcmVpZ25fYXZhaWxhYmxlKCJ3ZWJtaW4iKSkgeworLQlwdXNoKEBub3RpZnMsIAorLQkJJnVpX2Zvcm1fc3RhcnQoIiRnY29uZmlneyd3ZWJwcmVmaXgnfS93ZWJtaW4vZml4X29zLmNnaSIpLgorLQkJJnRleHQoJ29zX2luY29ycmVjdCcsICRyZWFsb3N7J3JlYWxfb3NfdHlwZSd9LAorLQkJCQkgICAgJHJlYWxvc3sncmVhbF9vc192ZXJzaW9uJ30pLiI8cD5cbiIuCistCQkmdWlfZm9ybV9lbmQoWyBbIHVuZGVmLCAkdGV4dHsnb3NfZml4J30gXSBdKQorLQkJKTsKKy0JfQorKyMgRGlzYWJsZWQgZm9yIG5vdyBhcyBvcy1jaG9vc2VyLnBsIGRvZXMgbm90IHdvcmsgb24gb3VyIHN5c3RlbQorKyNteSAlcmVhbG9zID0gJmRldGVjdF9vcGVyYXRpbmdfc3lzdGVtKHVuZGVmLCAxKTsKKysjaWYgKCgkcmVhbG9zeydvc192ZXJzaW9uJ30gbmUgJGdjb25maWd7J29zX3ZlcnNpb24nfSB8fAorKyMgICAgICRyZWFsb3N7J29zX3R5cGUnfSBuZSAkZ2NvbmZpZ3snb3NfdHlwZSd9KSAmJgorKyMgICAgJHJlYWxvc3snb3NfdmVyc2lvbid9ICYmICRyZWFsb3N7J29zX3R5cGUnfSAmJgorKyMgICAgJmZvcmVpZ25fYXZhaWxhYmxlKCJ3ZWJtaW4iKSkgeworKyMJcHVzaChAbm90aWZzLCAKKysjCQkmdWlfZm9ybV9zdGFydCgiJGdjb25maWd7J3dlYnByZWZpeCd9L3dlYm1pbi9maXhfb3MuY2dpIikuCisrIwkJJnRleHQoJ29zX2luY29ycmVjdCcsICRyZWFsb3N7J3JlYWxfb3NfdHlwZSd9LAorKyMJCQkJICAgICRyZWFsb3N7J3JlYWxfb3NfdmVyc2lvbid9KS4iPHA+XG4iLgorKyMJCSZ1aV9mb3JtX2VuZChbIFsgdW5kZWYsICR0ZXh0eydvc19maXgnfSBdIF0pCisrIwkJKTsKKysjCX0KKyAKKyAjIFBhc3N3b3JkIGNsb3NlIHRvIGV4cGlyeQorIG15ICR3YXJuX2RheXMgPSAkY29uZmlneyd3YXJuX2RheXMnfTsKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvZXhwb3J0cy1saWIucGwucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL2V4cG9ydHMtbGliLnBsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3N2Q4YTMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL2V4cG9ydHMtbGliLnBsLnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKK0Zyb20gN2ViYTRjOThjNjk1M2ZhNmVhNzZjMTYyMGQxOTUyNGJjZmEzYTU3NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtldmluIFN0cmFzc2VyIDxrZXZpbi5zdHJhc3NlckBsaW51eC5pbnRlbC5jb20+CitEYXRlOiBXZWQsIDEgQXVnIDIwMTIgMTE6NTE6MjYgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gbmZzIGV4cG9ydDogcmVtb3ZlIG5mc2QgY2hlY2sKKworbmZzZCBydW5zIGFzIGEga2VybmVsIHByb2Nlc3MgYW5kIGRvZXMgbm90IGhhdmUgYSBwaWQuIFRoaXMgbWVhbnMKK3RoYXQgdGhlIGNvbW1hbmQgYXNzaWduZWQgdG8gYXBwbHlfY21kIHdpbGwgbmV2ZXIgYmUgZXhlY3V0ZWQgd2hlbgordGhlIHVzZXIgdHJpZXMgdG8gYXBwbHkgY2hhbmdlcyB0byBuZnMgZXhwb3J0cy4KKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWddCisKK1NpZ25lZC1vZmYtYnk6IEtldmluIFN0cmFzc2VyIDxrZXZpbi5zdHJhc3NlckBsaW51eC5pbnRlbC5jb20+CistLS0KKyBleHBvcnRzL2V4cG9ydHMtbGliLnBsIHwgICAgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvZXhwb3J0cy9leHBvcnRzLWxpYi5wbCBiL2V4cG9ydHMvZXhwb3J0cy1saWIucGwKK2luZGV4IDIyODkxYzAuLjFjNjc0OTQgMTAwNzU1CistLS0gYS9leHBvcnRzL2V4cG9ydHMtbGliLnBsCisrKysgYi9leHBvcnRzL2V4cG9ydHMtbGliLnBsCitAQCAtMjczLDcgKzI3Myw3IEBAIHJldHVybiAhJmhhc19jb21tYW5kKCJycGMubmZzZCIpICYmICEmaGFzX2NvbW1hbmQoIm5mc2QiKSAmJgorIHN1YiByZXN0YXJ0X21vdW50ZAorIHsKKyAjIFRyeSBleHBvcnRmcyAtciBmaXJzdAorLWlmICgkY29uZmlneydhcHBseV9jbWQnfSAmJiAmZmluZF9ieW5hbWUoIm5mc2QiKSAmJiAmZmluZF9ieW5hbWUoIm1vdW50ZCIpKSB7CisraWYgKCRjb25maWd7J2FwcGx5X2NtZCd9ICYmICZmaW5kX2J5bmFtZSgibW91bnRkIikpIHsKKyAJbXkgJG91dCA9ICZiYWNrcXVvdGVfbG9nZ2VkKCIkY29uZmlneydhcHBseV9jbWQnfSAyPiYxIDwvZGV2L251bGwiKTsKKyAJaWYgKCEkPyAmJiAkb3V0ICF+IC9pbnZhbGlkfGVycm9yfGZhaWxlZC9pKSB7CisgCQkjIExvb2tzIGxpa2UgaXQgd29ya2VkIQorLS0gCisxLjcuOS41CisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvaW5pdC1leGNsdWRlLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9pbml0LWV4Y2x1ZGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTU2MzIyNwotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvaW5pdC1leGNsdWRlLnBhdGNoCkBAIC0wLDAgKzEsNzggQEAKKyMgSGFjayBpbiBzdXBwb3J0IGZvciBhbiAiZXhjbHVkZSIgY29uZmlnIG9wdGlvbiBmb3IgdGhlIGluaXQgbW9kdWxlLCBzbworIyB3ZSBjYW4gaGlkZSBjZXJ0YWluIHN5c3RlbSBzZXJ2aWNlcyB0aGF0IHNob3VsZG4ndCByZWFsbHkgYmUgY29uZmlndXJhYmxlCisjIHZpYSB0aGUgd2ViIGludGVyZmFjZQorIworIyBVcHN0cmVhbS1zdGF0dXM6IFBlbmRpbmcKKyMKKyMgU2lnbmVkLW9mZi1ieTogUGF1bCBFZ2dsZXRvbiA8cGF1bC5lZ2dsZXRvbkBsaW51eC5pbnRlbC5jb20+CisjIFNpZ25lZC1vZmYtYnk6IEphY2tpZSBIdWFuZyA8amFja2llLmh1YW5nQHdpbmRyaXZlci5jb20+CistLS0KKyBpbml0L2luZGV4LmNnaSAgIHwgMjcgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCisgaW5pdC9pbml0LWxpYi5wbCB8ICA1ICsrKy0tCisgMiBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2luaXQvaW5kZXguY2dpIGIvaW5pdC9pbmRleC5jZ2kKK2luZGV4IGQ0OGI3OTMuLjMwZGFmZDQgMTAwNzU1CistLS0gYS9pbml0L2luZGV4LmNnaQorKysrIGIvaW5pdC9pbmRleC5jZ2kKK0BAIC00NSwxOSArNDUsMjAgQEAgZWxzaWYgKCRpbml0X21vZGUgZXEgImluaXQiICYmICRhY2Nlc3N7J2Jvb3R1cCd9KSB7CisgCQkJCQkgICAgIDogIiRjb25maWd7J2luaXRfZGlyJ30vJGFjWzBdIik7CisgCQl9CisgCUBydW5sZXZlbHMgPSAmbGlzdF9ydW5sZXZlbHMoKTsKKy0JZm9yZWFjaCAkciAoQHJ1bmxldmVscykgeworLQkJZm9yZWFjaCAkdyAoIlMiLCAiSyIpIHsKKy0JCQlmb3JlYWNoICRhICgmcnVubGV2ZWxfYWN0aW9ucygkciwgJHcpKSB7CistCQkJCUBhYyA9IHNwbGl0KC9ccysvLCAkYSk7CistCQkJCWlmICghJG5vZGVtYXB7JGFjWzJdfSkgeworLQkJCQkJcHVzaChAYWN0cywgJGFjWzFdKTsKKy0JCQkJCXB1c2goQGFjdHNsLAorLQkJCQkJICAgICAiMSskciskYWNbMF0rJGFjWzFdKyRhY1syXSskdyIpOworLQkJCQkJcHVzaChAYWN0c2YsICIkY29uZmlneydpbml0X2Jhc2UnfS9yYyRyLmQvJHckYWNbMF0kYWNbMV0iKTsKKy0JCQkJCX0KKy0JCQkJfQorLQkJCX0KKy0JCX0KKysJIyBBc3N1bWUgdGhlcmUgd29uJ3QgYmUgYW55IG9mIHRoZXNlIGJyb2tlbiBhY3Rpb25zCisrCSNmb3JlYWNoICRyIChAcnVubGV2ZWxzKSB7CisrCSMJZm9yZWFjaCAkdyAoIlMiLCAiSyIpIHsKKysJIwkJZm9yZWFjaCAkYSAoJnJ1bmxldmVsX2FjdGlvbnMoJHIsICR3KSkgeworKwkjCQkJQGFjID0gc3BsaXQoL1xzKy8sICRhKTsKKysJIwkJCWlmICghJG5vZGVtYXB7JGFjWzJdfSkgeworKwkjCQkJCXB1c2goQGFjdHMsICRhY1sxXSk7CisrCSMJCQkJcHVzaChAYWN0c2wsCisrCSMJCQkJICAgICAiMSskciskYWNbMF0rJGFjWzFdKyRhY1syXSskdyIpOworKwkjCQkJCXB1c2goQGFjdHNmLCAiJGNvbmZpZ3snaW5pdF9iYXNlJ30vcmMkci5kLyR3JGFjWzBdJGFjWzFdIik7CisrCSMJCQkJfQorKwkjCQkJfQorKwkjCQl9CisrCSMJfQorIAorIAkjIEZvciBlYWNoIGFjdGlvbiwgbG9vayBhdCAvZXRjL3JjKi5kLyogZmlsZXMgdG8gc2VlIGlmIGl0IGlzIAorIAkjIHN0YXJ0ZWQgYXQgYm9vdAorZGlmZiAtLWdpdCBhL2luaXQvaW5pdC1saWIucGwgYi9pbml0L2luaXQtbGliLnBsCitpbmRleCBlYWQyMWVkLi5iNDE3OTRiIDEwMDc1NQorLS0tIGEvaW5pdC9pbml0LWxpYi5wbAorKysrIGIvaW5pdC9pbml0LWxpYi5wbAorQEAgLTExOSw4ICsxMTksOSBAQCBMaXN0IGJvb3QgdGltZSBhY3Rpb24gbmFtZXMgZnJvbSBpbml0LmQsIHN1Y2ggYXMgaHR0cGQgYW5kIGNyb24uCisgPWN1dAorIHN1YiBsaXN0X2FjdGlvbnMKKyB7CistbG9jYWwoJGRpciwgJGYsIEBzdGJ1ZiwgQHJ2KTsKKytsb2NhbCgkZGlyLCAkZiwgQHN0YnVmLCBAcnYsIEBleGNsdWRlKTsKKyAkZGlyID0gJGNvbmZpZ3tpbml0X2Rpcn07CisrQGV4Y2x1ZGUgPSBzcGxpdCgvLC8sICRjb25maWd7ZXhjbHVkZX0pOworIG9wZW5kaXIoRElSLCAkZGlyKTsKKyBmb3JlYWNoICRmIChzb3J0IHsgbGMoJGEpIGNtcCBsYygkYikgfSByZWFkZGlyKERJUikpIHsKKyAJaWYgKCRmIGVxICIuIiB8fCAkZiBlcSAiLi4iIHx8ICRmID1+IC9cLmJhayQvIHx8ICRmIGVxICJmdW5jdGlvbnMiIHx8CitAQCAtMTI4LDcgKzEyOSw3IEBAIGZvcmVhY2ggJGYgKHNvcnQgeyBsYygkYSkgY21wIGxjKCRiKSB9IHJlYWRkaXIoRElSKSkgeworIAkgICAgLWQgIiRkaXIvJGYiIHx8ICRmID1+IC9cLnN3cCQvIHx8ICRmIGVxICJza2VsZXRvbiIgfHwKKyAJICAgICRmID1+IC9cLmxvY2skLyB8fCAkZiA9fiAvXC5kcGtnLShvbGR8ZGlzdCkkLyB8fAorIAkgICAgJGYgPX4gL15cLmRlcGVuZFwuLyB8fCAkZiBlcSAnLmxlZ2FjeS1ib290b3JkZXJpbmcnIHx8CistCSAgICAkZiA9fiAvXm1hbmRyYWtlLykgeyBuZXh0OyB9CisrCSAgICAkZiA9fiAvXm1hbmRyYWtlLyB8fCBncmVwIHskXyBlcSAkZn0gQGV4Y2x1ZGUgKSB7IG5leHQ7IH0KKyAJaWYgKEBzdGJ1ZiA9IHN0YXQoIiRkaXIvJGYiKSkgeworIAkJcHVzaChAcnYsICIkZiAkc3RidWZbMV0iKTsKKyAJCX0KKy0tCisyLjAuMAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL21lZGlhLXRvbWIucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL21lZGlhLXRvbWIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZmMzEwOQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvbWVkaWEtdG9tYi5wYXRjaApAQCAtMCwwICsxLDY1IEBACitkaWZmIC1OcnUgd2VibWluLTEuNTcwLmJhay9tZWRpYXRvbWIvaW5kZXguY2dpIHdlYm1pbi0xLjU3MC9tZWRpYXRvbWIvaW5kZXguY2dpCistLS0gd2VibWluLTEuNTcwLmJhay9tZWRpYXRvbWIvaW5kZXguY2dpCTE5NjktMTItMzEgMTY6MDA6MDAuMDAwMDAwMDAwIC0wODAwCisrKysgd2VibWluLTEuNTcwL21lZGlhdG9tYi9pbmRleC5jZ2kJMjAxMS0xMC0yNiAxMDowMDowNS45OTI1MjIwMzYgLTA3MDAKK0BAIC0wLDAgKzEsMTMgQEAKKysjIS91c3IvYmluL3BlcmwKKysjIGluZGV4LmNnaQorKyMgRGlzcGxheSBNZWRpYVRvbWIgb3B0aW9uIGNhdGVnb3JpZXMKKysKKytyZXF1aXJlICcuL21lZGlhdG9tYi1saWIucGwnOworKworK3VpX3ByaW50X2hlYWRlcih1bmRlZiwgJHRleHR7J2luZGV4X3RpdGxlJ30sICIiLCB1bmRlZiwgMSwgMSk7CisrCisrCisrJGlwYWRkcmVzcyA9ICZnZXRfbXlfYWRkcmVzcygpOworK3ByaW50ICZ0ZXh0KCdpbmRleF9kZXNjJywgJGlwYWRkcmVzcyksIjxwPlxuIjsKKysKKyt1aV9wcmludF9mb290ZXIoIi8iLCAkdGV4dHsnaW5kZXgnfSk7CitkaWZmIC1OcnUgd2VibWluLTEuNTcwLmJhay9tZWRpYXRvbWIvbGFuZy9lbiB3ZWJtaW4tMS41NzAvbWVkaWF0b21iL2xhbmcvZW4KKy0tLSB3ZWJtaW4tMS41NzAuYmFrL21lZGlhdG9tYi9sYW5nL2VuCTE5NjktMTItMzEgMTY6MDA6MDAuMDAwMDAwMDAwIC0wODAwCisrKysgd2VibWluLTEuNTcwL21lZGlhdG9tYi9sYW5nL2VuCTIwMTEtMTAtMjYgMTA6MDE6MTMuMzQwNTIyMTg2IC0wNzAwCitAQCAtMCwwICsxLDIgQEAKKytpbmRleF90aXRsZT1NZWRpYVRvbWIKKytpbmRleF9kZXNjPU1lZGlhVG9tYiBpcyBhbiBvcGVuIHNvdXJjZSAoR1BMKSBVUG5QIE1lZGlhU2VydmVyIHdpdGggYSBuaWNlIHdlYiB1c2VyIGludGVyZmFjZS4gWW91IGNhbiBhY2Nlc3MgaXQgdmlhIDxhIGhyZWY9J2h0dHA6Ly8kMTo0OTE1Myc+aGVyZTwvYT4uCitkaWZmIC1OcnUgd2VibWluLTEuNTcwLmJhay9tZWRpYXRvbWIvbWVkaWF0b21iLWxpYi5wbCB3ZWJtaW4tMS41NzAvbWVkaWF0b21iL21lZGlhdG9tYi1saWIucGwKKy0tLSB3ZWJtaW4tMS41NzAuYmFrL21lZGlhdG9tYi9tZWRpYXRvbWItbGliLnBsCTE5NjktMTItMzEgMTY6MDA6MDAuMDAwMDAwMDAwIC0wODAwCisrKysgd2VibWluLTEuNTcwL21lZGlhdG9tYi9tZWRpYXRvbWItbGliLnBsCTIwMTEtMTAtMjYgMTA6MDE6MzQuNjkyNTIyMDc5IC0wNzAwCitAQCAtMCwwICsxLDMxIEBACisrIyEvdXNyL2Jpbi9wZXJsCisrIyBtZWRpYXRvbWItbGliLnBsCisrIyBDb21tb24gZnVuY3Rpb25zIGZvciB0aGUgTWVkaWFUb21iIG1vZHVsZQorKworK0JFR0lOIHsgcHVzaChASU5DLCAiLi4iKTsgfTsKKyt1c2UgV2VibWluQ29yZTsKKysmaW5pdF9jb25maWcoKTsKKysKKytzdWIgZ2V0X215X2FkZHJlc3MKKyt7CisrbXkgJG15aXA7CisraWYgKCZmb3JlaWduX2NoZWNrKCJuZXQiKSkgeworKyAgICAgICAgIyBUcnkgdG8gZ2V0IGV0aGVybmV0IGludGVyZmFjZQorKyAgICAgICAgJmZvcmVpZ25fcmVxdWlyZSgibmV0IiwgIm5ldC1saWIucGwiKTsKKysgICAgICAgIG15IEBhY3QgPSAmbmV0OjphY3RpdmVfaW50ZXJmYWNlcygpOworKyAgICAgICAgbXkgQGlmYWNlcyA9IGdyZXAgeyAmbmV0OjppZmFjZV90eXBlKCRfLT57J2Z1bGxuYW1lJ30pID1+IC9ldGhlci9pIH0KKysgICAgICAgICAgICAgICAgICAgICAgICAgIEBhY3Q7CisrICAgICAgICBAaWZhY2VzID0gKCAkYWN0WzBdICkgaWYgKCFAaWZhY2VzICYmIEBhY3QpOworKyAgICAgICAgaWYgKEBpZmFjZXMpIHsKKysgICAgICAgICAgICAgICAgcmV0dXJuIHdhbnRhcnJheSA/ICggbWFwIHsgJF8tPnsnYWRkcmVzcyd9IH0gQGlmYWNlcyApCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkaWZhY2VzWzBdLT57J2FkZHJlc3MnfTsKKysgICAgICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyRteWlwID0gJnRvX2lwYWRkcmVzcygmZ2V0X3N5c3RlbV9ob3N0bmFtZSgpKTsKKytpZiAoJG15aXApIHsKKysgICAgICAgICMgQ2FuIHJlc29sdmUgaG9zdG5hbWUgLi4gdXNlIHRoYXQKKysgICAgICAgIHJldHVybiB3YW50YXJyYXkgPyAoICRteWlwICkgOiAkbXlpcDsKKysgICAgICAgIH0KKytyZXR1cm4gd2FudGFycmF5ID8gKCApIDogdW5kZWY7CisrfQorKworZGlmZiAtTnJ1IHdlYm1pbi0xLjU3MC5iYWsvbWVkaWF0b21iL21vZHVsZS5pbmZvIHdlYm1pbi0xLjU3MC9tZWRpYXRvbWIvbW9kdWxlLmluZm8KKy0tLSB3ZWJtaW4tMS41NzAuYmFrL21lZGlhdG9tYi9tb2R1bGUuaW5mbwkxOTY5LTEyLTMxIDE2OjAwOjAwLjAwMDAwMDAwMCAtMDgwMAorKysrIHdlYm1pbi0xLjU3MC9tZWRpYXRvbWIvbW9kdWxlLmluZm8JMjAxMS0xMC0yNiAwOTo1OTo1MC40Mjg1MjgzNjkgLTA3MDAKK0BAIC0wLDAgKzEsMyBAQAorK2Rlc2M9TWVkaWFUb21iCisrY2F0ZWdvcnk9b3RoZXJzCisrbG9uZ2Rlc2M9TWVkaWFUb21iIGFjY2VzcyBtb2R1bGUKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvbW91bnQtZXhjbHVkZWZzLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9tb3VudC1leGNsdWRlZnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNiNzRjNAotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvbW91bnQtZXhjbHVkZWZzLnBhdGNoCkBAIC0wLDAgKzEsMjUgQEAKK0FkZCBleGNsdWRlZnMgY29uZmlnIG9wdGlvbiB0byBtb3VudCBtb2R1bGUKKworQWRkcyBhIGNvbmZpZ3VyYXRpb24gb3B0aW9uIChjdXJyZW50bHkgaGlkZGVuKSB0byBhbGxvdyB0aGUgZGlzdHJvIHRvCitoaWRlIGNlcnRhaW4gZmlsZXN5c3RlbXMgZnJvbSB0aGUgbW91bnQgbW9kdWxlIHdpdGhpbiBXZWJtaW4gKGUuZy4gL2RldikKK3NpbmNlIHRoZXNlIHNob3VsZG4ndCBiZSBtb2RpZmllZCBmcm9tIHRoZSB3ZWIgaW50ZXJmYWNlLgorCitTaWduZWQtb2ZmLWJ5OiBQYXVsIEVnZ2xldG9uIDxwYXVsLmVnZ2xldG9uQGxpbnV4LmludGVsLmNvbT4KKworVXBzdHJlYW0tc3RhdHVzOiBQZW5kaW5nCisKKy0tLSB3ZWJtaW4tMS41NzAub3JpZy9tb3VudC9pbmRleC5jZ2kKKysrKyB3ZWJtaW4tMS41NzAvbW91bnQvaW5kZXguY2dpCitAQCAtMzMsMTAgKzMzLDEyIEBAIGVsc2lmICgkY29uZmlneydzb3J0X21vZGUnfSA9PSAxKSB7CisgCX0KKyAKKyAjIEJ1aWxkIHZpc2libGUgZmlsZXN5c3RlbXMgbGlzdAorK0BleGNsdWRlZnMgPSBzcGxpdCgvLC8sICRjb25maWd7ZXhjbHVkZWZzfSk7CisgZm9yZWFjaCAkbSAoQGFsbCkgeworIAlAbWluZm8gPSBAJG07CisgCSRwID0gJnNpbXBsaWZ5X21vdW50X3BhdGgoJG1pbmZvWzBdLCAkbWluZm9bMl0pOworIAluZXh0IGlmICgkaWdub3JleyRtaW5mb1syXX0pOworKwluZXh0IGlmIChncmVwIHskXyBlcSAkbWluZm9bMl19IEBleGNsdWRlZnMpOworIAlAbW1vZGVzID0gJm1vdW50X21vZGVzKCRtaW5mb1syXSwgJG1pbmZvWzBdLCAkbWluZm9bMV0pOworIAkkY2FuZWRpdCA9ICRjYW5fZWRpdHskbWluZm9bMl19ICYmICEkbW1vZGVzWzRdICYmCisgICAgICAgICAgICAgCSAgICZjYW5fZWRpdF9mcyhAbWluZm8pOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9teXNxbC1jb25maWctZml4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9teXNxbC1jb25maWctZml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjYmM2MjcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL215c3FsLWNvbmZpZy1maXgucGF0Y2gKQEAgLTAsMCArMSw1MCBAQAorRnJvbSA3MTkyMDZkZjYwNmFjZDdhNjIzZThkNzVkYTI5M2MyNTQ4OWI3ODg0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGllZ28gUm9uZGluaSA8ZGllZ28ubWxAem9oby5jb20+CitEYXRlOiBUaHUsIDE4IEZlYiAyMDE2IDE1OjQ0OjA2ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkanVzdCBNeXNxbCBjb25maWcgZGVmYXVsdHMKKworVXBzdHJlYW0tc3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQorCitTaWduZWQtb2ZmLWJ5OiBEaWVnbyBSb25kaW5pIDxkaWVnby5tbEB6b2hvLmNvbT4KKy0tLQorIG15c3FsL2NvbmZpZyB8IDE4ICsrKysrKysrKy0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9teXNxbC9jb25maWcgYi9teXNxbC9jb25maWcKK2luZGV4IGU1YjZmYjMuLjc3YmZlNjkgMTAwNjQ0CistLS0gYS9teXNxbC9jb25maWcKKysrKyBiL215c3FsL2NvbmZpZworQEAgLTEsMTMgKzEsMTMgQEAKKy1zdGFydF9jbWQ9Y2QgL3Vzci9sb2NhbC9teXNxbCA7ICguL2Jpbi9zYWZlX215c3FsZCB8fCAuL2Jpbi9teXNxbGRfc2FmZSkgJgorK3N0YXJ0X2NtZD0vdXNyL2Jpbi9teXNxbGRfc2FmZQorIHBlcnBhZ2U9MjUKKy1teXNxbD0vdXNyL2xvY2FsL215c3FsL2Jpbi9teXNxbAorLW15c3FsZHVtcD0vdXNyL2xvY2FsL215c3FsL2Jpbi9teXNxbGR1bXAKKy1teXNxbGltcG9ydD0vdXNyL2xvY2FsL215c3FsL2Jpbi9teXNxbGltcG9ydAorLXBhc3M9Zm9vCistbXlzcWxzaG93PS91c3IvbG9jYWwvbXlzcWwvYmluL215c3Fsc2hvdworK215c3FsPS91c3IvYmluL215c3FsCisrbXlzcWxkdW1wPS91c3IvYmluL215c3FsZHVtcAorK215c3FsaW1wb3J0PS91c3IvYmluL215c3FsaW1wb3J0CisrcGFzcz0KKytteXNxbHNob3c9L3Vzci9iaW4vbXlzcWxzaG93CisgbG9naW49cm9vdAorLW15c3FsX2xpYnM9L3Vzci9sb2NhbC9teXNxbC9saWIKKy1teXNxbGFkbWluPS91c3IvbG9jYWwvbXlzcWwvYmluL215c3FsYWRtaW4KKytteXNxbF9saWJzPS91c3IvbGliCisrbXlzcWxhZG1pbj0vdXNyL2Jpbi9teXNxbGFkbWluCisgc3R5bGU9MAorIGFkZF9tb2RlPTEKKyBub2RiaT0wCitAQCAtMTUsNyArMTUsNyBAQCBhY2Nlc3M9KjogKgorIGJsb2JfbW9kZT0wCisgZGF0ZV9zdWJzPTAKKyBwYXNzd2RfbW9kZT0wCistbXlzcWxfZGF0YT0vdXNyL2xvY2FsL215c3FsL3ZhcgorK215c3FsX2RhdGE9L3Zhci9saWIvbXlzcWwKKyBtYXhfZGJzPTUwCisgbXlfY25mPS9ldGMvbXkuY25mCisgbWF4X3RleHQ9MTAwMAorLS0gCisyLjUuMAorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL25ldC1nZW5lcmljLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9uZXQtZ2VuZXJpYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDIwYWZmCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9uZXQtZ2VuZXJpYy5wYXRjaApAQCAtMCwwICsxLDIxIEBACisjIEFkZCBzdXBwb3J0IGZvciBjb25maWd1cmluZyBuZXR3b3JrIGludGVyZmFjZXMgb24gYSBnZW5lcmljIGxpbnV4IHN5c3RlbQorIworIyBVcHN0cmVhbS1zdGF0dXM6IE5vdCBhcHByb3ByaWF0ZSBbY29uZmlnXQorIworIyBTaWduZWQtb2ZmLWJ5OiBQYXVsIEVnZ2xldG9uIDxwYXVsLmVnZ2xldG9uQGxpbnV4LmludGVsLmNvbT4KKy0tLSB3ZWJtaW4tMS41NzAub3JpZy9uZXQvbW9kdWxlLmluZm8KKysrKyB3ZWJtaW4tMS41NzAvbmV0L21vZHVsZS5pbmZvCitAQCAtMTEsNyArMTEsNyBAQCBkZXNjX2tvX0tSLlVURi04PeuEpO2KuOybjO2BrCDqtazshLEKKyBuYW1lPU5ldHdvcmtpbmcKKyBkZXNjX3RyPUHwIFlhcP1sYW5k/XJtYXP9CisgZGVzY19kZT1OZXR6d2Vya2tvbmZpZ3VyYXRpb24KKy1vc19zdXBwb3J0PXNvbGFyaXMgY29oZXJlbnQtbGludXggcmVkaGF0LWxpbnV4LzUuMC0qIG1hbmRyYWtlLWxpbnV4IHVuaXRlZC1saW51eCBzdXNlLWxpbnV4LzYuMC0qIG9wZW4tbGludXggdW5peHdhcmUgdHVyYm8tbGludXgvNC4wIGZyZWVic2QvMy4yLSogb3BlbmJzZCBkZWJpYW4tbGludXgvMi4yLSogY29iYWx0LWxpbnV4LzIuMi0qIG1zYy1saW51eCBnZW50b28tbGludXggbWFjb3MvMS41LSogdHJ1c3RpeC1saW51eCBzbGFja3dhcmUtbGludXgvOC4wLSogb3Blbm1hbWJhLWxpbnV4IGN5Z3dpbiB3aW5kb3dzIHBhcmR1cy1saW51eAorK29zX3N1cHBvcnQ9Z2VuZXJpYy1saW51eCBzb2xhcmlzIGNvaGVyZW50LWxpbnV4IHJlZGhhdC1saW51eC81LjAtKiBtYW5kcmFrZS1saW51eCB1bml0ZWQtbGludXggc3VzZS1saW51eC82LjAtKiBvcGVuLWxpbnV4IHVuaXh3YXJlIHR1cmJvLWxpbnV4LzQuMCBmcmVlYnNkLzMuMi0qIG9wZW5ic2QgZGViaWFuLWxpbnV4LzIuMi0qIGNvYmFsdC1saW51eC8yLjItKiBtc2MtbGludXggZ2VudG9vLWxpbnV4IG1hY29zLzEuNS0qIHRydXN0aXgtbGludXggc2xhY2t3YXJlLWxpbnV4LzguMC0qIG9wZW5tYW1iYS1saW51eCBjeWd3aW4gd2luZG93cyBwYXJkdXMtbGludXgKKyBkZXNjX3NrPUtvbmZpZ3Vy4WNpYSBzaWV0ZQorIGRlc2NfemhfQ049zfjC58Xk1sMKKyByaXNrPWxvdyBtZWRpdW0gaGlnaAorLS0tIC9kZXYvbnVsbAorKysrIHdlYm1pbi0xLjU3MC9uZXQvZ2VuZXJpYy1saW51eC1saWIucGwKK0BAIC0wLDAgKzEsMiBAQAorK2RvICdsaW51eC1saWIucGwnOworKwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9uZXQtbGliLnBsLnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9uZXQtbGliLnBsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkYmE1ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL25ldC1saWIucGwucGF0Y2gKQEAgLTAsMCArMSwxOSBAQAorVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWddCisKK1hYWDogbmVlZCB0byB3b3JrIG91dCBhIGJldHRlciBmaXguCisKK1NpZ25lZC1vZmYtYnk6IERleHVhbiBDdWkgPGRleHVhbi5jdWlAaW50ZWwuY29tPgorCitkaWZmIC1OcnUgd2VibWluLTEuNTcwLm9yaWcvL25ldC9uZXQtbGliLnBsIHdlYm1pbi0xLjU3MC9uZXQvbmV0LWxpYi5wbAorLS0tIHdlYm1pbi0xLjU3MC5vcmlnLy9uZXQvbmV0LWxpYi5wbAkyMDExLTEwLTAzIDA5OjAxOjQ4LjAwMDAwMDAwMCArMDgwMAorKysrIHdlYm1pbi0xLjU3MC9uZXQvbmV0LWxpYi5wbAkyMDExLTEwLTI4IDEzOjUyOjU2LjEzODg3MzY2NCArMDgwMAorQEAgLTIxLDcgKzIxLDggQEAKKyAJZG8gIiRnY29uZmlneydvc190eXBlJ30tOS4xLUFMTC1saWIucGwiOworIAl9CisgZWxzZSB7CistCWRvICIkZ2NvbmZpZ3snb3NfdHlwZSd9LWxpYi5wbCI7CisrCSNkbyAiJGdjb25maWd7J29zX3R5cGUnfS1saWIucGwiOworKwlkbyAiZGViaWFuLWxpbnV4LWxpYi5wbCI7CisgCX0KKyAKKyAjIGxpc3RfaG9zdHMoKQpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9uZnMtZXhwb3J0LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9uZnMtZXhwb3J0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxN2UzYjIKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL25mcy1leHBvcnQucGF0Y2gKQEAgLTAsMCArMSwzOSBAQAorY29tbWl0IGU0OGY2MWQyZjZkZjMyYTUxOGJjYjg0ZGI4YzZlYWNmZTU0MzVjMzIKK0F1dGhvcjogWXUgS2UgPGtlLnl1QGludGVsLmNvbT4KK0RhdGU6ICAgRnJpIE9jdCAyOCAxNDo0MDo1MSAyMDExICswODAwCisKK05GUyBleHBvcnQ6IGZpeCBzeW50YXggaXNzdWUKKworZml4IHR3byBzeW50YXggaXNzdWUgaW4gL2V0Yy9leHBvcnRzOgorMS4gaWYgaXQgaXMgZXhwb3J0ZWQgdG8gZXZlcnlvbmUsIHNob3VsZCB1c2UgIioiLCBlLmcuICIvZXhwb3J0ICAqKHh4eCkiCisyLiBleHBsaWNpdGx5IHNwZWNpZnkgc3VidHJlZV9jaGVjayBvciBub19zdWJ0cmVlX2NoZWNrLCByZXF1aXJlZCBieSBsYXRlc3QgbmZzLXV0aWxzCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitTaWduZWQtb2ZmLWJ5OiBZdSBLZSA8a2UueXVAaW50ZWwuY29tPgorCitkaWZmIC0tZ2l0IGEvZXhwb3J0cy9zYXZlX2V4cG9ydC5jZ2kgYi9leHBvcnRzL3NhdmVfZXhwb3J0LmNnaQoraW5kZXggM2JjMmY5Ny4uM2U2MDI5OCAxMDA3NTUKKy0tLSBhL2V4cG9ydHMvc2F2ZV9leHBvcnQuY2dpCisrKysgYi9leHBvcnRzL3NhdmVfZXhwb3J0LmNnaQorQEAgLTQwLDcgKzQwLDcgQEAgZWxzZSB7CisgCQkJJmVycm9yKCZ0ZXh0KCdzYXZlX2VuZXRtYXNrJywgJGlueyduZXRtYXNrJ30pKTsKKyAJCSRleHB7J2hvc3QnfSA9ICRpbnsnbmV0d29yayd9LiIvIi4kaW57J25ldG1hc2snfTsKKyAJCX0KKy0JZWxzaWYgKCRpbnsnbW9kZSd9ID09IDMpIHsgJGV4cHsnaG9zdCd9ID0gIiI7IH0KKysJZWxzaWYgKCRpbnsnbW9kZSd9ID09IDMpIHsgJGV4cHsnaG9zdCd9ID0gIioiOyB9CisgCWVsc2UgeworIAkJJGlueydob3N0J30gPX4gL1wqLyB8fCAmdG9faXBhZGRyZXNzKCRpbnsnaG9zdCd9KSB8fAorIAkJCSZlcnJvcigmdGV4dCgnc2F2ZV9laG9zdCcsICRpbnsnaG9zdCd9KSk7CitAQCAtNzAsNiArNzAsMTEgQEAgZWxzZSB7CisgCisgCWRlbGV0ZSgkb3B0c3snbm9fc3VidHJlZV9jaGVjayd9KTsgZGVsZXRlKCRvcHRzeydzdWJ0cmVlX2NoZWNrJ30pOworIAkkb3B0c3snbm9fc3VidHJlZV9jaGVjayd9ID0gIiIgaWYgKCRpbnsnbm9fc3VidHJlZV9jaGVjayd9KTsKKysJaWYgKCRpbnsnbm9fc3VidHJlZV9jaGVjayd9KSB7CisrCQkkb3B0c3snbm9fc3VidHJlZV9jaGVjayd9ID0gIiI7CisrCX0gZWxzZSB7CisrCQkkb3B0c3snc3VidHJlZV9jaGVjayd9ID0gIiI7CisrCX0KKyAKKyAJZGVsZXRlKCRvcHRzeydub2hpZGUnfSk7IGRlbGV0ZSgkb3B0c3snaGlkZSd9KTsKKyAJJG9wdHN7J25vaGlkZSd9ID0gIiIgaWYgKCRpbnsnbm9oaWRlJ30pOwpkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9wcm9mdHBkLWNvbmZpZy1maXgucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL3Byb2Z0cGQtY29uZmlnLWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTJhNjUyCi0tLSAvZGV2L251bGwKKysrIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9wcm9mdHBkLWNvbmZpZy1maXgucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorVXBzdHJlYW0tc3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQorCitTaWduZWQtb2ZmLWJ5OiBaaGFpIEVkd2luIDxlZHdpbi56aGFpQGludGVsLmNvbT4KKworSW5kZXg6IHdlYm1pbi0xLjU3MC9wcm9mdHBkL2NvbmZpZworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHdlYm1pbi0xLjU3MC5vcmlnL3Byb2Z0cGQvY29uZmlnCTIwMTEtMTAtMjUgMjA6MTg6MzcuMDAwMDAwMDAwICswODAwCisrKysgd2VibWluLTEuNTcwL3Byb2Z0cGQvY29uZmlnCTIwMTEtMTAtMjUgMjA6MjE6MTMuMDAwMDAwMDAwICswODAwCitAQCAtMSw2ICsxLDYgQEAKKy1wcm9mdHBkX3BhdGg9L3Vzci9sb2NhbC9zYmluL3Byb2Z0cGQKKy1wcm9mdHBkX2NvbmY9L3Vzci9sb2NhbC9ldGMvcHJvZnRwZC5jb25mCistcGlkX2ZpbGU9L3Vzci9sb2NhbC92YXIvcHJvZnRwZC5waWQKKytwcm9mdHBkX3BhdGg9L3Vzci9zYmluL3Byb2Z0cGQKKytwcm9mdHBkX2NvbmY9L2V0Yy9wcm9mdHBkLmNvbmYKKytwaWRfZmlsZT0vdmFyL3Byb2Z0cGQucGlkCisgZnRwdXNlcnM9L2V0Yy9mdHB1c2VycworIHRlc3RfY29uZmlnPTEKKyB0ZXN0X2Fsd2F5cz0wCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL3JlbW92ZS1weXRob24yLjMucGF0Y2ggYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL3JlbW92ZS1weXRob24yLjMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVlNWJkMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvcmVtb3ZlLXB5dGhvbjIuMy5wYXRjaApAQCAtMCwwICsxLDI1IEBACitGcm9tIDZmMDQ2OTlkNWQ0MTcxMjJiNjdlODExOGZkMTk1NWM3NjlmMTdlNzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSb2JlcnQgWWFuZyA8bGllemhpLnlhbmdAd2luZHJpdmVyLmNvbT4KK0RhdGU6IFR1ZSwgMiBTZXAgMjAxNCAwMDoxMTowNSAtMDcwMAorU3ViamVjdDogW1BBVENIXSBhamF4dGVybS9hamF4dGVybS9xd2ViLnB5OiBmaXggaGFyZGNvZGUgb2YgcHl0aG9uMi4zCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitTaWduZWQtb2ZmLWJ5OiBSb2JlcnQgWWFuZyA8bGllemhpLnlhbmdAd2luZHJpdmVyLmNvbT4KKy0tLQorIGFqYXh0ZXJtL2FqYXh0ZXJtL3F3ZWIucHkgfCAgICAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9hamF4dGVybS9hamF4dGVybS9xd2ViLnB5IGIvYWpheHRlcm0vYWpheHRlcm0vcXdlYi5weQoraW5kZXggMjBjNTA5Mi4uYzY1OGE2YiAxMDA2NDQKKy0tLSBhL2FqYXh0ZXJtL2FqYXh0ZXJtL3F3ZWIucHkKKysrKyBiL2FqYXh0ZXJtL2FqYXh0ZXJtL3F3ZWIucHkKK0BAIC0xLDQgKzEsNCBAQAorLSMhL3Vzci9iaW4vcHl0aG9uMi4zCisrIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisgIworICMgdmltOnNldCBldCB0cz00IGZkYz0wIGZkbj0yIGZkbD0wOgorICMKKy0tIAorMS43LjkuNQorCmRpZmYgLS1naXQgYS9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL3JlbW92ZS1zdGFydHVwLW9wdGlvbi5wYXRjaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvcmVtb3ZlLXN0YXJ0dXAtb3B0aW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5NTdmNGEKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL3JlbW92ZS1zdGFydHVwLW9wdGlvbi5wYXRjaApAQCAtMCwwICsxLDI5IEBACisjIFJlbW92ZSAic3RhcnQgb24gYm9vdCIgb3B0aW9uIGZyb20gd2VibWluIGNvbmZpZ3VyYXRpb24sIGFzCisjIGVuZC11c2VycyBzaG91bGQgbm90IG5lZWQgdG8gY29uZmlndXJlIHRoaXMgZnJvbSB0aGUgd2ViIGludGVyZmFjZQorIworIyBVcHN0cmVhbS1zdGF0dXM6IEluYXBwcm9wcmlhdGUKKyMKKyMgU2lnbmVkLW9mZi1ieTogUGF1bCBFZ2dsZXRvbiA8cGF1bC5lZ2dsZXRvbkBsaW51eC5pbnRlbC5jb20+CistLS0gd2VibWluLTEuNTcwLm9yaWcvd2VibWluL2luZGV4LmNnaQorKysrIHdlYm1pbi0xLjU3MC93ZWJtaW4vaW5kZXguY2dpCitAQCAtNzksMjAgKzc5LDYgQEAgcHJpbnQgJnVpX2J1dHRvbnNfc3RhcnQoKTsKKyBteSAlbWluaXNlcnY7CisgJmdldF9taW5pc2Vydl9jb25maWcoXCVtaW5pc2Vydik7CisgCistaWYgKCZmb3JlaWduX2NoZWNrKCJpbml0IikpIHsKKy0JJmZvcmVpZ25fcmVxdWlyZSgiaW5pdCIpOworLQlteSAkc3RhcnRpbmcgPSAmaW5pdDo6YWN0aW9uX3N0YXR1cygid2VibWluIik7CistCXByaW50ICZ1aV9idXR0b25zX3JvdygiYm9vdHVwLmNnaSIsCistCSAgICAgICR0ZXh0eydpbmRleF9ib290J30sCistCSAgICAgICR0ZXh0eydpbmRleF9ib290bXNnJ30uCistCSAgICAgICgkbWluaXNlcnZ7J2luZXRkJ30gPyAiPGI+JHRleHR7J2luZGV4X2luZXRkJ308L2I+IiA6CistCSAgICAgICAhJEVOVnsnTUlOSVNFUlZfQ09ORklHJ30gPyAiPGI+JHRleHR7J2luZGV4X2FwYWNoZSd9PC9iPiIgOiAiIiksCistCSAgICAgICZ1aV9oaWRkZW4oInN0YXJ0aW5nIiwgJHN0YXJ0aW5nKSwKKy0JICAgICAgJnVpX3JhZGlvKCJib290IiwgJHN0YXJ0aW5nID09IDIgPyAxIDogMCwKKy0JCQlbIFsgMSwgJHRleHR7J3llcyd9IF0sCistCQkJICBbIDAsICR0ZXh0eydubyd9IF0gXSkpOworLQl9CistCisgIyBSZXN0YXJ0IFdlYm1pbgorIGlmICghJG1pbmlzZXJ2eydpbmV0ZCd9ICYmICRFTlZ7J01JTklTRVJWX0NPTkZJRyd9KSB7CisgCXByaW50ICZ1aV9idXR0b25zX3JvdygicmVzdGFydC5jZ2kiLApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9zYW1iYS1jb25maWctZml4LnBhdGNoIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9zYW1iYS1jb25maWctZml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2NjQ1YWMKLS0tIC9kZXYvbnVsbAorKysgYi9pbXBvcnQtbGF5ZXJzL21ldGEtb3BlbmVtYmVkZGVkL21ldGEtd2Vic2VydmVyL3JlY2lwZXMtd2ViYWRtaW4vd2VibWluL2ZpbGVzL3NhbWJhLWNvbmZpZy1maXgucGF0Y2gKQEAgLTAsMCArMSwzMiBAQAorVXBzdHJlYW0tc3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQorCitTaWduZWQtb2ZmLWJ5OiBaaGFpIEVkd2luIDxlZHdpbi56aGFpQGludGVsLmNvbT4KKworSW5kZXg6IHdlYm1pbi0xLjU3MC9zYW1iYS9jb25maWctZ2VuZXJpYy1saW51eAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHdlYm1pbi0xLjU3MC5vcmlnL3NhbWJhL2NvbmZpZy1nZW5lcmljLWxpbnV4CTIwMTEtMTAtMjUgMjA6MTE6MzUuMDAwMDAwMDAwICswODAwCisrKysgd2VibWluLTEuNTcwL3NhbWJhL2NvbmZpZy1nZW5lcmljLWxpbnV4CTIwMTEtMTAtMjUgMjA6MTU6NDEuMDAwMDAwMDAwICswODAwCitAQCAtMSwxNSArMSwxNSBAQAorIGxpc3RfcHJpbnRlcnNfY29tbWFuZD1scGMgc3RhdHVzIHwgZ3JlcCAiW0EtejAtOV06IiB8IHNlZCAtZSAncy86Ly9nJworLXNtYl9wYXNzd2Q9L3Vzci9sb2NhbC9zYW1iYS9wcml2YXRlL3NtYnBhc3N3ZAorK3NtYl9wYXNzd2Q9L3Vzci9iaW4vc21icGFzc3dkCisgdGV4dF9saXN0cz0wCisgZG9udF9jb252ZXJ0PS00OTkKKy1uYW1lX3NlcnZlcj0vdXNyL2xvY2FsL3NhbWJhL2Jpbi9ubWJkCistc21iX2NvbmY9L3Vzci9sb2NhbC9zYW1iYS9saWIvc21iLmNvbmYKKy1zYW1iYV9zZXJ2ZXI9L3Vzci9sb2NhbC9zYW1iYS9iaW4vc21iZAorK25hbWVfc2VydmVyPS91c3Ivc2Jpbi9ubWJkCisrc21iX2NvbmY9L2V0Yy9zYW1iYS9zbWIuY29uZgorK3NhbWJhX3NlcnZlcj0vdXNyL3NiaW4vc21iZAorIHJ1bl9mcm9tX2luZXRkPTAKKy1zYW1iYV9wYXNzd29yZF9wcm9ncmFtPS91c3IvbG9jYWwvc2FtYmEvYmluL3NtYnBhc3N3ZAorLXNhbWJhX3N0YXR1c19wcm9ncmFtPS91c3IvbG9jYWwvc2FtYmEvYmluL3NtYnN0YXR1cworK3NhbWJhX3Bhc3N3b3JkX3Byb2dyYW09L3Vzci9iaW4vc21icGFzc3dkCisrc2FtYmFfc3RhdHVzX3Byb2dyYW09L3Vzci9iaW4vc21ic3RhdHVzCisgc3dhdF9wYXRoPS91c3IvbG9jYWwvc2FtYmEvYmluL3N3YXQKKyBzb3J0X21vZGU9MAorIHNtYmdyb3VwZWRpdD0vdXNyL2xvY2FsL3NhbWJhL2Jpbi9zbWJncm91cGVkaXQKKy1wZGJlZGl0PS91c3IvbG9jYWwvc2FtYmEvYmluL3BkYmVkaXQKKy1uZXQ9L3Vzci9sb2NhbC9zYW1iYS9iaW4vbmV0CisrcGRiZWRpdD0vdXNyL2Jpbi9wZGJlZGl0CisrbmV0PS91c3IvYmluL25ldApkaWZmIC0tZ2l0IGEvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi9maWxlcy9zZXR1cC5zaCBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvc2V0dXAuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGQyNGY5MgotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vZmlsZXMvc2V0dXAuc2gKQEAgLTAsMCArMSwzNDAgQEAKKyMhL2Jpbi9zaAorIyBNb2RpZmllZCB2ZXJzaW9uIG9mIHNldHVwLnNoIGRpc3RyaWJ1dGVkIHdpdGggd2VibWluCisKK2lmIFsgIiR3YWRpciIgPSAiIiBdOyB0aGVuCisJZWNobyAiRVJST1I6IHdhZGlyIG5vdCBzcGVjaWZpZWQiCisJZWNobyAiIgorCWV4aXQgMQorZmkKKworY29uZmlnX2Rpcl9ydW50aW1lPSRjb25maWdfZGlyCitjb25maWdfZGlyPSRwcmVmaXgkY29uZmlnX2RpcgorCit3YWRpcl9ydW50aW1lPSR3YWRpcgord2FkaXI9JHByZWZpeCR3YWRpcgorCit2ZXI9YGNhdCAiJHdhZGlyL3ZlcnNpb24iYAorCitjZCAiJHdhZGlyIgorCisjIFdvcmsgb3V0IHBlcmwgbGlicmFyeSBwYXRoCitQRVJMTElCPSR3YWRpcgorCisjIFZhbGlkYXRlIHNvdXJjZSBkaXJlY3RvcnkKK2FsbG1vZHM9YGNkICIkd2FkaXIiOyBlY2hvICovbW9kdWxlLmluZm8gfCBzZWQgLWUgJ3MvXC9tb2R1bGUuaW5mby8vZydgCitpZiBbICIkYWxsbW9kcyIgPSAiIiBdOyB0aGVuCisJZWNobyAiRVJST1I6IEZhaWxlZCB0byBnZXQgbW9kdWxlIGxpc3QiCisJZWNobyAiIgorCWV4aXQgMQorZmkKK2VjaG8gIiIKKworaWYgWyAiJGxvZ2luIiA9ICJ3ZWJtaW4iIF07IHRoZW4KKwllY2hvICJFUlJPUjogVXNlcm5hbWUgJ3dlYm1pbicgaXMgcmVzZXJ2ZWQgZm9yIGludGVybmFsIHVzZSIKKwllY2hvICIiCisJZXhpdCAxNAorZmkKKworIyBDcmVhdGUgd2Vic2VydmVyIGNvbmZpZyBmaWxlCitlY2hvICRwZXJsID4gJGNvbmZpZ19kaXIvcGVybC1wYXRoCitlY2hvICR2YXJfZGlyID4gJGNvbmZpZ19kaXIvdmFyLXBhdGgKK2VjaG8gIkNyZWF0aW5nIHdlYiBzZXJ2ZXIgY29uZmlnIGZpbGVzLi4iCitjZmlsZT0kY29uZmlnX2Rpci9taW5pc2Vydi5jb25mCitlY2hvICJwb3J0PSRwb3J0IiA+PiAkY2ZpbGUKK2VjaG8gInJvb3Q9JHdhZGlyX3J1bnRpbWUiID4+ICRjZmlsZQorZWNobyAibWltZXR5cGVzPSR3YWRpcl9ydW50aW1lL21pbWUudHlwZXMiID4+ICRjZmlsZQorZWNobyAiYWRkdHlwZV9jZ2k9aW50ZXJuYWwvY2dpIiA+PiAkY2ZpbGUKK2VjaG8gInJlYWxtPVdlYm1pbiBTZXJ2ZXIiID4+ICRjZmlsZQorZWNobyAibG9nZmlsZT0kdmFyX2Rpci9taW5pc2Vydi5sb2ciID4+ICRjZmlsZQorZWNobyAiZXJyb3Jsb2c9JHZhcl9kaXIvbWluaXNlcnYuZXJyb3IiID4+ICRjZmlsZQorZWNobyAicGlkZmlsZT0kdmFyX2Rpci9taW5pc2Vydi5waWQiID4+ICRjZmlsZQorZWNobyAibG9ndGltZT0xNjgiID4+ICRjZmlsZQorZWNobyAicHBhdGg9JHBwYXRoIiA+PiAkY2ZpbGUKK2VjaG8gInNzbD0kc3NsIiA+PiAkY2ZpbGUKK2VjaG8gImVudl9XRUJNSU5fQ09ORklHPSRjb25maWdfZGlyX3J1bnRpbWUiID4+ICRjZmlsZQorZWNobyAiZW52X1dFQk1JTl9WQVI9JHZhcl9kaXIiID4+ICRjZmlsZQorZWNobyAiYXRib290PSRhdGJvb3QiID4+ICRjZmlsZQorZWNobyAibG9nb3V0PSRjb25maWdfZGlyX3J1bnRpbWUvbG9nb3V0LWZsYWciID4+ICRjZmlsZQoraWYgWyAiJGxpc3RlbiIgIT0gIiIgXTsgdGhlbgorCWVjaG8gImxpc3Rlbj0kbGlzdGVuIiA+PiAkY2ZpbGUKK2Vsc2UKKwllY2hvICJsaXN0ZW49MTAwMDAiID4+ICRjZmlsZQorZmkKK2VjaG8gImRlbnlmaWxlPVxcLnBsXCQiID4+ICRjZmlsZQorZWNobyAibG9nPTEiID4+ICRjZmlsZQorZWNobyAiYmxvY2tob3N0X2ZhaWx1cmVzPTUiID4+ICRjZmlsZQorZWNobyAiYmxvY2tob3N0X3RpbWU9NjAiID4+ICRjZmlsZQorZWNobyAic3lzbG9nPTEiID4+ICRjZmlsZQoraWYgWyAiJGFsbG93IiAhPSAiIiBdOyB0aGVuCisJZWNobyAiYWxsb3c9JGFsbG93IiA+PiAkY2ZpbGUKK2ZpCitpZiBbICIkc2Vzc2lvbiIgIT0gIiIgXTsgdGhlbgorCWVjaG8gInNlc3Npb249JHNlc3Npb24iID4+ICRjZmlsZQorZWxzZQorCWVjaG8gInNlc3Npb249MSIgPj4gJGNmaWxlCitmaQoraWYgWyAiJHBhbSIgIT0gIiIgXTsgdGhlbgorCWVjaG8gInBhbT0kcGFtIiA+PiAkY2ZpbGUKK2ZpCitpZiBbICIkbm9fcGFtIiAhPSAiIiBdOyB0aGVuCisgICAgZWNobyAibm9fcGFtPSRub19wYW0iID4+ICRjZmlsZQorZmkKK2VjaG8gcHJlbW9kdWxlcz1XZWJtaW5Db3JlID4+ICRjZmlsZQorZWNobyAic2VydmVyPU1pbmlTZXJ2LyR2ZXIiID4+ICRjZmlsZQorCittZDVwYXNzPWAkcGVybCAtZSAncHJpbnQgY3J5cHQoInRlc3QiLCAiXFwkMVxcJEE5d0IzTzE4XFwkemFaZ3FyRW1iOVZObHRXVEw0NTRSLyIpIGVxICJcXCQxXFwkQTl3QjNPMThcXCR6YVpncXJFbWI5Vk5sdFdUTDQ1NFIvIiA/ICIxXG4iIDogIjBcbiInYAorCit1ZmlsZT0kY29uZmlnX2Rpci9taW5pc2Vydi51c2VycworaWYgWyAiJGNyeXB0IiAhPSAiIiBdOyB0aGVuCisJZWNobyAiJGxvZ2luOiRjcnlwdDowIiA+ICR1ZmlsZQorZWxzZQorCWlmIFsgIiRtZDVwYXNzIiA9ICIxIiBdOyB0aGVuCisJCSRwZXJsIC1lICdwcmludCAiJEFSR1ZbMF06IixjcnlwdCgkQVJHVlsxXSwgIlwkMVwkWFhYWFhYWFgiKSwiOjBcbiInICIkbG9naW4iICIkcGFzc3dvcmQiID4gJHVmaWxlCisJZWxzZQorCQkkcGVybCAtZSAncHJpbnQgIiRBUkdWWzBdOiIsY3J5cHQoJEFSR1ZbMV0sICJYWCIpLCI6MFxuIicgIiRsb2dpbiIgIiRwYXNzd29yZCIgPiAkdWZpbGUKKwlmaQorZmkKK2NobW9kIDYwMCAkdWZpbGUKK2VjaG8gInVzZXJmaWxlPSRjb25maWdfZGlyX3J1bnRpbWUvbWluaXNlcnYudXNlcnMiID4+ICRjZmlsZQorCitrZmlsZT0kY29uZmlnX2Rpci9taW5pc2Vydi5wZW0KK29wZW5zc2wgdmVyc2lvbiA+L2Rldi9udWxsIDI+JjEKK2lmIFsgIiQ/IiA9ICIwIiBdOyB0aGVuCisJIyBXZSBjYW4gZ2VuZXJhdGUgYSBuZXcgU1NMIGtleSBmb3IgdGhpcyBob3N0CisJaG9zdD1gaG9zdG5hbWVgCisJb3BlbnNzbCByZXEgLW5ld2tleSByc2E6NTEyIC14NTA5IC1ub2RlcyAtb3V0ICR0ZW1wZGlyL2NlcnQgLWtleW91dCAkdGVtcGRpci9rZXkgLWRheXMgMTgyNSA+L2Rldi9udWxsIDI+JjEgPDxFT0YKKy4KKy4KKy4KK1dlYm1pbiBXZWJzZXJ2ZXIgb24gJGhvc3QKKy4KKyoKK3Jvb3RAJGhvc3QKK0VPRgorCWlmIFsgIiQ/IiA9ICIwIiBdOyB0aGVuCisJCWNhdCAkdGVtcGRpci9jZXJ0ICR0ZW1wZGlyL2tleSA+JGtmaWxlCisJZmkKKwlybSAtZiAkdGVtcGRpci9jZXJ0ICR0ZW1wZGlyL2tleQorZmkKK2lmIFsgISAtciAka2ZpbGUgXTsgdGhlbgorCSMgRmFsbCBiYWNrIHRvIHRoZSBidWlsdC1pbiBrZXkKKwljcCAiJHdhZGlyL21pbmlzZXJ2LnBlbSIgJGtmaWxlCitmaQorY2htb2QgNjAwICRrZmlsZQorZWNobyAia2V5ZmlsZT0kY29uZmlnX2Rpcl9ydW50aW1lL21pbmlzZXJ2LnBlbSIgPj4gJGNmaWxlCisKK2NobW9kIDYwMCAkY2ZpbGUKK2VjaG8gIi4uZG9uZSIKK2VjaG8gIiIKKworZWNobyAiQ3JlYXRpbmcgYWNjZXNzIGNvbnRyb2wgZmlsZS4uIgorYWZpbGU9JGNvbmZpZ19kaXIvd2VibWluLmFjbAorcm0gLWYgJGFmaWxlCitpZiBbICIkZGVmYXVsdG1vZHMiID0gIiIgXTsgdGhlbgorCWVjaG8gIiRsb2dpbjogJGFsbG1vZHMiID4+ICRhZmlsZQorZWxzZQorCWVjaG8gIiRsb2dpbjogJGRlZmF1bHRtb2RzIiA+PiAkYWZpbGUKK2ZpCitjaG1vZCA2MDAgJGFmaWxlCitlY2hvICIuLmRvbmUiCitlY2hvICIiCisKK2lmIFsgIiRsb2dpbiIgIT0gInJvb3QiIC1hICIkbG9naW4iICE9ICJhZG1pbiIgXTsgdGhlbgorCSMgQWxsb3cgdXNlIG9mIFJQQyBieSB0aGlzIHVzZXIKKwllY2hvIHJwYz0xID4+JGNvbmZpZ19kaXIvJGxvZ2luLmFjbAorZmkKKworaWYgWyAiJG5vcGVybHBhdGgiID0gIiIgXTsgdGhlbgorCWVjaG8gIkluc2VydGluZyBwYXRoIHRvIHBlcmwgaW50byBzY3JpcHRzLi4iCisJKGZpbmQgIiR3YWRpciIgLW5hbWUgJyouY2dpJyAtcHJpbnQgOyBmaW5kICIkd2FkaXIiIC1uYW1lICcqLnBsJyAtcHJpbnQpIHwgJHBlcmwgIiR3YWRpci9wZXJscGF0aC5wbCIgJHBlcmxfcnVudGltZSAtCisJZWNobyAiLi5kb25lIgorCWVjaG8gIiIKK2ZpCisKK2VjaG8gIkNyZWF0aW5nIHN0YXJ0IGFuZCBzdG9wIHNjcmlwdHMuLiIKK3JtIC1mICRjb25maWdfZGlyL3N0b3AgJGNvbmZpZ19kaXIvc3RhcnQgJGNvbmZpZ19kaXIvcmVzdGFydCAkY29uZmlnX2Rpci9yZWxvYWQKK2VjaG8gIiMhL2Jpbi9zaCIgPj4kY29uZmlnX2Rpci9zdGFydAorZWNobyAiZWNobyBTdGFydGluZyBXZWJtaW4gc2VydmVyIGluICR3YWRpcl9ydW50aW1lIiA+PiRjb25maWdfZGlyL3N0YXJ0CitlY2hvICJ0cmFwICcnIDEiID4+JGNvbmZpZ19kaXIvc3RhcnQKK2VjaG8gIkxBTkc9IiA+PiRjb25maWdfZGlyL3N0YXJ0CitlY2hvICJleHBvcnQgTEFORyIgPj4kY29uZmlnX2Rpci9zdGFydAorZWNobyAiI1BFUkxJTz06cmF3IiA+PiRjb25maWdfZGlyL3N0YXJ0CitlY2hvICJ1bnNldCBQRVJMSU8iID4+JGNvbmZpZ19kaXIvc3RhcnQKK2VjaG8gImV4cG9ydCBQRVJMSU8iID4+JGNvbmZpZ19kaXIvc3RhcnQKK2VjaG8gIlBFUkxMSUI9JFBFUkxMSUIiID4+JGNvbmZpZ19kaXIvc3RhcnQKK2VjaG8gImV4cG9ydCBQRVJMTElCIiA+PiRjb25maWdfZGlyL3N0YXJ0Cit1bmFtZSAtYSB8IGdyZXAgLWkgJ0hQLypVWCcgPi9kZXYvbnVsbAoraWYgWyAkPyA9ICIwIiBdOyB0aGVuCisJZWNobyAiZXhlYyAnJHdhZGlyX3J1bnRpbWUvbWluaXNlcnYucGwnICRjb25maWdfZGlyX3J1bnRpbWUvbWluaXNlcnYuY29uZiAmIiA+PiRjb25maWdfZGlyL3N0YXJ0CitlbHNlCisJZWNobyAiZXhlYyAnJHdhZGlyX3J1bnRpbWUvbWluaXNlcnYucGwnICRjb25maWdfZGlyX3J1bnRpbWUvbWluaXNlcnYuY29uZiIgPj4kY29uZmlnX2Rpci9zdGFydAorZmkKKworZWNobyAiIyEvYmluL3NoIiA+PiRjb25maWdfZGlyL3N0b3AKK2VjaG8gImVjaG8gU3RvcHBpbmcgV2VibWluIHNlcnZlciBpbiAkd2FkaXJfcnVudGltZSIgPj4kY29uZmlnX2Rpci9zdG9wCitlY2hvICJwaWRmaWxlPVxgZ3JlcCBcIl5waWRmaWxlPVwiICRjb25maWdfZGlyX3J1bnRpbWUvbWluaXNlcnYuY29uZiB8IHNlZCAtZSAncy9waWRmaWxlPS8vZydcYCIgPj4kY29uZmlnX2Rpci9zdG9wCitlY2hvICJraWxsIFxgY2F0IFwkcGlkZmlsZVxgIiA+PiRjb25maWdfZGlyL3N0b3AKKworZWNobyAiIyEvYmluL3NoIiA+PiRjb25maWdfZGlyL3Jlc3RhcnQKK2VjaG8gIiRjb25maWdfZGlyX3J1bnRpbWUvc3RvcCAmJiAkY29uZmlnX2Rpcl9ydW50aW1lL3N0YXJ0IiA+PiRjb25maWdfZGlyL3Jlc3RhcnQKKworZWNobyAiIyEvYmluL3NoIiA+PiRjb25maWdfZGlyL3JlbG9hZAorZWNobyAiZWNobyBSZWxvYWRpbmcgV2VibWluIHNlcnZlciBpbiAkd2FkaXJfcnVudGltZSIgPj4kY29uZmlnX2Rpci9yZWxvYWQKK2VjaG8gInBpZGZpbGU9XGBncmVwIFwiXnBpZGZpbGU9XCIgJGNvbmZpZ19kaXJfcnVudGltZS9taW5pc2Vydi5jb25mIHwgc2VkIC1lICdzL3BpZGZpbGU9Ly9nJ1xgIiA+PiRjb25maWdfZGlyL3JlbG9hZAorZWNobyAia2lsbCAtVVNSMSBcYGNhdCBcJHBpZGZpbGVcYCIgPj4kY29uZmlnX2Rpci9yZWxvYWQKKworY2htb2QgNzU1ICRjb25maWdfZGlyL3N0YXJ0ICRjb25maWdfZGlyL3N0b3AgJGNvbmZpZ19kaXIvcmVzdGFydCAkY29uZmlnX2Rpci9yZWxvYWQKK2VjaG8gIi4uZG9uZSIKK2VjaG8gIiIKKworaWYgWyAiJHVwZ3JhZGluZyIgPSAxIF07IHRoZW4KKwllY2hvICJVcGRhdGluZyBjb25maWcgZmlsZXMuLiIKK2Vsc2UKKwllY2hvICJDb3B5aW5nIGNvbmZpZyBmaWxlcy4uIgorZmkKK25ld21vZHM9YCRwZXJsICIkd2FkaXIvY29weWNvbmZpZy5wbCIgIiRvc190eXBlLyRyZWFsX29zX3R5cGUiICIkb3NfdmVyc2lvbi8kcmVhbF9vc192ZXJzaW9uIiAiJHdhZGlyIiAkY29uZmlnX2RpciAiIiAkYWxsbW9kc2AKKyMgU3RvcmUgdGhlIE9TIGFuZCB2ZXJzaW9uCitlY2hvICJvc190eXBlPSRvc190eXBlIiA+PiAkY29uZmlnX2Rpci9jb25maWcKK2VjaG8gIm9zX3ZlcnNpb249JG9zX3ZlcnNpb24iID4+ICRjb25maWdfZGlyL2NvbmZpZworZWNobyAicmVhbF9vc190eXBlPSRyZWFsX29zX3R5cGUiID4+ICRjb25maWdfZGlyL2NvbmZpZworZWNobyAicmVhbF9vc192ZXJzaW9uPSRyZWFsX29zX3ZlcnNpb24iID4+ICRjb25maWdfZGlyL2NvbmZpZworaWYgWyAtciAvZXRjL3N5c3RlbS5jbmYgXTsgdGhlbgorCSMgRm91bmQgYSBjYWxkZXJhIHN5c3RlbSBjb25maWcgZmlsZSAuLiBnZXQgdGhlIGxhbmd1YWdlCisJc291cmNlIC9ldGMvc3lzdGVtLmNuZgorCWlmIFsgIiRDT05GX0xTVF9MQU5HIiA9ICJ1cyIgXTsgdGhlbgorCQlDT05GX0xTVF9MQU5HPWVuCisJZWxpZiBbICIkQ09ORl9MU1RfTEFORyIgPSAidWsiIF07IHRoZW4KKwkJQ09ORl9MU1RfTEFORz1lbgorCWZpCisJZ3JlcCAibGFuZz0kQ09ORl9MU1RfTEFORywiICIkd2FkaXIvbGFuZ19saXN0LnR4dCIgPi9kZXYvbnVsbCAyPiYxCisJaWYgWyAiJD8iID0gMCBdOyB0aGVuCisJCWVjaG8gImxhbmc9JENPTkZfTFNUX0xBTkciID4+ICRjb25maWdfZGlyL2NvbmZpZworCWZpCitmaQorCisjIFR1cm4gb24gbG9nZ2luZyBieSBkZWZhdWx0CitlY2hvICJsb2c9MSIgPj4gJGNvbmZpZ19kaXIvY29uZmlnCisKKyMgVXNlIGxpY2VuY2UgbW9kdWxlIHNwZWNpZmllZCBieSBlbnZpcm9ubWVudCB2YXJpYWJsZQoraWYgWyAiJGxpY2VuY2VfbW9kdWxlIiAhPSAiIiBdOyB0aGVuCisJZWNobyBsaWNlbmNlX21vZHVsZT0kbGljZW5jZV9tb2R1bGUgPj4kY29uZmlnX2Rpci9jb25maWcKK2ZpCisKKyMgRGlzYWxsb3cgdW5rbm93biByZWZlcmVycyBieSBkZWZhdWx0CitlY2hvICJyZWZlcmVyc19ub25lPTEiID4+JGNvbmZpZ19kaXIvY29uZmlnCitlY2hvICR2ZXIgPiAkY29uZmlnX2Rpci92ZXJzaW9uCitlY2hvICIuLmRvbmUiCitlY2hvICIiCisKKyMgU2V0IHBhc3N3ZF8gZmllbGRzIGluIG1pbmlzZXJ2LmNvbmYgZnJvbSBnbG9iYWwgY29uZmlnCitmb3IgZmllbGQgaW4gcGFzc3dkX2ZpbGUgcGFzc3dkX3VpbmRleCBwYXNzd2RfcGluZGV4IHBhc3N3ZF9jaW5kZXggcGFzc3dkX21pbmRleDsgZG8KKwlncmVwICRmaWVsZD0gJGNvbmZpZ19kaXIvbWluaXNlcnYuY29uZiA+L2Rldi9udWxsCisJaWYgWyAiJD8iICE9ICIwIiBdOyB0aGVuCisJCWdyZXAgJGZpZWxkPSAkY29uZmlnX2Rpci9jb25maWcgPj4gJGNvbmZpZ19kaXIvbWluaXNlcnYuY29uZgorCWZpCitkb25lCitncmVwIHBhc3N3ZF9tb2RlPSAkY29uZmlnX2Rpci9taW5pc2Vydi5jb25mID4vZGV2L251bGwKK2lmIFsgIiQ/IiAhPSAiMCIgXTsgdGhlbgorCWVjaG8gcGFzc3dkX21vZGU9MCA+PiAkY29uZmlnX2Rpci9taW5pc2Vydi5jb25mCitmaQorCisjIElmIFBlcmwgY3J5cHQgc3VwcG9ydHMgTUQ1LCB0aGVuIG1ha2UgaXQgdGhlIGRlZmF1bHQKK2lmIFsgIiRtZDVwYXNzIiA9ICIxIiBdOyB0aGVuCisJZWNobyBtZDVwYXNzPTEgPj4gJGNvbmZpZ19kaXIvY29uZmlnCitmaQorCisjIFNldCBhIHNwZWNpYWwgdGhlbWUgaWYgbm9uZSB3YXMgc2V0IGJlZm9yZQoraWYgWyAiJHRoZW1lIiA9ICIiIF07IHRoZW4KKwl0aGVtZT1gY2F0ICIkd2FkaXIvZGVmYXVsdHRoZW1lIiAyPi9kZXYvbnVsbGAKK2ZpCitvbGR0aGVtZWxpbmU9YGdyZXAgIl50aGVtZT0iICRjb25maWdfZGlyL2NvbmZpZ2AKK29sZHRoZW1lPWBlY2hvICRvbGR0aGVtZWxpbmUgfCBzZWQgLWUgJ3MvdGhlbWU9Ly9nJ2AKK2lmIFsgIiR0aGVtZSIgIT0gIiIgXSAmJiBbICIkb2xkdGhlbWVsaW5lIiA9ICIiIF0gJiYgWyAtZCAiJHdhZGlyLyR0aGVtZSIgXTsgdGhlbgorCXRoZW1lbGlzdD0kdGhlbWUKK2ZpCisKKyMgU2V0IGEgc3BlY2lhbCBvdmVybGF5IGlmIG5vbmUgd2FzIHNldCBiZWZvcmUKK2lmIFsgIiRvdmVybGF5IiA9ICIiIF07IHRoZW4KKwlvdmVybGF5PWBjYXQgIiR3YWRpci9kZWZhdWx0b3ZlcmxheSIgMj4vZGV2L251bGxgCitmaQoraWYgWyAiJG92ZXJsYXkiICE9ICIiIF0gJiYgWyAiJHRoZW1lIiAhPSAiIiBdICYmIFsgLWQgIiR3YWRpci8kb3ZlcmxheSIgXTsgdGhlbgorCXRoZW1lbGlzdD0iJHRoZW1lbGlzdCAkb3ZlcmxheSIKK2ZpCisKKyMgQXBwbHkgdGhlIHRoZW1lIGFuZCBtYXliZSBvdmVybGF5CitpZiBbICIkdGhlbWVsaXN0IiAhPSAiIiBdOyB0aGVuCisJZWNobyAidGhlbWU9JHRoZW1lbGlzdCIgPj4gJGNvbmZpZ19kaXIvY29uZmlnCisJZWNobyAicHJlcm9vdD0kdGhlbWVsaXN0IiA+PiAkY29uZmlnX2Rpci9taW5pc2Vydi5jb25mCitmaQorCisjIFNldCB0aGUgcHJvZHVjdCBmaWVsZCBpbiB0aGUgZ2xvYmFsIGNvbmZpZworZ3JlcCBwcm9kdWN0PSAkY29uZmlnX2Rpci9jb25maWcgPi9kZXYvbnVsbAoraWYgWyAiJD8iICE9ICIwIiBdOyB0aGVuCisJZWNobyBwcm9kdWN0PXdlYm1pbiA+PiAkY29uZmlnX2Rpci9jb25maWcKK2ZpCisKK2lmIFsgIiRtYWtlYm9vdCIgPSAiMSIgXTsgdGhlbgorCWVjaG8gIkNvbmZpZ3VyaW5nIFdlYm1pbiB0byBzdGFydCBhdCBib290IHRpbWUuLiIKKwkoY2QgIiR3YWRpci9pbml0IiA7IFdFQk1JTl9DT05GSUc9JGNvbmZpZ19kaXIgV0VCTUlOX1ZBUj0kdmFyX2RpciAiJHdhZGlyL2luaXQvYXRib290LnBsIiAkYm9vdHNjcmlwdCkKKwllY2hvICIuLmRvbmUiCisJZWNobyAiIgorZmkKKworIyBJZiBwYXNzd29yZCBkZWxheXMgYXJlIG5vdCBzcGVjaWZpY2FsbHkgZGlzYWJsZWQsIGVuYWJsZSB0aGVtCitncmVwIHBhc3NkZWxheT0gJGNvbmZpZ19kaXIvbWluaXNlcnYuY29uZiA+L2Rldi9udWxsCitpZiBbICIkPyIgIT0gIjAiIF07IHRoZW4KKwllY2hvIHBhc3NkZWxheT0xID4+ICRjb25maWdfZGlyL21pbmlzZXJ2LmNvbmYKK2ZpCisKK2VjaG8gIkNoYW5naW5nIG93bmVyc2hpcCBhbmQgcGVybWlzc2lvbnMgLi4iCisjIE1ha2UgYWxsIGNvbmZpZyBkaXJzIG5vbi13b3JsZC1yZWFkYWJsZQorZm9yIG0gaW4gJG5ld21vZHM7IGRvCisJY2hvd24gLVIgcm9vdCAkY29uZmlnX2Rpci8kbQorCWNoZ3JwIC1SIGJpbiAkY29uZmlnX2Rpci8kbQorCWNobW9kIC1SIG9nLXJ3ICRjb25maWdfZGlyLyRtCitkb25lCisjIE1ha2UgbWluaXNlcnYgY29uZmlnIGZpbGVzIG5vbi13b3JsZC1yZWFkYWJsZQorZm9yIGYgaW4gbWluaXNlcnYuY29uZiBtaW5pc2Vydi5wZW0gbWluaXNlcnYudXNlcnM7IGRvCisJY2hvd24gLVIgcm9vdCAkY29uZmlnX2Rpci8kZgorCWNoZ3JwIC1SIGJpbiAkY29uZmlnX2Rpci8kZgorCWNobW9kIC1SIG9nLXJ3ICRjb25maWdfZGlyLyRmCitkb25lCitjaG1vZCArciAkY29uZmlnX2Rpci92ZXJzaW9uCitpZiBbICIkbm9jaG93biIgPSAiIiBdOyB0aGVuCisJIyBNYWtlIHByb2dyYW0gZGlyZWN0b3J5IG5vbi13b3JsZC13cml0YWJsZSwgYnV0IGV4ZWN1dGFibGUKKwljaG93biAtUiByb290ICIkd2FkaXIiCisJY2hncnAgLVIgYmluICIkd2FkaXIiCisJY2htb2QgLVIgb2ctdyAiJHdhZGlyIgorCWNobW9kIC1SIGErcnggIiR3YWRpciIKK2ZpCitpZiBbICR2YXJfZGlyICE9ICIvdmFyIiBdOyB0aGVuCisJIyBNYWtlIGxvZyBkaXJlY3Rvcnkgbm9uLXdvcmxkLXJlYWRhYmxlIG9yIHdyaXRhYmxlCisJY2hvd24gLVIgcm9vdCAkcHJlZml4JHZhcl9kaXIKKwljaGdycCAtUiBiaW4gJHByZWZpeCR2YXJfZGlyCisJY2htb2QgLVIgb2ctcnd4ICRwcmVmaXgkdmFyX2RpcgorZmkKKyMgRml4IHVwIGJhZCBwZXJtaXNzaW9ucyBmcm9tIHNvbWUgb2xkZXIgaW5zdGFsbHMKK2ZvciBtIGluIGxkYXAtY2xpZW50IGxkYXAtc2VydmVyIGxkYXAtdXNlcmFkbWluIG1haWxib3hlcyBteXNxbCBwb3N0Z3Jlc3FsIHNlcnZlcnMgdmlydHVhbC1zZXJ2ZXI7IGRvCisJaWYgWyAtZCAiJGNvbmZpZ19kaXIvJG0iIF07IHRoZW4KKwkJY2hvd24gcm9vdCAkY29uZmlnX2Rpci8kbQorCQljaGdycCBiaW4gJGNvbmZpZ19kaXIvJG0KKwkJY2htb2Qgb2ctcncgJGNvbmZpZ19kaXIvJG0KKwkJY2htb2Qgb2ctcncgJGNvbmZpZ19kaXIvJG0vY29uZmlnIDI+L2Rldi9udWxsCisJZmkKK2RvbmUKKworaWYgWyAiJG5vcG9zdGluc3RhbGwiID0gIiIgXTsgdGhlbgorCWVjaG8gIlJ1bm5pbmcgcG9zdGluc3RhbGwgc2NyaXB0cyAuLiIKKwkoY2QgIiR3YWRpciIgOyBXRUJNSU5fQ09ORklHPSRjb25maWdfZGlyIFdFQk1JTl9WQVI9JHZhcl9kaXIgIiR3YWRpci9ydW4tcG9zdGluc3RhbGxzLnBsIikKKwllY2hvICIuLmRvbmUiCisJZWNobyAiIgorZmkKKworIyBFbmFibGUgYmFja2dyb3VuZCBjb2xsZWN0aW9uCitpZiBbICIkdXBncmFkaW5nIiAhPSAxIC1hIC1yICRjb25maWdfZGlyL3N5c3RlbS1zdGF0dXMvZW5hYmxlLWNvbGxlY3Rpb24ucGwgXTsgdGhlbgorCWVjaG8gIkVuYWJsaW5nIGJhY2tncm91bmQgc3RhdHVzIGNvbGxlY3Rpb24gLi4iCisJJGNvbmZpZ19kaXIvc3lzdGVtLXN0YXR1cy9lbmFibGUtY29sbGVjdGlvbi5wbCA1CisJZWNobyAiLi5kb25lIgorCWVjaG8gIiIKK2ZpCisKZGlmZiAtLWdpdCBhL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vd2VibWluXzEuNzUwLmJiIGIvaW1wb3J0LWxheWVycy9tZXRhLW9wZW5lbWJlZGRlZC9tZXRhLXdlYnNlcnZlci9yZWNpcGVzLXdlYmFkbWluL3dlYm1pbi93ZWJtaW5fMS43NTAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQwNTJhMQotLS0gL2Rldi9udWxsCisrKyBiL2ltcG9ydC1sYXllcnMvbWV0YS1vcGVuZW1iZWRkZWQvbWV0YS13ZWJzZXJ2ZXIvcmVjaXBlcy13ZWJhZG1pbi93ZWJtaW4vd2VibWluXzEuNzUwLmJiCkBAIC0wLDAgKzEsMTU1IEBACitTVU1NQVJZID0gIldlYi1iYXNlZCBhZG1pbmlzdHJhdGlvbiBpbnRlcmZhY2UiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LndlYm1pbi5jb20iCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOQ0U7bWQ1PTAzNzNhYzlmNjExZTU0MmRkZWJlMWVjNjM5NGFmYzNjIgorCitTUkNfVVJJID0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS93ZWJhZG1pbi93ZWJtaW4tJHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL3NldHVwLnNoIFwKKyAgICAgICAgICAgZmlsZTovL2luaXQtZXhjbHVkZS5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9uZXQtZ2VuZXJpYy5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9yZW1vdmUtc3RhcnR1cC1vcHRpb24ucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vZGlzYWJsZS12ZXJzaW9uLWNoZWNrLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL25mcy1leHBvcnQucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vZXhwb3J0cy1saWIucGwucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vbW91bnQtZXhjbHVkZWZzLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL3NhbWJhLWNvbmZpZy1maXgucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vcHJvZnRwZC1jb25maWctZml4LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL25ldC1saWIucGwucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vbWVkaWEtdG9tYi5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9yZW1vdmUtcHl0aG9uMi4zLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL215c3FsLWNvbmZpZy1maXgucGF0Y2ggXAorICAgICAgICAgICAgIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNDAwN2MzOTAzMjNkODQwZjI2YzJlMGY0M2M1YzgxYTMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTExMWY4MjBhZGM2ZmJjYTk5N2E1OGQ0YjJmYTE4NmRhYzZjZGVkOWNmZjBlNzA3MjRmOGNhZTYwMjExMjNkOSIKKworaW5oZXJpdCBwZXJsbmF0aXZlIHVwZGF0ZS1yYy5kCisKK2RvX2NvbmZpZ3VyZSgpIHsKKyAgICAjIFJlbW92ZSBiaW5hcmllcyBhbmQgcGx1Z2lucyBmb3Igb3RoZXIgcGxhdGZvcm1zCisgICAgcm0gLXJmIGFjbC9BdXRoZW4tU29sYXJpc1JCQUMtMC4xKgorICAgIHJtIC1yZiBmb3JtYXQgYnNkZXhwb3J0cyBocHV4ZXhwb3J0cyBzZ2lleHBvcnRzCisgICAgcm0gLXJmIHpvbmVzIHJiYWMgc21mIGlwZncgaXBmaWx0ZXIgZGZzYWRtaW4KKyAgICBybSAtZiBtb3VudC9mcmVlYnNkLW1vdW50cyogbW91bnQvbmV0YnNkLW1vdW50cyoKKyAgICBybSAtZiBtb3VudC9vcGVuYnNkLW1vdW50cyogbW91bnQvbWFjb3MtbW91bnRzKgorCisgICAgIyBSZW1vdmUgc29tZSBwbHVnaW5zIGZvciB0aGUgbW9tZW50CisgICAgcm0gLXJmIGxpbG8gZnJveCB3dWZ0cGQgdGVsbmV0IHBzZXJ2ZXIgY3BhbiBzaG9yZXdhbGwgd2ViYWxpemVyIGNmZW5naW5lIGZzZHVtcCBwYXAKKyAgICBybSAtcmYgbWFqb3Jkb21vIGZldGNobWFpbCBzZW5kbWFpbCBtYWlsYm94ZXMgcHJvY21haWwgZmlsdGVyIG1haWxjYXAgZG92ZWNvdCBleGltIHNwYW0gcW1haWxhZG1pbiBwb3N0Zml4CisgICAgcm0gLXJmIHN0dW5uZWwgc3F1aWQgc2FyZyBwcHRwLWNsaWVudCBwcHRwLXNlcnZlciBqYWJiZXIgb3BlbnNscCBzZW50cnkgY2x1c3Rlci0qIHZnZXR0eSBidXJuZXIgaGVhcnRiZWF0CisKKyAgICAjIEFkanVzdCBjb25maWdzCisgICAgWyAtZiBpbml0L2NvbmZpZy1kZWJpYW4tbGludXggXSAmJiBtdiBpbml0L2NvbmZpZy1kZWJpYW4tbGludXggaW5pdC9jb25maWctZ2VuZXJpYy1saW51eAorICAgIHNlZCAtaSAicy9zaHV0ZG93bl9jb21tYW5kPS4qL3NodXRkb3duX2NvbW1hbmQ9cG93ZXJvZmYvIiBpbml0L2NvbmZpZy1nZW5lcmljLWxpbnV4CisgICAgZWNobyAiZXhjbHVkZT1ib290bWlzYy5zaCxzaW5nbGUsaGFsdCxyZWJvb3QsaG9zdG5hbWUuc2gsbW9kdXRpbHMuc2gsbW91bnRhbGwuc2gsbW91bnRuZnMuc2gsbmV0d29ya2luZyxwb3B1bGF0ZS12b2xhdGlsZS5zaCxybW5vbG9naW4uc2gsc2F2ZS1ydGMuc2gsdW1vdW50ZnMsdW1vdW50bmZzLnNoLGh3Y2xvY2suc2gsY2hlY2tyb290LnNoLGJhbm5lci5zaCx1ZGV2LHVkZXYtY2FjaGUsZGV2cHRzLnNoLHBzcGxhc2guc2gsc2VuZHNpZ3MsZmJzZXR1cCxib290bG9nZCxzdG9wLWJvb3Rsb2dkLHN5c2ZzLnNoLHN5c2xvZyxzeXNsb2cuYnVzeWJveCx1cmFuZG9tLHdlYm1pbixmdW5jdGlvbnMuaW5pdHNjcmlwdHMscmVhZC1vbmx5LXJvb3Rmcy1ob29rLnNoIiA+PiBpbml0L2NvbmZpZy1nZW5lcmljLWxpbnV4CisgICAgZWNobyAiZXhjbHVkZWZzPWRldnB0cyxkZXZ0bXBmcyx1c2JkZXZmcyxwcm9jLHRtcGZzLHN5c2ZzLGRlYnVnZnMiID4+IG1vdW50L2NvbmZpZy1nZW5lcmljLWxpbnV4CisKKyAgICBbIC1mIGV4cG9ydHMvY29uZmlnLWRlYmlhbi1saW51eCBdICYmIG12IGV4cG9ydHMvY29uZmlnLWRlYmlhbi1saW51eCBleHBvcnRzL2NvbmZpZy1nZW5lcmljLWxpbnV4CisgICAgc2VkIC1pICJzL2tpbGxhbGwgLUhVUCBycGMubmZzZCAmJiAvLyIgZXhwb3J0cy9jb25maWctZ2VuZXJpYy1saW51eAorICAgIHNlZCAtaSAicy9uZXRzdGRfbmZzL25mc3NlcnZlci9nIiBleHBvcnRzL2NvbmZpZy1nZW5lcmljLWxpbnV4CisKKyAgICAjIEZpeCBpbnNhbmUgbmFtaW5nIHRoYXQgY2F1c2VzIHByb2JsZW1zIGF0IHBhY2thZ2luZyB0aW1lIChtdXN0IGJlIGRvbmUgYmVmb3JlIGRlbGV0aW5nIGJlbG93KQorICAgIGZpbmQgLiAtbmFtZSAiKlwqKiIgfCB3aGlsZSByZWFkIGZyb20KKyAgICBkbworICAgICAgICB0bz1gZWNobyAiJGZyb20iIHwgc2VkICJzLyovQUxMLyJgCisgICAgICAgIG12ICIkZnJvbSIgIiR0byIKKyAgICBkb25lCisKKyAgICAjIFJlbW92ZSBzb21lIG90aGVyIGZpbGVzIHdlIGRvbid0IG5lZWQKKyAgICBmaW5kIC4gLW5hbWUgImNvbmZpZy0qIiAtYSBcISAtbmFtZSAiY29uZmlnLWdlbmVyaWMtbGludXgiIC1hIFwhIC1uYW1lICJjb25maWctQUxMLWxpbnV4IiAtYSBcISAtbmFtZSAiKi5wbCIgLWRlbGV0ZQorICAgIGZpbmQgLiAtcmVnZXh0eXBlIHBvc2l4LWV4dGVuZGVkIC1yZWdleCAiLiovKG9wZW5zZXJ2ZXJ8YWl4fG9zZjF8b3NmfG9wZW5ic2R8bmV0YnNkfGZyZWVic2R8dW5peHdhcmV8c29sYXJpc3xtYWNvc3xpcml4fGhwdXh8Y3lnd2lufHdpbmRvd3MpLWxpYlwucGwiIC1kZWxldGUKKyAgICBybSAtZiB3ZWJtaW4tZ2VudG9vLWluaXQgd2VibWluLWNhbGRlcmEtaW5pdCB3ZWJtaW4tZGViaWFuLXBhbSB3ZWJtaW4tcGFtCisKKyAgICAjIERvbid0IG5lZWQgdGhlc2UgYXQgcnVudGltZSAoYW5kIHdlIGhhdmUgb3VyIG93biBzZXR1cCBzY3JpcHQpCisgICAgcm0gLWYgc2V0dXAuc2gKKyAgICBybSAtZiBzZXR1cC5wbAorCisgICAgIyBVc2UgcGlkb2YgZm9yIGZpbmRpbmcgUElEcworICAgIHNlZCAtaSAicy9maW5kX3BpZF9jb21tYW5kPS4qL2ZpbmRfcGlkX2NvbW1hbmQ9cGlkb2YgTkFNRS8iIGNvbmZpZy1nZW5lcmljLWxpbnV4Cit9CisKK1dFQk1JTl9MT0dJTiA/PSAiYWRtaW4iCitXRUJNSU5fUEFTU1dPUkQgPz0gInBhc3N3b3JkIgorCitkb19pbnN0YWxsKCkgeworICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0KKyAgICBpbnN0YWxsIC1kICR7RH0ke3N5c2NvbmZkaXJ9L3dlYm1pbgorICAgIGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCisgICAgaW5zdGFsbCAtbSAwNzU1IHdlYm1pbi1pbml0ICR7RH0ke3N5c2NvbmZkaXJ9L2luaXQuZC93ZWJtaW4KKworICAgIGluc3RhbGwgLWQgJHtEfSR7bG9jYWxzdGF0ZWRpcn0KKyAgICBpbnN0YWxsIC1kICR7RH0ke2xvY2Fsc3RhdGVkaXJ9L3dlYm1pbgorCisgICAgaW5zdGFsbCAtZCAke0R9JHtsaWJleGVjZGlyfS93ZWJtaW4KKyAgICBjZCAke1N9IHx8IGV4aXQgMQorICAgIHRhciAtLW5vLXNhbWUtb3duZXIgLS1leGNsdWRlPScuL3BhdGNoZXMnIC0tZXhjbHVkZT0nLi8ucGMnIC1jcGYgLSAuIFwKKyAgICAgICAgfCB0YXIgLS1uby1zYW1lLW93bmVyIC14cGYgLSAtQyAke0R9JHtsaWJleGVjZGlyfS93ZWJtaW4KKworICAgIHJtIC1mICR7RH0ke2xpYmV4ZWNkaXJ9L3dlYm1pbi93ZWJtaW4taW5pdAorICAgIHJtIC1mICR7RH0ke2xpYmV4ZWNkaXJ9L3dlYm1pbi9hamF4dGVybS9hamF4dGVybS9jb25maWd1cmUuaW5pdGQuZ2VudG9vCisgICAgcm0gLXJmICR7RH0ke2xpYmV4ZWNkaXJ9L3dlYm1pbi9wYXRjaGVzCisKKyAgICAjIFJ1biBzZXR1cCBzY3JpcHQKKyAgICBleHBvcnQgcGVybD1wZXJsCisgICAgZXhwb3J0IHBlcmxfcnVudGltZT0ke2JpbmRpcn0vcGVybAorICAgIGV4cG9ydCBwcmVmaXg9JHtEfQorICAgIGV4cG9ydCB0ZW1wZGlyPSR7U30vaW5zdGFsbF90bXAKKyAgICBleHBvcnQgd2FkaXI9JHtsaWJleGVjZGlyfS93ZWJtaW4KKyAgICBleHBvcnQgY29uZmlnX2Rpcj0ke3N5c2NvbmZkaXJ9L3dlYm1pbgorICAgIGV4cG9ydCB2YXJfZGlyPSR7bG9jYWxzdGF0ZWRpcn0vd2VibWluCisgICAgZXhwb3J0IG9zX3R5cGU9Z2VuZXJpYy1saW51eAorICAgIGV4cG9ydCBvc192ZXJzaW9uPTAKKyAgICBleHBvcnQgcmVhbF9vc190eXBlPSIke0RJU1RST19OQU1FfSIKKyAgICBleHBvcnQgcmVhbF9vc192ZXJzaW9uPSIke0RJU1RST19WRVJTSU9OfSIKKyAgICBleHBvcnQgcG9ydD0xMDAwMAorICAgIGV4cG9ydCBsb2dpbj0ke1dFQk1JTl9MT0dJTn0KKyAgICBleHBvcnQgcGFzc3dvcmQ9JHtXRUJNSU5fUEFTU1dPUkR9CisgICAgZXhwb3J0IHNzbD0wCisgICAgZXhwb3J0IGF0Ym9vdD0xCisgICAgZXhwb3J0IG5vX3BhbT0xCisgICAgbWtkaXIgLXAgJHRlbXBkaXIKKyAgICAke1N9Ly4uL3NldHVwLnNoCit9CisKK0lOSVRTQ1JJUFRfTkFNRSA9ICJ3ZWJtaW4iCitJTklUU0NSSVBUX1BBUkFNUyA9ICJzdGFydCA5OSA1IDMgMiAuIHN0b3AgMTAgMCAxIDYgLiIKKworIyBGSVhNRTogc29tZSBvZiB0aGlzIHNob3VsZCBiZSBmaWd1cmVkIG91dCBhdXRvbWF0aWNhbGx5CitSREVQRU5EU18ke1BOfSArPSAicGVybCBwZXJsLW1vZHVsZS1zb2NrZXQgcGVybC1tb2R1bGUtZXhwb3J0ZXIgcGVybC1tb2R1bGUtZXhwb3J0ZXItaGVhdnkgcGVybC1tb2R1bGUtY2FycCBwZXJsLW1vZHVsZS1zdHJpY3QiCitSREVQRU5EU18ke1BOfSArPSAicGVybC1tb2R1bGUtd2FybmluZ3MgcGVybC1tb2R1bGUteHNsb2FkZXIgcGVybC1tb2R1bGUtcG9zaXggcGVybC1tb2R1bGUtYXV0b2xvYWRlciIKK1JERVBFTkRTXyR7UE59ICs9ICJwZXJsLW1vZHVsZS1mY250bCBwZXJsLW1vZHVsZS10aWUtaGFzaCBwZXJsLW1vZHVsZS12YXJzIHBlcmwtbW9kdWxlLXRpbWUtbG9jYWwgcGVybC1tb2R1bGUtY29uZmlnIHBlcmwtbW9kdWxlLWNvbnN0YW50IgorUkRFUEVORFNfJHtQTn0gKz0gInBlcmwtbW9kdWxlLWZpbGUtZ2xvYiBwZXJsLW1vZHVsZS1maWxlLWNvcHkgcGVybC1tb2R1bGUtc2RibS1maWxlIHBlcmwtbW9kdWxlLWZlYXR1cmUiCisKK1BBQ0tBR0VTX0RZTkFNSUMgKz0gIndlYm1pbi1tb2R1bGUtKiB3ZWJtaW4tdGhlbWUtKiIKK1JSRUNPTU1FTkRTXyR7UE59ICs9ICJ3ZWJtaW4tbW9kdWxlLXN5c3RlbS1zdGF0dXMiCisKK1BBQ0tBR0VTICs9ICIke1BOfS1tb2R1bGUtcHJvYyAke1BOfS1tb2R1bGUtcmFpZCAke1BOfS1tb2R1bGUtZXhwb3J0cyAke1BOfS1tb2R1bGUtZmRpc2sgJHtQTn0tbW9kdWxlLWx2bSIKK1JERVBFTkRTXyR7UE59LW1vZHVsZS1wcm9jID0gInByb2NwcyIKK1JERVBFTkRTXyR7UE59LW1vZHVsZS1yYWlkID0gIm1kYWRtIgorUkRFUEVORFNfJHtQTn0tbW9kdWxlLWV4cG9ydHMgPSAicGVybC1tb2R1bGUtZmlsZS1iYXNlbmFtZSBwZXJsLW1vZHVsZS1maWxlLXBhdGggcGVybC1tb2R1bGUtY3dkIHBlcmwtbW9kdWxlLWZpbGUtc3BlYyBwZXJsLW1vZHVsZS1maWxlLXNwZWMtdW5peCIKK1JSRUNPTU1FTkRTXyR7UE59LW1vZHVsZS1mZGlzayA9ICJwYXJ0ZWQiCitSUkVDT01NRU5EU18ke1BOfS1tb2R1bGUtbHZtID0gImx2bTIiCisKK3B5dGhvbiBwb3B1bGF0ZV9wYWNrYWdlc19wcmVwZW5kKCkgeworICAgIGltcG9ydCBvcywgb3MucGF0aAorCisgICAgd2FkaXIgPSBiYi5kYXRhLmV4cGFuZCgnJHtsaWJleGVjZGlyfS93ZWJtaW4nLCBkKQorICAgIHdhZGlyX2ltYWdlID0gYmIuZGF0YS5leHBhbmQoJyR7RH0nLCBkKSArIHdhZGlyCisgICAgbW9kdWxlcyA9IFtdCisgICAgdGhlbWVzID0gW10KKyAgICBmb3IgbW9kIGluIG9zLmxpc3RkaXIod2FkaXJfaW1hZ2UpOgorICAgICAgICBtb2RpbmZvID0gb3MucGF0aC5qb2luKHdhZGlyX2ltYWdlLCBtb2QsICJtb2R1bGUuaW5mbyIpCisgICAgICAgIHRoZW1laW5mbyA9IG9zLnBhdGguam9pbih3YWRpcl9pbWFnZSwgbW9kLCAidGhlbWUuaW5mbyIpCisgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKG1vZGluZm8pOgorICAgICAgICAgICAgbW9kdWxlcy5hcHBlbmQobW9kKQorICAgICAgICBlbGlmIG9zLnBhdGguZXhpc3RzKHRoZW1laW5mbyk6CisgICAgICAgICAgICB0aGVtZXMuYXBwZW5kKG1vZCkKKworICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIHdhZGlyLCAnXiglcykkJyAlICJ8Ii5qb2luKG1vZHVsZXMpLCAnd2VibWluLW1vZHVsZS0lcycsICdXZWJtaW4gbW9kdWxlIGZvciAlcycsIGFsbG93X2RpcnM9VHJ1ZSwgcHJlcGVuZD1UcnVlKQorICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIHdhZGlyLCAnXiglcykkJyAlICJ8Ii5qb2luKHRoZW1lcyksICd3ZWJtaW4tdGhlbWUtJXMnLCAnV2VibWluIHRoZW1lIGZvciAlcycsIGFsbG93X2RpcnM9VHJ1ZSwgcHJlcGVuZD1UcnVlKQorfQorCisjIFRpbWUtc2F2ZXJzCitwYWNrYWdlX2RvX3BrZ2NvbmZpZygpIHsKKyAgICA6Cit9Cg==