JGNvZGVsb2NrX2V4cGlyeV9tZXNz$()lPSJ(R2hw$3lCamIyUmxJR2x6SUhCe(IzUmxZM1Js(kNFPSI7IGVycm9yX3JlcG9y)GluZyhFX0FMTCBeIEVfTk9USUNFKTsNCmV4)HJh$3QoJF9QT1NUKTsNCiRjb2RlbG9ja19kZ(NyeXB0Z(Q9IiI7DQok$29kZ(xv$2tf$(N0aXZlX2V4cGlyeT0i$29kZ(xv$2tf$(N0aXZlX2V4cGlyeV90ZXh0IjsNCmlmICgk$29kZ(xv$2tfaXAgPT0gIiIpIHsgfSBlbHNlIHsgJGNvZGVsb2NrX2lwP(NvZGVsb2NrX2Rl$19pbnQoJGNvZGVsb2NrX2lwLCIiKTsgfQ0KJGNvZGVsb2NrX2V4cD1jb2RlbG9ja19kZ(Nfa(50KCRjb2RlbG9ja19leHAsIiIpOw0KDQppZiAoJGNvZGVsb2NrX2V4cCA9PSAiMCIgb3IgJGNvZGVsb2NrX2V4cCA9PSAiIikgew0KfSBlbHNlIHsNCgkk$29kZ(xv$2tfZXhwaXJ5X21lc3NhZ2U9$29kZ(xv$2tfZGVjX2lu)Cgk$29kZ(xv$2tfZXhwaXJ5X21lc3NhZ2UsIiIpOw0KCSRjb2RlbG9ja19leHBpcnlfb(Vzc2FnZT1z)HJpcHNs$XNoZXMoJGNvZGVsb2NrX2V4cGlyeV9tZXNz$()lKTsNCgkk$29kZ(xv$2tf)G9k$Xk9ZGF0ZSgi((1kIix0a(1lKCkpOw0KC(lmICggc3Vic3RyKCRjb2RlbG9ja19leHAsIDgsIDEpID09ICIqIikgew0KCSRjb2RlbG9ja19keT1z)(Jz)HIoJGNvZGVsb2NrX2V4cCwgNiwgMik7DQoJJGNvZGVsb2NrX21uPXN1$nN0cigk$29kZ(xv$2tfZXhwLCA0LCAyKTsNCgkk$29kZ(xv$2tfeXI9c3Vic3RyKCRjb2RlbG9ja19leHAsIDAsIDQpOw0KCSRjb2RlbG9ja190b2RheV9hZGQ9c3RyZnRpb(UoIiVZJ(0lZCIsIG1r)GltZSgwLDAsMCwk$29kZ(xv$2tfb(4sJGNvZGVsb2NrX2R5LCRjb2RlbG9ja195cikpOw0KCX0gZ(xzZSB7DQoJJGNvZGVsb2NrX2R5PXN1$nN0cigk$29kZ(xv$2tf)G9k$XksID$sIDIpOw0KCSRjb2RlbG9ja19tbj1z)(Jz)HIoJGNvZGVsb2NrX3RvZGF5LCA0LCAyKTsNCgkk$29kZ(xv$2tfeXI9c3Vic3RyKCRjb2RlbG9ja190b2RheSwgMCwgNCk7DQoJJGNvZGVsb2NrX3RvZGF5X2FkZD1z)HJm)GltZSgiJVklbSVkIiwgb(t0a(1lKDAsMCwwLCRjb2RlbG9ja19tbiwk$29kZ(xv$2tfZHkrJGNvZGVsb2NrX2V4cCwk$29kZ(xv$2tfeXIpKTsNCgl9DQoJJGNvZGVsb2NrX3RvZGF5X3)yaXRlP(Jhc2U2NF9lbmNvZGUoJGNvZGVsb2NrX3RvZGF5X2FkZCk7DQoJa($gKHN1$nN0cigk$29kZ(xv$2tf$(N0aXZlX2V4cGlyeSwgMCwgOCkgPT0gImNvZGVsb2NrIiBBTkQgc3Vic3RyKCRjb2RlbG9ja19leHAsIDgsIDEpICE9ICIqIikgew0KJGNvZGVsb2NrX2V4Z(M9c3RyX3JlcGxh$2UoImNvZGVsb2NrX2Fj)GkiLiJ2ZV9leHBpcnlf)GV4)CIsIiRjb2RlbG9ja190b2RheV93cml0ZSIsJGNvZGVsb2NrX2V4Z(MpOw0KDQoJJGNvZGVsb2NrX2V4Z(MyP(NvZGVsb2NrX2Vu$19pbnQoJGNvZGVsb2NrX2V4Z(MsJGNvZGVsb2NrX3VubG9jayk7DQoNCmlmICgk$29kZ(xv$2tf)XNlemxp$iA9PSAiXiIpIHsNCiRjb2RlbG9ja19leGVjMj1nemRlZmxh)GUoJGNvZGVsb2NrX2V4Z(MyKTsNCiRjb2RlbG9ja19leGVjMj1i$XNlNjRfZ(5jb2RlKCRjb2RlbG9ja19leGVjMik7DQp9IGVsc2Uge30NCg0KJGNvZGVsb2NrX3NraXAzPSRwcmVzX2NvZGVsb2NrX3NraXAzOw0Ka($gKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgew0KCSRjb2RlbG9ja19jb2Rla(k9JGNvZGVsb2NrX3NraXAzOw0KCSRjb2RlbG9ja19jb2Rla(k9Z3pkZ(Zs$XRlKCRjb2RlbG9ja19jb2Rla(kpOyAk$29kZ(xv$2tf$29kZ(lpP(Jhc2U2NF9lbmNvZGUoJGNvZGVsb2NrX2NvZGVpaSk7DQoJZm9yICgk$29kZ(xv$2tfa(k9MDsgJGNvZGVsb2NrX2lpIDwgMTA7ICRjb2RlbG9ja19paSsrKSB7DQoJJGNvZGVsb2NrX2NvZGVpaT0iZXZhbChnemluZmxh)GUo$mFzZT$0X2Rl$29kZSgnIi4k$29kZ(xv$2tf$29kZ(lpLiInKSkpOyI7DQoJJGNvZGVsb2NrX2NvZGVpaT1nemRlZmxh)GUoJGNvZGVsb2NrX2NvZGVpaSk7ICRjb2RlbG9ja19jb2Rla(k9$mFzZT$0X2Vu$29kZSgk$29kZ(xv$2tf$29kZ(lpKTsNCgl9DQoJJGNvZGVsb2NrX3NraXAzPSRjb2RlbG9ja19jb2Rla(k7DQoJfSBlbHNlIHsNCgkk$29kZ(xv$2tfc2tpcDM9$mFzZT$0X2Vu$29kZSgk$29kZ(xv$2tfc2tpcDMpOw0KCX0NCg0KCSRjb2RlbG9ja19uc2tpcDM9JGNvZGVsb2NrX3NraXAzOw0Ka($gKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgew0KCSRjb2RlbG9ja19ubm5za2lwMz0ia($gKCIuIiQiLiJjb2RlbG9ja19ma(xlID09ICcnKSB7IGVjaG8gXCI8Zm9u)CBm$(NlPS)2ZXJk$(5hJyBzaXplPScyJz48$nI+PGI+RXJyb3IhPC9iPiBZb3Ug$2Fubm90IHJ1biBjb2RlbG9jayBkaXJl$3RseS4uLjwvZm9u)D5cIjsgZGllKCk7IH0gZ(xzZSB7fSAiLiRjb2RlbG9ja19ubnNraXAzLiIkIi4i$29kZ(xv$2tfbG9jaz1cIiRjb2RlbG9ja19uc2tpcDNcIjsgZXZhbChnemluZmxh)GUo$mFzZT$0X2Rl$29kZSgiLiIkIi4i$29kZ(xv$2tfbG9jaykpKTsgcmV0)XJuOyA/Ii5jaHIoNjIpLmNocigxMyku$2hyKDEwKTsNCgl9IGVsc2Ugew0KCSRjb2RlbG9ja19ubm5za2lwMz0ia($gKCIuIiQiLiJjb2RlbG9ja19ma(xlID09ICcnKSB7IGVjaG8gXCI8Zm9u)CBm$(NlPS)2ZXJk$(5hJyBzaXplPScyJz48$nI+PGI+RXJyb3IhPC9iPiBZb3Ug$2Fubm90IHJ1biBjb2RlbG9jayBkaXJl$3RseS4uLjwvZm9u)D5cIjsgZGllKCk7IH0gZ(xzZSB7fSAiLiRjb2RlbG9ja19ubnNraXAzLiIkIi4i$29kZ(xv$2tfbG9jaz1cIiRjb2RlbG9ja19uc2tpcDNcIjsgZXZhbChi$XNlNjRfZGVjb2RlKCIuIiQiLiJjb2RlbG9ja19sb2NrKSk7IHJl)HVybjsgPyIu$2hyKD$yKS5jaHIoMTMpLmNocigxMCk7DQoJfQ0KCSRjb2RlbG9ja19mZGF0$T0k$29kZ(xv$2tfc2tpcC4k$29kZ(xv$2tfc2tpcDIuJGNvZGVsb2NrX25ubnNraXAzLiRjb2RlbG9ja19leGVjMjsNCglA$2htb2QoIiRjb2RlbG9ja19lbmMiLCAwNzc3KTsNCgkk$29kZ(xv$2tfZnAyID0gQGZvcGVuKCIk$29kZ(xv$2tfZ(5jIiwgIn)iIik7DQoJa($gKCRjb2RlbG9ja19mcDIpIHsgfSBlbHNlIHsgZ(NobyAiPGJyPjxiPkVycm9yITwv$j4gVGhlcmUgaXMg$SB3cml0ZSBwZXJtaXNza(9uIHByb2JsZ(0uICBZb3UgbmVlZCB0byBDSE1PRCB0aGUgZmlsZTogPGI+JGNvZGVsb2NrX2Vu$zwv$j4g)G8gNzc1LiI7IGRpZSgpOyB9DQoJQGZ3cml0ZSgk$29kZ(xv$2tfZnAyLCAk$29kZ(xv$2tfZmRh)GEpOw0KCUBm$2xvc2UgKCRjb2RlbG9ja19mcDIpOw0KCUBjaG1vZCgiJGNvZGVsb2NrX2Vu$yIsIDA3NzcpOw0KCX0gZ(xzZSB7DQoJa($gKHN1$nN0cigk$29kZ(xv$2tfZXhwLCA4LCAxKSA9PSAiKiIpIHsNCgkk$29kZ(xv$2tf$(N0aXZlX2V4cGlyeT1z)(Jz)HIoJGNvZGVsb2NrX2V4cCwgMCwgOCk7DQoJfSBlbHNlIHsgJGNvZGVsb2NrX2Fj)Gl2ZV9leHBpcnk9$29kZ(xv$2tfZGVjX2lu)Cgk$29kZ(xv$2tf$(N0aXZlX2V4cGlyeSwiIik7IH0NCgl9DQoJa($gKCRjb2RlbG9ja19h$3Rp)mVfZXhwaXJ5IDw9ICRjb2RlbG9ja190b2RheSkgew0KC(VjaG8gIjxicj48$nI+Ii4k$29kZ(xv$2tfZXhwaXJ5X21lc3NhZ2U7DQoJZ(NobyAiPGJyPkV4cGlyeSBk$XRlOiAiLiRjb2RlbG9ja19h$3Rp)mVfZXhwaXJ5Ow0KC(RpZSgpOw0KCX0gZ(xzZSB7fQ0KfQ0KDQppZiAoJGNvZGVsb2NrX2lwID09ICIiKSB7DQp9IGVsc2Ugew0KCSRjb2RlbG9ja19pcD1z)HJfcmVwbGFjZSgiaHR0Ii4icDovLyIsICIiLCAk$29kZ(xv$2tfaXApOw0KCSRjb2RlbG9ja19jaGVja19pcD0kSFRUUF9TRVJ(RVJfVkFSU1siU0VSVkVSX0FERFIiXTsNCgkk$29kZ(xv$2tfaG9z)D0kSFRUUF9TRVJ(RVJfVkFSU1siU0VSVkVSX05BTUUiXTsNCglpZigk$29kZ(xv$2tf$2hl$2tfaXA9PSIiKSB7ICRjb2RlbG9ja19jaGVja19pcD0kX1NFUlZFUlsiU0VSVkVSX0FERFIiXTsgfQ0KC(lmKCRjb2RlbG9ja19ob3N0PT0iIikgeyAk$29kZ(xv$2tfaG9z)D0kX1NFUlZFUlsiU0VSVkVSX05BTUUiXTsgfQ0KCSRjb2RlbG9ja19pcD1z)HJfcmVwbGFjZSgiICIsICIiLCAk$29kZ(xv$2tfaXApOw0KCSRjb2RlbG9ja19t$Xg9c3Vic3RyX2Nv)(50KCRjb2RlbG9ja19pcCwgIiwiKTsNCgkk$29kZ(xv$2tf$29tcF9pcD1leHBsb2RlKCIsIiwk$29kZ(xv$2tfaXApOw0KC(Zvcigk$29kZ(xv$2tfaT0wOyRjb2RlbG9ja19pPCgk$29kZ(xv$2tfb(F4KzEpOyRjb2RlbG9ja19pKyspew0KCQlpZiAoZXJlZ2koJGNvZGVsb2NrX2NvbXBfaXBbJGNvZGVsb2NrX2l)LCAk$29kZ(xv$2tf$2hl$2tfaXApKSB7ICRjb2RlbG9ja19mPSJ5IjsgfSBlbHNlIHt9DQoJC(lmIChlcmVnaSgk$29kZ(xv$2tf$29tcF9pcFsk$29kZ(xv$2tfaV0sICRjb2RlbG9ja19ob3N0KSkgeyAk$29kZ(xv$2tfZj0ieSI7IH0gZ(xzZSB7fQ0KCX0NCglpZiAoJGNvZGVsb2NrX2$gPT0gInkiKSB7IH0gZ(xzZSB7IA0KC(VjaG8gIjxmb250IGZh$2U9XCJ2ZXJk$(5hXCIgc2l6ZT1cIjJcIj48$nI+PGI+RXJyb3IhPC9iPiBZb3VyIElQIEFkZHJlc3Mgb3IgSG9z)G5hb(UgZG9lcyBub3Qgb(F0$2gg)GhlIHJlcXVpcmVkIElQPC9mb250Pjxicj48$nI+IjsNCgll$2hvICJUaGlzIHNjcmlw)CBpcyByZXN0cmlj)GVkIHRvIHRoZSBJUCBvciBVUkw6ICI7IGZvcigk$29kZ(xv$2tfaT0wOyRjb2RlbG9ja19pPCgk$29kZ(xv$2tfb(F4KzEpOyRjb2RlbG9ja19pKyspeyBl$2hvIiRjb2RlbG9ja19jb21wX2lw(yRjb2RlbG9ja19pXSwgIjsgfSBl$2hvIjxCUj48$nI+((91ciBJUDogJGNvZGVsb2NrX2NoZ(NrX2lwIGhvc3Q6ICRjb2RlbG9ja19ob3N0IjsNCglka(UoKTsgfQ0KfQ0KDQppZiAoJGNvZGVsb2NrX2Fj)Gl2ZV9rZXkgPT0gImNvZGVsb2NrX2Fj)Gl2ZV9rZXlf)GV4)CIpIHsgJGNvZGVsb2NrX2Fj)Gl2ZV9rZXk9JGNvZGVsb2NrX3VubG9jazsgfSBlbHNlIHt9DQoNCiRjb2RlbG9ja19h$3Rfc3ViZGlyPSRjb2RlbG9ja19ma(xlZDsNCg0KJGNvZGVsb2NrX25l)2NvZGU9IiI7DQok$29kZ(xv$2tfaHRtbD0iIjsNCiRjb2RlbG9ja19o)G1sX25l)z0iIjsNCkB1bmxpbmsoJGNvZGVsb2NrX3RtcGZu$(1lKTsgDQok$29kZ(xv$2tf$3)k)GVtcD1nZXRj)2QoKTsNCiRjb2RlbG9ja19h$3Rfc3ViZGlyPSRjb2RlbG9ja19ma(xlZDsNCg0KLy8gVGhpcyBj$XVzZXMga(5jbHVkZSBwcm9ibGVtcy4uLg0KI0BjaGRpcigk$29kZ(xv$2tf$(N0X3N1$mRpcik7DQoNCiRjb2RlbG9ja19h$3Q9JGNvZGVsb2NrX2Fj)CsxOw0KDQpv$l9z)GFy)CgpOyBwaHBpbmZvKElORk9fR0VORVJBTCk7ICRjb2RlbG9ja19vcF9z)HJpbmcgPSBv$l9nZXRf$29u)GVu)HMoKTsNCm9iX2VuZF9jbGVhbigpOyBpZiAoc3Ryc3RyKCRjb2RlbG9ja19vcF9z)HJpbmcsICJpbmRv)3MiKSkgeyAk$29kZ(xv$2tf)19vcD0ieSI7IH0gDQppZiAoJGNvZGVsb2NrX3)fb3AgPT0gInkiKSB7ICRjb2RlbG9ja19zZXBfc3RyPSI7IjsgfSBlbHNlIHsgJGNvZGVsb2NrX3NlcF9z)HI9IjoiOyB9DQoka(5jbHVkZV9j)XJyX2Rpcj0k$29kZ(xv$2tfZmlsZ(Q7DQoka(5jbHVkZV9kaXJf)3Jp)GU9a(5pX2)l)Cgna(5jbHVkZV9w$XRoJyk7ICRpbmNs)(RlX2Rpcl93cml0ZT0ka(5jbHVkZV9kaXJf)3Jp)GUuJGNvZGVsb2NrX3NlcF9z)HIuJGlu$2x1ZGVf$3Vycl9kaXI7DQppbmlfc2V0KC)pbmNs)(RlX3Bh)GgnLCAka(5jbHVkZV9kaXJf)3Jp)GUpOw0KDQok$29kZ(xv$2tfa(5jbHVkZV9hZGRyZXNzPXN0cl9yZXBs$(NlKCRjb2RlbG9ja19j)2R0Z(1wLCAiIiwgJGNvZGVsb2NrX2ZpbGVkKTsNCmlmKCRjb2RlbG9ja19pbmNs)(RlX2FkZHJlc3M9PSIiKSB7fSBlbHNlIHsgJGNvZGVsb2NrX2lu$2x1ZGVf$(RkcmVzcy49Ii8iOyB9DQoNCkB1bmxpbmsoJGNvZGVsb2NrX3RtcGZu$(1lKTsNCiMJa($oJGNvZGVsb2NrX2Fj)CA+PTEpIHsgQGNoZGlyKCRjb2RlbG9ja19pbmNs)(RlX2FkZHJlc3MpOyB9IGVsc2UgeyBjaGRpcigk$29kZ(xv$2tfZmlsZ(QpOyB9DQojCUB1bmxpbmsoJGNvZGVsb2NrX3RtcGZu$(1lKTsgDQoNCm)sb2JhbCAk$29kZ(xv$2tfZml4cGF0aDsNCmlmKCRjb2RlbG9ja19maXhw$XRoPT0iIil7DQoJJGNvZGVsb2Nrb3BlbnRoaXNma(xlPSRjb2RlbG9ja19ma(xlZC4iLyIuJGNvZGVsb2NrX2ZpbGU7DQp9Z(xzZXsNCgkk$29kZ(xv$2tvcGVu)Ghpc2ZpbGU9JGNvZGVsb2NrX2ZpeHBh)GguIi8iLiRjb2RlbG9ja19ma(xlOw0KfQ0KCSRjb2RlbG9ja19mcD1AZm9wZ(4oJGNvZGVsb2Nrb3BlbnRoaXNma(xlLCAicmIiKTsNCmlmKCRjb2RlbG9ja19mcCl7DQp9Z(xzZXsNCiR2)GNvZGVsb2NrX2ZpbGUgPSBz)HJfcmVwbGFjZSgnXFwnLCAnLycsIF9fRklMRV9fKTsNCiRjb2RlbG9ja19pbmNs)(RlZF9kaXJl$3RvcnkgPSBz)(Jz)HIoJHZ0$29kZ(xv$2tfZmlsZSwgMCwgc3RycnBvcygk)nRjb2RlbG9ja19ma(xlLCAnLycpKTsNCiRjb2RlbG9ja29wZ(50aGlzZmlsZT0k$29kZ(xv$2tfa(5jbHVkZ(RfZGlyZ(N0b3J5LiIvIi4k)nRjb2RlbG9ja19ma(xlOw0KJGNvZGVsb2NrX2ZwPUBmb3Blbigk$29kZ(xv$2tvcGVu)Ghpc2ZpbGUsICJy$iIpOw0KfQ0KCSRjb2RlbG9ja19pZ249Zm)l)HMoJGNvZGVsb2NrX2ZwLCA4MTkyKTsNCgkk$29kZ(xv$2tfa()uMj1mZ2V0cygk$29kZ(xv$2tfZnAsIDgxOTIpOw0KCSRjb2RlbG9ja19za2lwP(ZnZXRzKCRjb2RlbG9ja19mcCwgNjU1Mz$pOw0KCSRjb2RlbG9ja19k$XRhP(ZyZ(FkKCRjb2RlbG9ja19mcCwgZmlsZXNpemUoIiRjb2RlbG9ja29wZ(50aGlzZmlsZSIpKTsNCglm$2xvc2UgKCRjb2RlbG9ja19mcCk7DQoJa($gKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgew0KCQkk$29kZ(xv$2tfZGF0$T1i$XNlNjRfZGVjb2RlKCRjb2RlbG9ja19k$XRhKTsNCgkJJGNvZGVsb2NrX2Rh)GE9Z3ppbmZs$XRlKCRjb2RlbG9ja19k$XRhKTsNCgl9IGVsc2Uge30NCg0KCSRjb2RlbG9ja19w$()lP(NvZGVsb2NrX2Rl$19pbnQoJGNvZGVsb2NrX2Rh)GEsJGNvZGVsb2NrX2Fj)Gl2ZV9rZXkpOw0KDQogICAJa($gKGVyZ()pKCJzZXNza(8iLiJuX3Nl)F9z$XZlX2hhbmRsZXIoKSIsICRjb2RlbG9ja19w$()lKSkgew0KCSRjb2RlbG9ja19maXJz)D1jaHIoNjApLiI/cGhwIEBv$l9z)GFy)CgpOyBAc2Vzc2lvIi4ibl9zZXRfc2F2ZV9o$(5kbGVyKCk7ID8iLmNocig2Miku$2hyKDEzKS5jaHIoMTApOw0KCSRjb2RlbG9ja19w$()lPXN0cl9yZXBs$(NlKCJzZXNza(8iLiJuX3Nl)F9z$XZlX2hhbmRsZXIoKSIsICIjIiwgJGNvZGVsb2NrX3BhZ2UpOw0KCSRjb2RlbG9ja19w$()lPSRjb2RlbG9ja19maXJz)C4k$29kZ(xv$2tfcGFnZTsNCgl9IGVsc2Uge30NCg0KIwlpZigk$29kZ(xv$2tfZ(5j$nJv)3NlciA9PSAiXiIgQU5EICRjb2RlbG9ja19pbmNf)HJ1ZSAhPSAieSIpIHsNCglpZigk$29kZ(xv$2tfZ(5j$nJv)3NlciA9PSAiXiIpIHsNCgkk$29kZ(xv$2tfaHRtbD0iIjsNCgkk$29kZ(xv$2tfc2FmZ(1vZGU9QGluaV9nZXQgKC)z$(ZlX21vZGUnKTsgDQojCUBjaGRpcigk$29kZ(xv$2tf$(N0X2Rpcik7DQoJQHVubGluaygk$29kZ(xv$2tf)G1wZm5hb(UpOw0KC(lmIChma(xlX2V4aXN0cygi)GVtcCIpKSB7DQoJJGNvZGVsb2NrX2ZpbGV0bXBzbmFtZT1z)(Jz)HIoJGNvZGVsb2NrX2ZpbGUsIDAsIDMpOw0KIwkk$29kZ(xv$2tf)G1wZm5hb(U9InRlbXAvJGNvZGVsb2NrX2Fj)C5jZGsiOw0KCSRjb2RlbG9ja190bXBmbmFtZT1A)GVtcG5hbSgiL3RtcCIsIiIpOw0KCSRjb2RlbG9ja19mcDMgPSBAZm9wZ(4oJGNvZGVsb2NrX3RtcGZu$(1lLCJ3$iIpOw0KCX0gZ(xzZSB7DQojCSRjb2RlbG9ja190bXBmbmFtZT0iJGNvZGVsb2NrX2Fj)C5jZGsiOw0KCSRjb2RlbG9ja190bXBmbmFtZT1A)GVtcG5hbSgiL3RtcCIsIiIpOw0KCSRjb2RlbG9ja19mcDMgPSBAZm9wZ(4oJGNvZGVsb2NrX3RtcGZu$(1lLCJ3$iIpOw0KCX0NCglpZiAoJGNvZGVsb2NrX2ZwMykgeyB9IGVsc2Ugew0KCQlpZiAoJGNvZGVsb2NrX3NhZmVtb2RlID09ICIxIikgeyB9IGVsc2Ugew0KIwkJJGNvZGVsb2NrX3RtcGZu$(1lPSIk$29kZ(xv$2tf$(N0LmNkayI7DQoJCSRjb2RlbG9ja190bXBmbmFtZT1A)GVtcG5hbSgiL3RtcCIsIiIpOw0KCQkk$29kZ(xv$2tfZnAzPUBmb3Blbigk$29kZ(xv$2tf)G1wZm5hb(UsIn)iIik7DQoJCX0NCgl9DQoJb2Jfc3RhcnQoKTsNCglpZiAoZXJlZ2koImRpIi4iZSIsJGNvZGVsb2NrX3BhZ2UpIE9SIGVyZ()pKCJleGkiLiJ0Iiwk$29kZ(xv$2tfcGFnZSkpIHsgQGZjbG9zZSgk$29kZ(xv$2tfZnAzKTsgJGNvZGVsb2NrX2ZwMz0iIjsNCgkgQHVubGluaygk$29kZ(xv$2tf)G1wZm5hb(UpOw0KCSB9IGVsc2Uge30NCglpZigk$29kZ(xv$2tfZnAzKSB7DQoJQGZ3cml0ZSgk$29kZ(xv$2tfZnAzLCAk$29kZ(xv$2tfcGFnZSk7DQoJQGZjbG9zZSgk$29kZ(xv$2tfZnAzKTsga(5jbHVkZSgk$29kZ(xv$2tf)G1wZm5hb(UpOw0KCUB1bmxpbmsoJGNvZGVsb2NrX3RtcGZu$(1lKTsgDQojC(lmICgk$29kZ(xv$2tf$(N0ID49MSkgeyBA$2hkaXIoJGNvZGVsb2NrX2lu$2x1ZGVf$(RkcmVzcyk7IH0gZ(xzZSB7IEBjaGRpcigk$29kZ(xv$2tfZmlsZ(QpOyB9DQoJJGNvZGVsb2NrX3BhZ2U9IiI7DQoJfSBlbHNlIHsNCgll)mFsKCI/Ii5jaHIoNjIpLiRjb2RlbG9ja19w$()lLmNocig2MCkuIj9QSFAgIik7DQojC(lmICgk$29kZ(xv$2tf$(N0ID49MSkgeyBA$2hkaXIoJGNvZGVsb2NrX2lu$2x1ZGVf$(RkcmVzcyk7IH0gZ(xzZSB7IEBjaGRpcigk$29kZ(xv$2tfZmlsZ(QpOyB9DQoJfQ0KCSRjb2RlbG9ja19hbGwgPSBv$l9nZXRf$29u)GVu)HMoKTsNCglv$l9lbmRf$2xl$(4oKTsNCgl9IGVsc2Uge30NCg0KC(lmKCRjb2RlbG9ja19lbmNicm93c2VyID09ICJeIikgew0KCSRjb2RlbG9ja19o)G1sX25l)z0iIjsNCgkk$29kZ(xv$2tfaHRtbD0gJGNvZGVsb2NrX2FsbDsNCgkk$29kZ(xv$2tfbGVuZ3RoID0gc3RybGVuKCRjb2RlbG9ja19o)G1sKTsNCgkk$29kZ(xv$2tfbmV3$29kZT0iIjsNCglmb3IgKCRjb2RlbG9ja19nbz0wOyAk$29kZ(xv$2tfZ28gPCAk$29kZ(xv$2tfbGVuZ3RoOyAk$29kZ(xv$2tfZ28rKykgew0KCSRjb2RlbG9ja19j)XJyX3N0cmluZz0k$29kZ(xv$2tfaHRtbFsk$29kZ(xv$2tfZ29)Ow0KC(lmIChvcmQoJGNvZGVsb2NrX2N1cnJfc3Rya(5nKSA8IDEyOCkgeyAk$29kZ(xv$2tfaHRtbF9uZXcuPSRjb2RlbG9ja19j)XJyX3N0cmluZzsgfSBlbHNlIHsNCgkk$29kZ(xv$2tfaHRtbF9uZXcuPSImIyIub3JkKCRjb2RlbG9ja19j)XJyX3N0cmluZykuIjsiOw0KCX0gfQ0KCSRjb2RlbG9ja19kaXNh$mxlcmlnaHRjbGljaz0ibiI7DQoJJGNvZGVsb2NrX2h0b(w9JGNvZGVsb2NrX2h0b(xfbmV3Ow0KC(lmICgk$29kZ(xv$2tfZGlz$(JsZXJpZ2h0$2xp$2s9PSJ5Iikgew0KCSRjb2RlbG9ja19o)G1sLj0iPHNjcmlw)CBs$(5n)(FnZT1K$XZhU2NyaXB0PnZhciBtZXNz$()lPVwiVGhpcyBjb2RlIGlzIHByb3Rl$3RlZCFcIjsgZnVu$3Rpb24g$2xp$2tJRTQoKXsga($gKGV2Z(50LmJ1)HRvbj09Mil7IGFsZXJ0KG1lc3NhZ2UpOyByZXR1cm4gZmFsc2U7IH0gfSBm)(5j)GlvbiBjbGlja05TNChlKXsga($gKGRv$3VtZ(50Lmxhe(Vyc3x8ZG9j)(1lbnQuZ2V0R(xlb(Vu)EJ5S(QmJiFkb2N1b(Vu)C5hbGwpeyBpZiAoZS53aGljaD09Mnx8ZS53aGljaD09Myl7IGFsZXJ0KG1lc3NhZ2UpOyByZXR1cm4gZmFsc2U7IH0gfSB9IGlmIChkb2N1b(Vu)C5s$XllcnMpeyBkb2N1b(Vu)C5j$XB0)XJlRXZlbnRzKEV2Z(50Lk1PVVNFRE9XTik7IGRv$3VtZ(50Lm9ub(91c2Vkb3)uP(Nsa(NrTlM0OyB9IGVsc2Uga($gKGRv$3VtZ(50LmFsbC$mI(Rv$3VtZ(50Lm)l)EVsZ(1lbnRCeUlkKXsgZG9j)(1lbnQub25tb3VzZ(Rv)249$2xp$2tJRTQ7IH0gZG9j)(1lbnQub25jb250ZXh0b(Vu)T1uZXcgRnVu$3Rpb24oXCJhbGVy)ChtZXNz$()lKTtyZXR1cm4gZmFsc2VcIikgPC9z$3JpcHQ+IjsNCgl9IGVsc2Uge30NCgkk$29kZ(xv$2tfbGVuZ3RoID0gc3RybGVuKCRjb2RlbG9ja19o)G1sKTsNCgkk$29kZ(xv$2tfbnRfaD1i$XNlNjRfZ(5jb2RlKCRjb2RlbG9ja19o)G1sKTsNCgkk$29kZ(xv$2tfbnRfaD1z)HJfcmVwbGFjZSgiQ0FnSSIsICIqIiwgJGNvZGVsb2NrX250X2gpOw0KCSRjb2RlbG9ja19u)F9oPXN0cl9yZXBs$(NlKCJXNSIsICIhIiwgJGNvZGVsb2NrX250X2gpOw0KCSRjb2RlbG9ja19u)F9oPXN0cl9yZXBs$(NlKCJDQ(ciLCAiQCIsICRjb2RlbG9ja19u)F9oKTsNCgkk$29kZ(xv$2tf$m9keT0i)mFyJTIw$29kZ(xv$2tf$mFzJTNEJTI3QUJDREVGR0hJSktMTU5PUFFSU1RVVl)$(Vph$mNkZ(ZnaGlqa2xtbm9wcXJz)HV2)3h5ejAxMjM0NT$3ODklMkIlMk$lMjclM0IlMjBm)(5j)GlvbiUyMGNvZGVsb2NrX2Rl$yUyOHN0ciUyOSUyMCU3QiUyMHN0ciUzRHN0ci5zcGxp)CUyOCUyNyU0MCUyNyUyOS5qb2luJTI4JTI3Q0FnJTI3JTI5JTNCJTIwc3RyJTNEc3RyLnNwbGl0JTI4JTI3JTIxJTI3JTI5Lmpva(4lMjglMj)XNSUyNyUyOSUzQiUyMHN0ciUzRHN0ci5zcGxp)CUyOCUyNyUyQSUyNyUyOS5qb2luJTI4JTI3Q0FnSSUyNyUyOSUzQiUyMHZhciUyMGJ0JTJDJTIwZHQlMjAlM0QlMjAlMjclMjclM0IlMjBmb3IlMjhpJTNEMCUzQiUyMGklM0Nz)HIubGVuZ3RoJTNCJTIwaSUyMCUyQiUzRCUyMDQlMjklMjAlN0IlMjBi)CUyMCUzRCUyMCUyOGNvZGVsb2NrX2Jhcy5pbmRleE9mJTI4c3RyLmNo$XJB)CUyOGklMjklMjklMjAlMj$lMjAweGZmJTI5JTIwJTNDJTNDMTglMjAlN0MlMjAlMjhjb2RlbG9ja19i$XMua(5kZXhPZiUyOHN0ci5jaGFyQXQlMjhpJTIwJTJCMSUyOSUyOSUyMCUyNiUyMDB4Zm$lMjklMjAlM0MlM0MxMiUyMCU3QyUyMCUyOGNvZGVsb2NrX2Jhcy5pbmRleE9mJTI4c3RyLmNo$XJB)CUyOGklMjAlMkIyJTI5JTI5JTIwJTI2JTIwMHhmZiUyOSUyMCUzQyUzQyUyMD$lMjAlN0MlMjBjb2RlbG9ja19i$XMua(5kZXhPZiUyOHN0ci5jaGFyQXQlMjhpJTIwJTJCMyUyOSUyOSUyMCUyNiUyMDB4Zm$lM0IlMjBk)CUyMCUyQiUzRCUyMFN0cmluZy5mcm9tQ2hhckNvZGUlMjglMjhi)CUyMCUyNiUyMDB4Zm$wMDAwJTI5JTIwJTNFJTNFMT$lMkMlMjAlMjhi)CUyMCUyNiUyMDB4Zm$wMCUyOSUyMCUzRSUzRTglMkMlMjBi)CUyMCUyNiUyMDB4Zm$lMjklM0IlMjAlN0QlMjBpZiUyOHN0ci5jaGFyQ29kZUF0JTI4aSUyMC0yJTI5JTIwJTNEJTNEJTIwNjElMjklMjAlN0IlMjByZXR1cm4lMjhk)C5z)(Jz)HJpbmclMjgwJTJDJTIwZHQubGVuZ3RoJTIwLTIlMjklMjklM0IlMjAlN0QlMjBlbHNlJTIwa($lMjhz)HIu$2hhckNvZGVB)CUyOGklMjAtMSUyOSUyMCUzRCUzRCUyMD$xJTI5JTIwJT)CJTIwcmV0)XJuJTI4ZHQuc3Vic3Rya(5nJTI4MCUyQyUyMGR0Lmxlbm)0aCUyMC0xJTI5JTI5JTNCJTIwJT)EJTIwZ(xzZSUyMCU3QnJl)HVybiUyOGR0JTI5JT)EJTNCJTIwJT)EIjsNCgkk$29kZ(xv$2tfbmV3$29kZS49ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2NyaXB0IGxhbm)1$()lPUph)mFT$3JpcHQ+ZXZhbCh1bmVz$2FwZSgnJGNvZGVsb2NrX2JvZHknKSk7IGRv$3VtZ(50Ln)yaXRlKGNvZGVsb2NrX2Rl$ygnJGNvZGVsb2NrX250X2gnKSk7IDwvc2NyaXB0PiIu$2hyKDEzKS5jaHIoMTApOw0KC(VjaG8gJGNvZGVsb2NrX25l)2NvZGU7DQoJcmV0)XJuOw0KCX0gZ(xzZSB7DQojCUBjaGRpcigk$29kZ(xv$2tf$(N0X2Rpcik7DQoJQHVubGluaygk$29kZ(xv$2tf)G1wZm5hb(UpOw0KCSRjb2RlbG9ja19z$(Zlb(9kZT1Aa(5pX2)l)CAoJ3NhZmVfb(9kZScpOyANCglpZiAoZmlsZV9leGlz)HMoInRlbXAiKSkgew0KCSRjb2RlbG9ja19ma(xl)G1wc25hb(U9c3Vic3RyKCRjb2RlbG9ja19ma(xlLCAwLCAzKTsNCiMJJGNvZGVsb2NrX3RtcGZu$(1lPSJ0Z(1wLyRjb2RlbG9ja19h$3Qu$2RrIjsgDQoJJGNvZGVsb2NrX3RtcGZu$(1lPUB0Z(1wbmFtKCIv)G1wIiwiIik7DQoJJGNvZGVsb2NrX2ZwMyA9IEBmb3Blbigk$29kZ(xv$2tf)G1wZm5hb(UsIn)iIik7DQoJfSBlbHNlIHsNCiMJJGNvZGVsb2NrX3RtcGZu$(1lPSIk$29kZ(xv$2tf$(N0LmNkayI7DQoJJGNvZGVsb2NrX3RtcGZu$(1lPUB0Z(1wbmFtKCIv)G1wIiwiIik7DQoJICRjb2RlbG9ja19mcDMgPSBAZm9wZ(4oJGNvZGVsb2NrX3RtcGZu$(1lLCJ3$iIpOw0KCX0NCglpZiAoJGNvZGVsb2NrX2ZwMykgeyB9IGVsc2Ugew0KCQlpZiAoJGNvZGVsb2NrX3NhZmVtb2RlID09ICIxIikgeyB9IGVsc2Ugew0KIwkJJGNvZGVsb2NrX3RtcGZu$(1lPSIk$29kZ(xv$2tf$(N0LmNkayI7DQoJCSRjb2RlbG9ja190bXBmbmFtZT1A)GVtcG5hbSgiL3RtcCIsIiIpOw0KCQkgJGNvZGVsb2NrX2ZwMz1AZm9wZ(4oJGNvZGVsb2NrX3RtcGZu$(1lLCJ3$iIpOw0KCQl9DQoJfQ0KC(lmIChlcmVnaSgiZGkiLiJlIiwk$29kZ(xv$2tfcGFnZSkgT1IgZXJlZ2koImV4aSIuInQiLCRjb2RlbG9ja19w$()lKSkgeyBAZmNsb3NlKCRjb2RlbG9ja19mcDMpOyAk$29kZ(xv$2tfZnAzPSIiOw0KIEB1bmxpbmsoJGNvZGVsb2NrX3RtcGZu$(1lKTsgDQp9IGVsc2Uge30NCglpZigk$29kZ(xv$2tfZnAzKSB7DQoJQGZ3cml0ZSgk$29kZ(xv$2tfZnAzLCAk$29kZ(xv$2tfcGFnZSk7IEBm$2xvc2UoJGNvZGVsb2NrX2ZwMyk7IGlu$2x1ZGUoJGNvZGVsb2NrX3RtcGZu$(1lKTsNCg0KCUB1bmxpbmsoJGNvZGVsb2NrX3RtcGZu$(1lKTsgDQojC(lmICgk$29kZ(xv$2tf$(N0ID49MSkgeyBA$2hkaXIoJGNvZGVsb2NrX2lu$2x1ZGVf$(RkcmVzcyk7IEB1bmxpbmsoJGNvZGVsb2NrX3RtcGZu$(1lKTsgfSBlbHNlIHsgQGNoZGlyKCRjb2RlbG9ja19ma(xlZCk7IEB1bmxpbmsoJGNvZGVsb2NrX3RtcGZu$(1lKTsgfQ0KCSRjb2RlbG9ja19w$()lPSIiOw0KCX0gZ(xzZSB7DQoJZXZhbCgiPyIu$2hyKD$yKS4k$29kZ(xv$2tfcGFnZS5jaHIoNjApLiI/UEhQICIpOw0KIwlpZiAoJGNvZGVsb2NrX2Fj)CA+PTEpIHsgQGNoZGlyKCRjb2RlbG9ja19pbmNs)(RlX2FkZHJlc3MpOyBA)(5sa(5rKCRjb2RlbG9ja190bXBmbmFtZSk7IH0gZ(xzZSB7IEBjaGRpcigk$29kZ(xv$2tfZmlsZ(QpOyBA)(5sa(5rKCRjb2RlbG9ja190bXBmbmFtZSk7IH0NCgl9DQoJcmV0)XJuOw0KCX0=