Тест на депрессию
Онлайн-скрининг эмоционального состояния. Не является диагнозом.
⚠️ Дисклеймер: Этот тест носит ознакомительный характер и не заменяет консультацию специалиста. Результаты не являются медицинским диагнозом. При любых тревожных симптомах обратитесь к психологу или психотерапевту.
CiAgICAgICAgKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBjb25zdCBxdWVzdGlvbnMgPSBbewogICAgICAgICAgICAgICAgaWQ6IDEsCiAgICAgICAgICAgICAgICB0ZXh0OiAn0JrQsNC6INGH0LDRgdGC0L4g0LfQsCDQv9C+0YHQu9C10LTQvdC40LUg0LTQstC1INC90LXQtNC10LvQuCDQstGLINGH0YPQstGB0YLQstC+0LLQsNC70Lgg0L/QvtC00LDQstC70LXQvdC90L7RgdGC0YwsINCz0YDRg9GB0YLRjCDQuNC70Lgg0L/Rg9GB0YLQvtGC0YM/JywKICAgICAgICAgICAgICAgIGhpbnQ6ICfQntGG0LXQvdC40YLQtSDQvtCx0YnQtdC1INGN0LzQvtGG0LjQvtC90LDQu9GM0L3QvtC1INGB0L7RgdGC0L7Rj9C90LjQtS4nLAogICAgICAgICAgICAgICAgb3B0aW9uczogWwogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Cf0YDQsNC60YLQuNGH0LXRgdC60Lgg0L3QuNC60L7Qs9C00LAnLCBzY29yZTogMCB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9CY0L3QvtCz0LTQsCwg0L3QtdGB0LrQvtC70YzQutC+INC00L3QtdC5Jywgc2NvcmU6IDEgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQp9Cw0YHRgtC+LCDQsdC+0LvRjNGI0LUg0L/QvtC70L7QstC40L3RiyDQtNC90LXQuScsIHNjb3JlOiAyIH0sCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0J/QvtGH0YLQuCDQutCw0LbQtNGL0Lkg0LTQtdC90YwnLCBzY29yZTogMyB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgIGlkOiAyLAogICAgICAgICAgICAgICAgdGV4dDogJ9Cd0LDRgdC60L7Qu9GM0LrQviDQstCw0Lwg0LHRi9C70L4g0YLRgNGD0LTQvdC+INC/0L7Qu9GD0YfQsNGC0Ywg0YPQtNC+0LLQvtC70YzRgdGC0LLQuNC1INC+0YIg0L/RgNC40LLRi9GH0L3Ri9GFINC30LDQvdGP0YLQuNC5PycsCiAgICAgICAgICAgICAgICBoaW50OiAn0KXQvtCx0LHQuCwg0L7QsdGJ0LXQvdC40LUsINC10LTQsCwg0L7RgtC00YvRhS4nLAogICAgICAgICAgICAgICAgb3B0aW9uczogWwogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9CvINC/0L7Qu9GD0YfQsNC7KNCwKSDRg9C00L7QstC+0LvRjNGB0YLQstC40LUg0LrQsNC6INC+0LHRi9GH0L3QvicsIHNjb3JlOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0J3QtdC80L3QvtCz0L4g0LzQtdC90YzRiNC1LCDRh9C10Lwg0YDQsNC90YzRiNC1Jywgc2NvcmU6IDEgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQl9C90LDRh9C40YLQtdC70YzQvdC+INC80LXQvdGM0YjQtScsIHNjb3JlOiAyIH0sCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0J/QvtGH0YLQuCDQvdC40YfQtdCz0L4g0L3QtSDRgNCw0LTQvtCy0LDQu9C+Jywgc2NvcmU6IDMgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICBpZDogMywKICAgICAgICAgICAgICAgIHRleHQ6ICfQmtCw0Log0LjQt9C80LXQvdC40LvRgdGPINCy0LDRiCDRgdC+0L0g0LIg0L/QvtGB0LvQtdC00L3QuNC1INC00LLQtSDQvdC10LTQtdC70Lg/JywKICAgICAgICAgICAgICAgIGhpbnQ6ICfQl9Cw0YHRi9C/0LDQvdC40LUsINC90L7Rh9C90YvQtSDQv9GA0L7QsdGD0LbQtNC10L3QuNGPLCDRgNCw0L3QvdC40Lkg0L/QvtC00YrRkdC8LicsCiAgICAgICAgICAgICAgICBvcHRpb25zOiBbCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0KHQv9C70Y4g0LrQsNC6INC+0LHRi9GH0L3Qviwg0LHQtdC3INC40LfQvNC10L3QtdC90LjQuScsIHNjb3JlOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0JjQvdC+0LPQtNCwINGB0L/Qu9GOINGF0YPQttC1INC40LvQuCDRh9GD0YLRjCDQsdC+0LvRjNGI0LUg0L7QsdGL0YfQvdC+0LPQvicsIHNjb3JlOiAxIH0sCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0KfQsNGB0YLQviDQvNGD0YfQsNC10YIg0LHQtdGB0YHQvtC90L3QuNGG0LAg0LjQu9C4INGB0L/Qu9GOINGB0LvQuNGI0LrQvtC8INC80L3QvtCz0L4nLCBzY29yZTogMiB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Ch0L7QvSDQvdCw0YDRg9GI0LXQvSDQv9C+0YfRgtC4INC60LDQttC00YPRjiDQvdC+0YfRjCcsIHNjb3JlOiAzIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgaWQ6IDQsCiAgICAgICAgICAgICAgICB0ZXh0OiAn0J7RhtC10L3QuNGC0LUg0YPRgNC+0LLQtdC90Ywg0LLQsNGI0LXQuSDRg9GB0YLQsNC70L7RgdGC0Lgg0LjQu9C4INC90LXRhdCy0LDRgtC60Lgg0Y3QvdC10YDQs9C40LguJywKICAgICAgICAgICAgICAgIGhpbnQ6ICfQndCw0YHQutC+0LvRjNC60L4g0YHQu9C+0LbQvdC+INC00LXQu9Cw0YLRjCDQv9C+0LLRgdC10LTQvdC10LLQvdGL0LUg0LTQtdC70LAuJywKICAgICAgICAgICAgICAgIG9wdGlvbnM6IFsKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQrdC90LXRgNCz0LjQuCDQtNC+0YHRgtCw0YLQvtGH0L3Qviwg0YPRgdGC0LDRjiDQutCw0Log0L7QsdGL0YfQvdC+Jywgc2NvcmU6IDAgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQo9GB0YLQsNGOINGH0YPRgtGMINCx0YvRgdGC0YDQtdC1INC+0LHRi9GH0L3QvtCz0L4nLCBzY29yZTogMSB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Ch0LjQu9GM0L3QsNGPINGD0YHRgtCw0LvQvtGB0YLRjCwg0YLRgNGD0LTQvdC+INGB0L/RgNCw0LLQu9GP0YLRjNGB0Y8g0YEg0LTQtdC70LDQvNC4Jywgc2NvcmU6IDIgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQn9C+0LvQvdC+0LUg0LjRgdGC0L7RidC10L3QuNC1LCDQv9C+0YfRgtC4INC90LjRh9C10LPQviDQvdC1INC80L7Qs9GDINC00LXQu9Cw0YLRjCcsIHNjb3JlOiAzIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgaWQ6IDUsCiAgICAgICAgICAgICAgICB0ZXh0OiAn0JrQsNC6INC40LfQvNC10L3QuNC70YHRjyDQstCw0Ygg0LDQv9C/0LXRgtC40YIg0LjQu9C4INCy0LXRgSDQt9CwINC/0L7RgdC70LXQtNC90LjQtSDQtNCy0LUg0L3QtdC00LXQu9C4PycsCiAgICAgICAgICAgICAgICBoaW50OiAn0JHQtdC3IGludGVudGlvbmFsINC00LjQtdGC0YsuJywKICAgICAgICAgICAgICAgIG9wdGlvbnM6IFsKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQkdC10Lcg0YHRg9GJ0LXRgdGC0LLQtdC90L3Ri9GFINC40LfQvNC10L3QtdC90LjQuScsIHNjb3JlOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0J3QtdCx0L7Qu9GM0YjQuNC1INC60L7Qu9C10LHQsNC90LjRjyDQsNC/0L/QtdGC0LjRgtCwJywgc2NvcmU6IDEgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQl9Cw0LzQtdGC0L3QvtC1INGB0L3QuNC20LXQvdC40LUg0LjQu9C4INC/0L7QstGL0YjQtdC90LjQtSDQsNC/0L/QtdGC0LjRgtCwJywgc2NvcmU6IDIgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQoNC10LfQutC+0LUg0LjQt9C80LXQvdC10L3QuNC1OiDQv9C+0YfRgtC4INC90LUg0LXQvCDQuNC70Lgg0L/QtdGA0LXQtdC00LDRjicsIHNjb3JlOiAzIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgaWQ6IDYsCiAgICAgICAgICAgICAgICB0ZXh0OiAn0JjRgdC/0YvRgtGL0LLQsNC70Lgg0LvQuCDQstGLINGH0YPQstGB0YLQstC+INCy0LjQvdGLLCDQvdC40LrRh9GR0LzQvdC+0YHRgtC4INC40LvQuCDRh9GA0LXQt9C80LXRgNC90L7QuSDRgdCw0LzQvtC60YDQuNGC0LjQutC4PycsCiAgICAgICAgICAgICAgICBoaW50OiAn0JzRi9GB0LvQuCDQviDRgdC+0LHRgdGC0LLQtdC90L3QvtC5INC90LXRgdC+0YHRgtC+0Y/RgtC10LvRjNC90L7RgdGC0LguJywKICAgICAgICAgICAgICAgIG9wdGlvbnM6IFsKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQndC10YIsINC+0YLQvdC+0YjRg9GB0Ywg0Log0YHQtdCx0LUg0L3QvtGA0LzQsNC70YzQvdC+Jywgc2NvcmU6IDAgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQmNC90L7Qs9C00LAg0LHRi9Cy0LDRjiDRgdGC0YDQvtCzKNCwKSDQuiDRgdC10LHQtScsIHNjb3JlOiAxIH0sCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0KfQsNGB0YLQviDRh9GD0LLRgdGC0LLRg9GOINCy0LjQvdGDINC40LvQuCDRgNCw0LfQvtGH0LDRgNC+0LLQsNC90LjQtSDQsiDRgdC10LHQtScsIHNjb3JlOiAyIH0sCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0J/QvtGB0YLQvtGP0L3QvdC+INC+0YnRg9GJ0LDRjiDRgdC10LHRjyDQvdC40LrRh9GR0LzQvdGL0Lwo0L7QuSknLCBzY29yZTogMyB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgIGlkOiA3LAogICAgICAgICAgICAgICAgdGV4dDogJ9Ci0YDRg9C00L3QviDQu9C4INCy0LDQvCDQutC+0L3RhtC10L3RgtGA0LjRgNC+0LLQsNGC0YzRgdGPLCDQv9GA0LjQvdC40LzQsNGC0Ywg0YDQtdGI0LXQvdC40Y8g0LjQu9C4INGH0LjRgtCw0YLRjD8nLAogICAgICAgICAgICAgICAgaGludDogJ9Cg0LDQsdC+0YLQsCwg0YPRh9GR0LHQsCwg0LHRi9GC0L7QstGL0LUg0LfQsNC00LDRh9C4LicsCiAgICAgICAgICAgICAgICBvcHRpb25zOiBbCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0JrQvtC90YbQtdC90YLRgNCw0YbQuNGPINC60LDQuiDQvtCx0YvRh9C90L4nLCBzY29yZTogMCB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9CY0L3QvtCz0LTQsCDQvtGC0LLQu9C10LrQsNGO0YHRjCDRh9GD0YLRjCDQsdC+0LvRjNGI0LUnLCBzY29yZTogMSB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9CX0LDQvNC10YLQvdC+INGC0YDRg9C00L3QtdC1INGB0L7RgdGA0LXQtNC+0YLQvtGH0LjRgtGM0YHRjycsIHNjb3JlOiAyIH0sCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0J/QvtGH0YLQuCDQvdC1INC80L7Qs9GDINGB0LrQvtC90YbQtdC90YLRgNC40YDQvtCy0LDRgtGM0YHRjyDQvdC4INC90LAg0YfRkdC8Jywgc2NvcmU6IDMgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICBpZDogOCwKICAgICAgICAgICAgICAgIHRleHQ6ICfQkdGL0LvQuCDQu9C4INGDINCy0LDRgSDQvNGL0YHQu9C4INC+INGC0L7QvCwg0YfRgtC+INC20LjQt9C90Ywg0L3QtSDQuNC80LXQtdGCINGB0LzRi9GB0LvQsCwg0LjQu9C4INGH0YLQviDQvtC60YDRg9C20LDRjtGJ0LjQvCDQsdGL0LvQviDQsdGLINC70LXQs9GH0LUg0LHQtdC3INCy0LDRgT8nLAogICAgICAgICAgICAgICAgaGludDogJ9Ct0YLQviDRh9GD0LLRgdGC0LLQuNGC0LXQu9GM0L3Ri9C5LCDQvdC+INCy0LDQttC90YvQuSDQstC+0L/RgNC+0YEuJywKICAgICAgICAgICAgICAgIG9wdGlvbnM6IFsKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQotCw0LrQuNGFINC80YvRgdC70LXQuSDQvdC1INCy0L7Qt9C90LjQutCw0LvQvicsIHNjb3JlOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0KDQtdC00LrQuNC1INC80LjQvNC+0LvRkdGC0L3Ri9C1INC80YvRgdC70LgnLCBzY29yZTogMSB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Cf0LXRgNC40L7QtNC40YfQtdGB0LrQuCDQstC+0LfQstGA0LDRidCw0Y7RgtGB0Y8g0YLQsNC60LjQtSDRgNCw0LfQvNGL0YjQu9C10L3QuNGPJywgc2NvcmU6IDIgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQp9Cw0YHRgtC+INC00YPQvNCw0Y4g0L7QsSDRjdGC0L7QvCcsIHNjb3JlOiAzIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgaWQ6IDksCiAgICAgICAgICAgICAgICB0ZXh0OiAn0JrQsNC6INGH0LDRgdGC0L4g0LLRiyDQvtGJ0YPRidCw0LvQuCDRgtGA0LXQstC+0LPRgywg0LLQvdGD0YLRgNC10L3QvdC10LUg0L3QsNC/0YDRj9C20LXQvdC40LUg0LjQu9C4INCx0LXRgdC/0L7QutC+0LnRgdGC0LLQvj8nLAogICAgICAgICAgICAgICAgaGludDogJ9CU0LDQttC1INCx0LXQtyDRj9Cy0L3QvtC5INC/0YDQuNGH0LjQvdGLLicsCiAgICAgICAgICAgICAgICBvcHRpb25zOiBbCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0J/QvtGH0YLQuCDQvdC1INC+0YnRg9GJ0LDQuyjQsCknLCBzY29yZTogMCB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9CY0L3QvtCz0LTQsCwg0LIg0YHRgtGA0LXRgdGB0L7QstGL0YUg0YHQuNGC0YPQsNGG0LjRj9GFJywgc2NvcmU6IDEgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQp9Cw0YHRgtC+LCDRgtGA0LXQstC+0LPQsCDQvNC10YjQsNC10YIg0L/QvtCy0YHQtdC00L3QtdCy0L3QvtC5INC20LjQt9C90LgnLCBzY29yZTogMiB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Cf0L7Rh9GC0Lgg0L/QvtGB0YLQvtGP0L3QvdC+LCDRgdC40LvRjNC90L7QtSDQvdCw0L/RgNGP0LbQtdC90LjQtScsIHNjb3JlOiAzIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgaWQ6IDEwLAogICAgICAgICAgICAgICAgdGV4dDogJ9CY0LfQvNC10L3QuNC70LDRgdGMINC70Lgg0LLQsNGI0LAg0LTQstC40LPQsNGC0LXQu9GM0L3QsNGPINCw0LrRgtC40LLQvdC+0YHRgtGMPyAo0LfQsNC80LXQtNC70LXQvdC90L7RgdGC0Ywg0LjQu9C4LCDQvdCw0L7QsdC+0YDQvtGCLCDQvdC10YPRgdC40LTRh9C40LLQvtGB0YLRjCknLAogICAgICAgICAgICAgICAgaGludDogJ9CX0LDQvNC10YLQuNC70Lgg0LvQuCDQstGLINC40LvQuCDQvtC60YDRg9C20LDRjtGJ0LjQtT8nLAogICAgICAgICAgICAgICAgb3B0aW9uczogWwogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9CR0LXQtyDQuNC30LzQtdC90LXQvdC40LknLCBzY29yZTogMCB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Cd0LXQsdC+0LvRjNGI0LDRjyDQt9Cw0LzQtdC00LvQtdC90L3QvtGB0YLRjCDQuNC70Lgg0YHRg9C10YLQu9C40LLQvtGB0YLRjCcsIHNjb3JlOiAxIH0sCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0JfQsNC80LXRgtC90LDRjyDQt9Cw0YLQvtGA0LzQvtC20LXQvdC90L7RgdGC0Ywg0LjQu9C4INCy0L7Qt9Cx0YPQttC00LXQvdC40LUnLCBzY29yZTogMiB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9CS0YvRgNCw0LbQtdC90L3Ri9C1INC40LfQvNC10L3QtdC90LjRjywg0LzQtdGI0LDRjtGJ0LjQtSDQtNC10LvQsNC8Jywgc2NvcmU6IDMgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICBpZDogMTEsCiAgICAgICAgICAgICAgICB0ZXh0OiAn0KfRg9Cy0YHRgtCy0L7QstCw0LvQuCDQu9C4INCy0Ysg0YHQtdCx0Y8g0L7QtNC40L3QvtC60LjQvCjQvtC5KSwg0LTQsNC20LUg0L3QsNGF0L7QtNGP0YHRjCDRgdGA0LXQtNC4INC70Y7QtNC10Lk/JywKICAgICAgICAgICAgICAgIGhpbnQ6ICfQntGJ0YPRidC10L3QuNC1INC40LfQvtC70Y/RhtC40Lgg0Lgg0L3QtdC/0L7QvdC40LzQsNC90LjRjy4nLAogICAgICAgICAgICAgICAgb3B0aW9uczogWwogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Cd0LXRgiwg0YfRg9Cy0YHRgtCy0YPRjiDRgdCy0Y/Qt9GMINGBINCx0LvQuNC30LrQuNC80LgnLCBzY29yZTogMCB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9CY0L3QvtCz0LTQsCDQstC+0LfQvdC40LrQsNC10YIg0LvRkdCz0LrQvtC1INGH0YPQstGB0YLQstC+INC+0LTQuNC90L7Rh9C10YHRgtCy0LAnLCBzY29yZTogMSB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Cn0LDRgdGC0L4g0YfRg9Cy0YHRgtCy0YPRjiDRgdC10LHRjyDQvtC00LjQvdC+0LrQuNC8KNC+0LkpJywgc2NvcmU6IDIgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQk9C70YPQsdC+0LrQvtC1INGH0YPQstGB0YLQstC+INC40LfQvtC70Y/RhtC40Lgg0L/QvtGH0YLQuCDQv9C+0YHRgtC+0Y/QvdC90L4nLCBzY29yZTogMyB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgIGlkOiAxMiwKICAgICAgICAgICAgICAgIHRleHQ6ICfQndCw0YHQutC+0LvRjNC60L4g0LLQsNC8INCx0YvQu9C+INGC0YDRg9C00L3QviDQvdCw0YfQuNC90LDRgtGMINC90L7QstGL0LUg0LTQtdC70LAg0LjQu9C4INC30LDQstC10YDRiNCw0YLRjCDQvdCw0YfQsNGC0L7QtT8nLAogICAgICAgICAgICAgICAgaGludDogJ9Cf0YDQvtC60YDQsNGB0YLQuNC90LDRhtC40Y8sINCw0L/QsNGC0LjRjy4nLAogICAgICAgICAgICAgICAgb3B0aW9uczogWwogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Cd0LDRh9C40L3QsNGOINC4INC30LDQstC10YDRiNCw0Y4g0LTQtdC70LAg0LrQsNC6INC+0LHRi9GH0L3QvicsIHNjb3JlOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0JjQvdC+0LPQtNCwINGC0YDQtdCx0YPQtdGC0YHRjyDQsdC+0LvRjNGI0LUg0YPRgdC40LvQuNC5Jywgc2NvcmU6IDEgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQnNC90L7Qs9C40LUg0LTQtdC70LAg0L7RgtC60LvQsNC00YvQstCw0Y4sINCx0YDQvtGB0LDRjiDQvdCwINGB0LXRgNC10LTQuNC90LUnLCBzY29yZTogMiB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Cf0YDQsNC60YLQuNGH0LXRgdC60Lgg0L3QuNGH0LXQs9C+INC90LUg0LzQvtCz0YMg0LfQsNGB0YLQsNCy0LjRgtGMINGB0LXQsdGPINGB0LTQtdC70LDRgtGMJywgc2NvcmU6IDMgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICBpZDogMTMsCiAgICAgICAgICAgICAgICB0ZXh0OiAn0J7RhtC10L3QuNGC0LUg0L7QsdGJ0LjQuSDRg9GA0L7QstC10L3RjCDQuNC90YLQtdGA0LXRgdCwINC6INC20LjQt9C90Lgg0Lgg0L/Qu9Cw0L3QsNC8INC90LAg0LHRg9C00YPRidC10LUuJywKICAgICAgICAgICAgICAgIGhpbnQ6ICfQnNC10YfRgtGLLCDRhtC10LvQuCwg0L7QttC40LTQsNC90LjRjy4nLAogICAgICAgICAgICAgICAgb3B0aW9uczogWwogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Ch0LzQvtGC0YDRjiDQsiDQsdGD0LTRg9GJ0LXQtSDRgSDQuNC90YLQtdGA0LXRgdC+0LwnLCBzY29yZTogMCB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Cd0LXQvNC90L7Qs9C+INC80LXQvdGM0YjQtSDRjdC90YLRg9C30LjQsNC30LzQsCwg0YfQtdC8INGA0LDQvdGM0YjQtScsIHNjb3JlOiAxIH0sCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0JHRg9C00YPRidC10LUg0LrQsNC20LXRgtGB0Y8g0YLRg9GB0LrQu9GL0Lwg0Lgg0LzQsNC70L7Qv9C10YDRgdC/0LXQutGC0LjQstC90YvQvCcsIHNjb3JlOiAyIH0sCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0J/QvtC70L3QvtC1INCx0LXQt9GA0LDQt9C70LjRh9C40LUg0Log0LHRg9C00YPRidC10LzRgycsIHNjb3JlOiAzIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgaWQ6IDE0LAogICAgICAgICAgICAgICAgdGV4dDogJ9CR0YvQu9C4INC70Lgg0YMg0LLQsNGBINGE0LjQt9C40YfQtdGB0LrQuNC1INGB0LjQvNC/0YLQvtC80Ys6INCz0L7Qu9C+0LLQvdCw0Y8g0LHQvtC70YwsINCx0L7Qu9C4INCyINGB0L/QuNC90LUsINGA0LDRgdGB0YLRgNC+0LnRgdGC0LLQviDQttC10LvRg9C00LrQsCDQsdC10Lcg0Y/QstC90L7QuSDQv9GA0LjRh9C40L3Riz8nLAogICAgICAgICAgICAgICAgaGludDogJ9Cf0YHQuNGF0L7RgdC+0LzQsNGC0LjRh9C10YHQutC40LUg0L/RgNC+0Y/QstC70LXQvdC40Y8uJywKICAgICAgICAgICAgICAgIG9wdGlvbnM6IFsKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQndC10YIsINGE0LjQt9C40YfQtdGB0LrQuCDRh9GD0LLRgdGC0LLRg9GOINGB0LXQsdGPINC90L7RgNC80LDQu9GM0L3QvicsIHNjb3JlOiAwIH0sCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0KDQtdC00LrQuNC1INC4INC70ZHQs9C60LjQtSDQvdC10LTQvtC80L7Qs9Cw0L3QuNGPJywgc2NvcmU6IDEgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQp9Cw0YHRgtGL0LUg0LHQvtC70Lgg0LjQu9C4INC00LjRgdC60L7QvNGE0L7RgNGCJywgc2NvcmU6IDIgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQn9C+0YHRgtC+0Y/QvdC90YvQtSDRhNC40LfQuNGH0LXRgdC60LjQtSDRgdGC0YDQsNC00LDQvdC40Y8nLCBzY29yZTogMyB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgIGlkOiAxNSwKICAgICAgICAgICAgICAgIHRleHQ6ICfQmtCw0Log0YfQsNGB0YLQviDQstGLINC40YHQv9GL0YLRi9Cy0LDQu9C4INGA0LDQt9C00YDQsNC20LjRgtC10LvRjNC90L7RgdGC0Ywg0LjQu9C4INCy0YHQv9GL0YjQutC4INCz0L3QtdCy0LA/JywKICAgICAgICAgICAgICAgIGhpbnQ6ICfQlNCw0LbQtSDQv9C+INC80LXQu9C+0YfQsNC8LicsCiAgICAgICAgICAgICAgICBvcHRpb25zOiBbCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0J3QtSDRh9Cw0YnQtSDQvtCx0YvRh9C90L7Qs9C+Jywgc2NvcmU6IDAgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQndC10LzQvdC+0LPQviDQsdC+0LvQtdC1INGA0LDQt9C00YDQsNC20LjRgtC10LvQtdC9KNC90LApLCDRh9C10Lwg0L7QsdGL0YfQvdC+Jywgc2NvcmU6IDEgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQp9Cw0YHRgtC+INGB0YDRi9Cy0LDRjtGB0Ywg0L3QsCDQsdC70LjQt9C60LjRhScsIHNjb3JlOiAyIH0sCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0J/QvtGH0YLQuCDQv9C+0YHRgtC+0Y/QvdC90L4g0L3QsCDQstC30LLQvtC00LUnLCBzY29yZTogMyB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgIGlkOiAxNiwKICAgICAgICAgICAgICAgIHRleHQ6ICfQp9GD0LLRgdGC0LLQvtCy0LDQu9C4INC70Lgg0LLRiywg0YfRgtC+INC/0L7QtNCy0L7QtNC40YLQtSDQtNGA0YPQs9C40YUg0LjQu9C4INC90LUg0L7Qv9GA0LDQstC00YvQstCw0LXRgtC1INC+0LbQuNC00LDQvdC40Lk/JywKICAgICAgICAgICAgICAgIGhpbnQ6ICfQndCwINGA0LDQsdC+0YLQtSwg0LIg0YHQtdC80YzQtSwg0LIg0L7RgtC90L7RiNC10L3QuNGP0YUuJywKICAgICAgICAgICAgICAgIG9wdGlvbnM6IFsKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQndC10YIsINGB0L/RgNCw0LLQu9GP0Y7RgdGMINC60LDQuiDQvtCx0YvRh9C90L4nLCBzY29yZTogMCB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9CY0L3QvtCz0LTQsCDRgdC+0LzQvdC10LLQsNGO0YHRjCDQsiDRgdCy0L7QuNGFINGB0LjQu9Cw0YUnLCBzY29yZTogMSB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Cn0LDRgdGC0L4g0YfRg9Cy0YHRgtCy0YPRjiDRgdC10LHRjyDQvdC10YHQvtGB0YLQvtGP0YLQtdC70YzQvdGL0Lwo0L7QuSknLCBzY29yZTogMiB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Cj0LHQtdC20LTRkdC9KNCwKSwg0YfRgtC+INGPIOKAlCDQvtCx0YPQt9CwINC00LvRjyDQstGB0LXRhScsIHNjb3JlOiAzIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgaWQ6IDE3LAogICAgICAgICAgICAgICAgdGV4dDogJ9Cf0LvQsNC60LDQu9C4INC70Lgg0LLRiyDRh9Cw0YnQtSDQvtCx0YvRh9C90L7Qs9C+INC40LvQuCwg0L3QsNC+0LHQvtGA0L7Rgiwg0YXQvtGC0LXQu9C4INC30LDQv9C70LDQutCw0YLRjCwg0L3QviDQvdC1INC80L7Qs9C70Lg/JywKICAgICAgICAgICAgICAgIGhpbnQ6ICfQrdC80L7RhtC40L7QvdCw0LvRjNC90LDRjyDQu9Cw0LHQuNC70YzQvdC+0YHRgtGMLicsCiAgICAgICAgICAgICAgICBvcHRpb25zOiBbCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0J/Qu9Cw0YfRgyDQvdC1INGH0LDRidC1INC+0LHRi9GH0L3QvtCz0L4nLCBzY29yZTogMCB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9CY0L3QvtCz0LTQsCDQvdCw0LLQvtGA0LDRh9C40LLQsNGO0YLRgdGPINGB0LvRkdC30YsnLCBzY29yZTogMSB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Cf0LvQsNGH0YMg0LfQvdCw0YfQuNGC0LXQu9GM0L3QviDRh9Cw0YnQtScsIHNjb3JlOiAyIH0sCiAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAn0J/QvtGB0YLQvtGP0L3QvdC+INGF0L7Rh9C10YLRgdGPINC/0LvQsNC60LDRgtGMINC40LvQuCDQv9C+0LvQvdC+0LUg0Y3QvNC+0YbQuNC+0L3QsNC70YzQvdC+0LUg0L7QvdC10LzQtdC90LjQtScsIHNjb3JlOiAzIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgaWQ6IDE4LAogICAgICAgICAgICAgICAgdGV4dDogJ9CY0YHQv9GL0YLRi9Cy0LDQu9C4INC70Lgg0LLRiyDQv9C+0YLQtdGA0Y4g0LjQvdGC0LXRgNC10YHQsCDQuiDRgdC10LrRgdGD0LDQu9GM0L3QvtC5INC20LjQt9C90Lg/JywKICAgICAgICAgICAgICAgIGhpbnQ6ICfQodC90LjQttC10L3QuNC1INC70LjQsdC40LTQvi4nLAogICAgICAgICAgICAgICAgb3B0aW9uczogWwogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9CR0LXQtyDQuNC30LzQtdC90LXQvdC40LknLCBzY29yZTogMCB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Cd0LXQsdC+0LvRjNGI0L7QtSDRgdC90LjQttC10L3QuNC1INC40L3RgtC10YDQtdGB0LAnLCBzY29yZTogMSB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9CX0L3QsNGH0LjRgtC10LvRjNC90L7QtSDRgdC90LjQttC10L3QuNC1Jywgc2NvcmU6IDIgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQn9C+0LvQvdC+0LUg0L7RgtGB0YPRgtGB0YLQstC40LUg0LbQtdC70LDQvdC40Y8nLCBzY29yZTogMyB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgIGlkOiAxOSwKICAgICAgICAgICAgICAgIHRleHQ6ICfQndCw0YHQutC+0LvRjNC60L4g0LLRiyDRg9C00L7QstC70LXRgtCy0L7RgNC10L3RiyDRgdCy0L7QtdC5INC20LjQt9C90YzRjiDQsiDRhtC10LvQvtC8INCyINC/0L7RgdC70LXQtNC90LjQtSDQtNCy0LUg0L3QtdC00LXQu9C4PycsCiAgICAgICAgICAgICAgICBoaW50OiAn0KHRg9Cx0YrQtdC60YLQuNCy0L3QsNGPINC+0YbQtdC90LrQsC4nLAogICAgICAgICAgICAgICAgb3B0aW9uczogWwogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9CS0L/QvtC70L3QtSDRg9C00L7QstC70LXRgtCy0L7RgNGR0L0o0LApJywgc2NvcmU6IDAgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQo9C00L7QstC70LXRgtCy0L7RgNGR0L0o0LApINGH0LDRgdGC0LjRh9C90L4nLCBzY29yZTogMSB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Ch0LrQvtGA0LXQtSDQvdC1INGD0LTQvtCy0LvQtdGC0LLQvtGA0ZHQvSjQsCknLCBzY29yZTogMiB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Ch0L7QstC10YDRiNC10L3QvdC+INC90LUg0YPQtNC+0LLQu9C10YLQstC+0YDRkdC9KNCwKScsIHNjb3JlOiAzIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgaWQ6IDIwLAogICAgICAgICAgICAgICAgdGV4dDogJ9CX0LDQvNC10YfQsNC70Lgg0LvQuCDQstGLLCDRh9GC0L4g0YHRgtCw0LvQuCDQsdC+0LvQtdC1INC/0LXRgdGB0LjQvNC40YHRgtC40YfQvdC+INGB0LzQvtGC0YDQtdGC0Ywg0L3QsCDQv9GA0L7QuNGB0YXQvtC00Y/RidC10LUg0LLQvtC60YDRg9CzPycsCiAgICAgICAgICAgICAgICBoaW50OiAn0J7QttC40LTQsNC90LjQtSDRhdGD0LTRiNC10LPQvi4nLAogICAgICAgICAgICAgICAgb3B0aW9uczogWwogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Ch0L7RhdGA0LDQvdGP0Y4g0YDQtdCw0LvQuNGB0YLQuNGH0L3Ri9C5INC40LvQuCDQvtC/0YLQuNC80LjRgdGC0LjRh9C90YvQuSDQstC30LPQu9GP0LQnLCBzY29yZTogMCB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9CY0L3QvtCz0LTQsCDQu9C+0LLQu9GOINGB0LXQsdGPINC90LAg0L3QtdCz0LDRgtC40LLQvdGL0YUg0LzRi9GB0LvRj9GFJywgc2NvcmU6IDEgfSwKICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICfQp9Cw0YHRgtC+INC+0LbQuNC00LDRjiDQv9C70L7RhdC+0LPQviDQuNGB0YXQvtC00LAnLCBzY29yZTogMiB9LAogICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ9Cj0LLQtdGA0LXQvSjQsCksINGH0YLQviDQstGB0ZEg0LHRg9C00LXRgiDRgtC+0LvRjNC60L4g0YXRg9C20LUnLCBzY29yZTogMyB9CiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH1dOwoKICAgICAgICAgICAgY29uc3QgdG90YWxRdWVzdGlvbnMgPSBxdWVzdGlvbnMubGVuZ3RoOwogICAgICAgICAgICBsZXQgY3VycmVudEluZGV4ID0gMDsKICAgICAgICAgICAgY29uc3QgYW5zd2VycyA9IG5ldyBBcnJheSh0b3RhbFF1ZXN0aW9ucykuZmlsbCgtMSk7CiAgICAgICAgICAgIGxldCBxdWl6Q29tcGxldGVkID0gZmFsc2U7CgogICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm5HZW5RdWl6Q29udGFpbmVyJyk7CiAgICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uQXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubkdlblF1aXpRdWVzdGlvbkFyZWEnKTsKICAgICAgICAgICAgY29uc3QgcmVzdWx0QXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubkdlblF1aXpSZXN1bHRBcmVhJyk7CiAgICAgICAgICAgIGNvbnN0IGFydGljbGVBcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uR2VuUXVpekFydGljbGVBcmVhJyk7CiAgICAgICAgICAgIGNvbnN0IHByb2dyZXNzRmlsbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubkdlblF1aXpQcm9ncmVzc0ZpbGwnKTsKICAgICAgICAgICAgY29uc3QgcHJvZ3Jlc3NUZXh0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uR2VuUXVpelByb2dyZXNzVGV4dCcpOwogICAgICAgICAgICBjb25zdCBwcm9ncmVzc0FyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm5HZW5RdWl6UHJvZ3Jlc3NBcmVhJyk7CgogICAgICAgICAgICBmdW5jdGlvbiB1cGRhdGVQcm9ncmVzcygpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGFuc3dlcmVkID0gYW5zd2Vycy5maWx0ZXIoYSA9PiBhICE9PSAtMSkubGVuZ3RoOwogICAgICAgICAgICAgICAgY29uc3QgcGVyY2VudCA9IE1hdGgucm91bmQoKGFuc3dlcmVkIC8gdG90YWxRdWVzdGlvbnMpICogMTAwKTsKICAgICAgICAgICAgICAgIHByb2dyZXNzRmlsbC5zdHlsZS53aWR0aCA9IHBlcmNlbnQgKyAnJSc7CiAgICAgICAgICAgICAgICBwcm9ncmVzc1RleHQudGV4dENvbnRlbnQgPSBg0JLQvtC/0YDQvtGBICR7Y3VycmVudEluZGV4ICsgMX0g0LjQtyAke3RvdGFsUXVlc3Rpb25zfSDigKIg0L7RgtCy0LXRh9C10L3QviAke2Fuc3dlcmVkfWA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZ1bmN0aW9uIHJlbmRlclF1ZXN0aW9uKGluZGV4KSB7CiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IHRvdGFsUXVlc3Rpb25zKSByZXR1cm47CiAgICAgICAgICAgICAgICBjb25zdCBxID0gcXVlc3Rpb25zW2luZGV4XTsKICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkVmFsID0gYW5zd2Vyc1tpbmRleF07CiAgICAgICAgICAgICAgICBsZXQgaHRtbCA9IGA8cCBjbGFzcz0ibm4tZ2VuLXF1aXotcXVlc3Rpb24tdGV4dCI+JHtxLnRleHR9PC9wPmA7CiAgICAgICAgICAgICAgICBodG1sICs9CiAgICAgICAgICAgICAgICAgICAgYDxwIGNsYXNzPSJubi1nZW4tcXVpei1xdWVzdGlvbi1oaW50Ij4ke3EuaGludCB8fCAn0JLRi9Cx0LXRgNC40YLQtSDQvtC00LjQvSDQstCw0YDQuNCw0L3Rgiwg0LrQvtGC0L7RgNGL0Lkg0LvRg9GH0YjQtSDQstGB0LXQs9C+INC+0L/QuNGB0YvQstCw0LXRgiDQstCw0YjQtSDRgdC+0YHRgtC+0Y/QvdC40LUg0LfQsCDQv9C+0YHQu9C10LTQvdC40LUg0LTQstC1INC90LXQtNC10LvQuC4nfTwvcD5gOwogICAgICAgICAgICAgICAgaHRtbCArPSBgPGRpdiBjbGFzcz0ibm4tZ2VuLXF1aXotb3B0aW9uLWdyaWQiPmA7CiAgICAgICAgICAgICAgICBxLm9wdGlvbnMuZm9yRWFjaCgob3B0LCBvcHRJZHgpID0+IHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxDbGFzcyA9IChzZWxlY3RlZFZhbCA9PT0gb3B0LnNjb3JlKSA/ICcgbm4tZ2VuLXF1aXotc2VsZWN0ZWQnIDogJyc7CiAgICAgICAgICAgICAgICAgICAgaHRtbCArPQogICAgICAgICAgICAgICAgICAgICAgICBgPGJ1dHRvbiBjbGFzcz0ibm4tZ2VuLXF1aXotb3B0aW9uLWJ0biR7c2VsQ2xhc3N9IiBkYXRhLXNjb3JlPSIke29wdC5zY29yZX0iIGRhdGEtcWluZGV4PSIke2luZGV4fSI+JHtvcHQudGV4dH08L2J1dHRvbj5gOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBodG1sICs9IGA8L2Rpdj5gOwogICAgICAgICAgICAgICAgaHRtbCArPSBgPGRpdiBjbGFzcz0ibm4tZ2VuLXF1aXotbmF2Ij5gOwogICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gMCkgewogICAgICAgICAgICAgICAgICAgIGh0bWwgKz0KICAgICAgICAgICAgICAgICAgICAgICAgYDxidXR0b24gY2xhc3M9Im5uLWdlbi1xdWl6LWJhY2stYnRuIiBpZD0ibm5HZW5RdWl6UHJldkJ0biI+4oaQINCd0LDQt9Cw0LQ8L2J1dHRvbj5gOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBodG1sICs9IGA8c3Bhbj48L3NwYW4+YDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gdG90YWxRdWVzdGlvbnMgLSAxKSB7CiAgICAgICAgICAgICAgICAgICAgaHRtbCArPQogICAgICAgICAgICAgICAgICAgICAgICBgPGJ1dHRvbiBjbGFzcz0ibm4tZ2VuLXF1aXotYnRuIiBpZD0ibm5HZW5RdWl6RmluaXNoQnRuIiAke3NlbGVjdGVkVmFsID09PSAtMSA/ICdkaXNhYmxlZCcgOiAnJ30+0JfQsNCy0LXRgNGI0LjRgtGMINGC0LXRgdGCPC9idXR0b24+YDsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgaHRtbCArPQogICAgICAgICAgICAgICAgICAgICAgICBgPGJ1dHRvbiBjbGFzcz0ibm4tZ2VuLXF1aXotYnRuIiBpZD0ibm5HZW5RdWl6TmV4dEJ0biIgJHtzZWxlY3RlZFZhbCA9PT0gLTEgPyAnZGlzYWJsZWQnIDogJyd9PtCU0LDQu9C10LUg4oaSPC9idXR0b24+YDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGh0bWwgKz0gYDwvZGl2PmA7CiAgICAgICAgICAgICAgICBxdWVzdGlvbkFyZWEuaW5uZXJIVE1MID0gaHRtbDsKICAgICAgICAgICAgICAgIGJpbmRRdWVzdGlvbkV2ZW50cygpOwogICAgICAgICAgICAgICAgdXBkYXRlUHJvZ3Jlc3MoKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gYmluZFF1ZXN0aW9uRXZlbnRzKCkgewogICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uQnRucyA9IHF1ZXN0aW9uQXJlYS5xdWVyeVNlbGVjdG9yQWxsKCcubm4tZ2VuLXF1aXotb3B0aW9uLWJ0bicpOwogICAgICAgICAgICAgICAgb3B0aW9uQnRucy5mb3JFYWNoKGJ0biA9PiB7CiAgICAgICAgICAgICAgICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHFJbmRleCA9IHBhcnNlSW50KHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXFpbmRleCcpKTsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2NvcmUgPSBwYXJzZUludCh0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1zY29yZScpKTsKICAgICAgICAgICAgICAgICAgICAgICAgYW5zd2Vyc1txSW5kZXhdID0gc2NvcmU7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlclF1ZXN0aW9uKGN1cnJlbnRJbmRleCk7CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGNvbnN0IG5leHRCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm5HZW5RdWl6TmV4dEJ0bicpOwogICAgICAgICAgICAgICAgaWYgKG5leHRCdG4pIHsKICAgICAgICAgICAgICAgICAgICBuZXh0QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbnN3ZXJzW2N1cnJlbnRJbmRleF0gIT09IC0xICYmIGN1cnJlbnRJbmRleCA8IHRvdGFsUXVlc3Rpb25zIC0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleCsrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyUXVlc3Rpb24oY3VycmVudEluZGV4KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uQXJlYS5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9jazogJ3N0YXJ0JyB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29uc3QgZmluaXNoQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uR2VuUXVpekZpbmlzaEJ0bicpOwogICAgICAgICAgICAgICAgaWYgKGZpbmlzaEJ0bikgewogICAgICAgICAgICAgICAgICAgIGZpbmlzaEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoYW5zd2Vyc1tjdXJyZW50SW5kZXhdICE9PSAtMSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGVRdWl6KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNvbnN0IHByZXZCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm5HZW5RdWl6UHJldkJ0bicpOwogICAgICAgICAgICAgICAgaWYgKHByZXZCdG4pIHsKICAgICAgICAgICAgICAgICAgICBwcmV2QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SW5kZXggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50SW5kZXgtLTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlclF1ZXN0aW9uKGN1cnJlbnRJbmRleCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbkFyZWEuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2s6ICdzdGFydCcgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gY2FsY3VsYXRlVG90YWwoKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYW5zd2Vycy5yZWR1Y2UoKHN1bSwgdmFsKSA9PiBzdW0gKyAodmFsID09PSAtMSA/IDAgOiB2YWwpLCAwKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gZ2V0UmVzdWx0TGV2ZWwodG90YWwpIHsKICAgICAgICAgICAgICAgIGlmICh0b3RhbCA8PSAxMykgcmV0dXJuIHsgbGV2ZWw6ICfQnNC40L3QuNC80LDQu9GM0L3Ri9C5INGD0YDQvtCy0LXQvdGMINGB0LjQvNC/0YLQvtC80L7QsicsIGNvbG9yOiAnIzIyYzU1ZScsIHJhbmdlOiAnMOKAkzEzJyB9OwogICAgICAgICAgICAgICAgaWYgKHRvdGFsIDw9IDE5KSByZXR1cm4geyBsZXZlbDogJ9Cb0ZHQs9C60LjQuSDRg9GA0L7QstC10L3RjCDRgdC40LzQv9GC0L7QvNC+0LInLCBjb2xvcjogJyNlYWIzMDgnLCByYW5nZTogJzE04oCTMTknIH07CiAgICAgICAgICAgICAgICBpZiAodG90YWwgPD0gMjgpIHJldHVybiB7IGxldmVsOiAn0KPQvNC10YDQtdC90L3Ri9C5INGD0YDQvtCy0LXQvdGMINGB0LjQvNC/0YLQvtC80L7QsicsIGNvbG9yOiAnI2Y5NzMxNicsIHJhbmdlOiAnMjDigJMyOCcgfTsKICAgICAgICAgICAgICAgIGlmICh0b3RhbCA8PSAzOSkgcmV0dXJuIHsgbGV2ZWw6ICfQktGL0YDQsNC20LXQvdC90YvQuSDRg9GA0L7QstC10L3RjCDRgdC40LzQv9GC0L7QvNC+0LInLCBjb2xvcjogJyNlZjQ0NDQnLCByYW5nZTogJzI54oCTMzknIH07CiAgICAgICAgICAgICAgICByZXR1cm4geyBsZXZlbDogJ9Ci0Y/QttGR0LvRi9C5INGD0YDQvtCy0LXQvdGMINGB0LjQvNC/0YLQvtC80L7QsicsIGNvbG9yOiAnI2I5MWMxYycsIHJhbmdlOiAnNDDigJM2MCcgfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gZ2V0RGVzY3JpcHRpb24odG90YWwpIHsKICAgICAgICAgICAgICAgIGlmICh0b3RhbCA8PSAxMykKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ9CS0LDRiNC4INC+0YLQstC10YLRiyDRg9C60LDQt9GL0LLQsNGO0YIg0L3QsCDQvNC40L3QuNC80LDQu9GM0L3Rg9GOINCy0YvRgNCw0LbQtdC90L3QvtGB0YLRjCDQtNC10L/RgNC10YHRgdC40LLQvdGL0YUg0YHQuNC80L/RgtC+0LzQvtCyLiDQrdC80L7RhtC40L7QvdCw0LvRjNC90L7QtSDRgdC+0YHRgtC+0Y/QvdC40LUsINCy0LXRgNC+0Y/RgtC90L4sINGB0YLQsNCx0LjQu9GM0L3Qvi4g0J7QtNC90LDQutC+INC/0L7QvNC90LjRgtC1LCDRh9GC0L4g0LTQsNC20LUg0L/RgNC4INGF0L7RgNC+0YjQtdC8INGB0LDQvNC+0YfRg9Cy0YHRgtCy0LjQuCDQv9C+0LvQtdC30L3QviDRg9C00LXQu9GP0YLRjCDQstC90LjQvNCw0L3QuNC1INC/0YHQuNGF0L7Qs9C40LPQuNC10L3QtSDQuCDQvtGC0LTRi9GF0YMuJzsKICAgICAgICAgICAgICAgIGlmICh0b3RhbCA8PSAxOSkKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ9Cg0LXQt9GD0LvRjNGC0LDRgtGLINCz0L7QstC+0YDRj9GCINC+INC70ZHQs9C60L7QuSDRgdGC0LXQv9C10L3QuCDQstGL0YDQsNC20LXQvdC90L7RgdGC0Lgg0YHQuNC80L/RgtC+0LzQvtCyLiDQktC+0LfQvNC+0LbQvdC+LCDQstGLINC/0LXRgNC10LbQuNCy0LDQtdGC0LUg0L3QtdC/0YDQvtGB0YLQvtC5INC/0LXRgNC40L7QtC4g0KDQtdC60L7QvNC10L3QtNGD0LXRgtGB0Y8g0L7QsdGA0LDRgtC40YLRjCDQstC90LjQvNCw0L3QuNC1INC90LAg0YDQtdC20LjQvCDRgdC90LAsINGE0LjQt9C40YfQtdGB0LrRg9GOINCw0LrRgtC40LLQvdC+0YHRgtGMINC4LCDQtdGB0LvQuCDRgdCw0LzQvtGH0YPQstGB0YLQstC40LUg0L3QtSDRg9C70YPRh9GI0LjRgtGB0Y8g0LIg0YLQtdGH0LXQvdC40LUg0L/QsNGA0Ysg0L3QtdC00LXQu9GMLCDQv9GA0L7QutC+0L3RgdGD0LvRjNGC0LjRgNC+0LLQsNGC0YzRgdGPINGB0L4g0YHQv9C10YbQuNCw0LvQuNGB0YLQvtC8Lic7CiAgICAgICAgICAgICAgICBpZiAodG90YWwgPD0gMjgpCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICfQktGLINC90LDQsdGA0LDQu9C4INCx0LDQu9C70YssINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0LjQtSDRg9C80LXRgNC10L3QvdC+0Lkg0LLRi9GA0LDQttC10L3QvdC+0YHRgtC4INGB0LjQvNC/0YLQvtC80L7Qsi4g0K3RgtC+INC/0L7QstC+0LQg0YHQtdGA0YzRkdC30L3QviDQvtGC0L3QtdGB0YLQuNGB0Ywg0Log0YHQstC+0LXQvNGDINGB0L7RgdGC0L7Rj9C90LjRji4g0KDQtdC60L7QvNC10L3QtNGD0LXRgtGB0Y8g0LIg0LHQu9C40LbQsNC50YjQtdC1INCy0YDQtdC80Y8g0LfQsNC/0LjRgdCw0YLRjNGB0Y8g0L3QsCDQutC+0L3RgdGD0LvRjNGC0LDRhtC40Y4g0Log0L/RgdC40YXQvtC70L7Qs9GDINC40LvQuCDQv9GB0LjRhdC+0YLQtdGA0LDQv9C10LLRgtGDINC00LvRjyDQsdC+0LvQtdC1INC00LXRgtCw0LvRjNC90L7QuSDQvtGG0LXQvdC60LguJzsKICAgICAgICAgICAgICAgIGlmICh0b3RhbCA8PSAzOSkKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ9Cg0LXQt9GD0LvRjNGC0LDRgtGLINGD0LrQsNC30YvQstCw0Y7RgiDQvdCwINCy0YvRgNCw0LbQtdC90L3Ri9C5INGD0YDQvtCy0LXQvdGMINC00LXQv9GA0LXRgdGB0LjQstC90YvRhSDRgdC40LzQv9GC0L7QvNC+0LIuINCh0LrQvtGA0LXQtSDQstGB0LXQs9C+LCDQstCw0Lwg0YLRgNGD0LTQvdC+INGB0L/RgNCw0LLQu9GP0YLRjNGB0Y8g0YEg0L/QvtCy0YHQtdC00L3QtdCy0L3Ri9C80Lgg0LfQsNC00LDRh9Cw0LzQuC4g0J3QsNGB0YLQvtGP0YLQtdC70YzQvdC+INGA0LXQutC+0LzQtdC90LTRg9C10Lwg0L7QsdGA0LDRgtC40YLRjNGB0Y8g0Log0YHQv9C10YbQuNCw0LvQuNGB0YLRgyAo0L/RgdC40YXQvtGC0LXRgNCw0L/QtdCy0YLRgyDQuNC70Lgg0L/RgdC40YXQuNCw0YLRgNGDKSDQtNC70Y8g0L/QvtC70YPRh9C10L3QuNGPINC/0YDQvtGE0LXRgdGB0LjQvtC90LDQu9GM0L3QvtC5INC/0L7QvNC+0YnQuC4nOwogICAgICAgICAgICAgICAgcmV0dXJuICfQktCw0YjQuCDQsdCw0LvQu9GLINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGCINGC0Y/QttGR0LvQvtC80YMg0YPRgNC+0LLQvdGOINGB0LjQvNC/0YLQvtC80L7Qsi4g0K3RgtC+INGB0L7RgdGC0L7Rj9C90LjQtSDRgtGA0LXQsdGD0LXRgiDQvdC10LfQsNC80LXQtNC70LjRgtC10LvRjNC90L7Qs9C+INCy0L3QuNC80LDQvdC40Y8uINCf0L7QttCw0LvRg9C50YHRgtCwLCDQvtCx0YDQsNGC0LjRgtC10YHRjCDQuiDQstGA0LDRh9GDLdC/0YHQuNGF0LjQsNGC0YDRgyDQuNC70Lgg0L/RgdC40YXQvtGC0LXRgNCw0L/QtdCy0YLRgyDQutCw0Log0LzQvtC20L3QviDRgdC60L7RgNC10LUuINCV0YHQu9C4INCy0Ysg0LjRgdC/0YvRgtGL0LLQsNC10YLQtSDQvNGL0YHQu9C4INC+INC/0YDQuNGH0LjQvdC10L3QuNC4INGB0LXQsdC1INCy0YDQtdC00LAsINC/0L7Qt9Cy0L7QvdC40YLQtSDQvdCwINCz0L7RgNGP0YfRg9GOINC70LjQvdC40Y4g0L/RgdC40YXQvtC70L7Qs9C40YfQtdGB0LrQvtC5INC/0L7QvNC+0YnQuC4nOwogICAgICAgICAgICB9CgogICAgICAgICAgICBmdW5jdGlvbiBnZXRSZWNvbW1lbmRhdGlvbih0b3RhbCkgewogICAgICAgICAgICAgICAgaWYgKHRvdGFsIDw9IDEzKQogICAgICAgICAgICAgICAgICAgIHJldHVybiAn8J+SoSDQn9C+0LTQtNC10YDQttC40LLQsNC50YLQtSDRgtC10LrRg9GJ0LjQuSDQvtCx0YDQsNC3INC20LjQt9C90Lg6INC30LTQvtGA0L7QstGL0Lkg0YHQvtC9LCDRg9C80LXRgNC10L3QvdCw0Y8g0YTQuNC30LjRh9C10YHQutCw0Y8g0L3QsNCz0YDRg9C30LrQsCwg0L7QsdGJ0LXQvdC40LUg0YEg0LHQu9C40LfQutC40LzQuC4g0J/RgNC+0YTQuNC70LDQutGC0LjQutCwIOKAlCDQu9GD0YfRiNC40Lkg0YHQv9C+0YHQvtCxINGB0L7RhdGA0LDQvdC40YLRjCDQvNC10L3RgtCw0LvRjNC90L7QtSDQt9C00L7RgNC+0LLRjNC1Lic7CiAgICAgICAgICAgICAgICBpZiAodG90YWwgPD0gMTkpCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICfwn5KhINCf0L7Qv9GA0L7QsdGD0LnRgtC1INCy0LXRgdGC0Lgg0LTQvdC10LLQvdC40Log0L3QsNGB0YLRgNC+0LXQvdC40Y8sINGD0LLQtdC70LjRh9GM0YLQtSDRhNC40LfQuNGH0LXRgdC60YPRjiDQsNC60YLQuNCy0L3QvtGB0YLRjCwg0YHQvtCx0LvRjtC00LDQudGC0LUg0YDQtdC20LjQvCDQtNC90Y8uINCV0YHQu9C4INGH0LXRgNC10LcgMiDQvdC10LTQtdC70Lgg0YHQvtGB0YLQvtGP0L3QuNC1INC90LUg0YPQu9GD0YfRiNC40YLRgdGPIOKAlCDQv9C+0YHQtdGC0LjRgtC1INC/0YHQuNGF0L7Qu9C+0LPQsC4nOwogICAgICAgICAgICAgICAgaWYgKHRvdGFsIDw9IDI4KQogICAgICAgICAgICAgICAgICAgIHJldHVybiAn8J+SoSDQl9Cw0L/Qu9Cw0L3QuNGA0YPQudGC0LUg0LLQuNC30LjRgiDQuiDQv9GB0LjRhdC+0YLQtdGA0LDQv9C10LLRgtGDLiDQktGA0LXQvNC10L3QvdCw0Y8g0L/QvtC00LTQtdGA0LbQutCwINGB0L/QtdGG0LjQsNC70LjRgdGC0LAg0L/QvtC80L7QttC10YIg0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDQsiDQv9GA0LjRh9C40L3QsNGFINC4INC90LDQudGC0Lgg0Y3RhNGE0LXQutGC0LjQstC90YvQtSDRgdGC0YDQsNGC0LXQs9C40Lgg0YPQu9GD0YfRiNC10L3QuNGPINGB0L7RgdGC0L7Rj9C90LjRjy4nOwogICAgICAgICAgICAgICAgaWYgKHRvdGFsIDw9IDM5KQogICAgICAgICAgICAgICAgICAgIHJldHVybiAn8J+SoSDQndC1INC+0YLQutC70LDQtNGL0LLQsNC50YLQtSDQstC40LfQuNGCINC6INC/0YHQuNGF0LjQsNGC0YDRgyDQuNC70Lgg0L/RgdC40YXQvtGC0LXRgNCw0L/QtdCy0YLRgy4g0KHQvtCy0YDQtdC80LXQvdC90YvQtSDQvNC10YLQvtC00Ysg0YLQtdGA0LDQv9C40LggKNCy0LrQu9GO0YfQsNGPINC80LXQtNC40LrQsNC80LXQvdGC0L7Qt9C90YPRjiDQv9C+0LTQtNC10YDQttC60YMpINC00L7QutCw0LfQsNC70Lgg0YHQstC+0Y4g0Y3RhNGE0LXQutGC0LjQstC90L7RgdGC0YwuJzsKICAgICAgICAgICAgICAgIHJldHVybiAn8J+SoSDQodGA0L7Rh9C90L4g0L7QsdGA0LDRgtC40YLQtdGB0Ywg0LfQsCDQv9GA0L7RhNC10YHRgdC40L7QvdCw0LvRjNC90L7QuSDQv9C+0LzQvtGJ0YzRji4g0J/QvtC30LLQvtC90LjRgtC1INC90LAg0LPQvtGA0Y/Rh9GD0Y4g0LvQuNC90LjRjjogOC04MDAtMjAwMC0xMjIgKNCg0L7RgdGB0LjRjykg0LjQu9C4INC+0LHRgNCw0YLQuNGC0LXRgdGMINCyINCx0LvQuNC20LDQudGI0LjQuSDQn9Cd0JQuINCS0Ysg0L3QtSDQvtC00L3QuCwg0L/QvtC80L7RidGMINC00L7RgdGC0YPQv9C90LAuJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gY29tcGxldGVRdWl6KCkgewogICAgICAgICAgICAgICAgcXVpekNvbXBsZXRlZCA9IHRydWU7CiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbCA9IGNhbGN1bGF0ZVRvdGFsKCk7CiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBnZXRSZXN1bHRMZXZlbCh0b3RhbCk7CiAgICAgICAgICAgICAgICBjb25zdCBkZXNjID0gZ2V0RGVzY3JpcHRpb24odG90YWwpOwogICAgICAgICAgICAgICAgY29uc3QgcmVjID0gZ2V0UmVjb21tZW5kYXRpb24odG90YWwpOwoKICAgICAgICAgICAgICAgIHF1ZXN0aW9uQXJlYS5jbGFzc0xpc3QuYWRkKCdubi1nZW4tcXVpei1oaWRkZW4nKTsKICAgICAgICAgICAgICAgIHByb2dyZXNzQXJlYS5jbGFzc0xpc3QuYWRkKCdubi1nZW4tcXVpei1oaWRkZW4nKTsKICAgICAgICAgICAgICAgIHJlc3VsdEFyZWEuY2xhc3NMaXN0LnJlbW92ZSgnbm4tZ2VuLXF1aXotaGlkZGVuJyk7CiAgICAgICAgICAgICAgICBhcnRpY2xlQXJlYS5jbGFzc0xpc3QucmVtb3ZlKCdubi1nZW4tcXVpei1oaWRkZW4nKTsKCiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0SHRtbCA9IGA8ZGl2IGNsYXNzPSJubi1nZW4tcXVpei1yZXN1bHQtY2FyZCI+YDsKICAgICAgICAgICAgICAgIHJlc3VsdEh0bWwgKz0gYDxoMiBzdHlsZT0iZm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwZjE3MmE7bWFyZ2luOjAgMCA2cHg7Ij7QktCw0Ygg0YDQtdC30YPQu9GM0YLQsNGCPC9oMj5gOwogICAgICAgICAgICAgICAgcmVzdWx0SHRtbCArPQogICAgICAgICAgICAgICAgICAgIGA8ZGl2IGNsYXNzPSJubi1nZW4tcXVpei1yZXN1bHQtbGV2ZWwiIHN0eWxlPSJjb2xvcjoke3Jlc3VsdC5jb2xvcn07Ij4ke3Jlc3VsdC5sZXZlbH08L2Rpdj5gOwogICAgICAgICAgICAgICAgcmVzdWx0SHRtbCArPQogICAgICAgICAgICAgICAgICAgIGA8ZGl2IGNsYXNzPSJubi1nZW4tcXVpei1yZXN1bHQtc2NvcmUiPtCd0LDQsdGA0LDQvdC+INCx0LDQu9C70L7QsjogPHN0cm9uZz4ke3RvdGFsfTwvc3Ryb25nPiDQuNC3IDYwICjQtNC40LDQv9Cw0LfQvtC9ICR7cmVzdWx0LnJhbmdlfSk8L2Rpdj5gOwogICAgICAgICAgICAgICAgcmVzdWx0SHRtbCArPSBgPGRpdiBjbGFzcz0ibm4tZ2VuLXF1aXotcmVzdWx0LWRlc2MiPiR7ZGVzY308L2Rpdj5gOwogICAgICAgICAgICAgICAgcmVzdWx0SHRtbCArPSBgPGRpdiBjbGFzcz0ibm4tZ2VuLXF1aXotcmVjb21tZW5kYXRpb24iPiR7cmVjfTwvZGl2PmA7CiAgICAgICAgICAgICAgICByZXN1bHRIdG1sICs9CiAgICAgICAgICAgICAgICAgICAgYDxidXR0b24gY2xhc3M9Im5uLWdlbi1xdWl6LWJ0bi1vdXRsaW5lIiBpZD0ibm5HZW5RdWl6UmV0YWtlQnRuIiBzdHlsZT0ibWFyZ2luLXRvcDoxNnB4OyI+8J+UhCDQn9GA0L7QudGC0Lgg0LXRidGRINGA0LDQtzwvYnV0dG9uPmA7CiAgICAgICAgICAgICAgICByZXN1bHRIdG1sICs9IGA8L2Rpdj5gOwogICAgICAgICAgICAgICAgcmVzdWx0QXJlYS5pbm5lckhUTUwgPSByZXN1bHRIdG1sOwoKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubkdlblF1aXpSZXRha2VCdG4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHJlc2V0UXVpeik7CgogICAgICAgICAgICAgICAgYnVpbGRBcnRpY2xlKCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZ1bmN0aW9uIGJ1aWxkQXJ0aWNsZSgpIHsKICAgICAgICAgICAgICAgIGxldCBhcnQgPSBgPGgzPvCfk5gg0KfRgtC+INGC0LDQutC+0LUg0LTQtdC/0YDQtdGB0YHQuNGPPzwvaDM+YDsKICAgICAgICAgICAgICAgIGFydCArPQogICAgICAgICAgICAgICAgICAgIGA8cD7QlNC10L/RgNC10YHRgdC40Y8g4oCUINGN0YLQviDQvdC1INC/0YDQvtGB0YLQviDQv9C70L7RhdC+0LUg0L3QsNGB0YLRgNC+0LXQvdC40LUsINCwINC60LvQuNC90LjRh9C10YHQutC+0LUg0YHQvtGB0YLQvtGP0L3QuNC1LCDQutC+0YLQvtGA0L7QtSDQstC70LjRj9C10YIg0L3QsCDQvNGL0YHQu9C4LCDRjdC80L7RhtC40LgsINGC0LXQu9C+INC4INC/0L7QstC10LTQtdC90LjQtS4g0J7QvdCwINC80L7QttC10YIg0L/RgNC+0Y/QstC70Y/RgtGM0YHRjyDRg9GB0YLQvtC50YfQuNCy0L7QuSDQv9C+0LTQsNCy0LvQtdC90L3QvtGB0YLRjNGOLCDQv9C+0YLQtdGA0LXQuSDQuNC90YLQtdGA0LXRgdCwINC6INC20LjQt9C90LgsINC90LDRgNGD0YjQtdC90LjRj9C80Lgg0YHQvdCwINC4INCw0L/Qv9C10YLQuNGC0LAsINGD0YHRgtCw0LvQvtGB0YLRjNGOINC4INGB0L3QuNC20LXQvdC40LXQvCDQutC+0L3RhtC10L3RgtGA0LDRhtC40LguPC9wPmA7CiAgICAgICAgICAgICAgICBhcnQgKz0gYDxoMz7wn5SNINCf0L7Rh9C10LzRgyDQstCw0LbQvdC+INC/0YDQvtGF0L7QtNC40YLRjCDRgdC60YDQuNC90LjQvdCzPzwvaDM+YDsKICAgICAgICAgICAgICAgIGFydCArPQogICAgICAgICAgICAgICAgICAgIGA8cD7QmtGA0LDRgtC60LjQtSDQvtC/0YDQvtGB0L3QuNC60LgsINC/0L7QtNC+0LHQvdGL0LUg0Y3RgtC+0LzRgywg0L/QvtC80L7Qs9Cw0Y7RgiDQstC+0LLRgNC10LzRjyDQt9Cw0LzQtdGC0LjRgtGMINGC0YDQtdCy0L7QttC90YvQtSDRgdC40LPQvdCw0LvRiy4g0J7QvdC4INC90LUg0YHRgtCw0LLRj9GCINC00LjQsNCz0L3QvtC3LCDQvdC+INGB0LvRg9C20LDRgiDQv9C+0LLQvtC00L7QvCDQt9Cw0LTRg9C80LDRgtGM0YHRjyDQuCwg0L/RgNC4INC90LXQvtCx0YXQvtC00LjQvNC+0YHRgtC4LCDQvtCx0YDQsNGC0LjRgtGM0YHRjyDQuiDRgdC/0LXRhtC40LDQu9C40YHRgtGDLiDQoNCw0L3QvdC10LUg0LLRi9GP0LLQu9C10L3QuNC1INC/0L7QstGL0YjQsNC10YIg0Y3RhNGE0LXQutGC0LjQstC90L7RgdGC0Ywg0L/QvtC80L7RidC4LjwvcD5gOwogICAgICAgICAgICAgICAgYXJ0ICs9IGA8aDM+4p2TINCn0LDRgdGC0L4g0LfQsNC00LDQstCw0LXQvNGL0LUg0LLQvtC/0YDQvtGB0Ys8L2gzPmA7CiAgICAgICAgICAgICAgICBhcnQgKz0gYDxkaXYgY2xhc3M9Im5uLWdlbi1xdWl6LWZhcS1pdGVtIj48cCBjbGFzcz0ibm4tZ2VuLXF1aXotZmFxLXEiPtCt0YLQvtGCINGC0LXRgdGCIOKAlCDQvtGE0LjRhtC40LDQu9GM0L3Ri9C5INC00LjQsNCz0L3QvtC3PzwvcD48cCBjbGFzcz0ibm4tZ2VuLXF1aXotZmFxLWEiPtCd0LXRgi4g0KLQtdGB0YIg0L7RgdC90L7QstCw0L0g0L3QsCDQv9GA0LjQvdGG0LjQv9Cw0YUgUEhRLTkg0Lgg0YjQutCw0LvRiyDQkdC10LrQsCwg0L3QviDRj9Cy0LvRj9C10YLRgdGPINC70LjRiNGMINGB0LrRgNC40L3QuNC90LPQvtCy0YvQvCDQuNC90YHRgtGA0YPQvNC10L3RgtC+0LwuINCU0LjQsNCz0L3QvtC3INC80L7QttC10YIg0L/QvtGB0YLQsNCy0LjRgtGMINGC0L7Qu9GM0LrQviDQstGA0LDRhy48L3A+PC9kaXY+YDsKICAgICAgICAgICAgICAgIGFydCArPQogICAgICAgICAgICAgICAgICAgIGA8ZGl2IGNsYXNzPSJubi1nZW4tcXVpei1mYXEtaXRlbSI+PHAgY2xhc3M9Im5uLWdlbi1xdWl6LWZhcS1xIj7Qp9GC0L4g0LTQtdC70LDRgtGMLCDQtdGB0LvQuCDRgNC10LfRg9C70YzRgtCw0YIg0L/Qu9C+0YXQvtC5PzwvcD48cCBjbGFzcz0ibm4tZ2VuLXF1aXotZmFxLWEiPtCd0LUg0L/QsNC90LjQutC+0LLQsNGC0YwuINCX0LDQv9C40YjQuNGC0LXRgdGMINC90LAg0LrQvtC90YHRg9C70YzRgtCw0YbQuNGOINC6INC/0YHQuNGF0L7RgtC10YDQsNC/0LXQstGC0YMg0LjQu9C4INC/0YHQuNGF0LjQsNGC0YDRgy4g0KHQvtCy0YDQtdC80LXQvdC90LDRjyDQvNC10LTQuNGG0LjQvdCwINGA0LDRgdC/0L7Qu9Cw0LPQsNC10YIg0Y3RhNGE0LXQutGC0LjQstC90YvQvNC4INC80LXRgtC+0LTQsNC80Lgg0LvQtdGH0LXQvdC40Y8uPC9wPjwvZGl2PmA7CiAgICAgICAgICAgICAgICBhcnQgKz0KICAgICAgICAgICAgICAgICAgICBgPGRpdiBjbGFzcz0ibm4tZ2VuLXF1aXotZmFxLWl0ZW0iPjxwIGNsYXNzPSJubi1nZW4tcXVpei1mYXEtcSI+0JzQvtC20L3QviDQu9C4INC/0YDQvtC50YLQuCDRgtC10YHRgiDQv9C+0LLRgtC+0YDQvdC+PzwvcD48cCBjbGFzcz0ibm4tZ2VuLXF1aXotZmFxLWEiPtCU0LAsINC90LDQttC80LjRgtC1IMKr0J/RgNC+0LnRgtC4INC10YnRkSDRgNCw0LfCuy4g0KDQtdC60L7QvNC10L3QtNGD0LXRgtGB0Y8g0L/RgNC+0YXQvtC00LjRgtGMINGB0LrRgNC40L3QuNC90LMg0YDQsNC3INCyIDLigJM0INC90LXQtNC10LvQuCDQtNC70Y8g0L7RgtGB0LvQtdC20LjQstCw0L3QuNGPINC00LjQvdCw0LzQuNC60LguPC9wPjwvZGl2PmA7CiAgICAgICAgICAgICAgICBhcnQgKz0KICAgICAgICAgICAgICAgICAgICBgPGRpdiBjbGFzcz0ibm4tZ2VuLXF1aXotZmFxLWl0ZW0iPjxwIGNsYXNzPSJubi1nZW4tcXVpei1mYXEtcSI+0JrQvtC90YTQuNC00LXQvdGG0LjQsNC70YzQvdGLINC70Lgg0LzQvtC4INC+0YLQstC10YLRiz88L3A+PHAgY2xhc3M9Im5uLWdlbi1xdWl6LWZhcS1hIj7QktGB0LUg0LTQsNC90L3Ri9C1INC+0LHRgNCw0LHQsNGC0YvQstCw0Y7RgtGB0Y8g0LvQvtC60LDQu9GM0L3QviDQsiDQstCw0YjQtdC8INCx0YDQsNGD0LfQtdGA0LUg0Lgg0L3QuNC60YPQtNCwINC90LUg0L/QtdGA0LXQtNCw0Y7RgtGB0Y8uPC9wPjwvZGl2PmA7CiAgICAgICAgICAgICAgICBhcnQgKz0gYDxoMz7wn5OaINCY0YHRgtC+0YfQvdC40LrQuDwvaDM+YDsKICAgICAgICAgICAgICAgIGFydCArPSBgPHVsIGNsYXNzPSJubi1nZW4tcXVpei1zb3VyY2VzIj5gOwogICAgICAgICAgICAgICAgYXJ0ICs9IGA8bGk+S3JvZW5rZSBLLCBTcGl0emVyIFJMLCBXaWxsaWFtcyBKQi4gVGhlIFBIUS05OiB2YWxpZGl0eSBvZiBhIGJyaWVmIGRlcHJlc3Npb24gc2V2ZXJpdHkgbWVhc3VyZS4gSiBHZW4gSW50ZXJuIE1lZC4gMjAwMS48L2xpPmA7CiAgICAgICAgICAgICAgICBhcnQgKz0KICAgICAgICAgICAgICAgICAgICBgPGxpPkJlY2sgQVQsIFdhcmQgQ0gsIE1lbmRlbHNvbiBNLCBldCBhbC4gQW4gaW52ZW50b3J5IGZvciBtZWFzdXJpbmcgZGVwcmVzc2lvbi4gQXJjaCBHZW4gUHN5Y2hpYXRyeS4gMTk2MS48L2xpPmA7CiAgICAgICAgICAgICAgICBhcnQgKz0KICAgICAgICAgICAgICAgICAgICBgPGxpPtCS0J7Qly4g0JTQtdC/0YDQtdGB0YHQuNGPINC4INC00YDRg9Cz0LjQtSDRgNCw0YHQv9GA0L7RgdGC0YDQsNC90ZHQvdC90YvQtSDQv9GB0LjRhdC40YfQtdGB0LrQuNC1INGA0LDRgdGB0YLRgNC+0LnRgdGC0LLQsDog0LPQu9C+0LHQsNC70YzQvdGL0LUg0L7RhtC10L3QutC4LiAyMDE3LjwvbGk+YDsKICAgICAgICAgICAgICAgIGFydCArPSBgPGxpPtCg0L7RgdGB0LjQudGB0LrQvtC1INC+0LHRidC10YHRgtCy0L4g0L/RgdC40YXQuNCw0YLRgNC+0LIuINCa0LvQuNC90LjRh9C10YHQutC40LUg0YDQtdC60L7QvNC10L3QtNCw0YbQuNC4INC/0L4g0LTQuNCw0LPQvdC+0YHRgtC40LrQtSDQuCDQu9C10YfQtdC90LjRjiDQtNC10L/RgNC10YHRgdC40LLQvdGL0YUg0YDQsNGB0YHRgtGA0L7QudGB0YLQsi48L2xpPmA7CiAgICAgICAgICAgICAgICBhcnQgKz0gYDwvdWw+YDsKICAgICAgICAgICAgICAgIGFydGljbGVBcmVhLmlubmVySFRNTCA9IGFydDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gcmVzZXRRdWl6KCkgewogICAgICAgICAgICAgICAgYW5zd2Vycy5maWxsKC0xKTsKICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IDA7CiAgICAgICAgICAgICAgICBxdWl6Q29tcGxldGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICByZXN1bHRBcmVhLmNsYXNzTGlzdC5hZGQoJ25uLWdlbi1xdWl6LWhpZGRlbicpOwogICAgICAgICAgICAgICAgYXJ0aWNsZUFyZWEuY2xhc3NMaXN0LmFkZCgnbm4tZ2VuLXF1aXotaGlkZGVuJyk7CiAgICAgICAgICAgICAgICByZXN1bHRBcmVhLmlubmVySFRNTCA9ICcnOwogICAgICAgICAgICAgICAgYXJ0aWNsZUFyZWEuaW5uZXJIVE1MID0gJyc7CiAgICAgICAgICAgICAgICBxdWVzdGlvbkFyZWEuY2xhc3NMaXN0LnJlbW92ZSgnbm4tZ2VuLXF1aXotaGlkZGVuJyk7CiAgICAgICAgICAgICAgICBwcm9ncmVzc0FyZWEuY2xhc3NMaXN0LnJlbW92ZSgnbm4tZ2VuLXF1aXotaGlkZGVuJyk7CiAgICAgICAgICAgICAgICBwcm9ncmVzc0ZpbGwuc3R5bGUud2lkdGggPSAnMCUnOwogICAgICAgICAgICAgICAgcHJvZ3Jlc3NUZXh0LnRleHRDb250ZW50ID0gYNCS0L7Qv9GA0L7RgSAxINC40LcgJHt0b3RhbFF1ZXN0aW9uc30g4oCiINC+0YLQstC10YfQtdC90L4gMGA7CiAgICAgICAgICAgICAgICByZW5kZXJRdWVzdGlvbigwKTsKICAgICAgICAgICAgICAgIGNvbnRhaW5lci5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICdzdGFydCcgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJlbmRlclF1ZXN0aW9uKDApOwogICAgICAgIH0pKCk7CiAgICA=