المهام والمتابعات الميدانية
تكليف بوقت وموقع، إثبات حضور وإنجاز، مرفقات وشير كامل للمسؤول.
إضافة مهمة
تحديث
KCgpPT57Cid1c2Ugc3RyaWN0JzsKY29uc3QgYXBwPXdpbmRvdy5MQVdBSV9BUFAscm9vdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF3YWlUYXNrc1Jvb3QnKTtpZighYXBwfHwhcm9vdClyZXR1cm47CmNvbnN0ICQ9aWQ9PnJvb3QucXVlcnlTZWxlY3RvcignIycraWQpLHFhPShzLHI9cm9vdCk9PlsuLi5yLnF1ZXJ5U2VsZWN0b3JBbGwocyldLGVzYz12PT5hcHAuZXNjYXBlSHRtbCh2Pz8nJyksc3RhdGU9KCk9PmFwcC5nZXRTdGF0ZSgpLG5vd0lzbz0oKT0+bmV3IERhdGUoKS50b0lTT1N0cmluZygpOwpsZXQgZmlsdGVyPSdvcGVuJyxzZWFyY2g9JycsYXR0YWNoU2VxPTAsdGltZXI9bnVsbDsKY29uc3QgTE9DQVRJT05TX0FQST0naHR0cHM6Ly9mbG93Lm9yZHJhdC5uZXQvd2ViaG9vay9sYXd5ZXItYWktbG9jYXRpb25zJzsKY29uc3QgTE9DQVRJT05TX0RFRkFVTFQ9W3siaWQiOiJHTE9CQUwtQ09VUlQtUEFMQUNFLUpVU1RJQ0UiLCJvZmZpY2VfaWQiOiJHTE9CQUwiLCJuYW1lIjoi2YLYtdixINin2YTYudiv2YQg4oCTINin2YTYudin2LXZhdipIiwiY2F0ZWdvcnkiOiLZhdit2KfZg9mFIiwiZ292ZXJub3JhdGUiOiLYp9mE2LnYp9i12YXYqSIsImFkZHJlc3MiOiLYp9mE2YPZiNmK2KrYjCDYp9mE2YLYqNmE2KnYjCDZgti32LnYqSAxNdiMINi02KfYsdi5INi52YTZiiDYp9mE2LPYp9mE2YXYjCDZgti12LEg2KfZhNi52K/ZhCIsImxhdCI6IiIsImxuZyI6IiIsInJhZGl1c19tIjoyMDAsIm1hcHNfdXJsIjoiIiwiYWN0aXZlIjp0cnVlLCJzb3VyY2UiOiLZiNiy2KfYsdipINin2YTYudiv2YQiLCJ2ZXJpZmllZCI6dHJ1ZX0seyJpZCI6IkdMT0JBTC1DT1VSVC1GQVJXQU5JWUEiLCJvZmZpY2VfaWQiOiJHTE9CQUwiLCJuYW1lIjoi2YXYrNmF2Lkg2YXYrdin2YPZhSDYp9mE2YHYsdmI2KfZhtmK2KkiLCJjYXRlZ29yeSI6ItmF2K3Yp9mD2YUiLCJnb3Zlcm5vcmF0ZSI6Itin2YTZgdix2YjYp9mG2YrYqSIsImFkZHJlc3MiOiLYp9mE2LHZgti52YrYjCDZgti32LnYqSAy2Iwg2LTYp9ix2Lkg2LPYp9ix2Yog2YXZhtin2YjYsSDYp9mE2KvZiNmK2YXYsdiMINmC2LPZitmF2KkgOTAwMDMw2Iwg2KfZhNmD2YjZitiqIiwibGF0IjoiIiwibG5nIjoiIiwicmFkaXVzX20iOjIwMCwibWFwc191cmwiOiIiLCJhY3RpdmUiOnRydWUsInNvdXJjZSI6ItmI2LLYp9ix2Kkg2KfZhNi52K/ZhCIsInZlcmlmaWVkIjp0cnVlfSx7ImlkIjoiR0xPQkFMLUNPVVJULUhBV0FMTEkiLCJvZmZpY2VfaWQiOiJHTE9CQUwiLCJuYW1lIjoi2YXYrNmF2Lkg2YXYrdin2YPZhSDYrdmI2YTZiiDYp9mE2KzYr9mK2K/YqSIsImNhdGVnb3J5Ijoi2YXYrdin2YPZhSIsImdvdmVybm9yYXRlIjoi2K3ZiNmE2YoiLCJhZGRyZXNzIjoi2K3ZiNmE2YrYjCDZgti32LnYqSAz2Iwg2LTYp9ix2LkgNzbYjCDYp9mE2YPZiNmK2KoiLCJsYXQiOiIiLCJsbmciOiIiLCJyYWRpdXNfbSI6MjAwLCJtYXBzX3VybCI6IiIsImFjdGl2ZSI6dHJ1ZSwic291cmNlIjoi2YjYstin2LHYqSDYp9mE2LnYr9mEIiwidmVyaWZpZWQiOnRydWV9LHsiaWQiOiJHTE9CQUwtQ09VUlQtSkFIUkEiLCJvZmZpY2VfaWQiOiJHTE9CQUwiLCJuYW1lIjoi2YXYrNmF2Lkg2YXYrdin2YPZhSDYp9mE2KzZh9ix2KfYoSIsImNhdGVnb3J5Ijoi2YXYrdin2YPZhSIsImdvdmVybm9yYXRlIjoi2KfZhNis2YfYsdin2KEiLCJhZGRyZXNzIjoi2LTZhdin2YQg2LrYsdioINin2YTYrNmH2LHYp9ih2Iwg2YLYt9i52KkgMdiMINi02KfYsdi5INmF2LHYstmI2YIg2KfZhNmF2KrYudio2Iwg2KfZhNmD2YjZitiqIiwibGF0IjoiIiwibG5nIjoiIiwicmFkaXVzX20iOjIwMCwibWFwc191cmwiOiIiLCJhY3RpdmUiOnRydWUsInNvdXJjZSI6ItmI2LLYp9ix2Kkg2KfZhNi52K/ZhCIsInZlcmlmaWVkIjp0cnVlfSx7ImlkIjoiR0xPQkFMLUNPVVJULUFITUFESSIsIm9mZmljZV9pZCI6IkdMT0JBTCIsIm5hbWUiOiLZhdis2YXYuSDZhdit2KfZg9mFINin2YTYo9it2YXYr9mKIiwiY2F0ZWdvcnkiOiLZhdit2KfZg9mFIiwiZ292ZXJub3JhdGUiOiLYp9mE2KPYrdmF2K/ZiiIsImFkZHJlc3MiOiLYrNmG2YjYqCDYp9mE2LXYqNin2K3Zitip2Iwg2YLYt9i52KkgMdiMINmF2KjZhtmJINmF2K3Yp9mD2YUg2KfZhNij2K3Zhdiv2YrYjCDYp9mE2YPZiNmK2KoiLCJsYXQiOiIiLCJsbmciOiIiLCJyYWRpdXNfbSI6MjAwLCJtYXBzX3VybCI6IiIsImFjdGl2ZSI6dHJ1ZSwic291cmNlIjoi2YjYstin2LHYqSDYp9mE2LnYr9mEIiwidmVyaWZpZWQiOnRydWV9LHsiaWQiOiJHTE9CQUwtRkFNSUxZLUNBUElUQUwiLCJvZmZpY2VfaWQiOiJHTE9CQUwiLCJuYW1lIjoi2YXYrdmD2YXYqSDYp9mE2KPYs9ix2Kkg4oCTINin2YTYudin2LXZhdipIiwiY2F0ZWdvcnkiOiLZhdit2KfZg9mFINin2YTYo9iz2LHYqSIsImdvdmVybm9yYXRlIjoi2KfZhNi52KfYtdmF2KkiLCJhZGRyZXNzIjoi2YXYrdmD2YXYqSDYp9mE2KPYs9ix2Kkg2KfZhNi52KfYtdmF2KnYjCDYp9mE2YPZiNmK2KoiLCJsYXQiOiIiLCJsbmciOiIiLCJyYWRpdXNfbSI6MjAwLCJtYXBzX3VybCI6IiIsImFjdGl2ZSI6dHJ1ZSwic291cmNlIjoi2K/ZhNmK2YQg2YjYstin2LHYqSDYp9mE2LnYr9mEIiwidmVyaWZpZWQiOmZhbHNlfSx7ImlkIjoiR0xPQkFMLUZBTUlMWS1IQVdBTExJIiwib2ZmaWNlX2lkIjoiR0xPQkFMIiwibmFtZSI6ItmF2K3Zg9mF2Kkg2KfZhNij2LPYsdipIOKAkyDYrdmI2YTZiiIsImNhdGVnb3J5Ijoi2YXYrdin2YPZhSDYp9mE2KPYs9ix2KkiLCJnb3Zlcm5vcmF0ZSI6Itit2YjZhNmKIiwiYWRkcmVzcyI6ItmF2K3Zg9mF2Kkg2KfZhNij2LPYsdipINit2YjZhNmK2Iwg2KfZhNmD2YjZitiqIiwibGF0IjoiIiwibG5nIjoiIiwicmFkaXVzX20iOjIwMCwibWFwc191cmwiOiIiLCJhY3RpdmUiOnRydWUsInNvdXJjZSI6Itiv2YTZitmEINmI2LLYp9ix2Kkg2KfZhNi52K/ZhCIsInZlcmlmaWVkIjpmYWxzZX0seyJpZCI6IkdMT0JBTC1GQU1JTFktRkFSV0FOSVlBIiwib2ZmaWNlX2lkIjoiR0xPQkFMIiwibmFtZSI6ItmF2K3Zg9mF2Kkg2KfZhNij2LPYsdipIOKAkyDYp9mE2YHYsdmI2KfZhtmK2KkiLCJjYXRlZ29yeSI6ItmF2K3Yp9mD2YUg2KfZhNij2LPYsdipIiwiZ292ZXJub3JhdGUiOiLYp9mE2YHYsdmI2KfZhtmK2KkiLCJhZGRyZXNzIjoi2YXYrdmD2YXYqSDYp9mE2KPYs9ix2Kkg2KfZhNmB2LHZiNin2YbZitip2Iwg2KfZhNmD2YjZitiqIiwibGF0IjoiIiwibG5nIjoiIiwicmFkaXVzX20iOjIwMCwibWFwc191cmwiOiIiLCJhY3RpdmUiOnRydWUsInNvdXJjZSI6Itiv2YTZitmEINmI2LLYp9ix2Kkg2KfZhNi52K/ZhCIsInZlcmlmaWVkIjpmYWxzZX0seyJpZCI6IkdMT0JBTC1GQU1JTFktSkFIUkEiLCJvZmZpY2VfaWQiOiJHTE9CQUwiLCJuYW1lIjoi2YXYrdmD2YXYqSDYp9mE2KPYs9ix2Kkg4oCTINin2YTYrNmH2LHYp9ihIiwiY2F0ZWdvcnkiOiLZhdit2KfZg9mFINin2YTYo9iz2LHYqSIsImdvdmVybm9yYXRlIjoi2KfZhNis2YfYsdin2KEiLCJhZGRyZXNzIjoi2YXYrdmD2YXYqSDYp9mE2KPYs9ix2Kkg2KfZhNis2YfYsdin2KHYjCDYp9mE2YPZiNmK2KoiLCJsYXQiOiIiLCJsbmciOiIiLCJyYWRpdXNfbSI6MjAwLCJtYXBzX3VybCI6IiIsImFjdGl2ZSI6dHJ1ZSwic291cmNlIjoi2K/ZhNmK2YQg2YjYstin2LHYqSDYp9mE2LnYr9mEIiwidmVyaWZpZWQiOmZhbHNlfSx7ImlkIjoiR0xPQkFMLUZBTUlMWS1BSE1BREkiLCJvZmZpY2VfaWQiOiJHTE9CQUwiLCJuYW1lIjoi2YXYrdmD2YXYqSDYp9mE2KPYs9ix2Kkg4oCTINin2YTYo9it2YXYr9mKIiwiY2F0ZWdvcnkiOiLZhdit2KfZg9mFINin2YTYo9iz2LHYqSIsImdvdmVybm9yYXRlIjoi2KfZhNij2K3Zhdiv2YoiLCJhZGRyZXNzIjoi2YXYrdmD2YXYqSDYp9mE2KPYs9ix2Kkg2KfZhNij2K3Zhdiv2YrYjCDYp9mE2YPZiNmK2KoiLCJsYXQiOiIiLCJsbmciOiIiLCJyYWRpdXNfbSI6MjAwLCJtYXBzX3VybCI6IiIsImFjdGl2ZSI6dHJ1ZSwic291cmNlIjoi2K/ZhNmK2YQg2YjYstin2LHYqSDYp9mE2LnYr9mEIiwidmVyaWZpZWQiOmZhbHNlfSx7ImlkIjoiR0xPQkFMLUZBTUlMWS1NVUJBUkFLIiwib2ZmaWNlX2lkIjoiR0xPQkFMIiwibmFtZSI6ItmF2K3Zg9mF2Kkg2KfZhNij2LPYsdipIOKAkyDZhdio2KfYsdmDINin2YTZg9io2YrYsSIsImNhdGVnb3J5Ijoi2YXYrdin2YPZhSDYp9mE2KPYs9ix2KkiLCJnb3Zlcm5vcmF0ZSI6ItmF2KjYp9ix2YMg2KfZhNmD2KjZitixIiwiYWRkcmVzcyI6ItmF2K3Zg9mF2Kkg2KfZhNij2LPYsdipINmF2KjYp9ix2YMg2KfZhNmD2KjZitix2Iwg2KfZhNmD2YjZitiqIiwibGF0IjoiIiwibG5nIjoiIiwicmFkaXVzX20iOjIwMCwibWFwc191cmwiOiIiLCJhY3RpdmUiOnRydWUsInNvdXJjZSI6Itiv2YTZitmEINmI2LLYp9ix2Kkg2KfZhNi52K/ZhCIsInZlcmlmaWVkIjpmYWxzZX0seyJpZCI6IkdMT0JBTC1QUk9TRUNVVElPTi1IUSIsIm9mZmljZV9pZCI6IkdMT0JBTCIsIm5hbWUiOiLZhdio2YbZiSDYp9mE2YbZitin2KjYqSDYp9mE2LnYp9mF2Kkg4oCTINin2YTYtNmI2YrYriIsImNhdGVnb3J5Ijoi2KfZhNmG2YrYp9io2KfYqiIsImdvdmVybm9yYXRlIjoi2KfZhNi52KfYtdmF2KkiLCJhZGRyZXNzIjoi2KfZhNi02YjZitiuINin2YTYpdiv2KfYsdmK2KnYjCDZgti32LnYqSA22Iwg2YLYs9mK2YXYqSAxMiDYsdiMINin2YTZg9mI2YrYqiIsImxhdCI6IiIsImxuZyI6IiIsInJhZGl1c19tIjoyMDAsIm1hcHNfdXJsIjoiIiwiYWN0aXZlIjp0cnVlLCJzb3VyY2UiOiLZiNiy2KfYsdipINin2YTYudiv2YQiLCJ2ZXJpZmllZCI6dHJ1ZX0seyJpZCI6IkdMT0JBTC1BVFRPUk5FWS1HRU5FUkFMIiwib2ZmaWNlX2lkIjoiR0xPQkFMIiwibmFtZSI6ItmF2YPYqtioINin2YTZhdit2KfZhdmKINin2YTYudin2YUg4oCTINin2YTYtNmI2YrYriIsImNhdGVnb3J5Ijoi2KfZhNmG2YrYp9io2KfYqiIsImdvdmVybm9yYXRlIjoi2KfZhNi52KfYtdmF2KkiLCJhZGRyZXNzIjoi2KfZhNi02YjZitiuINin2YTYpdiv2KfYsdmK2KnYjCDZgti32LnYqSA22Iwg2YLYs9mK2YXYqSA5MDAwMzHYjCDYp9mE2YPZiNmK2KoiLCJsYXQiOiIiLCJsbmciOiIiLCJyYWRpdXNfbSI6MjAwLCJtYXBzX3VybCI6IiIsImFjdGl2ZSI6dHJ1ZSwic291cmNlIjoi2YjYstin2LHYqSDYp9mE2LnYr9mEIiwidmVyaWZpZWQiOnRydWV9LHsiaWQiOiJHTE9CQUwtSlVWRU5JTEUtUFJPU0VDVVRJT04iLCJvZmZpY2VfaWQiOiJHTE9CQUwiLCJuYW1lIjoi2YbZitin2KjYqSDYp9mE2KPYrdiv2KfYqyIsImNhdGVnb3J5Ijoi2KfZhNmG2YrYp9io2KfYqiIsImdvdmVybm9yYXRlIjoi2KfZhNi52KfYtdmF2KkiLCJhZGRyZXNzIjoi2KfZhNmF2YbYt9mC2Kkg2KfZhNi12K3Zitip2Iwg2YLYt9i52KkgMdiMINiv2YjYp9ixINin2YTYo9mF2YUg2KfZhNmF2KrYrdiv2KnYjCDYt9ix2YrZgiDYutix2YbYp9i32Kkg2KfZhNi02LHZgtmK2Iwg2KfZhNmD2YjZitiqIiwibGF0IjoiIiwibG5nIjoiIiwicmFkaXVzX20iOjIwMCwibWFwc191cmwiOiIiLCJhY3RpdmUiOnRydWUsInNvdXJjZSI6ItmI2LLYp9ix2Kkg2KfZhNi52K/ZhCIsInZlcmlmaWVkIjp0cnVlfSx7ImlkIjoiR0xPQkFMLUZBTUlMWS1QUk9TRUNVVElPTiIsIm9mZmljZV9pZCI6IkdMT0JBTCIsIm5hbWUiOiLZhtmK2KfYqNipINi02KTZiNmGINin2YTYo9iz2LHYqSIsImNhdGVnb3J5Ijoi2KfZhNmG2YrYp9io2KfYqiIsImdvdmVybm9yYXRlIjoi2KfZhNi52KfYtdmF2KkiLCJhZGRyZXNzIjoi2KfZhNmC2KjZhNip2Iwg2YLYt9i52KkgMTXYjCDYtNin2LHYuSDYudmE2Yog2KfZhNiz2KfZhNmF2Iwg2YLYtdixINin2YTYudiv2YTYjCDYp9mE2K/ZiNixINin2YTYo9ix2LbZitiMINin2YTZg9mI2YrYqiIsImxhdCI6IiIsImxuZyI6IiIsInJhZGl1c19tIjoyMDAsIm1hcHNfdXJsIjoiIiwiYWN0aXZlIjp0cnVlLCJzb3VyY2UiOiLZiNiy2KfYsdipINin2YTYudiv2YQiLCJ2ZXJpZmllZCI6dHJ1ZX0seyJpZCI6IkdMT0JBTC1QUk9TRUNVVElPTi1GQVJXQU5JWUEiLCJvZmZpY2VfaWQiOiJHTE9CQUwiLCJuYW1lIjoi2YbZitin2KjYqSDYp9mE2YHYsdmI2KfZhtmK2KkiLCJjYXRlZ29yeSI6Itin2YTZhtmK2KfYqNin2KoiLCJnb3Zlcm5vcmF0ZSI6Itin2YTZgdix2YjYp9mG2YrYqSIsImFkZHJlc3MiOiLYp9mE2LHZgti52YrYjCDZgti32LnYqSAy2Iwg2LTYp9ix2Lkg2LPYp9ix2Yog2YXZhtin2YjYsSDYp9mE2KvZiNmK2YXYsdiMINmF2KjZhtmJINmF2K3Yp9mD2YUg2KfZhNmB2LHZiNin2YbZitip2Iwg2KfZhNmD2YjZitiqIiwibGF0IjoiIiwibG5nIjoiIiwicmFkaXVzX20iOjIwMCwibWFwc191cmwiOiIiLCJhY3RpdmUiOnRydWUsInNvdXJjZSI6ItmI2LLYp9ix2Kkg2KfZhNi52K/ZhCIsInZlcmlmaWVkIjp0cnVlfSx7ImlkIjoiR0xPQkFMLVBST1NFQ1VUSU9OLUhBV0FMTEkiLCJvZmZpY2VfaWQiOiJHTE9CQUwiLCJuYW1lIjoi2YbZitin2KjYqSDYrdmI2YTZiiIsImNhdGVnb3J5Ijoi2KfZhNmG2YrYp9io2KfYqiIsImdvdmVybm9yYXRlIjoi2K3ZiNmE2YoiLCJhZGRyZXNzIjoi2YXYrNmF2Lkg2YXYrdin2YPZhSDYrdmI2YTZiiDYp9mE2KzYr9mK2K/YqdiMINit2YjZhNmK2Iwg2YLYt9i52KkgM9iMINi02KfYsdi5IDc22Iwg2KfZhNiv2YjYsSAyNCDZiDI12Iwg2KfZhNmD2YjZitiqIiwibGF0IjoiIiwibG5nIjoiIiwicmFkaXVzX20iOjIwMCwibWFwc191cmwiOiIiLCJhY3RpdmUiOnRydWUsInNvdXJjZSI6ItmI2LLYp9ix2Kkg2KfZhNi52K/ZhCIsInZlcmlmaWVkIjp0cnVlfSx7ImlkIjoiR0xPQkFMLVBST1NFQ1VUSU9OLUpBSFJBIiwib2ZmaWNlX2lkIjoiR0xPQkFMIiwibmFtZSI6ItmG2YrYp9io2Kkg2KfZhNis2YfYsdin2KEiLCJjYXRlZ29yeSI6Itin2YTZhtmK2KfYqNin2KoiLCJnb3Zlcm5vcmF0ZSI6Itin2YTYrNmH2LHYp9ihIiwiYWRkcmVzcyI6Iti02YXYp9mEINi62LHYqCDYp9mE2KzZh9ix2KfYodiMINmC2LfYudipIDHYjCDYtNin2LHYuSDZhdix2LLZiNmCINin2YTZhdiq2LnYqNiMINmF2KjZhtmJINmF2KzZhdi5INmF2K3Yp9mD2YUg2KfZhNis2YfYsdin2KHYjCDYp9mE2YPZiNmK2KoiLCJsYXQiOiIiLCJsbmciOiIiLCJyYWRpdXNfbSI6MjAwLCJtYXBzX3VybCI6IiIsImFjdGl2ZSI6dHJ1ZSwic291cmNlIjoi2YjYstin2LHYqSDYp9mE2LnYr9mEIiwidmVyaWZpZWQiOnRydWV9LHsiaWQiOiJHTE9CQUwtUFJPU0VDVVRJT04tQUhNQURJIiwib2ZmaWNlX2lkIjoiR0xPQkFMIiwibmFtZSI6ItmG2YrYp9io2Kkg2KfZhNij2K3Zhdiv2YoiLCJjYXRlZ29yeSI6Itin2YTZhtmK2KfYqNin2KoiLCJnb3Zlcm5vcmF0ZSI6Itin2YTYo9it2YXYr9mKIiwiYWRkcmVzcyI6Itis2YbZiNioINin2YTYtdio2KfYrdmK2KnYjCDZgti32LnYqSAx2Iwg2YXYqNmG2Ykg2YXYrdin2YPZhSDYp9mE2KPYrdmF2K/ZitiMINin2YTZg9mI2YrYqiIsImxhdCI6IiIsImxuZyI6IiIsInJhZGl1c19tIjoyMDAsIm1hcHNfdXJsIjoiIiwiYWN0aXZlIjp0cnVlLCJzb3VyY2UiOiLZiNiy2KfYsdipINin2YTYudiv2YQiLCJ2ZXJpZmllZCI6dHJ1ZX0seyJpZCI6IkdMT0JBTC1QUk9TRUNVVElPTi1NVUJBUkFLIiwib2ZmaWNlX2lkIjoiR0xPQkFMIiwibmFtZSI6ItmG2YrYp9io2Kkg2YXYqNin2LHZgyDYp9mE2YPYqNmK2LEiLCJjYXRlZ29yeSI6Itin2YTZhtmK2KfYqNin2KoiLCJnb3Zlcm5vcmF0ZSI6ItmF2KjYp9ix2YMg2KfZhNmD2KjZitixIiwiYWRkcmVzcyI6Itis2YbZiNioINin2YTYtdio2KfYrdmK2KnYjCDZgti32LnYqSAx2Iwg2YXYqNmG2Ykg2YXYrdin2YPZhSDYp9mE2KPYrdmF2K/ZitiMINin2YTZg9mI2YrYqiIsImxhdCI6IiIsImxuZyI6IiIsInJhZGl1c19tIjoyMDAsIm1hcHNfdXJsIjoiIiwiYWN0aXZlIjp0cnVlLCJzb3VyY2UiOiLZiNiy2KfYsdipINin2YTYudiv2YQiLCJ2ZXJpZmllZCI6dHJ1ZX0seyJpZCI6IkdMT0JBTC1FWFBFUlRTLdin2YTYudin2LXZhdipIiwib2ZmaWNlX2lkIjoiR0xPQkFMIiwibmFtZSI6Itil2K/Yp9ix2Kkg2KfZhNiu2KjYsdin2KEg4oCTINin2YTYudin2LXZhdipIiwiY2F0ZWdvcnkiOiLYpdiv2KfYsdipINin2YTYrtio2LHYp9ihIiwiZ292ZXJub3JhdGUiOiLYp9mE2LnYp9i12YXYqSIsImFkZHJlc3MiOiLYpdiv2KfYsdipINin2YTYrtio2LHYp9ihINin2YTYudin2LXZhdip2Iwg2KfZhNmD2YjZitiqIiwibGF0IjoiIiwibG5nIjoiIiwicmFkaXVzX20iOjIwMCwibWFwc191cmwiOiIiLCJhY3RpdmUiOnRydWUsInNvdXJjZSI6Itiv2YTZitmEINmI2LLYp9ix2Kkg2KfZhNi52K/ZhCIsInZlcmlmaWVkIjpmYWxzZX0seyJpZCI6IkdMT0JBTC1FWEVDVVRJT04t2KfZhNi52KfYtdmF2KkiLCJvZmZpY2VfaWQiOiJHTE9CQUwiLCJuYW1lIjoi2KXYr9in2LHYqSDYp9mE2KrZhtmB2YrYsCDigJMg2KfZhNi52KfYtdmF2KkiLCJjYXRlZ29yeSI6Itil2K/Yp9ix2KfYqiDYp9mE2KrZhtmB2YrYsCIsImdvdmVybm9yYXRlIjoi2KfZhNi52KfYtdmF2KkiLCJhZGRyZXNzIjoi2KXYr9in2LHYqSDYp9mE2KrZhtmB2YrYsCDYp9mE2LnYp9i12YXYqdiMINin2YTZg9mI2YrYqiIsImxhdCI6IiIsImxuZyI6IiIsInJhZGl1c19tIjoyMDAsIm1hcHNfdXJsIjoiIiwiYWN0aXZlIjp0cnVlLCJzb3VyY2UiOiLYr9mE2YrZhCDZiNiy2KfYsdipINin2YTYudiv2YQiLCJ2ZXJpZmllZCI6ZmFsc2V9LHsiaWQiOiJHTE9CQUwtRVhQRVJUUy3YrdmI2YTZiiIsIm9mZmljZV9pZCI6IkdMT0JBTCIsIm5hbWUiOiLYpdiv2KfYsdipINin2YTYrtio2LHYp9ihIOKAkyDYrdmI2YTZiiIsImNhdGVnb3J5Ijoi2KXYr9in2LHYqSDYp9mE2K7YqNix2KfYoSIsImdvdmVybm9yYXRlIjoi2K3ZiNmE2YoiLCJhZGRyZXNzIjoi2KXYr9in2LHYqSDYp9mE2K7YqNix2KfYoSDYrdmI2YTZitiMINin2YTZg9mI2YrYqiIsImxhdCI6IiIsImxuZyI6IiIsInJhZGl1c19tIjoyMDAsIm1hcHNfdXJsIjoiIiwiYWN0aXZlIjp0cnVlLCJzb3VyY2UiOiLYr9mE2YrZhCDZiNiy2KfYsdipINin2YTYudiv2YQiLCJ2ZXJpZmllZCI6ZmFsc2V9LHsiaWQiOiJHTE9CQUwtRVhFQ1VUSU9OLdit2YjZhNmKIiwib2ZmaWNlX2lkIjoiR0xPQkFMIiwibmFtZSI6Itil2K/Yp9ix2Kkg2KfZhNiq2YbZgdmK2LAg4oCTINit2YjZhNmKIiwiY2F0ZWdvcnkiOiLYpdiv2KfYsdin2Kog2KfZhNiq2YbZgdmK2LAiLCJnb3Zlcm5vcmF0ZSI6Itit2YjZhNmKIiwiYWRkcmVzcyI6Itil2K/Yp9ix2Kkg2KfZhNiq2YbZgdmK2LAg2K3ZiNmE2YrYjCDYp9mE2YPZiNmK2KoiLCJsYXQiOiIiLCJsbmciOiIiLCJyYWRpdXNfbSI6MjAwLCJtYXBzX3VybCI6IiIsImFjdGl2ZSI6dHJ1ZSwic291cmNlIjoi2K/ZhNmK2YQg2YjYstin2LHYqSDYp9mE2LnYr9mEIiwidmVyaWZpZWQiOmZhbHNlfSx7ImlkIjoiR0xPQkFMLUVYUEVSVFMt2KfZhNmB2LHZiNin2YbZitipIiwib2ZmaWNlX2lkIjoiR0xPQkFMIiwibmFtZSI6Itil2K/Yp9ix2Kkg2KfZhNiu2KjYsdin2KEg4oCTINin2YTZgdix2YjYp9mG2YrYqSIsImNhdGVnb3J5Ijoi2KXYr9in2LHYqSDYp9mE2K7YqNix2KfYoSIsImdvdmVybm9yYXRlIjoi2KfZhNmB2LHZiNin2YbZitipIiwiYWRkcmVzcyI6Itil2K/Yp9ix2Kkg2KfZhNiu2KjYsdin2KEg2KfZhNmB2LHZiNin2YbZitip2Iwg2KfZhNmD2YjZitiqIiwibGF0IjoiIiwibG5nIjoiIiwicmFkaXVzX20iOjIwMCwibWFwc191cmwiOiIiLCJhY3RpdmUiOnRydWUsInNvdXJjZSI6Itiv2YTZitmEINmI2LLYp9ix2Kkg2KfZhNi52K/ZhCIsInZlcmlmaWVkIjpmYWxzZX0seyJpZCI6IkdMT0JBTC1FWEVDVVRJT04t2KfZhNmB2LHZiNin2YbZitipIiwib2ZmaWNlX2lkIjoiR0xPQkFMIiwibmFtZSI6Itil2K/Yp9ix2Kkg2KfZhNiq2YbZgdmK2LAg4oCTINin2YTZgdix2YjYp9mG2YrYqSIsImNhdGVnb3J5Ijoi2KXYr9in2LHYp9iqINin2YTYqtmG2YHZitiwIiwiZ292ZXJub3JhdGUiOiLYp9mE2YHYsdmI2KfZhtmK2KkiLCJhZGRyZXNzIjoi2KXYr9in2LHYqSDYp9mE2KrZhtmB2YrYsCDYp9mE2YHYsdmI2KfZhtmK2KnYjCDYp9mE2YPZiNmK2KoiLCJsYXQiOiIiLCJsbmciOiIiLCJyYWRpdXNfbSI6MjAwLCJtYXBzX3VybCI6IiIsImFjdGl2ZSI6dHJ1ZSwic291cmNlIjoi2K/ZhNmK2YQg2YjYstin2LHYqSDYp9mE2LnYr9mEIiwidmVyaWZpZWQiOmZhbHNlfSx7ImlkIjoiR0xPQkFMLUVYUEVSVFMt2KfZhNis2YfYsdin2KEiLCJvZmZpY2VfaWQiOiJHTE9CQUwiLCJuYW1lIjoi2KXYr9in2LHYqSDYp9mE2K7YqNix2KfYoSDigJMg2KfZhNis2YfYsdin2KEiLCJjYXRlZ29yeSI6Itil2K/Yp9ix2Kkg2KfZhNiu2KjYsdin2KEiLCJnb3Zlcm5vcmF0ZSI6Itin2YTYrNmH2LHYp9ihIiwiYWRkcmVzcyI6Itil2K/Yp9ix2Kkg2KfZhNiu2KjYsdin2KEg2KfZhNis2YfYsdin2KHYjCDYp9mE2YPZiNmK2KoiLCJsYXQiOiIiLCJsbmciOiIiLCJyYWRpdXNfbSI6MjAwLCJtYXBzX3VybCI6IiIsImFjdGl2ZSI6dHJ1ZSwic291cmNlIjoi2K/ZhNmK2YQg2YjYstin2LHYqSDYp9mE2LnYr9mEIiwidmVyaWZpZWQiOmZhbHNlfSx7ImlkIjoiR0xPQkFMLUVYRUNVVElPTi3Yp9mE2KzZh9ix2KfYoSIsIm9mZmljZV9pZCI6IkdMT0JBTCIsIm5hbWUiOiLYpdiv2KfYsdipINin2YTYqtmG2YHZitiwIOKAkyDYp9mE2KzZh9ix2KfYoSIsImNhdGVnb3J5Ijoi2KXYr9in2LHYp9iqINin2YTYqtmG2YHZitiwIiwiZ292ZXJub3JhdGUiOiLYp9mE2KzZh9ix2KfYoSIsImFkZHJlc3MiOiLYpdiv2KfYsdipINin2YTYqtmG2YHZitiwINin2YTYrNmH2LHYp9ih2Iwg2KfZhNmD2YjZitiqIiwibGF0IjoiIiwibG5nIjoiIiwicmFkaXVzX20iOjIwMCwibWFwc191cmwiOiIiLCJhY3RpdmUiOnRydWUsInNvdXJjZSI6Itiv2YTZitmEINmI2LLYp9ix2Kkg2KfZhNi52K/ZhCIsInZlcmlmaWVkIjpmYWxzZX0seyJpZCI6IkdMT0JBTC1FWFBFUlRTLdin2YTYo9it2YXYr9mKIiwib2ZmaWNlX2lkIjoiR0xPQkFMIiwibmFtZSI6Itil2K/Yp9ix2Kkg2KfZhNiu2KjYsdin2KEg4oCTINin2YTYo9it2YXYr9mKIiwiY2F0ZWdvcnkiOiLYpdiv2KfYsdipINin2YTYrtio2LHYp9ihIiwiZ292ZXJub3JhdGUiOiLYp9mE2KPYrdmF2K/ZiiIsImFkZHJlc3MiOiLYpdiv2KfYsdipINin2YTYrtio2LHYp9ihINin2YTYo9it2YXYr9mK2Iwg2KfZhNmD2YjZitiqIiwibGF0IjoiIiwibG5nIjoiIiwicmFkaXVzX20iOjIwMCwibWFwc191cmwiOiIiLCJhY3RpdmUiOnRydWUsInNvdXJjZSI6Itiv2YTZitmEINmI2LLYp9ix2Kkg2KfZhNi52K/ZhCIsInZlcmlmaWVkIjpmYWxzZX0seyJpZCI6IkdMT0JBTC1FWEVDVVRJT04t2KfZhNij2K3Zhdiv2YoiLCJvZmZpY2VfaWQiOiJHTE9CQUwiLCJuYW1lIjoi2KXYr9in2LHYqSDYp9mE2KrZhtmB2YrYsCDigJMg2KfZhNij2K3Zhdiv2YoiLCJjYXRlZ29yeSI6Itil2K/Yp9ix2KfYqiDYp9mE2KrZhtmB2YrYsCIsImdvdmVybm9yYXRlIjoi2KfZhNij2K3Zhdiv2YoiLCJhZGRyZXNzIjoi2KXYr9in2LHYqSDYp9mE2KrZhtmB2YrYsCDYp9mE2KPYrdmF2K/ZitiMINin2YTZg9mI2YrYqiIsImxhdCI6IiIsImxuZyI6IiIsInJhZGl1c19tIjoyMDAsIm1hcHNfdXJsIjoiIiwiYWN0aXZlIjp0cnVlLCJzb3VyY2UiOiLYr9mE2YrZhCDZiNiy2KfYsdipINin2YTYudiv2YQiLCJ2ZXJpZmllZCI6ZmFsc2V9LHsiaWQiOiJHTE9CQUwtRVhQRVJUUy3Zhdio2KfYsdmDINin2YTZg9io2YrYsSIsIm9mZmljZV9pZCI6IkdMT0JBTCIsIm5hbWUiOiLYpdiv2KfYsdipINin2YTYrtio2LHYp9ihIOKAkyDZhdio2KfYsdmDINin2YTZg9io2YrYsSIsImNhdGVnb3J5Ijoi2KXYr9in2LHYqSDYp9mE2K7YqNix2KfYoSIsImdvdmVybm9yYXRlIjoi2YXYqNin2LHZgyDYp9mE2YPYqNmK2LEiLCJhZGRyZXNzIjoi2KXYr9in2LHYqSDYp9mE2K7YqNix2KfYoSDZhdio2KfYsdmDINin2YTZg9io2YrYsdiMINin2YTZg9mI2YrYqiIsImxhdCI6IiIsImxuZyI6IiIsInJhZGl1c19tIjoyMDAsIm1hcHNfdXJsIjoiIiwiYWN0aXZlIjp0cnVlLCJzb3VyY2UiOiLYr9mE2YrZhCDZiNiy2KfYsdipINin2YTYudiv2YQiLCJ2ZXJpZmllZCI6ZmFsc2V9LHsiaWQiOiJHTE9CQUwtRVhFQ1VUSU9OLdmF2KjYp9ix2YMg2KfZhNmD2KjZitixIiwib2ZmaWNlX2lkIjoiR0xPQkFMIiwibmFtZSI6Itil2K/Yp9ix2Kkg2KfZhNiq2YbZgdmK2LAg4oCTINmF2KjYp9ix2YMg2KfZhNmD2KjZitixIiwiY2F0ZWdvcnkiOiLYpdiv2KfYsdin2Kog2KfZhNiq2YbZgdmK2LAiLCJnb3Zlcm5vcmF0ZSI6ItmF2KjYp9ix2YMg2KfZhNmD2KjZitixIiwiYWRkcmVzcyI6Itil2K/Yp9ix2Kkg2KfZhNiq2YbZgdmK2LAg2YXYqNin2LHZgyDYp9mE2YPYqNmK2LHYjCDYp9mE2YPZiNmK2KoiLCJsYXQiOiIiLCJsbmciOiIiLCJyYWRpdXNfbSI6MjAwLCJtYXBzX3VybCI6IiIsImFjdGl2ZSI6dHJ1ZSwic291cmNlIjoi2K/ZhNmK2YQg2YjYstin2LHYqSDYp9mE2LnYr9mEIiwidmVyaWZpZWQiOmZhbHNlfSx7ImlkIjoiR0xPQkFMLVBPTElDRS3Zhdiu2YHYsSDYp9mE2LXYp9mE2K3ZitipIiwib2ZmaWNlX2lkIjoiR0xPQkFMIiwibmFtZSI6ItmF2K7ZgdixINin2YTYtdin2YTYrdmK2KkiLCJjYXRlZ29yeSI6Itin2YTZhdiu2KfZgdixIiwiZ292ZXJub3JhdGUiOiLYp9mE2LnYp9i12YXYqSIsImFkZHJlc3MiOiLZhdiu2YHYsSDYp9mE2LXYp9mE2K3Zitip2Iwg2KfZhNmD2YjZitiqIiwibGF0IjoiIiwibG5nIjoiIiwicmFkaXVzX20iOjE1MCwibWFwc191cmwiOiIiLCJhY3RpdmUiOnRydWUsInNvdXJjZSI6Itio2K3YqyDYrtix2KfYpti3IiwidmVyaWZpZWQiOmZhbHNlfSx7ImlkIjoiR0xPQkFMLVBPTElDRS3Zhdiu2YHYsSDYp9mE2LPYp9mE2YXZitipIiwib2ZmaWNlX2lkIjoiR0xPQkFMIiwibmFtZSI6ItmF2K7ZgdixINin2YTYs9in2YTZhdmK2KkiLCJjYXRlZ29yeSI6Itin2YTZhdiu2KfZgdixIiwiZ292ZXJub3JhdGUiOiLYrdmI2YTZiiIsImFkZHJlc3MiOiLZhdiu2YHYsSDYp9mE2LPYp9mE2YXZitip2Iwg2KfZhNmD2YjZitiqIiwibGF0IjoiIiwibG5nIjoiIiwicmFkaXVzX20iOjE1MCwibWFwc191cmwiOiIiLCJhY3RpdmUiOnRydWUsInNvdXJjZSI6Itio2K3YqyDYrtix2KfYpti3IiwidmVyaWZpZWQiOmZhbHNlfSx7ImlkIjoiR0xPQkFMLVBPTElDRS3Zhdiu2YHYsSDYrdi32YrZhiIsIm9mZmljZV9pZCI6IkdMT0JBTCIsIm5hbWUiOiLZhdiu2YHYsSDYrdi32YrZhiIsImNhdGVnb3J5Ijoi2KfZhNmF2K7Yp9mB2LEiLCJnb3Zlcm5vcmF0ZSI6Itit2YjZhNmKIiwiYWRkcmVzcyI6ItmF2K7ZgdixINit2LfZitmG2Iwg2KfZhNmD2YjZitiqIiwibGF0IjoiIiwibG5nIjoiIiwicmFkaXVzX20iOjE1MCwibWFwc191cmwiOiIiLCJhY3RpdmUiOnRydWUsInNvdXJjZSI6Itio2K3YqyDYrtix2KfYpti3IiwidmVyaWZpZWQiOmZhbHNlfSx7ImlkIjoiR0xPQkFMLVBPTElDRS3Zhdiu2YHYsSDYp9mE2YHYsdmI2KfZhtmK2KkiLCJvZmZpY2VfaWQiOiJHTE9CQUwiLCJuYW1lIjoi2YXYrtmB2LEg2KfZhNmB2LHZiNin2YbZitipIiwiY2F0ZWdvcnkiOiLYp9mE2YXYrtin2YHYsSIsImdvdmVybm9yYXRlIjoi2KfZhNmB2LHZiNin2YbZitipIiwiYWRkcmVzcyI6ItmF2K7ZgdixINin2YTZgdix2YjYp9mG2YrYqdiMINin2YTZg9mI2YrYqiIsImxhdCI6IiIsImxuZyI6IiIsInJhZGl1c19tIjoxNTAsIm1hcHNfdXJsIjoiIiwiYWN0aXZlIjp0cnVlLCJzb3VyY2UiOiLYqNit2Ksg2K7Ysdin2KbYtyIsInZlcmlmaWVkIjpmYWxzZX0seyJpZCI6IkdMT0JBTC1QT0xJQ0Ut2YXYrtmB2LEg2KfZhNis2YfYsdin2KEiLCJvZmZpY2VfaWQiOiJHTE9CQUwiLCJuYW1lIjoi2YXYrtmB2LEg2KfZhNis2YfYsdin2KEiLCJjYXRlZ29yeSI6Itin2YTZhdiu2KfZgdixIiwiZ292ZXJub3JhdGUiOiLYp9mE2KzZh9ix2KfYoSIsImFkZHJlc3MiOiLZhdiu2YHYsSDYp9mE2KzZh9ix2KfYodiMINin2YTZg9mI2YrYqiIsImxhdCI6IiIsImxuZyI6IiIsInJhZGl1c19tIjoxNTAsIm1hcHNfdXJsIjoiIiwiYWN0aXZlIjp0cnVlLCJzb3VyY2UiOiLYqNit2Ksg2K7Ysdin2KbYtyIsInZlcmlmaWVkIjpmYWxzZX0seyJpZCI6IkdMT0JBTC1QT0xJQ0Ut2YXYrtmB2LEg2KfZhNij2K3Zhdiv2YoiLCJvZmZpY2VfaWQiOiJHTE9CQUwiLCJuYW1lIjoi2YXYrtmB2LEg2KfZhNij2K3Zhdiv2YoiLCJjYXRlZ29yeSI6Itin2YTZhdiu2KfZgdixIiwiZ292ZXJub3JhdGUiOiLYp9mE2KPYrdmF2K/ZiiIsImFkZHJlc3MiOiLZhdiu2YHYsSDYp9mE2KPYrdmF2K/ZitiMINin2YTZg9mI2YrYqiIsImxhdCI6IiIsImxuZyI6IiIsInJhZGl1c19tIjoxNTAsIm1hcHNfdXJsIjoiIiwiYWN0aXZlIjp0cnVlLCJzb3VyY2UiOiLYqNit2Ksg2K7Ysdin2KbYtyIsInZlcmlmaWVkIjpmYWxzZX0seyJpZCI6IkdMT0JBTC1QT0xJQ0Ut2YXYrtmB2LEg2YXYqNin2LHZgyDYp9mE2YPYqNmK2LEiLCJvZmZpY2VfaWQiOiJHTE9CQUwiLCJuYW1lIjoi2YXYrtmB2LEg2YXYqNin2LHZgyDYp9mE2YPYqNmK2LEiLCJjYXRlZ29yeSI6Itin2YTZhdiu2KfZgdixIiwiZ292ZXJub3JhdGUiOiLZhdio2KfYsdmDINin2YTZg9io2YrYsSIsImFkZHJlc3MiOiLZhdiu2YHYsSDZhdio2KfYsdmDINin2YTZg9io2YrYsdiMINin2YTZg9mI2YrYqiIsImxhdCI6IiIsImxuZyI6IiIsInJhZGl1c19tIjoxNTAsIm1hcHNfdXJsIjoiIiwiYWN0aXZlIjp0cnVlLCJzb3VyY2UiOiLYqNit2Ksg2K7Ysdin2KbYtyIsInZlcmlmaWVkIjpmYWxzZX1dOwpjb25zdCBMT0NBVElPTlNfQ0VOVEVSPVsyOS4zNzU5LDQ3Ljk3NzRdOwpsZXQgdG1NYXA9bnVsbCx0bU1hcmtlcj1udWxsLHRtUmFkaXVzQ2lyY2xlPW51bGwsdG1Mb2NhdGlvbnM9W10sdG1MZWFmbGV0UHJvbWlzZT1udWxsOwpmdW5jdGlvbiBhY3RpdmVPZmZpY2VJZCgpe3JldHVybiBTdHJpbmcobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhd3llcl9haV9vZmZpY2VfaWQnKXx8YXBwLmdldE9mZmljZUlkPy4oKXx8JycpLnRyaW0oKX0KZnVuY3Rpb24gYWN0aXZlVG9rZW4oKXtyZXR1cm4gU3RyaW5nKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYXd5ZXJfYWlfdG9rZW4nKXx8JycpLnRyaW0oKX0KZnVuY3Rpb24gbG9jYWxMb2NhdGlvbnNLZXkoKXtyZXR1cm5gbGF3YWlfbG9jYXRpb25zXyR7YWN0aXZlT2ZmaWNlSWQoKXx8J2RlZmF1bHQnfWB9CmZ1bmN0aW9uIHJlYWRMb2NhbExvY2F0aW9ucygpe3RyeXtjb25zdCB4PUpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0obG9jYWxMb2NhdGlvbnNLZXkoKSl8fCdbXScpO3JldHVybiBBcnJheS5pc0FycmF5KHgpP3g6W119Y2F0Y2h7cmV0dXJuW119fQpmdW5jdGlvbiB3cml0ZUxvY2FsTG9jYXRpb25zKHJvd3Mpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKGxvY2FsTG9jYXRpb25zS2V5KCksSlNPTi5zdHJpbmdpZnkocm93cy5zbGljZSgtMTAwKSkpfQpmdW5jdGlvbiBub3JtYWxpemVMb2NhdGlvblJvdyhyKXtyZXR1cm57aWQ6U3RyaW5nKHIuaWR8fCcnKSxvZmZpY2VfaWQ6U3RyaW5nKHIub2ZmaWNlX2lkfHwnJyksbmFtZTpTdHJpbmcoci5uYW1lfHwnJyksY2F0ZWdvcnk6U3RyaW5nKHIuY2F0ZWdvcnl8fCfZhdmI2KfZgti5INij2K7YsdmJJyksZ292ZXJub3JhdGU6U3RyaW5nKHIuZ292ZXJub3JhdGV8fCcnKSxhZGRyZXNzOlN0cmluZyhyLmFkZHJlc3N8fCcnKSxsYXQ6U3RyaW5nKHIubGF0fHwnJyksbG5nOlN0cmluZyhyLmxuZ3x8JycpLHJhZGl1c19tOk51bWJlcihyLnJhZGl1c19tfHxyLnJhZGl1c3x8MjAwKSxtYXBzX3VybDpTdHJpbmcoci5tYXBzX3VybHx8ci5tYXBzVXJsfHwnJyksYWN0aXZlOnIuYWN0aXZlIT09ZmFsc2UmJiFbJ2ZhbHNlJywnMCcsJ9mE2KcnXS5pbmNsdWRlcyhTdHJpbmcoci5hY3RpdmV8fCcnKS50b0xvd2VyQ2FzZSgpKSxzb3VyY2U6U3RyaW5nKHIuc291cmNlfHwnJyksdmVyaWZpZWQ6ci52ZXJpZmllZD09PXRydWV8fFsndHJ1ZScsJzEnLCfZhti52YUnXS5pbmNsdWRlcyhTdHJpbmcoci52ZXJpZmllZHx8JycpLnRvTG93ZXJDYXNlKCkpfX0KZnVuY3Rpb24gZGVkdXBlTG9jYXRpb25zKHJvd3Mpe2NvbnN0IG09bmV3IE1hcCgpO3Jvd3MubWFwKG5vcm1hbGl6ZUxvY2F0aW9uUm93KS5maWx0ZXIoeD0+eC5hY3RpdmUmJngubmFtZSkuZm9yRWFjaCh4PT5tLnNldCh4LmlkfHxgJHt4Lm5hbWV9fCR7eC5hZGRyZXNzfWAseCkpO3JldHVyblsuLi5tLnZhbHVlcygpXS5zb3J0KChhLGIpPT5hLmNhdGVnb3J5LmxvY2FsZUNvbXBhcmUoYi5jYXRlZ29yeSwnYXInKXx8YS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lLCdhcicpKX0KYXN5bmMgZnVuY3Rpb24gbG9jYXRpb25zQXBpKGFjdGlvbixwYXlsb2FkPXt9KXtjb25zdCByPWF3YWl0IGZldGNoKExPQ0FUSU9OU19BUEkse21ldGhvZDonUE9TVCcsaGVhZGVyczp7J0NvbnRlbnQtVHlwZSc6J2FwcGxpY2F0aW9uL2pzb24nfSxib2R5OkpTT04uc3RyaW5naWZ5KHthY3Rpb24sdG9rZW46YWN0aXZlVG9rZW4oKSxwYXlsb2FkfSl9KTtjb25zdCB0PWF3YWl0IHIudGV4dCgpO2xldCBqPXt9O3RyeXtqPUpTT04ucGFyc2UodCl9Y2F0Y2h7fWlmKCFyLm9rfHxqLm9rPT09ZmFsc2UpdGhyb3cgbmV3IEVycm9yKGouZXJyb3J8fCfYqti52LDYsSDYp9mE2KfYqti12KfZhCDYqNiv2YTZitmEINin2YTZhdmI2KfZgti5Jyk7cmV0dXJuIGp9CmFzeW5jIGZ1bmN0aW9uIGxvYWRMb2NhdGlvbnNEaXJlY3RvcnkoKXtsZXQgcmVtb3RlPVtdO3RyeXtjb25zdCByPWF3YWl0IGxvY2F0aW9uc0FwaSgnbGlzdCcpO3JlbW90ZT1BcnJheS5pc0FycmF5KHIubG9jYXRpb25zKT9yLmxvY2F0aW9uczpbXX1jYXRjaHt9dG1Mb2NhdGlvbnM9ZGVkdXBlTG9jYXRpb25zKFsuLi5MT0NBVElPTlNfREVGQVVMVCwuLi5yZWFkTG9jYWxMb2NhdGlvbnMoKSwuLi5yZW1vdGVdKTtyZW5kZXJMb2NhdGlvbkRpcmVjdG9yeSgpO3JldHVybiB0bUxvY2F0aW9uc30KZnVuY3Rpb24gbG9hZExlYWZsZXQoKXtpZih3aW5kb3cuTClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHdpbmRvdy5MKTtpZih0bUxlYWZsZXRQcm9taXNlKXJldHVybiB0bUxlYWZsZXRQcm9taXNlO3RtTGVhZmxldFByb21pc2U9bmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KT0+e2lmKCFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdsaW5rW2RhdGEtbGF3YWktbGVhZmxldF0nKSl7Y29uc3QgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7bC5yZWw9J3N0eWxlc2hlZXQnO2wuaHJlZj0naHR0cHM6Ly91bnBrZy5jb20vbGVhZmxldEAxLjkuNC9kaXN0L2xlYWZsZXQuY3NzJztsLmRhdGFzZXQubGF3YWlMZWFmbGV0PScxJztkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGwpfWNvbnN0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7cy5zcmM9J2h0dHBzOi8vdW5wa2cuY29tL2xlYWZsZXRAMS45LjQvZGlzdC9sZWFmbGV0LmpzJztzLmFzeW5jPXRydWU7cy5vbmxvYWQ9KCk9PnJlc29sdmUod2luZG93LkwpO3Mub25lcnJvcj0oKT0+cmVqZWN0KG5ldyBFcnJvcign2KrYudiw2LEg2KrYrdmF2YrZhCDZhdmD2KrYqNipINin2YTYrtix2YrYt9ipJykpO2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocyl9KTtyZXR1cm4gdG1MZWFmbGV0UHJvbWlzZX0KZnVuY3Rpb24gbWFwRm9ybSgpe3JldHVybiAkKCd0bU1vZGFsQm94Jyk/LnF1ZXJ5U2VsZWN0b3IoJyN0bVRhc2tGb3JtJyl9CmZ1bmN0aW9uIGxvY2F0aW9uTnVtYmVyKHYpe2NvbnN0IG49TnVtYmVyKHYpO3JldHVybiBOdW1iZXIuaXNGaW5pdGUobik/bjpudWxsfQpmdW5jdGlvbiBidWlsZE1hcHNVcmwobGF0LGxuZyl7cmV0dXJuYGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcz9xPSR7TnVtYmVyKGxhdCkudG9GaXhlZCg3KX0sJHtOdW1iZXIobG5nKS50b0ZpeGVkKDcpfWB9CmZ1bmN0aW9uIGxvY2F0aW9uUmFkaXVzKGZvcm09bWFwRm9ybSgpKXtyZXR1cm4gTWF0aC5tYXgoMjAsTnVtYmVyKGZvcm0/LmVsZW1lbnRzLnJhZGl1cz8udmFsdWV8fDIwMCkpfQpmdW5jdGlvbiB1cGRhdGVMb2NhdGlvbkZpZWxkcyhsYXQsbG5nLG9wdHM9e30pe2NvbnN0IGZvcm09bWFwRm9ybSgpO2lmKCFmb3JtKXJldHVybjtsYXQ9TnVtYmVyKGxhdCk7bG5nPU51bWJlcihsbmcpO2lmKCFOdW1iZXIuaXNGaW5pdGUobGF0KXx8IU51bWJlci5pc0Zpbml0ZShsbmcpKXJldHVybjtmb3JtLmVsZW1lbnRzLnRhcmdldExhdC52YWx1ZT1sYXQudG9GaXhlZCg3KTtmb3JtLmVsZW1lbnRzLnRhcmdldExuZy52YWx1ZT1sbmcudG9GaXhlZCg3KTtpZihvcHRzLm5hbWUpZm9ybS5lbGVtZW50cy5sb2NhdGlvbk5hbWUudmFsdWU9b3B0cy5uYW1lO2lmKG9wdHMudXJsfHwhZm9ybS5lbGVtZW50cy5sb2NhdGlvblVybC52YWx1ZSlmb3JtLmVsZW1lbnRzLmxvY2F0aW9uVXJsLnZhbHVlPW9wdHMudXJsfHxidWlsZE1hcHNVcmwobGF0LGxuZyk7Y29uc3QgY29vcmRzPWZvcm0ucXVlcnlTZWxlY3RvcignI3RtQ29vcmRzJyk7aWYoY29vcmRzKWNvb3Jkcy50ZXh0Q29udGVudD1gJHtsYXQudG9GaXhlZCg3KX0sICR7bG5nLnRvRml4ZWQoNyl9YDtpZihvcHRzLnJhZGl1cyYmZm9ybS5lbGVtZW50cy5yYWRpdXMpZm9ybS5lbGVtZW50cy5yYWRpdXMudmFsdWU9b3B0cy5yYWRpdXM7Y29uc3Qgc3RhdHVzPWZvcm0ucXVlcnlTZWxlY3RvcignI3RtTG9jYXRpb25TdGF0dXMnKTtpZihzdGF0dXMpc3RhdHVzLnRleHRDb250ZW50PW9wdHMubWVzc2FnZXx8J9iq2YUg2KfYudiq2YXYp9ivINin2YTYr9io2YjYsyc7aWYodG1NYXApe2NvbnN0IHA9W2xhdCxsbmddO2lmKCF0bU1hcmtlcil7dG1NYXJrZXI9d2luZG93LkwubWFya2VyKHAse2RyYWdnYWJsZTp0cnVlfSkuYWRkVG8odG1NYXApO3RtTWFya2VyLm9uKCdkcmFnZW5kJywoKT0+e2NvbnN0IHE9dG1NYXJrZXIuZ2V0TGF0TG5nKCk7dXBkYXRlTG9jYXRpb25GaWVsZHMocS5sYXQscS5sbmcse21lc3NhZ2U6J9iq2YUg2KrYrdiv2YrYqyDYp9mE2K/YqNmI2LMg2KjYp9mE2LPYrdioJ30pfSl9ZWxzZSB0bU1hcmtlci5zZXRMYXRMbmcocCk7aWYoIXRtUmFkaXVzQ2lyY2xlKXRtUmFkaXVzQ2lyY2xlPXdpbmRvdy5MLmNpcmNsZShwLHtyYWRpdXM6bG9jYXRpb25SYWRpdXMoZm9ybSksY29sb3I6JyMwYjYzZjYnLGZpbGxDb2xvcjonIzBiNjNmNicsZmlsbE9wYWNpdHk6LjExLHdlaWdodDoyfSkuYWRkVG8odG1NYXApO2Vsc2UgdG1SYWRpdXNDaXJjbGUuc2V0TGF0TG5nKHApLnNldFJhZGl1cyhsb2NhdGlvblJhZGl1cyhmb3JtKSk7aWYob3B0cy5jZW50ZXIhPT1mYWxzZSl0bU1hcC5zZXRWaWV3KHAsTWF0aC5tYXgodG1NYXAuZ2V0Wm9vbSgpLDE1KSl9fQpmdW5jdGlvbiBjbGVhck1hcEluc3RhbmNlKCl7aWYodG1NYXApe3RtTWFwLnJlbW92ZSgpO3RtTWFwPW51bGx9dG1NYXJrZXI9bnVsbDt0bVJhZGl1c0NpcmNsZT1udWxsfQphc3luYyBmdW5jdGlvbiBpbml0VGFza01hcChtPXt9KXtjb25zdCBub2RlPSQoJ3RtTG9jYXRpb25NYXAnKTtpZighbm9kZSlyZXR1cm47dHJ5e2NvbnN0IEw9YXdhaXQgbG9hZExlYWZsZXQoKTtjbGVhck1hcEluc3RhbmNlKCk7Y29uc3QgbGF0PWxvY2F0aW9uTnVtYmVyKG0udGFyZ2V0TGF0KSxsbmc9bG9jYXRpb25OdW1iZXIobS50YXJnZXRMbmcpLGhhcz1sYXQhPT1udWxsJiZsbmchPT1udWxsO3RtTWFwPUwubWFwKG5vZGUse3pvb21Db250cm9sOnRydWUsYXR0cmlidXRpb25Db250cm9sOnRydWV9KS5zZXRWaWV3KGhhcz9bbGF0LGxuZ106TE9DQVRJT05TX0NFTlRFUixoYXM/MTY6MTEpO0wudGlsZUxheWVyKCdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycse21heFpvb206MTksYXR0cmlidXRpb246J8KpIE9wZW5TdHJlZXRNYXAnfSkuYWRkVG8odG1NYXApO3RtTWFwLm9uKCdjbGljaycsZT0+dXBkYXRlTG9jYXRpb25GaWVsZHMoZS5sYXRsbmcubGF0LGUubGF0bG5nLmxuZyx7bWVzc2FnZTon2KrZhSDYqtit2K/ZitivINin2YTZhdmI2YLYuSDZhdmGINin2YTYrtix2YrYt9ipJyxjZW50ZXI6ZmFsc2V9KSk7aWYoaGFzKXVwZGF0ZUxvY2F0aW9uRmllbGRzKGxhdCxsbmcse2NlbnRlcjpmYWxzZSxtZXNzYWdlOifYp9mE2YXZiNmC2Lkg2KfZhNmF2K3ZgdmI2LgnfSk7c2V0VGltZW91dCgoKT0+dG1NYXA/LmludmFsaWRhdGVTaXplKCksMTgwKTthd2FpdCBsb2FkTG9jYXRpb25zRGlyZWN0b3J5KCl9Y2F0Y2goZXJyKXtjb25zdCBzdGF0dXM9JCgndG1Mb2NhdGlvblN0YXR1cycpO2lmKHN0YXR1cylzdGF0dXMudGV4dENvbnRlbnQ9J9iq2LnYsNixINiq2K3ZhdmK2YQg2KfZhNiu2LHZiti32Kkg4oCUINin2LPYqtiu2K/ZhSDYp9mE2LHYp9io2Lcg2KPZiCDYp9mE2KXYrdiv2KfYq9mK2KfYqic7YXBwLnNob3dUb2FzdCgn2KfZhNiu2LHZiti32KknLGVyci5tZXNzYWdlfHwn2KrYudiw2LEg2KrYrdmF2YrZhCDYp9mE2K7YsdmK2LfYqScsJ2Vycm9yJyw1NTAwKX19CmZ1bmN0aW9uIHJlbmRlckxvY2F0aW9uRGlyZWN0b3J5KCl7Y29uc3QgY2F0PSQoJ3RtTG9jYXRpb25DYXRlZ29yeScpLHNlbD0kKCd0bVJlYWR5TG9jYXRpb24nKTtpZighY2F0fHwhc2VsKXJldHVybjtjb25zdCBjdXJyZW50PWNhdC52YWx1ZSxjYXRlZ29yaWVzPVsn2KfZhNmD2YQnLC4uLm5ldyBTZXQodG1Mb2NhdGlvbnMubWFwKHg9PnguY2F0ZWdvcnkpLmZpbHRlcihCb29sZWFuKSldO2NhdC5pbm5lckhUTUw9Y2F0ZWdvcmllcy5tYXAoeD0+YDxvcHRpb24gdmFsdWU9IiR7ZXNjKHgpfSI+JHtlc2MoeCl9PC9vcHRpb24+YCkuam9pbignJyk7aWYoY2F0ZWdvcmllcy5pbmNsdWRlcyhjdXJyZW50KSljYXQudmFsdWU9Y3VycmVudDtjb25zdCByb3dzPXRtTG9jYXRpb25zLmZpbHRlcih4PT4hY2F0LnZhbHVlfHxjYXQudmFsdWU9PT0n2KfZhNmD2YQnfHx4LmNhdGVnb3J5PT09Y2F0LnZhbHVlKTtzZWwuaW5uZXJIVE1MPSc8b3B0aW9uIHZhbHVlPSIiPtin2K7YqtixINmF2YjZgti52KfZiyDYrNin2YfYstin2Ys8L29wdGlvbj4nK3Jvd3MubWFwKHg9PmA8b3B0aW9uIHZhbHVlPSIke2VzYyh4LmlkfHx4Lm5hbWUpfSI+JHtlc2MoeC5uYW1lKX0ke3guZ292ZXJub3JhdGU/YCDigJQgJHtlc2MoeC5nb3Zlcm5vcmF0ZSl9YDonJ308L29wdGlvbj5gKS5qb2luKCcnKX0KZnVuY3Rpb24gc2VsZWN0ZWRSZWFkeUxvY2F0aW9uKCl7Y29uc3QgaWQ9JCgndG1SZWFkeUxvY2F0aW9uJyk/LnZhbHVlO3JldHVybiB0bUxvY2F0aW9ucy5maW5kKHg9Pih4LmlkfHx4Lm5hbWUpPT09aWQpfQphc3luYyBmdW5jdGlvbiBnZW9jb2RlUXVlcnkocXVlcnkpe3F1ZXJ5PVN0cmluZyhxdWVyeXx8JycpLnRyaW0oKTtpZighcXVlcnkpdGhyb3cgbmV3IEVycm9yKCfYp9mD2KrYqCDYp9iz2YUg2KfZhNis2YfYqSDYo9mIINin2YTYudmG2YjYp9mGJyk7Y29uc3QgdT1uZXcgVVJMKCdodHRwczovL25vbWluYXRpbS5vcGVuc3RyZWV0bWFwLm9yZy9zZWFyY2gnKTt1LnNlYXJjaFBhcmFtcy5zZXQoJ2Zvcm1hdCcsJ2pzb252MicpO3Uuc2VhcmNoUGFyYW1zLnNldCgnbGltaXQnLCc2Jyk7dS5zZWFyY2hQYXJhbXMuc2V0KCdjb3VudHJ5Y29kZXMnLCdrdycpO3Uuc2VhcmNoUGFyYW1zLnNldCgnYWNjZXB0LWxhbmd1YWdlJywnYXInKTt1LnNlYXJjaFBhcmFtcy5zZXQoJ3EnLHF1ZXJ5LmluY2x1ZGVzKCfYp9mE2YPZiNmK2KonKT9xdWVyeTpgJHtxdWVyeX3YjCDYp9mE2YPZiNmK2KpgKTtjb25zdCByPWF3YWl0IGZldGNoKHUse2hlYWRlcnM6eydBY2NlcHQnOidhcHBsaWNhdGlvbi9qc29uJ319KTtpZighci5vayl0aHJvdyBuZXcgRXJyb3IoJ9iq2LnYsNixINin2YTYqNit2Ksg2YHZiiDYp9mE2K7YsdmK2LfYqScpO2NvbnN0IGo9YXdhaXQgci5qc29uKCk7cmV0dXJuIEFycmF5LmlzQXJyYXkoaik/ajpbXX0KZnVuY3Rpb24gcmVuZGVyR2VvY29kZVJlc3VsdHMocm93cyl7Y29uc3QgYm94PSQoJ3RtTG9jYXRpb25SZXN1bHRzJyk7aWYoIWJveClyZXR1cm47Ym94LmlubmVySFRNTD1yb3dzLmxlbmd0aD9yb3dzLm1hcCgocixpKT0+YDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0idG0tbG9jYXRpb24tcmVzdWx0IiBkYXRhLXRtLWFjdGlvbj0ibG9jYXRpb24tcmVzdWx0IiBkYXRhLWluZGV4PSIke2l9Ij48Yj4ke2VzYyhyLm5hbWV8fHIuZGlzcGxheV9uYW1lPy5zcGxpdCgnLCcpWzBdfHwn2YbYqtmK2KzYqScpfTwvYj48c21hbGw+JHtlc2Moci5kaXNwbGF5X25hbWV8fCcnKX08L3NtYWxsPjwvYnV0dG9uPmApLmpvaW4oJycpOic8ZGl2IGNsYXNzPSJ0bS1sb2NhdGlvbi1oaW50Ij7ZhNmFINmK2KrZhSDYp9mE2LnYq9mI2LEg2LnZhNmJINmG2KrZitis2KkuINit2K/ZkdivINin2YTYr9io2YjYsyDZitiv2YjZitin2Ysg2LnZhNmJINin2YTYrtix2YrYt9ipLjwvZGl2Pic7Ym94LmNsYXNzTGlzdC5hZGQoJ3Nob3cnKTtib3guX3Jvd3M9cm93c30KYXN5bmMgZnVuY3Rpb24gc2VhcmNoTWFwTG9jYXRpb24oKXtjb25zdCBxPSQoJ3RtTG9jYXRpb25TZWFyY2gnKT8udmFsdWU7Y29uc3QgYnRuPSQoJ3RtTG9jYXRpb25TZWFyY2hCdG4nKTtpZihidG4pYnRuLmRpc2FibGVkPXRydWU7dHJ5e2NvbnN0IHJvd3M9YXdhaXQgZ2VvY29kZVF1ZXJ5KHEpO3JlbmRlckdlb2NvZGVSZXN1bHRzKHJvd3MpfWNhdGNoKGVycil7YXBwLnNob3dUb2FzdCgn2KfZhNio2K3YqyDYudmGINmF2YjZgti5JyxlcnIubWVzc2FnZSwnZXJyb3InLDU1MDApfWZpbmFsbHl7aWYoYnRuKWJ0bi5kaXNhYmxlZD1mYWxzZX19CmFzeW5jIGZ1bmN0aW9uIHVzZVJlYWR5TG9jYXRpb24oKXtjb25zdCB4PXNlbGVjdGVkUmVhZHlMb2NhdGlvbigpO2lmKCF4KXJldHVybiBhcHAuc2hvd1RvYXN0KCfYp9iu2KrYsSDZhdmI2YLYudin2YsnLCfYp9iu2KrYsSDYp9mE2KzZh9ipINmF2YYg2KfZhNmC2KfYptmF2Kkg2KPZiNmE2KfZiycsJ2Vycm9yJyk7Y29uc3QgbGF0PWxvY2F0aW9uTnVtYmVyKHgubGF0KSxsbmc9bG9jYXRpb25OdW1iZXIoeC5sbmcpO2lmKGxhdCE9PW51bGwmJmxuZyE9PW51bGwpe3VwZGF0ZUxvY2F0aW9uRmllbGRzKGxhdCxsbmcse25hbWU6eC5uYW1lLHVybDp4Lm1hcHNfdXJsLHJhZGl1czp4LnJhZGl1c19tLG1lc3NhZ2U6J9iq2YUg2KfYrtiq2YrYp9ixINin2YTZhdmI2YLYuSDYp9mE2KzYp9mH2LInfSk7cmV0dXJufWNvbnN0IGJ0bj0kKCd0bVVzZVJlYWR5TG9jYXRpb24nKTtpZihidG4pYnRuLmRpc2FibGVkPXRydWU7dHJ5e2NvbnN0IHJvd3M9YXdhaXQgZ2VvY29kZVF1ZXJ5KHguYWRkcmVzc3x8eC5uYW1lKTtpZighcm93cy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCfZhNmFINmK2KrZhSDYp9mE2LnYq9mI2LEg2LnZhNmJINiv2KjZiNizINiq2YTZgtin2KbZii4g2K3Yr9iv2Ycg2YrYr9mI2YrYp9mLLicpO2NvbnN0IHI9cm93c1swXTt1cGRhdGVMb2NhdGlvbkZpZWxkcyhOdW1iZXIoci5sYXQpLE51bWJlcihyLmxvbikse25hbWU6eC5uYW1lLHJhZGl1czp4LnJhZGl1c19tLG1lc3NhZ2U6eC52ZXJpZmllZD8n2KrZhSDYqtit2K/ZitivINin2YTZhdmI2YLYuSDYp9mE2KzYp9mH2LInOifYsdin2KzYuSDYp9mE2K/YqNmI2LMg2YLYqNmEINin2YTYrdmB2LgnfSk7JCgndG1Mb2NhdGlvblNlYXJjaCcpLnZhbHVlPXguYWRkcmVzc3x8eC5uYW1lO2lmKCF4LnZlcmlmaWVkKWFwcC5zaG93VG9hc3QoJ9ix2KfYrNi5INin2YTYr9io2YjYsycsJ9mH2LDYpyDYp9mE2YXZiNmC2Lkg2KrZhSDYqtit2K/Zitiv2Ycg2KjYp9mE2KjYrdir2Jsg2K3YsdmR2YMg2KfZhNiv2KjZiNizINil2YTZiSDYp9mE2YXYr9iu2YQg2KfZhNi12K3ZititINmC2KjZhCDYrdmB2Lgg2KfZhNmF2YfZhdipLicsJ2luZm8nLDY1MDApfWNhdGNoKGVycil7YXBwLnNob3dUb2FzdCgn2KfZhNmF2YjZgti5INin2YTYrNin2YfYsicsZXJyLm1lc3NhZ2UsJ2Vycm9yJyw2MDAwKX1maW5hbGx5e2lmKGJ0bilidG4uZGlzYWJsZWQ9ZmFsc2V9fQphc3luYyBmdW5jdGlvbiBzYXZlQ3VycmVudFJlYWR5TG9jYXRpb24oKXtjb25zdCBmb3JtPW1hcEZvcm0oKSxsYXQ9bG9jYXRpb25OdW1iZXIoZm9ybT8uZWxlbWVudHMudGFyZ2V0TGF0Py52YWx1ZSksbG5nPWxvY2F0aW9uTnVtYmVyKGZvcm0/LmVsZW1lbnRzLnRhcmdldExuZz8udmFsdWUpLG5hbWU9U3RyaW5nKGZvcm0/LmVsZW1lbnRzLmxvY2F0aW9uTmFtZT8udmFsdWV8fCcnKS50cmltKCk7aWYoIW5hbWV8fGxhdD09PW51bGx8fGxuZz09PW51bGwpcmV0dXJuIGFwcC5zaG93VG9hc3QoJ9io2YrYp9mG2KfYqiDZhtin2YLYtdipJywn2KfZg9iq2Kgg2KfYs9mFINin2YTZhdmI2YLYuSDZiNit2K/YryDYp9mE2K/YqNmI2LMg2KPZiNmE2KfZiycsJ2Vycm9yJyk7Y29uc3QgY2F0ZWdvcnk9JCgndG1Mb2NhdGlvbkNhdGVnb3J5Jyk/LnZhbHVlJiYkKCd0bUxvY2F0aW9uQ2F0ZWdvcnknKS52YWx1ZSE9PSfYp9mE2YPZhCc/JCgndG1Mb2NhdGlvbkNhdGVnb3J5JykudmFsdWU6J9mF2YjYp9mC2Lkg2KfZhNmF2YPYqtioJztjb25zdCByb3c9bm9ybWFsaXplTG9jYXRpb25Sb3coe2lkOmBMT0MtJHtEYXRlLm5vdygpLnRvU3RyaW5nKDM2KS50b1VwcGVyQ2FzZSgpfWAsbmFtZSxjYXRlZ29yeSxhZGRyZXNzOiQoJ3RtTG9jYXRpb25TZWFyY2gnKT8udmFsdWV8fCcnLGxhdCxsbmcscmFkaXVzX206bG9jYXRpb25SYWRpdXMoZm9ybSksbWFwc191cmw6YnVpbGRNYXBzVXJsKGxhdCxsbmcpLGFjdGl2ZTp0cnVlLHNvdXJjZTon2YXZg9iq2KgnLHZlcmlmaWVkOnRydWV9KTt0cnl7Y29uc3Qgcj1hd2FpdCBsb2NhdGlvbnNBcGkoJ3NhdmUnLHJvdyk7aWYoci5sb2NhdGlvbilyb3cuaWQ9ci5sb2NhdGlvbi5pZHx8cm93LmlkO2FwcC5zaG93VG9hc3QoJ9iq2YUg2K3Zgdi4INin2YTZhdmI2YLYuScsJ9ij2LbZitmBINin2YTZhdmI2YLYuSDYpdmE2Ykg2K/ZhNmK2YQg2KfZhNmF2YPYqtioLicsJ3N1Y2Nlc3MnKX1jYXRjaHtjb25zdCBsb2NhbD1yZWFkTG9jYWxMb2NhdGlvbnMoKTtsb2NhbC5wdXNoKHJvdyk7d3JpdGVMb2NhbExvY2F0aW9ucyhsb2NhbCk7YXBwLnNob3dUb2FzdCgn2KrZhSDYrdmB2Lgg2KfZhNmF2YjZgti5INmF2K3ZhNmK2KfZiycsJ9in2YTZgdmE2Ygg2LrZitixINmF2KrYp9itINit2KfZhNmK2KfZi9iMINmI2K3Zj9mB2Lgg2KfZhNmF2YjZgti5INi52YTZiSDZh9iw2Kcg2KfZhNis2YfYp9iyLicsJ2luZm8nLDY1MDApfXRtTG9jYXRpb25zPWRlZHVwZUxvY2F0aW9ucyhbLi4udG1Mb2NhdGlvbnMscm93XSk7cmVuZGVyTG9jYXRpb25EaXJlY3RvcnkoKTskKCd0bVJlYWR5TG9jYXRpb24nKS52YWx1ZT1yb3cuaWR9Cgpjb25zdCBQVUJMSUNfVEFTS19QQUdFPWAke2xvY2F0aW9uLm9yaWdpbn0vcGFnZXMvbGF3eWVyYWk/dmlldz1sYXdhaS10YXNrLXB1YmxpYyZ0PWA7CmZ1bmN0aW9uIHJhbmRvbVNoYXJlVG9rZW4oKXtjb25zdCBhPW5ldyBVaW50OEFycmF5KDI0KTtjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGEpO3JldHVyblsuLi5hXS5tYXAoeD0+eC50b1N0cmluZygxNikucGFkU3RhcnQoMiwnMCcpKS5qb2luKCcnKX0KYXN5bmMgZnVuY3Rpb24gZW5zdXJlU2hhcmVMaW5rKHQpe2NvbnN0IG09ey4uLm1ldGEodCl9O2lmKCFtLnNoYXJlVG9rZW4pbS5zaGFyZVRva2VuPXJhbmRvbVNoYXJlVG9rZW4oKTttLnNoYXJlQWN0aXZlPXRydWU7bS5zaGFyZUNyZWF0ZWRBdD1tLnNoYXJlQ3JlYXRlZEF0fHxub3dJc28oKTt0Lm5vdGU9YXBwLnBhY2tUYXNrTm90ZShub3RlKHQpLG0pO3QudXBkYXRlZEF0PW5vd0lzbygpO2F3YWl0IHNhdmVSZWNvcmQoJ3Rhc2tzJyx0KTtyZXR1cm4gUFVCTElDX1RBU0tfUEFHRStlbmNvZGVVUklDb21wb25lbnQobS5zaGFyZVRva2VuKX0KY29uc3QgVEFTS19SWD0vXFtcW1RBU0s6KFteXF1dKylcXVxdLzsKZnVuY3Rpb24gdGFza0RvY3MoaWQpe3JldHVybihzdGF0ZSgpLmRvY3N8fFtdKS5maWx0ZXIoZD0+IWQuZGVsZXRlZCYmU3RyaW5nKGQudGFza0lkfHwoU3RyaW5nKGQubm90ZXx8JycpLm1hdGNoKFRBU0tfUlgpfHxbXSlbMV18fCcnKT09PVN0cmluZyhpZCkpLnNvcnQoKGEsYik9PlN0cmluZyhiLmRhdGV8fCcnKS5sb2NhbGVDb21wYXJlKFN0cmluZyhhLmRhdGV8fCcnKSkpfQpmdW5jdGlvbiBjbGVhbkRvY05vdGUoZCl7cmV0dXJuIFN0cmluZyhkPy5ub3RlfHwnJykucmVwbGFjZShUQVNLX1JYLCcnKS50cmltKCl9CmZ1bmN0aW9uIHRhc2tEYXRhKHQpe2NvbnN0IHg9YXBwLnVucGFja1Rhc2tOb3RlP2FwcC51bnBhY2tUYXNrTm90ZSh0Lm5vdGUpOm51bGw7cmV0dXJuIHh8fHtub3RlOmFwcC5nZXRUYXNrUGxhaW5Ob3RlKHQpLG1ldGE6YXBwLmdldFRhc2tNZXRhKHQpfX0KZnVuY3Rpb24gbWV0YSh0KXtyZXR1cm4gYXBwLmdldFRhc2tNZXRhKHQpfHx7fX0KZnVuY3Rpb24gbm90ZSh0KXtyZXR1cm4gYXBwLmdldFRhc2tQbGFpbk5vdGUodCl8fCcnfQpmdW5jdGlvbiB1c2VyTmFtZShpZCl7cmV0dXJuKHN0YXRlKCkudXNlcnN8fFtdKS5maW5kKHg9PlN0cmluZyh4LmlkKT09PVN0cmluZyhpZCkpPy5uYW1lfHwnJ30KZnVuY3Rpb24gY2FzZVJvdyhpZCl7cmV0dXJuKHN0YXRlKCkuY2FzZXN8fFtdKS5maW5kKHg9PlN0cmluZyh4LmlkKT09PVN0cmluZyhpZCkpfQpmdW5jdGlvbiBjbGllbnRSb3coaWQpe3JldHVybihzdGF0ZSgpLmNsaWVudHN8fFtdKS5maW5kKHg9PlN0cmluZyh4LmlkKT09PVN0cmluZyhpZCkpfQpmdW5jdGlvbiBjYXNlTGFiZWwoYyl7cmV0dXJuIGM/YCR7Yy5hdXRvTm98fCctJ30g4oCUICR7Y2xpZW50Um93KGMuY2xpZW50SWQpPy5uYW1lfHwn2LrZitixINmF2K3Yr9ivJ30g4oCUICR7Yy5vcHBvbmVudHx8J9io2K/ZiNmGINiu2LXZhSd9YDon2KjYr9mI2YYg2YLYttmK2KknfQpmdW5jdGlvbiBwaWxsKHRleHQsdG9uZT0nJyl7cmV0dXJuYDxzcGFuIGNsYXNzPSJ0bS1waWxsICR7dG9uZX0iPiR7ZXNjKHRleHQpfTwvc3Bhbj5gfQpmdW5jdGlvbiBmbXREYXRlVGltZSh2KXtpZighdilyZXR1cm4nLSc7Y29uc3QgZD1uZXcgRGF0ZSh2KTtyZXR1cm4gTnVtYmVyLmlzTmFOKGQuZ2V0VGltZSgpKT9lc2Modik6bmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoJ2FyLUtXJyx7ZGF0ZVN0eWxlOidtZWRpdW0nLHRpbWVTdHlsZTonc2hvcnQnfSkuZm9ybWF0KGQpfQpmdW5jdGlvbiBtYXBzVXJsKGxhdCxsbmcpe3JldHVybiBOdW1iZXIuaXNGaW5pdGUoTnVtYmVyKGxhdCkpJiZOdW1iZXIuaXNGaW5pdGUoTnVtYmVyKGxuZykpP2BodHRwczovL3d3dy5nb29nbGUuY29tL21hcHM/cT0ke051bWJlcihsYXQpfSwke051bWJlcihsbmcpfWA6Jyd9CmZ1bmN0aW9uIGRpc3RhbmNlTShhTGF0LGFMbmcsYkxhdCxiTG5nKXtjb25zdCBSPTYzNzEwMDAscD14PT54Kk1hdGguUEkvMTgwLGRMYXQ9cChiTGF0LWFMYXQpLGRMbmc9cChiTG5nLWFMbmcpLGE9TWF0aC5zaW4oZExhdC8yKSoqMitNYXRoLmNvcyhwKGFMYXQpKSpNYXRoLmNvcyhwKGJMYXQpKSpNYXRoLnNpbihkTG5nLzIpKioyO3JldHVybiBNYXRoLnJvdW5kKDIqUipNYXRoLmF0YW4yKE1hdGguc3FydChhKSxNYXRoLnNxcnQoMS1hKSkpfQpmdW5jdGlvbiB0YXNrU3RhdHVzKHQpe3JldHVybiBhcHAuZ2V0VGFza1RpbWluZyh0KX0KZnVuY3Rpb24gc3RhdHVzVG9uZSh0KXtjb25zdCBrPXRhc2tTdGF0dXModCkua2V5O3JldHVybiBrPT09J2xhdGUnPydyZWQnOms9PT0nZG9uZSc/J2dyZWVuJzprPT09J2dyYWNlJz8nb3JhbmdlJzprPT09J2F0dGVuZGVkJz8nYmx1ZSc6J2dyYXknfQpmdW5jdGlvbiBtYXRjaGVzKHQpe2NvbnN0IGM9Y2FzZVJvdyh0LmNhc2VJZCksbT1tZXRhKHQpLGhheT1bdC50aXRsZSxub3RlKHQpLHVzZXJOYW1lKHQuYXNzaWduZWRUbyksdC50byx0LnByaW9yaXR5LGM/LmF1dG9ObyxjPy5jYXNlTm8sYz8ub3Bwb25lbnQsYz8uY291cnQsbS5sb2NhdGlvbk5hbWUsbS5sb2NhdGlvblVybF0uam9pbignICcpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIXNlYXJjaHx8aGF5LmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKX0KZnVuY3Rpb24gdmlzaWJsZSh0KXtjb25zdCBzPXRhc2tTdGF0dXModCk7aWYoZmlsdGVyPT09J2FsbCcpcmV0dXJuIHRydWU7aWYoZmlsdGVyPT09J2xhdGUnKXJldHVybiBzLmtleT09PSdsYXRlJztpZihmaWx0ZXI9PT0ndG9kYXknKXJldHVybiB0LmRhdGU9PT1hcHAudG9kYXkoKTtpZihmaWx0ZXI9PT0nYXR0ZW5kZWQnKXJldHVybiBzLmtleT09PSdhdHRlbmRlZCc7aWYoZmlsdGVyPT09J2RvbmUnKXJldHVybiBzLmtleT09PSdkb25lJztyZXR1cm4hdC5kb25lfQpmdW5jdGlvbiBsaXN0VGFza3MoKXtyZXR1cm4oc3RhdGUoKS50YXNrc3x8W10pLmZpbHRlcih0PT4hdC5kZWxldGVkJiZtYXRjaGVzKHQpJiZ2aXNpYmxlKHQpKS5zb3J0KChhLGIpPT57Y29uc3QgQT10YXNrU3RhdHVzKGEpLEI9dGFza1N0YXR1cyhiKTtyZXR1cm4oQS5rZXk9PT0nbGF0ZSc/LTE6MSktKEIua2V5PT09J2xhdGUnPy0xOjEpfHxBLmR1ZUF0LUIuZHVlQXR9KX0KZnVuY3Rpb24gcmVuZGVyU3VtbWFyeSgpe2NvbnN0IGFsbD0oc3RhdGUoKS50YXNrc3x8W10pLmZpbHRlcih0PT4hdC5kZWxldGVkKSxvcGVuPWFsbC5maWx0ZXIodD0+IXQuZG9uZSksbGF0ZT1vcGVuLmZpbHRlcih0PT50YXNrU3RhdHVzKHQpLmtleT09PSdsYXRlJyksdG9kYXk9b3Blbi5maWx0ZXIodD0+dC5kYXRlPT09YXBwLnRvZGF5KCkpLGF0dGVuZGVkPW9wZW4uZmlsdGVyKHQ9PnRhc2tTdGF0dXModCkua2V5PT09J2F0dGVuZGVkJyk7JCgndG1TdW1tYXJ5JykuaW5uZXJIVE1MPVtbb3Blbi5sZW5ndGgsJ9mF2YHYqtmI2K3YqSddLFt0b2RheS5sZW5ndGgsJ9in2YTZitmI2YUnXSxbbGF0ZS5sZW5ndGgsJ9mF2KrYo9iu2LHYqSddLFthdHRlbmRlZC5sZW5ndGgsJ9iq2YUg2KfZhNit2LbZiNixJ11dLm1hcCgoW24sbF0pPT5gPGRpdiBjbGFzcz0idG0tc3RhdCI+PHNtYWxsPiR7bH08L3NtYWxsPjxzdHJvbmc+JHtufTwvc3Ryb25nPjwvZGl2PmApLmpvaW4oJycpfQpmdW5jdGlvbiByZW5kZXJGaWx0ZXJzKCl7Y29uc3QgYWxsPShzdGF0ZSgpLnRhc2tzfHxbXSkuZmlsdGVyKHQ9PiF0LmRlbGV0ZWQpLGl0ZW1zPVtbJ29wZW4nLCfYp9mE2YXZgdiq2YjYrdipJyxhbGwuZmlsdGVyKHQ9PiF0LmRvbmUpLmxlbmd0aF0sWyd0b2RheScsJ9in2YTZitmI2YUnLGFsbC5maWx0ZXIodD0+IXQuZG9uZSYmdC5kYXRlPT09YXBwLnRvZGF5KCkpLmxlbmd0aF0sWydsYXRlJywn2KfZhNmF2KrYo9iu2LHYqScsYWxsLmZpbHRlcih0PT4hdC5kb25lJiZ0YXNrU3RhdHVzKHQpLmtleT09PSdsYXRlJykubGVuZ3RoXSxbJ2F0dGVuZGVkJywn2KrZhSDYp9mE2K3YttmI2LEnLGFsbC5maWx0ZXIodD0+IXQuZG9uZSYmdGFza1N0YXR1cyh0KS5rZXk9PT0nYXR0ZW5kZWQnKS5sZW5ndGhdLFsnZG9uZScsJ9in2YTZhdmG2KzYstipJyxhbGwuZmlsdGVyKHQ9PnQuZG9uZSkubGVuZ3RoXSxbJ2FsbCcsJ9in2YTZg9mEJyxhbGwubGVuZ3RoXV07JCgndG1GaWx0ZXJzJykuaW5uZXJIVE1MPWl0ZW1zLm1hcCgoW2ssbCxuXSk9PmA8YnV0dG9uIGNsYXNzPSJ0bS1maWx0ZXIgJHtmaWx0ZXI9PT1rPydhY3RpdmUnOicnfSIgZGF0YS10bS1hY3Rpb249ImZpbHRlciIgZGF0YS1maWx0ZXI9IiR7a30iPiR7bH0gKCR7bn0pPC9idXR0b24+YCkuam9pbignJyl9CmZ1bmN0aW9uIHJlbmRlckxpc3QoKXtjb25zdCByb3dzPWxpc3RUYXNrcygpOyQoJ3RtTGlzdCcpLmlubmVySFRNTD1yb3dzLmxlbmd0aD9yb3dzLm1hcCh0PT57Y29uc3QgYz1jYXNlUm93KHQuY2FzZUlkKSxtPW1ldGEodCkscz10YXNrU3RhdHVzKHQpLGRvY3M9dGFza0RvY3ModC5pZCk7cmV0dXJuYDxhcnRpY2xlIGNsYXNzPSJ0bS1jYXJkICR7cy5rZXl9Ij48ZGl2IGNsYXNzPSJ0bS1tYWluIj48Yj4ke2VzYyh0LnRpdGxlfHwn2YXZh9mF2Kkg2KjYr9mI2YYg2LnZhtmI2KfZhicpfTwvYj48c21hbGw+JHtlc2ModXNlck5hbWUodC5hc3NpZ25lZFRvKXx8dC50b3x8J9i62YrYsSDZhdit2K/YrycpfSDCtyAke2FwcC5kYXRlVGV4dCh0LmRhdGUpfSR7bS5zdGFydFRpbWU/YCDCtyAke2VzYyhtLnN0YXJ0VGltZSl9YDonJ30ke20uZHVlVGltZT9gINil2YTZiSAke2VzYyhtLmR1ZVRpbWUpfWA6Jyd9JHttLmxvY2F0aW9uTmFtZT9gIMK3ICR7ZXNjKG0ubG9jYXRpb25OYW1lKX1gOicnfTwvc21hbGw+PGRpdiBjbGFzcz0idG0tbWV0YSI+JHtwaWxsKHMubGFiZWwsc3RhdHVzVG9uZSh0KSl9JHtwaWxsKHQucHJpb3JpdHl8fCfYudin2K/ZitipJyl9JHtjP3BpbGwoYy5hdXRvTm98fGMuY2FzZU5vfHwn2YLYttmK2KknLCdibHVlJyk6Jyd9JHtkb2NzLmxlbmd0aD9waWxsKGAke2RvY3MubGVuZ3RofSDZhdix2YHZgmApOicnfTwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InRtLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImJ0biBidG4tc29mdCBidG4tc20iIGRhdGEtdG0tYWN0aW9uPSJvcGVuIiBkYXRhLWlkPSIke3QuaWR9Ij48aWNvbmlmeS1pY29uIGljb249InNvbGFyOmZvbGRlci1vcGVuLW91dGxpbmUiPjwvaWNvbmlmeS1pY29uPtmB2KrYrTwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0biBidG4tZ3JlZW4gYnRuLXNtIGJ0bi1pY29uIiBkYXRhLXRtLWFjdGlvbj0ic2hhcmUiIGRhdGEtaWQ9IiR7dC5pZH0iIGFyaWEtbGFiZWw9ItmF2LTYp9ix2YPYqSI+PGljb25pZnktaWNvbiBpY29uPSJzb2xhcjpzaGFyZS1vdXRsaW5lIj48L2ljb25pZnktaWNvbj48L2J1dHRvbj4keyF0LmRvbmUmJiFtLmF0dGVuZGVkQXQ/YDxidXR0b24gY2xhc3M9ImJ0biBidG4td2hpdGUgYnRuLXNtIiBkYXRhLXRtLWFjdGlvbj0iY2hlY2tpbiIgZGF0YS1pZD0iJHt0LmlkfSI+2KrYo9mD2YrYryDYp9mE2K3YttmI2LE8L2J1dHRvbj5gOicnfSR7IXQuZG9uZT9gPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1ncmVlbiBidG4tc20iIGRhdGEtdG0tYWN0aW9uPSJjb21wbGV0ZSIgZGF0YS1pZD0iJHt0LmlkfSI+2KrZhSDYp9mE2KXZhtis2KfYsjwvYnV0dG9uPmA6YDxidXR0b24gY2xhc3M9ImJ0biBidG4td2hpdGUgYnRuLXNtIiBkYXRhLXRtLWFjdGlvbj0icmVvcGVuIiBkYXRhLWlkPSIke3QuaWR9Ij7Ypdi52KfYr9ipINmB2KrYrTwvYnV0dG9uPmB9PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi13aGl0ZSBidG4tc20gYnRuLWljb24iIGRhdGEtdG0tYWN0aW9uPSJlZGl0IiBkYXRhLWlkPSIke3QuaWR9IiBhcmlhLWxhYmVsPSLYqti52K/ZitmEIj48aWNvbmlmeS1pY29uIGljb249ImxpbmUtbWQ6ZWRpdCI+PC9pY29uaWZ5LWljb24+PC9idXR0b24+PC9kaXY+PC9hcnRpY2xlPmB9KS5qb2luKCcnKTonPGRpdiBjbGFzcz0iZW1wdHkgZW1wdHktYWN0aW9uIj48aWNvbmlmeS1pY29uIGljb249ImxpbmUtbWQ6Y2xpcGJvYXJkLWNoZWNrIj48L2ljb25pZnktaWNvbj48Yj7ZhNinINiq2YjYrNivINmF2YfYp9mFINmF2LfYp9io2YLYqTwvYj48c3Bhbj7YutmK2ZHYsSDYp9mE2YHZhNiq2LEg2KPZiCDYo9i22YEg2YXZh9mF2Kkg2KzYr9mK2K/YqS48L3NwYW4+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IiBkYXRhLXRtLWFjdGlvbj0ibmV3Ij7Ypdi22KfZgdipINmF2YfZhdipPC9idXR0b24+PC9kaXY+J30KZnVuY3Rpb24gcmVuZGVyKCl7cmVuZGVyU3VtbWFyeSgpO3JlbmRlckZpbHRlcnMoKTtyZW5kZXJMaXN0KCl9CmZ1bmN0aW9uIGNsb3NlTW9kYWwoKXtjbGVhck1hcEluc3RhbmNlKCk7JCgndG1Nb2RhbCcpLmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3cnKTskKCd0bU1vZGFsQm94JykuaW5uZXJIVE1MPScnO2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnbGF3YWktdGFzay1tb2RhbC1vcGVuJyl9CmZ1bmN0aW9uIG9wZW5Nb2RhbChodG1sKXskKCd0bU1vZGFsQm94JykuaW5uZXJIVE1MPWh0bWw7JCgndG1Nb2RhbCcpLmNsYXNzTGlzdC5hZGQoJ3Nob3cnKTtkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2xhd2FpLXRhc2stbW9kYWwtb3BlbicpO3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+eyQoJ3RtTW9kYWxCb3gnKS5xdWVyeVNlbGVjdG9yKCcudG0tYm9keScpPy5zY3JvbGxUbyh7dG9wOjB9KX0pfQpmdW5jdGlvbiBmaWVsZChuYW1lLGxhYmVsLHZhbHVlPScnLHR5cGU9J3RleHQnLGZ1bGw9ZmFsc2UsYXR0cnM9Jycpe3JldHVybmA8ZGl2IGNsYXNzPSJ0bS1maWVsZCAke2Z1bGw/J2Z1bGwnOicnfSI+PGxhYmVsPiR7bGFiZWx9PC9sYWJlbD48aW5wdXQgbmFtZT0iJHtuYW1lfSIgdHlwZT0iJHt0eXBlfSIgdmFsdWU9IiR7ZXNjKHZhbHVlKX0iICR7YXR0cnN9PjwvZGl2PmB9CmZ1bmN0aW9uIHNlbGVjdChuYW1lLGxhYmVsLG9wdGlvbnMsdmFsdWU9JycsZnVsbD1mYWxzZSl7cmV0dXJuYDxkaXYgY2xhc3M9InRtLWZpZWxkICR7ZnVsbD8nZnVsbCc6Jyd9Ij48bGFiZWw+JHtsYWJlbH08L2xhYmVsPjxzZWxlY3QgbmFtZT0iJHtuYW1lfSI+JHtvcHRpb25zLm1hcChvPT57Y29uc3Qgdj10eXBlb2Ygbz09PSdzdHJpbmcnP286by52YWx1ZSxsPXR5cGVvZiBvPT09J3N0cmluZyc/bzpvLmxhYmVsO3JldHVybmA8b3B0aW9uIHZhbHVlPSIke2VzYyh2KX0iICR7U3RyaW5nKHYpPT09U3RyaW5nKHZhbHVlKT8nc2VsZWN0ZWQnOicnfT4ke2VzYyhsKX08L29wdGlvbj5gfSkuam9pbignJyl9PC9zZWxlY3Q+PC9kaXY+YH0KZnVuY3Rpb24gY2FzZVBpY2tlcih2YWx1ZT0nJyl7Y29uc3QgY2FzZXM9KHN0YXRlKCkuY2FzZXN8fFtdKS5maWx0ZXIoYz0+IWMuYXJjaGl2ZWQmJiFjLmRlbGV0ZWQpLHNlbGVjdGVkPWNhc2VSb3codmFsdWUpO3JldHVybmA8ZGl2IGNsYXNzPSJ0bS1maWVsZCBmdWxsIHRtLWNhc2UtcGlja2VyIiBkYXRhLXRtLWNhc2UtcGlja2VyPjxsYWJlbD7Yp9mE2YLYttmK2Kkg2KfZhNmF2LHYqtio2LfYqTwvbGFiZWw+PGlucHV0IHR5cGU9InNlYXJjaCIgZGF0YS10bS1jYXNlLXNlYXJjaCB2YWx1ZT0iJHtlc2Moc2VsZWN0ZWQ/Y2FzZUxhYmVsKHNlbGVjdGVkKTonJyl9IiBwbGFjZWhvbGRlcj0i2KfYqNit2Ksg2KjYp9mE2LHZgtmFINin2YTYotmE2Yog2KPZiCDYp9mE2LnZhdmK2YQg2KPZiCDYp9mE2K7YtdmFIiBhdXRvY29tcGxldGU9Im9mZiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY2FzZUlkIiB2YWx1ZT0iJHtlc2ModmFsdWUpfSI+PGRpdiBjbGFzcz0idG0tY2FzZS1yZXN1bHRzIj4ke2Nhc2VzLm1hcChjPT5gPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ0bS1jYXNlLW9wdGlvbiIgZGF0YS10bS1jYXNlLWlkPSIke2MuaWR9IiBkYXRhLXRtLWNhc2UtbGFiZWw9IiR7ZXNjKGNhc2VMYWJlbChjKSl9IiBkYXRhLXRtLWNhc2Utc2VhcmNoPSIke2VzYyhbYy5hdXRvTm8sYy5jYXNlTm8sY2xpZW50Um93KGMuY2xpZW50SWQpPy5uYW1lLGMub3Bwb25lbnQsYy5jb3VydF0uam9pbignICcpLnRvTG93ZXJDYXNlKCkpfSI+PGI+JHtlc2MoY2FzZUxhYmVsKGMpKX08L2I+PGJyPjxzbWFsbD4ke2VzYyhjLmNhc2VOb3x8Jy0nKX0gwrcgJHtlc2MoYy5jb3VydHx8Jy0nKX08L3NtYWxsPjwvYnV0dG9uPmApLmpvaW4oJycpfTwvZGl2PjwvZGl2PmB9CmZ1bmN0aW9uIGF0dGFjaFNvdXJjZShwcmVmaXgpe3JldHVybmA8ZGl2IGNsYXNzPSJzaG93IiBkYXRhLXNvdXJjZT0idXBsb2FkIj48aW5wdXQgbmFtZT0iJHtwcmVmaXh9RmlsZXMiIHR5cGU9ImZpbGUiIG11bHRpcGxlIGFjY2VwdD0iLnBkZiwucG5nLC5qcGcsLmpwZWcsLndlYnAsLmRvYywuZG9jeCI+PC9kaXY+PGRpdiBkYXRhLXNvdXJjZT0ibGluayI+PGlucHV0IG5hbWU9IiR7cHJlZml4fVVybCIgdHlwZT0idXJsIiBkaXI9Imx0ciIgcGxhY2Vob2xkZXI9Imh0dHBzOi8vLi4uIj48L2Rpdj48ZGl2IGRhdGEtc291cmNlPSJzY2FuIj48aW5wdXQgbmFtZT0iJHtwcmVmaXh9U2NhbiIgdHlwZT0iZmlsZSIgYWNjZXB0PSJpbWFnZS8qIiBjYXB0dXJlPSJlbnZpcm9ubWVudCIgbXVsdGlwbGU+PC9kaXY+YH0KZnVuY3Rpb24gYXR0YWNoUm93KGkpe2NvbnN0IHA9YHRtQXR0JHtpfWAsdHlwZXM9WyfZhdiz2KrZhtivINii2K7YsScsJ9mD2KrYp9ioINix2LPZhdmKJywn2YXYsNmD2LHYqSDYr9mB2KfYuScsJ9it2KfZgdi42Kkg2YXYs9iq2YbYr9in2KonLCfYtdit2YrZgdipINin2YTYr9i52YjZiScsJ9it2YPZhSDYo9mI2YQg2K/Ysdis2KknLCfYqtmC2LHZitixINiu2KjZitixJywn2YXYrdi22LEg2KrZhtmB2YrYsCcsJ9i12YjYsdipJ107cmV0dXJuYDxkaXYgY2xhc3M9InRtLWF0dGFjaC1yb3ciIGRhdGEtYXR0YWNoLXJvdyBkYXRhLXByZWZpeD0iJHtwfSI+PGRpdj48c2VsZWN0IG5hbWU9IiR7cH1UeXBlIj4ke3R5cGVzLm1hcCh4PT5gPG9wdGlvbj4ke3h9PC9vcHRpb24+YCkuam9pbignJyl9PC9zZWxlY3Q+PC9kaXY+PGRpdj48aW5wdXQgbmFtZT0iJHtwfU5hbWUiIHBsYWNlaG9sZGVyPSLYp9iz2YUg2KfZhNmF2LHZgdmCIj48L2Rpdj48ZGl2PjxzZWxlY3QgbmFtZT0iJHtwfU1vZGUiPjxvcHRpb24gdmFsdWU9InVwbG9hZCI+2YXZhiDYp9mE2YPZhdio2YrZiNiq2LE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJsaW5rIj7Ysdin2KjYtyDZhdmE2YE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJzY2FuIj7Ys9mD2KfZhiDYqNin2YTZg9in2YXZitix2Kc8L29wdGlvbj48L3NlbGVjdD48L2Rpdj48ZGl2IGNsYXNzPSJ0bS1zb3VyY2UiPiR7YXR0YWNoU291cmNlKHApfTwvZGl2PjxkaXYgY2xhc3M9InRtLW5vdGUiPjxpbnB1dCBuYW1lPSIke3B9Tm90ZSIgcGxhY2Vob2xkZXI9ItmF2YTYp9it2LjYqSI+PC9kaXY+PGRpdj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcmVkIGJ0bi1zbSBidG4taWNvbiIgZGF0YS10bS1hY3Rpb249InJlbW92ZS1hdHRhY2giPjxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6dHJhc2gtYmluLXRyYXNoLW91dGxpbmUiPjwvaWNvbmlmeS1pY29uPjwvYnV0dG9uPjwvZGl2PjwvZGl2PmB9CmZ1bmN0aW9uIGZvcm0odGFza0lkPScnKXtjb25zdCB0PShzdGF0ZSgpLnRhc2tzfHxbXSkuZmluZCh4PT54LmlkPT09dGFza0lkKXx8e30sbT1tZXRhKHQpLHVzZXJzPShzdGF0ZSgpLnVzZXJzfHxbXSkuZmlsdGVyKHU9PiF1LmRlbGV0ZWQmJnUuYWN0aXZlIT09ZmFsc2UpLnNvcnQoKGEsYik9PlN0cmluZyhhLm5hbWV8fCcnKS5sb2NhbGVDb21wYXJlKFN0cmluZyhiLm5hbWV8fCcnKSwnYXInKSk7YXR0YWNoU2VxPTE7b3Blbk1vZGFsKGA8Zm9ybSBpZD0idG1UYXNrRm9ybSIgZGF0YS1pZD0iJHtlc2ModGFza0lkKX0iPjxkaXYgY2xhc3M9InRtLWhlYWQiPjxoMz48aWNvbmlmeS1pY29uIGljb249ImxpbmUtbWQ6Y2xpcGJvYXJkLWNoZWNrIj48L2ljb25pZnktaWNvbj4ke3Rhc2tJZD8n2KrYudiv2YrZhCDYp9mE2YXZh9mF2KknOifYpdi22KfZgdipINmF2YfZhdipINmF2YrYr9in2YbZitipJ308L2gzPjxkaXYgY2xhc3M9InRtLWhlYWQtYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IiB0eXBlPSJzdWJtaXQiPtit2YHYuCDYp9mE2YXZh9mF2Kk8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLXJlZCIgdHlwZT0iYnV0dG9uIiBkYXRhLXRtLWFjdGlvbj0iY2xvc2UiPtil2LrZhNin2YI8L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ0bS1ib2R5Ij48c2VjdGlvbiBjbGFzcz0idG0tc2VjdGlvbiI+PGg0Ptio2YrYp9mG2KfYqiDYp9mE2KrZg9mE2YrZgTwvaDQ+PGRpdiBjbGFzcz0idG0tZ3JpZCI+JHtmaWVsZCgndGl0bGUnLCfYudmG2YjYp9mGINin2YTZhdmH2YXYqScsdC50aXRsZXx8JycpfSR7ZmllbGQoJ2RhdGUnLCfYqtin2LHZitiuINin2YTZhdmH2YXYqScsdC5kYXRlfHxhcHAudG9kYXkoKSwnZGF0ZScpfSR7ZmllbGQoJ3N0YXJ0VGltZScsJ9mI2YLYqiDYp9mE2KjYr9in2YrYqScsbS5zdGFydFRpbWV8fCcwODowMCcsJ3RpbWUnKX0ke2ZpZWxkKCdkdWVUaW1lJywn2KLYrtixINmI2YLYqiDZhNmE2KXZhtis2KfYsicsbS5kdWVUaW1lfHwnMTQ6MDAnLCd0aW1lJyl9JHtzZWxlY3QoJ2Fzc2lnbmVkVG8nLCfYp9mE2YXYs9ik2YjZhCcsW3t2YWx1ZTonJyxsYWJlbDon2KfYrtiq2LEg2KfZhNmF2LPYpNmI2YQnfSwuLi51c2Vycy5tYXAodT0+KHt2YWx1ZTp1LmlkLGxhYmVsOmAke3UubmFtZX0g4oCUICR7dS5yb2xlfHwnJ31gfSkpXSx0LmFzc2lnbmVkVG98fCcnKX0ke3NlbGVjdCgncHJpb3JpdHknLCfYp9mE2KPZiNmE2YjZitipJyxbJ9i52KfYr9mK2KknLCfZhdmH2YXYqScsJ9i52KfYrNmE2KknXSx0LnByaW9yaXR5fHwn2LnYp9iv2YrYqScpfSR7Y2FzZVBpY2tlcih0LmNhc2VJZHx8JycpfTxkaXYgY2xhc3M9InRtLWZpZWxkIGZ1bGwiPjxsYWJlbD7ZhdmE2KfYrdi42KfYqiDZiNiq2LnZhNmK2YXYp9iqINin2YTZhdmH2YXYqTwvbGFiZWw+PHRleHRhcmVhIG5hbWU9Im5vdGUiPiR7ZXNjKG5vdGUodCkpfTwvdGV4dGFyZWE+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPjxzZWN0aW9uIGNsYXNzPSJ0bS1zZWN0aW9uIj48aDQ+2KfZhNmF2YjZgti5INmI2KXYq9io2KfYqiDYp9mE2K3YttmI2LE8L2g0PjxkaXYgY2xhc3M9InRtLWxvY2F0aW9uLXBpY2tlciI+PGRpdiBjbGFzcz0idG0tbG9jYXRpb24tdG9vbGJhciI+PHNlbGVjdCBpZD0idG1Mb2NhdGlvbkNhdGVnb3J5IiBhcmlhLWxhYmVsPSLYqti12YbZitmBINin2YTZhdmI2KfZgti5Ij48b3B0aW9uPtin2YTZg9mEPC9vcHRpb24+PC9zZWxlY3Q+PHNlbGVjdCBpZD0idG1SZWFkeUxvY2F0aW9uIiBhcmlhLWxhYmVsPSLYp9mE2YXZiNin2YLYuSDYp9mE2KzYp9mH2LLYqSI+PG9wdGlvbiB2YWx1ZT0iIj7Yp9iu2KrYsSDZhdmI2YLYudin2Ysg2KzYp9mH2LLYp9mLPC9vcHRpb24+PC9zZWxlY3Q+PGlucHV0IGlkPSJ0bUxvY2F0aW9uU2VhcmNoIiBjbGFzcz0idG0tbG9jYXRpb24tc2VhcmNoLWlucHV0IiB0eXBlPSJzZWFyY2giIHBsYWNlaG9sZGVyPSLYp9io2K3YqyDYudmGINmF2K3Zg9mF2KnYjCDZhtmK2KfYqNip2Iwg2YXYrtmB2LEg2KPZiCDYudmG2YjYp9mGIj48YnV0dG9uIGlkPSJ0bUxvY2F0aW9uU2VhcmNoQnRuIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXNvZnQiIGRhdGEtdG0tYWN0aW9uPSJsb2NhdGlvbi1zZWFyY2giPjxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6bWFnbmlmZXItb3V0bGluZSI+PC9pY29uaWZ5LWljb24+2KjYrdirPC9idXR0b24+PC9kaXY+PGRpdiBpZD0idG1Mb2NhdGlvblJlc3VsdHMiIGNsYXNzPSJ0bS1sb2NhdGlvbi1yZXN1bHRzIj48L2Rpdj48ZGl2IGlkPSJ0bUxvY2F0aW9uTWFwIiBjbGFzcz0idG0tbG9jYXRpb24tbWFwIj48L2Rpdj48ZGl2IGNsYXNzPSJ0bS1sb2NhdGlvbi1ib3R0b20iPjxkaXY+PGRpdiBpZD0idG1Mb2NhdGlvblN0YXR1cyIgY2xhc3M9InRtLWxvY2F0aW9uLXN0YXR1cyI+2KfYtti62Lcg2LnZhNmJINin2YTYrtix2YrYt9ipINij2Ygg2KfYrtiq2LEg2YXZiNmC2LnYp9mLINis2KfZh9iy2KfZizwvZGl2PjxkaXYgY2xhc3M9InRtLWxvY2F0aW9uLWhpbnQiPtmK2YXZg9mGINiz2K3YqCDYp9mE2K/YqNmI2LMg2KXZhNmJINmF2K/YrtmEINin2YTZhdio2YbZiSDYp9mE2LXYrdmK2K3YjCDZiNin2YTYr9in2KbYsdipINiq2YXYq9mEINmG2LfYp9mCINin2YTYrdi22YjYsS48L2Rpdj48L2Rpdj48YnV0dG9uIGlkPSJ0bVVzZVJlYWR5TG9jYXRpb24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc29mdCIgZGF0YS10bS1hY3Rpb249ImxvY2F0aW9uLXVzZS1yZWFkeSI+PGljb25pZnktaWNvbiBpY29uPSJzb2xhcjptYXAtcG9pbnQtYWRkLW91dGxpbmUiPjwvaWNvbmlmeS1pY29uPtin2LPYqtiu2K/Yp9mFINin2YTZhdmI2YLYuSDYp9mE2YXYrtiq2KfYsTwvYnV0dG9uPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi13aGl0ZSIgZGF0YS10bS1hY3Rpb249ImxvY2F0aW9uLXNhdmUtcmVhZHkiPjxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6ZGlza2V0dGUtb3V0bGluZSI+PC9pY29uaWZ5LWljb24+2K3Zgdi42Ycg2KjYr9mE2YrZhCDYp9mE2YXZg9iq2Kg8L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ0bS1ncmlkIiBzdHlsZT0ibWFyZ2luLXRvcDoxMHB4Ij48ZGl2IGNsYXNzPSJ0bS1maWVsZCBmdWxsIj48ZGl2IGNsYXNzPSJ0bS1sb2NhdGlvbi1jYXJkIj48ZGl2PiR7ZmllbGQoJ2xvY2F0aW9uTmFtZScsJ9in2LPZhSDYp9mE2YXZiNmC2LknLG0ubG9jYXRpb25OYW1lfHwnJywndGV4dCcsZmFsc2UsJ3BsYWNlaG9sZGVyPSLYp9mE2YXYrdmD2YXYqSDYo9mIINil2K/Yp9ix2Kkg2KfZhNiq2YbZgdmK2LAg2KPZiCDYp9mE2K7YqNix2KfYoSInKX08L2Rpdj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc29mdCIgZGF0YS10bS1hY3Rpb249ImNhcHR1cmUtdGFyZ2V0Ij48aWNvbmlmeS1pY29uIGljb249InNvbGFyOm1hcC1wb2ludC13YXZlLW91dGxpbmUiPjwvaWNvbmlmeS1pY29uPtin2LPYqtiu2K/Yp9mFINmF2YjZgti52Yog2KfZhNit2KfZhNmKPC9idXR0b24+PC9kaXY+PC9kaXY+JHtmaWVsZCgnbG9jYXRpb25VcmwnLCfYsdin2KjYtyDYp9mE2YXZiNmC2LknLG0ubG9jYXRpb25Vcmx8fCcnLCd1cmwnLHRydWUsJ2Rpcj0ibHRyIiBwbGFjZWhvbGRlcj0iaHR0cHM6Ly9tYXBzLmdvb2dsZS5jb20vLi4uIicpfTxpbnB1dCBuYW1lPSJ0YXJnZXRMYXQiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IiR7ZXNjKG0udGFyZ2V0TGF0fHwnJyl9Ij48aW5wdXQgbmFtZT0idGFyZ2V0TG5nIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIke2VzYyhtLnRhcmdldExuZ3x8JycpfSI+JHtmaWVsZCgncmFkaXVzJywn2YbYt9in2YIg2KfZhNit2LbZiNixINio2KfZhNmF2KrYsScsbS5yYWRpdXN8fDIwMCwnbnVtYmVyJyl9PGRpdiBjbGFzcz0idG0tZmllbGQiPjxsYWJlbD7Yp9mE2KXYrdiv2KfYq9mK2KfYqiDYp9mE2YXYudiq2YXYr9ipPC9sYWJlbD48ZGl2IGNsYXNzPSJ0bS1jb29yZHMiIGlkPSJ0bUNvb3JkcyI+JHttLnRhcmdldExhdCYmbS50YXJnZXRMbmc/YCR7bS50YXJnZXRMYXR9LCAke20udGFyZ2V0TG5nfWA6J9mE2YUg2YrYqtmFINiq2K3Yr9mK2K8g2KfZhNil2K3Yr9in2KvZitin2KonfTwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InRtLWZpZWxkIGZ1bGwiPjxkaXYgY2xhc3M9InRtLWNoZWNrcyI+PGxhYmVsIGNsYXNzPSJ0bS1jaGVjayI+PHNwYW4+2KfYtNiq2LHYp9i3INin2YTZhNmI2YPZiti02YYg2LnZhtivINin2YTYrdi22YjYsSDZiNin2YTYpdmG2KzYp9iyPC9zcGFuPjxpbnB1dCBuYW1lPSJyZXF1aXJlTG9jYXRpb24iIHR5cGU9ImNoZWNrYm94IiAke20ucmVxdWlyZUxvY2F0aW9uIT09ZmFsc2U/J2NoZWNrZWQnOicnfT48L2xhYmVsPjxsYWJlbCBjbGFzcz0idG0tY2hlY2siPjxzcGFuPtin2LTYqtix2KfYtyDYtdmI2LHYqSDYudmG2K8g2KrYo9mD2YrYryDYp9mE2K3YttmI2LE8L3NwYW4+PGlucHV0IG5hbWU9InJlcXVpcmVBdHRlbmRhbmNlUGhvdG8iIHR5cGU9ImNoZWNrYm94IiAke20ucmVxdWlyZUF0dGVuZGFuY2VQaG90bz8nY2hlY2tlZCc6Jyd9PjwvbGFiZWw+PGxhYmVsIGNsYXNzPSJ0bS1jaGVjayI+PHNwYW4+2KfYtNiq2LHYp9i3INi12YjYsdipINi52YbYryDYp9mE2KXZhtis2KfYsjwvc3Bhbj48aW5wdXQgbmFtZT0icmVxdWlyZUNvbXBsZXRpb25QaG90byIgdHlwZT0iY2hlY2tib3giICR7bS5yZXF1aXJlQ29tcGxldGlvblBob3RvPydjaGVja2VkJzonJ30+PC9sYWJlbD48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+PHNlY3Rpb24gY2xhc3M9InRtLXNlY3Rpb24iPjxoND7Zhdix2YHZgtin2Kog2KfZhNiq2YPZhNmK2YE8L2g0PjxkaXYgY2xhc3M9InRtLXdhcm5pbmciPtmK2YXZg9mGINix2YHYuSDYudiv2Kkg2YXZhNmB2KfYqi4g2KfZhNix2YHYuSDZhdmGINin2YTZg9mF2KjZitmI2KrYsSDYo9mIINin2YTZg9in2YXZitix2Kcg2YrYrdiq2KfYrCDYsdio2Lcg2KfZhNmF2YfZhdipINio2YLYttmK2Kkg2K3YqtmJINmK2Y/YrdmB2Lgg2K/Yp9iu2YQg2YXYrNmE2K/Zh9inINin2YTYtdit2YrYrdiMINij2YXYpyDYsdin2KjYtyDYp9mE2YXZhNmBINmB2YrZhdmD2YYg2KXYttin2YHYqtmHINmF2KjYp9i02LHYqS48L2Rpdj48ZGl2IGNsYXNzPSJ0bS1hdHRhY2gtdGFibGUiIHN0eWxlPSJtYXJnaW4tdG9wOjlweCI+PGRpdiBjbGFzcz0idG0tYXR0YWNoLWhlYWQiPjxkaXY+2KfZhNmG2YjYuTwvZGl2PjxkaXY+2KfZhNin2LPZhTwvZGl2PjxkaXY+2KfZhNi32LHZitmC2Kk8L2Rpdj48ZGl2Ptin2YTZhdmE2YEgLyDYp9mE2LHYp9io2Lc8L2Rpdj48ZGl2Ptin2YTZhdmE2KfYrdi42Kk8L2Rpdj48ZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9InRtQXR0YWNoUm93cyI+JHthdHRhY2hSb3coMSl9PC9kaXY+PGRpdiBjbGFzcz0idG0tYWRkLXJvdyI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXNvZnQiIGRhdGEtdG0tYWN0aW9uPSJhZGQtYXR0YWNoIj48aWNvbmlmeS1pY29uIGljb249ImxpbmUtbWQ6cGx1cy1jaXJjbGUiPjwvaWNvbmlmeS1pY29uPtil2LbYp9mB2Kkg2YXYsdmB2YIg2KLYrtixPC9idXR0b24+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPjwvZGl2PjxkaXYgY2xhc3M9InRtLWZvb3QiPjxidXR0b24gY2xhc3M9ImJ0biBidG4tcHJpbWFyeSIgdHlwZT0ic3VibWl0Ij7YrdmB2Lgg2KfZhNmF2YfZhdipPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi13aGl0ZSIgdHlwZT0iYnV0dG9uIiBkYXRhLXRtLWFjdGlvbj0iY2xvc2UiPtil2YTYutin2KE8L2J1dHRvbj48L2Rpdj48L2Zvcm0+YCk7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT5pbml0VGFza01hcChtKSl9CmZ1bmN0aW9uIGNvbGxlY3RBdHRhY2htZW50cyhmb3JtKXtyZXR1cm4gcWEoJ1tkYXRhLWF0dGFjaC1yb3ddJyxmb3JtKS5tYXAocj0+e2NvbnN0IHA9ci5kYXRhc2V0LnByZWZpeCxtb2RlPXIucXVlcnlTZWxlY3RvcihgW25hbWU9IiR7cH1Nb2RlIl1gKT8udmFsdWV8fCd1cGxvYWQnLGZpbGVzPUFycmF5LmZyb20oci5xdWVyeVNlbGVjdG9yKGBbbmFtZT0iJHtwfSR7bW9kZT09PSdzY2FuJz8nU2Nhbic6J0ZpbGVzJ30iXWApPy5maWxlc3x8W10pLHVybD1yLnF1ZXJ5U2VsZWN0b3IoYFtuYW1lPSIke3B9VXJsIl1gKT8udmFsdWUudHJpbSgpfHwnJztyZXR1cm57dHlwZTpyLnF1ZXJ5U2VsZWN0b3IoYFtuYW1lPSIke3B9VHlwZSJdYCk/LnZhbHVlfHwn2YXYs9iq2YbYryDYotiu2LEnLG5hbWU6ci5xdWVyeVNlbGVjdG9yKGBbbmFtZT0iJHtwfU5hbWUiXWApPy52YWx1ZS50cmltKCl8fCcnLG1vZGUsZmlsZXMsdXJsLG5vdGU6ci5xdWVyeVNlbGVjdG9yKGBbbmFtZT0iJHtwfU5vdGUiXWApPy52YWx1ZS50cmltKCl8fCcnfX0pLmZpbHRlcih4PT54LmZpbGVzLmxlbmd0aHx8eC51cmwpfQphc3luYyBmdW5jdGlvbiBzYXZlUmVjb3JkKGVudGl0eSxyZWNvcmQpe3JldHVybiBhcHAuc2F2ZVJlY29yZChlbnRpdHkscmVjb3JkKX0KZnVuY3Rpb24gdGFza0RvY1JlY29yZCh0YXNrLGMsY2xpZW50LGJhc2Upe2NvbnN0IGZpbGVJZD1iYXNlLmZpbGVJZHx8JycsdXJsPWJhc2UudXJsfHwnJztyZXR1cm57aWQ6YXBwLm1ha2VJZCgpLHRhc2tJZDp0YXNrLmlkLGNhc2VJZDpjPy5pZHx8JycsY2xpZW50SWQ6Y2xpZW50Py5pZHx8JycsY2xpZW50TmFtZTpjbGllbnQ/Lm5hbWV8fCcnLG9wcG9uZW50OmM/Lm9wcG9uZW50fHwnJyxhdXRvTm86Yz8uYXV0b05vfHwnJyxjYXNlTm86Yz8uY2FzZU5vfHwnJyx0eXBlOmJhc2UudHlwZXx8J9mF2LPYqtmG2K8g2KLYrtixJyxuYW1lOmJhc2UubmFtZXx8J9mF2LHZgdmCINmF2YfZhdipJyx1cmwsZHJpdmVVcmw6dXJsLHByZXZpZXdVcmw6YmFzZS5wcmV2aWV3VXJsfHwnJyx0aHVtYm5haWxVcmw6YmFzZS50aHVtYm5haWxVcmx8fCcnLGRvd25sb2FkVXJsOmJhc2UuZG93bmxvYWRVcmx8fHVybCxkYXRlOmFwcC50b2RheSgpLG5vdGU6YFtbVEFTSzoke3Rhc2suaWR9XV0ke2Jhc2Uubm90ZT9gXG4ke2Jhc2Uubm90ZX1gOicnfWAsc291cmNlTW9kZTpiYXNlLnNvdXJjZU1vZGV8fCd1cGxvYWQnLG1pbWU6YmFzZS5taW1lVHlwZXx8JycsbWltZVR5cGU6YmFzZS5taW1lVHlwZXx8Jycsc2l6ZTpOdW1iZXIoYmFzZS5zaXplfHwwKSxhY2Nlc3NTdGF0dXM6YmFzZS5hY2Nlc3NTdGF0dXN8fCfYrtin2LUg2KjYp9mE2YXZg9iq2KgnLGZpbGVJZCxkcml2ZUZpbGVJZDpmaWxlSWQsZm9sZGVySWQ6YmFzZS5mb2xkZXJJZHx8JycsZm9sZGVyVXJsOmJhc2UuZm9sZGVyVXJsfHwnJyx1cGxvYWRlZEJ5OmFwcC5nZXRVc2VyTmFtZSgpLGNyZWF0ZWRBdDpub3dJc28oKSx1cGRhdGVkQXQ6bm93SXNvKCl9fQphc3luYyBmdW5jdGlvbiBzYXZlQXR0YWNobWVudHModGFzayxpdGVtcyl7aWYoIWl0ZW1zLmxlbmd0aClyZXR1cm4gMDtjb25zdCBjPWNhc2VSb3codGFzay5jYXNlSWQpLGNsaWVudD1jbGllbnRSb3coYz8uY2xpZW50SWQpO2xldCBjb3VudD0wO2Zvcihjb25zdCBpdGVtIG9mIGl0ZW1zKXtpZihpdGVtLm1vZGU9PT0nbGluaycpe2lmKCEvXmh0dHBzPzpcL1wvL2kudGVzdChpdGVtLnVybCkpdGhyb3cgbmV3IEVycm9yKCfYsdin2KjYtyDZhdix2YHZgiDYutmK2LEg2LXYrdmK2K0nKTthd2FpdCBzYXZlUmVjb3JkKCdhdHRhY2htZW50cycsdGFza0RvY1JlY29yZCh0YXNrLGMsY2xpZW50LHt0eXBlOml0ZW0udHlwZSxuYW1lOml0ZW0ubmFtZXx8J9ix2KfYqNi3INmF2LHZgdmCJyx1cmw6aXRlbS51cmwscHJldmlld1VybDppdGVtLnVybCxkb3dubG9hZFVybDppdGVtLnVybCxub3RlOml0ZW0ubm90ZSxzb3VyY2VNb2RlOidsaW5rJ30pKTtjb3VudCsrO2NvbnRpbnVlfWlmKCFjfHwhY2xpZW50KXRocm93IG5ldyBFcnJvcign2KfYsdio2Lcg2KfZhNmF2YfZhdipINio2YLYttmK2Kkg2YLYqNmEINix2YHYuSDZhdmE2YHYp9iqINmF2YYg2KfZhNis2YfYp9iyINij2Ygg2KfZhNmD2KfZhdmK2LHYpycpO2ZvcihsZXQgaT0wO2k8aXRlbS5maWxlcy5sZW5ndGg7aSsrKXtjb25zdCBmaWxlPWl0ZW0uZmlsZXNbaV0sdXA9YXdhaXQgYXBwLnVwbG9hZEZpbGUoZmlsZSx7ZW50aXR5Oid0YXNrJyxlbnRpdHlJZDp0YXNrLmlkLGVudGl0eU5hbWU6dGFzay50aXRsZSx0YXNrSWQ6dGFzay5pZCxjYXNlSWQ6Yy5pZCxjbGllbnRJZDpjbGllbnQuaWQsY2xpZW50TmFtZTpjbGllbnQubmFtZSxvcHBvbmVudDpjLm9wcG9uZW50fHwnJyxhdXRvTm86Yy5hdXRvTm98fCcnLGNhc2VObzpjLmNhc2VOb3x8JycsbmFtZTppdGVtLm5hbWV8fGZpbGUubmFtZSx0eXBlOml0ZW0udHlwZSxkYXRlOmFwcC50b2RheSgpLG5vdGU6aXRlbS5ub3RlfSk7YXdhaXQgc2F2ZVJlY29yZCgnYXR0YWNobWVudHMnLHRhc2tEb2NSZWNvcmQodGFzayxjLGNsaWVudCx7Li4udXAsdHlwZTppdGVtLnR5cGUsbmFtZTppdGVtLmZpbGVzLmxlbmd0aD09PTEmJml0ZW0ubmFtZT9pdGVtLm5hbWU6KGl0ZW0ubmFtZT9gJHtpdGVtLm5hbWV9ICR7aSsxfWA6ZmlsZS5uYW1lKSxub3RlOml0ZW0ubm90ZSxzb3VyY2VNb2RlOid1cGxvYWQnfSkpO2NvdW50Kyt9fXJldHVybiBjb3VudH0KYXN5bmMgZnVuY3Rpb24gc3VibWl0Rm9ybShmb3JtLGJ1dHRvbil7Y29uc3QgdGFza0lkPWZvcm0uZGF0YXNldC5pZCx0PXRhc2tJZD9zdHJ1Y3R1cmVkQ2xvbmUoKHN0YXRlKCkudGFza3N8fFtdKS5maW5kKHg9PnguaWQ9PT10YXNrSWQpKTp7aWQ6YXBwLm1ha2VJZCgpLGRvbmU6ZmFsc2UsY3JlYXRlZEF0Om5vd0lzbygpfSxvbGQ9bWV0YSh0KSxmZD1uZXcgRm9ybURhdGEoZm9ybSksYXR0YWNobWVudHM9Y29sbGVjdEF0dGFjaG1lbnRzKGZvcm0pO3QudGl0bGU9U3RyaW5nKGZkLmdldCgndGl0bGUnKXx8JycpLnRyaW0oKTt0LmRhdGU9U3RyaW5nKGZkLmdldCgnZGF0ZScpfHwnJykudHJpbSgpO3QuYXNzaWduZWRUbz1TdHJpbmcoZmQuZ2V0KCdhc3NpZ25lZFRvJyl8fCcnKS50cmltKCk7dC50bz11c2VyTmFtZSh0LmFzc2lnbmVkVG8pO3QucHJpb3JpdHk9U3RyaW5nKGZkLmdldCgncHJpb3JpdHknKXx8J9i52KfYr9mK2KknKTt0LmNhc2VJZD1TdHJpbmcoZmQuZ2V0KCdjYXNlSWQnKXx8JycpLnRyaW0oKTtpZighdC50aXRsZSlyZXR1cm4gYXBwLnNob3dUb2FzdCgn2KjZitin2YbYp9iqINmG2KfZgti12KknLCfYp9mD2KrYqCDYudmG2YjYp9mGINin2YTZhdmH2YXYqScsJ2Vycm9yJyk7aWYoIXQuZGF0ZSlyZXR1cm4gYXBwLnNob3dUb2FzdCgn2KjZitin2YbYp9iqINmG2KfZgti12KknLCfYrdiv2K8g2KrYp9ix2YrYriDYp9mE2YXZh9mF2KknLCdlcnJvcicpO2lmKCF0LmFzc2lnbmVkVG8pcmV0dXJuIGFwcC5zaG93VG9hc3QoJ9io2YrYp9mG2KfYqiDZhtin2YLYtdipJywn2KfYrtiq2LEg2KfZhNmF2LPYpNmI2YQg2LnZhiDYp9mE2YXZh9mF2KknLCdlcnJvcicpO2NvbnN0IG09ey4uLm9sZCxzdGFydFRpbWU6U3RyaW5nKGZkLmdldCgnc3RhcnRUaW1lJyl8fCcnKSxkdWVUaW1lOlN0cmluZyhmZC5nZXQoJ2R1ZVRpbWUnKXx8JycpLGxvY2F0aW9uTmFtZTpTdHJpbmcoZmQuZ2V0KCdsb2NhdGlvbk5hbWUnKXx8JycpLnRyaW0oKSxsb2NhdGlvblVybDpTdHJpbmcoZmQuZ2V0KCdsb2NhdGlvblVybCcpfHwnJykudHJpbSgpLHRhcmdldExhdDpTdHJpbmcoZmQuZ2V0KCd0YXJnZXRMYXQnKXx8JycpLHRhcmdldExuZzpTdHJpbmcoZmQuZ2V0KCd0YXJnZXRMbmcnKXx8JycpLHJhZGl1czpOdW1iZXIoZmQuZ2V0KCdyYWRpdXMnKXx8MjAwKSxyZXF1aXJlTG9jYXRpb246ZmQuZ2V0KCdyZXF1aXJlTG9jYXRpb24nKT09PSdvbicscmVxdWlyZUF0dGVuZGFuY2VQaG90bzpmZC5nZXQoJ3JlcXVpcmVBdHRlbmRhbmNlUGhvdG8nKT09PSdvbicscmVxdWlyZUNvbXBsZXRpb25QaG90bzpmZC5nZXQoJ3JlcXVpcmVDb21wbGV0aW9uUGhvdG8nKT09PSdvbicsc2hhcmVUb2tlbjpvbGQuc2hhcmVUb2tlbnx8cmFuZG9tU2hhcmVUb2tlbigpLHNoYXJlQWN0aXZlOm9sZC5zaGFyZUFjdGl2ZSE9PWZhbHNlLHNoYXJlQ3JlYXRlZEF0Om9sZC5zaGFyZUNyZWF0ZWRBdHx8bm93SXNvKCl9O3Qubm90ZT1hcHAucGFja1Rhc2tOb3RlKFN0cmluZyhmZC5nZXQoJ25vdGUnKXx8JycpLnRyaW0oKSxtKTt0LnVwZGF0ZWRBdD1ub3dJc28oKTtidXR0b24uZGlzYWJsZWQ9dHJ1ZTthcHAuc2V0U3luYygn2KzYp9ix2Yog2K3Zgdi4INin2YTZhdmH2YXYqScsJ2xvYWRpbmcnKTt0cnl7YXdhaXQgc2F2ZVJlY29yZCgndGFza3MnLHQpO2NvbnN0IGNvdW50PWF3YWl0IHNhdmVBdHRhY2htZW50cyh0LGF0dGFjaG1lbnRzKTthcHAucmVmcmVzaFVJKCk7Y2xvc2VNb2RhbCgpO3JlbmRlcigpO2FwcC5zZXRTeW5jKCfYqtmFINit2YHYuCDYp9mE2YXZh9mF2KknLCdzdWNjZXNzJyk7YXBwLnNob3dUb2FzdCgn2KrZhSDYp9mE2K3Zgdi4Jyxjb3VudD9g2KrZhSDYrdmB2Lgg2KfZhNmF2YfZhdipINmI2LHZgdi5ICR7Y291bnR9INmF2LHZgdmCLmA6J9iq2YUg2K3Zgdi4INin2YTZhdmH2YXYqSDYqNmG2KzYp9itLicsJ3N1Y2Nlc3MnKX1jYXRjaChlcnIpe2FwcC5zZXRTeW5jKCfYqti52LDYsSDYrdmB2Lgg2KfZhNmF2YfZhdipJywnZXJyb3InKTthcHAuc2hvd1RvYXN0KCfYqti52LDYsSDYp9mE2K3Zgdi4JyxlcnIubWVzc2FnZXx8J9iu2LfYoyDYutmK2LEg2YXYqtmI2YLYuScsJ2Vycm9yJyw3MDAwKX1maW5hbGx5e2J1dHRvbi5kaXNhYmxlZD1mYWxzZX19CmZ1bmN0aW9uIGRldGFpbCh0YXNrSWQpe2NvbnN0IHQ9KHN0YXRlKCkudGFza3N8fFtdKS5maW5kKHg9PnguaWQ9PT10YXNrSWQpO2lmKCF0KXJldHVybjtjb25zdCBjPWNhc2VSb3codC5jYXNlSWQpLG09bWV0YSh0KSxzPXRhc2tTdGF0dXModCksZG9jcz10YXNrRG9jcyh0LmlkKSxsb2M9bS5sb2NhdGlvblVybHx8bWFwc1VybChtLnRhcmdldExhdCxtLnRhcmdldExuZyk7b3Blbk1vZGFsKGA8ZGl2IGNsYXNzPSJ0bS1oZWFkIj48aDM+PGljb25pZnktaWNvbiBpY29uPSJzb2xhcjpjbGlwYm9hcmQtbGlzdC1vdXRsaW5lIj48L2ljb25pZnktaWNvbj7YqtmB2KfYtdmK2YQg2KfZhNmF2YfZhdipPC9oMz48ZGl2IGNsYXNzPSJ0bS1oZWFkLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImJ0biBidG4tcHJpbWFyeSIgZGF0YS10bS1hY3Rpb249ImVkaXQiIGRhdGEtaWQ9IiR7dC5pZH0iPtiq2LnYr9mK2YQ8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLWdyZWVuIiBkYXRhLXRtLWFjdGlvbj0ic2hhcmUiIGRhdGEtaWQ9IiR7dC5pZH0iPjxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6c2hhcmUtb3V0bGluZSI+PC9pY29uaWZ5LWljb24+2YXYtNin2LHZg9ipPC9idXR0b24+JHshdC5kb25lJiYhbS5hdHRlbmRlZEF0P2A8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXdoaXRlIiBkYXRhLXRtLWFjdGlvbj0iY2hlY2tpbiIgZGF0YS1pZD0iJHt0LmlkfSI+2KrYo9mD2YrYryDYp9mE2K3YttmI2LE8L2J1dHRvbj5gOicnfSR7IXQuZG9uZT9gPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1ncmVlbiIgZGF0YS10bS1hY3Rpb249ImNvbXBsZXRlIiBkYXRhLWlkPSIke3QuaWR9Ij7YqtmFINin2YTYpdmG2KzYp9iyPC9idXR0b24+YDpgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi13aGl0ZSIgZGF0YS10bS1hY3Rpb249InJlb3BlbiIgZGF0YS1pZD0iJHt0LmlkfSI+2KXYudin2K/YqSDZgdiq2K08L2J1dHRvbj5gfTxidXR0b24gY2xhc3M9ImJ0biBidG4tcmVkIiBkYXRhLXRtLWFjdGlvbj0iY2xvc2UiPtil2LrZhNin2YI8L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ0bS1ib2R5Ij48c2VjdGlvbiBjbGFzcz0idG0tc2VjdGlvbiI+PGg0PiR7ZXNjKHQudGl0bGUpfTwvaDQ+PGRpdiBjbGFzcz0idG0tbWV0YSIgc3R5bGU9Im1hcmdpbi1ib3R0b206MTBweCI+JHtwaWxsKHMubGFiZWwsc3RhdHVzVG9uZSh0KSl9JHtwaWxsKHQucHJpb3JpdHl8fCfYudin2K/ZitipJyl9JHt0YXNrRG9jcyh0LmlkKS5sZW5ndGg/cGlsbChgJHt0YXNrRG9jcyh0LmlkKS5sZW5ndGh9INmF2LHZgdmCYCk6Jyd9PC9kaXY+PGRpdiBjbGFzcz0idG0tZGV0YWlscyI+JHtkZXRhaWxDZWxsKCfYp9mE2KrYp9ix2YrYricsYXBwLmRhdGVUZXh0KHQuZGF0ZSkpfSR7ZGV0YWlsQ2VsbCgn2KfZhNmI2YLYqicsYCR7bS5zdGFydFRpbWV8fCctJ30g4oCUICR7bS5kdWVUaW1lfHwnLSd9YCl9JHtkZXRhaWxDZWxsKCfYp9mE2YXYs9ik2YjZhCcsdXNlck5hbWUodC5hc3NpZ25lZFRvKXx8dC50b3x8Jy0nKX0ke2RldGFpbENlbGwoJ9in2YTZgti22YrYqScsYz9gJHtjLmF1dG9Ob3x8Jy0nfSDigJQgJHtjLmNhc2VOb3x8Jy0nfWA6Jy0nKX0ke2RldGFpbENlbGwoJ9in2YTYrti12YUnLGM/Lm9wcG9uZW50fHwnLScpfSR7ZGV0YWlsQ2VsbCgn2KfZhNmF2YjZgti5JyxtLmxvY2F0aW9uTmFtZXx8Jy0nKX0ke2RldGFpbENlbGwoJ9iq2KPZg9mK2K8g2KfZhNit2LbZiNixJyxtLmF0dGVuZGVkQXQ/Zm10RGF0ZVRpbWUobS5hdHRlbmRlZEF0KTon2YTZhSDZitiq2YUnKX0ke2RldGFpbENlbGwoJ9in2YTYpdmG2KzYp9iyJyxtLmNvbXBsZXRlZEF0P2ZtdERhdGVUaW1lKG0uY29tcGxldGVkQXQpOifZhNmFINmK2KrZhScpfSR7ZGV0YWlsQ2VsbCgn2KfZhNmF2LPYp9mB2Kkg2LnZhtivINin2YTYrdi22YjYsScsbS5hdHRlbmRhbmNlRGlzdGFuY2UhPT11bmRlZmluZWQ/YCR7bS5hdHRlbmRhbmNlRGlzdGFuY2V9INmF2KrYsWA6Jy0nKX0ke2RldGFpbENlbGwoJ9mF2YTYp9it2LjYp9iqINin2YTZhdmH2YXYqScsbm90ZSh0KXx8Jy0nLHRydWUpfSR7ZGV0YWlsQ2VsbCgn2YXZhNin2K3YuNipINin2YTYrdi22YjYsScsbS5hdHRlbmRhbmNlTm90ZXx8Jy0nLHRydWUpfSR7ZGV0YWlsQ2VsbCgn2YbYqtmK2KzYqSDYp9mE2KXZhtis2KfYsicsbS5jb21wbGV0aW9uTm90ZXx8Jy0nLHRydWUpfTwvZGl2PiR7bG9jP2A8YSBjbGFzcz0iYnRuIGJ0bi1zb2Z0IiBzdHlsZT0ibWFyZ2luLXRvcDoxMHB4IiBocmVmPSIke2VzYyhsb2MpfSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPjxpY29uaWZ5LWljb24gaWNvbj0ic29sYXI6bWFwLXBvaW50LXdhdmUtb3V0bGluZSI+PC9pY29uaWZ5LWljb24+2YHYqtitINin2YTZhdmI2YLYuTwvYT5gOicnfTwvc2VjdGlvbj48c2VjdGlvbiBjbGFzcz0idG0tc2VjdGlvbiI+PGg0PtmF2LHZgdmC2KfYqiDYp9mE2YXZh9mF2Kk8L2g0PiR7ZG9jcy5sZW5ndGg/YDxkaXYgY2xhc3M9InRtLWRvY3MiPiR7ZG9jcy5tYXAoZD0+ZG9jQ2FyZChkKSkuam9pbignJyl9PC9kaXY+YDonPGRpdiBjbGFzcz0iZW1wdHkiPtmE2Kcg2KrZiNis2K8g2YXYsdmB2YLYp9iqINmE2YTZhdmH2YXYqS48L2Rpdj4nfTwvc2VjdGlvbj48L2Rpdj5gKX0KZnVuY3Rpb24gZGV0YWlsQ2VsbChsYWJlbCx2YWx1ZSxmdWxsPWZhbHNlKXtyZXR1cm5gPGRpdiBjbGFzcz0idG0tZGV0YWlsICR7ZnVsbD8nZnVsbCc6Jyd9Ij48c21hbGw+JHtsYWJlbH08L3NtYWxsPjxzdHJvbmc+JHtlc2ModmFsdWUpfTwvc3Ryb25nPjwvZGl2PmB9CmZ1bmN0aW9uIGRvY0NhcmQoZCl7Y29uc3QgdXJsPWFwcC5nZXREb2NWaWV3TGluayhkKXx8YXBwLmdldERvY1ByZXZpZXdMaW5rKGQpO3JldHVybmA8YXJ0aWNsZSBjbGFzcz0idG0tZG9jIj48Yj4ke2VzYyhkLm5hbWV8fCfZhdix2YHZgicpfTwvYj48c21hbGw+JHtlc2MoZC50eXBlfHxkLm1pbWVUeXBlfHwnLScpfSDCtyAke2FwcC5kYXRlVGV4dChkLmRhdGUpfTwvc21hbGw+PGRpdiBjbGFzcz0idG0tZG9jLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImJ0biBidG4tc29mdCBidG4tc20iIGRhdGEtdG0tYWN0aW9uPSJkb2Mtb3BlbiIgZGF0YS11cmw9IiR7ZXNjKHVybCl9Ij7Zgdiq2K08L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLWdyZWVuIGJ0bi1zbSBidG4taWNvbiIgZGF0YS10bS1hY3Rpb249ImRvYy1zaGFyZSIgZGF0YS1pZD0iJHtkLmlkfSI+PGljb25pZnktaWNvbiBpY29uPSJzb2xhcjpzaGFyZS1vdXRsaW5lIj48L2ljb25pZnktaWNvbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLXJlZCBidG4tc20gYnRuLWljb24iIGRhdGEtdG0tYWN0aW9uPSJkb2MtZGVsZXRlIiBkYXRhLWlkPSIke2QuaWR9Ij48aWNvbmlmeS1pY29uIGljb249InNvbGFyOnRyYXNoLWJpbi10cmFzaC1vdXRsaW5lIj48L2ljb25pZnktaWNvbj48L2J1dHRvbj48L2Rpdj48L2FydGljbGU+YH0KZnVuY3Rpb24gZ2VvKCl7cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCk9PntpZighbmF2aWdhdG9yLmdlb2xvY2F0aW9uKXJldHVybiByZWplY3QobmV3IEVycm9yKCfYp9mE2KzZh9in2LIg2KPZiCDYp9mE2YXYqti12YHYrSDZhNinINmK2K/YudmFINin2YTZhNmI2YPZiti02YYnKSk7bmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihwPT5yZXNvbHZlKHtsYXQ6cC5jb29yZHMubGF0aXR1ZGUsbG5nOnAuY29vcmRzLmxvbmdpdHVkZSxhY2N1cmFjeTpwLmNvb3Jkcy5hY2N1cmFjeX0pLGU9PnJlamVjdChuZXcgRXJyb3IoZS5jb2RlPT09MT8n2KrZhSDYsdmB2LYg2LXZhNin2K3ZitipINin2YTZhdmI2YLYuSc6J9iq2LnYsNixINiq2K3Yr9mK2K8g2KfZhNmF2YjZgti5INin2YTYrdin2YTZiicpKSx7ZW5hYmxlSGlnaEFjY3VyYWN5OnRydWUsdGltZW91dDoxODAwMCxtYXhpbXVtQWdlOjB9KX0pfQphc3luYyBmdW5jdGlvbiBjYXB0dXJlVGFyZ2V0KGJ0bil7YnRuLmRpc2FibGVkPXRydWU7dHJ5e2NvbnN0IHA9YXdhaXQgZ2VvKCk7dXBkYXRlTG9jYXRpb25GaWVsZHMocC5sYXQscC5sbmcse21lc3NhZ2U6YNmF2YjZgti52YMg2KfZhNit2KfZhNmKIOKAlCDYr9mC2KkgJHtNYXRoLnJvdW5kKHAuYWNjdXJhY3kpfdmFYH0pO2FwcC5zaG93VG9hc3QoJ9iq2YUg2KrYrdiv2YrYryDYp9mE2YXZiNmC2LknLCfYqtmFINmI2LbYuSDYp9mE2K/YqNmI2LMg2LnZhNmJINmF2YjZgti52YMg2KfZhNit2KfZhNmKLiDYrdix2ZHZg9mHINil2LDYpyDZg9in2YYg2YXYr9iu2YQg2KfZhNis2YfYqSDZhdiu2KrZhNmB2KfZiy4nLCdzdWNjZXNzJyl9Y2F0Y2goZXJyKXthcHAuc2hvd1RvYXN0KCfYqti52LDYsSDYqtit2K/ZitivINin2YTZhdmI2YLYuScsZXJyLm1lc3NhZ2UsJ2Vycm9yJyw2MDAwKX1maW5hbGx5e2J0bi5kaXNhYmxlZD1mYWxzZX19CmZ1bmN0aW9uIHByb29mTW9kYWwodGFza0lkLGtpbmQpe2NvbnN0IHQ9KHN0YXRlKCkudGFza3N8fFtdKS5maW5kKHg9PnguaWQ9PT10YXNrSWQpLG09bWV0YSh0KSxpc0RvbmU9a2luZD09PSdjb21wbGV0ZSc7aWYoIXQpcmV0dXJuO29wZW5Nb2RhbChgPGZvcm0gaWQ9InRtUHJvb2ZGb3JtIiBkYXRhLWlkPSIke3QuaWR9IiBkYXRhLWtpbmQ9IiR7a2luZH0iPjxkaXYgY2xhc3M9InRtLWhlYWQiPjxoMz48aWNvbmlmeS1pY29uIGljb249InNvbGFyOm1hcC1wb2ludC13YXZlLW91dGxpbmUiPjwvaWNvbmlmeS1pY29uPiR7aXNEb25lPyfYpdir2KjYp9iqINil2YbYrNin2LIg2KfZhNmF2YfZhdipJzon2KrYo9mD2YrYryDYp9mE2K3YttmI2LEg2KjYp9mE2YXZiNmC2LknfTwvaDM+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1yZWQiIHR5cGU9ImJ1dHRvbiIgZGF0YS10bS1hY3Rpb249ImNsb3NlIj7Ypdi62YTYp9mCPC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0idG0tYm9keSI+PGRpdiBjbGFzcz0idG0td2FybmluZyI+2LPZitiq2YUg2LfZhNioINin2YTZhNmI2YPZiti02YYg2KfZhNii2YYg2YjYqtiz2KzZitmEINin2YTYqtin2LHZitiuINmI2KfZhNmI2YLYqi4gJHttLnRhcmdldExhdCYmbS50YXJnZXRMbmc/YNmG2LfYp9mCINin2YTYrdi22YjYsSDYp9mE2YXYudiq2YXYryAke051bWJlcihtLnJhZGl1c3x8MjAwKX0g2YXYqtixLmA6J9mE2YUg2YrYrdiv2K8g2YTZhNmF2YfZhdipINmF2YjZgti5INmH2K/ZgdibINiz2YrYs9is2YQg2YXZiNmC2Lkg2KfZhNmF2YjYuNmBINiv2YjZhiDZhdmC2KfYsdmG2Kkg2YXYs9in2YHYqS4nfTwvZGl2PjxzZWN0aW9uIGNsYXNzPSJ0bS1zZWN0aW9uIiBzdHlsZT0ibWFyZ2luLXRvcDoxMHB4Ij48aDQ+JHtpc0RvbmU/J9mG2KrZitis2Kkg2KfZhNil2YbYrNin2LInOifYqNmK2KfZhtin2Kog2KfZhNit2LbZiNixJ308L2g0PjxkaXYgY2xhc3M9InRtLXByb29mIj48ZGl2IGNsYXNzPSJ0bS1maWVsZCBmdWxsIj48bGFiZWw+JHtpc0RvbmU/J9mF2YTYp9it2LjYp9iqINin2YTZhtiq2YrYrNipINmI2YXYpyDYqtmFINil2YbYrNin2LLZhyc6J9mF2YTYp9it2LjYqSDYp9mE2K3YttmI2LEnfTwvbGFiZWw+PHRleHRhcmVhIG5hbWU9InByb29mTm90ZSIgcmVxdWlyZWQ+PC90ZXh0YXJlYT48L2Rpdj48ZGl2IGNsYXNzPSJ0bS1maWVsZCI+PGxhYmVsPtin2YTYqtmC2KfYtyDYtdmI2LHYqSDZhdmGINin2YTZg9in2YXZitix2Kc8L2xhYmVsPjxpbnB1dCBuYW1lPSJwcm9vZlBob3RvIiB0eXBlPSJmaWxlIiBhY2NlcHQ9ImltYWdlLyoiIGNhcHR1cmU9ImVudmlyb25tZW50Ij48L2Rpdj48ZGl2IGNsYXNzPSJ0bS1maWVsZCI+PGxhYmVsPtix2YHYuSDZhdix2YHZgtin2Kog2KXYttin2YHZitipPC9sYWJlbD48aW5wdXQgbmFtZT0icHJvb2ZGaWxlcyIgdHlwZT0iZmlsZSIgbXVsdGlwbGUgYWNjZXB0PSIucGRmLC5wbmcsLmpwZywuanBlZywud2VicCwuZG9jLC5kb2N4Ij48L2Rpdj48L2Rpdj48L3NlY3Rpb24+PC9kaXY+PGRpdiBjbGFzcz0idG0tZm9vdCI+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1ncmVlbiIgdHlwZT0ic3VibWl0Ij4ke2lzRG9uZT8n2KrYo9mD2YrYryDYp9mE2KXZhtis2KfYsic6J9iq2KPZg9mK2K8g2KfZhNit2LbZiNixJ308L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLXdoaXRlIiB0eXBlPSJidXR0b24iIGRhdGEtdG0tYWN0aW9uPSJjbG9zZSI+2KXZhNi62KfYoTwvYnV0dG9uPjwvZGl2PjwvZm9ybT5gKX0KZnVuY3Rpb24gYXBwZW5kSGlzdG9yeShtLGV2ZW50KXtjb25zdCBoaXN0b3J5PUFycmF5LmlzQXJyYXkobS5oaXN0b3J5KT9tLmhpc3Rvcnkuc2xpY2UoLTE5KTpbXTtoaXN0b3J5LnB1c2goZXZlbnQpO20uaGlzdG9yeT1oaXN0b3J5fQphc3luYyBmdW5jdGlvbiBzdWJtaXRQcm9vZihmb3JtLGJ1dHRvbil7Y29uc3QgdGFza0lkPWZvcm0uZGF0YXNldC5pZCxraW5kPWZvcm0uZGF0YXNldC5raW5kLHQ9c3RydWN0dXJlZENsb25lKChzdGF0ZSgpLnRhc2tzfHxbXSkuZmluZCh4PT54LmlkPT09dGFza0lkKSksbT17Li4ubWV0YSh0KX0saXNEb25lPWtpbmQ9PT0nY29tcGxldGUnLG5vdGVWYWx1ZT1TdHJpbmcobmV3IEZvcm1EYXRhKGZvcm0pLmdldCgncHJvb2ZOb3RlJyl8fCcnKS50cmltKCkscGhvdG89Zm9ybS5lbGVtZW50cy5wcm9vZlBob3RvLmZpbGVzPy5bMF0sZmlsZXM9QXJyYXkuZnJvbShmb3JtLmVsZW1lbnRzLnByb29mRmlsZXMuZmlsZXN8fFtdKTtpZighbm90ZVZhbHVlKXJldHVybiBhcHAuc2hvd1RvYXN0KCfYp9mE2YXZhNin2K3YuNipINmF2LfZhNmI2KjYqScsaXNEb25lPyfYp9mD2KrYqCDZhtiq2YrYrNipINin2YTYpdmG2KzYp9iyLic6J9in2YPYqtioINmF2YTYp9it2LjYqSDYp9mE2K3YttmI2LEuJywnZXJyb3InKTtpZigoaXNEb25lP20ucmVxdWlyZUNvbXBsZXRpb25QaG90bzptLnJlcXVpcmVBdHRlbmRhbmNlUGhvdG8pJiYhcGhvdG8pcmV0dXJuIGFwcC5zaG93VG9hc3QoJ9i12YjYsdipINin2YTYpdir2KjYp9iqINmF2LfZhNmI2KjYqScsJ9in2YTYqtmC2Lcg2LXZiNix2Kkg2YXZhiDZg9in2YXZitix2Kcg2KfZhNmF2YjYqNin2YrZhCDZgtio2YQg2KfZhNiq2KPZg9mK2K8uJywnZXJyb3InKTtidXR0b24uZGlzYWJsZWQ9dHJ1ZTthcHAuc2V0U3luYygn2KzYp9ix2Yog2KfZhNiq2K3ZgtmCINmF2YYg2KfZhNmF2YjZgti5JywnbG9hZGluZycpO3RyeXtsZXQgcD1udWxsLGRpc3Q9bnVsbDtpZihtLnJlcXVpcmVMb2NhdGlvbiE9PWZhbHNlfHxtLnRhcmdldExhdCYmbS50YXJnZXRMbmcpcD1hd2FpdCBnZW8oKTtpZihwJiZtLnRhcmdldExhdCYmbS50YXJnZXRMbmcpe2Rpc3Q9ZGlzdGFuY2VNKHAubGF0LHAubG5nLE51bWJlcihtLnRhcmdldExhdCksTnVtYmVyKG0udGFyZ2V0TG5nKSk7aWYoZGlzdD5OdW1iZXIobS5yYWRpdXN8fDIwMCkpdGhyb3cgbmV3IEVycm9yKGDYo9mG2Kog2KjYudmK2K8g2LnZhiDZhdmI2YLYuSDYp9mE2YXZh9mF2KkgJHtkaXN0fSDZhdiq2LHYjCDZiNin2YTZhti32KfZgiDYp9mE2YXYs9mF2YjYrSAke051bWJlcihtLnJhZGl1c3x8MjAwKX0g2YXYqtixYCl9Y29uc3QgYXQ9bm93SXNvKCksZXZlbnQ9e3R5cGU6a2luZCxhdCx1c2VySWQ6YXBwLmdldFVzZXJJZCgpLHVzZXJOYW1lOmFwcC5nZXRVc2VyTmFtZSgpLGxhdDpwPy5sYXR8fCcnLGxuZzpwPy5sbmd8fCcnLGFjY3VyYWN5OnA/LmFjY3VyYWN5fHwnJyxkaXN0YW5jZTpkaXN0LG5vdGU6bm90ZVZhbHVlfTthcHBlbmRIaXN0b3J5KG0sZXZlbnQpO2lmKGlzRG9uZSl7bS5jb21wbGV0ZWRBdD1hdDttLmNvbXBsZXRpb25MYXQ9cD8ubGF0fHwnJzttLmNvbXBsZXRpb25Mbmc9cD8ubG5nfHwnJzttLmNvbXBsZXRpb25EaXN0YW5jZT1kaXN0O20uY29tcGxldGlvbk5vdGU9bm90ZVZhbHVlO20uc3RhdHVzPSdkb25lJzt0LmRvbmU9dHJ1ZTt0LmNvbXBsZXRlZEF0PWF0O3QuY29tcGxldGVkQnk9YXBwLmdldFVzZXJOYW1lKCl9ZWxzZXttLmF0dGVuZGVkQXQ9YXQ7bS5hdHRlbmRhbmNlTGF0PXA/LmxhdHx8Jyc7bS5hdHRlbmRhbmNlTG5nPXA/LmxuZ3x8Jyc7bS5hdHRlbmRhbmNlRGlzdGFuY2U9ZGlzdDttLmF0dGVuZGFuY2VOb3RlPW5vdGVWYWx1ZTttLnN0YXR1cz0nYXR0ZW5kZWQnfXQubm90ZT1hcHAucGFja1Rhc2tOb3RlKG5vdGUodCksbSk7dC51cGRhdGVkQXQ9YXQ7YXdhaXQgc2F2ZVJlY29yZCgndGFza3MnLHQpO2NvbnN0IGl0ZW1zPVtdO2lmKHBob3RvKWl0ZW1zLnB1c2goe21vZGU6J3VwbG9hZCcsZmlsZXM6W3Bob3RvXSx0eXBlOmlzRG9uZT8n2LXZiNix2Kkg2KXYq9io2KfYqiDYpdmG2KzYp9iyJzon2LXZiNix2Kkg2KXYq9io2KfYqiDYrdi22YjYsScsbmFtZTppc0RvbmU/J9i12YjYsdipINin2YTYpdmG2KzYp9iyJzon2LXZiNix2Kkg2KfZhNit2LbZiNixJyxub3RlOm5vdGVWYWx1ZX0pO2lmKGZpbGVzLmxlbmd0aClpdGVtcy5wdXNoKHttb2RlOid1cGxvYWQnLGZpbGVzLHR5cGU6aXNEb25lPyfZhdix2YHZgtin2Kog2KfZhNil2YbYrNin2LInOifZhdix2YHZgtin2Kog2KfZhNit2LbZiNixJyxuYW1lOicnLG5vdGU6bm90ZVZhbHVlfSk7Y29uc3QgY291bnQ9YXdhaXQgc2F2ZUF0dGFjaG1lbnRzKHQsaXRlbXMpO2FwcC5yZWZyZXNoVUkoKTtjbG9zZU1vZGFsKCk7cmVuZGVyKCk7YXBwLnNldFN5bmMoJ9iq2YUg2KrYs9is2YrZhCDYp9mE2LnZhdmE2YrYqScsJ3N1Y2Nlc3MnKTthcHAuc2hvd1RvYXN0KGlzRG9uZT8n2KrZhSDYpdmG2KzYp9iyINin2YTZhdmH2YXYqSc6J9iq2YUg2KrYo9mD2YrYryDYp9mE2K3YttmI2LEnLGAke2lzRG9uZT8n2LPZj9is2YQg2KfZhNil2YbYrNin2LInOifYs9mP2KzZhCDYp9mE2K3YttmI2LEnfSDYqNiq2KfYsdmK2K4g2YjZiNmC2Kog2KfZhNi52YXZhNmK2Kkke2NvdW50P2Ag2YjYsdmB2LkgJHtjb3VudH0g2YXYsdmB2YJgOicnfS5gLCdzdWNjZXNzJyl9Y2F0Y2goZXJyKXthcHAuc2V0U3luYygn2KrYudiw2LEg2KrYs9is2YrZhCDYp9mE2LnZhdmE2YrYqScsJ2Vycm9yJyk7YXBwLnNob3dUb2FzdCgn2KrYudiw2LEg2KfZhNiq2KPZg9mK2K8nLGVyci5tZXNzYWdlfHwn2K7Yt9ijINi62YrYsSDZhdiq2YjZgti5JywnZXJyb3InLDc1MDApfWZpbmFsbHl7YnV0dG9uLmRpc2FibGVkPWZhbHNlfX0KYXN5bmMgZnVuY3Rpb24gcmVvcGVuKGlkKXtjb25zdCB0PXN0cnVjdHVyZWRDbG9uZSgoc3RhdGUoKS50YXNrc3x8W10pLmZpbmQoeD0+eC5pZD09PWlkKSk7aWYoIXQpcmV0dXJuO2NvbnN0IG09ey4uLm1ldGEodCksc3RhdHVzOidvcGVuJyxyZW9wZW5lZEF0Om5vd0lzbygpfTthcHBlbmRIaXN0b3J5KG0se3R5cGU6J3Jlb3BlbicsYXQ6bS5yZW9wZW5lZEF0LHVzZXJJZDphcHAuZ2V0VXNlcklkKCksdXNlck5hbWU6YXBwLmdldFVzZXJOYW1lKCl9KTt0LmRvbmU9ZmFsc2U7dC5jb21wbGV0ZWRBdD0nJzt0LmNvbXBsZXRlZEJ5PScnO3Qubm90ZT1hcHAucGFja1Rhc2tOb3RlKG5vdGUodCksbSk7dC51cGRhdGVkQXQ9bm93SXNvKCk7YXdhaXQgc2F2ZVJlY29yZCgndGFza3MnLHQpO2FwcC5yZWZyZXNoVUkoKTtyZW5kZXIoKTthcHAuc2hvd1RvYXN0KCfYqtmF2Kog2KXYudin2K/YqSDZgdiq2K0g2KfZhNmF2YfZhdipJywn2LnYp9ivINin2YTYudiv2KfYryDZhNmE2LnZhdmEINit2LPYqCDYp9mE2YXZiNi52K8g2KfZhNmF2K3Yr9ivLicsJ3N1Y2Nlc3MnKX0KYXN5bmMgZnVuY3Rpb24gcmVtb3ZlVGFzayhpZCl7aWYoIWNvbmZpcm0oJ9iq2KPZg9mK2K8g2K3YsNmBINin2YTZhdmH2YXYqdifJykpcmV0dXJuO2NvbnN0IHQ9c3RydWN0dXJlZENsb25lKChzdGF0ZSgpLnRhc2tzfHxbXSkuZmluZCh4PT54LmlkPT09aWQpKTtpZighdClyZXR1cm47dC5kZWxldGVkPXRydWU7dC5kZWxldGVkQXQ9bm93SXNvKCk7dC51cGRhdGVkQXQ9bm93SXNvKCk7YXdhaXQgc2F2ZVJlY29yZCgndGFza3MnLHQpO2FwcC5yZWZyZXNoVUkoKTtjbG9zZU1vZGFsKCk7cmVuZGVyKCk7YXBwLnNob3dUb2FzdCgn2KrZhSDYrdiw2YEg2KfZhNmF2YfZhdipJywn2KrZhSDYqti52YTZitmFINin2YTZhdmH2YXYqSDZg9mF2K3YsNmI2YHYqS4nLCdzdWNjZXNzJyl9CmFzeW5jIGZ1bmN0aW9uIHJlbW92ZURvYyhpZCl7aWYoIWNvbmZpcm0oJ9it2LDZgSDYs9is2YQg2KfZhNmF2LHZgdmCINmF2YYg2KfZhNmF2YfZhdip2J8nKSlyZXR1cm47Y29uc3QgZD1zdHJ1Y3R1cmVkQ2xvbmUoKHN0YXRlKCkuZG9jc3x8W10pLmZpbmQoeD0+eC5pZD09PWlkKSk7aWYoIWQpcmV0dXJuO2QuZGVsZXRlZD10cnVlO2QuZGVsZXRlZEF0PW5vd0lzbygpO2QudXBkYXRlZEF0PW5vd0lzbygpO2F3YWl0IHNhdmVSZWNvcmQoJ2F0dGFjaG1lbnRzJyxkKTthcHAucmVmcmVzaFVJKCk7cmVuZGVyKCk7Y29uc3Qgb3BlbklkPSQoJ3RtTW9kYWxCb3gnKT8ucXVlcnlTZWxlY3RvcignW2RhdGEtaWRdJyk/LmRhdGFzZXQuaWQ7aWYob3BlbklkKWRldGFpbChvcGVuSWQpO2FwcC5zaG93VG9hc3QoJ9iq2YUg2K3YsNmBINin2YTZhdix2YHZgicsJ9iq2YUg2K3YsNmBINiz2KzZhCDYp9mE2YXYsdmB2YIg2YXZhiDYp9mE2YXZh9mF2KkuJywnc3VjY2VzcycpfQphc3luYyBmdW5jdGlvbiBzaGFyZShpZCl7CmNvbnN0IG9yaWdpbmFsPShzdGF0ZSgpLnRhc2tzfHxbXSkuZmluZCh4PT54LmlkPT09aWQpO2lmKCFvcmlnaW5hbClyZXR1cm47CmNvbnN0IHBvcHVwPXdpbmRvdy5vcGVuKCdhYm91dDpibGFuaycsJ19ibGFuaycpOwp0cnl7CmNvbnN0IHQ9c3RydWN0dXJlZENsb25lKG9yaWdpbmFsKSx0YXNrTGluaz1hd2FpdCBlbnN1cmVTaGFyZUxpbmsodCksYz1jYXNlUm93KHQuY2FzZUlkKSxjbGllbnQ9Y2xpZW50Um93KGM/LmNsaWVudElkKSxtPW1ldGEodCkscz10YXNrU3RhdHVzKHQpLGRvY3M9dGFza0RvY3ModC5pZCksbG9jPW0ubG9jYXRpb25Vcmx8fG1hcHNVcmwobS50YXJnZXRMYXQsbS50YXJnZXRMbmcpLGxpbmtzPWRvY3MubGVuZ3RoP2RvY3MubWFwKChkLGkpPT5gJHtpKzF9KSAke2QubmFtZXx8J9mF2LHZgdmCJ31cbiR7YXBwLmdldERvY1ZpZXdMaW5rKGQpfHxhcHAuZ2V0RG9jUHJldmlld0xpbmsoZCl8fCctJ31gKS5qb2luKCdcblxuJyk6J9mE2Kcg2KrZiNis2K8g2YXYsdmB2YLYp9iqJzsKY29uc3QgbWVzc2FnZT1g2KfZhNiz2YTYp9mFINi52YTZitmD2YXYjAoK2KrZg9mE2YrZgSDYudmF2YQg2YXZhiBMQVcgQWk6CgrYp9mE2YXZh9mF2Kk6ICR7dC50aXRsZXx8Jy0nfQrYp9mE2YXYs9ik2YjZhDogJHt1c2VyTmFtZSh0LmFzc2lnbmVkVG8pfHx0LnRvfHwnLSd9Ctin2YTYqtin2LHZitiuOiAke2FwcC5kYXRlVGV4dCh0LmRhdGUpfQrYp9mE2YjZgtiqOiAke20uc3RhcnRUaW1lfHwnLSd9INil2YTZiSAke20uZHVlVGltZXx8Jy0nfQrYp9mE2K3Yp9mE2Kk6ICR7cy5sYWJlbH0K2KfZhNij2YjZhNmI2YrYqTogJHt0LnByaW9yaXR5fHwnLSd9Ctin2YTZhdmI2YLYuTogJHttLmxvY2F0aW9uTmFtZXx8Jy0nfSR7bG9jP2AK2LHYp9io2Lcg2KfZhNmF2YjZgti5OiAke2xvY31gOicnfQrYp9mE2YXZhNin2K3YuNin2Ko6ICR7bm90ZSh0KXx8Jy0nfSR7Yz9gCgrYqNmK2KfZhtin2Kog2KfZhNmC2LbZitipOgrYp9mE2LHZgtmFINin2YTYotmE2Yo6ICR7Yy5hdXRvTm98fCctJ30K2LHZgtmFINin2YTZgti22YrYqTogJHtjLmNhc2VOb3x8Jy0nfQrYp9mE2LnZhdmK2YQ6ICR7Y2xpZW50Py5uYW1lfHwnLSd9Ctin2YTYrti12YU6ICR7Yy5vcHBvbmVudHx8Jy0nfQrYp9mE2YXYrdmD2YXYqTogJHtjLmNvdXJ0fHwnLSd9YDonJ30KCtix2KfYqNi3INiq2YbZgdmK2LAg2KfZhNmF2YfZhdipINmE2YTZhdmG2K/ZiNioOgoke3Rhc2tMaW5rfQoK2KfZhNmF2LHZgdmC2KfYqiAoJHtkb2NzLmxlbmd0aH0pOgoke2xpbmtzfQoKTEFXIEFpYDsKY29uc3Qgd2E9J2h0dHBzOi8vd2EubWUvP3RleHQ9JytlbmNvZGVVUklDb21wb25lbnQobWVzc2FnZSk7CmlmKHBvcHVwKXBvcHVwLmxvY2F0aW9uLmhyZWY9d2E7ZWxzZSB3aW5kb3cub3Blbih3YSwnX2JsYW5rJywnbm9vcGVuZXInKQp9Y2F0Y2goZXJyKXtpZihwb3B1cClwb3B1cC5jbG9zZSgpO2FwcC5zaG93VG9hc3QoJ9iq2LnYsNixINil2YbYtNin2KEg2LHYp9io2Lcg2KfZhNmF2YbYr9mI2KgnLGVyci5tZXNzYWdlfHwn2K7Yt9ijINi62YrYsSDZhdiq2YjZgti5JywnZXJyb3InLDY1MDApfQp9CmZ1bmN0aW9uIHNoYXJlRG9jKGlkKXtjb25zdCBkPShzdGF0ZSgpLmRvY3N8fFtdKS5maW5kKHg9PnguaWQ9PT1pZCk7aWYoIWQpcmV0dXJuO2NvbnN0IG1lc3NhZ2U9YNin2YTYs9mE2KfZhSDYudmE2YrZg9mF2Ixcblxu2YXYsdmB2YI6ICR7ZC5uYW1lfHwnLSd9XG7Yp9mE2YbZiNi5OiAke2QudHlwZXx8ZC5taW1lVHlwZXx8Jy0nfVxu2KfZhNix2KfYqNi3OiAke2FwcC5nZXREb2NWaWV3TGluayhkKXx8YXBwLmdldERvY1ByZXZpZXdMaW5rKGQpfHwnLSd9XG5cbkxBVyBBaWA7d2luZG93Lm9wZW4oJ2h0dHBzOi8vd2EubWUvP3RleHQ9JytlbmNvZGVVUklDb21wb25lbnQobWVzc2FnZSksJ19ibGFuaycsJ25vb3BlbmVyJyl9CmZ1bmN0aW9uIHRpY2soKXtxYSgnW2RhdGEtdGFzay10aW1lcl0nKS5mb3JFYWNoKGVsPT57Y29uc3QgdD0oc3RhdGUoKS50YXNrc3x8W10pLmZpbmQoeD0+eC5pZD09PWVsLmRhdGFzZXQudGFza1RpbWVyKTtpZih0KWVsLnRleHRDb250ZW50PXRhc2tTdGF0dXModCkubGFiZWx9KTtyZW5kZXJTdW1tYXJ5KCk7cmVuZGVyRmlsdGVycygpfQpyb290LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxhc3luYyBlPT57Y29uc3QgY2FzZU9wdD1lLnRhcmdldC5jbG9zZXN0KCdbZGF0YS10bS1jYXNlLWlkXScpO2lmKGNhc2VPcHQpe2NvbnN0IHBpY2tlcj1jYXNlT3B0LmNsb3Nlc3QoJ1tkYXRhLXRtLWNhc2UtcGlja2VyXScpO3BpY2tlci5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPWhpZGRlbl0nKS52YWx1ZT1jYXNlT3B0LmRhdGFzZXQudG1DYXNlSWQ7cGlja2VyLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRtLWNhc2Utc2VhcmNoXScpLnZhbHVlPWNhc2VPcHQuZGF0YXNldC50bUNhc2VMYWJlbDtwaWNrZXIuY2xhc3NMaXN0LnJlbW92ZSgnb3BlbicpO3JldHVybn1jb25zdCBlbD1lLnRhcmdldC5jbG9zZXN0KCdbZGF0YS10bS1hY3Rpb25dJyk7aWYoIWVsKXJldHVybjtjb25zdCBhPWVsLmRhdGFzZXQudG1BY3Rpb24saWQ9ZWwuZGF0YXNldC5pZDtpZihhPT09J25ldycpZm9ybSgpO2Vsc2UgaWYoYT09PSdvcGVuJylkZXRhaWwoaWQpO2Vsc2UgaWYoYT09PSdlZGl0Jylmb3JtKGlkKTtlbHNlIGlmKGE9PT0nY2xvc2UnKWNsb3NlTW9kYWwoKTtlbHNlIGlmKGE9PT0nZmlsdGVyJyl7ZmlsdGVyPWVsLmRhdGFzZXQuZmlsdGVyO3JlbmRlcigpfWVsc2UgaWYoYT09PSdyZWZyZXNoJyl7YXBwLnJlZnJlc2hEYXRhKCl9ZWxzZSBpZihhPT09J3NoYXJlJylhd2FpdCBzaGFyZShpZCk7ZWxzZSBpZihhPT09J2NoZWNraW4nKXByb29mTW9kYWwoaWQsJ2NoZWNraW4nKTtlbHNlIGlmKGE9PT0nY29tcGxldGUnKXByb29mTW9kYWwoaWQsJ2NvbXBsZXRlJyk7ZWxzZSBpZihhPT09J3Jlb3BlbicpYXdhaXQgcmVvcGVuKGlkKTtlbHNlIGlmKGE9PT0nZGVsZXRlJylhd2FpdCByZW1vdmVUYXNrKGlkKTtlbHNlIGlmKGE9PT0nY2FwdHVyZS10YXJnZXQnKWF3YWl0IGNhcHR1cmVUYXJnZXQoZWwpO2Vsc2UgaWYoYT09PSdsb2NhdGlvbi1zZWFyY2gnKWF3YWl0IHNlYXJjaE1hcExvY2F0aW9uKCk7ZWxzZSBpZihhPT09J2xvY2F0aW9uLXVzZS1yZWFkeScpYXdhaXQgdXNlUmVhZHlMb2NhdGlvbigpO2Vsc2UgaWYoYT09PSdsb2NhdGlvbi1zYXZlLXJlYWR5Jylhd2FpdCBzYXZlQ3VycmVudFJlYWR5TG9jYXRpb24oKTtlbHNlIGlmKGE9PT0nbG9jYXRpb24tcmVzdWx0Jyl7Y29uc3Qgcm93cz0kKCd0bUxvY2F0aW9uUmVzdWx0cycpPy5fcm93c3x8W10scj1yb3dzW051bWJlcihlbC5kYXRhc2V0LmluZGV4KV07aWYocil7dXBkYXRlTG9jYXRpb25GaWVsZHMoTnVtYmVyKHIubGF0KSxOdW1iZXIoci5sb24pLHtuYW1lOiQoJ3RtTG9jYXRpb25TZWFyY2gnKT8udmFsdWV8fHIubmFtZXx8JycsbWVzc2FnZTon2KrZhSDYp9iu2KrZitin2LEg2YbYqtmK2KzYqSDYp9mE2KjYrdirJ30pOyQoJ3RtTG9jYXRpb25SZXN1bHRzJykuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpfX1lbHNlIGlmKGE9PT0nYWRkLWF0dGFjaCcpe2F0dGFjaFNlcSsrOyQoJ3RtQXR0YWNoUm93cycpLmluc2VydEFkamFjZW50SFRNTCgnYmVmb3JlZW5kJyxhdHRhY2hSb3coYXR0YWNoU2VxKSl9ZWxzZSBpZihhPT09J3JlbW92ZS1hdHRhY2gnKWVsLmNsb3Nlc3QoJ1tkYXRhLWF0dGFjaC1yb3ddJyk/LnJlbW92ZSgpO2Vsc2UgaWYoYT09PSdkb2Mtb3Blbicpd2luZG93Lm9wZW4oZWwuZGF0YXNldC51cmwsJ19ibGFuaycsJ25vb3BlbmVyJyk7ZWxzZSBpZihhPT09J2RvYy1zaGFyZScpc2hhcmVEb2MoaWQpO2Vsc2UgaWYoYT09PSdkb2MtZGVsZXRlJylhd2FpdCByZW1vdmVEb2MoaWQpfSk7CnJvb3QuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsZT0+e2lmKGUudGFyZ2V0LmlkPT09J3RtTG9jYXRpb25TZWFyY2gnJiZlLmtleT09PSdFbnRlcicpe2UucHJldmVudERlZmF1bHQoKTtzZWFyY2hNYXBMb2NhdGlvbigpfX0pO3Jvb3QuYWRkRXZlbnRMaXN0ZW5lcignc3VibWl0Jyxhc3luYyBlPT57ZS5wcmV2ZW50RGVmYXVsdCgpO2lmKGUudGFyZ2V0LmlkPT09J3RtVGFza0Zvcm0nKWF3YWl0IHN1Ym1pdEZvcm0oZS50YXJnZXQsZS5zdWJtaXR0ZXIpO2Vsc2UgaWYoZS50YXJnZXQuaWQ9PT0ndG1Qcm9vZkZvcm0nKWF3YWl0IHN1Ym1pdFByb29mKGUudGFyZ2V0LGUuc3VibWl0dGVyKX0pOwpyb290LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JyxlPT57aWYoZS50YXJnZXQuaWQ9PT0ndG1TZWFyY2gnKXtzZWFyY2g9ZS50YXJnZXQudmFsdWU7cmVuZGVyTGlzdCgpfWlmKGUudGFyZ2V0Lm5hbWU9PT0ncmFkaXVzJyYmdG1SYWRpdXNDaXJjbGUpdG1SYWRpdXNDaXJjbGUuc2V0UmFkaXVzKGxvY2F0aW9uUmFkaXVzKGUudGFyZ2V0LmZvcm0pKTtpZihlLnRhcmdldC5tYXRjaGVzKCdbZGF0YS10bS1jYXNlLXNlYXJjaF0nKSl7Y29uc3QgcGlja2VyPWUudGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLXRtLWNhc2UtcGlja2VyXScpLHE9ZS50YXJnZXQudmFsdWUudG9Mb3dlckNhc2UoKTtwaWNrZXIuY2xhc3NMaXN0LmFkZCgnb3BlbicpO3FhKCdbZGF0YS10bS1jYXNlLWlkXScscGlja2VyKS5mb3JFYWNoKHg9PnguaGlkZGVuPXEmJiF4LmRhdGFzZXQudG1DYXNlU2VhcmNoLmluY2x1ZGVzKHEpKX19KTsKcm9vdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLGU9PntpZihlLnRhcmdldC5pZD09PSd0bUxvY2F0aW9uQ2F0ZWdvcnknKXJlbmRlckxvY2F0aW9uRGlyZWN0b3J5KCk7aWYoZS50YXJnZXQuaWQ9PT0ndG1SZWFkeUxvY2F0aW9uJyYmZS50YXJnZXQudmFsdWUpdXNlUmVhZHlMb2NhdGlvbigpO2lmKGUudGFyZ2V0Lm5hbWU/LmVuZHNXaXRoKCdNb2RlJykmJmUudGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLWF0dGFjaC1yb3ddJykpe2NvbnN0IHJvdz1lLnRhcmdldC5jbG9zZXN0KCdbZGF0YS1hdHRhY2gtcm93XScpO3FhKCdbZGF0YS1zb3VyY2VdJyxyb3cpLmZvckVhY2goeD0+eC5jbGFzc0xpc3QudG9nZ2xlKCdzaG93Jyx4LmRhdGFzZXQuc291cmNlPT09ZS50YXJnZXQudmFsdWUpKX19KTsKJCgndG1Nb2RhbCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxlPT57aWYoZS50YXJnZXQ9PT0kKCd0bU1vZGFsJykpY2xvc2VNb2RhbCgpfSk7CmZ1bmN0aW9uIG9wZW4oYWN0aW9uPScnLGlkPScnKXtpZihhY3Rpb249PT0nbmV3Jylmb3JtKCk7ZWxzZSBpZihhY3Rpb249PT0nb3BlbicpZGV0YWlsKGlkKTtlbHNlIGlmKGFjdGlvbj09PSdlZGl0Jylmb3JtKGlkKTtlbHNlIGlmKGFjdGlvbj09PSdzaGFyZScpc2hhcmUoaWQpO2Vsc2UgaWYoYWN0aW9uPT09J2NvbXBsZXRlJylwcm9vZk1vZGFsKGlkLCdjb21wbGV0ZScpO2Vsc2UgaWYoYWN0aW9uPT09J2RlbGV0ZScpcmVtb3ZlVGFzayhpZCk7cmVuZGVyKCl9CmZ1bmN0aW9uIGRlc3Ryb3koKXtjbGVhckludGVydmFsKHRpbWVyKX0KdGltZXI9c2V0SW50ZXJ2YWwoKCk9PntyZW5kZXJMaXN0KCk7dGljaygpfSwzMDAwMCk7cmVuZGVyKCk7d2luZG93LkxBV0FJX1RBU0tTPXtvcGVuLHJlZnJlc2g6cmVuZGVyLHRpY2ssZGVzdHJveX07Cn0pKCk7