3NCUbh7cABzRyEMEXAcGCAozSuxvUTf75ms · data · 2.7c767379.chunk.js_32
{
    "2.7c767379.chunk.js_32": "base64:ZHNhIixoYXNoOiJzaGExIixpZDoiIn0sc2hhMjU2OntzaWduOiJlY2RzYSIsaGFzaDoic2hhMjU2IixpZDoiIn0sc2hhMjI0OntzaWduOiJlY2RzYSIsaGFzaDoic2hhMjI0IixpZDoiIn0sc2hhMzg0OntzaWduOiJlY2RzYSIsaGFzaDoic2hhMzg0IixpZDoiIn0sc2hhNTEyOntzaWduOiJlY2RzYSIsaGFzaDoic2hhNTEyIixpZDoiIn0sIkRTQS1TSEEiOntzaWduOiJkc2EiLGhhc2g6InNoYTEiLGlkOiIifSwiRFNBLVNIQTEiOntzaWduOiJkc2EiLGhhc2g6InNoYTEiLGlkOiIifSxEU0E6e3NpZ246ImRzYSIsaGFzaDoic2hhMSIsaWQ6IiJ9LCJEU0EtV0lUSC1TSEEyMjQiOntzaWduOiJkc2EiLGhhc2g6InNoYTIyNCIsaWQ6IiJ9LCJEU0EtU0hBMjI0Ijp7c2lnbjoiZHNhIixoYXNoOiJzaGEyMjQiLGlkOiIifSwiRFNBLVdJVEgtU0hBMjU2Ijp7c2lnbjoiZHNhIixoYXNoOiJzaGEyNTYiLGlkOiIifSwiRFNBLVNIQTI1NiI6e3NpZ246ImRzYSIsaGFzaDoic2hhMjU2IixpZDoiIn0sIkRTQS1XSVRILVNIQTM4NCI6e3NpZ246ImRzYSIsaGFzaDoic2hhMzg0IixpZDoiIn0sIkRTQS1TSEEzODQiOntzaWduOiJkc2EiLGhhc2g6InNoYTM4NCIsaWQ6IiJ9LCJEU0EtV0lUSC1TSEE1MTIiOntzaWduOiJkc2EiLGhhc2g6InNoYTUxMiIsaWQ6IiJ9LCJEU0EtU0hBNTEyIjp7c2lnbjoiZHNhIixoYXNoOiJzaGE1MTIiLGlkOiIifSwiRFNBLVJJUEVNRDE2MCI6e3NpZ246ImRzYSIsaGFzaDoicm1kMTYwIixpZDoiIn0scmlwZW1kMTYwV2l0aFJTQTp7c2lnbjoicnNhIixoYXNoOiJybWQxNjAiLGlkOiIzMDIxMzAwOTA2MDUyYjI0MDMwMjAxMDUwMDA0MTQifSwiUlNBLVJJUEVNRDE2MCI6e3NpZ246InJzYSIsaGFzaDoicm1kMTYwIixpZDoiMzAyMTMwMDkwNjA1MmIyNDAzMDIwMTA1MDAwNDE0In0sbWQ1V2l0aFJTQUVuY3J5cHRpb246e3NpZ246InJzYSIsaGFzaDoibWQ1IixpZDoiMzAyMDMwMGMwNjA4MmE4NjQ4ODZmNzBkMDIwNTA1MDAwNDEwIn0sIlJTQS1NRDUiOntzaWduOiJyc2EiLGhhc2g6Im1kNSIsaWQ6IjMwMjAzMDBjMDYwODJhODY0ODg2ZjcwZDAyMDUwNTAwMDQxMCJ9fX0sZnVuY3Rpb24oZSx0LHIpe3QucGJrZGYyPXIoNTY2KSx0LnBia2RmMlN5bmM9cigzMjIpfSxmdW5jdGlvbihlLHQscil7KGZ1bmN0aW9uKHQpe3ZhciByPU1hdGgucG93KDIsMzApLTE7ZnVuY3Rpb24gbihlLHIpe2lmKCJzdHJpbmciIT09dHlwZW9mIGUmJiF0LmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IocisiIG11c3QgYmUgYSBidWZmZXIgb3Igc3RyaW5nIil9ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxpLG8pe2lmKG4oZSwiUGFzc3dvcmQiKSxuKHQsIlNhbHQiKSwibnVtYmVyIiE9PXR5cGVvZiBpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdGlvbnMgbm90IGEgbnVtYmVyIik7aWYoaTwwKXRocm93IG5ldyBUeXBlRXJyb3IoIkJhZCBpdGVyYXRpb25zIik7aWYoIm51bWJlciIhPT10eXBlb2Ygbyl0aHJvdyBuZXcgVHlwZUVycm9yKCJLZXkgbGVuZ3RoIG5vdCBhIG51bWJlciIpO2lmKG88MHx8bz5yfHxvIT09byl0aHJvdyBuZXcgVHlwZUVycm9yKCJCYWQga2V5IGxlbmd0aCIpfX0pLmNhbGwodGhpcyxyKDE4KS5CdWZmZXIpfSxmdW5jdGlvbihlLHQscil7KGZ1bmN0aW9uKHQpe3ZhciByO3QuYnJvd3Nlcj9yPSJ1dGYtOCI6cj1wYXJzZUludCh0LnZlcnNpb24uc3BsaXQoIi4iKVswXS5zbGljZSgxKSwxMCk+PTY/InV0Zi04IjoiYmluYXJ5IjtlLmV4cG9ydHM9cn0pLmNhbGwodGhpcyxyKDQ2KSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDMxNyksaT1yKDIxMCksbz1yKDIxMSksYT1yKDMyMCkscz1yKDMyMSksdT1yKDgpLkJ1ZmZlcixjPXUuYWxsb2MoMTI4KSxmPXttZDU6MTYsc2hhMToyMCxzaGEyMjQ6Mjgsc2hhMjU2OjMyLHNoYTM4NDo0OCxzaGE1MTI6NjQscm1kMTYwOjIwLHJpcGVtZDE2MDoyMH07ZnVuY3Rpb24gbChlLHQscil7dmFyIGE9ZnVuY3Rpb24oZSl7cmV0dXJuInJtZDE2MCI9PT1lfHwicmlwZW1kMTYwIj09PWU/ZnVuY3Rpb24oZSl7cmV0dXJuKG5ldyBpKS51cGRhdGUoZSkuZGlnZXN0KCl9OiJtZDUiPT09ZT9uOmZ1bmN0aW9uKHQpe3JldHVybiBvKGUpLnVwZGF0ZSh0KS5kaWdlc3QoKX19KGUpLHM9InNoYTUxMiI9PT1lfHwic2hhMzg0Ij09PWU/MTI4OjY0O3QubGVuZ3RoPnM/dD1hKHQpOnQubGVuZ3RoPHMmJih0PXUuY29uY2F0KFt0LGNdLHMpKTtmb3IodmFyIGw9dS5hbGxvY1Vuc2FmZShzK2ZbZV0pLGg9dS5hbGxvY1Vuc2FmZShzK2ZbZV0pLHA9MDtwPHM7cCsrKWxbcF09NTRedFtwXSxoW3BdPTkyXnRbcF07dmFyIGQ9dS5hbGxvY1Vuc2FmZShzK3IrNCk7bC5jb3B5KGQsMCwwLHMpLHRoaXMuaXBhZDE9ZCx0aGlzLmlwYWQyPWwsdGhpcy5vcGFkPWgsdGhpcy5hbGc9ZSx0aGlzLmJsb2Nrc2l6ZT1zLHRoaXMuaGFzaD1hLHRoaXMuc2l6ZT1mW2VdfWwucHJvdG90eXBlLnJ1bj1mdW5jdGlvbihlLHQpe3JldHVybiBlLmNvcHkodCx0aGlzLmJsb2Nrc2l6ZSksdGhpcy5oYXNoKHQpLmNvcHkodGhpcy5vcGFkLHRoaXMuYmxvY2tzaXplKSx0aGlzLmhhc2godGhpcy5vcGFkKX0sZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyLG4saSl7YShlLHQscixuKSx1LmlzQnVmZmVyKGUpfHwoZT11LmZyb20oZSxzKSksdS5pc0J1ZmZlcih0KXx8KHQ9dS5mcm9tKHQscykpO3ZhciBvPW5ldyBsKGk9aXx8InNoYTEiLGUsdC5sZW5ndGgpLGM9dS5hbGxvY1Vuc2FmZShuKSxoPXUuYWxsb2NVbnNhZmUodC5sZW5ndGgrNCk7dC5jb3B5KGgsMCwwLHQubGVuZ3RoKTtmb3IodmFyIHA9MCxkPWZbaV0seT1NYXRoLmNlaWwobi9kKSxnPTE7Zzw9eTtnKyspe2gud3JpdGVVSW50MzJCRShnLHQubGVuZ3RoKTtmb3IodmFyIHY9by5ydW4oaCxvLmlwYWQxKSxtPXYsYj0xO2I8cjtiKyspe209by5ydW4obSxvLmlwYWQyKTtmb3IodmFyIF89MDtfPGQ7XysrKXZbX11ePW1bX119di5jb3B5KGMscCkscCs9ZH1yZXR1cm4gY319LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEyOSksaT1yKDgpLkJ1ZmZlcixvPXIoMzI0KTtmdW5jdGlvbiBhKGUpe3ZhciB0PWUuX2NpcGhlci5lbmNyeXB0QmxvY2tSYXcoZS5fcHJldik7cmV0dXJuIG8oZS5fcHJldiksdH10LmVuY3J5cHQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj1NYXRoLmNlaWwodC5sZW5ndGgvMTYpLG89ZS5fY2FjaGUubGVuZ3RoO2UuX2NhY2hlPWkuY29uY2F0KFtlLl9jYWNoZSxpLmFsbG9jVW5zYWZlKDE2KnIpXSk7Zm9yKHZhciBzPTA7czxyO3MrKyl7dmFyIHU9YShlKSxjPW8rMTYqcztlLl9jYWNoZS53cml0ZVVJbnQzMkJFKHVbMF0sYyswKSxlLl9jYWNoZS53cml0ZVVJbnQzMkJFKHVbMV0sYys0KSxlLl9jYWNoZS53cml0ZVVJbnQzMkJFKHVbMl0sYys4KSxlLl9jYWNoZS53cml0ZVVJbnQzMkJFKHVbM10sYysxMil9dmFyIGY9ZS5fY2FjaGUuc2xpY2UoMCx0Lmxlbmd0aCk7cmV0dXJuIGUuX2NhY2hlPWUuX2NhY2hlLnNsaWNlKHQubGVuZ3RoKSxuKHQsZil9fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtmb3IodmFyIHQscj1lLmxlbmd0aDtyLS07KXtpZigyNTUhPT0odD1lLnJlYWRVSW50OChyKSkpe3QrKyxlLndyaXRlVUludDgodCxyKTticmVha31lLndyaXRlVUludDgoMCxyKX19fSxmdW5jdGlvbihlKXtlLmV4cG9ydHM9eyJhZXMtMTI4LWVjYiI6e2NpcGhlcjoiQUVTIixrZXk6MTI4LGl2OjAsbW9kZToiRUNCIix0eXBlOiJibG9jayJ9LCJhZXMtMTkyLWVjYiI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjAsbW9kZToiRUNCIix0eXBlOiJibG9jayJ9LCJhZXMtMjU2LWVjYiI6e2NpcGhlcjoiQUVTIixrZXk6MjU2LGl2OjAsbW9kZToiRUNCIix0eXBlOiJibG9jayJ9LCJhZXMtMTI4LWNiYyI6e2NpcGhlcjoiQUVTIixrZXk6MTI4LGl2OjE2LG1vZGU6IkNCQyIsdHlwZToiYmxvY2sifSwiYWVzLTE5Mi1jYmMiOntjaXBoZXI6IkFFUyIsa2V5OjE5MixpdjoxNixtb2RlOiJDQkMiLHR5cGU6ImJsb2NrIn0sImFlcy0yNTYtY2JjIjp7Y2lwaGVyOiJBRVMiLGtleToyNTYsaXY6MTYsbW9kZToiQ0JDIix0eXBlOiJibG9jayJ9LGFlczEyODp7Y2lwaGVyOiJBRVMiLGtleToxMjgsaXY6MTYsbW9kZToiQ0JDIix0eXBlOiJibG9jayJ9LGFlczE5Mjp7Y2lwaGVyOiJBRVMiLGtleToxOTIsaXY6MTYsbW9kZToiQ0JDIix0eXBlOiJibG9jayJ9LGFlczI1Njp7Y2lwaGVyOiJBRVMiLGtleToyNTYsaXY6MTYsbW9kZToiQ0JDIix0eXBlOiJibG9jayJ9LCJhZXMtMTI4LWNmYiI6e2NpcGhlcjoiQUVTIixrZXk6MTI4LGl2OjE2LG1vZGU6IkNGQiIsdHlwZToic3RyZWFtIn0sImFlcy0xOTItY2ZiIjp7Y2lwaGVyOiJBRVMiLGtleToxOTIsaXY6MTYsbW9kZToiQ0ZCIix0eXBlOiJzdHJlYW0ifSwiYWVzLTI1Ni1jZmIiOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjoxNixtb2RlOiJDRkIiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTI4LWNmYjgiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxNixtb2RlOiJDRkI4Iix0eXBlOiJzdHJlYW0ifSwiYWVzLTE5Mi1jZmI4Ijp7Y2lwaGVyOiJBRVMiLGtleToxOTIsaXY6MTYsbW9kZToiQ0ZCOCIsdHlwZToic3RyZWFtIn0sImFlcy0yNTYtY2ZiOCI6e2NpcGhlcjoiQUVTIixrZXk6MjU2LGl2OjE2LG1vZGU6IkNGQjgiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTI4LWNmYjEiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxNixtb2RlOiJDRkIxIix0eXBlOiJzdHJlYW0ifSwiYWVzLTE5Mi1jZmIxIjp7Y2lwaGVyOiJBRVMiLGtleToxOTIsaXY6MTYsbW9kZToiQ0ZCMSIsdHlwZToic3RyZWFtIn0sImFlcy0yNTYtY2ZiMSI6e2NpcGhlcjoiQUVTIixrZXk6MjU2LGl2OjE2LG1vZGU6IkNGQjEiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTI4LW9mYiI6e2NpcGhlcjoiQUVTIixrZXk6MTI4LGl2OjE2LG1vZGU6Ik9GQiIsdHlwZToic3RyZWFtIn0sImFlcy0xOTItb2ZiIjp7Y2lwaGVyOiJBRVMiLGtleToxOTIsaXY6MTYsbW9kZToiT0ZCIix0eXBlOiJzdHJlYW0ifSwiYWVzLTI1Ni1vZmIiOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjoxNixtb2RlOiJPRkIiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTI4LWN0ciI6e2NpcGhlcjoiQUVTIixrZXk6MTI4LGl2OjE2LG1vZGU6IkNUUiIsdHlwZToic3RyZWFtIn0sImFlcy0xOTItY3RyIjp7Y2lwaGVyOiJBRVMiLGtleToxOTIsaXY6MTYsbW9kZToiQ1RSIix0eXBlOiJzdHJlYW0ifSwiYWVzLTI1Ni1jdHIiOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjoxNixtb2RlOiJDVFIiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTI4LWdjbSI6e2NpcGhlcjoiQUVTIixrZXk6MTI4LGl2OjEyLG1vZGU6IkdDTSIsdHlwZToiYXV0aCJ9LCJhZXMtMTkyLWdjbSI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjEyLG1vZGU6IkdDTSIsdHlwZToiYXV0aCJ9LCJhZXMtMjU2LWdjbSI6e2NpcGhlcjoiQUVTIixrZXk6MjU2LGl2OjEyLG1vZGU6IkdDTSIsdHlwZToiYXV0aCJ9fX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTU4KSxpPXIoOCkuQnVmZmVyLG89cig3OCksYT1yKDcpLHM9cig1ODEpLHU9cigxMjkpLGM9cigzMjQpO2Z1bmN0aW9uIGYoZSx0LHIsYSl7by5jYWxsKHRoaXMpO3ZhciB1PWkuYWxsb2MoNCwwKTt0aGlzLl9jaXBoZXI9bmV3IG4uQUVTKHQpO3ZhciBmPXRoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2sodSk7dGhpcy5fZ2hhc2g9bmV3IHMoZikscj1mdW5jdGlvbihlLHQscil7aWYoMTI9PT10Lmxlbmd0aClyZXR1cm4gZS5fZmluSUQ9aS5jb25jYXQoW3QsaS5mcm9tKFswLDAsMCwxXSldKSxpLmNvbmNhdChbdCxpLmZyb20oWzAsMCwwLDJdKV0pO3ZhciBuPW5ldyBzKHIpLG89dC5sZW5ndGgsYT1vJTE2O24udXBkYXRlKHQpLGEmJihhPTE2LWEsbi51cGRhdGUoaS5hbGxvYyhhLDApKSksbi51cGRhdGUoaS5hbGxvYyg4LDApKTt2YXIgdT04Km8sZj1pLmFsbG9jKDgpO2Yud3JpdGVVSW50QkUodSwwLDgpLG4udXBkYXRlKGYpLGUuX2ZpbklEPW4uc3RhdGU7dmFyIGw9aS5mcm9tKGUuX2ZpbklEKTtyZXR1cm4gYyhsKSxsfSh0aGlzLHIsZiksdGhpcy5fcHJldj1pLmZyb20ociksdGhpcy5fY2FjaGU9aS5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9zZWNDYWNoZT1pLmFsbG9jVW5zYWZlKDApLHRoaXMuX2RlY3J5cHQ9YSx0aGlzLl9hbGVuPTAsdGhpcy5fbGVuPTAsdGhpcy5fbW9kZT1lLHRoaXMuX2F1dGhUYWc9bnVsbCx0aGlzLl9jYWxsZWQ9ITF9YShmLG8pLGYucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oZSl7aWYoIXRoaXMuX2NhbGxlZCYmdGhpcy5fYWxlbil7dmFyIHQ9MTYtdGhpcy5fYWxlbiUxNjt0PDE2JiYodD1pLmFsbG9jKHQsMCksdGhpcy5fZ2hhc2gudXBkYXRlKHQpKX10aGlzLl9jYWxsZWQ9ITA7dmFyIHI9dGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsZSk7cmV0dXJuIHRoaXMuX2RlY3J5cHQ/dGhpcy5fZ2hhc2gudXBkYXRlKGUpOnRoaXMuX2doYXNoLnVwZGF0ZShyKSx0aGlzLl9sZW4rPWUubGVuZ3RoLHJ9LGYucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe2lmKHRoaXMuX2RlY3J5cHQmJiF0aGlzLl9hdXRoVGFnKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgc3RhdGUgb3IgdW5hYmxlIHRvIGF1dGhlbnRpY2F0ZSBkYXRhIik7dmFyIGU9dSh0aGlzLl9naGFzaC5maW5hbCg4KnRoaXMuX2FsZW4sOCp0aGlzLl9sZW4pLHRoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2sodGhpcy5fZmluSUQpKTtpZih0aGlzLl9kZWNyeXB0JiZmdW5jdGlvbihlLHQpe3ZhciByPTA7ZS5sZW5ndGghPT10Lmxlbmd0aCYmcisrO2Zvcih2YXIgbj1NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCksaT0wO2k8bjsrK2kpcis9ZVtpXV50W2ldO3JldHVybiByfShlLHRoaXMuX2F1dGhUYWcpKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgc3RhdGUgb3IgdW5hYmxlIHRvIGF1dGhlbnRpY2F0ZSBkYXRhIik7dGhpcy5fYXV0aFRhZz1lLHRoaXMuX2NpcGhlci5zY3J1YigpfSxmLnByb3RvdHlwZS5nZXRBdXRoVGFnPWZ1bmN0aW9uKCl7aWYodGhpcy5fZGVjcnlwdHx8IWkuaXNCdWZmZXIodGhpcy5fYXV0aFRhZykpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0aW5nIHRvIGdldCBhdXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpO3JldHVybiB0aGlzLl9hdXRoVGFnfSxmLnByb3RvdHlwZS5zZXRBdXRoVGFnPWZ1bmN0aW9uKGUpe2lmKCF0aGlzLl9kZWNyeXB0KXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBzZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKTt0aGlzLl9hdXRoVGFnPWV9LGYucHJvdG90eXBlLnNldEFBRD1mdW5jdGlvbihlKXtpZih0aGlzLl9jYWxsZWQpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0aW5nIHRvIHNldCBBQUQgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKTt0aGlzLl9naGFzaC51cGRhdGUoZSksdGhpcy5fYWxlbis9ZS5sZW5ndGh9LGUuZXhwb3J0cz1mfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxNTgpLGk9cig4KS5CdWZmZXIsbz1yKDc4KTtmdW5jdGlvbiBhKGUsdCxyLGEpe28uY2FsbCh0aGlzKSx0aGlzLl9jaXBoZXI9bmV3IG4uQUVTKHQpLHRoaXMuX3ByZXY9aS5mcm9tKHIpLHRoaXMuX2NhY2hlPWkuYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9aS5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PWEsdGhpcy5fbW9kZT1lfXIoNykoYSxvKSxhLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9tb2RlLmVuY3J5cHQodGhpcyxlLHRoaXMuX2RlY3J5cHQpfSxhLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt0aGlzLl9jaXBoZXIuc2NydWIoKX0sZS5leHBvcnRzPWF9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEwNCk7ZS5leHBvcnRzPW0sbS5zaW1wbGVTaWV2ZT1nLG0uZmVybWF0VGVzdD12O3ZhciBpPXIoMjQpLG89bmV3IGkoMjQpLGE9bmV3KHIoMzI5KSkscz1uZXcgaSgxKSx1PW5ldyBpKDIpLGM9bmV3IGkoNSksZj0obmV3IGkoMTYpLG5ldyBpKDgpLG5ldyBpKDEwKSksbD1uZXcgaSgzKSxoPShuZXcgaSg3KSxuZXcgaSgxMSkpLHA9bmV3IGkoNCksZD0obmV3IGkoMTIpLG51bGwpO2Z1bmN0aW9uIHkoKXtpZihudWxsIT09ZClyZXR1cm4gZDt2YXIgZT1bXTtlWzBdPTI7Zm9yKHZhciB0PTEscj0zO3I8MTA0ODU3NjtyKz0yKXtmb3IodmFyIG49TWF0aC5jZWlsKE1hdGguc3FydChyKSksaT0wO2k8dCYmZVtpXTw9biYmciVlW2ldIT09MDtpKyspO3QhPT1pJiZlW2ldPD1ufHwoZVt0KytdPXIpfXJldHVybiBkPWUsZX1mdW5jdGlvbiBnKGUpe2Zvcih2YXIgdD15KCkscj0wO3I8dC5sZW5ndGg7cisrKWlmKDA9PT1lLm1vZG4odFtyXSkpcmV0dXJuIDA9PT1lLmNtcG4odFtyXSk7cmV0dXJuITB9ZnVuY3Rpb24gdihlKXt2YXIgdD1pLm1vbnQoZSk7cmV0dXJuIDA9PT11LnRvUmVkKHQpLnJlZFBvdyhlLnN1Ym4oMSkpLmZyb21SZWQoKS5jbXBuKDEpfWZ1bmN0aW9uIG0oZSx0KXtpZihlPDE2KXJldHVybiBuZXcgaSgyPT09dHx8NT09PXQ/WzE0MCwxMjNdOlsxNDAsMzldKTt2YXIgcixkO2Zvcih0PW5ldyBpKHQpOzspe2ZvcihyPW5ldyBpKG4oTWF0aC5jZWlsKGUvOCkpKTtyLmJpdExlbmd0aCgpPmU7KXIuaXNocm4oMSk7aWYoci5pc0V2ZW4oKSYmci5pYWRkKHMpLHIudGVzdG4oMSl8fHIuaWFkZCh1KSx0LmNtcCh1KSl7aWYoIXQuY21wKGMpKWZvcig7ci5tb2QoZikuY21wKGwpOylyLmlhZGQocCl9ZWxzZSBmb3IoO3IubW9kKG8pLmNtcChoKTspci5pYWRkKHApO2lmKGcoZD1yLnNocm4oMSkpJiZnKHIpJiZ2KGQpJiZ2KHIpJiZhLnRlc3QoZCkmJmEudGVzdChyKSlyZXR1cm4gcn19fSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyNCksaT1yKDIxNik7ZnVuY3Rpb24gbyhlKXt0aGlzLnJhbmQ9ZXx8bmV3IGkuUmFuZH1lLmV4cG9ydHM9byxvLmNyZWF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IG8oZSl9LG8ucHJvdG90eXBlLl9yYW5kYmVsb3c9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5iaXRMZW5ndGgoKSxyPU1hdGguY2VpbCh0LzgpO2Rve3ZhciBpPW5ldyBuKHRoaXMucmFuZC5nZW5lcmF0ZShyKSl9d2hpbGUoaS5jbXAoZSk+PTApO3JldHVybiBpfSxvLnByb3RvdHlwZS5fcmFuZHJhbmdlPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dC5zdWIoZSk7cmV0dXJuIGUuYWRkKHRoaXMuX3JhbmRiZWxvdyhyKSl9LG8ucHJvdG90eXBlLnRlc3Q9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPWUuYml0TGVuZ3RoKCksbz1uLm1vbnQoZSksYT1uZXcgbigxKS50b1JlZChvKTt0fHwodD1NYXRoLm1heCgxLGkvNDh8MCkpO2Zvcih2YXIgcz1lLnN1Ym4oMSksdT0wOyFzLnRlc3RuKHUpO3UrKyk7Zm9yKHZhciBjPWUuc2hybih1KSxmPXMudG9SZWQobyk7dD4wO3QtLSl7dmFyIGw9dGhpcy5fcmFuZHJhbmdlKG5ldyBuKDIpLHMpO3ImJnIobCk7dmFyIGg9bC50b1JlZChvKS5yZWRQb3coYyk7aWYoMCE9PWguY21wKGEpJiYwIT09aC5jbXAoZikpe2Zvcih2YXIgcD0xO3A8dTtwKyspe2lmKDA9PT0oaD1oLnJlZFNxcigpKS5jbXAoYSkpcmV0dXJuITE7aWYoMD09PWguY21wKGYpKWJyZWFrfWlmKHA9PT11KXJldHVybiExfX1yZXR1cm4hMH0sby5wcm90b3R5cGUuZ2V0RGl2aXNvcj1mdW5jdGlvbihlLHQpe3ZhciByPWUuYml0TGVuZ3RoKCksaT1uLm1vbnQoZSksbz1uZXcgbigxKS50b1JlZChpKTt0fHwodD1NYXRoLm1heCgxLHIvNDh8MCkpO2Zvcih2YXIgYT1lLnN1Ym4oMSkscz0wOyFhLnRlc3RuKHMpO3MrKyk7Zm9yKHZhciB1PWUuc2hybihzKSxjPWEudG9SZWQoaSk7dD4wO3QtLSl7dmFyIGY9dGhpcy5fcmFuZHJhbmdlKG5ldyBuKDIpLGEpLGw9ZS5nY2QoZik7aWYoMCE9PWwuY21wbigxKSlyZXR1cm4gbDt2YXIgaD1mLnRvUmVkKGkpLnJlZFBvdyh1KTtpZigwIT09aC5jbXAobykmJjAhPT1oLmNtcChjKSl7Zm9yKHZhciBwPTE7cDxzO3ArKyl7aWYoMD09PShoPWgucmVkU3FyKCkpLmNtcChvKSlyZXR1cm4gaC5mcm9tUmVkKCkuc3VibigxKS5nY2QoZSk7aWYoMD09PWguY21wKGMpKWJyZWFrfWlmKHA9PT1zKXJldHVybihoPWgucmVkU3FyKCkpLmZyb21SZWQoKS5zdWJuKDEpLmdjZChlKX19cmV0dXJuITF9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXQ7ZnVuY3Rpb24gaShlKXtyZXR1cm4gMT09PWUubGVuZ3RoPyIwIitlOmV9ZnVuY3Rpb24gbyhlKXtmb3IodmFyIHQ9IiIscj0wO3I8ZS5sZW5ndGg7cisrKXQrPWkoZVtyXS50b1N0cmluZygxNikpO3JldHVybiB0fW4udG9BcnJheT1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGUuc2xpY2UoKTtpZighZSlyZXR1cm5bXTt2YXIgcj1bXTtpZigic3RyaW5nIiE9PXR5cGVvZiBlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKylyW25dPTB8ZVtuXTtyZXR1cm4gcn1pZigiaGV4Ij09PXQpZm9yKChlPWUucmVwbGFjZSgvW15hLXowLTldKy9naSwiIikpLmxlbmd0aCUyIT09MCYmKGU9IjAiK2UpLG49MDtuPGUubGVuZ3RoO24rPTIpci5wdXNoKHBhcnNlSW50KGVbbl0rZVtuKzFdLDE2KSk7ZWxzZSBmb3Iobj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lLmNoYXJDb2RlQXQobiksbz1pPj44LGE9MjU1Jmk7bz9yLnB1c2gobyxhKTpyLnB1c2goYSl9cmV0dXJuIHJ9LG4uemVybzI9aSxuLnRvSGV4PW8sbi5lbmNvZGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4iaGV4Ij09PXQ/byhlKTplfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10O24uYmFzZT1yKDE2MCksbi5zaG9ydD1yKDU5Miksbi5tb250PXIoNTkzKSxuLmVkd2FyZHM9cig1OTQpfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNTYpLnJvdHIzMjtmdW5jdGlvbiBpKGUsdCxyKXtyZXR1cm4gZSZ0Xn5lJnJ9ZnVuY3Rpb24gbyhlLHQscil7cmV0dXJuIGUmdF5lJnJedCZyfWZ1bmN0aW9uIGEoZSx0LHIpe3JldHVybiBlXnRecn10LmZ0XzE9ZnVuY3Rpb24oZSx0LHIsbil7cmV0dXJuIDA9PT1lP2kodCxyLG4pOjE9PT1lfHwzPT09ZT9hKHQscixuKToyPT09ZT9vKHQscixuKTp2b2lkIDB9LHQuY2gzMj1pLHQubWFqMzI9byx0LnAzMj1hLHQuczBfMjU2PWZ1bmN0aW9uKGUpe3JldHVybiBuKGUsMilebihlLDEzKV5uKGUsMjIpfSx0LnMxXzI1Nj1mdW5jdGlvbihlKXtyZXR1cm4gbihlLDYpXm4oZSwxMSlebihlLDI1KX0sdC5nMF8yNTY9ZnVuY3Rpb24oZSl7cmV0dXJuIG4oZSw3KV5uKGUsMTgpXmU+Pj4zfSx0LmcxXzI1Nj1mdW5jdGlvbihlKXtyZXR1cm4gbihlLDE3KV5uKGUsMTkpXmU+Pj4xMH19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig1NiksaT1yKDEzMCksbz1yKDMzMiksYT1yKDQ3KSxzPW4uc3VtMzIsdT1uLnN1bTMyXzQsYz1uLnN1bTMyXzUsZj1vLmNoMzIsbD1vLm1hajMyLGg9by5zMF8yNTYscD1vLnMxXzI1NixkPW8uZzBfMjU2LHk9by5nMV8yNTYsZz1pLkJsb2NrSGFzaCx2PVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdO2Z1bmN0aW9uIG0oKXtpZighKHRoaXMgaW5zdGFuY2VvZiBtKSlyZXR1cm4gbmV3IG07Zy5jYWxsKHRoaXMpLHRoaXMuaD1bMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdLHRoaXMuaz12LHRoaXMuVz1uZXcgQXJyYXkoNjQpfW4uaW5oZXJpdHMobSxnKSxlLmV4cG9ydHM9bSxtLmJsb2NrU2l6ZT01MTIsbS5vdXRTaXplPTI1NixtLmhtYWNTdHJlbmd0aD0xOTIsbS5wYWRMZW5ndGg9NjQsbS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj10aGlzLlcsbj0wO248MTY7bisrKXJbbl09ZVt0K25dO2Zvcig7bjxyLmxlbmd0aDtuKyspcltuXT11KHkocltuLTJdKSxyW24tN10sZChyW24tMTVdKSxyW24tMTZdKTt2YXIgaT10aGlzLmhbMF0sbz10aGlzLmhbMV0sZz10aGlzLmhbMl0sdj10aGlzLmhbM10sbT10aGlzLmhbNF0sYj10aGlzLmhbNV0sXz10aGlzLmhbNl0sUz10aGlzLmhbN107Zm9yKGEodGhpcy5rLmxlbmd0aD09PXIubGVuZ3RoKSxuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBFPWMoUyxwKG0pLGYobSxiLF8pLHRoaXMua1tuXSxyW25dKSx3PXMoaChpKSxsKGksbyxnKSk7Uz1fLF89YixiPW0sbT1zKHYsRSksdj1nLGc9byxvPWksaT1zKEUsdyl9dGhpcy5oWzBdPXModGhpcy5oWzBdLGkpLHRoaXMuaFsxXT1zKHRoaXMuaFsxXSxvKSx0aGlzLmhbMl09cyh0aGlzLmhbMl0sZyksdGhpcy5oWzNdPXModGhpcy5oWzNdLHYpLHRoaXMuaFs0XT1zKHRoaXMuaFs0XSxtKSx0aGlzLmhbNV09cyh0aGlzLmhbNV0sYiksdGhpcy5oWzZdPXModGhpcy5oWzZdLF8pLHRoaXMuaFs3XT1zKHRoaXMuaFs3XSxTKX0sbS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihlKXtyZXR1cm4iaGV4Ij09PWU/bi50b0hleDMyKHRoaXMuaCwiYmlnIik6bi5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNTYpLGk9cigxMzApLG89cig0NyksYT1uLnJvdHI2NF9oaSxzPW4ucm90cjY0X2xvLHU9bi5zaHI2NF9oaSxjPW4uc2hyNjRfbG8sZj1uLnN1bTY0LGw9bi5zdW02NF9oaSxoPW4uc3VtNjRfbG8scD1uLnN1bTY0XzRfaGksZD1uLnN1bTY0XzRfbG8seT1uLnN1bTY0XzVfaGksZz1uLnN1bTY0XzVfbG8sdj1pLkJsb2NrSGFzaCxtPVsxMTE2MzUyNDA4LDM2MDk3Njc0NTgsMTg5OTQ0NzQ0MSw2MDI4OTE3MjUsMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5LDM5MjEwMDk1NzMsMjE3MzI5NTU0OCw5NjE5ODcxNjMsNDA4MTYyODQ3MiwxNTA4OTcwOTkzLDMwNTM4MzQyNjUsMjQ1MzYzNTc0OCwyOTM3NjcxNTc5LDI4NzA3NjMyMjEsMzY2NDYwOTU2MCwzNjI0MzgxMDgwLDI3MzQ4ODMzOTQsMzEwNTk4NDAxLDExNjQ5OTY1NDIsNjA3MjI1Mjc4LDEzMjM2MTA3NjQsMTQyNjg4MTk4NywzNTkwMzA0OTk0LDE5MjUwNzgzODgsNDA2ODE4MjM4MywyMTYyMDc4MjA2LDk5MTMzNjExMywyNjE0ODg4MTAzLDYzMzgwMzMxNywzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgsMzgzNTM5MDQwMSwyNjY2NjEzNDU4LDQwMjIyMjQ3NzQsOTQ0NzExMTM5LDI2NDM0NzA3OCwyMzQxMjYyNzczLDYwNDgwNzYyOCwyMDA3ODAwOTMzLDc3MDI1NTk4MywxNDk1OTkwOTAxLDEyNDkxNTAxMjIsMTg1NjQzMTIzNSwxNTU1MDgxNjkyLDMxNzUyMTgxMzIsMTk5NjA2NDk4NiwyMTk4OTUwODM3LDI1NTQyMjA4ODIsMzk5OTcxOTMzOSwyODIxODM0MzQ5LDc2Njc4NDAxNiwyOTUyOTk2ODA4LDI1NjY1OTQ4NzksMzIxMDMxMzY3MSwzMjAzMzM3OTU2LDMzMzY1NzE4OTEsMTAzNDQ1NzAyNiwzNTg0NTI4NzExLDI0NjY5NDg5MDEsMTEzOTI2OTkzLDM3NTgzMjYzODMsMzM4MjQxODk1LDE2ODcxNzkzNiw2NjYzMDcyMDUsMTE4ODE3OTk2NCw3NzM1Mjk5MTIsMTU0NjA0NTczNCwxMjk0NzU3MzcyLDE1MjI4MDU0ODUsMTM5NjE4MjI5MSwyNjQzODMzODIzLDE2OTUxODM3MDAsMjM0MzUyNzM5MCwxOTg2NjYxMDUxLDEwMTQ0Nzc0ODAsMjE3NzAyNjM1MCwxMjA2NzU5MTQyLDI0NTY5NTYwMzcsMzQ0MDc3NjI3LDI3MzA0ODU5MjEsMTI5MDg2MzQ2MCwyODIwMzAyNDExLDMxNTg0NTQyNzMsMzI1OTczMDgwMCwzNTA1OTUyNjU3LDMzNDU3NjQ3NzEsMTA2MjE3MDA4LDM1MTYwNjU4MTcsMzYwNjAwODM0NCwzNjAwMzUyODA0LDE0MzI3MjU3NzYsNDA5NDU3MTkwOSwxNDY3MDMxNTk0LDI3NTQyMzM0NCw4NTExNjk3MjAsNDMwMjI3NzM0LDMxMDA4MjM3NTIsNTA2OTQ4NjE2LDEzNjMyNTgxOTUsNjU5MDYwNTU2LDM3NTA2ODU1OTMsODgzOTk3ODc3LDM3ODUwNTAyODAsOTU4MTM5NTcxLDMzMTgzMDc0MjcsMTMyMjgyMjIxOCwzODEyNzIzNDAzLDE1MzcwMDIwNjMsMjAwMzAzNDk5NSwxNzQ3ODczNzc5LDM2MDIwMzY4OTksMTk1NTU2MjIyMiwxNTc1OTkwMDEyLDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCwyMjI3NzMwNDUyLDI3MTY5MDQzMDYsMjM2MTg1MjQyNCw0NDI3NzYwNDQsMjQyODQzNjQ3NCw1OTM2OTgzNDQsMjc1NjczNDE4NywzNzMzMTEwMjQ5LDMyMDQwMzE0NzksMjk5OTM1MTU3MywzMzI5MzI1Mjk4LDM4MTU5MjA0MjcsMzM5MTU2OTYxNCwzOTI4MzgzOTAwLDM1MTUyNjcyNzEsNTY2MjgwNzExLDM5NDAxODc2MDYsMzQ1NDA2OTUzNCw0MTE4NjMwMjcxLDQwMDAyMzk5OTIsMTE2NDE4NDc0LDE5MTQxMzg1NTQsMTc0MjkyNDIxLDI3MzEwNTUyNzAsMjg5MzgwMzU2LDMyMDM5OTMwMDYsNDYwMzkzMjY5LDMyMDYyMDMxNSw2ODU0NzE3MzMsNTg3NDk2ODM2LDg1MjE0Mjk3MSwxMDg2NzkyODUxLDEwMTcwMzYyOTgsMzY1NTQzMTAwLDExMjYwMDA1ODAsMjYxODI5NzY3NiwxMjg4MDMzNDcwLDM0MDk4NTUxNTgsMTUwMTUwNTk0OCw0MjM0NTA5ODY2LDE2MDcxNjc5MTUsOTg3MTY3NDY4LDE4MTY0MDIzMTYsMTI0NjE4OTU5MV07ZnVuY3Rpb24gYigpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGIpKXJldHVybiBuZXcgYjt2LmNhbGwodGhpcyksdGhpcy5oPVsxNzc5MDMzNzAzLDQwODkyMzU3MjAsMzE0NDEzNDI3NywyMjI3ODczNTk1LDEwMTM5MDQyNDIsNDI3MTE3NTcyMywyNzczNDgwNzYyLDE1OTU3NTAxMjksMTM1OTg5MzExOSwyOTE3NTY1MTM3LDI2MDA4MjI5MjQsNzI1NTExMTk5LDUyODczNDYzNSw0MjE1Mzg5NTQ3LDE1NDE0NTkyMjUsMzI3MDMzMjA5XSx0aGlzLms9bSx0aGlzLlc9bmV3IEFycmF5KDE2MCl9ZnVuY3Rpb24gXyhlLHQscixuLGkpe3ZhciBvPWUmcl5+ZSZpO3JldHVybiBvPDAmJihvKz00Mjk0OTY3Mjk2KSxvfWZ1bmN0aW9uIFMoZSx0LHIsbixpLG8pe3ZhciBhPXQmbl5+dCZvO3JldHVybiBhPDAmJihhKz00Mjk0OTY3Mjk2KSxhfWZ1bmN0aW9uIEUoZSx0LHIsbixpKXt2YXIgbz1lJnJeZSZpXnImaTtyZXR1cm4gbzwwJiYobys9NDI5NDk2NzI5Niksb31mdW5jdGlvbiB3KGUsdCxyLG4saSxvKXt2YXIgYT10Jm5edCZvXm4mbztyZXR1cm4gYTwwJiYoYSs9NDI5NDk2NzI5NiksYX1mdW5jdGlvbiBUKGUsdCl7dmFyIHI9YShlLHQsMjgpXmEodCxlLDIpXmEodCxlLDcpO3JldHVybiByPDAmJihyKz00Mjk0OTY3Mjk2KSxyfWZ1bmN0aW9uIEEoZSx0KXt2YXIgcj1zKGUsdCwyOClecyh0LGUsMilecyh0LGUsNyk7cmV0dXJuIHI8MCYmKHIrPTQyOTQ5NjcyOTYpLHJ9ZnVuY3Rpb24gQyhlLHQpe3ZhciByPWEoZSx0LDE0KV5hKGUsdCwxOCleYSh0LGUsOSk7cmV0dXJuIHI8MCYmKHIrPTQyOTQ5NjcyOTYpLHJ9ZnVuY3Rpb24geChlLHQpe3ZhciByPXMoZSx0LDE0KV5zKGUsdCwxOClecyh0LGUsOSk7cmV0dXJuIHI8MCYmKHIrPTQyOTQ5NjcyOTYpLHJ9ZnVuY3Rpb24gSShlLHQpe3ZhciByPWEoZSx0LDEpXmEoZSx0LDgpXnUoZSx0LDcpO3JldHVybiByPDAmJihyKz00Mjk0OTY3Mjk2KSxyfWZ1bmN0aW9uIGsoZSx0KXt2YXIgcj1zKGUsdCwxKV5zKGUsdCw4KV5jKGUsdCw3KTtyZXR1cm4gcjwwJiYocis9NDI5NDk2NzI5Nikscn1mdW5jdGlvbiBPKGUsdCl7dmFyIHI9YShlLHQsMTkpXmEodCxlLDI5KV51KGUsdCw2KTtyZXR1cm4gcjwwJiYocis9NDI5NDk2NzI5Nikscn1mdW5jdGlvbiBOKGUsdCl7dmFyIHI9cyhlLHQsMTkpXnModCxlLDI5KV5jKGUsdCw2KTtyZXR1cm4gcjwwJiYocis9NDI5NDk2NzI5Nikscn1uLmluaGVyaXRzKGIsdiksZS5leHBvcnRzPWIsYi5ibG9ja1NpemU9MTAyNCxiLm91dFNpemU9NTEyLGIuaG1hY1N0cmVuZ3RoPTE5MixiLnBhZExlbmd0aD0xMjgsYi5wcm90b3R5cGUuX3ByZXBhcmVCbG9jaz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj10aGlzLlcsbj0wO248MzI7bisrKXJbbl09ZVt0K25dO2Zvcig7bjxyLmxlbmd0aDtuKz0yKXt2YXIgaT1PKHJbbi00XSxyW24tM10pLG89TihyW24tNF0scltuLTNdKSxhPXJbbi0xNF0scz1yW24tMTNdLHU9SShyW24tMzBdLHJbbi0yOV0pLGM9ayhyW24tMzBdLHJbbi0yOV0pLGY9cltuLTMyXSxsPXJbbi0zMV07cltuXT1wKGksbyxhLHMsdSxjLGYsbCkscltuKzFdPWQoaSxvLGEscyx1LGMsZixsKX19LGIucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oZSx0KXt0aGlzLl9wcmVwYXJlQmxvY2soZSx0KTt2YXIgcj10aGlzLlcsbj10aGlzLmhbMF0saT10aGlzLmhbMV0sYT10aGlzLmhbMl0scz10aGlzLmhbM10sdT10aGlzLmhbNF0sYz10aGlzLmhbNV0scD10aGlzLmhbNl0sZD10aGlzLmhbN10sdj10aGlzLmhbOF0sbT10aGlzLmhbOV0sYj10aGlzLmhbMTBdLEk9dGhpcy5oWzExXSxrPXRoaXMuaFsxMl0sTz10aGlzLmhbMTNdLE49dGhpcy5oWzE0XSxQPXRoaXMuaFsxNV07byh0aGlzLmsubGVuZ3RoPT09ci5sZW5ndGgpO2Zvcih2YXIgUj0wO1I8ci5sZW5ndGg7Uis9Mil7dmFyIEI9TixNPVAsTD1DKHYsbSksRD14KHYsbSksaj1fKHYsbSxiLEksayksVT1TKHYsbSxiLEksayxPKSxGPXRoaXMua1tSXSxWPXRoaXMua1tSKzFdLHE9cltSXSxLPXJbUisxXSx6PXkoQixNLEwsRCxqLFUsRixWLHEsSyksRz1nKEIsTSxMLEQsaixVLEYsVixxLEspO0I9VChuLGkpLE09QShuLGkpLEw9RShuLGksYSxzLHUpLEQ9dyhuLGksYSxzLHUsYyk7dmFyIEg9bChCLE0sTCxEKSxXPWgoQixNLEwsRCk7Tj1rLFA9TyxrPWIsTz1JLGI9dixJPW0sdj1sKHAsZCx6LEcpLG09aChkLGQseixHKSxwPXUsZD1jLHU9YSxjPXMsYT1uLHM9aSxuPWwoeixHLEgsVyksaT1oKHosRyxILFcpfWYodGhpcy5oLDAsbixpKSxmKHRoaXMuaCwyLGEscyksZih0aGlzLmgsNCx1LGMpLGYodGhpcy5oLDYscCxkKSxmKHRoaXMuaCw4LHYsbSksZih0aGlzLmgsMTAsYixJKSxmKHRoaXMuaCwxMixrLE8pLGYodGhpcy5oLDE0LE4sUCl9LGIucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuImhleCI9PT1lP24udG9IZXgzMih0aGlzLmgsImJpZyIpOm4uc3BsaXQzMih0aGlzLmgsImJpZyIpfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNyksaT1yKDEzMikuUmVwb3J0ZXIsbz1yKDE4KS5CdWZmZXI7ZnVuY3Rpb24gYShlLHQpe2kuY2FsbCh0aGlzLHQpLG8uaXNCdWZmZXIoZSk/KHRoaXMuYmFzZT1lLHRoaXMub2Zmc2V0PTAsdGhpcy5sZW5ndGg9ZS5sZW5ndGgpOnRoaXMuZXJyb3IoIklucHV0IG5vdCBCdWZmZXIiKX1mdW5jdGlvbiBzKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSl0aGlzLmxlbmd0aD0wLHRoaXMudmFsdWU9ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBzfHwoZT1uZXcgcyhlLHQpKSx0aGlzLmxlbmd0aCs9ZS5sZW5ndGgsZX0sdGhpcyk7ZWxzZSBpZigibnVtYmVyIj09PXR5cGVvZiBlKXtpZighKDA8PWUmJmU8PTI1NSkpcmV0dXJuIHQuZXJyb3IoIm5vbi1ieXRlIEVuY29kZXJCdWZmZXIgdmFsdWUiKTt0aGlzLnZhbHVlPWUsdGhpcy5sZW5ndGg9MX1lbHNlIGlmKCJzdHJpbmciPT09dHlwZW9mIGUpdGhpcy52YWx1ZT1lLHRoaXMubGVuZ3RoPW8uYnl0ZUxlbmd0aChlKTtlbHNle2lmKCFvLmlzQnVmZmVyKGUpKXJldHVybiB0LmVycm9yKCJVbnN1cHBvcnRlZCB0eXBlOiAiK3R5cGVvZiBlKTt0aGlzLnZhbHVlPWUsdGhpcy5sZW5ndGg9ZS5sZW5ndGh9fW4oYSxpKSx0LkRlY29kZXJCdWZmZXI9YSxhLnByb3RvdHlwZS5zYXZlPWZ1bmN0aW9uKCl7cmV0dXJue29mZnNldDp0aGlzLm9mZnNldCxyZXBvcnRlcjppLnByb3RvdHlwZS5zYXZlLmNhbGwodGhpcyl9fSxhLnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBhKHRoaXMuYmFzZSk7cmV0dXJuIHQub2Zmc2V0PWUub2Zmc2V0LHQubGVuZ3RoPXRoaXMub2Zmc2V0LHRoaXMub2Zmc2V0PWUub2Zmc2V0LGkucHJvdG90eXBlLnJlc3RvcmUuY2FsbCh0aGlzLGUucmVwb3J0ZXIpLHR9LGEucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vZmZzZXQ9PT10aGlzLmxlbmd0aH0sYS5wcm90b3R5cGUucmVhZFVJbnQ4PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLm9mZnNldCsxPD10aGlzLmxlbmd0aD90aGlzLmJhc2UucmVhZFVJbnQ4KHRoaXMub2Zmc2V0KyssITApOnRoaXMuZXJyb3IoZXx8IkRlY29kZXJCdWZmZXIgb3ZlcnJ1biIpfSxhLnByb3RvdHlwZS5za2lwPWZ1bmN0aW9uKGUsdCl7aWYoISh0aGlzLm9mZnNldCtlPD10aGlzLmxlbmd0aCkpcmV0dXJuIHRoaXMuZXJyb3IodHx8IkRlY29kZXJCdWZmZXIgb3ZlcnJ1biIpO3ZhciByPW5ldyBhKHRoaXMuYmFzZSk7cmV0dXJuIHIuX3JlcG9ydGVyU3RhdGU9dGhpcy5fcmVwb3J0ZXJTdGF0ZSxyLm9mZnNldD10aGlzLm9mZnNldCxyLmxlbmd0aD10aGlzLm9mZnNldCtlLHRoaXMub2Zmc2V0Kz1lLHJ9LGEucHJvdG90eXBlLnJhdz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5iYXNlLnNsaWNlKGU/ZS5vZmZzZXQ6dGhpcy5vZmZzZXQsdGhpcy5sZW5ndGgpfSx0LkVuY29kZXJCdWZmZXI9cyxzLnByb3RvdHlwZS5qb2luPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV8fChlPW5ldyBvKHRoaXMubGVuZ3RoKSksdHx8KHQ9MCksMD09PXRoaXMubGVuZ3RoP2U6KEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSk/dGhpcy52YWx1ZS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3Iuam9pbihlLHQpLHQrPXIubGVuZ3RofSk6KCJudW1iZXIiPT09dHlwZW9mIHRoaXMudmFsdWU/ZVt0XT10aGlzLnZhbHVlOiJzdHJpbmciPT09dHlwZW9mIHRoaXMudmFsdWU/ZS53cml0ZSh0aGlzLnZhbHVlLHQpOm8uaXNCdWZmZXIodGhpcy52YWx1ZSkmJnRoaXMudmFsdWUuY29weShlLHQpLHQrPXRoaXMubGVuZ3RoKSxlKX19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj10O24uX3JldmVyc2U9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24ocil7KDB8cik9PXImJihyfD0wKTt2YXIgbj1lW3JdO3Rbbl09cn0pLHR9LG4uZGVyPXIoNjE0KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNyksaT1yKDEzMSksbz1pLmJhc2UsYT1pLmJpZ251bSxzPWkuY29uc3RhbnRzLmRlcjtmdW5jdGlvbiB1KGUpe3RoaXMuZW5jPSJkZXIiLHRoaXMubmFtZT1lLm5hbWUsdGhpcy5lbnRpdHk9ZSx0aGlzLnRyZWU9bmV3IGMsdGhpcy50cmVlLl9pbml0KGUuYm9keSl9ZnVuY3Rpb24gYyhlKXtvLk5vZGUuY2FsbCh0aGlzLCJkZXIiLGUpfWZ1bmN0aW9uIGYoZSx0KXt2YXIgcj1lLnJlYWRVSW50OCh0KTtpZihlLmlzRXJyb3IocikpcmV0dXJuIHI7dmFyIG49cy50YWdDbGFzc1tyPj42XSxpPTA9PT0oMzImcik7aWYoMzE9PT0oMzEmcikpe3ZhciBvPXI7Zm9yKHI9MDsxMjg9PT0oMTI4Jm8pOyl7aWYobz1lLnJlYWRVSW50OCh0KSxlLmlzRXJyb3IobykpcmV0dXJuIG87cjw8PTcscnw9MTI3Jm99fWVsc2UgciY9MzE7cmV0dXJue2NsczpuLHByaW1pdGl2ZTppLHRhZzpyLHRhZ1N0cjpzLnRhZ1tyXX19ZnVuY3Rpb24gbChlLHQscil7dmFyIG49ZS5yZWFkVUludDgocik7aWYoZS5pc0Vycm9yKG4pKXJldHVybiBuO2lmKCF0JiYxMjg9PT1uKXJldHVybiBudWxsO2lmKDA9PT0oMTI4Jm4pKXJldHVybiBuO3ZhciBpPTEyNyZuO2lmKGk+NClyZXR1cm4gZS5lcnJvcigibGVuZ3RoIG9jdGVjdCBpcyB0b28gbG9uZyIpO249MDtmb3IodmFyIG89MDtvPGk7bysrKXtuPDw9ODt2YXIgYT1lLnJlYWRVSW50OChyKTtpZihlLmlzRXJyb3IoYSkpcmV0dXJuIGE7bnw9YX1yZXR1cm4gbn1lLmV4cG9ydHM9dSx1LnByb3RvdHlwZS5kZWNvZGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIG8uRGVjb2RlckJ1ZmZlcnx8KGU9bmV3IG8uRGVjb2RlckJ1ZmZlcihlLHQpKSx0aGlzLnRyZWUuX2RlY29kZShlLHQpfSxuKGMsby5Ob2RlKSxjLnByb3RvdHlwZS5fcGVla1RhZz1mdW5jdGlvbihlLHQscil7aWYoZS5pc0VtcHR5KCkpcmV0dXJuITE7dmFyIG49ZS5zYXZlKCksaT1mKGUsJ0ZhaWxlZCB0byBwZWVrIHRhZzogIicrdCsnIicpO3JldHVybiBlLmlzRXJyb3IoaSk/aTooZS5yZXN0b3JlKG4pLGkudGFnPT09dHx8aS50YWdTdHI9PT10fHxpLnRhZ1N0cisib2YiPT09dHx8cil9LGMucHJvdG90eXBlLl9kZWNvZGVUYWc9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPWYoZSwnRmFpbGVkIHRvIGRlY29kZSB0YWcgb2YgIicrdCsnIicpO2lmKGUuaXNFcnJvcihuKSlyZXR1cm4gbjt2YXIgaT1sKGUsbi5wcmltaXRpdmUsJ0ZhaWxlZCB0byBnZXQgbGVuZ3RoIG9mICInK3QrJyInKTtpZihlLmlzRXJyb3IoaSkpcmV0dXJuIGk7aWYoIXImJm4udGFnIT09dCYmbi50YWdTdHIhPT10JiZuLnRhZ1N0cisib2YiIT09dClyZXR1cm4gZS5lcnJvcignRmFpbGVkIHRvIG1hdGNoIHRhZzogIicrdCsnIicpO2lmKG4ucHJpbWl0aXZlfHxudWxsIT09aSlyZXR1cm4gZS5za2lwKGksJ0ZhaWxlZCB0byBtYXRjaCBib2R5IG9mOiAiJyt0KyciJyk7dmFyIG89ZS5zYXZlKCksYT10aGlzLl9za2lwVW50aWxFbmQoZSwnRmFpbGVkIHRvIHNraXAgaW5kZWZpbml0ZSBsZW5ndGggYm9keTogIicrdGhpcy50YWcrJyInKTtyZXR1cm4gZS5pc0Vycm9yKGEpP2E6KGk9ZS5vZmZzZXQtby5vZmZzZXQsZS5yZXN0b3JlKG8pLGUuc2tpcChpLCdGYWlsZWQgdG8gbWF0Y2ggYm9keSBvZjogIicrdCsnIicpKX0sYy5wcm90b3R5cGUuX3NraXBVbnRpbEVuZD1mdW5jdGlvbihlLHQpe2Zvcig7Oyl7dmFyIHI9ZihlLHQpO2lmKGUuaXNFcnJvcihyKSlyZXR1cm4gcjt2YXIgbixpPWwoZSxyLnByaW1pdGl2ZSx0KTtpZihlLmlzRXJyb3IoaSkpcmV0dXJuIGk7aWYobj1yLnByaW1pdGl2ZXx8bnVsbCE9PWk/ZS5za2lwKGkpOnRoaXMuX3NraXBVbnRpbEVuZChlLHQpLGUuaXNFcnJvcihuKSlyZXR1cm4gbjtpZigiZW5kIj09PXIudGFnU3RyKWJyZWFrfX0sYy5wcm90b3R5cGUuX2RlY29kZUxpc3Q9ZnVuY3Rpb24oZSx0LHIsbil7Zm9yKHZhciBpPVtdOyFlLmlzRW1wdHkoKTspe3ZhciBvPXRoaXMuX3BlZWtUYWcoZSwiZW5kIik7aWYoZS5pc0Vycm9yKG8pKXJldHVybiBvO3ZhciBhPXIuZGVjb2RlKGUsImRlciIsbik7aWYoZS5pc0Vycm9yKGEpJiZvKWJyZWFrO2kucHVzaChhKX1yZXR1cm4gaX0sYy5wcm90b3R5cGUuX2RlY29kZVN0cj1mdW5jdGlvbihlLHQpe2lmKCJiaXRzdHIiPT09dCl7dmFyIHI9ZS5yZWFkVUludDgoKTtyZXR1cm4gZS5pc0Vycm9yKHIpP3I6e3VudXNlZDpyLGRhdGE6ZS5yYXcoKX19aWYoImJtcHN0ciI9PT10KXt2YXIgbj1lLnJhdygpO2lmKG4ubGVuZ3RoJTI9PT0xKXJldHVybiBlLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogYm1wc3RyIGxlbmd0aCBtaXNtYXRjaCIpO2Zvcih2YXIgaT0iIixvPTA7bzxuLmxlbmd0aC8yO28rKylpKz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4ucmVhZFVJbnQxNkJFKDIqbykpO3JldHVybiBpfWlmKCJudW1zdHIiPT09dCl7dmFyIGE9ZS5yYXcoKS50b1N0cmluZygiYXNjaWkiKTtyZXR1cm4gdGhpcy5faXNOdW1zdHIoYSk/YTplLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogbnVtc3RyIHVuc3VwcG9ydGVkIGNoYXJhY3RlcnMiKX1pZigib2N0c3RyIj09PXQpcmV0dXJuIGUucmF3KCk7aWYoIm9iakRlc2MiPT09dClyZXR1cm4gZS5yYXcoKTtpZigicHJpbnRzdHIiPT09dCl7dmFyIHM9ZS5yYXcoKS50b1N0cmluZygiYXNjaWkiKTtyZXR1cm4gdGhpcy5faXNQcmludHN0cg=="
}

