Alfombra un aeropuerto


17

En 2015, el Aeropuerto Internacional de Portland comenzó a reemplazar su icónica alfombra . Quiero que escribas un programa para dibujar su alfombra vieja en la menor cantidad de bytes posible.

La alfombra:

Un azulejo

Especificaciones

  • Aquí hay un enlace a una imagen pdf escalable de un mosaico. Su salida debe coincidir con las dimensiones relativas y la ubicación de esa imagen.

  • Todos los colores en su imagen final deben estar dentro de 15 de cada valor RGB en la imagen especificada. Estos se enumeran a continuación para su conveniencia.

                Red   Green Blue
    Teal:       0,    168,  142
    Magenta:    168,  108,  185
    Orange:     247,  58,   58
    Light Blue: 90,   166,  216
    Dark Blue:  0,    77,   117
    
  • Su salida debe ser de al menos 150x150 píxeles y debe ser cuadrada. Si elige generar en un formato escalable como una imagen vectorial, debe coincidir exactamente con la imagen.

  • Puede generar la imagen en cualquier formato de imagen preexistente.

  • Este es el por lo que debe tratar de minimizar la cantidad de bytes en su código.



@Hexaholic No creo, así que estaba golpeando al azar en wikipedia y llegué a la página. Sin embargo, es posible que también lo haya visto en reddit antes.
Post Rock Garf Hunter

1
¿Tiene que ser una imagen bidimensional o podría ser algo así como un modelo visto desde un ángulo específico?
devRicher

Respuestas:


9

HTML puro, 873 bytes

<table width=152 height=152 bgcolor=#0a8><tr><td colspan=7><td bgcolor=#5AD><tr><td><td bgcolor=#057><td colspan=5><td bgcolor=#5AD><tr><td><td><td bgcolor=#057><td colspan=4><td bgcolor=#5AD><tr><td><td><td><td bgcolor=#057><td><td><td><td bgcolor=#5AD><tr><td colspan=7><td bgcolor=#057><td><td><td bgcolor=#057><tr><td colspan=7><td bgcolor=#057><td><td bgcolor=#057><tr><td colspan=7><td bgcolor=#057><td bgcolor=#057><td><td><td><td bgcolor=#F33><td bgcolor=#F33><td bgcolor=#F33><tr><td colspan=6><td bgcolor=#F33><td bgcolor=#057><td colspan=7 bgcolor=#057><tr><td bgcolor=#A6B><td bgcolor=#A6B><td bgcolor=#A6B><td bgcolor=#A6B><td bgcolor=#A6B><td bgcolor=#A6B><td bgcolor=#A6B><td rowspan=6 bgcolor=#057><tr><td><tr><td><tr><td colspan=11><td bgcolor=#057><tr><td colspan=12><td bgcolor=#057><tr><td colspan=13><td bgcolor=#057><tr><td colspan=7><td bgcolor=#057>

HTML + CSS, 625 bytes

#l{background:#5AD}th{background:#057}#o{background:#F33}#m>td{background:#A6B
<table width=152 height=152 bgcolor=#0A8><tr><td colspan=7><td id=l><tr><td><th><td colspan=5><td id=l><tr><td><td><th><td colspan=4><td id=l><tr><td><td><td><th><td><td><td><td id=l><tr><td colspan=7><th><td><td><th><tr><td colspan=7><th><td><th><tr><td colspan=7><th><th><td><td><td><td bgcolor=#F33><td bgcolor=#F33><td bgcolor=#F33><tr><td colspan=6><td bgcolor=#F33><th><th colspan=7><tr id=m><td><td><td><td><td><td><td><th rowspan=6><tr><td><tr><td><tr><td colspan=11><th><tr><td colspan=12><th><tr><td colspan=13><th><tr><td colspan=7><th>


9

Tikz, 725 693 681 671 bytes

