¿alguna vez has usado instagc? cómo funciona?
no nunca la he usado
Claro, con todo gusto el programa que uso es el pinnacle INSTANT Photoalbum, es muy buen programa porque ademas de lo que tu solicitas te da la opicon de poner textos o numeración que deseas que aparezca, Algo myu importante es que previamente estandarices el tamaño de las fotos para que tenga mejor capacidad el disco, hasta donde he usado el programa he montado 136 con efectos y música.  
Pero ojo:  
Una vez hecho en este programa NO es posible envialras a quemar o sacar copias de las imágenes pues hace un archivo ejecutable.  
Así que si lo quieres para acabado final, entonces ese es tu programa, suerte y no olvides evaluarme  
Barin Monterrey ¿Usas algún método anticonceptivo? Tu lo que necesitas es un sistemas de accounting en el cual puedas manejar hasta el mínimo detalle de los usuarios. Te recomiendo que uses el icradius que es una modificación de radius cistron. No es tan complicado.   
La dirección es <http://radius.innercite.com/> acaba de sacar su release 18 pero también haty una versiones la 017b que la puedes instalar por rpm.. OK. De movida te comento que no será sencillo, pero podemos resolvvero por aproximaciones sucesivas.  
Como me están faltando datos respecto al diseño de tu hoja. Supongo que la base de datos tiene cantidades irregulares de registros para cada persona, pero seguramente puedes saber cuantos tiene el de mayor cantidad de líneas. Asumo, además, que la base está ordenada por ID.  
Una combinación de las funciones INDICE y COINCIDIR funcionan en forma similar al BUSCARV. Pero en el caso que planteas -creo- sería la solución a tu problema.   
Vale decir que, si la función COINCIDIR encuentra el valor buscado (ID) en la primer columna traerá los datos en cada línea de acuerdo a la fila donde la fórmula se encuentre.   
Tal fórmula sería como esta:   
=INDICE(Hoja2!$C$5:$G$20;COINCIDIR($I$5;Hoja2!$C$5:$C$20;0)+FILA()-FILA($I$5);COLUMNA()-COLUMNA($I$5)+1)   
[Considera si sueles usar comas o punto y coma para separar argumentos de las funciones. Yo usé ";"]  
Está fórmula copiada en las celdas inferiores traerá los datos como quieres, pero adolece de un problema, necesitas saber de antemano cuántos registros tienes para el que estas buscando y contar con una cantidad igual de líneas de fórmulas de búsqueda.   
Para evitar ese problema, la siguiente fórmula agrega un control:   
=SI($I$5=INDICE(Hoja2!$C$5:$G$20;COINCIDIR($I$5;Hoja2!$C$5:$C$20;0)+FILA()-FILA($I$5);1);INDICE(Hoja2!$C$5:$G$20;COINCIDIR($I$5;Hoja2!$C$5:$C$20;0)+FILA()-FILA($I$5);COLUMNA()-COLUMNA($I$5)+1);"")   
INDICE muestra un dato de una matriz (C5:G20 de la hoja2) de acuerdo a las coordenadas de fila y columna que se le indique como argumentos.   
Para obtener la coordenada Fila usamos la función COINCIDIR en un rango (C5:C20 de Hoja2) de la misma altura (misma cantidad y ubicación de las líneas) que la base de búsqueda. Al número de fila así obtenido le agregará tantas líneas como diferencia halla entre la fila donde está la fórmula y la fila donde está el dato a buscar. Así, si la fórmula estuviera en la misma fila que el dato, tal diferencia será cero y, por lo tanto, traerá el dato de la misma fila.   
Al copiar esta celda y pegarla en la fila inferior, la diferencia será 1, por lo tanto traerá el valor de la fila siguiente de la base original. Y así sucesivamente.   
De igual modo, para identificar de qué columna traer el dato, restará la columna actual menos la primera.   
De esta manera, la misma fórmula copiada al resto del rango donde debe traer los valores servirá al propósito sin tener que modificarla.   
Aquí vale aclarar que, si no quieres todas las columnas, puedes especificarle exactamente qué columna necesitas, reemplazando la expresión COLUMNA()-COLUMNA($I$5)+1) por el número de la columna a mostrar  
El control que le agregué, verifica que en cualquier fila que se esté buscando se trate de la misma persona que se buscó originalmente.   
Lo único que tendrás que tener en cuenta es tener una cantidad de lineas de esta fórmula de búsqueda igual al mayor número de registros que pueda tener una persona.   
Por ejemplo, supongamos que buscar los datos de los hijos de cada empleado. Si hubiera un fecundo con 10 hijos, tendrás que tener 10 filas con aquella fórmula que te sugerí. Para los que tengan menos de 10, las celdas excedentes no mostrarán nada. Pero si hubiera uno con once o doce, sólo mostrará hasta el décimo.   
Por último, si -eventualmente- necesitaras otro set de estas fórmulas para buscar otro código en otro rango de la hoja "Datos" necesitarás, primero quitarle la referencia absoluta a la celda donde está e primer código (I5).   
Nota que, apropósitamente, todas las referencias a la linea del código dicen $I$5 de forma tal que siempre lean esa celda a cada uno de sus efectos.   
Lo que suelo hacer, entonces, es seleccionar todo el rango de fórmulas (4 columnas por 8 filas) y hago "Edición" | "Reemplazar..." En la casilla Buscar: coloco $I$5 y en la de reemplazar con escribo I5. Finalmente presiono "Reemplazar todo"   
Si bien todas las fórmulas modificadas siguen "apuntando" a la celda I5, esta es ahora una referencia relativa a tal celda. Esto permite que al copiarlas a otro rango lean una posición distinta a I5.   
Por ejemplo, si tu otro código a buscar estuviera en la celda I14 y copias este set de fórmulas a partir de esa misma fila, todas leerán los datos de la celda I14.   
Lo dicho: No es una tarea simple, pero si sigues cuidadosamente las instrucciones, llegarás al objetivo.  
- Ingresa al sitio www.porloschicos.com y, si quieres,   
presiona el botón de donación (es gratis).   
Confío en que lo harás. <p>los iconos son notoriamente ineficaces como etiquetas, y son muy difíciles de interpretar correctamente sin capacitación o experiencia. para la mayoría de las situaciones, los usuarios aprenden mejor las interpretaciones correctas solo con texto que con íconos solos. <sub>ver: wiedenbeck, s (1999). el uso de iconos y etiquetas en un programa de aplicación de usuario final: un estudio empírico de aprendizaje y retención. comportamiento y tecnología de la información, 18 (2), p68-82.</sub></p><p>los íconos son especialmente malos para cualquier cosa abstracta, como factura u oferta, ya que las cosas abstractas generalmente no tienen una imagen visual sólida (tanto la factura como la oferta podrían representarse como documentos en papel, pero ¿cómo los distinguiría?). del mismo modo, los iconos son particularmente malos para las acciones (por ejemplo, guardar, publicar); es difícil mostrar claramente un proceso con una imagen. sí, los iconos se usan todo el tiempo en las barras de herramientas para las acciones, pero las barras de herramientas estaban destinadas a expertos, y sin embargo, los usuarios se confunden con frecuencia (en promedio, <a href="https://web.archive.org/web/20130207024524/http://www.humanfactors.com/downloads/askericarchivebusiness2004.asp">los usuarios conocen solo seis elementos de la barra de herramientas de word</a> después de usar word regularmente por <em> dos años </em>).</p><p>los iconos pueden ahorrar espacio sobre el texto, pero al precio del reconocimiento. para iconos pequeños, como 16x16 píxeles, es muy difícil para los usuarios incluso reconocer de qué se supone que son una imagen, y mucho menos qué se supone que representa la imagen. un usuario que conozco pensó que el icono de "disco" para guardar era una imagen de un televisor. (era lo suficientemente mayor como para saber qué era un disquete). personalmente utilicé word durante años pensando que el ícono track changes era una especie de rosetta stone estilizada. a los usuarios expertos les resulta más fácil <a href="http://www.uie.com/brainsparks/2006/02/20/orbitz-cant-get-a-date/">confíe en la posición física memorizada</a> de los controles de la barra de herramientas en lugar de las etiquetas de los iconos para elegir un control. los íconos más grandes (por ejemplo, al menos 32 por 32 píxeles) pueden ayudar al reconocimiento, pero ocupan tanto espacio que es mejor usar el espacio para una etiqueta de texto clara. si el espacio es limitado, a menudo es mejor usar texto abreviado que iconos.</p><p>es extraordinariamente difícil acertar con los íconos. no intente desarrollar un nuevo icono sin extensas iteraciones de pruebas de usuario. incluso entonces, puedes fallar. los diseñadores de microsoft intentaron todo para hacer íconos interpretables para la barra de herramientas de outlook antes <a href="http://blogs.msdn.com/jensenh/archive/2005/11/01/487661.aspx">renunciar y seguir con etiquetas de texto</a> en los controles clave.</p><p>las etiquetas de iconos también dificultan el soporte técnico (por ejemplo, "haga clic en la hoja amarilla con una marca de verificación azul", en lugar de "haga clic en" aceptar "").</p><p>como regla general, los íconos solo deben permitirse cuando se aplican al menos dos de las siguientes tres condiciones:</p><ol> <li> <p>el espacio es muy limitado (es decir, demasiado pequeño para texto solo).</p> </li> <li> <p>los iconos están estandarizados (por ejemplo, la imagen del disquete para guardar)</p> </li> <li> <p>el ícono representa un objeto con un fuerte atributo análogo físico o visual (por ejemplo, un ícono de impresora para acceder a los atributos de la impresora, o un rectángulo rojo para establecer un fondo de página rojo).</p> </li> </ol><p>la información sobre herramientas es necesaria para los iconos cuando se usan solos, pero son un mal sustituto de las etiquetas de texto. sus usuarios no deberían tener que usar su aplicación buscando cosas. el hecho de que las etiquetas de texto nunca necesiten información sobre herramientas gráficas es una pista bastante buena de que el texto es mejor que los iconos.</p><p>si el espacio lo permite, los iconos combinados con texto son los mejores. (creo que hubo investigaciones que muestran esto desde fines de la década de 1980, pero no puedo encontrarlo). el uso selectivo de iconos con texto hace que ciertos elementos se destaquen más o agreguen interés visual. también puede mejorar la escalabilidad de los elementos, pero las buenas etiquetas de texto también pueden hacerlo. se sabe que los usuarios piensan subjetivamente que una aplicación es más fácil si tiene íconos, incluso cuando en realidad no mejoran el rendimiento (ver wiedenbeck, 1999 citado anteriormente), por lo que esa es otra razón para combinar íconos y texto.</p><p>por lo general, veo el ícono arriba o a la izquierda de la etiqueta de texto. no creo que sea necesariamente inherentemente mejor que las alternativas, pero es una convención que también debes seguir si tienes controles uno al lado del otro para que el usuario pueda confiar en la experiencia para saber qué etiqueta de texto va con cada ícono.</p> <p>utilizo ambos, aunque si tuviera que elegir uno, sé cuál elegiría. aún así, intentaré hacer una comparación objetiva sobre algunos temas.</p><ul> <li> <p><strong> ¿disponible en todas partes? </strong> si usted es un administrador de sistemas profesional que trabaja con sistemas unix, o un usuario avanzado en dispositivos integrados (enrutadores, teléfonos inteligentes con busybox, ... ), debe conocer vi (no vim), porque está disponible en todos los sistemas unix y en la mayoría de los sistemas similares a unix, ya sea de escritorio, servidor o incrustados. para un usuario común, este argumento es irrelevante: emacs está fácilmente disponible para cualquier sistema operativo de escritorio/servidor, y dado que admite la edición remota, es suficiente tenerlo en su máquina de escritorio de todos modos.</p> </li> <li> <p><strong> ¿hinchado? </strong> emacs una vez fue humorístico por "ocho megabytes e intercambio constante". en este momento, en mi máquina, google chrome necesita casi tanto ram por pestaña como emacs lo hace para 100 archivos abiertos, y ni siquiera mencionaré firefox en el siglo xxi, la hinchazón de emacs es solo un mito.</p> <p><em> ¡característica</em> hinchazón tampoco es un problema. si no lo usa, no tiene que saber que está allí. las características de emacs se mantienen fuera del camino cuando no las usa y la documentación está muy bien organizada.</p> </li> <li> <p><strong> tiempo de inicio </strong>: los proponentes de vi (m) se quejan del tiempo de inicio de emacs. sí, emacs tarda en iniciarse, pero esto no es gran cosa: inicia emacs una vez por sesión, luego se conecta al proceso en ejecución con <code>emacsclient</code>. entonces, el inicio lento de emacs es principalmente un mito.</p> <p>hay una excepción, que es cuando inicia sesión en una máquina remota y desea editar un archivo allí. iniciar un emacs remoto es (generalmente) más lento que iniciar un vim remoto. en algunas situaciones, puede mantener un emacs ejecutándose dentro de la pantalla. también puede editar archivos remotos desde emacs, pero interrumpe el flujo si está en una sesión ssh en una terminal. (desde xemacs 21 o gnu emacs 23, puede abrir una ventana de emacs desde una instancia x en ejecución dentro de un terminal).</p> <p>al girar las tablas, he observado que vim tarda mucho más en cargar que emacs (<code>vim -u /dev/null</code> vs. <code>emacs -q</code>). es cierto que esto estaba en una plataforma extraña (cygwin).</p> </li> <li> <p><strong> curva de aprendizaje inicial: </strong> esto varía de persona a persona. <a href="https://unix.stackexchange.com/questions/986/vim-vs-emacs-and-no-this-is-not-a-flame-war/988#988">gráfico de michael mrozek</a> me hizo reír. en serio, estoy de acuerdo en que la curva de aprendizaje de vim comienza empinada, más pronunciada que cualquier otro editor, aunque esto puede reducirse utilizando gvim.</p> <p>como he disipado un par de mitos de emacs, permítanme disipar un mito vi: un editor modal no es difícil ni doloroso de usar. se necesita un pequeño hábito, pero después de un tiempo se siente muy natural. si tuviera que rediseñar vi (m), definitivamente mantendría los modos.</p> </li> <li> <p><strong> curva de aprendizaje asintótica: </strong> tanto vim como emacs tienen muchas características, y seguirás descubriendo otras nuevas después de años de uso.</p> </li> <li> <p><strong> productividad </strong>: este es un tema extremadamente difícil. los defensores de vi (m) argumentan que puedes hacer casi todo sin salir de la fila de inicio, y eso te hace más eficiente cuando más lo necesitas. los defensores de emacs replican que emacs tiene muchos comandos que no se usan con frecuencia, por lo que no garantiza una combinación de teclas, pero es muy conveniente cuando los necesita ( <a href="http://xkcd.com/378/">referencia obligatoria de xkcd</a> ).<br> <sub>mi opinión personal es que emacs finalmente gana a menos que tenga una discapacidad de escritura (e incluso entonces puede configurar emacs para que requiera solo secuencias de teclas y no combinaciones como <kbd>ctrl</kbd>+ letra). las teclas de la fila de inicio son agradables, pero a menudo no son una gran victoria porque tienes que cambiar de modo. no creo que vim pueda hacer nada <em> ¡significativamente</em> más eficientemente que emacs, mientras que lo contrario es cierto.</sub></p> </li> <li> <p><strong> personalización </strong>: ambos editores son programables, y hay un extenso cuerpo de paquetes disponibles para ambos. sin embargo, vim es un editor con un lenguaje macro; emacs es un editor escrito en lisp con algunas primitivas ad-hoc. emacs gana espectacularmente cuando intentas hacer algo que los autores simplemente no pensaron. esto no sucede todos los días, pero se acumula con los años.</p> </li> <li> <p><strong> más que un editor </strong>: vim es un editor. emacs no es solo un editor: también es un ide, un administrador de archivos, un emulador de terminal, un navegador web, un cliente de correo, un cliente de noticias, ... si eso es bueno o malo es un tema de debate. pero puede usar emacs como un mero editor (ver "hinchazón de características" arriba).</p> </li> <li> <p><strong> como ide </strong>: tanto vim como emacs tienen soporte para muchos lenguajes de programación y otros formatos de texto. más allá de lo básico, como la coloración sintáctica y la sangría automática, ambas tienen funciones avanzadas ide) como búsquedas de referencias cruzadas de código y documentación, inserciones asistidas y refactorización, control de versiones integrado y la capacidad de iniciar un compilación y saltar al primer error.</p> <p>un dominio donde emacs es simplemente mejor que vim es la interacción con <em> ¡asíncrono</em> subprocesos. ahí es cuando comienzas una compilación larga y quieres hacer algo más dentro de la misma instancia del editor mientras el compilador se está agitando. o cuando desea interactuar con un <a href="http://en.wikipedia.org/wiki/read-eval-print\_loop">read-eval-print loop</a> - emacs realmente brilla con esto, vim solo tiene trucos torpes para ofrecer. sin embargo, una nueva bifurcación de vim, <a href="https://github.com/neovim/neovim">neovim</a> ha demostrado haber solucionado esto e implementado otras varias correcciones de errores no implementadas en vim.</p> </li> </ul> QUIERO SABER PARA QUE SIRVE CADA UNA DE LAS TECLAS DE LA CALCULADORA...OK.. Reparar Bandeja de entrada (Scanpst.exe) es una herramienta diseñada para ayudar a reparar problemas asociados con los archivos de carpetas personales (.pst). Esta herramienta puede reparar también los archivos de carpeta sin conexión (. Ost).   
La herramienta Reparar Bandeja de entrada se incluyó por primera vez en Microsoft Windows 95, y también aparece en los CD-ROM de Microsoft Office 2000 y Microsoft Outlook 98. Se instala automáticamente durante la instalación. Esta utilidad se instala también con la instalación del Servicio de mensajería de Windows, desde el CD-ROM de Microsoft Windows 98. Puede encontrar estos programas en la siguiente carpeta:   
<unidad de CD>:\tools\oldwin95\message\wms.exe   
En Windows 2000, puede encontrar estos programas en la siguiente carpeta:   
<unidad>\Archivos de programa\Archivos comunes\System\Mapi\3082\NT\Scanpst.exe   
Qué hace la herramienta Reparar Bandeja de entrada   
¿Cuándo ejecuta la herramienta Reparar Bandeja de entrada sobre un archivo de carpetas personales (.pst), ocurre lo siguiente:? La herramienta de reparación analiza la estructura del directorio de archivos de carpetas personales (.pst) y los encabezados de los elementos para intentar recuperar todas las carpetas y todos los elementos.   
? Si la herramienta de reparación recupera el archivo de carpetas personales (.pst), significa que encontró problemas y solucionó lo que pudo.   
? La herramienta de reparación intenta convertir cualquier archivo en un archivo de carpetas personales (.pst). (Por ejemplo, si cambia el nombre de un archivo ejecutable por "Algo.pst", sin comillas, la herramienta lo convertirá en un archivo .pst que se puede montar.)   
Archivo de carpetas personales recuperado   
Después de ejecutar la herramienta Reparar Bandeja de entrada, inicie Outlook con el perfil que contiene el archivo de carpetas personales (.pst) que intenta reparar. En el menú Ver, haga clic en Lista de carpetas para activar la vista Lista de carpetas. En la Lista de carpetas debe ver las siguientes carpetas recuperadas: Carpetas personales recuperadas  
 Calendario  
 Contactos  
 Elementos eliminados  
 Bandeja de entrada  
 Diario  
 Notas  
 Bandeja de salida  
 Elementos enviados  
 Tareas  
