Advertisement
TienKiraBN

index

Jun 12th, 2015
375
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.13 KB | None | 0 0
  1. PGh0bWw+CjxoZWFkPjx0aXRsZT5IYWNrZWQgQnkgTW9uS2lyYTwvdGl0bGU+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgojdmlkZW9fYmFja2dyb3VuZCB7CnBvc2l0aW9uOiBhYnNvbHV0ZTsKYm90dG9tOiAwcHg7CnJpZ2h0OiAwcHg7Cm1pbi13aWR0aDogMTAwJTsKbWluLWhlaWdodDogMTAwJTsKd2lkdGg6IGF1dG87CmhlaWdodDogYXV0bzsKei1pbmRleDogLTEwMDA7Cm92ZXJmbG93OiBoaWRkZW47Cn0KPC9zdHlsZT48L2hlYWQ+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CmJvZHksIAphOmhvdmVyIHsKICAgIGN1cnNvcjogdXJsKGh0dHA6Ly9jdXIuY3Vyc29ycy00dS5uZXQvY3Vyc29ycy9jdXItOS9jdXI4NjIuYW5pKSwgCiAKaDF7CiAgICAgIGZvbnQtZmFtaWx5OiBJY2ViZXJnLCBzYW5zLXNlcmlmOwogICAgICBmb250LXNpemU6OTBweDsKICAgICAgY29sb3I6I2ZmZjsKICAgICAgbWFyZ2luOjBweCAwcHggMHB4Owp9Ci5mb3R7CiAgICAgIGZvbnQtZmFtaWx5OiBJY2ViZXJnLCBzYW5zLXNlcmlmOwogICAgICBmb250LXNpemU6MTRweDsKICAgICAgY29sb3I6I2ZmZjsKICAgICAgbWFyZ2luOiAwcHg7CiAgICAgIHRleHQtc2hhZG93OiAwIDAgM3B4ICMwMDAsIDBweCAwcHggNXB4ICMwMDA7Cn0KPC9zdHlsZT4KPHNjcmlwdD4KZnVuY3Rpb24gZGlzYWJsZXNlbGVjdChlKXtyZXR1cm4gZmFsc2V9CmZ1bmN0aW9uIHJlRW5hYmxlKCl7cmV0dXJuIHRydWV9Ci8vaWYgSUU0Kwpkb2N1bWVudC5vbnNlbGVjdHN0YXJ0PW5ldyBGdW5jdGlvbiAoInJldHVybiBmYWxzZSIpCi8vaWYgTlM2CmlmICh3aW5kb3cuc2lkZWJhcil7CmRvY3VtZW50Lm9ubW91c2Vkb3duPWRpc2FibGVzZWxlY3QKZG9jdW1lbnQub25jbGljaz1yZUVuYWJsZQp9CiAgdmFyIG1lc3NhZ2U9IiI7CiAgZnVuY3Rpb24gY2xpY2tJRSgpCnsKICBpZiAKICAgIChkb2N1bWVudC5hbGwpCiAgICAgIHsobWVzc2FnZSk7cmV0dXJuIGZhbHNlO319CiAgICBmdW5jdGlvbiBjbGlja05TKGUpIHsKICBpZgogIChkb2N1bWVudC5sYXllcnN8fChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCYmIWRvY3VtZW50LmFsbCkpCnsKaWYKICAoZS53aGljaD09Mnx8ZS53aGljaD09MykgeyhtZXNzYWdlKTtyZXR1cm4gZmFsc2U7fX19CmlmCiAgKGRvY3VtZW50LmxheWVycykKICB7ZG9jdW1lbnQuY2FwdHVyZUV2ZW50cyhFdmVudC5NT1VTRURPV04pO2RvY3VtZW50LiAgb25tb3VzZWRvd249Y2xpY2tOUzt9CmVsc2UKICB7ZG9jdW1lbnQub25tb3VzZXVwPWNsaWNrTlM7ZG9jdW1lbnQub25jb250ZXh0bWVudSAgPWNsaWNrSUU7fQpkb2N1bWVudC5vbmNvbnRleHRtZW51PW5ldyBGdW5jdGlvbigicmV0dXJuIGZhbHNlIikKPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4Kc2V0VGltZW91dCgiJCgnI2xvYWRpbmcnKS5mYWRlT3V0KDEwMDApOyIsIDIwMDApOwo8L3NjcmlwdD4KPGJvZHk+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CmgxIHtjb2xvcjogIzMzMztmb250LXNpemU6IDcwcHg7bWFyZ2luOiAxcHggYXV0bzt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGZvbnQtZmFtaWx5Ok9yYml0cm9uO30KLm5lb24ge2NvbG9yOiAjRkZGRkZGO3RleHQtc2hhZG93OiAwIDAgNXB4ICNGRjI3MDAsIDAgMCAxMHB4ICNGRjI3MDAsIDAgMCAzMHB4ICNGRjI3MDAsIDAgMCA0NXB4ICNGRjI3MDAsIDAgMCA2MHB4ICNGRjI3MDA7fQoKCmgyIHtjb2xvcjogIzMzMztmb250LXNpemU6IDUwcHg7bWFyZ2luOiAxcHggYXV0bzt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGZvbnQtZmFtaWx5Ok9yYml0cm9uO30KLm5lb24ge2NvbG9yOiAjRkZGRkZGO3RleHQtc2hhZG93OiAwIDAgNXB4ICNGRjI3MDAsIDAgMCAxMHB4ICNGRjI3MDAsIDAgMCAzMHB4ICNGRjI3MDAsIDAgMCA0NXB4ICNGRjI3MDAsIDAgMCA2MHB4ICNGRjI3MDA7fQoKaDMge2NvbG9yOiAjMzMzO2ZvbnQtc2l6ZTogNTBweDttYXJnaW46IDFweCBhdXRvO3RleHQtYWxpZ246Y2VudGVyO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgZm9udC1mYW1pbHk6T3JiaXRyb247fQoubmVvbiB7Y29sb3I6ICNGRkZGRkY7dGV4dC1zaGFkb3c6IDAgMCA1cHggI0ZGMjcwMCwgMCAwIDEwcHggI0ZGMjcwMCwgMCAwIDMwcHggI0ZGMjcwMCwgMCAwIDQ1cHggI0ZGMjcwMCwgMCAwIDYwcHggI0ZGMjcwMDt9CgoKaDQge2NvbG9yOiAjRkYwMDAwO2ZvbnQtc2l6ZTogMjBweDttYXJnaW46IDFweCBhdXRvO3RleHQtYWxpZ246Y2VudGVyO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgZm9udC1mYW1pbHk6T3JiaXRyb247fQoubmVvbiB7Y29sb3I6ICNGRkZGRkY7dGV4dC1zaGFkb3c6IDAgMCA1cHggI0ZGMjcwMCwgMCAwIDEwcHggI0ZGMjcwMCwgMCAwIDMwcHggI0ZGMjcwMCwgMCAwIDQ1cHggI0ZGMjcwMCwgMCAwIDYwcHggI0ZGMjcwMDt9CgoKLm1hdHJpeCB7YmFja2dyb3VuZC1jb2xvcjpibGFjazsgY29sb3I6IHdoaXRlOyBmb250LWZhbWlseTpBcmlhbCwgQ291cmllciwgTW9ub3R5cGU7IGZvbnQtc2l6ZToxMHB0OyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6MTBweDsgcGFkZGluZzowcHg7IG1hcmdpbjowcHg7fQouam9raXR6MXsKCXRleHQtYWxpZ24gOiBjZW50ZXI7Cgl9Ci5qb2tpdHoyewoJdGV4dC1hbGlnbiA6IGNlbnRlcjsKCWZvbnQtZmFtaWx5IDogQ291cmllcjsKCX0KPC9zdHlsZT4KCgkgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4KCgoKPCEtLQoKdmFyIHJvd3M9MTsgLy8gbXVzdCBiZSBhbiBvZGQgbnVtYmVyCgp2YXIgc3BlZWQ9NTsgLy8gbG93ZXIgaXMgZmFzdGVyCgp2YXIgcmV2ZWFsPTI7IC8vIGJldHdlZW4gMCBhbmQgMiBvbmx5LiBUaGUgaGlnaGVyLCB0aGUgZmFzdGVyIHRoZSB3b3JkIGFwcGVhcnMKCnZhciBlZmZlY3RhbGlnbj0iY2VudGVyIiAvL2VudGVyICJjZW50ZXIiIHRvIGNlbnRlciBpdC4KCnZhciB3M2M9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQgJiYgIXdpbmRvdy5vcGVyYTs7Cgp2YXIgaWU0NT1kb2N1bWVudC5hbGwgJiYgIXdpbmRvdy5vcGVyYTsKCnZhciBtYV90YWIsIG1hdGVtcCwgbWFfYm9kLCBtYV9yb3csIHgsIHksIGNvbHVtbnMsIG1hX3R4dCwgbWFfY2hvOwoKdmFyIG1fY29jaD1uZXcgQXJyYXkoKTsKCnZhciBtX2NvcG89bmV3IEFycmF5KCk7Cgp3aW5kb3cub25sb2FkPWZ1bmN0aW9uKCkgewoKCWlmICghdzNjICYmICFpZTQ1KSByZXR1cm4KCiAgdmFyIG1hdHJpeD0odzNjKT9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWF0cml4Iik6ZG9jdW1lbnQuYWxsWyJtYXRyaXgiXTsKCiAgbWFfdHh0PSh3M2MpP21hdHJpeC5maXJzdENoaWxkLm5vZGVWYWx1ZTptYXRyaXguaW5uZXJIVE1MOwoKICBtYV90eHQ9IiAiK21hX3R4dCsiICI7CgogIGNvbHVtbnM9bWFfdHh0Lmxlbmd0aDsKCiAgaWYgKHczYykgewoKICAgIHdoaWxlIChtYXRyaXguY2hpbGROb2Rlcy5sZW5ndGgpIG1hdHJpeC5yZW1vdmVDaGlsZChtYXRyaXguY2hpbGROb2Rlc1swXSk7CgogICAgbWFfdGFiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRhYmxlIik7CgogICAgbWFfdGFiLnNldEF0dHJpYnV0ZSgiYm9yZGVyIiwgMCk7CgogICAgbWFfdGFiLnNldEF0dHJpYnV0ZSgiYWxpZ24iLCBlZmZlY3RhbGlnbik7CgogICAgbWFfdGFiLnN0eWxlLmJhY2tncm91bmRDb2xvcj0iIzAwMDAwMCI7CgogICAgbWFfYm9kPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRib2R5Iik7CgogICAgZm9yICh4PTA7IHg8cm93czsgeCsrKSB7CgogICAgICBtYV9yb3c9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKTsKCiAgICAgIGZvciAoeT0wOyB5PGNvbHVtbnM7IHkrKykgewoKICAgICAgICBtYXRlbXA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKTsKCiAgICAgICAgbWF0ZW1wLnNldEF0dHJpYnV0ZSgiaWQiLCAiTXgiK3grInkiK3kpOwoKICAgICAgICBtYXRlbXAuY2xhc3NOYW1lPSJtYXRyaXgiOwoKICAgICAgICBtYXRlbXAuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoU3RyaW5nLmZyb21DaGFyQ29kZSgxNjApKSk7CgogICAgICAgIG1hX3Jvdy5hcHBlbmRDaGlsZChtYXRlbXApOwoKICAgICAgfQoKICAgICAgbWFfYm9kLmFwcGVuZENoaWxkKG1hX3Jvdyk7CgogICAgfQoKICAgIG1hX3RhYi5hcHBlbmRDaGlsZChtYV9ib2QpOwoKICAgIG1hdHJpeC5hcHBlbmRDaGlsZChtYV90YWIpOwoKICB9IGVsc2UgewoKICAgIG1hX3RhYj0nPHRhJysnYmxlIGFsaWduPSInK2VmZmVjdGFsaWduKyciIGJvcmRlcj0iMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IzAwMDAwMCI+JzsKCiAgICBmb3IgKHZhciB4PTA7IHg8cm93czsgeCsrKSB7CgogICAgICBtYV90YWIrPSc8dCcrJ3I+JzsKCiAgICAgIGZvciAodmFyIHk9MDsgeTxjb2x1bW5zOyB5KyspIHsKCiAgICAgICAgbWFfdGFiKz0nPHQnKydkIGNsYXNzPSJtYXRyaXgiIGlkPSJNeCcreCsneScreSsnIj4gPC8nKyd0ZD4nOwoKICAgICAgfQoKICAgICAgbWFfdGFiKz0nPC8nKyd0cj4nOwoKICAgIH0KCiAgICBtYV90YWIrPSc8LycrJ3RhYmxlPic7CgogICAgbWF0cml4LmlubmVySFRNTD1tYV90YWI7CgogIH0KCiAgbWFfY2hvPW1hX3R4dDsKCiAgZm9yICh4PTA7IHg8Y29sdW1uczsgeCsrKSB7CgogICAgbWFfY2hvKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDMyK01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo5NCkpOwoKICAgIG1fY29wb1t4XT0wOwoKICB9CgogIG1hX2JvZD1zZXRJbnRlcnZhbCgibXl0cmlja3MoKSIsIHNwZWVkKTsKCn0KCgoKZnVuY3Rpb24gbXl0cmlja3MoKSB7CgogIHg9MDsKCiAgZm9yICh5PTA7IHk8Y29sdW1uczsgeSsrKSB7CgogICAgeD14KyhtX2NvcG9beV09PTEwMCk7CgogICAgbWFfcm93PW1fY29wb1t5XSUxMDA7CgogICAgaWYgKG1hX3JvdyAmJiBtX2NvcG9beV08MTAwKSB7CgogICAgICBpZiAobWFfcm93PHJvd3MrMSkgewoKICAgICAgICBpZiAodzNjKSB7CgogICAgICAgICAgbWF0ZW1wPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJNeCIrKG1hX3Jvdy0xKSsieSIreSk7CgogICAgICAgICAgbWF0ZW1wLmZpcnN0Q2hpbGQubm9kZVZhbHVlPW1fY29jaFt5XTsKCiAgICAgICAgfQoKICAgICAgICBlbHNlIHsKCiAgICAgICAgICBtYXRlbXA9ZG9jdW1lbnQuYWxsWyJNeCIrKG1hX3Jvdy0xKSsieSIreV07CgogICAgICAgICAgbWF0ZW1wLmlubmVySFRNTD1tX2NvY2hbeV07CgogICAgICAgIH0KCiAgICAgICAgbWF0ZW1wLnN0eWxlLmNvbG9yPSIjODFGMkZGIjsKCiAgICAgICAgbWF0ZW1wLnN0eWxlLmZvbnRXZWlnaHQ9ImJvbGQiOwoKICAgICAgfQoKICAgICAgaWYgKG1hX3Jvdz4xICYmIG1hX3Jvdzxyb3dzKzIpIHsKCiAgICAgICAgbWF0ZW1wPSh3M2MpP2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJNeCIrKG1hX3Jvdy0yKSsieSIreSk6ZG9jdW1lbnQuYWxsWyJNeCIrKG1hX3Jvdy0yKSsieSIreV07CgogICAgICAgIG1hdGVtcC5zdHlsZS5mb250V2VpZ2h0PSJub3JtYWwiOwoKICAgICAgICBtYXRlbXAuc3R5bGUuY29sb3I9IiMwMEJCRkYiOwoKICAgICAgfQoKICAgICAgaWYgKG1hX3Jvdz4yKSB7CgogICAgICAgICAgbWF0ZW1wPSh3M2MpP2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJNeCIrKG1hX3Jvdy0zKSsieSIreSk6ZG9jdW1lbnQuYWxsWyJNeCIrKG1hX3Jvdy0zKSsieSIreV07CgogICAgICAgIG1hdGVtcC5zdHlsZS5jb2xvcj0iIzIwRkZEQSI7CgogICAgICB9CgogICAgICBpZiAobWFfcm93PE1hdGguZmxvb3Iocm93cy8yKSsxKSBtX2NvcG9beV0rKzsKCiAgICAgIGVsc2UgaWYgKG1hX3Jvdz09TWF0aC5mbG9vcihyb3dzLzIpKzEgJiYgbV9jb2NoW3ldPT1tYV90eHQuY2hhckF0KHkpKSB6b29tZXIoeSk7CgogICAgICBlbHNlIGlmIChtYV9yb3c8cm93cysyKSBtX2NvcG9beV0rKzsKCiAgICAgIGVsc2UgaWYgKG1fY29wb1t5XTwxMDApIG1fY29wb1t5XT0wOwoKICAgIH0KCiAgICBlbHNlIGlmIChNYXRoLnJhbmRvbSgpPjAuOSAmJiBtX2NvcG9beV08MTAwKSB7CgogICAgICBtX2NvY2hbeV09bWFfY2hvLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqbWFfY2hvLmxlbmd0aCkpOwoKICAgICAgbV9jb3BvW3ldKys7CgogICAgfQoKICB9CgogIGlmICh4PT1jb2x1bW5zKSBjbGVhckludGVydmFsKG1hX2JvZCk7Cgp9CgoKCmZ1bmN0aW9uIHpvb21lcih5Y29sKSB7CgogIHZhciBtdG1wLCBtdGVtLCB5dG1wOwoKICBpZiAobV9jb3BvW3ljb2xdPT1NYXRoLmZsb29yKHJvd3MvMikrMSkgewoKICAgIGZvciAoeXRtcD0wOyB5dG1wPHJvd3M7IHl0bXArKykgewoKICAgICAgaWYgKHczYykgewoKICAgICAgICBtdG1wPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJNeCIreXRtcCsieSIreWNvbCk7CgogICAgICAgIG10bXAuZmlyc3RDaGlsZC5ub2RlVmFsdWU9bV9jb2NoW3ljb2xdOwoKICAgICAgfQoKICAgICAgZWxzZSB7CgogICAgICAgIG10bXA9ZG9jdW1lbnQuYWxsWyJNeCIreXRtcCsieSIreWNvbF07CgogICAgICAgIG10bXAuaW5uZXJIVE1MPW1fY29jaFt5Y29sXTsKCiAgICAgIH0KCiAgICAgIG10bXAuc3R5bGUuY29sb3I9IiM1QkVFRkYiOwoKICAgICAgbXRtcC5zdHlsZS5mb250V2VpZ2h0PSJib2xkIjsKCiAgICB9CgogICAgaWYgKE1hdGgucmFuZG9tKCk8cmV2ZWFsKSB7CgogICAgICBtdG1wPW1hX2Noby5pbmRleE9mKG1hX3R4dC5jaGFyQXQoeWNvbCkpOwoKICAgICAgbWFfY2hvPW1hX2Noby5zdWJzdHJpbmcoMCwgbXRtcCkrbWFfY2hvLnN1YnN0cmluZyhtdG1wKzEsIG1hX2Noby5sZW5ndGgpOwoKICAgIH0KCiAgICBpZiAoTWF0aC5yYW5kb20oKTxyZXZlYWwtMSkgbWFfY2hvPW1hX2Noby5zdWJzdHJpbmcoMCwgbWFfY2hvLmxlbmd0aC0xKTsKCiAgICBtX2NvcG9beWNvbF0rPTE5OTsKCiAgICBzZXRUaW1lb3V0KCJ6b29tZXIoIit5Y29sKyIpIiwgc3BlZWQpOwoKICB9CgogIGVsc2UgaWYgKG1fY29wb1t5Y29sXT4yMDApIHsKCiAgICBpZiAodzNjKSB7CgogICAgICBtdG1wPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJNeCIrKG1fY29wb1t5Y29sXS0yMDEpKyJ5Iit5Y29sKTsKCiAgICAgIG10ZW09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIk14IisoMjAwK3Jvd3MtbV9jb3BvW3ljb2xdLS0pKyJ5Iit5Y29sKTsKCiAgICB9CgogICAgZWxzZSB7CgogICAgICBtdG1wPWRvY3VtZW50LmFsbFsiTXgiKyhtX2NvcG9beWNvbF0tMjAxKSsieSIreWNvbF07CgogICAgICBtdGVtPWRvY3VtZW50LmFsbFsiTXgiKygyMDArcm93cy1tX2NvcG9beWNvbF0tLSkrInkiK3ljb2xdOwoKICAgIH0KCiAgICBtdG1wLnN0eWxlLmZvbnRXZWlnaHQ9Im5vcm1hbCI7CgogICAgbXRlbS5zdHlsZS5mb250V2VpZ2h0PSJub3JtYWwiOwoKICAgIHNldFRpbWVvdXQoInpvb21lcigiK3ljb2wrIikiLCBzcGVlZCk7CgogIH0KCiAgZWxzZSBpZiAobV9jb3BvW3ljb2xdPT0yMDApIG1fY29wb1t5Y29sXT0xMDArTWF0aC5mbG9vcihyb3dzLzIpOwoKICBpZiAobV9jb3BvW3ljb2xdPjEwMCAmJiBtX2NvcG9beWNvbF08MjAwKSB7CgogICAgaWYgKHczYykgewoKICAgICAgbXRtcD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiTXgiKyhtX2NvcG9beWNvbF0tMTAxKSsieSIreWNvbCk7CgogICAgICBtdG1wLmZpcnN0Q2hpbGQubm9kZVZhbHVlPVN0cmluZy5mcm9tQ2hhckNvZGUoMTYwKTsKCiAgICAgIG10ZW09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIk14IisoMTAwK3Jvd3MtbV9jb3BvW3ljb2xdLS0pKyJ5Iit5Y29sKTsKCiAgICAgIG10ZW0uZmlyc3RDaGlsZC5ub2RlVmFsdWU9U3RyaW5nLmZyb21DaGFyQ29kZSgxNjApOwoKICAgIH0KCiAgICBlbHNlIHsKCiAgICAgIG10bXA9ZG9jdW1lbnQuYWxsWyJNeCIrKG1fY29wb1t5Y29sXS0xMDEpKyJ5Iit5Y29sXTsKCiAgICAgIG10bXAuaW5uZXJIVE1MPVN0cmluZy5mcm9tQ2hhckNvZGUoMTYwKTsKCiAgICAgIG10ZW09ZG9jdW1lbnQuYWxsWyJNeCIrKDEwMCtyb3dzLW1fY29wb1t5Y29sXS0tKSsieSIreWNvbF07CgogICAgICBtdGVtLmlubmVySFRNTD1TdHJpbmcuZnJvbUNoYXJDb2RlKDE2MCk7CgogICAgfQoKICAgIHNldFRpbWVvdXQoInpvb21lcigiK3ljb2wrIikiLCBzcGVlZCk7CgogIH0KCiAgCgogIC8vc3RhcnQKCnZhciBoMSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoMSIpWzBdLAoKdGV4dCA9IGgxLmlubmVyVGV4dCB8fCBoMS50ZXh0Q29udGVudCwKCnNwbGl0ID0gW10sIGksIGxpdCA9IDAsIHRpbWVyID0gbnVsbDsKCmZvcihpID0gMDsgaSA8IHRleHQubGVuZ3RoOyArK2kpIHsKCnNwbGl0LnB1c2goIjxzcGFuPiIgKyB0ZXh0W2ldICsgIjwvc3Bhbj4iKTsKCn0KCmgxLmlubmVySFRNTCA9IHNwbGl0LmpvaW4oIiIpOwoKc3BsaXQgPSBoMS5jaGlsZE5vZGVzOwoKCgp2YXIgZmxpY2tlciA9IGZ1bmN0aW9uKCkgewoKbGl0ICs9IDAuMDE7CgppZihsaXQgPj0gMSkgewoKY2xlYXJJbnRlcnZhbCh0aW1lcik7Cgp9Cgpmb3IoaSA9IDA7IGkgPCBzcGxpdC5sZW5ndGg7ICsraSkgewoKaWYoTWF0aC5yYW5kb20oKSA8IGxpdCkgewoKc3BsaXRbaV0uY2xhc3NOYW1lID0gIm5lb24iOwoKfSBlbHNlIHsKCnNwbGl0W2ldLmNsYXNzTmFtZSA9ICIiOwoKfQoKfQoKfQoKc2V0SW50ZXJ2YWwoZmxpY2tlciwgMTAwKTsKCgoKfQoKLy9zdHJhdCBzZWMKCgoKLy8gZW5kICAtLT4KCjwvc2NyaXB0Pgo8L2hlYWQ+CjxjZW50ZXI+Cgo8YnI+PGJyPjxicj48YnI+CjxoMSBjbGFzcz0ic3R5bGU2Ij48Yj5IYWNrZWQgQnkgTW9uS2lyYTxiPiA8L2gxPgoKCjxicj48YnI+CjxkaXYgY2xhc3M9ImF1dG8tc3R5bGU4IHN0eWxlMiIgaWQ9Im1hdHJpeCI+U2VjdXJpdHkgaXMgIkdPT0QiPC9kaXY+CjxtZXRhIGh0dHAtZXF1aXY9Q29udGVudC1UeXBlIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS05Ij4KCjxzdHlsZT4KPCEtLWJvZHkKCXttaW4td2lkdGg6NjUwcHg7CgliYWNrZ3JvdW5kLWNsaXA6Ym94OwoJYmFja2dyb3VuZC1vcmlnaW46cGFkZGluZy1ib3g7CgliYWNrZ3JvdW5kLXNpemU6Y292ZXI7CgliYWNrZ3JvdW5kLXBvc2l0aW9uLXg6NTAlOwoJYmFja2dyb3VuZC1wb3NpdGlvbi15OjUwJTsKCWJhY2tncm91bmQtYXR0YWNobWVudDpmaXhlZDt9CgogLyogRm9udCBEZWZpbml0aW9ucyAqLwogQGZvbnQtZmFjZQoJe2ZvbnQtZmFtaWx5OmNhbGlicmk7CglwYW5vc2UtMTowIDAgMCAwIDAgMCAwIDAgMCAwOwoJbXNvLWZvbnQtYWx0OiJUaW1lcyBOZXcgUm9tYW4iOwoJbXNvLWZvbnQtY2hhcnNldDowOwoJbXNvLWdlbmVyaWMtZm9udC1mYW1pbHk6cm9tYW47Cgltc28tZm9udC1mb3JtYXQ6b3RoZXI7Cgltc28tZm9udC1waXRjaDphdXRvOwoJbXNvLWZvbnQtc2lnbmF0dXJlOjAgMCAwIDAgMCAwO30KIC8qIFN0eWxlIERlZmluaXRpb25zICovCiBwLk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsCgl7bXNvLXN0eWxlLXBhcmVudDoiIjsKCW1hcmdpbjowY207CgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7Cgltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47Cglmb250LXNpemU6MTIuMHB0OwoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7Cgltc28tZmFyZWFzdC1mb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjt9CnAubWV0aW4sIGxpLm1ldGluLCBkaXYubWV0aW4KCXttc28tc3R5bGUtbmFtZTptZXRpbjsKCW1hcmdpbjowY207CgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7Cgltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47Cglmb250LXNpemU6MTIuMHB0OwoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7Cgltc28tZmFyZWFzdC1mb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjt9CnNwYW4uU3BlbGxFCgl7bXNvLXN0eWxlLW5hbWU6IiI7Cgltc28tc3BsLWU6eWVzO30Kc3Bhbi5HcmFtRQoJe21zby1zdHlsZS1uYW1lOiIiOwoJbXNvLWdyYW0tZTp5ZXM7fQpAcGFnZSBTZWN0aW9uMQoJe3NpemU6NTk1LjNwdCA4NDEuOXB0OwoJbWFyZ2luOjcwLjg1cHQgNzAuODVwdCA3MC44NXB0IDcwLjg1cHQ7Cgltc28taGVhZGVyLW1hcmdpbjozNS40cHQ7Cgltc28tZm9vdGVyLW1hcmdpbjozNS40cHQ7Cgltc28tcGFwZXItc291cmNlOjA7fQpkaXYuU2VjdGlvbjEKCXtwYWdlOlNlY3Rpb24xO30KCgphIHsKY29sb3I6cmVkOwp9CgoubWV0aW4gewoKbWFyZ2luOjBweCBhdXRvOwp3aWR0aDogNjAwcHg7CnRleHQtYWxpZ246Y2VudGVyOwoKfQouc3R5bGUxIHtjb2xvcjogI0ZGRkZGRn0KLnN0eWxlMyB7Cglmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKCWZvbnQtc2l6ZTogMTJweDsKfQogICAgI194MDAwMF9pMTAyNQogICAgewogICAgICAgIGhlaWdodDogMjY5cHg7CiAgICAgICAgd2lkdGg6IDU3MXB4OwogICAgfQotLT4KPC9zdHlsZT4KCjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiPgpUeXBpbmdUZXh0ID0gZnVuY3Rpb24oZWxlbWVudCwgaW50ZXJ2YWwsIGN1cnNvciwgZmluaXNoZWRDYWxsYmFjaykgewppZigodHlwZW9mIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkID09ICJ1bmRlZmluZWQiKSB8fCAodHlwZW9mIGVsZW1lbnQuaW5uZXJIVE1MID09ICJ1bmRlZmluZWQiKSkgewp0aGlzLnJ1bm5pbmcgPSB0cnVlOyAvLyBOZXZlciBydW4uCnJldHVybjsKfQp0aGlzLmVsZW1lbnQgPSBlbGVtZW50Owp0aGlzLmZpbmlzaGVkQ2FsbGJhY2sgPSAoZmluaXNoZWRDYWxsYmFjayA/IGZpbmlzaGVkQ2FsbGJhY2sgOiBmdW5jdGlvbigpIHsgcmV0dXJuOyB9KTsKdGhpcy5pbnRlcnZhbCA9ICh0eXBlb2YgaW50ZXJ2YWwgPT0gInVuZGVmaW5lZCIgPyA1MCA6IGludGVydmFsKTsKdGhpcy5vcmlnVGV4dCA9IHRoaXMuZWxlbWVudC5pbm5lckhUTUw7CnRoaXMudW5wYXJzZWRPcmlnVGV4dCA9IHRoaXMub3JpZ1RleHQ7CnRoaXMuY3Vyc29yID0gKGN1cnNvciA/IGN1cnNvciA6ICIiKTsKdGhpcy5jdXJyZW50VGV4dCA9ICIiOwp0aGlzLmN1cnJlbnRDaGFyID0gMDsKdGhpcy5lbGVtZW50LnR5cGluZ1RleHQgPSB0aGlzOwppZih0aGlzLmVsZW1lbnQuaWQgPT0gIiIpIHRoaXMuZWxlbWVudC5pZCA9ICJ0eXBpbmd0ZXh0IiArIFR5cGluZ1RleHQuY3VycmVudEluZGV4Kys7ClR5cGluZ1RleHQuYWxsLnB1c2godGhpcyk7CnRoaXMucnVubmluZyA9IGZhbHNlOwp0aGlzLmluVGFnID0gZmFsc2U7CnRoaXMudGFnQnVmZmVyID0gIiI7CnRoaXMuaW5IVE1MRW50aXR5ID0gZmFsc2U7CnRoaXMuSFRNTEVudGl0eUJ1ZmZlciA9ICIiOwp9ClR5cGluZ1RleHQuYWxsID0gbmV3IEFycmF5KCk7ClR5cGluZ1RleHQuY3VycmVudEluZGV4ID0gMDsKVHlwaW5nVGV4dC5ydW5BbGwgPSBmdW5jdGlvbigpIHsKZm9yKHZhciBpID0gMDsgaSA8IFR5cGluZ1RleHQuYWxsLmxlbmd0aDsgaSsrKSBUeXBpbmdUZXh0LmFsbFtpXS5ydW4oKTsKfQpUeXBpbmdUZXh0LnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbigpIHsKaWYodGhpcy5ydW5uaW5nKSByZXR1cm47CmlmKHR5cGVvZiB0aGlzLm9yaWdUZXh0ID09ICJ1bmRlZmluZWQiKSB7CnNldFRpbWVvdXQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciICsgdGhpcy5lbGVtZW50LmlkICsgIicpLnR5cGluZ1RleHQucnVuKCkiLCB0aGlzLmludGVydmFsKTsgLy8gV2UgaGF2ZW4ndCBmaW5pc2hlZCBsb2FkaW5nIHlldC4gSGF2ZSBwYXRpZW5jZS4KcmV0dXJuOwp9CmlmKHRoaXMuY3VycmVudFRleHQgPT0gIiIpIHRoaXMuZWxlbWVudC5pbm5lckhUTUwgPSAiIjsKLy8gdGhpcy5vcmlnVGV4dCA9IHRoaXMub3JpZ1RleHQucmVwbGFjZSgvPChbXjxdKSo+LywgIiIpOyAvLyBTdHJpcCBIVE1MIGZyb20gdGV4dC4KaWYodGhpcy5jdXJyZW50Q2hhciA8IHRoaXMub3JpZ1RleHQubGVuZ3RoKSB7CmlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICI8IiAmJiAhdGhpcy5pblRhZykgewp0aGlzLnRhZ0J1ZmZlciA9ICI8IjsKdGhpcy5pblRhZyA9IHRydWU7CnRoaXMuY3VycmVudENoYXIrKzsKdGhpcy5ydW4oKTsKcmV0dXJuOwp9IGVsc2UgaWYodGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcikgPT0gIj4iICYmIHRoaXMuaW5UYWcpIHsKdGhpcy50YWdCdWZmZXIgKz0gIj4iOwp0aGlzLmluVGFnID0gZmFsc2U7CnRoaXMuY3VycmVudFRleHQgKz0gdGhpcy50YWdCdWZmZXI7CnRoaXMuY3VycmVudENoYXIrKzsKdGhpcy5ydW4oKTsKcmV0dXJuOwp9IGVsc2UgaWYodGhpcy5pblRhZykgewp0aGlzLnRhZ0J1ZmZlciArPSB0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKTsKdGhpcy5jdXJyZW50Q2hhcisrOwp0aGlzLnJ1bigpOwpyZXR1cm47Cn0gZWxzZSBpZih0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKSA9PSAiJiIgJiYgIXRoaXMuaW5IVE1MRW50aXR5KSB7CnRoaXMuSFRNTEVudGl0eUJ1ZmZlciA9ICImIjsKdGhpcy5pbkhUTUxFbnRpdHkgPSB0cnVlOwp0aGlzLmN1cnJlbnRDaGFyKys7CnRoaXMucnVuKCk7CnJldHVybjsKfSBlbHNlIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICI7IiAmJiB0aGlzLmluSFRNTEVudGl0eSkgewp0aGlzLkhUTUxFbnRpdHlCdWZmZXIgKz0gIjsiOwp0aGlzLmluSFRNTEVudGl0eSA9IGZhbHNlOwp0aGlzLmN1cnJlbnRUZXh0ICs9IHRoaXMuSFRNTEVudGl0eUJ1ZmZlcjsKdGhpcy5jdXJyZW50Q2hhcisrOwp0aGlzLnJ1bigpOwpyZXR1cm47Cn0gZWxzZSBpZih0aGlzLmluSFRNTEVudGl0eSkgewp0aGlzLkhUTUxFbnRpdHlCdWZmZXIgKz0gdGhpcy5vcmlnVGV4dC5jaGFyQXQodGhpcy5jdXJyZW50Q2hhcik7CnRoaXMuY3VycmVudENoYXIrKzsKdGhpcy5ydW4oKTsKcmV0dXJuOwp9IGVsc2Ugewp0aGlzLmN1cnJlbnRUZXh0ICs9IHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpOwp9CnRoaXMuZWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmN1cnJlbnRUZXh0Owp0aGlzLmVsZW1lbnQuaW5uZXJIVE1MICs9ICh0aGlzLmN1cnJlbnRDaGFyIDwgdGhpcy5vcmlnVGV4dC5sZW5ndGggLSAxID8gKHR5cGVvZiB0aGlzLmN1cnNvciA9PSAiZnVuY3Rpb24iID8gdGhpcy5jdXJzb3IodGhpcy5jdXJyZW50VGV4dCkgOiB0aGlzLmN1cnNvcikgOiAiIik7CnRoaXMuY3VycmVudENoYXIrKzsKc2V0VGltZW91dCgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyIgKyB0aGlzLmVsZW1lbnQuaWQgKyAiJykudHlwaW5nVGV4dC5ydW4oKSIsIHRoaXMuaW50ZXJ2YWwpOwp9IGVsc2Ugewp0aGlzLmN1cnJlbnRUZXh0ID0gIiI7CnRoaXMuY3VycmVudENoYXIgPSAwOwp0aGlzLnJ1bm5pbmcgPSBmYWxzZTsKdGhpcy5maW5pc2hlZENhbGxiYWNrKCk7Cn0KfQo8L3NjcmlwdD4KPGNlbnRlcj4KPGRpdiBpZD0iZXhhbXBsZTEiPjwvZGl2Pgo8cCBpZD0iZXhhbXBsZTIiPjxicj4KPGZvbnQgY29sb3I9ImJsYWNrIj4KPGZvbnQgc3R5bGU9ImNvbG9yOndoaXRlO2ZvbnQgc2l6ZTo4cHg7dGV4dC1hbGlnbjogY2VudGVyO2ZvbnQtZmFtaWx5OkFyaWFsO3RleHQtc2hhZG93OiAwIDAgNXB4ICNGRjI3MDAsIDAgMCAxMHB4ICNGRjI3MDAsIDAgMCAzMHB4ICNGRjI3MDAsIDAgMCA0NXB4ICNGRjI3MDAsIDAgMCA2MHB4ICNGRjI3MDA7Ij48Zm9udCBzaXplPSI1IiAgIGNvbG9yPSJ3aGl0ZSI+WW91ciBTaXRlJ3MgU2VjdXJpdHkgSGFzIEJlZW4gQ29tcHJvbWlzZWQgQnk8L2ZvbnQ+PC9mb250Pjxicj4KPGZvbnQgc3R5bGU9ImNvbG9yOndoaXRlO2ZvbnQgc2l6ZTo4cHg7dGV4dC1hbGlnbjogY2VudGVyO2ZvbnQtZmFtaWx5OkFyaWFsO3RleHQtc2hhZG93OiAwIDAgNXB4ICNGRjI3MDAsIDAgMCAxMHB4ICNGRjI3MDAsIDAgMCAzMHB4ICNGRjI3MDAsIDAgMCA0NXB4ICNGRjI3MDAsIDAgMCA2MHB4ICNGRjI3MDA7Ij48Zm9udCBzaXplPSI1IiAgIGNvbG9yPSJ3aGl0ZSI+I01vbktpcmE8L2ZvbnQ+PC9mb250Pjxicj48YnI+Cjxmb250IHN0eWxlPSJjb2xvcjp3aGl0ZTtmb250IHNpemU6OHB4O3RleHQtYWxpZ246IGNlbnRlcjtmb250LWZhbWlseTpBcmlhbDt0ZXh0LXNoYWRvdzogMCAwIDVweCAjRkYyNzAwLCAwIDAgMTBweCAjRkYyNzAwLCAwIDAgMzBweCAjRkYyNzAwLCAwIDAgNDVweCAjRkYyNzAwLCAwIDAgNjBweCAjRkYyNzAwOyI+PGZvbnQgc2l6ZT0iNSIgICBjb2xvcj0id2hpdGUiPkFMTCBZT1VSIERBVEE8L2ZvbnQ+PC9mb250PiA8YnI+Cjxmb250IHN0eWxlPSJjb2xvcjp3aGl0ZTtmb250IHNpemU6OHB4O3RleHQtYWxpZ246IGNlbnRlcjtmb250LWZhbWlseTpBcmlhbDt0ZXh0LXNoYWRvdzogMCAwIDVweCAjRkYyNzAwLCAwIDAgMTBweCAjRkYyNzAwLCAwIDAgMzBweCAjRkYyNzAwLCAwIDAgNDVweCAjRkYyNzAwLCAwIDAgNjBweCAjRkYyNzAwOyI+PGZvbnQgc2l6ZT0iNSIgICBjb2xvcj0id2hpdGUiPkJFTE9OR1MgVE8gTUUgTk9XICE8L2ZvbnQ+PC9mb250Pjxicj48YnI+Cjxmb250IHN0eWxlPSJjb2xvcjp3aGl0ZTtmb250IHNpemU6OHB4O3RleHQtYWxpZ246IGNlbnRlcjtmb250LWZhbWlseTpBcmlhbDt0ZXh0LXNoYWRvdzogMCAwIDVweCAjRkYyNzAwLCAwIDAgMTBweCAjRkYyNzAwLCAwIDAgMzBweCAjRkYyNzAwLCAwIDAgNDVweCAjRkYyNzAwLCAwIDAgNjBweCAjRkYyNzAwOyI+PGZvbnQgc2l6ZT0iNSIgICBjb2xvcj0id2hpdGUiPkZpeCBOb3c8L2ZvbnQ+PC9mb250Pjxicj48YnI+Cjxmb250IHN0eWxlPSJjb2xvcjp3aGl0ZTtmb250IHNpemU6OHB4O3RleHQtYWxpZ246IGNlbnRlcjtmb250LWZhbWlseTpBcmlhbDt0ZXh0LXNoYWRvdzogMCAwIDVweCAjRkYyNzAwLCAwIDAgMTBweCAjRkYyNzAwLCAwIDAgMzBweCAjRkYyNzAwLCAwIDAgNDVweCAjRkYyNzAwLCAwIDAgNjBweCAjRkYyNzAwOyI+PGZvbnQgc2l6ZT0iNSIgICBjb2xvcj0id2hpdGUiPkkgV2lsbDwvZm9udD48L2ZvbnQ+Cjxmb250IHN0eWxlPSJjb2xvcjp3aGl0ZTtmb250IHNpemU6OHB4O3RleHQtYWxpZ246IGNlbnRlcjt0ZXh0LXNoYWRvdzogMCAwIDVweCAjRkYyNzAwLCAwIDAgMTBweCAjRkYyNzAwLCAwIDAgMzBweCAjRkYyNzAwLCAwIDAgNDVweCAjRkYyNzAwLCAwIDAgNjBweCAjRkYyNzAwOyI+PGZvbnQgc2l6ZT0iNSIgICBjb2xvcj0id2hpdGUiPkNvbWUgQmFjayEhITwvZm9udD48L2ZvbnQ+PGJyPjxicj4KCjxicj4KPC9mb250Pgo8L2ZvbnQ+PC9mb250PjwvcD48L2NlbnRlcj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovL0RlZmluZSBmaXJzdCB0eXBpbmcgZXhhbXBsZToKbmV3IFR5cGluZ1RleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4YW1wbGUxIikpOwovL0RlZmluZSBzZWNvbmQgdHlwaW5nIGV4YW1wbGUgKHVzZSAic2xhc2hpbmciIGN1cnNvciBhdCB0aGUgZW5kKToKbmV3IFR5cGluZ1RleHQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4YW1wbGUyIiksIDgwLCBmdW5jdGlvbihpKXsKdmFyIGFyID0gbmV3IEFycmF5KCJfIiwiICIsIl8iLCJfIik7IHJldHVybiAiICIgKyBhcltpLmxlbmd0aCAlCmFyLmxlbmd0aF07IH0pOwovL1R5cGUgb3V0IGV4YW1wbGVzOgpUeXBpbmdUZXh0LnJ1bkFsbCgpOwo8L3NjcmlwdD4KPHZpZGVvIGlkPSJ2aWRlb19iYWNrZ3JvdW5kIiBwcmVsb2FkPSJhdXRvIiBhdXRvcGxheT0idHJ1ZSIgbG9vcD0ibG9vcCIgbXV0ZWQgdm9sdW1lPSIwIj4KICAgICAgICAgICAgPHNvdXJjZSBzcmM9Imh0dHA6Ly9ob21lLW1vbmtpcmFkZ2JuMDEucmhjbG91ZC5jb20vSW50cm8lMjBBbm9ueW1vdXMlMjAyMDEzJTIwcGFyYSUyMHVzbyUyMGxpYnJlLi53ZWJtIiB0eXBlPSJ2aWRlby93ZWJtIi8+CiAgICAgICAgICAgPHNvdXJjZSBzcmM9Imh0dHA6Ly9ob21lLW1vbmtpcmFkZ2JuMDEucmhjbG91ZC5jb20vSW50cm8lMjBBbm9ueW1vdXMlMjAyMDEzJTIwcGFyYSUyMHVzbyUyMGxpYnJlLi5tcDQiIHR5cGU9InZpZGVvL21wNCIvPgkJCiAgICA8L3ZpZGVvPgoKPGVtYmVkIHR5cGU9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiBhbGxvd3NjcmlwdGFjY2Vzcz0ibmV2ZXIiIHNyYz0iaHR0cDovL3d3dy55b3V0dWJlLmNvbS92L2VkZ01LaDVfOFVRJmFtcDtobD1lbiZhbXA7ZnM9MSZhbXA7YXV0b3BsYXk9MTtsb29wPTE7cmVwZWF0PTEiIHdpZHRoPSIwIiBhbGlnbj0ibWlkZGxlIiBoZWlnaHQ9IjAiPgo8L2h0bWw+
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement