From 7fe220301fab5ccb02f2b71e516f4cb9be6c1982 Mon Sep 17 00:00:00 2001 From: Intel1 Date: Thu, 7 Mar 2019 09:33:23 -0500 Subject: [PATCH 1/3] Actualizados - inkapelis: fix - tvmoviedb: Actualizado idioma por defecto - Eliminado imagenes de servidores que no se usan - mp4upload: agregado test_video_exists --- plugin.video.alfa/channels/inkapelis.py | 32 ++++++++++-------- plugin.video.alfa/channels/tvmoviedb.json | 4 +-- .../media/servers/server_movshare.png | Bin 5802 -> 0 bytes .../media/servers/server_nowvideo.png | Bin 7515 -> 0 bytes .../media/servers/server_vidspot.png | Bin 6806 -> 0 bytes plugin.video.alfa/servers/mp4upload.py | 11 +++--- plugin.video.alfa/servers/powvideo.json | 4 +-- plugin.video.alfa/servers/powvideo.py | 3 ++ 8 files changed, 29 insertions(+), 25 deletions(-) delete mode 100755 plugin.video.alfa/resources/media/servers/server_movshare.png delete mode 100755 plugin.video.alfa/resources/media/servers/server_nowvideo.png delete mode 100755 plugin.video.alfa/resources/media/servers/server_vidspot.png diff --git a/plugin.video.alfa/channels/inkapelis.py b/plugin.video.alfa/channels/inkapelis.py index f967d593..1172655f 100644 --- a/plugin.video.alfa/channels/inkapelis.py +++ b/plugin.video.alfa/channels/inkapelis.py @@ -28,6 +28,8 @@ list_language = IDIOMAS.values() list_quality = ['Cam', 'TSHQ', 'Dvdrip', 'Blurayrip', 'HD Rip 320p', 'hd rip 320p', 'HD Real 720p', 'Full HD 1080p'] list_servers = ['openload', 'gamovideo', 'streamplay', 'streamango', 'vidoza'] +host = 'https://www.inkapelis.to/' + def mainlist(item): logger.info() @@ -35,28 +37,28 @@ def mainlist(item): autoplay.init(item.channel, list_servers, list_quality) itemlist = [] - itemlist.append(Item(channel=item.channel, title="Novedades", action="entradas", url="http://www.inkapelis.com/", + itemlist.append(Item(channel=item.channel, title="Novedades", action="entradas", url=host, extra="Novedades", text_color=color1, thumbnail=get_thumb('newest', auto=True))) #itemlist.append(Item(channel=item.channel, title="Estrenos", action="entradas", url="http://www.inkapelis.com/genero/estrenos/", # text_color=color1, thumbnail=get_thumb('premieres', auto=True))) itemlist.append(Item(channel=item.channel, title="Castellano", action="entradas", - url="https://www.inkapelis.com/?anio=&genero=&calidad=&idioma=Castellano&s=", + url=host+"?anio=&genero=&calidad=&idioma=Castellano&s=", extra="Buscar", text_color=color1, thumbnail=get_thumb('espanolas', auto=True))) itemlist.append(Item(channel=item.channel, title="Latino", action="entradas", - url="https://www.inkapelis.com/?anio=&genero=&calidad=&idioma=Latino&s=", + url=host+"?anio=&genero=&calidad=&idioma=Latino&s=", extra="Buscar", text_color=color1, thumbnail=get_thumb('latino', auto=True))) itemlist.append(Item(channel=item.channel, title="VOSE", action="entradas", - url="https://www.inkapelis.com/?anio=&genero=&calidad=&idioma=Subtitulada&s=", + url=host+"?anio=&genero=&calidad=&idioma=Subtitulada&s=", extra="Buscar", text_color=color1, thumbnail=get_thumb('newest', auto=True))) - itemlist.append(Item(channel=item.channel, title="Géneros", action="generos", url="http://www.inkapelis.com/", text_color=color1, + itemlist.append(Item(channel=item.channel, title="Géneros", action="generos", url=host, text_color=color1, thumbnail=get_thumb('genres', auto=True),)) - itemlist.append(Item(channel=item.channel, title="Buscar...", action="search", url="http://www.inkapelis.com/?s=", text_color=color1)) + itemlist.append(Item(channel=item.channel, title="Buscar...", action="search", url=host+"?s=", text_color=color1)) itemlist.append(Item(channel=item.channel, action="", title="")) itemlist.append( - Item(channel=item.channel, action="filtro", title="Filtrar películas", url="http://www.inkapelis.com/?s=", text_color=color1)) + Item(channel=item.channel, action="filtro", title="Filtrar películas", url=host+"?s=", text_color=color1)) # Filtros personalizados para peliculas for i in range(1, 4): filtros = config.get_setting("pers_peliculas" + str(i), item.channel) @@ -65,7 +67,7 @@ def mainlist(item): new_item = item.clone() new_item.values = filtros itemlist.append( - new_item.clone(action="filtro", title=title, url="http://www.inkapelis.com/?s=", text_color=color2)) + new_item.clone(action="filtro", title=title, url=host+"?s=", text_color=color2)) itemlist.append(Item(channel=item.channel, action="configuracion", title="Configurar canal...", text_color="gold", folder=False)) autoplay.show_option(item.channel, itemlist) @@ -86,21 +88,21 @@ def newest(categoria): item = Item() try: if categoria == "peliculas": - item.url = "http://www.inkapelis.com/" + item.url = host item.action = "entradas" item.extra = "Novedades" if categoria == "terror": - item.url = "https://www.inkapelis.com/genero/terror/" + item.url = host+"genero/terror/" item.action = "entradas" if categoria == "castellano": - item.url = "https://www.inkapelis.com/?anio=&genero=&calidad=&idioma=Castellano&s=" + item.url = host+"?anio=&genero=&calidad=&idioma=Castellano&s=" item.extra = "Buscar" item.action = "entradas" if categoria == "latino": - item.url = "https://www.inkapelis.com/?anio=&genero=&calidad=&idioma=Latino&s=" + item.url = host+"?anio=&genero=&calidad=&idioma=Latino&s=" item.extra = "Buscar" item.action = "entradas" itemlist = entradas(item) @@ -122,7 +124,7 @@ def search(item, texto): logger.info() itemlist = [] item.extra = "Buscar" - item.url = "http://www.inkapelis.com/?s=%s" % texto + item.url = host+"?s=%s" % texto try: return entradas(item) @@ -254,7 +256,7 @@ def filtrado(item, values): item.valores = "Filtro: " + ", ".join(sorted(strings)) item.strings = "" - item.url = "http://www.inkapelis.com/?anio=%s&genero=%s&calidad=%s&idioma=%s&s=%s" % \ + item.url = host+"?anio=%s&genero=%s&calidad=%s&idioma=%s&s=%s" % \ (year, genero, calidad, idioma, texto) item.extra = "Buscar" @@ -292,7 +294,7 @@ def entradas(item): else: # Extrae las entradas if item.extra == "Novedades": - data2 = data.split("

Últimas Películas Agregadas y Actualizadas

", 1)[1] + data2 = data.split("

Últimas Películas Agregadas y Actualizadas

", 1)[1] entradas = scrapertools.find_multiple_matches(data2, '
(.*?)
') else: diff --git a/plugin.video.alfa/channels/tvmoviedb.json b/plugin.video.alfa/channels/tvmoviedb.json index e82411cb..4f07d4dc 100755 --- a/plugin.video.alfa/channels/tvmoviedb.json +++ b/plugin.video.alfa/channels/tvmoviedb.json @@ -15,7 +15,7 @@ "id": "tmdb", "type": "list", "label": "@70418", - "default": 3, + "default": 4, "enabled": true, "visible": true, "lvalues": [ @@ -52,7 +52,7 @@ "type": "list", "label": "@70427", "color": "0xFFE0F04B", - "default": 3, + "default": 4, "enabled": true, "visible": true, "lvalues": [ diff --git a/plugin.video.alfa/resources/media/servers/server_movshare.png b/plugin.video.alfa/resources/media/servers/server_movshare.png deleted file mode 100755 index 4838828a134899f3d28ac085af7bc4c5e11e30b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5802 zcmaJ_cTiLP(x!tH14s!VL3&RJy@gJwQl&|eA{}W`LlGhLj))XPHFSd@D7{Iqp(u(7 z(wl(vB8D&T%$@n>&fI(dIp^%zd3Mk2d44;)Poj~577ZmUB>@2ejgGd42>}7&KhMP! zMEGl%RZ}Vc#uA`u8DQ$;5)ka*?@XZj*vHZNp3V~oS7#GvhsU9Q!_JBX1Wfum8mbRM z=6|7fEwatn2FOeFIRR*6t0;b223k4NT`A$e*iBp)E>7umxanbeVyVBlD)qX(gJx_3 zt6TIz-6rCP=c2<#o`Z`~_wH3UYhj)%$9}}4bBBYlLcvhnb!e|xO2Ah~I$+$k1F$^a zAr}Vj2^(DbeDspsIV~d`od3BvwyK8tfr<$SXj72Xu$J6;6e-vg)%Mo#E=^n zDt`O$gbho+-%GJ)0TF@^>P zN?~WUO-+HjU*7Wa^4f8(N|g@IR2XW(;TW5i-bdGDwfBhWT-VIJmpW7VIoaGjJm#A` zUs()=*lwwE;bsh#ZJT`^LPA1W+;I-iTT*%&^6+~e zt>KqPKY!lC5%N8r?_QTD1o|;gF;5_c2h-TYHc`Rt4+hH7gBKSUm&cn96bttfk|uvF zCA@2H)-F$*Ty_i#Q@E9AG5Xc(#HdsCjYg*`yu_{g%^M!M+L68&TIrzF)YL?SGtPnX zQu3?&xg;_ZCE&!@&klys%;x z7OHv{#gf?a@^X|y@Kqo7Yxl{$n$D0z$FHBpp~bpvB`$2V%$pLvI2* zjVWa4AwgkxAZIB)Qn2N7y6-lVjM`gq4%)sUk9)yUdo@%EX8A^$Xb$d!$TAO*wZs9{*(3%7xPV!po z4Yr|5O1Mt|<)1Pj7=q!Ep_v8;{Z7M{Eg0R@^cnx9@}*jp6h$JEX^RI%Un20XGeCDz-v=1VF!#!mxUcL0(?^ONkxNZaV!B`;uTb zjZEV0f6u<7(aw`a5as0JWVtiV=z6EYwCQORyH9s|t9^a^ZJ7#@yL)?km{D;%D9q?E zGn4L!M*QgVGBoSCKI^UI;`>fcGx+0$b!tWmJ*DgAahy~?;kCZ-{n`B-gTdtIvw|bf ze+0h*+foh+swFfq*tCF0LtdV!jG9S^OG;`)ri`amRYYs&-bDO43k(PVLm+$eO;o8j zmzza?M6yWzH>FKzH1F(Rd_jj9Xdr(_L(`ZiH^L8o7_78jEN78x$G{4g=Mi76%;thxgig+ z+U0`WlIBTpS_b0oPAvOs$}nRd)kl205gR|EXsx_Yx8m{eYe!gcIh23$ysitka!g%d zJ!?R%#yqCSXTmA3{0{fePnb4KL3<924SBafZmBGz_X}ZT=Rpr=w%^oTu?CDG3P) zS=og1n8qhhp3uU=^%a(UHFmw~HV8kR-C zkI(*I1(GE?e%8t;h~;w&YLGToaH;ee(}6g0S`A0&yv<+U);soi^{Q@_UWUXUB2=0^BcQ0R##W+ zzCoMn%i?HVj##LLM8+R~5250+Z407Fb@i$gwD46Jy7MCR`r=UR8^axSNY~%9f?96d zQI&fG`2Ie9&uff_1@m+@T^U!I%Ty(*a=W_U$e@RO3m*o zy0scxrkW#CQzo1Mik&re&tCg%{jqbnc`EF&MhM)$XgXT@Nn+2%*!E1tQ{@9a%xI}q zqbOYjl?>m673$5%2(1j2y4Jh=&y-_Y#22qhb{vB8atP~|5saDlIN_>{ZdtRU9}!4A0-ujM|ebx-2EusHom zAqyH!zQ--k*PjyIv{AYir8gzx+pzyc+(oM2b7LrXl|8N1-el`mnKNn2#VDlfX9F1- zS+SL^tt}s7%MRGDf4JN(;5+s7$FhUBY@4tJW{4Vzs5aXV{(C@*qtpBL<4436mNT17 zi{YBAW=QwhVL$T_Y10t*GZj4}*4z|&T4VcyWS}Dyq(6l}I7y}CcW`1vIpUsY(VYAf z%kYz}}ilob~}SPTy~tQqhWLEB$lxw5(1OLIQ#@M>Kzvm%G))LpCt4MRD*};Up`OQRia+ zmA)@PP7+iw%*;~BoMD|Jepk|fxmG5KbYNBHU2W(bE1xnXdEKFrawIvcYLt@R*@3}W zj#Y?+pKr5ro_Dv8oDPFxxw(E`KsH1XnOC| z?va6WP(zPCr+4OdPgJ%)?P`NGo^U(^~g>$;KPPK9RonF?IMJ=VlfmeA!pG%OXq&e#D)DUb~ zxYrmNgG_0DI6OUK`B+wXK<9Q;!x0x;B}z%l5kHJyg*o;(1NoskaOk?rnc3c=(*8gu#YOVNg%P!2FJLtd}HE*=isWt`=EJ zwwEImp|*NjaHr*$s)Me*)MA!gFAb(oORMK`H&+9<93g^d89uMEdKmvOC5f$~ygY>P zRudNLy5(G00~lk_9?tqDF777eWZr`a(sR;*+bdu+!1TuL+R4H_EK<1z9vDV zn%k`|s7dLK2$2U;_w(#5Lo5hLkvk^KB8E^e5Q$4u5WCx+mM$li+!*!^A>)$oOCWwv zl_7gl0%B+HmbKd02rESi4QwAA@Zaa((74!QadhQ^KEzBLmM4D54C3QAM#wCF6MxW4 zgQD_O2gLN}zVvXRalG`!Pa#g`HX{q3o}R{W7Xk#vzT7i?d>$RNbWBKldQxE}SU?I| zYny?-a};i1X!xiDL34xKt|;=Ddr9Xs7Ld&sKQymCH2MniUWg(Vt9XNo7qwUXjWMLF4K_Vc`>z}$D69uUvi9z4$ z?W{am{HecUok)l{-sybpO-#H+R(niKnql>~;^<&4)P2sN6YSF2t_R5lZaq&cT@Sak zlW{S|4%OE~iK=O*u@rGSE#f_sBfJ8X*^LPR*U7@aSG#px_#J3!%Gf1o=lDytbT*3w z@t1|CEWY(Si49?Zlc-F(>QYJpWLo3#t{s1{WTmO~lhwQUS@OvXX(t~ta&m}WyR4jC z;$=_3`nhS0c;5VHIoc9|lMEq=$h#lYJSqHh>7Y>dLwOv7)gWrYAVa0Hm>{Oak+r4t zfjEww?Onc+?H`&U-(X~IJT@FCUt*c?u!vt4IUSICnP6dRg`~}|c9dVFq!54}uLPBH zGrgKpa~Uu+O+nhn?c2P*22umcb(J_y6RqAh(Gf{4EbEwIpFm7B!si60TA8YeLM4iAV zGlrs0rxK^>qs2G56P5b7xHyb$8=ObSv)0Pg^p2d{d~^+iDH_4AF^DKzY9UGO zdytaU>1(QOc?pb|68ykzN+sVpn-blV^LDnxx;#FmzFb}c?R;HgZY6G99Jx8czM{St z>moiVi8&s;7tR<}V^|#y#Aenf?T>#){n^1m-)xKxT;c_Sjto{&0E$a`Yxv)4cdFe zP7MxJ33TE|7z}tVN@bc%Y+lRT$H$eC0ZbM~XvWIQ8i1*0|K7Nt)@D$oG;Z_>1fJel z$&+v`j=y$&=dH_3K)cjZCL~?)cBeUWrbPYfV7hQ>XW%XqPCk2e(|;>7YeqPm zq%lrz3Q~c-NL^D=j9fBJRHBLk#IkALbPkT_az5a{TrxUENzI2Ut1T9+$_v@<^|B|u z6Y{ZQh_UT@e^c($T@6E3S(&jc$%N+Gj;E9`zG4TOb% z7JmDYF4R17I8j)zszR5*Vi7|x$r$PMot2I4?=1c5XDqSipytR~4Xf58-|@AB(vHz* zyQd$0mf*Oz5M%V#`A8V!%5L7wG8c4xq}LKgOuDNkrgFV{kk8hyrnC6xy#Q}(&7;U^ zZ=d;W$=RivEu%+bL+d)cB`y+jT!x`0i7Hv-9KZir^NwEVrda%f(L*{}4KphAJG#0a zwROyoYwLhcgr8S7rIDUS#ML&=LVJJx@;YiU8+nS+U~IRFh=4_wHMcZ7Fa%h}H3*r` z`B0Sq*!$dd1=btsuU%CClPky)q$}9`k32CUlM<)_SnhsKEVP#m2)#A=m60=XCLsUI zk01BJkG+ArnV_#e4G#Se9&@j8@+^hUIj<9aj@VmhIUdU7MxjuVYHjtA+a-!6_@7V5 zu7q4VA8G>&FZxtgKDTKvFNZJuKA>jZ%?Cw&C9^I}NaH)vBP0FdjE>!@`fc%e8NX5= zqHp5r?Y1%#l9(BsMZsVuyH_unc;tSUw6?aEm8o}$Zt+S=lfme90i_8DwTvj@%Jwv7QeIz9@JX>i94&+YANg)Vs;_Qp^0 z{(jBN2qC9WGsI7nf_~+CoWK9#+#l6;GM;gDbu}?zFlWkA@Env_2{bnBm^(o2eru@t zd%GBv62D{w#`#CKVa2|@1_=f5zcA4F-Wd@QaYeQ<(puZ7T~*P`EXOP(4S*qyUc~~Y zUTEKuyV)RI_}cZX>pJe3#_7(qx{+;;0rlqQrqfPC)^63%L0enfA=^e=ecpDa%_}K! zad8EOnuxbA^AMF4)ipKT%*uW%$jScH`v&P64_=`aNr0n#mU>-J3QP*c}XAF;W`O2NxKFSI0Fk(K?t7h-rnfKau8^0+YG7?_+)wT`?#3; z(}@`M%qKCtEe89K#{c&IgZuB;e|i2(Wtlf{gp|So;*H0$zM3(9tx| Jz^K_r{~uK8?%eWl&sQ*JU6hEl@w*QUcEy4*LN;DGUDm4 z-;j@Zk$TDjJwLfvdwQF@TfLI9bg{6aR&p}8vC^_KxAb)zwi0{w3IJD+MC|uaQ5R6HcQ+Pdin#ky)46~w$|3RR(uUj>xt7NPSY9CkuGTNexq*H z5S&+8iG$Ua|CdD& zLH`e#AcFp{>HSA0_kVhhO2h*|pzA!DD9pESFE1}ul$B%S;>N8#R8_&lmiE(yN{=@u zqTaB7f?vOWeXq;iL?vTvyr%BsBjTr{Ll~1cKXQM$$7#}@27$O;K$ZNGQd5a3D8zlv zHVX?2v&H@W{QNG&AKkb!G~7@+^Ug4~;@rr0%~=M)tmyFtVFHE1_wT+b8yGDA(kZ(+ z-Jk*h{=vM5p9be7CU!TS3~rAs2wlBbzWvRK>XtNVMb!S}+?o_CMpC7}uJ@T>G=)n&nN-V?oCG4zLG1Jo zn`{hp^xRv5%_$T5-vUm{s~9^OXw!eUXL)}97DQUhmdVjG!Xp2%m>BJ_bXKn@!)42B zfcx7!P6NkKvM`bEathRlUhnM8*B(jkNl|e@&FpSp*$WN;WF#Dl(T^z4Lszr(}LiAqeT+Nuo?ArTQO3W}0% zVpqO8EX{whne`W;3?Go4=jiQKI-0t;o_=!tv7?Uz-$&C{eU}eRBAm#y{As!C&P=64 z>`e1!;-u%dIF<3wwk6qZgrcb3CET#br$+}F>A#Pw9)BQQ?(XhH97e!D;yffwKpx=v z`8hK)^F1_4edxisVZohotyiF6)1^Vq4{|`9{qb1}KJX)hZ5$d0#S_Kr1ossuzS;6U zEaz-ho2?ie$IS(y8Zv^K3+~;ZZco^N^mymE$rG#8g{DTbg$X(r&WWejCF?Rb0!HFt z%j7W8_?Val zkoz9Rt~o6SLN7fWC z*BqfUSok25y^RbV9~{2lzs3_eESbW?!z+x9Bjy~5fh;ZpZ`WlW^O~A&WAGVuD~*Jm zmidfNX*QZMyX#w&b#>>9R8oI(%UM7mkmSL~$Hy1TrkY(iy0#Vyu0t}&j@+4mx;nzR z?$ROL@T}3G0?!u0mYJZOa@Qd?zA-S<1S^uD>LwFCq>Zv>s&59G(O>lgE zb)ZAq-of>nEjGT_kpK-lK>?`XBY3Pl{Z7|Q%JP%^heupT76KU6d0nys2&0j);E5zM zsH6Zq5>VLjCFwNIa2sV*$i~Y}zNq_#nfBq3&sb1tf4+iTIFSuS@WSC7$643u$tkR@!xJc+mGT*59B%GtyI9N9IK$@lUCrkei9ic{&d&XRfk*6>F zdCmSr`Hve0KduHLXvQO1xH}_iU&SK3Q{oNZCRiNF3<=XYXP5AFHdAGZ6LxiZph}BU z9}-Wj47U#f;^N{)M@NluoH%OH)z$yBx3}M}`@8gnqIeYmUx$_%w|TMa*FvA}FN1=D za4v84DvfCRoe?{PfQy~MgxibSw(5w82&$kvbJyy$xSzj%*>7|PYH59AN%&Nv#%|o2 z+zH{DA{UIrBIWTpGh31@wHi%fS4g1zzD?6`bugo#K^b4ZjA(O@2<9==4Ra*)=y3VZWIZ5f*uu^>hv%T8!q{ z;Woo~B7YInx`e-g>oO)?gnx^QI@?>_3WM14PrS{yww6>eROYhv) zf0BFv-8zdG`1VVFnQO;1{Q~Q;9ltpDMl+s~bQ$uxndC*H?nZMxO-fcxZ{3!*nyQ^c zg-EG7)Wnki3{MJ<5Bwdbjjk?hcj~w42p0$_m#OeF4deF|yJMcml9qe^^O5o(xVOi9 z(v59d)XIIKt_CJWK-S-o!gJOaM_%LCrStlifPI#U?7YdAZ)R>tiu;jYolV8PGHbGP z$hx++cEDK=+Cr77_uOL0?Ck7V&738Q_XX%gOaq8IZ?OC*gjn>2R5{k zC!^Znd_LlXD8Q31hStJnC8I;l5{Nx{N{oZ0O-hBL?XN(JoL6bh9c!!Xd2>bcI}3*$ zW3jJ?m#XkbNWqp6K7$$CLxyIpHIxQiOiVISFE*6V7x>G!87`em?Y?yano|#?6@)3t z$!sR=&9$}PA_JB-Bc*o+z|0{r(b2ij2RZKeCyF+5Kjh`*BV}j{v%kt5p1S@*G%p~F z_&#u*uNl*8*UC8=U1Pbw@^Lc)tOEpF5e&vzmFaL5|DT5rivs$qcwrz1@C9b>7G^#d z_4w>@V^S>gakl-B9_>GUKcVD!A;0N_`|#-BcgfE;k477-=l7AdD4EYP-J@oGDVNoC zz)>!CbEH#yx-3Z=1k)a;GjQmaw4k3toB4M<0&ag~3E21RVO~f93vwGiWTCk@);&jG zU>h^{6|U+rViF>n0ePk9$4zC??RZM@R+%Uqs34S)piBc*+E=k-JxtqkyANZ|C2^2i zX)Iej!>EtgG@vHn{-VWWuhDreoq(2H!&7$n3en}Q-l0VmtS&PsEHmiS0_Q?3ou$Fs zG`vj(MoFxQ!={W%{OM=Se*CvqVxS1HlIWsEf8HIJ=1!TgU_N4n7!VjA|#str- zmJjXpR4FYiQQC#NKSDv<%MA`iMMaiJt*o+{XpUr_!(IjX`INp;yx4L}Az7E&+FGW* zX+L`5AO|$Nk;2>KB|4AyE#KV}1UCXa4rfaX)%6(_)zpdu3J^7K7U(6ttfHbq2eEbN zIlLEw3V5;!8akY~l_Vz4M=KHB&{R>p4|cgK@gY_UZwDpcpeE4e(I2F7@gAeqZ@PxF=5l;lnub_aRV&FvH$ zaQ%R}MJ04EvZ#yr?bV>TqiXfG15|PcFdypUZvrA{S84Nj;y5>RRI*vFn#Wr!JO)LZ z@X_I68kvK+GU9$k7(On)YpS|FHYpE1H#ek^RQz z{DaRU!+0nDfr|msM(-MF2?r8#IPcHqT92sIF$3Jgm6)9!xPINIyj z2l+r07EfL=^92?=ygpxnna8FnKf}+E)H1&~R8_eM;M?=L1<5&u!x}L2riy%V_xk9> z#k01b5k1|lZ;L_X^zu9c+`_`bO7S1U0Yh_TdK%WZPqLPPOtmM(Vb(zOcTZ%oEzz8 zlklV*4vr9+Ld)?9<^XOMZ5tnBllYRA3GW9Gp*h^1D-RA7Js4cW--hqfrKn^P#7Jtp<4a9 zL=TMb-o>1~X(LOv22}6LO@~34lMI0`T$ub*{9rhp0NwPuBym>lwViGuA&j#6o`3FR`rK%mUfIcL*F=>- zz3|8JP%SWAb}19LqeZ#*-VVMt%0aVdXz287!bF&IS&Cv&g4oVwIaaf!2pZJV5f7(WaQBRNw`X^Eclsm!(2CO= z#O6zoRWlT3qQenj^rRsgr*T6Io(v4!; z1$G6&<2XAP>+NPDZDkDELBL(Sckj;n@YN?x8wif7Z)BYi?aL+NCVql(G-*}VdYvpU zmo^obD&fdR&KYJXFBg>Q2@VWNcV{d{&GRTM>KqcZiw6bET zI`Su5+)&qAAL|B^GmKU zQy%a>d^In={WJ08GO=-0z-jMYA&Q{Fm`tPE*nEIYHZUri1kR}$@Cd_q^ru8yps~uY z2)+EjR#;&_#!)Rc85T@wPy;ug5gJ|2>@XpuVdgyKLWa&oY#~q!^rOL z?i3|I{zV8mt_`q%mZM{1wOEHNVf0+@`GOA}AnV3A^ zthns$?oOFpBr9e@M-E>urfy?LZ9U20Lly=&@&)r896thOE%&Ig_a6)a#!f%Z6C>+h za)!jCvx8-myqGw+yHx*4F_=A+XA@jxT z)F}JzTD(lnk?>YJ^n^A7umR2|S-li9@KOMwa5(n&yx{kirCvABsz34Z#dc&}{KWsJ z!D%{-VbqoH(J$W4b_R!L{!B5eA)`>%z_t$7)T=%Sq`iTEjMz`ziIP6WvGjfj;0=zrWygo zdI~+LA&5SF*&BrwC>vw zeUr00LhQeZC-!5v9GkQ?acMluAK!EiPK%@D=y<%7Ajz?JvD#D;UFon;Nx)NTXh)5U zfsw}+x;~U61j+eC9$QMp2Hf0C9!Q{4e=SL&V(cTW5lah?d`*vWU*3+@x{q(KM5UG` z(jX|~$QP81mrF;eYsHO4vui-0%=4@eM@w4dC zWey>V!b(fB^CwtYShUfKiq{CzbeL>QRA)1@C92BH18$aV9&cS-N!IRZ%muCelfdLL z-2;MjxQ}r}WD&!ncymTyy&3$;BL<3x1KO~qb2gYHJ+}$W`0XQ@OKtHuu)6c`(Haud z7%S!d$DviJl0iwK;g9{D^2ChPdbQt-200WKFz$j@wP0HtV}F0kqBo=XuS<97KY%m( z%%=wx)1&B^hgLa%Ve43(VZTSRigVsSQ|Y@_s2)Y5Mu_KOp`i?Fnfn*QXvB$lNk4~7 z@_aSsNn=x)CaHL>|8aAxVQW-Y-+mHf2g8$-yB-e9YNdAza@C+o`U>*$@g&@#Ul(=! zKH`LTjv}NLX3kXgz@gr$(r>tVmSGb5jgF+uTwGilL8eO{Mn(WR3tsE7=9p9Ug+@2> z%oek@UOtlkmJ0p3In3T)^%D5fF7{bO?fmh*Up*ZIkQH96eA9+i>ZZfXlVDId=T-=@ zMxb%|UmA)nTcEo##9oZ4@h zkJMPi;f|g=)fkA3`iycC6mdGv4p+7qNCgV?rI^jJ?D1V0U)e3f3)n^mH(+}3pf^kb z8#SM!u>6PKF!Rv#&Vm2g$85ix5M5eYx)7#c@>#C8gK~S4Q;B*x&J?Rg;ZTf>jV0qs z4<8ckGTyFwsCV!bm(zXt5MgAYrWVg;4=Kwlw3y75nkCHQE#gDNr7ZlK^URz?A{M|_d`b}=REI~jQ!8Gy&_*2lVcNY$UR4;D1OA!)0ItK`USu&+meWl4 zaSs`*x1(MDkauY-3#4M45dJD2H|c~d(h7V|`pzIStR`blHpZWyl-M@;OA_|LZ}HH> z*uB=oDiL+{y}26u{!yc>P$HxPZw~jIPIm5!DCqGDEh(xLH4eY8x5gwrlzPgag))G0 ztL6^(3o0nqm+ez)P!QkK#%$H+VMcieKNd?sP+hG@Bz# zgiKR>^8h=tC8b;onn@=cjJ=P4oH~pY!Pou(Ljf@<-R-S zftq7;_1Fei(iyUR9dGe!w)N{ok8GSsQxwALW-&9@V|h*U`0&3+aIJTP#jLIkbAfP| zGlKr+F9WvIn#rnUgVC<6)a4;B7&yJFTNl+?XP{7*;kzq9%NJ^%k=5rkv-|7Ht5!|#HTP+v`MjLNk; T9*rT~(pO4yYORZtv2vo4n4EWvFThrk94mH>+fw-6i_cXyYt$Rfc5L4rHM-GjR>1b4TfOMpP& za_T&ts&oIBdtYXztEc;$hpGAc>xooTk;TWM!a+en!IzhlR!2cW{jYTn7TWXZr`wSC zJW;xT&~g9dWa;i@;%b2+VeVvVK_~BEVr8LjVPfv%GHfA&f#U)f z-uZ7Re}+Dj^$>#yjfp-u7)40JLc&=bv)^4kNi`ObbV-yXG`pi&8K}Sy?8p^bjsp5qQI15}YzTewhTV556W1Icg z8MRC7sVf>y39>KSPdk}^7*VMs9ha-IS65#auXd7dTps8g zmaF;Zn}=?Fh)?h${~tKvDe5gS%N^dBWEfNu@H!MAU}vV{wyJ8ph=l32n&1U7$v zY7h_`w`udqS{6#`%?DDoy6!4iS+P126bWQqZ&XD^N4vSY5{*IZ>pMF^K?BEwSn%Fp z$4~0&wRLq3e==v&+uGXv7`j@vfF;suYHAx7-cvy^0yrE#nJEkxjaSyv$|Tjy1?OhK9-{ zu^k@%vS}G&HSryzh%5?4%hW{y*1fSs^z};N1B5ZNNw2%~ zah_Jd@z)-Du921nX=~>8C6og~qP%@E!_L--ZN$u%TYmCT0DcXgbbO;yv%Ga@>?}nQ zI)aafSNG#OCl8caTW%HN9F8!E=y;&k7*&!ZcbUpOD90I#L=^1=WC`pnp5`Vkf;*n&phPzce$&AOYQ z$*a67g2bj^@UONt8A{9*ulE;MfsIL9+1}QcmX@}+i(~=j5a>S#6is3zX~|YrRt%s} z2PTRkx62**>`6F!153oC3n?=*^AZW|-Q?ZX{&Zw)Z}Sc@tI8YwM!d+j)9}xK^4!2u zF|2vccN7EK?k!Gei|P(F`j_u||FZXklu=&F-eexDD#Sso?wOvfl_cqzu{gL!ZwJPZ z7q4Wdr=>n3mj=QGBBUEBAm=~kuP4U)i&+2N-*9EWTc%BcdE#fDAXIOfjI>Ym>?nAZ zP)*U@%9l7rzscmx2n=P=`>AA$;@hbylf}>KcrtZq$*;vf|WFRQP7MBY=?AcHahuxhv|HF_Rx#FHl zFkZ-%b#h^dCZk;S@%0rtLGgWACex>BLVJLk1!A!tgJ`&f z8C}qeiLHMH`S|!8+#O8k_Z<8JO>rO`fsn4W=d)wql*dx$Lp%NNP8REw&*Tj;raoo| z{7LiV!7mp73=1G9A+hE!NHAt6)O3a(jdxQx>pMdc^SH!G$xYf8VICqPQ8d$%o`w}BqxNMhZ*prJ=uXLfz{&|PX6wm42wZ8p@fe-cFi`P+R+b(8rVvxSmN)Wa0XvKEc*42*K z`IhmWo~aa&6fz6B7B;h@aQ7Usb5E%tH0a%2OJM0Jd5Y#%yzy)Ba?8T;+k&(06Ofop z1J$FYe@4!C>FJ{Pzn^Lcz`I3Zz1r?$I0Fy&+p7b~G`|?a8t7A*^oZPA!~rEw-B{-&&Z_J(YK#pk6#rk+bn}s->>fD6iE-m(u=Z zHm%cPQDb9cQIX6zv2#uh6^HF)Sz>opgq-|fW?EV)sTc)mxe*rc1-?0{BqmAv5~-+J z$y~8(H|)hmNEvGwR;aOJdqjCYTmjqp(M~=NyK1old=n}aOmy$Epr?-+*MOfUP)qQnh_}`#Im$w99IBE3T9vSW~yO@Zf9KsVH4q`1`U)YW#Q& zCOOhCpQCsUofH*Eck(d14qmwo7;5j*+@ys+*8I&e3OrUiQ@(->3_LAQv0ndW{>H1f zN1fc1vY+CMw9sqr`>H1Wu2j=qm#6Z#i~`)1iI*I=uNGRP(b8twD6AB>X^a$ipCxZz zAlA`H&5Z$BSXh`|DEPhU^!eQ|Z=5i7d|rOuaNaiOMOeC};DL~zckYTQDq?Xc#R$jR zD(%MTp#L;4&?P7r&8m?jZpJOWjD14gjR8&Lq^3B`t@shqrRXbnsxi2loHeN8p;(q) z%l4!-e>Ii9*!q{walx&)t+yZZdSLNu%E?DceI-gvy9PI@BpT#F}R zZtyQH6~wJSX!N$exxM{iXEL{UU_Ddh}X?Wq+l(k-AFzDCONKXA@5*Vge9vIWkhOQfAv8mqfl zTCw_A^T_DQ~fTjhT8zG<_qIUn0yDkU9omFSM`f z2xyKI`#hm5d7BAOrDxOA+v8lV%t6lf*~wzfEqpU2<)&<2T zMrlB`cX+|E*bX(nF0`Vgq|0aBXCJsj&G`+SHI3T~i-VH~?WI}ew9QpQaoMu@d?Rkp z+t&Ya)|^n1YoiChciW?Dn34g|TVg<@?Ypg6h2kQDO?Smt{ju5gX5~n)I44cS|4nE_K7mk)s1Ajx5kh|H}>qo*>*_pxq%Y^ zTmA1Y_r^0~hHDZ)^0~_(*p&OK$Nb^Zfu3)~0bit#G+;}|Wbs|qbzoo5X9Ylw@jvDo zo6RMbdNrO*B#PF=m7H#=I$X83Um(@}mcWQ+K`j|fReyuY3Ge?x2ORu1O zdCJl9kHGts0qG1jGICD~T}ldU8Lf_!qs_xurayWV61uvSEFh7)UfM@Gf2QwA3sSkt zwI=_HRkKB%H&DDS_`0!w`}ONS1d3T}sjI_m<}88iJ{pxciocJJj?T_xr!uCPwg?aS z8kFAWRy3G?P>HcIN^BjxKl>TSmO8*;m~_(bSm#hVvFcV2Df48gLteI=27z7=XC&ab zJ`^L?U+4y9bn zdJzO}3Hc#-Vz=FZf}yn}uk`?OEsvww(uoNbhw{(E0(^X3wI2NvAIWAz?(5c7>kB(#uj_-(HGYciMkOEv_$=vZk1#_T^_+?D) z=wmd$Pa5hgN&;i*umbu z?`G)C!%)i(LI>bWwL$%u3PtQ^8+YdvdJCv2uPftzlRrewD>HxD;o_kMQu%6XA>nY! z)53Ags`9-HBE1sA)fMA=T+!4g#P5%B8dCF*HQOJtw8Z|d+O!|X1HgRRB}*HCp&NEK z-P;*(|CX2c8;5>4mcPdVkKlTPP2fajoF20We5h+k->Ow2PHNw;urb)WMx?e6xseDP z3so(o?n{SSlE<|Lq*vLY5YK7io{DO^ZUc4U-SvOpa?o#ZKgRe{%Foz$cLghD#md4yDy=6D#Kj9S&!&aR>zk6uDNq*|sxJuPzLS*Tgn67Qz(Yns_w;s=JzHD4$L&GyGZL)0Fku2+ZdK?6QbSj%z^*Dzy#gTFa z>d)Vux7G?CSIS8-n)P3*S#S5W_u14*7!0#a`lU((6dx8m%7{x7cHB$)@7tA%1?}u3 zeI~OYRX-nFbt=Q2!o^|73Q7PrbuBO#7hLQU2c8yMono~RQz#+HlEwk*_PKAzfwbMo zkUytk`#Y~wgXql9)XvKcF$tzs&o!44gRc^VACs7n-Otx|&3hYvW%5~?Z9jI6@Vpp| z1?tyZzmhH@S(HCtva2!~V_-2}X!ggjW!h@K`=MPWBlfJtnlWYI{oWYwLTr{nlO}uBsT-rPhAMYejV%oEa%?vU);D`PUc1m@<#( zk!orL0CnU^e5X-b#y%(?Q$zT))RUY}9k*ax9@qSQu9}FyiqJ2RxSSyJLvg9y*2suL zYQ!IWDQUxT{d$(PQo{&WvZe4It!s>o(;=}MTveJ=LiI%?X(qlE-uh8;97Ht z$>0?c`xJW9>G@_aotVaM)6aju?W#Jo2#LnIm1zTS>1ik}aq`H&RR=u<67IzcpQfh3 zRf~`mEYTMM^&)pxSXnhRjv8Llw(oXKoho( z+<3Nklf3Ooiu&&w;C1cS(`JY1W^0zL1U12WvpJV_07xX2sgRN;6h7lf(>Ht611o8> zxgk(d3@~16_fbrF^Gd&978qQO*C!5!Kiy3RiMk)eV*$~ye51*^8bOd*--+4m8^Yn2 zUkpheO;+f{9tciJO(RmtF>v^#%E?v;W999SB&g-y{vs|7JYp~2OZcU<3{n;fMqkcp>>c6&vFM(O|05|{`R`potIoanLZtV1``NvG^p^Ep z$*@A0V(Z(mBZ~%PYD!v29sJ(^{&&-_*3NgUu|VPYhIQ}l80UIDH~5Qfv`sW|K(k?j zb?J-v@eIL?PFV(*Qy%D+LKCAz6BY|7hx{%)7TZ*FX@nO|8xG>FQ$Nef__sw4Ww9%F zy@h10>!zM5D4!$uU!nO_`$5 zGwz>J$3Na!$k8(w zh*;>d_!Iv@#szLCnaShET2>4=ac-s1s;$lzSiR=!{~4W|wYiK(O(A=^lv+<^2{PiTh)7}b;`Qm5 z(^;jjWcl3e>K!LcOUQ11OpzV?Ac%OvL5in zoZ`nm)eM5}ud9Nf+S-`M^Nvs+E$;f_@KTcnHS0LhzXzdNJ-_B4_58%(7EE{GEYNYU z<7Uk+;1{X=pv4v%mqGLA9UM`t{TJ_F^>*`M3?mTgH4F@#w2U^-oZWBv!8!RbVOwR@ za691C^r<-%H9NEMr#_GHxQ&g=8!a-LQHc4~U@nQnxf~i3X!BBWQ%SMT`QfPK4>enfZ+#USy`5me7I?BuOJlE&vS=Un2lakQA8l5*K z`DdTokpaj0>q6e=Io@VRBt}8(x(}Fmi5Yq221md-Uk~?;BX@6z)>CHGXh5*ITEL;P zx0+8{>1n;o2@r|t=g*kfa30KAi^yC&9e%1K0s?`l^v&iNE)}*tUwX7xpNmPbR(V%F z^PkRx+~Q){fb2Y-=+MekP8a)jTRiI6t9`L2A2+wUIZ@-z_}2ij2ky$koE+n*B6Lyl z3>)n+y0k<`D;f}pj1pJ!I|WKOdsb}U=Ft+$QcfYs;%3pz4?PtaN|F9NA$6FhnP*Y0 zu*uSa1fh}QIjt%q79xaB4gjNrV8M`d|Euwzz0Yy~A@;ws{@*hH56u5>Ff1WY#KtH= YJsmus&drd|A5AFoA5^3(C5>VK2g|Ax`v3p{ diff --git a/plugin.video.alfa/servers/mp4upload.py b/plugin.video.alfa/servers/mp4upload.py index 83134cb1..a99f864a 100644 --- a/plugin.video.alfa/servers/mp4upload.py +++ b/plugin.video.alfa/servers/mp4upload.py @@ -7,25 +7,24 @@ from core import scrapertools from lib import jsunpack from platformcode import logger +def test_video_exists(page_url): + data = httptools.downloadpage(page_url).data + if data == "File was deleted" or data == '': + return False, "[mp4upload] El video ha sido borrado" + def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("(page_url='%s')" % page_url) - data = re.sub(r"\n|\r|\t|\s{2}", "", httptools.downloadpage(page_url).data) - match = scrapertools.find_single_match(data, "") data = jsunpack.unpack(match) data = data.replace("\\'", "'") - media_url = scrapertools.find_single_match(data, '{type:"video/mp4",src:"([^"]+)"}') if not media_url: media_url = scrapertools.find_single_match(data, '"file":"([^"]+)') logger.info("media_url=" + media_url) - video_urls = list() video_urls.append([scrapertools.get_filename_from_url(media_url)[-4:] + " [mp4upload]", media_url]) - for video_url in video_urls: logger.info("%s - %s" % (video_url[0], video_url[1])) - return video_urls diff --git a/plugin.video.alfa/servers/powvideo.json b/plugin.video.alfa/servers/powvideo.json index b7670faf..901bd15f 100755 --- a/plugin.video.alfa/servers/powvideo.json +++ b/plugin.video.alfa/servers/powvideo.json @@ -4,8 +4,8 @@ "ignore_urls": [], "patterns": [ { - "pattern": "powvideo.(?:net|xyz|cc)/(?:embed-|iframe-|preview-|)([a-z0-9]+)", - "url": "http://powvideo.net/iframe-\\1-954x562.html" + "pattern": "(?:powvideo|povw1deo).(?:net|xyz|com)/(?:embed-|iframe-|preview-|)([a-z0-9]+)", + "url": "http://powvideo.net/iframe-\\1-1536x701.html" } ] }, diff --git a/plugin.video.alfa/servers/powvideo.py b/plugin.video.alfa/servers/powvideo.py index 7d32954b..6375f4d3 100644 --- a/plugin.video.alfa/servers/powvideo.py +++ b/plugin.video.alfa/servers/powvideo.py @@ -14,6 +14,9 @@ headers = [['User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/2 def test_video_exists(page_url): referer = page_url.replace('iframe', 'preview') + + httptools.downloadpage(referer) + data = httptools.downloadpage(page_url, headers={'referer': referer}).data if data == "File was deleted" or data == '': return False, "[powvideo] El video ha sido borrado" From 261017dc7d7b3e539cf81fa798526595047659b9 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Thu, 7 Mar 2019 11:05:46 -0500 Subject: [PATCH 2/3] Add files via upload --- plugin.video.alfa/videolibrary_service.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/plugin.video.alfa/videolibrary_service.py b/plugin.video.alfa/videolibrary_service.py index e0163325..f9d31d16 100644 --- a/plugin.video.alfa/videolibrary_service.py +++ b/plugin.video.alfa/videolibrary_service.py @@ -12,6 +12,7 @@ from channels import videolibrary from lib import generictools + def update(path, p_dialog, i, t, serie, overwrite): logger.info("Actualizando " + path) insertados_total = 0 @@ -96,7 +97,6 @@ def update(path, p_dialog, i, t, serie, overwrite): def check_for_update(overwrite=True): logger.info("Actualizando series...") - p_dialog = None serie_actualizada = False update_when_finished = False @@ -284,7 +284,9 @@ def start(thread=True): def monitor_update(): update_setting = config.get_setting("update", "videolibrary") + # "Actualizar "Una sola vez al dia" o "al inicar Kodi y al menos una vez al dia" + if update_setting == 2 or update_setting == 3: hoy = datetime.date.today() last_check = config.get_setting("updatelibrary_last_check", "videolibrary") @@ -310,9 +312,14 @@ if __name__ == "__main__": import xbmc import time + # modo adulto: # sistema actual 0: Nunca, 1:Siempre, 2:Solo hasta que se reinicie Kodi # si es == 2 lo desactivamos. + if config.get_platform(True)['num_version'] >= 17.0: + from lib.alfaresolver import updated, update_now + if not updated(): + update_now() if config.get_setting("adult_mode") == 2: config.set_setting("adult_mode", 0) @@ -321,6 +328,7 @@ if __name__ == "__main__": if wait > 0: xbmc.sleep(wait) + # Verificar quick-fixes al abrirse Kodi, y dejarlo corriendo como Thread from platformcode import updater updater.check_addon_init() From c2617c6c3b953000cb234de0cd32385117404541 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Thu, 7 Mar 2019 11:06:16 -0500 Subject: [PATCH 3/3] Add files via upload --- plugin.video.alfa/lib/alfaresolver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin.video.alfa/lib/alfaresolver.py b/plugin.video.alfa/lib/alfaresolver.py index 34e59d85..6c2703c9 100644 --- a/plugin.video.alfa/lib/alfaresolver.py +++ b/plugin.video.alfa/lib/alfaresolver.py @@ -1 +1 @@ -import base64; exec(base64.b64decode('aW1wb3J0IG1hcnNoYWwKZXhlYyhtYXJzaGFsLmxvYWRzKGJhc2U2NC5iNjRkZWNvZGUoJ1l3QUFBQUFBQUFBQUdRQUFBRUFBQUFCejRRQUFBR1FBQUdRQkFHd0FBRm9BQUdRQUFHUUJBR3dCQUZvQkFHUUFBR1FCQUd3Q0FGb0NBR1FBQUdRQkFHd0RBRm9EQUdRQUFHUUNBR3dFQUcwRkFGb0ZBRzBHQUZvR0FBRmtBd0JsQndCbUFRQmtCQUNFQUFDREFBQlpXZ2dBWkFVQWhBQUFXZ2tBWkFZQWhBQUFXZ29BWkFjQWhBQUFXZ3NBWkFnQWhBQUFXZ3dBWkFrQWhBQUFXZzBBWndBQVpBb0FaQXNBWkF3QVpBMEFaQTRBWkE4QVpCQUFaQkVBWkJJQVpCTUFaQTRBWkJRQVpBNEFaQXNBWkJVQVpCWUFaQklBWkJjQVpCZ0FaQmtBWkE0QVpCY0FaQm9BWkJzQVp4Z0Fad0lBV2c0QVpBRUFVeWdjQUFBQWFmLy8vLzlPS0FJQUFBQjBCZ0FBQUd4dloyZGxjblFHQUFBQVkyOXVabWxuZEFZQUFBQnNiREV4YkRGakFBQUFBQUFBQUFBQ0FBQUFRZ0FBQUhNdkFBQUFaUUFBV2dFQVpBQUFoQUFBV2dJQVpBRUFoQUFBV2dNQVpBSUFaQU1BaEFFQVdnUUFaQVFBaEFBQVdnVUFVbE1vQlFBQUFHTUNBQUFBQndBQUFBVUFBQUJEQUFBQWM4VURBQUI4QVFCOEFBQmZBQUJrQVFCOEFBQmZBUUJuQUFCOEFBQmZBZ0I4QUFCcUF3Q0RBQUJjQWdCOEFBQmZCQUI4QUFCZkJRQjhBQUJxQkFCeXdRTjBCZ0JxQndCa0FnQjhBQUJxQVFBV2d3RUFhZ2dBZkFBQWFnQUFnd0VBZlFJQWVOUUFkQWtBZkFJQWd3RUFSRjNHQUZ3Q0FIMERBSDBFQUh3RUFHUURBQmxrQXdBZ1pBUUFhd0lBY3A0QWZBQUFhZ29BZkFRQVpBTUFHWU1CQUc0SEFId0VBR1FEQUJsOUJRQjhBQUJxQ3dCMERBQjhCQUJrQlFBWlpBWUFnd0lBZkFVQWd3SUFmUVlBWkFjQWZBWUFhd2NBY3ZvQWZBQUFhZ0FBYWcwQWZBUUFaQWdBR1dRSEFId0dBQmRrQndBWGd3SUFmQUFBWHdBQWNXc0FaQWtBZkFZQWF3Y0FjaTBCZkFBQWFnQUFhZzBBZkFRQVpBZ0FHV1FKQUh3R0FCZGtDUUFYZ3dJQWZBQUFYd0FBY1dzQVpBQUFVM0ZyQUZkMEJnQnFCd0JrQ2dCOEFBQnFBUUFXZ3dFQWFnZ0FmQUFBYWdBQWd3RUFmUUlBZU5RQWRBa0FmQUlBZ3dFQVJGM0dBRndDQUgwREFIMEVBSHdFQUdRREFCbGtBd0FnWkFRQWF3SUFjcGNCZkFBQWFnb0FmQVFBWkFNQUdZTUJBRzRIQUh3RUFHUURBQmw5QlFCOEFBQnFDd0IwREFCOEJBQmtCUUFaWkFZQWd3SUFmQVVBZ3dJQWZRWUFaQWNBZkFZQWF3Y0Fjdk1CZkFBQWFnQUFhZzBBZkFRQVpBZ0FHV1FMQUh3R0FCZGtDd0FYZ3dJQWZBQUFYd0FBY1dRQlpBa0FmQVlBYXdjQWNpWUNmQUFBYWdBQWFnMEFmQVFBWkFnQUdXUU1BSHdHQUJka0RBQVhnd0lBZkFBQVh3QUFjV1FCWkFBQVUzRmtBVmQwQmdCcUJ3QmtEUUI4QUFCcUFRQVdnd0VBYWdnQWZBQUFhZ0FBZ3dFQWZRSUFlS01BZEFrQWZBSUFnd0VBUkYyVkFGd0NBSDBEQUgwRUFId0FBR29MQUhRTUFId0VBR1FGQUJsa0JnQ0RBZ0JrQVFDREFnQjlCZ0JrQndCOEJnQnJCd0J5dXdKOEFBQnFBQUJxRFFCOEJBQmtDQUFaWkFjQWZBWUFGMlFIQUJlREFnQjhBQUJmQUFCeFhRSmtDUUI4QmdCckJ3Qnk3Z0o4QUFCcUFBQnFEUUI4QkFCa0NBQVpaQWtBZkFZQUYyUUpBQmVEQWdCOEFBQmZBQUJ4WFFKa0FBQlRjVjBDVjNRR0FHb0hBR1FPQUh3QUFHb0JBQmFEQVFCcUNBQjhBQUJxQUFDREFRQjlBZ0I0cGdCMENRQjhBZ0NEQVFCRVhaVUFYQUlBZlFNQWZRUUFmQUFBYWdzQWRBd0FmQVFBWkFVQUdXUUdBSU1DQUdRQkFJTUNBSDBHQUdRSEFId0dBR3NIQUhLREEzd0FBR29BQUdvTkFId0VBR1FJQUJsa0N3QjhCZ0FYWkFzQUY0TUNBSHdBQUY4QUFIRWxBMlFKQUh3R0FHc0hBSEsyQTN3QUFHb0FBR29OQUh3RUFHUUlBQmxrREFCOEJnQVhaQXdBRjRNQ0FId0FBRjhBQUhFbEEyUUFBRk54SlFOWGJnQUFaQUFBVXlnUEFBQUFUblFBQUFBQWN4NEFBQUFvSlhOY0tDY29XMTRuWFNvcEp5eGNjeW9uS0Z0ZUoxMHFLU2RjS1NscEFnQUFBSE1DQUFBQVhIaHBBUUFBQUdrUUFBQUFkQUVBQUFBbmFRQUFBQUIwQVFBQUFDSnpJZ0FBQUNnbGMxd29YRnduS0M0cVB5bGNYQ2NzWEhNcVhGd25LQzRxUHlsY1hDZGNLU2x6QWdBQUFGd25jd0lBQUFCY0luTVJBQUFBS0NWelhDZ25LRnRlSjEwcUtTZGNLU2x6RXdBQUFDZ2xjMXdvWEZ3bktDNHFQeWxjWENkY0tTa29EZ0FBQUhRRUFBQUFaR0YwWVhRSEFBQUFablZ1WTJsdmJuUUZBQUFBYkdsemRHRjBCZ0FBQUd3eGJHd3hNWFFHQUFBQWJERnNNVEV4ZEFNQUFBQnRjMmQwQWdBQUFISmxkQWNBQUFCamIyMXdhV3hsZEFjQUFBQm1hVzVrWVd4c2RBa0FBQUJsYm5WdFpYSmhkR1YwQlFBQUFIVnVhR1Y0ZEFZQUFBQnNNV3d4TVd4MEF3QUFBR2x1ZEhRSEFBQUFjbVZ3YkdGalpTZ0hBQUFBZEFRQUFBQnpaV3htVWdZQUFBQjBCZ0FBQUd4c01URXhNWFFCQUFBQWFYUUZBQUFBYldGMFkyaDBBUUFBQUhoMEJRQUFBSFpoYkc5eUtBQUFBQUFvQUFBQUFITUlBQUFBUEhOMGNtbHVaejUwQ0FBQUFGOWZhVzVwZEY5ZktRQUFBSE5PQUFBQUFBRUpBZ2tCQ1FJWUF3a0NJZ0VaQVRFQkh3SU1BU2NCREFFbkF3Z0RJZ0VaQVRFQkh3SU1BU2NCREFFbkF3Z0RJZ0VaQVI4Q0RBRW5BUXdCSndNSUF5SUJHUUVmQWd3Qkp3RU1BU2NEWXdFQUFBQUhBQUFBQlFBQUFFTUFBQUJ6QUFJQUFIUUFBR29CQUdRQkFId0FBR29DQUlNQ0FIMEJBSHdCQUhNbEFIUURBR1FDQUdZQ0FGTjhBUUJxQkFCa0F3Q0RBUUI5QWdCOEFRQnFCQUJrQkFDREFRQnFCUUJrQlFDREFRQjhBQUJmQmdCNE53QjBCd0I4QUFCcUJnQ0RBUUJFWFNZQVhBSUFmUU1BZlFRQWZBUUFhZ2dBZ3dBQVpBTUFaQVlBSVh3QUFHb0dBSHdEQUR4eFh3QlhmQUFBYWdZQVpBY0FHV1FFQUNCa0NBQnJBZ0J5MlFCNE5nQjBCd0I4QUFCcUJnQ0RBUUJFWFNJQVhBSUFmUU1BZlFRQWZBQUFhZ2tBZkFRQWd3RUFmQUFBYWdZQWZBTUFQSEd3QUZkdUFBQjhBQUJxQWdCcUNnQjhBUUJxQkFCa0J3Q0RBUUJrQWdDREFnQjhBQUJmQWdCMEFBQnFBUUJrQ1FCOEFnQVdmQUFBYWdJQVpBb0FkQUFBYWdzQWd3SUJmUUVBZkFFQWN5d0JkQU1BWkFJQVpnSUFVM1FNQUh3QkFHb0VBR1FEQUlNQkFHUUhBSU1DQUgwRkFId0FBR29DQUdvS0FId0JBR29FQUdRSEFJTUJBR1FDQUlNQ0FId0FBRjhDQUhnd0FIUU5BSHdGQUlNQkFFUmRJZ0I5QmdCOEFBQnFCZ0JxRGdCOEFBQnFCZ0JxRHdCa0J3Q0RBUUNEQVFBQmNYSUJWM1FBQUdvQkFHUUxBSHdBQUdvQ0FJTUNBSDBCQUh3QkFITzlBWFFEQUdRQ0FHWUNBRk44QVFCcUJBQmtBd0NEQVFCcUNBQ0RBQUI4QUFCZkVBQjhBQUJxQWdCcUNnQjhBUUJxQkFCa0J3Q0RBUUJrQWdDREFnQjhBQUJmQWdCMEVRQmtBZ0JtQWdCVEtBd0FBQUJPY3hvQUFBQjJZWElnS0Z4M0tpbGNjeW85WEhNcVhGc29MaW8vS1Z4ZE8xSURBQUFBYVFFQUFBQnBBZ0FBQUhRQkFBQUFMR24vLy8vL2FRQUFBQUJ6QWdBQUFGeDRjeVVBQUFCY0tHWjFibU4wYVc5dVhDZ3VLajk5WENnbGN5eGNjeW9vVzE1Y0tWMHFLVndwWENrN2RBVUFBQUJtYkdGbmMzTnVBQUFBZG1GeUlDaGNkeW9wWEhNcVBWeHpLbVoxYm1OMGFXOXVYSE1xWENoY2N5cGJYaXhkS2l4Y2N5cGJYbHdwWFNwY0tWeHpLbHg3TGlvL1hIMWNjeXBsYkhObFhIdGNjeXBjZHlwY2N5bzlYSE1xWEhjcU8xeHpLbHg5WEhNcWNtVjBkWEp1SUZ4M0tqdGNjeXBjZlRzb0VnQUFBRklNQUFBQWRBWUFBQUJ6WldGeVkyaFNCZ0FBQUhRRkFBQUFSbUZzYzJWMEJRQUFBR2R5YjNWd2RBVUFBQUJ6Y0d4cGRGSUlBQUFBVWc4QUFBQjBCUUFBQUhOMGNtbHdVaEFBQUFCU0V3QUFBSFFHQUFBQVJFOVVRVXhNVWhJQUFBQjBCUUFBQUhKaGJtZGxkQVlBQUFCaGNIQmxibVIwQXdBQUFIQnZjRklIQUFBQWRBUUFBQUJVY25WbEtBY0FBQUJTRkFBQUFIUUJBQUFBYlhRR0FBQUFibTl0WW5KbFVoWUFBQUIwQVFBQUFIWjBCZ0FBQUc1MWJXVnliMUlZQUFBQUtBQUFBQUFvQUFBQUFITUlBQUFBUEhOMGNtbHVaejVTQ1FBQUFHd0FBQUJ6TUFBQUFBQUVGUUVHQUFvQ0R3RWJBUndBSGdJWEFSd0FIUUloQmlJQkJnQUtBaGdDSVFJVEFDQUZGUUVHQUFvQ0dBSWhBbElEQUFBQVl3TUFBQUFMQUFBQUNBQUFBRU1BQUFCenZBRUFBSFFBQUh3QUFHb0JBSHdCQUJtREFRQjlBd0IwQWdCcUF3QjhBd0NEQVFCOUF3QmtBUUI5QkFCNFJBQjBCQUIwQlFCOEF3Q0RBUUNEQVFCRVhUQUFmUVVBZkFRQVpBSUFaQU1BZEFZQWRBY0FmQU1BZkFVQUdZTUJBSU1CQUdRRUFCOFhaQVVBSHhjM2ZRUUFjVHNBVjNRSUFIUUpBR29LQUh3RUFJTUJBR1FHQUlNQ0FIMERBSHdDQUdRQkFHc0NBSEtYQUh3REFGTjBCQUJrQndDREFRQjlCZ0JrQ0FCOUJ3QmtBUUI5Q0FCNFlBQjBCQUJrQndDREFRQkVYVklBZlFVQWZBY0FmQVlBZkFVQUdSZDBCd0I4QWdCOEJRQjBCUUI4QWdDREFRQVdHWU1CQUJka0J3QVdmUWNBZkFZQWZBVUFHWDBKQUh3R0FId0hBQmw4QmdCOEJRQThmQWtBZkFZQWZBY0FQSEc4QUZka0NBQjlDZ0JrQ0FCOUJ3QjRqZ0IwQkFCMEJRQjhBd0NEQVFDREFRQkVYWG9BZlFVQWZBb0FaQWtBRjJRSEFCWjlDZ0I4QndCOEJnQjhDZ0FaRjJRSEFCWjlCd0I4QmdCOENnQVpmUWtBZkFZQWZBY0FHWHdHQUh3S0FEeDhDUUI4QmdCOEJ3QThmQWdBZEFzQWRBY0FmQU1BZkFVQUdZTUJBSHdHQUh3R0FId0tBQmw4QmdCOEJ3QVpGMlFIQUJZWlFZTUJBRGQ5Q0FCeE1RRlhmQWdBYWd3QVpBWUFnd0VBVXlnS0FBQUFUbElEQUFBQWRBRUFBQUFsZEFJQUFBQXdNR2tDQUFBQWFmNy8vLzkwQkFBQUFIVjBaamhwQUFFQUFHa0FBQUFBYVFFQUFBQW9EUUFBQUhRREFBQUFjM1J5VWdnQUFBQjBCZ0FBQUdKaGMyVTJOSFFKQUFBQVlqWTBaR1ZqYjJSbFVpTUFBQUIwQXdBQUFHeGxiblFEQUFBQWFHVjRkQU1BQUFCdmNtUjBCd0FBQUhWdWFXTnZaR1YwQmdBQUFIVnliR3hwWW5RSEFBQUFkVzV4ZFc5MFpYUUdBQUFBZFc1cFkyaHlkQVlBQUFCbGJtTnZaR1VvQ3dBQUFGSVVBQUFBZEFNQUFBQnVkVzEwQVFBQUFITjBBUUFBQUhKU0dBQUFBSFFCQUFBQWVYUUJBQUFBZEhRQkFBQUFkWFFCQUFBQWQxSXBBQUFBZEFFQUFBQkJLQUFBQUFBb0FBQUFBSE1JQUFBQVBITjBjbWx1Wno1U0VRQUFBSmdBQUFCek5BQUFBQUFCRXdJUEFnWUJHUUV1QWhnQkRBQUVBZ3dCQmdBR0FSTUJLZ0VLQVE0QkRnSUdBQVlCR1FFT0FSSUJDZ0VPQVFvQk5nSmpBZ0FBQUFJQUFBQUVBQUFBUXdBQUFITVdBQUFBZEFBQWFnRUFaQUVBWkFJQWhBQUFmQUVBZ3dNQVV5Z0RBQUFBVG5NVEFBQUFYRng0VzJFdFpqQXRPVjFiWVMxbU1DMDVYV01CQUFBQUFRQUFBQUlBQUFCVEFBQUFjeGNBQUFCOEFBQnFBQUNEQUFCa0FRQWZhZ0VBWkFJQWd3RUFVeWdEQUFBQVRta0NBQUFBVWpJQUFBQW9BZ0FBQUZJZkFBQUFkQVlBQUFCa1pXTnZaR1VvQVFBQUFGSW5BQUFBS0FBQUFBQW9BQUFBQUhNSUFBQUFQSE4wY21sdVp6NTBDQUFBQUR4c1lXMWlaR0UrdXdBQUFITUFBQUFBS0FJQUFBQlNEQUFBQUhRREFBQUFjM1ZpS0FJQUFBQlNGQUFBQUhRREFBQUFkSGgwS0FBQUFBQW9BQUFBQUhNSUFBQUFQSE4wY21sdVp6NVNFQUFBQUxvQUFBQnpBZ0FBQUFBQktBWUFBQUIwQ0FBQUFGOWZibUZ0WlY5ZmRBb0FBQUJmWDIxdlpIVnNaVjlmVWhvQUFBQlNDUUFBQUZJUkFBQUFVaEFBQUFBb0FBQUFBQ2dBQUFBQUtBQUFBQUJ6Q0FBQUFEeHpkSEpwYm1jK1VnSUFBQUFuQUFBQWN3Z0FBQUFHQWdsRENTd01JbU1BQUFBQUF3QUFBQUlBQUFCREFBQUFjMklBQUFCa0FRQmtBQUJzQUFCOUFBQjBBUUJxQWdDREFBQnpIQUIwQXdCVGZBQUFhZ1FBZ3dBQWFnVUFaQUlBZ3dFQWZRRUFkQVlBYWdjQVpBTUFHWDBDQUh3QkFHUUVBR3NEQUhOV0FId0NBR1FGQUdzREFISmFBSFFJQUZOMEF3QlRaQUFBVXlnR0FBQUFUbW4vLy8vL2RBWUFBQUJoZFhSb2IzSnBBQUFBQUhNS0FBQUFRV3htWVNCQlpHUnZibk1iQUFBQWNHeDFaMmx1T2k4dmNHeDFaMmx1TG5acFpHVnZMbUZzWm1FdktBa0FBQUIwQ1FBQUFIaGliV05oWkdSdmJsSUJBQUFBZEFjQUFBQnBjMTk0WW0xalVpWUFBQUIwQlFBQUFFRmtaRzl1ZEF3QUFBQm5aWFJCWkdSdmJrbHVabTkwQXdBQUFITjVjM1FFQUFBQVlYSm5kbEllQUFBQUtBTUFBQUJTU0FBQUFGSkhBQUFBZEFvQUFBQmhaR1J2Ymw5dVlXMWxLQUFBQUFBb0FBQUFBSE1JQUFBQVBITjBjbWx1Wno1MEJBQUFBR055WVdIREFBQUFjeEFBQUFBQUFRd0NEQUVFQWhVQkRRSVlBUVFDWXdFQUFBQUdBQUFBQkFBQUFFTUFBQUJ6cHdBQUFHUUJBR1FBQUd3QUFIMEJBR1FCQUdRQUFHd0JBSDBDQUhRQ0FId0FBSU1CQUdRQ0FHc0VBSEtqQUhRREFJTUFBSE9qQUh3QkFHb0VBR1FDQUhRQ0FId0FBSU1CQUlNQ0FIMERBSFFGQUh3QUFJTUJBSDBFQUh3RUFId0RBQmw5QlFCNEtnQjhCQUI4QXdBWmZBVUFhd0lBY28wQWZBRUFhZ1lBZkFJQWFnY0Fnd0VBZkFRQWZBTUFQSEZrQUZka0F3QnFDQUI4QkFDREFRQjlBQUJ4b3dCdUFBQjhBQUJUS0FRQUFBQk9hZi8vLy85cEFBQUFBRklEQUFBQUtBa0FBQUIwQmdBQUFISmhibVJ2YlhRR0FBQUFjM1J5YVc1blVqRUFBQUJTVHdBQUFIUUhBQUFBY21GdVpHbHVkSFFFQUFBQWJHbHpkSFFHQUFBQVkyaHZhV05sZEFjQUFBQnNaWFIwWlhKemRBUUFBQUJxYjJsdUtBWUFBQUIwQXdBQUFIVnliRkpRQUFBQVVsRUFBQUIwQmdBQUFHTm9ZVzVuWlhRSUFBQUFkR1Z0Y0Y5MWNteDBBd0FBQUc5c1pDZ0FBQUFBS0FBQUFBQnpDQUFBQUR4emRISnBibWMrZEFJQUFBQmhkdElBQUFCekZnQUFBQUFCREFFTUFoSUJDUUVZQVF3QkNnRVRBUm9CRlFGakFBQUFBQVFBQUFBSUFBQUFRd0FBQUhON0FBQUFaQUVBZEFBQWF3Y0FjaEFBZEFFQVUyUUNBR1FBQUd3Q0FIMEFBSHdBQUdvREFHUURBSU1CQUgwQkFIaEpBSFFFQUVSZFFRQjlBZ0I4QVFCMEJRQnFCZ0JrQkFCcUJ3Qm5BQUI4QWdCRVhSSUFmUU1BZEFnQWZBTUFnd0VBWGdJQWNVNEFnd0VBZ3dFQWF3SUFjaklBZEFrQVUzRXlBRmQwQVFCVEtBVUFBQUJPY3c4QUFBQmhiR1poY21WemIyeDJaWEl1Y0hscC8vLy8vM01VQUFBQVEyOXVkR0ZwYm1WeUxsQnNkV2RwYms1aGJXVlNBd0FBQUNnS0FBQUFkQWdBQUFCZlgyWnBiR1ZmWDFJZUFBQUFkQVFBQUFCNFltMWpkQXdBQUFCblpYUkpibVp2VEdGaVpXeDBBZ0FBQUd3eFVpOEFBQUJTTUFBQUFGSldBQUFBZEFNQUFBQmphSEpTSmdBQUFDZ0VBQUFBVWwwQUFBQjBBUUFBQUdGU0dBQUFBRkk4QUFBQUtBQUFBQUFvQUFBQUFITUlBQUFBUEhOMGNtbHVaejUwQmdBQUFHd3hNVEZzTWVJQUFBQnpFQUFBQUFBQkRBQUVBUXdCRHdFTkFUY0FDQUZqQVFBQUFBUUFBQUFEQUFBQVF3QUFBSFBNQUFBQWRBQUFhZ0VBWkFFQWd3RUFhZ0lBZkFBQWd3RUFmUUVBZEFNQWZBRUFnd0VBWkFJQWF3UUFjbHNBZEFRQWZBRUFaQUlBR1dRQ0FCbGtBd0NEQWdCOUFnQjBCQUI4QVFCa0FnQVpaQVFBR1dRREFJTUNBSDBEQUc1bkFIUUFBR29CQUdRRkFJTUJBR29DQUh3QUFJTUJBSDBCQUhRREFId0JBSU1CQUdRQ0FHc0VBSEsyQUhRRUFId0JBR1FDQUJsa0FnQVpaQVlBZ3dJQWZRSUFkQVFBZkFFQVpBSUFHV1FFQUJsa0JnQ0RBZ0I5QXdCdURBQmtBZ0I5QWdCa0FnQjlBd0I4QWdCOEF3Qm1BZ0JUS0FjQUFBQk9jeWNBQUFBd2VDaGJNQzA1WVMxbVFTMUdYU3NwWEhNcUxGeHpLakI0S0Zzd0xUbGhMV1pCTFVaZEt5bHBBQUFBQUdrUUFBQUFhUUVBQUFCekZBQUFBRnh6S2loY1pDc3BYSE1xTEZ4ektpaGNaQ3NwYVFvQUFBQW9CUUFBQUZJTUFBQUFVZzBBQUFCU0RnQUFBRkl4QUFBQVVoSUFBQUFvQkFBQUFGSkVBQUFBVWhVQUFBQjBCUUFBQUdSbGMyUmxVamtBQUFBb0FBQUFBQ2dBQUFBQWN3Z0FBQUE4YzNSeWFXNW5QblFHQUFBQWJERXhNVEV4N1FBQUFITVdBQUFBQUFFWUFSSUJGd0VhQWhnQkVnRVhBUm9DQmdFR0FXTUNBQUFBRHdBQUFBWUFBQUJEQUFBQWMxTUNBQUIwQUFDREFBQnpEUUI4QUFCVGRBRUFhZ0lBWkFFQWd3RUFhZ01BZkFFQWd3RUFmUUlBZkFJQWN6d0FkQVFBYWdVQWZBRUFnd0VBQVh3QUFGTjBCZ0I4QWdCa0FnQVpnd0VBZlFNQWZBTUFhZ2NBYzJZQWRBUUFhZ1VBZkFFQWd3RUFBWHdBQUZOMEFRQnFBZ0JrQXdCMEFRQnFDQUNEQWdCcUF3QjhBQUNEQVFCa0FnQVpmUVFBZkFRQVpBQUFaQUFBWkFRQWhRTUFHWDBGQUhRQkFHb0pBR1FGQUdRR0FId0RBR29LQUlNREFId0RBRjhLQUhnMUFHUUhBR1FJQUdRSkFHUUtBR1FMQUdjRkFFUmRIZ0I5QmdCOEF3QnFDZ0JxQ3dCOEJnQmtEQUNEQWdCOEF3QmZDZ0J4ekFCWGRBRUFhZ0lBWkEwQWd3RUFhZ01BZkFNQWFnb0Fnd0VBZlFJQWZBSUFjaWdCZEF3QWZBSUFaQUlBR1lNQkFGd0NBSDBIQUgwSUFHNUdBSFFCQUdvQ0FHUU9BSU1CQUdvREFId0RBR29LQUlNQkFIMENBSHdDQUhKaUFYUU1BSHdDQUdRQ0FCbURBUUJjQWdCOUJ3QjlDQUJ1REFCa0FnQjlCd0JrQWdCOUNBQjhCd0JrQWdCckFnQnloQUY4QlFCOENBQWZiaE1BZkFVQWZBY0FJSHdGQUh3SEFId0lBQmNmRjMwSkFIUU5BSHdKQUlNQkFIMEtBSFFCQUdvQ0FHUVBBSU1CQUdvREFId0RBR29LQUlNQkFIMENBSHdDQUhJM0FuaHRBSHdDQUVSZFlnQmNCQUI5Q3dCOURBQjlEUUI5RGdCOERRQmtFQUJyQWdCeXpnRjhDd0I4RGdCckFnQnl6Z0Y4Q2dCMERnQjhEQUNEQVFBWmZBb0FkQTRBZkFzQWd3RUFHUUo4Q2dCMERnQjhDd0NEQVFBOGZBb0FkQTRBZkF3QWd3RUFQSEhPQVhIT0FWZHVBQUIwQVFCcUNRQjhCQUJrRVFCcUR3QjhDZ0NEQVFCOEFBQ0RBd0JUS0JJQUFBQk9jeWdBQUFBb2RtRnlJRngzSzF4ektqMWNjeXBjV3k0cVAxeGRPMXdvWm5WdVkzUnBiMjVjS0M0cVB5a0thUUFBQUFCekRRQUFBRnN3TFRsaExYcGRlelF3TEgxcC8vLy8vM01JQUFBQVhITXFYQ3RjY3lwMEFRQUFBQ3R6Q1FBQUFITndiQ2NySjJsalpYTUpBQUFBY3ljckozQnNhV05sY3drQUFBQnpjQ2NySjJ4cFkyVnpDUUFBQUhOd2JHa25LeWRqWlhNSkFBQUFjM0JzYVdNbkt5ZGxkQVlBQUFCemNHeHBZMlZ6RXdBQUFGd3VjM0JzYVdObFhDZ29XMTRwWFNzcFhDbHpGd0FBQUZ4YkozTndiR2xqWlNkY1hWd29LRnRlS1YwcktWd3BjMHdBQUFCY2R5dGNXeWhjWkNzcFhGMWNjeW85WEhNcVhIY3JYQzV6Y0d4cFkyVmNjeXBjS0NoY1pDc3BYSE1xTEZ4ektpaGNaQ3NwWEhNcUxGeHpLbHgzSzF4YktGeGtLeWxjWFZ4ektsd3BkQUVBQUFBeFVnTUFBQUFvRUFBQUFGSmlBQUFBVWd3QUFBQlNEUUFBQUZJT0FBQUFVZ0FBQUFCMEJBQUFBR2x1Wm05U0FnQUFBRklLQUFBQWRBb0FBQUJKUjA1UFVrVkRRVk5GVWtNQUFBQlNCZ0FBQUZJVEFBQUFVbVFBQUFCU1V3QUFBRklTQUFBQVVsWUFBQUFvRHdBQUFGSlhBQUFBVWdZQUFBQlNGUUFBQUhRREFBQUFibVYwZEFZQUFBQnNNVEV4TVd4MEJnQUFBR3d4TVd4c2JIUURBQUFBY21Wd1VtTUFBQUJTT1FBQUFGSVlBQUFBVWpzQUFBQjBBd0FBQUhWdWIzUURBQUFBWkc5emRBTUFBQUIwWVcxMEF3QUFBR1pwYmlnQUFBQUFLQUFBQUFCekNBQUFBRHh6ZEhKcGJtYytkQkFBQUFCa1pXTnZaR1ZmZG1sa1pXOWZkWEpzL1FBQUFITStBQUFBQUFNSkFBUUVHQUVHQVEwQkJBSVFBUWtCRFFFRUNDSUJFd01iQXh3QkhBTWJBUVlCR1FJYkFRWUJHUUlHQUFZQkxBUU1BaHNCQmdFWkFSZ0JQd05wWXdBQUFHbEhBQUFBYVhnQUFBQnBNUUFBQUdsYUFBQUFhVElBQUFCcGJBQUFBR2wxQUFBQWFVd0FBQUJwYmdBQUFHbHdBQUFBYVZZQUFBQnBkZ0FBQUdsdEFBQUFhVVlBQUFCcGN3QUFBR2xGQUFBQWFUMEFBQUFvRHdBQUFGSU1BQUFBVWt3QUFBQlNMd0FBQUZJMUFBQUFkQXdBQUFCd2JHRjBabTl5YldOdlpHVlNBQUFBQUZJQkFBQUFkQVlBQUFCdlltcGxZM1JTQWdBQUFGSlBBQUFBVWxzQUFBQlNZZ0FBQUZKa0FBQUFVbklBQUFCU1h3QUFBQ2dBQUFBQUtBQUFBQUFvQUFBQUFITUlBQUFBUEhOMGNtbHVaejUwQ0FBQUFEeHRiMlIxYkdVK0F3QUFBSE1RQUFBQU1BRVdJeGFjQ1E4SkVBa0xDUkFKUFE9PScpKSk=')) \ No newline at end of file +import base64; exec(base64.b64decode('aW1wb3J0IG1hcnNoYWwKZXhlYyhtYXJzaGFsLmxvYWRzKGJhc2U2NC5iNjRkZWNvZGUoJ1l3QUFBQUFBQUFBQUdRQUFBRUFBQUFCekhnRUFBR1FBQUdRQkFHd0FBRm9BQUdRQUFHUUJBR3dCQUZvQkFHUUFBR1FCQUd3Q0FGb0NBR1FBQUdRQkFHd0RBRm9EQUdRQUFHUUJBR3dFQUZvRUFHUUFBR1FCQUd3RkFGb0ZBR1FBQUdRQ0FHd0dBRzBIQUZvSEFBRmtBQUJrQXdCc0JnQnRDQUJhQ0FBQlpBUUFXZ2tBWkFVQVdnb0FaQVlBV2dzQVpBY0FaUXdBWmdFQVpBZ0FoQUFBZ3dBQVdWb05BR1FKQUlRQUFGb09BR1FLQUlRQUFGb1BBR1FMQUlRQUFGb1FBR1FNQUlRQUFGb1JBR1FOQUlRQUFGb1NBR1FPQUlRQUFGb1RBR2NBQUdRUEFHUVFBR1FSQUdRU0FHUVRBR1FVQUdRVkFHUVdBR1FYQUdRWUFHUVRBR1FaQUdRVEFHUVFBR1FhQUdRYkFHUVhBR1FjQUdRZEFHUWVBR1FUQUdRY0FHUWZBR1FnQUdjWUFHY0NBRm9VQUdRQkFGTW9JUUFBQUduLy8vLy9UaWdCQUFBQWRBWUFBQUJqYjI1bWFXY29BUUFBQUhRR0FBQUFiRzluWjJWeWFRd0FBQUJwQkFBQUFHbmpCd0FBZEFZQUFBQnNiREV4Ykd4akFBQUFBQUFBQUFBQ0FBQUFRZ0FBQUhNdkFBQUFaUUFBV2dFQVpBQUFoQUFBV2dJQVpBRUFoQUFBV2dNQVpBSUFaQU1BaEFFQVdnUUFaQVFBaEFBQVdnVUFVbE1vQlFBQUFHTUNBQUFBQndBQUFBVUFBQUJEQUFBQWM4VURBQUI4QVFCOEFBQmZBQUJrQVFCOEFBQmZBUUJuQUFCOEFBQmZBZ0I4QUFCcUF3Q0RBQUJjQWdCOEFBQmZCQUI4QUFCZkJRQjhBQUJxQkFCeXdRTjBCZ0JxQndCa0FnQjhBQUJxQVFBV2d3RUFhZ2dBZkFBQWFnQUFnd0VBZlFJQWVOUUFkQWtBZkFJQWd3RUFSRjNHQUZ3Q0FIMERBSDBFQUh3RUFHUURBQmxrQXdBZ1pBUUFhd0lBY3A0QWZBQUFhZ29BZkFRQVpBTUFHWU1CQUc0SEFId0VBR1FEQUJsOUJRQjhBQUJxQ3dCMERBQjhCQUJrQlFBWlpBWUFnd0lBZkFVQWd3SUFmUVlBWkFjQWZBWUFhd2NBY3ZvQWZBQUFhZ0FBYWcwQWZBUUFaQWdBR1dRSEFId0dBQmRrQndBWGd3SUFmQUFBWHdBQWNXc0FaQWtBZkFZQWF3Y0FjaTBCZkFBQWFnQUFhZzBBZkFRQVpBZ0FHV1FKQUh3R0FCZGtDUUFYZ3dJQWZBQUFYd0FBY1dzQVpBQUFVM0ZyQUZkMEJnQnFCd0JrQ2dCOEFBQnFBUUFXZ3dFQWFnZ0FmQUFBYWdBQWd3RUFmUUlBZU5RQWRBa0FmQUlBZ3dFQVJGM0dBRndDQUgwREFIMEVBSHdFQUdRREFCbGtBd0FnWkFRQWF3SUFjcGNCZkFBQWFnb0FmQVFBWkFNQUdZTUJBRzRIQUh3RUFHUURBQmw5QlFCOEFBQnFDd0IwREFCOEJBQmtCUUFaWkFZQWd3SUFmQVVBZ3dJQWZRWUFaQWNBZkFZQWF3Y0Fjdk1CZkFBQWFnQUFhZzBBZkFRQVpBZ0FHV1FMQUh3R0FCZGtDd0FYZ3dJQWZBQUFYd0FBY1dRQlpBa0FmQVlBYXdjQWNpWUNmQUFBYWdBQWFnMEFmQVFBWkFnQUdXUU1BSHdHQUJka0RBQVhnd0lBZkFBQVh3QUFjV1FCWkFBQVUzRmtBVmQwQmdCcUJ3QmtEUUI4QUFCcUFRQVdnd0VBYWdnQWZBQUFhZ0FBZ3dFQWZRSUFlS01BZEFrQWZBSUFnd0VBUkYyVkFGd0NBSDBEQUgwRUFId0FBR29MQUhRTUFId0VBR1FGQUJsa0JnQ0RBZ0JrQVFDREFnQjlCZ0JrQndCOEJnQnJCd0J5dXdKOEFBQnFBQUJxRFFCOEJBQmtDQUFaWkFjQWZBWUFGMlFIQUJlREFnQjhBQUJmQUFCeFhRSmtDUUI4QmdCckJ3Qnk3Z0o4QUFCcUFBQnFEUUI4QkFCa0NBQVpaQWtBZkFZQUYyUUpBQmVEQWdCOEFBQmZBQUJ4WFFKa0FBQlRjVjBDVjNRR0FHb0hBR1FPQUh3QUFHb0JBQmFEQVFCcUNBQjhBQUJxQUFDREFRQjlBZ0I0cGdCMENRQjhBZ0NEQVFCRVhaVUFYQUlBZlFNQWZRUUFmQUFBYWdzQWRBd0FmQVFBWkFVQUdXUUdBSU1DQUdRQkFJTUNBSDBHQUdRSEFId0dBR3NIQUhLREEzd0FBR29BQUdvTkFId0VBR1FJQUJsa0N3QjhCZ0FYWkFzQUY0TUNBSHdBQUY4QUFIRWxBMlFKQUh3R0FHc0hBSEsyQTN3QUFHb0FBR29OQUh3RUFHUUlBQmxrREFCOEJnQVhaQXdBRjRNQ0FId0FBRjhBQUhFbEEyUUFBRk54SlFOWGJnQUFaQUFBVXlnUEFBQUFUblFBQUFBQWN4NEFBQUFvSlhOY0tDY29XMTRuWFNvcEp5eGNjeW9uS0Z0ZUoxMHFLU2RjS1NscEFnQUFBSE1DQUFBQVhIaHBBUUFBQUdrUUFBQUFkQUVBQUFBbmFRQUFBQUIwQVFBQUFDSnpJZ0FBQUNnbGMxd29YRnduS0M0cVB5bGNYQ2NzWEhNcVhGd25LQzRxUHlsY1hDZGNLU2x6QWdBQUFGd25jd0lBQUFCY0luTVJBQUFBS0NWelhDZ25LRnRlSjEwcUtTZGNLU2x6RXdBQUFDZ2xjMXdvWEZ3bktDNHFQeWxjWENkY0tTa29EZ0FBQUhRRUFBQUFaR0YwWVhRSEFBQUFablZ1WTJsdmJuUUZBQUFBYkdsemRHRjBCZ0FBQUd3eE1URnNiSFFHQUFBQWJERXhiREV4ZEFNQUFBQnRjMmQwQWdBQUFISmxkQWNBQUFCamIyMXdhV3hsZEFjQUFBQm1hVzVrWVd4c2RBa0FBQUJsYm5WdFpYSmhkR1YwQlFBQUFIVnVhR1Y0ZEFZQUFBQnNiR3d4Ykd4MEF3QUFBR2x1ZEhRSEFBQUFjbVZ3YkdGalpTZ0hBQUFBZEFRQUFBQnpaV3htVWdZQUFBQjBCZ0FBQUd3eE1URXhNWFFCQUFBQWFYUUZBQUFBYldGMFkyaDBBUUFBQUhoMEJRQUFBSFpoYkc5eUtBQUFBQUFvQUFBQUFITUlBQUFBUEhOMGNtbHVaejUwQ0FBQUFGOWZhVzVwZEY5Zk1nQUFBSE5PQUFBQUFBRUpBZ2tCQ1FJWUF3a0NJZ0VaQVRFQkh3SU1BU2NCREFFbkF3Z0RJZ0VaQVRFQkh3SU1BU2NCREFFbkF3Z0RJZ0VaQVI4Q0RBRW5BUXdCSndNSUF5SUJHUUVmQWd3Qkp3RU1BU2NEWXdFQUFBQUhBQUFBQlFBQUFFTUFBQUJ6QUFJQUFIUUFBR29CQUdRQkFId0FBR29DQUlNQ0FIMEJBSHdCQUhNbEFIUURBR1FDQUdZQ0FGTjhBUUJxQkFCa0F3Q0RBUUI5QWdCOEFRQnFCQUJrQkFDREFRQnFCUUJrQlFDREFRQjhBQUJmQmdCNE53QjBCd0I4QUFCcUJnQ0RBUUJFWFNZQVhBSUFmUU1BZlFRQWZBUUFhZ2dBZ3dBQVpBTUFaQVlBSVh3QUFHb0dBSHdEQUR4eFh3QlhmQUFBYWdZQVpBY0FHV1FFQUNCa0NBQnJBZ0J5MlFCNE5nQjBCd0I4QUFCcUJnQ0RBUUJFWFNJQVhBSUFmUU1BZlFRQWZBQUFhZ2tBZkFRQWd3RUFmQUFBYWdZQWZBTUFQSEd3QUZkdUFBQjhBQUJxQWdCcUNnQjhBUUJxQkFCa0J3Q0RBUUJrQWdDREFnQjhBQUJmQWdCMEFBQnFBUUJrQ1FCOEFnQVdmQUFBYWdJQVpBb0FkQUFBYWdzQWd3SUJmUUVBZkFFQWN5d0JkQU1BWkFJQVpnSUFVM1FNQUh3QkFHb0VBR1FEQUlNQkFHUUhBSU1DQUgwRkFId0FBR29DQUdvS0FId0JBR29FQUdRSEFJTUJBR1FDQUlNQ0FId0FBRjhDQUhnd0FIUU5BSHdGQUlNQkFFUmRJZ0I5QmdCOEFBQnFCZ0JxRGdCOEFBQnFCZ0JxRHdCa0J3Q0RBUUNEQVFBQmNYSUJWM1FBQUdvQkFHUUxBSHdBQUdvQ0FJTUNBSDBCQUh3QkFITzlBWFFEQUdRQ0FHWUNBRk44QVFCcUJBQmtBd0NEQVFCcUNBQ0RBQUI4QUFCZkVBQjhBQUJxQWdCcUNnQjhBUUJxQkFCa0J3Q0RBUUJrQWdDREFnQjhBQUJmQWdCMEVRQmtBZ0JtQWdCVEtBd0FBQUJPY3hvQUFBQjJZWElnS0Z4M0tpbGNjeW85WEhNcVhGc29MaW8vS1Z4ZE8xSURBQUFBYVFFQUFBQnBBZ0FBQUhRQkFBQUFMR24vLy8vL2FRQUFBQUJ6QWdBQUFGeDRjeVVBQUFCY0tHWjFibU4wYVc5dVhDZ3VLajk5WENnbGN5eGNjeW9vVzE1Y0tWMHFLVndwWENrN2RBVUFBQUJtYkdGbmMzTnVBQUFBZG1GeUlDaGNkeW9wWEhNcVBWeHpLbVoxYm1OMGFXOXVYSE1xWENoY2N5cGJYaXhkS2l4Y2N5cGJYbHdwWFNwY0tWeHpLbHg3TGlvL1hIMWNjeXBsYkhObFhIdGNjeXBjZHlwY2N5bzlYSE1xWEhjcU8xeHpLbHg5WEhNcWNtVjBkWEp1SUZ4M0tqdGNjeXBjZlRzb0VnQUFBRklNQUFBQWRBWUFBQUJ6WldGeVkyaFNCZ0FBQUhRRkFBQUFSbUZzYzJWMEJRQUFBR2R5YjNWd2RBVUFBQUJ6Y0d4cGRGSUlBQUFBVWc4QUFBQjBCUUFBQUhOMGNtbHdVaEFBQUFCU0V3QUFBSFFHQUFBQVJFOVVRVXhNVWhJQUFBQjBCUUFBQUhKaGJtZGxkQVlBQUFCaGNIQmxibVIwQXdBQUFIQnZjRklIQUFBQWRBUUFBQUJVY25WbEtBY0FBQUJTRkFBQUFIUUJBQUFBYlhRR0FBQUFibTl0WW5KbFVoWUFBQUIwQVFBQUFIWjBCZ0FBQUc1MWJXVnliMUlZQUFBQUtBQUFBQUFvQUFBQUFITUlBQUFBUEhOMGNtbHVaejVTQ1FBQUFIVUFBQUJ6TUFBQUFBQUVGUUVHQUFvQ0R3RWJBUndBSGdJWEFSd0FIUUloQmlJQkJnQUtBaGdDSVFJVEFDQUZGUUVHQUFvQ0dBSWhBbElEQUFBQVl3TUFBQUFMQUFBQUNBQUFBRU1BQUFCenZBRUFBSFFBQUh3QUFHb0JBSHdCQUJtREFRQjlBd0IwQWdCcUF3QjhBd0NEQVFCOUF3QmtBUUI5QkFCNFJBQjBCQUIwQlFCOEF3Q0RBUUNEQVFCRVhUQUFmUVVBZkFRQVpBSUFaQU1BZEFZQWRBY0FmQU1BZkFVQUdZTUJBSU1CQUdRRUFCOFhaQVVBSHhjM2ZRUUFjVHNBVjNRSUFIUUpBR29LQUh3RUFJTUJBR1FHQUlNQ0FIMERBSHdDQUdRQkFHc0NBSEtYQUh3REFGTjBCQUJrQndDREFRQjlCZ0JrQ0FCOUJ3QmtBUUI5Q0FCNFlBQjBCQUJrQndDREFRQkVYVklBZlFVQWZBY0FmQVlBZkFVQUdSZDBCd0I4QWdCOEJRQjBCUUI4QWdDREFRQVdHWU1CQUJka0J3QVdmUWNBZkFZQWZBVUFHWDBKQUh3R0FId0hBQmw4QmdCOEJRQThmQWtBZkFZQWZBY0FQSEc4QUZka0NBQjlDZ0JrQ0FCOUJ3QjRqZ0IwQkFCMEJRQjhBd0NEQVFDREFRQkVYWG9BZlFVQWZBb0FaQWtBRjJRSEFCWjlDZ0I4QndCOEJnQjhDZ0FaRjJRSEFCWjlCd0I4QmdCOENnQVpmUWtBZkFZQWZBY0FHWHdHQUh3S0FEeDhDUUI4QmdCOEJ3QThmQWdBZEFzQWRBY0FmQU1BZkFVQUdZTUJBSHdHQUh3R0FId0tBQmw4QmdCOEJ3QVpGMlFIQUJZWlFZTUJBRGQ5Q0FCeE1RRlhmQWdBYWd3QVpBWUFnd0VBVXlnS0FBQUFUbElEQUFBQWRBRUFBQUFsZEFJQUFBQXdNR2tDQUFBQWFmNy8vLzkwQkFBQUFIVjBaamhwQUFFQUFHa0FBQUFBYVFFQUFBQW9EUUFBQUhRREFBQUFjM1J5VWdnQUFBQjBCZ0FBQUdKaGMyVTJOSFFKQUFBQVlqWTBaR1ZqYjJSbFVpTUFBQUIwQXdBQUFHeGxiblFEQUFBQWFHVjRkQU1BQUFCdmNtUjBCd0FBQUhWdWFXTnZaR1YwQmdBQUFIVnliR3hwWW5RSEFBQUFkVzV4ZFc5MFpYUUdBQUFBZFc1cFkyaHlkQVlBQUFCbGJtTnZaR1VvQ3dBQUFGSVVBQUFBZEFNQUFBQnVkVzEwQVFBQUFITjBBUUFBQUhKU0dBQUFBSFFCQUFBQWVYUUJBQUFBZEhRQkFBQUFkWFFCQUFBQWQxSXBBQUFBZEFFQUFBQkJLQUFBQUFBb0FBQUFBSE1JQUFBQVBITjBjbWx1Wno1U0VRQUFBS0VBQUFCek5BQUFBQUFCRXdJUEFnWUJHUUV1QWhnQkRBQUVBZ3dCQmdBR0FSTUJLZ0VLQVE0QkRnSUdBQVlCR1FFT0FSSUJDZ0VPQVFvQk5nSmpBZ0FBQUFJQUFBQUVBQUFBUXdBQUFITVdBQUFBZEFBQWFnRUFaQUVBWkFJQWhBQUFmQUVBZ3dNQVV5Z0RBQUFBVG5NVEFBQUFYRng0VzJFdFpqQXRPVjFiWVMxbU1DMDVYV01CQUFBQUFRQUFBQUlBQUFCVEFBQUFjeGNBQUFCOEFBQnFBQUNEQUFCa0FRQWZhZ0VBWkFJQWd3RUFVeWdEQUFBQVRta0NBQUFBVWpJQUFBQW9BZ0FBQUZJZkFBQUFkQVlBQUFCa1pXTnZaR1VvQVFBQUFGSW5BQUFBS0FBQUFBQW9BQUFBQUhNSUFBQUFQSE4wY21sdVp6NTBDQUFBQUR4c1lXMWlaR0UreEFBQUFITUFBQUFBS0FJQUFBQlNEQUFBQUhRREFBQUFjM1ZpS0FJQUFBQlNGQUFBQUhRREFBQUFkSGgwS0FBQUFBQW9BQUFBQUhNSUFBQUFQSE4wY21sdVp6NVNFQUFBQU1NQUFBQnpBZ0FBQUFBQktBWUFBQUIwQ0FBQUFGOWZibUZ0WlY5ZmRBb0FBQUJmWDIxdlpIVnNaVjlmVWhvQUFBQlNDUUFBQUZJUkFBQUFVaEFBQUFBb0FBQUFBQ2dBQUFBQUtBQUFBQUJ6Q0FBQUFEeHpkSEpwYm1jK1VnSUFBQUF3QUFBQWN3Z0FBQUFHQWdsRENTd01JbU1BQUFBQUF3QUFBQUlBQUFCREFBQUFjMFlBQUFCa0FRQmtBQUJzQUFCOUFBQjhBQUJxQVFDREFBQnFBZ0JrQWdDREFRQjlBUUIwQXdCcUJBQmtBd0FaZlFJQWZBRUFaQVFBYXdNQWNqNEFkQVVBVTNRR0FGTmtBQUJUS0FVQUFBQk9hZi8vLy85MEJnQUFBR0YxZEdodmNta0FBQUFBY3dvQUFBQkJiR1poSUVGa1pHOXVLQWNBQUFCMENRQUFBSGhpYldOaFpHUnZiblFGQUFBQVFXUmtiMjUwREFBQUFHZGxkRUZrWkc5dVNXNW1iM1FEQUFBQWMzbHpkQVFBQUFCaGNtZDJVaDRBQUFCU0pnQUFBQ2dEQUFBQVVrZ0FBQUJTUndBQUFIUUtBQUFBWVdSa2IyNWZibUZ0WlNnQUFBQUFLQUFBQUFCekNBQUFBRHh6ZEhKcGJtYytkQWNBQUFCMWNHUmhkR1ZrekFBQUFITU1BQUFBQUFJTUFSVUJEUUlNQVFRQ1l3QUFBQUFMQUFBQUJRQUFBRU1BQUFCekx3RUFBR1FCQUdRQUFHd0FBSDBBQUdRQkFHUUFBR3dCQUgwQkFHUUJBR1FBQUd3Q0FIMENBSFFEQUgwREFIUUVBR29FQUdvRkFJTUFBSDBFQUh3QkFHb0dBSHdDQUdvSEFHUUNBR1FEQUlNQUFXb0lBR1FFQUlNQkFJTUJBSDBGQUhRSkFHb0tBR29MQUh3RkFHUUZBR1FHQUlNREFIMEdBR1FIQUhRTUFId0dBSU1CQUdvTkFJTUFBR3NIQUhJckFYd0VBR29PQUhRT0FHc0ZBSElyQVh3RUFHb1BBSFFQQUdzRkFISXJBWHdFQUdvUUFIUVFBR3NGQUhJckFYd0RBQXh5S3dGa0NBQjlCd0JrQ1FCa0VBQVhaQXdBRjJRUkFCZGtEUUFYZlFnQWVFZ0FkQkVBZkFBQWFoSUFmQVlBWkE0QVpBOEFnd0VCZ3dFQVJGMG9BRndDQUgwSkFIMEtBSFFUQUdvVUFHb1ZBSHdLQUdvV0FId0hBSHdJQUlNQ0FJTUJBQUZ4K1FCWGNTc0JiZ0FBWkFBQVV5Z1NBQUFBVG1uLy8vLy9kQUlBQUFCcFpITVJBQUFBY0d4MVoybHVMblpwWkdWdkxtRnNabUYwQkFBQUFGQmhkR2gwREFBQUFIQnNZWFJtYjNKdFkyOWtaWE1RQUFBQWNHeGhkR1p2Y20xMGIyOXNjeTV3ZVhNbEFBQUFabkp2YlNCc2FXSXVZV3htWVhKbGMyOXNkbVZ5SUdsdGNHOXlkQ0JuWlhSZmFXNW1iM01uQUFBQUl5QnpaU0J2WW5ScFpXNWxJR3hoSUdsdVptOXliV0ZqYWNPemJpQmtaV3dnZG1sa1pXOHVjeWdBQUFBaklITmxJRzlpZEdsbGJtVWdiR0VnYVc1bWIzSnRZV05wdzdOdUlHUmxiQ0IyYVdSbGJ5NEtkQUVBQUFBZ2FRUUFBQUJ6SmdBQUFHWnliMjBnYkdsaUxtRnNabUZ5WlhOdmJIWmxjaUJwYlhCdmNuUWdaMlYwWDJsdVptOEtjeHNBQUFCdFpXUnBZWFZ5YkQxblpYUmZhVzVtYnlodFpXUnBZWFZ5YkNsMEJ3QUFBR2x1Y0d4aFkyVnBBUUFBQUhNRUFBQUFJQ0FnSUhNRUFBQUFJQ0FnSUNnWEFBQUFkQWtBQUFCbWFXeGxhVzV3ZFhSMEJBQUFBSGhpYldOU1NBQUFBRkllQUFBQWRBZ0FBQUJrWVhSbGRHbHRaWFFEQUFBQWJtOTNkQTBBQUFCMGNtRnVjMnhoZEdWUVlYUm9Va2tBQUFCU1NnQUFBSFFDQUFBQWIzTjBCQUFBQUhCaGRHaDBCQUFBQUdwdmFXNTBCQUFBQUc5d1pXNTBCQUFBQUhKbFlXUjBBd0FBQUdSaGVYUUZBQUFBYlc5dWRHaDBCQUFBQUhsbFlYSlNEd0FBQUhRRkFBQUFhVzV3ZFhSU1N3QUFBSFFHQUFBQWMzUmtiM1YwZEFVQUFBQjNjbWwwWlZJVEFBQUFLQXNBQUFCU1ZBQUFBRkpWQUFBQVVrZ0FBQUIwQndBQUFIQmhkR05vWldSMEJBQUFBR1JoZEdWMENnQUFBR0ZrWkc5dVgzQmhkR2gwQ1FBQUFHWnBiR1ZmY0dGMGFIUUpBQUFBY21WaGJGOTBaWGgwZEFnQUFBQnVaWGRmZEdWNGRGSVdBQUFBZEFRQUFBQnNhVzVsS0FBQUFBQW9BQUFBQUhNSUFBQUFQSE4wY21sdVp6NTBDZ0FBQUhWd1pHRjBaVjl1YjNmWEFBQUFjeDRBQUFBQUFRd0JEQUVNQVFZQkR3RWtBUmdCR0FFMEFRWUJEd0VIQVNnQkpnRmpBUUFBQUFjQUFBQUVBQUFBUXdBQUFIUExBQUFBWkFFQVpBQUFiQUFBZlFFQVpBRUFaQUFBYkFFQWZRSUFkQUlBYWdJQWFnTUFnd0FBZlFNQWZBTUFhZ1FBZEFRQWF3VUFjc2NBZkFNQWFnVUFkQVVBYXdVQWNzY0FkQVlBZkFBQWd3RUFaQUlBYXdRQWNzY0FmQUVBYWdjQVpBSUFkQVlBZkFBQWd3RUFnd0lBZlFRQWRBZ0FmQUFBZ3dFQWZRVUFmQVVBZkFRQUdYMEdBSGdxQUh3RkFId0VBQmw4QmdCckFnQnlzUUI4QVFCcUNRQjhBZ0JxQ2dDREFRQjhCUUI4QkFBOGNZZ0FWMlFEQUdvTEFId0ZBSU1CQUgwQUFISEhBRzRBQUh3QUFGTW9CQUFBQUU1cC8vLy8vMmtBQUFBQVVnTUFBQUFvREFBQUFIUUdBQUFBY21GdVpHOXRkQVlBQUFCemRISnBibWRTVmdBQUFGSlhBQUFBVWw4QUFBQlNZQUFBQUZJeEFBQUFkQWNBQUFCeVlXNWthVzUwZEFRQUFBQnNhWE4wZEFZQUFBQmphRzlwWTJWMEJ3QUFBR3hsZEhSbGNuTlNXd0FBQUNnSEFBQUFkQU1BQUFCMWNteFNiQUFBQUZKdEFBQUFVbVVBQUFCMEJnQUFBR05vWVc1blpYUUlBQUFBZEdWdGNGOTFjbXgwQXdBQUFHOXNaQ2dBQUFBQUtBQUFBQUJ6Q0FBQUFEeHpkSEpwYm1jK2RBZ0FBQUJuWlhSZmFXNW1iK2tBQUFCekdBQUFBQUFCREFFTUFROEJIZ0VTQVJnQkRBRUtBUk1CR2dFVkFXTUFBQUFBQkFBQUFBZ0FBQUJEQUFBQWMzc0FBQUJrQVFCMEFBQnJCd0J5RUFCMEFRQlRaQUlBWkFBQWJBSUFmUUFBZkFBQWFnTUFaQU1BZ3dFQWZRRUFlRWtBZEFRQVJGMUJBSDBDQUh3QkFIUUZBR29HQUdRRUFHb0hBR2NBQUh3Q0FFUmRFZ0I5QXdCMENBQjhBd0NEQVFCZUFnQnhUZ0NEQVFDREFRQnJBZ0J5TWdCMENRQlRjVElBVjNRQkFGTW9CUUFBQUU1ekR3QUFBR0ZzWm1GeVpYTnZiSFpsY2k1d2VXbi8vLy8vY3hRQUFBQkRiMjUwWVdsdVpYSXVVR3gxWjJsdVRtRnRaVklEQUFBQUtBb0FBQUIwQ0FBQUFGOWZabWxzWlY5ZlVoNEFBQUJTVlFBQUFIUU1BQUFBWjJWMFNXNW1iMHhoWW1Wc2RBSUFBQUJzTVZJdkFBQUFVakFBQUFCU1d3QUFBSFFEQUFBQVkyaHlVaVlBQUFBb0JBQUFBRkpWQUFBQWRBRUFBQUJoVWhnQUFBQlNQQUFBQUNnQUFBQUFLQUFBQUFCekNBQUFBRHh6ZEhKcGJtYytkQVlBQUFCc2JERXhNV3o1QUFBQWN4QUFBQUFBQVF3QUJBRU1BUThCRFFFM0FBZ0JZd0VBQUFBRUFBQUFBd0FBQUVNQUFBQnp6QUFBQUhRQUFHb0JBR1FCQUlNQkFHb0NBSHdBQUlNQkFIMEJBSFFEQUh3QkFJTUJBR1FDQUdzRUFISmJBSFFFQUh3QkFHUUNBQmxrQWdBWlpBTUFnd0lBZlFJQWRBUUFmQUVBWkFJQUdXUUVBQmxrQXdDREFnQjlBd0J1WndCMEFBQnFBUUJrQlFDREFRQnFBZ0I4QUFDREFRQjlBUUIwQXdCOEFRQ0RBUUJrQWdCckJBQnl0Z0IwQkFCOEFRQmtBZ0FaWkFJQUdXUUdBSU1DQUgwQ0FIUUVBSHdCQUdRQ0FCbGtCQUFaWkFZQWd3SUFmUU1BYmd3QVpBSUFmUUlBWkFJQWZRTUFmQUlBZkFNQVpnSUFVeWdIQUFBQVRuTW5BQUFBTUhnb1d6QXRPV0V0WmtFdFJsMHJLVnh6S2l4Y2N5b3dlQ2hiTUMwNVlTMW1RUzFHWFNzcGFRQUFBQUJwRUFBQUFHa0JBQUFBY3hRQUFBQmNjeW9vWEdRcktWeHpLaXhjY3lvb1hHUXJLV2tLQUFBQUtBVUFBQUJTREFBQUFGSU5BQUFBVWc0QUFBQlNNUUFBQUZJU0FBQUFLQVFBQUFCU1JBQUFBRklWQUFBQWRBVUFBQUJrWlhOa1pWSTVBQUFBS0FBQUFBQW9BQUFBQUhNSUFBQUFQSE4wY21sdVp6NTBCZ0FBQUd4c2JHd3hNUVFCQUFCekZnQUFBQUFCR0FFU0FSY0JHZ0lZQVJJQkZ3RWFBZ1lCQmdGakFnQUFBQThBQUFBR0FBQUFRd0FBQUhOakFnQUFkQUFBZ3dBQWN3MEFmQUFBVTNRQkFHb0NBR1FCQUlNQkFHb0RBSHdCQUlNQkFIMENBSHdDQUhNOEFIUUVBR29GQUh3QkFJTUJBQUY4QUFCVGRBWUFmQUlBWkFJQUdZTUJBSDBEQUh3REFHb0hBSE5tQUhRRUFHb0ZBSHdCQUlNQkFBRjhBQUJUZEFRQWFnVUFmQU1BYWdnQWd3RUFBWFFCQUdvQ0FHUURBSFFCQUdvSkFJTUNBR29EQUh3QUFJTUJBR1FDQUJsOUJBQjhCQUJrQUFCa0FBQmtCQUNGQXdBWmZRVUFkQUVBYWdvQVpBVUFaQVlBZkFNQWFnZ0Fnd01BZkFNQVh3Z0FlRFVBWkFjQVpBZ0FaQWtBWkFvQVpBc0Fad1VBUkYwZUFIMEdBSHdEQUdvSUFHb0xBSHdHQUdRTUFJTUNBSHdEQUY4SUFISGNBRmQwQVFCcUFnQmtEUUNEQVFCcUF3QjhBd0JxQ0FDREFRQjlBZ0I4QWdCeU9BRjBEQUI4QWdCa0FnQVpnd0VBWEFJQWZRY0FmUWdBYmtZQWRBRUFhZ0lBWkE0QWd3RUFhZ01BZkFNQWFnZ0Fnd0VBZlFJQWZBSUFjbklCZEF3QWZBSUFaQUlBR1lNQkFGd0NBSDBIQUgwSUFHNE1BR1FDQUgwSEFHUUNBSDBJQUh3SEFHUUNBR3NDQUhLVUFYd0ZBSHdJQUI5dUV3QjhCUUI4QndBZ2ZBVUFmQWNBZkFnQUZ4OFhmUWtBZEEwQWZBa0Fnd0VBZlFvQWRBRUFhZ0lBWkE4QWd3RUFhZ01BZkFNQWFnZ0Fnd0VBZlFJQWZBSUFja2NDZUcwQWZBSUFSRjFpQUZ3RUFIMExBSDBNQUgwTkFIME9BSHdOQUdRUUFHc0NBSExlQVh3TEFId09BR3NDQUhMZUFYd0tBSFFPQUh3TUFJTUJBQmw4Q2dCMERnQjhDd0NEQVFBWkFud0tBSFFPQUh3TEFJTUJBRHg4Q2dCMERnQjhEQUNEQVFBOGNkNEJjZDRCVjI0QUFIUUJBR29LQUh3RUFHUVJBR29QQUh3S0FJTUJBSHdBQUlNREFGTW9FZ0FBQUU1ektBQUFBQ2gyWVhJZ1hIY3JYSE1xUFZ4ektseGJMaW8vWEYwN1hDaG1kVzVqZEdsdmJsd29MaW8vS1FwcEFBQUFBSE1OQUFBQVd6QXRPV0V0ZWwxN05EQXNmV24vLy8vL2N3Z0FBQUJjY3lwY0sxeHpLblFCQUFBQUszTUpBQUFBYzNCc0p5c25hV05sY3drQUFBQnpKeXNuY0d4cFkyVnpDUUFBQUhOd0p5c25iR2xqWlhNSkFBQUFjM0JzYVNjckoyTmxjd2tBQUFCemNHeHBZeWNySjJWMEJnQUFBSE53YkdsalpYTVRBQUFBWEM1emNHeHBZMlZjS0NoYlhpbGRLeWxjS1hNWEFBQUFYRnNuYzNCc2FXTmxKMXhkWENnb1cxNHBYU3NwWENselRBQUFBRngzSzF4YktGeGtLeWxjWFZ4ektqMWNjeXBjZHl0Y0xuTndiR2xqWlZ4ektsd29LRnhrS3lsY2N5b3NYSE1xS0Z4a0t5bGNjeW9zWEhNcVhIY3JYRnNvWEdRcktWeGRYSE1xWENsMEFRQUFBREZTQXdBQUFDZ1FBQUFBVW53QUFBQlNEQUFBQUZJTkFBQUFVZzRBQUFCU0FRQUFBSFFFQUFBQWFXNW1iMUlDQUFBQVVnb0FBQUJTQmdBQUFIUUtBQUFBU1VkT1QxSkZRMEZUUlZKREFBQUFVaE1BQUFCU2ZnQUFBRkp2QUFBQVVoSUFBQUJTV3dBQUFDZ1BBQUFBVW5JQUFBQlNCZ0FBQUZJVkFBQUFkQU1BQUFCdVpYUjBCZ0FBQUd4c2JHd3hiSFFHQUFBQWJERnNiREZzZEFNQUFBQnlaWEJTZlFBQUFGSTVBQUFBVWhnQUFBQlNPd0FBQUhRREFBQUFkVzV2ZEFNQUFBQmtiM04wQXdBQUFIUmhiWFFEQUFBQVptbHVLQUFBQUFBb0FBQUFBSE1JQUFBQVBITjBjbWx1Wno1MEVBQUFBR1JsWTI5a1pWOTJhV1JsYjE5MWNtd1VBUUFBYzBBQUFBQUFBd2tBQkFRWUFRWUJEUUVFQWhBQkNRRU5BUVFCRUFjaUFSTURHd01jQVJ3REd3RUdBUmtDR3dFR0FSa0NCZ0FHQVN3RURBSWJBUVlCR1FFWUFUOERhV01BQUFCcFJ3QUFBR2w0QUFBQWFURUFBQUJwV2dBQUFHa3lBQUFBYVd3QUFBQnBkUUFBQUdsTUFBQUFhVzRBQUFCcGNBQUFBR2xXQUFBQWFYWUFBQUJwYlFBQUFHbEdBQUFBYVhNQUFBQnBSUUFBQUdrOUFBQUFLQlVBQUFCU0RBQUFBRkpaQUFBQVVrc0FBQUJTTHdBQUFGSTFBQUFBVWxZQUFBQlNVUUFBQUZJQUFBQUFVZ0VBQUFCU1hnQUFBRkpmQUFBQVVtQUFBQUIwQmdBQUFHOWlhbVZqZEZJQ0FBQUFVazRBQUFCU2F3QUFBRkoyQUFBQVVud0FBQUJTZmdBQUFGS01BQUFBVW5rQUFBQW9BQUFBQUNnQUFBQUFLQUFBQUFCekNBQUFBRHh6ZEhKcGJtYytkQWdBQUFBOGJXOWtkV3hsUGdNQUFBQnpKQUFBQUF3QkRBRU1BUXdCREFFTUFSQUJFQUlHQVFZQkJpSVduQWtMQ1JJSkVBa0xDUkFKUFE9PScpKSk=')) \ No newline at end of file