Lorem ipsum dolor sit amet consectetur adipisicing elit. Officia, reprehenderit
- nostrum totam autem enim molestias dignissimos error perferendis veniam exercitationem
- aliquam temporibus libero magnam? Nihil cumque corporis error voluptatum molestias.
+
Somos una Asociación Cultural cuyos fines son el desarrollo y el fomento de actividades relacionadas con las artes plásticas, la pintura, los juegos de mesa y la promoción de eventos de tal índole.
+
-
Lorem ipsum dolor sit amet consectetur adipisicing elit. Iste incidunt distinctio ipsa maxime dolore tenetur dolorem optio, minima perspiciatis minus voluptatibus nostrum asperiores eos a enim laborum, earum at adipisci.
+
Ponte en contacto con nosotros para saber más de nuestras actividades y eventos.
diff --git a/JS/index.js b/JS/index.js
index 5d2b019..00ac3fe 100644
--- a/JS/index.js
+++ b/JS/index.js
@@ -3,9 +3,13 @@
/* posteriormente la información a cargar estará en una DB, la idea es más adelante hacer
una página de backoffice desde donde el admin gestionará los cambios
(adición, eliminación o modificación de productos, eventos...) */
- const infoProductos = [
+
+
+ let cestaCompra = [];
+
+ const infoProductos = [
{
- numeroproducto: 1,
+ numeroproducto: 0,
titulo: "Primaris Invictor Tactical Warsuit",
img1: "../RECURSOS/Productos/Invictor300px.jpg",
img2: "../RECURSOS/Productos/InvictorLado300px.jpg",
@@ -13,10 +17,10 @@
alt:"Invictor",
textodescrip: "Armadura de combate de los Ángeles Oscuros completamente pintada con un alto grado de detalle y personalización.",
disponibles: 1,
- precio: "150,00"
+ precio: 150.00
},
{
- numeroproducto: 2,
+ numeroproducto: 1,
titulo: "Termagantes Tiránidos",
img1: "../RECURSOS/Productos/TermagantesFront300px.jpg",
img2: "../RECURSOS/Productos/TermagantesLado300px.jpg",
@@ -24,10 +28,10 @@
alt: "Termagantes",
textodescrip: "Unidad Básica de 10 Termagantes listos para la batalla. Especialistas en cuerpo a cuerpo, pese a no ser de élite aprovechan su gran número.",
disponibles: 1,
- precio: "139,00"
+ precio: 139.00
},
{
- numeroproducto: 3,
+ numeroproducto: 2,
titulo: "Primaris Inceptor Squad",
img1: "../RECURSOS/Productos/Inceptor300px.jpg",
img2: "../RECURSOS/Productos/InceptorLado300px.jpg",
@@ -35,10 +39,10 @@
alt: "Inceptores",
textodescrip: "Unidad de 3 Primaris Inceptors Ángeles Oscuros en armadura gravis equipados con armas de plasma.",
disponibles: 1,
- precio: "149,00"
+ precio: 149.00
},
{
- numeroproducto: 4,
+ numeroproducto: 3,
titulo: "Teniente Primaris Ángel Oscuro",
img1: "../RECURSOS/Productos/Teniente300px.jpg",
img2: "../RECURSOS/Productos/TenienteLadoDos300px.jpg",
@@ -46,10 +50,10 @@
alt: "Teniente",
textodescrip: "Teniente Primaris de los Ángeles Oscuros equipado con arma de energía y pistola de plasma.",
disponibles: 1,
- precio: "85,00"
+ precio: 85.00
},
{
- numeroproducto: 5,
+ numeroproducto: 4,
titulo: "Guerreros Tiránidos",
img1: "../RECURSOS/Productos/TyranidWarriorUnoFront300px.jpg",
img2: "../RECURSOS/Productos/TyranidWarriorUno300px.jpg",
@@ -57,7 +61,7 @@
alt: "Guerrero Tiranido",
textodescrip: "Versátil unidad de 2 guerreros y 1 primus. Bio-armas de disparo a distancicia y garras y látigo para el cuerpo a cuerpo.",
disponibles: 1,
- precio: "129,00"
+ precio: 129.00
}
]
@@ -158,7 +162,7 @@ const cargado = () => {
//--------------------- CONFIGURACIÓN CARRITO COMPRA -------------------------------------
-
+ renderizarCesta();
//--------------------- CONFIGURACIÓN CONTENEDOR SERVICIOS -------------------------------------
@@ -183,54 +187,258 @@ const cargado = () => {
})
})
+
+
}
-
-
-
-
//--------------------- CONFIGURACIÓN CONTENEDOR PRODUCTOS --------------------------------
-const genListaProd = () => {
- let contenedorProd = document.getElementById("contenedorProductos2");
-
- for (let i = 0; i < infoProductos.length; i++){
-
- contenedorProd.innerHTML += `
-
-
-
${infoProductos[i].titulo}
-
-
-
-
+ function guardarEnCarrito() {
-
-
-
-
-
-
-
-
${infoProductos[i].textodescrip}
-
Disponibles: ${infoProductos[i].disponibles}
-
-
${infoProductos[i].precio}€
-
-
- `}
+ let prodAñadido = this.event.target.getAttribute("marcador");
+ let controlCesta = cestaCompra.includes(prodAñadido);
+ leerCesta();
+ if ( cestaCompra.length == 0 || !controlCesta) {
+ cestaCompra.push(prodAñadido);
+
+ try {
+ localStorage.setItem('numProd', JSON.stringify(cestaCompra));
+ renderizarCesta();
+
+ } catch (e) {
+ return "Error al guardar el item en el localStorage: " + e.message;
+ }
+ }
+
+
+ }
+
+ function borrarArticulo() {
+ let prodABorrar = this.event.target.getAttribute("marcador");
+ let indice = cestaCompra.indexOf(prodABorrar);
+ cestaCompra.splice(indice, 1);
+ try {
+ localStorage.setItem('numProd', JSON.stringify(cestaCompra));
+ renderizarCesta();
+
+ } catch (e) {
+ return "Error al guardar el item en el localStorage: " + e.message;
+ }
+ }
+
+ function renderizarCesta(){
+
+ leerCesta()
+ let elCarrito = document.getElementById("carrito");
+ let elPrecioTotal = document.getElementById("total");
+ elCarrito.textContent = "";
+ elPrecio = 0;
+ for (i = 0; i < cestaCompra.length; i++) {
+ let numeroControl = cestaCompra[i];
+ let articuloCarrito = document.createElement("li");
+ elCarrito.appendChild(articuloCarrito);
+ articuloCarrito.setAttribute("class", "articulo-carrito");
+
+ let contenedorArticuloCarrito = document.createElement("figure");
+ articuloCarrito.appendChild(contenedorArticuloCarrito);
+ contenedorArticuloCarrito.setAttribute("class", "img-carrito");
+
+ let imagenArticuloCarrito = document.createElement("img");
+ contenedorArticuloCarrito.appendChild(imagenArticuloCarrito);
+ imagenArticuloCarrito.setAttribute("src", infoProductos[numeroControl].img1);
+ imagenArticuloCarrito.setAttribute("alt", "imagen");
+
+ let textoArticulocarrito = document.createElement("p");
+ articuloCarrito.appendChild(textoArticulocarrito);
+ textoArticulocarrito.innerText = infoProductos[numeroControl].titulo;
+
+ let infoArticulo = document.createElement("div");
+ articuloCarrito.appendChild(infoArticulo);
+ infoArticulo.setAttribute("class", "infoArticulo")
+
+ let precioArticuloCarrito = document.createElement("p");
+ infoArticulo.appendChild(precioArticuloCarrito);
+ precioArticuloCarrito.innerText = infoProductos[numeroControl].precio + " €";
+ elPrecio = elPrecio + infoProductos[numeroControl].precio
+
+ let botonBorrarArticulo = document.createElement("button");
+ infoArticulo.appendChild(botonBorrarArticulo);
+ botonBorrarArticulo.innerText = "Eliminar";
+ botonBorrarArticulo.setAttribute("type", "button");
+ botonBorrarArticulo.setAttribute("onclick", "borrarArticulo()");
+ botonBorrarArticulo.setAttribute("marcador", infoProductos[numeroControl].numeroproducto);
+
+ }
+ elPrecioTotal.textContent = elPrecio
+ }
+
+
+
+ function eliminarCesta() {
+ localStorage.removeItem("numProd");
+ let elCarrito = document.getElementById("carrito");
+ elCarrito.textContent = "";
+ cestaCompra = [];
+ }
+
+ function leerCesta() {
+
+
+ var lecturaCesta = JSON.parse(localStorage.getItem('numProd'));
+ if (lecturaCesta === null) {
+ cestaCompra = [];
+ } else {
+ cestaCompra = lecturaCesta;
+ }
+
+
+
+ }
+ let textoInputPedido = "";
+
+
+ function tramitarPedido(){
+
+ window.location.href = "./Contactos.html";
+ alert("Solicita Informacion aqui")
+ }
+
+ /** function tramitarEncargo() {
+ let asuntoPedido = document.getElementById("formSubject");
+ asuntoPedido.value = "Solicitud Compra Productos";
+ console.log(asuntoPedido.value)
+ let inputPedido = document.getElementById("formComment");
+ textoPedido();
+ inputPedido.innerText = textoInputPedido;
+
+ console.log(asuntoPedido.value)
+ }
+
+
+ function textoPedido(){
+ let textoInputPedido = `Hola me gustaria saber la disponibilidad de: `;
+ let precioPedido = 0;
+ console.log(textoInputPedido)
+ for (i = 0; i < cestaCompra.length; i++) {
+ let numControl = cestaCompra[i];
+ console.log(numControl)
+ let nombreProd = infoProductos[numControl].titulo;
+ let precioPedido = precioPedido + infoProductos[numControl].precio;
+ textoInputPedido = textoInputPedido + `${nombreProd}, `
+ }
+ textoInputPedido = textoInputPedido + `el precio total seria de: ${precioPedido} €. Muchas gracias.`
+ return textoInputPedido;
+ }*/
+
+const genListaProd = () => {
+
+
+ let contenedorProd = document.getElementById("contenedorProductos2");
+
+ for (let i = 0; i < infoProductos.length; i++){
+
+ let itemListaProd = document.createElement("li");
+ contenedorProd.appendChild(itemListaProd);
+ itemListaProd.setAttribute("class", "item-lista-productos");
+
+ let tituloProd = document.createElement("h3");
+ itemListaProd.appendChild(tituloProd);
+ var textotitulo = document.createTextNode(infoProductos[i].titulo)
+ tituloProd.appendChild(textotitulo);
+
+ let contenedorCarrousel = document.createElement("div");
+ itemListaProd.appendChild(contenedorCarrousel);
+ contenedorCarrousel.setAttribute("class", "container-carousel")
+
+ let carruselesProd = document.createElement("div");
+ contenedorCarrousel.appendChild(carruselesProd);
+ carruselesProd.setAttribute("class", "carruseles-prod");
+
+ let fotoUnoProd = document.createElement("figure");
+ carruselesProd.appendChild(fotoUnoProd);
+ fotoUnoProd.setAttribute("class", "slider-section-prod")
+
+ let imgUno = document.createElement("img");
+ fotoUnoProd.appendChild(imgUno);
+ imgUno.setAttribute("src", infoProductos[i].img1)
+ imgUno.setAttribute("alt", infoProductos[i].alt)
+
+ let fotoDosProd = document.createElement("figure");
+ carruselesProd.appendChild(fotoDosProd);
+ fotoDosProd.setAttribute("class", "slider-section-prod")
+
+ let imgDos = document.createElement("img");
+ fotoDosProd.appendChild(imgDos);
+ imgDos.setAttribute("src", infoProductos[i].img2)
+ imgDos.setAttribute("alt", infoProductos[i].alt)
+
+ let fotoTresProd = document.createElement("figure");
+ carruselesProd.appendChild(fotoTresProd);
+ fotoTresProd.setAttribute("class", "slider-section-prod")
+
+ let imgTres = document.createElement("img");
+ fotoTresProd.appendChild(imgTres);
+ imgTres.setAttribute("src", infoProductos[i].img3)
+ imgTres.setAttribute("alt", infoProductos[i].alt)
+
+ let btnIzq = document.createElement("button");
+ contenedorCarrousel.appendChild(btnIzq);
+ btnIzq.setAttribute("type", "button");
+ btnIzq.setAttribute("class", "btn-left");
+ btnIzq.setAttribute("onclick", "moveToLeft()");
+ btnIzq.innerText = " < "
+
+ let btnDcha = document.createElement("button");
+ contenedorCarrousel.appendChild(btnDcha);
+ btnDcha.setAttribute("type", "button");
+ btnDcha.setAttribute("class", "btn-right");
+ btnDcha.setAttribute("onclick", "moveToRight()");
+ btnDcha.innerText = " > "
+
+ let listaInfoProd = document.createElement("ul");
+ itemListaProd.appendChild(listaInfoProd);
+ listaInfoProd.setAttribute("class", "info-producto")
+
+ let descProd = document.createElement("li");
+ listaInfoProd.appendChild(descProd);
+ descProd.setAttribute("class", "descripcion-producto");
+
+ let textoProd = document.createElement("p");
+ descProd.appendChild(textoProd);
+ textoProd.setAttribute("class", "texto-descrip-prod")
+ textoProd.innerText = infoProductos[i].textodescrip
+
+ let dispoProd = document.createElement("p");
+ descProd.appendChild(dispoProd);
+ dispoProd.setAttribute("class", "productos-disponibles")
+ dispoProd.innerText = "Disponibles: " + infoProductos[i].disponibles
+
+ let precioProd = document.createElement("li");
+ listaInfoProd.appendChild(precioProd);
+ precioProd.setAttribute("class", "precio-producto");
+ precioProd.innerText = infoProductos[i].precio.toFixed(2) + "€";
+
+ let liBotonAñadir = document.createElement("li");
+ listaInfoProd.appendChild(liBotonAñadir);
+ liBotonAñadir.setAttribute("class", "contenedor-boton-añadir");
+
+ let botonAñadir = document.createElement("button");
+ liBotonAñadir.appendChild(botonAñadir);
+ botonAñadir.setAttribute("type", "button");
+ botonAñadir.setAttribute("class", "añadirProd");
+ botonAñadir.setAttribute("marcador", infoProductos[i].numeroproducto);
+ botonAñadir.setAttribute("onclick", "guardarEnCarrito()");
+ botonAñadir.innerText = "Añadir a Cesta";
+
}
+
+}
+
/** más adelante se creará un botón para añadir a un carrito y un contenedor para los articulos del carrito
con sus correspondientes botones para quitar el producto, un espacio donde figure la suma de las cantidades, etc. */
diff --git a/RECURSOS/Logo/fotoCarrito.png b/RECURSOS/Logo/fotoCarrito.png
new file mode 100644
index 0000000000000000000000000000000000000000..93046e4e0b019fea484c24d2f5dc9d2703e0ec36
GIT binary patch
literal 16990
zcmd73c{r6__c*?fc_tJx_DIQ;nTi}~GD{j%IAzL^dCGWDJPn2lnG%($0foqTq>wpe
z4v{ID>tsIPb?bRQzt8o4-s>Iyc(3c{x^SO;@4fa~Yp=cLbHm8s7%S6uCWH{H_VL5U
z2+_bJ4Pu~!e?fwhq41B-6C-WT1hk*1aNC2JAwD;I68jjbz2?{w_W*GXDFH1Zu>NE
z_H{CoX@pmV$)PDt2|0G-n;(u#@7gi=XLH-x*DIMN`=7~+4qt7)p-?)WQkuB3UqW)R
zY40Bc?0^w|e&7rh{O5pQgs>-s$NnIO&A&M8ugK;jMhznV{o}u0_m4sR<8}B=@c(S<
z|FiDjM0s=FZ|wgMh=07F$R;lTi|T*9?!QLrzux-q@%-W0zyVkPf;GdM*%Jccu2RGC
zlJp2g-_zB}Q_>eGb?rZQaP3|teS;Aph>rz0Wc1QhAZldky|}NxFwFrN_;hed<0s+5
zXCEnyCt1}Up_N-|t6Qa4;S(=yCi-E^SsV0jzG#%9_qnZ_GTl0zFL#Cw^o9Hrv$YqC
zDh5+@987>!XdBMOwOw`Nz~x_KR(4MQ+e)~oQ!rdaP+g0ZM`@+SX{Kgb(=epLfYE@%
z2eMPVV}sp`rLZHTL01#PW}5!?F0Cyrh$2|9?*5Wv=%~Q25ubDcOhXa;+xE}=7^^(N
zBr{(t$Qkk7W-LwjIMzw`->WK!6Sn)gKeMS-q33L`>!a{JNg
z`{yXR64dIYWyxpgbpQ{?yKKZyjUl3x?&lq}trFBQZ4XSlH?UzC6U?f!sLKOe=Hm7WK0w;W;B2M?5prTtS
z{OiN=aYo+bTr@_Tq&lb(<#w9EEFwY@L#lX8r{{@ri4lgDRZhajse5N7t8Q#$(A*{k
zV92ewXfqo8xWy?;)ir!M7IrTd*F^?nX}9F^Fv>H6vUmjDy@};kg8~fl)t5yNJ7W
z+09g9g0~b4)COZH@}yA@S+&Fv@8n^o#pU9DWDqw{(i{_fr|~`aap@SiB4_VgBExZU
ze9a}H+RS>G^}K79(%M!nZr|x)ZB1i*!@9ABI(Ot)EWbtGz%)?k$v;V}u4*?%j!s0{goG=Ln>
zF(su)jSFpVcgt9Xq~?*7zb;T>joVMv{UiB+5r*APWn6zs2kYF`iAYw*m{8VY&e~1s
zq$18=jtja_^krN%
zP!ZnZ0ozi}5(8pldOC++2AmJT4G}|j-{Zk^Gy(uIGqN6nNPpDxcoI%19`u3;BHlH-
zX<4+e9nRiC0y`e0(^)fbJuwi{1-RI{O6h?H1zfVtuRDpVO$})k=h6V+7{~37H1S6*
zVF~_$2Qs>)9BC?W4~UGztzF*#8;+Nl#{;CKtGk1&2Uh{$(&(bLJRZQyw}li=BR=+u9p5G3Q^zrSRA~Cn^?-+Sl|$^o)qHDdfPq8YlG3=W
z073u#tY1aYM5!<~)RQ#@N@KfHZ;X_xnkW3`m9g}p
zB95wSYTDDGf4uRlqm&|Dl9^rW=qaa%5nq7Nbj#JdO>em!llXBb#>_>BNz7t+cJ4
zS{TeW9D49@xLB}uw0>$XN_871rwkwrlRJt0n+PBHA3UU}Cl0}qRN4J#=u8VHh^NvS
zG{gain9;kOB2VRAEFn#*jDt%;qal!nD^~8P}JVN|&`z;S*mVhqW{BYB7
ze9gQb2Y!%!KdCf@uJj8vk}bO`V8K8&5z2;C&3%_D)8HcC9;)!zRy(B{Xu>9Qh#n>T
zrv*I4hL88|l=YPfEhn;COv7*qB9MKHwYa>=Pan
zyXtSk*HH3(G34?}TVQVtNW~T%!DkO^UK%l-PNzl&WC=Lt@0fBHb>9a9`YTi&2lBmF
zMtbjafLy~tC}F{w@1dtc#qkdhd4I1z43zSwJ!^1HwWK0!UA{^Znp)ZI4TiD6nf&6U}g;?@7j!s
zewsWWKE=_>k$bi7Kc@op)0>`o;$Rx{@!F>s*v+0YA!M1(46^xS$a*4@h6WK|u4*za
zsb?b6@{@M7{WqjOiex=$b`lX6wRzgILHWvFvKxH5+jZ>;ciFVM7}324i^AmRZg9@|
zff)E3ANZtr7S4xMoGwG0jltp21-;$_mS^Csd0#$r{eFE$QBw61BT60&ba@UajEpll
z1ZvTv=i?>JaD7DYD^snV;Pb&oYz-M<(VH8bfb^~N?>=JgizxXe=bW-GA_UkekdiQ_
z99NGTNs*rmV?$>Lsl`CjK>jOEW6mB(EgQYg?+5=?R{?B2fLbuc(BoA%rlLWux$1vg
z^4<+b;~Qg%Mdi6Pt+&{Ri?cByse3r=lg?7+s?C_nb5GS=9K+#bjjKMNPm&mFjq>0m
zHUSHHZ@s~=Yg)EqU|>cZ!Uwg<6EhnqFx29E`z9NjhytFX+rfUuG$@bO4^ShK
z3MlSUS9Y{kZW??LYd0~E&)IYQvy!+UGPDjVV62HasgN8K0|F!Z;cS6%^*jH8zD7rTEy0W$zy4{zLqg?sIyN^;)^;%EsvmaA>WSdqyoX1y99%2CIha6!iEV$#eyrLPJyW<|z=f+N|
zJXK-^g4irt>
zGL>^$@e=BMzE5b14?2yeY=LV@(h6fP!GveBfD($(O#&aj3rCoiuxyjSB_v4Tw)RVQ
zI65)G4sJ3NLdxH1NyTdXbAzuVllr?ALiLlvN-Vg~%HKqY=`pj&wcJ<~IT5x)MM$q(
zag%S4zDsIe4pDjNlN#*#CeT>^_h3Pl4e^Eys<~7bH+FQ{v^x5M=!=E?FAkTQy53)(
zxpps@do28>*zR6*W&=ilrJA3U5_Yp#=)xNKxl~
zWOph)XcE{d+rf!et@9?Ynk{Z@yW&z$2he&`I0Xt1#hbYyNAmzKkK|~2SU>WY4(14xUc*7ZWNZL)0pV!s=S$te!I)xe0jW!
z5g07-Rgsvpo_m5$t(%mcp@R>uq$njNQ31jSZ>1Kt=_9Qm`tUY!jfBgwMAi!w`wBW4
z|6E{B`OKc+c9cb?&O?a$!KDyMj|dok2eqH*{E75=WaIuukdc#v}Ao$07O(
z-GmKs#px}uv-x6{zUcJ5s$FAlO_`|$RSSk7GwLr0W(QKuK4#yrL?43bw<^#3St#rc
zfOxAp#O&Z&9}CBjPXwpYpS@8O&o$U=sIG$ZEFDRt>*%TmEPA-DDyhyYg9cSz4C2;FTNkE5r1Ks)07Nd-A=UNB
z-ZkzRz{z3)fSmi_vWOuF>Tac6&7)?Qavb$Nw2dX$=Oe^
zfFcS3gEa{H9}`s!sS2m4n3k{P_H2?bu-g+A#C8#ej|S^F)o&lQ{px6-YtdDbu`qkW
zVY>)I2Fy5nTRv3S&s`mFny)8p&;HZX`wti|1T7?;D-?+iEuCeoyD*)$u?a9agSA%%
zu74hFg~RR7Mt+Y9bPNp_i^jMN``dRQbovo9iJ$tlW!<)M!S<_J`HR*o9+hh
zfW78sBH@<<@hD?m_ltUs$`J}sDyi)(_A3?~iSr*Na8yLgpzxtb_A}`CVA`8KL@bEx
zDDI;tJYwPAj=qbli;@pB&dmkwDA@;m7~lAEIW}#DpP^o?e^@GlGg=P2ji{3WXaB2^
zGw`>w&Al*3PvxTdxkK5NpOw7#rSqu1wT82JQ&_e9
z5^k}M7#dQHyAl1YS7rXw2AGhuNiyilHT(ldZta|m*r1Kyh}~CyH6xwPLF9DqDEngl
z+~c9^ox$%9>MIYtu*2}~x|qjDaMNWJk5(zWy<9}!dBTs7yDp4_!2ef_NMlG*I^OKy
z2`YILKf-J}E1>swO!I*0B|emt`iU>FVU~4DM{~VkVK#D*8{}%Q2Tqlh*u?wlQxCs6
zsN*N()PcSrc;QTr9lBiZ@t6gFq)V+%dwQA@rH2WkMeoqrgu^^2X(h0#o278}1}ie{
zDj05YYPW&6vr^Qp=EqHOM8NGMWImb(#}ieieq#2ryDmz1+Sz9N4n*tviZ;`1N@Vxu
z?f;?YmypDw{OdCn4ubM?%j4cbVKAGa0Ue5`bvBsnik5B>`oWv@hSSBM(7ElI78efX
zedNzS%_l{j3K}p{^y|*u56^5Y7h=+?tiwZWN5oe>B6pMZBq?i{7l8N+b7_vL)H+2^
zHu#f*`jX6RY|?0wwN5V2x~^0dV1|@%uZ=yTz_ek9HHVd)a;LnzP~qMW2V}7u6X^2V
zGJ^)6hVk^o>IXIRIuM1|mo$8I@14uMLU&xaKrM8ZYHFR$P;z7K#VmNWgrq0Uak$o~
z9o34?zVl`xX9~mTW~u?yc}(sUH7xEcAa{ub5q*5f_RdW;jnvz(Ul^Xekh
z?Kd_2zQujS!FhM@H$!o_=wG2xD&@C7D2Ne`6nYO`T{?!)5^nn(u3n4#&8utI2OVOF
zESD+tI3!Cv&ENv(!(+XuK!YmipF3eJoxKjOS7R_|H$9Qr&v=qrxUA`p&GSo{3sa|k
zmw4jfe$nO6hEHTg_;#6yoTNgH^lrv}T@T1038bNdM{jn((dV(A{B;3n4;xiP2RPm3
z7Qs_k+%`z<_VHSY%77=00#L4~alF&1mzk)x?|n#7Ko-sIv(pXJ-%G)M@J9IQ5cp8E
zdN7CO>DBq5&4YRT5<8e?rxeq0w(b7(LmqZ-+CY{DS5jb~nw<}5L=xD(IDi<G3aTbaP2hYBjRw18B__!S5NytW?^|Q$G-3Vv9uXcUG+5u-}^8tFy7}m
z_=4q2e{?(Y0ZT7Mg?^sHLB3Ax?4=KN;9(mT{^eow-0h`YdDS@4L&NdyH5UEz*!&85
zl}e4iK`f;UK`JdG^;R(TQa%vb5WaLfBCTwz+LFM4hgNdJV4L;NDGXvvS7VU4!)Xhf+Z7QhAJxVJKjS
zb}vgzAUs0ce@wH#dInsZJ^OC{g?zNAE`+6LyXcUMTIQ}h(t?QOYX06;JyI|oBsbzW
zl@JFE?fex3`7M>+R%sk~nMN_o3&+?HF>>TC+}rnUw2)bntfky3)YU=Bk8X@$F`U4a
zX#XR8b&z)$QoJ&OI(x=_7dh{zrklP+JBs3?uJANFG
z9i+d&{CTVn8C~ylT{B+xaoj!^_Zc@ntWs~0?o5~LP7coQdpD~QQ^ko0r^q;li?;hj
zUT%xIvfAozD^mJ5?VhDCNu#;|emV6PynM|0*q}ha9U#n4t*DbZY;;J*2Zk!wUoM>d
zaKTm}BesQd9Wzx~9|K$I5<4|#5}8=mjI7kX%DX___q{&9tYnM1Tgcvqk7$iZvQjt#
zLtznRDiFK}lPiXdPlNd1=7xRy(=H~3X>8w!>O1`hAN#751SV2k
zj!K?>p)e)09WqlSxgA9Qo%XMJ=LS
z6189Iu0MPfz8+=l4ujuEy`_C+Lm-Aj#}*D7P-k^T4ZpZ2f6A2e~i@g%UcAJ?ls1w
z?l+`cE4so`tDH04k(RxdD9=u{7kDxLh#9}Sv$ZlCJfuQrn`fBGC+(Y-toq2$tulqa
zW{?9MHyt+BOsyTHEoR6wfqlu@F!o`{xJsWw_L}eAxROm8xa^47fGym-F@%K0NyvV+2vSbHF*rvE%eXe%vMVdyjj&C{w2oBh9s=EYha=U?LK2sk0gT5;S^$i#J9F%svOpDeV@
z($Z2PBJ1T)GcPVPWXw4zfnQAu?)SU;sLs#25}#@vF1zt+(u{SNvKyoUpLUD$%;h&%Dp{J2fgw
z5OJO!#blGMFJpFD9G7PuhbzWOo_a>Z{cac0`supjc1(I>5bscJ5t+Z?D1*_H9p^JL
z>n)z__~q@QcP^n)U1=|0VkrfbcwT_=(4>D34TERI>-n8*+?CTFBTCz>(h
zk4-lMx3m#{pS{JUjLn#gVUjA3C6)UHrx8j*aU-WkA6l$J=#Dg69~W>HxZWq!bxvk4
z@L1PbYewoxV(zI~
z)|WK)Zo>nq-4)@PkK+atvZD)koX;$mlW7R2-sp25-8=m2$(Yd_RnfaYeA3i+Hlcny8EI|$b4&O&>;
zCvTEp|^ugoUYz(mz8h4)8fc^PmZ;^3`QKCZw~5qCeGAw?p~
zRccz6H1Y^#lZ-jbl=5Adr<$9hA4nQdiC6z-XNz&K>Z>s}qH=c-E#N_JOX`619Tbtr
zeHcW7LIj$hk;y@OSpXOAw|5SHj(9*{>VK9BIi3gk>ckRA;)iv9_SHKW`8n7+g9<$JNb#I
zmV9szZMNH0m2oFtqwvkC$jDj^;0SIZ=X-fa7gi+7(dGsZx|!|skRbG*rO?MZR>v4TC57Aj@ntc
zAw;Hq8}#U#dn!%dLGaX)!BdNnN5pZSAxC8#jaytNxUH~9bT4IAlKOcIClaw;)d56X
zH`sZeP@_82UKW?_KpJto|CU-w*mV*iH(Lcf5+D4-qe=s4lOU5=p@3#M#IBwPo159w
zmI>8H0!l9{n5cq^Wos`ZvE%HNDA?v^2bMq|8U}w{C-3Y4cnONLoDQ`d!kGt%kAPwZ!f0z0ZZ*Sk(J;!D+l
zgtJj9x6=R=vgJl|kT_03AHh^56m|j}%&3t=wdTt0gXyO4IN;LuO
z@hOmQ2dgBh-GIvWA);DPbucUNK)eTPcTg~}5-X%=oS~a|2oVWZzQfY(R-&G>W+&*n
zS%Bud(s97yP%@@Go;TSLQFIiw7_kYCQ2g`GNFIzD!&EPDzT46Zuk|wG2y1KRApJvc
zvGbURJTiaAd%CP6=jddCB3`jlO7*rf5LdCB8dohoM2M+~u*_k}GX((W6kXL$!JG#_
z$duj%jbPSS^qa-i>+%ryeZRUCJ`HGRefXVtKPsxeL~#(vjiFLDglSy0%s5i9|CX}#
z@E0F(sAFfj+2vvA9zeVon8qlNSU?22V+xihZ2{j<`;nze%_&SXD^Fyq+PLaLU_6}8i&REd5wC|8pJD0#{`N%G+xVGSt-ih1Qyrf8y`ts_LLh9eE~g%
ztg!++)L3+?Rw<0V8y8(5&df4_q5y{dQR(3&%e*hbw?p7iPEU5H?ZUz&V#JcJ0A+g#
z1ddR+%DSI+fRh7Fw5UZIj`*Z<%gW5|!5J;H>OjoZIu%OE479k2-Q&Vi&RP>-oOE_M
z#W~I4=iuTH`-lw}KGjQKzz}detsFISV&dEyPdykiVzL@b32I~Q56%WZob7%kSGdp;
zj@aKcyp+C>#tbo)3mK~EosxlkwWBv3WN(aU3us^kUs!5fesjcE;J`Ns>fy&aiLL>)
z#becUYY^R5J1D5)r`bt=^#TBY#d~5wwLWw8#|q6*)!lWLD!L{z8yffGjy+X9`_G$1Q73
z;1SBN#1TOm;lSK8=HUf!V5qf;wE#N2IQp=FV|pGRkPpy
z2o0|ND!(E6E*0?+iuU{gRu!sEE+ylxjl=OK=Ha%kn|%Nn=3aXulVZC>q_21XJr;HM
z0gL?q!Gdon81{(HglL%{Cgd+j&w!$pfU;+Q-vp@h?sXa9~{k(5LYi9z8q%b~@2Ku*>+O{qme&IjrHr2}Cd;
z5#Unqlwqsd&vZZIP?-EROd(@zKZum6
zzhgmrG!6hyT@|Wzn%IxCC(B2^`D;NBy=(t-4Derl8cA4hL_D_1NG3JZPNBxmL-I^#
zz^bFz20j0S$aNVGI9iaXCl80?uRHC-zmTb&|J?;Z#LiD&Kt&=~lL0^ea
zo%3GGIQyX@N79xTfE9sSM%uXo5yU4icTTx}ubCfjrESmE@^+LSve`-$O5dzy6Rg?}
z;#Q&lY+=ZcBpy?vREx?C{n4vA&Qo@yZPu728c5n%$jtUI@FgPosraD3Xy=Iyn51T@4%}
z>*IsaN4OLCD1M5oq-eu}&Uqb|b>{Xl5AGy)uJ}!{qa7Dm%|tfjBZXtB
zK`EpkKeoEAndiOt+A#HPCHkn&JvD65tdZO{b?gL#B`J9u;v{By~DAwo7