Estas carpetas recuperadas suelen estar vacías, ya que se trata de un archivo .pst reconstruido. También debe ver una carpeta denominada "Perdidos y encontrados" (sin las comillas). Esta carpeta contiene carpetas y elementos recuperados por la herramienta Reparar Bandeja de entrada. Los elementos que no se encuentran en la carpeta Perdidos y encontrados no se pueden reparar.   
Cómo recuperar elementos reparados   
Debe mover todos los elementos que pueda desde la carpeta Perdidos y encontrados hasta un nuevo archivo de carpetas personales (.pst) del perfil. En primer lugar, cree una nueva entrada para el archivo de carpetas personales (.pst) en el perfil y arrastre los elementos recuperados desde la carpeta Perdidos y encontrados hasta la ubicación apropiada del nuevo archivo de carpetas personales (.pst).   
Cómo crear un nuevo archivo de carpetas personales (.pst) en el perfil   
1. Inicie Outlook con el perfil que contiene sus archivos de carpetas personales (.pst) recuperados.   
2. En el menú Archivo, haga clic en Administración de archivos de datos.   
3. Haga clic en Agregar para abrir el cuadro de diálogo Nuevo archivo de datos de Outlook.   
4. En el cuadro Tipos de almacenamiento, haga clic en Archivo de carpetas personales (.pst) para seleccionarlo y, después, en Aceptar.   
5. En el cuadro de diálogo Crear o Abrir archivo de datos de Outlook, haga clic en un directorio y un nombre de archivo para su archivo de carpetas personales (.pst) y, a continuación, haga clic en Abrir.   
6. Haga clic en Aceptar.   
Ahora debe tener un nuevo archivo de carpetas personales (.pst) en el perfil. Arrastre los elementos recuperados desde la carpeta Perdidos y encontrados hasta el nuevo archivo de carpetas personales (.pst). Cuando haya terminado de mover todos los elementos, puede quitar del perfil el archivo de carpetas personales (.pst) recuperadas, incluyendo la carpeta Perdidos y encontrados.   
Cómo recuperar elementos desde el archivo de copia de seguridad de carpetas personales (.pst)   
NOTA: si no puede abrir el archivo original de carpetas personales (.pst) antes de ejecutar la herramienta Reparar Bandeja de entrada, es posible que los procedimientos siguientes no funcionen. Si puede abrir el archivo original de carpetas personales (.pst), es posible que los procedimientos siguientes le permitan recuperar elementos adicionales del archivo .pst dañado.   
Cuando ejecute la herramienta Reparar Bandeja de entrada estará seleccionada la opción para crear una copia de seguridad del archivo .pst original. Esta opción crea en el disco duro un archivo llamado <archivo>. Bak, que es una copia del archivo <archivo>.pst original, con una extensión diferente. El archivo .bak reside en el directorio del archivo original de carpetas personales (.pst).   
Quizás pueda recuperar elementos del archivo .bak que la herramienta Reparar Bandeja de entrada no pudo recuperar. Haga una copia del archivo .bak y asigne al mismo un nuevo nombre con la extensión .pst, como "NuevoNombre.pst" (sin las comillas).   
Abra Outlook con el perfil que contiene el nuevo archivo de carpetas personales (.pst) del paso 4 de la sección "Recuperar elementos reparados" de este artículo, e intente importar la carpeta "NuevoNombre.pst" mediante el Asistente para importar y exportar. Para ello: 1. En el menú Archivo, haga clic en Importar y exportar.   
2. Haga clic en Importar desde otro programa o archivo y, a continuación, haga clic en Siguiente.   
3. Haga clic en Archivo de carpetas personales (.pst) para seleccionarlo y, después, en Siguiente.   
4. En Archivo para importar, escriba su archivo NuevoNombre.pst. En Opciones, haga clic en No importar elementos duplicados y, a continuación, haga clic en Siguiente.   
5. En Seleccione la carpeta para importar, haga clic para seleccionar el archivo de carpetas personales (.pst), haga clic en Incluir subcarpetas para seleccionarlo, haga clic para seleccionar Importar carpetas dentro de la misma carpeta, haga clic en el nuevo archivo de carpetas personales (.pst) del paso 4 de la sección "Recuperar elementos reparados" de este artículo y, por último, en Finalizar.   
NOTA: recuerde que el archivo de copia de seguridad era el archivo dañado original y que quizás no pueda recuperar nada más que lo que se recuperó en la carpeta Perdidos y encontrados. Si no puede importar el archivo NuevoNombre.pst en Outlook, habrá perdido toda la información que no se encuentre en la carpeta Perdidos y encontrados. me gustaría saber lo mismo, si está homologado por el cns básicamente, se crea una función de interfaz:public interface func { public out apply(in in); } y, a continuación, pasar una subclase anónima a través de su método.su método se podría aplicar la función a cada elemento en el lugar:public static void applytolistinplace(list list, func f) { listiterator itr = list.listiterator(); while (itr.hasnext()) { t output = f.apply(itr.next()); itr.set(output); } } // ... list mylist = ...; applytolistinplace(mylist, new func() { public string apply(string in) { return in.tolowercase(); } }); o crear un nuevo list (básicamente la creación de una asignación de la lista de entrada a la de salida de la lista):public static list map(list in, func f) { list out = new arraylist(in.size()); for (in inobj : in) { out.add(f.apply(inobj)); } return out; } // ... list mylist = ...; list lowercased = map(mylist, new func() { public string apply(string in) { return in.tolowercase(); } }); que uno es preferible depende de su caso de uso. si la lista es muy grande, en lugar de la solución puede ser la única solución viable; si usted desea aplicar a muchas funciones diferentes a la misma lista original para hacer muchas otras listas, usted va a querer la map versión.