ZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS1mcHUuaW5jIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLWZwdS5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTA0MDIzMAotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS1mcHUuaW5jCkBAIC0wLDAgKzEsNiBAQAorCitkZWYgZ2V0X2Fsc2FfZnB1X3NldHRpbmcoYmIsIGQpOgorCWlmIGQuZ2V0VmFyKCdUQVJHRVRfRlBVJywgVHJ1ZSkgaW4gWyAnc29mdCcgXToKKwkJcmV0dXJuICItLXdpdGgtc29mdGZsb2F0IgorCXJldHVybiAiIgorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtbGliLzAwMDEtYnVpbGQtRG8tbm90LXRyeS10by1kZXRlY3QtY3Jvc3MtY29tcGlsZXIucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtbGliLzAwMDEtYnVpbGQtRG8tbm90LXRyeS10by1kZXRlY3QtY3Jvc3MtY29tcGlsZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTgzYmMzZAotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS1saWIvMDAwMS1idWlsZC1Eby1ub3QtdHJ5LXRvLWRldGVjdC1jcm9zcy1jb21waWxlci5wYXRjaApAQCAtMCwwICsxLDQ1IEBACitGcm9tIDE3YWViMzU2NWY0MTFlNzc5NmNhYmU0MDNmOTJkMTU5NDhhOGNhOTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogRnJpLCAyMSBBdWcgMjAxNSAxNDo0Mjo0NSAtMDcwMAorU3ViamVjdDogW1BBVENIXSBidWlsZDogRG8gbm90IHRyeSB0byBkZXRlY3QgY3Jvc3MtY29tcGlsZXIKKworY3Jvc3MgY29tcGlsZXJzIGFyZSBwYXNzZWQgdmlhIHBhdGggbWF5IG5vdCBiZSBhIGdjYyBiYXNlZCBjcm9zcworY29tcGlsZXIgaW4gc3VjaCBjYXNlcyB0aGlzIGNoZWNrIGZhaWxzIGFuZCB0cnkncyB0byBmb3JjZSBnY2MgYmFzZWQKK2Nyb3NzIGNvbXBpbGVyIGRldGVjdGlvbiwgVGhpcyBjb2RlIGlzIGEgY29udmVuaWVuY2UgdGhhdCBsaW1pdHMgdGhlCitidWlsZCBzeXN0ZW0KKworU2lnbmVkLW9mZi1ieTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KKy0tLQorVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKKyBjb25maWd1cmUuYWMgfCAxNCAtLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5kZXggMzAyMmNmOC4uOWQ3NzQ0MCAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysrIGIvY29uZmlndXJlLmFjCitAQCAtMjcsMjAgKzI3LDYgQEAgQUNfUFJFRklYX0RFRkFVTFQoL3VzcikKKyAKKyBkbmwgQ2hlY2tzIGZvciBwcm9ncmFtcy4KKyAKKy1kbmwgdHJ5IHRvIGd1ZXMgY3Jvc3MtY29tcGlsZXIgaWYgbm90IHNldAorLWlmIHRlc3QgIngkaG9zdCIgIT0gIngkYnVpbGQiIC1hIC16ICJgZWNobyAkQ0MgfCBncmVwIC1lICctZ2NjJ2AiOworLXRoZW4KKy0gIEFDX01TR19DSEVDS0lORyhmb3IgY3Jvc3MtY29tcGlsZXIpCistCistICB3aGljaCAke3Byb2dyYW1fcHJlZml4fWdjYyA+L2Rldi9udWxsIDI+JjEgJiYgQ0M9JHtwcm9ncmFtX3ByZWZpeH1nY2MKKy0gIHdoaWNoICR7aG9zdF9jcHV9LSR7aG9zdF9vc30tZ2NjID4vZGV2L251bGwgMj4mMSBcCistICAmJiBDQz0ke2hvc3RfY3B1fS0ke2hvc3Rfb3N9LWdjYworLSAgd2hpY2ggJHtob3N0X2NwdX0tJHtob3N0X3ZlbmRvcn0tJHtob3N0X29zfS1nY2MgPi9kZXYvbnVsbCAyPiYxIFwKKy0gICYmIENDPSR7aG9zdF9jcHV9LSR7aG9zdF92ZW5kb3J9LSR7aG9zdF9vc30tZ2NjCistCistICBBQ19NU0dfUkVTVUxUKCRDQykKKy1maQorLQkgICAgCisgQ0ZMQUdTPSIkQ0ZMQUdTIC1EX0dOVV9TT1VSQ0UiCisgCisgCistLSAKKzIuMS40CisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS1saWIvQ2hlY2staWYtd29yZGV4cC1mdW5jdGlvbi1pcy1zdXBwb3J0ZWQucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtbGliL0NoZWNrLWlmLXdvcmRleHAtZnVuY3Rpb24taXMtc3VwcG9ydGVkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1YTZlYjgKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtbGliL0NoZWNrLWlmLXdvcmRleHAtZnVuY3Rpb24taXMtc3VwcG9ydGVkLnBhdGNoCkBAIC0wLDAgKzEsNTEgQEAKK0Zyb20gZTMzMzU3YjU5YTEwZDQ0ZTliZWM1ZDI0MTAwY2UyM2NhMzAwY2M3OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ICJIb25nIEguIFBoYW0iIDxob25nLnBoYW1Ad2luZHJpdmVyLmNvbT4KK0RhdGU6IEZyaSwgMjkgQXVnIDIwMTQgMTc6MTM6NTUgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSF0gQ2hlY2sgaWYgd29yZGV4cCBmdW5jdGlvbiBpcyBzdXBwb3J0ZWQKKworZWdsaWJjIGNvdWxkIGJlIGNvbmZpZ3VyZWQgdG8gYnVpbGQgd2l0aG91dCB3b3JkZXhwLCBzbyBpdCBpcyBub3QgZW5vdWdoCit0byBjaGVjayBpZiB3b3JkZXhwLmggZXhpc3RzICh0aGUgaGVhZGVyIGZpbGUgY291bGQgYmUgaW5zdGFsbGVkLCBidXQgaXQncworcG9zc2libGUgdGhhdCB0aGUgd29yZGV4cCgpIGZ1bmN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQpLiAgQW4gYWRkaXRpb25hbAorY2hlY2sgaWYgd29yZGV4cCgpIGlzIHN1cHBvcnRlZCBieSB0aGUgc3lzdGVtIEMgbGlicmFyeSBpcyBuZWVkZWQuCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KKworU2lnbmVkLW9mZi1ieTogSG9uZyBILiBQaGFtIDxob25nLnBoYW1Ad2luZHJpdmVyLmNvbT4KK1NpZ25lZC1vZmYtYnk6IENyaXN0aWFuIElvcmdhIDxjcmlzdGlhbi5pb3JnYUBpbnRlbC5jb20+CistLS0KKyBjb25maWd1cmUuYWMgICB8IDUgKysrKy0KKyBzcmMvdXNlcmZpbGUuYyB8IDIgKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5kZXggYjgzNTNhMC4uNzczYjcyZiAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysrIGIvY29uZmlndXJlLmFjCitAQCAtMzExLDcgKzMxMSwxMCBAQCBmaQorIEFDX1NVQlNUKEFMU0FfREVQTElCUykKKyAKKyBkbmwgQ2hlY2sgZm9yIGhlYWRlcnMKKy1BQ19DSEVDS19IRUFERVJTKFt3b3JkZXhwLmggZW5kaWFuLmggc3lzL2VuZGlhbi5oXSkKKytBQ19DSEVDS19IRUFERVJTKFt3b3JkZXhwLmggZW5kaWFuLmggc3lzL2VuZGlhbi5oXSwKKysgIGRubCBNYWtlIHN1cmUgd29yZGV4cCBpcyBzdXBwb3J0ZWQgYnkgdGhlIEMgbGlicmFyeQorKyAgQUNfQ0hFQ0tfRlVOQ1MoW3dvcmRleHBdKQorKykKKyAKKyBkbmwgQ2hlY2sgZm9yIHJlc21nciBzdXBwb3J0Li4uCisgQUNfTVNHX0NIRUNLSU5HKGZvciByZXNtZ3Igc3VwcG9ydCkKK2RpZmYgLS1naXQgYS9zcmMvdXNlcmZpbGUuYyBiL3NyYy91c2VyZmlsZS5jCitpbmRleCAzYTczODM2Li5iOGNlODA5IDEwMDY0NAorLS0tIGEvc3JjL3VzZXJmaWxlLmMKKysrKyBiL3NyYy91c2VyZmlsZS5jCitAQCAtMzIsNyArMzIsNyBAQAorICAqIHN0b3JlcyB0aGUgZmlyc3QgbWF0Y2hpbmUgb25lLiAgVGhlIHJldHVybmVkIHN0cmluZyBpcyBzdHJkdXAnZWQuCisgICovCisgCistI2lmZGVmIEhBVkVfV09SREVYUF9ICisrI2lmIChkZWZpbmVkKEhBVkVfV09SREVYUF9IKSAmJiBkZWZpbmVkKEhBVkVfV09SREVYUCkpCisgI2luY2x1ZGUgPHdvcmRleHAuaD4KKyAjaW5jbHVkZSA8YXNzZXJ0Lmg+CisgaW50IHNuZF91c2VyX2ZpbGUoY29uc3QgY2hhciAqZmlsZSwgY2hhciAqKnJlc3VsdCkKKy0tIAorMS45LjEKKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLWxpYl8xLjAuMjkuYmIgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtbGliXzEuMC4yOS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzBmNDI3Ci0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLWxpYl8xLjAuMjkuYmIKQEAgLTAsMCArMSw1MSBAQAorU1VNTUFSWSA9ICJBTFNBIHNvdW5kIGxpYnJhcnkiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmFsc2EtcHJvamVjdC5vcmciCitCVUdUUkFDS0VSID0gImh0dHBzOi8vYnVndHJhY2suYWxzYS1wcm9qZWN0Lm9yZy9hbHNhLWJ1Zy9sb2dpbl9wYWdlLnBocCIKK1NFQ1RJT04gPSAibGlicy9tdWx0aW1lZGlhIgorTElDRU5TRSA9ICJMR1BMdjIuMSAmIEdQTHYyKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTdmYmMzMzgzMDlhYzM4ZmVmY2Q2NGIwNGJiOTAzZTM0IFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL3NyYy9zb2NrZXQuYztiZWdpbmxpbmU9MTtlbmRsaW5lPTI2O21kNT0xMWZmODlhOGE3YTRhNjkwYTVjNzhlZmZlODE1OTU0NSIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUgbmF0aXZlc2RrIgorCisjIGNvbmZpZ3VyZS5pbiBzZXRzIC1EX19hcm1fXyBvbiB0aGUgY29tbWFuZCBsaW5lIGZvciBhbnkgYXJtIHN5c3RlbQorIyAobm90IGp1c3QgdGhvc2Ugd2l0aCB0aGUgQVJNIGluc3RydWN0aW9uIHNldCksIHRoaXMgc2hvdWxkIGJlIHJlbW92ZWQsCisjIChvciByZXBsYWNlZCBieSBhIHBlcm1pdHRlZCAjZGVmaW5lKS4KKyNGSVhNRTogcmVtb3ZlIHRoZSBmb2xsb3dpbmcKK0FSTV9JTlNUUlVDVElPTl9TRVQgPSAiYXJtIgorCitTUkNfVVJJID0gImZ0cDovL2Z0cC5hbHNhLXByb2plY3Qub3JnL3B1Yi9saWIvJHtCUH0udGFyLmJ6MiBcCisgICAgICAgICAgIGZpbGU6Ly9DaGVjay1pZi13b3JkZXhwLWZ1bmN0aW9uLWlzLXN1cHBvcnRlZC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLWJ1aWxkLURvLW5vdC10cnktdG8tZGV0ZWN0LWNyb3NzLWNvbXBpbGVyLnBhdGNoIFwKKyIKK1NSQ19VUklbbWQ1c3VtXSA9ICJkZTY3ZTBlY2E3MjQ3NGQ2YjExMjEwMzdkYWZlMTAyNCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI3MzA0M2MzNWViOTYzNmJlMGY0YWY2YTI0MDIzNWMyMTNmMTJhMjVmZWIxZjA0YWVlYWM4Y2I3ZTMwZmNiZGQwIgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworcmVxdWlyZSBhbHNhLWZwdS5pbmMKK0VYVFJBX09FQ09ORiArPSAiJHtAZ2V0X2Fsc2FfZnB1X3NldHRpbmcoYmIsIGQpfSAiCisKK0VYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtcHl0aG9uIgorCitFWFRSQV9PRUNPTkZfYXBwZW5kX2xpYmMtdWNsaWJjID0gIiAtLXdpdGgtdmVyc2lvbmVkPW5vICIKKworUEFDS0FHRVMgPSsgImFsc2Etc2VydmVyIGxpYmFzb3VuZCBhbHNhLWNvbmYtYmFzZSBhbHNhLWNvbmYgYWxzYS1kb2MiCitGSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9LyR7QlBOfS9zbWl4ZXIvKi5zbyIKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9LyR7QlBOfS9zbWl4ZXIvLmRlYnVnIgorRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vJHtCUE59L3NtaXhlci8qLmxhIgorRklMRVNfbGliYXNvdW5kID0gIiR7bGliZGlyfS9saWJhc291bmQuc28uKiIKK0ZJTEVTX2Fsc2Etc2VydmVyID0gIiR7YmluZGlyfS8qIgorRklMRVNfYWxzYS1jb25mID0gIiR7ZGF0YWRpcn0vYWxzYS8iCitGSUxFU19hbHNhLWNvbmYtYmFzZSA9ICJcCiske2RhdGFkaXJ9L2Fsc2EvYWxzYS5jb25mIFwKKyR7ZGF0YWRpcn0vYWxzYS9jYXJkcy9hbGlhc2VzLmNvbmYgXAorJHtkYXRhZGlyfS9hbHNhL3BjbS9kZWZhdWx0LmNvbmYgXAorJHtkYXRhZGlyfS9hbHNhL3BjbS9kbWl4LmNvbmYgXAorJHtkYXRhZGlyfS9hbHNhL3BjbS9kc25vb3AuY29uZiIKKworUkRFUEVORFNfbGliYXNvdW5kID0gImFsc2EtY29uZi1iYXNlIGFsc2EtY29uZiIKKyMgdXBncmFkZSBwYXRoCitSUFJPVklERVNfJHtQTn0tZGV2ID0gImFsc2EtZGV2IgorUlJFUExBQ0VTXyR7UE59LWRldiA9ICJhbHNhLWRldiIKK1JDT05GTElDVFNfJHtQTn0tZGV2ID0gImFsc2EtZGV2IgpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLXBsdWdpbnMvMDAwMS1hcmNhbS1hdi1JbmNsdWRlLXN5cy1zZWxlY3QuaC1mb3ItZmRfc2V0LWRlZmluaXRpb24ucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtcGx1Z2lucy8wMDAxLWFyY2FtLWF2LUluY2x1ZGUtc3lzLXNlbGVjdC5oLWZvci1mZF9zZXQtZGVmaW5pdGlvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzBjNzJjCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLXBsdWdpbnMvMDAwMS1hcmNhbS1hdi1JbmNsdWRlLXN5cy1zZWxlY3QuaC1mb3ItZmRfc2V0LWRlZmluaXRpb24ucGF0Y2gKQEAgLTAsMCArMSwzMSBAQAorRnJvbSBkMjhjNjU1YmUzYWM0ZmNiODAyNDU1NTk4Mzg4NGY4MzJlZTE4Nzg3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS2hlbSBSYWogPHJhai5raGVtQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMjkgTWF5IDIwMTUgMTU6MTc6MzAgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gYXJjYW0tYXY6IEluY2x1ZGUgc3lzL3NlbGVjdC5oIGZvciBmZF9zZXQgZGVmaW5pdGlvbgorCitmaXhlcyBidWlsZCBlcnJvcnMgb24gbm9uLWdsaWJjIGJhc2VkIHN5c3RlbXMKKworYXJjYW0tYXYvYXJjYW1fYXYuYzozODk6MjogZXJyb3I6IHVua25vd24gdHlwZSBuYW1lICdmZF9zZXQnCisKK1NpZ25lZC1vZmYtYnk6IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CistLS0KK1Vwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkCisKKyBhcmNhbS1hdi9hcmNhbV9hdi5jIHwgMSArCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCisKK2RpZmYgLS1naXQgYS9hcmNhbS1hdi9hcmNhbV9hdi5jIGIvYXJjYW0tYXYvYXJjYW1fYXYuYworaW5kZXggMDQ5MWZjNi4uZmZmOTZmOSAxMDA2NDQKKy0tLSBhL2FyY2FtLWF2L2FyY2FtX2F2LmMKKysrKyBiL2FyY2FtLWF2L2FyY2FtX2F2LmMKK0BAIC0zMSw2ICszMSw3IEBACisgI2luY2x1ZGUgPHVuaXN0ZC5oPgorIAorICNpbmNsdWRlIDxzeXMvaXBjLmg+CisrI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4KKyAjaW5jbHVkZSA8c3lzL3NobS5oPgorICNpbmNsdWRlIDxzeXMvc3RhdC5oPgorICNpbmNsdWRlIDxzeXMvc3RhdC5oPgorLS0gCisyLjEuNAorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtcGx1Z2lucy8wMDAxLWluY2x1ZGUtc3BlZXhkc3BfdHlwZXMuaC1ub3Qtc3BlZXhfdHlwZXMuaC5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS1wbHVnaW5zLzAwMDEtaW5jbHVkZS1zcGVleGRzcF90eXBlcy5oLW5vdC1zcGVleF90eXBlcy5oLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1MTk5ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtcGx1Z2lucy8wMDAxLWluY2x1ZGUtc3BlZXhkc3BfdHlwZXMuaC1ub3Qtc3BlZXhfdHlwZXMuaC5wYXRjaApAQCAtMCwwICsxLDcxIEBACitGcm9tIGNhNDFlOTZhNDlhNTY4MTI4MzU0ZjY1ZjkwYTc2OWRlYmY1NDM1ZjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBUYW51IEthc2tpbmVuIDx0YW51Lmthc2tpbmVuQGxpbnV4LmludGVsLmNvbT4KK0RhdGU6IFRodSwgOSBKdWwgMjAxNSAxMTo1ODoxMiArMDMwMAorU3ViamVjdDogW1BBVENIXSBpbmNsdWRlIHNwZWV4ZHNwX3R5cGVzLmgsIG5vdCBzcGVleF90eXBlcy5oCisKK1NwZWV4ZHNwIHdhcyBzZXBhcmF0ZWQgZnJvbSBzcGVleCBpbiAxLjJyYzIuIHNwZWV4X3R5cGVzLmggaXMgbm90CitzaGlwcGVkIGJ5IHNwZWV4ZHNwLCBzbyBhbHNhLXBsdWdpbnMgc2hvdWxkbid0IHVzZSB0aGF0IGZpbGUuIHNwZWV4ZHNwCitoYXMgc3BlZXhkc3BfdHlwZXMuaCwgd2hpY2ggaGFzIHRoZSBzYW1lIGNvbnRlbnRzIGFzIHNwZWV4X3R5cGVzLmguCisKK3NwZWV4ZHNwX3R5cGVzLmggaXMgYSBuZXcgZmlsZSBpbnRyb2R1Y2VkIGluIDEuMnJjMiwgc28gdGhpcyBjaGFuZ2UKK2J1bXBzIHRoZSBtaW5pbXVtIHN1cHBvcnRlZCBzcGVleGRzcCB2ZXJzaW9uLiBUaGUgdmVyc2lvbiBjaGVjayBpbgorY29uZmlndXJlLmFjIHdpbGwgYWN0dWFsbHkgYnJlYWsgaWYgc3BlZXhkc3AgMS4yIGV2ZXIgZ2V0cyByZWxlYXNlZCwKK2JlY2F1c2UgcGtnLWNvbmZpZyB0aGlua3MgdGhhdCAiMS4yIiA8ICIxLjJyYzIiLCBidXQgSSB0aGluayBpdCdzCit1c2VmdWwgdG8gZmFpbCBpZiB0aGUgaW5zdGFsbGVkIHNwZWV4ZHNwIHZlcnNpb24gaXMgMS4ycmMxICh3aGljaCBJCitiZWxpZXZlIGlzIHZlcnkgY29tbW9uIG9uIGN1cnJlbnQgZGlzdHJpYnV0aW9ucykuIElmIGEgbm9uLXJjIHZlcnNpb24KK29mIHNwZWV4ZHNwIHdpbGwgZXZlciBnZXQgcmVsZWFzZWQsIEkgaG9wZSB2ZXJzaW9uIG51bWJlciAxLjIgd2lsbCBiZQorc2tpcHBlZCBmb3IgdGhpcyByZWFzb24uIChBIG5vbi1yYyB2ZXJzaW9uIHNlZW1zIHVubGlrZWx5LCBzaW5jZQorMS4ycmMxIHdhcyByZWxlYXNlZCB5ZWFycyBhZ28sIHNvIGl0J3MgcHJldHR5IGxpa2VseSB0aGF0IHRoZSBwcm9qZWN0CitpcyBzdHVjayBvbiBzbyBjYWxsZWQgInJlbGVhc2UgY2FuZGlkYXRlcyIgZm9yZXZlci4uLikKKworVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgKGh0dHA6Ly90aHJlYWQuZ21hbmUub3JnL2dtYW5lLmxpbnV4LmFsc2EuZGV2ZWwvMTQxMTQ5KQorCitTaWduZWQtb2ZmLWJ5OiBUYW51IEthc2tpbmVuIDx0YW51Lmthc2tpbmVuQGxpbnV4LmludGVsLmNvbT4KKy0tLQorIGNvbmZpZ3VyZS5hYyAgICAgICAgICB8IDIgKy0KKyBwcGgvYXJjaC5oICAgICAgICAgICAgfCAyICstCisgcHBoL3NwZWV4X3Jlc2FtcGxlci5oIHwgMiArLQorIDMgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCA5MDJhNmQ3Li5jNTU0ZDIyIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC0xMDgsNyArMTA4LDcgQEAgQUNfU1VCU1QoQVZDT0RFQ19DRkxBR1MpCisgQUNfU1VCU1QoQVZDT0RFQ19MSUJTKQorIEFDX1NVQlNUKEFWQ09ERUNfSEVBREVSKQorIAorLVBLR19DSEVDS19NT0RVTEVTKHNwZWV4ZHNwLCBbc3BlZXhkc3AgPj0gMS4yXSwgW0hBVkVfU1BFRVhEU1A9InllcyJdLCBbSEFWRV9TUEVFWERTUD0iIl0pCisrUEtHX0NIRUNLX01PRFVMRVMoc3BlZXhkc3AsIFtzcGVleGRzcCA+PSAxLjJyYzJdLCBbSEFWRV9TUEVFWERTUD0ieWVzIl0sIFtIQVZFX1NQRUVYRFNQPSIiXSkKKyBBTV9DT05ESVRJT05BTChIQVZFX1NQRUVYRFNQLCB0ZXN0ICIkSEFWRV9TUEVFWERTUCIgPSAieWVzIikKKyAKKyBBQ19BUkdfV0lUSChbc3BlZXhdLAorZGlmZiAtLWdpdCBhL3BwaC9hcmNoLmggYi9wcGgvYXJjaC5oCitpbmRleCBlMmQ3MzFhLi5hMDdkMGQ5IDEwMDY0NAorLS0tIGEvcHBoL2FyY2guaAorKysrIGIvcHBoL2FyY2guaAorQEAgLTM2LDcgKzM2LDcgQEAKKyAjZGVmaW5lIEFSQ0hfSAorIAorICNpZm5kZWYgT1VUU0lERV9TUEVFWAorLSNpbmNsdWRlICJzcGVleC9zcGVleF90eXBlcy5oIgorKyNpbmNsdWRlICJzcGVleC9zcGVleGRzcF90eXBlcy5oIgorICNlbmRpZgorIAorICNkZWZpbmUgQUJTKHgpICgoeCkgPCAwID8gKC0oeCkpIDogKHgpKSAgICAgIC8qKjwgQWJzb2x1dGUgaW50ZWdlciB2YWx1ZS4gKi8KK2RpZmYgLS1naXQgYS9wcGgvc3BlZXhfcmVzYW1wbGVyLmggYi9wcGgvc3BlZXhfcmVzYW1wbGVyLmgKK2luZGV4IGM0NGZiY2QuLmFhODVhYmIgMTAwNjQ0CistLS0gYS9wcGgvc3BlZXhfcmVzYW1wbGVyLmgKKysrKyBiL3BwaC9zcGVleF9yZXNhbXBsZXIuaAorQEAgLTgyLDcgKzgyLDcgQEAKKyAgICAgICAKKyAjZWxzZSAvKiBPVVRTSURFX1NQRUVYICovCisgCistI2luY2x1ZGUgInNwZWV4L3NwZWV4X3R5cGVzLmgiCisrI2luY2x1ZGUgInNwZWV4L3NwZWV4ZHNwX3R5cGVzLmgiCisgCisgI2VuZGlmIC8qIE9VVFNJREVfU1BFRVggKi8KKyAKKy0tIAorMS45LjMKKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLXBsdWdpbnNfMS4wLjI5LmJiIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLXBsdWdpbnNfMS4wLjI5LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5Mjg2MTgKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtcGx1Z2luc18xLjAuMjkuYmIKQEAgLTAsMCArMSwxMDUgQEAKK0RFU0NSSVBUSU9OID0gIkFMU0EgUGx1Z2lucyIKK0hPTUVQQUdFID0gImh0dHA6Ly9hbHNhLXByb2plY3Qub3JnIgorU0VDVElPTiA9ICJtdWx0aW1lZGlhIgorCisjIFRoZSBwcmltYXJ5IGxpY2Vuc2Ugb2YgYWxzYS1wbHVnaW5zIGlzIExHUEx2Mi4xLgorIworIyBtNC9hdHRyaWJ1dGVzLm00IGlzIGxpY2Vuc2VkIHVuZGVyIEdQTHYyKy4gbTQvYXR0cmlidXRlcy5tNCBpcyBwYXJ0IG9mIHRoZQorIyBidWlsZCBzeXN0ZW0sIGFuZCBkb2Vzbid0IGFmZmVjdCB0aGUgbGljZW5zaW5nIG9mIHRoZSBidWlsZCByZXN1bHQuCisjCisjIFRoZSBzYW1wbGVyYXRlIHBsdWdpbiBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciBHUEx2MisgdG8gYmUgY29uc2lzdGVudAorIyB3aXRoIHRoZSBsaWJzYW1wbGVyYXRlIGxpY2Vuc2UuCitMSUNFTlNFID0gIkxHUEx2Mi4xICYgR1BMdjIrIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJcCisgICAgICAgIGZpbGU6Ly9DT1BZSU5HO21kNT03ZmJjMzM4MzA5YWMzOGZlZmNkNjRiMDRiYjkwM2UzNCBcCisgICAgICAgIGZpbGU6Ly9DT1BZSU5HLkdQTDttZDU9OTRkNTVkNTEyYTliYTM2Y2FhOWI3ZGYwNzliYWUxOWYgXAorICAgICAgICBmaWxlOi8vbTQvYXR0cmlidXRlcy5tNDtlbmRsaW5lPTMzO21kNT1iMjU5NThkYTQ0YzAyMjMxZTM2NDFmMWJjY2VmNTNlYiBcCisgICAgICAgIGZpbGU6Ly9yYXRlL3JhdGVfc2FtcGxlcmF0ZS5jO2VuZGxpbmU9MTk7bWQ1PWYzZDNjZTBiMTg5ODQ2YTQ4NjUxN2Q5N2E4NTRiMjc2IFwKKyIKKworU1JDX1VSSSA9ICJmdHA6Ly9mdHAuYWxzYS1wcm9qZWN0Lm9yZy9wdWIvcGx1Z2lucy8ke0JQfS50YXIuYnoyIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtYXJjYW0tYXYtSW5jbHVkZS1zeXMtc2VsZWN0LmgtZm9yLWZkX3NldC1kZWZpbml0aW9uLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtaW5jbHVkZS1zcGVleGRzcF90eXBlcy5oLW5vdC1zcGVleF90eXBlcy5oLnBhdGNoIFwKKyIKK1NSQ19VUklbbWQ1c3VtXSA9ICJhNjY3OTdiNDQ3MWUzY2JlOTY1NzUyMDdiZmJlMjUyYyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICIzMjVkODVjYWMyODVmNjMyYjgzZTAxOTFhZTNmMzQ4YmFkMDNjMWYwMDdiOTM3MDQyZjE2NGFiYjgxZWE2NTMyIgorCitERVBFTkRTICs9ICJhbHNhLWxpYiIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCisKK1BBQ0tBR0VDT05GSUcgPz89ICJcCisgICAgICAgIHNhbXBsZXJhdGUgXAorICAgICAgICBzcGVleGRzcCBcCisgICAgICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAncHVsc2VhdWRpbycsICdwdWxzZWF1ZGlvJywgJycsIGQpfSBcCisiCitQQUNLQUdFQ09ORklHW2F2Y29kZWNdID0gIi0tZW5hYmxlLWF2Y29kZWMsLS1kaXNhYmxlLWF2Y29kZWMsbGliYXYiCitQQUNLQUdFQ09ORklHW2phY2tdID0gIi0tZW5hYmxlLWphY2ssLS1kaXNhYmxlLWphY2ssamFjayIKK1BBQ0tBR0VDT05GSUdbbWFlbW8tcGx1Z2luXSA9ICItLWVuYWJsZS1tYWVtby1wbHVnaW4sLS1kaXNhYmxlLW1hZW1vLXBsdWdpbiIKK1BBQ0tBR0VDT05GSUdbbWFlbW8tcmVzb3VyY2UtbWFuYWdlcl0gPSAiLS1lbmFibGUtbWFlbW8tcmVzb3VyY2UtbWFuYWdlciwtLWRpc2FibGUtbWFlbW8tcmVzb3VyY2UtbWFuYWdlcixkYnVzIgorUEFDS0FHRUNPTkZJR1twdWxzZWF1ZGlvXSA9ICItLWVuYWJsZS1wdWxzZWF1ZGlvLC0tZGlzYWJsZS1wdWxzZWF1ZGlvLHB1bHNlYXVkaW8iCitQQUNLQUdFQ09ORklHW3NhbXBsZXJhdGVdID0gIi0tZW5hYmxlLXNhbXBsZXJhdGUsLS1kaXNhYmxlLXNhbXBsZXJhdGUsbGlic2FtcGxlcmF0ZTAiCitQQUNLQUdFQ09ORklHW3NwZWV4ZHNwXSA9ICItLXdpdGgtc3BlZXg9bGliLC0td2l0aC1zcGVleD1ubyxzcGVleGRzcCIKKworUEFDS0FHRVMgKz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3B1bHNlYXVkaW8nLCAnYWxzYS1wbHVnaW5zLXB1bHNlYXVkaW8tY29uZicsICcnLCBkKX0iCisKK1BBQ0tBR0VTX0RZTkFNSUMgPSAiXmxpYmFzb3VuZC1tb2R1bGUtLioiCisKKyMgVGhlIGFsc2EtcGx1Z2lucyBwYWNrYWdlIGRvZXNuJ3QgaXRzZWxmIGNvbnRhaW4gYW55dGhpbmcsIGl0IGp1c3QgZGVwZW5kcyBvbgorIyBhbGwgYnVpbHQgcGx1Z2lucy4KK0FMTE9XX0VNUFRZXyR7UE59ID0gIjEiCisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworCXJtICR7RH0ke2xpYmRpcn0vYWxzYS1saWIvKi5sYQorCisJIyBXZSB1c2UgdGhlIGV4YW1wbGUgYXMgaXMsIHNvIGp1c3QgZHJvcCB0aGUgLmV4YW1wbGUgc3VmZml4LgorCWlmIFsgIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3B1bHNlYXVkaW8nLCAneWVzJywgJ25vJywgZCl9IiA9ICJ5ZXMiIF07IHRoZW4KKwkJbXYgJHtEfSR7ZGF0YWRpcn0vYWxzYS9hbHNhLmNvbmYuZC85OS1wdWxzZWF1ZGlvLWRlZmF1bHQuY29uZi5leGFtcGxlICR7RH0ke2RhdGFkaXJ9L2Fsc2EvYWxzYS5jb25mLmQvOTktcHVsc2VhdWRpby1kZWZhdWx0LmNvbmYKKwlmaQorfQorCitweXRob24gcG9wdWxhdGVfcGFja2FnZXNfcHJlcGVuZCgpIHsKKyAgICBwbHVnaW5kaXIgPSBiYi5kYXRhLmV4cGFuZCgnJHtsaWJkaXJ9L2Fsc2EtbGliLycsIGQpCisgICAgcGFja2FnZXMgPSAiICIuam9pbihkb19zcGxpdF9wYWNrYWdlcyhkLCBwbHVnaW5kaXIsICdebGliYXNvdW5kX21vZHVsZV8oLiopXC5zbyQnLCAnbGliYXNvdW5kLW1vZHVsZS0lcycsICdBbHNhIHBsdWdpbiBmb3IgJXMnLCBleHRyYV9kZXBlbmRzPScnKSkKKyAgICBkLnNldFZhcigiUkRFUEVORFNfYWxzYS1wbHVnaW5zIiwgcGFja2FnZXMpCit9CisKKyMgVGhlIHJhdGUgcGx1Z2lucyBjcmVhdGUgc29tZSBzeW1saW5rcy4gRm9yIGV4YW1wbGUsIHRoZSBzYW1wbGVyYXRlIHBsdWdpbgorIyBjcmVhdGVzIHRoZXNlIGxpbmtzIHRvIHRoZSBtYWluIHBsdWdpbiBmaWxlOgorIworIyAgIGxpYmFzb3VuZF9tb2R1bGVfcmF0ZV9zYW1wbGVyYXRlX2Jlc3Quc28KKyMgICBsaWJhc291bmRfbW9kdWxlX3JhdGVfc2FtcGxlcmF0ZV9saW5lYXIuc28KKyMgICBsaWJhc291bmRfbW9kdWxlX3JhdGVfc2FtcGxlcmF0ZV9tZWRpdW0uc28KKyMgICBsaWJhc291bmRfbW9kdWxlX3JhdGVfc2FtcGxlcmF0ZV9vcmRlci5zbworIworIyBUaGUgb3RoZXIgcmF0ZSBwbHVnaW5zIGNyZWF0ZSBzaW1pbGFyIGxpbmtzLiBXZSBoYXZlIHRvIGFkZCB0aGUgbGlua3MgdG8KKyMgRklMRVMgbWFudWFsbHksIGJlY2F1c2UgZG9fc3BsaXRfcGFja2FnZXMoKSBza2lwcyB0aGUgbGlua3MgKHdoaWNoIGlzIGdvb2QsCisjIGJlY2F1c2Ugd2Ugd291bGRuJ3Qgd2FudCBkb19zcGxpdF9wYWNrYWdlcygpIHRvIGNyZWF0ZSBzZXBhcmF0ZSBwYWNrYWdlcyBmb3IKKyMgdGhlIHN5bWxpbmtzKS4KKyMKKyMgVGhlIHN5bWxpbmtzIGNhdXNlIFFBIGVycm9ycywgYmVjYXVzZSB1c3VhbGx5IGl0J3MgYSBidWcgaWYgYSBub24KKyMgLWRldi8tZGJnLy1uYXRpdmVzZGsgcGFja2FnZSBjb250YWlucyBsaW5rcyB0byAuc28gZmlsZXMsIGJ1dCBpbiB0aGlzIGNhc2UKKyMgdGhlIGVycm9ycyBhcmUgZmFsc2UgcG9zaXRpdmVzLCBzbyB3ZSBkaXNhYmxlIHRoZSBRQSBjaGVja3MuCitGSUxFU18ke01MUFJFRklYfWxpYmFzb3VuZC1tb2R1bGUtcmF0ZS1sYXZjcmF0ZSArPSAiJHtsaWJkaXJ9L2Fsc2EtbGliLypyYXRlX2xhdmNyYXRlXyouc28iCitGSUxFU18ke01MUFJFRklYfWxpYmFzb3VuZC1tb2R1bGUtcmF0ZS1zYW1wbGVyYXRlICs9ICIke2xpYmRpcn0vYWxzYS1saWIvKnJhdGVfc2FtcGxlcmF0ZV8qLnNvIgorRklMRVNfJHtNTFBSRUZJWH1saWJhc291bmQtbW9kdWxlLXJhdGUtc3BlZXhyYXRlICs9ICIke2xpYmRpcn0vYWxzYS1saWIvKnJhdGVfc3BlZXhyYXRlXyouc28iCitJTlNBTkVfU0tJUF8ke01MUFJFRklYfWxpYmFzb3VuZC1tb2R1bGUtcmF0ZS1sYXZjcmF0ZSA9ICJkZXYtc28iCitJTlNBTkVfU0tJUF8ke01MUFJFRklYfWxpYmFzb3VuZC1tb2R1bGUtcmF0ZS1zYW1wbGVyYXRlID0gImRldi1zbyIKK0lOU0FORV9TS0lQXyR7TUxQUkVGSVh9bGliYXNvdW5kLW1vZHVsZS1yYXRlLXNwZWV4cmF0ZSA9ICJkZXYtc28iCisKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L2Fsc2EtbGliLy5kZWJ1ZyIKKworIyA1MC1wdWxzZWF1ZGlvLmNvbmYgZGVmaW5lcyBhIGRldmljZSBuYW1lZCAicHVsc2UiIHRoYXQgYXBwbGljYXRpb25zIGNhbiB1c2UKKyMgaWYgdGhleSBleHBsaWNpdGx5IHdhbnQgdG8gdXNlIHRoZSBQdWxzZUF1ZGlvIHBsdWdpbi4KKyMgOTktcHVsc2VhdWRpby1kZWZhdWx0LmNvbmYgY29uZmlndXJlcyB0aGUgImRlZmF1bHQiIGRldmljZSB0byB1c2UgdGhlCisjIFB1bHNlQXVkaW8gcGx1Z2luLgorRklMRVNfJHtQTn0tcHVsc2VhdWRpby1jb25mICs9ICJcCisgICAgICAgICR7ZGF0YWRpcn0vYWxzYS9hbHNhLmNvbmYuZC81MC1wdWxzZWF1ZGlvLmNvbmYgXAorICAgICAgICAke2RhdGFkaXJ9L2Fsc2EvYWxzYS5jb25mLmQvOTktcHVsc2VhdWRpby1kZWZhdWx0LmNvbmYgXAorIgorCitSREVQRU5EU18ke1BOfS1wdWxzZWF1ZGlvLWNvbmYgKz0gIlwKKyAgICAgICAgbGliYXNvdW5kLW1vZHVsZS1jb25mLXB1bHNlIFwKKyAgICAgICAgbGliYXNvdW5kLW1vZHVsZS1jdGwtcHVsc2UgXAorICAgICAgICBsaWJhc291bmQtbW9kdWxlLXBjbS1wdWxzZSBcCisiCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtdG9vbHMvMDAwMS1hczEwazEtTWFrZS1vdXRwdXRfdHJhbV9saW5lLXN0YXRpYy1pbmxpbmUucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtdG9vbHMvMDAwMS1hczEwazEtTWFrZS1vdXRwdXRfdHJhbV9saW5lLXN0YXRpYy1pbmxpbmUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDA0OWEzMAotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS10b29scy8wMDAxLWFzMTBrMS1NYWtlLW91dHB1dF90cmFtX2xpbmUtc3RhdGljLWlubGluZS5wYXRjaApAQCAtMCwwICsxLDMxIEBACitGcm9tIDFlNTkyNmRmNzRhMzVmZTJjZDkwYmM1OWY1MjY0YTg3MTVjOTQwNDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorRGF0ZTogTW9uLCA3IFNlcCAyMDE1IDA4OjE2OjU5ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIGFzMTBrMTogTWFrZSBvdXRwdXRfdHJhbV9saW5lKCkgc3RhdGljIGlubGluZQorCitUaGUgZnVuY3Rpb24gaXMgbm90IHVzZWQgaW4gYW55IG90aGVyIGZpbGUsIGl0cyBiZXR0ZXIgdG8gbWFrZSBpdCBzdGF0aWMKK2lubGluZSBzbyBjb21waWxlciBoYXMgYSBiZXR0ZXIgY2hhbmNlIG9mIG9wdGltaXppbmcgaGVyZQorCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorLS0tCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworIGFzMTBrMS9hczEwazEuYyB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2FzMTBrMS9hczEwazEuYyBiL2FzMTBrMS9hczEwazEuYworaW5kZXggOTZhZjBjMy4uZDA3NjZmZCAxMDA2NDQKKy0tLSBhL2FzMTBrMS9hczEwazEuYworKysrIGIvYXMxMGsxL2FzMTBrMS5jCitAQCAtMzY2LDcgKzM2Niw3IEBAIHZvaWQgYXNfZXhpdChjb25zdCBjaGFyICptZXNzYWdlKQorIAlleGl0KDEpOworIH0KKyAKKy1pbmxpbmUgdm9pZCBvdXRwdXRfdHJhbV9saW5lKCBzdHJ1Y3QgbGlzdF9oZWFkICpsaW5lX2hlYWQsIGludCB0eXBlKXsKKytzdGF0aWMgaW5saW5lIHZvaWQgb3V0cHV0X3RyYW1fbGluZSggc3RydWN0IGxpc3RfaGVhZCAqbGluZV9oZWFkLCBpbnQgdHlwZSl7CisgICAgICAgICAKKyAgICAgICAgIHN0cnVjdCB0cmFtICp0cmFtX3N5bTsKKyAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5OworLS0gCisyLjUuMQorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtdG9vbHMvYXV0b3Rvb2xzLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLXRvb2xzL2F1dG90b29scy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTM5MWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLXRvb2xzL2F1dG90b29scy5wYXRjaApAQCAtMCwwICsxLDMyIEBACitBZGQgcGFyYW1ldGVycyB0byBhdXRvcmVjb25mIHRvIHN1cHBvcnQgY3Jvc3MgY29tcGlsZS4KK1JlbW92ZSBzb21lIHN1Yi1jb21wb25lbnRzIHdoaWNoIG5lZWRzIGZ1cnRoZXIgcmVjaXBlIHN1cHBvcnQuCisKK1NpZ25lZC1vZmYtYnk6IERvbmd4aWFvIFh1IDxkb25neGlhby54dUBpbnRlbC5jb20+CisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZSBbY29uZmlndXJhdGlvbl0KKworZGlmZiAtcnVOIGFsc2EtdG9vbHMtMS4wLjI0LjEtb3JpZy8vbGQxMGsxL2dpdGNvbXBpbGUgYWxzYS10b29scy0xLjAuMjQuMS9sZDEwazEvZ2l0Y29tcGlsZQorLS0tIGFsc2EtdG9vbHMtMS4wLjI0LjEtb3JpZy8vbGQxMGsxL2dpdGNvbXBpbGUJMjAxMS0wNy0wNiAxMToyNzo0MC4yMjc2NjUwMDIgKzA4MDAKKysrKyBhbHNhLXRvb2xzLTEuMC4yNC4xL2xkMTBrMS9naXRjb21waWxlCTIwMTEtMDctMTQgMTM6MjY6MTguMDE3NjY1MDA0ICswODAwCitAQCAtMSw2ICsxLDYgQEAKKyAjIS9iaW4vYmFzaAorIAorLWF1dG9yZWNvbmYgLWZpIHx8IGV4aXQgMQorK2F1dG9yZWNvbmYgJEFDTE9DQUxfRkxBR1MgLWZpIHx8IGV4aXQgMQorIGV4cG9ydCBDRkxBR1M9Jy1PMiAtV2FsbCAtcGlwZSAtZycKKyBlY2hvICJDRkxBR1M9JENGTEFHUyIKKyBlY2hvICIuL2NvbmZpZ3VyZSAkQCIKK2RpZmYgLXJ1TiBhbHNhLXRvb2xzLTEuMC4yNC4xLW9yaWcvL01ha2VmaWxlIGFsc2EtdG9vbHMtMS4wLjI0LjEvTWFrZWZpbGUKKy0tLSBhbHNhLXRvb2xzLTEuMC4yNC4xLW9yaWcvL01ha2VmaWxlCTIwMTEtMDctMDYgMTE6Mjc6NDAuMjA3NjY1MDAwICswODAwCisrKysgYWxzYS10b29scy0xLjAuMjQuMS9NYWtlZmlsZQkyMDExLTA3LTE0IDE1OjA4OjA4Ljg3NzY2NTAwOSArMDgwMAorQEAgLTEsOCArMSw4IEBACisgVkVSU0lPTiA9IDEuMC4yOQorIFRPUCA9IC4KKy1TVUJESVJTID0gYXMxMGsxIGVudnkyNGNvbnRyb2wgaGRzcGxvYWRlciBoZHNwY29uZiBoZHNwbWl4ZXIgXAorK1NVQkRJUlMgPSBhczEwazEgZW52eTI0Y29udHJvbCBcCisgCSAgbWl4YXJ0bG9hZGVyIHBjeGhybG9hZGVyIHJtZWRpZ2ljb250cm9sIHNiMTZfY3NwIHNlcSBzc2NhcGVfY3RsIFwKKy0JICB1czQyOGNvbnRyb2wgdXN4Mnlsb2FkZXIgdnhsb2FkZXIgZWNob21peGVyIGxkMTBrMSBxbG8xMGsxIFwKKysJICB1czQyOGNvbnRyb2wgdXN4Mnlsb2FkZXIgdnhsb2FkZXIgZWNob21peGVyIFwKKyAJICBod21peHZvbHVtZSBoZGFqYWNrcmV0YXNrIGhkYS12ZXJiIGhkYWphY2tzZW5zZXRlc3QKKyAKKyBhbGw6CmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtdG9vbHMvZ2l0Y29tcGlsZV9oZGFqYWNrc2Vuc2V0ZXN0IGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLXRvb2xzL2dpdGNvbXBpbGVfaGRhamFja3NlbnNldGVzdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41ODMyOGJkCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLXRvb2xzL2dpdGNvbXBpbGVfaGRhamFja3NlbnNldGVzdApAQCAtMCwwICsxLDEzIEBACisjIS9iaW4vYmFzaAorCithY2xvY2FsICRBQ0xPQ0FMX0ZMQUdTIHx8IGV4aXQgMQorYXV0b21ha2UgLS1mb3JlaWduIC0tYWRkLW1pc3NpbmcgfHwgZXhpdCAxCithdXRvY29uZiB8fCBleGl0IDEKK2V4cG9ydCBDRkxBR1M9Jy1PMiAtV2FsbCAtcGlwZSAtZycKK2VjaG8gIkNGTEFHUz0kQ0ZMQUdTIgorZWNobyAiLi9jb25maWd1cmUgJEAiCisuL2NvbmZpZ3VyZSAkQCB8fCBleGl0IDEKK3Vuc2V0IENGTEFHUworaWYgWyAteiAiJEdJVENPTVBJTEVfTk9fTUFLRSIgXTsgdGhlbgorICBtYWtlIHx8IGV4aXQgMQorZmkKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS10b29scy9tYWtlZmlsZV9ub19ndGsucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtdG9vbHMvbWFrZWZpbGVfbm9fZ3RrLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5NTc2MDkKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtdG9vbHMvbWFrZWZpbGVfbm9fZ3RrLnBhdGNoCkBAIC0wLDAgKzEsMjkgQEAKK1JlbW92ZSBzb21lIHN1Yi1jb21wb25lbnRzIHdoaWNoIG5lZWQgZ3RrKy4KKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQorCitTaWduZWQtb2ZmLWJ5OiBSb2dlcmlvIE51bmVzIDxyb251bmVzQGdtYWlsLmNvbT4KK1NpZ25lZC1vZmYtYnk6IE90YXZpbyBTYWx2YWRvciA8b3RhdmlvQG9zc3lzdGVtcy5jb20uYnI+CisKK1VwZGF0ZSBwYXRjaCBmb3IgYWxzYS10b29scyAxLjAuMjkKKworU2lnbmVkLW9mZi1ieTogS2FpIEthbmcgPGthaS5rYW5nQHdpbmRyaXZlci5jb20+CisKK2RpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCitpbmRleCAyNDU3YTFjLi43MjM0NmQ5IDEwMDY0NAorLS0tIGEvTWFrZWZpbGUKKysrKyBiL01ha2VmaWxlCitAQCAtMSw5ICsxLDkgQEAKKyBWRVJTSU9OID0gMS4wLjI5CisgVE9QID0gLgorLVNVQkRJUlMgPSBhczEwazEgZW52eTI0Y29udHJvbCBcCistCSAgbWl4YXJ0bG9hZGVyIHBjeGhybG9hZGVyIHJtZWRpZ2ljb250cm9sIHNiMTZfY3NwIHNlcSBzc2NhcGVfY3RsIFwKKy0JICB1czQyOGNvbnRyb2wgdXN4Mnlsb2FkZXIgdnhsb2FkZXIgZWNob21peGVyIFwKKy0JICBod21peHZvbHVtZSBoZGFqYWNrcmV0YXNrIGhkYS12ZXJiIGhkYWphY2tzZW5zZXRlc3QKKytTVUJESVJTID0gYXMxMGsxIFwKKysJICBtaXhhcnRsb2FkZXIgcGN4aHJsb2FkZXIgc2IxNl9jc3Agc2VxIHNzY2FwZV9jdGwgXAorKwkgIHVzNDI4Y29udHJvbCB1c3gyeWxvYWRlciB2eGxvYWRlciBcCisrCSAgaHdtaXh2b2x1bWUgaGRhLXZlcmIgaGRhamFja3NlbnNldGVzdAorIAorIGFsbDoKKyAJQGZvciBpIGluICQoU1VCRElSUyk7IGRvIFwKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS10b29sc18xLjAuMjkuYmIgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtdG9vbHNfMS4wLjI5LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkZjM5NmUKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtdG9vbHNfMS4wLjI5LmJiCkBAIC0wLDAgKzEsNDIgQEAKK1NVTU1BUlkgPSAiQWR2YW5jZWQgdG9vbHMgZm9yIGNlcnRhaW4gQUxTQSBzb3VuZCBjYXJkIGRyaXZlcnMiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmFsc2EtcHJvamVjdC5vcmciCitCVUdUUkFDS0VSID0gImh0dHBzOi8vYnVndHJhY2suYWxzYS1wcm9qZWN0Lm9yZy9hbHNhLWJ1Zy9sb2dpbl9wYWdlLnBocCIKK1NFQ1RJT04gPSAiY29uc29sZS91dGlscyIKK0xJQ0VOU0UgPSAiR1BMdjIgJiBMR1BMdjIrIgorREVQRU5EUyA9ICJhbHNhLWxpYiBuY3Vyc2VzIGdsaWItMi4wIgorCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9oZHNwbG9hZGVyL0NPUFlJTkc7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL2xkMTBrMS9DT1BZSU5HLkxJQjttZDU9N2ZiYzMzODMwOWFjMzhmZWZjZDY0YjA0YmI5MDNlMzQiCisKK1NSQ19VUkkgPSAiZnRwOi8vZnRwLmFsc2EtcHJvamVjdC5vcmcvcHViL3Rvb2xzLyR7QlB9LnRhci5iejIgXAorICAgICAgICAgICBmaWxlOi8vYXV0b3Rvb2xzLnBhdGNoIFwKKyAgICAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICd4MTEnLCAnJywgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmlsZTovL21ha2VmaWxlX25vX2d0ay5wYXRjaCcsIGQpfSBcCisgICAgICAgICAgIGZpbGU6Ly9naXRjb21waWxlX2hkYWphY2tzZW5zZXRlc3QgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1hczEwazEtTWFrZS1vdXRwdXRfdHJhbV9saW5lLXN0YXRpYy1pbmxpbmUucGF0Y2ggXAorICAgICAgICAgICIKKworU1JDX1VSSVttZDVzdW1dID0gImYzMzlhM2NkMjRmNzQ4YzlkMDA3YmRmZjBlOTg3NzViIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjk0YWJmMGFiNWE3M2YwNzEwYzcwZDRmYjNkYzEwMDNhZjViYWUyZDJlZDcyMWQ1OWQyNDViNDFhZDBmMmZiZDEiCisKK2luaGVyaXQgYXV0b3Rvb2xzLWJyb2tlbnNlcCBwa2djb25maWcKKworQ0xFQU5CUk9LRU4gPSAiMSIKKworRVhUUkFfT0VNQUtFICs9ICJHSVRDT01QSUxFX0FSR1M9Jy0taG9zdD0ke0hPU1RfU1lTfSAtLWJ1aWxkPSR7QlVJTERfU1lTfSAtLXRhcmdldD0ke1RBUkdFVF9TWVN9IC0td2l0aC1saWJ0b29sLXN5c3Jvb3Q9JHtTVEFHSU5HX0RJUl9IT1NUfSAtLXByZWZpeD0ke3ByZWZpeH0nIgorCitQQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICd4MTEnLCAnZ3RrKycsICcnLCBkKX0iCitQQUNLQUdFQ09ORklHW2d0aytdID0gIiwsZ3RrKyBndGsrMywiCisKKyMgY29uZmlndXJlLmFjLy5pbiBkb2Vzbid0IGV4aXN0IHNvIGZvcmNlIGNvcHkKK0FVVE9UT09MU19DT1BZQUNMT0NBTCA9ICIxIgorCitkb19jb21waWxlX3ByZXBlbmQgKCkgeworICAgICNBdXRvbWFrZSBkaXIgaXMgbm90IGNvcnJlY3RseSBkZXRlY3RlZCBpbiBjcm9zcyBjb21waWxhdGlvbiBjYXNlCisgICAgZXhwb3J0IEFVVE9NQUtFX0RJUj0iJChhdXRvbWFrZSAtLXByaW50LWxpYmRpcikiCisgICAgZXhwb3J0IEFDTE9DQUxfRkxBR1M9Ii0tc3lzdGVtLWFjZGlyPSR7QUNMT0NBTERJUn0vIgorCisgICAgY3AgJHtXT1JLRElSfS9naXRjb21waWxlX2hkYWphY2tzZW5zZXRlc3QgJHtTfS9oZGFqYWNrc2Vuc2V0ZXN0L2dpdGNvbXBpbGUKK30KKworRklMRVNfJHtQTn0gKz0gIiR7ZGF0YWRpcn0vbGQxMGsxIgpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLXV0aWxzLXNjcmlwdHNfMS4wLjI5LmJiIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLXV0aWxzLXNjcmlwdHNfMS4wLjI5LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5OGY5YjkKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtdXRpbHMtc2NyaXB0c18xLjAuMjkuYmIKQEAgLTAsMCArMSwyMSBAQAorcmVxdWlyZSBhbHNhLXV0aWxzXyR7UFZ9LmJiCisKK1NVTU1BUlkgPSAiU2hlbGwgc2NyaXB0cyB0aGF0IHNob3cgaGVscCBpbmZvIGFuZCBjcmVhdGUgQUxTQSBjb25maWd1cmF0aW9uIGZpbGVzIgorUFJPVklERVMgPSAiYWxzYS11dGlscy1hbHNhY29uZiIKKworRklMRVNFWFRSQVBBVEhTX3ByZXBlbmQgOj0gIiR7VEhJU0RJUn0vYWxzYS11dGlsczoiCisKK1BBQ0tBR0VTID0gIiR7UE59IgorUkRFUEVORFNfJHtQTn0gKz0gImJhc2giCisKK0ZJTEVTXyR7UE59ID0gIiR7c2JpbmRpcn0vYWxzYWNvbmYgXAorICAgICAgICAgICAgICAgJHtzYmluZGlyfS9hbHNhLWluZm8uc2ggXAorICAgICAgICAgICAgICAiCisKK1MgPSAiJHtXT1JLRElSfS9hbHNhLXV0aWxzLSR7UFZ9IgorCitkb19pbnN0YWxsKCkgeworCWluc3RhbGwgLWQgJHtEfSR7c2JpbmRpcn0KKwlpbnN0YWxsIC1tIDA3NTUgJHtCfS9hbHNhY29uZi9hbHNhY29uZiAke0R9JHtzYmluZGlyfS8KKwlpbnN0YWxsIC1tIDA3NTUgJHtTfS9hbHNhLWluZm8vYWxzYS1pbmZvLnNoICR7RH0ke3NiaW5kaXJ9LworfQpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLXV0aWxzLzAwMDEtYWxzYWN0bC1kb24tdC1sZXQtc3lzdGVtZC11bml0LXJlc3RvcmUtdGhlLXZvbHVtZS13aC5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS11dGlscy8wMDAxLWFsc2FjdGwtZG9uLXQtbGV0LXN5c3RlbWQtdW5pdC1yZXN0b3JlLXRoZS12b2x1bWUtd2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTk5ZGQ1MQotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS11dGlscy8wMDAxLWFsc2FjdGwtZG9uLXQtbGV0LXN5c3RlbWQtdW5pdC1yZXN0b3JlLXRoZS12b2x1bWUtd2gucGF0Y2gKQEAgLTAsMCArMSw1MiBAQAorRnJvbSA0M2E1NmZhMzZhMTJmMDljY2Q3OGIzY2Y1ZTZhZTE5N2ZjYWI1MDFmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogS29lbiBLb29pIDxrb2VuQGRvbWluaW9uLnRocnVoZXJlLm5ldD4KK0RhdGU6IEZyaSwgMjkgQXVnIDIwMTQgMTg6NTg6NTYgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSF0gYWxzYWN0bDogZG9uJ3QgbGV0IHN5c3RlbWQgdW5pdCByZXN0b3JlIHRoZSB2b2x1bWUgd2hlbgorIGFzb3VuZC5zdGF0ZSBpcyBtaXNzaW5nCisKK1RoaXMgYXZvaWRzIGFuIGVycm9yIG9uIGJvb3R1cAorCitGaWxlZCBhcyBodHRwczovL2J1Z3RyYWNrLmFsc2EtcHJvamVjdC5vcmcvYWxzYS1idWcvdmlldy5waHA/aWQ9NTQ1OQorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogS29lbiBLb29pIDxrb2VuQGRvbWluaW9uLnRocnVoZXJlLm5ldD4KK1NpZ25lZC1vZmYtYnk6IENyaXN0aWFuIElvcmdhIDxjcmlzdGlhbi5pb3JnYUBpbnRlbC5jb20+CistLS0KKyBhbHNhY3RsL01ha2VmaWxlLmFtICAgICAgICAgICAgIHwgNyArKysrLS0tCisgYWxzYWN0bC9hbHNhLXJlc3RvcmUuc2VydmljZS5pbiB8IDEgKworIDIgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvYWxzYWN0bC9NYWtlZmlsZS5hbSBiL2Fsc2FjdGwvTWFrZWZpbGUuYW0KK2luZGV4IDQ3ZjA2ZTkuLmI3MjhjMDYgMTAwNjQ0CistLS0gYS9hbHNhY3RsL01ha2VmaWxlLmFtCisrKysgYi9hbHNhY3RsL01ha2VmaWxlLmFtCitAQCAtNDMsOSArNDMsMTAgQEAgaW5zdGFsbC1kYXRhLWhvb2s6CisgZW5kaWYKKyAKKyBlZGl0ID0gXAorLQkkKFNFRCkgLXIgLWUgJ3MsQHNiaW5kaXJcQCwkKHNiaW5kaXIpLGcnIFwKKy0JCSAgLWUgJ3MsQG15ZGF0YWRpclxALCQobXlkYXRhZGlyKSxnJyBcCistCQkgIC1lICdzLEBkYWVtb25zd2l0Y2hcQCwkKEFMU0FDVExfREFFTU9OU1dJVENIKSxnJyBcCisrCSQoU0VEKSAtZSAncyxAbG9jYWxzdGF0ZWRpclxALCQobG9jYWxzdGF0ZWRpciksZycgXAorKwkgICAgICAgLWUgJ3MsQHNiaW5kaXJcQCwkKHNiaW5kaXIpLGcnIFwKKysJICAgICAgIC1lICdzLEBteWRhdGFkaXJcQCwkKG15ZGF0YWRpciksZycgXAorKwkgICAgICAgLWUgJ3MsQGRhZW1vbnN3aXRjaFxALCQoQUxTQUNUTF9EQUVNT05TV0lUQ0gpLGcnIFwKKyAJCQkJCQkJPCAkPCA+ICRAIHx8IHJtICRACisgCisgYWxzYS1zdGF0ZS5zZXJ2aWNlOiBhbHNhLXN0YXRlLnNlcnZpY2UuaW4KK2RpZmYgLS1naXQgYS9hbHNhY3RsL2Fsc2EtcmVzdG9yZS5zZXJ2aWNlLmluIGIvYWxzYWN0bC9hbHNhLXJlc3RvcmUuc2VydmljZS5pbgoraW5kZXggMjQ1YTQzOS4uYjAxNzg1NCAxMDA2NDQKKy0tLSBhL2Fsc2FjdGwvYWxzYS1yZXN0b3JlLnNlcnZpY2UuaW4KKysrKyBiL2Fsc2FjdGwvYWxzYS1yZXN0b3JlLnNlcnZpY2UuaW4KK0BAIC0xMCw2ICsxMCw3IEBAIERlZmF1bHREZXBlbmRlbmNpZXM9bm8KKyBBZnRlcj1hbHNhLXN0YXRlLnNlcnZpY2UKKyBCZWZvcmU9c2h1dGRvd24udGFyZ2V0CisgQ29uZmxpY3RzPXNodXRkb3duLnRhcmdldAorK0NvbmRpdGlvblBhdGhFeGlzdHM9QGxvY2Fsc3RhdGVkaXJAL2xpYi9hbHNhL2Fzb3VuZC5zdGF0ZQorIAorIFtTZXJ2aWNlXQorIFR5cGU9b25lc2hvdAorLS0gCisxLjkuMQorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9hbHNhL2Fsc2EtdXRpbHMvYWxzYS11dGlscy1hcGxheS1pbnRlcnJ1cHQtc2lnbmFsLWhhbmRsaW5nLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLXV0aWxzL2Fsc2EtdXRpbHMtYXBsYXktaW50ZXJydXB0LXNpZ25hbC1oYW5kbGluZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZGYwMDRhCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLXV0aWxzL2Fsc2EtdXRpbHMtYXBsYXktaW50ZXJydXB0LXNpZ25hbC1oYW5kbGluZy5wYXRjaApAQCAtMCwwICsxLDQ4IEBACitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworYXBsYXkvYXJlY29yZCAoYWxzYS11dGlscyB2MS4wLjI4KSBjYW5ub3QgaW50ZXJydXB0IHN0cmVhbWluZwordmlhIENUUkwtQy4gRml4ZWQgdGhlIGlzc3VlIGJ5IHJldmVydGluZyBidWdneSBwYXRjaGVzIGFuZAorcHJvcGVybHkgaGFuZGxpbmcgJ2luX2Fib3J0aW5nJyBmbGFnIGluIGFwcHJvcHJpYXRlIGZ1bmN0aW9ucy4KKworU2lnbmVkLW9mZi1ieTogQW5hbnQgQWdyYXdhbCA8QW5hbnRfQWdyYXdhbEBtZW50b3IuY29tPgorU2lnbmVkLW9mZi1ieTogTWlraGFpbCBEdXJuZXYgPG1pa2hhaWxfZHVybmV2QG1lbnRvci5jb20+CisKKy0tLSBhL2FwbGF5L2FwbGF5LmMJMjAxNC0wNS0xOSAxNjoyNToxNC4wMDAwMDAwMDAgKzA1MzAKKysrKyBiL2FwbGF5L2FwbGF5LmMJMjAxNC0wNS0yMCAxNToxNzoxNC4zNjQ4MjMwMDcgKzA1MzAKK0BAIC0zOTIsMTQgKzM5MiwyMiBAQAorIAkJcHV0Y2hhcignXG4nKTsKKyAJaWYgKCFxdWlldF9tb2RlKQorIAkJZnByaW50ZihzdGRlcnIsIF8oIkFib3J0ZWQgYnkgc2lnbmFsICVzLi4uXG4iKSwgc3Ryc2lnbmFsKHNpZykpOworLQlpZiAoaGFuZGxlKQorKwlpZiAoc3RyZWFtID09IFNORF9QQ01fU1RSRUFNX0NBUFRVUkUpIHsKKysJCWlmIChmbXRfcmVjX3RhYmxlW2ZpbGVfdHlwZV0uZW5kKSB7CisrCQkJZm10X3JlY190YWJsZVtmaWxlX3R5cGVdLmVuZChmZCk7CisrCQkJZmQgPSAtMTsKKysJCX0KKysJCXN0cmVhbSA9IC0xOworKwl9CisrCWlmIChmZCA+IDEpIHsKKysJCWNsb3NlKGZkKTsKKysJCWZkID0gLTE7CisrCX0KKysJaWYgKGhhbmRsZSAmJiBzaWcgIT0gU0lHQUJSVCkgeworIAkJc25kX3BjbV9hYm9ydChoYW5kbGUpOworLQlpZiAoc2lnID09IFNJR0FCUlQpIHsKKy0JCS8qIGRvIG5vdCBjYWxsIHNuZF9wY21fY2xvc2UoKSBhbmQgYWJvcnQgaW1tZWRpYXRlbHkgKi8KKyAJCWhhbmRsZSA9IE5VTEw7CistCQlwcmdfZXhpdChFWElUX0ZBSUxVUkUpOworIAl9CistCXNpZ25hbChzaWcsIHNpZ25hbF9oYW5kbGVyKTsKKysJcHJnX2V4aXQoRVhJVF9GQUlMVVJFKTsKKyB9CisgCisgLyogY2FsbCBvbiBTSUdVU1IxIHNpZ25hbC4gKi8KK0BAIC0yMDk2LDcgKzIxMDQsNyBAQAorIAlzc2l6ZV90IHJlc3VsdCA9IGNvdW50LCByOworIAlzaXplX3Qgc2l6ZTsKKyAKKy0Jd2hpbGUgKGNvdW50ID4gMCkgeworKwl3aGlsZSAoY291bnQgPiAwICYmICFpbl9hYm9ydGluZykgeworIAkJc2l6ZSA9IGNvdW50OworIAkJaWYgKHNpemUgPiBjaHVua19ieXRlcyAtIGJ1ZmZlcl9wb3MpCisgCQkJc2l6ZSA9IGNodW5rX2J5dGVzIC0gYnVmZmVyX3BvczsKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS11dGlscy9hc3N1bWUtc3RvcmluZy1pcy1zdWNjZXNzLWlmLW5vdC1zb3VuZC1jYXJkLWRldmljZS5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS11dGlscy9hc3N1bWUtc3RvcmluZy1pcy1zdWNjZXNzLWlmLW5vdC1zb3VuZC1jYXJkLWRldmljZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjcyODNkCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLXV0aWxzL2Fzc3VtZS1zdG9yaW5nLWlzLXN1Y2Nlc3MtaWYtbm90LXNvdW5kLWNhcmQtZGV2aWNlLnBhdGNoCkBAIC0wLDAgKzEsMzQgQEAKK1tQQVRDSF0gYXNzdW1lIHN0b3JpbmcgaXMgc3VjY2VzcyBpZiBub3Qgc291bmQgY2FyZCBkZXZpY2UKKworVXBzdHJlYW0tU3RhdHVlOiBQZW5kaW5nCisKK1N5c3RlbWQgd2lsbCByZXBvcnQgZmFpbHVyZSB3aGVuIHJ1biBhbHNhLSosIGlmIHRoZSBtYWNoaW5lIGhhcyBub3QgdGhlCitzb3VuZCBjYXJkLiBUbyB2b2lkIHRoaXMgYW5ub3llZCBtZXNzYWdlLCBhbHNhLXJlc3RvcmUvYWxzYS1zdGF0ZSBpZ25vcmUKK2FsbCB0aGUgZXhpdCBjb2RlcyBieSBwcmVmaXhpbmcgIi0iIGluIEV4ZWNTdGFydCwgbGlrZToKKworICAgYWxzYS11dGlscy0xLjAuMjkkIGdyZXAgIj0tIiAuLyAtcnxncmVwIHNlcnZpY2UuaW4KKyAgIC4vYWxzYWN0bC9hbHNhLXJlc3RvcmUuc2VydmljZS5pbjpFeGVjU3RhcnQ9LUBzYmluZGlyQC9hbHNhY3RsIHJlc3RvcmUKKyAgIC4vYWxzYWN0bC9hbHNhLXN0YXRlLnNlcnZpY2UuaW46RXhlY1N0YXJ0PS1Ac2JpbmRpckAvYWxzYWN0bCAtcyAtbiAxOSAtYyByZGFlbW9uCisgICAuL2Fsc2FjdGwvYWxzYS1zdGF0ZS5zZXJ2aWNlLmluOkV4ZWNTdG9wPS1Ac2JpbmRpckAvYWxzYWN0bCAtcyBraWxsIHNhdmVfYW5kX3F1aXQKKyAgIGxzYS11dGlscy0xLjAuMjkkCisKK0J1dCBhbHNhLXN0b3JlLnNlcnZpY2UuaW4gaXMgbWlzc2luZywgYW5kIGJldHRlciBzb2x1dGlvbiBpcyB0byBpZ25vcmUKK3RoZSBleGl0IGNvZGUgMTkgd2hpY2ggbWVhbnMgbm90IHNvdW5kIGNhcmQgZGV2aWNlLCBub3QgYWxsIGV4aXQgY29kZQorCitTaWduZWQtb2ZmLWJ5OiBSb3kgTGkgPHJvbmdxaW5nLmxpQHdpbmRyaXZlci5jb20+CistLS0KKyBhbHNhY3RsL2Fsc2Etc3RvcmUuc2VydmljZS5pbiB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvYWxzYWN0bC9hbHNhLXN0b3JlLnNlcnZpY2UuaW4gYi9hbHNhY3RsL2Fsc2Etc3RvcmUuc2VydmljZS5pbgoraW5kZXggZjFhNTZiYi4uNjhjYTUyOSAxMDA2NDQKKy0tLSBhL2Fsc2FjdGwvYWxzYS1zdG9yZS5zZXJ2aWNlLmluCisrKysgYi9hbHNhY3RsL2Fsc2Etc3RvcmUuc2VydmljZS5pbgorQEAgLTEzLDMgKzEzLDQgQEAgQmVmb3JlPXNodXRkb3duLnRhcmdldAorIFR5cGU9b25lc2hvdAorIEV4ZWNTdGFydD1Ac2JpbmRpckAvYWxzYWN0bCBzdG9yZQorIFN0YW5kYXJkT3V0cHV0PXN5c2xvZworK1N1Y2Nlc3NFeGl0U3RhdHVzPTAgMTkKKy0tIAorMS45LjEKKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvYWxzYS9hbHNhLXV0aWxzXzEuMC4yOS5iYiBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS11dGlsc18xLjAuMjkuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdmZTRiMgotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2Fsc2EvYWxzYS11dGlsc18xLjAuMjkuYmIKQEAgLTAsMCArMSw5NyBAQAorU1VNTUFSWSA9ICJBTFNBIHNvdW5kIHV0aWxpdGllcyIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cuYWxzYS1wcm9qZWN0Lm9yZyIKK0JVR1RSQUNLRVIgPSAiaHR0cHM6Ly9idWd0cmFjay5hbHNhLXByb2plY3Qub3JnL2Fsc2EtYnVnL2xvZ2luX3BhZ2UucGhwIgorU0VDVElPTiA9ICJjb25zb2xlL3V0aWxzIgorTElDRU5TRSA9ICJHUEx2MisiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT01OTUzMGJkZjMzNjU5YjI5ZTczZDRhZGI5ZjlmNjU1MiBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9hbHNhY3RsL3V0aWxzLmM7YmVnaW5saW5lPTE7ZW5kbGluZT0yMDttZDU9ZmU5NTI2YjA1NWUyNDZiNTU1ODgwOWE1YWUyNWMwYjkiCitERVBFTkRTID0gImFsc2EtbGliIG5jdXJzZXMgbGlic2FtcGxlcmF0ZTAiCisKK1BBQ0tBR0VDT05GSUcgPz89ICJ1ZGV2IgorUEFDS0FHRUNPTkZJR1t1ZGV2XSA9ICItLXdpdGgtdWRldi1ydWxlcy1kaXI9YHBrZy1jb25maWcgLS12YXJpYWJsZT11ZGV2ZGlyIHVkZXZgL3J1bGVzLmQsLHVkZXYiCitQQUNLQUdFQ09ORklHW3htbHRvXSA9ICItLWVuYWJsZS14bWx0bywgLS1kaXNhYmxlLXhtbHRvLCB4bWx0by1uYXRpdmUgZG9jYm9vay14bWwtZHRkNC1uYXRpdmUgZG9jYm9vay14c2wtc3R5bGVzaGVldHMtbmF0aXZlIgorCitTUkNfVVJJID0gImZ0cDovL2Z0cC5hbHNhLXByb2plY3Qub3JnL3B1Yi91dGlscy9hbHNhLXV0aWxzLSR7UFZ9LnRhci5iejIgXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1hbHNhY3RsLWRvbi10LWxldC1zeXN0ZW1kLXVuaXQtcmVzdG9yZS10aGUtdm9sdW1lLXdoLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2Fsc2EtdXRpbHMtYXBsYXktaW50ZXJydXB0LXNpZ25hbC1oYW5kbGluZy5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9hc3N1bWUtc3RvcmluZy1pcy1zdWNjZXNzLWlmLW5vdC1zb3VuZC1jYXJkLWRldmljZS5wYXRjaCBcCisgICAgICAgICAgIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNmIyODliZjg3NGM0YzlhNjNmNGIzOTczMDkzZGQ0MDQiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTE2MDA1OGYzZTE0NDgzY2VkNWRlOTE5ZGQ0NzNmOTM5MzIwNTk0NTQ1MzBhOWI3ZWY5N2RjYWJkNjgzM2U5YiIKKworIyBsYXp5IGhhY2suIG5lZWRzIHByb3BlciBmaXhpbmcgaW4gZ2V0dGV4dC5tNCwgc2VlCisjIGh0dHA6Ly9idWdzLm9wZW5lbWJlZGRlZC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDgKKyMgcGxlYXNlIGNsb3NlIGJ1ZyBhbmQgcmVtb3ZlIHRoaXMgY29tbWVudCB3aGVuIHByb3Blcmx5IGZpeGVkCisjCitFWFRSQV9PRUNPTkZfYXBwZW5kX2xpYmMtdWNsaWJjID0gIiAtLWRpc2FibGUtbmxzIgorCitpbmhlcml0IGF1dG90b29scyBnZXR0ZXh0IHBrZ2NvbmZpZworCisjIFRoaXMgYXJlIGFsbCBwYWNrYWdlcyB0aGF0IHdlIG5lZWQgdG8gbWFrZS4gQWxzbywgdGhlIG5vdyBlbXB0eSBhbHNhLXV0aWxzCisjIGlwayBkZXBlbmRzIG9uIHRoZW0uCisKK0FMU0FfVVRJTFNfUEtHUyA9ICJcCisgICAgICAgICAgICAgYWxzYS11dGlscy1hbHNhbWl4ZXIgXAorICAgICAgICAgICAgIGFsc2EtdXRpbHMtbWlkaSBcCisgICAgICAgICAgICAgYWxzYS11dGlscy1hcGxheSBcCisgICAgICAgICAgICAgYWxzYS11dGlscy1hbWl4ZXIgXAorICAgICAgICAgICAgIGFsc2EtdXRpbHMtYWNvbm5lY3QgXAorICAgICAgICAgICAgIGFsc2EtdXRpbHMtaWVjc2V0IFwKKyAgICAgICAgICAgICBhbHNhLXV0aWxzLXNwZWFrZXJ0ZXN0IFwKKyAgICAgICAgICAgICBhbHNhLXV0aWxzLWFzZXFuZXQgXAorICAgICAgICAgICAgIGFsc2EtdXRpbHMtYXNlcWR1bXAgXAorICAgICAgICAgICAgIGFsc2EtdXRpbHMtYWxzYWN0bCBcCisgICAgICAgICAgICAgYWxzYS11dGlscy1hbHNhbG9vcCBcCisgICAgICAgICAgICAgYWxzYS11dGlscy1hbHNhdWNtIFwKKyAgICAgICAgICAgICIKKworUEFDS0FHRVMgKz0gIiR7QUxTQV9VVElMU19QS0dTfSIKK1JERVBFTkRTXyR7UE59ICs9ICIke0FMU0FfVVRJTFNfUEtHU30iCisKK0ZJTEVTXyR7UE59ID0gIiIKK0ZJTEVTX2Fsc2EtdXRpbHMtYXBsYXkgICAgICAgPSAiJHtiaW5kaXJ9L2FwbGF5ICR7YmluZGlyfS9hcmVjb3JkIgorRklMRVNfYWxzYS11dGlscy1hbWl4ZXIgICAgICA9ICIke2JpbmRpcn0vYW1peGVyIgorRklMRVNfYWxzYS11dGlscy1hbHNhbWl4ZXIgICA9ICIke2JpbmRpcn0vYWxzYW1peGVyIgorRklMRVNfYWxzYS11dGlscy1zcGVha2VydGVzdCA9ICIke2JpbmRpcn0vc3BlYWtlci10ZXN0ICR7ZGF0YWRpcn0vc291bmRzL2Fsc2EvICR7ZGF0YWRpcn0vYWxzYS9zcGVha2VyLXRlc3QvIgorRklMRVNfYWxzYS11dGlscy1taWRpICAgICAgICA9ICIke2JpbmRpcn0vYXBsYXltaWRpICR7YmluZGlyfS9hcmVjb3JkbWlkaSAke2JpbmRpcn0vYW1pZGkiCitGSUxFU19hbHNhLXV0aWxzLWFjb25uZWN0ICAgID0gIiR7YmluZGlyfS9hY29ubmVjdCIKK0ZJTEVTX2Fsc2EtdXRpbHMtYXNlcW5ldCAgICAgPSAiJHtiaW5kaXJ9L2FzZXFuZXQiCitGSUxFU19hbHNhLXV0aWxzLWllY3NldCAgICAgID0gIiR7YmluZGlyfS9pZWNzZXQiCitGSUxFU19hbHNhLXV0aWxzLWFsc2FjdGwgICAgID0gIiR7c2JpbmRpcn0vYWxzYWN0bCAqL3VkZXYvcnVsZXMuZCAqLyovdWRldi9ydWxlcy5kICR7c3lzdGVtZF91bml0ZGlyfSAke2xvY2Fsc3RhdGVkaXJ9L2xpYi9hbHNhICR7ZGF0YWRpcn0vYWxzYS9pbml0LyIKK0ZJTEVTX2Fsc2EtdXRpbHMtYXNlcWR1bXAgICAgPSAiJHtiaW5kaXJ9L2FzZXFkdW1wIgorRklMRVNfYWxzYS11dGlscy1hbHNhbG9vcCAgICA9ICIke2JpbmRpcn0vYWxzYWxvb3AiCitGSUxFU19hbHNhLXV0aWxzLWFsc2F1Y20gICAgID0gIiR7YmluZGlyfS9hbHNhdWNtIgorCisKK1NVTU1BUllfYWxzYS11dGlscy1hcGxheSAgICAgICAgPSAiUGxheSAoYW5kIHJlY29yZCkgc291bmQgZmlsZXMgdXNpbmcgQUxTQSIKK1NVTU1BUllfYWxzYS11dGlscy1hbWl4ZXIgICAgICAgPSAiQ29tbWFuZC1saW5lIGNvbnRyb2wgZm9yIEFMU0EgbWl4ZXIgYW5kIHNldHRpbmdzIgorU1VNTUFSWV9hbHNhLXV0aWxzLWFsc2FtaXhlciAgICA9ICJuY3Vyc2VzLWJhc2VkIGNvbnRyb2wgZm9yIEFMU0EgbWl4ZXIgYW5kIHNldHRpbmdzIgorU1VNTUFSWV9hbHNhLXV0aWxzLXNwZWFrZXJ0ZXN0ICA9ICJBTFNBIHN1cnJvdW5kIHNwZWFrZXIgdGVzdCB1dGlsaXR5IgorU1VNTUFSWV9hbHNhLXV0aWxzLW1pZGkgICAgICAgICA9ICJNaXNjZWxsYW5lb3VzIE1JREkgdXRpbGl0aWVzIGZvciBBTFNBIgorU1VNTUFSWV9hbHNhLXV0aWxzLWFjb25uZWN0ICAgICA9ICJBTFNBIHNlcXVlbmNlciBjb25uZWN0aW9uIG1hbmFnZXIiCitTVU1NQVJZX2Fsc2EtdXRpbHMtYXNlcW5ldCAgICAgID0gIk5ldHdvcmsgY2xpZW50L3NlcnZlciBmb3IgQUxTQSBzZXF1ZW5jZXIiCitTVU1NQVJZX2Fsc2EtdXRpbHMtaWVjc2V0ICAgICAgID0gIkFMU0EgdXRpbGl0eSBmb3Igc2V0dGluZy9zaG93aW5nIElFQzk1OCAoUy9QRElGKSBzdGF0dXMgYml0cyIKK1NVTU1BUllfYWxzYS11dGlscy1hbHNhY3RsICAgICAgPSAiU2F2ZXMvcmVzdG9yZXMgQUxTQS1zZXR0aW5ncyBpbiAvZXRjL2Fzb3VuZC5zdGF0ZSIKK1NVTU1BUllfYWxzYS11dGlscy1hc2VxZHVtcCAgICAgPSAiU2hvd3MgdGhlIGV2ZW50cyByZWNlaXZlZCBhdCBhbiBBTFNBIHNlcXVlbmNlciBwb3J0IgorU1VNTUFSWV9hbHNhLXV0aWxzLWFsc2Fsb29wICAgICA9ICJBTFNBIFBDTSBsb29wYmFjayB1dGlsaXR5IgorU1VNTUFSWV9hbHNhLXV0aWxzLWFsc2F1Y20gICAgICA9ICJBTFNBIFVzZSBDYXNlIE1hbmFnZXIiCisKK1JSRUNPTU1FTkRTX2Fsc2EtdXRpbHMtYWxzYWN0bCA9ICJhbHNhLXN0YXRlcyIKKworQUxMT1dfRU1QVFlfYWxzYS11dGlscyA9ICIxIgorCitkb19pbnN0YWxsKCkgeworCWF1dG90b29sc19kb19pbnN0YWxsCisKKwkjIFdlIGRvbid0IHNoaXAgdGhpcyBoZXJlIGJlY2F1c2UgaXQgcmVxdWlyZXMgYSBkZXBlbmRlbmN5IG9uIGJhc2guCisJIyBTZWUgYWxzYS11dGlscy1zY3JpcHRzXyR7UFZ9LmJiCisJcm0gJHtEfSR7c2JpbmRpcn0vYWxzYWNvbmYKKwlybSAke0R9JHtzYmluZGlyfS9hbHNhLWluZm8uc2gKKworCWlmICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdQQUNLQUdFQ09ORklHJywgJ3VkZXYnLCAnZmFsc2UnLCAndHJ1ZScsIGQpfTsgdGhlbgorCSAgICMgVGhpcyBpcyB3aGVyZSBhbHNhLXV0aWxzIHdpbGwgaW5zdGFsbCBpdHMgcnVsZXMgaWYgd2UgZG9uJ3QgdGVsbCBpdCBhbnl0aGluZyBlbHNlLgorCSAgIHJtIC1yZiAke0R9L2xpYi91ZGV2CisJICAgcm1kaXIgLS1pZ25vcmUtZmFpbC1vbi1ub24tZW1wdHkgJHtEfS9saWIKKwlmaQorfQpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZmxhYy9mbGFjXzEuMy4xLmJiIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZmxhYy9mbGFjXzEuMy4xLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNTI3MWYKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9mbGFjL2ZsYWNfMS4zLjEuYmIKQEAgLTAsMCArMSw0MiBAQAorU1VNTUFSWSA9ICJGcmVlIExvc3NsZXNzIEF1ZGlvIENvZGVjIgorREVTQ1JJUFRJT04gPSAiRkxBQyBzdGFuZHMgZm9yIEZyZWUgTG9zc2xlc3MgQXVkaW8gQ29kZWMsIGEgbG9zc2xlc3MgYXVkaW8gY29tcHJlc3Npb24gZm9ybWF0LiIKK0hPTUVQQUdFID0gImh0dHBzOi8veGlwaC5vcmcvZmxhYy8iCitCVUdUUkFDS0VSID0gImh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9mbGFjL2J1Z3MvIgorU0VDVElPTiA9ICJsaWJzIgorTElDRU5TRSA9ICJHRkRMLTEuMiAmIEdQTHYyKyAmIExHUEx2Mi4xKyAmIEJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkcuRkRMO21kNT1hZDE0MTllY2M1NmUwNjBlY2NmODE4NGE4N2M0Mjg1ZiBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvTWFrZWZpbGUuYW07YmVnaW5saW5lPTE7ZW5kbGluZT0xNzttZDU9MGE4NTNiODFkOWQ0M2Q4YWFkM2I1M2IwNWNmY2MzN2UgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vQ09QWUlORy5HUEw7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL3NyYy9mbGFjL21haW4uYztiZWdpbmxpbmU9MTtlbmRsaW5lPTE4O21kNT1kMDNhNzY2NTU4ZDIzM2Y5Y2MzYWM1ZGZhZmQ0OWRlYiBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLkxHUEw7bWQ1PWZiYzA5MzkwMTg1N2ZjZDExOGYwNjVmOTAwOTgyYzI0IFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL3NyYy9wbHVnaW5fY29tbW9uL2FsbC5oO2JlZ2lubGluZT0xO2VuZGxpbmU9MTg7bWQ1PTdjOGEzYjllMWU2NmVkMGFiYTc2NWJjNmYzNWRhODVkIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuWGlwaDttZDU9YTJjNGI3MWMwMTk4NjgyMzc2ZDQ4M2ViNWJjYzkxOTcgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vaW5jbHVkZS9GTEFDL2FsbC5oO2JlZ2lubGluZT02NTtlbmRsaW5lPTcwO21kNT02NDQ3NGYyYjIyZTllNzdiMjhkOGI4YjI1Yzk4M2E0OCIKK0RFUEVORFMgPSAibGlib2dnIgorCitTUkNfVVJJID0gImh0dHA6Ly9kb3dubG9hZHMueGlwaC5vcmcvcmVsZWFzZXMvZmxhYy8ke0JQfS50YXIueHoiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJiOTkyMmM5YTAzNzhjODhkM2U5MDFiMjM0Zjg1MjY5OCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI0NzczYzAwOTlkYmE3NjdkOTYzZmQ5MjE0MzI2M2JlMzM4YzQ4NzAyMTcyZTg3NTRiOWJjNTEwM2VmZTFjNTZjIgorCitpbmhlcml0IGF1dG90b29scyBnZXR0ZXh0CisKK0VYVFJBX09FQ09ORiA9ICItLWRpc2FibGUtb2dndGVzdCBcCisgICAgICAgICAgICAgICAgLS13aXRoLW9nZy1saWJyYXJpZXM9JHtTVEFHSU5HX0xJQkRJUn0gXAorICAgICAgICAgICAgICAgIC0td2l0aC1vZ2ctaW5jbHVkZXM9JHtTVEFHSU5HX0lOQ0RJUn0gXAorICAgICAgICAgICAgICAgIC0tZGlzYWJsZS14bW1zLXBsdWdpbiBcCisgICAgICAgICAgICAgICAgLS13aXRob3V0LWxpYmljb252LXByZWZpeCBcCisgICAgICAgICAgICAgICAgYWNfY3ZfcHJvZ19OQVNNPSIiIFwKKyAgICAgICAgICAgICAgICAiCisKK0VYVFJBX09FQ09ORiArPSAiJHtAYmIudXRpbHMuY29udGFpbnMoIlRVTkVfRkVBVFVSRVMiLCAiYWx0aXZlYyIsICIgLS1lbmFibGUtYWx0aXZlYyIsICIgLS1kaXNhYmxlLWFsdGl2ZWMiLCBkKX0iCitFWFRSQV9PRUNPTkYgKz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCJUVU5FX0ZFQVRVUkVTIiwgImNvcmUyIiwgIiAtLWVuYWJsZS1zc2UiLCAiIiwgZCl9IgorRVhUUkFfT0VDT05GICs9ICIke0BiYi51dGlscy5jb250YWlucygiVFVORV9GRUFUVVJFUyIsICJjb3JlaTciLCAiIC0tZW5hYmxlLXNzZSIsICIiLCBkKX0iCisKK1BBQ0tBR0VTICs9ICJsaWJmbGFjIGxpYmZsYWMrKyBsaWJvZ2dmbGFjIGxpYm9nZ2ZsYWMrKyIKK0ZJTEVTXyR7UE59ID0gIiR7YmluZGlyfS8qIgorRklMRVNfbGliZmxhYyA9ICIke2xpYmRpcn0vbGliRkxBQy5zby4qIgorRklMRVNfbGliZmxhYysrID0gIiR7bGliZGlyfS9saWJGTEFDKysuc28uKiIKK0ZJTEVTX2xpYm9nZ2ZsYWMgPSAiJHtsaWJkaXJ9L2xpYk9nZ0ZMQUMuc28uKiIKK0ZJTEVTX2xpYm9nZ2ZsYWMrKyA9ICIke2xpYmRpcn0vbGliT2dnRkxBQysrLnNvLioiCisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3QtcGxheWVyL0FkZC1lcnJvci1zaWduYWwtZW1pc3Npb24tZm9yLW1pc3NpbmctcGx1Z2lucy5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3QtcGxheWVyL0FkZC1lcnJvci1zaWduYWwtZW1pc3Npb24tZm9yLW1pc3NpbmctcGx1Z2lucy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTJkNDZkCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdC1wbGF5ZXIvQWRkLWVycm9yLXNpZ25hbC1lbWlzc2lvbi1mb3ItbWlzc2luZy1wbHVnaW5zLnBhdGNoCkBAIC0wLDAgKzEsMjUyIEBACitGcm9tIGQ2NGM3ZWRiNjZmNGE2NGZmNDljNDMwNmNmNzdmZDI2OWI3MDc5YWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKdXNzaSBLdWtrb25lbiA8anVzc2kua3Vra29uZW5AaW50ZWwuY29tPgorRGF0ZTogTW9uLCAxNiBNYXIgMjAxNSAxMzo0NTozMCArMDIwMAorU3ViamVjdDogW1BBVENIXSBBZGQgZXJyb3Igc2lnbmFsIGVtaXNzaW9uIGZvciBtaXNzaW5nIHBsdWdpbnMKKworQWRkIGEgbWlzc2luZyBwbHVnaW5zIGVycm9yIHNpZ25hbCB0byBnc3QtcGxheWVyLiBOb3RlIHRoYXQgdGhpcyBlcnJvcgorZG9lcyBub3QgbmVjZXNzYXJpbHkgbWVhbiB0aGUgcGxheWJhY2sgaGFzIGNvbXBsZXRlbHkgZmFpbGVkLCBidXQgaW4KK3ByYWN0aWNlIHRoZSB1c2VyIGV4cGVyaWVuY2Ugd2lsbCBiZSBiYWQgKHRoaW5rLCBlLmcuIG9mIGEgbXA0IGZpbGUKK3doZXJlIEguMjY0IGNvZGVjIGlzIG1pc3Npbmc6IEFBQyBwbGF5YmFjayBzdGlsbCB3b3Jrcy4uLikuCisKK1VzZSB0aGUgc2lnbmFsIGluIGd0ay1wbGF5IHRvIHNob3cgYSBpbmZvYmFyIGlmIHBsdWdpbnMgYXJlIG1pc3NpbmcuCisKK1N1Ym1pdHRlZCB1cHN0cmVhbSBhdCBodHRwczovL2dpdGh1Yi5jb20vc2Ryb2VnZS9nc3QtcGxheWVyL3B1bGwvMTEKKworVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQKK1NpZ25lZC1vZmYtYnk6IEp1c3NpIEt1a2tvbmVuIDxqdXNzaS5rdWtrb25lbkBpbnRlbC5jb20+CistLS0KKyBjb25maWd1cmUuYWMgICAgICAgICAgICAgICB8ICAyICstCisgZ3RrL2d0ay1wbGF5LmMgICAgICAgICAgICAgfCA1NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCisgbGliL2dzdC9wbGF5ZXIvZ3N0cGxheWVyLmMgfCAyMiArKysrKysrKysrKysrKysrKysrCisgbGliL2dzdC9wbGF5ZXIvZ3N0cGxheWVyLmggfCAgMyArKy0KKyA0IGZpbGVzIGNoYW5nZWQsIDc4IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IDkwYWI3NGMuLjZjZGI0ZWIgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTUzLDcgKzUzLDcgQEAgQUNfU1VCU1QoTFRfQUdFKQorIFBLR19QUk9HX1BLR19DT05GSUcKKyAKKyBQS0dfQ0hFQ0tfTU9EVUxFUyhHTElCLCBbZ2xpYi0yLjAgZ29iamVjdC0yLjBdKQorLVBLR19DSEVDS19NT0RVTEVTKEdTVFJFQU1FUiwgW2dzdHJlYW1lci0xLjAgPj0gMS40IGdzdHJlYW1lci12aWRlby0xLjAgPj0gMS40XSkKKytQS0dfQ0hFQ0tfTU9EVUxFUyhHU1RSRUFNRVIsIFtnc3RyZWFtZXItMS4wID49IDEuNCBnc3RyZWFtZXItdmlkZW8tMS4wID49IDEuNCBnc3RyZWFtZXItcGJ1dGlscy0xLjBdKQorIAorIEdMSUJfUFJFRklYPSJgJFBLR19DT05GSUcgLS12YXJpYWJsZT1wcmVmaXggZ2xpYi0yLjBgIgorIEFDX1NVQlNUKEdMSUJfUFJFRklYKQorZGlmZiAtLWdpdCBhL2d0ay9ndGstcGxheS5jIGIvZ3RrL2d0ay1wbGF5LmMKK2luZGV4IGI5Mjc3M2IuLmUyYjYwNWEgMTAwNjQ0CistLS0gYS9ndGsvZ3RrLXBsYXkuYworKysrIGIvZ3RrL2d0ay1wbGF5LmMKK0BAIC0zMCw2ICszMCw4IEBAIHR5cGVkZWYgc3RydWN0CisgICBHdGtXaWRnZXQgKnByZXZfYnV0dG9uLCAqbmV4dF9idXR0b247CisgICBHdGtXaWRnZXQgKnNlZWtiYXI7CisgICBHdGtXaWRnZXQgKnZpZGVvX2FyZWE7CisrICBHdGtXaWRnZXQgKmluZm9fbGFiZWw7CisrICBHdGtXaWRnZXQgKmluZm9fYmFyOworICAgR3RrV2lkZ2V0ICp2b2x1bWVfYnV0dG9uOworICAgZ3Vsb25nIHNlZWtiYXJfdmFsdWVfY2hhbmdlZF9zaWduYWxfaWQ7CisgICBnYm9vbGVhbiBwbGF5aW5nOworQEAgLTE0MSw2ICsxNDMsMTMgQEAgcGxheV9wYXVzZV9jbGlja2VkX2NiIChHdGtCdXR0b24gKiBidXR0b24sIEd0a1BsYXkgKiBwbGF5KQorIH0KKyAKKyBzdGF0aWMgdm9pZAorK2NsZWFyX21pc3NpbmdfcGx1Z2lucyAoR3RrUGxheSAqIHBsYXkpCisreworKyAgZ3RrX2xhYmVsX3NldF90ZXh0IChHVEtfTEFCRUwgKHBsYXktPmluZm9fbGFiZWwpLCAiIik7CisrICBndGtfd2lkZ2V0X2hpZGUgKHBsYXktPmluZm9fYmFyKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKyBza2lwX3ByZXZfY2xpY2tlZF9jYiAoR3RrQnV0dG9uICogYnV0dG9uLCBHdGtQbGF5ICogcGxheSkKKyB7CisgICBHTGlzdCAqcHJldjsKK0BAIC0xNTUsNiArMTY0LDcgQEAgc2tpcF9wcmV2X2NsaWNrZWRfY2IgKEd0a0J1dHRvbiAqIGJ1dHRvbiwgR3RrUGxheSAqIHBsYXkpCisgCisgICBndGtfd2lkZ2V0X3NldF9zZW5zaXRpdmUgKHBsYXktPm5leHRfYnV0dG9uLCBUUlVFKTsKKyAgIGdzdF9wbGF5ZXJfc2V0X3VyaSAocGxheS0+cGxheWVyLCBwcmV2LT5kYXRhKTsKKysgIGNsZWFyX21pc3NpbmdfcGx1Z2lucyAocGxheSk7CisgICBnc3RfcGxheWVyX3BsYXkgKHBsYXktPnBsYXllcik7CisgICBzZXRfdGl0bGUgKHBsYXksIHByZXYtPmRhdGEpOworICAgZ3RrX3dpZGdldF9zZXRfc2Vuc2l0aXZlIChwbGF5LT5wcmV2X2J1dHRvbiwgZ19saXN0X3ByZXZpb3VzIChwcmV2KSAhPSBOVUxMKTsKK0BAIC0xNzUsNiArMTg1LDcgQEAgc2tpcF9uZXh0X2NsaWNrZWRfY2IgKEd0a0J1dHRvbiAqIGJ1dHRvbiwgR3RrUGxheSAqIHBsYXkpCisgCisgICBndGtfd2lkZ2V0X3NldF9zZW5zaXRpdmUgKHBsYXktPnByZXZfYnV0dG9uLCBUUlVFKTsKKyAgIGdzdF9wbGF5ZXJfc2V0X3VyaSAocGxheS0+cGxheWVyLCBuZXh0LT5kYXRhKTsKKysgIGNsZWFyX21pc3NpbmdfcGx1Z2lucyAocGxheSk7CisgICBnc3RfcGxheWVyX3BsYXkgKHBsYXktPnBsYXllcik7CisgICBzZXRfdGl0bGUgKHBsYXksIG5leHQtPmRhdGEpOworICAgZ3RrX3dpZGdldF9zZXRfc2Vuc2l0aXZlIChwbGF5LT5uZXh0X2J1dHRvbiwgZ19saXN0X25leHQgKG5leHQpICE9IE5VTEwpOworQEAgLTE5MywxMCArMjA0LDE2IEBAIHZvbHVtZV9jaGFuZ2VkX2NiIChHdGtTY2FsZUJ1dHRvbiAqIGJ1dHRvbiwgZ2RvdWJsZSB2YWx1ZSwgR3RrUGxheSAqIHBsYXkpCisgICBnc3RfcGxheWVyX3NldF92b2x1bWUgKHBsYXktPnBsYXllciwgdmFsdWUpOworIH0KKyAKKyt2b2lkCisraW5mb19iYXJfcmVzcG9uc2VfY2IgKEd0a0luZm9CYXIgKiBiYXIsIGdpbnQgcmVzcG9uc2UsIEd0a1BsYXkgKiBwbGF5KQorK3sKKysgIGd0a193aWRnZXRfaGlkZSAoR1RLX1dJREdFVCAoYmFyKSk7CisrfQorKworIHN0YXRpYyB2b2lkCisgY3JlYXRlX3VpIChHdGtQbGF5ICogcGxheSkKKyB7CistICBHdGtXaWRnZXQgKmNvbnRyb2xzLCAqbWFpbl9oYm94LCAqbWFpbl92Ym94OworKyAgR3RrV2lkZ2V0ICpjb250cm9scywgKm1haW5faGJveCwgKm1haW5fdmJveCwgKmluZm9fYmFyLCAqY29udGVudF9hcmVhOworIAorICAgcGxheS0+d2luZG93ID0gZ3RrX3dpbmRvd19uZXcgKEdUS19XSU5ET1dfVE9QTEVWRUwpOworICAgZ19zaWduYWxfY29ubmVjdCAoR19PQkpFQ1QgKHBsYXktPndpbmRvdyksICJkZWxldGUtZXZlbnQiLAorQEAgLTIwOCw2ICsyMjUsMjAgQEAgY3JlYXRlX3VpIChHdGtQbGF5ICogcGxheSkKKyAgIGdfc2lnbmFsX2Nvbm5lY3QgKHBsYXktPnZpZGVvX2FyZWEsICJyZWFsaXplIiwKKyAgICAgICBHX0NBTExCQUNLICh2aWRlb19hcmVhX3JlYWxpemVfY2IpLCBwbGF5KTsKKyAKKysgIHBsYXktPmluZm9fYmFyID0gZ3RrX2luZm9fYmFyX25ldyAoKTsKKysgIGd0a19pbmZvX2Jhcl9zZXRfbWVzc2FnZV90eXBlIChHVEtfSU5GT19CQVIgKHBsYXktPmluZm9fYmFyKSwKKysgICAgICBHVEtfTUVTU0FHRV9XQVJOSU5HKTsKKysgIC8vZ3RrX2luZm9fYmFyX3NldF9zaG93X2Nsb3NlX2J1dHRvbiAoR1RLX0lORk9fQkFSIChwbGF5LT5pbmZvX2JhciksCisrICAvLyAgICBUUlVFKTsKKysgIGd0a193aWRnZXRfc2V0X25vX3Nob3dfYWxsIChwbGF5LT5pbmZvX2JhciwgVFJVRSk7CisrICBnX3NpZ25hbF9jb25uZWN0IChwbGF5LT5pbmZvX2JhciwgInJlc3BvbnNlIiwKKysgICAgICBHX0NBTExCQUNLIChpbmZvX2Jhcl9yZXNwb25zZV9jYiksIHBsYXkpOworKworKyAgY29udGVudF9hcmVhID0gZ3RrX2luZm9fYmFyX2dldF9jb250ZW50X2FyZWEgKEdUS19JTkZPX0JBUiAocGxheS0+aW5mb19iYXIpKTsKKysgIHBsYXktPmluZm9fbGFiZWwgPSBndGtfbGFiZWxfbmV3ICgiIik7CisrICBndGtfY29udGFpbmVyX2FkZCAoR1RLX0NPTlRBSU5FUiAoY29udGVudF9hcmVhKSwgcGxheS0+aW5mb19sYWJlbCk7CisrICBndGtfd2lkZ2V0X3Nob3cgKHBsYXktPmluZm9fbGFiZWwpOworKworICAgLyogVW5pZmllZCBwbGF5L3BhdXNlIGJ1dHRvbiAqLworICAgcGxheS0+cGxheV9wYXVzZV9idXR0b24gPQorICAgICAgIGd0a19idXR0b25fbmV3X2Zyb21faWNvbl9uYW1lICgibWVkaWEtcGxheWJhY2stcGF1c2UiLAorQEAgLTI1OCw2ICsyODksNyBAQCBjcmVhdGVfdWkgKEd0a1BsYXkgKiBwbGF5KQorIAorICAgbWFpbl92Ym94ID0gZ3RrX2JveF9uZXcgKEdUS19PUklFTlRBVElPTl9WRVJUSUNBTCwgMCk7CisgICBndGtfYm94X3BhY2tfc3RhcnQgKEdUS19CT1ggKG1haW5fdmJveCksIG1haW5faGJveCwgVFJVRSwgVFJVRSwgMCk7CisrICBndGtfYm94X3BhY2tfc3RhcnQgKEdUS19CT1ggKG1haW5fdmJveCksIHBsYXktPmluZm9fYmFyLCBGQUxTRSwgRkFMU0UsIDApOworICAgZ3RrX2JveF9wYWNrX3N0YXJ0IChHVEtfQk9YIChtYWluX3Zib3gpLCBjb250cm9scywgRkFMU0UsIEZBTFNFLCAwKTsKKyAgIGd0a19jb250YWluZXJfYWRkIChHVEtfQ09OVEFJTkVSIChwbGF5LT53aW5kb3cpLCBtYWluX3Zib3gpOworIAorQEAgLTMyMiw2ICszNTQsNyBAQCBlb3NfY2IgKEdzdFBsYXllciAqIHVudXNlZCwgR3RrUGxheSAqIHBsYXkpCisgICAgICAgZ3RrX3dpZGdldF9zZXRfc2Vuc2l0aXZlIChwbGF5LT5uZXh0X2J1dHRvbiwgZ19saXN0X25leHQgKG5leHQpICE9IE5VTEwpOworIAorICAgICAgIGdzdF9wbGF5ZXJfc2V0X3VyaSAocGxheS0+cGxheWVyLCBuZXh0LT5kYXRhKTsKKysgICAgICBjbGVhcl9taXNzaW5nX3BsdWdpbnMgKHBsYXkpOworICAgICAgIGdzdF9wbGF5ZXJfcGxheSAocGxheS0+cGxheWVyKTsKKyAgICAgICBzZXRfdGl0bGUgKHBsYXksIG5leHQtPmRhdGEpOworICAgICB9IGVsc2UgeworQEAgLTMzMCw2ICszNjMsMjQgQEAgZW9zX2NiIChHc3RQbGF5ZXIgKiB1bnVzZWQsIEd0a1BsYXkgKiBwbGF5KQorICAgfQorIH0KKyAKKytzdGF0aWMgdm9pZAorK2Vycm9yX2NiIChHc3RQbGF5ZXIgKiBwbGF5ZXIsIEdFcnJvciAqIGVyciwgR3RrUGxheSAqIHBsYXkpCisreworKyAgY2hhciAqbWVzc2FnZTsKKysKKysgIGlmIChnX2Vycm9yX21hdGNoZXMgKGVyciwgZ3N0X3BsYXllcl9lcnJvcl9xdWFyayAoKSwKKysgICAgICBHU1RfUExBWUVSX0VSUk9SX01JU1NJTkdfUExVR0lOKSkgeworKyAgICAvLyBhZGQgbWVzc2FnZSB0byBlbmQgb2YgYW55IGV4aXN0aW5nIG1lc3NhZ2U6IHRoZXJlIG1heSBiZQorKyAgICAvLyBtdWx0aXBsZSBtaXNzaW5nIHBsdWdpbnMuCisrICAgIG1lc3NhZ2UgPSBnX3N0cmR1cF9wcmludGYgKCIlcyVzLiAiLAorKyAgICAgICAgZ3RrX2xhYmVsX2dldF90ZXh0IChHVEtfTEFCRUwgKHBsYXktPmluZm9fbGFiZWwpKSwgZXJyLT5tZXNzYWdlKTsKKysgICAgZ3RrX2xhYmVsX3NldF90ZXh0IChHVEtfTEFCRUwgKHBsYXktPmluZm9fbGFiZWwpLCBtZXNzYWdlKTsKKysgICAgZ19mcmVlIChtZXNzYWdlKTsKKysKKysgICAgZ3RrX3dpZGdldF9zaG93IChwbGF5LT5pbmZvX2Jhcik7CisrICB9CisrfQorKworIGludAorIG1haW4gKGdpbnQgYXJnYywgZ2NoYXIgKiogYXJndikKKyB7CitAQCAtNDIyLDYgKzQ3Myw3IEBAIG1haW4gKGdpbnQgYXJnYywgZ2NoYXIgKiogYXJndikKKyAgIGdfc2lnbmFsX2Nvbm5lY3QgKHBsYXkucGxheWVyLCAidmlkZW8tZGltZW5zaW9ucy1jaGFuZ2VkIiwKKyAgICAgICBHX0NBTExCQUNLICh2aWRlb19kaW1lbnNpb25zX2NoYW5nZWRfY2IpLCAmcGxheSk7CisgICBnX3NpZ25hbF9jb25uZWN0IChwbGF5LnBsYXllciwgImVuZC1vZi1zdHJlYW0iLCBHX0NBTExCQUNLIChlb3NfY2IpLCAmcGxheSk7CisrICBnX3NpZ25hbF9jb25uZWN0IChwbGF5LnBsYXllciwgImVycm9yIiwgR19DQUxMQkFDSyAoZXJyb3JfY2IpLCAmcGxheSk7CisgCisgICAvKiBXZSBoYXZlIGZpbGUocykgdGhhdCBuZWVkIHBsYXlpbmcuICovCisgICBzZXRfdGl0bGUgKCZwbGF5LCBnX2xpc3RfZmlyc3QgKHBsYXkudXJpcyktPmRhdGEpOworZGlmZiAtLWdpdCBhL2xpYi9nc3QvcGxheWVyL2dzdHBsYXllci5jIGIvbGliL2dzdC9wbGF5ZXIvZ3N0cGxheWVyLmMKK2luZGV4IGJkNjgyZDkuLjc4ZTdiYTEgMTAwNjQ0CistLS0gYS9saWIvZ3N0L3BsYXllci9nc3RwbGF5ZXIuYworKysrIGIvbGliL2dzdC9wbGF5ZXIvZ3N0cGxheWVyLmMKK0BAIC00Nyw2ICs0Nyw3IEBACisgCisgI2luY2x1ZGUgPGdzdC9nc3QuaD4KKyAjaW5jbHVkZSA8Z3N0L3ZpZGVvL3ZpZGVvLmg+CisrI2luY2x1ZGUgPGdzdC9wYnV0aWxzL21pc3NpbmctcGx1Z2lucy5oPgorIAorIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMgKGdzdF9wbGF5ZXJfZGVidWcpOworICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIGdzdF9wbGF5ZXJfZGVidWcKK0BAIC0yMzgsNiArMjM5LDcgQEAgZ3N0X3BsYXllcl9jbGFzc19pbml0IChHc3RQbGF5ZXJDbGFzcyAqIGtsYXNzKQorICAgICAgIGdfc2lnbmFsX25ldyAoInZpZGVvLWRpbWVuc2lvbnMtY2hhbmdlZCIsIEdfVFlQRV9GUk9NX0NMQVNTIChrbGFzcyksCisgICAgICAgR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9OT19SRUNVUlNFIHwgR19TSUdOQUxfTk9fSE9PS1MsIDAsIE5VTEwsCisgICAgICAgTlVMTCwgTlVMTCwgR19UWVBFX05PTkUsIDIsIEdfVFlQRV9JTlQsIEdfVFlQRV9JTlQpOworKworIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTYxOSw2ICs2MjEsMjEgQEAgZXJyb3JfY2IgKEdzdEJ1cyAqIGJ1cywgR3N0TWVzc2FnZSAqIG1zZywgZ3BvaW50ZXIgdXNlcl9kYXRhKQorICAgZ19tdXRleF91bmxvY2sgKCZzZWxmLT5wcml2LT5sb2NrKTsKKyB9CisgCisrc3RhdGljIHZvaWQKKytlbGVtZW50X2NiIChHc3RCdXMgKiBidXMsIEdzdE1lc3NhZ2UgKiBtc2csIGdwb2ludGVyIHVzZXJfZGF0YSkKKyt7CisrICBHc3RQbGF5ZXIgKnNlbGYgPSBHU1RfUExBWUVSICh1c2VyX2RhdGEpOworKworKyAgaWYgKGdzdF9pc19taXNzaW5nX3BsdWdpbl9tZXNzYWdlIChtc2cpKSB7CisrICAgIGdjaGFyICpkZXNjOworKworKyAgICBkZXNjID0gZ3N0X21pc3NpbmdfcGx1Z2luX21lc3NhZ2VfZ2V0X2Rlc2NyaXB0aW9uIChtc2cpOworKyAgICBlbWl0X2Vycm9yIChzZWxmLCBnX2Vycm9yX25ldyAoR1NUX1BMQVlFUl9FUlJPUiwKKysgICAgICAgIEdTVF9QTEFZRVJfRVJST1JfTUlTU0lOR19QTFVHSU4sICJNaXNzaW5nIHBsdWdpbiAnJXMnIiwgZGVzYykpOworKyAgICBnX2ZyZWUgKGRlc2MpOworKyAgfQorK30KKysKKyBzdGF0aWMgZ2Jvb2xlYW4KKyBlb3NfZGlzcGF0Y2ggKGdwb2ludGVyIHVzZXJfZGF0YSkKKyB7CitAQCAtMTA1OSw2ICsxMDc2LDggQEAgZ3N0X3BsYXllcl9tYWluIChncG9pbnRlciBkYXRhKQorICAgICAgIE5VTEwsIE5VTEwpOworICAgZ19zb3VyY2VfYXR0YWNoIChidXNfc291cmNlLCBzZWxmLT5wcml2LT5jb250ZXh0KTsKKyAKKysgIGdfc2lnbmFsX2Nvbm5lY3QgKEdfT0JKRUNUIChidXMpLCAibWVzc2FnZTo6ZWxlbWVudCIsCisrICAgICAgR19DQUxMQkFDSyAoZWxlbWVudF9jYiksIHNlbGYpOworICAgZ19zaWduYWxfY29ubmVjdCAoR19PQkpFQ1QgKGJ1cyksICJtZXNzYWdlOjplcnJvciIsIEdfQ0FMTEJBQ0sgKGVycm9yX2NiKSwKKyAgICAgICBzZWxmKTsKKyAgIGdfc2lnbmFsX2Nvbm5lY3QgKEdfT0JKRUNUIChidXMpLCAibWVzc2FnZTo6ZW9zIiwgR19DQUxMQkFDSyAoZW9zX2NiKSwgc2VsZik7CitAQCAtMTU2MCw2ICsxNTc5LDcgQEAgZ3N0X3BsYXllcl9lcnJvcl9nZXRfdHlwZSAodm9pZCkKKyAgIHN0YXRpYyBnc2l6ZSBpZCA9IDA7CisgICBzdGF0aWMgY29uc3QgR0VudW1WYWx1ZSB2YWx1ZXNbXSA9IHsKKyAgICAge0NfRU5VTSAoR1NUX1BMQVlFUl9FUlJPUl9GQUlMRUQpLCAiR1NUX1BMQVlFUl9FUlJPUl9GQUlMRUQiLCAiZmFpbGVkIn0sCisrICAgIHtDX0VOVU0gKEdTVF9QTEFZRVJfRVJST1JfTUlTU0lOR19QTFVHSU4pLCAiR1NUX1BMQVlFUl9FUlJPUl9NSVNTSU5HX1BMVUdJTiIsICJtaXNzaW5nLXBsdWdpbiJ9LAorICAgICB7MCwgTlVMTCwgTlVMTH0KKyAgIH07CisgCitAQCAtMTU3Nyw2ICsxNTk3LDggQEAgZ3N0X3BsYXllcl9lcnJvcl9nZXRfbmFtZSAoR3N0UGxheWVyRXJyb3IgZXJyb3IpCisgICBzd2l0Y2ggKGVycm9yKSB7CisgICAgIGNhc2UgR1NUX1BMQVlFUl9FUlJPUl9GQUlMRUQ6CisgICAgICAgcmV0dXJuICJmYWlsZWQiOworKyAgICBjYXNlIEdTVF9QTEFZRVJfRVJST1JfTUlTU0lOR19QTFVHSU46CisrICAgICAgcmV0dXJuICJtaXNzaW5nLXBsdWdpbiI7CisgICB9CisgCisgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCAoKTsKK2RpZmYgLS1naXQgYS9saWIvZ3N0L3BsYXllci9nc3RwbGF5ZXIuaCBiL2xpYi9nc3QvcGxheWVyL2dzdHBsYXllci5oCitpbmRleCBjNDM4NTEzLi4zNWZiNWJiIDEwMDY0NAorLS0tIGEvbGliL2dzdC9wbGF5ZXIvZ3N0cGxheWVyLmgKKysrKyBiL2xpYi9nc3QvcGxheWVyL2dzdHBsYXllci5oCitAQCAtNDQsNyArNDQsOCBAQCBHVHlwZSAgICAgICAgZ3N0X3BsYXllcl9lcnJvcl9nZXRfdHlwZSAgICAgICAgICAgICAgICAodm9pZCk7CisgI2RlZmluZSAgICAgIEdTVF9UWVBFX1BMQVlFUl9FUlJPUiAgICAgICAgICAgICAgICAgICAgKGdzdF9wbGF5ZXJfZXJyb3JfZ2V0X3R5cGUgKCkpCisgCisgdHlwZWRlZiBlbnVtIHsKKy0gIEdTVF9QTEFZRVJfRVJST1JfRkFJTEVEID0gMAorKyAgR1NUX1BMQVlFUl9FUlJPUl9GQUlMRUQgPSAwLAorKyAgR1NUX1BMQVlFUl9FUlJPUl9NSVNTSU5HX1BMVUdJTgorIH0gR3N0UGxheWVyRXJyb3I7CisgCisgY29uc3QgZ2NoYXIgKmdzdF9wbGF5ZXJfZXJyb3JfZ2V0X25hbWUgICAgICAgICAgICAgICAgKEdzdFBsYXllckVycm9yIGVycm9yKTsKKy0tIAorMi4xLjQKKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdC1wbGF5ZXIvRml4LXBhdXNlLXBsYXkucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0LXBsYXllci9GaXgtcGF1c2UtcGxheS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ODNjNDJhCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdC1wbGF5ZXIvRml4LXBhdXNlLXBsYXkucGF0Y2gKQEAgLTAsMCArMSwxMDcgQEAKK0ZpeCBwYXVzZS9wbGF5CisKK1RoZSBjdXJyZW50IHBsYXllciBzdGF0ZSBpcyBub3cgbm90aWZpZWQgdmlhIHRoZSBzdGF0ZS1jaGFuZ2VkIHNpZ25hbCwKK2FuZCBpbiB0aGUgR1RLIFVJIGl0IHdhcyBvbmx5IHVzZWQgdG8ga2VlcCB0cmFjayBvZiB0aGUgZGVzaXJlZCBzdGF0ZS4KKworVGhpcyBpcyBhIGJhY2twb3J0IG9mIHVwc3RyZWFtIGNvbW1pdCA3Mzg0NzljN2EwLgorCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CitTaWduZWQtb2ZmLWJ5OiBKdXNzaSBLdWtrb25lbiA8anVzc2kua3Vra29uZW5AaW50ZWwuY29tPgorCistLS0KKyBndGsvZ3RrLXBsYXkuYyAgICAgICAgICAgICB8ICA4ICsrKysrKy0tCisgbGliL2dzdC9wbGF5ZXIvZ3N0cGxheWVyLmMgfCAxMiAtLS0tLS0tLS0tLS0KKyBsaWIvZ3N0L3BsYXllci9nc3RwbGF5ZXIuaCB8ICAyIC0tCisgMyBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ3RrL2d0ay1wbGF5LmMgYi9ndGsvZ3RrLXBsYXkuYworaW5kZXggNmU3YTA5OC4uZTJiNjA1YSAxMDA2NDQKKy0tLSBhL2d0ay9ndGstcGxheS5jCisrKysgYi9ndGsvZ3RrLXBsYXkuYworQEAgLTM0LDYgKzM0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QKKyAgIEd0a1dpZGdldCAqaW5mb19iYXI7CisgICBHdGtXaWRnZXQgKnZvbHVtZV9idXR0b247CisgICBndWxvbmcgc2Vla2Jhcl92YWx1ZV9jaGFuZ2VkX3NpZ25hbF9pZDsKKysgIGdib29sZWFuIHBsYXlpbmc7CisgfSBHdGtQbGF5OworIAorIC8qIENvbXBhdCBzdHVicyAqLworQEAgLTExOCwxMiArMTE5LDEzIEBAIHBsYXlfcGF1c2VfY2xpY2tlZF9jYiAoR3RrQnV0dG9uICogYnV0dG9uLCBHdGtQbGF5ICogcGxheSkKKyB7CisgICBHdGtXaWRnZXQgKmltYWdlOworIAorLSAgaWYgKGdzdF9wbGF5ZXJfaXNfcGxheWluZyAocGxheS0+cGxheWVyKSkgeworKyAgaWYgKHBsYXktPnBsYXlpbmcpIHsKKyAgICAgZ3N0X3BsYXllcl9wYXVzZSAocGxheS0+cGxheWVyKTsKKyAgICAgaW1hZ2UgPQorICAgICAgICAgZ3RrX2ltYWdlX25ld19mcm9tX2ljb25fbmFtZSAoIm1lZGlhLXBsYXliYWNrLXN0YXJ0IiwKKyAgICAgICAgIEdUS19JQ09OX1NJWkVfQlVUVE9OKTsKKyAgICAgZ3RrX2J1dHRvbl9zZXRfaW1hZ2UgKEdUS19CVVRUT04gKHBsYXktPnBsYXlfcGF1c2VfYnV0dG9uKSwgaW1hZ2UpOworKyAgICBwbGF5LT5wbGF5aW5nID0gRkFMU0U7CisgICB9IGVsc2UgeworICAgICBnY2hhciAqdGl0bGU7CisgCitAQCAtMTM2LDYgKzEzOCw3IEBAIHBsYXlfcGF1c2VfY2xpY2tlZF9jYiAoR3RrQnV0dG9uICogYnV0dG9uLCBHdGtQbGF5ICogcGxheSkKKyAgICAgdGl0bGUgPSBnc3RfcGxheWVyX2dldF91cmkgKHBsYXktPnBsYXllcik7CisgICAgIHNldF90aXRsZSAocGxheSwgdGl0bGUpOworICAgICBnX2ZyZWUgKHRpdGxlKTsKKysgICAgcGxheS0+cGxheWluZyA9IFRSVUU7CisgICB9CisgfQorIAorQEAgLTMzNSw3ICszMzgsNyBAQCB2aWRlb19kaW1lbnNpb25zX2NoYW5nZWRfY2IgKEdzdFBsYXllciAqIHVudXNlZCwgZ2ludCB3aWR0aCwgZ2ludCBoZWlnaHQsCisgc3RhdGljIHZvaWQKKyBlb3NfY2IgKEdzdFBsYXllciAqIHVudXNlZCwgR3RrUGxheSAqIHBsYXkpCisgeworLSAgaWYgKGdzdF9wbGF5ZXJfaXNfcGxheWluZyAocGxheS0+cGxheWVyKSkgeworKyAgaWYgKHBsYXktPnBsYXlpbmcpIHsKKyAgICAgR0xpc3QgKm5leHQgPSBOVUxMOworICAgICBnY2hhciAqdXJpOworIAorQEAgLTQ1Miw2ICs0NTUsNyBAQCBtYWluIChnaW50IGFyZ2MsIGdjaGFyICoqIGFyZ3YpCisgICB9CisgCisgICBwbGF5LnBsYXllciA9IGdzdF9wbGF5ZXJfbmV3ICgpOworKyAgcGxheS5wbGF5aW5nID0gVFJVRTsKKyAKKyAgIGdfb2JqZWN0X3NldCAocGxheS5wbGF5ZXIsICJkaXNwYXRjaC10by1tYWluLWNvbnRleHQiLCBUUlVFLCBOVUxMKTsKKyAKK2RpZmYgLS1naXQgYS9saWIvZ3N0L3BsYXllci9nc3RwbGF5ZXIuYyBiL2xpYi9nc3QvcGxheWVyL2dzdHBsYXllci5jCitpbmRleCAwNjliMjg0Li43OGU3YmExIDEwMDY0NAorLS0tIGEvbGliL2dzdC9wbGF5ZXIvZ3N0cGxheWVyLmMKKysrKyBiL2xpYi9nc3QvcGxheWVyL2dzdHBsYXllci5jCitAQCAtMTQyMiwxOCArMTQyMiw2IEBAIGdzdF9wbGF5ZXJfc2V0X3VyaSAoR3N0UGxheWVyICogc2VsZiwgY29uc3QgZ2NoYXIgKiB2YWwpCisgICBnX29iamVjdF9zZXQgKHNlbGYsICJ1cmkiLCB2YWwsIE5VTEwpOworIH0KKyAKKy1nYm9vbGVhbgorLWdzdF9wbGF5ZXJfaXNfcGxheWluZyAoR3N0UGxheWVyICogc2VsZikKKy17CistICBnYm9vbGVhbiB2YWw7CistCistICBnX3JldHVybl92YWxfaWZfZmFpbCAoR1NUX0lTX1BMQVlFUiAoc2VsZiksIEZBTFNFKTsKKy0KKy0gIGdfb2JqZWN0X2dldCAoc2VsZiwgImlzLXBsYXlpbmciLCAmdmFsLCBOVUxMKTsKKy0KKy0gIHJldHVybiB2YWw7CistfQorLQorIEdzdENsb2NrVGltZQorIGdzdF9wbGF5ZXJfZ2V0X3Bvc2l0aW9uIChHc3RQbGF5ZXIgKiBzZWxmKQorIHsKK2RpZmYgLS1naXQgYS9saWIvZ3N0L3BsYXllci9nc3RwbGF5ZXIuaCBiL2xpYi9nc3QvcGxheWVyL2dzdHBsYXllci5oCitpbmRleCA2OTMzZGQ3Li4zNWZiNWJiIDEwMDY0NAorLS0tIGEvbGliL2dzdC9wbGF5ZXIvZ3N0cGxheWVyLmgKKysrKyBiL2xpYi9nc3QvcGxheWVyL2dzdHBsYXllci5oCitAQCAtOTMsOCArOTMsNiBAQCBnY2hhciAqICAgICAgZ3N0X3BsYXllcl9nZXRfdXJpICAgICAgICAgICAgICAgICAgICAgICAoR3N0UGxheWVyICAgICogcGxheWVyKTsKKyB2b2lkICAgICAgICAgZ3N0X3BsYXllcl9zZXRfdXJpICAgICAgICAgICAgICAgICAgICAgICAoR3N0UGxheWVyICAgICogcGxheWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgKiB1cmkpOworIAorLWdib29sZWFuICAgICBnc3RfcGxheWVyX2lzX3BsYXlpbmcgICAgICAgICAgICAgICAgICAgIChHc3RQbGF5ZXIgICAgKiBwbGF5ZXIpOworLQorIEdzdENsb2NrVGltZSBnc3RfcGxheWVyX2dldF9wb3NpdGlvbiAgICAgICAgICAgICAgICAgIChHc3RQbGF5ZXIgICAgKiBwbGF5ZXIpOworIEdzdENsb2NrVGltZSBnc3RfcGxheWVyX2dldF9kdXJhdGlvbiAgICAgICAgICAgICAgICAgIChHc3RQbGF5ZXIgICAgKiBwbGF5ZXIpOworIAorLS0gCisyLjEuNAorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0LXBsYXllci9maWxlY2hvb3Nlci5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3QtcGxheWVyL2ZpbGVjaG9vc2VyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiZjFiMDMKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0LXBsYXllci9maWxlY2hvb3Nlci5wYXRjaApAQCAtMCwwICsxLDU0IEBACitVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZAorU2lnbmVkLW9mZi1ieTogUm9zcyBCdXJ0b24gPHJvc3MuYnVydG9uQGludGVsLmNvbT4KKworRnJvbSA0M2Q0YjE5YWI2MTFkODQ0MTU2ZTI2YzQ4NDBjYzU0ZGRiNzNhZTAzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUm9zcyBCdXJ0b24gPHJvc3MuYnVydG9uQGludGVsLmNvbT4KK0RhdGU6IFRodSwgMjYgRmViIDIwMTUgMTc6MTc6MDUgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gZ3RrLXBsYXk6IHNob3cgYSBmaWxlIGNob29zZXIgaWYgbm8gVVJJcyB3ZXJlIHBhc3NlZAorCistLS0KKyBndGsvZ3RrLXBsYXkuYyB8ICAgMjggKysrKysrKysrKysrKysrKysrKysrKysrKystLQorIDEgZmlsZSBjaGFuZ2VkLCAyNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ3RrL2d0ay1wbGF5LmMgYi9ndGsvZ3RrLXBsYXkuYworaW5kZXggZjAxNTA3Ny4uOTc2NmE3MiAxMDA2NDQKKy0tLSBhL2d0ay9ndGstcGxheS5jCisrKysgYi9ndGsvZ3RrLXBsYXkuYworQEAgLTMxOSw4ICszMTksMzIgQEAgbWFpbiAoZ2ludCBhcmdjLCBnY2hhciAqKiBhcmd2KQorICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBwbGF5bGlzdHMgYW5kIHN0dWZmCisgICAvKiBQYXJzZSB0aGUgbGlzdCBvZiB0aGUgZmlsZSBuYW1lcyB3ZSBoYXZlIHRvIHBsYXkuICovCisgICBpZiAoIWZpbGVfbmFtZXMpIHsKKy0gICAgZ19wcmludCAoIlVzYWdlOiAlcyBGSUxFKHMpfFVSSShzKVxuIiwgQVBQX05BTUUpOworLSAgICByZXR1cm4gMTsKKysgICAgR3RrV2lkZ2V0ICpjaG9vc2VyOworKyAgICBpbnQgcmVzOworKworKyAgICBjaG9vc2VyID0gZ3RrX2ZpbGVfY2hvb3Nlcl9kaWFsb2dfbmV3ICgiU2VsZWN0IGZpbGVzIHRvIHBsYXkiLCBOVUxMLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19GSUxFX0NIT09TRVJfQUNUSU9OX09QRU4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9DYW5jZWwiLCBHVEtfUkVTUE9OU0VfQ0FOQ0VMLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfT3BlbiIsIEdUS19SRVNQT05TRV9BQ0NFUFQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisrICAgIGdfb2JqZWN0X3NldCAoY2hvb3NlciwKKysgICAgICAgICAgICAgICAgICAibG9jYWwtb25seSIsIEZBTFNFLAorKyAgICAgICAgICAgICAgICAgICJzZWxlY3QtbXVsdGlwbGUiLCBUUlVFLAorKyAgICAgICAgICAgICAgICAgIE5VTEwpOworKworKyAgICByZXMgPSBndGtfZGlhbG9nX3J1biAoR1RLX0RJQUxPRyAoY2hvb3NlcikpOworKyAgICBpZiAocmVzID09IEdUS19SRVNQT05TRV9BQ0NFUFQpIHsKKysgICAgICBHU0xpc3QgKmw7CisrCisrICAgICAgbCA9IGd0a19maWxlX2Nob29zZXJfZ2V0X3VyaXMgKEdUS19GSUxFX0NIT09TRVIgKGNob29zZXIpKTsKKysgICAgICB3aGlsZSAobCkgeworKyAgICAgICAgcGxheS51cmlzID0gZ19saXN0X2FwcGVuZCAocGxheS51cmlzLCBsLT5kYXRhKTsKKysgICAgICAgIGwgPSBnX3NsaXN0X2RlbGV0ZV9saW5rIChsLCBsKTsKKysgICAgICB9CisrICAgIH0gZWxzZSB7CisrICAgICAgcmV0dXJuIDA7CisrICAgIH0KKysgICAgZ3RrX3dpZGdldF9kZXN0cm95IChjaG9vc2VyKTsKKyAgIH0gZWxzZSB7CisgICAgIGd1aW50IGk7CisgCistLSAKKzEuNy4xMC40CisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3QtcGxheWVyL2dzdC1wbGF5ZXIuZGVza3RvcCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3QtcGxheWVyL2dzdC1wbGF5ZXIuZGVza3RvcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmQyMDdiCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdC1wbGF5ZXIvZ3N0LXBsYXllci5kZXNrdG9wCkBAIC0wLDAgKzEsMTAgQEAKK1tEZXNrdG9wIEVudHJ5XQorTmFtZT1NZWRpYSBQbGF5ZXIKK0NvbW1lbnQ9QmFzaWMgbWVkaWEgcGxheWVyCitJY29uPWF1ZGlvLXBsYXllcgorVHJ5RXhlYz1ndGstcGxheQorRXhlYz1ndGstcGxheQorU3RhcnR1cE5vdGlmeT10cnVlCitUZXJtaW5hbD1mYWxzZQorVHlwZT1BcHBsaWNhdGlvbgorQ2F0ZWdvcmllcz1HVEs7QXVkaW9WaWRlbzsKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3QtcGxheWVyL2d0azIucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0LXBsYXllci9ndGsyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjZDE4YmIKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0LXBsYXllci9ndGsyLnBhdGNoCkBAIC0wLDAgKzEsNzEgQEAKK0FzIHRoZSByZXN0IG9mIFNhdG8gaXMgR1RLKyAyLCBwYXRjaCBndGstcGxheSB0byB1c2UgR1RLKyAyLiAgV2hlbiB0aGUgcmVzdCBvZgorU2F0byBoYXMgYmVlbiBwb3J0ZWQgdG8gR1RLKyAzIHRoaXMgcGF0Y2ggY2FuIGJlIGRyb3BwZWQuCisKK1Vwc3RyZWFtLVN0YXR1czogSW5hcHByb3ByaWF0ZQorU2lnbmVkLW9mZi1ieTogUm9zcyBCdXJ0b24gPHJvc3MuYnVydG9uQGludGVsLmNvbT4KKworCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCBiOGFmMTNiLi45MGFiNzRjIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC02MCw3ICs2MCw3IEBAIEFDX1NVQlNUKEdMSUJfUFJFRklYKQorIEdTVF9QUkVGSVg9ImAkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPXByZWZpeCBnc3RyZWFtZXItMS4wYCIKKyBBQ19TVUJTVChHU1RfUFJFRklYKQorIAorLVBLR19DSEVDS19NT0RVTEVTKEdUSywgW2d0aystMy4wXSwgW2hhdmVfZ3RrPSJ5ZXMiXSwgW2hhdmVfZ3RrPSJubyJdKQorK1BLR19DSEVDS19NT0RVTEVTKEdUSywgW2d0aystMi4wXSwgW2hhdmVfZ3RrPSJ5ZXMiXSwgW2hhdmVfZ3RrPSJubyJdKQorIEFNX0NPTkRJVElPTkFMKEhBVkVfR1RLLCB0ZXN0ICJ4JGhhdmVfZ3RrIiAhPSAieG5vIikKKyAKKyBHT0JKRUNUX0lOVFJPU1BFQ1RJT05fQ0hFQ0soWzEuMzEuMV0pCitkaWZmIC0tZ2l0IGEvZ3RrL2d0ay1wbGF5LmMgYi9ndGsvZ3RrLXBsYXkuYworaW5kZXggZjAxNTA3Ny4uOTU0ZDZmYiAxMDA2NDQKKy0tLSBhL2d0ay9ndGstcGxheS5jCisrKysgYi9ndGsvZ3RrLXBsYXkuYworQEAgLTM0LDYgKzM0LDQ2IEBAIHR5cGVkZWYgc3RydWN0CisgICBndWxvbmcgc2Vla2Jhcl92YWx1ZV9jaGFuZ2VkX3NpZ25hbF9pZDsKKyB9IEd0a1BsYXk7CisgCisrLyogQ29tcGF0IHN0dWJzICovCisrR3RrV2lkZ2V0ICoKKytndGtfYm94X25ldyAoR3RrT3JpZW50YXRpb24gb3JpZW50YXRpb24sCisrICAgICAgICAgICAgIGdpbnQgc3BhY2luZykKKyt7CisrICBzd2l0Y2ggKG9yaWVudGF0aW9uKSB7CisrICBjYXNlIEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMOgorKyAgICByZXR1cm4gZ3RrX2hib3hfbmV3IChGQUxTRSwgc3BhY2luZyk7CisrICBjYXNlIEdUS19PUklFTlRBVElPTl9WRVJUSUNBTDoKKysgICAgcmV0dXJuIGd0a192Ym94X25ldyAoRkFMU0UsIHNwYWNpbmcpOworKyAgfQorK30KKysKKytHdGtXaWRnZXQqCisrZ3RrX2J1dHRvbl9uZXdfZnJvbV9pY29uX25hbWUgKGNvbnN0IGdjaGFyICppY29uX25hbWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEd0a0ljb25TaXplICBzaXplKQorK3sKKysgIEd0a1dpZGdldCAqYnV0dG9uOworKyAgR3RrV2lkZ2V0ICppbWFnZTsKKysKKysgIGltYWdlID0gZ3RrX2ltYWdlX25ld19mcm9tX2ljb25fbmFtZSAoaWNvbl9uYW1lLCBzaXplKTsKKysgIGJ1dHRvbiA9ICBnX29iamVjdF9uZXcgKEdUS19UWVBFX0JVVFRPTiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgImltYWdlIiwgaW1hZ2UsCisrICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworKyAgcmV0dXJuIGJ1dHRvbjsKKyt9CisrCisrR3RrV2lkZ2V0ICoKKytndGtfc2NhbGVfbmV3X3dpdGhfcmFuZ2UgKEd0a09yaWVudGF0aW9uIG9yaWVudGF0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgZ2RvdWJsZSBtaW4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICBnZG91YmxlIG1heCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGdkb3VibGUgc3RlcCkKKyt7CisrICBzd2l0Y2ggKG9yaWVudGF0aW9uKSB7CisrICBjYXNlIEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMOgorKyAgICByZXR1cm4gZ3RrX2hzY2FsZV9uZXdfd2l0aF9yYW5nZSAobWluLCBtYXgsIHN0ZXApOworKyAgY2FzZSBHVEtfT1JJRU5UQVRJT05fVkVSVElDQUw6CisrICAgIHJldHVybiBndGtfdnNjYWxlX25ld193aXRoX3JhbmdlIChtaW4sIG1heCwgc3RlcCk7CisrICB9CisrfQorIAorIHN0YXRpYyB2b2lkCisgc2V0X3RpdGxlIChHdGtQbGF5ICogcGxheSwgY29uc3QgZ2NoYXIgKiB0aXRsZSkKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3QtcGxheWVyX2dpdC5iYiBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3QtcGxheWVyX2dpdC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGNmYmJjCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdC1wbGF5ZXJfZ2l0LmJiCkBAIC0wLDAgKzEsMzggQEAKK1NVTU1BUlk9IkdTdHJlYW1lciBwbGF5YmFjayBoZWxwZXIgbGlicmFyeSBhbmQgZXhhbXBsZXMiCisKK0xJQ0VOU0UgPSAiTEdQTC0yLjArIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vbGliL2dzdC9wbGF5ZXIvZ3N0cGxheWVyLmM7YmVnaW5saW5lPTE7ZW5kbGluZT0xOTttZDU9MDNhZWNhOWQ4Mjk1ZjgxMTgxNzkwOTA3NWExNWZmNjUiCisKK0RFUEVORFMgPSAiZ2xpYi0yLjAgZ3N0cmVhbWVyMS4wIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UgZ3RrKyIKKworU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL3Nkcm9lZ2UvZ3N0LXBsYXllci5naXQgXAorICAgICAgICAgICBmaWxlOi8vZmlsZWNob29zZXIucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vZ3RrMi5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9GaXgtcGF1c2UtcGxheS5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9BZGQtZXJyb3Itc2lnbmFsLWVtaXNzaW9uLWZvci1taXNzaW5nLXBsdWdpbnMucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vZ3N0LXBsYXllci5kZXNrdG9wIgorCitTUkNSRVYgPSAiNTM4NmM1Yjk4NGQ0MGVmNTQzNDY3M2VkNjIyMDRlNjlhYWY1MjY0NSIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBhdXRvdG9vbHMgZ3RrLWRvYyBsaWJfcGFja2FnZSBwa2djb25maWcKKworZG9fY29uZmlndXJlX3ByZXBlbmQoKSB7CisJdG91Y2ggJHtTfS9DaGFuZ2VMb2cKK30KKworRVhUUkFfT0VDT05GICs9ICJhY19jdl9wYXRoX1ZBTEdSSU5EPW5vIGFjX2N2X3BhdGhfR0RCPW5vIgorCitkb19pbnN0YWxsX2FwcGVuZCgpIHsKKwlpbnN0YWxsIC1tIDA2NDQgLUQgJHtXT1JLRElSfS9nc3QtcGxheWVyLmRlc2t0b3AgJHtEfSR7ZGF0YWRpcn0vYXBwbGljYXRpb25zL2dzdC1wbGF5ZXIuZGVza3RvcAorfQorCitGSUxFU18ke1BOfS1iaW4gKz0gIiR7ZGF0YWRpcn0vYXBwbGljYXRpb25zLyouZGVza3RvcCIKKworUkRFUEVORFNfJHtQTn0tYmluID0gImdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UtcGxheWJhY2siCitSUkVDT01NRU5EU18ke1BOfS1iaW4gPSAiZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS1tZXRhIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBnc3RyZWFtZXIxLjAtcGx1Z2lucy1nb29kLW1ldGEgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhZC1tZXRhIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAke0BiYi51dGlscy5jb250YWlucygiTElDRU5TRV9GTEFHU19XSElURUxJU1QiLCAiY29tbWVyY2lhbCIsICJnc3RyZWFtZXIxLjAtbGliYXYiLCAiIiwgZCl9IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAke0BiYi51dGlscy5jb250YWlucygiTElDRU5TRV9GTEFHU19XSElURUxJU1QiLCAiY29tbWVyY2lhbCIsICJnc3RyZWFtZXIxLjAtcGx1Z2lucy11Z2x5LW1ldGEiLCAiIiwgZCl9IgpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdC1wbHVnaW5zLXBhY2thZ2UuaW5jIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdC1wbHVnaW5zLXBhY2thZ2UuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiMWJlMDYKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0LXBsdWdpbnMtcGFja2FnZS5pbmMKQEAgLTAsMCArMSw1OCBAQAorUEFDS0FHRVNQTElURlVOQ1NfcHJlcGVuZCA9ICIgc3BsaXRfZ3N0cmVhbWVyMTBfcGFja2FnZXMgIgorUEFDS0FHRVNQTElURlVOQ1NfYXBwZW5kID0gIiBzZXRfbWV0YXBrZ19yZGVwZW5kcyAiCisKK3B5dGhvbiBzcGxpdF9nc3RyZWFtZXIxMF9wYWNrYWdlcyAoKSB7CisgICAgZ3N0X2xpYmRpciA9IGQuZXhwYW5kKCcke2xpYmRpcn0vZ3N0cmVhbWVyLSR7TElCVn0nKQorICAgIHBvc3RpbnN0ID0gZC5nZXRWYXIoJ3BsdWdpbl9wb3N0aW5zdCcsIFRydWUpCisgICAgZ2xpYmRpciA9IGQuZ2V0VmFyKCdsaWJkaXInLCBUcnVlKQorCisgICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgZ2xpYmRpciwgJ15saWIoLiopXC5zb1wuKicsICdsaWIlcycsICdnc3RyZWFtZXIgJXMgbGlicmFyeScsIGV4dHJhX2RlcGVuZHM9JycsIGFsbG93X2xpbmtzPVRydWUpCisgICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgZ3N0X2xpYmRpciwgJ2xpYmdzdCguKilcLnNvJCcsIGQuZXhwYW5kKCcke1BOfS0lcycpLCAnR1N0cmVhbWVyIHBsdWdpbiBmb3IgJXMnLCBwb3N0aW5zdD1wb3N0aW5zdCwgZXh0cmFfZGVwZW5kcz0nJykKKyAgICBkb19zcGxpdF9wYWNrYWdlcyhkLCBnc3RfbGliZGlyLCAnbGliZ3N0KC4qKVwubGEkJywgZC5leHBhbmQoJyR7UE59LSVzLWRldicpLCAnR1N0cmVhbWVyIHBsdWdpbiBmb3IgJXMgKGRldmVsb3BtZW50IGZpbGVzKScsIGV4dHJhX2RlcGVuZHM9ZC5leHBhbmQoJyR7UE59LWRldicpKQorICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIGdzdF9saWJkaXIsICdsaWJnc3QoLiopXC5hJCcsIGQuZXhwYW5kKCcke1BOfS0lcy1zdGF0aWNkZXYnKSwgJ0dTdHJlYW1lciBwbHVnaW4gZm9yICVzIChzdGF0aWMgZGV2ZWxvcG1lbnQgZmlsZXMpJywgZXh0cmFfZGVwZW5kcz1kLmV4cGFuZCgnJHtQTn0tc3RhdGljZGV2JykpCit9CisKK3B5dGhvbiBzZXRfbWV0YXBrZ19yZGVwZW5kcyAoKSB7CisgICAgaW1wb3J0IG9zCisKKyAgICBwbiA9IGQuZ2V0VmFyKCdQTicsIFRydWUpCisgICAgbWV0YXBrZyA9ICBwbiArICctbWV0YScKKyAgICBkLnNldFZhcignQUxMT1dfRU1QVFlfJyArIG1ldGFwa2csICIxIikKKyAgICBkLnNldFZhcignRklMRVNfJyArIG1ldGFwa2csICIiKQorICAgIGJsYWNrbGlzdCA9IFsgcG4sIHBuICsgJy1sb2NhbGUnLCBwbiArICctZGV2JywgcG4gKyAnLWRiZycsIHBuICsgJy1kb2MnLCBwbiArICctbWV0YScgXQorICAgIG1ldGFwa2dfcmRlcGVuZHMgPSBbXQorICAgIHBhY2thZ2VzID0gZC5nZXRWYXIoJ1BBQ0tBR0VTJywgVHJ1ZSkuc3BsaXQoKQorICAgIHBrZ2Rlc3QgPSBkLmdldFZhcignUEtHREVTVCcsIFRydWUpCisgICAgZm9yIHBrZyBpbiBwYWNrYWdlc1sxOl06CisgICAgICAgIGlmIG5vdCBwa2cgaW4gYmxhY2tsaXN0IGFuZCBub3QgcGtnIGluIG1ldGFwa2dfcmRlcGVuZHMgYW5kIG5vdCBwa2cuZW5kc3dpdGgoJy1kZXYnKSBhbmQgbm90IHBrZy5lbmRzd2l0aCgnLWRiZycpIGFuZCBub3QgcGtnLmNvdW50KCdsb2NhbGUnKSBhbmQgbm90IHBrZy5jb3VudCgnLXN0YXRpY2RldicpOgorICAgICAgICAgICAgIyBTZWUgaWYgdGhlIHBhY2thZ2UgaXMgZW1wdHkgYnkgbG9va2luZyBhdCB0aGUgY29udGVudHMgb2YgaXRzIFBLR0RFU1Qgc3ViZGlyZWN0b3J5LiAKKyAgICAgICAgICAgICMgSWYgdGhpcyBzdWJkaXJlY3RvcnkgaXMgZW1wdHksIHRoZW4gdGhlIHBhY2thZ2UgaXMuCisgICAgICAgICAgICAjIEVtcHR5IHBhY2thZ2VzIGRvIG5vdCBnZXQgYWRkZWQgdG8gdGhlIG1ldGEgcGFja2FnZSdzIFJERVBFTkRTCisgICAgICAgICAgICBwa2dkaXIgPSBvcy5wYXRoLmpvaW4ocGtnZGVzdCwgcGtnKQorICAgICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMocGtnZGlyKToKKyAgICAgICAgICAgICAgICBkaXJfY29udGVudHMgPSBvcy5saXN0ZGlyKHBrZ2Rpcikgb3IgW10KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZGlyX2NvbnRlbnRzID0gW10KKyAgICAgICAgICAgIGlzX2VtcHR5ID0gbGVuKGRpcl9jb250ZW50cykgPT0gMAorICAgICAgICAgICAgaWYgbm90IGlzX2VtcHR5OgorICAgICAgICAgICAgICAgIG1ldGFwa2dfcmRlcGVuZHMuYXBwZW5kKHBrZykKKyAgICBkLnNldFZhcignUkRFUEVORFNfJyArIG1ldGFwa2csICcgJy5qb2luKG1ldGFwa2dfcmRlcGVuZHMpKQorICAgIGQuc2V0VmFyKCdERVNDUklQVElPTl8nICsgbWV0YXBrZywgcG4gKyAnIG1ldGEgcGFja2FnZScpCit9CisKKyMgZWFjaCBwbHVnaW4tZGV2IGRlcGVuZHMgb24gUE4tZGV2LCBwbHVnaW4tc3RhdGljZGV2IG9uIFBOLXN0YXRpY2RldgorIyBzbyB3ZSBuZWVkIHRoZW0gZXZlbiB3aGVuIGVtcHR5IChsaWtlIGluIGdzdC1wbHVnaW5zLWdvb2QgY2FzZSkKK0FMTE9XX0VNUFRZXyR7UE59ID0gIjEiCitBTExPV19FTVBUWV8ke1BOfS1kZXYgPSAiMSIKK0FMTE9XX0VNUFRZXyR7UE59LXN0YXRpY2RldiA9ICIxIgorCitQQUNLQUdFUyArPSAiJHtQTn0tYXBwcyAke1BOfS1tZXRhICR7UE59LWdsaWIiCitGSUxFU18ke1BOfS1hcHBzID0gIiR7YmluZGlyfSIKKworUkRFUEVORFNfJHtQTn0tYXBwcyArPSAicGVybCIKK1JSRUNPTU1FTkRTXyR7UE59ICs9ICIke1BOfS1tZXRhIgorCitGSUxFU18ke1BOfSA9ICIiCitGSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9nc3RyZWFtZXItJHtMSUJWfS8uZGVidWciCitGSUxFU18ke1BOfS1nbGliID0gIiR7ZGF0YWRpcn0vZ2xpYi0yLjAiCisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtbGliYXYuaW5jIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1saWJhdi5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODRlNmU5NQotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtbGliYXYuaW5jCkBAIC0wLDAgKzEsMzIgQEAKK1NVTU1BUlkgPSAiTGliYXYtYmFzZWQgR1N0cmVhbWVyIDEueCBwbHVnaW4iCitTRUNUSU9OID0gIm11bHRpbWVkaWEiCitMSUNFTlNFID0gIkdQTHYyKyAmIExHUEx2MisgJiAoIChHUEx2MisgJiBMR1BMdjIuMSspIHwgKEdQTHYzKyAmIExHUEx2MyspICkiCitMSUNFTlNFX0ZMQUdTID0gImNvbW1lcmNpYWwiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LmdzdHJlYW1lci5uZXQvIgorREVQRU5EUyA9ICJnc3RyZWFtZXIxLjAgZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZSB6bGliIGJ6aXAyIgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworIyBDQVVUSU9OOiBVc2luZyB0aGUgc3lzdGVtIGxpYmF2IGlzIG5vdCByZWNvbW1lbmRlZC4gU2luY2UgdGhlIGxpYmF2IEFQSSBpcyBjaGFuZ2luZyBhbGwgdGhlIHRpbWUsCisjIGNvbXBpbGF0aW9uIGVycm9ycyAoYW5kIG90aGVyLCBtb3JlIHN1YnRsZSBidWdzKSBjYW4gaGFwcGVuLiBJdCBpcyB1c3VhbGx5IGJldHRlciB0byByZWx5IG9uIHRoZQorIyBsaWJhdiBjb3B5IGluY2x1ZGVkIGluIHRoZSBnc3QtbGliYXYgcGFja2FnZS4KK1BBQ0tBR0VDT05GSUcgPz89ICIgb3JjIHlhc20gIgorUEFDS0FHRUNPTkZJR1tsaWJhdl0gPSAiLS13aXRoLXN5c3RlbS1saWJhdiwsbGliYXYiCitQQUNLQUdFQ09ORklHW2xncGxdICA9ICItLWVuYWJsZS1sZ3BsLCwiCitQQUNLQUdFQ09ORklHW3lhc21dICA9ICItLWVuYWJsZS15YXNtLC0tZGlzYWJsZS15YXNtLHlhc20tbmF0aXZlIgorUEFDS0FHRUNPTkZJR1tvcmNdICA9ICItLWVuYWJsZS1vcmMsLS1kaXNhYmxlLW9yYyxvcmMiCisKKworR1NUUkVBTUVSXzFfMF9ERUJVRyA/PSAiLS1kaXNhYmxlLWRlYnVnIgorCitMSUJBVl9FWFRSQV9DT05GSUdVUkUgPSAiLS13aXRoLWxpYmF2LWV4dHJhLWNvbmZpZ3VyZSIKK0xJQkFWX0VYVFJBX0NPTkZJR1VSRV9DT01NT04gPSBcCisnJHtMSUJBVl9FWFRSQV9DT05GSUdVUkV9PSIke0xJQkFWX0VYVFJBX0NPTkZJR1VSRV9DT01NT05fQVJHfSInCisKK0VYVFJBX09FQ09ORiA9ICIke0xJQkFWX0VYVFJBX0NPTkZJR1VSRV9DT01NT059IgorCitGSUxFU18ke1BOfSArPSAiJHtsaWJkaXJ9L2dzdHJlYW1lci0xLjAvKi5zbyIKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJkaXJ9L2dzdHJlYW1lci0xLjAvLmRlYnVnIgorRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vZ3N0cmVhbWVyLTEuMC8qLmxhIgorRklMRVNfJHtQTn0tc3RhdGljZGV2ICs9ICIke2xpYmRpcn0vZ3N0cmVhbWVyLTEuMC8qLmEiCisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtbGliYXYvMDAwMS1EaXNhYmxlLXlhc20tZm9yLWxpYmF2LXdoZW4tZGlzYWJsZS15YXNtLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1saWJhdi8wMDAxLURpc2FibGUteWFzbS1mb3ItbGliYXYtd2hlbi1kaXNhYmxlLXlhc20ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ5OWFkMQotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtbGliYXYvMDAwMS1EaXNhYmxlLXlhc20tZm9yLWxpYmF2LXdoZW4tZGlzYWJsZS15YXNtLnBhdGNoCkBAIC0wLDAgKzEsMzMgQEAKK0Zyb20gNTRiYmEyMjhlYTUyZDAxZmQ4NDk0MWQ5N2JlMjNjMDNmOTg2MmI2NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KK0RhdGU6IFNhdCwgNiBBcHIgMjAxMyAwMToyMjoyMiArMDIwMAorU3ViamVjdDogW1BBVENIXSBEaXNhYmxlIHlhc20gZm9yIGxpYmF2IHdoZW4gLS1kaXNhYmxlLXlhc20KKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQorCitTaWduZWQtb2ZmLWJ5OiBTaGFuZSBXYW5nIDxzaGFuZS53YW5nQGludGVsLmNvbT4KK1NpZ25lZC1vZmYtYnk6IENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KKy0tLQorIGNvbmZpZ3VyZS5hYyB8IDQgKysrKworIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5kZXggMjJlZGU4OC4uZWYzYzA1MCAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysrIGIvY29uZmlndXJlLmFjCitAQCAtMzA1LDYgKzMwNSwxMiBAQCBlbHNlCisgICAgIGVtYmxpYmF2X2NvbmZpZ3VyZV9hcmdzPSIkZW1ibGliYXZfY29uZmlndXJlX2FyZ3MgLS1lbmFibGUtZ3BsIgorICAgZmkKKworKyAgQUNfQVJHX0VOQUJMRSh5YXNtLAorKyAgICAgICAgICAgICAgW0FDX0hFTFBfU1RSSU5HKFstLWRpc2FibGUteWFzbV0sIFtkaXNhYmxlIHVzZSBvZiB5YXNtIGFzc2VtYmxlcl0pXSkKKysgIGlmIHRlc3QgIngkZW5hYmxlX3lhc20iID0gInhubyI7IHRoZW4KKysgICAgZW1ibGliYXZfY29uZmlndXJlX2FyZ3M9IiRlbWJsaWJhdl9jb25maWd1cmVfYXJncyAtLWRpc2FibGUteWFzbSIKKysgIGZpCisrCisgICAjIGlmIHdlIGFyZSBjcm9zcy1jb21waWxpbmcsIHRlbGwgbGliYXYgc28KKyAgIGNhc2UgJGhvc3QgaW4KKyAgICAgICAqYW5kcm9pZCopCistLSAKKzEuOC4yCisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtbGliYXYvd29ya2Fyb3VuZC10by1idWlsZC1nc3QtbGliYXYtZm9yLWk1ODYtd2l0aC1nY2MucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLWxpYmF2L3dvcmthcm91bmQtdG8tYnVpbGQtZ3N0LWxpYmF2LWZvci1pNTg2LXdpdGgtZ2NjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjYWRlYTQKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLWxpYmF2L3dvcmthcm91bmQtdG8tYnVpbGQtZ3N0LWxpYmF2LWZvci1pNTg2LXdpdGgtZ2NjLnBhdGNoCkBAIC0wLDAgKzEsMjYgQEAKK0Rlc2NyaXB0aW9uOiBXb3JrYXJvdW5kIHRvIGJ1aWxkIGxpYmF2IGZvciBpNTg2IHdpdGggZ2NjIDQuOS4yIGJ5IGF2b2lkaW5nIG1lbXNldAorQXV0aG9yOiBCZXJuaGFyZCDcYmVsYWNrZXIgPGJlcm5oYXJkdUB2ci13ZWIuZGU+CisKKy0tLQorQnVnLURlYmlhbjogaHR0cHM6Ly9idWdzLmRlYmlhbi5vcmcvNzgzMDgyCitMYXN0LVVwZGF0ZTogMjAxNS0wNC0yOAorCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFtkZWJpYW5dCisKK1NpZ25lZC1vZmYtYnk6IFJvYmVydCBZYW5nIDxsaWV6aGkueWFuZ0B3aW5kcml2ZXIuY29tPgorCistLS0gZ3N0LWxpYmF2LTEuNC41Lm9yaWcvZ3N0LWxpYnMvZXh0L2xpYmF2L2xpYmF2Y29kZWMvaDI2NF9jYWJhYy5jCisrKysgZ3N0LWxpYmF2LTEuNC41L2dzdC1saWJzL2V4dC9saWJhdi9saWJhdmNvZGVjL2gyNjRfY2FiYWMuYworQEAgLTIwMjAsNyArMjAyMCwxMSBAQCBkZWNvZGVfaW50cmFfbWI6CisgICAgICAgICAvLyBJbiBkZWJsb2NraW5nLCB0aGUgcXVhbnRpemVyIGlzIDAKKyAgICAgICAgIGgtPmN1cl9waWMucXNjYWxlX3RhYmxlW21iX3h5XSA9IDA7CisgICAgICAgICAvLyBBbGwgY29lZmZzIGFyZSBwcmVzZW50CistICAgICAgICBtZW1zZXQoaC0+bm9uX3plcm9fY291bnRbbWJfeHldLCAxNiwgNDgpOworKyAgICAgICAgLyptZW1zZXQoaC0+bm9uX3plcm9fY291bnRbbWJfeHldLCAxNiwgNDgpOyovCisrICAgICAgICAgICAgLyogYXZvaWRpbmcgdGhpcyBtZW1zZXQgYmVjYXVzZSBpdCBsZWFkcyBhdCBsZWFzdCB3aXRoIGdjYzQuOS4yIHRvIGVycm9yOiAnYXNtJyBvcGVyYW5kIGhhcyBpbXBvc3NpYmxlIGNvbnN0cmFpbnRzICovCisrICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDQ4OyBpKyspIHsKKysgICAgICAgICAgICAoICh1bnNpZ25lZCBjaGFyKikoaC0+bm9uX3plcm9fY291bnRbbWJfeHldKSApIFtpXSA9IDE2OworKyAgICAgICAgfQorICAgICAgICAgaC0+Y3VyX3BpYy5tYl90eXBlW21iX3h5XSA9IG1iX3R5cGU7CisgICAgICAgICBoLT5sYXN0X3FzY2FsZV9kaWZmID0gMDsKKyAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1saWJhdl8xLjQuNS5iYiBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtbGliYXZfMS40LjUuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdmYzdlYwotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtbGliYXZfMS40LjUuYmIKQEAgLTAsMCArMSwyNyBAQAoraW5jbHVkZSBnc3RyZWFtZXIxLjAtbGliYXYuaW5jCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuTElCO21kNT02NzYyZWQ0NDJiMzgyMjM4N2E1MWM5MmQ5MjhlYWQwZCBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9leHQvbGliYXYvZ3N0YXYuaDtiZWdpbmxpbmU9MTtlbmRsaW5lPTE4O21kNT1hNzUyYzM1MjY3ZDgyNzZmZDljYTNkYjY5OTRmY2E5YyBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9nc3QtbGlicy9leHQvbGliYXYvTElDRU5TRTttZDU9ZWE2NmU5N2E3YWMxZGI5NzhjZjM1MjkwNjhhOGM5NDggXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vZ3N0LWxpYnMvZXh0L2xpYmF2L0NPUFlJTkcuR1BMdjI7bWQ1PWIyMzRlZTRkNjlmNWZjZTQ0ODZhODBmZGFmNGE0MjYzIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL2dzdC1saWJzL2V4dC9saWJhdi9DT1BZSU5HLkdQTHYzO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9nc3QtbGlicy9leHQvbGliYXYvQ09QWUlORy5MR1BMdjIuMTttZDU9YmQ3YTQ0MzMyMGFmOGM4MTJlNGMxOGQxYjc5ZGYwMDQgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vZ3N0LWxpYnMvZXh0L2xpYmF2L0NPUFlJTkcuTEdQTHYzO21kNT1lNmE2MDBmZDVlMWQ5Y2JkZTJkOTgzNjgwMjMzYWQwMiIKKworU1JDX1VSSSA9ICIgXAorICAgIGh0dHA6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3NyYy9nc3QtbGliYXYvZ3N0LWxpYmF2LSR7UFZ9LnRhci54eiBcCisgICAgZmlsZTovLzAwMDEtRGlzYWJsZS15YXNtLWZvci1saWJhdi13aGVuLWRpc2FibGUteWFzbS5wYXRjaCBcCisgICAgZmlsZTovL3dvcmthcm91bmQtdG8tYnVpbGQtZ3N0LWxpYmF2LWZvci1pNTg2LXdpdGgtZ2NjLnBhdGNoIFwKKyIKK1NSQ19VUklbbWQ1c3VtXSA9ICJmNDkyMmE0NmFkYmNiZTdiZDAxMzMxZmY1ZGM3OTc5ZCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI2MDVjNjI2MjQ2MDRmM2JiNWM4NzA4NDRjYzFmMjcxMTc3OWNjNTMzYjAwNGMyYWExZDhjMGQ1ODU1N2FmYmJjIgorCitMSUJBVl9FWFRSQV9DT05GSUdVUkVfQ09NTU9OX0FSRyA9ICItLXRhcmdldC1vcz1saW51eCBcCisgIC0tY2M9JyR7Q0N9JyAtLWFzPScke0NDfScgLS1sZD0nJHtDQ30nIC0tbm09JyR7Tk19JyAtLWFyPScke0FSfScgXAorICAtLXJhbmxpYj0nJHtSQU5MSUJ9JyBcCisgICR7R1NUUkVBTUVSXzFfMF9ERUJVR30gXAorICAtLWNyb3NzLXByZWZpeD0nJHtIT1NUX1BSRUZJWH0nIgorCitTID0gIiR7V09SS0RJUn0vZ3N0LWxpYmF2LSR7UFZ9IgorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLWxpYmF2X2dpdC5iYiBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtbGliYXZfZ2l0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmMWI4N2UKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLWxpYmF2X2dpdC5iYgpAQCAtMCwwICsxLDI5IEBACitERUZBVUxUX1BSRUZFUkVOQ0UgPSAiLTEiCisKK2luY2x1ZGUgZ3N0cmVhbWVyMS4wLWxpYmF2LmluYworCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLkxJQjttZDU9Njc2MmVkNDQyYjM4MjIzODdhNTFjOTJkOTI4ZWFkMGQgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vZXh0L2xpYmF2L2dzdGF2Lmg7YmVnaW5saW5lPTE7ZW5kbGluZT0xODttZDU9YTc1MmMzNTI2N2Q4Mjc2ZmQ5Y2EzZGI2OTk0ZmNhOWMgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vZ3N0LWxpYnMvZXh0L2xpYmF2L0xJQ0VOU0U7bWQ1PTIzYTU0ZjU5YjgyNTcyYzIwM2E1NTkzNDZlODllZDU3IFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL2dzdC1saWJzL2V4dC9saWJhdi9DT1BZSU5HLkdQTHYyO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9nc3QtbGlicy9leHQvbGliYXYvQ09QWUlORy5HUEx2MzttZDU9ZDMyMjM5YmNiNjczNDYzYWI4NzRlODBkNDdmYWU1MDQgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vZ3N0LWxpYnMvZXh0L2xpYmF2L0NPUFlJTkcuTEdQTHYyLjE7bWQ1PWJkN2E0NDMzMjBhZjhjODEyZTRjMThkMWI3OWRmMDA0IFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL2dzdC1saWJzL2V4dC9saWJhdi9DT1BZSU5HLkxHUEx2MzttZDU9ZTZhNjAwZmQ1ZTFkOWNiZGUyZDk4MzY4MDIzM2FkMDIiCisKK1NSQ19VUkkgPSAiZ2l0Oi8vYW5vbmdpdC5mcmVlZGVza3RvcC5vcmcvZ3N0cmVhbWVyL2dzdC1saWJhdjticmFuY2g9bWFzdGVyIgorUyA9ICIke1dPUktESVJ9L2dpdCIKKworU1JDUkVWID0gIjEyNzIwMmQ2ZjY1NTg0ODkxZGFiZjkyYmUwMzFmMGQxNzBiMGU3ZjEiCisKK0xJQkFWX0VYVFJBX0NPTkZJR1VSRV9DT01NT05fQVJHID0gIi0tdGFyZ2V0LW9zPWxpbnV4IFwKKyAgLS1jYz0nJHtDQ30nIC0tYXM9JyR7Q0N9JyAtLWxkPScke0NDfScgLS1ubT0nJHtOTX0nIC0tYXI9JyR7QVJ9JyBcCisgICR7R1NUUkVBTUVSXzFfMF9ERUJVR30gXAorICAtLWNyb3NzLXByZWZpeD0nJHtIT1NUX1BSRUZJWH0nIgorCitkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKKwljZCAke1N9CisJLi9hdXRvZ2VuLnNoIC0tbm9jb25maWd1cmUKKwljZCAke0J9Cit9CisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtbWV0YS1iYXNlLmJiIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1tZXRhLWJhc2UuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VmMTBjMwotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtbWV0YS1iYXNlLmJiCkBAIC0wLDAgKzEsNjUgQEAKK0RFU0NSSVBUSU9OID0gIkdzdHJlYW1lcjEuMCBwYWNrYWdlIGdyb3VwcyIKK0xJQ0VOU0UgPSAiTUlUIgorCitpbmhlcml0IHBhY2thZ2Vncm91cAorCitDT01NRVJDSUFMX1BMVUdJTlMgPSAiJHtDT01NRVJDSUFMX0FVRElPX1BMVUdJTlN9ICR7Q09NTUVSQ0lBTF9WSURFT19QTFVHSU5TfSIKK0RFUEVORFNfVUdMWT0iJHtAJ2dzdHJlYW1lcjEuMC1wbHVnaW5zLXVnbHknIGlmICd1Z2x5JyBpbiBDT01NRVJDSUFMX1BMVUdJTlMuc3BsaXQoJy0nKSBlbHNlICcnfSIKK0RFUEVORFNfQkFEPSIke0AnZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFkJyBpZiAnYmFkJyBpbiBDT01NRVJDSUFMX1BMVUdJTlMuc3BsaXQoJy0nKSBlbHNlICcnfSIKK0RFUEVORFMgPSAiZ3N0cmVhbWVyMS4wIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UgZ3N0cmVhbWVyMS4wLXBsdWdpbnMtZ29vZCAke0RFUEVORFNfVUdMWX0gJHtERVBFTkRTX0JBRH0iCisKK1BBQ0tBR0VTID0gIlwKKyAgICBnc3RyZWFtZXIxLjAtbWV0YS1iYXNlIFwKKyAgICBnc3RyZWFtZXIxLjAtbWV0YS14MTEtYmFzZSBcCisgICAgZ3N0cmVhbWVyMS4wLW1ldGEtYXVkaW8gXAorICAgIGdzdHJlYW1lcjEuMC1tZXRhLWRlYnVnIFwKKyAgICBnc3RyZWFtZXIxLjAtbWV0YS12aWRlbyIKKworQUxMT1dfRU1QVFlfZ3N0cmVhbWVyMS4wLW1ldGEtYmFzZSA9ICIxIgorQUxMT1dfRU1QVFlfZ3N0cmVhbWVyMS4wLW1ldGEteDExLWJhc2UgPSAiMSIKK0FMTE9XX0VNUFRZX2dzdHJlYW1lcjEuMC1tZXRhLWF1ZGlvID0gIjEiCitBTExPV19FTVBUWV9nc3RyZWFtZXIxLjAtbWV0YS1kZWJ1ZyA9ICIxIgorQUxMT1dfRU1QVFlfZ3N0cmVhbWVyMS4wLW1ldGEtdmlkZW8gPSAiMSIKKworUkRFUEVORFNfZ3N0cmVhbWVyMS4wLW1ldGEtYmFzZSA9ICJcCisgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICd4MTEnLCAnZ3N0cmVhbWVyMS4wLW1ldGEteDExLWJhc2UnLCAnJywgZCl9IFwKKyAgICBnc3RyZWFtZXIxLjAgXAorICAgIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UtcGxheWJhY2sgXAorICAgIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UtZ2lvIFwKKyAgICBnc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlLWFsc2EgXAorICAgIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2Utdm9sdW1lIFwKKyAgICBnc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlLWF1ZGlvY29udmVydCBcCisgICAgZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS1hdWRpb3Jlc2FtcGxlIFwKKyAgICBnc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlLXR5cGVmaW5kZnVuY3Rpb25zIFwKKyAgICBnc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlLXZpZGVvc2NhbGUgXAorICAgIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UtdmlkZW9jb252ZXJ0IFwKKyAgICBnc3RyZWFtZXIxLjAtcGx1Z2lucy1nb29kLWF1dG9kZXRlY3QgXAorICAgIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWdvb2Qtc291cGh0dHBzcmMiCisKK1JSRUNPTU1FTkRTX2dzdHJlYW1lcjEuMC1tZXRhLXgxMS1iYXNlID0gIlwKKyAgICBnc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlLXhpbWFnZXNpbmsgXAorICAgIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UteHZpbWFnZXNpbmsiCisKK1JERVBFTkRTX2dzdHJlYW1lcjEuMC1tZXRhLWF1ZGlvID0gIlwKKyAgICBnc3RyZWFtZXIxLjAtbWV0YS1iYXNlIFwKKyAgICBnc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlLXZvcmJpcyBcCisgICAgZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS1vZ2cgXAorICAgIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWdvb2Qtd2F2cGFyc2UgXAorICAgIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWdvb2QtZmxhYyBcCisgICAgJHtDT01NRVJDSUFMX0FVRElPX1BMVUdJTlN9IgorCitSREVQRU5EU19nc3RyZWFtZXIxLjAtbWV0YS1kZWJ1ZyA9ICJcCisgICAgZ3N0cmVhbWVyMS4wLW1ldGEtYmFzZSBcCisgICAgZ3N0cmVhbWVyMS4wLXBsdWdpbnMtZ29vZC1kZWJ1ZyBcCisgICAgZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS1hdWRpb3Rlc3RzcmMgXAorICAgIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UtdmlkZW90ZXN0c3JjIgorCitSREVQRU5EU19nc3RyZWFtZXIxLjAtbWV0YS12aWRlbyA9ICJcCisgICAgZ3N0cmVhbWVyMS4wLW1ldGEtYmFzZSBcCisgICAgZ3N0cmVhbWVyMS4wLXBsdWdpbnMtZ29vZC1hdmkgXAorICAgIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWdvb2QtbWF0cm9za2EgXAorICAgIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UtdGhlb3JhIFwKKyAgICAke0NPTU1FUkNJQUxfVklERU9fUExVR0lOU30iCisKK1JSRUNPTU1FTkRTX2dzdHJlYW1lcjEuMC1tZXRhLXZpZGVvID0gIlwKKyAgICBnc3RyZWFtZXIxLjAtbWV0YS1hdWRpbyIKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtb214LmluYyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtb214LmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjk4OTA0Ci0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1vbXguaW5jCkBAIC0wLDAgKzEsNDIgQEAKK1NVTU1BUlkgPSAiT3Blbk1BWCBJTCBwbHVnaW5zIGZvciBHU3RyZWFtZXIiCitTRUNUSU9OID0gIm11bHRpbWVkaWEiCitMSUNFTlNFID0gIkxHUEx2Mi4xIgorTElDRU5TRV9GTEFHUyA9ICJjb21tZXJjaWFsIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5nc3RyZWFtZXIubmV0LyIKK0RFUEVORFMgPSAiZ3N0cmVhbWVyMS4wIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UgZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFkIgorUkRFUEVORFNfJHtQTn0gPSAibGlib214aWwiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBnZXR0ZXh0CisKK2FjcGF0aHMgPSAiLUkgJHtTfS9jb21tb24vbTQgLUkgJHtTfS9tNCIKKworUFIgPSAicjEiCisKK0dTVFJFQU1FUl8xXzBfT01YX1RBUkdFVCA/PSAiYmVsbGFnaW8iCitHU1RSRUFNRVJfMV8wX09NWF9DT1JFX05BTUUgPz0gIiR7bGliZGlyfS9saWJvbXhpbC1iZWxsYWdpby5zby4wIgorCitFWFRSQV9PRUNPTkYgKz0gIi0tZGlzYWJsZS12YWxncmluZCAtLXdpdGgtb214LXRhcmdldD0ke0dTVFJFQU1FUl8xXzBfT01YX1RBUkdFVH0iCisKK3B5dGhvbiBfX2Fub255bW91cyAoKSB7CisgICAgb214X3RhcmdldCA9IGQuZ2V0VmFyKCJHU1RSRUFNRVJfMV8wX09NWF9UQVJHRVQiLCBUcnVlKQorICAgIGlmIG9teF90YXJnZXQgaW4gWydnZW5lcmljJywgJ2JlbGxhZ2lvJ106CisgICAgICAgIHNyY2RpciA9IGQuZ2V0VmFyKCJTIiwgVHJ1ZSkKKyAgICAgICAgIyBCZWxsYWdpbyBoZWFkZXJzIGFyZSBpbmNvbXBsZXRlICh0aGV5IGFyZSBtaXNzaW5nIHRoZSBPTVhfVkVSU0lPTl9NQUpPUiwjCisgICAgICAgICMgT01YX1ZFUlNJT05fTUlOT1IsIE9NWF9WRVJTSU9OX1JFVklTSU9OLCBhbmQgT01YX1ZFUlNJT05fU1RFUCBtYWNyb3MpOworICAgICAgICAjIGFwcGVuZGluZyBhIGRpcmVjdG9yeSBwYXRoIHRvIGdzdC1vbXgnIGludGVybmFsIE9wZW5NQVggSUwgaGVhZGVycyBmaXhlcyB0aGlzCisgICAgICAgIGQuYXBwZW5kVmFyKCJDRkxBR1MiLCAiIC1JJXMvb214L29wZW5tYXgiICUgc3JjZGlyKQorICAgIGVsaWYgb214X3RhcmdldCA9PSAicnBpIjoKKyAgICAgICAgIyBEZWRpY2F0ZWQgUmFzcGJlcnJ5IFBpIE9wZW5NQVggSUwgc3VwcG9ydCBtYWtlcyB0aGlzIHBhY2thZ2UgbWFjaGluZSBzcGVjaWZpYworICAgICAgICBkLnNldFZhcigiUEFDS0FHRV9BUkNIIiwgZC5nZXRWYXIoIk1BQ0hJTkVfQVJDSCIsIFRydWUpKQorfQorCitzZXRfb214X2NvcmVfbmFtZSgpIHsKKwlzZWQgLWkgLWUgInM7XmNvcmUtbmFtZT0uKjtjb3JlLW5hbWU9JHtHU1RSRUFNRVJfMV8wX09NWF9DT1JFX05BTUV9OyIgIiR7RH0ke3N5c2NvbmZkaXJ9L3hkZy9nc3RvbXguY29uZiIKK30KK2RvX2luc3RhbGxbcG9zdGZ1bmNzXSArPSAiIHNldF9vbXhfY29yZV9uYW1lICIKKworRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS9nc3RyZWFtZXItMS4wLyouc28iCitGSUxFU18ke1BOfS1kYmcgKz0gIiR7bGliZGlyfS9nc3RyZWFtZXItMS4wLy5kZWJ1ZyIKK0ZJTEVTXyR7UE59LWRldiArPSAiJHtsaWJkaXJ9L2dzdHJlYW1lci0xLjAvKi5sYSIKK0ZJTEVTXyR7UE59LXN0YXRpY2RldiArPSAiJHtsaWJkaXJ9L2dzdHJlYW1lci0xLjAvKi5hIgorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLW9teC8wMDAxLW9teC1maXhlZC10eXBlLWVycm9yLWluLXByaW50Zi1jYWxsLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1vbXgvMDAwMS1vbXgtZml4ZWQtdHlwZS1lcnJvci1pbi1wcmludGYtY2FsbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDI4YWM5Ci0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1vbXgvMDAwMS1vbXgtZml4ZWQtdHlwZS1lcnJvci1pbi1wcmludGYtY2FsbC5wYXRjaApAQCAtMCwwICsxLDMwIEBACitGcm9tIGY2MjllMDQxZTlmNjc4ZmNkODZhZDc2NGExNTExN2RmZjYzYzI3MWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CitEYXRlOiBTYXQsIDI3IEFwciAyMDEzIDAyOjUwOjI1ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIG9teDogZml4ZWQgdHlwZSBlcnJvciBpbiBwcmludGYgY2FsbAorCislenUgZXhwZWN0cyBzaXplX3QKKworVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgW2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTkwMDhdCisKK1NpZ25lZC1vZmYtYnk6IENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KKy0tLQorIG9teC9nc3RvbXguYyB8ICAgIDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL29teC9nc3RvbXguYyBiL29teC9nc3RvbXguYworaW5kZXggYTI5NDVlZC4uMWVjYTdjYyAxMDA2NDQKKy0tLSBhL29teC9nc3RvbXguYworKysrIGIvb214L2dzdG9teC5jCitAQCAtMTYzMCw3ICsxNjMwLDcgQEAgZ3N0X29teF9wb3J0X2FsbG9jYXRlX2J1ZmZlcnNfdW5sb2NrZWQgKEdzdE9NWFBvcnQgKiBwb3J0LAorIAorICAgR1NUX0lORk9fT0JKRUNUIChjb21wLT5wYXJlbnQsCisgICAgICAgIkFsbG9jYXRpbmcgJWQgYnVmZmVycyBvZiBzaXplICV6dSBmb3IgJXMgcG9ydCAldSIsIG4sCistICAgICAgcG9ydC0+cG9ydF9kZWYubkJ1ZmZlclNpemUsIGNvbXAtPm5hbWUsIChndWludCkgcG9ydC0+aW5kZXgpOworKyAgICAgIChzaXplX3QpIChwb3J0LT5wb3J0X2RlZi5uQnVmZmVyU2l6ZSksIGNvbXAtPm5hbWUsIChndWludCkgcG9ydC0+aW5kZXgpOworIAorICAgaWYgKCFwb3J0LT5idWZmZXJzKQorICAgICBwb3J0LT5idWZmZXJzID0gZ19wdHJfYXJyYXlfc2l6ZWRfbmV3IChuKTsKKy0tIAorMS43LjkuNQorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLW9teF8xLjIuMC5iYiBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtb214XzEuMi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlN2M5MWMKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLW9teF8xLjIuMC5iYgpAQCAtMCwwICsxLDEyIEBACitpbmNsdWRlIGdzdHJlYW1lcjEuMC1vbXguaW5jCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTRmYmQ2NTM4MGNkZDI1NTk1MTA3OTAwOGIzNjQ1MTZjIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL29teC9nc3RvbXguaDtiZWdpbmxpbmU9MTtlbmRsaW5lPTIxO21kNT01YzhlMWZjYTMyNzA0NDg4ZTc2ZDJiYTlkZGZhOTM1ZiIKKworU1JDX1VSSSA9ICJodHRwOi8vZ3N0cmVhbWVyLmZyZWVkZXNrdG9wLm9yZy9zcmMvZ3N0LW9teC9nc3Qtb214LSR7UFZ9LnRhci54eiIKKworU1JDX1VSSVttZDVzdW1dID0gImQyNGU4YzAxNTNjMzVkZmVmZWUzZTI2YjFjMmMzNWY4IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjBiNDg3NDk2MWU2NDg4YWQ5ZTU4MDgxMTRiZDQ4NmVhOTgxYzU0MDkwNzI2MmNhYWIxNDE5MzU1ZmQ4MmQ3NDUiCisKK1MgPSAiJHtXT1JLRElSfS9nc3Qtb214LSR7UFZ9IgorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLW9teF9naXQuYmIgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLW9teF9naXQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTljODQ2NjgKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLW9teF9naXQuYmIKQEAgLTAsMCArMSwyNiBAQAorREVGQVVMVF9QUkVGRVJFTkNFID0gIi0xIgorCitpbmNsdWRlIGdzdHJlYW1lcjEuMC1vbXguaW5jCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTRmYmQ2NTM4MGNkZDI1NTk1MTA3OTAwOGIzNjQ1MTZjIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL29teC9nc3RvbXguaDtiZWdpbmxpbmU9MTtlbmRsaW5lPTIxO21kNT01YzhlMWZjYTMyNzA0NDg4ZTc2ZDJiYTlkZGZhOTM1ZiIKKworU1JDX1VSSSA9ICIgXAorICAgIGdpdDovL2Fub25naXQuZnJlZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3Qtb214O2JyYW5jaD1tYXN0ZXI7bmFtZT1nc3Qtb214IFwKKyAgICBnaXQ6Ly9hbm9uZ2l0LmZyZWVkZXNrdG9wLm9yZy9nc3RyZWFtZXIvY29tbW9uO2Rlc3RzdWZmaXg9Z2l0L2NvbW1vbjticmFuY2g9bWFzdGVyO25hbWU9Y29tbW9uIFwKKyAgICBmaWxlOi8vMDAwMS1vbXgtZml4ZWQtdHlwZS1lcnJvci1pbi1wcmludGYtY2FsbC5wYXRjaCBcCisgICAgIgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitTUkNSRVZfZ3N0LW9teCA9ICJhMmRiNzZiMDQ4ZGIyNzhlZjBhYTc5OGUxMDZiNzU5NDI2NGUwNmMwIgorU1JDUkVWX2NvbW1vbiA9ICI1ZWRjZDg1N2IyMTA3Y2Q4Yjc4YzE2MjMyZGQxMDg3NzUxM2VjMTU3IgorCitTUkNSRVZfRk9STUFUID0gImdzdC1vbXgiCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgeworCWNkICR7U30KKwkuL2F1dG9nZW4uc2ggLS1ub2NvbmZpZ3VyZQorCWNkICR7Qn0KK30KKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhZC5pbmMgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFkLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZGVkYjYwCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhZC5pbmMKQEAgLTAsMCArMSwxMzUgQEAKK3JlcXVpcmUgZ3N0cmVhbWVyMS4wLXBsdWdpbnMuaW5jCisKK0xJQ0VOU0UgPSAiR1BMdjIrICYgTEdQTHYyKyAmIExHUEx2Mi4xKyAiCisKK0RFUEVORFMgKz0gImdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UgbGlicG5nIGpwZWciCisKK1MgPSAiJHtXT1JLRElSfS9nc3QtcGx1Z2lucy1iYWQtJHtQVn0iCisKK1NSQ19VUkkgKz0gImZpbGU6Ly9jb25maWd1cmUtYWxsb3ctdG8tZGlzYWJsZS1saWJzc2gyLnBhdGNoIFwKKyAgICAgICAgICAgIgorCitpbmhlcml0IGdldHRleHQgYmx1ZXRvb3RoCisKKyMgb3BlbmdsIHBhY2thZ2Vjb25maWcgZmFjdG9yZWQgb3V0IHRvIG1ha2UgaXQgZWFzeSBmb3IgZGlzdHJvcworIyBhbmQgQlNQIGxheWVycyB0byBwaWNrIGVpdGhlciAoZGVza3RvcCkgb3BlbmdsLCBnbGVzMiwgb3Igbm8gR0wKK1BBQ0tBR0VDT05GSUdfR0wgPz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnb3BlbmdsJywgJ2dsZXMyJywgJycsIGQpfSIKKworUEFDS0FHRUNPTkZJRyA/Pz0gIiBcCisgICAgJHtQQUNLQUdFQ09ORklHX0dMfSBcCisgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICd3YXlsYW5kJywgJ3dheWxhbmQnLCAnJywgZCl9IFwKKyAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ2JsdWV0b290aCcsICdibHVleicsICcnLCBkKX0gXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnZGlyZWN0ZmInLCAnZGlyZWN0ZmInLCAnJywgZCl9IFwKKyAgICBvcmMgY3VybCB1dmNoMjY0IG5lb24gc25kZmlsZSBcCisgICAgaGxzIHNiYyBkYXNoIGJ6MiBzbW9vdGhzdHJlYW1pbmcgXAorICAgICIKKworIyBkYXNoID0gRHluYW1pYyBBZGFwdGl2ZSBTdHJlYW1pbmcgb3ZlciBIVFRQCitQQUNLQUdFQ09ORklHW2Fzc3JlbmRlcl0gICAgICAgPSAiLS1lbmFibGUtYXNzcmVuZGVyLC0tZGlzYWJsZS1hc3NyZW5kZXIsbGliYXNzIgorUEFDS0FHRUNPTkZJR1tjdXJsXSAgICAgICAgICAgID0gIi0tZW5hYmxlLWN1cmwsLS1kaXNhYmxlLWN1cmwsY3VybCIKK1BBQ0tBR0VDT05GSUdbZ2xlczJdICAgICAgICAgICA9ICItLWVuYWJsZS1nbGVzMiwtLWRpc2FibGUtZ2xlczIsdmlydHVhbC9saWJnbGVzMiIKK1BBQ0tBR0VDT05GSUdbb3BlbmdsXSAgICAgICAgICA9ICItLWVuYWJsZS1vcGVuZ2wsLS1kaXNhYmxlLW9wZW5nbCx2aXJ0dWFsL2xpYmdsIGxpYmdsdSIKK1BBQ0tBR0VDT05GSUdbZmFhY10gICAgICAgICAgICA9ICItLWVuYWJsZS1mYWFjLC0tZGlzYWJsZS1mYWFjLGZhYWMiCitQQUNLQUdFQ09ORklHW2ZhYWRdICAgICAgICAgICAgPSAiLS1lbmFibGUtZmFhZCwtLWRpc2FibGUtZmFhZCxmYWFkMiIKK1BBQ0tBR0VDT05GSUdbbGlibW1zXSAgICAgICAgICA9ICItLWVuYWJsZS1saWJtbXMsLS1kaXNhYmxlLWxpYm1tcyxsaWJtbXMiCitQQUNLQUdFQ09ORklHW21vZHBsdWddICAgICAgICAgPSAiLS1lbmFibGUtbW9kcGx1ZywtLWRpc2FibGUtbW9kcGx1ZyxsaWJtb2RwbHVnIgorUEFDS0FHRUNPTkZJR1ttcGcxMjNdICAgICAgICAgID0gIi0tZW5hYmxlLW1wZzEyMywtLWRpc2FibGUtbXBnMTIzLG1wZzEyMyIKK1BBQ0tBR0VDT05GSUdbb3B1c10gICAgICAgICAgICA9ICItLWVuYWJsZS1vcHVzLC0tZGlzYWJsZS1vcHVzLGxpYm9wdXMiCitQQUNLQUdFQ09ORklHW2ZsaXRlXSAgICAgICAgICAgPSAiLS1lbmFibGUtZmxpdGUsLS1kaXNhYmxlLWZsaXRlLGZsaXRlLWFsc2EiCitQQUNLQUdFQ09ORklHW29wZW5jdl0gICAgICAgICAgPSAiLS1lbmFibGUtb3BlbmN2LC0tZGlzYWJsZS1vcGVuY3Ysb3BlbmN2IgorUEFDS0FHRUNPTkZJR1t3YXlsYW5kXSAgICAgICAgID0gIi0tZW5hYmxlLXdheWxhbmQgLS1lbmFibGUtZWdsLC0tZGlzYWJsZS13YXlsYW5kIC0tZGlzYWJsZS1lZ2wsd2F5bGFuZCB2aXJ0dWFsL2VnbCIKK1BBQ0tBR0VDT05GSUdbdXZjaDI2NF0gICAgICAgICA9ICItLWVuYWJsZS11dmNoMjY0LC0tZGlzYWJsZS11dmNoMjY0LGxpYnVzYjEgdWRldiIKK1BBQ0tBR0VDT05GSUdbZGlyZWN0ZmJdICAgICAgICA9ICItLWVuYWJsZS1kaXJlY3RmYiwtLWRpc2FibGUtZGlyZWN0ZmIsZGlyZWN0ZmIiCitQQUNLQUdFQ09ORklHW25lb25dICAgICAgICAgICAgPSAiLS1lbmFibGUtbmVvbiwtLWRpc2FibGUtbmVvbixuZW9uIgorUEFDS0FHRUNPTkZJR1tvcGVuYWxdICAgICAgICAgID0gIi0tZW5hYmxlLW9wZW5hbCwtLWRpc2FibGUtb3BlbmFsLG9wZW5hbC1zb2Z0IgorUEFDS0FHRUNPTkZJR1tobHNdICAgICAgICAgICAgID0gIi0tZW5hYmxlLWhscywtLWRpc2FibGUtaGxzLGdudXRscyIKK1BBQ0tBR0VDT05GSUdbc2JjXSAgICAgICAgICAgICA9ICItLWVuYWJsZS1zYmMsLS1kaXNhYmxlLXNiYyxzYmMiCitQQUNLQUdFQ09ORklHW2Rhc2hdICAgICAgICAgICAgPSAiLS1lbmFibGUtZGFzaCwtLWRpc2FibGUtZGFzaCxsaWJ4bWwyIgorUEFDS0FHRUNPTkZJR1tiejJdICAgICAgICAgICAgID0gIi0tZW5hYmxlLWJ6MiwtLWRpc2FibGUtYnoyLGJ6aXAyIgorUEFDS0FHRUNPTkZJR1tmbHVpZHN5bnRoXSAgICAgID0gIi0tZW5hYmxlLWZsdWlkc3ludGgsLS1kaXNhYmxlLWZsdWlkc3ludGgsZmx1aWRzeW50aCIKK1BBQ0tBR0VDT05GSUdbc2Nocm9lZGluZ2VyXSAgICA9ICItLWVuYWJsZS1zY2hybywtLWRpc2FibGUtc2Nocm8sc2Nocm9lZGluZ2VyIgorUEFDS0FHRUNPTkZJR1tzbW9vdGhzdHJlYW1pbmddID0gIi0tZW5hYmxlLXNtb290aHN0cmVhbWluZywtLWRpc2FibGUtc21vb3Roc3RyZWFtaW5nLGxpYnhtbDIiCitQQUNLQUdFQ09ORklHW2JsdWV6XSAgICAgICAgICAgPSAiLS1lbmFibGUtYmx1ZXosLS1kaXNhYmxlLWJsdWV6LCR7QkxVRVp9IgorUEFDS0FHRUNPTkZJR1tyc3ZnXSAgICAgICAgICAgID0gIi0tZW5hYmxlLXJzdmcsLS1kaXNhYmxlLXJzdmcsbGlicnN2ZyIKK1BBQ0tBR0VDT05GSUdbc25kZmlsZV0gICAgICAgICA9ICItLWVuYWJsZS1zbmRmaWxlLC0tZGlzYWJsZS1zbmRmaWxlLGxpYnNuZGZpbGUxIgorUEFDS0FHRUNPTkZJR1t3ZWJwXSAgICAgICAgICAgID0gIi0tZW5hYmxlLXdlYnAsLS1kaXNhYmxlLXdlYnAsbGlid2VicCIKK1BBQ0tBR0VDT05GSUdbcnRtcF0gICAgICAgICAgICA9ICItLWVuYWJsZS1ydG1wLC0tZGlzYWJsZS1ydG1wLHJ0bXBkdW1wIgorUEFDS0FHRUNPTkZJR1tsaWJzc2gyXSAgICAgICAgID0gIi0tZW5hYmxlLWxpYnNzaDIsLS1kaXNhYmxlLWxpYnNzaDIsbGlic3NoMiIKKworIyB0aGVzZSBwbHVnaW5zIGhhdmUgbm90IGJlZW4gcG9ydGVkIHRvIDEuMCAoeWV0KToKKyMgICBkaXJlY3RkcmF3IHZjZCBhcGV4c2luayBkYzEzOTQgbHYyIGxpbnN5cyBtdXNlcGFjayBteXRodHYKKyMgICBuYXMgdGltaWRpdHkgdGVsZXRleHRkZWMgc2RsIHh2aWQgd2luaW5ldCBhY20gZ3NldHRpbmdzCisjICAgc25kaW8gcXR3cmFwcGVyIGNkeGFwYXJzZSBkY2NwIGZhY2VvdmVybGF5IGhkdnBhcnNlIHR0YQorIyAgIG12ZSBudXZkZW11eCBvc3hfdmlkZW8gcGF0Y2hkZXRlY3QgcXVpY2t0aW1lIHJlYWwgc2RpCisjICAgdmlkZW9tZWFzdXJlIGdzZXR0aW5ncworCisjIHRoZXNlIHBsdWdpbnMgaGF2ZSBubyBjb3JyZXNwb25kaW5nIGxpYnJhcnkgaW4gT0UtY29yZSBvciBtZXRhLW9wZW5lbWJlZGRlZDoKKyMgICBvcGVubmkyIHdpbmtzIGRpcmVjdDNkIGRpcmVjdGRyYXcgZGlyZWN0c291bmQgd2luc2NyZWVuY2FwIG9zeF92aWRlbworIyAgIGFwcGxlX21lZGlhIGFuZHJvaWRfbWVkaWEgYXZjIGNocm9tYXByaW50IGRhYWxhIGR0cyBnbWUgZ3NtIGthdGUgbGFkc3BhIG1pbWljCisjICAgbXBlZzJlbmMgbXBsZXggb2ZhIG9wZW5qcGVnIG9wZW5zbGVzIHB2ciByZXNpbmR2ZCBydG1wIHNvdW5kdG91Y2ggc3BhbmRzcCBzcGMKKyMgICBzcnRwIHZkcGF1IHZvYWFjZW5jIHZvYW1yd2JlbmMgd2FzYXBpIHpiYXIKKworRVhUUkFfT0VDT05GICs9ICIgXAorICAgIC0tZW5hYmxlLWR2YiBcCisgICAgLS1lbmFibGUtc2htIFwKKyAgICAtLWVuYWJsZS1mYmRldiBcCisgICAgLS1lbmFibGUtZGVja2xpbmsgXAorICAgIC0tZGlzYWJsZS1hY20gXAorICAgIC0tZGlzYWJsZS1hbmRyb2lkX21lZGlhIFwKKyAgICAtLWRpc2FibGUtYXBleHNpbmsgXAorICAgIC0tZGlzYWJsZS1hcHBsZV9tZWRpYSBcCisgICAgLS1kaXNhYmxlLWF2YyBcCisgICAgLS1kaXNhYmxlLWNocm9tYXByaW50IFwKKyAgICAtLWRpc2FibGUtY29jb2EgXAorICAgIC0tZGlzYWJsZS1kYWFsYSBcCisgICAgLS1kaXNhYmxlLWRjMTM5NCBcCisgICAgLS1kaXNhYmxlLWRpcmVjdDNkIFwKKyAgICAtLWRpc2FibGUtZGlyZWN0ZHJhdyBcCisgICAgLS1kaXNhYmxlLWRpcmVjdHNvdW5kIFwKKyAgICAtLWRpc2FibGUtZHRzIFwKKyAgICAtLWRpc2FibGUtZ21lIFwKKyAgICAtLWRpc2FibGUtZ3NldHRpbmdzIFwKKyAgICAtLWRpc2FibGUtZ3NtIFwKKyAgICAtLWRpc2FibGUta2F0ZSBcCisgICAgLS1kaXNhYmxlLWxhZHNwYSBcCisgICAgLS1kaXNhYmxlLWxpbnN5cyBcCisgICAgLS1kaXNhYmxlLWx2MiBcCisgICAgLS1kaXNhYmxlLW1pbWljIFwKKyAgICAtLWRpc2FibGUtbXBlZzJlbmMgXAorICAgIC0tZGlzYWJsZS1tcGxleCBcCisgICAgLS1kaXNhYmxlLW11c2VwYWNrIFwKKyAgICAtLWRpc2FibGUtbXl0aHR2IFwKKyAgICAtLWRpc2FibGUtbmFzIFwKKyAgICAtLWRpc2FibGUtb2ZhIFwKKyAgICAtLWRpc2FibGUtb3BlbmpwZWcgXAorICAgIC0tZGlzYWJsZS1vcGVuc2xlcyBcCisgICAgLS1kaXNhYmxlLW9zeF92aWRlbyBcCisgICAgLS1kaXNhYmxlLXB2ciBcCisgICAgLS1kaXNhYmxlLXF1aWNrdGltZSBcCisgICAgLS1kaXNhYmxlLXJlc2luZHZkIFwKKyAgICAtLWRpc2FibGUtc2RsIFwKKyAgICAtLWRpc2FibGUtc2RsdGVzdCBcCisgICAgLS1kaXNhYmxlLXNuZGlvIFwKKyAgICAtLWRpc2FibGUtc291bmR0b3VjaCBcCisgICAgLS1kaXNhYmxlLXNwYW5kc3AgXAorICAgIC0tZGlzYWJsZS1zcGMgXAorICAgIC0tZGlzYWJsZS1zcnRwIFwKKyAgICAtLWRpc2FibGUtdGVsZXRleHRkZWMgXAorICAgIC0tZGlzYWJsZS10aW1pZGl0eSBcCisgICAgLS1kaXNhYmxlLXZjZCBcCisgICAgLS1kaXNhYmxlLXZkcGF1IFwKKyAgICAtLWRpc2FibGUtdm9hYWNlbmMgXAorICAgIC0tZGlzYWJsZS12b2FtcndiZW5jIFwKKyAgICAtLWRpc2FibGUtd2FzYXBpIFwKKyAgICAtLWRpc2FibGUtd2lsZG1pZGkgXAorICAgIC0tZGlzYWJsZS13aW5pbmV0IFwKKyAgICAtLWRpc2FibGUtd2luc2NyZWVuY2FwIFwKKyAgICAtLWRpc2FibGUteHZpZCBcCisgICAgLS1kaXNhYmxlLXpiYXIgXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCJUVU5FX0ZFQVRVUkVTIiwgIm14MzIiLCAiLS1kaXNhYmxlLXlhZGlmIiwgIiIsIGQpfSBcCisgICAgIgorCitBUk1fSU5TVFJVQ1RJT05fU0VUID0gImFybSIKKworRklMRVNfZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFkLW9wZW5jdiArPSAiJHtkYXRhZGlyfS9nc3QtcGx1Z2lucy1iYWQvMS4wL29wZW5jdioiCisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYWQvMDAwMS1nbC1kby1ub3QtY2hlY2stZm9yLUdMLUdMVS1FR0wtR0xFUzItbGlicy1pZi1kaXNhYmxlLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhZC8wMDAxLWdsLWRvLW5vdC1jaGVjay1mb3ItR0wtR0xVLUVHTC1HTEVTMi1saWJzLWlmLWRpc2FibGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQyYTMyYwotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYWQvMDAwMS1nbC1kby1ub3QtY2hlY2stZm9yLUdMLUdMVS1FR0wtR0xFUzItbGlicy1pZi1kaXNhYmxlLnBhdGNoCkBAIC0wLDAgKzEsNDEgQEAKK0Zyb20gZGViYTBkYTQ1ZWM4MjEyMDlhN2VkMTQ4YTQ1MjFkNTYyZTY1MTJjZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KK0RhdGU6IFdlZCwgMjcgQXVnIDIwMTQgMTQ6NDc6MjUgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gZ2w6IGRvIG5vdCBjaGVjayBmb3IgR0wvR0xVL0VHTC9HTEVTMiBsaWJzIGlmIGRpc2FibGVkIGluCisgY29uZmlndXJhdGlvbgorCitVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBbaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTUyMl0KKworU2lnbmVkLW9mZi1ieTogQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgorLS0tCisgY29uZmlndXJlLmFjIHwgMTQgKysrKysrKysrKy0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5kZXggMWE0NmFmYi4uZTg1ZDRiYSAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysrIGIvY29uZmlndXJlLmFjCitAQCAtNjYxLDEwICs2NjEsMTYgQEAgY2FzZSAkaG9zdCBpbgorICAgICBmaQorICAgOzsKKyAgICopCistICAgIEFHX0dTVF9DSEVDS19MSUJIRUFERVIoR0wsIEdMLCBnbFRleEltYWdlMkQsLCBHTC9nbC5oKQorLSAgICBBR19HU1RfQ0hFQ0tfTElCSEVBREVSKEdMVSwgR0xVLCBnbHVTcGhlcmUsLCBHTC9nbHUuaCkKKy0gICAgQUdfR1NUX0NIRUNLX0xJQkhFQURFUihHTEVTMiwgR0xFU3YyLCBnbFRleEltYWdlMkQsLCBHTEVTMi9nbDIuaCkKKy0gICAgQUdfR1NUX0NIRUNLX0xJQkhFQURFUihFR0wsIEVHTCwgZWdsR2V0RXJyb3IsLCBFR0wvZWdsLmgpCisrICAgIGlmIHRlc3QgIngkTkVFRF9HTCIgIT0gInhubyI7IHRoZW4KKysgICAgICBBR19HU1RfQ0hFQ0tfTElCSEVBREVSKEdMLCBHTCwgZ2xUZXhJbWFnZTJELCwgR0wvZ2wuaCkKKysgICAgICBBR19HU1RfQ0hFQ0tfTElCSEVBREVSKEdMVSwgR0xVLCBnbHVTcGhlcmUsLCBHTC9nbHUuaCkKKysgICAgZmkKKysgICAgaWYgdGVzdCAieCRORUVEX0dMRVMyIiAhPSAieG5vIjsgdGhlbgorKyAgICAgIEFHX0dTVF9DSEVDS19MSUJIRUFERVIoR0xFUzIsIEdMRVN2MiwgZ2xUZXhJbWFnZTJELCwgR0xFUzIvZ2wyLmgpCisrICAgIGZpCisrICAgIGlmIHRlc3QgIngkTkVFRF9FR0wiICE9ICJ4bm8iOyB0aGVuCisrICAgICAgQUdfR1NUX0NIRUNLX0xJQkhFQURFUihFR0wsIEVHTCwgZWdsR2V0RXJyb3IsLCBFR0wvZWdsLmgpCisrICAgIGZpCisgCisgICAgIG9sZF9MSUJTPSRMSUJTCisgICAgIG9sZF9DRkxBR1M9JENGTEFHUworLS0gCisxLjguMy4yCisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYWQvY29uZmlndXJlLWFsbG93LXRvLWRpc2FibGUtbGlic3NoMi5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYWQvY29uZmlndXJlLWFsbG93LXRvLWRpc2FibGUtbGlic3NoMi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTJhZmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhZC9jb25maWd1cmUtYWxsb3ctdG8tZGlzYWJsZS1saWJzc2gyLnBhdGNoCkBAIC0wLDAgKzEsNjQgQEAKK0Zyb20gZjU5YzUyNjlmOTJkNTlhNTI5NmNiZmVlYjY4MmQ0MjA5NWNkODhhZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFdlbnpvbmcgRmFuIDx3ZW56b25nLmZhbkB3aW5kcml2ZXIuY29tPgorRGF0ZTogVGh1LCAxOCBTZXAgMjAxNCAwMjoyNDowNyAtMDQwMAorU3ViamVjdDogW1BBVENIXSBnc3RyZWFtZXIxLjAtcGx1Z2lucy1iYWQ6IGFsbG93IHRvIGRpc2FibGUgbGlic3NoMgorCitsaWJzc2gyIGlzIGF1dG9tYXRpY2FsbHkgbGlua2VkIHRvIGlmIHByZXNlbnQsIHRoaXMgdW5kZXRlcm1pbmVkCitkZXBlbmRlbmN5IG1heSBjYXVzZSBidWlsZCBlcnJvcnMgbGlrZToKKworICAuLi4veDg2XzY0LXBva3ktbGludXgvNC45LjAvbGQ6IGNhbm5vdCBmaW5kIC1sc3NoMgorCitsaWJzc2gyIGlzbid0IGFuIG9lLWNvcmUgcmVjaXBlLCBzbyBhbGxvdyB0byBkaXNhYmxlIGl0IGZyb20KK2NvbmZpZ3VyZS4KKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IFdlbnpvbmcgRmFuIDx3ZW56b25nLmZhbkB3aW5kcml2ZXIuY29tPgorLS0tCisgY29uZmlndXJlLmFjIHwgICAyMyArKysrKysrKysrKysrKysrKy0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCAwZTk1YzVjLi4xMjE1M2I0IDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC0xOTAxLDYgKzE5MDEsMTUgQEAgQUdfR1NUX0NIRUNLX0ZFQVRVUkUoQ0hST01BUFJJTlQsIFtjaHJvbWFwcmludF0sIGNocm9tYXByaW50LCBbCisgXSkKKyAKKyBkbmwgKioqIEN1cmwgKioqCisrQUNfQVJHX0VOQUJMRShbbGlic3NoMl0sCisrICAgICBbICAtLWVuYWJsZS1saWJzc2gyCQllbmFibGUgTElCU1NIMiBzdXBwb3J0IEA8OkBkZWZhdWx0PWF1dG9AOj5AXSwKKysgICAgIFtjYXNlICIke2VuYWJsZXZhbH0iIGluCisrICAgICAgIHllcykgIE5FRURfU1NIMj15ZXMgOzsKKysgICAgICAgbm8pICAgTkVFRF9TU0gyPW5vIDs7CisrICAgICAgIGF1dG8pIE5FRURfU1NIMj1hdXRvIDs7CisrICAgICAgICopIEFDX01TR19FUlJPUihbYmFkIHZhbHVlICR7ZW5hYmxldmFsfSBmb3IgLS1lbmFibGUtbGlic3NoMl0pIDs7CisrICAgICBlc2FjXSxbTkVFRF9TU0gyPWF1dG9dKQorKworIHRyYW5zbGl0KGRubSwgbSwgbCkgQU1fQ09ORElUSU9OQUwoVVNFX0NVUkwsIHRydWUpCisgQUdfR1NUX0NIRUNLX0ZFQVRVUkUoQ1VSTCwgW0N1cmwgcGx1Z2luXSwgY3VybCwgWworICAgUEtHX0NIRUNLX01PRFVMRVMoQ1VSTCwgbGliY3VybCA+PSA3LjIxLjAsIFsKK0BAIC0xOTE1LDEyICsxOTI0LDE0IEBAIEFHX0dTVF9DSEVDS19GRUFUVVJFKENVUkwsIFtDdXJsIHBsdWdpbl0sIGN1cmwsIFsKKyAgIF0pCisgICBBQ19TVUJTVChDVVJMX0NGTEFHUykKKyAgIEFDX1NVQlNUKENVUkxfTElCUykKKy0gIFBLR19DSEVDS19NT0RVTEVTKFNTSDIsIGxpYnNzaDIgPj0gMS40LjMsIFsKKy0gICAgSEFWRV9TU0gyPSJ5ZXMiCistICAgIEFDX0RFRklORShIQVZFX1NTSDIsIDEsIFtEZWZpbmUgaWYgbGlic3NoMiBpcyBhdmFpbGFibGVdKQorLSAgXSwgWworLSAgICBIQVZFX1NTSDI9Im5vIgorLSAgXSkKKysgIGlmIHRlc3QgIngkTkVFRF9TU0gyIiAhPSAieG5vIjsgdGhlbgorKyAgICBQS0dfQ0hFQ0tfTU9EVUxFUyhTU0gyLCBsaWJzc2gyID49IDEuNC4zLCBbCisrICAgICAgSEFWRV9TU0gyPSJ5ZXMiCisrICAgICAgQUNfREVGSU5FKEhBVkVfU1NIMiwgMSwgW0RlZmluZSBpZiBsaWJzc2gyIGlzIGF2YWlsYWJsZV0pCisrICAgIF0sIFsKKysgICAgICBIQVZFX1NTSDI9Im5vIgorKyAgICBdKQorKyAgZmkKKyAgIEFNX0NPTkRJVElPTkFMKFVTRV9TU0gyLCB0ZXN0ICJ4JEhBVkVfU1NIMiIgPSAieHllcyIpCisgICBBQ19TVUJTVChTU0gyX0NGTEFHUykKKyAgIEFDX1NVQlNUKFNTSDJfTElCUykKKy0tIAorMS43LjkuNQorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFkXzEuNC41LmJiIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhZF8xLjQuNS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTA2NWRlCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhZF8xLjQuNS5iYgpAQCAtMCwwICsxLDE0IEBACitpbmNsdWRlIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhZC5pbmMKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzNhNTg1NWE4MTE5ZGViMDE3ZjVmMTNjZjMyNzA5NWQgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vZ3N0L3R0YS9maWx0ZXJzLmg7YmVnaW5saW5lPTEyO2VuZGxpbmU9Mjk7bWQ1PThhMDgyNzA2NTZmMmY4YWQ3YmIzNjU1YjgzMTM4ZTVhIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuTElCO21kNT0yMTY4MmU0ZThmZWE1MjQxM2ZkMjZjNjBhY2I5MDdlNSBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9nc3QvdHRhL2NyYzMyLmg7YmVnaW5saW5lPTEyO2VuZGxpbmU9Mjk7bWQ1PTI3ZGIyNjljNTc1ZDFlNTMxN2ZmZmNhMmQzM2IzYjUwIgorCitTUkNfVVJJICs9ICJmaWxlOi8vMDAwMS1nbC1kby1ub3QtY2hlY2stZm9yLUdMLUdMVS1FR0wtR0xFUzItbGlicy1pZi1kaXNhYmxlLnBhdGNoIgorCitTUkNfVVJJW21kNXN1bV0gPSAiZTBiYjM5NDEyY2Y0YTQ4ZmUwMzk3YmNmM2E3Y2Q0NTEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMTUyZmFkNzI1MDY4M2Q3MmY5ZGViMzZjNTY4NTQyODMzODM2NWZlNGE0Yzg3ZmZlMTVlMzg3ODNiMTRmOTgzYyIKKworUyA9ICIke1dPUktESVJ9L2dzdC1wbHVnaW5zLWJhZC0ke1BWfSIKKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhZF9naXQuYmIgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFkX2dpdC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDk1MDVmCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhZF9naXQuYmIKQEAgLTAsMCArMSwyNiBAQAorREVGQVVMVF9QUkVGRVJFTkNFID0gIi0xIgorCitpbmNsdWRlIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhZC5pbmMKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9NzNhNTg1NWE4MTE5ZGViMDE3ZjVmMTNjZjMyNzA5NWQgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vZ3N0L3R0YS9maWx0ZXJzLmg7YmVnaW5saW5lPTEyO2VuZGxpbmU9Mjk7bWQ1PThhMDgyNzA2NTZmMmY4YWQ3YmIzNjU1YjgzMTM4ZTVhIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuTElCO21kNT0yMTY4MmU0ZThmZWE1MjQxM2ZkMjZjNjBhY2I5MDdlNSBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9nc3QvdHRhL2NyYzMyLmg7YmVnaW5saW5lPTEyO2VuZGxpbmU9Mjk7bWQ1PTI3ZGIyNjljNTc1ZDFlNTMxN2ZmZmNhMmQzM2IzYjUwIgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitTUkNSRVYgPSAiNmU1ZGI1N2QyNDQ2YTc1M2FhYTc2YmVlMjY4ZTFmOTU2MDBiMTRjZSIKKworUEFDS0FHRUNPTkZJR1tzYmNdID0gIi0tZW5hYmxlLXNiYywtLWRpc2FibGUtc2JjLHNiYyIKK1BBQ0tBR0VDT05GSUdbaGxzXSA9ICItLWVuYWJsZS1obHMsLS1kaXNhYmxlLWhscyxnbnV0bHMiCisKK0VYVFJBX09FQ09ORiArPSAiIFwKKyAgICAtZGlzYWJsZS1vcGVuanBlZyBcCisgICAgIgorCitkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKKwljZCAke1N9CisJLi9hdXRvZ2VuLnNoIC0tbm9jb25maWd1cmUKKwljZCAke0J9Cit9CisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlLmluYyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40N2YzZjQwCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UuaW5jCkBAIC0wLDAgKzEsMzkgQEAKK3JlcXVpcmUgZ3N0cmVhbWVyMS4wLXBsdWdpbnMuaW5jCisKK0xJQ0VOU0UgPSAiR1BMdjIrICYgTEdQTHYyKyIKKworREVQRU5EUyArPSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICd4MTEnLCAndmlydHVhbC9saWJ4MTEgbGlieHYnLCAnJywgZCl9IgorREVQRU5EUyArPSAiZnJlZXR5cGUgbGlib2lsIHV0aWwtbGludXgiCisKK2luaGVyaXQgZ2V0dGV4dAorCitQQUNLQUdFU19EWU5BTUlDID0rICJebGliZ3N0LioiCisKK1BBQ0tBR0VDT05GSUcgPz89ICIgXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAneDExJywgJ3gxMScsICcnLCBkKX0gXAorICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnYWxzYScsICdhbHNhJywgJycsIGQpfSBcCisgICAgb3JjIGl2b3JiaXMgb2dnIHRoZW9yYSB2b3JiaXMgcGFuZ28gXAorICAgICIKKworWDExREVQRU5EUyA9ICJ2aXJ0dWFsL2xpYngxMSBsaWJzbSBsaWJ4cmVuZGVyIgorWDExRU5BQkxFT1BUUyA9ICItLWVuYWJsZS14IC0tZW5hYmxlLXh2aWRlbyAtLWVuYWJsZS14c2htIgorWDExRElTQUJMRU9QVFMgPSAiLS1kaXNhYmxlLXggLS1kaXNhYmxlLXh2aWRlbyAtLWRpc2FibGUteHNobSIKK1BBQ0tBR0VDT05GSUdbeDExXSAgICAgPSAiJHtYMTFFTkFCTEVPUFRTfSwke1gxMURJU0FCTEVPUFRTfSwke1gxMURFUEVORFN9IgorUEFDS0FHRUNPTkZJR1thbHNhXSAgICA9ICItLWVuYWJsZS1hbHNhLC0tZGlzYWJsZS1hbHNhLGFsc2EtbGliIgorUEFDS0FHRUNPTkZJR1tpdm9yYmlzXSA9ICItLWVuYWJsZS1pdm9yYmlzLC0tZGlzYWJsZS1pdm9yYmlzLHRyZW1vciIKK1BBQ0tBR0VDT05GSUdbb2dnXSAgICAgPSAiLS1lbmFibGUtb2dnLC0tZGlzYWJsZS1vZ2csbGlib2dnIgorUEFDS0FHRUNPTkZJR1t0aGVvcmFdICA9ICItLWVuYWJsZS10aGVvcmEsLS1kaXNhYmxlLXRoZW9yYSxsaWJ0aGVvcmEiCitQQUNLQUdFQ09ORklHW3ZvcmJpc10gID0gIi0tZW5hYmxlLXZvcmJpcywtLWRpc2FibGUtdm9yYmlzLGxpYnZvcmJpcyIKK1BBQ0tBR0VDT05GSUdbcGFuZ29dICAgPSAiLS1lbmFibGUtcGFuZ28sLS1kaXNhYmxlLXBhbmdvLHBhbmdvIgorCisKKyMgY2RwYXJhbm9pYSBhbmQgbGlidmlzdWFsIGRvIG5vdCBzZWVtIHRvIGV4aXN0IGFueXdoZXJlIGluIE9FCitFWFRSQV9PRUNPTkYgKz0gIiBcCisgICAgLS1kaXNhYmxlLWZyZWV0eXBldGVzdCBcCisgICAgLS1kaXNhYmxlLWNkcGFyYW5vaWEgXAorICAgIC0tZGlzYWJsZS1saWJ2aXN1YWwgXAorIgorCitGSUxFU18ke01MUFJFRklYfWxpYmdzdHRhZy0xLjAgKz0gIiR7ZGF0YWRpcn0vZ3N0LXBsdWdpbnMtYmFzZS8xLjAvbGljZW5zZS10cmFuc2xhdGlvbnMuZGljdCIKKworQ0FDSEVEX0NPTkZJR1VSRVZBUlNfYXBwZW5kX3g4NiA9ICIgYWNfY3ZfaGVhZGVyX2VtbWludHJpbl9oPW5vIGFjX2N2X2hlYWRlcl94bW1pbnRyaW5faD1ubyIKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlLzAwMDEtYmFzZXRleHRvdmVybGF5LW1ha2UtbWVtb3J5LWNvcHktd2hlbi12aWRlby1idWZmZXItcy5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlLzAwMDEtYmFzZXRleHRvdmVybGF5LW1ha2UtbWVtb3J5LWNvcHktd2hlbi12aWRlby1idWZmZXItcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wM2RjYTk1Ci0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvMDAwMS1iYXNldGV4dG92ZXJsYXktbWFrZS1tZW1vcnktY29weS13aGVuLXZpZGVvLWJ1ZmZlci1zLnBhdGNoCkBAIC0wLDAgKzEsMTI5IEBACitGcm9tIDM3ODFkNDA5NDBkNDZkN2U2YTUwMjA5MmQyNGFhYzc5OTdmNmRhNWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaW5na2UgV2FuZyA8bWluZ2tlLndhbmdAZnJlZXNjYWxlLmNvbT4KK0RhdGU6IFRodSwgNSBNYXIgMjAxNSAxMjowNjoyMyArMDgwMAorU3ViamVjdDogW1BBVENIIDEvNF0gYmFzZXRleHRvdmVybGF5OiBtYWtlIG1lbW9yeSBjb3B5IHdoZW4gdmlkZW8gYnVmZmVyJ3MKKyBtZW1vcnkgaXMgcmVhZHkgb25seQorCisxLiBzaW5jZSBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUganVzdCBsb29rdXAgdGhlIHJlZmNvdW50IHRvIGRldGVybWluZSBpZgorICAgYSBidWZmZXIgaXMgd3JpdGFibGUsIGFuZCBpdCB3aWxsIHVzZSBfZ3N0X2J1ZmZlcl9jb3B5KCkgd2hpY2ggZG9uJ3QKKyAgIHBlcmZvcm0gYSBkZWVwIG1lbW9yeSBjb3B5IGV2ZW4gaWYgdGhlIGZsYWcgb2YgYSBtZW1vcnkgaXMgc2V0IHRvCisgICBHU1RfTUVNT1JZX0ZMQUdfUkVBRE9OTFkuIFNvLCB3ZSBkZXRlY3QgdGhlIG1lbW9yeSBmbGFnIGFuZCB1c2UKKyAgIGdzdF9idWZmZXJfY29weV9yZWdpb24gd2l0aCBHU1RfQlVGRkVSX0NPUFlfREVFUCBwYXJhbWV0ZXIgdG8gcGVyZm9ybQorICAgZGVlcCBtZW1vcnkgY29weS4gaWYgdGhlIGFsbG9jYXRvciBvZiBhIG1lbW9yeSBkb24ndCBzdXBwb3J0IG1lbV9jb3B5CisgICBpbnRlcmZhY2UsIHRoZSBpdCB3aWxsIHJldHVybiBOVUxMLCBpZiB0aGlzIGNhc2UsIHdlIGNhbiB1c2UKKyAgIGdzdF9idWZmZXJfbWFrZV93cml0YWJsZSgpIHRvIGdldCBhIHNoYXJlZCBtZW1vcnkgYnVmZmVyIG9yIHRoZSBvcmlnbmFsCisgICBidWZmZXIgaWYgdGhlIGJ1ZmZlcidzIHJlZmNvdW50IGlzIDEuCisyLiAgbmV3IGZlYXR1cmUgaXMgbm8gYWRkZWQgaWYgY2FwcyBoYXMgbm8gZmVhdHVyZSBkdXJpbmcgY2FwcyBuZWdvdGlhdGlvbgorCitVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBbaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzQ5NV0KKworU2lnbmVkLW9mZi1ieTogTWluZ2tlIFdhbmcgPG1pbmdrZS53YW5nQGZyZWVzY2FsZS5jb20+CisKK2RpZmYgLS1naXQgYS9leHQvcGFuZ28vZ3N0YmFzZXRleHRvdmVybGF5LmMgYi9leHQvcGFuZ28vZ3N0YmFzZXRleHRvdmVybGF5LmMKK2luZGV4IGM5MTk4NjEuLjNjMGExZDcgMTAwNzU1CistLS0gYS9leHQvcGFuZ28vZ3N0YmFzZXRleHRvdmVybGF5LmMKKysrKyBiL2V4dC9wYW5nby9nc3RiYXNldGV4dG92ZXJsYXkuYworQEAgLTc0Nyw2ICs3NDcsNyBAQCBnc3RfYmFzZV90ZXh0X292ZXJsYXlfbmVnb3RpYXRlIChHc3RCYXNlVGV4dE92ZXJsYXkgKiBvdmVybGF5LCBHc3RDYXBzICogY2FwcykKKyAgICAgaWYgKGYgPT0gTlVMTCkgeworICAgICAgIGYgPSBnc3RfY2Fwc19mZWF0dXJlc19uZXcKKyAgICAgICAgICAgKEdTVF9DQVBTX0ZFQVRVUkVfTUVUQV9HU1RfVklERU9fT1ZFUkxBWV9DT01QT1NJVElPTiwgTlVMTCk7CisrICAgICAgZ3N0X2NhcHNfc2V0X2ZlYXR1cmVzKG92ZXJsYXlfY2FwcywgMCwgZik7CisgICAgIH0gZWxzZSB7CisgICAgICAgZ3N0X2NhcHNfZmVhdHVyZXNfYWRkIChmLAorICAgICAgICAgICBHU1RfQ0FQU19GRUFUVVJFX01FVEFfR1NUX1ZJREVPX09WRVJMQVlfQ09NUE9TSVRJT04pOworQEAgLTE4OTAsMTYgKzE4OTEsNzEgQEAgZ3N0X2Jhc2VfdGV4dF9vdmVybGF5X3B1c2hfZnJhbWUgKEdzdEJhc2VUZXh0T3ZlcmxheSAqIG92ZXJsYXksCisgICBpZiAoZ3N0X3BhZF9jaGVja19yZWNvbmZpZ3VyZSAob3ZlcmxheS0+c3JjcGFkKSkKKyAgICAgZ3N0X2Jhc2VfdGV4dF9vdmVybGF5X25lZ290aWF0ZSAob3ZlcmxheSwgTlVMTCk7CisgCistICB2aWRlb19mcmFtZSA9IGdzdF9idWZmZXJfbWFrZV93cml0YWJsZSAodmlkZW9fZnJhbWUpOworLQorICAgaWYgKG92ZXJsYXktPmF0dGFjaF9jb21wb190b19idWZmZXIpIHsKKyAgICAgR1NUX0RFQlVHX09CSkVDVCAob3ZlcmxheSwgIkF0dGFjaGluZyB0ZXh0IG92ZXJsYXkgaW1hZ2UgdG8gdmlkZW8gYnVmZmVyIik7CisrICAgIHZpZGVvX2ZyYW1lID0gZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlICh2aWRlb19mcmFtZSk7CisgICAgIGdzdF9idWZmZXJfYWRkX3ZpZGVvX292ZXJsYXlfY29tcG9zaXRpb25fbWV0YSAodmlkZW9fZnJhbWUsCisgICAgICAgICBvdmVybGF5LT5jb21wb3NpdGlvbik7CisgICAgIC8qIEZJWE1FOiBlbXVsYXRlIHNoYWRlZCBiYWNrZ3JvdW5kIGJveCBpZiB3YW50X3NoYWRpbmc9dHJ1ZSAqLworICAgICBnb3RvIGRvbmU7CisgICB9CisgCisrICBnaW50IG0gPSBnc3RfYnVmZmVyX25fbWVtb3J5KHZpZGVvX2ZyYW1lKTsKKysgIGdib29sZWFuIG1lbV9yZG9ubHkgPSBGQUxTRTsKKysgIEdzdE1lbW9yeSAqbWVtOworKyAgR3N0QnVmZmVyICpvcmlnID0gdmlkZW9fZnJhbWU7CisrCisrICB3aGlsZSAoLS1tPj0wKSB7CisrICAgIG1lbSA9IGdzdF9idWZmZXJfZ2V0X21lbW9yeSh2aWRlb19mcmFtZSwgbSk7CisrICAgIGlmIChHU1RfTUVNT1JZX0lTX1JFQURPTkxZKG1lbSkpIHsKKysgICAgICBtZW1fcmRvbmx5ID0gVFJVRTsKKysgICAgICBnc3RfbWVtb3J5X3VucmVmIChtZW0pOworKyAgICAgIGJyZWFrOworKyAgICB9CisrICAgIGdzdF9tZW1vcnlfdW5yZWYgKG1lbSk7CisrICB9CisrCisrICBpZiAobWVtX3Jkb25seSkgeworKyAgICAvLyBzaW5jZSBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUganVzdCBsb29rdXAgdGhlIHJlZmNvdW50IHRvIGRldGVybWluZSBpZgorKyAgICAvLyBhIGJ1ZmZlciBpcyB3cml0YWJsZSwgYW5kIGl0IHdpbGwgdXNlIF9nc3RfYnVmZmVyX2NvcHkoKSB3aGljaCBkb24ndAorKyAgICAvLyBwZXJmb3JtIGEgZGVlcCBtZW1vcnkgY29weSBldmVuIGlmIHRoZSBmbGFnIG9mIGEgbWVtb3J5IGlzIHNldCB0bworKyAgICAvLyBHU1RfTUVNT1JZX0ZMQUdfUkVBRE9OTFkuIFNvLCB3ZSBkZXRlY3QgdGhlIG1lbW9yeSBmbGFnIGFuZCB1c2UKKysgICAgLy8gZ3N0X2J1ZmZlcl9jb3B5X3JlZ2lvbiB3aXRoIEdTVF9CVUZGRVJfQ09QWV9ERUVQIHBhcmFtZXRlciB0byBwZXJmb3JtCisrICAgIC8vIGRlZXAgbWVtb3J5IGNvcHkuIGlmIHRoZSBhbGxvY2F0b3Igb2YgYSBtZW1vcnkgZG9uJ3Qgc3VwcG9ydCBtZW1fY29weQorKyAgICAvLyBpbnRlcmZhY2UsIHRoZSBpdCB3aWxsIHJldHVybiBOVUxMLCBpZiB0aGlzIGNhc2UsIHdlIGNhbiB1c2UKKysgICAgLy8gZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlKCkgdG8gZ2V0IGEgc2hhcmVkIG1lbW9yeSBidWZmZXIgb3IgdGhlIG9yaWduYWwKKysgICAgLy8gYnVmZmVyIGlmIHRoZSBidWZmZXIncyByZWZjb3VudCBpcyAxLgorKyAgICBHc3RCdWZmZXIgKm5ld19idWYgPSBnc3RfYnVmZmVyX2NvcHlfcmVnaW9uICh2aWRlb19mcmFtZSwKKysgICAgICAgIEdTVF9CVUZGRVJfQ09QWV9BTEwgfCBHU1RfQlVGRkVSX0NPUFlfREVFUCwgMCwgLTEpOworKworKyAgICBHU1RfREVCVUdfT0JKRUNUIChvdmVybGF5LCAiY29weSAlcyB2aWRlbyBmcmFtZSBidWZmZXIgJXAgLT4gJXAiLAorKyAgICAgICAgZ190eXBlX25hbWUgKEdTVF9NSU5JX09CSkVDVF9UWVBFICh2aWRlb19mcmFtZSkpLCB2aWRlb19mcmFtZSwgbmV3X2J1Zik7CisrCisrICAgIGlmICghbmV3X2J1ZikgeworKyAgICAgIC8vbWF5YmUgdGhlIGFsbG9jYXRvciBkb24ndCBzdXBwb3J0IG1lbV9jb3B5IGludGVyZmFjZSwgdGhlIHdlIGp1c3QgdXNlCisrICAgICAgLy9nc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUoKSB0byBnZXQgYSB3cml0YWJsZSBidWZmZXIuCisrICAgICAgdmlkZW9fZnJhbWUgPSBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUgKHZpZGVvX2ZyYW1lKTsKKysgICAgfSBlbHNlIHsKKysgICAgICBnc3RfbWluaV9vYmplY3RfdW5yZWYgKHZpZGVvX2ZyYW1lKTsKKysgICAgICBHU1RfQlVGRkVSX0ZMQUdfVU5TRVQgKG5ld19idWYsIEdTVF9CVUZGRVJfRkxBR19UQUdfTUVNT1JZKTsKKysgICAgICB2aWRlb19mcmFtZSA9IG5ld19idWY7CisrICAgIH0KKysKKysgICAgaWYgKCF2aWRlb19mcmFtZSkgeworKyAgICAgIEdTVF9XQVJOSU5HX09CSkVDVCAob3ZlcmxheSwgIm1ha2Ugd3JpdGFibGUgYnVmZmVyIGZhaWxlZCIpOworKyAgICAgIHJldHVybiBHU1RfRkxPV19PSzsKKysgICAgfQorKworKyAgICBtID0gZ3N0X2J1ZmZlcl9uX21lbW9yeSh2aWRlb19mcmFtZSk7CisrICAgIHdoaWxlICgtLW0+PTApIHsKKysgICAgICBtZW0gPSBnc3RfYnVmZmVyX2dldF9tZW1vcnkodmlkZW9fZnJhbWUsIG0pOworKyAgICAgIEdTVF9NRU1PUllfRkxBR19VTlNFVCAobWVtLCBHU1RfTUVNT1JZX0ZMQUdfUkVBRE9OTFkpOworKyAgICAgIGdzdF9tZW1vcnlfdW5yZWYgKG1lbSk7CisrICAgIH0KKysgIH0gZWxzZSB7CisrICAgIHZpZGVvX2ZyYW1lID0gZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlICh2aWRlb19mcmFtZSk7CisrICB9CisrCisgICBpZiAoIWdzdF92aWRlb19mcmFtZV9tYXAgKCZmcmFtZSwgJm92ZXJsYXktPmluZm8sIHZpZGVvX2ZyYW1lLAorICAgICAgICAgICBHU1RfTUFQX1JFQURXUklURSkpCisgICAgIGdvdG8gaW52YWxpZF9mcmFtZTsKK0BAIC0xOTE4LDYgKzE5NzQsMTggQEAgZ3N0X2Jhc2VfdGV4dF9vdmVybGF5X3B1c2hfZnJhbWUgKEdzdEJhc2VUZXh0T3ZlcmxheSAqIG92ZXJsYXksCisgCisgICBnc3RfdmlkZW9fZnJhbWVfdW5tYXAgKCZmcmFtZSk7CisgCisrICBpZiAobWVtX3Jkb25seSAmJiBvcmlnID09IHZpZGVvX2ZyYW1lKSB7CisrICAgIC8vaWYgd2UgdXNlZCB0aGUgb3JpZ2luYWwgYnVmZmVyIGFuZCBpdCdzIG1lbSBpcyBzZXQgdG8gcmVhZCBvbmx5LAorKyAgICAvL3JlY292ZXIgdGhlIG1lbW9yeSByZWFkeSBvbmx5IGZsYWcgc2luY2Ugd2UgdW5zZXQgaXQgYmVmb3JlCisrICAgIC8vIGdzdF92aWRlb19mcmFtZV9tYXAgKCkKKysgICAgbSA9IGdzdF9idWZmZXJfbl9tZW1vcnkodmlkZW9fZnJhbWUpOworKyAgICB3aGlsZSAoLS1tPj0wKSB7CisrICAgICAgbWVtID0gZ3N0X2J1ZmZlcl9nZXRfbWVtb3J5KHZpZGVvX2ZyYW1lLCBtKTsKKysgICAgICBHU1RfTUVNT1JZX0ZMQUdTKG1lbSkgfD0gKEdTVF9NRU1PUllfRkxBR19SRUFET05MWSk7CisrICAgICAgZ3N0X21lbW9yeV91bnJlZiAobWVtKTsKKysgICAgfQorKyAgfQorKworIGRvbmU6CisgCisgICByZXR1cm4gZ3N0X3BhZF9wdXNoIChvdmVybGF5LT5zcmNwYWQsIHZpZGVvX2ZyYW1lKTsKKy0tIAorMS43LjkuNQorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS8wMDAxLXZpZGVvLWZyYW1lLURvbi10LXJlZi1idWZmZXJzLXR3aWNlLXdoZW4tbWFwcGluZy5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlLzAwMDEtdmlkZW8tZnJhbWUtRG9uLXQtcmVmLWJ1ZmZlcnMtdHdpY2Utd2hlbi1tYXBwaW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYjQ3MjQKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS8wMDAxLXZpZGVvLWZyYW1lLURvbi10LXJlZi1idWZmZXJzLXR3aWNlLXdoZW4tbWFwcGluZy5wYXRjaApAQCAtMCwwICsxLDI2IEBACitGcm9tIDI2OWY2NDJjNDVkODVjZmQ2MzBlZDQ5MDQ3OGU2YmQ2YjcxYTc2N2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/U2ViYXN0aWFuPTIwRHI9QzM9QjZnZT89IDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgorRGF0ZTogVHVlLCAxNiBTZXAgMjAxNCAwMTowNzoxOCArMDMwMAorU3ViamVjdDogW1BBVENIXSB2aWRlby1mcmFtZTogRG9uJ3QgcmVmIGJ1ZmZlcnMgdHdpY2Ugd2hlbiBtYXBwaW5nCisKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQgWzEuNS4xXQorLS0tCisgZ3N0LWxpYnMvZ3N0L3ZpZGVvL3ZpZGVvLWZyYW1lLmMgfCAgICAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9nc3QtbGlicy9nc3QvdmlkZW8vdmlkZW8tZnJhbWUuYyBiL2dzdC1saWJzL2dzdC92aWRlby92aWRlby1mcmFtZS5jCitpbmRleCAwMWYyM2MwLi44YTlhZTk2IDEwMDY0NAorLS0tIGEvZ3N0LWxpYnMvZ3N0L3ZpZGVvL3ZpZGVvLWZyYW1lLmMKKysrKyBiL2dzdC1saWJzL2dzdC92aWRlby92aWRlby1mcmFtZS5jCitAQCAtMTA1LDcgKzEwNSw3IEBAIGdzdF92aWRlb19mcmFtZV9tYXBfaWQgKEdzdFZpZGVvRnJhbWUgKiBmcmFtZSwgR3N0VmlkZW9JbmZvICogaW5mbywKKyAgICAgICBmcmFtZS0+ZGF0YVtpXSA9IGZyYW1lLT5tYXBbMF0uZGF0YSArIGluZm8tPm9mZnNldFtpXTsKKyAgICAgfQorICAgfQorLSAgZnJhbWUtPmJ1ZmZlciA9IGdzdF9idWZmZXJfcmVmIChidWZmZXIpOworKyAgZnJhbWUtPmJ1ZmZlciA9IGJ1ZmZlcjsKKyAgIGlmICgoZmxhZ3MgJiBHU1RfVklERU9fRlJBTUVfTUFQX0ZMQUdfTk9fUkVGKSA9PSAwKQorICAgICBnc3RfYnVmZmVyX3JlZiAoZnJhbWUtPmJ1ZmZlcik7CisgCistLSAKKzEuNy45LjUKKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvMDAwMi1nc3RwbGF5c2luay1kb24tdC1zZXQtYXN5bmMtb2YtY3VzdG9tLXRleHQtc2luay10by1mLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvMDAwMi1nc3RwbGF5c2luay1kb24tdC1zZXQtYXN5bmMtb2YtY3VzdG9tLXRleHQtc2luay10by1mLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5YzE0NmEKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS8wMDAyLWdzdHBsYXlzaW5rLWRvbi10LXNldC1hc3luYy1vZi1jdXN0b20tdGV4dC1zaW5rLXRvLWYucGF0Y2gKQEAgLTAsMCArMSwzMSBAQAorRnJvbSAwYTc4NTU1ZWE2YzhjMmYxZWUyN2VlNDcwN2U4ZDdhYTAwYWI3YTY2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWluZ2tlIFdhbmcgPG1pbmdrZS53YW5nQGZyZWVzY2FsZS5jb20+CitEYXRlOiBUaHUsIDE5IE1hciAyMDE1IDE0OjE1OjI1ICswODAwCitTdWJqZWN0OiBbUEFUQ0ggMi80XSBnc3RwbGF5c2luazogZG9uJ3Qgc2V0IGFzeW5jIG9mIGN1c3RvbSB0ZXh0LXNpbmsgdG8KKyBmYWxzZQorCitzZXQgYXN5bmMgdG8gZmFsc2UgbGVhZCB0byBBL1Ygc3luYyBwcm9ibGVtIHdoZW4gc2Vla2luZy4KK3RoZSBwcmVyb2xsIG5lZWQgdXNlIEdBUCBldmVudCBpbnN0ZWFkIG9mIHNldCBhc3luYyB0byBmYWxzZS4KKworVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgW2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc0OTldCisKK1NpZ25lZC1vZmYtYnk6IE1pbmdrZSBXYW5nIDxtaW5na2Uud2FuZ0BmcmVlc2NhbGUuY29tPgorCitkaWZmIC0tZ2l0IGEvZ3N0L3BsYXliYWNrL2dzdHBsYXlzaW5rLmMgYi9nc3QvcGxheWJhY2svZ3N0cGxheXNpbmsuYworb2xkIG1vZGUgMTAwNjQ0CituZXcgbW9kZSAxMDA3NTUKK2luZGV4IGY1YTJkNDIuLmZiYTAxNzIKKy0tLSBhL2dzdC9wbGF5YmFjay9nc3RwbGF5c2luay5jCisrKysgYi9nc3QvcGxheWJhY2svZ3N0cGxheXNpbmsuYworQEAgLTI0MDgsNyArMjQwOCw3IEBAIGdlbl90ZXh0X2NoYWluIChHc3RQbGF5U2luayAqIHBsYXlzaW5rKQorICAgICAgICAgICBHX1RZUEVfQk9PTEVBTik7CisgICAgICAgaWYgKGVsZW0pIHsKKyAgICAgICAgIC8qIG1ha2Ugc3VyZSB0aGUgc3BhcnNlIHN1YnRpdGxlcyBkb24ndCBwYXJ0aWNpcGF0ZSBpbiB0aGUgcHJlcm9sbCAqLworLSAgICAgICAgZ19vYmplY3Rfc2V0IChlbGVtLCAiYXN5bmMiLCBGQUxTRSwgTlVMTCk7CisrICAgICAgICAvL2dfb2JqZWN0X3NldCAoZWxlbSwgImFzeW5jIiwgRkFMU0UsIE5VTEwpOworICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAocGxheXNpbmssICJhZGRpbmcgY3VzdG9tIHRleHQgc2luayIpOworICAgICAgICAgZ3N0X2Jpbl9hZGQgKGJpbiwgY2hhaW4tPnNpbmspOworICAgICAgICAgLyogTk9URSBzdHJlYW1zeW5jaHJvbml6ZXIgbmVlZHMgc3RyZWFtcyBkZWNvdXBsZWQgKi8KKy0tIAorMS43LjkuNQorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS8wMDAyLXZpZGVvLWZyYW1lLUFkZC1HU1RfVklERU9fRlJBTUVfTUFQX0ZMQUdfTk9fUkVGLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvMDAwMi12aWRlby1mcmFtZS1BZGQtR1NUX1ZJREVPX0ZSQU1FX01BUF9GTEFHX05PX1JFRi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDY1YjVjCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvMDAwMi12aWRlby1mcmFtZS1BZGQtR1NUX1ZJREVPX0ZSQU1FX01BUF9GTEFHX05PX1JFRi5wYXRjaApAQCAtMCwwICsxLDg3IEBACitGcm9tIDQwYTI5M2Q0NGQxYWVjY2Y1ZWI4ZTg2ZjIzYTBiMTM2NjYxMTFjNWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/U2ViYXN0aWFuPTIwRHI9QzM9QjZnZT89IDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgorRGF0ZTogRnJpLCAxMiBTZXAgMjAxNCAxNDozOToxNiArMDMwMAorU3ViamVjdDogW1BBVENIIDIvM10gdmlkZW8tZnJhbWU6IEFkZCBHU1RfVklERU9fRlJBTUVfTUFQX0ZMQUdfTk9fUkVGCisKK1RoaXMgbWFrZXMgc3VyZSB0aGF0IHRoZSBidWZmZXIgaXMgbm90IHJlZmZlZCBhbm90aGVyIHRpbWUgd2hlbgorc3RvcmluZyBpdCBpbiB0aGUgR3N0VmlkZW9GcmFtZSwga2VlcGluZyBpdCB3cml0YWJsZSBpZiBpdCB3YXMKK3dyaXRhYmxlLgorCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFsxLjUuMV0KK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzYxMTgKKy0tLQorIGdzdC1saWJzL2dzdC92aWRlby92aWRlby1mcmFtZS5jIHwgICAgOSArKysrKysrKy0KKyBnc3QtbGlicy9nc3QvdmlkZW8vdmlkZW8tZnJhbWUuaCB8ICAgMTggKysrKysrKysrKysrKysrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCAyNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9nc3QtbGlicy9nc3QvdmlkZW8vdmlkZW8tZnJhbWUuYyBiL2dzdC1saWJzL2dzdC92aWRlby92aWRlby1mcmFtZS5jCitpbmRleCA1MzdjZjcwLi4wMWYyM2MwIDEwMDY0NAorLS0tIGEvZ3N0LWxpYnMvZ3N0L3ZpZGVvL3ZpZGVvLWZyYW1lLmMKKysrKyBiL2dzdC1saWJzL2dzdC92aWRlby92aWRlby1mcmFtZS5jCitAQCAtMTA2LDYgKzEwNiw5IEBAIGdzdF92aWRlb19mcmFtZV9tYXBfaWQgKEdzdFZpZGVvRnJhbWUgKiBmcmFtZSwgR3N0VmlkZW9JbmZvICogaW5mbywKKyAgICAgfQorICAgfQorICAgZnJhbWUtPmJ1ZmZlciA9IGdzdF9idWZmZXJfcmVmIChidWZmZXIpOworKyAgaWYgKChmbGFncyAmIEdTVF9WSURFT19GUkFNRV9NQVBfRkxBR19OT19SRUYpID09IDApCisrICAgIGdzdF9idWZmZXJfcmVmIChmcmFtZS0+YnVmZmVyKTsKKysKKyAgIGZyYW1lLT5tZXRhID0gbWV0YTsKKyAKKyAgIC8qIGJ1ZmZlciBmbGFncyBlbmhhbmNlIHRoZSBmcmFtZSBmbGFncyAqLworQEAgLTE4OSwxMSArMTkyLDEzIEBAIGdzdF92aWRlb19mcmFtZV91bm1hcCAoR3N0VmlkZW9GcmFtZSAqIGZyYW1lKQorICAgR3N0QnVmZmVyICpidWZmZXI7CisgICBHc3RWaWRlb01ldGEgKm1ldGE7CisgICBnaW50IGk7CisrICBHc3RNYXBGbGFncyBmbGFnczsKKyAKKyAgIGdfcmV0dXJuX2lmX2ZhaWwgKGZyYW1lICE9IE5VTEwpOworIAorICAgYnVmZmVyID0gZnJhbWUtPmJ1ZmZlcjsKKyAgIG1ldGEgPSBmcmFtZS0+bWV0YTsKKysgIGZsYWdzID0gZnJhbWUtPm1hcFswXS5mbGFnczsKKyAKKyAgIGlmIChtZXRhKSB7CisgICAgIGZvciAoaSA9IDA7IGkgPCBmcmFtZS0+aW5mby5maW5mby0+bl9wbGFuZXM7IGkrKykgeworQEAgLTIwMiw3ICsyMDcsOSBAQCBnc3RfdmlkZW9fZnJhbWVfdW5tYXAgKEdzdFZpZGVvRnJhbWUgKiBmcmFtZSkKKyAgIH0gZWxzZSB7CisgICAgIGdzdF9idWZmZXJfdW5tYXAgKGJ1ZmZlciwgJmZyYW1lLT5tYXBbMF0pOworICAgfQorLSAgZ3N0X2J1ZmZlcl91bnJlZiAoYnVmZmVyKTsKKysKKysgIGlmICgoZmxhZ3MgJiBHU1RfVklERU9fRlJBTUVfTUFQX0ZMQUdfTk9fUkVGKSA9PSAwKQorKyAgICBnc3RfYnVmZmVyX3VucmVmIChmcmFtZS0+YnVmZmVyKTsKKyB9CisgCisgLyoqCitkaWZmIC0tZ2l0IGEvZ3N0LWxpYnMvZ3N0L3ZpZGVvL3ZpZGVvLWZyYW1lLmggYi9nc3QtbGlicy9nc3QvdmlkZW8vdmlkZW8tZnJhbWUuaAoraW5kZXggNjI3ZmFiMC4uZjhlNjMwNCAxMDA2NDQKKy0tLSBhL2dzdC1saWJzL2dzdC92aWRlby92aWRlby1mcmFtZS5oCisrKysgYi9nc3QtbGlicy9nc3QvdmlkZW8vdmlkZW8tZnJhbWUuaAorQEAgLTE0OSw2ICsxNDksMjQgQEAgdHlwZWRlZiBlbnVtIHsKKyAgIEdTVF9WSURFT19CVUZGRVJfRkxBR19MQVNUICAgICAgICA9IChHU1RfQlVGRkVSX0ZMQUdfTEFTVCA8PCA4KQorIH0gR3N0VmlkZW9CdWZmZXJGbGFnczsKKyAKKysvKioKKysgKiBHc3RWaWRlb0J1ZmZlckZsYWdzOgorKyAqIEBHU1RfVklERU9fRlJBTUVfTUFQX0ZMQUdfTk9fUkVGOiAgRG9uJ3QgdGFrZSBhbm90aGVyIHJlZmVyZW5jZSBvZiB0aGUgYnVmZmVyIGFuZCBzdG9yZSBpdCBpbgorKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIEdzdFZpZGVvRnJhbWUuIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHRoZSBidWZmZXIgc3RheXMKKysgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlIHdoaWxlIHRoZSBmcmFtZSBpcyBtYXBwZWQsIGJ1dCByZXF1aXJlcyB0aGF0IHRoZQorKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyIHJlZmVyZW5jZSBzdGF5cyB2YWxpZCB1bnRpbCB0aGUgZnJhbWUgaXMgdW5tYXBwZWQgYWdhaW4uCisrICogQEdTVF9WSURFT19GUkFNRV9NQVBfRkxBR19MQVNUOiAgICBPZmZzZXQgdG8gZGVmaW5lIG1vcmUgZmxhZ3MKKysgKgorKyAqIEFkZGl0aW9uYWwgbWFwcGluZyBmbGFncyBmb3IgZ3N0X3ZpZGVvX2ZyYW1lX21hcCgpLgorKyAqCisrICogU2luY2U6IDEuNgorKyAqLworK3R5cGVkZWYgZW51bSB7CisrICBHU1RfVklERU9fRlJBTUVfTUFQX0ZMQUdfTk9fUkVGICAgPSAoR1NUX01BUF9GTEFHX0xBU1QgPDwgMCksCisrICBHU1RfVklERU9fRlJBTUVfTUFQX0ZMQUdfTEFTVCAgICAgPSAoR1NUX01BUF9GTEFHX0xBU1QgPDwgOCkKKysgIC8qIDggbW9yZSBmbGFncyBwb3NzaWJsZSBhZnRlcndhcmRzICovCisrfSBHc3RWaWRlb0ZyYW1lTWFwRmxhZ3M7CisrCisgR19FTkRfREVDTFMKKyAKKyAjZW5kaWYgLyogX19HU1RfVklERU9fRlJBTUVfSF9fICovCistLSAKKzEuNy45LjUKKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvMDAwMy1zc2FwYXJzZS1lbmhhbmNlLVNTQS10ZXh0LWxpbmVzLXBhcnNpbmcucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS8wMDAzLXNzYXBhcnNlLWVuaGFuY2UtU1NBLXRleHQtbGluZXMtcGFyc2luZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmJlYmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvMDAwMy1zc2FwYXJzZS1lbmhhbmNlLVNTQS10ZXh0LWxpbmVzLXBhcnNpbmcucGF0Y2gKQEAgLTAsMCArMSwyMjUgQEAKK0Zyb20gYmU2MTYzY2ZhM2EyNTU0OTNmOWQ3NWJhZDk1NDFjYmZlMTcyM2ZlZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pbmdrZSBXYW5nIDxtaW5na2Uud2FuZ0BmcmVlc2NhbGUuY29tPgorRGF0ZTogVGh1LCAxOSBNYXIgMjAxNSAxNDoxNzoxMCArMDgwMAorU3ViamVjdDogW1BBVENIIDMvNF0gc3NhcGFyc2U6IGVuaGFuY2UgU1NBIHRleHQgbGluZXMgcGFyc2luZy4KKworc29tZSBwYXJzZXIgd2lsbCBwYXNzIGluIHRoZSBvcmlnaW5hbCBzc2EgdGV4dCBsaW5lIHdoaWNoIHN0YXJ0cyB3aXRoICJEaWFsb2c6IgorYW5kIHRoZXJlJ3MgYXJlIG1heWJlIG11bHRpcGxlIERpYWxvZyBsaW5lcyBpbiBvbmUgaW5wdXQgYnVmZmVyLgorCitVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBbaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzQ5Nl0KKworU2lnbmVkLW9mZi1ieTogTWluZ2tlIFdhbmcgPG1pbmdrZS53YW5nQGZyZWVzY2FsZS5jb20+CisKK2RpZmYgLS1naXQgYS9nc3Qvc3VicGFyc2UvZ3N0c3NhcGFyc2UuYyBiL2dzdC9zdWJwYXJzZS9nc3Rzc2FwYXJzZS5jCitvbGQgbW9kZSAxMDA2NDQKK25ldyBtb2RlIDEwMDc1NQoraW5kZXggMDZlY2VmOS4uMGFiNWRjZQorLS0tIGEvZ3N0L3N1YnBhcnNlL2dzdHNzYXBhcnNlLmMKKysrKyBiL2dzdC9zdWJwYXJzZS9nc3Rzc2FwYXJzZS5jCitAQCAtMjYwLDYgKzI2MCw3IEBAIGdzdF9zc2FfcGFyc2VfcmVtb3ZlX292ZXJyaWRlX2NvZGVzIChHc3RTc2FQYXJzZSAqIHBhcnNlLCBnY2hhciAqIHR4dCkKKyAgKiBnc3Rfc3NhX3BhcnNlX3B1c2hfbGluZToKKyAgKiBAcGFyc2U6IGNhbGxlciBlbGVtZW50CisgICogQHR4dDogdGV4dCB0byBwdXNoCisrICogQHNpemU6IHRleHQgc2l6ZSBuZWVkIHRvIGJlIHBhcnNlCisgICogQHN0YXJ0OiB0aW1lc3RhbXAgZm9yIHRoZSBidWZmZXIKKyAgKiBAZHVyYXRpb246IGR1cmF0aW9uIGZvciB0aGUgYnVmZmVyCisgICoKK0BAIC0yNjksMjcgKzI3MCwxMzMgQEAgZ3N0X3NzYV9wYXJzZV9yZW1vdmVfb3ZlcnJpZGVfY29kZXMgKEdzdFNzYVBhcnNlICogcGFyc2UsIGdjaGFyICogdHh0KQorICAqIFJldHVybnM6IHJlc3VsdCBvZiB0aGUgcHVzaCBvZiB0aGUgY3JlYXRlZCBidWZmZXIKKyAgKi8KKyBzdGF0aWMgR3N0Rmxvd1JldHVybgorLWdzdF9zc2FfcGFyc2VfcHVzaF9saW5lIChHc3RTc2FQYXJzZSAqIHBhcnNlLCBnY2hhciAqIHR4dCwKKytnc3Rfc3NhX3BhcnNlX3B1c2hfbGluZSAoR3N0U3NhUGFyc2UgKiBwYXJzZSwgZ2NoYXIgKiB0eHQsIGdpbnQgc2l6ZSwKKyAgICAgR3N0Q2xvY2tUaW1lIHN0YXJ0LCBHc3RDbG9ja1RpbWUgZHVyYXRpb24pCisgeworICAgR3N0Rmxvd1JldHVybiByZXQ7CisgICBHc3RCdWZmZXIgKmJ1ZjsKKy0gIGdjaGFyICp0LCAqZXNjYXBlZDsKKysgIGdjaGFyICp0LCAqdGV4dCwgKnAsICplc2NhcGVkLCAqcF9zdGFydCwgKnBfZW5kOworICAgZ2ludCBudW0sIGksIGxlbjsKKysgIEdzdENsb2NrVGltZSBzdGFydF90aW1lID0gR19NQVhVSU5UNjQsIGVuZF90aW1lID0gMDsKKyAKKy0gIG51bSA9IGF0b2kgKHR4dCk7CistICBHU1RfTE9HX09CSkVDVCAocGFyc2UsICJQYXJzaW5nIGxpbmUgIyVkIGF0ICUiIEdTVF9USU1FX0ZPUk1BVCwKKy0gICAgICBudW0sIEdTVF9USU1FX0FSR1MgKHN0YXJ0KSk7CistCistICAvKiBza2lwIGFsbCBub24tdGV4dCBmaWVsZHMgYmVmb3JlIHRoZSBhY3R1YWwgdGV4dCAqLworKyAgcCA9IHRleHQgPSBnX21hbGxvYyhzaXplICsgMSk7CisrICAqcCA9ICdcMCc7CisgICB0ID0gdHh0OworLSAgZm9yIChpID0gMDsgaSA8IDg7ICsraSkgeworLSAgICB0ID0gc3RyY2hyICh0LCAnLCcpOworKworKyAgLyogdGhlcmUgYXJlIG1heSBoYXZlIG11bHRpcGxlIGRpYWxvZ3VlIGxpbmVzIGF0IGEgdGltZSAqLworKyAgd2hpbGUgKCp0KSB7CisrICAgIC8qIGlnbm9yZSBsZWFkaW5nIHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMgKi8KKysgICAgd2hpbGUgKGlzc3BhY2UoKnQpKQorKyAgICAgIHQrKzsKKysKKysgICAgLyogaWdub3JlIEZvcm1hdDogYW5kIFN0eWxlOiBsaW5lcyAqLworKyAgICBpZiAoc3RybmNtcCh0LCAiRm9ybWF0OiIsIDcpID09IDAgfHwgc3RybmNtcCh0LCAiU3R5bGU6IiwgNikgPT0gMCkgeworKyAgICAgIHdoaWxlICgqdCAhPSAnXDAnICYmICp0ICE9ICdcbicpIHsKKysgICAgICAgIHQrKzsKKysgICAgICB9CisrICAgIH0KKysKKysgICAgaWYgKCp0ID09ICdcMCcpCisrICAgICAgYnJlYWs7CisrCisrICAgIC8qIGNvbnRpbnVlIHdpdGggbmV4dCBsaW5lICovCisrICAgIGlmICgqdCA9PSAnXG4nKSB7CisrICAgICAgdCsrOworKyAgICAgIGNvbnRpbnVlOworKyAgICB9CisrCisrICAgIGlmKHN0cm5jbXAodCwgIkRpYWxvZ3VlOiIsIDkpICE9IDApIHsKKysgICAgICAvKiBub3Qgc3RhcnRlZCB3aXRoICJEaWFsb2d1ZToiLCBpdCBtdXN0IGJlIGEgbGluZSB0cmltbWVkIGJ5IGRlbXV4ZXIgKi8KKysgICAgICBudW0gPSBhdG9pICh0KTsKKysgICAgICBHU1RfTE9HX09CSkVDVCAocGFyc2UsICJQYXJzaW5nIGxpbmUgIyVkIGF0ICUiIEdTVF9USU1FX0ZPUk1BVCwKKysgICAgICAgICAgbnVtLCBHU1RfVElNRV9BUkdTIChzdGFydCkpOworKworKyAgICAgIC8qIHNraXAgYWxsIG5vbi10ZXh0IGZpZWxkcyBiZWZvcmUgdGhlIGFjdHVhbCB0ZXh0ICovCisrICAgICAgZm9yIChpID0gMDsgaSA8IDg7ICsraSkgeworKyAgICAgICAgdCA9IHN0cmNociAodCwgJywnKTsKKysgICAgICAgIGlmICh0ID09IE5VTEwpCisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgKyt0OworKyAgICAgIH0KKysgICAgfSBlbHNlIHsKKysgICAgICAvKiBzdGFydGVkIHdpdGggIkRpYWxvZ3VlOiIsIHVwZGF0ZSB0aW1lc3RhbXAgYW5kIGR1cmF0aW9uICovCisrICAgICAgLyogdGltZSBmb3JtYXQgYXJlIGxpa2UgRGlhbG9nOk1hcmssMDowMDowMS4wMiwwOjAwOjAzLjA0LHh4LHh4eCwuLi4gKi8KKysgICAgICBndWludCBob3VyLCBtaW4sIHNlYywgbXNlYywgbGVuOworKyAgICAgIEdzdENsb2NrVGltZSB0bXA7CisrICAgICAgZ2NoYXIgdF9zdHJbMTJdID0gezB9OworKworKyAgICAgIC8qIGZpbmQgdGhlIGZpcnN0ICcsJyAqLworKyAgICAgIHBfc3RhcnQgPSBzdHJjaHIgKHQsICcsJyk7CisrICAgICAgaWYgKHBfc3RhcnQpCisrICAgICAgICBwX2VuZCA9IHN0cmNociAoKytwX3N0YXJ0LCAnLCcpOworKworKyAgICAgIGlmIChwX3N0YXJ0ICYmIHBfZW5kKSB7CisrICAgICAgICAvKiBjb3B5IHRleHQgYmV0d2VlbiBmaXJzdCAnLCcgYW5kIHNlY29uZCAnLCcgKi8KKysgICAgICAgIHN0cm5jcHkodF9zdHIsIHBfc3RhcnQsIHBfZW5kIC0gcF9zdGFydCk7CisrICAgICAgICBpZiAoc3NjYW5mICh0X3N0ciwgIiV1OiV1OiV1LiV1IiwgJmhvdXIsICZtaW4sICZzZWMsICZtc2VjKSA9PSA0KSB7CisrICAgICAgICAgIHRtcCA9ICgoaG91ciozNjAwKSArIChtaW4qNjApICsgc2VjKSAqIEdTVF9TRUNPTkQgKyBtc2VjKkdTVF9NU0VDT05EOworKyAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChwYXJzZSwgIkdldCBzdGFydCB0aW1lOiUwMmQ6JTAyZDolMDJkOiUwM2RcbiIsCisrICAgICAgICAgICAgICBob3VyLCBtaW4sIHNlYywgbXNlYyk7CisrICAgICAgICAgIGlmIChzdGFydF90aW1lID4gdG1wKQorKyAgICAgICAgICAgIHN0YXJ0X3RpbWUgPSB0bXA7CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICBHU1RfV0FSTklOR19PQkpFQ1QgKHBhcnNlLAorKyAgICAgICAgICAgICAgImZhaWxlZCB0byBwYXJzZSBzc2Egc3RhcnQgdGltZXN0YW1wIHN0cmluZyA6JXMiLCB0X3N0cik7CisrICAgICAgICB9CisrCisrICAgICAgICBwX3N0YXJ0ID0gcF9lbmQ7CisrICAgICAgICBwX2VuZCA9IHN0cmNociAoKytwX3N0YXJ0LCAnLCcpOworKyAgICAgICAgaWYgKHBfZW5kKSB7CisrICAgICAgICAgIC8qIGNvcHkgdGV4dCBiZXR3ZWVuIHNlY29uZCAnLCcgYW5kIHRoaXJkICcsJyAqLworKyAgICAgICAgICBzdHJuY3B5KHRfc3RyLCBwX3N0YXJ0LCBwX2VuZCAtIHBfc3RhcnQpOworKyAgICAgICAgICBpZiAoc3NjYW5mICh0X3N0ciwgIiV1OiV1OiV1LiV1IiwgJmhvdXIsICZtaW4sICZzZWMsICZtc2VjKSA9PSA0KSB7CisrICAgICAgICAgICAgdG1wID0gKChob3VyKjM2MDApICsgKG1pbio2MCkgKyBzZWMpKkdTVF9TRUNPTkQgKyBtc2VjKkdTVF9NU0VDT05EOworKyAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QocGFyc2UsICJHZXQgZW5kIHRpbWU6JTAyZDolMDJkOiUwMmQ6JTAzZFxuIiwKKysgICAgICAgICAgICAgICAgaG91ciwgbWluLCBzZWMsIG1zZWMpOworKyAgICAgICAgICAgIGlmIChlbmRfdGltZSA8IHRtcCkKKysgICAgICAgICAgICAgIGVuZF90aW1lID0gdG1wOworKyAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgIEdTVF9XQVJOSU5HX09CSkVDVCAocGFyc2UsCisrICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gcGFyc2Ugc3NhIGVuZCB0aW1lc3RhbXAgc3RyaW5nIDolcyIsIHRfc3RyKTsKKysgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICAgIH0KKysKKysgICAgICAvKiBub3cgc2tpcCBhbGwgbm9uLXRleHQgZmllbGRzIGJlZm9yZSB0aGUgYWN0dWFsIHRleHQgKi8KKysgICAgICBmb3IgKGkgPSAwOyBpIDw9IDg7ICsraSkgeworKyAgICAgICAgdCA9IHN0cmNociAodCwgJywnKTsKKysgICAgICAgIGlmICh0ID09IE5VTEwpCisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgKyt0OworKyAgICAgIH0KKysgICAgfQorKworKyAgICAvKiBsaW5lIGVuZCBiZWZvcmUgZXhwZWN0ZWQgbnVtYmVyIG9mICcsJywgbm90IGEgRGlhbG9ndWUgbGluZSAqLworICAgICBpZiAodCA9PSBOVUxMKQorLSAgICAgIHJldHVybiBHU1RfRkxPV19FUlJPUjsKKy0gICAgKyt0OworKyAgICAgIGJyZWFrOworKworKyAgICAvKiBpZiBub3QgdGhlIGZpcnN0IGxpbmUsIGFuZCB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgcHJldmlvdXMgbGluZSBpcyAnXDAnLAorKyAgICAgKiB0aGVuIHJlcGxhY2UgaXQgd2l0aCAnXE4nICovCisrICAgIGlmIChwICE9IHRleHQgJiYgKnAgPT0gJ1wwJykgeworKyAgICAgICpwKysgPSAnXFwnOworKyAgICAgICpwKysgPSAnTic7CisrICAgIH0KKysKKysgICAgLyogY29weSBhbGwgYWN0dWFsIHRleHQgb2YgdGhpcyBsaW5lICovCisrICAgIHdoaWxlICgoKnQgIT0gJ1wwJykgJiYgKCp0ICE9ICdcbicpKQorKyAgICAgICpwKysgPSAqdCsrOworKworKyAgICAvKiBhZGQgYSB0ZXJtaW5hdG9yIGF0IHRoZSBlbmQgKi8KKysgICAgKnAgPSAnXDAnOworKyAgfQorKworKyAgLyogbm90IHZhbGlkIHRleHQgZm91bmQgaW4gdGhpcyBidWZmZXIgcmV0dXJuIE9LIHRvIGxldCBjYWxsZXIgdW5yZWYgYnVmZmVyICovCisrICBpZiAoc3RybGVuKHRleHQpIDw9IDApIHsKKysgICAgR1NUX1dBUk5JTkdfT0JKRUNUIChwYXJzZSwgIk5vdCB2YWxpZCB0ZXh0IGZvdW5kIGluIHRoaXMgYnVmZmVyXG4iKTsKKysgICAgcmV0dXJuIEdTVF9GTE9XX0VSUk9SOworICAgfQorIAorKyAgdCA9IHRleHQ7CisgICBHU1RfTE9HX09CSkVDVCAocGFyc2UsICJUZXh0IDogJXMiLCB0KTsKKyAKKyAgIGlmIChnc3Rfc3NhX3BhcnNlX3JlbW92ZV9vdmVycmlkZV9jb2RlcyAocGFyc2UsIHQpKSB7CitAQCAtMzA3LDEzICs0MTQsMjIgQEAgZ3N0X3NzYV9wYXJzZV9wdXNoX2xpbmUgKEdzdFNzYVBhcnNlICogcGFyc2UsIGdjaGFyICogdHh0LAorICAgZ3N0X2J1ZmZlcl9maWxsIChidWYsIDAsIGVzY2FwZWQsIGxlbiArIDEpOworICAgZ3N0X2J1ZmZlcl9zZXRfc2l6ZSAoYnVmLCBsZW4pOworICAgZ19mcmVlIChlc2NhcGVkKTsKKysgIGdfZnJlZSh0KTsKKysKKysgIGlmIChzdGFydF90aW1lICE9IEdfTUFYVUlOVDY0KQorKyAgICBHU1RfQlVGRkVSX1RJTUVTVEFNUCAoYnVmKSA9IHN0YXJ0X3RpbWU7CisrICBlbHNlCisrICAgIEdTVF9CVUZGRVJfVElNRVNUQU1QIChidWYpID0gc3RhcnQ7CisgCistICBHU1RfQlVGRkVSX1RJTUVTVEFNUCAoYnVmKSA9IHN0YXJ0OworLSAgR1NUX0JVRkZFUl9EVVJBVElPTiAoYnVmKSA9IGR1cmF0aW9uOworKyAgaWYgKGVuZF90aW1lID4gc3RhcnRfdGltZSkKKysgICAgR1NUX0JVRkZFUl9EVVJBVElPTiAoYnVmKSA9IGVuZF90aW1lIC0gc3RhcnRfdGltZTsKKysgIGVsc2UKKysgICAgR1NUX0JVRkZFUl9EVVJBVElPTiAoYnVmKSA9IGR1cmF0aW9uOworIAorICAgR1NUX0xPR19PQkpFQ1QgKHBhcnNlLCAiUHVzaGluZyBidWZmZXIgd2l0aCB0aW1lc3RhbXAgJSIgR1NUX1RJTUVfRk9STUFUCistICAgICAgIiBhbmQgZHVyYXRpb24gJSIgR1NUX1RJTUVfRk9STUFULCBHU1RfVElNRV9BUkdTIChzdGFydCksCistICAgICAgR1NUX1RJTUVfQVJHUyAoZHVyYXRpb24pKTsKKysgICAgICAiIGFuZCBkdXJhdGlvbiAlIiBHU1RfVElNRV9GT1JNQVQsCisrICAgICAgR1NUX1RJTUVfQVJHUyAoR1NUX0JVRkZFUl9USU1FU1RBTVAgKGJ1ZikpLAorKyAgICAgIEdTVF9USU1FX0FSR1MgKEdTVF9CVUZGRVJfRFVSQVRJT04gKGJ1ZikpKTsKKyAKKyAgIHJldCA9IGdzdF9wYWRfcHVzaCAocGFyc2UtPnNyY3BhZCwgYnVmKTsKKyAKK0BAIC0zMzMsNiArNDQ5LDcgQEAgZ3N0X3NzYV9wYXJzZV9jaGFpbiAoR3N0UGFkICogc2lua3BhZCwgR3N0T2JqZWN0ICogcGFyZW50LCBHc3RCdWZmZXIgKiBidWYpCisgICBHc3RDbG9ja1RpbWUgdHM7CisgICBnY2hhciAqdHh0OworICAgR3N0TWFwSW5mbyBtYXA7CisrICBnaW50IHNpemU7CisgCisgICBpZiAoR19VTkxJS0VMWSAoIXBhcnNlLT5mcmFtZWQpKQorICAgICBnb3RvIG5vdF9mcmFtZWQ7CitAQCAtMzUwLDEzICs0NjcsMTQgQEAgZ3N0X3NzYV9wYXJzZV9jaGFpbiAoR3N0UGFkICogc2lua3BhZCwgR3N0T2JqZWN0ICogcGFyZW50LCBHc3RCdWZmZXIgKiBidWYpCisgICAvKiBtYWtlIGRvdWJsZS1zdXJlIGl0J3MgMC10ZXJtaW5hdGVkIGFuZCBhbGwgKi8KKyAgIGdzdF9idWZmZXJfbWFwIChidWYsICZtYXAsIEdTVF9NQVBfUkVBRCk7CisgICB0eHQgPSBnX3N0cm5kdXAgKChnY2hhciAqKSBtYXAuZGF0YSwgbWFwLnNpemUpOworKyAgc2l6ZSA9IG1hcC5zaXplOworICAgZ3N0X2J1ZmZlcl91bm1hcCAoYnVmLCAmbWFwKTsKKyAKKyAgIGlmICh0eHQgPT0gTlVMTCkKKyAgICAgZ290byBlbXB0eV90ZXh0OworIAorICAgdHMgPSBHU1RfQlVGRkVSX1RJTUVTVEFNUCAoYnVmKTsKKy0gIHJldCA9IGdzdF9zc2FfcGFyc2VfcHVzaF9saW5lIChwYXJzZSwgdHh0LCB0cywgR1NUX0JVRkZFUl9EVVJBVElPTiAoYnVmKSk7CisrICByZXQgPSBnc3Rfc3NhX3BhcnNlX3B1c2hfbGluZSAocGFyc2UsIHR4dCwgc2l6ZSwgdHMsIEdTVF9CVUZGRVJfRFVSQVRJT04gKGJ1ZikpOworIAorICAgaWYgKHJldCAhPSBHU1RfRkxPV19PSyAmJiBHU1RfQ0xPQ0tfVElNRV9JU19WQUxJRCAodHMpKSB7CisgICAgIEdzdFNlZ21lbnQgc2VnbWVudDsKKy0tIAorMS43LjkuNQorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS8wMDAzLXZpZGVvZmlsdGVyLVVzZS1uZXctR1NUX1ZJREVPX0ZSQU1FX01BUF9GTEFHX05PX1JFRi5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlLzAwMDMtdmlkZW9maWx0ZXItVXNlLW5ldy1HU1RfVklERU9fRlJBTUVfTUFQX0ZMQUdfTk9fUkVGLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzMmJmMDYKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS8wMDAzLXZpZGVvZmlsdGVyLVVzZS1uZXctR1NUX1ZJREVPX0ZSQU1FX01BUF9GTEFHX05PX1JFRi5wYXRjaApAQCAtMCwwICsxLDY5IEBACitGcm9tIDNhN2NkY2RmYzljNWIwZDIwMzk0ZmU1MWIzYjhjZGEyMzkzMWNhNmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/U2ViYXN0aWFuPTIwRHI9QzM9QjZnZT89IDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgorRGF0ZTogRnJpLCAxMiBTZXAgMjAxNCAxNDo0MTowMSArMDMwMAorU3ViamVjdDogW1BBVENIIDMvM10gdmlkZW9maWx0ZXI6IFVzZSBuZXcgR1NUX1ZJREVPX0ZSQU1FX01BUF9GTEFHX05PX1JFRgorCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0IFsxLjUuMV0KK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzYxMTgKKy0tLQorIGdzdC1saWJzL2dzdC92aWRlby9nc3R2aWRlb2ZpbHRlci5jIHwgICAyMyArKysrLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ3N0LWxpYnMvZ3N0L3ZpZGVvL2dzdHZpZGVvZmlsdGVyLmMgYi9nc3QtbGlicy9nc3QvdmlkZW8vZ3N0dmlkZW9maWx0ZXIuYworaW5kZXggZTFmYTJjMS4uODc0YjJlOCAxMDA2NDQKKy0tLSBhL2dzdC1saWJzL2dzdC92aWRlby9nc3R2aWRlb2ZpbHRlci5jCisrKysgYi9nc3QtbGlicy9nc3QvdmlkZW8vZ3N0dmlkZW9maWx0ZXIuYworQEAgLTI2MCwyMyArMjYwLDE1IEBAIGdzdF92aWRlb19maWx0ZXJfdHJhbnNmb3JtIChHc3RCYXNlVHJhbnNmb3JtICogdHJhbnMsIEdzdEJ1ZmZlciAqIGluYnVmLAorICAgaWYgKGZjbGFzcy0+dHJhbnNmb3JtX2ZyYW1lKSB7CisgICAgIEdzdFZpZGVvRnJhbWUgaW5fZnJhbWUsIG91dF9mcmFtZTsKKyAKKy0gICAgaWYgKCFnc3RfdmlkZW9fZnJhbWVfbWFwICgmaW5fZnJhbWUsICZmaWx0ZXItPmluX2luZm8sIGluYnVmLCBHU1RfTUFQX1JFQUQpKQorKyAgICBpZiAoIWdzdF92aWRlb19mcmFtZV9tYXAgKCZpbl9mcmFtZSwgJmZpbHRlci0+aW5faW5mbywgaW5idWYsCisrICAgICAgICAgICAgR1NUX01BUF9SRUFEIHwgR1NUX1ZJREVPX0ZSQU1FX01BUF9GTEFHX05PX1JFRikpCisgICAgICAgZ290byBpbnZhbGlkX2J1ZmZlcjsKKyAKKyAgICAgaWYgKCFnc3RfdmlkZW9fZnJhbWVfbWFwICgmb3V0X2ZyYW1lLCAmZmlsdGVyLT5vdXRfaW5mbywgb3V0YnVmLAorLSAgICAgICAgICAgIEdTVF9NQVBfV1JJVEUpKQorKyAgICAgICAgICAgIEdTVF9NQVBfV1JJVEUgfCBHU1RfVklERU9fRlJBTUVfTUFQX0ZMQUdfTk9fUkVGKSkKKyAgICAgICBnb3RvIGludmFsaWRfYnVmZmVyOworIAorLSAgICAvKiBHc3RWaWRlb0ZyYW1lIGhhcyBhbm90aGVyIHJlZmVyZW5jZSwgc28gdGhlIGJ1ZmZlciBsb29rcyB1bndyaXRlYWJsZSwKKy0gICAgICogbWVhbmluZyB0aGF0IHdlIGNhbid0IGF0dGFjaCBhbnkgbWV0YXMgb3IgYW55dGhpbmcgdG8gaXQuIE90aGVyCistICAgICAqIG1hcCgpIGZ1bmN0aW9ucyBsaWtlIGdzdF9idWZmZXJfbWFwKCkgZG9uJ3QgZ2V0IGFub3RoZXIgcmVmZXJlbmNlCistICAgICAqIG9mIHRoZSBidWZmZXIgYW5kIGV4cGVjdCB0aGUgYnVmZmVyIHJlZmVyZW5jZSB0byBiZSBrZXB0IHVudGlsCistICAgICAqIHRoZSBidWZmZXIgaXMgdW5tYXBwZWQgYWdhaW4uICovCistICAgIGdzdF9idWZmZXJfdW5yZWYgKGluYnVmKTsKKy0gICAgZ3N0X2J1ZmZlcl91bnJlZiAob3V0YnVmKTsKKyAgICAgcmVzID0gZmNsYXNzLT50cmFuc2Zvcm1fZnJhbWUgKGZpbHRlciwgJmluX2ZyYW1lLCAmb3V0X2ZyYW1lKTsKKy0gICAgZ3N0X2J1ZmZlcl9yZWYgKGluYnVmKTsKKy0gICAgZ3N0X2J1ZmZlcl9yZWYgKG91dGJ1Zik7CisgCisgICAgIGdzdF92aWRlb19mcmFtZV91bm1hcCAoJm91dF9mcmFtZSk7CisgICAgIGdzdF92aWRlb19mcmFtZV91bm1hcCAoJmluX2ZyYW1lKTsKK0BAIC0zMTcsNyArMzA5LDcgQEAgZ3N0X3ZpZGVvX2ZpbHRlcl90cmFuc2Zvcm1faXAgKEdzdEJhc2VUcmFuc2Zvcm0gKiB0cmFucywgR3N0QnVmZmVyICogYnVmKQorICAgICBHc3RWaWRlb0ZyYW1lIGZyYW1lOworICAgICBHc3RNYXBGbGFncyBmbGFnczsKKyAKKy0gICAgZmxhZ3MgPSBHU1RfTUFQX1JFQUQ7CisrICAgIGZsYWdzID0gR1NUX01BUF9SRUFEIHwgR1NUX1ZJREVPX0ZSQU1FX01BUF9GTEFHX05PX1JFRjsKKyAKKyAgICAgaWYgKCFnc3RfYmFzZV90cmFuc2Zvcm1faXNfcGFzc3Rocm91Z2ggKHRyYW5zKSkKKyAgICAgICBmbGFncyB8PSBHU1RfTUFQX1dSSVRFOworQEAgLTMyNSwxNCArMzE3LDcgQEAgZ3N0X3ZpZGVvX2ZpbHRlcl90cmFuc2Zvcm1faXAgKEdzdEJhc2VUcmFuc2Zvcm0gKiB0cmFucywgR3N0QnVmZmVyICogYnVmKQorICAgICBpZiAoIWdzdF92aWRlb19mcmFtZV9tYXAgKCZmcmFtZSwgJmZpbHRlci0+aW5faW5mbywgYnVmLCBmbGFncykpCisgICAgICAgZ290byBpbnZhbGlkX2J1ZmZlcjsKKyAKKy0gICAgLyogR3N0VmlkZW9GcmFtZSBoYXMgYW5vdGhlciByZWZlcmVuY2UsIHNvIHRoZSBidWZmZXIgbG9va3MgdW53cml0ZWFibGUsCistICAgICAqIG1lYW5pbmcgdGhhdCB3ZSBjYW4ndCBhdHRhY2ggYW55IG1ldGFzIG9yIGFueXRoaW5nIHRvIGl0LiBPdGhlcgorLSAgICAgKiBtYXAoKSBmdW5jdGlvbnMgbGlrZSBnc3RfYnVmZmVyX21hcCgpIGRvbid0IGdldCBhbm90aGVyIHJlZmVyZW5jZQorLSAgICAgKiBvZiB0aGUgYnVmZmVyIGFuZCBleHBlY3QgdGhlIGJ1ZmZlciByZWZlcmVuY2UgdG8gYmUga2VwdCB1bnRpbAorLSAgICAgKiB0aGUgYnVmZmVyIGlzIHVubWFwcGVkIGFnYWluLiAqLworLSAgICBnc3RfYnVmZmVyX3VucmVmIChidWYpOworICAgICByZXMgPSBmY2xhc3MtPnRyYW5zZm9ybV9mcmFtZV9pcCAoZmlsdGVyLCAmZnJhbWUpOworLSAgICBnc3RfYnVmZmVyX3JlZiAoYnVmKTsKKyAKKyAgICAgZ3N0X3ZpZGVvX2ZyYW1lX3VubWFwICgmZnJhbWUpOworICAgfSBlbHNlIHsKKy0tIAorMS43LjkuNQorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS8wMDA0LXN1YnBhcnNlLXNldC1uZWVkX3NlZ21lbnQtYWZ0ZXItc2luay1wYWQtcmVjZWl2ZWQtR1MucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS8wMDA0LXN1YnBhcnNlLXNldC1uZWVkX3NlZ21lbnQtYWZ0ZXItc2luay1wYWQtcmVjZWl2ZWQtR1MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzgxMzkxNQotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlLzAwMDQtc3VicGFyc2Utc2V0LW5lZWRfc2VnbWVudC1hZnRlci1zaW5rLXBhZC1yZWNlaXZlZC1HUy5wYXRjaApAQCAtMCwwICsxLDY5IEBACitGcm9tIGVkMDljOGZkMmM5YzJiNTM4NGI3MmNjNzBhZjM3MjhiZTY2OTRlNjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaW5na2UgV2FuZyA8bWluZ2tlLndhbmdAZnJlZXNjYWxlLmNvbT4KK0RhdGU6IFRodSwgMTkgTWFyIDIwMTUgMTQ6MjA6MjYgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSCA0LzRdIHN1YnBhcnNlOiBzZXQgbmVlZF9zZWdtZW50IGFmdGVyIHNpbmsgcGFkIHJlY2VpdmVkCisgR1NUX0VWRU5UX1NFR01FTlQKKworc3VicGFyc2Ugd29ya3MgaW4gcHVzaCBtb2RlLCBjaGFpbiBmdW5jaXRvbiB3aWxsIGJlIGNhbGxlZCBvbmNlCit1cCBzdHJlYW0gZWxlbWVudCBmaW5pc2hlZCB0aGUgc2Vla2luZyBhbmQgZmx1c2hpbmcuCitpZiBzZXQgbmVlZF9zZWdtZW50IGZsYWcgaW4gc3JjIHBhZCBldmVudCBoYW5kbGVyLCB0aGUgc2VnbWVudAorZXZlbnQgd2lsbCBiZSBwdXNoZWQgZWFybGllciwgcmVzdWx0IGluIHRoZSBzdWJ0aXRsZSB0ZXh0IHdpbGwKK2JlIHNlbmQgb3V0IHRvIGRvd24gc3RyZWFtIGZyb20gdGhlIGJlZ2lubmluZy4KKworVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgW2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc0OThdCisKK1NpZ25lZC1vZmYtYnk6IE1pbmdrZSBXYW5nIDxtaW5na2Uud2FuZ0BmcmVlc2NhbGUuY29tPgorCitkaWZmIC0tZ2l0IGEvZ3N0L3N1YnBhcnNlL2dzdHN1YnBhcnNlLmMgYi9nc3Qvc3VicGFyc2UvZ3N0c3VicGFyc2UuYworb2xkIG1vZGUgMTAwNjQ0CituZXcgbW9kZSAxMDA3NTUKK2luZGV4IGI1NjVlOTMuLjc3NDFjY2MKKy0tLSBhL2dzdC9zdWJwYXJzZS9nc3RzdWJwYXJzZS5jCisrKysgYi9nc3Qvc3VicGFyc2UvZ3N0c3VicGFyc2UuYworQEAgLTI2NiwyMiArMjY2LDIwIEBAIGdzdF9zdWJfcGFyc2Vfc3JjX2V2ZW50IChHc3RQYWQgKiBwYWQsIEdzdE9iamVjdCAqIHBhcmVudCwgR3N0RXZlbnQgKiBldmVudCkKKyAgICAgICAgIGdvdG8gYmVhY2g7CisgICAgICAgfQorIAorKyAgICAgIC8qIEFwcGx5IHRoZSBzZWVrIHRvIG91ciBzZWdtZW50ICovCisrICAgICAgZ3N0X3NlZ21lbnRfZG9fc2VlayAoJnNlbGYtPnNlZ21lbnQsIHJhdGUsIGZvcm1hdCwgZmxhZ3MsCisrICAgICAgICAgIHN0YXJ0X3R5cGUsIHN0YXJ0LCBzdG9wX3R5cGUsIHN0b3AsICZ1cGRhdGUpOworKworKyAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKHNlbGYsICJzZWdtZW50IGFmdGVyIHNlZWs6ICUiIEdTVF9TRUdNRU5UX0ZPUk1BVCwKKysgICAgICAgICAgJnNlbGYtPnNlZ21lbnQpOworKworICAgICAgIC8qIENvbnZlcnQgdGhhdCBzZWVrIHRvIGEgc2Vla2luZyBpbiBieXRlcyBhdCBwb3NpdGlvbiAwLAorICAgICAgICAgIEZJWE1FOiBjb3VsZCB1c2UgYW4gaW5kZXggKi8KKyAgICAgICByZXQgPSBnc3RfcGFkX3B1c2hfZXZlbnQgKHNlbGYtPnNpbmtwYWQsCisgICAgICAgICAgIGdzdF9ldmVudF9uZXdfc2VlayAocmF0ZSwgR1NUX0ZPUk1BVF9CWVRFUywgZmxhZ3MsCisgICAgICAgICAgICAgICBHU1RfU0VFS19UWVBFX1NFVCwgMCwgR1NUX1NFRUtfVFlQRV9OT05FLCAwKSk7CisgCistICAgICAgaWYgKHJldCkgeworLSAgICAgICAgLyogQXBwbHkgdGhlIHNlZWsgdG8gb3VyIHNlZ21lbnQgKi8KKy0gICAgICAgIGdzdF9zZWdtZW50X2RvX3NlZWsgKCZzZWxmLT5zZWdtZW50LCByYXRlLCBmb3JtYXQsIGZsYWdzLAorLSAgICAgICAgICAgIHN0YXJ0X3R5cGUsIHN0YXJ0LCBzdG9wX3R5cGUsIHN0b3AsICZ1cGRhdGUpOworLQorLSAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoc2VsZiwgInNlZ21lbnQgYWZ0ZXIgc2VlazogJSIgR1NUX1NFR01FTlRfRk9STUFULAorLSAgICAgICAgICAgICZzZWxmLT5zZWdtZW50KTsKKy0KKy0gICAgICAgIHNlbGYtPm5lZWRfc2VnbWVudCA9IFRSVUU7CistICAgICAgfSBlbHNlIHsKKysgICAgICBpZiAoIXJldCkgeworICAgICAgICAgR1NUX1dBUk5JTkdfT0JKRUNUIChzZWxmLCAic2VlayB0byAwIGJ5dGVzIGZhaWxlZCIpOworICAgICAgIH0KKyAKK0BAIC0xNjMyLDggKzE2MzAsMTAgQEAgZ3N0X3N1Yl9wYXJzZV9zaW5rX2V2ZW50IChHc3RQYWQgKiBwYWQsIEdzdE9iamVjdCAqIHBhcmVudCwgR3N0RXZlbnQgKiBldmVudCkKKyAgICAgICBnc3RfZXZlbnRfcGFyc2Vfc2VnbWVudCAoZXZlbnQsICZzKTsKKyAgICAgICBpZiAocy0+Zm9ybWF0ID09IEdTVF9GT1JNQVRfVElNRSkKKyAgICAgICAgIGdzdF9ldmVudF9jb3B5X3NlZ21lbnQgKGV2ZW50LCAmc2VsZi0+c2VnbWVudCk7CistICAgICAgR1NUX0RFQlVHX09CSkVDVCAoc2VsZiwgIm5ld3NlZ21lbnQgKCVzKSIsCistICAgICAgICAgIGdzdF9mb3JtYXRfZ2V0X25hbWUgKHNlbGYtPnNlZ21lbnQuZm9ybWF0KSk7CisrICAgICAgR1NUX0RFQlVHX09CSkVDVCAoc2VsZiwgIm5ld3NlZ21lbnQgKCVzKSAlIiBHU1RfU0VHTUVOVF9GT1JNQVQsCisrICAgICAgICAgIGdzdF9mb3JtYXRfZ2V0X25hbWUgKHNlbGYtPnNlZ21lbnQuZm9ybWF0KSwgJnNlbGYtPnNlZ21lbnQpOworKworKyAgICAgIHNlbGYtPm5lZWRfc2VnbWVudCA9IFRSVUU7CisgCisgICAgICAgLyogaWYgbm90IHRpbWUgZm9ybWF0LCB3ZSdsbCBlaXRoZXIgc3RhcnQgd2l0aCBhIDAgdGltZXN0YW1wIGFueXdheSBvcgorICAgICAgICAqIGl0J3MgZm9sbG93aW5nIGEgc2VlayBpbiB3aGljaCBjYXNlIHdlJ2xsIGhhdmUgc2F2ZWQgdGhlIHJlcXVlc3RlZAorLS0gCisxLjcuOS41CisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlL2RvLW5vdC1jaGFuZ2UtZW9zLWV2ZW50LXRvLWdhcC1ldmVudC1pZi5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlL2RvLW5vdC1jaGFuZ2UtZW9zLWV2ZW50LXRvLWdhcC1ldmVudC1pZi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTU1ZGUxCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvZG8tbm90LWNoYW5nZS1lb3MtZXZlbnQtdG8tZ2FwLWV2ZW50LWlmLnBhdGNoCkBAIC0wLDAgKzEsMzcgQEAKK0Zyb20gYjYwOGQwMjdmZmY2ZWZjMmQxOTg4ZWJmMTY5Y2JlM2IyYjQ0YTYxYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IHpob3VtaW5nIDxiNDI1ODZAZnJlZXNjYWxlLmNvbT4KK0RhdGU6IFRodSwgOCBNYXkgMjAxNCAxMjowMToxNyArMDgwMAorU3ViamVjdDogW1BBVENIXSBFTkdSMDAzMTIwMzQ6IGRvIG5vdCBjaGFuZ2UgZW9zIGV2ZW50IHRvIGdhcCBldmVudCBpZiBubworIGRhdGEgaGFzIHBhc3NlZCB0byBzdHJlYW1zeW5jaHJvbml6ZXIuCisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjcwNzQKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IHpob3VtaW5nIDxiNDI1ODZAZnJlZXNjYWxlLmNvbT4KKy0tLQorIGdzdC9wbGF5YmFjay9nc3RzdHJlYW1zeW5jaHJvbml6ZXIuYyB8ICAgIDUgKystLS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ3N0L3BsYXliYWNrL2dzdHN0cmVhbXN5bmNocm9uaXplci5jIGIvZ3N0L3BsYXliYWNrL2dzdHN0cmVhbXN5bmNocm9uaXplci5jCitpbmRleCAzOTk3ZDFiLi4zZTE3YzU1IDEwMDY0NAorLS0tIGEvZ3N0L3BsYXliYWNrL2dzdHN0cmVhbXN5bmNocm9uaXplci5jCisrKysgYi9nc3QvcGxheWJhY2svZ3N0c3RyZWFtc3luY2hyb25pemVyLmMKK0BAIC00ODgsMTIgKzQ4OCwxMSBAQCBnc3Rfc3RyZWFtX3N5bmNocm9uaXplcl9zaW5rX2V2ZW50IChHc3RQYWQgKiBwYWQsIEdzdE9iamVjdCAqIHBhcmVudCwKKyAgICAgICAgIH0KKyAgICAgICAgIGdfc2xpc3RfZnJlZSAocGFkcyk7CisgICAgICAgfSBlbHNlIHsKKy0gICAgICAgIC8qIGlmIEVPUywgYnV0IG5vIGRhdGEgaGFzIHBhc3NlZCwgdGhlbiBzZW5kIHNvbWV0aGluZyB0byByZXBsYWNlIEVPUworLSAgICAgICAgICogZm9yIHByZXJvbGwgcHVycG9zZXMgKi8KKysgICAgICAgIC8qIGlmIEVPUywgYnV0IG5vIGRhdGEgaGFzIHBhc3NlZCwgdGhlbiBzZW5kIEVPUyBldmVudCAqLworICAgICAgICAgaWYgKCFzZWVuX2RhdGEpIHsKKyAgICAgICAgICAgR3N0RXZlbnQgKmdhcF9ldmVudDsKKyAKKy0gICAgICAgICAgZ2FwX2V2ZW50ID0gZ3N0X2V2ZW50X25ld19nYXAgKHRpbWVzdGFtcCwgR1NUX0NMT0NLX1RJTUVfTk9ORSk7CisrICAgICAgICAgIGdhcF9ldmVudCA9IGdzdF9ldmVudF9uZXdfZW9zICgpOworICAgICAgICAgICByZXQgPSBnc3RfcGFkX3B1c2hfZXZlbnQgKHNyY3BhZCwgZ2FwX2V2ZW50KTsKKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgIEdzdEV2ZW50ICpnYXBfZXZlbnQ7CistLSAKKzEuNy45LjUKKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvZG8tbm90LWNoYW5nZS1lb3MtZXZlbnQtdG8tZ2FwLWV2ZW50Mi5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlL2RvLW5vdC1jaGFuZ2UtZW9zLWV2ZW50LXRvLWdhcC1ldmVudDIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjI0YmM3YwotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlL2RvLW5vdC1jaGFuZ2UtZW9zLWV2ZW50LXRvLWdhcC1ldmVudDIucGF0Y2gKQEAgLTAsMCArMSw0OSBAQAorY29tbWl0IGY5NTM2NTQ0ZjVhZDE4MmI0Zjc4ZDAxNDNkMWRhYTQ1ZGQ2NGU2MjQKK0F1dGhvcjogU29uZyBCaW5nIDxiMDY0OThAZnJlZXNjYWxlLmNvbT4KK0RhdGU6ICAgVGh1IE9jdCA5IDE3OjM3OjQzIDIwMTQgKzA4MDAKKworW2dzdHN0cmVhbXN5bmNocm9uaXplcl0gc2VuZCBFT1MgZXZlbnQgaW5zdGVyZCBvZiBHQVAgZXZlbnQgYXMgR0FQCitldmVudCBoYXMgaXNzdWUgd2hlbiBBL1YgaGF2ZSBkaWZmZXJlbnQgZHVyYXRpb24uCisgICAgCitzZW5kIEVPUyBldmVudCBpbnN0ZXJkIG9mIEdBUCBldmVudCBhcyBHQVAgZXZlbnQgaGFzIGlzc3VlIHdoZW4gQS9WIGhhdmUgZGlmZmVyZW50IGR1cmF0aW9uLgorCitVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBbaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjY1NV0KKworU2lnbmVkLW9mZi1ieTogU29uZyBCaW5nIDxiMDY0OThAZnJlZXNjYWxlLmNvbT4KKworZGlmZiAtLWdpdCBhL2dzdC9wbGF5YmFjay9nc3RzdHJlYW1zeW5jaHJvbml6ZXIuYyBiL2dzdC9wbGF5YmFjay9nc3RzdHJlYW1zeW5jaHJvbml6ZXIuYworaW5kZXggM2UxN2M1NS4uZmY0MmQ3MiAxMDA2NDQKKy0tLSBhL2dzdC9wbGF5YmFjay9nc3RzdHJlYW1zeW5jaHJvbml6ZXIuYworKysrIGIvZ3N0L3BsYXliYWNrL2dzdHN0cmVhbXN5bmNocm9uaXplci5jCitAQCAtNDg4LDE5ICs0ODgsMjQgQEAgZ3N0X3N0cmVhbV9zeW5jaHJvbml6ZXJfc2lua19ldmVudCAoR3N0UGFkICogcGFkLCBHc3RPYmplY3QgKiBwYXJlbnQsCisgICAgICAgICB9CisgICAgICAgICBnX3NsaXN0X2ZyZWUgKHBhZHMpOworICAgICAgIH0gZWxzZSB7CistICAgICAgICAvKiBpZiBFT1MsIGJ1dCBubyBkYXRhIGhhcyBwYXNzZWQsIHRoZW4gc2VuZCBFT1MgZXZlbnQgKi8KKysgICAgICAgIC8qIGlmIEVPUywgYnV0IG5vIGRhdGEgaGFzIHBhc3NlZCwgdGhlbiBzZW5kIHNvbWV0aGluZyB0byByZXBsYWNlIEVPUworKyAgICAgICAgICogZm9yIHByZXJvbGwgcHVycG9zZXMgKi8KKyAgICAgICAgIGlmICghc2Vlbl9kYXRhKSB7CistICAgICAgICAgIEdzdEV2ZW50ICpnYXBfZXZlbnQ7CisrICAgICAgICAgIEdzdEV2ZW50ICplb3NfZXZlbnQ7CisgCistICAgICAgICAgIGdhcF9ldmVudCA9IGdzdF9ldmVudF9uZXdfZW9zICgpOworLSAgICAgICAgICByZXQgPSBnc3RfcGFkX3B1c2hfZXZlbnQgKHNyY3BhZCwgZ2FwX2V2ZW50KTsKKysgICAgICAgICAgLyogRklYTUU6IGNoYW5nZSB0byBFT1MgZXZlbnQgYXMgR0FQIGV2ZW50IGhhcyBpc3N1ZSB3aGVuIEEvViBoYXZlCisrICAgICAgICAgICAqIGRpZmZlcmVudCBkdXJhdGlvbiAqLworKyAgICAgICAgICBlb3NfZXZlbnQgPSBnc3RfZXZlbnRfbmV3X2VvcyAoKTsKKysgICAgICAgICAgcmV0ID0gZ3N0X3BhZF9wdXNoX2V2ZW50IChzcmNwYWQsIGVvc19ldmVudCk7CisgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICBHc3RFdmVudCAqZ2FwX2V2ZW50OworKyAgICAgICAgICBHc3RFdmVudCAqZW9zX2V2ZW50OworIAorICAgICAgICAgICAvKiBGSVhNRTogQWxzbyBzZW5kIGEgR0FQIGV2ZW50IHRvIGxldCBhdWRpbyBzaW5rcyBzdGFydCB0aGVpcgorICAgICAgICAgICAgKiBjbG9jayBpbiBjYXNlIHRoZXkgZGlkIG5vdCBoYXZlIGVub3VnaCBkYXRhIHlldCAqLworLSAgICAgICAgICBnYXBfZXZlbnQgPSBnc3RfZXZlbnRfbmV3X2dhcCAodGltZXN0YW1wLCBHU1RfQ0xPQ0tfVElNRV9OT05FKTsKKy0gICAgICAgICAgcmV0ID0gZ3N0X3BhZF9wdXNoX2V2ZW50IChzcmNwYWQsIGdhcF9ldmVudCk7CisrICAgICAgICAgIC8qIEZJWE1FOiBjaGFuZ2UgdG8gRU9TIGV2ZW50IGFzIEdBUCBldmVudCBoYXMgaXNzdWUgd2hlbiBBL1YgaGF2ZQorKyAgICAgICAgICAgKiBkaWZmZXJlbnQgZHVyYXRpb24gKi8KKysgICAgICAgICAgZW9zX2V2ZW50ID0gZ3N0X2V2ZW50X25ld19lb3MgKCk7CisrICAgICAgICAgIHJldCA9IGdzdF9wYWRfcHVzaF9ldmVudCAoc3JjcGFkLCBlb3NfZXZlbnQpOworICAgICAgICAgfQorICAgICAgIH0KKyAgICAgICBnc3Rfb2JqZWN0X3VucmVmIChzcmNwYWQpOwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvZG8tbm90LWNoYW5nZS1lb3MtZXZlbnQtdG8tZ2FwLWV2ZW50My5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlL2RvLW5vdC1jaGFuZ2UtZW9zLWV2ZW50LXRvLWdhcC1ldmVudDMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzMxYmU2OAotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlL2RvLW5vdC1jaGFuZ2UtZW9zLWV2ZW50LXRvLWdhcC1ldmVudDMucGF0Y2gKQEAgLTAsMCArMSwzMSBAQAorY29tbWl0IDNmNzA1MmFhYzVlMDExOGE5YTllMDlmZmYyZjY1MDkxYmU0NDg5NzIKK0F1dGhvcjogU29uZyBCaW5nIDxiMDY0OThAZnJlZXNjYWxlLmNvbT4KK0RhdGU6ICAgVGh1IE9jdCAyMyAxMzozNToxMyAyMDE0ICswODAwCisKK1tzdHJlYW1zeW5jaHJvbml6ZXJdIE9uZSBzdHJlYW0gY2FuIGZpbmlzaCBwbGF5YmFjay4KKyAgCitBcyBjaGFuZ2VkIEdBUCBldmVudCBFT1MgZXZlbnQsIHNvIEVPUyB3aWxsIHNlbmQgbW9yZSB0aW1lcywgd2hpY2ggd2lsbAorY2F1c2Ugc2VuZCBmdW5jdGlvbiByZXR1cm4gZXJyb3IuCitTdHJlYW1zeW5jaHJvbml6ZXIgd2lsbCBkb27igJl0IHNlbmQgc2Vjb25kIHRyYWNrIEVPUyBldmVudCBpZiBzZW5kIHRoZQorZmlyc3QgdHJhY2sgRU9TIHJldHVybiBmYWlsLiBGaXhlZCBieSBpZ25vcmUgdGhlIHJldHVybiBlcnJvci4KKworVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgW2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY2NTVdCisKK1NpZ25lZC1vZmYtYnk6IFNvbmcgQmluZyBiMDY0OThAZnJlZXNjYWxlLmNvbQorCitkaWZmIC0tZ2l0IGEvZ3N0L3BsYXliYWNrL2dzdHN0cmVhbXN5bmNocm9uaXplci5jIGIvZ3N0L3BsYXliYWNrL2dzdHN0cmVhbXN5bmNocm9uaXplci5jCitpbmRleCBmZjQyZDcyLi5kMTczMmMzIDEwMDY0NAorLS0tIGEvZ3N0L3BsYXliYWNrL2dzdHN0cmVhbXN5bmNocm9uaXplci5jCisrKysgYi9nc3QvcGxheWJhY2svZ3N0c3RyZWFtc3luY2hyb25pemVyLmMKK0BAIC00ODIsNyArNDgyLDEwIEBAIGdzdF9zdHJlYW1fc3luY2hyb25pemVyX3NpbmtfZXZlbnQgKEdzdFBhZCAqIHBhZCwgR3N0T2JqZWN0ICogcGFyZW50LAorICAgICAgICAgd2hpbGUgKGVwYWQpIHsKKyAgICAgICAgICAgcGFkID0gZXBhZC0+ZGF0YTsKKyAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAocGFkLCAiUHVzaGluZyBFT1MiKTsKKy0gICAgICAgICAgcmV0ID0gcmV0ICYmIGdzdF9wYWRfcHVzaF9ldmVudCAocGFkLCBnc3RfZXZlbnRfbmV3X2VvcyAoKSk7CisrICAgICAgICAgIC8qIEZJWE1FOiByZW1vdmUgZXJyb3IgY2hlY2sgYXMgR0FQIGNoYW5nZWQgdG8gRU9TIHdpbGwgc2VuZCBFT1MKKysgICAgICAgICAgICogbW9yZSB0aW1lcywgd2hpY2ggd2lsbCBjYXVzZSByZXR1cm4gZXJyb3IgYW5kIHRoZW4gZG9uJ3Qgc2VuZAorKyAgICAgICAgICAgKiBFT1MgZXZlbnQgdG8gZm9sbG93aW5nIHRyYWNrcy4gKi8KKysgICAgICAgICAgZ3N0X3BhZF9wdXNoX2V2ZW50IChwYWQsIGdzdF9ldmVudF9uZXdfZW9zICgpKTsKKyAgICAgICAgICAgZ3N0X29iamVjdF91bnJlZiAocGFkKTsKKyAgICAgICAgICAgZXBhZCA9IGdfc2xpc3RfbmV4dCAoZXBhZCk7CisgICAgICAgICB9CmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS9lbmNvZGViaW4tTmVlZC1tb3JlLWJ1ZmZlcnMtaW4tb3V0cHV0LXF1ZXVlLWZvci1iZXR0LnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvZW5jb2RlYmluLU5lZWQtbW9yZS1idWZmZXJzLWluLW91dHB1dC1xdWV1ZS1mb3ItYmV0dC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjU2NzE3Ci0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvZW5jb2RlYmluLU5lZWQtbW9yZS1idWZmZXJzLWluLW91dHB1dC1xdWV1ZS1mb3ItYmV0dC5wYXRjaApAQCAtMCwwICsxLDMyIEBACitGcm9tIDU0MGUwMmM5MmM3NWUwOGI5MDMyNjg2M2RjNzg3ZmE1Y2FkZjlkYTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTb25nIEJpbmcgPGIwNjQ5OEBmcmVlc2NhbGUuY29tPgorRGF0ZTogRnJpLCAxMyBNYXIgMjAxNSAxODowNDozMSArMDgwMAorU3ViamVjdDogW1BBVENIXSBlbmNvZGViaW46IE5lZWQgbW9yZSBidWZmZXJzIGluIG91dHB1dCBxdWV1ZSBmb3IgYmV0dGVyCisgcGVyZm9ybWFuY2UKKworTmVlZCBtb3JlIGJ1ZmZlcnMgaW4gb3V0cHV0IHF1ZXVlIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UKKworVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgW2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQxOTFdCisKK1NpZ25lZC1vZmYtYnk6IFNvbmcgQmluZyA8YjA2NDk4QGZyZWVzY2FsZS5jb20+CistLS0KKyBnc3QvZW5jb2RpbmcvZ3N0ZW5jb2RlYmluLmMgfCAgICAzICstLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dzdC9lbmNvZGluZy9nc3RlbmNvZGViaW4uYyBiL2dzdC9lbmNvZGluZy9nc3RlbmNvZGViaW4uYworaW5kZXggNjcyOGU1OC4uMzJkYWFlNCAxMDA2NDQKKy0tLSBhL2dzdC9lbmNvZGluZy9nc3RlbmNvZGViaW4uYworKysrIGIvZ3N0L2VuY29kaW5nL2dzdGVuY29kZWJpbi5jCitAQCAtMTEzOCw4ICsxMTM4LDcgQEAgX2NyZWF0ZV9zdHJlYW1fZ3JvdXAgKEdzdEVuY29kZUJpbiAqIGViaW4sIEdzdEVuY29kaW5nUHJvZmlsZSAqIHNwcm9mLAorICAgICogV2Ugb25seSB1c2UgYSAxYnVmZmVyIGxvbmcgcXVldWUgaGVyZSwgdGhlIGFjdHVhbCBxdWV1ZWluZyB3aWxsIGJlIGRvbmUKKyAgICAqIGluIHRoZSBpbnB1dCBxdWV1ZSAqLworICAgbGFzdCA9IHNncm91cC0+b3V0cXVldWUgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UgKCJxdWV1ZSIsIE5VTEwpOworLSAgZ19vYmplY3Rfc2V0IChzZ3JvdXAtPm91dHF1ZXVlLCAibWF4LXNpemUtYnVmZmVycyIsIChndWludDMyKSAxLAorLSAgICAgICJtYXgtc2l6ZS1ieXRlcyIsIChndWludDMyKSAwLCAibWF4LXNpemUtdGltZSIsIChndWludDY0KSAwLAorKyAgZ19vYmplY3Rfc2V0IChzZ3JvdXAtPm91dHF1ZXVlLCAibWF4LXNpemUtdGltZSIsIChndWludDY0KSAwLAorICAgICAgICJzaWxlbnQiLCBUUlVFLCBOVUxMKTsKKyAKKyAgIGdzdF9iaW5fYWRkIChHU1RfQklOIChlYmluKSwgc2dyb3VwLT5vdXRxdWV1ZSk7CistLSAKKzEuNy45LjUKKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvZml4LWlkM2RlbXV4LXV0ZjE2LXRvLXV0ZjgtaXNzdWUucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS9maXgtaWQzZGVtdXgtdXRmMTYtdG8tdXRmOC1pc3N1ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZjNmNzVmCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvZml4LWlkM2RlbXV4LXV0ZjE2LXRvLXV0ZjgtaXNzdWUucGF0Y2gKQEAgLTAsMCArMSw1NCBAQAorQXV0aG9yOiBMeW9uIFdhbmcgPGIxMjY5NkBmcmVlc2NhbGUuY29tPgorRGF0ZTogICBUaHUgT2N0IDkgMTc6Mzc6NDMgMjAxNCArMDgwMAorCitbaWQzdjJmcmFtZXNdIEJ1ZyBmaXggZm9yIGlkM2RlbXV4IGlzc3VlCisKK0ZpeCB0aGUgaXNzdWUgdGhhdCBpZDMgdGFncyB1dGYxNiBjaGFyYXRlcnMgY2Fubm90IGJlIGV4dHJlYWN0ZWQgaW4gaWQzZGVtdXgKK3doZW4gSSB0cmllZCB0byBnZXQgdGhlIGlkM3YyIHRhZyBzdWNoIGFzIFRJVDIsIFRBTEIgZXRjLiBpdCB3aWxsIHJldHVybiBleHRyYWMKK2ZhaWxlZC4KKworQ2hlY2tlZCBpbiBpZDN2MmZyYW1lLmMsICBXaGVuIHBhcnNlIHRoZSBVVEYtMTYgc3RyZWFtcywgaXQgdXNlZCBnX2NvbnZlcnQoKSB0bworY29udmVydCB0aGUgYnVmZmVyIGZyb20gVVRGLTE2IHRvIFVURi04LCBob3dldmVyIGl0IHdpbGwgcmV0dXJuIGVyciB0aGF0IHRoaXMKK2NvbnZlcnNpb24gaXMgbm90IHN1cHBvcnRlZCB3aGljaCBjYXVzZSB0aGUgZXh0cmFjdGlvbiBmYWlsZWQgd2l0aCB0aGVzZSBVVEYtMTYKK2NoYXJhY3RlcnMuCisKK0luIHRoZSBwYXRjaCwgdXNlIGdfdXRmMTZfdG9fdXRmOCgpIGluc3RlYWQgb2YgZ19jb252ZXJ0LCB3aGljaCBjYW4gY29udmVydCB0aGUKK2NoYXJhY3RlciBmb3JtYXQgc3VjY2Vzc2Z1bGx5LgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxMTQ0CisKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQgWzEuNS4xXQorCitTaWduZWQtb2ZmLWJ5OiBMeW9uIFdhbmcgPGIxMjY5NkBmcmVlc2NhbGUuY29tPgorCitkaWZmIC0tZ2l0IGEvZ3N0LWxpYnMvZ3N0L3RhZy9pZDN2MmZyYW1lcy5jIGIvZ3N0LWxpYnMvZ3N0L3RhZy9pZDN2MmZyYW1lcy5jCitvbGQgbW9kZSAxMDA2NDQKK25ldyBtb2RlIDEwMDc1NQoraW5kZXggMzc4NWMyYS4uN2I5ZDhhYworLS0tIGEvZ3N0LWxpYnMvZ3N0L3RhZy9pZDN2MmZyYW1lcy5jCisrKysgYi9nc3QtbGlicy9nc3QvdGFnL2lkM3YyZnJhbWVzLmMKK0BAIC0xMDU3LDE0ICsxMDU3LDE3IEBAIHBhcnNlX2luc2VydF9zdHJpbmdfZmllbGQgKGd1aW50OCBlbmNvZGluZywgZ2NoYXIgKiBkYXRhLCBnaW50IGRhdGFfc2l6ZSwKKyAgICAgICAgIGRhdGFfc2l6ZSAtPSAyOworICAgICAgIH0KKyAKKy0gICAgICBmaWVsZCA9IGdfY29udmVydCAoZGF0YSwgZGF0YV9zaXplLCAiVVRGLTgiLCBpbl9lbmNvZGUsIE5VTEwsIE5VTEwsIE5VTEwpOworLQorLSAgICAgIGlmIChmaWVsZCA9PSBOVUxMIHx8IGdfdXRmOF92YWxpZGF0ZSAoZmllbGQsIC0xLCBOVUxMKSA9PSBGQUxTRSkgeworLSAgICAgICAgLyogQXMgYSBmYWxsYmFjaywgdHJ5IGludGVycHJldGluZyBVVEYtMTYgaW4gdGhlIG90aGVyIGVuZGlhbm5lc3MgKi8KKy0gICAgICAgIGlmIChpbl9lbmNvZGUgPT0gdXRmMTZiZWVuYykKKy0gICAgICAgICAgZmllbGQgPSBnX2NvbnZlcnQgKGRhdGEsIGRhdGFfc2l6ZSwgIlVURi04IiwgdXRmMTZsZWVuYywKKy0gICAgICAgICAgICAgIE5VTEwsIE5VTEwsIE5VTEwpOworKyAgICAgIGlmIChpbl9lbmNvZGUgPT0gdXRmMTZiZWVuYykgeworKyAgICAgICAgICAgZ3VuaWNoYXIyICpkYXRhX3V0ZjE2OworKyAgICAgICAgICAgZ3VpbnQgaTsKKysgICAgICAgICAgIGRhdGFfdXRmMTYgPSAgKGd1bmljaGFyMiAqKSBkYXRhOworKyAgICAgICAgICBmb3IgKGk9MDsgaTwoZGF0YV9zaXplPj4xKTsgaSsrKSB7CisrICAgICAgICAgICAgZGF0YV91dGYxNltpXSA9IEdVSU5UMTZfVE9fTEUgKGRhdGFfdXRmMTZbaV0pOworKyAgICAgICAgICB9CisgICAgICAgfQorKyAgICAgIC8vZmllbGQgPSBnX2NvbnZlcnQgKGRhdGEsIGRhdGFfc2l6ZSwgIlVURi04IiwgaW5fZW5jb2RlLCBOVUxMLCBOVUxMLCBOVUxMKTsKKysgICAgICAgZmllbGQgPSBnX3V0ZjE2X3RvX3V0ZjgoKGd1bmljaGFyMiAqKWRhdGEsIChnbG9uZykoZGF0YV9zaXplPj4xKSwgTlVMTCwgTlVMTCwgTlVMTCk7CisrCisgICAgIH0KKyAKKyAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlL2dldC1jYXBzLWZyb20tc3JjLXBhZC13aGVuLXF1ZXJ5LWNhcHMucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS9nZXQtY2Fwcy1mcm9tLXNyYy1wYWQtd2hlbi1xdWVyeS1jYXBzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4NGFiYmUKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS9nZXQtY2Fwcy1mcm9tLXNyYy1wYWQtd2hlbi1xdWVyeS1jYXBzLnBhdGNoCkBAIC0wLDAgKzEsNDQgQEAKK0Zyb20gYWYwZGFjMjZmNjJhYWNlYjRiZjI2NjcyMDkxMTk1Mzc5M2UwZmM1ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IHpob3VtaW5nIDxiNDI1ODZAZnJlZXNjYWxlLmNvbT4KK0RhdGU6IFdlZCwgMTQgTWF5IDIwMTQgMTA6MTY6MjAgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gRU5HUjAwMzEyNTE1OiBnZXQgY2FwcyBmcm9tIHNyYyBwYWQgd2hlbiBxdWVyeSBjYXBzCisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgzMTIKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IHpob3VtaW5nIDxiNDI1ODZAZnJlZXNjYWxlLmNvbT4KKy0tLQorIGdzdC1saWJzL2dzdC90YWcvZ3N0dGFnZGVtdXguYyB8ICAgMTMgKysrKysrKysrKysrKworIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspCisgbW9kZSBjaGFuZ2UgMTAwNjQ0ID0+IDEwMDc1NSBnc3QtbGlicy9nc3QvdGFnL2dzdHRhZ2RlbXV4LmMKKworZGlmZiAtLWdpdCBhL2dzdC1saWJzL2dzdC90YWcvZ3N0dGFnZGVtdXguYyBiL2dzdC1saWJzL2dzdC90YWcvZ3N0dGFnZGVtdXguYworb2xkIG1vZGUgMTAwNjQ0CituZXcgbW9kZSAxMDA3NTUKK2luZGV4IDliNmM0NzguLmFlMjI5NGEKKy0tLSBhL2dzdC1saWJzL2dzdC90YWcvZ3N0dGFnZGVtdXguYworKysrIGIvZ3N0LWxpYnMvZ3N0L3RhZy9nc3R0YWdkZW11eC5jCitAQCAtMTcwOCw2ICsxNzA4LDE5IEBAIGdzdF90YWdfZGVtdXhfcGFkX3F1ZXJ5IChHc3RQYWQgKiBwYWQsIEdzdE9iamVjdCAqIHBhcmVudCwgR3N0UXVlcnkgKiBxdWVyeSkKKyAgICAgICB9CisgICAgICAgYnJlYWs7CisgICAgIH0KKysgICAgY2FzZSBHU1RfUVVFUllfQ0FQUzoKKysgICAgeworKworKyAgICAgIC8qIFdlIGNhbiBoaWphY2sgY2FwcyBxdWVyeSBpZiB3ZSB0eXBlZmluZCBhbHJlYWR5ICovCisrICAgICAgaWYgKGRlbXV4LT5wcml2LT5zcmNfY2FwcykgeworKyAgICAgICAgZ3N0X3F1ZXJ5X3NldF9jYXBzX3Jlc3VsdCAocXVlcnksIGRlbXV4LT5wcml2LT5zcmNfY2Fwcyk7CisrICAgICAgICByZXMgPSBUUlVFOworKyAgICAgIH0gZWxzZSB7CisrICAgICAgICByZXMgPSBnc3RfcGFkX3F1ZXJ5X2RlZmF1bHQgKHBhZCwgcGFyZW50LCBxdWVyeSk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAgICB9CisrCisgICAgIGRlZmF1bHQ6CisgICAgICAgcmVzID0gZ3N0X3BhZF9xdWVyeV9kZWZhdWx0IChwYWQsIHBhcmVudCwgcXVlcnkpOworICAgICAgIGJyZWFrOworLS0gCisxLjcuOS41CisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlL2hhbmRsZS1hdWRpby12aWRlby1kZWNvZGVyLWVycm9yLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvaGFuZGxlLWF1ZGlvLXZpZGVvLWRlY29kZXItZXJyb3IucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODMzY2U3MgotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlL2hhbmRsZS1hdWRpby12aWRlby1kZWNvZGVyLWVycm9yLnBhdGNoCkBAIC0wLDAgKzEsNjQgQEAKK0Zyb20gYmNiMmI4YjZmNDllN2M2NjEyNGE0ZjVlMDdkZWE4MjlkNWViZmU1OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEx5b24gV2FuZyA8bHlvbi53YW5nQGZyZWVzY2FsZS5jb20+CitEYXRlOiBNb24sIDE1IERlYyAyMDE0IDE2OjUyOjA3ICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIGhhbmRsZSBhdWRpby92aWRlbyBkZWNvZGVyIGVycm9yCisKK1doZW4gdGhlcmUgaXMgaW5wdXQgZGF0YSBhbmQgbm8gb3V0cHV0IGRhdGEgdG8gdGhlIGVuZCBvZiB0aGUgc3RyZWFtLCBpdCB3aWxsCitzZW5kIEdTVF9FTEVNRU5UX0VSUk9SLCBTbyB0aGUgY2xpcHMgcGxheWluZyB3aWxsIHF1aXQuCitIb3dldmVyLCBpZiBvbmx5IG9uZSBvZiB0aGUgdHJhY2tzIGlzIGNvcnJ1cHQsIHRoZXJlIGlzIG5vIG5lZWQgdG8gcXVpdCBvdGhlcgordHJhY2tzIHBsYXlpbmcuCisKK1RoZSBwYXRjaCBjb21tZW50cyB0aGUgR1NUX0VMRU1FTlRfRVJST1IoKSBhbmQganVzdCBhZGQgR1NUX0VSUk9SX09CSkVDVCgpCitpbmZvcm1hdGlvbiBpbnN0ZWFkLgorCitVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBbaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTU0Ml0KKworU2lnbmVkLW9mZi1ieTogTHlvbiBXYW5nIDxseW9uLndhbmdAZnJlZXNjYWxlLmNvbT4KKy0tLQorIGdzdC1saWJzL2dzdC9hdWRpby9nc3RhdWRpb2RlY29kZXIuYyB8ICAgIDUgKysrLS0KKyBnc3QtbGlicy9nc3QvdmlkZW8vZ3N0dmlkZW9kZWNvZGVyLmMgfCAgICA1ICsrKy0tCisgMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisgbW9kZSBjaGFuZ2UgMTAwNjQ0ID0+IDEwMDc1NSBnc3QtbGlicy9nc3QvYXVkaW8vZ3N0YXVkaW9kZWNvZGVyLmMKKyBtb2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IGdzdC1saWJzL2dzdC92aWRlby9nc3R2aWRlb2RlY29kZXIuYworCitkaWZmIC0tZ2l0IGEvZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGF1ZGlvZGVjb2Rlci5jIGIvZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGF1ZGlvZGVjb2Rlci5jCitvbGQgbW9kZSAxMDA2NDQKK25ldyBtb2RlIDEwMDc1NQoraW5kZXggYzJlN2EyOC4uODkxZGYwYQorLS0tIGEvZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGF1ZGlvZGVjb2Rlci5jCisrKysgYi9nc3QtbGlicy9nc3QvYXVkaW8vZ3N0YXVkaW9kZWNvZGVyLmMKK0BAIC0yMTIzLDkgKzIxMjMsMTAgQEAgZ3N0X2F1ZGlvX2RlY29kZXJfc2lua19ldmVudGZ1bmMgKEdzdEF1ZGlvRGVjb2RlciAqIGRlYywgR3N0RXZlbnQgKiBldmVudCkKKyAgICAgICBHU1RfQVVESU9fREVDT0RFUl9TVFJFQU1fVU5MT0NLIChkZWMpOworIAorICAgICAgIGlmIChkZWMtPnByaXYtPmN0eC5oYWRfaW5wdXRfZGF0YSAmJiAhZGVjLT5wcml2LT5jdHguaGFkX291dHB1dF9kYXRhKSB7CistICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUiAoZGVjLCBTVFJFQU0sIERFQ09ERSwKKysgICAgICAgIC8qIEdTVF9FTEVNRU5UX0VSUk9SIChkZWMsIFNUUkVBTSwgREVDT0RFLAorICAgICAgICAgICAgICgiTm8gdmFsaWQgZnJhbWVzIGRlY29kZWQgYmVmb3JlIGVuZCBvZiBzdHJlYW0iKSwKKy0gICAgICAgICAgICAoIm5vIHZhbGlkIGZyYW1lcyBmb3VuZCIpKTsKKysgICAgICAgICAgICAoIm5vIHZhbGlkIGZyYW1lcyBmb3VuZCIpKTsgKi8KKysgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1QoZGVjLCAiTm8gdmFsaWQgZnJhbWVzIGRlY29kZWQgYmVmb3JlIGVuZCBvZiBzdHJlYW0iKTsKKyAgICAgICB9CisgCisgICAgICAgLyogc2VuZCB0YWdsaXN0IGlmIG5vIHZhbGlkIGZyYW1lIGlzIGRlY29kZWQgdXRpbCBFT1MgKi8KK2RpZmYgLS1naXQgYS9nc3QtbGlicy9nc3QvdmlkZW8vZ3N0dmlkZW9kZWNvZGVyLmMgYi9nc3QtbGlicy9nc3QvdmlkZW8vZ3N0dmlkZW9kZWNvZGVyLmMKK29sZCBtb2RlIDEwMDY0NAorbmV3IG1vZGUgMTAwNzU1CitpbmRleCBhYzU4MWUxLi40Mjc4YmNkCistLS0gYS9nc3QtbGlicy9nc3QvdmlkZW8vZ3N0dmlkZW9kZWNvZGVyLmMKKysrKyBiL2dzdC1saWJzL2dzdC92aWRlby9nc3R2aWRlb2RlY29kZXIuYworQEAgLTEwNjgsOSArMTA2OCwxMCBAQCBnc3RfdmlkZW9fZGVjb2Rlcl9zaW5rX2V2ZW50X2RlZmF1bHQgKEdzdFZpZGVvRGVjb2RlciAqIGRlY29kZXIsCisgCisgICAgICAgLyogRXJyb3Igb3V0IGV2ZW4gaWYgRU9TIHdhcyBvayB3aGVuIHdlIGhhZCBpbnB1dCwgYnV0IG5vIG91dHB1dCAqLworICAgICAgIGlmIChyZXQgJiYgcHJpdi0+aGFkX2lucHV0X2RhdGEgJiYgIXByaXYtPmhhZF9vdXRwdXRfZGF0YSkgeworLSAgICAgICAgR1NUX0VMRU1FTlRfRVJST1IgKGRlY29kZXIsIFNUUkVBTSwgREVDT0RFLAorKyAgICAgICAgLyogR1NUX0VMRU1FTlRfRVJST1IgKGRlY29kZXIsIFNUUkVBTSwgREVDT0RFLAorICAgICAgICAgICAgICgiTm8gdmFsaWQgZnJhbWVzIGRlY29kZWQgYmVmb3JlIGVuZCBvZiBzdHJlYW0iKSwKKy0gICAgICAgICAgICAoIm5vIHZhbGlkIGZyYW1lcyBmb3VuZCIpKTsKKysgICAgICAgICAgICAoIm5vIHZhbGlkIGZyYW1lcyBmb3VuZCIpKTsgKi8KKysgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1QoZGVjb2RlciwgIk5vIHZhbGlkIGZyYW1lcyBkZWNvZGVkIGJlZm9yZSBlbmQgb2Ygc3RyZWFtIik7CisgICAgICAgfQorIAorICAgICAgIC8qIEZvcndhcmQgRU9TIGltbWVkaWF0ZWx5LiBUaGlzIGlzIHJlcXVpcmVkIGJlY2F1c2Ugbm8KKy0tIAorMS43LjkuNQorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS90YWdsaXN0LW5vdC1zZW5kLXRvLWRvd24tc3RyZWFtLWlmLWFsbC10aGUtZnJhbWUtY29yLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvdGFnbGlzdC1ub3Qtc2VuZC10by1kb3duLXN0cmVhbS1pZi1hbGwtdGhlLWZyYW1lLWNvci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmE1MmIwCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvdGFnbGlzdC1ub3Qtc2VuZC10by1kb3duLXN0cmVhbS1pZi1hbGwtdGhlLWZyYW1lLWNvci5wYXRjaApAQCAtMCwwICsxLDU3IEBACitGcm9tIDY4ZmExYjE0MjVhZDJjNWY3YzUwMTNkMDk0MzE1M2E4YTZkMDkzNGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKaWFuIExpIDxsai5xZnkuc2hAZ21haWwuY29tPgorRGF0ZTogV2VkLCAyNCBTZXAgMjAxNCAxNzoyMTowMiArMDgwMAorU3ViamVjdDogW1BBVENIXSB0YWdsaXN0IG5vdCBzZW5kIHRvIGRvd24gc3RyZWFtIGlmIGFsbCB0aGUgZnJhbWUgY29ycnVwdGVkCisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzcyNDYKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IEppYW4gTGkgPGxqLnFmeS5zaEBnbWFpbC5jb20+CistLS0KKyBnc3QtbGlicy9nc3QvYXVkaW8vZ3N0YXVkaW9kZWNvZGVyLmMgfCAgICA5ICsrKysrKysrKworIGdzdC1saWJzL2dzdC92aWRlby9nc3R2aWRlb2RlY29kZXIuYyB8ICAgIDggKysrKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2dzdC1saWJzL2dzdC9hdWRpby9nc3RhdWRpb2RlY29kZXIuYyBiL2dzdC1saWJzL2dzdC9hdWRpby9nc3RhdWRpb2RlY29kZXIuYworaW5kZXggMzUwNDY3OC4uM2Q2OWVmZSAxMDA2NDQKKy0tLSBhL2dzdC1saWJzL2dzdC9hdWRpby9nc3RhdWRpb2RlY29kZXIuYworKysrIGIvZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGF1ZGlvZGVjb2Rlci5jCitAQCAtMjA4Myw2ICsyMDgzLDE1IEBAIGdzdF9hdWRpb19kZWNvZGVyX3NpbmtfZXZlbnRmdW5jIChHc3RBdWRpb0RlY29kZXIgKiBkZWMsIEdzdEV2ZW50ICogZXZlbnQpCisgICAgICAgZ3N0X2F1ZGlvX2RlY29kZXJfZHJhaW4gKGRlYyk7CisgICAgICAgR1NUX0FVRElPX0RFQ09ERVJfU1RSRUFNX1VOTE9DSyAoZGVjKTsKKyAKKysgICAgICAvKiBzZW5kIHRhZ2xpc3QgaWYgbm8gdmFsaWQgZnJhbWUgaXMgZGVjb2RlZCB1dGlsIEVPUyAqLworKyAgICAgIGlmIChkZWMtPnByaXYtPnRhZ2xpc3QgJiYgZGVjLT5wcml2LT50YWdsaXN0X2NoYW5nZWQpIHsKKysgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGRlYywgImNvZGVjIHRhZyAlIiBHU1RfUFRSX0ZPUk1BVCwgZGVjLT5wcml2LT50YWdsaXN0KTsKKysgICAgICAgIGlmICghZ3N0X3RhZ19saXN0X2lzX2VtcHR5IChkZWMtPnByaXYtPnRhZ2xpc3QpKQorKyAgICAgICAgICBnc3RfYXVkaW9fZGVjb2Rlcl9wdXNoX2V2ZW50IChkZWMsCisrICAgICAgICAgICAgICBnc3RfZXZlbnRfbmV3X3RhZyAoZ3N0X3RhZ19saXN0X3JlZiAoZGVjLT5wcml2LT50YWdsaXN0KSkpOworKyAgICAgICAgZGVjLT5wcml2LT50YWdsaXN0X2NoYW5nZWQgPSBGQUxTRTsKKysgICAgICB9CisrCisgICAgICAgLyogRm9yd2FyZCBFT1MgYmVjYXVzZSBubyBidWZmZXIgb3Igc2VyaWFsaXplZCBldmVudCB3aWxsIGNvbWUgYWZ0ZXIKKyAgICAgICAgKiBFT1MgYW5kIG5vdGhpbmcgY291bGQgdHJpZ2dlciBhbm90aGVyIF9maW5pc2hfZnJhbWUoKSBjYWxsLiAqLworICAgICAgIHJldCA9IGdzdF9hdWRpb19kZWNvZGVyX3B1c2hfZXZlbnQgKGRlYywgZXZlbnQpOworZGlmZiAtLWdpdCBhL2dzdC1saWJzL2dzdC92aWRlby9nc3R2aWRlb2RlY29kZXIuYyBiL2dzdC1saWJzL2dzdC92aWRlby9nc3R2aWRlb2RlY29kZXIuYworaW5kZXggZGQ4YWJlMy4uZDliZmU0ZCAxMDA2NDQKKy0tLSBhL2dzdC1saWJzL2dzdC92aWRlby9nc3R2aWRlb2RlY29kZXIuYworKysrIGIvZ3N0LWxpYnMvZ3N0L3ZpZGVvL2dzdHZpZGVvZGVjb2Rlci5jCitAQCAtMTAyNCw2ICsxMDI0LDE0IEBAIGdzdF92aWRlb19kZWNvZGVyX3NpbmtfZXZlbnRfZGVmYXVsdCAoR3N0VmlkZW9EZWNvZGVyICogZGVjb2RlciwKKyAgICAgICAgKiBwYXJlbnQgY2xhc3MnIDo6c2lua19ldmVudCgpIHVudGlsIGEgbGF0ZXIgdGltZS4KKyAgICAgICAgKi8KKyAgICAgICBmb3J3YXJkX2ltbWVkaWF0ZSA9IFRSVUU7CisrCisrICAgICAgLyogc2VuZCB0YWdsaXN0IGlmIG5vIHZhbGlkIGZyYW1lIGlzIGRlY29kZWQgdXRpbCBFT1MgKi8KKysgICAgICBpZiAoZGVjb2Rlci0+cHJpdi0+dGFncyAmJiBkZWNvZGVyLT5wcml2LT50YWdzX2NoYW5nZWQpIHsKKysgICAgICAgIGdzdF92aWRlb19kZWNvZGVyX3B1c2hfZXZlbnQgKGRlY29kZXIsCisrICAgICAgICAgICAgZ3N0X2V2ZW50X25ld190YWcgKGdzdF90YWdfbGlzdF9yZWYgKGRlY29kZXItPnByaXYtPnRhZ3MpKSk7CisrICAgICAgICBkZWNvZGVyLT5wcml2LT50YWdzX2NoYW5nZWQgPSBGQUxTRTsKKysgICAgICB9CisrCisgICAgICAgYnJlYWs7CisgICAgIH0KKyAgICAgY2FzZSBHU1RfRVZFTlRfR0FQOgorLS0gCisxLjcuOS41CisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlL3ZpZGVvYnVmZmVyX3VwZGF0YV9hbGlnbm1lbnRfdXBkYXRlLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvdmlkZW9idWZmZXJfdXBkYXRhX2FsaWdubWVudF91cGRhdGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGNmZGE5NQotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlL3ZpZGVvYnVmZmVyX3VwZGF0YV9hbGlnbm1lbnRfdXBkYXRlLnBhdGNoCkBAIC0wLDAgKzEsNTMgQEAKK2NvbW1pdCA4OGQyNTNlYTIzYjA2Mjg5ZGY0MDQwMTE2MGI2MDYzMjNmMTZjOTEwCitBdXRob3I6IFNvbmcgQmluZyA8YjA2NDk4QGZyZWVzY2FsZS5jb20+CitEYXRlOiAgIE1vbiBEZWMgMTUgMDk6MzQ6MzUgMjAxNCArMDgwMAorCit2aWRlb3Bvb2w6IHVwZGF0ZSB2aWRlbyBhbGlnbm1lbnQgYWZ0ZXIgdmlkZW8gYWxpZ25tZW50CisKK1ZpZGVvIGJ1ZmZlciBwb29sIHdpbGwgdXBkYXRlIHZpZGVvIGFsaWdubWVudCB0byByZXNwZWN0IHN0cmlkZSBhbGlnbm1lbnQKK3JlcXVpcmVtZW50LiBCdXQgaGF2ZW4ndCB1cGRhdGUgaXQgdG8gdmlkZW8gYWxpZ25tZW50IGluIGNvbmZpZ3VyZS4KK1doaWNoIHdpbGwgY2F1c2UgdXNlciBnZXQgd3JvbmcgdmlkZW8gYWxpZ25tZW50LgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxNTAxCisKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQgWzEuNS4xXQorCitTaWduZWQtb2ZmLWJ5OiBTb25nIEJpbmcgPGIwNjQ5OEBmcmVlc2NhbGUuY29tPgorZGlmZiAtLWdpdCBhL2dzdC1saWJzL2dzdC92aWRlby9nc3R2aWRlb3Bvb2wuYyBiL2dzdC1saWJzL2dzdC92aWRlby9nc3R2aWRlb3Bvb2wuYworaW5kZXggNDQ3NWY0NS4uYWNlZjU5NCAxMDA2NDQKKy0tLSBhL2dzdC1saWJzL2dzdC92aWRlby9nc3R2aWRlb3Bvb2wuYworKysrIGIvZ3N0LWxpYnMvZ3N0L3ZpZGVvL2dzdHZpZGVvcG9vbC5jCitAQCAtMTY3LDYgKzE2Nyw3IEBAIHZpZGVvX2J1ZmZlcl9wb29sX3NldF9jb25maWcgKEdzdEJ1ZmZlclBvb2wgKiBwb29sLCBHc3RTdHJ1Y3R1cmUgKiBjb25maWcpCisgICAgIC8qIGdldCBhbiBhcHBseSB0aGUgYWxpZ25tZW50IHRvIHRoZSBpbmZvICovCisgICAgIGdzdF9idWZmZXJfcG9vbF9jb25maWdfZ2V0X3ZpZGVvX2FsaWdubWVudCAoY29uZmlnLCAmcHJpdi0+dmlkZW9fYWxpZ24pOworICAgICBnc3RfdmlkZW9faW5mb19hbGlnbiAoJmluZm8sICZwcml2LT52aWRlb19hbGlnbik7CisrICAgIGdzdF9idWZmZXJfcG9vbF9jb25maWdfc2V0X3ZpZGVvX2FsaWdubWVudCAoY29uZmlnLCAmcHJpdi0+dmlkZW9fYWxpZ24pOworICAgfQorICAgcHJpdi0+aW5mbyA9IGluZm87CisKK2RpZmYgLS1naXQgYS9zeXMveGltYWdlL3hpbWFnZXBvb2wuYyBiL3N5cy94aW1hZ2UveGltYWdlcG9vbC5jCitpbmRleCA2Y2MyY2ZhLi42YTFjYmM5IDEwMDY0NAorLS0tIGEvc3lzL3hpbWFnZS94aW1hZ2Vwb29sLmMKKysrKyBiL3N5cy94aW1hZ2UveGltYWdlcG9vbC5jCitAQCAtNTk3LDYgKzU5Nyw4IEBAIHhpbWFnZV9idWZmZXJfcG9vbF9zZXRfY29uZmlnIChHc3RCdWZmZXJQb29sICogcG9vbCwgR3N0U3RydWN0dXJlICogY29uZmlnKQorICAgICAvKiBkbyBwYWRkaW5nIGFuZCBhbGlnbm1lbnQgKi8KKyAgICAgZ3N0X3ZpZGVvX2luZm9fYWxpZ24gKCZpbmZvLCAmcHJpdi0+YWxpZ24pOworCisrICAgIGdzdF9idWZmZXJfcG9vbF9jb25maWdfc2V0X3ZpZGVvX2FsaWdubWVudCAoY29uZmlnLCAmcHJpdi0+YWxpZ24pOworKworICAgICAvKiB3ZSBuZWVkIHRoZSB2aWRlbyBtZXRhZGF0YSB0b28gbm93ICovCisgICAgIHByaXYtPmFkZF9tZXRhdmlkZW8gPSBUUlVFOworICAgfSBlbHNlIHsKK2RpZmYgLS1naXQgYS9zeXMveHZpbWFnZS94dmltYWdlcG9vbC5jIGIvc3lzL3h2aW1hZ2UveHZpbWFnZXBvb2wuYworaW5kZXggMjQ0YTUxYS4uMzRiMWFiMiAxMDA2NDQKKy0tLSBhL3N5cy94dmltYWdlL3h2aW1hZ2Vwb29sLmMKKysrKyBiL3N5cy94dmltYWdlL3h2aW1hZ2Vwb29sLmMKK0BAIC0xMjQsNiArMTI0LDggQEAgeHZpbWFnZV9idWZmZXJfcG9vbF9zZXRfY29uZmlnIChHc3RCdWZmZXJQb29sICogcG9vbCwgR3N0U3RydWN0dXJlICogY29uZmlnKQorICAgICAvKiBkbyBwYWRkaW5nIGFuZCBhbGlnbm1lbnQgKi8KKyAgICAgZ3N0X3ZpZGVvX2luZm9fYWxpZ24gKCZpbmZvLCAmcHJpdi0+YWxpZ24pOworCisrICAgIGdzdF9idWZmZXJfcG9vbF9jb25maWdfc2V0X3ZpZGVvX2FsaWdubWVudCAoY29uZmlnLCAmcHJpdi0+YWxpZ24pOworKworICAgICAvKiB3ZSBuZWVkIHRoZSB2aWRlbyBtZXRhZGF0YSB0b28gbm93ICovCisgICAgIHByaXYtPmFkZF9tZXRhdmlkZW8gPSBUUlVFOworICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlL3ZpZGVvZW5jb2Rlci1LZWVwLXN0aWNreS1ldmVudHMtYXJvdW5kLXdoZW4tZG9pbmctYS1zb2Z0LS5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlL3ZpZGVvZW5jb2Rlci1LZWVwLXN0aWNreS1ldmVudHMtYXJvdW5kLXdoZW4tZG9pbmctYS1zb2Z0LS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDc2OTY5Ci0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UvdmlkZW9lbmNvZGVyLUtlZXAtc3RpY2t5LWV2ZW50cy1hcm91bmQtd2hlbi1kb2luZy1hLXNvZnQtLnBhdGNoCkBAIC0wLDAgKzEsNDYgQEAKK0Zyb20gYzNmN2QzNmI5OTJhM2NiY2VlMzM4NmRlYTg1NzIwZjNjYjA0ZTFmZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNvbmcgQmluZyA8YjA2NDk4QGZyZWVzY2FsZS5jb20+CitEYXRlOiBGcmksIDI3IE1hciAyMDE1IDEzOjM5OjQzICswODAwCitTdWJqZWN0OiBbUEFUQ0hdIHZpZGVvZW5jb2RlcjogS2VlcCBzdGlja3kgZXZlbnRzIGFyb3VuZCB3aGVuIGRvaW5nIGEgc29mdAorIHJlc2V0CisKK1RoZSBjdXJyZW50IGNvZGUgd2lsbCBmaXJzdCBkaXNjYXJkIGFsbCBmcmFtZXMsIGFuZCB0aGVuIHRyaWVzIHRvIGNvcHkKK2FsbCBzdGlja3kgZXZlbnRzIGZyb20gdGhlIChub3cgZGlzY2FyZGVkKSBmcmFtZXMuIExldCdzIGNoYW5nZSB0aGUgb3JkZXIuCisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY4NjUKKworVXBzdHJlYW0tU3RhdHVzOiBBY2NlcHRlZCAKKworLS0tCisgZ3N0LWxpYnMvZ3N0L3ZpZGVvL2dzdHZpZGVvZW5jb2Rlci5jIHwgICAgOCArKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9nc3QtbGlicy9nc3QvdmlkZW8vZ3N0dmlkZW9lbmNvZGVyLmMgYi9nc3QtbGlicy9nc3QvdmlkZW8vZ3N0dmlkZW9lbmNvZGVyLmMKK2luZGV4IDYxNGJhMmQuLjRjNWIxMTEgMTAwNjQ0CistLS0gYS9nc3QtbGlicy9nc3QvdmlkZW8vZ3N0dmlkZW9lbmNvZGVyLmMKKysrKyBiL2dzdC1saWJzL2dzdC92aWRlby9nc3R2aWRlb2VuY29kZXIuYworQEAgLTM0MCwxMCArMzQwLDYgQEAgZ3N0X3ZpZGVvX2VuY29kZXJfcmVzZXQgKEdzdFZpZGVvRW5jb2RlciAqIGVuY29kZXIsIGdib29sZWFuIGhhcmQpCisgCisgICBwcml2LT5kcmFpbmVkID0gVFJVRTsKKyAKKy0gIGdfbGlzdF9mb3JlYWNoIChwcml2LT5mcmFtZXMsIChHRnVuYykgZ3N0X3ZpZGVvX2NvZGVjX2ZyYW1lX3VucmVmLCBOVUxMKTsKKy0gIGdfbGlzdF9mcmVlIChwcml2LT5mcmFtZXMpOworLSAgcHJpdi0+ZnJhbWVzID0gTlVMTDsKKy0KKyAgIHByaXYtPmJ5dGVzID0gMDsKKyAgIHByaXYtPnRpbWUgPSAwOworIAorQEAgLTM5Miw2ICszODgsMTAgQEAgZ3N0X3ZpZGVvX2VuY29kZXJfcmVzZXQgKEdzdFZpZGVvRW5jb2RlciAqIGVuY29kZXIsIGdib29sZWFuIGhhcmQpCisgICAgICAgICBlbmNvZGVyLT5wcml2LT5jdXJyZW50X2ZyYW1lX2V2ZW50cyk7CisgICB9CisgCisrICBnX2xpc3RfZm9yZWFjaCAocHJpdi0+ZnJhbWVzLCAoR0Z1bmMpIGdzdF92aWRlb19jb2RlY19mcmFtZV91bnJlZiwgTlVMTCk7CisrICBnX2xpc3RfZnJlZSAocHJpdi0+ZnJhbWVzKTsKKysgIHByaXYtPmZyYW1lcyA9IE5VTEw7CisrCisgICBHU1RfVklERU9fRU5DT0RFUl9TVFJFQU1fVU5MT0NLIChlbmNvZGVyKTsKKyAKKyAgIHJldHVybiByZXQ7CistLSAKKzEuNy45LjUKKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2VfMS40LjUuYmIgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZV8xLjQuNS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDljMmNiCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2VfMS40LjUuYmIKQEAgLTAsMCArMSwzMCBAQAoraW5jbHVkZSBnc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlLmluYworCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1jNTRjZTkzNDU3MjcxNzVmZjY2ZDE3YjY3ZmY1MWY1OCBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9jb21tb24vY292ZXJhZ2UvY292ZXJhZ2UtcmVwb3J0LnBsO2JlZ2lubGluZT0yO2VuZGxpbmU9MTc7bWQ1PWE0ZTE4MzBmY2UwNzgwMjhjOGYwOTc0MTYxMjcyNjA3IFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL0NPUFlJTkcuTElCO21kNT02NzYyZWQ0NDJiMzgyMjM4N2E1MWM5MmQ5MjhlYWQwZCBcCisgICAgICAgICAgICAgICAgICAgIgorCitTUkNfVVJJICs9ICJmaWxlOi8vZG8tbm90LWNoYW5nZS1lb3MtZXZlbnQtdG8tZ2FwLWV2ZW50LWlmLnBhdGNoIFwKKyAgICAgICAgICAgIGZpbGU6Ly9nZXQtY2Fwcy1mcm9tLXNyYy1wYWQtd2hlbi1xdWVyeS1jYXBzLnBhdGNoIFwKKyAgICAgICAgICAgIGZpbGU6Ly90YWdsaXN0LW5vdC1zZW5kLXRvLWRvd24tc3RyZWFtLWlmLWFsbC10aGUtZnJhbWUtY29yLnBhdGNoIFwKKyAgICAgICAgICAgIGZpbGU6Ly9maXgtaWQzZGVtdXgtdXRmMTYtdG8tdXRmOC1pc3N1ZS5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vaGFuZGxlLWF1ZGlvLXZpZGVvLWRlY29kZXItZXJyb3IucGF0Y2ggXAorICAgICAgICAgICAgZmlsZTovL3ZpZGVvYnVmZmVyX3VwZGF0YV9hbGlnbm1lbnRfdXBkYXRlLnBhdGNoIFwKKyAgICAgICAgICAgIGZpbGU6Ly8wMDAyLXZpZGVvLWZyYW1lLUFkZC1HU1RfVklERU9fRlJBTUVfTUFQX0ZMQUdfTk9fUkVGLnBhdGNoIFwKKyAgICAgICAgICAgIGZpbGU6Ly8wMDAxLXZpZGVvLWZyYW1lLURvbi10LXJlZi1idWZmZXJzLXR3aWNlLXdoZW4tbWFwcGluZy5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vMDAwMy12aWRlb2ZpbHRlci1Vc2UtbmV3LUdTVF9WSURFT19GUkFNRV9NQVBfRkxBR19OT19SRUYucGF0Y2ggXAorICAgICAgICAgICAgZmlsZTovL3ZpZGVvZW5jb2Rlci1LZWVwLXN0aWNreS1ldmVudHMtYXJvdW5kLXdoZW4tZG9pbmctYS1zb2Z0LS5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vZG8tbm90LWNoYW5nZS1lb3MtZXZlbnQtdG8tZ2FwLWV2ZW50Mi5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vZG8tbm90LWNoYW5nZS1lb3MtZXZlbnQtdG8tZ2FwLWV2ZW50My5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vMDAwMS1iYXNldGV4dG92ZXJsYXktbWFrZS1tZW1vcnktY29weS13aGVuLXZpZGVvLWJ1ZmZlci1zLnBhdGNoIFwKKyAgICAgICAgICAgIGZpbGU6Ly8wMDAyLWdzdHBsYXlzaW5rLWRvbi10LXNldC1hc3luYy1vZi1jdXN0b20tdGV4dC1zaW5rLXRvLWYucGF0Y2ggXAorICAgICAgICAgICAgZmlsZTovLzAwMDMtc3NhcGFyc2UtZW5oYW5jZS1TU0EtdGV4dC1saW5lcy1wYXJzaW5nLnBhdGNoIFwKKyAgICAgICAgICAgIGZpbGU6Ly8wMDA0LXN1YnBhcnNlLXNldC1uZWVkX3NlZ21lbnQtYWZ0ZXItc2luay1wYWQtcmVjZWl2ZWQtR1MucGF0Y2ggXAorICAgICAgICAgICAgZmlsZTovL2VuY29kZWJpbi1OZWVkLW1vcmUtYnVmZmVycy1pbi1vdXRwdXQtcXVldWUtZm9yLWJldHQucGF0Y2ggXAorIgorCitTUkNfVVJJW21kNXN1bV0gPSAiMzU3MTY1YWY2MjVjMGNhMzUzYWI0N2M1ZDg0MzkyMGUiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNzdiZDgxOTllN2EzMTJkM2Q3MWRlOWI3ZGRmNzYxYTNiNzg1NjBhMmMyYTgwODI5ZDA4MTVjYTM5Y2JkNTUxZCIKKworUyA9ICIke1dPUktESVJ9L2dzdC1wbHVnaW5zLWJhc2UtJHtQVn0iCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZV9naXQuYmIgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZV9naXQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmJlM2E0MgotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlX2dpdC5iYgpAQCAtMCwwICsxLDE5IEBACitERUZBVUxUX1BSRUZFUkVOQ0UgPSAiLTEiCisKK2luY2x1ZGUgZ3N0cmVhbWVyMS4wLXBsdWdpbnMtYmFzZS5pbmMKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9YzU0Y2U5MzQ1NzI3MTc1ZmY2NmQxN2I2N2ZmNTFmNTggXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vY29tbW9uL2NvdmVyYWdlL2NvdmVyYWdlLXJlcG9ydC5wbDtiZWdpbmxpbmU9MjtlbmRsaW5lPTE3O21kNT1hNGUxODMwZmNlMDc4MDI4YzhmMDk3NDE2MTI3MjYwNyBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLkxJQjttZDU9Njc2MmVkNDQyYjM4MjIzODdhNTFjOTJkOTI4ZWFkMGQgXAorICAgICAgICAgICAgICAgICAgICIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworU1JDUkVWID0gIjhkNGNiNjRhNGI5ZDg0YjEwMDc2YmYzNTBmODBhMGQ2ZWE2OGVjMmQiCisKK2RvX2NvbmZpZ3VyZV9wcmVwZW5kKCkgeworCWNkICR7U30KKwkuL2F1dG9nZW4uc2ggLS1ub2NvbmZpZ3VyZQorCWNkICR7Qn0KK30KKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWdvb2QuaW5jIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWdvb2QuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlMzE2ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtZ29vZC5pbmMKQEAgLTAsMCArMSw1NyBAQAorcmVxdWlyZSBnc3RyZWFtZXIxLjAtcGx1Z2lucy5pbmMKKworTElDRU5TRSA9ICJHUEx2MisgJiBMR1BMdjIuMSsiCisKKyMgbGliaWQzdGFnCitERVBFTkRTICs9ICJnc3RyZWFtZXIxLjAtcGx1Z2lucy1iYXNlIHpsaWIgYnppcDIgbGliY2FwIgorCitpbmhlcml0IGdldHRleHQKKworCitQQUNLQUdFQ09ORklHID8/PSAiIFwKKyAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3gxMScsICd4MTEnLCAnJywgZCl9IFwKKyAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3B1bHNlYXVkaW8nLCAncHVsc2VhdWRpbycsICcnLCBkKX0gXAorICAgIG9yYyBjYWlybyBmbGFjIGdkay1waXhidWYgZ3VkZXYganBlZyBsaWJwbmcgc291cCBzcGVleCB0YWdsaWIgXAorICAgICIKKworWDExREVQRU5EUyA9ICJ2aXJ0dWFsL2xpYngxMSBsaWJzbSBsaWJ4cmVuZGVyIGxpYnhmaXhlcyBsaWJ4ZGFtYWdlIgorWDExRU5BQkxFT1BUUyA9ICItLWVuYWJsZS14IC0tZW5hYmxlLXhzaG0iCitYMTFESVNBQkxFT1BUUyA9ICItLWRpc2FibGUteCAtLWRpc2FibGUteHNobSIKK1BBQ0tBR0VDT05GSUdbeDExXSAgICAgICAgPSAiJHtYMTFFTkFCTEVPUFRTfSwke1gxMURJU0FCTEVPUFRTfSwke1gxMURFUEVORFN9IgorUEFDS0FHRUNPTkZJR1twdWxzZWF1ZGlvXSA9ICItLWVuYWJsZS1wdWxzZSwtLWRpc2FibGUtcHVsc2UscHVsc2VhdWRpbyIKK1BBQ0tBR0VDT05GSUdbY2Fpcm9dICAgICAgPSAiLS1lbmFibGUtY2Fpcm8sLS1kaXNhYmxlLWNhaXJvLGNhaXJvIgorUEFDS0FHRUNPTkZJR1tmbGFjXSAgICAgICA9ICItLWVuYWJsZS1mbGFjLC0tZGlzYWJsZS1mbGFjLGZsYWMiCitQQUNLQUdFQ09ORklHW2dkay1waXhidWZdID0gIi0tZW5hYmxlLWdka19waXhidWYsLS1kaXNhYmxlLWdka19waXhidWYsZ2RrLXBpeGJ1ZiIKK1BBQ0tBR0VDT05GSUdbZ3VkZXZdICAgICAgPSAiLS13aXRoLWd1ZGV2LC0td2l0aG91dC1ndWRldix1ZGV2IgorUEFDS0FHRUNPTkZJR1tqYWNrXSAgICAgICA9ICItLWVuYWJsZS1qYWNrLC0tZGlzYWJsZS1qYWNrLGphY2siCitQQUNLQUdFQ09ORklHW2pwZWddICAgICAgID0gIi0tZW5hYmxlLWpwZWcsLS1kaXNhYmxlLWpwZWcsanBlZyIKK1BBQ0tBR0VDT05GSUdbbGlicG5nXSAgICAgPSAiLS1lbmFibGUtbGlicG5nLC0tZGlzYWJsZS1saWJwbmcsbGlicG5nIgorUEFDS0FHRUNPTkZJR1tzb3VwXSAgICAgICA9ICItLWVuYWJsZS1zb3VwLC0tZGlzYWJsZS1zb3VwLGxpYnNvdXAtMi40IgorUEFDS0FHRUNPTkZJR1tzcGVleF0gICAgICA9ICItLWVuYWJsZS1zcGVleCwtLWRpc2FibGUtc3BlZXgsc3BlZXgiCitQQUNLQUdFQ09ORklHW3RhZ2xpYl0gICAgID0gIi0tZW5hYmxlLXRhZ2xpYiwtLWRpc2FibGUtdGFnbGliLHRhZ2xpYiIKK1BBQ0tBR0VDT05GSUdbdnB4XSAgICAgICAgPSAiLS1lbmFibGUtdnB4LC0tZGlzYWJsZS12cHgsbGlidnB4IgorUEFDS0FHRUNPTkZJR1t3YXZwYWNrXSAgICA9ICItLWVuYWJsZS13YXZwYWNrLC0tZGlzYWJsZS13YXZwYWNrLHdhdnBhY2siCisKKyMgdGhlIDEzOTQgcGx1Z2lucyByZXF1aXJlIGJvdGggbGlicmF3MTM5NCBhbmQgbGliaWVjNjE4ODMKKyMgdGhlIGZvcm1lciBpcyBpbmNsdWRlZCBpbiBtZXRhLW9lLCB0aGUgbGF0dGVyIGlzbid0CisjIC0+IGRpc2FibGVkCisKK0VYVFJBX09FQ09ORiArPSAiIFwKKyAgICAtLWVuYWJsZS1vc3MgXAorICAgIC0tZW5hYmxlLWdzdF92NGwyIFwKKyAgICAtLXdpdGhvdXQtbGlidjRsMiBcCisgICAgLS1kaXNhYmxlLWRpcmVjdHNvdW5kIFwKKyAgICAtLWRpc2FibGUtd2F2ZWZvcm0gXAorICAgIC0tZGlzYWJsZS1vc3M0IFwKKyAgICAtLWRpc2FibGUtc3VuYXVkaW8gXAorICAgIC0tZGlzYWJsZS1vc3hfYXVkaW8gXAorICAgIC0tZGlzYWJsZS1vc3hfdmlkZW8gXAorICAgIC0tZGlzYWJsZS1hYWxpYiBcCisgICAgLS1kaXNhYmxlLWxpYmNhY2EgXAorICAgIC0tZGlzYWJsZS1saWJkdiBcCisgICAgLS1kaXNhYmxlLXNob3V0MiBcCisgICAgLS1kaXNhYmxlLWV4YW1wbGVzIFwKKyAgICAtLWRpc2FibGUtZHYxMzk0IFwKKyIKKworRklMRVNfJHtQTn0tZXF1YWxpemVyICs9ICIke2RhdGFkaXJ9L2dzdHJlYW1lci0xLjAvcHJlc2V0cy8qLnBycyIKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1nb29kLzAwMDEtZ3N0cnRwbXA0Z3BheS1zZXQtZGFmYXVsdC12YWx1ZS1mb3ItTVBFRzQtd2l0aG91dC1jby5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1nb29kLzAwMDEtZ3N0cnRwbXA0Z3BheS1zZXQtZGFmYXVsdC12YWx1ZS1mb3ItTVBFRzQtd2l0aG91dC1jby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMTk3M2Q0Ci0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWdvb2QvMDAwMS1nc3RydHBtcDRncGF5LXNldC1kYWZhdWx0LXZhbHVlLWZvci1NUEVHNC13aXRob3V0LWNvLnBhdGNoCkBAIC0wLDAgKzEsNjIgQEAKK0Zyb20gYzc4MmEzMDQ4MjkwOGE0YjRkZDljZDRhYmZmOWY5YmM0MDE2Njk4ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNvbmcgQmluZyA8YjA2NDk4QGZyZWVzY2FsZS5jb20+CitEYXRlOiBUdWUsIDUgQXVnIDIwMTQgMTQ6NDA6NDYgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gZ3N0cnRwbXA0Z3BheTogc2V0IGRhZmF1bHQgdmFsdWUgZm9yIE1QRUc0IHdpdGhvdXQgY29kZWMKKyBkYXRhIGluIGNhcHMuCisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQyNjMKKworVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQKKworU2lnbmVkLW9mZi1ieTogU29uZyBCaW5nIDxiMDY0OThAZnJlZXNjYWxlLmNvbT4KKy0tLQorIGdzdC9ydHAvZ3N0cnRwbXA0Z3BheS5jIHwgICAxOSArKysrKysrKysrKysrKysrKystCisgMSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2dzdC9ydHAvZ3N0cnRwbXA0Z3BheS5jIGIvZ3N0L3J0cC9nc3RydHBtcDRncGF5LmMKK2luZGV4IDc5MTNkOWEuLjE3NDlkMzkgMTAwNjQ0CistLS0gYS9nc3QvcnRwL2dzdHJ0cG1wNGdwYXkuYworKysrIGIvZ3N0L3J0cC9nc3RydHBtcDRncGF5LmMKK0BAIC0zOTAsNiArMzkwLDcgQEAgZ3N0X3J0cF9tcDRnX3BheV9zZXRjYXBzIChHc3RSVFBCYXNlUGF5bG9hZCAqIHBheWxvYWQsIEdzdENhcHMgKiBjYXBzKQorICAgY29uc3QgR1ZhbHVlICpjb2RlY19kYXRhOworICAgY29uc3QgZ2NoYXIgKm1lZGlhX3R5cGUgPSBOVUxMOworICAgZ2Jvb2xlYW4gcmVzOworKyAgY29uc3QgZ2NoYXIgKm5hbWU7CisgCisgICBydHBtcDRncGF5ID0gR1NUX1JUUF9NUDRHX1BBWSAocGF5bG9hZCk7CisgCitAQCAtNDAwLDcgKzQwMSw2IEBAIGdzdF9ydHBfbXA0Z19wYXlfc2V0Y2FwcyAoR3N0UlRQQmFzZVBheWxvYWQgKiBwYXlsb2FkLCBHc3RDYXBzICogY2FwcykKKyAgICAgR1NUX0xPR19PQkpFQ1QgKHJ0cG1wNGdwYXksICJnb3QgY29kZWNfZGF0YSIpOworICAgICBpZiAoR19WQUxVRV9UWVBFIChjb2RlY19kYXRhKSA9PSBHU1RfVFlQRV9CVUZGRVIpIHsKKyAgICAgICBHc3RCdWZmZXIgKmJ1ZmZlcjsKKy0gICAgICBjb25zdCBnY2hhciAqbmFtZTsKKyAKKyAgICAgICBidWZmZXIgPSBnc3RfdmFsdWVfZ2V0X2J1ZmZlciAoY29kZWNfZGF0YSk7CisgICAgICAgR1NUX0xPR19PQkpFQ1QgKHJ0cG1wNGdwYXksICJjb25maWd1cmluZyBjb2RlY19kYXRhIik7CitAQCAtNDI2LDYgKzQyNiwyMyBAQCBnc3RfcnRwX21wNGdfcGF5X3NldGNhcHMgKEdzdFJUUEJhc2VQYXlsb2FkICogcGF5bG9hZCwgR3N0Q2FwcyAqIGNhcHMpCisgCisgICAgICAgcnRwbXA0Z3BheS0+Y29uZmlnID0gZ3N0X2J1ZmZlcl9jb3B5IChidWZmZXIpOworICAgICB9CisrICB9IGVsc2UgeworKyAgICBuYW1lID0gZ3N0X3N0cnVjdHVyZV9nZXRfbmFtZSAoc3RydWN0dXJlKTsKKysKKysgICAgaWYgKCFzdHJjbXAgKG5hbWUsICJ2aWRlby9tcGVnIikpIHsKKysgICAgICBydHBtcDRncGF5LT5wcm9maWxlID0gZ19zdHJkdXAgKCIxIik7CisrCisrICAgICAgLyogZml4ZWQgcmF0ZSAqLworKyAgICAgIHJ0cG1wNGdwYXktPnJhdGUgPSA5MDAwMDsKKysgICAgICAvKiB2aWRlbyBzdHJlYW0gdHlwZSAqLworKyAgICAgIHJ0cG1wNGdwYXktPnN0cmVhbXR5cGUgPSAiNCI7CisrICAgICAgLyogbm8gcGFyYW1zIGZvciB2aWRlbyAqLworKyAgICAgIHJ0cG1wNGdwYXktPnBhcmFtcyA9IE5VTEw7CisrICAgICAgLyogbW9kZSAqLworKyAgICAgIHJ0cG1wNGdwYXktPm1vZGUgPSAiZ2VuZXJpYyI7CisrCisrICAgICAgbWVkaWFfdHlwZSA9ICJ2aWRlbyI7CisrICAgIH0KKyAgIH0KKyAgIGlmIChtZWRpYV90eXBlID09IE5VTEwpCisgICAgIGdvdG8gY29uZmlnX2ZhaWxlZDsKKy0tIAorMS43LjkuNQorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtZ29vZC9kZWNyZWFzZV9hc3Rlcmlza2gyNjNfcmFuay5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy1nb29kL2RlY3JlYXNlX2FzdGVyaXNraDI2M19yYW5rLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI4ODYzMWIKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtZ29vZC9kZWNyZWFzZV9hc3Rlcmlza2gyNjNfcmFuay5wYXRjaApAQCAtMCwwICsxLDI1IEBACitjb21taXQgZDcxZDc0ZGFhYzhlZDU0MTU2ZWQxMDM5NThhYjQ1NWM2M2M3MmIwZQorQXV0aG9yOiBTb25nIEJpbmcgPGIwNjQ5OEBmcmVlc2NhbGUuY29tPgorRGF0ZTogICBNb24gTm92IDEwIDExOjI1OjQ3IDIwMTQgKzA4MDAKKworW2FzdGVyaXNraDI2M10gZGVjcmVhc2UgdGhlIHJhbmsgYXMgd2UgaGF2bid0IHRoaXMga2luZCBvZiBkZWNvZGVyLgorCitEZWNyZWFzZSB0aGUgcmFuayBhcyB3ZSBoYXZuJ3QgdGhpcyBraW5kIG9mIGRlY29kZXIuCisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk5MzUKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IFNvbmcgQmluZyA8YjA2NDk4QGZyZWVzY2FsZS5jb20+CisKK2RpZmYgLS1naXQgYS9nc3QvcnRwL2dzdGFzdGVyaXNraDI2My5jIGIvZ3N0L3J0cC9nc3Rhc3Rlcmlza2gyNjMuYworaW5kZXggYTAxZmJjOC4uOGZhMzE5NCAxMDA2NDQKKy0tLSBhL2dzdC9ydHAvZ3N0YXN0ZXJpc2toMjYzLmMKKysrKyBiL2dzdC9ydHAvZ3N0YXN0ZXJpc2toMjYzLmMKK0BAIC0yMjYsNSArMjI2LDUgQEAgZ2Jvb2xlYW4KKyBnc3RfYXN0ZXJpc2toMjYzX3BsdWdpbl9pbml0IChHc3RQbHVnaW4gKiBwbHVnaW4pCisgeworICAgcmV0dXJuIGdzdF9lbGVtZW50X3JlZ2lzdGVyIChwbHVnaW4sICJhc3Rlcmlza2gyNjMiLAorLSAgICAgIEdTVF9SQU5LX1NFQ09OREFSWSwgR1NUX1RZUEVfQVNURVJJU0tfSDI2Myk7CisrICAgICAgR1NUX1JBTktfU0VDT05EQVJZIC0gMSwgR1NUX1RZUEVfQVNURVJJU0tfSDI2Myk7CisgfQpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWdvb2RfMS40LjUuYmIgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtZ29vZF8xLjQuNS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDNhYjYwCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWdvb2RfMS40LjUuYmIKQEAgLTAsMCArMSwxMyBAQAoraW5jbHVkZSBnc3RyZWFtZXIxLjAtcGx1Z2lucy1nb29kLmluYworCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1hNmY4OWUyMTAwZDliNmNkZmZjZWE0ZjM5OGUzNzM0MyBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9jb21tb24vY292ZXJhZ2UvY292ZXJhZ2UtcmVwb3J0LnBsO2JlZ2lubGluZT0yO2VuZGxpbmU9MTc7bWQ1PWE0ZTE4MzBmY2UwNzgwMjhjOGYwOTc0MTYxMjcyNjA3IFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL2dzdC9yZXBsYXlnYWluL3JnYW5hbHlzaXMuYztiZWdpbmxpbmU9MTtlbmRsaW5lPTIzO21kNT1iNjBlYmVmZDViMmY1YThlMGNhYjZiZmVlMzkxYTVmZSIKKworU1JDX1VSSSArPSAiZmlsZTovLzAwMDEtZ3N0cnRwbXA0Z3BheS1zZXQtZGFmYXVsdC12YWx1ZS1mb3ItTVBFRzQtd2l0aG91dC1jby5wYXRjaCBcCisgICAgICAgICAgICBmaWxlOi8vZGVjcmVhc2VfYXN0ZXJpc2toMjYzX3JhbmsucGF0Y2ggXAorIgorU1JDX1VSSVttZDVzdW1dID0gImVhZjFhNmRhZjczNzQ5YmM0MjNmZWFjMzAxZDYwMDM4IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjc5YjFiNWYzZjdiY2FhOGE2MTUyMDJlYjVlMTc2MTIxZWViODMzNjk2MGY3MDY4N2U1MzZhZDc4ZGJjN2U2NDEiCisKK1MgPSAiJHtXT1JLRElSfS9nc3QtcGx1Z2lucy1nb29kLSR7UFZ9IgpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWdvb2RfZ2l0LmJiIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLWdvb2RfZ2l0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjMGUwZWYKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtZ29vZF9naXQuYmIKQEAgLTAsMCArMSwxOCBAQAorREVGQVVMVF9QUkVGRVJFTkNFID0gIi0xIgorCitpbmNsdWRlIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWdvb2QuaW5jCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWE2Zjg5ZTIxMDBkOWI2Y2RmZmNlYTRmMzk4ZTM3MzQzIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL2NvbW1vbi9jb3ZlcmFnZS9jb3ZlcmFnZS1yZXBvcnQucGw7YmVnaW5saW5lPTI7ZW5kbGluZT0xNzttZDU9YTRlMTgzMGZjZTA3ODAyOGM4ZjA5NzQxNjEyNzI2MDcgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vZ3N0L3JlcGxheWdhaW4vcmdhbmFseXNpcy5jO2JlZ2lubGluZT0xO2VuZGxpbmU9MjM7bWQ1PWI2MGViZWZkNWIyZjVhOGUwY2FiNmJmZWUzOTFhNWZlIgorCitTID0gIiR7V09SS0RJUn0vZ2l0IgorCitTUkNSRVYgPSAiZmQwMTIzODAwYzhjMWNmMTQ2OGMwZmE1ZDU5MmFkMGQwZDhiNDE0MCIKKworZG9fY29uZmlndXJlX3ByZXBlbmQoKSB7CisJY2QgJHtTfQorCS4vYXV0b2dlbi5zaCAtLW5vY29uZmlndXJlCisJY2QgJHtCfQorfQorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtdWdseS5pbmMgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtdWdseS5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjNiYTMxNgotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy11Z2x5LmluYwpAQCAtMCwwICsxLDMwIEBACityZXF1aXJlIGdzdHJlYW1lcjEuMC1wbHVnaW5zLmluYworCitMSUNFTlNFID0gIkdQTHYyKyAmIExHUEx2Mi4xKyAmIExHUEx2MisiCitMSUNFTlNFX0ZMQUdTID0gImNvbW1lcmNpYWwiCisKK0RFUEVORFMgKz0gImdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UgbGliaWQzdGFnIgorCitpbmhlcml0IGdldHRleHQKKworCitQQUNLQUdFQ09ORklHID8/PSAiIFwKKyAgICBvcmMgYTUyZGVjIGxhbWUgbWFkIG1wZWcyZGVjIFwKKyAgICAiCisKK1BBQ0tBR0VDT05GSUdbYTUyZGVjXSAgID0gIi0tZW5hYmxlLWE1MmRlYywtLWRpc2FibGUtYTUyZGVjLGxpYmE1MiIKK1BBQ0tBR0VDT05GSUdbY2Rpb10gICAgID0gIi0tZW5hYmxlLWNkaW8sLS1kaXNhYmxlLWNkaW8sbGliY2RpbyIKK1BBQ0tBR0VDT05GSUdbZHZkcmVhZF0gID0gIi0tZW5hYmxlLWR2ZHJlYWQsLS1kaXNhYmxlLWR2ZHJlYWQsbGliZHZkcmVhZCIKK1BBQ0tBR0VDT05GSUdbbGFtZV0gICAgID0gIi0tZW5hYmxlLWxhbWUsLS1kaXNhYmxlLWxhbWUsbGFtZSIKK1BBQ0tBR0VDT05GSUdbbWFkXSAgICAgID0gIi0tZW5hYmxlLW1hZCwtLWRpc2FibGUtbWFkLGxpYm1hZCIKK1BBQ0tBR0VDT05GSUdbbXBlZzJkZWNdID0gIi0tZW5hYmxlLW1wZWcyZGVjLC0tZGlzYWJsZS1tcGVnMmRlYyxtcGVnMmRlYyIKK1BBQ0tBR0VDT05GSUdbeDI2NF0gICAgID0gIi0tZW5hYmxlLXgyNjQsLS1kaXNhYmxlLXgyNjQseDI2NCIKKworCitFWFRSQV9PRUNPTkYgKz0gIiBcCisgICAgLS1kaXNhYmxlLWFtcm5iIFwKKyAgICAtLWRpc2FibGUtYW1yd2IgXAorICAgIC0tZGlzYWJsZS1zaWRwbGF5IFwKKyAgICAtLWRpc2FibGUtdHdvbGFtZSBcCisgICAgIgorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtdWdseV8xLjQuNS5iYiBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy11Z2x5XzEuNC41LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1Y2IyOGMKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtdWdseV8xLjQuNS5iYgpAQCAtMCwwICsxLDEwIEBACitpbmNsdWRlIGdzdHJlYW1lcjEuMC1wbHVnaW5zLXVnbHkuaW5jCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWE2Zjg5ZTIxMDBkOWI2Y2RmZmNlYTRmMzk4ZTM3MzQzIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL3Rlc3RzL2NoZWNrL2VsZW1lbnRzL3hpbmdtdXguYztiZWdpbmxpbmU9MTtlbmRsaW5lPTIxO21kNT00Yzc3MWI4YWYxODg3MjQ4NTVjYjk5Y2FkZDM5MDA2OCAiCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI2OTU0YmVlZDdiYjlhOTNlNDI2ZGVlNTQzZmY0NjM5MyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI1Y2Q1ZTgxY2Y2MTg5NDRmNGRjOTM1ZjE2NjliMjEyNWU4YmIyZmU5Y2M3ZGM4ZGMxNWI3MjIzN2FjYTQ5MDY3IgorCitTID0gIiR7V09SS0RJUn0vZ3N0LXBsdWdpbnMtdWdseS0ke1BWfSIKKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLXVnbHlfZ2l0LmJiIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC1wbHVnaW5zLXVnbHlfZ2l0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjZjVmZmMKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMtdWdseV9naXQuYmIKQEAgLTAsMCArMSwxNyBAQAorREVGQVVMVF9QUkVGRVJFTkNFID0gIi0xIgorCitpbmNsdWRlIGdzdHJlYW1lcjEuMC1wbHVnaW5zLXVnbHkuaW5jCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWE2Zjg5ZTIxMDBkOWI2Y2RmZmNlYTRmMzk4ZTM3MzQzIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL3Rlc3RzL2NoZWNrL2VsZW1lbnRzL3hpbmdtdXguYztiZWdpbmxpbmU9MTtlbmRsaW5lPTIxO21kNT00Yzc3MWI4YWYxODg3MjQ4NTVjYjk5Y2FkZDM5MDA2OCAiCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK1NSQ1JFViA9ICIwNmI4YWMxMGNlZTg1YzVjMzA0Y2EzMjA5OTdhYThmNDQyOTVhNjZmIgorCitkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKKwljZCAke1N9CisJLi9hdXRvZ2VuLnNoIC0tbm9jb25maWd1cmUKKwljZCAke0J9Cit9CisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcGx1Z2lucy5pbmMgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxNzgzYjcKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXBsdWdpbnMuaW5jCkBAIC0wLDAgKzEsNTkgQEAKK1NVTU1BUlkgPSAiUGx1Z2lucyBmb3IgdGhlIEdTdHJlYW1lciBtdWx0aW1lZGlhIGZyYW1ld29yayAxLngiCitIT01FUEFHRSA9ICJodHRwOi8vZ3N0cmVhbWVyLmZyZWVkZXNrdG9wLm9yZy8iCitCVUdUUkFDS0VSID0gImh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL2VudGVyX2J1Zy5jZ2k/cHJvZHVjdD1Hc3RyZWFtZXIiCitTRUNUSU9OID0gIm11bHRpbWVkaWEiCitERVBFTkRTID0gImdzdHJlYW1lcjEuMCIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCisKK0dTVFJFQU1FUl8xXzBfREVCVUcgPz0gIi0tZGlzYWJsZS1kZWJ1ZyIKK0dTVFJFQU1FUl8xXzBfR0lUX0JSQU5DSCA/PSAibWFzdGVyIgorRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS12YWxncmluZCAke0dTVFJFQU1FUl8xXzBfREVCVUd9IC0tZGlzYWJsZS1leGFtcGxlcyAiCisKK2FjcGF0aHMgPSAiLUkgJHtTfS9jb21tb24vbTQgLUkgJHtTfS9tNCIKKworTElCViA9ICIxLjAiCityZXF1aXJlIGdzdC1wbHVnaW5zLXBhY2thZ2UuaW5jCisKK1BBQ0tBR0VDT05GSUdbb3JjXSA9ICItLWVuYWJsZS1vcmMsLS1kaXNhYmxlLW9yYyxvcmMgb3JjLW5hdGl2ZSIKKworZXhwb3J0IE9SQ0MgPSAiJHtTVEFHSU5HX0RJUl9OQVRJVkV9JHtiaW5kaXJ9L29yY2MiCisKK1BBQ0tBR0VTX0RZTkFNSUMgPSAiXiR7UE59LS4qIgorCisjIGFwcGx5IGdzdHJlYW1lciBoYWNrIGFmdGVyIE1ha2VmaWxlLmluLmluIGluIHNvdXJjZSBpcyByZXBsYWNlZCBieSBvdXIgdmVyc2lvbiBmcm9tCisjICR7U1RBR0lOR19EQVRBRElSX05BVElWRX0vZ2V0dGV4dC9wby9NYWtlZmlsZS5pbi5pbiwgYnV0IGJlZm9yZSBjb25maWd1cmUgaXMgZXhlY3V0ZWQgCisjIGh0dHA6Ly9saXN0cy5saW51eHRvZ28ub3JnL3BpcGVybWFpbC9vcGVuZW1iZWRkZWQtY29yZS8yMDEyLU5vdmVtYmVyLzAzMjIzMy5odG1sCitvZV9ydW5jb25mX3ByZXBlbmQoKSB7CisJaWYgWyAtZSAke1N9L3BvL01ha2VmaWxlLmluLmluIF07IHRoZW4KKwkJc2VkIC1pIC1lICIxYVxcIiAtZSAnR0VUVEVYVF9QQUNLQUdFID0gQEdFVFRFWFRfUEFDS0FHRUAnICR7U30vcG8vTWFrZWZpbGUuaW4uaW4KKwlmaQorfQorCitTUkNfVVJJID0gIiR7QGdldF9nc3Rfc3JjdXJpKGQpfSIKKworZGVmIGdldF9nc3Rfc3JjdXJpKGQpOgorICAgICMgY2hlY2sgaWYgZXhwZWN0ZWQgcHJlZml4IGlzIHByZXNlbnQKKyAgICBwcmVmaXggPSAiZ3N0cmVhbWVyMS4wLSIKKyAgICBicG4gPSBkLmdldFZhcigiQlBOIiwgVHJ1ZSkKKyAgICBpZiBub3QgYnBuLnN0YXJ0c3dpdGgocHJlZml4KToKKyAgICAgICAgYmIuZmF0YWwoJ0ludmFsaWQgR1N0cmVhbWVyIDEuMCBwbHVnaW4gcGFja2FnZSBuYW1lICIlcyIgOiBtdXN0IHN0YXJ0IHdpdGggIiVzIicgJSAoYnBuLCBwcmVmaXgpKQorCisgICAgIyByZXBsYWNlZCBwcmVmaXggd2l0aCAiZ3N0LSIsIHdoaWNoIGlzIHdoYXQgaXMgdXNlZCBmb3IgdGhlIHRhcmJhbGwgYW5kIHJlcG9zaXRvcnkgZmlsZW5hbWVzCisgICAgZ3N0cGtnX2Jhc2VuYW1lID0gImdzdC0iICsgYnBuW2xlbihwcmVmaXgpOl0KKyAgICBwdiA9IGQuZ2V0VmFyKCJQViIsIFRydWUpCisgICAgYnJhbmNoID0gZC5nZXRWYXIoIkdTVFJFQU1FUl8xXzBfR0lUX0JSQU5DSCIsIFRydWUpCisKKyAgICBpZiBwdiA9PSAiZ2l0IjoKKyAgICAgICAgcyA9ICJnaXQ6Ly9hbm9uZ2l0LmZyZWVkZXNrdG9wLm9yZy9nc3RyZWFtZXIvJXM7YnJhbmNoPSVzIiAlIChnc3Rwa2dfYmFzZW5hbWUsIGJyYW5jaCkKKyAgICBlbHNlOgorICAgICAgICBzID0gImh0dHA6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3NyYy8lcy8lcy0lcy50YXIueHoiICUgKGdzdHBrZ19iYXNlbmFtZSwgZ3N0cGtnX2Jhc2VuYW1lLCBwdikKKyAgICByZXR1cm4gcworCitkZWxldGVfbGlibGlua19tNF9maWxlKCkgeworCSMgVGhpcyBtNCBmaWxlIGNvbnRhaW5zIG5hc3RpbmVzcyB3aGljaCBjb25mbGljdHMgd2l0aCBsaWJ0b29sIDIuMi4yCisJcm0gIiR7U30vbTQvbGliLWxpbmsubTQiIHx8IHRydWUKK30KKworZG9fY29uZmlndXJlW3ByZWZ1bmNzXSArPSAiIGRlbGV0ZV9saWJsaW5rX200X2ZpbGUgIgorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXJ0c3Atc2VydmVyLmluYyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcnRzcC1zZXJ2ZXIuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4YTk0MjAKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXJ0c3Atc2VydmVyLmluYwpAQCAtMCwwICsxLDE0IEBACitTVU1NQVJZID0gIkEgbGlicmFyeSBvbiB0b3Agb2YgR1N0cmVhbWVyIGZvciBidWlsZGluZyBhbiBSVFNQIHNlcnZlciIKK1NFQ1RJT04gPSAibXVsdGltZWRpYSIKK0xJQ0VOU0UgPSAiTEdQTHYyIgorSE9NRVBBR0UgPSAiaHR0cDovL2NnaXQuZnJlZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3QtcnRzcC1zZXJ2ZXIvIgorREVQRU5EUyA9ICJnc3RyZWFtZXIxLjAgbGliY2dyb3VwIGdzdHJlYW1lcjEuMC1wbHVnaW5zLWJhc2UiCisKK1BOUkVBTCA9ICJnc3QtcnRzcC1zZXJ2ZXIiCisKK1NSQ19VUkkgPSAiaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcvc3JjLyR7UE5SRUFMfS8ke1BOUkVBTH0tJHtQVn0udGFyLnh6IgorCitTID0gIiR7V09SS0RJUn0vJHtQTlJFQUx9LSR7UFZ9IgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcgCisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAtcnRzcC1zZXJ2ZXJfMS40LjUuYmIgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXJ0c3Atc2VydmVyXzEuNC41LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiOWI0MmIKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLXJ0c3Atc2VydmVyXzEuNC41LmJiCkBAIC0wLDAgKzEsNiBAQAoraW5jbHVkZSBnc3RyZWFtZXIxLjAtcnRzcC1zZXJ2ZXIuaW5jCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTY3NjJlZDQ0MmIzODIyMzg3YTUxYzkyZDkyOGVhZDBkIgorCitTUkNfVVJJW21kNXN1bV0gPSAiYTlmOWI4ODk5ZWM3YWIzMzY2M2NkYTc2MjdkYjQwZDMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiMzA4OTI1NGJkMzFiN2MxZjFjZjJjMDM0YTNiMzU1MWY5Mjg3OGY5ZTNjYWI2NWNlZjNhOTAxYTA0YzBmMWQzNyIKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAuaW5jIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmU4YWE4ZgotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAuaW5jCkBAIC0wLDAgKzEsMjkgQEAKK1NVTU1BUlkgPSAiR1N0cmVhbWVyIDEuMCBtdWx0aW1lZGlhIGZyYW1ld29yayIKK0RFU0NSSVBUSU9OID0gIkdTdHJlYW1lciBpcyBhIG11bHRpbWVkaWEgZnJhbWV3b3JrIGZvciBlbmNvZGluZyBhbmQgZGVjb2RpbmcgdmlkZW8gYW5kIHNvdW5kLiBcCitJdCBzdXBwb3J0cyBhIHdpZGUgcmFuZ2Ugb2YgZm9ybWF0cyBpbmNsdWRpbmcgbXAzLCBvZ2csIGF2aSwgbXBlZyBhbmQgcXVpY2t0aW1lLiIKK0hPTUVQQUdFID0gImh0dHA6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnLyIKK0JVR1RSQUNLRVIgPSAiaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvZW50ZXJfYnVnLmNnaT9wcm9kdWN0PUdzdHJlYW1lciIKK1NFQ1RJT04gPSAibXVsdGltZWRpYSIKK0xJQ0VOU0UgPSAiTEdQTHYyKyIKK0RFUEVORFMgPSAiZ2xpYi0yLjAgbGlieG1sMiBiaXNvbi1uYXRpdmUgZmxleC1uYXRpdmUiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyBnZXR0ZXh0CisKK1BBQ0tBR0VDT05GSUdbZGVidWddID0gIi0tZW5hYmxlLWRlYnVnLC0tZGlzYWJsZS1kZWJ1ZyIKK1BBQ0tBR0VDT05GSUdbY2hlY2tdID0gIi0tZW5hYmxlLWNoZWNrLC0tZGlzYWJsZS1jaGVjayIKKworRVhUUkFfT0VDT05GID0gIi0tZGlzYWJsZS1kb2Nib29rIC0tZGlzYWJsZS1ndGstZG9jIFwKKyAgICAgICAgICAgICAgICAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyBcCisgICAgICAgICAgICAgICAgLS1kaXNhYmxlLWV4YW1wbGVzIC0tZGlzYWJsZS10ZXN0cyBcCisgICAgICAgICAgICAgICAgLS1kaXNhYmxlLXZhbGdyaW5kIFwKKyAgICAgICAgICAgICAgICAiCisKK1JSRUNPTU1FTkRTXyR7UE59X3FlbXV4ODYgICAgKz0gImtlcm5lbC1tb2R1bGUtc25kLWVuczEzNzAga2VybmVsLW1vZHVsZS1zbmQtcmF3bWlkaSIKK1JSRUNPTU1FTkRTXyR7UE59X3FlbXV4ODYtNjQgKz0gImtlcm5lbC1tb2R1bGUtc25kLWVuczEzNzAga2VybmVsLW1vZHVsZS1zbmQtcmF3bWlkaSIKKworQ0FDSEVEX0NPTkZJR1VSRVZBUlMgKz0gImFjX2N2X2hlYWRlcl92YWxncmluZF92YWxncmluZF9oPW5vIgorCitGSUxFU18ke1BOfSArPSAiICR7bGliZGlyfS9nc3RyZWFtZXItMS4wLyouc28iCitGSUxFU18ke1BOfS1kZXYgKz0gIiAke2xpYmRpcn0vZ3N0cmVhbWVyLTEuMC8qLmxhICR7bGliZGlyfS9nc3RyZWFtZXItMS4wLyouYSIKK0ZJTEVTXyR7UE59LWRiZyArPSAiICR7bGliZGlyfS9nc3RyZWFtZXItMS4wLy5kZWJ1Zy8gJHtsaWJleGVjZGlyfS9nc3RyZWFtZXItMS4wLy5kZWJ1Zy8iCisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAvMDAwMS1GaXgtY3Jhc2gtd2l0aC1nc3QtaW5zcGVjdC5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAvMDAwMS1GaXgtY3Jhc2gtd2l0aC1nc3QtaW5zcGVjdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGY1Y2M1Ci0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC8wMDAxLUZpeC1jcmFzaC13aXRoLWdzdC1pbnNwZWN0LnBhdGNoCkBAIC0wLDAgKzEsMjggQEAKK0Zyb20gNmIyNmYzZGJmOWJmNTc3ZDcxNTM0YWI3NDEwZGU2NmQwNmU0NmJhMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KK0RhdGU6IFNhdCwgNiBBcHIgMjAxMyAyMzo1MjoxMSArMDIwMAorU3ViamVjdDogW1BBVENIXSBGaXggY3Jhc2ggd2l0aCBnc3QtaW5zcGVjdCBDaHJpcyBMb3JkIDxjaHJpc0BvcGVuZWRoYW5kLmNvbT4KKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IENhcmxvcyBSYWZhZWwgR2lhbmkgPGR2QHBzZXVkb3Rlcm1pbmFsLm9yZz4KKy0tLQorIHRvb2xzL2dzdC1pbnNwZWN0LmMgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS90b29scy9nc3QtaW5zcGVjdC5jIGIvdG9vbHMvZ3N0LWluc3BlY3QuYworaW5kZXggMjNiN2M0NC4uYjc5YjAyZSAxMDA2NDQKKy0tLSBhL3Rvb2xzL2dzdC1pbnNwZWN0LmMKKysrKyBiL3Rvb2xzL2dzdC1pbnNwZWN0LmMKK0BAIC0xNTU2LDcgKzE1NTYsNyBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQorICAgZ19vcHRpb25fY29udGV4dF9hZGRfbWFpbl9lbnRyaWVzIChjdHgsIG9wdGlvbnMsIEdFVFRFWFRfUEFDS0FHRSk7CisgICBnX29wdGlvbl9jb250ZXh0X2FkZF9ncm91cCAoY3R4LCBnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwICgpKTsKKyAgIGlmICghZ19vcHRpb25fY29udGV4dF9wYXJzZSAoY3R4LCAmYXJnYywgJmFyZ3YsICZlcnIpKSB7CistICAgIGdfcHJpbnRlcnIgKCJFcnJvciBpbml0aWFsaXppbmc6ICVzXG4iLCBlcnItPm1lc3NhZ2UpOworKyAgICBnX3ByaW50ZXJyICgiRXJyb3IgaW5pdGlhbGl6aW5nOiAlc1xuIiwgZXJyID8gZXJyLT5tZXNzYWdlIDogIihudWxsKSIpOworICAgICByZXR1cm4gLTE7CisgICB9CisgICBnX29wdGlvbl9jb250ZXh0X2ZyZWUgKGN0eCk7CistLSAKKzEuOC4yCisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAvMDAwMS1nc3RpbmZvLVNob3J0ZW4tX19GSUxFX18tb24tYWxsLXBsYXRmb3Jtcy5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAvMDAwMS1nc3RpbmZvLVNob3J0ZW4tX19GSUxFX18tb24tYWxsLXBsYXRmb3Jtcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjEzYzRiCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC8wMDAxLWdzdGluZm8tU2hvcnRlbi1fX0ZJTEVfXy1vbi1hbGwtcGxhdGZvcm1zLnBhdGNoCkBAIC0wLDAgKzEsNTUgQEAKK0Zyb20gODFmZWNkMzY3YjAxNmU1YWM0ZmIwYzA0Yjg0ZGE1YzQ3NGYzMGRhNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBldGVyIFVyYmFuZWMgPGdpdC51c2VyQHVyYmFuZWMubmV0PgorRGF0ZTogRnJpLCAyNyBGZWIgMjAxNSAwMToxNjo1OCArMTEwMAorU3ViamVjdDogW1BBVENIIDEvMV0gZ3N0aW5mbzogU2hvcnRlbiBfX0ZJTEVfXyBvbiBhbGwgcGxhdGZvcm1zLgorCitUaGlzIGlzIHVzZWZ1bCBub3Qgb25seSBmb3IgTVNWQywgYnV0IGFsc28gd2l0aCBnY2MvTGludXggd2hlbiBkb2luZworY3Jvc3MtY29tcGlsYXRpb24gYnVpbGRzIGFuZCBvdXQtb2YtdHJlZSBidWlsZHMuCisKK1Vwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkIFtodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MjEzXQorCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBVcmJhbmVjIDxnaXQudXNlckB1cmJhbmVjLm5ldD4KKy0tLQorIGdzdC9nc3RpbmZvLmMgfCAxMSArKysrLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9nc3QvZ3N0aW5mby5jIGIvZ3N0L2dzdGluZm8uYworaW5kZXggYjJhMzAwNS4uOGI2MWQwOSAxMDA2NDQKKy0tLSBhL2dzdC9nc3RpbmZvLmMKKysrKyBiL2dzdC9nc3RpbmZvLmMKK0BAIC00NDQsNyArNDQ0LDYgQEAgZ3N0X2RlYnVnX2xvZyAoR3N0RGVidWdDYXRlZ29yeSAqIGNhdGVnb3J5LCBHc3REZWJ1Z0xldmVsIGxldmVsLAorICAgdmFfZW5kICh2YXJfYXJncyk7CisgfQorIAorLSNpZmRlZiBHX09TX1dJTjMyCisgLyogYmFzZWQgb24gZ19iYXNlbmFtZSgpLCB3aGljaCB3ZSBjYW4ndCB1c2UgYmVjYXVzZSBpdCB3YXMgZGVwcmVjYXRlZCAqLworIHN0YXRpYyBpbmxpbmUgY29uc3QgZ2NoYXIgKgorIGdzdF9wYXRoX2Jhc2VuYW1lIChjb25zdCBnY2hhciAqIGZpbGVfbmFtZSkKK0BAIC00NjcsNyArNDY2LDYgQEAgZ3N0X3BhdGhfYmFzZW5hbWUgKGNvbnN0IGdjaGFyICogZmlsZV9uYW1lKQorIAorICAgcmV0dXJuIGZpbGVfbmFtZTsKKyB9CistI2VuZGlmCisgCisgLyoqCisgICogZ3N0X2RlYnVnX2xvZ192YWxpc3Q6CitAQCAtNDk3LDEyICs0OTUsMTEgQEAgZ3N0X2RlYnVnX2xvZ192YWxpc3QgKEdzdERlYnVnQ2F0ZWdvcnkgKiBjYXRlZ29yeSwgR3N0RGVidWdMZXZlbCBsZXZlbCwKKyAgIGdfcmV0dXJuX2lmX2ZhaWwgKGZ1bmN0aW9uICE9IE5VTEwpOworICAgZ19yZXR1cm5faWZfZmFpbCAoZm9ybWF0ICE9IE5VTEwpOworIAorLSAgLyogVGhlIHByZWRlZmluZWQgbWFjcm8gX19GSUxFX18gaXMgYWx3YXlzIHRoZSBleGFjdCBwYXRoIGdpdmVuIHRvIHRoZQorLSAgICogY29tcGlsZXIgd2l0aCBNU1ZDLCB3aGljaCBtYXkgb3IgbWF5IG5vdCBiZSB0aGUgYmFzZW5hbWUuICBXZSB3b3JrCistICAgKiBhcm91bmQgaXQgYXQgcnVudGltZSB0byBpbXByb3ZlIHRoZSByZWFkYWJpbGl0eS4gKi8KKy0jaWZkZWYgR19PU19XSU4zMgorKyAgLyogVGhlIHByZWRlZmluZWQgbWFjcm8gX19GSUxFX18gY2FuIGJlIGFuIGFic29sdXRlIHBhdGggaW4gc29tZSBidWlsZAorKyAgICogZW52aXJvbm1lbnRzLCBzdWNoIGFzIE1TVkMgb3Igb3V0LW9mLXRyZWUgY3Jvc3MtY29tcGlsZXMuIFRoaXMgbWF5CisrICAgKiBiZSBzaWduaWZpY2FudGx5IGxvbmdlciB0aGFuIHRoZSBmaWxlbmFtZS4gIFdlIHdvcmsgYXJvdW5kIGl0IGF0CisrICAgKiBydW50aW1lIHRvIGltcHJvdmUgdGhlIHJlYWRhYmlsaXR5LiAqLworICAgZmlsZSA9IGdzdF9wYXRoX2Jhc2VuYW1lIChmaWxlKTsKKy0jZW5kaWYKKyAKKyAgIG1lc3NhZ2UubWVzc2FnZSA9IE5VTEw7CisgICBtZXNzYWdlLmZvcm1hdCA9IGZvcm1hdDsKKy0tIAorMi4zLjAKKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC8wMDAyLWJhc2VzaW5rLUZpeC1Rb1MtbGF0ZW5lc3MtY2hlY2tpbmctaWYtc3ViY2xhc3MtaW1wbGUucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wLzAwMDItYmFzZXNpbmstRml4LVFvUy1sYXRlbmVzcy1jaGVja2luZy1pZi1zdWJjbGFzcy1pbXBsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTA1Y2JlCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC8wMDAyLWJhc2VzaW5rLUZpeC1Rb1MtbGF0ZW5lc3MtY2hlY2tpbmctaWYtc3ViY2xhc3MtaW1wbGUucGF0Y2gKQEAgLTAsMCArMSw3MCBAQAorRnJvbSA2OTE0NTY2ZWQ2YTg5Yzk2OTczYTU3OGFhNWVjZDAxZWU2OGNkY2ZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSmlhbiA8Smlhbi5MaUBmcmVlc2NhbGUuY29tPgorRGF0ZTogVGh1LCAxNCBNYXkgMjAxNSAxNTo0OTo0MyArMDgwMAorU3ViamVjdDogW1BBVENIXSBiYXNlc2luazogRml4IFFvUy9sYXRlbmVzcyBjaGVja2luZyBpZiBzdWJjbGFzcyBpbXBsZW1lbnRzCisgcHJlcGFyZS9wcmVwYXJlX2xpc3QgdmZ1bmNzCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK0luIGJhc2VzaW5rIGZ1bmN0aW9ucyBnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKCksIGJlbG93IGNvZGUgaXMgdXNlZCB0bworY2hlY2tpbmcgaWYgYnVmZmVyIGlzIGxhdGUgYmVmb3JlIGRvaW5nIHByZXBhcmUgY2FsbCB0byBzYXZlIHNvbWUgZWZmb3J0OgorICAgIGlmIChzeW5jYWJsZSAmJiBkb19zeW5jKQorICAgICAgbGF0ZSA9CisgICAgICAgICAgZ3N0X2Jhc2Vfc2lua19pc190b29fbGF0ZSAoYmFzZXNpbmssIG9iaiwgcnN0YXJ0LCByc3RvcCwKKyAgICAgICAgICBHU1RfQ0xPQ0tfRUFSTFksIDAsIEZBTFNFKTsKKworICAgIGlmIChHX1VOTElLRUxZIChsYXRlKSkKKyAgICAgIGdvdG8gZHJvcHBlZDsKKworQnV0IHRoaXMgY29kZSBoYXMgcHJvYmxlbSwgaXQgc2hvdWxkIGNhbGN1bGF0ZSBqaXR0ZXIgYmFzZWQgb24gY3VycmVudCBtZWRpYQorY2xvY2ssIHJhdGhlciB0aGFuIGp1c3QgcGFzc2luZyAwLiBJIGZvdW5kIGl0IHdpbGwgZHJvcCBhbGwgdGhlIGZyYW1lcyB3aGVuCityZXdpbmQgaW4gc2xvdyBzcGVlZCwgc3VjaCBhcyAtMlguCisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkyNTgKKworVXBzdHJlYW0tU3RhdHVzOiBCYWNrcG9ydCBbMS41LjFdCistLS0KKyBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgfCAgIDI2ICsrKysrKysrKysrKysrKysrKysrKystLS0tCisgMSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgYi9saWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMKK2luZGV4IGE1MDU2OTUuLjVmYjJkNmEgMTAwNjQ0CistLS0gYS9saWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMKKysrKyBiL2xpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYworQEAgLTMzNjksMTAgKzMzNjksMjggQEAgZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCAoR3N0QmFzZVNpbmsgKiBiYXNlc2luaywgR3N0UGFkICogcGFkLAorICAgICBpZiAoR19VTkxJS0VMWSAoc3RlcHBlZCkpCisgICAgICAgZ290byBkcm9wcGVkOworIAorLSAgICBpZiAoc3luY2FibGUgJiYgZG9fc3luYykKKy0gICAgICBsYXRlID0KKy0gICAgICAgICAgZ3N0X2Jhc2Vfc2lua19pc190b29fbGF0ZSAoYmFzZXNpbmssIG9iaiwgcnN0YXJ0LCByc3RvcCwKKy0gICAgICAgICAgR1NUX0NMT0NLX0VBUkxZLCAwLCBGQUxTRSk7CisrICAgIGlmIChzeW5jYWJsZSAmJiBkb19zeW5jKSB7CisrICAgICAgR3N0Q2xvY2sgKmNsb2NrOworKworKyAgICAgIEdTVF9PQkpFQ1RfTE9DSyAoYmFzZXNpbmspOworKyAgICAgIGNsb2NrID0gR1NUX0VMRU1FTlRfQ0xPQ0sgKGJhc2VzaW5rKTsKKysgICAgICBpZiAoY2xvY2sgJiYgR1NUX1NUQVRFIChiYXNlc2luaykgPT0gR1NUX1NUQVRFX1BMQVlJTkcpIHsKKysgICAgICAgIEdzdENsb2NrVGltZSBiYXNlX3RpbWU7CisrICAgICAgICBHc3RDbG9ja1RpbWUgc3RpbWU7CisrICAgICAgICBHc3RDbG9ja1RpbWUgbm93OworKworKyAgICAgICAgYmFzZV90aW1lID0gR1NUX0VMRU1FTlRfQ0FTVCAoYmFzZXNpbmspLT5iYXNlX3RpbWU7CisrICAgICAgICBzdGltZSA9IGJhc2VfdGltZSArIGdzdF9iYXNlX3NpbmtfYWRqdXN0X3RpbWUgKGJhc2VzaW5rLCByc3RhcnQpOworKyAgICAgICAgbm93ID0gZ3N0X2Nsb2NrX2dldF90aW1lIChjbG9jayk7CisrICAgICAgICBHU1RfT0JKRUNUX1VOTE9DSyAoYmFzZXNpbmspOworKworKyAgICAgICAgbGF0ZSA9CisrICAgICAgICAgICAgZ3N0X2Jhc2Vfc2lua19pc190b29fbGF0ZSAoYmFzZXNpbmssIG9iaiwgcnN0YXJ0LCByc3RvcCwKKysgICAgICAgICAgICBHU1RfQ0xPQ0tfRUFSTFksIEdTVF9DTE9DS19ESUZGIChzdGltZSwgbm93KSwgRkFMU0UpOworKyAgICAgIH0gZWxzZSB7CisrICAgICAgICBHU1RfT0JKRUNUX1VOTE9DSyAoYmFzZXNpbmspOworKyAgICAgIH0KKysgICAgfQorIAorICAgICBpZiAoR19VTkxJS0VMWSAobGF0ZSkpCisgICAgICAgZ290byBkcm9wcGVkOworLS0gCisxLjcuOS41CisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAvaW5wdXRzZWxlY3Rvci1zdGlja3ktZXZlbnRzLWhhdmVuLXQtc2VuZC1vdXQtd2hlbi1hYy0xLTQtMS5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjAvaW5wdXRzZWxlY3Rvci1zdGlja3ktZXZlbnRzLWhhdmVuLXQtc2VuZC1vdXQtd2hlbi1hYy0xLTQtMS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNTBjZTZmCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMC9pbnB1dHNlbGVjdG9yLXN0aWNreS1ldmVudHMtaGF2ZW4tdC1zZW5kLW91dC13aGVuLWFjLTEtNC0xLnBhdGNoCkBAIC0wLDAgKzEsMTY3IEBACitGcm9tIDgzYmVkOTBjMzA2ZWQzMTg1ZDQ4ZmViZjY0NDExNzdkNjM4ZjczNDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTb25nIEJpbmcgPGIwNjQ5OEBmcmVlc2NhbGUuY29tPgorRGF0ZTogV2VkLCAyNCBEZWMgMjAxNCAxMDoxMzo1MSArMDgwMAorU3ViamVjdDogW1BBVENIXSBpbnB1dHNlbGVjdG9yOiBzdGlja3kgZXZlbnRzIGhhdmVuJ3Qgc2VuZCBvdXQgd2hlbiBhY3RpdmUKKyB0cmFjayByZWFjaCBFT1MKKworRU9TIGV2ZW50IGhhc24ndCBiZWVuIHNlbmQgdG8gZG93bi1lbGVtZW50LiBUaGUgcmVzb2x1dGlvbiBpcyBibG9jayBFT1MgZXZlbnQKK29mIGluYWN0aXZlIHBhZCwgc2VuZCB0aGUgZXZlbnQgYWZ0ZXIgdGhlIHBhZCBhY3RpdmVkLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwOTQ5CisKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQgWzEuNS4xXQorCitTaWduZWQtb2ZmLWJ5OiBTb25nIEJpbmcgPGIwNjQ5OEBmcmVlc2NhbGUuY29tPgorLS0tCisgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmMgfCAgIDU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCisgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmggfCAgICAxICsKKyAyIGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmMgYi9wbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYworaW5kZXggZmI1MDgwMi4uNDQ2MWY3YyAxMDA2NDQKKy0tLSBhL3BsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jCisrKysgYi9wbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYworQEAgLTQ0MCw2ICs0NDAsMTcgQEAgZ3N0X3NlbGVjdG9yX3BhZF9pdGVyYXRlX2xpbmtlZF9wYWRzIChHc3RQYWQgKiBwYWQsIEdzdE9iamVjdCAqIHBhcmVudCkKKyB9CisgCisgc3RhdGljIGdib29sZWFuCisrZ3N0X2lucHV0X3NlbGVjdG9yX2Vvc193YWl0IChHc3RJbnB1dFNlbGVjdG9yICogc2VsZiwgR3N0U2VsZWN0b3JQYWQgKiBwYWQpCisreworKyAgd2hpbGUgKCFzZWxmLT5lb3MgJiYgIXNlbGYtPmZsdXNoaW5nICYmICFwYWQtPmZsdXNoaW5nKSB7CisrICAgIC8qIHdlIGNhbiBiZSB1bmxvY2tlZCBoZXJlIHdoZW4gd2UgYXJlIHNodXR0aW5nIGRvd24gKGZsdXNoaW5nKSBvciB3aGVuIHdlCisrICAgICAqIGdldCB1bmJsb2NrZWQgKi8KKysgICAgR1NUX0lOUFVUX1NFTEVDVE9SX1dBSVQgKHNlbGYpOworKyAgfQorKyAgcmV0dXJuIHNlbGYtPmZsdXNoaW5nOworK30KKysKKytzdGF0aWMgZ2Jvb2xlYW4KKyBnc3Rfc2VsZWN0b3JfcGFkX2V2ZW50IChHc3RQYWQgKiBwYWQsIEdzdE9iamVjdCAqIHBhcmVudCwgR3N0RXZlbnQgKiBldmVudCkKKyB7CisgICBnYm9vbGVhbiByZXMgPSBUUlVFOworQEAgLTQ4Niw2ICs0OTcsNyBAQCBnc3Rfc2VsZWN0b3JfcGFkX2V2ZW50IChHc3RQYWQgKiBwYWQsIEdzdE9iamVjdCAqIHBhcmVudCwgR3N0RXZlbnQgKiBldmVudCkKKyAgICAgY2FzZSBHU1RfRVZFTlRfRkxVU0hfU1RBUlQ6CisgICAgICAgLyogVW5ibG9jayB0aGUgcGFkIGlmIGl0J3Mgd2FpdGluZyAqLworICAgICAgIHNlbHBhZC0+Zmx1c2hpbmcgPSBUUlVFOworKyAgICAgIHNlbC0+ZW9zID0gRkFMU0U7CisgICAgICAgR1NUX0lOUFVUX1NFTEVDVE9SX0JST0FEQ0FTVCAoc2VsKTsKKyAgICAgICBicmVhazsKKyAgICAgY2FzZSBHU1RfRVZFTlRfRkxVU0hfU1RPUDoKK0BAIC01MjMsMjEgKzUzNSwxMiBAQCBnc3Rfc2VsZWN0b3JfcGFkX2V2ZW50IChHc3RQYWQgKiBwYWQsIEdzdE9iamVjdCAqIHBhcmVudCwgR3N0RXZlbnQgKiBldmVudCkKKyAgICAgY2FzZSBHU1RfRVZFTlRfRU9TOgorICAgICAgIHNlbHBhZC0+ZW9zID0gVFJVRTsKKyAKKy0gICAgICBpZiAoZm9yd2FyZCkgeworLSAgICAgICAgc2VscGFkLT5lb3Nfc2VudCA9IFRSVUU7CistICAgICAgfSBlbHNlIHsKKy0gICAgICAgIEdzdFNlbGVjdG9yUGFkICphY3RpdmVfc2VscGFkOworLQorLSAgICAgICAgLyogSWYgdGhlIGFjdGl2ZSBzaW5rcGFkIGlzIGluIEVPUyBzdGF0ZSBidXQgRU9TCistICAgICAgICAgKiB3YXMgbm90IHNlbnQgZG93bnN0cmVhbSB0aGlzIG1lYW5zIHRoYXQgdGhlIHBhZAorLSAgICAgICAgICogZ290IEVPUyBiZWZvcmUgaXQgd2FzIHNldCBhcyBhY3RpdmUgcGFkIGFuZCB0aGF0CistICAgICAgICAgKiB0aGUgcHJldmlvdXNseSBhY3RpdmUgcGFkIGdvdCBFT1MgYWZ0ZXIgaXQgd2FzCistICAgICAgICAgKiBhY3RpdmUKKy0gICAgICAgICAqLworLSAgICAgICAgYWN0aXZlX3NlbHBhZCA9IEdTVF9TRUxFQ1RPUl9QQUQgKGFjdGl2ZV9zaW5rcGFkKTsKKy0gICAgICAgIGZvcndhcmQgPSAoYWN0aXZlX3NlbHBhZC0+ZW9zICYmICFhY3RpdmVfc2VscGFkLT5lb3Nfc2VudCk7CistICAgICAgICBhY3RpdmVfc2VscGFkLT5lb3Nfc2VudCA9IFRSVUU7CisrICAgICAgaWYgKCFmb3J3YXJkKSB7CisrICAgICAgICAvKiBibG9ja2VkIHVudGlsIGFjdGl2ZSB0aGUgc2luZCBwYWQgb3IgZmx1c2ggKi8KKysgICAgICAgIGdzdF9pbnB1dF9zZWxlY3Rvcl9lb3Nfd2FpdCAoc2VsLCBzZWxwYWQpOworKyAgICAgICAgZm9yd2FyZCA9IFRSVUU7CisgICAgICAgfQorKyAgICAgIHNlbHBhZC0+ZW9zX3NlbnQgPSBUUlVFOworICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKHBhZCwgInJlY2VpdmVkIEVPUyIpOworICAgICAgIGJyZWFrOworICAgICBjYXNlIEdTVF9FVkVOVF9HQVA6eworQEAgLTY3Niw2ICs2NzksMTIgQEAgZ3N0X2lucHV0X3NlbGVjdG9yX3dhaXRfcnVubmluZ190aW1lIChHc3RJbnB1dFNlbGVjdG9yICogc2VsLAorICAgICAgICAgZ3N0X2lucHV0X3NlbGVjdG9yX2FjdGl2YXRlX3NpbmtwYWQgKHNlbCwgR1NUX1BBRF9DQVNUIChzZWxwYWQpKTsKKyAgICAgYWN0aXZlX3NlbHBhZCA9IEdTVF9TRUxFQ1RPUl9QQURfQ0FTVCAoYWN0aXZlX3NpbmtwYWQpOworIAorKyAgICBpZiAoc2VsLT5lb3MpIHsKKysgICAgICBHU1RfREVCVUdfT0JKRUNUIChzZWwsICJOb3Qgd2FpdGluZyBiZWNhdXNlIGlucHV0c2VsZWN0b3IgcmVhY2ggRU9TLiIpOworKyAgICAgIEdTVF9JTlBVVF9TRUxFQ1RPUl9VTkxPQ0sgKHNlbCk7CisrICAgICAgcmV0dXJuIEZBTFNFOworKyAgICB9CisrCisgICAgIGlmIChzZWctPmZvcm1hdCAhPSBHU1RfRk9STUFUX1RJTUUpIHsKKyAgICAgICBHU1RfREVCVUdfT0JKRUNUIChzZWxwYWQsCisgICAgICAgICAgICJOb3Qgd2FpdGluZyBiZWNhdXNlIHdlIGRvbid0IGhhdmUgYSBUSU1FIHNlZ21lbnQiKTsKK0BAIC05NzEsNiArOTgwLDEyIEBAIGdzdF9zZWxlY3Rvcl9wYWRfY2hhaW4gKEdzdFBhZCAqIHBhZCwgR3N0T2JqZWN0ICogcGFyZW50LCBHc3RCdWZmZXIgKiBidWYpCisgICAgICAgR1NUX1RJTUVfQVJHUyAoR1NUX0JVRkZFUl9USU1FU1RBTVAgKGJ1ZikpKTsKKyAKKyAgIEdTVF9JTlBVVF9TRUxFQ1RPUl9MT0NLIChzZWwpOworKyAgaWYgKHNlbC0+ZW9zKSB7CisrICAgIEdTVF9ERUJVR19PQkpFQ1QgKHBhZCwgImlucHV0c2VsZWN0b3IgZW9zLiIpOworKyAgICBHU1RfSU5QVVRfU0VMRUNUT1JfVU5MT0NLIChzZWwpOworKyAgICBnb3RvIGVvczsKKysgIH0KKysKKyAgIC8qIHdhaXQgb3IgY2hlY2sgZm9yIGZsdXNoaW5nICovCisgICBpZiAoZ3N0X2lucHV0X3NlbGVjdG9yX3dhaXQgKHNlbCwgc2VscGFkKSkgeworICAgICBHU1RfSU5QVVRfU0VMRUNUT1JfVU5MT0NLIChzZWwpOworQEAgLTExNTEsNiArMTE2NiwxMyBAQCBmbHVzaGluZzoKKyAgICAgcmVzID0gR1NUX0ZMT1dfRkxVU0hJTkc7CisgICAgIGdvdG8gZG9uZTsKKyAgIH0KKytlb3M6CisrICB7CisrICAgIEdTVF9ERUJVR19PQkpFQ1QgKHBhZCwgIldlIGFyZSBlb3MsIGRpc2NhcmQgYnVmZmVyICVwIiwgYnVmKTsKKysgICAgZ3N0X2J1ZmZlcl91bnJlZiAoYnVmKTsKKysgICAgcmVzID0gR1NUX0ZMT1dfRU9TOworKyAgICBnb3RvIGRvbmU7CisrICB9CisgfQorIAorIHN0YXRpYyB2b2lkIGdzdF9pbnB1dF9zZWxlY3Rvcl9kaXNwb3NlIChHT2JqZWN0ICogb2JqZWN0KTsKK0BAIC0xMzA5LDYgKzEzMzEsNyBAQCBnc3RfaW5wdXRfc2VsZWN0b3JfaW5pdCAoR3N0SW5wdXRTZWxlY3RvciAqIHNlbCkKKyAgIGdfbXV0ZXhfaW5pdCAoJnNlbC0+bG9jayk7CisgICBnX2NvbmRfaW5pdCAoJnNlbC0+Y29uZCk7CisgICBzZWwtPmJsb2NrZWQgPSBGQUxTRTsKKysgIHNlbC0+ZW9zID0gRkFMU0U7CisgCisgICAvKiBsZXRzIGdpdmUgYSBjaGFuZ2UgZm9yIGRvd25zdHJlYW0gdG8gZG8gc29tZXRoaW5nIG9uCisgICAgKiBhY3RpdmUtcGFkIGNoYW5nZSBiZWZvcmUgd2Ugc3RhcnQgcHVzaGluZyBuZXcgYnVmZmVycyAqLworQEAgLTEzNzcsNiArMTQwMCwxMSBAQCBnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X2FjdGl2ZV9wYWQgKEdzdElucHV0U2VsZWN0b3IgKiBzZWxmLCBHc3RQYWQgKiBwYWQpCisgICBHU1RfREVCVUdfT0JKRUNUIChzZWxmLCAiTmV3IGFjdGl2ZSBwYWQgaXMgJSIgR1NUX1BUUl9GT1JNQVQsCisgICAgICAgc2VsZi0+YWN0aXZlX3NpbmtwYWQpOworIAorKyAgaWYgKG9sZCAhPSBuZXcgJiYgbmV3LT5lb3MgJiYgIW5ldy0+ZW9zX3NlbnQpIHsKKysgICAgc2VsZi0+ZW9zID0gVFJVRTsKKysgICAgR1NUX0lOUFVUX1NFTEVDVE9SX0JST0FEQ0FTVCAoc2VsZik7CisrICB9CisrCisgICByZXR1cm4gVFJVRTsKKyB9CisgCitAQCAtMTc3MSw2ICsxNzk5LDcgQEAgZ3N0X2lucHV0X3NlbGVjdG9yX2NoYW5nZV9zdGF0ZSAoR3N0RWxlbWVudCAqIGVsZW1lbnQsCisgICBzd2l0Y2ggKHRyYW5zaXRpb24pIHsKKyAgICAgY2FzZSBHU1RfU1RBVEVfQ0hBTkdFX1JFQURZX1RPX1BBVVNFRDoKKyAgICAgICBHU1RfSU5QVVRfU0VMRUNUT1JfTE9DSyAoc2VsZik7CisrICAgICAgc2VsZi0+ZW9zID0gRkFMU0U7CisgICAgICAgc2VsZi0+YmxvY2tlZCA9IEZBTFNFOworICAgICAgIHNlbGYtPmZsdXNoaW5nID0gRkFMU0U7CisgICAgICAgR1NUX0lOUFVUX1NFTEVDVE9SX1VOTE9DSyAoc2VsZik7CitAQCAtMTc3OSw2ICsxODA4LDcgQEAgZ3N0X2lucHV0X3NlbGVjdG9yX2NoYW5nZV9zdGF0ZSAoR3N0RWxlbWVudCAqIGVsZW1lbnQsCisgICAgICAgLyogZmlyc3QgdW5sb2NrIGJlZm9yZSB3ZSBjYWxsIHRoZSBwYXJlbnQgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uLCB3aGljaAorICAgICAgICAqIHRyaWVzIHRvIGFjcXVpcmUgdGhlIHN0cmVhbSBsb2NrIHdoZW4gZ29pbmcgdG8gcmVhZHkuICovCisgICAgICAgR1NUX0lOUFVUX1NFTEVDVE9SX0xPQ0sgKHNlbGYpOworKyAgICAgIHNlbGYtPmVvcyA9IFRSVUU7CisgICAgICAgc2VsZi0+YmxvY2tlZCA9IEZBTFNFOworICAgICAgIHNlbGYtPmZsdXNoaW5nID0gVFJVRTsKKyAgICAgICBHU1RfSU5QVVRfU0VMRUNUT1JfQlJPQURDQVNUIChzZWxmKTsKK2RpZmYgLS1naXQgYS9wbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaCBiL3BsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oCitpbmRleCA5NmM2ODBmLi45YmY5MjRmIDEwMDY0NAorLS0tIGEvcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmgKKysrKyBiL3BsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oCitAQCAtNzcsNiArNzcsNyBAQCBzdHJ1Y3QgX0dzdElucHV0U2VsZWN0b3IgeworICAgR011dGV4IGxvY2s7CisgICBHQ29uZCBjb25kOworICAgZ2Jvb2xlYW4gYmxvY2tlZDsKKysgIGdib29sZWFuIGVvczsKKyAgIGdib29sZWFuIGZsdXNoaW5nOworIH07CisgCistLSAKKzEuNy45LjUKKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMF8xLjQuNS5iYiBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjBfMS40LjUuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI1ODc1NAotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2dzdHJlYW1lci9nc3RyZWFtZXIxLjBfMS40LjUuYmIKQEAgLTAsMCArMSwxNyBAQAoraW5jbHVkZSBnc3RyZWFtZXIxLjAuaW5jCisKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTY3NjJlZDQ0MmIzODIyMzg3YTUxYzkyZDkyOGVhZDBkIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL2dzdC9nc3QuaDtiZWdpbmxpbmU9MTtlbmRsaW5lPTIxO21kNT1lMDU5MTM4NDgxMjA1ZWUyYzZmYzFjMDc5YzAxNmQwZCIKKworU1JDX1VSSSA9ICIgXAorICAgIGh0dHA6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3NyYy9nc3RyZWFtZXIvZ3N0cmVhbWVyLSR7UFZ9LnRhci54eiBcCisgICAgZmlsZTovLzAwMDEtRml4LWNyYXNoLXdpdGgtZ3N0LWluc3BlY3QucGF0Y2ggXAorICAgIGZpbGU6Ly8wMDAxLWdzdGluZm8tU2hvcnRlbi1fX0ZJTEVfXy1vbi1hbGwtcGxhdGZvcm1zLnBhdGNoIFwKKyAgICBmaWxlOi8vaW5wdXRzZWxlY3Rvci1zdGlja3ktZXZlbnRzLWhhdmVuLXQtc2VuZC1vdXQtd2hlbi1hYy0xLTQtMS5wYXRjaCBcCisgICAgZmlsZTovLzAwMDItYmFzZXNpbmstRml4LVFvUy1sYXRlbmVzcy1jaGVja2luZy1pZi1zdWJjbGFzcy1pbXBsZS5wYXRjaCBcCisiCitTUkNfVVJJW21kNXN1bV0gPSAiODhhOTI4OWM2NGE0OTUwZWJiNGY1NDQ5ODAyMzQyODkiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNDA4MDFhYTdmOTc5MDI0NTI2MjU4YTBlOTQ3MDdiYTQyYjhhYjZmN2QyMjA2ZTU2YWRiYzQ0MzMxNTVjYjBhZSIKKworUyA9ICIke1dPUktESVJ9L2dzdHJlYW1lci0ke1BWfSIKKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMF9naXQuYmIgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9nc3RyZWFtZXIvZ3N0cmVhbWVyMS4wX2dpdC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjAwZDMxCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvZ3N0cmVhbWVyL2dzdHJlYW1lcjEuMF9naXQuYmIKQEAgLTAsMCArMSwxOCBAQAorREVGQVVMVF9QUkVGRVJFTkNFID0gIi0xIgorCitpbmNsdWRlIGdzdHJlYW1lcjEuMC5pbmMKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9Njc2MmVkNDQyYjM4MjIzODdhNTFjOTJkOTI4ZWFkMGQgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vZ3N0L2dzdC5oO2JlZ2lubGluZT0xO2VuZGxpbmU9MjE7bWQ1PWUwNTkxMzg0ODEyMDVlZTJjNmZjMWMwNzljMDE2ZDBkIgorCitTUkNfVVJJID0gImdpdDovL2Fub25naXQuZnJlZWRlc2t0b3Aub3JnL2dzdHJlYW1lci9nc3RyZWFtZXI7YnJhbmNoPW1hc3RlciIKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK1NSQ1JFViA9ICIzYjgxODFhOGM1NTBlNzRhY2FiYTRlOGM1NWJkYzY0OWZhNTUxZGM5IgorCitkb19jb25maWd1cmVfcHJlcGVuZCgpIHsKKwljZCAke1N9CisJLi9hdXRvZ2VuLnNoIC0tbm9jb25maWd1cmUKKwljZCAke0J9Cit9CisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xhbWUvbGFtZS9sYW1lLTMuOTkuNV9maXhfZm9yX2F1dG9tYWtlLTEuMTIueC5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xhbWUvbGFtZS9sYW1lLTMuOTkuNV9maXhfZm9yX2F1dG9tYWtlLTEuMTIueC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzFhMWQwCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGFtZS9sYW1lL2xhbWUtMy45OS41X2ZpeF9mb3JfYXV0b21ha2UtMS4xMi54LnBhdGNoCkBAIC0wLDAgKzEsNTkgQEAKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitGaXggdGhpcyBraW5kIG9mIGVycm9ycyB3aXRoIGF1dG9tYWtlIDEuMTIueDoKK3wgZG9jL21hbi9NYWtlZmlsZS5hbTozOiBlcnJvcjogYXV0b21hdGljIGRlLUFOU0ktZmljYXRpb24gc3VwcG9ydCBoYXMgYmVlbiByZW1vdmVkCit8IGF1dG9yZWNvbmY6IGF1dG9tYWtlIGZhaWxlZCB3aXRoIGV4aXQgc3RhdHVzOiAxCisKK1NpZ25lZC1PZmYtYnk6IE5pdGluIEEgS2FtYmxlIDxuaXRpbi5hLmthbWJsZUBpbnRlbC5jb20+CisyMDEyLzA3LzEzCisKK0luZGV4OiBsYW1lLTMuOTkuNS9jb25maWd1cmUuaW4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBsYW1lLTMuOTkuNS5vcmlnL2NvbmZpZ3VyZS5pbgorKysrIGxhbWUtMy45OS41L2NvbmZpZ3VyZS5pbgorQEAgLTc3LDkgKzc3LDYgQEAgaWYgdGVzdCAiJHtHQ0N9IiA9ICJ5ZXMiOyB0aGVuCisgCUFDX01TR19SRVNVTFQoJHtHQ0NfdmVyc2lvbn0pCisgZmkKKyAKKy1kbmwgbW9yZSBhdXRvbWFrZSBzdHVmZgorLUFNX0NfUFJPVE9UWVBFUworLQorIEFDX0NIRUNLX0hFQURFUihkbWFsbG9jLmgpCisgaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfZG1hbGxvY19ofSIgPSAieWVzIjsgdGhlbgorIAlBTV9XSVRIX0RNQUxMT0MKK0luZGV4OiBsYW1lLTMuOTkuNS9kb2MvaHRtbC9NYWtlZmlsZS5hbQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGxhbWUtMy45OS41Lm9yaWcvZG9jL2h0bWwvTWFrZWZpbGUuYW0KKysrKyBsYW1lLTMuOTkuNS9kb2MvaHRtbC9NYWtlZmlsZS5hbQorQEAgLTEsNiArMSw2IEBACisgIyMgJElkOiBNYWtlZmlsZS5hbSx2IDEuNyAyMDEwLzA5LzMwIDIwOjU4OjQwIGphejAwMSBFeHAgJAorIAorLUFVVE9NQUtFX09QVElPTlMgPSBmb3JlaWduIGFuc2kya25yCisrQVVUT01BS0VfT1BUSU9OUyA9IGZvcmVpZ24KKyAKKyBkb2NkaXIgPSAkKGRhdGFkaXIpL2RvYworIHBrZ2RvY2RpciA9ICQoZG9jZGlyKS8kKFBBQ0tBR0UpCitJbmRleDogbGFtZS0zLjk5LjUvbGlibXAzbGFtZS9pMzg2L01ha2VmaWxlLmFtCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbGFtZS0zLjk5LjUub3JpZy9saWJtcDNsYW1lL2kzODYvTWFrZWZpbGUuYW0KKysrKyBsYW1lLTMuOTkuNS9saWJtcDNsYW1lL2kzODYvTWFrZWZpbGUuYW0KK0BAIC0xLDYgKzEsNiBAQAorICMjICRJZDogTWFrZWZpbGUuYW0sdiAxLjI2IDIwMTEvMDQvMDQgMDk6NDI6MzQgYWxlaWRpbmdlciBFeHAgJAorIAorLUFVVE9NQUtFX09QVElPTlMgPSBmb3JlaWduICQodG9wX3NyY2RpcikvYW5zaTJrbnIKKytBVVRPTUFLRV9PUFRJT05TID0gZm9yZWlnbgorIAorIERFRlMgPSBAREVGU0AgQENPTkZJR19ERUZTQAorIAorSW5kZXg6IGxhbWUtMy45OS41L2RvYy9tYW4vTWFrZWZpbGUuYW0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBsYW1lLTMuOTkuNS5vcmlnL2RvYy9tYW4vTWFrZWZpbGUuYW0KKysrKyBsYW1lLTMuOTkuNS9kb2MvbWFuL01ha2VmaWxlLmFtCitAQCAtMSw2ICsxLDYgQEAKKyAjIyAkSWQ6IE1ha2VmaWxlLmFtLHYgMS4xIDIwMDAvMTAvMjIgMTE6Mzk6NDQgYWxlaWRpbmdlciBFeHAgJAorIAorLUFVVE9NQUtFX09QVElPTlMgPSBmb3JlaWduIGFuc2kya25yCisrQVVUT01BS0VfT1BUSU9OUyA9IGZvcmVpZ24KKyAKKyBtYW5fTUFOUyA9IGxhbWUuMQorIEVYVFJBX0RJU1QgPSAke21hbl9NQU5TfQpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGFtZS9sYW1lL25vLWd0azEucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9sYW1lL2xhbWUvbm8tZ3RrMS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODhkN2YxCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGFtZS9sYW1lL25vLWd0azEucGF0Y2gKQEAgLTAsMCArMSwyMCBAQAorVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQorCisjIEFjcXVpcmVkIGZyb20gT3BlbkVtYmVkZGVkCisKKy0tLSBsYW1lLTMuOTYuMS9jb25maWd1cmUuaW5+bm8tZ3RrMS5wYXRjaAkyMDA0LTA3LTI1IDE1OjUyOjEyLjAwMDAwMDAwMCArMDEwMAorKysrIGxhbWUtMy45Ni4xL2NvbmZpZ3VyZS5pbgkyMDA0LTA5LTEwIDE1OjU0OjM5LjAwMDAwMDAwMCArMDEwMAorQEAgLTM2Myw3ICszNjMsMTIgQEAKKyAKKyBkbmwgY29uZmlndXJlIHVzZSBvZiBmZWF0dXJlcworIAorLUFNX1BBVEhfR1RLKDEuMi4wLCBIQVZFX0dUSz0ieWVzIiwgSEFWRV9HVEs9Im5vIikKKysjQU1fUEFUSF9HVEsoMS4yLjAsIEhBVkVfR1RLPSJ5ZXMiLCBIQVZFX0dUSz0ibm8iKQorK0hBVkVfR1RLPSJubyIKKytHVEtfQ0ZMQUdTPSIiCisrR1RLX0xJQlM9IiIKKytBQ19TVUJTVChHVEtfQ0ZMQUdTKQorK0FDX1NVQlNUKEdUS19MSUJTKQorCisgZG5sIEVsZWN0cmljRmVuY2UgbWFsbG9jIGRlYnVnZ2luZworIEFDX01TR19DSEVDS0lORyh1c2Ugb2YgRWxlY3RyaWNGZW5jZSBtYWxsb2MgZGVidWdnaW5nKQpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGFtZS9sYW1lXzMuOTkuNS5iYiBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xhbWUvbGFtZV8zLjk5LjUuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQ3NzYxMQotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xhbWUvbGFtZV8zLjk5LjUuYmIKQEAgLTAsMCArMSwzMCBAQAorU1VNTUFSWSA9ICJIaWdoIHF1YWxpdHkgTVAzIGF1ZGlvIGVuY29kZXIiCitIT01FUEFHRSA9ICJodHRwOi8vbGFtZS5zb3VyY2Vmb3JnZS5uZXQvIgorQlVHVFJBQ0tFUiA9ICJodHRwOi8vc291cmNlZm9yZ2UubmV0L3RyYWNrZXIvP2dyb3VwX2lkPTI5MCZhdGlkPTEwMDI5MCIKK1NFQ1RJT04gPSAiY29uc29sZS91dGlscyIKK0xJQ0VOU0UgPSAiTEdQTHYyKyIKK0xJQ0VOU0VfRkxBR1MgPSAiY29tbWVyY2lhbCIKKworREVQRU5EUyA9ICJuY3Vyc2VzIGdldHRleHQtbmF0aXZlIgorCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1jNDZiZGEwMGZmYmIwYmExZGFjMjJmOGQwODdmNTRkOSBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9pbmNsdWRlL2xhbWUuaDtiZWdpbmxpbmU9MTtlbmRsaW5lPTIwO21kNT1hMjI1ODE4MmM1OTNjMzk4ZDE1YTQ4MjYyMTMwYTkyYiBcCisiCitQUiA9ICJyMSIKKworU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vbGFtZS9sYW1lLSR7UFZ9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9uby1ndGsxLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2xhbWUtMy45OS41X2ZpeF9mb3JfYXV0b21ha2UtMS4xMi54LnBhdGNoICIKKworU1JDX1VSSVttZDVzdW1dID0gIjg0ODM1YjMxM2Q0YThiNjhmNTM0OTgxNmQzM2UwN2NlIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjI0MzQ2YjQxNThlNGFmM2JkOWYyZTE5NGJiMjNlYjQ3M2M3NWZiNzM3NzAxMTUyMzM1MzE5NmIxOWI5YTIzZmYiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZworCitQQUNLQUdFUyArPSAibGlibXAzbGFtZSBsaWJtcDNsYW1lLWRldiIKK0ZJTEVTXyR7UE59ID0gIiR7YmluZGlyfS9sYW1lIgorRklMRVNfbGlibXAzbGFtZSA9ICIke2xpYmRpcn0vbGlibXAzbGFtZS5zby4qIgorRklMRVNfbGlibXAzbGFtZS1kZXYgPSAiJHtpbmNsdWRlZGlyfSAke2xpYmRpcn0vKiIKK0ZJTEVTXyR7UE59LWRldiA9ICIiCisKK0NBQ0hFRF9DT05GSUdVUkVWQVJTX2FwcGVuZF94ODYgPSAiIGFjX2N2X2hlYWRlcl9lbW1pbnRyaW5faD1ubyBhY19jdl9oZWFkZXJfeG1taW50cmluX2g9bm8iCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJhNTIvbGliYTUyL2J1aWxkY2xlYW51cC5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmE1Mi9saWJhNTIvYnVpbGRjbGVhbnVwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxNjgxMDAKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJhNTIvbGliYTUyL2J1aWxkY2xlYW51cC5wYXRjaApAQCAtMCwwICsxLDg5IEBACitJdCBtYWtlcyBtdWNoIG1vcmUgc2Vuc2UgdG8gY29udHJvbCBvdXIgb3duIENGTEFHUyBhbmQgYXZvaWRpbmcgZlBJQyBicmVha3MKK3NvbWUgYXJjaGVzIHRvby4gQXNzdW1lIHdlIGtub3cgd2hhdCB3ZSdyZSBkb2luZyBhbmQgcmVtb3ZlIGFsbCB0aGUgbWVzc2luZyAKK2Fyb3VuZC4KKworUlAgMjMvMi8xMAorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCisKK0luZGV4OiBhNTJkZWMtMC43LjQvY29uZmlndXJlLmluCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gYTUyZGVjLTAuNy40Lm9yaWcvY29uZmlndXJlLmluCTIwMTAtMDItMjMgMTQ6NTE6NTAuMDAwMDAwMDAwICswMDAwCisrKysgYTUyZGVjLTAuNy40L2NvbmZpZ3VyZS5pbgkyMDEwLTAyLTIzIDE0OjUyOjM2LjAwMDAwMDAwMCArMDAwMAorQEAgLTE0LDYyICsxNCw2IEBACisgQUNfUFJPR19DQworIEFDX1BST0dfR0NDX1RSQURJVElPTkFMCisgCistaWYgdGVzdCB4IiRHQ0MiID0geCJ5ZXMiOyB0aGVuCistCistICAgIGRubCBHQ0Mtc3BlY2lmaWMgZmxhZ3MgLSB0cnkgdG8gb3B0aW1pemUgdGhlbSBzb21ldGltZQorLSAgICBkbmwgLVdhbGwgLVdlcnJvciBtb3ZlZCB0byB0aGUgZW5kIHRvIG5vdCBkaXN0dXJiIHRoZSBjb25maWd1cmUgc2NyaXB0CistCistICAgIGRubCAtTzMKKy0gICAgY2hhbmdlcXVvdGUoPDwsPj4pCistICAgIE9QVF9DRkxBR1M9YGVjaG8gIiRDRkxBR1MifHNlZCAicy8tT1swLTldKi8vZyJgCistICAgIGNoYW5nZXF1b3RlKFssXSkKKy0gICAgT1BUX0NGTEFHUz0iJE9QVF9DRkxBR1MgLU8zIgorLSAgICBBQ19UUllfQ0ZMQUdTKFskT1BUX0NGTEFHU10sW0NGTEFHUz0kT1BUX0NGTEFHU10pCistCistICAgIGRubCAtZm9taXQtZnJhbWUtcG9pbnRlcgorLSAgICBPUFRfQ0ZMQUdTPSIkQ0ZMQUdTIC1mb21pdC1mcmFtZS1wb2ludGVyIgorLSAgICBBQ19UUllfQ0ZMQUdTKFskT1BUX0NGTEFHU10sW0NGTEFHUz0kT1BUX0NGTEFHU10pCistCistICAgIGRubCBhcmNoLXNwZWNpZmljIGZsYWdzCistICAgIGNhc2UgIiRob3N0IiBpbgorLSAgICBpPzg2LSogfCBrPy0qKQorLQljYXNlICIkaG9zdCIgaW4KKy0JaTM4Ni0qKSBPUFRfQ0ZMQUdTPSIkQ0ZMQUdTIC1tY3B1PWkzODYiOzsKKy0JaTQ4Ni0qKSBPUFRfQ0ZMQUdTPSIkQ0ZMQUdTIC1tY3B1PWk0ODYiOzsKKy0JaTU4Ni0qKSBPUFRfQ0ZMQUdTPSIkQ0ZMQUdTIC1tY3B1PXBlbnRpdW0iOzsKKy0JaTY4Ni0qKSBPUFRfQ0ZMQUdTPSIkQ0ZMQUdTIC1tY3B1PXBlbnRpdW1wcm8iOzsKKy0JazYtKikgICBPUFRfQ0ZMQUdTPSIkQ0ZMQUdTIC1tY3B1PWs2Ijs7CistCWVzYWMKKy0JQUNfVFJZX0NGTEFHUyhbJE9QVF9DRkxBR1NdLFtDRkxBR1M9JE9QVF9DRkxBR1NdKTs7CistICAgIHNwYXJjLSogfCBzcGFyYzY0LSopCistCU9QVF9DRkxBR1M9IiRDRkxBR1MgLW10dW5lPXVsdHJhc3BhcmMiCistCUFDX1RSWV9DRkxBR1MoWyRPUFRfQ0ZMQUdTXSxbQ0ZMQUdTPSRPUFRfQ0ZMQUdTXSk7OworLSAgICBtaXBzLXNnaS1pcml4Ni4qKQlkbmwgZG8gd2UgbmVlZCB0byBiZSB0aGF0IHNwZWNpZmljID8KKy0JT1BUX0NGTEFHUz0iJENGTEFHUyAtbWFiaT02NCIKKy0JQUNfVFJZX0NGTEFHUyhbJE9QVF9DRkxBR1NdLFtDRkxBR1M9JE9QVF9DRkxBR1NdKTs7CistICAgIGVzYWMKKy1lbGlmIHRlc3QgeCIkQ0MiID0geCJ0Y2MiIC1hIHgiYCRDQyAtdmVyc2lvbiAyPiYxIHwgZ3JlcCBUZW5EUkFgIiAhPSB4IiI7IHRoZW4KKy0gICAgZG5sIFRlbkRSQSBwb3J0YWJpbGl0eSBjaGVja2luZyBjb21waWxlcgorLSAgICBURU5EUkE9eWVzCistICAgIENGTEFHUz0iLVhwIC1ZYW5zaSAtZmBwd2RgL2luY2x1ZGUvdGVuZHJhLmggLURFTElERV9DT0RFIgorLSAgICBlbmFibGVfbWxpYj1ubworLSAgICBlbmFibGVfb3NzPW5vCistICAgIGVuYWJsZV9zb2xhcmlzX2F1ZGlvPW5vCistZWxpZiB0ZXN0IHgiJENDIiA9IHgiaWNjIiAtYSB4ImAkQ0MgLVYgMj4mMSB8IGdyZXAgSW50ZWxgIiAhPSB4IiI7IHRoZW4KKy0gICAgZG5sIEludGVsIEMrKyBjb21waWxlcgorLSAgICBDRkxBR1M9Ii1nIC1PMyAtdW5yb2xsIC1pcCIKKy1lbHNlCistICAgIGRubCBub24tZ2NjIGZsYWdzIC0gd2UgcHJvYmFibHkgbmVlZCBleGFjdCBjb25maWd1cmF0aW9uIHRyaXBsZXRzIGhlcmUuCistICAgIGNhc2UgIiRob3N0IiBpbgorLSAgICBtaXBzLXNnaS1pcml4Ni4qKQorLQlPUFRfQ0ZMQUdTPSIkQ0ZMQUdTIC02NCIKKy0JQUNfVFJZX0NGTEFHUyhbJE9QVF9DRkxBR1NdLFtDRkxBR1M9JE9QVF9DRkxBR1NdKTs7CistICAgIHNwYXJjLXN1bi1zb2xhcmlzKikKKy0JT1BUX0NGTEFHUz0iJENGTEFHUyAteENDIC1mYXN0IC14TzUiCistCUFDX1RSWV9DRkxBR1MoWyRPUFRfQ0ZMQUdTXSxbQ0ZMQUdTPSRPUFRfQ0ZMQUdTXSk7OworLSAgICBlc2FjCistZmkKKy0KKyBkbmwgQ2hlY2tzIGZvciBsaWJ0b29sIC0gdGhpcyBtdXN0IGJlIGRvbmUgYWZ0ZXIgd2Ugc2V0IGNmbGFncworIEFDX0RJU0FCTEVfU0hBUkVECisgQUNfTElCVE9PTF9XSU4zMl9ETEwKK0luZGV4OiBhNTJkZWMtMC43LjQvbGliYTUyL2NvbmZpZ3VyZS5pbmNsCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gYTUyZGVjLTAuNy40Lm9yaWcvbGliYTUyL2NvbmZpZ3VyZS5pbmNsCTIwMTAtMDItMjMgMTQ6NTE6NDQuMDAwMDAwMDAwICswMDAwCisrKysgYTUyZGVjLTAuNy40L2xpYmE1Mi9jb25maWd1cmUuaW5jbAkyMDEwLTAyLTIzIDE0OjUxOjU5LjAwMDAwMDAwMCArMDAwMAorQEAgLTEsOSArMSw2IEBACisgQUNfU1VCU1QoW0xJQkE1Ml9DRkxBR1NdKQorIEFDX1NVQlNUKFtMSUJBNTJfTElCU10pCisgCistZG5sIGF2b2lkIC1mUElDIHdoZW4gcG9zc2libGUKKy1MSUJBNTJfQ0ZMQUdTPSIkTElCQTUyX0NGTEFHUyAtcHJlZmVyLW5vbi1waWMiCistCisgQUNfQVJHX0VOQUJMRShbZG91YmxlXSwKKyAgICAgWyAgLS1lbmFibGUtZG91YmxlICAgICAgICAgdXNlIGRvdWJsZS1wcmVjaXNpb24gc2FtcGxlc10pCisgaWYgdGVzdCB4IiRlbmFibGVfZG91YmxlIiA9IHgieWVzIjsgdGhlbgpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGliYTUyL2xpYmE1Ml8wLjcuNC5iYiBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmE1Mi9saWJhNTJfMC43LjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRiNjZiMQotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmE1Mi9saWJhNTJfMC43LjQuYmIKQEAgLTAsMCArMSwyMyBAQAorU1VNTUFSWSA9ICJBVFNDIEEvNTIgc3Vycm91bmQgc291bmQgc3RyZWFtIGRlY29kZXIiCitIT01FUEFHRSA9ICJodHRwOi8vbGliYTUyLnNvdXJjZWZvcmdlLm5ldC8iCitMSUNFTlNFID0gIkdQTHYyKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTA2MzZlNzNmZjAyMTVlOGQ2NzJkYzRjMzJjMzE3YmIzIFwKKwkJCWZpbGU6Ly9pbmNsdWRlL2E1Mi5oO2JlZ2lubGluZT0xO2VuZGxpbmU9MTI7bWQ1PTgxMTUyY2ViMzU2MmJmMjBhNjBkMWI2MDE4MTc1ZGQxIgorU0VDVElPTiA9ICJsaWJzIgorUFIgPSAicjQiCisKK2luaGVyaXQgYXV0b3Rvb2xzCisKK1NSQ19VUkkgPSAiaHR0cDovL2xpYmE1Mi5zb3VyY2Vmb3JnZS5uZXQvZmlsZXMvYTUyZGVjLSR7UFZ9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9idWlsZGNsZWFudXAucGF0Y2giCisKK1NSQ19VUklbbWQ1c3VtXSA9ICJjYWE5ZjViYzQ0MjMyZGM4YWVlYTc3M2ZlYTU2YmU4MCIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJhMjFkNzI0YWIzYjM5MzMzMzAxOTQzNTM2ODdkZjgyYzQ3NWI1ZGZiOTk3NTEzZWVmNGMyNWRlNmM4NjVlYzMzIgorUyA9ICIke1dPUktESVJ9L2E1MmRlYy0ke1BWfSIKKworRVhUUkFfT0VDT05GID0gIiAtLWVuYWJsZS1zaGFyZWQgIgorCitQQUNLQUdFUyA9KyAiYTUyZGVjIGE1MmRlYy1kb2MiCisKK0ZJTEVTX2E1MmRlYyA9ICIgJHtiaW5kaXJ9LyogIgorRklMRVNfYTUyZGVjLWRvYyA9ICIgJHttYW5kaXJ9L21hbjEvKiAiCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJhdi9saWJhdi5pbmMgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJhdi9saWJhdi5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDNmNGIxYgotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmF2L2xpYmF2LmluYwpAQCAtMCwwICsxLDE0NiBAQAorU1VNTUFSWSA9ICJPcGVuIHNvdXJjZSBhdWRpbyBhbmQgdmlkZW8gcHJvY2Vzc2luZyB0b29scyBhbmQgbGlicmFpcmllcyIKK0RFU0NSSVBUSU9OID0gIkxpYmF2IGlzIGEgZnJpZW5kbHkgYW5kIGNvbW11bml0eS1kcml2ZW4gZWZmb3J0IHRvIHByb3ZpZGUgaXRzIHVzZXJzIFwKKyAgICAgICAgICAgICAgIHdpdGggYSBzZXQgb2YgcG9ydGFibGUsIGZ1bmN0aW9uYWwgYW5kIGhpZ2gtcGVyZm9ybWFuY2UgbGlicmFyaWVzIGZvciBcCisgICAgICAgICAgICAgICBkZWFsaW5nIHdpdGggbXVsdGltZWRpYSBmb3JtYXRzIG9mIGFsbCBzb3J0cy4gSXQgb3JpZ2luYXRlcyBmcm9tIHRoZSBcCisgICAgICAgICAgICAgICBGRm1wZWcgY29kZWJhc2UsIGJ1dCBnb2VzIGl0cyBvd24gd2F5IHRoZXNlIGRheXMsIHByb3ZpZGluZyBpdHMgdXNlcnMgXAorICAgICAgICAgICAgICAgd2l0aCByZWxpYWJsZSByZWxlYXNlcyBhbmQgYSBjbGVhciB2aXNpb24gaG93IHRvIGdvIGZvcndhcmQuIgorSE9NRVBBR0UgPSAiaHR0cDovL2xpYmF2Lm9yZy8iCitTRUNUSU9OID0gImxpYnMiCisKK0xJQ0VOU0UgPSAiR1BMdjIrIgorTElDRU5TRV9GTEFHUyA9ICJjb21tZXJjaWFsIgorCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HLkdQTHYyO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLkdQTHYzO21kNT1kMzIyMzliY2I2NzM0NjNhYjg3NGU4MGQ0N2ZhZTUwNCBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLkxHUEx2Mi4xO21kNT1iZDdhNDQzMzIwYWY4YzgxMmU0YzE4ZDFiNzlkZjAwNCBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9DT1BZSU5HLkxHUEx2MzttZDU9ZTZhNjAwZmQ1ZTFkOWNiZGUyZDk4MzY4MDIzM2FkMDIiCisKK1NSQ19VUkkgPSAiaHR0cDovL2xpYmF2Lm9yZy9yZWxlYXNlcy8ke0JQfS50YXIueHoiCisKKyMgUHJvdmlkZXMgZmZtcGVnIGNvbXBhdCwgc2VlIGh0dHA6Ly9saWJhdi5vcmcvYWJvdXQuaHRtbAorUFJPVklERVMgPSAiZmZtcGVnIgorCitBUk1fSU5TVFJVQ1RJT05fU0VUID0gImFybSIKKworREVQRU5EUyA9ICJhbHNhLWxpYiB6bGliIGxpYm9nZyB5YXNtLW5hdGl2ZSIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCisKK0IgPSAiJHtTfS9idWlsZC4ke0hPU1RfU1lTfS4ke1RBUkdFVF9TWVN9IgorCitGVUxMX09QVElNSVpBVElPTl9hcm12N2EgPSAiLWZleHBlbnNpdmUtb3B0aW1pemF0aW9ucyAtZm9taXQtZnJhbWUtcG9pbnRlciAtTzQgLWZmYXN0LW1hdGgiCitCVUlMRF9PUFRJTUlaQVRJT04gPSAiJHtGVUxMX09QVElNSVpBVElPTn0iCisKK0VYVFJBX0ZGQ09ORl9hcm12N2EgPSAiLS1jcHU9Y29ydGV4LWE4IgorRVhUUkFfRkZDT05GID89ICIiCisKK1BBQ0tBR0VDT05GSUcgPz89ICJiemlwMiB4MjY0IHRoZW9yYSAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3gxMScsICd4MTEnLCAnJywgZCl9IgorUEFDS0FHRUNPTkZJR1tiemlwMl0gPSAiLS1lbmFibGUtYnpsaWIsLS1kaXNhYmxlLWJ6bGliLGJ6aXAyIgorUEFDS0FHRUNPTkZJR1tmYWFjXSA9ICItLWVuYWJsZS1saWJmYWFjLC0tZGlzYWJsZS1saWJmYWFjLGZhYWMiCitQQUNLQUdFQ09ORklHW2dzbV0gPSAiLS1lbmFibGUtbGliZ3NtLC0tZGlzYWJsZS1saWJnc20sbGliZ3NtIgorUEFDS0FHRUNPTkZJR1tqYWNrXSA9ICItLWVuYWJsZS1pbmRldj1qYWNrLC0tZGlzYWJsZS1pbmRldj1qYWNrLGphY2siCitQQUNLQUdFQ09ORklHW2xpYnZvcmJpc10gPSAiLS1lbmFibGUtbGlidm9yYmlzLC0tZGlzYWJsZS1saWJ2b3JiaXMsbGlidm9yYmlzIgorUEFDS0FHRUNPTkZJR1ttcDNsYW1lXSA9ICItLWVuYWJsZS1saWJtcDNsYW1lLC0tZGlzYWJsZS1saWJtcDNsYW1lLGxhbWUiCitQQUNLQUdFQ09ORklHW29wZW5zc2xdID0gIi0tZW5hYmxlLW9wZW5zc2wsLS1kaXNhYmxlLW9wZW5zc2wsb3BlbnNzbCIKK1BBQ0tBR0VDT05GSUdbc2Nocm9lZGluZ2VyXSA9ICItLWVuYWJsZS1saWJzY2hyb2VkaW5nZXIsLS1kaXNhYmxlLWxpYnNjaHJvZWRpbmdlcixzY2hyb2VkaW5nZXIiCitQQUNLQUdFQ09ORklHW3NwZWV4XSA9ICItLWVuYWJsZS1saWJzcGVleCwtLWRpc2FibGUtbGlic3BlZXgsc3BlZXgiCitQQUNLQUdFQ09ORklHW3RoZW9yYV0gPSAiLS1lbmFibGUtbGlidGhlb3JhLC0tZGlzYWJsZS1saWJ0aGVvcmEsbGlidGhlb3JhIgorUEFDS0FHRUNPTkZJR1t2YWFwaV0gPSAiLS1lbmFibGUtdmFhcGksLS1kaXNhYmxlLXZhYXBpLGxpYnZhIgorUEFDS0FHRUNPTkZJR1t2cHhdID0gIi0tZW5hYmxlLWxpYnZweCwtLWRpc2FibGUtbGlidnB4LGxpYnZweCIKK1BBQ0tBR0VDT05GSUdbeDExXSA9ICItLWVuYWJsZS14MTFncmFiLC0tZGlzYWJsZS14MTFncmFiLHZpcnR1YWwvbGlieDExIGxpYnhmaXhlcyBsaWJ4ZXh0IHhwcm90byB2aXJ0dWFsL2xpYnNkbCIKK1BBQ0tBR0VDT05GSUdbeDI2NF0gPSAiLS1lbmFibGUtbGlieDI2NCwtLWRpc2FibGUtbGlieDI2NCx4MjY0IgorCisjIENoZWNrIGNvZGVjcyB0aGF0IHJlcXVpcmUgLS1lbmFibGUtbm9uZnJlZQorVVNFX05PTkZSRUUgPSAiJHtAYmIudXRpbHMuY29udGFpbnNfYW55KCdQQUNLQUdFQ09ORklHJywgWyAnZmFhYycsICdvcGVuc3NsJyBdLCAneWVzJywgJycsIGQpfSIKKworRVhUUkFfT0VDT05GID0gIiBcCisgICAgLS1lbmFibGUtc2hhcmVkIFwKKyAgICAtLWVuYWJsZS1wdGhyZWFkcyBcCisgICAgLS1lbmFibGUtZ3BsIFwKKyAgICAke0BiYi51dGlscy5jb250YWlucygnVVNFX05PTkZSRUUnLCAneWVzJywgJy0tZW5hYmxlLW5vbmZyZWUnLCAnJywgZCl9IFwKKyAgICAtLWVuYWJsZS1hdmZpbHRlciBcCisgICAgXAorICAgIC0tY3Jvc3MtcHJlZml4PSR7VEFSR0VUX1BSRUZJWH0gXAorICAgIC0tcHJlZml4PSR7cHJlZml4fSBcCisgICAgXAorICAgIC0tZW5hYmxlLWF2c2VydmVyIFwKKyAgICAtLWVuYWJsZS1hdnBsYXkgXAorICAgIC0tbGQ9IiR7Q0NMRH0iIFwKKyAgICAtLWFyY2g9JHtUQVJHRVRfQVJDSH0gXAorICAgIC0tdGFyZ2V0LW9zPSJsaW51eCIgXAorICAgIC0tZW5hYmxlLWNyb3NzLWNvbXBpbGUgXAorICAgIC0tZXh0cmEtY2ZsYWdzPSIke1RBUkdFVF9DRkxBR1N9ICR7SE9TVF9DQ19BUkNIfSR7VE9PTENIQUlOX09QVElPTlN9IiBcCisgICAgLS1leHRyYS1sZGZsYWdzPSIke1RBUkdFVF9MREZMQUdTfSIgXAorICAgIC0tc3lzcm9vdD0iJHtTVEFHSU5HX0RJUl9UQVJHRVR9IiBcCisgICAgLS1lbmFibGUtaGFyZGNvZGVkLXRhYmxlcyBcCisgICAgJHtFWFRSQV9GRkNPTkZ9IFwKKyAgICAtLWxpYmRpcj0ke2xpYmRpcn0gXAorICAgIC0tc2hsaWJkaXI9JHtsaWJkaXJ9IFwKKyIKKworZG9fY29uZmlndXJlKCkgeworICAgICMgV2UgZG9uJ3QgaGF2ZSBUQVJHRVRfUFJFRklYLXBrZ2NvbmZpZworICAgIHNlZCAtaSAnL3BrZ19jb25maWdfZGVmYXVsdD0iJHtjcm9zc19wcmVmaXh9JHtwa2dfY29uZmlnX2RlZmF1bHR9Ii9kJyAke1N9L2NvbmZpZ3VyZQorICAgIG1rZGlyIC1wICR7Qn0KKyAgICBjZCAke0J9CisgICAgJHtTfS9jb25maWd1cmUgJHtFWFRSQV9PRUNPTkZ9CisgICAgc2VkIC1pIC1lIHM6T3M6TzQ6ZyAke0J9L2NvbmZpZy5oCit9CisKK2RvX2luc3RhbGxfYXBwZW5kKCkgeworICAgIGluc3RhbGwgLW0gMDY0NCAke1N9L2xpYmF2ZmlsdGVyLyouaCAke0R9JHtpbmNsdWRlZGlyfS9saWJhdmZpbHRlci8KK30KKworUEFDS0FHRVMgKz0gIiR7UE59LXZob29rLWRiZyAke1BOfS12aG9vayBmZm1wZWcteDI2NC1wcmVzZXRzIgorUEFDS0FHRVNfRFlOQU1JQyArPSAiXmxpYihhdihjb2RlY3xkZXZpY2V8ZmlsdGVyfGZvcm1hdHx1dGlsKXxzd3NjYWxlKS4qIgorCitSU1VHR0VTVFNfJHtQTn0gPSAibXBsYXllciIKK0ZJTEVTXyR7UE59ID0gIiR7YmluZGlyfSIKK0ZJTEVTXyR7UE59LWRldiA9ICIke2luY2x1ZGVkaXJ9LyR7UE59IgorCitGSUxFU18ke1BOfS12aG9vayA9ICIke2xpYmRpcn0vdmhvb2siCitGSUxFU18ke1BOfS12aG9vay1kYmcgKz0gIiR7bGliZGlyfS92aG9vay8uZGVidWciCisKK0ZJTEVTX2ZmbXBlZy14MjY0LXByZXNldHMgPSAiJHtkYXRhZGlyfS8qLmF2cHJlc2V0IgorCitMRUFEX1NPTkFNRSA9ICJsaWJhdmNvZGVjLnNvIgorCitGSUxFU18ke1BOfS1kZXYgPSAiJHtpbmNsdWRlZGlyfSIKKworcHl0aG9uIHBvcHVsYXRlX3BhY2thZ2VzX3ByZXBlbmQoKSB7CisgICAgYXZfbGliZGlyID0gZC5leHBhbmQoJyR7bGliZGlyfScpCisgICAgYXZfcGtnY29uZmlnID0gZC5leHBhbmQoJyR7bGliZGlyfS9wa2djb25maWcnKQorCisgICAgIyBSdW50aW1lIHBhY2thZ2UKKyAgICBkb19zcGxpdF9wYWNrYWdlcyhkLCBhdl9saWJkaXIsICdebGliKC4qKVwuc29cLi4qJywKKyAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfcGF0dGVybj0nbGliJXMnLAorICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSdsaWJhdiAlcyBsaWJyYXJ5JywKKyAgICAgICAgICAgICAgICAgICAgICBleHRyYV9kZXBlbmRzPScnLAorICAgICAgICAgICAgICAgICAgICAgIHByZXBlbmQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICBhbGxvd19saW5rcz1UcnVlKQorCisgICAgIyBEZXZlbG9wbWVudCBwYWNrYWdlcyAoLWRldiwgLXN0YXRpY2RldikKKyAgICBkb19zcGxpdF9wYWNrYWdlcyhkLCBhdl9saWJkaXIsICdebGliKC4qKVwuc28kJywKKyAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfcGF0dGVybj0nbGliJXMtZGV2JywKKyAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0nbGliYXYgJXMgZGV2ZWxvcG1lbnQgcGFja2FnZScsCisgICAgICAgICAgICAgICAgICAgICAgZXh0cmFfZGVwZW5kcz0nJHtQTn0tZGV2JywKKyAgICAgICAgICAgICAgICAgICAgICBwcmVwZW5kPVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfbGlua3M9VHJ1ZSkKKyAgICBkb19zcGxpdF9wYWNrYWdlcyhkLCBhdl9wa2djb25maWcsICdebGliKC4qKVwucGMkJywKKyAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfcGF0dGVybj0nbGliJXMtZGV2JywKKyAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0nbGliYXYgJXMgZGV2ZWxvcG1lbnQgcGFja2FnZScsCisgICAgICAgICAgICAgICAgICAgICAgZXh0cmFfZGVwZW5kcz0nJHtQTn0tZGV2JywKKyAgICAgICAgICAgICAgICAgICAgICBwcmVwZW5kPVRydWUpCisgICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgYXZfbGliZGlyLCAnXmxpYiguKilcLmEkJywKKyAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfcGF0dGVybj0nbGliJXMtc3RhdGljZGV2JywKKyAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0nbGliYXYgJXMgZGV2ZWxvcG1lbnQgcGFja2FnZSAtIHN0YXRpYyBsaWJyYXJ5JywKKyAgICAgICAgICAgICAgICAgICAgICBleHRyYV9kZXBlbmRzPScke1BOfS1kZXYnLAorICAgICAgICAgICAgICAgICAgICAgIHByZXBlbmQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICBhbGxvd19saW5rcz1UcnVlKQorCisgICAgaWYgZC5nZXRWYXIoJ1RBUkdFVF9BUkNIJywgVHJ1ZSkgaW4gWyAnaTU4NicsICdpNjg2JyBdOgorICAgICAgICAjIGxpYmF2IGNhbid0IGJlIGJ1aWxkIHdpdGggLWZQSUMgZm9yIDMyLWJpdCB4ODYKKyAgICAgICAgcGtncyA9IGQuZ2V0VmFyKCdQQUNLQUdFUycsIFRydWUpLnNwbGl0KCkKKyAgICAgICAgZm9yIHBrZyBpbiBwa2dzOgorICAgICAgICAgICAgZC5hcHBlbmRWYXIoJ0lOU0FORV9TS0lQXyVzJyAlIHBrZywgJyB0ZXh0cmVsJykKK30KZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmF2L2xpYmF2L2xpYmF2LWZpeC1DVkUtMjAxNC05Njc2LnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGliYXYvbGliYXYvbGliYXYtZml4LUNWRS0yMDE0LTk2NzYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUzMWNhYQotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmF2L2xpYmF2L2xpYmF2LWZpeC1DVkUtMjAxNC05Njc2LnBhdGNoCkBAIC0wLDAgKzEsOTggQEAKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKKworQmFja3BvcnQgcGF0Y2ggdG8gZml4IENWRS0yMDE0LTk2NzYuCisKK2h0dHBzOi8vc2VjdXJpdHktdHJhY2tlci5kZWJpYW4ub3JnL3RyYWNrZXIvQ1ZFLTIwMTQtOTY3NgoraHR0cHM6Ly9naXQubGliYXYub3JnLz9wPWxpYmF2LmdpdDthPWNvbW1pdDtoPWIzZjA0NjU3MzY4YTMyYTk5MDM0MDYzOTVmODY1ZTIzMGIxZGUzNDgKKworU2lnbmVkLW9mZi1ieTogS2FpIEthbmcgPGthaS5rYW5nQHdpbmRyaXZlci5jb20+CistLS0KK0Zyb20gYjNmMDQ2NTczNjhhMzJhOTkwMzQwNjM5NWY4NjVlMjMwYjFkZTM0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEx1Y2EgQmFyYmF0byA8bHVfemVyb0BnZW50b28ub3JnPgorRGF0ZTogTW9uLCA1IEphbiAyMDE1IDEwOjQwOjQxICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIHNlZ21lbnQ6IEZpeCB0aGUgZmFpbHVyZSBwYXRocworCitBIGZhaWx1cmUgaW4gc2VnbWVudF9lbmQoKSBvciBzZWdtZW50X3N0YXJ0KCkgd291bGQgbGVhZCB0byBmcmVlaW5nCithIGRhbmdsaW5nIHBvaW50ZXIgYW5kIGluIGdlbmVyYWwgZnVydGhlciBjYWxscyB0byBzZWdfd3JpdGVfcGFja2V0KCkKK29yIHRvIHNlZ193cml0ZV90cmFpbGVyKCkgd291bGQgaGF2ZSB0aGUgc2FtZSBmYXVsdHkgYmVoYXZpb3VyLgorCitDQzogbGliYXYtc3RhYmxlQGxpYmF2Lm9yZworUmVwb3J0ZWQtQnk6IGx1b2RhbG9uZ2RlQGdtYWlsLmNvbQorLS0tCisgbGliYXZmb3JtYXQvc2VnbWVudC5jIHwgMzIgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9zZWdtZW50LmMgYi9saWJhdmZvcm1hdC9zZWdtZW50LmMKK2luZGV4IDUyZGE2YjkuLmJjZmQxZjkgMTAwNjQ0CistLS0gYS9saWJhdmZvcm1hdC9zZWdtZW50LmMKKysrKyBiL2xpYmF2Zm9ybWF0L3NlZ21lbnQuYworQEAgLTE4NCw2ICsxODQsMTMgQEAgc3RhdGljIHZvaWQgY2xvc2VfbnVsbF9jdHgoQVZJT0NvbnRleHQgKnBiKQorICAgICBhdl9mcmVlKHBiKTsKKyB9CisgCisrc3RhdGljIHZvaWQgc2VnX2ZyZWVfY29udGV4dChTZWdtZW50Q29udGV4dCAqc2VnKQorK3sKKysgICAgYXZpb19jbG9zZXAoJnNlZy0+cGIpOworKyAgICBhdmZvcm1hdF9mcmVlX2NvbnRleHQoc2VnLT5hdmYpOworKyAgICBzZWctPmF2ZiA9IE5VTEw7CisrfQorKworIHN0YXRpYyBpbnQgc2VnX3dyaXRlX2hlYWRlcihBVkZvcm1hdENvbnRleHQgKnMpCisgeworICAgICBTZWdtZW50Q29udGV4dCAqc2VnID0gcy0+cHJpdl9kYXRhOworQEAgLTI2NSwxMiArMjcyLDkgQEAgc3RhdGljIGludCBzZWdfd3JpdGVfaGVhZGVyKEFWRm9ybWF0Q29udGV4dCAqcykKKyAgICAgfQorIAorIGZhaWw6CistICAgIGlmIChyZXQpIHsKKy0gICAgICAgIGlmIChzZWctPmxpc3QpCistICAgICAgICAgICAgYXZpb19jbG9zZShzZWctPnBiKTsKKy0gICAgICAgIGlmIChzZWctPmF2ZikKKy0gICAgICAgICAgICBhdmZvcm1hdF9mcmVlX2NvbnRleHQoc2VnLT5hdmYpOworLSAgICB9CisrICAgIGlmIChyZXQgPCAwKQorKyAgICAgICAgc2VnX2ZyZWVfY29udGV4dChzZWcpOworKworICAgICByZXR1cm4gcmV0OworIH0KKyAKK0BAIC0yODIsNiArMjg2LDkgQEAgc3RhdGljIGludCBzZWdfd3JpdGVfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKKyAgICAgaW50NjRfdCBlbmRfcHRzID0gc2VnLT5yZWNvcmRpbmdfdGltZSAqIHNlZy0+bnVtYmVyOworICAgICBpbnQgcmV0LCBjYW5fc3BsaXQgPSAxOworIAorKyAgICBpZiAoIW9jKQorKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRUlOVkFMKTsKKysKKyAgICAgaWYgKHNlZy0+aGFzX3ZpZGVvKSB7CisgICAgICAgICBjYW5fc3BsaXQgPSBzdC0+Y29kZWMtPmNvZGVjX3R5cGUgPT0gQVZNRURJQV9UWVBFX1ZJREVPICYmCisgICAgICAgICAgICAgICAgICAgICBwa3QtPmZsYWdzICYgQVZfUEtUX0ZMQUdfS0VZOworQEAgLTMyMiwxMSArMzI5LDggQEAgc3RhdGljIGludCBzZWdfd3JpdGVfcGFja2V0KEFWRm9ybWF0Q29udGV4dCAqcywgQVZQYWNrZXQgKnBrdCkKKyAgICAgcmV0ID0gZmZfd3JpdGVfY2hhaW5lZChvYywgcGt0LT5zdHJlYW1faW5kZXgsIHBrdCwgcyk7CisgCisgZmFpbDoKKy0gICAgaWYgKHJldCA8IDApIHsKKy0gICAgICAgIGlmIChzZWctPmxpc3QpCistICAgICAgICAgICAgYXZpb19jbG9zZShzZWctPnBiKTsKKy0gICAgICAgIGF2Zm9ybWF0X2ZyZWVfY29udGV4dChvYyk7CistICAgIH0KKysgICAgaWYgKHJldCA8IDApCisrICAgICAgICBzZWdfZnJlZV9jb250ZXh0KHNlZyk7CisgCisgICAgIHJldHVybiByZXQ7CisgfQorQEAgLTMzNSw3ICszMzksMTEgQEAgc3RhdGljIGludCBzZWdfd3JpdGVfdHJhaWxlcihzdHJ1Y3QgQVZGb3JtYXRDb250ZXh0ICpzKQorIHsKKyAgICAgU2VnbWVudENvbnRleHQgKnNlZyA9IHMtPnByaXZfZGF0YTsKKyAgICAgQVZGb3JtYXRDb250ZXh0ICpvYyA9IHNlZy0+YXZmOworLSAgICBpbnQgcmV0OworKyAgICBpbnQgcmV0ID0gMDsKKysKKysgICAgaWYgKCFvYykKKysgICAgICAgIGdvdG8gZmFpbDsKKysKKyAgICAgaWYgKCFzZWctPndyaXRlX2hlYWRlcl90cmFpbGVyKSB7CisgICAgICAgICBpZiAoKHJldCA9IHNlZ21lbnRfZW5kKG9jLCAwKSkgPCAwKQorICAgICAgICAgICAgIGdvdG8gZmFpbDsKKy0tIAorMi40LjEuMzE0Lmc5NTMyZWFkCisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmF2L2xpYmF2XzkuMTguYmIgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJhdi9saWJhdl85LjE4LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxMGE2NDkKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJhdi9saWJhdl85LjE4LmJiCkBAIC0wLDAgKzEsNiBAQAorcmVxdWlyZSBsaWJhdi5pbmMKKworU1JDX1VSSVttZDVzdW1dID0gIjc1ZTgzODA2OGE3NWZiODhlMWI0ZWEwNTQ2YmMxNmYwIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjA4NzVlODM1ZGE2ODNlZWYxYTdiYWM3NWUxODg0NjM0MTk0MTQ5ZDc0NzlkMTUzOGJhOWZiZTE2MTRkMDY2ZDciCisKK1NSQ19VUkkgKz0gImZpbGU6Ly9saWJhdi1maXgtQ1ZFLTIwMTQtOTY3Ni5wYXRjaCIKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmF2L2xpYnBvc3Rwcm9jX2dpdC5iYiBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmF2L2xpYnBvc3Rwcm9jX2dpdC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWFhNTBmCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGliYXYvbGlicG9zdHByb2NfZ2l0LmJiCkBAIC0wLDAgKzEsNDcgQEAKK1NVTU1BUlkgPSAiRkZtcGVnIGRlcml2ZWQgcG9zdHByb2Nlc3NpbmcgbGlicmFyeSIKK0hPTUVQQUdFID0gImh0dHA6Ly9naXQudmlkZW9sYW4ub3JnLz9wPWxpYnBvc3Rwcm9jLmdpdDthPXN1bW1hcnkiCitTRUNUSU9OID0gImxpYnMiCitERVBFTkRTID0gImxpYmF2IgorTElDRU5TRSA9ICJHUEx2MisiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1iMjM0ZWU0ZDY5ZjVmY2U0NDg2YTgwZmRhZjRhNDI2MyIKKworIyBiZWNhdXNlIGl0IGRlcGVuZHMgb24gbGliYXYgd2hpY2ggaGFzIGNvbW1lcmNpYWwgZmxhZworTElDRU5TRV9GTEFHUyA9ICJjb21tZXJjaWFsIgorCitQViA9ICI1Mi4zLjArZ2l0JHtTUkNQVn0iCisKK1NSQ1JFViA9ICI4MTFkYjNiOTU3ZGZkZTI0YWVmMmQwZjgyZTI5N2U1YmY1NTJkODczIgorU1JDX1VSSSA9ICJnaXQ6Ly9naXRodWIuY29tL2x1LXplcm8vcG9zdHByb2M7cHJvdG9jb2w9aHR0cHMiCisKK1MgPSAiJHtXT1JLRElSfS9naXQiCisKK2luaGVyaXQgYXV0b3Rvb2xzIGxpYl9wYWNrYWdlIHBrZ2NvbmZpZworCitGVUxMX09QVElNSVpBVElPTl9hcm12N2EgPSAiLWZleHBlbnNpdmUtb3B0aW1pemF0aW9ucyAtZm9taXQtZnJhbWUtcG9pbnRlciAtTzQgLWZmYXN0LW1hdGgiCitCVUlMRF9PUFRJTUlaQVRJT04gPSAiJHtGVUxMX09QVElNSVpBVElPTn0iCisKK0VYVFJBX0ZGQ09ORl9hcm12N2EgPSAiLS1jcHU9Y29ydGV4LWE4IgorRVhUUkFfRkZDT05GID89ICIiCisKK0VYVFJBX09FQ09ORiA9ICIgXAorICAgIC0tZW5hYmxlLXNoYXJlZCBcCisgICAgLS1lbmFibGUtcHRocmVhZHMgXAorICAgIC0tZW5hYmxlLWdwbCBcCisgICAgLS1lbmFibGUtcG9zdHByb2MgXAorICAgIFwKKyAgICAtLWNyb3NzLXByZWZpeD0ke1RBUkdFVF9QUkVGSVh9IFwKKyAgICAtLXByZWZpeD0ke3ByZWZpeH0gXAorICAgIFwKKyAgICAtLWFyY2g9JHtUQVJHRVRfQVJDSH0gXAorICAgIC0tdGFyZ2V0LW9zPSJsaW51eCIgXAorICAgIC0tZW5hYmxlLWNyb3NzLWNvbXBpbGUgXAorICAgIC0tZXh0cmEtY2ZsYWdzPSIke1RBUkdFVF9DRkxBR1N9ICR7SE9TVF9DQ19BUkNIfSR7VE9PTENIQUlOX09QVElPTlN9IiBcCisgICAgLS1leHRyYS1sZGZsYWdzPSIke1RBUkdFVF9MREZMQUdTfSIgXAorICAgIC0tc3lzcm9vdD0iJHtTVEFHSU5HX0RJUl9UQVJHRVR9IiBcCisgICAgLS1zaGxpYmRpcj0iJHtsaWJkaXJ9IiBcCisgICAgJHtFWFRSQV9GRkNPTkZ9IFwKKyIKKworZG9fY29uZmlndXJlKCkgeworICAgICR7U30vY29uZmlndXJlICR7RVhUUkFfT0VDT05GfQorfQpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGliaWQzdGFnL2xpYmlkM3RhZy9hZGRwa2djb25maWcucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJpZDN0YWcvbGliaWQzdGFnL2FkZHBrZ2NvbmZpZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOGQ0MGMzCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGliaWQzdGFnL2xpYmlkM3RhZy9hZGRwa2djb25maWcucGF0Y2gKQEAgLTAsMCArMSw0MyBAQAorVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQorCitJbmRleDogbGliaWQzdGFnLTAuMTUuMWIvTWFrZWZpbGUuYW0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBsaWJpZDN0YWctMC4xNS4xYi5vcmlnL01ha2VmaWxlLmFtCTIwMDktMDctMjkgMDk6Mjk6MjAuMDAwMDAwMDAwICswMTAwCisrKysgbGliaWQzdGFnLTAuMTUuMWIvTWFrZWZpbGUuYW0JMjAwOS0wNy0yOSAwOToyOTo0Ny4wMDAwMDAwMDAgKzAxMDAKK0BAIC0yNyw2ICsyNyw5IEBACisgbGliX0xUTElCUkFSSUVTID0JbGliaWQzdGFnLmxhCisgaW5jbHVkZV9IRUFERVJTID0JaWQzdGFnLmgKKyAKKytwa2djb25maWdkaXIgPSAkKGxpYmRpcikvcGtnY29uZmlnCisrcGtnY29uZmlnX0RBVEEgPSBpZDN0YWcucGMKKysKKyAjIyBGcm9tIHRoZSBsaWJ0b29sIGRvY3VtZW50YXRpb24gb24gbGlicmFyeSB2ZXJzaW9uaW5nOgorICMjCisgIyMgQ1VSUkVOVAorSW5kZXg6IGxpYmlkM3RhZy0wLjE1LjFiL2NvbmZpZ3VyZS5hYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGxpYmlkM3RhZy0wLjE1LjFiLm9yaWcvY29uZmlndXJlLmFjCTIwMDktMDctMjkgMDk6Mjc6MTUuMDAwMDAwMDAwICswMTAwCisrKysgbGliaWQzdGFnLTAuMTUuMWIvY29uZmlndXJlLmFjCTIwMDktMDctMjkgMDk6Mjc6NDUuMDAwMDAwMDAwICswMTAwCitAQCAtMjAxLDUgKzIwMSw1IEBACisgZG5sIEFDX1NVQlNUKExUTElCT0JKUykKKyAKKyBBQ19DT05GSUdfRklMRVMoW01ha2VmaWxlIG1zdmMrKy9NYWtlZmlsZSAgXAorLQlsaWJpZDN0YWcubGlzdF0pCisrCWxpYmlkM3RhZy5saXN0IGlkM3RhZy5wY10pCisgQUNfT1VUUFVUCitJbmRleDogbGliaWQzdGFnLTAuMTUuMWIvaWQzdGFnLnBjLmluCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgbGliaWQzdGFnLTAuMTUuMWIvaWQzdGFnLnBjLmluCTIwMDktMDctMjkgMDk6Mjk6MTAuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDExIEBACisrcHJlZml4PUBwcmVmaXhACisrZXhlY19wcmVmaXg9QGV4ZWNfcHJlZml4QAorK2xpYmRpcj1AbGliZGlyQAorK2luY2x1ZGVkaXI9QGluY2x1ZGVkaXJACisrCisrTmFtZTogaWQzdGFnCisrRGVzY3JpcHRpb246IElEMyB0YWcgcmVhZGluZyBsaWJyYXJ5CisrUmVxdWlyZXM6CisrVmVyc2lvbjogQFZFUlNJT05ACisrTGliczogLUwke2xpYmRpcn0gLWxpZDN0YWcgLWx6CisrQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0KZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmlkM3RhZy9saWJpZDN0YWcvb2Jzb2xldGVfYXV0b21ha2VfbWFjcm9zLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGliaWQzdGFnL2xpYmlkM3RhZy9vYnNvbGV0ZV9hdXRvbWFrZV9tYWNyb3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg0NWZiMQotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYmlkM3RhZy9saWJpZDN0YWcvb2Jzb2xldGVfYXV0b21ha2VfbWFjcm9zLnBhdGNoCkBAIC0wLDAgKzEsMTUgQEAKK1Vwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkIFtodHRwczovL3NvdXJjZWZvcmdlLm5ldC90cmFja2VyLz9mdW5jPWRldGFpbCZhaWQ9MzU5OTI4MCZncm91cF9pZD0xMjM0OSZhdGlkPTExMjM0OV0KKworU2lnbmVkLW9mZi1ieTogTWFya28gTGluZHF2aXN0IDxjYXpmaTc0QGdtYWlsLmNvbT4KK2RpZmYgLU51cmQgbGliaWQzdGFnLTAuMTUuMWIvY29uZmlndXJlLmFjIGxpYmlkM3RhZy0wLjE1LjFiL2NvbmZpZ3VyZS5hYworLS0tIGxpYmlkM3RhZy0wLjE1LjFiL2NvbmZpZ3VyZS5hYwkyMDA0LTAxLTI0IDAxOjIyOjQ2LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmlkM3RhZy0wLjE1LjFiL2NvbmZpZ3VyZS5hYwkyMDEzLTAxLTAzIDA2OjQxOjAyLjczNDgzNTAxNCArMDIwMAorQEAgLTI4LDcgKzI4LDcgQEAKKworLUFNX0lOSVRfQVVUT01BS0UKKytBTV9JTklUX0FVVE9NQUtFKFtmb3JlaWduXSkKKworLUFNX0NPTkZJR19IRUFERVIoW2NvbmZpZy5oXSkKKytBQ19DT05GSUdfSEVBREVSUyhbY29uZmlnLmhdKQorCisgZG5sIFN5c3RlbSB0eXBlLgpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGliaWQzdGFnL2xpYmlkM3RhZ18wLjE1LjFiLmJiIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGliaWQzdGFnL2xpYmlkM3RhZ18wLjE1LjFiLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1YThhNDcKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJpZDN0YWcvbGliaWQzdGFnXzAuMTUuMWIuYmIKQEAgLTAsMCArMSwyMiBAQAorU1VNTUFSWSA9ICJMaWJyYXJ5IGZvciBpbnRlcmFjdGluZyB3aXRoIElEMyB0YWdzIGluIE1QMyBmaWxlcyIKK0hPTUVQQUdFID0gImh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbWFkLyIKK0JVR1RSQUNLRVIgPSAiaHR0cDovL3NvdXJjZWZvcmdlLm5ldC90cmFja2VyLz9ncm91cF9pZD0xMjM0OSZhdGlkPTExMjM0OSIKK0xJQ0VOU0UgPSAiR1BMdjIrIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9OTRkNTVkNTEyYTliYTM2Y2FhOWI3ZGYwNzliYWUxOWYgXAorCQkJZmlsZTovL0NPUFlSSUdIVDttZDU9NWU2Mjc5ZWZiODdjMjZjNmU1ZTdhNjgzMTdhNmE4N2EgXAorCQkJZmlsZTovL3ZlcnNpb24uaDtiZWdpbmxpbmU9MTtlbmRsaW5lPTg7bWQ1PTg2YWM2OGI2N2YwNTRiN2FmZGU5ZTE0OWJiYzNmZTYzIgorU0VDVElPTiA9ICJsaWJzIgorREVQRU5EUyA9ICJ6bGliIGdwZXJmLW5hdGl2ZSIKK1BSID0gInI3IgorCitTUkNfVVJJID0gImZ0cDovL2Z0cC5tYXJzLm9yZy9wdWIvbXBlZy9saWJpZDN0YWctJHtQVn0udGFyLmd6IFwKKyAgICAgICAgICAgZmlsZTovL2FkZHBrZ2NvbmZpZy5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9vYnNvbGV0ZV9hdXRvbWFrZV9tYWNyb3MucGF0Y2ggXAorIgorCitTUkNfVVJJW21kNXN1bV0gPSAiZTU4MDhhZDk5N2JhMzJjNDk4ODAzODIyMDc4NzQ4YzMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNjNkYTRmNmU3OTk3Mjc4ZjhhM2ZlZjRjNmEzNzJkMzQyZjcwNTA1MWQxZWViNmE0NmE4NmIwMzYxMGUyNjE1MSIKKworUyA9ICIke1dPUktESVJ9L2xpYmlkM3RhZy0ke1BWfSIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJtYWQvbGlibWFkL2FkZC1wa2djb25maWcucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJtYWQvbGlibWFkL2FkZC1wa2djb25maWcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ5ZGM4YwotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm1hZC9saWJtYWQvYWRkLXBrZ2NvbmZpZy5wYXRjaApAQCAtMCwwICsxLDcwIEBACitIZXJlIGlzIGEgcGF0Y2ggZm9yIGFkZGluZyBwa2ctY29uZmlnIHN1cHBvcnQgdG8gbGlibWFkLgorSXQgd291bGQgbWFrZSBsaWZlIGEgYml0IGVhc2llciBmb3IgZGlzdHJvIG1haW50YWluZXJzIGlmIHRoaXMgd2FzIGFwcGxpZWQuCitJbiBjYXNlIHlvdSBkaWRuJ3Qga25vdywgcGtnLWNvbmZpZyBpcyBhIHRvb2wgZm9yIHByb3ZpZGluZyBMREZMQUdTIGFuZAorQ0ZMQUdTIGZvciBwYWNrYWdlcyB1c2luZyBzaGFyZWQgbGlicmFyaWVzLiBJdCdzIG9uIGZyZWVkZXNrdG9wLm9yZy4KK0RlYmlhbiBoYXMgYWxyZWFkeSBiZWVuIGRpc3RyaWJ1dGluZyB0aGUgcGtnLWNvbmZpZyBmaWxlIG1hZC5wYyB3aXRoCitsaWJtYWQgZm9yIHNvbWUgdGltZSwgYW5kIHBlb3BsZSBkZXZlbG9waW5nIG9uIGRlYmlhbiAobm90YWJseSB4bW1zMiAKK2RldmVsb3BlcnMpIGhhdmUgc3RhcnRlZCByZWx5aW5nIG9uIHRoaXMgc3VwcG9ydCBiZWluZyBwcmVzZW50LCBjYXVzaW5nCitzb21lIGNvbmZ1c2lvbiBmb3IgcGVvcGxlIGluc3RhbGxpbmcgZnJvbSBzb3VyY2UgYW5kIG9uIHNvbWUgQlNEcyB3aGljaAorZG8gbm90IHByb3ZpZGUgbWFkLnBjIChnb29nbGU6IHBrZ2NvbmZpZyBsaWJtYWQpLgorCitFTUgKKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQorCistLWgzMWd6WkV0TkxUcU9qbEYKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQorQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9JnF1b3Q7bGlibWFkLTAuMTUuMWItcGtnY29uZmlnLnBhdGNoJnF1b3Q7CisKK2RpZmYgLU5hdXIgbGlibWFkLTAuMTUuMWIub2xkL2NvbmZpZ3VyZS5hYyBsaWJtYWQtMC4xNS4xYi9jb25maWd1cmUuYWMKKy0tLSBsaWJtYWQtMC4xNS4xYi5vbGQvY29uZmlndXJlLmFjCTIwMDQtMDEtMjMgMTA6NDE6MzIuMDAwMDAwMDAwICswMTAwCisrKysgbGlibWFkLTAuMTUuMWIvY29uZmlndXJlLmFjCTIwMDQtMDgtMDcgMDI6MjU6MjQuNjMzNDYyMTY4ICswMjAwCitAQCAtNDI5LDUgKzQyOSw1IEBACisgZG5sIEFDX1NVQlNUKExUTElCT0JKUykKKyAKKyBBQ19DT05GSUdfRklMRVMoW01ha2VmaWxlIG1zdmMrKy9NYWtlZmlsZSAgXAorLQlsaWJtYWQubGlzdF0pCisrCWxpYm1hZC5saXN0IG1hZC5wY10pCisgQUNfT1VUUFVUCitkaWZmIC1OYXVyIGxpYm1hZC0wLjE1LjFiLm9sZC9tYWQucGMuaW4gbGlibWFkLTAuMTUuMWIvbWFkLnBjLmluCistLS0gbGlibWFkLTAuMTUuMWIub2xkL21hZC5wYy5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIGxpYm1hZC0wLjE1LjFiL21hZC5wYy5pbgkyMDA0LTA4LTA3IDAyOjA0OjU5LjYxNzY5Mjg3MiArMDIwMAorQEAgLTAsMCArMSwxNCBAQAorKyMgbGlibWFkIHBrZy1jb25maWcgc291cmNlIGZpbGUKKysKKytwcmVmaXg9QHByZWZpeEAKKytleGVjX3ByZWZpeD1AZXhlY19wcmVmaXhACisrbGliZGlyPUBsaWJkaXJACisraW5jbHVkZWRpcj1AaW5jbHVkZWRpckAKKysKKytOYW1lOiBtYWQKKytEZXNjcmlwdGlvbjogTVBFRyBBdWRpbyBEZWNvZGVyCisrVmVyc2lvbjogQFZFUlNJT05ACisrUmVxdWlyZXM6CisrQ29uZmxpY3RzOgorK0xpYnM6IC1MJHtsaWJkaXJ9IC1sbWFkIC1sbQorK0NmbGFnczogLUkke2luY2x1ZGVkaXJ9CitkaWZmIC1OYXVyIGxpYm1hZC0wLjE1LjFiLm9sZC9NYWtlZmlsZS5hbSBsaWJtYWQtMC4xNS4xYi9NYWtlZmlsZS5hbQorLS0tIGxpYm1hZC0wLjE1LjFiLm9sZC9NYWtlZmlsZS5hbQkyMDA0LTAyLTE3IDAzOjAyOjAzLjAwMDAwMDAwMCArMDEwMAorKysrIGxpYm1hZC0wLjE1LjFiL01ha2VmaWxlLmFtCTIwMDQtMDgtMDcgMDI6MDM6MTkuODU5ODU4MzY4ICswMjAwCitAQCAtMjQsNiArMjQsOSBAQAorIFNVQkRJUlMgPQkJCisgRElTVF9TVUJESVJTID0JCW1zdmMrKworIAorK3BrZ2NvbmZpZ2RpciA9CQkkKGxpYmRpcikvcGtnY29uZmlnCisrcGtnY29uZmlnX0RBVEEgPQltYWQucGMKKysKKyBsaWJfTFRMSUJSQVJJRVMgPQlsaWJtYWQubGEKKyBpbmNsdWRlX0hFQURFUlMgPQltYWQuaAorIAorQEAgLTM0LDcgKzM3LDggQEAKKyBtaW5pbWFkX0xEQUREID0JCWxpYm1hZC5sYQorIAorIEVYVFJBX0RJU1QgPQkJbWFkLmguc2VkICBcCistCQkJQ0hBTkdFUyBDT1BZUklHSFQgQ1JFRElUUyBSRUFETUUgVE9ETyBWRVJTSU9OCisrCQkJQ0hBTkdFUyBDT1BZUklHSFQgQ1JFRElUUyBSRUFETUUgVE9ETyBWRVJTSU9OIFwKKysJCQltYWQucGMuaW4KKyAKKyBleHBvcnRlZF9oZWFkZXJzID0JdmVyc2lvbi5oIGZpeGVkLmggYml0LmggdGltZXIuaCBzdHJlYW0uaCBmcmFtZS5oICBcCisgCQkJc3ludGguaCBkZWNvZGVyLmgKKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlibWFkL2xpYm1hZC9hdXRvbWFrZS1mb3JlaWduLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlibWFkL2xpYm1hZC9hdXRvbWFrZS1mb3JlaWduLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlNTQ0MjQKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJtYWQvbGlibWFkL2F1dG9tYWtlLWZvcmVpZ24ucGF0Y2gKQEAgLTAsMCArMSwxMiBAQAorUGFzcyBmb3JlaWduIHRvIEFNX0lOSVRfQVVUT01BS0Ugc28gaXQgZG9lc24ndCBlbmZvcmNlIEdOVSBzdHJpY3RuZXNzLgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKK1NpZ25lZC1vZmYtYnk6IFJvc3MgQnVydG9uIDxyb3NzLmJ1cnRvbkBpbnRlbC5jb20+CisKK2RpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IGU2MDJmZDMuLmUwNzViODYgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAgLTI5ICsyOSBAQCBBQ19DT05GSUdfU1JDRElSKFtkZWNvZGVyLmhdKQorLUFNX0lOSVRfQVVUT01BS0UKKytBTV9JTklUX0FVVE9NQUtFKFtmb3JlaWduXSkKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm1hZC9saWJtYWQvZml4X2Zvcl9taXBzX3dpdGhfZ2NjLTQuNS4wLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlibWFkL2xpYm1hZC9maXhfZm9yX21pcHNfd2l0aF9nY2MtNC41LjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFjN2FhMwotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm1hZC9saWJtYWQvZml4X2Zvcl9taXBzX3dpdGhfZ2NjLTQuNS4wLnBhdGNoCkBAIC0wLDAgKzEsMzMgQEAKK2djYyA0LjQgZGlkIHRoaXM6IFRoZSBNSVBTIHBvcnQgbm8gbG9uZ2VyIHJlY29nbml6ZXMgdGhlIGggIGFzbSBjb25zdHJhaW50LiBJdCB3YXMgbmVjZXNzYXJ5IHRvIHJlbW92ZSB0aGlzIGNvbnN0cmFpbnQgaW4gb3JkZXIgdG8gYXZvaWQgZ2VuZXJhdGluZyB1bnByZWRpY3RhYmxlIGNvZGUgc2VxdWVuY2VzLiAKKworc28gdGhlIGxpYm1hZCBidWlsZCB3aXRoIGdjYy00LjUuMCB3YXMgZmFpbGluZy4KKworRm91bmQgYSBzb2x1dGlvbiBoZXJlOgorCitodHRwOi8vdXMuZ2VuZXJhdGlvbi1udC5jb20vYW5zd2VyL2J1Zy01Njg0MTgtbGlibWFkMC1kZXYtbXBnMzIxLWNvbXBpbGF0aW9uLWVycm9ycy1taXBzLW1pcHNlbC1hcmNoaXRlY3R1cmVzLWhlbHAtMTY5MDMzNDUxLmh0bWwKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKKzIwMTAvMDcvMjkKK05pdGluIEEgS2FtYmxlIDxuaXRpbi5hLmthbWJsZUBpbnRlbC5jb20+CisKK0luZGV4OiBsaWJtYWQtMC4xNS4xYi9maXhlZC5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbGlibWFkLTAuMTUuMWIub3JpZy9maXhlZC5oCisrKysgbGlibWFkLTAuMTUuMWIvZml4ZWQuaAorQEAgLTI5Nyw2ICsyOTcsMTUgQEAgbWFkX2ZpeGVkX3QgbWFkX2ZfbXVsX2lubGluZShtYWRfZml4ZWRfdAorIAorIC8qIC0tLSBNSVBTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKysjIGVsaWYgZGVmaW5lZChGUE1fTUlQUykgJiYgKF9fR05VQ19fID4gNCB8fCAoX19HTlVDX18gPT0gNCAmJiBfX0dOVUNfTUlOT1JfXyA+PSA0KSkKKysgICAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgdTY0X2RpX3QgX19hdHRyaWJ1dGVfXyAoKG1vZGUgKERJKSkpOworKyMgICBkZWZpbmUgTUFEX0ZfTUxYKGhpLCBsbywgeCwgeSkgXAorKyAgICBkbyB7IFwKKysgICAgICAgIHU2NF9kaV90IF9fbGwgPSAodTY0X2RpX3QpICh4KSAqICh5KTsgXAorKyAgICAgICAgaGkgPSBfX2xsID4+IDMyOyBcCisrICAgICAgICBsbyA9IF9fbGw7IFwKKysgICAgIH0gd2hpbGUgKDApCisrCisgIyBlbGlmIGRlZmluZWQoRlBNX01JUFMpCisgCisgLyoKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm1hZC9saWJtYWQvbm8tZm9yY2UtbWVtLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlibWFkL2xpYm1hZC9uby1mb3JjZS1tZW0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDVlNmQyMAotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm1hZC9saWJtYWQvbm8tZm9yY2UtbWVtLnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKK1RoaXMgb3B0aW9uIG5vIGxvbmdlciBleGlzdHMgaW4gZ2NjIDMuNC4xCisKK1JQIC0gMTgvMDcvMjAwOAorCitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCisKK0luZGV4OiBsaWJtYWQtMC4xNS4xYi9jb25maWd1cmUuYWMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBsaWJtYWQtMC4xNS4xYi5vcmlnL2NvbmZpZ3VyZS5hYwkyMDA4LTA3LTE4IDE1OjQ1OjMwLjAwMDAwMDAwMCArMDEwMAorKysrIGxpYm1hZC0wLjE1LjFiL2NvbmZpZ3VyZS5hYwkyMDA4LTA3LTE4IDE1OjQ1OjM3LjAwMDAwMDAwMCArMDEwMAorQEAgLTE0MCw3ICsxNDAsNiBAQAorICAgICBjYXNlICIkb3B0aW1pemUiIGluCisgCS1PfCItTyAiKikKKyAJICAgIG9wdGltaXplPSItTyIKKy0JICAgIG9wdGltaXplPSIkb3B0aW1pemUgLWZmb3JjZS1tZW0iCisgCSAgICBvcHRpbWl6ZT0iJG9wdGltaXplIC1mZm9yY2UtYWRkciIKKyAJICAgIDogI3ggb3B0aW1pemU9IiRvcHRpbWl6ZSAtZmlubGluZS1mdW5jdGlvbnMiCisgCSAgICA6ICMtIG9wdGltaXplPSIkb3B0aW1pemUgLWZzdHJlbmd0aC1yZWR1Y2UiCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJtYWQvbGlibWFkL29ic29sZXRlX2F1dG9tYWtlX21hY3Jvcy5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm1hZC9saWJtYWQvb2Jzb2xldGVfYXV0b21ha2VfbWFjcm9zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjODdkMjkKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJtYWQvbGlibWFkL29ic29sZXRlX2F1dG9tYWtlX21hY3Jvcy5wYXRjaApAQCAtMCwwICsxLDE0IEBACitVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBbaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvdHJhY2tlci8/Z3JvdXBfaWQ9MTIzNDkmYXRpZD0xMTIzNDldCisKK1NpZ25lZC1vZmYtYnk6IE1hcmtvIExpbmRxdmlzdCA8Y2F6Zmk3NEBnbWFpbC5jb20+CitkaWZmIC1OdXJkIGxpYm1hZC0wLjE1LjFiL2NvbmZpZ3VyZS5hYyBsaWJtYWQtMC4xNS4xYi9jb25maWd1cmUuYWMKKy0tLSBsaWJtYWQtMC4xNS4xYi9jb25maWd1cmUuYWMJMjAwNC0wMS0yMyAxMTo0MTozMi4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJtYWQtMC4xNS4xYi9jb25maWd1cmUuYWMJMjAxMy0wMS0wMyAwODoyODoyMy43MTg2OTM2OTcgKzAyMDAKK0BAIC0yOCw3ICsyOCw3IEBACisKKyBBTV9JTklUX0FVVE9NQUtFCisKKy1BTV9DT05GSUdfSEVBREVSKFtjb25maWcuaF0pCisrQUNfQ09ORklHX0hFQURFUlMoW2NvbmZpZy5oXSkKKworIGRubCBTeXN0ZW0gdHlwZS4KZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm1hZC9saWJtYWRfMC4xNS4xYi5iYiBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm1hZC9saWJtYWRfMC4xNS4xYi5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTA4YjE2Ci0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlibWFkL2xpYm1hZF8wLjE1LjFiLmJiCkBAIC0wLDAgKzEsMzggQEAKK1NVTU1BUlkgPSAiTVBFRyBBdWRpbyBEZWNvZGVyIGxpYnJhcnkiCitIT01FUEFHRSA9ICJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL21hZC8iCitCVUdUUkFDS0VSID0gImh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvdHJhY2tlci8/Z3JvdXBfaWQ9MTIzNDkmYXRpZD0xMTIzNDkiCitMSUNFTlNFID0gIkdQTHYyKyIKK0xJQ0VOU0VfRkxBR1MgPSAiY29tbWVyY2lhbCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIFwKKwkJCWZpbGU6Ly9DT1BZUklHSFQ7bWQ1PThlNTVlYjE0ODk0ZTc4MmI4NDQ4OGQ1YTIzOWJjMjNkIFwKKwkJCWZpbGU6Ly92ZXJzaW9uLmg7YmVnaW5saW5lPTE7ZW5kbGluZT04O21kNT1hYTA3MzExZGQzOTI4OGQ0MzQ5ZjI4ZTFkZTUxNjQ1NCIKK1NFQ1RJT04gPSAibGlicyIKK0RFUEVORFMgPSAibGliaWQzdGFnIgorUFIgPSAicjMiCisKK1NSQ19VUkkgPSAiZnRwOi8vZnRwLm1hcnMub3JnL3B1Yi9tcGVnL2xpYm1hZC0ke1BWfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vbm8tZm9yY2UtbWVtLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2FkZC1wa2djb25maWcucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vZml4X2Zvcl9taXBzX3dpdGhfZ2NjLTQuNS4wLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL29ic29sZXRlX2F1dG9tYWtlX21hY3Jvcy5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9hdXRvbWFrZS1mb3JlaWduLnBhdGNoIFwKKyIKKworU1JDX1VSSVttZDVzdW1dID0gIjFiZTU0M2JjMzBjNTZmYjZiZWExZDdiZjZhNjRlNjZjIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImJiZmFjM2VkNmJmYmMyODIzZDM3NzVlYmI5MzEwODczNzFlMTQyYmIwZTliYjFiZWU1MWE3NmE2ZTAwNzg2OTAiIAorCitTID0gIiR7V09SS0RJUn0vbGlibWFkLSR7UFZ9IgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworRVhUUkFfT0VDT05GID0gIi1lbmFibGUtc3BlZWQgLS1lbmFibGUtc2hhcmVkIgorIyBUaGUgQVNPJ3MgZG9uJ3QgdGFrZSBhbnkgYWNjb3VudCBvZiB0aHVtYi4uLgorRVhUUkFfT0VDT05GX2FwcGVuZF90aHVtYiA9ICIgLS1kaXNhYmxlLWFzbyAtLWVuYWJsZS1mcG09ZGVmYXVsdCIKK0VYVFJBX09FQ09ORl9hcHBlbmRfYXJtID0gIiAtLWVuYWJsZS1mcG09YXJtIgorCitkb19jb25maWd1cmVfcHJlcGVuZCAoKSB7CisjCWRhbW4gcGlja3kgYXV0b21ha2UuLi4KKwl0b3VjaCBORVdTIEFVVEhPUlMgQ2hhbmdlTG9nCit9CisKK0FSTV9JTlNUUlVDVElPTl9TRVQgPSAiYXJtIgpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlib2dnL2xpYm9nZ18xLjMuMi5iYiBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm9nZy9saWJvZ2dfMS4zLjIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDE0MmUwZgotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm9nZy9saWJvZ2dfMS4zLjIuYmIKQEAgLTAsMCArMSwxNyBAQAorU1VNTUFSWSA9ICJPZ2cgYml0c3RyZWFtIGFuZCBmcmFtaW5nIGxpYmFyeSIKK0RFU0NSSVBUSU9OID0gImxpYm9nZyBpcyB0aGUgYml0c3RyZWFtIGFuZCBmcmFtaW5nIGxpYnJhcnkgXAorZm9yIHRoZSBPZ2cgcHJvamVjdC4gSXQgcHJvdmlkZXMgZnVuY3Rpb25zIHdoaWNoIGFyZSBcCituZWNlc3NhcnkgdG8gY29kZWMgbGlicmFyaWVzIGxpa2UgbGlidm9yYmlzLiIKK0hPTUVQQUdFID0gImh0dHA6Ly94aXBoLm9yZy8iCitCVUdUUkFDS0VSID0gImh0dHBzOi8vdHJhYy54aXBoLm9yZy9uZXd0aWNrZXQiCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PWRiMWI3YTY2OGIyYTZmNDdiMmFmODhmYjAwOGFkNTU1IFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL2luY2x1ZGUvb2dnL29nZy5oO2JlZ2lubGluZT0xO2VuZGxpbmU9MTE7bWQ1PWVkYTgxMjg1NmYxM2EzYjEzMjZlYjhmMDIwY2MzYjBiIgorCitTUkNfVVJJID0gImh0dHA6Ly9kb3dubG9hZHMueGlwaC5vcmcvcmVsZWFzZXMvb2dnLyR7QlB9LnRhci54eiIKKworU1JDX1VSSVttZDVzdW1dID0gIjVjM2EzNDMwOWQ4Yjk4NjQwODI3ZTVkMDk5MWE0MDE1IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjNmNjg3Y2NkZDVhYzhiNTJkNzYzMjhmYmJmZWJjNzBjNDU5YTQwZWE4OTFkYmYzZGNjYjc0YTIxMDgyNmU3OWIiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlib214aWwvbGlib214aWwtMC45LjMvY29uZmlndXJlLWZpeC5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm9teGlsL2xpYm9teGlsLTAuOS4zL2NvbmZpZ3VyZS1maXgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc2ZTgwZQotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm9teGlsL2xpYm9teGlsLTAuOS4zL2NvbmZpZ3VyZS1maXgucGF0Y2gKQEAgLTAsMCArMSw1OCBAQAorVG8gZW5hYmxlIC0tZGlzYWJsZS1XZXJyb3IgZm9yIGxpYm9teGlsIHRvIGF2b2lkIHNvbWUgY29tcGlsZXJzIHdoaWNoIGNoZWNrIGNvZGUgc3RyaWN0bHkuCisKK0ZvciBleGFtcGxlLCBhdCBsZWFzdCB0aGUgZm9sbG93aW5nIGVycm9ycyBoYXBwZW5lZCB0byBzb21lIGNvbXBpbGVyczoKKworMSkgT01YX0lOREVYVFlQRSBpbiBpbmNsdWRlL09NWF9JbmRleC5oIElTIE5PVCBPTVhfSU5ERVhWRU5ET1JUWVBFIGluIHNyYy9iYXNlL29teF9iYXNlX2NvbXBvbmVudC5oCit8IGk1ODYtcG9reS1saW51eC1saWJ0b29sOiBjb21waWxlOiAgaTU4Ni1wb2t5LWxpbnV4LWdjYyAtbTMyIC1tYXJjaD1pNTg2IC0tc3lzcm9vdD0vaG9tZS95b2N0by1idWlsZDUvcG9reS9idWlsZC90bXAvc3lzcm9vdHMvcWVtdXg4NiAtREhBVkVfQ2xpbWluYXRlLXVudXNlZC1kZWJ1Zy10eXBlcyAtV2FsbCAtV2Vycm9yIC1EQ09ORklHX0RFQlVHX0xFVkVMPTAgLWMgT01YQ29tcG9uZW50Uk1FeHQuYyAgLWZQSUMgLURQSUMgLW8gLmxpYnMvbGlib214YmFzZV9sYS1PTVhDb21wb25lbnRSTUV4dC5vCit8IG9teF9iYXNlX2NvbXBvbmVudC5jOiBJbiBmdW5jdGlvbiAnb214X2Jhc2VfY29tcG9uZW50X0dldFBhcmFtZXRlcic6Cit8IG9teF9iYXNlX2NvbXBvbmVudC5jOjk5MTozOiBlcnJvcjogY2FzZSB2YWx1ZSAnMjEzMDcwNjQzNScgbm90IGluIGVudW1lcmF0ZWQgdHlwZSAnT01YX0lOREVYVFlQRScgWy1XZXJyb3I9c3dpdGNoXQorfCBvbXhfYmFzZV9jb21wb25lbnQuYzo5MTg6MzogZXJyb3I6IGNhc2UgdmFsdWUgJzIxMzA3MDY0MzYnIG5vdCBpbiBlbnVtZXJhdGVkIHR5cGUgJ09NWF9JTkRFWFRZUEUnIFstV2Vycm9yPXN3aXRjaF0KKworMikKK3wgaTU4Ni1wb2t5LWxpbnV4LWdjYyAgLW0zMiAgIC1tYXJjaD1pNTg2IC0tc3lzcm9vdD0vaG9tZS95b2N0by1idWlsZDUvcG9reS9idWlsZC90bXAvc3lzcm9vdHMvcWVtdXg4NiAtREhBVkVfQ09ORklHX0ggLUkuIC1JLi4gICAgLURPTVhJTENPTVBPbWluYXRlLXVudXNlZC1kZWJ1Zy10eXBlcyAtV2FsbCAtV2Vycm9yIC1EQ09ORklHX0RFQlVHX0xFVkVMPTAgLWMgLW8gb214cmVnaXN0ZXJfYmVsbGFnaW8tb214cmVnaXN0ZXIubyBgdGVzdCAtZiAnb214cmVnaXN0ZXIuYycgfHwgZWNobyAnLi8nYG8KK3wgb214cmVnaXN0ZXIuYzogSW4gZnVuY3Rpb24gJ2J1aWxkQ29tcG9uZW50c0xpc3QnOgorfCBvbXhyZWdpc3Rlci5jOjE3NTo3OiBlcnJvcjogdmFyaWFibGUgJ2Vycicgc2V0IGJ1dCBub3QgdXNlZCBbLVdlcnJvcj11bnVzZWQtYnV0LXNldC12YXJpYWJsZV0KK3wgY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKKworVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQorCitTaWduZWQtb2ZmLWJ5OiBTaGFuZSBXYW5nIDxzaGFuZS53YW5nQGludGVsLmNvbT4KKworZGlmZiAtciA4MmQ3NDJkM2VhOTAgY29uZmlndXJlLmFjCistLS0gYS9jb25maWd1cmUuYWMJVHVlIERlYyAyNyAxNTozMDozNSAyMDExICswODAwCisrKysgYi9jb25maWd1cmUuYWMJVHVlIERlYyAyNyAxNjoyNjowMyAyMDExICswODAwCitAQCAtNSw3ICs1LDcgQEAKKyBBQ19QUkVSRVEoWzIuNTldKQorIAorIEFDX0NPTkZJR19IRUFERVJTKFtjb25maWcuaF0pCistQ0ZMQUdTPSIke0NGTEFHU30gLVdhbGwgLVdlcnJvciIKKytDRkxBR1M9IiR7Q0ZMQUdTfSAtV2FsbCIKKyAKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICMgU2V0IHRoZSBzaGFyZWQgdmVyc2lvbmluZyBpbmZvLCBhY2NvcmRpbmcgdG8gc2VjdGlvbiA2LjMgb2YgdGhlIGxpYnRvb2wgaW5mbyAjCitAQCAtMTIyLDYgKzEyMiwxNCBAQAorICAgICBbd2l0aF9hbmRyb2lkPSRlbmFibGV2YWxdLAorICAgICBbd2l0aF9hbmRyb2lkPW5vXSkKKyAKKytBQ19BUkdfRU5BQkxFKAorKyAgICBbV2Vycm9yXSwKKysgICAgW0FDX0hFTFBfU1RSSU5HKAorKyAgICAgICAgWy0tZGlzYWJsZS1XZXJyb3JdLAorKyAgICAgICAgW3doZXRoZXIgdG8gZGlhYmxlIHRyZWF0aW5nIGdjYyB3YXJuaW5ncyBhcyBlcnJvcnNdKV0sCisrICAgIFt3aXRoX1dlcnJvcj0kZW5hYmxldmFsXSwKKysgICAgW3dpdGhfV2Vycm9yPXllc10pCisrCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAjIENoZWNrIGZvciBwcm9ncmFtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitAQCAtMTkzLDYgKzIwMSwxMCBAQAorICBDRkdfREVCVUdfTEVWRUw9MjU1CisgZmkKKyAKKytpZiB0ZXN0ICJ4JHdpdGhfV2Vycm9yIiA9ICJ4eWVzIjsgdGhlbgorKyBDRkxBR1M9IiR7Q0ZMQUdTfSAtV2Vycm9yIgorK2ZpCisrCisgQUNfU1VCU1QoQ0ZHX0RFQlVHX0xFVkVMKQorIENGTEFHUz0iJHtDRkxBR1N9IC1EQ09ORklHX0RFQlVHX0xFVkVMPSRDRkdfREVCVUdfTEVWRUwiCisgCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJvbXhpbC9saWJvbXhpbC0wLjkuMy9kaXNhYmxlLXNvLXZlcnNpb25pbmcucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJvbXhpbC9saWJvbXhpbC0wLjkuMy9kaXNhYmxlLXNvLXZlcnNpb25pbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQwOGU0YQotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm9teGlsL2xpYm9teGlsLTAuOS4zL2Rpc2FibGUtc28tdmVyc2lvbmluZy5wYXRjaApAQCAtMCwwICsxLDM2IEBACitEaXNhYmxlIHNvIHZlcnNpb25pbmcgc2luY2UgdGhleSBhcmUgcmVhbGx5IG5vdCBhIHZlcnNpb25lZCBzaGFyZWQgbGliLgorCitVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBAIGh0dHBzOi8vc291cmNlZm9yZ2UubmV0L3Avb214aWwvYnVncy81OS8KKworU2lnbmVkLW9mZi1ieTogRHJldyBNb3NlbGV5IDxkcmV3X21vc2VsZXlAbWVudG9yLmNvbT4KKworZGlmZiAtcnViIGxpYm9teGlsLWJlbGxhZ2lvLTAuOS4zLW9yaWcvc3JjL2NvbXBvbmVudHMvYXVkaW9fZWZmZWN0cy9NYWtlZmlsZS5hbSBsaWJvbXhpbC1iZWxsYWdpby0wLjkuMy9zcmMvY29tcG9uZW50cy9hdWRpb19lZmZlY3RzL01ha2VmaWxlLmFtCistLS0gbGlib214aWwtYmVsbGFnaW8tMC45LjMtb3JpZy9zcmMvY29tcG9uZW50cy9hdWRpb19lZmZlY3RzL01ha2VmaWxlLmFtCTIwMTQtMDctMjAgMTU6MjI6MDAuODU4NDI1MjM0IC0wNDAwCisrKysgbGlib214aWwtYmVsbGFnaW8tMC45LjMvc3JjL2NvbXBvbmVudHMvYXVkaW9fZWZmZWN0cy9NYWtlZmlsZS5hbQkyMDE0LTA3LTIwIDE1OjI1OjQyLjY4NzUyNTIyNSAtMDQwMAorQEAgLTEwLDQgKzEwLDUgQEAKKyBsaWJvbXhhdWRpb19lZmZlY3RzX2xhX0NGTEFHUyA9IC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIFwKKyAJCQkJLUkkKHRvcF9zcmNkaXIpL3NyYyBcCisgCQkJCS1JJCh0b3Bfc3JjZGlyKS9zcmMvYmFzZQorK2xpYm9teGF1ZGlvX2VmZmVjdHNfbGFfTERGTEFHUyA9IC1hdm9pZC12ZXJzaW9uCisgCitkaWZmIC1ydWIgbGlib214aWwtYmVsbGFnaW8tMC45LjMtb3JpZy9zcmMvY29tcG9uZW50cy9jbG9ja3NyYy9NYWtlZmlsZS5hbSBsaWJvbXhpbC1iZWxsYWdpby0wLjkuMy9zcmMvY29tcG9uZW50cy9jbG9ja3NyYy9NYWtlZmlsZS5hbQorLS0tIGxpYm9teGlsLWJlbGxhZ2lvLTAuOS4zLW9yaWcvc3JjL2NvbXBvbmVudHMvY2xvY2tzcmMvTWFrZWZpbGUuYW0JMjAxNC0wNy0yMCAxNToyMjowMC44NTg0MjUyMzQgLTA0MDAKKysrKyBsaWJvbXhpbC1iZWxsYWdpby0wLjkuMy9zcmMvY29tcG9uZW50cy9jbG9ja3NyYy9NYWtlZmlsZS5hbQkyMDE0LTA3LTIwIDE1OjI0OjQ5LjE1MTI1OTc1MyAtMDQwMAorQEAgLTEwLDQgKzEwLDQgQEAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1JJCh0b3Bfc3JjZGlyKS9zcmMgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUkkKHRvcF9zcmNkaXIpL3NyYy9iYXNlCistCisrbGlib214Y2xvY2tzcmNfbGFfTERGTEFHUyA9IC1hdm9pZC12ZXJzaW9uCitkaWZmIC1ydWIgbGlib214aWwtYmVsbGFnaW8tMC45LjMtb3JpZy9zcmMvY29tcG9uZW50cy92aWRlb3NjaGVkdWxlci9NYWtlZmlsZS5hbSBsaWJvbXhpbC1iZWxsYWdpby0wLjkuMy9zcmMvY29tcG9uZW50cy92aWRlb3NjaGVkdWxlci9NYWtlZmlsZS5hbQorLS0tIGxpYm9teGlsLWJlbGxhZ2lvLTAuOS4zLW9yaWcvc3JjL2NvbXBvbmVudHMvdmlkZW9zY2hlZHVsZXIvTWFrZWZpbGUuYW0JMjAxNC0wNy0yMCAxNToyMjowMC44NjI0MjUyNTQgLTA0MDAKKysrKyBsaWJvbXhpbC1iZWxsYWdpby0wLjkuMy9zcmMvY29tcG9uZW50cy92aWRlb3NjaGVkdWxlci9NYWtlZmlsZS5hbQkyMDE0LTA3LTIwIDE1OjIyOjM2LjQ2MjYwMTc4NiAtMDQwMAorQEAgLTYsNyArNiw3IEBACisgCQkJCQkJCQlsaWJyYXJ5X2VudHJ5X3BvaW50LmMKKyAKKyBsaWJvbXh2aWRlb3NjaGVkX2xhX0xJQkFERCA9ICQodG9wX2J1aWxkZGlyKS9zcmMvbGlib214aWwtYmVsbGFnaW8ubGEKKy1saWJvbXh2aWRlb3NjaGVkX2xhX0xERkxBR1MgPSAKKytsaWJvbXh2aWRlb3NjaGVkX2xhX0xERkxBR1MgPSAtYXZvaWQtdmVyc2lvbgorIGxpYm9teHZpZGVvc2NoZWRfbGFfQ0ZMQUdTID0gLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgXAorIAkJCS1JJCh0b3Bfc3JjZGlyKS9zcmMgXAorIAkJCS1JJCh0b3Bfc3JjZGlyKS9zcmMvYmFzZQpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlib214aWwvbGlib214aWwtMC45LjMvZHluYW1pY2xvYWRlci1saW5raW5nLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlib214aWwvbGlib214aWwtMC45LjMvZHluYW1pY2xvYWRlci1saW5raW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4Nzk1M2EKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJvbXhpbC9saWJvbXhpbC0wLjkuMy9keW5hbWljbG9hZGVyLWxpbmtpbmcucGF0Y2gKQEAgLTAsMCArMSwyMCBAQAorVGhpcyBwYXRjaCBmaXhlcyBsaW5rIGlzc3VlIHdoZW4gbGlib214ZHluYW1pY2xvYWRlci5zbyBpcyBsb2FkZWQgOgorTWlzc2luZyBzeW1ib2wgUk1fRGVpbml0LgorCitUaGlzIHBhdGNoIGNvbWVzIGZyb20gImh0dHA6Ly9wa2dzLmZlZG9yYXByb2plY3Qub3JnL2NnaXQvbGlib214aWwtYmVsbGFnaW8uZ2l0L2NvbW1pdC8/aD1mMTcmaWQ9NDk5NmE5NTgyODk0M2QzNDVlNTFkZWQ2ODc2YzMxMDM2NTNlZWNmOCIKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCisKK1NpZ25lZC1vZmYtYnk6IFPDqWJhc3RpZW4gTWVubmV0cmllciA8cy5tZW5uZXRyaWVyQGlubm90aXMub3JnPgorCistLS0gYS9zcmMvZHluYW1pY19sb2FkZXIvTWFrZWZpbGUuYW0JMjAxNC0wMi0yNSAxNToyOToxMC4xMjg1NDk2MzYgKzAxMDAKKysrKyBiL3NyYy9keW5hbWljX2xvYWRlci9NYWtlZmlsZS5hbQkyMDE0LTAyLTI1IDE1OjMwOjE1Ljc1NjU0ODgwOCArMDEwMAorQEAgLTMsNyArMyw3IEBACisgb214ZHluYW1pY2xvYWRlcl9MVExJQlJBUklFUyA9IGxpYm9teGR5bmFtaWNsb2FkZXIubGEKKyBsaWJvbXhkeW5hbWljbG9hZGVyX2xhX1NPVVJDRVMgPSBzdGVfZHluYW1pY19jb21wb25lbnRfbG9hZGVyLmMgc3RlX2R5bmFtaWNfY29tcG9uZW50X2xvYWRlci5oCisgCistbGlib214ZHluYW1pY2xvYWRlcl9sYV9MREZMQUdTID0KKytsaWJvbXhkeW5hbWljbG9hZGVyX2xhX0xERkxBR1MgPSAtbG9teGlsLWJlbGxhZ2lvIC1MJCh0b3BfYnVpbGRkaXIpL3NyYy8ubGlicworIGxpYm9teGR5bmFtaWNsb2FkZXJfbGFfQ0ZMQUdTID0gLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgXAorIAkJCS1JJCh0b3Bfc3JjZGlyKS9zcmMgXAorIAkJCS1JJCh0b3Bfc3JjZGlyKS9zcmMvYmFzZSBcCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJvbXhpbC9saWJvbXhpbC0wLjkuMy9tYWtlZmlsZS1kb2NkaXItZml4LnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlib214aWwvbGlib214aWwtMC45LjMvbWFrZWZpbGUtZG9jZGlyLWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmU4YzQxCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlib214aWwvbGlib214aWwtMC45LjMvbWFrZWZpbGUtZG9jZGlyLWZpeC5wYXRjaApAQCAtMCwwICsxLDE5IEBACitUaGlzIHBhdGNoIGlzIHRvIHJlbW92ZSBERVNURElSIGluIGRvY2Rpci4KK090aGVyd2lzZSwgd2hlbiB1c2VycyBpbnN0YWxsIGJ5IHJ1bm5pbmcgYG1ha2UgaW5zdGFsbCBERVNURElSPS9hbHRlcm5hdGUvZGlyZWN0b3J5JyBzcGVjaWZpZWQgaW4gdGhlIGZpbGUgSU5TVEFMTCwgdGhlIGRvYyB3aWxsIGdvIGludG8gL2FsdGVybmF0ZS9kaXJlY3RvcnkvYWx0ZXJuYXRlL2RpcmVjdG9yeSwgd2hpY2ggaXMgbm90IGV4cGVjdGVkLgorCitVcHN0cmVhbS1TdGF0dXM6IFBlbmRpbmcKKworU2lnbmVkLW9mZi1ieTogU2hhbmUgV2FuZyA8c2hhbmUud2FuZ0BpbnRlbC5jb20+CisKK2RpZmYgLXIgMzBiNTk3ZTRlNzBkIE1ha2VmaWxlLmFtCistLS0gYS9NYWtlZmlsZS5hbQlXZWQgRGVjIDI4IDE1OjM4OjM1IDIwMTEgKzA4MDAKKysrKyBiL01ha2VmaWxlLmFtCVdlZCBEZWMgMjggMTU6Mzk6MjUgMjAxMSArMDgwMAorQEAgLTcsNyArNyw3IEBACisgcGtnY29uZmlnZGlyID0gJChsaWJkaXIpL3BrZ2NvbmZpZworIHBrZ2NvbmZpZ19EQVRBID0gbGlib214aWwtYmVsbGFnaW8ucGMKKyAKKy1kb2NkaXIgPSAkKERFU1RESVIpJChwcmVmaXgpL3NoYXJlL2RvYy9AUEFDS0FHRUAKKytkb2NkaXIgPSAkKHByZWZpeCkvc2hhcmUvZG9jL0BQQUNLQUdFQAorIGRvY19EQVRBID0gUkVBRE1FIFwKKyAJICAgQ2hhbmdlTG9nIFwKKyAJICAgVE9ETwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlib214aWwvbGlib214aWwtMC45LjMvcGFyYWxsZWwtbWFrZS5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm9teGlsL2xpYm9teGlsLTAuOS4zL3BhcmFsbGVsLW1ha2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDgzY2ExMwotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm9teGlsL2xpYm9teGlsLTAuOS4zL3BhcmFsbGVsLW1ha2UucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorVGhpcyBwYXRjaCBpcyB0byBtYWtlIGxpYm9teGlsIE1ha2VmaWxlIHN1cHBvcnQgIm1ha2UgLWpOIi4KK1RoZSBvbXhyZWdpc3Rlcl9iZWxsYWdpbyBzdHVmZnMgZGVwZW5kIG9uIGxpYm9teGlsX2JlbGxhZ2lvIGxpYnJhcnkuCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitTaWduZWQtb2ZmLWJ5OiBTaGFuZSBXYW5nIDxzaGFuZS53YW5nQGludGVsLmNvbT4KKworZGlmZiAtciBmNTlkMDc3ZDNkZDUgTWFrZWZpbGUuYW0KKy0tLSBhL3NyYy9NYWtlZmlsZS5hbQlXZWQgRGVjIDI4IDEwOjU0OjM2IDIwMTEgKzA4MDAKKysrKyBiL3NyYy9NYWtlZmlsZS5hbQlXZWQgRGVjIDI4IDEwOjU1OjQ2IDIwMTEgKzA4MDAKK0BAIC03LDYgKzcsNyBAQAorIG9teHJlZ2lzdGVyX2JlbGxhZ2lvX1NPVVJDRVMgPSBvbXhyZWdpc3Rlci5jIGNvbW1vbi5jIGNvbW1vbi5oCisgb214cmVnaXN0ZXJfYmVsbGFnaW9fQ0ZMQUdTID0gLURPTVhJTENPTVBPTkVOVFNQQVRIPVwiJChwbHVnaW5kaXIpL1wiIFwKKyAJCQkgICAgICAtSSQodG9wX3NyY2RpcikvaW5jbHVkZQorK29teHJlZ2lzdGVyX2JlbGxhZ2lvX0xEQUREID0gJChsaWJfTFRMSUJSQVJJRVMpCisgb214cmVnaXN0ZXJfYmVsbGFnaW9fTERGTEFHUyA9IC1sb214aWwtYmVsbGFnaW8gLUwkKGJ1aWxkZGlyKQorIAorIGxpYl9MVExJQlJBUklFUyA9IGxpYm9teGlsLWJlbGxhZ2lvLmxhCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJvbXhpbC9saWJvbXhpbF8wLjkuMy5iYiBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYm9teGlsL2xpYm9teGlsXzAuOS4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwZDZkZjgKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJvbXhpbC9saWJvbXhpbF8wLjkuMy5iYgpAQCAtMCwwICsxLDM5IEBACitTVU1NQVJZID0gIkJlbGxhZ2lvIE9wZW5NQVggSW50ZWdyYXRpb24gTGF5ZXIgKElMKSIKK0RFU0NSSVBUSU9OID0gIkJlbGxhZ2lvIGlzIGFuIG9wZW5zb3VyY2UgaW1wbGVtZW50YXRpb24gb2YgdGhlIEtocm9ub3MgT3Blbk1BWCBcCisgICAgICAgICAgICAgICBJbnRlZ3JhdGlvbiBMYXllciBBUEkgdG8gYWNjZXNzIG11bHRpbWVkaWEgY29tcG9uZW50cy4iCitIT01FUEFHRSA9ICJodHRwOi8vb214aWwuc291cmNlZm9yZ2UubmV0LyIKKworTElDRU5TRSA9ICJMR1BMdjIuMSsiCitMSUNFTlNFX0ZMQUdTID0gImNvbW1lcmNpYWwiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT1hZTZmMGY0ZGJjN2FjMTkzYjUwZjMyM2E2YWUxOTFjYiBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvb214Y29yZS5oO2JlZ2lubGluZT0xO2VuZGxpbmU9Mjc7bWQ1PTgwNmIxZTU1NjZjMDY0ODZmZThlNDJiNDYxZTAzYTkwIgorCitTUkNfVVJJID0gIiR7U09VUkNFRk9SR0VfTUlSUk9SfS9vbXhpbC9saWJvbXhpbC1iZWxsYWdpby0ke1BWfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vY29uZmlndXJlLWZpeC5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly9wYXJhbGxlbC1tYWtlLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL21ha2VmaWxlLWRvY2Rpci1maXgucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vZHluYW1pY2xvYWRlci1saW5raW5nLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2Rpc2FibGUtc28tdmVyc2lvbmluZy5wYXRjaCIKKworU1JDX1VSSVttZDVzdW1dID0gImExZGU4MjdmZGI3NWMwMmM4NGU1NWY3NDBjYTI3Y2I4IgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjU5M2MwNzI5YzhlZjhjMTQ2N2IzYmZlZmNmMzU1ZWMxOWE0NmRkOTJlMzFiZmMyODBlMTdkOTZiMDkzNGQ3NGMiCisKK1MgPSAiJHtXT1JLRElSfS8ke0JQTn0tYmVsbGFnaW8tJHtQVn0iCisKK2luaGVyaXQgYXV0b3Rvb2xzCisKK0VYVFJBX09FQ09ORiArPSAiLS1kaXNhYmxlLWRvYyAtLWRpc2FibGUtV2Vycm9yIgorCisjCisjIFRoZSAuc28gZmlsZXMgdW5kZXIgJHtsaWJkaXJ9L2JlbGxhZ2lvIGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgdmVyc2lvbmVkIGFuZCBzeW1saW5rZWQuCisjIE1ha2Ugc3VyZSB0aGV5IGdldCBwYWNrYWdlZCBpbiB0aGUgbWFpbiBwYWNrYWdlLgorIworRklMRVNfJHtQTn0gKz0gIiR7bGliZGlyfS9iZWxsYWdpby8qLnNvIFwKKyAgICAgICAgICAgICAgICAke2xpYmRpcn0vb214bG9hZGVycy8qJHtTT0xJQlN9IgorRklMRVNfJHtQTn0tc3RhdGljZGV2ICs9ICIke2xpYmRpcn0vYmVsbGFnaW8vKi5hIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJHtsaWJkaXJ9L29teGxvYWRlcnMvKi5hIgorRklMRVNfJHtQTn0tZGV2ICs9ICIke2xpYmRpcn0vYmVsbGFnaW8vKi5sYSBcCisgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9vbXhsb2FkZXJzLyoubGEgXAorICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vb214bG9hZGVycy8qJHtTT0xJQlNERVZ9IgorRklMRVNfJHtQTn0tZGJnICs9ICIke2xpYmRpcn0vYmVsbGFnaW8vLmRlYnVnLyBcCisgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9vbXhsb2FkZXJzLy5kZWJ1Zy8iCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJwbmcvbGlicG5nXzEuNi4xNy5iYiBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYnBuZy9saWJwbmdfMS42LjE3LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwZTU4MDgKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJwbmcvbGlicG5nXzEuNi4xNy5iYgpAQCAtMCwwICsxLDI3IEBACitTVU1NQVJZID0gIlBORyBpbWFnZSBmb3JtYXQgZGVjb2RpbmcgbGlicmFyeSIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cubGlicG5nLm9yZy8iCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkxpYnBuZyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0xJQ0VOU0U7bWQ1PWI5Yjc1Mzk5YjcyZTRhODY1NmNmM2E2ZGRmYzg2ZDlhIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL3BuZy5oO2VuZGxpbmU9MTY7bWQ1PWNjOWMyZDFlYWZkYTE3ZTEyNzdhNmY5OWE5ZmMyOWM0IFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL3BuZy5oO2JlZ2lubGluZT0yNDI7ZW5kbGluZT0zNTY7bWQ1PTU5OTMxNjgxOWQ1MjVkZGUyYmZkZjI4ZmUzZjMyM2FmIgorREVQRU5EUyA9ICJ6bGliIgorTElCViA9ICIxNiIKKworU1JDX1VSSSA9ICIke1NPVVJDRUZPUkdFX01JUlJPUn0vcHJvamVjdC9saWJwbmcvbGlicG5nJHtMSUJWfS8ke1BWfS9saWJwbmctJHtQVn0udGFyLnh6IFwKKyAgICAgICAgICAiCitTUkNfVVJJW21kNXN1bV0gPSAiNDMwYTliNzZiNzg1MzMyMzVjZDRiOWIyNmNlNzVjN2UiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOTg1MDdiNTVmYmU1Y2Q0M2M1MTk4MWYyOTI0ZTQ2NzFmZDgxZmUzNWQ1MmRjNTMzNTdlMjBmMmM3N2ZhNWRmZCIKKworQklOQ09ORklHID0gIiR7YmluZGlyfS9saWJwbmctY29uZmlnICR7YmluZGlyfS9saWJwbmcxNi1jb25maWciCisKK2luaGVyaXQgYXV0b3Rvb2xzIGJpbmNvbmZpZy1kaXNhYmxlZCBwa2djb25maWcKKworIyBXb3JrIGFyb3VuZCBtaXNzaW5nIHN5bWJvbHMKK0VYVFJBX09FQ09ORl9hcHBlbmRfY2xhc3MtdGFyZ2V0ID0gIiAke0BiYi51dGlscy5jb250YWlucygiVFVORV9GRUFUVVJFUyIsICJuZW9uIiwgIi0tZW5hYmxlLWFybS1uZW9uPW9uIiwgIi0tZW5hYmxlLWFybS1uZW9uPW9mZiIgLGQpfSIKKworUEFDS0FHRVMgPSsgIiR7UE59LXRvb2xzIgorCitGSUxFU18ke1BOfS10b29scyA9ICIke2JpbmRpcn0vcG5nLWZpeC1pdHh0ICR7YmluZGlyfS9wbmdmaXgiCisKK0JCQ0xBU1NFWFRFTkQgPSAibmF0aXZlIG5hdGl2ZXNkayIKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYnNhbXBsZXJhdGUvbGlic2FtcGxlcmF0ZTBfMC4xLjguYmIgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJzYW1wbGVyYXRlL2xpYnNhbXBsZXJhdGUwXzAuMS44LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwNjkzNWMKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJzYW1wbGVyYXRlL2xpYnNhbXBsZXJhdGUwXzAuMS44LmJiCkBAIC0wLDAgKzEsMTggQEAKK1NVTU1BUlkgPSAiQXVkaW8gU2FtcGxlIFJhdGUgQ29udmVyc2lvbiBsaWJyYXJ5IgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5tZWdhLW5lcmQuY29tL1NSQy8iCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkdQTHYyKyIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTk0ZDU1ZDUxMmE5YmEzNmNhYTliN2RmMDc5YmFlMTlmIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL3NyYy9zYW1wbGVyYXRlLmM7YmVnaW5saW5lPTE7ZW5kbGluZT0xNzttZDU9ZDA4MDdjMzVmYzkwNjQ2NmQyNGE1MDQ2MzUzNDgxNWEiCitERVBFTkRTID0gImZsYWMgbGlic25kZmlsZTEiCitQUiA9ICJyMSIKKworU1JDX1VSSSA9ICJodHRwOi8vd3d3Lm1lZ2EtbmVyZC5jb20vU1JDL2xpYnNhbXBsZXJhdGUtJHtQVn0udGFyLmd6IgorCitTUkNfVVJJW21kNXN1bV0gPSAiMWM3ZmIyNTE5MWI0ZTZlMzYyOGQxOThhNjZhODRmNDciCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiOTNiNTRiZGY0NmQ1ZTZkMjM1NGI3MDM0Mzk1ZmUzMjljMjIyYTk2Njc5MGRlMzQ1MjA3MDJiYjk2NDJmMWMwNiIKK1MgPSAiJHtXT1JLRElSfS9saWJzYW1wbGVyYXRlLSR7UFZ9IgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworUEFDS0FHRUNPTkZJR1tmZnR3XSA9ICIsLS1kaXNhYmxlLWZmdHcsZmZ0dyIKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYnNuZGZpbGUvZmlsZXMvMDAwMS1zcmMtc2QyLmMtRml4LXNlZ2ZhdWx0LWluLVNEMi1SU1JDLXBhcnNlci5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYnNuZGZpbGUvZmlsZXMvMDAwMS1zcmMtc2QyLmMtRml4LXNlZ2ZhdWx0LWluLVNEMi1SU1JDLXBhcnNlci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZDQ4NzEwCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlic25kZmlsZS9maWxlcy8wMDAxLXNyYy1zZDIuYy1GaXgtc2VnZmF1bHQtaW4tU0QyLVJTUkMtcGFyc2VyLnBhdGNoCkBAIC0wLDAgKzEsMjExIEBACitGcm9tIDkzNDFlOWM2ZTcwY2QzYWQ3NmM5MDFjM2NmMDUyZDRjYjUyZmQ4MjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBFcmlrIGRlIENhc3RybyBMb3BvIDxlcmlrZEBtZWdhLW5lcmQuY29tPgorRGF0ZTogVGh1LCAyNyBKdW4gMjAxMyAxODowNDowMyArMTAwMAorU3ViamVjdDogW1BBVENIXSBzcmMvc2QyLmMgOiBGaXggc2VnZmF1bHQgaW4gU0QyIFJTUkMgcGFyc2VyLgorCisoVXBzdHJlYW0gY29tbWl0IDkzNDFlOWM2ZTcwY2QzYWQ3NmM5MDFjM2NmMDUyZDRjYjUyZmQ4MjcpCisKK0Egc3BlY2lhbGx5IGNyYWZ0ZWQgcmVzb3VyY2UgZm9yayBmb3IgYW4gU0QyIGZpbGUgY2FuIGNhdXNlCit0aGUgU0QyIFJTUkMgcGFyc2VyIHRvIHJlYWQgZGF0YSBmcm9tIG91dHNpZGUgYSBkeW5hbWljYWxseQorZGVmaW5lZCBidWZmZXIuIFRoZSBkYXRhIHRoYXQgaXMgcmVhZCBpcyBjb252ZXJ0ZWQgaW50byBhCitzaG9ydCBvciBpbnQgYW5kIHVzZWQgZHVyaW5nIGZ1cnRoZXIgcHJvY2Vzc2luZy4KKworU2luY2Ugbm8gd3JpdGUgb2NjdXJzLCB0aGlzIGlzIHVubGlrZWx5IHRvIGJlIGV4cGxvaXRhYmxlLgorCitCdWcgcmVwb3J0ZWQgYnkgVGhlIE1heWhlbSBUZWFtIGZyb20gQ3lsYWIsIENhcm5lZ2llIE1lbGxvbgorVW5pdmVyaXN0eS4gUGFwZXIgaXM6CitodHRwOi8vdXNlcnMuZWNlLmNtdS5lZHUvfmFyZWJlcnQvcGFwZXJzL21heWhlbS1vYWtsYW5kLTEyLnBkZgorCitVcHN0cmVhbS1TdGF0dXM6IEJhY2twb3J0CisKK1NpZ25lZC1vZmYtYnk6IFl1ZSBUYW8gPHl1ZS50YW9Ad2luZHJpdmVyLmNvbT4KKy0tLQorIHNyYy9zZDIuYyB8ICAgOTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9zZDIuYyBiL3NyYy9zZDIuYworaW5kZXggMzVjZTM2Yi4uNmJlMTUwYyAxMDA2NDQKKy0tLSBhL3NyYy9zZDIuYworKysrIGIvc3JjL3NkMi5jCitAQCAtMSw1ICsxLDUgQEAKKyAvKgorLSoqIENvcHlyaWdodCAoQykgMjAwMS0yMDExIEVyaWsgZGUgQ2FzdHJvIExvcG8gPGVyaWtkQG1lZ2EtbmVyZC5jb20+CisrKiogQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgRXJpayBkZSBDYXN0cm8gTG9wbyA8ZXJpa2RAbWVnYS1uZXJkLmNvbT4KKyAqKiBDb3B5cmlnaHQgKEMpIDIwMDQgUGFhdm8gSnVtcHBhbmVuCisgKioKKyAqKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorQEAgLTM3MSw0NCArMzcxLDYxIEBAIHNkMl93cml0ZV9yc3JjX2ZvcmsgKFNGX1BSSVZBVEUgKnBzZiwgaW50IFVOVVNFRCAoY2FsY19sZW5ndGgpKQorICovCisgCisgc3RhdGljIGlubGluZSBpbnQKKy1yZWFkX2NoYXIgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBkYXRhLCBpbnQgb2Zmc2V0KQorLXsJcmV0dXJuIGRhdGEgW29mZnNldF0gOworLX0gLyogcmVhZF9jaGFyICovCisrcmVhZF9yc3JjX2NoYXIgKGNvbnN0IFNEMl9SU1JDICpwcnNyYywgaW50IG9mZnNldCkKKyt7CWNvbnN0IHVuc2lnbmVkIGNoYXIgKiBkYXRhID0gcHJzcmMtPnJzcmNfZGF0YSA7CisrCWlmIChvZmZzZXQgPCAwIHx8IG9mZnNldCA+PSBwcnNyYy0+cnNyY19sZW4pCisrCQlyZXR1cm4gMCA7CisrCXJldHVybiBkYXRhIFtvZmZzZXRdIDsKKyt9IC8qIHJlYWRfcnNyY19jaGFyICovCisgCisgc3RhdGljIGlubGluZSBpbnQKKy1yZWFkX3Nob3J0IChjb25zdCB1bnNpZ25lZCBjaGFyICogZGF0YSwgaW50IG9mZnNldCkKKy17CXJldHVybiAoZGF0YSBbb2Zmc2V0XSA8PCA4KSArIGRhdGEgW29mZnNldCArIDFdIDsKKy19IC8qIHJlYWRfc2hvcnQgKi8KKytyZWFkX3JzcmNfc2hvcnQgKGNvbnN0IFNEMl9SU1JDICpwcnNyYywgaW50IG9mZnNldCkKKyt7CWNvbnN0IHVuc2lnbmVkIGNoYXIgKiBkYXRhID0gcHJzcmMtPnJzcmNfZGF0YSA7CisrCWlmIChvZmZzZXQgPCAwIHx8IG9mZnNldCArIDEgPj0gcHJzcmMtPnJzcmNfbGVuKQorKwkJcmV0dXJuIDAgOworKwlyZXR1cm4gKGRhdGEgW29mZnNldF0gPDwgOCkgKyBkYXRhIFtvZmZzZXQgKyAxXSA7CisrfSAvKiByZWFkX3JzcmNfc2hvcnQgKi8KKyAKKyBzdGF0aWMgaW5saW5lIGludAorLXJlYWRfaW50IChjb25zdCB1bnNpZ25lZCBjaGFyICogZGF0YSwgaW50IG9mZnNldCkKKy17CXJldHVybiAoZGF0YSBbb2Zmc2V0XSA8PCAyNCkgKyAoZGF0YSBbb2Zmc2V0ICsgMV0gPDwgMTYpICsgKGRhdGEgW29mZnNldCArIDJdIDw8IDgpICsgZGF0YSBbb2Zmc2V0ICsgM10gOworLX0gLyogcmVhZF9pbnQgKi8KKytyZWFkX3JzcmNfaW50IChjb25zdCBTRDJfUlNSQyAqcHJzcmMsIGludCBvZmZzZXQpCisrewljb25zdCB1bnNpZ25lZCBjaGFyICogZGF0YSA9IHByc3JjLT5yc3JjX2RhdGEgOworKwlpZiAob2Zmc2V0IDwgMCB8fCBvZmZzZXQgKyAzID49IHByc3JjLT5yc3JjX2xlbikKKysJCXJldHVybiAwIDsKKysJcmV0dXJuIChkYXRhIFtvZmZzZXRdIDw8IDI0KSArIChkYXRhIFtvZmZzZXQgKyAxXSA8PCAxNikgKyAoZGF0YSBbb2Zmc2V0ICsgMl0gPDwgOCkgKyBkYXRhIFtvZmZzZXQgKyAzXSA7CisrfSAvKiByZWFkX3JzcmNfaW50ICovCisgCisgc3RhdGljIGlubGluZSBpbnQKKy1yZWFkX21hcmtlciAoY29uc3QgdW5zaWduZWQgY2hhciAqIGRhdGEsIGludCBvZmZzZXQpCisteworK3JlYWRfcnNyY19tYXJrZXIgKGNvbnN0IFNEMl9SU1JDICpwcnNyYywgaW50IG9mZnNldCkKKyt7CWNvbnN0IHVuc2lnbmVkIGNoYXIgKiBkYXRhID0gcHJzcmMtPnJzcmNfZGF0YSA7CisrCisrCWlmIChvZmZzZXQgPCAwIHx8IG9mZnNldCArIDMgPj0gcHJzcmMtPnJzcmNfbGVuKQorKwkJcmV0dXJuIDAgOworKworIAlpZiAoQ1BVX0lTX0JJR19FTkRJQU4pCisgCQlyZXR1cm4gKGRhdGEgW29mZnNldF0gPDwgMjQpICsgKGRhdGEgW29mZnNldCArIDFdIDw8IDE2KSArIChkYXRhIFtvZmZzZXQgKyAyXSA8PCA4KSArIGRhdGEgW29mZnNldCArIDNdIDsKKy0JZWxzZSBpZiAoQ1BVX0lTX0xJVFRMRV9FTkRJQU4pCisrCWlmIChDUFVfSVNfTElUVExFX0VORElBTikKKyAJCXJldHVybiBkYXRhIFtvZmZzZXRdICsgKGRhdGEgW29mZnNldCArIDFdIDw8IDgpICsgKGRhdGEgW29mZnNldCArIDJdIDw8IDE2KSArIChkYXRhIFtvZmZzZXQgKyAzXSA8PCAyNCkgOworLQllbHNlCistCQlyZXR1cm4gMHg2NjYgOworLX0gLyogcmVhZF9tYXJrZXIgKi8KKysKKysJcmV0dXJuIDAgOworK30gLyogcmVhZF9yc3JjX21hcmtlciAqLworIAorIHN0YXRpYyB2b2lkCistcmVhZF9zdHIgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBkYXRhLCBpbnQgb2Zmc2V0LCBjaGFyICogYnVmZmVyLCBpbnQgYnVmZmVyX2xlbikKKy17CWludCBrIDsKKytyZWFkX3JzcmNfc3RyIChjb25zdCBTRDJfUlNSQyAqcHJzcmMsIGludCBvZmZzZXQsIGNoYXIgKiBidWZmZXIsIGludCBidWZmZXJfbGVuKQorK3sJY29uc3QgdW5zaWduZWQgY2hhciAqIGRhdGEgPSBwcnNyYy0+cnNyY19kYXRhIDsKKysJaW50IGsgOworIAorIAltZW1zZXQgKGJ1ZmZlciwgMCwgYnVmZmVyX2xlbikgOworIAorKwlpZiAob2Zmc2V0IDwgMCB8fCBvZmZzZXQgKyBidWZmZXJfbGVuID49IHByc3JjLT5yc3JjX2xlbikKKysJCXJldHVybiA7CisrCisgCWZvciAoayA9IDAgOyBrIDwgYnVmZmVyX2xlbiAtIDEgOyBrKyspCisgCXsJaWYgKHBzZl9pc3ByaW50IChkYXRhIFtvZmZzZXQgKyBrXSkgPT0gMCkKKyAJCQlyZXR1cm4gOworIAkJYnVmZmVyIFtrXSA9IGRhdGEgW29mZnNldCArIGtdIDsKKyAJCX0gOworIAlyZXR1cm4gOworLX0gLyogcmVhZF9zdHIgKi8KKyt9IC8qIHJlYWRfcnNyY19zdHIgKi8KKyAKKyBzdGF0aWMgaW50Cisgc2QyX3BhcnNlX3JzcmNfZm9yayAoU0ZfUFJJVkFURSAqcHNmKQorQEAgLTQzNSwxNyArNDUyLDE3IEBAIHNkMl9wYXJzZV9yc3JjX2ZvcmsgKFNGX1BSSVZBVEUgKnBzZikKKyAJLyogUmVzZXQgdGhlIGhlYWRlciBzdG9yYWdlIGJlY2F1c2Ugd2UgaGF2ZSBjaGFuZ2VkIHRvIHRoZSByc3JjZGVzLiAqLworIAlwc2YtPmhlYWRpbmRleCA9IHBzZi0+aGVhZGVuZCA9IHJzcmMucnNyY19sZW4gOworIAorLQlyc3JjLmRhdGFfb2Zmc2V0ID0gcmVhZF9pbnQgKHJzcmMucnNyY19kYXRhLCAwKSA7CistCXJzcmMubWFwX29mZnNldCA9IHJlYWRfaW50IChyc3JjLnJzcmNfZGF0YSwgNCkgOworLQlyc3JjLmRhdGFfbGVuZ3RoID0gcmVhZF9pbnQgKHJzcmMucnNyY19kYXRhLCA4KSA7CistCXJzcmMubWFwX2xlbmd0aCA9IHJlYWRfaW50IChyc3JjLnJzcmNfZGF0YSwgMTIpIDsKKysJcnNyYy5kYXRhX29mZnNldCA9IHJlYWRfcnNyY19pbnQgKCZyc3JjLCAwKSA7CisrCXJzcmMubWFwX29mZnNldCA9IHJlYWRfcnNyY19pbnQgKCZyc3JjLCA0KSA7CisrCXJzcmMuZGF0YV9sZW5ndGggPSByZWFkX3JzcmNfaW50ICgmcnNyYywgOCkgOworKwlyc3JjLm1hcF9sZW5ndGggPSByZWFkX3JzcmNfaW50ICgmcnNyYywgMTIpIDsKKyAKKyAJaWYgKHJzcmMuZGF0YV9vZmZzZXQgPT0gMHg1MTYwNyAmJiByc3JjLm1hcF9vZmZzZXQgPT0gMHgyMDAwMCkKKyAJewlwc2ZfbG9nX3ByaW50ZiAocHNmLCAiVHJ5aW5nIG9mZnNldCBvZiAweDUyIGJ5dGVzLlxuIikgOworLQkJcnNyYy5kYXRhX29mZnNldCA9IHJlYWRfaW50IChyc3JjLnJzcmNfZGF0YSwgMHg1MiArIDApICsgMHg1MiA7CistCQlyc3JjLm1hcF9vZmZzZXQgPSByZWFkX2ludCAocnNyYy5yc3JjX2RhdGEsIDB4NTIgKyA0KSArIDB4NTIgOworLQkJcnNyYy5kYXRhX2xlbmd0aCA9IHJlYWRfaW50IChyc3JjLnJzcmNfZGF0YSwgMHg1MiArIDgpIDsKKy0JCXJzcmMubWFwX2xlbmd0aCA9IHJlYWRfaW50IChyc3JjLnJzcmNfZGF0YSwgMHg1MiArIDEyKSA7CisrCQlyc3JjLmRhdGFfb2Zmc2V0ID0gcmVhZF9yc3JjX2ludCAoJnJzcmMsIDB4NTIgKyAwKSArIDB4NTIgOworKwkJcnNyYy5tYXBfb2Zmc2V0ID0gcmVhZF9yc3JjX2ludCAoJnJzcmMsIDB4NTIgKyA0KSArIDB4NTIgOworKwkJcnNyYy5kYXRhX2xlbmd0aCA9IHJlYWRfcnNyY19pbnQgKCZyc3JjLCAweDUyICsgOCkgOworKwkJcnNyYy5tYXBfbGVuZ3RoID0gcmVhZF9yc3JjX2ludCAoJnJzcmMsIDB4NTIgKyAxMikgOworIAkJfSA7CisgCisgCXBzZl9sb2dfcHJpbnRmIChwc2YsICIgIGRhdGEgb2Zmc2V0IDogMHglMDRYXG4gIG1hcCAgb2Zmc2V0IDogMHglMDRYXG4iCitAQCAtNDg4LDcgKzUwNSw3IEBAIHNkMl9wYXJzZV9yc3JjX2ZvcmsgKFNGX1BSSVZBVEUgKnBzZikKKyAJCWdvdG8gcGFyc2VfcnNyY19mb3JrX2NsZWFudXAgOworIAkJfSA7CisgCistCXJzcmMuc3RyaW5nX29mZnNldCA9IHJzcmMubWFwX29mZnNldCArIHJlYWRfc2hvcnQgKHJzcmMucnNyY19kYXRhLCByc3JjLm1hcF9vZmZzZXQgKyAyNikgOworKwlyc3JjLnN0cmluZ19vZmZzZXQgPSByc3JjLm1hcF9vZmZzZXQgKyByZWFkX3JzcmNfc2hvcnQgKCZyc3JjLCByc3JjLm1hcF9vZmZzZXQgKyAyNikgOworIAlpZiAocnNyYy5zdHJpbmdfb2Zmc2V0ID4gcnNyYy5yc3JjX2xlbikKKyAJewlwc2ZfbG9nX3ByaW50ZiAocHNmLCAiQmFkIHN0cmluZyBvZmZzZXQgKCVkKS5cbiIsIHJzcmMuc3RyaW5nX29mZnNldCkgOworIAkJZXJyb3IgPSBTRkVfU0QyX0JBRF9SU1JDIDsKK0BAIC00OTcsNyArNTE0LDcgQEAgc2QyX3BhcnNlX3JzcmNfZm9yayAoU0ZfUFJJVkFURSAqcHNmKQorIAorIAlyc3JjLnR5cGVfb2Zmc2V0ID0gcnNyYy5tYXBfb2Zmc2V0ICsgMzAgOworIAorLQlyc3JjLnR5cGVfY291bnQgPSByZWFkX3Nob3J0IChyc3JjLnJzcmNfZGF0YSwgcnNyYy5tYXBfb2Zmc2V0ICsgMjgpICsgMSA7CisrCXJzcmMudHlwZV9jb3VudCA9IHJlYWRfcnNyY19zaG9ydCAoJnJzcmMsIHJzcmMubWFwX29mZnNldCArIDI4KSArIDEgOworIAlpZiAocnNyYy50eXBlX2NvdW50IDwgMSkKKyAJewlwc2ZfbG9nX3ByaW50ZiAocHNmLCAiQmFkIHR5cGUgY291bnQuXG4iKSA7CisgCQllcnJvciA9IFNGRV9TRDJfQkFEX1JTUkMgOworQEAgLTUxMywxMSArNTMwLDExIEBAIHNkMl9wYXJzZV9yc3JjX2ZvcmsgKFNGX1BSSVZBVEUgKnBzZikKKyAKKyAJcnNyYy5zdHJfaW5kZXggPSAtMSA7CisgCWZvciAoayA9IDAgOyBrIDwgcnNyYy50eXBlX2NvdW50IDsgayArKykKKy0JewltYXJrZXIgPSByZWFkX21hcmtlciAocnNyYy5yc3JjX2RhdGEsIHJzcmMudHlwZV9vZmZzZXQgKyBrICogOCkgOworKwl7CW1hcmtlciA9IHJlYWRfcnNyY19tYXJrZXIgKCZyc3JjLCByc3JjLnR5cGVfb2Zmc2V0ICsgayAqIDgpIDsKKyAKKyAJCWlmIChtYXJrZXIgPT0gU1RSX01BUktFUikKKyAJCXsJcnNyYy5zdHJfaW5kZXggPSBrIDsKKy0JCQlyc3JjLnN0cl9jb3VudCA9IHJlYWRfc2hvcnQgKHJzcmMucnNyY19kYXRhLCByc3JjLnR5cGVfb2Zmc2V0ICsgayAqIDggKyA0KSArIDEgOworKwkJCXJzcmMuc3RyX2NvdW50ID0gcmVhZF9yc3JjX3Nob3J0ICgmcnNyYywgcnNyYy50eXBlX29mZnNldCArIGsgKiA4ICsgNCkgKyAxIDsKKyAJCQllcnJvciA9IHBhcnNlX3N0cl9yc3JjIChwc2YsICZyc3JjKSA7CisgCQkJZ290byBwYXJzZV9yc3JjX2ZvcmtfY2xlYW51cCA7CisgCQkJfSA7CitAQCAtNTQ5LDI2ICs1NjYsMjYgQEAgcGFyc2Vfc3RyX3JzcmMgKFNGX1BSSVZBVEUgKnBzZiwgU0QyX1JTUkMgKiByc3JjKQorIAlmb3IgKGsgPSAwIDsgZGF0YV9vZmZzZXQgKyBkYXRhX2xlbiA8IHJzcmMtPnJzcmNfbGVuIDsgaysrKQorIAl7CWludCBzbGVuIDsKKyAKKy0JCXNsZW4gPSByZWFkX2NoYXIgKHJzcmMtPnJzcmNfZGF0YSwgc3RyX29mZnNldCkgOworLQkJcmVhZF9zdHIgKHJzcmMtPnJzcmNfZGF0YSwgc3RyX29mZnNldCArIDEsIG5hbWUsIFNGX01JTiAoU0lHTkVEX1NJWkVPRiAobmFtZSksIHNsZW4gKyAxKSkgOworKwkJc2xlbiA9IHJlYWRfcnNyY19jaGFyIChyc3JjLCBzdHJfb2Zmc2V0KSA7CisrCQlyZWFkX3JzcmNfc3RyIChyc3JjLCBzdHJfb2Zmc2V0ICsgMSwgbmFtZSwgU0ZfTUlOIChTSUdORURfU0laRU9GIChuYW1lKSwgc2xlbiArIDEpKSA7CisgCQlzdHJfb2Zmc2V0ICs9IHNsZW4gKyAxIDsKKyAKKy0JCXJzcmNfaWQgPSByZWFkX3Nob3J0IChyc3JjLT5yc3JjX2RhdGEsIHJzcmMtPml0ZW1fb2Zmc2V0ICsgayAqIDEyKSA7CisrCQlyc3JjX2lkID0gcmVhZF9yc3JjX3Nob3J0IChyc3JjLCByc3JjLT5pdGVtX29mZnNldCArIGsgKiAxMikgOworIAorLQkJZGF0YV9vZmZzZXQgPSByc3JjLT5kYXRhX29mZnNldCArIHJlYWRfaW50IChyc3JjLT5yc3JjX2RhdGEsIHJzcmMtPml0ZW1fb2Zmc2V0ICsgayAqIDEyICsgNCkgOworKwkJZGF0YV9vZmZzZXQgPSByc3JjLT5kYXRhX29mZnNldCArIHJlYWRfcnNyY19pbnQgKHJzcmMsIHJzcmMtPml0ZW1fb2Zmc2V0ICsgayAqIDEyICsgNCkgOworIAkJaWYgKGRhdGFfb2Zmc2V0IDwgMCB8fCBkYXRhX29mZnNldCA+IHJzcmMtPnJzcmNfbGVuKQorIAkJewlwc2ZfbG9nX3ByaW50ZiAocHNmLCAiRXhpdGluZyBwYXJzZXIgb24gZGF0YSBvZmZzZXQgb2YgJWQuXG4iLCBkYXRhX29mZnNldCkgOworIAkJCWJyZWFrIDsKKyAJCQl9IDsKKyAKKy0JCWRhdGFfbGVuID0gcmVhZF9pbnQgKHJzcmMtPnJzcmNfZGF0YSwgZGF0YV9vZmZzZXQpIDsKKysJCWRhdGFfbGVuID0gcmVhZF9yc3JjX2ludCAocnNyYywgZGF0YV9vZmZzZXQpIDsKKyAJCWlmIChkYXRhX2xlbiA8IDAgfHwgZGF0YV9sZW4gPiByc3JjLT5yc3JjX2xlbikKKyAJCXsJcHNmX2xvZ19wcmludGYgKHBzZiwgIkV4aXRpbmcgcGFyc2VyIG9uIGRhdGEgbGVuZ3RoIG9mICVkLlxuIiwgZGF0YV9sZW4pIDsKKyAJCQlicmVhayA7CisgCQkJfSA7CisgCistCQlzbGVuID0gcmVhZF9jaGFyIChyc3JjLT5yc3JjX2RhdGEsIGRhdGFfb2Zmc2V0ICsgNCkgOworLQkJcmVhZF9zdHIgKHJzcmMtPnJzcmNfZGF0YSwgZGF0YV9vZmZzZXQgKyA1LCB2YWx1ZSwgU0ZfTUlOIChTSUdORURfU0laRU9GICh2YWx1ZSksIHNsZW4gKyAxKSkgOworKwkJc2xlbiA9IHJlYWRfcnNyY19jaGFyIChyc3JjLCBkYXRhX29mZnNldCArIDQpIDsKKysJCXJlYWRfcnNyY19zdHIgKHJzcmMsIGRhdGFfb2Zmc2V0ICsgNSwgdmFsdWUsIFNGX01JTiAoU0lHTkVEX1NJWkVPRiAodmFsdWUpLCBzbGVuICsgMSkpIDsKKyAKKyAJCXBzZl9sb2dfcHJpbnRmIChwc2YsICIgIDB4JTA0eCAgICAgJTRkICAgICAlNGQgICAgICUzZCAgICAnJXMnXG4iLCBkYXRhX29mZnNldCwgcnNyY19pZCwgZGF0YV9sZW4sIHNsZW4sIHZhbHVlKSA7CisgCistLSAKKzEuNy45LjUKKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlic25kZmlsZS9maWxlcy8wMDAxLXNyYy1zZDIuYy1GaXgtdHdvLXBvdGVudGlhbC1idWZmZXItcmVhZC1vdmVyZmxvd3MucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJzbmRmaWxlL2ZpbGVzLzAwMDEtc3JjLXNkMi5jLUZpeC10d28tcG90ZW50aWFsLWJ1ZmZlci1yZWFkLW92ZXJmbG93cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTY0NzNkCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlic25kZmlsZS9maWxlcy8wMDAxLXNyYy1zZDIuYy1GaXgtdHdvLXBvdGVudGlhbC1idWZmZXItcmVhZC1vdmVyZmxvd3MucGF0Y2gKQEAgLTAsMCArMSw0OSBAQAorRnJvbSBkYmUxNGYwMDAzMGFmNWQzNTc3ZjRjYWJiZjk4NjFkYjU5ZTljMzc4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRXJpayBkZSBDYXN0cm8gTG9wbyA8ZXJpa2RAbWVnYS1uZXJkLmNvbT4KK0RhdGU6IFRodSwgMjUgRGVjIDIwMTQgMTk6MjM6MTIgKzExMDAKK1N1YmplY3Q6IFtQQVRDSF0gc3JjL3NkMi5jIDogRml4IHR3byBwb3RlbnRpYWwgYnVmZmVyIHJlYWQgb3ZlcmZsb3dzLgorCisoVXBzdHJlYW0gY29tbWl0IGRiZTE0ZjAwMDMwYWY1ZDM1NzdmNGNhYmJmOTg2MWRiNTllOWMzNzgpCisKK0Nsb3NlczogaHR0cHM6Ly9naXRodWIuY29tL2VyaWtkL2xpYnNuZGZpbGUvaXNzdWVzLzkzCisKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKKworU2lnbmVkLW9mZi1ieTogWXVlIFRhbyA8eXVlLnRhb0B3aW5kcml2ZXIuY29tPgorLS0tCisgc3JjL3NkMi5jIHwgICAxMiArKysrKysrKysrKy0KKyAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvc3JjL3NkMi5jIGIvc3JjL3NkMi5jCitpbmRleCAwYjRlNWFmLi5hNzBhMWYxIDEwMDY0NAorLS0tIGEvc3JjL3NkMi5jCisrKysgYi9zcmMvc2QyLmMKK0BAIC01MTcsNiArNTE3LDExIEBAIHNkMl9wYXJzZV9yc3JjX2ZvcmsgKFNGX1BSSVZBVEUgKnBzZikKKyAKKyAJcnNyYy50eXBlX29mZnNldCA9IHJzcmMubWFwX29mZnNldCArIDMwIDsKKyAKKysJaWYgKHJzcmMubWFwX29mZnNldCArIDI4ID4gcnNyYy5yc3JjX2xlbikKKysJewlwc2ZfbG9nX3ByaW50ZiAocHNmLCAiQmFkIG1hcCBvZmZzZXQuXG4iKSA7CisrCQlnb3RvIHBhcnNlX3JzcmNfZm9ya19jbGVhbnVwIDsKKysJCX0gOworKworIAlyc3JjLnR5cGVfY291bnQgPSByZWFkX3JzcmNfc2hvcnQgKCZyc3JjLCByc3JjLm1hcF9vZmZzZXQgKyAyOCkgKyAxIDsKKyAJaWYgKHJzcmMudHlwZV9jb3VudCA8IDEpCisgCXsJcHNmX2xvZ19wcmludGYgKHBzZiwgIkJhZCB0eXBlIGNvdW50LlxuIikgOworQEAgLTUzMyw3ICs1MzgsMTIgQEAgc2QyX3BhcnNlX3JzcmNfZm9yayAoU0ZfUFJJVkFURSAqcHNmKQorIAorIAlyc3JjLnN0cl9pbmRleCA9IC0xIDsKKyAJZm9yIChrID0gMCA7IGsgPCByc3JjLnR5cGVfY291bnQgOyBrICsrKQorLQl7CW1hcmtlciA9IHJlYWRfcnNyY19tYXJrZXIgKCZyc3JjLCByc3JjLnR5cGVfb2Zmc2V0ICsgayAqIDgpIDsKKysJewlpZiAocnNyYy50eXBlX29mZnNldCArIGsgKiA4ID4gcnNyYy5yc3JjX2xlbikKKysJCXsJcHNmX2xvZ19wcmludGYgKHBzZiwgIkJhZCByc3JjIG1hcmtlci5cbiIpIDsKKysJCQlnb3RvIHBhcnNlX3JzcmNfZm9ya19jbGVhbnVwIDsKKysJCQl9IDsKKysKKysJCW1hcmtlciA9IHJlYWRfcnNyY19tYXJrZXIgKCZyc3JjLCByc3JjLnR5cGVfb2Zmc2V0ICsgayAqIDgpIDsKKyAKKyAJCWlmIChtYXJrZXIgPT0gU1RSX01BUktFUikKKyAJCXsJcnNyYy5zdHJfaW5kZXggPSBrIDsKKy0tIAorMS43LjkuNQorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJzbmRmaWxlL2xpYnNuZGZpbGUxXzEuMC4yNS5iYiBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYnNuZGZpbGUvbGlic25kZmlsZTFfMS4wLjI1LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlMDJmNGUKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJzbmRmaWxlL2xpYnNuZGZpbGUxXzEuMC4yNS5iYgpAQCAtMCwwICsxLDMzIEBACitTVU1NQVJZID0gIkF1ZGlvIGZvcm1hdCBDb252ZXJzaW9uIGxpYnJhcnkiCitIT01FUEFHRSA9ICJodHRwOi8vd3d3Lm1lZ2EtbmVyZC5jb20vbGlic25kZmlsZSIKK0FVVEhPUiA9ICJFcmlrIGRlIENhc3RybyBMb3BvIgorREVQRU5EUyA9ICJzcWxpdGUzIgorU0VDVElPTiA9ICJsaWJzL211bHRpbWVkaWEiCitMSUNFTlNFID0gIkxHUEx2Mi4xIgorUFIgPSAicjIiCisKK1NSQ19VUkkgPSAiaHR0cDovL3d3dy5tZWdhLW5lcmQuY29tL2xpYnNuZGZpbGUvZmlsZXMvbGlic25kZmlsZS0ke1BWfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1zcmMtc2QyLmMtRml4LXNlZ2ZhdWx0LWluLVNEMi1SU1JDLXBhcnNlci5wYXRjaCBcCisgICAgICAgICAgIGZpbGU6Ly8wMDAxLXNyYy1zZDIuYy1GaXgtdHdvLXBvdGVudGlhbC1idWZmZXItcmVhZC1vdmVyZmxvd3MucGF0Y2ggXAorIgorCitTUkNfVVJJW21kNXN1bV0gPSAiZTJiN2JiNjM3ZTAxMDIyYzdkMjBmOTVmOWMzOTkwYTIiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiNTkwMTZkYmQzMjZhYmU3ZTIzNjZkZWQ1YzM0NGM4NTM4MjliZWJmZDE3MDJlZjI2YTA3ZWY2NjJkNmFhNDg4MiIKKworTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZTc3ZmU5MzIwMjczNmI0N2MwNzAzNTkxMGY0Nzk3NGEiCisKK1MgPSAiJHtXT1JLRElSfS9saWJzbmRmaWxlLSR7UFZ9IgorCitQQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdhbHNhJywgJ2Fsc2EnLCAnJywgZCl9IgorUEFDS0FHRUNPTkZJR1thbHNhXSA9ICItLWVuYWJsZS1hbHNhLC0tZGlzYWJsZS1hbHNhLGFsc2EtbGliIgorCitFWFRSQV9PRUNPTkYgPSAiLS1kaXNhYmxlLWV4dGVybmFsLWxpYnMiCisKK2luaGVyaXQgYXV0b3Rvb2xzIGxpYl9wYWNrYWdlIHBrZ2NvbmZpZworCitkb19jb25maWd1cmVfcHJlcGVuZF9hcm0oKSB7CisJZXhwb3J0IGFjX2N2X3N5c19sYXJnZWZpbGVfc291cmNlPTEKKwlleHBvcnQgYWNfY3Zfc3lzX2ZpbGVfb2Zmc2V0X2JpdHM9NjQKKwlhY19jdl9zaXplb2Zfb2ZmX3Q9OAorfQorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJ0aGVvcmEvbGlidGhlb3JhLTEuMS4xL25vLWRvY3MucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJ0aGVvcmEvbGlidGhlb3JhLTEuMS4xL25vLWRvY3MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU5ZjNkMQotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYnRoZW9yYS9saWJ0aGVvcmEtMS4xLjEvbm8tZG9jcy5wYXRjaApAQCAtMCwwICsxLDE1IEBACitVcHN0cmVhbS1TdGF0dXM6IEluYXBwcm9wcmlhdGUgW2NvbmZpZ3VyYXRpb25dCisKK0luZGV4OiBsaWJ0aGVvcmEtMS4xLjEvTWFrZWZpbGUuYW0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBsaWJ0aGVvcmEtMS4xLjEub3JpZy9NYWtlZmlsZS5hbQkyMDA5LTExLTI1IDIyOjAxOjUzLjU5Mzc3NTkyNiArMDEwMAorKysrIGxpYnRoZW9yYS0xLjEuMS9NYWtlZmlsZS5hbQkyMDA5LTExLTI1IDIyOjAyOjAwLjc3NzUyNDAxNyArMDEwMAorQEAgLTgsNyArOCw3IEBACisgRVhBTVBMRVNfRElSID0KKyBlbmRpZgorIAorLVNVQkRJUlMgPSBsaWIgaW5jbHVkZSBkb2MgdGVzdHMgbTQgJChFWEFNUExFU19ESVIpCisrU1VCRElSUyA9IGxpYiBpbmNsdWRlIHRlc3RzIG00ICQoRVhBTVBMRVNfRElSKQorIAorIAorICMgd2UgaW5jbHVkZSB0aGUgd2hvbGUgZGViaWFuLyBkaXIgaW4gRVhUUkFfRElTVCBiZWNhdXNlIHRoZXJlJ3MgYSBwcm9ibGVtCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJ0aGVvcmEvbGlidGhlb3JhXzEuMS4xLmJiIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlidGhlb3JhL2xpYnRoZW9yYV8xLjEuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGNiMTY4Ci0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlidGhlb3JhL2xpYnRoZW9yYV8xLjEuMS5iYgpAQCAtMCwwICsxLDIwIEBACitTVU1NQVJZID0gIlRoZW9yYSBWaWRlbyBDb2RlYyIKK0RFU0NSSVBUSU9OID0gIlRoZSBsaWJ0aGVvcmEgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIHByb3ZpZGVzIHRoZSBzdGFuZGFyZCBlbmNvZGVyIGFuZCBkZWNvZGVyIHVuZGVyIGEgQlNEIGxpY2Vuc2UuIgorSE9NRVBBR0UgPSAiaHR0cDovL3hpcGgub3JnLyIKK0JVR1RSQUNLRVIgPSAiaHR0cHM6Ly90cmFjLnhpcGgub3JnL25ld3RpY2tldCIKK1NFQ1RJT04gPSAibGlicyIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9Y2Y5MTcxOGY1OWViNmE4M2QwNmRjN2JjYWY0MTExMzIiCitERVBFTkRTID0gImxpYm9nZyIKKworUFIgPSAicjEiCisKK1NSQ19VUkkgPSAiaHR0cDovL2Rvd25sb2Fkcy54aXBoLm9yZy9yZWxlYXNlcy90aGVvcmEvbGlidGhlb3JhLSR7UFZ9LnRhci5iejIgXAorICAgICAgICAgICBmaWxlOi8vbm8tZG9jcy5wYXRjaCIKKworU1JDX1VSSVttZDVzdW1dID0gIjI5MmFiNjVjZWRkNTAyMWQ2YjdkZGQxMTdlMDdjZDhlIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImI2YWUxZWUyZmEzZDQyYWM0ODkyODdkM2VjMzRjNTg4NTczMGIxMjk2ZjA4MDFhZTU3N2EzNTE5M2QzYWZmYmMiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZworCitFWFRSQV9PRUNPTkYgPSAiLS1kaXNhYmxlLWV4YW1wbGVzIgpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlidGlmZi9maWxlcy9saWJ0b29sMi5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYnRpZmYvZmlsZXMvbGlidG9vbDIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU3MjAyZQotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYnRpZmYvZmlsZXMvbGlidG9vbDIucGF0Y2gKQEAgLTAsMCArMSwxOSBAQAorVXBzdHJlYW0tU3RhdHVzOiBJbmFwcHJvcHJpYXRlIFtjb25maWd1cmF0aW9uXQorCistLS0KKyBjb25maWd1cmUuYWMgfCAgICAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK0luZGV4OiB0aWZmLTMuOS41L2NvbmZpZ3VyZS5hYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHRpZmYtMy45LjUub3JpZy9jb25maWd1cmUuYWMKKysrKyB0aWZmLTMuOS41L2NvbmZpZ3VyZS5hYworQEAgLTI3LDcgKzI3LDcgQEAgZG5sIFByb2Nlc3MgdGhpcyBmaWxlIHdpdGggYXV0b2NvbmYgdG8gcAorIEFDX1BSRVJFUSgyLjY0KQorIEFDX0lOSVQoW0xpYlRJRkYgU29mdHdhcmVdLFszLjkuNV0sW3RpZmZAbGlzdHMubWFwdG9vbHMub3JnXSxbdGlmZl0pCisgQUNfQ09ORklHX0FVWF9ESVIoY29uZmlnKQorLUFDX0NPTkZJR19NQUNST19ESVIobTQpCisrZG5sIEFDX0NPTkZJR19NQUNST19ESVIobTQpCisgQUNfTEFORyhDKQorIAorIGRubCBDb21wdXRlIHRoZSBjYW5vbmljYWwgaG9zdCAocnVuLXRpbWUpIHN5c3RlbSB0eXBlIHZhcmlhYmxlCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJ0aWZmL3RpZmZfNC4wLjQuYmIgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJ0aWZmL3RpZmZfNC4wLjQuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2YzYTVmMAotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL2xpYnRpZmYvdGlmZl80LjAuNC5iYgpAQCAtMCwwICsxLDQ0IEBACitTVU1NQVJZID0gIlByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZSBUYWcgSW1hZ2UgRmlsZSBGb3JtYXQgKFRJRkYpIgorTElDRU5TRSA9ICJCU0QtMi1DbGF1c2UiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZUklHSFQ7bWQ1PTM0ZGEzZGI0NmZhYjc1MDE5OTJmOTYxNWQ3ZTE1OGNmIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5yZW1vdGVzZW5zaW5nLm9yZy9saWJ0aWZmLyIKKworU1JDX1VSSSA9ICJmdHA6Ly9mdHAucmVtb3Rlc2Vuc2luZy5vcmcvcHViL2xpYnRpZmYvdGlmZi0ke1BWfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vbGlidG9vbDIucGF0Y2ggXAorICAgICAgICAgICIKKworU1JDX1VSSVttZDVzdW1dID0gIjlhZWU3MTA3NDA4YTEyOGMwYzdiMjQyODZjMGRiOTAwIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gIjhjYjFkOTBjOTZmNjFjZGZjMGJjZjAzNmFjYzI1MWM5ZGJlNjMyMDMzNGRhOTQxYzdhODNjZmUxNTc2ZWY4OTAiCisKK2luaGVyaXQgYXV0b3Rvb2xzCisKK0NBQ0hFRF9DT05GSUdVUkVWQVJTID0gImF4X2N2X2NoZWNrX2dsX2xpYmdsPW5vIgorCitQQUNLQUdFQ09ORklHID89ICJjeHgganBlZyB6bGliIGx6bWEgXAorICAgICAgICAgICAgICAgICAgc3RyaXAtY2hvcHBpbmcgZXh0cmFzYW1wbGUtYXMtYWxwaGEgY2hlY2steWNiY3Itc3Vic2FtcGxpbmciCisKK1BBQ0tBR0VDT05GSUdbY3h4XSA9ICItLWVuYWJsZS1jeHgsLS1kaXNhYmxlLWN4eCwsIgorUEFDS0FHRUNPTkZJR1tqcGVnXSA9ICItLWVuYWJsZS1qcGVnLC0tZGlzYWJsZS1qcGVnLGpwZWcsIgorUEFDS0FHRUNPTkZJR1t6bGliXSA9ICItLWVuYWJsZS16bGliLC0tZGlzYWJsZS16bGliLHpsaWIsIgorUEFDS0FHRUNPTkZJR1tsem1hXSA9ICItLWVuYWJsZS1sem1hLC0tZGlzYWJsZS1sem1hLHh6LCIKKworIyBDb252ZXJ0IHNpbmdsZS1zdHJpcCB1bmNvbXByZXNzZWQgaW1hZ2VzIHRvIG11bHRpcGxlIHN0cmlwcyBvZiBzcGVjaWZpZWQKKyMgc2l6ZSAoZGVmYXVsdDogODE5MikgdG8gcmVkdWNlIG1lbW9yeSB1c2FnZQorUEFDS0FHRUNPTkZJR1tzdHJpcC1jaG9wcGluZ10gPSAiLS1lbmFibGUtc3RyaXAtY2hvcHBpbmcsLS1kaXNhYmxlLXN0cmlwLWNob3BwaW5nLCwiCisKKyMgVHJlYXQgYSBmb3VydGggc2FtcGxlIHdpdGggbm8gRVhUUkFTQU1QTEVfIHZhbHVlIGFzIGJlaW5nIEFTU09DQUxQSEEKK1BBQ0tBR0VDT05GSUdbZXh0cmFzYW1wbGUtYXMtYWxwaGFdID0gIi0tZW5hYmxlLWV4dHJhc2FtcGxlLWFzLWFscGhhLC0tZGlzYWJsZS1leHRyYXNhbXBsZS1hcy1hbHBoYSwsIgorCisjIENvbnRyb2wgcGlja2luZyB1cCBZQ2JDciBzdWJzYW1wbGUgaW5mby4gRGlzYWJsZSB0byBzdXBwb3J0IGZpbGVzIGxhY2tpbmcKKyMgdGhlIHRhZworUEFDS0FHRUNPTkZJR1tjaGVjay15Y2Jjci1zdWJzYW1wbGluZ10gPSAiLS1lbmFibGUtY2hlY2steWNiY3Itc3Vic2FtcGxpbmcsLS1kaXNhYmxlLWNoZWNrLXljYmNyLXN1YnNhbXBsaW5nLCwiCisKKyMgU3VwcG9ydCBhIG1lY2hhbmlzbSBhbGxvd2luZyByZWFkaW5nIGxhcmdlIHN0cmlwcyAodXN1YWxseSBvbmUgc3RyaXAgZmlsZXMpCisjIGluIGNodW5rcyB3aGVuIHVzaW5nIFRJRkZSZWFkU2NhbmxpbmUuIEV4cGVyaW1lbnRhbCA0LjArIGZlYXR1cmUKK1BBQ0tBR0VDT05GSUdbY2h1bmt5LXN0cmlwLXJlYWRdID0gIi0tZW5hYmxlLWNodW5reS1zdHJpcC1yZWFkLC0tZGlzYWJsZS1jaHVua3ktc3RyaXAtcmVhZCwsIgorCitQQUNLQUdFUyA9KyAidGlmZnh4IHRpZmYtdXRpbHMiCitGSUxFU190aWZmeHggPSAiJHtsaWJkaXJ9L2xpYnRpZmZ4eC5zby4qIgorRklMRVNfdGlmZi11dGlscyA9ICIke2JpbmRpcn0vKiIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9saWJ2b3JiaXMvbGlidm9yYmlzXzEuMy41LmJiIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlidm9yYmlzL2xpYnZvcmJpc18xLjMuNS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzZlMGYzCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbGlidm9yYmlzL2xpYnZvcmJpc18xLjMuNS5iYgpAQCAtMCwwICsxLDE3IEBACitTVU1NQVJZID0gIk9nZyBWb3JiaXMgQXVkaW8gQ29kZWMiCitERVNDUklQVElPTiA9ICJPZ2cgVm9yYmlzIGlzIGEgaGlnaC1xdWFsaXR5IGxvc3N5IGF1ZGlvIGNvZGVjIFwKK3RoYXQgaXMgZnJlZSBvZiBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmVzdHJpY3Rpb25zLiBsaWJ2b3JiaXMgXAoraXMgdGhlIG1haW4gdm9yYmlzIGNvZGVjIGxpYnJhcnkuIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy52b3JiaXMuY29tLyIKK0JVR1RSQUNLRVIgPSAiaHR0cHM6Ly90cmFjLnhpcGgub3JnIgorU0VDVElPTiA9ICJsaWJzIgorTElDRU5TRSA9ICJCU0QiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT03ZDJjNDg3ZDJmYzdkZDNlM2M3YzQ2NWE1YjdmNjIxNyBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9pbmNsdWRlL3ZvcmJpcy92b3JiaXNlbmMuaDtiZWdpbmxpbmU9MTtlbmRsaW5lPTExO21kNT1kMWMxZDEzODg2M2Q2MzE1MTMxMTkzZDQwNDZkODFjYiIKK0RFUEVORFMgPSAibGlib2dnIgorCitTUkNfVVJJID0gImh0dHA6Ly9kb3dubG9hZHMueGlwaC5vcmcvcmVsZWFzZXMvdm9yYmlzLyR7QlB9LnRhci54eiIKK1NSQ19VUklbbWQ1c3VtXSA9ICIyOGNiMjgwOTdjMDdhNzM1ZDZhZjU2ZTU5OGUxYzkwZiIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI1NGY5NGE5NTI3ZmYwYTg4NDc3YmUwYTcxYzBiYWIwOWE0YzNmZWJlMGVkODc4YjI0ODI0OTA2Y2Q0YjBlMWQxIgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL21wZWcyZGVjL21wZWcyZGVjLTAuNC4xL2FsdGl2ZWNfaF9uZWVkZWQucGF0Y2ggYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9tcGVnMmRlYy9tcGVnMmRlYy0wLjQuMS9hbHRpdmVjX2hfbmVlZGVkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkYzU2NDMKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9tcGVnMmRlYy9tcGVnMmRlYy0wLjQuMS9hbHRpdmVjX2hfbmVlZGVkLnBhdGNoCkBAIC0wLDAgKzEsNDMgQEAKK0FkZCBuZXcgbWV0aG9kIHRvIGp1ZGdlIHdoZXRoZXIgPGFsdGl2ZWMuaD4gaXMgbmVlZGVkCisKK1RoZSBvcmlnaW5hbCBsb2dpYyB3aWxsIHVzZSAidHlwZWRlZiB2ZWN0b3IgaW50IHQ7IiB0byBqdWRnZQord2hldGhlciA8YWx0aXZlYy5oPiBpcyBuZWVkZWQuIGFsdGl2ZWMuaCBjb250YWlucyB0aGUgZm9sbG93aW5nCitzdGF0ZW1lbnQ6CisKKyAjaWYgIWRlZmluZWQoX19BUFBMRV9BTFRJVkVDX18pCisgI2RlZmluZSB2ZWN0b3IgX192ZWN0b3IKKyAjZGVmaW5lIHBpeGVsIF9fcGl4ZWwKKyAjZGVmaW5lIGJvb2wgCisgI2VuZGlmCisKK0luIGdjYy00LjMuMywgX19BUFBMRV9BTFRJVkVDX18gaXMgbm90IGRlZmluZWQgYnkgY29tcGlsZXIsIG5laXRoZXIKK2FzIHZlY3RvciwgcGl4ZWwsIGFuZCBib29sLiBJbiBvcmRlciB0byBtYWtlICJ0eXBlZGVmIHZlY3RvciBpbnQgdDsiCitwYXNzIHRoZSBjb21waWxhdGlvbiwgd2UgbmVlZCB0byBpbmNsdWRlIGFsdGl2ZWMuaC4KKworSG93ZXZlciBpbiBnY2MtNC41LjAsIF9fQVBQTEVfQUxUSVZFQ19fIGlzIGRlZmluZWQgYnkgY29tcGlsZXIsCitzbyBhcyB2ZWN0b3IsIHBpeGVsLCBhbmQgYm9vbC4gV2UgY291bGQgbm90IGp1ZGdlIHdoZXRoZXIKK2FsdGl2ZWMuaCBpcyBuZWVkZWQgYnkgInR5cGVkZWYgdmVjdG9yIGludCB0OyIuCitIZXJlIHdlIGluY2x1ZGUgYW5vdGhlciBzdGF0ZW1lbnQgImludCB0bXAgPSBfX0NSNl9FUTsiLCBpbgord2hpY2ggX19DUjZfRVEgaXMgZGVmaW5lZCBpbiBhbHRpdmVjLmguCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitTaWduZWQtb2ZmLWJ5OiBEb25neGlhbyBYdSA8ZG9uZ3hpYW8ueHVAaW50ZWwuY29tPgorCitkaWZmIC1ydU4gbXBlZzJkZWMtMC40LjEtb3JpZy9jb25maWd1cmUuaW4gbXBlZzJkZWMtMC40LjEvY29uZmlndXJlLmluCistLS0gbXBlZzJkZWMtMC40LjEtb3JpZy9jb25maWd1cmUuaW4JMjAxMC0wOS0xNCAyMDo1NTo0Mi4zOTk2ODc2NjMgKzA4MDAKKysrKyBtcGVnMmRlYy0wLjQuMS9jb25maWd1cmUuaW4JMjAxMC0wOS0xNCAyMDo1Njo0My40MDMyMDQ2NDggKzA4MDAKK0BAIC03NSwxMSArNzUsMTEgQEAKKyAJCSBDRkxBR1M9IiRPUFRfQ0ZMQUdTICRUUllfQ0ZMQUdTICRDRkxBR1MiCisgCQkgQUNfTVNHX0NIRUNLSU5HKFtpZiA8YWx0aXZlYy5oPiBpcyBuZWVkZWRdKQorIAkJIEFDX1RSWV9DT01QSUxFKFtdLAorLQkJICAgIFt0eXBlZGVmIHZlY3RvciBpbnQgdDsKKysJCSAgICBbdHlwZWRlZiB2ZWN0b3IgaW50IHQ7IGludCB0bXAgPSBfX0NSNl9FUTsKKyAJCSAgICAgdmVjX2xkKDAsICh1bnNpZ25lZCBjaGFyICopMCk7XSwKKyAJCSAgICBbaGF2ZV9hbHRpdmVjPXllczsgQUNfTVNHX1JFU1VMVChubyldLAorIAkJICAgIFtBQ19UUllfQ09NUElMRShbI2luY2x1ZGUgPGFsdGl2ZWMuaD5dLAorLQkJCVt0eXBlZGVmIHZlY3RvciBpbnQgdDsgdmVjX2xkKDAsICh1bnNpZ25lZCBjaGFyICopMCk7XSwKKysJCQlbdHlwZWRlZiB2ZWN0b3IgaW50IHQ7IGludCB0bXAgPSBfX0NSNl9FUTsgdmVjX2xkKDAsICh1bnNpZ25lZCBjaGFyICopMCk7XSwKKyAJCQlbQUNfREVGSU5FKFtIQVZFX0FMVElWRUNfSF0sLAorIAkJCSAgICBbRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxhbHRpdmVjLmg+IGhlYWRlci5dKQorIAkJCSBoYXZlX2FsdGl2ZWM9eWVzOyBBQ19NU0dfUkVTVUxUKHllcyldLApkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbXBlZzJkZWMvbXBlZzJkZWNfMC40LjEuYmIgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9tcGVnMmRlYy9tcGVnMmRlY18wLjQuMS5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZWRlMmJmCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvbXBlZzJkZWMvbXBlZzJkZWNfMC40LjEuYmIKQEAgLTAsMCArMSwzOCBAQAorU1VNTUFSWSA9ICJMaWJyYXJ5IGFuZCB0ZXN0IHByb2dyYW0gZm9yIGRlY29kaW5nIE1QRUctMiBhbmQgTVBFRy0xIHZpZGVvIHN0cmVhbXMiCitIT01FUEFHRSA9ICJodHRwOi8vbGlibXBlZzIuc291cmNlZm9yZ2UubmV0LyIKK1NFQ1RJT04gPSAibGlicyIKK0xJQ0VOU0UgPSAiR1BMdjIrIgorTElDRU5TRV9GTEFHUyA9ICJjb21tZXJjaWFsIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9OTRkNTVkNTEyYTliYTM2Y2FhOWI3ZGYwNzliYWUxOWYgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vaW5jbHVkZS9tcGVnMi5oO2JlZ2lubGluZT0xO2VuZGxpbmU9MjI7bWQ1PWVhZDYyNjAyZDQ2MzgzMjlkM2I1Yjg2YTU1ODAzMTU0IgorCitQUiA9ICJyMiIKKworU1JDX1VSSSA9ICJodHRwOi8vbGlibXBlZzIuc291cmNlZm9yZ2UubmV0L2ZpbGVzL21wZWcyZGVjLSR7UFZ9LnRhci5neiBcCisgICAgICAgICAgIGZpbGU6Ly9hbHRpdmVjX2hfbmVlZGVkLnBhdGNoIgorCitTUkNfVVJJW21kNXN1bV0gPSAiNzYzMWIwYTRiY2ZkZDBkNzhjMGJiMDA4MzA4MGIwZGMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiYzc0YTc2MDY4ZjhlYzM2ZDRiYjU5YTAzYmYxMTU3YmU0NDExOGNhMDIyNTIxODBlOGIzNThiMGI1ZTNlZGVlZSIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCisKK0VYVFJBX09FQ09ORiA9ICItLWVuYWJsZS1zaGFyZWQgLS1kaXNhYmxlLXNkbCIKKworUEFDS0FHRUNPTkZJRyA/PSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICd4MTEnLCAneDExJywgJycsIGQpfSIKK1BBQ0tBR0VDT05GSUdbeDExXSA9ICItLXdpdGgteCwtLXdpdGhvdXQteCx2aXJ0dWFsL2xpYngxMSBsaWJ4ZXh0IGxpYnh2IgorCitQQUNLQUdFUyA9ICJtcGVnMmRlYy1kYmcgbXBlZzJkZWMgbXBlZzJkZWMtZG9jIGxpYm1wZWcyIGxpYm1wZWcyLWRldiBsaWJtcGVnMmNvbnZlcnQgbGlibXBlZzJjb252ZXJ0LWRldiBsaWJtcGVnMi1zdGF0aWNkZXYgbGlibXBlZzJjb252ZXJ0LXN0YXRpY2RldiIKKworRklMRVNfJHtQTn0gPSAiJHtiaW5kaXJ9LyoiCitGSUxFU19saWJtcGVnMiA9ICIke2xpYmRpcn0vbGlibXBlZzIuc28uKiIKK0ZJTEVTX2xpYm1wZWcyY29udmVydCA9ICIke2xpYmRpcn0vbGlibXBlZzJjb252ZXJ0LnNvLioiCitGSUxFU19saWJtcGVnMi1kZXYgPSAiJHtsaWJkaXJ9L2xpYm1wZWcyLnNvIFwKKyAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vbGlibXBlZzIubGEgXAorICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9wa2djb25maWcvbGlibXBlZzIucGMgXAorICAgICAgICAgICAgICAgICAgICAgICR7aW5jbHVkZWRpcn0vbXBlZzJkZWMvbXBlZzIuaCIKK0ZJTEVTX2xpYm1wZWcyLXN0YXRpY2RldiA9ICIke2xpYmRpcn0vbGlibXBlZzIuYSIKK0ZJTEVTX2xpYm1wZWcyY29udmVydC1kZXYgPSAiJHtsaWJkaXJ9L2xpYm1wZWcyY29udmVydC5zbyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7bGliZGlyfS9saWJtcGVnMmNvbnZlcnQubGEgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vcGtnY29uZmlnL2xpYm1wZWcyY29udmVydC5wYyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7aW5jbHVkZWRpcn0vbXBlZzJkZWMvbXBlZzJjb252ZXJ0LmgiCitGSUxFU19saWJtcGVnMmNvbnZlcnQtc3RhdGljZGV2ID0gIiR7bGliZGlyfS9saWJtcGVnMmNvbnZlcnQuYSIKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL3B1bHNlYXVkaW8vcHVsc2VhdWRpby5pbmMgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9wdWxzZWF1ZGlvL3B1bHNlYXVkaW8uaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViODA2ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9wdWxzZWF1ZGlvL3B1bHNlYXVkaW8uaW5jCkBAIC0wLDAgKzEsMTk3IEBACitTVU1NQVJZID0gIlNvdW5kIHNlcnZlciBmb3IgTGludXggYW5kIFVuaXgtbGlrZSBvcGVyYXRpbmcgc3lzdGVtcyIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cucHVsc2VhdWRpby5vcmciCitBVVRIT1IgPSAiTGVubmFydCBQb2V0dGVyaW5nIgorU0VDVElPTiA9ICJsaWJzL211bHRpbWVkaWEiCitMSUNFTlNFID0gIkdQTHYyKyAmIExHUEx2Mi4xIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vR1BMO21kNT00MzI1YWZkMzk2ZmViY2I2NTljMzZiNDk1MzMxMzVkNCBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9MR1BMO21kNT0yZDUwMjVkNGFhMzQ5NWJlZmVmOGYxNzIwNmE1YjBhMSBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zcmMvcHVsc2Vjb3JlL3Jlc2FtcGxlci5oO2JlZ2lubGluZT00O2VuZGxpbmU9MjE7bWQ1PTA5Nzk0MDEyYWUxNjkxMmMwMjcwZjMyODBjYzhmZjg0IgorCitERVBFTkRTID0gImxpYmF0b21pYy1vcHMgbGlib2lsIGxpYnNuZGZpbGUxIGxpYnRvb2wiCisjIG9wdGlvbmFsCitERVBFTkRTICs9ICJ1ZGV2IGFsc2EtbGliIGdsaWItMi4wIGdjb25mIgorREVQRU5EUyArPSAianNvbi1jIGdkYm0gc3BlZXhkc3AgbGlieG1sLXBhcnNlci1wZXJsLW5hdGl2ZSBsaWJjYXAiCisKK2luaGVyaXQgYXV0b3Rvb2xzIHBrZ2NvbmZpZyB1c2VyYWRkIGdldHRleHQgcGVybG5hdGl2ZSBibHVldG9vdGggc3lzdGVtZAorCisjICouZGVza3RvcCBydWxlcyB3b250IGJlIGdlbmVyYXRlZCBkdXJpbmcgY29uZmlndXJlIGFuZCBidWlsZCB3aWxsIGZhaWwKKyMgaWYgdXNpbmcgLS1kaXNhYmxlLW5scworVVNFX05MUyA9ICJ5ZXMiCisKK0VYVFJBX09FQ09ORiA9ICJcCisJCS0tZGlzYWJsZS1oYWwtY29tcGF0IFwKKwkJLS1kaXNhYmxlLW9yYyBcCisJCS0tZW5hYmxlLXRjcHdyYXA9bm8gXAorCQktLXdpdGgtYWNjZXNzLWdyb3VwPWF1ZGlvIFwKKwkJLS1kaXNhYmxlLW9wZW5zc2wgXAorCQktLWRpc2FibGUteGVuIFwKKwkJLS13aXRoLWRhdGFiYXNlPXNpbXBsZSBcCisJCS0td2l0aG91dC1mZnR3IFwKKwkJLS13aXRob3V0LXpzaC1jb21wbGV0aW9uLWRpciBcCisJCS0td2l0aC11ZGV2LXJ1bGVzLWRpcj1gcGtnLWNvbmZpZyAtLXZhcmlhYmxlPXVkZXZkaXIgdWRldmAvcnVsZXMuZCBcCisgICAgICAgICAgICAgICAgYWNfY3ZfaGVhZGVyX3ZhbGdyaW5kX21lbWNoZWNrX2g9bm8gXAorIgorCitQQUNLQUdFQ09ORklHID8/PSAiJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICdibHVldG9vdGgnLCAnJHtCTFVFWn0nLCAnJywgZCl9IFwKKyAgICAgICAgICAgICAgICAgICAke0BiYi51dGlscy5jb250YWlucygnRElTVFJPX0ZFQVRVUkVTJywgJ3plcm9jb25mJywgJ2F2YWhpJywgJycsIGQpfSBcCisgICAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICd4MTEnLCAneDExJywgJycsIGQpfSBcCisgICAgICAgICAgICAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ0RJU1RST19GRUFUVVJFUycsICczZycsICdvZm9ubycsICcnLCBkKX0gXAorICAgICAgICAgICAgICAgICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAnc3lzdGVtZCcsICdzeXN0ZW1kJywgJycsIGQpfSBcCisgICAgICAgICAgICAgICAgICAgZGJ1cyBcCisgICAgICAgICAgICAgICAgICAgIgorCitQQUNLQUdFQ09ORklHW2RidXNdID0gIi0tZW5hYmxlLWRidXMsLS1kaXNhYmxlLWRidXMsZGJ1cyIKK1BBQ0tBR0VDT05GSUdbYmx1ZXo0XSA9ICItLWVuYWJsZS1ibHVlejQsLS1kaXNhYmxlLWJsdWV6NCxibHVlejQgc2JjIgorUEFDS0FHRUNPTkZJR1tibHVlejVdID0gIi0tZW5hYmxlLWJsdWV6NSwtLWRpc2FibGUtYmx1ZXo1LGJsdWV6NSBzYmMiCitQQUNLQUdFQ09ORklHW29mb25vXSA9ICItLWVuYWJsZS1ibHVlejUtb2Zvbm8taGVhZHNldCwtLWRpc2FibGUtYmx1ZXo1LW9mb25vLWhlYWRzZXQsb2Zvbm8iCitQQUNLQUdFQ09ORklHW2d0a10gPSAiLS1lbmFibGUtZ3RrMywtLWRpc2FibGUtZ3RrMyxndGsrMyIKK1BBQ0tBR0VDT05GSUdbc3lzdGVtZF0gPSAiLS1lbmFibGUtc3lzdGVtZC1kYWVtb24gLS1lbmFibGUtc3lzdGVtZC1sb2dpbiAtLWVuYWJsZS1zeXN0ZW1kLWpvdXJuYWwgLS13aXRoLXN5c3RlbWR1c2VydW5pdGRpcj0ke3N5c3RlbWRfdXNlcl91bml0ZGlyfSwtLWRpc2FibGUtc3lzdGVtZC1kYWVtb24gLS1kaXNhYmxlLXN5c3RlbWQtbG9naW4gLS1kaXNhYmxlLXN5c3RlbWQtam91cm5hbCxzeXN0ZW1kIgorUEFDS0FHRUNPTkZJR1t4MTFdID0gIi0tZW5hYmxlLXgxMSwtLWRpc2FibGUteDExLHZpcnR1YWwvbGlieDExIGxpYnh0c3QgbGliaWNlIGxpYnNtIGxpYnhjYiIKK1BBQ0tBR0VDT05GSUdbYXZhaGldID0gIi0tZW5hYmxlLWF2YWhpLC0tZGlzYWJsZS1hdmFoaSxhdmFoaSIKK1BBQ0tBR0VDT05GSUdbamFja10gPSAiLS1lbmFibGUtamFjaywtLWRpc2FibGUtamFjayxqYWNrIgorIyBTaW5jZSBtYW55IGVtYmVkZGVkIHN5c3RlbXMgZG9uJ3QgaGF2ZSBub24tcm9vdCB1c2VycywgaXQncyB1c2VmdWwgdG8gYmUKKyMgYWJsZSB0byB1c2UgcHVsc2VhdWRpbyBhdXRvc3Bhd24gZm9yIHJvb3QgYXMgd2VsbC4KK1BBQ0tBR0VDT05GSUdbYXV0b3NwYXduLWZvci1yb290XSA9ICIsLCwiCisKK0VYVFJBX09FQ09ORl9hcHBlbmRfYXJtID0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCJUVU5FX0ZFQVRVUkVTIiwgIm5lb24iLCAiIiwgIiAtLWVuYWJsZS1uZW9uLW9wdD1ubyIsIGQpfSIKK0VYVFJBX09FQ09ORl9hcHBlbmRfYXJtZWIgPSAiJHtAYmIudXRpbHMuY29udGFpbnMoIlRVTkVfRkVBVFVSRVMiLCAibmVvbiIsICIiLCAiIC0tZW5hYmxlLW5lb24tb3B0PW5vIiwgZCl9IgorCisKK2V4cG9ydCBUQVJHRVRfUEZQVSA9ICIke1RBUkdFVF9GUFV9IgorCisjIFRPRE86IFVzZSBtb3JlIGZpbmUgZ3JhbnVsYXIgdmVyc2lvbgorI09FX0xUX1JQQVRIX0FMTE9XPSI6JHtsaWJkaXJ9L3B1bHNlLTAuOToiCitPRV9MVF9SUEFUSF9BTExPVyA9ICJhbnkiCitPRV9MVF9SUEFUSF9BTExPV1tleHBvcnRdPSIxIgorCitzZXRfY2ZnX3ZhbHVlICgpIHsKKwlzZWQgLWkgLWUgInMvXCg7ICpcKVw/JDIgPS4qLyQyID0gJDMvIiAiJDEiCisJaWYgISBncmVwIC1xICJeJDIgPSAkM1wkIiAiJDEiOyB0aGVuCisJCWRpZSAiVXNlIG9mIHNlZCB0byBzZXQgJyQyJyB0byAnJDMnIGluICckMScgZmFpbGVkIgorCWZpCit9CisKK2RvX2NvbXBpbGVfYXBwZW5kICgpIHsKKwlpZiAke0BiYi51dGlscy5jb250YWlucygnUEFDS0FHRUNPTkZJRycsICdhdXRvc3Bhd24tZm9yLXJvb3QnLCAndHJ1ZScsICdmYWxzZScsIGQpfTsgdGhlbgorCQlzZXRfY2ZnX3ZhbHVlIHNyYy9jbGllbnQuY29uZiBhbGxvdy1hdXRvc3Bhd24tZm9yLXJvb3QgeWVzCisJZmkKK30KKworZG9faW5zdGFsbF9hcHBlbmQoKSB7CisJaW5zdGFsbCAtZCAke0R9JHtzeXNjb25mZGlyfS9kZWZhdWx0L3ZvbGF0aWxlcworCWluc3RhbGwgLW0gMDY0NCAke1dPUktESVJ9L3ZvbGF0aWxlcy4wNF9wdWxzZSAgJHtEfSR7c3lzY29uZmRpcn0vZGVmYXVsdC92b2xhdGlsZXMvdm9sYXRpbGVzLjA0X3B1bHNlCit9CisKK1VTRVJBRERfUEFDS0FHRVMgPSAicHVsc2VhdWRpby1zZXJ2ZXIiCitHUk9VUEFERF9QQVJBTV9wdWxzZWF1ZGlvLXNlcnZlciA9ICJwdWxzZSIKK1VTRVJBRERfUEFSQU1fcHVsc2VhdWRpby1zZXJ2ZXIgPSAiLS1zeXN0ZW0gLS1ob21lIC92YXIvcnVuL3B1bHNlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tbm8tY3JlYXRlLWhvbWUgLS1zaGVsbCAvYmluL2ZhbHNlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tZ3JvdXBzIGF1ZGlvLHB1bHNlIC0tZ2lkIHB1bHNlIHB1bHNlIgorCisjIFRoZSBjb25zb2xlLWtpdCBtb2R1bGUgaXMgaW5jbHVkZWQgaGVyZSBleHBsaWNpdGx5IHNvIGJpdGJha2UgY2FuIG1hcCB0byB0aGUKKyMgUkRFUEVORFMgd2UgZGVmaW5lIGZvciBpdCBpbiB0aGlzIHJlY2lwZSwgYW5kIHRoZXJlYnkgZW5zdXJlIHRoYXQgd2hlbgorIyBhZGRpbmcgdGhlIGNvbnNvbGUta2l0IG1vZHVsZSB0byBhbiBpbWFnZSwgd2UgYWxzbyBnZXQgdGhlIG5lY2Vzc2FyeQorIyBjb25zb2xla2l0IHBhY2thZ2UgcHJvZHVjZWQuCitQQUNLQUdFUyA9KyAibGlicHVsc2Vjb3JlIGxpYnB1bHNlY29tbW9uIGxpYnB1bHNlIGxpYnB1bHNlLXNpbXBsZSBsaWJwdWxzZS1tYWlubG9vcC1nbGliIFwKKyAgICAgICAgICAgICBwdWxzZWF1ZGlvLXNlcnZlciBwdWxzZWF1ZGlvLW1pc2MgJHtAYmIudXRpbHMuY29udGFpbnMoJ1BBQ0tBR0VDT05GSUcnLCAnZGJ1cycsICdwdWxzZWF1ZGlvLW1vZHVsZS1jb25zb2xlLWtpdCcsICcnLCBkKX0iCisKKyN1cGdyYWRlIHBhdGg6CitSUkVQTEFDRVNfcHVsc2VhdWRpby1zZXJ2ZXIgPSAibGlicHVsc2UtYmluIGxpYnB1bHNlLWNvbmYiCisKK1BBQ0tBR0VTX0RZTkFNSUMgKz0gIl5wdWxzZWF1ZGlvLWxpYi0uKiBecHVsc2VhdWRpby1tb2R1bGUtLioiCisKK0ZJTEVTX2xpYnB1bHNlY29yZSA9ICIke2xpYmRpcn0vbGlicHVsc2Vjb3JlKi5zbyIKK0ZJTEVTX2xpYnB1bHNlY29tbW9uID0gIiR7bGliZGlyfS9wdWxzZWF1ZGlvL2xpYnB1bHNlY29tbW9uKi5zbyIKKworIyBjbGllbnQuY29uZiBjb25maWd1cmVzIHRoZSBiZWhhdmlvdXIgb2YgbGlicHVsc2UsIHNvIGl0IGJlbG9uZ3MgaW4gdGhlIHNhbWUKKyMgcGFja2FnZS4KK0ZJTEVTX2xpYnB1bHNlID0gIiR7bGliZGlyfS9saWJwdWxzZS5zby4qICR7c3lzY29uZmRpcn0vcHVsc2UvY2xpZW50LmNvbmYiCisKK0ZJTEVTX2xpYnB1bHNlLXNpbXBsZSA9ICIke2xpYmRpcn0vbGlicHVsc2Utc2ltcGxlLnNvLioiCitGSUxFU19saWJwdWxzZS1tYWlubG9vcC1nbGliID0gIiR7bGliZGlyfS9saWJwdWxzZS1tYWlubG9vcC1nbGliLnNvLioiCisKK0ZJTEVTXyR7UE59LWRiZyArPSAiJHtsaWJleGVjZGlyfS9wdWxzZS8uZGVidWcgXAorICAgICAgICAgICAgICAgICAgICAke2xpYmRpcn0vcHVsc2UtJHtQVn0vbW9kdWxlcy8uZGVidWciCitGSUxFU18ke1BOfS1kZXYgKz0gIiR7bGliZGlyfS9wdWxzZS0ke1BWfS9tb2R1bGVzLyoubGEgJHtkYXRhZGlyfS92YWxhICR7bGliZGlyfS9jbWFrZSIgICAKK0ZJTEVTXyR7UE59LWNvbmYgPSAiJHtzeXNjb25mZGlyfSIKK0ZJTEVTXyR7UE59LWJpbiArPSAiJHtzeXNjb25mZGlyfS9kZWZhdWx0L3ZvbGF0aWxlcy92b2xhdGlsZXMuMDRfcHVsc2UiCitGSUxFU18ke1BOfS1zZXJ2ZXIgPSAiJHtiaW5kaXJ9L3B1bHNlYXVkaW8gJHtiaW5kaXJ9L3N0YXJ0LSogJHtzeXNjb25mZGlyfSAke2JpbmRpcn0vcGFjdGwgKi91ZGV2L3J1bGVzLmQvKi5ydWxlcyAqLyovdWRldi9ydWxlcy5kLyoucnVsZXMgJHtzeXN0ZW1kX3VzZXJfdW5pdGRpcn0vKiIKKworI1NZU1RFTURfUEFDS0FHRVMgPSAiJHtQTn0tc2VydmVyIgorU1lTVEVNRF9TRVJWSUNFXyR7UE59LXNlcnZlciA9ICJwdWxzZWF1ZGlvLnNlcnZpY2UiCisKK0ZJTEVTXyR7UE59LW1pc2MgPSAiJHtiaW5kaXJ9LyogJHtsaWJkaXJ9L3B1bHNlYXVkaW8vbGlicHVsc2Vkc3Auc28iCisKKyMgQWxsb3cgdGhlIHB1bHNlYXVkaW8gcGFja2FnZSB0byBiZSBjcmVhdGVkIGVtcHR5IGFzIGEgcGxhY2Vob2xkZXIgKC1kYmcgYW5kIC1kZXYgZGVwZW5kIG9uIGl0KQorQUxMT1dfRU1QVFlfJHtQTn0gPSAiMSIKKworQ09ORkZJTEVTX2xpYnB1bHNlID0gIiR7c3lzY29uZmRpcn0vcHVsc2UvY2xpZW50LmNvbmYiCisKK0NPTkZGSUxFU19wdWxzZWF1ZGlvLXNlcnZlciA9ICJcIAorICAke3N5c2NvbmZkaXJ9L3B1bHNlL2RlZmF1bHQucGEgXAorICAke3N5c2NvbmZkaXJ9L3B1bHNlL2RhZW1vbi5jb25mIFwKKyAgJHtzeXNjb25mZGlyfS9wdWxzZS9zeXN0ZW0ucGEgXAorICAiCisKK3BrZ19wb3N0aW5zdF8ke1BOfS1zZXJ2ZXIoKSB7CisgICAgICAgIGlmIFsgLXogIiREIiBdICYmIFsgLWUgJHtzeXNjb25mZGlyfS9pbml0LmQvcG9wdWxhdGUtdm9sYXRpbGUuc2ggXSA7IHRoZW4KKyAgICAgICAgICAgICR7c3lzY29uZmRpcn0vaW5pdC5kL3BvcHVsYXRlLXZvbGF0aWxlLnNoIHVwZGF0ZQorICAgICAgICBmaQorfQorCitweXRob24gcG9wdWxhdGVfcGFja2FnZXNfcHJlcGVuZCgpIHsKKyAgICAjZC5zZXRWYXIoJ1BLR19wdWxzZWF1ZGlvJywgJ3B1bHNlYXVkaW8nKQorCisgICAgcGx1Z2luZGlyID0gZC5leHBhbmQoJyR7bGliZGlyfS9wdWxzZS0ke1BWfS9tb2R1bGVzLycpCisgICAgZG9fc3BsaXRfcGFja2FnZXMoZCwgcGx1Z2luZGlyLCAnXm1vZHVsZS0oLiopXC5zbyQnLCAncHVsc2VhdWRpby1tb2R1bGUtJXMnLCAnUHVsc2VBdWRpbyBtb2R1bGUgZm9yICVzJywgZXh0cmFfZGVwZW5kcz0nJywgcHJlcGVuZD1UcnVlKQorICAgIGRvX3NwbGl0X3BhY2thZ2VzKGQsIHBsdWdpbmRpciwgJ15saWIoLiopXC5zbyQnLCAncHVsc2VhdWRpby1saWItJXMnLCAnUHVsc2VBdWRpbyBsaWJyYXJ5IGZvciAlcycsIGV4dHJhX2RlcGVuZHM9JycsIHByZXBlbmQ9VHJ1ZSkKK30KKworUkRFUEVORFNfcHVsc2VhdWRpby1zZXJ2ZXIgPSAiIFwKKyAgICBwdWxzZWF1ZGlvLW1vZHVsZS1maWx0ZXItYXBwbHkgXAorICAgIHB1bHNlYXVkaW8tbW9kdWxlLWZpbHRlci1oZXVyaXN0aWNzIFwKKyAgICBwdWxzZWF1ZGlvLW1vZHVsZS11ZGV2LWRldGVjdCBcCisgICAgcHVsc2VhdWRpby1tb2R1bGUtbnVsbC1zaW5rIFwKKyAgICBwdWxzZWF1ZGlvLW1vZHVsZS1kZXZpY2UtcmVzdG9yZSBcCisgICAgcHVsc2VhdWRpby1tb2R1bGUtc3RyZWFtLXJlc3RvcmUgXAorICAgIHB1bHNlYXVkaW8tbW9kdWxlLWNhcmQtcmVzdG9yZSBcCisgICAgcHVsc2VhdWRpby1tb2R1bGUtYXVnbWVudC1wcm9wZXJ0aWVzIFwKKyAgICBwdWxzZWF1ZGlvLW1vZHVsZS1kZXRlY3QgXAorICAgIHB1bHNlYXVkaW8tbW9kdWxlLWFsc2Etc2luayBcCisgICAgcHVsc2VhdWRpby1tb2R1bGUtYWxzYS1zb3VyY2UgXAorICAgIHB1bHNlYXVkaW8tbW9kdWxlLWFsc2EtY2FyZCBcCisgICAgcHVsc2VhdWRpby1tb2R1bGUtbmF0aXZlLXByb3RvY29sLXVuaXggXAorICAgIHB1bHNlYXVkaW8tbW9kdWxlLWRlZmF1bHQtZGV2aWNlLXJlc3RvcmUgXAorICAgIHB1bHNlYXVkaW8tbW9kdWxlLWludGVuZGVkLXJvbGVzIFwKKyAgICBwdWxzZWF1ZGlvLW1vZHVsZS1yZXNjdWUtc3RyZWFtcyBcCisgICAgcHVsc2VhdWRpby1tb2R1bGUtYWx3YXlzLXNpbmsgXAorICAgIHB1bHNlYXVkaW8tbW9kdWxlLXN1c3BlbmQtb24taWRsZSBcCisgICAgcHVsc2VhdWRpby1tb2R1bGUtcG9zaXRpb24tZXZlbnQtc291bmRzIFwKKyAgICBwdWxzZWF1ZGlvLW1vZHVsZS1yb2xlLWNvcmsgXAorICAgIHB1bHNlYXVkaW8tbW9kdWxlLXN3aXRjaC1vbi1wb3J0LWF2YWlsYWJsZSIKKworIyBJZiB0aGUgc2VydmVyIGlzIGluc3RhbGxlZCwgaXQncyB1c3VhbGx5IGRlc2lyYWJsZSB0byBtYWtlIEFMU0EgYXBwbGljYXRpb25zCisjIHVzZSBQdWxzZUF1ZGlvLiBhbHNhLXBsdWdpbnMtcHVsc2VhdWRpby1jb25mIHdpbGwgaW5zdGFsbCB0aGUgY29uZmlndXJhdGlvbgorIyB0aGF0IG1ha2VzIHRoZSBQdWxzZUF1ZGlvIHBsdWdpbiB0aGUgZGVmYXVsdCBBTFNBIGRldmljZS4KK1JERVBFTkRTX3B1bHNlYXVkaW8tc2VydmVyICs9ICJhbHNhLXBsdWdpbnMtcHVsc2VhdWRpby1jb25mIgorCisjIHB1bHNlYXVkaW8tbW9kdWxlLWNvbnNvbGUta2l0IGlzIGJ1aWx0IHdoZW5ldmVyIGRidXMgaXMgZW5hYmxlZCBieSBQQUNLQUdFQ09ORklHCisjIGJ1dCBjb25zb2xla2l0IGRlcGVuZHMgb24gbGlieDExIGFuZCBpcyBhdmFpbGFibGUgb25seSBmb3IgRElTVFJPIHdpdGggeDExIGluIERJU1RST19GRUFUVVJFUworUkRFUEVORFNfcHVsc2VhdWRpby1tb2R1bGUtY29uc29sZS1raXQgPSsgIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAneDExJywgJ2NvbnNvbGVraXQnLCAnJywgZCl9IgorUkRFUEVORFNfcHVsc2VhdWRpby1taXNjICs9ICJwdWxzZWF1ZGlvLW1vZHVsZS1jbGktcHJvdG9jb2wtdW5peCIKKworRklMRVNfcHVsc2VhdWRpby1tb2R1bGUtZ2NvbmYgKz0gIiR7bGliZXhlY2Rpcn0vcHVsc2UvZ2NvbmYtaGVscGVyIgorRklMRVNfcHVsc2VhdWRpby1tb2R1bGUtYWxzYS1jYXJkICs9ICIke2RhdGFkaXJ9L3B1bHNlYXVkaW8vYWxzYS1taXhlciIKKworIyBUaGUgY29uc29sZS1raXQgbW9kdWxlIGlzIGdvb2QgdG8gaGF2ZSBvbiBYMTEgc3lzdGVtcyAoaXQga2VlcHMgUHVsc2VBdWRpbworIyBydW5uaW5nIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHVzZXIgbG9naW4gc2Vzc2lvbikuIFRoZSBkZXZpY2UtbWFuYWdlciBhbmQKKyMgeDExLSogbW9kdWxlcyBhcmUgcmVmZXJlbmNlZCBmcm9tIHRoZSBzdGFydC1wdWxzZWF1ZGlvLXgxMSBzY3JpcHQsIHNvIHRob3NlCisjIG1vZHVsZXMgbXVzdCBiZSBpbnN0YWxsZWQgd2hlbiBYMTEgaXMgZW5hYmxlZC4KK1JERVBFTkRTX3B1bHNlYXVkaW8tc2VydmVyICs9ICJcCisgICAgICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdESVNUUk9fRkVBVFVSRVMnLCAneDExJywgJ1wKKyAgICAgICAgICAgICAgICBwdWxzZWF1ZGlvLW1vZHVsZS1jb25zb2xlLWtpdCBcCisgICAgICAgICAgICAgICAgcHVsc2VhdWRpby1tb2R1bGUtZGV2aWNlLW1hbmFnZXIgXAorICAgICAgICAgICAgICAgIHB1bHNlYXVkaW8tbW9kdWxlLXgxMS1jb3JrLXJlcXVlc3QgXAorICAgICAgICAgICAgICAgIHB1bHNlYXVkaW8tbW9kdWxlLXgxMS1wdWJsaXNoIFwKKyAgICAgICAgICAgICAgICBwdWxzZWF1ZGlvLW1vZHVsZS14MTEteHNtcCBcCisgICAgICAgICcsICcnLCBkKX0iCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9wdWxzZWF1ZGlvL3B1bHNlYXVkaW8vMDAwMS1jbGllbnQtY29uZi1BZGQtYWxsb3ctYXV0b3NwYXduLWZvci1yb290LnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvcHVsc2VhdWRpby9wdWxzZWF1ZGlvLzAwMDEtY2xpZW50LWNvbmYtQWRkLWFsbG93LWF1dG9zcGF3bi1mb3Itcm9vdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTllYjdjCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvcHVsc2VhdWRpby9wdWxzZWF1ZGlvLzAwMDEtY2xpZW50LWNvbmYtQWRkLWFsbG93LWF1dG9zcGF3bi1mb3Itcm9vdC5wYXRjaApAQCAtMCwwICsxLDkyIEBACitGcm9tIDFjYjU2NDdmNzZkYzhjZDdiYWNiY2UyYTY0ZmFjOWU2YzJkYzNiMTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBUYW51IEthc2tpbmVuIDx0YW51Lmthc2tpbmVuQGxpbnV4LmludGVsLmNvbT4KK0RhdGU6IFR1ZSwgMjggQXByIDIwMTUgMTQ6MzI6NDMgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSF0gY2xpZW50LWNvbmY6IEFkZCBhbGxvdy1hdXRvc3Bhd24tZm9yLXJvb3QKKworVXN1YWxseSBhdXRvc3Bhd25pbmcgZm9yIHJvb3QgaXMgYSBiYWQgaWRlYSwgc2luY2UgaXQgY2FuIGVhc2lseQoraW50ZXJmZXJlIHdpdGggb3RoZXIgdXNlcnMnIFB1bHNlQXVkaW8gaW5zdGFuY2VzLCBidXQgaW4gZW1iZWRkZWQKK2Vudmlyb25tZW50cyB3aGVyZSBvbmx5IHJvb3QgZXhpc3RzLCBhdXRvc3Bhd25pbmcgaXMgZmluZS4KKworVXBzdHJlYW0tU3RhdHVzOiBTdWJtaXR0ZWQgW2h0dHA6Ly90aHJlYWQuZ21hbmUub3JnL2dtYW5lLmNvbXAuYXVkaW8ucHVsc2VhdWRpby5nZW5lcmFsLzIzNTQ5XQorCitTaWduZWQtb2ZmLWJ5OiBUYW51IEthc2tpbmVuIDx0YW51Lmthc2tpbmVuQGxpbnV4LmludGVsLmNvbT4KKy0tLQorIG1hbi9wdWxzZS1jbGllbnQuY29uZi41LnhtbC5pbiB8IDkgKysrKysrKysrCisgc3JjL3B1bHNlL2NsaWVudC1jb25mLmMgICAgICAgIHwgMSArCisgc3JjL3B1bHNlL2NsaWVudC1jb25mLmggICAgICAgIHwgMSArCisgc3JjL3B1bHNlL2NsaWVudC5jb25mLmluICAgICAgIHwgMSArCisgc3JjL3B1bHNlL2NvbnRleHQuYyAgICAgICAgICAgIHwgMiArLQorIDUgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvbWFuL3B1bHNlLWNsaWVudC5jb25mLjUueG1sLmluIGIvbWFuL3B1bHNlLWNsaWVudC5jb25mLjUueG1sLmluCitpbmRleCAxMDAyZGJlLi4wMDU4NDkwIDEwMDY0NAorLS0tIGEvbWFuL3B1bHNlLWNsaWVudC5jb25mLjUueG1sLmluCisrKysgYi9tYW4vcHVsc2UtY2xpZW50LmNvbmYuNS54bWwuaW4KK0BAIC03MSw2ICs3MSwxNSBAQCBMaWNlbnNlIGFsb25nIHdpdGggUHVsc2VBdWRpbzsgaWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICAgICA8L29wdGlvbj4KKyAKKyAgICAgPG9wdGlvbj4KKysgICAgICA8cD48b3B0PmFsbG93LWF1dG9zcGF3bi1mb3Itcm9vdD08L29wdD4gQWxsb3cgYXV0b3NwYXduaW5nIGFsc28gZm9yIHJvb3QuCisrICAgICAgVGFrZXMgYSBib29sZWFuIHZhbHVlLCBkZWZhdWx0cyB0byA8b3B0Pm5vPC9vcHQ+LiBJZiB0aGUgPG9wdD5hdXRvc3Bhd24KKysgICAgICA8L29wdD4gb3B0aW9uIGlzIGRpc2FibGVkLCB0aGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0LiBBdXRvc3Bhd25pbmcgZm9yCisrICAgICAgcm9vdCBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LCBiZWNhdXNlIHJ1bm5pbmcgUHVsc2VBdWRpbyBhcyByb290IHdpbGwKKysgICAgICBpbnRlcmZlcmUgd2l0aCByZWd1bGFyIHVzZXJzJyBQdWxzZUF1ZGlvIGluc3RhbmNlcy4gVGhpcyBvcHRpb24gc2hvdWxkIGJlCisrICAgICAgZW5hYmxlZCBvbmx5IGluIGVudmlyb25tZW50cyB3aGVyZSB0aGVyZSBhcmUgbm8gcmVndWxhciB1c2VycyBhdCBhbGwuPC9wPgorKyAgICA8L29wdGlvbj4KKysKKysgICAgPG9wdGlvbj4KKyAgICAgICA8cD48b3B0PmRhZW1vbi1iaW5hcnk9PC9vcHQ+IFBhdGggdG8gdGhlIFB1bHNlQXVkaW8gZGFlbW9uIHRvCisgICAgICAgcnVuIHdoZW4gYXV0b3NwYXduaW5nLiBEZWZhdWx0cyB0byBhIHBhdGggY29uZmlndXJlZCBhdCBjb21waWxlCisgICAgICAgdGltZS48L3A+CitkaWZmIC0tZ2l0IGEvc3JjL3B1bHNlL2NsaWVudC1jb25mLmMgYi9zcmMvcHVsc2UvY2xpZW50LWNvbmYuYworaW5kZXggODMzMzFmOC4uMDQ3NDU4MyAxMDA2NDQKKy0tLSBhL3NyYy9wdWxzZS9jbGllbnQtY29uZi5jCisrKysgYi9zcmMvcHVsc2UvY2xpZW50LWNvbmYuYworQEAgLTEzOCw2ICsxMzgsNyBAQCB2b2lkIHBhX2NsaWVudF9jb25mX2xvYWQocGFfY2xpZW50X2NvbmYgKmMsIGJvb2wgbG9hZF9mcm9tX3gxMSwgYm9vbCBsb2FkX2Zyb21fZQorICAgICAgICAgeyAiZGVmYXVsdC1zZXJ2ZXIiLCAgICAgICAgIHBhX2NvbmZpZ19wYXJzZV9zdHJpbmcsICAgJmMtPmRlZmF1bHRfc2VydmVyLCBOVUxMIH0sCisgICAgICAgICB7ICJkZWZhdWx0LWRidXMtc2VydmVyIiwgICAgcGFfY29uZmlnX3BhcnNlX3N0cmluZywgICAmYy0+ZGVmYXVsdF9kYnVzX3NlcnZlciwgTlVMTCB9LAorICAgICAgICAgeyAiYXV0b3NwYXduIiwgICAgICAgICAgICAgIHBhX2NvbmZpZ19wYXJzZV9ib29sLCAgICAgJmMtPmF1dG9zcGF3biwgTlVMTCB9LAorKyAgICAgICAgeyAiYWxsb3ctYXV0b3NwYXduLWZvci1yb290IiwgcGFfY29uZmlnX3BhcnNlX2Jvb2wsICAgJmMtPmFsbG93X2F1dG9zcGF3bl9mb3Jfcm9vdCwgTlVMTCB9LAorICAgICAgICAgeyAiY29va2llLWZpbGUiLCAgICAgICAgICAgIHBhX2NvbmZpZ19wYXJzZV9zdHJpbmcsICAgJmMtPmNvb2tpZV9maWxlX2Zyb21fY2xpZW50X2NvbmYsIE5VTEwgfSwKKyAgICAgICAgIHsgImRpc2FibGUtc2htIiwgICAgICAgICAgICBwYV9jb25maWdfcGFyc2VfYm9vbCwgICAgICZjLT5kaXNhYmxlX3NobSwgTlVMTCB9LAorICAgICAgICAgeyAiZW5hYmxlLXNobSIsICAgICAgICAgICAgIHBhX2NvbmZpZ19wYXJzZV9ub3RfYm9vbCwgJmMtPmRpc2FibGVfc2htLCBOVUxMIH0sCitkaWZmIC0tZ2l0IGEvc3JjL3B1bHNlL2NsaWVudC1jb25mLmggYi9zcmMvcHVsc2UvY2xpZW50LWNvbmYuaAoraW5kZXggZWFjNzA1YS4uMTMxMzkzYSAxMDA2NDQKKy0tLSBhL3NyYy9wdWxzZS9jbGllbnQtY29uZi5oCisrKysgYi9zcmMvcHVsc2UvY2xpZW50LWNvbmYuaAorQEAgLTM4LDYgKzM4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgcGFfY2xpZW50X2NvbmYgeworICAgICBjaGFyICpjb29raWVfZmlsZV9mcm9tX2FwcGxpY2F0aW9uOworICAgICBjaGFyICpjb29raWVfZmlsZV9mcm9tX2NsaWVudF9jb25mOworICAgICBib29sIGF1dG9zcGF3biwgZGlzYWJsZV9zaG0sIGF1dG9fY29ubmVjdF9sb2NhbGhvc3QsIGF1dG9fY29ubmVjdF9kaXNwbGF5OworKyAgICBib29sIGFsbG93X2F1dG9zcGF3bl9mb3Jfcm9vdDsKKyAgICAgc2l6ZV90IHNobV9zaXplOworIH0gcGFfY2xpZW50X2NvbmY7CisgCitkaWZmIC0tZ2l0IGEvc3JjL3B1bHNlL2NsaWVudC5jb25mLmluIGIvc3JjL3B1bHNlL2NsaWVudC5jb25mLmluCitpbmRleCAyNmI3NzkwLi42OTgzMGVmIDEwMDY0NAorLS0tIGEvc3JjL3B1bHNlL2NsaWVudC5jb25mLmluCisrKysgYi9zcmMvcHVsc2UvY2xpZW50LmNvbmYuaW4KK0BAIC0yMyw2ICsyMyw3IEBACisgOyBkZWZhdWx0LWRidXMtc2VydmVyID0KKyAKKyA7IGF1dG9zcGF3biA9IHllcworKzsgYWxsb3ctYXV0b3NwYXduLWZvci1yb290ID0gbm8KKyA7IGRhZW1vbi1iaW5hcnkgPSBAUEFfQklOQVJZQAorIDsgZXh0cmEtYXJndW1lbnRzID0gLS1sb2ctdGFyZ2V0PXN5c2xvZworIAorZGlmZiAtLWdpdCBhL3NyYy9wdWxzZS9jb250ZXh0LmMgYi9zcmMvcHVsc2UvY29udGV4dC5jCitpbmRleCA0YmM0NDVmLi5kNmMzZjZkIDEwMDY0NAorLS0tIGEvc3JjL3B1bHNlL2NvbnRleHQuYworKysrIGIvc3JjL3B1bHNlL2NvbnRleHQuYworQEAgLTk3Niw3ICs5NzYsNyBAQCBpbnQgcGFfY29udGV4dF9jb25uZWN0KAorICAgICBpZiAoIShmbGFncyAmIFBBX0NPTlRFWFRfTk9BVVRPU1BBV04pICYmIGMtPmNvbmYtPmF1dG9zcGF3bikgeworIAorICNpZmRlZiBIQVZFX0dFVFVJRAorLSAgICAgICAgaWYgKGdldHVpZCgpID09IDApCisrICAgICAgICBpZiAoIWMtPmNvbmYtPmFsbG93X2F1dG9zcGF3bl9mb3Jfcm9vdCAmJiBnZXR1aWQoKSA9PSAwKQorICAgICAgICAgICAgIHBhX2xvZ19kZWJ1ZygiTm90IGRvaW5nIGF1dG9zcGF3biBzaW5jZSB3ZSBhcmUgcm9vdC4iKTsKKyAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgIGMtPmRvX2F1dG9zcGF3biA9IHRydWU7CistLSAKKzEuOS4zCisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL3B1bHNlYXVkaW8vcHVsc2VhdWRpby8wMDAxLWNvbmYtcGFyc2VyLWFkZC1zdXBwb3J0LWZvci0uZC1kaXJlY3Rvcmllcy5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL3B1bHNlYXVkaW8vcHVsc2VhdWRpby8wMDAxLWNvbmYtcGFyc2VyLWFkZC1zdXBwb3J0LWZvci0uZC1kaXJlY3Rvcmllcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWYxYjJhCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvcHVsc2VhdWRpby9wdWxzZWF1ZGlvLzAwMDEtY29uZi1wYXJzZXItYWRkLXN1cHBvcnQtZm9yLS5kLWRpcmVjdG9yaWVzLnBhdGNoCkBAIC0wLDAgKzEsMTk2IEBACitGcm9tIDhjYjY0M2JiZjBhMjg3ZDY3Nzk0ZTY4MGQyNmY0OWM1MDNmMzEwNTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBUYW51IEthc2tpbmVuIDx0YW51Lmthc2tpbmVuQGxpbnV4LmludGVsLmNvbT4KK0RhdGU6IFRodSwgMjEgTWF5IDIwMTUgMjE6MDA6NTkgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSF0gY29uZi1wYXJzZXI6IGFkZCBzdXBwb3J0IGZvciAuZCBkaXJlY3RvcmllcworCitUaGlzIGFsbG93cyBhIGNvbmZpZ3VyYXRpb24gc2NoZW1lIHdoZXJlIHByaW9yIHRvIGxvYWRpbmcKK2NvbmZpZ3VyYXRpb24gZnJvbSAic29tZWZpbGUiLCB0aGUgcGFyc2VyIGZpcnN0IGxvYWRzIGNvbmZpZ3VyYXRpb24KK2Zyb20gZmlsZXMgaW4gZGlyZWN0b3J5ICJzb21lZmlsZS5kIi4gVGhpcyBmZWF0dXJlIGlzIGN1cnJlbnRseQorZW5hYmxlZCBvbmx5IGZvciBjbGllbnQuY29uZiBhbmQgZGFlbW9uLmNvbmYuCisKK1RoaXMgbWFrZXMgaXQgZWFzaWVyIHRvIGNyZWF0ZSBjb25maWd1cmF0aW9uIHBhY2thZ2VzIGluIGRpc3RyaWJ1dGlvbnMKK3doZW4gdGhlcmUncyBuZWVkIHRvIGhhdmUgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24gaW4gZGlmZmVyZW50IHNldHVwcy4KK0ZvciBleGFtcGxlLCB0aGUgZ3JhcGhpY2FsIFNhdG8gZW52aXJvbm1lbnQgaW4gT3BlbkVtYmVkZGVkLWNvcmUgbmVlZHMKK3RvIHNldCBhbGxvdy1hdXRvc3Bhd24tZm9yLXJvb3Q9dHJ1ZSBpbiBjbGllbnQuY29uZiwgYnV0IHRoZSBkZWZhdWx0Citjb25maWd1cmF0aW9uIGluIE9wZW5FbWJlZGRlZC1jb3JlIHNob3VsZCBub3Qgc2V0IHRoYXQgb3B0aW9uLiBXaXRoCit0aGlzIHBhdGNoLCBJIGNhbiBjcmVhdGUgYSBTYXRvLXNwZWNpZmljIHBhY2thZ2UgdGhhdCBzaW1wbHkgaW5zdGFsbHMKKzUwLXNhdG8uY29uZiBpbiAvZXRjL3B1bHNlL2NsaWVudC5jb25mLmQgd2l0aG91dCBjb25mbGljdGluZyB3aXRoIHRoZQorbWFpbiBjbGllbnQuY29uZiBmaWxlIGNvbWluZyBmcm9tIGEgZGlmZmVyZW50IHBhY2thZ2UuCisKK1Vwc3RyZWFtLVN0YXR1czogU3VibWl0dGVkIFtodHRwOi8vdGhyZWFkLmdtYW5lLm9yZy9nbWFuZS5jb21wLmF1ZGlvLnB1bHNlYXVkaW8uZ2VuZXJhbC8yMzU5Ml0KKworU2lnbmVkLW9mZi1ieTogVGFudSBLYXNraW5lbiA8dGFudS5rYXNraW5lbkBsaW51eC5pbnRlbC5jb20+CistLS0KKyBzcmMvZGFlbW9uL2RhZW1vbi1jb25mLmMgICAgICAgICAgICAgICAgfCAgMiArLQorIHNyYy9tb2R1bGVzL2Fsc2EvYWxzYS1taXhlci5jICAgICAgICAgICB8ICA0ICsrLS0KKyBzcmMvbW9kdWxlcy9tb2R1bGUtYXVnbWVudC1wcm9wZXJ0aWVzLmMgfCAgMiArLQorIHNyYy9wdWxzZS9jbGllbnQtY29uZi5jICAgICAgICAgICAgICAgICB8ICAyICstCisgc3JjL3B1bHNlY29yZS9jb25mLXBhcnNlci5jICAgICAgICAgICAgIHwgNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCisgc3JjL3B1bHNlY29yZS9jb25mLXBhcnNlci5oICAgICAgICAgICAgIHwgIDggKysrKysrLQorIDYgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9kYWVtb24vZGFlbW9uLWNvbmYuYyBiL3NyYy9kYWVtb24vZGFlbW9uLWNvbmYuYworaW5kZXggMjFhOGVkYi4uMTMzMmZjNiAxMDA2NDQKKy0tLSBhL3NyYy9kYWVtb24vZGFlbW9uLWNvbmYuYworKysrIGIvc3JjL2RhZW1vbi9kYWVtb24tY29uZi5jCitAQCAtNjE3LDcgKzYxNyw3IEBAIGludCBwYV9kYWVtb25fY29uZl9sb2FkKHBhX2RhZW1vbl9jb25mICpjLCBjb25zdCBjaGFyICpmaWxlbmFtZSkgeworICAgICBjaS5kZWZhdWx0X2NoYW5uZWxfbWFwX3NldCA9IGNpLmRlZmF1bHRfc2FtcGxlX3NwZWNfc2V0ID0gZmFsc2U7CisgICAgIGNpLmNvbmYgPSBjOworIAorLSAgICByID0gZiA/IHBhX2NvbmZpZ19wYXJzZShjLT5jb25maWdfZmlsZSwgZiwgdGFibGUsIE5VTEwsIE5VTEwpIDogMDsKKysgICAgciA9IGYgPyBwYV9jb25maWdfcGFyc2UoYy0+Y29uZmlnX2ZpbGUsIGYsIHRhYmxlLCBOVUxMLCB0cnVlLCBOVUxMKSA6IDA7CisgCisgICAgIGlmIChyID49IDApIHsKKyAKK2RpZmYgLS1naXQgYS9zcmMvbW9kdWxlcy9hbHNhL2Fsc2EtbWl4ZXIuYyBiL3NyYy9tb2R1bGVzL2Fsc2EvYWxzYS1taXhlci5jCitpbmRleCAyMzE0NjEyLi45ODhiNGZlIDEwMDY0NAorLS0tIGEvc3JjL21vZHVsZXMvYWxzYS9hbHNhLW1peGVyLmMKKysrKyBiL3NyYy9tb2R1bGVzL2Fsc2EvYWxzYS1taXhlci5jCitAQCAtMjQ4Myw3ICsyNDgzLDcgQEAgcGFfYWxzYV9wYXRoKiBwYV9hbHNhX3BhdGhfbmV3KGNvbnN0IGNoYXIgKnBhdGhzX2RpciwgY29uc3QgY2hhciAqZm5hbWUsIHBhX2Fsc2EKKyAKKyAgICAgZm4gPSBwYV9tYXliZV9wcmVmaXhfcGF0aChmbmFtZSwgcGF0aHNfZGlyKTsKKyAKKy0gICAgciA9IHBhX2NvbmZpZ19wYXJzZShmbiwgTlVMTCwgaXRlbXMsIHAtPnByb3BsaXN0LCBwKTsKKysgICAgciA9IHBhX2NvbmZpZ19wYXJzZShmbiwgTlVMTCwgaXRlbXMsIHAtPnByb3BsaXN0LCBmYWxzZSwgcCk7CisgICAgIHBhX3hmcmVlKGZuKTsKKyAKKyAgICAgaWYgKHIgPCAwKQorQEAgLTQyODgsNyArNDI4OCw3IEBAIHBhX2Fsc2FfcHJvZmlsZV9zZXQqIHBhX2Fsc2FfcHJvZmlsZV9zZXRfbmV3KGNvbnN0IGNoYXIgKmZuYW1lLCBjb25zdCBwYV9jaGFubmVsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFfcnVuX2Zyb21fYnVpbGRfdHJlZSgpID8gUEFfU1JDRElSICIvbW9kdWxlcy9hbHNhL21peGVyL3Byb2ZpbGUtc2V0cy8iIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQV9BTFNBX1BST0ZJTEVfU0VUU19ESVIpOworIAorLSAgICByID0gcGFfY29uZmlnX3BhcnNlKGZuLCBOVUxMLCBpdGVtcywgTlVMTCwgcHMpOworKyAgICByID0gcGFfY29uZmlnX3BhcnNlKGZuLCBOVUxMLCBpdGVtcywgTlVMTCwgZmFsc2UsIHBzKTsKKyAgICAgcGFfeGZyZWUoZm4pOworIAorICAgICBpZiAociA8IDApCitkaWZmIC0tZ2l0IGEvc3JjL21vZHVsZXMvbW9kdWxlLWF1Z21lbnQtcHJvcGVydGllcy5jIGIvc3JjL21vZHVsZXMvbW9kdWxlLWF1Z21lbnQtcHJvcGVydGllcy5jCitpbmRleCA0MmI2ZmQ5Li41NDFmMGU3IDEwMDY0NAorLS0tIGEvc3JjL21vZHVsZXMvbW9kdWxlLWF1Z21lbnQtcHJvcGVydGllcy5jCisrKysgYi9zcmMvbW9kdWxlcy9tb2R1bGUtYXVnbWVudC1wcm9wZXJ0aWVzLmMKK0BAIC0yMDQsNyArMjA0LDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlX3J1bGUoc3RydWN0IHJ1bGUgKnIpIHsKKyAgICAgdGFibGVbMF0uZGF0YSA9ICZyLT5hcHBsaWNhdGlvbl9uYW1lOworICAgICB0YWJsZVsxXS5kYXRhID0gJnItPmljb25fbmFtZTsKKyAKKy0gICAgaWYgKHBhX2NvbmZpZ19wYXJzZShmbiwgTlVMTCwgdGFibGUsIE5VTEwsIHIpIDwgMCkKKysgICAgaWYgKHBhX2NvbmZpZ19wYXJzZShmbiwgTlVMTCwgdGFibGUsIE5VTEwsIGZhbHNlLCByKSA8IDApCisgICAgICAgICBwYV9sb2dfd2FybigiRmFpbGVkIHRvIHBhcnNlIC5kZXNrdG9wIGZpbGUgJXMuIiwgZm4pOworIAorICAgICBwYV94ZnJlZShmbik7CitkaWZmIC0tZ2l0IGEvc3JjL3B1bHNlL2NsaWVudC1jb25mLmMgYi9zcmMvcHVsc2UvY2xpZW50LWNvbmYuYworaW5kZXggODMzMzFmOC4uM2MzMzg0ZCAxMDA2NDQKKy0tLSBhL3NyYy9wdWxzZS9jbGllbnQtY29uZi5jCisrKysgYi9zcmMvcHVsc2UvY2xpZW50LWNvbmYuYworQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lkIHBhX2NsaWVudF9jb25mX2xvYWQocGFfY2xpZW50X2NvbmYgKmMsIGJvb2wgbG9hZF9mcm9tX3gxMSwgYm9vbCBsb2FkX2Zyb21fZQorIAorICAgICBmID0gcGFfb3Blbl9jb25maWdfZmlsZShERUZBVUxUX0NMSUVOVF9DT05GSUdfRklMRSwgREVGQVVMVF9DTElFTlRfQ09ORklHX0ZJTEVfVVNFUiwgRU5WX0NMSUVOVF9DT05GSUdfRklMRSwgJmZuKTsKKyAgICAgaWYgKGYpIHsKKy0gICAgICAgIHBhX2NvbmZpZ19wYXJzZShmbiwgZiwgdGFibGUsIE5VTEwsIE5VTEwpOworKyAgICAgICAgcGFfY29uZmlnX3BhcnNlKGZuLCBmLCB0YWJsZSwgTlVMTCwgdHJ1ZSwgTlVMTCk7CisgICAgICAgICBwYV94ZnJlZShmbik7CisgICAgICAgICBmY2xvc2UoZik7CisgICAgIH0KK2RpZmYgLS1naXQgYS9zcmMvcHVsc2Vjb3JlL2NvbmYtcGFyc2VyLmMgYi9zcmMvcHVsc2Vjb3JlL2NvbmYtcGFyc2VyLmMKK2luZGV4IDJkY2Q0NWEuLmQ0NzMyMzIgMTAwNjQ0CistLS0gYS9zcmMvcHVsc2Vjb3JlL2NvbmYtcGFyc2VyLmMKKysrKyBiL3NyYy9wdWxzZWNvcmUvY29uZi1wYXJzZXIuYworQEAgLTIxLDYgKzIxLDcgQEAKKyAjaW5jbHVkZSA8Y29uZmlnLmg+CisgI2VuZGlmCisgCisrI2luY2x1ZGUgPGRpcmVudC5oPgorICNpbmNsdWRlIDxzdHJpbmcuaD4KKyAjaW5jbHVkZSA8c3RkaW8uaD4KKyAjaW5jbHVkZSA8ZXJybm8uaD4KK0BAIC0xMDMsNyArMTA0LDcgQEAgc3RhdGljIGludCBwYXJzZV9saW5lKHBhX2NvbmZpZ19wYXJzZXJfc3RhdGUgKnN0YXRlKSB7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorIAorLSAgICAgICAgciA9IHBhX2NvbmZpZ19wYXJzZShmbiwgTlVMTCwgc3RhdGUtPml0ZW1fdGFibGUsIHN0YXRlLT5wcm9wbGlzdCwgc3RhdGUtPnVzZXJkYXRhKTsKKysgICAgICAgIHIgPSBwYV9jb25maWdfcGFyc2UoZm4sIE5VTEwsIHN0YXRlLT5pdGVtX3RhYmxlLCBzdGF0ZS0+cHJvcGxpc3QsIGZhbHNlLCBzdGF0ZS0+dXNlcmRhdGEpOworICAgICAgICAgcGFfeGZyZWUocGF0aCk7CisgICAgICAgICByZXR1cm4gcjsKKyAgICAgfQorQEAgLTE1Miw4ICsxNTMsMTMgQEAgc3RhdGljIGludCBwYXJzZV9saW5lKHBhX2NvbmZpZ19wYXJzZXJfc3RhdGUgKnN0YXRlKSB7CisgICAgICAgICByZXR1cm4gbm9ybWFsX2Fzc2lnbm1lbnQoc3RhdGUpOworIH0KKyAKKytzdGF0aWMgaW50IGNvbmZfZmlsdGVyKGNvbnN0IHN0cnVjdCBkaXJlbnQgKmVudHJ5KSB7CisrICAgIHJldHVybiBwYV9lbmRzd2l0aChlbnRyeS0+ZF9uYW1lLCAiLmNvbmYiKTsKKyt9CisrCisgLyogR28gdGhyb3VnaCB0aGUgZmlsZSBhbmQgcGFyc2UgZWFjaCBsaW5lICovCistaW50IHBhX2NvbmZpZ19wYXJzZShjb25zdCBjaGFyICpmaWxlbmFtZSwgRklMRSAqZiwgY29uc3QgcGFfY29uZmlnX2l0ZW0gKnQsIHBhX3Byb3BsaXN0ICpwcm9wbGlzdCwgdm9pZCAqdXNlcmRhdGEpIHsKKytpbnQgcGFfY29uZmlnX3BhcnNlKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBGSUxFICpmLCBjb25zdCBwYV9jb25maWdfaXRlbSAqdCwgcGFfcHJvcGxpc3QgKnByb3BsaXN0LCBib29sIHVzZV9kb3RfZCwKKysgICAgICAgICAgICAgICAgICAgIHZvaWQgKnVzZXJkYXRhKSB7CisgICAgIGludCByID0gLTE7CisgICAgIGJvb2wgZG9fY2xvc2UgPSAhZjsKKyAgICAgcGFfY29uZmlnX3BhcnNlcl9zdGF0ZSBzdGF0ZTsKK0BAIC0xNjMsNiArMTY5LDM4IEBAIGludCBwYV9jb25maWdfcGFyc2UoY29uc3QgY2hhciAqZmlsZW5hbWUsIEZJTEUgKmYsIGNvbnN0IHBhX2NvbmZpZ19pdGVtICp0LCBwYV9wCisgCisgICAgIHBhX3plcm8oc3RhdGUpOworIAorKyAgICBpZiAodXNlX2RvdF9kKSB7CisrICAgICAgICBjaGFyICpkaXJfbmFtZTsKKysgICAgICAgIGludCBuOworKyAgICAgICAgc3RydWN0IGRpcmVudCAqKmVudHJpZXMgPSBOVUxMOworKworKyAgICAgICAgZGlyX25hbWUgPSBwYV9zcHJpbnRmX21hbGxvYygiJXMuZCIsIGZpbGVuYW1lKTsKKysKKysgICAgICAgIG4gPSBzY2FuZGlyKGRpcl9uYW1lLCAmZW50cmllcywgY29uZl9maWx0ZXIsIGFscGhhc29ydCk7CisrICAgICAgICBpZiAobiA+PSAwKSB7CisrICAgICAgICAgICAgaW50IGk7CisrCisrICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeworKyAgICAgICAgICAgICAgICBjaGFyICpmaWxlbmFtZTI7CisrCisrICAgICAgICAgICAgICAgIGZpbGVuYW1lMiA9IHBhX3NwcmludGZfbWFsbG9jKCIlcyIgUEFfUEFUSF9TRVAgIiVzIiwgZGlyX25hbWUsIGVudHJpZXNbaV0tPmRfbmFtZSk7CisrICAgICAgICAgICAgICAgIHBhX2NvbmZpZ19wYXJzZShmaWxlbmFtZTIsIE5VTEwsIHQsIHByb3BsaXN0LCBmYWxzZSwgdXNlcmRhdGEpOworKyAgICAgICAgICAgICAgICBwYV94ZnJlZShmaWxlbmFtZTIpOworKworKyAgICAgICAgICAgICAgICBmcmVlKGVudHJpZXNbaV0pOworKyAgICAgICAgICAgIH0KKysKKysgICAgICAgICAgICBmcmVlKGVudHJpZXMpOworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgICBpZiAoZXJybm8gPT0gRU5PRU5UKQorKyAgICAgICAgICAgICAgICBwYV9sb2dfZGVidWcoInNjYW5kaXIoXCIlc1wiKSBmYWlsZWQ6ICVzIiwgZGlyX25hbWUsIHBhX2NzdHJlcnJvcihlcnJubykpOworKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICAgcGFfbG9nX3dhcm4oInNjYW5kaXIoXCIlc1wiKSBmYWlsZWQ6ICVzIiwgZGlyX25hbWUsIHBhX2NzdHJlcnJvcihlcnJubykpOworKyAgICAgICAgfQorKworKyAgICAgICAgcGFfeGZyZWUoZGlyX25hbWUpOworKyAgICB9CisrCisgICAgIGlmICghZiAmJiAhKGYgPSBwYV9mb3Blbl9jbG9leGVjKGZpbGVuYW1lLCAiciIpKSkgeworICAgICAgICAgaWYgKGVycm5vID09IEVOT0VOVCkgeworICAgICAgICAgICAgIHBhX2xvZ19kZWJ1ZygiRmFpbGVkIHRvIG9wZW4gY29uZmlndXJhdGlvbiBmaWxlICclcyc6ICVzIiwgZmlsZW5hbWUsIHBhX2NzdHJlcnJvcihlcnJubykpOworZGlmZiAtLWdpdCBhL3NyYy9wdWxzZWNvcmUvY29uZi1wYXJzZXIuaCBiL3NyYy9wdWxzZWNvcmUvY29uZi1wYXJzZXIuaAoraW5kZXggZGJiNmY1Yy4uY2MyMGQ3ZCAxMDA2NDQKKy0tLSBhL3NyYy9wdWxzZWNvcmUvY29uZi1wYXJzZXIuaAorKysrIGIvc3JjL3B1bHNlY29yZS9jb25mLXBhcnNlci5oCitAQCAtNTksNiArNTksMTEgQEAgc3RydWN0IHBhX2NvbmZpZ19wYXJzZXJfc3RhdGUgeworICAqIHBhX2NvbmZpZ19pdGVtcyBpbiAqdCB0aGF0IGlzIHRlcm1pbmF0ZWQgYnkgYW4gaXRlbSB3aGVyZSBsdmFsdWUgaXMKKyAgKiBOVUxMLgorICAqCisrICogSWYgdXNlX2RvdF9kIGlzIHRydWUsIHRoZW4gYmVmb3JlIHBhcnNpbmcgdGhlIGZpbGUgbmFtZWQgYnkgdGhlIGZpbGVuYW1lCisrICogYXJndW1lbnQsIHRoZSBmdW5jdGlvbiB3aWxsIHBhcnNlIGFsbCBmaWxlcyBlbmRpbmcgd2l0aCAiLmNvbmYiIGluCisrICogYWxwaGFiZXRpY2FsIG9yZGVyIGZyb20gYSBkaXJlY3Rvcnkgd2hvc2UgbmFtZSBpcyBmaWxlbmFtZSArICIuZCIsIGlmIHN1Y2gKKysgKiBkaXJlY3RvcnkgZXhpc3RzLgorKyAqCisgICogU29tZSBjb25maWd1cmF0aW9uIGZpbGVzIG1heSBjb250YWluIGEgUHJvcGVydGllcyBzZWN0aW9uLCB3aGljaAorICAqIGlzIGEgYml0IHNwZWNpYWwuIE5vcm1hbGx5IGFsbCBhY2NlcHRlZCBsdmFsdWVzIG11c3QgYmUgcHJlZGVmaW5lZAorICAqIGluIHRoZSBwYV9jb25maWdfaXRlbSB0YWJsZSwgYnV0IGluIHRoZSBQcm9wZXJ0aWVzIHNlY3Rpb24gdGhlCitAQCAtNjgsNyArNzMsOCBAQCBzdHJ1Y3QgcGFfY29uZmlnX3BhcnNlcl9zdGF0ZSB7CisgICogcHJvcGVydGllcywgYW5kIHRob3NlIHByb3BlcnRpZXMgd2lsbCBiZSBtZXJnZWQgaW50byB0aGUgZ2l2ZW4KKyAgKiBwcm9wbGlzdC4gSWYgcHJvcGxpc3QgaXMgTlVMTCwgdGhlbiBzZWN0aW9ucyBuYW1lZCAiUHJvcGVydGllcyIKKyAgKiBhcmUgbm90IGFsbG93ZWQgYXQgYWxsIGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGUuICovCistaW50IHBhX2NvbmZpZ19wYXJzZShjb25zdCBjaGFyICpmaWxlbmFtZSwgRklMRSAqZiwgY29uc3QgcGFfY29uZmlnX2l0ZW0gKnQsIHBhX3Byb3BsaXN0ICpwcm9wbGlzdCwgdm9pZCAqdXNlcmRhdGEpOworK2ludCBwYV9jb25maWdfcGFyc2UoY29uc3QgY2hhciAqZmlsZW5hbWUsIEZJTEUgKmYsIGNvbnN0IHBhX2NvbmZpZ19pdGVtICp0LCBwYV9wcm9wbGlzdCAqcHJvcGxpc3QsIGJvb2wgdXNlX2RvdF9kLAorKyAgICAgICAgICAgICAgICAgICAgdm9pZCAqdXNlcmRhdGEpOworIAorIC8qIEdlbmVyaWMgcGFyc2VycyBmb3IgaW50ZWdlcnMsIHNpemVfdCwgYm9vbGVhbnMgYW5kIHN0cmluZ3MgKi8KKyBpbnQgcGFfY29uZmlnX3BhcnNlX2ludChwYV9jb25maWdfcGFyc2VyX3N0YXRlICpzdGF0ZSk7CistLSAKKzEuOS4zCisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL3B1bHNlYXVkaW8vcHVsc2VhdWRpby8wMDAxLXBhZHNwLU1ha2UtaXQtY29tcGlsZS1vbi1tdXNsLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvcHVsc2VhdWRpby9wdWxzZWF1ZGlvLzAwMDEtcGFkc3AtTWFrZS1pdC1jb21waWxlLW9uLW11c2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU1NTk5NQotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL3B1bHNlYXVkaW8vcHVsc2VhdWRpby8wMDAxLXBhZHNwLU1ha2UtaXQtY29tcGlsZS1vbi1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsNzAgQEAKK0Zyb20gZjZhYjNjM2FhN2ExODQxYzhhZGQwNDgyODAyOTM1NmQyYThjODhlNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtoZW0gUmFqIDxyYWoua2hlbUBnbWFpbC5jb20+CitEYXRlOiBNb24sIDYgQXByIDIwMTUgMjE6NTY6MzEgLTA3MDAKK1N1YmplY3Q6IFtQQVRDSF0gcGFkc3A6IE1ha2UgaXQgY29tcGlsZSBvbiBtdXNsCisKK2JyZWFrIGFzc3VtcHRpb25zIG9uIGdsaWJjIGFuZCB0aGVyZSBpcyBubyBzdGF0NjQgb24gbm9uCitnbGliYyBDIGxpYnJhcmllcworCitTZWUgcHVsc2VhdWRpbyBidWcKKworaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUzMTkKKworVXBzdHJlYW0tU3RhdHVzOiBQZW5kaW5nCitTaWduZWQtb2ZmLWJ5OiBLaGVtIFJhaiA8cmFqLmtoZW1AZ21haWwuY29tPgorLS0tCisgc3JjL3V0aWxzL3BhZHNwLmMgfCAxNSArKysrKysrKystLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL3V0aWxzL3BhZHNwLmMgYi9zcmMvdXRpbHMvcGFkc3AuYworaW5kZXggZTYxMzczYy4uNjg0NzIxYSAxMDA2NDQKKy0tLSBhL3NyYy91dGlscy9wYWRzcC5jCisrKysgYi9zcmMvdXRpbHMvcGFkc3AuYworQEAgLTIzNjgsNyArMjM2OCw3IEBAIGZhaWw6CisgICAgIHJldHVybiByZXQ7CisgfQorIAorLSNpZmRlZiBzdW4KKysjaWZuZGVmIF9fR0xJQkNfXworIGludCBpb2N0bChpbnQgZmQsIGludCByZXF1ZXN0LCAuLi4pIHsKKyAjZWxzZQorIGludCBpb2N0bChpbnQgZmQsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdCwgLi4uKSB7CitAQCAtMjUwOCwxMCArMjUwOCwxMyBAQCBpbnQgc3RhdChjb25zdCBjaGFyICpwYXRobmFtZSwgc3RydWN0IHN0YXQgKmJ1ZikgeworIAorICAgICByZXR1cm4gMDsKKyB9CistCisgI2lmZGVmIEhBVkVfT1BFTjY0CistCisrI3VuZGVmIHN0YXQ2NAorKyNpZmRlZiBfX0dMSUJDX18KKyBpbnQgc3RhdDY0KGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBzdHJ1Y3Qgc3RhdDY0ICpidWYpIHsKKysjZWxzZQorK2ludCBzdGF0NjQoY29uc3QgY2hhciAqcGF0aG5hbWUsIHN0cnVjdCBzdGF0ICpidWYpIHsKKysjZW5kaWYKKyAgICAgc3RydWN0IHN0YXQgb2xkYnVmOworICAgICBpbnQgcmV0OworIAorQEAgLTI1NDQsNyArMjU0Nyw3IEBAIGludCBzdGF0NjQoY29uc3QgY2hhciAqcGF0aG5hbWUsIHN0cnVjdCBzdGF0NjQgKmJ1ZikgeworIAorICAgICByZXR1cm4gMDsKKyB9CistCisrI3VuZGVmIG9wZW42NAorIGludCBvcGVuNjQoY29uc3QgY2hhciAqZmlsZW5hbWUsIGludCBmbGFncywgLi4uKSB7CisgICAgIHZhX2xpc3QgYXJnczsKKyAgICAgbW9kZV90IG1vZGUgPSAwOworQEAgLTI2NzAsOCArMjY3Myw4IEBAIEZJTEUqIGZvcGVuKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICptb2RlKSB7CisgfQorIAorICNpZmRlZiBIQVZFX09QRU42NAorLQorLUZJTEUgKmZvcGVuNjQoY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKm1vZGUpIHsKKysjdW5kZWYgZm9wZW42NAorK0ZJTEUgKmZvcGVuNjQoY29uc3QgY2hhciAqX19yZXN0cmljdCBmaWxlbmFtZSwgY29uc3QgY2hhciAqX19yZXN0cmljdCBtb2RlKSB7CisgCisgICAgIGRlYnVnKERFQlVHX0xFVkVMX1ZFUkJPU0UsIF9fRklMRV9fIjogZm9wZW42NCglcylcbiIsIGZpbGVuYW1lP2ZpbGVuYW1lOiJOVUxMIik7CisgCistLSAKKzIuMS40CisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL3B1bHNlYXVkaW8vcHVsc2VhdWRpby9maXgtZ2l0LXZlcnNpb24tZ2VuLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvcHVsc2VhdWRpby9wdWxzZWF1ZGlvL2ZpeC1naXQtdmVyc2lvbi1nZW4ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ5NDI1MAotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL3B1bHNlYXVkaW8vcHVsc2VhdWRpby9maXgtZ2l0LXZlcnNpb24tZ2VuLnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKK2dpdC12ZXJzaW9uLWdlbiBnZXRzIGNvbmZ1c2VkIGlmIGEgdGFyYmFsbCBpcyBiZWluZyBidWlsdCBpbnNpZGUgYSBnaXQgZGlyZWN0b3J5CisoaWUgeW91ciBidWlsZCBkaXJlY3RvcnkgaXMgYSBzdWJkaXJlY3Rvcnkgb2YgYSBwb2t5IGNsb25lKSwgYW5kIGVuZHMgdXAgY2FsbGluZwordGhlIHJlbGVhc2UgNi4wLWRpcnR5LiAgQWRkIGEgc2hvcnRjdXQgZXhpdCBzbyBpZiBhIHRhcmJhbGwgaXMgZGV0ZWN0ZWQgaXQKK2RvZXNuJ3QgYXR0ZW1wdCB0byBsb29rIGF0IHRoZSBnaXQgc3RhdHVzLgorCitVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCAoaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA5MzYpCitTaWduZWQtb2ZmLWJ5OiBSb3NzIEJ1cnRvbiA8cm9zcy5idXJ0b25AaW50ZWwuY29tPgorCitkaWZmIC0tZ2l0IGEvZ2l0LXZlcnNpb24tZ2VuIGIvZ2l0LXZlcnNpb24tZ2VuCitpbmRleCA3NTQ2ODg0Li4wNzliOTNlIDEwMDc1NQorLS0tIGEvZ2l0LXZlcnNpb24tZ2VuCisrKysgYi9naXQtdmVyc2lvbi1nZW4KK0BAIC04NCw3ICs4NCwxMCBAQCB0aGVuCisgICAgIHY9YGNhdCAkdGFyYmFsbF92ZXJzaW9uX2ZpbGVgIHx8IGV4aXQgMQorICAgICBjYXNlICR2IGluCisgCSokbmwqKSB2PSA7OyAjIHJlamVjdCBtdWx0aS1saW5lIG91dHB1dAorLQlbMC05XSopIDs7CisrCVswLTldKikKKysJCWVjaG8gIiR2IiB8IHRyIC1kICdcMDEyJworKwkJZXhpdCAwCisrCQk7OworIAkqKSB2PSA7OworICAgICBlc2FjCisgICAgIHRlc3QgLXogIiR2IiBcCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9wdWxzZWF1ZGlvL3B1bHNlYXVkaW8vdm9sYXRpbGVzLjA0X3B1bHNlIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvcHVsc2VhdWRpby9wdWxzZWF1ZGlvL3ZvbGF0aWxlcy4wNF9wdWxzZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjE5OTgwCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvcHVsc2VhdWRpby9wdWxzZWF1ZGlvL3ZvbGF0aWxlcy4wNF9wdWxzZQpAQCAtMCwwICsxLDIgQEAKKyMgPHR5cGU+IDxvd25lcj4gPGdyb3VwPiA8bW9kZT4gPHBhdGg+IDxsaW5rc291cmNlPgorZCBwdWxzZSBwdWxzZSAwNzU1IC92YXIvcnVuL3B1bHNlIG5vbmUKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL3B1bHNlYXVkaW8vcHVsc2VhdWRpb182LjAuYmIgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9wdWxzZWF1ZGlvL3B1bHNlYXVkaW9fNi4wLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxZTkwOTYKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9wdWxzZWF1ZGlvL3B1bHNlYXVkaW9fNi4wLmJiCkBAIC0wLDAgKzEsMTYgQEAKK3JlcXVpcmUgcHVsc2VhdWRpby5pbmMKKworU1JDX1VSSSA9ICJodHRwOi8vZnJlZWRlc2t0b3Aub3JnL3NvZnR3YXJlL3B1bHNlYXVkaW8vcmVsZWFzZXMvJHtCUH0udGFyLnh6IFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtcGFkc3AtTWFrZS1pdC1jb21waWxlLW9uLW11c2wucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1jbGllbnQtY29uZi1BZGQtYWxsb3ctYXV0b3NwYXduLWZvci1yb290LnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovLzAwMDEtY29uZi1wYXJzZXItYWRkLXN1cHBvcnQtZm9yLS5kLWRpcmVjdG9yaWVzLnBhdGNoIFwKKyAgICAgICAgICAgZmlsZTovL2ZpeC1naXQtdmVyc2lvbi1nZW4ucGF0Y2ggXAorICAgICAgICAgICBmaWxlOi8vdm9sYXRpbGVzLjA0X3B1bHNlIFwKKyIKK1NSQ19VUklbbWQ1c3VtXSA9ICJiNjkxZTgzYjc0MzRjNjc4ZGZmYWNmYTNhMDI3NzUwZSIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICJiNTA2NDBlMGI4MGIxNjA3NjAwYWNjZmFkMmU0NWFhYmI3OWQzNzliZjYzNTRjOTY3MWVmYTIwNjU0NzdmNmY2IgorCitkb19jb21waWxlX3ByZXBlbmQoKSB7CisgICAgbWtkaXIgLXAgJHtTfS9saWJsdGRsCisgICAgY3AgJHtTVEFHSU5HX0xJQkRJUn0vbGlibHRkbCogJHtTfS9saWJsdGRsCit9CmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9zYmMvc2JjXzEuMy5iYiBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL3NiYy9zYmNfMS4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkN2YzMWIKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9zYmMvc2JjXzEuMy5iYgpAQCAtMCwwICsxLDE2IEBACitTVU1NQVJZID0gIlNCQyBBdWRpbyBDb2RlYyIKK0RFU0NSSVBUSU9OID0gIkJsdWV0b290aCBsb3ctY29tcGxleGl0eSwgc3ViYmFuZCBjb2RlYyAoU0JDKSBsaWJyYXJ5LiIKK0hPTUVQQUdFID0gImh0dHBzOi8vd3d3LmJsdWV6Lm9yZyIKK1NFQ1RJT04gPSAibGlicyIKK0xJQ0VOU0UgPSAiR1BMdjIiCitMSUNfRklMRVNfQ0hLU1VNID0gImZpbGU6Ly9DT1BZSU5HO21kNT0xMmY4ODRkMmFlMWZmODdjMDllNWI3Y2NjMmM0Y2E3ZSBcCisgICAgICAgICAgICAgICAgICAgIGZpbGU6Ly9zYmMvc2JjLmg7YmVnaW5saW5lPTE7ZW5kbGluZT0yNjttZDU9MGY1N2QwZGYyMmIwZDQwNzQ2YmRkMjk4MDVhNDM2MWIiCisKK0RFUEVORFMgPSAibGlic25kZmlsZTEiCisKK1NSQ19VUkkgPSAiJHtLRVJORUxPUkdfTUlSUk9SfS9saW51eC9ibHVldG9vdGgvJHtCUH0udGFyLnh6IgorCitTUkNfVVJJW21kNXN1bV0gPSAiMmQ4Yjc4NDFmMmMxMWFiMjg3NzE4ZDU2MmYyYjk4MWMiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiZTYxMDIyY2Y1NzZmMTQxOTAyNDFlNzA3MTc1M2ZkYWNkY2U1ZDFkZWE4OWZmZDcwNDExMGZjNTBiZTY4OTMwOSIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9zcGVleC9zcGVleF8xLjJyYzIuYmIgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9zcGVleC9zcGVleF8xLjJyYzIuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdkMjNkYgotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL3NwZWV4L3NwZWV4XzEuMnJjMi5iYgpAQCAtMCwwICsxLDE5IEBACitTVU1NQVJZID0gIlNwZWVjaCBBdWRpbyBDb2RlYyIKK0RFU0NSSVBUSU9OID0gIlNwZWV4IGlzIGFuIE9wZW4gU291cmNlL0ZyZWUgU29mdHdhcmUgcGF0ZW50LWZyZWUgYXVkaW8gY29tcHJlc3Npb24gZm9ybWF0IGRlc2lnbmVkIGZvciBzcGVlY2guIgorSE9NRVBBR0UgPSAiaHR0cDovL3d3dy5zcGVleC5vcmciCitTRUNUSU9OID0gImxpYnMiCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTMxNDY0OWQ4YmE5ZGQ3MDQ1ZGZiNjY4M2YyOThkMGE4IFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL2luY2x1ZGUvc3BlZXgvc3BlZXguaDtiZWdpbmxpbmU9MTtlbmRsaW5lPTM0O21kNT1lZjhjOGVhNGY3MTk4ZDcxY2YzNTA5YzZlZDA1ZWE1MCIKK0RFUEVORFMgPSAibGlib2dnIHNwZWV4ZHNwIgorCitTUkNfVVJJID0gImh0dHA6Ly9kb3dubG9hZHMudXMueGlwaC5vcmcvcmVsZWFzZXMvc3BlZXgvc3BlZXgtJHtQVn0udGFyLmd6IgorCitTUkNfVVJJW21kNXN1bV0gPSAiNmFlN2RiM2JhYjAxZTFkNGI4NmJhY2ZhOGNhMzNlODEiCitTUkNfVVJJW3NoYTI1NnN1bV0gPSAiY2FhMjdjNzI0N2ZmMTVjODUyMWMyYWUwZWEyMTk4N2M5ZTk3MTBhOGYyZDM0NDhlOGI3OWRhOTgwNmJjZTg5MSIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnIGxpYl9wYWNrYWdlCisKK0VYVFJBX09FQ09ORiA9ICJcCisgICAgICAgICR7QGJiLnV0aWxzLmNvbnRhaW5zKCdUQVJHRVRfRlBVJywgJ3NvZnQnLCAnLS1lbmFibGUtZml4ZWQtcG9pbnQgLS1kaXNhYmxlLWZsb2F0LWFwaSAtLWRpc2FibGUtdmJyJywgJycsIGQpfSBcCisiCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9zcGVleC9zcGVleGRzcC8wMDAxLURvbi10LXJlbHktb24tSEFWRV9TVERJTlRfSC1ldC1hbC4tYmVpbmctZGVmaW5lZC5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL3NwZWV4L3NwZWV4ZHNwLzAwMDEtRG9uLXQtcmVseS1vbi1IQVZFX1NURElOVF9ILWV0LWFsLi1iZWluZy1kZWZpbmVkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3MDY3ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9zcGVleC9zcGVleGRzcC8wMDAxLURvbi10LXJlbHktb24tSEFWRV9TVERJTlRfSC1ldC1hbC4tYmVpbmctZGVmaW5lZC5wYXRjaApAQCAtMCwwICsxLDYzIEBACitGcm9tIGM3MzM3MGNlYWZkMTM4YmVjZWU4Y2EzYzY4OGJhNzU3NTY4MzBiZmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBUYW51IEthc2tpbmVuIDx0YW51Lmthc2tpbmVuQGxpbnV4LmludGVsLmNvbT4KK0RhdGU6IFN1biwgNSBKdWwgMjAxNSAxNzo0ODoxNiArMDMwMAorU3ViamVjdDogW1BBVENIXSBEb24ndCByZWx5IG9uIEhBVkVfU1RESU5UX0ggZXQgYWwuIGJlaW5nIGRlZmluZWQKKworTm90IGV2ZXJ5b25lIHdobyBpbmNsdWRlcyBzcGVleGRzcF9jb25maWdfdHlwZXMuaCB3aWxsIGhhdmUgYSB0ZXN0Cit3aGljaCBkZWZpbmVzIHRob3NlLCBhbmQgaWYgd2UndmUgY2hvc2VuIHRvIHVzZSB0aGUgc3RkaW50IHR5cGVzIGF0Citjb25maWd1cmUgdGltZSB0aGVuIHdlIGtub3cgZXhhY3RseSB3aGljaCBoZWFkZXIocykgYXJlIGF2YWlsYWJsZSwgc28KK2p1c3QgY2hvb3NlIHRoZSBiZXN0IG9uZSB0aGVuIGFuZCBnZW5lcmF0ZSB0aGUgaGVhZGVyIHRvIHVzZSBpdC4KKworVGhpcyBwYXRjaCwgaW5jbHVkaW5nIHRoZSBhYm92ZSB0ZXh0LCBpcyBjb3BpZWQgZnJvbSBhIGNvbW1pdCBpbiB0aGUKK3NwZWV4IHJlcG9zaXRvcnlbMV0uIFRoZSBvcmlnaW5hbCBjb21taXQgZm9yIHNwZWV4IHdhcyBtYWRlIGJ5IFJvbgorPHJvbkBkZWJpYW4ub3JnPi4KKworWzFdIGh0dHBzOi8vZ2l0LnhpcGgub3JnLz9wPXNwZWV4LmdpdDthPWNvbW1pdGRpZmY7aD03NzRjODdkNmNiN2RkOGRhYmRkMTc2NzdmYzZkYTc1M2VjZjRhYTg3CisKK1Vwc3RyZWFtLVN0YXR1czogQmFja3BvcnQKKworU2lnbmVkLW9mZi1ieTogVGFudSBLYXNraW5lbiA8dGFudS5rYXNraW5lbkBsaW51eC5pbnRlbC5jb20+CistLS0KKyBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNiArKysrKysKKyBpbmNsdWRlL3NwZWV4L3NwZWV4ZHNwX2NvbmZpZ190eXBlcy5oLmluIHwgOCArLS0tLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCAyY2QyZDFlLi4xZGUwYzIzIDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9jb25maWd1cmUuYWMKK0BAIC0zMzQsNiArMzM0LDEyIEBAIEFDX1NVQlNUKFtVU0laRTE2XSkKKyBBQ19TVUJTVChbU0laRTMyXSkKKyBBQ19TVUJTVChbVVNJWkUzMl0pCisgCisrQVNfSUYoW3Rlc3QgIiRhY19jdl9oZWFkZXJfc3RkaW50X2giID0gInllcyJdLCAgICBbSU5DTFVERV9TVERJTlQ9IiNpbmNsdWRlIDxzdGRpbnQuaD4iXSwKKysgICAgICBbdGVzdCAiJGFjX2N2X2hlYWRlcl9pbnR0eXBlc19oIiA9ICJ5ZXMiXSwgIFtJTkNMVURFX1NURElOVD0iI2luY2x1ZGUgPGludHR5cGVzLmg+Il0sCisrICAgICAgW3Rlc3QgIiRhY19jdl9oZWFkZXJfc3lzX3R5cGVzX2giID0gInllcyJdLCBbSU5DTFVERV9TVERJTlQ9IiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4iXSkKKysKKytBQ19TVUJTVChbSU5DTFVERV9TVERJTlRdKQorKworIEFDX0NPTkZJR19GSUxFUyhbCisgICAgICAgICAgICBNYWtlZmlsZSBsaWJzcGVleGRzcC9NYWtlZmlsZSBkb2MvTWFrZWZpbGUgU3BlZXhEU1Auc3BlYworICAgICAgICAgICAgaW5jbHVkZS9NYWtlZmlsZSBpbmNsdWRlL3NwZWV4L01ha2VmaWxlIHNwZWV4ZHNwLnBjCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zcGVleC9zcGVleGRzcF9jb25maWdfdHlwZXMuaC5pbiBiL2luY2x1ZGUvc3BlZXgvc3BlZXhkc3BfY29uZmlnX3R5cGVzLmguaW4KK2luZGV4IDAyYjgyZmQuLjVlYTdiNTUgMTAwNjQ0CistLS0gYS9pbmNsdWRlL3NwZWV4L3NwZWV4ZHNwX2NvbmZpZ190eXBlcy5oLmluCisrKysgYi9pbmNsdWRlL3NwZWV4L3NwZWV4ZHNwX2NvbmZpZ190eXBlcy5oLmluCitAQCAtMSwxMyArMSw3IEBACisgI2lmbmRlZiBfX1NQRUVYX1RZUEVTX0hfXworICNkZWZpbmUgX19TUEVFWF9UWVBFU19IX18KKyAKKy0jaWYgZGVmaW5lZCBIQVZFX1NURElOVF9ICistIyAgaW5jbHVkZSA8c3RkaW50Lmg+CistI2VsaWYgZGVmaW5lZCBIQVZFX0lOVFRZUEVTX0gKKy0jICBpbmNsdWRlIDxpbnR0eXBlcy5oPgorLSNlbGlmIGRlZmluZWQgSEFWRV9TWVNfVFlQRVNfSAorLSMgIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorLSNlbmRpZgorK0BJTkNMVURFX1NURElOVEAKKyAKKyB0eXBlZGVmIEBTSVpFMTZAIHNweF9pbnQxNl90OworIHR5cGVkZWYgQFVTSVpFMTZAIHNweF91aW50MTZfdDsKKy0tIAorMS45LjMKKwpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvc3BlZXgvc3BlZXhkc3BfMS4ycmMzLmJiIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvc3BlZXgvc3BlZXhkc3BfMS4ycmMzLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiMWFjZWQKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS9zcGVleC9zcGVleGRzcF8xLjJyYzMuYmIKQEAgLTAsMCArMSwzOSBAQAorU1VNTUFSWSA9ICJBIHBhdGVudC1mcmVlIERTUCBsaWJyYXJ5IgorREVTQ1JJUFRJT04gPSAiU3BlZXhEU1AgaXMgYSBwYXRlbnQtZnJlZSwgT3BlbiBTb3VyY2UvRnJlZSBTb2Z0d2FyZSBEU1AgbGlicmFyeS4iCitIT01FUEFHRSA9ICJodHRwOi8vd3d3LnNwZWV4Lm9yZyIKK1NFQ1RJT04gPSAibGlicyIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9MzE0NjQ5ZDhiYTlkZDcwNDVkZmI2NjgzZjI5OGQwYTgiCisKK1NSQ19VUkkgPSAiaHR0cDovL2Rvd25sb2Fkcy54aXBoLm9yZy9yZWxlYXNlcy9zcGVleC9zcGVleGRzcC0ke1BWfS50YXIuZ3ogXAorICAgICAgICAgICBmaWxlOi8vMDAwMS1Eb24tdC1yZWx5LW9uLUhBVkVfU1RESU5UX0gtZXQtYWwuLWJlaW5nLWRlZmluZWQucGF0Y2giCisKK1NSQ19VUklbbWQ1c3VtXSA9ICI3MGQ5ZDMxMTg0ZjdlYjc2MTE5MmZkMWVmMGI3MzMzMyIKK1NSQ19VUklbc2hhMjU2c3VtXSA9ICI0YWU2ODg2MDAwMzlmNWQyMjRiZGYyZTIyMmQyZmJkZTY1NjA4NDQ3ZTRjMmY2ODE1ODVlNGRjYTZkZjY5MmYxIgorCitpbmhlcml0IGF1dG90b29scyBwa2djb25maWcKKworRVhUUkFfT0VDT05GID0gIlwKKyAgICAgICAgLS1kaXNhYmxlLWV4YW1wbGVzIFwKKyAgICAgICAgJHtAYmIudXRpbHMuY29udGFpbnMoJ1RBUkdFVF9GUFUnLCAnc29mdCcsICctLWVuYWJsZS1maXhlZC1wb2ludCAtLWRpc2FibGUtZmxvYXQtYXBpJywgJycsIGQpfSBcCisiCisKKyMgV29ya2Fyb3VuZCBmb3IgYSBidWlsZCBmYWlsdXJlIHdoZW4gYnVpbGRpbmcgd2l0aCBNQUNISU5FPXFlbXVhcm02NC4gSSB0aGluaworIyBhYXJjaDY0IGlzIHN1cHBvc2VkIHRvIHN1cHBvcnQgTkVPTiBqdXN0IGZpbmUsIGJ1dCBidWlsZGluZyBmb3IgcWVtdWFybTY0CisjIGZhaWxzIGluIE5FT04gY29kZToKKyMKKyMgLi4uL3NwZWV4ZHNwLTEuMnJjMy9saWJzcGVleGRzcC9yZXNhbXBsZV9uZW9uLmg6MTQ4OjU6IGVycm9yOiBpbXBvc3NpYmxlIGNvbnN0cmFpbnQgaW4gJ2FzbScKKyMgICAgICBhc20gdm9sYXRpbGUgKCIgIGNtcCAlW2xlbl0sICMwXG4iCisjICAgICAgXgorIworIyBJIHNlbnQgYW4gZW1haWwgYWJvdXQgdGhlIGlzc3VlIHRvIHNwZWV4LWRldi4gQXQgdGhlIHRpbWUgb2Ygd3JpdGluZyB0aGVyZQorIyBhcmUgbm8gcmVzcG9uc2VzIHlldDoKKyMgaHR0cDovL3RocmVhZC5nbWFuZS5vcmcvZ21hbmUuY29tcC5hdWRpby5jb21wcmVzc2lvbi5zcGVleC5kZXZlbC83MzYwCitFWFRSQV9PRUNPTkYgKz0gIiR7QGJiLnV0aWxzLmNvbnRhaW5zKCdUVU5FX0ZFQVRVUkVTJywgJ2FhcmNoNjQnLCAnLS1kaXNhYmxlLW5lb24nLCAnJywgZCl9IgorCisjIHNwZWV4ZHNwIHdhcyBzcGxpdCBvZmYgZnJvbSBzcGVleCBpbiAxLjJyYzIuIE9sZGVyIHZlcnNpb25zIG9mIHNwZWV4IGNhbid0CisjIGJlIGluc3RhbGxlZCB0b2dldGhlciB3aXRoIHNwZWV4ZHNwLCBzaW5jZSB0aGV5IGNvbnRhaW4gb3ZlcmxhcHBpbmcgZmlsZXMuCitSQ09ORkxJQ1RTXyR7UE59ID0gInNwZWV4ICg8IDEuMnJjMikiCitSQ09ORkxJQ1RTXyR7UE59LWRiZyA9ICJzcGVleC1kYmcgKDwgMS4ycmMyKSIKK1JDT05GTElDVFNfJHtQTn0tZGV2ID0gInNwZWV4LWRldiAoPCAxLjJyYzIpIgorUkNPTkZMSUNUU18ke1BOfS1zdGF0aWNkZXYgPSAic3BlZXgtc3RhdGljZGV2ICg8IDEuMnJjMikiCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS90cmVtb3IvdHJlbW9yL29ic29sZXRlX2F1dG9tYWtlX21hY3Jvcy5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL3RyZW1vci90cmVtb3Ivb2Jzb2xldGVfYXV0b21ha2VfbWFjcm9zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlNTEwMjkKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS90cmVtb3IvdHJlbW9yL29ic29sZXRlX2F1dG9tYWtlX21hY3Jvcy5wYXRjaApAQCAtMCwwICsxLDE1IEBACitVcHN0cmVhbS1TdGF0dXM6IFN1Ym1pdHRlZCBbaHR0cHM6Ly90cmFjLnhpcGgub3JnL3RpY2tldC8xOTIyXQorCitTaWduZWQtb2ZmLWJ5OiBNYXJrbyBMaW5kcXZpc3QgPGNhemZpNzRAZ21haWwuY29tPgorSW5kZXg6IGNvbmZpZ3VyZS5pbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGNvbmZpZ3VyZS5pbgkocmV2aXNpb24gMTg3NjQpCisrKysgY29uZmlndXJlLmluCSh3b3JraW5nIGNvcHkpCitAQCAtOSw3ICs5LDcgQEAKKyBBQ19DQU5PTklDQUxfSE9TVAorIEFDX0NBTk9OSUNBTF9UQVJHRVQKKworLUFNX0NPTkZJR19IRUFERVIoW2NvbmZpZy5oXSkKKytBQ19DT05GSUdfSEVBREVSUyhbY29uZmlnLmhdKQorCisgQU1fSU5JVF9BVVRPTUFLRShsaWJ2b3JiaXNpZGVjLDEuMi4xKQpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvdHJlbW9yL3RyZW1vci90cmVtb3ItYXJtLXRodW1iMi5wYXRjaCBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL3RyZW1vci90cmVtb3IvdHJlbW9yLWFybS10aHVtYjIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA0OTU0MgotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL3RyZW1vci90cmVtb3IvdHJlbW9yLWFybS10aHVtYjIucGF0Y2gKQEAgLTAsMCArMSwxMDQgQEAKK0Zyb206IFhpbiBPdXlhbmcgPFhpbi5PdXlhbmdAd2luZHJpdmVyLmNvbT4KK0RhdGU6IE1vbiwgMTYgSnVsIDIwMTIgMTM6Mjk6MzQgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gdHJlbW9yOiBhZGQgSVQgaW5zdHJ1Y3Rpb25zIGZvciBhcm0gdGh1bWIyIHR1bmUgZmxhZ3MuCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworCitJbiBUaHVtYi0yLCBtb3N0IGluc3RydWN0aW9ucyBkbyBub3QgaGF2ZSBhIGJ1aWx0IGluIGNvbmRpdGlvbiBjb2RlIChleGNlcHQgZm9yIAorY29uZGl0aW9uYWwgYnJhbmNoZXMpLiBJbnN0ZWFkLCBzaG9ydCBzZXF1ZW5jZXMgb2YgaW5zdHJ1Y3Rpb25zIHdoaWNoIGFyZSB0byBiZSAKK2V4ZWN1dGVkIGNvbmRpdGlvbmFsbHkgY2FuIGJlIHByZWNlZGVkIGJ5IGEgc3BlY2lhbCAiSVQgaW5zdHJ1Y3Rpb24iIHdoaWNoIAorZGVzY3JpYmVzIHRoZSBjb25kaXRpb24gYW5kIHdoaWNoIG9mIHRoZSBmb2xsb3dpbmcgaW5zdHJ1Y3Rpb25zIHNob3VsZCBiZSAKK2V4ZWN1dGVkIGlmIHRoZSBjb25kaXRpb24gaXMgZmFsc2UgcmVzcGVjdGl2ZWx5LiAKKworRm9yIHRoZSBBUk0vVGh1bWIgSVQoSWYtVGhlbikgaW5zdHJ1Y3Rpb246CitodHRwOi8vaW5mb2NlbnRlci5hcm0uY29tL2hlbHAvaW5kZXguanNwP3RvcGljPS9jb20uYXJtLmRvYy5kdWkwNDg5Yy9DamFiaWNjaS5odG1sCisKK1NpZ25lZC1vZmYtYnk6IFhpbiBPdXlhbmcgPFhpbi5PdXlhbmdAd2luZHJpdmVyLmNvbT4KKy0tLQorIGFzbV9hcm0uaCB8ICAgMTQgKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvYXNtX2FybS5oIGIvYXNtX2FybS5oCitpbmRleCBjM2JkYTAwLi44MjNjNTRmIDEwMDc1NQorLS0tIGEvYXNtX2FybS5oCisrKysgYi9hc21fYXJtLmgKK0BAIC0xMDgsOSArMTA4LDExIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBYTlBST0QzMShvZ2dfaW50MzJfdCAgYSwgb2dnX2ludDMyX3QgIGIsCisgc3RhdGljIGlubGluZSBvZ2dfaW50MzJfdCBDTElQX1RPXzE1KG9nZ19pbnQzMl90IHgpIHsKKyAgIGludCB0bXA7CisgICBhc20gdm9sYXRpbGUoInN1YnMJJTEsICUwLCAjMzI3Njhcblx0IgorKwkgICAgICAgIml0dCAgICAgcGxcblx0IgorIAkgICAgICAgIm1vdnBsCSUwLCAjMHg3ZjAwXG5cdCIKKyAJICAgICAgICJvcnJwbAklMCwgJTAsICMweGZmXG4iCisgCSAgICAgICAiYWRkcwklMSwgJTAsICMzMjc2OFxuXHQiCisrCSAgICAgICAiaXQgICAgICBtaVxuXHQiCisgCSAgICAgICAibW92bWkJJTAsICMweDgwMDAiCisgCSAgICAgICA6ICIrciIoeCksIj1yIih0bXApCisgCSAgICAgICA6CitAQCAtMTM5LDEwICsxNDEsMTIgQEAgc3RhdGljIGlubGluZSB2b2lkIGxzcF9sb29wX2FzbShvZ2dfdWludDMyX3QgKnFpcCxvZ2dfdWludDMyX3QgKnBpcCwKKyAgICAgICAKKyAgICAgICAibGRtZGIgICByMCEse3IxLHIzfTsiCisgICAgICAgInN1YnMgICAgcjEscjEsJTQ7IiAgICAgICAgICAvL2lsc3Bbal0td2kKKysgICAgICAiaXQgICAgICBtaTsiCisgICAgICAgInJzYm1pICAgcjEscjEsIzA7IiAgICAgICAgICAvL2xhYnMoaWxzcFtqXS13aSkKKyAgICAgICAidW11bGwgICAlMCxyMixyMSwlMDsiICAgICAgIC8vcWkqPWxhYnMoaWxzcFtqXS13aSkKKyAgICAgICAKKyAgICAgICAic3VicyAgICByMSxyMywlNDsiICAgICAgICAgIC8vaWxzcFtqKzFdLXdpCisrICAgICAgIml0ICAgICAgbWk7IgorICAgICAgICJyc2JtaSAgIHIxLHIxLCMwOyIgICAgICAgICAgLy9sYWJzKGlsc3BbaisxXS13aSkKKyAgICAgICAidW11bGwgICAlMSxyMyxyMSwlMTsiICAgICAgIC8vcGkqPWxhYnMoaWxzcFtqKzFdLXdpKQorICAgICAgIAorQEAgLTE2Nyw2ICsxNzEsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbHNwX2xvb3BfYXNtKG9nZ191aW50MzJfdCAqcWlwLG9nZ191aW50MzJfdCAqcGlwLAorICAgICAgICJtb3YgICAgIHIwLCMweDQwMDA7XG4iCisgICAgICAgCisgICAgICAgInN1YnMgICAgcjEscjEsJTQ7XG4iICAgICAgICAgIC8vaWxzcFtqXS13aQorKyAgICAgICJpdCAgICAgIG1pO1xuIgorICAgICAgICJyc2JtaSAgIHIxLHIxLCMwO1xuIiAgICAgICAgICAvL2xhYnMoaWxzcFtqXS13aSkKKyAgICAgICAidW11bGwgICAlMCxyMixyMSwlMDtcbiIgICAgICAgLy9xaSo9bGFicyhpbHNwW2pdLXdpKQorICAgICAgICJ1bXVsbCAgICUxLHIzLHIwLCUxO1xuIiAgICAgICAvL3BpKj1sYWJzKGlsc3BbaisxXS13aSkKK0BAIC0xOTAsMTggKzE5NSwyMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbHNwX2xvb3BfYXNtKG9nZ191aW50MzJfdCAqcWlwLG9nZ191aW50MzJfdCAqcGlwLAorICAgICAgICJtb3YgICAgIHIyLCMwOyIKKyAgICAgICAib3JyICAgICByMSwlMCwlMTsiCisgICAgICAgInRzdCAgICAgcjEsIzB4ZmYwMDAwMDA7IgorKyAgICAgICJpdHQgICAgIG5lOyIKKyAgICAgICAiYWRkbmUgICByMixyMiwjODsiCisgICAgICAgIm1vdm5lICAgcjEscjEsbHNyICM4OyIKKyAgICAgICAidHN0ICAgICByMSwjMHgwMGYwMDAwMDsiCisrICAgICAgIml0dCAgICAgbmU7IgorICAgICAgICJhZGRuZSAgIHIyLHIyLCM0OyIKKyAgICAgICAibW92bmUgICByMSxyMSxsc3IgIzQ7IgorICAgICAgICJ0c3QgICAgIHIxLCMweDAwMGMwMDAwOyIKKysgICAgICAiaXR0ICAgICBuZTsiCisgICAgICAgImFkZG5lICAgcjIscjIsIzI7IgorICAgICAgICJtb3ZuZSAgIHIxLHIxLGxzciAjMjsiCisgICAgICAgInRzdCAgICAgcjEsIzB4MDAwMjAwMDA7IgorKyAgICAgICJpdHQgICAgIG5lOyIKKyAgICAgICAiYWRkbmUgICByMixyMiwjMTsiCisgICAgICAgIm1vdm5lICAgcjEscjEsbHNyICMxOyIKKyAgICAgICAidHN0ICAgICByMSwjMHgwMDAxMDAwMDsiCisrICAgICAgIml0ICAgICAgbmU7IgorICAgICAgICJhZGRuZSAgIHIyLHIyLCMxOyIKKyAgICAgICAibW92ICAgICAlMCwlMCxsc3IgcjI7IgorICAgICAgICJtb3YgICAgICUxLCUxLGxzciByMjsiCitAQCAtMjIyLDE1ICsyMzIsMTkgQEAgc3RhdGljIGlubGluZSB2b2lkIGxzcF9ub3JtX2FzbShvZ2dfdWludDMyX3QgKnFpcCxvZ2dfaW50MzJfdCAqcWV4cHApeworICAgb2dnX2ludDMyX3QgcWV4cD0qcWV4cHA7CisgCisgICBhc20oInRzdCAgICAgJTAsIzB4MDAwMGZmMDA7IgorKyAgICAgICJpdHQgICAgIGVxOyIKKyAgICAgICAibW92ZXEgICAlMCwlMCxsc2wgIzg7IgorICAgICAgICJzdWJlcSAgICUxLCUxLCM4OyIKKyAgICAgICAidHN0ICAgICAlMCwjMHgwMDAwZjAwMDsiCisrICAgICAgIml0dCAgICAgZXE7IgorICAgICAgICJtb3ZlcSAgICUwLCUwLGxzbCAjNDsiCisgICAgICAgInN1YmVxICAgJTEsJTEsIzQ7IgorICAgICAgICJ0c3QgICAgICUwLCMweDAwMDBjMDAwOyIKKysgICAgICAiaXR0ICAgICBlcTsiCisgICAgICAgIm1vdmVxICAgJTAsJTAsbHNsICMyOyIKKyAgICAgICAic3ViZXEgICAlMSwlMSwjMjsiCisgICAgICAgInRzdCAgICAgJTAsIzB4MDAwMDgwMDA7IgorKyAgICAgICJpdHQgICAgIGVxOyIKKyAgICAgICAibW92ZXEgICAlMCwlMCxsc2wgIzE7IgorICAgICAgICJzdWJlcSAgICUxLCUxLCMxOyIKKyAgICAgICA6ICIrciIocWkpLCIrciIocWV4cCkKKy0tIAorMS43LjkuNQorCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS90cmVtb3IvdHJlbW9yXzIwMTUwMTA3LmJiIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvdHJlbW9yL3RyZW1vcl8yMDE1MDEwNy5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Mzc4OTRhCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvdHJlbW9yL3RyZW1vcl8yMDE1MDEwNy5iYgpAQCAtMCwwICsxLDI3IEBACitTVU1NQVJZID0gIkZpeGVkLXBvaW50IGRlY29kZXIiCitERVNDUklQVElPTiA9ICJ0cmVtb3IgaXMgYSBmaXhlZCBwb2ludCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdm9yYmlzIGNvZGVjLiIKK1NFQ1RJT04gPSAibGlicyIKK0xJQ0VOU0UgPSAiQlNEIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9ZGIxYjdhNjY4YjJhNmY0N2IyYWY4OGZiMDA4YWQ1NTUgXAorICAgICAgICAgICAgICAgICAgICBmaWxlOi8vb3MuaDtiZWdpbmxpbmU9MztlbmRsaW5lPTE0O21kNT01YzBhZjVlMWJlZGVmM2NlODE3OGM4OWY0OGNkNmYxZiIKK0RFUEVORFMgPSAibGlib2dnIgorU1JDREFURSA9ICIke1BWfSIKK1BSID0gInIxIgorCisjIFNWTiBzdXBwb3J0IGZvciB1cHN0cmVhbSB2ZXJzaW9uIGNoZWNrIGlzbid0IGltcGxlbWVudGVkIHlldAorUkVDSVBFX1VQU1RSRUFNX1ZFUlNJT04gPSAiMjAxNTAxMDciCitSRUNJUEVfVVBTVFJFQU1fREFURSA9ICJKYW4gMDcsIDIwMTUiCitDSEVDS19EQVRFID0gIkF1ZyAxMiwgMjAxNSIKKworU1JDX1VSSSA9ICJzdm46Ly9zdm4ueGlwaC5vcmcvdHJ1bms7bW9kdWxlPVRyZW1vcjtyZXY9MTk0Mjc7cHJvdG9jb2w9aHR0cCBcCisgICAgICAgICAgIGZpbGU6Ly9vYnNvbGV0ZV9hdXRvbWFrZV9tYWNyb3MucGF0Y2g7c3RyaXBsZXZlbD0wIFwKKyAgICAgICAgICAgZmlsZTovL3RyZW1vci1hcm0tdGh1bWIyLnBhdGNoIFwKKyIKKworUyA9ICIke1dPUktESVJ9L1RyZW1vciIKKworaW5oZXJpdCBhdXRvdG9vbHMgcGtnY29uZmlnCisKK0VYVFJBX09FQ09ORiA9ICItLWVuYWJsZS1zaGFyZWQiCisKK0FSTV9JTlNUUlVDVElPTl9TRVQgPSAiYXJtIgpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvd2VicC9saWJ3ZWJwXzAuNC4zLmJiIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEvd2VicC9saWJ3ZWJwXzAuNC4zLmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0YjgwZjYKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS93ZWJwL2xpYndlYnBfMC40LjMuYmIKQEAgLTAsMCArMSw0NyBAQAorU1VNTUFSWSA9ICJXZWJQIGlzIGFuIGltYWdlIGZvcm1hdCBkZXNpZ25lZCBmb3IgdGhlIFdlYiIKK0RFU0NSSVBUSU9OID0gIldlYlAgaXMgYSBtZXRob2Qgb2YgbG9zc3kgYW5kIGxvc3NsZXNzIGNvbXByZXNzaW9uIHRoYXQgY2FuIGJlIFwKKyAgICAgICAgICAgICAgIHVzZWQgb24gYSBsYXJnZSB2YXJpZXR5IG9mIHBob3RvZ3JhcGhpYywgdHJhbnNsdWNlbnQgYW5kIFwKKyAgICAgICAgICAgICAgIGdyYXBoaWNhbCBpbWFnZXMgZm91bmQgb24gdGhlIHdlYi4gVGhlIGRlZ3JlZSBvZiBsb3NzeSBcCisgICAgICAgICAgICAgICBjb21wcmVzc2lvbiBpcyBhZGp1c3RhYmxlIHNvIGEgdXNlciBjYW4gY2hvb3NlIHRoZSB0cmFkZS1vZmYgXAorICAgICAgICAgICAgICAgYmV0d2VlbiBmaWxlIHNpemUgYW5kIGltYWdlIHF1YWxpdHkuIFdlYlAgdHlwaWNhbGx5IGFjaGlldmVzIFwKKyAgICAgICAgICAgICAgIGFuIGF2ZXJhZ2Ugb2YgMzAlIG1vcmUgY29tcHJlc3Npb24gdGhhbiBKUEVHIGFuZCBKUEVHIDIwMDAsIFwKKyAgICAgICAgICAgICAgIHdpdGhvdXQgbG9zcyBvZiBpbWFnZSBxdWFsaXR5LiIKK0hPTUVQQUdFID0gImh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3NwZWVkL3dlYnAvIgorU0VDVElPTiA9ICJsaWJzIgorCitMSUNFTlNFID0gIkJTRCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovL0NPUFlJTkc7bWQ1PTZlOGRlZTkzMmMyNmYyZGFiNTAzYWJmNzBjOTZkOGJiIFwKKyAgICAgICAgICAgICAgICAgICAgZmlsZTovL1BBVEVOVFM7bWQ1PWFkMjU4MGFlZTM1NDY4Njc1YzQ0ZDdiZWJiYTY1Y2E4IgorCitTUkNfVVJJID0gImh0dHA6Ly9kb3dubG9hZHMud2VibXByb2plY3Qub3JnL3JlbGVhc2VzL3dlYnAvJHtCUH0udGFyLmd6IgorU1JDX1VSSVttZDVzdW1dID0gIjA4ODEzNTI1ZWVlZmZlN2UzMDViNGNiZmFkZThhZTliIgorU1JDX1VSSVtzaGEyNTZzdW1dID0gImVmYmUwZDU4ZmRhOTM2ZjJlZDk5ZDBiODM3ZWQ3MDg3ZDA2NGQ2ODM4OTMxZjI4MmM0NjE4ZDJhM2Y3MzkwYzQiCisKK0VYVFJBX09FQ09ORiA9ICIgXAorICAgIC0tZGlzYWJsZS1leHBlcmltZW50YWwgXAorICAgIC0tZGlzYWJsZS13aWMgXAorICAgIC0tZW5hYmxlLWxpYndlYnBtdXggXAorICAgIC0tZW5hYmxlLWxpYndlYnBkZW11eCBcCisgICAgLS1lbmFibGUtdGhyZWFkaW5nIFwKKyIKKworaW5oZXJpdCBhdXRvdG9vbHMgbGliX3BhY2thZ2UKKworUEFDS0FHRUNPTkZJRyA/Pz0gIiIKKworIyBsaWJ3ZWJwZGVjb2RlciBpcyBhIHN1YnNldCBvZiBsaWJ3ZWJwLCBkb24ndCBidWlsZCBpdCB1bmxlc3MgcmVxdWVzdGVkCitQQUNLQUdFQ09ORklHW2RlY29kZXJdID0gIi0tZW5hYmxlLWxpYndlYnBkZWNvZGVyLC0tZGlzYWJsZS1saWJ3ZWJwZGVjb2RlciIKKworIyBBcHBseSBmb3IgZXhhbXBsZXMgcHJvZ3JhbXM6IGN3ZWJwIGFuZCBkd2VicAorUEFDS0FHRUNPTkZJR1tnaWZdID0gIi0tZW5hYmxlLWdpZiwtLWRpc2FibGUtZ2lmLGdpZmxpYiIKK1BBQ0tBR0VDT05GSUdbanBlZ10gPSAiLS1lbmFibGUtanBlZywtLWRpc2FibGUtanBlZyxqcGVnIgorUEFDS0FHRUNPTkZJR1twbmddID0gIi0tZW5hYmxlLXBuZywtLWRpc2FibGUtcG5nLCxsaWJwbmciCitQQUNLQUdFQ09ORklHW3RpZmZdID0gIi0tZW5hYmxlLXRpZmYsLS1kaXNhYmxlLXRpZmYsdGlmZiIKKworIyBBcHBseSBvbmx5IGZvciBleGFtcGxlIHByb2dyYW0gdndlYnAKK1BBQ0tBR0VDT05GSUdbZ2xdID0gIi0tZW5hYmxlLWdsLC0tZGlzYWJsZS1nbCxtZXNhLWdsdXQiCisKK1BBQ0tBR0VTID0rICIke1BOfS1naWYyd2VicCIKKworREVTQ1JJUFRJT05fJHtQTn0tZ2lmMndlYnAgPSAiU2ltcGxlIHRvb2wgdG8gY29udmVydCBhbmltYXRlZCBHSUZzIHRvIFdlYlAiCitGSUxFU18ke1BOfS1naWYyd2VicCA9ICIke2JpbmRpcn0vZ2lmMndlYnAiCmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS94MjY0L3gyNjQvZG9uLXQtZGVmYXVsdC10by1jb3J0ZXgtYTktd2l0aC1uZW9uLnBhdGNoIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEveDI2NC94MjY0L2Rvbi10LWRlZmF1bHQtdG8tY29ydGV4LWE5LXdpdGgtbmVvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjcyZmNhCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLW11bHRpbWVkaWEveDI2NC94MjY0L2Rvbi10LWRlZmF1bHQtdG8tY29ydGV4LWE5LXdpdGgtbmVvbi5wYXRjaApAQCAtMCwwICsxLDI5IEBACistbWFyY2ggZmxhZyBpcyBub3QgaW4gQ0ZMQUdTIHNvIHRoaXMgd2lsbCBhbHdheXMgZGVmYXVsdCB0byAtbWNwdT1jb3J0ZXgtYTgKKy1tZnB1PW5lb24uCisKK1Vwc3RyZWFtLVN0YXR1czogUGVuZGluZworU2lnbmVkLW9mZi1ieTogQW5kcmVpIEdoZXJ6YW4gPGFuZHJlaUBnaGVyemFuLnJvPgorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCitpbmRleCAyOTE2MDM2Li5mNGVjZTQwIDEwMDc1NQorLS0tIGEvY29uZmlndXJlCisrKysgYi9jb25maWd1cmUKK0BAIC03NzMsOSArNzczLDYgQEAgaWYgWyAkYXNtID0gYXV0byAtYSBcKCAkQVJDSCA9IFg4NiAtbyAkQVJDSCA9IFg4Nl82NCBcKSBdIDsgdGhlbgorIGZpCisgCisgaWYgWyAkYXNtID0gYXV0byAtYSAkQVJDSCA9IEFSTSBdIDsgdGhlbgorLSAgICAjIHNldCBmbGFncyBzbyBuZW9uIGlzIGJ1aWx0IGJ5IGRlZmF1bHQKKy0gICAgZWNobyAkQ0ZMQUdTIHwgZ3JlcCAtRXEgJygtbWNwdXwtbWFyY2h8LW1mcHUpJyB8fCBDRkxBR1M9IiRDRkxBR1MgLW1jcHU9Y29ydGV4LWE4IC1tZnB1PW5lb24iCistCisgICAgIGlmICBjY19jaGVjayAnJyAnJyAnX19hc21fXygicmV2IGlwLCBpcCIpOycgOyB0aGVuICAgICAgZGVmaW5lIEhBVkVfQVJNVjYKKyAgICAgICAgIGNjX2NoZWNrICcnICcnICdfX2FzbV9fKCJtb3Z0IHIwLCAjMCIpOycgICAgICAgICAmJiBkZWZpbmUgSEFWRV9BUk1WNlQyCisgICAgICAgICBjY19jaGVjayAnJyAnJyAnX19hc21fXygidmFkZC5pMTYgcTAsIHEwLCBxMCIpOycgJiYgZGVmaW5lIEhBVkVfTkVPTgorQEAgLTc4OCw4ICs3ODUsNiBAQCBpZiBbICRhc20gPSBhdXRvIC1hICRBUkNIID0gQVJNIF0gOyB0aGVuCisgZmkKKyAKKyBpZiBbICRhc20gPSBhdXRvIC1hICRBUkNIID0gQUFSQ0g2NCBdIDsgdGhlbgorLSAgICAjIHNldCBmbGFncyBzbyBuZW9uIGlzIGJ1aWx0IGJ5IGRlZmF1bHQKKy0gICAgZWNobyAkQ0ZMQUdTIHwgZ3JlcCAtRXEgJygtbWNwdXwtbWFyY2h8LW1mcHV8LWFyY2gpJyB8fCBDRkxBR1M9IiRDRkxBR1MgLWFyY2ggYXJtNjQgLW1mcHU9bmVvbiIKKyAKKyAgICAgaWYgIGNjX2NoZWNrICcnICcnICdfX2FzbV9fKCJjbWVxIHYwLjhoLCB2MC44aCwgIzAiKTsnIDsgdGhlbiBkZWZpbmUgSEFWRV9ORU9OCisgICAgICAgICBBU0ZMQUdTPSIkQVNGTEFHUyAtYyIKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1tdWx0aW1lZGlhL3gyNjQveDI2NF9naXQuYmIgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS94MjY0L3gyNjRfZ2l0LmJiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhNjk5MDkKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lwZXMtbXVsdGltZWRpYS94MjY0L3gyNjRfZ2l0LmJiCkBAIC0wLDAgKzEsNTUgQEAKK1NVTU1BUlkgPSAiSC4yNjQvTVBFRy00IEFWQyB2aWRlbyBlbmNvZGVyIgorREVTQ1JJUFRJT04gPSAiQSBmcmVlIHNvZnR3YXJlIGxpYnJhcnkgYW5kIGFwcGxpY2F0aW9uIGZvciBlbmNvZGluZyB2aWRlbyBzdHJlYW1zIGludG8gdGhlIEguMjY0L01QRUctNCBBVkMgZm9ybWF0LiIKK0hPTUVQQUdFID0gImh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL2RldmVsb3BlcnMveDI2NC5odG1sIgorCitMSUNFTlNFID0gIkdQTHYyIgorTElDRU5TRV9GTEFHUyA9ICJjb21tZXJjaWFsIgorTElDX0ZJTEVTX0NIS1NVTSA9ICJmaWxlOi8vQ09QWUlORzttZDU9OTRkNTVkNTEyYTliYTM2Y2FhOWI3ZGYwNzliYWUxOWYiCisKK0RFUEVORFMgPSAieWFzbS1uYXRpdmUiCisKK1NSQ19VUkkgPSAiZ2l0Oi8vZ2l0LnZpZGVvbGFuLm9yZy94MjY0LmdpdCBcCisgICAgICAgICAgIGZpbGU6Ly9kb24tdC1kZWZhdWx0LXRvLWNvcnRleC1hOS13aXRoLW5lb24ucGF0Y2ggXAorICAgICAgICAgICAiCisKK1NSQ1JFViA9ICJjOGE3NzNlYmZjYTE0OGVmMDRmNWE2MGQ0MmNiZDczMzZhZjBiYWY2IgorCitQViA9ICJyMjQ5MStnaXQke1NSQ1BWfSIKKworUyA9ICIke1dPUktESVJ9L2dpdCIKKworaW5oZXJpdCBsaWJfcGFja2FnZSBwa2djb25maWcgcGVybG5hdGl2ZQorCitYMjY0X0RJU0FCTEVfQVNNID0gIiIKK1gyNjRfRElTQUJMRV9BU01fYXJtdjQgPSAiLS1kaXNhYmxlLWFzbSIKK1gyNjRfRElTQUJMRV9BU01fYXJtdjUgPSAiLS1kaXNhYmxlLWFzbSIKK1gyNjRfRElTQUJMRV9BU01fcG93ZXJwYyA9ICIke0BiYi51dGlscy5jb250YWlucygiVFVORV9GRUFUVVJFUyIsICJzcGUiLCAiLS1kaXNhYmxlLWFzbSIsICIiLCBkKX0iCisKK0VYVFJBX09FQ09ORiA9ICctLXByZWZpeD0ke3ByZWZpeH0gXAorICAgICAgICAgICAgICAgIC0taG9zdD0ke0hPU1RfU1lTfSBcCisgICAgICAgICAgICAgICAgLS1saWJkaXI9JHtsaWJkaXJ9IFwKKyAgICAgICAgICAgICAgICAtLWNyb3NzLXByZWZpeD0ke1RBUkdFVF9QUkVGSVh9IFwKKyAgICAgICAgICAgICAgICAtLXN5c3Jvb3Q9JHtTVEFHSU5HX0RJUl9UQVJHRVR9IFwKKyAgICAgICAgICAgICAgICAtLWVuYWJsZS1zaGFyZWQgXAorICAgICAgICAgICAgICAgIC0tZW5hYmxlLXN0YXRpYyBcCisgICAgICAgICAgICAgICAgLS1kaXNhYmxlLWxhdmYgXAorICAgICAgICAgICAgICAgIC0tZGlzYWJsZS1zd3NjYWxlIFwKKyAgICAgICAgICAgICAgICAtLWVuYWJsZS1waWMgXAorICAgICAgICAgICAgICAgICR7WDI2NF9ESVNBQkxFX0FTTX0gXAorICAgICAgICAgICAgICAgJworCitkb19jb25maWd1cmUoKSB7CisgICAgLi9jb25maWd1cmUgJHtFWFRSQV9PRUNPTkZ9Cit9CisKKyMgR2V0IHJpZCBvZiAtZQorRVhUUkFfT0VNQUtFID0gIiIKK0FTID0gIiR7VEFSR0VUX1BSRUZJWH1nY2MiCisKK2RvX2luc3RhbGwoKSB7CisgICAgb2VfcnVubWFrZSBpbnN0YWxsIERFU1RESVI9JHtEfQorfQorCisjIFBJQyBjYW4ndCBiZSBlbmFibGVkIGZvciAzMi1iaXQgeDg2CitJTlNBTkVfU0tJUF8ke1BOfV9hcHBlbmRfeDg2ID0gIiB0ZXh0cmVsIgorCg==