GoGPT Best VPN GoSearch

icono de página de OnWorks

scons-time: en línea en la nube

Ejecute scons-time en el proveedor de alojamiento gratuito de OnWorks sobre Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando scons-time que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


scons-time: genera y muestra información de tiempo de SCons

SINOPSIS


tiempo de scons subcomando [opciones...] [argumentos...]

GENERANDO TIEMPO INFORMACIÓN:


tiempo de scons puedes seguir [-hnqv] [--aegis =PROYECTO] [-f ARCHIVO] [--number =NÚMERO] [--outdir =EXTERIOR] [-p
CADENA] [--python =PYTHON] [-s DIR] [--scons =SCONS] [--svn =URL] [ARGUMENTOS]

Extrayendo Función Tiempos
tiempo de scons divertida [-h] [--chdir =DIR] [-f ARCHIVO] [--fmt =FORMATO] [--func =NOMBRE] [-p CADENA] [-t
NÚMERO] [--title = TÍTULO] [ARGUMENTOS]

Extrayendo Salud Cerebral Estadísticas
tiempo de scons Miembro [-h] [--chdir =DIR] [-f ARCHIVO] [--fmt =FORMATO] [-p CADENA] [--stage =STAGE] [-t
NÚMERO] [--title =TÍTULO] [ARGUMENTOS]

Extrayendo Objeto Adentro
tiempo de scons obj [-h] [--chdir =DIR] [-f ARCHIVO] [--fmt =FORMATO] [-p CADENA] [--stage =STAGE] [-t
NÚMERO] [--title =TÍTULO] [ARGUMENTOS]

Extrayendo Ejecución Equipos
tiempo de scons time [-h] [--chdir =DIR] [-f ARCHIVO] [--fmt =FORMATO] [-p CADENA] [-t NÚMERO]
[--title =TÍTULO] [--que =CUAL] [ARGUMENTOS]

Ayuda Texto
tiempo de scons ayuda SUBCOMANDO [...]

DESCRIPCIÓN


La tiempo de scons El comando ejecuta una configuración de SCons a través de un conjunto estándar de perfiles
tiempos y puede extraer y graficar información de los perfiles resultantes y archivos de registro de
esos tiempos. La acción que debe realizar el tiempo de scons La secuencia de comandos se especifica mediante un
subcomando, el primer argumento en la línea de comando. Consulte la sección SUBCOMANDS a continuación para
información sobre el funcionamiento de subcomandos específicos.

La forma básica de usar tiempo de scons es ejecutar el tiempo de scons puedes seguir subcomando (posiblemente múltiples
veces) para generar el perfil y la salida del archivo de registro, y luego usar uno de los otros subcomandos
para mostrar los resultados capturados en los perfiles y archivos de registro para un tipo particular de
información: tiempos de función (el tiempo de scons divertida subcomando), memoria total utilizada (el
tiempo de scons Miembro subcomando), recuentos de objetos (el tiempo de scons obj subcomando) y en general
tiempo de ejecución (el tiempo de scons time subcomando). Existen opciones para colocar y encontrar el
perfiles y archivos de registro en directorios separados, para generar la salida en un formato
adecuado para graficar con el parcela gnuplot(1) programa, etc.

Hay dos formas básicas de tiempo de scons puedes seguir El subcomando está destinado a ser utilizado para recopilar
estadísticas de tiempo para una configuración. Uno es usar el --svn = opción para probar un
configuración contra una lista de revisiones del repositorio SCons Subversion. Esta voluntad
Genere un archivo de registro de tiempo y perfil para cada revisión listada con el --number =
opción, y se puede utilizar para observar el impacto de los cambios comprometidos en la base de código SCons
en una configuración particular a lo largo del tiempo.

La otra forma es perfilar cambios incrementales en una base de código SCons local durante una
ciclo de desarrollo, es decir, observar el impacto en el rendimiento de los cambios que está realizando en
el árbol local. En este modo, ejecuta el tiempo de scons puedes seguir subcomando sin el --svn =
opción, en cuyo caso simplemente busca en el directorio de salida del archivo de perfil / registro (el
directorio actual de forma predeterminada) y calcula automáticamente el Next número de ejecución para el
perfil de salida y archivo de registro. Usado de esta manera, el ciclo de desarrollo es algo como:
hacer un cambio en SCons; correr tiempo de scons puedes seguir perfilarlo contra una configuración específica;
hacer otro cambio en SCons; correr tiempo de scons puedes seguir nuevamente para perfilarlo; etc.

