DQoob2JqZWN0IFBldGFsDQogICAgdmVyc2lvbiAgICAJNTANCiAgICBfd3JpdHRlbiAgIAkiUm9zZSA4LjMuMDQwNy4yODAwIg0KICAgIGNoYXJTZXQgICAgCTApDQoNCihvYmplY3QgQ2xhc3NfQ2F0ZWdvcnkgImVqYiINCiAgICBpc191bml0ICAgIAlUUlVFDQogICAgaXNfbG9hZGVkICAJVFJVRQ0KICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkob2JqZWN0IEF0dHJpYnV0ZQ0KCSAgICB0b29sICAgICAgIAkiSURMIg0KCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGEyNTY2MC04ODI2LTExZTEtMDAwMC0wMDVkOWU2YWRlYzQ6MSIpKQ0KCShvYmplY3QgQXR0cmlidXRlDQoJICAgIHRvb2wgICAgICAgCSJFY29yZSINCgkgICAgbmFtZSAgICAgICAJImJhc2VQYWNrYWdlIg0KCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAib3JnLmVjbGlwc2UuanN0LmoyZWUiKSkNCgkob2JqZWN0IEF0dHJpYnV0ZQ0KCSAgICB0b29sICAgICAgIAkiRWNvcmUiDQoJICAgIG5hbWUgICAgICAgCSJuc1VSSSINCgkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgImVqYi54bWkiKSkNCgkob2JqZWN0IEF0dHJpYnV0ZQ0KCSAgICB0b29sICAgICAgIAkiRWNvcmUiDQoJICAgIG5hbWUgICAgICAgCSJwcmVmaXgiDQoJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJFamIiKSkpDQogICAgcXVpZCAgICAgICAJIjM3ODBFMjcyMDMyRCINCiAgICBzdGVyZW90eXBlIAkibWV0YW1vZGVsIg0KICAgIHZpc2libGVfY2F0ZWdvcmllcyAJKGxpc3QgdmlzaWJpbGl0eV9yZWxhdGlvbnNoaXBfbGlzdA0KCShvYmplY3QgVmlzaWJpbGl0eV9SZWxhdGlvbnNoaXANCgkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGEyNTY2MC04ODI2LTExZTEtMDAwMS0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkgICAgcXVpZCAgICAgICAJIjM4MDU2N0Y1MDM4NCINCgkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6amF2YSINCgkgICAgcXVpZHUgICAgICAJIjM2NTQ5RjJDMDA0RSIpDQoJKG9iamVjdCBWaXNpYmlsaXR5X1JlbGF0aW9uc2hpcA0KCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCShvYmplY3QgQXR0cmlidXRlDQoJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YTI1NjYwLTg4MjYtMTFlMS0wMDAyLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCSAgICBxdWlkICAgICAgIAkiMzhGRjNDMUMwMjU2Ig0KCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3Ojpjb21tb24iDQoJICAgIHF1aWR1ICAgICAgCSIzOEMwOEYwRjAzOEQiKSkNCiAgICBleHBvcnRDb250cm9sIAkiUHVibGljIg0KICAgIGxvZ2ljYWxfbW9kZWxzIAkobGlzdCB1bml0X3JlZmVyZW5jZV9saXN0DQoJKG9iamVjdCBDbGFzcyAiQ29udGFpbmVyTWFuYWdlZEVudGl0eSINCgkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGEyNTY2MC04ODI2LTExZTEtMDAwMy0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkgICAgcXVpZCAgICAgICAJIjM3ODBFMzIzMDE3NCINCgkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhhMjU2NjAtODgyNi0xMWUxLTAwMDQtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzc4MEUzMjMwMTc1Ig0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpFbnRpdHkiDQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEU2OTcwMzUxIikpDQoJICAgIGNsYXNzX2F0dHJpYnV0ZXMgCShsaXN0IGNsYXNzX2F0dHJpYnV0ZV9saXN0DQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgInZlcnNpb24iDQoJCSAgICBxdWlkICAgICAgIAkiMzlCRjAzOUYwMUNEIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8U3BlY2lmaWVzIHRoZSB2ZXJzaW9uIG9mIGFuIGVudGl0eSBiZWFuIHdpdGggY29udGFpbmVyLW1hbmFnZWQgcGVyc2lzdGVuY2UuDQp8DQp8QGludmFyaWFudCBUaGUgY21wLXZlcnNpb24gZWxlbWVudCBtdXN0IGJlIG9uZSBvZiB0aGUgdHdvIGZvbGxvd2luZzogMS54ICwgMi54DQp8QGRlZmF1bHQgMi54DQp8DQoJCSAgICANCgkJICAgIHN0ZXJlb3R5cGUgCSIwLi4xIg0KCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCgkJICAgIGluaXR2ICAgICAgCSIyLngiDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikNCgkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiYWJzdHJhY3RTY2hlbWFOYW1lIg0KCQkgICAgcXVpZCAgICAgICAJIjM5QkYxRjIzMDJDNiINCgkJICAgIGRvY3VtZW50YXRpb24gCQ0KfFRoZSBhYnN0cmFjdC1zY2hlbWEtbmFtZSBlbGVtZW50IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgYWJzdHJhY3Qgc2NoZW1hIHR5cGUgb2YgYW4gZW50aXR5IGJlYW4gd2l0aCBjbXAtdmVyc2lvbiAyLnguIEl0IGlzIHVzZWQgaW4gRUpCIFFMIHF1ZXJpZXMuDQp8DQp8Rm9yIGV4YW1wbGUsIHRoZSBhYnN0cmFjdC1zY2hlbWEtbmFtZSBmb3IgYW4gZW50aXR5IGJlYW4gd2hvc2UgbG9jYWwgaW50ZXJmYWNlIGlzIGNvbS5hY21lLmNvbW1lcmNlLk9yZGVyIG1pZ2h0IGJlIE9yZGVyLg0KfA0KfA0KCQkgICAgDQoJCSAgICBzdGVyZW90eXBlIAkiMC4uMSINCgkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpDQoJICAgIG1vZHVsZSAgICAgCSJDb21wb25lbnQgVmlldzo6ZUJBRk1vZGVsczo6RUpCU2NoZW1hOjpDb250YWluZXJNYW5hZ2VkRW50aXR5QmVhbiINCgkgICAgcXVpZHUgICAgICAJIjM3ODBFMzYzMDA5RiINCgkgICAgbGFuZ3VhZ2UgICAJIkphdmEiKQ0KCShvYmplY3QgQ2xhc3MgIk1ldGhvZFBlcm1pc3Npb24iDQoJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhhMjU2NjAtODgyNi0xMWUxLTAwMDUtMDA1ZDllNmFkZWM0OjEiKSkNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJKYXZhIg0KCQkgICAgbmFtZSAgICAgICAJImNnX3N0eWxlIg0KCQkgICAgdmFsdWUgICAgICAJIkRlZmF1bHRfRUpCIikpDQoJICAgIHF1aWQgICAgICAgCSIzNzgwRTM1MDAwRDAiDQoJICAgIGRvY3VtZW50YXRpb24gCSJUaGUgbWV0aG9kLXBlcm1pc3Npb24gZWxlbWVudCBzcGVjaWZpZXMgdGhhdCBvbmUgb3IgbW9yZSBzZWN1cml0eSByb2xlcyBhcmUgYWxsb3dlZCB0byBpbnZva2Ugb25lIG9yIG1vcmUgZW50ZXJwcmlzZSBiZWFuIG1ldGhvZHMuIFRoZSBtZXRob2QtcGVybWlzc2lvbiBlbGVtZW50IGNvbnNpc3RzIG9mIGFuIG9wdGlvbmFsIGRlc2NyaXB0aW9uLCBhIGxpc3Qgb2Ygc2VjdXJpdHkgcm9sZSBuYW1lcywgYW5kIGEgbGlzdCBvZiBtZXRob2QgZWxlbWVudHMuICBUaGUgc2VjdXJpdHkgcm9sZXMgdXNlZCBpbiB0aGUgbWV0aG9kLXBlcm1pc3Npb24gZWxlbWVudCBtdXN0IGJlIGRlZmluZWQgaW4gdGhlIHNlY3VyaXR5LXJvbGUgZWxlbWVudCBvZiB0aGUgZGVwbG95bWVudCBkZXNjcmlwdG9yLCBhbmQgdGhlIG1ldGhvZHMgbXVzdCBiZSBtZXRob2RzIGRlZmluZWQgaW4gdGhlIGVudGVycHJpc2UgYmVhbidzIHJlbW90ZSBhbmQvb3IgaG9tZSBpbnRlcmZhY2VzLiINCgkgICAgY2xhc3NfYXR0cmlidXRlcyAJKGxpc3QgY2xhc3NfYXR0cmlidXRlX2xpc3QNCgkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiZGVzY3JpcHRpb24iDQoJCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGEyNTY2MC04ODI2LTExZTEtMDAwNi0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkJICAgIHF1aWQgICAgICAgCSIzOTJFRDM5OTAzMEUiDQoJCSAgICBkb2N1bWVudGF0aW9uIAkNCnxAc2luY2UgSjJFRTEuNCBkZXByZWNhdGVkLCBiZWNvbWVzIGRlc2NyaXB0aW9ucw0KfFRoZSBkZXNjcmlwdGlvbiBlbGVtZW50IGlzIHVzZWQgYnkgdGhlIGVqYi1qYXIgZmlsZSBwcm9kdWNlciB0byBwcm92aWRlIHRleHQgZGVzY3JpYmluZyB0aGUgcGFyZW50IGVsZW1lbnQuICBUaGUgZGVzY3JpcHRpb24gZWxlbWVudCBzaG91bGQgaW5jbHVkZSBhbnkgaW5mb3JtYXRpb24gdGhhdCB0aGUgZWpiLWphciBmaWxlIHByb2R1Y2VyIHdhbnRzIHRvIHByb3ZpZGUgdG8gdGhlIGNvbnN1bWVyIG9mIHRoZSBlamItamFyIGZpbGUgKGkuZS4gdG8gdGhlIERlcGxveWVyKS4gVHlwaWNhbGx5LCB0aGUgdG9vbHMgdXNlZCBieSB0aGUgZWpiLWphciBmaWxlIGNvbnN1bWVyIHdpbGwgZGlzcGxheSB0aGUgZGVzY3JpcHRpb24gd2hlbiBwcm9jZXNzaW5nIHRoZSBwYXJlbnQgZWxlbWVudC4NCgkJICAgIA0KCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKQ0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJ1bmNoZWNrZWQiDQoJCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkJICAgIHRvb2wgICAgICAgCSJFY29yZSINCgkJCSAgICBuYW1lICAgICAgIAkiaXNVbnNldHRhYmxlIg0KCQkJICAgIHZhbHVlICAgICAgCVRSVUUpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM5OTZCNTJDMDIwOSINCgkJICAgIHR5cGUgICAgICAgCSJib29sZWFuIg0KCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpKQ0KCSAgICBtb2R1bGUgICAgIAkiQ29tcG9uZW50IFZpZXc6OmVCQUZNb2RlbHM6OkVKQlNjaGVtYTo6TWV0aG9kUGVybWlzc2lvbiINCgkgICAgcXVpZHUgICAgICAJIjM3ODBFMzYzMDBBMCINCgkgICAgbGFuZ3VhZ2UgICAJIkphdmEiKQ0KCShvYmplY3QgQ2xhc3MgIkFzc2VtYmx5RGVzY3JpcHRvciINCgkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGEyNTY2MC04ODI2LTExZTEtMDAwNy0wMDVkOWU2YWRlYzQ6MSIpKQ0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIkphdmEiDQoJCSAgICBuYW1lICAgICAgIAkiY2dfc3R5bGUiDQoJCSAgICB2YWx1ZSAgICAgIAkiRGVmYXVsdF9FSkIiKSkNCgkgICAgcXVpZCAgICAgICAJIjM3ODBFMzUwMDBENCINCgkgICAgZG9jdW1lbnRhdGlvbiAJIlRoZSBhc3NlbWJseS1kZXNjcmlwdG9yIGVsZW1lbnQgY29udGFpbnMgYXBwbGljYXRpb24tYXNzZW1ibHkgaW5mb3JtYXRpb24uICBUaGUgYXBwbGljYXRpb24tYXNzZW1ibHkgaW5mb3JtYXRpb24gY29uc2lzdHMgb2YgdGhlIGZvbGxvd2luZyBwYXJ0czogdGhlIGRlZmluaXRpb24gb2Ygc2VjdXJpdHkgcm9sZXMsIHRoZSBkZWZpbml0aW9uIG9mIG1ldGhvZCBwZXJtaXNzaW9ucywgYW5kIHRoZSBkZWZpbml0aW9uIG9mIHRyYW5zYWN0aW9uIGF0dHJpYnV0ZXMgZm9yIGVudGVycHJpc2UgYmVhbnMgd2l0aCBjb250YWluZXItbWFuYWdlZCB0cmFuc2FjdGlvbiBkZW1hcmNhdGlvbi4gQWxsIHRoZSBwYXJ0cyBhcmUgb3B0aW9uYWwgaW4gdGhlIHNlbnNlIHRoYXQgdGhleSBhcmUgb21pdHRlZCBpZiB0aGUgbGlzdHMgcmVwcmVzZW50ZWQgYnkgdGhlbSBhcmUgZW1wdHkuIFByb3ZpZGluZyBhbiBhc3NlbWJseS1kZXNjcmlwdG9yIGluIHRoZSBkZXBsb3ltZW50IGRlc2NyaXB0b3IgaXMgb3B0aW9uYWwgZm9yIHRoZSBlamItamFyIGZpbGUgcHJvZHVjZXIuIg0KCSAgICBtb2R1bGUgICAgIAkiQ29tcG9uZW50IFZpZXc6OmVCQUZNb2RlbHM6OkVKQlNjaGVtYTo6QXNzZW1ibHlEZXNjcmlwdG9yIg0KCSAgICBxdWlkdSAgICAgIAkiMzc4MEUzNUIwMkM1Ig0KCSAgICBsYW5ndWFnZSAgIAkiSmF2YSIpDQoJKG9iamVjdCBDbGFzcyAiTWV0aG9kVHJhbnNhY3Rpb24iDQoJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhhMjU2NjAtODgyNi0xMWUxLTAwMDgtMDA1ZDllNmFkZWM0OjEiKSkNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJKYXZhIg0KCQkgICAgbmFtZSAgICAgICAJImNnX3N0eWxlIg0KCQkgICAgdmFsdWUgICAgICAJIkRlZmF1bHRfRUpCIikpDQoJICAgIHF1aWQgICAgICAgCSIzNzgwRTM1MDAwREUiDQoJICAgIGRvY3VtZW50YXRpb24gCSJTcGVjaWZpZXMgaG93IHRoZSBjb250YWluZXIgbXVzdCBtYW5hZ2UgdHJhbnNhY3Rpb24gc2NvcGVzIGZvciB0aGUgZW50ZXJwcmlzZSBiZWFuJ3MgbWV0aG9kIGludm9jYXRpb25zLiAgSXQgY29uc2lzdHMgb2YgYW4gb3B0aW9uYWwgZGVzY3JpcHRpb24sIGEgbGlzdCBvZiBtZXRob2QgZWxlbWVudHMsIGFuZCBhIHRyYW5zYWN0aW9uIGF0dHJpYnV0ZS5UaGUgdHJhbnNhY3Rpb24gYXR0cmlidXRlIGlzIHRvIGJlIGFwcGxpZWQgdG8gYWxsIHRoZSBzcGVjaWZpZWQgbWV0aG9kcy4iDQoJICAgIGNsYXNzX2F0dHJpYnV0ZXMgCShsaXN0IGNsYXNzX2F0dHJpYnV0ZV9saXN0DQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgInRyYW5zYWN0aW9uQXR0cmlidXRlIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhhMjU2NjAtODgyNi0xMWUxLTAwMDktMDA1ZDllNmFkZWM0OjEiKSkNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIkVjb3JlIg0KCQkJICAgIG5hbWUgICAgICAgCSJpc1Vuc2V0dGFibGUiDQoJCQkgICAgdmFsdWUgICAgICAJVFJVRSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzc4MEUzNTAwMERGIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8VGhlIHRyYW5zLWF0dHJpYnV0ZSBlbGVtZW50IHNwZWNpZmllcyBob3cgdGhlIGNvbnRhaW5lciBtdXN0IG1hbmFnZSB0aGUgdHJhbnNhY3Rpb24gYm91bmRhcmllcyB3aGVuIGRlbGVnYXRpbmcgYSBtZXRob2QgaW52b2NhdGlvbiB0byBhbiBlbnRlcnByaXNlIGJlYW4ncyBidXNpbmVzcyBtZXRob2QuDQp8DQoJCSAgICANCgkJICAgIHR5cGUgICAgICAgCSJUcmFuc2FjdGlvbkF0dHJpYnV0ZVR5cGUiDQoJCSAgICBxdWlkdSAgICAgIAkiMzc5RjYzNDUwM0MwIg0KCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpDQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImRlc2NyaXB0aW9uIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhhMjU2NjAtODgyNi0xMWUxLTAwMGEtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzgwNTVDMDUwMjk2Ig0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8QHNpbmNlIEoyRUUxLjQgZGVwcmVjYXRlZCwgYmVjb21lcyBkZXNjcmlwdGlvbnMNCnxUaGUgZGVzY3JpcHRpb24gZWxlbWVudCBpcyB1c2VkIGJ5IHRoZSBlamItamFyIGZpbGUgcHJvZHVjZXIgdG8gcHJvdmlkZSB0ZXh0IGRlc2NyaWJpbmcgdGhlIHBhcmVudCBlbGVtZW50LiAgVGhlIGRlc2NyaXB0aW9uIGVsZW1lbnQgc2hvdWxkIGluY2x1ZGUgYW55IGluZm9ybWF0aW9uIHRoYXQgdGhlIGVqYi1qYXIgZmlsZSBwcm9kdWNlciB3YW50cyB0byBwcm92aWRlIHRvIHRoZSBjb25zdW1lciBvZiB0aGUgZWpiLWphciBmaWxlIChpLmUuIHRvIHRoZSBEZXBsb3llcikuIFR5cGljYWxseSwgdGhlIHRvb2xzIHVzZWQgYnkgdGhlIGVqYi1qYXIgZmlsZSBjb25zdW1lciB3aWxsIGRpc3BsYXkgdGhlIGRlc2NyaXB0aW9uIHdoZW4gcHJvY2Vzc2luZyB0aGUgcGFyZW50IGVsZW1lbnQuDQoJCSAgICANCgkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpDQoJICAgIG1vZHVsZSAgICAgCSJDb21wb25lbnQgVmlldzo6ZUJBRk1vZGVsczo6RUpCU2NoZW1hOjpNZXRob2RUcmFuc2FjdGlvbiINCgkgICAgcXVpZHUgICAgICAJIjM3ODBFMzYzMDBBMSINCgkgICAgbGFuZ3VhZ2UgICAJIkphdmEiKQ0KCShvYmplY3QgQ2xhc3MgIlNlc3Npb24iDQoJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhhMjU2NjAtODgyNi0xMWUxLTAwMGItMDA1ZDllNmFkZWM0OjEiKSkpDQoJICAgIHF1aWQgICAgICAgCSIzNzgwRTVGOTAxRUIiDQoJICAgIGRvY3VtZW50YXRpb24gCQ0KfFRoZSBzZXNzaW9uLWJlYW5UeXBlIGRlY2xhcmVzIGFuIHNlc3Npb24gYmVhbi4gVGhlDQp8ZGVjbGFyYXRpb24gY29uc2lzdHMgb2Y6DQp8DQp8ICAgIC0gYW4gb3B0aW9uYWwgZGVzY3JpcHRpb24NCnwgICAgLSBhbiBvcHRpb25hbCBkaXNwbGF5IG5hbWUNCnwgICAgLSBhbiBvcHRpb25hbCBpY29uIGVsZW1lbnQgdGhhdCBjb250YWlucyBhIHNtYWxsIGFuZCBhIGxhcmdlDQp8ICAgICAgaWNvbiBmaWxlIG5hbWUNCnwgICAgLSBhIG5hbWUgYXNzaWduZWQgdG8gdGhlIGVudGVycHJpc2UgYmVhbg0KfCAgICAgIGluIHRoZSBkZXBsb3ltZW50IGRlc2NyaXB0aW9uDQp8ICAgIC0gdGhlIG5hbWVzIG9mIHRoZSBzZXNzaW9uIGJlYW4ncyByZW1vdGUgaG9tZSBhbmQNCnwgICAgICByZW1vdGUgaW50ZXJmYWNlcywgaWYgYW55DQp8ICAgIC0gdGhlIG5hbWVzIG9mIHRoZSBzZXNzaW9uIGJlYW4ncyBsb2NhbCBob21lIGFuZA0KfCAgICAgIGxvY2FsIGludGVyZmFjZXMsIGlmIGFueQ0KfCAgICAtIHRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIGJlYW4ncyB3ZWIgc2VydmljZSBlbmRwb2ludA0KfCAgICAgIGludGVyZmFjZSwgaWYgYW55DQp8ICAgIC0gdGhlIHNlc3Npb24gYmVhbidzIGltcGxlbWVudGF0aW9uIGNsYXNzDQp8ICAgIC0gdGhlIHNlc3Npb24gYmVhbidzIHN0YXRlIG1hbmFnZW1lbnQgdHlwZQ0KfCAgICAtIHRoZSBzZXNzaW9uIGJlYW4ncyB0cmFuc2FjdGlvbiBtYW5hZ2VtZW50IHR5cGUNCnwgICAgLSBhbiBvcHRpb25hbCBkZWNsYXJhdGlvbiBvZiB0aGUgYmVhbidzDQp8ICAgICAgZW52aXJvbm1lbnQgZW50cmllcw0KfCAgICAtIGFuIG9wdGlvbmFsIGRlY2xhcmF0aW9uIG9mIHRoZSBiZWFuJ3MgRUpCIHJlZmVyZW5jZXMNCnwgICAgLSBhbiBvcHRpb25hbCBkZWNsYXJhdGlvbiBvZiB0aGUgYmVhbidzIGxvY2FsDQp8ICAgICAgRUpCIHJlZmVyZW5jZXMNCnwgICAgLSBhbiBvcHRpb25hbCBkZWNsYXJhdGlvbiBvZiB0aGUgYmVhbidzIHdlYg0KfCAgICAgIHNlcnZpY2UgcmVmZXJlbmNlcw0KfCAgICAtIGFuIG9wdGlvbmFsIGRlY2xhcmF0aW9uIG9mIHRoZSBzZWN1cml0eSByb2xlDQp8ICAgICAgcmVmZXJlbmNlcw0KfCAgICAtIGFuIG9wdGlvbmFsIGRlY2xhcmF0aW9uIG9mIHRoZSBzZWN1cml0eSBpZGVudGl0eQ0KfCAgICAgIHRvIGJlIHVzZWQgZm9yIHRoZSBleGVjdXRpb24gb2YgdGhlIGJlYW4ncyBtZXRob2RzDQp8ICAgIC0gYW4gb3B0aW9uYWwgZGVjbGFyYXRpb24gb2YgdGhlIGJlYW4ncyByZXNvdXJjZQ0KfCAgICAgIG1hbmFnZXIgY29ubmVjdGlvbiBmYWN0b3J5IHJlZmVyZW5jZXMNCnwgICAgLSBhbiBvcHRpb25hbCBkZWNsYXJhdGlvbiBvZiB0aGUgYmVhbidzIHJlc291cmNlDQp8ICAgICAgZW52aXJvbm1lbnQgcmVmZXJlbmNlcy4NCnwgICAgLSBhbiBvcHRpb25hbCBkZWNsYXJhdGlvbiBvZiB0aGUgYmVhbidzIG1lc3NhZ2UNCnwgICAgICBkZXN0aW5hdGlvbiByZWZlcmVuY2VzDQp8DQp8VGhlIGVsZW1lbnRzIHRoYXQgYXJlIG9wdGlvbmFsIGFyZSAib3B0aW9uYWwiIGluIHRoZSBzZW5zZQ0KfHRoYXQgdGhleSBhcmUgb21pdHRlZCB3aGVuIGlmIGxpc3RzIHJlcHJlc2VudGVkIGJ5IHRoZW0gYXJlDQp8ZW1wdHkuDQp8DQp8RWl0aGVyIGJvdGggdGhlIGxvY2FsLWhvbWUgYW5kIHRoZSBsb2NhbCBlbGVtZW50cyBvciBib3RoDQp8dGhlIGhvbWUgYW5kIHRoZSByZW1vdGUgZWxlbWVudHMgbXVzdCBiZSBzcGVjaWZpZWQgZm9yIHRoZQ0KfHNlc3Npb24gYmVhbi4NCnwNCnxUaGUgc2VydmljZS1lbmRwb2ludCBlbGVtZW50IG1heSBvbmx5IGJlIHNwZWNpZmllZCBpZiB0aGUNCnxiZWFuIGlzIGEgc3RhdGVsZXNzIHNlc3Npb24gYmVhbi4NCgkgICAgDQoJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCgkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YTI1NjYwLTg4MjYtMTFlMS0wMDBjLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM3ODBFMzIzMDEyMCINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6RW50ZXJwcmlzZUJlYW4iDQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEU3MUEwMTBBIikpDQoJICAgIGNsYXNzX2F0dHJpYnV0ZXMgCShsaXN0IGNsYXNzX2F0dHJpYnV0ZV9saXN0DQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgInRyYW5zYWN0aW9uVHlwZSINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YTI1NjYwLTg4MjYtMTFlMS0wMDBkLTAwNWQ5ZTZhZGVjNDoxIikpDQoJCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkJICAgIHRvb2wgICAgICAgCSJFY29yZSINCgkJCSAgICBuYW1lICAgICAgIAkiaXNVbnNldHRhYmxlIg0KCQkJICAgIHZhbHVlICAgICAgCVRSVUUpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM3ODBFNjI0MDNDRSINCgkJICAgIGRvY3VtZW50YXRpb24gCQ0KfFRoZSB0cmFuc2FjdGlvbi10eXBlIGVsZW1lbnQgc3BlY2lmaWVzIGFuIGVudGVycHJpc2UgYmVhbidzIHRyYW5zYWN0aW9uIG1hbmFnZW1lbnQgdHlwZS4NCnwNCnwNCgkJICAgIA0KCQkgICAgdHlwZSAgICAgICAJIlRyYW5zYWN0aW9uVHlwZSINCgkJICAgIHF1aWR1ICAgICAgCSIzN0ZDQTQ4NzAyRUYiDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikNCgkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAic2Vzc2lvblR5cGUiDQoJCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDAwMC0wMDVkOWU2YWRlYzQ6MSIpKQ0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiRWNvcmUiDQoJCQkgICAgbmFtZSAgICAgICAJImlzVW5zZXR0YWJsZSINCgkJCSAgICB2YWx1ZSAgICAgIAlUUlVFKSkNCgkJICAgIHF1aWQgICAgICAgCSIzNzgwRTY1QjAzN0QiDQoJCSAgICB0eXBlICAgICAgIAkiU2Vzc2lvblR5cGUiDQoJCSAgICBxdWlkdSAgICAgIAkiMzcxQkNBMDcwMTBDIg0KCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpKQ0KCSAgICBtb2R1bGUgICAgIAkiQ29tcG9uZW50IFZpZXc6OmVCQUZNb2RlbHM6OkVKQlNjaGVtYTo6U2Vzc2lvbkJlYW4iDQoJICAgIHF1aWR1ICAgICAgCSIzNzgwRTgxQTAxNTkiDQoJICAgIGxhbmd1YWdlICAgCSJKYXZhIikNCgkob2JqZWN0IENsYXNzICJFbnRpdHkiDQoJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwMDEtMDA1ZDllNmFkZWM0OjEiKSkpDQoJICAgIHF1aWQgICAgICAgCSIzNzgwRTY5NzAzNTEiDQoJICAgIGRvY3VtZW50YXRpb24gCQ0KfFRoZSBlbnRpdHkgZWxlbWVudCBkZWNsYXJlcyBhbiBlbnRpdHkgYmVhbi4gVGhlIGRlY2xhcmF0aW9uIGNvbnNpc3RzIG9mOiBhbiBvcHRpb25hbCBkZXNjcmlwdGlvbjsgb3B0aW9uYWwgZGlzcGxheSBuYW1lOyBvcHRpb25hbCBzbWFsbCBpY29uIGZpbGUgbmFtZTsgb3B0aW9uYWwgbGFyZ2UgaWNvbiBmaWxlIG5hbWU7IGEgdW5pcXVlIG5hbWUgYXNzaWduZWQgdG8gdGhlIGVudGVycHJpc2UgYmVhbiBpbiB0aGUgZGVwbG95bWVudCBkZXNjcmlwdG9yOyB0aGUgbmFtZXMgb2YgdGhlIGVudGl0eSBiZWFuknMgaG9tZSBhbmQgcmVtb3RlIGludGVyZmFjZXMsIGlmIGFueTsgdGhlIG5hbWVzIG9mIHRoZSBlbnRpdHkgYmVhbpJzIGxvY2FsIGhvbWUgYW5kIGxvY2FsIGludGVyZmFjZSwgaWYgYW55OyB0aGUgZW50aXR5IGJlYW6ScyBpbXBsZW1lbnRhdGlvbiBjbGFzczsgdGhlIGVudGl0eSBiZWFuknMgcGVyc2lzdGVuY2UgbWFuYWdlbWVudCB0eXBlOyB0aGUgZW50aXR5IGJlYW6ScyBwcmltYXJ5IGtleSBjbGFzcyBuYW1lOyBhbiBpbmRpY2F0aW9uIG9mIHRoZSBlbnRpdHkgYmVhbpJzIHJlZW50cmFuY3k7IGFuIG9wdGlvbmFsIHNwZWNpZmljYXRpb24gb2YgdGhlIGVudGl0eSBiZWFuknMgY21wLXZlcnNpb247IGFuIG9wdGlvbmFsIHNwZWNpZmljYXRpb24gb2YgdGhlIGVudGl0eSBiZWFuknMgYWJzdHJhY3Qgc2NoZW1hIG5hbWU7IGFuIG9wdGlvbmFsIGxpc3Qgb2YgY29udGFpbmVyLW1hbmFnZWQgZmllbGRzOyBhbiBvcHRpb25hbCBzcGVjaWZpY2F0aW9uIG9mIHRoZSBwcmltYXJ5IGtleSBmaWVsZDsgYW4gb3B0aW9uYWwgZGVjbGFyYXRpb24gb2YgdGhlIGJlYW6ScyBlbnZpcm9ubWVudCBlbnRyaWVzOyBhbiBvcHRpb25hbCBkZWNsYXJhdGlvbiBvZiB0aGUgYmVhbpJzIEVKQiByZWZlcmVuY2VzOyBhbiBvcHRpb25hbCBkZWNsYXJhdGlvbiBvZiB0aGUgYmVhbpJzIGxvY2FsIEVKQiByZWZlcmVuY2VzOyBhbiBvcHRpb25hbCBkZWNsYXJhdGlvbiBvZiB0aGUgc2VjdXJpdHkgcm9sZSByZWZlcmVuY2VzOyBhbiBvcHRpb25hbCBkZWNsYXJhdGlvbiBvZiB0aGUgc2VjdXJpdHkgaWRlbnRpdHkgdG8gYmUgdXNlZCBmb3IgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgYmVhbpJzIG1ldGhvZHM7IGFuIG9wdGlvbmFsIGRlY2xhcmF0aW9uIG9mIHRoZSBiZWFuknMgcmVzb3VyY2UgbWFuYWdlciBjb25uZWN0aW9uIGZhY3RvcnkgcmVmZXJlbmNlczsgYW4gb3B0aW9uYWwgZGVjbGFyYXRpb24gb2YgdGhlIGJlYW6ScyByZXNvdXJjZSBlbnZpcm9ubWVudCByZWZlcmVuY2VzOyBhbiBvcHRpb25hbCBzZXQgb2YgcXVlcnkgZGVjbGFyYXRpb25zIGZvciBmaW5kZXIgYW5kIHNlbGVjdCBtZXRob2RzIGZvciBhbiBlbnRpdHkgYmVhbiB3aXRoIGNtcC12ZXJzaW9uIDIueC4NCnxUaGUgb3B0aW9uYWwgYWJzdHJhY3Qtc2NoZW1hLW5hbWUgZWxlbWVudCBtdXN0IGJlIHNwZWNpZmllZCBmb3IgYW4gZW50aXR5IGJlYW4gd2l0aCBjb250YWluZXIgbWFuYWdlZCBwZXJzaXN0ZW5jZSBhbmQgY21wLXZlcnNpb24gMi54LiBUaGUgb3B0aW9uYWwgcHJpbWtleS1maWVsZCBtYXkgYmUgcHJlc2VudCBpbiB0aGUgZGVzY3JpcHRvciBpZiB0aGUgZW50aXR5knMgcGVyc2lzdGVuY2UtdHlwZSBpcyBDb250YWluZXIuIFRoZSBvcHRpb25hbCBjbXAtdmVyc2lvbiBlbGVtZW50IG1heSBiZSBwcmVzZW50IGluIHRoZSBkZXNjcmlwdG9yIGlmIHRoZSBlbnRpdHmScyBwZXJzaXN0ZW5jZS10eXBlIGlzIENvbnRhaW5lci4gSWYgdGhlIHBlcnNpc3RlbmNlLXR5cGUgaXMgQ29udGFpbmVyIGFuZCB0aGUgY21wLXZlcnNpb24gZWxlbWVudCBpcyBub3Qgc3BlY2lmaWVkLCBpdHMgdmFsdWUgZGVmYXVsdHMgdG8gMi54Lg0KfFRoZSBvcHRpb25hbCBob21lIGFuZCByZW1vdGUgZWxlbWVudHMgbXVzdCBiZSBzcGVjaWZpZWQgaWYgdGhlIGVudGl0eSBiZWFuIGNtcC12ZXJzaW9uIGlzIDEueC4NCnxUaGUgb3B0aW9uYWwgbG9jYWwtaG9tZSBhbmQgbG9jYWwgZWxlbWVudHMgbXVzdCBiZSBzcGVjaWZpZWQgaWYgdGhlIGVudGl0eSBiZWFuIGhhcyBhIGxvY2FsIGhvbWUgYW5kIGxvY2FsIGludGVyZmFjZS4NCnxUaGUgb3B0aW9uYWwgcXVlcnkgZWxlbWVudHMgbXVzdCBiZSBwcmVzZW50IGlmIHRoZSBwZXJzaXN0ZW5jZS10eXBlIGlzIENvbnRhaW5lciBhbmQgdGhlIGNtcC12ZXJzaW9uIGlzIDIueCBhbmQgcXVlcnkgbWV0aG9kcyBvdGhlciB0aGFuIGZpbmRCeVByaW1hcnlLZXkgaGF2ZSBiZWVuIGRlZmluZWQgZm9yIHRoZSBlbnRpdHkgYmVhbi4NCnxUaGUgb3RoZXIgZWxlbWVudHMgdGhhdCBhcmUgb3B0aW9uYWwgYXJlICJvcHRpb25hbCIgaW4gdGhlIHNlbnNlIHRoYXQgdGhleSBhcmUgb21pdHRlZCBpZiB0aGUgbGlzdHMgcmVwcmVzZW50ZWQgYnkgdGhlbSBhcmUgZW1wdHkuIEF0IGxlYXN0IG9uZSBjbXAtZmllbGQgZWxlbWVudCBtdXN0IGJlIHByZXNlbnQgaW4gdGhlIGRlc2NyaXB0b3IgaWYNCnx0aGUgZW50aXR5knMgcGVyc2lzdGVuY2UtdHlwZSBpcyBDb250YWluZXIgYW5kIHRoZSBjbXAtdmVyc2lvbiBpcyAxLngsIGFuZCBub25lIG11c3Qgbm90IGJlIHByZXNlbnQgaWYgdGhlIGVudGl0eZJzIHBlcnNpc3RlbmNlLXR5cGUgaXMgQmVhbi4NCgkgICAgDQoJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCgkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDAyLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM3ODBFODA4MDA5NSINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6RW50ZXJwcmlzZUJlYW4iDQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEU3MUEwMTBBIikpDQoJICAgIGNsYXNzX2F0dHJpYnV0ZXMgCShsaXN0IGNsYXNzX2F0dHJpYnV0ZV9saXN0DQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgInJlZW50cmFudCINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDAzLTAwNWQ5ZTZhZGVjNDoxIikpDQoJCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkJICAgIHRvb2wgICAgICAgCSJFY29yZSINCgkJCSAgICBuYW1lICAgICAgIAkiaXNVbnNldHRhYmxlIg0KCQkJICAgIHZhbHVlICAgICAgCVRSVUUpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM3ODBFNkEyMDMxQiINCgkJICAgIGRvY3VtZW50YXRpb24gCQ0KfFRoZSByZWVudHJhbnQgZWxlbWVudCBzcGVjaWZpZXMgd2hldGhlciBhbiBlbnRpdHkgYmVhbiBpcyByZWVudHJhbnQgb3Igbm90Lg0KfA0KCQkgICAgDQoJCSAgICB0eXBlICAgICAgIAkiYm9vbGVhbiINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkNCgkgICAgbW9kdWxlICAgICAJIkNvbXBvbmVudCBWaWV3OjplQkFGTW9kZWxzOjpFSkJTY2hlbWE6OkVudGl0eUJlYW4iDQoJICAgIHF1aWR1ICAgICAgCSIzNzgwRTgxQTAxNUEiDQoJICAgIGxhbmd1YWdlICAgCSJKYXZhIikNCgkob2JqZWN0IENsYXNzICJFbnRlcnByaXNlQmVhbiINCgkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDAwNC0wMDVkOWU2YWRlYzQ6MSIpKQ0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIkphdmEiDQoJCSAgICBuYW1lICAgICAgIAkiRmluYWwiDQoJCSAgICB2YWx1ZSAgICAgIAlGQUxTRSkNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJKYXZhIg0KCQkgICAgbmFtZSAgICAgICAJIlN0YXRpYyINCgkJICAgIHZhbHVlICAgICAgCUZBTFNFKQ0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIkphdmEiDQoJCSAgICBuYW1lICAgICAgIAkiR2VuZXJhdGVEZWZhdWx0Q29uc3RydWN0b3IiDQoJCSAgICB2YWx1ZSAgICAgIAlUUlVFKQ0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIkphdmEiDQoJCSAgICBuYW1lICAgICAgIAkiR2VuZXJhdGVGaW5hbGl6ZXIiDQoJCSAgICB2YWx1ZSAgICAgIAlGQUxTRSkNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJKYXZhIg0KCQkgICAgbmFtZSAgICAgICAJIkdlbmVyYXRlU3RhdGljSW5pdGlhbGl6ZXIiDQoJCSAgICB2YWx1ZSAgICAgIAlGQUxTRSkNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJKYXZhIg0KCQkgICAgbmFtZSAgICAgICAJIkdlbmVyYXRlSW5zdGFuY2VJbml0aWFsaXplciINCgkJICAgIHZhbHVlICAgICAgCUZBTFNFKQ0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIkphdmEiDQoJCSAgICBuYW1lICAgICAgIAkiR2VuZXJhdGVDb2RlIg0KCQkgICAgdmFsdWUgICAgICAJVFJVRSkNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJKYXZhIg0KCQkgICAgbmFtZSAgICAgICAJIkRpc2FibGVBdXRvU3luYyINCgkJICAgIHZhbHVlICAgICAgCUZBTFNFKQ0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIkphdmEiDQoJCSAgICBuYW1lICAgICAgIAkiQ29uc3RydWN0b3JJcyINCgkJICAgIHZhbHVlICAgICAgCSgiQ3Rvcl9TZXQiIDYyKSkpDQoJICAgIHF1aWQgICAgICAgCSIzNzgwRTcxQTAxMEEiDQoJICAgIGRvY3VtZW50YXRpb24gCQ0KfEVudGVycHJpc2VKYXZhQmVhbiBpcyBhIGNsYXNzLiAgSXQgY2FuIGhhdmUgaW5zdGFuY2VzLCBzb21lb25lIGNvdWxkIHdyaXRlIGFuIA0KfGluc3RhbmNlIGRvY3VtZW50IGNvbnRhaW5pbmcgRGVwYXJ0bWVudHMgYW5kIEVtcGxveWVlcy4gIEl0IGFsc28gaGFzIA0KfGF0dHJpYnV0ZXMsIG9wZXJhdGlvbnMsIGFuZCBhc3NvY2lhdGlvbnMuICBUaGVzZSBhcmUgYWN0dWFsbHkgZGVyaXZlZC9maWx0ZXJlZCANCnxmcm9tIGl0cyBpbXBsZW1lbnRhdGlvbiBjbGFzc2VzIGFuZCBpbnRlcmZhY2VzLiAgRm9yIG1hcHBpbmcgYW5kIGJyb3dzaW5nIA0KfHB1cnBvc2VzLCB0aG91Z2gsIHlvdSB3b3VsZCBsaWtlIHRoZSBFSkIgdG8gYXBwZWFyIGFzIGEgY2xhc3MuICANCnwNCnxJbiB0aGlzIGxpZ2h0LCBldmVuIFNlc3Npb24gQmVhbnMgY2FuIGhhdmUgYXNzb2NpYXRpb25zIGFuZCBwcm9wZXJ0aWVzIA0KfGltcGxlbWVudGVkIGJ5IHRoZWlyIGJlYW4uICBGb3IgZXhhbXBsZSwgaXQgd291bGQgYmUgbWVhbmluZ2Z1bCB0byBkZXNjcmliZSANCnxhc3NvY2lhdGlvbnMgZnJvbSBhIFNlc3Npb24gdG8gdGhlIEVudGl0aWVzIHdoaWNoIGl0IHVzZXMgdG8gcGVyZm9ybSBpdHMgd29yay4NCnwNCgkgICAgDQoJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCgkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQpDQoJCSAgICBxdWlkICAgICAgIAkiM0U0RDU0QzMwMDkwIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6Y29tbW9uOjpKTkRJRW52UmVmc0dyb3VwIg0KCQkgICAgcXVpZHUgICAgICAJIjNFNEQ1Mzk1MDM0OSIpKQ0KCSAgICBjbGFzc19hdHRyaWJ1dGVzIAkobGlzdCBjbGFzc19hdHRyaWJ1dGVfbGlzdA0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJuYW1lIg0KCQkgICAgcXVpZCAgICAgICAJIjNFODg1RDQ5MDI5MCINCgkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpDQoJICAgIG1vZHVsZSAgICAgCSJDb21wb25lbnQgVmlldzo6ZUJBRk1vZGVsczo6RUpCU2NoZW1hOjpFbnRlcnByaXNlSmF2YUJlYW4iDQoJICAgIHF1aWR1ICAgICAgCSIzNzgwRTgxQTAxNUIiDQoJICAgIGxhbmd1YWdlICAgCSJKYXZhIg0KCSAgICBhYnN0cmFjdCAgIAlUUlVFKQ0KCShvYmplY3QgQ2xhc3MgIlRyYW5zYWN0aW9uQXR0cmlidXRlVHlwZSINCgkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDAwYi0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkgICAgcXVpZCAgICAgICAJIjM3OUY2MzQ1MDNDMCINCgkgICAgZG9jdW1lbnRhdGlvbiAJDQp8Tm90U3VwcG9ydGVkPTENCnxTdXBwb3J0cz0yDQp8UmVxdWlyZWQ9Mw0KfFJlcXVpcmVzTmV3PTQNCnxNYW5kYXRvcnk9NQ0KfE5ldmVyPTYNCnwNCgkgICAgDQoJICAgIHN0ZXJlb3R5cGUgCSJlbnVtZXJhdGlvbiINCgkgICAgY2xhc3NfYXR0cmlidXRlcyAJKGxpc3QgY2xhc3NfYXR0cmlidXRlX2xpc3QNCgkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiTm90U3VwcG9ydGVkIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwMGMtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzgwNTU3M0MwMDdEIg0KCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpDQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgIlN1cHBvcnRzIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwMGQtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzgwNTU3NEYwMzczIg0KCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpDQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgIlJlcXVpcmVkIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwMGUtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzgwNTU3NTQwMTdDIg0KCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpDQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgIlJlcXVpcmVzTmV3Ig0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwMGYtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzgwNTU3NUQwMUIxIg0KCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpDQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgIk1hbmRhdG9yeSINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDEwLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM4MDU1NzYxMDFBQyINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKQ0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJOZXZlciINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDExLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM4MDU1NzY5MDEyMiINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkNCgkgICAgbGFuZ3VhZ2UgICAJIkphdmEiKQ0KCShvYmplY3QgQ2xhc3MgIlRyYW5zYWN0aW9uVHlwZSINCgkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDAxMi0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkgICAgcXVpZCAgICAgICAJIjM3RkNBNDg3MDJFRiINCgkgICAgZG9jdW1lbnRhdGlvbiAJDQp8QmVhbj0xDQp8Q29udGFpbmVyPTINCgkgICAgDQoJICAgIHN0ZXJlb3R5cGUgCSJlbnVtZXJhdGlvbiINCgkgICAgY2xhc3NfYXR0cmlidXRlcyAJKGxpc3QgY2xhc3NfYXR0cmlidXRlX2xpc3QNCgkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiQmVhbiINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDEzLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM4MDU1MUQzMDE1MyINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKQ0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJDb250YWluZXIiDQoJCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDAxNC0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkJICAgIHF1aWQgICAgICAgCSIzODA1NTFEQzAxMzgiDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpDQoJICAgIGxhbmd1YWdlICAgCSJKYXZhIikNCgkob2JqZWN0IENsYXNzICJTZXNzaW9uVHlwZSINCgkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDAxNS0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkgICAgcXVpZCAgICAgICAJIjM3MUJDQTA3MDEwQyINCgkgICAgZG9jdW1lbnRhdGlvbiAJDQp8U3RhdGVmdWw9MQ0KfFN0YXRlbGVzcz0yDQoJICAgIA0KCSAgICBzdGVyZW90eXBlIAkiZW51bWVyYXRpb24iDQoJICAgIGNsYXNzX2F0dHJpYnV0ZXMgCShsaXN0IGNsYXNzX2F0dHJpYnV0ZV9saXN0DQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgIlN0YXRlZnVsIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwMTYtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzcxQkNBMTUwMDgwIg0KCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpDQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgIlN0YXRlbGVzcyINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDE3LTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM3MUJDQTIyMDExNSINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkpDQoJKG9iamVjdCBDbGFzcyAiRUpCTWV0aG9kQ2F0ZWdvcnkiDQoJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwMTgtMDA1ZDllNmFkZWM0OjEiKSkpDQoJICAgIHF1aWQgICAgICAgCSIzODEwRDAzODAzNDQiDQoJICAgIGRvY3VtZW50YXRpb24gCSJUaGUgdmFsaWQgRUpCIG1ldGhvZCBjYXRlZ29yeSBuYW1lcyBhcmU6IEVKQkhPTUVNRVRIT0QsIEVKQkNSRUFURU1FVEhPRCwgRUpCRklOREVSTUVUSE9ELCBFSkJSRU1PVEVNRVRIT0QuIg0KCSAgICBsYW5ndWFnZSAgIAkiSmF2YSIpDQoJKG9iamVjdCBDbGFzcyAiRUpCSmFyIg0KCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCShvYmplY3QgQXR0cmlidXRlDQoJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDE5LTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCSAgICBxdWlkICAgICAgIAkiMzcxQkM1NUQwMUUxIg0KCSAgICBkb2N1bWVudGF0aW9uIAkNCnxUaGUgcm9vdCBlbGVtZW50IG9mIHRoZSBFSkIgZGVwbG95bWVudCBkZXNjcmlwdG9yLiBJdCBjb250YWlucyBhbiBvcHRpb25hbCBkZXNjcmlwdGlvbiBvZiB0aGUgZWpiLWphciBmaWxlOyBvcHRpb25hbCBkaXNwbGF5IG5hbWU7IG9wdGlvbmFsIHNtYWxsIGljb24gZmlsZSBuYW1lOyBvcHRpb25hbCBsYXJnZSBpY29uIGZpbGUNCnxuYW1lOyBtYW5kYXRvcnkgc3RydWN0dXJhbCBpbmZvcm1hdGlvbiBhYm91dCBhbGwgaW5jbHVkZWQgZW50ZXJwcmlzZSBiZWFuczsgYSBkZXNjcmlwdG9yIGZvciBjb250YWluZXIgbWFuYWdlZCByZWxhdGlvbnNoaXBzLCBpZiBhbnk7IGFuIG9wdGlvbmFsIGFwcGxpY2F0aW9uLWFzc2VtYmx5IGRlc2NyaXB0b3I7IGFuZCBhbiBvcHRpb25hbCBuYW1lIG9mIGFuIGVqYi1jbGllbnQtamFyIGZpbGUgZm9yIHRoZSBlamItamFyLg0KCSAgICANCgkgICAgc3RlcmVvdHlwZSAJImNvbXBvbmVudCINCgkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KCQkgICAgcXVpZCAgICAgICAJIjQwMjNCMTU4MDM0NyINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmNvbW1vbjo6Q29tcGF0aWJpbGl0eURlc2NyaXB0aW9uR3JvdXAiDQoJCSAgICBxdWlkdSAgICAgIAkiNDAyM0FERjIwMTk3IikpDQoJICAgIGNsYXNzX2F0dHJpYnV0ZXMgCShsaXN0IGNsYXNzX2F0dHJpYnV0ZV9saXN0DQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImVqYkNsaWVudEphciINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDFlLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM4QkRBOEIwMDBFMCINCgkJICAgIGRvY3VtZW50YXRpb24gCQ0KfFRoZSBvcHRpb25hbCBlamItY2xpZW50LWphciBlbGVtZW50IHNwZWNpZmllcyBhIEpBUiBmaWxlIHRoYXQgY29udGFpbnMgdGhlIGNsYXNzIGZpbGVzIG5lY2Vzc2FyeSBmb3IgYSBjbGllbnQgcHJvZ3JhbSB0byBhY2Nlc3MgdGhlIGVudGVycHJpc2UgYmVhbnMgaW4gdGhlIGVqYi1qYXIgZmlsZS4gVGhlIERlcGxveWVyIHNob3VsZCBtYWtlIHRoZSBlamItY2xpZW50IEpBUiBmaWxlIGFjY2Vzc2libGUgdG8gdGhlIGNsaWVudCdzIGNsYXNzLWxvYWRlci4gIEV4YW1wbGU6PGVqYi1jbGllbnQtamFyPmVtcGxveWVlX3NlcnZpY2VfY2xpZW50LmphcjwvZWpiLWNsaWVudC1qYXI+DQp8DQoJCSAgICANCgkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikNCgkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAidmVyc2lvbiINCgkJICAgIHF1aWQgICAgICAgCSIzRTU1QUUzQjAyMTciDQoJCSAgICBkb2N1bWVudGF0aW9uIAkNCnxAc2luY2UgSjJFRTEuNA0KfFRoZSB2ZXJzaW9uIHNwZWNpZmllcyB0aGUgdmVyc2lvbiBvZiB0aGUNCnwgICAgRUpCIHNwZWNpZmljYXRpb24gdGhhdCB0aGUgaW5zdGFuY2UgZG9jdW1lbnQgbXVzdA0KfCAgICBjb21wbHkgd2l0aC4gVGhpcyBpbmZvcm1hdGlvbiBlbmFibGVzIGRlcGxveW1lbnQgdG9vbHMNCnwgICAgdG8gdmFsaWRhdGUgYSBwYXJ0aWN1bGFyIEVKQiBEZXBsb3ltZW50DQp8ICAgIERlc2NyaXB0b3Igd2l0aCByZXNwZWN0IHRvIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiB0aGUgRUpCDQp8ICAgIHNjaGVtYS4NCgkJICAgIA0KCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkpDQoJKG9iamVjdCBDbGFzcyAiTWV0aG9kRWxlbWVudCINCgkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDAxZi0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkgICAgcXVpZCAgICAgICAJIjM5MkVEMjJEMDA4QSINCgkgICAgZG9jdW1lbnRhdGlvbiAJDQp8VGhlIG1ldGhvZCBlbGVtZW50IGlzIHVzZWQgdG8gZGVub3RlIGEgbWV0aG9kIG9mIGFuIGVudGVycHJpc2UgYmVhbidzDQp8aG9tZSBvciByZW1vdGUgaW50ZXJmYWNlLCBvciBhIHNldCBvZiBtZXRob2RzLiBUaGUgZWpiLW5hbWUgZWxlbWVudA0KfG11c3QgYmUgdGhlIG5hbWUgb2Ygb25lIG9mIHRoZSBlbnRlcnByaXNlIGJlYW5zIGluIGRlY2xhcmVkIGluIHRoZQ0KfGRlcGxveW1lbnQgZGVzY3JpcHRvcjsgdGhlIG9wdGlvbmFsIG1ldGhvZC1pbnRmIGVsZW1lbnQgYWxsb3dzIHRvDQp8ZGlzdGluZ3Vpc2ggYmV0d2VlbiBhIG1ldGhvZCB3aXRoIHRoZSBzYW1lIHNpZ25hdHVyZSB0aGF0IGlzIGRlZmluZWQgaW4NCnxib3RoIHRoZSBob21lIGFuZCByZW1vdGUgaW50ZXJmYWNlOyB0aGUgbWV0aG9kLW5hbWUgZWxlbWVudCBzcGVjaWZpZXMNCnx0aGUgbWV0aG9kIG5hbWU7IGFuZCB0aGUgb3B0aW9uYWwgbWV0aG9kLXBhcmFtcyBlbGVtZW50cyBpZGVudGlmeSBhDQp8c2luZ2xlIG1ldGhvZCBhbW9uZyBtdWx0aXBsZSBtZXRob2RzIHdpdGggYW4gb3ZlcmxvYWRlZCBtZXRob2QgbmFtZS4NCnwNCnxUaGVyZSBhcmUgdGhyZWUgcG9zc2libGUgc3R5bGVzIG9mIHRoZSBtZXRob2QgZWxlbWVudCBzeW50YXg6DQp8DQp8MS4gCTxtZXRob2Q+DQp8CQk8ZWpiLW5hbWU+RUpCTkFNRTwvZWpiLW5hbWU+DQp8ICAgCQk8bWV0aG9kLW5hbWU+KjwvbWV0aG9kLW5hbWU+DQp8CTwvbWV0aG9kPg0KfA0KfCAgIFRoaXMgc3R5bGUgaXMgdXNlZCB0byByZWZlciB0byBhbGwgdGhlIG1ldGhvZHMgb2YgdGhlIHNwZWNpZmllZA0KfCAgIGVudGVycHJpc2UgYmVhbidzIGhvbWUgYW5kIHJlbW90ZSBpbnRlcmZhY2VzLg0KfA0KfDIuIAk8bWV0aG9kPg0KfAkJPGVqYi1uYW1lPkVKQk5BTUU8L2VqYi1uYW1lPg0KfCAgIAkJPG1ldGhvZC1uYW1lPk1FVEhPRDwvbWV0aG9kLW5hbWU+DQp8CTwvbWV0aG9kPj4NCnwNCnwgICBUaGlzIHN0eWxlIGlzIHVzZWQgdG8gcmVmZXIgdG8gdGhlIHNwZWNpZmllZCBtZXRob2Qgb2YgdGhlDQp8ICAgc3BlY2lmaWVkIGVudGVycHJpc2UgYmVhbi4gSWYgdGhlcmUgYXJlIG11bHRpcGxlIG1ldGhvZHMgd2l0aA0KfCAgIHRoZSBzYW1lIG92ZXJsb2FkZWQgbmFtZSwgdGhlIGVsZW1lbnQgb2YgdGhpcyBzdHlsZSByZWZlcnMgdG8NCnwgICBhbGwgdGhlIG1ldGhvZHMgd2l0aCB0aGUgb3ZlcmxvYWRlZCBuYW1lLg0KfA0KfA0KfA0KfA0KfA0KfDMuIAk8bWV0aG9kPg0KfAkJPGVqYi1uYW1lPkVKQk5BTUU8L2VqYi1uYW1lPg0KfCAgIAkJPG1ldGhvZC1uYW1lPk1FVEhPRDwvbWV0aG9kLW5hbWU+DQp8CQk8bWV0aG9kLXBhcmFtcz4NCnwgICAJCQk8bWV0aG9kLXBhcmFtPlBBUkFNLTE8L21ldGhvZC1wYXJhbT4NCnwgICAJCQk8bWV0aG9kLXBhcmFtPlBBUkFNLTI8L21ldGhvZC1wYXJhbT4NCnwgICAgICAgICAgCQkJLi4uDQp8ICAgCQkJPG1ldGhvZC1wYXJhbT5QQVJBTS1uPC9tZXRob2QtcGFyYW0+DQp8CQk8L21ldGhvZC1wYXJhbXM+DQp8CTxtZXRob2Q+CQ0KfA0KfCAgIFRoaXMgc3R5bGUgaXMgdXNlZCB0byByZWZlciB0byBhIHNpbmdsZSBtZXRob2Qgd2l0aGluIGEgc2V0IG9mDQp8ICAgbWV0aG9kcyB3aXRoIGFuIG92ZXJsb2FkZWQgbmFtZS4gUEFSQU0tMSB0aHJvdWdoIFBBUkFNLW4gYXJlIHRoZQ0KfCAgIGZ1bGx5LXF1YWxpZmllZCBKYXZhIHR5cGVzIG9mIHRoZSBtZXRob2QncyBpbnB1dCBwYXJhbWV0ZXJzIChpZg0KfCAgIHRoZSBtZXRob2QgaGFzIG5vIGlucHV0IGFyZ3VtZW50cywgdGhlIG1ldGhvZC1wYXJhbXMgZWxlbWVudA0KfCAgIGNvbnRhaW5zIG5vIG1ldGhvZC1wYXJhbSBlbGVtZW50cykuIEFycmF5cyBhcmUgc3BlY2lmaWVkIGJ5IHRoZQ0KfCAgIGFycmF5IGVsZW1lbnQncyB0eXBlLCBmb2xsb3dlZCBieSBvbmUgb3IgbW9yZSBwYWlyIG9mIHNxdWFyZQ0KfCAgIGJyYWNrZXRzIChlLmcuIGludFtdW10pLg0KfA0KfA0KfFVzZWQgaW46IG1ldGhvZC1wZXJtaXNzaW9uIGFuZCBjb250YWluZXItdHJhbnNhY3Rpb24NCnwNCnxFeGFtcGxlczoNCnwNCnwgICAgU3R5bGUgMTogVGhlIGZvbGxvd2luZyBtZXRob2QgZWxlbWVudCByZWZlcnMgdG8gYWxsIHRoZSBtZXRob2RzIG9mDQp8CQl0aGUgRW1wbG95ZWVTZXJ2aWNlIGJlYW4ncyBob21lIGFuZCByZW1vdGUgaW50ZXJmYWNlczoNCnwNCnwJCTxtZXRob2Q+DQp8CQkJPGVqYi1uYW1lPkVtcGxveWVlU2VydmljZTwvZWpiLW5hbWU+DQp8CQkJPG1ldGhvZC1uYW1lPio8L21ldGhvZC1uYW1lPg0KfAkJPC9tZXRob2Q+DQp8DQp8CVN0eWxlIDI6IFRoZSBmb2xsb3dpbmcgbWV0aG9kIGVsZW1lbnQgcmVmZXJzIHRvIGFsbCB0aGUgY3JlYXRlDQp8CQltZXRob2RzIG9mIHRoZSBFbXBsb3llZVNlcnZpY2UgYmVhbidzIGhvbWUgaW50ZXJmYWNlOg0KfA0KfCAgICAJCTxtZXRob2Q+DQp8CQkJPGVqYi1uYW1lPkVtcGxveWVlU2VydmljZTwvZWpiLW5hbWU+DQp8CQkJPG1ldGhvZC1uYW1lPmNyZWF0ZTwvbWV0aG9kLW5hbWU+DQp8CQk8L21ldGhvZD4NCnwNCnwJU3R5bGUgMzogVGhlIGZvbGxvd2luZyBtZXRob2QgZWxlbWVudCByZWZlcnMgdG8gdGhlDQp8CQljcmVhdGUoU3RyaW5nIGZpcnN0TmFtZSwgU3RyaW5nIExhc3ROYW1lKSBtZXRob2Qgb2YgdGhlDQp8CSAJRW1wbG95ZWVTZXJ2aWNlIGJlYW4ncyBob21lIGludGVyZmFjZS4NCnwNCnwgICAgCQk8bWV0aG9kPg0KfAkJCTxlamItbmFtZT5FbXBsb3llZVNlcnZpY2U8L2VqYi1uYW1lPg0KfAkJCTxtZXRob2QtbmFtZT5jcmVhdGU8L21ldGhvZC1uYW1lPg0KfAkJCTxtZXRob2QtcGFyYW1zPg0KfAkJCQk8bWV0aG9kLXBhcmFtPmphdmEubGFuZy5TdHJpbmc8L21ldGhvZC1wYXJhbT4NCnwJCQkJPG1ldGhvZC1wYXJhbT5qYXZhLmxhbmcuU3RyaW5nPC9tZXRob2QtcGFyYW0+DQp8CQkJPC9tZXRob2QtcGFyYW1zPg0KfAkJPC9tZXRob2Q+DQp8DQp8CQ0KfAlUaGUgZm9sbG93aW5nIGV4YW1wbGUgaWxsdXN0cmF0ZXMgYSBTdHlsZSAzIGVsZW1lbnQgd2l0aA0KfAltb3JlIGNvbXBsZXggcGFyYW1ldGVyIHR5cGVzLiBUaGUgbWV0aG9kDQp8CQkJZm9vYmFyKGNoYXIgcywgaW50IGksIGludFtdIGlhciwgbXlwYWNrYWdlLk15Q2xhc3MgbXljbCwNCnwJCQkJbXlwYWNrYWdlLk15Q2xhc3NbXVtdIG15Y2xhYXIpDQp8ICAgICAgICB3b3VsZCBiZSBzcGVjaWZpZWQgYXM6DQp8DQp8ICAgIAkJPG1ldGhvZD4NCnwJCQk8ZWpiLW5hbWU+RW1wbG95ZWVTZXJ2aWNlPC9lamItbmFtZT4NCnwJCQk8bWV0aG9kLW5hbWU+Zm9vYmFyPC9tZXRob2QtbmFtZT4NCnwJCQk8bWV0aG9kLXBhcmFtcz4NCnwJCQkJPG1ldGhvZC1wYXJhbT5jaGFyPC9tZXRob2QtcGFyYW0+DQp8CQkJCTxtZXRob2QtcGFyYW0+aW50PC9tZXRob2QtcGFyYW0+DQp8CQkJCTxtZXRob2QtcGFyYW0+aW50W108L21ldGhvZC1wYXJhbT4NCnwJCQkJPG1ldGhvZC1wYXJhbT5teXBhY2thZ2UuTXlDbGFzczwvbWV0aG9kLXBhcmFtPg0KfAkJCQk8bWV0aG9kLXBhcmFtPm15cGFja2FnZS5NeUNsYXNzW11bXTwvbWV0aG9kLXBhcmFtPg0KfAkJCTwvbWV0aG9kLXBhcmFtcz4NCnwJCTwvbWV0aG9kPg0KfA0KfAlUaGUgb3B0aW9uYWwgbWV0aG9kLWludGYgZWxlbWVudCBjYW4gYmUgdXNlZCB3aGVuIGl0IGJlY29tZXMNCnwgICBuZWNlc3NhcnkgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIGEgbWV0aG9kIGRlZmluZWQgaW4gdGhlIGhvbWUNCnwgICBpbnRlcmZhY2UgYW5kIGEgbWV0aG9kIHdpdGggdGhlIHNhbWUgbmFtZSBhbmQgc2lnbmF0dXJlIHRoYXQgaXMNCnwgICBkZWZpbmVkIGluIHRoZSByZW1vdGUgaW50ZXJmYWNlLg0KfA0KfAlGb3IgZXhhbXBsZSwgdGhlIG1ldGhvZCBlbGVtZW50DQp8DQp8ICAgCQk8bWV0aG9kPg0KfAkJCTxlamItbmFtZT5FbXBsb3llZVNlcnZpY2U8L2VqYi1uYW1lPg0KfAkJCTxtZXRob2QtaW50Zj5SZW1vdGU8L21ldGhvZC1pbnRmPg0KfAkJCTxtZXRob2QtbmFtZT5jcmVhdGU8L21ldGhvZC1uYW1lPg0KfAkJCTxtZXRob2QtcGFyYW1zPg0KfAkJCQk8bWV0aG9kLXBhcmFtPmphdmEubGFuZy5TdHJpbmc8L21ldGhvZC1wYXJhbT4NCnwJCQkJPG1ldGhvZC1wYXJhbT5qYXZhLmxhbmcuU3RyaW5nPC9tZXRob2QtcGFyYW0+DQp8CQkJPC9tZXRob2QtcGFyYW1zPg0KfAkJPC9tZXRob2Q+DQp8DQp8CWNhbiBiZSB1c2VkIHRvIGRpZmZlcmVudGlhdGUgdGhlIGNyZWF0ZShTdHJpbmcsIFN0cmluZykgbWV0aG9kDQp8ICAgZGVmaW5lZCBpbiB0aGUgcmVtb3RlIGludGVyZmFjZSBmcm9tIHRoZSBjcmVhdGUoU3RyaW5nLCBTdHJpbmcpDQp8ICAgbWV0aG9kIGRlZmluZWQgaW4gdGhlIGhvbWUgaW50ZXJmYWNlLCB3aGljaCB3b3VsZCBiZSBkZWZpbmVkIGFzDQp8DQp8ICAgCQk8bWV0aG9kPg0KfAkJCTxlamItbmFtZT5FbXBsb3llZVNlcnZpY2U8L2VqYi1uYW1lPg0KfAkJCTxtZXRob2QtaW50Zj5Ib21lPC9tZXRob2QtaW50Zj4NCnwJCQk8bWV0aG9kLW5hbWU+Y3JlYXRlPC9tZXRob2QtbmFtZT4NCnwJCQk8bWV0aG9kLXBhcmFtcz4NCnwJCQkJPG1ldGhvZC1wYXJhbT5qYXZhLmxhbmcuU3RyaW5nPC9tZXRob2QtcGFyYW0+DQp8CQkJCTxtZXRob2QtcGFyYW0+amF2YS5sYW5nLlN0cmluZzwvbWV0aG9kLXBhcmFtPg0KfAkJCTwvbWV0aG9kLXBhcmFtcz4NCnwJCTwvbWV0aG9kPg0KfA0KCSAgICANCgkgICAgY2xhc3NfYXR0cmlidXRlcyAJKGxpc3QgY2xhc3NfYXR0cmlidXRlX2xpc3QNCgkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAibmFtZSINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDIwLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM5MkVEMjY0MDM3OCINCgkJICAgIGRvY3VtZW50YXRpb24gCQ0KfFRoZSBtZXRob2QtbmFtZSBlbGVtZW50IGNvbnRhaW5zIGEgbmFtZSBvZiBhbiBlbnRlcnByaXNlIGJlYW4gbWV0aG9kLA0KfG9yIHRoZSBhc3RlcmlzayAoKikgY2hhcmFjdGVyLiBUaGUgYXN0ZXJpc2sgaXMgdXNlZCB3aGVuIHRoZSBlbGVtZW50DQp8ZGVub3RlcyBhbGwgdGhlIG1ldGhvZHMgb2YgYW4gZW50ZXJwcmlzZSBiZWFuJ3MgcmVtb3RlIGFuZCBob21lDQp8aW50ZXJmYWNlcy4NCnwNCgkJICAgIA0KCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKQ0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJwYXJtcyINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDIxLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM5MkVEMjY0MDM5NiINCgkJICAgIGRvY3VtZW50YXRpb24gCQ0KfFRoZSBtZXRob2QtcGFyYW1zIGVsZW1lbnQgY29udGFpbnMgYSBsaXN0IG9mIHRoZSBmdWxseS1xdWFsaWZpZWQgSmF2YSB0eXBlIG5hbWVzIG9mIHRoZSBtZXRob2QgcGFyYW1ldGVycy4gIEluIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHRoaXMgaXMgYSBzcGFjZSBkZWxpbWl0dGVkIFN0cmluZy4gIEEgbnVsbCBzdHJpbmcgaW5kaWNhdGVzIGEgZ2VuZXJpYyBtZXRob2QgZWxlbWVudCB0aGF0IGNhbiBhcHBseSB0byBtdWx0aXBsZSBtZXRob2RzIHdpdGggdGhlIHNhbWUgbmFtZS4gIEFuIGVtcHR5IHN0cmluZyBpbmRpY2F0ZXMgYSBtZXRob2Qgd2l0aCB6ZXJvIHBhcmFtZXRlcnMuICBJbiBmdXR1cmUgaW1wbGVtZW50YXRpb25zIChwb3N0IFY1KSwgdGhpcyBmaWVsZCB3aWxsIGJlIGRlcHJlY2F0ZWQgYW5kIG1pZ3JhdGVkIHRvIHVzZSB0aGUgbXVsdGktdmFsdWVkIHBhcmFtcyBmaWVsZCBhbmQgdGhlIGlzWmVyb1BhcmFtcyBmbGFnLg0KfA0KCQkgICAgDQoJCSAgICB0eXBlICAgICAgIAkiU3RyaW5nIg0KCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpDQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgInR5cGUiDQoJCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDAyMi0wMDVkOWU2YWRlYzQ6MSIpKQ0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiRWNvcmUiDQoJCQkgICAgbmFtZSAgICAgICAJImlzVW5zZXR0YWJsZSINCgkJCSAgICB2YWx1ZSAgICAgIAlUUlVFKSkNCgkJICAgIHF1aWQgICAgICAgCSIzOTJFRDI2NDAzQjQiDQoJCSAgICB0eXBlICAgICAgIAkiTWV0aG9kRWxlbWVudEtpbmQiDQoJCSAgICBxdWlkdSAgICAgIAkiMzkyRUQyRTcwMjQwIg0KCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpDQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImRlc2NyaXB0aW9uIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwMjMtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzk4ODQ2QzIwMzcwIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8QHNpbmNlIEoyRUUxLjQgZGVwcmVjYXRlZCwgYmVjb21lcyBkZXNjcmlwdGlvbnMNCnxUaGUgZGVzY3JpcHRpb24gZWxlbWVudCBpcyB1c2VkIGJ5IHRoZSBlamItamFyIGZpbGUgcHJvZHVjZXIgdG8gcHJvdmlkZSB0ZXh0IGRlc2NyaWJpbmcgdGhlIHBhcmVudCBlbGVtZW50LiAgVGhlIGRlc2NyaXB0aW9uIGVsZW1lbnQgc2hvdWxkIGluY2x1ZGUgYW55IGluZm9ybWF0aW9uIHRoYXQgdGhlIGVqYi1qYXIgZmlsZSBwcm9kdWNlciB3YW50cyB0byBwcm92aWRlIHRvIHRoZSBjb25zdW1lciBvZiB0aGUgZWpiLWphciBmaWxlIChpLmUuIHRvIHRoZSBEZXBsb3llcikuIFR5cGljYWxseSwgdGhlIHRvb2xzIHVzZWQgYnkgdGhlIGVqYi1qYXIgZmlsZSBjb25zdW1lciB3aWxsIGRpc3BsYXkgdGhlIGRlc2NyaXB0aW9uIHdoZW4gcHJvY2Vzc2luZyB0aGUgcGFyZW50IGVsZW1lbnQuDQoJCSAgICANCgkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KCShvYmplY3QgQ2xhc3MgIk1ldGhvZEVsZW1lbnRLaW5kIg0KCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCShvYmplY3QgQXR0cmlidXRlDQoJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDI0LTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCSAgICBxdWlkICAgICAgIAkiMzkyRUQyRTcwMjQwIg0KCSAgICBkb2N1bWVudGF0aW9uIAkNCnxAc2luY2UgSjJFRTEuNCBhZGRlZCBTZXJ2aWNlRW5kcG9pbnQNCnxVbnNwZWNpZmllZD0wDQp8UmVtb3RlPTENCnxIb21lPTINCnxMb2NhbD0zDQp8TG9jYWxIb21lPTQNCnxTZXJ2aWNlRW5kcG9pbnQ9NQ0KCSAgICANCgkgICAgc3RlcmVvdHlwZSAJImVudW1lcmF0aW9uIg0KCSAgICBjbGFzc19hdHRyaWJ1dGVzIAkobGlzdCBjbGFzc19hdHRyaWJ1dGVfbGlzdA0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJVbnNwZWNpZmllZCINCgkJICAgIHF1aWQgICAgICAgCSIzQ0I0N0EyODAxODAiKQ0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJSZW1vdGUiDQoJCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDAyNi0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkJICAgIHF1aWQgICAgICAgCSIzOTJFRDMxMTAyNEEiKQ0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJIb21lIg0KCQkgICAgcXVpZCAgICAgICAJIjNDQjQ3QTczMDE4OCIpDQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgIkxvY2FsIg0KCQkgICAgcXVpZCAgICAgICAJIjM5ODg2RTBEMDMwMSIpDQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgIkxvY2FsSG9tZSINCgkJICAgIHF1aWQgICAgICAgCSIzOTg4NkUwRjAyMDkiKQ0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJTZXJ2aWNlRW5kcG9pbnQiDQoJCSAgICBxdWlkICAgICAgIAkiM0U0RDI4QTEwMzMzIikpKQ0KCShvYmplY3QgQ2xhc3MgIkNNUEF0dHJpYnV0ZSINCgkgICAgcXVpZCAgICAgICAJIjNBMjI4ODYzMDAwMyINCgkgICAgZG9jdW1lbnRhdGlvbiAJDQp8RGVzY3JpYmVzIGEgY29udGFpbmVyLW1hbmFnZWQgZmllbGQuIFRoZSBmaWVsZCBlbGVtZW50IGluY2x1ZGVzIGFuIG9wdGlvbmFsIGRlc2NyaXB0aW9uIG9mIHRoZSBmaWVsZCwgYW5kIHRoZSBuYW1lIG9mIHRoZSBmaWVsZC4NCnwNCgkgICAgDQoJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCgkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCgkJICAgIHF1aWQgICAgICAgCSIzQTIyODg3NzAzNDEiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplY29yZTo6RUF0dHJpYnV0ZSINCgkJICAgIHF1aWR1ICAgICAgCSIzOTIzODQ3MjAzOUQiKSkNCgkgICAgY2xhc3NfYXR0cmlidXRlcyAJKGxpc3QgY2xhc3NfYXR0cmlidXRlX2xpc3QNCgkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiZGVzY3JpcHRpb24iDQoJCSAgICBxdWlkICAgICAgIAkiMzk5QUJDMTUwMEYwIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8QHNpbmNlIEoyRUUxLjQgZGVwcmVjYXRlZCwgYmVjb21lcyBkZXNjcmlwdGlvbnMNCnxUaGUgZGVzY3JpcHRpb24gaXMgdXNlZCBieSB0aGUgZWpiLWphciBmaWxlIHByb2R1Y2VyIHRvIHByb3ZpZGUgdGV4dCBkZXNjcmliaW5nIHRoZSBjbXIgZmllbGQuDQp8DQp8VGhlIGRlc2NyaXB0aW9uIHNob3VsZCBpbmNsdWRlIGFueSBpbmZvcm1hdGlvbiB0aGF0IHRoZSBlamItamFyIGZpbGUgcHJvZHVjZXIgd2FudHMgdG8gcHJvdmlkZSB0byB0aGUgY29uc3VtZXIgb2YgdGhlIGVqYi1qYXIgZmlsZSAoaS5lLiB0byB0aGUgRGVwbG95ZXIpLiBUeXBpY2FsbHksIHRoZSB0b29scyB1c2VkIGJ5IHRoZSBlamItamFyIGZpbGUgY29uc3VtZXIgd2lsbCBkaXNwbGF5IHRoZSBkZXNjcmlwdGlvbiB3aGVuIHByb2Nlc3NpbmcgdGhlIGxpc3Qgb2YgZGVwZW5kZW50cy4NCgkJICAgIA0KCQkgICAgc3RlcmVvdHlwZSAJIjAuLjEiDQoJCSAgICB0eXBlICAgICAgIAkiU3RyaW5nIg0KCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpKSkNCgkob2JqZWN0IENsYXNzICJSZWxhdGlvbnNoaXBzIg0KCSAgICBxdWlkICAgICAgIAkiMzlCRUY4MTcwM0IzIg0KCSAgICBkb2N1bWVudGF0aW9uIAkiVGhlIHJlbGF0aW9uc2hpcHMgZGVzY3JpYmVzIHRoZSByZWxhdGlvbnNoaXBzIGluIHdoaWNoIGVudGl0eSBiZWFucyB3aXRoIGNvbnRhaW5lciBtYW5hZ2VkIHBlcnNpc3RlbmNlIHBhcnRpY2lwYXRlLiBUaGUgcmVsYXRpb25zaGlwcyBlbGVtZW50IGNvbnRhaW5zIGFuIG9wdGlvbmFsIGRlc2NyaXB0aW9uOyBhbmQgYSBsaXN0IG9mIGVqYi1yZWxhdGlvbiBlbGVtZW50cywgd2hpY2ggc3BlY2lmeSB0aGUgY29udGFpbmVyIG1hbmFnZWQgcmVsYXRpb25zaGlwcy4iDQoJICAgIGNsYXNzX2F0dHJpYnV0ZXMgCShsaXN0IGNsYXNzX2F0dHJpYnV0ZV9saXN0DQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImRlc2NyaXB0aW9uIg0KCQkgICAgcXVpZCAgICAgICAJIjM5QkYwOTY3MDIzOSINCgkJICAgIGRvY3VtZW50YXRpb24gCQ0KfEBzaW5jZSBKMkVFMS40IGRlcHJlY2F0ZWQsIGJlY29tZXMgZGVzY3JpcHRpb25zDQp8VGhlIGRlc2NyaXB0aW9uIGlzIHVzZWQgYnkgdGhlIGVqYi1qYXIgZmlsZSBwcm9kdWNlciB0byBwcm92aWRlIHRleHQgZGVzY3JpYmluZyB0aGUgY29sbGVjdGlvbiBvZiByZWxhdGlvbnNoaXBzLg0KfA0KfFRoZSBkZXNjcmlwdGlvbiBzaG91bGQgaW5jbHVkZSBhbnkgaW5mb3JtYXRpb24gdGhhdCB0aGUgZWpiLWphciBmaWxlIHByb2R1Y2VyIHdhbnRzIHRvIHByb3ZpZGUgdG8gdGhlIGNvbnN1bWVyIG9mIHRoZSBlamItamFyIGZpbGUgKGkuZS4gdG8gdGhlIERlcGxveWVyKS4gVHlwaWNhbGx5LCB0aGUgdG9vbHMgdXNlZCBieSB0aGUgZWpiLWphciBmaWxlIGNvbnN1bWVyIHdpbGwgZGlzcGxheSB0aGUgZGVzY3JpcHRpb24gd2hlbiBwcm9jZXNzaW5nIHRoZSBsaXN0IG9mIGRlcGVuZGVudHMuDQoJCSAgICANCgkJICAgIHN0ZXJlb3R5cGUgCSIwLi4xIg0KCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkpDQoJKG9iamVjdCBDbGFzcyAiUXVlcnkiDQoJICAgIHF1aWQgICAgICAgCSIzOUJGMDI3MTAzMjciDQoJICAgIGRvY3VtZW50YXRpb24gCQ0KfFRoZSBxdWVyeSBlbGVtZW50IGlzIHVzZWQgdG8gc3BlY2lmeSBhIGZpbmRlciBvciBzZWxlY3QgcXVlcnkuIEl0IGNvbnRhaW5zIGFuIG9wdGlvbmFsIGRlc2NyaXB0aW9uIG9mIHRoZSBxdWVyeTsgdGhlIHNwZWNpZmljYXRpb24gb2YgdGhlIGZpbmRlciBvciBzZWxlY3QgbWV0aG9kIGl0IGlzIHVzZWQgYnk7IGEgc3BlY2lmaWNhdGlvbiBvZiB0aGUgcmV0dXJuIHR5cGUgbWFwcGluZywgaWYgYW55LCBpZiB0aGUgcXVlcnkgaXMgZm9yIGEgc2VsZWN0IG1ldGhvZDsgYW5kIHRoZSBFSkIgUUwgcXVlcnkgc3RyaW5nIHRoYXQgZGVmaW5lcyB0aGUgcXVlcnkuIFF1ZXJpZXMgdGhhdCBhcmUgZXhwcmVzc2libGUgaW4gRUpCIFFMIG11c3QgdXNlIHRoZSBlamItcWwgZWxlbWVudCB0byBzcGVjaWZ5IHRoZSBxdWVyeS4gSWYgYSBxdWVyeQ0KfGlzIG5vdCBleHByZXNzaWJsZSBpbiBFSkIgUUwsIHRoZSBkZXNjcmlwdGlvbiBlbGVtZW50IHNob3VsZCBiZSB1c2VkIHRvIGRlc2NyaWJlIHRoZSBzZW1hbnRpY3Mgb2YgdGhlIHF1ZXJ5IGFuZCB0aGUgZWpiLXFsIGVsZW1lbnQgc2hvdWxkIGJlIGVtcHR5Lg0KCSAgICANCgkgICAgY2xhc3NfYXR0cmlidXRlcyAJKGxpc3QgY2xhc3NfYXR0cmlidXRlX2xpc3QNCgkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiZGVzY3JpcHRpb24iDQoJCSAgICBxdWlkICAgICAgIAkiMzlCRjA1MEQwMDREIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8QHNpbmNlIEoyRUUxLjQgZGVwcmVjYXRlZCwgYmVjb21lcyBkZXNjcmlwdGlvbnMNCnxUaGUgZGVzY3JpcHRpb24gaXMgdXNlZCBieSB0aGUgZWpiLWphciBmaWxlIHByb2R1Y2VyIHRvIHByb3ZpZGUgdGV4dCBkZXNjcmliaW5nIHRoZSBxdWVyeS4NCnwNCnxUaGUgZGVzY3JpcHRpb24gc2hvdWxkIGluY2x1ZGUgYW55IGluZm9ybWF0aW9uIHRoYXQgdGhlIGVqYi1qYXIgZmlsZSBwcm9kdWNlciB3YW50cyB0byBwcm92aWRlIHRvIHRoZSBjb25zdW1lciBvZiB0aGUgZWpiLWphciBmaWxlIChpLmUuIHRvIHRoZSBEZXBsb3llcikuIFR5cGljYWxseSwgdGhlIHRvb2xzIHVzZWQgYnkgdGhlIGVqYi1qYXIgZmlsZSBjb25zdW1lciB3aWxsIGRpc3BsYXkgdGhlIGRlc2NyaXB0aW9uIHdoZW4gcHJvY2Vzc2luZyB0aGUgbGlzdCBvZiBkZXBlbmRlbnRzLg0KCQkgICAgDQoJCSAgICBzdGVyZW90eXBlIAkiMC4uMSINCgkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikNCgkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiZWpiUUwiDQoJCSAgICBxdWlkICAgICAgIAkiMzlCRjA1OEMwMzk5Ig0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8Q29udGFpbnMgdGhlIEVKQiBRTCBxdWVyeSBzdHJpbmcgdGhhdCBkZWZpbmVzIGEgZmluZGVyIG9yIHNlbGVjdCBxdWVyeS4gVGhpcyBlbGVtZW50IGlzIGRlZmluZWQgd2l0aGluIHRoZSBzY29wZSBvZiBhIHF1ZXJ5IGVsZW1lbnQgd2hvc2UgY29udGVudHMgc3BlY2lmeSB0aGUgZmluZGVyIG9yIHRoZSBzZWxlY3QgbWV0aG9kIHRoYXQgdXNlcyB0aGUgcXVlcnkuIFRoZSBjb250ZW50IG11c3QgYmUgYSB2YWxpZCBFSkIgUUwgcXVlcnkgc3RyaW5nIGZvciB0aGUgZW50aXR5IGJlYW4gZm9yIHdoaWNoIHRoZSBxdWVyeSBpcyBzcGVjaWZpZWQuIFRoZSBlamItcWwgZWxlbWVudCBtdXN0IGJlIHNwZWNpZmllZCBmb3IgYWxsIHF1ZXJpZXMgdGhhdCBhcmUgZXhwcmVzc2libGUgaW4gRUpCIFFMLg0KfA0KfEBpbnZhcmlhbnQgVGhlIHZhbHVlIG11c3QgYmUgYSB2YWxpZCBFSkIgUUwgcXVlcnkgc3RyaW5nIGZvciB0aGUgZW50aXR5IGJlYW4gb3IgZGVwZW5kZW50IG9iamVjdCBjbGFzcyBmb3Igd2hpY2ggdGhlIHF1ZXJ5IGlzIHNwZWNpZmllZC4NCnxAaW52YXJpYW50IFRoZSBlamItcWwgZWxlbWVudCBtdXN0IGJlIHNwZWNpZmllZCBmb3IgYWxsIHF1ZXJpZXMgdGhhdCBhcmUgZXhwcmVzc2libGUgaW4gRUpCIFFMLg0KfA0KfEV4YW1wbGU6DQp8PHF1ZXJ5Pg0KfDxxdWVyeS1tZXRob2Q+DQp8PG1ldGhvZC1uYW1lPmVqYlNlbGVjdFBlbmRpbmdMaW5laXRlbXM8L21ldGhvZC1uYW1lPg0KfDxtZXRob2QtcGFyYW1zLz4NCnw8L3F1ZXJ5LW1ldGhvZD4NCnw8ZWpiLXFsPlNFTEVDVCBFTlRJVFkobCkNCnxGUk9NIExpbmVJdGVtcyBsDQp8V0hFUkUgbC5zaGlwcGVkIGlzIEZBTFNFDQp8PC9lamItcWw+DQp8PC9xdWVyeT4NCgkJICAgIA0KCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKQ0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJyZXR1cm5UeXBlTWFwcGluZyINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIkVjb3JlIg0KCQkJICAgIG5hbWUgICAgICAgCSJpc1Vuc2V0dGFibGUiDQoJCQkgICAgdmFsdWUgICAgICAJVFJVRSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzk4ODcxMDcwMkNBIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJIlRoZSByZXR1cm4tdHlwZS1tYXBwaW5nIGVsZW1lbnQgaXMgdXNlZCBpbiB0aGUgcXVlcnkgZWxlbWVudCB0byBzcGVjaWZ5IHdoZXRoZXIgYW4gYWJzdHJhY3Qgc2NoZW1hIHR5cGUgdGhhdCBpcyByZXR1cm5lZCBieSBhIHF1ZXJ5IGZvciBhIHNlbGVjdCBtZXRob2QgaXMgdG8gYmUgbWFwcGVkIHRvIGFuIEVKQkxvY2FsT2JqZWN0IG9yIEVKQk9iamVjdCB0eXBlLiAgVGhlIHZhbHVlIG9mIHRoZSByZXR1cm4tdHlwZS1tYXBwaW5nIGVsZW1lbnQsIGlmIHNwZWNpZmllZCBtdXN0IGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nLiINCgkJICAgIHN0ZXJlb3R5cGUgCSIwLi4xIg0KCQkgICAgdHlwZSAgICAgICAJIlJldHVyblR5cGVNYXBwaW5nIg0KCQkgICAgcXVpZHUgICAgICAJIjM5ODg3MEQzMDI3NiINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkpDQoJKG9iamVjdCBDbGFzcyAiRUpCUmVsYXRpb24iDQoJICAgIHF1aWQgICAgICAgCSIzOUJGMEMwMjAzQkYiDQoJICAgIGRvY3VtZW50YXRpb24gCQ0KfEBzaW5jZSBKMkVFMS4zDQp8VGhlIGVqYi1yZWxhdGlvbiBlbGVtZW50IGRlc2NyaWJlcyBhIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHR3byBlbnRpdHkgYmVhbnMgd2l0aCBjb250YWluZXIgbWFuYWdlZCBwZXJzaXN0ZW5jZS4gQW4gZWpiLXJlbGF0aW9uIGVsZW1lbnQgY29udGFpbnMgYSBkZXNjcmlwdGlvbjsgYW4gb3B0aW9uYWwgZWpiLXJlbGF0aW9uLW5hbWUgZWxlbWVudDsgYW5kIGV4YWN0bHkgdHdvIHJlbGF0aW9uc2hpcCByb2xlIGRlY2xhcmF0aW9ucywgZGVmaW5lZCBieSB0aGUgZWpiLXJlbGF0aW9uc2hpcC1yb2xlcy4gVGhlIG5hbWUgb2YgdGhlIHJlbGF0aW9uc2hpcCwgaWYgc3BlY2lmaWVkLCBpcyB1bmlxdWUgd2l0aGluIHRoZSBlamItamFyIGZpbGUuDQp8DQp8QGludmFyaWFudCBUaGUgbmFtZSBvZiB0aGUgcmVsYXRpb25zaGlwLCBpZiBzcGVjaWZpZWQsIGlzIHVuaXF1ZSB3aXRoaW4gdGhlIGVqYi1qYXIgZmlsZS4NCnxAaW52YXJpYW50IHNlbGYucmVsYXRpb25zaGlwUm9sZXMuc2l6ZSA9PSAyDQp8QGludmFyaWFudCBzZWxmLnJlbGF0aW9uc2hpcFJvbGVzWzBdLm5hbWUgIT0gc2VsZi5yZWxhdGlvbnNoaXBSb2xlc1sxXS5uYW1lDQp8DQp8QG1pZ3JhdGlvbiBFSkIxLjEgTW92ZWQgZnJvbSBlamJleHQ6OkVqYlJlbGF0aW9uc2hpcFJvbGUgY29udGFpbmVkIHVuZGVyIGVqYmV4dDo6RUpCSmFyRXh0ZW5zaW9uDQp8QG1pZ3JhdGlvbiBFSkIxLjEgYWRkZWQgb3B0aW9uYWwgYXR0cmlidXRlLCBkZXNjcmlwdGlvbjpTdHJpbmcNCnxAbWlncmF0aW9uIEVKQjEuMSBhZGRlZCBvcHRpb25hbCBhdHRyaWJ1dGUsIG5hbWU6U3RyaW5nIChNYXkgaGF2ZSBiZWVuIGluaGVyaXRlZCBmcm9tIFJlZkJhc2VPYmplY3QgcHJldmlvdXNseSkNCgkgICAgDQoJICAgIGNsYXNzX2F0dHJpYnV0ZXMgCShsaXN0IGNsYXNzX2F0dHJpYnV0ZV9saXN0DQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImRlc2NyaXB0aW9uIg0KCQkgICAgcXVpZCAgICAgICAJIjM5QkYwRDRBMDJCQyINCgkJICAgIGRvY3VtZW50YXRpb24gCQ0KfEBzaW5jZSBKMkVFMS40IGRlcHJlY2F0ZWQsIGJlY29tZXMgZGVzY3JpcHRpb25zDQp8VGhlIGRlc2NyaXB0aW9uIGlzIHVzZWQgYnkgdGhlIGVqYi1qYXIgZmlsZSBwcm9kdWNlciB0byBwcm92aWRlIHRleHQgZGVzY3JpYmluZyB0aGUgZWpiIHJlbGF0aW9uLg0KfA0KfFRoZSBkZXNjcmlwdGlvbiBzaG91bGQgaW5jbHVkZSBhbnkgaW5mb3JtYXRpb24gdGhhdCB0aGUgZWpiLWphciBmaWxlIHByb2R1Y2VyIHdhbnRzIHRvIHByb3ZpZGUgdG8gdGhlIGNvbnN1bWVyIG9mIHRoZSBlamItamFyIGZpbGUgKGkuZS4gdG8gdGhlIERlcGxveWVyKS4gVHlwaWNhbGx5LCB0aGUgdG9vbHMgdXNlZCBieSB0aGUgZWpiLWphciBmaWxlIGNvbnN1bWVyIHdpbGwgZGlzcGxheSB0aGUgZGVzY3JpcHRpb24gd2hlbiBwcm9jZXNzaW5nIHRoZSBsaXN0IG9mIGRlcGVuZGVudHMuDQoJCSAgICANCgkJICAgIHN0ZXJlb3R5cGUgCSIwLi4xIg0KCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKQ0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJuYW1lIg0KCQkgICAgcXVpZCAgICAgICAJIjM5QkYwRDZGMDM3RSINCgkJICAgIGRvY3VtZW50YXRpb24gCQ0KfFRoZSBuYW1lIG9mIHRoZSByZWxhdGlvbnNoaXAuIElmIHNwZWNpZmllZCwgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlamItamFyIGZpbGUuDQp8QGludmFyaWFudCBzZWxmLm5hbWUgdW5pcXVlIHdpdGhpbiBTZXQ8Y29sbGVjdChlamJKYXIuZWpiUmVsYXRpb25zLm5hbWUpPg0KCQkgICAgDQoJCSAgICBzdGVyZW90eXBlIAkiMC4uMSINCgkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KCShvYmplY3QgQ2xhc3MgIkVKQlJlbGF0aW9uc2hpcFJvbGUiDQoJICAgIHF1aWQgICAgICAgCSIzOUJGMEREMDAyM0QiDQoJICAgIGRvY3VtZW50YXRpb24gCQ0KfEBzaW5jZSBKMkVFMS4zDQp8VGhlIGVqYi1yZWxhdGlvbnNoaXAtcm9sZSBlbGVtZW50IGRlc2NyaWJlcyBhIHJvbGUgd2l0aGluIGEgcmVsYXRpb25zaGlwLg0KfFRoZXJlIGFyZSB0d28gcm9sZXMgaW4gZWFjaCByZWxhdGlvbnNoaXAuIFRoZSBlamItcmVsYXRpb25zaGlwLXJvbGUgZWxlbWVudCBjb250YWlucyBhbiBvcHRpb25hbCBkZXNjcmlwdGlvbjsgYW4gb3B0aW9uYWwgbmFtZSBmb3IgdGhlIHJlbGF0aW9uc2hpcCByb2xlOyBhIHNwZWNpZmljYXRpb24gb2YgdGhlIG11bHRpcGxpY2l0eSBvZiB0aGUgcm9sZTsgYW4gb3B0aW9uYWwgc3BlY2lmaWNhdGlvbiBvZiBjYXNjYWRlLWRlbGV0ZSBmdW5jdGlvbmFsaXR5IGZvciB0aGUgcm9sZTsgdGhlIHJvbGUgc291cmNlOyBhbmQgYSBkZWNsYXJhdGlvbiBvZiB0aGUgY21yLWZpZWxkLCBpZiBhbnksIGJ5IG1lYW5zIG9mIHdoaWNoIHRoZSBvdGhlciBzaWRlIG9mIHRoZSByZWxhdGlvbnNoaXAgaXMgYWNjZXNzZWQgZnJvbSB0aGUgcGVyc3BlY3RpdmUgb2YgdGhlIHJvbGUgc291cmNlLiBUaGUgbXVsdGlwbGljaXR5IGFuZCByZWxhdGlvbnNoaXAtcm9sZS1zb3VyY2UgZWxlbWVudCBhcmUgbWFuZGF0b3J5LiBUaGUgcmVsYXRpb25zaGlwLXJvbGUtc291cmNlIGVsZW1lbnQgZGVzaWduYXRlcyBhbiBlbnRpdHktYmVhbiBieSBtZWFucyBvZiBhbiBlamItbmFtZSBlbGVtZW50LiBGb3IgYmlkaXJlY3Rpb25hbCByZWxhdGlvbnNoaXBzLCBib3RoIHJvbGVzIG9mIGEgcmVsYXRpb25zaGlwIG11c3QgZGVjbGFyZSBhIHJlbGF0aW9uc2hpcC1yb2xlLXNvdXJjZSBlbGVtZW50IHRoYXQgc3BlY2lmaWVzIGEgY21yLWZpZWxkIGluIHRlcm1zIG9mIHdoaWNoIHRoZSByZWxhdGlvbnNoaXAgaXMgYWNjZXNzZWQuIFRoZSBsYWNrIG9mIGEgY21yLWZpZWxkIGVsZW1lbnQgaW4gYW4gZWpiLXJlbGF0aW9uc2hpcC1yb2xlIHNwZWNpZmllcyB0aGF0IHRoZSByZWxhdGlvbnNoaXAgaXMgdW5pZGlyZWN0aW9uYWwgaW4gbmF2aWdhYmlsaXR5IGFuZCB0aGF0IGVudGl0eSBiZWFuIHRoYXQgcGFydGljaXBhdGVzIGluIHRoZSByZWxhdGlvbnNoaXAgaXMgIm5vdCBhd2FyZSIgb2YgdGhlIHJlbGF0aW9uc2hpcC4NCnwNCnxAaW52YXJpYW50IG11bHRpcGxpY2l0eSAhPSBudWxsDQp8QGludmFyaWFudCByb2xlU291cmNlICE9IG51bGwNCnxAaW52YXJpYW50IENhc2NhZGUgZGVsZXRlIGNhbiBvbmx5IGJlIHNwZWNpZmllZCBpbiBhbiBFSkJSZWxhdGlvbnNoaXBSb2xlIGVsZW1lbnQgaW4gd2hpY2ggdGhlIHJvbGVTb3VyY2UgZWxlbWVudCBzcGVjaWZpZXMgYSBkZXBlbmRlbnQgb2JqZWN0IGNsYXNzLiANCnxAaW52YXJpYW50IENhc2NhZGUgZGVsZXRlIGNhbiBvbmx5IGJlIHNwZWNpZmllZCBmb3IgYW4gRUpCUmVsYXRpb25zaGlwUm9sZSBjb250YWluZWQgaW4gYW4gRUpCcmVsYXRpb24gaW4gd2hpY2ggdGhlIG90aGVyIEVKQlJlbGF0aW9uc2hpcFJvbGUgZWxlbWVudCBzcGVjaWZpZXMgYSBtdWx0aXBsaWNpdHkgb2YgT25lLg0KfA0KfEV4YW1wbGU6DQp8PGVqYi1yZWxhdGlvbj4NCnwgIDxlamItcmVsYXRpb24tbmFtZT5Qcm9kdWN0LUxpbmVJdGVtPC9lamItcmVsYXRpb24tbmFtZT4NCnwgIDxlamItcmVsYXRpb25zaGlwLXJvbGU+DQp8ICAgIDxlamItcmVsYXRpb25zaGlwLXJvbGUtbmFtZT5wcm9kdWN0LWhhcy1saW5laXRlbXM8L2VqYi1yZWxhdGlvbnNoaXAtcm9sZS1uYW1lPg0KfCAgICA8bXVsdGlwbGljaXR5Pk9uZTwvbXVsdGlwbGljaXR5Pg0KfCAgICA8cmVsYXRpb25zaGlwLXJvbGUtc291cmNlPg0KfCAgICAgIDxlamItbmFtZT5Qcm9kdWN0RUpCPC9lamItbmFtZT4NCnwgICAgPC9yZWxhdGlvbnNoaXAtcm9sZS1zb3VyY2U+DQp8ICA8L2VqYi1yZWxhdGlvbnNoaXAtcm9sZT4NCnwuLi4NCgkgICAgDQoJICAgIGNsYXNzX2F0dHJpYnV0ZXMgCShsaXN0IGNsYXNzX2F0dHJpYnV0ZV9saXN0DQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImRlc2NyaXB0aW9uIg0KCQkgICAgcXVpZCAgICAgICAJIjM5QkYxMDI2MDFCMCINCgkJICAgIGRvY3VtZW50YXRpb24gCQ0KfEBzaW5jZSBKMkVFMS40IGRlcHJlY2F0ZWQsIGJlY29tZXMgZGVzY3JpcHRpb25zDQp8VGhlIGRlc2NyaXB0aW9uIGlzIHVzZWQgYnkgdGhlIGVqYi1qYXIgZmlsZSBwcm9kdWNlciB0byBwcm92aWRlIHRleHQgZGVzY3JpYmluZyB0aGUgZWpiIHJlbGF0aW9uc2hpcCByb2xlLg0KfA0KfFRoZSBkZXNjcmlwdGlvbiBzaG91bGQgaW5jbHVkZSBhbnkgaW5mb3JtYXRpb24gdGhhdCB0aGUgZWpiLWphciBmaWxlIHByb2R1Y2VyIHdhbnRzIHRvIHByb3ZpZGUgdG8gdGhlIGNvbnN1bWVyIG9mIHRoZSBlamItamFyIGZpbGUgKGkuZS4gdG8gdGhlIERlcGxveWVyKS4gVHlwaWNhbGx5LCB0aGUgdG9vbHMgdXNlZCBieSB0aGUgZWpiLWphciBmaWxlIGNvbnN1bWVyIHdpbGwgZGlzcGxheSB0aGUgZGVzY3JpcHRpb24gd2hlbiBwcm9jZXNzaW5nIHRoZSBsaXN0IG9mIGRlcGVuZGVudHMuDQoJCSAgICANCgkJICAgIHN0ZXJlb3R5cGUgCSIwLi4xIg0KCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKQ0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJyb2xlTmFtZSINCgkJICAgIHF1aWQgICAgICAgCSIzOUJGMTE1ODAwNTIiDQoJCSAgICBkb2N1bWVudGF0aW9uIAkNCnxEZWZpbmVzIGEgbmFtZSBmb3IgYSByb2xlIHRoYXQgaXMgdW5pcXVlIHdpdGhpbiBhbiBlamItcmVsYXRpb24uIERpZmZlcmVudCByZWxhdGlvbnNoaXBzIGNhbiB1c2UgdGhlIHNhbWUgbmFtZSBmb3IgYSByb2xlLg0KfA0KCQkgICAgDQoJCSAgICBzdGVyZW90eXBlIAkiMC4uMSINCgkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikNCgkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAibXVsdGlwbGljaXR5Ig0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiRWNvcmUiDQoJCQkgICAgbmFtZSAgICAgICAJImlzVW5zZXR0YWJsZSINCgkJCSAgICB2YWx1ZSAgICAgIAlUUlVFKSkNCgkJICAgIHF1aWQgICAgICAgCSIzOUJGMTJFOTAyQ0YiDQoJCSAgICBkb2N1bWVudGF0aW9uIAkNCnxEZXNjcmliZXMgdGhlIG11bHRpcGxpY2l0eSBvZiB0aGUgcm9sZSB0aGF0IHBhcnRpY2lwYXRlcyBpbiBhIHJlbGF0aW9uLg0KfA0KfFRoZSBtdWx0aXBsaWNpdHkgZWxlbWVudCBtdXN0IGJlIG9uZSBvZiB0aGUgdHdvIGZvbGxvd2luZzoNCnwgICAgIE9uZQ0KfCAgICAgTWFueQ0KfA0KCQkgICAgDQoJCSAgICB0eXBlICAgICAgIAkiTXVsdGlwbGljaXR5S2luZCINCgkJICAgIHF1aWR1ICAgICAgCSIzOTlBRUJDQjAyQjciDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikNCgkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiY2FzY2FkZURlbGV0ZSINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIkVjb3JlIg0KCQkJICAgIG5hbWUgICAgICAgCSJpc1Vuc2V0dGFibGUiDQoJCQkgICAgdmFsdWUgICAgICAJVFJVRSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzlCRjE2MUUwMkVFIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8U3BlY2lmaWVzIHRoYXQsIHdpdGhpbiBhIHBhcnRpY3VsYXIgcmVsYXRpb25zaGlwLCB0aGUgbGlmZXRpbWUgb2Ygb25lIG9yIG1vcmUgZW50aXR5IGJlYW5zIGlzIGRlcGVuZGVudCB1cG9uIHRoZSBsaWZldGltZSBvZiBhbm90aGVyIGVudGl0eSBiZWFuLiBUaGUgY2FzY2FkZS1kZWxldGUgZWxlbWVudCBjYW4gQ2FzY2FkZSBkZWxldGUgY2FuIG9ubHkgYmUgc3BlY2lmaWVkIGZvciBhbiBFSkJSZWxhdGlvbnNoaXBSb2xlIGNvbnRhaW5lZCBpbiBhbiBFSkJyZWxhdGlvbiBpbiB3aGljaCB0aGUgb3RoZXIgRUpCUmVsYXRpb25zaGlwUm9sZSBlbGVtZW50IHNwZWNpZmllcyBhIG11bHRpcGxpY2l0eSBvZiBPbmUuDQp8DQp8DQp8DQoJCSAgICANCgkJICAgIHR5cGUgICAgICAgCSJib29sZWFuIg0KCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpKSkNCgkob2JqZWN0IENsYXNzICJSb2xlU291cmNlIg0KCSAgICBxdWlkICAgICAgIAkiMzlCRjE0NzUwMEU0Ig0KCSAgICBkb2N1bWVudGF0aW9uIAkNCnxEZXNpZ25hdGVzIHRoZSBzb3VyY2Ugb2YgYSByb2xlIHRoYXQgcGFydGljaXBhdGVzIGluIGEgcmVsYXRpb25zaGlwLiBBIHJlbGF0aW9uc2hpcC1yb2xlLXNvdXJjZSBlbGVtZW50IHVuaXF1ZWx5IGlkZW50aWZpZXMgYW4gZW50aXR5IGJlYW4uDQp8QGludmFyaWFudCBUaGUgY29udGVudCBvZiBlYWNoIHJvbGUtc291cmNlIGVsZW1lbnQgc2hhbGwgcmVmZXIgdG8gYW4gZXhpc3RpbmcgZW50aXR5IGJlYW4sIGVudGl0eSBiZWFuIHJlZmVyZW5jZS4NCgkgICAgDQoJICAgIGNsYXNzX2F0dHJpYnV0ZXMgCShsaXN0IGNsYXNzX2F0dHJpYnV0ZV9saXN0DQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImRlc2NyaXB0aW9uIg0KCQkgICAgcXVpZCAgICAgICAJIjM5ODg4NDkxMDJFQiINCgkJICAgIGRvY3VtZW50YXRpb24gCSJAc2luY2UgSjJFRTEuNCBkZXByZWNhdGVkLCBiZWNvbWVzIGRlc2NyaXB0aW9ucyINCgkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KCShvYmplY3QgQ2xhc3MgIkNNUkZpZWxkIg0KCSAgICBxdWlkICAgICAgIAkiMzlCRjE4MTAwMDRCIg0KCSAgICBkb2N1bWVudGF0aW9uIAkNCnxAc2luY2UgSjJFRTEuMw0KfERlc2NyaWJlcyB0aGUgYmVhbiBwcm92aWRlcidzIHZpZXcgb2YgYSByZWxhdGlvbnNoaXAuIEl0IGNvbnNpc3RzIG9mIGFuIG9wdGlvbmFsIGRlc2NyaXB0aW9uLCBhbmQgdGhlIG5hbWUgYW5kIHRoZSBjbGFzcyB0eXBlIG9mIGEgZmllbGQgaW4gdGhlIHNvdXJjZSBvZiBhIHJvbGUgb2YgYSByZWxhdGlvbnNoaXAuIFRoZSBDTVJGaWVsZDo6bmFtZSBlbGVtZW50IGNvcnJlc3BvbmRzIHRvIHRoZSBuYW1lIHVzZWQgZm9yIHRoZSBnZXQgYW5kIHNldCBhY2Nlc3NvciBtZXRob2RzIGZvciB0aGUgcmVsYXRpb25zaGlwLiBUaGUgQ01SRmllbGQ6OnR5cGUgZWxlbWVudCBpcyB1c2VkIG9ubHkgZm9yIGNvbGxlY3Rpb24tdmFsdWVkIENNUkZpZWxkcy4gSXQgc3BlY2lmaWVzIHRoZSB0eXBlIG9mIHRoZSBjb2xsZWN0aW9uIHRoYXQgaXMgdXNlZCAoYSBqYXZhIGNsYXNzIG5hbWUpLg0KfA0KfA0KCSAgICANCgkgICAgc3VwZXJjbGFzc2VzIAkobGlzdCBpbmhlcml0YW5jZV9yZWxhdGlvbnNoaXBfbGlzdA0KCQkob2JqZWN0IEluaGVyaXRhbmNlX1JlbGF0aW9uc2hpcA0KCQkgICAgcXVpZCAgICAgICAJIjM5OUFENDY5MDE3MCINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6Q01QQXR0cmlidXRlIg0KCQkgICAgcXVpZHUgICAgICAJIjNBMjI4ODYzMDAwMyIpKSkNCgkob2JqZWN0IENsYXNzICJNZXNzYWdlRHJpdmVuIg0KCSAgICBxdWlkICAgICAgIAkiMzlCRjMyNDgwMTBCIg0KCSAgICBkb2N1bWVudGF0aW9uIAkNCnxUaGUgbWVzc2FnZS1kcml2ZW4gZWxlbWVudCBkZWNsYXJlcyBhIG1lc3NhZ2UtZHJpdmVuDQp8YmVhbi4gVGhlIGRlY2xhcmF0aW9uIGNvbnNpc3RzIG9mOg0KfA0KfCAgICAtIGFuIG9wdGlvbmFsIGRlc2NyaXB0aW9uDQp8ICAgIC0gYW4gb3B0aW9uYWwgZGlzcGxheSBuYW1lDQp8ICAgIC0gYW4gb3B0aW9uYWwgaWNvbiBlbGVtZW50IHRoYXQgY29udGFpbnMgYSBzbWFsbCBhbmQgYSBsYXJnZQ0KfCAgICAgIGljb24gZmlsZSBuYW1lLg0KfCAgICAtIGEgbmFtZSBhc3NpZ25lZCB0byB0aGUgZW50ZXJwcmlzZSBiZWFuIGluDQp8ICAgICAgdGhlIGRlcGxveW1lbnQgZGVzY3JpcHRvcg0KfCAgICAtIHRoZSBtZXNzYWdlLWRyaXZlbiBiZWFuJ3MgaW1wbGVtZW50YXRpb24gY2xhc3MNCnwgICAgLSBhbiBvcHRpb25hbCBkZWNsYXJhdGlvbiBvZiB0aGUgYmVhbidzIG1lc3NhZ2luZw0KfCAgICAgIHR5cGUNCnwgICAgLSB0aGUgbWVzc2FnZS1kcml2ZW4gYmVhbidzIHRyYW5zYWN0aW9uIG1hbmFnZW1lbnQgdHlwZQ0KfCAgICAtIGFuIG9wdGlvbmFsIGRlY2xhcmF0aW9uIG9mIHRoZSBiZWFuJ3MNCnwgICAgICBtZXNzYWdlLWRlc3RpbmF0aW9uLXR5cGUNCnwgICAgLSBhbiBvcHRpb25hbCBkZWNsYXJhdGlvbiBvZiB0aGUgYmVhbidzDQp8ICAgICAgbWVzc2FnZS1kZXN0aW5hdGlvbi1saW5rDQp8ICAgIC0gYW4gb3B0aW9uYWwgZGVjbGFyYXRpb24gb2YgdGhlIG1lc3NhZ2UtZHJpdmVuIGJlYW4ncw0KfCAgICAgIGFjdGl2YXRpb24gY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzDQp8ICAgIC0gYW4gb3B0aW9uYWwgZGVjbGFyYXRpb24gb2YgdGhlIGJlYW4ncyBlbnZpcm9ubWVudA0KfCAgICAgIGVudHJpZXMNCnwgICAgLSBhbiBvcHRpb25hbCBkZWNsYXJhdGlvbiBvZiB0aGUgYmVhbidzIEVKQiByZWZlcmVuY2VzDQp8ICAgIC0gYW4gb3B0aW9uYWwgZGVjbGFyYXRpb24gb2YgdGhlIGJlYW4ncyBsb2NhbCBFSkINCnwgICAgICByZWZlcmVuY2VzDQp8ICAgIC0gYW4gb3B0aW9uYWwgZGVjbGFyYXRpb24gb2YgdGhlIGJlYW4ncyB3ZWIgc2VydmljZQ0KfCAgICAgIHJlZmVyZW5jZXMNCnwgICAgLSBhbiBvcHRpb25hbCBkZWNsYXJhdGlvbiBvZiB0aGUgc2VjdXJpdHkNCnwgICAgICBpZGVudGl0eSB0byBiZSB1c2VkIGZvciB0aGUgZXhlY3V0aW9uIG9mIHRoZSBiZWFuJ3MNCnwgICAgICBtZXRob2RzDQp8ICAgIC0gYW4gb3B0aW9uYWwgZGVjbGFyYXRpb24gb2YgdGhlIGJlYW4ncw0KfCAgICAgIHJlc291cmNlIG1hbmFnZXIgY29ubmVjdGlvbiBmYWN0b3J5DQp8ICAgICAgcmVmZXJlbmNlcw0KfCAgICAtIGFuIG9wdGlvbmFsIGRlY2xhcmF0aW9uIG9mIHRoZSBiZWFuJ3MgcmVzb3VyY2UNCnwgICAgICBlbnZpcm9ubWVudCByZWZlcmVuY2VzLg0KfCAgICAtIGFuIG9wdGlvbmFsIGRlY2xhcmF0aW9uIG9mIHRoZSBiZWFuJ3MgbWVzc2FnZQ0KfCAgICAgIGRlc3RpbmF0aW9uIHJlZmVyZW5jZXMNCgkgICAgDQoJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCgkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCgkJICAgIHF1aWQgICAgICAgCSIzOUJGMzI1MzAyNkYiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OkVudGVycHJpc2VCZWFuIg0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFNzFBMDEwQSIpKQ0KCSAgICBjbGFzc19hdHRyaWJ1dGVzIAkobGlzdCBjbGFzc19hdHRyaWJ1dGVfbGlzdA0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJ0cmFuc2FjdGlvblR5cGUiDQoJCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkJICAgIHRvb2wgICAgICAgCSJFY29yZSINCgkJCSAgICBuYW1lICAgICAgIAkiaXNVbnNldHRhYmxlIg0KCQkJICAgIHZhbHVlICAgICAgCVRSVUUpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM5QkYzMzg3MDE2NCINCgkJICAgIGRvY3VtZW50YXRpb24gCQ0KfFRoZSB0cmFuc2FjdGlvbi10eXBlIGVsZW1lbnQgc3BlY2lmaWVzIGFuIGVudGVycHJpc2UgYmVhbidzIHRyYW5zYWN0aW9uIG1hbmFnZW1lbnQgdHlwZS4NCnwNCnxUaGUgdHJhbnNhY3Rpb24tdHlwZSBlbGVtZW50IG11c3QgYmUgb25lIG9mIHRoZSB0d28gZm9sbG93aW5nOiBCZWFuLCBDb250YWluZXINCgkJICAgIA0KCQkgICAgc3RlcmVvdHlwZSAJIjAuLjEiDQoJCSAgICB0eXBlICAgICAgIAkiVHJhbnNhY3Rpb25UeXBlIg0KCQkgICAgcXVpZHUgICAgICAJIjM3RkNBNDg3MDJFRiINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKQ0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJtZXNzYWdlU2VsZWN0b3IiDQoJCSAgICBxdWlkICAgICAgIAkiMzlCRjMzOTYwMTMzIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8VGhlIG1lc3NhZ2Utc2VsZWN0b3IgZWxlbWVudCBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIEpNUyBtZXNzYWdlDQp8c2VsZWN0b3IgdG8gYmUgdXNlZCBpbiBkZXRlcm1pbmluZyB3aGljaCBtZXNzYWdlcyBhIG1lc3NhZ2UtZHJpdmVuDQp8YmVhbiBpcyB0byByZWNlaXZlLg0KfA0KfEV4YW1wbGUgdmFsdWU6IA0KfEpNU1R5cGUgPSBgY2FyJyBBTkQgY29sb3IgPSBgYmx1ZScgQU5EIHdlaWdodCA+IDI1MDANCnwNCgkJICAgIA0KCQkgICAgc3RlcmVvdHlwZSAJIjAuLjEiDQoJCSAgICB0eXBlICAgICAgIAkiU3RyaW5nIg0KCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpDQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImFja25vd2xlZGdlTW9kZSINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIkVjb3JlIg0KCQkJICAgIG5hbWUgICAgICAgCSJpc1Vuc2V0dGFibGUiDQoJCQkgICAgdmFsdWUgICAgICAJVFJVRSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzlCRjMzQUUwMTYwIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8YW4gb3B0aW9uYWwgZGVjbGFyYXRpb24gb2YgdGhlIGFja25vd2xlZGdtZW50IG1vZGUgZm9yIHRoZSBtZXNzYWdlLWRyaXZlbiBiZWFuIGlmIGJlYW4tbWFuYWdlZCB0cmFuc2FjdGlvbiBkZW1hcmNhdGlvbiBpcyB1c2VkIChpZS4gc2VsZi50cmFuc2FjdGlvblR5cGUgPSBCZWFuKQ0KfA0KfFRoZSBhY2tub3dsZWRnZS1tb2RlIHNwZWNpZmllcyB3aGV0aGVyIEpNUyBBVVRPX0FDS05PV0xFREdFIG9yIERVUFNfT0tfQUNLTk9XTEVER0UgbWVzc2FnZSBhY2tub3dsZWRnbWVudCBzZW1hbnRpY3Mgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBvbk1lc3NhZ2UgbWVzc2FnZSBvZiBhIG1lc3NhZ2UtZHJpdmVuIGJlYW4gdGhhdCB1c2VzIGJlYW4gbWFuYWdlZCB0cmFuc2FjdGlvbiBkZW1hcmNhdGlvbi4NCnwNCnxUaGUgYWNrbm93bGVkZ2UtbW9kZSBtdXN0IGJlIG9uZSBvZiB0aGUgdHdvIGZvbGxvd2luZzogIEF1dG8tYWNrbm93bGVkZ2UsIER1cHMtb2stYWNrbm93bGVkZ2UNCnwNCgkJICAgIA0KCQkgICAgc3RlcmVvdHlwZSAJIjAuLjEiDQoJCSAgICB0eXBlICAgICAgIAkiQWNrbm93bGVkZ2VNb2RlIg0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYzNkQ3MDNFNCINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKQ0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJsaW5rIg0KCQkgICAgcXVpZCAgICAgICAJIjQwNTdBNTI1MDA4QSINCgkJICAgIGRvY3VtZW50YXRpb24gCQ0KfCAtIGFuIG9wdGlvbmFsIGRlY2xhcmF0aW9uIG9mIHRoZSBiZWFuJ3MNCnwJICAgICAgbWVzc2FnZS1kZXN0aW5hdGlvbi1saW5rDQp8DQoJCSAgICANCgkJICAgIHN0ZXJlb3R5cGUgCSIwLi4xIg0KCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkpDQoJKG9iamVjdCBDbGFzcyAiTWVzc2FnZURyaXZlbkRlc3RpbmF0aW9uIg0KCSAgICBxdWlkICAgICAgIAkiMzlCRjMzRjEwMDQ0Ig0KCSAgICBkb2N1bWVudGF0aW9uIAkiVGhlIG1lc3NhZ2UtZHJpdmVuLWRlc3RpbmF0aW9uIGVsZW1lbnQgcHJvdmlkZXMgYWR2aWNlIHRvIHRoZSBEZXBsb3llciBhcyB0byB3aGV0aGVyIGEgbWVzc2FnZS1kcml2ZW4gYmVhbiBpcyBpbnRlbmRlZCBmb3IgYSBRdWV1ZSBvciBhIFRvcGljLiBUaGUgZGVjbGFyYXRpb24gY29uc2lzdHMgb2Y6IHRoZSB0eXBlIG9mIHRoZSBtZXNzYWdlLWRyaXZlbiBiZWFuJ3MgaW50ZW5kZWQgZGVzdGluYXRpb24gYW5kIGFuIG9wdGlvbmFsIGRlY2xhcmF0aW9uIG9mIHdoZXRoZXIgYSBkdXJhYmxlIG9yIG5vbi1kdXJhYmxlIHN1YnNjcmlwdGlvbiBzaG91bGQgYmUgdXNlZCBpZiB0aGUgZGVzdGluYXRpb24tdHlwZSBpcyBqYXZheC5qbXMuVG9waWMuIg0KCSAgICBjbGFzc19hdHRyaWJ1dGVzIAkobGlzdCBjbGFzc19hdHRyaWJ1dGVfbGlzdA0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJ0eXBlIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiRWNvcmUiDQoJCQkgICAgbmFtZSAgICAgICAJImlzVW5zZXR0YWJsZSINCgkJCSAgICB2YWx1ZSAgICAgIAlUUlVFKSkNCgkJICAgIHF1aWQgICAgICAgCSIzOUJGMzg2QjAwMkQiDQoJCSAgICBkb2N1bWVudGF0aW9uIAkNCnxUaGUgZGVzdGluYXRpb24tdHlwZSBlbGVtZW50IHNwZWNpZmllcyB0aGUgdHlwZSBvZiB0aGUgSk1TIGRlc3RpbmF0aW9uLiBUaGUgdHlwZSBpcyBzcGVjaWZpZWQgYnkgdGhlIEphdmEgaW50ZXJmYWNlIGV4cGVjdGVkIHRvIGJlIGltcGxlbWVudGVkIGJ5IHRoZSBkZXN0aW5hdGlvbi4NCnwNCnxUaGUgZGVzdGluYXRpb24tdHlwZSBlbGVtZW50IG11c3QgYmUgb25lIG9mIHRoZSB0d28gZm9sbG93aW5nOiBqYXZheC5qbXMuUXVldWUsIGphdmF4Lmptcy5Ub3BpYw0KCQkgICAgDQoJCSAgICB0eXBlICAgICAgIAkiRGVzdGluYXRpb25UeXBlIg0KCQkgICAgcXVpZHUgICAgICAJIjM5OTc4RjVDMDEwNiINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKQ0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJzdWJzY3JpcHRpb25EdXJhYmlsaXR5Ig0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiRWNvcmUiDQoJCQkgICAgbmFtZSAgICAgICAJImlzVW5zZXR0YWJsZSINCgkJCSAgICB2YWx1ZSAgICAgIAlUUlVFKSkNCgkJICAgIHF1aWQgICAgICAgCSIzOUJGMzg5QjAwODciDQoJCSAgICBkb2N1bWVudGF0aW9uIAkNCnxUaGUgc3Vic2NyaXB0aW9uLWR1cmFiaWxpdHkgZWxlbWVudCBzcGVjaWZpZXMgd2hldGhlciBhIEpNUyB0b3BpYyBzdWJzY3JpcHRpb24gaXMgaW50ZW5kZWQgdG8gYmUgZHVyYWJsZSBvciBub25kdXJhYmxlLg0KfA0KfFRoZSBzdWJzY3JpcHRpb24tZHVyYWJpbGl0eSBlbGVtZW50IG11c3QgYmUgb25lIG9mIHRoZSB0d28gZm9sbG93aW5nOiAgRHVyYWJsZSwgTm9uRHVyYWJsZQ0KfA0KCQkgICAgDQoJCSAgICB0eXBlICAgICAgIAkiU3Vic2NyaXB0aW9uRHVyYWJpbGl0eUtpbmQiDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRjM4RjAwMjlDIg0KCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpKSkNCgkob2JqZWN0IENsYXNzICJBY2tub3dsZWRnZU1vZGUiDQoJICAgIHF1aWQgICAgICAgCSIzOUJGMzZENzAzRTQiDQoJICAgIGRvY3VtZW50YXRpb24gCQ0KfEF1dG8tYWNrbm93bGVkZ2U9MA0KfER1cHMtb2stYWNrbm93bGVkZ2U9MQ0KCSAgICANCgkgICAgc3RlcmVvdHlwZSAJImVudW1lcmF0aW9uIg0KCSAgICBjbGFzc19hdHRyaWJ1dGVzIAkobGlzdCBjbGFzc19hdHRyaWJ1dGVfbGlzdA0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJBdXRvQWNrbm93bGVkZ2UiDQoJCSAgICBxdWlkICAgICAgIAkiMzlCRjM2RkEwM0JDIg0KCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpDQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgIkR1cHNPa0Fja25vd2xlZGdlIg0KCQkgICAgcXVpZCAgICAgICAJIjM5QkYzNzAxMDM4QSINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkpDQoJKG9iamVjdCBDbGFzcyAiU3Vic2NyaXB0aW9uRHVyYWJpbGl0eUtpbmQiDQoJICAgIHF1aWQgICAgICAgCSIzOUJGMzhGMDAyOUMiDQoJICAgIGRvY3VtZW50YXRpb24gCQ0KfER1cmFibGU9MA0KfE5vbkR1cmFibGU9MQ0KCSAgICANCgkgICAgc3RlcmVvdHlwZSAJImVudW1lcmF0aW9uIg0KCSAgICBjbGFzc19hdHRyaWJ1dGVzIAkobGlzdCBjbGFzc19hdHRyaWJ1dGVfbGlzdA0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJEdXJhYmxlIg0KCQkgICAgcXVpZCAgICAgICAJIjM5QkYzOTFCMDFBRCINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKQ0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJOb25EdXJhYmxlIg0KCQkgICAgcXVpZCAgICAgICAJIjM5QkYzOTFEMDJEQyINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkpDQoJKG9iamVjdCBDbGFzcyAiUmV0dXJuVHlwZU1hcHBpbmciDQoJICAgIHF1aWQgICAgICAgCSIzOTg4NzBEMzAyNzYiDQoJICAgIGRvY3VtZW50YXRpb24gCQ0KfExvY2FsPTANCnxSZW1vdGU9MQ0KCSAgICANCgkgICAgc3RlcmVvdHlwZSAJImVudW1lcmF0aW9uIg0KCSAgICBjbGFzc19hdHRyaWJ1dGVzIAkobGlzdCBjbGFzc19hdHRyaWJ1dGVfbGlzdA0KCQkob2JqZWN0IENsYXNzQXR0cmlidXRlICJMb2NhbCINCgkJICAgIHF1aWQgICAgICAgCSIzOTg4NzBFNDAyRTgiDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikNCgkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiUmVtb3RlIg0KCQkgICAgcXVpZCAgICAgICAJIjNFOUIwQjRGMDAyQSINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkpDQoJKG9iamVjdCBDbGFzcyAiRXhjbHVkZUxpc3QiDQoJICAgIHF1aWQgICAgICAgCSIzOTk3MjE2RTAxNDciDQoJICAgIGRvY3VtZW50YXRpb24gCQ0KfFRoZSBleGNsdWRlIGxpc3QgZWxlbWVudCBkZWZpbmVzIGEgc2V0IG9mIG1ldGhvZHMgd2hpY2ggdGhlIEFzc2VtYmxlciBtYXJrcyB0byBiZSB1bmNhbGxhYmxlLiBJdCBjb250YWlucyBvbmUgb3IgbW9yZSBtZXRob2RzLg0KfA0KfElmIHRoZSBtZXRob2QgcGVybWlzc2lvbiByZWxhdGlvbiBjb250YWlucyBtZXRob2RzIHRoYXQgYXJlIGluIHRoZSBleGNsdWRlIGxpc3QsIHRoZSBEZXBsb3llciBtdXN0IGNvbnNpZGVyIHRob3NlIG1ldGhvZHMgdG8gYmUgdW5jYWxsYWJsZS4NCnwNCgkgICAgDQoJICAgIGNsYXNzX2F0dHJpYnV0ZXMgCShsaXN0IGNsYXNzX2F0dHJpYnV0ZV9saXN0DQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgImRlc2NyaXB0aW9uIg0KCQkgICAgcXVpZCAgICAgICAJIjM5OTcyMUExMDBBMCINCgkJICAgIGRvY3VtZW50YXRpb24gCSJAc2luY2UgSjJFRTEuNCBkZXByZWNhdGVkLCBiZWNvbWVzIGRlc2NyaXB0aW9ucyINCgkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KCShvYmplY3QgQ2xhc3MgIkRlc3RpbmF0aW9uVHlwZSINCgkgICAgcXVpZCAgICAgICAJIjM5OTc4RjVDMDEwNiINCgkgICAgZG9jdW1lbnRhdGlvbiAJDQp8UXVldWU9MA0KfFRvcGljPTENCgkgICAgDQoJICAgIHN0ZXJlb3R5cGUgCSJlbnVtZXJhdGlvbiINCgkgICAgY2xhc3NfYXR0cmlidXRlcyAJKGxpc3QgY2xhc3NfYXR0cmlidXRlX2xpc3QNCgkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiUXVldWUiDQoJCSAgICBxdWlkICAgICAgIAkiMzk5NzhGNjgwMzUyIg0KCQkgICAgZXhwb3J0Q29udHJvbCAJIlB1YmxpYyIpDQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgIlRvcGljIg0KCQkgICAgcXVpZCAgICAgICAJIjM5OTc4RjdDMDAyNiINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkpDQoJKG9iamVjdCBDbGFzcyAiUXVlcnlNZXRob2QiDQoJICAgIHF1aWQgICAgICAgCSIzOTlBQ0Q5QzAyREYiDQoJICAgIHN1cGVyY2xhc3NlcyAJKGxpc3QgaW5oZXJpdGFuY2VfcmVsYXRpb25zaGlwX2xpc3QNCgkJKG9iamVjdCBJbmhlcml0YW5jZV9SZWxhdGlvbnNoaXANCgkJICAgIHF1aWQgICAgICAgCSIzOTlBRDIzODAyQTkiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6Ok1ldGhvZEVsZW1lbnQiDQoJCSAgICBxdWlkdSAgICAgIAkiMzkyRUQyMkQwMDhBIikpKQ0KCShvYmplY3QgQ2xhc3MgIk11bHRpcGxpY2l0eUtpbmQiDQoJICAgIHF1aWQgICAgICAgCSIzOTlBRUJDQjAyQjciDQoJICAgIGRvY3VtZW50YXRpb24gCQ0KfE9uZT0wDQp8TWFueT0xDQoJICAgIA0KCSAgICBzdGVyZW90eXBlIAkiZW51bWVyYXRpb24iDQoJICAgIGNsYXNzX2F0dHJpYnV0ZXMgCShsaXN0IGNsYXNzX2F0dHJpYnV0ZV9saXN0DQoJCShvYmplY3QgQ2xhc3NBdHRyaWJ1dGUgIk9uZSINCgkJICAgIHF1aWQgICAgICAgCSIzOTlBRUJFQTAwMzAiDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikNCgkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAiTWFueSINCgkJICAgIHF1aWQgICAgICAgCSIzOTlBRUJFRTAzNzUiDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikpKQ0KCShvYmplY3QgQ2xhc3MgIkFjdGl2YXRpb25Db25maWdQcm9wZXJ0eSINCgkgICAgcXVpZCAgICAgICAJIjNFNEQxQTFBMDBCRiINCgkgICAgZG9jdW1lbnRhdGlvbiAJDQp8QHNpbmNlIEoyRUUxLjQNCnxUaGUgYWN0aXZhdGlvbi1jb25maWctcHJvcGVydHlUeXBlIGNvbnRhaW5zIGEgbmFtZS92YWx1ZQ0KfGNvbmZpZ3VyYXRpb24gcHJvcGVydHkgcGFpciBmb3IgYSBtZXNzYWdlLWRyaXZlbiBiZWFuLg0KfA0KfFRoZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIHJlY29nbml6ZWQgZm9yIGEgcGFydGljdWxhcg0KfG1lc3NhZ2UtZHJpdmVuIGJlYW4gYXJlIGRldGVybWluZWQgYnkgdGhlIG1lc3NhZ2luZyB0eXBlLg0KCSAgICANCgkgICAgY2xhc3NfYXR0cmlidXRlcyAJKGxpc3QgY2xhc3NfYXR0cmlidXRlX2xpc3QNCgkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAidmFsdWUiDQoJCSAgICBxdWlkICAgICAgIAkiM0U0RDFBMzYwMzRBIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8VGhlIGFjdGl2YXRpb24tY29uZmlnLXByb3BlcnR5LXZhbHVlIGVsZW1lbnQNCnwgICAgICAgIGNvbnRhaW5zIHRoZSB2YWx1ZSBmb3IgYW4gYWN0aXZhdGlvbiBjb25maWd1cmF0aW9uDQp8ICAgICAgICBwcm9wZXJ0eSBvZiBhIG1lc3NhZ2UtZHJpdmVuIGJlYW4uDQoJCSAgICANCgkJICAgIHR5cGUgICAgICAgCSJTdHJpbmciDQoJCSAgICBleHBvcnRDb250cm9sIAkiUHVibGljIikNCgkJKG9iamVjdCBDbGFzc0F0dHJpYnV0ZSAibmFtZSINCgkJICAgIHF1aWQgICAgICAgCSIzRTREMUE0OTAyNEQiDQoJCSAgICBkb2N1bWVudGF0aW9uIAkNCnxUaGUgYWN0aXZhdGlvbi1jb25maWctcHJvcGVydHktbmFtZSBlbGVtZW50IGNvbnRhaW5zDQp8ICAgICAgICB0aGUgbmFtZSBmb3IgYW4gYWN0aXZhdGlvbiBjb25maWd1cmF0aW9uIHByb3BlcnR5IG9mDQp8ICAgICAgICBhIG1lc3NhZ2UtZHJpdmVuIGJlYW4uDQp8DQp8ICAgICAgICBGb3IgSk1TIG1lc3NhZ2UtZHJpdmVuIGJlYW5zLCB0aGUgZm9sbG93aW5nIHByb3BlcnR5DQp8ICAgICAgICBuYW1lcyBhcmUgcmVjb2duaXplZDogYWNrbm93bGVkZ2VNb2RlLA0KfCAgICAgICAgbWVzc2FnZVNlbGVjdG9yLCBkZXN0aW5hdGlvblR5cGUsIHN1YnNjcmlwdGlvbkR1cmFiaWxpdHkNCgkJICAgIA0KCQkgICAgdHlwZSAgICAgICAJIlN0cmluZyINCgkJICAgIGV4cG9ydENvbnRyb2wgCSJQdWJsaWMiKSkpDQoJKG9iamVjdCBDbGFzcyAiQWN0aXZhdGlvbkNvbmZpZyINCgkgICAgcXVpZCAgICAgICAJIjNFNEQxQTdFMDEzMSINCgkgICAgZG9jdW1lbnRhdGlvbiAJDQp8QHNpbmNlIEoyRUUxLjQNCnxUaGUgYWN0aXZhdGlvbi1jb25maWdUeXBlIGRlZmluZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlDQp8ZXhwZWN0ZWQgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIG9mIHRoZSBtZXNzYWdlLWRyaXZlbiBiZWFuDQp8aW4gaXRzIG9wZXJhdGlvbmFsIGVudmlyb25tZW50LiBUaGlzIG1heSBpbmNsdWRlIGluZm9ybWF0aW9uDQp8YWJvdXQgbWVzc2FnZSBhY2tub3dsZWRnZW1lbnQsIG1lc3NhZ2Ugc2VsZWN0b3IsIGV4cGVjdGVkDQp8ZGVzdGluYXRpb24gdHlwZSwgZXRjLg0KfA0KfFRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGlzIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZg0KfG5hbWUvdmFsdWUgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzLg0KfA0KfFRoZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIHJlY29nbml6ZWQgZm9yIGEgcGFydGljdWxhcg0KfG1lc3NhZ2UtZHJpdmVuIGJlYW4gYXJlIGRldGVybWluZWQgYnkgdGhlIG1lc3NhZ2luZyB0eXBlLg0KCSAgICApDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiJFVOTkFNRUQkMCINCgkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDAyOC0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkgICAgcXVpZCAgICAgICAJIjM3ODBFMzIzMDEyRCINCgkgICAgcm9sZXMgICAgICAJKGxpc3Qgcm9sZV9saXN0DQoJCShvYmplY3QgUm9sZSAiJFVOTkFNRUQkMSINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDI5LTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM3ODBFMzIzMDEyRSINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmNvbW1vbjo6Sk5ESUVudlJlZnNHcm91cCINCgkJICAgIHF1aWR1ICAgICAgCSIzRTRENTM5NTAzNDkiDQoJCSAgICBpc19hZ2dyZWdhdGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAiZW52aXJvbm1lbnRQcm9wZXJ0aWVzIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwMmEtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzc4MEUzMjMwMTJGIg0KCQkgICAgbGFiZWwgICAgICAJImVudmlyb25tZW50UHJvcGVydGllcyINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmNvbW1vbjo6RW52RW50cnkiDQoJCSAgICBxdWlkdSAgICAgIAkiMzcxQkM3NzgwMEUyIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLm4iKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBWYWx1ZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDIiDQoJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwMmItMDA1ZDllNmFkZWM0OjEiKSkpDQoJICAgIHF1aWQgICAgICAgCSIzNzgwRTMyMzAxMzkiDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgIiRVTk5BTUVEJDMiDQoJCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDAyYy0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkJICAgIHF1aWQgICAgICAgCSIzNzgwRTMyMzAxM0EiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3Ojpjb21tb246OkpORElFbnZSZWZzR3JvdXAiDQoJCSAgICBxdWlkdSAgICAgIAkiM0U0RDUzOTUwMzQ5Ig0KCQkgICAgaXNfYWdncmVnYXRlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgInJlc291cmNlUmVmcyINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDJkLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM3ODBFMzIzMDEzQiINCgkJICAgIGxhYmVsICAgICAgCSJyZXNvdXJjZVJlZnMiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3Ojpjb21tb246OlJlc291cmNlUmVmIg0KCQkgICAgcXVpZHUgICAgICAJIjM3MUJDNzkzMDNDNiINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIwLi5uIikNCgkJICAgIENvbnRhaW5tZW50IAkiQnkgVmFsdWUiDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICJFamJUb1JvbGVzIg0KCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCShvYmplY3QgQXR0cmlidXRlDQoJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDJlLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCSAgICBxdWlkICAgICAgIAkiMzc4MEUzMjMwMTQ0Ig0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICIkVU5OQU1FRCQ0Ig0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwMmYtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzc4MEUzMjMwMTQ1Ig0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpFbnRlcnByaXNlQmVhbiINCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTcxQTAxMEEiDQoJCSAgICBpc19hZ2dyZWdhdGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAic2VjdXJpdHlSb2xlUmVmcyINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDMwLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM3ODBFMzIzMDE0NiINCgkJICAgIGxhYmVsICAgICAgCSJzZWN1cml0eVJvbGVSZWZzIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6Y29tbW9uOjpTZWN1cml0eVJvbGVSZWYiDQoJCSAgICBxdWlkdSAgICAgIAkiMzcxQkM3QTAwMjVDIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLm4iKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBWYWx1ZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIkFzc2VtYmx5RGVzY3JpcHRvclRvTWV0aG9kUGVybWlzc2lvbnMiDQoJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwMzEtMDA1ZDllNmFkZWM0OjEiKSkpDQoJICAgIHF1aWQgICAgICAgCSIzNzgwRTM1MDAwRDEiDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgImFzc2VtYmx5RGVzY3JpcHRvciINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDMyLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM3ODBFMzUwMDBEMiINCgkJICAgIGxhYmVsICAgICAgCSJhc3NlbWJseURlc2NyaXB0b3IiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OkFzc2VtYmx5RGVzY3JpcHRvciINCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTM1MDAwRDQiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMSIpDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUNCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICJtZXRob2RQZXJtaXNzaW9ucyINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDMzLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM3ODBFMzUwMDBEMyINCgkJICAgIGxhYmVsICAgICAgCSJtZXRob2RQZXJtaXNzaW9ucyINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6TWV0aG9kUGVybWlzc2lvbiINCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTM1MDAwRDAiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMC4ubiIpDQoJCSAgICBDb250YWlubWVudCAJIkJ5IFZhbHVlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiTWV0aG9kUGVybWlzc2lvblRvTWV0aG9kcyINCgkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDAzNC0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkgICAgcXVpZCAgICAgICAJIjM3ODBFMzUwMDBFQSINCgkgICAgcm9sZXMgICAgICAJKGxpc3Qgcm9sZV9saXN0DQoJCShvYmplY3QgUm9sZSAiL21ldGhvZHMiDQoJCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDAzNS0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkJICAgIHF1aWQgICAgICAgCSIzNzgwRTM1MDAwRUIiDQoJCSAgICBsYWJlbCAgICAgIAkiL21ldGhvZHMiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjpqYXZhOjpNZXRob2QiDQoJCSAgICBxdWlkdSAgICAgIAkiMzY1NEFFOTEwMjcxIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjEuLm4iKQ0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgIi9tZXRob2RQZXJtaXNzaW9uIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwMzYtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzc4MEUzNTAwMEVDIg0KCQkgICAgbGFiZWwgICAgICAJIi9tZXRob2RQZXJtaXNzaW9uIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpNZXRob2RQZXJtaXNzaW9uIg0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFMzUwMDBEMCINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIwLi5uIikpKQ0KCSAgICBkZXJpdmVkICAgIAlUUlVFKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIkFzc2VtYmx5RGVzY3JpcHRvclRvTWV0aG9kVHJhbnNhY3Rpb25zIg0KCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCShvYmplY3QgQXR0cmlidXRlDQoJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDM3LTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCSAgICBxdWlkICAgICAgIAkiMzc4MEUzNTAwMEQ1Ig0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJhc3NlbWJseURlc2NyaXB0b3IiDQoJCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDAzOC0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkJICAgIHF1aWQgICAgICAgCSIzNzgwRTM1MDAwRDYiDQoJCSAgICBsYWJlbCAgICAgIAkiYXNzZW1ibHlEZXNjcmlwdG9yIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpBc3NlbWJseURlc2NyaXB0b3IiDQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEUzNTAwMEQ0Ig0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjEiKQ0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFDQoJCSAgICBpc19hZ2dyZWdhdGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAibWV0aG9kVHJhbnNhY3Rpb25zIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwMzktMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzc4MEUzNTAwMEQ3Ig0KCQkgICAgZG9jdW1lbnRhdGlvbiAJIlNwZWNpZmllcyBob3cgdGhlIGNvbnRhaW5lciBtdXN0IG1hbmFnZSB0cmFuc2FjdGlvbiBzY29wZXMgZm9yIHRoZSBlbnRlcnByaXNlIGJlYW4ncyBtZXRob2QgaW52b2NhdGlvbnMuICBUaGUgZWxlbWVudCBjb25zaXN0cyBvZiBhbiBvcHRpb25hbCBkZXNjcmlwdGlvbiwgYSBsaXN0IG9mIG1ldGhvZCBlbGVtZW50cywgYW5kIGEgdHJhbnNhY3Rpb24gYXR0cmlidXRlLlRoZSB0cmFuc2FjdGlvbiBhdHRyaWJ1dGUgaXMgdG8gYmUgYXBwbGllZCB0byBhbGwgdGhlIHNwZWNpZmllZCBtZXRob2RzLiINCgkJICAgIGxhYmVsICAgICAgCSJtZXRob2RUcmFuc2FjdGlvbnMiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6Ok1ldGhvZFRyYW5zYWN0aW9uIg0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFMzUwMDBERSINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIwLi5uIikNCgkJICAgIENvbnRhaW5tZW50IAkiQnkgVmFsdWUiDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICIkVU5OQU1FRCQ1Ig0KCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCShvYmplY3QgQXR0cmlidXRlDQoJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDNhLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCSAgICBxdWlkICAgICAgIAkiMzc4MEUzNTAwMEUwIg0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICIvbWV0aG9kcyINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDNiLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM3ODBFMzUwMDBFMSINCgkJICAgIGxhYmVsICAgICAgCSIvbWV0aG9kcyINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmphdmE6Ok1ldGhvZCINCgkJICAgIHF1aWR1ICAgICAgCSIzNjU0QUU5MTAyNzEiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMS4ubiIpDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAiL3RyYW5zYWN0aW9ucyINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDNjLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM3ODBFMzUwMDBFMiINCgkJICAgIGxhYmVsICAgICAgCSIvdHJhbnNhY3Rpb25zIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpNZXRob2RUcmFuc2FjdGlvbiINCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTM1MDAwREUiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMC4ubiIpKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiZWpiQ2xhc3MiDQoJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwM2QtMDA1ZDllNmFkZWM0OjEiKSkpDQoJICAgIHF1aWQgICAgICAgCSIzODBGREMzNDAyQzciDQoJICAgIGRvY3VtZW50YXRpb24gCSJUaGUgZWpiLWNsYXNzIGVsZW1lbnQgY29udGFpbnMgdGhlIGZ1bGx5LXF1YWxpZmllZCBuYW1lIG9mIHRoZSBlbnRlcnByaXNlIGJlYW4ncyBjbGFzcy4gIEV4YW1wbGU6IDxlamItY2xhc3M+Y29tLndvbWJhdC5lbXBsLkVtcGxveWVlU2VydmljZUJlYW48L2VqYi1jbGFzcz4iDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgImVqYkNsYXNzIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwM2UtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzgwRkRDMzUwMUVDIg0KCQkgICAgbGFiZWwgICAgICAJImVqYkNsYXNzIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6amF2YTo6SmF2YUNsYXNzIg0KCQkgICAgcXVpZHUgICAgICAJIjM2NTQ5RkNDMDBGQSINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIxIikNCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICJlamIiDQoJCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDAzZi0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkJICAgIHF1aWQgICAgICAgCSIzODBGREMzNTAxRjYiDQoJCSAgICBsYWJlbCAgICAgIAkiZWpiIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpFbnRlcnByaXNlQmVhbiINCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTcxQTAxMEEiKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiaG9tZUludGVyZmFjZSINCgkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDA0MC0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkgICAgcXVpZCAgICAgICAJIjM4MEZEQzM3MDFDNyINCgkgICAgZG9jdW1lbnRhdGlvbiAJIlRoZSBob21lIGVsZW1lbnQgY29udGFpbnMgdGhlIGZ1bGx5LXF1YWxpZmllZCBuYW1lIG9mIHRoZSBlbnRlcnByaXNlIGJlYW4ncyBob21lIGludGVyZmFjZS4iDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgImhvbWVJbnRlcmZhY2UiDQoJCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDA0MS0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkJICAgIHF1aWQgICAgICAgCSIzODBGREM0NDAxNDMiDQoJCSAgICBsYWJlbCAgICAgIAkiaG9tZUludGVyZmFjZSINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmphdmE6OkphdmFDbGFzcyINCgkJICAgIHF1aWR1ICAgICAgCSIzNjU0OUZDQzAwRkEiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMSIpDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAiZWpiIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwNDItMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzgwRkRDNDQwMTREIg0KCQkgICAgbGFiZWwgICAgICAJImVqYiINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6RW50ZXJwcmlzZUJlYW4iDQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEU3MUEwMTBBIikpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gInJlbW90ZUludGVyZmFjZSINCgkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDA0My0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkgICAgcXVpZCAgICAgICAJIjM4MEZEQzQ2MDA2QSINCgkgICAgZG9jdW1lbnRhdGlvbiAJDQp8VGhlIHJlbW90ZSBlbGVtZW50IGNvbnRhaW5zIHRoZSBmdWxseS1xdWFsaWZpZWQgbmFtZSBvZiB0aGUgZW50ZXJwcmlzZSBiZWFuJ3MgcmVtb3RlIGludGVyZmFjZS4NCnxFeGFtcGxlOgk8cmVtb3RlPmNvbS53b21iYXQuZW1wbC5FbXBsb3llZVNlcnZpY2U8L3JlbW90ZT4NCnwNCgkgICAgDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgInJlbW90ZUludGVyZmFjZSINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDQ0LTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM4MEZEQzQ3MDE2NiINCgkJICAgIGxhYmVsICAgICAgCSJyZW1vdGVJbnRlcmZhY2UiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjpqYXZhOjpKYXZhQ2xhc3MiDQoJCSAgICBxdWlkdSAgICAgIAkiMzY1NDlGQ0MwMEZBIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjEiKQ0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgImVqYiINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDQ1LTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM4MEZEQzQ3MDE2NyINCgkJICAgIGxhYmVsICAgICAgCSJlamIiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OkVudGVycHJpc2VCZWFuIg0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFNzFBMDEwQSIpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICJwcmltYXJ5S2V5Ig0KCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCShvYmplY3QgQXR0cmlidXRlDQoJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDQ2LTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCSAgICBxdWlkICAgICAgIAkiMzgwRkREREYwMDZCIg0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJwcmltYXJ5S2V5Ig0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwNDctMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzgwRkRERTAwMTE3Ig0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8VGhlIHByaW1rZXktZmllbGQgZWxlbWVudCBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIHByaW1hcnkga2V5IGZpZWxkIGZvciBhbiBlbnRpdHkgd2l0aCBjb250YWluZXItbWFuYWdlZCBwZXJzaXN0ZW5jZS4gIFRoZSBwcmlta2V5LWZpZWxkIG11c3QgYmUgb25lIG9mIHRoZSBmaWVsZHMgZGVjbGFyZWQgaW4gdGhlIGNtcC1maWVsZA0KfGVsZW1lbnQsIGFuZCB0aGUgdHlwZSBvZiB0aGUgZmllbGQgbXVzdCBiZSB0aGUgc2FtZSBhcyB0aGUgcHJpbWFyeSBrZXkgdHlwZS4gIFRoZSBwcmlta2V5LWZpZWxkIGVsZW1lbnQgaXMgbm90IHVzZWQgaWYgdGhlIHByaW1hcnkga2V5IG1hcHMgdG8gbXVsdGlwbGUgY29udGFpbmVyLW1hbmFnZWQgZmllbGRzIChpLmUuIHRoZSBrZXkgaXMgYSBjb21wb3VuZCBrZXkpLiBJbiB0aGlzIGNhc2UsIHRoZSBmaWVsZHMgb2YgdGhlIHByaW1hcnkga2V5IGNsYXNzIG11c3QgYmUgcHVibGljLCBhbmQgdGhlaXIgbmFtZXMgbXVzdCBjb3JyZXNwb25kIHRvIHRoZSBmaWVsZCBuYW1lcyBvZiB0aGUgZW50aXR5IGJlYW4gY2xhc3MgdGhhdCBjb21wcmlzZSB0aGUga2V5Lg0KfEV4YW1wbGVzOjxwcmltLWtleS1jbGFzcz5qYXZhLmxhbmcuU3RyaW5nPC9wcmltLWtleS1jbGFzcz4NCnwJPHByaW0ta2V5LWNsYXNzPmNvbS53b21iYXQuZW1wbC5FbXBsb3llZUlEPC9wcmltLWtleS1jbGFzcz4NCnwJPHByaW0ta2V5LWNsYXNzPmphdmEubGFuZy5PYmplY3Q8L3ByaW0ta2V5LWNsYXNzPg0KfA0KCQkgICAgDQoJCSAgICBsYWJlbCAgICAgIAkicHJpbWFyeUtleSINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmphdmE6OkphdmFDbGFzcyINCgkJICAgIHF1aWR1ICAgICAgCSIzNjU0OUZDQzAwRkEiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMSIpDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAiZWpiIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwNDgtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzgwRkRERTAwMTIxIg0KCQkgICAgbGFiZWwgICAgICAJImVqYiINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6RW50aXR5Ig0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFNjk3MDM1MSIpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICJqYXJUb0Fzc2VtYmx5RGVzY3JpcHRvciINCgkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI0YTVlMC04ODI2LTExZTEtMDA0OS0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkgICAgcXVpZCAgICAgICAJIjM4RkYzQ0Y4MDFFRSINCgkgICAgcm9sZXMgICAgICAJKGxpc3Qgcm9sZV9saXN0DQoJCShvYmplY3QgUm9sZSAiYXNzZW1ibHlEZXNjcmlwdG9yIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwNGEtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzhGRjNDRjkwMjQ5Ig0KCQkgICAgbGFiZWwgICAgICAJImFzc2VtYmx5RGVzY3JpcHRvciINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6QXNzZW1ibHlEZXNjcmlwdG9yIg0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFMzUwMDBENCINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIwLi4xIikNCgkJICAgIENvbnRhaW5tZW50IAkiQnkgVmFsdWUiDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAiZWpiSmFyIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwNGItMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzhGRjNDRjkwMjY3Ig0KCQkgICAgbGFiZWwgICAgICAJImVqYkphciINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6RUpCSmFyIg0KCQkgICAgcXVpZHUgICAgICAJIjM3MUJDNTVEMDFFMSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRQ0KCQkgICAgaXNfYWdncmVnYXRlIAlUUlVFKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiZWpiSmFyVG9FbnRlcnByaXNlQmVhbnMiDQoJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwNGMtMDA1ZDllNmFkZWM0OjEiKSkpDQoJICAgIHF1aWQgICAgICAgCSIzOEZGM0QxRjAwM0IiDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgImVudGVycHJpc2VCZWFucyINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDRkLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM4RkYzRDFGMDM3QSINCgkJICAgIGRvY3VtZW50YXRpb24gCSJUaGUgZW50ZXJwcmlzZS1iZWFucyBlbGVtZW50IGNvbnRhaW5zIHRoZSBkZWNsYXJhdGlvbnMgb2Ygb25lIG9yIG1vcmUgZW50ZXJwcmlzZSBiZWFucy4iDQoJCSAgICBsYWJlbCAgICAgIAkiZW50ZXJwcmlzZUJlYW5zIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpFbnRlcnByaXNlQmVhbiINCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTcxQTAxMEEiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMS4ubiIpDQoJCSAgICBDb250YWlubWVudCAJIkJ5IFZhbHVlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgImVqYkphciINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDRlLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM4RkYzRDFGMDNDQiINCgkJICAgIGxhYmVsICAgICAgCSJlamJKYXIiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OkVKQkphciINCgkJICAgIHF1aWR1ICAgICAgCSIzNzFCQzU1RDAxRTEiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMSIpDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUNCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDYiDQoJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwNGYtMDA1ZDllNmFkZWM0OjEiKSkpDQoJICAgIHF1aWQgICAgICAgCSIzOTJFRDE4OTAwRkMiDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgInJvbGVzIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNGE1ZTAtODgyNi0xMWUxLTAwNTAtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzkyRUQxOEEwMjhFIg0KCQkgICAgbGFiZWwgICAgICAJInJvbGVzIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6Y29tbW9uOjpTZWN1cml0eVJvbGUiDQoJCSAgICBxdWlkdSAgICAgIAkiMzhDMDMxRkUwMTJEIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjEuLm4iKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBSZWZlcmVuY2UiDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAiJFVOTkFNRUQkNyINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjRhNWUwLTg4MjYtMTFlMS0wMDUxLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM5MkVEMThBMDJENCINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6TWV0aG9kUGVybWlzc2lvbiINCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTM1MDAwRDAiDQoJCSAgICBpc19hZ2dyZWdhdGUgCVRSVUUpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICIkVU5OQU1FRCQ4Ig0KCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCShvYmplY3QgQXR0cmlidXRlDQoJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjYyYzgwLTg4MjYtMTFlMS0wMDAwLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCSAgICBxdWlkICAgICAgIAkiMzkyRUQyODgwMDc3Ig0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJtZXRob2RFbGVtZW50cyINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjYyYzgwLTg4MjYtMTFlMS0wMDAxLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM5MkVEMjg5MDAxRSINCgkJICAgIGxhYmVsICAgICAgCSJtZXRob2RFbGVtZW50cyINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6TWV0aG9kRWxlbWVudCINCgkJICAgIHF1aWR1ICAgICAgCSIzOTJFRDIyRDAwOEEiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMS4ubiIpDQoJCSAgICBDb250YWlubWVudCAJIkJ5IFZhbHVlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgIiRVTk5BTUVEJDkiDQoJCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI2MmM4MC04ODI2LTExZTEtMDAwMi0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkJICAgIHF1aWQgICAgICAgCSIzOTJFRDI4OTAwMjgiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6Ok1ldGhvZFBlcm1pc3Npb24iDQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEUzNTAwMEQwIg0KCQkgICAgaXNfYWdncmVnYXRlIAlUUlVFKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiJFVOTkFNRUQkMTAiDQoJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNjJjODAtODgyNi0xMWUxLTAwMDMtMDA1ZDllNmFkZWM0OjEiKSkpDQoJICAgIHF1aWQgICAgICAgCSIzOTJFRDQwOTAwRDQiDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgIm1ldGhvZEVsZW1lbnRzIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNjJjODAtODgyNi0xMWUxLTAwMDQtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzkyRUQ0MEEwMThBIg0KCQkgICAgbGFiZWwgICAgICAJIm1ldGhvZEVsZW1lbnRzIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpNZXRob2RFbGVtZW50Ig0KCQkgICAgcXVpZHUgICAgICAJIjM5MkVEMjJEMDA4QSINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIxLi5uIikNCgkJICAgIENvbnRhaW5tZW50IAkiQnkgVmFsdWUiDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAiJFVOTkFNRUQkMTEiDQoJCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI2MmM4MC04ODI2LTExZTEtMDAwNS0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkJICAgIHF1aWQgICAgICAgCSIzOTJFRDQwQTAxOUUiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6Ok1ldGhvZFRyYW5zYWN0aW9uIg0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFMzUwMDBERSINCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDEyIg0KCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCShvYmplY3QgQXR0cmlidXRlDQoJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjYyYzgwLTg4MjYtMTFlMS0wMDA2LTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCSAgICBxdWlkICAgICAgIAkiMzkzN0Q2RkYwMTFEIg0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJlbnRlcnByaXNlQmVhbiINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjYyYzgwLTg4MjYtMTFlMS0wMDA3LTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM5MzdENzAwMDE3OCINCgkJICAgIGxhYmVsICAgICAgCSJlbnRlcnByaXNlQmVhbiINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6RW50ZXJwcmlzZUJlYW4iDQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEU3MUEwMTBBIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjEiKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBSZWZlcmVuY2UiDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAibWV0aG9kRWxlbWVudCINCgkJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJCShvYmplY3QgQXR0cmlidXRlDQoJCQkgICAgdG9vbCAgICAgICAJIklETCINCgkJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjYyYzgwLTg4MjYtMTFlMS0wMDA4LTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCQkgICAgcXVpZCAgICAgICAJIjM5MzdENzAwMDIxOCINCgkJICAgIGxhYmVsICAgICAgCSJtZXRob2RFbGVtZW50Ig0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpNZXRob2RFbGVtZW50Ig0KCQkgICAgcXVpZHUgICAgICAJIjM5MkVEMjJEMDA4QSINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIwLi5uIikNCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDEzIg0KCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCShvYmplY3QgQXR0cmlidXRlDQoJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjYyYzgwLTg4MjYtMTFlMS0wMDA5LTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCSAgICBxdWlkICAgICAgIAkiMzkzRUJGQzUwMEI0Ig0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJzZWN1cml0eVJvbGVzIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNjJjODAtODgyNi0xMWUxLTAwMGEtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzkzRUJGQzYwMDgzIg0KCQkgICAgbGFiZWwgICAgICAJInNlY3VyaXR5Um9sZXMiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3Ojpjb21tb246OlNlY3VyaXR5Um9sZSINCgkJICAgIHF1aWR1ICAgICAgCSIzOEMwMzFGRTAxMkQiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMC4ubiIpDQoJCSAgICBDb250YWlubWVudCAJIkJ5IFZhbHVlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgIiRVTk5BTUVEJDE0Ig0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNjJjODAtODgyNi0xMWUxLTAwMGItMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzkzRUJGQzYwMEMwIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpBc3NlbWJseURlc2NyaXB0b3IiDQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEUzNTAwMEQ0Ig0KCQkgICAgaXNfYWdncmVnYXRlIAlUUlVFKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiJFVOTkFNRUQkMTUiDQoJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNjJjODAtODgyNi0xMWUxLTAwMGMtMDA1ZDllNmFkZWM0OjEiKSkpDQoJICAgIHF1aWQgICAgICAgCSIzOTA0NUFFNDAxRjEiDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgIiRVTk5BTUVEJDE2Ig0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNjJjODAtODgyNi0xMWUxLTAwMGQtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzkwNDVBRTUwMDgwIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6Y29tbW9uOjpKTkRJRW52UmVmc0dyb3VwIg0KCQkgICAgcXVpZHUgICAgICAJIjNFNEQ1Mzk1MDM0OSINCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICJlamJSZWZzIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNjJjODAtODgyNi0xMWUxLTAwMGUtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzkwNDVBRTUwMzAxIg0KCQkgICAgbGFiZWwgICAgICAJImVqYlJlZnMiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3Ojpjb21tb246OkVqYlJlZiINCgkJICAgIHF1aWR1ICAgICAgCSIzNzFCQzc4MjAyQjMiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMC4ubiIpDQoJCSAgICBDb250YWlubWVudCAJIkJ5IFZhbHVlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiJFVOTkFNRUQkMTciDQoJICAgIGF0dHJpYnV0ZXMgCShsaXN0IEF0dHJpYnV0ZV9TZXQNCgkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCSAgICBuYW1lICAgICAgIAkidXVpZCINCgkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNjJjODAtODgyNi0xMWUxLTAwMGYtMDA1ZDllNmFkZWM0OjEiKSkpDQoJICAgIHF1aWQgICAgICAgCSIzOTg4MzFDMzAyNDUiDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgInBlcnNpc3RlbnRBdHRyaWJ1dGVzIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNjJjODAtODgyNi0xMWUxLTAwMTAtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzk4ODMxQzUwMTU3Ig0KCQkgICAgbGFiZWwgICAgICAJInBlcnNpc3RlbnRBdHRyaWJ1dGVzIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpDTVBBdHRyaWJ1dGUiDQoJCSAgICBxdWlkdSAgICAgIAkiM0EyMjg4NjMwMDAzIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLm4iKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBWYWx1ZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICJlbnRpdHkiDQoJCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCQkob2JqZWN0IEF0dHJpYnV0ZQ0KCQkJICAgIHRvb2wgICAgICAgCSJJREwiDQoJCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCQkgICAgdmFsdWUgICAgICAJKHZhbHVlIFRleHQgIkRDRTpkOGI2MmM4MC04ODI2LTExZTEtMDAxMS0wMDVkOWU2YWRlYzQ6MSIpKSkNCgkJICAgIHF1aWQgICAgICAgCSIzOTg4MzFDNTAxN0YiDQoJCSAgICBsYWJlbCAgICAgIAkiZW50aXR5Ig0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpDb250YWluZXJNYW5hZ2VkRW50aXR5Ig0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFMzIzMDE3NCINCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDE4Ig0KCSAgICBhdHRyaWJ1dGVzIAkobGlzdCBBdHRyaWJ1dGVfU2V0DQoJCShvYmplY3QgQXR0cmlidXRlDQoJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkgICAgbmFtZSAgICAgICAJInV1aWQiDQoJCSAgICB2YWx1ZSAgICAgIAkodmFsdWUgVGV4dCAiRENFOmQ4YjYyYzgwLTg4MjYtMTFlMS0wMDEyLTAwNWQ5ZTZhZGVjNDoxIikpKQ0KCSAgICBxdWlkICAgICAgIAkiMzk4ODMyM0IwMzU1Ig0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJrZXlBdHRyaWJ1dGVzIg0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNjJjODAtODgyNi0xMWUxLTAwMTMtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzk4ODMyM0QwMjVFIg0KCQkgICAgbGFiZWwgICAgICAJImtleUF0dHJpYnV0ZXMiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OkNNUEF0dHJpYnV0ZSINCgkJICAgIHF1aWR1ICAgICAgCSIzQTIyODg2MzAwMDMiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMC4ubiIpDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAiZW50aXR5Ig0KCQkgICAgYXR0cmlidXRlcyAJKGxpc3QgQXR0cmlidXRlX1NldA0KCQkJKG9iamVjdCBBdHRyaWJ1dGUNCgkJCSAgICB0b29sICAgICAgIAkiSURMIg0KCQkJICAgIG5hbWUgICAgICAgCSJ1dWlkIg0KCQkJICAgIHZhbHVlICAgICAgCSh2YWx1ZSBUZXh0ICJEQ0U6ZDhiNjJjODAtODgyNi0xMWUxLTAwMTQtMDA1ZDllNmFkZWM0OjEiKSkpDQoJCSAgICBxdWlkICAgICAgIAkiMzk4ODMyM0QwMjdDIg0KCQkgICAgbGFiZWwgICAgICAJImVudGl0eSINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6Q29udGFpbmVyTWFuYWdlZEVudGl0eSINCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTMyMzAxNzQiDQoJCSAgICBpc19hZ2dyZWdhdGUgCVRSVUUpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICIkVU5OQU1FRCQxOSINCgkgICAgcXVpZCAgICAgICAJIjM5QkVGODg3MDM3OCINCgkgICAgcm9sZXMgICAgICAJKGxpc3Qgcm9sZV9saXN0DQoJCShvYmplY3QgUm9sZSAicmVsYXRpb25zaGlwTGlzdCINCgkJICAgIHF1aWQgICAgICAgCSIzOUJFRjg4OTAwM0MiDQoJCSAgICBkb2N1bWVudGF0aW9uIAkNCnxUaGUgcmVsYXRpb25zaGlwcyBjb2xsZWN0aW9uIGRlc2NyaWJlcyB0aGUgcmVsYXRpb25zaGlwcyBpbiB3aGljaCBjb250YWluZXIgbWFuYWdlZCBwZXJzaXN0ZW5jZSBlbnRpdHkgYmVhbnMgYW5kIGRlcGVuZGVudCBvYmplY3RzIHBhcnRpY2lwYXRlLiBUaGUgcmVsYXRpb25zaGlwcyBlbGVtZW50IGNvbnRhaW5zIGFuIG9wdGlvbmFsIGRlc2NyaXB0aW9uOyBhIGxpc3Qgb2YgZWpiLWVudGl0eS1yZWYgZWxlbWVudHMgKHJlZmVyZW5jZXMgdG8gZW50aXR5IGJlYW5zIHRoYXQgcGFydGljaXBhdGUgaW4gY29udGFpbmVyIG1hbmFnZWQgcmVsYXRpb25zaGlwcyBidXQgd2hvc2UgYWJzdHJhY3QgcGVyc2lzdGVuY2Ugc2NoZW1hcyBhcmUgbm90IGluY2x1ZGVkIGluIHRoZSBlamItamFyIGZpbGUpOw0KfGFuZCBhIGxpc3Qgb2YgZWpiLXJlbGF0aW9uIGVsZW1lbnRzLCB3aGljaCBzcGVjaWZ5IHRoZSBjb250YWluZXIgbWFuYWdlZCByZWxhdGlvbnNoaXBzLg0KCQkgICAgDQoJCSAgICBsYWJlbCAgICAgIAkicmVsYXRpb25zaGlwTGlzdCINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6UmVsYXRpb25zaGlwcyINCgkJICAgIHF1aWR1ICAgICAgCSIzOUJFRjgxNzAzQjMiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMC4uMSIpDQoJCSAgICBDb250YWlubWVudCAJIkJ5IFZhbHVlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgImVqYkphciINCgkJICAgIHF1aWQgICAgICAgCSIzOUJFRjg4OTAwM0QiDQoJCSAgICBsYWJlbCAgICAgIAkiZWpiSmFyIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpFSkJKYXIiDQoJCSAgICBxdWlkdSAgICAgIAkiMzcxQkM1NUQwMUUxIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjEiKQ0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFDQoJCSAgICBpc19hZ2dyZWdhdGUgCVRSVUUpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICIkVU5OQU1FRCQyMCINCgkgICAgcXVpZCAgICAgICAJIjM5QkYwNTY3MDJDRCINCgkgICAgcm9sZXMgICAgICAJKGxpc3Qgcm9sZV9saXN0DQoJCShvYmplY3QgUm9sZSAicXVlcnlNZXRob2QiDQoJCSAgICBxdWlkICAgICAgIAkiMzlCRjA1NjkwMUVBIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8VGhlIHF1ZXJ5LW1ldGhvZCBlbGVtZW50IGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgbWV0aG9kIChEQi9TUi9DTS0ib24gdGhlIGhvbWUiKSBmb3IgYSBmaW5kZXIgb3INCnxzZWxlY3QgcXVlcnkuDQp8DQp8VGhlIG1ldGhvZC1uYW1lIGVsZW1lbnQgc3BlY2lmaWVzIHRoZSBuYW1lIG9mIGEgZmluZGVyIG9yIHNlbGVjdA0KfG1ldGhvZCBpbiB0aGUgZW50aXR5IGJlYW4ncyBpbXBsZW1lbnRhdGlvbiBjbGFzcyBvciBhIHNlbGVjdCBtZXRob2QgaW4NCnx0aGUgZGVwZW5kZW50IG9iamVjdCBjbGFzcy4NCnwNCnxFYWNoIG1ldGhvZC1wYXJhbSBtdXN0IGJlIGRlZmluZWQgZm9yIGEgcXVlcnktbWV0aG9kIHVzaW5nIHRoZQ0KfG1ldGhvZC1wYXJhbXMgZWxlbWVudC4NCnwNCnxVc2VkIGluOiBxdWVyeQ0KfA0KfEV4YW1wbGU6DQp8DQp8RXhhbXBsZToNCnw8cXVlcnk+DQp8ICA8ZGVzY3JpcHRpb24+TWV0aG9kIGZpbmRzIGxhcmdlIG9yZGVyczwvZGVzY3JpcHRpb24+DQp8ICA8cXVlcnktbWV0aG9kPg0KfCAgICA8bWV0aG9kLW5hbWU+ZmluZExhcmdlT3JkZXJzPC9tZXRob2QtbmFtZT4NCnwgICAgPG1ldGhvZC1wYXJhbXM+PC9tZXRob2QtcGFyYW1zPg0KfCAgPC9xdWVyeS1tZXRob2Q+DQp8ICA8ZWpiLXFsPlNFTEVDVCBFTlRJVFkobykgRlJPTSBPcmRlciBvIFdIRVJFIG8uYW1vdW50ICZndDsgMTAwMDwvZWpiLXFsPg0KfDwvcXVlcnk+DQoJCSAgICANCgkJICAgIGxhYmVsICAgICAgCSJxdWVyeU1ldGhvZCINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6UXVlcnlNZXRob2QiDQoJCSAgICBxdWlkdSAgICAgIAkiMzk5QUNEOUMwMkRGIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjEiKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBWYWx1ZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICJxdWVyeSINCgkJICAgIHF1aWQgICAgICAgCSIzOUJGMDU2OTAxRjQiDQoJCSAgICBsYWJlbCAgICAgIAkicXVlcnkiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OlF1ZXJ5Ig0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYwMjcxMDMyNyINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIxIikNCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRQ0KCQkgICAgaXNfYWdncmVnYXRlIAlUUlVFKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiJFVOTkFNRUQkMjEiDQoJICAgIHF1aWQgICAgICAgCSIzOUJGMEM0MDAxNDciDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgImVqYlJlbGF0aW9ucyINCgkJICAgIHF1aWQgICAgICAgCSIzOUJGMEM0MTAwMUMiDQoJCSAgICBkb2N1bWVudGF0aW9uIAkiQSBsaXN0IG9mIGVqYi1yZWxhdGlvbiBlbGVtZW50cywgd2hpY2ggc3BlY2lmeSB0aGUgY29udGFpbmVyIG1hbmFnZWQgcmVsYXRpb25zaGlwcy4iDQoJCSAgICBsYWJlbCAgICAgIAkiZWpiUmVsYXRpb25zIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpFSkJSZWxhdGlvbiINCgkJICAgIHF1aWR1ICAgICAgCSIzOUJGMEMwMjAzQkYiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMC4ubiIpDQoJCSAgICBDb250YWlubWVudCAJIkJ5IFZhbHVlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgInJlbGF0aW9uc2hpcExpc3QiDQoJCSAgICBxdWlkICAgICAgIAkiMzlCRjBDNDEwMDFEIg0KCQkgICAgbGFiZWwgICAgICAJInJlbGF0aW9uc2hpcExpc3QiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OlJlbGF0aW9uc2hpcHMiDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRUY4MTcwM0IzIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLjEiKQ0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFDQoJCSAgICBpc19hZ2dyZWdhdGUgCVRSVUUpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICIkVU5OQU1FRCQyMiINCgkgICAgcXVpZCAgICAgICAJIjM5QkYwREUzMDEzNiINCgkgICAgcm9sZXMgICAgICAJKGxpc3Qgcm9sZV9saXN0DQoJCShvYmplY3QgUm9sZSAicmVsYXRpb25zaGlwUm9sZXMiDQoJCSAgICBxdWlkICAgICAgIAkiMzlCRjBERTMwM0Q1Ig0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8QSBjb2xsZWN0aW9uIGNvbnRhaW5pbmcgZXhhY3RseSB0d28gcmVsYXRpb25zaGlwIHJvbGVzLg0KfA0KfEBtaWdyYXRpb24gRUpCMS4xIENvbnRhaW5tZW50IHVzZWQgdG8gYmUgYnkgcmVmZXJlbmNlIG9uIHJlbGF0aW9uLS1ub3cgYnkgdmFsdWUuDQp8DQoJCSAgICANCgkJICAgIGxhYmVsICAgICAgCSJyZWxhdGlvbnNoaXBSb2xlcyINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6RUpCUmVsYXRpb25zaGlwUm9sZSINCgkJICAgIHF1aWR1ICAgICAgCSIzOUJGMEREMDAyM0QiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMiIpDQoJCSAgICBDb250YWlubWVudCAJIkJ5IFZhbHVlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgInJlbGF0aW9uc2hpcCINCgkJICAgIHF1aWQgICAgICAgCSIzOUJGMERFMzAzRDYiDQoJCSAgICBsYWJlbCAgICAgIAkicmVsYXRpb25zaGlwIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpFSkJSZWxhdGlvbiINCgkJICAgIHF1aWR1ICAgICAgCSIzOUJGMEMwMjAzQkYiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMSIpDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUNCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDIzIg0KCSAgICBxdWlkICAgICAgIAkiMzlCRjE0RUEwMkZGIg0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJzb3VyY2UiDQoJCSAgICBxdWlkICAgICAgIAkiMzlCRjE0RUMwMDU5Ig0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8RGVzaWduYXRlcyB0aGUgc291cmNlIG9mIGEgcm9sZSB0aGF0IHBhcnRpY2lwYXRlcyBpbiBhIHJlbGF0aW9uc2hpcC4gQSByZWxhdGlvbnNoaXAtcm9sZS1zb3VyY2UgZWxlbWVudCB1bmlxdWVseSBpZGVudGlmaWVzIGFuIGVudGl0eSBiZWFuLg0KfEBtaWdyYXRpb24gRUpCMS4xOiB3YXMgaWJtZWpiZXh0OjpFamJSZWxhdGlvbnNoaXBSb2xlOjpzb3VyY2VFSkJOYW1lLCBidXQgdGhhdCBtYXkgbm90IGJlIHN1ZmZpY2llbnQsIGFzIHRoaXMgY2FuIG5vdyByZWZlciB0byBkZXBlbmRlbnQgY2xhc3MgbmFtZXMgb3IgZWpiIHJlZnMNCgkJICAgIA0KCQkgICAgbGFiZWwgICAgICAJInNvdXJjZSINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6Um9sZVNvdXJjZSINCgkJICAgIHF1aWR1ICAgICAgCSIzOUJGMTQ3NTAwRTQiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMSIpDQoJCSAgICBDb250YWlubWVudCAJIkJ5IFZhbHVlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgInJvbGUiDQoJCSAgICBxdWlkICAgICAgIAkiMzlCRjE0RUMwMDVBIg0KCQkgICAgbGFiZWwgICAgICAJInJvbGUiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OkVKQlJlbGF0aW9uc2hpcFJvbGUiDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRjBERDAwMjNEIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjEiKQ0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFDQoJCSAgICBpc19hZ2dyZWdhdGUgCVRSVUUpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICIkVU5OQU1FRCQyNCINCgkgICAgcXVpZCAgICAgICAJIjM5QkYxODIwMDFDMSINCgkgICAgcm9sZXMgICAgICAJKGxpc3Qgcm9sZV9saXN0DQoJCShvYmplY3QgUm9sZSAiY21yRmllbGQiDQoJCSAgICBxdWlkICAgICAgIAkiMzlCRjE4MjEwMEQyIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8QSBkZWNsYXJhdGlvbiBvZiB0aGUgQ01SRmllbGQsIGlmIGFueSwgYnkgbWVhbnMgb2Ygd2hpY2ggdGhlIG90aGVyIHNpZGUgb2YgdGhlIHJlbGF0aW9uc2hpcCBpcyBhY2Nlc3NlZCBmcm9tIHRoZSBwZXJzcGVjdGl2ZSBvZiB0aGUgcm9sZSBzb3VyY2UNCnwNCnxAbWlncmF0aW9uIEVKQjEuMTogVXNlZCB0byBiZSBoYW5kbGVkIHZpYSBpYm1lamJleHQ6OkVqYlJvbGU6OmF0dHJpYnV0ZXMgbGlzdA0KCQkgICAgDQoJCSAgICBsYWJlbCAgICAgIAkiY21yRmllbGQiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OkNNUkZpZWxkIg0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYxODEwMDA0QiINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIxIikNCgkJICAgIENvbnRhaW5tZW50IAkiQnkgVmFsdWUiDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAicm9sZSINCgkJICAgIHF1aWQgICAgICAgCSIzOUJGMTgyMTAwREMiDQoJCSAgICBsYWJlbCAgICAgIAkicm9sZSINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6RUpCUmVsYXRpb25zaGlwUm9sZSINCgkJICAgIHF1aWR1ICAgICAgCSIzOUJGMEREMDAyM0QiDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUNCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDI1Ig0KCSAgICBxdWlkICAgICAgIAkiMzlCRjFCQkQwMkVEIg0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICIvb3Bwb3NpdGUiDQoJCSAgICBxdWlkICAgICAgIAkiMzlCRjFCQzAwMzlDIg0KCQkgICAgbGFiZWwgICAgICAJIi9vcHBvc2l0ZSINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6RUpCUmVsYXRpb25zaGlwUm9sZSINCgkJICAgIHF1aWR1ICAgICAgCSIzOUJGMEREMDAyM0QiDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAiJFVOTkFNRUQkMjYiDQoJCSAgICBxdWlkICAgICAgIAkiMzlCRjFCQzAwM0E2Ig0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpFSkJSZWxhdGlvbnNoaXBSb2xlIg0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYwREQwMDIzRCIpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICIkVU5OQU1FRCQyNyINCgkgICAgcXVpZCAgICAgICAJIjM5QkYyMDlGMDBDNCINCgkgICAgcm9sZXMgICAgICAJKGxpc3Qgcm9sZV9saXN0DQoJCShvYmplY3QgUm9sZSAicmVzb3VyY2VFbnZSZWZzIg0KCQkgICAgcXVpZCAgICAgICAJIjM5QkYyMDlGMDM5NSINCgkJICAgIGRvY3VtZW50YXRpb24gCQ0KfEEgbGlzdCBvZiBlbnRlcnByaXNlIGJlYW4gcmVmZXJlbmNlcyB0byBhbiBhZG1pbmlzdGVyZWQgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIHJlc291cmNlIGluIHRoZSBlbnRlcnByaXNlIGJlYW4ncyBlbnZpcm9ubWVudC4gSXQgY29uc2lzdHMgb2YgYW4gb3B0aW9uYWwgZGVzY3JpcHRpb24sIHRoZSByZXNvdXJjZSBlbnZpcm9ubWVudCByZWZlcmVuY2UgbmFtZSwgYW5kIGFuIGluZGljYXRpb24gb2YgdGhlIHJlc291cmNlIGVudmlyb25tZW50IHJlZmVyZW5jZSB0eXBlIGV4cGVjdGVkIGJ5IHRoZSBlbnRlcnByaXNlIGJlYW4gY29kZS4NCnwNCgkJICAgIA0KCQkgICAgbGFiZWwgICAgICAJInJlc291cmNlRW52UmVmcyINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmNvbW1vbjo6UmVzb3VyY2VFbnZSZWYiDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRjIwNzIwMEQzIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLm4iKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBWYWx1ZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICIkVU5OQU1FRCQyOCINCgkJICAgIHF1aWQgICAgICAgCSIzOUJGMjA5RjAzOTYiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3Ojpjb21tb246OkpORElFbnZSZWZzR3JvdXAiDQoJCSAgICBxdWlkdSAgICAgIAkiM0U0RDUzOTUwMzQ5Ig0KCQkgICAgaXNfYWdncmVnYXRlIAlUUlVFKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiJFVOTkFNRUQkMjkiDQoJICAgIHF1aWQgICAgICAgCSIzOUJGMkMxRjAxOEYiDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgInNlY3VyaXR5SWRlbnRpdHkiDQoJCSAgICBxdWlkICAgICAgIAkiMzlCRjJDMjAwMjYzIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8VGhlIHNlY3VyaXR5LWlkZW50aXR5IGVsZW1lbnQgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIGNhbGxlcidzIHNlY3VyaXR5IGlkZW50aXR5IGlzIHRvIGJlIHVzZWQgZm9yIHRoZSBleGVjdXRpb24gb2YgdGhlIG1ldGhvZHMgb2YgdGhlIGVudGVycHJpc2UgYmVhbiBvciB3aGV0aGVyIGEgc3BlY2lmaWMgcnVuLWFzIGlkZW50aXR5IGlzIHRvIGJlIHVzZWQuIEl0DQp8Y29udGFpbnMgYW4gb3B0aW9uYWwgZGVzY3JpcHRpb24gYW5kIGEgc3BlY2lmaWNhdGlvbiBvZiB0aGUgc2VjdXJpdHkgaWRlbnRpdHkgdG8gYmUgdXNlZC4NCgkJICAgIA0KCQkgICAgbGFiZWwgICAgICAJInNlY3VyaXR5SWRlbnRpdHkiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3Ojpjb21tb246OlNlY3VyaXR5SWRlbnRpdHkiDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRjJDMDQwMjQ1Ig0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLjEiKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBWYWx1ZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICIkVU5OQU1FRCQzMCINCgkJICAgIHF1aWQgICAgICAgCSIzOUJGMkMyMDAyNjQiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OkVudGVycHJpc2VCZWFuIg0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFNzFBMDEwQSINCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDMxIg0KCSAgICBxdWlkICAgICAgIAkiMzlCRjM0MDgwMUZGIg0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJkZXN0aW5hdGlvbiINCgkJICAgIHF1aWQgICAgICAgCSIzOUJGMzQwOTAwNTIiDQoJCSAgICBkb2N1bWVudGF0aW9uIAkNCnxAc2luY2UgSjJFRTEuNCBkZXByZWNhdGVkLCBiZWNvbWVzIGFjdGl2YXRpb25Db25maWcNCnxBbiBvcHRpb25hbCBkZWNsYXJhdGlvbiBvZiB0aGUgaW50ZW5kZWQgZGVzdGluYXRpb24gdHlwZSBvZiB0aGUgbWVzc2FnZS1kcml2ZW4gYmVhbg0KCQkgICAgDQoJCSAgICBsYWJlbCAgICAgIAkiZGVzdGluYXRpb24iDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6Ok1lc3NhZ2VEcml2ZW5EZXN0aW5hdGlvbiINCgkJICAgIHF1aWR1ICAgICAgCSIzOUJGMzNGMTAwNDQiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMC4uMSIpDQoJCSAgICBDb250YWlubWVudCAJIkJ5IFZhbHVlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgImJlYW4iDQoJCSAgICBxdWlkICAgICAgIAkiMzlCRjM0MDkwMDVDIg0KCQkgICAgbGFiZWwgICAgICAJImJlYW4iDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6Ok1lc3NhZ2VEcml2ZW4iDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRjMyNDgwMTBCIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjEiKQ0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFDQoJCSAgICBpc19hZ2dyZWdhdGUgCVRSVUUpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICIkVU5OQU1FRCQzMiINCgkgICAgcXVpZCAgICAgICAJIjM5ODg2Mzg0MDE3MiINCgkgICAgcm9sZXMgICAgICAJKGxpc3Qgcm9sZV9saXN0DQoJCShvYmplY3QgUm9sZSAiZWpiTG9jYWxSZWZzIg0KCQkgICAgcXVpZCAgICAgICAJIjM5ODg2Mzg1MDJBQSINCgkJICAgIGxhYmVsICAgICAgCSJlamJMb2NhbFJlZnMiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3Ojpjb21tb246OkVKQkxvY2FsUmVmIg0KCQkgICAgcXVpZHUgICAgICAJIjM5ODg2MkUyMDEwMSINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIwLi5uIikNCgkJICAgIENvbnRhaW5tZW50IAkiQnkgVmFsdWUiDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAiJFVOTkFNRUQkMzMiDQoJCSAgICBxdWlkICAgICAgIAkiMzk4ODYzODUwMkI0Ig0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6Y29tbW9uOjpKTkRJRW52UmVmc0dyb3VwIg0KCQkgICAgcXVpZHUgICAgICAJIjNFNEQ1Mzk1MDM0OSINCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gImxvY2FsSG9tZUludGVyZmFjZSINCgkgICAgcXVpZCAgICAgICAJIjM5ODg2QzJCMDE4QiINCgkgICAgZG9jdW1lbnRhdGlvbiAJDQp8Q29udGFpbnMgdGhlIGZ1bGx5LXF1YWxpZmllZCBuYW1lIG9mIHRoZSBlbnRlcnByaXNlIGJlYW6ScyBsb2NhbCBob21lIGludGVyZmFjZS4gIA0KfFRoaXMgcmVmZXJlbmNlIGlzIG9ubHkgdXNlZCBmb3IgRW50aXR5IGFuZCBTZXNzaW9uIGJlYW5zLiAgTWVzc2FnZSBEcml2ZW4gYmVhbnMgaWdub3JlIHRoZSBsb2NhbEhvbWVJbnRlcmZhY2UgaWYgc3BlY2lmaWVkLg0KCSAgICANCgkgICAgcm9sZXMgICAgICAJKGxpc3Qgcm9sZV9saXN0DQoJCShvYmplY3QgUm9sZSAibG9jYWxIb21lSW50ZXJmYWNlIg0KCQkgICAgcXVpZCAgICAgICAJIjM5ODg2QzJDMDJBRiINCgkJICAgIGxhYmVsICAgICAgCSJsb2NhbEhvbWVJbnRlcmZhY2UiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjpqYXZhOjpKYXZhQ2xhc3MiDQoJCSAgICBxdWlkdSAgICAgIAkiMzY1NDlGQ0MwMEZBIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLjEiKQ0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgIiRVTk5BTUVEJDM0Ig0KCQkgICAgcXVpZCAgICAgICAJIjM5ODg2QzJDMDJENyINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6RW50ZXJwcmlzZUJlYW4iDQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEU3MUEwMTBBIikpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gImxvY2FsSW50ZXJmYWNlIg0KCSAgICBxdWlkICAgICAgIAkiMzk4ODZDQzIwMjgzIg0KCSAgICBkb2N1bWVudGF0aW9uIAkNCnxDb250YWlucyB0aGUgZnVsbHktcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGVudGVycHJpc2UgYmVhbpJzIGxvY2FsIGludGVyZmFjZS4gIA0KfFRoaXMgcmVmZXJlbmNlIGlzIG9ubHkgdXNlZCBmb3IgRW50aXR5IGFuZCBTZXNzaW9uIGJlYW5zLiAgTWVzc2FnZSBEcml2ZW4gYmVhbnMgaWdub3JlIHRoZSBsb2NhbEludGVyZmFjZSBpZiBzcGVjaWZpZWQuDQoJICAgIA0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJsb2NhbEludGVyZmFjZSINCgkJICAgIHF1aWQgICAgICAgCSIzOTg4NkNDNjAwRUUiDQoJCSAgICBsYWJlbCAgICAgIAkibG9jYWxJbnRlcmZhY2UiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjpqYXZhOjpKYXZhQ2xhc3MiDQoJCSAgICBxdWlkdSAgICAgIAkiMzY1NDlGQ0MwMEZBIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLjEiKQ0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgIiRVTk5BTUVEJDM1Ig0KCQkgICAgcXVpZCAgICAgICAJIjM5ODg2Q0M2MDEyMCINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6RW50ZXJwcmlzZUJlYW4iDQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEU3MUEwMTBBIikpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDM2Ig0KCSAgICBxdWlkICAgICAgIAkiMzk4ODg0QzIwMzZFIg0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJlbnRpdHlCZWFuIg0KCQkgICAgcXVpZCAgICAgICAJIjM5ODg4NEMzMDI3RiINCgkJICAgIGxhYmVsICAgICAgCSJlbnRpdHlCZWFuIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpDb250YWluZXJNYW5hZ2VkRW50aXR5Ig0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFMzIzMDE3NCINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIxIikNCgkJICAgIENvbnRhaW5tZW50IAkiQnkgUmVmZXJlbmNlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgIiRVTk5BTUVEJDM3Ig0KCQkgICAgcXVpZCAgICAgICAJIjM5ODg4NEMzMDI4OSINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6Um9sZVNvdXJjZSINCgkJICAgIHF1aWR1ICAgICAgCSIzOUJGMTQ3NTAwRTQiDQoJCSAgICBpc19hZ2dyZWdhdGUgCVRSVUUpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICIkVU5OQU1FRCQzOCINCgkgICAgcXVpZCAgICAgICAJIjM5ODg4NkY1MDNCRCINCgkgICAgcm9sZXMgICAgICAJKGxpc3Qgcm9sZV9saXN0DQoJCShvYmplY3QgUm9sZSAiL3JvbGVzIg0KCQkgICAgcXVpZCAgICAgICAJIjM5ODg4NkY2MDJEOCINCgkJICAgIGxhYmVsICAgICAgCSIvcm9sZXMiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OkVKQlJlbGF0aW9uc2hpcFJvbGUiDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRjBERDAwMjNEIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLm4iKQ0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgIiRVTk5BTUVEJDM5Ig0KCQkgICAgcXVpZCAgICAgICAJIjM5ODg4NkY2MDJFMiINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6Q29udGFpbmVyTWFuYWdlZEVudGl0eSINCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTMyMzAxNzQiKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiJFVOTkFNRUQkNDAiDQoJICAgIHF1aWQgICAgICAgCSIzOTk3MjFCNjAyRjkiDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgImV4Y2x1ZGVMaXN0Ig0KCQkgICAgcXVpZCAgICAgICAJIjM5OTcyMUI3MDIzQyINCgkJICAgIGxhYmVsICAgICAgCSJleGNsdWRlTGlzdCINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6RXhjbHVkZUxpc3QiDQoJCSAgICBxdWlkdSAgICAgIAkiMzk5NzIxNkUwMTQ3Ig0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLjEiKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBWYWx1ZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICIkVU5OQU1FRCQ0MSINCgkJICAgIHF1aWQgICAgICAgCSIzOTk3MjFCNzAyNDYiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OkFzc2VtYmx5RGVzY3JpcHRvciINCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTM1MDAwRDQiDQoJCSAgICBpc19hZ2dyZWdhdGUgCVRSVUUpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICIkVU5OQU1FRCQ0MiINCgkgICAgcXVpZCAgICAgICAJIjM5OTcyMjY1MDFBNiINCgkgICAgcm9sZXMgICAgICAJKGxpc3Qgcm9sZV9saXN0DQoJCShvYmplY3QgUm9sZSAibWV0aG9kRWxlbWVudHMiDQoJCSAgICBxdWlkICAgICAgIAkiMzk5NzIyNjYwMjg0Ig0KCQkgICAgbGFiZWwgICAgICAJIm1ldGhvZEVsZW1lbnRzIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpNZXRob2RFbGVtZW50Ig0KCQkgICAgcXVpZHUgICAgICAJIjM5MkVEMjJEMDA4QSINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIxLi5uIikNCgkJICAgIENvbnRhaW5tZW50IAkiQnkgVmFsdWUiDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAiJFVOTkFNRUQkNDMiDQoJCSAgICBxdWlkICAgICAgIAkiMzk5NzIyNjYwMjk4Ig0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpFeGNsdWRlTGlzdCINCgkJICAgIHF1aWR1ICAgICAgCSIzOTk3MjE2RTAxNDciDQoJCSAgICBpc19hZ2dyZWdhdGUgCVRSVUUpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICIkVU5OQU1FRCQ0NCINCgkgICAgcXVpZCAgICAgICAJIjM5OUFFMEZCMDNEMyINCgkgICAgcm9sZXMgICAgICAJKGxpc3Qgcm9sZV9saXN0DQoJCShvYmplY3QgUm9sZSAiY29sbGVjdGlvblR5cGUiDQoJCSAgICBxdWlkICAgICAgIAkiMzk5QUUwRkMwMzhGIg0KCQkgICAgbGFiZWwgICAgICAJImNvbGxlY3Rpb25UeXBlIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6amF2YTo6SmF2YUNsYXNzIg0KCQkgICAgcXVpZHUgICAgICAJIjM2NTQ5RkNDMDBGQSINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIwLi4xIikNCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICIkVU5OQU1FRCQ0NSINCgkJICAgIHF1aWQgICAgICAgCSIzOTlBRTBGQzAzQjciDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OkNNUkZpZWxkIg0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYxODEwMDA0QiINCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDQ2Ig0KCSAgICBxdWlkICAgICAgIAkiM0U0RDFBRTIwMTVEIg0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJjb25maWdQcm9wZXJ0aWVzIg0KCQkgICAgcXVpZCAgICAgICAJIjNFNEQxQUUyMDMzMyINCgkJICAgIGxhYmVsICAgICAgCSJjb25maWdQcm9wZXJ0aWVzIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpBY3RpdmF0aW9uQ29uZmlnUHJvcGVydHkiDQoJCSAgICBxdWlkdSAgICAgIAkiM0U0RDFBMUEwMEJGIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjEuLm4iKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBWYWx1ZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICIkVU5OQU1FRCQ0NyINCgkJICAgIHF1aWQgICAgICAgCSIzRTREMUFFMjAzMzUiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OkFjdGl2YXRpb25Db25maWciDQoJCSAgICBxdWlkdSAgICAgIAkiM0U0RDFBN0UwMTMxIg0KCQkgICAgaXNfYWdncmVnYXRlIAlUUlVFKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiJFVOTkFNRUQkNDgiDQoJICAgIHF1aWQgICAgICAgCSIzRTREMUIwNTAxNDkiDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgImFjdGl2YXRpb25Db25maWciDQoJCSAgICBxdWlkICAgICAgIAkiM0U0RDFCMDcwMEEyIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJIkBzaW5jZSBKMkVFMS40Ig0KCQkgICAgbGFiZWwgICAgICAJImFjdGl2YXRpb25Db25maWciDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OkFjdGl2YXRpb25Db25maWciDQoJCSAgICBxdWlkdSAgICAgIAkiM0U0RDFBN0UwMTMxIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLjEiKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBWYWx1ZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICIkVU5OQU1FRCQ0OSINCgkJICAgIHF1aWQgICAgICAgCSIzRTREMUIwNzAwQTQiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6Ok1lc3NhZ2VEcml2ZW4iDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRjMyNDgwMTBCIg0KCQkgICAgaXNfYWdncmVnYXRlIAlUUlVFKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiJFVOTkFNRUQkNTAiDQoJICAgIHF1aWQgICAgICAgCSIzRTREMUJGNDAyRTciDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgIm1lc3NhZ2VEZXN0aW5hdGlvbnMiDQoJCSAgICBxdWlkICAgICAgIAkiM0U0RDFCRjYwMEI5Ig0KCQkgICAgZG9jdW1lbnRhdGlvbiAJIkBzaW5jZSBKMkVFMS40Ig0KCQkgICAgbGFiZWwgICAgICAJIm1lc3NhZ2VEZXN0aW5hdGlvbnMiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3Ojpjb21tb246Ok1lc3NhZ2VEZXN0aW5hdGlvbiINCgkJICAgIHF1aWR1ICAgICAgCSIzRTRDMjExMDAxQ0YiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMC4ubiIpDQoJCSAgICBDb250YWlubWVudCAJIkJ5IFZhbHVlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgIiRVTk5BTUVEJDUxIg0KCQkgICAgcXVpZCAgICAgICAJIjNFNEQxQkY2MDBDMyINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6QXNzZW1ibHlEZXNjcmlwdG9yIg0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFMzUwMDBENCINCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDUyIg0KCSAgICBxdWlkICAgICAgIAkiM0U0RDIzQUEwMjRGIg0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJtZXNzYWdlRGVzdGluYXRpb25SZWZzIg0KCQkgICAgcXVpZCAgICAgICAJIjNFNEQyM0FEMDFBQSINCgkJICAgIGxhYmVsICAgICAgCSJtZXNzYWdlRGVzdGluYXRpb25SZWZzIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6Y29tbW9uOjpNZXNzYWdlRGVzdGluYXRpb25SZWYiDQoJCSAgICBxdWlkdSAgICAgIAkiM0U0QzFGNTIwMjhDIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLm4iKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBWYWx1ZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICIkVU5OQU1FRCQ1MyINCgkJICAgIHF1aWQgICAgICAgCSIzRTREMjNBRDAxQjQiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3Ojpjb21tb246OkpORElFbnZSZWZzR3JvdXAiDQoJCSAgICBxdWlkdSAgICAgIAkiM0U0RDUzOTUwMzQ5Ig0KCQkgICAgaXNfYWdncmVnYXRlIAlUUlVFKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiJFVOTkFNRUQkNTQiDQoJICAgIHF1aWQgICAgICAgCSIzRTREMjVENjAwRjAiDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgImVudGl0eSINCgkJICAgIHF1aWQgICAgICAgCSIzRTREMjVENjAwRjEiDQoJCSAgICBsYWJlbCAgICAgIAkiZW50aXR5Ig0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpDb250YWluZXJNYW5hZ2VkRW50aXR5Ig0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFMzIzMDE3NCINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIwLi4xIikNCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRQ0KCQkgICAgaXNfYWdncmVnYXRlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgInF1ZXJpZXMiDQoJCSAgICBxdWlkICAgICAgIAkiM0U0RDI1RDYwMEYyIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8QHNpbmNlIEoyRUUxLjQgbW92ZWQgZnJvbSBDTUUNCnxUaGUgb3B0aW9uYWwgcXVlcnkgZWxlbWVudHMgbXVzdCBiZSBwcmVzZW50IGlmIHRoZSBwZXJzaXN0ZW5jZS10eXBlIGlzIENvbnRhaW5lciBhbmQgdGhlIGNtcC12ZXJzaW9uIGlzIDIueCBhbmQgcXVlcnkgbWV0aG9kcyBvdGhlciB0aGFuIGZpbmRCeVByaW1hcnlLZXkgaGF2ZSBiZWVuIGRlZmluZWQgZm9yIHRoZSBlbnRpdHkgYmVhbi4NCnwNCnxAaW52YXJpYW50IHNlZSBkZXNjcmlwdGlvbg0KfA0KCQkgICAgDQoJCSAgICBsYWJlbCAgICAgIAkicXVlcmllcyINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6UXVlcnkiDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRjAyNzEwMzI3Ig0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLm4iKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBWYWx1ZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDU1Ig0KCSAgICBxdWlkICAgICAgIAkiM0U0RDI5ODIwMUUyIg0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJtZXNzYWdlRGVzdGluYXRpb24iDQoJCSAgICBxdWlkICAgICAgIAkiM0U0RDI5ODMwMjcwIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJIkBzaW5jZSBKMkVFMS40Ig0KCQkgICAgbGFiZWwgICAgICAJIm1lc3NhZ2VEZXN0aW5hdGlvbiINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmphdmE6OkphdmFDbGFzcyINCgkJICAgIHF1aWR1ICAgICAgCSIzNjU0OUZDQzAwRkEiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMC4uMSIpDQoJCSAgICBDb250YWlubWVudCAJIkJ5IFJlZmVyZW5jZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICIkVU5OQU1FRCQ1NiINCgkJICAgIHF1aWQgICAgICAgCSIzRTREMjk4MzAyN0EiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6Ok1lc3NhZ2VEcml2ZW4iDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRjMyNDgwMTBCIikpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDU3Ig0KCSAgICBxdWlkICAgICAgIAkiM0U0RDJGQTkwMUM5Ig0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJzZXJ2aWNlUmVmcyINCgkJICAgIHF1aWQgICAgICAgCSIzRTREMkZBQTAyQzUiDQoJCSAgICBsYWJlbCAgICAgIAkic2VydmljZVJlZnMiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3Ojp3c2NsaWVudDo6U2VydmljZVJlZiINCgkJICAgIHF1aWR1ICAgICAgCSIzRTREMkY1NjAxODQiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMC4ubiIpDQoJCSAgICBDb250YWlubWVudCAJIkJ5IFZhbHVlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgIiRVTk5BTUVEJDU4Ig0KCQkgICAgcXVpZCAgICAgICAJIjNFNEQyRkFBMDJDRiINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmNvbW1vbjo6Sk5ESUVudlJlZnNHcm91cCINCgkJICAgIHF1aWR1ICAgICAgCSIzRTRENTM5NTAzNDkiDQoJCSAgICBpc19hZ2dyZWdhdGUgCVRSVUUpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICIkVU5OQU1FRCQ1OSINCgkgICAgcXVpZCAgICAgICAJIjNFNEQyRkUxMDFGQyINCgkgICAgcm9sZXMgICAgICAJKGxpc3Qgcm9sZV9saXN0DQoJCShvYmplY3QgUm9sZSAic2VydmljZUludGVyZmFjZSINCgkJICAgIHF1aWQgICAgICAgCSIzRTREMkZFNDAxMkUiDQoJCSAgICBkb2N1bWVudGF0aW9uIAkNCnxUaGUgc2VydmljZS1pbnRlcmZhY2UgZWxlbWVudCBkZWNsYXJlcyB0aGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzDQp8ICAgICAgICBuYW1lIG9mIHRoZSBKQVgtUlBDIFNlcnZpY2UgaW50ZXJmYWNlIHRoZSBjbGllbnQgZGVwZW5kcyBvbi4NCnwgICAgICAgIEluIG1vc3QgY2FzZXMgdGhlIHZhbHVlIHdpbGwgYmUgamF2YXgueG1sLnJwYy5TZXJ2aWNlLiAgQSBKQVgtUlBDDQp8ICAgICAgICBnZW5lcmF0ZWQgU2VydmljZSBJbnRlcmZhY2UgY2xhc3MgbWF5IGFsc28gYmUgc3BlY2lmaWVkLg0KCQkgICAgDQoJCSAgICBsYWJlbCAgICAgIAkic2VydmljZUludGVyZmFjZSINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmphdmE6OkphdmFDbGFzcyINCgkJICAgIHF1aWR1ICAgICAgCSIzNjU0OUZDQzAwRkEiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMSIpDQoJCSAgICBDb250YWlubWVudCAJIkJ5IFJlZmVyZW5jZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICIkVU5OQU1FRCQ2MCINCgkJICAgIHF1aWQgICAgICAgCSIzRTREMkZFNDAxNEMiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3Ojp3c2NsaWVudDo6U2VydmljZVJlZiINCgkJICAgIHF1aWR1ICAgICAgCSIzRTREMkY1NjAxODQiKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiJFVOTkFNRUQkNjEiDQoJICAgIHF1aWQgICAgICAgCSIzRTU2MkQ5RTAyNTQiDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgIm1lc3NhZ2luZ1R5cGUiDQoJCSAgICBxdWlkICAgICAgIAkiM0U1NjJEOUYwMTgzIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8QHNpbmNlIEoyRUUxLjQNCnxUaGUgbWVzc2FnaW5nLXR5cGUgZWxlbWVudCBzcGVjaWZpZXMgdGhlIG1lc3NhZ2UNCnwgICAgICAgIGxpc3RlbmVyIGludGVyZmFjZSBvZiB0aGUgbWVzc2FnZS1kcml2ZW4gYmVhbi4gSWYNCnwgICAgICAgIHRoZSBtZXNzYWdpbmctdHlwZSBlbGVtZW50IGlzIG5vdCBzcGVjaWZpZWQsIGl0IGlzDQp8ICAgICAgICBhc3N1bWVkIHRvIGJlIGphdmF4Lmptcy5NZXNzYWdlTGlzdGVuZXIuDQoJCSAgICANCgkJICAgIGxhYmVsICAgICAgCSJtZXNzYWdpbmdUeXBlIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6amF2YTo6SmF2YUNsYXNzIg0KCQkgICAgcXVpZHUgICAgICAJIjM2NTQ5RkNDMDBGQSINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIwLi4xIikNCgkJICAgIENvbnRhaW5tZW50IAkiQnkgUmVmZXJlbmNlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgIiRVTk5BTUVEJDYyIg0KCQkgICAgcXVpZCAgICAgICAJIjNFNTYyRDlGMDE5NyINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6TWVzc2FnZURyaXZlbiINCgkJICAgIHF1aWR1ICAgICAgCSIzOUJGMzI0ODAxMEIiKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiJFVOTkFNRUQkNjMiDQoJICAgIHF1aWQgICAgICAgCSIzRTREMUFBRDAwQUMiDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgImRlc2NyaXB0aW9ucyINCgkJICAgIHF1aWQgICAgICAgCSIzRTREMUFBRDAzQTUiDQoJCSAgICBsYWJlbCAgICAgIAkiZGVzY3JpcHRpb25zIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6Y29tbW9uOjpEZXNjcmlwdGlvbiINCgkJICAgIHF1aWR1ICAgICAgCSIzRTRBOThENjAyRTAiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMC4ubiIpDQoJCSAgICBDb250YWlubWVudCAJIkJ5IFZhbHVlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgIiRVTk5BTUVEJDY0Ig0KCQkgICAgcXVpZCAgICAgICAJIjNFNEQxQUFEMDNDRCINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6QWN0aXZhdGlvbkNvbmZpZyINCgkJICAgIHF1aWR1ICAgICAgCSIzRTREMUE3RTAxMzEiDQoJCSAgICBpc19hZ2dyZWdhdGUgCVRSVUUpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICIkVU5OQU1FRCQ2NSINCgkgICAgcXVpZCAgICAgICAJIjNFNEQxRkNCMDFBQSINCgkgICAgcm9sZXMgICAgICAJKGxpc3Qgcm9sZV9saXN0DQoJCShvYmplY3QgUm9sZSAiZGVzY3JpcHRpb25zIg0KCQkgICAgcXVpZCAgICAgICAJIjNFNEQxRkNDMDBDNSINCgkJICAgIGRvY3VtZW50YXRpb24gCSJAc2luY2UgSjJFRTEuNCINCgkJICAgIGxhYmVsICAgICAgCSJkZXNjcmlwdGlvbnMiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3Ojpjb21tb246OkRlc2NyaXB0aW9uIg0KCQkgICAgcXVpZHUgICAgICAJIjNFNEE5OEQ2MDJFMCINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIwLi5uIikNCgkJICAgIENvbnRhaW5tZW50IAkiQnkgVmFsdWUiDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAiJFVOTkFNRUQkNjYiDQoJCSAgICBxdWlkICAgICAgIAkiM0U0RDFGQ0MwMEUzIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpFSkJSZWxhdGlvbiINCgkJICAgIHF1aWR1ICAgICAgCSIzOUJGMEMwMjAzQkYiDQoJCSAgICBpc19hZ2dyZWdhdGUgCVRSVUUpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICIkVU5OQU1FRCQ2NyINCgkgICAgcXVpZCAgICAgICAJIjNFNEQyODYwMDIxOCINCgkgICAgcm9sZXMgICAgICAJKGxpc3Qgcm9sZV9saXN0DQoJCShvYmplY3QgUm9sZSAiZGVzY3JpcHRpb25zIg0KCQkgICAgcXVpZCAgICAgICAJIjNFNEQyODYyMDE1MiINCgkJICAgIGxhYmVsICAgICAgCSJkZXNjcmlwdGlvbnMiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3Ojpjb21tb246OkRlc2NyaXB0aW9uIg0KCQkgICAgcXVpZHUgICAgICAJIjNFNEE5OEQ2MDJFMCINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIwLi5uIikNCgkJICAgIENvbnRhaW5tZW50IAkiQnkgVmFsdWUiDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAiJFVOTkFNRUQkNjgiDQoJCSAgICBxdWlkICAgICAgIAkiM0U0RDI4NjIwMTk4Ig0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpNZXRob2RFbGVtZW50Ig0KCQkgICAgcXVpZHUgICAgICAJIjM5MkVEMjJEMDA4QSINCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDY5Ig0KCSAgICBxdWlkICAgICAgIAkiM0U0RDIxMDMwMENEIg0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJkZXNjcmlwdGlvbnMiDQoJCSAgICBxdWlkICAgICAgIAkiM0U0RDIxMDUwMkVDIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJIkBzaW5jZSBKMkVFMS40Ig0KCQkgICAgbGFiZWwgICAgICAJImRlc2NyaXB0aW9ucyINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmNvbW1vbjo6RGVzY3JpcHRpb24iDQoJCSAgICBxdWlkdSAgICAgIAkiM0U0QTk4RDYwMkUwIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLm4iKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBWYWx1ZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICIkVU5OQU1FRCQ3MCINCgkJICAgIHF1aWQgICAgICAgCSIzRTREMjEwNTAzMEEiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OlJvbGVTb3VyY2UiDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRjE0NzUwMEU0Ig0KCQkgICAgaXNfYWdncmVnYXRlIAlUUlVFKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiJFVOTkFNRUQkNzEiDQoJICAgIHF1aWQgICAgICAgCSIzRTREMUQxRjAxNjEiDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgImRlc2NyaXB0aW9ucyINCgkJICAgIHF1aWQgICAgICAgCSIzRTREMUQyMDAxREEiDQoJCSAgICBkb2N1bWVudGF0aW9uIAkiQHNpbmNlIEoyRUUxLjQiDQoJCSAgICBsYWJlbCAgICAgIAkiZGVzY3JpcHRpb25zIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6Y29tbW9uOjpEZXNjcmlwdGlvbiINCgkJICAgIHF1aWR1ICAgICAgCSIzRTRBOThENjAyRTAiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMC4ubiIpDQoJCSAgICBDb250YWlubWVudCAJIkJ5IFZhbHVlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgIiRVTk5BTUVEJDcyIg0KCQkgICAgcXVpZCAgICAgICAJIjNFNEQxRDIwMDFFRSINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6Q01QQXR0cmlidXRlIg0KCQkgICAgcXVpZHUgICAgICAJIjNBMjI4ODYzMDAwMyINCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDczIg0KCSAgICBxdWlkICAgICAgIAkiM0U0RDFGQkYwMUNCIg0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJkZXNjcmlwdGlvbnMiDQoJCSAgICBxdWlkICAgICAgIAkiM0U0RDFGQzEwMDFGIg0KCQkgICAgZG9jdW1lbnRhdGlvbiAJIkBzaW5jZSBKMkVFMS40Ig0KCQkgICAgbGFiZWwgICAgICAJImRlc2NyaXB0aW9ucyINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmNvbW1vbjo6RGVzY3JpcHRpb24iDQoJCSAgICBxdWlkdSAgICAgIAkiM0U0QTk4RDYwMkUwIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLm4iKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBWYWx1ZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICIkVU5OQU1FRCQ3NCINCgkJICAgIHF1aWQgICAgICAgCSIzRTREMUZDMTAwNDciDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OlJlbGF0aW9uc2hpcHMiDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRUY4MTcwM0IzIg0KCQkgICAgaXNfYWdncmVnYXRlIAlUUlVFKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiJFVOTkFNRUQkNzUiDQoJICAgIHF1aWQgICAgICAgCSIzRTREMjZCQjAwRkEiDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgImRlc2NyaXB0aW9ucyINCgkJICAgIHF1aWQgICAgICAgCSIzRTREMjZCQzAyRjAiDQoJCSAgICBkb2N1bWVudGF0aW9uIAkiQHNpbmNlIEoyRUUxLjQiDQoJCSAgICBsYWJlbCAgICAgIAkiZGVzY3JpcHRpb25zIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6Y29tbW9uOjpEZXNjcmlwdGlvbiINCgkJICAgIHF1aWR1ICAgICAgCSIzRTRBOThENjAyRTAiDQoJCSAgICBjbGllbnRfY2FyZGluYWxpdHkgCSh2YWx1ZSBjYXJkaW5hbGl0eSAiMC4ubiIpDQoJCSAgICBDb250YWlubWVudCAJIkJ5IFZhbHVlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgIiRVTk5BTUVEJDc2Ig0KCQkgICAgcXVpZCAgICAgICAJIjNFNEQyNkJDMDMxOCINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6TWV0aG9kUGVybWlzc2lvbiINCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTM1MDAwRDAiDQoJCSAgICBpc19hZ2dyZWdhdGUgCVRSVUUpKSkNCgkob2JqZWN0IEFzc29jaWF0aW9uICIkVU5OQU1FRCQ3NyINCgkgICAgcXVpZCAgICAgICAJIjNFNEQyMEMxMDJDNiINCgkgICAgcm9sZXMgICAgICAJKGxpc3Qgcm9sZV9saXN0DQoJCShvYmplY3QgUm9sZSAiZGVzY3JpcHRpb25zIg0KCQkgICAgcXVpZCAgICAgICAJIjNFNEQyMEM0MDBDQyINCgkJICAgIGRvY3VtZW50YXRpb24gCSJAc2luY2UgSjJFRTEuNCINCgkJICAgIGxhYmVsICAgICAgCSJkZXNjcmlwdGlvbnMiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3Ojpjb21tb246OkRlc2NyaXB0aW9uIg0KCQkgICAgcXVpZHUgICAgICAJIjNFNEE5OEQ2MDJFMCINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIwLi5uIikNCgkJICAgIENvbnRhaW5tZW50IAkiQnkgVmFsdWUiDQoJCSAgICBpc19uYXZpZ2FibGUgCVRSVUUpDQoJCShvYmplY3QgUm9sZSAiJFVOTkFNRUQkNzgiDQoJCSAgICBxdWlkICAgICAgIAkiM0U0RDIwQzQwMEVBIg0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6ZWpiOjpFSkJSZWxhdGlvbnNoaXBSb2xlIg0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYwREQwMDIzRCINCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDc5Ig0KCSAgICBxdWlkICAgICAgIAkiM0U0RDFGMjMwMDkwIg0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJkZXNjcmlwdGlvbnMiDQoJCSAgICBxdWlkICAgICAgIAkiM0U0RDFGMjMwM0Q5Ig0KCQkgICAgZG9jdW1lbnRhdGlvbiAJIkBzaW5jZSBKMkVFMS40Ig0KCQkgICAgbGFiZWwgICAgICAJImRlc2NyaXB0aW9ucyINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmNvbW1vbjo6RGVzY3JpcHRpb24iDQoJCSAgICBxdWlkdSAgICAgIAkiM0U0QTk4RDYwMkUwIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLm4iKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBWYWx1ZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICIkVU5OQU1FRCQ4MCINCgkJICAgIHF1aWQgICAgICAgCSIzRTREMUYyNDAwMEYiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6Ok1ldGhvZFRyYW5zYWN0aW9uIg0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFMzUwMDBERSINCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDgxIg0KCSAgICBxdWlkICAgICAgIAkiM0U0RDI2NjgwMzE3Ig0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJkZXNjcmlwdGlvbnMiDQoJCSAgICBxdWlkICAgICAgIAkiM0U0RDI2NkEwMEQ1Ig0KCQkgICAgZG9jdW1lbnRhdGlvbiAJIkBzaW5jZSBKMkVFMS40Ig0KCQkgICAgbGFiZWwgICAgICAJImRlc2NyaXB0aW9ucyINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmNvbW1vbjo6RGVzY3JpcHRpb24iDQoJCSAgICBxdWlkdSAgICAgIAkiM0U0QTk4RDYwMkUwIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLm4iKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBWYWx1ZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICIkVU5OQU1FRCQ4MiINCgkJICAgIHF1aWQgICAgICAgCSIzRTREMjY2QTAwRjMiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OkV4Y2x1ZGVMaXN0Ig0KCQkgICAgcXVpZHUgICAgICAJIjM5OTcyMTZFMDE0NyINCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDgzIg0KCSAgICBxdWlkICAgICAgIAkiM0U1NjUwMEQwMjU5Ig0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJkZXNjcmlwdGlvbnMiDQoJCSAgICBxdWlkICAgICAgIAkiM0U1NjUwMEUwMTQyIg0KCQkgICAgbGFiZWwgICAgICAJImRlc2NyaXB0aW9ucyINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmNvbW1vbjo6RGVzY3JpcHRpb24iDQoJCSAgICBxdWlkdSAgICAgIAkiM0U0QTk4RDYwMkUwIg0KCQkgICAgY2xpZW50X2NhcmRpbmFsaXR5IAkodmFsdWUgY2FyZGluYWxpdHkgIjAuLm4iKQ0KCQkgICAgQ29udGFpbm1lbnQgCSJCeSBWYWx1ZSINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICIkVU5OQU1FRCQ4NCINCgkJICAgIHF1aWQgICAgICAgCSIzRTU2NTAwRTAxNzQiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OlF1ZXJ5Ig0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYwMjcxMDMyNyINCgkJICAgIGlzX2FnZ3JlZ2F0ZSAJVFJVRSkpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDg1Ig0KCSAgICBxdWlkICAgICAgIAkiM0U1NjdDQTIwMDdGIg0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJzZXJ2aWNlRW5kcG9pbnQiDQoJCSAgICBxdWlkICAgICAgIAkiM0U1NjdDQTMwMjI1Ig0KCQkgICAgZG9jdW1lbnRhdGlvbiAJDQp8QHNpbmNlIEoyRUUxLjQNCnxUaGUgc2VydmljZS1lbmRwb2ludCBlbGVtZW50IGNvbnRhaW5zIHRoZQ0KfCAgICAgICAgZnVsbHktcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGVudGVycHJpc2UgYmVhbidzIHdlYg0KfCAgICAgICAgc2VydmljZSBlbmRwb2ludCBpbnRlcmZhY2UuIFRoZSBzZXJ2aWNlLWVuZHBvaW50DQp8ICAgICAgICBlbGVtZW50IG1heSBvbmx5IGJlIHNwZWNpZmllZCBmb3IgYSBzdGF0ZWxlc3MNCnwgICAgICAgIHNlc3Npb24gYmVhbi4gVGhlIHNwZWNpZmllZCBpbnRlcmZhY2UgbXVzdCBiZSBhDQp8ICAgICAgICB2YWxpZCBKQVgtUlBDIHNlcnZpY2UgZW5kcG9pbnQgaW50ZXJmYWNlLg0KCQkgICAgDQoJCSAgICBsYWJlbCAgICAgIAkic2VydmljZUVuZHBvaW50Ig0KCQkgICAgc3VwcGxpZXIgICAJIkxvZ2ljYWwgVmlldzo6amF2YTo6SmF2YUNsYXNzIg0KCQkgICAgcXVpZHUgICAgICAJIjM2NTQ5RkNDMDBGQSINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIwLi4xIikNCgkJICAgIENvbnRhaW5tZW50IAkiQnkgUmVmZXJlbmNlIg0KCQkgICAgaXNfbmF2aWdhYmxlIAlUUlVFKQ0KCQkob2JqZWN0IFJvbGUgIiRVTk5BTUVEJDg2Ig0KCQkgICAgcXVpZCAgICAgICAJIjNFNTY3Q0EzMDI0MyINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6U2Vzc2lvbiINCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTVGOTAxRUIiKSkpDQoJKG9iamVjdCBBc3NvY2lhdGlvbiAiJFVOTkFNRUQkODciDQoJICAgIHF1aWQgICAgICAgCSIzRkE2ODg2MjAyNjciDQoJICAgIHJvbGVzICAgICAgCShsaXN0IHJvbGVfbGlzdA0KCQkob2JqZWN0IFJvbGUgIiRVTk5BTUVEJDg4Ig0KCQkgICAgcXVpZCAgICAgICAJIjNGQTY4ODY2MDM1RCINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6Q01QQXR0cmlidXRlIg0KCQkgICAgcXVpZHUgICAgICAJIjNBMjI4ODYzMDAwMyINCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICIkVU5OQU1FRCQ4OSINCgkJICAgIHF1aWQgICAgICAgCSIzRkE2ODg2NjAzNUYiDQoJCSAgICBzdXBwbGllciAgIAkiTG9naWNhbCBWaWV3OjplamI6OkNvbnRhaW5lck1hbmFnZWRFbnRpdHkiDQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEUzMjMwMTc0IikpKQ0KCShvYmplY3QgQXNzb2NpYXRpb24gIiRVTk5BTUVEJDkwIg0KCSAgICBxdWlkICAgICAgIAkiM0ZBNjk1ODkwMjQwIg0KCSAgICByb2xlcyAgICAgIAkobGlzdCByb2xlX2xpc3QNCgkJKG9iamVjdCBSb2xlICJwcmltS2V5RmllbGQiDQoJCSAgICBxdWlkICAgICAgIAkiM0ZBNjk1OEIwMDA4Ig0KCQkgICAgbGFiZWwgICAgICAJInByaW1LZXlGaWVsZCINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6Q01QQXR0cmlidXRlIg0KCQkgICAgcXVpZHUgICAgICAJIjNBMjI4ODYzMDAwMyINCgkJICAgIGNsaWVudF9jYXJkaW5hbGl0eSAJKHZhbHVlIGNhcmRpbmFsaXR5ICIwLi4xIikNCgkJICAgIGlzX25hdmlnYWJsZSAJVFJVRSkNCgkJKG9iamVjdCBSb2xlICJlbnRpdHkiDQoJCSAgICBxdWlkICAgICAgIAkiM0ZBNjk1OEIwMDEyIg0KCQkgICAgbGFiZWwgICAgICAJImVudGl0eSINCgkJICAgIHN1cHBsaWVyICAgCSJMb2dpY2FsIFZpZXc6OmVqYjo6Q29udGFpbmVyTWFuYWdlZEVudGl0eSINCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTMyMzAxNzQiDQoJCSAgICBpc19hZ2dyZWdhdGUgCVRSVUUpKSkpDQogICAgbG9naWNhbF9wcmVzZW50YXRpb25zIAkobGlzdCB1bml0X3JlZmVyZW5jZV9saXN0DQoJKG9iamVjdCBDbGFzc0RpYWdyYW0gIkVKQiBKYXIiDQoJICAgIHF1aWQgICAgICAgCSIzNzgwRTI4NzAyNTEiDQoJICAgIHRpdGxlICAgICAgCSJFSkIgSmFyIg0KCSAgICBkb2N1bWVudGF0aW9uIAkNCnxCYXNlZCBvbiB0aGUgTW9zY29uZSBERCwgdHJhbnNsYXRpbmcgY2xhc3MgbmFtZSBlbGVtZW50cyB0byBjbGFzcyByZWZlcmVuY2VzLg0KfA0KfE5vdGUgdGhhdCBFSkItbGlua3Mgb25seSBhcHBlYXIgaW4gdGhlIGRlcGxveW1lbnQgbW9kZWwsIGF0IGFubHlzaXMvZGVzaWduIHRpbWUsIHRoZXkgbWlnaHQgYmUgZGVyaXZlZCBmcm9tIHRoZSBhc3NvY2lhdGlvbiByb2xlcyBmb3IgdGhlIEVKQi4NCnwNCnxBbHNvLCBzZWUgbm90ZXMgb24gRW50ZXJwcmlzZUphdmFCZWFuLg0KCSAgICANCgkgICAgem9vbSAgICAgICAJMTAwDQoJICAgIG1heF9oZWlnaHQgCTI4MzUwDQoJICAgIG1heF93aWR0aCAgCTIxNjAwDQoJICAgIG9yaWdpbl94ICAgCTANCgkgICAgb3JpZ2luX3kgICAJMjM2Mw0KCSAgICBpdGVtcyAgICAgIAkobGlzdCBkaWFncmFtX2l0ZW1fbGlzdA0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmVqYjo6U2Vzc2lvbiIgQDENCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMTEzMywgMTc1NikNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMQ0KCQkJbG9jYXRpb24gICAJKDc2NiwgMTYyNSkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAk3MzQNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJTZXNzaW9uIikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMTA0ODU3NjANCgkJICAgIGZpbGxfY29sb3IgCTE0NDcyNjQ5DQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEU1RjkwMUVCIg0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlAMQ0KCQkJbG9jYXRpb24gICAJKDc2NiwgMTY4NikNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkzDQoJCQltYXhfd2lkdGggIAk2MzEpDQoJCSAgICB3aWR0aCAgICAgIAk3NTINCgkJICAgIGhlaWdodCAgICAgCTI4Ng0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OkVudGl0eSIgQDINCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMTc3NiwgMTc1NikNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMg0KCQkJbG9jYXRpb24gICAJKDE1NzUsIDE2NTApDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMg0KCQkJbWF4X3dpZHRoICAJNDAyDQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiRW50aXR5IikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMTA0ODU3NjANCgkJICAgIGZpbGxfY29sb3IgCTE0NDcyNjQ5DQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEU2OTcwMzUxIg0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlAMg0KCQkJbG9jYXRpb24gICAJKDE1NzUsIDE3MTEpDQoJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJaWNvbl9zdHlsZSAJIkljb24iDQoJCQlmaWxsX2NvbG9yIAkxNjc3NzIxNQ0KCQkJYW5jaG9yICAgICAJMg0KCQkJbmxpbmVzICAgICAJMg0KCQkJbWF4X3dpZHRoICAJMzQ2KQ0KCQkgICAgd2lkdGggICAgICAJNDIwDQoJCSAgICBoZWlnaHQgICAgIAkyMzYNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgTGFiZWwgQDMNCgkJICAgIGxvY2F0aW9uICAgCSgxNTksIDQ3KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMg0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJVFJVRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIG5saW5lcyAgICAgCTENCgkJICAgIG1heF93aWR0aCAgCTEzMDANCgkJICAgIGxhYmVsICAgICAgCSJFSkIgMi4xIE1vZGVsIChFSkIyLjAgJiAxLjEgQmFja3dhcmQgQ29tcGF0aWJsZSkiKQ0KCQkob2JqZWN0IE5vdGVWaWV3IEA0DQoJCSAgICBsb2NhdGlvbiAgIAkoNTI2LCAyMDY3KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUA0DQoJCQlsb2NhdGlvbiAgIAkoMjYwLCAyMDAyKQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTINCgkJCW1heF93aWR0aCAgCTQ5Ng0KCQkJbGFiZWwgICAgICAJIlNlZSBkZXRhaWwgb24gc2VwYXJhdGUgY2xhc3MgZGlhZ3JhbXMuLi4iKQ0KCQkgICAgZmlsbF9jb2xvciAJMTQ2Nzk4MDcNCgkJICAgIHdpZHRoICAgICAgCTU1Ng0KCQkgICAgaGVpZ2h0ICAgICAJMTQzKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmVqYjo6Q29udGFpbmVyTWFuYWdlZEVudGl0eSIgQDUNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBTdXBwcmVzc0F0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgU3VwcHJlc3NPcGVyYXRpb24gCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSgxNzczLCAyMTQwKQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUA1DQoJCQlsb2NhdGlvbiAgIAkoMTUzNywgMjA5OSkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAk0NzINCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJDb250YWluZXJNYW5hZ2VkRW50aXR5IikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMTA0ODU3NjANCgkJICAgIGZpbGxfY29sb3IgCTE0NDcyNjQ5DQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEUzMjMwMTc0Ig0KCQkgICAgd2lkdGggICAgICAJNDkwDQoJCSAgICBoZWlnaHQgICAgIAkxMDcNCgkJICAgIGFubm90YXRpb24gCTgNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDYNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTEwNDg1NzYwDQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEUzMjMwMTc1Ig0KCQkgICAgY2xpZW50ICAgICAJQDUNCgkJICAgIHN1cHBsaWVyICAgCUAyDQoJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCSgxNzc1LCAyMDg3KQ0KCQkJKDE3NzUsIDE4NzQpKQ0KCQkgICAgbGluZV9zdHlsZSAJMw0KCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzc1LCAyMDg3KQ0KCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE3NzUsIDE4NzQpKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmVqYjo6TWVzc2FnZURyaXZlbiIgQDcNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBTdXBwcmVzc0F0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgU3VwcHJlc3NPcGVyYXRpb24gCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSgyMjc1LCAxNjgzKQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUA3DQoJCQlsb2NhdGlvbiAgIAkoMjExOSwgMTY0MikNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAkzMTINCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJNZXNzYWdlRHJpdmVuIikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJNDIyNzA3Mg0KCQkgICAgZmlsbF9jb2xvciAJMTM0MzQ4MzMNCgkJICAgIHF1aWR1ICAgICAgCSIzOUJGMzI0ODAxMEIiDQoJCSAgICB3aWR0aCAgICAgIAkzMzANCgkJICAgIGhlaWdodCAgICAgCTEwNw0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBOb3RlVmlldyBAOA0KCQkgICAgbG9jYXRpb24gICAJKDI0MzEsIDE5NzEpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDgNCgkJCWxvY2F0aW9uICAgCSgyMjE4LCAxODY1KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTQNCgkJCW1heF93aWR0aCAgCTM5MA0KCQkJbGFiZWwgICAgICAJIlNlZSBFSkIyLjAgTWVzc2FnZSBEcml2ZW4gQmVhbiBkaWFncmFtIGZvciBkZXRhaWxzLiIpDQoJCSAgICBmaWxsX2NvbG9yIAkxNDY3OTgwNw0KCQkgICAgd2lkdGggICAgICAJNDUwDQoJCSAgICBoZWlnaHQgICAgIAkyMjUpDQoJCShvYmplY3QgQXR0YWNoVmlldyAiIiBAOQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgY2xpZW50ICAgICAJQDgNCgkJICAgIHN1cHBsaWVyICAgCUA3DQoJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCSgyMzY5LCAxODU4KQ0KCQkJKDIzMDMsIDE3MzYpKQ0KCQkgICAgbGluZV9zdHlsZSAJMCkNCgkJKG9iamVjdCBOb3RlVmlldyBAMTANCgkJICAgIGxvY2F0aW9uICAgCSgxNTk3LCAyNDEyKQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAxMA0KCQkJbG9jYXRpb24gICAJKDEzOTQsIDIzMDYpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJNA0KCQkJbWF4X3dpZHRoICAJMzcxDQoJCQlsYWJlbCAgICAgIAkiU2VlIENvbnRhaW5lciBNYW5hZ2VkIEVudGl0eSBkaWFncmFtIGZvciBkZXRhaWxzLiIpDQoJCSAgICBmaWxsX2NvbG9yIAkxNDY3OTgwNw0KCQkgICAgd2lkdGggICAgICAJNDMxDQoJCSAgICBoZWlnaHQgICAgIAkyMjUpDQoJCShvYmplY3QgQXR0YWNoVmlldyAiIiBAMTENCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGNsaWVudCAgICAgCUAxMA0KCQkgICAgc3VwcGxpZXIgICAJQDUNCgkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJKDE2NjksIDIyOTkpDQoJCQkoMTczOCwgMjE5MykpDQoJCSAgICBsaW5lX3N0eWxlIAkwKQ0KCQkob2JqZWN0IE5vdGVWaWV3IEAxMg0KCQkgICAgbG9jYXRpb24gICAJKDg0NSwgMTM4OCkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMTINCgkJCWxvY2F0aW9uICAgCSg2MTcsIDEzMDcpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMw0KCQkJbWF4X3dpZHRoICAJNDIxDQoJCQlsYWJlbCAgICAgIAkiQWRkZWQgZWpiSmFyIGJhY2sgcmVmZXJlbmNlIikNCgkJICAgIGZpbGxfY29sb3IgCTE0Njc5ODA3DQoJCSAgICB3aWR0aCAgICAgIAk0ODENCgkJICAgIGhlaWdodCAgICAgCTE3NSkNCgkJKG9iamVjdCBOb3RlVmlldyBAMTMNCgkJICAgIGxvY2F0aW9uICAgCSgzODEsIDM3OCkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMTMNCgkJCWxvY2F0aW9uICAgCSg2MiwgMTM0KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTkNCgkJCW1heF93aWR0aCAgCTYwMw0KCQkJbGFiZWwgICAgICAJDQp8RGVwcmVjYXRpb25zOg0KfEVKQkphcjo6ZGVzY3JpcHRpb24NCnxFSkJKYXI6OmRpc3BsYXlOYW1lDQp8RUpCSmFyOjpzbWFsbEljb24NCnxFSkJKYXI6OmxhcmdlSWNvbg0KfEVudGVycHJpc2VCZWFuOjpkZXNjcmlwdGlvbg0KfEVudGVycHJpc2VCZWFuOjpkaXNwbGF5TmFtZQ0KfEVudGVycHJpc2VCZWFuOjpzbWFsbEljb24NCnxFbnRlcnByaXNlQmVhbjo6bGFyZ2VJY29uDQoJCQkpDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkgICAgd2lkdGggICAgICAJNjYzDQoJCSAgICBoZWlnaHQgICAgIAk1MDApDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6Y29tbW9uOjpEZXNjcmlwdGlvbkdyb3VwIiBAMTQNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMjI1MCwgMTA0MCkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlUUlVFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAxNA0KCQkJbG9jYXRpb24gICAJKDIwNzIsIDk2MSkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAkzNTYNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJEZXNjcmlwdGlvbkdyb3VwIikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJODQyMTUwNA0KCQkgICAgZmlsbF9jb2xvciAJMTI2MzIyNTYNCgkJICAgIHF1aWR1ICAgICAgCSIzRTRENDUxRjAxRkIiDQoJCSAgICB3aWR0aCAgICAgIAkzNzQNCgkJICAgIGhlaWdodCAgICAgCTE4Mg0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OkFzc2VtYmx5RGVzY3JpcHRvciIgQDE1DQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgU3VwcHJlc3NBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIFN1cHByZXNzT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMTMyMiwgODQyKQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAxNQ0KCQkJbG9jYXRpb24gICAJKDEyMTIsIDc3NikNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAkyMjANCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJBc3NlbWJseURlc2NyaXB0b3IiKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAkxMDQ4NTc2MA0KCQkgICAgZmlsbF9jb2xvciAJMTQ0NzI2NDkNCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTM1MDAwRDQiDQoJCSAgICB3aWR0aCAgICAgIAkyMzgNCgkJICAgIGhlaWdodCAgICAgCTE1Nw0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OlJlbGF0aW9uc2hpcHMiIEAxNg0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIFN1cHByZXNzQXR0cmlidXRlIAlUUlVFDQoJCSAgICBTdXBwcmVzc09wZXJhdGlvbiAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDMzNCwgMTc0MikNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMTYNCgkJCWxvY2F0aW9uICAgCSgyNTMsIDE2NzYpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMg0KCQkJbWF4X3dpZHRoICAJMTYyDQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiUmVsYXRpb25zaGlwcyIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTQyMjcwNzINCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODMzDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRUY4MTcwM0IzIg0KCQkgICAgaGVpZ2h0ICAgICAJMTU3DQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IEF0dGFjaFZpZXcgIiIgQDE3DQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBjbGllbnQgICAgIAlANA0KCQkgICAgc3VwcGxpZXIgICAJQDE2DQoJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCSg0ODQsIDE5OTUpDQoJCQkoMzgwLCAxODIwKSkNCgkJICAgIGxpbmVfc3R5bGUgCTApDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6ZWpiOjpFbnRlcnByaXNlQmVhbiIgQDE4DQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDE0MDQsIDEyNTkpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJVFJVRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMTgNCgkJCWxvY2F0aW9uICAgCSgxMTgyLCAxMDc4KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTQ0NA0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIkVudGVycHJpc2VCZWFuIikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMTA0ODU3NjANCgkJICAgIGZpbGxfY29sb3IgCTE0NDcyNjQ5DQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEU3MUEwMTBBIg0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlAMTgNCgkJCWxvY2F0aW9uICAgCSgxMTgyLCAxMTM5KQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlUUlVFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJaWNvbl9zdHlsZSAJIkljb24iDQoJCQlmaWxsX2NvbG9yIAkxNjc3NzIxNQ0KCQkJYW5jaG9yICAgICAJMg0KCQkJbmxpbmVzICAgICAJMg0KCQkJbWF4X3dpZHRoICAJMjUzKQ0KCQkgICAgd2lkdGggICAgICAJNDYyDQoJCSAgICBoZWlnaHQgICAgIAkzODYNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgSW5oZXJpdFRyZWVWaWV3ICIiIEAxOQ0KCQkgICAgbG9jYXRpb24gICAJKDE0MDQsIDE1NDcpDQoJCSAgICBsaW5lX2NvbG9yIAkxMDQ4NTc2MA0KCQkgICAgZmlsbF9jb2xvciAJMTQ0NzI2NDkNCgkJICAgIHN1cHBsaWVyICAgCUAxOA0KCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkoMTQwNCwgMTU0NykNCgkJCSgxNDA0LCAxNDUyKSkpDQoJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDIwDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkxMDQ4NTc2MA0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFODA4MDA5NSINCgkJICAgIGNsaWVudCAgICAgCUAyDQoJCSAgICBzdXBwbGllciAgIAlAMTgNCgkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJKDE4NDcsIDE2MzcpDQoJCQkoMTg0NywgMTU0NykpDQoJCSAgICBsaW5lX3N0eWxlIAkzDQoJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4NDcsIDE2MzcpDQoJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTg0NywgMTU0NykNCgkJICAgIGRyYXdTdXBwbGllciAJQDE5KQ0KCQkob2JqZWN0IEluaGVyaXRWaWV3ICIiIEAyMQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMTA0ODU3NjANCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTMyMzAxMjAiDQoJCSAgICBjbGllbnQgICAgIAlAMQ0KCQkgICAgc3VwcGxpZXIgICAJQDE4DQoJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCSgxMTUzLCAxNjEzKQ0KCQkJKDExNTMsIDE1NDcpKQ0KCQkgICAgbGluZV9zdHlsZSAJMw0KCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMTUzLCAxNjEzKQ0KCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExNTMsIDE1NDcpDQoJCSAgICBkcmF3U3VwcGxpZXIgCUAxOSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OkVKQkphciIgQDIyDQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDM2NywgOTM2KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAyMg0KCQkJbG9jYXRpb24gICAJKDEzMCwgNzUyKQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTQ3NA0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIkVKQkphciIpDQoJCSAgICBzdGVyZW90eXBlIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAyMg0KCQkJbG9jYXRpb24gICAJKDEzMCwgNzAyKQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCWFuY2hvciAgICAgCTEwDQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAk0NzQNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSI8PGNvbXBvbmVudD4+IikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMTA0ODU3NjANCgkJICAgIGZpbGxfY29sb3IgCTE0NDcyNjQ5DQoJCSAgICBxdWlkdSAgICAgIAkiMzcxQkM1NUQwMUUxIg0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlAMjINCgkJCWxvY2F0aW9uICAgCSgxMzAsIDgxMykNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkzDQoJCQltYXhfd2lkdGggIAk0MTIpDQoJCSAgICB3aWR0aCAgICAgIAk0OTINCgkJICAgIGhlaWdodCAgICAgCTQ5Mg0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgImphclRvQXNzZW1ibHlEZXNjcmlwdG9yIiBAMjMNCgkJICAgIGxvY2F0aW9uICAgCSg5MDgsIDgxMCkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTEwNDg1NzYwDQoJCSAgICBxdWlkdSAgICAgIAkiMzhGRjNDRjgwMUVFIg0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJhc3NlbWJseURlc2NyaXB0b3IiIEAyNA0KCQkJICAgIFBhcmVudF9WaWV3IAlAMjMNCgkJCSAgICBsb2NhdGlvbiAgIAkoNjg0LCA1NzApDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNQ0KCQkJCVBhcmVudF9WaWV3IAlAMjQNCgkJCQlsb2NhdGlvbiAgIAkoMTAwNywgNzY4KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkzODMNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIithc3NlbWJseURlc2NyaXB0b3IiDQoJCQkJcGN0RGlzdCAgICAJMC4zMzUzODUNCgkJCQloZWlnaHQgICAgIAk0Mw0KCQkJCW9yaWVudGF0aW9uIAkwKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM4RkYzQ0Y5MDI0OSINCgkJCSAgICBjbGllbnQgICAgIAlAMjMNCgkJCSAgICBzdXBwbGllciAgIAlAMTUNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoOTA4LCA4MTApDQoJCQkJKDEyMDMsIDgxMCkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTA4LCA4MTApDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEyMDMsIDgxMCkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNg0KCQkJCVBhcmVudF9WaWV3IAlAMjQNCgkJCQlsb2NhdGlvbiAgIAkoMTE0MywgODYzKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMC4uMSINCgkJCQlwY3REaXN0ICAgIAkwLjc5NTEwNw0KCQkJCWhlaWdodCAgICAgCTUzDQoJCQkJb3JpZW50YXRpb24gCTEpKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAiZWpiSmFyIiBAMjcNCgkJCSAgICBQYXJlbnRfVmlldyAJQDIzDQoJCQkgICAgbG9jYXRpb24gICAJKDY4NCwgNTcwKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM4RkYzQ0Y5MDI2NyINCgkJCSAgICBjbGllbnQgICAgIAlAMjMNCgkJCSAgICBzdXBwbGllciAgIAlAMjINCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoOTA4LCA4MTApDQoJCQkJKDYxMywgODEwKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5MDgsIDgxMCkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjEzLCA4MTApKSkpDQoJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxOSIgQDI4DQoJCSAgICBsb2NhdGlvbiAgIAkoMjc4LCAxNDIyKQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAk0MjI3MDcyDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRUY4ODcwMzc4Ig0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJyZWxhdGlvbnNoaXBMaXN0IiBAMjkNCgkJCSAgICBQYXJlbnRfVmlldyAJQDI4DQoJCQkgICAgbG9jYXRpb24gICAJKC01OCwgMTAyMikNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMwDQoJCQkJUGFyZW50X1ZpZXcgCUAyOQ0KCQkJCWxvY2F0aW9uICAgCSg0NTAsIDE1NjYpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTMwNA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK3JlbGF0aW9uc2hpcExpc3QiDQoJCQkJcGN0RGlzdCAgICAJMC41OTc1MTANCgkJCQloZWlnaHQgICAgIAkxNzINCgkJCQlvcmllbnRhdGlvbiAJMCkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOUJFRjg4OTAwM0MiDQoJCQkgICAgY2xpZW50ICAgICAJQDI4DQoJCQkgICAgc3VwcGxpZXIgICAJQDE2DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDI3OCwgMTQyMikNCgkJCQkoMjc4LCAxNjYzKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyNzgsIDE0MjIpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI3OCwgMTY2MykNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMQ0KCQkJCVBhcmVudF9WaWV3IAlAMjkNCgkJCQlsb2NhdGlvbiAgIAkoMzQ4LCAxNjE2KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMC4uMSINCgkJCQlwY3REaXN0ICAgIAkwLjgwNTAzMQ0KCQkJCWhlaWdodCAgICAgCTcwDQoJCQkJb3JpZW50YXRpb24gCTApKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAiZWpiSmFyIiBAMzINCgkJCSAgICBQYXJlbnRfVmlldyAJQDI4DQoJCQkgICAgbG9jYXRpb24gICAJKC01OCwgMTAyMikNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMzDQoJCQkJUGFyZW50X1ZpZXcgCUAzMg0KCQkJCWxvY2F0aW9uICAgCSgzODQsIDEyNTMpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTEzNw0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK2VqYkphciINCgkJCQlwY3REaXN0ICAgIAkwLjcwNzYwMg0KCQkJCWhlaWdodCAgICAgCTEwNg0KCQkJCW9yaWVudGF0aW9uIAkxKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5QkVGODg5MDAzRCINCgkJCSAgICBjbGllbnQgICAgIAlAMjgNCgkJCSAgICBzdXBwbGllciAgIAlAMjINCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMjc4LCAxNDIyKQ0KCQkJCSgyNzgsIDExODIpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI3OCwgMTQyMikNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjc4LCAxMTgyKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM0DQoJCQkJUGFyZW50X1ZpZXcgCUAzMg0KCQkJCWxvY2F0aW9uICAgCSgzMzIsIDEyMDcpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTINCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTE1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIxIg0KCQkJCXBjdERpc3QgICAgCTAuOTAwMDAwDQoJCQkJaGVpZ2h0ICAgICAJNTQNCgkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgImVqYkphclRvRW50ZXJwcmlzZUJlYW5zIiBAMzUNCgkJICAgIGxvY2F0aW9uICAgCSg4OTMsIDExMjIpDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkxMDQ4NTc2MA0KCQkgICAgcXVpZHUgICAgICAJIjM4RkYzRDFGMDAzQiINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAiZW50ZXJwcmlzZUJlYW5zIiBAMzYNCgkJCSAgICBQYXJlbnRfVmlldyAJQDM1DQoJCQkgICAgbG9jYXRpb24gICAJKDY2OSwgODgyKQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzcNCgkJCQlQYXJlbnRfVmlldyAJQDM2DQoJCQkJbG9jYXRpb24gICAJKDEwMDUsIDExNTkpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTMzNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK2VudGVycHJpc2VCZWFucyINCgkJCQlwY3REaXN0ICAgIAkwLjQwMzI3OQ0KCQkJCWhlaWdodCAgICAgCTM3DQoJCQkJb3JpZW50YXRpb24gCTEpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzhGRjNEMUYwMzdBIg0KCQkJICAgIGNsaWVudCAgICAgCUAzNQ0KCQkJICAgIHN1cHBsaWVyICAgCUAxOA0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSg4OTMsIDExMjIpDQoJCQkJKDExNzMsIDExMjIpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg5MywgMTEyMikNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTE3MywgMTEyMikNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOA0KCQkJCVBhcmVudF9WaWV3IAlAMzYNCgkJCQlsb2NhdGlvbiAgIAkoMTA4MCwgMTA4NSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjEuLm4iDQoJCQkJcGN0RGlzdCAgICAJMC42NjYxMTMNCgkJCQloZWlnaHQgICAgIAkzOA0KCQkJCW9yaWVudGF0aW9uIAkwKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgImVqYkphciIgQDM5DQoJCQkgICAgUGFyZW50X1ZpZXcgCUAzNQ0KCQkJICAgIGxvY2F0aW9uICAgCSg2NjksIDg4MikNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQwDQoJCQkJUGFyZW50X1ZpZXcgCUAzOQ0KCQkJCWxvY2F0aW9uICAgCSg2NjksIDEwODEpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTEzNw0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK2VqYkphciINCgkJCQlwY3REaXN0ICAgIAkwLjgwMDAwMA0KCQkJCWhlaWdodCAgICAgCTQyDQoJCQkJb3JpZW50YXRpb24gCTEpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzhGRjNEMUYwM0NCIg0KCQkJICAgIGNsaWVudCAgICAgCUAzNQ0KCQkJICAgIHN1cHBsaWVyICAgCUAyMg0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSg4OTMsIDExMjIpDQoJCQkJKDYxMywgMTEyMikpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoODkzLCAxMTIyKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2MTMsIDExMjIpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDENCgkJCQlQYXJlbnRfVmlldyAJQDM5DQoJCQkJbG9jYXRpb24gICAJKDY0MiwgMTE3NikNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjEiDQoJCQkJcGN0RGlzdCAgICAJMC45MDAwMDANCgkJCQloZWlnaHQgICAgIAk1NA0KCQkJCW9yaWVudGF0aW9uIAkwKSkpKQ0KCQkob2JqZWN0IEF0dGFjaFZpZXcgIiIgQDQyDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBjbGllbnQgICAgIAlAMTINCgkJICAgIHN1cHBsaWVyICAgCUA0MA0KCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkoNzk0LCAxMzAwKQ0KCQkJKDY4NCwgMTEwNykpDQoJCSAgICBsaW5lX3N0eWxlIAkwKQ0KCQkob2JqZWN0IEluaGVyaXRWaWV3ICIiIEA0Mw0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJNDIyNzA3Mg0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYzMjUzMDI2RiINCgkJICAgIGNsaWVudCAgICAgCUA3DQoJCSAgICBzdXBwbGllciAgIAlAMTgNCgkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJKDIyNjksIDE2MzApDQoJCQkoMjI2OSwgMTUxOSkNCgkJCSgxMzk3LCAxNTE5KQ0KCQkJKDEzOTcsIDE0NTIpKQ0KCQkgICAgbGluZV9zdHlsZSAJMw0KCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMjY5LCAxNjMwKQ0KCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzOTcsIDE0NTIpKSkpDQoJKG9iamVjdCBDbGFzc0RpYWdyYW0gIkVudGVycHJpc2UgQmVhbiINCgkgICAgcXVpZCAgICAgICAJIjM4MDU1MzFEMDJDMyINCgkgICAgdGl0bGUgICAgICAJIkVudGVycHJpc2UgQmVhbiINCgkgICAgZG9jdW1lbnRhdGlvbiAJDQp8Um9sZXMgYXJlIHNoYXJlZCBieSBtdWx0aXBsZSBFSkJzLg0KfA0KCSAgICANCgkgICAgem9vbSAgICAgICAJMTAwDQoJICAgIG1heF9oZWlnaHQgCTI4MzUwDQoJICAgIG1heF93aWR0aCAgCTIxNjAwDQoJICAgIG9yaWdpbl94ICAgCTIzODgNCgkgICAgb3JpZ2luX3kgICAJNjU2DQoJICAgIGl0ZW1zICAgICAgCShsaXN0IGRpYWdyYW1faXRlbV9saXN0DQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6Y29tbW9uOjpKTkRJRW52UmVmc0dyb3VwIiBANDQNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoNDc4LCA0MTgpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJVFJVRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlANDQNCgkJCWxvY2F0aW9uICAgCSgyODEsIDMzOSkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAkzOTQNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJKTkRJRW52UmVmc0dyb3VwIikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJODQyMTUwNA0KCQkgICAgZmlsbF9jb2xvciAJMTI2MzIyNTYNCgkJICAgIHF1aWR1ICAgICAgCSIzRTRENTM5NTAzNDkiDQoJCSAgICB3aWR0aCAgICAgIAk0MTINCgkJICAgIGhlaWdodCAgICAgCTE4Mg0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3Ojpjb21tb246OlNlY3VyaXR5Um9sZVJlZiIgQDQ1DQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgU3VwcHJlc3NBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIFN1cHByZXNzT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMjg2OCwgNzY1KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUA0NQ0KCQkJbG9jYXRpb24gICAJKDI2NDYsIDY4MCkNCgkJCW5saW5lcyAgICAgCTINCgkJCW1heF93aWR0aCAgCTQ0NA0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIlNlY3VyaXR5Um9sZVJlZiIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCSAgICBxdWlkdSAgICAgIAkiMzcxQkM3QTAwMjVDIg0KCQkgICAgd2lkdGggICAgICAJNDYyDQoJCSAgICBoZWlnaHQgICAgIAkxOTQNCgkJICAgIGFubm90YXRpb24gCTgNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6amF2YTo6SmF2YUNsYXNzIiBANDYNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBTdXBwcmVzc0F0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgU3VwcHJlc3NPcGVyYXRpb24gCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSgyODE3LCAzODkpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDQ2DQoJCQlsb2NhdGlvbiAgIAkoMjcwMywgMzM1KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTIyOA0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIkphdmFDbGFzcyIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCSAgICBxdWlkdSAgICAgIAkiMzY1NDlGQ0MwMEZBIg0KCQkgICAgd2lkdGggICAgICAJMjQ2DQoJCSAgICBoZWlnaHQgICAgIAkxMzINCgkJICAgIGFubm90YXRpb24gCTgNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6ZWpiOjpFbnRlcnByaXNlQmVhbiIgQDQ3DQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDk0NCwgOTI4KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCVRSVUUNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDQ3DQoJCQlsb2NhdGlvbiAgIAkoNzkxLCA4NTApDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJMzA2DQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiRW50ZXJwcmlzZUJlYW4iKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFNzFBMDEwQSINCgkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQoJCQlQYXJlbnRfVmlldyAJQDQ3DQoJCQlsb2NhdGlvbiAgIAkoNzkxLCA5MTEpDQoJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJICAgIGl0YWxpY3MgICAgCVRSVUUNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAkyNDQpDQoJCSAgICB3aWR0aCAgICAgIAkzMjQNCgkJICAgIGhlaWdodCAgICAgCTE4MA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIkVqYlRvUm9sZXMiIEA0OA0KCQkgICAgbG9jYXRpb24gICAJKDE4NzEsIDg0MSkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDkNCgkJCVBhcmVudF9WaWV3IAlANDgNCgkJCWxvY2F0aW9uICAgCSgxODY3LCA3NTEpDQoJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJICAgIGl0YWxpY3MgICAgCVRSVUUNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlhbmNob3IgICAgIAkxDQoJCQlhbmNob3JfbG9jIAkxDQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAkzNTYNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJFamJUb1JvbGVzIg0KCQkJcGN0RGlzdCAgICAJMC40NTAwMDANCgkJCWhlaWdodCAgICAgCTkxDQoJCQlvcmllbnRhdGlvbiAJMCkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTMyMzAxNDQiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgInNlY3VyaXR5Um9sZVJlZnMiIEA1MA0KCQkJICAgIFBhcmVudF9WaWV3IAlANDgNCgkJCSAgICBsb2NhdGlvbiAgIAkoOTkxLCAyOTcpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA1MQ0KCQkJCVBhcmVudF9WaWV3IAlANTANCgkJCQlsb2NhdGlvbiAgIAkoMjM2NywgODAxKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAk0NTQNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIitzZWN1cml0eVJvbGVSZWZzIg0KCQkJCXBjdERpc3QgICAgCTAuNjQ4NTI5DQoJCQkJaGVpZ2h0ICAgICAJNDENCgkJCQlvcmllbnRhdGlvbiAJMCkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTMyMzAxNDYiDQoJCQkgICAgY2xpZW50ICAgICAJQDQ4DQoJCQkgICAgc3VwcGxpZXIgICAJQDQ1DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDE4NzEsIDg0MSkNCgkJCQkoMjYzNywgODQxKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODcxLCA4NDEpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI2MzcsIDg0MSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA1Mg0KCQkJCVBhcmVudF9WaWV3IAlANTANCgkJCQlsb2NhdGlvbiAgIAkoMjUzNywgODc4KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAk3MA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMC4ubiINCgkJCQlwY3REaXN0ICAgIAkwLjg3MDYyOQ0KCQkJCWhlaWdodCAgICAgCTM3DQoJCQkJb3JpZW50YXRpb24gCTEpKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNCIgQDUzDQoJCQkgICAgUGFyZW50X1ZpZXcgCUA0OA0KCQkJICAgIGxvY2F0aW9uICAgCSg5OTEsIDI5NykNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDU0DQoJCQkJUGFyZW50X1ZpZXcgCUA1Mw0KCQkJCWxvY2F0aW9uICAgCSgxMjU5LCA4MDApDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWhpZGRlbiAgICAgCVRSVUUNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAk4MA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiIg0KCQkJCXBjdERpc3QgICAgCTAuODAwMDAwDQoJCQkJaGVpZ2h0ICAgICAJNDINCgkJCQlvcmllbnRhdGlvbiAJMSkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTMyMzAxNDUiDQoJCQkgICAgY2xpZW50ICAgICAJQDQ4DQoJCQkgICAgc3VwcGxpZXIgICAJQDQ3DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDE4NzEsIDg0MSkNCgkJCQkoMTEwNiwgODQxKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODcxLCA4NDEpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExMDYsIDg0MSkpKSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgImVqYkNsYXNzIiBANTUNCgkJICAgIGxvY2F0aW9uICAgCSgxNzkxLCA1MzgpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDU2DQoJCQlQYXJlbnRfVmlldyAJQDU1DQoJCQlsb2NhdGlvbiAgIAkoMTc5MSwgNDc5KQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlUUlVFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJYW5jaG9yICAgICAJMQ0KCQkJYW5jaG9yX2xvYyAJMQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJNDUwDQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiZWpiQ2xhc3MiDQoJCQlwY3REaXN0ICAgIAkwLjUwMDAwMA0KCQkJaGVpZ2h0ICAgICAJNjANCgkJCW9yaWVudGF0aW9uIAkwKQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgcXVpZHUgICAgICAJIjM4MEZEQzM0MDJDNyINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAiZWpiIiBANTcNCgkJCSAgICBQYXJlbnRfVmlldyAJQDU1DQoJCQkgICAgbG9jYXRpb24gICAJKDE1MjEsIC01NzIpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA1OA0KCQkJCVBhcmVudF9WaWV3IAlANTcNCgkJCQlsb2NhdGlvbiAgIAkoMTA4MywgNjI4KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAk4MA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK2VqYiINCgkJCQlwY3REaXN0ICAgIAkwLjgwMDAwMA0KCQkJCWhlaWdodCAgICAgCTQyDQoJCQkJb3JpZW50YXRpb24gCTApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzgwRkRDMzUwMUY2Ig0KCQkJICAgIGNsaWVudCAgICAgCUA1NQ0KCQkJICAgIHN1cHBsaWVyICAgCUA0Nw0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxNzkxLCA1MzgpDQoJCQkJKDEwNDEsIDUzOCkNCgkJCQkoMTA0MSwgODM4KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNzkxLCA1MzgpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEwNDEsIDgzOCkpDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJlamJDbGFzcyIgQDU5DQoJCQkgICAgUGFyZW50X1ZpZXcgCUA1NQ0KCQkJICAgIGxvY2F0aW9uICAgCSgxNTIxLCAtNTcyKQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANjANCgkJCQlQYXJlbnRfVmlldyAJQDU5DQoJCQkJbG9jYXRpb24gICAJKDI2MzAsIDU4MCkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTkwDQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrZWpiQ2xhc3MiDQoJCQkJcGN0RGlzdCAgICAJMC44MDAwMDANCgkJCQloZWlnaHQgICAgIAk0Mg0KCQkJCW9yaWVudGF0aW9uIAkxKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM4MEZEQzM1MDFFQyINCgkJCSAgICBjbGllbnQgICAgIAlANTUNCgkJCSAgICBzdXBwbGllciAgIAlANDYNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMTc5MSwgNTM4KQ0KCQkJCSgyNzU3LCA1MzgpDQoJCQkJKDI3NTcsIDQ1NSkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTc5MSwgNTM4KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNzU3LCA0NTUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANjENCgkJCQlQYXJlbnRfVmlldyAJQDU5DQoJCQkJbG9jYXRpb24gICAJKDI3MzQsIDQ4NSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjEiDQoJCQkJcGN0RGlzdCAgICAJMC45MDAwMDANCgkJCQloZWlnaHQgICAgIAk1NA0KCQkJCW9yaWVudGF0aW9uIAkwKSkpKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiaG9tZUludGVyZmFjZSIgQDYyDQoJCSAgICBsb2NhdGlvbiAgIAkoMTk5MSwgNjM0KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2Mw0KCQkJUGFyZW50X1ZpZXcgCUA2Mg0KCQkJbG9jYXRpb24gICAJKDE5OTEsIDU3NSkNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJVFJVRQ0KCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCWFuY2hvciAgICAgCTENCgkJCWFuY2hvcl9sb2MgCTENCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTQ1MA0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJImhvbWVJbnRlcmZhY2UiDQoJCQlwY3REaXN0ICAgIAkwLjUwMDAwMA0KCQkJaGVpZ2h0ICAgICAJNjANCgkJCW9yaWVudGF0aW9uIAkwKQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgcXVpZHUgICAgICAJIjM4MEZEQzM3MDFDNyINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAiZWpiIiBANjQNCgkJCSAgICBQYXJlbnRfVmlldyAJQDYyDQoJCQkgICAgbG9jYXRpb24gICAJKDE3MjEsIC00NzYpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2NQ0KCQkJCVBhcmVudF9WaWV3IAlANjQNCgkJCQlsb2NhdGlvbiAgIAkoMTExNiwgNjc2KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAk4MA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK2VqYiINCgkJCQlwY3REaXN0ICAgIAkwLjgwMDAwMA0KCQkJCWhlaWdodCAgICAgCTQyDQoJCQkJb3JpZW50YXRpb24gCTApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzgwRkRDNDQwMTREIg0KCQkJICAgIGNsaWVudCAgICAgCUA2Mg0KCQkJICAgIHN1cHBsaWVyICAgCUA0Nw0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxOTkxLCA2MzQpDQoJCQkJKDExMDAsIDYzNCkNCgkJCQkoMTEwMCwgODM4KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxOTkxLCA2MzQpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDExMDAsIDgzOCkpDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJob21lSW50ZXJmYWNlIiBANjYNCgkJCSAgICBQYXJlbnRfVmlldyAJQDYyDQoJCQkgICAgbG9jYXRpb24gICAJKDE3MjEsIC00NzYpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2Nw0KCQkJCVBhcmVudF9WaWV3IAlANjYNCgkJCQlsb2NhdGlvbiAgIAkoMjczMiwgNTEyKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkyODMNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIitob21lSW50ZXJmYWNlIg0KCQkJCXBjdERpc3QgICAgCTAuOTQ4NjE3DQoJCQkJaGVpZ2h0ICAgICAJMTc2DQoJCQkJb3JpZW50YXRpb24gCTApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzgwRkRDNDQwMTQzIg0KCQkJICAgIGNsaWVudCAgICAgCUA2Mg0KCQkJICAgIHN1cHBsaWVyICAgCUA0Ng0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxOTkxLCA2MzQpDQoJCQkJKDI5MDcsIDYzNCkNCgkJCQkoMjkwNywgNDU1KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxOTkxLCA2MzQpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI5MDcsIDQ1NSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA2OA0KCQkJCVBhcmVudF9WaWV3IAlANjYNCgkJCQlsb2NhdGlvbiAgIAkoMjg1NCwgNTY1KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMSINCgkJCQlwY3REaXN0ICAgIAkwLjkwMDAwMA0KCQkJCWhlaWdodCAgICAgCTU0DQoJCQkJb3JpZW50YXRpb24gCTApKSkpDQoJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICJyZW1vdGVJbnRlcmZhY2UiIEA2OQ0KCQkgICAgbG9jYXRpb24gICAJKDE2MTEsIDQwNikNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANzANCgkJCVBhcmVudF9WaWV3IAlANjkNCgkJCWxvY2F0aW9uICAgCSgxNjExLCAzNDcpDQoJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJICAgIGl0YWxpY3MgICAgCVRSVUUNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlhbmNob3IgICAgIAkxDQoJCQlhbmNob3JfbG9jIAkxDQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAk0NTANCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJyZW1vdGVJbnRlcmZhY2UiDQoJCQlwY3REaXN0ICAgIAkwLjUwMDAwMA0KCQkJaGVpZ2h0ICAgICAJNjANCgkJCW9yaWVudGF0aW9uIAkwKQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgcXVpZHUgICAgICAJIjM4MEZEQzQ2MDA2QSINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAiZWpiIiBANzENCgkJCSAgICBQYXJlbnRfVmlldyAJQDY5DQoJCQkgICAgbG9jYXRpb24gICAJKDEzNDEsIC03MDQpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA3Mg0KCQkJCVBhcmVudF9WaWV3IAlANzENCgkJCQlsb2NhdGlvbiAgIAkoMTAwMiwgNjIxKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAk4MA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK2VqYiINCgkJCQlwY3REaXN0ICAgIAkwLjgwMDAwMA0KCQkJCWhlaWdodCAgICAgCTQyDQoJCQkJb3JpZW50YXRpb24gCTApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzgwRkRDNDcwMTY3Ig0KCQkJICAgIGNsaWVudCAgICAgCUA2OQ0KCQkJICAgIHN1cHBsaWVyICAgCUA0Nw0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxNjExLCA0MDYpDQoJCQkJKDk2MCwgNDA2KQ0KCQkJCSg5NjAsIDgzOCkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTYxMSwgNDA2KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5NjAsIDgzOCkpDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJyZW1vdGVJbnRlcmZhY2UiIEA3Mw0KCQkJICAgIFBhcmVudF9WaWV3IAlANjkNCgkJCSAgICBsb2NhdGlvbiAgIAkoMTM0MSwgLTcwNCkNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDc0DQoJCQkJUGFyZW50X1ZpZXcgCUA3Mw0KCQkJCWxvY2F0aW9uICAgCSgyNDc2LCA0NDgpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTMwNA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK3JlbW90ZUludGVyZmFjZSINCgkJCQlwY3REaXN0ICAgIAkwLjgwMDAwMA0KCQkJCWhlaWdodCAgICAgCTQyDQoJCQkJb3JpZW50YXRpb24gCTEpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzgwRkRDNDcwMTY2Ig0KCQkJICAgIGNsaWVudCAgICAgCUA2OQ0KCQkJICAgIHN1cHBsaWVyICAgCUA0Ng0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxNjExLCA0MDYpDQoJCQkJKDI2OTQsIDQwNikpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTYxMSwgNDA2KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNjk0LCA0MDYpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANzUNCgkJCQlQYXJlbnRfVmlldyAJQDczDQoJCQkJbG9jYXRpb24gICAJKDI1ODYsIDM1MykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjEiDQoJCQkJcGN0RGlzdCAgICAJMC45MDAwMDANCgkJCQloZWlnaHQgICAgIAk1NA0KCQkJCW9yaWVudGF0aW9uIAkwKSkpKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAibG9jYWxIb21lSW50ZXJmYWNlIiBANzYNCgkJICAgIGxvY2F0aW9uICAgCSgxNTU0LCAyNTYpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDc3DQoJCQlQYXJlbnRfVmlldyAJQDc2DQoJCQlsb2NhdGlvbiAgIAkoMTU1NCwgMTk3KQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlUUlVFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJYW5jaG9yICAgICAJMQ0KCQkJYW5jaG9yX2xvYyAJMQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJNDUwDQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkibG9jYWxIb21lSW50ZXJmYWNlIg0KCQkJcGN0RGlzdCAgICAJMC41MDAwMDANCgkJCWhlaWdodCAgICAgCTYwDQoJCQlvcmllbnRhdGlvbiAJMCkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIHF1aWR1ICAgICAgCSIzOTg4NkMyQjAxOEIiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDM0IiBANzgNCgkJCSAgICBQYXJlbnRfVmlldyAJQDc2DQoJCQkgICAgbG9jYXRpb24gICAJKDEyODQsIC04NTQpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA3OQ0KCQkJCVBhcmVudF9WaWV3IAlANzgNCgkJCQlsb2NhdGlvbiAgIAkoOTY3LCA1OTYpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWhpZGRlbiAgICAgCVRSVUUNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAk0NTANCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIiINCgkJCQlwY3REaXN0ICAgIAkwLjgwMDAwMA0KCQkJCWhlaWdodCAgICAgCTQyDQoJCQkJb3JpZW50YXRpb24gCTApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzk4ODZDMkMwMkQ3Ig0KCQkJICAgIGNsaWVudCAgICAgCUA3Ng0KCQkJICAgIHN1cHBsaWVyICAgCUA0Nw0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxNTU0LCAyNTYpDQoJCQkJKDkyNSwgMjU2KQ0KCQkJCSg5MjUsIDgzOCkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTU1NCwgMjU2KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg5MjUsIDgzOCkpDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJsb2NhbEhvbWVJbnRlcmZhY2UiIEA4MA0KCQkJICAgIFBhcmVudF9WaWV3IAlANzYNCgkJCSAgICBsb2NhdGlvbiAgIAkoMTI4NCwgLTg1NCkNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDgxDQoJCQkJUGFyZW50X1ZpZXcgCUA4MA0KCQkJCWxvY2F0aW9uICAgCSgyNTIyLCAyOTgpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTM3NA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK2xvY2FsSG9tZUludGVyZmFjZSINCgkJCQlwY3REaXN0ICAgIAkwLjgwMDAwMA0KCQkJCWhlaWdodCAgICAgCTQyDQoJCQkJb3JpZW50YXRpb24gCTEpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzk4ODZDMkMwMkFGIg0KCQkJICAgIGNsaWVudCAgICAgCUA3Ng0KCQkJICAgIHN1cHBsaWVyICAgCUA0Ng0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxNTU0LCAyNTYpDQoJCQkJKDI2OTgsIDI1NikNCgkJCQkoMjY5OCwgMzIzKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTU0LCAyNTYpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI2OTgsIDMyMykNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA4Mg0KCQkJCVBhcmVudF9WaWV3IAlAODANCgkJCQlsb2NhdGlvbiAgIAkoMjY0MywgMjAzKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMC4uMSINCgkJCQlwY3REaXN0ICAgIAkwLjkwMDAwMA0KCQkJCWhlaWdodCAgICAgCTU0DQoJCQkJb3JpZW50YXRpb24gCTApKSkpDQoJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICJsb2NhbEludGVyZmFjZSIgQDgzDQoJCSAgICBsb2NhdGlvbiAgIAkoMTYwOSwgMTEzKQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA4NA0KCQkJUGFyZW50X1ZpZXcgCUA4Mw0KCQkJbG9jYXRpb24gICAJKDE2MDksIDU0KQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlUUlVFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJYW5jaG9yICAgICAJMQ0KCQkJYW5jaG9yX2xvYyAJMQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJNDUwDQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkibG9jYWxJbnRlcmZhY2UiDQoJCQlwY3REaXN0ICAgIAkwLjUwMDAwMA0KCQkJaGVpZ2h0ICAgICAJNjANCgkJCW9yaWVudGF0aW9uIAkwKQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgcXVpZHUgICAgICAJIjM5ODg2Q0MyMDI4MyINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMzUiIEA4NQ0KCQkJICAgIFBhcmVudF9WaWV3IAlAODMNCgkJCSAgICBsb2NhdGlvbiAgIAkoMTMzOSwgLTk5NykNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDg2DQoJCQkJUGFyZW50X1ZpZXcgCUA4NQ0KCQkJCWxvY2F0aW9uICAgCSg5MzAsIDU0OSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJaGlkZGVuICAgICAJVFJVRQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTQ1MA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiIg0KCQkJCXBjdERpc3QgICAgCTAuODAwMDAwDQoJCQkJaGVpZ2h0ICAgICAJNDINCgkJCQlvcmllbnRhdGlvbiAJMCkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOTg4NkNDNjAxMjAiDQoJCQkgICAgY2xpZW50ICAgICAJQDgzDQoJCQkgICAgc3VwcGxpZXIgICAJQDQ3DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDE2MDksIDExMykNCgkJCQkoODg4LCAxMTMpDQoJCQkJKDg4OCwgODM4KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjA5LCAxMTMpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg4OCwgODM4KSkNCgkJCShvYmplY3QgUm9sZVZpZXcgImxvY2FsSW50ZXJmYWNlIiBAODcNCgkJCSAgICBQYXJlbnRfVmlldyAJQDgzDQoJCQkgICAgbG9jYXRpb24gICAJKDEzMzksIC05OTcpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA4OA0KCQkJCVBhcmVudF9WaWV3IAlAODcNCgkJCQlsb2NhdGlvbiAgIAkoMjc2NiwgMTU1KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkyNjENCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIitsb2NhbEludGVyZmFjZSINCgkJCQlwY3REaXN0ICAgIAkwLjgwMDAwMA0KCQkJCWhlaWdodCAgICAgCTQyDQoJCQkJb3JpZW50YXRpb24gCTEpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzk4ODZDQzYwMEVFIg0KCQkJICAgIGNsaWVudCAgICAgCUA4Mw0KCQkJICAgIHN1cHBsaWVyICAgCUA0Ng0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxNjA5LCAxMTMpDQoJCQkJKDI4NDUsIDExMykNCgkJCQkoMjg0NSwgMzIzKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNjA5LCAxMTMpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI4NDUsIDMyMykNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA4OQ0KCQkJCVBhcmVudF9WaWV3IAlAODcNCgkJCQlsb2NhdGlvbiAgIAkoMjg5OSwgMTc4KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMC4uMSINCgkJCQlwY3REaXN0ICAgIAkwLjkwMDAwMA0KCQkJCWhlaWdodCAgICAgCTU0DQoJCQkJb3JpZW50YXRpb24gCTApKSkpDQoJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDkwDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkxMDk0OTU1OQ0KCQkgICAgcXVpZHUgICAgICAJIjNFNEQ1NEMzMDA5MCINCgkJICAgIGNsaWVudCAgICAgCUA0Nw0KCQkgICAgc3VwcGxpZXIgICAJQDQ0DQoJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCSg4NjAsIDgzNykNCgkJCSg1NjEsIDUwOSkpDQoJCSAgICBsaW5lX3N0eWxlIAkwKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmNvbW1vbjo6U2VjdXJpdHlJZGVudGl0eSIgQDkxDQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDE3MjUsIDEzNjgpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDkxDQoJCQlsb2NhdGlvbiAgIAkoMTU0NywgMTI2MikNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAkzNTYNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJTZWN1cml0eUlkZW50aXR5IikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJICAgIHF1aWR1ICAgICAgCSIzOUJGMkMwNDAyNDUiDQoJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KCQkJUGFyZW50X1ZpZXcgCUA5MQ0KCQkJbG9jYXRpb24gICAJKDE1NDcsIDEzNzcpDQoJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJaWNvbl9zdHlsZSAJIkljb24iDQoJCQlmaWxsX2NvbG9yIAkxNjc3NzIxNQ0KCQkJYW5jaG9yICAgICAJMg0KCQkJbmxpbmVzICAgICAJMg0KCQkJbWF4X3dpZHRoICAJMzkxKQ0KCQkgICAgd2lkdGggICAgICAJMzc0DQoJCSAgICBoZWlnaHQgICAgIAkyMzYNCgkJICAgIGFubm90YXRpb24gCTgNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyOSIgQDkyDQoJCSAgICBsb2NhdGlvbiAgIAkoMTMyMSwgMTEzOSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIHF1aWR1ICAgICAgCSIzOUJGMkMxRjAxOEYiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDMwIiBAOTMNCgkJCSAgICBQYXJlbnRfVmlldyAJQDkyDQoJCQkgICAgbG9jYXRpb24gICAJKC0xMTQsIC02NzApDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA5NA0KCQkJCVBhcmVudF9WaWV3IAlAOTMNCgkJCQlsb2NhdGlvbiAgIAkoMTEyOCwgMTA3OSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJaGlkZGVuICAgICAJVFJVRQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTQ1MA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiIg0KCQkJCXBjdERpc3QgICAgCTAuODAwMDAwDQoJCQkJaGVpZ2h0ICAgICAJNDINCgkJCQlvcmllbnRhdGlvbiAJMCkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOUJGMkMyMDAyNjQiDQoJCQkgICAgY2xpZW50ICAgICAJQDkyDQoJCQkgICAgc3VwcGxpZXIgICAJQDQ3DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDEzMjEsIDExMzkpDQoJCQkJKDExMDUsIDEwMTgpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTApDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJzZWN1cml0eUlkZW50aXR5IiBAOTUNCgkJCSAgICBQYXJlbnRfVmlldyAJQDkyDQoJCQkgICAgbG9jYXRpb24gICAJKC0xMTQsIC02NzApDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA5Ng0KCQkJCVBhcmVudF9WaWV3IAlAOTUNCgkJCQlsb2NhdGlvbiAgIAkoMTI2OCwgMTM0NCkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMjk5DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrc2VjdXJpdHlJZGVudGl0eSINCgkJCQlwY3REaXN0ICAgIAkwLjIxOTY0NA0KCQkJCWhlaWdodCAgICAgCTIwNQ0KCQkJCW9yaWVudGF0aW9uIAkxKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5QkYyQzIwMDI2MyINCgkJCSAgICBjbGllbnQgICAgIAlAOTINCgkJCSAgICBzdXBwbGllciAgIAlAOTENCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMTMyMSwgMTEzOSkNCgkJCQkoMTUzNywgMTI2MSkpDQoJCQkgICAgbGluZV9zdHlsZSAJMA0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDk3DQoJCQkJUGFyZW50X1ZpZXcgCUA5NQ0KCQkJCWxvY2F0aW9uICAgCSgxNTY2LCAxMTg1KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMC4uMSINCgkJCQlwY3REaXN0ICAgIAkwLjk1NzA2Mg0KCQkJCWhlaWdodCAgICAgCTgxDQoJCQkJb3JpZW50YXRpb24gCTApKSkpKSkNCgkob2JqZWN0IENsYXNzRGlhZ3JhbSAiQ29udGFpbmVyIE1hbmFnZWQgRW50aXR5Ig0KCSAgICBxdWlkICAgICAgIAkiMzgwNTU1MEMwMDhBIg0KCSAgICB0aXRsZSAgICAgIAkiQ29udGFpbmVyIE1hbmFnZWQgRW50aXR5Ig0KCSAgICBkb2N1bWVudGF0aW9uIAkNCnxUaGUgZGVzY3JpcHRpb24gZWxlbWVudCBpcyB1c2VkIGJ5IHRoZSBlamItamFyIGZpbGUgcHJvZHVjZXIgdG8gcHJvdmlkZSB0ZXh0IGRlc2NyaWJpbmcgdGhlIHBhcmVudCBlbGVtZW50LiAgVGhlIGRlc2NyaXB0aW9uIGVsZW1lbnQgc2hvdWxkIGluY2x1ZGUgYW55IGluZm9ybWF0aW9uIHRoYXQgdGhlIGVqYi1qYXIgZmlsZSBwcm9kdWNlciB3YW50cyB0byBwcm92aWRlIHRvIHRoZSBjb25zdW1lciBvZiB0aGUgZWpiLWphciBmaWxlIChpLmUuIHRvIHRoZSBEZXBsb3llcikuIFR5cGljYWxseSwgdGhlIHRvb2xzIHVzZWQgYnkgdGhlIGVqYi1qYXIgZmlsZSBjb25zdW1lciB3aWxsIGRpc3BsYXkgdGhlIGRlc2NyaXB0aW9uIHdoZW4gcHJvY2Vzc2luZyB0aGUgcGFyZW50IGVsZW1lbnQuDQp8DQoJICAgIA0KCSAgICB6b29tICAgICAgIAk5NQ0KCSAgICBtYXhfaGVpZ2h0IAkyODM1MA0KCSAgICBtYXhfd2lkdGggIAkyMTYwMA0KCSAgICBvcmlnaW5feCAgIAkwDQoJICAgIG9yaWdpbl95ICAgCTExOTgNCgkgICAgaXRlbXMgICAgICAJKGxpc3QgZGlhZ3JhbV9pdGVtX2xpc3QNCgkJKG9iamVjdCBOb3RlVmlldyBAOTgNCgkJICAgIGxvY2F0aW9uICAgCSgyMjg4LCA0MDApDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDk4DQoJCQlsb2NhdGlvbiAgIAkoMTkzMiwgMjE2KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTcNCgkJCW1heF93aWR0aCAgCTY3Nw0KCQkJbGFiZWwgICAgICAJIlRoZSBrZXlGZWF0dXJlcyByZWxhdGlvbnNoaXAgYWxzbyBkZXRlcm1pbmVzIHRoZSBwcmlta2V5LWZpZWxkIHNldHRpbmcuICBJZiB0aGVyZSBpcyBhIHNpbmdsZSBrZXkgZmVhdHVyZSwgd2Ugd2lsbCBkZXBsb3kgdGhhdCB1c2luZyBwcmlta2V5LWZpZWxkLiAgQ29udmVyc2VseSwgaWYgYSBkZXNjcmlwdG9yIHVzZXMgcHJpbWtleS1maWVsZCwgd2Ugd2lsbCBzZXQgYSBzaW5nbGUga2V5RmVhdHVyZS4gICg/IEJNUCBjYXNlID8pIikNCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCSAgICB3aWR0aCAgICAgIAk3MzcNCgkJICAgIGhlaWdodCAgICAgCTM4MSkNCgkJKG9iamVjdCBOb3RlVmlldyBAOTkNCgkJICAgIGxvY2F0aW9uICAgCSgxNDcyLCAxNTY4KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUA5OQ0KCQkJbG9jYXRpb24gICAJKDEwNzAsIDEzOTApDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJNw0KCQkJbWF4X3dpZHRoICAJNzY5DQoJCQlsYWJlbCAgICAgIAkiV2UgaGF2ZSBzd2l0Y2hlZCBmcm9tIGV4cGxpY2l0bHkgcmVmZXJyaW5nIGZyb20gYW4gRW50aXR5IHRvIGl0cyBKYXZhIEZpZWxkcyB0byBkZXJpdmluZyB0aGF0IGZyb20gaXRzIGF0dHJpYnV0ZXMgYW5kIGFzc29jaWF0aW9uIGVuZHMuICBUaGUgaW1wbGVtZW50YXRpb24gc2hvdWxkIHN0aWxsIHN1cHBvcnQgbGlzdGluZyB0aGUga2V5IGZpZWxkcyBhbmQgcGVyc2lzdGVudCBmaWVsZHMsIGJ1dCBub3QgYWRkaW5nIG9yIHJlbW92aW5nIHRoZW0uIikNCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCSAgICB3aWR0aCAgICAgIAk4MjkNCgkJICAgIGhlaWdodCAgICAgCTM2OSkNCgkJKG9iamVjdCBOb3RlVmlldyBAMTAwDQoJCSAgICBsb2NhdGlvbiAgIAkoNjA4LCAxNjAwKQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAxMDANCgkJCWxvY2F0aW9uICAgCSgxODksIDE0NjUpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJNg0KCQkJbWF4X3dpZHRoICAJODAyDQoJCQlsYWJlbCAgICAgIAkiTGVhdmluZyB0aGUga2V5QXR0cmlidXRlcyBhbmQgcGVyc2lzdGVudEF0dHJpYnV0ZXMgcmVsYXRpb25zaGlwcyB0eXBlZCB0byBlQXR0cmlidXRlIGZvciBjb21wYXRpYmlsaXR5IHB1cnBvc2VzLiAgVGhpcyBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgdG8gYmUgdHlwZWQgdG8gQ01QQXR0cmlidXRlLiIpDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkgICAgd2lkdGggICAgICAJODYyDQoJCSAgICBoZWlnaHQgICAgIAkyODMpDQoJCShvYmplY3QgTm90ZVZpZXcgQDEwMQ0KCQkgICAgbG9jYXRpb24gICAJKDQ4MCwgMTE1MikNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMTAxDQoJCQlsb2NhdGlvbiAgIAkoNjUsIDk5MCkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAk2DQoJCQltYXhfd2lkdGggIAk3OTUNCgkJCWxhYmVsICAgICAgCQ0KfEVKQjIuMCAtIA0KfCAgQWRkZWQgdmVyc2lvbjpTdHJpbmcNCnwgIEFkZGVkIGFic3RyYWN0U2NoZW1hTmFtZTpTdHJpbmcNCnxUT0RPOiBPdGhlciBuZXcgYXR0cnM6DQp8ICBTZWN1cml0eUlkZW50aXR5DQoJCQkpDQoJCSAgICBsaW5lX2NvbG9yIAk0MjI3MDcyDQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDgzMw0KCQkgICAgd2lkdGggICAgICAJODU1DQoJCSAgICBoZWlnaHQgICAgIAkzMzYpDQoJCShvYmplY3QgTm90ZVZpZXcgQDEwMg0KCQkgICAgbG9jYXRpb24gICAJKDYyNCwgODMyKQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAxMDINCgkJCWxvY2F0aW9uICAgCSg0MjYsIDc0MykNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkzDQoJCQltYXhfd2lkdGggIAkzNjENCgkJCWxhYmVsICAgICAgCSJTZWUgZnVydGhlciBkZXRhaWwgaW4gRUpCMi4wIC0gUXVlcnkgZGlhZ3JhbSIpDQoJCSAgICBsaW5lX2NvbG9yIAk0MjI3MDcyDQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDgzMw0KCQkgICAgd2lkdGggICAgICAJNDIxDQoJCSAgICBoZWlnaHQgICAgIAkxOTEpDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6ZWpiOjpRdWVyeSIgQDEwMw0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIFN1cHByZXNzQXR0cmlidXRlIAlUUlVFDQoJCSAgICBTdXBwcmVzc09wZXJhdGlvbiAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDQ0OCwgNTc2KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAxMDMNCgkJCWxvY2F0aW9uICAgCSgzNjcsIDUyNSkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAkxNjINCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJRdWVyeSIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTQyMjcwNzINCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODMzDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRjAyNzEwMzI3Ig0KCQkgICAgaGVpZ2h0ICAgICAJMTI2DQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IEF0dGFjaFZpZXcgIiIgQDEwNA0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJNDIyNzA3Mg0KCQkgICAgY2xpZW50ICAgICAJQDEwMg0KCQkgICAgc3VwcGxpZXIgICAJQDEwMw0KCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkoNTU4LCA3MzYpDQoJCQkoNDkxLCA2MzkpKQ0KCQkgICAgbGluZV9zdHlsZSAJMCkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplY29yZTo6RUF0dHJpYnV0ZSIgQDEwNQ0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSgxNTgxLCAyMzMpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDEwNQ0KCQkJbG9jYXRpb24gICAJKDEzNjksIDc3KQ0KCQkJbmxpbmVzICAgICAJMg0KCQkJbWF4X3dpZHRoICAJNDI0DQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiRUF0dHJpYnV0ZSIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCSAgICBxdWlkdSAgICAgIAkiMzkyMzg0NzIwMzlEIg0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlAMTA1DQoJCQlsb2NhdGlvbiAgIAkoMTM2OSwgMTkxKQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCWljb25fc3R5bGUgCSJJY29uIg0KCQkJYW5jaG9yICAgICAJMg0KCQkJbmxpbmVzICAgICAJMg0KCQkJbWF4X3dpZHRoICAJMjc1KQ0KCQkgICAgd2lkdGggICAgICAJNDQyDQoJCSAgICBoZWlnaHQgICAgIAkzMzYNCgkJICAgIGFubm90YXRpb24gCTgNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6ZWpiOjpDTVJGaWVsZCIgQDEwNg0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSgxNTk1LCA5MjkpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDEwNg0KCQkJbG9jYXRpb24gICAJKDE0ODUsIDg3OCkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAkyMjANCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJDTVJGaWVsZCIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTMyNzY4DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDgzMw0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYxODEwMDA0QiINCgkJICAgIHdpZHRoICAgICAgCTIzOA0KCQkgICAgaGVpZ2h0ICAgICAJMTI2DQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmphdmE6OkphdmFDbGFzcyIgQDEwNw0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIFN1cHByZXNzQXR0cmlidXRlIAlUUlVFDQoJCSAgICBTdXBwcmVzc09wZXJhdGlvbiAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDE2MDAsIDEyMzIpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDEwNw0KCQkJbG9jYXRpb24gICAJKDE1MDMsIDExNTQpDQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAkxOTQNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJKYXZhQ2xhc3MiKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBmaWxsX2NvbG9yIAkxNjc3NzIxNQ0KCQkgICAgcXVpZHUgICAgICAJIjM2NTQ5RkNDMDBGQSINCgkJICAgIHdpZHRoICAgICAgCTIxMg0KCQkgICAgaGVpZ2h0ICAgICAJMTgwDQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDQiIEAxMDgNCgkJICAgIGxvY2F0aW9uICAgCSgxNTk2LCAxMDY2KQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgcXVpZHUgICAgICAJIjM5OUFFMEZCMDNEMyINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNDUiIEAxMDkNCgkJCSAgICBQYXJlbnRfVmlldyAJQDEwOA0KCQkJICAgIGxvY2F0aW9uICAgCSgtNCwgLTE2NikNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDExMA0KCQkJCVBhcmVudF9WaWV3IAlAMTA5DQoJCQkJbG9jYXRpb24gICAJKDE1NTQsIDEwMDgpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWhpZGRlbiAgICAgCVRSVUUNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAk0NTANCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIiINCgkJCQlwY3REaXN0ICAgIAkwLjgwMDAwMA0KCQkJCWhlaWdodCAgICAgCTQyDQoJCQkJb3JpZW50YXRpb24gCTApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzk5QUUwRkMwM0I3Ig0KCQkJICAgIGNsaWVudCAgICAgCUAxMDgNCgkJCSAgICBzdXBwbGllciAgIAlAMTA2DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDE1OTYsIDEwNjYpDQoJCQkJKDE1OTUsIDk5MikpDQoJCQkgICAgbGluZV9zdHlsZSAJMCkNCgkJCShvYmplY3QgUm9sZVZpZXcgImNvbGxlY3Rpb25UeXBlIiBAMTExDQoJCQkgICAgUGFyZW50X1ZpZXcgCUAxMDgNCgkJCSAgICBsb2NhdGlvbiAgIAkoLTQsIC0xNjYpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMTINCgkJCQlQYXJlbnRfVmlldyAJQDExMQ0KCQkJCWxvY2F0aW9uICAgCSgxNDMyLCAxMTEzKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkyOTENCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIitjb2xsZWN0aW9uVHlwZSINCgkJCQlwY3REaXN0ICAgIAkwLjU5NzIyNw0KCQkJCWhlaWdodCAgICAgCTE2Ng0KCQkJCW9yaWVudGF0aW9uIAkxKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5OUFFMEZDMDM4RiINCgkJCSAgICBjbGllbnQgICAgIAlAMTA4DQoJCQkgICAgc3VwcGxpZXIgICAJQDEwNw0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxNTk2LCAxMDY2KQ0KCQkJCSgxNTk3LCAxMTQxKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkwDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTEzDQoJCQkJUGFyZW50X1ZpZXcgCUAxMTENCgkJCQlsb2NhdGlvbiAgIAkoMTY2OCwgMTExMSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjAuLjEiDQoJCQkJcGN0RGlzdCAgICAJMC41OTkzNjANCgkJCQloZWlnaHQgICAgIAk3MQ0KCQkJCW9yaWVudGF0aW9uIAkwKSkpKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmNvbW1vbjo6RGVzY3JpcHRpb24iIEAxMTQNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMjg3MSwgNzI5KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAxMTQNCgkJCWxvY2F0aW9uICAgCSgyNzA0LCA1OTgpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJMzM0DQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiRGVzY3JpcHRpb24iKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAk4NDIxNTA0DQoJCSAgICBmaWxsX2NvbG9yIAkxMjYzMjI1Ng0KCQkgICAgcXVpZHUgICAgICAJIjNFNEE5OEQ2MDJFMCINCgkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQoJCQlQYXJlbnRfVmlldyAJQDExNA0KCQkJbG9jYXRpb24gICAJKDI3MDQsIDcxMikNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkzDQoJCQltYXhfd2lkdGggIAkyODMpDQoJCSAgICB3aWR0aCAgICAgIAkzNTINCgkJICAgIGhlaWdodCAgICAgCTI4Ng0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OkNNUEF0dHJpYnV0ZSIgQDExNQ0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSgxNTgxLCA2MzApDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDExNQ0KCQkJbG9jYXRpb24gICAJKDEyOTcsIDUyNikNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAk1NjgNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJDTVBBdHRyaWJ1dGUiKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkgICAgcXVpZHUgICAgICAJIjNBMjI4ODYzMDAwMyINCgkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQoJCQlQYXJlbnRfVmlldyAJQDExNQ0KCQkJbG9jYXRpb24gICAJKDEyOTcsIDU4NikNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAk1NjUpDQoJCSAgICB3aWR0aCAgICAgIAk1ODYNCgkJICAgIGhlaWdodCAgICAgCTIzMg0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBJbmhlcml0VmlldyAiIiBAMTE2DQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBxdWlkdSAgICAgIAkiM0EyMjg4NzcwMzQxIg0KCQkgICAgY2xpZW50ICAgICAJQDExNQ0KCQkgICAgc3VwcGxpZXIgICAJQDEwNQ0KCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkoMTUzNiwgNTE0KQ0KCQkJKDE1MzYsIDQwMCkpDQoJCSAgICBsaW5lX3N0eWxlIAkzDQoJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1MzYsIDUxNCkNCgkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTM2LCA0MDApKQ0KCQkob2JqZWN0IEluaGVyaXRWaWV3ICIiIEAxMTcNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTMyNzY4DQoJCSAgICBxdWlkdSAgICAgIAkiMzk5QUQ0NjkwMTcwIg0KCQkgICAgY2xpZW50ICAgICAJQDEwNg0KCQkgICAgc3VwcGxpZXIgICAJQDExNQ0KCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkoMTU2MywgODY2KQ0KCQkJKDE1NjMsIDc0NSkpDQoJCSAgICBsaW5lX3N0eWxlIAkzDQoJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1NjMsIDg2NikNCgkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTYzLCA3NDUpKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNzEiIEAxMTgNCgkJICAgIGxvY2F0aW9uICAgCSgyMjg0LCA2NzQpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTEwOTQ5NTU5DQoJCSAgICBxdWlkdSAgICAgIAkiM0U0RDFEMUYwMTYxIg0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJkZXNjcmlwdGlvbnMiIEAxMTkNCgkJCSAgICBQYXJlbnRfVmlldyAJQDExOA0KCQkJICAgIGxvY2F0aW9uICAgCSg2NzQsIDUxKQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTIwDQoJCQkJUGFyZW50X1ZpZXcgCUAxMTkNCgkJCQlsb2NhdGlvbiAgIAkoMjU2OSwgNzM0KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkyNjANCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIitkZXNjcmlwdGlvbnMiDQoJCQkJcGN0RGlzdCAgICAJMC42OTUxMzYNCgkJCQloZWlnaHQgICAgIAk2MA0KCQkJCW9yaWVudGF0aW9uIAkxKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjNFNEQxRDIwMDFEQSINCgkJCSAgICBjbGllbnQgICAgIAlAMTE4DQoJCQkgICAgc3VwcGxpZXIgICAJQDExNA0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgyMjg0LCA2NzQpDQoJCQkJKDI2OTUsIDY3NCkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjI4NCwgNjc0KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNjk1LCA2NzQpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTIxDQoJCQkJUGFyZW50X1ZpZXcgCUAxMTkNCgkJCQlsb2NhdGlvbiAgIAkoMjU2MiwgNjExKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMC4ubiINCgkJCQlwY3REaXN0ICAgIAkwLjY3NzI3Ng0KCQkJCWhlaWdodCAgICAgCTY0DQoJCQkJb3JpZW50YXRpb24gCTApKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNzIiIEAxMjINCgkJCSAgICBQYXJlbnRfVmlldyAJQDExOA0KCQkJICAgIGxvY2F0aW9uICAgCSg2NzQsIDUxKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjNFNEQxRDIwMDFFRSINCgkJCSAgICBjbGllbnQgICAgIAlAMTE4DQoJCQkgICAgc3VwcGxpZXIgICAJQDExNQ0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgyMjg0LCA2NzQpDQoJCQkJKDE4NzQsIDY3NCkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjI4NCwgNjc0KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxODc0LCA2NzQpKSkpDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6ZWpiOjpDb250YWluZXJNYW5hZ2VkRW50aXR5IiBAMTIzDQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDQ0NywgMTc2KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAxMjMNCgkJCWxvY2F0aW9uICAgCSg3NiwgNzMpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJNzQyDQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiQ29udGFpbmVyTWFuYWdlZEVudGl0eSIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEUzMjMwMTc0Ig0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlAMTIzDQoJCQlsb2NhdGlvbiAgIAkoNzYsIDEzMykNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkzDQoJCQltYXhfd2lkdGggIAk3MzkpDQoJCSAgICB3aWR0aCAgICAgIAk3NjANCgkJICAgIGhlaWdodCAgICAgCTIzMA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBBdHRhY2hWaWV3ICIiIEAxMjQNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTQyMjcwNzINCgkJICAgIGNsaWVudCAgICAgCUAxMDENCgkJICAgIHN1cHBsaWVyICAgCUAxMjMNCgkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJKDE3MSwgOTgzKQ0KCQkJKDE3MSwgMjkxKSkNCgkJICAgIGxpbmVfc3R5bGUgCTMNCgkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTcxLCA5ODMpDQoJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTcxLCAyOTEpKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTciIEAxMjUNCgkJICAgIGxvY2F0aW9uICAgCSg3NTksIDcwOSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIHF1aWR1ICAgICAgCSIzOTg4MzFDMzAyNDUiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgInBlcnNpc3RlbnRBdHRyaWJ1dGVzIiBAMTI2DQoJCQkgICAgUGFyZW50X1ZpZXcgCUAxMjUNCgkJCSAgICBsb2NhdGlvbiAgIAkoNDA3LCAtNDMpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMjcNCgkJCQlQYXJlbnRfVmlldyAJQDEyNg0KCQkJCWxvY2F0aW9uICAgCSg5NTksIDY3MikNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJNDUzDQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrcGVyc2lzdGVudEF0dHJpYnV0ZXMiDQoJCQkJcGN0RGlzdCAgICAJMC4zNzg2MDENCgkJCQloZWlnaHQgICAgIAkzOA0KCQkJCW9yaWVudGF0aW9uIAkwKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5ODgzMUM1MDE1NyINCgkJCSAgICBjbGllbnQgICAgIAlAMTI1DQoJCQkgICAgc3VwcGxpZXIgICAJQDExNQ0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSg3NTksIDcwOSkNCgkJCQkoMTI4OCwgNzA5KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3NTksIDcwOSkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI4OCwgNzA5KQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEyOA0KCQkJCVBhcmVudF9WaWV3IAlAMTI2DQoJCQkJbG9jYXRpb24gICAJKDEyMzgsIDc0NykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjAuLm4iDQoJCQkJcGN0RGlzdCAgICAJMC45MDUzNDANCgkJCQloZWlnaHQgICAgIAkzOA0KCQkJCW9yaWVudGF0aW9uIAkxKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgImVudGl0eSIgQDEyOQ0KCQkJICAgIFBhcmVudF9WaWV3IAlAMTI1DQoJCQkgICAgbG9jYXRpb24gICAJKDQwNywgLTQzKQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzk4ODMxQzUwMTdGIg0KCQkJICAgIGNsaWVudCAgICAgCUAxMjUNCgkJCSAgICBzdXBwbGllciAgIAlAMTIzDQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDc1OSwgNzA5KQ0KCQkJCSg2NDgsIDcwOSkNCgkJCQkoNjQ4LCAyOTEpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDc1OSwgNzA5KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2NDgsIDI5MSkpKSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDkwIiBAMTMwDQoJCSAgICBsb2NhdGlvbiAgIAkoOTM5LCA1MjcpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIHF1aWR1ICAgICAgCSIzRkE2OTU4OTAyNDAiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgInByaW1LZXlGaWVsZCIgQDEzMQ0KCQkJICAgIFBhcmVudF9WaWV3IAlAMTMwDQoJCQkgICAgbG9jYXRpb24gICAJKDQ5MiwgMzUxKQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTMyDQoJCQkJUGFyZW50X1ZpZXcgCUAxMzENCgkJCQlsb2NhdGlvbiAgIAkoMTA5OSwgNDg5KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkyNzINCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIitwcmltS2V5RmllbGQiDQoJCQkJcGN0RGlzdCAgICAJMC40NjIwNDYNCgkJCQloZWlnaHQgICAgIAkzOQ0KCQkJCW9yaWVudGF0aW9uIAkwKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjNGQTY5NThCMDAwOCINCgkJCSAgICBjbGllbnQgICAgIAlAMTMwDQoJCQkgICAgc3VwcGxpZXIgICAJQDExNQ0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSg5MzksIDUyNykNCgkJCQkoMTI4OCwgNTI3KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5MzksIDUyNykNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI4OCwgNTI3KQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEzMw0KCQkJCVBhcmVudF9WaWV3IAlAMTMxDQoJCQkJbG9jYXRpb24gICAJKDEyMjgsIDU2NykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjAuLjEiDQoJCQkJcGN0RGlzdCAgICAJMC44MzE2ODMNCgkJCQloZWlnaHQgICAgIAk0MA0KCQkJCW9yaWVudGF0aW9uIAkxKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgImVudGl0eSIgQDEzNA0KCQkJICAgIFBhcmVudF9WaWV3IAlAMTMwDQoJCQkgICAgbG9jYXRpb24gICAJKDQ5MiwgMzUxKQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiM0ZBNjk1OEIwMDEyIg0KCQkJICAgIGNsaWVudCAgICAgCUAxMzANCgkJCSAgICBzdXBwbGllciAgIAlAMTIzDQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDkzOSwgNTI3KQ0KCQkJCSg4MjUsIDUyNykNCgkJCQkoODI1LCAyOTEpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkzOSwgNTI3KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4MjUsIDI5MSkpKSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDE4IiBAMTM1DQoJCSAgICBsb2NhdGlvbiAgIAkoODQ0LCA2MzIpDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBxdWlkdSAgICAgIAkiMzk4ODMyM0IwMzU1Ig0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJrZXlBdHRyaWJ1dGVzIiBAMTM2DQoJCQkgICAgUGFyZW50X1ZpZXcgCUAxMzUNCgkJCSAgICBsb2NhdGlvbiAgIAkoNDkyLCA0MDgpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxMzcNCgkJCQlQYXJlbnRfVmlldyAJQDEzNg0KCQkJCWxvY2F0aW9uICAgCSgxMTAwLCA2MDIpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTMxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK2tleUF0dHJpYnV0ZXMiDQoJCQkJcGN0RGlzdCAgICAJMC41NzkwNzANCgkJCQloZWlnaHQgICAgIAkzMQ0KCQkJCW9yaWVudGF0aW9uIAkwKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5ODgzMjNEMDI1RSINCgkJCSAgICBjbGllbnQgICAgIAlAMTM1DQoJCQkgICAgc3VwcGxpZXIgICAJQDExNQ0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSg4NDQsIDYzMikNCgkJCQkoMTI4OCwgNjMyKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4NDQsIDYzMikNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI4OCwgNjMyKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDEzOA0KCQkJCVBhcmVudF9WaWV3IAlAMTM2DQoJCQkJbG9jYXRpb24gICAJKDEyMzYsIDY2MykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjAuLm4iDQoJCQkJcGN0RGlzdCAgICAJMC44ODU5NDINCgkJCQloZWlnaHQgICAgIAkzMQ0KCQkJCW9yaWVudGF0aW9uIAkxKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgImVudGl0eSIgQDEzOQ0KCQkJICAgIFBhcmVudF9WaWV3IAlAMTM1DQoJCQkgICAgbG9jYXRpb24gICAJKDQ5MiwgNDA4KQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzk4ODMyM0QwMjdDIg0KCQkJICAgIGNsaWVudCAgICAgCUAxMzUNCgkJCSAgICBzdXBwbGllciAgIAlAMTIzDQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDg0NCwgNjMyKQ0KCQkJCSg3NDAsIDYzMikNCgkJCQkoNzQwLCAyOTEpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDg0NCwgNjMyKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg3NDAsIDI5MSkpKSkpKQ0KCShvYmplY3QgQ2xhc3NEaWFncmFtICJBc3NlbWJseSINCgkgICAgcXVpZCAgICAgICAJIjM3ODBFMjhFMDFCMSINCgkgICAgdGl0bGUgICAgICAJIkFzc2VtYmx5Ig0KCSAgICBkb2N1bWVudGF0aW9uIAkNCnxJIGtlcHQgdGhpcyBwb3J0aW9uIG9mIHRoZSBtb2RlbCBzZXBhcmF0ZSB0byByZWZsZWN0IHRoZSBzcGVjLiAgSXQgbWlnaHQgYmUgZWFzaWVyIHRvIHdvcmsgd2l0aCBpZiB3ZSBpbnRlZ3JhdGVkIGl0IG1vcmUgY2xvc2VseSB3aXRoIHRoZSBiZWFucyB3ZSBhcmUgYXNzZW1ibGluZy4gIE9uIHRoZSBvdGhlciBoYW5kLCB0aGlzIHNlcGFyYXRpb24gc3VwcG9ydHMgc3BsaXR0aW5nIHRoZSBjcmVhdGlvbiBhbmQgYXNzZW1ibHkgcm9sZXMuDQp8DQp8QW4gYXNzZW1ibHkgZGVzY3JpcHRvciBiYXNpY2FsbHkgY29udGFpbnMgbWV0aG9kIHBlcm1pc3Npb25zIGFuZCAiQ29udGFpbmVyIFRyYW5zYWN0aW9ucyIuICANCnwNCnxJbiBvcmRlciB0byBzdXBwb3J0IHRoZSBmdWxsIHBvd2VyIG9mIHRoZSBtZXRob2QgZWxlbWVudCBpbiB0aGUgWE1MIERELCB3ZSBuZWVkIHRvIGhvbGQgdGhlc2UgbWV0aG9kIGVsZW1lbnRzLiAgVGhlIGFjdHVhbCBtZXRob2RzIHdpbGwgYmUgZGVyaXZlZC4gIEtlZXBpbmcgd2l0aCB0aGUgbWV0aG9kIGVsZW1lbnQsIGFsbCBtZXRob2Qgd2lsbCBiZSBkZXNpZ25hdGVkIGJ5IHRoZSBuYW1lICIqIi4NCnwNCnxUaGUgbWV0aG9kcyByZWxhdGlvbnNoaXAgZnJvbSBNZXRob2RQZXJtaXNzaW9uIGFuZCBNZXRob2RUcmFuc2FjdGlvbiB3aWxsIGJlIGRlcml2ZWQgaW4gaGVscGVyIG1ldGhvZHMuDQp8DQp8DQoJICAgIA0KCSAgICB6b29tICAgICAgIAk4Nw0KCSAgICBtYXhfaGVpZ2h0IAkyODM1MA0KCSAgICBtYXhfd2lkdGggIAkyMTYwMA0KCSAgICBvcmlnaW5feCAgIAkwDQoJICAgIG9yaWdpbl95ICAgCTE4MzQNCgkgICAgaXRlbXMgICAgICAJKGxpc3QgZGlhZ3JhbV9pdGVtX2xpc3QNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OlRyYW5zYWN0aW9uQXR0cmlidXRlVHlwZSIgQDE0MA0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSgyMTQ3LCAyMDE5KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAxNDANCgkJCWxvY2F0aW9uICAgCSgxODY2LCAxODE5KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTU2Mg0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIlRyYW5zYWN0aW9uQXR0cmlidXRlVHlwZSIpDQoJCSAgICBzdGVyZW90eXBlIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAxNDANCgkJCWxvY2F0aW9uICAgCSgxODY2LCAxNzY5KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCWFuY2hvciAgICAgCTEwDQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAk1NjINCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSI8PGVudW1lcmF0aW9uPj4iKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkgICAgcXVpZHUgICAgICAJIjM3OUY2MzQ1MDNDMCINCgkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQoJCQlQYXJlbnRfVmlldyAJQDE0MA0KCQkJbG9jYXRpb24gICAJKDE4NjYsIDE4ODQpDQoJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJaWNvbl9zdHlsZSAJIkljb24iDQoJCQlmaWxsX2NvbG9yIAkxNjc3NzIxNQ0KCQkJYW5jaG9yICAgICAJMg0KCQkJbmxpbmVzICAgICAJNw0KCQkJbWF4X3dpZHRoICAJMjU2KQ0KCQkgICAgd2lkdGggICAgICAJNTgwDQoJCSAgICBoZWlnaHQgICAgIAk1MjQNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6ZWpiOjpNZXRob2RFbGVtZW50S2luZCIgQDE0MQ0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSgxMjM5LCAyNDQ1KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAxNDENCgkJCWxvY2F0aW9uICAgCSgxMDAzLCAyMjQ1KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTQ3Mg0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIk1ldGhvZEVsZW1lbnRLaW5kIikNCgkJICAgIHN0ZXJlb3R5cGUgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDE0MQ0KCQkJbG9jYXRpb24gICAJKDEwMDMsIDIxOTUpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJYW5jaG9yICAgICAJMTANCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTQ3Mg0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIjw8ZW51bWVyYXRpb24+PiIpDQoJCSAgICBpY29uX3N0eWxlIAkiTGFiZWwiDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkgICAgcXVpZHUgICAgICAJIjM5MkVEMkU3MDI0MCINCgkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQoJCQlQYXJlbnRfVmlldyAJQDE0MQ0KCQkJbG9jYXRpb24gICAJKDEwMDMsIDIzMTApDQoJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJaWNvbl9zdHlsZSAJIkljb24iDQoJCQlmaWxsX2NvbG9yIAkxNjc3NzIxNQ0KCQkJYW5jaG9yICAgICAJMg0KCQkJbmxpbmVzICAgICAJNw0KCQkJbWF4X3dpZHRoICAJMzAwKQ0KCQkgICAgd2lkdGggICAgICAJNDkwDQoJCSAgICBoZWlnaHQgICAgIAk1MjQNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgTm90ZVZpZXcgQDE0Mg0KCQkgICAgbG9jYXRpb24gICAJKDM0MDcsIDgwOCkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMTQyDQoJCQlsb2NhdGlvbiAgIAkoMzExNywgNzI4KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTMNCgkJCW1heF93aWR0aCAgCTU0NA0KCQkJbGFiZWwgICAgICAJIlRoaXMgaXMgdGhlIGNvbnRhaW5lci10cmFuc2FjdGlvbiBlbGVtZW50IikNCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCSAgICB3aWR0aCAgICAgIAk2MDQNCgkJICAgIGhlaWdodCAgICAgCTE3MikNCgkJKG9iamVjdCBOb3RlVmlldyBAMTQzDQoJCSAgICBsb2NhdGlvbiAgIAkoNTk0LCAyMjY3KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAxNDMNCgkJCWxvY2F0aW9uICAgCSgyNDcsIDIxNzMpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJNA0KCQkJbWF4X3dpZHRoICAJNjU5DQoJCQlsYWJlbCAgICAgIAkiTG9jYWwsIExvY2FsSG9tZSBoYXZlIGJlZW4gYWRkZWQgZm9yIEVKQjIuMC4gIFRoZXNlIGNvcnJlc3BvbmQgdG8gdGhlIHZhbGlkIHZhbHVlcyBmb3IgdGhlIG1ldGhvZEludGYgKG1ldGhvZFR5cGUpIGZpZWxkLiIpDQoJCSAgICBsaW5lX2NvbG9yIAkxNjM4NA0KCQkgICAgZmlsbF9jb2xvciAJMTM0MzQ4MzMNCgkJICAgIHdpZHRoICAgICAgCTcxOQ0KCQkgICAgaGVpZ2h0ICAgICAJMjAxKQ0KCQkob2JqZWN0IEF0dGFjaFZpZXcgIiIgQDE0NA0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMTYzODQNCgkJICAgIGNsaWVudCAgICAgCUAxNDMNCgkJICAgIHN1cHBsaWVyICAgCUAxNDENCgkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJKDk1MywgMjMzNSkNCgkJCSg5OTQsIDIzMzUpKQ0KCQkgICAgbGluZV9zdHlsZSAJMw0KCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5NTMsIDIzMzUpDQoJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoOTk0LCAyMzM1KSkNCgkJKG9iamVjdCBOb3RlVmlldyBAMTQ1DQoJCSAgICBsb2NhdGlvbiAgIAkoNjc1LCAxOTc2KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAxNDUNCgkJCWxvY2F0aW9uICAgCSg0MjUsIDE5MTQpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMg0KCQkJbWF4X3dpZHRoICAJNDY0DQoJCQlsYWJlbCAgICAgIAkiRUpCMi4wIHBmZCAyIGFkZGVkIHVuY2hlY2tlZCBhdHRyaWJ1dGUuIikNCgkJICAgIGxpbmVfY29sb3IgCTMyNzY4DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDgzMw0KCQkgICAgd2lkdGggICAgICAJNTI0DQoJCSAgICBoZWlnaHQgICAgIAkxMzcpDQoJCShvYmplY3QgTm90ZVZpZXcgQDE0Ng0KCQkgICAgbG9jYXRpb24gICAJKDQzMSwgMjYyNikNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMTQ2DQoJCQlsb2NhdGlvbiAgIAkoMTQxLCAyNTAzKQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTUNCgkJCW1heF93aWR0aCAgCTU0NA0KCQkJbGFiZWwgICAgICAJDQp8QHNpbmNlIEoyRUUxLjQgDQp8DQp8QWRkZWQgU2VydmljZUVuZHBvaW50DQoJCQkpDQoJCSAgICBsaW5lX2NvbG9yIAkxMDk0OTU1OQ0KCQkgICAgZmlsbF9jb2xvciAJMTU3NzgwNDINCgkJICAgIHdpZHRoICAgICAgCTYwNA0KCQkgICAgaGVpZ2h0ICAgICAJMjU4KQ0KCQkob2JqZWN0IEF0dGFjaFZpZXcgIiIgQDE0Nw0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgY2xpZW50ICAgICAJQDE0Ng0KCQkgICAgc3VwcGxpZXIgICAJQDE0MQ0KCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkoNzMzLCAyNTU3KQ0KCQkJKDk5MywgMjQ5OCkpDQoJCSAgICBsaW5lX3N0eWxlIAkwKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmNvbW1vbjo6RGVzY3JpcHRpb24iIEAxNDgNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMjA2LCAyMDgpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDE0OA0KCQkJbG9jYXRpb24gICAJKDM4LCA3NykNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAkzMzYNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJEZXNjcmlwdGlvbiIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTg0MjE1MDQNCgkJICAgIGZpbGxfY29sb3IgCTEyNjMyMjU2DQoJCSAgICBxdWlkdSAgICAgIAkiM0U0QTk4RDYwMkUwIg0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlAMTQ4DQoJCQlsb2NhdGlvbiAgIAkoMzgsIDE5NikNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkzDQoJCQltYXhfd2lkdGggIAkzMDgpDQoJCSAgICB3aWR0aCAgICAgIAkzNTQNCgkJICAgIGhlaWdodCAgICAgCTI4Ng0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3Ojpjb21tb246Ok1lc3NhZ2VEZXN0aW5hdGlvbiIgQDE0OQ0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSgyOTQ1LCA0MjQpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDE0OQ0KCQkJbG9jYXRpb24gICAJKDI3MzksIDMxNykNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAk0MTINCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJNZXNzYWdlRGVzdGluYXRpb24iKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAk4NDIxNTA0DQoJCSAgICBmaWxsX2NvbG9yIAkxMjYzMjI1Ng0KCQkgICAgcXVpZHUgICAgICAJIjNFNEMyMTEwMDFDRiINCgkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQoJCQlQYXJlbnRfVmlldyAJQDE0OQ0KCQkJbG9jYXRpb24gICAJKDI3MzksIDQzNikNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAkzMTkpDQoJCSAgICB3aWR0aCAgICAgIAk0MzANCgkJICAgIGhlaWdodCAgICAgCTIzOA0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3Ojpjb21tb246OlNlY3VyaXR5Um9sZSIgQDE1MA0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIFN1cHByZXNzQXR0cmlidXRlIAlUUlVFDQoJCSAgICBTdXBwcmVzc09wZXJhdGlvbiAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDEwMjgsIDc4NykNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMTUwDQoJCQlsb2NhdGlvbiAgIAkoODYwLCA3MzMpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJMzM2DQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiU2VjdXJpdHlSb2xlIikNCgkJICAgIGljb25fc3R5bGUgCSJMYWJlbCINCgkJICAgIGxpbmVfY29sb3IgCTg0MjE1MDQNCgkJICAgIGZpbGxfY29sb3IgCTEyNjMyMjU2DQoJCSAgICBxdWlkdSAgICAgIAkiMzhDMDMxRkUwMTJEIg0KCQkgICAgd2lkdGggICAgICAJMzU0DQoJCSAgICBoZWlnaHQgICAgIAkxMzINCgkJICAgIGFubm90YXRpb24gCTgNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6ZWpiOjpFbnRlcnByaXNlQmVhbiIgQDE1MQ0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSgxNDcwLCA3NjcpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJVFJVRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMTUxDQoJCQlsb2NhdGlvbiAgIAkoMTM2MCwgNjkxKQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTINCgkJCW1heF93aWR0aCAgCTIyMA0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIkVudGVycHJpc2VCZWFuIikNCgkJICAgIGljb25fc3R5bGUgCSJMYWJlbCINCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEU3MUEwMTBBIg0KCQkgICAgd2lkdGggICAgICAJMjM4DQoJCSAgICBoZWlnaHQgICAgIAkxNzYNCgkJICAgIGFubm90YXRpb24gCTgNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6ZWpiOjpNZXRob2RQZXJtaXNzaW9uIiBAMTUyDQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDQ2NywgMTEyMikNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMTUyDQoJCQlsb2NhdGlvbiAgIAkoMjU2LCA5OTQpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMg0KCQkJbWF4X3dpZHRoICAJNDIyDQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiTWV0aG9kUGVybWlzc2lvbiIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEUzNTAwMEQwIg0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlAMTUyDQoJCQlsb2NhdGlvbiAgIAkoMjU2LCAxMDU5KQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCWljb25fc3R5bGUgCSJJY29uIg0KCQkJZmlsbF9jb2xvciAJMTY3NzcyMTUNCgkJCWFuY2hvciAgICAgCTINCgkJCW5saW5lcyAgICAgCTMNCgkJCW1heF93aWR0aCAgCTQ2NykNCgkJICAgIHdpZHRoICAgICAgCTQ0MA0KCQkgICAgaGVpZ2h0ICAgICAJMjgwDQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IEF0dGFjaFZpZXcgIiIgQDE1Mw0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMzI3NjgNCgkJICAgIGNsaWVudCAgICAgCUAxNDUNCgkJICAgIHN1cHBsaWVyICAgCUAxNTINCgkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJKDUzNSwgMTkwNykNCgkJCSg1MzUsIDEyNjIpKQ0KCQkgICAgbGluZV9zdHlsZSAJMw0KCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1MzUsIDE5MDcpDQoJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTM1LCAxMjYyKSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDYiIEAxNTQNCgkJICAgIGxvY2F0aW9uICAgCSg2NDAsIDg0MikNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIHF1aWR1ICAgICAgCSIzOTJFRDE4OTAwRkMiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgInJvbGVzIiBAMTU1DQoJCQkgICAgUGFyZW50X1ZpZXcgCUAxNTQNCgkJCSAgICBsb2NhdGlvbiAgIAkoMzIwLCAzMzApDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNTYNCgkJCQlQYXJlbnRfVmlldyAJQDE1NQ0KCQkJCWxvY2F0aW9uICAgCSg3NDUsIDg3OSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTU5DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrcm9sZXMiDQoJCQkJcGN0RGlzdCAgICAJMC41MDAwMDANCgkJCQloZWlnaHQgICAgIAkzNw0KCQkJCW9yaWVudGF0aW9uIAkxKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5MkVEMThBMDI4RSINCgkJCSAgICBjbGllbnQgICAgIAlAMTU0DQoJCQkgICAgc3VwcGxpZXIgICAJQDE1MA0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSg2NDAsIDg0MikNCgkJCQkoODUxLCA4NDIpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY0MCwgODQyKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4NTEsIDg0MikNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNTcNCgkJCQlQYXJlbnRfVmlldyAJQDE1NQ0KCQkJCWxvY2F0aW9uICAgCSg3NzAsIDgwNSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjEuLm4iDQoJCQkJcGN0RGlzdCAgICAJMC42MjA2OTANCgkJCQloZWlnaHQgICAgIAkzOA0KCQkJCW9yaWVudGF0aW9uIAkwKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDciIEAxNTgNCgkJCSAgICBQYXJlbnRfVmlldyAJQDE1NA0KCQkJICAgIGxvY2F0aW9uICAgCSgzMjAsIDMzMCkNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE1OQ0KCQkJCVBhcmVudF9WaWV3IAlAMTU4DQoJCQkJbG9jYXRpb24gICAJKDUyOCwgOTM5KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQloaWRkZW4gICAgIAlUUlVFDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJNjANCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIiINCgkJCQlwY3REaXN0ICAgIAkwLjgwMDAwMA0KCQkJCWhlaWdodCAgICAgCTQyDQoJCQkJb3JpZW50YXRpb24gCTEpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzkyRUQxOEEwMkQ0Ig0KCQkJICAgIGNsaWVudCAgICAgCUAxNTQNCgkJCSAgICBzdXBwbGllciAgIAlAMTUyDQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDY0MCwgODQyKQ0KCQkJCSg1NjksIDg0MikNCgkJCQkoNTY5LCA5ODIpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY0MCwgODQyKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1NjksIDk4MikpKSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDc1IiBAMTYwDQoJCSAgICBsb2NhdGlvbiAgIAkoNjgsIDgyOCkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMTA5NDk1NTkNCgkJICAgIHF1aWR1ICAgICAgCSIzRTREMjZCQjAwRkEiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgImRlc2NyaXB0aW9ucyIgQDE2MQ0KCQkJICAgIFBhcmVudF9WaWV3IAlAMTYwDQoJCQkgICAgbG9jYXRpb24gICAJKC0zOTksIC0yOTQpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNjINCgkJCQlQYXJlbnRfVmlldyAJQDE2MQ0KCQkJCWxvY2F0aW9uICAgCSgyMTUsIDM5MSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMjc5DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrZGVzY3JpcHRpb25zIg0KCQkJCXBjdERpc3QgICAgCTAuOTE3MTg0DQoJCQkJaGVpZ2h0ICAgICAJMTQ3DQoJCQkJb3JpZW50YXRpb24gCTEpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiM0U0RDI2QkMwMkYwIg0KCQkJICAgIGNsaWVudCAgICAgCUAxNjANCgkJCSAgICBzdXBwbGllciAgIAlAMTQ4DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDY4LCA4MjgpDQoJCQkJKDY4LCAzNTEpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY4LCA4MjgpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY4LCAzNTEpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTYzDQoJCQkJUGFyZW50X1ZpZXcgCUAxNjENCgkJCQlsb2NhdGlvbiAgIAkoMTM0LCA0NDMpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTINCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTE1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIwLi5uIg0KCQkJCXBjdERpc3QgICAgCTAuODA3NDUzDQoJCQkJaGVpZ2h0ICAgICAJNjYNCgkJCQlvcmllbnRhdGlvbiAJMSkpDQoJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ3NiIgQDE2NA0KCQkJICAgIFBhcmVudF9WaWV3IAlAMTYwDQoJCQkgICAgbG9jYXRpb24gICAJKC0zOTksIC0yOTQpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiM0U0RDI2QkMwMzE4Ig0KCQkJICAgIGNsaWVudCAgICAgCUAxNjANCgkJCSAgICBzdXBwbGllciAgIAlAMTUyDQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDY4LCA4MjgpDQoJCQkJKDY4LCAxMTI3KQ0KCQkJCSgyNDcsIDExMjcpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY4LCA4MjgpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI0NywgMTEyNykpKSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OkV4Y2x1ZGVMaXN0IiBAMTY1DQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDE5NDAsIDY1OSkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMTY1DQoJCQlsb2NhdGlvbiAgIAkoMTc0OCwgNTU1KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTINCgkJCW1heF93aWR0aCAgCTM4NA0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIkV4Y2x1ZGVMaXN0IikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMzI3NjgNCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODMzDQoJCSAgICBxdWlkdSAgICAgIAkiMzk5NzIxNkUwMTQ3Ig0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlAMTY1DQoJCQlsb2NhdGlvbiAgIAkoMTc0OCwgNjIwKQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCWljb25fc3R5bGUgCSJJY29uIg0KCQkJZmlsbF9jb2xvciAJMTY3NzcyMTUNCgkJCWFuY2hvciAgICAgCTINCgkJCW5saW5lcyAgICAgCTINCgkJCW1heF93aWR0aCAgCTQyMykNCgkJICAgIHdpZHRoICAgICAgCTQwMg0KCQkgICAgaGVpZ2h0ICAgICAJMjMyDQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmphdmE6Ok1ldGhvZCIgQDE2Ng0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIFN1cHByZXNzQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMTMyOSwgMTgyNikNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMTY2DQoJCQlsb2NhdGlvbiAgIAkoMTAzNCwgMTU1MSkNCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTU5MA0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIk1ldGhvZCIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCSAgICBxdWlkdSAgICAgIAkiMzY1NEFFOTEwMjcxIg0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlAMTY2DQoJCQlsb2NhdGlvbiAgIAkoMTAzNCwgMTY3MCkNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWFuY2hvciAgICAgCTINCgkJCW5saW5lcyAgICAgCTkNCgkJCW1heF93aWR0aCAgCTY0NikNCgkJICAgIHdpZHRoICAgICAgCTYwOA0KCQkgICAgaGVpZ2h0ICAgICAJNTc0DQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiTWV0aG9kUGVybWlzc2lvblRvTWV0aG9kcyIgQDE2Nw0KCQkgICAgbG9jYXRpb24gICAJKDYyNCwgMTYxMikNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTM1MDAwRUEiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgIi9tZXRob2RzIiBAMTY4DQoJCQkgICAgUGFyZW50X1ZpZXcgCUAxNjcNCgkJCSAgICBsb2NhdGlvbiAgIAkoMjk5LCAxMTcyKQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTY5DQoJCQkJUGFyZW50X1ZpZXcgCUAxNjgNCgkJCQlsb2NhdGlvbiAgIAkoNzYxLCAxNTY4KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkyNTYNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIisvbWV0aG9kcyINCgkJCQlwY3REaXN0ICAgIAkwLjM0MjEwNQ0KCQkJCWhlaWdodCAgICAgCTQ1DQoJCQkJb3JpZW50YXRpb24gCTApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzc4MEUzNTAwMEVCIg0KCQkJICAgIGNsaWVudCAgICAgCUAxNjcNCgkJCSAgICBzdXBwbGllciAgIAlAMTY2DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDYyNCwgMTYxMikNCgkJCQkoMTAyNSwgMTYxMikpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjI0LCAxNjEyKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMDI1LCAxNjEyKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE3MA0KCQkJCVBhcmVudF9WaWV3IAlAMTY4DQoJCQkJbG9jYXRpb24gICAJKDk1MywgMTY3MCkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJNzANCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjEuLm4iDQoJCQkJcGN0RGlzdCAgICAJMC44MjI2ODANCgkJCQloZWlnaHQgICAgIAk1OA0KCQkJCW9yaWVudGF0aW9uIAkxKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgIi9tZXRob2RQZXJtaXNzaW9uIiBAMTcxDQoJCQkgICAgUGFyZW50X1ZpZXcgCUAxNjcNCgkJCSAgICBsb2NhdGlvbiAgIAkoMjk5LCAxMTcyKQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzc4MEUzNTAwMEVDIg0KCQkJICAgIGNsaWVudCAgICAgCUAxNjcNCgkJCSAgICBzdXBwbGllciAgIAlAMTUyDQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDYyNCwgMTYxMikNCgkJCQkoNTY0LCAxNjEyKQ0KCQkJCSg1NjQsIDEyNjIpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDYyNCwgMTYxMikNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTY0LCAxMjYyKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE3Mg0KCQkJCVBhcmVudF9WaWV3IAlAMTcxDQoJCQkJbG9jYXRpb24gICAJKDUyOCwgMTMzMykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJNzANCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjAuLm4iDQoJCQkJcGN0RGlzdCAgICAJMC44MjY5MjMNCgkJCQloZWlnaHQgICAgIAkzNw0KCQkJCW9yaWVudGF0aW9uIAkwKSkpKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmVqYjo6QXNzZW1ibHlEZXNjcmlwdG9yIiBAMTczDQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDExNzIsIDQxOSkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMTczDQoJCQlsb2NhdGlvbiAgIAkoOTcxLCAzNjgpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJNDAyDQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiQXNzZW1ibHlEZXNjcmlwdG9yIikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTM1MDAwRDQiDQoJCSAgICB3aWR0aCAgICAgIAk0MjANCgkJICAgIGhlaWdodCAgICAgCTEyNg0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDUwIiBAMTc0DQoJCSAgICBsb2NhdGlvbiAgIAkoMjA1NiwgMzgxKQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkxMDk0OTU1OQ0KCQkgICAgcXVpZHUgICAgICAJIjNFNEQxQkY0MDJFNyINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAibWVzc2FnZURlc3RpbmF0aW9ucyIgQDE3NQ0KCQkJICAgIFBhcmVudF9WaWV3IAlAMTc0DQoJCQkgICAgbG9jYXRpb24gICAJKDEwNDgsIDI1MykNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE3Ng0KCQkJCVBhcmVudF9WaWV3IAlAMTc1DQoJCQkJbG9jYXRpb24gICAJKDI1MjMsIDMzNykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJNDY4DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrbWVzc2FnZURlc3RpbmF0aW9ucyINCgkJCQlwY3REaXN0ICAgIAkwLjY5Mjc2Mg0KCQkJCWhlaWdodCAgICAgCTQ1DQoJCQkJb3JpZW50YXRpb24gCTApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiM0U0RDFCRjYwMEI5Ig0KCQkJICAgIGNsaWVudCAgICAgCUAxNzQNCgkJCSAgICBzdXBwbGllciAgIAlAMTQ5DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDIwNTYsIDM4MSkNCgkJCQkoMjczMCwgMzgxKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMDU2LCAzODEpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI3MzAsIDM4MSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxNzcNCgkJCQlQYXJlbnRfVmlldyAJQDE3NQ0KCQkJCWxvY2F0aW9uICAgCSgyNjYyLCA0MzUpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTINCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTE1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIwLi5uIg0KCQkJCXBjdERpc3QgICAgCTAuOTAwMDAwDQoJCQkJaGVpZ2h0ICAgICAJNTQNCgkJCQlvcmllbnRhdGlvbiAJMSkpDQoJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ1MSIgQDE3OA0KCQkJICAgIFBhcmVudF9WaWV3IAlAMTc0DQoJCQkgICAgbG9jYXRpb24gICAJKDEwNDgsIDI1MykNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzRTREMUJGNjAwQzMiDQoJCQkgICAgY2xpZW50ICAgICAJQDE3NA0KCQkJICAgIHN1cHBsaWVyICAgCUAxNzMNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMjA1NiwgMzgxKQ0KCQkJCSgxMzgyLCAzODEpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIwNTYsIDM4MSkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM4MiwgMzgxKSkpKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMTMiIEAxNzkNCgkJICAgIGxvY2F0aW9uICAgCSgxMTE2LCA2MDEpDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBxdWlkdSAgICAgIAkiMzkzRUJGQzUwMEI0Ig0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJzZWN1cml0eVJvbGVzIiBAMTgwDQoJCQkgICAgUGFyZW50X1ZpZXcgCUAxNzkNCgkJCSAgICBsb2NhdGlvbiAgIAkoMTA4LCA0NzMpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODENCgkJCQlQYXJlbnRfVmlldyAJQDE4MA0KCQkJCWxvY2F0aW9uICAgCSg5NjksIDY3NSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMzY0DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrc2VjdXJpdHlSb2xlcyINCgkJCQlwY3REaXN0ICAgIAkwLjYxNzI4NA0KCQkJCWhlaWdodCAgICAgCTE0OA0KCQkJCW9yaWVudGF0aW9uIAkxKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5M0VCRkM2MDA4MyINCgkJCSAgICBjbGllbnQgICAgIAlAMTc5DQoJCQkgICAgc3VwcGxpZXIgICAJQDE1MA0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxMTE2LCA2MDEpDQoJCQkJKDExMTYsIDcyMSkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTExNiwgNjAxKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTE2LCA3MjEpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTgyDQoJCQkJUGFyZW50X1ZpZXcgCUAxODANCgkJCQlsb2NhdGlvbiAgIAkoMTE3NSwgNjg0KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMC4ubiINCgkJCQlwY3REaXN0ICAgIAkwLjcwMzcwNA0KCQkJCWhlaWdodCAgICAgCTU5DQoJCQkJb3JpZW50YXRpb24gCTApKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMTQiIEAxODMNCgkJCSAgICBQYXJlbnRfVmlldyAJQDE3OQ0KCQkJICAgIGxvY2F0aW9uICAgCSgxMDgsIDQ3MykNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE4NA0KCQkJCVBhcmVudF9WaWV3IAlAMTgzDQoJCQkJbG9jYXRpb24gICAJKDEwNzUsIDUwNikNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJaGlkZGVuICAgICAJVFJVRQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTYwDQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIiDQoJCQkJcGN0RGlzdCAgICAJMC44MDAwMDANCgkJCQloZWlnaHQgICAgIAk0Mg0KCQkJCW9yaWVudGF0aW9uIAkwKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5M0VCRkM2MDBDMCINCgkJCSAgICBjbGllbnQgICAgIAlAMTc5DQoJCQkgICAgc3VwcGxpZXIgICAJQDE3Mw0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxMTE2LCA2MDEpDQoJCQkJKDExMTYsIDQ4MikpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTExNiwgNjAxKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTE2LCA0ODIpKSkpDQoJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICJBc3NlbWJseURlc2NyaXB0b3JUb01ldGhvZFBlcm1pc3Npb25zIiBAMTg1DQoJCSAgICBsb2NhdGlvbiAgIAkoMzk5LCA0NTEpDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEUzNTAwMEQxIg0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJhc3NlbWJseURlc2NyaXB0b3IiIEAxODYNCgkJCSAgICBQYXJlbnRfVmlldyAJQDE4NQ0KCQkJICAgIGxvY2F0aW9uICAgCSg3NCwgMTEpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxODcNCgkJCQlQYXJlbnRfVmlldyAJQDE4Ng0KCQkJCWxvY2F0aW9uICAgCSg2MzIsIDM0OCkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJNTEyDQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrYXNzZW1ibHlEZXNjcmlwdG9yIg0KCQkJCXBjdERpc3QgICAgCTAuNDcxNTY0DQoJCQkJaGVpZ2h0ICAgICAJNDQNCgkJCQlvcmllbnRhdGlvbiAJMCkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTM1MDAwRDIiDQoJCQkgICAgY2xpZW50ICAgICAJQDE4NQ0KCQkJICAgIHN1cHBsaWVyICAgCUAxNzMNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMzk5LCA0NTEpDQoJCQkJKDM5OSwgMzkxKQ0KCQkJCSg5NjIsIDM5MSkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzk5LCA0NTEpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDk2MiwgMzkxKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDE4OA0KCQkJCVBhcmVudF9WaWV3IAlAMTg2DQoJCQkJbG9jYXRpb24gICAJKDg5OSwgNDQ1KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAk3Mg0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMSINCgkJCQlwY3REaXN0ICAgIAkwLjkwMDAwMA0KCQkJCWhlaWdodCAgICAgCTU0DQoJCQkJb3JpZW50YXRpb24gCTEpKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAibWV0aG9kUGVybWlzc2lvbnMiIEAxODkNCgkJCSAgICBQYXJlbnRfVmlldyAJQDE4NQ0KCQkJICAgIGxvY2F0aW9uICAgCSg3NCwgMTEpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxOTANCgkJCQlQYXJlbnRfVmlldyAJQDE4OQ0KCQkJCWxvY2F0aW9uICAgCSgzODgsIDkwNykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJNTA4DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrbWV0aG9kUGVybWlzc2lvbnMiDQoJCQkJcGN0RGlzdCAgICAJMC44NTkxNTUNCgkJCQloZWlnaHQgICAgIAkxMg0KCQkJCW9yaWVudGF0aW9uIAkxKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM3ODBFMzUwMDBEMyINCgkJCSAgICBjbGllbnQgICAgIAlAMTg1DQoJCQkgICAgc3VwcGxpZXIgICAJQDE1Mg0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgzOTksIDQ1MSkNCgkJCQkoMzk5LCA5ODIpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDM5OSwgNDUxKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzOTksIDk4MikNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxOTENCgkJCQlQYXJlbnRfVmlldyAJQDE4OQ0KCQkJCWxvY2F0aW9uICAgCSg0NTMsIDk0NCkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJNzANCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjAuLm4iDQoJCQkJcGN0RGlzdCAgICAJMC45Mjk1NzcNCgkJCQloZWlnaHQgICAgIAk1NA0KCQkJCW9yaWVudGF0aW9uIAkwKSkpKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDAiIEAxOTINCgkJICAgIGxvY2F0aW9uICAgCSgxNDk4LCA1ODkpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTMyNzY4DQoJCSAgICBxdWlkdSAgICAgIAkiMzk5NzIxQjYwMkY5Ig0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJleGNsdWRlTGlzdCIgQDE5Mw0KCQkJICAgIFBhcmVudF9WaWV3IAlAMTkyDQoJCQkgICAgbG9jYXRpb24gICAJKDQ5MCwgNDYxKQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMTk0DQoJCQkJUGFyZW50X1ZpZXcgCUAxOTMNCgkJCQlsb2NhdGlvbiAgIAkoMTYyNiwgNTQ4KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkzMTANCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIitleGNsdWRlTGlzdCINCgkJCQlwY3REaXN0ICAgIAkwLjUzMDEyMA0KCQkJCWhlaWdodCAgICAgCTQyDQoJCQkJb3JpZW50YXRpb24gCTApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzk5NzIxQjcwMjNDIg0KCQkJICAgIGNsaWVudCAgICAgCUAxOTINCgkJCSAgICBzdXBwbGllciAgIAlAMTY1DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDE0OTgsIDU4OSkNCgkJCQkoMTczOSwgNTg5KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDk4LCA1ODkpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE3MzksIDU4OSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAxOTUNCgkJCQlQYXJlbnRfVmlldyAJQDE5Mw0KCQkJCWxvY2F0aW9uICAgCSgxNjgzLCA2MjkpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTINCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTE1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIwLi4xIg0KCQkJCXBjdERpc3QgICAgCTAuNzY3MDY4DQoJCQkJaGVpZ2h0ICAgICAJNDANCgkJCQlvcmllbnRhdGlvbiAJMSkpDQoJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ0MSIgQDE5Ng0KCQkJICAgIFBhcmVudF9WaWV3IAlAMTkyDQoJCQkgICAgbG9jYXRpb24gICAJKDQ5MCwgNDYxKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5OTcyMUI3MDI0NiINCgkJCSAgICBjbGllbnQgICAgIAlAMTkyDQoJCQkgICAgc3VwcGxpZXIgICAJQDE3Mw0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxNDk4LCA1ODkpDQoJCQkJKDEzNjQsIDU4OSkNCgkJCQkoMTM2NCwgNDgyKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNDk4LCA1ODkpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzNjQsIDQ4MikpKSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6Ok1ldGhvZEVsZW1lbnQiIEAxOTcNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMTI3MCwgMTIyMykNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMTk3DQoJCQlsb2NhdGlvbiAgIAkoMTAwOCwgMTA3MikNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAk1MjQNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJNZXRob2RFbGVtZW50IikNCgkJICAgIGljb25fc3R5bGUgCSJMYWJlbCINCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCSAgICBxdWlkdSAgICAgIAkiMzkyRUQyMkQwMDhBIg0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlAMTk3DQoJCQlsb2NhdGlvbiAgIAkoMTAwOCwgMTEzNykNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAk1DQoJCQltYXhfd2lkdGggIAk1NjcpDQoJCSAgICB3aWR0aCAgICAgIAk1NDINCgkJICAgIGhlaWdodCAgICAgCTMyNg0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDEyIiBAMTk4DQoJCSAgICBsb2NhdGlvbiAgIAkoMTM1NiwgOTU3KQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgcXVpZHUgICAgICAJIjM5MzdENkZGMDExRCINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAiZW50ZXJwcmlzZUJlYW4iIEAxOTkNCgkJCSAgICBQYXJlbnRfVmlldyAJQDE5OA0KCQkJICAgIGxvY2F0aW9uICAgCSgtNDY4LCA0ODApDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOTM3RDcwMDAxNzgiDQoJCQkgICAgY2xpZW50ICAgICAJQDE5OA0KCQkJICAgIHN1cHBsaWVyICAgCUAxNTENCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMTM1NiwgOTU3KQ0KCQkJCSgxMzU2LCA4NTUpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEzNTYsIDk1NykNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM1NiwgODU1KQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIwMA0KCQkJCVBhcmVudF9WaWV3IAlAMTk5DQoJCQkJbG9jYXRpb24gICAJKDEzOTYsIDg5MSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjEiDQoJCQkJcGN0RGlzdCAgICAJMC42NDg2NDkNCgkJCQloZWlnaHQgICAgIAk0MA0KCQkJCW9yaWVudGF0aW9uIAkxKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgIm1ldGhvZEVsZW1lbnQiIEAyMDENCgkJCSAgICBQYXJlbnRfVmlldyAJQDE5OA0KCQkJICAgIGxvY2F0aW9uICAgCSgtNDY4LCA0ODApDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOTM3RDcwMDAyMTgiDQoJCQkgICAgY2xpZW50ICAgICAJQDE5OA0KCQkJICAgIHN1cHBsaWVyICAgCUAxOTcNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMTM1NiwgOTU3KQ0KCQkJCSgxMzU2LCAxMDYwKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMzU2LCA5NTcpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDEzNTYsIDEwNjApDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjAyDQoJCQkJUGFyZW50X1ZpZXcgCUAyMDENCgkJCQlsb2NhdGlvbiAgIAkoMTQyOCwgMTAyNykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjAuLm4iDQoJCQkJcGN0RGlzdCAgICAJMC42OTMzMzMNCgkJCQloZWlnaHQgICAgIAk3Mg0KCQkJCW9yaWVudGF0aW9uIAkwKSkpKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkOCIgQDIwMw0KCQkgICAgbG9jYXRpb24gICAJKDkzNiwgMjQyOCkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIHF1aWR1ICAgICAgCSIzOTJFRDI4ODAwNzciDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgIm1ldGhvZEVsZW1lbnRzIiBAMjA0DQoJCQkgICAgUGFyZW50X1ZpZXcgCUAyMDMNCgkJCSAgICBsb2NhdGlvbiAgIAkoNjE2LCAxOTE2KQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjA1DQoJCQkJUGFyZW50X1ZpZXcgCUAyMDQNCgkJCQlsb2NhdGlvbiAgIAkoMTE5MSwgMjM4OSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJNDMzDQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrbWV0aG9kRWxlbWVudHMiDQoJCQkJcGN0RGlzdCAgICAJMC4xNzk2ODgNCgkJCQloZWlnaHQgICAgIAk0MA0KCQkJCW9yaWVudGF0aW9uIAkwKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5MkVEMjg5MDAxRSINCgkJCSAgICBjbGllbnQgICAgIAlAMjAzDQoJCQkgICAgc3VwcGxpZXIgICAJQDE5Nw0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSg5MzYsIDI0MjgpDQoJCQkJKDEzMTEsIDI0MjgpDQoJCQkJKDEzMTEsIDEzODYpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDkzNiwgMjQyOCkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTMxMSwgMTM4NikNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMDYNCgkJCQlQYXJlbnRfVmlldyAJQDIwNA0KCQkJCWxvY2F0aW9uICAgCSgxMzU3LCAxNzU3KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMS4ubiINCgkJCQlwY3REaXN0ICAgIAkwLjczODYzNg0KCQkJCWhlaWdodCAgICAgCTQ2DQoJCQkJb3JpZW50YXRpb24gCTEpKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkOSIgQDIwNw0KCQkJICAgIFBhcmVudF9WaWV3IAlAMjAzDQoJCQkgICAgbG9jYXRpb24gICAJKDYxNiwgMTkxNikNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOTJFRDI4OTAwMjgiDQoJCQkgICAgY2xpZW50ICAgICAJQDIwMw0KCQkJICAgIHN1cHBsaWVyICAgCUAxNTINCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoOTM2LCAyNDI4KQ0KCQkJCSg2ODUsIDI0MjgpDQoJCQkJKDY4NSwgMTI2MikpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTM2LCAyNDI4KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg2ODUsIDEyNjIpKSkpDQoJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0MiIgQDIwOA0KCQkgICAgbG9jYXRpb24gICAJKDE4NTMsIDEwMzcpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTMyNzY4DQoJCSAgICBxdWlkdSAgICAgIAkiMzk5NzIyNjUwMUE2Ig0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJtZXRob2RFbGVtZW50cyIgQDIwOQ0KCQkJICAgIFBhcmVudF9WaWV3IAlAMjA4DQoJCQkgICAgbG9jYXRpb24gICAJKDc3LCA2NjkpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMTANCgkJCQlQYXJlbnRfVmlldyAJQDIwOQ0KCQkJCWxvY2F0aW9uICAgCSgxNzY0LCAxMTM5KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAk0MzMNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIittZXRob2RFbGVtZW50cyINCgkJCQlwY3REaXN0ICAgIAkwLjQwMDAwMA0KCQkJCWhlaWdodCAgICAgCTQyDQoJCQkJb3JpZW50YXRpb24gCTApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzk5NzIyNjYwMjg0Ig0KCQkJICAgIGNsaWVudCAgICAgCUAyMDgNCgkJCSAgICBzdXBwbGllciAgIAlAMTk3DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDE4NTMsIDEwMzcpDQoJCQkJKDE4NTMsIDEwOTcpDQoJCQkJKDE1NDEsIDEwOTcpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4NTMsIDEwMzcpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1NDEsIDEwOTcpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjExDQoJCQkJUGFyZW50X1ZpZXcgCUAyMDkNCgkJCQlsb2NhdGlvbiAgIAkoMTYzMCwgMTA3MykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjEuLm4iDQoJCQkJcGN0RGlzdCAgICAJMC43NjE3MTkNCgkJCQloZWlnaHQgICAgIAkyNQ0KCQkJCW9yaWVudGF0aW9uIAkxKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDQzIiBAMjEyDQoJCQkgICAgUGFyZW50X1ZpZXcgCUAyMDgNCgkJCSAgICBsb2NhdGlvbiAgIAkoNzcsIDY2OSkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOTk3MjI2NjAyOTgiDQoJCQkgICAgY2xpZW50ICAgICAJQDIwOA0KCQkJICAgIHN1cHBsaWVyICAgCUAxNjUNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMTg1MywgMTAzNykNCgkJCQkoMTg1MywgNzc1KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODUzLCAxMDM3KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxODUzLCA3NzUpKSkpDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6Y29tbW9uOjpEZXNjcmlwdGlvbiIgQDIxMw0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSgyNzgyLCAxNjkyKQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAyMTMNCgkJCWxvY2F0aW9uICAgCSgyNjE0LCAxNTYxKQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTMzNg0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIkRlc2NyaXB0aW9uIikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJODQyMTUwNA0KCQkgICAgZmlsbF9jb2xvciAJMTI2MzIyNTYNCgkJICAgIHF1aWR1ICAgICAgCSIzRTRBOThENjAyRTAiDQoJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KCQkJUGFyZW50X1ZpZXcgCUAyMTMNCgkJCWxvY2F0aW9uICAgCSgyNjE0LCAxNjgwKQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCWljb25fc3R5bGUgCSJJY29uIg0KCQkJZmlsbF9jb2xvciAJMTY3NzcyMTUNCgkJCWFuY2hvciAgICAgCTINCgkJCW5saW5lcyAgICAgCTMNCgkJCW1heF93aWR0aCAgCTMwOSkNCgkJICAgIHdpZHRoICAgICAgCTM1NA0KCQkgICAgaGVpZ2h0ICAgICAJMjg2DQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNjciIEAyMTQNCgkJICAgIGxvY2F0aW9uICAgCSgxOTUzLCAxNjIzKQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkxMDk0OTU1OQ0KCQkgICAgcXVpZHUgICAgICAJIjNFNEQyODYwMDIxOCINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAiZGVzY3JpcHRpb25zIiBAMjE1DQoJCQkgICAgUGFyZW50X1ZpZXcgCUAyMTQNCgkJCSAgICBsb2NhdGlvbiAgIAkoNjQ5LCA0MzgpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMTYNCgkJCQlQYXJlbnRfVmlldyAJQDIxNQ0KCQkJCWxvY2F0aW9uICAgCSgyNDc1LCAxNTgyKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkyNzkNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIitkZXNjcmlwdGlvbnMiDQoJCQkJcGN0RGlzdCAgICAJMC44MDAwMDANCgkJCQloZWlnaHQgICAgIAk0Mg0KCQkJCW9yaWVudGF0aW9uIAkwKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjNFNEQyODYyMDE1MiINCgkJCSAgICBjbGllbnQgICAgIAlAMjE0DQoJCQkgICAgc3VwcGxpZXIgICAJQDIxMw0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxOTUzLCAxNjIzKQ0KCQkJCSgyNjA1LCAxNjIzKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxOTUzLCAxNjIzKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyNjA1LCAxNjIzKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIxNw0KCQkJCVBhcmVudF9WaWV3IAlAMjE1DQoJCQkJbG9jYXRpb24gICAJKDI1NDAsIDE2NzcpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTINCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTE1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIwLi5uIg0KCQkJCXBjdERpc3QgICAgCTAuOTAwMDAwDQoJCQkJaGVpZ2h0ICAgICAJNTQNCgkJCQlvcmllbnRhdGlvbiAJMSkpDQoJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ2OCIgQDIxOA0KCQkJICAgIFBhcmVudF9WaWV3IAlAMjE0DQoJCQkgICAgbG9jYXRpb24gICAJKDY0OSwgNDM4KQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjNFNEQyODYyMDE5OCINCgkJCSAgICBjbGllbnQgICAgIAlAMjE0DQoJCQkgICAgc3VwcGxpZXIgICAJQDE5Nw0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxOTUzLCAxNjIzKQ0KCQkJCSgxODEwLCAxNjIzKQ0KCQkJCSgxODEwLCAxMzgzKQ0KCQkJCSgxNTQxLCAxMzgzKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxOTUzLCAxNjIzKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNTQxLCAxMzgzKSkpKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkODEiIEAyMTkNCgkJICAgIGxvY2F0aW9uICAgCSgyODc0LCA3MzcpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTEwOTQ5NTU5DQoJCSAgICBxdWlkdSAgICAgIAkiM0U0RDI2NjgwMzE3Ig0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJkZXNjcmlwdGlvbnMiIEAyMjANCgkJCSAgICBQYXJlbnRfVmlldyAJQDIxOQ0KCQkJICAgIGxvY2F0aW9uICAgCSg5MzQsIDc4KQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjIxDQoJCQkJUGFyZW50X1ZpZXcgCUAyMjANCgkJCQlsb2NhdGlvbiAgIAkoMzAxNywgMTQ5MykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMjc5DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrZGVzY3JpcHRpb25zIg0KCQkJCXBjdERpc3QgICAgCTAuOTMyNDMyDQoJCQkJaGVpZ2h0ICAgICAJMTQzDQoJCQkJb3JpZW50YXRpb24gCTApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiM0U0RDI2NkEwMEQ1Ig0KCQkJICAgIGNsaWVudCAgICAgCUAyMTkNCgkJCSAgICBzdXBwbGllciAgIAlAMjEzDQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDI4NzQsIDczNykNCgkJCQkoMjg3NCwgMTU0OSkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjg3NCwgNzM3KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgyODc0LCAxNTQ5KQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIyMg0KCQkJCVBhcmVudF9WaWV3IAlAMjIwDQoJCQkJbG9jYXRpb24gICAJKDI5MjgsIDE0NjgpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTINCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTE1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIwLi5uIg0KCQkJCXBjdERpc3QgICAgCTAuOTAwMDAwDQoJCQkJaGVpZ2h0ICAgICAJNTQNCgkJCQlvcmllbnRhdGlvbiAJMCkpDQoJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ4MiIgQDIyMw0KCQkJICAgIFBhcmVudF9WaWV3IAlAMjE5DQoJCQkgICAgbG9jYXRpb24gICAJKDkzNCwgNzgpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiM0U0RDI2NkEwMEYzIg0KCQkJICAgIGNsaWVudCAgICAgCUAyMTkNCgkJCSAgICBzdXBwbGllciAgIAlAMTY1DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDI4NzQsIDczNykNCgkJCQkoMjg3NCwgNjU5KQ0KCQkJCSgyMTQxLCA2NTkpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI4NzQsIDczNykNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjE0MSwgNjU5KSkpKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmVqYjo6TWV0aG9kVHJhbnNhY3Rpb24iIEAyMjQNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMjc1MiwgMTE1OSkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMjI0DQoJCQlsb2NhdGlvbiAgIAkoMjMwNSwgMTAzMSkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAk4OTQNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJNZXRob2RUcmFuc2FjdGlvbiIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEUzNTAwMERFIg0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlAMjI0DQoJCQlsb2NhdGlvbiAgIAkoMjMwNSwgMTA5NikNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkzDQoJCQltYXhfd2lkdGggIAk5NTIpDQoJCSAgICB3aWR0aCAgICAgIAk5MTINCgkJICAgIGhlaWdodCAgICAgCTI4MA0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDUiIEAyMjUNCgkJICAgIGxvY2F0aW9uICAgCSgyMjkzLCAxNjEyKQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFMzUwMDBFMCINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAiL21ldGhvZHMiIEAyMjYNCgkJCSAgICBQYXJlbnRfVmlldyAJQDIyNQ0KCQkJICAgIGxvY2F0aW9uICAgCSg1NDgsIDEyNDMpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMjcNCgkJCQlQYXJlbnRfVmlldyAJQDIyNg0KCQkJCWxvY2F0aW9uICAgCSgyMDYwLCAxNTYxKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkyNTYNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIisvbWV0aG9kcyINCgkJCQlwY3REaXN0ICAgIAkwLjM1NTI2Mw0KCQkJCWhlaWdodCAgICAgCTUyDQoJCQkJb3JpZW50YXRpb24gCTEpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzc4MEUzNTAwMEUxIg0KCQkJICAgIGNsaWVudCAgICAgCUAyMjUNCgkJCSAgICBzdXBwbGllciAgIAlAMTY2DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDIyOTMsIDE2MTIpDQoJCQkJKDE2MzMsIDE2MTIpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDIyOTMsIDE2MTIpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE2MzMsIDE2MTIpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjI4DQoJCQkJUGFyZW50X1ZpZXcgCUAyMjYNCgkJCQlsb2NhdGlvbiAgIAkoMTgwNSwgMTY2NikNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJNzANCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjEuLm4iDQoJCQkJcGN0RGlzdCAgICAJMC43Mzg3NzUNCgkJCQloZWlnaHQgICAgIAk1NA0KCQkJCW9yaWVudGF0aW9uIAkwKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgIi90cmFuc2FjdGlvbnMiIEAyMjkNCgkJCSAgICBQYXJlbnRfVmlldyAJQDIyNQ0KCQkJICAgIGxvY2F0aW9uICAgCSg1NDgsIDEyNDMpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTM1MDAwRTIiDQoJCQkgICAgY2xpZW50ICAgICAJQDIyNQ0KCQkJICAgIHN1cHBsaWVyICAgCUAyMjQNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMjI5MywgMTYxMikNCgkJCQkoMjY0MCwgMTYxMikNCgkJCQkoMjY0MCwgMTI5OSkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjI5MywgMTYxMikNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjY0MCwgMTI5OSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyMzANCgkJCQlQYXJlbnRfVmlldyAJQDIyOQ0KCQkJCWxvY2F0aW9uICAgCSgyNTg3LCAxMzk0KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAk3MA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMC4ubiINCgkJCQlwY3REaXN0ICAgIAkwLjg1ODA4Ng0KCQkJCWhlaWdodCAgICAgCTU0DQoJCQkJb3JpZW50YXRpb24gCTApKSkpDQoJCShvYmplY3QgQXR0YWNoVmlldyAiIiBAMjMxDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBjbGllbnQgICAgIAlAMTQyDQoJCSAgICBzdXBwbGllciAgIAlAMjI0DQoJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCSgzMjQ0LCA4OTQpDQoJCQkoMzAxMCwgMTAxOCkpDQoJCSAgICBsaW5lX3N0eWxlIAkwKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiQXNzZW1ibHlEZXNjcmlwdG9yVG9NZXRob2RUcmFuc2FjdGlvbnMiIEAyMzINCgkJICAgIGxvY2F0aW9uICAgCSgyMzE4LCA0NTYpDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEUzNTAwMEQ1Ig0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJhc3NlbWJseURlc2NyaXB0b3IiIEAyMzMNCgkJCSAgICBQYXJlbnRfVmlldyAJQDIzMg0KCQkJICAgIGxvY2F0aW9uICAgCSg1NzMsIDg3KQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjM0DQoJCQkJUGFyZW50X1ZpZXcgCUAyMzMNCgkJCQlsb2NhdGlvbiAgIAkoMTgxOCwgNDE3KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAk1MTINCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIithc3NlbWJseURlc2NyaXB0b3IiDQoJCQkJcGN0RGlzdCAgICAJMC41MzU1MTkNCgkJCQloZWlnaHQgICAgIAk0MA0KCQkJCW9yaWVudGF0aW9uIAkxKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM3ODBFMzUwMDBENiINCgkJCSAgICBjbGllbnQgICAgIAlAMjMyDQoJCQkgICAgc3VwcGxpZXIgICAJQDE3Mw0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgyMzE4LCA0NTYpDQoJCQkJKDEzODIsIDQ1NikpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjMxOCwgNDU2KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzgyLCA0NTYpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjM1DQoJCQkJUGFyZW50X1ZpZXcgCUAyMzMNCgkJCQlsb2NhdGlvbiAgIAkoMTQ3NiwgNTEwKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAk3MA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMSINCgkJCQlwY3REaXN0ICAgIAkwLjkwMDAwMA0KCQkJCWhlaWdodCAgICAgCTU0DQoJCQkJb3JpZW50YXRpb24gCTApKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAibWV0aG9kVHJhbnNhY3Rpb25zIiBAMjM2DQoJCQkgICAgUGFyZW50X1ZpZXcgCUAyMzINCgkJCSAgICBsb2NhdGlvbiAgIAkoNTczLCA4NykNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDIzNw0KCQkJCVBhcmVudF9WaWV3IAlAMjM2DQoJCQkJbG9jYXRpb24gICAJKDI5MjMsIDk0NykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJNTE1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrbWV0aG9kVHJhbnNhY3Rpb25zIg0KCQkJCXBjdERpc3QgICAgCTAuOTIzNjg0DQoJCQkJaGVpZ2h0ICAgICAJMjMyDQoJCQkJb3JpZW50YXRpb24gCTApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzc4MEUzNTAwMEQ3Ig0KCQkJICAgIGNsaWVudCAgICAgCUAyMzINCgkJCSAgICBzdXBwbGllciAgIAlAMjI0DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDIzMTgsIDQ1NikNCgkJCQkoMjY5MSwgNDU2KQ0KCQkJCSgyNjkxLCAxMDE5KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyMzE4LCA0NTYpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI2OTEsIDEwMTkpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjM4DQoJCQkJUGFyZW50X1ZpZXcgCUAyMzYNCgkJCQlsb2NhdGlvbiAgIAkoMjYwMywgOTYxKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAk3MA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMC4ubiINCgkJCQlwY3REaXN0ICAgIAkwLjkzODMyNg0KCQkJCWhlaWdodCAgICAgCTg5DQoJCQkJb3JpZW50YXRpb24gCTEpKSkpDQoJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxMCIgQDIzOQ0KCQkgICAgbG9jYXRpb24gICAJKDE5MTgsIDEyNjEpDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBxdWlkdSAgICAgIAkiMzkyRUQ0MDkwMEQ0Ig0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJtZXRob2RFbGVtZW50cyIgQDI0MA0KCQkJICAgIFBhcmVudF9WaWV3IAlAMjM5DQoJCQkgICAgbG9jYXRpb24gICAJKDk0LCA3ODEpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNDENCgkJCQlQYXJlbnRfVmlldyAJQDI0MA0KCQkJCWxvY2F0aW9uICAgCSgxOTA2LCAxMjIzKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAk0MzMNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIittZXRob2RFbGVtZW50cyINCgkJCQlwY3REaXN0ICAgIAkwLjAzNTI5NA0KCQkJCWhlaWdodCAgICAgCTM5DQoJCQkJb3JpZW50YXRpb24gCTEpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzkyRUQ0MEEwMThBIg0KCQkJICAgIGNsaWVudCAgICAgCUAyMzkNCgkJCSAgICBzdXBwbGllciAgIAlAMTk3DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDE5MTgsIDEyNjEpDQoJCQkJKDE1NDEsIDEyNjEpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE5MTgsIDEyNjEpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1NDEsIDEyNjEpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjQyDQoJCQkJUGFyZW50X1ZpZXcgCUAyNDANCgkJCQlsb2NhdGlvbiAgIAkoMTY3MywgMTMxNCkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjEuLm4iDQoJCQkJcGN0RGlzdCAgICAJMC42NTM4NDYNCgkJCQloZWlnaHQgICAgIAk1Mw0KCQkJCW9yaWVudGF0aW9uIAkwKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDExIiBAMjQzDQoJCQkgICAgUGFyZW50X1ZpZXcgCUAyMzkNCgkJCSAgICBsb2NhdGlvbiAgIAkoOTQsIDc4MSkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOTJFRDQwQTAxOUUiDQoJCQkgICAgY2xpZW50ICAgICAJQDIzOQ0KCQkJICAgIHN1cHBsaWVyICAgCUAyMjQNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMTkxOCwgMTI2MSkNCgkJCQkoMjI5NiwgMTI2MSkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTkxOCwgMTI2MSkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjI5NiwgMTI2MSkpKSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDc5IiBAMjQ0DQoJCSAgICBsb2NhdGlvbiAgIAkoMzExOSwgMTQ4NSkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMTA5NDk1NTkNCgkJICAgIHF1aWR1ICAgICAgCSIzRTREMUYyMzAwOTAiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgImRlc2NyaXB0aW9ucyIgQDI0NQ0KCQkJICAgIFBhcmVudF9WaWV3IAlAMjQ0DQoJCQkgICAgbG9jYXRpb24gICAJKDc3OSwgMjk4KQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjQ2DQoJCQkJUGFyZW50X1ZpZXcgCUAyNDUNCgkJCQlsb2NhdGlvbiAgIAkoMzAzMSwgMTQwNSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMjc5DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrZGVzY3JpcHRpb25zIg0KCQkJCXBjdERpc3QgICAgCTAuNjc3OTY2DQoJCQkJaGVpZ2h0ICAgICAJMTQxDQoJCQkJb3JpZW50YXRpb24gCTEpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiM0U0RDFGMjMwM0Q5Ig0KCQkJICAgIGNsaWVudCAgICAgCUAyNDQNCgkJCSAgICBzdXBwbGllciAgIAlAMjEzDQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDMxMTksIDE0ODUpDQoJCQkJKDMxMTksIDE1NDUpDQoJCQkJKDI5NTksIDE1NDUpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDMxMTksIDE0ODUpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI5NTksIDE1NDUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjQ3DQoJCQkJUGFyZW50X1ZpZXcgCUAyNDUNCgkJCQlsb2NhdGlvbiAgIAkoMzAzMSwgMTYxMykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjAuLm4iDQoJCQkJcGN0RGlzdCAgICAJMC42NzUyMTQNCgkJCQloZWlnaHQgICAgIAk2OA0KCQkJCW9yaWVudGF0aW9uIAkwKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDgwIiBAMjQ4DQoJCQkgICAgUGFyZW50X1ZpZXcgCUAyNDQNCgkJCSAgICBsb2NhdGlvbiAgIAkoNzc5LCAyOTgpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiM0U0RDFGMjQwMDBGIg0KCQkJICAgIGNsaWVudCAgICAgCUAyNDQNCgkJCSAgICBzdXBwbGllciAgIAlAMjI0DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDMxMTksIDE0ODUpDQoJCQkJKDMxMTksIDEyOTkpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDMxMTksIDE0ODUpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDMxMTksIDEyOTkpKSkpKSkNCgkob2JqZWN0IENsYXNzRGlhZ3JhbSAiRUpCIEltcGxlbWVudGF0aW9uIg0KCSAgICBxdWlkICAgICAgIAkiMzgwRkRCN0IwMURBIg0KCSAgICB0aXRsZSAgICAgIAkiRUpCIEltcGxlbWVudGF0aW9uIg0KCSAgICBkb2N1bWVudGF0aW9uIAkiVGhlIHNlc3Npb24tdHlwZSBlbGVtZW50IGRlc2NyaWJlcyB3aGV0aGVyIHRoZSBzZXNzaW9uIGJlYW4gaXMgYSBzdGF0ZWZ1bCBzZXNzaW9uLCBvciBzdGF0ZWxlc3Mgc2Vzc2lvbi4iDQoJICAgIHpvb20gICAgICAgCTEwMA0KCSAgICBtYXhfaGVpZ2h0IAkyODM1MA0KCSAgICBtYXhfd2lkdGggIAkyMTYwMA0KCSAgICBvcmlnaW5feCAgIAkwDQoJICAgIG9yaWdpbl95ICAgCTE2MzENCgkgICAgaXRlbXMgICAgICAJKGxpc3QgZGlhZ3JhbV9pdGVtX2xpc3QNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OkVKQk1ldGhvZENhdGVnb3J5IiBAMjQ5DQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDMwNiwgMjYxKQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAyNDkNCgkJCWxvY2F0aW9uICAgCSgxOTMsIDE4NSkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAkyMjYNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJFSkJNZXRob2RDYXRlZ29yeSIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCSAgICBxdWlkdSAgICAgIAkiMzgxMEQwMzgwMzQ0Ig0KCQkgICAgd2lkdGggICAgICAJMjQ0DQoJCSAgICBoZWlnaHQgICAgIAkxNzYNCgkJICAgIGFubm90YXRpb24gCTgNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6ZWpiOjpFbnRpdHkiIEAyNTANCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMTc3MSwgMTc2MSkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMjUwDQoJCQlsb2NhdGlvbiAgIAkoMTY5MCwgMTY4NSkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAkxNjINCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJFbnRpdHkiKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFNjk3MDM1MSINCgkJICAgIGhlaWdodCAgICAgCTE3Ng0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OkVudGVycHJpc2VCZWFuIiBAMjUxDQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDk4MiwgMTE5NCkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlUUlVFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAyNTENCgkJCWxvY2F0aW9uICAgCSg4MjgsIDExNDQpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJMzA4DQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiRW50ZXJwcmlzZUJlYW4iKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFNzFBMDEwQSINCgkJICAgIHdpZHRoICAgICAgCTMyNg0KCQkgICAgaGVpZ2h0ICAgICAJMTI0DQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IEluaGVyaXRUcmVlVmlldyAiIiBAMjUyDQoJCSAgICBsb2NhdGlvbiAgIAkoOTgyLCAxNDgxKQ0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJICAgIHN1cHBsaWVyICAgCUAyNTENCgkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJKDk4MiwgMTQ4MSkNCgkJCSg5ODIsIDEyNTYpKSkNCgkJKG9iamVjdCBJbmhlcml0VmlldyAiIiBAMjUzDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEU4MDgwMDk1Ig0KCQkgICAgY2xpZW50ICAgICAJQDI1MA0KCQkgICAgc3VwcGxpZXIgICAJQDI1MQ0KCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkoMTcxMywgMTY3MykNCgkJCSgxNzEzLCAxNDgxKSkNCgkJICAgIGxpbmVfc3R5bGUgCTMNCgkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTcxMywgMTY3MykNCgkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNzEzLCAxNDgxKQ0KCQkgICAgZHJhd1N1cHBsaWVyIAlAMjUyKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmphdmE6OkphdmFDbGFzcyIgQDI1NA0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIFN1cHByZXNzT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMTAzNSwgNTQ1KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAyNTQNCgkJCWxvY2F0aW9uICAgCSg4ODEsIDM5MCkNCgkJCW5saW5lcyAgICAgCTINCgkJCW1heF93aWR0aCAgCTMwOA0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIkphdmFDbGFzcyIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCSAgICBxdWlkdSAgICAgIAkiMzY1NDlGQ0MwMEZBIg0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlAMjU0DQoJCQlsb2NhdGlvbiAgIAkoODgxLCA1MDUpDQoJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJaWNvbl9zdHlsZSAJIkljb24iDQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkzDQoJCQltYXhfd2lkdGggIAkzMzUpDQoJCSAgICB3aWR0aCAgICAgIAkzMjYNCgkJICAgIGhlaWdodCAgICAgCTMzNA0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgInByaW1hcnlLZXkiIEAyNTUNCgkJICAgIGxvY2F0aW9uICAgCSgxODIwLCA3NTMpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI1Ng0KCQkJUGFyZW50X1ZpZXcgCUAyNTUNCgkJCWxvY2F0aW9uICAgCSgxOTM3LCA0MTQpDQoJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJICAgIGl0YWxpY3MgICAgCVRSVUUNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlhbmNob3IgICAgIAkxDQoJCQlhbmNob3JfbG9jIAkxDQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAkyMDQNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJwcmltYXJ5S2V5Ig0KCQkJcGN0RGlzdCAgICAJMi40NTAwMDANCgkJCWhlaWdodCAgICAgCTM0MA0KCQkJb3JpZW50YXRpb24gCTApDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBxdWlkdSAgICAgIAkiMzgwRkREREYwMDZCIg0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJwcmltYXJ5S2V5IiBAMjU3DQoJCQkgICAgUGFyZW50X1ZpZXcgCUAyNTUNCgkJCSAgICBsb2NhdGlvbiAgIAkoMzY0LCAtNzUxKQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzgwRkRERTAwMTE3Ig0KCQkJICAgIGNsaWVudCAgICAgCUAyNTUNCgkJCSAgICBzdXBwbGllciAgIAlAMjU0DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDE4MjAsIDc1MykNCgkJCQkoMTgyMCwgNDU1KQ0KCQkJCSgxMTk4LCA0NTUpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE4MjAsIDc1MykNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTE5OCwgNDU1KQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI1OA0KCQkJCVBhcmVudF9WaWV3IAlAMjU3DQoJCQkJbG9jYXRpb24gICAJKDEyOTAsIDQwMikNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjEiDQoJCQkJcGN0RGlzdCAgICAJMC45MDAwMDANCgkJCQloZWlnaHQgICAgIAk1NA0KCQkJCW9yaWVudGF0aW9uIAkxKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgImVqYiIgQDI1OQ0KCQkJICAgIFBhcmVudF9WaWV3IAlAMjU1DQoJCQkgICAgbG9jYXRpb24gICAJKDM2NCwgLTc1MSkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzODBGRERFMDAxMjEiDQoJCQkgICAgY2xpZW50ICAgICAJQDI1NQ0KCQkJICAgIHN1cHBsaWVyICAgCUAyNTANCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMTgyMCwgNzUzKQ0KCQkJCSgxODIwLCAxNjczKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxODIwLCA3NTMpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4MjAsIDE2NzMpKSkpDQoJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICJyZW1vdGVJbnRlcmZhY2UiIEAyNjANCgkJICAgIGxvY2F0aW9uICAgCSg5MzQsIDkyMSkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjYxDQoJCQlQYXJlbnRfVmlldyAJQDI2MA0KCQkJbG9jYXRpb24gICAJKDk3NCwgOTIwKQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlUUlVFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJYW5jaG9yICAgICAJMQ0KCQkJYW5jaG9yX2xvYyAJMQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJNjAwDQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkicmVtb3RlSW50ZXJmYWNlIg0KCQkJcGN0RGlzdCAgICAJMS4xODMzMzMNCgkJCWhlaWdodCAgICAgCTINCgkJCW9yaWVudGF0aW9uIAkwKQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgcXVpZHUgICAgICAJIjM4MEZEQzQ2MDA2QSINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAicmVtb3RlSW50ZXJmYWNlIiBAMjYyDQoJCQkgICAgUGFyZW50X1ZpZXcgCUAyNjANCgkJCSAgICBsb2NhdGlvbiAgIAkoMzM1LCAxOTIpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzODBGREM0NzAxNjYiDQoJCQkgICAgY2xpZW50ICAgICAJQDI2MA0KCQkJICAgIHN1cHBsaWVyICAgCUAyNTQNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoOTM0LCA5MjEpDQoJCQkJKDkzNCwgNzExKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5MzQsIDkyMSkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoOTM0LCA3MTEpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjYzDQoJCQkJUGFyZW50X1ZpZXcgCUAyNjINCgkJCQlsb2NhdGlvbiAgIAkoODgxLCA3MzMpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTINCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTE1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIxIg0KCQkJCXBjdERpc3QgICAgCTAuOTAwMDAwDQoJCQkJaGVpZ2h0ICAgICAJNTQNCgkJCQlvcmllbnRhdGlvbiAJMCkpDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJlamIiIEAyNjQNCgkJCSAgICBQYXJlbnRfVmlldyAJQDI2MA0KCQkJICAgIGxvY2F0aW9uICAgCSgzMzUsIDE5MikNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzODBGREM0NzAxNjciDQoJCQkgICAgY2xpZW50ICAgICAJQDI2MA0KCQkJICAgIHN1cHBsaWVyICAgCUAyNTENCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoOTM0LCA5MjEpDQoJCQkJKDkzNCwgMTEzMikpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoOTM0LCA5MjEpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDkzNCwgMTEzMikpKSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgImhvbWVJbnRlcmZhY2UiIEAyNjUNCgkJICAgIGxvY2F0aW9uICAgCSg4MTksIDg2NCkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjY2DQoJCQlQYXJlbnRfVmlldyAJQDI2NQ0KCQkJbG9jYXRpb24gICAJKDg0MSwgMTAxMykNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJVFJVRQ0KCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCWFuY2hvciAgICAgCTENCgkJCWFuY2hvcl9sb2MgCTENCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTI3NA0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJImhvbWVJbnRlcmZhY2UiDQoJCQlwY3REaXN0ICAgIAkwLjg4MzMzMw0KCQkJaGVpZ2h0ICAgICAJMTQ5DQoJCQlvcmllbnRhdGlvbiAJMSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIHF1aWR1ICAgICAgCSIzODBGREMzNzAxQzciDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgImhvbWVJbnRlcmZhY2UiIEAyNjcNCgkJCSAgICBQYXJlbnRfVmlldyAJQDI2NQ0KCQkJICAgIGxvY2F0aW9uICAgCSgyMjcsIDEyOCkNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM4MEZEQzQ0MDE0MyINCgkJCSAgICBjbGllbnQgICAgIAlAMjY1DQoJCQkgICAgc3VwcGxpZXIgICAJQDI1NA0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSg4MTksIDg2NCkNCgkJCQkoODE5LCA4MDQpDQoJCQkJKDc2NiwgODA0KQ0KCQkJCSg3NjYsIDY5OSkNCgkJCQkoODcyLCA2OTkpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDgxOSwgODY0KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4NzIsIDY5OSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyNjgNCgkJCQlQYXJlbnRfVmlldyAJQDI2Nw0KCQkJCWxvY2F0aW9uICAgCSg4MzMsIDY2NykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjEiDQoJCQkJcGN0RGlzdCAgICAJMC44ODE5MTkNCgkJCQloZWlnaHQgICAgIAkzMw0KCQkJCW9yaWVudGF0aW9uIAkwKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgImVqYiIgQDI2OQ0KCQkJICAgIFBhcmVudF9WaWV3IAlAMjY1DQoJCQkgICAgbG9jYXRpb24gICAJKDIyNywgMTI4KQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM4MEZEQzQ0MDE0RCINCgkJCSAgICBjbGllbnQgICAgIAlAMjY1DQoJCQkgICAgc3VwcGxpZXIgICAJQDI1MQ0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSg4MTksIDg2NCkNCgkJCQkoODE5LCAxMTMyKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg4MTksIDg2NCkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODE5LCAxMTMyKSkpKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiZWpiQ2xhc3MiIEAyNzANCgkJICAgIGxvY2F0aW9uICAgCSgxMTMxLCA5MjEpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3MQ0KCQkJUGFyZW50X1ZpZXcgCUAyNzANCgkJCWxvY2F0aW9uICAgCSgxMTI1LCAxMDMxKQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlUUlVFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJYW5jaG9yICAgICAJMQ0KCQkJYW5jaG9yX2xvYyAJMQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJMTU3DQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiZWpiQ2xhc3MiDQoJCQlwY3REaXN0ICAgIAkwLjQwMDAwMA0KCQkJaGVpZ2h0ICAgICAJMTEwDQoJCQlvcmllbnRhdGlvbiAJMSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIHF1aWR1ICAgICAgCSIzODBGREMzNDAyQzciDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgImVqYkNsYXNzIiBAMjcyDQoJCQkgICAgUGFyZW50X1ZpZXcgCUAyNzANCgkJCSAgICBsb2NhdGlvbiAgIAkoNTM5LCAxODUpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzODBGREMzNTAxRUMiDQoJCQkgICAgY2xpZW50ICAgICAJQDI3MA0KCQkJICAgIHN1cHBsaWVyICAgCUAyNTQNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMTEzMSwgOTIxKQ0KCQkJCSgxMTMxLCA3MTIpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDExMzEsIDkyMSkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTEzMSwgNzEyKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3Mw0KCQkJCVBhcmVudF9WaWV3IAlAMjcyDQoJCQkJbG9jYXRpb24gICAJKDEwOTEsIDc0MCkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjEiDQoJCQkJcGN0RGlzdCAgICAJMC44NzA1NTANCgkJCQloZWlnaHQgICAgIAk0MQ0KCQkJCW9yaWVudGF0aW9uIAkwKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgImVqYiIgQDI3NA0KCQkJICAgIFBhcmVudF9WaWV3IAlAMjcwDQoJCQkgICAgbG9jYXRpb24gICAJKDUzOSwgMTg1KQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM4MEZEQzM1MDFGNiINCgkJCSAgICBjbGllbnQgICAgIAlAMjcwDQoJCQkgICAgc3VwcGxpZXIgICAJQDI1MQ0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxMTMxLCA5MjEpDQoJCQkJKDExMzEsIDExMzEpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDExMzEsIDkyMSkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTEzMSwgMTEzMSkpKSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgImxvY2FsSG9tZUludGVyZmFjZSIgQDI3NQ0KCQkgICAgbG9jYXRpb24gICAJKDE0MzEsIDk0MSkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjc2DQoJCQlQYXJlbnRfVmlldyAJQDI3NQ0KCQkJbG9jYXRpb24gICAJKDEzODUsIDk3OCkNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJVFJVRQ0KCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCSAgICBjb2xvciAgICAgIAkzMjc2OA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCUZBTFNFKQ0KCQkJYW5jaG9yICAgICAJMQ0KCQkJYW5jaG9yX2xvYyAJMQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJMzU2DQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkibG9jYWxIb21lSW50ZXJmYWNlIg0KCQkJcGN0RGlzdCAgICAJLTAuMjY2NjY3DQoJCQloZWlnaHQgICAgIAkzNw0KCQkJb3JpZW50YXRpb24gCTEpDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkxNjM4NA0KCQkgICAgcXVpZHUgICAgICAJIjM5ODg2QzJCMDE4QiINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAibG9jYWxIb21lSW50ZXJmYWNlIiBAMjc3DQoJCQkgICAgUGFyZW50X1ZpZXcgCUAyNzUNCgkJCSAgICBsb2NhdGlvbiAgIAkoNDM5LCAtMjc1KQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzk4ODZDMkMwMkFGIg0KCQkJICAgIGNsaWVudCAgICAgCUAyNzUNCgkJCSAgICBzdXBwbGllciAgIAlAMjU0DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDE0MzEsIDk0MSkNCgkJCQkoMTQzMSwgNjI1KQ0KCQkJCSgxMTk4LCA2MjUpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE0MzEsIDk0MSkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTE5OCwgNjI1KQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDI3OA0KCQkJCVBhcmVudF9WaWV3IAlAMjc3DQoJCQkJbG9jYXRpb24gICAJKDEyOTAsIDY5NikNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkzMjc2OA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlGQUxTRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMC4uMSINCgkJCQlwY3REaXN0ICAgIAkwLjgzNDc0Ng0KCQkJCWhlaWdodCAgICAgCTcxDQoJCQkJb3JpZW50YXRpb24gCTApKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMzQiIEAyNzkNCgkJCSAgICBQYXJlbnRfVmlldyAJQDI3NQ0KCQkJICAgIGxvY2F0aW9uICAgCSg0MzksIC0yNzUpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzk4ODZDMkMwMkQ3Ig0KCQkJICAgIGNsaWVudCAgICAgCUAyNzUNCgkJCSAgICBzdXBwbGllciAgIAlAMjUxDQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDE0MzEsIDk0MSkNCgkJCQkoMTQzMSwgMTIwNCkNCgkJCQkoMTE0NSwgMTIwNCkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTQzMSwgOTQxKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMTQ1LCAxMjA0KSkpKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAibG9jYWxJbnRlcmZhY2UiIEAyODANCgkJICAgIGxvY2F0aW9uICAgCSg0ODEsIDg3NCkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjgxDQoJCQlQYXJlbnRfVmlldyAJQDI4MA0KCQkJbG9jYXRpb24gICAJKDQ1MCwgODMxKQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlUUlVFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTMyNzY4DQoJCQkgICAgZGVmYXVsdF9jb2xvciAJRkFMU0UpDQoJCQlhbmNob3IgICAgIAkxDQoJCQlhbmNob3JfbG9jIAkxDQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAkyNDMNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJsb2NhbEludGVyZmFjZSINCgkJCXBjdERpc3QgICAgCS0wLjAxNjY2Nw0KCQkJaGVpZ2h0ICAgICAJNDQNCgkJCW9yaWVudGF0aW9uIAkwKQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMTYzODQNCgkJICAgIHF1aWR1ICAgICAgCSIzOTg4NkNDMjAyODMiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgImxvY2FsSW50ZXJmYWNlIiBAMjgyDQoJCQkgICAgUGFyZW50X1ZpZXcgCUAyODANCgkJCSAgICBsb2NhdGlvbiAgIAkoLTUxMSwgLTM0MikNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5ODg2Q0M2MDBFRSINCgkJCSAgICBjbGllbnQgICAgIAlAMjgwDQoJCQkgICAgc3VwcGxpZXIgICAJQDI1NA0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSg0ODEsIDg3NCkNCgkJCQkoNDgxLCA2MDYpDQoJCQkJKDg3MiwgNjA2KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg0ODEsIDg3NCkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODcyLCA2MDYpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjgzDQoJCQkJUGFyZW50X1ZpZXcgCUAyODINCgkJCQlsb2NhdGlvbiAgIAkoNzM2LCA2NDgpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMzI3NjgNCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJRkFMU0UpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjAuLjEiDQoJCQkJcGN0RGlzdCAgICAJMC43OTMzNzUNCgkJCQloZWlnaHQgICAgIAk0Mg0KCQkJCW9yaWVudGF0aW9uIAkxKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDM1IiBAMjg0DQoJCQkgICAgUGFyZW50X1ZpZXcgCUAyODANCgkJCSAgICBsb2NhdGlvbiAgIAkoLTUxMSwgLTM0MikNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOTg4NkNDNjAxMjAiDQoJCQkgICAgY2xpZW50ICAgICAJQDI4MA0KCQkJICAgIHN1cHBsaWVyICAgCUAyNTENCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoNDgxLCA4NzQpDQoJCQkJKDQ4MSwgMTE5NCkNCgkJCQkoODE5LCAxMTk0KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg0ODEsIDg3NCkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODE5LCAxMTk0KSkpKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmVqYjo6U2Vzc2lvbiIgQDI4NQ0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSg2OTYsIDE3NjIpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDI4NQ0KCQkJbG9jYXRpb24gICAJKDM3MSwgMTY2MCkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAk2NTANCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJTZXNzaW9uIikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTVGOTAxRUIiDQoJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KCQkJUGFyZW50X1ZpZXcgCUAyODUNCgkJCWxvY2F0aW9uICAgCSgzNzEsIDE3MjEpDQoJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJaWNvbl9zdHlsZSAJIkljb24iDQoJCQlmaWxsX2NvbG9yIAkxNjc3NzIxNQ0KCQkJYW5jaG9yICAgICAJMg0KCQkJbmxpbmVzICAgICAJMw0KCQkJbWF4X3dpZHRoICAJNjcyKQ0KCQkgICAgd2lkdGggICAgICAJNjY4DQoJCSAgICBoZWlnaHQgICAgIAkyMjgNCgkJICAgIGFubm90YXRpb24gCTgNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgSW5oZXJpdFZpZXcgIiIgQDI4Ng0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFMzIzMDEyMCINCgkJICAgIGNsaWVudCAgICAgCUAyODUNCgkJICAgIHN1cHBsaWVyICAgCUAyNTENCgkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJKDcxOSwgMTY0OCkNCgkJCSg3MTksIDE0ODEpKQ0KCQkgICAgbGluZV9zdHlsZSAJMw0KCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg3MTksIDE2NDgpDQoJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzE5LCAxNDgxKQ0KCQkgICAgZHJhd1N1cHBsaWVyIAlAMjUyKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkODUiIEAyODcNCgkJICAgIGxvY2F0aW9uICAgCSg5NywgODYwKQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBxdWlkdSAgICAgIAkiM0U1NjdDQTIwMDdGIg0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJzZXJ2aWNlRW5kcG9pbnQiIEAyODgNCgkJCSAgICBQYXJlbnRfVmlldyAJQDI4Nw0KCQkJICAgIGxvY2F0aW9uICAgCSgtNjMwLCAtNjg2KQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMjg5DQoJCQkJUGFyZW50X1ZpZXcgCUAyODgNCgkJCQlsb2NhdGlvbiAgIAkoNzAxLCA0NzcpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTMxMA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK3NlcnZpY2VFbmRwb2ludCINCgkJCQlwY3REaXN0ICAgIAkwLjg0NzgyNg0KCQkJCWhlaWdodCAgICAgCTQzDQoJCQkJb3JpZW50YXRpb24gCTApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiM0U1NjdDQTMwMjI1Ig0KCQkJICAgIGNsaWVudCAgICAgCUAyODcNCgkJCSAgICBzdXBwbGllciAgIAlAMjU0DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDk3LCA4NjApDQoJCQkJKDk3LCA1MTkpDQoJCQkJKDg3MiwgNTE5KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5NywgODYwKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4NzIsIDUxOSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAyOTANCgkJCQlQYXJlbnRfVmlldyAJQDI4OA0KCQkJCWxvY2F0aW9uICAgCSg3NzEsIDU1NykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjAuLjEiDQoJCQkJcGN0RGlzdCAgICAJMC45MDk0MjANCgkJCQloZWlnaHQgICAgIAkzOA0KCQkJCW9yaWVudGF0aW9uIAkxKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDg2IiBAMjkxDQoJCQkgICAgUGFyZW50X1ZpZXcgCUAyODcNCgkJCSAgICBsb2NhdGlvbiAgIAkoLTYzMCwgLTY4NikNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjNFNTY3Q0EzMDI0MyINCgkJCSAgICBjbGllbnQgICAgIAlAMjg3DQoJCQkgICAgc3VwcGxpZXIgICAJQDI4NQ0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSg5NywgODYwKQ0KCQkJCSg5NywgMTcxMSkNCgkJCQkoMzYyLCAxNzExKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5NywgODYwKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzNjIsIDE3MTEpKSkpKSkNCgkob2JqZWN0IENsYXNzRGlhZ3JhbSAiRGF0YSBUeXBlcyINCgkgICAgcXVpZCAgICAgICAJIjM4MTBENjlDMDFFNCINCgkgICAgdGl0bGUgICAgICAJIkRhdGEgVHlwZXMiDQoJICAgIHpvb20gICAgICAgCTEwMA0KCSAgICBtYXhfaGVpZ2h0IAkyODM1MA0KCSAgICBtYXhfd2lkdGggIAkyMTYwMA0KCSAgICBvcmlnaW5feCAgIAkwDQoJICAgIG9yaWdpbl95ICAgCTANCgkgICAgaXRlbXMgICAgICAJKGxpc3QgZGlhZ3JhbV9pdGVtX2xpc3QNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OlNlc3Npb25UeXBlIiBAMjkyDQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDI3MiwgMTc2KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAyOTINCgkJCWxvY2F0aW9uICAgCSgxMDksIDkyKQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTMyNg0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIlNlc3Npb25UeXBlIikNCgkJICAgIHN0ZXJlb3R5cGUgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDI5Mg0KCQkJbG9jYXRpb24gICAJKDEwOSwgNDIpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJYW5jaG9yICAgICAJMTANCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTMyNg0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIjw8ZW51bWVyYXRpb24+PiIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCSAgICBxdWlkdSAgICAgIAkiMzcxQkNBMDcwMTBDIg0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlAMjkyDQoJCQlsb2NhdGlvbiAgIAkoMTA5LCAxNTMpDQoJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJaWNvbl9zdHlsZSAJIkljb24iDQoJCQlmaWxsX2NvbG9yIAkxNjc3NzIxNQ0KCQkJYW5jaG9yICAgICAJMg0KCQkJbmxpbmVzICAgICAJMw0KCQkJbWF4X3dpZHRoICAJMjMxKQ0KCQkgICAgd2lkdGggICAgICAJMzQ0DQoJCSAgICBoZWlnaHQgICAgIAkyOTINCgkJICAgIGFubm90YXRpb24gCTgNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6ZWpiOjpUcmFuc2FjdGlvblR5cGUiIEAyOTMNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoNzA0LCAxOTIpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDI5Mw0KCQkJbG9jYXRpb24gICAJKDU0MSwgMTA4KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTMyNg0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIlRyYW5zYWN0aW9uVHlwZSIpDQoJCSAgICBzdGVyZW90eXBlIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAyOTMNCgkJCWxvY2F0aW9uICAgCSg1NDEsIDU4KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCWFuY2hvciAgICAgCTEwDQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAkzMjYNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSI8PGVudW1lcmF0aW9uPj4iKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkgICAgcXVpZHUgICAgICAJIjM3RkNBNDg3MDJFRiINCgkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQoJCQlQYXJlbnRfVmlldyAJQDI5Mw0KCQkJbG9jYXRpb24gICAJKDU0MSwgMTY5KQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCWljb25fc3R5bGUgCSJJY29uIg0KCQkJZmlsbF9jb2xvciAJMTY3NzcyMTUNCgkJCWFuY2hvciAgICAgCTINCgkJCW5saW5lcyAgICAgCTMNCgkJCW1heF93aWR0aCAgCTIzMSkNCgkJICAgIHdpZHRoICAgICAgCTM0NA0KCQkgICAgaGVpZ2h0ICAgICAJMjkyDQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmVqYjo6VHJhbnNhY3Rpb25BdHRyaWJ1dGVUeXBlIiBAMjk0DQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDEyMTYsIDI3MikNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMjk0DQoJCQlsb2NhdGlvbiAgIAkoOTc4LCA4OCkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAk0NzYNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJUcmFuc2FjdGlvbkF0dHJpYnV0ZVR5cGUiKQ0KCQkgICAgc3RlcmVvdHlwZSAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMjk0DQoJCQlsb2NhdGlvbiAgIAkoOTc4LCAzOCkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlhbmNob3IgICAgIAkxMA0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJNDc2DQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiPDxlbnVtZXJhdGlvbj4+IikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJICAgIHF1aWR1ICAgICAgCSIzNzlGNjM0NTAzQzAiDQoJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KCQkJUGFyZW50X1ZpZXcgCUAyOTQNCgkJCWxvY2F0aW9uICAgCSg5NzgsIDE0OSkNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAk3DQoJCQltYXhfd2lkdGggIAkzMDYpDQoJCSAgICB3aWR0aCAgICAgIAk0OTQNCgkJICAgIGhlaWdodCAgICAgCTQ5Mg0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkpKQ0KCShvYmplY3QgQ2xhc3NEaWFncmFtICJFSkIyLjEgLSBSZWxhdGlvbnNoaXBzIg0KCSAgICBxdWlkICAgICAgIAkiMzlCRUY5QzQwMzlDIg0KCSAgICB0aXRsZSAgICAgIAkiRUpCMi4xIC0gUmVsYXRpb25zaGlwcyINCgkgICAgem9vbSAgICAgICAJMTAwDQoJICAgIG1heF9oZWlnaHQgCTI4MzUwDQoJICAgIG1heF93aWR0aCAgCTIxNjAwDQoJICAgIG9yaWdpbl94ICAgCTANCgkgICAgb3JpZ2luX3kgICAJMTg3Ng0KCSAgICBpdGVtcyAgICAgIAkobGlzdCBkaWFncmFtX2l0ZW1fbGlzdA0KCQkob2JqZWN0IExhYmVsIEAyOTUNCgkJICAgIGxvY2F0aW9uICAgCSgzMSwgMzEpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEyDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlUUlVFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbmxpbmVzICAgICAJMQ0KCQkgICAgbWF4X3dpZHRoICAJNjAwDQoJCSAgICBsYWJlbCAgICAgIAkiRUpCIDIuMSBSZWxhdGlvbnNoaXBzIikNCgkJKG9iamVjdCBMYWJlbCBAMjk2DQoJCSAgICBsb2NhdGlvbiAgIAkoOTAsIDMwNDIpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIG5saW5lcyAgICAgCTM5DQoJCSAgICBtYXhfd2lkdGggIAkxOTI1DQoJCSAgICBsYWJlbCAgICAgIAkNCnxBbiBlbnRpdHkgYmVhbiBtYXkgaGF2ZSByZWxhdGlvbnNoaXBzIHdpdGggb3RoZXIgZW50aXR5IGJlYW5zIHdpdGggY29udGFpbmVyIG1hbmFnZWQgcGVyc2lzdGVuY2UuDQp8UmVsYXRpb25zaGlwcyBtYXkgYmUgb25lLXRvLW9uZSwgb25lLXRvLW1hbnksIG9yIG1hbnktdG8tbWFueSByZWxhdGlvbnNoaXBzLg0KfENvbnRhaW5lciBtYW5hZ2VkIHJlbGF0aW9uc2hpcHMgY2FuIGV4aXN0IG9ubHkgYW1vbmcgZW50aXR5IGJlYW5zIHdpdGhpbiB0aGUgc2FtZSBsb2NhbCByZWxhdGlvbnNoaXANCnxzY29wZSwgYXMgZGVmaW5lZCBieSB0aGUgcmVsYXRpb25zaGlwcyBlbGVtZW50IGluIHRoZSBkZXBsb3ltZW50IGRlc2NyaXB0b3IuIENvbnRhaW5lciBtYW5hZ2VkDQp8cmVsYXRpb25zaGlwcyBhcmUgZGVmaW5lZCBpbiB0ZXJtcyBvZiB0aGUgbG9jYWwgaW50ZXJmYWNlcyBvZiB0aGUgcmVsYXRlZCBiZWFucy4NCnwNCnxSZWxhdGlvbnNoaXBzIG1heSBiZSBlaXRoZXIgYmlkaXJlY3Rpb25hbCBvciB1bmlkaXJlY3Rpb25hbC4gSWYgYSByZWxhdGlvbnNoaXAgaXMgYmlkaXJlY3Rpb25hbCwgaXQgY2FuIGJlDQp8bmF2aWdhdGVkIGluIGJvdGggZGlyZWN0aW9ucywgd2hlcmVhcyBhIHVuaWRpcmVjdGlvbmFsIHJlbGF0aW9uc2hpcCBjYW4gYmUgbmF2aWdhdGVkIGluIG9uZSBkaXJlY3Rpb24NCnxvbmx5Lg0KfA0KfEEgdW5pZGlyZWN0aW9uYWwgcmVsYXRpb25zaGlwIGlzIGltcGxlbWVudGVkIHdpdGggYSBjbXItZmllbGQgb24gdGhlIGVudGl0eSBiZWFuIGluc3RhbmNlIGZyb20gd2hpY2gNCnxuYXZpZ2F0aW9uIGNhbiB0YWtlIHBsYWNlLCBhbmQgbm8gcmVsYXRlZCBjbXItZmllbGQgb24gdGhlIGVudGl0eSBiZWFuIGluc3RhbmNlIHRoYXQgaXMgdGhlIHRhcmdldCBvZiB0aGUNCnxyZWxhdGlvbnNoaXAuIFVuaWRpcmVjdGlvbmFsIHJlbGF0aW9uc2hpcHMgYXJlIHR5cGljYWxseSB1c2VkIHdoZW4gdGhlIEJlYW4gUHJvdmlkZXIgd2lzaGVzIHRvIHJlc3RyaWN0DQp8dGhlIHZpc2liaWxpdHkgb2YgYSByZWxhdGlvbnNoaXAuDQp8DQp8QW4gZW50aXR5IGJlYW4gdGhhdCBkb2VzIG5vdCBoYXZlIGEgbG9jYWwgaW50ZXJmYWNlIGNhbiBoYXZlIG9ubHkgdW5pZGlyZWN0aW9uYWwgcmVsYXRpb25zaGlwcyBmcm9tIGl0c2VsZg0KfHRvIG90aGVyIGVudGl0eSBiZWFucy4gVGhlIGxhY2sgb2YgYSBsb2NhbCBpbnRlcmZhY2UgcHJldmVudHMgb3RoZXIgZW50aXR5IGJlYW5zIGZyb20gaGF2aW5nIGEgcmVsYXRpb25zaGlwDQp8dG8gaXQuDQp8DQp8VGhlIGJlYW4gZGV2ZWxvcGVyIG5hdmlnYXRlcyBvciBtYW5pcHVsYXRlcyBsb2dpY2FsIHJlbGF0aW9uc2hpcHMgYnkgdXNpbmcgdGhlIGdldCBhbmQgc2V0IGFjY2Vzc29yDQp8bWV0aG9kcyBmb3IgdGhlIGNvbnRhaW5lciBtYW5hZ2VkIHJlbGF0aW9uc2hpcCBmaWVsZHMgYW5kIHRoZSBqYXZhLnV0aWwuQ29sbGVjdGlvbiBBUEkgZm9yDQp8Y29sbGVjdGlvbi12YWx1ZWQgY29udGFpbmVyIG1hbmFnZWQgcmVsYXRpb25zaGlwIGZpZWxkcy4NCnwNCnxUaGUgYmVhbiBwcm92aWRlciBtdXN0IGNvbnNpZGVyIHRoZSB0eXBlIGFuZCBjYXJkaW5hbGl0eSBvZiByZWxhdGlvbnNoaXBzIHdoZW4gdGhlIGVudGl0eSBiZWFuIGNsYXNzZXMNCnxhcmUgcHJvZ3JhbW1lZC4gVGhlIGdldCBtZXRob2QgZm9yIGEgY21yLWZpZWxkIG11c3QgcmV0dXJuIGVpdGhlciB0aGUgbG9jYWwgaW50ZXJmYWNlIG9mIHRoZSBlbnRpdHkgYmVhbg0KfG9yIGEgY29sbGVjdGlvbiAobW9yZSBwcmVjaXNlbHksIGVpdGhlciBqYXZhLnV0aWwuQ29sbGVjdGlvbiBvciBqYXZhLnV0aWwuU2V0KSBvZiB0aGUNCnxzYW1lLiBUaGUgc2V0IG1ldGhvZCBmb3IgdGhlIHJlbGF0aW9uc2hpcCBtdXN0IHRha2UgYXMgYW4gYXJndW1lbnQgdGhlIGVudGl0eSBiZWFuknMgbG9jYWwgaW50ZXJmYWNlIG9yIGENCnxjb2xsZWN0aW9uIG9mIHRoZSBzYW1lLg0KCQkgICAgKQ0KCQkob2JqZWN0IExhYmVsIEAyOTcNCgkJICAgIGxvY2F0aW9uICAgCSg5MCwgMjk2MikNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTINCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCVRSVUUNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBubGluZXMgICAgIAkxDQoJCSAgICBtYXhfd2lkdGggIAk2MDANCgkJICAgIGxhYmVsICAgICAgCSJSZWdhcmRpbmcgUmVsYXRpb25zaGlwcyIpDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6ZWpiOjpDTVBBdHRyaWJ1dGUiIEAyOTgNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoODgwLCAyODE2KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAyOTgNCgkJCWxvY2F0aW9uICAgCSg2MTUsIDI3MTMpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMg0KCQkJbWF4X3dpZHRoICAJNTMwDQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiQ01QQXR0cmlidXRlIikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJICAgIHF1aWR1ICAgICAgCSIzQTIyODg2MzAwMDMiDQoJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KCQkJUGFyZW50X1ZpZXcgCUAyOTgNCgkJCWxvY2F0aW9uICAgCSg2MTUsIDI3NzQpDQoJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJaWNvbl9zdHlsZSAJIkljb24iDQoJCQlmaWxsX2NvbG9yIAkxNjc3NzIxNQ0KCQkJYW5jaG9yICAgICAJMg0KCQkJbmxpbmVzICAgICAJMg0KCQkJbWF4X3dpZHRoICAJNTcyKQ0KCQkgICAgd2lkdGggICAgICAJNTQ4DQoJCSAgICBoZWlnaHQgICAgIAkyMzANCgkJICAgIGFubm90YXRpb24gCTgNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6ZWpiOjpNdWx0aXBsaWNpdHlLaW5kIiBAMjk5DQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDI2OTAsIDE1MzIpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDI5OQ0KCQkJbG9jYXRpb24gICAJKDI1MjgsIDE0NDgpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJMzI0DQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiTXVsdGlwbGljaXR5S2luZCIpDQoJCSAgICBzdGVyZW90eXBlIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAyOTkNCgkJCWxvY2F0aW9uICAgCSgyNTI4LCAxMzk4KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCWFuY2hvciAgICAgCTEwDQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAkzMjENCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSI8PGVudW1lcmF0aW9uPj4iKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAkzMjc2OA0KCQkgICAgZmlsbF9jb2xvciAJMTM0MzQ4MzMNCgkJICAgIHF1aWR1ICAgICAgCSIzOTlBRUJDQjAyQjciDQoJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KCQkJUGFyZW50X1ZpZXcgCUAyOTkNCgkJCWxvY2F0aW9uICAgCSgyNTI4LCAxNTA5KQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCWljb25fc3R5bGUgCSJJY29uIg0KCQkJZmlsbF9jb2xvciAJMTY3NzcyMTUNCgkJCWFuY2hvciAgICAgCTINCgkJCW5saW5lcyAgICAgCTMNCgkJCW1heF93aWR0aCAgCTE1OSkNCgkJICAgIHdpZHRoICAgICAgCTM0Mg0KCQkgICAgaGVpZ2h0ICAgICAJMjkyDQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IE5vdGVWaWV3IEAzMDANCgkJICAgIGxvY2F0aW9uICAgCSgzMzM5LCAyMDE1KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAzMDANCgkJCWxvY2F0aW9uICAgCSgyNTgzLCAxODcxKQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTUNCgkJCW1heF93aWR0aCAgCTE0NzcNCgkJCWxhYmVsICAgICAgCSJDQ00gLSBUaGlzIHdhcyBvcmlnaW5hbGx5IG1vZGVsZWQgYXMgYW4gZU11bHRpcGxpY2l0eSwgYnV0IGhhcyBiZWVuIHNpbXBsaWZpZWQgdG8gYSBzcGVjaWZpYyBzZXQgb2YgZW51bSB2YWx1ZXMuICBUaGUgZW51bWVyYXRpb24gdHlwZSBpcyBkaWZmZXJlbnQgZnJvbSBlTXVsdGlwbGljaXR5LCB3aGljaCBjYXB0dXJlcyBtdWNoIG1vcmUgaW5mb3JtYXRpb24sIGxpa2UgdXBwZXIgYW5kIGxvd2VyIGJvdW5kcy4gIElmIHdlIGZpbmQgdGhhdCB0aGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBjYXB0dXJlZCBieSBlTXVsdGlwbGljaXR5IGlzIHJlcXVpcmVkLCBpdCBjYW4gYmUgYWRkZWQgaW4gYW4gZXh0ZW5zaW9uIHRvIFJlbGF0aW9uc2hpcFJvbGUuIikNCgkJICAgIGxpbmVfY29sb3IgCTMyNzY4DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDgzMw0KCQkgICAgd2lkdGggICAgICAJMTUzNw0KCQkgICAgaGVpZ2h0ICAgICAJMzAwKQ0KCQkob2JqZWN0IE5vdGVWaWV3IEAzMDENCgkJICAgIGxvY2F0aW9uICAgCSgxOTI0LCAyNDI4KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAzMDENCgkJCWxvY2F0aW9uICAgCSgxMzY3LCAyMTU2KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTEwDQoJCQltYXhfd2lkdGggIAkxMDc4DQoJCQlsYWJlbCAgICAgIAkNCnxUaGUgY21yLWZpZWxkLW5hbWUgZWxlbWVudCBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgYSBsb2dpY2FsIHJlbGF0aW9uc2hpcCBmaWVsZCBpbiB0aGUgZW50aXR5IGJlYW4gY2xhc3MuIFRoZSBuYW1lIG9mIHRoZSBjbXItZmllbGQgbXVzdCBiZWdpbiB3aXRoIGEgbG93ZXJjYXNlIGxldHRlci4gVGhpcyBmaWVsZCBpcyBhY2Nlc3NlZCBieSBtZXRob2RzIHdob3NlIG5hbWVzIGNvbnNpc3RzIG9mIHRoZSBuYW1lIG9mIHRoZSBmaWVsZCBzcGVjaWZpZWQgYnkgY21yLWZpZWxkLW5hbWUgaW4gd2hpY2ggdGhlIGZpcnN0IGxldHRlciBpcyB1cHBlcmNhc2VkLCBwcmVmaXhlZCBieSAiZ2V0IiBvciAic2V0Ii4NCnwNCnxAaW52YXJpYW50IFRoZSBuYW1lIG9mIHRoZSBjbXItZmllbGQgbXVzdCBiZWdpbiB3aXRoIGEgbG93ZXJjYXNlIGxldHRlci4NCgkJCSkNCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCSAgICB3aWR0aCAgICAgIAkxMTM4DQoJCSAgICBoZWlnaHQgICAgIAk1NTYpDQoJCShvYmplY3QgQXR0YWNoVmlldyAiIiBAMzAyDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBjbGllbnQgICAgIAlAMzAwDQoJCSAgICBzdXBwbGllciAgIAlAMjk5DQoJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCSgyNzQ4LCAxODY0KQ0KCQkJKDI3NDgsIDE2NzgpKQ0KCQkgICAgbGluZV9zdHlsZSAJMw0KCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyNzQ4LCAxODY0KQ0KCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI3NDgsIDE2NzgpKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmphdmE6OkphdmFDbGFzcyIgQDMwMw0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIFN1cHByZXNzQXR0cmlidXRlIAlUUlVFDQoJCSAgICBTdXBwcmVzc09wZXJhdGlvbiAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDQxNiwgMjY1NikNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMzAzDQoJCQlsb2NhdGlvbiAgIAkoMzIzLCAyNTc3KQ0KCQkJbmxpbmVzICAgICAJMg0KCQkJbWF4X3dpZHRoICAJMTg2DQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiSmF2YUNsYXNzIikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgZmlsbF9jb2xvciAJMTY3NzcyMTUNCgkJICAgIHF1aWR1ICAgICAgCSIzNjU0OUZDQzAwRkEiDQoJCSAgICB3aWR0aCAgICAgIAkyMDQNCgkJICAgIGhlaWdodCAgICAgCTE4Mg0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OkVKQkphciIgQDMwNA0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIFN1cHByZXNzQXR0cmlidXRlIAlUUlVFDQoJCSAgICBTdXBwcmVzc09wZXJhdGlvbiAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDU0NCwgMjU2KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAzMDQNCgkJCWxvY2F0aW9uICAgCSgzODQsIDIzMykNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAkzMjANCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJFSkJKYXIiKQ0KCQkgICAgc3RlcmVvdHlwZSAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMzA0DQoJCQlsb2NhdGlvbiAgIAkoMzg0LCAxODMpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJYW5jaG9yICAgICAJMTANCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTMxNw0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIjw8Y29tcG9uZW50Pj4iKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkgICAgcXVpZHUgICAgICAJIjM3MUJDNTVEMDFFMSINCgkJICAgIHdpZHRoICAgICAgCTMzOA0KCQkgICAgaGVpZ2h0ICAgICAJMTcwDQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmVqYjo6Q01SRmllbGQiIEAzMDUNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoNDMyLCAyMzA0KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAzMDUNCgkJCWxvY2F0aW9uICAgCSgzMjgsIDIyNTQpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJMjA4DQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiQ01SRmllbGQiKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAk0MjI3MDcyDQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDgzMw0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYxODEwMDA0QiINCgkJICAgIHdpZHRoICAgICAgCTIyNg0KCQkgICAgaGVpZ2h0ICAgICAJMTI0DQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IEluaGVyaXRWaWV3ICIiIEAzMDYNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTMyNzY4DQoJCSAgICBxdWlkdSAgICAgIAkiMzk5QUQ0NjkwMTcwIg0KCQkgICAgY2xpZW50ICAgICAJQDMwNQ0KCQkgICAgc3VwcGxpZXIgICAJQDI5OA0KCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkoNDg2LCAyMzY2KQ0KCQkJKDc3OCwgMjcwMCkpDQoJCSAgICBsaW5lX3N0eWxlIAkwKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNDQiIEAzMDcNCgkJICAgIGxvY2F0aW9uICAgCSg0MTYsIDI0NjUpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTMyNzY4DQoJCSAgICBxdWlkdSAgICAgIAkiMzk5QUUwRkIwM0QzIg0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJjb2xsZWN0aW9uVHlwZSIgQDMwOA0KCQkJICAgIFBhcmVudF9WaWV3IAlAMzA3DQoJCQkgICAgbG9jYXRpb24gICAJKDAsIDU5MykNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMwOQ0KCQkJCVBhcmVudF9WaWV3IAlAMzA4DQoJCQkJbG9jYXRpb24gICAJKDI0NywgMjUyOSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMjkxDQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrY29sbGVjdGlvblR5cGUiDQoJCQkJcGN0RGlzdCAgICAJMC42NTA4MTMNCgkJCQloZWlnaHQgICAgIAkxNzANCgkJCQlvcmllbnRhdGlvbiAJMSkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOTlBRTBGQzAzOEYiDQoJCQkgICAgY2xpZW50ICAgICAJQDMwNw0KCQkJICAgIHN1cHBsaWVyICAgCUAzMDMNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoNDE2LCAyNDY1KQ0KCQkJCSg0MTYsIDI1NjUpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDQxNiwgMjQ2NSkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNDE2LCAyNTY1KQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxMA0KCQkJCVBhcmVudF9WaWV3IAlAMzA4DQoJCQkJbG9jYXRpb24gICAJKDQ3MSwgMjU0MCkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjAuLjEiDQoJCQkJcGN0RGlzdCAgICAJMC43NDc0NzUNCgkJCQloZWlnaHQgICAgIAk1NQ0KCQkJCW9yaWVudGF0aW9uIAkwKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDQ1IiBAMzExDQoJCQkgICAgUGFyZW50X1ZpZXcgCUAzMDcNCgkJCSAgICBsb2NhdGlvbiAgIAkoMCwgNTkzKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5OUFFMEZDMDNCNyINCgkJCSAgICBjbGllbnQgICAgIAlAMzA3DQoJCQkgICAgc3VwcGxpZXIgICAJQDMwNQ0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSg0MTYsIDI0NjUpDQoJCQkJKDQxNiwgMjM2NikpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNDE2LCAyNDY1KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg0MTYsIDIzNjYpKSkpDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6ZWpiOjpFSkJSZWxhdGlvbiIgQDMxMg0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSg2MTYsIDk5MikNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMzEyDQoJCQlsb2NhdGlvbiAgIAkoMzUxLCA4NjUpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMg0KCQkJbWF4X3dpZHRoICAJNTMwDQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiRUpCUmVsYXRpb24iKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAk0MjI3MDcyDQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDgzMw0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYwQzAyMDNCRiINCgkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQoJCQlQYXJlbnRfVmlldyAJQDMxMg0KCQkJbG9jYXRpb24gICAJKDM1MSwgOTI2KQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCWljb25fc3R5bGUgCSJJY29uIg0KCQkJZmlsbF9jb2xvciAJMTY3NzcyMTUNCgkJCWFuY2hvciAgICAgCTINCgkJCW5saW5lcyAgICAgCTMNCgkJCW1heF93aWR0aCAgCTU3MikNCgkJICAgIHdpZHRoICAgICAgCTU0OA0KCQkgICAgaGVpZ2h0ICAgICAJMjc4DQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmVqYjo6UmVsYXRpb25zaGlwcyIgQDMxMw0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSg1MjgsIDU3NykNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMzEzDQoJCQlsb2NhdGlvbiAgIAkoMjYzLCA0OTkpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJNTMwDQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiUmVsYXRpb25zaGlwcyIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTQyMjcwNzINCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODMzDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRUY4MTcwM0IzIg0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlAMzEzDQoJCQlsb2NhdGlvbiAgIAkoMjYzLCA1NjApDQoJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJaWNvbl9zdHlsZSAJIkljb24iDQoJCQlmaWxsX2NvbG9yIAkxNjc3NzIxNQ0KCQkJYW5jaG9yICAgICAJMg0KCQkJbmxpbmVzICAgICAJMg0KCQkJbWF4X3dpZHRoICAJNTcyKQ0KCQkgICAgd2lkdGggICAgICAJNTQ4DQoJCSAgICBoZWlnaHQgICAgIAkxODANCgkJICAgIGFubm90YXRpb24gCTgNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQxOSIgQDMxNA0KCQkgICAgbG9jYXRpb24gICAJKDU1MCwgNDEzKQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMzI3NjgNCgkJICAgIHF1aWR1ICAgICAgCSIzOUJFRjg4NzAzNzgiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgImVqYkphciIgQDMxNQ0KCQkJICAgIFBhcmVudF9WaWV3IAlAMzE0DQoJCQkgICAgbG9jYXRpb24gICAJKDU0LCAxMDkpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTYNCgkJCQlQYXJlbnRfVmlldyAJQDMxNQ0KCQkJCWxvY2F0aW9uICAgCSg2NTMsIDM2OSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTM3DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrZWpiSmFyIg0KCQkJCXBjdERpc3QgICAgCTAuNjA4MTA4DQoJCQkJaGVpZ2h0ICAgICAJMTAzDQoJCQkJb3JpZW50YXRpb24gCTEpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzlCRUY4ODkwMDNEIg0KCQkJICAgIGNsaWVudCAgICAgCUAzMTQNCgkJCSAgICBzdXBwbGllciAgIAlAMzA0DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDU1MCwgNDEzKQ0KCQkJCSg1NTAsIDM0MCkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTUwLCA0MTMpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDU1MCwgMzQwKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMxNw0KCQkJCVBhcmVudF9WaWV3IAlAMzE1DQoJCQkJbG9jYXRpb24gICAJKDQ5MywgMzY0KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMSINCgkJCQlwY3REaXN0ICAgIAkwLjY3NTY3Ng0KCQkJCWhlaWdodCAgICAgCTU4DQoJCQkJb3JpZW50YXRpb24gCTApKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAicmVsYXRpb25zaGlwTGlzdCIgQDMxOA0KCQkJICAgIFBhcmVudF9WaWV3IAlAMzE0DQoJCQkgICAgbG9jYXRpb24gICAJKDU0LCAxMDkpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMTkNCgkJCQlQYXJlbnRfVmlldyAJQDMxOA0KCQkJCWxvY2F0aW9uICAgCSg3MjUsIDQ1OSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMzA0DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrcmVsYXRpb25zaGlwTGlzdCINCgkJCQlwY3REaXN0ICAgIAkwLjYzNzM2Mw0KCQkJCWhlaWdodCAgICAgCTE3NQ0KCQkJCW9yaWVudGF0aW9uIAkwKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5QkVGODg5MDAzQyINCgkJCSAgICBjbGllbnQgICAgIAlAMzE0DQoJCQkgICAgc3VwcGxpZXIgICAJQDMxMw0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSg1NTAsIDQxMykNCgkJCQkoNTUwLCA0ODcpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDU1MCwgNDEzKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1NTAsIDQ4NykNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMjANCgkJCQlQYXJlbnRfVmlldyAJQDMxOA0KCQkJCWxvY2F0aW9uICAgCSg0ODcsIDQ2MykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjAuLjEiDQoJCQkJcGN0RGlzdCAgICAJMC42NzAzMzANCgkJCQloZWlnaHQgICAgIAk2NA0KCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjEiIEAzMjENCgkJICAgIGxvY2F0aW9uICAgCSg2NDEsIDc1OSkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJNDIyNzA3Mg0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYwQzQwMDE0NyINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAiZWpiUmVsYXRpb25zIiBAMzIyDQoJCQkgICAgUGFyZW50X1ZpZXcgCUAzMjENCgkJCSAgICBsb2NhdGlvbiAgIAkoMjczLCA1MDMpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMjMNCgkJCQlQYXJlbnRfVmlldyAJQDMyMg0KCQkJCWxvY2F0aW9uICAgCSg0OTIsIDc5MykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMjQ0DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrZWpiUmVsYXRpb25zIg0KCQkJCXBjdERpc3QgICAgCTAuMzc5MzEwDQoJCQkJaGVpZ2h0ICAgICAJMTUwDQoJCQkJb3JpZW50YXRpb24gCTEpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzlCRjBDNDEwMDFDIg0KCQkJICAgIGNsaWVudCAgICAgCUAzMjENCgkJCSAgICBzdXBwbGllciAgIAlAMzEyDQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDY0MSwgNzU5KQ0KCQkJCSg2NDEsIDg1MikpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNjQxLCA3NTkpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDY0MSwgODUyKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMyNA0KCQkJCVBhcmVudF9WaWV3IAlAMzIyDQoJCQkJbG9jYXRpb24gICAJKDY5NywgODA1KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMC4ubiINCgkJCQlwY3REaXN0ICAgIAkwLjUwMDAwMA0KCQkJCWhlaWdodCAgICAgCTU2DQoJCQkJb3JpZW50YXRpb24gCTApKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAicmVsYXRpb25zaGlwTGlzdCIgQDMyNQ0KCQkJICAgIFBhcmVudF9WaWV3IAlAMzIxDQoJCQkgICAgbG9jYXRpb24gICAJKDI3MywgNTAzKQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzI2DQoJCQkJUGFyZW50X1ZpZXcgCUAzMjUNCgkJCQlsb2NhdGlvbiAgIAkoODQwLCA3MDEpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTMwNA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK3JlbGF0aW9uc2hpcExpc3QiDQoJCQkJcGN0RGlzdCAgICAJMC42MjIyMjINCgkJCQloZWlnaHQgICAgIAkxOTkNCgkJCQlvcmllbnRhdGlvbiAJMSkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOUJGMEM0MTAwMUQiDQoJCQkgICAgY2xpZW50ICAgICAJQDMyMQ0KCQkJICAgIHN1cHBsaWVyICAgCUAzMTMNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoNjQxLCA3NTkpDQoJCQkJKDY0MSwgNjY2KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg2NDEsIDc1OSkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjQxLCA2NjYpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzI3DQoJCQkJUGFyZW50X1ZpZXcgCUAzMjUNCgkJCQlsb2NhdGlvbiAgIAkoNTY4LCA2OTQpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTINCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTE1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIwLi4xIg0KCQkJCXBjdERpc3QgICAgCTAuNzExMTExDQoJCQkJaGVpZ2h0ICAgICAJNzQNCgkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OkVKQlJlbGF0aW9uc2hpcFJvbGUiIEAzMjgNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoNTM3LCAxNTY5KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAzMjgNCgkJCWxvY2F0aW9uICAgCSgyNzIsIDE0MjApDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJNTMwDQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiRUpCUmVsYXRpb25zaGlwUm9sZSIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTQyMjcwNzINCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODMzDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRjBERDAwMjNEIg0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlAMzI4DQoJCQlsb2NhdGlvbiAgIAkoMjcyLCAxNDgxKQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCWljb25fc3R5bGUgCSJJY29uIg0KCQkJZmlsbF9jb2xvciAJMTY3NzcyMTUNCgkJCWFuY2hvciAgICAgCTINCgkJCW5saW5lcyAgICAgCTUNCgkJCW1heF93aWR0aCAgCTU3MikNCgkJICAgIHdpZHRoICAgICAgCTU0OA0KCQkgICAgaGVpZ2h0ICAgICAJMzIyDQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjUiIEAzMjkNCgkJICAgIGxvY2F0aW9uICAgCSgxMDEsIDE5MTApDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTQyMjcwNzINCgkJICAgIHF1aWR1ICAgICAgCSIzOUJGMUJCRDAyRUQiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgIi9vcHBvc2l0ZSIgQDMzMA0KCQkJICAgIFBhcmVudF9WaWV3IAlAMzI5DQoJCQkgICAgbG9jYXRpb24gICAJKC00MTEsIDc3NCkNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDMzMQ0KCQkJCVBhcmVudF9WaWV3IAlAMzMwDQoJCQkJbG9jYXRpb24gICAJKDQ5MywgMTc4NSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTg4DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrL29wcG9zaXRlIg0KCQkJCXBjdERpc3QgICAgCTAuOTA1MTkyDQoJCQkJaGVpZ2h0ICAgICAJMTI0DQoJCQkJb3JpZW50YXRpb24gCTEpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzlCRjFCQzAwMzlDIg0KCQkJICAgIGNsaWVudCAgICAgCUAzMjkNCgkJCSAgICBzdXBwbGllciAgIAlAMzI4DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDEwMSwgMTkxMCkNCgkJCQkoMTAxLCAxOTcwKQ0KCQkJCSgzNjksIDE5NzApDQoJCQkJKDM2OSwgMTczMCkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTAxLCAxOTEwKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzNjksIDE3MzApKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMjYiIEAzMzINCgkJCSAgICBQYXJlbnRfVmlldyAJQDMyOQ0KCQkJICAgIGxvY2F0aW9uICAgCSgtNDExLCA3NzQpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzlCRjFCQzAwM0E2Ig0KCQkJICAgIGNsaWVudCAgICAgCUAzMjkNCgkJCSAgICBzdXBwbGllciAgIAlAMzI4DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDEwMSwgMTkxMCkNCgkJCQkoMTAxLCAxNTkwKQ0KCQkJCSgyNjMsIDE1OTApKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwMSwgMTkxMCkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjYzLCAxNTkwKSkpKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMjQiIEAzMzMNCgkJICAgIGxvY2F0aW9uICAgCSg1MDAsIDE5ODYpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTQyMjcwNzINCgkJICAgIHF1aWR1ICAgICAgCSIzOUJGMTgyMDAxQzEiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgImNtckZpZWxkIiBAMzM0DQoJCQkgICAgUGFyZW50X1ZpZXcgCUAzMzMNCgkJCSAgICBsb2NhdGlvbiAgIAkoLTEyLCA4NTApDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMzUNCgkJCQlQYXJlbnRfVmlldyAJQDMzNA0KCQkJCWxvY2F0aW9uICAgCSgzODMsIDIxOTMpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTE4Mg0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK2NtckZpZWxkIg0KCQkJCXBjdERpc3QgICAgCTAuODA5NTI0DQoJCQkJaGVpZ2h0ICAgICAJMTE4DQoJCQkJb3JpZW50YXRpb24gCTEpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzlCRjE4MjEwMEQyIg0KCQkJICAgIGNsaWVudCAgICAgCUAzMzMNCgkJCSAgICBzdXBwbGllciAgIAlAMzA1DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDUwMCwgMTk4NikNCgkJCQkoNTAwLCAyMjQyKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg1MDAsIDE5ODYpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDUwMCwgMjI0MikNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMzYNCgkJCQlQYXJlbnRfVmlldyAJQDMzNA0KCQkJCWxvY2F0aW9uICAgCSg1MzksIDIxNzkpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTINCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTE1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIxIg0KCQkJCXBjdERpc3QgICAgCTAuNzUyMjk0DQoJCQkJaGVpZ2h0ICAgICAJMzkNCgkJCQlvcmllbnRhdGlvbiAJMCkpDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJyb2xlIiBAMzM3DQoJCQkgICAgUGFyZW50X1ZpZXcgCUAzMzMNCgkJCSAgICBsb2NhdGlvbiAgIAkoLTEyLCA4NTApDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzMzgNCgkJCQlQYXJlbnRfVmlldyAJQDMzNw0KCQkJCWxvY2F0aW9uICAgCSg1NzIsIDE3ODApDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTEwNA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK3JvbGUiDQoJCQkJcGN0RGlzdCAgICAJMC44MDU3MTQNCgkJCQloZWlnaHQgICAgIAk3Mg0KCQkJCW9yaWVudGF0aW9uIAkxKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5QkYxODIxMDBEQyINCgkJCSAgICBjbGllbnQgICAgIAlAMzMzDQoJCQkgICAgc3VwcGxpZXIgICAJQDMyOA0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSg1MDAsIDE5ODYpDQoJCQkJKDUwMCwgMTczMCkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoNTAwLCAxOTg2KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg1MDAsIDE3MzApKSkpDQoJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyMiIgQDMzOQ0KCQkgICAgbG9jYXRpb24gICAJKDY0NywgMTI2OCkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJNDIyNzA3Mg0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYwREUzMDEzNiINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAicmVsYXRpb25zaGlwUm9sZXMiIEAzNDANCgkJCSAgICBQYXJlbnRfVmlldyAJQDMzOQ0KCQkJICAgIGxvY2F0aW9uICAgCSgxNTEsIDU2NCkNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM0MQ0KCQkJCVBhcmVudF9WaWV3IAlAMzQwDQoJCQkJbG9jYXRpb24gICAJKDQ2MCwgMTM2MykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMzMyDQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrcmVsYXRpb25zaGlwUm9sZXMiDQoJCQkJcGN0RGlzdCAgICAJMC42ODUxODUNCgkJCQloZWlnaHQgICAgIAkxODgNCgkJCQlvcmllbnRhdGlvbiAJMSkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOUJGMERFMzAzRDUiDQoJCQkgICAgY2xpZW50ICAgICAJQDMzOQ0KCQkJICAgIHN1cHBsaWVyICAgCUAzMjgNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoNjQ3LCAxMjY4KQ0KCQkJCSg2NDcsIDE0MDcpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY0NywgMTI2OCkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjQ3LCAxNDA3KQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM0Mg0KCQkJCVBhcmVudF9WaWV3IAlAMzQwDQoJCQkJbG9jYXRpb24gICAJKDY4NCwgMTM3NCkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjIiDQoJCQkJcGN0RGlzdCAgICAJMC43NjE5MDUNCgkJCQloZWlnaHQgICAgIAkzNw0KCQkJCW9yaWVudGF0aW9uIAkwKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgInJlbGF0aW9uc2hpcCIgQDM0Mw0KCQkJICAgIFBhcmVudF9WaWV3IAlAMzM5DQoJCQkgICAgbG9jYXRpb24gICAJKDE1MSwgNTY0KQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzQ0DQoJCQkJUGFyZW50X1ZpZXcgCUAzNDMNCgkJCQlsb2NhdGlvbiAgIAkoNDk0LCAxMTkwKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkyMzYNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIityZWxhdGlvbnNoaXAiDQoJCQkJcGN0RGlzdCAgICAJMC41NzUzNDINCgkJCQloZWlnaHQgICAgIAkxNTQNCgkJCQlvcmllbnRhdGlvbiAJMCkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOUJGMERFMzAzRDYiDQoJCQkgICAgY2xpZW50ICAgICAJQDMzOQ0KCQkJICAgIHN1cHBsaWVyICAgCUAzMTINCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoNjQ3LCAxMjY4KQ0KCQkJCSg2NDcsIDExMzApKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDY0NywgMTI2OCkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNjQ3LCAxMTMwKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM0NQ0KCQkJCVBhcmVudF9WaWV3IAlAMzQzDQoJCQkJbG9jYXRpb24gICAJKDY4NiwgMTE3MikNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjEiDQoJCQkJcGN0RGlzdCAgICAJMC42OTg2MzANCgkJCQloZWlnaHQgICAgIAkzOQ0KCQkJCW9yaWVudGF0aW9uIAkxKSkpKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmNvbW1vbjo6RGVzY3JpcHRpb24iIEAzNDYNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMTU5NiwgNDcxKQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAzNDYNCgkJCWxvY2F0aW9uICAgCSgxNDY4LCAzNDIpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJMjU2DQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiRGVzY3JpcHRpb24iKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAk4NDIxNTA0DQoJCSAgICBmaWxsX2NvbG9yIAkxMjYzMjI1Ng0KCQkgICAgcXVpZHUgICAgICAJIjNFNEE5OEQ2MDJFMCINCgkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQoJCQlQYXJlbnRfVmlldyAJQDM0Ng0KCQkJbG9jYXRpb24gICAJKDE0NjgsIDQ1NykNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkzDQoJCQltYXhfd2lkdGggIAkyODUpDQoJCSAgICB3aWR0aCAgICAgIAkyNzQNCgkJICAgIGhlaWdodCAgICAgCTI4Mg0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDY1IiBAMzQ3DQoJCSAgICBsb2NhdGlvbiAgIAkoMTA0MiwgNjEzKQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkxMDk0OTU1OQ0KCQkgICAgcXVpZHUgICAgICAJIjNFNEQxRkNCMDFBQSINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAiZGVzY3JpcHRpb25zIiBAMzQ4DQoJCQkgICAgUGFyZW50X1ZpZXcgCUAzNDcNCgkJCSAgICBsb2NhdGlvbiAgIAkoNTMxLCAtMzc5KQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzQ5DQoJCQkJUGFyZW50X1ZpZXcgCUAzNDgNCgkJCQlsb2NhdGlvbiAgIAkoMTMxMCwgNTk3KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkyNjANCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIitkZXNjcmlwdGlvbnMiDQoJCQkJcGN0RGlzdCAgICAJMC42NDU2MjENCgkJCQloZWlnaHQgICAgIAkxNw0KCQkJCW9yaWVudGF0aW9uIAkwKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjNFNEQxRkNDMDBDNSINCgkJCSAgICBjbGllbnQgICAgIAlAMzQ3DQoJCQkgICAgc3VwcGxpZXIgICAJQDM0Ng0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxMDQyLCA2MTMpDQoJCQkJKDE0NTksIDYxMykpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA0MiwgNjEzKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNDU5LCA2MTMpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzUwDQoJCQkJUGFyZW50X1ZpZXcgCUAzNDgNCgkJCQlsb2NhdGlvbiAgIAkoMTM2NiwgNjU0KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMC4ubiINCgkJCQlwY3REaXN0ICAgIAkwLjc3NTk2Nw0KCQkJCWhlaWdodCAgICAgCTQxDQoJCQkJb3JpZW50YXRpb24gCTEpKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNjYiIEAzNTENCgkJCSAgICBQYXJlbnRfVmlldyAJQDM0Nw0KCQkJICAgIGxvY2F0aW9uICAgCSg1MzEsIC0zNzkpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiM0U0RDFGQ0MwMEUzIg0KCQkJICAgIGNsaWVudCAgICAgCUAzNDcNCgkJCSAgICBzdXBwbGllciAgIAlAMzEyDQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDEwNDIsIDYxMykNCgkJCQkoODY1LCA2MTMpDQoJCQkJKDg2NSwgODUzKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDQyLCA2MTMpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDg2NSwgODUzKSkpKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNzMiIEAzNTINCgkJICAgIGxvY2F0aW9uICAgCSgxMTMwLCA1MDYpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTEwOTQ5NTU5DQoJCSAgICBxdWlkdSAgICAgIAkiM0U0RDFGQkYwMUNCIg0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJkZXNjcmlwdGlvbnMiIEAzNTMNCgkJCSAgICBQYXJlbnRfVmlldyAJQDM1Mg0KCQkJICAgIGxvY2F0aW9uICAgCSg2MDIsIC03MCkNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM1NA0KCQkJCVBhcmVudF9WaWV3IAlAMzUzDQoJCQkJbG9jYXRpb24gICAJKDEyOTksIDQ2MykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMjYwDQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrZGVzY3JpcHRpb25zIg0KCQkJCXBjdERpc3QgICAgCTAuNTEyOTAzDQoJCQkJaGVpZ2h0ICAgICAJNDQNCgkJCQlvcmllbnRhdGlvbiAJMCkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzRTREMUZDMTAwMUYiDQoJCQkgICAgY2xpZW50ICAgICAJQDM1Mg0KCQkJICAgIHN1cHBsaWVyICAgCUAzNDYNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMTEzMCwgNTA2KQ0KCQkJCSgxNDU5LCA1MDYpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDExMzAsIDUwNikNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTQ1OSwgNTA2KQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM1NQ0KCQkJCVBhcmVudF9WaWV3IAlAMzUzDQoJCQkJbG9jYXRpb24gICAJKDEzNDQsIDU0MikNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjAuLm4iDQoJCQkJcGN0RGlzdCAgICAJMC42NTQ4MzkNCgkJCQloZWlnaHQgICAgIAkzNg0KCQkJCW9yaWVudGF0aW9uIAkxKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDc0IiBAMzU2DQoJCQkgICAgUGFyZW50X1ZpZXcgCUAzNTINCgkJCSAgICBsb2NhdGlvbiAgIAkoNjAyLCAtNzApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiM0U0RDFGQzEwMDQ3Ig0KCQkJICAgIGNsaWVudCAgICAgCUAzNTINCgkJCSAgICBzdXBwbGllciAgIAlAMzEzDQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDExMzAsIDUwNikNCgkJCQkoODAyLCA1MDYpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDExMzAsIDUwNikNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoODAyLCA1MDYpKSkpDQoJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ3NyIgQDM1Nw0KCQkgICAgbG9jYXRpb24gICAJKDEyODUsIDExNjkpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTEwOTQ5NTU5DQoJCSAgICBxdWlkdSAgICAgIAkiM0U0RDIwQzEwMkM2Ig0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJkZXNjcmlwdGlvbnMiIEAzNTgNCgkJCSAgICBQYXJlbnRfVmlldyAJQDM1Nw0KCQkJICAgIGxvY2F0aW9uICAgCSg3NDgsIC00MDApDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNTkNCgkJCQlQYXJlbnRfVmlldyAJQDM1OA0KCQkJCWxvY2F0aW9uICAgCSgxNDA5LCA3MjQpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTI2MA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK2Rlc2NyaXB0aW9ucyINCgkJCQlwY3REaXN0ICAgIAkwLjg2MTU5Ng0KCQkJCWhlaWdodCAgICAgCTEyNQ0KCQkJCW9yaWVudGF0aW9uIAkwKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjNFNEQyMEM0MDBDQyINCgkJCSAgICBjbGllbnQgICAgIAlAMzU3DQoJCQkgICAgc3VwcGxpZXIgICAJQDM0Ng0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxMjg1LCAxMTY5KQ0KCQkJCSgxNTMzLCAxMTY5KQ0KCQkJCSgxNTMzLCA2MTIpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyODUsIDExNjkpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE1MzMsIDYxMikNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNjANCgkJCQlQYXJlbnRfVmlldyAJQDM1OA0KCQkJCWxvY2F0aW9uICAgCSgxNDgxLCA2NzYpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTINCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTE1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIwLi5uIg0KCQkJCXBjdERpc3QgICAgCTAuOTIxNDQ2DQoJCQkJaGVpZ2h0ICAgICAJNTMNCgkJCQlvcmllbnRhdGlvbiAJMCkpDQoJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ3OCIgQDM2MQ0KCQkJICAgIFBhcmVudF9WaWV3IAlAMzU3DQoJCQkgICAgbG9jYXRpb24gICAJKDc0OCwgLTQwMCkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzRTREMjBDNDAwRUEiDQoJCQkgICAgY2xpZW50ICAgICAJQDM1Nw0KCQkJICAgIHN1cHBsaWVyICAgCUAzMjgNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMTI4NSwgMTE2OSkNCgkJCQkoNzE5LCAxMTY5KQ0KCQkJCSg3MTksIDE0MDgpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEyODUsIDExNjkpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDcxOSwgMTQwOCkpKSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OkNvbnRhaW5lck1hbmFnZWRFbnRpdHkiIEAzNjINCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMjMyMSwgMTEzOCkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMzYyDQoJCQlsb2NhdGlvbiAgIAkoMTk0OSwgMTAzNikNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAk3NDQNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJDb250YWluZXJNYW5hZ2VkRW50aXR5IikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTMyMzAxNzQiDQoJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KCQkJUGFyZW50X1ZpZXcgCUAzNjINCgkJCWxvY2F0aW9uICAgCSgxOTQ5LCAxMDk3KQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCWljb25fc3R5bGUgCSJJY29uIg0KCQkJZmlsbF9jb2xvciAJMTY3NzcyMTUNCgkJCWFuY2hvciAgICAgCTINCgkJCW5saW5lcyAgICAgCTMNCgkJCW1heF93aWR0aCAgCTc3OSkNCgkJICAgIHdpZHRoICAgICAgCTc2Mg0KCQkgICAgaGVpZ2h0ICAgICAJMjI4DQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkMzgiIEAzNjMNCgkJICAgIGxvY2F0aW9uICAgCSgxMjkwLCAxMjMzKQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkzMjc2OA0KCQkgICAgcXVpZHUgICAgICAJIjM5ODg4NkY1MDNCRCINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAiL3JvbGVzIiBAMzY0DQoJCQkgICAgUGFyZW50X1ZpZXcgCUAzNjMNCgkJCSAgICBsb2NhdGlvbiAgIAkoLTk2NiwgLTE0MykNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM2NQ0KCQkJCVBhcmVudF9WaWV3IAlAMzY0DQoJCQkJbG9jYXRpb24gICAJKDg4MiwgMTM2MykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTQwDQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrL3JvbGVzIg0KCQkJCXBjdERpc3QgICAgCTAuODkyODU3DQoJCQkJaGVpZ2h0ICAgICAJNDENCgkJCQlvcmllbnRhdGlvbiAJMSkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOTg4ODZGNjAyRDgiDQoJCQkgICAgY2xpZW50ICAgICAJQDM2Mw0KCQkJICAgIHN1cHBsaWVyICAgCUAzMjgNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMTI5MCwgMTIzMykNCgkJCQkoMTA3OSwgMTIzMykNCgkJCQkoMTA3OSwgMTQwMykNCgkJCQkoODExLCAxNDAzKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjkwLCAxMjMzKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4MTEsIDE0MDMpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzY2DQoJCQkJUGFyZW50X1ZpZXcgCUAzNjQNCgkJCQlsb2NhdGlvbiAgIAkoODc1LCAxNDQwKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMC4ubiINCgkJCQlwY3REaXN0ICAgIAkwLjkwMDc5NA0KCQkJCWhlaWdodCAgICAgCTM3DQoJCQkJb3JpZW50YXRpb24gCTApKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMzkiIEAzNjcNCgkJCSAgICBQYXJlbnRfVmlldyAJQDM2Mw0KCQkJICAgIGxvY2F0aW9uICAgCSgtOTY2LCAtMTQzKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5ODg4NkY2MDJFMiINCgkJCSAgICBjbGllbnQgICAgIAlAMzYzDQoJCQkgICAgc3VwcGxpZXIgICAJQDM2Mg0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxMjkwLCAxMjMzKQ0KCQkJCSgxOTQwLCAxMjMzKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMjkwLCAxMjMzKQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTQwLCAxMjMzKSkpKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmVqYjo6Um9sZVNvdXJjZSIgQDM2OA0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSgxNDU2LCAxODA4KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUAzNjgNCgkJCWxvY2F0aW9uICAgCSgxMjc4LCAxNzA1KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTINCgkJCW1heF93aWR0aCAgCTM1Ng0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIlJvbGVTb3VyY2UiKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAk0MjI3MDcyDQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDgzMw0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYxNDc1MDBFNCINCgkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQoJCQlQYXJlbnRfVmlldyAJQDM2OA0KCQkJbG9jYXRpb24gICAJKDEyNzgsIDE3NjYpDQoJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJaWNvbl9zdHlsZSAJIkljb24iDQoJCQlmaWxsX2NvbG9yIAkxNjc3NzIxNQ0KCQkJYW5jaG9yICAgICAJMg0KCQkJbmxpbmVzICAgICAJMg0KCQkJbWF4X3dpZHRoICAJMzkxKQ0KCQkgICAgd2lkdGggICAgICAJMzc0DQoJCSAgICBoZWlnaHQgICAgIAkyMzANCgkJICAgIGFubm90YXRpb24gCTgNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQyMyIgQDM2OQ0KCQkgICAgbG9jYXRpb24gICAJKDEwNDAsIDE3MTcpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTQyMjcwNzINCgkJICAgIHF1aWR1ICAgICAgCSIzOUJGMTRFQTAyRkYiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgInNvdXJjZSIgQDM3MA0KCQkJICAgIFBhcmVudF9WaWV3IAlAMzY5DQoJCQkgICAgbG9jYXRpb24gICAJKDUyOCwgNTgxKQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzcxDQoJCQkJUGFyZW50X1ZpZXcgCUAzNzANCgkJCQlsb2NhdGlvbiAgIAkoMTE5MSwgMTY2MykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTQ1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrc291cmNlIg0KCQkJCXBjdERpc3QgICAgCTAuNjU5Mzg5DQoJCQkJaGVpZ2h0ICAgICAJNTUNCgkJCQlvcmllbnRhdGlvbiAJMCkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOUJGMTRFQzAwNTkiDQoJCQkgICAgY2xpZW50ICAgICAJQDM2OQ0KCQkJICAgIHN1cHBsaWVyICAgCUAzNjgNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMTA0MCwgMTcxNykNCgkJCQkoMTI2OSwgMTcxNykpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA0MCwgMTcxNykNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTI2OSwgMTcxNykNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNzINCgkJCQlQYXJlbnRfVmlldyAJQDM3MA0KCQkJCWxvY2F0aW9uICAgCSgxMjQ1LCAxNzcxKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMSINCgkJCQlwY3REaXN0ICAgIAkwLjkwMDAwMA0KCQkJCWhlaWdodCAgICAgCTU0DQoJCQkJb3JpZW50YXRpb24gCTEpKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAicm9sZSIgQDM3Mw0KCQkJICAgIFBhcmVudF9WaWV3IAlAMzY5DQoJCQkgICAgbG9jYXRpb24gICAJKDUyOCwgNTgxKQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzc0DQoJCQkJUGFyZW50X1ZpZXcgCUAzNzMNCgkJCQlsb2NhdGlvbiAgIAkoODg4LCAxNjYxKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxMDQNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIityb2xlIg0KCQkJCXBjdERpc3QgICAgCTAuNjYzNzU1DQoJCQkJaGVpZ2h0ICAgICAJNTcNCgkJCQlvcmllbnRhdGlvbiAJMSkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOUJGMTRFQzAwNUEiDQoJCQkgICAgY2xpZW50ICAgICAJQDM2OQ0KCQkJICAgIHN1cHBsaWVyICAgCUAzMjgNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMTA0MCwgMTcxNykNCgkJCQkoODExLCAxNzE3KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDQwLCAxNzE3KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSg4MTEsIDE3MTcpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBAMzc1DQoJCQkJUGFyZW50X1ZpZXcgCUAzNzMNCgkJCQlsb2NhdGlvbiAgIAkoODM1LCAxNzcxKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMSINCgkJCQlwY3REaXN0ICAgIAkwLjkwMDAwMA0KCQkJCWhlaWdodCAgICAgCTU0DQoJCQkJb3JpZW50YXRpb24gCTApKSkpDQoJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ2OSIgQDM3Ng0KCQkgICAgbG9jYXRpb24gICAJKDE2NDQsIDExNTIpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTEwOTQ5NTU5DQoJCSAgICBxdWlkdSAgICAgIAkiM0U0RDIxMDMwMENEIg0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJkZXNjcmlwdGlvbnMiIEAzNzcNCgkJCSAgICBQYXJlbnRfVmlldyAJQDM3Ng0KCQkJICAgIGxvY2F0aW9uICAgCSgxODgsIC02NTYpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNzgNCgkJCQlQYXJlbnRfVmlldyAJQDM3Nw0KCQkJCWxvY2F0aW9uICAgCSgxNzk3LCA3MjYpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTI2MA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK2Rlc2NyaXB0aW9ucyINCgkJCQlwY3REaXN0ICAgIAkwLjc5MDY1Nw0KCQkJCWhlaWdodCAgICAgCTE1Mw0KCQkJCW9yaWVudGF0aW9uIAkxKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjNFNEQyMTA1MDJFQyINCgkJCSAgICBjbGllbnQgICAgIAlAMzc2DQoJCQkgICAgc3VwcGxpZXIgICAJQDM0Ng0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxNjQ0LCAxMTUyKQ0KCQkJCSgxNjQ0LCA2MTIpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE2NDQsIDExNTIpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE2NDQsIDYxMikNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzNzkNCgkJCQlQYXJlbnRfVmlldyAJQDM3Nw0KCQkJCWxvY2F0aW9uICAgCSgxNjk4LCA2NjcpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTINCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTE1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIwLi5uIg0KCQkJCXBjdERpc3QgICAgCTAuOTAwMDAwDQoJCQkJaGVpZ2h0ICAgICAJNTQNCgkJCQlvcmllbnRhdGlvbiAJMSkpDQoJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ3MCIgQDM4MA0KCQkJICAgIFBhcmVudF9WaWV3IAlAMzc2DQoJCQkgICAgbG9jYXRpb24gICAJKDE4OCwgLTY1NikNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzRTREMjEwNTAzMEEiDQoJCQkgICAgY2xpZW50ICAgICAJQDM3Ng0KCQkJICAgIHN1cHBsaWVyICAgCUAzNjgNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMTY0NCwgMTE1MikNCgkJCQkoMTY0NCwgMTY5MykpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTY0NCwgMTE1MikNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY0NCwgMTY5MykpKSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDM2IiBAMzgxDQoJCSAgICBsb2NhdGlvbiAgIAkoMTk0MiwgMTY1MikNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMzI3NjgNCgkJICAgIHF1aWR1ICAgICAgCSIzOTg4ODRDMjAzNkUiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgImVudGl0eUJlYW4iIEAzODINCgkJCSAgICBQYXJlbnRfVmlldyAJQDM4MQ0KCQkJICAgIGxvY2F0aW9uICAgCSg3MTAsIDI2MCkNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM4Mw0KCQkJCVBhcmVudF9WaWV3IAlAMzgyDQoJCQkJbG9jYXRpb24gICAJKDE5NjQsIDE5MTcpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTIyOA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK2VudGl0eUJlYW4iDQoJCQkJcGN0RGlzdCAgICAJLTAuNjY0NjM0DQoJCQkJaGVpZ2h0ICAgICAJMjINCgkJCQlvcmllbnRhdGlvbiAJMSkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOTg4ODRDMzAyN0YiDQoJCQkgICAgY2xpZW50ICAgICAJQDM4MQ0KCQkJICAgIHN1cHBsaWVyICAgCUAzNjINCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMTk0MiwgMTY1MikNCgkJCQkoMTk0MiwgMTI1MikpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTk0MiwgMTY1MikNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTk0MiwgMTI1MikNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzODQNCgkJCQlQYXJlbnRfVmlldyAJQDM4Mg0KCQkJCWxvY2F0aW9uICAgCSgxOTk2LCAxMjkzKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMSINCgkJCQlwY3REaXN0ICAgIAkwLjkwMDAwMA0KCQkJCWhlaWdodCAgICAgCTU0DQoJCQkJb3JpZW50YXRpb24gCTEpKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkMzciIEAzODUNCgkJCSAgICBQYXJlbnRfVmlldyAJQDM4MQ0KCQkJICAgIGxvY2F0aW9uICAgCSg3MTAsIDI2MCkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzOTg4ODRDMzAyODkiDQoJCQkgICAgY2xpZW50ICAgICAJQDM4MQ0KCQkJICAgIHN1cHBsaWVyICAgCUAzNjgNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMTk0MiwgMTY1MikNCgkJCQkoMTk0MiwgMTc1NCkNCgkJCQkoMTY0MywgMTc1NCkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTk0MiwgMTY1MikNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTY0MywgMTc1NCkpKSkpKQ0KCShvYmplY3QgQ2xhc3NEaWFncmFtICJFSkIyLjEgLSBRdWVyeSINCgkgICAgcXVpZCAgICAgICAJIjM5QkYyNDFFMDE5MyINCgkgICAgdGl0bGUgICAgICAJIkVKQjIuMSAtIFF1ZXJ5Ig0KCSAgICB6b29tICAgICAgIAkxMDANCgkgICAgbWF4X2hlaWdodCAJMjgzNTANCgkgICAgbWF4X3dpZHRoICAJMjE2MDANCgkgICAgb3JpZ2luX3ggICAJMA0KCSAgICBvcmlnaW5feSAgIAkzMzgNCgkgICAgaXRlbXMgICAgICAJKGxpc3QgZGlhZ3JhbV9pdGVtX2xpc3QNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OlJldHVyblR5cGVNYXBwaW5nIiBAMzg2DQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDM2OCwgMTg5MSkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMzg2DQoJCQlsb2NhdGlvbiAgIAkoMTY4LCAxODA3KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTQwMA0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIlJldHVyblR5cGVNYXBwaW5nIikNCgkJICAgIHN0ZXJlb3R5cGUgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDM4Ng0KCQkJbG9jYXRpb24gICAJKDE2OCwgMTc1NykNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlhbmNob3IgICAgIAkxMA0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJNDAwDQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiPDxlbnVtZXJhdGlvbj4+IikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMTYzODQNCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODMzDQoJCSAgICBxdWlkdSAgICAgIAkiMzk4ODcwRDMwMjc2Ig0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlAMzg2DQoJCQlsb2NhdGlvbiAgIAkoMTY4LCAxODY4KQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCWljb25fc3R5bGUgCSJJY29uIg0KCQkJZmlsbF9jb2xvciAJMTY3NzcyMTUNCgkJCWFuY2hvciAgICAgCTINCgkJCW5saW5lcyAgICAgCTMNCgkJCW1heF93aWR0aCAgCTIwMCkNCgkJICAgIHdpZHRoICAgICAgCTQxOA0KCQkgICAgaGVpZ2h0ICAgICAJMjkyDQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IExhYmVsIEAzODcNCgkJICAgIGxvY2F0aW9uICAgCSgxOTksIDU2KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxNA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJVFJVRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIG5saW5lcyAgICAgCTENCgkJICAgIG1heF93aWR0aCAgCTYwMA0KCQkgICAgbGFiZWwgICAgICAJIkVKQjIuMSBRdWVyeSIpDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6ZWpiOjpNZXRob2RFbGVtZW50IiBAMzg4DQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDE3NTQsIDEwNjMpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDM4OA0KCQkJbG9jYXRpb24gICAJKDE1MDUsIDkxNCkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAk0OTgNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJNZXRob2RFbGVtZW50IikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJICAgIHF1aWR1ICAgICAgCSIzOTJFRDIyRDAwOEEiDQoJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KCQkJUGFyZW50X1ZpZXcgCUAzODgNCgkJCWxvY2F0aW9uICAgCSgxNTA1LCA5NzUpDQoJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJaWNvbl9zdHlsZSAJIkljb24iDQoJCQlmaWxsX2NvbG9yIAkxNjc3NzIxNQ0KCQkJYW5jaG9yICAgICAJMg0KCQkJbmxpbmVzICAgICAJNQ0KCQkJbWF4X3dpZHRoICAJNTMyKQ0KCQkgICAgd2lkdGggICAgICAJNTE2DQoJCSAgICBoZWlnaHQgICAgIAkzMjINCgkJICAgIGFubm90YXRpb24gCTgNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6ZWpiOjpFbnRlcnByaXNlQmVhbiIgQDM4OQ0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSgzMDcyLCA5ODMpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJVFJVRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMzg5DQoJCQlsb2NhdGlvbiAgIAkoMjg1OCwgODAyKQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTQyOA0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIkVudGVycHJpc2VCZWFuIikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTcxQTAxMEEiDQoJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KCQkJUGFyZW50X1ZpZXcgCUAzODkNCgkJCWxvY2F0aW9uICAgCSgyODU4LCA4NjMpDQoJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJICAgIGl0YWxpY3MgICAgCVRSVUUNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAkzMDMpDQoJCSAgICB3aWR0aCAgICAgIAk0NDYNCgkJICAgIGhlaWdodCAgICAgCTM4Ng0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDEyIiBAMzkwDQoJCSAgICBsb2NhdGlvbiAgIAkoMjQ0NiwgOTQ1KQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgcXVpZHUgICAgICAJIjM5MzdENkZGMDExRCINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAibWV0aG9kRWxlbWVudCIgQDM5MQ0KCQkJICAgIFBhcmVudF9WaWV3IAlAMzkwDQoJCQkgICAgbG9jYXRpb24gICAJKC0xNjQsIDQ2NSkNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5Mg0KCQkJCVBhcmVudF9WaWV3IAlAMzkxDQoJCQkJbG9jYXRpb24gICAJKDIxOTgsIDkzMikNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMzIyDQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrbWV0aG9kRWxlbWVudCINCgkJCQlwY3REaXN0ICAgIAkwLjYwMDk5OA0KCQkJCWhlaWdodCAgICAgCTQ3DQoJCQkJb3JpZW50YXRpb24gCTEpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzkzN0Q3MDAwMjE4Ig0KCQkJICAgIGNsaWVudCAgICAgCUAzOTANCgkJCSAgICBzdXBwbGllciAgIAlAMzg4DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDI0NDYsIDk0NSkNCgkJCQkoMjQ0NiwgOTc4KQ0KCQkJCSgyMDEyLCA5NzgpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDI0NDYsIDk0NSkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjAxMiwgOTc4KQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5Mw0KCQkJCVBhcmVudF9WaWV3IAlAMzkxDQoJCQkJbG9jYXRpb24gICAJKDIwODMsIDEwMjkpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTINCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTE1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIwLi5uIg0KCQkJCXBjdERpc3QgICAgCTAuODUwMzc0DQoJCQkJaGVpZ2h0ICAgICAJNTENCgkJCQlvcmllbnRhdGlvbiAJMCkpDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJlbnRlcnByaXNlQmVhbiIgQDM5NA0KCQkJICAgIFBhcmVudF9WaWV3IAlAMzkwDQoJCQkgICAgbG9jYXRpb24gICAJKC0xNjQsIDQ2NSkNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDM5NQ0KCQkJCVBhcmVudF9WaWV3IAlAMzk0DQoJCQkJbG9jYXRpb24gICAJKDI2NzMsIDg2NikNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMjk5DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrZW50ZXJwcmlzZUJlYW4iDQoJCQkJcGN0RGlzdCAgICAJMC41OTk1MDMNCgkJCQloZWlnaHQgICAgIAk0Nw0KCQkJCW9yaWVudGF0aW9uIAkwKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5MzdENzAwMDE3OCINCgkJCSAgICBjbGllbnQgICAgIAlAMzkwDQoJCQkgICAgc3VwcGxpZXIgICAJQDM4OQ0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgyNDQ2LCA5NDUpDQoJCQkJKDI0NDYsIDkxMikNCgkJCQkoMjg0OSwgOTEyKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgyNDQ2LCA5NDUpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDI4NDksIDkxMikNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEAzOTYNCgkJCQlQYXJlbnRfVmlldyAJQDM5NA0KCQkJCWxvY2F0aW9uICAgCSgyODA0LCA5NjYpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTINCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTE1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIxIg0KCQkJCXBjdERpc3QgICAgCTAuOTAwMDAwDQoJCQkJaGVpZ2h0ICAgICAJNTQNCgkJCQlvcmllbnRhdGlvbiAJMSkpKSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OkVudGl0eSIgQDM5Nw0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSgxNTkxLCAzNjEpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDM5Nw0KCQkJbG9jYXRpb24gICAJKDE0MDgsIDI1OCkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAkzNjYNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJFbnRpdHkiKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFNjk3MDM1MSINCgkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQoJCQlQYXJlbnRfVmlldyAJQDM5Nw0KCQkJbG9jYXRpb24gICAJKDE0MDgsIDMxOSkNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAkzODgpDQoJCSAgICB3aWR0aCAgICAgIAkzODQNCgkJICAgIGhlaWdodCAgICAgCTIzMA0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBJbmhlcml0VmlldyAiIiBAMzk4DQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEU4MDgwMDk1Ig0KCQkgICAgY2xpZW50ICAgICAJQDM5Nw0KCQkgICAgc3VwcGxpZXIgICAJQDM4OQ0KCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkoMTc4MywgNDQwKQ0KCQkJKDI4NDgsIDg4OSkpDQoJCSAgICBsaW5lX3N0eWxlIAkwKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmVqYjo6UXVlcnlNZXRob2QiIEAzOTkNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMTk4NCwgMTQ4MSkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlAMzk5DQoJCQlsb2NhdGlvbiAgIAkoMTg5NiwgMTQwNSkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAkxNzYNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJRdWVyeU1ldGhvZCIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTMyNzY4DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDgzMw0KCQkgICAgcXVpZHUgICAgICAJIjM5OUFDRDlDMDJERiINCgkJICAgIHdpZHRoICAgICAgCTE5NA0KCQkgICAgaGVpZ2h0ICAgICAJMTc2DQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IEluaGVyaXRWaWV3ICIiIEA0MDANCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTMyNzY4DQoJCSAgICBxdWlkdSAgICAgIAkiMzk5QUQyMzgwMkE5Ig0KCQkgICAgY2xpZW50ICAgICAJQDM5OQ0KCQkgICAgc3VwcGxpZXIgICAJQDM4OA0KCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkoMTk1MywgMTM5MikNCgkJCSgxOTUzLCAxMjI0KSkNCgkJICAgIGxpbmVfc3R5bGUgCTMNCgkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTk1MywgMTM5MikNCgkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxOTUzLCAxMjI0KSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3Ojpjb21tb246OkRlc2NyaXB0aW9uIiBANDAxDQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDkxOCwgMjAzNykNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlANDAxDQoJCQlsb2NhdGlvbiAgIAkoNzkwLCAxOTA3KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTI1Ng0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIkRlc2NyaXB0aW9uIikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgZmlsbF9jb2xvciAJMTU3NzgwNDINCgkJICAgIHF1aWR1ICAgICAgCSIzRTRBOThENjAyRTAiDQoJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KCQkJUGFyZW50X1ZpZXcgCUA0MDENCgkJCWxvY2F0aW9uICAgCSg3OTAsIDIwMjIpDQoJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJICAgIGNvbG9yICAgICAgCTANCgkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJaWNvbl9zdHlsZSAJIkljb24iDQoJCQlmaWxsX2NvbG9yIAkxNjc3NzIxNQ0KCQkJYW5jaG9yICAgICAJMg0KCQkJbmxpbmVzICAgICAJMw0KCQkJbWF4X3dpZHRoICAJMjg1KQ0KCQkgICAgd2lkdGggICAgICAJMjc0DQoJCSAgICBoZWlnaHQgICAgIAkyODQNCgkJICAgIGFubm90YXRpb24gCTgNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgQ2xhc3NWaWV3ICJDbGFzcyIgIkxvZ2ljYWwgVmlldzo6ZWpiOjpDb250YWluZXJNYW5hZ2VkRW50aXR5IiBANDAyDQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDY2MCwgMzk3KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUA0MDINCgkJCWxvY2F0aW9uICAgCSgyODgsIDI3MCkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAk3NDQNCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJDb250YWluZXJNYW5hZ2VkRW50aXR5IikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkgICAgZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJICAgIHF1aWR1ICAgICAgCSIzNzgwRTMyMzAxNzQiDQoJCSAgICBjb21wYXJ0bWVudCAJKG9iamVjdCBDb21wYXJ0bWVudA0KCQkJUGFyZW50X1ZpZXcgCUA0MDINCgkJCWxvY2F0aW9uICAgCSgyODgsIDMzMSkNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkzDQoJCQltYXhfd2lkdGggIAk3NzkpDQoJCSAgICB3aWR0aCAgICAgIAk3NjINCgkJICAgIGhlaWdodCAgICAgCTI3OA0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBJbmhlcml0VmlldyAiIiBANDAzDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBxdWlkdSAgICAgIAkiMzc4MEUzMjMwMTc1Ig0KCQkgICAgY2xpZW50ICAgICAJQDQwMg0KCQkgICAgc3VwcGxpZXIgICAJQDM5Nw0KCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkoMTA0MSwgMzY2KQ0KCQkJKDEzOTksIDM2NikpDQoJCSAgICBsaW5lX3N0eWxlIAkzDQoJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDEwNDEsIDM2NikNCgkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMzk5LCAzNjYpKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmVqYjo6UXVlcnkiIEA0MDQNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoNzgyLCAxNDc4KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUA0MDQNCgkJCWxvY2F0aW9uICAgCSgzMDUsIDEzNTMpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJOTU0DQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiUXVlcnkiKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAk0MjI3MDcyDQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDgzMw0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYwMjcxMDMyNyINCgkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQoJCQlQYXJlbnRfVmlldyAJQDQwNA0KCQkJbG9jYXRpb24gICAJKDMwNSwgMTQxNCkNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAk0DQoJCQltYXhfd2lkdGggIAk5NzMpDQoJCSAgICB3aWR0aCAgICAgIAk5NzINCgkJICAgIGhlaWdodCAgICAgCTI3NA0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDIwIiBANDA1DQoJCSAgICBsb2NhdGlvbiAgIAkoMTU3NywgMTQ3NSkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJNDIyNzA3Mg0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYwNTY3MDJDRCINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAicXVlcnlNZXRob2QiIEA0MDYNCgkJCSAgICBQYXJlbnRfVmlldyAJQDQwNQ0KCQkJICAgIGxvY2F0aW9uICAgCSgxMjU3LCAxMzEpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0MDcNCgkJCQlQYXJlbnRfVmlldyAJQDQwNg0KCQkJCWxvY2F0aW9uICAgCSgxNzI5LCAxNDM4KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkyNjINCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIitxdWVyeU1ldGhvZCINCgkJCQlwY3REaXN0ICAgIAkwLjQ5MTUyNQ0KCQkJCWhlaWdodCAgICAgCTM4DQoJCQkJb3JpZW50YXRpb24gCTApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiMzlCRjA1NjkwMUVBIg0KCQkJICAgIGNsaWVudCAgICAgCUA0MDUNCgkJCSAgICBzdXBwbGllciAgIAlAMzk5DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDE1NzcsIDE0NzUpDQoJCQkJKDE4ODcsIDE0NzUpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE1NzcsIDE0NzUpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDE4ODcsIDE0NzUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDA4DQoJCQkJUGFyZW50X1ZpZXcgCUA0MDYNCgkJCQlsb2NhdGlvbiAgIAkoMTg1NSwgMTUyOSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjEiDQoJCQkJcGN0RGlzdCAgICAJMC45MDAwMDANCgkJCQloZWlnaHQgICAgIAk1NA0KCQkJCW9yaWVudGF0aW9uIAkxKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgInF1ZXJ5IiBANDA5DQoJCQkgICAgUGFyZW50X1ZpZXcgCUA0MDUNCgkJCSAgICBsb2NhdGlvbiAgIAkoMTI1NywgMTMxKQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDEwDQoJCQkJUGFyZW50X1ZpZXcgCUA0MDkNCgkJCQlsb2NhdGlvbiAgIAkoMTMzMCwgMTQzNCkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTM4DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrcXVlcnkiDQoJCQkJcGN0RGlzdCAgICAJMC44MDAwMDANCgkJCQloZWlnaHQgICAgIAk0Mg0KCQkJCW9yaWVudGF0aW9uIAkxKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5QkYwNTY5MDFGNCINCgkJCSAgICBjbGllbnQgICAgIAlANDA1DQoJCQkgICAgc3VwcGxpZXIgICAJQDQwNA0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxNTc3LCAxNDc1KQ0KCQkJCSgxMjY4LCAxNDc1KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxNTc3LCAxNDc1KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjY4LCAxNDc1KQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQxMQ0KCQkJCVBhcmVudF9WaWV3IAlANDA5DQoJCQkJbG9jYXRpb24gICAJKDEyOTksIDE1MjkpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTINCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTE1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIxIg0KCQkJCXBjdERpc3QgICAgCTAuOTAwMDAwDQoJCQkJaGVpZ2h0ICAgICAJNTQNCgkJCQlvcmllbnRhdGlvbiAJMCkpKSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDgzIiBANDEyDQoJCSAgICBsb2NhdGlvbiAgIAkoODQ5LCAxNzU0KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBxdWlkdSAgICAgIAkiM0U1NjUwMEQwMjU5Ig0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJkZXNjcmlwdGlvbnMiIEA0MTMNCgkJCSAgICBQYXJlbnRfVmlldyAJQDQxMg0KCQkJICAgIGxvY2F0aW9uICAgCSg2NywgMjc2KQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDE0DQoJCQkJUGFyZW50X1ZpZXcgCUA0MTMNCgkJCQlsb2NhdGlvbiAgIAkoMTAxNSwgMTg0NCkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMjYwDQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrZGVzY3JpcHRpb25zIg0KCQkJCXBjdERpc3QgICAgCTAuODc0NDA4DQoJCQkJaGVpZ2h0ICAgICAJMTQwDQoJCQkJb3JpZW50YXRpb24gCTApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiM0U1NjUwMEUwMTQyIg0KCQkJICAgIGNsaWVudCAgICAgCUA0MTINCgkJCSAgICBzdXBwbGllciAgIAlANDAxDQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDg0OSwgMTc1NCkNCgkJCQkoODgzLCAxODk0KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkwDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDE1DQoJCQkJUGFyZW50X1ZpZXcgCUA0MTMNCgkJCQlsb2NhdGlvbiAgIAkoODE4LCAxODUyKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMC4ubiINCgkJCQlwY3REaXN0ICAgIAkwLjYwNzQ2Mw0KCQkJCWhlaWdodCAgICAgCTU1DQoJCQkJb3JpZW50YXRpb24gCTEpKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkODQiIEA0MTYNCgkJCSAgICBQYXJlbnRfVmlldyAJQDQxMg0KCQkJICAgIGxvY2F0aW9uICAgCSg2NywgMjc2KQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjNFNTY1MDBFMDE3NCINCgkJCSAgICBjbGllbnQgICAgIAlANDEyDQoJCQkgICAgc3VwcGxpZXIgICAJQDQwNA0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSg4NDksIDE3NTQpDQoJCQkJKDgxNSwgMTYxNSkpDQoJCQkgICAgbGluZV9zdHlsZSAJMCkpKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTQiIEA0MTcNCgkJICAgIGxvY2F0aW9uICAgCSg2MzgsIDEwMTMpDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAkzMjc2OA0KCQkgICAgcXVpZHUgICAgICAJIjNFNEQyNUQ2MDBGMCINCgkJICAgIHJvbGV2aWV3X2xpc3QgCShsaXN0IFJvbGVWaWV3cw0KCQkJKG9iamVjdCBSb2xlVmlldyAiZW50aXR5IiBANDE4DQoJCQkgICAgUGFyZW50X1ZpZXcgCUA0MTcNCgkJCSAgICBsb2NhdGlvbiAgIAkoMTc0LCAtMTcxKQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDE5DQoJCQkJUGFyZW50X1ZpZXcgCUA0MTgNCgkJCQlsb2NhdGlvbiAgIAkoNjk2LCA1NzApDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTEzNg0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK2VudGl0eSINCgkJCQlwY3REaXN0ICAgIAkwLjkzODI3Mg0KCQkJCWhlaWdodCAgICAgCTExOA0KCQkJCW9yaWVudGF0aW9uIAkxKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjNFNEQyNUQ2MDBGMSINCgkJCSAgICBjbGllbnQgICAgIAlANDE3DQoJCQkgICAgc3VwcGxpZXIgICAJQDQwMg0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSg2MzgsIDEwMTMpDQoJCQkJKDU3OCwgMTAxMykNCgkJCQkoNTc4LCA1MzYpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDYzOCwgMTAxMykNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNTc4LCA1MzYpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDIwDQoJCQkJUGFyZW50X1ZpZXcgCUA0MTgNCgkJCQlsb2NhdGlvbiAgIAkoNTA5LCA1NzIpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTINCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTE1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIwLi4xIg0KCQkJCXBjdERpc3QgICAgCTAuOTM0NTY4DQoJCQkJaGVpZ2h0ICAgICAJNzANCgkJCQlvcmllbnRhdGlvbiAJMCkpDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJxdWVyaWVzIiBANDIxDQoJCQkgICAgUGFyZW50X1ZpZXcgCUA0MTcNCgkJCSAgICBsb2NhdGlvbiAgIAkoMTc0LCAtMTcxKQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDIyDQoJCQkJUGFyZW50X1ZpZXcgCUA0MjENCgkJCQlsb2NhdGlvbiAgIAkoOTEwLCAxMjgzKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNTgNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIitxdWVyaWVzIg0KCQkJCXBjdERpc3QgICAgCTAuODgzOTUxDQoJCQkJaGVpZ2h0ICAgICAJMTEzDQoJCQkJb3JpZW50YXRpb24gCTApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiM0U0RDI1RDYwMEYyIg0KCQkJICAgIGNsaWVudCAgICAgCUA0MTcNCgkJCSAgICBzdXBwbGllciAgIAlANDA0DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDYzOCwgMTAxMykNCgkJCQkoNzk3LCAxMDEzKQ0KCQkJCSg3OTcsIDEzNDEpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDYzOCwgMTAxMykNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzk3LCAxMzQxKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQyMw0KCQkJCVBhcmVudF9WaWV3IAlANDIxDQoJCQkJbG9jYXRpb24gICAJKDg4MywgMTMyMCkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjAuLm4iDQoJCQkJcGN0RGlzdCAgICAJMC45NTgwMjUNCgkJCQloZWlnaHQgICAgIAk4Ng0KCQkJCW9yaWVudGF0aW9uIAkwKSkpKSkpDQoJKG9iamVjdCBDbGFzc0RpYWdyYW0gIkVKQjIuMSAtIE1lc3NhZ2UgRHJpdmVuIEJlYW4iDQoJICAgIHF1aWQgICAgICAgCSIzOUJGMjc0OTAzMEMiDQoJICAgIHRpdGxlICAgICAgCSJFSkIyLjEgLSBNZXNzYWdlIERyaXZlbiBCZWFuIg0KCSAgICBkb2N1bWVudGF0aW9uIAkNCnxAc2luY2UgSjJFRTEuNA0KfFRoZSBtZXNzYWdpbmctdHlwZSBlbGVtZW50IHNwZWNpZmllcyB0aGUgbWVzc2FnZQ0KfCAgICAgICAgbGlzdGVuZXIgaW50ZXJmYWNlIG9mIHRoZSBtZXNzYWdlLWRyaXZlbiBiZWFuLiBJZg0KfCAgICAgICAgdGhlIG1lc3NhZ2luZy10eXBlIGVsZW1lbnQgaXMgbm90IHNwZWNpZmllZCwgaXQgaXMNCnwgICAgICAgIGFzc3VtZWQgdG8gYmUgamF2YXguam1zLk1lc3NhZ2VMaXN0ZW5lci4NCgkgICAgDQoJICAgIHpvb20gICAgICAgCTEwMA0KCSAgICBtYXhfaGVpZ2h0IAkyODM1MA0KCSAgICBtYXhfd2lkdGggIAkyMTYwMA0KCSAgICBvcmlnaW5feCAgIAkwDQoJICAgIG9yaWdpbl95ICAgCTE5MzENCgkgICAgaXRlbXMgICAgICAJKGxpc3QgZGlhZ3JhbV9pdGVtX2xpc3QNCgkJKG9iamVjdCBMYWJlbCBANDI0DQoJCSAgICBsb2NhdGlvbiAgIAkoNTAsIDQxKQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMg0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJVFJVRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIG5saW5lcyAgICAgCTENCgkJICAgIG1heF93aWR0aCAgCTc2Mg0KCQkgICAgbGFiZWwgICAgICAJIkVKQjIuMSBNZXNzYWdlIERyaXZlbiBCZWFuIikNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OkVudGVycHJpc2VCZWFuIiBANDI1DQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgU3VwcHJlc3NBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIFN1cHByZXNzT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMzk2LCAzNjEpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJVFJVRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlANDI1DQoJCQlsb2NhdGlvbiAgIAkoMjQyLCAzMTUpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJMzA4DQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiRW50ZXJwcmlzZUJlYW4iKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkgICAgcXVpZHUgICAgICAJIjM3ODBFNzFBMDEwQSINCgkJICAgIHdpZHRoICAgICAgCTMyNg0KCQkgICAgaGVpZ2h0ICAgICAJMTE3DQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmVqYjo6VHJhbnNhY3Rpb25UeXBlIiBANDI2DQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDE4MjUsIDQ5NykNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlANDI2DQoJCQlsb2NhdGlvbiAgIAkoMTY1OSwgNDEzKQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTMzMg0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIlRyYW5zYWN0aW9uVHlwZSIpDQoJCSAgICBzdGVyZW90eXBlIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUA0MjYNCgkJCWxvY2F0aW9uICAgCSgxNjU5LCAzNjMpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJYW5jaG9yICAgICAJMTANCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTMzMg0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIjw8ZW51bWVyYXRpb24+PiIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCSAgICBxdWlkdSAgICAgIAkiMzdGQ0E0ODcwMkVGIg0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlANDI2DQoJCQlsb2NhdGlvbiAgIAkoMTY1OSwgNDc0KQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCWljb25fc3R5bGUgCSJJY29uIg0KCQkJZmlsbF9jb2xvciAJMTY3NzcyMTUNCgkJCWFuY2hvciAgICAgCTINCgkJCW5saW5lcyAgICAgCTMNCgkJCW1heF93aWR0aCAgCTIzMSkNCgkJICAgIHdpZHRoICAgICAgCTM1MA0KCQkgICAgaGVpZ2h0ICAgICAJMjkyDQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IE5vdGVWaWV3IEA0MjcNCgkJICAgIGxvY2F0aW9uICAgCSgxNjI2LCA4OTcpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDQyNw0KCQkJbG9jYXRpb24gICAJKDE0ODgsIDc5NykNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAk0DQoJCQltYXhfd2lkdGggIAkyNDANCgkJCWxhYmVsICAgICAgCSJXYXMgYWxyZWFkeSB1c2VkL2RlZmluZWQgYnkgU2Vzc2lvbiBiZWFuIikNCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCSAgICB3aWR0aCAgICAgIAkzMDANCgkJICAgIGhlaWdodCAgICAgCTIxMikNCgkJKG9iamVjdCBBdHRhY2hWaWV3ICIiIEA0MjgNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJICAgIGNsaWVudCAgICAgCUA0MjcNCgkJICAgIHN1cHBsaWVyICAgCUA0MjYNCgkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJKDE2NzgsIDc5MCkNCgkJCSgxNzUxLCA2NDMpKQ0KCQkgICAgbGluZV9zdHlsZSAJMCkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OkFja25vd2xlZGdlTW9kZSIgQDQyOQ0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSg3ODQsIDExNjkpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDQyOQ0KCQkJbG9jYXRpb24gICAJKDU2NCwgMTA4NSkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAk0NDANCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJBY2tub3dsZWRnZU1vZGUiKQ0KCQkgICAgc3RlcmVvdHlwZSAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlANDI5DQoJCQlsb2NhdGlvbiAgIAkoNTY0LCAxMDM1KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCWFuY2hvciAgICAgCTEwDQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAk0NDANCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSI8PGVudW1lcmF0aW9uPj4iKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAk0MjI3MDcyDQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDgzMw0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYzNkQ3MDNFNCINCgkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQoJCQlQYXJlbnRfVmlldyAJQDQyOQ0KCQkJbG9jYXRpb24gICAJKDU2NCwgMTE0NikNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkzDQoJCQltYXhfd2lkdGggIAk0NDYpDQoJCSAgICB3aWR0aCAgICAgIAk0NTgNCgkJICAgIGhlaWdodCAgICAgCTI5Mg0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OlN1YnNjcmlwdGlvbkR1cmFiaWxpdHlLaW5kIiBANDMwDQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDEwNTYsIDE5NjgpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDQzMA0KCQkJbG9jYXRpb24gICAJKDgwNSwgMTg4NCkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAk1MDINCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJTdWJzY3JpcHRpb25EdXJhYmlsaXR5S2luZCIpDQoJCSAgICBzdGVyZW90eXBlIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUA0MzANCgkJCWxvY2F0aW9uICAgCSg4MDUsIDE4MzQpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJYW5jaG9yICAgICAJMTANCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTUwMg0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIjw8ZW51bWVyYXRpb24+PiIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTQyMjcwNzINCgkJICAgIGZpbGxfY29sb3IgCTEzNDM0ODMzDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRjM4RjAwMjlDIg0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlANDMwDQoJCQlsb2NhdGlvbiAgIAkoODA1LCAxOTQ1KQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCWljb25fc3R5bGUgCSJJY29uIg0KCQkJZmlsbF9jb2xvciAJMTY3NzcyMTUNCgkJCWFuY2hvciAgICAgCTINCgkJCW5saW5lcyAgICAgCTMNCgkJCW1heF93aWR0aCAgCTI2OCkNCgkJICAgIHdpZHRoICAgICAgCTUyMA0KCQkgICAgaGVpZ2h0ICAgICAJMjkyDQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmVqYjo6RGVzdGluYXRpb25UeXBlIiBANDMxDQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDU0NCwgMTk2OCkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlANDMxDQoJCQlsb2NhdGlvbiAgIAkoMzc2LCAxODg0KQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTMzNg0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIkRlc3RpbmF0aW9uVHlwZSIpDQoJCSAgICBzdGVyZW90eXBlIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUA0MzENCgkJCWxvY2F0aW9uICAgCSgzNzYsIDE4MzQpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJYW5jaG9yICAgICAJMTANCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTMzNg0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIjw8ZW51bWVyYXRpb24+PiIpDQoJCSAgICBpY29uX3N0eWxlIAkiSWNvbiINCgkJICAgIGxpbmVfY29sb3IgCTMyNzY4DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDgzMw0KCQkgICAgcXVpZHUgICAgICAJIjM5OTc4RjVDMDEwNiINCgkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQoJCQlQYXJlbnRfVmlldyAJQDQzMQ0KCQkJbG9jYXRpb24gICAJKDM3NiwgMTk0NSkNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkzDQoJCQltYXhfd2lkdGggIAkxNzgpDQoJCSAgICB3aWR0aCAgICAgIAkzNTQNCgkJICAgIGhlaWdodCAgICAgCTI5Mg0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6Ok1lc3NhZ2VEcml2ZW5EZXN0aW5hdGlvbiIgQDQzMg0KCQkgICAgU2hvd0NvbXBhcnRtZW50U3RlcmVvdHlwZXMgCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSg1NjgsIDE2MTYpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDQzMg0KCQkJbG9jYXRpb24gICAJKDExMiwgMTQ4OSkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAk5MTINCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJNZXNzYWdlRHJpdmVuRGVzdGluYXRpb24iKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAk0MjI3MDcyDQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDgzMw0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYzM0YxMDA0NCINCgkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQoJCQlQYXJlbnRfVmlldyAJQDQzMg0KCQkJbG9jYXRpb24gICAJKDExMiwgMTU1MCkNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkzDQoJCQltYXhfd2lkdGggIAk5NTEpDQoJCSAgICB3aWR0aCAgICAgIAk5MzANCgkJICAgIGhlaWdodCAgICAgCTI3OA0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjpqYXZhOjpKYXZhQ2xhc3MiIEA0MzMNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBTdXBwcmVzc0F0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgU3VwcHJlc3NPcGVyYXRpb24gCVRSVUUNCgkJICAgIEluY2x1ZGVBdHRyaWJ1dGUgCVRSVUUNCgkJICAgIEluY2x1ZGVPcGVyYXRpb24gCVRSVUUNCgkJICAgIGxvY2F0aW9uICAgCSgxNDI4LCA1NDcpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDQzMw0KCQkJbG9jYXRpb24gICAJKDEzMDMsIDQ1MCkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkxDQoJCQltYXhfd2lkdGggIAkyNTENCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJKYXZhQ2xhc3MiKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkgICAgcXVpZHUgICAgICAJIjM2NTQ5RkNDMDBGQSINCgkJICAgIHdpZHRoICAgICAgCTI2OQ0KCQkgICAgaGVpZ2h0ICAgICAJMjE5DQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmVqYjo6QWN0aXZhdGlvbkNvbmZpZ1Byb3BlcnR5IiBANDM0DQoJCSAgICBTaG93Q29tcGFydG1lbnRTdGVyZW90eXBlcyAJVFJVRQ0KCQkgICAgSW5jbHVkZUF0dHJpYnV0ZSAJVFJVRQ0KCQkgICAgSW5jbHVkZU9wZXJhdGlvbiAJVFJVRQ0KCQkgICAgbG9jYXRpb24gICAJKDI2MjAsIDE3OTcpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDQzNA0KCQkJbG9jYXRpb24gICAJKDI0ODgsIDE2NzApDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMg0KCQkJbWF4X3dpZHRoICAJMjY0DQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiQWN0aXZhdGlvbkNvbmZpZ1Byb3BlcnR5IikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMTA5NDk1NTkNCgkJICAgIGZpbGxfY29sb3IgCTE1Nzc4MDQyDQoJCSAgICBxdWlkdSAgICAgIAkiM0U0RDFBMUEwMEJGIg0KCQkgICAgY29tcGFydG1lbnQgCShvYmplY3QgQ29tcGFydG1lbnQNCgkJCVBhcmVudF9WaWV3IAlANDM0DQoJCQlsb2NhdGlvbiAgIAkoMjQ4OCwgMTc4MSkNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkzDQoJCQltYXhfd2lkdGggIAkyOTQpDQoJCSAgICB3aWR0aCAgICAgIAkyODINCgkJICAgIGhlaWdodCAgICAgCTI3OA0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6Ok1lc3NhZ2VEcml2ZW4iIEA0MzUNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoNTY0LCA3OTkpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIGxhYmVsICAgICAgCShvYmplY3QgSXRlbUxhYmVsDQoJCQlQYXJlbnRfVmlldyAJQDQzNQ0KCQkJbG9jYXRpb24gICAJKDEwNCwgNjUwKQ0KCQkJZmlsbF9jb2xvciAJMTM0MzQ4NzkNCgkJCW5saW5lcyAgICAgCTENCgkJCW1heF93aWR0aCAgCTkyMA0KCQkJanVzdGlmeSAgICAJMA0KCQkJbGFiZWwgICAgICAJIk1lc3NhZ2VEcml2ZW4iKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAk0MjI3MDcyDQoJCSAgICBmaWxsX2NvbG9yIAkxMzQzNDgzMw0KCQkgICAgcXVpZHUgICAgICAJIjM5QkYzMjQ4MDEwQiINCgkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQoJCQlQYXJlbnRfVmlldyAJQDQzNQ0KCQkJbG9jYXRpb24gICAJKDEwNCwgNzExKQ0KCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCWljb25fc3R5bGUgCSJJY29uIg0KCQkJZmlsbF9jb2xvciAJMTY3NzcyMTUNCgkJCWFuY2hvciAgICAgCTINCgkJCW5saW5lcyAgICAgCTUNCgkJCW1heF93aWR0aCAgCTk0NCkNCgkJICAgIHdpZHRoICAgICAgCTkzOA0KCQkgICAgaGVpZ2h0ICAgICAJMzIyDQoJCSAgICBhbm5vdGF0aW9uIAk4DQoJCSAgICBhdXRvUmVzaXplIAlUUlVFKQ0KCQkob2JqZWN0IEluaGVyaXRWaWV3ICIiIEA0MzYNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTQyMjcwNzINCgkJICAgIHF1aWR1ICAgICAgCSIzOUJGMzI1MzAyNkYiDQoJCSAgICBjbGllbnQgICAgIAlANDM1DQoJCSAgICBzdXBwbGllciAgIAlANDI1DQoJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCSg0MDYsIDYzNykNCgkJCSg0MDYsIDQxOSkpDQoJCSAgICBsaW5lX3N0eWxlIAkzDQoJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDQwNiwgNjM3KQ0KCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDQwNiwgNDE5KSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDMxIiBANDM3DQoJCSAgICBsb2NhdGlvbiAgIAkoMzUzLCAxMjE4KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCSAgICBsaW5lX2NvbG9yIAk0MjI3MDcyDQoJCSAgICBxdWlkdSAgICAgIAkiMzlCRjM0MDgwMUZGIg0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJkZXN0aW5hdGlvbiIgQDQzOA0KCQkJICAgIFBhcmVudF9WaWV3IAlANDM3DQoJCQkgICAgbG9jYXRpb24gICAJKC00NywgNDE4KQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDM5DQoJCQkJUGFyZW50X1ZpZXcgCUA0MzgNCgkJCQlsb2NhdGlvbiAgIAkoNTAyLCAxNDM2KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkyMjgNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIitkZXN0aW5hdGlvbiINCgkJCQlwY3REaXN0ICAgIAkwLjg0OTgxNw0KCQkJCWhlaWdodCAgICAgCTE0OQ0KCQkJCW9yaWVudGF0aW9uIAkwKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5QkYzNDA5MDA1MiINCgkJCSAgICBjbGllbnQgICAgIAlANDM3DQoJCQkgICAgc3VwcGxpZXIgICAJQDQzMg0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgzNTMsIDEyMTgpDQoJCQkJKDM1MywgMTQ3NikpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMzUzLCAxMjE4KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgzNTMsIDE0NzYpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDQwDQoJCQkJUGFyZW50X1ZpZXcgCUA0MzgNCgkJCQlsb2NhdGlvbiAgIAkoMzE2LCAxNDIyKQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMC4uMSINCgkJCQlwY3REaXN0ICAgIAkwLjc5MDk4NA0KCQkJCWhlaWdodCAgICAgCTM4DQoJCQkJb3JpZW50YXRpb24gCTEpKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAiYmVhbiIgQDQ0MQ0KCQkJICAgIFBhcmVudF9WaWV3IAlANDM3DQoJCQkgICAgbG9jYXRpb24gICAJKC00NywgNDE4KQ0KCQkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCXNpemUgICAgICAgCTEwDQoJCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQkJY29sb3IgICAgICAJMA0KCQkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDQyDQoJCQkJUGFyZW50X1ZpZXcgCUA0NDENCgkJCQlsb2NhdGlvbiAgIAkoNDQwLCA5OTgpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTEyOA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK2JlYW4iDQoJCQkJcGN0RGlzdCAgICAJMC44NTcxNDMNCgkJCQloZWlnaHQgICAgIAk4Nw0KCQkJCW9yaWVudGF0aW9uIAkxKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjM5QkYzNDA5MDA1QyINCgkJCSAgICBjbGllbnQgICAgIAlANDM3DQoJCQkgICAgc3VwcGxpZXIgICAJQDQzNQ0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgzNTMsIDEyMTgpDQoJCQkJKDM1MywgOTYwKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgzNTMsIDEyMTgpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDM1MywgOTYwKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQ0Mw0KCQkJCVBhcmVudF9WaWV3IAlANDQxDQoJCQkJbG9jYXRpb24gICAJKDI5NiwgMTAwMSkNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjEiDQoJCQkJcGN0RGlzdCAgICAJMC44NDU4NjUNCgkJCQloZWlnaHQgICAgIAk1OA0KCQkJCW9yaWVudGF0aW9uIAkwKSkpKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNTUiIEA0NDQNCgkJICAgIGxvY2F0aW9uICAgCSg5NTEsIDM0MCkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMTA5NDk1NTkNCgkJICAgIHF1aWR1ICAgICAgCSIzRTREMjk4MjAxRTIiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgIm1lc3NhZ2VEZXN0aW5hdGlvbiIgQDQ0NQ0KCQkJICAgIFBhcmVudF9WaWV3IAlANDQ0DQoJCQkgICAgbG9jYXRpb24gICAJKDQ1NCwgLTQ2MCkNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQ0Ng0KCQkJCVBhcmVudF9WaWV3IAlANDQ1DQoJCQkJbG9jYXRpb24gICAJKDExNzksIDI5MikNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMQ0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMzk2DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIrbWVzc2FnZURlc3RpbmF0aW9uIg0KCQkJCXBjdERpc3QgICAgCTAuNDI0MTc2DQoJCQkJaGVpZ2h0ICAgICAJNDkNCgkJCQlvcmllbnRhdGlvbiAJMCkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzRTREMjk4MzAyNzAiDQoJCQkgICAgY2xpZW50ICAgICAJQDQ0NA0KCQkJICAgIHN1cHBsaWVyICAgCUA0MzMNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoOTUxLCAzNDApDQoJCQkJKDEzOTMsIDM0MCkNCgkJCQkoMTM5MywgNDM4KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5NTEsIDM0MCkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTM5MywgNDM4KQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQ0Nw0KCQkJCVBhcmVudF9WaWV3IAlANDQ1DQoJCQkJbG9jYXRpb24gICAJKDEzNDAsIDM4MykNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjAuLjEiDQoJCQkJcGN0RGlzdCAgICAJMC45MDAwMDANCgkJCQloZWlnaHQgICAgIAk1NA0KCQkJCW9yaWVudGF0aW9uIAkxKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDU2IiBANDQ4DQoJCQkgICAgUGFyZW50X1ZpZXcgCUA0NDQNCgkJCSAgICBsb2NhdGlvbiAgIAkoNDU0LCAtNDYwKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjNFNEQyOTgzMDI3QSINCgkJCSAgICBjbGllbnQgICAgIAlANDQ0DQoJCQkgICAgc3VwcGxpZXIgICAJQDQzNQ0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSg5NTEsIDM0MCkNCgkJCQkoNzA4LCAzNDApDQoJCQkJKDcwOCwgNjM4KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSg5NTEsIDM0MCkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoNzA4LCA2MzgpKSkpDQoJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ2MSIgQDQ0OQ0KCQkgICAgbG9jYXRpb24gICAJKDEwNzcsIDU4NCkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMTA5NDk1NTkNCgkJICAgIHF1aWR1ICAgICAgCSIzRTU2MkQ5RTAyNTQiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgIm1lc3NhZ2luZ1R5cGUiIEA0NTANCgkJCSAgICBQYXJlbnRfVmlldyAJQDQ0OQ0KCQkJICAgIGxvY2F0aW9uICAgCSg1ODAsIC0yMTYpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0NTENCgkJCQlQYXJlbnRfVmlldyAJQDQ1MA0KCQkJCWxvY2F0aW9uICAgCSgxMTI5LCA1NTIpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTMxMg0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK21lc3NhZ2luZ1R5cGUiDQoJCQkJcGN0RGlzdCAgICAJMC4yNDU0NTUNCgkJCQloZWlnaHQgICAgIAkzMw0KCQkJCW9yaWVudGF0aW9uIAkwKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjNFNTYyRDlGMDE4MyINCgkJCSAgICBjbGllbnQgICAgIAlANDQ5DQoJCQkgICAgc3VwcGxpZXIgICAJQDQzMw0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxMDc3LCA1ODQpDQoJCQkJKDEyOTQsIDU4NCkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTA3NywgNTg0KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxMjk0LCA1ODQpDQoJCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBTZWdMYWJlbCBANDUyDQoJCQkJUGFyZW50X1ZpZXcgCUA0NTANCgkJCQlsb2NhdGlvbiAgIAkoMTI0MywgNjM5KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMC4uMSINCgkJCQlwY3REaXN0ICAgIAkwLjc2ODE4Mg0KCQkJCWhlaWdodCAgICAgCTU1DQoJCQkJb3JpZW50YXRpb24gCTEpKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNjIiIEA0NTMNCgkJCSAgICBQYXJlbnRfVmlldyAJQDQ0OQ0KCQkJICAgIGxvY2F0aW9uICAgCSg1ODAsIC0yMTYpDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiM0U1NjJEOUYwMTk3Ig0KCQkJICAgIGNsaWVudCAgICAgCUA0NDkNCgkJCSAgICBzdXBwbGllciAgIAlANDM1DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDEwNzcsIDU4NCkNCgkJCQkoOTE0LCA1ODQpDQoJCQkJKDkxNCwgNjM4KSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMDc3LCA1ODQpDQoJCQkgICAgdGVybWluYWxfYXR0YWNobWVudCAJKDkxNCwgNjM4KSkpKQ0KCQkob2JqZWN0IENsYXNzVmlldyAiQ2xhc3MiICJMb2dpY2FsIFZpZXc6OmNvbW1vbjo6RGVzY3JpcHRpb24iIEA0NTQNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMjQ5MCwgNjg3KQ0KCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQlzaXplICAgICAgIAkxMA0KCQkJZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQl1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCWNvbG9yICAgICAgCTANCgkJCWRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IEl0ZW1MYWJlbA0KCQkJUGFyZW50X1ZpZXcgCUA0NTQNCgkJCWxvY2F0aW9uICAgCSgyMzYyLCA1NTgpDQoJCQlmaWxsX2NvbG9yIAkxMzQzNDg3OQ0KCQkJbmxpbmVzICAgICAJMQ0KCQkJbWF4X3dpZHRoICAJMjU2DQoJCQlqdXN0aWZ5ICAgIAkwDQoJCQlsYWJlbCAgICAgIAkiRGVzY3JpcHRpb24iKQ0KCQkgICAgaWNvbl9zdHlsZSAJIkljb24iDQoJCSAgICBsaW5lX2NvbG9yIAk4NDIxNTA0DQoJCSAgICBmaWxsX2NvbG9yIAkxMjYzMjI1Ng0KCQkgICAgcXVpZHUgICAgICAJIjNFNEE5OEQ2MDJFMCINCgkJICAgIGNvbXBhcnRtZW50IAkob2JqZWN0IENvbXBhcnRtZW50DQoJCQlQYXJlbnRfVmlldyAJQDQ1NA0KCQkJbG9jYXRpb24gICAJKDIzNjIsIDY3MykNCgkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkgICAgY29sb3IgICAgICAJMA0KCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQlpY29uX3N0eWxlIAkiSWNvbiINCgkJCWZpbGxfY29sb3IgCTE2Nzc3MjE1DQoJCQlhbmNob3IgICAgIAkyDQoJCQlubGluZXMgICAgIAkzDQoJCQltYXhfd2lkdGggIAkyODUpDQoJCSAgICB3aWR0aCAgICAgIAkyNzQNCgkJICAgIGhlaWdodCAgICAgCTI4Mg0KCQkgICAgYW5ub3RhdGlvbiAJOA0KCQkgICAgYXV0b1Jlc2l6ZSAJVFJVRSkNCgkJKG9iamVjdCBDbGFzc1ZpZXcgIkNsYXNzIiAiTG9naWNhbCBWaWV3OjplamI6OkFjdGl2YXRpb25Db25maWciIEA0NTUNCgkJICAgIFNob3dDb21wYXJ0bWVudFN0ZXJlb3R5cGVzIAlUUlVFDQoJCSAgICBJbmNsdWRlQXR0cmlidXRlIAlUUlVFDQoJCSAgICBJbmNsdWRlT3BlcmF0aW9uIAlUUlVFDQoJCSAgICBsb2NhdGlvbiAgIAkoMTg0OCwgMTM4NykNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgbGFiZWwgICAgICAJKG9iamVjdCBJdGVtTGFiZWwNCgkJCVBhcmVudF9WaWV3IAlANDU1DQoJCQlsb2NhdGlvbiAgIAkoMTc1MiwgMTMxMSkNCgkJCWZpbGxfY29sb3IgCTEzNDM0ODc5DQoJCQlubGluZXMgICAgIAkyDQoJCQltYXhfd2lkdGggIAkxOTINCgkJCWp1c3RpZnkgICAgCTANCgkJCWxhYmVsICAgICAgCSJBY3RpdmF0aW9uQ29uZmlnIikNCgkJICAgIGljb25fc3R5bGUgCSJJY29uIg0KCQkgICAgbGluZV9jb2xvciAJMTA5NDk1NTkNCgkJICAgIGZpbGxfY29sb3IgCTE1Nzc4MDQyDQoJCSAgICBxdWlkdSAgICAgIAkiM0U0RDFBN0UwMTMxIg0KCQkgICAgd2lkdGggICAgICAJMjEwDQoJCSAgICBoZWlnaHQgICAgIAkxNzYNCgkJICAgIGFubm90YXRpb24gCTgNCgkJICAgIGF1dG9SZXNpemUgCVRSVUUpDQoJCShvYmplY3QgQXNzb2NpYXRpb25WaWV3TmV3ICIkVU5OQU1FRCQ0NiIgQDQ1Ng0KCQkgICAgbG9jYXRpb24gICAJKDIwNDQsIDE3MTMpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTEwOTQ5NTU5DQoJCSAgICBxdWlkdSAgICAgIAkiM0U0RDFBRTIwMTVEIg0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJjb25maWdQcm9wZXJ0aWVzIiBANDU3DQoJCQkgICAgUGFyZW50X1ZpZXcgCUA0NTYNCgkJCSAgICBsb2NhdGlvbiAgIAkoMTk2LCAzMjYpDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0NTgNCgkJCQlQYXJlbnRfVmlldyAJQDQ1Nw0KCQkJCWxvY2F0aW9uICAgCSgyMjk5LCAxNzc2KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkxDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkzMTQNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIitjb25maWdQcm9wZXJ0aWVzIg0KCQkJCXBjdERpc3QgICAgCTAuNTg1NDgwDQoJCQkJaGVpZ2h0ICAgICAJNjMNCgkJCQlvcmllbnRhdGlvbiAJMSkNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzRTREMUFFMjAzMzMiDQoJCQkgICAgY2xpZW50ICAgICAJQDQ1Ng0KCQkJICAgIHN1cHBsaWVyICAgCUA0MzQNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMjA0NCwgMTcxMykNCgkJCQkoMjQ3OSwgMTcxMykpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjA0NCwgMTcxMykNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjQ3OSwgMTcxMykNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0NTkNCgkJCQlQYXJlbnRfVmlldyAJQDQ1Nw0KCQkJCWxvY2F0aW9uICAgCSgyMzIyLCAxNjU2KQ0KCQkJCWZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJCSAgICBzaXplICAgICAgIAkxMA0KCQkJCSAgICBmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJICAgIGJvbGQgICAgICAgCUZBTFNFDQoJCQkJICAgIGl0YWxpY3MgICAgCUZBTFNFDQoJCQkJICAgIHVuZGVybGluZSAgCUZBTFNFDQoJCQkJICAgIHN0cmlrZSAgICAgCUZBTFNFDQoJCQkJICAgIGNvbG9yICAgICAgCTANCgkJCQkgICAgZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCQlhbmNob3IgICAgIAkyDQoJCQkJYW5jaG9yX2xvYyAJMQ0KCQkJCW5saW5lcyAgICAgCTENCgkJCQltYXhfd2lkdGggIAkxNQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiMS4ubiINCgkJCQlwY3REaXN0ICAgIAkwLjY0MTE2NA0KCQkJCWhlaWdodCAgICAgCTU4DQoJCQkJb3JpZW50YXRpb24gCTApKQ0KCQkJKG9iamVjdCBSb2xlVmlldyAiJFVOTkFNRUQkNDciIEA0NjANCgkJCSAgICBQYXJlbnRfVmlldyAJQDQ1Ng0KCQkJICAgIGxvY2F0aW9uICAgCSgxOTYsIDMyNikNCgkJCSAgICBzdGVyZW90eXBlIAlUUlVFDQoJCQkgICAgbGluZV9jb2xvciAJMzM0MjQ4OQ0KCQkJICAgIHF1aWR1ICAgICAgCSIzRTREMUFFMjAzMzUiDQoJCQkgICAgY2xpZW50ICAgICAJQDQ1Ng0KCQkJICAgIHN1cHBsaWVyICAgCUA0NTUNCgkJCSAgICB2ZXJ0aWNlcyAgIAkobGlzdCBQb2ludHMNCgkJCQkoMjA0NCwgMTcxMykNCgkJCQkoMTg0NywgMTcxMykNCgkJCQkoMTg0NywgMTQ3NSkpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMjA0NCwgMTcxMykNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTg0NywgMTQ3NSkpKSkNCgkJKG9iamVjdCBBc3NvY2lhdGlvblZpZXdOZXcgIiRVTk5BTUVEJDQ4IiBANDYxDQoJCSAgICBsb2NhdGlvbiAgIAkoMTMxOCwgMTE0NSkNCgkJICAgIGZvbnQgICAgICAgCShvYmplY3QgRm9udA0KCQkJc2l6ZSAgICAgICAJMTANCgkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCWJvbGQgICAgICAgCUZBTFNFDQoJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCXN0cmlrZSAgICAgCUZBTFNFDQoJCQljb2xvciAgICAgIAkwDQoJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkgICAgbGluZV9jb2xvciAJMTA5NDk1NTkNCgkJICAgIHF1aWR1ICAgICAgCSIzRTREMUIwNTAxNDkiDQoJCSAgICByb2xldmlld19saXN0IAkobGlzdCBSb2xlVmlld3MNCgkJCShvYmplY3QgUm9sZVZpZXcgImFjdGl2YXRpb25Db25maWciIEA0NjINCgkJCSAgICBQYXJlbnRfVmlldyAJQDQ2MQ0KCQkJICAgIGxvY2F0aW9uICAgCSg4MjIsIDM0NSkNCgkJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQlzaXplICAgICAgIAkxMA0KCQkJCWZhY2UgICAgICAgCSJBcmlhbCINCgkJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJCWl0YWxpY3MgICAgCUZBTFNFDQoJCQkJdW5kZXJsaW5lICAJRkFMU0UNCgkJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCWNvbG9yICAgICAgCTANCgkJCQlkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQ2Mw0KCQkJCVBhcmVudF9WaWV3IAlANDYyDQoJCQkJbG9jYXRpb24gICAJKDE1NzQsIDEzMTgpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTMwOQ0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK2FjdGl2YXRpb25Db25maWciDQoJCQkJcGN0RGlzdCAgICAJMC43Mzc2MzENCgkJCQloZWlnaHQgICAgIAk0NQ0KCQkJCW9yaWVudGF0aW9uIAkwKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjNFNEQxQjA3MDBBMiINCgkJCSAgICBjbGllbnQgICAgIAlANDYxDQoJCQkgICAgc3VwcGxpZXIgICAJQDQ1NQ0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxMzE4LCAxMTQ1KQ0KCQkJCSgxMzE4LCAxMzYyKQ0KCQkJCSgxNzQzLCAxMzYyKSkNCgkJCSAgICBsaW5lX3N0eWxlIAkzDQoJCQkgICAgb3JpZ2luX2F0dGFjaG1lbnQgCSgxMzE4LCAxMTQ1KQ0KCQkJICAgIHRlcm1pbmFsX2F0dGFjaG1lbnQgCSgxNzQzLCAxMzYyKQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQ2NA0KCQkJCVBhcmVudF9WaWV3IAlANDYyDQoJCQkJbG9jYXRpb24gICAJKDE2NzksIDE0MTYpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTINCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTE1DQoJCQkJanVzdGlmeSAgICAJMA0KCQkJCWxhYmVsICAgICAgCSIwLi4xIg0KCQkJCXBjdERpc3QgICAgCTAuOTAwMDAwDQoJCQkJaGVpZ2h0ICAgICAJNTQNCgkJCQlvcmllbnRhdGlvbiAJMSkpDQoJCQkob2JqZWN0IFJvbGVWaWV3ICIkVU5OQU1FRCQ0OSIgQDQ2NQ0KCQkJICAgIFBhcmVudF9WaWV3IAlANDYxDQoJCQkgICAgbG9jYXRpb24gICAJKDgyMiwgMzQ1KQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjNFNEQxQjA3MDBBNCINCgkJCSAgICBjbGllbnQgICAgIAlANDYxDQoJCQkgICAgc3VwcGxpZXIgICAJQDQzNQ0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxMzE4LCAxMTQ1KQ0KCQkJCSgxMzE4LCA3ODcpDQoJCQkJKDEwMzMsIDc4NykpDQoJCQkgICAgbGluZV9zdHlsZSAJMw0KCQkJICAgIG9yaWdpbl9hdHRhY2htZW50IAkoMTMxOCwgMTE0NSkNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTAzMywgNzg3KSkpKQ0KCQkob2JqZWN0IEFzc29jaWF0aW9uVmlld05ldyAiJFVOTkFNRUQkNjMiIEA0NjYNCgkJICAgIGxvY2F0aW9uICAgCSgxOTQ5LCA4MDcpDQoJCSAgICBmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCXNpemUgICAgICAgCTEwDQoJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQlib2xkICAgICAgIAlGQUxTRQ0KCQkJaXRhbGljcyAgICAJRkFMU0UNCgkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQlzdHJpa2UgICAgIAlGQUxTRQ0KCQkJY29sb3IgICAgICAJMA0KCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJICAgIGxpbmVfY29sb3IgCTEwOTQ5NTU5DQoJCSAgICBxdWlkdSAgICAgIAkiM0U0RDFBQUQwMEFDIg0KCQkgICAgcm9sZXZpZXdfbGlzdCAJKGxpc3QgUm9sZVZpZXdzDQoJCQkob2JqZWN0IFJvbGVWaWV3ICJkZXNjcmlwdGlvbnMiIEA0NjcNCgkJCSAgICBQYXJlbnRfVmlldyAJQDQ2Ng0KCQkJICAgIGxvY2F0aW9uICAgCSgxMDEsIC01ODApDQoJCQkgICAgZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJc2l6ZSAgICAgICAJMTANCgkJCQlmYWNlICAgICAgIAkiQXJpYWwiDQoJCQkJYm9sZCAgICAgICAJRkFMU0UNCgkJCQlpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCXVuZGVybGluZSAgCUZBTFNFDQoJCQkJc3RyaWtlICAgICAJRkFMU0UNCgkJCQljb2xvciAgICAgIAkwDQoJCQkJZGVmYXVsdF9jb2xvciAJVFJVRSkNCgkJCSAgICBsYWJlbCAgICAgIAkob2JqZWN0IFNlZ0xhYmVsIEA0NjgNCgkJCQlQYXJlbnRfVmlldyAJQDQ2Nw0KCQkJCWxvY2F0aW9uICAgCSgyMjAwLCA2NjgpDQoJCQkJZm9udCAgICAgICAJKG9iamVjdCBGb250DQoJCQkJICAgIHNpemUgICAgICAgCTEwDQoJCQkJICAgIGZhY2UgICAgICAgCSJBcmlhbCINCgkJCQkgICAgYm9sZCAgICAgICAJRkFMU0UNCgkJCQkgICAgaXRhbGljcyAgICAJRkFMU0UNCgkJCQkgICAgdW5kZXJsaW5lICAJRkFMU0UNCgkJCQkgICAgc3RyaWtlICAgICAJRkFMU0UNCgkJCQkgICAgY29sb3IgICAgICAJMA0KCQkJCSAgICBkZWZhdWx0X2NvbG9yIAlUUlVFKQ0KCQkJCWFuY2hvciAgICAgCTENCgkJCQlhbmNob3JfbG9jIAkxDQoJCQkJbmxpbmVzICAgICAJMQ0KCQkJCW1heF93aWR0aCAgCTI2MA0KCQkJCWp1c3RpZnkgICAgCTANCgkJCQlsYWJlbCAgICAgIAkiK2Rlc2NyaXB0aW9ucyINCgkJCQlwY3REaXN0ICAgIAkwLjY5MTAyMw0KCQkJCWhlaWdodCAgICAgCTUxDQoJCQkJb3JpZW50YXRpb24gCTApDQoJCQkgICAgc3RlcmVvdHlwZSAJVFJVRQ0KCQkJICAgIGxpbmVfY29sb3IgCTMzNDI0ODkNCgkJCSAgICBxdWlkdSAgICAgIAkiM0U0RDFBQUQwM0E1Ig0KCQkJICAgIGNsaWVudCAgICAgCUA0NjYNCgkJCSAgICBzdXBwbGllciAgIAlANDU0DQoJCQkgICAgdmVydGljZXMgICAJKGxpc3QgUG9pbnRzDQoJCQkJKDE5NDksIDgwNykNCgkJCQkoMTk0OSwgNzE4KQ0KCQkJCSgyMzUzLCA3MTgpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE5NDksIDgwNykNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMjM1MywgNzE4KQ0KCQkJICAgIGxhYmVsICAgICAgCShvYmplY3QgU2VnTGFiZWwgQDQ2OQ0KCQkJCVBhcmVudF9WaWV3IAlANDY3DQoJCQkJbG9jYXRpb24gICAJKDIyOTAsIDc3MikNCgkJCQlmb250ICAgICAgIAkob2JqZWN0IEZvbnQNCgkJCQkgICAgc2l6ZSAgICAgICAJMTANCgkJCQkgICAgZmFjZSAgICAgICAJIkFyaWFsIg0KCQkJCSAgICBib2xkICAgICAgIAlGQUxTRQ0KCQkJCSAgICBpdGFsaWNzICAgIAlGQUxTRQ0KCQkJCSAgICB1bmRlcmxpbmUgIAlGQUxTRQ0KCQkJCSAgICBzdHJpa2UgICAgIAlGQUxTRQ0KCQkJCSAgICBjb2xvciAgICAgIAkwDQoJCQkJICAgIGRlZmF1bHRfY29sb3IgCVRSVUUpDQoJCQkJYW5jaG9yICAgICAJMg0KCQkJCWFuY2hvcl9sb2MgCTENCgkJCQlubGluZXMgICAgIAkxDQoJCQkJbWF4X3dpZHRoICAJMTUNCgkJCQlqdXN0aWZ5ICAgIAkwDQoJCQkJbGFiZWwgICAgICAJIjAuLm4iDQoJCQkJcGN0RGlzdCAgICAJMC44NzI2NTENCgkJCQloZWlnaHQgICAgIAk1NA0KCQkJCW9yaWVudGF0aW9uIAkxKSkNCgkJCShvYmplY3QgUm9sZVZpZXcgIiRVTk5BTUVEJDY0IiBANDcwDQoJCQkgICAgUGFyZW50X1ZpZXcgCUA0NjYNCgkJCSAgICBsb2NhdGlvbiAgIAkoMTAxLCAtNTgwKQ0KCQkJICAgIHN0ZXJlb3R5cGUgCVRSVUUNCgkJCSAgICBsaW5lX2NvbG9yIAkzMzQyNDg5DQoJCQkgICAgcXVpZHUgICAgICAJIjNFNEQxQUFEMDNDRCINCgkJCSAgICBjbGllbnQgICAgIAlANDY2DQoJCQkgICAgc3VwcGxpZXIgICAJQDQ1NQ0KCQkJICAgIHZlcnRpY2VzICAgCShsaXN0IFBvaW50cw0KCQkJCSgxOTQ5LCA4MDcpDQoJCQkJKDE5NDksIDEyOTkpKQ0KCQkJICAgIGxpbmVfc3R5bGUgCTMNCgkJCSAgICBvcmlnaW5fYXR0YWNobWVudCAJKDE5NDksIDgwNykNCgkJCSAgICB0ZXJtaW5hbF9hdHRhY2htZW50IAkoMTk0OSwgMTI5OSkpKSkpKSkpDQo=