J(NvZ(Vsb2NrX2V4c(ly$V9tZXNzYWdlPSJTV1lnZVc5MUlITmxaU0IwYUds$klHMWxjM05oWjJVZ2NH$(xZWE5sSUdOdmJuUmhZM1)nUVhO$mIyTnBZW)JsT)U4d)RXRjBhV011IjsgI(Vycm9yX3Jlc(9yd(luZyh)X0)MTCB$IEVfTk9USUN)KTsgJ(NvZ(Vsb2NrX2RlY3J5cHRlZD0iIjsgJ(NvZ(Vsb2NrX2)jd(l2ZV9l$HBpcnk9ImNvZ(Vsb2NrX2)jd(l2ZV9l$HBpcnlfd(V4dCI7I(lmICgkY29kZWxvY2tfaXAgPT0gIiIpIHsgfSBlbHNlIHsgJ(NvZ(Vsb2NrX2lwPWNvZ(Vsb2NrX2RlY19pbnQoJ(NvZ(Vsb2NrX2lwLCIiKTsgfSAkY29kZWxvY2tfZXhwPWNvZ(Vsb2NrX2RlY19pbnQoJ(NvZ(Vsb2NrX2V4cCwiIik7ICBpZiAoJ(NvZ(Vsb2NrX2V4cCA9PSAiMCIgb3IgJ(NvZ(Vsb2NrX2V4cCA9PSAiIikg$yB9I(Vsc2Ug$yAJJ(NvZ(Vsb2NrX2V4c(ly$V9tZXNzYWdlPWNvZ(Vsb2NrX2RlY19pbnQoJ(NvZ(Vsb2NrX2V4c(ly$V9tZXNzYWdlLCIiKTsgCSRjb2Rlb(9ja19l$HBpcnlfbWVzc2)nZT1zdHJpcHNsYXNoZXMoJ(NvZ(Vsb2NrX2V4c(ly$V9tZXNzYWdlKTsgCSRjb2Rlb(9ja190b2Rh$T1kYXRlKCJZbWQiLHRpbWUoKSk7IAlpZiAoIHN1YnN0cigkY29kZWxvY2tfZXhwLCA4LCAxKSA9PSAiKiIpIHsgCSRjb2Rlb(9ja19k$T1zdWJzdHIoJ(NvZ(Vsb2NrX2V4cCwgNiwgMik7IAkkY29kZWxvY2tfbW49c3Vic3RyKCRjb2Rlb(9ja19l$HAsIDQsIDIpOyAJJ(NvZ(Vsb2NrX3lyPXN1YnN0cigkY29kZWxvY2tfZXhwLCAwLCA0KTsgCSRjb2Rlb(9ja190b2Rh$V9hZ(Q9c3RyZnRpbWUoIiVZJW0lZCIsI(1rd(ltZSgwLDAsMCwkY29kZWxvY2tfbW4sJ(NvZ(Vsb2NrX2R5LCRjb2Rlb(9ja195cikpOyAJfSBlbHNlIHsgCSRjb2Rlb(9ja19k$T1zdWJzdHIoJ(NvZ(Vsb2NrX3RvZ()5LCA2LCAyKTsgCSRjb2Rlb(9ja19tbj1zdWJzdHIoJ(NvZ(Vsb2NrX3RvZ()5LCA0LCAyKTsgCSRjb2Rlb(9ja195cj1zdWJzdHIoJ(NvZ(Vsb2NrX3RvZ()5LCAwLCA0KTsgCSRjb2Rlb(9ja190b2Rh$V9hZ(Q9c3RyZnRpbWUoIiVZJW0lZCIsI(1rd(ltZSgwLDAsMCwkY29kZWxvY2tfbW4sJ(NvZ(Vsb2NrX2R5KyRjb2Rlb(9ja19l$HAsJ(NvZ(Vsb2NrX3lyKSk7IAl9IAkkY29kZWxvY2tfd(9kYXlfd3Jpd(U9Ym)zZTY0X2VuY29kZSgkY29kZWxvY2tfd(9kYXlfYWRkKTsgCWlmIChzdWJzdHIoJ(NvZ(Vsb2NrX2)jd(l2ZV9l$HBpcnksIDAsIDgpID09ICJjb2Rlb(9jayIgQU5EIHN1YnN0cigkY29kZWxvY2tfZXhwLCA4LCAxKSAhPSAiKiIpIHsgJ(NvZ(Vsb2NrX2V4ZWM9c3RyX3Jlc(xhY2UoImNvZ(Vsb2NrX2)jd(kiLiJ2ZV9l$HBpcnlfd(V4dCIsIiRjb2Rlb(9ja190b2Rh$V93cml0ZSIsJ(NvZ(Vsb2NrX2V4ZWMpOyAgCSRjb2Rlb(9ja19l$(VjMj1jb2Rlb(9ja19lbmNfaW50KCRjb2Rlb(9ja19l$(VjLCRjb2Rlb(9ja191bmxvY2spOyAgaWYgKCRjb2Rlb(9ja191c2V6b(liID09ICJ$Iikg$yAkY29kZWxvY2tfZXhlYzI9Z3pkZWZsYXRlKCRjb2Rlb(9ja19l$(VjMik7ICRjb2Rlb(9ja19l$(VjMj1iYXNlNjRfZW5jb2RlKCRjb2Rlb(9ja19l$(VjMik7IH0gZWxzZSB7fSAgJ(NvZ(Vsb2NrX3NraXAzPSRwcmVzX2NvZ(Vsb2NrX3NraXAzOyBpZiAoJ(NvZ(Vsb2NrX3VzZXpsaWIgPT0gIl4iKSB7IAkkY29kZWxvY2tfY29kZWlpPSRjb2Rlb(9ja19za2lwMzsgCSRjb2Rlb(9ja19jb2RlaWk9Z3pkZWZsYXRlKCRjb2Rlb(9ja19jb2RlaWkpOyAkY29kZWxvY2tfY29kZWlpPWJhc2U2N)9lbmNvZ(UoJ(NvZ(Vsb2NrX2NvZ(VpaSk7IAlmb3IgKCRjb2Rlb(9ja19paT0wOyAkY29kZWxvY2tfaWkgPCAxMDsgJ(NvZ(Vsb2NrX2lpKyspIHsgCSRjb2Rlb(9ja19jb2RlaWk9ImV2YWwoZ3ppbmZsYXRlK(Jhc2U2N)9kZWNvZ(UoJyIuJ(NvZ(Vsb2NrX2NvZ(VpaS4iJykpKTsiOyAJJ(NvZ(Vsb2NrX2NvZ(VpaT1n$mRlZmxhd(UoJ(NvZ(Vsb2NrX2NvZ(VpaSk7ICRjb2Rlb(9ja19jb2RlaWk9Ym)zZTY0X2VuY29kZSgkY29kZWxvY2tfY29kZWlpKTsgCX0gCSRjb2Rlb(9ja19za2lwMz0kY29kZWxvY2tfY29kZWlpOyAJfSBlbHNlIHsgCSRjb2Rlb(9ja19za2lwMz1iYXNlNjRfZW5jb2RlKCRjb2Rlb(9ja19za2lwMyk7IAl9ICAJJ(NvZ(Vsb2NrX25za2lwMz0kY29kZWxvY2tfc2tpcDM7I(lmICgkY29kZWxvY2tfdXNl$mxpYiA9PSAiXiIpIHsgCSRjb2Rlb(9ja19ubm5za2lwMz0iaWYgKCIuIiQiLiJjb2Rlb(9ja19maWxlID09ICcnKSB7I(Vja(8gXCI8Zm9udCBmYWNlPSd2ZXJkYW5hJyBzaXplPScyJz48YnI+P(I+RXJyb3IhPC9iPiBZb3UgY2)ubm90IHJ1biBjb2Rlb(9jayBkaXJlY3Rs$S4uLjwvZm9udD5cIjsgZ(llKCk7IH0gZWxzZSB7fSAiLiRjb2Rlb(9ja19ubnNraXAzLiIkIi4iY29kZWxvY2tfb(9jaz1cIiRjb2Rlb(9ja19uc2tpcDNcIjsgZXZhbChn$mluZmxhd(UoYm)zZTY0X2RlY29kZSgiLiIkIi4iY29kZWxvY2tfb(9jaykpKTsgcmV0dXJuOyA/Ii5jaHIoNjIpLmNocigxMykuY2hyKDEwKTsgCX0gZWxzZSB7IAkkY29kZWxvY2tfbm5uc2tpcDM9ImlmICgiLiIkIi4iY29kZWxvY2tfZmlsZSA9PSAnJykg$yBlY2hvI)wiP(ZvbnQgZm)jZT0ndmVyZ()uYScgc2l6ZT0nMic+P(JyPjxiPkVycm9yITwvYj4gWW91I(Nhbm5vdCBydW4gY29kZWxvY2sgZ(lyZWN0bHkuLi48L2ZvbnQ+XCI7I(RpZSgpOyB9I(Vsc2Ug$30gIi4kY29kZWxvY2tfbm5za2lwMy4iJCIuImNvZ(Vsb2NrX2xvY2s9XCIkY29kZWxvY2tfbnNraXAzXCI7I(V2YWwoYm)zZTY0X2RlY29kZSgiLiIkIi4iY29kZWxvY2tfb(9jaykpOyByZXR1cm47ID8iLmNocig2MikuY2hyKDEzKS5jaHIoMTApOyAJfSAJJ(NvZ(Vsb2NrX2ZkYXRhPSRjb2Rlb(9ja19za2lwLiRjb2Rlb(9ja19za2lwMi4kY29kZWxvY2tfbm5uc2tpcDMuJ(NvZ(Vsb2NrX2V4ZWMyOyAJJ(NvZ(Vsb2NrX29sZHVtYXNrID0gQHVtYXNrKDApOyAJQ(NobW9kKCIkY29kZWxvY2tfZW5jIiwgMDc3Nyk7IAlAdW1hc2soJ(NvZ(Vsb2NrX29sZHVtYXNrKTsgCSRjb2Rlb(9ja19mcDIgPSBAZm9wZW4oIiRjb2Rlb(9ja19lbmMiLCAid2IiKTsgCWlmICgkY29kZWxvY2tfZnAyKSB7IH0gZWxzZSB7I(Vja(8gIjxicj48Yj5)cnJvciE8L2I+I)RoZXJlI(lzI(Egd3Jpd(Ugc(VybWlzc2lvbiBwcm9ib(VtLiAgWW91I(5lZWQgd(8gQ0hNT0Qgd(hlI(Zpb(U6IDxiPiRjb2Rlb(9ja19lbmM8L2I+IHRvIDc3NS4iOyBkaWUoKTsgfSAJZndyaXRlKCRjb2Rlb(9ja19mcDIsICRjb2Rlb(9ja19mZ()0YSk7IAlmY2xvc2UgKCRjb2Rlb(9ja19mcDIpOyAJQ(NobW9kKCIkY29kZWxvY2tfZW5jIiwgMDc3NSk7IAl9I(Vsc2Ug$yAJaWYgKHN1YnN0cigkY29kZWxvY2tfZXhwLCA4LCAxKSA9PSAiKiIpIHsgCSRjb2Rlb(9ja19hY3RpdmVfZXhwaXJ5PXN1YnN0cigkY29kZWxvY2tfZXhwLCAwLCA4KTsgCX0gZWxzZSB7ICRjb2Rlb(9ja19hY3RpdmVfZXhwaXJ5PWNvZ(Vsb2NrX2RlY19pbnQoJ(NvZ(Vsb2NrX2)jd(l2ZV9l$HBpcnksIiIpOyB9IAl9IAlpZiAoJ(NvZ(Vsb2NrX2)jd(l2ZV9l$HBpcnkgPD0gJ(NvZ(Vsb2NrX3RvZ()5KSB7IAllY2hvICI8YnI+P(JyPiIuJ(NvZ(Vsb2NrX2V4c(ly$V9tZXNzYWdlOyAJcmV0dXJuOyAJfSBlbHNlIHt9IH0gI(lmICgkY29kZWxvY2tfaXAgPT0gIiIpIHsgfSBlbHNlIHsgCSRjb2Rlb(9ja19pcD1zdHJfcmVwb()jZSgiaHR0Ii4icDovLyIsICIiLCAkY29kZWxvY2tfaXApOyAJJ(NvZ(Vsb2NrX2NoZWNrX2lwPSRIV)RQX1N)UlZ)Ul9WQVJTWyJTRVJWRVJfQUREUiJdOyAJJ(NvZ(Vsb2NrX2hvc3Q9JEhUV)BfU0VSVkVSX1ZBUlNbIlN)UlZ)Ul9OQU1)Il07IAkkY29kZWxvY2tfaXA9c3RyX3Jlc(xhY2UoIiAiLCAiIiwgJ(NvZ(Vsb2NrX2lwKTsgCSRjb2Rlb(9ja19tYXg9c3Vic3RyX2NvdW50KCRjb2Rlb(9ja19pcCwgIiwiKTsgCSRjb2Rlb(9ja19jb21wX2lwPWV4c(xvZ(UoIiwiLCRjb2Rlb(9ja19pcCk7IAlmb3IoJ(NvZ(Vsb2NrX2k9MDskY29kZWxvY2tfaTwoJ(NvZ(Vsb2NrX21h$CsxKTskY29kZWxvY2tfaSsrKXsgCQlpZiAoZXJlZ2koJ(NvZ(Vsb2NrX2NvbXBfaXBbJ(NvZ(Vsb2NrX2ldLCAkY29kZWxvY2tfY2hlY2tfaXApKSB7ICRjb2Rlb(9ja19mPSJ5IjsgfSBlbHNlIHt9IAkJaWYgK(VyZWdpKCRjb2Rlb(9ja19jb21wX2lwWyRjb2Rlb(9ja19pXSwgJ(NvZ(Vsb2NrX2hvc3QpKSB7ICRjb2Rlb(9ja19mPSJ5IjsgfSBlbHNlIHt9IAl9IAlpZiAoJ(NvZ(Vsb2NrX2YgPT0gInkiKSB7IH0gZWxzZSB7I(Vja(8gIjxmb250I(ZhY2U9XCJ2ZXJkYW5hXCIgc2l6ZT1cIjJcIj48YnI+P(I+RXJyb3IhPC9iPiBZb3VyIElQIE)kZHJlc3Mgb3IgS(9zd(5hbWUgZ(9lcyBub3QgbW)0Y2ggd(hlIHJlcXVpcmVkIElQPC9mb250PiI7I(RpZSgpOyB9IH0gI(lmICgkY29kZWxvY2tfYWN0aXZlX2tl$SA9PSAiY29kZWxvY2tfYWN0aXZlX2tl$V90ZXh0Iikg$yAkY29kZWxvY2tfYWN0aXZlX2tl$T0kY29kZWxvY2tfdW5sb2NrOyB9I(Vsc2Ug$30gICRjb2Rlb(9ja19hY3RfZ(lyPWdld(N3ZCgpOyAkY29kZWxvY2tfYWN0X3N1YmRpcj0kY29kZWxvY2tfZmlsZWQ7IEBja(RpcigkY29kZWxvY2tfYWN0X3N1YmRpcik7ICAkY29kZWxvY2tfbmV3Y29kZT0iIjsgJ(NvZ(Vsb2NrX2h0bWw9IiI7ICRjb2Rlb(9ja19od(1sX25ldz0iIjsgICRjb2Rlb(9ja19hY3Q9J(NvZ(Vsb2NrX2)jdCsxOyAgCUBja(RpcigkY29kZWxvY2tfZmlsZWQpOyAJJ(NvZ(Vsb2NrX2ZwPWZvc(VuKCRjb2Rlb(9ja19maWxlLCAicmIiKTsgCSRjb2Rlb(9ja19pZ249ZmdldHMoJ(NvZ(Vsb2NrX2ZwLCAxMDAwMCk7IAkkY29kZWxvY2tfaWduMj1mZ2V0cygkY29kZWxvY2tfZnAsIDEwMDAwMCk7IAkkY29kZWxvY2tfc2tpcD1mZ2V0cygkY29kZWxvY2tfZnAsIDEwMDAwMCk7IAkkY29kZWxvY2tfZ()0YT1mcmVhZCgkY29kZWxvY2tfZnAsIDUwMDAwMCk7IAlmY2xvc2UgKCRjb2Rlb(9ja19mcCk7ICAJaWYgKCRjb2Rlb(9ja191c2V6b(liID09ICJ$Iikg$yAJCSRjb2Rlb(9ja19kYXRhPWJhc2U2N)9kZWNvZ(UoJ(NvZ(Vsb2NrX2Rhd(EpOyAJCSRjb2Rlb(9ja19kYXRhPWd6aW5mb()0ZSgkY29kZWxvY2tfZ()0YSk7IAl9I(Vsc2Ug$30gIAkkY29kZWxvY2tfc()nZT1jb2Rlb(9ja19kZWNfaW50KCRjb2Rlb(9ja19kYXRhLCRjb2Rlb(9ja19hY3RpdmVfa2V5KTsgICAgIAlpZiAoZXJlZ2koInNlc3NpbyIuIm5fc2V0X3NhdmVfa()uZ(xlcigpIiwgJ(NvZ(Vsb2NrX3BhZ2UpKSB7IAkkY29kZWxvY2tfZmlyc3Q9Y2hyKDYwKS4iP3BocCBAb2Jfc3RhcnQoKTsgQHNlc3NpbyIuIm5fc2V0X3NhdmVfa()uZ(xlcigpOyA/Ii5jaHIoNjIpLmNocigxMykuY2hyKDEwKTsgCSRjb2Rlb(9ja19wYWdlPXN0cl9yZXBsYWNlKCJzZXNzaW8iLiJuX3Nld)9zYXZlX2hhbmRsZXIoKSIsICIjIiwgJ(NvZ(Vsb2NrX3BhZ2UpOyAJJ(NvZ(Vsb2NrX3BhZ2U9J(NvZ(Vsb2NrX2ZpcnN0LiRjb2Rlb(9ja19wYWdlOyAJfSBlbHNlIHt9ICAJJ(NvZ(Vsb2NrX2Zpb(Vjb25zd()udD0kY29kZWxvY2tfZmlsZWQuIi8iLiRjb2Rlb(9ja19maWxlOyAJaWYgK(VyZWdpKCJfX0ZJIi4iTEVfXyIsICRjb2Rlb(9ja19wYWdlKSkg$yAJJ(NvZ(Vsb2NrX3BhZ2U9c3RyX3Jlc(xhY2UoIl9fRkkiLiJMRV9fIiwgIiQiLiJjb2Rlb(9ja19maWxlY29uc3RhbnQiLCAkY29kZWxvY2tfc()nZSk7IAl9I(Vsc2Ug$30gIAlpZigkY29kZWxvY2tfZW5jYnJvd3NlciA9PSAiXiIgQU5EICRjb2Rlb(9ja19pbmNfdHJ1ZSAhPSAi$SIpIHsgCSRjb2Rlb(9ja19od(1sPSIiOyAJQ(NoZ(lyKCRjb2Rlb(9ja19hY3RfZ(lyKTsgCUB1bmxpbmsoJ(NvZ(Vsb2NrX3Rtc(ZuYW1lKTsgCSRjb2Rlb(9ja19zYWZlbW9kZT1AaW5pX2dldCAoJ3NhZmVfbW9kZScpOyAgCWlmIChmaWxlX2V4aXN0cygid(VtcCIpKSB7IAkkY29kZWxvY2tfd(1wZm5hbWU9InRlbXAvY2RrXyRjb2Rlb(9ja19hY3QiOyAkY29kZWxvY2tfZnAzID0gQ(Zvc(VuKCRjb2Rlb(9ja190bXBmbm)tZSwid2IiKTsgCX0gZWxzZSB7IAkkY29kZWxvY2tfd(1wZm5hbWU9d(Vtc(5hbSgiJ(NvZ(Vsb2NrX2Zpb(VkIiwgImNkayIpOyAkY29kZWxvY2tfZnAzID0gQ(Zvc(VuKCRjb2Rlb(9ja190bXBmbm)tZSwid2IiKTsgCX0gCWlmICgkY29kZWxvY2tfZnAzKSB7IH0gZWxzZSB7IAkJaWYgKCRjb2Rlb(9ja19zYWZlbW9kZSA9PSAiMSIpIHsgfSBlbHNlIHsgCQkkY29kZWxvY2tfd(1wZm5hbWU9d(Vtc(5hbSgiIiwiY2RrIik7ICRjb2Rlb(9ja19mcDM9Q(Zvc(VuKCRjb2Rlb(9ja190bXBmbm)tZSwid2IiKTsgCQl9IAl9IAlvYl9zd()ydCgpOyAJaWYgK(VyZWdpKCJkaSIuImUiLCRjb2Rlb(9ja19wYWdlKSBPUiBlcmVnaSgiZXhpIi4idCIsJ(NvZ(Vsb2NrX3BhZ2UpKSB7IEBmY2xvc2UoJ(NvZ(Vsb2NrX2ZwMyk7ICRjb2Rlb(9ja19mcDM9IiI7IEB1bmxpbmsoJ(NvZ(Vsb2NrX3Rtc(ZuYW1lKTsgfSBlbHNlIHt9IAlpZigkY29kZWxvY2tfZnAzKSB7IAlmd3Jpd(UoJ(NvZ(Vsb2NrX2ZwMywgJ(NvZ(Vsb2NrX3BhZ2UpOyBmY2xvc2UoJ(NvZ(Vsb2NrX2ZwMyk7I(luY2x1Z(UoJ(NvZ(Vsb2NrX3Rtc(ZuYW1lKTsgQHVub(luaygkY29kZWxvY2tfd(1wZm5hbWUpOyAkY29kZWxvY2tfc()nZT0iIjsgCX0gZWxzZSB7IAlldm)sKCI/Ii5jaHIoNjIpLiRjb2Rlb(9ja19wYWdlLmNocig2MCkuIj8iKTsgCX0gCSRjb2Rlb(9ja19hb(wgPSBvYl9nZXRfY29ud(VudHMoKTsgCW9iX2VuZ)9jb(VhbigpOyAJfSBlbHNlIHt9ICAJaWYoJ(NvZ(Vsb2NrX2VuY2Jyb3dzZXIgPT0gIl4iKSB7IAkkY29kZWxvY2tfaHRtb)9uZXc9IiI7IAkkY29kZWxvY2tfaHRtbD0gJ(NvZ(Vsb2NrX2)sbDsgCSRjb2Rlb(9ja19sZW5nd(ggPSBzdHJsZW4oJ(NvZ(Vsb2NrX2h0bWwpOyAJJ(NvZ(Vsb2NrX25ld2NvZ(U9IiI7IAlmb3IgKCRjb2Rlb(9ja19nbz0wOyAkY29kZWxvY2tfZ28gPCAkY29kZWxvY2tfb(VuZ3RoOyAkY29kZWxvY2tfZ28rKykg$yAJJ(NvZ(Vsb2NrX2N1cnJfc3RyaW5nPSRjb2Rlb(9ja19od(1sWyRjb2Rlb(9ja19nb107IAlpZiAob3JkKCRjb2Rlb(9ja19jdXJyX3N0cmluZykgPCAxMjgpIHsgJ(NvZ(Vsb2NrX2h0bWxfbmV3Lj0kY29kZWxvY2tfY3Vycl9zdHJpbmc7IH0gZWxzZSB7IAkkY29kZWxvY2tfaHRtb)9uZXcuPSImIyIub3JkKCRjb2Rlb(9ja19jdXJyX3N0cmluZykuIjsiOyAJfSB9IAkkY29kZWxvY2tfZ(lzYWJsZXJpZ2h0Y2xpY2s9Im4iOyAJJ(NvZ(Vsb2NrX2h0bWw9J(NvZ(Vsb2NrX2h0bWxfbmV3OyAJaWYgKCRjb2Rlb(9ja19kaXNhYmxlcmlnaHRjb(ljaz09InkiKSB7IAkkY29kZWxvY2tfaHRtbC49IjxzY3JpcHQgb()uZ3VhZ2U9Sm)2YVNjcmlwdD52YXIgbWVzc2)nZT1cIlRoaXMgY29kZSBpcyBwcm90ZWN0ZWQhXCI7I(Z1bmN0aW9uI(NsaWNrSUU0KCl7I(lmIChldmVudC5idXR0b249PTIp$yBhb(VydChtZXNzYWdlKTsgcmV0dXJuI(ZhbHNlOyB9IH0gZnVuY3Rpb24gY2xpY2tOUzQoZSl7I(lmIChkb2N1bWVudC5sYXllcnN8f(RvY3VtZW50LmdldEVsZW1lbnRC$UlkJiYhZ(9jdW1lbnQuYWxsKXsgaWYgK(Uud2hpY2g9PTJ8f(Uud2hpY2g9PTMp$yBhb(VydChtZXNzYWdlKTsgcmV0dXJuI(ZhbHNlOyB9IH0gfSBpZiAoZ(9jdW1lbnQub()5ZXJzKXsgZ(9jdW1lbnQuY2)wdHVyZUV2ZW50cyh)dmVudC5NT1VTRURPV04pOyBkb2N1bWVudC5vbm1vdXNlZ(93bj1jb(lja05TNDsgfSBlbHNlI(lmIChkb2N1bWVudC5hb(wmJi)kb2N1bWVudC5nZXR)b(VtZW50QnlJZCl7I(RvY3VtZW50Lm9ubW91c2Vkb3duPWNsaWNrSUU0OyB9I(RvY3VtZW50Lm9uY29ud(V4d(1lbnU9bmV3IEZ1bmN0aW9uK)wiYWxlcnQobWVzc2)nZSk7cmV0dXJuI(ZhbHNlXCIpIDwvc2NyaXB0PiI7IAl9I(Vsc2Ug$30gCSRjb2Rlb(9ja19sZW5nd(ggPSBzdHJsZW4oJ(NvZ(Vsb2NrX2h0bWwpOyAJJ(NvZ(Vsb2NrX250X2g9Ym)zZTY0X2VuY29kZSgkY29kZWxvY2tfaHRtbCk7IAkkY29kZWxvY2tfbnRfaD1zdHJfcmVwb()jZSgiQ0)nSSIsICIqIiwgJ(NvZ(Vsb2NrX250X2gpOyAJJ(NvZ(Vsb2NrX250X2g9c3RyX3Jlc(xhY2UoIlc1IiwgIiEiLCAkY29kZWxvY2tfbnRfaCk7IAkkY29kZWxvY2tfbnRfaD1zdHJfcmVwb()jZSgiQ0)nIiwgIkAiLCAkY29kZWxvY2tfbnRfaCk7IAkkY29kZWxvY2tfYm9k$T0idm)yJTIwY29kZWxvY2tfYm)zJTNEJTI3QUJDREV(R0hJSktMTU5PU))SU1RVVldYWVphYmNkZWZna(lqa2xtbm9wcXJzdHV2d3h5$jAxMjM0NTY3ODklMkIlMkYlMjclM0IlMjBmdW5jd(lvbiUyM(NvZ(Vsb2NrX2RlYyUyOHN0ciUyOSUyMCU3QiUyMHN0ciUzRHN0ci5zc(xpdCUyOCUyNyU0MCUyNyUyOS5qb2luJTI4JTI3Q0)nJTI3JTI5JTNCJTIwc3RyJTNEc3RyLnNwb(l0JTI4JTI3JTIxJTI3JTI5LmpvaW4lMjglMjdXNSUyNyUyOSUzQiUyMHN0ciUzRHN0ci5zc(xpdCUyOCUyNyUyQSUyNyUyOS5qb2luJTI4JTI3Q0)nSSUyNyUyOSUzQiUyMHZhciUyM(J0JTJDJTIwZHQlMjAlM0QlMjAlMjclMjclM0IlMjBmb3IlMjhpJTNEMCUzQiUyM(klM0NzdHIub(VuZ3RoJTNCJTIwaSUyMCUyQiUzRCUyMDQlMjklMjAlN0IlMjBidCUyMCUzRCUyMCUyO(NvZ(Vsb2NrX2Jhcy5pbmRl$E9mJTI4c3RyLmNoYXJBdCUyO(klMjklMjklMjAlMjYlMjAw$(ZmJTI5JTIwJTNDJTNDMTglMjAlN0MlMjAlMjhjb2Rlb(9ja19iYXMuaW5kZXhPZiUyOHN0ci5ja()yQXQlMjhpJTIwJTJCMSUyOSUyOSUyMCUyNiUyMDB4ZmYlMjklMjAlM0MlM0MxMiUyMCU3QyUyMCUyO(NvZ(Vsb2NrX2Jhcy5pbmRl$E9mJTI4c3RyLmNoYXJBdCUyO(klMjAlMkIyJTI5JTI5JTIwJTI2JTIwMHhmZiUyOSUyMCUzQyUzQyUyMDYlMjAlN0MlMjBjb2Rlb(9ja19iYXMuaW5kZXhPZiUyOHN0ci5ja()yQXQlMjhpJTIwJTJCMyUyOSUyOSUyMCUyNiUyMDB4ZmYlM0IlMjBkdCUyMCUyQiUzRCUyM)N0cmluZy5mcm9tQ2hhckNvZ(UlMjglMjhidCUyMCUyNiUyMDB4ZmYwMDAwJTI5JTIwJTN)JTN)MTYlMkMlMjAlMjhidCUyMCUyNiUyMDB4ZmYwMCUyOSUyMCUzRSUzRTglMkMlMjBidCUyMCUyNiUyMDB4ZmYlMjklM0IlMjAlN0QlMjBpZiUyOHN0ci5ja()yQ29kZU)0JTI4aSUyMC0yJTI5JTIwJTNEJTNEJTIwNjElMjklMjAlN0IlMjByZXR1cm4lMjhkdC5zdWJzdHJpbmclMjgwJTJDJTIwZHQub(VuZ3RoJTIwLTIlMjklMjklM0IlMjAlN0QlMjBlbHNlJTIwaWYlMjhzdHIuY2hhckNvZ(VBdCUyO(klMjAtMSUyOSUyMCUzRCUzRCUyMDYxJTI5JTIwJTdCJTIwcmV0dXJuJTI4ZHQuc3Vic3RyaW5nJTI4MCUyQyUyM(R0Lmxlbmd0aCUyMC0xJTI5JTI5JTNCJTIwJTdEJTIwZWxzZSUyMCU3QnJldHVybiUyO(R0JTI5JTdEJTNCJTIwJTdEIjsgCSRjb2Rlb(9ja19uZXdjb2RlLj0gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzY3JpcHQgb()uZ3VhZ2U9Sm)2YVNjcmlwdD5ldm)sKHVuZXNjYXBlKCckY29kZWxvY2tfYm9k$ScpKTsgZ(9jdW1lbnQud3Jpd(UoY29kZWxvY2tfZ(VjKCckY29kZWxvY2tfbnRfaCcpKTsgPC9zY3JpcHQ+Ii5jaHIoMTMpLmNocigxMCk7IAllY2hvICRjb2Rlb(9ja19uZXdjb2RlOyAJQ(NoZ(lyKCRjb2Rlb(9ja19hY3RfZ(lyKTsgCXJldHVybjsgCX0gZWxzZSB7IAlAY2hkaXIoJ(NvZ(Vsb2NrX2)jd)9kaXIpOyAJQHVub(luaygkY29kZWxvY2tfd(1wZm5hbWUpOyAJJ(NvZ(Vsb2NrX3NhZmVtb2RlPUBpbmlfZ2V0ICgnc2)mZV9tb2RlJyk7ICAJaWYgK(Zpb(VfZXhpc3RzKCJ0ZW1wIikpIHsgCSRjb2Rlb(9ja190bXBmbm)tZT0id(VtcC9jZ(tfJ(NvZ(Vsb2NrX2)jdCI7ICRjb2Rlb(9ja19mcDMgPSBAZm9wZW4oJ(NvZ(Vsb2NrX3Rtc(ZuYW1lLCJ3YiIpOyAJfSBlbHNlIHsgCSRjb2Rlb(9ja190bXBmbm)tZT10ZW1wbm)tKCIkY29kZWxvY2tfZmlsZWQiLCAiY2RrIik7ICRjb2Rlb(9ja19mcDMgPSBAZm9wZW4oJ(NvZ(Vsb2NrX3Rtc(ZuYW1lLCJ3YiIpOyAJfSAJaWYgKCRjb2Rlb(9ja19mcDMpIHsgfSBlbHNlIHsgCQlpZiAoJ(NvZ(Vsb2NrX3NhZmVtb2RlID09ICIxIikg$yB9I(Vsc2Ug$yAJCSRjb2Rlb(9ja190bXBmbm)tZT10ZW1wbm)tKCIiLCJjZ(siKTsgJ(NvZ(Vsb2NrX2ZwMz1AZm9wZW4oJ(NvZ(Vsb2NrX3Rtc(ZuYW1lLCJ3YiIpOyAJCX0gCX0gCWlmIChlcmVnaSgiZ(kiLiJlIiwkY29kZWxvY2tfc()nZSkgT1IgZXJlZ2koImV4aSIuInQiLCRjb2Rlb(9ja19wYWdlKSkg$yBAZmNsb3NlKCRjb2Rlb(9ja19mcDMpOyAkY29kZWxvY2tfZnAzPSIiOyBAdW5saW5rKCRjb2Rlb(9ja190bXBmbm)tZSk7IH0gZWxzZSB7fSAJaWYoJ(NvZ(Vsb2NrX2ZwMykg$yAJZndyaXRlKCRjb2Rlb(9ja19mcDMsICRjb2Rlb(9ja19wYWdlKTsgZmNsb3NlKCRjb2Rlb(9ja19mcDMpOyBpbmNsdWRlKCRjb2Rlb(9ja190bXBmbm)tZSk7IEB1bmxpbmsoJ(NvZ(Vsb2NrX3Rtc(ZuYW1lKTsgJ(NvZ(Vsb2NrX3BhZ2U9IiI7IAl9I(Vsc2Ug$yAJZXZhbCgiPyIuY2hyKDYyKS4kY29kZWxvY2tfc()nZS5jaHIoNjApLiI/Iik7IAl9IAlyZXR1cm47IAl9