\documentclass{standalone}\usepackage{xcolor,tikz}\begin{document}\tikz[line width=20,every node/.style={minimum size=20}]{\definecolor{t}{RGB}{0,168,142}\definecolor{m}{RGB}{168,99,185}\definecolor{o}{RGB}{247,58,58}\definecolor{b}{RGB}{90,166,216}\definecolor{d}{RGB}{40,77,117}\fill[t](-7.5,-7.5)rectangle(7.5,7.5);\draw(-1,0)node[fill=o]{};\foreach\x in{1,...,7}{\draw(-\x,-1)node[fill=m]{};\draw(0,\x)node[fill=b]{};}\foreach\x in{1,...,3}{\draw(\x,\x)node[fill=d]{};\draw(3+\x,-3-\x)node[fill=d]{};\draw(-3-\x,3+\x)node[fill=d]{};\draw(4+\x,1)node[fill=o]{};}\draw[d](.65,0)--(7.35,0);\draw[d,dash pattern=on20off8.5on162.5off8.5](0,-7.35)--(0,3.35);}\end{document}

Pruébalo en línea!

Explicación

Una buena parte del código es un contenedor:

\documentclass{standalone}\usepackage{xcolor,tikz}\begin{document}\tikz{...}\end{document}

Esta es una ligera variación en el contenedor Tikz estándar, ya que también tiene la línea \usepackage{xcolor}para que podamos crear los colores correctamente.

Lo primero que se hace es line width=20,every node/.style={minimum size=20}]establecer las líneas y los nodos para que tengan el tamaño adecuado.

Una vez hecho esto, definimos los colores que utilizaremos para las distintas partes de la imagen:

\definecolor{t}{RGB}{0,168,142}\definecolor{m}{RGB}{168,99,185}\definecolor{o}{RGB}{247,58,58}\definecolor{b}{RGB}{90,166,216}\definecolor{d}{RGB}{40,77,117}

Ahora que todo está configurado, pintamos el fondo de nuestro lienzo verde azulado:

\fill[t](-7.5,-7.5)rectangle(7.5,7.5);

(No incluiré una imagen de esto porque es solo un cuadrado verde azulado, pero incluiré imágenes de cada paso)

El primer nodo que agregamos es el nodo naranja a la izquierda del centro del lienzo.

\draw(-1,0)node[fill=o]{};

Una naranja en el mar

Ahora dibujaremos los nodos azul claro y magenta. Hay 7 nodos azules y 4 nodos azules, pero podemos dibujar nodos adicionales que serán cubiertos por líneas más adelante, por lo que dibujaremos 7 de cada uno.

\foreach\x in{1,...,7}{
    \draw(-\x,-1)node[fill=m]{};
    \draw(0,\x)node[fill=b]{};
}

Caminos bifurcados

Ahora dibujaremos todos los grupos de 3 puntos usando un solo \foreachbucle

\foreach\x in{1,...,3}{\draw(\x,\x)node[fill=d]{};\draw(3+\x,-3-\x)node[fill=d]{};\draw(-3-\x,3+\x)node[fill=d]{};\draw(4+\x,1)node[fill=o]{};}

Puntos dispersos

Ahora dibujamos la línea correcta. Esta línea será una línea simple con desplazamientos de .35en cada dirección para que coincida con el tamaño de un nodo.

\draw[d](.65,0)--(7.35,0);

Colisión

Ahora debemos dibujar las líneas y cuadrados azules oscuros en el eje x. Los dibujaremos con una línea usando un patrón de guión personalizado.

Este patrón es [dash pattern=on20off8.5on162.5off8.5]Esto crea un cuadrado con una cola larga y sólida. Nuestra línea comenzará desde abajo y no cubrirá 2 ciclos del patrón.

\draw[d,dash pattern=on20off8.5on162.5off8.5](0,-7.35)--(0,3.35);

Final

Y ahora hemos terminado.


¿Puedes usar números para representar colores RGB en Tikz, en lugar de escribir los desplazamientos RGB?
Yytsi

@ TuukkaX Creo que sí, pero no pude resolverlo. Si sabes cómo agradecería estar iluminado.
Post Rock Garf Hunter

