PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IS0tCiAgTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCiAgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZSBkaXN0cmlidXRlZCB3aXRoCiAgdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLgogIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlIHRvIFlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wCiAgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGgKICB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLS0+Cjxkb2N1bWVudD4KPGJvZHk+CjxzZWN0aW9uIG5hbWU9IkF4aXMxIERlcGxveW1lbnQgVHV0b3JpYWwiPgo8c3Vic2VjdGlvbiBuYW1lPSJJbnRyb2R1Y3Rpb24iPldTUzRKIDEuNS54IGNhbiBiZSB1c2VkIGZvciBzZWN1cmluZyB3ZWIKc2VydmljZXMgZGVwbG95ZWQgaW4gdmlydHVhbGx5IGFueSBhcHBsaWNhdGlvbiBzZXJ2ZXIsIGJ1dCBpdCBpbmNsdWRlcwpzcGVjaWFsIHN1cHBvcnQgZm9yIEF4aXMuIFdTUzRKIDEuNS54IHNoaXBzIHdpdGggaGFuZGxlcnMgdGhhdCBjYW4gYmUgdXNlZCBpbgpBeGlzLWJhc2VkIHdlYgpzZXJ2aWNlcyBmb3IgYW4gZWFzeSBpbnRlZ3JhdGlvbi4gVGhlc2UgaGFuZGxlcnMgY2FuIGJlIGFkZGVkIHRvIHRoZQpzZXJ2aWNlIGRlcGxveW1lbnQKZGVzY3JpcHRvciAod3NkZCBmaWxlKSB0byBhZGQgYSBXUy1TZWN1cml0eSBsYXllciB0byB0aGUgd2ViIHNlcnZpY2UuClRoaXMgaXMgYSBzdGVwIGJ5IHN0ZXAgdHV0b3JpYWwgZm9yIGRlcGxveWluZyBhIHNpbXBsZSBzZXJ2aWNlIHdpdGgKVXNlcm5hbWUgVG9rZW4uPGJyPjwvYnI+Cjxicj48L2JyPjwvc3Vic2VjdGlvbj48c3Vic2VjdGlvbiBuYW1lPSJQcmVyZXF1aXNpdGVzIj48YSBocmVmPSJodHRwOi8vd3MuYXBhY2hlLm9yZy9heGlzLyI+QXhpcwoxLjI8L2E+IGluc3RhbGxlZCBhbmQgY29uZmlndXJlZCBvbiBhIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvdG9tY2F0LyI+VG9tY2F0IFNlcnZlcjwvYT4uoCBUaGlzCnR1dG9yaWFsIHdhcyBwZXJmb3JtZWQgb24gYSBMaW51eCBtYWNoaW5lIHdpdGggVG9tY2F0IDUuNS40L0phdmEgMS41LjAsCmhvd2V2ZXIsIHRoZSBzZXR1cCBzaG91bGQgYmUgc2ltaWxhciBvbiBvdGhlciBhcHBsaWNhdGlvbiBzZXJ2ZXJzLCBvcgpvdGhlciBvcGVyYXRpbmcgc3lzdGVtcyAobGlrZSBXaW5kb3dzKSB1bmxlc3Mgd2Ugc3RhdGVkIG90aGVyd2lzZS48YnI+PC9icj4KPC9zdWJzZWN0aW9uPgo8c3Vic2VjdGlvbiBuYW1lPSJTdGVwcyI+PC9zdWJzZWN0aW9uPgo8c3Vic2VjdGlvbiBuYW1lPSJJbnN0YWxsaW5nIFdTUzRKIj4KPG9sPgogIDxsaT5Eb3dubG9hZCB0aGUgV1NTNEogYmluYXJpZXMgb3IgYnVpbGQgaXQgZnJvbSBzb3VyY2VzPGJyPjwvYnI+CiAgPC9saT4KICA8bGk+Q29weSB0aGUgY29udGVudHMgb2YgdGhlIFdTUzRKIGxpYiBkaXJlY3RvcnkgdG8geW91ciBBeGlzCldFQi1JTkYvbGliIGRpcmVjdG9yeS4gTWFueSBqYXIgZmlsZXMgd2lsbCBhbHJlYWR5IGV4aXN0LiBNb3N0IG9mIHRoZW0Kd2lsbCBhbHJlYWR5IGV4aXN0IHRoZXJlIGJ1dCB5b3UgY2FuIGp1c3Qgb3ZlcndyaXRlIHRoZW0gYWxsLjwvbGk+CiAgPGxpPllvdSBtYXkgbmVlZCB0byByZXN0YXJ0IFRvbWNhdCB1bmxlc3MgeW91IGhhdmUgYXV0b21hdGljCmRlcGxveW1lbnQvY2xhc3MgbG9hZGluZyB0dXJuZWQgb24uIENoZWNrIHRoZSBBeGlzIEhhcHBpbmVzcyBQYWdlCih0eXBpY2FsbHkgYXQgaHR0cDovL2xvY2FsaG9zdDo4MDgwL2F4aXMpLCBtYWtlIHN1cmUgdGhhdCB0aGUgWE1MClNlY3VyaXR5ICh4bWxzZWMuamFyKSBpcyBsaXN0ZWQgdW5kZXIgdGhlICJPcHRpb25hbCBDb21wb25lbnRzIiBzZWN0aW9uLjwvbGk+Cjwvb2w+CjxoND5DcmVhdGluZyB0aGUgU2VydmljZTwvaDQ+CjxvbD4KPGxpPlRoaXMgdHV0b3JpYWwgd2lsbCBzZWN1cmUgdGhlIFN0b2NrUXVvdGVTZXJ2aWNlIHdoaWNoIHNoaXBzCndpdGggQXhpcy4gVW5sZXNzIHlvdSBoYXZlIG9uZSBhbHJlYWR5LCBjcmVhdGUgYSBkZXBsb3ltZW50IGRlc2NyaXB0b3IKKGRlcGxveS53c2RkKSBmaWxlIHdpdGggdGhlIGZvbGxvd2luZyBjb250ZW50czo8L2xpPgo8L29sPgo8b2wgc3RhcnQ9IjIiPgogIDxicj48L2JyPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij4mbHQ7ZGVwbG95bWVudAp4bWxucz0iaHR0cDovL3htbC5hcGFjaGUub3JnL2F4aXMvd3NkZC8iCnhtbG5zOmphdmE9Imh0dHA6Ly94bWwuYXBhY2hlLm9yZy9heGlzL3dzZGQvcHJvdmlkZXJzL2phdmEiJmd0Ozwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqAmbHQ7c2VydmljZQpuYW1lPSJzdG9jay13c3MtMDEiIHByb3ZpZGVyPSJqYXZhOlJQQyIgc3R5bGU9ImRvY3VtZW50Igp1c2U9ImxpdGVyYWwiJmd0Ozwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqAgJmx0O3BhcmFtZXRlcgpuYW1lPSJjbGFzc05hbWUiIHZhbHVlPSJzYW1wbGVzLnN0b2NrLlN0b2NrUXVvdGVTZXJ2aWNlIi8mZ3Q7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oCAmbHQ7cGFyYW1ldGVyCm5hbWU9ImFsbG93ZWRNZXRob2RzIiB2YWx1ZT0iZ2V0UXVvdGUiLyZndDs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6gICZsdDtwYXJhbWV0ZXIKbmFtZT0ic2NvcGUiIHZhbHVlPSJhcHBsaWNhdGlvbiIvJmd0Ozwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqAmbHQ7L3NlcnZpY2UmZ3Q7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+Jmx0Oy9kZXBsb3ltZW50Jmd0Ozxicj48L2JyPgogIDxicj48L2JyPgogIDwvc3Bhbj48bGk+ZGVwbG95IHRoZSBzZXJ2aWNlICh1c2luZyBBeGlzQWRtaW4pOjwvbGk+Cjwvb2w+CjxvbD4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+amF2YQpvcmcuYXBhY2hlLmF4aXMuY2xpZW50LkFkbWluQ2xpZW50Ci1saHR0cDovL2xvY2FsaG9zdDo4MDgwL2F4aXMvc2VydmljZXMvQWRtaW5TZXJ2aWNlIGRlcGxveS53c2RkPGJyPjwvYnI+CiAgPC9zcGFuPgo8L29sPgo8aDQ+Q3JlYXRpbmcgdGhlIENsaWVudDwvaDQ+CjxvbD4KICA8bGk+VXNlIFdTREwySmF2YSB0byBnZW5lcmF0ZSB0aGUgY2xpZW50IHNlcnZpY2UgYmluZGluZ3M6PGJyPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+amF2YQpvcmcuYXBhY2hlLmF4aXMud3NkbC5XU0RMMkphdmEgLW8gLgotTmh0dHA6Ly9mb3g6ODA4MC9heGlzL3NlcnZpY2VzL3N0b2NrLXdzcy0wMSBzYW1wbGVzLnN0b2NrLmNsaWVudApodHRwOi8vZm94OjgwODAvYXhpcy9zZXJ2aWNlcy9zdG9jay13c3MtMDE/d3NkbDwvc3Bhbj48YnI+PC9icj4KICAgIDxicj48L2JyPgpBIGJ1bmNoIG9mIGphdmEgY2xhc3NlcyB3aWxsIGJlIGNyZWF0ZWQgdW5kZXIgc2FtcGxlcy9zdG9jay9jbGllbnQsCmluY2x1ZGluZyB0aGUgU3RvY2tRdW90ZVNlcnZpY2VTZXJ2aWNlTG9jYXRvci48YnI+PC9icj4KICAgIDxicj48L2JyPgogIDwvbGk+CiAgPGxpPldyaXRlIGEgc2ltcGxlIGphdmEgY2xpZW50IHRoYXQgdXNlcyB0aGUgZ2VuZXJhdGVkIHNlcnZpY2UKbG9jYXRvci4gRm9yIGV4YW1wbGU6PGJyPjwvYnI+CiAgICA8YnI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5wYWNrYWdlIHNhbXBsZXMuc3RvY2suY2xpZW50Ozwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+aW1wb3J0CmphdmEucm1pLlJlbW90ZUV4Y2VwdGlvbjs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmltcG9ydApqYXZheC54bWwucnBjLlNlcnZpY2VFeGNlcHRpb247PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5wdWJsaWMgY2xhc3MKU3RvY2tTZXJ2aWNlQ2xpZW50IHs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoCBwdWJsaWMKU3RvY2tTZXJ2aWNlQ2xpZW50KCkgezwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgIH08L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoCBwdWJsaWMKc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgU2VydmljZUV4Y2VwdGlvbiwKUmVtb3RlRXhjZXB0aW9uIHs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKCgoKAKaWYgKGFyZ3MubGVuZ3RoID09IDApIHs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKCgoKCgoKCgClN5c3RlbS5vdXQucHJpbnRsbigiVXNhZ2U6XG5qYXZhIFN0b2NrU2VydmljZUNsaWVudCBbc3ltYm9sXSIpOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoKCgoKCgoKAKcmV0dXJuOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoKCgoAp9PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgClN0b2NrUXVvdGVTZXJ2aWNlU2VydmljZSBsb2NhdG9yID0gbmV3ClN0b2NrUXVvdGVTZXJ2aWNlU2VydmljZUxvY2F0b3IoKTs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKCgoKAKU3RvY2tRdW90ZVNlcnZpY2Ugc2VydmljZSA9IGxvY2F0b3IuZ2V0U3RvY2tXc3MwMSgpOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoKCgoApmbG9hdCBxdW90ZSA9IHNlcnZpY2UuZ2V0UXVvdGUoYXJnc1swXSk7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgClN5c3RlbS5vdXQucHJpbnRsbigic3RvY2sgcXVvdGUgc2VydmljZSByZXR1cm5lZCAiICsgYXJnc1swXSArICI6ICIgKwpxdW90ZSk7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKAgfTwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+fTwvc3Bhbj48YnI+PC9icj4KICAgIDxicj48L2JyPgogIDwvbGk+CiAgPGxpPnJ1biB0aGUgY2xpZW50Ojxicj48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmphdmEKc2FtcGxlcy5zdG9jay5jbGllbnQuU3RvY2tTZXJ2aWNlQ2xpZW50IElCTTwvc3Bhbj48YnI+PC9icj4KICAgIDxicj48L2JyPgpJZiBhbGwgd2VudCB3ZWxsLCB5b3Ugc2hvdWxkIGdldCB0aGUgcmVzdWx0Ojxicj48L2JyPgogICAgPGJyPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9zcGFuPiA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+c3RvY2sgcXVvdGUgc2VydmljZSByZXR1cm5lZCBJQk06IDk1LjY4PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48YnI+PC9icj4KICAgIDwvc3Bhbj48L2xpPgo8L29sPgo8aDM+VXNlcm5hbWUgVG9rZW48L2gzPgo8aDQ+Q29uZmlndXJpbmcgdGhlIFNlcnZpY2U8YnI+PC9icj4KPC9oND4KPG9sPgogIDxsaT5Nb2RpZnkgdGhlIGRlcGxveW1lbnQgZGVzY3JpcHRvciB5b3UgY3JlYXRlZCBhYm92ZSB0byBsb29rIGxpa2UKdGhpczo8YnI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij4mbHQ7ZGVwbG95bWVudAp4bWxucz0iaHR0cDovL3htbC5hcGFjaGUub3JnL2F4aXMvd3NkZC8iCnhtbG5zOmphdmE9Imh0dHA6Ly94bWwuYXBhY2hlLm9yZy9heGlzL3dzZGQvcHJvdmlkZXJzL2phdmEiJmd0Ozwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oCZsdDtzZXJ2aWNlCm5hbWU9InN0b2NrLXdzcy0wMSIgcHJvdmlkZXI9ImphdmE6UlBDIiBzdHlsZT0iZG9jdW1lbnQiCnVzZT0ibGl0ZXJhbCImZ3Q7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7IGZvbnQtd2VpZ2h0OiBib2xkOyI+oAombHQ7cmVxdWVzdEZsb3cmZ3Q7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyBmb250LXdlaWdodDogYm9sZDsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyBmb250LXdlaWdodDogYm9sZDsiPqCgCiZsdDtoYW5kbGVyIHR5cGU9ImphdmE6b3JnLmFwYWNoZS53cy5heGlzLnNlY3VyaXR5LldTRG9BbGxSZWNlaXZlciImZ3Q7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyBmb250LXdlaWdodDogYm9sZDsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyBmb250LXdlaWdodDogYm9sZDsiPqCgoAombHQ7cGFyYW1ldGVyIG5hbWU9InBhc3N3b3JkQ2FsbGJhY2tDbGFzcyIgdmFsdWU9IlBXQ2FsbGJhY2siLyZndDs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7IGZvbnQtd2VpZ2h0OiBib2xkOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7IGZvbnQtd2VpZ2h0OiBib2xkOyI+oKCgCiZsdDtwYXJhbWV0ZXIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0iVXNlcm5hbWVUb2tlbiIvJmd0Ozwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsgZm9udC13ZWlnaHQ6IGJvbGQ7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsgZm9udC13ZWlnaHQ6IGJvbGQ7Ij48L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsgZm9udC13ZWlnaHQ6IGJvbGQ7Ij6goAombHQ7L2hhbmRsZXImZ3Q7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyBmb250LXdlaWdodDogYm9sZDsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyBmb250LXdlaWdodDogYm9sZDsiPqAKJmx0Oy9yZXF1ZXN0RmxvdyZndDs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqAgJmx0O3BhcmFtZXRlcgpuYW1lPSJjbGFzc05hbWUiIHZhbHVlPSJzYW1wbGVzLnN0b2NrLlN0b2NrUXVvdGVTZXJ2aWNlIi8mZ3Q7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6gICZsdDtwYXJhbWV0ZXIKbmFtZT0iYWxsb3dlZE1ldGhvZHMiIHZhbHVlPSJnZXRRdW90ZSIvJmd0Ozwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oCAmbHQ7cGFyYW1ldGVyCm5hbWU9InNjb3BlIiB2YWx1ZT0iYXBwbGljYXRpb24iLyZndDs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqAmbHQ7L3NlcnZpY2UmZ3Q7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij4mbHQ7L2RlcGxveW1lbnQmZ3Q7PGJyPjwvYnI+CiAgICA8YnI+PC9icj4KICAgIDwvc3Bhbj5XU0RvQWxsUmVjZWl2ZXIgaXMgYW4gQXhpcyBoYW5kbGVyIHRoYXQgY2FuIGJlIGxvY2F0ZWQgaW4Kd3NzNGouamFyLiBUaGlzIGlzIHRoZSBzdGFuZGFyZCB3YXkgdG8gZGVwbG95IGFuIEF4aXMgaGFuZGxlci4gRm9yIG1vcmUKZGV0YWlscyBwbGVhc2UgcmVmZXIgdG8gdGhlIEF4aXMgaGFuZGxlciBmb3IgV1NTNEogZG9jdW1lbnRhdGlvbi48YnI+PC9icj4KICAgIDxicj48L2JyPgogIDwvbGk+CiAgPGxpPkNyZWF0ZSBhIGNsYXNzIG5hbWVkIFBXQ2FsbGJhY2suamF2YSBhbmQgY29tcGlsZSBpdCBpbnRvIHlvdXIKQXhpcyBXRUItSU5GL2NsYXNzZXMgZGlyZWN0b3J5LiBJbiB0aGlzIGV4YW1wbGUgSSB1c2VkIHRoZSBkZWZhdWx0CnBhY2thZ2UgZm9yIHNpbXBsaWNpdHksIGJ1dCB5b3UgbWlnaHQgbmVlZCB0byB1c2UgdGhlIGZ1bGx5IHF1YWxpZmllZApjbGFzcyBuYW1lIChiZSBjb25zaXN0ZW50CndpdGggdGhlIGRlcGxveW1lbnQgZGVzY3JpcHRvcikuPGJyPjwvYnI+CiAgICA8YnI+PC9icj4KVGhlIGZvbGxvd2luZyBjb2RlIHNuaXBwZXQgc2hvd3MgYSBzaW1wbGUgcGFzc3dvcmQgY2FsbGJhY2sgY2xhc3M6PGJyPjwvYnI+CiAgICA8YnI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5pbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmltcG9ydApqYXZheC5zZWN1cml0eS5hdXRoLmNhbGxiYWNrLkNhbGxiYWNrOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+aW1wb3J0CmphdmF4LnNlY3VyaXR5LmF1dGguY2FsbGJhY2suQ2FsbGJhY2tIYW5kbGVyOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+aW1wb3J0CmphdmF4LnNlY3VyaXR5LmF1dGguY2FsbGJhY2suVW5zdXBwb3J0ZWRDYWxsYmFja0V4Y2VwdGlvbjs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmltcG9ydApvcmcuYXBhY2hlLndzLnNlY3VyaXR5LldTUGFzc3dvcmRDYWxsYmFjazs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPnB1YmxpYyBjbGFzcyBQV0NhbGxiYWNrCmltcGxlbWVudHMgQ2FsbGJhY2tIYW5kbGVyIHs8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6gIKAgcHVibGljIHZvaWQKaGFuZGxlKENhbGxiYWNrW10gY2FsbGJhY2tzKTwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+CnRocm93cyBJT0V4Y2VwdGlvbiwgVW5zdXBwb3J0ZWRDYWxsYmFja0V4Y2VwdGlvbiB7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgCmZvciAoaW50IGkgPSAwOyBpICZsdDsgY2FsbGJhY2tzLmxlbmd0aDsgaSsrKSB7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgoKCgoAppZiAoY2FsbGJhY2tzW2ldIGluc3RhbmNlb2YgV1NQYXNzd29yZENhbGxiYWNrKSB7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgoKCgoKCgoKAKV1NQYXNzd29yZENhbGxiYWNrIHBjID0gKFdTUGFzc3dvcmRDYWxsYmFjayljYWxsYmFja3NbaV07PGJyPjwvYnI+CqCgoKCgoKCgoKCgoKCgoAovLyBzZXQgdGhlIHBhc3N3b3JkIGdpdmVuIGEgdXNlcm5hbWU8YnI+PC9icj4KICAgIDwvc3Bhbj6goKCgoKCgoKCgoKCgoKAKICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5pZgooIndzczRqIi5lcXVhbHMocGMuZ2V0SWRlbnRpZmllcigpKSkgezwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoKCgoKCgoKCgoKCgoKCgoApwYy5zZXRQYXNzd29yZCgic2VjdXJpdHkiKTs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKCgoKCgoKCgoKCgoAp9PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKCgoKCgoKCgCn0gZWxzZSB7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgoKCgoKCgoKAKdGhyb3cgbmV3IFVuc3VwcG9ydGVkQ2FsbGJhY2tFeGNlcHRpb24oPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5jYWxsYmFja3NbaV0sICJVbnJlY29nbml6ZWQgQ2FsbGJhY2siKTs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKCgoKCgoKCgCn08L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKCgoKAKfTwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgIH08L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPn08L3NwYW4+PGJyPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQ7Ij48L3NwYW4+PGJyPjwvYnI+CiAgICA8YnI+PC9icj4KICAgIDxicj48L2JyPgogIDwvbGk+CiAgPGxpPlJlZGVwbG95IHRoZSBzZXJ2aWNlLiBZb3VyIHNlcnZpY2Ugc2hvdWxkIG5vdyBiZSBleHBlY3RpbmcgYSBXU1MKVXNlcm5hbWUgVG9rZW4gaW4gaW4gdGhlIGluY29taW5nIHJlcXVlc3RzLCBhbmQgY2xpZW50cyBzaG91bGQgc2VuZCB0aGUKdXNlcm5hbWUgIndzczRqIiBhbmQgcGFzc3dvcmQgInNlY3VyaXR5IiB0byBnZXQgdGhyb3VnaC48YnI+PC9icj4KICA8L2xpPgo8L29sPgo8aDQ+Q29uZmlndXJpbmcgdGhlIENsaWVudDwvaDQ+CjxvbD4KICA8bGk+cnVuIHRoZSBjbGllbnQgd2UgY3JlYXRlZCBhZ2Fpbjo8YnI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5qYXZhCnNhbXBsZXMuc3RvY2suY2xpZW50LlN0b2NrU2VydmljZUNsaWVudCBJQk08L3NwYW4+PGJyPjwvYnI+CiAgICA8YnI+PC9icj4KWW91IHNob3VsZCBub3cgZ2V0IGFuIGVycm9yOjxicj48L2JyPgogICAgPGJyPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+RXhjZXB0aW9uIGluIHRocmVhZCAibWFpbiIKQXhpc0ZhdWx0PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6gZmF1bHRDb2RlOgp7aHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS99U2VydmVyLmdlbmVyYWxFeGNlcHRpb248L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqBmYXVsdFN1YmNvZGU6PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6gZmF1bHRTdHJpbmc6CldTRG9BbGxSZWNlaXZlcjogUmVxdWVzdCBkb2VzIG5vdCBjb250YWluIHJlcXVpcmVkIFNlY3VyaXR5IGhlYWRlcjwvc3Bhbj48YnI+PC9icj4KICAgIDxicj48L2JyPgpUaGlzIGlzIGJlY2F1c2UgeW91ciBjbGllbnQgaXMgbm90IGNvbmZpZ3VyZWQgdG8gc2VuZCBhIFVzZXJuYW1lIFRva2VuCnlldCwgc28gdGhlIHNlcnZpY2UgaXMgcmVqZWN0aW5nIHRoZSByZXF1ZXN0Ljxicj48L2JyPgogICAgPGJyPjwvYnI+CiAgPC9saT4KICA8bGk+Q3JlYXRlIGEgZGVwbG95bWVudCBkZXNjcmlwdG9yIGZpbGUgKGNsaWVudF9kZXBsb3kud3NkZCkgZm9yIHRoZQpjbGllbnQ6PGJyPjwvYnI+CiAgICA8YnI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij4mbHQ7ZGVwbG95bWVudAp4bWxucz0iaHR0cDovL3htbC5hcGFjaGUub3JnL2F4aXMvd3NkZC8iCnhtbG5zOmphdmE9Imh0dHA6Ly94bWwuYXBhY2hlLm9yZy9heGlzL3dzZGQvcHJvdmlkZXJzL2phdmEiJmd0Ozxicj48L2JyPgqgJmx0O3RyYW5zcG9ydCBuYW1lPSJodHRwIgpwaXZvdD0iamF2YTpvcmcuYXBhY2hlLmF4aXMudHJhbnNwb3J0Lmh0dHAuSFRUUFNlbmRlciIvJmd0Ozxicj48L2JyPgqgICZsdDtnbG9iYWxDb25maWd1cmF0aW9uICZndDs8YnI+PC9icj4KoKAgJmx0O3JlcXVlc3RGbG93ICZndDs8YnI+PC9icj4KoKCgICZsdDtoYW5kbGVyCnR5cGU9ImphdmE6b3JnLmFwYWNoZS53cy5heGlzLnNlY3VyaXR5LldTRG9BbGxTZW5kZXIiICZndDs8YnI+PC9icj4KoKCgoCAmbHQ7cGFyYW1ldGVyIG5hbWU9ImFjdGlvbiIKdmFsdWU9IlVzZXJuYW1lVG9rZW4iLyZndDs8YnI+PC9icj4KoKCgoCAmbHQ7cGFyYW1ldGVyIG5hbWU9InVzZXIiIHZhbHVlPSJ3c3M0aiIvJmd0Ozxicj48L2JyPgqgoKCgICZsdDtwYXJhbWV0ZXIgbmFtZT0icGFzc3dvcmRDYWxsYmFja0NsYXNzIgp2YWx1ZT0ic2FtcGxlcy5zdG9jay5jbGllbnQuUFdDYWxsYmFjayIvJmd0Ozxicj48L2JyPgqgoKCgICZsdDtwYXJhbWV0ZXIgbmFtZT0icGFzc3dvcmRUeXBlIgp2YWx1ZT0iUGFzc3dvcmREaWdlc3QiLyZndDs8YnI+PC9icj4KoKCgICZsdDsvaGFuZGxlciZndDs8YnI+PC9icj4KoKAgJmx0Oy9yZXF1ZXN0RmxvdyAmZ3Q7PGJyPjwvYnI+CqAgJmx0Oy9nbG9iYWxDb25maWd1cmF0aW9uICZndDs8YnI+PC9icj4KJmx0Oy9kZXBsb3ltZW50Jmd0Ozwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9zcGFuPjxicj48L2JyPgogICAgPGJyPjwvYnI+CiAgPC9saT4KICA8bGk+Q3JlYXRlIHRoZSA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+c2FtcGxlcy5zdG9jay5jbGllbnQuUFdDYWxsYmFjazwvc3Bhbj4KY2xhc3M6PGJyPjwvYnI+CiAgICA8YnI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5wYWNrYWdlIHNhbXBsZXMuc3RvY2suY2xpZW50Ozwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+aW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5pbXBvcnQKamF2YXguc2VjdXJpdHkuYXV0aC5jYWxsYmFjay5DYWxsYmFjazs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmltcG9ydApqYXZheC5zZWN1cml0eS5hdXRoLmNhbGxiYWNrLkNhbGxiYWNrSGFuZGxlcjs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmltcG9ydApqYXZheC5zZWN1cml0eS5hdXRoLmNhbGxiYWNrLlVuc3VwcG9ydGVkQ2FsbGJhY2tFeGNlcHRpb247PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5pbXBvcnQKb3JnLmFwYWNoZS53cy5zZWN1cml0eS5XU1Bhc3N3b3JkQ2FsbGJhY2s7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij4vKio8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqAqIFBXQ2FsbGJhY2sgZm9yIHRoZQpDbGllbnQ8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqAqLzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+cHVibGljIGNsYXNzIFBXQ2FsbGJhY2sKaW1wbGVtZW50cyBDYWxsYmFja0hhbmRsZXIgezwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgIC8qKjwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoCAqCkBzZWUKamF2YXguc2VjdXJpdHkuYXV0aC5jYWxsYmFjay5DYWxsYmFja0hhbmRsZXIjaGFuZGxlKGphdmF4LnNlY3VyaXR5LmF1dGguY2FsbGJhY2suQ2FsbGJhY2tbXSk8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKAgKi88L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoCBwdWJsaWMgdm9pZApoYW5kbGUoQ2FsbGJhY2tbXSBjYWxsYmFja3MpIHRocm93cyBJT0V4Y2VwdGlvbiw8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKCgoKCgoKCgoKCgoKCgoKAKVW5zdXBwb3J0ZWRDYWxsYmFja0V4Y2VwdGlvbiB7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgCmZvciAoaW50IGkgPSAwOyBpICZsdDsgY2FsbGJhY2tzLmxlbmd0aDsgaSsrKSB7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgoKCgoAppZiAoY2FsbGJhY2tzW2ldIGluc3RhbmNlb2YgV1NQYXNzd29yZENhbGxiYWNrKSB7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgoKCgoKCgoKAKV1NQYXNzd29yZENhbGxiYWNrIHBjID0gKFdTUGFzc3dvcmRDYWxsYmFjayljYWxsYmFja3NbaV07PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgoKCgoKCgoKAKLy8gc2V0IHRoZSBwYXNzd29yZCBnaXZlbiBhIHVzZXJuYW1lPC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgoKCgoKCgoKAKaWYgKCJ3c3M0aiIuZXF1YWxzKHBjLmdldElkZW50aWZpZXIoKSkpIHs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKCgoKCgoKCgoKCgoKCgoKAKcGMuc2V0UGFzc3dvcmQoInNlY3VyaXR5Iik7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgoKCgoKCgoKAKfTwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoKCgoKCgoKAKfSBlbHNlIHs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKCgoKCgoKCgoKCgoAp0aHJvdyBuZXcgVW5zdXBwb3J0ZWRDYWxsYmFja0V4Y2VwdGlvbihjYWxsYmFja3NbaV0sICJVbnJlY29nbml6ZWQKQ2FsbGJhY2siKTs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKCgoKCgoKCgCn08L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKCgoKAKfTwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgIH08L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPn08L3NwYW4+PGJyPjwvYnI+CiAgICA8YnI+PC9icj4KICA8L2xpPgogIDxsaT5EZWZpbmUgdGhlIHN5c3RlbSBwcm9wZXJ0eSBheGlzLkNsaWVudENvbmZpZ0ZpbGUgZm9yIHlvdXIgY2xpZW50Ojxicj48L2JyPgogICAgPGJyPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+amF2YQotRGF4aXMuQ2xpZW50Q29uZmlnRmlsZT1jbGllbnRfZGVwbG95LndzZGQgLWNsYXNzcGF0aCAkQVhJU0NMQVNTUEFUSApzYW1wbGVzLnN0b2NrLmNsaWVudC5TdG9ja1NlcnZpY2VDbGllbnQ8L3NwYW4+PGJyPjwvYnI+CiAgICA8YnI+PC9icj4KTWFrZSBzdXJlIHRoYXQgeW91ciBjbGFzc3BhdGggaW5jbHVkZXMgdGhlIGphciBmaWxlcyB1bmRlciBXRUItSU5GL2xpYi48YnI+PC9icj4KICAgIDxicj48L2JyPgpBbm90aGVyIHdheSB0byBkbyB0aGlzIGlzIHRvIHNwZWNpZnkgdGhlIHdzZGQgZmlsZSBpbiB5b3VyClN0b2NrU2VydmljZUNsaWVudCB0byB0aGUgc2VydmljZSBsb2NhdG9yIHByb2dyYW1tYXRpY2FsbHk6PGJyPjwvYnI+CiAgICA8YnI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij4uLi48L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmltcG9ydApvcmcuYXBhY2hlLmF4aXMuRW5naW5lQ29uZmlndXJhdGlvbjs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmltcG9ydApvcmcuYXBhY2hlLmF4aXMuY29uZmlndXJhdGlvbi5GaWxlUHJvdmlkZXI7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij4uLi48L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPkVuZ2luZUNvbmZpZ3VyYXRpb24gY29uZmlnID0KbmV3IEZpbGVQcm92aWRlcigiY2xpZW50X2RlcGxveS53c2RkIik7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5TdG9ja1F1b3RlU2VydmljZVNlcnZpY2UKbG9jYXRvciA9IG5ldyBTdG9ja1F1b3RlU2VydmljZVNlcnZpY2VMb2NhdG9yKGNvbmZpZyk7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij4uLi48L3NwYW4+PGJyPjwvYnI+CiAgICA8YnI+PC9icj4KICA8L2xpPgogIDxsaT5SdW4gdGhlIGNsaWVudCwgeW91IHNob3VsZCBnZXQgbm8gZXJyb3JzOjxicj48L2JyPgogICAgPGJyPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+c3RvY2sgcXVvdGUgc2VydmljZSByZXR1cm5lZApJQk06IDk1Ljc8L3NwYW4+PGJyPjwvYnI+CiAgICA8YnI+PC9icj4KWW91ciBjbGllbnQgaXMgbm93IHNlbmRpbmcgYSBVc2VybmFtZSBUb2tlbiBpbiB0aGUgd3NzZSByZXF1ZXN0IGhlYWRlcgp3aXRoIHRoZSB1c2VybmFtZSAid3NzNGoiIChzZWUgY2xpZW50X2RlcGxveS53c2RkKSBhbmQgcGFzc3dvcmQKInNlY3VyaXR5IiAoc2VlIHRoZSBQV0NhbGxiYWNrIGltcGxlbWVudGF0aW9uKS48YnI+PC9icj4KICAgIDxicj48L2JyPgpBbm90aGVyIHdheSB0byBkbyB0aGlzIGlzIHRvIGhhdmUgdGhlIGNsaWVudCBhcHBsaWNhdGlvbiBzZXQgdGhlCnVzZXJuYW1lIGFuZCBDYWxsYmFja0hhbmRsZXIgaW1wbGVtZW50YXRpb24gcHJvZ3JhbW1hdGljYWxseSBpbnN0ZWFkIG9mCmNsaWVudF9kZXBsb3kud3NkZDo8YnI+PC9icj4KICAgIDxicj48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPi4uLjwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+aW1wb3J0Cm9yZy5hcGFjaGUuYXhpcy5jbGllbnQuU3R1Yjs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPi4uLjwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+UmVtb3RlIHJlbW90ZSA9CmxvY2F0b3IuZ2V0UG9ydChTdG9ja1F1b3RlU2VydmljZS5jbGFzcyk7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5TdHViIGF4aXNQb3J0ID0gKFN0dWIpcmVtb3RlOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+YXhpc1BvcnQuX3NldFByb3BlcnR5KFVzZXJuYW1lVG9rZW4uUEFTU1dPUkRfVFlQRSwKV1NDb25zdGFudHMuUEFTU1dPUkRfRElHRVNUKTs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmF4aXNQb3J0Ll9zZXRQcm9wZXJ0eShXU0hhbmRsZXJDb25zdGFudHMuVVNFUiwKIndzczRqIik7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5heGlzUG9ydC5fc2V0UHJvcGVydHkoV1NIYW5kbGVyQ29uc3RhbnRzLlBXX0NBTExCQUNLX1JFRiwKcHdDYWxsYmFjayk7PC9zcGFuPjxicj48L2JyPgogICAgPGJyPjwvYnI+CndoZXJlICJwd0NhbGxiYWNrIiBpcyBhIHJlZmVyZW5jZSB0byBhIFBXQ2FsbGJhY2sgaW1wbGVtZW50YXRpb24uIFNlZQp0aGUgQXhpcyBoYW5kbGVyIGZvciBXU1M0SiBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMgb24gdGhpcy48YnI+PC9icj4KICAgIDxicj48L2JyPgogIDwvbGk+CiAgPGxpPlRyeSBtb2RpZnlpbmcgeW91ciBjbGllbnQncyBQV0NhbGxiYWNrIHRvIHJldHVybiB0aGUgd3JvbmcKcGFzc3dvcmQsIG9yIHNlbmQgdGhlIHdyb25nIHVzZXJuYW1lLiBUaGUgc2VydmljZSBzaG91bGQgcmVqZWN0IHlvdXIKcmVxdWVzdHMuPC9saT4KPC9vbD4KPGJyPjwvYnI+Cjxicj48L2JyPjxicj48L2JyPgo8L3N1YnNlY3Rpb24+Cjwvc2VjdGlvbj4KPC9ib2R5Pgo8L2RvY3VtZW50Pgo=