OPCIONES


La tiempo de scons El comando solo admite algunas opciones globales:

-h, --ayuda
Muestra el texto de ayuda global y sale, idéntico al tiempo de scons ayuda subcomando.

-V, --versión
Muestra el tiempo de scons versión y salidas.

La mayor parte de la funcionalidad se controla mediante opciones para los subcomandos individuales. Ver el siguiente
sección para obtener información sobre las opciones de subcomando individuales.

SUBCOMANDAS


La tiempo de scons El comando admite los siguientes subcomandos individuales.

La divertida Subcomando
tiempo de scons divertida [-h] [--chdir =DIR] [-f ARCHIVO] [--fmt =FORMATO] [--func =NOMBRE] [-p CADENA] [-t
NÚMERO] [--title = TÍTULO] [ARGUMENTOS]

La tiempo de scons divertida El subcomando muestra información de tiempo para una función específica de Python
dentro de SCons. De forma predeterminada, extrae información sobre el _principal() función, que
incluye la sincronización del generador de perfiles de Python para todos los SCons.

La tiempo de scons divertida El subcomando extrae la información de temporización de la función de todos los
argumentos de archivo, que deben ser archivos de salida del generador de perfiles de Python. (Normalmente, estos serían
*.profe archivos generados por el tiempo de scons puedes seguir subcomando, pero en realidad pueden ser
generado por cualquier invocación del generador de perfiles de Python.) Todos los argumentos de nombre de archivo se
archivos en disco.

Si no se especifican argumentos, la información de temporización de la función se extraerá de todos
*.profe archivos, o el subconjunto de ellos con un prefijo especificado por el -p .

Las opciones incluyen:

-C DIRECTORIO, --chdir = DIRECTORIO
Cambios en lo especificado De miembros antes de buscar los archivos especificados (o archivos
que coinciden con los patrones especificados).

-f ARCHIVO, --archivo = ARCHIVO
Lee la información de configuración de la especificada ARCHIVO.

-fmt = FORMAT, --format = FORMAT
Reporta la salida en el especificado FORMATO. Los formatos admitidos actualmente son ascii
(el predeterminado) y parcela gnuplot.

--func = NOMBRE
Extrae tiempos para la función especificada NOMBRE. El valor predeterminado es informar acumulativo
tiempos para el _principal() función, que contiene toda la ejecución de SCons.

-h, --ayuda
Muestra texto de ayuda para el tiempo de scons divertida subcomando.

-p STRING, --prefix = STRING
Especifica la cadena de prefijo para los perfiles de los que extraer la sincronización de la función
información. Esto se utilizará para buscar perfiles si no se especifican argumentos en
la línea de comando.

-t NUMBER, --tail = NUMBER
Solo extrae los tiempos de función del último NÚMERO archivos.

La ayuda Subcomando
tiempo de scons ayuda SUBCOMANDO [...] La ayuda El subcomando imprime texto de ayuda para cualquier otro
subcomandos enumerados como argumentos posteriores en la línea de comando.

La Miembro Subcomando
tiempo de scons Miembro [-h] [--chdir =DIR] [-f ARCHIVO] [--fmt =FORMATO] [-p CADENA] [--stage =STAGE] [-t
NÚMERO] [--title =TÍTULO] [ARGUMENTOS]

La tiempo de scons Miembro El subcomando muestra cuánta memoria utiliza SCons.

La tiempo de scons Miembro El subcomando extrae la información de uso de la memoria de todo el archivo especificado
argumentos, que deben ser archivos que contengan la salida de SCons en ejecución con el
--debug = memoria opción. (Normalmente, estos serían * .log archivos generados por el tiempo de scons
puedes seguir subcomando.) Todos los argumentos de nombre de archivo se agruparán para archivos en disco.

Si no se especifican argumentos, la información de la memoria se extraerá de todos * .log
archivos, o el subconjunto de ellos con un prefijo especificado por el -p .