No conozco a Tikz en absoluto, así que no puedo ayudar con eso :( Sin embargo, si entendí tu regla sobre "dentro de 15 de cada RGB" correcto, puedes cambiar 108 a 99, ya que el error está por debajo de 15.
Yytsi

@TuukkaX ¡Gracias!
Post Rock Garf Hunter

El uso \definecolorcon la HTMLespecificación (en lugar de RGB) le permite especificar colores usando hexadecimal.
Julian Wolf

6

archivo PNG literal, 283 , 234 227 bytes

EDITAR : Al usar el servicio de compresión de imágenes en línea https://compress-or-die.com/ , esto disminuyó otros 7 bytes.

albn @ alexhi

j:~/tmp$ ls -l carpet3.png
-rw-r--r-- 1 albn albn 227 15. Feb 12:01 carpet3.png
albn@alexhij:~/tmp$ base64 carpet3.png 
iVBORw0KGgoAAAANSUhEUgAAAJgAAACYBAMAAADq7D0SAAAAD1BMVEUAqI4ATXWobLn3Ojpapthl
S7nNAAAAj0lEQVR4Ae3ThRHCQBQGYVqgBVq4Fui/Jt4ILks8/80uLvkyOTlkd67EILHojtWEyxQT
Sw6uFS5TTCw/uFa+TDGx/PjS3z+KiS2GcRtgzIqJdboDPomteniCxMTyatXtMiExMcB22amCJ7wG
MbHpBWBiYmJiYmJwAjGx/ncAn0VMrP8dwL+KieXHFyImltoF6oWZiblRTNQAAAAASUVORK5CYII=

alfombra3.png

Los 227 bytes son el tamaño real del archivo binario carpet.png. Cuando se codifica en base64, como se muestra en el bloque citado arriba, es unos pocos bytes más (308 bytes). Encapsulando eso en un fragmento html que muestra la imagen de inmediato agregará otros pocos bytes:

HTML, 414 , 343 , 336 bytes

<img src=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJgAAACYBAMAAADq7D0SAAAAD1BMVEUAqI4ATXWobLn3OjpapthlS7nNAAAAj0lEQVR4Ae3ThRHCQBQGYVqgBVq4Fui/Jt4ILks8/80uLvkyOTlkd67EILHojtWEyxQTSw6uFS5TTCw/uFa+TDGx/PjS3z+KiS2GcRtgzIqJdboDPomteniCxMTyatXtMiExMcB22amCJ7wGMbHpBWBiYmJiYmJwAjGx/ncAn0VMrP8dwL+KieXHFyImltoF6oWZiblRTNQAAAAASUVORK5CYII

Editar : eliminé las comillas y el cierre> como sugirió Shaggy. También comprimió la imagen hacia abajo otros 17 , 24 bytes


1
No creo que un archivo literal se considere un lenguaje de programación válido aquí en code-golf. Depende del OP si esto es válido o no.
Camarada SparklePony

1
Puede que tenga razón, pero incluso la descripción de la etiqueta kolmogorov-complex en codegolf.stackexchange.com/tags/kolmogorov-complexity/info menciona una cadena compleja, cuya representación más corta podría ser imprimirla literalmente. Si una cadena literal se considera la "solución del peor caso" para un código de golf basado en cadenas, un archivo de imagen literal podría considerarse una "solución del peor caso" para un código de golf basado en imágenes. Editar: solo publiqué el archivo, porque me sorprendió que en realidad fuera más corto que las otras soluciones publicadas anteriormente. (después de eliminar el fragmento TIME opcional del archivo)
Domingo

Si depende de mí, estoy bien con eso.
Post Rock Garf Hunter

2
Con un poco de compresión, podrías bajar eso. Además, suelte las comillas, cualquier final =y el cierre >. Aquí hay una versión de 366 bytes en la que estaba trabajando antes de ver su respuesta:<img src=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJgAAACYBAMAAADq7D0SAAAAD1BMVEUAqI4ATXWobLlaptj3OjrqGXAuAAAAp0lEQVRo3u3YQQqFMAxFUbeQLbiFbsH9r8k3y8CmTiKm7b2Dwv/CgUAD4jF3TYGBRdgKmRqPCQa28gaMZ20KDGz5DQhnbQoMTG2wAcPR/ScY2HeYVw4zBQYWYDUvbRLWFS/lBxhYhM3bpXzMcWBgEVa5U70cpsDAnkf1FxcwMDAwMLBczP8DAwuwmpc2HzMFBhY8qHlp8zFTYGCdyn8GKrhOYBtjv3QDvf+Zic+8bOsAAAAASUVORK5CYII
Shaggy

1
@ComradeSparklePony Generalmente no requerimos respuestas de lenguaje de programación a preguntas como esta: codegolf.meta.stackexchange.com/questions/3610/…
isaacg

5

Mathematica, 285 bytes

e={1,1};r=RGBColor["#"<>#]&;c=Cuboid;s=c[3#-e,3#+e]&;a=Array;b=a[s[{1,-1}#]&,3,#]&;Graphics@{r@"0a8",c[-23e,23e],r@"a6b",a[s@{-#,-1}&,7],r@"f33",a[s@{#,1}&,3,5],s@{-1,0},r@"5ad",a[s@{0,#}&,4,4],r@"057",a[s[e#]&,4,0],b@4,b[-6],s@{0,-7},{-1,2}~c~{1,10},{-1,-2}~c~{1,-19},{2,-1}~c~{22,1}}

Más fácil de leer:

 1  c = Cuboid; e = {1, 1};
 2  s = c[3 # - e, 3 # + e] &;
 3  a = Array; b = a[s[{1, -1} #] &, 3, #] &;
 4  r = RGBColor["#" <> #] &; 
 5  Graphics@{
 6   r@"0a8", c[-23 e, 23 e],
 7   r@"a6b", a[s@{-#, -1} &, 7],
 8   r@"f33", a[s@{#, 1} &, 3, 5], s@{-1, 0},
 9   r@"5ad", a[s@{0, #} &, 4, 4],
10   r@"057",
11    a[s[e #] &, 4, 0], b@4, b[-6], s@{0, -7},
12    {-1, 2}~c~{1, 10}, {-1, -2}~c~{1, -19}, {2, -1}~c~{22, 1}
13  }

Las líneas 1–3 definen nombres cortos para funciones, la más importante de las cuales es la sque dibuja un cuadrado centrado en las coordenadas que recibe (realmente 3 veces sus coordenadas, para una escala adecuada). La línea 4 define una función de color usando el sistema RGB de "acceso directo" de Mathematica: RGBColor["#xyz"]donde xyzestán los dígitos hexadecimales, significa RGBColor[{17x, 17y, 17z}](de modo que cada coordenada tiene 16 opciones igualmente espaciadas que van de 0 a 255). Los primeros comandos en las líneas 6–10 cambian el color actual, usando los colores de acceso directo más cercanos a los cinco colores designados (ningún valor está desactivado en más de 8 cuando redondeamos al múltiplo más cercano de 17).

La línea 6 dibuja el gran cuadrado verde azulado. La línea 7 dibuja la línea de cuadrados magenta, la línea 8 dibuja la línea de cuadrados naranjas y el único cuadrado naranja. La línea 9 dibuja la línea de cuadrados azules claros. La línea 11 dibuja las tres líneas diagonales de cuadrados azules oscuros, así como el único cuadrado azul oscuro en la parte inferior. Finalmente, la línea 12 dibuja los tres rectángulos largos de color azul oscuro. La salida está abajo:

Portland

(Consejo de golf: el comando Cuboid , que está diseñado para objetos gráficos en 3D, funciona bien en 2d y es más corto que Rectangle).


2

Python, 420

from PIL import Image,ImageDraw
B=0,77,117
I=Image.new('RGB',(300,300),(0,168,142))
r=ImageDraw.Draw(I).rectangle
for x,y,c in['7172737a98cde670123456bcd70112233456666778888888bcde23232323331111300000003333'[x::26]for x in range(26)]:exec'r([W,W,14+W,14+W],[(168,108,185),(247,58,58),(90,166,216),B][%s]);'.replace('W','2+20*0x%s')%(x,y,x,y,c)
r([162,142,296,156],B)
r([142,82,156,136],B)
r([142,162,156,276],B)
I.show()

1

HTML / SVG, 550 542 521 bytes

<svg><path fill=#0a8 d="M0 0h152v152H0z"/><path fill=#5ad d="M72 2h8v8h-8zm0 10h8v8h-8zm0 10h8v8h-8zm0 10h8v8h-8z"/><path fill=#057 d="M12 12h8v8h-8zm10 10h8v8h-8zm10 10h8v8h-8zm40 10h8v28h-8zm0 30h8v8h-8zm10-10h8v8h-8zm10-10h8v8h-8zm10-10h8v8h-8zM82 72h68v8H82zM72 82h8v58h-8zm0 60h8v8h-8zm40-30h8v8h-8zm10 10h8v8h-8zm10 10h8v8h-8z"/><path fill=#f33 d="M62 72h8v8h-8zm60-10h8v8h-8zm10 0h8v8h-8zm10 0h8v8h-8z"/><path fill=#a6b d="M2 82h8v8H2zm10 0h8v8h-8zm10 0h8v8h-8zm10 0h8v8h-8zm10 0h8v8h-8zm10 0h8v8h-8zm10 0h8v8h-8z"


1

HTML, 366 bytes

El domingo obtuve una respuesta de Base64 mientras todavía estaba trabajando en esto; si elige usarlo, eliminaré esta respuesta.

<img src=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJgAAACYBAMAAADq7D0SAAAAD1BMVEUAqI4ATXWobLlaptj3OjrqGXAuAAAAp0lEQVRo3u3YQQqFMAxFUbeQLbiFbsH9r8k3y8CmTiKm7b2Dwv/CgUAD4jF3TYGBRdgKmRqPCQa28gaMZ20KDGz5DQhnbQoMTG2wAcPR/ScY2HeYVw4zBQYWYDUvbRLWFS/lBxhYhM3bpXzMcWBgEVa5U70cpsDAnkf1FxcwMDAwMLBczP8DAwuwmpc2HzMFBhY8qHlp8zFTYGCdyn8GKrhOYBtjv3QDvf+Zic+8bOsAAAAASUVORK5CYII

Si la cadena Base64 en sí misma es una respuesta válida, entonces eso es solo 335 bytes:

iVBORw0KGgoAAAANSUhEUgAAAJgAAACYBAMAAADq7D0SAAAAD1BMVEUAqI4ATXWobLlaptj3OjrqGXAuAAAAp0lEQVRo3u3YQQqFMAxFUbeQLbiFbsH9r8k3y8CmTiKm7b2Dwv/CgUAD4jF3TYGBRdgKmRqPCQa28gaMZ20KDGz5DQhnbQoMTG2wAcPR/ScY2HeYVw4zBQYWYDUvbRLWFS/lBxhYhM3bpXzMcWBgEVa5U70cpsDAnkf1FxcwMDAwMLBczP8DAwuwmpc2HzMFBhY8qHlp8zFTYGCdyn8GKrhOYBtjv3QDvf+Zic+8bOsAAAAASUVORK5CYII

1

HTML / SVG + JavaScript (ES6), 500 499 bytes

Se >requiere un extra para que esto funcione como un fragmento, consulte este violín para obtener el código real.

[[t="5ad",2],[t,o=12],[t,p=22],[t,q=32],[,o,o],[,p,p],[,q,q],[,42,,28],[],[,v=62,s=82],[,52,92],[,42,102],[,,s,,68],[,s,,58],[,142],[,112,112],[,122,122],[,132,132],[t="f33",,v],[t,v,122],[t,v,132],[t,v,142],[t="a6b",s,2],[t,s,o],[t,s,p],[t,s,q],[t,s,42],[t,s,52],[t,s,v],["0a8",0,0,152,152]].map(x=>a(x[0],x[1],x[2],x[3],x[4]),a=(f="057",y=72,x=72,h=8,w=8)=>(c.after(r=c.cloneNode()),r.id++,r[s="setAttribute"]("fill","#"+f),r[s]("x",x),r[s]("y",y),r[s]("width",w),r[s]("height",h)))
<svg><rect id=c>


Explicación

Una matriz de matrices está enlazada con la función a, la creación de clones de la recten el HTML, la inserción de ellos después de la inicial recty establecer sus fill, x, y, widthy heightatributos. Cada matriz contiene valores para esos atributos, en ese orden, con los valores predeterminados establecidos por los parámetros predeterminados de a. Lo aparentemente innecesario r.id++permite el uso cloneNode()mientras se asegura que solo haya 1 rectcon una idde c; Esto ahorra la necesidad de utilizar el ridículamente caro document.createElementNS("http://www.w3.org/2000/svg","rect").


1

PHP + SVG, 425 bytes

<svg><rect x=0 y=0 fill=#00a88e width=150 height=150 /><?foreach(["004d75"=>[[1,1],[2,2],[3,3],[7,14],[7,7],[8,6],[9,5],[10,4],[11,11],[12,12],[13,13],[7,4,0,2],[8,7,6,0],[7,8,0,5]],"5aa6d8"=>[[7,0],[7,1],[7,2],[7,3]],a86cb9=>[[0,8],[1,8],[2,8],[3,8],[4,8],[5,8],[6,8]],f73a3a=>[[6,7],[12,6],[13,6],[14,6]]]as$c=>$p)foreach($p as$v)echo"<rect x={$v[0]}1 y={$v[1]}1 width=".(8+10*$v[2])." height=".(8+10*$v[3])." fill=#$c />";

expandido

<svg><rect x=0 y=0 fill=#00a88e width=150 height=150 />
<?foreach([
"004d75"=>[[1,1],[2,2],[3,3],[7,14],[7,7],[8,6],[9,5],[10,4],[11,11],[12,12],[13,13],[7,4,0,2],[8,7,6,0],[7,8,0,5]]
,"5aa6d8"=>[[7,0],[7,1],[7,2],[7,3]]
,a86cb9=>[[0,8],[1,8],[2,8],[3,8],[4,8],[5,8],[6,8]]
,f73a3a=>[[6,7],[12,6],[13,6],[14,6]] # Array containing color and position ,width, height of each rect without the background
]as$c=>$p)
  foreach($p as$v)
    echo"<rect x={$v[0]}1 y={$v[1]}1 width=".(8+10*$v[2])." height=".(8+10*$v[3])." fill=#$c />"; # Output the rects

El resultado del código en un fragmento de HTML

<svg><rect x=0 y=0 fill=#00a88e width=150 height=150 /><rect x=11 y=11 width=8 height=8 fill=#004d75 /><rect x=21 y=21 width=8 height=8 fill=#004d75 /><rect x=31 y=31 width=8 height=8 fill=#004d75 /><rect x=71 y=141 width=8 height=8 fill=#004d75 /><rect x=71 y=71 width=8 height=8 fill=#004d75 /><rect x=81 y=61 width=8 height=8 fill=#004d75 /><rect x=91 y=51 width=8 height=8 fill=#004d75 /><rect x=101 y=41 width=8 height=8 fill=#004d75 /><rect x=111 y=111 width=8 height=8 fill=#004d75 /><rect x=121 y=121 width=8 height=8 fill=#004d75 /><rect x=131 y=131 width=8 height=8 fill=#004d75 /><rect x=71 y=41 width=8 height=28 fill=#004d75 /><rect x=81 y=71 width=68 height=8 fill=#004d75 /><rect x=71 y=81 width=8 height=58 fill=#004d75 /><rect x=71 y=01 width=8 height=8 fill=#5aa6d8 /><rect x=71 y=11 width=8 height=8 fill=#5aa6d8 /><rect x=71 y=21 width=8 height=8 fill=#5aa6d8 /><rect x=71 y=31 width=8 height=8 fill=#5aa6d8 /><rect x=01 y=81 width=8 height=8 fill=#a86cb9 /><rect x=11 y=81 width=8 height=8 fill=#a86cb9 /><rect x=21 y=81 width=8 height=8 fill=#a86cb9 /><rect x=31 y=81 width=8 height=8 fill=#a86cb9 /><rect x=41 y=81 width=8 height=8 fill=#a86cb9 /><rect x=51 y=81 width=8 height=8 fill=#a86cb9 /><rect x=61 y=81 width=8 height=8 fill=#a86cb9 /><rect x=61 y=71 width=8 height=8 fill=#f73a3a /><rect x=121 y=61 width=8 height=8 fill=#f73a3a /><rect x=131 y=61 width=8 height=8 fill=#f73a3a /><rect x=141 y=61 width=8 height=8 fill=#f73a3a />

PHP + SVG, 375 bytes

Este recuento de bytes se puede alcanzar al comprimir el SVG

<?=bzdecompress(base64_decode("QlpoNDFBWSZTWY2177gAASSZgEgA/+c/5B3gMAE5TQVtQeig0AAACU0VNMAAAEYIlEnpMKNlGahso2plh0zoaSEpIkukINaC3RWRF74IvArdRF1FcBXrSTFWXTorp2xvpb3k7FbaV62syISgiBEweHhxtWUmgWCsqqaKSEARyAOAEZJJOwYBQqTAWotSrmEXJbBRTYNhCg4RPaKOUUbAX+Fr4VfIrzzIQQkkJCWfMEEOOISTuDkOzgQzDQDNQKu/4K7AZh8L41DddV8iv2LQOBXv+iugriHAr6sK/IrUV1FeRXMV3FdhW8V9KugrmK8CvOQin+LuSKcKEhG2vfcA"));
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.