Changelog:

{
    "2020.04.17 15:42": "base64:ZHNhIixoYXNoOiJzaGExIixpZDoiIn0sc2hhMjU2OntzaWduOiJlY2RzYSIsaGFzaDoic2hhMjU2IixpZDoiIn0sc2hhMjI0OntzaWduOiJlY2RzYSIsaGFzaDoic2hhMjI0IixpZDoiIn0sc2hhMzg0OntzaWduOiJlY2RzYSIsaGFzaDoic2hhMzg0IixpZDoiIn0sc2hhNTEyOntzaWduOiJlY2RzYSIsaGFzaDoic2hhNTEyIixpZDoiIn0sIkRTQS1TSEEiOntzaWduOiJkc2EiLGhhc2g6InNoYTEiLGlkOiIifSwiRFNBLVNIQTEiOntzaWduOiJkc2EiLGhhc2g6InNoYTEiLGlkOiIifSxEU0E6e3NpZ246ImRzYSIsaGFzaDoic2hhMSIsaWQ6IiJ9LCJEU0EtV0lUSC1TSEEyMjQiOntzaWduOiJkc2EiLGhhc2g6InNoYTIyNCIsaWQ6IiJ9LCJEU0EtU0hBMjI0Ijp7c2lnbjoiZHNhIixoYXNoOiJzaGEyMjQiLGlkOiIifSwiRFNBLVdJVEgtU0hBMjU2Ijp7c2lnbjoiZHNhIixoYXNoOiJzaGEyNTYiLGlkOiIifSwiRFNBLVNIQTI1NiI6e3NpZ246ImRzYSIsaGFzaDoic2hhMjU2IixpZDoiIn0sIkRTQS1XSVRILVNIQTM4NCI6e3NpZ246ImRzYSIsaGFzaDoic2hhMzg0IixpZDoiIn0sIkRTQS1TSEEzODQiOntzaWduOiJkc2EiLGhhc2g6InNoYTM4NCIsaWQ6IiJ9LCJEU0EtV0lUSC1TSEE1MTIiOntzaWduOiJkc2EiLGhhc2g6InNoYTUxMiIsaWQ6IiJ9LCJEU0EtU0hBNTEyIjp7c2lnbjoiZHNhIixoYXNoOiJzaGE1MTIiLGlkOiIifSwiRFNBLVJJUEVNRDE2MCI6e3NpZ246ImRzYSIsaGFzaDoicm1kMTYwIixpZDoiIn0scmlwZW1kMTYwV2l0aFJTQTp7c2lnbjoicnNhIixoYXNoOiJybWQxNjAiLGlkOiIzMDIxMzAwOTA2MDUyYjI0MDMwMjAxMDUwMDA0MTQifSwiUlNBLVJJUEVNRDE2MCI6e3NpZ246InJzYSIsaGFzaDoicm1kMTYwIixpZDoiMzAyMTMwMDkwNjA1MmIyNDAzMDIwMTA1MDAwNDE0In0sbWQ1V2l0aFJTQUVuY3J5cHRpb246e3NpZ246InJzYSIsaGFzaDoibWQ1IixpZDoiMzAyMDMwMGMwNjA4MmE4NjQ4ODZmNzBkMDIwNTA1MDAwNDEwIn0sIlJTQS1NRDUiOntzaWduOiJyc2EiLGhhc2g6Im1kNSIsaWQ6IjMwMjAzMDBjMDYwODJhODY0ODg2ZjcwZDAyMDUwNTAwMDQxMCJ9fX0sZnVuY3Rpb24oZSx0LHIpe3QucGJrZGYyPXIoNTY2KSx0LnBia2RmMlN5bmM9cigzMjIpfSxmdW5jdGlvbihlLHQscil7KGZ1bmN0aW9uKHQpe3ZhciByPU1hdGgucG93KDIsMzApLTE7ZnVuY3Rpb24gbihlLHIpe2lmKCJzdHJpbmciIT09dHlwZW9mIGUmJiF0LmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IocisiIG11c3QgYmUgYSBidWZmZXIgb3Igc3RyaW5nIil9ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxpLG8pe2lmKG4oZSwiUGFzc3dvcmQiKSxuKHQsIlNhbHQiKSwibnVtYmVyIiE9PXR5cGVvZiBpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdGlvbnMgbm90IGEgbnVtYmVyIik7aWYoaTwwKXRocm93IG5ldyBUeXBlRXJyb3IoIkJhZCBpdGVyYXRpb25zIik7aWYoIm51bWJlciIhPT10eXBlb2Ygbyl0aHJvdyBuZXcgVHlwZUVycm9yKCJLZXkgbGVuZ3RoIG5vdCBhIG51bWJlciIpO2lmKG88MHx8bz5yfHxvIT09byl0aHJvdyBuZXcgVHlwZUVycm9yKCJCYWQga2V5IGxlbmd0aCIpfX0pLmNhbGwodGhpcyxyKDE4KS5CdWZmZXIpfSxmdW5jdGlvbihlLHQscil7KGZ1bmN0aW9uKHQpe3ZhciByO3QuYnJvd3Nlcj9yPSJ1dGYtOCI6cj1wYXJzZUludCh0LnZlcnNpb24uc3BsaXQoIi4iKVswXS5zbGljZSgxKSwxMCk+PTY/InV0Zi04IjoiYmluYXJ5IjtlLmV4cG9ydHM9cn0pLmNhbGwodGhpcyxyKDQ2KSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDMxNyksaT1yKDIxMCksbz1yKDIxMSksYT1yKDMyMCkscz1yKDMyMSksdT1yKDgpLkJ1ZmZlcixjPXUuYWxsb2MoMTI4KSxmPXttZDU6MTYsc2hhMToyMCxzaGEyMjQ6Mjgsc2hhMjU2OjMyLHNoYTM4NDo0OCxzaGE1MTI6NjQscm1kMTYwOjIwLHJpcGVtZDE2MDoyMH07ZnVuY3Rpb24gbChlLHQscil7dmFyIGE9ZnVuY3Rpb24oZSl7cmV0dXJuInJtZDE2MCI9PT1lfHwicmlwZW1kMTYwIj09PWU/ZnVuY3Rpb24oZSl7cmV0dXJuKG5ldyBpKS51cGRhdGUoZSkuZGlnZXN0KCl9OiJtZDUiPT09ZT9uOmZ1bmN0aW9uKHQpe3JldHVybiBvKGUpLnVwZGF0ZSh0KS5kaWdlc3QoKX19KGUpLHM9InNoYTUxMiI9PT1lfHwic2hhMzg0Ij09PWU/MTI4OjY0O3QubGVuZ3RoPnM/dD1hKHQpOnQubGVuZ3RoPHMmJih0PXUuY29uY2F0KFt0LGNdLHMpKTtmb3IodmFyIGw9dS5hbGxvY1Vuc2FmZShzK2ZbZV0pLGg9dS5hbGxvY1Vuc2FmZShzK2ZbZV0pLHA9MDtwPHM7cCsrKWxbcF09NTRedFtwXSxoW3BdPTkyXnRbcF07dmFyIGQ9dS5hbGxvY1Vuc2FmZShzK3IrNCk7bC5jb3B5KGQsMCwwLHMpLHRoaXMuaXBhZDE9ZCx0aGlzLmlwYWQyPWwsdGhpcy5vcGFkPWgsdGhpcy5hbGc9ZSx0aGlzLmJsb2Nrc2l6ZT1zLHRoaXMuaGFzaD1hLHRoaXMuc2l6ZT1mW2VdfWwucHJvdG90eXBlLnJ1bj1mdW5jdGlvbihlLHQpe3JldHVybiBlLmNvcHkodCx0aGlzLmJsb2Nrc2l6ZSksdGhpcy5oYXNoKHQpLmNvcHkodGhpcy5vcGFkLHRoaXMuYmxvY2tzaXplKSx0aGlzLmhhc2godGhpcy5vcGFkKX0sZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyLG4saSl7YShlLHQscixuKSx1LmlzQnVmZmVyKGUpfHwoZT11LmZyb20oZSxzKSksdS5pc0J1ZmZlcih0KXx8KHQ9dS5mcm9tKHQscykpO3ZhciBvPW5ldyBsKGk9aXx8InNoYTEiLGUsdC5sZW5ndGgpLGM9dS5hbGxvY1Vuc2FmZShuKSxoPXUuYWxsb2NVbnNhZmUodC5sZW5ndGgrNCk7dC5jb3B5KGgsMCwwLHQubGVuZ3RoKTtmb3IodmFyIHA9MCxkPWZbaV0seT1NYXRoLmNlaWwobi9kKSxnPTE7Zzw9eTtnKyspe2gud3JpdGVVSW50MzJCRShnLHQubGVuZ3RoKTtmb3IodmFyIHY9by5ydW4oaCxvLmlwYWQxKSxtPXYsYj0xO2I8cjtiKyspe209by5ydW4obSxvLmlwYWQyKTtmb3IodmFyIF89MDtfPGQ7XysrKXZbX11ePW1bX119di5jb3B5KGMscCkscCs9ZH1yZXR1cm4gY319LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEyOSksaT1yKDgpLkJ1ZmZlcixvPXIoMzI0KTtmdW5jdGlvbiBhKGUpe3ZhciB0PWUuX2NpcGhlci5lbmNyeXB0QmxvY2tSYXcoZS5fcHJldik7cmV0dXJuIG8oZS5fcHJldiksdH10LmVuY3J5cHQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj1NYXRoLmNlaWwodC5sZW5ndGgvMTYpLG89ZS5fY2FjaGUubGVuZ3RoO2UuX2NhY2hlPWkuY29uY2F0KFtlLl9jYWNoZSxpLmFsbG9jVW5zYWZlKDE2KnIpXSk7Zm9yKHZhciBzPTA7czxyO3MrKyl7dmFyIHU9YShlKSxjPW8rMTYqcztlLl9jYWNoZS53cml0ZVVJbnQzMkJFKHVbMF0sYyswKSxlLl9jYWNoZS53cml0ZVVJbnQzMkJFKHVbMV0sYys0KSxlLl9jYWNoZS53cml0ZVVJbnQzMkJFKHVbMl0sYys4KSxlLl9jYWNoZS53cml0ZVVJbnQzMkJFKHVbM10sYysxMil9dmFyIGY9ZS5fY2FjaGUuc2xpY2UoMCx0Lmxlbmd0aCk7cmV0dXJuIGUuX2NhY2hlPWUuX2NhY2hlLnNsaWNlKHQubGVuZ3RoKSxuKHQsZil9fSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtmb3IodmFyIHQscj1lLmxlbmd0aDtyLS07KXtpZigyNTUhPT0odD1lLnJlYWRVSW50OChyKSkpe3QrKyxlLndyaXRlVUludDgodCxyKTticmVha31lLndyaXRlVUludDgoMCxyKX19fSxmdW5jdGlvbihlKXtlLmV4cG9ydHM9eyJhZXMtMTI4LWVjYiI6e2NpcGhlcjoiQUVTIixrZXk6MTI4LGl2OjAsbW9kZToiRUNCIix0eXBlOiJibG9jayJ9LCJhZXMtMTkyLWVjYiI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjAsbW9kZToiRUNCIix0eXBlOiJibG9jayJ9LCJhZXMtMjU2LWVjYiI6e2NpcGhlcjoiQUVTIixrZXk6MjU2LGl2OjAsbW9kZToiRUNCIix0eXBlOiJibG9jayJ9LCJhZXMtMTI4LWNiYyI6e2NpcGhlcjoiQUVTIixrZXk6MTI4LGl2OjE2LG1vZGU6IkNCQyIsdHlwZToiYmxvY2sifSwiYWVzLTE5Mi1jYmMiOntjaXBoZXI6IkFFUyIsa2V5OjE5MixpdjoxNixtb2RlOiJDQkMiLHR5cGU6ImJsb2NrIn0sImFlcy0yNTYtY2JjIjp7Y2lwaGVyOiJBRVMiLGtleToyNTYsaXY6MTYsbW9kZToiQ0JDIix0eXBlOiJibG9jayJ9LGFlczEyODp7Y2lwaGVyOiJBRVMiLGtleToxMjgsaXY6MTYsbW9kZToiQ0JDIix0eXBlOiJibG9jayJ9LGFlczE5Mjp7Y2lwaGVyOiJBRVMiLGtleToxOTIsaXY6MTYsbW9kZToiQ0JDIix0eXBlOiJibG9jayJ9LGFlczI1Njp7Y2lwaGVyOiJBRVMiLGtleToyNTYsaXY6MTYsbW9kZToiQ0JDIix0eXBlOiJibG9jayJ9LCJhZXMtMTI4LWNmYiI6e2NpcGhlcjoiQUVTIixrZXk6MTI4LGl2OjE2LG1vZGU6IkNGQiIsdHlwZToic3RyZWFtIn0sImFlcy0xOTItY2ZiIjp7Y2lwaGVyOiJBRVMiLGtleToxOTIsaXY6MTYsbW9kZToiQ0ZCIix0eXBlOiJzdHJlYW0ifSwiYWVzLTI1Ni1jZmIiOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjoxNixtb2RlOiJDRkIiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTI4LWNmYjgiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxNixtb2RlOiJDRkI4Iix0eXBlOiJzdHJlYW0ifSwiYWVzLTE5Mi1jZmI4Ijp7Y2lwaGVyOiJBRVMiLGtleToxOTIsaXY6MTYsbW9kZToiQ0ZCOCIsdHlwZToic3RyZWFtIn0sImFlcy0yNTYtY2ZiOCI6e2NpcGhlcjoiQUVTIixrZXk6MjU2LGl2OjE2LG1vZGU6IkNGQjgiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTI4LWNmYjEiOntjaXBoZXI6IkFFUyIsa2V5OjEyOCxpdjoxNixtb2RlOiJDRkIxIix0eXBlOiJzdHJlYW0ifSwiYWVzLTE5Mi1jZmIxIjp7Y2lwaGVyOiJBRVMiLGtleToxOTIsaXY6MTYsbW9kZToiQ0ZCMSIsdHlwZToic3RyZWFtIn0sImFlcy0yNTYtY2ZiMSI6e2NpcGhlcjoiQUVTIixrZXk6MjU2LGl2OjE2LG1vZGU6IkNGQjEiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTI4LW9mYiI6e2NpcGhlcjoiQUVTIixrZXk6MTI4LGl2OjE2LG1vZGU6Ik9GQiIsdHlwZToic3RyZWFtIn0sImFlcy0xOTItb2ZiIjp7Y2lwaGVyOiJBRVMiLGtleToxOTIsaXY6MTYsbW9kZToiT0ZCIix0eXBlOiJzdHJlYW0ifSwiYWVzLTI1Ni1vZmIiOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjoxNixtb2RlOiJPRkIiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTI4LWN0ciI6e2NpcGhlcjoiQUVTIixrZXk6MTI4LGl2OjE2LG1vZGU6IkNUUiIsdHlwZToic3RyZWFtIn0sImFlcy0xOTItY3RyIjp7Y2lwaGVyOiJBRVMiLGtleToxOTIsaXY6MTYsbW9kZToiQ1RSIix0eXBlOiJzdHJlYW0ifSwiYWVzLTI1Ni1jdHIiOntjaXBoZXI6IkFFUyIsa2V5OjI1NixpdjoxNixtb2RlOiJDVFIiLHR5cGU6InN0cmVhbSJ9LCJhZXMtMTI4LWdjbSI6e2NpcGhlcjoiQUVTIixrZXk6MTI4LGl2OjEyLG1vZGU6IkdDTSIsdHlwZToiYXV0aCJ9LCJhZXMtMTkyLWdjbSI6e2NpcGhlcjoiQUVTIixrZXk6MTkyLGl2OjEyLG1vZGU6IkdDTSIsdHlwZToiYXV0aCJ9LCJhZXMtMjU2LWdjbSI6e2NpcGhlcjoiQUVTIixrZXk6MjU2LGl2OjEyLG1vZGU6IkdDTSIsdHlwZToiYXV0aCJ9fX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMTU4KSxpPXIoOCkuQnVmZmVyLG89cig3OCksYT1yKDcpLHM9cig1ODEpLHU9cigxMjkpLGM9cigzMjQpO2Z1bmN0aW9uIGYoZSx0LHIsYSl7by5jYWxsKHRoaXMpO3ZhciB1PWkuYWxsb2MoNCwwKTt0aGlzLl9jaXBoZXI9bmV3IG4uQUVTKHQpO3ZhciBmPXRoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2sodSk7dGhpcy5fZ2hhc2g9bmV3IHMoZikscj1mdW5jdGlvbihlLHQscil7aWYoMTI9PT10Lmxlbmd0aClyZXR1cm4gZS5fZmluSUQ9aS5jb25jYXQoW3QsaS5mcm9tKFswLDAsMCwxXSldKSxpLmNvbmNhdChbdCxpLmZyb20oWzAsMCwwLDJdKV0pO3ZhciBuPW5ldyBzKHIpLG89dC5sZW5ndGgsYT1vJTE2O24udXBkYXRlKHQpLGEmJihhPTE2LWEsbi51cGRhdGUoaS5hbGxvYyhhLDApKSksbi51cGRhdGUoaS5hbGxvYyg4LDApKTt2YXIgdT04Km8sZj1pLmFsbG9jKDgpO2Yud3JpdGVVSW50QkUodSwwLDgpLG4udXBkYXRlKGYpLGUuX2ZpbklEPW4uc3RhdGU7dmFyIGw9aS5mcm9tKGUuX2ZpbklEKTtyZXR1cm4gYyhsKSxsfSh0aGlzLHIsZiksdGhpcy5fcHJldj1pLmZyb20ociksdGhpcy5fY2FjaGU9aS5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9zZWNDYWNoZT1pLmFsbG9jVW5zYWZlKDApLHRoaXMuX2RlY3J5cHQ9YSx0aGlzLl9hbGVuPTAsdGhpcy5fbGVuPTAsdGhpcy5fbW9kZT1lLHRoaXMuX2F1dGhUYWc9bnVsbCx0aGlzLl9jYWxsZWQ9ITF9YShmLG8pLGYucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oZSl7aWYoIXRoaXMuX2NhbGxlZCYmdGhpcy5fYWxlbil7dmFyIHQ9MTYtdGhpcy5fYWxlbiUxNjt0PDE2JiYodD1pLmFsbG9jKHQsMCksdGhpcy5fZ2hhc2gudXBkYXRlKHQpKX10aGlzLl9jYWxsZWQ9ITA7dmFyIHI9dGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsZSk7cmV0dXJuIHRoaXMuX2RlY3J5cHQ/dGhpcy5fZ2hhc2gudXBkYXRlKGUpOnRoaXMuX2doYXNoLnVwZGF0ZShyKSx0aGlzLl9sZW4rPWUubGVuZ3RoLHJ9LGYucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe2lmKHRoaXMuX2RlY3J5cHQmJiF0aGlzLl9hdXRoVGFnKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgc3RhdGUgb3IgdW5hYmxlIHRvIGF1dGhlbnRpY2F0ZSBkYXRhIik7dmFyIGU9dSh0aGlzLl9naGFzaC5maW5hbCg4KnRoaXMuX2FsZW4sOCp0aGlzLl9sZW4pLHRoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2sodGhpcy5fZmluSUQpKTtpZih0aGlzLl9kZWNyeXB0JiZmdW5jdGlvbihlLHQpe3ZhciByPTA7ZS5sZW5ndGghPT10Lmxlbmd0aCYmcisrO2Zvcih2YXIgbj1NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCksaT0wO2k8bjsrK2kpcis9ZVtpXV50W2ldO3JldHVybiByfShlLHRoaXMuX2F1dGhUYWcpKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgc3RhdGUgb3IgdW5hYmxlIHRvIGF1dGhlbnRpY2F0ZSBkYXRhIik7dGhpcy5fYXV0aFRhZz1lLHRoaXMuX2NpcGhlci5zY3J1YigpfSxmLnByb3RvdHlwZS5nZXRBdXRoVGFnPWZ1bmN0aW9uKCl7aWYodGhpcy5fZGVjcnlwdHx8IWkuaXNCdWZmZXIodGhpcy5fYXV0aFRhZykpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0aW5nIHRvIGdldCBhdXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpO3JldHVybiB0aGlzLl9hdXRoVGFnfSxmLnByb3RvdHlwZS5zZXRBdXRoVGFnPWZ1bmN0aW9uKGUpe2lmKCF0aGlzLl9kZWNyeXB0KXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBzZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKTt0aGlzLl9hdXRoVGFnPWV9LGYucHJvdG90eXBlLnNldEFBRD1mdW5jdGlvbihlKXtpZih0aGlzLl9jYWxsZWQpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0aW5nIHRvIHNldCBBQUQgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKTt0aGlzLl9naGFzaC51cGRhdGUoZSksdGhpcy5fYWxlbis9ZS5sZW5ndGh9LGUuZXhwb3J0cz1mfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxNTgpLGk9cig4KS5CdWZmZXIsbz1yKDc4KTtmdW5jdGlvbiBhKGUsdCxyLGEpe28uY2FsbCh0aGlzKSx0aGlzLl9jaXBoZXI9bmV3IG4uQUVTKHQpLHRoaXMuX3ByZXY9aS5mcm9tKHIpLHRoaXMuX2NhY2hlPWkuYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9aS5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PWEsdGhpcy5fbW9kZT1lfXIoNykoYSxvKSxhLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9tb2RlLmVuY3J5cHQodGhpcyxlLHRoaXMuX2RlY3J5cHQpfSxhLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt0aGlzLl9jaXBoZXIuc2NydWIoKX0sZS5leHBvcnRzPWF9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDEwNCk7ZS5leHBvcnRzPW0sbS5zaW1wbGVTaWV2ZT1nLG0uZmVybWF0VGVzdD12O3ZhciBpPXIoMjQpLG89bmV3IGkoMjQpLGE9bmV3KHIoMzI5KSkscz1uZXcgaSgxKSx1PW5ldyBpKDIpLGM9bmV3IGkoNSksZj0obmV3IGkoMTYpLG5ldyBpKDgpLG5ldyBpKDEwKSksbD1uZXcgaSgzKSxoPShuZXcgaSg3KSxuZXcgaSgxMSkpLHA9bmV3IGkoNCksZD0obmV3IGkoMTIpLG51bGwpO2Z1bmN0aW9uIHkoKXtpZihudWxsIT09ZClyZXR1cm4gZDt2YXIgZT1bXTtlWzBdPTI7Zm9yKHZhciB0PTEscj0zO3I8MTA0ODU3NjtyKz0yKXtmb3IodmFyIG49TWF0aC5jZWlsKE1hdGguc3FydChyKSksaT0wO2k8dCYmZVtpXTw9biYmciVlW2ldIT09MDtpKyspO3QhPT1pJiZlW2ldPD1ufHwoZVt0KytdPXIpfXJldHVybiBkPWUsZX1mdW5jdGlvbiBnKGUpe2Zvcih2YXIgdD15KCkscj0wO3I8dC5sZW5ndGg7cisrKWlmKDA9PT1lLm1vZG4odFtyXSkpcmV0dXJuIDA9PT1lLmNtcG4odFtyXSk7cmV0dXJuITB9ZnVuY3Rpb24gdihlKXt2YXIgdD1pLm1vbnQoZSk7cmV0dXJuIDA9PT11LnRvUmVkKHQpLnJlZFBvdyhlLnN1Ym4oMSkpLmZyb21SZWQoKS5jbXBuKDEpfWZ1bmN0aW9uIG0oZSx0KXtpZihlPDE2KXJldHVybiBuZXcgaSgyPT09dHx8NT09PXQ/WzE0MCwxMjNdOlsxNDAsMzldKTt2YXIgcixkO2Zvcih0PW5ldyBpKHQpOzspe2ZvcihyPW5ldyBpKG4oTWF0aC5jZWlsKGUvOCkpKTtyLmJpdExlbmd0aCgpPmU7KXIuaXNocm4oMSk7aWYoci5pc0V2ZW4oKSYmci5pYWRkKHMpLHIudGVzdG4oMSl8fHIuaWFkZCh1KSx0LmNtcCh1KSl7aWYoIXQuY21wKGMpKWZvcig7ci5tb2QoZikuY21wKGwpOylyLmlhZGQocCl9ZWxzZSBmb3IoO3IubW9kKG8pLmNtcChoKTspci5pYWRkKHApO2lmKGcoZD1yLnNocm4oMSkpJiZnKHIpJiZ2KGQpJiZ2KHIpJiZhLnRlc3QoZCkmJmEudGVzdChyKSlyZXR1cm4gcn19fSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyNCksaT1yKDIxNik7ZnVuY3Rpb24gbyhlKXt0aGlzLnJhbmQ9ZXx8bmV3IGkuUmFuZH1lLmV4cG9ydHM9byxvLmNyZWF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IG8oZSl9LG8ucHJvdG90eXBlLl9yYW5kYmVsb3c9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5iaXRMZW5ndGgoKSxyPU1hdGguY2VpbCh0LzgpO2Rve3ZhciBpPW5ldyBuKHRoaXMucmFuZC5nZW5lcmF0ZShyKSl9d2hpbGUoaS5jbXAoZSk+PTApO3JldHVybiBpfSxvLnByb3RvdHlwZS5fcmFuZHJhbmdlPWZ1bmN0aW9uKGUsdCl7dmFyIHI9dC5zdWIoZSk7cmV0dXJuIGUuYWRkKHRoaXMuX3JhbmRiZWxvdyhyKSl9LG8ucHJvdG90eXBlLnRlc3Q9ZnVuY3Rpb24oZSx0LHIpe3ZhciBpPWUuYml0TGVuZ3RoKCksbz1uLm1vbnQoZSksYT1uZXcgbigxKS50b1JlZChvKTt0fHwodD1NYXRoLm1heCgxLGkvNDh8MCkpO2Zvcih2YXIgcz1lLnN1Ym4oMSksdT0wOyFzLnRlc3RuKHUpO3UrKyk7Zm9yKHZhciBjPWUuc2hybih1KSxmPXMudG9SZWQobyk7dD4wO3QtLSl7dmFyIGw9dGhpcy5fcmFuZHJhbmdlKG5ldyBuKDIpLHMpO3ImJnIobCk7dmFyIGg9bC50b1JlZChvKS5yZWRQb3coYyk7aWYoMCE9PWguY21wKGEpJiYwIT09aC5jbXAoZikpe2Zvcih2YXIgcD0xO3A8dTtwKyspe2lmKDA9PT0oaD1oLnJlZFNxcigpKS5jbXAoYSkpcmV0dXJuITE7aWYoMD09PWguY21wKGYpKWJyZWFrfWlmKHA9PT11KXJldHVybiExfX1yZXR1cm4hMH0sby5wcm90b3R5cGUuZ2V0RGl2aXNvcj1mdW5jdGlvbihlLHQpe3ZhciByPWUuYml0TGVuZ3RoKCksaT1uLm1vbnQoZSksbz1uZXcgbigxKS50b1JlZChpKTt0fHwodD1NYXRoLm1heCgxLHIvNDh8MCkpO2Zvcih2YXIgYT1lLnN1Ym4oMSkscz0wOyFhLnRlc3RuKHMpO3MrKyk7Zm9yKHZhciB1PWUuc2hybihzKSxjPWEudG9SZWQoaSk7dD4wO3QtLSl7dmFyIGY9dGhpcy5fcmFuZHJhbmdlKG5ldyBuKDIpLGEpLGw9ZS5nY2QoZik7aWYoMCE9PWwuY21wbigxKSlyZXR1cm4gbDt2YXIgaD1mLnRvUmVkKGkpLnJlZFBvdyh1KTtpZigwIT09aC5jbXAobykmJjAhPT1oLmNtcChjKSl7Zm9yKHZhciBwPTE7cDxzO3ArKyl7aWYoMD09PShoPWgucmVkU3FyKCkpLmNtcChvKSlyZXR1cm4gaC5mcm9tUmVkKCkuc3VibigxKS5nY2QoZSk7aWYoMD09PWguY21wKGMpKWJyZWFrfWlmKHA9PT1zKXJldHVybihoPWgucmVkU3FyKCkpLmZyb21SZWQoKS5zdWJuKDEpLmdjZChlKX19cmV0dXJuITF9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXQ7ZnVuY3Rpb24gaShlKXtyZXR1cm4gMT09PWUubGVuZ3RoPyIwIitlOmV9ZnVuY3Rpb24gbyhlKXtmb3IodmFyIHQ9IiIscj0wO3I8ZS5sZW5ndGg7cisrKXQrPWkoZVtyXS50b1N0cmluZygxNikpO3JldHVybiB0fW4udG9BcnJheT1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGUuc2xpY2UoKTtpZighZSlyZXR1cm5bXTt2YXIgcj1bXTtpZigic3RyaW5nIiE9PXR5cGVvZiBlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKylyW25dPTB8ZVtuXTtyZXR1cm4gcn1pZigiaGV4Ij09PXQpZm9yKChlPWUucmVwbGFjZSgvW15hLXowLTldKy9naSwiIikpLmxlbmd0aCUyIT09MCYmKGU9IjAiK2UpLG49MDtuPGUubGVuZ3RoO24rPTIpci5wdXNoKHBhcnNlSW50KGVbbl0rZVtuKzFdLDE2KSk7ZWxzZSBmb3Iobj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lLmNoYXJDb2RlQXQobiksbz1pPj44LGE9MjU1Jmk7bz9yLnB1c2gobyxhKTpyLnB1c2goYSl9cmV0dXJuIHJ9LG4uemVybzI9aSxuLnRvSGV4PW8sbi5lbmNvZGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4iaGV4Ij09PXQ/byhlKTplfX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10O24uYmFzZT1yKDE2MCksbi5zaG9ydD1yKDU5Miksbi5tb250PXIoNTkzKSxuLmVkd2FyZHM9cig1OTQpfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNTYpLnJvdHIzMjtmdW5jdGlvbiBpKGUsdCxyKXtyZXR1cm4gZSZ0Xn5lJnJ9ZnVuY3Rpb24gbyhlLHQscil7cmV0dXJuIGUmdF5lJnJedCZyfWZ1bmN0aW9uIGEoZSx0LHIpe3JldHVybiBlXnRecn10LmZ0XzE9ZnVuY3Rpb24oZSx0LHIsbil7cmV0dXJuIDA9PT1lP2kodCxyLG4pOjE9PT1lfHwzPT09ZT9hKHQscixuKToyPT09ZT9vKHQscixuKTp2b2lkIDB9LHQuY2gzMj1pLHQubWFqMzI9byx0LnAzMj1hLHQuczBfMjU2PWZ1bmN0aW9uKGUpe3JldHVybiBuKGUsMilebihlLDEzKV5uKGUsMjIpfSx0LnMxXzI1Nj1mdW5jdGlvbihlKXtyZXR1cm4gbihlLDYpXm4oZSwxMSlebihlLDI1KX0sdC5nMF8yNTY9ZnVuY3Rpb24oZSl7cmV0dXJuIG4oZSw3KV5uKGUsMTgpXmU+Pj4zfSx0LmcxXzI1Nj1mdW5jdGlvbihlKXtyZXR1cm4gbihlLDE3KV5uKGUsMTkpXmU+Pj4xMH19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig1NiksaT1yKDEzMCksbz1yKDMzMiksYT1yKDQ3KSxzPW4uc3VtMzIsdT1uLnN1bTMyXzQsYz1uLnN1bTMyXzUsZj1vLmNoMzIsbD1vLm1hajMyLGg9by5zMF8yNTYscD1vLnMxXzI1NixkPW8uZzBfMjU2LHk9by5nMV8yNTYsZz1pLkJsb2NrSGFzaCx2PVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdO2Z1bmN0aW9uIG0oKXtpZighKHRoaXMgaW5zdGFuY2VvZiBtKSlyZXR1cm4gbmV3IG07Zy5jYWxsKHRoaXMpLHRoaXMuaD1bMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdLHRoaXMuaz12LHRoaXMuVz1uZXcgQXJyYXkoNjQpfW4uaW5oZXJpdHMobSxnKSxlLmV4cG9ydHM9bSxtLmJsb2NrU2l6ZT01MTIsbS5vdXRTaXplPTI1NixtLmhtYWNTdHJlbmd0aD0xOTIsbS5wYWRMZW5ndGg9NjQsbS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj10aGlzLlcsbj0wO248MTY7bisrKXJbbl09ZVt0K25dO2Zvcig7bjxyLmxlbmd0aDtuKyspcltuXT11KHkocltuLTJdKSxyW24tN10sZChyW24tMTVdKSxyW24tMTZdKTt2YXIgaT10aGlzLmhbMF0sbz10aGlzLmhbMV0sZz10aGlzLmhbMl0sdj10aGlzLmhbM10sbT10aGlzLmhbNF0sYj10aGlzLmhbNV0sXz10aGlzLmhbNl0sUz10aGlzLmhbN107Zm9yKGEodGhpcy5rLmxlbmd0aD09PXIubGVuZ3RoKSxuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBFPWMoUyxwKG0pLGYobSxiLF8pLHRoaXMua1tuXSxyW25dKSx3PXMoaChpKSxsKGksbyxnKSk7Uz1fLF89YixiPW0sbT1zKHYsRSksdj1nLGc9byxvPWksaT1zKEUsdyl9dGhpcy5oWzBdPXModGhpcy5oWzBdLGkpLHRoaXMuaFsxXT1zKHRoaXMuaFsxXSxvKSx0aGlzLmhbMl09cyh0aGlzLmhbMl0sZyksdGhpcy5oWzNdPXModGhpcy5oWzNdLHYpLHRoaXMuaFs0XT1zKHRoaXMuaFs0XSxtKSx0aGlzLmhbNV09cyh0aGlzLmhbNV0sYiksdGhpcy5oWzZdPXModGhpcy5oWzZdLF8pLHRoaXMuaFs3XT1zKHRoaXMuaFs3XSxTKX0sbS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihlKXtyZXR1cm4iaGV4Ij09PWU/bi50b0hleDMyKHRoaXMuaCwiYmlnIik6bi5zcGxpdDMyKHRoaXMuaCwiYmlnIil9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNTYpLGk9cigxMzApLG89cig0NyksYT1uLnJvdHI2NF9oaSxzPW4ucm90cjY0X2xvLHU9bi5zaHI2NF9oaSxjPW4uc2hyNjRfbG8sZj1uLnN1bTY0LGw9bi5zdW02NF9oaSxoPW4uc3VtNjRfbG8scD1uLnN1bTY0XzRfaGksZD1uLnN1bTY0XzRfbG8seT1uLnN1bTY0XzVfaGksZz1uLnN1bTY0XzVfbG8sdj1pLkJsb2NrSGFzaCxtPVsxMTE2MzUyNDA4LDM2MDk3Njc0NTgsMTg5OTQ0NzQ0MSw2MDI4OTE3MjUsMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5LDM5MjEwMDk1NzMsMjE3MzI5NTU0OCw5NjE5ODcxNjMsNDA4MTYyODQ3MiwxNTA4OTcwOTkzLDMwNTM4MzQyNjUsMjQ1MzYzNTc0OCwyOTM3NjcxNTc5LDI4NzA3NjMyMjEsMzY2NDYwOTU2MCwzNjI0MzgxMDgwLDI3MzQ4ODMzOTQsMzEwNTk4NDAxLDExNjQ5OTY1NDIsNjA3MjI1Mjc4LDEzMjM2MTA3NjQsMTQyNjg4MTk4NywzNTkwMzA0OTk0LDE5MjUwNzgzODgsNDA2ODE4MjM4MywyMTYyMDc4MjA2LDk5MTMzNjExMywyNjE0ODg4MTAzLDYzMzgwMzMxNywzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgsMzgzNTM5MDQwMSwyNjY2NjEzNDU4LDQwMjIyMjQ3NzQsOTQ0NzExMTM5LDI2NDM0NzA3OCwyMzQxMjYyNzczLDYwNDgwNzYyOCwyMDA3ODAwOTMzLDc3MDI1NTk4MywxNDk1OTkwOTAxLDEyNDkxNTAxMjIsMTg1NjQzMTIzNSwxNTU1MDgxNjkyLDMxNzUyMTgxMzIsMTk5NjA2NDk4NiwyMTk4OTUwODM3LDI1NTQyMjA4ODIsMzk5OTcxOTMzOSwyODIxODM0MzQ5LDc2Njc4NDAxNiwyOTUyOTk2ODA4LDI1NjY1OTQ4NzksMzIxMDMxMzY3MSwzMjAzMzM3OTU2LDMzMzY1NzE4OTEsMTAzNDQ1NzAyNiwzNTg0NTI4NzExLDI0NjY5NDg5MDEsMTEzOTI2OTkzLDM3NTgzMjYzODMsMzM4MjQxODk1LDE2ODcxNzkzNiw2NjYzMDcyMDUsMTE4ODE3OTk2NCw3NzM1Mjk5MTIsMTU0NjA0NTczNCwxMjk0NzU3MzcyLDE1MjI4MDU0ODUsMTM5NjE4MjI5MSwyNjQzODMzODIzLDE2OTUxODM3MDAsMjM0MzUyNzM5MCwxOTg2NjYxMDUxLDEwMTQ0Nzc0ODAsMjE3NzAyNjM1MCwxMjA2NzU5MTQyLDI0NTY5NTYwMzcsMzQ0MDc3NjI3LDI3MzA0ODU5MjEsMTI5MDg2MzQ2MCwyODIwMzAyNDExLDMxNTg0NTQyNzMsMzI1OTczMDgwMCwzNTA1OTUyNjU3LDMzNDU3NjQ3NzEsMTA2MjE3MDA4LDM1MTYwNjU4MTcsMzYwNjAwODM0NCwzNjAwMzUyODA0LDE0MzI3MjU3NzYsNDA5NDU3MTkwOSwxNDY3MDMxNTk0LDI3NTQyMzM0NCw4NTExNjk3MjAsNDMwMjI3NzM0LDMxMDA4MjM3NTIsNTA2OTQ4NjE2LDEzNjMyNTgxOTUsNjU5MDYwNTU2LDM3NTA2ODU1OTMsODgzOTk3ODc3LDM3ODUwNTAyODAsOTU4MTM5NTcxLDMzMTgzMDc0MjcsMTMyMjgyMjIxOCwzODEyNzIzNDAzLDE1MzcwMDIwNjMsMjAwMzAzNDk5NSwxNzQ3ODczNzc5LDM2MDIwMzY4OTksMTk1NTU2MjIyMiwxNTc1OTkwMDEyLDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCwyMjI3NzMwNDUyLDI3MTY5MDQzMDYsMjM2MTg1MjQyNCw0NDI3NzYwNDQsMjQyODQzNjQ3NCw1OTM2OTgzNDQsMjc1NjczNDE4NywzNzMzMTEwMjQ5LDMyMDQwMzE0NzksMjk5OTM1MTU3MywzMzI5MzI1Mjk4LDM4MTU5MjA0MjcsMzM5MTU2OTYxNCwzOTI4MzgzOTAwLDM1MTUyNjcyNzEsNTY2MjgwNzExLDM5NDAxODc2MDYsMzQ1NDA2OTUzNCw0MTE4NjMwMjcxLDQwMDAyMzk5OTIsMTE2NDE4NDc0LDE5MTQxMzg1NTQsMTc0MjkyNDIxLDI3MzEwNTUyNzAsMjg5MzgwMzU2LDMyMDM5OTMwMDYsNDYwMzkzMjY5LDMyMDYyMDMxNSw2ODU0NzE3MzMsNTg3NDk2ODM2LDg1MjE0Mjk3MSwxMDg2NzkyODUxLDEwMTcwMzYyOTgsMzY1NTQzMTAwLDExMjYwMDA1ODAsMjYxODI5NzY3NiwxMjg4MDMzNDcwLDM0MDk4NTUxNTgsMTUwMTUwNTk0OCw0MjM0NTA5ODY2LDE2MDcxNjc5MTUsOTg3MTY3NDY4LDE4MTY0MDIzMTYsMTI0NjE4OTU5MV07ZnVuY3Rpb24gYigpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGIpKXJldHVybiBuZXcgYjt2LmNhbGwodGhpcyksdGhpcy5oPVsxNzc5MDMzNzAzLDQwODkyMzU3MjAsMzE0NDEzNDI3NywyMjI3ODczNTk1LDEwMTM5MDQyNDIsNDI3MTE3NTcyMywyNzczNDgwNzYyLDE1OTU3NTAxMjksMTM1OTg5MzExOSwyOTE3NTY1MTM3LDI2MDA4MjI5MjQsNzI1NTExMTk5LDUyODczNDYzNSw0MjE1Mzg5NTQ3LDE1NDE0NTkyMjUsMzI3MDMzMjA5XSx0aGlzLms9bSx0aGlzLlc9bmV3IEFycmF5KDE2MCl9ZnVuY3Rpb24gXyhlLHQscixuLGkpe3ZhciBvPWUmcl5+ZSZpO3JldHVybiBvPDAmJihvKz00Mjk0OTY3Mjk2KSxvfWZ1bmN0aW9uIFMoZSx0LHIsbixpLG8pe3ZhciBhPXQmbl5+dCZvO3JldHVybiBhPDAmJihhKz00Mjk0OTY3Mjk2KSxhfWZ1bmN0aW9uIEUoZSx0LHIsbixpKXt2YXIgbz1lJnJeZSZpXnImaTtyZXR1cm4gbzwwJiYobys9NDI5NDk2NzI5Niksb31mdW5jdGlvbiB3KGUsdCxyLG4saSxvKXt2YXIgYT10Jm5edCZvXm4mbztyZXR1cm4gYTwwJiYoYSs9NDI5NDk2NzI5NiksYX1mdW5jdGlvbiBUKGUsdCl7dmFyIHI9YShlLHQsMjgpXmEodCxlLDIpXmEodCxlLDcpO3JldHVybiByPDAmJihyKz00Mjk0OTY3Mjk2KSxyfWZ1bmN0aW9uIEEoZSx0KXt2YXIgcj1zKGUsdCwyOClecyh0LGUsMilecyh0LGUsNyk7cmV0dXJuIHI8MCYmKHIrPTQyOTQ5NjcyOTYpLHJ9ZnVuY3Rpb24gQyhlLHQpe3ZhciByPWEoZSx0LDE0KV5hKGUsdCwxOCleYSh0LGUsOSk7cmV0dXJuIHI8MCYmKHIrPTQyOTQ5NjcyOTYpLHJ9ZnVuY3Rpb24geChlLHQpe3ZhciByPXMoZSx0LDE0KV5zKGUsdCwxOClecyh0LGUsOSk7cmV0dXJuIHI8MCYmKHIrPTQyOTQ5NjcyOTYpLHJ9ZnVuY3Rpb24gSShlLHQpe3ZhciByPWEoZSx0LDEpXmEoZSx0LDgpXnUoZSx0LDcpO3JldHVybiByPDAmJihyKz00Mjk0OTY3Mjk2KSxyfWZ1bmN0aW9uIGsoZSx0KXt2YXIgcj1zKGUsdCwxKV5zKGUsdCw4KV5jKGUsdCw3KTtyZXR1cm4gcjwwJiYocis9NDI5NDk2NzI5Nikscn1mdW5jdGlvbiBPKGUsdCl7dmFyIHI9YShlLHQsMTkpXmEodCxlLDI5KV51KGUsdCw2KTtyZXR1cm4gcjwwJiYocis9NDI5NDk2NzI5Nikscn1mdW5jdGlvbiBOKGUsdCl7dmFyIHI9cyhlLHQsMTkpXnModCxlLDI5KV5jKGUsdCw2KTtyZXR1cm4gcjwwJiYocis9NDI5NDk2NzI5Nikscn1uLmluaGVyaXRzKGIsdiksZS5leHBvcnRzPWIsYi5ibG9ja1NpemU9MTAyNCxiLm91dFNpemU9NTEyLGIuaG1hY1N0cmVuZ3RoPTE5MixiLnBhZExlbmd0aD0xMjgsYi5wcm90b3R5cGUuX3ByZXBhcmVCbG9jaz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgcj10aGlzLlcsbj0wO248MzI7bisrKXJbbl09ZVt0K25dO2Zvcig7bjxyLmxlbmd0aDtuKz0yKXt2YXIgaT1PKHJbbi00XSxyW24tM10pLG89TihyW24tNF0scltuLTNdKSxhPXJbbi0xNF0scz1yW24tMTNdLHU9SShyW24tMzBdLHJbbi0yOV0pLGM9ayhyW24tMzBdLHJbbi0yOV0pLGY9cltuLTMyXSxsPXJbbi0zMV07cltuXT1wKGksbyxhLHMsdSxjLGYsbCkscltuKzFdPWQoaSxvLGEscyx1LGMsZixsKX19LGIucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oZSx0KXt0aGlzLl9wcmVwYXJlQmxvY2soZSx0KTt2YXIgcj10aGlzLlcsbj10aGlzLmhbMF0saT10aGlzLmhbMV0sYT10aGlzLmhbMl0scz10aGlzLmhbM10sdT10aGlzLmhbNF0sYz10aGlzLmhbNV0scD10aGlzLmhbNl0sZD10aGlzLmhbN10sdj10aGlzLmhbOF0sbT10aGlzLmhbOV0sYj10aGlzLmhbMTBdLEk9dGhpcy5oWzExXSxrPXRoaXMuaFsxMl0sTz10aGlzLmhbMTNdLE49dGhpcy5oWzE0XSxQPXRoaXMuaFsxNV07byh0aGlzLmsubGVuZ3RoPT09ci5sZW5ndGgpO2Zvcih2YXIgUj0wO1I8ci5sZW5ndGg7Uis9Mil7dmFyIEI9TixNPVAsTD1DKHYsbSksRD14KHYsbSksaj1fKHYsbSxiLEksayksVT1TKHYsbSxiLEksayxPKSxGPXRoaXMua1tSXSxWPXRoaXMua1tSKzFdLHE9cltSXSxLPXJbUisxXSx6PXkoQixNLEwsRCxqLFUsRixWLHEsSyksRz1nKEIsTSxMLEQsaixVLEYsVixxLEspO0I9VChuLGkpLE09QShuLGkpLEw9RShuLGksYSxzLHUpLEQ9dyhuLGksYSxzLHUsYyk7dmFyIEg9bChCLE0sTCxEKSxXPWgoQixNLEwsRCk7Tj1rLFA9TyxrPWIsTz1JLGI9dixJPW0sdj1sKHAsZCx6LEcpLG09aChkLGQseixHKSxwPXUsZD1jLHU9YSxjPXMsYT1uLHM9aSxuPWwoeixHLEgsVyksaT1oKHosRyxILFcpfWYodGhpcy5oLDAsbixpKSxmKHRoaXMuaCwyLGEscyksZih0aGlzLmgsNCx1LGMpLGYodGhpcy5oLDYscCxkKSxmKHRoaXMuaCw4LHYsbSksZih0aGlzLmgsMTAsYixJKSxmKHRoaXMuaCwxMixrLE8pLGYodGhpcy5oLDE0LE4sUCl9LGIucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oZSl7cmV0dXJuImhleCI9PT1lP24udG9IZXgzMih0aGlzLmgsImJpZyIpOm4uc3BsaXQzMih0aGlzLmgsImJpZyIpfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNyksaT1yKDEzMikuUmVwb3J0ZXIsbz1yKDE4KS5CdWZmZXI7ZnVuY3Rpb24gYShlLHQpe2kuY2FsbCh0aGlzLHQpLG8uaXNCdWZmZXIoZSk/KHRoaXMuYmFzZT1lLHRoaXMub2Zmc2V0PTAsdGhpcy5sZW5ndGg9ZS5sZW5ndGgpOnRoaXMuZXJyb3IoIklucHV0IG5vdCBCdWZmZXIiKX1mdW5jdGlvbiBzKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSl0aGlzLmxlbmd0aD0wLHRoaXMudmFsdWU9ZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBzfHwoZT1uZXcgcyhlLHQpKSx0aGlzLmxlbmd0aCs9ZS5sZW5ndGgsZX0sdGhpcyk7ZWxzZSBpZigibnVtYmVyIj09PXR5cGVvZiBlKXtpZighKDA8PWUmJmU8PTI1NSkpcmV0dXJuIHQuZXJyb3IoIm5vbi1ieXRlIEVuY29kZXJCdWZmZXIgdmFsdWUiKTt0aGlzLnZhbHVlPWUsdGhpcy5sZW5ndGg9MX1lbHNlIGlmKCJzdHJpbmciPT09dHlwZW9mIGUpdGhpcy52YWx1ZT1lLHRoaXMubGVuZ3RoPW8uYnl0ZUxlbmd0aChlKTtlbHNle2lmKCFvLmlzQnVmZmVyKGUpKXJldHVybiB0LmVycm9yKCJVbnN1cHBvcnRlZCB0eXBlOiAiK3R5cGVvZiBlKTt0aGlzLnZhbHVlPWUsdGhpcy5sZW5ndGg9ZS5sZW5ndGh9fW4oYSxpKSx0LkRlY29kZXJCdWZmZXI9YSxhLnByb3RvdHlwZS5zYXZlPWZ1bmN0aW9uKCl7cmV0dXJue29mZnNldDp0aGlzLm9mZnNldCxyZXBvcnRlcjppLnByb3RvdHlwZS5zYXZlLmNhbGwodGhpcyl9fSxhLnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBhKHRoaXMuYmFzZSk7cmV0dXJuIHQub2Zmc2V0PWUub2Zmc2V0LHQubGVuZ3RoPXRoaXMub2Zmc2V0LHRoaXMub2Zmc2V0PWUub2Zmc2V0LGkucHJvdG90eXBlLnJlc3RvcmUuY2FsbCh0aGlzLGUucmVwb3J0ZXIpLHR9LGEucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vZmZzZXQ9PT10aGlzLmxlbmd0aH0sYS5wcm90b3R5cGUucmVhZFVJbnQ4PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLm9mZnNldCsxPD10aGlzLmxlbmd0aD90aGlzLmJhc2UucmVhZFVJbnQ4KHRoaXMub2Zmc2V0KyssITApOnRoaXMuZXJyb3IoZXx8IkRlY29kZXJCdWZmZXIgb3ZlcnJ1biIpfSxhLnByb3RvdHlwZS5za2lwPWZ1bmN0aW9uKGUsdCl7aWYoISh0aGlzLm9mZnNldCtlPD10aGlzLmxlbmd0aCkpcmV0dXJuIHRoaXMuZXJyb3IodHx8IkRlY29kZXJCdWZmZXIgb3ZlcnJ1biIpO3ZhciByPW5ldyBhKHRoaXMuYmFzZSk7cmV0dXJuIHIuX3JlcG9ydGVyU3RhdGU9dGhpcy5fcmVwb3J0ZXJTdGF0ZSxyLm9mZnNldD10aGlzLm9mZnNldCxyLmxlbmd0aD10aGlzLm9mZnNldCtlLHRoaXMub2Zmc2V0Kz1lLHJ9LGEucHJvdG90eXBlLnJhdz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5iYXNlLnNsaWNlKGU/ZS5vZmZzZXQ6dGhpcy5vZmZzZXQsdGhpcy5sZW5ndGgpfSx0LkVuY29kZXJCdWZmZXI9cyxzLnByb3RvdHlwZS5qb2luPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGV8fChlPW5ldyBvKHRoaXMubGVuZ3RoKSksdHx8KHQ9MCksMD09PXRoaXMubGVuZ3RoP2U6KEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSk/dGhpcy52YWx1ZS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3Iuam9pbihlLHQpLHQrPXIubGVuZ3RofSk6KCJudW1iZXIiPT09dHlwZW9mIHRoaXMudmFsdWU/ZVt0XT10aGlzLnZhbHVlOiJzdHJpbmciPT09dHlwZW9mIHRoaXMudmFsdWU/ZS53cml0ZSh0aGlzLnZhbHVlLHQpOm8uaXNCdWZmZXIodGhpcy52YWx1ZSkmJnRoaXMudmFsdWUuY29weShlLHQpLHQrPXRoaXMubGVuZ3RoKSxlKX19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj10O24uX3JldmVyc2U9ZnVuY3Rpb24oZSl7dmFyIHQ9e307cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24ocil7KDB8cik9PXImJihyfD0wKTt2YXIgbj1lW3JdO3Rbbl09cn0pLHR9LG4uZGVyPXIoNjE0KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoNyksaT1yKDEzMSksbz1pLmJhc2UsYT1pLmJpZ251bSxzPWkuY29uc3RhbnRzLmRlcjtmdW5jdGlvbiB1KGUpe3RoaXMuZW5jPSJkZXIiLHRoaXMubmFtZT1lLm5hbWUsdGhpcy5lbnRpdHk9ZSx0aGlzLnRyZWU9bmV3IGMsdGhpcy50cmVlLl9pbml0KGUuYm9keSl9ZnVuY3Rpb24gYyhlKXtvLk5vZGUuY2FsbCh0aGlzLCJkZXIiLGUpfWZ1bmN0aW9uIGYoZSx0KXt2YXIgcj1lLnJlYWRVSW50OCh0KTtpZihlLmlzRXJyb3IocikpcmV0dXJuIHI7dmFyIG49cy50YWdDbGFzc1tyPj42XSxpPTA9PT0oMzImcik7aWYoMzE9PT0oMzEmcikpe3ZhciBvPXI7Zm9yKHI9MDsxMjg9PT0oMTI4Jm8pOyl7aWYobz1lLnJlYWRVSW50OCh0KSxlLmlzRXJyb3IobykpcmV0dXJuIG87cjw8PTcscnw9MTI3Jm99fWVsc2UgciY9MzE7cmV0dXJue2NsczpuLHByaW1pdGl2ZTppLHRhZzpyLHRhZ1N0cjpzLnRhZ1tyXX19ZnVuY3Rpb24gbChlLHQscil7dmFyIG49ZS5yZWFkVUludDgocik7aWYoZS5pc0Vycm9yKG4pKXJldHVybiBuO2lmKCF0JiYxMjg9PT1uKXJldHVybiBudWxsO2lmKDA9PT0oMTI4Jm4pKXJldHVybiBuO3ZhciBpPTEyNyZuO2lmKGk+NClyZXR1cm4gZS5lcnJvcigibGVuZ3RoIG9jdGVjdCBpcyB0b28gbG9uZyIpO249MDtmb3IodmFyIG89MDtvPGk7bysrKXtuPDw9ODt2YXIgYT1lLnJlYWRVSW50OChyKTtpZihlLmlzRXJyb3IoYSkpcmV0dXJuIGE7bnw9YX1yZXR1cm4gbn1lLmV4cG9ydHM9dSx1LnByb3RvdHlwZS5kZWNvZGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIG8uRGVjb2RlckJ1ZmZlcnx8KGU9bmV3IG8uRGVjb2RlckJ1ZmZlcihlLHQpKSx0aGlzLnRyZWUuX2RlY29kZShlLHQpfSxuKGMsby5Ob2RlKSxjLnByb3RvdHlwZS5fcGVla1RhZz1mdW5jdGlvbihlLHQscil7aWYoZS5pc0VtcHR5KCkpcmV0dXJuITE7dmFyIG49ZS5zYXZlKCksaT1mKGUsJ0ZhaWxlZCB0byBwZWVrIHRhZzogIicrdCsnIicpO3JldHVybiBlLmlzRXJyb3IoaSk/aTooZS5yZXN0b3JlKG4pLGkudGFnPT09dHx8aS50YWdTdHI9PT10fHxpLnRhZ1N0cisib2YiPT09dHx8cil9LGMucHJvdG90eXBlLl9kZWNvZGVUYWc9ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPWYoZSwnRmFpbGVkIHRvIGRlY29kZSB0YWcgb2YgIicrdCsnIicpO2lmKGUuaXNFcnJvcihuKSlyZXR1cm4gbjt2YXIgaT1sKGUsbi5wcmltaXRpdmUsJ0ZhaWxlZCB0byBnZXQgbGVuZ3RoIG9mICInK3QrJyInKTtpZihlLmlzRXJyb3IoaSkpcmV0dXJuIGk7aWYoIXImJm4udGFnIT09dCYmbi50YWdTdHIhPT10JiZuLnRhZ1N0cisib2YiIT09dClyZXR1cm4gZS5lcnJvcignRmFpbGVkIHRvIG1hdGNoIHRhZzogIicrdCsnIicpO2lmKG4ucHJpbWl0aXZlfHxudWxsIT09aSlyZXR1cm4gZS5za2lwKGksJ0ZhaWxlZCB0byBtYXRjaCBib2R5IG9mOiAiJyt0KyciJyk7dmFyIG89ZS5zYXZlKCksYT10aGlzLl9za2lwVW50aWxFbmQoZSwnRmFpbGVkIHRvIHNraXAgaW5kZWZpbml0ZSBsZW5ndGggYm9keTogIicrdGhpcy50YWcrJyInKTtyZXR1cm4gZS5pc0Vycm9yKGEpP2E6KGk9ZS5vZmZzZXQtby5vZmZzZXQsZS5yZXN0b3JlKG8pLGUuc2tpcChpLCdGYWlsZWQgdG8gbWF0Y2ggYm9keSBvZjogIicrdCsnIicpKX0sYy5wcm90b3R5cGUuX3NraXBVbnRpbEVuZD1mdW5jdGlvbihlLHQpe2Zvcig7Oyl7dmFyIHI9ZihlLHQpO2lmKGUuaXNFcnJvcihyKSlyZXR1cm4gcjt2YXIgbixpPWwoZSxyLnByaW1pdGl2ZSx0KTtpZihlLmlzRXJyb3IoaSkpcmV0dXJuIGk7aWYobj1yLnByaW1pdGl2ZXx8bnVsbCE9PWk/ZS5za2lwKGkpOnRoaXMuX3NraXBVbnRpbEVuZChlLHQpLGUuaXNFcnJvcihuKSlyZXR1cm4gbjtpZigiZW5kIj09PXIudGFnU3RyKWJyZWFrfX0sYy5wcm90b3R5cGUuX2RlY29kZUxpc3Q9ZnVuY3Rpb24oZSx0LHIsbil7Zm9yKHZhciBpPVtdOyFlLmlzRW1wdHkoKTspe3ZhciBvPXRoaXMuX3BlZWtUYWcoZSwiZW5kIik7aWYoZS5pc0Vycm9yKG8pKXJldHVybiBvO3ZhciBhPXIuZGVjb2RlKGUsImRlciIsbik7aWYoZS5pc0Vycm9yKGEpJiZvKWJyZWFrO2kucHVzaChhKX1yZXR1cm4gaX0sYy5wcm90b3R5cGUuX2RlY29kZVN0cj1mdW5jdGlvbihlLHQpe2lmKCJiaXRzdHIiPT09dCl7dmFyIHI9ZS5yZWFkVUludDgoKTtyZXR1cm4gZS5pc0Vycm9yKHIpP3I6e3VudXNlZDpyLGRhdGE6ZS5yYXcoKX19aWYoImJtcHN0ciI9PT10KXt2YXIgbj1lLnJhdygpO2lmKG4ubGVuZ3RoJTI9PT0xKXJldHVybiBlLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogYm1wc3RyIGxlbmd0aCBtaXNtYXRjaCIpO2Zvcih2YXIgaT0iIixvPTA7bzxuLmxlbmd0aC8yO28rKylpKz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4ucmVhZFVJbnQxNkJFKDIqbykpO3JldHVybiBpfWlmKCJudW1zdHIiPT09dCl7dmFyIGE9ZS5yYXcoKS50b1N0cmluZygiYXNjaWkiKTtyZXR1cm4gdGhpcy5faXNOdW1zdHIoYSk/YTplLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogbnVtc3RyIHVuc3VwcG9ydGVkIGNoYXJhY3RlcnMiKX1pZigib2N0c3RyIj09PXQpcmV0dXJuIGUucmF3KCk7aWYoIm9iakRlc2MiPT09dClyZXR1cm4gZS5yYXcoKTtpZigicHJpbnRzdHIiPT09dCl7dmFyIHM9ZS5yYXcoKS50b1N0cmluZygiYXNjaWkiKTtyZXR1cm4gdGhpcy5faXNQcmludHN0cg=="
}

github/deemru/w8io/169f3d6 
2.59 ms