-C DIR, --chdir = DIR
Cambios en lo especificado De miembros antes de buscar los archivos especificados (o archivos
que coinciden con los patrones especificados).

-f ARCHIVO, --archivo = ARCHIVO
Lee la información de configuración de la especificada ARCHIVO.

-fmt = FORMAT, --format = FORMAT
Reporta la salida en el especificado FORMATO. Los formatos admitidos actualmente son ascii
(el predeterminado) y parcela gnuplot.

-h, --ayuda
Muestra texto de ayuda para el tiempo de scons Miembro subcomando.

-p STRING, --prefix = STRING
Especifica la cadena de prefijo para los archivos de registro de los que extraer el uso de memoria
información. Esto se utilizará para buscar archivos de registro si no se especifican argumentos
en la línea de comando.

--stage = ETAPA
Imprime la memoria utilizada al final del tiempo especificado. STAGE: pre-lectura (antes de
Se leen los archivos SConscript), posterior a la lectura , (después de leer los archivos SConscript),
preconstruir (antes de que se construyan los objetivos) o post-construcción (después de que se construyen los objetivos).
Si no es correcto --escenario se especifica la opción, el comportamiento predeterminado es post-construcción, que informa
la cantidad final de memoria utilizada por SCons durante cada ejecución.

-t NUMBER, --tail = NUMBER
Solo informa las estadísticas de memoria del último NÚMERO archivos.

La obj Subcomando
tiempo de scons obj [-h] [--chdir =DIR] [-f ARCHIVO] [--fmt =FORMATO] [-p CADENA] [--stage =STAGE] [-t
NÚMERO] [--title =TÍTULO] [ARGUMENTOS]

La tiempo de scons obj El subcomando muestra cuántos objetos de un tipo con nombre específico son
creado por SCons.

La tiempo de scons obj El subcomando extrae recuentos de objetos de todo el archivo especificado
argumentos, que deben ser archivos que contengan la salida de SCons en ejecución con el
--debug = contar opción. (Normalmente, estos serían * .log archivos generados por el tiempo de scons
puedes seguir subcomando.) Todos los argumentos de nombre de archivo se agruparán para archivos en disco.

Si no se especifican argumentos, los recuentos de objetos se extraerán de todos * .log archivos,
o el subconjunto de ellos con un prefijo especificado por el -p .

-C DIR, --chdir = DIR
Cambios en lo especificado De miembros antes de buscar los archivos especificados (o archivos
que coinciden con los patrones especificados).

-f ARCHIVO, --archivo = ARCHIVO
Lee la información de configuración de la especificada ARCHIVO.

-fmt = FORMAT, --format = FORMAT
Reporta la salida en el especificado FORMATO. Los formatos admitidos actualmente son ascii
(el predeterminado) y parcela gnuplot.

-h, --ayuda
Muestra texto de ayuda para el tiempo de scons obj subcomando.

-p STRING, --prefix = STRING
Especifica la cadena de prefijo para los archivos de registro de los que se extraerán los recuentos de objetos. Esta
se utilizará para buscar archivos de registro si no se especifican argumentos en el comando
la línea.

--stage = ETAPA
Imprime el recuento de objetos al final del tiempo especificado. STAGE: pre-lectura (antes de
Se leen los archivos SConscript), posterior a la lectura , (después de leer los archivos SConscript),
preconstruir (antes de que se construyan los objetivos) o post-construcción (después de que se construyen los objetivos).
Si no es correcto --escenario se especifica la opción, el comportamiento predeterminado es post-construcción, que informa
el recuento final de objetos durante cada ejecución.

-t NUMBER, --tail = NUMBER
Solo informa recuentos de objetos desde el último NÚMERO archivos.

La puedes seguir Subcomando
tiempo de scons puedes seguir [-hnqv] [--aegis =PROYECTO] [-f ARCHIVO] [--number =NÚMERO] [--outdir =EXTERIOR] [-p
CADENA] [--python =PYTHON] [-s DIR] [--scons =SCONS] [--svn =URL] [ARGUMENTOS] Los tiempo de scons
puedes seguir El subcomando es el subcomando básico para perfilar una configuración específica contra un
versión de SCons.

