ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTJjL2NoaXBzL2FkbTEwMjEgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL2FkbTEwMjEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24vaTJjL2NoaXBzL2FkbTEwMjEKcmVuYW1lIHRvIERvY3VtZW50YXRpb24vaHdtb24vYWRtMTAyMQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvYWRtMTAyNSBiL0RvY3VtZW50YXRpb24vaHdtb24vYWRtMTAyNQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvYWRtMTAyNQpyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi9od21vbi9hZG0xMDI1CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9hZG0xMDI2IGIvRG9jdW1lbnRhdGlvbi9od21vbi9hZG0xMDI2CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9hZG0xMDI2CnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL2h3bW9uL2FkbTEwMjYKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTJjL2NoaXBzL2FkbTEwMzEgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL2FkbTEwMzEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24vaTJjL2NoaXBzL2FkbTEwMzEKcmVuYW1lIHRvIERvY3VtZW50YXRpb24vaHdtb24vYWRtMTAzMQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvYWRtOTI0MCBiL0RvY3VtZW50YXRpb24vaHdtb24vYWRtOTI0MApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvYWRtOTI0MApyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi9od21vbi9hZG05MjQwCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9hc2IxMDAgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL2FzYjEwMApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvYXNiMTAwCnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL2h3bW9uL2FzYjEwMApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvZHMxNjIxIGIvRG9jdW1lbnRhdGlvbi9od21vbi9kczE2MjEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24vaTJjL2NoaXBzL2RzMTYyMQpyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi9od21vbi9kczE2MjEKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTJjL2NoaXBzL2ZzY2hlciBiL0RvY3VtZW50YXRpb24vaHdtb24vZnNjaGVyCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9mc2NoZXIKcmVuYW1lIHRvIERvY3VtZW50YXRpb24vaHdtb24vZnNjaGVyCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9nbDUxOHNtIGIvRG9jdW1lbnRhdGlvbi9od21vbi9nbDUxOHNtCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9nbDUxOHNtCnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL2h3bW9uL2dsNTE4c20KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTJjL2NoaXBzL2l0ODcgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL2l0ODcKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24vaTJjL2NoaXBzL2l0ODcKcmVuYW1lIHRvIERvY3VtZW50YXRpb24vaHdtb24vaXQ4NwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvbG02MyBiL0RvY3VtZW50YXRpb24vaHdtb24vbG02MwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvbG02MwpyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi9od21vbi9sbTYzCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9sbTc1IGIvRG9jdW1lbnRhdGlvbi9od21vbi9sbTc1CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9sbTc1CnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL2h3bW9uL2xtNzUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTJjL2NoaXBzL2xtNzcgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL2xtNzcKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24vaTJjL2NoaXBzL2xtNzcKcmVuYW1lIHRvIERvY3VtZW50YXRpb24vaHdtb24vbG03NwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvbG03OCBiL0RvY3VtZW50YXRpb24vaHdtb24vbG03OApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvbG03OApyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi9od21vbi9sbTc4CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9sbTgwIGIvRG9jdW1lbnRhdGlvbi9od21vbi9sbTgwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9sbTgwCnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL2h3bW9uL2xtODAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTJjL2NoaXBzL2xtODMgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL2xtODMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24vaTJjL2NoaXBzL2xtODMKcmVuYW1lIHRvIERvY3VtZW50YXRpb24vaHdtb24vbG04MwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvbG04NSBiL0RvY3VtZW50YXRpb24vaHdtb24vbG04NQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvbG04NQpyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi9od21vbi9sbTg1CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9sbTg3IGIvRG9jdW1lbnRhdGlvbi9od21vbi9sbTg3CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9sbTg3CnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL2h3bW9uL2xtODcKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTJjL2NoaXBzL2xtOTAgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL2xtOTAKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24vaTJjL2NoaXBzL2xtOTAKcmVuYW1lIHRvIERvY3VtZW50YXRpb24vaHdtb24vbG05MApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvbG05MiBiL0RvY3VtZW50YXRpb24vaHdtb24vbG05MgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvbG05MgpyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi9od21vbi9sbTkyCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9tYXgxNjE5IGIvRG9jdW1lbnRhdGlvbi9od21vbi9tYXgxNjE5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9tYXgxNjE5CnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL2h3bW9uL21heDE2MTkKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTJjL2NoaXBzL3BjODczNjAgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL3BjODczNjAKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24vaTJjL2NoaXBzL3BjODczNjAKcmVuYW1lIHRvIERvY3VtZW50YXRpb24vaHdtb24vcGM4NzM2MApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvc2lzNTU5NSBiL0RvY3VtZW50YXRpb24vaHdtb24vc2lzNTU5NQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvc2lzNTU5NQpyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi9od21vbi9zaXM1NTk1CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9zbXNjNDdiMzk3IGIvRG9jdW1lbnRhdGlvbi9od21vbi9zbXNjNDdiMzk3CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9zbXNjNDdiMzk3CnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL2h3bW9uL3Ntc2M0N2IzOTcKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTJjL2NoaXBzL3Ntc2M0N20xIGIvRG9jdW1lbnRhdGlvbi9od21vbi9zbXNjNDdtMQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvc21zYzQ3bTEKcmVuYW1lIHRvIERvY3VtZW50YXRpb24vaHdtb24vc21zYzQ3bTEKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTJjL3N5c2ZzLWludGVyZmFjZSBiL0RvY3VtZW50YXRpb24vaHdtb24vc3lzZnMtaW50ZXJmYWNlCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL2kyYy9zeXNmcy1pbnRlcmZhY2UKcmVuYW1lIHRvIERvY3VtZW50YXRpb24vaHdtb24vc3lzZnMtaW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kyYy91c2Vyc3BhY2UtdG9vbHMgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL3VzZXJzcGFjZS10b29scwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi9pMmMvdXNlcnNwYWNlLXRvb2xzCnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL2h3bW9uL3VzZXJzcGFjZS10b29scwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvdmlhNjg2YSBiL0RvY3VtZW50YXRpb24vaHdtb24vdmlhNjg2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvdmlhNjg2YQpyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi9od21vbi92aWE2ODZhCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kyYy9jaGlwcy93ODM2MjdoZiBiL0RvY3VtZW50YXRpb24vaHdtb24vdzgzNjI3aGYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24vaTJjL2NoaXBzL3c4MzYyN2hmCnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL2h3bW9uL3c4MzYyN2hmCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kyYy9jaGlwcy93ODM3ODFkIGIvRG9jdW1lbnRhdGlvbi9od21vbi93ODM3ODFkCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL2kyYy9jaGlwcy93ODM3ODFkCnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL2h3bW9uL3c4Mzc4MWQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaTJjL2NoaXBzL3c4M2w3ODV0cyBiL0RvY3VtZW50YXRpb24vaHdtb24vdzgzbDc4NXRzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL2kyYy9jaGlwcy93ODNsNzg1dHMKcmVuYW1lIHRvIERvY3VtZW50YXRpb24vaHdtb24vdzgzbDc4NXRzCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9tYXg2ODc1IGIvRG9jdW1lbnRhdGlvbi9pMmMvY2hpcHMvbWF4Njg3NQppbmRleCBiNGZiNDliLi5iMDIwMDI4IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2kyYy9jaGlwcy9tYXg2ODc1CisrKyBiL0RvY3VtZW50YXRpb24vaTJjL2NoaXBzL21heDY4NzUKQEAgLTIsMTAgKzIsMTAgQEAKID09PT09PT09PT09PT09PT09PT09PQogCiBTdXBwb3J0ZWQgY2hpcHM6Ci0gICogTWF4aW0gbWF4Njg3NCwgbWF4Njg3NQotICAgIFByZWZpeGVzOiAnbWF4Njg3NScKKyAgKiBNYXhpbSBNQVg2ODc0LCBNQVg2ODc1CisgICAgUHJlZml4OiAnbWF4Njg3NScKICAgICBBZGRyZXNzZXMgc2Nhbm5lZDogMHg1MCwgMHg1MgotICAgIERhdGFzaGVldHM6CisgICAgRGF0YXNoZWV0OgogICAgICAgICBodHRwOi8vcGRmc2Vydi5tYXhpbS1pYy5jb20vZW4vZHMvTUFYNjg3NC1NQVg2ODc1LnBkZgogCiBBdXRob3I6IEJlbiBHYXJkbmVyIDxiZ2FyZG5lckB3YWJ0ZWMuY29tPgpAQCAtMjMsMTQgKzIzLDI2IEBACiBEZXNjcmlwdGlvbgogLS0tLS0tLS0tLS0KIAotVGhlIE1BWElNIG1heDY4NzUgaXMgYSBFRVBST00tcHJvZ3JhbW1hYmxlIHBvd2VyLXN1cHBseSBzZXF1ZW5jZXIvc3VwZXJ2aXNvci4KK1RoZSBNYXhpbSBNQVg2ODc1IGlzIGFuIEVFUFJPTS1wcm9ncmFtbWFibGUgcG93ZXItc3VwcGx5IHNlcXVlbmNlci9zdXBlcnZpc29yLgogSXQgcHJvdmlkZXMgdGltZWQgb3V0cHV0cyB0aGF0IGNhbiBiZSB1c2VkIGFzIGEgd2F0Y2hkb2csIGlmIHByb3Blcmx5IHdpcmVkLgogSXQgYWxzbyBwcm92aWRlcyA1MTIgYnl0ZXMgb2YgdXNlciBFRVBST00uCiAKLUF0IHJlc2V0LCB0aGUgbWF4Njg3NSByZWFkcyB0aGUgY29uZmlndXJhdGlvbiBlZXByb20gaW50byBpdHMgY29uZmlndXJhdGlvbgorQXQgcmVzZXQsIHRoZSBNQVg2ODc1IHJlYWRzIHRoZSBjb25maWd1cmF0aW9uIEVFUFJPTSBpbnRvIGl0cyBjb25maWd1cmF0aW9uCiByZWdpc3RlcnMuICBUaGUgY2hpcCB0aGVuIGJlZ2lucyB0byBvcGVyYXRlIGFjY29yZGluZyB0byB0aGUgdmFsdWVzIGluIHRoZQogcmVnaXN0ZXJzLgogCitUaGUgTWF4aW0gTUFYNjg3NCBpcyBhIHNpbWlsYXIsIG1vc3RseSBjb21wYXRpYmxlIGRldmljZSwgd2l0aCBtb3JlIGludHB1dHMKK2FuZCBvdXRwdXRzOgorCisgICAgICAgICAgICAgdmluICAgICBncGkgICAgdm91dAorTUFYNjg3NCAgICAgICAgNiAgICAgICA0ICAgICAgIDgKK01BWDY4NzUgICAgICAgIDQgICAgICAgMyAgICAgICA1CisKK01BWDY4NzQgY2hpcHMgY2FuIGhhdmUgZm91ciBkaWZmZXJlbnQgYWRkcmVzc2VzIChhcyBvcHBvc2VkIHRvIG9ubHkgdHdvIGZvcgordGhlIE1BWDY4NzUpLiBUaGUgYWRkaXRpb25hbCBhZGRyZXNzZXMgKDB4NTQgYW5kIDB4NTYpIGFyZSBub3QgcHJvYmVkIGJ5Cit0aGlzIGRyaXZlciBieSBkZWZhdWx0LCBidXQgdGhlIHByb2JlIG1vZHVsZSBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgaWYKK25lZWRlZC4KKwogU2VlIHRoZSBkYXRhc2hlZXQgZm9yIGRldGFpbHMgb24gaG93IHRvIHByb2dyYW0gdGhlIEVFUFJPTS4KIAogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kyYy9kZXYtaW50ZXJmYWNlIGIvRG9jdW1lbnRhdGlvbi9pMmMvZGV2LWludGVyZmFjZQppbmRleCAwOWQ2Y2RhLi5iODQ5YWQ2IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2kyYy9kZXYtaW50ZXJmYWNlCisrKyBiL0RvY3VtZW50YXRpb24vaTJjL2Rldi1pbnRlcmZhY2UKQEAgLTE0LDkgKzE0LDEyIEBACiA9PT09PT09PT0KIAogU28gbGV0J3Mgc2F5IHlvdSB3YW50IHRvIGFjY2VzcyBhbiBpMmMgYWRhcHRlciBmcm9tIGEgQyBwcm9ncmFtLiBUaGUKLWZpcnN0IHRoaW5nIHRvIGRvIGlzIGAjaW5jbHVkZSA8bGludXgvaTJjLmg+IiBhbmQgIiNpbmNsdWRlIDxsaW51eC9pMmMtZGV2Lmg+LiAKLVllcywgSSBrbm93LCB5b3Ugc2hvdWxkIG5ldmVyIGluY2x1ZGUga2VybmVsIGhlYWRlciBmaWxlcywgYnV0IHVudGlsIGdsaWJjIAota25vd3MgYWJvdXQgaTJjLCB0aGVyZSBpcyBub3QgbXVjaCBjaG9pY2UuCitmaXJzdCB0aGluZyB0byBkbyBpcyAiI2luY2x1ZGUgPGxpbnV4L2kyYy1kZXYuaD4iLiBQbGVhc2Ugbm90ZSB0aGF0Cit0aGVyZSBhcmUgdHdvIGZpbGVzIG5hbWVkICJpMmMtZGV2LmgiIG91dCB0aGVyZSwgb25lIGlzIGRpc3RyaWJ1dGVkCit3aXRoIHRoZSBMaW51eCBrZXJuZWwgYW5kIGlzIG1lYW50IHRvIGJlIGluY2x1ZGVkIGZyb20ga2VybmVsCitkcml2ZXIgY29kZSwgdGhlIG90aGVyIG9uZSBpcyBkaXN0cmlidXRlZCB3aXRoIGxtX3NlbnNvcnMgYW5kIGlzCittZWFudCB0byBiZSBpbmNsdWRlZCBmcm9tIHVzZXItc3BhY2UgcHJvZ3JhbXMuIFlvdSBvYnZpb3VzbHkgd2FudAordGhlIHNlY29uZCBvbmUgaGVyZS4KIAogTm93LCB5b3UgaGF2ZSB0byBkZWNpZGUgd2hpY2ggYWRhcHRlciB5b3Ugd2FudCB0byBhY2Nlc3MuIFlvdSBzaG91bGQKIGluc3BlY3QgL3N5cy9jbGFzcy9pMmMtZGV2LyB0byBkZWNpZGUgdGhpcy4gQWRhcHRlciBudW1iZXJzIGFyZSBhc3NpZ25lZApAQCAtNzgsNyArODEsNyBAQAogPT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogVGhlIGZvbGxvd2luZyBJT0NUTHMgYXJlIGRlZmluZWQgYW5kIGZ1bGx5IHN1cHBvcnRlZCAKLShzZWUgYWxzbyBpMmMtZGV2LmggYW5kIGkyYy5oKToKKyhzZWUgYWxzbyBpMmMtZGV2LmgpOgogCiBpb2N0bChmaWxlLEkyQ19TTEFWRSxsb25nIGFkZHIpCiAgIENoYW5nZSBzbGF2ZSBhZGRyZXNzLiBUaGUgYWRkcmVzcyBpcyBwYXNzZWQgaW4gdGhlIDcgbG93ZXIgYml0cyBvZiB0aGUKQEAgLTk3LDEwICsxMDAsMTAgQEAKIGlvY3RsKGZpbGUsSTJDX0ZVTkNTLHVuc2lnbmVkIGxvbmcgKmZ1bmNzKQogICBHZXRzIHRoZSBhZGFwdGVyIGZ1bmN0aW9uYWxpdHkgYW5kIHB1dHMgaXQgaW4gKmZ1bmNzLgogCi1pb2N0bChmaWxlLEkyQ19SRFdSLHN0cnVjdCBpMmNfaW9jdGxfcmR3cl9kYXRhICptc2dzZXQpCitpb2N0bChmaWxlLEkyQ19SRFdSLHN0cnVjdCBpMmNfcmR3cl9pb2N0bF9kYXRhICptc2dzZXQpCiAKICAgRG8gY29tYmluZWQgcmVhZC93cml0ZSB0cmFuc2FjdGlvbiB3aXRob3V0IHN0b3AgaW4gYmV0d2Vlbi4KLSAgVGhlIGFyZ3VtZW50IGlzIGEgcG9pbnRlciB0byBhIHN0cnVjdCBpMmNfaW9jdGxfcmR3cl9kYXRhIHsKKyAgVGhlIGFyZ3VtZW50IGlzIGEgcG9pbnRlciB0byBhIHN0cnVjdCBpMmNfcmR3cl9pb2N0bF9kYXRhIHsKIAogICAgICAgc3RydWN0IGkyY19tc2cgKm1zZ3M7ICAvKiBwdHIgdG8gYXJyYXkgb2Ygc2ltcGxlIG1lc3NhZ2VzICovCiAgICAgICBpbnQgbm1zZ3M7ICAgICAgICAgICAgIC8qIG51bWJlciBvZiBtZXNzYWdlcyB0byBleGNoYW5nZSAqLwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pMmMvd3JpdGluZy1jbGllbnRzIGIvRG9jdW1lbnRhdGlvbi9pMmMvd3JpdGluZy1jbGllbnRzCmluZGV4IGY0ODJkYWUuLjkxNjY0YmUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vaTJjL3dyaXRpbmctY2xpZW50cworKysgYi9Eb2N1bWVudGF0aW9uL2kyYy93cml0aW5nLWNsaWVudHMKQEAgLTI3LDcgKzI3LDYgQEAKIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBmb29fZHJpdmVyID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkubmFtZQkJPSAiRm9vIHZlcnNpb24gMi4zIGRyaXZlciIsCi0JLmlkCQk9IEkyQ19EUklWRVJJRF9GT08sIC8qIGZyb20gaTJjLWlkLmgsIG9wdGlvbmFsICovCiAJLmZsYWdzCQk9IEkyQ19ERl9OT1RJRlksCiAJLmF0dGFjaF9hZGFwdGVyCT0gJmZvb19hdHRhY2hfYWRhcHRlciwKIAkuZGV0YWNoX2NsaWVudAk9ICZmb29fZGV0YWNoX2NsaWVudCwKQEAgLTM3LDEyICszNiw2IEBACiBUaGUgbmFtZSBjYW4gYmUgY2hvc2VuIGZyZWVseSwgYW5kIG1heSBiZSB1cHRvIDQwIGNoYXJhY3RlcnMgbG9uZy4gUGxlYXNlCiB1c2Ugc29tZXRoaW5nIGRlc2NyaXB0aXZlIGhlcmUuCiAKLUlmIHVzZWQsIHRoZSBpZCBzaG91bGQgYmUgYSB1bmlxdWUgSUQuIFRoZSByYW5nZSAweGYwMDAgdG8gMHhmZmZmIGlzCi1yZXNlcnZlZCBmb3IgbG9jYWwgdXNlLCBhbmQgeW91IGNhbiB1c2Ugb25lIG9mIHRob3NlIHVudGlsIHlvdSBzdGFydAotZGlzdHJpYnV0aW5nIHRoZSBkcml2ZXIsIGF0IHdoaWNoIHRpbWUgeW91IHNob3VsZCBjb250YWN0IHRoZSBpMmMgYXV0aG9ycwotdG8gZ2V0IHlvdXIgb3duIElEKHMpLiBOb3RlIHRoYXQgbW9zdCBvZiB0aGUgdGltZSB5b3UgZG9uJ3QgbmVlZCBhbiBJRAotYXQgYWxsIHNvIHlvdSBjYW4ganVzdCBvbWl0IGl0LgotCiBEb24ndCB3b3JyeSBhYm91dCB0aGUgZmxhZ3MgZmllbGQ7IGp1c3QgcHV0IEkyQ19ERl9OT1RJRlkgaW50byBpdC4gVGhpcwogbWVhbnMgdGhhdCB5b3VyIGRyaXZlciB3aWxsIGJlIG5vdGlmaWVkIHdoZW4gbmV3IGFkYXB0ZXJzIGFyZSBmb3VuZC4KIFRoaXMgaXMgYWxtb3N0IGFsd2F5cyB3aGF0IHlvdSB3YW50LgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vS2NvbmZpZyBiL2FyY2gvYXJtL0tjb25maWcKaW5kZXggNDU0NjI3MS4uN2JjNGE1OCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vS2NvbmZpZworKysgYi9hcmNoL2FybS9LY29uZmlnCkBAIC03NDYsNiArNzQ2LDggQEAKIAogc291cmNlICJkcml2ZXJzL2kyYy9LY29uZmlnIgogCitzb3VyY2UgImRyaXZlcnMvaHdtb24vS2NvbmZpZyIKKwogI3NvdXJjZSAiZHJpdmVycy9sMy9LY29uZmlnIgogCiBzb3VyY2UgImRyaXZlcnMvbWlzYy9LY29uZmlnIgpkaWZmIC0tZ2l0IGEvYXJjaC9oODMwMC9LY29uZmlnIGIvYXJjaC9oODMwMC9LY29uZmlnCmluZGV4IDM3NWYyYTguLjI2Njk4YTQgMTAwNjQ0Ci0tLSBhL2FyY2gvaDgzMDAvS2NvbmZpZworKysgYi9hcmNoL2g4MzAwL0tjb25maWcKQEAgLTE4MSw2ICsxODEsOCBAQAogCiBzb3VyY2UgImRyaXZlcnMvaTJjL0tjb25maWciCiAKK3NvdXJjZSAiZHJpdmVycy9od21vbi9LY29uZmlnIgorCiBzb3VyY2UgImRyaXZlcnMvdXNiL0tjb25maWciCiAKIGVuZG1lbnUKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmM2NC9LY29uZmlnIGIvYXJjaC9zcGFyYzY0L0tjb25maWcKaW5kZXggMTQwNjA3OC4uOWFmZDI4ZSAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYzY0L0tjb25maWcKKysrIGIvYXJjaC9zcGFyYzY0L0tjb25maWcKQEAgLTY0OSw2ICs2NDksOCBAQAogCiBzb3VyY2UgImRyaXZlcnMvaTJjL0tjb25maWciCiAKK3NvdXJjZSAiZHJpdmVycy9od21vbi9LY29uZmlnIgorCiBzb3VyY2UgImZzL0tjb25maWciCiAKIHNvdXJjZSAiZHJpdmVycy9tZWRpYS9LY29uZmlnIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9LY29uZmlnIGIvZHJpdmVycy9LY29uZmlnCmluZGV4IDM0ZWZiMjEuLmNlY2FiMGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvS2NvbmZpZworKysgYi9kcml2ZXJzL0tjb25maWcKQEAgLTQ0LDYgKzQ0LDggQEAKIAogc291cmNlICJkcml2ZXJzL3cxL0tjb25maWciCiAKK3NvdXJjZSAiZHJpdmVycy9od21vbi9LY29uZmlnIgorCiBzb3VyY2UgImRyaXZlcnMvbWlzYy9LY29uZmlnIgogCiBzb3VyY2UgImRyaXZlcnMvbWVkaWEvS2NvbmZpZyIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvTWFrZWZpbGUgYi9kcml2ZXJzL01ha2VmaWxlCmluZGV4IDMxNjdiZTUuLjEyNmE4NTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9NYWtlZmlsZQpAQCAtNTIsNiArNTIsNyBAQAogb2JqLSQoQ09ORklHX0kyTykJCSs9IG1lc3NhZ2UvCiBvYmotJChDT05GSUdfSTJDKQkJKz0gaTJjLwogb2JqLSQoQ09ORklHX1cxKQkJKz0gdzEvCitvYmotJChDT05GSUdfSFdNT04pCQkrPSBod21vbi8KIG9iai0kKENPTkZJR19QSE9ORSkJCSs9IHRlbGVwaG9ueS8KIG9iai0kKENPTkZJR19NRCkJCSs9IG1kLwogb2JqLSQoQ09ORklHX0JUKQkJKz0gYmx1ZXRvb3RoLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9LY29uZmlnIGIvZHJpdmVycy9od21vbi9LY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0MGQ1ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2h3bW9uL0tjb25maWcKQEAgLTAsMCArMSw0MjAgQEAKKyMKKyMgSTJDIFNlbnNvciBjaGlwIGRyaXZlcnMgY29uZmlndXJhdGlvbgorIworCittZW51ICJIYXJkd2FyZSBNb25pdG9yaW5nIHN1cHBvcnQiCisKK2NvbmZpZyBIV01PTgorCXRyaXN0YXRlICJIYXJkd2FyZSBNb25pdG9yaW5nIHN1cHBvcnQiCisJZGVmYXVsdCB5CisJaGVscAorCSAgSGFyZHdhcmUgbW9uaXRvcmluZyBkZXZpY2VzIGxldCB5b3UgbW9uaXRvciB0aGUgaGFyZHdhcmUgaGVhbHRoCisJICBvZiBhIHN5c3RlbS4gTW9zdCBtb2Rlcm4gbW90aGVyYm9hcmRzIGluY2x1ZGUgc3VjaCBhIGRldmljZS4gSXQKKwkgIGNhbiBpbmNsdWRlIHRlbXBlcmF0dXJlIHNlbnNvcnMsIHZvbHRhZ2Ugc2Vuc29ycywgZmFuIHNwZWVkCisJICBzZW5zb3JzIGFuZCB2YXJpb3VzIGFkZGl0aW9uYWwgZmVhdHVyZXMgc3VjaCBhcyB0aGUgYWJpbGl0eSB0bworCSAgY29udHJvbCB0aGUgc3BlZWQgb2YgdGhlIGZhbnMuCisKK2NvbmZpZyBTRU5TT1JTX0FETTEwMjEKKwl0cmlzdGF0ZSAiQW5hbG9nIERldmljZXMgQURNMTAyMSBhbmQgY29tcGF0aWJsZXMiCisJZGVwZW5kcyBvbiBIV01PTiAmJiBJMkMKKwlzZWxlY3QgSTJDX1NFTlNPUgorCWhlbHAKKwkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBBbmFsb2cgRGV2aWNlcyBBRE0xMDIxCisJICBhbmQgQURNMTAyMyBzZW5zb3IgY2hpcHMgYW5kIGNsb25lczogTWF4aW0gTUFYMTYxNyBhbmQgTUFYMTYxN0EsCisJICBHZW5lc3lzIExvZ2ljIEdMNTIzU00sIE5hdGlvbmFsIFNlbWljb25kdWN0b3IgTE04NCwgVEkgVEhNQzEwLAorCSAgYW5kIHRoZSBYRU9OIHByb2Nlc3NvciBidWlsdC1pbiBzZW5zb3IuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGFkbTEwMjEuCisKK2NvbmZpZyBTRU5TT1JTX0FETTEwMjUKKwl0cmlzdGF0ZSAiQW5hbG9nIERldmljZXMgQURNMTAyNSBhbmQgY29tcGF0aWJsZXMiCisJZGVwZW5kcyBvbiBIV01PTiAmJiBJMkMgJiYgRVhQRVJJTUVOVEFMCisJc2VsZWN0IEkyQ19TRU5TT1IKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgQW5hbG9nIERldmljZXMgQURNMTAyNQorCSAgYW5kIFBoaWxpcHMgTkUxNjE5IHNlbnNvciBjaGlwcy4KKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgYWRtMTAyNS4KKworY29uZmlnIFNFTlNPUlNfQURNMTAyNgorCXRyaXN0YXRlICJBbmFsb2cgRGV2aWNlcyBBRE0xMDI2IGFuZCBjb21wYXRpYmxlcyIKKwlkZXBlbmRzIG9uIEhXTU9OICYmIEkyQyAmJiBFWFBFUklNRU5UQUwKKwlzZWxlY3QgSTJDX1NFTlNPUgorCWhlbHAKKwkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBBbmFsb2cgRGV2aWNlcyBBRE0xMDI2CisJICBzZW5zb3IgY2hpcC4KKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgYWRtMTAyNi4KKworY29uZmlnIFNFTlNPUlNfQURNMTAzMQorCXRyaXN0YXRlICJBbmFsb2cgRGV2aWNlcyBBRE0xMDMxIGFuZCBjb21wYXRpYmxlcyIKKwlkZXBlbmRzIG9uIEhXTU9OICYmIEkyQyAmJiBFWFBFUklNRU5UQUwKKwlzZWxlY3QgSTJDX1NFTlNPUgorCWhlbHAKKwkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBBbmFsb2cgRGV2aWNlcyBBRE0xMDMxCisJICBhbmQgQURNMTAzMCBzZW5zb3IgY2hpcHMuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGFkbTEwMzEuCisKK2NvbmZpZyBTRU5TT1JTX0FETTkyNDAKKwl0cmlzdGF0ZSAiQW5hbG9nIERldmljZXMgQURNOTI0MCBhbmQgY29tcGF0aWJsZXMiCisJZGVwZW5kcyBvbiBIV01PTiAmJiBJMkMgJiYgRVhQRVJJTUVOVEFMCisJc2VsZWN0IEkyQ19TRU5TT1IKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgQW5hbG9nIERldmljZXMgQURNOTI0MCwKKwkgIERhbGxhcyBEUzE3ODAsIE5hdGlvbmFsIFNlbWljb25kdWN0b3IgTE04MSBzZW5zb3IgY2hpcHMuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGFkbTkyNDAuCisKK2NvbmZpZyBTRU5TT1JTX0FTQjEwMAorCXRyaXN0YXRlICJBc3VzIEFTQjEwMCBCYWNoIgorCWRlcGVuZHMgb24gSFdNT04gJiYgSTJDICYmIEVYUEVSSU1FTlRBTAorCXNlbGVjdCBJMkNfU0VOU09SCisJaGVscAorCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIHRoZSBBU0IxMDAgQmFjaCBzZW5zb3IKKwkgIGNoaXAgZm91bmQgb24gc29tZSBBc3VzIG1haW5ib2FyZHMuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGFzYjEwMC4KKworY29uZmlnIFNFTlNPUlNfQVRYUDEKKwl0cmlzdGF0ZSAiQXR0YW5zaWMgQVRYUDEgVklEIGNvbnRyb2xsZXIiCisJZGVwZW5kcyBvbiBIV01PTiAmJiBJMkMgJiYgRVhQRVJJTUVOVEFMCisJc2VsZWN0IEkyQ19TRU5TT1IKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgdGhlIEF0dGFuc2ljIEFUWFAxIFZJRAorCSAgY29udHJvbGxlci4KKworCSAgSWYgeW91ciBib2FyZCBoYXZlIHN1Y2ggYSBjaGlwLCB5b3UgYXJlIGFibGUgdG8gY29udHJvbCB5b3VyIENQVQorCSAgY29yZSBhbmQgb3RoZXIgdm9sdGFnZXMuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGF0eHAxLgorCitjb25maWcgU0VOU09SU19EUzE2MjEKKwl0cmlzdGF0ZSAiRGFsbGFzIFNlbWljb25kdWN0b3IgRFMxNjIxIGFuZCBEUzE2MjUiCisJZGVwZW5kcyBvbiBIV01PTiAmJiBJMkMgJiYgRVhQRVJJTUVOVEFMCisJc2VsZWN0IEkyQ19TRU5TT1IKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgRGFsbGFzIFNlbWljb25kdWN0b3IKKwkgIERTMTYyMSBhbmQgRFMxNjI1IHNlbnNvciBjaGlwcy4KKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgZHMxNjIxLgorCitjb25maWcgU0VOU09SU19GU0NIRVIKKwl0cmlzdGF0ZSAiRlNDIEhlcm1lcyIKKwlkZXBlbmRzIG9uIEhXTU9OICYmIEkyQyAmJiBFWFBFUklNRU5UQUwKKwlzZWxlY3QgSTJDX1NFTlNPUgorCWhlbHAKKwkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBGdWppdHN1IFNpZW1lbnMKKwkgIENvbXB1dGVycyBIZXJtZXMgc2Vuc29yIGNoaXBzLgorCisJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCBmc2NoZXIuCisKK2NvbmZpZyBTRU5TT1JTX0ZTQ1BPUworCXRyaXN0YXRlICJGU0MgUG9zZWlkb24iCisJZGVwZW5kcyBvbiBIV01PTiAmJiBJMkMgJiYgRVhQRVJJTUVOVEFMCisJc2VsZWN0IEkyQ19TRU5TT1IKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgRnVqaXRzdSBTaWVtZW5zCisJICBDb21wdXRlcnMgUG9zZWlkb24gc2Vuc29yIGNoaXBzLgorCisJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCBmc2Nwb3MuCisKK2NvbmZpZyBTRU5TT1JTX0dMNTE4U00KKwl0cmlzdGF0ZSAiR2VuZXN5cyBMb2dpYyBHTDUxOFNNIgorCWRlcGVuZHMgb24gSFdNT04gJiYgSTJDCisJc2VsZWN0IEkyQ19TRU5TT1IKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgR2VuZXN5cyBMb2dpYyBHTDUxOFNNCisJICBzZW5zb3IgY2hpcHMuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGdsNTE4c20uCisKK2NvbmZpZyBTRU5TT1JTX0dMNTIwU00KKwl0cmlzdGF0ZSAiR2VuZXN5cyBMb2dpYyBHTDUyMFNNIgorCWRlcGVuZHMgb24gSFdNT04gJiYgSTJDICYmIEVYUEVSSU1FTlRBTAorCXNlbGVjdCBJMkNfU0VOU09SCisJaGVscAorCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIEdlbmVzeXMgTG9naWMgR0w1MjBTTQorCSAgc2Vuc29yIGNoaXBzLgorCisJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCBnbDUyMHNtLgorCitjb25maWcgU0VOU09SU19JVDg3CisJdHJpc3RhdGUgIklURSBJVDg3eHggYW5kIGNvbXBhdGlibGVzIgorCWRlcGVuZHMgb24gSFdNT04gJiYgSTJDCisJc2VsZWN0IEkyQ19TRU5TT1IKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgSVRFIElUODd4eCBzZW5zb3IgY2hpcHMKKwkgIGFuZCBjbG9uZXM6IFNpUzk2MC4KKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgaXQ4Ny4KKworY29uZmlnIFNFTlNPUlNfTE02MworCXRyaXN0YXRlICJOYXRpb25hbCBTZW1pY29uZHVjdG9yIExNNjMiCisJZGVwZW5kcyBvbiBIV01PTiAmJiBJMkMgJiYgRVhQRVJJTUVOVEFMCisJc2VsZWN0IEkyQ19TRU5TT1IKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgdGhlIE5hdGlvbmFsIFNlbWljb25kdWN0b3IKKwkgIExNNjMgcmVtb3RlIGRpb2RlIGRpZ2l0YWwgdGVtcGVyYXR1cmUgc2Vuc29yIHdpdGggaW50ZWdyYXRlZCBmYW4KKwkgIGNvbnRyb2wuICBTdWNoIGNoaXBzIGFyZSBmb3VuZCBvbiB0aGUgVHlhbiBTNDg4MiAoVGh1bmRlciBLOFFTIFBybykKKwkgIG1vdGhlcmJvYXJkLCBhbW9uZyBvdGhlcnMuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGxtNjMuCisKK2NvbmZpZyBTRU5TT1JTX0xNNzUKKwl0cmlzdGF0ZSAiTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBMTTc1IGFuZCBjb21wYXRpYmxlcyIKKwlkZXBlbmRzIG9uIEhXTU9OICYmIEkyQworCXNlbGVjdCBJMkNfU0VOU09SCisJaGVscAorCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIE5hdGlvbmFsIFNlbWljb25kdWN0b3IgTE03NQorCSAgc2Vuc29yIGNoaXBzIGFuZCBjbG9uZXM6IERhbGxhcyBTZW1pY29uZHVjdG9yIERTNzUgYW5kIERTMTc3NSAoaW4KKwkgIDktYml0IHByZWNpc2lvbiBtb2RlKSwgYW5kIFRlbENvbSAobm93IE1pY3JvY2hpcCkgVENONzUuCisKKwkgIFRoZSBEUzc1IGFuZCBEUzE3NzUgaW4gMTAtIHRvIDEyLWJpdCBwcmVjaXNpb24gbW9kZXMgd2lsbCByZXF1aXJlCisJICBhIGZvcmNlIG1vZHVsZSBwYXJhbWV0ZXIuIFRoZSBkcml2ZXIgd2lsbCBub3QgaGFuZGxlIHRoZSBleHRyYQorCSAgcHJlY2lzaW9uIGFueWhvdy4KKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgbG03NS4KKworY29uZmlnIFNFTlNPUlNfTE03NworCXRyaXN0YXRlICJOYXRpb25hbCBTZW1pY29uZHVjdG9yIExNNzciCisJZGVwZW5kcyBvbiBIV01PTiAmJiBJMkMgJiYgRVhQRVJJTUVOVEFMCisJc2VsZWN0IEkyQ19TRU5TT1IKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBMTTc3CisJICBzZW5zb3IgY2hpcHMuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGxtNzcuCisKK2NvbmZpZyBTRU5TT1JTX0xNNzgKKwl0cmlzdGF0ZSAiTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBMTTc4IGFuZCBjb21wYXRpYmxlcyIKKwlkZXBlbmRzIG9uIEhXTU9OICYmIEkyQyAmJiBFWFBFUklNRU5UQUwKKwlzZWxlY3QgSTJDX1NFTlNPUgorCWhlbHAKKwkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBOYXRpb25hbCBTZW1pY29uZHVjdG9yIExNNzgsCisJICBMTTc4LUogYW5kIExNNzkuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGxtNzguCisKK2NvbmZpZyBTRU5TT1JTX0xNODAKKwl0cmlzdGF0ZSAiTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBMTTgwIgorCWRlcGVuZHMgb24gSFdNT04gJiYgSTJDICYmIEVYUEVSSU1FTlRBTAorCXNlbGVjdCBJMkNfU0VOU09SCisJaGVscAorCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIE5hdGlvbmFsIFNlbWljb25kdWN0b3IKKwkgIExNODAgc2Vuc29yIGNoaXBzLgorCisJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCBsbTgwLgorCitjb25maWcgU0VOU09SU19MTTgzCisJdHJpc3RhdGUgIk5hdGlvbmFsIFNlbWljb25kdWN0b3IgTE04MyIKKwlkZXBlbmRzIG9uIEhXTU9OICYmIEkyQworCXNlbGVjdCBJMkNfU0VOU09SCisJaGVscAorCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIE5hdGlvbmFsIFNlbWljb25kdWN0b3IKKwkgIExNODMgc2Vuc29yIGNoaXBzLgorCisJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCBsbTgzLgorCitjb25maWcgU0VOU09SU19MTTg1CisJdHJpc3RhdGUgIk5hdGlvbmFsIFNlbWljb25kdWN0b3IgTE04NSBhbmQgY29tcGF0aWJsZXMiCisJZGVwZW5kcyBvbiBIV01PTiAmJiBJMkMgJiYgRVhQRVJJTUVOVEFMCisJc2VsZWN0IEkyQ19TRU5TT1IKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBMTTg1CisJICBzZW5zb3IgY2hpcHMgYW5kIGNsb25lczogQURUNzQ2MywgRU1DNkQxMDAsIEVNQzZEMTAyIGFuZCBBRE0xMDI3LgorCisJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCBsbTg1LgorCitjb25maWcgU0VOU09SU19MTTg3CisJdHJpc3RhdGUgIk5hdGlvbmFsIFNlbWljb25kdWN0b3IgTE04NyIKKwlkZXBlbmRzIG9uIEhXTU9OICYmIEkyQyAmJiBFWFBFUklNRU5UQUwKKwlzZWxlY3QgSTJDX1NFTlNPUgorCWhlbHAKKwkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBOYXRpb25hbCBTZW1pY29uZHVjdG9yIExNODcKKwkgIHNlbnNvciBjaGlwcy4KKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgbG04Ny4KKworY29uZmlnIFNFTlNPUlNfTE05MAorCXRyaXN0YXRlICJOYXRpb25hbCBTZW1pY29uZHVjdG9yIExNOTAgYW5kIGNvbXBhdGlibGVzIgorCWRlcGVuZHMgb24gSFdNT04gJiYgSTJDCisJc2VsZWN0IEkyQ19TRU5TT1IKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBMTTkwLAorCSAgTE04NiwgTE04OSBhbmQgTE05OSwgQW5hbG9nIERldmljZXMgQURNMTAzMiBhbmQgTWF4aW0gTUFYNjY1NyBhbmQKKwkgIE1BWDY2NTggc2Vuc29yIGNoaXBzLgorCisJICBUaGUgQW5hbG9nIERldmljZXMgQURUNzQ2MSBzZW5zb3IgY2hpcCBpcyBhbHNvIHN1cHBvcnRlZCwgYnV0IG9ubHkKKwkgIGlmIGZvdW5kIGluIEFETTEwMzIgY29tcGF0aWJpbGl0eSBtb2RlLgorCisJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCBsbTkwLgorCitjb25maWcgU0VOU09SU19MTTkyCisJdHJpc3RhdGUgIk5hdGlvbmFsIFNlbWljb25kdWN0b3IgTE05MiBhbmQgY29tcGF0aWJsZXMiCisJZGVwZW5kcyBvbiBIV01PTiAmJiBJMkMgJiYgRVhQRVJJTUVOVEFMCisJc2VsZWN0IEkyQ19TRU5TT1IKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBMTTkyCisJICBhbmQgTWF4aW0gTUFYNjYzNSBzZW5zb3IgY2hpcHMuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIGxtOTIuCisKK2NvbmZpZyBTRU5TT1JTX01BWDE2MTkKKwl0cmlzdGF0ZSAiTWF4aW0gTUFYMTYxOSBzZW5zb3IgY2hpcCIKKwlkZXBlbmRzIG9uIEhXTU9OICYmIEkyQyAmJiBFWFBFUklNRU5UQUwKKwlzZWxlY3QgSTJDX1NFTlNPUgorCWhlbHAKKwkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBNQVgxNjE5IHNlbnNvciBjaGlwLgorCisJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCBtYXgxNjE5LgorCitjb25maWcgU0VOU09SU19QQzg3MzYwCisJdHJpc3RhdGUgIk5hdGlvbmFsIFNlbWljb25kdWN0b3IgUEM4NzM2MCBmYW1pbHkiCisJZGVwZW5kcyBvbiBIV01PTiAmJiBJMkMgJiYgRVhQRVJJTUVOVEFMCisJc2VsZWN0IEkyQ19TRU5TT1IKKwlzZWxlY3QgSTJDX0lTQQorCWhlbHAKKwkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBhY2Nlc3MgdG8gdGhlIGhhcmR3YXJlIG1vbml0b3JpbmcKKwkgIGZ1bmN0aW9ucyBvZiB0aGUgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBQQzg3MzZ4IFN1cGVyLUkvTyBjaGlwcy4KKwkgIFRoZSBQQzg3MzYwLCBQQzg3MzYzIGFuZCBQQzg3MzY0IG9ubHkgaGF2ZSBmYW4gbW9uaXRvcmluZyBhbmQKKwkgIGNvbnRyb2wuICBUaGUgUEM4NzM2NSBhbmQgUEM4NzM2NiBhZGRpdGlvbmFsbHkgaGF2ZSB2b2x0YWdlIGFuZAorCSAgdGVtcGVyYXR1cmUgbW9uaXRvcmluZy4KKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgcGM4NzM2MC4KKworY29uZmlnIFNFTlNPUlNfU0lTNTU5NQorCXRyaXN0YXRlICJTaWxpY29uIEludGVncmF0ZWQgU3lzdGVtcyBDb3JwLiBTaVM1NTk1IgorCWRlcGVuZHMgb24gSFdNT04gJiYgSTJDICYmIFBDSSAmJiBFWFBFUklNRU5UQUwKKwlzZWxlY3QgSTJDX1NFTlNPUgorCXNlbGVjdCBJMkNfSVNBCisJaGVscAorCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIHRoZSBpbnRlZ3JhdGVkIHNlbnNvcnMgaW4KKwkgIFNpUzU1OTUgU291dGggQnJpZGdlcy4KKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgc2lzNTU5NS4KKworY29uZmlnIFNFTlNPUlNfU01TQzQ3TTEKKwl0cmlzdGF0ZSAiU01TQyBMUEM0N00xMHggYW5kIGNvbXBhdGlibGVzIgorCWRlcGVuZHMgb24gSFdNT04gJiYgSTJDICYmIEVYUEVSSU1FTlRBTAorCXNlbGVjdCBJMkNfU0VOU09SCisJc2VsZWN0IEkyQ19JU0EKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgdGhlIGludGVncmF0ZWQgZmFuCisJICBtb25pdG9yaW5nIGFuZCBjb250cm9sIGNhcGFiaWxpdGllcyBvZiB0aGUgU01TQyBMUEM0N0IyN3gsCisJICBMUEM0N00xMHgsIExQQzQ3TTEzeCwgTFBDNDdNMTR4LCBMUEM0N00xNXggYW5kIExQQzQ3TTE5MiBjaGlwcy4KKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgc21zYzQ3bTEuCisKK2NvbmZpZyBTRU5TT1JTX1NNU0M0N0IzOTcKKwl0cmlzdGF0ZSAiU01TQyBMUEM0N0IzOTctTkMiCisJZGVwZW5kcyBvbiBIV01PTiAmJiBJMkMgJiYgRVhQRVJJTUVOVEFMCisJc2VsZWN0IEkyQ19TRU5TT1IKKwlzZWxlY3QgSTJDX0lTQQorCWhlbHAKKwkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciB0aGUgU01TQyBMUEM0N0IzOTctTkMKKwkgIHNlbnNvciBjaGlwLgorCisJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCBzbXNjNDdiMzk3LgorCitjb25maWcgU0VOU09SU19WSUE2ODZBCisJdHJpc3RhdGUgIlZJQTY4NkEiCisJZGVwZW5kcyBvbiBIV01PTiAmJiBJMkMgJiYgUENJCisJc2VsZWN0IEkyQ19TRU5TT1IKKwlzZWxlY3QgSTJDX0lTQQorCWhlbHAKKwkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciB0aGUgaW50ZWdyYXRlZCBzZW5zb3JzIGluCisJICBWaWEgNjg2QS9CIFNvdXRoIEJyaWRnZXMuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIHZpYTY4NmEuCisKK2NvbmZpZyBTRU5TT1JTX1c4Mzc4MUQKKwl0cmlzdGF0ZSAiV2luYm9uZCBXODM3ODFELCBXODM3ODJELCBXODM3ODNTLCBXODM2MjdIRiwgQXN1cyBBUzk5MTI3RiIKKwlkZXBlbmRzIG9uIEhXTU9OICYmIEkyQworCXNlbGVjdCBJMkNfU0VOU09SCisJaGVscAorCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIHRoZSBXaW5ib25kIFc4Mzc4eCBzZXJpZXMKKwkgIG9mIHNlbnNvciBjaGlwczogdGhlIFc4Mzc4MUQsIFc4Mzc4MkQsIFc4Mzc4M1MgYW5kIFc4MzYyN0hGLAorCSAgYW5kIHRoZSBzaW1pbGFyIEFzdXMgQVM5OTEyN0YuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIHc4Mzc4MWQuCisKK2NvbmZpZyBTRU5TT1JTX1c4M0w3ODVUUworCXRyaXN0YXRlICJXaW5ib25kIFc4M0w3ODVUUy1TIgorCWRlcGVuZHMgb24gSFdNT04gJiYgSTJDICYmIEVYUEVSSU1FTlRBTAorCXNlbGVjdCBJMkNfU0VOU09SCisJaGVscAorCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIHRoZSBXaW5ib25kIFc4M0w3ODVUUy1TCisJICBzZW5zb3IgY2hpcCwgd2hpY2ggaXMgdXNlZCBvbiB0aGUgQXN1cyBBN044WCwgYW1vbmcgb3RoZXIKKwkgIG1vdGhlcmJvYXJkcy4KKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgdzgzbDc4NXRzLgorCitjb25maWcgU0VOU09SU19XODM2MjdIRgorCXRyaXN0YXRlICJXaW5ib25kIFc4MzYyN0hGLCBXODM2MjdUSEYsIFc4MzYzN0hGLCBXODM2OTdIRiIKKwlkZXBlbmRzIG9uIEhXTU9OICYmIEkyQyAmJiBFWFBFUklNRU5UQUwKKwlzZWxlY3QgSTJDX1NFTlNPUgorCXNlbGVjdCBJMkNfSVNBCisJaGVscAorCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIHRoZSBXaW5ib25kIFc4MzZYNyBzZXJpZXMKKwkgIG9mIHNlbnNvciBjaGlwczogdGhlIFc4MzYyN0hGLCBXODM2MjdUSEYsIFc4MzYzN0hGLCBhbmQgdGhlIFc4MzY5N0hGCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIHc4MzYyN2hmLgorCitjb25maWcgU0VOU09SU19XODM2MjdFSEYKKwl0cmlzdGF0ZSAiV2luYm9uZCBXODM2MjdFSEYiCisJZGVwZW5kcyBvbiBIV01PTiAmJiBJMkMgJiYgRVhQRVJJTUVOVEFMCisJc2VsZWN0IEkyQ19TRU5TT1IKKwlzZWxlY3QgSTJDX0lTQQorCWhlbHAKKwkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBwcmVsaW1pbmFyeSBzdXBwb3J0IGZvciB0aGUgaGFyZHdhcmUKKwkgIG1vbml0b3JpbmcgZnVuY3Rpb25hbGl0eSBvZiB0aGUgV2luYm9uZCBXODM2MjdFSEYgU3VwZXItSS9PIGNoaXAuCisJICBPbmx5IGZhbiBhbmQgdGVtcGVyYXR1cmUgaW5wdXRzIGFyZSBzdXBwb3J0ZWQgYXQgdGhlIG1vbWVudCwgd2hpbGUKKwkgIHRoZSBjaGlwIGRvZXMgbXVjaCBtb3JlIHRoYW4gdGhhdC4KKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgdzgzNjI3ZWhmLgorCitjb25maWcgSFdNT05fREVCVUdfQ0hJUAorCWJvb2wgIkhhcmR3YXJlIE1vbml0b3JpbmcgQ2hpcCBkZWJ1Z2dpbmcgbWVzc2FnZXMiCisJZGVwZW5kcyBvbiBIV01PTgorCWRlZmF1bHQgbgorCWhlbHAKKwkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdGhlIEkyQyBjaGlwIGRyaXZlcnMgdG8gcHJvZHVjZSBhIGJ1bmNoIG9mCisJICBkZWJ1ZyBtZXNzYWdlcyB0byB0aGUgc3lzdGVtIGxvZy4gIFNlbGVjdCB0aGlzIGlmIHlvdSBhcmUgaGF2aW5nCisJICBhIHByb2JsZW0gd2l0aCBJMkMgc3VwcG9ydCBhbmQgd2FudCB0byBzZWUgbW9yZSBvZiB3aGF0IGlzIGdvaW5nCisJICBvbi4KKworZW5kbWVudQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9NYWtlZmlsZSBiL2RyaXZlcnMvaHdtb24vTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc4MTQwMwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvaHdtb24vTWFrZWZpbGUKQEAgLTAsMCArMSw0NCBAQAorIworIyBNYWtlZmlsZSBmb3Igc2Vuc29yIGNoaXAgZHJpdmVycy4KKyMKKworIyBhc2IxMDAsIHRoZW4gdzgzNzgxZCBnbyBmaXJzdCwgYXMgdGhleSBjYW4gb3ZlcnJpZGUgb3RoZXIgZHJpdmVycycgYWRkcmVzc2VzLgorb2JqLSQoQ09ORklHX1NFTlNPUlNfQVNCMTAwKQkrPSBhc2IxMDAubworb2JqLSQoQ09ORklHX1NFTlNPUlNfVzgzNjI3SEYpCSs9IHc4MzYyN2hmLm8KK29iai0kKENPTkZJR19TRU5TT1JTX1c4Mzc4MUQpCSs9IHc4Mzc4MWQubworCitvYmotJChDT05GSUdfU0VOU09SU19BRE0xMDIxKQkrPSBhZG0xMDIxLm8KK29iai0kKENPTkZJR19TRU5TT1JTX0FETTEwMjUpCSs9IGFkbTEwMjUubworb2JqLSQoQ09ORklHX1NFTlNPUlNfQURNMTAyNikJKz0gYWRtMTAyNi5vCitvYmotJChDT05GSUdfU0VOU09SU19BRE0xMDMxKQkrPSBhZG0xMDMxLm8KK29iai0kKENPTkZJR19TRU5TT1JTX0FETTkyNDApCSs9IGFkbTkyNDAubworb2JqLSQoQ09ORklHX1NFTlNPUlNfQVRYUDEpCSs9IGF0eHAxLm8KK29iai0kKENPTkZJR19TRU5TT1JTX0RTMTYyMSkJKz0gZHMxNjIxLm8KK29iai0kKENPTkZJR19TRU5TT1JTX0ZTQ0hFUikJKz0gZnNjaGVyLm8KK29iai0kKENPTkZJR19TRU5TT1JTX0ZTQ1BPUykJKz0gZnNjcG9zLm8KK29iai0kKENPTkZJR19TRU5TT1JTX0dMNTE4U00pCSs9IGdsNTE4c20ubworb2JqLSQoQ09ORklHX1NFTlNPUlNfR0w1MjBTTSkJKz0gZ2w1MjBzbS5vCitvYmotJChDT05GSUdfU0VOU09SU19JVDg3KQkrPSBpdDg3Lm8KK29iai0kKENPTkZJR19TRU5TT1JTX0xNNjMpCSs9IGxtNjMubworb2JqLSQoQ09ORklHX1NFTlNPUlNfTE03NSkJKz0gbG03NS5vCitvYmotJChDT05GSUdfU0VOU09SU19MTTc3KQkrPSBsbTc3Lm8KK29iai0kKENPTkZJR19TRU5TT1JTX0xNNzgpCSs9IGxtNzgubworb2JqLSQoQ09ORklHX1NFTlNPUlNfTE04MCkJKz0gbG04MC5vCitvYmotJChDT05GSUdfU0VOU09SU19MTTgzKQkrPSBsbTgzLm8KK29iai0kKENPTkZJR19TRU5TT1JTX0xNODUpCSs9IGxtODUubworb2JqLSQoQ09ORklHX1NFTlNPUlNfTE04NykJKz0gbG04Ny5vCitvYmotJChDT05GSUdfU0VOU09SU19MTTkwKQkrPSBsbTkwLm8KK29iai0kKENPTkZJR19TRU5TT1JTX0xNOTIpCSs9IGxtOTIubworb2JqLSQoQ09ORklHX1NFTlNPUlNfTUFYMTYxOSkJKz0gbWF4MTYxOS5vCitvYmotJChDT05GSUdfU0VOU09SU19QQzg3MzYwKQkrPSBwYzg3MzYwLm8KK29iai0kKENPTkZJR19TRU5TT1JTX1NJUzU1OTUpCSs9IHNpczU1OTUubworb2JqLSQoQ09ORklHX1NFTlNPUlNfU01TQzQ3QjM5NykrPSBzbXNjNDdiMzk3Lm8KK29iai0kKENPTkZJR19TRU5TT1JTX1NNU0M0N00xKQkrPSBzbXNjNDdtMS5vCitvYmotJChDT05GSUdfU0VOU09SU19WSUE2ODZBKQkrPSB2aWE2ODZhLm8KK29iai0kKENPTkZJR19TRU5TT1JTX1c4MzYyN0VIRikJKz0gdzgzNjI3ZWhmLm8KK29iai0kKENPTkZJR19TRU5TT1JTX1c4M0w3ODVUUykJKz0gdzgzbDc4NXRzLm8KKworaWZlcSAoJChDT05GSUdfSFdNT05fREVCVUdfQ0hJUCkseSkKK0VYVFJBX0NGTEFHUyArPSAtRERFQlVHCitlbmRpZgorCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9jaGlwcy9hZG0xMDIxLmMgYi9kcml2ZXJzL2h3bW9uL2FkbTEwMjEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9pMmMvY2hpcHMvYWRtMTAyMS5jCnJlbmFtZSB0byBkcml2ZXJzL2h3bW9uL2FkbTEwMjEuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvYWRtMTAyNS5jIGIvZHJpdmVycy9od21vbi9hZG0xMDI1LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvaTJjL2NoaXBzL2FkbTEwMjUuYwpyZW5hbWUgdG8gZHJpdmVycy9od21vbi9hZG0xMDI1LmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL2FkbTEwMjYuYyBiL2RyaXZlcnMvaHdtb24vYWRtMTAyNi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2kyYy9jaGlwcy9hZG0xMDI2LmMKcmVuYW1lIHRvIGRyaXZlcnMvaHdtb24vYWRtMTAyNi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9jaGlwcy9hZG0xMDMxLmMgYi9kcml2ZXJzL2h3bW9uL2FkbTEwMzEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9pMmMvY2hpcHMvYWRtMTAzMS5jCnJlbmFtZSB0byBkcml2ZXJzL2h3bW9uL2FkbTEwMzEuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvYWRtOTI0MC5jIGIvZHJpdmVycy9od21vbi9hZG05MjQwLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvaTJjL2NoaXBzL2FkbTkyNDAuYwpyZW5hbWUgdG8gZHJpdmVycy9od21vbi9hZG05MjQwLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL2FzYjEwMC5jIGIvZHJpdmVycy9od21vbi9hc2IxMDAuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9pMmMvY2hpcHMvYXNiMTAwLmMKcmVuYW1lIHRvIGRyaXZlcnMvaHdtb24vYXNiMTAwLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL2F0eHAxLmMgYi9kcml2ZXJzL2h3bW9uL2F0eHAxLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvaTJjL2NoaXBzL2F0eHAxLmMKcmVuYW1lIHRvIGRyaXZlcnMvaHdtb24vYXR4cDEuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvZHMxNjIxLmMgYi9kcml2ZXJzL2h3bW9uL2RzMTYyMS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2kyYy9jaGlwcy9kczE2MjEuYwpyZW5hbWUgdG8gZHJpdmVycy9od21vbi9kczE2MjEuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvZnNjaGVyLmMgYi9kcml2ZXJzL2h3bW9uL2ZzY2hlci5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2kyYy9jaGlwcy9mc2NoZXIuYwpyZW5hbWUgdG8gZHJpdmVycy9od21vbi9mc2NoZXIuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvZnNjcG9zLmMgYi9kcml2ZXJzL2h3bW9uL2ZzY3Bvcy5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2kyYy9jaGlwcy9mc2Nwb3MuYwpyZW5hbWUgdG8gZHJpdmVycy9od21vbi9mc2Nwb3MuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvZ2w1MThzbS5jIGIvZHJpdmVycy9od21vbi9nbDUxOHNtLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvaTJjL2NoaXBzL2dsNTE4c20uYwpyZW5hbWUgdG8gZHJpdmVycy9od21vbi9nbDUxOHNtLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL2dsNTIwc20uYyBiL2RyaXZlcnMvaHdtb24vZ2w1MjBzbS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2kyYy9jaGlwcy9nbDUyMHNtLmMKcmVuYW1lIHRvIGRyaXZlcnMvaHdtb24vZ2w1MjBzbS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9jaGlwcy9pdDg3LmMgYi9kcml2ZXJzL2h3bW9uL2l0ODcuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9pMmMvY2hpcHMvaXQ4Ny5jCnJlbmFtZSB0byBkcml2ZXJzL2h3bW9uL2l0ODcuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvbG02My5jIGIvZHJpdmVycy9od21vbi9sbTYzLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvaTJjL2NoaXBzL2xtNjMuYwpyZW5hbWUgdG8gZHJpdmVycy9od21vbi9sbTYzLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL2xtNzUuYyBiL2RyaXZlcnMvaHdtb24vbG03NS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2kyYy9jaGlwcy9sbTc1LmMKcmVuYW1lIHRvIGRyaXZlcnMvaHdtb24vbG03NS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9jaGlwcy9sbTc1LmggYi9kcml2ZXJzL2h3bW9uL2xtNzUuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9pMmMvY2hpcHMvbG03NS5oCnJlbmFtZSB0byBkcml2ZXJzL2h3bW9uL2xtNzUuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvbG03Ny5jIGIvZHJpdmVycy9od21vbi9sbTc3LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvaTJjL2NoaXBzL2xtNzcuYwpyZW5hbWUgdG8gZHJpdmVycy9od21vbi9sbTc3LmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL2xtNzguYyBiL2RyaXZlcnMvaHdtb24vbG03OC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2kyYy9jaGlwcy9sbTc4LmMKcmVuYW1lIHRvIGRyaXZlcnMvaHdtb24vbG03OC5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9jaGlwcy9sbTgwLmMgYi9kcml2ZXJzL2h3bW9uL2xtODAuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9pMmMvY2hpcHMvbG04MC5jCnJlbmFtZSB0byBkcml2ZXJzL2h3bW9uL2xtODAuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvbG04My5jIGIvZHJpdmVycy9od21vbi9sbTgzLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvaTJjL2NoaXBzL2xtODMuYwpyZW5hbWUgdG8gZHJpdmVycy9od21vbi9sbTgzLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL2xtODUuYyBiL2RyaXZlcnMvaHdtb24vbG04NS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2kyYy9jaGlwcy9sbTg1LmMKcmVuYW1lIHRvIGRyaXZlcnMvaHdtb24vbG04NS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9jaGlwcy9sbTg3LmMgYi9kcml2ZXJzL2h3bW9uL2xtODcuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9pMmMvY2hpcHMvbG04Ny5jCnJlbmFtZSB0byBkcml2ZXJzL2h3bW9uL2xtODcuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvbG05MC5jIGIvZHJpdmVycy9od21vbi9sbTkwLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvaTJjL2NoaXBzL2xtOTAuYwpyZW5hbWUgdG8gZHJpdmVycy9od21vbi9sbTkwLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL2xtOTIuYyBiL2RyaXZlcnMvaHdtb24vbG05Mi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2kyYy9jaGlwcy9sbTkyLmMKcmVuYW1lIHRvIGRyaXZlcnMvaHdtb24vbG05Mi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9jaGlwcy9tYXgxNjE5LmMgYi9kcml2ZXJzL2h3bW9uL21heDE2MTkuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9pMmMvY2hpcHMvbWF4MTYxOS5jCnJlbmFtZSB0byBkcml2ZXJzL2h3bW9uL21heDE2MTkuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvcGM4NzM2MC5jIGIvZHJpdmVycy9od21vbi9wYzg3MzYwLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvaTJjL2NoaXBzL3BjODczNjAuYwpyZW5hbWUgdG8gZHJpdmVycy9od21vbi9wYzg3MzYwLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL3NpczU1OTUuYyBiL2RyaXZlcnMvaHdtb24vc2lzNTU5NS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2kyYy9jaGlwcy9zaXM1NTk1LmMKcmVuYW1lIHRvIGRyaXZlcnMvaHdtb24vc2lzNTU5NS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9jaGlwcy9zbXNjNDdiMzk3LmMgYi9kcml2ZXJzL2h3bW9uL3Ntc2M0N2IzOTcuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9pMmMvY2hpcHMvc21zYzQ3YjM5Ny5jCnJlbmFtZSB0byBkcml2ZXJzL2h3bW9uL3Ntc2M0N2IzOTcuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvc21zYzQ3bTEuYyBiL2RyaXZlcnMvaHdtb24vc21zYzQ3bTEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9pMmMvY2hpcHMvc21zYzQ3bTEuYwpyZW5hbWUgdG8gZHJpdmVycy9od21vbi9zbXNjNDdtMS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9jaGlwcy92aWE2ODZhLmMgYi9kcml2ZXJzL2h3bW9uL3ZpYTY4NmEuYwpzaW1pbGFyaXR5IGluZGV4IDk4JQpyZW5hbWUgZnJvbSBkcml2ZXJzL2kyYy9jaGlwcy92aWE2ODZhLmMKcmVuYW1lIHRvIGRyaXZlcnMvaHdtb24vdmlhNjg2YS5jCmluZGV4IDEzN2Q5YjcuLjE2NGQ0NzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2NoaXBzL3ZpYTY4NmEuYworKysgYi9kcml2ZXJzL2h3bW9uL3ZpYTY4NmEuYwpAQCAtMSw5ICsxLDkgQEAKIC8qCiAgICAgdmlhNjg2YS5jIC0gUGFydCBvZiBsbV9zZW5zb3JzLCBMaW51eCBrZXJuZWwgbW9kdWxlcwotICAgICAgICAgICAgICAgIGZvciBoYXJkd2FyZSBtb25pdG9yaW5nCisJCWZvciBoYXJkd2FyZSBtb25pdG9yaW5nCiAKICAgICBDb3B5cmlnaHQgKGMpIDE5OTggLSAyMDAyICBGcm9kbyBMb29pamFhcmQgPGZyb2RvbEBkZHMubmw+LAotICAgICAgICAgICAgICAgICAgICAgICAgS3n2c3RpIE3kbGtraSA8a21hbGtraUBjYy5odXQuZmk+LAorCQkJS3n2c3RpIE3kbGtraSA8a21hbGtraUBjYy5odXQuZmk+LAogCQkJTWFyayBTdHVkZWJha2VyIDxtZHN4eXoxMjNAeWFob28uY29tPiwKIAkJCWFuZCBCb2IgRG91Z2hlcnR5IDxib2JkQHN0YW5mb3JkLmVkdT4KICAgICAoU29tZSBjb252ZXJzaW9uLWZhY3RvciBkYXRhIHdlcmUgY29udHJpYnV0ZWQgYnkgSm9uYXRoYW4gVGVoIFNvb24gWWV3CkBAIC0xNzEsMTggKzE3MSwxOCBAQAogLyoqKioqKioqIFRFTVAgQ09OVkVSU0lPTlMgKEJvYiBEb3VnaGVydHkpICoqKioqKioqKi8KIC8qIGxpbmVhciBmaXRzIGZyb20gSFdNb24uY3BwIChDb3B5cmlnaHQgMTk5OC0yMDAwIEpvbmF0aGFuIFRlaCBTb29uIFlldykKICAgICAgIGlmKHRlbXA8MTY5KQotICAgICAgICAgICAgICByZXR1cm4gZG91YmxlKHRlbXApKjAuNDI3LTMyLjA4OworCSAgICAgIHJldHVybiBkb3VibGUodGVtcCkqMC40MjctMzIuMDg7CiAgICAgICBlbHNlIGlmKHRlbXA+PTE2OSAmJiB0ZW1wPD0yMDIpCi0gICAgICAgICAgICAgIHJldHVybiBkb3VibGUodGVtcCkqMC41ODItNTguMTY7CisJICAgICAgcmV0dXJuIGRvdWJsZSh0ZW1wKSowLjU4Mi01OC4xNjsKICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgcmV0dXJuIGRvdWJsZSh0ZW1wKSowLjkyNC0xMjcuMzM7CisJICAgICAgcmV0dXJuIGRvdWJsZSh0ZW1wKSowLjkyNC0xMjcuMzM7CiAKICBBIGZpZnRoLW9yZGVyIHBvbHlub21pYWwgZml0cyB0aGUgdW5vZmZpY2lhbCBkYXRhIChwcm92aWRlZCBieSBBbGV4IHZhbgogIEthYW0gPGRhcmtzaWRlQGNoZWxsby5ubD4pIGEgYml0IGJldHRlci4gIEl0IGFsc28gZ2l2ZSBtb3JlIHJlYXNvbmFibGUKICBudW1iZXJzIG9uIG15IG1hY2hpbmUgKGllLiB0aGV5IGFncmVlIHdpdGggd2hhdCBteSBCSU9TIHRlbGxzIG1lKS4KICBIZXJlJ3MgdGhlIGZpZnRoLW9yZGVyIGZpdCB0byB0aGUgOC1iaXQgZGF0YToKICB0ZW1wID0gMS42MjUwOTNlLTEwKnZhbF41IC0gMS4wMDE2MzJlLTA3KnZhbF40ICsgMi40NTc2NTNlLTA1KnZhbF4zIC0KLSAgICAgICAgMi45Njc2MTllLTAzKnZhbF4yICsgMi4xNzUxNDRlLTAxKnZhbCAtIDcuMDkwMDY3ZSswLgorCTIuOTY3NjE5ZS0wMyp2YWxeMiArIDIuMTc1MTQ0ZS0wMSp2YWwgLSA3LjA5MDA2N2UrMC4KIAogICgyMDAwLTEwLTI1LSBSRkQ6IHRoYW5rcyB0byBVd2UgQW5kZXJzZW4gPHVhbmRlcnNlbkBtYXlhaC5jb20+IGZvcgogIGZpbmRpbmcgbXkgdHlwb3MgaW4gdGhpcyBmb3JtdWxhISkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL3c4MzYyN2VoZi5jIGIvZHJpdmVycy9od21vbi93ODM2MjdlaGYuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9pMmMvY2hpcHMvdzgzNjI3ZWhmLmMKcmVuYW1lIHRvIGRyaXZlcnMvaHdtb24vdzgzNjI3ZWhmLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL3c4MzYyN2hmLmMgYi9kcml2ZXJzL2h3bW9uL3c4MzYyN2hmLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvaTJjL2NoaXBzL3c4MzYyN2hmLmMKcmVuYW1lIHRvIGRyaXZlcnMvaHdtb24vdzgzNjI3aGYuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvdzgzNzgxZC5jIGIvZHJpdmVycy9od21vbi93ODM3ODFkLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvaTJjL2NoaXBzL3c4Mzc4MWQuYwpyZW5hbWUgdG8gZHJpdmVycy9od21vbi93ODM3ODFkLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL3c4M2w3ODV0cy5jIGIvZHJpdmVycy9od21vbi93ODNsNzg1dHMuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9pMmMvY2hpcHMvdzgzbDc4NXRzLmMKcmVuYW1lIHRvIGRyaXZlcnMvaHdtb24vdzgzbDc4NXRzLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2FsZ29zL2kyYy1hbGdvLWl0ZS5jIGIvZHJpdmVycy9pMmMvYWxnb3MvaTJjLWFsZ28taXRlLmMKaW5kZXggNjhlOWU2OC4uZTZjYWUzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYWxnb3MvaTJjLWFsZ28taXRlLmMKKysrIGIvZHJpdmVycy9pMmMvYWxnb3MvaTJjLWFsZ28taXRlLmMKQEAgLTIwOCw3ICsyMDgsNyBAQAogCQlnb3RvIGJhaWxvdXQ7CiAJfQogCXNkYWxvKGFkYXApOwotCXByaW50aygidGVzdF9idXM6MSBzY2w6ICVkICBzZGE6ICVkIFxuIixnZXRzY2woYWRhcCksCisJcHJpbnRrKCJ0ZXN0X2J1czoxIHNjbDogJWQgIHNkYTogJWRcbiIsIGdldHNjbChhZGFwKSwKIAkgICAgICAgZ2V0c2RhKGFkYXApKTsKIAlpZiAoIDAgIT0gZ2V0c2RhKGFkYXApICkgewogCQlwcmludGsoInRlc3RfYnVzOiAlcyBTREEgc3R1Y2sgaGlnaCFcbiIsbmFtZSk7CkBAIC0yMjEsNyArMjIxLDcgQEAKIAkJZ290byBiYWlsb3V0OwogCX0JCQogCXNkYWhpKGFkYXApOwotCXByaW50aygidGVzdF9idXM6MiBzY2w6ICVkICBzZGE6ICVkIFxuIixnZXRzY2woYWRhcCksCisJcHJpbnRrKCJ0ZXN0X2J1czoyIHNjbDogJWQgIHNkYTogJWRcbiIsIGdldHNjbChhZGFwKSwKIAkgICAgICAgZ2V0c2RhKGFkYXApKTsKIAlpZiAoIDAgPT0gZ2V0c2RhKGFkYXApICkgewogCQlwcmludGsoInRlc3RfYnVzOiAlcyBTREEgc3R1Y2sgbG93IVxuIixuYW1lKTsKQEAgLTIzNCw3ICsyMzQsNyBAQAogCWdvdG8gYmFpbG91dDsKIAl9CiAJc2NsbG8oYWRhcCk7Ci0JcHJpbnRrKCJ0ZXN0X2J1czozIHNjbDogJWQgIHNkYTogJWQgXG4iLGdldHNjbChhZGFwKSwKKwlwcmludGsoInRlc3RfYnVzOjMgc2NsOiAlZCAgc2RhOiAlZFxuIiwgZ2V0c2NsKGFkYXApLAogCSAgICAgICBnZXRzZGEoYWRhcCkpOwogCWlmICggMCAhPSBnZXRzY2woYWRhcCkgKSB7CiAKQEAgLTI0Nyw3ICsyNDcsNyBAQAogCQlnb3RvIGJhaWxvdXQ7CiAJfQogCXNjbGhpKGFkYXApOwotCXByaW50aygidGVzdF9idXM6NCBzY2w6ICVkICBzZGE6ICVkIFxuIixnZXRzY2woYWRhcCksCisJcHJpbnRrKCJ0ZXN0X2J1czo0IHNjbDogJWQgIHNkYTogJWRcbiIsIGdldHNjbChhZGFwKSwKIAkgICAgICAgZ2V0c2RhKGFkYXApKTsKIAlpZiAoIDAgPT0gZ2V0c2NsKGFkYXApICkgewogCQlwcmludGsoInRlc3RfYnVzOiAlcyBTQ0wgc3R1Y2sgbG93IVxuIixuYW1lKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaTgwMS5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pODAxLmMKaW5kZXggNDVlNmVmYjEuLjBhYjdlMzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaTgwMS5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaTgwMS5jCkBAIC0xOTQsNyArMTk0LDcgQEAKIAkvKiBNYWtlIHN1cmUgdGhlIFNNQnVzIGhvc3QgaXMgcmVhZHkgdG8gc3RhcnQgdHJhbnNtaXR0aW5nICovCiAJLyogMHgxZiA9IEZhaWxlZCwgQnVzX0VyciwgRGV2X0VyciwgSW50ciwgSG9zdF9CdXN5ICovCiAJaWYgKCh0ZW1wID0gKDB4MWYgJiBpbmJfcChTTUJIU1RTVFMpKSkgIT0gMHgwMCkgewotCQlkZXZfZGJnKCZJODAxX2Rldi0+ZGV2LCAiU01CdXMgYnVzeSAoJTAyeCkuIFJlc2V0dGluZy4uLiBcbiIsCisJCWRldl9kYmcoJkk4MDFfZGV2LT5kZXYsICJTTUJ1cyBidXN5ICglMDJ4KS4gUmVzZXR0aW5nLi4uXG4iLAogCQkJdGVtcCk7CiAJCW91dGJfcCh0ZW1wLCBTTUJIU1RTVFMpOwogCQlpZiAoKHRlbXAgPSAoMHgxZiAmIGluYl9wKFNNQkhTVFNUUykpKSAhPSAweDAwKSB7CkBAIC0zMTUsNyArMzE1LDcgQEAKIAkJfQogCQlpZiAodGVtcCAmIGVycm1hc2spIHsKIAkJCWRldl9kYmcoJkk4MDFfZGV2LT5kZXYsICJTTUJ1cyBidXN5ICglMDJ4KS4gIgotCQkJCSJSZXNldHRpbmcuLi4gXG4iLCB0ZW1wKTsKKwkJCQkiUmVzZXR0aW5nLi4uXG4iLCB0ZW1wKTsKIAkJCW91dGJfcCh0ZW1wLCBTTUJIU1RTVFMpOwogCQkJaWYgKCgodGVtcCA9IGluYl9wKFNNQkhTVFNUUykpICYgZXJybWFzaykgIT0gMHgwMCkgewogCQkJCWRldl9lcnIoJkk4MDFfZGV2LT5kZXYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXBpaXg0LmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXBpaXg0LmMKaW5kZXggMWY4MGJhOS4uNmQzNGVlMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1waWl4NC5jCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcGlpeDQuYwpAQCAtMjQzLDcgKzI0Myw3IEBACiAJLyogTWFrZSBzdXJlIHRoZSBTTUJ1cyBob3N0IGlzIHJlYWR5IHRvIHN0YXJ0IHRyYW5zbWl0dGluZyAqLwogCWlmICgodGVtcCA9IGluYl9wKFNNQkhTVFNUUykpICE9IDB4MDApIHsKIAkJZGV2X2RiZygmcGlpeDRfYWRhcHRlci5kZXYsICJTTUJ1cyBidXN5ICglMDJ4KS4gIgotCQkJIlJlc2V0dGluZy4uLiBcbiIsIHRlbXApOworCQkJIlJlc2V0dGluZy4uLlxuIiwgdGVtcCk7CiAJCW91dGJfcCh0ZW1wLCBTTUJIU1RTVFMpOwogCQlpZiAoKHRlbXAgPSBpbmJfcChTTUJIU1RTVFMpKSAhPSAweDAwKSB7CiAJCQlkZXZfZXJyKCZwaWl4NF9hZGFwdGVyLmRldiwgIkZhaWxlZCEgKCUwMngpXG4iLCB0ZW1wKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtc2lzNTU5NS5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zaXM1NTk1LmMKaW5kZXggMmI1OTExYy4uYmJkNWU0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zaXM1NTk1LmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zaXM1NTk1LmMKQEAgLTIyOCw3ICsyMjgsNyBAQAogCS8qIE1ha2Ugc3VyZSB0aGUgU01CdXMgaG9zdCBpcyByZWFkeSB0byBzdGFydCB0cmFuc21pdHRpbmcgKi8KIAl0ZW1wID0gc2lzNTU5NV9yZWFkKFNNQl9TVFNfTE8pICsgKHNpczU1OTVfcmVhZChTTUJfU1RTX0hJKSA8PCA4KTsKIAlpZiAodGVtcCAhPSAweDAwKSB7Ci0JCWRldl9kYmcoJmFkYXAtPmRldiwgIlNNQnVzIGJ1c3kgKCUwNHgpLiBSZXNldHRpbmcuLi4gXG4iLCB0ZW1wKTsKKwkJZGV2X2RiZygmYWRhcC0+ZGV2LCAiU01CdXMgYnVzeSAoJTA0eCkuIFJlc2V0dGluZy4uLlxuIiwgdGVtcCk7CiAJCXNpczU1OTVfd3JpdGUoU01CX1NUU19MTywgdGVtcCAmIDB4ZmYpOwogCQlzaXM1NTk1X3dyaXRlKFNNQl9TVFNfSEksIHRlbXAgPj4gOCk7CiAJCWlmICgodGVtcCA9IHNpczU1OTVfcmVhZChTTUJfU1RTX0xPKSArIChzaXM1NTk1X3JlYWQoU01CX1NUU19ISSkgPDwgOCkpICE9IDB4MDApIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL0tjb25maWcgYi9kcml2ZXJzL2kyYy9jaGlwcy9LY29uZmlnCmluZGV4IGEwOTgyZGEuLjQzZjcwZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2NoaXBzL0tjb25maWcKKysrIGIvZHJpdmVycy9pMmMvY2hpcHMvS2NvbmZpZwpAQCAtMSw0MDkgKzEsMTIgQEAKICMKLSMgSTJDIFNlbnNvciBhbmQgIm90aGVyIiBjaGlwIGNvbmZpZ3VyYXRpb24KKyMgTWlzY2VsbGFuZW91cyBJMkMgY2hpcCBkcml2ZXJzIGNvbmZpZ3VyYXRpb24KICMKIAotbWVudSAiSGFyZHdhcmUgU2Vuc29ycyBDaGlwIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBJMkMKLQogY29uZmlnIEkyQ19TRU5TT1IKIAl0cmlzdGF0ZQogCWRlZmF1bHQgbgogCi1jb25maWcgU0VOU09SU19BRE0xMDIxCi0JdHJpc3RhdGUgIkFuYWxvZyBEZXZpY2VzIEFETTEwMjEgYW5kIGNvbXBhdGlibGVzIgotCWRlcGVuZHMgb24gSTJDCi0Jc2VsZWN0IEkyQ19TRU5TT1IKLQloZWxwCi0JICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgQW5hbG9nIERldmljZXMgQURNMTAyMSAKLQkgIGFuZCBBRE0xMDIzIHNlbnNvciBjaGlwcyBhbmQgY2xvbmVzOiBNYXhpbSBNQVgxNjE3IGFuZCBNQVgxNjE3QSwKLQkgIEdlbmVzeXMgTG9naWMgR0w1MjNTTSwgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBMTTg0LCBUSSBUSE1DMTAsCi0JICBhbmQgdGhlIFhFT04gcHJvY2Vzc29yIGJ1aWx0LWluIHNlbnNvci4KLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgYWRtMTAyMS4KLQotY29uZmlnIFNFTlNPUlNfQURNMTAyNQotCXRyaXN0YXRlICJBbmFsb2cgRGV2aWNlcyBBRE0xMDI1IGFuZCBjb21wYXRpYmxlcyIKLQlkZXBlbmRzIG9uIEkyQyAmJiBFWFBFUklNRU5UQUwKLQlzZWxlY3QgSTJDX1NFTlNPUgotCWhlbHAKLQkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBBbmFsb2cgRGV2aWNlcyBBRE0xMDI1Ci0JICBhbmQgUGhpbGlwcyBORTE2MTkgc2Vuc29yIGNoaXBzLgotCi0JICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCi0JICB3aWxsIGJlIGNhbGxlZCBhZG0xMDI1LgotCi1jb25maWcgU0VOU09SU19BRE0xMDI2Ci0JdHJpc3RhdGUgIkFuYWxvZyBEZXZpY2VzIEFETTEwMjYgYW5kIGNvbXBhdGlibGVzIgotCWRlcGVuZHMgb24gSTJDICYmIEVYUEVSSU1FTlRBTAotCXNlbGVjdCBJMkNfU0VOU09SCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIEFuYWxvZyBEZXZpY2VzIEFETTEwMjYKLQkgIHNlbnNvciBjaGlwLgotCi0JICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCi0JICB3aWxsIGJlIGNhbGxlZCBhZG0xMDI2LgotCi1jb25maWcgU0VOU09SU19BRE0xMDMxCi0JdHJpc3RhdGUgIkFuYWxvZyBEZXZpY2VzIEFETTEwMzEgYW5kIGNvbXBhdGlibGVzIgotCWRlcGVuZHMgb24gSTJDICYmIEVYUEVSSU1FTlRBTAotCXNlbGVjdCBJMkNfU0VOU09SCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIEFuYWxvZyBEZXZpY2VzIEFETTEwMzEgCi0JICBhbmQgQURNMTAzMCBzZW5zb3IgY2hpcHMuCi0KLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGFkbTEwMzEuCi0KLWNvbmZpZyBTRU5TT1JTX0FETTkyNDAKLQl0cmlzdGF0ZSAiQW5hbG9nIERldmljZXMgQURNOTI0MCBhbmQgY29tcGF0aWJsZXMiCi0JZGVwZW5kcyBvbiBJMkMgJiYgRVhQRVJJTUVOVEFMCi0Jc2VsZWN0IEkyQ19TRU5TT1IKLQloZWxwCi0JICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgQW5hbG9nIERldmljZXMgQURNOTI0MCwKLQkgIERhbGxhcyBEUzE3ODAsIE5hdGlvbmFsIFNlbWljb25kdWN0b3IgTE04MSBzZW5zb3IgY2hpcHMuCi0KLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGFkbTkyNDAuCi0KLWNvbmZpZyBTRU5TT1JTX0FTQjEwMAotCXRyaXN0YXRlICJBc3VzIEFTQjEwMCBCYWNoIgotCWRlcGVuZHMgb24gSTJDICYmIEVYUEVSSU1FTlRBTAotCXNlbGVjdCBJMkNfU0VOU09SCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIHRoZSBBU0IxMDAgQmFjaCBzZW5zb3IKLQkgIGNoaXAgZm91bmQgb24gc29tZSBBc3VzIG1haW5ib2FyZHMuCi0KLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGFzYjEwMC4KLQotY29uZmlnIFNFTlNPUlNfQVRYUDEKLQl0cmlzdGF0ZSAiQXR0YW5zaWMgQVRYUDEgVklEIGNvbnRyb2xsZXIiCi0JZGVwZW5kcyBvbiBJMkMgJiYgRVhQRVJJTUVOVEFMCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIHRoZSBBdHRhbnNpYyBBVFhQMSBWSUQKLQkgIGNvbnRyb2xsZXIuCi0KLQkgIElmIHlvdXIgYm9hcmQgaGF2ZSBzdWNoIGEgY2hpcCwgeW91IGFyZSBhYmxlIHRvIGNvbnRyb2wgeW91ciBDUFUKLQkgIGNvcmUgYW5kIG90aGVyIHZvbHRhZ2VzLgotCi0JICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCi0JICB3aWxsIGJlIGNhbGxlZCBhdHhwMS4KLQotY29uZmlnIFNFTlNPUlNfRFMxNjIxCi0JdHJpc3RhdGUgIkRhbGxhcyBTZW1pY29uZHVjdG9yIERTMTYyMSBhbmQgRFMxNjI1IgotCWRlcGVuZHMgb24gSTJDICYmIEVYUEVSSU1FTlRBTAotCXNlbGVjdCBJMkNfU0VOU09SCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIERhbGxhcyBTZW1pY29uZHVjdG9yCi0JICBEUzE2MjEgYW5kIERTMTYyNSBzZW5zb3IgY2hpcHMuIAotCi0JICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCi0JICB3aWxsIGJlIGNhbGxlZCBkczE2MjEuCi0KLWNvbmZpZyBTRU5TT1JTX0ZTQ0hFUgotCXRyaXN0YXRlICJGU0MgSGVybWVzIgotCWRlcGVuZHMgb24gSTJDICYmIEVYUEVSSU1FTlRBTAotCXNlbGVjdCBJMkNfU0VOU09SCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIEZ1aml0c3UgU2llbWVucwotCSAgQ29tcHV0ZXJzIEhlcm1lcyBzZW5zb3IgY2hpcHMuCi0KLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGZzY2hlci4KLQotY29uZmlnIFNFTlNPUlNfRlNDUE9TCi0JdHJpc3RhdGUgIkZTQyBQb3NlaWRvbiIKLQlkZXBlbmRzIG9uIEkyQyAmJiBFWFBFUklNRU5UQUwKLQlzZWxlY3QgSTJDX1NFTlNPUgotCWhlbHAKLQkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBGdWppdHN1IFNpZW1lbnMKLQkgIENvbXB1dGVycyBQb3NlaWRvbiBzZW5zb3IgY2hpcHMuCi0KLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGZzY3Bvcy4KLQotY29uZmlnIFNFTlNPUlNfR0w1MThTTQotCXRyaXN0YXRlICJHZW5lc3lzIExvZ2ljIEdMNTE4U00iCi0JZGVwZW5kcyBvbiBJMkMKLQlzZWxlY3QgSTJDX1NFTlNPUgotCWhlbHAKLQkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBHZW5lc3lzIExvZ2ljIEdMNTE4U00KLQkgIHNlbnNvciBjaGlwcy4KLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgZ2w1MThzbS4KLQotY29uZmlnIFNFTlNPUlNfR0w1MjBTTQotCXRyaXN0YXRlICJHZW5lc3lzIExvZ2ljIEdMNTIwU00iCi0JZGVwZW5kcyBvbiBJMkMgJiYgRVhQRVJJTUVOVEFMCi0Jc2VsZWN0IEkyQ19TRU5TT1IKLQloZWxwCi0JICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgR2VuZXN5cyBMb2dpYyBHTDUyMFNNCi0JICBzZW5zb3IgY2hpcHMuCi0KLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGdsNTIwc20uCi0KLWNvbmZpZyBTRU5TT1JTX0lUODcKLQl0cmlzdGF0ZSAiSVRFIElUODd4eCBhbmQgY29tcGF0aWJsZXMiCi0JZGVwZW5kcyBvbiBJMkMKLQlzZWxlY3QgSTJDX1NFTlNPUgotCWhlbHAKLQkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBJVEUgSVQ4N3h4IHNlbnNvciBjaGlwcwotCSAgYW5kIGNsb25lczogU2lTOTYwLgotCi0JICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCi0JICB3aWxsIGJlIGNhbGxlZCBpdDg3LgotCi1jb25maWcgU0VOU09SU19MTTYzCi0JdHJpc3RhdGUgIk5hdGlvbmFsIFNlbWljb25kdWN0b3IgTE02MyIKLQlkZXBlbmRzIG9uIEkyQyAmJiBFWFBFUklNRU5UQUwKLQlzZWxlY3QgSTJDX1NFTlNPUgotCWhlbHAKLQkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciB0aGUgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvcgotCSAgTE02MyByZW1vdGUgZGlvZGUgZGlnaXRhbCB0ZW1wZXJhdHVyZSBzZW5zb3Igd2l0aCBpbnRlZ3JhdGVkIGZhbgotCSAgY29udHJvbC4gIFN1Y2ggY2hpcHMgYXJlIGZvdW5kIG9uIHRoZSBUeWFuIFM0ODgyIChUaHVuZGVyIEs4UVMgUHJvKQotCSAgbW90aGVyYm9hcmQsIGFtb25nIG90aGVycy4KLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgbG02My4KLQotY29uZmlnIFNFTlNPUlNfTE03NQotCXRyaXN0YXRlICJOYXRpb25hbCBTZW1pY29uZHVjdG9yIExNNzUgYW5kIGNvbXBhdGlibGVzIgotCWRlcGVuZHMgb24gSTJDCi0Jc2VsZWN0IEkyQ19TRU5TT1IKLQloZWxwCi0JICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBMTTc1Ci0JICBzZW5zb3IgY2hpcHMgYW5kIGNsb25lczogRGFsbGFzIFNlbWljb25kdWN0b3IgRFM3NSBhbmQgRFMxNzc1IChpbgotCSAgOS1iaXQgcHJlY2lzaW9uIG1vZGUpLCBhbmQgVGVsQ29tIChub3cgTWljcm9jaGlwKSBUQ043NS4KLQotCSAgVGhlIERTNzUgYW5kIERTMTc3NSBpbiAxMC0gdG8gMTItYml0IHByZWNpc2lvbiBtb2RlcyB3aWxsIHJlcXVpcmUKLQkgIGEgZm9yY2UgbW9kdWxlIHBhcmFtZXRlci4gVGhlIGRyaXZlciB3aWxsIG5vdCBoYW5kbGUgdGhlIGV4dHJhCi0JICBwcmVjaXNpb24gYW55aG93LgotCi0JICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCi0JICB3aWxsIGJlIGNhbGxlZCBsbTc1LgotCi1jb25maWcgU0VOU09SU19MTTc3Ci0JdHJpc3RhdGUgIk5hdGlvbmFsIFNlbWljb25kdWN0b3IgTE03NyIKLQlkZXBlbmRzIG9uIEkyQyAmJiBFWFBFUklNRU5UQUwKLQlzZWxlY3QgSTJDX1NFTlNPUgotCWhlbHAKLQkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBOYXRpb25hbCBTZW1pY29uZHVjdG9yIExNNzcKLQkgIHNlbnNvciBjaGlwcy4KLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgbG03Ny4KLQotY29uZmlnIFNFTlNPUlNfTE03OAotCXRyaXN0YXRlICJOYXRpb25hbCBTZW1pY29uZHVjdG9yIExNNzggYW5kIGNvbXBhdGlibGVzIgotCWRlcGVuZHMgb24gSTJDICYmIEVYUEVSSU1FTlRBTAotCXNlbGVjdCBJMkNfU0VOU09SCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIE5hdGlvbmFsIFNlbWljb25kdWN0b3IgTE03OCwKLQkgIExNNzgtSiBhbmQgTE03OS4KLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgbG03OC4KLQotY29uZmlnIFNFTlNPUlNfTE04MAotCXRyaXN0YXRlICJOYXRpb25hbCBTZW1pY29uZHVjdG9yIExNODAiCi0JZGVwZW5kcyBvbiBJMkMgJiYgRVhQRVJJTUVOVEFMCi0Jc2VsZWN0IEkyQ19TRU5TT1IKLQloZWxwCi0JICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvcgotCSAgTE04MCBzZW5zb3IgY2hpcHMuCi0KLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGxtODAuCi0KLWNvbmZpZyBTRU5TT1JTX0xNODMKLQl0cmlzdGF0ZSAiTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBMTTgzIgotCWRlcGVuZHMgb24gSTJDCi0Jc2VsZWN0IEkyQ19TRU5TT1IKLQloZWxwCi0JICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvcgotCSAgTE04MyBzZW5zb3IgY2hpcHMuCi0KLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGxtODMuCi0KLWNvbmZpZyBTRU5TT1JTX0xNODUKLQl0cmlzdGF0ZSAiTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBMTTg1IGFuZCBjb21wYXRpYmxlcyIKLQlkZXBlbmRzIG9uIEkyQyAmJiBFWFBFUklNRU5UQUwKLQlzZWxlY3QgSTJDX1NFTlNPUgotCWhlbHAKLQkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBOYXRpb25hbCBTZW1pY29uZHVjdG9yIExNODUKLQkgIHNlbnNvciBjaGlwcyBhbmQgY2xvbmVzOiBBRFQ3NDYzLCBFTUM2RDEwMCwgRU1DNkQxMDIgYW5kIEFETTEwMjcuCi0KLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGxtODUuCi0KLWNvbmZpZyBTRU5TT1JTX0xNODcKLQl0cmlzdGF0ZSAiTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBMTTg3IgotCWRlcGVuZHMgb24gSTJDICYmIEVYUEVSSU1FTlRBTAotCXNlbGVjdCBJMkNfU0VOU09SCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIE5hdGlvbmFsIFNlbWljb25kdWN0b3IgTE04NwotCSAgc2Vuc29yIGNoaXBzLgotCi0JICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCi0JICB3aWxsIGJlIGNhbGxlZCBsbTg3LgotCi1jb25maWcgU0VOU09SU19MTTkwCi0JdHJpc3RhdGUgIk5hdGlvbmFsIFNlbWljb25kdWN0b3IgTE05MCBhbmQgY29tcGF0aWJsZXMiCi0JZGVwZW5kcyBvbiBJMkMKLQlzZWxlY3QgSTJDX1NFTlNPUgotCWhlbHAKLQkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBOYXRpb25hbCBTZW1pY29uZHVjdG9yIExNOTAsCi0JICBMTTg2LCBMTTg5IGFuZCBMTTk5LCBBbmFsb2cgRGV2aWNlcyBBRE0xMDMyIGFuZCBNYXhpbSBNQVg2NjU3IGFuZAotCSAgTUFYNjY1OCBzZW5zb3IgY2hpcHMuCi0KLQkgIFRoZSBBbmFsb2cgRGV2aWNlcyBBRFQ3NDYxIHNlbnNvciBjaGlwIGlzIGFsc28gc3VwcG9ydGVkLCBidXQgb25seQotCSAgaWYgZm91bmQgaW4gQURNMTAzMiBjb21wYXRpYmlsaXR5IG1vZGUuCi0KLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIGxtOTAuCi0KLWNvbmZpZyBTRU5TT1JTX0xNOTIKLQl0cmlzdGF0ZSAiTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBMTTkyIGFuZCBjb21wYXRpYmxlcyIKLQlkZXBlbmRzIG9uIEkyQyAmJiBFWFBFUklNRU5UQUwKLQlzZWxlY3QgSTJDX1NFTlNPUgotCWhlbHAKLQkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBOYXRpb25hbCBTZW1pY29uZHVjdG9yIExNOTIKLQkgIGFuZCBNYXhpbSBNQVg2NjM1IHNlbnNvciBjaGlwcy4KLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgbG05Mi4KLQotY29uZmlnIFNFTlNPUlNfTUFYMTYxOQotCXRyaXN0YXRlICJNYXhpbSBNQVgxNjE5IHNlbnNvciBjaGlwIgotCWRlcGVuZHMgb24gSTJDICYmIEVYUEVSSU1FTlRBTAotCXNlbGVjdCBJMkNfU0VOU09SCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIE1BWDE2MTkgc2Vuc29yIGNoaXAuCi0JICAKLQkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKLQkgIHdpbGwgYmUgY2FsbGVkIG1heDE2MTkuCi0KLWNvbmZpZyBTRU5TT1JTX1BDODczNjAKLQl0cmlzdGF0ZSAiTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBQQzg3MzYwIGZhbWlseSIKLQlkZXBlbmRzIG9uIEkyQyAmJiBFWFBFUklNRU5UQUwKLQlzZWxlY3QgSTJDX1NFTlNPUgotCXNlbGVjdCBJMkNfSVNBCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IGFjY2VzcyB0byB0aGUgaGFyZHdhcmUgbW9uaXRvcmluZwotCSAgZnVuY3Rpb25zIG9mIHRoZSBOYXRpb25hbCBTZW1pY29uZHVjdG9yIFBDODczNnggU3VwZXItSS9PIGNoaXBzLgotCSAgVGhlIFBDODczNjAsIFBDODczNjMgYW5kIFBDODczNjQgb25seSBoYXZlIGZhbiBtb25pdG9yaW5nIGFuZAotCSAgY29udHJvbC4gIFRoZSBQQzg3MzY1IGFuZCBQQzg3MzY2IGFkZGl0aW9uYWxseSBoYXZlIHZvbHRhZ2UgYW5kCi0JICB0ZW1wZXJhdHVyZSBtb25pdG9yaW5nLgotCi0JICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCi0JICB3aWxsIGJlIGNhbGxlZCBwYzg3MzYwLgotCi1jb25maWcgU0VOU09SU19TTVNDNDdCMzk3Ci0JdHJpc3RhdGUgIlNNU0MgTFBDNDdCMzk3LU5DIgotCWRlcGVuZHMgb24gSTJDICYmIEVYUEVSSU1FTlRBTAotCXNlbGVjdCBJMkNfU0VOU09SCi0Jc2VsZWN0IEkyQ19JU0EKLQloZWxwCi0JICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgdGhlIFNNU0MgTFBDNDdCMzk3LU5DCi0JICBzZW5zb3IgY2hpcC4KLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgc21zYzQ3YjM5Ny4KLQotY29uZmlnIFNFTlNPUlNfU0lTNTU5NQotCXRyaXN0YXRlICJTaWxpY29uIEludGVncmF0ZWQgU3lzdGVtcyBDb3JwLiBTaVM1NTk1IgotCWRlcGVuZHMgb24gSTJDICYmIFBDSSAmJiBFWFBFUklNRU5UQUwKLQlzZWxlY3QgSTJDX1NFTlNPUgotCXNlbGVjdCBJMkNfSVNBCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIHRoZSBpbnRlZ3JhdGVkIHNlbnNvcnMgaW4KLQkgIFNpUzU1OTUgU291dGggQnJpZGdlcy4KLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgc2lzNTU5NS4KLQotY29uZmlnIFNFTlNPUlNfU01TQzQ3TTEKLQl0cmlzdGF0ZSAiU01TQyBMUEM0N00xMHggYW5kIGNvbXBhdGlibGVzIgotCWRlcGVuZHMgb24gSTJDICYmIEVYUEVSSU1FTlRBTAotCXNlbGVjdCBJMkNfU0VOU09SCi0Jc2VsZWN0IEkyQ19JU0EKLQloZWxwCi0JICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgdGhlIGludGVncmF0ZWQgZmFuCi0JICBtb25pdG9yaW5nIGFuZCBjb250cm9sIGNhcGFiaWxpdGllcyBvZiB0aGUgU01TQyBMUEM0N0IyN3gsCi0JICBMUEM0N00xMHgsIExQQzQ3TTEzeCwgTFBDNDdNMTR4LCBMUEM0N00xNXggYW5kIExQQzQ3TTE5MiBjaGlwcy4KLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgc21zYzQ3bTEuCi0KLWNvbmZpZyBTRU5TT1JTX1ZJQTY4NkEKLQl0cmlzdGF0ZSAiVklBNjg2QSIKLQlkZXBlbmRzIG9uIEkyQyAmJiBQQ0kKLQlzZWxlY3QgSTJDX1NFTlNPUgotCXNlbGVjdCBJMkNfSVNBCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIHRoZSBpbnRlZ3JhdGVkIHNlbnNvcnMgaW4KLQkgIFZpYSA2ODZBL0IgU291dGggQnJpZGdlcy4KLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgdmlhNjg2YS4KLQotY29uZmlnIFNFTlNPUlNfVzgzNzgxRAotCXRyaXN0YXRlICJXaW5ib25kIFc4Mzc4MUQsIFc4Mzc4MkQsIFc4Mzc4M1MsIFc4MzYyN0hGLCBBc3VzIEFTOTkxMjdGIgotCWRlcGVuZHMgb24gSTJDCi0Jc2VsZWN0IEkyQ19TRU5TT1IKLQloZWxwCi0JICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgdGhlIFdpbmJvbmQgVzgzNzh4IHNlcmllcwotCSAgb2Ygc2Vuc29yIGNoaXBzOiB0aGUgVzgzNzgxRCwgVzgzNzgyRCwgVzgzNzgzUyBhbmQgVzgzNjI3SEYsCi0JICBhbmQgdGhlIHNpbWlsYXIgQXN1cyBBUzk5MTI3Ri4KLQkgIAotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgdzgzNzgxZC4KLQotY29uZmlnIFNFTlNPUlNfVzgzTDc4NVRTCi0JdHJpc3RhdGUgIldpbmJvbmQgVzgzTDc4NVRTLVMiCi0JZGVwZW5kcyBvbiBJMkMgJiYgRVhQRVJJTUVOVEFMCi0Jc2VsZWN0IEkyQ19TRU5TT1IKLQloZWxwCi0JICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgdGhlIFdpbmJvbmQgVzgzTDc4NVRTLVMKLQkgIHNlbnNvciBjaGlwLCB3aGljaCBpcyB1c2VkIG9uIHRoZSBBc3VzIEE3TjhYLCBhbW9uZyBvdGhlcgotCSAgbW90aGVyYm9hcmRzLgotCSAgCi0JICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCi0JICB3aWxsIGJlIGNhbGxlZCB3ODNsNzg1dHMuCi0KLWNvbmZpZyBTRU5TT1JTX1c4MzYyN0hGCi0JdHJpc3RhdGUgIldpbmJvbmQgVzgzNjI3SEYsIFc4MzYyN1RIRiwgVzgzNjM3SEYsIFc4MzY5N0hGIgotCWRlcGVuZHMgb24gSTJDICYmIEVYUEVSSU1FTlRBTAotCXNlbGVjdCBJMkNfU0VOU09SCi0Jc2VsZWN0IEkyQ19JU0EKLQloZWxwCi0JICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgdGhlIFdpbmJvbmQgVzgzNlg3IHNlcmllcwotCSAgb2Ygc2Vuc29yIGNoaXBzOiB0aGUgVzgzNjI3SEYsIFc4MzYyN1RIRiwgVzgzNjM3SEYsIGFuZCB0aGUgVzgzNjk3SEYKLQotCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQotCSAgd2lsbCBiZSBjYWxsZWQgdzgzNjI3aGYuCi0KLWNvbmZpZyBTRU5TT1JTX1c4MzYyN0VIRgotCXRyaXN0YXRlICJXaW5ib25kIFc4MzYyN0VIRiIKLQlkZXBlbmRzIG9uIEkyQyAmJiBFWFBFUklNRU5UQUwKLQlzZWxlY3QgSTJDX1NFTlNPUgotCXNlbGVjdCBJMkNfSVNBCi0JaGVscAotCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIHRoZSBoYXJkd2FyZQotCSAgbW9uaXRvcmluZyBmdW5jdGlvbmFsaXR5IG9mIHRoZSBXaW5ib25kIFc4MzYyN0VIRiBTdXBlci1JL08gY2hpcC4KLQkgIE9ubHkgZmFuIGFuZCB0ZW1wZXJhdHVyZSBpbnB1dHMgYXJlIHN1cHBvcnRlZCBhdCB0aGUgbW9tZW50LCB3aGlsZQotCSAgdGhlIGNoaXAgZG9lcyBtdWNoIG1vcmUgdGhhbiB0aGF0LgotCi0JICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCi0JICB3aWxsIGJlIGNhbGxlZCB3ODM2MjdlaGYuCi0KLWVuZG1lbnUKLQotbWVudSAiT3RoZXIgSTJDIENoaXAgc3VwcG9ydCIKK21lbnUgIk1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydCIKIAlkZXBlbmRzIG9uIEkyQwogCiBjb25maWcgU0VOU09SU19EUzEzMzcKQEAgLTUwOSw3ICsxMTIsNiBAQAogCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQogCSAgd2lsbCBiZSBjYWxsZWQgdHBzNjUwMTAuCiAKLQogY29uZmlnIFNFTlNPUlNfTTQxVDAwCiAJdHJpc3RhdGUgIlNUIE00MVQwMCBSVEMgY2hpcCIKIAlkZXBlbmRzIG9uIEkyQyAmJiBQUEMzMgpAQCAtNTIwLDEzICsxMjIsMTYgQEAKIAkgIHdpbGwgYmUgY2FsbGVkIG00MXQwMC4KIAogY29uZmlnIFNFTlNPUlNfTUFYNjg3NQotCXRyaXN0YXRlICJNQVhJTSBNQVg2ODc1IFBvd2VyIHN1cHBseSBzdXBlcnZpc29yIgorCXRyaXN0YXRlICJNYXhpbSBNQVg2ODc1IFBvd2VyIHN1cHBseSBzdXBlcnZpc29yIgogCWRlcGVuZHMgb24gSTJDICYmIEVYUEVSSU1FTlRBTAogCWhlbHAKLQkgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciB0aGUgTUFYNjg3NQotCSAgRUVQUk9NLVByb2dyYW1tYWJsZSwgSGV4L1F1YWQsIFBvd2VyLVN1cHB5IFNlcXVlbmNlcnMvU3VwZXJ2aXNvcnMuCisJICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgdGhlIE1heGltIE1BWDY4NzUKKwkgIEVFUFJPTS1wcm9ncmFtbWFibGUsIHF1YWQgcG93ZXItc3VwcGx5IHNlcXVlbmNlci9zdXBlcnZpc29yLgogCi0gICAgICAgICAgVGhpcyBwcm92aWRlcyBhIGludGVyZmFjZSB0byBwcm9ncmFtIHRoZSBFRVBST00gYW5kIHJlc2V0IHRoZSBjaGlwLgorCSAgVGhpcyBwcm92aWRlcyBhbiBpbnRlcmZhY2UgdG8gcHJvZ3JhbSB0aGUgRUVQUk9NIGFuZCByZXNldCB0aGUgY2hpcC4KKworCSAgVGhpcyBkcml2ZXIgYWxzbyBzdXBwb3J0cyB0aGUgTWF4aW0gTUFYNjg3NCBoZXggcG93ZXItc3VwcGx5CisJICBzZXF1ZW5jZXIvc3VwZXJ2aXNvciBpZiBmb3VuZCBhdCBhIGNvbXBhdGlibGUgYWRkcmVzcy4KIAogCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQogCSAgd2lsbCBiZSBjYWxsZWQgbWF4Njg3NS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL01ha2VmaWxlIGIvZHJpdmVycy9pMmMvY2hpcHMvTWFrZWZpbGUKaW5kZXggYjVlNmQyZi4uYTg3NmRkNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvY2hpcHMvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9pMmMvY2hpcHMvTWFrZWZpbGUKQEAgLTEsNTIgKzEsMTYgQEAKICMKLSMgTWFrZWZpbGUgZm9yIHNlbnNvciBhbmQgIm90aGVyIiBJMkMgY2hpcCBkcml2ZXJzLgorIyBNYWtlZmlsZSBmb3IgbWlzY2VsbGFuZW91cyBJMkMgY2hpcCBkcml2ZXJzLgogIwogCi0jIGFzYjEwMCwgdGhlbiB3ODM3ODFkIGdvIGZpcnN0LCBhcyB0aGV5IGNhbiBvdmVycmlkZSBvdGhlciBkcml2ZXJzJyBhZGRyZXNzZXMuCi1vYmotJChDT05GSUdfU0VOU09SU19BU0IxMDApCSs9IGFzYjEwMC5vCi1vYmotJChDT05GSUdfU0VOU09SU19XODM2MjdIRikJKz0gdzgzNjI3aGYubwotb2JqLSQoQ09ORklHX1NFTlNPUlNfVzgzNzgxRCkJKz0gdzgzNzgxZC5vCi0KLW9iai0kKENPTkZJR19TRU5TT1JTX0FETTEwMjEpCSs9IGFkbTEwMjEubwotb2JqLSQoQ09ORklHX1NFTlNPUlNfQURNMTAyNSkJKz0gYWRtMTAyNS5vCi1vYmotJChDT05GSUdfU0VOU09SU19BRE0xMDI2KQkrPSBhZG0xMDI2Lm8KLW9iai0kKENPTkZJR19TRU5TT1JTX0FETTEwMzEpCSs9IGFkbTEwMzEubwotb2JqLSQoQ09ORklHX1NFTlNPUlNfQURNOTI0MCkJKz0gYWRtOTI0MC5vCi1vYmotJChDT05GSUdfU0VOU09SU19BVFhQMSkJKz0gYXR4cDEubwogb2JqLSQoQ09ORklHX1NFTlNPUlNfRFMxMzM3KQkrPSBkczEzMzcubwogb2JqLSQoQ09ORklHX1NFTlNPUlNfRFMxMzc0KQkrPSBkczEzNzQubwotb2JqLSQoQ09ORklHX1NFTlNPUlNfRFMxNjIxKQkrPSBkczE2MjEubwogb2JqLSQoQ09ORklHX1NFTlNPUlNfRUVQUk9NKQkrPSBlZXByb20ubwotb2JqLSQoQ09ORklHX1NFTlNPUlNfRlNDSEVSKQkrPSBmc2NoZXIubwotb2JqLSQoQ09ORklHX1NFTlNPUlNfRlNDUE9TKQkrPSBmc2Nwb3Mubwotb2JqLSQoQ09ORklHX1NFTlNPUlNfR0w1MThTTSkJKz0gZ2w1MThzbS5vCi1vYmotJChDT05GSUdfU0VOU09SU19HTDUyMFNNKQkrPSBnbDUyMHNtLm8KLW9iai0kKENPTkZJR19TRU5TT1JTX0lUODcpCSs9IGl0ODcubwotb2JqLSQoQ09ORklHX1NFTlNPUlNfTE02MykJKz0gbG02My5vCi1vYmotJChDT05GSUdfU0VOU09SU19MTTc1KQkrPSBsbTc1Lm8KLW9iai0kKENPTkZJR19TRU5TT1JTX0xNNzcpCSs9IGxtNzcubwotb2JqLSQoQ09ORklHX1NFTlNPUlNfTE03OCkJKz0gbG03OC5vCi1vYmotJChDT05GSUdfU0VOU09SU19MTTgwKQkrPSBsbTgwLm8KLW9iai0kKENPTkZJR19TRU5TT1JTX0xNODMpCSs9IGxtODMubwotb2JqLSQoQ09ORklHX1NFTlNPUlNfTE04NSkJKz0gbG04NS5vCi1vYmotJChDT05GSUdfU0VOU09SU19MTTg3KQkrPSBsbTg3Lm8KLW9iai0kKENPTkZJR19TRU5TT1JTX0xNOTApCSs9IGxtOTAubwotb2JqLSQoQ09ORklHX1NFTlNPUlNfTE05MikJKz0gbG05Mi5vCi1vYmotJChDT05GSUdfU0VOU09SU19NQVgxNjE5KQkrPSBtYXgxNjE5Lm8KIG9iai0kKENPTkZJR19TRU5TT1JTX01BWDY4NzUpCSs9IG1heDY4NzUubwogb2JqLSQoQ09ORklHX1NFTlNPUlNfTTQxVDAwKQkrPSBtNDF0MDAubwotb2JqLSQoQ09ORklHX1NFTlNPUlNfUEM4NzM2MCkJKz0gcGM4NzM2MC5vCiBvYmotJChDT05GSUdfU0VOU09SU19QQ0E5NTM5KQkrPSBwY2E5NTM5Lm8KIG9iai0kKENPTkZJR19TRU5TT1JTX1BDRjg1NzQpCSs9IHBjZjg1NzQubwogb2JqLSQoQ09ORklHX1NFTlNPUlNfUENGODU5MSkJKz0gcGNmODU5MS5vCiBvYmotJChDT05GSUdfU0VOU09SU19SVEM4NTY0KQkrPSBydGM4NTY0Lm8KLW9iai0kKENPTkZJR19TRU5TT1JTX1NJUzU1OTUpCSs9IHNpczU1OTUubwotb2JqLSQoQ09ORklHX1NFTlNPUlNfU01TQzQ3QjM5NykrPSBzbXNjNDdiMzk3Lm8KLW9iai0kKENPTkZJR19TRU5TT1JTX1NNU0M0N00xKQkrPSBzbXNjNDdtMS5vCi1vYmotJChDT05GSUdfU0VOU09SU19WSUE2ODZBKQkrPSB2aWE2ODZhLm8KLW9iai0kKENPTkZJR19TRU5TT1JTX1c4MzYyN0VIRikJKz0gdzgzNjI3ZWhmLm8KLW9iai0kKENPTkZJR19TRU5TT1JTX1c4M0w3ODVUUykJKz0gdzgzbDc4NXRzLm8KLQogb2JqLSQoQ09ORklHX0lTUDEzMDFfT01BUCkJKz0gaXNwMTMwMV9vbWFwLm8KIG9iai0kKENPTkZJR19UUFM2NTAxMCkJCSs9IHRwczY1MDEwLm8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvZWVwcm9tLmMgYi9kcml2ZXJzL2kyYy9jaGlwcy9lZXByb20uYwppbmRleCBhZGRmMGFkLi42ZWE0MTNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9jaGlwcy9lZXByb20uYworKysgYi9kcml2ZXJzL2kyYy9jaGlwcy9lZXByb20uYwpAQCAtMTczLDkgKzE3Myw2IEBACiAJCQkJCSAgICB8IEkyQ19GVU5DX1NNQlVTX0JZVEUpKQogCQlnb3RvIGV4aXQ7CiAKLQkvKiBPSy4gRm9yIG5vdywgd2UgcHJlc3VtZSB3ZSBoYXZlIGEgdmFsaWQgY2xpZW50LiBXZSBub3cgY3JlYXRlIHRoZQotCSAgIGNsaWVudCBzdHJ1Y3R1cmUsIGV2ZW4gdGhvdWdoIHdlIGNhbm5vdCBmaWxsIGl0IGNvbXBsZXRlbHkgeWV0LgotCSAgIEJ1dCBpdCBhbGxvd3MgdXMgdG8gYWNjZXNzIGVlcHJvbV97cmVhZCx3cml0ZX1fdmFsdWUuICovCiAJaWYgKCEoZGF0YSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBlZXByb21fZGF0YSksIEdGUF9LRVJORUwpKSkgewogCQllcnIgPSAtRU5PTUVNOwogCQlnb3RvIGV4aXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9jaGlwcy9tNDF0MDAuYyBiL2RyaXZlcnMvaTJjL2NoaXBzL200MXQwMC5jCmluZGV4IDVlNDYzYzQ3Li43NzhkN2UxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9jaGlwcy9tNDF0MDAuYworKysgYi9kcml2ZXJzL2kyYy9jaGlwcy9tNDF0MDAuYwpAQCAtMjA3LDcgKzIwNyw3IEBACiAJaW50CXJjOwogCiAJaWYgKChyYyA9IGkyY19kZXRhY2hfY2xpZW50KGNsaWVudCkpID09IDApIHsKLQkJa2ZyZWUoaTJjX2dldF9jbGllbnRkYXRhKGNsaWVudCkpOworCQlrZnJlZShjbGllbnQpOwogCQl0YXNrbGV0X2tpbGwoJm00MXQwMF90YXNrbGV0KTsKIAl9CiAJcmV0dXJuIHJjOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvbWF4Njg3NS5jIGIvZHJpdmVycy9pMmMvY2hpcHMvbWF4Njg3NS5jCmluZGV4IGZlNmIxNTAuLmM0ZjE0ZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2NoaXBzL21heDY4NzUuYworKysgYi9kcml2ZXJzL2kyYy9jaGlwcy9tYXg2ODc1LmMKQEAgLTM3LDcgKzM3LDggQEAKICNpbmNsdWRlIDxsaW51eC9pMmMtc2Vuc29yLmg+CiAKIC8qIEFkZHJlc3NlcyB0byBzY2FuICovCi1zdGF0aWMgdW5zaWduZWQgc2hvcnQgbm9ybWFsX2kyY1tdID0gezB4NTAsIDB4NTIsIEkyQ19DTElFTlRfRU5EfTsKKy8qIE5vIGFkZHJlc3Mgc2Nhbm5lZCBieSBkZWZhdWx0LCBhcyB0aGlzIGNvdWxkIGNvcnJ1cHQgc3RhbmRhcmQgRUVQUk9NUy4gKi8KK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBub3JtYWxfaTJjW10gPSB7STJDX0NMSUVOVF9FTkR9Owogc3RhdGljIHVuc2lnbmVkIGludCBub3JtYWxfaXNhW10gPSB7STJDX0NMSUVOVF9JU0FfRU5EfTsKIAogLyogSW5zbW9kIHBhcmFtZXRlcnMgKi8KQEAgLTM2OSw2ICszNzAsOSBAQAogCW5ld19jbGllbnQtPmRyaXZlciA9ICZtYXg2ODc1X2RyaXZlcjsKIAluZXdfY2xpZW50LT5mbGFncyA9IDA7CiAKKwkvKiBQcmV2ZW50IDI0UkYwOCBjb3JydXB0aW9uICovCisJaTJjX3NtYnVzX3dyaXRlX3F1aWNrKG5ld19jbGllbnQsIDApOworCiAJLyogU2V0dXAgdGhlIHVzZXIgc2VjdGlvbiAqLwogCWRhdGEtPmJsb2Nrc1ttYXg2ODc1X2VlcHJvbV91c2VyXS50eXBlICAgID0gbWF4Njg3NV9lZXByb21fdXNlcjsKIAlkYXRhLT5ibG9ja3NbbWF4Njg3NV9lZXByb21fdXNlcl0uc2xpY2VzICA9IFVTRVJfRUVQUk9NX1NMSUNFUzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2NoaXBzL3RwczY1MDEwLmMgYi9kcml2ZXJzL2kyYy9jaGlwcy90cHM2NTAxMC5jCmluZGV4IGMwYWMwMWIuLjI4MGU5NjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2NoaXBzL3RwczY1MDEwLmMKKysrIGIvZHJpdmVycy9pMmMvY2hpcHMvdHBzNjUwMTAuYwpAQCAtMTgsNyArMTgsNiBAQAogICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICAqIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgogICovCi0jdW5kZWYJREVCVUcKIAogI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgpAQCAtNDksMTEgKzQ4LDcgQEAKIE1PRFVMRV9ERVNDUklQVElPTigiVFBTNjUwMXggUG93ZXIgTWFuYWdlbWVudCBEcml2ZXIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIAotLyogb25seSB0d28gYWRkcmVzc2VzIHBvc3NpYmxlICovCi0jZGVmaW5lCVRQU19CQVNFCTB4NDgKLXN0YXRpYyB1bnNpZ25lZCBzaG9ydCBub3JtYWxfaTJjW10gPSB7Ci0JVFBTX0JBU0UsCi0JSTJDX0NMSUVOVF9FTkQgfTsKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBub3JtYWxfaTJjW10gPSB7IDB4NDgsIC8qIDB4NDksICovIEkyQ19DTElFTlRfRU5EIH07CiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgbm9ybWFsX2kyY19yYW5nZVtdID0geyBJMkNfQ0xJRU5UX0VORCB9OwogCiBJMkNfQ0xJRU5UX0lOU01PRDsKQEAgLTEwMiw3ICs5Nyw3IEBACiAJdTgJCQljaGdzdGF0dXMsIHJlZ3N0YXR1cywgY2hnY29uZjsKIAl1OAkJCW5tYXNrMSwgbm1hc2syOwogCi0JLyogcGx1cyBmb3VyIEdQSU9zLCBwcm9iYWJseSB1c2VkIHRvIHN3aXRjaCBwb3dlciAqLworCS8qIG5vdCBjdXJyZW50bHkgdHJhY2tpbmcgR1BJTyBzdGF0ZSAqLwogfTsKIAogI2RlZmluZQlQT1dFUl9QT0xMX0RFTEFZCW1zZWNzX3RvX2ppZmZpZXMoODAwKQpAQCAtMTM1LDcgKzEzMCw3IEBACiAJCShyZWdzdGF0dXMgJiBUUFNfUkVHX0NPVkVSKSA/ICIgdW5jb3ZlciIgOiAiIiwKIAkJKHJlZ3N0YXR1cyAmIFRQU19SRUdfVVZMTykgPyAiIFVWTE8iIDogIiIsCiAJCShyZWdzdGF0dXMgJiBUUFNfUkVHX05PX0NIRykgPyAiIE5PX0NIRyIgOiAiIiwKLQkJKHJlZ3N0YXR1cyAmIFRQU19SRUdfUEdfTEQwMikgPyAiIGxkMDFfYmFkIiA6ICIiLAorCQkocmVnc3RhdHVzICYgVFBTX1JFR19QR19MRDAyKSA/ICIgbGQwMl9iYWQiIDogIiIsCiAJCShyZWdzdGF0dXMgJiBUUFNfUkVHX1BHX0xEMDEpID8gIiBsZDAxX2JhZCIgOiAiIiwKIAkJKHJlZ3N0YXR1cyAmIFRQU19SRUdfUEdfTUFJTikgPyAiIG1haW5fYmFkIiA6ICIiLAogCQkocmVnc3RhdHVzICYgVFBTX1JFR19QR19DT1JFKSA/ICIgY29yZV9iYWQiIDogIiIpOwpAQCAtMTQzLDcgKzEzOCw3IEBACiAKIHN0YXRpYyB2b2lkIGRiZ19jaGdjb25mKGludCBwb3IsIGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbiwgdTggY2hnY29uZmlnKQogewotCWNoYXIgKmhpYml0OworCWNvbnN0IGNoYXIgKmhpYml0OwogCiAJaWYgKHBvcikKIAkJaGliaXQgPSAoY2hnY29uZmlnICYgVFBTX0NIQVJHRV9QT1IpCkBAIC0yOTUsNyArMjkwLDcgQEAKIAlzZXFfcHJpbnRmKHMsICJkZWZncGlvICUwMnggbWFzazMgJTAyeFxuIiwgdmFsdWUsIHYyKTsKIAogCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKLQkJaWYgKHZhbHVlICYgKDEgPDwgKDQgK2kpKSkKKwkJaWYgKHZhbHVlICYgKDEgPDwgKDQgKyBpKSkpCiAJCQlzZXFfcHJpbnRmKHMsICIgIGdwaW8lZC1vdXQgJXNcbiIsIGkgKyAxLAogCQkJCSh2YWx1ZSAmICgxIDw8IGkpKSA/ICJsb3ciIDogImhpICIpOwogCQllbHNlCkBAIC00ODEsNyArNDc2LDcgQEAKIAlkZWJ1Z2ZzX3JlbW92ZSh0cHMtPmZpbGUpOwogCWlmIChpMmNfZGV0YWNoX2NsaWVudChjbGllbnQpID09IDApCiAJCWtmcmVlKHRwcyk7Ci0JdGhlX3RwcyA9IDA7CisJdGhlX3RwcyA9IE5VTEw7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTUxNCw3ICs1MDksNiBAQAogCUlOSVRfV09SSygmdHBzLT53b3JrLCB0cHM2NTAxMF93b3JrLCB0cHMpOwogCXRwcy0+aXJxID0gLTE7CiAJdHBzLT5jbGllbnQuYWRkciA9IGFkZHJlc3M7Ci0JaTJjX3NldF9jbGllbnRkYXRhKCZ0cHMtPmNsaWVudCwgdHBzKTsKIAl0cHMtPmNsaWVudC5hZGFwdGVyID0gYnVzOwogCXRwcy0+Y2xpZW50LmRyaXZlciA9ICZ0cHM2NTAxMF9kcml2ZXI7CiAJc3RybGNweSh0cHMtPmNsaWVudC5uYW1lLCBEUklWRVJfTkFNRSwgSTJDX05BTUVfU0laRSk7CkBAIC01MjMsOSArNTE3LDcgQEAKIAlpZiAoc3RhdHVzIDwgMCkgewogCQlkZXZfZGJnKCZidXMtPmRldiwgImNhbid0IGF0dGFjaCAlcyB0byBkZXZpY2UgJWQsIGVyciAlZFxuIiwKIAkJCQlEUklWRVJfTkFNRSwgYWRkcmVzcywgc3RhdHVzKTsKLWZhaWwxOgotCQlrZnJlZSh0cHMpOwotCQlyZXR1cm4gMDsKKwkJZ290byBmYWlsMTsKIAl9CiAKICNpZmRlZglDT05GSUdfQVJNCkBAIC01MzUsNyArNTI3LDcgQEAKIAkJdHBzLT5pcnEgPSBPTUFQX0dQSU9fSVJRKDU4KTsKIAkJb21hcF9yZXF1ZXN0X2dwaW8oNTgpOwogCQlvbWFwX3NldF9ncGlvX2RpcmVjdGlvbig1OCwgMSk7Ci0JCW9tYXBfc2V0X2dwaW9fZWRnZV9jdHJsKDU4LCBPTUFQX0dQSU9fRkFMTElOR19FREdFKTsKKwkJc2V0X2lycV90eXBlKHRwcy0+aXJxLCBJUlFUX0ZBTExJTkcpOwogCX0KIAlpZiAobWFjaGluZV9pc19vbWFwX29zaygpKSB7CiAJCXRwcy0+bW9kZWwgPSBUUFM2NTAxMDsKQEAgLTU0Myw3ICs1MzUsNyBAQAogCQl0cHMtPmlycSA9IE9NQVBfR1BJT19JUlEoT01BUF9NUFVJTygxKSk7CiAJCW9tYXBfcmVxdWVzdF9ncGlvKE9NQVBfTVBVSU8oMSkpOwogCQlvbWFwX3NldF9ncGlvX2RpcmVjdGlvbihPTUFQX01QVUlPKDEpLCAxKTsKLQkJb21hcF9zZXRfZ3Bpb19lZGdlX2N0cmwoT01BUF9NUFVJTygxKSwgT01BUF9HUElPX0ZBTExJTkdfRURHRSk7CisJCXNldF9pcnFfdHlwZSh0cHMtPmlycSwgSVJRVF9GQUxMSU5HKTsKIAl9CiAJaWYgKG1hY2hpbmVfaXNfb21hcF9oMygpKSB7CiAJCXRwcy0+bW9kZWwgPSBUUFM2NTAxMzsKQEAgLTYzMyw2ICs2MjUsOSBAQAogCXRwcy0+ZmlsZSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoRFJJVkVSX05BTUUsIFNfSVJVR08sIE5VTEwsCiAJCQkJdHBzLCBERUJVR19GT1BTKTsKIAlyZXR1cm4gMDsKK2ZhaWwxOgorCWtmcmVlKHRwcyk7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgX19pbml0IHRwczY1MDEwX3NjYW5fYnVzKHN0cnVjdCBpMmNfYWRhcHRlciAqYnVzKQpAQCAtNjQ1LDcgKzY0MCw2IEBACiBzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgdHBzNjUwMTBfZHJpdmVyID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkubmFtZQkJPSAidHBzNjUwMTAiLAotCS5pZAkJPSA4ODgsCQkvKiBGSVhNRSBhc3NpZ24gIm9mZmljaWFsIiB2YWx1ZSAqLwogCS5mbGFncwkJPSBJMkNfREZfTk9USUZZLAogCS5hdHRhY2hfYWRhcHRlcgk9IHRwczY1MDEwX3NjYW5fYnVzLAogCS5kZXRhY2hfY2xpZW50CT0gX19leGl0X3AodHBzNjUwMTBfZGV0YWNoX2NsaWVudCksCkBAIC03NDQsNyArNzM4LDcgQEAKIAlpZiAoIXRoZV90cHMpCiAJCXJldHVybiAtRU5PREVWOwogCi0JaWYobGVkID09IExFRDEpCisJaWYgKGxlZCA9PSBMRUQxKQogCQlvZmZzID0gMDsKIAllbHNlIHsKIAkJb2ZmcyA9IDI7CkBAIC03NTMsMTEgKzc0NywxMyBAQAogCiAJZG93bigmdGhlX3Rwcy0+bG9jayk7CiAKLQlkZXZfZGJnICgmdGhlX3Rwcy0+Y2xpZW50LmRldiwgImxlZCVpX29uICAgMHglMDJ4XG4iLCBsZWQsCi0JCWkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YSgmdGhlX3Rwcy0+Y2xpZW50LCBUUFNfTEVEMV9PTiArIG9mZnMpKTsKKwlwcl9kZWJ1ZygiJXM6IGxlZCVpX29uICAgMHglMDJ4XG4iLCBEUklWRVJfTkFNRSwgbGVkLAorCQlpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoJnRoZV90cHMtPmNsaWVudCwKKwkJCQlUUFNfTEVEMV9PTiArIG9mZnMpKTsKIAotCWRldl9kYmcgKCZ0aGVfdHBzLT5jbGllbnQuZGV2LCAibGVkJWlfcGVyICAweCUwMnhcbiIsIGxlZCwKLQkJaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKCZ0aGVfdHBzLT5jbGllbnQsIFRQU19MRUQxX1BFUiArIG9mZnMpKTsKKwlwcl9kZWJ1ZygiJXM6IGxlZCVpX3BlciAgMHglMDJ4XG4iLCBEUklWRVJfTkFNRSwgbGVkLAorCQlpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoJnRoZV90cHMtPmNsaWVudCwKKwkJCQlUUFNfTEVEMV9QRVIgKyBvZmZzKSk7CiAKIAlzd2l0Y2ggKG1vZGUpIHsKIAljYXNlIE9GRjoKQEAgLTc3Myw3ICs3NjksNyBAQAogCQlsZWRfcGVyID0gMHgwOCB8ICgxIDw8IDcpOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlwcmludGsoS0VSTl9FUlIgIiVzOiBXcm9uZyBtb2RlIHBhcmFtZXRlciBmb3IgdHBzNjUwMTBfc2V0X2xlZCgpXG4iLAorCQlwcmludGsoS0VSTl9FUlIgIiVzOiBXcm9uZyBtb2RlIHBhcmFtZXRlciBmb3Igc2V0X2xlZCgpXG4iLAogCQkgICAgICAgRFJJVkVSX05BTUUpOwogCQl1cCgmdGhlX3Rwcy0+bG9jayk7CiAJCXJldHVybiAtRUlOVkFMOwpAQCAtNzg5LDcgKzc4NSw3IEBACiAJCXJldHVybiBzdGF0dXM7CiAJfQogCi0JZGV2X2RiZyAoJnRoZV90cHMtPmNsaWVudC5kZXYsICJsZWQlaV9vbiAgIDB4JTAyeFxuIiwgbGVkLAorCXByX2RlYnVnKCIlczogbGVkJWlfb24gICAweCUwMnhcbiIsIERSSVZFUl9OQU1FLCBsZWQsCiAJCWkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YSgmdGhlX3Rwcy0+Y2xpZW50LCBUUFNfTEVEMV9PTiArIG9mZnMpKTsKIAogCXN0YXR1cyA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoJnRoZV90cHMtPmNsaWVudCwKQEAgLTgwMiw4ICs3OTgsOSBAQAogCQlyZXR1cm4gc3RhdHVzOwogCX0KIAotCWRldl9kYmcgKCZ0aGVfdHBzLT5jbGllbnQuZGV2LCAibGVkJWlfcGVyICAweCUwMnhcbiIsIGxlZCwKLQkJaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKCZ0aGVfdHBzLT5jbGllbnQsIFRQU19MRUQxX1BFUiArIG9mZnMpKTsKKwlwcl9kZWJ1ZygiJXM6IGxlZCVpX3BlciAgMHglMDJ4XG4iLCBEUklWRVJfTkFNRSwgbGVkLAorCQlpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoJnRoZV90cHMtPmNsaWVudCwKKwkJCQlUUFNfTEVEMV9QRVIgKyBvZmZzKSk7CiAKIAl1cCgmdGhlX3Rwcy0+bG9jayk7CiAKQEAgLTg3NCw3ICs4NzEsNyBAQAogCiAJaWYgKHN0YXR1cyAhPSAwKQogCQlwcmludGsoS0VSTl9FUlIgIiVzOiBGYWlsZWQgdG8gd3JpdGUgdmRjZGMxIHJlZ2lzdGVyXG4iLAotCQkgICAgICAgRFJJVkVSX05BTUUpOworCQkJRFJJVkVSX05BTUUpOwogCWVsc2UKIAkJcHJfZGVidWcoIiVzOiB2ZGNkYzEgMHglMDJ4XG4iLCBEUklWRVJfTkFNRSwKIAkJCWkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YSgmdGhlX3Rwcy0+Y2xpZW50LCBUUFNfVkRDREMxKSk7CkBAIC05MDAsMTQgKzg5NywxNCBAQAogCWRvd24oJnRoZV90cHMtPmxvY2spOwogCiAJcHJfZGVidWcoIiVzOiB2cmVnczEgMHglMDJ4XG4iLCBEUklWRVJfTkFNRSwKLQkJICAgICAgICBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoJnRoZV90cHMtPmNsaWVudCwgVFBTX1ZSRUdTMSkpOworCQkJaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKCZ0aGVfdHBzLT5jbGllbnQsIFRQU19WUkVHUzEpKTsKIAogCXN0YXR1cyA9IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoJnRoZV90cHMtPmNsaWVudCwKIAkJCVRQU19WUkVHUzEsIHZhbHVlKTsKIAogCWlmIChzdGF0dXMgIT0gMCkKIAkJcHJpbnRrKEtFUk5fRVJSICIlczogRmFpbGVkIHRvIHdyaXRlIHZyZWdzMSByZWdpc3RlclxuIiwKLQkJICAgICAgICBEUklWRVJfTkFNRSk7CisJCQlEUklWRVJfTkFNRSk7CiAJZWxzZQogCQlwcl9kZWJ1ZygiJXM6IHZyZWdzMSAweCUwMnhcbiIsIERSSVZFUl9OQU1FLAogCQkJaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKCZ0aGVfdHBzLT5jbGllbnQsIFRQU19WUkVHUzEpKTsKQEAgLTEwMDksNyArMTAwNiw3IEBACiAJCW1zbGVlcCgxMCk7CiAJfQogCi0jaWYgZGVmaW5lZChDT05GSUdfQVJNKQorI2lmZGVmCUNPTkZJR19BUk0KIAlpZiAobWFjaGluZV9pc19vbWFwX29zaygpKSB7CiAKIAkJLy8gRklYTUU6IE1vcmUgc2hvdWxkIGJlIHBsYWNlZCBpbiB0aGUgaW5pdGlhbGl6YXRpb24gY29kZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvaTJjLWNvcmUuYyBiL2RyaXZlcnMvaTJjL2kyYy1jb3JlLmMKaW5kZXggNTFjZTI2OC4uNGZkNGY1MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvaTJjLWNvcmUuYworKysgYi9kcml2ZXJzL2kyYy9pMmMtY29yZS5jCkBAIC0xNTYsNyArMTU2LDcgQEAKIAkJZ290byBvdXRfdW5sb2NrOwogCX0KIAotCXJlcyA9IGlkcl9nZXRfbmV3KCZpMmNfYWRhcHRlcl9pZHIsIE5VTEwsICZpZCk7CisJcmVzID0gaWRyX2dldF9uZXcoJmkyY19hZGFwdGVyX2lkciwgYWRhcCwgJmlkKTsKIAlpZiAocmVzIDwgMCkgewogCQlpZiAocmVzID09IC1FQUdBSU4pCiAJCQlyZXMgPSAtRU5PTUVNOwpAQCAtNzY1LDIwICs3NjUsMTUgQEAKIAogc3RydWN0IGkyY19hZGFwdGVyKiBpMmNfZ2V0X2FkYXB0ZXIoaW50IGlkKQogewotCXN0cnVjdCBsaXN0X2hlYWQgICAqaXRlbTsKIAlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXI7CiAJCiAJZG93bigmY29yZV9saXN0cyk7Ci0JbGlzdF9mb3JfZWFjaChpdGVtLCZhZGFwdGVycykgewotCQlhZGFwdGVyID0gbGlzdF9lbnRyeShpdGVtLCBzdHJ1Y3QgaTJjX2FkYXB0ZXIsIGxpc3QpOwotCQlpZiAoaWQgPT0gYWRhcHRlci0+bnIgJiYKLQkJICAgIHRyeV9tb2R1bGVfZ2V0KGFkYXB0ZXItPm93bmVyKSkgewotCQkJdXAoJmNvcmVfbGlzdHMpOwotCQkJcmV0dXJuIGFkYXB0ZXI7Ci0JCX0KLQl9CisJYWRhcHRlciA9IChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKilpZHJfZmluZCgmaTJjX2FkYXB0ZXJfaWRyLCBpZCk7CisJaWYgKGFkYXB0ZXIgJiYgIXRyeV9tb2R1bGVfZ2V0KGFkYXB0ZXItPm93bmVyKSkKKwkJYWRhcHRlciA9IE5VTEw7CisKIAl1cCgmY29yZV9saXN0cyk7Ci0JcmV0dXJuIE5VTEw7CisJcmV0dXJuIGFkYXB0ZXI7CiB9CiAKIHZvaWQgaTJjX3B1dF9hZGFwdGVyKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdzEvdzEuYyBiL2RyaXZlcnMvdzEvdzEuYwppbmRleCAzMTJjZjMyLi44YTljNDI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3cxL3cxLmMKKysrIGIvZHJpdmVycy93MS93MS5jCkBAIC01MTYsNiArNTE2LDcgQEAKIAlzdHJ1Y3QgdzFfcmVnX251bSAqdG1wOwogCWludCBmYW1pbHlfZm91bmQgPSAwOwogCXN0cnVjdCB3MV9tYXN0ZXIgKmRldjsKKwl1NjQgcm5fbGUgPSBjcHVfdG9fbGU2NChybik7CiAKIAlkZXYgPSB3MV9zZWFyY2hfbWFzdGVyKGRhdGEpOwogCWlmICghZGV2KSB7CkBAIC01NDQsMTAgKzU0NSw4IEBACiAJCXNsYXZlX2NvdW50Kys7CiAJfQogCi0Jcm4gPSBjcHVfdG9fbGU2NChybik7Ci0KIAlpZiAoc2xhdmVfY291bnQgPT0gZGV2LT5zbGF2ZV9jb3VudCAmJgotCQlybiAmJiAoKGxlNjRfdG9fY3B1KHJuKSA+PiA1NikgJiAweGZmKSA9PSB3MV9jYWxjX2NyYzgoKHU4ICopJnJuLCA3KSkgeworCQlybiAmJiAoKHJuID4+IDU2KSAmIDB4ZmYpID09IHcxX2NhbGNfY3JjOCgodTggKikmcm5fbGUsIDcpKSB7CiAJCXcxX2F0dGFjaF9zbGF2ZV9kZXZpY2UoZGV2LCB0bXApOwogCX0KIAo=