diff --git a/маджонг_2.0.0.html b/маджонг_2.0.0.html index f2e54b1..dc61f61 100644 --- a/маджонг_2.0.0.html +++ b/маджонг_2.0.0.html @@ -180,7 +180,7 @@ var murom = муром; [ "игра.реакции", -"Ly8gLy8gLy8gLy8KCmZ1bmN0aW9uINCf0L7QutCw0LfQsNGC0YzQodGE0LXRgNGDKNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyINGE0L7RgNC80LAgPSBuZXcgVEhSRUUuU3BoZXJlQnVmZmVyR2VvbWV0cnkoMC4xLCAzMiwgMzIpOwogICAgICAgIHZhciDRgdGE0LXRgNCwID0gbmV3IFRIUkVFLk1lc2go0YTQvtGA0LzQsCk7CiAgICAgICAgdmFyINC60L7RgNC10L3RjCA9INC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItC60L7RgNC10L3RjCJdOwogICAgICAgINC60L7RgNC10L3RjC5hZGQo0YHRhNC10YDQsCk7CiAgICB9Owp9CgovLyAvLyAvLyAvLwoKZnVuY3Rpb24g0J/QvtC00LPQvtGC0L7QstC40YLRjNCh0YbQtdC90YMo0LzQuNGAKQp7CiAgICB0aGlzLtC40YHQv9C+0LvQvdC40YLRjCA9IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLQutCw0LzQtdGA0LAiXS5wb3NpdGlvbi56ID0gMTA7CiAgICAgICAgLy8g0KHQvtC30LTQsNGR0Lwg0LjRgdGC0L7Rh9C90LjQuiDRgdCy0LXRgtCwLgogICAgICAgIHZhciDRgdCy0LXRgiA9IG5ldyBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0KDB4ZmZmZmZmLCAxKTsKICAgICAgICDRgdCy0LXRgi5wb3NpdGlvbi5zZXQoLTAuNSwgMC41LCAxKS5ub3JtYWxpemUoKTsKICAgICAgICB2YXIg0YHRhtC10L3QsCA9INC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItGB0YbQtdC90LAiXTsKICAgICAgICDRgdGG0LXQvdCwLmFkZCjRgdCy0LXRgik7CiAgICAgICAgLy8g0KHQvtC30LTQsNGR0Lwg0LrQvtGA0LXQvdGMLgogICAgICAgIHZhciDQutC+0YDQtdC90YwgPSBuZXcgVEhSRUUuR3JvdXAoKTsKICAgICAgICDRgdGG0LXQvdCwLmFkZCjQutC+0YDQtdC90YwpOwogICAgICAgINC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItC60L7RgNC10L3RjCJdID0g0LrQvtGA0LXQvdGMOwogICAgfTsKfQoKLy8gLy8gLy8gLy8KCmZ1bmN0aW9uINCS0YvQsdGA0LDRgtGM0J/QtdGA0LLRg9GO0KLQtdC80YMo0LzQuNGAKQp7CiAgICB0aGlzLtC40YHQv9C+0LvQvdC40YLRjCA9IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICB2YXIg0YLQtdC80YsgPSDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLRgtC10LzRiyJdOwogICAgICAgINGC0LXQvNGLLtCy0YvQsdGA0LDRgtGMKDApOwogICAgfTsKfQoKLy8gLy8gLy8gLy8KCmZ1bmN0aW9uINCU0L7QsdCw0LLQuNGC0YzQotC10LzRi9CS0YHRgtGA0L7QtdC90L3Ri9C1KNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyINGC0LXQvNGLID0g0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtVsi0YLQtdC80YsiXTsKICAgICAgICB2YXIg0YI2NCA9INCc0J7QlC7QvNC+0LTRg9C70YwoItGC0LXQvNGLINCy0YHRgtGA0L7QtdC90L3Ri9C1IikuY29kZTY0OwogICAgICAgIGV2YWwo0LzRg9GA0L7QvC5hdG9iKNGCNjQpKTsKICAgICAgICDRgtC10LzRiy7QtNC+0LHQsNCy0LjRgtGMKNCc0KAoKSk7CiAgICB9Owp9CgovLyAvLyAvLyAvLwoKZnVuY3Rpb24g0KHQvtC30LTQsNGC0YzQl9Cw0LLQotC10Lwo0LzQuNGAKQp7CiAgICB0aGlzLtC40YHQv9C+0LvQvdC40YLRjCA9IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLRgtC10LzRiyJdID0gbmV3INCd0LDQsdC+0YAoKTsKICAgIH07Cn0KCi8vIC8vIC8vIC8vCgpmdW5jdGlvbiDQktGL0LHRgNCw0YLRjNCf0LXRgNCy0YPRjtCg0LDRgdC60LvQsNC00LrRgyjQvNC40YApCnsKICAgIHRoaXMu0LjRgdC/0L7Qu9C90LjRgtGMID0gZnVuY3Rpb24oKQogICAgewogICAgICAgIHZhciDRgNCw0YHQutC70LDQtNC60LggPSDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLRgNCw0YHQutC70LDQtNC60LgiXTsKICAgICAgICDRgNCw0YHQutC70LDQtNC60Lgu0LLRi9Cx0YDQsNGC0YwoMCk7CiAgICB9Owp9CgovLyAvLyAvLyAvLwoKZnVuY3Rpb24g0KHQuNC90YXRgNC40YLRjNCh0L/QuNGB0L7QutCg0LDRgdC60LvQsNC00L7QutCh0JfQsNCy0L7QvCjQvNC40YApCnsKICAgIHRoaXMu0LjRgdC/0L7Qu9C90LjRgtGMID0gZnVuY3Rpb24oKQogICAgewogICAgICAgIHZhciDRgNCw0YHQutC70LDQtNC60LggPSDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLRgNCw0YHQutC70LDQtNC60LgiXTsKICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CiAgICAgICAg0YDQsNGB0LrQu9Cw0LTQutC4LtC40LfQvNC10L3QuNC70LjQodC/0LjRgdC+0Lou0L/QvtC00L/QuNGB0LDRgtGMKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBzZWxmLtC+0LHQvdC+0LLQuNGC0YzQodC/0LjRgdC+0LooKTsKICAgICAgICB9KTsKICAgICAgICDRgNCw0YHQutC70LDQtNC60Lgu0LjQt9C80LXQvdC40LvQuNCS0YvQsdC+0YAu0L/QvtC00L/QuNGB0LDRgtGMKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBzZWxmLtC+0LHQvdC+0LLQuNGC0YzQktGL0LHQvtGAKCk7CiAgICAgICAgfSk7CiAgICB9OwogICAgCiAgICB0aGlzLtC+0LHQvdC+0LLQuNGC0YzQodC/0LjRgdC+0LogPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyINGA0LDRgdC60LvQsNC00LrQuCA9INC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItGA0LDRgdC60LvQsNC00LrQuCJdOwogICAgICAgIHZhciDRgdC/0LjRgdC+0LogPSDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLRgdC/0LjRgdC+0Log0YDQsNGB0LrQu9Cw0LTQvtC6Il07CiAgICAgICAgdmFyINC40LzQtdC90LDQntC/0LjRgdCw0L3QuNGPID0gdGhpcy7QuNC80LXQvdCw0J7Qv9C40YHQsNC90LjRj9Cg0LDRgdC60LvQsNC00L7QuijRgNCw0YHQutC70LDQtNC60Lgu0YHQv9C40YHQvtC6KTsKICAgICAgICDRgdC/0LjRgdC+0Lou0LfQsNC00LDRgtGMKNC40LzQtdC90LDQntC/0LjRgdCw0L3QuNGPKTsKICAgIH07CiAgICAKICAgIHRoaXMu0L7QsdC90L7QstC40YLRjNCS0YvQsdC+0YAgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyINGA0LDRgdC60LvQsNC00LrQuCA9INC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItGA0LDRgdC60LvQsNC00LrQuCJdOwogICAgICAgIHZhciDRgdC/0LjRgdC+0LogPSDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLRgdC/0LjRgdC+0Log0YDQsNGB0LrQu9Cw0LTQvtC6Il07CiAgICAgICAg0YHQv9C40YHQvtC6LtCy0YvQsdGA0LDRgtGMKNGA0LDRgdC60LvQsNC00LrQuC7QstGL0LHQvtGAKTsKICAgIH07CiAgICAKICAgIHRoaXMu0LjQvNC10L3QsNCe0L/QuNGB0LDQvdC40Y/QoNCw0YHQutC70LDQtNC+0LogPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyINGA0LDRgdC60LvQsNC00LrQuCA9INC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItGA0LDRgdC60LvQsNC00LrQuCJdLtGB0L/QuNGB0L7QujsKICAgICAgICB2YXIg0YHQv9C40YHQvtC6ID0gW107CiAgICAgICAgZm9yICh2YXIg0L3QvtC80LXRgCBpbiDRgNCw0YHQutC70LDQtNC60LgpCiAgICAgICAgewogICAgICAgICAgICB2YXIg0YAgPSDRgNCw0YHQutC70LDQtNC60Lhb0L3QvtC80LXRgF07CiAgICAgICAgICAgINGB0L/QuNGB0L7Qui5wdXNoKFvRgC7QuNC80Y8sINGALtC+0L/QuNGB0LDQvdC40LVdKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuINGB0L/QuNGB0L7QujsKICAgIH07Cn0KCi8vIC8vIC8vIC8vCgpmdW5jdGlvbiDQlNC+0LHQsNCy0LjRgtGM0J7RgtC70LDQtNC+0YfQvdGL0LXQoNCw0YHQutC70LDQtNC60Lgo0LzQuNGAKQp7CiAgICB0aGlzLtC40YHQv9C+0LvQvdC40YLRjCA9IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICB2YXIg0YDQsNGB0LrQu9Cw0LTQutC4ID0g0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtVsi0YDQsNGB0LrQu9Cw0LTQutC4Il07CiAgICAgICAgdmFyINGANjQgPSDQnNCe0JQu0LzQvtC00YPQu9GMKCLQvtGC0LvQsNC00L7Rh9C90YvQtSDRgNCw0YHQutC70LDQtNC60LgiKS5jb2RlNjQ7CiAgICAgICAgZXZhbCjQvNGD0YDQvtC8LmF0b2Io0YA2NCkpOwogICAgICAgINGA0LDRgdC60LvQsNC00LrQuC7QtNC+0LHQsNCy0LjRgtGMKNCc0KAoKSk7CiAgICB9Owp9CgovLyAvLyAvLyAvLwoKZnVuY3Rpb24g0JTQvtCx0LDQstC40YLRjNCS0YHRgtGA0L7QtdC90L3Ri9C10KDQsNGB0LrQu9Cw0LTQutC4KNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyINGA0LDRgdC60LvQsNC00LrQuCA9INC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItGA0LDRgdC60LvQsNC00LrQuCJdOwogICAgICAgIHZhciDRgDY0ID0g0JzQntCULtC80L7QtNGD0LvRjCgi0LLRgdGC0YDQvtC10L3QvdGL0LUg0YDQsNGB0LrQu9Cw0LTQutC4IikuY29kZTY0OwogICAgICAgIGV2YWwo0LzRg9GA0L7QvC5hdG9iKNGANjQpKTsKICAgICAgICDRgNCw0YHQutC70LDQtNC60Lgu0LTQvtCx0LDQstC40YLRjCjQnNCgKCkpOwogICAgfTsKfQoKLy8gLy8gLy8gLy8KCmZ1bmN0aW9uINCh0L7Qt9C00LDRgtGM0KHQv9C40YHQvtC60KDQsNGB0LrQu9Cw0LTQvtC6KNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAg0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtVsi0YHQv9C40YHQvtC6INGA0LDRgdC60LvQsNC00L7QuiJdID0gbmV3INCh0L/QuNGB0L7Quigi0YDQsNGB0LrQu9Cw0LTQutC4LdGA0LDRgdC60LvQsNC00LrQuCIpOwogICAgfTsKfQoKLy8gLy8gLy8gLy8KCmZ1bmN0aW9uINCh0L7Qt9C00LDRgtGM0JfQsNCy0KDQsNGB0LrQu9Cw0LTQvtC6KNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAg0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtVsi0YDQsNGB0LrQu9Cw0LTQutC4Il0gPSBuZXcg0J3QsNCx0L7RgCgpOwogICAgfTsKfQoKLy8gLy8gLy8gLy8KCmZ1bmN0aW9uINCf0LXRgNC10LrQu9GO0YfQuNGC0YzQrdC60YDQsNC90KDQsNGB0LrQu9Cw0LTQvtC6KNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgJCgiI9GA0LDRgdC60LvQsNC00LrQuCIpLmZhZGVUb2dnbGUoImZhc3QiKTsKICAgIH07Cn0KCi8vIC8vIC8vIC8vCgpmdW5jdGlvbiDQlNC+0LHQsNCy0LjRgtGM0K3QutGA0LDQvdCg0LDRgdC60LvQsNC00L7QuijQvNC40YApCnsKICAgIHRoaXMu0LjRgdC/0L7Qu9C90LjRgtGMID0gZnVuY3Rpb24oKQogICAgewogICAgICAgIHZhciBodG1sID0KYAo8ZGl2IGlkPSLRgNCw0YHQutC70LDQtNC60Lgt0YDQsNGB0LrQu9Cw0LTQutC4IiBjbGFzcz0idWstY2hpbGQtd2lkdGgtMS0xIHVrLWdyaWQtc21hbGwgdWstZ3JpZC1tYXRjaCIgdWstZ3JpZD48L2Rpdj4KPGEgaWQ9ItGA0LDRgdC60LvQsNC00LrQuC3RgdC60YDRi9GC0YwiIGNsYXNzPSJ1ay1pY29uLWJ1dHRvbiIgdWstaWNvbj0iY2xvc2UiPjwvYT4KYDsKICAgICAgICB2YXIgY3NzID0KYAoj0YDQsNGB0LrQu9Cw0LTQutC4LdGB0LrRgNGL0YLRjAp7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBib3R0b206IDFlbTsKICAgIGxlZnQ6IDFlbTsKfQoj0YDQsNGB0LrQu9Cw0LTQutC4LdGA0LDRgdC60LvQsNC00LrQuAp7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICByaWdodDogMDsKICAgIHRvcDogMWVtOwogICAgYm90dG9tOiAxZW07CiAgICBwYWRkaW5nOiAxZW07CiAgICB3aWR0aDogMjBlbTsKICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKfQpgOwogICAgICAgINC00L7QsdCw0LLQuNGC0YzQrdC60YDQsNC9KCLRgNCw0YHQutC70LDQtNC60LgiLCBodG1sLCBjc3MpOwogICAgICAgICQoIiPRgNCw0YHQutC70LDQtNC60LgiKQogICAgICAgICAgICAuaGlkZSgpCiAgICAgICAgICAgIC5jc3MoImJhY2tncm91bmQiLCAibGluZWFyLWdyYWRpZW50KDI3MGRlZywgd2hpdGUsIHdoaXRlIDIwZW0sIHJnYmEoMjU1LDI1NSwyNTUsMCkiKQogICAgICAgICAgICA7CiAgICAgICAgJCgiI9GA0LDRgdC60LvQsNC00LrQuC3RgdC60YDRi9GC0YwiKS5jbGljayhmdW5jdGlvbihlKSB7CiAgICAgICAgICAgINC80LjRgC7RgdC+0LHRi9GC0LjRj1si0L/QtdGA0LXQutC70Y7Rh9C40YLRjCDRgNCw0YHQutC70LDQtNC60LgiXS7Rg9Cy0LXQtNC+0LzQuNGC0YwoKTsKICAgICAgICB9KTsKICAgIH07Cn0KCi8vIC8vIC8vIC8vCgpmdW5jdGlvbiDQlNC+0LHQsNCy0LjRgtGM0K3QutGA0LDQvdCe0YHQvdC+0LLQvdC+0Lko0LzQuNGAKQp7CiAgICB0aGlzLtC40YHQv9C+0LvQvdC40YLRjCA9IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICB2YXIgaHRtbCA9CmAKPGEgaWQ9ItC+0YHQvdC+0LLQvdC+0Lkt0YDQsNGB0LrQu9Cw0LTQutC4IiBjbGFzcz0idWstaWNvbi1idXR0b24iIHVrLWljb249InRodW1ibmFpbHMiIHVrLXRvb2x0aXA9InRpdGxlOiDQoNCw0YHQutC70LDQtNC60Lg7IGRlbGF5OiA1MDAiPjwvYT4KYDsKICAgICAgICB2YXIgY3NzID0KYAoj0L7RgdC90L7QstC90L7QuS3RgNCw0YHQutC70LDQtNC60LgKewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYm90dG9tOiAxZW07CiAgICBsZWZ0OiAxZW07Cn0KYDsKICAgICAgICDQtNC+0LHQsNCy0LjRgtGM0K3QutGA0LDQvSgi0L7RgdC90L7QstC90L7QuSIsIGh0bWwsIGNzcyk7CiAgICAgICAgJCgiI9C+0YHQvdC+0LLQvdC+0Lkt0YDQsNGB0LrQu9Cw0LTQutC4IikuY2xpY2soZnVuY3Rpb24oZSkgewogICAgICAgICAgICDQvNC40YAu0YHQvtCx0YvRgtC40Y9bItC/0LXRgNC10LrQu9GO0YfQuNGC0Ywg0YDQsNGB0LrQu9Cw0LTQutC4Il0u0YPQstC10LTQvtC80LjRgtGMKCk7CiAgICAgICAgfSk7CiAgICB9Owp9CgovLyAvLyAvLyAvLwoKZnVuY3Rpb24g0JLRi9Cy0LXRgdGC0LjQn9GA0L7RgdGC0L7QotC10LrRgdGCKNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgY29uc29sZS5sb2coItCf0YDQvtGB0YLQviDRgtC10LrRgdGCIiwgbmV3IERhdGUoKSk7CiAgICB9Owp9CgovLyAvLyAvLyAvLwoKZnVuY3Rpb24g0KPQu9Cw0LLQu9C40LLQsNGC0YzQktGL0LHQvtGA0KHRhNC10YAo0LzQuNGAKQp7CiAgICDQtNC+0LHQsNCy0LjRgtGM0KHQu9C+0LLQsNGA0Ywo0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtSwgewogICAgICAgICLQvdC+0LzQtdGAINCy0YvQsdGA0LDQvdC90L7QuSDRgdGE0LXRgNGLIjogbnVsbCwKICAgICAgICAi0L3QvtC80LXRgNCwINCy0YvQsdGA0LDQvdC90YvRhSDRgdGE0LXRgCI6IFtdLAogICAgfSk7CiAgICAKICAgIHRoaXMu0LjRgdC/0L7Qu9C90LjRgtGMID0gZnVuY3Rpb24oKQogICAgewogICAgICAgINC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItGD0LvQsNCy0LvQuNCy0LDRgtC10LvRjCJdID0gbmV3IFRIUkVFLlJheWNhc3RlcigpOwogICAgICAgIHRoaXMu0L7RgtGB0LvQtdC20LjQstCw0YLRjNCd0LDRgdGC0L7Qu9C60LgoKTsKICAgICAgICB0aGlzLtC+0YLRgdC70LXQttC40LLQsNGC0YzQnNC+0LHQuNC70LrQuCgpOwogICAgfTsKICAgIHRoaXMu0L7RgtGB0LvQtdC20LjQstCw0YLRjNCd0LDRgdGC0L7Qu9C60LggPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKAogICAgICAgICAgICAiY2xpY2siLAogICAgICAgICAgICBmdW5jdGlvbijRgdC+0LHRi9GC0LjQtSkgewogICAgICAgICAgICAgICAgdmFyINC/0L7Qt9C40YbQuNGPID0gbmV3IFRIUkVFLlZlY3RvcjIoKTsKICAgICAgICAgICAgICAgINC/0L7Qt9C40YbQuNGPLnggPSAo0YHQvtCx0YvRgtC40LUuY2xpZW50WCAvIHdpbmRvdy5pbm5lcldpZHRoKSAqIDIgLSAxOwogICAgICAgICAgICAgICAg0L/QvtC30LjRhtC40Y8ueSA9IC0gKNGB0L7QsdGL0YLQuNC1LmNsaWVudFkgLyB3aW5kb3cuaW5uZXJIZWlnaHQpICogMiArIDE7CiAgICAgICAgICAgICAgICBzZWxmLtCy0YvQsdGA0LDRgtGMKNC/0L7Qt9C40YbQuNGPKTsKICAgICAgICAgICAgfQogICAgICAgICk7CiAgICB9OwogICAgdGhpcy7QvtGC0YHQu9C10LbQuNCy0LDRgtGM0JzQvtCx0LjQu9C60LggPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKAogICAgICAgICAgICAidG91Y2hzdGFydCIsCiAgICAgICAgICAgIGZ1bmN0aW9uKNGB0L7QsdGL0YLQuNC1KSB7CiAgICAgICAgICAgICAgICB2YXIg0L/QvtC30LjRhtC40Y8gPSBuZXcgVEhSRUUuVmVjdG9yMigpOwogICAgICAgICAgICAgICAg0L/QvtC30LjRhtC40Y8ueCA9ICjRgdC+0LHRi9GC0LjQtS50b3VjaGVzWzBdLmNsaWVudFggLyB3aW5kb3cuaW5uZXJXaWR0aCkgKiAyIC0gMTsKICAgICAgICAgICAgICAgINC/0L7Qt9C40YbQuNGPLnkgPSAtICjRgdC+0LHRi9GC0LjQtS50b3VjaGVzWzBdLmNsaWVudFkgLyB3aW5kb3cuaW5uZXJIZWlnaHQpICogMiArIDE7CiAgICAgICAgICAgICAgICBzZWxmLtCy0YvQsdGA0LDRgtGMKNC/0L7Qt9C40YbQuNGPKTsKICAgICAgICAgICAgfQogICAgICAgICk7CiAgICAgICAgLy8g0JjRgdC/0YDQsNCy0LvRj9C10Lwg0YPQu9Cw0LLQu9C40LLQsNC90LjQtSDQvdCw0LbQsNGC0LjQuSDQvdCwIGlPUy4KICAgICAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMzE0NTkyNDAvMzQwNDcxMAogICAgICAgIHZhciDQvtGC0YDQuNGB0L7QstGJ0LjQuiA9INC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItC+0YLRgNC40YHQvtCy0YnQuNC6Il07CiAgICAgICAg0L7RgtGA0LjRgdC+0LLRidC40LouZG9tRWxlbWVudC5zdHlsZS5jdXJzb3IgPSAicG9pbnRlciI7CiAgICB9OwogICAgdGhpcy7QstGL0LHRgNCw0YLRjCA9IGZ1bmN0aW9uKNC/0L7Qt9C40YbQuNGPKQogICAgewogICAgICAgIHZhciDRg9C70LDQstC70LjQstCw0YLQtdC70YwgPSDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLRg9C70LDQstC70LjQstCw0YLQtdC70YwiXTsKICAgICAgICB2YXIg0LrQsNC80LXRgNCwID0g0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtVsi0LrQsNC80LXRgNCwIl07CiAgICAgICAgdmFyINC60L7RgNC10L3RjCA9INC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItC60L7RgNC10L3RjCJdOwogICAgICAgINGD0LvQsNCy0LvQuNCy0LDRgtC10LvRjC5zZXRGcm9tQ2FtZXJhKNC/0L7Qt9C40YbQuNGPLCDQutCw0LzQtdGA0LApOwogICAgICAgIHZhciDQv9C10YDQtdGB0LXRh9C10L3QuNGPID0g0YPQu9Cw0LLQu9C40LLQsNGC0LXQu9GMLmludGVyc2VjdE9iamVjdHMo0LrQvtGA0LXQvdGMLmNoaWxkcmVuKTsKICAgICAgICBpZiAo0L/QtdGA0LXRgdC10YfQtdC90LjRjy5sZW5ndGgpCiAgICAgICAgewogICAgICAgICAgICB2YXIg0YHRhNC10YDQsCA9INC/0LXRgNC10YHQtdGH0LXQvdC40Y9bMF0ub2JqZWN0OwogICAgICAgICAgICB2YXIg0L3QvtC80LXRgCA9IHRoaXMu0L3QvtC80LXRgNCh0YTQtdGA0Yso0YHRhNC10YDQsC5pZCk7CiAgICAgICAgICAgIGlmICjQvdC+0LzQtdGAKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLQvdC+0LzQtdGAINCy0YvQsdGA0LDQvdC90L7QuSDRgdGE0LXRgNGLIl0gPSDQvdC+0LzQtdGAOwogICAgICAgICAgICAgICAg0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtVsi0L3QvtC80LXRgNCwINCy0YvQsdGA0LDQvdC90YvRhSDRgdGE0LXRgCJdLnB1c2go0L3QvtC80LXRgCk7CiAgICAgICAgICAgICAgICDQvNC40YAu0YHQvtCx0YvRgtC40Y9bItCy0YvQsdC+0YAiXS7Rg9Cy0LXQtNC+0LzQuNGC0YwoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH07CiAgICB0aGlzLtC90L7QvNC10YDQodGE0LXRgNGLID0gZnVuY3Rpb24oaWQpCiAgICB7CiAgICAgICAgdmFyINGB0YTQtdGA0YsgPSDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLRgdGE0LXRgNGLIl07CiAgICAgICAgZm9yICh2YXIg0L3QvtC80LXRgCBpbiDRgdGE0LXRgNGLKQogICAgICAgIHsKICAgICAgICAgICAgdmFyINGB0YTQtdGA0LAgPSDRgdGE0LXRgNGLW9C90L7QvNC10YBdOwogICAgICAgICAgICBpZiAo0YHRhNC10YDQsC5pZCA9PSBpZCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuINC90L7QvNC10YA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9Owp9Cg==", +"Ly8gLy8gLy8gLy8KCmZ1bmN0aW9uINCf0L7QutCw0LfQsNGC0YzQodGE0LXRgNGDKNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyINGE0L7RgNC80LAgPSBuZXcgVEhSRUUuU3BoZXJlQnVmZmVyR2VvbWV0cnkoMC4wNSwgMzIsIDMyKTsKICAgICAgICB2YXIg0YHRhNC10YDQsCA9IG5ldyBUSFJFRS5NZXNoKNGE0L7RgNC80LApOwogICAgICAgIHZhciDQutC+0YDQtdC90YwgPSDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLQutC+0YDQtdC90YwiXTsKICAgICAgICDQutC+0YDQtdC90YwuYWRkKNGB0YTQtdGA0LApOwogICAgfTsKfQoKLy8gLy8gLy8gLy8KCmZ1bmN0aW9uINCf0L7QtNCz0L7RgtC+0LLQuNGC0YzQodGG0LXQvdGDKNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAg0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtVsi0LrQsNC80LXRgNCwIl0ucG9zaXRpb24ueiA9IDEwOwogICAgICAgIC8vINCh0L7Qt9C00LDRkdC8INC40YHRgtC+0YfQvdC40Log0YHQstC10YLQsC4KICAgICAgICB2YXIg0YHQstC10YIgPSBuZXcgVEhSRUUuRGlyZWN0aW9uYWxMaWdodCgweGZmZmZmZiwgMSk7CiAgICAgICAg0YHQstC10YIucG9zaXRpb24uc2V0KC0wLjUsIDAuNSwgMSkubm9ybWFsaXplKCk7CiAgICAgICAgdmFyINGB0YbQtdC90LAgPSDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLRgdGG0LXQvdCwIl07CiAgICAgICAg0YHRhtC10L3QsC5hZGQo0YHQstC10YIpOwogICAgICAgIC8vINCh0L7Qt9C00LDRkdC8INC60L7RgNC10L3RjC4KICAgICAgICB2YXIg0LrQvtGA0LXQvdGMID0gbmV3IFRIUkVFLkdyb3VwKCk7CiAgICAgICAg0YHRhtC10L3QsC5hZGQo0LrQvtGA0LXQvdGMKTsKICAgICAgICDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLQutC+0YDQtdC90YwiXSA9INC60L7RgNC10L3RjDsKICAgIH07Cn0KCi8vIC8vIC8vIC8vCgpmdW5jdGlvbiDQktGL0LHRgNCw0YLRjNCf0LXRgNCy0YPRjtCi0LXQvNGDKNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyINGC0LXQvNGLID0g0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtVsi0YLQtdC80YsiXTsKICAgICAgICDRgtC10LzRiy7QstGL0LHRgNCw0YLRjCgwKTsKICAgIH07Cn0KCi8vIC8vIC8vIC8vCgpmdW5jdGlvbiDQlNC+0LHQsNCy0LjRgtGM0KLQtdC80YvQktGB0YLRgNC+0LXQvdC90YvQtSjQvNC40YApCnsKICAgIHRoaXMu0LjRgdC/0L7Qu9C90LjRgtGMID0gZnVuY3Rpb24oKQogICAgewogICAgICAgIHZhciDRgtC10LzRiyA9INC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItGC0LXQvNGLIl07CiAgICAgICAgdmFyINGCNjQgPSDQnNCe0JQu0LzQvtC00YPQu9GMKCLRgtC10LzRiyDQstGB0YLRgNC+0LXQvdC90YvQtSIpLmNvZGU2NDsKICAgICAgICBldmFsKNC80YPRgNC+0LwuYXRvYijRgjY0KSk7CiAgICAgICAg0YLQtdC80Ysu0LTQvtCx0LDQstC40YLRjCjQnNCgKCkpOwogICAgfTsKfQoKLy8gLy8gLy8gLy8KCmZ1bmN0aW9uINCh0L7Qt9C00LDRgtGM0JfQsNCy0KLQtdC8KNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAg0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtVsi0YLQtdC80YsiXSA9IG5ldyDQndCw0LHQvtGAKCk7CiAgICB9Owp9CgovLyAvLyAvLyAvLwoKZnVuY3Rpb24g0JLRi9Cx0YDQsNGC0YzQn9C10YDQstGD0Y7QoNCw0YHQutC70LDQtNC60YMo0LzQuNGAKQp7CiAgICB0aGlzLtC40YHQv9C+0LvQvdC40YLRjCA9IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICB2YXIg0YDQsNGB0LrQu9Cw0LTQutC4ID0g0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtVsi0YDQsNGB0LrQu9Cw0LTQutC4Il07CiAgICAgICAg0YDQsNGB0LrQu9Cw0LTQutC4LtCy0YvQsdGA0LDRgtGMKDApOwogICAgfTsKfQoKLy8gLy8gLy8gLy8KCmZ1bmN0aW9uINCh0LjQvdGF0YDQuNGC0YzQodC/0LjRgdC+0LrQoNCw0YHQutC70LDQtNC+0LrQodCX0LDQstC+0Lwo0LzQuNGAKQp7CiAgICB0aGlzLtC40YHQv9C+0LvQvdC40YLRjCA9IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICB2YXIg0YDQsNGB0LrQu9Cw0LTQutC4ID0g0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtVsi0YDQsNGB0LrQu9Cw0LTQutC4Il07CiAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwogICAgICAgINGA0LDRgdC60LvQsNC00LrQuC7QuNC30LzQtdC90LjQu9C40KHQv9C40YHQvtC6LtC/0L7QtNC/0LjRgdCw0YLRjChmdW5jdGlvbigpIHsKICAgICAgICAgICAgc2VsZi7QvtCx0L3QvtCy0LjRgtGM0KHQv9C40YHQvtC6KCk7CiAgICAgICAgfSk7CiAgICAgICAg0YDQsNGB0LrQu9Cw0LTQutC4LtC40LfQvNC10L3QuNC70LjQktGL0LHQvtGALtC/0L7QtNC/0LjRgdCw0YLRjChmdW5jdGlvbigpIHsKICAgICAgICAgICAgc2VsZi7QvtCx0L3QvtCy0LjRgtGM0JLRi9Cx0L7RgCgpOwogICAgICAgIH0pOwogICAgfTsKICAgIAogICAgdGhpcy7QvtCx0L3QvtCy0LjRgtGM0KHQv9C40YHQvtC6ID0gZnVuY3Rpb24oKQogICAgewogICAgICAgIHZhciDRgNCw0YHQutC70LDQtNC60LggPSDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLRgNCw0YHQutC70LDQtNC60LgiXTsKICAgICAgICB2YXIg0YHQv9C40YHQvtC6ID0g0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtVsi0YHQv9C40YHQvtC6INGA0LDRgdC60LvQsNC00L7QuiJdOwogICAgICAgIHZhciDQuNC80LXQvdCw0J7Qv9C40YHQsNC90LjRjyA9IHRoaXMu0LjQvNC10L3QsNCe0L/QuNGB0LDQvdC40Y/QoNCw0YHQutC70LDQtNC+0Loo0YDQsNGB0LrQu9Cw0LTQutC4LtGB0L/QuNGB0L7Quik7CiAgICAgICAg0YHQv9C40YHQvtC6LtC30LDQtNCw0YLRjCjQuNC80LXQvdCw0J7Qv9C40YHQsNC90LjRjyk7CiAgICB9OwogICAgCiAgICB0aGlzLtC+0LHQvdC+0LLQuNGC0YzQktGL0LHQvtGAID0gZnVuY3Rpb24oKQogICAgewogICAgICAgIHZhciDRgNCw0YHQutC70LDQtNC60LggPSDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLRgNCw0YHQutC70LDQtNC60LgiXTsKICAgICAgICB2YXIg0YHQv9C40YHQvtC6ID0g0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtVsi0YHQv9C40YHQvtC6INGA0LDRgdC60LvQsNC00L7QuiJdOwogICAgICAgINGB0L/QuNGB0L7Qui7QstGL0LHRgNCw0YLRjCjRgNCw0YHQutC70LDQtNC60Lgu0LLRi9Cx0L7RgCk7CiAgICB9OwogICAgCiAgICB0aGlzLtC40LzQtdC90LDQntC/0LjRgdCw0L3QuNGP0KDQsNGB0LrQu9Cw0LTQvtC6ID0gZnVuY3Rpb24oKQogICAgewogICAgICAgIHZhciDRgNCw0YHQutC70LDQtNC60LggPSDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLRgNCw0YHQutC70LDQtNC60LgiXS7RgdC/0LjRgdC+0Lo7CiAgICAgICAgdmFyINGB0L/QuNGB0L7QuiA9IFtdOwogICAgICAgIGZvciAodmFyINC90L7QvNC10YAgaW4g0YDQsNGB0LrQu9Cw0LTQutC4KQogICAgICAgIHsKICAgICAgICAgICAgdmFyINGAID0g0YDQsNGB0LrQu9Cw0LTQutC4W9C90L7QvNC10YBdOwogICAgICAgICAgICDRgdC/0LjRgdC+0LoucHVzaChb0YAu0LjQvNGPLCDRgC7QvtC/0LjRgdCw0L3QuNC1XSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiDRgdC/0LjRgdC+0Lo7CiAgICB9Owp9CgovLyAvLyAvLyAvLwoKZnVuY3Rpb24g0JTQvtCx0LDQstC40YLRjNCe0YLQu9Cw0LTQvtGH0L3Ri9C10KDQsNGB0LrQu9Cw0LTQutC4KNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyINGA0LDRgdC60LvQsNC00LrQuCA9INC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItGA0LDRgdC60LvQsNC00LrQuCJdOwogICAgICAgIHZhciDRgDY0ID0g0JzQntCULtC80L7QtNGD0LvRjCgi0L7RgtC70LDQtNC+0YfQvdGL0LUg0YDQsNGB0LrQu9Cw0LTQutC4IikuY29kZTY0OwogICAgICAgIGV2YWwo0LzRg9GA0L7QvC5hdG9iKNGANjQpKTsKICAgICAgICDRgNCw0YHQutC70LDQtNC60Lgu0LTQvtCx0LDQstC40YLRjCjQnNCgKCkpOwogICAgfTsKfQoKLy8gLy8gLy8gLy8KCmZ1bmN0aW9uINCU0L7QsdCw0LLQuNGC0YzQktGB0YLRgNC+0LXQvdC90YvQtdCg0LDRgdC60LvQsNC00LrQuCjQvNC40YApCnsKICAgIHRoaXMu0LjRgdC/0L7Qu9C90LjRgtGMID0gZnVuY3Rpb24oKQogICAgewogICAgICAgIHZhciDRgNCw0YHQutC70LDQtNC60LggPSDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLRgNCw0YHQutC70LDQtNC60LgiXTsKICAgICAgICB2YXIg0YA2NCA9INCc0J7QlC7QvNC+0LTRg9C70YwoItCy0YHRgtGA0L7QtdC90L3Ri9C1INGA0LDRgdC60LvQsNC00LrQuCIpLmNvZGU2NDsKICAgICAgICBldmFsKNC80YPRgNC+0LwuYXRvYijRgDY0KSk7CiAgICAgICAg0YDQsNGB0LrQu9Cw0LTQutC4LtC00L7QsdCw0LLQuNGC0Ywo0JzQoCgpKTsKICAgIH07Cn0KCi8vIC8vIC8vIC8vCgpmdW5jdGlvbiDQodC+0LfQtNCw0YLRjNCh0L/QuNGB0L7QutCg0LDRgdC60LvQsNC00L7QuijQvNC40YApCnsKICAgIHRoaXMu0LjRgdC/0L7Qu9C90LjRgtGMID0gZnVuY3Rpb24oKQogICAgewogICAgICAgINC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItGB0L/QuNGB0L7QuiDRgNCw0YHQutC70LDQtNC+0LoiXSA9IG5ldyDQodC/0LjRgdC+0LooItGA0LDRgdC60LvQsNC00LrQuC3RgNCw0YHQutC70LDQtNC60LgiKTsKICAgIH07Cn0KCi8vIC8vIC8vIC8vCgpmdW5jdGlvbiDQodC+0LfQtNCw0YLRjNCX0LDQstCg0LDRgdC60LvQsNC00L7QuijQvNC40YApCnsKICAgIHRoaXMu0LjRgdC/0L7Qu9C90LjRgtGMID0gZnVuY3Rpb24oKQogICAgewogICAgICAgINC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItGA0LDRgdC60LvQsNC00LrQuCJdID0gbmV3INCd0LDQsdC+0YAoKTsKICAgIH07Cn0KCi8vIC8vIC8vIC8vCgpmdW5jdGlvbiDQn9C10YDQtdC60LvRjtGH0LjRgtGM0K3QutGA0LDQvdCg0LDRgdC60LvQsNC00L7QuijQvNC40YApCnsKICAgIHRoaXMu0LjRgdC/0L7Qu9C90LjRgtGMID0gZnVuY3Rpb24oKQogICAgewogICAgICAgICQoIiPRgNCw0YHQutC70LDQtNC60LgiKS5mYWRlVG9nZ2xlKCJmYXN0Iik7CiAgICB9Owp9CgovLyAvLyAvLyAvLwoKZnVuY3Rpb24g0JTQvtCx0LDQstC40YLRjNCt0LrRgNCw0L3QoNCw0YHQutC70LDQtNC+0Loo0LzQuNGAKQp7CiAgICB0aGlzLtC40YHQv9C+0LvQvdC40YLRjCA9IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICB2YXIgaHRtbCA9CmAKPGRpdiBpZD0i0YDQsNGB0LrQu9Cw0LTQutC4LdGA0LDRgdC60LvQsNC00LrQuCIgY2xhc3M9InVrLWNoaWxkLXdpZHRoLTEtMSB1ay1ncmlkLXNtYWxsIHVrLWdyaWQtbWF0Y2giIHVrLWdyaWQ+PC9kaXY+CjxhIGlkPSLRgNCw0YHQutC70LDQtNC60Lgt0YHQutGA0YvRgtGMIiBjbGFzcz0idWstaWNvbi1idXR0b24iIHVrLWljb249ImNsb3NlIj48L2E+CmA7CiAgICAgICAgdmFyIGNzcyA9CmAKI9GA0LDRgdC60LvQsNC00LrQuC3RgdC60YDRi9GC0YwKewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYm90dG9tOiAxZW07CiAgICBsZWZ0OiAxZW07Cn0KI9GA0LDRgdC60LvQsNC00LrQuC3RgNCw0YHQutC70LDQtNC60LgKewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgcmlnaHQ6IDA7CiAgICB0b3A6IDFlbTsKICAgIGJvdHRvbTogMWVtOwogICAgcGFkZGluZzogMWVtOwogICAgd2lkdGg6IDIwZW07CiAgICBvdmVyZmxvdy15OiBzY3JvbGw7Cn0KYDsKICAgICAgICDQtNC+0LHQsNCy0LjRgtGM0K3QutGA0LDQvSgi0YDQsNGB0LrQu9Cw0LTQutC4IiwgaHRtbCwgY3NzKTsKICAgICAgICAkKCIj0YDQsNGB0LrQu9Cw0LTQutC4IikKICAgICAgICAgICAgLmhpZGUoKQogICAgICAgICAgICAuY3NzKCJiYWNrZ3JvdW5kIiwgImxpbmVhci1ncmFkaWVudCgyNzBkZWcsIHdoaXRlLCB3aGl0ZSAyMGVtLCByZ2JhKDI1NSwyNTUsMjU1LDApIikKICAgICAgICAgICAgOwogICAgICAgICQoIiPRgNCw0YHQutC70LDQtNC60Lgt0YHQutGA0YvRgtGMIikuY2xpY2soZnVuY3Rpb24oZSkgewogICAgICAgICAgICDQvNC40YAu0YHQvtCx0YvRgtC40Y9bItC/0LXRgNC10LrQu9GO0YfQuNGC0Ywg0YDQsNGB0LrQu9Cw0LTQutC4Il0u0YPQstC10LTQvtC80LjRgtGMKCk7CiAgICAgICAgfSk7CiAgICB9Owp9CgovLyAvLyAvLyAvLwoKZnVuY3Rpb24g0JTQvtCx0LDQstC40YLRjNCt0LrRgNCw0L3QntGB0L3QvtCy0L3QvtC5KNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyIGh0bWwgPQpgCjxhIGlkPSLQvtGB0L3QvtCy0L3QvtC5LdGA0LDRgdC60LvQsNC00LrQuCIgY2xhc3M9InVrLWljb24tYnV0dG9uIiB1ay1pY29uPSJ0aHVtYm5haWxzIiB1ay10b29sdGlwPSJ0aXRsZTog0KDQsNGB0LrQu9Cw0LTQutC4OyBkZWxheTogNTAwIj48L2E+CmA7CiAgICAgICAgdmFyIGNzcyA9CmAKI9C+0YHQvdC+0LLQvdC+0Lkt0YDQsNGB0LrQu9Cw0LTQutC4CnsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGJvdHRvbTogMWVtOwogICAgbGVmdDogMWVtOwp9CmA7CiAgICAgICAg0LTQvtCx0LDQstC40YLRjNCt0LrRgNCw0L0oItC+0YHQvdC+0LLQvdC+0LkiLCBodG1sLCBjc3MpOwogICAgICAgICQoIiPQvtGB0L3QvtCy0L3QvtC5LdGA0LDRgdC60LvQsNC00LrQuCIpLmNsaWNrKGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAg0LzQuNGALtGB0L7QsdGL0YLQuNGPWyLQv9C10YDQtdC60LvRjtGH0LjRgtGMINGA0LDRgdC60LvQsNC00LrQuCJdLtGD0LLQtdC00L7QvNC40YLRjCgpOwogICAgICAgIH0pOwogICAgfTsKfQoKLy8gLy8gLy8gLy8KCmZ1bmN0aW9uINCS0YvQstC10YHRgtC40J/RgNC+0YHRgtC+0KLQtdC60YHRgijQvNC40YApCnsKICAgIHRoaXMu0LjRgdC/0L7Qu9C90LjRgtGMID0gZnVuY3Rpb24oKQogICAgewogICAgICAgIGNvbnNvbGUubG9nKCLQn9GA0L7RgdGC0L4g0YLQtdC60YHRgiIsIG5ldyBEYXRlKCkpOwogICAgfTsKfQoKLy8gLy8gLy8gLy8KCmZ1bmN0aW9uINCj0LvQsNCy0LvQuNCy0LDRgtGM0JLRi9Cx0L7RgNCh0YTQtdGAKNC80LjRgCkKewogICAg0LTQvtCx0LDQstC40YLRjNCh0LvQvtCy0LDRgNGMKNC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LUsIHsKICAgICAgICAi0L3QvtC80LXRgCDQstGL0LHRgNCw0L3QvdC+0Lkg0YHRhNC10YDRiyI6IG51bGwsCiAgICAgICAgItC90L7QvNC10YDQsCDQstGL0LHRgNCw0L3QvdGL0YUg0YHRhNC10YAiOiBbXSwKICAgIH0pOwogICAgCiAgICB0aGlzLtC40YHQv9C+0LvQvdC40YLRjCA9IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLRg9C70LDQstC70LjQstCw0YLQtdC70YwiXSA9IG5ldyBUSFJFRS5SYXljYXN0ZXIoKTsKICAgICAgICB0aGlzLtC+0YLRgdC70LXQttC40LLQsNGC0YzQndCw0YHRgtC+0LvQutC4KCk7CiAgICAgICAgdGhpcy7QvtGC0YHQu9C10LbQuNCy0LDRgtGM0JzQvtCx0LjQu9C60LgoKTsKICAgIH07CiAgICB0aGlzLtC+0YLRgdC70LXQttC40LLQsNGC0YzQndCw0YHRgtC+0LvQutC4ID0gZnVuY3Rpb24oKQogICAgewogICAgICAgIHZhciBzZWxmID0gdGhpczsKICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigKICAgICAgICAgICAgImNsaWNrIiwKICAgICAgICAgICAgZnVuY3Rpb24o0YHQvtCx0YvRgtC40LUpIHsKICAgICAgICAgICAgICAgIHZhciDQv9C+0LfQuNGG0LjRjyA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7CiAgICAgICAgICAgICAgICDQv9C+0LfQuNGG0LjRjy54ID0gKNGB0L7QsdGL0YLQuNC1LmNsaWVudFggLyB3aW5kb3cuaW5uZXJXaWR0aCkgKiAyIC0gMTsKICAgICAgICAgICAgICAgINC/0L7Qt9C40YbQuNGPLnkgPSAtICjRgdC+0LHRi9GC0LjQtS5jbGllbnRZIC8gd2luZG93LmlubmVySGVpZ2h0KSAqIDIgKyAxOwogICAgICAgICAgICAgICAgc2VsZi7QstGL0LHRgNCw0YLRjCjQv9C+0LfQuNGG0LjRjyk7CiAgICAgICAgICAgIH0KICAgICAgICApOwogICAgfTsKICAgIHRoaXMu0L7RgtGB0LvQtdC20LjQstCw0YLRjNCc0L7QsdC40LvQutC4ID0gZnVuY3Rpb24oKQogICAgewogICAgICAgIHZhciBzZWxmID0gdGhpczsKICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigKICAgICAgICAgICAgInRvdWNoc3RhcnQiLAogICAgICAgICAgICBmdW5jdGlvbijRgdC+0LHRi9GC0LjQtSkgewogICAgICAgICAgICAgICAgdmFyINC/0L7Qt9C40YbQuNGPID0gbmV3IFRIUkVFLlZlY3RvcjIoKTsKICAgICAgICAgICAgICAgINC/0L7Qt9C40YbQuNGPLnggPSAo0YHQvtCx0YvRgtC40LUudG91Y2hlc1swXS5jbGllbnRYIC8gd2luZG93LmlubmVyV2lkdGgpICogMiAtIDE7CiAgICAgICAgICAgICAgICDQv9C+0LfQuNGG0LjRjy55ID0gLSAo0YHQvtCx0YvRgtC40LUudG91Y2hlc1swXS5jbGllbnRZIC8gd2luZG93LmlubmVySGVpZ2h0KSAqIDIgKyAxOwogICAgICAgICAgICAgICAgc2VsZi7QstGL0LHRgNCw0YLRjCjQv9C+0LfQuNGG0LjRjyk7CiAgICAgICAgICAgIH0KICAgICAgICApOwogICAgICAgIC8vINCY0YHQv9GA0LDQstC70Y/QtdC8INGD0LvQsNCy0LvQuNCy0LDQvdC40LUg0L3QsNC20LDRgtC40Lkg0L3QsCBpT1MuCiAgICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzMxNDU5MjQwLzM0MDQ3MTAKICAgICAgICB2YXIg0L7RgtGA0LjRgdC+0LLRidC40LogPSDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLQvtGC0YDQuNGB0L7QstGJ0LjQuiJdOwogICAgICAgINC+0YLRgNC40YHQvtCy0YnQuNC6LmRvbUVsZW1lbnQuc3R5bGUuY3Vyc29yID0gInBvaW50ZXIiOwogICAgfTsKICAgIHRoaXMu0LLRi9Cx0YDQsNGC0YwgPSBmdW5jdGlvbijQv9C+0LfQuNGG0LjRjykKICAgIHsKICAgICAgICB2YXIg0YPQu9Cw0LLQu9C40LLQsNGC0LXQu9GMID0g0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtVsi0YPQu9Cw0LLQu9C40LLQsNGC0LXQu9GMIl07CiAgICAgICAgdmFyINC60LDQvNC10YDQsCA9INC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItC60LDQvNC10YDQsCJdOwogICAgICAgIHZhciDQutC+0YDQtdC90YwgPSDQvNC40YAu0YHQvtGB0YLQvtGP0L3QuNC1WyLQutC+0YDQtdC90YwiXTsKICAgICAgICDRg9C70LDQstC70LjQstCw0YLQtdC70Ywuc2V0RnJvbUNhbWVyYSjQv9C+0LfQuNGG0LjRjywg0LrQsNC80LXRgNCwKTsKICAgICAgICB2YXIg0L/QtdGA0LXRgdC10YfQtdC90LjRjyA9INGD0LvQsNCy0LvQuNCy0LDRgtC10LvRjC5pbnRlcnNlY3RPYmplY3RzKNC60L7RgNC10L3RjC5jaGlsZHJlbik7CiAgICAgICAgaWYgKNC/0LXRgNC10YHQtdGH0LXQvdC40Y8ubGVuZ3RoKQogICAgICAgIHsKICAgICAgICAgICAgdmFyINGB0YTQtdGA0LAgPSDQv9C10YDQtdGB0LXRh9C10L3QuNGPWzBdLm9iamVjdDsKICAgICAgICAgICAgdmFyINC90L7QvNC10YAgPSB0aGlzLtC90L7QvNC10YDQodGE0LXRgNGLKNGB0YTQtdGA0LAuaWQpOwogICAgICAgICAgICBpZiAo0L3QvtC80LXRgCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtVsi0L3QvtC80LXRgCDQstGL0LHRgNCw0L3QvdC+0Lkg0YHRhNC10YDRiyJdID0g0L3QvtC80LXRgDsKICAgICAgICAgICAgICAgINC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItC90L7QvNC10YDQsCDQstGL0LHRgNCw0L3QvdGL0YUg0YHRhNC10YAiXS5wdXNoKNC90L7QvNC10YApOwogICAgICAgICAgICAgICAg0LzQuNGALtGB0L7QsdGL0YLQuNGPWyLQstGL0LHQvtGAIl0u0YPQstC10LTQvtC80LjRgtGMKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9OwogICAgdGhpcy7QvdC+0LzQtdGA0KHRhNC10YDRiyA9IGZ1bmN0aW9uKGlkKQogICAgewogICAgICAgIHZhciDRgdGE0LXRgNGLID0g0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtVsi0YHRhNC10YDRiyJdOwogICAgICAgIGZvciAodmFyINC90L7QvNC10YAgaW4g0YHRhNC10YDRiykKICAgICAgICB7CiAgICAgICAgICAgIHZhciDRgdGE0LXRgNCwID0g0YHRhNC10YDRi1vQvdC+0LzQtdGAXTsKICAgICAgICAgICAgaWYgKNGB0YTQtdGA0LAuaWQgPT0gaWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiDQvdC+0LzQtdGAOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJldHVybiBudWxsOwogICAgfTsKfQo=", {"status":true} ], @@ -206,16 +206,23 @@ var murom = муром; ], +[ +"Image_Upload_Preview", +"", +{"status":false} +], + + [ "темы.реакции", -"ZnVuY3Rpb24g0JTQvtCx0LDQstC40YLRjNCh0LLQvtGRKNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyIGh0bWwgPQpgCjxkaXYgY2xhc3M9InVrLXBhbmVsIHVrLXBhbmVsLXNjcm9sbGFibGUiPgo8ZGl2IGlkPSJwYXJlbnQiIGNsYXNzPSJ1ay1jb250YWluZXIgdWstY29udGFpbmVyLWNlbnRlciB1ay1iYWNrZ3JvdW5kLW11dGVkIj4KICAgIDxmb3JtPgogICAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBtdWx0aXBsZSBhY2NlcHRzPSJpbWFnZS8qIiBpZD0iaW5wdXQiLz4KICAgIDwvZm9ybT4KPC9kaXY+CjwvZGl2PgpgOwogICAgICAgIHZhciDQutC+0L3RgtC10LnQvdC10YAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi0LrQvtC90YLQtdC50L3QtdGALdC00LvRjy3RgtC10YHRgtC+0LIiKTsKICAgICAgICDQutC+0L3RgtC10LnQvdC10YAuaW5uZXJIVE1MICs9IGh0bWw7CiAgICAgICAgdmFyINCy0LLQvtC0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0Iik7CiAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwogICAgICAgINCy0LLQvtC0Lm9uY2hhbmdlID0gZnVuY3Rpb24oKSB7IHNlbGYu0LfQsNCz0YDRg9C30LjRgtGMKNCy0LLQvtC0LmZpbGVzKTsgfTsKICAgIH07CiAgICB0aGlzLtC30LDQs9GA0YPQt9C40YLRjCA9IGZ1bmN0aW9uKNGE0LDQudC70YspCiAgICB7CiAgICAgICAgY29uc29sZS5sb2coItC30LDQs9GA0YPQt9C40YLRjCDRhNCw0LnQu9C+0LI6Iiwg0YTQsNC50LvRiyk7CiAgICAgICAgZm9yICh2YXIg0L3QvtC80LXRgCBpbiDRhNCw0LnQu9GLKQogICAgICAgIHsKICAgICAgICAgICAgdmFyINGE0LDQudC7ID0g0YTQsNC50LvRi1vQvdC+0LzQtdGAXTsKICAgICAgICAgICAgdGhpcy7Qt9Cw0LPRgNGD0LfQuNGC0YzQpNCw0LnQuyjRhNCw0LnQuyk7CiAgICAgICAgfQogICAgfTsKICAgIHRoaXMu0LfQsNCz0YDRg9C30LjRgtGM0KTQsNC50LsgPSBmdW5jdGlvbijRhNCw0LnQuykKICAgIHsKICAgICAgICB2YXIg0YfRgtC10YYgPSBuZXcgRmlsZVJlYWRlcigpOwogICAgICAgINGH0YLQtdGGLm9ubG9hZCA9IGZ1bmN0aW9uKNGB0L7QsdGL0YLQuNC1KQogICAgICAgIHsKICAgICAgICAgICAgdmFyINGA0L7QtNC40YLQtdC70YwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFyZW50Iik7CiAgICAgICAgICAgIHZhciBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTsKICAgICAgICAgICAgaW1nLmNsYXNzTGlzdC5hZGQoInVrLW1hcmdpbiIpOwogICAgICAgICAgICBpbWcuc3JjID0g0YHQvtCx0YvRgtC40LUudGFyZ2V0LnJlc3VsdDsKICAgICAgICAgICAg0YDQvtC00LjRgtC10LvRjC5hcHBlbmRDaGlsZChpbWcpOwogICAgICAgIH07CiAgICAgICAg0YfRgtC10YYucmVhZEFzRGF0YVVSTCjRhNCw0LnQuyk7CiAgICB9Owp9CgovLyAvLyAvLyAvLwoKZnVuY3Rpb24g0JTQvtCx0LDQstC40YLRjNCf0YDQuNC80LXRgCjQvNC40YApCnsKICAgIHRoaXMu0LjRgdC/0L7Qu9C90LjRgtGMID0gZnVuY3Rpb24oKQogICAgewogICAgICAgIHZhciBodG1sID0KYAo8ZGl2IGNsYXNzPSJ1ay1jb250YWluZXIgdWstY29udGFpbmVyLWNlbnRlciB1ay10ZXh0LWNlbnRlciI+CiAgPGRpdiBjbGFzcz0idWstdGh1bWJuYWlsIHVrLW1hcmdpbi10b3AiPgogICAgPGltZyBjbGFzcz0idWstbWFyZ2luIiBzcmM9ImFiYyI+CiAgICA8Zm9ybT4KICAgICAgPGxhYmVsIGNsYXNzPSJ1ay1idXR0b24gdWstYnV0dG9uLXByaW1hcnkiPgogICAgICAgIDxzcGFuPlNlbGVjdCBJbWFnZTwvc3Bhbj4KICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgYWNjZXB0cz0iaW1hZ2UvKiIgaWQ9ImZpbGVfaW5wdXRfZGVtbyIgY2xhc3M9InVrLWludmlzaWJsZSB1ay1wb3NpdGlvbi1hYnNvbHV0ZSIgLz4KICAgICAgPC9sYWJlbD4KICAgIDwvZm9ybT4KICA8L2Rpdj4KPC9kaXY+CmA7CgogICAgICAgIHZhciDQutC+0L3RgtC10LnQvdC10YAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi0LrQvtC90YLQtdC50L3QtdGALdC00LvRjy3RgtC10YHRgtC+0LIiKTsKICAgICAgICDQutC+0L3RgtC10LnQvdC10YAuaW5uZXJIVE1MICs9IGh0bWw7CiAgICAgICAgCgogICAgLy9uZXcgSW1hZ2VfVXBsb2FkX1ByZXZpZXcoIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWxlX2lucHV0X2RlbW8nKSwgJCgnaW1nJykgKTsKICAgIC8vbmV3IEltYWdlX1VwbG9hZF9QcmV2aWV3KCAkKCdpbnB1dFt0eXBlPWZpbGVdJyksICQoJ2ltZycpICk7CiAgICBuZXcgSW1hZ2VfVXBsb2FkX1ByZXZpZXcoICQoJyNmaWxlX2lucHV0X2RlbW8nKSwgJCgnaW1nJykgKTsKICAgIH07CiAgICAKfQoKLy8gLy8gLy8gLy8KCmZ1bmN0aW9uINCU0L7QsdCw0LLQuNGC0YzQn9Cw0L3QtdC70YzQl9Cw0LPRgNGD0LfQutC4KNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyIGh0bWwgPQpgCjxkaXYgY2xhc3M9ImpzLXVwbG9hZCB1ay1wbGFjZWhvbGRlciB1ay10ZXh0LWNlbnRlciI+CiAgICA8c3BhbiB1ay1pY29uPSJpY29uOiBjbG91ZC11cGxvYWQiPjwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJ1ay10ZXh0LW1pZGRsZSI+QXR0YWNoIGJpbmFyaWVzIGJ5IGRyb3BwaW5nIHRoZW0gaGVyZSBvcjwvc3Bhbj4KICAgIDxkaXYgdWstZm9ybS1jdXN0b20+CiAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIG11bHRpcGxlIGlkPSJsb2FkZXIiPgogICAgICAgIDxzcGFuIGNsYXNzPSJ1ay1saW5rIj5zZWxlY3RpbmcgdGhlbTwvc3Bhbj4KICAgIDwvZGl2Pgo8L2Rpdj4KPHByb2dyZXNzIGlkPSJqcy1wcm9ncmVzc2JhciIgY2xhc3M9InVrLXByb2dyZXNzIiB2YWx1ZT0iMCIgbWF4PSIxMDAiIGhpZGRlbj48L3Byb2dyZXNzPgpgOwogICAgICAgIHZhciDQutC+0L3RgtC10LnQvdC10YAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi0LrQvtC90YLQtdC50L3QtdGALdC00LvRjy3RgtC10YHRgtC+0LIiKTsKICAgICAgICDQutC+0L3RgtC10LnQvdC10YAuaW5uZXJIVE1MICs9IGh0bWw7CiAgICAgICAgCiAgICAgICAgZnVuY3Rpb24g0LLRi9Cy0LXRgdGC0LjQmNC30L7QsdGA0LDQttC10L3QuNGPKCkKICAgICAgICB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCLQndCQ0JTQniDQstGL0LLQtdGB0YLQuCDQuNC30L7QsdGA0LDQttC10L3QuNGPIik7CiAgICAgICAgICAgIHZhciBsb2FkZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9hZGVyIik7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCLQpNCw0LnQu9GLOiIsIGxvYWRlci5maWxlcyk7CiAgICAgICAgfQogICAgICAgIAogICAgdmFyIGJhciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdqcy1wcm9ncmVzc2JhcicpOwogICAgVUlraXQudXBsb2FkKCcuanMtdXBsb2FkJywgewogICAgICAgIHVybDogJycsCiAgICAgICAgbXVsdGlwbGU6IHRydWUsCgogICAgICAgIGJlZm9yZVNlbmQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coJ2JlZm9yZVNlbmQnLCBhcmd1bWVudHMpOwogICAgICAgIH0sCiAgICAgICAgYmVmb3JlQWxsOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdiZWZvcmVBbGwnLCBhcmd1bWVudHMpOwogICAgICAgIH0sCiAgICAgICAgbG9hZDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBjb25zb2xlLmxvZygnbG9hZCcsIGFyZ3VtZW50cyk7CiAgICAgICAgfSwKICAgICAgICBlcnJvcjogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBjb25zb2xlLmxvZygnZXJyb3InLCBhcmd1bWVudHMpOwogICAgICAgIH0sCiAgICAgICAgY29tcGxldGU6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coJ2NvbXBsZXRlJywgYXJndW1lbnRzKTsKICAgICAgICB9LAoKICAgICAgICBsb2FkU3RhcnQ6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsb2FkU3RhcnQnLCBhcmd1bWVudHMpOwoKICAgICAgICAgICAgYmFyLnJlbW92ZUF0dHJpYnV0ZSgnaGlkZGVuJyk7CiAgICAgICAgICAgIGJhci5tYXggPSBlLnRvdGFsOwogICAgICAgICAgICBiYXIudmFsdWUgPSBlLmxvYWRlZDsKICAgICAgICB9LAoKICAgICAgICBwcm9ncmVzczogZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coJ3Byb2dyZXNzJywgYXJndW1lbnRzKTsKCiAgICAgICAgICAgIGJhci5tYXggPSBlLnRvdGFsOwogICAgICAgICAgICBiYXIudmFsdWUgPSBlLmxvYWRlZDsKICAgICAgICB9LAoKICAgICAgICBsb2FkRW5kOiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICBjb25zb2xlLmxvZygnbG9hZEVuZCcsIGFyZ3VtZW50cyk7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2YWx1ZScsIGUubG9hZGVkKTsKCiAgICAgICAgICAgIGJhci5tYXggPSBlLnRvdGFsOwogICAgICAgICAgICBiYXIudmFsdWUgPSBlLmxvYWRlZDsKICAgICAgICB9LAoKICAgICAgICBjb21wbGV0ZUFsbDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBjb25zb2xlLmxvZygnY29tcGxldGVBbGwnLCBhcmd1bWVudHMpOwoKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICBiYXIuc2V0QXR0cmlidXRlKCdoaWRkZW4nLCAnaGlkZGVuJyk7CiAgICAgICAgICAgIH0sIDEwMDApOwoKICAgICAgICAgICAgY29uc29sZS5sb2coJ1VwbG9hZCBDb21wbGV0ZWQnKTsKICAgICAgICAgICAg0LLRi9Cy0LXRgdGC0LjQmNC30L7QsdGA0LDQttC10L3QuNGPKCk7CiAgICAgICAgICAgIAogICAgICAgIH0KICAgIH0pOwoKICAgIH07Cn0KCi8vIC8vIC8vIC8vCgpmdW5jdGlvbiDQlNC+0LHQsNCy0LjRgtGM0JrQvtC90YLQtdC50L3QtdGA0JTQu9GP0KLQtdGB0YLQvtCyKNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAg0LTQvtCx0LDQstC40YLRjNCt0LrRgNCw0L0oItC60L7QvdGC0LXQudC90LXRgC3QtNC70Y8t0YLQtdGB0YLQvtCyIiwgIiIsICIiKTsKICAgIH0KfQoKLy8g0JrQu9Cw0YHRgSDQtNC70Y8g0YLQtdGB0YLQvtCyLgp2YXIgSW1hZ2VfVXBsb2FkX1ByZXZpZXcgPSBmdW5jdGlvbiAoIGZpbGVfaW5wdXQsIGltYWdlX2VsZW1lbnQgKXsKCiAgICAvKioKICAgICAqIENoZWNrcyBmb3Igc3VwcG9ydGVkIGZlYXR1cmVzCiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0KICAgICAqLwogICAgdGhpcy5pc19zdXBwb3J0ZWQgPSBmdW5jdGlvbigpewoKICAgICAgICBpZiggISBGaWxlUmVhZGVyIGluc3RhbmNlb2YgRnVuY3Rpb24gKXsKICAgICAgICAgICAgY29uc29sZS5lcnJvcignOiggWW91ciBicm93c2VyIG5vZXMgbm90IHN1cHBvcnQgdGhlIEZpbGVSZWFkZXIuLi4nKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgIH07CgoKICAgIC8qKgogICAgICogQ2hlY2tzIHRoZSBpbnB1dHMgcHJvdmlkZWQKICAgICAqIEByZXR1cm5zIHtib29sZWFufQogICAgICovCiAgICB0aGlzLnZhbGlkYXRlX2lucHV0cyA9IGZ1bmN0aW9uKCl7CgogICAgICAgIC8qKgogICAgICAgICAqIEZhaWwgaWY6CiAgICAgICAgICogMS4gTm90IGEgSFRNTCBJbnB1dCBFbGVtZW50CiAgICAgICAgICogMi4gTm90IGEgRmlsZSBJbnB1dCBFbGVtZW50CiAgICAgICAgICoKICAgICAgICAgKi8KICAgICAgICBpZiggISAkKGZpbGVfaW5wdXQpLmdldCgwKSBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHwgJChmaWxlX2lucHV0KS5maXJzdCgpLmF0dHIoJ3R5cGUnKSAhPSAnZmlsZScgKXsKICAgICAgICAgICAgY29uc29sZS5lcnJvciggJ0ludmFsaWQgRWxlbWVudCBwcm92aWRlZC4uLicgKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogRmFpbCBpZjoKICAgICAgICAgKiAxLiBJbWFnZSBFbGVtZW50IHByb3ZpZGVkIGlzIGludmFsaWQKICAgICAgICAgKi8KICAgICAgICBpZiggISAkKGltYWdlX2VsZW1lbnQpLmdldCgwKSBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnQgKXsKICAgICAgICAgICAgY29uc29sZS5lcnJvciggJ0ludmFsaWQgSW1hZ2UgRWxlbWVudCBwcm92aWRlZC4uLicgKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICB9OwoKCiAgICAvKioKICAgICAqIE9ubHkgcHJvY2VlZCBpZiBhbGwgdGhlIHByZWxpbWluYXJ5IGNoZWNrcyBoYXZlIHBhc3NlZAogICAgICovCiAgICBpZiggdGhpcy5pc19zdXBwb3J0ZWQoKSB8fCB0aGlzLnZhbGlkYXRlX2lucHV0cygpICl7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKCiAgICAvKioKICAgICAqIFNldCB0aGUgZmlsZSBpbnB1dCB0byBvbmx5IGFjY2VwdCBpbWFnZXMKICAgICAqLwogICAgJChmaWxlX2lucHV0KS5hdHRyKCdhY2NlcHQnLCdpbWFnZS8qJyk7CgoKICAgICQoZmlsZV9pbnB1dCkuY2hhbmdlKGZ1bmN0aW9uKCl7CgogICAgICAgIC8qKgogICAgICAgICAqIEZhaWwgaWY6CiAgICAgICAgICogMS4gJ2ZpbGVzJyBkYXRhIGlzIG5vbiBleGlzdGVudAogICAgICAgICAqIDIuICdmaWxlcycgZGF0YSBoYXMgbm8gZGF0YSBpbiBpdAogICAgICAgICAqLwogICAgICAgIGlmKCAhdGhpcy5maWxlcyB8fCB0aGlzLmZpbGVzLmxlbmd0aCA8IDEgKXsKICAgICAgICAgICAgY29uc29sZS5lcnJvcignTm8gZmlsZXMgZGF0YSBleGlzdHMgZm9yIHRoaXMgZmlsZSBpbnB1dC4uLicpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQoKCiAgICAgICAgdmFyIGZpbGVfcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKCiAgICAgICAgZmlsZV9yZWFkZXIub25sb2FkID0gZnVuY3Rpb24oIHJlYWRlcl9yZXN1bHQgKSB7CgogICAgICAgICAgICB2YXIgaW1hZ2VfcmVzdWx0ID0gbnVsbDsKCiAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgKiBMZWdhY3kgbG9va3VwIGZvciB0aGUgcmVzdWx0CiAgICAgICAgICAgICAqLwogICAgICAgICAgICBpbWFnZV9yZXN1bHQgPSByZWFkZXJfcmVzdWx0LnRhcmdldCAmJiByZWFkZXJfcmVzdWx0LnRhcmdldC5yZXN1bHQgPyByZWFkZXJfcmVzdWx0LnRhcmdldC5yZXN1bHQgOiBpbWFnZV9yZXN1bHQgOwogICAgICAgICAgICBpbWFnZV9yZXN1bHQgPSAhaW1hZ2VfcmVzdWx0ICYmIHJlYWRlcl9yZXN1bHQuc3JjRWxlbWVudCAmJiByZWFkZXJfcmVzdWx0LnNyY0VsZW1lbnQucmVzdWx0ID8gcmVhZGVyX3Jlc3VsdC5zcmNFbGVtZW50LnJlc3VsdCA6IGltYWdlX3Jlc3VsdCA7CgogICAgICAgICAgICAkKCBpbWFnZV9lbGVtZW50ICkuYXR0ciggJ3NyYycsIGltYWdlX3Jlc3VsdCApOwogICAgICAgIH07CgogICAgICAgIGZpbGVfcmVhZGVyLnJlYWRBc0RhdGFVUkwoIHRoaXMuZmlsZXNbMF0gKTsKICAgIH0pOwoKfQ==", +"Ci8vIC8vIC8vIC8vCgpmdW5jdGlvbiDQo9GB0YLQsNC90L7QstC40YLRjNCX0LDQs9GA0YPQt9C60YPQmNC30L7QsdGA0LDQttC10L3QuNC5KNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyINCy0LLQvtC0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoItGC0LXQvNGLLdC30LDQs9GA0YPQt9C40YLRjC3QuNC30L7QsdGA0LDQttC10L3QuNGPIik7CiAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwogICAgICAgINCy0LLQvtC0Lm9uY2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHNlbGYu0LfQsNCz0YDRg9C30LjRgtGMKNCy0LLQvtC0LmZpbGVzKTsKICAgICAgICB9OwogICAgfTsKICAgIHRoaXMu0YHQstC+0LHQvtC00L3Ri9C10J/QvtC30LjRhtC40LggPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyINC40LfQviA9INC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItC40LfQvtCx0YDQsNC20LXQvdC40Y8iXTsKICAgICAgICB2YXIg0L/QvtC30LjRhtC40LggPSBbXTsKICAgICAgICBmb3IgKHZhciDQvdC+0LzQtdGAID0gMDsg0L3QvtC80LXRgCA8IDQyOyArK9C90L7QvNC10YApCiAgICAgICAgewogICAgICAgICAgICBpZiAo0LjQt9C+W9C90L7QvNC10YBdLnNyYykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLy8gSG93IHRvIGNoZWNrIGVtcHR5L3VuZGVmaW5lZC9udWxsIHN0cmluZyBpbiBKYXZhU2NyaXB0PwogICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzE1NDA2OC8zNDA0NzEwCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICDQv9C+0LfQuNGG0LjQuC5wdXNoKNC90L7QvNC10YApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJldHVybiDQv9C+0LfQuNGG0LjQuDsKICAgIH07CiAgICB0aGlzLtC30LDQs9GA0YPQt9C40YLRjCA9IGZ1bmN0aW9uKNGE0LDQudC70YspCiAgICB7CiAgICAgICAgdmFyINC/0L7Qt9C40YbQuNC4ID0gdGhpcy7RgdCy0L7QsdC+0LTQvdGL0LXQn9C+0LfQuNGG0LjQuCgpOwogICAgICAgIGZvciAodmFyINC90L7QvNC10YAgPSAwOyDQvdC+0LzQtdGAIDwg0YTQsNC50LvRiy5sZW5ndGg7ICsr0L3QvtC80LXRgCkKICAgICAgICB7CiAgICAgICAgICAgIC8vINCd0LUg0LfQsNCz0YDRg9C20LDQtdC8INC/0YDQuCDQvtGC0YHRg9GC0YHRgtCy0LjQuCDRgdCy0L7QsdC+0LTQvdGL0YUg0L/QvtC30LjRhtC40LkuCiAgICAgICAgICAgIGlmICgh0L/QvtC30LjRhtC40LgubGVuZ3RoKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oItCd0LUg0YXQstCw0YLQsNC10YIg0LTQvtGB0YLRg9C/0L3Ri9GFINC/0L7Qt9C40YbQuNC5INC00LvRjyDQt9Cw0LPRgNGD0LfQutC4INC40LfQvtCx0YDQsNC20LXQvdC40LkiKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YXIg0YTQsNC50LsgPSDRhNCw0LnQu9GLW9C90L7QvNC10YBdOwogICAgICAgICAgICB2YXIg0L/QvtC30LjRhtC40Y8gPSDQv9C+0LfQuNGG0LjQuC5zaGlmdCgpOwogICAgICAgICAgICB0aGlzLtC30LDQs9GA0YPQt9C40YLRjNCk0LDQudC7KNGE0LDQudC7LCDQv9C+0LfQuNGG0LjRjyk7CiAgICAgICAgfQogICAgfTsKICAgIHRoaXMu0LfQsNCz0YDRg9C30LjRgtGM0KTQsNC50LsgPSBmdW5jdGlvbijRhNCw0LnQuywg0L/QvtC30LjRhtC40Y8pCiAgICB7CiAgICAgICAgdmFyINGH0YLQtdGGID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CiAgICAgICAg0YfRgtC10YYub25sb2FkID0gZnVuY3Rpb24o0YHQvtCx0YvRgtC40LUpCiAgICAgICAgewogICAgICAgICAgICB2YXIg0LjQt9C+ID0g0LzQuNGALtGB0L7RgdGC0L7Rj9C90LjQtVsi0LjQt9C+0LHRgNCw0LbQtdC90LjRjyJdOwogICAgICAgICAgICB2YXIgaW1nID0g0LjQt9C+W9C/0L7Qt9C40YbQuNGPXTsKICAgICAgICAgICAgaW1nLnNyYyA9INGB0L7QsdGL0YLQuNC1LnRhcmdldC5yZXN1bHQ7CiAgICAgICAgfTsKICAgICAgICDRh9GC0LXRhi5yZWFkQXNEYXRhVVJMKNGE0LDQudC7KTsKICAgIH07Cn0KCi8vIC8vIC8vIC8vCgpmdW5jdGlvbiDQn9C+0LTQs9C+0YLQvtCy0LjRgtGM0J/QvtC30LjRhtC40LjQmNC30L7QsdGA0LDQttC10L3QuNC5KNC80LjRgCkKewogICAgdGhpcy7QuNGB0L/QvtC70L3QuNGC0YwgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgdmFyINC40LfQviA9IHt9OwogICAgICAgIHZhciBpbWcgPSAkKCJpbWciKTsKICAgICAgICBmb3IgKHZhciDQvdC+0LzQtdGAID0gMDsg0L3QvtC80LXRgCA8IDQyOyArK9C90L7QvNC10YApCiAgICAgICAgewogICAgICAgICAgICDQuNC30L5b0L3QvtC80LXRgF0gPSBpbWdb0L3QvtC80LXRgF07CiAgICAgICAgfQogICAgICAgINC80LjRgC7RgdC+0YHRgtC+0Y/QvdC40LVbItC40LfQvtCx0YDQsNC20LXQvdC40Y8iXSA9INC40LfQvjsKICAgIH07Cn0KCi8vIC8vIC8vIC8vCgpmdW5jdGlvbiDQlNC+0LHQsNCy0LjRgtGM0KHQtdGC0LrRgyjQvNC40YApCnsKICAgIHRoaXMu0LjRgdC/0L7Qu9C90LjRgtGMID0gZnVuY3Rpb24oKQogICAgewogICAgICAgIGZ1bmN0aW9uINGN0LvQtdC80LXQvdGCKNC90L7QvNC10YApCiAgICAgICAgewogICAgICAgICAgICB2YXIgaHRtbCA9CiAgICAgICAgICAgICAgICBgCjxkaXY+CiAgICA8ZGl2IGNsYXNzPSJ1ay1jYXJkIHVrLWNhcmQtZGVmYXVsdCB1ay1jYXJkLXNtYWxsIj4KICAgICAgICA8ZGl2IGNsYXNzPSJ1ay1jYXJkLWhlYWRlciB1ay10ZXh0LWNlbnRlciI+CiAgICAgICAgICAgICAgICBgCiAgICAgICAgICAgICAgICArINC90L7QvNC10YAgKwogICAgICAgICAgICAgICAgYAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InVrLWNhcmQtYm9keSI+CiAgICAgICAgICAgIDxpbWcgY2xhc3M9InVrLWhlaWdodC1zbWFsbCB1ay13aWR0aC1zbWFsbCB1ay1hbGlnbi1jZW50ZXIiPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2PgogICAgICAgICAgICAgICAgYDsKICAgICAgICAgICAgcmV0dXJuIGh0bWw7CiAgICAgICAgfQogICAgICAgIHZhciDRjdC70LXQvNC10L3RgtGLID0gIiI7CiAgICAgICAgZm9yICh2YXIg0L3QvtC80LXRgCA9IDE7INC90L7QvNC10YAgPD0gNDI7ICsr0L3QvtC80LXRgCkKICAgICAgICB7CiAgICAgICAgICAgIHZhciDRjdC7ID0g0Y3Qu9C10LzQtdC90YIo0L3QvtC80LXRgCk7CiAgICAgICAgICAgINGN0LvQtdC80LXQvdGC0YsgKz0g0Y3QuzsKICAgICAgICB9CiAgICAgICAgdmFyIGh0bWwgPQogICAgICAgICAgICBgCjxkaXYgY2xhc3M9InVrLWdyaWQtbWF0Y2ggdWstZ3JpZC1zbWFsbCB1ay1wYWRkaW5nLXNtYWxsIHVrLWNoaWxkLXdpZHRoLTEtMSB1ay1jaGlsZC13aWR0aC0xLTJAbSB1ay1jaGlsZC13aWR0aC0xLTNAbCB1ay1jaGlsZC13aWR0aC0xLTRAeGwgdWstY2hpbGQtd2lkdGgtMS01QHh4bCIgdWstZ3JpZCB1ay1oZWlnaHQtbWF0Y2g9InRhcmdldDogPiBkaXYgPiAudWstY2FyZCI+CiAgICAgICAgICAgIGAKICAgICAgICAgICAgKyDRjdC70LXQvNC10L3RgtGLICsKICAgICAgICAgICAgYAo8L2Rpdj4KICAgICAgICAgICAgYDsKICAgICAgICAkKCIj0YLQtdC80Yst0L7QsdC70LDRgdGC0Ywt0LvQtdCy0LDRjyIpCiAgICAgICAgICAgIC5hcHBlbmQoaHRtbCkKICAgICAgICAgICAgLmNzcygib3ZlcmZsb3cteSIsICJzY3JvbGwiKQogICAgICAgICAgICA7CiAgICB9Cn0KCi8vIC8vIC8vIC8vCgpmdW5jdGlvbiDQlNC+0LHQsNCy0LjRgtGM0K3QutGA0LDQvdCi0LXQvCjQvNC40YApCnsKICAgIHRoaXMu0LjRgdC/0L7Qu9C90LjRgtGMID0gZnVuY3Rpb24oKQogICAgewogICAgICAgIHZhciBodG1sID0KICAgICAgICAgICAgYAo8ZGl2IGlkPSLRgtC10LzRiy3QvtCx0LvQsNGB0YLRjC3Qu9C10LLQsNGPIj4KPC9kaXY+Cgo8ZGl2IGlkPSLRgtC10LzRiy3QvtCx0LvQsNGB0YLRjC3RhtC10L3RgtGA0LDQu9GM0L3QsNGPLdCy0LXRgNGFIj4KICAgIDxkaXYgdWstZm9ybS1jdXN0b20+CiAgICAgICAgPGEgY2xhc3M9InVrLWljb24tYnV0dG9uIHVrLW1hcmdpbi1zbWFsbC1ib3R0b20iIHVrLWljb249InVwbG9hZCIgdWstdG9vbHRpcD0idGl0bGU6INCX0LDQs9GA0YPQt9C40YLRjCDQuNC30L7QsdGA0LDQttC10L3QuNGPOyBkZWxheTogNTAwIiI+CiAgICAgICAgICAgIDxpbnB1dCBpZD0i0YLQtdC80Yst0LfQsNCz0YDRg9C30LjRgtGMLdC40LfQvtCx0YDQsNC20LXQvdC40Y8iIHR5cGU9ImZpbGUiIG11bHRpcGxlIGFjY2VwdHM9ImltYWdlLyoiPgogICAgICAgIDwvYT4KICAgIDwvZGl2Pgo8L2Rpdj4gICAgCiAgICAKICAgIAogICAgCjwvZGl2PgoKPGRpdiBpZD0i0YLQtdC80Yst0L7QsdC70LDRgdGC0Ywt0YbQtdC90YLRgNCw0LvRjNC90LDRjy3QvdC40LciPgo8L2Rpdj4KCjxkaXYgaWQ9ItGC0LXQvNGLLdC+0LHQu9Cw0YHRgtGMLdC/0YDQsNCy0LDRjy3QstC10YDRhSI+CiAgICA8aWZyYW1lIGlkPSLQstGB0YLRgNC+0LnQutCwIj4KICAgICAgICA8cD7QntCo0JjQkdCa0JAg0JLQsNGIINCy0LXQsS3QsdGA0LDRg9C30LXRgCDQvdC1INC/0L7QtNC00LXRgNC20LjQstCw0LXRgiBpZnJhbWU8L3A+CiAgICAgICAgPHA+RVJST1IgWW91ciB3ZWIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IGlmcmFtZXM8L3A+CiAgICA8L2lmcmFtZT4KPC9kaXY+Cgo8ZGl2IGlkPSLRgtC10LzRiy3QvtCx0LvQsNGB0YLRjC3Qv9GA0LDQstCw0Y8t0L3QuNC3Ij4KPC9kaXY+CiAgICAgICAgICAgIGA7CiAgICAgICAgdmFyIGNzcyA9CiAgICAgICAgICAgIGAKI9GC0LXQvNGLLdC+0LHQu9Cw0YHRgtGMLdC70LXQstCw0Y8KewogICAgcG9zaXRpb246IGZpeGVkOwogICAgdG9wOiAwOwogICAgYm90dG9tOiAwOwogICAgbGVmdDogMDsKICAgIHdpZHRoOiBjYWxjKDUwJSAtIDJlbSk7Cn0KCiPRgtC10LzRiy3QvtCx0LvQsNGB0YLRjC3RhtC10L3RgtGA0LDQu9GM0L3QsNGPLdCy0LXRgNGFCnsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHRvcDogMDsKICAgIGhlaWdodDogNTAlOwogICAgbGVmdDogNTAlOwogICAgd2lkdGg6IDRlbTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMmVtKTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RkZDsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkZGQ7CiAgICBwYWRkaW5nLXRvcDogMWVtOwp9Cgoj0YLQtdC80Yst0L7QsdC70LDRgdGC0Ywt0YbQtdC90YLRgNCw0LvRjNC90LDRjy3QvdC40LcKewogICAgcG9zaXRpb246IGZpeGVkOwogICAgYm90dG9tOiAwOwogICAgaGVpZ2h0OiA1MCU7CiAgICBsZWZ0OiA1MCU7CiAgICB3aWR0aDogNGVtOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yZW0pOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGRkOwogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZDsKICAgIHBhZGRpbmctdG9wOiAxZW07Cn0KCiPRgtC10LzRiy3QvtCx0LvQsNGB0YLRjC3Qv9GA0LDQstCw0Y8t0LLQtdGA0YUKewogICAgcG9zaXRpb246IGZpeGVkOwogICAgdG9wOiAwOwogICAgaGVpZ2h0OiA1MCU7CiAgICByaWdodDogMDsKICAgIHdpZHRoOiBjYWxjKDUwJSAtIDJlbSAtIDFweCk7Cn0KCiPRgtC10LzRiy3QvtCx0LvQsNGB0YLRjC3Qv9GA0LDQstCw0Y8t0L3QuNC3CnsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIGJvdHRvbTogMDsKICAgIGhlaWdodDogNTAlOwogICAgcmlnaHQ6IDA7CiAgICB3aWR0aDogY2FsYyg1MCUgLSAyZW0gLSAxcHgpOwp9CiAgICAgICAgICAgIGA7CiAgICAgICAg0LTQvtCx0LDQstC40YLRjNCt0LrRgNCw0L0oItGC0LXQvNGLIiwgaHRtbCwgY3NzKTsKICAgIH0KfQoKLy8gLy8gLy8gLy8KCmZ1bmN0aW9uINCU0L7QsdCw0LLQuNGC0YzQodCy0L7RkSjQvNC40YApCnsKICAgIHRoaXMu0LjRgdC/0L7Qu9C90LjRgtGMID0gZnVuY3Rpb24oKQogICAgewogICAgICAgIHZhciBodG1sID0KYAo8ZGl2IGNsYXNzPSJ1ay1wYW5lbCB1ay1wYW5lbC1zY3JvbGxhYmxlIj4KPGRpdiBpZD0icGFyZW50IiBjbGFzcz0idWstY29udGFpbmVyIHVrLWNvbnRhaW5lci1jZW50ZXIgdWstYmFja2dyb3VuZC1tdXRlZCI+CiAgICA8Zm9ybT4KICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbXVsdGlwbGUgYWNjZXB0cz0iaW1hZ2UvKiIgaWQ9ImlucHV0Ii8+CiAgICA8L2Zvcm0+CjwvZGl2Pgo8L2Rpdj4KYDsKICAgICAgICB2YXIg0LrQvtC90YLQtdC50L3QtdGAID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoItC60L7QvdGC0LXQudC90LXRgC3QtNC70Y8t0YLQtdGB0YLQvtCyIik7CiAgICAgICAg0LrQvtC90YLQtdC50L3QtdGALmlubmVySFRNTCArPSBodG1sOwogICAgICAgIHZhciDQstCy0L7QtCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dCIpOwogICAgICAgIHZhciBzZWxmID0gdGhpczsKICAgICAgICDQstCy0L7QtC5vbmNoYW5nZSA9IGZ1bmN0aW9uKCkgeyBzZWxmLtC30LDQs9GA0YPQt9C40YLRjCjQstCy0L7QtC5maWxlcyk7IH07CiAgICB9OwogICAgdGhpcy7Qt9Cw0LPRgNGD0LfQuNGC0YwgPSBmdW5jdGlvbijRhNCw0LnQu9GLKQogICAgewogICAgICAgIGNvbnNvbGUubG9nKCLQt9Cw0LPRgNGD0LfQuNGC0Ywg0YTQsNC50LvQvtCyOiIsINGE0LDQudC70YspOwogICAgICAgIGZvciAodmFyINC90L7QvNC10YAgaW4g0YTQsNC50LvRiykKICAgICAgICB7CiAgICAgICAgICAgIHZhciDRhNCw0LnQuyA9INGE0LDQudC70Ytb0L3QvtC80LXRgF07CiAgICAgICAgICAgIHRoaXMu0LfQsNCz0YDRg9C30LjRgtGM0KTQsNC50Lso0YTQsNC50LspOwogICAgICAgIH0KICAgIH07CiAgICB0aGlzLtC30LDQs9GA0YPQt9C40YLRjNCk0LDQudC7ID0gZnVuY3Rpb24o0YTQsNC50LspCiAgICB7CiAgICAgICAgdmFyINGH0YLQtdGGID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgICDRh9GC0LXRhi5vbmxvYWQgPSBmdW5jdGlvbijRgdC+0LHRi9GC0LjQtSkKICAgICAgICB7CiAgICAgICAgICAgIHZhciDRgNC+0LTQuNGC0LXQu9GMID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhcmVudCIpOwogICAgICAgICAgICB2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7CiAgICAgICAgICAgIGltZy5jbGFzc0xpc3QuYWRkKCJ1ay1tYXJnaW4iKTsKICAgICAgICAgICAgaW1nLnNyYyA9INGB0L7QsdGL0YLQuNC1LnRhcmdldC5yZXN1bHQ7CiAgICAgICAgICAgINGA0L7QtNC40YLQtdC70YwuYXBwZW5kQ2hpbGQoaW1nKTsKICAgICAgICB9OwogICAgICAgINGH0YLQtdGGLnJlYWRBc0RhdGFVUkwo0YTQsNC50LspOwogICAgfTsKfQoKLy8gLy8gLy8gLy8KCmZ1bmN0aW9uINCU0L7QsdCw0LLQuNGC0YzQn9GA0LjQvNC10YAo0LzQuNGAKQp7CiAgICB0aGlzLtC40YHQv9C+0LvQvdC40YLRjCA9IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICB2YXIgaHRtbCA9CmAKPGRpdiBjbGFzcz0idWstY29udGFpbmVyIHVrLWNvbnRhaW5lci1jZW50ZXIgdWstdGV4dC1jZW50ZXIiPgogIDxkaXYgY2xhc3M9InVrLXRodW1ibmFpbCB1ay1tYXJnaW4tdG9wIj4KICAgIDxpbWcgY2xhc3M9InVrLW1hcmdpbiIgc3JjPSJhYmMiPgogICAgPGZvcm0+CiAgICAgIDxsYWJlbCBjbGFzcz0idWstYnV0dG9uIHVrLWJ1dHRvbi1wcmltYXJ5Ij4KICAgICAgICA8c3Bhbj5TZWxlY3QgSW1hZ2U8L3NwYW4+CiAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIGFjY2VwdHM9ImltYWdlLyoiIGlkPSJmaWxlX2lucHV0X2RlbW8iIGNsYXNzPSJ1ay1pbnZpc2libGUgdWstcG9zaXRpb24tYWJzb2x1dGUiIC8+CiAgICAgIDwvbGFiZWw+CiAgICA8L2Zvcm0+CiAgPC9kaXY+CjwvZGl2PgpgOwoKICAgICAgICB2YXIg0LrQvtC90YLQtdC50L3QtdGAID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoItC60L7QvdGC0LXQudC90LXRgC3QtNC70Y8t0YLQtdGB0YLQvtCyIik7CiAgICAgICAg0LrQvtC90YLQtdC50L3QtdGALmlubmVySFRNTCArPSBodG1sOwogICAgICAgIAoKICAgIC8vbmV3IEltYWdlX1VwbG9hZF9QcmV2aWV3KCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlsZV9pbnB1dF9kZW1vJyksICQoJ2ltZycpICk7CiAgICAvL25ldyBJbWFnZV9VcGxvYWRfUHJldmlldyggJCgnaW5wdXRbdHlwZT1maWxlXScpLCAkKCdpbWcnKSApOwogICAgbmV3IEltYWdlX1VwbG9hZF9QcmV2aWV3KCAkKCcjZmlsZV9pbnB1dF9kZW1vJyksICQoJ2ltZycpICk7CiAgICB9OwogICAgCn0KCi8vIC8vIC8vIC8vCgpmdW5jdGlvbiDQlNC+0LHQsNCy0LjRgtGM0J/QsNC90LXQu9GM0JfQsNCz0YDRg9C30LrQuCjQvNC40YApCnsKICAgIHRoaXMu0LjRgdC/0L7Qu9C90LjRgtGMID0gZnVuY3Rpb24oKQogICAgewogICAgICAgIHZhciBodG1sID0KYAo8ZGl2IGNsYXNzPSJqcy11cGxvYWQgdWstcGxhY2Vob2xkZXIgdWstdGV4dC1jZW50ZXIiPgogICAgPHNwYW4gdWstaWNvbj0iaWNvbjogY2xvdWQtdXBsb2FkIj48L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0idWstdGV4dC1taWRkbGUiPkF0dGFjaCBiaW5hcmllcyBieSBkcm9wcGluZyB0aGVtIGhlcmUgb3I8L3NwYW4+CiAgICA8ZGl2IHVrLWZvcm0tY3VzdG9tPgogICAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBtdWx0aXBsZSBpZD0ibG9hZGVyIj4KICAgICAgICA8c3BhbiBjbGFzcz0idWstbGluayI+c2VsZWN0aW5nIHRoZW08L3NwYW4+CiAgICA8L2Rpdj4KPC9kaXY+Cjxwcm9ncmVzcyBpZD0ianMtcHJvZ3Jlc3NiYXIiIGNsYXNzPSJ1ay1wcm9ncmVzcyIgdmFsdWU9IjAiIG1heD0iMTAwIiBoaWRkZW4+PC9wcm9ncmVzcz4KYDsKICAgICAgICB2YXIg0LrQvtC90YLQtdC50L3QtdGAID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoItC60L7QvdGC0LXQudC90LXRgC3QtNC70Y8t0YLQtdGB0YLQvtCyIik7CiAgICAgICAg0LrQvtC90YLQtdC50L3QtdGALmlubmVySFRNTCArPSBodG1sOwogICAgICAgIAogICAgICAgIGZ1bmN0aW9uINCy0YvQstC10YHRgtC40JjQt9C+0LHRgNCw0LbQtdC90LjRjygpCiAgICAgICAgewogICAgICAgICAgICBjb25zb2xlLmxvZygi0J3QkNCU0J4g0LLRi9Cy0LXRgdGC0Lgg0LjQt9C+0LHRgNCw0LbQtdC90LjRjyIpOwogICAgICAgICAgICB2YXIgbG9hZGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvYWRlciIpOwogICAgICAgICAgICBjb25zb2xlLmxvZygi0KTQsNC50LvRizoiLCBsb2FkZXIuZmlsZXMpOwogICAgICAgIH0KICAgICAgICAKICAgIHZhciBiYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnanMtcHJvZ3Jlc3NiYXInKTsKICAgIFVJa2l0LnVwbG9hZCgnLmpzLXVwbG9hZCcsIHsKICAgICAgICB1cmw6ICcnLAogICAgICAgIG11bHRpcGxlOiB0cnVlLAoKICAgICAgICBiZWZvcmVTZW5kOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdiZWZvcmVTZW5kJywgYXJndW1lbnRzKTsKICAgICAgICB9LAogICAgICAgIGJlZm9yZUFsbDogZnVuY3Rpb24gKCkgewogICAgICAgICAgICBjb25zb2xlLmxvZygnYmVmb3JlQWxsJywgYXJndW1lbnRzKTsKICAgICAgICB9LAogICAgICAgIGxvYWQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coJ2xvYWQnLCBhcmd1bWVudHMpOwogICAgICAgIH0sCiAgICAgICAgZXJyb3I6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coJ2Vycm9yJywgYXJndW1lbnRzKTsKICAgICAgICB9LAogICAgICAgIGNvbXBsZXRlOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjb21wbGV0ZScsIGFyZ3VtZW50cyk7CiAgICAgICAgfSwKCiAgICAgICAgbG9hZFN0YXJ0OiBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICBjb25zb2xlLmxvZygnbG9hZFN0YXJ0JywgYXJndW1lbnRzKTsKCiAgICAgICAgICAgIGJhci5yZW1vdmVBdHRyaWJ1dGUoJ2hpZGRlbicpOwogICAgICAgICAgICBiYXIubWF4ID0gZS50b3RhbDsKICAgICAgICAgICAgYmFyLnZhbHVlID0gZS5sb2FkZWQ7CiAgICAgICAgfSwKCiAgICAgICAgcHJvZ3Jlc3M6IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdwcm9ncmVzcycsIGFyZ3VtZW50cyk7CgogICAgICAgICAgICBiYXIubWF4ID0gZS50b3RhbDsKICAgICAgICAgICAgYmFyLnZhbHVlID0gZS5sb2FkZWQ7CiAgICAgICAgfSwKCiAgICAgICAgbG9hZEVuZDogZnVuY3Rpb24gKGUpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coJ2xvYWRFbmQnLCBhcmd1bWVudHMpOwogICAgICAgICAgICBjb25zb2xlLmxvZygndmFsdWUnLCBlLmxvYWRlZCk7CgogICAgICAgICAgICBiYXIubWF4ID0gZS50b3RhbDsKICAgICAgICAgICAgYmFyLnZhbHVlID0gZS5sb2FkZWQ7CiAgICAgICAgfSwKCiAgICAgICAgY29tcGxldGVBbGw6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coJ2NvbXBsZXRlQWxsJywgYXJndW1lbnRzKTsKCiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgYmFyLnNldEF0dHJpYnV0ZSgnaGlkZGVuJywgJ2hpZGRlbicpOwogICAgICAgICAgICB9LCAxMDAwKTsKCiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdVcGxvYWQgQ29tcGxldGVkJyk7CiAgICAgICAgICAgINCy0YvQstC10YHRgtC40JjQt9C+0LHRgNCw0LbQtdC90LjRjygpOwogICAgICAgICAgICAKICAgICAgICB9CiAgICB9KTsKCiAgICB9Owp9CgovLyAvLyAvLyAvLwoKZnVuY3Rpb24g0JTQvtCx0LDQstC40YLRjNCa0L7QvdGC0LXQudC90LXRgNCU0LvRj9Ci0LXRgdGC0L7QsijQvNC40YApCnsKICAgIHRoaXMu0LjRgdC/0L7Qu9C90LjRgtGMID0gZnVuY3Rpb24oKQogICAgewogICAgICAgINC00L7QsdCw0LLQuNGC0YzQrdC60YDQsNC9KCLQutC+0L3RgtC10LnQvdC10YAt0LTQu9GPLdGC0LXRgdGC0L7QsiIsICIiLCAiIik7CiAgICB9Cn0K", {"status":true} ], [ "темы.последовательность", -"0L/Rg9GB0Log0YLQtdC8CiAgICDQtNC+0LHQsNCy0LjRgtGMINC60L7QvdGC0LXQudC90LXRgCDQtNC70Y8g0YLQtdGB0YLQvtCyCiAgICDQtNC+0LHQsNCy0LjRgtGMINGB0LLQvtGRCiMgICAg0LTQvtCx0LDQstC40YLRjCDQv9GA0LjQvNC10YAKIyAgICDQtNC+0LHQsNCy0LjRgtGMINC/0LDQvdC10LvRjCDQt9Cw0LPRgNGD0LfQutC4", +"0L/Rg9GB0Log0YLQtdC8CiMgICAg0LTQvtCx0LDQstC40YLRjCDQutC+0L3RgtC10LnQvdC10YAg0LTQu9GPINGC0LXRgdGC0L7QsgojICAgINC00L7QsdCw0LLQuNGC0Ywg0YHQstC+0ZEKIyAgICDQtNC+0LHQsNCy0LjRgtGMINC/0YDQuNC80LXRgAojICAgINC00L7QsdCw0LLQuNGC0Ywg0L/QsNC90LXQu9GMINC30LDQs9GA0YPQt9C60LgKICAgINC00L7QsdCw0LLQuNGC0Ywg0Y3QutGA0LDQvSDRgtC10LwKICAgINC00L7QsdCw0LLQuNGC0Ywg0YHQtdGC0LrRgwogICAg0L/QvtC00LPQvtGC0L7QstC40YLRjCDQv9C+0LfQuNGG0LjQuCDQuNC30L7QsdGA0LDQttC10L3QuNC5CiAgICDRg9GB0YLQsNC90L7QstC40YLRjCDQt9Cw0LPRgNGD0LfQutGDINC40LfQvtCx0YDQsNC20LXQvdC40Lk=", {"status":false} ],