La configuración que se probará se especifica como una lista de archivos o directorios que se
descomprimido o copiado en un directorio temporal en el que se invocarán SCons. los
tiempo de scons puedes seguir El subcomando comprende los sufijos de archivos como .alquitrán, .tar.gz, . Tgz y .zip y
descomprimirá su contenido en un directorio temporal. Si hay más de un argumento
especificado, cada uno se descomprimirá o copiará en el directorio temporal "encima de"
los archivos o directorios anteriores, por lo que la expectativa es que múltiples especificados
los archivos comparten el mismo diseño de directorio.

Una vez que los argumentos del archivo o directorio se descomprimen o copian en el directorio temporal,
el tiempo de scons puedes seguir El subcomando ejecuta la versión solicitada de SCons contra el
configuración tres veces:

Inicio
SCons se ejecuta con el --ayuda opción para que solo se lean los archivos SConscript, y
luego se imprime el texto de ayuda predeterminado. Esto perfila solo la "sobrecarga" percibida de
iniciar SCons y procesar los archivos SConscript.

Construcción completa
Se ejecuta SCons para construir todo lo especificado en la configuración. Objetivos específicos para
pasar en la línea de comando puede ser especificado por el tiene como objetivo palabra clave en un
archivo de configuración; ver más abajo para más detalles.

Reconstruir
SCons se vuelve a ejecutar en el mismo directorio recién creado. Si las dependencias en SCons
la configuración es correcta, esto debería ser una reconstrucción actualizada, "no hacer nada".

Cada invocación captura el archivo de registro de salida y un perfil.

La tiempo de scons puedes seguir El subcomando admite las siguientes opciones:

--aegis = PROYECTO
Especifica la Aegis PROYECTO de la cual la (s) versión (s) de bollos ser cronometrado será
extraído. Cuándo --égida se especifica, el --number =NÚMERO opción especifica delta
números que serán probados. La salida de cada ejecución de invocación se colocará en un archivo
nombres que coinciden con los números delta de Aegis. Si el --number = la opción no está especificada,
entonces el comportamiento predeterminado es cronometrar la punta de la especificada PROYECTO.

-f ARCHIVO, --archivo = ARCHIVO
Lee la información de configuración de la especificada ARCHIVO. Esto a menudo proporciona una mayor
forma conveniente de especificar y recopilar parámetros asociados con un tiempo específico
configuración que especificarlos en la línea de comando. Ver el ARCHIVO DE CONFIGURACIÓN
sección siguiente para obtener información sobre los parámetros del archivo de configuración.

-h, --ayuda
Muestra texto de ayuda para el tiempo de scons puedes seguir subcomando.

-n, --no-ejecutivo
No ejecute comandos, solo imprima los equivalentes de línea de comandos de lo que sería
ejecutado. Tenga en cuenta que el tiempo de scons el script realmente ejecuta sus acciones en Python,
siempre que sea posible, para la portabilidad. Los comandos que se muestran son UNIX equivalentes de lo
está haciendo.

--number = NUMBER
Especifica el número de ejecución que se utilizará en los nombres de los archivos de registro y las salidas del perfil.
generado por esta ejecución.

Cuando se usa junto con el --aegis =PROYECTO opción, NÚMERO especifica uno o más
Números delta Aegis separados por comas que se recuperarán automáticamente de la
Aegis especificada PROYECTO.

Cuando se usa junto con el --svn =URL opción, NÚMERO especifica uno o más
Números de revisión de Subversion separados por comas que se recuperarán automáticamente del
Repositorio de Subversion en el especificado URL. Los rangos de números de revisión o delta pueden ser
especificado separando dos números con un guión (-).

Ejemplo:

% scons-time run --svn =http://scons.tigris.org/svn/trunk --num = 1247,1249-1252.

-p STRING, --prefix = STRING
Especifica la cadena de prefijo que se utilizará para todos los archivos de registro y perfiles generados
por esta carrera. El valor predeterminado se deriva del primer argumento especificado: si el primer
El argumento es un directorio, el prefijo predeterminado es el nombre del directorio; si el primero
El argumento es un archivo (archivo tar o zip), el prefijo predeterminado es el nombre base de
el archivo, es decir, lo que queda después de quitar el sufijo del archivo (. Tgz, .tar.gz
or .zip).

