A/MNCi9c/FVjAAAAAAAAAAAMAAAAQAAAAHP1AgAAZAAAWgAAZAEAZAIAbAEAWgEAZAEAZAIAbAIAWgIAZAEAZAIAbAMAWgQAZAEAZAIAbAUAWgUAZAEAZAIAbAYAWgYAZAEAZAMAbAcAbQgAWgkAAWQBAGQEAGwKAG0LAFoLAAFkBQBkBgBkBwBkCABkCQBkCgBkCwBkDABkDQBkDgBkDwBkEABnDABaDABkEQBaDQBkEgBaDgBkEwBaDwBlAgBqEABkFABlAgBqEQCDAgBaEgBkBQBlEwBmAQBkFQCEAACDAABZWhQAZAYAZRQAZgEAZBYAhAAAgwAAWVoVAGQHAGUUAGYBAGQXAIQAAIMAAFlaFgBkCABlFgBmAQBkGACEAACDAABZWhcAZAkAZRQAZgEAZBkAhAAAgwAAWVoYAGQKAGUWAGYBAGQaAIQAAIMAAFlaGQBkCwBlFgBmAQBkGwCEAACDAABZWhoAZAwAZRYAZgEAZBwAhAAAgwAAWVobAGQNAGUWAGYBAGQdAIQAAIMAAFlaHABkHgCEAABaHQBkHwCEAABaHgBkIACEAABaHwB5EABkAQBkAgBsIABaIABXbhcABGUhAGsKAHK9AQEBAWUiAFojAG4aAFhkIQBmAABkIgCEAACDAABZWiQAZSUAWiMAZBAAZgAAZCMAhAAAgwAAWVomAGUjAHIWAmQkAGUmAGYBAGQlAIQAAIMAAFlaJwBlDABqKABkJACDAQABbgAAZCYAWikAZCcAZSYAZgEAZCgAhAAAgwAAWVoqAGUrAGQpAGsCAHLxAmQBAGQCAGwKAFoKAGQqAIQAAFosAGUsAGQrAIMBAFotAGUsAGQsAIMBAGouAGQtAIMBAFovAGQuAEdIZC8AWjAAeCcAZQoAajEAajIAgwAAWjMAZTMADHKcAlBuAABlMABlMwAXWjAAcYICZDAAZTQAZTAAgwEAFkdIZSYAZDEAgwEAWjUAZTUAajYAZDIAgwEAAWU1AGo3AGUtAGUvAGUwAIMDAAFlNQBqOACDAAABbgAAZAIAUygzAAAAc34DAABTTVRQL0VTTVRQIGNsaWVudCBjbGFzcy4KClRoaXMgc2hvdWxkIGZvbGxvdyBSRkMgODIxIChTTVRQKSwgUkZDIDE4NjkgKEVTTVRQKSwgUkZDIDI1NTQgKFNNVFAKQXV0aGVudGljYXRpb24pIGFuZCBSRkMgMjQ4NyAoU2VjdXJlIFNNVFAgb3ZlciBUTFMpLgoKTm90ZXM6CgpQbGVhc2UgcmVtZW1iZXIsIHdoZW4gZG9pbmcgRVNNVFAsIHRoYXQgdGhlIG5hbWVzIG9mIHRoZSBTTVRQIHNlcnZpY2UKZXh0ZW5zaW9ucyBhcmUgTk9UIHRoZSBzYW1lIHRoaW5nIGFzIHRoZSBvcHRpb24ga2V5d29yZHMgZm9yIHRoZSBSQ1BUCmFuZCBNQUlMIGNvbW1hbmRzIQoKRXhhbXBsZToKCiAgPj4+IGltcG9ydCBzbXRwbGliCiAgPj4+IHM9c210cGxpYi5TTVRQKCJsb2NhbGhvc3QiKQogID4+PiBwcmludCBzLmhlbHAoKQogIFRoaXMgaXMgU2VuZG1haWwgdmVyc2lvbiA4LjguNAogIFRvcGljczoKICAgICAgSEVMTyAgICBFSExPICAgIE1BSUwgICAgUkNQVCAgICBEQVRBCiAgICAgIFJTRVQgICAgTk9PUCAgICBRVUlUICAgIEhFTFAgICAgVlJGWQogICAgICBFWFBOICAgIFZFUkIgICAgRVRSTiAgICBEU04KICBGb3IgbW9yZSBpbmZvIHVzZSAiSEVMUCA8dG9waWM+Ii4KICBUbyByZXBvcnQgYnVncyBpbiB0aGUgaW1wbGVtZW50YXRpb24gc2VuZCBlbWFpbCB0bwogICAgICBzZW5kbWFpbC1idWdzQHNlbmRtYWlsLm9yZy4KICBGb3IgbG9jYWwgaW5mb3JtYXRpb24gc2VuZCBlbWFpbCB0byBQb3N0bWFzdGVyIGF0IHlvdXIgc2l0ZS4KICBFbmQgb2YgSEVMUCBpbmZvCiAgPj4+IHMucHV0Y21kKCJ2cmZ5Iiwic29tZW9uZUBoZXJlIikKICA+Pj4gcy5nZXRyZXBseSgpCiAgKDI1MCwgIlNvbWVib2R5IE92ZXJIZXJlIDxzb21lYm9keUBoZXJlLm15Lm9yZz4iKQogID4+PiBzLnF1aXQoKQpp/////04oAQAAAHQGAAAAZW5jb2RlKAEAAAB0BgAAAHN0ZGVycnQNAAAAU01UUEV4Y2VwdGlvbnQWAAAAU01UUFNlcnZlckRpc2Nvbm5lY3RlZHQVAAAAU01UUFJlc3BvbnNlRXhjZXB0aW9udBEAAABTTVRQU2VuZGVyUmVmdXNlZHQVAAAAU01UUFJlY2lwaWVudHNSZWZ1c2VkdA0AAABTTVRQRGF0YUVycm9ydBAAAABTTVRQQ29ubmVjdEVycm9ydA0AAABTTVRQSGVsb0Vycm9ydBcAAABTTVRQQXV0aGVudGljYXRpb25FcnJvcnQJAAAAcXVvdGVhZGRydAkAAABxdW90ZWRhdGF0BAAAAFNNVFBpGQAAAGnRAQAAcwIAAAANCnMJAAAAYXV0aD0oLiopYwAAAAAAAAAAAQAAAEIAAABzDgAAAGUAAFoBAGQAAFoCAFJTKAEAAABzNAAAAEJhc2UgY2xhc3MgZm9yIGFsbCBleGNlcHRpb25zIHJhaXNlZCBieSB0aGlzIG1vZHVsZS4oAwAAAHQIAAAAX19uYW1lX190CgAAAF9fbW9kdWxlX190BwAAAF9fZG9jX18oAAAAACgAAAAAKAAAAABzTgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvc210cGxpYi5weVICAAAAQQAAAHMCAAAABgFjAAAAAAAAAAABAAAAQgAAAHMOAAAAZQAAWgEAZAAAWgIAUlMoAQAAAHPMAAAATm90IGNvbm5lY3RlZCB0byBhbnkgU01UUCBzZXJ2ZXIuCgogICAgVGhpcyBleGNlcHRpb24gaXMgcmFpc2VkIHdoZW4gdGhlIHNlcnZlciB1bmV4cGVjdGVkbHkgZGlzY29ubmVjdHMsCiAgICBvciB3aGVuIGFuIGF0dGVtcHQgaXMgbWFkZSB0byB1c2UgdGhlIFNNVFAgaW5zdGFuY2UgYmVmb3JlCiAgICBjb25uZWN0aW5nIGl0IHRvIGEgc2VydmVyLgogICAgKAMAAABSDgAAAFIPAAAAUhAAAAAoAAAAACgAAAAAKAAAAABzTgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvc210cGxpYi5weVIDAAAARAAAAHMCAAAABgZjAAAAAAAAAAABAAAAQgAAAHMXAAAAZQAAWgEAZAAAWgIAZAEAhAAAWgMAUlMoAgAAAHMyAQAAQmFzZSBjbGFzcyBmb3IgYWxsIGV4Y2VwdGlvbnMgdGhhdCBpbmNsdWRlIGFuIFNNVFAgZXJyb3IgY29kZS4KCiAgICBUaGVzZSBleGNlcHRpb25zIGFyZSBnZW5lcmF0ZWQgaW4gc29tZSBpbnN0YW5jZXMgd2hlbiB0aGUgU01UUAogICAgc2VydmVyIHJldHVybnMgYW4gZXJyb3IgY29kZS4gIFRoZSBlcnJvciBjb2RlIGlzIHN0b3JlZCBpbiB0aGUKICAgIGBzbXRwX2NvZGUnIGF0dHJpYnV0ZSBvZiB0aGUgZXJyb3IsIGFuZCB0aGUgYHNtdHBfZXJyb3InIGF0dHJpYnV0ZQogICAgaXMgc2V0IHRvIHRoZSBlcnJvciBtZXNzYWdlLgogICAgYwMAAAADAAAAAgAAAEMAAABzJQAAAHwBAHwAAF8AAHwCAHwAAF8BAHwBAHwCAGYCAHwAAF8CAGQAAFMoAQAAAE4oAwAAAHQJAAAAc210cF9jb2RldAoAAABzbXRwX2Vycm9ydAQAAABhcmdzKAMAAAB0BAAAAHNlbGZ0BAAAAGNvZGV0AwAAAG1zZygAAAAAKAAAAABzTgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvc210cGxpYi5weXQIAAAAX19pbml0X19VAAAAcwYAAAAAAQkBCQEoBAAAAFIOAAAAUg8AAABSEAAAAFIXAAAAKAAAAAAoAAAAACgAAAAAc04AAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L3NtdHBsaWIucHlSBAAAAEwAAABzBAAAAAYHBgJjAAAAAAAAAAABAAAAQgAAAHMXAAAAZQAAWgEAZAAAWgIAZAEAhAAAWgMAUlMoAgAAAHOrAAAAU2VuZGVyIGFkZHJlc3MgcmVmdXNlZC4KCiAgICBJbiBhZGRpdGlvbiB0byB0aGUgYXR0cmlidXRlcyBzZXQgYnkgb24gYWxsIFNNVFBSZXNwb25zZUV4Y2VwdGlvbgogICAgZXhjZXB0aW9ucywgdGhpcyBzZXRzIGBzZW5kZXInIHRvIHRoZSBzdHJpbmcgdGhhdCB0aGUgU01UUCByZWZ1c2VkLgogICAgYwQAAAAEAAAAAwAAAEMAAABzMQAAAHwBAHwAAF8AAHwCAHwAAF8BAHwDAHwAAF8CAHwBAHwCAHwDAGYDAHwAAF8DAGQAAFMoAQAAAE4oBAAAAFIRAAAAUhIAAAB0BgAAAHNlbmRlclITAAAAKAQAAABSFAAAAFIVAAAAUhYAAABSGAAAACgAAAAAKAAAAABzTgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvc210cGxpYi5weVIXAAAAYQAAAHMIAAAAAAEJAQkBCQEoBAAAAFIOAAAAUg8AAABSEAAAAFIXAAAAKAAAAAAoAAAAACgAAAAAc04AAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L3NtdHBsaWIucHlSBQAAAFoAAABzBAAAAAYFBgJjAAAAAAAAAAABAAAAQgAAAHMXAAAAZQAAWgEAZAAAWgIAZAEAhAAAWgMAUlMoAgAAAHPOAAAAQWxsIHJlY2lwaWVudCBhZGRyZXNzZXMgcmVmdXNlZC4KCiAgICBUaGUgZXJyb3JzIGZvciBlYWNoIHJlY2lwaWVudCBhcmUgYWNjZXNzaWJsZSB0aHJvdWdoIHRoZSBhdHRyaWJ1dGUKICAgICdyZWNpcGllbnRzJywgd2hpY2ggaXMgYSBkaWN0aW9uYXJ5IG9mIGV4YWN0bHkgdGhlIHNhbWUgc29ydCBhcwogICAgU01UUC5zZW5kbWFpbCgpIHJldHVybnMuCiAgICBjAgAAAAIAAAACAAAAQwAAAHMZAAAAfAEAfAAAXwAAfAEAZgEAfAAAXwEAZAAAUygBAAAATigCAAAAdAoAAAByZWNpcGllbnRzUhMAAAAoAgAAAFIUAAAAUhkAAAAoAAAAACgAAAAAc04AAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L3NtdHBsaWIucHlSFwAAAG8AAABzBAAAAAABCQEoBAAAAFIOAAAAUg8AAABSEAAAAFIXAAAAKAAAAAAoAAAAACgAAAAAc04AAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L3NtdHBsaWIucHlSBgAAAGcAAABzBAAAAAYGBgJjAAAAAAAAAAABAAAAQgAAAHMOAAAAZQAAWgEAZAAAWgIAUlMoAQAAAHMnAAAAVGhlIFNNVFAgc2VydmVyIGRpZG4ndCBhY2NlcHQgdGhlIGRhdGEuKAMAAABSDgAAAFIPAAAAUhAAAAAoAAAAACgAAAAAKAAAAABzTgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvc210cGxpYi5weVIHAAAAdAAAAHMCAAAABgFjAAAAAAAAAAABAAAAQgAAAHMOAAAAZQAAWgEAZAAAWgIAUlMoAQAAAHMmAAAARXJyb3IgZHVyaW5nIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudC4oAwAAAFIOAAAAUg8AAABSEAAAACgAAAAAKAAAAAAoAAAAAHNOAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9zbXRwbGliLnB5UggAAAB3AAAAcwIAAAAGAWMAAAAAAAAAAAEAAABCAAAAcw4AAABlAABaAQBkAABaAgBSUygBAAAAcyIAAABUaGUgc2VydmVyIHJlZnVzZWQgb3VyIEhFTE8gcmVwbHkuKAMAAABSDgAAAFIPAAAAUhAAAAAoAAAAACgAAAAAKAAAAABzTgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvc210cGxpYi5weVIJAAAAegAAAHMCAAAABgFjAAAAAAAAAAABAAAAQgAAAHMOAAAAZQAAWgEAZAAAWgIAUlMoAQAAAHN2AAAAQXV0aGVudGljYXRpb24gZXJyb3IuCgogICAgTW9zdCBwcm9iYWJseSB0aGUgc2VydmVyIGRpZG4ndCBhY2NlcHQgdGhlIHVzZXJuYW1l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hAIAWiUAZBwAhAAAWiYAZB0AhAAAWicAUlMoHwAAAHO0BAAAVGhpcyBjbGFzcyBtYW5hZ2VzIGEgY29ubmVjdGlvbiB0byBhbiBTTVRQIG9yIEVTTVRQIHNlcnZlci4KICAgIFNNVFAgT2JqZWN0czoKICAgICAgICBTTVRQIG9iamVjdHMgaGF2ZSB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6CiAgICAgICAgICAgIGhlbG9fcmVzcAogICAgICAgICAgICAgICAgVGhpcyBpcyB0aGUgbWVzc2FnZSBnaXZlbiBieSB0aGUgc2VydmVyIGluIHJlc3BvbnNlIHRvIHRoZQogICAgICAgICAgICAgICAgbW9zdCByZWNlbnQgSEVMTyBjb21tYW5kLgoKICAgICAgICAgICAgZWhsb19yZXNwCiAgICAgICAgICAgICAgICBUaGlzIGlzIHRoZSBtZXNzYWdlIGdpdmVuIGJ5IHRoZSBzZXJ2ZXIgaW4gcmVzcG9uc2UgdG8gdGhlCiAgICAgICAgICAgICAgICBtb3N0IHJlY2VudCBFSExPIGNvbW1hbmQuIFRoaXMgaXMgdXN1YWxseSBtdWx0aWxpbmUuCgogICAgICAgICAgICBkb2VzX2VzbXRwCiAgICAgICAgICAgICAgICBUaGlzIGlzIGEgVHJ1ZSB2YWx1ZSBfYWZ0ZXIgeW91IGRvIGFuIEVITE8gY29tbWFuZF8sIGlmIHRoZQogICAgICAgICAgICAgICAgc2VydmVyIHN1cHBvcnRzIEVTTVRQLgoKICAgICAgICAgICAgZXNtdHBfZmVhdHVyZXMKICAgICAgICAgICAgICAgIFRoaXMgaXMgYSBkaWN0aW9uYXJ5LCB3aGljaCwgaWYgdGhlIHNlcnZlciBzdXBwb3J0cyBFU01UUCwKICAgICAgICAgICAgICAgIHdpbGwgX2FmdGVyIHlvdSBkbyBhbiBFSExPIGNvbW1hbmRfLCBjb250YWluIHRoZSBuYW1lcyBvZiB0aGUKICAgICAgICAgICAgICAgIFNNVFAgc2VydmljZSBleHRlbnNpb25zIHRoaXMgc2VydmVyIHN1cHBvcnRzLCBhbmQgdGhlaXIKICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgKGlmIGFueSku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eGRpZ2VzdHQNAAAAZW5jb2RlX2Jhc2U2NCgEAAAAdAkAAABjaGFsbGVuZ2V0BAAAAHVzZXJ0CAAAAHBhc3N3b3JkdAgAAAByZXNwb25zZSgAAAAAKAAAAABzTgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvc210cGxpYi5weXQPAAAAZW5jb2RlX2NyYW1fbWQ1MQIAAHMGAAAAAAEPASABYwIAAAACAAAABAAAAFMAAABzGgAAAHQAAGQBAHwAAHwBAGYCABZkAgBkAwCDAQFTKAQAAABOdAYAAAAAJXMAJXNShwAAAFIhAAAAKAEAAABSjQAAACgCAAAAUo8AAABSkAAAACgAAAAAKAAAAABzTgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvc210cGxpYi5weXQMAAAAZW5jb2RlX3BsYWluNgIAAHMCAAAAAAF0BQAAAFBMQUlOcwgAAABDUkFNLU1ENXQFAAAATE9HSU5SYwAAAHMsAAAAU01UUCBBVVRIIGV4dGVuc2lvbiBub3Qgc3VwcG9ydGVkIGJ5IHNlcnZlci50BAAAAEFVVEhp9wEAAFJkAAAAcwUAAAAlcyAlc1KHAAAAUiEAAABpTgEAAHMoAAAATm8gc3VpdGFibGUgYXV0aGVudGljYXRpb24gbWV0aG9kIGZvdW5kLmnrAAAATigCAAAAaesAAABp9wEAACgJAAAAUoYAAABSdwAAAFICAAAAUjMAAABSagAAAFIaAAAAUl8AAABSjQAAAFIKAAAAKA4AAABSFAAAAFKPAAAAUpAAAABSkgAAAFKUAAAAdAoAAABBVVRIX1BMQUlOdA0AAABBVVRIX0NSQU1fTUQ1dAoAAABBVVRIX0xPR0lOdAgAAABhdXRobGlzdHQPAAAAcHJlZmVycmVkX2F1dGhzdAoAAABhdXRobWV0aG9kdAYAAABtZXRob2RSFQAAAFJaAAAAKAAAAAAoAAAAAHNOAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhv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fQkAfAgAZAMAawMAcokBfAAAagYAgwAAAXQNAHwIAHwJAIMCAIIBAG4AAHwKAFMoBQAAAHPUCQAAVGhpcyBjb21tYW5kIHBlcmZvcm1zIGFuIGVudGlyZSBtYWlsIHRyYW5zYWN0aW9uLgoKICAgICAgICBUaGUgYXJndW1lbnRzIGFyZToKICAgICAgICAgICAgLSBmcm9tX2FkZHIgICAgOiBUaGUgYWRkcmVzcyBzZW5kaW5nIHRoaXMgbWFpbC4KICAgICAgICAgICAgLSB0b19hZGRycyAgICAgOiBBIGxpc3Qgb2YgYWRkcmVzc2VzIHRvIHNlbmQgdGhpcyBtYWlsIHRvLiAgQSBiYXJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHdpbGwgYmUgdHJlYXRlZCBhcyBhIGxpc3Qgd2l0aCAxIGFkZHJlc3MuCiAgICAgICAgICAgIC0gbXNnICAgICAgICAgIDogVGhlIG1lc3NhZ2UgdG8gc2VuZC4KICAgICAgICAgICAgLSBtYWlsX29wdGlvbnMgOiBMaXN0IG9mIEVTTVRQIG9wdGlvbnMgKHN1Y2ggYXMgOGJpdG1pbWUpIGZvciB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWlsIGNvbW1hbmQuCiAgICAgICAgICAgIC0gcmNwdF9vcHRpb25zIDogTGlzdCBvZiBFU01UUCBvcHRpb25zIChzdWNoIGFzIERTTiBjb21tYW5kcykgZm9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsIHRoZSByY3B0IGNvbW1hbmRzLgoKICAgICAgICBJZiB0aGVyZSBoYXMgYmVlbiBubyBwcmV2aW91cyBFSExPIG9yIEhFTE8gY29tbWFuZCB0aGlzIHNlc3Npb24sIHRoaXMKICAgICAgICBtZXRob2QgdHJpZXMgRVNNVFAgRUhMTyBmaXJzdC4gIElmIHRoZSBzZXJ2ZXIgZG9lcyBFU01UUCwgbWVzc2FnZSBzaXplCiAgICAgICAgYW5kIGVhY2ggb2YgdGhlIHNwZWNpZmllZCBvcHRpb25zIHdpbGwgYmUgcGFzc2VkIHRvIGl0LiAgSWYgRUhMTwogICAgICAgIGZhaWxzLCBIRUxPIHdpbGwgYmUgdHJpZWQgYW5kIEVTTVRQIG9wdGlvbnMgc3VwcHJlc3NlZC4KCiAgICAgICAgVGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gbm9ybWFsbHkgaWYgdGhlIG1haWwgaXMgYWNjZXB0ZWQgZm9yIGF0IGxlYXN0CiAgICAgICAgb25lIHJlY2lwaWVudC4gIEl0IHJldHVybnMgYSBkaWN0aW9uYXJ5LCB3aXRoIG9uZSBlbnRyeSBmb3IgZWFjaAogICAgICAgIHJlY2lwaWVudCB0aGF0IHdhcyByZWZ1c2VkLiAgRWFjaCBlbnRyeSBjb250YWlucyBhIHR1cGxlIG9mIHRoZSBTTVRQCiAgICAgICAgZXJyb3IgY29kZSBhbmQgdGhlIGFjY29tcGFueWluZyBlcnJvciBtZXNzYWdlIHNlbnQgYnkgdGhlIHNlcnZlci4KCiAgICAgICAgVGhpcyBtZXRob2QgbWF5IHJhaXNlIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uczoKCiAgICAgICAgIFNNVFBIZWxvRXJyb3IgICAgICAgICAgVGhlIHNlcnZlciBkaWRuJ3QgcmVwbHkgcHJvcGVybHkgdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgaGVsbyBncmVldGluZy4KICAgICAgICAgU01UUFJlY2lwaWVudHNSZWZ1c2VkICBUaGUgc2VydmVyIHJlamVjdGVkIEFMTCByZWNpcGllbnRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vIG1haWwgd2FzIHNlbnQpLgogICAgICAgICBTTVRQU2VuZGVyUmVmdXNlZCAgICAgIFRoZSBzZXJ2ZXIgZGlkbid0IGFjY2VwdCB0aGUgZnJvbV9hZGRyLgogICAgICAgICBTTVRQRGF0YUVycm9yICAgICAgICAgIFRoZSBzZXJ2ZXIgcmVwbGllZCB3aXRoIGFuIHVuZXhwZWN0ZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciBjb2RlIChvdGhlciB0aGFuIGEgcmVmdXNhbCBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgcmVjaXBpZW50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AGQAAFoCAGQBAFoDAGQCAGUEAGQHAGQDAIQDAFoGAGQEAGQFAGQGAIQCAFoHAFJTKAgAAABzLQIAAExNVFAgLSBMb2NhbCBNYWlsIFRyYW5zZmVyIFByb3RvY29sCgogICAgVGhlIExNVFAgcHJvdG9jb2wsIHdoaWNoIGlzIHZlcnkgc2ltaWxhciB0byBFU01UUCwgaXMgaGVhdmlseSBiYXNlZAogICAgb24gdGhlIHN0YW5kYXJkIFNNVFAgY2xpZW50LiBJdCdzIGNvbW1vbiB0byB1c2UgVW5peCBzb2NrZXRzIGZvciBMTVRQLAogICAgc28gb3VyIGNvbm5lY3QoKSBtZXRob2QgbXVzdCBzdXBwb3J0IHRoYXQgYXMgd2VsbCBhcyBhIHJlZ3VsYXIKICAgIGhvc3Q6cG9ydCBzZXJ2ZXIuIFRvIHNwZWNpZnkgYSBVbml4IHNvY2tldCwgeW91IG11c3QgdXNlIGFuIGFic29sdXRlCiAgICBwYXRoIGFzIHRoZSBob3N0LCBzdGFydGluZyB3aXRoIGEgJy8nLgoKICAgIEF1dGhlbnRpY2F0aW9uIGlzIHN1cHBvcnRlZCwgdXNpbmcgdGhlIHJlZ3VsYXIgU01UUCBtZWNoYW5pc20uIFdoZW4KICAgIHVzaW5nIGEgVW5peCBzb2NrZXQsIExNVFAgZ2VuZXJhbGx5IGRvbid0IHN1cHBvcnQgb3IgcmVxdWlyZSBhbnkKICAgIGF1dGhlbnRpY2F0aW9uLCBidXQgeW91ciBtaWxlYWdlIG1pZ2h0IHZhcnkudAQAAABsaGxvUiEAAABjBAAAAAQAAAAFAAAAQwAAAHMaAAAAdAAAagEAfAAAfAEAfAIAfAMAgwQAAWQBAFMoAgAAAHMaAAAASW5pdGlhbGl6ZSBhIG5ldyBpbnN0YW5jZS5OKAIAAABSDQAAAFIXAAAAKAQAAABSFAAAAFI7AAAAUjwAAABSNQAAACgAAAAAKAAAAABzTgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvc210cGxpYi5weVIXAAAAKQMAAHMCAAAAAAJSQgAAAGkAAAAAYwMAAAAFAAAABQAAAEMAAABz7gAAAHwBAGQB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