Last active
May 1, 2016 02:09
-
-
Save OOMM/77b46bc1a2feeaa01452 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dyfz0aGiuCjuc(KGkmkr0PeHvrPa8kQKAwOIBjrTlu1Veurmme0XqLwMGYZuuzAkQ6AkkTnjI(gvIghkHoNuuwhLsVtIW8uuO6EOu7tqfPbsPa6GsHfkLQhsLKjsPOlIsQnkLYhfPgPGkDsuIwPu9skfOzkf5MujStLYpvQyOkk6OkkelvPs9uLmve6QOKSvkf0xLsgRIcPoRGkQ1QOqYBrG5QOq5UkvTxK(Regm5WcTyb6XkYKr0Lv1MPs9zkvJwKCArTAff8AjsZMkUnLSBk(TKgUGSCfEov10v56uLTtPqFxqvJxaDEby9sr17vQe3xPsA)WuUuI0vKsKE0LpDzdm0Ood)0v2g)HFUASbsxw0fjDrsjsxbUJB3()rBRSlNVzCNJWMXIUC(M5sclj3zPUlp)80va742T)F02kZIZoxyHXnS5CzZimSzNRznJ6U88ZsxJ3EUAigqONUSpQEHORpWqrd5tsBNU8Fh3ZSMnhD1(oejUJlAI1TrKUIKK5lxnrNIBKTB)h(uI0JUYK01o74cxa1euR4WPovQTq28TQMQt1Ea2czZ3QAGiMT(HpDz8SioY2T)dF6gx6YPgjPePRl68MJsKUS8CUmLi9OhD55)ftorFF66gEpDnItpLiDz55Czkr6rp6YDC6YvdLiDz55Czkr6rp6AYj67tjsx(zJDNNUA1y3nTJRSbPhDrMD7op55CbqjsxwEoxMsKE0JUgvNNsKUS8CUmLi9Oh9OhDnrjs34sjsx(xCQu)vU5pDJlH0L7Q5AZjA3NU2HveBILBSMU8Fh3ZSMnhD1eRBJiDfmoCv1PoOePBHrBBwxgwyHfgHUKW5iKl3MX1Lu3LNDE62C02MF2MXTzeo7Seg28ClzZCzyu3LNDo6rxo1ijLiDDrN3CuI0LLNZLPePh9ORjNOVpLiD5Nn2DE6QvJD30oUYgKE0LN)xm5e99PTtxJ40tjsxwEoxMsKE0JU88)c)q)eTD6YDC6YvdLiDz55Czkr6rp6AuDEkr6YYZ5YuI0JE0fz2T78KNZfaLiDz55Czkr6rp6Yp0prjsx(zJDNNUfg9OhDnE75QHyaHE6k6nIbJd6Y)ItL6tdsxzt(kMQwHC(7jPBCPR7d88gpDr0RuIFG0v17CYMN2oDnvDQdkr6gxABUCU5DjHZZISiHZXIL0LCdZLu3LNTK0TWOBCPBZrBJfDzZMnSsol3zNVKH1S5NJfPUlp7C0T5PBCPhDn55FvlIFGhDHo60fz2pKtmaIFGxtV7JUS5BvnqCPRBKTB)huI01fqONU8V455txE(Fr0j8Xa8VH3tdsxEM3gFZrxrVRsxKEJ4LRg6IBy01BJV5OlxvnK5lxn(0LN)x4zYhTD66TX3C(0fDn55Fvl6cD0PRjp)RAvCbe6PR3gFZrxtE(x1QivM8PRjp)RArp6YZCJSD7)GsKUM88VQfDHo60JUiZ(HCIbq8d82D2EQJUG4ggpH0vMKUS5BvnqeZw)aQ94GUIKK5lxnrNIBKTB)h(uI0JUMbp)l7oa6YvSEJiR3nDrM9NbpZ0LTXNUIoo0fz2pKtmaIFGhDXct0v4ZKxk6g3ssiDLNQgAq66(aVvU5pDJlH0LXZI4iB3(p8PBCPRuF2EQJUXI0JUfgLiD5hkokTvM8sr34siD5FXPs9x5M)0nUesxKz)qoXai(bE0LnRMWXb9K5d6sL9HIEJip6UQACNT7nEOl1dfmoGiZ(HCIbaLnqxQh9WHnFRQbIy26hqThhHdOO3iIolmrxbRdYF4QQtDqjs34s34s3cJUXLUnhDJlDBE6gH8Zsp6AuV49e)ap6ABNnwtx5PQHgKUCxnxBor7(01oSIytSCJ10vEQAkMQo1bLiDJlDJlDlm6gx62C0nU0T5PBCPhD5)oUNznBo6Qjw3gr6kyC4QQtDqjs34s34s3cJ22SUmSWclmcDjHZrixUnJRlPUlp780T5OTn)SnJBZiC2zjmS55wYM5YWOUlp7C0T5PBCPhDr((XZBeVNgKU8dfhLUJB3()fot3iKUCQrskr66IoV5OePllpNltjsp6rxtorFFkr6YpBS780vRg7UPDCLni9OlYSB35jpNlakr6YYZ5YuI0JE01io9uI0LLNZLPePh9Olp)VWp0prBNUChNUC1qjsxwEoxMsKE0JU8d9tuI0LF2y35PBHrp6YZ)lMCI((02PRr15PePllpNltjsp6rp66Yw)WvvN6GsKUXLUXLUfgDJlDBo6gx6280nU0JUgV9C1qmGqpDDFGhD5FXPs9PbPRSjFftvRqo)9K0nU019bEEJNUA3j38MhhK019bETvnhD12i3COzeVi5iEriIePl)lovQFBvZrxTnYnhAgXlsoIxeIir6YpuCukniDDzRF0w1C0vBJCZHMr8IKJ4fHisKUIoHsfPBCPRG1b5pyPX)p6gxU0L)fNk1FM1S5OR23HiXDCXUzz6WLiDDFGNRQo1bLiDJlDJlDlm6gx62C0nU0T5PBCPhDfSoi)r7XPsjh1q0v7o5M384GeIyT6C5q01u1PoOePBCPT5Y5M3LeoplYIeohlwsxYnmxsDxE2ss3MJ2gl6YMnByLCwUZoFjdRzZphlsDxE25OBZt3iKE01KN)vTi(bE0LBpZ0LRMKjqhcccYPofDG8crgVhInKBpZ0LRMKKVv1KaDiiiiiiiiN6u0bAQ6zoi2qKVv1Wpv9mh6qqqqqqqqo1POduOQF(YvdeBiY3QA4dv9ZxUAqhcccccccYPofDGmwqSHiFRQH3yHoeeeeeeee6qqqqqqqqURdOmBUCMQEMJdxiYk6qqqqqqqqqqqqo1POduW4aInurAcmw88mThhm8859OdbbbbbbbbbbbLDdfmoGIgsOGXb)9bEqxQ3GoeeeeeeeeeeeeeeeKtDk6a9bgkpEFi2qbJd(pWq5X7JoeeeeeeeeeeeeeeeKtDk6anv9mhzn8gi2qFGHYJ3VC6)iMT(Kjqhccccccccccccccck7g6dmuE8(qrdj0u1ZCK1WBGcNcri0L6nOdbbbbbbbbbbbbbbbbbbbfmo4VS1pSD9hXpWlP)nYg78URdR4LKHf456MHZu1ZCK1WBsKaDiiiiiiiiiiiiiiiiiiiOGXHTR)SHrhVp5u1ZCK1WBsGoeeeeeeeeeeeeeee074)Odbbbbbbbbbbbbbbbbbbb5UoGMb2C5mv9mxzUC4crwrhcccccccccccccccccccccccQinbglEEM2JdgE(KZqI98FGHYJ3hInurAcmw88mThhm88jNbxZnXE(pWq5X7Joeeeeeeeeeeeeeeeeeeeeeeeu5YfPjWyXZZ0ECWWZNCgsSN)(apBx)r8d8swKMaJfppt7XbdpFYzW1CtSN)(apBt)hXpWlzIeOdbbbbbbbbbbbbbbbbbbb9gs0HGGGGGGGGGGGGGGGGGGGkstGXINNP94GHNpj5Bvn8tvpZLyVTHBM8tMaDiiiiiiiiiiiiiiiiiiiiY3QA4NQEMdIne5Bvn8tvpZbvMleeeeee6qqqqqqqqqqqqqqqqVHeDiiiiiiiiiiiO3qIoeeeeeee0Birhccc6nKOdbbbLDd1QrbzTAz3loiHUuVbYlez8(KTAuqwRw29IdYeqVHeDiiiOSBOwnkYg3)WeDGUuVbYlez8(KTAuKnU)Hj6Ka6nKOdbbbLDd1QrbzCuQDN44HUuVbYlez8(KTAuqghLA3jo(eqVHeDiiiOSBOwnkihFK0)IoL(dOl1BG8crgVpzRgfKJps6FrNs)rcO3qIoeeeu2nuRgfHp7qMTcbDPEdKxiY49jB1Oi8zhYSvOeqVHeDiiiOSBOwnkSpYw184HUuVbYlez8(KTAuyFKTQ5XNa6nKOdbbbvUC2nuRgfzhNmzCK9JxadOl1BG8crgVpzRgfzhNmzCK9JxaJeqVHeDiiiOYLZUHA1OWgZt5QNFQ3Xjv1ZqcDPEdKxiY49jB1OWgZt5QNFQ3Xjv1ZqMa6nKOdbbbn(ZByGyyqhcccQC5D2XfUa93qIo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJoDfmoyPPTr1C02Pl)qXrP7UEXlxnUOs(0vdwrCh6Im7hYjgaXpWRP39rx28TQgixv9mhzn8g66gz72)bLiDDbe6PRjp)RArxtE(x1Q4ci0txVn(MJUi9gXlxn0f3WOlp)VWZKpA701KN)vTOl3EMPlxnjl4CzRNZfqONtbhF7EzsofCk4uWPGJjA9Ck4uWPGJFO3Xjb6qqqqo1POdu0Be3IwpeBigB(wvdeXS1pGApoyqhcccYPofDGgV9C1aXgQ1hlTH3i6ZpE75QXNGO3iUfT(98J3EUAqhcccYPofDGiJxeInuRpwAdVr0Np9F2mEXKrVrClA9jqhcccYPofDGc6LDiHyd52ZmD5QjPXZk4p4yIwpNXBpxnCiJxKtOQF(YvdhsVr8YvdNbh7CcMaDiiiiiiiiN6u0bkyCSfTEi2qMO1BRtn8)izcBT77fmjdl47AgoqmmjG45HyApoyG45HmEwb)b6qqqqqqqqz3qM6bvKMGGXXw063dDPEdurAccghBrRFpeBixn(49TnIwFsM1fpp)2JdgobJJTO1ZP1hlTH3i6ZpE75QXNagB(wvdeXS1pGCvD8m75hV9C1Ka6nKOdbbbbbbb5uNIoqbJdi2qfPjiyCSfT(9Odbbbbbbb5uNIoqP(S9uheBiY4f5t9z7Po0HGGGGGGGCQtrhOqrsYSXoeBO5rhcccccccYPofDGcg9)zw9ZxUAGydL6Z2tDUouKKmBSdbbbbbHoeeeeeeeKtDk6afaeBOKP(S9uNRdfjjZg7jSbK04zf8hUou1pF5QjbKRHcg9)zw9ZxUAqhcccccccYPofDGChjFi2qgpRG)WgaH8eoh6qqqqqqqqbJdBx)fUF2EQlzQpBp1LaDiiiiiiiOGXHTR)ABeT(1nIxmjtt70Ijb6qqqqqqqqbJdBx)1ktEPssgViF4ZKxQeOdbbbbbbbfmoSD93mRzZLKH4oZSjw3grgoJ3EUA4W0eRBJidhc5qy5asGoeeeeeeeu2nKPEqbJd(7d8GUuVbcDiiiiiiiiiiiOGXb)9bEqSHcgh26QXhVVTQ5w3iBSN0KD4afo2XgY6D3uJW5Wrc0HGGGGGGGGGGGcgh83h4z76V2QMl54TNRg(7d8Sn9FTvnxYeCGiJxK)(aVvU5p0moBOuF2EQdkAiHiJxK)(aVvU5puDaL6Z2tDjGqhccccccccccckyCWFFGNTR)MznBUKmnX62iYWbIlhOYCtGoeeeeeeeeeeeuW4G)(apBx)198VS7ac3KmnX62iYKaDiiiiiiiO3qIoeeeeeeeuW4G)(apBx)r8d8sAIwpppdedpVXZk4psGoeeeeeeeu2nKPEqbJd(lB9dOl1BGqhccccccccccckyCWFzRFaXgkyCyRRgF8(2QMBDJSXEst2Hdu4yhBiR3DtncNdhjqhccccccccccckyCWFzRFy76V2QMl54TNRg(lB9dBt)xBvZLmbhiY4f5VS1pw5M)qZ4SHs9z7PoOOHeImEr(lB9JvU5puDaL6Z2tDjGqhccccccccccckyCWFzRFy76VzwZMljZUzz6WLidhOYC5avMBc0HGGGGGGGGGGGcgh8x26h2U(R75Fz3beUjz2nlthUezsGoeeeeeee0BirhccccccckyCWFzRFy76pIFGxssVr8Yvtc0HGGGGGGGcgh8FGHYJ3hInu6)iMT(KjCnP3iE5QbccccccccDiiiiiiiOGXHTR)Cr24IyG2WOJ37NKqoqKEJ4LRMeOdbbbbbbbfmoSD9Nnm649jj9gXlxnjqhccccccckyCy76V1fpp)2JdIFGN34t2uo468cMKPPCWvQ44jDXtMJLNJNqMe222FtPsY4FXZZpyCWWbImEr(7d88gFcO6aIHjb6qqqqqqqqLlhmoSn9FRlEE(Thhe)apVXNmHTR)c36i3CIzNpP7OJ)NaDiiiiiiiOGXHTR)Apovk5Ogk5Ue0EBzNhInedln3pChN(WjeRvNlhYpCcRyzzI1QZLdvU94uP2hvpdjZUMaDiiiiiiiOGXHTR)wx888BpoCv1Posok7os(CSx2DK85eSS7i5NaDiiiiiiiOGXHTR)Apovk5OgYvvN6i5OS7i5ZXEz3rYNtWYUJKphc5Nlb6qqqqqqqqbJdBxPQHpzc0HGGGEdj6qqqqLlFvOijjueY8HhI8TQgOPAOaGUuzFOGo1PsHIgsONmFqxQ3)HCYM3Ndu0XVcfjjHiFRQbQAGiZ(HCIbaDFGh0KN)vTGMQKp6qqqqz3qxaHEi2SHywZK1n1uXIvUWf7SXafnKq(29YKqSzdXkt(sZkwAZKmHCIb8dMeqxQ3Goeeeeeeeu2nKjA9qSzdX0k7qcXsRqmqxQ3avU8tMp0HGGGGGGGGGGGCQtrhiJfeBit06T1Pg(FKmHT299cMKHf8DndhigMeOdbbbbbbbbbbbLDdzQhurAcyA1OGHN3yTh6s9gOI0eW0QrbdpVXAp7DzxlburAcyA1OGHN3yTN3yX2yvcOI0eW0QrbdpVXAp)u1ZCSjSeqVHeDiiiiiiiiiiiOI0eW0QrbdpVXAp)u1ZCqSHkstatRgfm88gR98tvpZ5AUOdbbbbbbbbbbbf0l7qMSinbmTAuWWZBS2Zpv9mhht065mE75QHdz8ICkjhUHXHqoC5qycOYLFY8Hoeeeeeee0Birhccc6nKOdbbbvUmelTc5u9ZvdpKv2EQdkssc57fkuDCqURdO6L6hqKVv14dz)VlBSdvA2X5jHc6DqM6bfHcnY1r(cakEqxQhYQA9MdDiiiOSBOlGqpeB2qmRzY6MAQGLBlInSbzztnXafnKq(29YKqSzdXkt(sZkwAZKmHCIb8dMeqxQ3Goeeeeeeeu2nKjA9qSzdX0k7qcXsRqmqxQ3avU8tMp0HGGGGGGGGGGGCQtrhiJfeBit06T1Pg(FKmHT299cMKHf8DndhigMeOdbbbbbbbbbbb5uNIoqtvpZbXgQinbmTAuWWZBS2Zpv9mh6qqqqqqqqqqqqURdOm7PQN54WLtzUqKv0HGGGGGGGGGGGGGGGCQtrhOGXXw06HydzIwVTo1W)JKjS1UVxWKmSGVRz4aXWKaINhIP94GbINhAQ6zo0HGGGGGGGGGGGGGGGkstqW4ylA975)adLhVp70)rmB9jtGoeeeeeeeeeee0Birhccccccc6nKOdbbb9gs0HGGGYUHUac9qSzdXSMjRBQPIfRCHl2zJbkAiH8T7LjHyZgIvM8LMvS0Mjzc5ed4hmjGUuVbDiiiiiiiOSBit06HyZgIXM1QLDV4GKb6s9gOYLFY8HoeeeeeeeeeeeKtDk6azSGydzIwVTo1W)JKjS1UVxWKmSGVRz4aXWKaDiiiiiiiiiiiOSBit9GkstatRgfm88gR9qxQ3avKMaMwnky45nw7zVl7AjGkstatRgfm88gR98gl2gRsavKMaMwnky45nw75NQEMJnHLa6nKOdbbbbbbbbbbbvKMaMwnky45nw75NQEMdInurAcyA1OGHN3yTNFQ6zoxZfDiiiiiiiiiiiOGEzhYKfPjGPvJcgEEJ1E(PQN54yIwpNXBpxnCiJxKdHCcBwoC5qihctavU8tMp0HGGGGGGGEdj6qqqqVHeDiiiOSBOlGqpeB2qmRzY6MAQyXkx4ID2yGIgsiF7Ezsi2SHyLjFPzflTzsMqoXa(btcOl1Bqhccccccck7gYeTEi2SHyyPX9pmrhgOl1BGkx(jZh6qqqqqqqqqqqqo1POdKXcInKjA926ud)psMWw7(EbtYWc(UMHdedtc0HGGGGGGGGGGGYUHm1dQinbmTAuWWZBS2dDPEdurAcyA1OGHN3yTN9USRLaQinbmTAuWWZBS2ZBSyBSkburAcyA1OGHN3yTNFQ6zo2ewcO3qIoeeeeeeeeeeeurAcyA1OGHN3yTNFQ6zoi2qfPjGPvJcgEEJ1E(PQN5Cnx0HGGGGGGGGGGGc6LDitwKMaMwnky45nw75NQEMJJjA9CgV9C1WHmEroeYjSz5WLdHCimbu5Ypz(qhccccccc6nKOdbbb9gs0HGGGYUHUac9qSzdXSMjRBQPIfRCHl2zJbkAiH8T7LjHyZgIvM8LMvS0Mjzc5ed4hmjGUuVbDiiiiiiiOSBit06HyZgIXMJps6FrNs)bd0L6nqLl)K5dDiiiiiiiiiiiiN6u0bYybXgYeTEBDQH)hjtyRDFVGjzybFxZWbIHjb6qqqqqqqqqqqqz3qM6bvKMaMwnky45nw7HUuVbQinbmTAuWWZBS2ZEx21savKMaMwnky45nw75nwSnwLaQinbmTAuWWZBS2Zpv9mhBclb0BirhcccccccccccQinbmTAuWWZBS2Zpv9mheBOI0eW0QrbdpVXAp)u1ZCUMl6qqqqqqqqqqqqb9YoKjlstatRgfm88gR98tvpZXXeTEoJ3EUA4qgViN54WnmoeYHqoCtavU8tMp0HGGGGGGGEdj6qqqqVHeDiiiOSBOlGqpeB2qmRzY6MAQyXkx4ID2yGIgsiF7Ezsi2SHyLjFPzflTzsMqoXa(btcOl1Bqhccccccck7gYeTEi2SHySzCuQDN44zGUuVbQC5NmFOdbbbbbbbbbbb5uNIoqgli2qMO1BRtn8)izcBT77fmjdl47Agoqmmjqhccccccccccck7gYupOI0eW0QrbdpVXAp0L6nqfPjGPvJcgEEJ1E27YUwcOI0eW0QrbdpVXApVXITXQeqfPjGPvJcgEEJ1E(PQN5ytyjGEdj6qqqqqqqqqqqqfPjGPvJcgEEJ1E(PQN5GydvKMaMwnky45nw75NQEMZ1CrhccccccccccckOx2HmzrAcyA1OGHN3yTNFQ6zooMO1Zz82ZvdhY4f5WLd3W4WLdxoeMaQC5NmFOdbbbbbbb9gs0HGGGEdj6qqqqz3qxaHEi2SHywZK1n1uXIvUWf7SXafnKq(29YKqSzdXkt(sZkwAZKmHCIb8dMeqxQ3Goeeeeeeeu5YqB17Tfk9iBvZJ3hY8pj0vHMs9tLcDPEi)qVJdKPEqxQhYeTEOQBOl1d57zzvnpje5BvnOdbbbbbbbLDd5h6DCS1D2qMKj9iBvZJNjb0L6nqLl)K5dDiiiiiiiiiiiit06HydXKEKTQ5XZGoeeeeeeeeeeeKtDk6azSGydzIwVTo1W)JKjS1UVxWKmSGVRz4aXWKaDiiiiiiiiiiiOSBit9GkstatRgfm88gR9qxQ3avKMaMwnky45nw7zVl7AjGkstatRgfm88gR98gl2gRsavKMaMwnky45nw75NQEMJnHLa6nKOdbbbbbbbbbbbvKMaMwnky45nw75NQEMdInurAcyA1OGHN3yTNFQ6zoxZfDiiiiiiiiiiiOGEzhYKfPjGPvJcgEEJ1E(PQN54yIwpNXBpxnCiJxKtyCcBwoC5qi)SCiKF2eqLl)K5dDiiiiiiiO3qIoeee0BirhcccQCzcii7g6ci0dXMneZAMSUPMkwSYfUyNngOOHeY3UxMeInBiwzYxAwXsBMKjKtmGFWKa6s9g0HGGGGGGGYUHmrRhInBigw64KjJJm0kEbmyGUuVbQC5NmFOdbbbbbbbbbbb5uNIoqgli2qMO1BRtn8)izcBT77fmjdl47Agoqmmjqhccccccccccck7gYupOI0eW0QrbdpVXAp0L6nqfPjGPvJcgEEJ1E27YUwcOI0eW0QrbdpVXApVXITXQeqfPjGPvJcgEEJ1E(PQN5ytyjGEdj6qqqqqqqqqqqqfPjGPvJcgEEJ1E(PQN5GydvKMaMwnky45nw75NQEMZ1CrhccccccccccckOx2HmzrAcyA1OGHN3yTNFQ6zooMO1Zz82ZvdhY4f5WLdxwKdxoC5qycOYLFY8Hoeeeeeee0Birhccc6nKOdbbbLDdDbe6HyZgIzntw3utflw5cxSZgdu0qc5B3ltcXMneRm5lnRyPntYeYjgWpysaDPEd6qqqqqqqqz3qMO1dXMneJnmpLRE(qH774KQ6zizGUuVbQC5NmFOdbbbbbbbbbbb5uNIoqgli2qMO1BRtn8)izcBT77fmjdl47Agoqmmjqhccccccccccck7gYupOI0eW0QrbdpVXAp0L6nqfPjGPvJcgEEJ1E27YUwcOI0eW0QrbdpVXApVXITXQeqfPjGPvJcgEEJ1E(PQN5ytyjGEdj6qqqqqqqqqqqqfPjGPvJcgEEJ1E(PQN5GydvKMaMwnky45nw75NQEMZ1CrhccccccccccckOx2HmzrAcyA1OGHN3yTNFQ6zooMO1Zz82ZvdhY4f5mhhUSihc5WLd3eqLl)K5dDiiiiiiiO3qIoeee0Bi3VVCz0HGGGg)5nmq3W7r)nKOJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJo6OJoD924BoF6Yv74I2BqSOPDsxWABiR3iwWQT2yztez9UzTnPlpZBJV5ORO3vPRjp)RAvKkt(01KN)vTOhDDFGhTD6Y)YtLgGn9gXlxn0G0vW6G8h742T)F0TzPRO3vPTtxP(S9uhTTsoBjDPlNRKUCwcl5CUKWzlj1D55zr66Yw)OnNODF6ARAE6Y4zrCKTB)h(0nU0LFO4O02DEdPlQKpD1WM2KUcgNkLCud5QQtDqjs34s34s3cJUXLUnhDJlDBE6gH8Zsp6YD1CRCZF6wjPlYSFiNyaRlovQpDXct0vZRvl6gH019bERCZF6gxcPRlB9dA70vW6G8h0G0vW6G8hSM0(txBvZtx(xCQu)2CI29PRTQ5PRG1b5pw5M)0nULKU8dfhLs8d88gpDXsZ9d3XPFgZvr)lBS3ECmJXkww2vr)lBS3ECuEfkokLUYtvtHFM8PRDZY0Hlr6kssMVC1eDkUr2U9F4tjsp66(aV2CI29PRTQ5Pl)qXrPH7NTN6OBZriDDzRFSYn)PBCljD5FXPs9Dv1CXSX6nhDXYTflTjRPl)lovQVRQo1bLiDJlDJlDlm6gx62C0nU0T5PBCPhDndE(x2Da0LRy9grwVB6Im7hYjgaXpWB3z7Po6cIfMORmjDzZ3QAGiMT(bKRQJNU8dfhLUJB3()nJMUriDf(m5LI2MldJByUSznB(M1S5NRKeoxyu3LNVK0LFO4O0DxV4LRg6gH0vW4uP2hvpdPRQo1bLiDJlDJq6wy0ncPBZr3iKUnpDJq(zPhDLn24p8FAq6YpuCuQnF)45nEAq6QoYV5IxUAORWDNDZYzu7SrSrt0LN5gz72)bLiDn55Fvl6YTNz6YvtYeOdbbbn(ZByGChD8F0Fdj6OJo6OJo6OJo60JUiZ(ZGNz6Y24txrhh6YpuCuQRQo1bLiDJlDJlDlm6gx62C0nU0T5PBCPh9OhDzJ0nUZhgx6rPa |
Update
- allows styling to be determined through weakauras itself, aka size/color
there are other options like font shadow and bar border that i could add later - not putting imp number in this aura, created another aura for this
fixed
- bars move up properly as they expire
Fixed bugs
Added Grimoire of Service, Darkglare
Added bar removal for Imps on Implosion
function(_,time,type,_,sguid,_,_,_,_,name,_,_,_,spell)
local auraName = "Demon Timer Bar"
local region = WeakAuras.regions[auraName].region
local data = WeakAuras.GetData(auraName)
local build = function(number,name,region,data,position,duration,r,g,b)
local barName = name:lower():gsub("%s+", "") .. "Bar" .. number
if not _G[barName] then _G[barName] = CreateFrame("StatusBar",barName,WeakAuras.regions["Demon Timer Core"].region) end
local bar = _G[barName]
local height = data.height
local padding = 4
local basePosition = height+padding
local y = (height+padding)*(number+position) + basePosition
local fade = number*0.03
bar:SetHeight(height)
bar:SetFrameStrata("LOW")
bar:SetWidth(data.width)
bar:SetPoint("TOPLEFT",region,"LEFT",0,0-y)
if not bar.text then
bar.text = bar:CreateFontString(nil, 'OVERLAY')
bar.text:SetFont(region.text:GetFont(), data.textSize <= height and data.textSize or height)
bar.text:SetPoint("LEFT", 1, -1)
bar.text:SetJustifyH("LEFT")
end
bar.text:SetText(name.." "..number)
if not bar.timer then
bar.timer = bar:CreateFontString(nil, 'OVERLAY')
bar.timer:SetFont(region.timer:GetFont(), data.timerSize <= height and data.timerSize or height)
bar.timer:SetPoint("RIGHT", -1, -1)
bar.timer:SetJustifyH("RIGHT")
end
bar.timer:SetText(duration)
bar.expires = GetTime()+duration
bar:SetMinMaxValues(0, duration)
bar:SetValue(duration)
bar:SetStatusBarTexture(LibStub("LibSharedMedia-3.0"):Fetch("statusbar", data.texture) or "")
--bar:GetStatusBarTexture():SetHorizTile(false)
bar:SetBackdrop({bgFile = "Interface/Tooltips/UI-Tooltip-Background"})
bar:SetStatusBarColor(r-fade,g-fade,b-fade)
bar:SetBackdropColor(r-fade,g-fade,b-fade,0.3)
bar:Show()
end
--to add a new demon copy this block and edit these lines, also add demon on display text custom code
if type == "SPELL_SUMMON" and sguid == UnitGUID("player") then
if name == "Wild Imp" then --edit
local nm = name:lower():gsub("%s+", "")
if not _G["WA_"..nm] then _G["WA_"..nm]={}; _G["WA_"..nm].nm=nm; _G["WA_"..nm].count=0; end
_G["WA_"..nm].count = _G["WA_"..nm].count+1
build(_G["WA_"..nm].count,name,region,data,6,12,0,1,0) --edit
end
end
-- Implosion. might add support for other demons getting killed but not a priority at the moment
if type == "SPELL_INSTAKILL" and sguid == UnitGUID("player") then
if name == "Wild Imp" then --edit
local nm = name:lower():gsub("%s+", "")
local count = _G["WA_"..nm].count
for i=count,1,-1 do
local barName = name:lower():gsub("%s+", "") .. "Bar" .. count
_G[barName].expires=GetTime()
end
end
end
if type == "SPELL_SUMMON" and sguid == UnitGUID("player") then
if name == "Doomguard" then --edit
local nm = name:lower():gsub("%s+", "")
if not _G["WA_"..nm] then _G["WA_"..nm]={}; _G["WA_"..nm].nm=nm; _G["WA_"..nm].count=0; end
_G["WA_"..nm].count = _G["WA_"..nm].count+1
build(_G["WA_"..nm].count,name,region,data,0,25,1,0,0) --edit
end
end
if type == "SPELL_SUMMON" and sguid == UnitGUID("player") then
if name == "Infernal" then --edit
local nm = name:lower():gsub("%s+", "")
if not _G["WA_"..nm] then _G["WA_"..nm]={}; _G["WA_"..nm].nm=nm; _G["WA_"..nm].count=0; end
_G["WA_"..nm].count = _G["WA_"..nm].count+1
build(_G["WA_"..nm].count,name,region,data,0,25,1,0,0) --edit
end
end
if type == "SPELL_SUMMON" and sguid == UnitGUID("player") then
if name == "Dreadstalker" then --edit
local nm = name:lower():gsub("%s+", "")
if not _G["WA_"..nm] then _G["WA_"..nm]={}; _G["WA_"..nm].nm=nm; _G["WA_"..nm].count=0; end
_G["WA_"..nm].count = _G["WA_"..nm].count+1
build(_G["WA_"..nm].count,name,region,data,3,12,0,0,1) --edit
end
end
if type == "SPELL_SUMMON" and sguid == UnitGUID("player") then
if name == "Darkglare" then --edit
local nm = name:lower():gsub("%s+", "")
if not _G["WA_"..nm] then _G["WA_"..nm]={}; _G["WA_"..nm].nm=nm; _G["WA_"..nm].count=0; end
_G["WA_"..nm].count = _G["WA_"..nm].count+1
build(_G["WA_"..nm].count,name,region,data,1,12,1,1,0) --edit
end
end
if type == "SPELL_SUMMON" and sguid == UnitGUID("player") then
-- Note: Grimoires need to check the spell not the name of the summoned demon
if spell:find("Grimoire") then --edit
name = "Grimoire"
local nm = name:lower():gsub("%s+", "")
if not _G["WA_"..nm] then _G["WA_"..nm]={}; _G["WA_"..nm].nm=nm; _G["WA_"..nm].count=0; end
_G["WA_"..nm].count = _G["WA_"..nm].count+1
build(_G["WA_"..nm].count,name,region,data,2,25,1,0.5,0.5) --edit
end
end
--[[if type == "SPELL_SUMMON" and sguid == UnitGUID("player") then
if name == "Illidari Satyr" then --edit
local nm = name:lower():gsub("%s+", "")
if not _G["WA_"..nm] then _G["WA_"..nm]={}; _G["WA_"..nm].nm=nm; _G["WA_"..nm].count=0; end
_G["WA_"..nm].count = _G["WA_"..nm].count+1
build(_G["WA_"..nm].count,name,region,data,1,18,1,1,0) --edit
end
end
if type == "SPELL_SUMMON" and sguid == UnitGUID("player") then
if name == "Vicious Hellhound" then --edit
local nm = name:lower():gsub("%s+", "")
if not _G["WA_"..nm] then _G["WA_"..nm]={}; _G["WA_"..nm].nm=nm; _G["WA_"..nm].count=0; end
_G["WA_"..nm].count = _G["WA_"..nm].count+1
build(_G["WA_"..nm].count,name,region,data,3,18,0,1,1) --edit
end
end]]--
return true
end
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
https://www.youtube.com/watch?v=o1UhtUnsWk4
todo:
allow dynamic (non-static) positioning for each demon (is this desired fucntionality?)
support perm dg/inf
support perm pets fg/fh/suc/imp/vw/glyphed versions
support serv pets
allow styling to be determined through weakauras itself, aka size/color
create a tldr version that shows only a number for implosion
create a tldr version for empowerment (what should this show? if you have dg+inq+stalker with 13.5sec left then good?)
create a tldr version for chaos bolt, just count all demons (but will you ever hold cb for more demons to be out?)