--python = PYTHON
Especifica una ruta al ejecutable de Python que se utilizará para las ejecuciones de cronometraje. El valor por defecto
es utilizar el mismo ejecutable de Python que ejecuta el tiempo de scons ordenarse a sí mismo.

-q, - silencioso
Suprime la visualización de las líneas de comando que se están ejecutando.

-s DIR, --subdir = DIR
Especifica el nombre del directorio o subdirectorio desde el que se deben obtener los comandos.
ejecutado. El valor predeterminado es XXX.

--scons = SCONS
Especifica una ruta a la secuencia de comandos SCons que se utilizará para las ejecuciones de cronometraje. El valor predeterminado es
XXX

--svn = URL, --subversion = URL
Especifica el URL del repositorio de Subversion desde el cual la (s) versión (es) de bollos
se extraerá el tiempo que se esté cronometrando. Cuando --svn se especifica, el --number =NÚMERO opción
especifica los números de revisión que se probarán. La salida de cada ejecución de invocación
colocarse en nombres de archivo que coincidan con los números de revisión de Subversion. Si el --number =
opción no está especificada, entonces el comportamiento predeterminado es cronometrar el Director de escuela del
especificado URL.

-v, --detallado
Muestra la salida de comandos individuales en la pantalla (además de capturar
la salida en archivos de registro).

La time Subcomando
tiempo de scons time [-h] [--chdir =DIR] [-f ARCHIVO] [--fmt =FORMATO] [-p CADENA] [-t NÚMERO]
[--title =TÍTULO] [--que =CUAL] [ARGUMENTOS]

La tiempo de scons time El subcomando muestra los tiempos de ejecución de SCons según lo informado por el bollos
--debug = tiempo .

La tiempo de scons time El subcomando extrae el tiempo de SCons de todo el archivo especificado
argumentos, que deben ser archivos que contengan la salida de SCons en ejecución con el
--debug = tiempo opción. (Normalmente, estos serían * .log archivos generados por el tiempo de scons puedes seguir
subcomando.) Todos los argumentos de nombre de archivo se agruparán para archivos en disco.

Si no se especifican argumentos, los tiempos de ejecución se extraerán de todos * .log
archivos, o el subconjunto de ellos con un prefijo especificado por el -p .

-C DIR, --chdir = DIR
Cambios en lo especificado De miembros antes de buscar los archivos especificados (o archivos
que coinciden con los patrones especificados).

-f ARCHIVO, --archivo = ARCHIVO
Lee la información de configuración de la especificada ARCHIVO.

-fmt = FORMAT, --format = FORMAT
Reporta la salida en el especificado FORMATO. Los formatos admitidos actualmente son ascii
(el predeterminado) y parcela gnuplot.

-h, --ayuda
Muestra texto de ayuda para el tiempo de scons time subcomando.

-p STRING, --prefix = STRING
Especifica la cadena de prefijo para los archivos de registro de los que extraer los tiempos de ejecución.
Esto se utilizará para buscar archivos de registro si no se especifican argumentos en el comando
la línea.

-t NUMBER, --tail = NUMBER
Solo informa recuentos de objetos desde el último NÚMERO archivos.

--que = CUÁL
Imprime el tiempo de ejecución para el especificado CUAL valor: total (la ejecución total
tiempo), SConscriptos (tiempo total de ejecución de los propios archivos SConscript), Desventajas
(tiempo de ejecución en el propio código SCons) o comandos (tiempo de ejecución de los comandos y
otras acciones utilizadas para construir objetivos). Si no --cual se especifica la opción, la predeterminada
el comportamiento es total, que informa el tiempo total de ejecución de cada ejecución.

CONFIGURACIÓN ARCHIVO


Varios tiempo de scons Los subcomandos pueden leer información de un archivo de configuración específico.
cuando pasó el -f or --expediente opciones. El archivo de configuración se ejecuta realmente como un
Secuencia de comandos de Python. La configuración de las variables de Python en el archivo de configuración controla el comportamiento de
el tiempo de scons secuencia de comandos más conveniente que tener que especificar opciones de línea de comandos o
argumentos para cada ejecución, y proporciona una forma práctica de "ajustar" los elementos necesarios
información para producir (y reportar) ciclos de tiempo consistentes para un determinado
configuración.

égida
El ejecutable Aegis para extraer deltas. El valor predeterminado es simplemente égida.

proyecto_aegis
El proyecto Aegis del que se deben extraer deltas. El valor predeterminado es lo que sea
especificado con el --aegis = opción de línea de comandos.

lista de archivo
Una lista de archivos (archivos o directorios) que se copiarán al archivo temporal.
directorio en el que se invocarán SCons. .alquitrán, .tar.gz, . Tgz y .zip los archivos serán
tener su contenido descomprimido en el directorio temporal. Árboles y archivos de directorios
se copiará tal cual.

comandos_iniciales
Una lista de comandos que se ejecutarán antes del tiempo real bollos carreras. Esto puede
ser utilizado para los comandos que son necesarios para preparar el árbol de fuentes, por ejemplo,
creando un archivo de configuración que no debería ser parte de la ejecución cronometrada.

ubicación_clave
La ubicación de la clave en la información gráfica de Gnuplot generada con el
--format = gnuplot opción. El valor predeterminado es fondo Izquierdo.

prefijo
El prefijo de nombre de archivo que se utilizará al ejecutar o extraer el tiempo para este
configuración.

pitón
El nombre de la ruta del ejecutable de Python que se utilizará al ejecutar o extraer
información para esta configuración. El valor predeterminado es la misma versión de Python utilizada para
ejecutar los SCons

bollos
El nombre de la ruta del script SCons que se utilizará al ejecutar o extraer información
para esta configuración. El valor predeterminado es simplemente bollos.

banderas_scons
La bollos banderas utilizadas al ejecutar SCons para recopilar información de tiempo. El valor por defecto
Valor es --debug = contar --debug = memoria --debug = tiempo --debug = memoizer.

scons_lib_dir, scons_wrapper, objetivos_de_inicio, subdirectorio
El subdirectorio del proyecto en el que se tiempo de scons el script debería cambiar antes
ejecutando los comandos SCons a tiempo.

URL_subversión
La URL de Subversion de

svn
El ejecutable de Subversion utilizado para verificar las revisiones de SCons para ser cronometradas. El
por defecto es simple svn.

svn_co_bandera, alquitrán, tiene como objetivo
Una cadena que contiene los objetivos que deben agregarse a la línea de comando de cada
temporizado bollos correr. Esto se puede usar para restringir lo que se está cronometrando a un subconjunto del
compilación completa para la configuración.

objetivos0, objetivos1, objetivos2, título, abrir la cremallera, verboso, barras_verticales

Ejemplo
Aquí hay un ejemplo tiempo de scons archivo de configuración para un proyecto de muestra hipotético:

# El proyecto no usa SCons de forma nativa (todavía), así que estamos
# cronometrar un conjunto separado de archivos SConscript que colocamos
# encima del tarball del proyecto sin empaquetar vainilla.
argumentos = ['proyecto-1.2.tgz', 'proyecto-SConscripts.tar']

# El nombre del subdirectorio contiene el número de versión del proyecto,
# así que dile a scons-time que chdir allí antes de construir.
subdir = 'proyecto-1.2'

# Establezca el prefijo para que los archivos de registro de salida y los perfiles tengan nombre:
# proyecto-000- [012]. {log, prof}
# proyecto-001- [012]. {log, prof}
# etc
prefijo = 'proyecto'

# Los archivos SConscript que se están probando no hacen ningún SConf
# configuración, así que ejecute su script normal ./configure
# antes de invocar SCons.
comandos_iniciales = [
'./configure',
]

# Solo tiempo para construir el ejecutable bin / project.
objetivos = 'bin / proyecto'

# Tiempo contra SCons revisiones de las ramas / rama principal
subversion_url = 'http://scons.tigris.org/svn/scons/branches/core'

MEDIO AMBIENTE


La tiempo de scons script utiliza las siguientes variables de entorno:

PRESERVAR
Si se establece este valor, el tiempo de scons el guión lo hará No eliminar el directorio temporal o
directorios en los que crea la configuración especificada o descarga una determinada
versión de SCons.

Use scons-time en línea usando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

Comandos de Linux

Ad




×
Anuncio
❤ ️Compre, reserve o adquiera aquí: sin costo, ayuda a mantener los servicios gratuitos.