From ee9907b051483a41dda444776a3d403b1cd1b539 Mon Sep 17 00:00:00 2001 From: FreakJazz Date: Tue, 8 Jul 2025 18:27:03 -0500 Subject: [PATCH 01/95] clase 1 --- clase1/clase1.py | 89 ++++++++++++++++++++++++++++++++++++++ clase1/jazmin_rodriguez.py | 85 ++++++++++++++++++++++++++++++++++++ clase1/readme.md | 34 +++++++++++++++ 3 files changed, 208 insertions(+) create mode 100644 clase1/clase1.py create mode 100644 clase1/jazmin_rodriguez.py create mode 100644 clase1/readme.md diff --git a/clase1/clase1.py b/clase1/clase1.py new file mode 100644 index 0000000..9a6a26f --- /dev/null +++ b/clase1/clase1.py @@ -0,0 +1,89 @@ +# --------------------------- +# Fundamentos de Python +# --------------------------- + +# Variables y tipos de datos + +# Operadores básicos +a = 10 +b = 3 +print('Suma:', a + b) +print('Resta:', a - b) +print('Multiplicación:', a * b) +print('División:', a / b) +print('División Entera:', a // b) +print('Módulo:', a % b) +print('Potencia:', a ** b) + +# --------------------------- +# Estructuras de control +# --------------------------- + +# Condicionales + +# numero = int(input("Ingresa un número: ")) +numero = 5 # Puedes cambiar este valor para probar diferentes condiciones +if numero > 0: + print("Es positivo") +elif numero < 0: + print("Es negativo") +else: + print("Es cero") + +# Comparaciones +x = 15 +y = 20 +print(x == y) # False +print(x != y) # True +print(x < y) # True + +# Booleanos +llueve = True +tengo_paraguas = False + +if llueve and tengo_paraguas: + print("Puedo salir tranquilo") +elif llueve and not tengo_paraguas: + print("Me voy a mojar") +else: + print("Día soleado") + +# --------------------------- +# Bucles +# --------------------------- + +# Bucle for +for i in range(5): + print("Número:", i) + +# Bucle while +contador = 0 +while contador < 5: + print("Contador:", contador) + contador += 1 + +# --------------------------- +# Funciones +# --------------------------- + +def saludar(nombre, apellido=""): + return f"Hola, {nombre} {apellido}!" + +print(saludar("John")) +print(saludar("John", "Doe")) + +def suma(x, y): + return x + y + +print("Suma:", suma(3, 4)) + +# --------------------------- +# Manejo de errores +# --------------------------- + +try: + resultado = 10 / 0 +except ZeroDivisionError: + print("No se puede dividir por cero") +finally: + print("Fin del bloque try-except") diff --git a/clase1/jazmin_rodriguez.py b/clase1/jazmin_rodriguez.py new file mode 100644 index 0000000..77ec2b5 --- /dev/null +++ b/clase1/jazmin_rodriguez.py @@ -0,0 +1,85 @@ + + +variable = 12 + +print("Variable:", variable) +print("tipo de variable:", type(variable)) + +_variable = "Jazmin" +print("Variable:", _variable) +print("tipo de variable:", type(_variable)) + +variable2 = True +print("Variable:", variable2) +print("tipo de variable:", type(variable2)) + +frutas = ["manzana", "banana", "naranja"] +print("Lista de frutas:", frutas) +print("tipo de variable:", type(frutas)) + +frutas.append("kiwi") +frutas.append("pera") +frutas[1] = "fresa" + +for i in range(len(frutas)): + print("Fruta en la posición", i, ":", frutas[i]) + +print("Lista de frutas actualizada:", frutas) +print("Lista de frutas actualizada:", len(frutas)) + +url = "https://www.google.com/search?sca_esv=c9fe79b891b509d9&rlz=1C1RXQR_esEC1090EC1091&sxsrf=AE3TifMdH4J85Z_s9Qlum4GCGZAXUr0aTA:1751936487775&q=google&udm=2&fbs=AIIjpHx4nJjfGojPVHhEACUHPiMQht6_BFq6vBIoFFRK7qchKBv8IM7dq8CEqHDU3BN7lblAhsJT8_A_Kaclg0ioopJQE57ZvFQVMHSTJKIqr7PDTRrW0fpHAhCDoTXrl0eYRFTG3peOHybQI8l8HdNkuZwz9XosjicNKn9Lb56HRH8vx0mIfw_X_9oTgFUwY3gg_BTiuVcEXArhl72GVbPZtlQ52lflPA&sa=X&ved=2ahUKEwjQnZeAiKyOAxVmRDABHVJ2L9kQtKgLKAF6BAgWEAE&biw=1920&bih=911&dpr=1#vhid=1ykoVglribN-pM&vssid=mosaic" +separar_url = url.split(".") +length_url = len(separar_url) +print("URL original:", url) +print("URL separada por puntos:", separar_url) +print("Cantidad de segmentos en la URL:", length_url) +print("ultima parte de la URL:", separar_url[1]) +verduras = ("zanahoria", "brócoli", "espinaca") +# verduras[1] = "lechuga" # Esto generará un error porque las tuplas son inmutables + +# verduras.append("lechuga") +# print("Tupla de verduras:", verduras) +# print("Lista de frutas actualizada:", len(verduras)) + +# print("tipo de variable:", type(verduras)) + +carro = { + "marca": "Toyota", + "modelo": "Corolla", + "año": 2020 +} +carro["color"] = "Rojo" +carro["año"] = "2025" +print( "Diccionario de carro:", carro) +print("tipo de variable:", type(carro)) +print("Marca del carro:", carro["marca"]) + +lista = list(frutas) +print("Lista de elementos:", lista) +print("Tipo de variable:", type(lista)) +lista.append(frutas) +print("Lista de elementos actualizada:", lista) + +lista1 = ["Hola Mundo", 122, "Programación", True, 3.14, carro] +print("Lista de elementos:", lista1) +print("Tipo de variable:", type(lista1)) +lista1.append(frutas) +print("Lista de elementos actualizada:", lista) +tupla = tuple(lista1) +print("Tupla de elementos:", tupla) +print("Tipo de variable:", type(tupla)) + +# tupla.append(frutas) # Esto generará un error porque las tuplas son inmutables + +def es_primo(num): + pass + +def ejercicio1(): + es_primo() + +def ejercicio2(): + pass + +if __name__ == "__main__": + ejercicio1() + ejercicio2() \ No newline at end of file diff --git a/clase1/readme.md b/clase1/readme.md new file mode 100644 index 0000000..78c4c12 --- /dev/null +++ b/clase1/readme.md @@ -0,0 +1,34 @@ +# Clase 1 – Fundamentos de Python + +## 🎯 Objetivo: +Aplicar estructuras básicas de programación en Python: variables, condicionales, bucles y funciones. + +--- + +## 📋 Instrucciones: + +1. Realiza un **fork** del repositorio principal del curso a tu cuenta personal de GitHub. +2. Clona tu fork. +3. Crea un archivo con tu nombre: `nombre_apellido.py`. +4. Resuelve los ejercicios de abajo. +5. Haz commit, push y un Pull Request con el título:\ + **"Clase 1 - TuNombre TuApellido"** + +--- + +## 🧪 Ejercicio 1: Números primos + +Crea un programa que solicite al usuario un número `n` y muestre todos los números primos del 1 al `n`. + +### 💡 Sugerencia: +Usa una función `es_primo()` para verificar si un número es primo. + +--- + +## 🧪 Ejercicio 2: Menú interactivo + +Crea un menú con al menos 3 opciones usando `if` y `elif`: + +- Mostrar una frase motivacional. +- Mostrar la fecha actual. +- Salir del programa. From 76a601197443440cc7eeb0bfeab97f7b6be21d37 Mon Sep 17 00:00:00 2001 From: cboderot1 Date: Tue, 8 Jul 2025 18:38:29 -0500 Subject: [PATCH 02/95] inicio clase 1 --- clase1/carlos.bodero.py | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 clase1/carlos.bodero.py diff --git a/clase1/carlos.bodero.py b/clase1/carlos.bodero.py new file mode 100644 index 0000000..9177576 --- /dev/null +++ b/clase1/carlos.bodero.py @@ -0,0 +1,2 @@ +#clase 1 carlos bodero +print("Clase 1") \ No newline at end of file From 3900b0890bdef7355a00482d2ed3c8007630e9cf Mon Sep 17 00:00:00 2001 From: Valeria Date: Tue, 8 Jul 2025 18:38:54 -0500 Subject: [PATCH 03/95] ejemplo de deber uno --- clase1/valeria_ramos.py | 1 + 1 file changed, 1 insertion(+) create mode 100644 clase1/valeria_ramos.py diff --git a/clase1/valeria_ramos.py b/clase1/valeria_ramos.py new file mode 100644 index 0000000..00c979b --- /dev/null +++ b/clase1/valeria_ramos.py @@ -0,0 +1 @@ +print ("Hellow Word") \ No newline at end of file From e9c56b5d3c777fc370251aa367e9ea5920d1955e Mon Sep 17 00:00:00 2001 From: GEORGEP15 Date: Tue, 8 Jul 2025 18:40:28 -0500 Subject: [PATCH 04/95] subir --- clase1/george_penafiel_clase1.py | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 clase1/george_penafiel_clase1.py diff --git a/clase1/george_penafiel_clase1.py b/clase1/george_penafiel_clase1.py new file mode 100644 index 0000000..e99758e --- /dev/null +++ b/clase1/george_penafiel_clase1.py @@ -0,0 +1,5 @@ + + +## 🧪 Ejercicio 1: Números primos + + From 6da09351fa603e5cb15a0f647fcabb2901c30422 Mon Sep 17 00:00:00 2001 From: artifexefitra Date: Tue, 8 Jul 2025 18:48:41 -0500 Subject: [PATCH 05/95] ejemplo deber uno --- clase1/jorge_luis_castellanos.py | 1 + 1 file changed, 1 insertion(+) create mode 100644 clase1/jorge_luis_castellanos.py diff --git a/clase1/jorge_luis_castellanos.py b/clase1/jorge_luis_castellanos.py new file mode 100644 index 0000000..10e390e --- /dev/null +++ b/clase1/jorge_luis_castellanos.py @@ -0,0 +1 @@ +print ("Jorge Luis Castellanos") \ No newline at end of file From 0583a89ca2042444deb7882f65964716eb9f600d Mon Sep 17 00:00:00 2001 From: cboderot1 Date: Tue, 8 Jul 2025 19:17:09 -0500 Subject: [PATCH 06/95] Tarea clase 1 --- clase1/carlos.bodero.py | 51 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/clase1/carlos.bodero.py b/clase1/carlos.bodero.py index 9177576..ec19bc5 100644 --- a/clase1/carlos.bodero.py +++ b/clase1/carlos.bodero.py @@ -1,2 +1,51 @@ #clase 1 carlos bodero -print("Clase 1") \ No newline at end of file +#print("Clase 1") +from datetime import datetime + +def es_primo(numero): + if numero <= 1: + return False + if numero == 2: + return True + if numero % 2 == 0: + return False + for i in range(3, int(numero ** 0.5) + 1, 2): + if numero % i == 0: + return False + return True + +def numeros_primos_hasta(numero): + primos = [] + for i in range(2, numero + 1): + if es_primo(i): + primos.append(i) + return primos + +def menu(): + print("Bienvenido") + print("1) Frase motivacional") + print("2) Fecha actual") + print("3) salir") + opcion = input("Ingrese una opcion: ") + if opcion == "1": + print("¡Sigue adelante, cada día es una nueva oportunidad!") + elif opcion == "2": + fecha_actual = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + print(f"Fecha actual: {fecha_actual}") + else: + print("Saliendo del programa.") + + +if __name__ == "__main__": + #ejercicio 1 + elnumero = int(input("Ingrese un numero entero positivo: ")) + if elnumero < 0: + print("Por favor, ingrese un numero entero positivo.") + elif elnumero < 2: + print("Por favor, ingrese un numero mayor o igual a 2.") + else: + primos = numeros_primos_hasta(elnumero) + print(f"Numeros primos hasta {elnumero}: {primos}") + #ejercicio 2 + menu() + From 69adb781d2bd1c7b3a57401818b4bbdc21599323 Mon Sep 17 00:00:00 2001 From: Marlon Rivera Date: Tue, 8 Jul 2025 21:14:31 -0500 Subject: [PATCH 07/95] auto --- clase1/marlon_rivera.py | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 clase1/marlon_rivera.py diff --git a/clase1/marlon_rivera.py b/clase1/marlon_rivera.py new file mode 100644 index 0000000..81979f2 --- /dev/null +++ b/clase1/marlon_rivera.py @@ -0,0 +1,9 @@ + +class animal: + def __init__(self, tipo): + self.tipo = tipo + + def hablar(self): + print("Hace un sonido") + + \ No newline at end of file From 81168aa9c2fc152371d6797b07aec779c75d9721 Mon Sep 17 00:00:00 2001 From: FreakJazz Date: Tue, 8 Jul 2025 22:02:27 -0500 Subject: [PATCH 08/95] clase2 --- clase1/jazmin_rodriguez.py | 1 + clase2/clase2.py | 87 ++++++++++++++++++++++++++++++++++++++ clase2/jazmin_rodriguez.py | 63 +++++++++++++++++++++++++++ clase2/readme.md | 53 +++++++++++++++++++++++ 4 files changed, 204 insertions(+) create mode 100644 clase2/clase2.py create mode 100644 clase2/jazmin_rodriguez.py create mode 100644 clase2/readme.md diff --git a/clase1/jazmin_rodriguez.py b/clase1/jazmin_rodriguez.py index 77ec2b5..635a10e 100644 --- a/clase1/jazmin_rodriguez.py +++ b/clase1/jazmin_rodriguez.py @@ -48,6 +48,7 @@ "modelo": "Corolla", "año": 2020 } + carro["color"] = "Rojo" carro["año"] = "2025" print( "Diccionario de carro:", carro) diff --git a/clase2/clase2.py b/clase2/clase2.py new file mode 100644 index 0000000..55542d3 --- /dev/null +++ b/clase2/clase2.py @@ -0,0 +1,87 @@ +# Definición de una clase +class Persona: + def __init__(self, nombre, edad): + self.nombre = nombre + self.edad = edad + + def saludar(self): + print(f"Hola, soy {self.nombre} y tengo {self.edad} años.") + +# Crear objetos +persona1 = Persona("Jazmin", 28) +persona1.saludar() + +# Atributos públicos +print(persona1.nombre) + +# --------------------------- +# Encapsulamiento +# --------------------------- + +class CuentaBancaria: + def __init__(self, titular, saldo): + self.titular = titular + self.__saldo = saldo # atributo privado + + def ver_saldo(self): + return self.__saldo + + def depositar(self, monto): + if monto > 0: + self.__saldo += monto + +cuenta = CuentaBancaria("Iván", 100) +cuenta.depositar(50) +print("Saldo actual:", cuenta.ver_saldo()) + +# --------------------------- +# Herencia +# --------------------------- + +class Animal: + def __init__(self, nombre): + self.nombre = nombre + + def hablar(self): + print("Hace un sonido") + +class Perro(Animal): + def hablar(self): + print("Guau!") + +class Gato(Animal): + def hablar(self): + print("Miau!") + +perro = Perro("Firulais") +gato = Gato("Michi") + +perro.hablar() # Guau! +gato.hablar() # Miau! + +# --------------------------- +# Polimorfismo +# --------------------------- + +def hacer_hablar(animal): + animal.hablar() + +hacer_hablar(perro) +hacer_hablar(gato) + +# --------------------------- +# isinstance y super() +# --------------------------- + +print(isinstance(perro, Animal)) + +class Estudiante(Persona): + def __init__(self, nombre, edad, carrera): + super().__init__(nombre, edad) + self.carrera = carrera + + def saludar(self): + print(f"Soy {self.nombre}, estudiante de {self.carrera}") + +estudiante1 = Estudiante("Luis", 22, "Ingeniería") +estudiante1.saludar() \ No newline at end of file diff --git a/clase2/jazmin_rodriguez.py b/clase2/jazmin_rodriguez.py new file mode 100644 index 0000000..9e1f2bd --- /dev/null +++ b/clase2/jazmin_rodriguez.py @@ -0,0 +1,63 @@ +class Animal: + def __init__(self, tipo, nombre=""): + self.tipo = tipo + self.nombre = nombre + + def correr(self): + if self.tipo == "Felino": + print(f"El felino {self.nombre} corre más rápido") + elif self.tipo == "Canino": + print(f"El canino {self.nombre} corre con resistencia") + elif self.tipo == "Ave": + print(f"El ave {self.nombre} vuela en lugar de correr") + + def alimentar(self): + if self.tipo == "Felino": + print(f"El felino {self.nombre} come carne") + elif self.tipo == "Canino": + print(f"El canino {self.nombre} come croquetas") + elif self.tipo == "Ave": + print(f"El ave {self.nombre} come semillas") + + def object(self): + return { + "tipo": self.tipo, + "nombre": self.nombre, + } + + def cambiar_nombre(self, nuevo_nombre): + self.nombre = nuevo_nombre + +class Felino(Animal): + def __init__(self, nombre): + super().__init__("Felino", nombre) + +class Canino(Animal): + def __init__(self, nombre): + super().__init__("Canino", nombre) + +if __name__ == "__main__": + + tigre = Animal("Felino", "Tigre") + tigre.correr() + lobo = Animal("Canino", "Lobo") + lobo.correr() + aguila = Animal("Ave") + aguila.correr() + + leon = Felino("León") + leon.correr() + leon.alimentar() + perro = Canino("Perro") + perro.alimentar() + lobo.cambiar_nombre("Lobo de Montaña") + print("Lobo actualizado:", lobo.nombre) + lobo_objeto_json = lobo.object() + nombre_lobo = lobo_objeto_json["nombre"] + print("Lobo en formato JSON:", lobo_objeto_json) + print("Lobo en formato JSON nombre:", nombre_lobo) + lobo_objeto_json["nombre"] = "Lobo de la Noche" + lobo_objeto_json["tipo"] = "Perro salvaje" + nuevo_lobo = lobo_objeto_json["nombre"] + print("nuevo lobo:", lobo_objeto_json["tipo"]) + diff --git a/clase2/readme.md b/clase2/readme.md new file mode 100644 index 0000000..a6d56d4 --- /dev/null +++ b/clase2/readme.md @@ -0,0 +1,53 @@ +# Clase 2 – Estructuras y POO + +## 🎯 Objetivo: +Aplicar estructuras de datos y Programación Orientada a Objetos para crear una trivia interactiva. + +--- + +## 📋 Instrucciones: + +1. Usa el repositorio que ya forkeaste. +2. Crea un archivo `nombre_apellido.py` en la carpeta `clase_2`. +3. Resuelve los ejercicios. +4. Haz commit, push y un Pull Request con el título:\ + **"Clase 2 - TuNombre TuApellido"** + +--- + +## 🧪 Ejercicio 1: Objetos + + + +Crea: +- El objeto que definiste en clase y realiza operaciones con el. +- Explicar que es el objeto que hace y el proque de la elección + +--- +# Como documentar en python para el deber +""" +Celular: +- Marca +- Modelo +- Año +- Color +Metodos: +- Llamar +- Enviar mensaje +""" + +## 🧪 Ejercicio 2: Listas y diccionarios + +Crea: +- Una lista con tus 3 películas favoritas. +- Un diccionario con tu nombre, genero, año. +- Imprime las operaciones. + +--- + +## 🧪 Ejercicio 3: Trivia con POO + +1. Crea una clase `Pregunta` con `enunciado`, `opciones` y `respuesta`. +numero = int(input("Ingrese número: ")) +2. Muestra la pregunta y permite al usuario responder. +3. Indica si la respuesta fue correcta o no. From eb2ac2ada464618d8df2538f2276abda7f508300 Mon Sep 17 00:00:00 2001 From: Marlon Rivera Date: Tue, 8 Jul 2025 22:53:30 -0500 Subject: [PATCH 09/95] Clase 1 - Marlon Rivera --- clase1/marlon_rivera.py | 56 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 50 insertions(+), 6 deletions(-) diff --git a/clase1/marlon_rivera.py b/clase1/marlon_rivera.py index 81979f2..6bde6b0 100644 --- a/clase1/marlon_rivera.py +++ b/clase1/marlon_rivera.py @@ -1,9 +1,53 @@ +# ## 🧪 Ejercicio 1: Números primos -class animal: - def __init__(self, tipo): - self.tipo = tipo +# Crea un programa que solicite al usuario un número `n` y muestre todos los números primos del 1 al `n`. + +# ### 💡 Sugerencia: +# Usa una función `es_primo()` para verificar si un número es primo. + +def es_primo(numero): + if numero < 2: + return False + for i in range(2, int(numero**0.5) + 1): + if numero % i == 0: + return False + return True + +n = int(input("Ingrese un número entero positivo: ")) + +print(f"Números primos entre 1 y {n}:") +for num in range(1, n + 1): + if es_primo(num): + print(num, end=" ") + + +# ## 🧪 Ejercicio 2: Menú interactivo + +# Crea un menú con al menos 3 opciones usando `if` y `elif`: + +# - Mostrar una frase motivacional. +# - Mostrar la fecha actual. +# - Salir del programa. + +import datetime + +while True: + print("MENÚ") + print("1. Mostrar una frase motivacional") + print("2. Mostrar la fecha actual") + print("3. Salir del programa") + + opcion = input("Elige una opción (1-3): ") + + if opcion == "1": + print("Eres capaz de TODO.") + elif opcion == "2": + fecha_actual = datetime.datetime.now() + print("Fecha y hora actual:", fecha_actual.strftime("%Y-%m-%d %H:%M:%S")) + elif opcion == "3": + print("¡Hasta pronto!") + break + else: + print("Opción inválida. Intenta de nuevo.") - def hablar(self): - print("Hace un sonido") - \ No newline at end of file From 531af3f75aad36e9f066b937c4c39e0cc0766eaa Mon Sep 17 00:00:00 2001 From: gonzautreras Date: Wed, 9 Jul 2025 00:00:32 -0500 Subject: [PATCH 10/95] Clase 1 - Gonzalo Utreras --- clase1/gonzalo_utreras.py | 65 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 clase1/gonzalo_utreras.py diff --git a/clase1/gonzalo_utreras.py b/clase1/gonzalo_utreras.py new file mode 100644 index 0000000..f450dc8 --- /dev/null +++ b/clase1/gonzalo_utreras.py @@ -0,0 +1,65 @@ +def es_primo(num): + """Devuelve True si num es un número primo, False en caso contrario.""" + if num < 2: + return False + for i in range(2, int(num**0.5) + 1): + if num % i == 0: + return False + return True + +def mostrar_primos_hasta(n): + """Muestra todos los números primos desde 1 hasta n.""" + print(f"Números primos entre 1 y {n}:") + for i in range(1, n + 1): + if es_primo(i): + print(i, end=' - ') + print() # Salto de línea final + +# Programa principal +try: + n = int(input("Introduce un número entero positivo: ")) + if n < 1: + print("Por favor, introduce un número mayor o igual a 1.") + else: + mostrar_primos_hasta(n) +except ValueError: + print("Entrada inválida. Debes ingresar un número entero.") + +import datetime +import random + +# Lista de frases motivacionales +frases = [ + "🌟 Cree en ti y todo será posible.", + "🚀 Cada día es una nueva oportunidad para mejorar.", + "💪 El esfuerzo de hoy es el éxito de mañana.", + "🔥 No te detengas hasta estar orgulloso.", + "🌈 Si puedes soñarlo, puedes lograrlo.", + "🧠 La mente es poderosa. Llénala de pensamientos positivos.", + "🌱 El crecimiento comienza al salir de tu zona de confort.", + "⏳ El tiempo es ahora. ¡Aprovecha el momento!", + "🛠️ Cada error es una oportunidad para aprender.", + "🏆 La perseverancia es la clave del triunfo." +] + +def mostrar_menu(): + print("\n=== MENÚ INTERACTIVO ===") + print("1. Mostrar una frase motivacional") + print("2. Mostrar la fecha actual") + print("3. Salir") + +while True: + mostrar_menu() + opcion = input("Elige una opción (1-3): ") + + if opcion == "1": + frase = random.choice(frases) + print(f"\n{frase}") + elif opcion == "2": + fecha_actual = datetime.datetime.now() + print(f"\n📅 Fecha actual: {fecha_actual.strftime('%d/%m/%Y - %H:%M:%S')}") + elif opcion == "3": + print("\n👋 ¡Hasta luego!") + break + else: + print("\n❌ Opción no válida. Intenta de nuevo.") From 78dcc84aed9637185eb7682dc31059ac9fb0a123 Mon Sep 17 00:00:00 2001 From: DELL13 Date: Wed, 9 Jul 2025 00:18:04 -0500 Subject: [PATCH 11/95] Entrega Clase 1 - Ronald Diaz --- clase1/ronald_diaz.py | 60 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 clase1/ronald_diaz.py diff --git a/clase1/ronald_diaz.py b/clase1/ronald_diaz.py new file mode 100644 index 0000000..efdf437 --- /dev/null +++ b/clase1/ronald_diaz.py @@ -0,0 +1,60 @@ +""" +Ejercio 1 +Numeros primos + +Ejercicio 2 +Menu +""" +from datetime import datetime + +def es_primo(num): + bandera = 0 + for contador in range(1, num+1): + if num % contador==0: + bandera +=1 + if bandera <= 2: + print(num) + +def ejercicio1(): + try: + while True: + numero = int(input("Ingrese un número entero positivo:")) + if numero > 0: + break + for cont in range(1, numero+1): + es_primo(cont) + except: + print("Debe ingresar un número entero") + + +def menu(): + while True: + print("*********************************************************") + print("Seleccione una opción del menú (ingrese el número)") + print("*********************************************************") + print("1: Frase Motivacional") + print("2: Fecha Actual") + print("3: Salir") + print("*********************************************************") + try: + opcion= int(input("Opción: ")) + if opcion == 1: + print("Cree que puedes, y ya estarás a mitad de camino") + elif opcion == 2: + print(f"Fecha: {datetime.now().year} - {datetime.now().month} - {datetime.now().day} ") + elif opcion == 3: + break + else: + print("Debe seleccionar una de las opciones del menu") + + except: + print("Debe ingresar un numero") + +def ejercicio2(): + menu() + +if __name__ == "__main__": + ejercicio1() + ejercicio2() + + From c43afc4099e93e0036535d34073fde1b4d652f40 Mon Sep 17 00:00:00 2001 From: Jhopabyu Date: Wed, 9 Jul 2025 13:01:37 -0500 Subject: [PATCH 12/95] deber clase 1 --- clase1/pablo_colcha.py | 59 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 clase1/pablo_colcha.py diff --git a/clase1/pablo_colcha.py b/clase1/pablo_colcha.py new file mode 100644 index 0000000..29a3090 --- /dev/null +++ b/clase1/pablo_colcha.py @@ -0,0 +1,59 @@ + +"""## 🧪 Ejercicio 1: Números primos + +Crea un programa que solicite al usuario un número `n` y muestre todos los números primos del 1 al `n`. + +### 💡 Sugerencia: +Usa una función `es_primo()` para verificar si un número es primo.""" + +# Función para verificar si un número es primo +def es_primo(num): + if num < 2: + print(f"❌ {num} no es primo (menor que 2)") + return False + for i in range(2, int(num**0.5) + 1): # Solo hasta la raíz cuadrada + if num % i == 0: + print(f"❌ {num} no es primo (divisible por {i})") + return False + return True + +# Solicitar al usuario el valor de n +n = int(input("Ingrese un número entero positivo: ")) + +print(f"Números primos entre 1 y {n}:") + +# Imprimir los números primos desde 1 hasta n +for i in range(1, n + 1): + if es_primo(i): + print(f"✅ {i} es primo") + +"""## 🧪 Ejercicio 2: Menú interactivo + +Crea un menú con al menos 3 opciones usando `if` y `elif`: + +- Mostrar una frase motivacional. +- Mostrar la fecha actual. +- Salir del programa. """ + +import datetime + +while True: + print("\n--- MENÚ INTERACTIVO ---") + print("1. Mostrar una frase motivacional") + print("2. Mostrar la fecha actual") + print("3. Salir del programa") + + opcion = input("Selecciona una opción (1-3): ") + + if opcion == "1": + print("💡 Nunca te rindas. ¡Los grandes logros requieren tiempo y esfuerzo!") + elif opcion == "2": + fecha_actual = datetime.datetime.now() + print(f"📅 La fecha y hora actual es: {fecha_actual.strftime('%d/%m/%Y %H:%M:%S')}") + elif opcion == "3": + print("👋 ¡Hasta luego!") + break + else: + print("❌ Opción no válida. Intenta de nuevo.") + +print("Fin del programa.") From 17471bf1ba1b96fb6aca72776f12a1f75ed6a1e0 Mon Sep 17 00:00:00 2001 From: Belen Villavicencio Date: Wed, 9 Jul 2025 14:49:59 -0500 Subject: [PATCH 13/95] Clase 1 - Belen Villavicencio --- clase1/Villavicencio_Belen.py | 38 +++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 clase1/Villavicencio_Belen.py diff --git a/clase1/Villavicencio_Belen.py b/clase1/Villavicencio_Belen.py new file mode 100644 index 0000000..dfe2312 --- /dev/null +++ b/clase1/Villavicencio_Belen.py @@ -0,0 +1,38 @@ +def es_primo(n): + """Determina si un número es primo.""" + if n <= 1: + return False + for i in range(2, int(n**0.5) + 1): + if n % i == 0: + return False + return True + +n = int(input("Ingrese un número: ")) +print(f"Números primos del 1 al {n}:") +for i in range(1, n+1): + if es_primo(i): + print(i) + +# Ejercicio 2: Menú interactivo + +import datetime + +while True: + print("\nMenú:") + print("1. Mostrar una frase motivacional") + print("2. Mostrar la fecha actual") + print("3. Salir") + + opcion = input("Selecciona una opción: ") + + if opcion == "1": + print("🚀 ¡Tú puedes con todo! Sigue luchando por tus sueños.") + elif opcion == "2": + print("📅 La fecha actual es:", datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) + elif opcion == "3": + print("👋 ¡Hasta pronto!") + break + else: + print("❌ Opción no válida. Intenta de nuevo.") + + \ No newline at end of file From 51064a8ff3be78f8a60575c5d35180dbf93f2e88 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 9 Jul 2025 16:46:23 -0500 Subject: [PATCH 14/95] =?UTF-8?q?Entrega=20clase=201=20-=20Andrea=20Y?= =?UTF-8?q?=C3=A1nez?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clase1/andrea_yanez.py | 1 + 1 file changed, 1 insertion(+) create mode 100644 clase1/andrea_yanez.py diff --git a/clase1/andrea_yanez.py b/clase1/andrea_yanez.py new file mode 100644 index 0000000..2e8397e --- /dev/null +++ b/clase1/andrea_yanez.py @@ -0,0 +1 @@ +print("Hola Mundo") \ No newline at end of file From 9218f7b45c45142b18a7af5fb5069219c4d547e9 Mon Sep 17 00:00:00 2001 From: Belen Villavicencio Date: Wed, 9 Jul 2025 17:03:59 -0500 Subject: [PATCH 15/95] =?UTF-8?q?Clase=201=20-=20Bel=C3=A9n=20Villavicenci?= =?UTF-8?q?o=20(actualizado)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clase1/Villavicencio_Belen.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clase1/Villavicencio_Belen.py b/clase1/Villavicencio_Belen.py index dfe2312..ce17316 100644 --- a/clase1/Villavicencio_Belen.py +++ b/clase1/Villavicencio_Belen.py @@ -30,7 +30,7 @@ def es_primo(n): elif opcion == "2": print("📅 La fecha actual es:", datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) elif opcion == "3": - print("👋 ¡Hasta pronto!") + print("👋 ¡Hasta pronto, te saluda Belén Villavicencio de la clase de PYTHON!") break else: print("❌ Opción no válida. Intenta de nuevo.") From 9cffe1ee191a054592cc8fee195f9f93cae8d533 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 9 Jul 2025 17:55:55 -0500 Subject: [PATCH 16/95] =?UTF-8?q?Entrega=20clase=201=20-=20Andrea=20Y?= =?UTF-8?q?=C3=A1nez?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clase1/andrea_yanez.py | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/clase1/andrea_yanez.py b/clase1/andrea_yanez.py index 2e8397e..3aadb99 100644 --- a/clase1/andrea_yanez.py +++ b/clase1/andrea_yanez.py @@ -1 +1,33 @@ -print("Hola Mundo") \ No newline at end of file +print("Hola, soy Andrea Yánez y estoy en la clase 1") + +"""" +Identificar si un numero es primo y mostrar todos los números primos hasta n + +""" + +def es_primo(n): + if n < 2: + return False + for i in range(2, int(n ** 0.5) + 1): + if n % i == 0: + return False + return True + +def mostrar_primos_hasta_n(n): + print("Números primos del 1 al n:") + for n in range(1, n + 1): + if es_primo(n): + print(n, end=" ") + +"""" +Solicitar al usuario que ingrese un número + +""" +try: + n = int(input("Ingrese un número mayor a 1: ")) + if n < 1: + print("Por favor, ingrese un número mayor que 1") + else: + mostrar_primos_hasta_n(n) +except ValueError: + print("Entrada inválida. Debe ser un número entero") From b0e85a12931e36810b3742c3fbbfc15bc3cdd1ea Mon Sep 17 00:00:00 2001 From: Valeria Date: Wed, 9 Jul 2025 18:12:31 -0500 Subject: [PATCH 17/95] Deber 1 Valeria Ramos --- clase1/valeria_ramos.py | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/clase1/valeria_ramos.py b/clase1/valeria_ramos.py index 00c979b..7726698 100644 --- a/clase1/valeria_ramos.py +++ b/clase1/valeria_ramos.py @@ -1 +1,35 @@ -print ("Hellow Word") \ No newline at end of file +#numeros primos ejercicio 1 + +from datetime import date + + +def es_primo(number): + if number <= 1: + return False + for i in range (2,number): + if number % i == 0: + return False + return True + + +number = int(input("Ingresa un número: ")) +if es_primo(number): + print(f"{number} ES UN NÚMERO PRIMO.") +else: + print(f"{number} NO ES UN NÚMERO PRIMO.") + +#Menu ejercicio 2 +option1 = 1 +option2 = 2 +option3 = 3 +resultOption = int(input(f"Escribe el número de la opción que necesites: Frase: {option1}, Fecha: {option2}, Salir:{option3} ")) +if resultOption == 1: + print ("Invertir tiempo en aprender a programar es invertir en mi futuro.") +elif resultOption == 2: + dateActual = date.today() + print(f"La fecha de hoy es:{dateActual}") +elif resultOption == 3: + print ("Saliendo, Saludos..") + exit() +else: + print ("El número ingresado no es correcto") \ No newline at end of file From 0d7889f474b7b254a324d93661d04bf42ae907b6 Mon Sep 17 00:00:00 2001 From: GEORGEP15 Date: Wed, 9 Jul 2025 18:42:27 -0500 Subject: [PATCH 18/95] subir --- clase1/george_penafiel_clase1.py | 39 +++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/clase1/george_penafiel_clase1.py b/clase1/george_penafiel_clase1.py index e99758e..212c75d 100644 --- a/clase1/george_penafiel_clase1.py +++ b/clase1/george_penafiel_clase1.py @@ -1,5 +1,42 @@ +## 🧪 Ejercicio 1: Números primos +def es_primo(numero): + if numero < 2: + return False + for i in range(2, numero): + if numero % i == 0: + return False + return True -## 🧪 Ejercicio 1: Números primos +n = int(input("Ejercicio 1\nIngresa un número para ver todos los primos del 1 al n: ")) + +print(f"\nNúmeros primos del 1 al {n}:") +for i in range(1, n + 1): + if es_primo(i): + print(i, end=" ") + +print("\n") + +import datetime + +## 🧪 Ejercicio 2: Menú interactivo + +while True: + print("\n----- MENÚ -----") + print("1. Mostrar una frase motivacional") + print("2. Mostrar la fecha actual") + print("3. Salir del programa") + + opcion = input("Elige una opción (1, 2 o 3): ") + if opcion == "1": + print("¡Tú puedes lograrlo, no te rindas nunca!") + elif opcion == "2": + fecha_actual = datetime.datetime.now() + print("La fecha y hora actual es:", fecha_actual) + elif opcion == "3": + print("¡Hasta luego!") + break + else: + print("Opción inválida. Intenta de nuevo.") From 6ccbda6b882d63b6cdfd4a82d2e2e14b215a100d Mon Sep 17 00:00:00 2001 From: Pamrlota Date: Wed, 9 Jul 2025 20:02:43 -0500 Subject: [PATCH 19/95] =?UTF-8?q?Update=20and=20rename=20readme.md=20to=20?= =?UTF-8?q?Valeria=5FQui=C3=B1onez.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "clase1/Valeria_Qui\303\261onez.py" | 34 +++++++++++++++++++++++++++++ clase1/readme.md | 34 ----------------------------- 2 files changed, 34 insertions(+), 34 deletions(-) create mode 100644 "clase1/Valeria_Qui\303\261onez.py" delete mode 100644 clase1/readme.md diff --git "a/clase1/Valeria_Qui\303\261onez.py" "b/clase1/Valeria_Qui\303\261onez.py" new file mode 100644 index 0000000..1a9ae36 --- /dev/null +++ "b/clase1/Valeria_Qui\303\261onez.py" @@ -0,0 +1,34 @@ +# Clase 1 – Fundamentos de Python +valeria Beatriz Quiñonez Rodriguez +# Ejercicio 1: Números primos +def es_primo(n): + if n <= 2: + return False + for i in range(2, int(n**0.5) + 1): + if n % i == 0: + return False + return True +n = int(input("Ingrese un número: ")) +print (f"Números primos del 1 al n : {n}") +for i in range(1, n + 1): + if es_primo(i): + print(i, end=' ') +#Ejercicio 2: Menu interactivo +def menu(frase_motivacional): + print("Bienvenido al menú interactivo") + print("1. Frase motivacional") + print("2. Mostrar la fecha y hora actual") + print("3. Salir") +opcion = int(input("Seleccione una opción: ")) +if opcion == 1: + print("Haz tu vida un sueño, y tu sueño una realidad.") +elif opcion == 2: + print("Confia en tus esfuerzos, el éxito llegará.") +elif opcion == 3: + print("La unica manera de hacer un gran trabajo es amar lo que haces.") +opcion = int(input("Seleccione una opción: 1, 2 o 3: ")) +if opcion == 1: + print("Haz tu vida un sueño, y tu sueño una realidad.") + from datetime import datetime + fecha_hora_actual = datetime.now() + print("Fecha y hora actual: 19:53 pm ", fecha_hora_actual) diff --git a/clase1/readme.md b/clase1/readme.md deleted file mode 100644 index 78c4c12..0000000 --- a/clase1/readme.md +++ /dev/null @@ -1,34 +0,0 @@ -# Clase 1 – Fundamentos de Python - -## 🎯 Objetivo: -Aplicar estructuras básicas de programación en Python: variables, condicionales, bucles y funciones. - ---- - -## 📋 Instrucciones: - -1. Realiza un **fork** del repositorio principal del curso a tu cuenta personal de GitHub. -2. Clona tu fork. -3. Crea un archivo con tu nombre: `nombre_apellido.py`. -4. Resuelve los ejercicios de abajo. -5. Haz commit, push y un Pull Request con el título:\ - **"Clase 1 - TuNombre TuApellido"** - ---- - -## 🧪 Ejercicio 1: Números primos - -Crea un programa que solicite al usuario un número `n` y muestre todos los números primos del 1 al `n`. - -### 💡 Sugerencia: -Usa una función `es_primo()` para verificar si un número es primo. - ---- - -## 🧪 Ejercicio 2: Menú interactivo - -Crea un menú con al menos 3 opciones usando `if` y `elif`: - -- Mostrar una frase motivacional. -- Mostrar la fecha actual. -- Salir del programa. From 7811383061869484f12635389d3f83cadb6e8d7b Mon Sep 17 00:00:00 2001 From: FreakJazz Date: Wed, 9 Jul 2025 21:26:18 -0500 Subject: [PATCH 20/95] clase3 --- clase3/flask_pokeapi/app.py | 50 ++++++++++++++++ clase3/flask_pokeapi/templates/index.html | 57 +++++++++++++++++++ clase3/jazmin_rodriguez.py | 65 +++++++++++++++++++++ clase3/readme.md | 69 +++++++++++++++++++++++ 4 files changed, 241 insertions(+) create mode 100644 clase3/flask_pokeapi/app.py create mode 100644 clase3/flask_pokeapi/templates/index.html create mode 100644 clase3/jazmin_rodriguez.py create mode 100644 clase3/readme.md diff --git a/clase3/flask_pokeapi/app.py b/clase3/flask_pokeapi/app.py new file mode 100644 index 0000000..86fa206 --- /dev/null +++ b/clase3/flask_pokeapi/app.py @@ -0,0 +1,50 @@ +from flask import Flask, render_template, request +import requests +import math + +app = Flask(__name__) + +POKEMONS_PER_PAGE = 9 + +@app.route('/', methods=['GET']) +def index(): + search_query = request.args.get('search', '').lower() + page = int(request.args.get('page', 1)) + + offset = (page - 1) * POKEMONS_PER_PAGE + url = f'https://pokeapi.co/api/v2/pokemon?limit={POKEMONS_PER_PAGE}&offset={offset}' + response = requests.get(url) + + if response.status_code != 200: + return "Error al obtener los Pokémon" + + results = response.json() + all_pokemon = [] + + for poke in results['results']: + poke_data = requests.get(poke['url']).json() + name = poke_data['name'] + + if search_query in name: + pokemon = { + 'name': name.upper(), + 'sprite': poke_data['sprites']['front_default'], + 'image': poke_data['sprites']['other']['official-artwork']['front_shiny'], + 'types': [t['type']['name'] for t in poke_data['types']], + 'height': poke_data['height'], + 'weight': poke_data['weight'], + 'abilities': [a['ability']['name'] for a in poke_data['abilities']] + } + all_pokemon.append(pokemon) + + total = 100 + total_pages = math.ceil(total / POKEMONS_PER_PAGE) + + return render_template('index.html', + pokemon_list=all_pokemon, + search_query=search_query, + page=page, + total_pages=total_pages) + +if __name__ == '__main__': + app.run(debug=True) diff --git a/clase3/flask_pokeapi/templates/index.html b/clase3/flask_pokeapi/templates/index.html new file mode 100644 index 0000000..68792c3 --- /dev/null +++ b/clase3/flask_pokeapi/templates/index.html @@ -0,0 +1,57 @@ + + + + + + + Pokédex Flask + + + +
+

POKEAPI

+ +
+
+ + +
+
+ + {% if pokemon_list %} +
+ {% for pokemon in pokemon_list %} +
+
+ {{ pokemon.name }} +
+
{{ pokemon.name }}
+

+ Tipo: {{ pokemon.types | join(', ') }}
+ Altura: {{ pokemon.height }}
+ Peso: {{ pokemon.weight }}
+ Habilidades: {{ pokemon.abilities | join(', ') }} +

+
+
+
+ {% endfor %} +
+ + + + + {% else %} +

No se encontraron Pokémon.

+ {% endif %} +
+ + diff --git a/clase3/jazmin_rodriguez.py b/clase3/jazmin_rodriguez.py new file mode 100644 index 0000000..b5a3ed7 --- /dev/null +++ b/clase3/jazmin_rodriguez.py @@ -0,0 +1,65 @@ +import requests +import json + +URL = "https://fakestoreapi.com" + +def deserialize_json(json_data): + """ + Deserialize JSON data into a Python object. + """ + try: + return json_data.json() + except ValueError as e: + print(f"Error deserializing JSON: {e}") + return None + +def serialize_json(data): + """ + Serialize a Python object into JSON format. + """ + try: + return json.dumps(data, indent=2) + except TypeError as e: + print(f"Error serializing to JSON: {e}") + return None + +def get_products(): + url = f"{URL}/products" + response = requests.get(url) + if response.status_code == 200: + return response.json() + else: + return None + +def get_product_by_id(product_id): + url = f"{URL}/products/{product_id}" + response = requests.get(url) + if response.status_code == 200: + return response.json() + else: + return None + +if __name__ == "__main__": + products = get_products() + for product in products: + print(f"Product ID: {product['id']}") + print(f"Title: {product['title']}") + print(f"Price: {product['price']}") + print(f"Description: {product['description']}") + print(f"Imagen: {product['image']}") + print("-" * 20) + + product = get_product_by_id(15) + print(f"Product ID: {product['id']}") + print(f"Title: {product['title']}") + print(f"Price: {product['price']}") + print(f"Description: {product['description']}") + print(f"Imagen: {product['image']}") + print("-" * 20) + + objserialize = serialize_json(products) + print(f"Serialized JSON: {objserialize}") + + # objDeserialize = deserialize_json(response) + # print(f"Deserialized JSON: {objDeserialize}") + diff --git a/clase3/readme.md b/clase3/readme.md new file mode 100644 index 0000000..c523456 --- /dev/null +++ b/clase3/readme.md @@ -0,0 +1,69 @@ +# Clase 3 – APIs y Consumo de Datos en Python + +## 🎯 Objetivo: +Aprender a consumir APIs públicas en Python, manipular datos JSON y mostrar información de forma útil en consola. + +--- + +## 📋 Instrucciones: + +1. Crea una carpeta `clase_3` y dentro un archivo `nombre_apellido.py`. +2. Asegúrate de tener instalada la librería `requests` (`pip install requests`). +3. Realiza los ejercicios propuestos a continuación. +4. Guarda los cambios, haz commit y push a tu fork del repositorio. +5. Crea un Pull Request con el título: `"Clase 3 - TuNombre TuApellido"` +--- + +## 📌 Requisitos: + +1. Instalar virtualenv: pip install virtualenv​ +2. Crear entorno virtual: python -m venv venv​ virtual enviroment +3. Activar entorno:​ en la carpeta raiz de todas las clases + - Mac source venv\bin\activate + - Windows: venv\Scripts\activate +4. Instalar Flask: pip install flask​ +5. Crear una carpeta con nombre_apellido en la carpeta clase3 +6. cd clase3/nombre_apellido +5. Ejecutar app: python app.py +pip freeze > requirements.txt +pip3 install -r requirements.txt +deactivate +--- + +## 🧪 Ejercicio 1 – Explorando la PokéAPI + +Utiliza la [PokeAPI](https://pokeapi.co) para mostrar información de un Pokémon ingresado por el usuario. + +### Requisitos: +- Muestra los datos de 9 pokemons con paginado + (Para evitar un renderizado lento de la pagina traer de 9 en 9 por cada pagina los datos de cada pokemon) +- Solicita al usuario el nombre de un Pokémon. +- Usa la API para obtener al menos unos 10 datos relevantes de la api por cada pokemon: + - Su número en la Pokédex. + - Sus tipos (fire, water, etc.). + - Una imagen (url del sprite). + - etc... + +--- + +## 🧪 Ejercicio 2 – API de chistes + +Consume la API pública: https://official-joke-api.appspot.com/jokes/random + +### Requisitos: +- Esto lo pueden hacer en consola o con flask +- Muestra el `setup` y `punchline` del chiste. +- El programa debe ejecutarse cada vez que el usuario presione Enter. +- Finaliza si el usuario escribe “salir”. + +--- + +## 💡 Recomendaciones: +- Usa `try-except` para manejar errores de red o errores de API. +- Imprime los resultados de forma clara y amigable. +- Puedes probar con otras APIs públicas si deseas practicar más. + +--- + +## ✅ Bonus: +- Crea una función que obtenga 3 Pokémon al azar y muestre sus nombres y tipos. From 406b1d394dace0c3c94d2500db03f6da49387a26 Mon Sep 17 00:00:00 2001 From: FreakJazz Date: Wed, 9 Jul 2025 21:27:06 -0500 Subject: [PATCH 21/95] clase3 --- clase3/clase3.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 clase3/clase3.py diff --git a/clase3/clase3.py b/clase3/clase3.py new file mode 100644 index 0000000..987f89a --- /dev/null +++ b/clase3/clase3.py @@ -0,0 +1,12 @@ +import requests + +data = requests.get('https://fakestoreapi.com/products').json() +print(data[0]) + +for prod in data: + print(f"{prod['title']} - ${prod['price']}") + +for prod in data: + if prod['category'] == 'electronics': + print(f"{prod['title']} - ${prod['price']}") + From f2fad7740a1619787e5f7fccacaaad72864aaecb Mon Sep 17 00:00:00 2001 From: Pamrlota Date: Wed, 9 Jul 2025 21:42:45 -0500 Subject: [PATCH 22/95] =?UTF-8?q?Update=20and=20rename=20clase2/readme.md?= =?UTF-8?q?=20to=20Valeria=5FQui=C3=B1onez.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Clase 2 --- "Valeria_Qui\303\261onez.py" | 78 ++++++++++++++++++++++++++++++++++++ clase2/readme.md | 53 ------------------------ 2 files changed, 78 insertions(+), 53 deletions(-) create mode 100644 "Valeria_Qui\303\261onez.py" delete mode 100644 clase2/readme.md diff --git "a/Valeria_Qui\303\261onez.py" "b/Valeria_Qui\303\261onez.py" new file mode 100644 index 0000000..63cc0d9 --- /dev/null +++ "b/Valeria_Qui\303\261onez.py" @@ -0,0 +1,78 @@ +# clase 2-Estructuras y POO +Valeria Beatriz Quiñonez Rodriguez +# Ejercicio 1: Objetos +# Definimos la clase Laptop +class Laptop: + def __init__(self, marca, modelo, año, color, almacenamiento, memoria_ram=8): + self.marca = marca + self.modelo = modelo + self.año = año + self.color = color + self.almacenamiento = almacenamiento + self.memoria_ram = memoria_ram + self.estado = "apagado" + + def encender(self): + self.estado = "encendido" + print(f"La laptop {self.marca} {self.modelo} está {self.estado}.") + + def apagar(self): + self.estado = "apagado" + print(f"La laptop {self.marca} {self.modelo} está {self.estado}.") + def reiniciar(self): + if self.estado == "encendido": + print(f"La laptop {self.marca} {self.modelo} se está reiniciando.") + else: + print(f"No se puede reiniciar la laptop {self.marca} {self.modelo} porque está apagada.") +#Ejercicio 2: Listas y Diccionarios +#Lista con tus 3 peliculas favoritas +peliculas_favoritas = ["Legalmente Rubia", "Rasputia", "Shrek"] +#Imprimir lista +print("Mis películas favoritas son:") +for pelicula in peliculas_favoritas: + print(f"- {pelicula}") + #Diccionario con mis datos + mi_info = { + "nombre": "Valeria ", + "edad": 17, + "genero": "Femenino" + } + #Imprimir diccionario +print("\nMis datos:") +for clave, valor in mi_info.items(): + print(f"{clave.capitalize()}: {valor}") +#Ejercicio 3: Trivia con POO +class Pregunta: + def __init__(self, pregunta, respuesta_correcta, respuestas_incorrectas): + self.pregunta = pregunta + self.respuesta_correcta = respuesta_correcta + self.respuestas_incorrectas = respuestas_incorrectas + def mostrar_pregunta(self): + print(f"Pregunta: {self.pregunta}") + print("Respuestas posibles:") + for i, respuesta in enumerate(self.respuestas_incorrectas, start=1): + print(f"{i}. {respuesta}") + print(f"Respuesta correcta: {self.respuesta_correcta}") + print("¿Cuál de los siguientes son factores predisponentes para los cálculos de colesterol?:") + print("1. Fibrosis quística") + print("2. Hemólisis crónica") + print("3. Cirrosis alcohólica") + print("4. Ayuno") +def responder(self, numero): + if self.opciones[numero - 4].lower() == self.respuesta.lower(): + print("✅ Respuesta correcta.") + else: + print("❌ Respuesta incorrecta: 1, 2 y 3 son incorrectas.") + print(f"La respuesta correcta era: 4 {self.respuesta}") + # mostrat pregunta +pregunta1 = Pregunta( + "¿Cuál de los siguientes son factores predisponentes para los cálculos de colesterol?", + "Ayuno", + ["Fibrosis quística", "Hemólisis crónica", "Cirrosis alcohólica", "Ayuno"] +) +pregunta1.mostrar_pregunta() +# Responder a la pregunta +respuesta_usuario = int(input("Selecciona el número de tu respuesta: ")) +pregunta1.responder(respuesta_usuario) +elif respuesta_usuario == 1 or respuesta_usuario == 2 or respuesta_usuario == 3: + print("⚠️ Entrada inválida. Debes escribir un número válido de las opciones.") diff --git a/clase2/readme.md b/clase2/readme.md deleted file mode 100644 index a6d56d4..0000000 --- a/clase2/readme.md +++ /dev/null @@ -1,53 +0,0 @@ -# Clase 2 – Estructuras y POO - -## 🎯 Objetivo: -Aplicar estructuras de datos y Programación Orientada a Objetos para crear una trivia interactiva. - ---- - -## 📋 Instrucciones: - -1. Usa el repositorio que ya forkeaste. -2. Crea un archivo `nombre_apellido.py` en la carpeta `clase_2`. -3. Resuelve los ejercicios. -4. Haz commit, push y un Pull Request con el título:\ - **"Clase 2 - TuNombre TuApellido"** - ---- - -## 🧪 Ejercicio 1: Objetos - - - -Crea: -- El objeto que definiste en clase y realiza operaciones con el. -- Explicar que es el objeto que hace y el proque de la elección - ---- -# Como documentar en python para el deber -""" -Celular: -- Marca -- Modelo -- Año -- Color -Metodos: -- Llamar -- Enviar mensaje -""" - -## 🧪 Ejercicio 2: Listas y diccionarios - -Crea: -- Una lista con tus 3 películas favoritas. -- Un diccionario con tu nombre, genero, año. -- Imprime las operaciones. - ---- - -## 🧪 Ejercicio 3: Trivia con POO - -1. Crea una clase `Pregunta` con `enunciado`, `opciones` y `respuesta`. -numero = int(input("Ingrese número: ")) -2. Muestra la pregunta y permite al usuario responder. -3. Indica si la respuesta fue correcta o no. From 46744aa4f0a51c96471f9ef25c82f78a4b6ced8d Mon Sep 17 00:00:00 2001 From: dcuatin94 <112452201+dcuatin94@users.noreply.github.com> Date: Wed, 9 Jul 2025 22:11:02 -0500 Subject: [PATCH 23/95] Tarea clase 1 y clase 2 --- clase1/cuatin_daniel.py | 54 ++++++++++++++++++ clase2/cuatin_daniel.py | 123 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 177 insertions(+) create mode 100644 clase1/cuatin_daniel.py create mode 100644 clase2/cuatin_daniel.py diff --git a/clase1/cuatin_daniel.py b/clase1/cuatin_daniel.py new file mode 100644 index 0000000..5afbd5c --- /dev/null +++ b/clase1/cuatin_daniel.py @@ -0,0 +1,54 @@ +import datetime + +def es_primo(n): + """Determina si un número es primo.""" + if n <= 1: + return False + if n == 2: # El único primo par + return True + if n % 2 == 0: # Descartar pares + return False + # Verificar divisores hasta √n (optimización) + for i in range(3, int(n**0.5) + 1, 2): + if n % i == 0: + return False + return True + +def ejercicio1(): + """Solicita un número al usuario y verifica si es primo.""" + try: + numero = int(input("Ingrese un número para verificar si es primo: ")) + if es_primo(numero): + print(f"{numero} es un número primo.") + else: + print(f"{numero} no es un número primo.") + except ValueError: + print("Por favor, ingrese un número válido.") + +def mostrar_menu(): + print("\n--- MENÚ PRINCIPAL ---") + print("1. Mostrar frase motivacional") + print("2. Mostrar fecha actual") + print("3. Salir") + +def ejercicio2(): + while True: + mostrar_menu() + opcion = input("Selecciona una opción (1-3): ") + + if opcion == "1": + print("\n¡Tú puedes lograr todo lo que te propongas! 💪") + elif opcion == "2": + fecha_actual = datetime.datetime.now().strftime("%d/%m/%Y") + print(f"\nLa fecha actual es: {fecha_actual}") + elif opcion == "3": + print("\n¡Hasta luego! 👋") + break + else: + print("\n❌ Opción no válida. Por favor, elige 1, 2 o 3.") + +if __name__ == "__main__": + print("Bienvenido al programa de ejercicios.") + ejercicio1() + ejercicio2() + print("Gracias por participar. ¡Hasta la próxima!") \ No newline at end of file diff --git a/clase2/cuatin_daniel.py b/clase2/cuatin_daniel.py new file mode 100644 index 0000000..c866289 --- /dev/null +++ b/clase2/cuatin_daniel.py @@ -0,0 +1,123 @@ + +""" +La clase Heroe representa a un superhéroe con un nombre y un poder. +Tiene un método para presentarse. +Elegimos esta clase para ilustrar el concepto de clases en Python, es una forma +sencilla de entender cómo funcionan los objetos y métodos. +""" +# Ejercio 1: Definición de una clase Heroe +class Heroe: + def __init__(self, nombre, poder): + self.nombre = nombre + self.poder = poder + + def presentar(self): + print(f"Soy {self.nombre} y tengo el poder de {self.poder}.") + +""" +La clase Celular representa un teléfono móvil con atributos como marca, modelo, año y color. +Tiene métodos para realizar llamadas, enviar mensajes y mostrar información del celular. +""" +class Celular: + def __init__(self, marca, modelo, year, color): + self.marca = marca + self.modelo = modelo + self.year = year + self.color = color + + def llmar(self, numero): + print(f"Llamando al número {numero} desde el celular {self.marca} {self.modelo}.") + + def enviar_mensaje(self, numero, mensaje): + print(f"Enviando mensaje '{mensaje}' al número {numero} desde el celular {self.marca} {self.modelo}.") + + def mostrar_info(self): + print(f"Celular: {self.marca} {self.modelo}") + +# Ejercicio 2: Listas y diccionarios + +class Pelicula: + def __init__(self, titulo, director, anio): + self.titulo = titulo + self.director = director + self.anio = anio + + def mostrar_info(self): + print(f"{self.titulo} ({self.anio}), dirigido por {self.director}.") + + + +# Ejercicio 3: Trivia con POO + +class Pregunta: + def __init__(self, pregunta, opciones, respuesta_correcta): + self.pregunta = pregunta + self.opciones = opciones + self.respuesta_correcta = respuesta_correcta + + def verificar_respuesta(self, respuesta_usuario): + try: + return self.opciones[int(respuesta_usuario) - 1] == self.respuesta_correcta + except (ValueError, IndexError): + return False + +class Trivia: + def __init__(self): + self.preguntas = [] + + def agregar_pregunta(self, pregunta): + self.preguntas.append(pregunta) + + def iniciar_trivia(self): + for pregunta in self.preguntas: + print(pregunta.pregunta) + for i, opcion in enumerate(pregunta.opciones, 1): + print(f"{i}. {opcion}") + respuesta_usuario = input("Selecciona la opción correcta: ") + if pregunta.verificar_respuesta(respuesta_usuario): + print("¡Respuesta correcta!") + else: + print(f"Respuesta incorrecta. La respuesta correcta era: {pregunta.respuesta_correcta}") + +if __name__ == "__main__": + # Ejercicio 1: Crear un héroe y presentarlo + heroe = Heroe("Superman", "volar") + heroe.presentar() + + # Ejercicio 2: Crear un celular y mostrar su información + celular = Celular("Samsung", "Galaxy S21", 2021, "Negro") + celular.mostrar_info() + celular.llmar("123456789") + celular.enviar_mensaje("987654321", "Hola, ¿cómo estás?") + + # Ejercicio 2: Crear una lista de películas + peliculas = [ + Pelicula("Toy Story", "John Lasseter", 1995), + Pelicula("Forrest Gump", "Robert Zemeckis", 1994), + Pelicula("Insidious", "James Wan", 2010), + Pelicula("El Padrino", "Francis Ford Coppola", 1972), + ] + for pelicula in peliculas: + pelicula.mostrar_info() + + # Ejercicio 3: Crear una trivia y iniciarla + trivia = Trivia() + pregunta1 = Pregunta( + "¿Cuál es la capital de Francia?", + ["Berlín", "Madrid", "París", "Roma"], + "París" + ) + trivia.agregar_pregunta(pregunta1) + pregunta2 = Pregunta( + "¿Cuál es el océano más grande del mundo?", + ["Atlántico", "Índico", "Ártico", "Pacífico"], + "Pacífico" + ) + trivia.agregar_pregunta(pregunta2) + pregunta3 = Pregunta( + "¿Quién escribió 'Cien años de soledad'?", + ["Gabriel García Márquez", "Mario Vargas Llosa", "Jorge Luis Borges", "Pablo Neruda"], + "Gabriel García Márquez" + ) + trivia.agregar_pregunta(pregunta3) + trivia.iniciar_trivia() From 15bededdd3f49c3b5650d7a247c8c2b021b33756 Mon Sep 17 00:00:00 2001 From: GEORGEP15 Date: Wed, 9 Jul 2025 22:45:02 -0500 Subject: [PATCH 24/95] tarea clase 2 y 3 --- clase2/george_penafiel_clase2.py | 62 +++++++++++++ clase3/george_penafiel/app.py | 58 ++++++++++++ clase3/george_penafiel/chistes_consola.py | 44 +++++++++ clase3/george_penafiel/templates/index.html | 99 +++++++++++++++++++++ 4 files changed, 263 insertions(+) create mode 100644 clase2/george_penafiel_clase2.py create mode 100644 clase3/george_penafiel/app.py create mode 100644 clase3/george_penafiel/chistes_consola.py create mode 100644 clase3/george_penafiel/templates/index.html diff --git a/clase2/george_penafiel_clase2.py b/clase2/george_penafiel_clase2.py new file mode 100644 index 0000000..549e2d5 --- /dev/null +++ b/clase2/george_penafiel_clase2.py @@ -0,0 +1,62 @@ +# Clase 2 - GEORGE ANTONIO PEÑAFIEL ALVARADO + +# 🧪 Ejercicio 1: Objetos +print("\n--- EJERCICIO 1: OBJETOS ---") +class Celular: + def __init__(self, marca, modelo, año, color): + self.marca = marca + self.modelo = modelo + self.año = año + self.color = color + + def llamar(self, numero): + return f"Llamando al {numero} desde un {self.marca} {self.modelo}" + + def enviar_mensaje(self, mensaje): + return f"Mensaje enviado: {mensaje}" + +mi_celular = Celular("Samsung", "Galaxy A52", 2021, "Negro") +print(mi_celular.llamar("0999999999")) +print(mi_celular.enviar_mensaje("Hola, ¿cómo estás?")) + +# 🧪 Ejercicio 2: Listas y Diccionarios +print("\n--- EJERCICIO 2: LISTAS Y DICCIONARIOS ---") +peliculas = ["Interestelar", "Inception", "El origen"] +info = { + "nombre": "Juan", + "genero": "Masculino", + "año": 2000 +} +print("Películas favoritas:", peliculas) +print("Información personal:", info) +print("Primera película:", peliculas[0]) +print("Nombre del usuario:", info["nombre"]) + +# 🧪 Ejercicio 3: Trivia con POO +print("\n--- EJERCICIO 3: TRIVIA ---") +class Pregunta: + def __init__(self, enunciado, opciones, respuesta_correcta): + self.enunciado = enunciado + self.opciones = opciones + self.respuesta_correcta = respuesta_correcta + + def mostrar(self): + print(self.enunciado) + for i, opcion in enumerate(self.opciones, 1): + print(f"{i}. {opcion}") + + def responder(self, respuesta_usuario): + if self.opciones[respuesta_usuario - 1] == self.respuesta_correcta: + print("¡Correcto!") + else: + print("Incorrecto. La respuesta correcta era:", self.respuesta_correcta) + +pregunta1 = Pregunta( + "¿Cuál es el planeta más grande del sistema solar?", + ["Tierra", "Marte", "Júpiter", "Venus"], + "Júpiter" +) + +pregunta1.mostrar() +respuesta = int(input("Selecciona una opción (1-4): ")) +pregunta1.responder(respuesta) diff --git a/clase3/george_penafiel/app.py b/clase3/george_penafiel/app.py new file mode 100644 index 0000000..daaca2f --- /dev/null +++ b/clase3/george_penafiel/app.py @@ -0,0 +1,58 @@ +from flask import Flask, render_template, request +import requests +import math + +app = Flask(__name__) + +POKEMONS_PER_PAGE = 9 + +@app.route('/', methods=['GET']) +def index(): + search_query = request.args.get('search', '').lower() + page = int(request.args.get('page', 1)) + + offset = (page - 1) * POKEMONS_PER_PAGE + url = f'https://pokeapi.co/api/v2/pokemon?limit={POKEMONS_PER_PAGE}&offset={offset}' + response = requests.get(url) + + if response.status_code != 200: + return "Error al obtener los Pokémon de la API." + + results = response.json() + + all_pokemon = [] + total_pokemon_count = results.get('count', 0) + + for poke in results['results']: + poke_data_response = requests.get(poke['url']) + + if poke_data_response.status_code != 200: + continue + + poke_data = poke_data_response.json() + + name = poke_data['name'] + + if search_query in name.lower(): + pokemon = { + 'id': poke_data['id'], + 'name': name.upper(), + 'sprite': poke_data['sprites']['front_default'], + 'image': poke_data['sprites']['other']['official-artwork']['front_shiny'], + 'types': [t['type']['name'] for t in poke_data['types']], + 'height': poke_data['height'], + 'weight': poke_data['weight'], + 'abilities': [a['ability']['name'] for a in poke_data['abilities']] + } + all_pokemon.append(pokemon) + + total_pages = math.ceil(total_pokemon_count / POKEMONS_PER_PAGE) + + return render_template('index.html', + pokemon_list=all_pokemon, + search_query=search_query, + page=page, + total_pages=total_pages) + +if __name__ == '__main__': + app.run(debug=True) \ No newline at end of file diff --git a/clase3/george_penafiel/chistes_consola.py b/clase3/george_penafiel/chistes_consola.py new file mode 100644 index 0000000..3fb59d4 --- /dev/null +++ b/clase3/george_penafiel/chistes_consola.py @@ -0,0 +1,44 @@ +import requests + +def obtener_chiste(): + url = "https://official-joke-api.appspot.com/jokes/random" + try: + response = requests.get(url) + response.raise_for_status() + chiste_data = response.json() + + setup = chiste_data.get('setup') + punchline = chiste_data.get('punchline') + + return setup, punchline + except requests.exceptions.RequestException as e: + print(f"Error de conexión o de la API: {e}") + return None, None + except ValueError: + print("Error: La respuesta de la API no es un JSON válido.") + return None, None + +def main(): + print("¡Bienvenido al generador de chistes!") + print("Presiona ENTER para obtener un chiste nuevo, o escribe 'salir' para terminar.") + + while True: + entrada = input("\n> ").strip().lower() + + if entrada == "salir": + print("¡Hasta la próxima! Espero que te hayas reído.") + break + elif entrada == "": + setup, punchline = obtener_chiste() + if setup and punchline: + print("\n--- ¡Chiste! ---") + print(f"Setup: {setup}") + print(f"Punchline: {punchline}") + print("----------------") + else: + print("No se pudo obtener un chiste. Intenta de nuevo.") + else: + print("Comando no reconocido. Presiona ENTER para un chiste o 'salir' para terminar.") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/clase3/george_penafiel/templates/index.html b/clase3/george_penafiel/templates/index.html new file mode 100644 index 0000000..33cbb24 --- /dev/null +++ b/clase3/george_penafiel/templates/index.html @@ -0,0 +1,99 @@ + + + + + + Pokédex Flask + + + +
+

POKEAPI

+ +
+
+ + +
+
+ + {% if pokemon_list %} +
+ {% for pokemon in pokemon_list %} +
+
+ {{ pokemon.name }} +
+
{{ pokemon.name }}
+

+ Número en la Pokédex: {{ pokemon.id }}
+ Tipo: {{ pokemon.types | join(', ') }}
+ Altura: {{ pokemon.height }}
+ Peso: {{ pokemon.weight }}
+ Habilidades: {{ pokemon.abilities | join(', ') }} +

+
+
+
+ {% endfor %} +
+ + + + {% else %} +

No se encontraron Pokémon.

+ {% endif %} +
+ + \ No newline at end of file From 2031b742401de978778a1dd981687cca8cdf4559 Mon Sep 17 00:00:00 2001 From: DELL13 Date: Thu, 10 Jul 2025 01:32:40 -0500 Subject: [PATCH 25/95] Entrega Clase 2 - Ronald Diaz --- clase2/ronald_diaz.py | 93 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 clase2/ronald_diaz.py diff --git a/clase2/ronald_diaz.py b/clase2/ronald_diaz.py new file mode 100644 index 0000000..badfa6d --- /dev/null +++ b/clase2/ronald_diaz.py @@ -0,0 +1,93 @@ +""" +Ejercicio1 +Clase: cuenta bancaria +Atributos: titular, numero_cuenta, saldo +Metodos: depositar, retirar, consultar_saldo +""" + +class CuentaBancaria: + + def __init__(self, titular, numero_cuenta, saldo= 0.0): + self.titular = titular + self.numero_cuenta = numero_cuenta + self.saldo = float(saldo) + + def depositar(self, monto): + if monto <= 0: + print("El monto a depositar debe ser mayor que cero.") + self.saldo += monto + print(f"Depósito exitoso: +{monto:.2f}. Saldo actual: {self.saldo:.2f}") + + def retirar(self, monto): + if monto <= 0: + print("El monto a retirar debe ser mayor que cero.") + elif monto > self.saldo: + print("Fondos insuficientes para realizar el retiro.") + else: + self.saldo -= monto + print(f"Retiro exitoso: -{monto:.2f}. Saldo actual: {self.saldo:.2f}") + + def consultar_saldo(self) -> float: + return self.saldo +"""Ejercicio 2 +Listas y diccionarios +""" +lista_pelis = ["Pokemon", "Shrek", "Los Pitufos"] + +#impresion de los elementos de la lista +print("Listado de peliculas") +for elemento in lista_pelis: + print(f"- {elemento}") + +#Diccionario de datos +misDatos = { + "nombre" : "Ronald", + "edad" : 30, + "genero" : "Masculino" +} +#Impresion de los datos del diccionario +print("Mis datos:") +print(f"Nombre: {misDatos["nombre"]} Edad: {misDatos["edad"]} Genero: {misDatos["genero"]}") + +""" +Ejercicio 3 Trivia con POO +1. Crea una clase `Pregunta` con `enunciado`, `opciones` y `respuesta`. +2. Muestra la pregunta y permite al usuario responder. +3. Indica si la respuesta fue correcta o no. +""" +class Pregunta: + def __init__(self, enunciado, opciones, respuesta): + self.enunciado = enunciado + self.opciones = opciones + self.respuesta = respuesta + + def mostrar(self) -> None: + print(self.enunciado) + numeros = range(1, len(self.opciones)+1) + for numero, opcion in zip(numeros, self.opciones): + print(f" {numero}. {opcion}") + + def preguntar(self) -> bool: + self.mostrar() + respuesta_usuario = int(input("Tu respuesta (1,2,3....): ")) + if respuesta_usuario == self.respuesta: + print("¡Correcto!") + return True + else: + print(f"Incorrecto. La respuesta correcta era {self.respuesta}.") + return False + +if __name__ == "__main__": + #Ejercicio 1 + cuenta = CuentaBancaria("Armando Lopez", "1700098563", 100.0) + cuenta.depositar(150.0) + cuenta.retirar(75.0) + print(f"Saldo actual: {cuenta.consultar_saldo()}") + #El ejericicio 2 ya se ejecuta sin llamarlo + # Ejercicio 3 + q = Pregunta( + "¿Cuál es la capital de Ecuador?", + ["Madrid", "Berlín", "Quito", "Roma"], + 3 + ) + q.preguntar() \ No newline at end of file From 7b488df094198b8a1b6e85d39a8ff33d2378716f Mon Sep 17 00:00:00 2001 From: FreakJazz Date: Thu, 10 Jul 2025 11:59:56 -0500 Subject: [PATCH 26/95] add readme clase 1 clase2 --- clase1/readme.md | 34 +++++++++++++++++++++++++++++++ clase2/readme.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 clase1/readme.md create mode 100644 clase2/readme.md diff --git a/clase1/readme.md b/clase1/readme.md new file mode 100644 index 0000000..938f0cc --- /dev/null +++ b/clase1/readme.md @@ -0,0 +1,34 @@ +# Clase 1 – Fundamentos de Python + +## 🎯 Objetivo: +Aplicar estructuras básicas de programación en Python: variables, condicionales, bucles y funciones. + +--- + +## 📋 Instrucciones: + +1. Realiza un *fork* del repositorio principal del curso a tu cuenta personal de GitHub. +2. Clona tu fork. +3. Crea un archivo con tu nombre: nombre_apellido.py. +4. Resuelve los ejercicios de abajo. +5. Haz commit, push y un Pull Request con el título:\ + *"Clase 1 - TuNombre TuApellido"* + +--- + +## 🧪 Ejercicio 1: Números primos + +Crea un programa que solicite al usuario un número n y muestre todos los números primos del 1 al n. + +### 💡 Sugerencia: +Usa una función es_primo() para verificar si un número es primo. + +--- + +## 🧪 Ejercicio 2: Menú interactivo + +Crea un menú con al menos 3 opciones usando if y elif: + +- Mostrar una frase motivacional. +- Mostrar la fecha actual. +- Salir del programa. \ No newline at end of file diff --git a/clase2/readme.md b/clase2/readme.md new file mode 100644 index 0000000..560b1aa --- /dev/null +++ b/clase2/readme.md @@ -0,0 +1,53 @@ +# Clase 2 – Estructuras y POO + +## 🎯 Objetivo: +Aplicar estructuras de datos y Programación Orientada a Objetos para crear una trivia interactiva. + +--- + +## 📋 Instrucciones: + +1. Usa el repositorio que ya forkeaste. +2. Crea un archivo nombre_apellido.py en la carpeta clase_2. +3. Resuelve los ejercicios. +4. Haz commit, push y un Pull Request con el título:\ + *"Clase 2 - TuNombre TuApellido"* + +--- + +## 🧪 Ejercicio 1: Objetos + + + +Crea: +- El objeto que definiste en clase y realiza operaciones con el. +- Explicar que es el objeto que hace y el proque de la elección + +--- +# Como documentar en python para el deber +""" +Celular: +- Marca +- Modelo +- Año +- Color +Metodos: +- Llamar +- Enviar mensaje +""" + +## 🧪 Ejercicio 2: Listas y diccionarios + +Crea: +- Una lista con tus 3 películas favoritas. +- Un diccionario con tu nombre, genero, año. +- Imprime las operaciones. + +--- + +## 🧪 Ejercicio 3: Trivia con POO + +1. Crea una clase Pregunta con enunciado, opciones y respuesta. +numero = int(input("Ingrese número: ")) +2. Muestra la pregunta y permite al usuario responder. +3. Indica si la respuesta fue correcta o no. \ No newline at end of file From b55424e66543ef8a86037a651079bfb5e5934151 Mon Sep 17 00:00:00 2001 From: Belen Villavicencio Date: Thu, 10 Jul 2025 13:10:17 -0500 Subject: [PATCH 27/95] Clase 2 - Belen Villavicencio --- clase2/Villavicencio_Belen.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 clase2/Villavicencio_Belen.py diff --git a/clase2/Villavicencio_Belen.py b/clase2/Villavicencio_Belen.py new file mode 100644 index 0000000..249ea39 --- /dev/null +++ b/clase2/Villavicencio_Belen.py @@ -0,0 +1,31 @@ +# Clase que representa un celular +class Celular: + def __init__(self, marca, modelo, año, color): + """Constructor del objeto celular.""" + self.marca = marca + self.modelo = modelo + self.año = año + self.color = color + + def llamar(self, numero): + """Simula una llamada a un número.""" + print(f"Llamando al {numero} desde un {self.marca} {self.modelo}...") + + def enviar_mensaje(self, numero, mensaje): + """Simula el envío de un mensaje a un número.""" + print(f"Enviando mensaje a {numero}: {mensaje}") + + +# Crear una instancia (objeto) de la clase Celular +mi_celular = Celular("Apple", "iPhone 13", 2021, "Negro") + +# Operaciones con el objeto +mi_celular.llamar("0987654321") +mi_celular.enviar_mensaje("0987654321", "Hola, ¿cómo estás?") + +# Explicación del objeto +""" +Este objeto representa un celular. Lo elegí porque es un dispositivo con el que interactuamos a diario. +Tiene atributos como marca, modelo, año y color, y puede realizar acciones como llamar y enviar mensajes. +Esto muestra cómo en POO los objetos agrupan datos y funciones relacionados. +""" From a8fccc0e0c3564a1a28519f9c07e2c69675fdbb8 Mon Sep 17 00:00:00 2001 From: Belen Villavicencio Date: Thu, 10 Jul 2025 13:33:28 -0500 Subject: [PATCH 28/95] Clase 2 - Belen Villavicencio --- clase2/Villavicencio_Belen.py | 56 ++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/clase2/Villavicencio_Belen.py b/clase2/Villavicencio_Belen.py index 249ea39..493e2e2 100644 --- a/clase2/Villavicencio_Belen.py +++ b/clase2/Villavicencio_Belen.py @@ -23,9 +23,63 @@ def enviar_mensaje(self, numero, mensaje): mi_celular.llamar("0987654321") mi_celular.enviar_mensaje("0987654321", "Hola, ¿cómo estás?") -# Explicación del objeto """ Este objeto representa un celular. Lo elegí porque es un dispositivo con el que interactuamos a diario. Tiene atributos como marca, modelo, año y color, y puede realizar acciones como llamar y enviar mensajes. Esto muestra cómo en POO los objetos agrupan datos y funciones relacionados. """ + +# EJERCICIO 2 Explicación del objeto + +peliculas_favoritas = ["Interestelar", "El Origen", "Matrix"] + +mis_datos = { + "nombre": "Belén", + "genero": "Femenino", + "año": 2025 +} + +print("🎬 Mis películas favoritas son:", peliculas_favoritas) + +for peli in peliculas_favoritas: + print("👉", peli) + +print("📄 Mis datos personales son:", mis_datos) + +print("👤 Nombre:", mis_datos["nombre"]) +print("♀️ Género:", mis_datos["genero"]) +print("📅 Año:", mis_datos["año"]) + +# EJERCICIO 3 Clase que representa una pregunta de trivia +class Pregunta: + def __init__(self, enunciado, opciones, respuesta): + self.enunciado = enunciado + self.opciones = opciones + self.respuesta = respuesta + + def mostrar(self): + print("\n🧠 Pregunta:") + print(self.enunciado) + for i, opcion in enumerate(self.opciones, 1): + print(f"{i}. {opcion}") + + def verificar_respuesta(self, eleccion_usuario): + if self.opciones[eleccion_usuario - 1].lower() == self.respuesta.lower(): + print("✅ ¡Respuesta correcta!") + else: + print("❌ Respuesta incorrecta. La correcta era:", self.respuesta) + + +# Crear una instancia de la clase Pregunta +pregunta1 = Pregunta( + "¿Cuál es el lenguaje de programación que estás aprendiendo?", + ["Java", "Python", "C++", "JavaScript"], + "Python" +) + +# Mostrar la pregunta y pedir respuesta al usuario +pregunta1.mostrar() +eleccion = int(input("Elige una opción (1-4): ")) + +# Verificar la respuesta del usuario +pregunta1.verificar_respuesta(eleccion) From bbbd8de8426575bbea4217fb04633cdd8f1611b3 Mon Sep 17 00:00:00 2001 From: cboderot1 Date: Thu, 10 Jul 2025 15:03:47 -0500 Subject: [PATCH 29/95] Create carlos_bodero.py Ejercicios clase 2 --- clase2/carlos_bodero.py | 128 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 clase2/carlos_bodero.py diff --git a/clase2/carlos_bodero.py b/clase2/carlos_bodero.py new file mode 100644 index 0000000..734a491 --- /dev/null +++ b/clase2/carlos_bodero.py @@ -0,0 +1,128 @@ +#Clase 2 ejercios ,2 y 3 +#Ejercicio 1 +""" Celular: +Propiedades: + Marca --> define la marca o fabricante del dispositivo + Modelo --> el modelo del dispositivo + Año --> el año de fabricación + Color --> el color del dispositivo +Metodos: + Llamar --> realiza una llamada + Enviar mensaje --> enviar mensaje de texto a un número de teléfono + Tomar_foto --> toma una fotografía + Escuchar_Musica --> abre la aplicación para escuchar música + Ver_Video --> abre la aplicación para ver un video +""" + +class Celular: + def __init__(self): + self.marca = "" + self.modelo = "" + self.anio = "" + self.color = "" + + def __init__(self,marca,modelo,anio,color): + self.marca = marca + self.modelo = modelo + self.anio = anio + self.color = color + + def mostrarInfo(self): + print(f"Marca: {self.marca} Modelo: {self.modelo} Año: {self.anio} Color: {self.color}") + + def llamar(self,numero): + print(f"Lamando {numero}....") + + def enviarMensaje(self,numero,mensaje): + print(f"Enviado el mensaje :{mensaje}\nDestino: {numero}") + + def tomarFoto(self): + print(f"El celular {self.modelo} está tomando foto") + + def escucharMusica(self): + print(f"El celular {self.modelo} está utilizando una app para reproducir música ") + + def verVideo(self): + print(f"El celular {self.modelo} esta mostrando video desde una app") + +# clase para ejercicio 3 trivia con POO +class Pregunta: + opciones = [] + def __init__(self,pregunta,respuesta,opciones): + self.pregunta = pregunta + self.opciones = list(opciones) + self.respuesta = respuesta + + def mostrarPregunta(self): + print(f" {self.pregunta} : ") + indice = 1 + for opcion in self.opciones: + print(f" {indice} {opcion}") + indice += 1 + + def validarRespuesta(self,respuestaUsuario): + if self.respuesta == respuestaUsuario: + return True + else: + return False + + + + + + + +if __name__ == "__main__": + print("Ejercicio 1: Probando objeto...") + eltelefono = Celular("Samsung","A11","2023","blanco") + eltelefono.mostrarInfo() + eltelefono.color = "Azul" + eltelefono.mostrarInfo() + eltelefono.llamar("0983334678") + eltelefono.enviarMensaje("mensaje de prueba","0999243659") + eltelefono.escucharMusica() + eltelefono.tomarFoto() + eltelefono.verVideo() + print("-"*50) + + print("Ejercicio 2 Listas y Diccionarios") + + infoPelicula1 = {"Nombre":"Amelie","genero":"drama","Anio":2000} + infoPelicula2 = {"Nombre":"Caída del Halcón Negro","genero":"bélico","Anio":2001} + infoPelicula3 = {"Nombre":"Batman","genero":"accion","Anio":2020} + + Listado = [infoPelicula1,infoPelicula2,infoPelicula3] + + for pelicula in Listado: + print(pelicula) + + infoPelicula3["genero"]="super heroes" + infoPelicula3["Anio"] = 2021 + + infoPelicula4 = {"Nombre":"El origen","genero":"accion","Anio":2011} + + Listado.append(infoPelicula4) + Listado.remove(infoPelicula1) + + print("Después de realizar operaciones") + + for pelicula in Listado: + print(pelicula) + + print("-"*50) + print("Ejercicio 3 Trivia con POO") + pregunta1 = Pregunta("Cuál es la capital de Ecuador",3,["Ambato","Cuenca","Quito","Manta"]) + + pregunta1.mostrarPregunta() + + respuestaU = int(input("Su respuesta es (ingrese el número correspondiente):")) + + if pregunta1.validarRespuesta(respuestaU): + print("Respuesta correcta") + else: + print("Respuesta Incorrecta") + + + + + From 483d7d5f074888e82273527444b9c2653fc481d0 Mon Sep 17 00:00:00 2001 From: cboderot1 Date: Thu, 10 Jul 2025 16:41:59 -0500 Subject: [PATCH 30/95] Add files via upload --- clase3/carlos_bodero/chiste/app.py | 23 +++++++++++++++++++ .../carlos_bodero/chiste/templates/index.html | 21 +++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 clase3/carlos_bodero/chiste/app.py create mode 100644 clase3/carlos_bodero/chiste/templates/index.html diff --git a/clase3/carlos_bodero/chiste/app.py b/clase3/carlos_bodero/chiste/app.py new file mode 100644 index 0000000..63c6ed1 --- /dev/null +++ b/clase3/carlos_bodero/chiste/app.py @@ -0,0 +1,23 @@ +from flask import Flask, render_template,jsonify +import requests + +app = Flask(__name__) + +@app.route("/") +def index(): + return render_template("index.html") + +@app.route("/joke") +def joke(): + response = requests.get("https://official-joke-api.appspot.com/jokes/random") + if response.status_code == 200: + data = response.json() + chiste = f"{data['setup']} {data['punchline']}" + else: + chiste = "No hay chiste" + + return jsonify({"joke":chiste}) + + +if __name__ == "__main__": + app.run(debug=True) \ No newline at end of file diff --git a/clase3/carlos_bodero/chiste/templates/index.html b/clase3/carlos_bodero/chiste/templates/index.html new file mode 100644 index 0000000..3b2b8fc --- /dev/null +++ b/clase3/carlos_bodero/chiste/templates/index.html @@ -0,0 +1,21 @@ + + + + + Chistes Flask + + + +

Bienvenido

+ +
+ +
+ + From 62673f7452960fa1c657e5e12c04acb2ae1de10e Mon Sep 17 00:00:00 2001 From: cboderot1 Date: Thu, 10 Jul 2025 16:49:27 -0500 Subject: [PATCH 31/95] Add files via upload --- clase3/carlos_bodero/pokemon/app.py | 1 + 1 file changed, 1 insertion(+) create mode 100644 clase3/carlos_bodero/pokemon/app.py diff --git a/clase3/carlos_bodero/pokemon/app.py b/clase3/carlos_bodero/pokemon/app.py new file mode 100644 index 0000000..ac4632f --- /dev/null +++ b/clase3/carlos_bodero/pokemon/app.py @@ -0,0 +1 @@ +#api pokemon pendiente \ No newline at end of file From 78b451fc0db9f6df4562538aa5150387aff106a8 Mon Sep 17 00:00:00 2001 From: cboderot1 Date: Thu, 10 Jul 2025 16:59:38 -0500 Subject: [PATCH 32/95] Update app.py --- clase3/carlos_bodero/pokemon/app.py | 39 ++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/clase3/carlos_bodero/pokemon/app.py b/clase3/carlos_bodero/pokemon/app.py index ac4632f..3d37d33 100644 --- a/clase3/carlos_bodero/pokemon/app.py +++ b/clase3/carlos_bodero/pokemon/app.py @@ -1 +1,38 @@ -#api pokemon pendiente \ No newline at end of file +#api pokemon +import random +import requests +from flask import Flask, render_template, request + +app = Flask(__name__) + +POKEAPI_URL = "https://pokeapi.co/api/v2/pokemon/" + +def get_pokemon_data(poke_id): + res = requests.get(f"{POKEAPI_URL}{poke_id}") + if res.status_code != 200: + return None + data = res.json() + return { + "id": data["id"], + "name": data["name"].capitalize(), + "image": data["sprites"]["front_default"], + "height": data["height"], + "weight": data["weight"], + "types": ", ".join(t["type"]["name"] for t in data["types"]), + "base_experience": data["base_experience"], + "abilities": ", ".join(a["ability"]["name"] for a in data["abilities"]), + "hp": data["stats"][0]["base_stat"], + "attack": data["stats"][1]["base_stat"], + "defense": data["stats"][2]["base_stat"], + } + +@app.route("/", methods=["GET", "POST"]) +def index(): + pokemons = [] + if request.method == "POST": + ids = random.sample(range(1, 151), 9) + pokemons = [get_pokemon_data(poke_id) for poke_id in ids if get_pokemon_data(poke_id)] + return render_template("index.html", pokemons=pokemons) + +if __name__ == "__main__": + app.run(debug=True) From e5dae18d3693bd7dd5c0a8cce277dfe1c072989f Mon Sep 17 00:00:00 2001 From: cboderot1 Date: Thu, 10 Jul 2025 17:00:59 -0500 Subject: [PATCH 33/95] Add files via upload --- .../carlos_bodero/pokemon/static/styles.css | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 clase3/carlos_bodero/pokemon/static/styles.css diff --git a/clase3/carlos_bodero/pokemon/static/styles.css b/clase3/carlos_bodero/pokemon/static/styles.css new file mode 100644 index 0000000..b16b95a --- /dev/null +++ b/clase3/carlos_bodero/pokemon/static/styles.css @@ -0,0 +1,40 @@ +body { + font-family: Arial, sans-serif; + text-align: center; + background-color: #f1f1f1; +} + +h1 { + margin-top: 20px; + color: #e60026; +} + +form { + margin: 20px; +} + +.grid { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 20px; +} + +.card { + background-color: white; + border-radius: 10px; + box-shadow: 0 0 8px rgba(0,0,0,0.2); + padding: 15px; + width: 250px; +} + +.card img { + width: 120px; + height: 120px; +} + +ul { + list-style-type: none; + padding: 0; + text-align: left; +} From f79708d26ef67be6853cf945bdf5a1773ef5b178 Mon Sep 17 00:00:00 2001 From: cboderot1 Date: Thu, 10 Jul 2025 17:01:39 -0500 Subject: [PATCH 34/95] Add files via upload --- .../pokemon/templates/index.html | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 clase3/carlos_bodero/pokemon/templates/index.html diff --git a/clase3/carlos_bodero/pokemon/templates/index.html b/clase3/carlos_bodero/pokemon/templates/index.html new file mode 100644 index 0000000..24d11b6 --- /dev/null +++ b/clase3/carlos_bodero/pokemon/templates/index.html @@ -0,0 +1,34 @@ + + + + + Pokedesk + + + +

Pokedesk

+
+ +
+ +
+ {% for p in pokemons %} +
+ {{ p.name }} +

{{ p.name }}

+
    +
  • ID: {{ p.id }}
  • +
  • Tipo: {{ p.types }}
  • +
  • Altura: {{ p.height }}
  • +
  • Peso: {{ p.weight }}
  • +
  • Experiencia: {{ p.base_experience }}
  • +
  • Habilidad(es): {{ p.abilities }}
  • +
  • HP: {{ p.hp }}
  • +
  • Ataque: {{ p.attack }}
  • +
  • Defensa: {{ p.defense }}
  • +
+
+ {% endfor %} +
+ + From a6ba35d32add9ccc4820d9ea2051a5b967c9fc46 Mon Sep 17 00:00:00 2001 From: Jhopabyu Date: Thu, 10 Jul 2025 17:12:43 -0500 Subject: [PATCH 35/95] deber numero 2 --- clase2/pablo_colcha.py | 97 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 clase2/pablo_colcha.py diff --git a/clase2/pablo_colcha.py b/clase2/pablo_colcha.py new file mode 100644 index 0000000..681ab09 --- /dev/null +++ b/clase2/pablo_colcha.py @@ -0,0 +1,97 @@ +"""Crea: +- El objeto que definiste en clase y realiza operaciones con el. +- Explicar que es el objeto que hace y el proque de la elección""" + + +class Celular: + + def __init__(self, marca, modelo, anio, color): + self.marca = marca + self.modelo = modelo + self.anio = anio + self.color = color + + def llamar(self, numero): + print(f"Llamando al número {numero} desde un {self.marca} {self.modelo}...") + + def enviar_mensaje(self, numero, mensaje): + print(f"Enviando mensaje a {numero}: {mensaje}") + + +# Crear objeto celular +mi_celular = Celular("Samsung", "Galaxy S22", 2022, "Negro") + +# Operaciones con el objeto +mi_celular.llamar("0998765432") +mi_celular.enviar_mensaje("0998765432", "Hola, ¿cómo estás?") + +"""Ejercicio 2: Listas y diccionarios + +Crea: +- Una lista con tus 3 películas favoritas. +- Un diccionario con tu nombre, genero, año. +- Imprime las operaciones.""" + + +# 🎬 Lista de 3 películas favoritas, cada una como un diccionario +peliculas_favoritas = [ + {"nombre": "El señor de los anillos", "genero": "Fantasía", "año": 2001}, + {"nombre": "Avatar", "genero": "Ciencia ficción", "año": 2009}, + {"nombre": "Inception", "genero": "Acción / Ciencia ficción", "año": 2010} +] + +# 🔹 Imprimir cada película con su información +print("🎬 Información de mis 3 películas favoritas:\n") +for pelicula in peliculas_favoritas: + print(f"Nombre: {pelicula['nombre']}") + print(f"Género: {pelicula['genero']}") + print(f"Año: {pelicula['año']}") + print("-" * 30) # línea separadora + + +""" Ejercicio 3: Trivia con POO + +1. Crea una clase `Pregunta` con `enunciado`, `opciones` y `respuesta`. +numero = int(input("Ingrese número: ")) +2. Muestra la pregunta y permite al usuario responder. +3. Indica si la respuesta fue correcta o no.""" + + +class Pregunta: + + def __init__(self, enunciado, opciones, respuesta): + self.enunciado = enunciado + self.opciones = opciones + self.respuesta = respuesta + + def mostrar(self): + print("\n🧠 Pregunta:") + print(self.enunciado) + for i, opcion in enumerate(self.opciones): + print(f"{i + 1}. {opcion}") + + def verificar(self, eleccion_usuario): + return eleccion_usuario - 1 == self.respuesta + + +# Crear una pregunta +pregunta1 = Pregunta( + "¿A qué altitud se encuentra Quito?", + ["1000", "2850", "500", "4000"], + 1 # 2850 es la respuesta correcta (índice 1) +) + +# Mostrar la pregunta +pregunta1.mostrar() + +# Solicitar respuesta del usuario +try: + numero = int(input("Ingrese el número de su respuesta: ")) + if pregunta1.verificar(numero): + print("✅ ¡Respuesta correcta!") + else: + print("❌ Respuesta incorrecta.") +except ValueError: + print("⚠️ Entrada no válida. Debes ingresar un número.") + + From ad4493dedea91dfe5af8fa3409d751eea2dbbb50 Mon Sep 17 00:00:00 2001 From: Jhopabyu Date: Thu, 10 Jul 2025 17:15:25 -0500 Subject: [PATCH 36/95] deber 2 --- clase2/pablo_colcha.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clase2/pablo_colcha.py b/clase2/pablo_colcha.py index 681ab09..f3ba2e8 100644 --- a/clase2/pablo_colcha.py +++ b/clase2/pablo_colcha.py @@ -1,4 +1,4 @@ -"""Crea: +""" Crea: - El objeto que definiste en clase y realiza operaciones con el. - Explicar que es el objeto que hace y el proque de la elección""" From 144da0c2db6ab590c4cb3b0e6019fe8df19cb0ca Mon Sep 17 00:00:00 2001 From: wrnunezz Date: Thu, 10 Jul 2025 17:26:27 -0500 Subject: [PATCH 37/95] Entrega Clase1 y clase 2 Walter N --- clase1/walter_nunez.py | 61 +++++++++++++++++++ "clase2/walter_nu\303\261ez.py" | 102 ++++++++++++++++++++++++++++++++ 2 files changed, 163 insertions(+) create mode 100644 clase1/walter_nunez.py create mode 100644 "clase2/walter_nu\303\261ez.py" diff --git a/clase1/walter_nunez.py b/clase1/walter_nunez.py new file mode 100644 index 0000000..fda22f1 --- /dev/null +++ b/clase1/walter_nunez.py @@ -0,0 +1,61 @@ +import datetime + +def es_primo(numero): + if numero < 2: + return False + for i in range(2, int(numero**0.5) + 1): + if numero % i == 0: + return False + return True + +def ejercicio_1(): + try: + n = int(input("Ingrese un número: ")) + print(f"Números primos del 1 al {n}:") + for i in range(1, n + 1): + if es_primo(i): + print(i, end=" ") + print("\n") # Salto de línea final + except ValueError: + print("Por favor, ingrese un número válido.\n") + +def ejercicio_2(): + while True: + print("\n--- MENÚ EJERCICIO 2 ---") + print("1. Mostrar una frase motivacional") + print("2. Mostrar la fecha actual") + print("3. Volver al menú principal") + + opcion = input("Elige una opción (1-3): ") + + if opcion == "1": + print(" ¡Sigue adelante, lo mejor está por venir!") + elif opcion == "2": + fecha_actual = datetime.datetime.now() + print("Fecha actual:", fecha_actual.strftime("%Y-%m-%d %H:%M:%S")) + elif opcion == "3": + break + else: + print(" Opción no válida. Intenta de nuevo.") + +def menu_principal(): + while True: + print("\n=== MENÚ PRINCIPAL ===") + print("1. Ejecutar Ejercicio 1: Números primos") + print("2. Ejecutar Ejercicio 2: Menú interactivo") + print("3. Salir") + + opcion = input("Selecciona una opción (1-3): ") + + if opcion == "1": + ejercicio_1() + elif opcion == "2": + ejercicio_2() + elif opcion == "3": + print(" ¡Programa finalizado!") + break + else: + print("Opción no válida. Intenta de nuevo.") + +if __name__ == "__main__": + menu_principal() diff --git "a/clase2/walter_nu\303\261ez.py" "b/clase2/walter_nu\303\261ez.py" new file mode 100644 index 0000000..f2c7171 --- /dev/null +++ "b/clase2/walter_nu\303\261ez.py" @@ -0,0 +1,102 @@ +# 📱 Ejercicio 1: Objetos +class Celular: + """ + Clase Celular: + - Atributos: + - marca + - modelo + - año + - color + - Métodos: + - llamar() + - enviar_mensaje() + """ + def __init__(self, marca, modelo, año, color): + self.marca = marca + self.modelo = modelo + self.año = año + self.color = color + + def llamar(self, numero): + print(f"Llamando al número {numero} desde un {self.marca} {self.modelo}...") + + def enviar_mensaje(self, numero, mensaje): + print(f"Enviando mensaje a {numero}: '{mensaje}'") + +def ejercicio_1(): + mi_celular = Celular("Samsung", "Galaxy S22", 2022, "Negro") + mi_celular.llamar("0999999999") + mi_celular.enviar_mensaje("0999999999", "Hola, ¿cómo estás?") + print("Este objeto representa un celular moderno con métodos para llamar y enviar mensajes.") + + +# 🎬 Ejercicio 2: Listas y Diccionarios +def ejercicio_2(): + peliculas = ["Inception", "Interestelar", "Matrix"] + persona = { + "nombre": "Walter", + "genero": "Masculino", + "año": 2025 + } + + print("Mis películas favoritas son:") + for pelicula in peliculas: + print("-", pelicula) + + print("\nDatos personales:") + for clave, valor in persona.items(): + print(f"{clave.capitalize()}: {valor}") + + +# ❓ Ejercicio 3: Trivia con POO +class Pregunta: + def __init__(self, enunciado, opciones, respuesta): + self.enunciado = enunciado + self.opciones = opciones + self.respuesta = respuesta + + def mostrar(self): + print("\n🧠 Pregunta:") + print(self.enunciado) + for i, opcion in enumerate(self.opciones, 1): + print(f"{i}. {opcion}") + + def verificar_respuesta(self, eleccion_usuario): + if self.opciones[eleccion_usuario - 1].lower() == self.respuesta.lower(): + print("✅ ¡Respuesta correcta!") + else: + print(f"❌ Respuesta incorrecta. La correcta era: {self.respuesta}") + +def ejercicio_3(): + pregunta = Pregunta( + "¿Cuál es el lenguaje de programación más popular en 2025?", + ["Python", "Java", "C++", "JavaScript"], + "Python" + ) + pregunta.mostrar() + try: + eleccion = int(input("Elige una opción (1-4): ")) + if 1 <= eleccion <= 4: + pregunta.verificar_respuesta(eleccion) + else: + print("Opción fuera de rango.") + except ValueError: + print("Entrada no válida. Debe ser un número.") + + +# Menú principal +if __name__ == "__main__": + print("\n📋 MENÚ DE EJERCICIOS") + print("1. Ejercicio de Objeto (Celular)") + print("2. Ejercicio de Listas y Diccionarios") + print("3. Ejercicio de Trivia con POO") + opcion = input("Elige una opción (1-3): ") + + if opcion == "1": + ejercicio_1() + elif opcion == "2": + ejercicio_2() + elif opcion == "3": + ejercicio_3() + else: + print(" Opción inválida.") From e5e0d85c244a81fe2762a7289cb5de13ea704f1a Mon Sep 17 00:00:00 2001 From: Jorge Date: Thu, 10 Jul 2025 17:59:06 -0500 Subject: [PATCH 38/95] clase_1_Jorge_Guato --- clase1/jorge_guato.py | 49 ++++++++++ clase2/jorge_guato.py | 216 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 265 insertions(+) create mode 100644 clase1/jorge_guato.py create mode 100644 clase2/jorge_guato.py diff --git a/clase1/jorge_guato.py b/clase1/jorge_guato.py new file mode 100644 index 0000000..d501d33 --- /dev/null +++ b/clase1/jorge_guato.py @@ -0,0 +1,49 @@ +# Ejercicio 1: Números primos +def es_primo(numero): + if numero < 2: + return False + for i in range(2, int(numero**0.5) + 1): + if numero % i == 0: + return False + return True + +def ejercicio1(): + n = int(input("Ingresa un número: ")) + print(f"Números primos del 1 al {n}:") + for num in range(1, n + 1): + if es_primo(num): + print(num, end=" ") + print() + +# Ejercicio 2: Menú interactivo +def ejercicio2(): + print("\n--- MENÚ INTERACTIVO ---") + while True: + print("\n1. Mostrar frase motivacional") + print("2. Mostrar fecha actual") + print("3. Salir") + + opcion = input("Selecciona una opción: ") + + if opcion == "1": + print("¡Hoy es un gran día para lograr tus metas!") + elif opcion == "2": + from datetime import datetime + fecha = datetime.now() + print(f"Fecha actual: {fecha.strftime('%d/%m/%Y %H:%M:%S')}") + elif opcion == "3": + print("¡Hasta pronto!") + break + else: + print("Opción no válida") + +def main(): + print("EJERCICIO 1 - NÚMEROS PRIMOS") + ejercicio1() + + print("\nEJERCICIO 2 - MENÚ INTERACTIVO") + ejercicio2() + +if __name__ == "__main__": + main() + print("¡Programa terminado!") \ No newline at end of file diff --git a/clase2/jorge_guato.py b/clase2/jorge_guato.py new file mode 100644 index 0000000..e200360 --- /dev/null +++ b/clase2/jorge_guato.py @@ -0,0 +1,216 @@ +# Ejercicio 1: Objetos - Libro +class Libro: + """ + Clase Libro que representa un libro con sus características básicas. + + Atributos: + - titulo: Nombre del libro + - autor: Autor del libro + - año: Año de publicación + - genero: Género literario + - paginas: Número de páginas + - leido: Estado de lectura (True/False) + + Métodos: + - leer(): Marca el libro como leído + - obtener_info(): Muestra información del libro + - es_clasico(): Determina si es un libro clásico (más de 50 años) + """ + + def __init__(self, titulo, autor, año, genero, paginas): + self.titulo = titulo + self.autor = autor + self.año = año + self.genero = genero + self.paginas = paginas + self.leido = False + + def leer(self): + """Marca el libro como leído""" + self.leido = True + print(f"Has terminado de leer '{self.titulo}'") + + def obtener_info(self): + """Muestra la información completa del libro""" + estado = "Leído" if self.leido else "No leído" + return f""" + Título: {self.titulo} + Autor: {self.autor} + Año: {self.año} + Género: {self.genero} + Páginas: {self.paginas} + Estado: {estado} + """ + + def es_clasico(self): + """Determina si el libro es clásico (más de 50 años)""" + from datetime import datetime + año_actual = datetime.now().year + return (año_actual - self.año) > 50 + +def ejercicio1(): + """Ejercicio 1: Crear y usar objetos Libro""" + print("=" * 50) + print("EJERCICIO 1: OBJETOS - LIBRO") + print("=" * 50) + + # Crear objetos libro + libro1 = Libro("Cien años de soledad", "Gabriel García Márquez", 1967, "Realismo mágico", 432) + libro2 = Libro("1984", "George Orwell", 1949, "Distopía", 328) + libro3 = Libro("El Principito", "Antoine de Saint-Exupéry", 1943, "Infantil", 96) + + # Realizar operaciones + print("Información inicial de los libros:") + print(libro1.obtener_info()) + print(libro2.obtener_info()) + print(libro3.obtener_info()) + + # Leer algunos libros + libro1.leer() + libro3.leer() + + # Verificar si son clásicos + print(f"\n¿'{libro1.titulo}' es clásico? {libro1.es_clasico()}") + print(f"¿'{libro2.titulo}' es clásico? {libro2.es_clasico()}") + print(f"¿'{libro3.titulo}' es clásico? {libro3.es_clasico()}") + + print("\n**Explicación del objeto Libro:**") + print("Elegí el objeto Libro porque es fácil de entender y útil para gestionar una biblioteca personal.") + print("Permite almacenar información importante como título, autor, año, género y páginas.") + print("Los métodos permiten interactuar con el libro: marcarlo como leído, obtener información y verificar si es clásico.") + +def ejercicio2(): + """Ejercicio 2: Listas y diccionarios""" + print("\n" + "=" * 50) + print("EJERCICIO 2: LISTAS Y DICCIONARIOS") + print("=" * 50) + + # Lista con 3 películas favoritas + peliculas_favoritas = ["El Padrino", "Pulp Fiction", "Forrest Gump"] + + # Diccionario con información personal + informacion_personal = { + "nombre": "Jorge", + "genero": "Masculino", + "año": 1984 + } + + # Imprimir operaciones + print("Mis 3 películas favoritas:") + for i, pelicula in enumerate(peliculas_favoritas, 1): + print(f"{i}. {pelicula}") + + print(f"\nPrimera película favorita: {peliculas_favoritas[0]}") + print(f"Última película favorita: {peliculas_favoritas[-1]}") + print(f"Total de películas: {len(peliculas_favoritas)}") + + print("\nInformación personal:") + for clave, valor in informacion_personal.items(): + print(f"{clave.capitalize()}: {valor}") + + print(f"\nNombre: {informacion_personal['nombre']}") + print(f"Edad aproximada: {2024 - informacion_personal['año']} años") + +# Ejercicio 3: Trivia con POO +class Pregunta: + """ + Clase Pregunta para crear preguntas de trivia. + + Atributos: + - enunciado: La pregunta a realizar + - opciones: Lista de opciones posibles + - respuesta: Número de la opción correcta (1-4) + """ + + def __init__(self, enunciado, opciones, respuesta): + self.enunciado = enunciado + self.opciones = opciones + self.respuesta = respuesta + + def mostrar_pregunta(self): + """Muestra la pregunta y sus opciones""" + print(f"\n{self.enunciado}") + for i, opcion in enumerate(self.opciones, 1): + print(f"{i}. {opcion}") + + def verificar_respuesta(self, respuesta_usuario): + """Verifica si la respuesta del usuario es correcta""" + return respuesta_usuario == self.respuesta + +def ejercicio3(): + """Ejercicio 3: Trivia con POO""" + print("\n" + "=" * 50) + print("EJERCICIO 3: TRIVIA CON POO") + print("=" * 50) + + # Crear preguntas de trivia + preguntas = [ + Pregunta( + "¿Cuál es la capital de Ecuador?", + ["Guayaquil", "Quito", "Cuenca", "Ambato"], + 2 + ), + Pregunta( + "¿En qué año se fundó Python?", + ["1989", "1991", "1995", "2000"], + 2 + ), + Pregunta( + "¿Cuál es el planeta más grande del sistema solar?", + ["Tierra", "Marte", "Júpiter", "Saturno"], + 3 + ) + ] + + puntuacion = 0 + total_preguntas = len(preguntas) + + print("¡Bienvenido a la trivia!") + print(f"Responde las siguientes {total_preguntas} preguntas:") + + for i, pregunta in enumerate(preguntas, 1): + print(f"\nPregunta {i}:") + pregunta.mostrar_pregunta() + + try: + respuesta = int(input("Tu respuesta (1-4): ")) + if 1 <= respuesta <= 4: + if pregunta.verificar_respuesta(respuesta): + print("¡Correcto! ✓") + puntuacion += 1 + else: + print(f"Incorrecto. La respuesta correcta era: {pregunta.respuesta}") + else: + print("Opción inválida. Se considera incorrecta.") + except ValueError: + print("Por favor, ingresa un número del 1 al 4.") + + print(f"\n¡Trivia terminada!") + print(f"Puntuación final: {puntuacion}/{total_preguntas}") + if puntuacion == total_preguntas: + print("¡Excelente! Respondiste todas correctamente.") + elif puntuacion >= total_preguntas // 2: + print("¡Bien hecho! Tienes un buen conocimiento.") + else: + print("Sigue estudiando, puedes mejorar.") + +def main(): + """Función principal que ejecuta todos los ejercicios""" + print("🎯 PROGRAMA DE EJERCICIOS DE PROGRAMACIÓN") + print("=" * 60) + + # Ejecutar Ejercicio 1: Objetos + ejercicio1() + + # Ejecutar Ejercicio 2: Listas y Diccionarios + ejercicio2() + + # Ejecutar Ejercicio 3: Trivia con POO + ejercicio3() + + print("\n" + "=" * 60) + print("🎉 ¡TODOS LOS EJERCICIOS COMPLETADOS!") + print("=" * 60) + +if __name__ == "__main__": + main() \ No newline at end of file From f0a6ce85a14918e12b53bb5946a9a28ca636d7f6 Mon Sep 17 00:00:00 2001 From: Jorge Date: Thu, 10 Jul 2025 18:01:47 -0500 Subject: [PATCH 39/95] Clase_2_Jorge_Guato --- clase2/jorge_guato.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clase2/jorge_guato.py b/clase2/jorge_guato.py index e200360..62862e5 100644 --- a/clase2/jorge_guato.py +++ b/clase2/jorge_guato.py @@ -213,4 +213,5 @@ def main(): print("=" * 60) if __name__ == "__main__": - main() \ No newline at end of file + main() + print("¡Programa terminado!") \ No newline at end of file From c29705f584f0a290c29460fb3725537e10808587 Mon Sep 17 00:00:00 2001 From: erodriguezgaleas Date: Thu, 10 Jul 2025 18:01:48 -0500 Subject: [PATCH 40/95] Clase 1 - Edwin Rodriguez Galeas --- clase1/edwin_rodriguez.py | 147 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 clase1/edwin_rodriguez.py diff --git a/clase1/edwin_rodriguez.py b/clase1/edwin_rodriguez.py new file mode 100644 index 0000000..cf3cd64 --- /dev/null +++ b/clase1/edwin_rodriguez.py @@ -0,0 +1,147 @@ +import math + +# =============================================================== +# PASO 1: Definir la función que comprueba si un número es primo +# =============================================================== +def es_primo(numero): + """ + Función auxiliar que determina si un número es primo. + Devuelve True si lo es, y False si no lo es. + """ + # Los números menores o iguales a 1 no son considerados primos. + if numero <= 1: + return False + + # El 2 es el único número primo que es par. + if numero == 2: + return True + + # Si el número es par y no es 2, no es primo. + if numero % 2 == 0: + return False + + # Revisamos solo los divisores impares hasta la raíz cuadrada del número. + # Es una optimización clave que acelera mucho el proceso. + limite = int(math.sqrt(numero)) + 1 + for divisor in range(3, limite, 2): # El '2' al final hace que salte de 2 en 2 (3, 5, 7...) + if numero % divisor == 0: + return False # Si encontramos un divisor, ya no es primo. + + # Si el bucle termina sin encontrar divisores, el número es primo. + return True + +# =============================================================== +# PASO 2: Escribir el programa principal que usa la función +# =============================================================== + +# --- Programa Principal --- + +print("--- Buscador de Números Primos --- por Edwin Rodriguez con el apoyo de IA :-)") + +# 1. Solicitar el número al usuario y validarlo +while True: + try: + n_str = input("Introduce un número entero hasta el cual buscar primos: ") + n = int(n_str) + if n >= 2: + break # El número es válido, salimos del bucle. + else: + print("Por favor, introduce un número que sea 2 o mayor.") + except ValueError: + print("Entrada no válida. Debes introducir un número entero.") + +# 2. Crear una lista para almacenar los números primos encontrados +lista_primos_encontrados = [] + +# 3. Recorrer todos los números desde 2 hasta n +print(f"\nBuscando números primos del 1 al {n}...") +for numero_a_evaluar in range(2, n + 1): + + # 4. Llamar a nuestra función para cada número + if es_primo(numero_a_evaluar): + # Si la función devuelve True, añadimos el número a la lista + lista_primos_encontrados.append(numero_a_evaluar) + +# 5. Mostrar el resultado final al usuario +print("\n¡Búsqueda completada!") +print(f"Los números primos encontrados son:") +print(lista_primos_encontrados) + + +# Importamos los módulos necesarios al principio del script. +# - 'random' para elegir una frase al azar. +# - 'datetime' para obtener la fecha actual. +# - 'locale' para mostrar la fecha en español (opcional pero recomendado). +import random +from datetime import date +import locale + +# --- Configuración Inicial (Opcional pero mejora la experiencia) --- +# Intentamos configurar el idioma a español para que la fecha se muestre correctamente. +# Si el sistema no tiene el paquete de idioma 'es_ES.UTF-8', usará el formato por defecto. +try: + # Para sistemas Linux/macOS + locale.setlocale(locale.LC_TIME, 'es_ES.UTF-8') +except locale.Error: + try: + # Para sistemas Windows + locale.setlocale(locale.LC_TIME, 'Spanish') + except locale.Error: + print("Advertencia: No se pudo configurar el idioma a español. La fecha se mostrará en el formato del sistema.") + + +# --- Lista de Frases Motivacionales --- +frases_motivacionales = [ + "El único modo de hacer un gran trabajo es amar lo que haces. - Steve Jobs", + "La vida es 10% lo que te pasa y 90% cómo reaccionas a ello. - Charles R. Swindoll", + "El éxito es la suma de pequeños esfuerzos repetidos día tras día. - Robert Collier", + "Cree que puedes y ya estás a medio camino. - Theodore Roosevelt", + "No esperes. El momento nunca será el adecuado. - Napoleon Hill" +] + + +# --- Bucle Principal del Menú --- +# Usamos un bucle 'while True' para que el menú se muestre repetidamente +# hasta que el usuario elija la opción de salir. +while True: + # 1. Mostrar las opciones del menú al usuario + print("\n" + "="*30) + print(" MENÚ PRINCIPAL USANDO ASISTENTE DE IA ") + print("="*30) + print("1. Mostrar una frase motivacional") + print("2. Mostrar la fecha actual") + print("3. Salir del programa") + print("="*30) + + # 2. Solicitar la elección del usuario + opcion = input("Por favor, elige una opción (1, 2 o 3): ") + + # 3. Procesar la elección usando if/elif/else + if opcion == '1': + # Opción 1: Mostrar frase motivacional + print("\n✨ Frase del día ✨") + frase_elegida = random.choice(frases_motivacionales) + print(f"-> {frase_elegida}") + input("\n(Presiona Enter para volver al menú...)") # Pausa para que el usuario pueda leer + + elif opcion == '2': + # Opción 2: Mostrar la fecha actual + print("\n📅 Fecha Actual 📅") + fecha_de_hoy = date.today() + # Usamos .strftime() para formatear la fecha de una manera legible + # %A: Nombre completo del día de la semana (Lunes) + # %d: Día del mes (01, 31) + # %B: Nombre completo del mes (Enero) + # %Y: Año con 4 dígitos (2023) + print(f"-> Hoy es {fecha_de_hoy.strftime('%A, %d de %B de %Y')}") + input("\n(Presiona Enter para volver al menú...)") # Pausa + + elif opcion == '3': + # Opción 3: Salir del programa + print("\n¡Gracias por usar el programa! ¡Hasta luego! 👋") + break # 'break' rompe el bucle 'while True' y termina el programa + + else: + # Si el usuario introduce algo diferente a '1', '2' o '3' + print("\n❌ Opción no válida. Por favor, introduce un número del 1 al 3.") + input("\n(Presiona Enter para intentarlo de nuevo...)") \ No newline at end of file From 35c15dba662b53273706d370eb1f8bcab27f0aed Mon Sep 17 00:00:00 2001 From: GEORGEP15 Date: Thu, 10 Jul 2025 18:30:23 -0500 Subject: [PATCH 41/95] SUBIR --- clase2/george_penafiel_clase2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clase2/george_penafiel_clase2.py b/clase2/george_penafiel_clase2.py index 549e2d5..c3e814d 100644 --- a/clase2/george_penafiel_clase2.py +++ b/clase2/george_penafiel_clase2.py @@ -1,4 +1,4 @@ -# Clase 2 - GEORGE ANTONIO PEÑAFIEL ALVARADO +# Clase 2 - GEORGE ANTHONY PEÑAFIEL ALVARADO # 🧪 Ejercicio 1: Objetos print("\n--- EJERCICIO 1: OBJETOS ---") From b9bb6f5b7cdcb1fcb36a72dd87e234f9c282db25 Mon Sep 17 00:00:00 2001 From: Jorge Date: Thu, 10 Jul 2025 19:00:49 -0500 Subject: [PATCH 42/95] clase 2 actualizacion --- clase2/jorge_guato.py | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/clase2/jorge_guato.py b/clase2/jorge_guato.py index 62862e5..a3b23bd 100644 --- a/clase2/jorge_guato.py +++ b/clase2/jorge_guato.py @@ -88,11 +88,20 @@ def ejercicio2(): # Lista con 3 películas favoritas peliculas_favoritas = ["El Padrino", "Pulp Fiction", "Forrest Gump"] - # Diccionario con información personal - informacion_personal = { - "nombre": "Jorge", - "genero": "Masculino", - "año": 1984 + # Diccionario con información de cada película (nombre, género, año) + informacion_peliculas = { + "El Padrino": { + "genero": "Drama", + "año": 1972 + }, + "Pulp Fiction": { + "genero": "Crimen", + "año": 1994 + }, + "Forrest Gump": { + "genero": "Drama", + "año": 1994 + } } # Imprimir operaciones @@ -104,12 +113,20 @@ def ejercicio2(): print(f"Última película favorita: {peliculas_favoritas[-1]}") print(f"Total de películas: {len(peliculas_favoritas)}") - print("\nInformación personal:") - for clave, valor in informacion_personal.items(): - print(f"{clave.capitalize()}: {valor}") + print("\nInformación detallada de cada película:") + for pelicula in peliculas_favoritas: + info = informacion_peliculas[pelicula] + print(f"\n🎬 {pelicula}:") + print(f" Género: {info['genero']}") + print(f" Año: {info['año']}") - print(f"\nNombre: {informacion_personal['nombre']}") - print(f"Edad aproximada: {2024 - informacion_personal['año']} años") + print("\nOperaciones con el diccionario:") + print(f"Película más antigua: {min(informacion_peliculas.items(), key=lambda x: x[1]['año'])[0]}") + print(f"Película más reciente: {max(informacion_peliculas.items(), key=lambda x: x[1]['año'])[0]}") + + # Contar géneros + generos = [info['genero'] for info in informacion_peliculas.values()] + print(f"Géneros: {', '.join(set(generos))}") # Ejercicio 3: Trivia con POO class Pregunta: @@ -213,5 +230,4 @@ def main(): print("=" * 60) if __name__ == "__main__": - main() - print("¡Programa terminado!") \ No newline at end of file + main() \ No newline at end of file From 13178d6254429cbd6f9fdae973cba8758c1be03b Mon Sep 17 00:00:00 2001 From: dcuatin94 <112452201+dcuatin94@users.noreply.github.com> Date: Thu, 10 Jul 2025 19:02:17 -0500 Subject: [PATCH 43/95] Tareas corregidas --- clase1/cuatin_daniel.py | 11 ++++++++- clase2/cuatin_daniel.py | 51 ++++++++++++++++++----------------------- 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/clase1/cuatin_daniel.py b/clase1/cuatin_daniel.py index 5afbd5c..5b320d0 100644 --- a/clase1/cuatin_daniel.py +++ b/clase1/cuatin_daniel.py @@ -32,12 +32,21 @@ def mostrar_menu(): print("3. Salir") def ejercicio2(): + frases_motivacionales = [ + "¡Tú puedes lograr todo lo que te propongas! 💪", + "Cada día es una nueva oportunidad para ser mejor. 🌟", + "La perseverancia es la clave del éxito. 🚀", + "No te rindas, el éxito está más cerca de lo que piensas. 🌈", + "Cree en ti mismo y todo será posible. ✨" + ] while True: mostrar_menu() opcion = input("Selecciona una opción (1-3): ") if opcion == "1": - print("\n¡Tú puedes lograr todo lo que te propongas! 💪") + import random + frase = random.choice(frases_motivacionales) # Selecciona una frase ale + print(f"\nFrase motivacional: {frase}") elif opcion == "2": fecha_actual = datetime.datetime.now().strftime("%d/%m/%Y") print(f"\nLa fecha actual es: {fecha_actual}") diff --git a/clase2/cuatin_daniel.py b/clase2/cuatin_daniel.py index c866289..bfb2177 100644 --- a/clase2/cuatin_daniel.py +++ b/clase2/cuatin_daniel.py @@ -7,32 +7,24 @@ """ # Ejercio 1: Definición de una clase Heroe class Heroe: - def __init__(self, nombre, poder): + def __init__(self, nombre, genero, identidad_secreta, poder): self.nombre = nombre + self.genero = genero + self.identidad_secreta = identidad_secreta self.poder = poder def presentar(self): - print(f"Soy {self.nombre} y tengo el poder de {self.poder}.") + print(f"Soy {self.nombre} y tengo el poder de {self.poder}.", f"mi identidad secreta es {self.identidad_secreta}.") + + def to_json(self): + return { + "nombre": self.nombre, + "genero": self.genero, + "identidad_secreta": self.identidad_secreta, + "poder": self.poder + } -""" -La clase Celular representa un teléfono móvil con atributos como marca, modelo, año y color. -Tiene métodos para realizar llamadas, enviar mensajes y mostrar información del celular. -""" -class Celular: - def __init__(self, marca, modelo, year, color): - self.marca = marca - self.modelo = modelo - self.year = year - self.color = color - def llmar(self, numero): - print(f"Llamando al número {numero} desde el celular {self.marca} {self.modelo}.") - - def enviar_mensaje(self, numero, mensaje): - print(f"Enviando mensaje '{mensaje}' al número {numero} desde el celular {self.marca} {self.modelo}.") - - def mostrar_info(self): - print(f"Celular: {self.marca} {self.modelo}") # Ejercicio 2: Listas y diccionarios @@ -81,15 +73,15 @@ def iniciar_trivia(self): if __name__ == "__main__": # Ejercicio 1: Crear un héroe y presentarlo - heroe = Heroe("Superman", "volar") + print("************ Ejercicio 1: Clase Heroe ************") + heroe = Heroe("Superman", "masculino", "Clark Kent", "Super fuerza") heroe.presentar() - - # Ejercicio 2: Crear un celular y mostrar su información - celular = Celular("Samsung", "Galaxy S21", 2021, "Negro") - celular.mostrar_info() - celular.llmar("123456789") - celular.enviar_mensaje("987654321", "Hola, ¿cómo estás?") - + heroe.poder = "Volar" + heroe.presentar() + heroe_json = heroe.to_json() + print("Héroe en formato JSON:", heroe_json) + print("************ Fin del Ejercicio 1 ************\n") + print("************ Ejercicio 2: Lista de Películas ************") # Ejercicio 2: Crear una lista de películas peliculas = [ Pelicula("Toy Story", "John Lasseter", 1995), @@ -99,7 +91,8 @@ def iniciar_trivia(self): ] for pelicula in peliculas: pelicula.mostrar_info() - + print("************ Fin del Ejercicio 2 ************\n") + print("************ Ejercicio 3: Trivia ************") # Ejercicio 3: Crear una trivia y iniciarla trivia = Trivia() pregunta1 = Pregunta( From 3d963b71f3488bde9135583b06a8c96b20a825b6 Mon Sep 17 00:00:00 2001 From: DadoXavier Date: Thu, 10 Jul 2025 23:04:21 -0500 Subject: [PATCH 44/95] Add files via upload --- clase1/xavier_arellano.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 clase1/xavier_arellano.py diff --git a/clase1/xavier_arellano.py b/clase1/xavier_arellano.py new file mode 100644 index 0000000..50678c5 --- /dev/null +++ b/clase1/xavier_arellano.py @@ -0,0 +1,28 @@ +from datetime import datetime + +def es_primo(num): + for n in range(2, num): + if num % n == 0: + print("El número", num, "no es primo:", n, "es divisor") + return False + print("El número", num, "es primo") + return True + +def menu(num2): + if num2 == 1: + print("La frase motivacional es: '¡Sigue adelante, nunca te rindas!'") + elif num2 == 2: + print("La fecha de hoy es:", datetime.now().strftime("%d/%m/%Y")) + elif num2 == 3: + print("La hora actual es:", datetime.now().strftime("%H:%M:%S")) + else: + print("¡Gracias por usar el programa!") + +if __name__ == "__main__": + num1 = int(input("Ingrese el primer número: ")) + num2 = int(input("Ingrese el segundo número: ")) + es_primo(num1) + es_primo(num2) + + num3 = int(input("Ingrese un número para el menú (1-4): ")) + menu(num3) \ No newline at end of file From 024ee324e6782eab4c0db385a1a2be010ef98332 Mon Sep 17 00:00:00 2001 From: MiltonChiluisa Date: Fri, 11 Jul 2025 00:22:51 -0500 Subject: [PATCH 45/95] Entrega clase 1 - Milton Chiluisa --- clase1/milton_chiluisa.py | 44 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 clase1/milton_chiluisa.py diff --git a/clase1/milton_chiluisa.py b/clase1/milton_chiluisa.py new file mode 100644 index 0000000..f69e88b --- /dev/null +++ b/clase1/milton_chiluisa.py @@ -0,0 +1,44 @@ +def es_primo(numero): + + if numero <= 1: + return False + return True + elif numero % 2 == 0: + return False + else: + + i = 3 + while i * i <= numero: + if numero % i == 0: + return False + i += 2 + return True + +def mostrar_primos_hasta_n(): + + while True: + try: + n_str = input("Por favor, ingresa un número entero positivo (n): ") + n = int(n_str) + if n <= 0: + print("Por favor, ingresa un número entero positivo mayor que cero. Inténtalo de nuevo.") + else: + break + except ValueError: + print("Entrada inválida. Por favor, ingresa solo números enteros. Inténtalo de nuevo.") + + print(f"\nNúmeros primos del 1 al {n}:") + primos_encontrados = False + for i in range(1, n + 1): + if es_primo(i): + print(i) + primos_encontrados = True + + if not primos_encontrados and n > 1: + print(f"No se encontraron números primos en el rango de 1 a {n}. (El 2 es el primer primo, si n es menor que 2)") + elif not primos_encontrados and n <= 1: + print(f"No se encontraron números primos en el rango de 1 a {n}.") + + +if __name__ == "__main__": + mostrar_primos_hasta_n() \ No newline at end of file From 8468263416a889632862d7b14cbed8ca15b579e5 Mon Sep 17 00:00:00 2001 From: MiltonChiluisa Date: Fri, 11 Jul 2025 00:57:48 -0500 Subject: [PATCH 46/95] Entrega clase 2 - Milton Chiluisa --- clase2/milton_chiluisa.py | 154 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 clase2/milton_chiluisa.py diff --git a/clase2/milton_chiluisa.py b/clase2/milton_chiluisa.py new file mode 100644 index 0000000..4f857ff --- /dev/null +++ b/clase2/milton_chiluisa.py @@ -0,0 +1,154 @@ +class Celular: + + + def __init__(self, marca, modelo, año, color): + + self.marca = marca + self.modelo = modelo + self.año = año + self.color = color + print(f"¡Nuevo celular {self.marca} {self.modelo} ({self.color}) del año {self.año} creado!") + + def llamar(self, numero_destino): + + print(f"Realizando llamada desde el {self.modelo} ({self.color}) a {numero_destino}...") + return f"Llamada a {numero_destino} en curso." + + def enviar_mensaje(self, numero_destino, mensaje): + + print(f"Enviando mensaje desde el {self.modelo} ({self.color}) a {numero_destino}: '{mensaje}'") + return f"Mensaje enviado a {numero_destino}." + + def obtener_info(self): + + return f"Marca: {self.marca}, Modelo: {self.modelo}, Año: {self.año}, Color: {self.color}" + +# --- Operaciones con el Objeto Celular --- + +if __name__ == "__main__": + print("--- Creando objetos Celular ---") + + # Crear una instancia (objeto) de la clase Celular + mi_celular = Celular("Samsung", "Galaxy S23", 2023, "Negro") + celular_amigo = Celular("Apple", "iPhone 14 Pro", 2022, "Gris Espacial") + + print("\n--- Accediendo a atributos ---") + print(f"Mi celular es un {mi_celular.marca} {mi_celular.modelo}.") + print(f"El celular de mi amigo es de color {celular_amigo.color}.") + + print("\n--- Realizando operaciones (llamando a métodos) ---") + + # Realizar una llamada con mi_celular + resultado_llamada = mi_celular.llamar("0991234567") + print(f"Estado: {resultado_llamada}") + + # Enviar un mensaje con celular_amigo + resultado_mensaje = celular_amigo.enviar_mensaje("0987654321", "Hola, ¿cómo estás?") + print(f"Estado: {resultado_mensaje}") + + # Obtener información completa de mi_celular + info_mi_celular = mi_celular.obtener_info() + print(f"\nInformación de mi celular: {info_mi_celular}") + + # Obtener información completa de celular_amigo + info_celular_amigo = celular_amigo.obtener_info() + print(f"Información del celular de mi amigo: {info_celular_amigo}") + + print("\n--- Modificando un atributo ---") + mi_celular.color = "Verde Oscuro" + print(f"He cambiado el color de mi celular a {mi_celular.color}.") + print(f"Nueva información de mi celular: {mi_celular.obtener_info()}") + + + + + + + + + # Ejercicio 2: Listas y Diccionarios + +# --- Parte 1: Crear una lista con tus 3 películas favoritas --- +# Una lista es una colección ordenada y mutable de elementos. +# Los elementos pueden ser de diferentes tipos de datos. +peliculas_favoritas = [ + "Interstellar", + "El Señor de los Anillos: La Comunidad del Anillo", + "Origen" +] + +print("--- Mis 3 películas favoritas ---") +print(f"Lista de películas: {peliculas_favoritas}") + + +print("\n--- Operaciones con la lista de películas ---") + + +print(f"Mi primera película favorita es: {peliculas_favoritas[0]}") +print(f"Mi tercera película favorita es: {peliculas_favoritas[2]}") + + +peliculas_favoritas.append("Pulp Fiction") +print(f"Lista después de añadir 'Pulp Fiction': {peliculas_favoritas}") + + +peliculas_favoritas.remove("Origen") +print(f"Lista después de eliminar 'Origen': {peliculas_favoritas}") + + +print(f"Número total de películas en la lista: {len(peliculas_favoritas)}") + + +print("Recorriendo mis películas favoritas:") +for pelicula in peliculas_favoritas: + print(f"- {pelicula}") + + +# --- Parte 2: Crear un diccionario con tu nombre, género y año --- + +informacion_personal = { + "nombre": "Milton", + "genero": "Masculino", + "año_nacimiento": 1990 +} + +print("\n--- Mi información personal ---") +print(f"Diccionario de información: {informacion_personal}") + + +print("\n--- Operaciones con el diccionario de información ---") + + +print(f"Mi nombre es: {informacion_personal['nombre']}") +print(f"Mi género es: {informacion_personal['genero']}") + + +informacion_personal["año_nacimiento"] = 1992 +print(f"Año de nacimiento actualizado: {informacion_personal['año_nacimiento']}") +print(f"Diccionario después de actualizar el año: {informacion_personal}") + +informacion_personal["ciudad"] = "Quito" +print(f"Diccionario después de añadir la ciudad: {informacion_personal}") + + +del informacion_personal["genero"] +print(f"Diccionario después de eliminar el género: {informacion_personal}") + + +print(f"Claves del diccionario: {informacion_personal.keys()}") + + +print(f"Valores del diccionario: {informacion_personal.values()}") + + +print("Recorriendo las claves de mi información:") +for clave in informacion_personal: + print(f"- {clave}: {informacion_personal[clave]}") + + +print("Recorriendo pares clave-valor de mi información:") +for clave, valor in informacion_personal.items(): + print(f"- {clave}: {valor}") + + + \ No newline at end of file From ea0daad4bb8167b5b742b7be6b8529f53383c9d6 Mon Sep 17 00:00:00 2001 From: Valeria Date: Fri, 11 Jul 2025 10:11:23 -0500 Subject: [PATCH 47/95] Deber1 - Valeria Ramos --- clase1/valeria_ramos.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clase1/valeria_ramos.py b/clase1/valeria_ramos.py index 7726698..804a0ac 100644 --- a/clase1/valeria_ramos.py +++ b/clase1/valeria_ramos.py @@ -2,7 +2,6 @@ from datetime import date - def es_primo(number): if number <= 1: return False @@ -18,6 +17,7 @@ def es_primo(number): else: print(f"{number} NO ES UN NÚMERO PRIMO.") + #Menu ejercicio 2 option1 = 1 option2 = 2 @@ -29,7 +29,7 @@ def es_primo(number): dateActual = date.today() print(f"La fecha de hoy es:{dateActual}") elif resultOption == 3: - print ("Saliendo, Saludos..") + print ("XSaliendo, Saludos..") exit() else: print ("El número ingresado no es correcto") \ No newline at end of file From 394ef6d106549d4377cf2657a6fcb02460a100ae Mon Sep 17 00:00:00 2001 From: Valeria Date: Fri, 11 Jul 2025 10:42:50 -0500 Subject: [PATCH 48/95] Deber1ValeriaRamos --- clase1/valeria_ramos.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clase1/valeria_ramos.py b/clase1/valeria_ramos.py index 804a0ac..8c6d240 100644 --- a/clase1/valeria_ramos.py +++ b/clase1/valeria_ramos.py @@ -32,4 +32,4 @@ def es_primo(number): print ("XSaliendo, Saludos..") exit() else: - print ("El número ingresado no es correcto") \ No newline at end of file + print ("El número ingresado no es correcto. Selecciona una opción valida") \ No newline at end of file From fac76bc5955e29f3ca571aa98847c863f8fbbe02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dar=C3=ADo=20Xavier=20Arellano=20S=2E?= Date: Fri, 11 Jul 2025 10:45:41 -0500 Subject: [PATCH 49/95] Entrega clase 1 - Xavier Arellano --- clase1/xavier_arellano.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 clase1/xavier_arellano.py diff --git a/clase1/xavier_arellano.py b/clase1/xavier_arellano.py new file mode 100644 index 0000000..b56fc4d --- /dev/null +++ b/clase1/xavier_arellano.py @@ -0,0 +1,28 @@ +from datetime import datetime + +def es_primo(num): + for n in range(2, num): + if num % n == 0: + print("El número", num, "no es primo:", n, "es divisor") + return False + print("El número", num, "es primo") + return True + +def menu(num2): + if num2 == 1: + print("La frase motivacional es: '¡Sigue adelante, nunca te rindas!'") + elif num2 == 2: + print("La fecha de hoy es:", datetime.now().strftime("%d/%m/%Y")) + elif num2 == 3: + print("La hora actual es:", datetime.now().strftime("%H:%M:%S")) + else: + print("¡Gracias por usar el programa!") + +if __name__ == "__main__": + num1 = int(input("Ingrese el primer número: ")) + num2 = int(input("Ingrese el segundo número: ")) + es_primo(num1) + es_primo(num2) + + num3 = int(input("Ingrese un número para el menú (1-4): ")) + menu(num3) \ No newline at end of file From 75d56086b3a8161a606839a88b7bab251a7c6f5c Mon Sep 17 00:00:00 2001 From: "gmtambaco@gmail.com" Date: Fri, 11 Jul 2025 14:00:17 -0500 Subject: [PATCH 50/95] Entrega clase 2 - Geomara Tambaco --- clase2/geomara_tambaco.py | 197 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 clase2/geomara_tambaco.py diff --git a/clase2/geomara_tambaco.py b/clase2/geomara_tambaco.py new file mode 100644 index 0000000..0acddc0 --- /dev/null +++ b/clase2/geomara_tambaco.py @@ -0,0 +1,197 @@ +""" +# Ejercicio 1: Objetos + +Objeto elegido: Celular +Como atributos hemos elegido: +Marca: +Modelo: +Color: +Almacenamiento: +peso: +Como método elegimos: +Mostrar la información +Encender +Apagar +Llamar +Enviar Mensajes +Instalar aplicaciones +""" +print(" -----EJERCICIO 1-----") +class Celular: + def __init__(self, marca, modelo,color,almacenamiento,peso): + self.marca = marca + self.modelo = modelo + self.color = color + self.almacenamiento = almacenamiento + self.peso = peso + + def mostrar_info(self): + print(f"Información general de tu celular") + print(f"Marca: {self.marca}") + print(f"Modelo: {self.modelo}") + print(f"Color: {self.color}") + print(f"Almacenamiento: {self.almacenamiento}") + print(f"Peso: {self.peso} gramos") + + def encender(self): + print(f"Tu celular {self.marca} está encendido") + + def apagar(self): + print(f"Tu celular {self.modelo} se va apagar") + + def llamar(self): + print(f"Llamando a Juan López desde tu celular {self.marca} ") + + def enviar(self): + print(f"Mensaje enviado a Valeria desde un celular {self.modelo} de color {self.color}") + + def instalar_app(self): + print(f"Tu celular tiene {self.almacenamiento} ocupados. No hay espacio disponible. ") + + + +celular1 = Celular("Samsung", "Galaxy S24", "Gris", "256 GB", 233) +celular2 = Celular("Apple", "iPhone 15 Pro", "Negro espacial", "512 GB", 221) +celular3 = Celular("Xiaomi", "Redmi Note 13", "Azul", "128 GB", 205) +celular4 = Celular("Motorola", "Edge 50 Pro", "Verde bosque", "256 GB", 186) +celular5 = Celular("Google", "Pixel 8", "Rosa", "128 GB", 187) +celular6 = Celular("OnePlus", "12R", "Negro mate", "256 GB", 207) + + +# Lista con los celulares +lista_celulares = [celular1, celular2, celular3, celular4, celular5, celular6] + +# Función para obtener el peso promedio +def peso_promedio(celulares): + total = sum(celular.peso for celular in celulares) + return total / len(celulares) + +# Mostrar resultado +print(f"El peso promedio de los celulares es: {peso_promedio(lista_celulares):.2f} gramos") + +celular1.mostrar_info() +celular2.encender() +celular3.apagar() +celular4.llamar() +celular5.enviar() +celular6.instalar_app() + +""" +Ejercicio 2 +## Ejercicio 2: Listas y diccionarios + +Crea: +- Una lista con tus 3 películas favoritas. +- Un diccionario con su nombre, genero, año. +- Imprime las operaciones. + +--- + +""" +print(" -----EJERCICIO 2-----") + +lista_peliculas=["El gato con botas", "Chespirito","Alicia en el país de mas maravillas"] + +# Agrega al final +lista_peliculas.append("Avatar") +# Inserta en posición 1 +lista_peliculas.insert(1, "Titanic") +# Mostrar cuántas películas hay +print(f"\nTotal de películas: {len(lista_peliculas)}") +# Ordenar alfabéticamente +lista_peliculas.sort() +# Eliminar una película si existe +if "Chespirito" in lista_peliculas: + lista_peliculas.remove("Chespirito") + +#Imprimimos la lista +for i, pelicula in enumerate(lista_peliculas, start=1): + print(f"{i}. {pelicula}") + + + +diccionario_peliculas = [{ + "nombre":"El gato con botas", + "género":"Comedia", + "año":2005 +}, +{ "nombre":"Chespirito", + "género":"Drama", + "año":2025 +}, +{ + "nombre":"Alicia en el país de las maravillas", + "género":"Comedia", + "año":200 +} +] + + +diccionario_peliculas = [ + { + "nombre": "El gato con botas", + "género": "Comedia", + "año": 2005 + }, + { + "nombre": "Chespirito", + "género": "Drama", + "año": 2025 + }, + { + "nombre": "Alicia en el país de las maravillas", + "género": "Comedia", + "año": 2000 } +] + +for pelicula in diccionario_peliculas: + print("." * 30) + print(f"Nombre: {pelicula['nombre']}") + print(f"Género: {pelicula['género']}") + print(f"Año: {pelicula['año']}") + +print(" -----EJERCICIO 3-----") + +class Pregunta: + def __init__(self, enunciado, opciones, respuesta): + self.enunciado = enunciado + self.opciones = opciones + self.respuesta = respuesta + + def mostrar(self): + print("\n" + self.enunciado) + for i, opcion in enumerate(self.opciones): + print(f"{i + 1}. {opcion}") + seleccion = int(input("Seleccione una opción (1-{}): ".format(len(self.opciones)))) + return seleccion - 1 + + def es_correcta(self, seleccion_usuario): + return seleccion_usuario == self.respuesta + + +preguntas = [ + Pregunta("¿Cuál es la capital de Ecuador?", ["Quito", "Guayaquil", "Cuenca", "Loja"], 0), + Pregunta("¿Cuál es el río más largo de Ecuador?", ["Río Esmeraldas", "Río Napo", "Río Guayas", "Río Pastaza"], 1), + Pregunta("¿En qué año se independizó Ecuador?", ["1822", "1810", "1820", "1830"], 0), + Pregunta("¿Cuál es el volcán más alto de Ecuador?", ["Cotopaxi", "Chimborazo", "Tungurahua", "Sangay"], 1), +] + +indice = 0 + +while indice < len(preguntas): + pregunta = preguntas[indice] + seleccion = pregunta.mostrar() + + if pregunta.es_correcta(seleccion): + print("¡Correcto!") + else: + correcta = pregunta.opciones[pregunta.respuesta] + print(f"Incorrecto. La respuesta correcta era: {correcta}") + + continuar = input("\n¿Quieres responder otra pregunta? (s/n): ").lower() + if continuar != "s": + break + + indice += 1 + + From e361d5759a5fa6c17259a9f6977500161e170b4f Mon Sep 17 00:00:00 2001 From: Jhopabyu Date: Fri, 11 Jul 2025 16:50:24 -0500 Subject: [PATCH 51/95] deber 3 pablo colcha --- clase1/pablo_colcha.py | 14 ++--- clase2/pablo_colcha.py | 25 ++++---- clase3/api2_pablo_colcha/app.py | 51 ++++++++++++++++ clase3/api2_pablo_colcha/templates/index.html | 58 ++++++++++++++++++ clase3/pablo_colcha/app.py | 51 ++++++++++++++++ clase3/pablo_colcha/templates/index.html | 61 +++++++++++++++++++ proyecto/pablo_colcha.py | 22 +++++++ 7 files changed, 263 insertions(+), 19 deletions(-) create mode 100644 clase3/api2_pablo_colcha/app.py create mode 100644 clase3/api2_pablo_colcha/templates/index.html create mode 100644 clase3/pablo_colcha/app.py create mode 100644 clase3/pablo_colcha/templates/index.html create mode 100644 proyecto/pablo_colcha.py diff --git a/clase1/pablo_colcha.py b/clase1/pablo_colcha.py index 29a3090..a42ed5a 100644 --- a/clase1/pablo_colcha.py +++ b/clase1/pablo_colcha.py @@ -9,11 +9,11 @@ # Función para verificar si un número es primo def es_primo(num): if num < 2: - print(f"❌ {num} no es primo (menor que 2)") + print(f"{num} no es primo (menor que 2)") return False for i in range(2, int(num**0.5) + 1): # Solo hasta la raíz cuadrada if num % i == 0: - print(f"❌ {num} no es primo (divisible por {i})") + print(f"{num} no es primo (divisible por {i})") return False return True @@ -25,7 +25,7 @@ def es_primo(num): # Imprimir los números primos desde 1 hasta n for i in range(1, n + 1): if es_primo(i): - print(f"✅ {i} es primo") + print(f" {i} es primo") """## 🧪 Ejercicio 2: Menú interactivo @@ -46,14 +46,14 @@ def es_primo(num): opcion = input("Selecciona una opción (1-3): ") if opcion == "1": - print("💡 Nunca te rindas. ¡Los grandes logros requieren tiempo y esfuerzo!") + print("Nunca te rindas. ¡Los grandes logros requieren tiempo y esfuerzo!") elif opcion == "2": fecha_actual = datetime.datetime.now() - print(f"📅 La fecha y hora actual es: {fecha_actual.strftime('%d/%m/%Y %H:%M:%S')}") + print(f" La fecha y hora actual es: {fecha_actual.strftime('%d/%m/%Y %H:%M:%S')}") elif opcion == "3": - print("👋 ¡Hasta luego!") + print(" ¡Hasta luego!") break else: - print("❌ Opción no válida. Intenta de nuevo.") + print("Opción no válida. Intenta de nuevo.") print("Fin del programa.") diff --git a/clase2/pablo_colcha.py b/clase2/pablo_colcha.py index f3ba2e8..61f7385 100644 --- a/clase2/pablo_colcha.py +++ b/clase2/pablo_colcha.py @@ -19,11 +19,12 @@ def enviar_mensaje(self, numero, mensaje): # Crear objeto celular -mi_celular = Celular("Samsung", "Galaxy S22", 2022, "Negro") +celular = Celular("Samsung", "Galaxy S22", 2022, "Negro") # Operaciones con el objeto -mi_celular.llamar("0998765432") -mi_celular.enviar_mensaje("0998765432", "Hola, ¿cómo estás?") +celular.llamar("0998765432") +celular.enviar_mensaje("0998765432", "Hola, ¿cómo estás?") + """Ejercicio 2: Listas y diccionarios @@ -34,15 +35,15 @@ def enviar_mensaje(self, numero, mensaje): # 🎬 Lista de 3 películas favoritas, cada una como un diccionario -peliculas_favoritas = [ +p_favoritas = [ {"nombre": "El señor de los anillos", "genero": "Fantasía", "año": 2001}, {"nombre": "Avatar", "genero": "Ciencia ficción", "año": 2009}, {"nombre": "Inception", "genero": "Acción / Ciencia ficción", "año": 2010} ] # 🔹 Imprimir cada película con su información -print("🎬 Información de mis 3 películas favoritas:\n") -for pelicula in peliculas_favoritas: +print(" Información de mis 3 películas favoritas:\n") +for pelicula in p_favoritas: print(f"Nombre: {pelicula['nombre']}") print(f"Género: {pelicula['genero']}") print(f"Año: {pelicula['año']}") @@ -65,13 +66,13 @@ def __init__(self, enunciado, opciones, respuesta): self.respuesta = respuesta def mostrar(self): - print("\n🧠 Pregunta:") + print("\n Pregunta:") print(self.enunciado) for i, opcion in enumerate(self.opciones): print(f"{i + 1}. {opcion}") - def verificar(self, eleccion_usuario): - return eleccion_usuario - 1 == self.respuesta + def verificar(self, eleccion): + return eleccion - 1 == self.respuesta # Crear una pregunta @@ -88,10 +89,10 @@ def verificar(self, eleccion_usuario): try: numero = int(input("Ingrese el número de su respuesta: ")) if pregunta1.verificar(numero): - print("✅ ¡Respuesta correcta!") + print("¡Respuesta correcta!") else: - print("❌ Respuesta incorrecta.") + print(" Respuesta incorrecta.") except ValueError: - print("⚠️ Entrada no válida. Debes ingresar un número.") + print(" Entrada no válida. Debes ingresar un número.") diff --git a/clase3/api2_pablo_colcha/app.py b/clase3/api2_pablo_colcha/app.py new file mode 100644 index 0000000..5afd3a6 --- /dev/null +++ b/clase3/api2_pablo_colcha/app.py @@ -0,0 +1,51 @@ +from flask import Flask, render_template, request +import requests +import math + +app = Flask(__name__) + +MORTI_PER_PAGE = 9 + +@app.route('/', methods=['GET']) +def index(): + search_query = request.args.get('search', '').lower() + page = int(request.args.get('page', 1)) + + url = f'https://rickandmortyapi.com/api/character/?page={page}' + response = requests.get(url) + + if response.status_code != 200: + return "Error al obtener los personajes." + + data = response.json() + all_characters = [] + + for character in data['results']: + name = character['name'].lower() + + if search_query in name: + morti = { + 'id': character['id'], + 'name': character['name'], + 'status': character['status'], + 'species': character['species'], + 'type': character['type'] if character['type'] else 'Unknown', + 'gender': character['gender'], + 'origin': character['origin']['name'], + 'location': character['location']['name'], + 'image': character['image'], + 'episode_count': len(character['episode']) + } + all_characters.append(morti) + + total = data['info']['count'] + total_pages = data['info']['pages'] + + return render_template('index.html', + character_list=all_characters, + search_query=search_query, + page=page, + total_pages=total_pages) + +if __name__ == '__main__': + app.run(debug=True) diff --git a/clase3/api2_pablo_colcha/templates/index.html b/clase3/api2_pablo_colcha/templates/index.html new file mode 100644 index 0000000..22fc711 --- /dev/null +++ b/clase3/api2_pablo_colcha/templates/index.html @@ -0,0 +1,58 @@ + + + + + + Rick and Morty Characters + + + +
+

Rick and Morty Characters

+ +
+
+ + +
+
+ + {% if character_list %} +
+ {% for character in character_list %} +
+
+ {{ character.name }} +
+
{{ character.name }}
+

+ Estado: {{ character.status }}
+ Especie: {{ character.species }}
+ Género: {{ character.gender }}
+ Origen: {{ character.origin }}
+ Ubicación: {{ character.location }}
+ Episodios: {{ character.episodes }} +

+
+
+
+ {% endfor %} +
+ + + + + {% else %} +

No se encontraron personajes.

+ {% endif %} +
+ + diff --git a/clase3/pablo_colcha/app.py b/clase3/pablo_colcha/app.py new file mode 100644 index 0000000..bdab683 --- /dev/null +++ b/clase3/pablo_colcha/app.py @@ -0,0 +1,51 @@ +from flask import Flask, render_template, request +import requests +import math +app = Flask(__name__) +POKEMONS_PER_PAGE = 10 + +@app.route("/", methods=["GET"]) +def index(): + search_query = request.args.get("search", "").lower() + page = int(request.args.get("page", 1)) + + offset = (page - 1) * POKEMONS_PER_PAGE + url = f"https://pokeapi.co/api/v2/pokemon?limit={POKEMONS_PER_PAGE}&offset={offset}" + response = requests.get(url) + + if response.status_code != 200: + return "error No se pudo obtener la lista de pokémones" + + results= response.json() + all_pokemon = [] + + for p in results["results"]: + poke_data = requests.get(p["url"]).json() + name = poke_data["name"] + + if search_query in name: + pokemon = { + "name": name.upper(), + "sprite": poke_data["sprites"]["front_default"], + "image": poke_data["sprites"]["other"]["showdown"]["back_shiny"], + "types": [t["type"]["name"] for t in poke_data["types"]], + "height": poke_data["height"], + "weight": poke_data["weight"], + "abilities": [a["ability"]["name"] for a in poke_data["abilities"]], + "stats": [s["stat"]["name"] for s in poke_data["stats"]][:3], + "moves": [m["move"]["name"] for m in poke_data["moves"]][:3], + "past_abilities": [a["generation"]["name"] for a in poke_data["past_abilities"]] + + } + all_pokemon.append(pokemon) + total=100 + total_pages = math.ceil(total / POKEMONS_PER_PAGE) + return render_template("index.html", + pokemon_list=all_pokemon, + search_query=search_query, + page=page, + total_pages=total_pages) + + +if __name__ == "__main__": + app.run(debug=True) diff --git a/clase3/pablo_colcha/templates/index.html b/clase3/pablo_colcha/templates/index.html new file mode 100644 index 0000000..47500e4 --- /dev/null +++ b/clase3/pablo_colcha/templates/index.html @@ -0,0 +1,61 @@ + + + + + + + Pokédex Flask + + + +
+

POKEAPI

+ +
+
+ + +
+
+ + {% if pokemon_list %} +
+ {% for pokemon in pokemon_list %} +
+
+ {{ pokemon.name }} +
+
{{ pokemon.name }}
+

+ Tipo: {{ pokemon.types | join(', ') }}
+ Altura: {{ pokemon.height }}
+ Peso: {{ pokemon.weight }}
+ Habilidades: {{ pokemon.abilities | join(', ') }}
+ Status: {{pokemon.stats | join(', ')}}
+ Movimientos:{{pokemon.moves |join (', ')}}
+ Generacion:{{pokemon.past_abilities | join(', ')}} +

+
+
+
+ {% endfor %} +
+ + + + + {% else %} +

No se encontraron Pokémon.

+ {% endif %} +
+ + + diff --git a/proyecto/pablo_colcha.py b/proyecto/pablo_colcha.py new file mode 100644 index 0000000..aa11b25 --- /dev/null +++ b/proyecto/pablo_colcha.py @@ -0,0 +1,22 @@ +from telebot import TeleBot + +TOKEN_BOT="TOKEN_BOT" +bot = tb.TeleBot(TOKEN_BOT) + +@bot.message_handler(commands=['start']) +def start(message): + print("Entro al start del bot") + bot.send_message(message.chat.id, "Bienbenido a la tienda de pablo ") + bot.register_next_step_handler(message,menu) + +def menu(message): + bot.send_message(message.chat.id, "Estos son lo paquetes que tenemos:\n 1. Paquete 1\n 2. Paquete 2\n 3. Paquete 3") + bot.register_next_step_handler(message, opciones) + +def opciones(message): + print(message) + bot.send_message(message.chat.id, "opcion no valida") + bot.register_next_step_handler(message) +if __name__ == '__main__': + print ("Bot iniciado") + bot.infinity_polling() \ No newline at end of file From 7a4fb0776ac58da4a3c58c7e17b1329d0d1b52e2 Mon Sep 17 00:00:00 2001 From: Pamrlota Date: Fri, 11 Jul 2025 18:51:53 -0500 Subject: [PATCH 52/95] =?UTF-8?q?Valeria=5FQui=C3=B1oneztarea2.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit clase2 --- ...eria_Qui\303\261onez.py" => "Valeria_Qui\303\261oneztarea2.py" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "Valeria_Qui\303\261onez.py" => "Valeria_Qui\303\261oneztarea2.py" (100%) diff --git "a/Valeria_Qui\303\261onez.py" "b/Valeria_Qui\303\261oneztarea2.py" similarity index 100% rename from "Valeria_Qui\303\261onez.py" rename to "Valeria_Qui\303\261oneztarea2.py" From 2a2e4fda814b3bc400d27e5ee2bcc95861f46576 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 11 Jul 2025 18:52:17 -0500 Subject: [PATCH 53/95] Entrega clase 2 - Andrea Yanez --- clase1/andrea_yanez.py | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/clase1/andrea_yanez.py b/clase1/andrea_yanez.py index 3aadb99..b205ec0 100644 --- a/clase1/andrea_yanez.py +++ b/clase1/andrea_yanez.py @@ -4,7 +4,7 @@ Identificar si un numero es primo y mostrar todos los números primos hasta n """ - +# === EJERCICIO 1: Mostrar numeros primos === def es_primo(n): if n < 2: return False @@ -31,3 +31,39 @@ def mostrar_primos_hasta_n(n): mostrar_primos_hasta_n(n) except ValueError: print("Entrada inválida. Debe ser un número entero") + +print("\nFin del ejercicio 1\n") + + +# === EJERCICIO 2: Mostrar menú === + +"""" +Crea un menú con al menos 3 opciones usando `if` y `elif`: + +- Mostrar una frase motivacional. +- Mostrar la fecha actual. +- Salir del programa. + +""" + + + +pass + +print("=== MENÚ PRINCIPAL ===") +print("1. Mostrar una frase motivacional") +print("2. Mostrar la fecha actual") +print("3. Salir") + +opcion = input("Seleccione una opción: ") + +if opcion == "1": + print("¡Un día a la vez!") +elif opcion == "2": + print("Hoy es...") +elif opcion == "3": + print("Salir") +else: + print("Opción no válida") + +print("\nFin del ejercicio 2\n") \ No newline at end of file From b08cb3e7a677234b7869b6eb03cfa66d784003b2 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 11 Jul 2025 18:53:36 -0500 Subject: [PATCH 54/95] Entrega clase 2 - Andrea Yanez --- clase2/clase2/clase2/andrea_yanez.py | 188 +++++++++++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 clase2/clase2/clase2/andrea_yanez.py diff --git a/clase2/clase2/clase2/andrea_yanez.py b/clase2/clase2/clase2/andrea_yanez.py new file mode 100644 index 0000000..a91487d --- /dev/null +++ b/clase2/clase2/clase2/andrea_yanez.py @@ -0,0 +1,188 @@ +""" +Explicar que es el objeto que hace y el proque de la elección: + - Eleji el objeto de "Servicios de Diseño" poruqe es el servicio que ofrezco como diseñadora y que me permite demostrar el uso de clases y objetos en Python. +""" + + +""" +EJERCICIO 1: Objetos + +""" + +""" +Funcion para promocionar un servicio + +""" + +class SevicioDiseno: + def __init__ (self, disenador, estudios, habilidades): + self.disenador = disenador + self.estudios = estudios + self.habilidades = habilidades + + def mostrar_informacion(self): + print(f" 📣 Diseñador: {self.disenador}") + print(f"Estudios: {self.estudios}") + print(f"Habilidades: {', '.join(self.habilidades)}\n") + +""" +Funcion para promocionar un servicio + +""" +def promocionar_servicio(servicio): + print(f"📢 Promocionando a: {servicio.disenador} con habilidades en : {', '.join(servicio.habilidades)}") + print(f"APROVECHA EL 15 % DE DESCUENTO EN TODOS LOS SERVICIOS DE DISEÑO\n"), + + +""" +Lista de Servicios de Diseño + +""" +servicios = [ + SevicioDiseno( + "Andrea Yanez", + "Universidad Tecnica de Cotopaxi", + ["Photoshop, Illustrator, Affter Effects"] + ), + SevicioDiseno( + "Carlos Lopez", + "Universidad Tecnica de Ambato", + ["Figma, Canva, Indesign"] + ) +] + +""" +Informacion de Servicios de Diseño + +""" +print("Servicios de Diseño Disponibles:\n") +for servicio in servicios: + servicio.mostrar_informacion(), + +""" +Promociones Actuales + +""" + +print("Promociones actuales:\n") +for servicio in servicios: + promocionar_servicio(servicio) + + +""" +EJERCICIO 2: Listas y diccionarios + +""" + +""" +Diccionario de peliculas favoritas + +""" +fav_peliculas = { + "Olvida de mi":{ + "genero": "Drama", + "año" : 2004 + }, + "El origen":{ + "genero": "Romance", + "año": 2009 + }, + "El numero 13":{ + "genero": "Misterio", + "año": 2006 + } +} + + +""" +Lista de peliculas favoritas + +""" +pelis_favoritas = list(fav_peliculas.keys()) + +print("\nMis 3 películas favoritas son:") +for peli in pelis_favoritas: + print(f"- {peli}") + + +""" +Informacion peliculas favoritas + +""" +print("\nMis películas favoritas:") +for peli in pelis_favoritas: + genero = fav_peliculas[peli]["genero"] + año = fav_peliculas[peli]["año"] + print(f"- {peli} - Género: {genero}, Año: {año}") + +""" +Operaciones con el diccionario de peliculas favoritas + +""" +print("\n - Generos de mis peliculas favoritas:") +for peli in pelis_favoritas: + print(f"{peli} : {fav_peliculas[peli]['genero']}") + +print("\n - Años de mis peliculas favoritas:") +for peli in pelis_favoritas: + print(f"{peli} : {fav_peliculas[peli]['año']}") + +""" +Operaciones con el diccionario de peliculas favoritas + +""" +print("\n - Peliculas del año 2006:") +for peli in fav_peliculas: + if fav_peliculas [peli]["año"] == 2006: + print(f"- {peli} ({fav_peliculas[peli]['año']})") + +""" +EJERCICIO 2: Trivia con POO + +""" +""" +Crear clase de pregunta + +""" +class Pregunta: + def __init__(self, enunciado, opciones, respuesta_correcta): + self.enunciado = enunciado + self.opciones = opciones + self.respuesta_correcta = respuesta_correcta + + + def mostrar(self): + print(f"\n{self.enunciado}") + for i, opcion in enumerate(self.opciones, 1): + print(f"{i}. {opcion}") + + def verificar_respuesta(self, seleccion_usuario): + if self.opciones[seleccion_usuario - 1].lower () == self.respuesta_correcta.lower(): + print ("Respuesta Correcta") + else: + print(f"Incorrecto, La respuesta correcta es: {self.enunciado}") + +""" +Crear la pregunta + +""" +pregunta1 = Pregunta( + "¿Cuál es el servicio de diseño que se centra en identidad de marca?", + ["diseño publicitario","Branding","Diseño editorial","Diseño Web"], + "Branding" +) + +""" +Responder pregunta + +""" +pregunta1.mostrar() + +try: + numero = int(input("Ingrese una de las opciones (1-4): ")) + if 1 <= numero <= len(pregunta1.opciones): + pregunta1.verificar_respuesta(numero) + else: + print("Opcion Incorrecta") +except ValueError: + print("Ingresa una opncion del 1 al 4") \ No newline at end of file From b5ae0b08d3730e6498bfcda6e7a0911fc1691498 Mon Sep 17 00:00:00 2001 From: wrnunezz Date: Fri, 11 Jul 2025 19:22:06 -0500 Subject: [PATCH 55/95] Telebot Walter --- Leer.txt | 11 +++++++ clase3/Telebot walter/walter_nunez.py | 44 +++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 Leer.txt create mode 100644 clase3/Telebot walter/walter_nunez.py diff --git a/Leer.txt b/Leer.txt new file mode 100644 index 0000000..fa0deb3 --- /dev/null +++ b/Leer.txt @@ -0,0 +1,11 @@ +developers +https://developers.facebook.com/ + +Url para verificar del postman : + +https://www.postman.com/meta/whatsapp-business-platform/request/glfiyeg/send-reply-to-sticker-message-by-id?tab=auth + +twiilo + +https://pages.twilio.com/twilio-brand-sales-spa-latam-2?utm_source=google&utm_medium=cpc&utm_term=twilio&utm_campaign=G_S_LATAM_Brand_Twilio_Spanish&cq_plac=&cq_net=g&cq_pos=&cq_med=&cq_plt=gp&gad_source=1&gad_campaignid=14124383694&gbraid=0AAAAADcHgwURen2eGQVVBQhLnfsJOUonY&gclid=CjwKCAjwyb3DBhBlEiwAqZLe5LyfSVi6XxbjAna0FL4exD4OytnnCvX4owikR1J_XH1h4ivSDzdQiRoC07gQAvD_BwE + diff --git a/clase3/Telebot walter/walter_nunez.py b/clase3/Telebot walter/walter_nunez.py new file mode 100644 index 0000000..da18c50 --- /dev/null +++ b/clase3/Telebot walter/walter_nunez.py @@ -0,0 +1,44 @@ +import telebot + +# Reemplaza este token con el tuyo +TOKEN_BOT = '7597701644:AAGIdJVqk7KoelPcvRXU2TupDEF6kUakYRo' + +# Crea una instancia del bot +bot = telebot.TeleBot(TOKEN_BOT) + +# Comando /start +@bot.message_handler(commands=['start']) +def send_welcome(message): + bot.send_message(message.chat.id, "¡Hola! Bienvenido, escribe 'paquetes' para ver los servicios disponibles.") + +# Si el usuario escribe 'paquetes', se muestran las opciones +@bot.message_handler(func=lambda m: m.text.lower() == "paquetes") +def mostrar_paquetes(message): + opciones_texto = ( + "Estos son los paquetes que tenemos:\n" + "1. Manicure\n" + "2. Corte de cabello\n" + "3. Pedicure\n" + "Escribe el número del paquete que deseas:" + ) + bot.send_message(message.chat.id, opciones_texto) + bot.register_next_step_handler(message, procesar_opcion) + +# Procesar respuesta del usuario +def procesar_opcion(message): + seleccion = message.text.strip() + if seleccion == "1": + respuesta = "Has seleccionado: Manicure 💅" + elif seleccion == "2": + respuesta = "Has seleccionado: Corte de cabello 💇" + elif seleccion == "3": + respuesta = "Has seleccionado: Pedicure 🦶" + else: + respuesta = "Opción no válida. Por favor escribe 1, 2 o 3." + + bot.send_message(message.chat.id, respuesta) + +# Ejecutar el bot +if __name__ == '__main__': + print("Está ejecutándose el bot...") + bot.infinity_polling() From 80b8193173f96a1187fbade6c24dbffd6c61eac2 Mon Sep 17 00:00:00 2001 From: FreakJazz Date: Fri, 11 Jul 2025 23:05:55 -0500 Subject: [PATCH 56/95] add telebot y web app --- .env.example | 8 + clase2/readme.md | 2 +- clase4/chatbot_gemini.py | 62 +++++++ clase4/clase4.py | 49 +++++ clase4/jazmin_rodriguez.py | 17 ++ clase4/telebot.py | 265 ++++++++++++++++++++++++++++ clase4/web_bot/app.py | 93 ++++++++++ clase4/web_bot/templates/index.html | 39 ++++ proyecto/readme.md | 175 ++++++++++++++++++ 9 files changed, 709 insertions(+), 1 deletion(-) create mode 100644 .env.example create mode 100644 clase4/chatbot_gemini.py create mode 100644 clase4/clase4.py create mode 100644 clase4/jazmin_rodriguez.py create mode 100644 clase4/telebot.py create mode 100644 clase4/web_bot/app.py create mode 100644 clase4/web_bot/templates/index.html create mode 100644 proyecto/readme.md diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..11e2ff5 --- /dev/null +++ b/.env.example @@ -0,0 +1,8 @@ +TELEGRAM_BOT_TOKEN= +MAILJET_API_KEY= +MAILJET_SECRET_KEY= +MAILJET_URL= +EMAIL_FROM= +MAILJET_FROM_NAME= +DOMAIN= +API_KEY_GEMINI= \ No newline at end of file diff --git a/clase2/readme.md b/clase2/readme.md index 560b1aa..9209f62 100644 --- a/clase2/readme.md +++ b/clase2/readme.md @@ -40,7 +40,7 @@ Metodos: Crea: - Una lista con tus 3 películas favoritas. -- Un diccionario con tu nombre, genero, año. +- Un diccionario con nombre, genero, año. - Imprime las operaciones. --- diff --git a/clase4/chatbot_gemini.py b/clase4/chatbot_gemini.py new file mode 100644 index 0000000..2ab80b7 --- /dev/null +++ b/clase4/chatbot_gemini.py @@ -0,0 +1,62 @@ +import google.generativeai as ai +import os +from dotenv import load_dotenv + +load_dotenv() + +API_KEY = os.getenv("API_KEY_GEMINI") + +ai.configure(api_key=API_KEY) + +print("Checking available models for generateContent:") +model_to_use = None + +preferred_models = [ + "gemini-2.5-flash", + "gemini-2.5-flash-latest", + "gemini-2.5-flash-002", + "gemini-2.5-pro", + "gemini-2.5-pro-latest", + "gemini-2.5-pro-002", + "gemini-1.5-flash", + "gemini-1.5-flash-latest", + "gemini-1.5-flash-002", + "gemini-1.5-pro", + "gemini-1.5-pro-latest", + "gemini-1.5-pro-002", +] + +available_models = [] +for m in ai.list_models(): + if "generateContent" in m.supported_generation_methods: + full_model_name = m.name + available_models.append(full_model_name) + print(f"- {full_model_name}") + +for preferred in preferred_models: + if f"models/{preferred}" in available_models: + model_to_use = f"models/{preferred}" + break + +if not model_to_use: + print("\nError: No suitable 'gemini' model found that supports 'generateContent' from the preferred list.") + print("Please review the available models printed above and manually update 'preferred_models' in the script.") + exit() +else: + print(f"\nUsing model: {model_to_use}") + model = ai.GenerativeModel(model_to_use) + +chat = model.start_chat() + +while True: + message = input('You: ') + if message.lower() == 'bye': + print('Chatbot: Goodbye!') + break + try: + response = chat.send_message(message) + print('Chatbot:', response.text) + except Exception as e: + print(f"An error occurred while sending message: {e}") + print("Please try again or restart the chat.") + \ No newline at end of file diff --git a/clase4/clase4.py b/clase4/clase4.py new file mode 100644 index 0000000..a02e46b --- /dev/null +++ b/clase4/clase4.py @@ -0,0 +1,49 @@ +# telebot_app.py + +from telebot import TeleBot, types +from dotenv import load_dotenv +import datetime + +load_dotenv() + +BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN") +bot = TeleBot(BOT_TOKEN) + +# Estado temporal de los usuarios +user_data = {} + +@bot.message_handler(commands=['start']) +def start(message): + bot.send_message(message.chat.id, "👋 ¡Bienvenido al sistema de agendamiento de citas del SPA!\nPor favor, escribe tu nombre completo:") + bot.register_next_step_handler(message, process_name) + +def process_name(message): + user_data[message.chat.id] = {"name": message.text} + bot.send_message(message.chat.id, "¿Qué servicio deseas agendar? (Ej: masaje, facial, depilación)") + bot.register_next_step_handler(message, process_service) + +def process_service(message): + user_data[message.chat.id]["service"] = message.text + bot.send_message(message.chat.id, "¿Qué fecha deseas? (Formato: YYYY-MM-DD)") + bot.register_next_step_handler(message, process_date) + +def process_date(message): + try: + fecha = datetime.datetime.strptime(message.text, '%Y-%m-%d').date() + user_data[message.chat.id]["date"] = str(fecha) + bot.send_message(message.chat.id, "¿A qué hora? (Ej: 15:30)") + bot.register_next_step_handler(message, process_time) + except ValueError: + bot.send_message(message.chat.id, "Formato de fecha inválido. Intenta nuevamente (YYYY-MM-DD)") + bot.register_next_step_handler(message, process_date) + +def process_time(message): + user_data[message.chat.id]["time"] = message.text + data = user_data[message.chat.id] + resumen = f"📝 *Resumen de tu cita:*\nNombre: {data['name']}\nServicio: {data['service']}\nFecha: {data['date']}\nHora: {data['time']}" + bot.send_message(message.chat.id, resumen, parse_mode='Markdown') + bot.send_message(message.chat.id, "✅ ¡Tu cita ha sido registrada! Gracias por confiar en nuestro SPA ✨") + +if __name__ == "__main__": + print("Bot ejecutándose...") + bot.infinity_polling() \ No newline at end of file diff --git a/clase4/jazmin_rodriguez.py b/clase4/jazmin_rodriguez.py new file mode 100644 index 0000000..1e4b738 --- /dev/null +++ b/clase4/jazmin_rodriguez.py @@ -0,0 +1,17 @@ +from telebot import TeleBot + +TOKEN_BOT = '7217016747:AAF8wwtKCFcKFuO7DknBd1wyl8DLJ0EP-6w' + +bot = TeleBot(TOKEN_BOT) + +@bot.message_handler(commands=['start']) +def start(mensage): + print("Entro al start del bot") + bot.send_message("Bienvenido al SPA de Jazmin enque le podemos ayudar:") + bot.register_next_step_handler(mensage) + + +if __name__ == '__main__': + print("Esta ejecutandose el bot") + bot.infinity_polling() + \ No newline at end of file diff --git a/clase4/telebot.py b/clase4/telebot.py new file mode 100644 index 0000000..97cf391 --- /dev/null +++ b/clase4/telebot.py @@ -0,0 +1,265 @@ +from telegram import Update, ReplyKeyboardMarkup +from telegram.ext import ( + ApplicationBuilder, CommandHandler, MessageHandler, ContextTypes, + filters, ConversationHandler +) +from mailjet_rest import Client +import requests +import os +import re +import sqlite3 +from datetime import datetime +from dotenv import load_dotenv + +load_dotenv() + +BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN") +MAILJET_API_KEY = os.getenv("MAILJET_API_KEY") +MAILJET_URL = os.getenv("MAILJET_URL") +MAILJET_API_SECRET = os.getenv("MAILJET_SECRET_KEY") +MAILJET_FROM_NAME = os.getenv("MAILJET_FROM_NAME") +EMAIL_FROM = os.getenv("EMAIL_FROM") + +MENU, DATOS, AUTORIZACION, CONFIRMAR, ACCION = range(4) + +SERVICIOS = { + "1. 🌐 Web App": 1000, + "2. 📱 Mobile App": 1200, + "3. 🔌 API REST": 800, + "4. 📋 Consultoría": 500 +} + +conn = sqlite3.connect("telebot_complete.db", check_same_thread=False) +cursor = conn.cursor() + +cursor.execute(""" +CREATE TABLE IF NOT EXISTS chat_data ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER, + username TEXT, + servicio TEXT, + message_id INTEGER, + timestamp TEXT +) +""") +conn.commit() + +def guardar_interaccion(update: Update): + user = update.effective_user + username = user.username or "Sin username" + servicio = update.message.text + message_id = update.message.message_id + timestamp = datetime.now().isoformat() + + cursor.execute(""" + INSERT INTO chat_data (user_id, username, servicio, message_id, timestamp) + VALUES (?, ?, ?, ?, ?) + """, (user.id, username, servicio, message_id, timestamp)) + conn.commit() + +# Inicio del bot +async def start(update: Update, context: ContextTypes.DEFAULT_TYPE): + mensaje = ( + "🚀 Bienvenido al *Bot de Servicios de Software*.\n\n" + "Por favor, selecciona un servicio de la lista:" + ) + keyboard = [[opcion] for opcion in SERVICIOS.keys()] + await update.message.reply_text( + mensaje, + reply_markup=ReplyKeyboardMarkup(keyboard, resize_keyboard=True, one_time_keyboard=True), + parse_mode="Markdown" + ) + guardar_interaccion(update) + return MENU + +# Selección del servicio +async def seleccionar_servicio(update: Update, context: ContextTypes.DEFAULT_TYPE): + servicio = update.message.text.strip() + if servicio in SERVICIOS: + context.user_data["servicio"] = servicio + await update.message.reply_text( + f"📝 Has seleccionado *{servicio}*.\n\nAhora escribe:\n1. Tu nombre completo\n2. Tu correo electrónico\n3. Una breve descripción del proyecto", + parse_mode="Markdown" + ) + guardar_interaccion(update) + return DATOS + else: + await update.message.reply_text("❌ Opción inválida. Selecciona un servicio del menú.") + return await start(update, context) + +# Recolección de datos +async def recibir_datos(update: Update, context: ContextTypes.DEFAULT_TYPE): + texto = update.message.text.strip() + email = extraer_email(texto) + if not email: + await update.message.reply_text( + "❌ No se detectó un correo válido.\nPor favor, escribe tus datos nuevamente en este formato:\n\n`Nombre - correo@ejemplo.com - descripción`", + parse_mode="Markdown" + ) + guardar_interaccion(update) + return DATOS + + context.user_data["datos"] = texto + keyboard = [["✅ Sí", "❌ No"]] + await update.message.reply_text( + "🔐 ¿Autorizas el uso de tus datos para contactarte y procesar tu pedido?\nSelecciona una opción: \n✅ Sí / ❌ No", + reply_markup=ReplyKeyboardMarkup(keyboard, resize_keyboard=True, one_time_keyboard=True) + ) + guardar_interaccion(update) + return AUTORIZACION + +async def autorizacion(update: Update, context: ContextTypes.DEFAULT_TYPE): + respuesta = update.message.text.lower() + if "sí" in respuesta or "si" in respuesta or "✅" in respuesta: + servicio = context.user_data["servicio"] + precio = SERVICIOS[servicio] + keyboard = [["✅ Confirmar", "❌ Cancelar"]] + await update.message.reply_text( + f"💰 El precio de *{servicio}* es de *${precio}*.\n\n¿Deseas confirmar el pedido?\n✅ Confirmar / ❌ Cancelar", + reply_markup=ReplyKeyboardMarkup(keyboard, resize_keyboard=True, one_time_keyboard=True), + parse_mode="Markdown" + ) + guardar_interaccion(update) + return CONFIRMAR + elif "no" in respuesta or "❌" in respuesta: + await update.message.reply_text("🚫 No podemos continuar sin tu autorización. Escribe /start para comenzar de nuevo.") + return ConversationHandler.END + else: + await update.message.reply_text("❌ Respuesta inválida. Selecciona *Sí* o *No* desde el menú.") + return AUTORIZACION + +# Confirmación del pedido +async def confirmar(update: Update, context: ContextTypes.DEFAULT_TYPE): + texto = update.message.text.lower() + guardar_interaccion(update) + if "confirmar" in texto or "✅" in texto: + servicio = context.user_data["servicio"] + descripcion = context.user_data["datos"] + precio = SERVICIOS[servicio] + correo = extraer_email(descripcion) + + mensaje = ( + f"🎉 *Gracias por tu pedido!*\n\n" + f"✅ *Servicio:* {servicio}\n" + f"📝 *Descripción:* {descripcion}\n" + f"💵 *Precio:* ${precio}\n\n" + "Nos pondremos en contacto contigo pronto. 📧" + ) + + print("email", descripcion, precio, correo) + print("mensaje", mensaje) + + if correo: + enviado = enviar_mailjet(context, correo, MAILJET_FROM_NAME + " Confirmación de tu pedido", mensaje) + if enviado: + await update.message.reply_text("📧 Correo de confirmación enviado con éxito ✅") + else: + await update.message.reply_text("⚠️ Hubo un error al enviar el correo.") + else: + await update.message.reply_text("⚠️ El correo no se detectó correctamente. No se envió el correo.") + + await update.message.reply_text("¿Necesitas algo más? Escribe /start para hacer otro pedido.") + return ConversationHandler.END + elif "cancelar" in texto or "❌" in texto: + await update.message.reply_text("❌ Pedido cancelado. Si deseas iniciar de nuevo, escribe /start.") + return ConversationHandler.END + else: + await update.message.reply_text("❌ Respuesta inválida. Selecciona *Confirmar* o *Cancelar* desde el menú.") + return MENU + +# Extraer correo desde un texto +def extraer_email(texto): + match = re.search(r'[\w\.-]+@[\w\.-]+\.\w+', texto) + return match.group(0) if match else None + +def enviar_mailjet(context, destinatario, asunto, contenido): + # data = { + # 'Messages': [ + # { + # "From": { + # "Email": EMAIL_FROM, + # "Name": "Servicios de Software" + # }, + # "To": [ + # { + # "Email": destinatario, + # "Name": "Cliente" + # } + # ], + # "Subject": asunto, + # "TextPart": contenido + # } + # ] + # } + + data = { + "Messages": [ + { + "From": { + "Email": os.getenv("EMAIL_FROM"), + "Name": "Servicios de Software" + }, + "To": [ + { + "Email": destinatario, + "Name": "Cliente" + } + ], + "Subject": asunto, + "HTMLPart": f""" +
+

🎉 ¡Gracias por tu pedido!

+

Servicio: {context.user_data['servicio']}

+

📝 Descripción: {context.user_data['datos']}

+

💵 Precio: ${SERVICIOS[context.user_data['servicio']]}

+ + Gracias por tu pedido + +

Haz clic en el botón para visitar nuestra página:

+ + Ir a la página 🚀 + + +
+ """ + } + ] + } + + try: + response = requests.post( + MAILJET_URL, + json=data, + auth=(MAILJET_API_KEY, MAILJET_API_SECRET), + timeout=(3.05, 5) + ) + print(f"📨 Mailjet response: {response.status_code} - {response.text}") + return response.status_code == 200 + except Exception as e: + print(f"❌ Error enviando correo con Mailjet: {e}") + return False + +# Main +def main(): + app = ApplicationBuilder().token(BOT_TOKEN).build() + + conv_handler = ConversationHandler( + entry_points=[CommandHandler("start", start)], + states={ + MENU: [MessageHandler(filters.TEXT & ~filters.COMMAND, seleccionar_servicio)], + DATOS: [MessageHandler(filters.TEXT & ~filters.COMMAND, recibir_datos)], + AUTORIZACION: [MessageHandler(filters.TEXT & ~filters.COMMAND, autorizacion)], + CONFIRMAR: [MessageHandler(filters.TEXT & ~filters.COMMAND, confirmar)], + }, + fallbacks=[], + ) + + app.add_handler(conv_handler) + print("🤖 Bot en ejecución...") + app.run_polling() + +if __name__ == "__main__": + main() diff --git a/clase4/web_bot/app.py b/clase4/web_bot/app.py new file mode 100644 index 0000000..38ef279 --- /dev/null +++ b/clase4/web_bot/app.py @@ -0,0 +1,93 @@ +from flask import Flask, render_template, request, redirect, url_for +import sqlite3 +import os +from dotenv import load_dotenv +import google.generativeai as ai + +load_dotenv() +API_KEY = os.getenv("API_KEY_GEMINI") +ai.configure(api_key=API_KEY) + +preferred_models = [ + "gemini-2.5-flash", + "gemini-2.5-flash-latest", + "gemini-2.5-flash-002", + "gemini-1.5-flash", + "gemini-1.5-flash-latest", + "gemini-1.5-flash-002", +] + +model_to_use = None +for m in ai.list_models(): + if "generateContent" in m.supported_generation_methods: + for preferred in preferred_models: + if m.name == f"models/{preferred}": + model_to_use = m.name + break + if model_to_use: + break + +if not model_to_use: + raise Exception("No Gemini model available for generateContent") + +model = ai.GenerativeModel(model_to_use) +chat = model.start_chat() + +# --- Flask Setup --- +app = Flask(__name__) +DATABASE = 'chat.db' + +# --- Database Helper Functions --- +def init_db(): + conn = sqlite3.connect(DATABASE) + c = conn.cursor() + c.execute(''' + CREATE TABLE IF NOT EXISTS messages ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_message TEXT NOT NULL, + bot_response TEXT NOT NULL, + timestamp DATETIME DEFAULT CURRENT_TIMESTAMP + ) + ''') + conn.commit() + conn.close() + +init_db() + +@app.route('/') +def index(): + conn = sqlite3.connect(DATABASE) + c = conn.cursor() + c.execute("SELECT user_message, bot_response, timestamp FROM messages ORDER BY id ASC") + chat_history = c.fetchall() + conn.close() + return render_template('index.html', chat_history=chat_history) + +@app.route('/send', methods=['POST']) +def send(): + user_message = request.form['message'] + try: + response = chat.send_message(user_message) + bot_response = response.text + except Exception as e: + bot_response = f"Error: {e}" + + conn = sqlite3.connect(DATABASE) + c = conn.cursor() + c.execute("INSERT INTO messages (user_message, bot_response) VALUES (?, ?)", (user_message, bot_response)) + conn.commit() + conn.close() + + return redirect(url_for('index')) + +@app.route('/clear') +def clear(): + conn = sqlite3.connect(DATABASE) + c = conn.cursor() + c.execute("DELETE FROM messages") + conn.commit() + conn.close() + return redirect(url_for('index')) + +if __name__ == '__main__': + app.run(debug=True) diff --git a/clase4/web_bot/templates/index.html b/clase4/web_bot/templates/index.html new file mode 100644 index 0000000..1390477 --- /dev/null +++ b/clase4/web_bot/templates/index.html @@ -0,0 +1,39 @@ + + + + + 🤖 Chatbot con Gemini + + + + +
+

💬 Chatbot con Gemini AI

+ +
+
+ {% for user_msg, bot_msg, timestamp in chat_history %} +
Tú: {{ user_msg }}
+
Bot: {{ bot_msg }}
+ {% endfor %} +
+
+ +
+ + +
+ + +
+ + diff --git a/proyecto/readme.md b/proyecto/readme.md new file mode 100644 index 0000000..ea8d743 --- /dev/null +++ b/proyecto/readme.md @@ -0,0 +1,175 @@ +# 🧠 Proyecto Final – Chatbot con Python + +## 🚀 Descripción General + + Este proyecto tiene como objetivo aplicar todos los conocimientos adquiridos durante el curso, desarrollando un chatbot funcional que puede ejecutarse en Telegram o desde una interfaz web utilizando Flask. El bot debe conectarse a una API de inteligencia artificial (como Gemini) y almacenar sus interacciones en una base de datos. Además, debe incluir una acción adicional como enviar correos, generar una imagen o exportar información. + +## 🎯 Objetivo del Proyecto + + Crear un chatbot inteligente que interactúe con usuarios, responda preguntas, tome decisiones o realice acciones específicas (como agendar una cita, enviar un mensaje de confirmación o generar una imagen). Puedes elegir una de estas dos opciones: + +### Opción 1 – 🤖 Bot de Telegram + + Desarrolla un chatbot en Telegram usando `python-telegram-bot` que: + - Salude al usuario + - Ofrezca un menú de servicios + - Tome datos de contacto o pedidos + - Envíe mensajes de confirmación o genere imágenes + - Guarde las conversaciones en SQLite o JSON + +### Opción 2 – 🌐 Web App con Flask + + Crea una aplicación SPA (Single Page App) que: + - Permita al usuario enviar preguntas + - Se conecte con una IA (Gemini API, HuggingFace, etc.) + - Muestre respuestas como un chat web + - Guarde las conversaciones en SQLite + - Permita limpiar el historial y generar confirmaciones + + --- + +## 📁 Organización del Proyecto + + 1. Dentro de la carpeta `proyecto`, crea una carpeta con tu nombre y apellido. + + proyecto/ + ├── nombre_apellido/ + │ ├── app.py + │ ├── templates/ + │ │ └── index.html (solo para Flask) + │ ├── static/ + │ │ └── styles.css (opcional) o puedes usar Boostrap + │ ├── chat.db + │ ├── .env + │ └── README.md + + + 2. Coloca tu código y recursos dentro de esa carpeta. + 3. Indica claramente en tu `README.md` qué opción desarrollaste (Telegram o Flask). + + --- + +## 🧰 Requisitos Generales + +### Librerías Comunes (para ambos proyectos) + + ```bash + pip install python-dotenv + ``` + +## 🚀 Opción 1: Telegram Bot + +### 🧩 Librerías necesarias + + ```bash + pip install python-telegram-bot + pip install python-dotenv + ``` + +### 🔐 .env (ejemplo) + + ```bash + TELEGRAM_BOT_TOKEN=tu_token_de_telegram + ``` + +### 📌 Pasos + + 1. **Crea tu bot en Telegram** usando [@BotFather](https://t.me/BotFather) y obtén tu token. + 2. **Instala las dependencias necesarias**: + + ```bash + pip install python-telegram-bot python-dotenv sqlite3 + ``` + + 3. **Crea un archivo .env y agrega tu token**: + + ```bash + TELEGRAM_BOT_TOKEN=TU_TOKEN_AQUI + ``` + + 4. **Guardar cada interacción en SQLite (usuario, mensaje, hora)**. + + 5. **Agregar una acción adicional:** + + 6. **Enviar correo de confirmación** + + 7. **Generar imagen o PDF** + +## 🚀 Opción 2: Flask + AI + +### 🧩 Librerías necesarias + + ```bash + pip install Flask google-generativeai python-dotenv + ``` + +### 🔐 .env (ejemplo) + + ```bash + API_KEY_GEMINI=tu_clave_api_gemini + ``` + +### 📌 Pasos + + 1. **Crear entorno virtual:** + + ```bash + python -m venv venv + source venv/bin/activate # Windows: venv\Scripts\activate + ``` + + 2. **Crear archivo app.py y cargar la clave desde .env**: + + 3. **Crear formularios HTML + Bootstrap para enviar mensajes**: + + 4. **Procesar las preguntas con Gemini y mostrar respuestas.** + + 5. **Guardar los mensajes en SQLite** + + 6. **Agregar acción adicional:** + + 7. **Generar imagen o PDF, enviar correo** + +## ✅ Requisitos para Aprobar + +| Requisito | Obligatorio | +|--------------------------------------|-------------| +| Chat funcional | ✅ | +| Conexión con API externa | ✅ | +| Base de datos funcional | ✅ | +| Acción extra (correo, imagen, etc.) | ✅ | +| Documentación en README.md | ✅ | +| Carpeta con nombre del estudiante | ✅ | + +--- + +## 📰 Entrega + +1. Crear una carpeta con tu nombre completo en la carpeta `proyecto/`. +2. Agregar código fuente, plantilla HTML (si aplica), `.env.example`, base de datos y `README.md`. +3. Hacer fork del repositorio oficial. +4. Subir tus cambios (commit & push). +5. Crear Pull Request con el título: + > Proyecto - TuNombre TuApellido + +--- + +## 🚀 Recomendaciones + +- Investiga APIs gratuitas para mejorar tu bot (HuggingFace, Fun Translations, etc.). +- Usa `flask-mail` para enviar correos desde Flask. +- Usa `sqlite3`, `pandas`, `reportlab` o `Pillow` para guardar y mostrar datos. +- Usa `dotenv` para evitar exponer tus tokens. +- Agrega paginación, exportación o estilo profesional a tu app. + +--- + +## 📈 Inspiración + +Este proyecto te prepara para desarrollar sistemas reales de atención al cliente, asistentes inteligentes o integraciones en aplicaciones productivas. + +Pon en práctica tus conocimientos de Python, APIs, bases de datos, interfaces y comunicación con usuarios. + +--- + +✨ ¡Mucho éxito y manos al código! ✨ From 8b273b42b1b4e4a37a8a490690320a442d924d7b Mon Sep 17 00:00:00 2001 From: Wendy Moreno Date: Fri, 11 Jul 2025 23:22:51 -0500 Subject: [PATCH 57/95] Deber 1 --- clase1/Wendy_Moreno.py | 73 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 clase1/Wendy_Moreno.py diff --git a/clase1/Wendy_Moreno.py b/clase1/Wendy_Moreno.py new file mode 100644 index 0000000..7e300c7 --- /dev/null +++ b/clase1/Wendy_Moreno.py @@ -0,0 +1,73 @@ +## 🧪 Ejercicio 1: Números primos +# Función para verificar si un número es primo +def es_primo(num): + if num < 2: + return False + for i in range(2, num): + if num % i == 0: + return False + return True + +# Solicita al usuario un número +n = int(input("Ingresa un número: ")) + +# Verifica si el número ingresado es primo +if es_primo(n): + print(f"✅ El número {n} es primo.") + + # Lista para guardar los números primos del 1 al n + primos = [] + for i in range(1, n + 1): + if es_primo(i): + primos.append(i) + + # Muestra la lista de números primos + print(f"Números primos del 1 al {n}:") + print(primos) +else: + print(f"❌ El número {n} NO es primo.") + + +## 🧪 Ejercicio 2: Menu interactivo +import random +from datetime import datetime + +# Lista con 10 frases motivacionales +frases = [ + "✨ Cree en ti y todo será posible.", + "💪 Nunca te rindas, los grandes logros toman tiempo.", + "🚀 El éxito es la suma de pequeños esfuerzos repetidos cada día.", + "🌟 Hoy es un buen día para empezar algo nuevo.", + "🔥 Si puedes soñarlo, puedes lograrlo.", + "🌱 Cada paso te acerca a tu meta.", + "💫 El límite es el cielo, y tú tienes alas.", + "🏆 El fracaso es solo una oportunidad para comenzar de nuevo con más inteligencia.", + "📈 Sigue adelante, lo mejor aún está por venir.", + "🎯 La disciplina tarde o temprano vence al talento." +] + +# Menú interactivo +while True: + print("\n📋 MENÚ INTERACTIVO:") + print("1. Mostrar una frase motivacional") + print("2. Mostrar la fecha actual") + print("3. Salir") + + opcion = input("Elige una opción (1-3): ") + + if opcion == "1": + indice = random.randint(0, len(frases) - 1) + print("\n🧠 Frase motivacional:") + print(frases[indice]) + elif opcion == "2": + ahora = datetime.now() + print("\n📅 Fecha actual:") + print(ahora.strftime("%d/%m/%Y - %H:%M:%S")) + elif opcion == "3": + print("\n👋 ¡Gracias por usar el programa! ¡Hasta pronto!") + break + else: + print("❌ Opción no válida. Por favor, elige 1, 2 o 3.") + + + From a17afb49de9f02e5282e5c0d95bc7baf45bc5c6b Mon Sep 17 00:00:00 2001 From: Wendy Moreno Date: Sat, 12 Jul 2025 00:42:05 -0500 Subject: [PATCH 58/95] Deber 2 --- clase2/Wendy_Moreno.py | 125 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 clase2/Wendy_Moreno.py diff --git a/clase2/Wendy_Moreno.py b/clase2/Wendy_Moreno.py new file mode 100644 index 0000000..0f970ba --- /dev/null +++ b/clase2/Wendy_Moreno.py @@ -0,0 +1,125 @@ +## 🧪 Ejercicio 1: Objetos + +#Este objeto se llama ClienteContable. Representa a un cliente que tiene un negocio y puede necesitar declarar impuestos. + +class ClienteContable: + def __init__(self, nombre, tipo_negocio, necesita_declarar): + self.nombre = nombre + self.tipo_negocio = tipo_negocio + self.necesita_declarar = necesita_declarar + + def mostrar_info(self): + print(f"📌 Cliente: {self.nombre}") + print(f"🏪 Tipo de negocio: {self.tipo_negocio}") + print(f"🧾 ¿Debe declarar impuestos?: {'Sí' if self.necesita_declarar else 'No'}") + + def declarar_impuestos(self): + if self.necesita_declarar: + print(f"✅ Declarando impuestos para {self.nombre}...") + self.necesita_declarar = False + else: + print(f"❌ {self.nombre} ya está al día con sus impuestos.") + +# Crear un objeto cliente +cliente1 = ClienteContable("Cristina Moya", "Tienda Cris", True) + +# Usar los métodos del objeto +cliente1.mostrar_info() +cliente1.declarar_impuestos() +cliente1.mostrar_info() + +## 🧪 Ejercicio 2: Listas y diccionarios +# Lista de películas favoritas +peliculas = ["Coco", "Titanic", "Rapidos y Furiosos"] + +# Diccionario con info de las películas +info_peliculas = { + "Coco": {"genero": "Animación", "año": 2017}, + "Titanic": {"genero": "Romance", "año": 1997}, + "Rapidos y Furiosos": {"genero": "Acción", "año": 2001} +} + +# Mostrar menú +print("🎬 MIS PELÍCULAS FAVORITAS") +print("1. Agregar una nueva película") +print("2. Buscar posición de una película") +print("3. Reemplazar una película por otra") + +# Opción del usuario +opcion = input("Elige una opción (1-3): ") + +if opcion == "1": + nueva = input("Escribe el nombre de la nueva película: ") + peliculas.append(nueva) + print("Película agregada correctamente.") + print("Lista actual:", peliculas) + +elif opcion == "2": + buscar = input("Escribe el nombre de la película que quieres buscar: ") + if buscar in peliculas: + posicion = peliculas.index(buscar) + print(f"La película '{buscar}' está en la posición {posicion}.") + else: + print("La película no está en la lista.") + +elif opcion == "3": + antigua = input("¿Qué película quieres reemplazar?: ") + if antigua in peliculas: + nueva = input("¿Por cuál la quieres reemplazar?: ") + index = peliculas.index(antigua) + peliculas[index] = nueva + print("Película reemplazada correctamente.") + print("Lista actual:", peliculas) + else: + print("La película que quieres reemplazar no está en la lista.") + +else: + print("Opción no válida.") + +## 🧪 Ejercicio 3: Trivia con POO + +# Clase Pregunta +class Pregunta: + def __init__(self, enunciado, opciones, respuesta_correcta): + self.enunciado = enunciado + self.opciones = opciones + self.respuesta_correcta = respuesta_correcta + + def mostrar(self): + print("\n❓", self.enunciado) + for i, opcion in enumerate(self.opciones, 1): + print(f"{i}. {opcion}") + + def verificar(self, respuesta_usuario): + if self.opciones[respuesta_usuario - 1] == self.respuesta_correcta: + print("✅ ¡Correcto!") + return 1 + else: + print(f"❌ Incorrecto. La respuesta correcta era: {self.respuesta_correcta}") + return 0 + +# Lista de preguntas +pregunta1 = Pregunta("¿Cuál es la capital de Ecuador?", ["Guayaquil", "Quito", "Cuenca"], "Quito") +pregunta2 = Pregunta("¿Cuánto es 5 + 3?", ["6", "8", "10"], "8") +pregunta3 = Pregunta("¿Qué color resulta de mezclar azul y amarillo?", ["Verde", "Rojo", "Naranja"], "Verde") + +preguntas = [pregunta1, pregunta2, pregunta3] + +# Variable para llevar el puntaje +puntaje = 0 + +# Juego de trivia +print("🎮 BIENVENIDO A LA TRIVIA") +for pregunta in preguntas: + pregunta.mostrar() + try: + respuesta = int(input("Tu respuesta (1-3): ")) + if 1 <= respuesta <= 3: + puntaje += pregunta.verificar(respuesta) + else: + print("⚠️ Respuesta no válida. Debe ser 1, 2 o 3.") + except: + print("⚠️ Entrada inválida. Debe ser un número.") + +# Resultado final +print(f"\n🏁 Fin del juego. Tu puntaje final es: {puntaje} de {len(preguntas)}") From efef8261c070a66230a8c7cdc5a3762ff9bd0baa Mon Sep 17 00:00:00 2001 From: Wendy Moreno Date: Sat, 12 Jul 2025 01:00:58 -0500 Subject: [PATCH 59/95] Deber 2 --- clase2/Wendy_Moreno.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clase2/Wendy_Moreno.py b/clase2/Wendy_Moreno.py index 0f970ba..49740f7 100644 --- a/clase2/Wendy_Moreno.py +++ b/clase2/Wendy_Moreno.py @@ -109,7 +109,7 @@ def verificar(self, respuesta_usuario): puntaje = 0 # Juego de trivia -print("🎮 BIENVENIDO A LA TRIVIA") +print("BIENVENIDO A LA TRIVIA") for pregunta in preguntas: pregunta.mostrar() try: From 582aa2de88fa9303f31d2e255395208992e43cb0 Mon Sep 17 00:00:00 2001 From: GEORGEP15 Date: Sat, 12 Jul 2025 20:39:29 -0500 Subject: [PATCH 60/95] proyecto fianl --- proyecto/george_penafiel/README.md | 3 + proyecto/george_penafiel/app.py | 99 +++++++++++ proyecto/george_penafiel/chat.db | Bin 0 -> 20480 bytes proyecto/george_penafiel/templates/index.html | 164 ++++++++++++++++++ 4 files changed, 266 insertions(+) create mode 100644 proyecto/george_penafiel/README.md create mode 100644 proyecto/george_penafiel/app.py create mode 100644 proyecto/george_penafiel/chat.db create mode 100644 proyecto/george_penafiel/templates/index.html diff --git a/proyecto/george_penafiel/README.md b/proyecto/george_penafiel/README.md new file mode 100644 index 0000000..2e559c9 --- /dev/null +++ b/proyecto/george_penafiel/README.md @@ -0,0 +1,3 @@ +### 📝 Opción Desarrollada + +Este proyecto implementa la **Opción 2: Web App con Flask**. Se trata de un chatbot interactivo que funciona a través de una aplicación web, utilizando el framework Flask para la lógica del servidor y la API de Gemini para las respuestas. El historial de las conversaciones se almacena en una base de datos SQLite. \ No newline at end of file diff --git a/proyecto/george_penafiel/app.py b/proyecto/george_penafiel/app.py new file mode 100644 index 0000000..516f2ac --- /dev/null +++ b/proyecto/george_penafiel/app.py @@ -0,0 +1,99 @@ + +from flask import Flask, render_template, request, redirect, url_for +import sqlite3 +import os +from dotenv import load_dotenv +import google.generativeai as ai + +load_dotenv() +API_KEY = os.getenv("API_KEY_GEMINI") + +if not API_KEY: + raise ValueError("La API_KEY_GEMINI no está configurada en el archivo .env") + +ai.configure(api_key=API_KEY) + +preferred_models = [ + "gemini-2.5-flash", + "gemini-2.5-flash-latest", + "gemini-2.5-flash-002", + "gemini-1.5-flash", + "gemini-1.5-flash-latest", + "gemini-1.5-flash-002", + +] + +model_to_use = None +for m in ai.list_models(): + if "generateContent" in m.supported_generation_methods: + for preferred in preferred_models: + if m.name == f"models/{preferred}": + model_to_use = m.name + break + if model_to_use: + break + +if not model_to_use: + raise Exception("No se encontró un modelo Gemini adecuado que soporte 'generateContent' de la lista preferida.") + +model = ai.GenerativeModel(model_to_use) +chat = model.start_chat() + + +app = Flask(__name__) +DATABASE = 'chat.db' + + +def init_db(): + conn = sqlite3.connect(DATABASE) + c = conn.cursor() + c.execute(''' + CREATE TABLE IF NOT EXISTS messages ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_message TEXT NOT NULL, + bot_response TEXT NOT NULL, + timestamp DATETIME DEFAULT CURRENT_TIMESTAMP + ) + ''') + conn.commit() + conn.close() + +init_db() + +@app.route('/') +def index(): + conn = sqlite3.connect(DATABASE) + c = conn.cursor() + c.execute("SELECT user_message, bot_response, timestamp FROM messages ORDER BY id ASC") + chat_history = c.fetchall() + conn.close() + return render_template('index.html', chat_history=chat_history) + +@app.route('/send', methods=['POST']) +def send(): + user_message = request.form['message'] + try: + response = chat.send_message(user_message) + bot_response = response.text + except Exception as e: + bot_response = f"Error: {e}" + + conn = sqlite3.connect(DATABASE) + c = conn.cursor() + c.execute("INSERT INTO messages (user_message, bot_response) VALUES (?, ?)", (user_message, bot_response)) + conn.commit() + conn.close() + + return redirect(url_for('index')) + +@app.route('/clear') +def clear(): + conn = sqlite3.connect(DATABASE) + c = conn.cursor() + c.execute("DELETE FROM messages") + conn.commit() + conn.close() + return redirect(url_for('index')) + +if __name__ == '__main__': + app.run(debug=True) \ No newline at end of file diff --git a/proyecto/george_penafiel/chat.db b/proyecto/george_penafiel/chat.db new file mode 100644 index 0000000000000000000000000000000000000000..6937d0a13aab6558c022e62eec7eed2c1f2f0831 GIT binary patch literal 20480 zcmeHP&u<&Y6<*4=g37U#HZ@WpFfcYyl$2>f62-<65V(rX%4+p15{1@>))?*%$&q(= z*0Z~E=$qW2Jr%w8=38~}q1CM@P&E86`ey{a<{6txxB&_jZ83yNiOZQc?|tuk zKUTx>{->KV6RfLr#530L-t#II??;Szp7$Z1SMV$!75s9!e1o6#{$D*l^yYtEyM|Fy z*Z<_rUdD@iI0PI54grUNL%<>65O4@M1RMem0f&G?;2R;ZJ2m~mojaAs8SjK5eHP;O z^+_t8#qi zt)I8q_70v0o12s4Ix2gjMVhEM6>l4tNeIh$l(2`exxKN~Vh>wCUOU)qvj+!zdszPo zUEFW4ZS9T}snHF7W%esV{>toEmxq_Dm;N#Jmx}iO@Qs}D9~*SM{{FOAd%4wsqgfz1 z6DjMfY+ErAXHvw0Vw^q8hbIhw&CsGN1u$d2irH;*H5k4w=iHuW?2Etd<|4odIDtjO zS1IHr!XLiwN?+Zl&)Z{SILl)uj<6DzI~!NWlK8-g_Ia3Vm8v>}B4JM%q4#H&7M7ZK z7e2bX*kB8btN6Fve7XLeY479DR~iBM$3o5|$Ob8bWc7HaU{eC+6brb9F?oz3ksTwo z@Zn-8BIen?8qkzT1tP>?$P#fc=ZB)sVr4(cl%@|l!#}6ME#UM9w43o(J;$w^kqZj-LJ0YA%fy6E%3t|p0Q8u2dJ;=QE>0D9h> zAFeh&`t8#7Y3~QW|Gr5L&?^~aeHHJTSBu*yGDuRQRZsJX`*L_{!j6Y;8@17Fw8rM$#=sOBb`#A0CdF&0;3dD1WSHntOyDR@e}Pw{RNi07gMMBx%2WGJFNK(0g?=0)P=d8V+7AYYutmX%1Zm_QZM4|CBo zVY8o8{Yfz|l%xkh2dR!wz>yveL?hdg&<6l0$wRIS+jrg!#ROe;FMHR+7l^7DPdfa)JCK22_kU_5|^r2s|Mg!PC%ZyU_^ZY zHq(j?`9Q;Z8E-a*l@D$MTFufNISj=6OoDR~QOL>dq9@U9*U34SknlR<&@rb@eQaM6ZN4JQ^o+Z-OPgpHbOktE(K~6XzZ4`+eG(!dz)E`tWHeev#7+{oX z`ap2NfwhV}z^T1P^Dtg9Ylv5B9;4jvzny=9?BZs}RK=r%@NzH{6UH|i6XEcrt770s zja?{FhN*cNRV-wKvszVTqLi5=jIIpROvSsPt`)IJa)TUEh#LkZo%7vkbG5nn%Xg=} zo5$}oz-B)DqYA%x)hd3wMYoxs(k*KY2BXE~DegS0`w41G+P}qq*2j)KI5bc>Mu^~k z?M?ZOm5;BYnco>}=Gi0l9L|l|2J4G3G1K8XJ~-dkd)Ur@{~BH^vtN4n=N=9Lhk!%C zA>a^j2si{B0uBL(fJ49`;1F;K{NEt(ZspR=O8G5@8+8BwEo}DB{%w|D{mkwEyZ!(1 zuOhhpfBLgB{SDXc|GWKvxBu_<|K0w-+y5VJy1V`VulvH1+y8g_|8D=^?f;+qqJ`W4 z|1aAAZ#GvO%XI%gb^Y(&>>OU)!y(`ha0oaA90Cpjhk!%CA>a^j2si{B0{?ReY~Q%z z)qY{l*No1K4<6ynG!6jJ=`uQfb&t09Qjy@OR#Y4`#fk04GEs&-ds^8y%#^QIuYeV-z?E(8gJcBk=+UuAnUrWRxG_jFvqfhO;U-p@kzJ ZbXuY-a0Ge$%uIO@eRMqJ0;`sr{{-8L)WHA% literal 0 HcmV?d00001 diff --git a/proyecto/george_penafiel/templates/index.html b/proyecto/george_penafiel/templates/index.html new file mode 100644 index 0000000..6e0076b --- /dev/null +++ b/proyecto/george_penafiel/templates/index.html @@ -0,0 +1,164 @@ + + + + + + 💬 Chatbot con Gemini AI + + + + + +
+
+
+ Chatbot con Gemini AI +
+
+ {% for user_msg, bot_msg, timestamp in chat_history %} +
+ Tú: {{ user_msg }} +
{{ timestamp }}
+
+
+ Bot: {{ bot_msg }} +
{{ timestamp }}
+
+ {% endfor %} +
+ +
+ + Limpiar chat + +
+ + + + + \ No newline at end of file From d1ec6dc3d6a2fd827a6f184574f08f3056ce1b43 Mon Sep 17 00:00:00 2001 From: Wendy Moreno Date: Sat, 12 Jul 2025 21:03:40 -0500 Subject: [PATCH 61/95] Deber 3 --- clase3/Wendy_Moreno.py | 1 + clase3/flask_chistes/app.py | 27 ++++++++ clase3/flask_chistes/templates/index.html | 64 ++++++++++++++++++ clase3/flask_pokeapi/app.py | 82 ++++++++++++----------- clase3/flask_pokeapi/templates/index.html | 6 +- clase3/jazmin_rodriguez.py | 3 +- clase3/requirements.txt | 13 ++++ 7 files changed, 154 insertions(+), 42 deletions(-) create mode 100644 clase3/Wendy_Moreno.py create mode 100644 clase3/flask_chistes/app.py create mode 100644 clase3/flask_chistes/templates/index.html create mode 100644 clase3/requirements.txt diff --git a/clase3/Wendy_Moreno.py b/clase3/Wendy_Moreno.py new file mode 100644 index 0000000..ac85296 --- /dev/null +++ b/clase3/Wendy_Moreno.py @@ -0,0 +1 @@ +#Realizado los 2 ejercicios uno de pokemon que tiene nombre flask_pokeapi y el otro flask_chistes \ No newline at end of file diff --git a/clase3/flask_chistes/app.py b/clase3/flask_chistes/app.py new file mode 100644 index 0000000..e81e3a6 --- /dev/null +++ b/clase3/flask_chistes/app.py @@ -0,0 +1,27 @@ +import requests +from flask import Flask, render_template + +app = Flask(__name__) + +@app.route('/') +def chiste(): + chiste = {} + error = None + + try: + response = requests.get("https://official-joke-api.appspot.com/jokes/random") + if response.status_code == 200: + chiste = response.json() + else: + error = "No se pudo obtener un chiste. Intenta de nuevo." + except Exception as e: + error = f"Error al conectarse a la API: {e}" + + return render_template("index.html", chiste=chiste, error=error) + +@app.route('/salir') +def salir(): + return "

👋 ¡Gracias por reír con nosotros! Hasta la próxima.

" + +if __name__ == '__main__': + app.run(debug=True) diff --git a/clase3/flask_chistes/templates/index.html b/clase3/flask_chistes/templates/index.html new file mode 100644 index 0000000..ae97246 --- /dev/null +++ b/clase3/flask_chistes/templates/index.html @@ -0,0 +1,64 @@ + + + + + + 😂 Chiste del Día + + + + + + + + + + + +
+
+
+
+
😂
+

Chiste del Día

+ + {% if error %} +
{{ error }}
+ {% else %} +

{{ chiste.setup }}

+

{{ chiste.punchline }}

+ {% endif %} + + +
+
+
+
+ + + + \ No newline at end of file diff --git a/clase3/flask_pokeapi/app.py b/clase3/flask_pokeapi/app.py index 86fa206..94dbb0f 100644 --- a/clase3/flask_pokeapi/app.py +++ b/clase3/flask_pokeapi/app.py @@ -1,50 +1,54 @@ -from flask import Flask, render_template, request -import requests import math -app = Flask(__name__) +import requests +from flask import Flask, render_template, request -POKEMONS_PER_PAGE = 9 +app = Flask(__name__) -@app.route('/', methods=['GET']) +@app.route('/') def index(): - search_query = request.args.get('search', '').lower() page = int(request.args.get('page', 1)) - - offset = (page - 1) * POKEMONS_PER_PAGE - url = f'https://pokeapi.co/api/v2/pokemon?limit={POKEMONS_PER_PAGE}&offset={offset}' - response = requests.get(url) - - if response.status_code != 200: - return "Error al obtener los Pokémon" - - results = response.json() - all_pokemon = [] - - for poke in results['results']: - poke_data = requests.get(poke['url']).json() - name = poke_data['name'] - - if search_query in name: - pokemon = { - 'name': name.upper(), - 'sprite': poke_data['sprites']['front_default'], - 'image': poke_data['sprites']['other']['official-artwork']['front_shiny'], - 'types': [t['type']['name'] for t in poke_data['types']], - 'height': poke_data['height'], - 'weight': poke_data['weight'], - 'abilities': [a['ability']['name'] for a in poke_data['abilities']] - } - all_pokemon.append(pokemon) - - total = 100 - total_pages = math.ceil(total / POKEMONS_PER_PAGE) - - return render_template('index.html', - pokemon_list=all_pokemon, - search_query=search_query, + search = request.args.get('search', '').lower() + per_page = 9 + total_pokemons = 100 + offset = (page - 1) * per_page + pokemons = [] + + if search: + data = get_pokemon(search) + if data: + pokemons.append(data) + total_pages = 1 + else: + url = f'https://pokeapi.co/api/v2/pokemon?offset={offset}&limit={per_page}' + response = requests.get(url) + results = response.json().get('results', []) + for item in results: + poke_data = get_pokemon(item['name']) + if poke_data: + pokemons.append(poke_data) + total_pages = math.ceil(total_pokemons / per_page) + + return render_template('index.html', + pokemon_list=pokemons, + search_query=search, page=page, total_pages=total_pages) +def get_pokemon(name): + url = f'https://pokeapi.co/api/v2/pokemon/{name}' + response = requests.get(url) + if response.status_code == 200: + data = response.json() + return { + 'name': data['name'].capitalize(), + 'image_front': data['sprites']['front_default'], + 'image_back': data['sprites']['back_default'], + 'height': data['height'], + 'weight': data['weight'], + 'abilities': [a['ability']['name'] for a in data['abilities']] + } + return None + if __name__ == '__main__': app.run(debug=True) diff --git a/clase3/flask_pokeapi/templates/index.html b/clase3/flask_pokeapi/templates/index.html index 68792c3..a9d1ea8 100644 --- a/clase3/flask_pokeapi/templates/index.html +++ b/clase3/flask_pokeapi/templates/index.html @@ -23,11 +23,13 @@

POKEAPI

{% for pokemon in pokemon_list %}
- {{ pokemon.name }} +
+ Frente + Atrás +
{{ pokemon.name }}

- Tipo: {{ pokemon.types | join(', ') }}
Altura: {{ pokemon.height }}
Peso: {{ pokemon.weight }}
Habilidades: {{ pokemon.abilities | join(', ') }} diff --git a/clase3/jazmin_rodriguez.py b/clase3/jazmin_rodriguez.py index b5a3ed7..a035907 100644 --- a/clase3/jazmin_rodriguez.py +++ b/clase3/jazmin_rodriguez.py @@ -1,6 +1,7 @@ -import requests import json +import requests + URL = "https://fakestoreapi.com" def deserialize_json(json_data): diff --git a/clase3/requirements.txt b/clase3/requirements.txt new file mode 100644 index 0000000..6e922de --- /dev/null +++ b/clase3/requirements.txt @@ -0,0 +1,13 @@ +blinker==1.9.0 +certifi==2025.7.9 +charset-normalizer==3.4.2 +click==8.2.1 +colorama==0.4.6 +Flask==3.1.1 +idna==3.10 +itsdangerous==2.2.0 +Jinja2==3.1.6 +MarkupSafe==3.0.2 +requests==2.32.4 +urllib3==2.5.0 +Werkzeug==3.1.3 From 3e7035dda82b77d820d4e24f536e38656209aec7 Mon Sep 17 00:00:00 2001 From: Jorge Date: Sat, 12 Jul 2025 22:04:20 -0500 Subject: [PATCH 62/95] CLASE 3 JOREG GUATO --- clase3/jorge_guato/app.py | 101 ++++++++++++++++++++++++ clase3/jorge_guato/templates/index.html | 91 +++++++++++++++++++++ 2 files changed, 192 insertions(+) create mode 100644 clase3/jorge_guato/app.py create mode 100644 clase3/jorge_guato/templates/index.html diff --git a/clase3/jorge_guato/app.py b/clase3/jorge_guato/app.py new file mode 100644 index 0000000..6c99a01 --- /dev/null +++ b/clase3/jorge_guato/app.py @@ -0,0 +1,101 @@ +from flask import Flask, render_template, request +import requests, random + +app = Flask(__name__) + +# 🔍 Obtener detalle de un Pokémon desde su URL +def obtener_pokemon_detalle(url): + try: + res = requests.get(url) + res.raise_for_status() + data = res.json() + return { + "ID": data['id'], + "Nombre": data['name'].capitalize(), + "Altura": data['height'], + "Peso": data['weight'], + "Experiencia base": data['base_experience'], + "Tipos": [t['type']['name'] for t in data['types']], + "Habilidades": [h['ability']['name'] for h in data['abilities']], + "Imagen": data['sprites']['front_default'], + "Orden": data['order'], + "Movimientos": [m['move']['name'] for m in data['moves'][:3]], + } + except Exception as e: + print(f"❌ Error al obtener detalles: {e}") + return None + +# 📄 Obtener 9 Pokémon por página +def obtener_pokemons_por_pagina(pagina=1, por_pagina=9): + url = f"https://pokeapi.co/api/v2/pokemon?offset={(pagina - 1) * por_pagina}&limit={por_pagina}" + try: + res = requests.get(url) + res.raise_for_status() + data = res.json() + pokemons = [] + for p in data['results']: + info = obtener_pokemon_detalle(p['url']) + if info: + pokemons.append(info) + return pokemons + except Exception as e: + print(f"❌ Error al obtener lista: {e}") + return [] + +# 🎲 Obtener 3 Pokémon aleatorios +def obtener_3_pokemons_azar(): + pokemons = [] + for pid in random.sample(range(1, 1000), 3): + info = obtener_pokemon_detalle(f"https://pokeapi.co/api/v2/pokemon/{pid}") + if info: + pokemons.append(info) + return pokemons + +# 😂 Obtener chiste desde JokeAPI +def obtener_chiste(): + try: + res = requests.get("https://v2.jokeapi.dev/joke/Any?type=twopart") + res.raise_for_status() + data = res.json() + return { + "setup": data["setup"], + "punchline": data["delivery"] + } + except: + return None + +# 🏠 Inicio y búsqueda de Pokémon +@app.route("/") +@app.route("/pokemon") +def buscar_pokemon(): + nombre = request.args.get("pokemon") + pokemon = None + if nombre: + pokemon = obtener_pokemon_detalle(f"https://pokeapi.co/api/v2/pokemon/{nombre.lower()}") + return render_template("index.html", pokemon=pokemon) + +# 🎲 3 Pokémon aleatorios +@app.route("/random") +def mostrar_aleatorios(): + pokemons = obtener_3_pokemons_azar() + return render_template("index.html", random_pokemons=pokemons) + +# 📄 Paginación de Pokémon (página 1 por defecto) +@app.route("/menu") +def menu(): + opcion = request.args.get("opcion") + if opcion == "pagina": + pokemons = obtener_pokemons_por_pagina(pagina=1) + return render_template("index.html", pokemons_pagina=pokemons) + elif opcion == "random": + return mostrar_aleatorios() + return render_template("index.html") + +# 😂 Chiste aleatorio +@app.route("/joke") +def chiste(): + joke = obtener_chiste() + return render_template("index.html", joke=joke) + +if __name__ == "__main__": + app.run(debug=True) diff --git a/clase3/jorge_guato/templates/index.html b/clase3/jorge_guato/templates/index.html new file mode 100644 index 0000000..ba5aa45 --- /dev/null +++ b/clase3/jorge_guato/templates/index.html @@ -0,0 +1,91 @@ + + + + + + + PokéAPI + Chistes + + + +

+

🔍 Explorador de Pokémon y Chistes

+ +
+
+ + +
+
+ +
+
+ + +
+ +
+ + {% if pokemon %} +
+
+
#{{ pokemon.ID }} - {{ pokemon.Nombre }}
+ Sprite +

Tipos: {{ pokemon.Tipos | join(", ") }}

+

Altura: {{ pokemon.Altura }} | Peso: {{ pokemon.Peso }}

+

Habilidades: {{ pokemon.Habilidades | join(", ") }}

+

Movimientos: {{ pokemon.Movimientos | join(", ") }}

+
+
+ {% endif %} + + {% if pokemons_pagina %} +

📄 Página de Pokémons

+
+ {% for poke in pokemons_pagina %} +
+
+
+
#{{ poke.ID }} - {{ poke.Nombre }}
+

Tipos: {{ poke.Tipos | join(", ") }}

+ {{ poke.Nombre }} +
+
+
+ {% endfor %} +
+ {% endif %} + + {% if random_pokemons %} +

🎲 Pokémon aleatorios:

+
+ {% for poke in random_pokemons %} +
+
+
+
{{ poke.Nombre }}
+

Tipos: {{ poke.Tipos | join(", ") }}

+ {{ poke.Nombre }} +
+
+
+ {% endfor %} +
+ {% endif %} + + {% if joke %} +
+

{{ joke.setup }}

+

{{ joke.punchline }}

+
+ {% endif %} + + +
+ + From 2d01dbc811db1a6f662c5905da717a3f817d6bef Mon Sep 17 00:00:00 2001 From: Lizeth Albacura Date: Sun, 13 Jul 2025 03:56:02 -0500 Subject: [PATCH 63/95] Clase1. Deber. Lizeth Albacura --- clase1/Lizeth_Albacura.py | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 clase1/Lizeth_Albacura.py diff --git a/clase1/Lizeth_Albacura.py b/clase1/Lizeth_Albacura.py new file mode 100644 index 0000000..bb3e692 --- /dev/null +++ b/clase1/Lizeth_Albacura.py @@ -0,0 +1,45 @@ +#Clase1-ejercicios-Lizeth Albacura + +if __name__ == "__main__": + print("Saludos, soy Lizeth Albacura") + +#Ejercicio 1: números primos + +def es_primo(número): + if número < 2: + return False + for i in range(2, int(número ** 0.5)+1): + if número % i == 0: + return False + return True + +n = int(input("Ingrese el número que desee: ")) + +print(f"números primos del 1 al {n}:") +for i in range(1, n + 1): + if es_primo(i): + print(i) + +#Ejercicio 2:Menú interactivo + +import datetime +def menú(): + print("Bienvenido a este menú interactivo") + print("1. Mostrar una frase motivacional") + print("2. Mostrar la fecha actual") + print("3. Salir del programa") + + opcion = input("Elige una opción (1-3): ") + + if opcion == "1": + print("¡Encomienda a Dios tu camino confía en Él, y Él actuará.Salmo 37:5!)") + elif opcion == "2": + fecha_actual = datetime.datetime.now() + print("Fecha actual:", fecha_actual.strftime("%d/%m/%Y %H:%M:%S")) + elif opcion == "3": + print("Hasta luego, que tenga un buen día") + return + else: + print("Opción no válida. Intentalo otra vez.") + +menú() From 83f99342efcfb8a86a1818e0818da757f77490f3 Mon Sep 17 00:00:00 2001 From: Lizeth Albacura Date: Sun, 13 Jul 2025 03:58:28 -0500 Subject: [PATCH 64/95] Clase2. Deber. Lizeth Albacura --- clase2/Lizeth_ Albacura.py | 155 +++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 clase2/Lizeth_ Albacura.py diff --git a/clase2/Lizeth_ Albacura.py b/clase2/Lizeth_ Albacura.py new file mode 100644 index 0000000..d250419 --- /dev/null +++ b/clase2/Lizeth_ Albacura.py @@ -0,0 +1,155 @@ +#CLASE2-Lizeth Albacura + +#EJERCICIO 1: Objetos + +#Este objeto representa una plancha alisadora de cabello. +# Tiene propiedades como marca, modelo, color y temperatura máxima. +#Puede encenderse, ajustar la temperatura, y apagarse. +# Elegí este objeto porque es útil y común, especialmente en rutinas personales. + +""" +Plancha de Cabello: +- Marca +- Modelo +- Color +- Temperatura máxima + +Métodos: +- encender() +- ajustar_temperatura() +- apagar() +""" + +class PlanchaCabello: + def __init__(self, marca, modelo, color, temp_max): + self.marca = marca + self.modelo = modelo + self.color = color + self.temp_max = temp_max + self.encendida = False + self.temperatura_actual = 0 + + def encender(self): + self.encendida = True + self.temperatura_actual = 180 # temperatura inicial + print(f"La plancha {self.marca} está encendida a {self.temperatura_actual}°C.") + + def ajustar_temperatura(self, nueva_temp): + if self.encendida: + if nueva_temp <= self.temp_max: + self.temperatura_actual = nueva_temp + print(f"Temperatura ajustada a {nueva_temp}°C.") + else: + print(f"La temperatura máxima es {self.temp_max}°C.") + + def apagar(self): + self.encendida = False + self.temperatura_actual = 0 + print(f"La plancha {self.marca} está apagada.") + + +mi_plancha = PlanchaCabello("Revlon", "NV9193", "Lila", 200) + + +mi_plancha.encender() +mi_plancha.ajustar_temperatura(200) +mi_plancha.apagar() + + +print("Marca:", mi_plancha.marca) +print("Modelo:", mi_plancha.modelo) +print("Color:", mi_plancha.color) +print("Temperatura máxima:", mi_plancha.temp_max, "°C") + +#EJERCICIO 2: Listas y diccionarios + +#Películas favoritas + +peliculas_favoritas = ["El diario de Bridget Jones", "Legalmente rubia", "La Momia", "V de venganza"] + +#Diccionario con información de cada película +info_peliculas = { + "El diario de Bridget Jones": { + "Género": "Comedia romántica", + "Año": 2001 + }, + "Legalmente rubia": { + "Género": "Comedia", + "Año": 2001 + }, + "La Momia": { + "Género": "Acción / Aventura", + "Año": 1999 + }, + "V de venganza": { + "Género": "Ciencia ficción", + "Año": 2005 + } +} + +#Imprimir las operaciones +print("\nMis películas favoritas son:\n") +for pelicula in peliculas_favoritas: + print("-", pelicula) + +print("\nDetalles de las películas:\n") +for nombre in peliculas_favoritas: + datos = info_peliculas[nombre] + print(f"{nombre}:\nGénero:{datos['Género']}, \nAño: {datos['Año']}\n") + +#EJERCICIO 3-Trivia con POO + +class Pregunta: + def __init__(self, enunciado, opciones, respuesta_correcta): + self.enunciado = enunciado + self.opciones = opciones + self.respuesta_correcta = respuesta_correcta + + def mostrar(self): + print(self.enunciado) + for i, opcion in enumerate(self.opciones, 1): + print(f"{i}. {opcion}") + + def verificar_respuesta(self, seleccion_usuario): + try: + indice = int(seleccion_usuario) - 1 + if self.opciones[indice].lower() == self.respuesta_correcta.lower(): + print("✅ ¡Respuesta correcta!") + else: + print(f"❌ Respuesta incorrecta. La correcta es: {self.respuesta_correcta}") + except (IndexError, ValueError): + print("Opción inválida. Intenta con otro número") + +# Preguntas disponibles +preguntas = { + 1: Pregunta( + "¿Cuál es el nevado más grande del Ecuador?", + ["Cotopaxi", "Chimborazo", "Cayambe", "Antisana"], + "Chimborazo" + ), + 2: Pregunta( + "¿Cuál es la capital de Napo?", + ["Quito", "Ambato", "Nueva Loja", "Tena"], + "Tena" + ), + 3: Pregunta( + "¿En qué provincia se encuentra el Parque Nacional Cajas?", + ["Azuay", "Loja", "El Oro", "Pichincha"], + "Azuay" + ) +} + +# Opciones +print("\nPreguntas disponibles:") +for num in preguntas: + print(f"{num}. {preguntas[num].enunciado}") + +# Selección del usuario +numero = int(input("\nIngrese el número de la pregunta (1-3): ")) + +if numero in preguntas: + preguntas[numero].mostrar() + respuesta = input("Tu respuesta (número): ") + preguntas[numero].verificar_respuesta(respuesta) +else: + print("Número de pregunta no válido") From 0be0a1bcc2ad63ad6201af72ee914ab300cd87a3 Mon Sep 17 00:00:00 2001 From: Pamrlota Date: Sun, 13 Jul 2025 09:27:32 -0500 Subject: [PATCH 65/95] =?UTF-8?q?Valeria=5FQui=C3=B1onez.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit tarea 2 --- "clase2/Valeria_Qui\303\261onez.py" | 78 +++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 "clase2/Valeria_Qui\303\261onez.py" diff --git "a/clase2/Valeria_Qui\303\261onez.py" "b/clase2/Valeria_Qui\303\261onez.py" new file mode 100644 index 0000000..63cc0d9 --- /dev/null +++ "b/clase2/Valeria_Qui\303\261onez.py" @@ -0,0 +1,78 @@ +# clase 2-Estructuras y POO +Valeria Beatriz Quiñonez Rodriguez +# Ejercicio 1: Objetos +# Definimos la clase Laptop +class Laptop: + def __init__(self, marca, modelo, año, color, almacenamiento, memoria_ram=8): + self.marca = marca + self.modelo = modelo + self.año = año + self.color = color + self.almacenamiento = almacenamiento + self.memoria_ram = memoria_ram + self.estado = "apagado" + + def encender(self): + self.estado = "encendido" + print(f"La laptop {self.marca} {self.modelo} está {self.estado}.") + + def apagar(self): + self.estado = "apagado" + print(f"La laptop {self.marca} {self.modelo} está {self.estado}.") + def reiniciar(self): + if self.estado == "encendido": + print(f"La laptop {self.marca} {self.modelo} se está reiniciando.") + else: + print(f"No se puede reiniciar la laptop {self.marca} {self.modelo} porque está apagada.") +#Ejercicio 2: Listas y Diccionarios +#Lista con tus 3 peliculas favoritas +peliculas_favoritas = ["Legalmente Rubia", "Rasputia", "Shrek"] +#Imprimir lista +print("Mis películas favoritas son:") +for pelicula in peliculas_favoritas: + print(f"- {pelicula}") + #Diccionario con mis datos + mi_info = { + "nombre": "Valeria ", + "edad": 17, + "genero": "Femenino" + } + #Imprimir diccionario +print("\nMis datos:") +for clave, valor in mi_info.items(): + print(f"{clave.capitalize()}: {valor}") +#Ejercicio 3: Trivia con POO +class Pregunta: + def __init__(self, pregunta, respuesta_correcta, respuestas_incorrectas): + self.pregunta = pregunta + self.respuesta_correcta = respuesta_correcta + self.respuestas_incorrectas = respuestas_incorrectas + def mostrar_pregunta(self): + print(f"Pregunta: {self.pregunta}") + print("Respuestas posibles:") + for i, respuesta in enumerate(self.respuestas_incorrectas, start=1): + print(f"{i}. {respuesta}") + print(f"Respuesta correcta: {self.respuesta_correcta}") + print("¿Cuál de los siguientes son factores predisponentes para los cálculos de colesterol?:") + print("1. Fibrosis quística") + print("2. Hemólisis crónica") + print("3. Cirrosis alcohólica") + print("4. Ayuno") +def responder(self, numero): + if self.opciones[numero - 4].lower() == self.respuesta.lower(): + print("✅ Respuesta correcta.") + else: + print("❌ Respuesta incorrecta: 1, 2 y 3 son incorrectas.") + print(f"La respuesta correcta era: 4 {self.respuesta}") + # mostrat pregunta +pregunta1 = Pregunta( + "¿Cuál de los siguientes son factores predisponentes para los cálculos de colesterol?", + "Ayuno", + ["Fibrosis quística", "Hemólisis crónica", "Cirrosis alcohólica", "Ayuno"] +) +pregunta1.mostrar_pregunta() +# Responder a la pregunta +respuesta_usuario = int(input("Selecciona el número de tu respuesta: ")) +pregunta1.responder(respuesta_usuario) +elif respuesta_usuario == 1 or respuesta_usuario == 2 or respuesta_usuario == 3: + print("⚠️ Entrada inválida. Debes escribir un número válido de las opciones.") From 83704d5a45692e5c4072c340e1a922f9ea687e82 Mon Sep 17 00:00:00 2001 From: Pamrlota Date: Sun, 13 Jul 2025 10:22:55 -0500 Subject: [PATCH 66/95] =?UTF-8?q?valeria=5FQui=C3=B1onez.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit clase3 --- clase3/readme.md | 69 ------------------------------- "valeria_Qui\303\261onez.py" | 79 ++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 69 deletions(-) delete mode 100644 clase3/readme.md create mode 100644 "valeria_Qui\303\261onez.py" diff --git a/clase3/readme.md b/clase3/readme.md deleted file mode 100644 index c523456..0000000 --- a/clase3/readme.md +++ /dev/null @@ -1,69 +0,0 @@ -# Clase 3 – APIs y Consumo de Datos en Python - -## 🎯 Objetivo: -Aprender a consumir APIs públicas en Python, manipular datos JSON y mostrar información de forma útil en consola. - ---- - -## 📋 Instrucciones: - -1. Crea una carpeta `clase_3` y dentro un archivo `nombre_apellido.py`. -2. Asegúrate de tener instalada la librería `requests` (`pip install requests`). -3. Realiza los ejercicios propuestos a continuación. -4. Guarda los cambios, haz commit y push a tu fork del repositorio. -5. Crea un Pull Request con el título: `"Clase 3 - TuNombre TuApellido"` ---- - -## 📌 Requisitos: - -1. Instalar virtualenv: pip install virtualenv​ -2. Crear entorno virtual: python -m venv venv​ virtual enviroment -3. Activar entorno:​ en la carpeta raiz de todas las clases - - Mac source venv\bin\activate - - Windows: venv\Scripts\activate -4. Instalar Flask: pip install flask​ -5. Crear una carpeta con nombre_apellido en la carpeta clase3 -6. cd clase3/nombre_apellido -5. Ejecutar app: python app.py -pip freeze > requirements.txt -pip3 install -r requirements.txt -deactivate ---- - -## 🧪 Ejercicio 1 – Explorando la PokéAPI - -Utiliza la [PokeAPI](https://pokeapi.co) para mostrar información de un Pokémon ingresado por el usuario. - -### Requisitos: -- Muestra los datos de 9 pokemons con paginado - (Para evitar un renderizado lento de la pagina traer de 9 en 9 por cada pagina los datos de cada pokemon) -- Solicita al usuario el nombre de un Pokémon. -- Usa la API para obtener al menos unos 10 datos relevantes de la api por cada pokemon: - - Su número en la Pokédex. - - Sus tipos (fire, water, etc.). - - Una imagen (url del sprite). - - etc... - ---- - -## 🧪 Ejercicio 2 – API de chistes - -Consume la API pública: https://official-joke-api.appspot.com/jokes/random - -### Requisitos: -- Esto lo pueden hacer en consola o con flask -- Muestra el `setup` y `punchline` del chiste. -- El programa debe ejecutarse cada vez que el usuario presione Enter. -- Finaliza si el usuario escribe “salir”. - ---- - -## 💡 Recomendaciones: -- Usa `try-except` para manejar errores de red o errores de API. -- Imprime los resultados de forma clara y amigable. -- Puedes probar con otras APIs públicas si deseas practicar más. - ---- - -## ✅ Bonus: -- Crea una función que obtenga 3 Pokémon al azar y muestre sus nombres y tipos. diff --git "a/valeria_Qui\303\261onez.py" "b/valeria_Qui\303\261onez.py" new file mode 100644 index 0000000..9e2c969 --- /dev/null +++ "b/valeria_Qui\303\261onez.py" @@ -0,0 +1,79 @@ +from flask import Flask, render_template, request +import requests +import math + +app = Flask(__name__) + +def obtener_pokemon(nombre_o_url): + try: + if nombre_o_url.startswith("http"): + url = nombre_o_url + else: + url = f"https://pokeapi.co/api/v2/pokemon/{nombre_o_url.lower()}" + + r = requests.get(url) + r.raise_for_status() + data = r.json() + + return { + 'name': data['name'].capitalize(), + 'image': data['sprites']['front_default'], + 'height': f"{data['height'] / 10:.1f} m", + 'weight': f"{data['weight'] / 10:.1f} kg", + 'abilities': [{'name': ability['ability']['name'].capitalize()} for ability in data['abilities']] + } + except Exception as e: + return None + +@app.route("/") +def index(): + search_query = request.args.get("search", "").strip().lower() + try: + page = int(request.args.get("page", 2)) + except ValueError: + page = 2 # si viene algo no numérico, default a 2 + + limit = 9 + offset = (page - 1) * limit + + pokemon_list = [] + total_count = 0 + + if search_query: + pokemon = obtener_pokemon(search_query) + if pokemon: + pokemon_list = [pokemon] + total_count = 3 # Asumiendo que siempre habrá 3 resultados para una búsqueda específica + else: + pokemon_list = [] + else: + try: + url = f"https://pokeapi.co/api/v2/pokemon?offset={offset}&limit={limit}" + res = requests.get(url) + res.raise_for_status() + data = res.json() + + total_count = data["count"] + for item in data["results"]: + p = obtener_pokemon(item["url"]) + if p: + pokemon_list.append(p) + except Exception as e: + pokemon_list = [] + + total_pages = math.ceil(total_count / limit) if not search_query else 1 + + # Validar que page esté entre 1 y total_pages + if page < 1: + page = 1 + elif page > total_pages: + page = total_pages if total_pages > 0 else 2 + + return render_template("index.html", + pokemon_list=pokemon_list, + search_query=search_query, + page=page, + total_pages=total_pages) + +if __name__ == "__main__": + app.run(debug=True) From 5725f1f788d3e0f8cc2a7082f694bc436c47915f Mon Sep 17 00:00:00 2001 From: DELL13 Date: Sun, 13 Jul 2025 19:08:45 -0500 Subject: [PATCH 67/95] =?UTF-8?q?Entrega=20Clase3=20Ronald=20D=C3=ADaz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clase3/ronald_diaz/app.py | 72 +++ clase3/ronald_diaz/templates/chiste.html | 29 + clase3/ronald_diaz/templates/detallePoke.html | 49 ++ clase3/ronald_diaz/templates/index.html | 35 ++ .../ronald_diaz/templates/listadoPokes.html | 69 +++ entorno/Scripts/Activate.ps1 | 528 ++++++++++++++++++ entorno/Scripts/activate | 76 +++ entorno/Scripts/activate.bat | 34 ++ entorno/Scripts/deactivate.bat | 22 + entorno/Scripts/flask.exe | Bin 0 -> 108458 bytes entorno/Scripts/normalizer.exe | Bin 0 -> 108476 bytes entorno/Scripts/pip.exe | Bin 0 -> 108471 bytes entorno/Scripts/pip3.12.exe | Bin 0 -> 108471 bytes entorno/Scripts/pip3.exe | Bin 0 -> 108471 bytes entorno/Scripts/python.exe | Bin 0 -> 274424 bytes entorno/Scripts/pythonw.exe | Bin 0 -> 263400 bytes entorno/pyvenv.cfg | 5 + 17 files changed, 919 insertions(+) create mode 100644 clase3/ronald_diaz/app.py create mode 100644 clase3/ronald_diaz/templates/chiste.html create mode 100644 clase3/ronald_diaz/templates/detallePoke.html create mode 100644 clase3/ronald_diaz/templates/index.html create mode 100644 clase3/ronald_diaz/templates/listadoPokes.html create mode 100644 entorno/Scripts/Activate.ps1 create mode 100644 entorno/Scripts/activate create mode 100644 entorno/Scripts/activate.bat create mode 100644 entorno/Scripts/deactivate.bat create mode 100644 entorno/Scripts/flask.exe create mode 100644 entorno/Scripts/normalizer.exe create mode 100644 entorno/Scripts/pip.exe create mode 100644 entorno/Scripts/pip3.12.exe create mode 100644 entorno/Scripts/pip3.exe create mode 100644 entorno/Scripts/python.exe create mode 100644 entorno/Scripts/pythonw.exe create mode 100644 entorno/pyvenv.cfg diff --git a/clase3/ronald_diaz/app.py b/clase3/ronald_diaz/app.py new file mode 100644 index 0000000..b9dbd63 --- /dev/null +++ b/clase3/ronald_diaz/app.py @@ -0,0 +1,72 @@ +from flask import Flask, render_template, request, abort +import requests + +app = Flask(__name__) + +""" +Ejercicio 1:Comsumo Api Pokemon +""" + +API_BASE = "https://pokeapi.co/api/v2/pokemon" +PAGE_SIZE = 12 + +def listaPokemonesPage(page): + offset = (page - 1) * PAGE_SIZE + resp = requests.get(f"{API_BASE}?limit={PAGE_SIZE}&offset={offset}") + resp.raise_for_status() + data = resp.json() + return data['results'], bool(data['next']), bool(data['previous']) + +def obtenerPokemon(name): + resp = requests.get(f"{API_BASE}/{name.lower()}") + if resp.status_code == 404: + return None + resp.raise_for_status() + return resp.json() + +@app.route('/lista') +def listado(): + page = request.args.get('page', 1, type=int) + pokes, has_next, has_prev = listaPokemonesPage(page) + return render_template('listadoPokes.html', pokemons=pokes, page=page, has_next=has_next, has_prev=has_prev) + + +@app.route('/pokemon/') +def detalle(name): + p = obtenerPokemon(name) + if not p: + abort(404) + context = { + 'id': p['id'], + 'name': p['name'].capitalize(), + 'types': [t['type']['name'] for t in p['types']], + 'abilities': [a['ability']['name'] for a in p['abilities']], + 'height': p['height'], + 'weight': p['weight'], + 'base_experience': p['base_experience'], + 'stats': {s['stat']['name']: s['base_stat'] for s in p['stats']}, + 'sprite': p['sprites']['front_default'], + 'moves_count': len(p['moves']) + } + return render_template('detallePoke.html', **context) + +""" +Ejercicio 2 Consumo Api de chistes +""" +def obtener_chiste(): + resp = requests.get('https://official-joke-api.appspot.com/jokes/random') + resp.raise_for_status() + return resp.json() + +@app.route('/chistes') +def chistes(): + joke = obtener_chiste() + return render_template('chiste.html', setup=joke['setup'], punchline=joke['punchline']) + +@app.route('/') +def home(): + return render_template('index.html') + + +if __name__ == '__main__': + app.run(debug=True) \ No newline at end of file diff --git a/clase3/ronald_diaz/templates/chiste.html b/clase3/ronald_diaz/templates/chiste.html new file mode 100644 index 0000000..3df8b69 --- /dev/null +++ b/clase3/ronald_diaz/templates/chiste.html @@ -0,0 +1,29 @@ + + + + + + Chistes Aleatorios + + + + +
+

Chiste Aleatorio

+
+
+

Setup: {{ setup }}

+

Punchline: {{ punchline }}

+
+
+ +
+ + + + \ No newline at end of file diff --git a/clase3/ronald_diaz/templates/detallePoke.html b/clase3/ronald_diaz/templates/detallePoke.html new file mode 100644 index 0000000..06ec11f --- /dev/null +++ b/clase3/ronald_diaz/templates/detallePoke.html @@ -0,0 +1,49 @@ + + + + + + Detalles de {{ name }} + + + + + +
+
+
+
+ Sprite de {{ name }} +
+
+
+

{{ name }} (ID: {{ id }})

+

Tipos: {{ types | join(', ') }}

+

Habilidades: {{ abilities | join(', ') }}

+

Altura: {{ height }} dm

+

Peso: {{ weight }} hg

+

Experiencia base: {{ base_experience }}

+
Estadísticas
+
    + {% for stat, val in stats.items() %} +
  • + {{ stat.capitalize() }} + {{ val }} +
  • + {% endfor %} +
+

Movimientos aprendidos: {{ moves_count }}

+ « Volver al listado +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/clase3/ronald_diaz/templates/index.html b/clase3/ronald_diaz/templates/index.html new file mode 100644 index 0000000..7115895 --- /dev/null +++ b/clase3/ronald_diaz/templates/index.html @@ -0,0 +1,35 @@ + + + + + + Trabajo Clase 3 Ronald Díaz + + + + +
+

Trabajo Clase 3 Ronald Díaz

+
+
+ +
+
+ +
+
+
+ + + + + + \ No newline at end of file diff --git a/clase3/ronald_diaz/templates/listadoPokes.html b/clase3/ronald_diaz/templates/listadoPokes.html new file mode 100644 index 0000000..9d9f77b --- /dev/null +++ b/clase3/ronald_diaz/templates/listadoPokes.html @@ -0,0 +1,69 @@ + + + + + + PokéBrowser + + + + + + +
+
+

Listado Pokémon

+
+ +
+ {% for p in pokemons %} +
+
+
+
{{ p.name }}
+ Ver detalles +
+
+
+ {% endfor %} +
+ + +
+ + + + + + \ No newline at end of file diff --git a/entorno/Scripts/Activate.ps1 b/entorno/Scripts/Activate.ps1 new file mode 100644 index 0000000..918eac3 --- /dev/null +++ b/entorno/Scripts/Activate.ps1 @@ -0,0 +1,528 @@ +<# +.Synopsis +Activate a Python virtual environment for the current PowerShell session. + +.Description +Pushes the python executable for a virtual environment to the front of the +$Env:PATH environment variable and sets the prompt to signify that you are +in a Python virtual environment. Makes use of the command line switches as +well as the `pyvenv.cfg` file values present in the virtual environment. + +.Parameter VenvDir +Path to the directory that contains the virtual environment to activate. The +default value for this is the parent of the directory that the Activate.ps1 +script is located within. + +.Parameter Prompt +The prompt prefix to display when this virtual environment is activated. By +default, this prompt is the name of the virtual environment folder (VenvDir) +surrounded by parentheses and followed by a single space (ie. '(.venv) '). + +.Example +Activate.ps1 +Activates the Python virtual environment that contains the Activate.ps1 script. + +.Example +Activate.ps1 -Verbose +Activates the Python virtual environment that contains the Activate.ps1 script, +and shows extra information about the activation as it executes. + +.Example +Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv +Activates the Python virtual environment located in the specified location. + +.Example +Activate.ps1 -Prompt "MyPython" +Activates the Python virtual environment that contains the Activate.ps1 script, +and prefixes the current prompt with the specified string (surrounded in +parentheses) while the virtual environment is active. + +.Notes +On Windows, it may be required to enable this Activate.ps1 script by setting the +execution policy for the user. You can do this by issuing the following PowerShell +command: + +PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser + +For more information on Execution Policies: +https://go.microsoft.com/fwlink/?LinkID=135170 + +#> +Param( + [Parameter(Mandatory = $false)] + [String] + $VenvDir, + [Parameter(Mandatory = $false)] + [String] + $Prompt +) + +<# Function declarations --------------------------------------------------- #> + +<# +.Synopsis +Remove all shell session elements added by the Activate script, including the +addition of the virtual environment's Python executable from the beginning of +the PATH variable. + +.Parameter NonDestructive +If present, do not remove this function from the global namespace for the +session. + +#> +function global:deactivate ([switch]$NonDestructive) { + # Revert to original values + + # The prior prompt: + if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) { + Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt + Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT + } + + # The prior PYTHONHOME: + if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) { + Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME + Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME + } + + # The prior PATH: + if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) { + Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH + Remove-Item -Path Env:_OLD_VIRTUAL_PATH + } + + # Just remove the VIRTUAL_ENV altogether: + if (Test-Path -Path Env:VIRTUAL_ENV) { + Remove-Item -Path env:VIRTUAL_ENV + } + + # Just remove VIRTUAL_ENV_PROMPT altogether. + if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) { + Remove-Item -Path env:VIRTUAL_ENV_PROMPT + } + + # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether: + if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) { + Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force + } + + # Leave deactivate function in the global namespace if requested: + if (-not $NonDestructive) { + Remove-Item -Path function:deactivate + } +} + +<# +.Description +Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the +given folder, and returns them in a map. + +For each line in the pyvenv.cfg file, if that line can be parsed into exactly +two strings separated by `=` (with any amount of whitespace surrounding the =) +then it is considered a `key = value` line. The left hand string is the key, +the right hand is the value. + +If the value starts with a `'` or a `"` then the first and last character is +stripped from the value before being captured. + +.Parameter ConfigDir +Path to the directory that contains the `pyvenv.cfg` file. +#> +function Get-PyVenvConfig( + [String] + $ConfigDir +) { + Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg" + + # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue). + $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue + + # An empty map will be returned if no config file is found. + $pyvenvConfig = @{ } + + if ($pyvenvConfigPath) { + + Write-Verbose "File exists, parse `key = value` lines" + $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath + + $pyvenvConfigContent | ForEach-Object { + $keyval = $PSItem -split "\s*=\s*", 2 + if ($keyval[0] -and $keyval[1]) { + $val = $keyval[1] + + # Remove extraneous quotations around a string value. + if ("'""".Contains($val.Substring(0, 1))) { + $val = $val.Substring(1, $val.Length - 2) + } + + $pyvenvConfig[$keyval[0]] = $val + Write-Verbose "Adding Key: '$($keyval[0])'='$val'" + } + } + } + return $pyvenvConfig +} + + +<# Begin Activate script --------------------------------------------------- #> + +# Determine the containing directory of this script +$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition +$VenvExecDir = Get-Item -Path $VenvExecPath + +Write-Verbose "Activation script is located in path: '$VenvExecPath'" +Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)" +Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)" + +# Set values required in priority: CmdLine, ConfigFile, Default +# First, get the location of the virtual environment, it might not be +# VenvExecDir if specified on the command line. +if ($VenvDir) { + Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values" +} +else { + Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir." + $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/") + Write-Verbose "VenvDir=$VenvDir" +} + +# Next, read the `pyvenv.cfg` file to determine any required value such +# as `prompt`. +$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir + +# Next, set the prompt from the command line, or the config file, or +# just use the name of the virtual environment folder. +if ($Prompt) { + Write-Verbose "Prompt specified as argument, using '$Prompt'" +} +else { + Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value" + if ($pyvenvCfg -and $pyvenvCfg['prompt']) { + Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'" + $Prompt = $pyvenvCfg['prompt']; + } + else { + Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)" + Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'" + $Prompt = Split-Path -Path $venvDir -Leaf + } +} + +Write-Verbose "Prompt = '$Prompt'" +Write-Verbose "VenvDir='$VenvDir'" + +# Deactivate any currently active virtual environment, but leave the +# deactivate function in place. +deactivate -nondestructive + +# Now set the environment variable VIRTUAL_ENV, used by many tools to determine +# that there is an activated venv. +$env:VIRTUAL_ENV = $VenvDir + +if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) { + + Write-Verbose "Setting prompt to '$Prompt'" + + # Set the prompt to include the env name + # Make sure _OLD_VIRTUAL_PROMPT is global + function global:_OLD_VIRTUAL_PROMPT { "" } + Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT + New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt + + function global:prompt { + Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) " + _OLD_VIRTUAL_PROMPT + } + $env:VIRTUAL_ENV_PROMPT = $Prompt +} + +# Clear PYTHONHOME +if (Test-Path -Path Env:PYTHONHOME) { + Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME + Remove-Item -Path Env:PYTHONHOME +} + +# Add the venv to the PATH +Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH +$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH" + +# SIG # Begin signature block +# MII0CQYJKoZIhvcNAQcCoIIz+jCCM/YCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBnL745ElCYk8vk +# dBtMuQhLeWJ3ZGfzKW4DHCYzAn+QB6CCG9IwggXMMIIDtKADAgECAhBUmNLR1FsZ +# lUgTecgRwIeZMA0GCSqGSIb3DQEBDAUAMHcxCzAJBgNVBAYTAlVTMR4wHAYDVQQK +# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xSDBGBgNVBAMTP01pY3Jvc29mdCBJZGVu +# dGl0eSBWZXJpZmljYXRpb24gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAy +# MDAeFw0yMDA0MTYxODM2MTZaFw00NTA0MTYxODQ0NDBaMHcxCzAJBgNVBAYTAlVT +# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xSDBGBgNVBAMTP01pY3Jv +# c29mdCBJZGVudGl0eSBWZXJpZmljYXRpb24gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRo +# b3JpdHkgMjAyMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALORKgeD +# Bmf9np3gx8C3pOZCBH8Ppttf+9Va10Wg+3cL8IDzpm1aTXlT2KCGhFdFIMeiVPvH +# or+Kx24186IVxC9O40qFlkkN/76Z2BT2vCcH7kKbK/ULkgbk/WkTZaiRcvKYhOuD +# PQ7k13ESSCHLDe32R0m3m/nJxxe2hE//uKya13NnSYXjhr03QNAlhtTetcJtYmrV +# qXi8LW9J+eVsFBT9FMfTZRY33stuvF4pjf1imxUs1gXmuYkyM6Nix9fWUmcIxC70 +# ViueC4fM7Ke0pqrrBc0ZV6U6CwQnHJFnni1iLS8evtrAIMsEGcoz+4m+mOJyoHI1 +# vnnhnINv5G0Xb5DzPQCGdTiO0OBJmrvb0/gwytVXiGhNctO/bX9x2P29Da6SZEi3 +# W295JrXNm5UhhNHvDzI9e1eM80UHTHzgXhgONXaLbZ7LNnSrBfjgc10yVpRnlyUK +# xjU9lJfnwUSLgP3B+PR0GeUw9gb7IVc+BhyLaxWGJ0l7gpPKWeh1R+g/OPTHU3mg +# trTiXFHvvV84wRPmeAyVWi7FQFkozA8kwOy6CXcjmTimthzax7ogttc32H83rwjj +# O3HbbnMbfZlysOSGM1l0tRYAe1BtxoYT2v3EOYI9JACaYNq6lMAFUSw0rFCZE4e7 +# swWAsk0wAly4JoNdtGNz764jlU9gKL431VulAgMBAAGjVDBSMA4GA1UdDwEB/wQE +# AwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIftJqhSobyhmYBAcnz1AQ +# T2ioojAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0BAQwFAAOCAgEAr2rd5hnn +# LZRDGU7L6VCVZKUDkQKL4jaAOxWiUsIWGbZqWl10QzD0m/9gdAmxIR6QFm3FJI9c +# Zohj9E/MffISTEAQiwGf2qnIrvKVG8+dBetJPnSgaFvlVixlHIJ+U9pW2UYXeZJF +# xBA2CFIpF8svpvJ+1Gkkih6PsHMNzBxKq7Kq7aeRYwFkIqgyuH4yKLNncy2RtNwx +# AQv3Rwqm8ddK7VZgxCwIo3tAsLx0J1KH1r6I3TeKiW5niB31yV2g/rarOoDXGpc8 +# FzYiQR6sTdWD5jw4vU8w6VSp07YEwzJ2YbuwGMUrGLPAgNW3lbBeUU0i/OxYqujY +# lLSlLu2S3ucYfCFX3VVj979tzR/SpncocMfiWzpbCNJbTsgAlrPhgzavhgplXHT2 +# 6ux6anSg8Evu75SjrFDyh+3XOjCDyft9V77l4/hByuVkrrOj7FjshZrM77nq81YY +# uVxzmq/FdxeDWds3GhhyVKVB0rYjdaNDmuV3fJZ5t0GNv+zcgKCf0Xd1WF81E+Al +# GmcLfc4l+gcK5GEh2NQc5QfGNpn0ltDGFf5Ozdeui53bFv0ExpK91IjmqaOqu/dk +# ODtfzAzQNb50GQOmxapMomE2gj4d8yu8l13bS3g7LfU772Aj6PXsCyM2la+YZr9T +# 03u4aUoqlmZpxJTG9F9urJh4iIAGXKKy7aIwggb+MIIE5qADAgECAhMzAAM/y2Wy +# WWnFfpZcAAAAAz/LMA0GCSqGSIb3DQEBDAUAMFoxCzAJBgNVBAYTAlVTMR4wHAYD +# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKzApBgNVBAMTIk1pY3Jvc29mdCBJ +# RCBWZXJpZmllZCBDUyBBT0MgQ0EgMDEwHhcNMjUwNDA4MDEwNzI0WhcNMjUwNDEx +# MDEwNzI0WjB8MQswCQYDVQQGEwJVUzEPMA0GA1UECBMGT3JlZ29uMRIwEAYDVQQH +# EwlCZWF2ZXJ0b24xIzAhBgNVBAoTGlB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9u +# MSMwIQYDVQQDExpQeXRob24gU29mdHdhcmUgRm91bmRhdGlvbjCCAaIwDQYJKoZI +# hvcNAQEBBQADggGPADCCAYoCggGBAI0elXEcbTdGLOszMU2fzimHGM9Y4EjwFgC2 +# iGPdieHc0dK1DyEIdtnvjKxnG/KICC3J2MrhePGzMEkie3yQjx05B5leG0q8YoGU +# m9z9K67V6k3DSXX0vQe9FbaNVuyXed31MEf/qek7Zo4ELxu8n/LO3ibURBLRHNoW +# Dz9zr4DcU+hha0bdIL6SnKMLwHqRj59gtFFEPqXcOVO7kobkzQS3O1T5KNL/zGuW +# UGQln7fS4YI9bj24bfrSeG/QzLgChVYScxnUgjAANfT1+SnSxrT4/esMtfbcvfID +# BIvOWk+FPPj9IQWsAMEG/LLG4cF/pQ/TozUXKx362GJBbe6paTM/RCUTcffd83h2 +# bXo9vXO/roZYk6H0ecd2h2FFzLUQn/0i4RQQSOp6zt1eDf28h6F8ev+YYKcChph8 +# iRt32bJPcLQVbUzhehzT4C0pz6oAqPz8s0BGvlj1G6r4CY1Cs2YiMU09/Fl64pWf +# IsA/ReaYj6yNsgQZNUcvzobK2mTxMwIDAQABo4ICGTCCAhUwDAYDVR0TAQH/BAIw +# ADAOBgNVHQ8BAf8EBAMCB4AwPAYDVR0lBDUwMwYKKwYBBAGCN2EBAAYIKwYBBQUH +# AwMGGysGAQQBgjdhgqKNuwqmkohkgZH0oEWCk/3hbzAdBgNVHQ4EFgQU4Y4Xr/Xn +# zEXblXrNC0ZLdaPEJYUwHwYDVR0jBBgwFoAU6IPEM9fcnwycdpoKptTfh6ZeWO4w +# ZwYDVR0fBGAwXjBcoFqgWIZWaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9w +# cy9jcmwvTWljcm9zb2Z0JTIwSUQlMjBWZXJpZmllZCUyMENTJTIwQU9DJTIwQ0El +# MjAwMS5jcmwwgaUGCCsGAQUFBwEBBIGYMIGVMGQGCCsGAQUFBzAChlhodHRwOi8v +# d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMElEJTIw +# VmVyaWZpZWQlMjBDUyUyMEFPQyUyMENBJTIwMDEuY3J0MC0GCCsGAQUFBzABhiFo +# dHRwOi8vb25lb2NzcC5taWNyb3NvZnQuY29tL29jc3AwZgYDVR0gBF8wXTBRBgwr +# BgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQu +# Y29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMAgGBmeBDAEEATANBgkqhkiG +# 9w0BAQwFAAOCAgEAKTeVGPXsDKqQLe1OuKx6K6q711FPxNQyLOOqeenH8zybHwNo +# k05cMk39HQ7u+R9BQIL0bWexb7wa3XeKaX06p7aY/OQs+ycvUi/fC6RGlaLWmQ9D +# YhZn2TBz5znimvSf3P+aidCuXeDU5c8GpBFog6fjEa/k+n7TILi0spuYZ4yC9R48 +# R63/VvpLi2SqxfJbx5n92bY6driNzAntjoravF25BSejXVrdzefbnqbQnZPB39g8 +# XHygGPb0912fIuNKPLQa/uCnmYdXJnPb0ZgMxxA8fyxvL2Q30Qf5xpFDssPDElvD +# DoAbvR24CWvuHbu+CMMr2SJUpX4RRvDioO7JeB6wZb+64MXyPUSSf6QwkKNsHPIa +# e9tSfREh86sYn5bOA0Wd+Igk0RpA5jDRTu3GgPOPWbm1PU+VoeqThtHt6R3l17pr +# aQ5wIuuLXgxi1K4ZWgtvXw8BtIXfZz24qCtoo0+3kEGUpEHBgkF1SClbRb8uAzx+ +# 0ROGniLPJRU20Xfn7CgipeKLcNn33JPFwQHk1zpbGS0090mi0erOQCz0S47YdHmm +# RJcbkNIL9DeNAglTZ/TFxrYUM1NRS1Cp4e63MgBKcWh9VJNokInzzmS+bofZz+u1 +# mm8YNtiJjdT8fmizXdUEk68EXQhOs0+HBNvc9nMRK6R28MZu/J+PaUcPL84wggda +# MIIFQqADAgECAhMzAAAABzeMW6HZW4zUAAAAAAAHMA0GCSqGSIb3DQEBDAUAMGMx +# CzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xNDAy +# BgNVBAMTK01pY3Jvc29mdCBJRCBWZXJpZmllZCBDb2RlIFNpZ25pbmcgUENBIDIw +# MjEwHhcNMjEwNDEzMTczMTU0WhcNMjYwNDEzMTczMTU0WjBaMQswCQYDVQQGEwJV +# UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSswKQYDVQQDEyJNaWNy +# b3NvZnQgSUQgVmVyaWZpZWQgQ1MgQU9DIENBIDAxMIICIjANBgkqhkiG9w0BAQEF +# AAOCAg8AMIICCgKCAgEAt/fAAygHxbo+jxA04hNI8bz+EqbWvSu9dRgAawjCZau1 +# Y54IQal5ArpJWi8cIj0WA+mpwix8iTRguq9JELZvTMo2Z1U6AtE1Tn3mvq3mywZ9 +# SexVd+rPOTr+uda6GVgwLA80LhRf82AvrSwxmZpCH/laT08dn7+Gt0cXYVNKJORm +# 1hSrAjjDQiZ1Jiq/SqiDoHN6PGmT5hXKs22E79MeFWYB4y0UlNqW0Z2LPNua8k0r +# bERdiNS+nTP/xsESZUnrbmyXZaHvcyEKYK85WBz3Sr6Et8Vlbdid/pjBpcHI+Hyt +# oaUAGE6rSWqmh7/aEZeDDUkz9uMKOGasIgYnenUk5E0b2U//bQqDv3qdhj9UJYWA +# DNYC/3i3ixcW1VELaU+wTqXTxLAFelCi/lRHSjaWipDeE/TbBb0zTCiLnc9nmOjZ +# PKlutMNho91wxo4itcJoIk2bPot9t+AV+UwNaDRIbcEaQaBycl9pcYwWmf0bJ4IF +# n/CmYMVG1ekCBxByyRNkFkHmuMXLX6PMXcveE46jMr9syC3M8JHRddR4zVjd/FxB +# nS5HOro3pg6StuEPshrp7I/Kk1cTG8yOWl8aqf6OJeAVyG4lyJ9V+ZxClYmaU5yv +# tKYKk1FLBnEBfDWw+UAzQV0vcLp6AVx2Fc8n0vpoyudr3SwZmckJuz7R+S79BzMC +# AwEAAaOCAg4wggIKMA4GA1UdDwEB/wQEAwIBhjAQBgkrBgEEAYI3FQEEAwIBADAd +# BgNVHQ4EFgQU6IPEM9fcnwycdpoKptTfh6ZeWO4wVAYDVR0gBE0wSzBJBgRVHSAA +# MEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv +# RG9jcy9SZXBvc2l0b3J5Lmh0bTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAS +# BgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFNlBKbAPD2Ns72nX9c0pnqRI +# ajDmMHAGA1UdHwRpMGcwZaBjoGGGX2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9w +# a2lvcHMvY3JsL01pY3Jvc29mdCUyMElEJTIwVmVyaWZpZWQlMjBDb2RlJTIwU2ln +# bmluZyUyMFBDQSUyMDIwMjEuY3JsMIGuBggrBgEFBQcBAQSBoTCBnjBtBggrBgEF +# BQcwAoZhaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNy +# b3NvZnQlMjBJRCUyMFZlcmlmaWVkJTIwQ29kZSUyMFNpZ25pbmclMjBQQ0ElMjAy +# MDIxLmNydDAtBggrBgEFBQcwAYYhaHR0cDovL29uZW9jc3AubWljcm9zb2Z0LmNv +# bS9vY3NwMA0GCSqGSIb3DQEBDAUAA4ICAQB3/utLItkwLTp4Nfh99vrbpSsL8NwP +# Ij2+TBnZGL3C8etTGYs+HZUxNG+rNeZa+Rzu9oEcAZJDiGjEWytzMavD6Bih3nEW +# FsIW4aGh4gB4n/pRPeeVrK4i1LG7jJ3kPLRhNOHZiLUQtmrF4V6IxtUFjvBnijaZ +# 9oIxsSSQP8iHMjP92pjQrHBFWHGDbkmx+yO6Ian3QN3YmbdfewzSvnQmKbkiTibJ +# gcJ1L0TZ7BwmsDvm+0XRsPOfFgnzhLVqZdEyWww10bflOeBKqkb3SaCNQTz8nsha +# UZhrxVU5qNgYjaaDQQm+P2SEpBF7RolEC3lllfuL4AOGCtoNdPOWrx9vBZTXAVdT +# E2r0IDk8+5y1kLGTLKzmNFn6kVCc5BddM7xoDWQ4aUoCRXcsBeRhsclk7kVXP+zJ +# GPOXwjUJbnz2Kt9iF/8B6FDO4blGuGrogMpyXkuwCC2Z4XcfyMjPDhqZYAPGGTUI +# NMtFbau5RtGG1DOWE9edCahtuPMDgByfPixvhy3sn7zUHgIC/YsOTMxVuMQi/bga +# memo/VNKZrsZaS0nzmOxKpg9qDefj5fJ9gIHXcp2F0OHcVwe3KnEXa8kqzMDfrRl +# /wwKrNSFn3p7g0b44Ad1ONDmWt61MLQvF54LG62i6ffhTCeoFT9Z9pbUo2gxlyTF +# g7Bm0fgOlnRfGDCCB54wggWGoAMCAQICEzMAAAAHh6M0o3uljhwAAAAAAAcwDQYJ +# KoZIhvcNAQEMBQAwdzELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBD +# b3Jwb3JhdGlvbjFIMEYGA1UEAxM/TWljcm9zb2Z0IElkZW50aXR5IFZlcmlmaWNh +# dGlvbiBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDIwMB4XDTIxMDQwMTIw +# MDUyMFoXDTM2MDQwMTIwMTUyMFowYzELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1p +# Y3Jvc29mdCBDb3Jwb3JhdGlvbjE0MDIGA1UEAxMrTWljcm9zb2Z0IElEIFZlcmlm +# aWVkIENvZGUgU2lnbmluZyBQQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +# ADCCAgoCggIBALLwwK8ZiCji3VR6TElsaQhVCbRS/3pK+MHrJSj3Zxd3KU3rlfL3 +# qrZilYKJNqztA9OQacr1AwoNcHbKBLbsQAhBnIB34zxf52bDpIO3NJlfIaTE/xrw +# eLoQ71lzCHkD7A4As1Bs076Iu+mA6cQzsYYH/Cbl1icwQ6C65rU4V9NQhNUwgrx9 +# rGQ//h890Q8JdjLLw0nV+ayQ2Fbkd242o9kH82RZsH3HEyqjAB5a8+Ae2nPIPc8s +# ZU6ZE7iRrRZywRmrKDp5+TcmJX9MRff241UaOBs4NmHOyke8oU1TYrkxh+YeHgfW +# o5tTgkoSMoayqoDpHOLJs+qG8Tvh8SnifW2Jj3+ii11TS8/FGngEaNAWrbyfNrC6 +# 9oKpRQXY9bGH6jn9NEJv9weFxhTwyvx9OJLXmRGbAUXN1U9nf4lXezky6Uh/cgjk +# Vd6CGUAf0K+Jw+GE/5VpIVbcNr9rNE50Sbmy/4RTCEGvOq3GhjITbCa4crCzTTHg +# YYjHs1NbOc6brH+eKpWLtr+bGecy9CrwQyx7S/BfYJ+ozst7+yZtG2wR461uckFu +# 0t+gCwLdN0A6cFtSRtR8bvxVFyWwTtgMMFRuBa3vmUOTnfKLsLefRaQcVTgRnzeL +# zdpt32cdYKp+dhr2ogc+qM6K4CBI5/j4VFyC4QFeUP2YAidLtvpXRRo3AgMBAAGj +# ggI1MIICMTAOBgNVHQ8BAf8EBAMCAYYwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0O +# BBYEFNlBKbAPD2Ns72nX9c0pnqRIajDmMFQGA1UdIARNMEswSQYEVR0gADBBMD8G +# CCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3Mv +# UmVwb3NpdG9yeS5odG0wGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwDwYDVR0T +# AQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTIftJqhSobyhmYBAcnz1AQT2ioojCBhAYD +# VR0fBH0wezB5oHegdYZzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9j +# cmwvTWljcm9zb2Z0JTIwSWRlbnRpdHklMjBWZXJpZmljYXRpb24lMjBSb290JTIw +# Q2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDIwLmNybDCBwwYIKwYBBQUHAQEE +# gbYwgbMwgYEGCCsGAQUFBzAChnVodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtp +# b3BzL2NlcnRzL01pY3Jvc29mdCUyMElkZW50aXR5JTIwVmVyaWZpY2F0aW9uJTIw +# Um9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAyMC5jcnQwLQYIKwYB +# BQUHMAGGIWh0dHA6Ly9vbmVvY3NwLm1pY3Jvc29mdC5jb20vb2NzcDANBgkqhkiG +# 9w0BAQwFAAOCAgEAfyUqnv7Uq+rdZgrbVyNMul5skONbhls5fccPlmIbzi+OwVdP +# Q4H55v7VOInnmezQEeW4LqK0wja+fBznANbXLB0KrdMCbHQpbLvG6UA/Xv2pfpVI +# E1CRFfNF4XKO8XYEa3oW8oVH+KZHgIQRIwAbyFKQ9iyj4aOWeAzwk+f9E5StNp5T +# 8FG7/VEURIVWArbAzPt9ThVN3w1fAZkF7+YU9kbq1bCR2YD+MtunSQ1Rft6XG7b4 +# e0ejRA7mB2IoX5hNh3UEauY0byxNRG+fT2MCEhQl9g2i2fs6VOG19CNep7SquKaB +# jhWmirYyANb0RJSLWjinMLXNOAga10n8i9jqeprzSMU5ODmrMCJE12xS/NWShg/t +# uLjAsKP6SzYZ+1Ry358ZTFcx0FS/mx2vSoU8s8HRvy+rnXqyUJ9HBqS0DErVLjQw +# K8VtsBdekBmdTbQVoCgPCqr+PDPB3xajYnzevs7eidBsM71PINK2BoE2UfMwxCCX +# 3mccFgx6UsQeRSdVVVNSyALQe6PT12418xon2iDGE81OGCreLzDcMAZnrUAx4XQL +# Uz6ZTl65yPUiOh3k7Yww94lDf+8oG2oZmDh5O1Qe38E+M3vhKwmzIeoB1dVLlz4i +# 3IpaDcR+iuGjH2TdaC1ZOmBXiCRKJLj4DT2uhJ04ji+tHD6n58vhavFIrmcxgheN +# MIIXiQIBATBxMFoxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y +# cG9yYXRpb24xKzApBgNVBAMTIk1pY3Jvc29mdCBJRCBWZXJpZmllZCBDUyBBT0Mg +# Q0EgMDECEzMAAz/LZbJZacV+llwAAAADP8swDQYJYIZIAWUDBAIBBQCggcowGQYJ +# KoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQB +# gjcCARUwLwYJKoZIhvcNAQkEMSIEIGcBno/ti9PCrR9sXrajsTvlHQvGxbk63JiI +# URJByQuGMF4GCisGAQQBgjcCAQwxUDBOoEiARgBCAHUAaQBsAHQAOgAgAFIAZQBs +# AGUAYQBzAGUAXwB2ADMALgAxADIALgAxADAAXwAyADAAMgA1ADAANAAwADgALgAw +# ADKhAoAAMA0GCSqGSIb3DQEBAQUABIIBgE9xMVem4h5iAbvBzmB1pTdA4LYNkvd/ +# hSbYmJRt5oJqBR0RGbUmcfYAgTlhdb/S84aGvI3N62I8qeMApnH89q+UF0i8p6+U +# Qza6Mu1cAHCq0NkHH6+N8g7nIfe5Cn+BBCBJ6kuYfQm9bx1JwEm5/yVCwG9I6+XV +# 3WonOeA8djuZFfB9OIW6N9ubX7X+nYqWaeT6w6/lDs8mL+s0Fumy4mJ8B15pd9mr +# N6dIRFokzhuALq6G0USKFzYf3qJQ4GyCos/Luez3cr8sE/78ds6vah5IlLP6qXMM +# ETwAdoymIYSm3Dly3lflodd4d7/nkMhfHITOxSUDoBbCP6MO1rhChX591rJy/omK +# 0RdM9ZpMl6VXHhzZ+lB8U/6j7xJGlxJSJHet7HFEuTnJEjY9dDy2bUgzk0vK1Rs2 +# l7VLOP3X87p9iVz5vDAOQB0fcsMDJvhIzJlmIb5z2uZ6hqD4UZdTDMLIBWe9H7Kv +# rhmGDPHPRboFKtTrKoKcWaf4fJJ2NUtYlKGCFKAwghScBgorBgEEAYI3AwMBMYIU +# jDCCFIgGCSqGSIb3DQEHAqCCFHkwghR1AgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFh +# BgsqhkiG9w0BCRABBKCCAVAEggFMMIIBSAIBAQYKKwYBBAGEWQoDATAxMA0GCWCG +# SAFlAwQCAQUABCAY3nVyqXzzboHwsVGd+j5FjG9eaMv+O3mJKpX+3EJ43AIGZ9gU +# uyvYGBMyMDI1MDQwODEyNDEyMi40MTNaMASAAgH0oIHgpIHdMIHaMQswCQYDVQQG +# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG +# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQg +# QW1lcmljYSBPcGVyYXRpb25zMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjozREE1 +# LTk2M0ItRTFGNDE1MDMGA1UEAxMsTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZSBT +# dGFtcGluZyBBdXRob3JpdHmggg8gMIIHgjCCBWqgAwIBAgITMwAAAAXlzw//Zi7J +# hwAAAAAABTANBgkqhkiG9w0BAQwFADB3MQswCQYDVQQGEwJVUzEeMBwGA1UEChMV +# TWljcm9zb2Z0IENvcnBvcmF0aW9uMUgwRgYDVQQDEz9NaWNyb3NvZnQgSWRlbnRp +# dHkgVmVyaWZpY2F0aW9uIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMjAw +# HhcNMjAxMTE5MjAzMjMxWhcNMzUxMTE5MjA0MjMxWjBhMQswCQYDVQQGEwJVUzEe +# MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv +# ZnQgUHVibGljIFJTQSBUaW1lc3RhbXBpbmcgQ0EgMjAyMDCCAiIwDQYJKoZIhvcN +# AQEBBQADggIPADCCAgoCggIBAJ5851Jj/eDFnwV9Y7UGIqMcHtfnlzPREwW9ZUZH +# d5HBXXBvf7KrQ5cMSqFSHGqg2/qJhYqOQxwuEQXG8kB41wsDJP5d0zmLYKAY8Zxv +# 3lYkuLDsfMuIEqvGYOPURAH+Ybl4SJEESnt0MbPEoKdNihwM5xGv0rGofJ1qOYST +# Ncc55EbBT7uq3wx3mXhtVmtcCEr5ZKTkKKE1CxZvNPWdGWJUPC6e4uRfWHIhZcgC +# sJ+sozf5EeH5KrlFnxpjKKTavwfFP6XaGZGWUG8TZaiTogRoAlqcevbiqioUz1Yt +# 4FRK53P6ovnUfANjIgM9JDdJ4e0qiDRm5sOTiEQtBLGd9Vhd1MadxoGcHrRCsS5r +# O9yhv2fjJHrmlQ0EIXmp4DhDBieKUGR+eZ4CNE3ctW4uvSDQVeSp9h1SaPV8UWEf +# yTxgGjOsRpeexIveR1MPTVf7gt8hY64XNPO6iyUGsEgt8c2PxF87E+CO7A28TpjN +# q5eLiiunhKbq0XbjkNoU5JhtYUrlmAbpxRjb9tSreDdtACpm3rkpxp7AQndnI0Sh +# u/fk1/rE3oWsDqMX3jjv40e8KN5YsJBnczyWB4JyeeFMW3JBfdeAKhzohFe8U5w9 +# WuvcP1E8cIxLoKSDzCCBOu0hWdjzKNu8Y5SwB1lt5dQhABYyzR3dxEO/T1K/BVF3 +# rV69AgMBAAGjggIbMIICFzAOBgNVHQ8BAf8EBAMCAYYwEAYJKwYBBAGCNxUBBAMC +# AQAwHQYDVR0OBBYEFGtpKDo1L0hjQM972K9J6T7ZPdshMFQGA1UdIARNMEswSQYE +# VR0gADBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtp +# b3BzL0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJ +# KwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME +# GDAWgBTIftJqhSobyhmYBAcnz1AQT2ioojCBhAYDVR0fBH0wezB5oHegdYZzaHR0 +# cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwSWRl +# bnRpdHklMjBWZXJpZmljYXRpb24lMjBSb290JTIwQ2VydGlmaWNhdGUlMjBBdXRo +# b3JpdHklMjAyMDIwLmNybDCBlAYIKwYBBQUHAQEEgYcwgYQwgYEGCCsGAQUFBzAC +# hnVodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29m +# dCUyMElkZW50aXR5JTIwVmVyaWZpY2F0aW9uJTIwUm9vdCUyMENlcnRpZmljYXRl +# JTIwQXV0aG9yaXR5JTIwMjAyMC5jcnQwDQYJKoZIhvcNAQEMBQADggIBAF+Idsd+ +# bbVaFXXnTHho+k7h2ESZJRWluLE0Oa/pO+4ge/XEizXvhs0Y7+KVYyb4nHlugBes +# nFqBGEdC2IWmtKMyS1OWIviwpnK3aL5JedwzbeBF7POyg6IGG/XhhJ3UqWeWTO+C +# zb1c2NP5zyEh89F72u9UIw+IfvM9lzDmc2O2END7MPnrcjWdQnrLn1Ntday7JSyr +# DvBdmgbNnCKNZPmhzoa8PccOiQljjTW6GePe5sGFuRHzdFt8y+bN2neF7Zu8hTO1 +# I64XNGqst8S+w+RUdie8fXC1jKu3m9KGIqF4aldrYBamyh3g4nJPj/LR2CBaLyD+ +# 2BuGZCVmoNR/dSpRCxlot0i79dKOChmoONqbMI8m04uLaEHAv4qwKHQ1vBzbV/nG +# 89LDKbRSSvijmwJwxRxLLpMQ/u4xXxFfR4f/gksSkbJp7oqLwliDm/h+w0aJ/U5c +# cnYhYb7vPKNMN+SZDWycU5ODIRfyoGl59BsXR/HpRGtiJquOYGmvA/pk5vC1lcnb +# eMrcWD/26ozePQ/TWfNXKBOmkFpvPE8CH+EeGGWzqTCjdAsno2jzTeNSxlx3glDG +# Jgcdz5D/AAxw9Sdgq/+rY7jjgs7X6fqPTXPmaCAJKVHAP19oEjJIBwD1LyHbaEgB +# xFCogYSOiUIr0Xqcr1nJfiWG2GwYe6ZoAF1bMIIHljCCBX6gAwIBAgITMwAAAEYX +# 5HV6yv3a5QAAAAAARjANBgkqhkiG9w0BAQwFADBhMQswCQYDVQQGEwJVUzEeMBwG +# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQg +# UHVibGljIFJTQSBUaW1lc3RhbXBpbmcgQ0EgMjAyMDAeFw0yNDExMjYxODQ4NDla +# Fw0yNTExMTkxODQ4NDlaMIHaMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu +# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv +# cmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMSYw +# JAYDVQQLEx1UaGFsZXMgVFNTIEVTTjozREE1LTk2M0ItRTFGNDE1MDMGA1UEAxMs +# TWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZSBTdGFtcGluZyBBdXRob3JpdHkwggIi +# MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwlXzoj/MNL1BfnV+gg4d0fZum +# 1HdUJidSNTcDzpHJvmIBqH566zBYcV0TyN7+3qOnJjpoTx6JBMgNYnL5BmTX9Hrm +# X0WdNMLf74u7NtBSuAD2sf6n2qUUrz7i8f7r0JiZixKJnkvA/1akLHppQMDCug1o +# C0AYjd753b5vy1vWdrHXE9hL71BZe5DCq5/4LBny8aOQZlzvjewgONkiZm+Sfctk +# Jjh9LxdkDlq5EvGE6YU0uC37XF7qkHvIksD2+XgBP0lEMfmPJo2fI9FwIA9YMX7K +# IINEM5OY6nkvKryM9s5bK6LV4z48NYpiI1xvH15YDps+19nHCtKMVTZdB4cYhA0d +# VqJ7dAu4VcxUwD1AEcMxWbIOR1z6OFkVY9GX5oH8k17d9t35PWfn0XuxW4SG/rim +# gtFgpE/shRsy5nMCbHyeCdW0He1plrYQqTsSHP2n/lz2DCgIlnx+uvPLVf5+JG/1 +# d1i/LdwbC2WH6UEEJyZIl3a0YwM4rdzoR+P4dO9I/2oWOxXCYqFytYdCy9ljELUw +# byLjrjRddteR8QTxrCfadKpKfFY6Ak/HNZPUHaAPak3baOIvV7Q8axo3DWQy2ib3 +# zXV6hMPNt1v90pv+q9daQdwUzUrgcbwThdrRhWHwlRIVg2sR668HPn4/8l9ikGok +# rL6gAmVxNswEZ9awCwIDAQABo4IByzCCAccwHQYDVR0OBBYEFBE20NSvdrC6Z6cm +# 6RPGP8YbqIrxMB8GA1UdIwQYMBaAFGtpKDo1L0hjQM972K9J6T7ZPdshMGwGA1Ud +# HwRlMGMwYaBfoF2GW2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js +# L01pY3Jvc29mdCUyMFB1YmxpYyUyMFJTQSUyMFRpbWVzdGFtcGluZyUyMENBJTIw +# MjAyMC5jcmwweQYIKwYBBQUHAQEEbTBrMGkGCCsGAQUFBzAChl1odHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFB1YmxpYyUy +# MFJTQSUyMFRpbWVzdGFtcGluZyUyMENBJTIwMjAyMC5jcnQwDAYDVR0TAQH/BAIw +# ADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMCB4AwZgYDVR0g +# BF8wXTBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5t +# aWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMAgGBmeBDAEE +# AjANBgkqhkiG9w0BAQwFAAOCAgEAFIW5L+gGzX4gyHorS33YKXuK9iC91iZTpm30 +# x/EdHG6U8NAu2qityxjZVq6MDq300gspG0ntzLYqVhjfku7iNzE78k6tNgFCr9wv +# GkIHeK+Q2RAO9/s5R8rhNC+lywOB+6K5Zi0kfO0agVXf7Nk2O6F6D9AEzNLijG+c +# Oe5Ef2F5l4ZsVSkLFCI5jELC+r4KnNZjunc+qvjSz2DkNsXfrjFhyk+K7v7U7+JF +# Z8kZ58yFuxEX0cxDKpJLxiNh/ODCOL2UxYkhyfI3AR0EhfxX9QZHVgxyZwnavR35 +# FxqLSiGTeAJsK7YN3bIxyuP6eCcnkX8TMdpu9kPD97sHnM7po0UQDrjaN7etviLD +# xnax2nemdvJW3BewOLFrD1nSnd7ZHdPGPB3oWTCaK9/3XwQERLi3Xj+HZc89RP50 +# Nt7h7+3G6oq2kXYNidI9iWd+gL+lvkQZH9YTIfBCLWjvuXvUUUU+AvFI00Utqrvd +# rIdqCFaqE9HHQgSfXeQ53xLWdMCztUP/YnMXiJxNBkc6UE2px/o6+/LXJDIpwIXR +# 4HSodLfkfsNQl6FFrJ1xsOYGSHvcFkH8389RmUvrjr1NBbdesc4Bu4kox+3cabOZ +# c1zm89G+1RRL2tReFzSMlYSGO3iKn3GGXmQiRmFlBb3CpbUVQz+fgxVMfeL0j4Lm +# KQfT1jIxggPUMIID0AIBATB4MGExCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBQdWJsaWMgUlNB +# IFRpbWVzdGFtcGluZyBDQSAyMDIwAhMzAAAARhfkdXrK/drlAAAAAABGMA0GCWCG +# SAFlAwQCAQUAoIIBLTAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZI +# hvcNAQkEMSIEIHgwQkiMhul6IrfEKmPaCFR+R91oZOlPqVgP/9PPcfn+MIHdBgsq +# hkiG9w0BCRACLzGBzTCByjCBxzCBoAQgEid2SJpUPj5xQm73M4vqDmVh1QR6TiuT +# UVkL3P8Wis4wfDBlpGMwYTELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29m +# dCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGlt +# ZXN0YW1waW5nIENBIDIwMjACEzMAAABGF+R1esr92uUAAAAAAEYwIgQgVp6I1YBM +# Mni0rCuD57vEK/tzWZypHqWFikWLFVY11RwwDQYJKoZIhvcNAQELBQAEggIAnRBH +# voM5+wbJp+aOwrrL8fi8Rv/eFV820Nhr+jMny73UscN60OWdcdcZDbjDlnDX1KEP +# sNcEOFvaruHHrF4kDK8N0yemElNz63IgqhUoGoXXQKT2RgVg7T/kiQJH7zuaEjgB +# YNniAZdXXJJ1C+uv2ZQzkGIEVIEA6pB5/xo4kFhrfkOrdGzqL8HXT/RZQDMn5Uzk +# W+Sl2JmsyYBS4sgI9Ay3qT5nv+frzngbWlqx1dre21uj37Fgk5mWHJEdmY1nqTTd +# 25j6oDLGPC8AS9wtgZBXggemKAXwyeOFFahXUFN7X7cbwTALy5aWjE/rqp+N5J7M +# +YApl3aknUZ13KTXz9pfAF0uhmZimngvBHjijyctleF8HUP2RNAhS/l68OqW7oKi +# Dqvb7tSHJbcnYkxo7dUq6ppfN51ah61ZsyMVG6SaH015+5QO1k50ohXcFff2GOuZ +# d3Z9JOoAjIkeiVTNeRlPDlHtS0CSYu4ZKsWsst+0VY2R9rJBeoii9Xa0oiIggkYL +# 1pHAPH0B1uLlvFcI6B+fAXe0OiCJodbO5lk8ZpvCG5WWYbjzp2c3B8PZGSBgEpSf +# KYlVavvBAvaJCORUO7j8PyzzDINuzQorP9+i399ORjOnqeC92Cb0V12LcoqqtJaf +# 7oSB86VOI0lfHnPUlLWvoiLHrFR5PsYkltOuPqU= +# SIG # End signature block diff --git a/entorno/Scripts/activate b/entorno/Scripts/activate new file mode 100644 index 0000000..8309a12 --- /dev/null +++ b/entorno/Scripts/activate @@ -0,0 +1,76 @@ +# This file must be used with "source bin/activate" *from bash* +# You cannot run it directly + +deactivate () { + # reset old environment variables + if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then + PATH="${_OLD_VIRTUAL_PATH:-}" + export PATH + unset _OLD_VIRTUAL_PATH + fi + if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then + PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" + export PYTHONHOME + unset _OLD_VIRTUAL_PYTHONHOME + fi + + # Call hash to forget past locations. Without forgetting + # past locations the $PATH changes we made may not be respected. + # See "man bash" for more details. hash is usually a builtin of your shell + hash -r 2> /dev/null + + if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then + PS1="${_OLD_VIRTUAL_PS1:-}" + export PS1 + unset _OLD_VIRTUAL_PS1 + fi + + unset VIRTUAL_ENV + unset VIRTUAL_ENV_PROMPT + if [ ! "${1:-}" = "nondestructive" ] ; then + # Self destruct! + unset -f deactivate + fi +} + +# unset irrelevant variables +deactivate nondestructive + +# on Windows, a path can contain colons and backslashes and has to be converted: +case "$(uname)" in + CYGWIN*|MSYS*|MINGW*) + # transform D:\path\to\venv to /d/path/to/venv on MSYS and MINGW + # and to /cygdrive/d/path/to/venv on Cygwin + VIRTUAL_ENV=$(cygpath 'C:\Users\DELL13\Desktop\CURSO CHATBOT CON PYTHON\CLASES DE ESTE CURSO\python_telebots\entorno') + export VIRTUAL_ENV + ;; + *) + # use the path as-is + export VIRTUAL_ENV='C:\Users\DELL13\Desktop\CURSO CHATBOT CON PYTHON\CLASES DE ESTE CURSO\python_telebots\entorno' + ;; +esac + +_OLD_VIRTUAL_PATH="$PATH" +PATH="$VIRTUAL_ENV/"Scripts":$PATH" +export PATH + +VIRTUAL_ENV_PROMPT='(entorno) ' +export VIRTUAL_ENV_PROMPT + +# unset PYTHONHOME if set +# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) +# could use `if (set -u; : $PYTHONHOME) ;` in bash +if [ -n "${PYTHONHOME:-}" ] ; then + _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" + unset PYTHONHOME +fi + +if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then + _OLD_VIRTUAL_PS1="${PS1:-}" + PS1="("'(entorno) '") ${PS1:-}" + export PS1 +fi + +# Call hash to forget past commands. Without forgetting +# past commands the $PATH changes we made may not be respected +hash -r 2> /dev/null diff --git a/entorno/Scripts/activate.bat b/entorno/Scripts/activate.bat new file mode 100644 index 0000000..ba7ffa6 --- /dev/null +++ b/entorno/Scripts/activate.bat @@ -0,0 +1,34 @@ +@echo off + +rem This file is UTF-8 encoded, so we need to update the current code page while executing it +for /f "tokens=2 delims=:." %%a in ('"%SystemRoot%\System32\chcp.com"') do ( + set _OLD_CODEPAGE=%%a +) +if defined _OLD_CODEPAGE ( + "%SystemRoot%\System32\chcp.com" 65001 > nul +) + +set "VIRTUAL_ENV=C:\Users\DELL13\Desktop\CURSO CHATBOT CON PYTHON\CLASES DE ESTE CURSO\python_telebots\entorno" + +if not defined PROMPT set PROMPT=$P$G + +if defined _OLD_VIRTUAL_PROMPT set PROMPT=%_OLD_VIRTUAL_PROMPT% +if defined _OLD_VIRTUAL_PYTHONHOME set PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME% + +set _OLD_VIRTUAL_PROMPT=%PROMPT% +set PROMPT=(entorno) %PROMPT% + +if defined PYTHONHOME set _OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME% +set PYTHONHOME= + +if defined _OLD_VIRTUAL_PATH set PATH=%_OLD_VIRTUAL_PATH% +if not defined _OLD_VIRTUAL_PATH set _OLD_VIRTUAL_PATH=%PATH% + +set "PATH=%VIRTUAL_ENV%\Scripts;%PATH%" +set "VIRTUAL_ENV_PROMPT=(entorno) " + +:END +if defined _OLD_CODEPAGE ( + "%SystemRoot%\System32\chcp.com" %_OLD_CODEPAGE% > nul + set _OLD_CODEPAGE= +) diff --git a/entorno/Scripts/deactivate.bat b/entorno/Scripts/deactivate.bat new file mode 100644 index 0000000..62a39a7 --- /dev/null +++ b/entorno/Scripts/deactivate.bat @@ -0,0 +1,22 @@ +@echo off + +if defined _OLD_VIRTUAL_PROMPT ( + set "PROMPT=%_OLD_VIRTUAL_PROMPT%" +) +set _OLD_VIRTUAL_PROMPT= + +if defined _OLD_VIRTUAL_PYTHONHOME ( + set "PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%" + set _OLD_VIRTUAL_PYTHONHOME= +) + +if defined _OLD_VIRTUAL_PATH ( + set "PATH=%_OLD_VIRTUAL_PATH%" +) + +set _OLD_VIRTUAL_PATH= + +set VIRTUAL_ENV= +set VIRTUAL_ENV_PROMPT= + +:END diff --git a/entorno/Scripts/flask.exe b/entorno/Scripts/flask.exe new file mode 100644 index 0000000000000000000000000000000000000000..55ef6a21f0d820a73a61220aa133fb2ad0028148 GIT binary patch literal 108458 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 literal 0 HcmV?d00001 diff --git a/entorno/Scripts/normalizer.exe b/entorno/Scripts/normalizer.exe new file mode 100644 index 0000000000000000000000000000000000000000..29982ec70eef0369d754a6d49acd2390206e969f GIT binary patch literal 108476 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 literal 0 HcmV?d00001 diff --git a/entorno/Scripts/pip.exe b/entorno/Scripts/pip.exe new file mode 100644 index 0000000000000000000000000000000000000000..08d7b6be63843fc4733eeeda14f9815e074b1e33 GIT binary patch literal 108471 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 bnj83&t(`W568egD{oo57yxypATG#v^ck4>k literal 0 HcmV?d00001 diff --git a/entorno/Scripts/pip3.12.exe b/entorno/Scripts/pip3.12.exe new file mode 100644 index 0000000000000000000000000000000000000000..08d7b6be63843fc4733eeeda14f9815e074b1e33 GIT binary patch literal 108471 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 bnj83&t(`W568egD{oo57yxypATG#v^ck4>k literal 0 HcmV?d00001 diff --git a/entorno/Scripts/pip3.exe b/entorno/Scripts/pip3.exe new file mode 100644 index 0000000000000000000000000000000000000000..08d7b6be63843fc4733eeeda14f9815e074b1e33 GIT binary patch literal 108471 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 bnj83&t(`W568egD{oo57yxypATG#v^ck4>k literal 0 HcmV?d00001 diff --git a/entorno/Scripts/python.exe b/entorno/Scripts/python.exe new file mode 100644 index 0000000000000000000000000000000000000000..ba0cd04091d64f250906a8e6684a6823bcca1a4b GIT binary patch literal 274424 zcmeEv3w%_?_5W_Nn=FuU7fd9+7g;nmh>@TsEa+ac3$w7%C?KdH(S?WwHNss8@(SEU z*^G;{wZGbGE48&htlDa;JmQ0Ff_V@g0V{%9Mf9h$EY|o61g-o3p1He8z(;NCuYW(k zk7)MJojY^p%$YN1&YU?jQ*!NEQ>w{ivfwWsH<>o!N&npP_aFS2O{V^5)%7<$)n~`x zO=ka&!IS6QyueX0|F)av-*Af~aKo*)-ljQjob8w&yw!2@tq#u>lN`6)Hf#3q%*?*d z1n57Ua?NXpDlfSw`S+`?5o?y={a0NDYu=I1k!ud)`RV5)*Ssa41#7zGbHthk`TgQG z@8Nl<^5T2$$8%u(vNbXJY`MpHUL@bIx;Ze1$~dt`rCyV1)}865DcPUgl>F9VI@{DQ zrGK93Syb>dqK?V*#98>U%b**vMmWV}N|RANPZ%wtR8ob-bnhU%1COHxcy?G#>rkkBc8X~-rTeOXvr;$X^29SpM+i~fi79&hbC^tJ!{^VsLA$|ZTC)uw2+$UM&kgj38_7)T z+wg522$g{ZcjMXXpBp)cR~QLp9Z^?P4ien=g>>%WDYyY z;vWl5cG~?Rk2A*~@;e=quAa*D!}*LKV`0r%#`u1*Egp}13tCx7b2|LInei7Hw~3tf zCKJ=Q=FhzTx^7qml7*%_Z3M&Zw=1YxX#EiP8W@c^s^{ z5h>$--X<)+H<@bc71qf3bZ03_anI~7!@zRN)l=20jY6XS@KesU0OaHQ2yOm>$RRjD zHy^;d%aN$>WubW}3iz*kgv!`VMJg;pWvJKByne>6j506N)fKKY>B()ry zO#@A)f<5ujHG!77`OIYlVV~8TUn^unU62Li-oJ5 z6$r7gA1#5FN2_iV9zr{?uO=S!$FmoqAl|~l_d4^@O~f=1spi$n0s|#vr`WtUnU@82 z`@@+#$D){{9UjhHbvw!iN*;LR(3#812>p8elQ%JZLXAvLcm)vr)=Nrx%l0AheM;PAG1wqNEB4g{H16ux;j za*LON!FFY8JvC89LA^4-8{(SpCKKQa9XqXF&Zt1jEn>p;wroa_4MurhZNM45c8n> z;U^z|x!@uP6%fzA2o^b7UaE#>M z4)N;oNV_LZ-Lx8Gyh#0ZQX(x5B|1vAvkYGh5%HNUy9Mo5ut(hl0ca9aHd5Q4@%wQW z6UGi|Sqwel%xh6_Jo~ZD=;}wuQ1tv!VPN-X71M3ji@oO5x3FVtv;rl5X%50ncJiIR5e@*hKhQ0$F}bu|VD#j{UE!TQlVf*B0r?{U;I z_0`yB7JAIN4#XhVar^O7MK64pKlH4#0>OB80l3Lq@E$QU>gS7R?*U}$&}Du!cm9dv z2Be~g*LM#czm$n5V?+;UK0@NxiJC-zLKSEcITCxKn^IkcC=W*=e%?~B2N=Y&A3-lf zktfHqX99{8nSUShsf4ZI$m;#(pGT zKZ(F}bI}3<@k4wTKawB1ldhyGstq*5K#5z{u9F)mx)uG}@t*f<3aFL@6s#3U7gw0E|Q{t?91rZwX910(o3M zRv$fXItyoA4p!}}WnesMPMJ=8n{l}so{Da|15N+HrJ&zbgTM)3Kk5cHm4G2#Jp1o| zHaHteXnbj+Bs32fBMr2zuOUVyb#ABVLk*8$ICB>w&p$B2eF)9W3OvLv3=ZPQM#i5&wxO0+iC^Je?8gsyC<7^PrS}pl;yw!fjD8m4 z2Zi0X1>xlg1F}^-@+{u6!0{p-KY*2nNrU6M#?9%3LN^zBRW|zF$I_ z&Xh1IGWsCkQd*kRkuqVIiic6z3ov)C#(;4#D&`*1>0XWLp?DoMsolpjFaB|gN$)Z% z)kE;LrZqUB*?JbDhz4j2)6+C^Wk$e%VlN3eGc{bA0;P|q#MM^Mp_%={X|+3pq+uzFp!Iz(R_^Oh->gPMi@-s+M#2iIiE8KJ;hz!8MKN&7t-YH zNwateuy|wa6r{M{Na3nl>U5ZpW(Cq1lM6RZ02zpzKQqxDrvaz6M$_04gzVUi)NAp) znVzy;ngLoi$b9I*NuGn=M+(M}CqXMxP6r|o&z|=Ly|&c#v6!e~9oMn=P#Yz|Jjn)N zg_{R~#_{aWkPdWDmukDjKZAOUNy4kur5!wXKGO@Y!)U2(Pv)N(>ub6t`dFBl(2(aJc zNJg3&&%8SsiHvp#01*cXK$We9jp%#QTHyvI;@O}6kt+V@qX1d}dqq8IQe_Yf@$4vl zL0yZOKFe7M4E#=v&-e-zhsXjm0b~(oM)Zc>&!ID4k zYhDdHL7~0)DxO5IMX$Hx{dIc(wS3oxqlAKTbnVh6n?{*ki6`Y>4sLe@XvL9g`0 z>qb19tSj+rmI#pW0Inu+D+-sgBgfApn@X;QE>UEC zYYooa)DM};i`1OpWPe_Rvhm6+rZ?oU)ZNNPH4W-ql|P)ZjfJwDKG$w7hfm1xyCU=Z z^0Btmh~HH|A57bj8+!w~Xw4pjO8Om6(=wu0U(huT&lE}KoJNC2wfn`nkaPum(B%E9 zUk#?SyR!cfM!lpEOw#c;h%wdf*DTe0f*E3LJzm}q5mXjaJTQzk7^NiS>od^A*pYpw)gRdhl|(kAoWD(B{4f{^b};L_ zrNHc&5f8m_{?GHkN0=gLOrLEBmzLP$*$W>hruM?%;O&TKm*I`qvkNKgH^SkP9OHc? zy?b+zt%F4lI9LI~1>O!;5Mi5v1^xm05WE!h6a|zcXzl0{pdbw&N80gvDq#cxHKVbh zzHz(M#=w6vY;v2(a!6tN1B3mNgh71h-p9<~izm#D+Z(_j^anfRkMPYHSMG{|4!X@L z-T@v6q!_d)s4uc^LgC82^^Hj1g((0%qx95=UW4p-r?Cg7mdBiK%s^pnsV5=1KOw~~ zM!9Ha3vb(T-ew3%lh}$9z$+kwx~ZMUhkic=3Go`w-v1~O^Opk2Soo*=@DXwok|Lhn zOkV(JbW%cu56G`FQIC`Wa$!LqNKQyfBj6w*yhehqX`zpDJ`}2}Fv!C;}{=eLfY4lH8b2 zB8cvusefwLY+;rvB9M@bKj3T!rP#`?M6el+QBq>T)3V*5^AOhg1cU_RW}_$Df)}s= z8_iN%5`EXv(|5D=&DDU=e_@8cnPjX<`DwD_k$56r$V4o7;m5xxUXbNb+mXuPVEh!= z#8$cj3vM|OJY8RsV+o$jCpp5a4jh~Jj(#*{VfM;nCil0e8yC$gDgCz6pz?I4EI#2w0O1y+`;rl8*{xeKPmxJ@0@Ay zR5EX#k=J=b-nWT1Uy@hyHtK~gslf(FW@y=$?POk39)bne!}q8wKfL+Y**)c@7(e^gU}(n2-hR77B}aKzXv$~7>zJMysf4f@+Ho1| z(#_UK@M5Ymna0$onN3>mn6k7KlQwuv1wBr+KGF4ATtDhqcM>e_b)4Nes!@?0kz31fRZ&AcHA&9Xa^ah!|C=J9yH93EiOFDsNMvC`O|8p>f#% z^*7T))~oLVsFkg`CX<;R+0BMzh9vCFRd}F57WQNMn_E~YbAAF~_5!H3UI)rKaMFT4 zcw96UUx37PXCXQk^iSZp)sE$k8B&%PSu0cvb!Y0v+m($C7}{ytr`%fqp;FNTQ&+`q z*ct1G#%XpurUSo=&i+VMZZj!Ukt*1NzXs)MJYJ4K4xO?Mk)#m6Hw$N;#}C&{*GS2moAbsQjpu^WncB-)6E*2nxJ z2qsbM2nlca+7FcQcEIFq%G5oPH*NjefNms-?tVhoH>APmYFv~nF@@R#{Io{=ZRiT(Hkvu8eYEZ7i&st6$YpYID5Rt#TZPE~_6h2Vbf^tEciq z2vZw!1R@y=joKbu5H#LdAVMwDkLs=6pcX<2DpE#%k1xT8Z zhcoX$NOau4WMM8b|13&_z=D%0wY>;`!G09XKrll~ zk2k2U_W9dgCk4@oS-hU8T95qt=th%f=axp~4W32tgXhKug~yvwS2Z-A!O-58@uayV zb*mb0k2iaGs_HtbteS!B5~UBzYp=D9%CHCf zq7umQA%yd3^-v;ER!ysR(`u|W0~lLbB-?qCz8H#J30EEGJFGuB1$x{f@S~bf>enSK zP-;Q<8^BVpEM(l5D}DfC#~iUUJ56?!$kkk0`3F>}e3)R}TFggE% z4+1`z7%!a`>%)pp)u7^Cg{*smABM-${20^Ig8EqJb{0rssS*7Si)rb}{=fta3tVOM z@r*wHfTeFqYQ&dHbCzB@X%VJ$D=)jMxcGoJaOGtsSK!%qoL3gnGnj_Q{QBq@MRynA5!`;4}-l30tvW|LR z_HbBT8RXoMUY3lIoT|8(eSR8qG26oQ&7|1xIM3iWYOw*Br2S<%v=Z1mtm4oER7t9g ztRI#)4E7*u>7=s;rVO%f5N2HfB8EYo30cnu z0Ic4PG2l7yPuu!B68<0#`f+QTC`OZA#?TTv|A{SZo%$M+v zv<$I50`PkPER9(i_rp}Ot!^FEAF3rRC`+Q{2U!xjMACl2 z&uB-g*coWF2Pt_Q01+_wOHBPG#;D9E5exg#8{L+VuNiL~yvrXRv#||oi@q~n!rwH8 z9Urfbm%{66tV|@5?jy~vE|dmwF2k2l$@sD!7Fge1cT3Q*hkN80md#HG&TtC~Tl*n^ zI%H5CIL+9R4|b(CDw&M70klmryajbfzcu)R?+2LoFtwF-ctF}u)7)_OD|iSMkN^X) zGLo53?FHyg38)vGrwI<&2@WaNUmI{9A~;=S>OLOM9;#ddxr-&7-m>%+AXSB&gn`)&eok4&a**!^q+UGx9Xv&lsR~q1rIexKXSr20cm6q$;E<*NJ@w@Em+`2LF)p zD4Y!P!ZYLiQ}GHpNrbcR2e>kH!L=*^+g@tKRbg3fbye7wr=cIdWH2M750tdzbWI{| zw43yc+D$U+0Z4f)$0M|yL>qeCPwQn1(O6^Xj7fP*tMtt9kP}{DFFmH(APU9QZXiVl zkYJjsx5i@@4`&u~Uo#ft)?(SJeK9-7MR5| zLcV~1wVm+{GYg@QO{Y!{N5*-*`uX&k*C*$oU!i9|AiWGx8>rkqcz5wO)X&R1_}mOJ z5cTsG?D6oHn)j6IH$Y%NOjfGC9X@r}*}Z(LmmlUYh3`P)XKaDy&pj@Gj%9f|J<#g> zW%%8_32n(99*ZQFs*-Sq?oVxtrIuhpobU0$>7j%MUX`nsBJ=Vy@w64GmKE6^*M&>% z9@p)b6@9&~tsZ{Jqj(zPutG<&TrbUsF`>baIkiJ7k`#g_d0jqIl0vB}-g?rdRp{A@ z-GkM4#S3m~@<5v?RP500u_S=G=!(njU(h{83s#Cqt#C^>xHn;#Js{c2dOsYM8TlJ} z6+fS{2&2v;>*0!E2SxVF34>y1c4YucbUTy*K099Xl>w>)?{2*3(@9T!H6<=wLJP{BOKZ#dD*w z!Mg&_W*;BxPD~`m=K4b=Kf}b+AM*aua8V3R+2Z2^<@|y*dv}pW70>SbUnERQ6jrcZ zyz?gd+sds6P%exp$$q(?g$9TtSf*#LY10<;6Nf3t*|ZofLWU;V#H$n$ng;HJU7Xa` zL_bZ~NV`Ox%v?Dwc#-&{%v?GRdaiaZtZ>Nrr;lF) z9UBwS4v11r@1vrVbjr}QGR9{Vim352M;xF4zoHOE6-?;(0LFK))Y7to`qi|+2sV@+ zd8EiXWZxG{py?#KD)mzcaKggf;|WaMXVkSMz)mkAL1U*!*6gVnREY!kzlQ)xIy`O76)qUAmidC@-AQWL7l-iJhM8wh0$UhMVxI`t?__7}k@?a=wcALLUqTXV zALAeTd9)y|7FAj_r6f>k5qmIp`odZ1u{4Nz562j?N2y+fsf-t6)&TKmIc&FpN){{% z#8NTHx(gTEm1u&QzOrnva*{f=){HfMgPzOwvDg86cXq2|hjr z34rG()VKuWFajlkaWH%C6t69Zi>i?1V{RcmgO3%t1N{h2hwH{7(!Bn2^5(L(J^+4 z01A$|D35kC(rdHOO$Ue?f{T$bFb*r81_g-;#;dhyPD|&$(^`-0k4Iqp_d6ZD8FHeY z_@|V(9YSKM9G~(HJ+x6w`7N}aQu>)lKjY{}#m`#dqTk+QzR~{VA@4xv^z#o2UR8^7 zmZ5SV#?pO(3bfM*u>-BE3$r#FR^;GKEIbv}x;$5G=pZlrj-r`4n4Y{qj2@T?pl{4r-e=nqqupC9yxnH`d*gume9FZ=j*=^N+gcRSmWguJf!Q_dDj4NCW? z#eI?uJH%f}%SNhw_ynoNi^Pkhjs-5yC?OxLYUdO90Bx-HZYQm9G5*qOxHbYl4V;V& zXKpAwg*1wi8kyE5iLCncd+2`3bZ$t~-kdo*Fe5F_0O;!X%jtSw<0s@#oT z9VXX!ixR#H0b{96sc8i$T5eNn-~?de#od+~sZ_I{S7N+e>YO9?!f7h8qIafT(aY%tei2qB2z2!e1nRB#C1@C$ zM~jyc29QFr69KfJobr?vn#5J83k+G=nA?eq?G#q3XCZggg&#kd1+*9kQ-`;Og_hMP zEBG`fFGd9)MW`1B%3Z&pPb)G^%ANI~H?LWTT9PL_={#7yJ>cg%sh>E!yh)fb&?)wk z127~<$jlC-`SNix0RSGpY+t!gSq?p+WHs~&@RSKgF1rd<5?%~GsAT@I zrB+q!7RU*|$sQ`%L{Q*Vzh1?(_@46tq?{p!MT7(EWXe6K5g(*pZu1trZ4@fMhDz?E z6sYN15|!@&ZHyJa1>BW@g=xo1d&p}SKah+!5kr4HEL~S-u+#<`M=QjD!q1EIS)dQN925W#wxg6P@iTA?mTnwsdzSZNJy;i#o zTF-sa#h4w`){t!obo29B&PueLA9J8N@B_slKCKq)foCa5vyKqK>h?OMM#v3I?s|$U z#J4Ir*dqpFpBjQ%K%_uS#xQFD)L0++@bi+@DomoTWiW`Yp;>MEP+)M@n88rSlvSSs zvcAG$()x@3RJXtt4%8_)n2&cxM9O-2o=I0SWA3u`!+0FrRMUh^-3e;?gZL7}0MRD( zqIMP-4=C*r!+U5_6@fPhWxEI2{Na)+=?Au#Q>?=zTH$~g8$+DA@RF+M2nxF3FA2Arb@(OnLcA1~@MaJQng8Me z$Xx0tl2&&hjrh^wM2~{t=I{Z5PI}eLh+4UoWJ`|>x^70}pI}{W6Qd8|Yq(^+xG9Z# zLH2KbkUjL?*dMxsSd8+w3l~8Rq05h;0QhAN=EAvRy8O78e&xIpGiU4t68~+mN0rri=)atk0Az1 zwGD0whkJ<&5*2_9vqCLPeMMhlF=-e20|ATp1YC+$8tpW1&D-cF@8FdMCPI^okfKoq ziU+6r`EQ+eAm5ql4qnlVu#Dg9B)to?h1j2la(Ciciup4-HVYeg67Ad+0}sJj*uh5n zXQD%22pN=wt;U;Za3+d)Tu;eSR#|mG4#p2Sa}Y~TDpc*{$_7SGF$ZQnso%>v2byjU z<{cGax=M%K`R6Ej6}AP&55XK%bd5!+?jY&}Znucf(c9s(<4@hGRKJQy=wb>BEV79I z!3R((jdZ*={!!sIP-N?npfkNn>)Yuy*$tHu=?93-los#<<3XmD!$TH<^gIij>9!nVSK}WG*^`hvB zlxnX@vv#K2G^bQ_5j1P3AZVdji`HMQPJ_Ezx@LU_G=o2B%qka&5*k&vu?Qn2ijt?S2!r)!kLVZ&(|w$CT)tSk_yxn`F;$y zfh%qP)IFM8*>Ja$^gKv=h%*v4P?TxFfZ9n)>N>>G%rqbK5%jQJA6yI3y)cKGfTh$J z+!3l}8mYvf2O@U@4geqn<*TihMPN`yuS8yP8z$kBXUHB@22+q7cAy*>cN{*x1Vy|> zs`%f2Mm;auh}i+@uhPGrv``=r&RhnWNqz~Tek?r6#=^{|3`h~pa0!C_Wi39k5c*2O zy211t$dS>yTE?qLZoNeYF(P3Z{zTY=zZCXdf}Mm2eukeQ8Dc_MEQ#2nf5q3{YkFbp ztI|xM3MXkaOpRPnh**C&F0x1sL~z z2@LW_?pF1sJ-N$U5T`N9;Tim_6ny@{w0jOOG(Qn-ZJcs!GX99-et#9C4i`}rc|)kx=R6XzhiSWGZrn-LWTP47~;Z$TB^vV4=GulE&6MA9Wr-cH@xEnHFV;Cu#I1 zL}QgOiqkNTb%VFiYs=h7V&ILAPO~cbtdSbBQ#?(EGq5*R-yillVEf47S6XR-QqmH!Cca(Np+m!55gd{5KKOyY9IMh! zNRsYVX>2&d#P)HN4KqYv1CuvzBmmO_2@m8$QWx_(ZO3z8 zzL&!W-+|QvKX&0qp-uU@kj*A%#4pk`YYRw+)m9G*io5f5=sMLgLd^A0?F?cX8<{~2Z*|f2q`C#Eg}VaCmcn@IrtvKaPV8_YE*$3 zu?kO`Kw|cTX*=;0aCSyBP;0@!28l)fF$iLjAC=auAi)Y}4|<2FOnqy@6a(iAoO&Q$ z_%YdDw$N`ve$ZM7)D$>|CM>#9?9asz3$u%OA0Wth$c$+OMlmS4b#RF8eize_#I2EIh=|#H-iP3wY1fqNp<5v$!|kA1KSfu0M-E^`LmFCmP)Z^UINay)~W7C$j+b zTT2x&*fenu68ZQHj6p|z0j$8J9u;$BKCGqDNE|4!An{sST1ssZr(pJl*=K(>zLQD; zxE0UEQq_&-c#|t=QtrN8_Cc7%)LO7hFJo}869w~|EEiWzT z6bDGd30wgUuE}7r)5MORD1*bErHBNZVuZtN>CUNeI@tZ1lpllRFEG6+%XPuhKVhle zAb7X(B}Wr1#lK5lbQtdA2QY@heaz1>rEK@Yoe+L4OkZrHanZdN}0$XbK)-;VaBy_Yz}hz}M6L5TD_x5cw_Q zQm_+5sM<8nX7+{B;MRb_>S@ekV_40=gd(MBEU1xWT;SAW7DQzY{euvI4uY+lypLFn zyi6ZrYAQygAqkEChuHzKI7m<`7fCWV%=9Q=0Iz9aPPZHTpq61h zzMk0DK?^Hq)8c~z7{dR4DXAHVhgmvkMV*7zE##waxUhjZ*eL5K%?b{6Qu-6=3Mq%% z6CR5#XDR_ey(-9@TM0}{$&ZBiQyyX>MFb8>fr#LJ#p$3DI>atP{xfT_9c`v0TldnA zqyuo?Up1y>dJ0(#euac`T)4~n--to2xD96O0vHwtO`!Me`zYGgt_|WX`kR-rf(G^? zHrT^W0^5t83IMrq<{2~L8j^v%M8QnFor^ay9ENUSl8Oy=!IQxIcYs3pHVF@Lbu~zj z^?f614n-AH6fd?>^8QWMJd_FY7TcTffW(BHJR=N%#ECgzN&6JTU%nIzYcvPM@C#Lx z@5ky#a01Q$@4o}ZfrZ9&Z%QbDpy{azZ!0D@$7?@)ch^{#d!8zi{Zb}CSXs( zBc5G|DpEgAv?(c1L<#8Fm_{?`MRJav{p8)`DiY5gKolY63siwarHqefw*e-_P>tWc zA(4XC7SeGJ3cjs1s1L{RA6<)mIP#o_f>v;5JX(R$hzamwjt1}oT)-E!TQWKsuOvhK z@YlzdZFsu+i>y}wLhvjV=Lxt`1^vKfc`fY4ZN7qb7RoNbHx!lIC@uoy5S)TN(f$(X zm-0FTv#*$)VD`Rn3ZxS(`iV+Jkv7oH@WAOS^Iw+C|A*XU{=zTGpR~P`t85sCCt8bH zd6;$up^tn-`#xx$x~3kA1LHOMh=(Coo~VI^vM#J11cx=b^UYYBqh6gWtJdrub~0!{ ztHrZ0qw0fRiZ!@sU+5tWYi5uWo!Yh%+S@(L>BAoBSRC=KMoYh2n5!tGTh-r5 z3HGHg3^{^U7*}wH1xmpY3Ur)oOKC=3#9ID&?CG!2r8Xf6{ab;R9|*OD z15|385%nrsggRDidI79EBL}jg%{CMk?88=mZbD#TALe?J0*fpdmoK47NFk6+xCx#C zR4KXGO5!&3OA5O;q9vZDERd6rA>K`Thny}RKh8`3JVDoBNjxw6Dm=?1o<9Z3Se^Wb zxZW*?0dj)Vx^d0<3S3QJgR7UfsCqO7%d&dZtepo-Ngr*9svphN&d}e)bme{Q4}|+r zxqc{6uGX}}eGF@`*q4VreIsaR2-OwR6w{33O}^_;4L=`+jzdS4fUqXG#9;qM3D|0& zm;e#lY@!Y$es(w7Xatly%?m&I&-J5cFC0zq(5+gVRO)5*&8pG2AexNc^(Z6?>^JcB z#d`2qGFG_JcBV7Dac}+vG zud?wJcsHl8P&y{M0?1UrPjXW^ejs}D-@$WpK4S4QvI8%5c7VW3VR=6kv#AV);cavU z-aO&bDumtT;5hY}4&#fbg5EZl_mSz?J9tAHe~0lbEzgwilPiqpv{D${@qPNW#j9LJ)H0DL3@T0?rR}`JBUKqZDDnbt0AmDxX|WmQ0^iQa5XGS)guSOYAaN#g^Vle z<~KkxW#a%pI)Oiw9v-_MT|AU$7=DB$q>19#UR3Ks!_1Qwv5iy6$Tz z%jgFN&&Mt>-eTvX6Xy8BZt7Y_)Fv>g35IDj8hl7P6JQJWV2o6cbgFeXAYR=<9SoLS zZ}^A1z;S<7R;{OIC#D3qwW)bKqCchx)%Av=LyJnVrH;@hgDv+Z61GHPhNI75%USf< zV9Vs^w&( zH0?2@#v3_*1LDAdU|uqrP~7PG5796x<8~(EJoDEe4vdF%b%{7I-a=wXEUd`*hZ6B% zyz7m4FdovQB_v!h-Z&$^4Ds`UpJcodMjRM#-~1aX4vcrE5eLTGH~(^q1LO5I;=p+O z=8vK{FkUAy-o4H$lpq;06Qn4uN=jp0z=YrA1FZ=~n`D0T!%ck<}u6C7gRel^% zT~U5W`B{Cx7UHJJn>ekA#ID|oseF3B52AZvjP}F&w-$hr;&bu`Ie;*}mSfhIU0#%< z*~M$-si#Xi~0p=LjDFnC48MK8b)gQo@g z%h61Obijm4PSFWXJ+aU}Pp91w(fbp4LZRy^zo*JDDg-W!rU5X&FiNM3z()c$pNXaV z!6T?Q3rxzFXD^YSZqWm|Z!{JA&7Rs9U?lLlKF3xmzE|7`6(^RCz~hjAyf`-^($_<` z)|W6-T|SDXy#mGVa_opzm|pA#XTDr-u1$&<~GG`oSby5K#;Z#45xY@v0(*vv6rcM- z491EGHuHLUDU1-?yfu4P&_OTf;+BCo(<6scRV*9Ew zRkyTNeUJbDSNg-Dw$xj@&&OBNGWH34L&uo%(n zL>u=Kuc-O~MU5Q75n_6MK3ECQqeWPJ@8%RWrQV}#s7FVKzYiD%W>_#vOYDz0Ov>o! z$3j;!MlA9@e*Yf*x<$jkB&*TJB&*?}vPa8BGrpP5{-LyP{t{_THtByyUjHA&<4ffp zxqO~DoF3QzzFcmXpn0xI$ZaMCH)QvA-;smVT3;%?QP4M)-oN-t>23J3BpWt4_IzIl zIez{J+u?W_c>?{vu?#0BI$nnR{#Ru9_xMR|>7N(_sh`2M+BiGfI5P>ZiDias;yO~c zxpmr^N!P@+@TrsT%KQENcAKAL!^+12<)zJRh8@CAJ0 z7qkW90Vh=xo6k_0o)ayn<22%LLYvWNd@XJEulf$qW*sJJJ+%4ZO^PNpbqbPwM2dW`e{N$Zi(Z5pbp?IY zM1}F}tNmtE)e1Xp?#~ZqU>SbA9X^v&Z84mG0|yE4TfSHbZw&I;lDoy=l)MLd;9^fB zP$8{{r(=;DTU5mIndCd|=dbxf*pC>(e#FoM>BNtmH)A^V0W?ZGJPLhbu(Mu|8R*0g zUwD$hR_I~slQ=(?e2sh|tl9G&cnEPNHo}K+qB$KGQONSOG`(`z**LV4d~%p;9Gzu&%THASN}h9|{r%yK{&caN`d4^o&nusORJTa~a?Vg-CkEtjt@c8<0w`UXJYEp!+OIU&M% zR;fOO0%hPKBcKJyr}k?4Ih%e?!hQ;+hFrC1tIL^W$Geq6mUM(>LG|wX0laI%lfd9@ zA{DMpF>Jk`h`T!se;95K73ag#x-hgLKUNT0k{^8;3GAD@|9Pb}GG{uVvCBKez-rZLuKbkKKk} zbL{3mb8};}5KM_(&q7ObK~%yfv}7bg{@4U^ks&u2#&v37UYfNwawwy-L0;e>qgYX; zO~XO%KcVj+daD?R)wRuZ4N18xqFLj`j#w%>I&BrfVcgWS;YC<%$7nQhR5^~jQfgeN zKy9%T!pt%{J$PYUr{>q6q2CmxW&nAv6(j#wde6|Vl;c=xHBZHML#I{`04~7KZ@-C5+ADxKBn_|3_d=L@$CzI+=jE1{#W>zd~Lr= ze7wB!Yxy|Lz{eAN^YNvqzzNJd=wD~vUx9fsKL6|di__Tt3Hh5ly@z?fD1Uo1?}%%< znK$|yFq;RxlbjM){|PTNaZQL|JHr2z1pY%e=h6`(Qt-Z&l)&qZfOaFv-65xssx>~a#TG}N*p z)gH{kseCzFAG&`a1i6|Exf&aicw=$Wo(!4HZE!kFzUU@sl*MQbd$;TjO&SFcaHWP$ z5&mk)`)@NZ_Lmjn@~=@Ck;es3?lj}9J~}9*Np+G=SQtHwy5Za9K~;WRV0?pq_YM6% zwQJ1I<$B>fT-+%KG}SJzC51;k z=0&EEIx_k&p2z_aYKs26C&!##Ie@n*_M+UT7~77tSQIwJDi9!_-`Gull!1YO@Gc0R zf+4&zWkhfQ+@dW=Ldr0Vt@fB3pD#{)9vK{w_>6TV3&TL;Lk8i-` zK@AJi0R^52#vK8;We>9EAGB8?`Op6w?X`94_wDtcY_DoC)W6eSSyzAGUf*ha@vT$3 z&yA6{iIrh@v>>$sr?J6WWSn~i%h0763G0U!n`ZYb8-1gmhc<$3Y0I&hci{oOYu2I# zO7+hWrFTtQl&@6pK~T-xrRC7xztQy5p9aZ3a)$CcKGLYjFg`}NQA!ui%-Se(UyFT# zT{ma|8Bl7TMwD?T-jA@UOkSlz`JRFoTNKA%ps?E(P1XwZ=xpte1pfE*^DvdB=v~&} zVoLm*(;&O%U|h2skX$ce*qz2F=JH5HSm7<7uGB@-Llbk2&qsISbCKRvp`EUGEzmOc zuAtWB+8I2*U{4IwiZ-$248Y65UIZY4EeRt@vKdF+SzpD0Fa__yn2`>T@7pn$cnaqh zDmAkaDyYXs@bZxNV;}!JpOh>2I;eFHP1sh!2SKy6bVQpDcl z4Z8(>#w2A*huqJgY@9fXrk847ld;W;c2)&52oUO|K4A`~dTU=WQZ&;y?5R}cZbL8d zvtVv>7J&Jebzl$EPAv_;yMh)7_s;T=w(LWuH>Y@bV3;Q_z&v^Hs#|FK)Y*^`obBfe zuz%(gob0yzn&c#mVG1){*xojME6=^msFlYFWC`APw5tuhcYR{PYyfWy%_wGBFhADZDM0?h@N2W}HPa z<8xM4X3$mJO3i0zSlXMxLf!-Z&@EU#|GUgv-9S)6w{*}flBSIgoE5OoI4uJ;Jiu_J zq*(Gp%G|-|oU-ai0Ey z{WEEMR4>^-arf8Cep}l=ko~9Se3k6ahVA!z*-uhi3WXD7ehi71{t#Nb8|QB(`x}=1YqCFaD$;R!|2R`p_G2K1-hbt&EtMFY!ix@g!Ye|a z@S;}z*sMi2E7i4#)sIbDbiPvEh@hIc7pniE6s?ec`m1>_!%F0OS*amyUoev4n-OyD zHPjdV*tOcJ`mr0dxAkLC`ya+9T#-im7^SEek6IC0jadEIZHunZ&espk);1H+r|9R8 zR7Qq=%o@B+45iIZH|Rdn_QjkXkmr+e2cT5-)w7#V(Dj|o_&!oUR-v7uA0u7=SWs(m zy&S|;AeJMxk@fE6X4O#iRjKH!wJ(c{UnEigc0$en6!sNQVE}6W-w+}-UqFFBT*9{| zxC)NA#5)_bBayc$mn<7Ym z|2>BLqzoroTnhzWJ$qO1D!R@Hh)v*we7K}DX@eYaJWhjRrx8l&gb~zw+_h5PY|h8B ze;OlH1|=|Q_PSnJx(N*jz5RZvw+EoN|48cX3!t}`OTB%kco-Wgv7Xzbx9>$;CiM1w z{?Kfp@{c`5$Xh*M>g}`Jd#V&J5#4&bamrWY^_02Y(A&?V49Z3?jymkAja}Bp>M>sy zJ409Eu^fbYRmBrBCu+jNaR*ikKlhOyh@GS-cA#3 zQc-&<{usF5&jW7S@XotDMH5lQdyookTY@@{>!ps3-2IoBJz}okS*rK%uWrN z{N_7)^KrA;0kU*6vdV3Ad18{0|6865iAfg}?vl!XBy`E1N&b3?6FRTNkq5Y!3MhqC z1XJL$rw#XWX2bDc+E6-hfut=?4)lj6x|NNE;?EoCG6CMK<&Y(Qw}@roaJ-AhnoXO? zIEsOzP5Mez)+1 zt9}E!ng=WFm{gX=(!t63xRZ+UyU1r6tiB^8A8PA1VXrJI-;>C`sMM!jnod^NbBH;UN=2#=bn%z;~?nC5H z#poa@s#e0U3a&IIyaAqJx#YCvASaqK(Rw9>Fr6m>Ym!o}BQ>4F5nM)Ajj9#7Cc~<6 z7bbC-n7jRaYK~Xg0NJ$44#;ZNXwz&BvL*!=j#K>DPK(8f~Z=J%A1xh0jg}&99d_D?^hYgQnv~2b{vFCeQHxkMrIYPyS!!y^<@w z3Gem8I@ouP_ZC94?dHA6zW=Md_u?P^ukzk*|2N^id$92Mo#VY@Sf%aeJuiIi{)2K) zDm6_iIcDu=9J)@C!?YK8uUs8vZ|G#y(>9MbChbN&>euFw( zdil5A4pKJ;U!0&Dj}mhyQBgs(YjO7pTsXb6_ZeIXAG^c}T!${9mEzdteBwwf1g>ys zmq4qYNUMXi3>iENnuMb~lpZ^`w%D;cJ?7A(X<8P2R%r3CFNLrSX%4Qz-I5L#N+(_; zZX%yQ>8J}IBV-r7bowvD`_EVXlX#E#Zs7eXw7-9f-gjL5AEh_#W3YeOL`oj7$8XQq zKZo>_Vn^|G$ca>FF?xL;amypb`PyJQeHd5CjQO9Da1IYGakBvK8QDcMEAe3=>^^5C z5@h~GCYXqMa6Mf`(k8BeAn7&Bf`Gv-RK4zU`PXsVz5aOId|$-v>f>-LJP|kYSo+_= z?V=NKd%WNabgKjJ_R#GCnV=WlaLLYB;U<0k^J!ip&m$+1>?She`U*JzGu)Y3wZxcm zw23UtvM}^w$~@Dpu3RivQ-fm);2ODLq8ukD;u+zQg;xyflo9urMQiSuQ99f zdXKAV>3*E3nDG6T_wA9_{y&5NWRT$>;(y(Q?=1fJVy5&D@xR~qAH|=xjY!){@4nY1 zHpBc&lR$avM2FwFz}p{6L5OV0{?K@bABS{`^T43abJwR}&e)O? zk}pl;bK$rskK^vu=gHHw`hJ=|l5wZkq1?%9>2adFFVF$mg9~wcjFwf4b8zXJYQ8Ww zLDl=jV;+{LV((NZ(lJ+)Um4pmF?{;PblI4mW`^}Lotbm+>o-@xW|m%6iQE?RCAhrE z)rk|-VJ1uUm~qDV@jmGgOLV{|O;MBd>As&Ni5_W4Wpt5tpdL4E09nSbAI8GN#xmDS zhFKrw!7-$NFJJqtkv@Lw5|~E_mzYLuN{5#@(yl zmvL$13OHsg@`t>)vCx#6EL3t68C!D_{NoG0!bgexE*W4t#Zd=|{#=?J4d@3}Cj zu0VJZ!WW3)4`Rc?(W+(dreMV4C0q1g6KnpxYT5fHP2n?QNW4Yt*oM76(;QXHj>yQ5 zWaK6p>4a;{%B@6?nK%LepQq6cwAn?{C_nnG(a1OaTcy#2Uws1_J<|FmG`d$t9#5lg zANLAabt-fGp)$u5*~g zbsRGr1bqKpBA}2=whuSWx?${9s$0=CbZq^}bSlrOxb#4&*?=gOe-?cOPsA$Kv?NAf zsvn>j?giuH8XP|3u;fJWO1<o%d+vO?w z1$&ykhtCEyu>2jvF!ty3qcMn%uSuQgAbzAK{HvA;$HT4A3;2fNTE@t+G=FF$6d7zEyNq^>`M9MWH?y?l(oP*lm$#)gr%AWX z_zMu5IL5aT8=L6)zB%|S<8pV*Pr7fBfEANT$$5PvHfM%2-#CbZ=GITc6|FQ@828Bt zFO0`x^iemuM8Bz%>newq`65jXQOd=~G@h93GL z!uTrhj-%u(KGci!@b8vkRfdh>GpW}%sW~X5i-m8O$6li=rI5US2~B1SWms!2+?TbM)@L)}_H_l1I8#Tb z1g)KsdRzxl_h!HOmUs%?c2aDw!o5Ynjq-6dYprzfJd1IN_&(wYY6;&yx^}AA7RL!p zc;@Ifba+KHqn!;k1O%OF+?yqF!yS-U!((0!=DY*gsYB&$H)jm~2yGLv4#dMB9w~Da z`dqIo)ght~N|a`Q4)N2fo!uM#?B3}2m+0H#;I~Fwtd8-kf&JycFpcgF!cJ}4<%%B+ z&~%Xu{4%G}&R2&apzr|;AATq9uA+3(Boe+`9@s8^i5kToLDk-N5ZnQu0Dr(`8Fj-i8c9v2axmm*mJ>2H;~E z^1dzFQBc(~yNP=piWhe>>08}&?D-dTBT&&H4Oxdk4WhwXwBZ$KLu~?glF(X)WnxxOf!yOk0l*)hjDWs81AodQ*j;D`gZ6Ov+UII2l8UL$%iYpV_^BOH+u~%*z6qa2ci4|stb`k z0wk#yIbc;9lSnaf7`XHUE+-N4Z>vyvTf}Y%9|*#~7JN}KS1s$1dW9jF%W$`jR5p&v zNJB7Bl#!UTNx>`^N~jHqz)zZ^MZiVUx%WB=v1`66?}|iU_ZD=51B1CDoD0Wl;|7RV z&Vlr)Czy;nWGR7#RFj94)3s?YmV1guXglzGVK7rn?#>v)nwTF~oBr-bY8Her&>}&B zOppWiiakR2mtu(+{>d+r+&%!WsKouE4k94d?g+qh0APf!_>}rxWAruC24O?Mi$ilZO|2`d_L#BY$2=g@xq?(3(F z@d{L8No&|KVnqNR-ZU0x&X1K>)v!=$2OG=;t<*ZZ86^OSI<6zBI;+he3b z@h??v#`^SxwwGFMCuV}j@W2N3Jq%<`F#jmQCAjgr)BH2?Bx&j%2!06%wcV^|x}h>$ z*M( z!l{pLNt{=ftOi|r1T~gcv+GL*HF^+K_>3lV*^gwBFj`sx_DpQCHbP3;WS!BR%*7fP6c2W2wO})?3r<*#jPgB(u!-9DhaYEf+(A==ZRvL$qr11#X zK3HvUR&B@SyZLLWOSStq+U@a6sr^iM3iP;E@8lShi__|g@<^#N_CaSd@SUh+#|+iVjl+g$-TW30X=*@WX8QK1z^lMUs);3iV8EJyRF1& zB>Kb24DJ3niT)&tgC~kS(y;d8F+K7^QMo)jj>=8Rr929G_>ZDup453-hFwmZzhtfd zV3!`9MToK^S=xgJvs&doy71O%(Q)Vb4X*4s=64@lRH%(&fP#j+$v3eCz$`$!VuRm7 zOtYPScXHtexKR+>#P8k{Jl$WiM;qk>xRz&V%X5Y_IEOT3>(TGq{oKA0`n0O#81*lD zMo?BEcTPgI^Pn|g!VMn0^9@W6{_%zkGA=h==p6|zuJvm#?w%SQU&6Lj&EI=|71|b~ zE#N+YOj!rWx+H#v*ELyTnTb|vJ;cdwBCu4pQrhg<|Gd5afp~9uBRg@i5Wo)b} z*{qGKk@EDHDsl#S8=Qms^cagT(2+Ind&|<}Oa_awji7MveWTx9{yo2Ou=-)$ePrQj ze#dUEj#~gi5gcdrD3KVZjq=#|#QZJFJ?@ikeC{vl(qWpc^i8VBeWvdIYQEfT4oMk2 zJ-{uvC7ZshecjC}wGhw*im^MsP-fMAbV0$x{*upi_ko3)YR{USU?P!EvfsTw)m%E6 z;5yLuddUXhMRzx;#amJmaPMD`&kfyglmcyP(Uj=|>&Za0@af>MfRTtlf?qZX3-ZA} ztZ&3x-*i?g(ZXMmC14zl-^Q=pODy23bCZogu+Uoq)pEzR0$yX8+FoMRwD>CW*S;?M zFMUx=A9}OzeQb(gvIw^-IaLrO?Gxz--0ZqwzMNj)GnW_k>`cd~^sx?gV+pCeH_GkC zazo#);6Sz~hnfH2!GODcA#~cYWKcuQ#98zA1J;4QSn|ElH{YT^2vzfZjLrr##Roi* z$vrz9bAAJ}o4TSJfDlkezO|_eKAwFsPd5%A=GW?`fdnYLn#H@%szIxZl07hYK^~V$ zX?0RoYY@r5-~G8yoAgbk(Hd|!X%7w~NjHYb?Q$1a)$b3E5F~_@%!B6A3T=810MP*=^3B zt-C+<;U%L@`4Z7%a6s8s@_G+;`bxf(3ZzqYIT~ao&bXo1TQeom}YW9^&M>^psi?S-)Sa zU#$Q#P_)=@G{r@buhuPBt()N8!~2`MAqem<`%)CNn*H!8_zEEHW?*Br-?0f;UbA(dBCTdq`0>+WaV0OT024cd}?4_z% zITOtXN2FoTBP1nsrQB7?lSNm;Q85G8aKFaGa-0{UdBzNvT`VStNk!2ps>vfaa6mRK zPtzlP`9rx|SNKCsRReW7oR%eNfSE;-)Yn7srOWq~UBiX$RFP>6XfVQYd<>4cD$l(7 zD`}HxAFznC^z54Eu++B|~wZA4XJ1ua%J z`Ukl%Y38FxfO)3(rvB*4FD{dQJoRt{X=TlAk z6HJkw6`qrqBHQVIFCU$jJ+A7N&$ijZ6KqJuU}d)Rza^q=txQ^M&6+obYCE9hWqSgV zs-OBIA}kf*DFRZViDC8Hkm~jbr;ZcIewC6py^8~e@I7}DL)00}m3=diM^7*-u||GF zIsT~km_7lZyKm87s1hM;l?Den3Jy~QwD<9jt6}B$;4~4`g6k2?!d9Kivj}f5fzw>X zGyST(%-l~sBCtJR32fVXD9c{iY@0a(Ge^ZkB^3{Kgc{n+ek$>JVI=S&|Kh*HwZ(c= zf0ax^@gLy{Yd&HE^|?Ev_t-;c)Fy4bEn2J_uHvmiYdU9z_p*XL0B7FnCO2eeIYJUk zToRDycJnh?et7osR2}&M3gxdmzC40|`@O?pJ2+vZGqTLnZP z1!b`oZG~Nk%^}t9jL<-fGHlN93(@ispR^U(B}(+vGs5@)YrJZly?dil&?%zRcZ8w4 zKtO;$TZ2Q*S!}U1CHf2;o=@m0I)xo(9}pB0_RT7ej?GeDu9O{=;EvN>smE1%3Hz?2 z%4iXdh}=3?!1#w$M+igxeMKz)S#|l-M46=P5FWjs9+po8>JXWm9DaKAasr+CT7}hf z($ZkkwE7=$$f%k%vCF^iSY>p^jJRAjCVeq~38X3-Sovb6#@?f|vE&k88i&k`OXbdB zB8{mFT1Ux-CN_4oHpU+J!*k?Tln0^zVtIZyq17zLfvwmh0JKC6tOt?&Ji<8yclo)~ zEtDN#_Y%P4Ux|&p+bx+T6L<&PdO=orv6GM);<%wCchO%6^dz|D&Ywj>p6*^B`l_~^ zlQU-AlNbD1ZTZi64Bk;&{*e6spjPg`jRmV}%aKOMf)i`Ye<{D`*OosbzlF8suVnB$ zsJ8s?{2JRsp4D;+CoW!1J+{R8tLx>bc(wSNB+ghZ$6R9g>RS03vRV$aM9%84{J2)% z&rjs4yj5BJ!kwEFKjHnJyo6@xP8p)4okN-)xg#qsqLDWYSLR;3t>ukK?y)`c%l7ea z6p3g4m%PKYmTi%{%(txv+_k&uHu;1}Mv zIsVs=*~#RJzoGIQ&8s|gQ{8Uu-_{-|YYs$QOQr4}*>zeEA?IH}pt`I}E^v>O`P=Ml zc5wFAU_UgQdbl~u*SN{MMh@73(Scl~A~Xn35csY(ulA_K@6AYz@+Td#K+S6Lyn>_c)&w z6($l?r`0V#p@VwT;ax4gHd+(xmZl68>ja&uuEY_&lfRoomw4-%LnAzONdkrWD(=n* zsceaCQhdhS9_`UK%-;tm+ofMw1b{A;5ilq=+NV~Zg6ESrM5r4ELGYXI{=w5FE_t3+ zA~j}8Nb~WZu>R=}>8j#|B+9fp^vH$uSa3<6Ad&*17oZ9-msYmF79ZYo`|>Ce1i|W0 zNRy_WkgyBR*PHe^;2T-~CjHUngw$(ds%H|b7j6@(w0Pqg+6cSkxdGz zEtiQa{ZlCp55^awIFie4qh8cJ_JyaI*HUCkypzPq47tGH>T>3m8j1 zDaRILrY?~|4+^!Xa1r9KP5AFb@5$lH%XP|Y_ll^qTew@P7sfJOt$8|CdBex-p`k{l zC)rM4_97dJxYqMG(ZcBpm9dm_X@fb36UOLdv7tDs%FSQU0Lk*ztmoM{mbgqe$S!PD zvtDs2mqjQ+!~XcHx!uWUSg-G1e36 zs){;2vLDErM^L5ER_4J{Vm*IJPp3sZJe3YGnA-xzkp$|*P1J!0S;g3ep)Pp}cTWgj zv|5NpS@*kC*=`0LoMAD>LNF}apG=CsPiTfea+yEemSui37zsyo+(KH&f93xib}x(fkTFPS%6d+ucj}SOIDg zyC&eW+s&UzGtv7v36*s9GpV*(HQhs-{I_*ne3ClO{B|8Dn0km9TQ?@ecR@09RVxJa zy|D8P*JD{MFkCTIz)}cvfnrFLjTV_2Fc94`>No$5o{NphCZ>0-nsf7C7s;fl<9#Bx z*ir_0HI9igFTSEe^C>A~Y@omyFgaf?Qq#9+5Q!{9Y6^Z4U&K_>z--dvxAV*#hCeG- zMkcx6r@KLy`K;p9UM~jVd%vA$ecOEEH&-qn1nSSyD_n=(L8~eIVVJoU#)z);H}_G3 z&!2J}zRzbyO~uq(-fP_z&5iNJTtIgoM)&xtyxgx|jNI4cC0}8a+&@|6%j16DQ+;#& zN)lcuw`@@^oKj_V(o($r^E8D?h4BZ^TEDP2j=3K8S#&*D*_pyivSRhE2PbDrG>r?8j*m%p$yG4WK_yHUC5Fkq8{f z#nDLccVd9yT8=*F;fP(G1I37MKP!&b+G5G%^U2GS+;3ld$QDD)k^Nw9l#HxEzB#M6 zraz`@N)0uw-$JJ(N{<44E;`={cf2dqM?1GQ_?r%8LVb8&v%x7&HHK~uM4hoo+VVhi z`Q?p2Xs$4J)_zb!$Go+NZ62DvLLNv6y1h{dE$J24*9M1Gy5A1@YSz_EYM|s)!?}4< zt1nhzPn3QuEh90aX5W1(Ut)0Y*BmL)RAGZ2M;lKIiD8v>>X~K}x!#&1_LVlc8?R8+ zECz5cW0F%@%~3M{C*QDM5!aJD?6zcn$5-m*x4dAxYc2a5FWG^|sOwe|Ib&RRsb6b9 zqkHaQ;t??%f`LEQPgJPUkrxZtM=#p`x_}W<0ZNugl6wbdQbie2RW0Mtk87n#$O=@X zZyTC97y>kf2>K{6R&p5I9(47Wwu$#E%exXD9mF{;uPQn@iw#~*q~QX7JraG`yn*eJ z8h}M_7(2};&lM)8MwHlIV@u8Z8C~z3wk~`m8N3+wrXqaA9xMzW$v`4L5pYOJos0q2 zIW>~oHI62nUToWZ5miN^UpV)1=+PuswbN3eqCMCiJ^u{XP1}J-23K0`3i3{j>B~FWIeZNA#v64j@7|j_BHyZqY$Ic=B~4 znx22UFIow>B9`7{UQi>*I)GlRjrl@35h})A!0A=0>QtWGo;*)md9=EAnxc0v$Ls(~ z&TfBn1efDrFo@I`JG3Tl)rdRj6K!vlgAzNzW`OuB{m&G-mqOl^9%}GM@6PfX?Xblb z!y$H$MjlKGiGG-CiPM-ro$Ngs`Z0LD3`<;izzfL5_w!HqzF98=ZKAaN8I|P^N`Lin zTMx#AjqS{qUiJ<(2q}489>#o@s`B{rvBy|Zt@X**ONHf@)e2=%M|_i-6W5b#WX0M= z>Q;8CV$(K@g+|%+S<-TJ3Y(|;`s0tJT8%*Fy`*?QTeECmVeRq!k>-Mu#WSM0%4+%!Df;fUdX7K+k@Ja!A#RR7mf=}|y7diVLW^WQ@QO+SJQwbGD zyv_=HNR*V*rJwXLLf?q#2#QLHN_^rfcwX#zzF;vr#?|Ttx z6-FwHF}^S}Xpr_Ww*YhgLS{7LdjBoK%ZkpH^Dvs*pMjZo3aX3d=F77Xf@#bxITh|E zuleVLJs;BPDL%{?`N%(IjyIT-U4nWym>=A0{c1JV@8nM5RW_J6gi>`_xDIBestSrA zT~F?4Xa(k_Q){w|BxDpeO?g5-L`VJt{Ghux1ar)Og5Dz|yU|Rleo~d-MY8Tka%q~J z9z4f+*280V@?$gKw9@u>sI-kLEoP^k{x97Qsx>&s@O4 z(Ip~Fpv}5K0(FY=*;pq*m3^F)#5{?;{8mv z>`qF)Bqh(JdJGPv-{urqAKK1dCB%=}z-yOlCX1L6JZIIZBqj6PKeP1UtC$np#)OBHunUeJsVkxHvu>CF7@Ys&^+Jkh6c2Z~Y$Q{U8@qCE7 z7Lg?h!ch&iC-Z+wzGUtyK10&%NrT86y>(vRTc_KqlSpCCF{N}sH}pA1?LT;GGP8=* zJ~{3i`?V0+U6VPgB|TOslTwpFRN`ZYQWyodIczK^{*t0nyY{P=^ded3H<{VKkWT6> z){P6S$oZT`?qvSwpCT{A=)hBcPaai8?jh zUUSQWZa|)i&fLbbP6jVlmRj5^{w=m|S^pkyWOn3tCo#SGSS1$qF%q0d zFHfWwz$*Y{+$&17K+$bN78qZe*~pt@QO4^=jYLJ3XKo00co0~2Tp%B@OJd_l0A#_BDHOQ&lN1VMm3mR&sZLuA6lga;=6p@&n;%QB z+gD4n;CV1rJ>}B#1Aik%Qw2r`g!}xv!iRDf4Mltyh~}Pe6Z*;5BH-S#usu3;fB4X#MTIM2Mr?_5g+Tp`LLKfrOeaJ|5`53_I1@t^2OMpb z2uKGpDx*_tEp3~_Xk*N;_UC? zx6*XUPRzacE*ekU>J+4tJK+9r`clbX#t32aw~zuAWTmo2cJiFX(S>L6{|TjcR}#q7ZnaPgHwf4bYXy1%pSfmmeo z*;?Img8ahG8M=E*Xn*{-yoL9TTFGR=7d45+(7~PhX}k2%JFqqixOe%rNxLZPk2+@s z+_9i0m2fLhs)8^4C0q24!@7H$RzH)fs-i<@_!0G%Y(R1z-a86o2;H%s3ncY`duwpy z+Aj{Qd%YGp}V^*1Owe<SMl! z;a=lNmC>R3IUxZ0FQQWh1m?oeH7zRBjb%l`a(kmUoT-j!rjx^6BIp!y@f4APBG-)t zU*C6#{oE2innB+U`>G_UlY5KD>7$#(7^l8gK!rx7DiI_=LFkYPq{K+!&BG&7EqR1+ zsw;YmXI}%99H_e3IxS+<&DPCob=cy+;(7J0cYWr^S|!iobdZt!x-h! zFM^6TvH8s%tPj0_F$w6=E0T?aqLWrXw{YG$L&EblW!;|sWvF3(B z3CA&Sl7>er+x|_)o;5O49s&WLy^c;hzM{5-OC?s8k0|nMzOTKpk6hlGwOn&|ULbk} z5soqiBE|@4a59#lrRumlQ;hz=X7yWDjPEL=DLNxV)0-PEw|g5Z^x8uv^SWf5zH;-y zt3LSS?_Mvg5{1vfIL<)*M9bA=UZy*?M4hL?Xz8~%7YKvx5Xco}>7iSel<6x6Y=3&* zgzW84ODRW(coCgY5UbXhen;~YeF|nTDbZK{sM`8xHHXvdam}Slby3Qbu^B_q%7$4; zs>LGbFRBgQ=zt(=|>e1PDf-zpuIGMO)uc*E?IKVI7 zntR1nU##VB$0Niqu~2&VcUHpyZTT|QdLZih`XGG>e}OOld%9z%UUCF9fyp&Otf7~& zkG7ll91yZbs~7tZeDO0X>-GmhHI+ms$*L(Y4PNUrE=P)O+VAe?J-DNFvi)4lxo%l< z+R9P&i7UMa&8EXHgNXQ}99wKxWdP_tM~n>FWDpQn88Uh@IPPffB7@I1*$EWQ%Lomv zsVL=k6s+XD>J}BV8-!LCi~m7U=qHfvGnjax-cDF!VR-w1cz0^5d~I zgj?V}bsL1b#5>V6igfszCiB()qlKZNzok2@AS|0JN?3Qbp}s^sqkWV zG^C8#t^l%Px}&AK&1X-R+9V;A+3Jv^$UoQX6gN;V|MrA(x#(TiG~`4GlW}28)f;po z$ru5HW`Uz44UR-*Ft(Yux50fnK-(<|2jLtr)cv_^kwA0-AbCO&3C+IAyo3?~*$iGQ zhMm|hw5$;*opJ({8kJ7mQ^p_Mq52VWx?7iKAm*66TPN^;&G?D*B!HVO5$UH!bIQ!! ztx|D|3cM-}4Qv5m*@PYu=!(-iJ8g#0P(A+m$HB=x1yx*~gn`F#z+#G?);MfDs&-cj zAEtn%7gRmN{Lg^#k`Mu6DrEZnR4 z-cq0;@KF4d6y4F!77sJC0+7k}aQDBKOmth>mtN#^cQ4Ipl%3B~9c-9t7F*VdYX9 z9OiE_ooPEEpk?&h0H3#+TprLvas}#RUX07UXL7x2qIiN0(v9Ar&wDyhaoLhTBp#Un zE1pVvn53mfq6R^w09qd~0~ltdVa@vkks}-@f5UzQ14^uUa97(JQgrTfbUJ$dDT>TZ zoh9FrOFZ_uqH}*LruSNc5H6LCbE-vhSR|7^K?o3>Cpd{;C3>@%}er4WeRST8$BCZf>%e408)uo{QuovWjEj?dS8QR2Hk-y4Xow zEsf1Zd&kE@nM!LbZ=K`!@&@y1YoRAK?|0W6?u_a#ObwA2Sw3H4iW>fmBgb{tQ%t95 zTVRUBv+OB~fhhMN1t&rZRz?SR$*LjXYKEynT8t<2R&VsqB0J9}qTj=OR0hKBhq z;t-SHVzG8|UtL!)U&6x3I8HeTX8#^_8C=%CdO; z#7M5ovdbGA(w5K~r(|>?V~Y6??(m0Wjw<5~A5G4IR|&{|lAg~|_QbbCNo=4ZmRYUh*d`%D@6uYJsLCGmW-9QcX=Mr zE@O2ZmJ~hwId^K$6l_)Uo$zU7d7rKm<_ zdGCKULN%X^5V_(*%4C8dAUHP1f`$r3=jfINV%wl&zRsR_ruA|n0$i@zR7Sv@2)79# z$nsiraf;&y1VoX*rd4)_`S?DF20$s?7kz}P1>0q(;VpQW1r~jWkz4hI!Xe>xcD*9E z0Hpx@gVF)!rESp_tKu3%z7zuR7?X&sZxV9=rbS!vg#-Z@7M_%MOlwf*D_Ap9s)sW& z;)2R$TZ^p+QEPZG6b2pp+0>Y)zv*hJ~fO~JHa{CFD z5+Eh!Z~E9#-v(gux>=LL4^sX)%r*@7R!4d`TU@WI)>AhD3 zqQRnZUhTDk>U7y|&ZZYKq+FO??iVA^l6{F{6&xT@6rPfI?CwEUPLB5n*}q0-A{*OX zHBbF;p+Joemo6K6|EcsALb*Z4CDNp{m3sKcd3LSg-X${Jj0TL}aSLx^v3vAIt7JEs z`7|olif60S#LTo_2{{Fu_Ys5+im9!1fJ5+Cu|y`JQ!`%bQIT2vgHqkIh0Xt9O68vS zr>NJeZKWKx?j522ApEcYiY>$`R-;d)((fkyL(-G3KfHipS=voEbaQ9zw4wLYKRtYz zEi`nMEsvfK0Um``=x09vp^RAre}pium^Pwqa-NKZ0KOc31KK7R${W&x5h?|%?}&pe zQVHMWC-J_;907GIKqodb#UtS^ggB|JhzZe&4rZ+ zkCypXDl%&xPGW<&<2^B_q60>jZq&*WbtY|CF%I1=17Out?F-(-@(apTO=gb`J8uFVJxuAhN$p!Y#mAkb{4A^d6k5-d2{Q&uJ*TAV`T762o;<4_Ya9^;YH)I= zgB{XVP=hgY`K4@me9SVO3!apnzzjW7wF7gB9lB*ER;W&9Wh3Tdk|LF2 z9+vt};GW982|3FpW1~dD8l?Bj9kJrN(OvcRrQdRzQyP?>R8>xIrk5EDqq4Ut)&G@UZ z|5opl^`@}lpJ)E1_hpv(RPW0i^O4?{+sp@gUv%^C-j^BXoxLxM&DlLKks2BD^xpRv zb6{S^J5x}YngXVpDR}#+O595#k(4B=5{VTgGB3x)O+qoR;5nJU0`l3&ef}}lh07Cg zDBhig#Iy?pnPY5D=Ie;x;3V!^-Ad0q$jNC<1LODBx4FC#`b3BvRJ~ z(^M|1ClG-`1D_RpB$Tt`h2 z*CkSWH?zmVm2ZAzO;$)u`GgTm#MN15`B50T*;ZFD-z=hVIQP(_oJ^@4z{W{rh}U3V zCJQa5VtRuwI_Wm^+`mXqz~ssNNi8DR>4GH;7X47G`>m`uB=&8LN2^;VZ*vRu=sf2d zTOrSm-4*3ppd12ZVkIHMCVco`&{oqYyvI*{GC0R;e6EMx$>0?J9t(QAGVQ_fU71;- zTw(_#^Pgpvn5A=cV{IVndj3zcYc}eZ`-b1ZG%-3fCO#+;Uq^9cW`nPzT$f-Ct;!8W z{F0v*OD`D;in=@$b;OjF`*rUrRu*51Mm*{Gk)M`zNr0}on>fo$Rl`kiKYCMlrXC#u ze>WaL@a-wab_S9e1}(cLu&2BxF2bu;-=6YXe4Dz0r$}J+Y#8QMXiJiboK?t$k_p$U zE`E~v7c|SvnanYy2d)L^ny{gKndxQBg>Xm^Uwev?9ftZz<(|X^M0XC2mFKL)7?p&V z(Vk+KAFy_v^9<8N$pH|FnQfi|Nk%;!Zp{iGb7=J!s9Xv+^teUCBkO`C;E^r*NimgX z_gmnWT|kpDS>d4^g&WNdYJAylWjUMs78;REDM~?|^9sL+{pkez^RiAkZox0v=D|sf zGF;^54}L|pM{G`;Z9ax-^u!{$6sew~-w0vBks}2qCQ5YDUj5)#xOC5-OeB*XisOeh zL(L;LK-X^)QZ!gBnCQQ*RFg&|h}?U?V4|8}>tK#_qs%e6Iug0&m|fpC0|NeYud8v; zIgpX~EKA!MV>Y!QJSmT-&^EwV#4|_S7=HMVXQ6F`I)*VkfhQ~!-oz*2nlQhCDLjmp zTC01NLV@VHA3}#46aB^$NAv!X0n&rh90)C`)lcTEjz`GkH(ofJ_m!Z1fE_N5fh6;* znrKp;7+Sr^#FP2%n9$nShWyc4FOkuQ7Brea5Q&v}_Zl@Z*!oG*4W^XbXwJ1#hbsXU z3Ca9J)R3<81saxa`yZ@R9aHR8xYg-*6P+~x=nyzm2m$u-JKLZaZz-C?bX;`GeGc0{ zr9Yzmm}9)fe9P%HJaWOSviiE2av-8A(<=f}MTzE%Z3qcg12)ikh? z22#r0v}V_mg(_{5rC+DQo~}|1i4qvPfI3usC7y@!%;4ge)212TYMmb`n#OfL-4-~L z69+Jjh0bKP|MZCr!}TOTOxqLuMD^k3Pz$+oFd>F$YeFR>^g!Va@mc9;?k+bRlt}f)n#L7D2q*Hc)4Sl%@;<6_J(H71fX+GApq6Gyjx%`3{|D za?FG^Vn3N2QXU;EC9>cw}U-Itd*Y*ySrfu^!FH2FSKW4wqT#&|J5 zQGKY{iW)-3mt!fQANwQyQl!)$e`>XsW}VdeuOwEoQA$_K9@C?_|9KD7s^mq<{MD?a z;$Hzk>#V0YzbAu$wIZy}l+F|~;SYYOIt*D$ zX9bH75PX;?*fE$1y$f$)afqPusB5oefe+qs0`F`^Q>6EWHWiV=e0DR8)2q-qqNFKu zk6iS7=(V5da}h1M7VxYaPI0vkWe`)*BVimRn5-CdUZXzd95N66mxwZw1WN~sDK)|R zfP6@z@g4-ZlDjyado~9cnF{1RT-1%bL*fCeC;vuIAXcbCLToB3EU+ z>^1vg1sgDCnn+q+l@;~Y{>-}2;cPCm&*P5N8VQ?t4H69y(NxYEZD)O#~JJLZ7H`0N1GiJ zWfdWTIrgbk4 zJ~?Iy@y5rd8g+3Sm|?2n>n^5-Pbwim9DBL4^-1VxCNWaEqD+AAS#SBziirSatT$Kw zUV$U^PAxF}IgzSY1+szatU$%BYqaoR*s)c{Za+fEK;*^)#&&4z%7-FLAMyS}pvF=H zYV}cG5K5`|sA~-PFj6{&o4F2#j*OL86_qCskjC`6= z_nG7o_v`M7mus&*bH<#fGi=`E>t5salIBR|ivgqZ$v{b~GE;5W9*SlNkYK&$`t8Tk z)X-E@kM59a8Z#Pvxde7-;vz%8d()Bw=wj|gm{yhaJBVx6gzmsR^BI7jd7z4GsRHRU z9X?D)Ox4+jCH9G`^xI25A%w0u>3~6#> zpnF1BlQVe6a#vW{6b`;JU*;EQ#hP;);FNKyCsjY$ZMvZ^OljQ20SAP`+> z54b~5YT+ex5R2Yac8*~g^4W;Q)QD^OihFM2v?>@XOuGys67#)(`uoi?JRks7M!Ebc z72M;JJs@{N2-@KuW^mFYWm}D^6{fdT&VFK`Xm#JCWMt`MO8dujKgN8}S>hw!`Uzq7 zlKDSeZjqW8*Vzb7UNUoym*QXstaF|=c%woVd`9R1lT^+-#g^>x*(W;_*9cq|L!(h!8%4S)@}{hnx6xUe zE)r8knxx1yXJYge7HcA4s@8N;4J+qVmr*+tS;_o!Uty9QN`_E%stC|uKm{ZMbU6)( zX(`x7DaTS_C(|}E=(NOYVC4*g!kF#w@_NZ$Fww+t3KP{8dH52T3oimvZ}u7(OrC5+izsQuVfP3wNpdJ-*iTj%cMU9!P|M=`s|Kt=b zyK}LiQU;WIw65qf+JKOlzdfa+1MONy4~qCHL8b~_3_F8aKr(+mL*--|%rRbSpW<}4 z%-5)Y{;y>k&O+BFk?~>9m#Lo1RQx;98bl5tV?++X0eA;SyW;UhwDlgkz0W+vev_Vu zi|_yM=3(e>|0naHh3i;=p1C-WXffPZkby;2HaG4}$;zm1bL2v+w4gJ>_W(5+4rvBLfbZ(Sk*~)qJ$$SbVW5LNO zY!e7+0G;m%v>_>>`r0{K^D%XHvl3K7X?Si?|*7#OUxA)Vy*!&j^&X z3zC_cD>GkLWb4QBcN~IU5^S?dOeD;AO28Q=Gj^p&ZG+_$_K^8emAMxLJ;o+1p)o4= zm9#2s@i}OM{HHna`ULjcIUGvb(0$W$?f!C3beZtqywtNNm#OIyU>pjyAiyXS*=s#+ zS&kDB*77?P6m@(&{P2YJi0w}9d>8>pdv95hn?$BFlQmp6@_&u>-8lCo4u>I?h)var zQSD`)6ey>7p|Gy$<6^>I+F6MhYwj1}W5+`0dRx8ac5nFRaW!aSk5 z(}?J%76>xUebE;7(1LzSyd$x|ApFX{qZa8!v9&H3+$d27Vye&Zv`G8`*>`~W(oIQ0 zPfJA-Eb7f7C?n^gNnO6ZP;}3ucbt6zm{6iWMP0MV#Mf@?Ybal=Q7}c3?#cy-;kn~% ziG0E#SBmWnevp*L30ux3o{~}zhCOGo+US~z^$8-q+S}*ioZHHhm5_0B<4h2SJ=mIS zbzcbi0vmjZ8lafRMeZI)Ok0_%vUM_9qNG;FL^4uQ{F}K94{9>LLQZ0eOPLjL9Ko7Ct#RMAk`E*jxQ{ps7mEwC@YW^{+j3q_#jMNAZ(lwr=hRl1IA z=F+|98*@bW04+3)I;DrF0cO(-=iW)>f$nlGn!{`PwBit9GB%hGJ|ap7GM`Rn-I!dU zS2PGO5z^8nDzv(H7(j$u;-fP=rx`hWry7An#mW4!9H&zK-}$P&R@E-HOb_rZ64L%i zKehT9RCGnO=wiCHMHbTiwHCgRG@lWA6FW1a!egdTiQecI;ZCaBt1)=2@Pb8skk*nD1HuE=RP*0NMRBy6XGH?ciO{(1gn*VbAU2-M!4hyK)OxrdRHz(+eJvr9#)(WEPU~P9DKrVtNv`~LpOBb-0#$5ckG2;Non7e%K<({CcX5#SRDA_5gx<)W!**x*7 z6f`P7ENM%H_q#2<>u2A@wOqaWdOdtbN=i_>M%2n20Hx;lsf8fCFe4%@IYr{@>ft%X z{3(=&EL&JFNLn2Ilavy=Cv5TIVSj<*&s8uFVtMEhFZyzC@q^x>Y24al#{-{Os2dZ$ zSSB;{g+BM(J@OQ8E6~GhkLuB}2e_ur7$qXwA6hqvAeIOrrQcwl^*ByqxzmP{Y_w~u zAUZ5>3yBn4vZJB{a&-!87pKI`}4pnA610SzY%N5*SOKsc+}VUmap->Xoyq1qFAfb z$w&2B;X_wx4}s7^b&Kv?o_^o;{$>c%0K81#|wf*C7Xh$3O7`LjBk~7TebR+ z$Q>S#m$+G5UD7Z9K5vHOIgeJqQPSHzYD0Tpw#Si=*$9iN)xV;$cvje-%djFCh4&uA zp-pZ&bQpNQ?EP1`-O1^#m?zc5{gm+aFZ2G*?rq!}ua%19R|kI-jt>l8C0!dYoh*@C zbgjPqkiHoXZS~&%3#MwT&Fn;#;dtH_12ejL9hjIXF-A+Z)eD>h64~-xq^-WgIl%i@ z>hDMtr89Hqkf|jGshV;YxIB$-C9+7$i8%gdZ*1<`fgN0UUk0|;G7bNQ7cAXdwO1+lspEqkRvjy5D+H9uVhm19N(FU_=D(Tx{J8bGKc5Fh z=jF-mFwkMpSozJV91E=+XObf?I&UDjh8Da=EPdDCzkSwfWkLTxb6&L;0N-nGLd;&6zzL(cmcj z#v)VTqwf?8HPyp8X(Kh|V5IntlgP|s#XT}J0@_-4ZKdR9xz8bK5uR&$)G30qCQkMk zR84;qZVe$>Vqof?nqK+X^=I?pWb(0Dfw@gk8Q7K{3l&JX03Y!J`V@~xStO{lIX<`R zf?q(MUF$d61L(i#f;#wOedJ}$au(Qw!Ln1GNj4>kVdYabrKr+N|pE>G&224+lT0L4?*^^&AM5Ilu&+G;(FNYJ%-(;Ovb`V zd#JysZe=@z4duEIg$lcBYIwE>Pc@qUW0`-KD%>r>*QoA!c@{aT{)~dfKPB_e z;|Y=LX0rqE5sT5N>mJ$=A*+EA;UP$3k+tTux1u8_I8P9xskb>U)>{*+j%e#}I?iq+ zIc6yc+OnfGTxb6$WYZS8yG0ZZa>fYB)K{{JTW4VIp)v>tkxm|JOi`(y2$jlI_@dLZ ztBix3tU{FU3m8|M#fVQ-)Z=VXa+~GOgsbKjv;4>vQ71M{oRr*R(y4{-WL>?l3UyZ* zz2h5+^cp^lUq~UzY-N~2_qNbb0)a0$9|YJxM0|yq(`$4jkceQ5JcOHBI2^sJvZ-Kd zbVP}$lvl^)un9z$71fX`cM;8l&gV)Sc@@x|r>Jk_q{;mI)I@7_&-1Cm%3V zqlEh1*X1+I^?ynW!Py!Y7|pA8uMKhcPe~lQjQZISc+Vli6~|V%^}wO4IcIA z413L?+|UreyJJD2R3R&#(dx)fxEjz@G>f;TyJ`L#@g{PMuQskLtZsu?g3HoctD&M3 zpc8%SKV%;TZ^xZ*u`T#R#xRkq^V0q8@^zN$!BLIitQwdMm$dR@1X$_s4S~)}6W8H4 zIggLT)(h?yeo^efHkv=i8cKbk&QCWJG;|yVL3)l{5_Xc1C`3w|nwFtm-bPd*tVjPG zE*#=fM#E~9;DU@FE~*M3ZCOw5nk5|-wopH;vmfA#K6e9N-PlPdx!8LN>V%!~uNgdj zNelwbW9BY#|AzWY-m7%1)s{OZ)%>GCMA5e3K5hAsN!n|5!{rqgVTgGI)6h2CITRPZ zQ&dFBn0UAjkV{z{JL12SHIO}(W`wGYWi7I{I)H^Xs)-5vF< z{+W$|7-a42)PFjljBCYaDttC#Fy znTwU4y)AWvt0nchdYEvP?F@BrGXJYTP@vs>d?n1zKz5RJE}B1K6Pgv#3#k#xe$kCb zo0WvtXewzrxPz_JJYo2{qN6qYGP2tzN1gp8yeqzGPZZV2?DP?HSo=lM<4_3m)cv}| zYf)c`6$n61 zDFi$=h#V!48d7o;iiYydS5?mb%!9eiDxA>NWjt?EZZOH5Rh!IzQUSnwCe2u9i6vh; z9;wVhenO1-N@K4#eDqjonCYg%vaU#}c}-6vafg##-i1h^;eEIgpZnZ^^@4? z2QT2_h%xB54sMaS|K{yhBMksm#G`By{X|AJ8Tp0K4p< z1e_w|!B5na`6GS^Zw|*AI?cRT)t4iS&`&*P@fa5~qqHQ*Zmx&X4nVvz3nQmOMfw`8 zPAbD?q&F>7Bfc+6WqOQb;)OE9Iz!dC_2AuXg3e35mo^1|iVxl$-iCh3jgmLuIBXog zT<{{yRPZV_yN!WPxA)R@!Af#^y$zZ-dN)cBl{dLj^16MOZVi1eop-$C9Y)@KEAOG> z^0MC^b)4dPOZ3~VG7|WDfvLF1?0nM;o3HIPt%J8OAhNDNk=j+mV+We#Ug5>+4>E@jhGn= z$VDhxL=bhF8F@L4>&)xbql-r3zouNc`!0A;9*kr02tODM4>vC+5Bu_}-cnEfm8^m$ zpHT6Bz`t{P1x~#&^U^Wll;35ca*$mYDlxNFMan$yk(LNonWBo}DlNMZ zu}^u&ddxxGvsoV1jmG^t!~UUpiPz-EE~)B*wvfww_y=-i-pjeX$+)Rdk4!Xg+91*N zV9vG!Q|}=bj9i|FDJXKoMW-IzaaxR9hzNn$+5hsP;p#kF{5B@c;CXZM;pZ|#bEwB0 zK@IM<;AQfh$FunQTqrLNUhwt7*C=$KEXXG1N3?%ES$h14cBlP_`hmf3`mx>C=qWF{ zfBgL+ZYR59XkqQWg*FyCG?F$`hA@Mz$1DciukCW>aY7_t`@PtmV0RnSBbo757RbWo z79S)ebb<1YsQs*l6@~Ztpqd_)iIGDmmT_~@DsDkM+HNN5@D-e5FWaSj{^jDr$}Om& zxp(O9#C=?MvBhX>>dvxmQqh*Ti&JXF2z_Z@LshJjcrBiWrA-YtHgjo8!_ru#vA*HP zCgCdC_R1Hd63@3vxy^TrF)7DuY!%AD@?Mawk{G2JsiEaJ?iE9q%J$U#?7-S7+KNhZ zbZhEMReQ<=25Xp3QRh^CV5xItaF&fRv3`tu3ehhT``5jGfr>SZ+|IpTdyKHcif1~G zZjQcC_wD`}t0+!TIerM2 z5r~|Le+8F>i}*r;EWleTl#d4yB9eWnKl-besI{$L{+?sIj0W3r>igp>yy~yo<%lTc zz-T;Obo~UiYNuqVM5$qwwgpwASwVBMFG`huzWy#LD$T{O9_H@g9Nc4CHMj4@f+KNH&Z$5dX;i2n9yRMT9WNeC%GCAOaoTQiO;c;X{hdQ+nd}e=Ysmp&0M6 zY6Mlr>we=+8Nx!Uw0ggr5%*43{84!=IjA=sa|Dc!xve(5blG{Ke1PERNTGt~Fr@Ri zJgZ{q!(5a}ABb$a7Pbz+T4tWnQ)!LV!jUtFGa{LPGaX?TU+HZ|1oLqP@M1gA+f!IKQ1dd9!RZp&PE~YE2 zXtGTOUVKaM=&nN8QL+UMt@-y~3TZ?y?$!-eSWaX8ibxR`9<^poj}|QnxVu7s5t?BJ zBouq8ai@TF8cjcW+1t?x?=q8p@Sj}VA>CE;ZDqjXIgXu5)lvT+@MtAHMU1}r#XT8Wgaul4;ZKfcxSgv z(j%8+j2Gj$yF4#(W1!^XbUc{keF9+tcjuzhbz|VP=-7*qu~r#vrmK*8S+-LEp5LgN zHmp%3>@r>wV+25GM2}p7{b`QLZyp)vsf;8=h6U{RW|49eDbQs**)3`rP@}44;L~H= z-hu2Yz5u0LN`}?zqv%04oU&bfM)^1*K;p<&K8_3o21NoQ8@V523?)!nDCV(0m9gGv zZG%d#8i>xg7lE=i$gbt-dDeL<0eiRL%<&Cxmd*XXg>?`eno%zSR`SXK6rP&elc`Qn;mZe#-we0P$YnTA4I_Zqu z@u?n{N{?@n9tZyabkd}giILJln{?1A9ekBJPRZ%B=pdS6CXxRJL80MVnSsNM1k|xo zqps4q%w~mMoXYx}Pg7QnBQKr7xW7T5O;lEWh9@qkn)&ZfOKyq&7Jl6$o+Osfzp)cD z572X=`6xQn@R+K5=v(;6vC!Z)*F>IqLj%0`VF=p%@R6gTp>3}3^&~fuj5Ph!@R5Io z1`CELZgcfdeKls~AkQhci3=mur>Fs_IGXRhzbxfzC!Gj46{ME#(?!C0aq~qEXB@cx zQj|tIhH5yg=#fVX!5-16nblwY8FK6rK5@}^Nep<`BnpGK0C`YWsa~5DC|H8ekZY(+ zTFDM_;M?EaSSyR&P&eR0>d^_aAlW{!6ppAv2qJ^L4wR$FF-VRY=uJqD8gwy`9Mf;4 zE}_Zl=Vgk#3}Y|D?}VfPcz{fBWXjgFZVL6v$u=XI|EGs6-fJ956k)dKDWm2FJG5Z3 z3A?Os8hu5CEWf(w8iHZXD@+t(UO34P@s=3i-moC2)t57`FxliK{!6FCoNde?q}IE} z6sH{J^OPMA!W)5K#g6LH`gsgau#C`bmq4v6a~(N`=TS=0(vQhJmaQWPJYVHJ23@Ll zfJmy%7p^{`2rw(tWgJ(kejWolzTg51Vw*TGP|_BNM&)~;1X0_sq(5A@F{}$4?d+PY zJa1#b_DNz;S4M`s7EWpmWPL(#w{>{w%DhQjUFIg7u!lA#E)!UoK1@v+qT444&rule z9=0f}rhi^^QXx{U)LS8LP!b`op;jtMBHL_oZ<~*TH!6!I2T^QCiU<`8C*y`*0#xvu zk~@JK=jCw`WMLrUDX;>`KeyPTI%N#LMuNusjSh4?rki&-+gA{Q(8NPtXT%%q}3t)Iw3-9PdE^E}tUiL+&E)ndb z@FQqa(4(M9L63qa1w9Iy6!a))QqZHINqwH*(Il9X5SD@^{c@k`@>ES+>OeKb%k%^1 z-a_afWxxIZqaAgn!*{e}Y(4{l<~H*ZrUUB4=ybP*hMTK6KIlOT32x?%7(eNCk zNPTV$)DXIw{i5cdy`U6uMI<~Y3nH6CwpeLOm5aVj;Y!kr_`ldRksQ!ZA=#`F;O?u=xHuK+m&jJSQhYZ)bbg8~px)&UxhgX4NdBSV! zH`4vYEvtmxH*0>c&fF(0bT3=ieR^=B*k7D!9UKlhI8I?oj?ouEz~qp5`KdYuAPXL} ziZV8i2ZjBtntw*kQV%QDBFVT7iMCi_M)TGuq}lLi#WfSo4lzL?BIV}3JDV0Fxh@iD z@8{B9GQSscB?j^nMmGSlby2HK^RsC=&ZiQ1%j6mGF@3xrylu(Ak)ZA1=W$8M(ELdIk#F?fpTmdQt`J1l0fZ+;(GpM zs*czBNR;7%9&)8?9-9KH z{h2*Fw74d4NrBUGR4;ie^fkw5M)|PNo7^!xeAO{psmaRH9c%THjiGOhE1b3QX9Tj& z3&)+@0v68=4t8(EcO2hqIAT{Vk1z9$OAIYM23-w{3I(r zg!QW!IdTC4GNtIIA2Rz^C5w zVZn*z*V}^?oO}c-nPm65V~dKo1KCcHE;-58^XNM0sgQtZLNe5ZD&u636AJRkz3O$VX2A;&hEV|fySK!m6qH8Z!$ zQG-c08=wF0&}HMNf-beJd;xCS-M(mg(6_P-Sm1F~u!30c<~hL&&&?nOn;Fv{JWKwZ zfs!XN+-N%YB1s=|?p*W&LH%60K`!W$eV)MqnH=M*=KyLt_b=2O{9MY#<O7s+GuS-2KbBsP~CQDd(}y=_Uq=dB>nRS7x#Ac zE~~56R##_BrPs@!nbK7>$yQgVSY7p~t|rE&J69?>`woxS5t4SQ{26R@ZUB7|ww9*a?EZmJhG8yHLvDzPwR(ui?6sL=*~FD&EH&u}n^cSm<;AQ-byNxhYB6opadS6m$Y0R{oP%`vnq;|ZQ#6&b%fE`p>~-URX;-)@3=b4L-{^@?%3 zL!YOw@KeEtr{*c*9BtIz-^twW3f{$CVQ(PKOxz+>qN)Bo{(Cv@Xf=8jg1>Fr{UXut z5ekeV^tTpXNRm~tO!n8B)GC(;Hd3pa0=ef@dgqS>cf-10bh`*ljblVQuS47gnY~f$ z4-j7=BpSCU)RmHhd@0raY7OmK^s0o*xR^Q<(-Ay~439Zd`lJ16U-w#UsqnZzrY|~-(kie}Ctpu&o@q?^F3j2X3mHnY$K}A+dKN~3XA?#bx2$S z4(VJ0kAwjV>Z1DuaB0AOEcCem%@e&<_n2h$R;3tu6_v8o_=4MU3yG<5w&|nHtNob= z#F-DnVOX>-i?6hiXm8cJ&u%G8MyK~P2Q#M+8+#1bmA4By3xn+LTyingjFWZ$ri+fSrbrDb@X@M3{Xu(SnF9lqAO1u=& zmdi@s@0pn=ZDUb>zu)`*-~Z?H|EEpP+%IQl&di)Sb7qhdWkLjx&s-BVgks`ywSNnC zo{~BUDMF3TTHL*b0NUAn8kTh=g9b4Vu zygz-!KZ_vPfN2a0Ij;XRlB5$XyxQ*n8cB}zA;}KA=OHyI=)PG^T1jVM5$+_=p25j2 zt{B`+AKr`V6&$$*<70qv7P|(q>7YlALRS+Pcs~I4JSJNEg->o6K6Ywg5-{cUyyU0q zIeR(Plh4zkvqx=-pTf~rQwtPhK&2kW3VsJRO4JsW=PH0w+4~`WaZ%o(O!yCU)4Fd| zgVoc&jE(xYlQlQD6eBQo!;-kmX@ZaCw`3+7l zBH6WRl^*6m?z)5aJZL?IIzilx;Kz(OwBNCdWJAdSb-Rs_#`!kTH(1{`3`3pQ{3gaKE6wLOn+*6hfoQNwi&sU)^3E~L{H zd938EO-X^_>Mul6Geb$K>oNAY(iSe8>6x4hyh!fohN#(OFk>2J=Z|#pMuLOTg@S?R z7-~OA=h#xl06h!QMOW3-0pGZ&<7}xO~iAKH)BA zxE$avd$|iJTwEh}*}`3l;PL@?`7?JZh08nKnBgQW=Yl%J=cHyBP();)AtkRdWsM8H_Im}&Rxr-4l&D`ZI zVO*J>4VS(=ZI!#^z~u)X<^$F$lpCV~oG5MON$8v z<&&#uw<`z;lnt@2|29!uB%!>og5QSOYkC@tSVjcB?kFr|ywginEN|hVG$ADJyszN4 z6tuf{_BpkLtcqfWRZV4uR_tUR!_8S_zKqOX1q=lViBIMUJjHF-ip0tGfqI2V9Lr+Z z269_1Y?PIrtctQ8R<#kwNic69^IP1!k<1&p8S;aY`VupTHWa`_=uV_Ih2nG>vjgfM z7=j0rXtnh!#5HMxx}2`g%5Ug!RO|knFMY5v>6$;m5C~viHqY+18_BUlJu{fZcjw^d zeGx97m13`O(^QPY)SY(dYqa8#1kBV*bEeX2_huT@jC{;;Z&O#p<4+ipHlwmMw(~ja zW;SJirm{oXf7t+D{O47L7CqV1azn?ADL)7q|@?nWTo)5bm=$2nMMH|XAhSS;zF zz*HiZKG6-*C!Zjkr`||m9N5WWLyak7{ybJtD@_6@Et~lngB^&x5&2-*geOS66(|W^ zwO1f>24zvMC1~B#crNxZo{m6zkoKA0UOADn06+6<5b=uTCW%Q;7=-i$NzY^^*;C(D zM?yx~t^mUdFsuN>-hz-cF?fdULEO_)DqE@U$X&;Hca`lut!hszk+4u;uO-d0nK)Bm zt|_;m=_Y2iQ&CX!1C$(8v@KQHnN1e9wVIR9#nd+|6M$hj3XA;bBb3{If0~9_ECf?Ex{sB`=>$-&M6sMl|QYrhZ9Rxiq zfm?7^Zv$?j@r^=6sUI_+T{!-2Fxfp{MYvx>-wR(%5uI!M2SRdM3?^gLtjACgFm;V| z$}WK?UJ2GK#EB${{8IJ?5TsBjZ~6hfY?k1}1*m>!_-iPn^CK2fXxhDPviCIZAy z0F;w@li&zy!9DMUCkD$h~9TkDI#_DcNyYp;Af#qBeiSg4FXMRET~8l z9>v_zlc}W@4zTSm^v7;?Od1h5Ma8Ouf2bb?<6kL5V%0uyfj&n!?$WfSh3bNM``kx8 zo!)ov?Su4RfIn|{wiXtL%yhm2=`z<08VHQNg9~9d&5lJbK@^Hj<%oOwu5S2d z=l&+-pYCCuJnF%laE9KOq#c4E&H?NJ_t`fe2;D-$T0 zI<}|y$euc4G*ZIJ&B47}%qVg)O#AJrXYDnUW8r~l14QCKDm8>g+9u-xd#s(=c~6(j zi3u_%P?qK48AjD3lveKjztqYNQHM{cfp$TDW4@#t{R;hi}Y(CqL| zH>jAIX~9buwt%xmlwwU>F$X0almbw%BOKry3T&qCVo7GGcSsFdufXLP%cck`M4LnB$| z%?y3ys?}t`!#>NfFru>|br57moQwhO9sx4l?YtrEl|{NDuEd?JLXYzw(c^)}K);FE zdd&PDAG*EY{Vk{qCWK4Wt5<7GW_1bZS>R>xf(*9t9jrDuB=Szq2TjBwk$3V;GGH7` z{v{c}x0*Z=2E6e=C!*07Z>COdsbGEM7vuu=O_Xtx)?}&e_JjNA6$T-aP8{1dRLSy| z5qufXxtJw*GUpE;mxF0rf*yc{r^9nEZnK{=xM!$u<1Ae<8_{x0@inP`hrPjUe1y=0 z0M{X>{;aC4dWQ}R&p1O@#hH);tw=`L>3TdNAOQLsLTRIs!eh1C2gb#B!jxty^BwsWu(b(<1oXRihP}Qp71PNQUlQw$N zC=06)<;H60N1Few(m!-TeBqr8#rmWkFHiZuFxhk;I%077^0>*~c@oERkW<&4MmRUUl#4q)g>AXL1W2*Lq`rtwdNR>SNpkEWzFO;2wxjLlxP< z7R7H#_Sy5A9C?1l`LNzH(fM0_xy};wq50*i&w+iL;(S%_z2&@3nY)^hE5Gfx);x=+ zKEWaWTVf7?>+&~8B1f(TBDuwye9DT;FXV&u+pPilO%r@YSgZ0q6etmZ~Qhxp=7emLCwpqF7h!531If7R}S<&B4qElIK)Dp%b$;5y%FdKhYTI zp13CEcOti;@UVHuPGUq&9$A4hNVfD7OZsLgvtH5TyvTb(gJlo@x)bY(*jorOqi3B9UYHRlie*_wX8)+@!2y=*838Xk@q- z$|FIf@quU+<|vaRW-qAp;{FaaXL4PpZWm%LK4!)9IfQiFA;TFbLOY>KS@{G5KA#@6 zEP|I64+v2Zh%f8qk!B#SPo{UVp7L<&nsEOx0o@8E^`9_Neek>;z3G>ZGvz4<&`&JE z`Wow_dMmDgqT6*^anG4jvn7-WK( za?rz;V4aeo&-C7_MNq6FvhoQcnE(M?+o0QIWTeI zlX`cbn!yL-3t)Yk1w@}ZbH^}V?b&%_*KI7`&2?c5HMO(JlF$GhC^qo-^-y2tveM5D z^pj-47T_-AumU;Ql_#=+9XdTdyqF)4>IZ;bQfCC_yiqf$5IDJr${+(cOe{3)SHn(` z{v;ypM|dnG+tvc229v;VaDv-U`+EAUv}_wG83;SXnVJjqB%D?^jia7#O`J<%aqI5` z^(DAaLp9)d7uc;s*hx@mV_^@`qZdxthQ2_f&5?jjGdO6Fr&z9h~dK3HDbggumBt>0>=2o9V(|jwBZLC?o&RdCQuYledx|wD7e`8AU*DQYu zePe>s0H*_;A6axC*37QO)zJxyhb@Y%$DUk` zl5yhJ*@S|mcr$|X+s^8B(2?xNxY(V6mpLtO(X8n?UB38g&mSpkv>40EQ&0>1XRgD9 zhAT1ZG@0=1u5GJD5WIVke8`%9*dqUSmsR(zP1g?5vGOI`EZ*#(4R6R>)Azb&(i6NX zd=B#3gP<0Dt;($Gbpf3%^#HCt^-*Sd*P#>#ED0adbYV@v#l*dqgGVhf2Qq5lhxv@s ziBe|Q1~&6S1%+WUK-s|%%IZLlLnuRg5z2P=in9F-Wk)PA%|O``KpE)d!T$ov zXe6{Xg4kkNb%R_r0%-cFF8Kp%`|vJ#oLswiN%`#tbTPb`mFlCO(vtou?`0PG@m&^N z2uGKp{<3(?1$&$YJ+1|u8tQR@+brIxcs{${m4RpMarcS!rKyVZ362;mb*&7A@Pt0? zZ@V1bnxr$Nm_}Ux&!|B-8zQrQw2gYpwj0n>>|QSow`ANA#uD(n|C=bh+VM6;1CvM1 zv7@VeF%oprymsHg)|#pj6gcou=Vx|YyQE>~Y1PYbTccVdF))mysd%aIn!9akTrlEC3V5?NDC{kf)^I=2|D7@|lO=giQ( z8H0JqnK%Ii_G$0=;O2L+Z>NjzN2mbGA1P|*5e1LH>xd@MN^lf>wqA*~hAON7)eSOdh`NZ%130PDBCcB;bJug0F%uMkO68y6v%$;&QKmS+(S22RDFQNtZ+9b?n&x23=1{*bMsUna7`C`@_z2!%C`wWg|?+Cre)raRs?9urts zg~t2Z9-m`59=QAkhyr;BjJkXL<}qYRx>uF_Giq@3U^5@i)W_+P1TTQpT8 z{T&p63Ty#;i8rcUo&sg*tm!Or#vxi|=g5!yu$sdm0SoJpr!-Z8&xs4`Hre(LaDjOM z?JGsmRzj{CjPx>;3BQI2!xgsl_vGp`s7J;XuRozj0GoF{^iQ#{ZAaj4OFfLmES@Hp ztG2;vQO+6lt{QN@t6ONOv1qXR@3!?--$LIU8H~PVthq?~cF5L~zO5pBYxFG^ zvjR;BZ6qDX(DoV|oL~sj`FA&Jlvh7VMY(%jh~%8K)@0UF-@2X_eVOSyy6DV6)FNnvDr!nqN<$8{A@kiQW<%HHq_auF}NFS z!svyzEakKX!g{mUbrF^v5SD$YDYcEB5KdUiKv-DViyE3rn^qVZnV4qEwMckO<3CA}l#Q3Ck`{SlmBuc}7i! zfr4l)pLsJ{UXSJ$)a3SJ-tvN!Jj+Q5t_?*cRQDt$Y0z?ulROl`{39CTD(*=?vM~@` zzeMM8&F)4wezxP#wqOYB{6oS!e?PW{>??+Vm=hspPyr=8l#dnpuqn{$T?ckr1xA|F ztG7?BfgSTa8)i^R@EK(>lx5LBltsky+JK&Kl%AmZ8bha69TXtM;5}T+rWDfNejiZ2 zs}Dpq?uh_RbS={It72=69$9jyP_FN|4^gh^8W|iCMg}9;sv~fjht2a+;1aBwqHM_@ z2KredcTs+8`at*u42mp0sQe_bOO_5GF`bo5qQO{qN^YG+SBDjyQcc@;JKmy5Z?MZ5 zr|r7)=J6dk3zVx4qFF6(;ba19nao-?;qHKi)!_iPrcbQ1FKCqZJcD=Hq4$fgld$0C z#OXs@db9hZi$>hxHbNY3miw&92Q5r@FY7Os&Q?r1Yxnq$M0)iDB7N4YeN()#eZXu( z`b(lMH|}%ASk`vp1Viz!i5&{wv{lz=#oo|Qe2ir1dE4QTZ`(mHD56T$L}REjV1J`N z?kF=3BruK8i)BuuXU?veZGARsV_&aE%Op>$asEx*C+TnFXw8fzw{32>wG>la4QK*<7 zsJ;THT8%-Wqm;z$fgf=2vLUEbgj35>(;7P$h``G}>`97`)N?qERi+QBb>=m7_%Vt8 z8nKjgl8(naArImpB?Ib4p#sEGZUa|*Ch zY=QQ42pBIO1+9<}H5!^mdYRbELF}AaUx)F&8+)HdIya2(mk=R!WI*-$RV zOITL-mwKr?RxTKNd(?H$Q{5vkSa*KTuiOr$L??6|brCK-aJY~(Eo~rq2gQOr3=yt5 z5NfSeE8e3+o)*fJq<`~qZ=X(X(s)NEX*eiRz3g`EP<$j8k&lNXSW7@UB^ZA$i@Aea z3JlmMA{xp>_prI(fRInoWD@DAN08b*ILB10D}g^e`VBQr@eQ}|=LBv^iC~pR4-Ty4 z%EX~K%GD44Yy^MGBH+dtNyZGt(DURONrD3jLLj3?*Y3$1be>X(BvU8(QVgzL3i8^x zKZK)1+@FWY&t5eFR~|qzAnXDLhx$IIXW9=uh-A(3CQY=Zi%$GRUABM>h`J03uM0T0 zpgk*ksm;gTYcma-98sIbi>}SMZnc>WZZoe9)Q~axcdE@Y)P}tnPePDg5-LRJJdn4J zQ*XGJRx>oY1u`IKeNB2?5yorzm5{T>;G9b*0Nv!QF>V!ooxBOs>Yi3};1ad7P>Zfw z3+Unw7orfj3Z45}=!k*ok*5ncuIVJiKRNi|`QWx=$l0sE+_D)ODW#_&){eT-<6@Pok#j_1^4= zhazdP5dRB$7sPl$FJc1&>Vo;hlDIU44P=rX)(YfHXLKem2MAh~L$s=hnxhoxB1P9i zrUZw>*tq?~yCK(H=*16=7@~rdUPxwCdpP8`H=sfP2M>q*b3SB2p6j6v(>k8rAn4`c zkSpKi*EArt4#bErT((EYU8roCKPub(AXh(Mw#?qjmi7~6Ya57ku_9wnM6$)$D_Cq| z;3uL9#k{l?rDSW=6gA><=7~p7F#80e7^!6h2wW^I+OU;puNC7Rh3HK040^6%AP!_B zy_W6J8e;W2pfqH=RlWt6p@(^=nXq&Q<2Tvwj={KhL5mi|o_Anu60My4z*uDK9!KlI zOVtRB2yrj*)|_Av`36_Ad`Udz2$|Y`1vhM|n3-m6;GM0*(2Kj>JX=A*QCK|6gFCP6 z#^#qmE3{k^!^5&&f-mk+85fgogBUvy0?pw2%P+Vh!xx(UYjq?Mu< zoB7@XU77b~npv_!Dup4)d%2o}R?#*Mf4c{DXTrKUXbn(XPYeWacSAEJC)Ma({VbjS zl|T`0#Itja{6won{68zGaT3@_iJ%*M!2bq`AY_}>^;o1Sr{Q76Cekdq#zF$%3VR+# zDSL$gGv_D_CR*;&QWsNZMSf%2d8l^#rV(euL6;6?fT|PBy}@@NpXjK;yX!T0cfF<@ zLWO*;WIEyxXF^r!nql;u0nQZmp$|Hg2E3R}H`h4byA3Mqkpc9$&TYa&L_xIecFEjV zvQ{^^uOQJz?6R`d^|$dO>2vS~amz|*aNi_v{kp%hFJb?7>YlhvVTPc~&E87dvuq7+ zNBBC|@++bOAQ$S}~b9v`3N$M-f zRiq=N!zSUyk^5m%Z2B$8#+TqHUUkJ}{Fq%vyl2LqH^R$~)pSOrWE$w*kfHQ5kbcI~ z&p3!Z%GIOcZ;`k4r~1HEuKE;dFrOIsY!05sDITe3!^VUb)BDvyVBM0e>>g~?xl1Iu z&=e7?-b|fBYCC`k)o#dJHo#zEBBGQ&_4h1F;}J;h(LAsp9GPLzZ{VJ_`I|SlOIYV- zx%&|!+8`*8Q3Mf%$}{J&(8G%A^SiaN8-TiO6brlX5hw$u5=wG8N!=q&xr+KdVeQsX z0ds|)JH73f@Z1jcN-RV4v@BGN?krN#tjUaBkJL`#{t-*;YJ}Idq@P>a!WTr@w8p?f z!-a*0SQE^vCxV3fnOKI9!+q^8^uN$rjlJzhGb^QV2%1!sv(OX-EkQ;+R0km@Mcsx> zf?H9j3eORp%Sw%7LKCdJqPWzZv>D-ifh#(JTJ(n}{N|1Z17y2LHFiLf zAfXN;NHRl8sSZ!dY(WS~X-M$9?qTAFE-szu%9tzx1+EE`B`p8QhDffFlO=2qU032v zVvxF|E8iVJ8S=e?Z4d*O(mg3$_F>w40E}w%4`$aT z>XlsymLtKym8l(-4zZo|D7qJSW# zba|E5LwekYA9P@?vnj2^Z+9;~1*Y;1eIbdwv27({4gLc|&5%M6*OW`$*j#=H*Z07^p|QA=6%`JtlsLKk zlXrQ+0`Rcif4BLz6g64Ob$W$vw0VoRK-Q@hMZrlU^qqhiwgkK<(a$)UJEvp!zY) zATjr%!>FcuC@$_xSQw_R?-ph=%ni~|6eF-7&yjuRRF?l1Yrj83lX*iQYIVQbH?@O_ z@Hik&V~tt<+s>v!xxB^TX~oFI!95hl+ab+{{j8O4AmjaFJeT}uO0mZMChqFJ>a1Db zP$;jkdGLdYEEu0{p*6P3$T1^C)oT!%a;Jp#2v)DuGn#I;bnJ+5-Kf|+R3@xI=gC`7 zjnuNOxm&R-vsY8@JZqNvSu;zWwfGJ8JSe}OJmku*O(eVGPM38X*o=t#(>Gz{H>x*h zL*4amOu@?C3La7m#vcGj55wd3VEj@R0tz!OLl}GB5Tv*hlL6QW)CIdRgtG zA6^lxyC1pPy2kxHzN@M9G_OM}z7a2IqkHm;$X#`VX7k30KptfNaV6nZ^dk03FV^R> zTJRLR$=!Avnioi4O^W%a5<8SLSRpUX~h}RoNE2}&TSU%+?p|t?YMJ`MQ+rdXmovc=hk4) zTb=_&xOnuzshq%!4bCi>6(2g3-D=Z7EIS&Y-4@J>(>VNDik{={iPh&&c9Hl1I|3AG_4#HDOR0eoZt~5x-bIqA4pKjRg=l1>&`8kr0F`Y9oKOi zm*~JWv3rhSZ|+y0xB?hRK0;S{$j1`ac zfZWjvhP4BvlGRsUrfhgeW> zi6*jDx4LduY^CJ75UzMp>9M@k+5P2swa+Y$Eq0qMbc4A8_jnQV z4+wcdG`M(?F;ke-q6azVT=$^T#24W>gC1#Ovn%^ReFul|rhf2G&}LxFeQDqt8rxmf zeoOecE`x#??XvSVYQ#*ep2o0ikU_c!9rB7&znFoXI|A5ceuOZJldcB98#aQfMCA1OygI+}X2UP?tgG*IMS6)wIN4S}i zZu<@M23z4xvf|Ke@g=IME8rpo44`g|&5)wrmk1JvEhG@O1{YtD@NV}djPDFa!@H{I zYv8&iFpkzDY`8)@0B*`{jR37wXFz@yWr|b%s3_;31a#i)^FXMbArzR`HveM79>ypo z{85g>)D@v5)V;S7)dd5TFpOO~5t6uPaI``W(4uqi4a9z7pEjzaFcV;VA3@vMJx!#I zZn;PO1CkGnMBjAxRewR|0d~*1*2Ux0J}h5|Wr{04DaZt;P3pH9v}SdEMh6R1cQG?o z%5eix4D>a2G8v2?eLW$}=V}h@;DzAlG!}Vl`#?x%C-}f-03m<5^*`IC0}G5LG4oN+Kmu2@biF65mSM+* zB&Qnyrs%Z*gb$-O*FnwnBk)$H>($qBK!Dr97(FSZR4GNpn5W%~2@`0_#2EKbzzGwl z)9s-KVmH!x9K#DUvK<+>cf&mydHqpk6aa~*(RfQ!F^f{-pfS|X$lZf47M?m4drR_) zQ+HuOrBy)_ z)k_s5jqj^RPEqC;aVWbb6=h-Nwp@+tv8^O{0JZfAbu1hmfyd#-f(zS@>?oNc@B*X% zXBWyVF`_(^12nzJ)oqwc3+1F1d|R=AKRAKP?<ukqK;~=59R`%E zs(GBIQ}P$53gtV$g3nI*;cJ=e;rPCY_pLm4^kXdkwbu{9l)`6Wq%?W~Y`E-WPl);k zX*m<(P6IfakKmRMmAw&ZjgF!it3IRd=~u@V%7OTqEUiG?bU-MA)xXZN*z>JLo)e4f zKS|B_`r)w`F@dBJzhPxC#@)r>oR7Yh=j_3^j%o>TC-A8ss6Bl-P;`%(Ch zVc(1N#{B_>ggx#q4!=hI+K{=CHn8!9xEF#zgX-`zdI1md1!C^N_kDbkYY9+}9-LiY z$UfSAB}9nNW)bE__`iZe|Q9sKNo#0yA^Kr_`W03N5$ss z!}nA8QKkI&!oRChXrUKa(sSdVX3%&7Nyh*1Jd#IuqAln96AIcY@{C3||51KzG7Fr<)SpFJk( zP8irQD6H*PMtP(a-6_?#^GJEqgdIoDtbpm*7sMWA=b3BAbppy& zmPpu|zxfI-=-bC4$nS7`GKD`kcl19Ap1Jn=bktU^dX)RdjbN^aM~o(Tr2JIG&Li*b zro0+=9y&a_1Yr?p^cae>>NSb??wxIccsGSV8Hig1h)#SZ{C1w2yJv^L9K9P3-&4#} zbNoBc8AoiPu;+~9Dgk#KJ^Av8r-WhLwJ-pkt<1HI1)Bp)^OnXPM~`fI2MNSIOI1YV z_W*Ys-Tl|DKKvqWFsFIv;W0q=IVW}=&i?n# z!*jm?l1DtrQkYv0w^oFU>v#@v4$m2Vp5U=LQOtg9&WKORelB|lzCcZOeYcVlR%KSe zx$%7oHkTimu(R!O{CyPXOj6y>=Ck7-C6BY{jPx`R>mTlGP?NYXo@M=UB#NPaig}`2 zx_tPC`X7aE;i11rV(P}8p=;4CUxv493=Fkop#J#=42;yF&(~9|Um;e2-8bx(6C>D_ zM~Hz5!5lH)$ge==iFTcMqRCuA4DC1kTO=3?EeUmCQol(XkwV5!-%MIM0>ki>jv37L z&A9X>1!8d4Qb#ghvK3Rlf3%c?A|+3jOaLP$OJ)FhGC6LcY-QV?fN_h2aS-Uon2X@H zf{TlVvEP3pax|rANjMmTm4n}sP!A_&98D3prSeDx1_mTZaJPp2HpMh6b)#`W5cI~9 z5>Y9}?{6I(Q>Rt$9acXaLK(oCK{-h!gb{bKA}x5P3$i^iK0M4#cJeUzkLch+M!lt3 zjcN28jnM7(AJto9{MH!Ucl7yNhgxDt9b4!_>yx2(;E)B2kfBPmUmff}F?2Ll78wHB zKv_&vYR7g$Ban$2LVs9-1y`sBhXyQL z2?s1$R}!wx3gS!GSWKBH2P*VO^hFFD5LxeWC`#N8`^CsP(w(L!26$dcpAMm(sRVb zpH4HzG&1yyht#;uz-{`NM%o@pR4hmudybl78aqFt2iGFeR7Y;+O>IR}xB6I~2FlY= zFWwdbtD-~?WgmyZ={fJdh8ix#>YbtkgdY94-~5gQDDfth6`KR(VuqgNu^^~5Q4myl0L!s2O!*r85w)3p69BxdNtcUIW1sX;HjfVJg7`B zDzrft08%)N=Vy9na}L?s@Qi8@_fAPk#VQKc7iE#eMz^0_8(l z89yTmD|sI(IlN6+7@=hwQHye~7$KKxQ?ul38p@V%M z66E;^(u26XqMU@pUWEGR&xn}-u7Oi&Wg>h}!ojWt?8&MFg3mHu?oH6i})ptLo-6c5p1{TmBzy({Bwd}septVJ0$6}i(FEm?T}a_xVcO{*Q6#C z0dGT+TbOjKQtv-K61RXoJ{_2SRver6dXAq(+F=EsG zGH%9+!)~0pwMOHj7bXzQF03e)YCk+N-JoAmkO)h4J<79<&hwOJdFzRR)w?LbcA7YF zo7^>u&)CEGj2#DYf45w@ho+Z6UrWpffykH-ER{!TLb7;Hm|Y_*l_z{FF?YpUJZH`B zOOWEwKrABQ2~;dQww@SfQ+8N7o2&_7A$)9&smEt(Q z>5fs;u||`(9*dEuuqKUwIhMJzwqn8SFS4B~k5TD80ki9}$^dJm7|*$0+lVHixxI~R zbkER7^i!O>vSG#FUj=t0=s7kL`W2KmFb0UFw;c#!$1LhJJ$BzUee6oRxnrlnB}0;b zSv1$aaI7;h1&(^KSLLl=^ec~MFD-kHoePYGa|CyehBG>{n9oq4jVTXojA}?rfOQsU zkHIsE`&2qJr*|^;tM5=iP_`645rT=xgtohBiw>cJ8O+d70VF{8=xH3+k`_n#s@D_S zsrE|LcFZJpQcq!P1sfS>I%#mn6nv6itWHrfnHUF-dk(38#Qp%ABX9Qehl6N+es35WmG^`Z4S(XQ@8Y%EIp zqK^**Jw!A-EEb4^Rj*mWna*sbD;M7`;#V#hE-H5rYApBMgWDE85UBB=pzA88k@hU1 zod^$BDBl?4i|&fU_;GkF5R(&QPFZWBYOo5CUnH?qtgnsI&>DRrO037pKrEKjaG)nF z<%lM`|ES3x)5K0$m;hyBpGke(GC$r&Iu@i8fck@|G#H@V19Zl9Jz~D-IoU)V|7Boc%Vmhc+XHlf zf~2waq36pY=rmE~BpmHGgI{8SY@h3D+zpFxFR<2_TNo2?Kvt7Y0qbUfxv|0QyMppI zZ>F&k7>CYf28QYVSk{OTj>qJH78-zMEuAKgqR?2&Vl<*_K9X3=eO-x5NmsVoa}1zB85qzt2huvvnJ}5y3VG!l@&NZPVgn{ z!Kz!ISTT9X8RX@KnQS^g5vQ57IG1z2>14> z)$D`-e7fdsMi1$b)*x2NCY&BYD_ZJ-ZCG#lYHru#M9Nr0uZj?eMgKCopeNL3-1Zp! zJ$8KrO>@EtXCCAf$$B9V^=s~=hm&4}f@~LsGQi0ooY1c1g#FfRd}DCgurGA#bvCC? zGho8GZW^-JJo;hY6&{8j9??)=AUyOvJYsaag?l92kvgU2Z;KU<5pY!h0#b%$8g4}( zt4yQE5o_$I(}ygEjyeNbY(|egR^L%)3|S&O>P#U^greij1B;!nMXmxgqZ-}!c1Sqk_GL9K&2%MY6xkafSHj!lp$tDjjYr87fIb+N&&xE!ZI7`sGQ0HFc8dxZ1Nk~ee8I&)uHpz z)&9$stXOCIfwE}DZqV&oXPC@vUb5)ga_6Da?Of1oCXzJ&<7=@h+nC^A%eZv#EOe#yxtRmbKHnFG*>py&_rL|i({=4T(Ja{=MkyMTuGU-;%ti++tHVG5j_C*YM&atlGt`KSJPp9J5r}NNe+WBY?dlio zH2RR*0F{azQ}l)IxXSdr@UMIo@4D$oq`-J3eJFvq1F$}gVIJ?1{7Lk zmkxQfuwkUD6B5Lj0YX3N41vcu&e!ptv!8y3(cPW{E9_@NIIO79dr=n;R)hUM(01CBQ%#K$SW`ca`nF0OZYPRsIY54Fxn$)Rh! zMR{b^`hrL)Q@6(wgz~vL(AqHPOd)=Lu&$XC#4B)fzJ=v1xttfrb)oXY6UwsYoMR!8 z9_&z}H|IYT>-!#QbZUup@PrWHbUn_a7Wz;i(~?-Q-XczA$SbW8?e(6?%D=JSl~;X& zHKH>;>S5Rx4~C%{h9z+wQHdSY#j4L^?%r{1`A}a3D(&zb8R_t}nHt5Rl+{0eu3t0@^G6l&qst<$z^U zzA4jdNA^craoZS*7@}@bo_(g3Vf7 z4txwmwC+5=QrdZX32y=IJaFd^$5H;{RQ}^s{^L~sMfs0c^70?A{I8W?Ur4=z zmw)+jt^8!-mmg>4CxG%3=w5#LmD9WmTKUm5FCRl2p-r>CV{LjhRt&r~ zWwfTTduvtz`-`XdI4{Q8eFVN1BmJ1@Cxw2@^pizDIrLMCHlxUBGY(D@D6d1CA(JC? zLmX|Ur#4Fp)tPn1eia}0; zUcwDa8o%E78#2!0X(k$`*p{&#tKo|VYZfaa4c7WvrxK}5GvGjES}flBoYCJ|BjH*$ zMwmU;x+beXq<5e&ivnz#77ahTvu#~tkFLiBuEH8aeXSCWxEbIGZkpDohT@s^@b5$M zv~;^ANzo8ABNB0~Ys`^d`EQyQ%flgdtd^_DkXbiPgW_okcjZOWJaoOtUu4a!n=p6VJ$Ki{u1b62SJwTQGRdB$AS}I5r`k|Yr#e3pEeZPb zh(@R2#>e@Jm5+!KPvQ88CpTe&TTUphFqJr?D~N7688L$m#DHuBU}H4F$w|Y)ZltXi z82B;1jssuE317zvU&k*7U&jT$jthJp7x+5<-^bVMz2a;6@gL)h+)NxJA$*ZrIKIfO z2fmgc?~X6Bb>WL_3~d5mAyV3d9#T&PhlS{=^bPCS&tTJq@e)bnWnpAH0#u;K$PZ&L zE;@GaboK#u{?A65Tr$H5!!J$vnNRe!AHKH}$(=(aH#Y_D)6Dppkww9BC|D^x97Kk1 zCo(*T$Z)PkhS5){3}MuGT`$zQC4_S-KKc|5b>N8G7*TfiBS1Zj`w@VRk!WW>0@UBQ z9|72!xQzg8t=z`ILP5Sm<5xCbVoz?yDhaH^0qxL(ZFG24V~1aM4Fy#oactQLKm7oU zJfI&I(avNajz}HgVz?fVuZjo^4wH|Nud*2BtNO9jz{DKTibr$^7jQ3?uX5y&2VR_a z4lqNbF&wkth?nTC1Mn=pbASmhDR427i%~Yl4sgFhDLOo@D?Aejaul(_W&#FrPt!zPgS)Y3MydE& zIx7|!6Pb2(153zTfsjb6)ULe!6d9Fy2Gz@x%R%~f#-*8)rY_@dMabI@EzoIb+r|?VX9~s0YZ&OK8Xi6$RDVG!cydam2Adg^6@Zn1VuRXy9G|mt zhHze!nT^A66Vlj>FzRurs0*RK3&l!inmP#EQO|OdL?Y$SQDCtvo#=TGculQ*kmK|c z7#KeL!N70{Cc*S1_2dFviuJi-{((l`tCql4t9o%I9x9Q1NQ}^|E@$>kGb~9Vlxjs) zb@z2ETgcUcIG&{`(h7rm6Wy@4r*!oktzTu@m43{%ZSM$dkGpyt>m?D2p(Zmi)mM3j z`U+SjH8vA(Q_%stk_n}wbbw3Il@8h})!pn> z5SRubfl%`h3eYVvZh$e*j+DFGzW-h;m2l7D?w^F*(a;pWtF(3DUfEiC)(`K2Dn!zJ z9=@Q@!VCJ$xS&tk1${2RppU+X&lVzNynO?gbuTp21;#xN^za}QXtk+bt3@HCDVYLi z%R^s$a~7JifhDs|71A zmc=5eL*&u@6Y90NfJHR6?TsE$HP;tK;B7%S-V%AJfC7E`raGx@QQZV`{V_ znt@Tq#hve2ZpFn`Cw~;skv9NuzxIJDz@cB!K|Hv{qznKuANnTiTIkQQRJ5KC1&TlQ zWmupC)-?zOf>MFnLlS?}8eSYTpGUM|9KmN2S8Qb(7~4JABSgGeO9hc@TbWEwFe z5p6J3o}sA+5zd4~ARcoFp9tM!mJ+EU-T$qh;%BhU!DoelkN%e1bA)}{Z@9flKvlrV zb=>`O0aFCb5bzEG3k6&y;8OzrL%??gJSyOK0!BZ<(;qJ2SOKj9&JeIrz@-At66JnY z*f$EeN5D@7JS*VPCwV?&1+)t|U%;gTJ}Te_0k;WwK)^2q{7yi8B0;&R@6|nzP0#5>t7w{$lvjm(gV3B}}1zaUyt$@E5aD#xm1Z)vd z74Sa-Uh*{0KT*IN1k4a{hJg17SSH{q0oMumdjbC<;3fgz5%3EECDFb{0Y?cqUcjjW zYJ=oi(O=gJSSq0AZyqDDWsL?awnQ-d`Y@=4_r1;iHT%%Zd3?>T!K@M7-5~szzQyey zKgHu$+`(b(t3A`x;t&0Vhfn$w_y615z2~Ea*I>$DBU$;I1jMeg$0seNXFA5iJbgN4 zr;kb4X_BB%QkZ|5u=nHMl3m!Ng*`jWUL@?X!hdO4{3>DZBm8T_{MU!sH-_1L!mgFK zQP{QevrzwwpKIZt*(l-b@5qSE<3OgSKctIn~J}4~w&@lhu zVRloPJxSQL_L&gopC;^Dc_xMVo5SqZu<-UUyEDw5CG0w0U1?UBe|DICZkRns*fsp* zhxr$U`7aFfFAei|h50WHvp*DOuLz4@6=q)(W`88iUK?g#7iNDd%>JyfYxr6pW`8Lx z{Dv_5-@@!0g=nYU#a}P%U>>l~Mq$_R z|GKc#YM4I0u<%X7u9fdQVb|!9^cgRohJT~5_vgt;CSljgV-|J|e>uWFT7+LC?1{p@ zG0eY3*pr37p_S*arJp41CgGnY?4yKzsjw#r`vzf$EIs?Q2s?>s(dV?VYxLQ0gy%Pa zdrKx^*XU^Q_^pYZh4ME}+3TR43RAK&5hAUiC6 zc>ni_{NqLb^XARZEicH|&?n8CmzQ6Vw-B&2w>&R*p$GomEAA_ zu&kimRkk3{rMbI{a~CeSx40mmIcUCAF;j5?UP!|a6NF;b3eS!qE@p%zTaSy%!OQ@JbGwII)QuRFIapZVnw(u(ix3b&Zr zA6S9An;J~`=t6|>5IOk;g}Ls9E>m7fu@=>ox3Hw#UB=3qLwzH+?85Oy`rV^1 zaB-Yd5xVjZrQY2;GJ={BIV?jlrFmv(x~3O7UdS_-dm9W zb4U#j*DF#fzb?G~2y6iujh>lCjWQwm zE_+_dyxb+Z3j`Srxlfu*R1CCp7U+t}T2P)>wxG0&JV>StA{$c{=9ZUt^EKtVOnfTo z?r$k8%Uve$Dx%mIV5pbn6)o!)nT0S-DOprX6xwv#{QEG2n4F+v-SW-JEiNfuwy4Bi zZbJJNl$T;iQ^a;LucaL2^LeR&xl*aL02F(XRF2;zFc$;nNhMO5Q~*;UT;{`6#{3sb z*TIc{S@or#i(f7+LyCD)5#sUK<6&Zw#w>yRS=z<;T_~kW+N>sprOWf8J;T(6<(7qL zOYYLceQH@j0do-HZYglxk-N~%-N-|@&+P6_>j-jpgu3~ZGIV$h_?f`&f|6p}Qi>Y- zV7jW%)*c~87_{{!o&0on|9{MUFW=`6&E)&}s+ktxe&mpJ~0TK)OcCN4wJ! zX-Y|%4Rj={tR%0Xyj)8GkT1OHmy+W@I_BC(iiDG1A4PvqL@EAsQMA^ly!a>55Gm;l z@H9ZDr2(QGeRYyfit39HeJMmFwLkgskD-s$hraBOocbF2(wF_Qa6Bx9H?ThnB+}+N zgwi6P|LLa>%Y=R-Pvyk zqHsx|mTopCKxxQc>|VH#8<`zpeA?cN97ez%;!VN+WSHFxyVjNz9#R`U?2m=napc>> zpDtl^kNo$hUP_kTUIr~O}H_E;(eJ~T$@(~pA?{YYEhg-78P!Vlp~>ksA?UE#>x z4ttV_Kz8k8INFoHnGjGvA|G5H|e$L~+C!mzW!>0(S<+EOdH^*}SDgih4 z=k_lJ%=wt7w?@E?w{U+g9SvHK^(?mvp(3oa2~a=!v!a)-Vx z7S1BU15MN4X5xypTOYt3!ZyCN+)(U*7td#<;0wi}2 zzLZWCz7!w*TDl6~-wXQ-fK<+x@TGkIj4y?I179lFK77glLww194iHFt-l0GW;Ya)U z0=zvnxI@@A*eL88d`H+d*c9g98s^^~<}ZE8^V8xxZk;MEC@z$4wcIKd=N1!8nu#B( zD}CUWRE{6bPX3Ntt(ukjFDTAu_JZV;loTEL)W+xM7a2}k_0#EP zeZ%WFOTcUa=L(o3V7`Dw0xlHLC18bsYXp2sz?THvDBxQH`UKn|V55NV2-qaxdjhry z__2Vk0)8%_Dqy>Srv=ov^ZLaKsHHzh*oO<4C}4_!W&!O2W($}vV3B~O0#*q4lz`M$ z^w}Wn8wK1fpijU?0h_R_ z1>7LuMgcbq=o7F}z!m}91(d$!<=~xXx3;A+-m>m6IdF7IPE1!oA2{ z#yns~d=`(~k&e4e*rs8;Pc4`)W#*PimeMl7Wzsa{Kh3>RvbgV+W)_r6w}ByeYsq5C zT98N4CBy;mYZ=8WV+Ob(eqIqE(pW(B7HJd!P&z0r+}-!O%f*HmX}Ss)%`YJOOCO|P zLN?^l-I?+W*)5rpl!Y&SGBdBu&%bsVOPB2V_>47W;$tGiGJMEcvfFQ5wCKjJoxx13 zl4viJiJdCJS+G+f@5FCDvlqbyxWde^0B|ODlvHFMFCR9ZE|1@3=joIq4IYB0NBh$* zHzb4nD1F)$Yaz*1%dg9g=Sv~G+$h{Mq)+9Zij?OAX2MQ5v|vUfNOmgWG*M52)D{-N zdjV%69?gBXVK+tfx)pd>3}}TrwJcBH%~GXwcs^x_P5JP;!&&4@`*Z%``7dC3kqghC zH9rf$%h45|m&Xk}@D9PtU><3x(vN?O5&Kh%zq1Z#n+7PXStGoHQHw<)0=oj*Z{(@th^# z8UcL*O5Y2A0XGULb#Ql$?_w7A3ITlrN}VFUfExvrP78MdHNH)euvZ9JD`1O&T77Li(O4-*+Jqfyq3$_otFoU@pQs6ynCKUc z(IVIjQ0{!#v=j*k7u#Nx22s>vP@(SewG#at{)it~&f*uMTv`fUSo^v7oI_cLQfP6h z^jhvekB_Ac3%t)$3R)k~Qs_N@%1`53jYHjCprhr$V;S=1CCW!_mh@7l-qWMFc}RmW z=>kT^AvMAar<;ZFA)YCXNt)eywv<*<-p2~0r3e?!zwKGVe56A?wghc9AHPd`DW}$B zFDAY2HKsBXHhYeOt~Q~bwiqFZ%iNv6+nw(_AO3_9`cTO=o*>zK#~-{HzdCQQRV0O+bC|k6k80U~B#hC@J zq7quZ{Qn<;0TX8Lo_|T;^YFi(?!DXW;7I(`Ullk4;eS2DSAv(I{Y6L@_t!mzRZ`a< z@tQB@Pm6E*|9n5Fs9fc#s(yI&nwquBBi=_JtNr!kzghRhlfQlH>1TfT>~p_=e*FtC z{^6xR{^`#fUjEBp|MvG+UfuZGKmPgpzc#(GdCS%}-+Fu7cAvkle#g#T4UN0^?0x6m zefyi54;*~&{SQ8DIrP!tk3aeJv(_U=kA42{FOI8iCjwu7_4POHC%--Q-S-`xr_Y={ z_n#l|fLKJNP9N2$uc2RbOl(|#**M^mfrH`)4;eb_(#wXAxO}APictxPqpuv3bk)_# zW5-={ZOV1yQzu-1!!Ob%-k6Rv!kf*x^C2)&cyG~y`|e-3sJNu`fwFR!d-0N`%YJp& z+`I3YmvdqN2OnC#V&(ts`v2d~|9^~sOU4wdZR#y{$F%9r%v*2Ex_!pXS+noBGkeZ2 zIsPx~|Njd7OJUTHsGLUsl6vv`F%|sZKmj8vLw}k!h@XQR1tYjBqU$d*;^O|a_}%Ms zarNyUgUp6r=>H`VlzvLcXOJ`qX6|Z)Su;_npQ~w4|M2h^SKF>oMybopO%V|^2@qd3 zd@>-9#;QnZgYcj=Ngn=aH#-{~im6x^r3pXHew}oKXsL$w9##%9d_Fv2$KnITt>x$SvMDDsKE{+c@yhyVHP&U+U%mVdnH?}0Lg zLI1w|F)!xr8T!&UqaSR3xAdFO?jL#6iRb3&SO%XLpRa%SzSy@4$B&$NjV{vm%h9I~ zJaEUfy84g6-#0#X%?87ifBfa4ORsp;yl?HPn0-5{#>503s$Vzy?+#k*nJ@k1qgl_t zvpsjt$AA6n+=f_d)c5xeeye%Lt8bjU%KKQ(Iyxx85lHOXH;26R=&N_U{QNC_ZurOa zyIbddToL`3^X=wCk8WtHxb*%6FmCeGoa3KtxYP4~#Dcz>dklWDtz*q^cN2=KU?s(nV&BC-HWD;GtX?_ z_1Dqsre_}0OO@m5&wbZ4YDQL){Klzo2i`ewP{zm0@1FR<)5GSR9-j8N^ueHiKD=eg zAAgm5{*6oS%f)HP=L1G~@2$VXG;-aI$_@Q~XIN1B_O^n>rofIXfA^evZ+vmT_~(+p z9sj_<+wI%-z4&k2jFlw4YJ79)y3R#|3ryW2OqcO8Ct(3V3-KP!_9oYRw*3~udM zRQKyCx9{Km#F*KCJ^I0zFE%{;r`I6xhssQA`trN>H3=(sE{e`B(QltpfA_f4cEfbX#650|~8mee( zh_Px+l{Qp06jfD?sWnw&DA8(rVvPB{?!E4Pazy(4|IhnA&-;Ae_xl!iu63=o_8RXs z?7h}L`}!NhZ#!=ty4Yn`t~6#>bDtki9{Tz9G-bVazb}5cWLR-NIJEW`{g0MRT;_W1 z=lm`q1Fk5WA5NIuuj%#e4y0xJwu3j@pNw_d@O{(xA#>jF9=HGQoa{+u-COR+rj_$g@3#a=u&TNu#V&=o5Yul{dZ9@{eP95;dy5sFbuM9{_ zbN0R6e#mb_T=zFw`tu)tZ~n35)a0(c>u>XK(90)i>yi`4AH99yhfDou7bg#1{YuJ? zx!r0tp4j7cJ?=ofoAs%aK6G2ctxao42!*+^Xp7g_pK? z+9lpS-GAKk4mHOO8SA$DLdemsEpn1SYB&Deq3!qfrX)5+d9K|ZmHT-6iNSwv^y%|a z#n7dj9iDB|y|$rMpOp8%uHW4I;J2Gjo;f?|+m0uk2A_W~f5o>SZv4J)6OT#88uob` zA7tqpba~#hy#DIC5z4T>aqBhn1Y(_c*rgtRhR#9+8%vzw76@MLN{rN^#_r)w$nwJ>mc9 z&5DL;uYNc;=(V$+Q;ug$I-Ij=_it1BTQ0t)4jq!T`sV48sS{qm_R)=VT_3KVkT7{* z;Jm|S!&+X7z0~c;*ylYPx=$Oraai_^rh~>#t~2_J>wk=LczQLZb6NWi1=btq>~4EM z+_{18h4A5Lm)xtnd5x!%Y=sI;eD?ajHdf#DE&TJ|<@5blzngi%{@U`t28^w-%Kej{ zcI~=fb4gI6^l|HybK=*q6Z%h;}PFVYcl0MaM=Yz@n`<5IzIkvQ7I~ zzuWrRkRz#%D^|QO?T;7{{Pw;+cRQYo?pJnU;vrw}hxRjj^ci<{)6df)FWW6&|53J- z*X>#zidza8CqXc_5P({gp!ZqNMoJjt6J z8@{q=-L>G%1GjrlTb7XZuCuS_g>9d&ZN0-SYSaA9oqrDtT(b0&Uw_p-J9Xz|uEmss zPKaIi(ekMBtrx#-wKX`XQ@_KRC1cZmx7qm7z>3?J2iIJVF6h!o|MMrAZ*|{uuGWv1 z9&-#Ib-5T_7QN%Q{*UX}w%O2c-{qe-I}G?U;hooR?LO`sGUl}OhWqO4*;kL++&I3u-vKrYw%k-00jiF2q&W%^`2%F<<}n zo&Nsr{M$R*ei;@T`S7Py>v>0tbktV?8T=3A%oAj%`Yv6Bb_2%6G}z zHt+ss!e4gY`@|#~vgts`%yW|~S_S`ndE&A*H_q6P9+>fq=f>?lhqw6Y_(h8r&wlB7 ze12osW?N4-`oi-|tAj0%*?e*Ik57AD>}$W`sKv!Y3kF_qn>*y21sh}A1cueOn&w-F#csYY;ciwP;P(lXEj)FOU26=c9*P{+eRbX--k&KW*L{ z^GAAb&j}aizn48L>(!1QrXOniMSjOaVSYyzOxf1>QcY^4#L)d8=AHSVRroot8@X#* z2j3qbJf-)n@K0_`>2v*Q!w(HVmHz$XQR|=A&HpM@O1%2n#s2Hl?KZAn+2h@;BQXn} z3_YB6?DRK9VdeX&TI!(SBwD$Yp0V_|=Y_;;ix~y*>ezWw3_qd>IqqZ!ccgOb8t-Lc^_79hj zAKU(xL20n!RGNR8lgI0ICM-^Q^>V8Pi4mPwzwc7&92ncJ&d$a6Bbt3RwCS|g=jUY? zuRmDbM?^Kx%=zvYKQCWYY)@e*D>hqJ@Rx89tAoF&)qr)uTwgQx_{{$ z>)Km5dN;9ftViPrJ%}p9%%yLJb4s&yQb?Gyl)D7KDscIpwRH5uuJk0bZ6i8yKsb<& z902LGfpDjF8jqh+zL!{E3bmD_Wz5C$3-L3jagoeM=Da?XikOosk|}16<(X=ZFsHLA zWJ;LZ3o4yuu8xmzD`ie+ImnbTSJ$85M&@(|giHljT)Rn#V(ulprC8>5na44w zvomCpnTz!{&ebrlFTAB3=GuE$xy*goKaaUD^L*x_dttxSLey6y_Fu;SjhPoPZ^C>d zb6RMSDP#^+R80|c?cho=^A_xXgn3KmCCpnfKg-;oc`5TY%*&W}WNu_ma}=2h=Gy(0 z z-iLWC^S;dEn4{~eCYkvF<_6~4(3Qh{2>a(Ur~5rJdCZ3kD&;dzV!n*|4CaNeiu%KO zR@D@+zXkI`=9bKhnOiZ}?o+Lqm$1JL^HS!v%#F?!&wW z^8n^GnTIfUW*)^{&peK~3v=!MyB2fp{@azgfy28o&t>k;JfC@O<^{|>m=`klWM0hN zi+Kt2y39+NdowpOug6@fFY2p4b3OA0%zc>qFb`nv%RGd6L*`M;8!?Y#-k7<8c@yTj z%$qXLXWoo?0rTd}3z@fIUd+5D^AhH*n3pp5XI{a)4RgB&qWtZcdoT}V?#H|X^C0FO znMW}1#5|UH5c6c_otft_@4`Hfc~|Dkn9IyJGN+#~BvZsZg!vKXq0G-R4`*J+ygPHr zN0he*b3OB(%zc>mVjjS}H}eqY^mPm}Q9dHRzRcs8M>01s@6SA!`2gnm%%hkWFpp+l z$b1O%V&+4cmoOjByp(wob0hQd%q3ru-&E#$<};c5FxT+{B!IaUbM3jBIDC)sn*HtB zKZ>~n^El>C%ni)-%yXH$GS6r3#=L-eZRUl{y_gp>ugCl>^H$8un0I9^H5BESnd_N{ zGxuRWo_P>+9WSUNm|HQAWp2wnnYlgl9Oe$p^O!p^U&h>v`9|hlnHMu3&%A^=9{j4N zl(`jiBXe7A0oO>B*PgkaxdU?_=1$B5n0qk~VcwN_6muOf@Zy+TF*h)`WuD92o_RiV z2j&ILotPIg_hMemyespw%yqnAEMsoZyn?v{bGyc({7%e0n0qnzW8Rf{2y>mcsNX2& z_RQm$J1{pe_hO#Qyeso%%ym8@zKzW7nHMp4V17iqp7~kr`o`k=GUoQoE0{Ylw`(HG z+m*QobDf{K-jBIG^C0F9%pVOZ!r!i`D8B=959YcM;qRyUGY`^uci|tQ@d&|VH6AH= zvc{tX&tYygP4GPCUd)#<7pEd6oLd>I2BfoBWVHQ<2tKJNc0K5xRru4n5HfT+L|{52 z?T+9#k#QbHV1|mx9A2CnmEbGF(fJ%QwEsbd_BqI;bG+%y4b1U#WvV}&x*|j8QpnJ` zD>9k97m_JWWIjnnI+;a=PFInkvq5B1P$Dw)4knpQQ+Y%>sp_dudM`roF`UmyT)t$S zDP=SfnTZ*h$mwqsFM|_cZyF z-uT0p)g1Mf4IY90HDO4P$Y0A3=@ao7_9s2^$1a+7eL6}++;rci`bU}kNx!JP(R@AW znLn5op7f2lmOkknsqf){)vzOP}=HAGy=+GfB^hYxPI^ zPU&goBfa-WXw!Wx^oPpF$ITIXs>+AsZzNb2>mBtAbG@Pd;g74da#1*cXpyFOIcmLB z@~P_em7MyOd3fqy{?JmbT;lX&PgA>5f1`3}`A$>I+0Rr?Iv;1Q7vg>Gex`b){z?0< znx0cXC9d@g>aWDL^r_!cyHu?Q>c{5#lc1KnGGElc&GSk9+?-Q?f02v+p_PmJzqx;! z+WwXC)3{*npIIe78Yie-wD?A=IlLH8!c6TV#)r!5 z#rRO^pRShQe0-qxiZas^s=q;Sc~QSbzpfm|%=w55Qs`M_{}*}|W~y&0#18F<(cR`je=qP*c7|J%yUaEm2RExy{|CQy` z@)gB3EbNg@^gG~7p`HD2l2kBd7x*}h_O!?OGrHzkbybUwUXByTHl|5Ia-`%7? zBK>}*aX?GIay+E;EA>sJA8s1&MEaHar8DECy`lJPKE7pQ#-)5{Ei3ZT&y-J5|GiCm zDAI{C`HOV=aqH5!O?p;+Iy3@k8YG3k#;r?NkZbh?|$ZyxW9?V6^J1TW@)0D6)z zBHlh`oa$kSsXSDEa?vzH$OpY)>Y&iW@=Zh{rrsHt5=_(-$-Q2fKy^E6aq5nk(UT7TSN7!iM{ zS^3F-u&G}N|FA08M^*73XwnanA8pjs@;AsdZwvnjGd-a6=nRrD!avGX{>t^enCVF` z$Y{@rweeniF5gN-Bb5e<`xvphmQ4Fj>@6AD|E%WFL4-fgT+jSd=03~|mD zADKrnKf^qZ`AOym=ASUnWxktvKJ$aj3z%PIUdUXGve*Y>evJJ~n19W@l=%_n+P+6~ z=0^7ah`C)yQ6J-(FXMdG)x z(f0kU*guE;wRKG%^EvFV?F(8nU&j90_^j;{+OYpd_Fu!ii1|Y1N0@7RdY1WT>|e%w zGjnZULt7_Su>U;v*Y+iCncH;|^{4I2X#13Q?C-(;Ynl5o|ABcB^DWFHn19DSmiZ#) z$;|gK&tZOuc^>nf%$G6$iTOt6CCrPMYwP4A%!}FoEb~*$wS8B6=4I@Ef_Vk=Uzpnk ziTe4Oxd-#3%>9_}VjjeNKl2FYr+PuDz`RD9k z#C$LFT+WZo{0RH!G1vA%J25}Y{xg_s`}$7I%h+GLzp&%@+i2n0KZ|)RkB=VA?YfBi z+0NX9`EceEhp)lhkNpQQ*Y>IXm>tnEj{R#gk7a*;>?Y~i-V-*h3wy$xm{P$zT&AF%Ex>G z`)lV0S~B-z|1{=7%->+H?V|@Xk6{1V%#%6)U75$S|C`M9>>r?oXa5zTG0$PXfq6dj511P` zy}Hadvj2z7i_3%xKKq9-Kg<4aGmm2bAm(N4pUXU!{W~+SVE>uS zb2z`=%-swc`WQ+vFyF|00`nr~mfH2quP{H$JfC?P^VQ5NnD1b2 zr-=I8#N2~@jQy&@TRxzE8`LSG<4T5 z4DH|1?~ZEylJerOzOOF)#lB42)x`A$5Z4htim-z1pwE4a2hsf8bHYG>h3@86qWpJK|N@E>PtXTj5}#BVU^ zrSR8w-L&-REqC+yEA?E2pK8)W@w|n!Ukgw5PrnXe&PSuoUgTB%U%Z}v1;ISL_$?Z8 z5$RR7x8P$?;0~%;KZx>`7*v_B|*TVZ=UEim5)uzM;0uO#98WPp9p!5~t^<+ODp~EA>bCSL(Ci z^jAxdu1_`Tqwr5d4-!V~gH+~E?9){COR;ZR`8z*i|H<56Q~itmuJNY+A@-Fj z^RMmuXfDM4F?wkAC-%q2o5pdmuc+;!(|$VbJ8HY@v|mm8bCvy3>bAQp_D*cJ4neeIpYh3G*VxL+&6(P<=h+pjxND!TvGnFH20^VA!gxW z)yl28mYS|Ny#S~;ihqfTfA|5J?@U~TKV;%+bQSLwtB5~OZ8e)Y z7QPr>`l|{rufp}Fi}~YeGcaSf_vEcP?Uy*z6nT0A!x2~&Lu)pg*axWZ`uVTUGYbq8O2Ys!EU-FKM0sf^b798*_ zR^uNKu43F*sVe3=Em2Vl{#r%-fHD=0VJ`bAe1S(76?01xRLmbYPeuKW&r}TPc~S5@ zs{<6ibW1B0OLoSnXk0Z-#oY9DDi-=2Q!)SZJ1U|bzoF}V7K8~bNl`KPe!hxvx*`=z zjh9pmIAncLEywg$DwcQ;61-rFK>Gp}rP#wN2E21i#gGlP)bTA~Ly(G5@4TvFe(akn zhB$6g(Xj4E!5iOGvE*&9!<1gsSw+PXrz90~{oWSXa=VJ9?x%(SjS3YFtLuHM)<;;F ziXq3ws8|p@PsMJ zRW!&;R5WfZQqkwxc@+cXrvg(Nd{5Vh%m`J{kULsMW9nNf7IyzwaNF-xEdKm=6$1u3 z9i!`_e)bpGdw_}|9~)E*C|@Xev(Hq_?R{EBee69Ir9riSpzGthbP`xIRz>N@92E`I zK2Wis_8t{WR-9MS=<-;_fXuqb>3Z}d6{DVxP%*CQG!;v`Ef*NFSH;|R7ga2Ac_Q2| z)%}sKFZrOWiUnaKRLng$RYk+AAF7ytVz-LMcIQ+qm{p--RH- zi;5xEeN-&X8K$D~YO;!ko;fP!7R*sme|w3F0bMt!Xnbv#icvccsu*|el<;@Ds$y}= z+bZhAbtfqOkZ8TYVGUFah;6N+G$2^TlHf=c3mT75(O@}F#i;W+Du#SAN5we95)}*D ztXC1^gNnsV4yaftpHR_w=~opElmAjN&hDv-1q&TdQhuUby;L;J_ft_Xby6{4d=C{% zjt^2%YMCJT41$9WbUWXmQr)#uspW^&!@X(Xf%WAxT zJUAsSp=|FPb;t zX0Ure*xzUKBzfzUmK$8H?Bs)|{wl7s)LORaeR}KUK3jup26QqilWNM}+_&lVbHe3d zx4r!u9MjpzU;lQ0VCkLTga5eWRo`){z5K03v0?7o;^2YbVrQqdUapz`!(Y+}cX|6R zOGES7zXqqR?fBX5p?Z11?>2po^mUcD?p?j|e0XiS#qSSxemth0{P&XwL8UwH2j>|L zhhuKu3I6P87km2*EBWJBn%#KUP*1+Gd*bAkzc!HLY#cuRx|y9U@=;qJ@#;AJ{Z2M= z--K!9uH$OST@rGS?~v`~ON-rao(OQ0+ZMd5*N?9!hu+@fxO`4+x#ivsuj=fc2d9ob z{6p~P&E-~`5AJPc(NgZ7^vmldbsh$<>|{AKF2r4qt2=e^yc16H^iQTWOWImT{$$ju zL;dnxNyS27&BX_yn^6DYCI`W4DGM|3@WmEZ$H%oWDd-rMZ`;Ps- z{isbN+0|)EL|Nv;;PlwTc6*Q2mzVX4et6T}S1xMXc34QAHgboc#3u88tSjgKIj`Qv zQ4Qp4=bAt4*Qc?(*s0-JpJlaV`>R&(ML4#QpCxVBJfvR(dGx@Jp7~C`a>r)Fp5-`K z1RwQ2(j+fhFOSPgdwtORrNN?pJmhZg^|-aM&_@2`!o9i`!}YTJnZZpTU8y5~eQn#< zw}#b_*DA^9+svycck0yT=`Tf%Wvg1-;-}AYl~+06?ETt1t>k*cmbx2%Z!ULyt!?^- zO`h^#n+*FQ8Lj1*EmNPg_iidjuZjP$<(TGjK(m7`N5Vbij^7V={4&u;UZ-pJrc0~kNmxG<_dh?E#yro97S%Z#ukoW9vF(_+5XE|ne z-uul0ZDnKMtB%reCvL}Pa>YA;?rb78kqb`VK0faR%9rin)Y{KiKKk*n_IC_5gM!caT<#zbxji?2Msye1dHLz*Plg1^=YRH_)!HdQF8#Ip;u6>L;0?om zuQ^)ZM0WYPopVm>rt*&!darZxpTTea(06*Dq(-vu*4*AXBdq1b^iNOwxAB#o?sY!5 z^7V?-8 zzhup;A0RJ|`SR8TAAD)@*no_AJB`83uf#hxcter5@3lR+)T<(R(-+@+r~1kAdkzhI zJC62~N48qC-`(+fa8G;h8$Dt=$Zw_DR0Le_DtAsjXZ-bpCi2X}cRzjWSV#HD#`;oP zuRyuMsoE>^luq)T7E@~IhqjmR>*BXfInhL~Y# zvwL%cts?uzEWY-2U^m$@Ahf3O(;#_t-JjkJ3s>ZhS)E_CAKgX1OGApQ=9I&WP%{-TG^0Vl)`4@xR%5`owoO|Xk=;<%x-&{1Txje5~>rwqK z)Q}H$uxU}gzC1XvTdO={SWo%YUiUx#=&u&?wYWZS%;?)xZapRZN?48NvTlH@olmn! zdBl%D)oz{BM~)bCe#*$G?y~O>{eD0FNu<2@%(R5y*PF|(oAy2&`Kgcm%cLJi`;2HS zM>N}X=lUDX<;6Fj-%X5EWar^!)AsD^DHm<%|1@QJS9$ZgQE#jt*HS+5r}LC=j)lvm z140f)7B`nyoXwuvH#0=8RlD?{Rrk8`;)vr1k`9H)KXf=3>h^7WxqsL3gBPvK2oAp( zYH9z-N4|URs=eXe)^d-xt>)dY+gBd)$)jJR|B~gelCDYi<9qP<&`*xL(rNaZ^a$Cw z#;JUJQcpSSR>bzFE^Xv*Ppq3=cVDEOG->0r5rs|UdVRbc4jd1aSA7)XFzSa;*$~zA z$dHabjyl3d48it<&WQVWHYNdYHU3PDD^*zs4!E)HFQLet;+}l^akUeu+->v;+ha01x1*G(s+x&HIpUve^d69Sdtd`0C^0ajq^2%+y z$oDh$`v*P@k^kxWj!$U={Cln#ZJ+376hBvLJ<@IRUj1D0shHWIV&-#Y*M)*D`q9so ziD7+KCUpmQXw?0Fljn+EgK5V7w$Bxd1wAUhz4=TjzNP!j_SiG!58a-rx!ay8W4|zN zZoBZAaxH4@45_qreu0uoU*XXGo`+2fTcS8f2O=WyW;9kzdcos*29;x zk3Ll{%-lUGZrfAk?HTnO-Cp!m32apq^ZDeb%8rce+$|%YD)ml>;{Q{{Ys8bat(rYm zvWnB+-R1ODIsA3^k?FUeD2^Xl&K+|0iE`t6-IBC@Pn3n1U$y>h-4iA3?Z?BL&U>PG ze>)NXpD43?*Eq2__K9Mw_(u1x0{4Q}op&{TqLdcTw6v}HM42~#_Fr$@d#pULSvF zv2xtzY@diukCk(|sUaPG9xLk_o@?9J{;}e>ef8eiw;w65<}aR6cHxmy*Ko+oaOjcp z^p81h>TQ3d>>E8U?(b!flwp?x240`_NJ;Z5*`P~%r1W_^**0|OBgJc7DE>cE3cL@^ zY0>JDV$pZ%!&9~4UZBJON6NYO`u7*ydZ_p(kFT@p=ZA{L>TCT^9C)al*AM=^@wSJG zc)s>fd0xDrMw_=DDj7vi71s<8m2H!+I(|9wp;CJDrzeFG50&e!KALej@S)QDN=fg> zJ`a^M`MO#IYCKdPc`Sc-|HBGJ=~O;7`g(Wdy`@4~ zK38|Y_=5_iPvK_cZ?h|u-HVF%Hp{9|JZ8t^e}&>^lXE~CP@(*?Z^zW7-71uVb+dGR zTEJg56^e~VT&~WhLJ66nduo06fl_b4@PSRPJW%dhzaBcO75Oz-t%BK2XxKbq9_Pd7$*H^Geo< z9uJiH&q5Cw10N`RFZG<^*Z6^AKW%whj_U)(Fw=2lsl@}OPTcLiN+;A@`8gb*Evi{1gZ^oXzrwrA<*D~+Bd&z!~_3kN$4!T@!=nNjE!~c8A zN0GlIynE-a(%HJr$ECmBRU%tm+!ucKu9CjJ$(*92ca_WUZumw1>aH^4>*#`?w%=9y z=q7EQvF5Hawq(cE&hOt|J76)4#(cMv!+pPZT&HJ~Nz9*io?*GSaWod5T;wGiH zm4YaLox>SmtC{^Ce|KAP=`?)7!+p1vke0fwRy%Ji*8A@)^8Vzuva;5-=AkQZE9eCH2mCKrwiN$4cV4SD@jIh3F?8PSkBg1UkrhpDUH`(U?7G!Dqs?}s^07YIVde&- z68FaT4Hs4zl^A{71N6v%WYSWK_If zZLn)$fKj>GeDae-Kcix2Wid0v$Eb9gI>rlNvok>W< zuO0{fgTKfvoeZJfPD;Nu(#wI6>5i0WS3Cu~xOCbm32#Kvmz(Gt6_j)OnhJdlBm-{r z)Xh1}5z4yqAq znRxXiPqtczStt|blfIAPBQ@ieYQ}N&fo}rbY3G+tr(~%6;@bB-eAIn@s{JWyh_MJs zCtWBd@tv)Ibv^A!)7~(}|MJzePfg$ZAYUKgi*+r&DN;2>(O%*@(k;@HfB#Bx9hE5K zKXn~_{e^UrG&B`gCYxyi#q_VrDRND}%bl*aj?f;_Hlq9td@a=x z%^D(q)Mk}^t+H2F#!n~DD$f;#BE=W4cyY9-ti?(_5jpv%{8Wy0FQ@shN{8=1y-<%Y zj?C5dOwvJ79x5x%4rwUS%e5!;HA)@t#43YkX&Ref4BLYPK2D{%IOGxK zhnV?Cnc3+QibFGWMvLqr5H(&RY|PUw!ZihmC#OnWT3AAgwaCoB1oo`iX% z+N$|0wb9)0)tKt?8w`92a07bgJ$w|t4F`Sx4{tIqVY8uPnMyEN& zwNbHj?Zy|w#Zth+7v0qOie7MwQR6FqA-)(jTnXGt79tINm^&*T2X&GxRGko*4ku|z;?@%>A z0WY`>SMw8O?iM4$g}mS8U3tvj>vc6yB7F1qQ)CTDI_T{A7di93B7>UV~q_r zbOFt+J-Hd+W~M*rjc|Ll3m)Uv2~`Y-sS!w+%Sj;>{JiPHz@9IPaVKnKYo!^WUTE0|n|2lfCO0Y%{OqYtkSFIrJIOiP(Xi8B%x|yM$NPj0#Mnu= z1hUbLb9_;z`0RC(eFDYM&l0!S_!#~;G?Iia^ zNT99cUaMxQlYv@MLu?OXURLTrsSRBVXR&1R#K~2Z!ncX z%a4Xt%cQxR<;lK=PO34hvYsXe;J_us2J<1I&el@04YQ20fSrtm&Qh|dE!pS{f>Yg+ zsSf`!U#dRXLLZKic760)K!cl>d8U!Zf90c`0;Ev)VW)X zt>lKZ-P)n9q1_4Zdc2wFRfXOHj4A~wv=k(N03Q(sLz#9+5erk z(bCb{K;s&kmr2cM4dl}a`E-=rGV}&}4-3iTq+5Wd&n>au=?htob|N(O32rG13oFSI z?PL)rT8i4oR8}ny=4o<1JnP#@^`pIv9;LNQ+=|8cMrmSbm4=|qWstwIJ|e6OaUO_o zB7ZAdzYpwDW}MTDGGR6K?};Bg*PnDUI+WU#*c6LCt&Ia zrL{`*#Wf8z;+&#%zK)V_U?a&FKOX)<%cFfweYl$Znd(~YJI?5XH6`aomHpY%8S_E3 zML;*)B?MytJISM+ zo3U0Y#v-*{p+E5Rgr6t;phu-TwclVIh;hJpU@y5v^O&E2wL%9csacl0)F=^o40M%T zcbNK8)Gf4o{&hS{K>cZT8nHsHPAO#-w}aYtn3quobu2dTH&w<&PfzGN=5aUV3vFSb z_9{aBWLoXw_*6Y{h91|19@miE7r7Wkzr%Wj)*|hoYl+LDZy!P57E7j)74=VgsxIyR z8|tC7Nf-maaw_QDB-BM43XG?p@OZTDV zXtXb_?B$~VifL)A>PwY*?w{)Pf5^SMe)=}<))qr1ROzSHg*}RJry*}w3H#sChXT;H zgP<;2A0o}MS}XMD(z^c|{fTA$x%F@MBb_&`Z|Y0l_~3+?X`G8|7@Xp06^r_BvH2r8EiZGwL3|LqBVsI3>nPeHO60{> z+)rrh7Hz%ei#4=vu4HGlDYYuGD5fzKQA@tf?WE>eZ(-h=jd^2^WEYqx1ss;71CWx} zc#bmTF4RufF!y8ukx!m`j9T74J0?lTAU;*|M%Q8f#u`Xn?`T^1(p*|)E~&2V9wC0K zAFu{6Poteye!ico5>K`Ifsf|6B2TW->Rf2Bjl(^gR&VZTziYT(%d$dyTB1EI(0|Zp zv^6oK3+{`oFu&3qms3``CNbBGs@Leu)*dg|)%o5D^SvYHd(8XMJm0J1H0E@S?=+{X z^SXH)=5ukC{Hgusnx*8R-5+ZHS~+cXxNnmr7dPDJ@SIKYYwh{vMLctb460h!T0FHZ zq*@t{Q7*1J$&u@!z^oqLxh%#%-9N2m{=vPvcK5{t&X$n0DtW0c>?;U27BZ(w*q7Qu zD~DDe8nU}5qt=f%T$QA)5bAjbv?JLNC=gSNN<9F|;1^y&m+vUOV-gVsZcMihHnHnA7l#W0BcC`#td@yO#=<#^%2!Ebmd48dFRaPB5Ypad+bw~TUVU1Nw zaxX>rf3=q3wm0=JwSQO9(dyjH+d$I?EiTjZiI<;exv1CKtM^q}8Ed&?UklQ(Y8kb7 z@d3(O(Aipxu(qe|Y_j!qg4=~^|Os_Pmz%v}enK5;;tb?v0OSi{wgu48mB zbuDozb~dfKR{QFtOOV0labun1+1^oV64(&WFubIiMyFDT61!p>gLRx0*0gjlyG&;x zX}?o>$5ZqHPk(!nJsdSz^&3aIr-L-2w~K z{b-zsBaY(Wy3^*0peCprNUC}MX`Q0BE$Sl%bGi0>QFU{Ed7R3sW=&kRZmaY^wY}C< z-(JBjuxAf>t4f|MtSm{-ZLGp@oj0C`9)uoY4E7GRH$5BGbmwL}?7OwsNvo>Fq3V5L zZFsI$b zJQIy}G2MrJ9Icc7g50cHFEuTsn(Z9WcD%;%u)&;fi#Z?I&MnToO{>mpp8hpD&@;Ze z(7`&;LD%**cQ_dBN^MH4inZtbc+_B8*Hv5ZoURy?#ayD*+Xt`WoB^b6)p|42vufki z=76f>fcbT1b{8I}v~;J(|(KRlSd>;~>>ZbV2>-r8*g| zMwe3Ok{ZR8dwG{f>!c-#IOoIHKY-misgi4RZFO@^#{``;0FqiYZBbMNm$)|P*0Dp~*-Ld|fOyVYr=6=oU6aDi18yF0gN|12gZ*dL zyjACnD%`W0c~~36&cCIT>de+jADh=Z=3$|WRqEXy>n6-0rn0N+d1tKWYhpc*djX8S z^)h%pPkNhxu+3`V*>n@BSz;rp8Rqq7*f;YwdX;*V)Gk)XL{)d4B!@*d1}#q?y{(fD zK=zsEiPoaE?4(*TPFTA*NVTHHEU(r#>d*A-TCKMls8g)-v2SL&&o=8LqK#Z|jb3s- z>1aUTAN)e!AM`K!zSbvIJ*={})BMcS({w;X)$he;IT%`SPk{S1oDZ>D1G_rLTS+!? z&_}vQ!@XRdb7KBkFF^NsS>LaSn=5>-Rc!OviYR_EPt}vA-qGMBusDR-M!hlCwaR z&77<2gJe7p)cHzy!e!deDy2H3I<19rJ6cMP$<~tX0k}~fp?m87e^}+d_JB`y(r`!u z@2$zB{ufAQQ7=XI(Yaw&tmp3dV`F?2SN3_Z6d^ne6#T*Nh_ zonbT&_l{Y(D4grj%nsN~PvWeJS$YfJhd-SstHz{%D6XB(xL~Q^am@E|+$D@(QGrkTH@mi!qmRIpYS#os5SW&oY)V zK4Pr7jO&T99iz+`#W<2NnQ;>1EXI7sm5du14>O)+EMt7aSnC6keq+XtjA4w?jIT0g zFwSCJ%(#+q6XWNM#~80OO5DDB#)gdT7<)2ms=l1{^=(Ev17~h*rCv!{JyTMXh9qTV zrc6lhojzv5pp>aeLnXZgr-9i?8B>PDr)I+eXZ>CdJ5(CdBYIHp0sUJirlv}dEf8W* zR(wWQwt-?ADmAknl#~@dAw6?KYEpPsMruTSdSYr4evOvgDM&_Id=}E}Ga+F>!nmZ- z_=Qs|HPLGQc1Yn9(hTt#NrSR7QqspFPmgp+5sqnyH!>w1+3ZSr2+z*QNJ`I&%9t=Z z35WEaihL!C)Uh)!g=S`^j7?|%minld^*D~YpH&#GT`YF0|v zl&qwf2}4s7lfskZGo+)so@(XvLjmH)QXb||e39{)Sv@i`CS*ubeVd{2DOm_L2z8N~ zBUhMBjRFda|kki9K>gCmAR>DkuvIAr(>$|D$(_bxcx5T1q+!V#?hP%iftxCS>$P z8IiB3jHFC7kMx?*qNt<{RmIXrBgfgua)#86O8TOH^iGsQ%v@uVQDKR2l-w*4cF>f} ztfaJA74#HXUK42n$2%!qH$X4ZleubF%wKA{Bk?FP*!Q0LS4tx6~tM!;3Qq)@lBLyhT85F9PehR_UI&`1w)1I zm@2D3#nmG{aljb5(tMu$|Ly;GYM|YkU;RI5`M;mm53l%~9CMoP6rMk)6~C|vyIA?q z8zZVwDfw#-|Aac9fAaZ1bGJae)!&u;pU3;+D(^oZpLV?yE~OgN>M8$`E`;)|AB{dD>*n+zU3`Ri=O}Q3E4uX=c>37;rFjSzt%^1zw~$JGvO4%xa;2xAIjlBNBAGtTwCKM{kEoT z4V|oi(U{_&zFNIvptU3oJpbx>A8FM2ap&8;7#M8ksk4_#AL8AX>Eg)y-QbsMD zPZi!;2_2FUpExQ>d(07%nUxq4B2^czY8Z;Mx^P*z*&CID`z^%t|5c;cOHvGk-UW^W z77>TN80hPQz6QJbJE`=p>YI=pxD&n&c?b4<;33Fz*h_%#V-I5;>;=H)u80@*5a6fo zl5`OEV&E9OV_FKk`TL{h@0QX#rkA`WsWIL&CA7u6_aU(BfnM|;KI{R&{*YMM>D_#r z`glJXb~~U4BoTJPwvbfVaYSA!Y=G}q!A^JpvJ>`$zzRqS?1bO@NYY-|j{$=**c^mC z1ULnvpI{+P1AY$ifxQSA-Vl2!uy+Sugp?sXq0|WZfIDGxh#%~&fMXz~2$Kw)0XYkM zF0fT&oOebT18^RsJM4wPiY90m*sYr4H$@)M_i4ZdkSDOy`&u7DuEAac`~wn;@J3)cBo21`grB5?B*WefI0CX5_L0DB z$TZk{K3%DDy1@^r_ zi;ie_*sXwlAbVkt1g?M_guMW$>jZtEFu=i(qKOt#EN~Cx3EcMruS4{3F9Svfp{-#j z^zMwdhMllq7qlJhQNTf6(KfKh02e^=Vb2F%g)D>p8t^{E0DA?{p&Q=ygWU<(7?J}! zA)Q0dgPrgIWF71!zy}bk3|tHJ4Mu)o4*-sbIKiF;JP&z-@E6Ihpj|Ry2QCjm9$+U- z3q=^%4M3$Q^a1t|;MNE{rOkp)0{`rdvcTO4Y=-^8gRs+nVk+b=(xN@XeUMVvPXlZB zL!7XC0Ea`$U>^zWIRNzldj#-%h#lfN1{^XF{R{4~z`r2VU^fDPiAJ3xOervV5c&++ zf%ID(0mvKSR!9)#6L#jKOFN*mHqJkW$zQbB2J!PB>yH@&o%w;9N)^?C$`L zkW|0CsQSIY=_>F|XtIRi+~zlw>LlpEo0acA(mRlOkf>}66_>)E2>UW%)3?y? z5Z({?IbARXlpo;oT^JV-hH&KP7&8$j z4)_x!3*|iveEkcIfe4=qj4whMxF-VhcB8IfC)~0J;}`6N6ZRrq*mHo(zJk7?-M0X3 z_u(4YeSlv=@?qZ#jQtw#1;I|(xftyTdpF<*kb|%<2m0;D91J_*BS-=4RtNBu8WMbf9fJPAPPhwF40{pK|1k6ccJp_g=$)sH z-(mcLJK+(C-8ASGu-!4l1$!Xy9K-|mi$KpGkO$bkftJUS2iUEEoqt3gV2=XchwOws zs08IWfjq!YxauVIjqIn;7N;dN0@?!D;SB1B!UI433FU!(C$Qnq=(7mZ7#MaIZ3laI z;9HQ9u;&54gCxU#3^@B7bei0OYao%ZuLJIb#K2w*d<^k{{RvPxkGh3D1h@d=0sAuG zaYzB|B|xVO&;!^ByFrR!C!7K)f_)k=?jq_AcEYzHXJKCsbod2hCF~x+o{%!wBY>Ym zN?|VnK8E;AM;%^5ejvH9hX7xLY=M0muth1_0`^wG(90+<>@mQlkO0_=fp%9=7TCRk z3ZxYF2w*Iv4E8wS3WyQ*jpPQYfSoY>D%xTO`X+E8Sn z5&*jaSOna(!d*8okHB6G98re4g?%K@ z^(NX8b~j)<$Vk`&fv-UlVV?%<`#bam_DJAF$VJ$*fJ-2EVP6LP5^@^$y}(}~$6zl7 zdjEm>7xoa~N{Cf1);Yk%f1ObD0#hKZVEwzIA3t4VA6xG#L)zwuU>Mk9CJBzSC8fOX8TZT3P z8s*pu)CuTGV8tr56VTPbUF%Q}pjm*HM94pAE8y)7xTZk+0WC;y{h;AMHZqh8G|KQD zI4^;4uMP~vU=V)L!N6uPMbKY>fs`2J3>ps11T#nD0}ZG#h#hEWU@2H6=nud<;Hwgh z#s_``i$~)FDPf+gVi1%CcnYi<^cmoNFgwuUz-h22pl5)k;5)$$`U9{J^`iidvJK`* z9s>OXc%K1-h=L9WE`zavUIFf6g!S>@xGcacU?re+fxp07L8HVmVUQWnD!^c{B+w{R z!O}se1K)s;BL5xGz<1!+q6ix0G}sIrYX&IFj6v8STmtw8Oc(SJ@bMnl2lNx*0$37g zlzFT$4;S<#um^nq2%!6b%4|?}&?-P@Fk{dt^TEq>`ibFkwLOlbSrC{wj&@4c4@U0+0 z90_2AEaV5mBY~T8u+}1I5|By(+A8RMKz3zFAJxE@;1AFWIvwbF3eLq{s5js$7&mAl zF!D6CJ*b~qwNno!*AJV}fqhNNR znRGG81wF_==!-xaeb@&y9nc?)4Rky(#Q=kJgMJNUF@)oSMtK^H2>J~0q7ke~0~+O1 zFsl17HUUMhK{}vIfZ`_5SAaGIMt~Wj;Xrd!xOPCJ{03$Yx)pfb41VUO^b_S+_^?`l|q_>2;J%I5GXaz<9jq)*=1n5E_ zi#4=w&?tw%szIYf=b&eS{`*{XbdLJbn;3*2=BcCf1Cs%ba?2n36o^j(-oe8e=63R(q783yMCG!-!TA=E8slyMQzmx7K58bv}|1#Jv;dIDtu?F>u-vjY7Z$Q%Q0 z9W)E@R6NxCLugCD9xw!SA8-Lo4m3*KQ^*f!6`;g3$PZ|g_F%@K3BXM-E6~VuI4+no zXlGy~m^WyYi(mvaP67tG3>FSr;svbTngVSM)vw{0VCY-<21!#VtPA=pPbR_WfJE(KeXMk2W8I$J+LqeR!(asZ7IUB}2BG)i>+BPw`aLy4}N(hct@P@?Oi zWWnAKX8qM1ApJgGPz^0k?uiiTdN32T}Y%)aUmXXq2c=Z#Za_s4s2_Xq2eWDiho% zphW#n7eJ##{Y2$p97l=zTs{Gf67_Y|h4B<6>a#cr8YSv8Cko>iO4L8E1jZ(msLz-o zXq2cATPutgC{e$xi=a`;fCWQejrvTXzEC94C{f>}qtJh%M17oIgGPz^&Uk}HiTbQ? zLw|x2^?!H=8YSv;;0$dZWds-NO@-x~P;qXwYoK<-f@1UYydr-Te> z19tTmS<8w!!!Tzvy5X`&%GLra!{@AslVha=<^*1yaFpJ0LX>ZZ!xr zKp0X9v_Kdh2y{T`4hZzXAs_>g2xJ7ZKv&HKJPHK-ZTnX~RQ@5{@E^jV+a>%h5s=Ui zK?b1<_}{jFg~$Ixc=|ttm;6I`<3EIV|3moXKZFziA)F4a?EkX;EC2icA^hk+gv+oUJDo&@q@#`V&rO?= z8c9bR&7T`_FE!GLHmX0j>I2jWxP<+CJIYUuY)bt5Cvp@%%pX1dpWoWiklx|{{3e#b zZ}cMgb4zNXM(&}F^Uv*QJEZ@&{6}_CBRPNl5m?d(`~R){=vu^Tf6EUw{7WM`$SFh} zQTy9o@Qw-ReanI0^Iy&)N`jK&5`z5J=*(_#K~NIZ(>*IDC&=&S4s-l19Go1jl>~jP z-2`#UyBHKL+}x~hSvvUeLjsO&N`fA)jtXwDruZ!jH?dpx*Ik|5oNV01t~=dQuyDI2 z?kOqA4?Z3CHr8(Lf4Zjp>u8V^Kfj{8tB2bk?j!#%Q;H|{EOC})(-p*=>L@jE!@sKdOF>-b`|9J zus?MjbvIEGw6Sn-vlhhuI~hgnKOaO9`(Lu8i2Zlj{@7g+YQz~_WGw9+AlLtMasNwn zv>N}+grbG>zr0SM0RPFCn}@TrlPi>6ONalwm6D*ZwUmUUq|9+yG0EdHC&Xl=uOAn) zIBsJtCLtkbWo>OOZ6$3Z;s5uN{XbHWJ}xOOXDM$XcHBxHQn0bK5|gu*vJ$h9l97>+ zk~(f9FKzLEPC>>(%0^1gT3YP5w57b5jEsz=n5BjMbup_G@>VhyG8QMSrRDz5DM;F! zkUeo-_Jo+6gterYjFhyznEY`|OEEcVD+!wuRuWbgvj0O0a@G{0I7Lvy;j^=qRoaPf)ga4YQ zpfWT)YenpTN%61dgZ=L^@ZXf%%G%l5(F(eRzpgOFze3!>=jx9h;6KgpuRh^C?BI?z zZ*+=_k{}#PT1t@L5nQj71U3Ka8^r(2uDB|=dpS9Z!K{6ES0@KIL9|Es@3(*VQzyhF z(EkMao&V(#=HzcT@0|`Exdw0f9}i` zbc{!h4jm(mUDIs<^v>su++eyy4QiMMr*ta>;YZG&Ii>5JF#E#iiLrtIM3r8ysh)vH z`Qgm$UCsI$u^~NNv6!D6{QGU49jM|v96Z0AuMfO=dKRuFE?ZkW^T=uuU8s$==FC@4NfE| z&+AnbIc&#nZEerZk9*Gb(T7@a2yJZOF`*XY%=!pZ!95G=YKgFY|DR?2CkH3zI+KH6 zO+V1pNW3Um&iLKukYmeCu;7r)LiXA0k)9SnY9s`_`rct|BYNuH)-+4KYi{`#HVl?q z%Pa2`9OU7f=2%1arK%?=-MDV)bKcj_(x)k%-?3XUw5n{)q0glzv^MXgV>bc)^}(xo z>E#EJkGx3DN@PQXjPv3IuK};`{}aZdt&yO2dcdNAk+e~LP1^#yfMvvyjaPb zjs0Zq#nlQ(-g`cFOo<(jG=BAT(SFHPE3r(gMPs=y^`;?4;)|e7rzGL|BfkM}zZRWs zVRQ5Ny6W0g`X4urKWQH8ey@GBdRY;X{We9Ofyflq9wuxIA?N75U*2^sRh-_+hq6)= zZuLgBhP|wIKpOxf@{=-Y_TQ4xj}>4)32_<{{NgtPn-geh$aX9Dge4&tz2iBK!S3 zx1OE~xsLd&crO2(wWVQyg!v*cLoacMrUBVJcl9j6Vw?*S+{58*)B5iN+sYlRW|D#w zr4#m;)9inQRskH%jjEjdh5wTzK|aVNz=q|o=n{7qBnbOuv6a>>#BOP^9f zwey3IE|}E4ax{>BJiZQLQ1ULWlv-VTyMYg>lp@tw7~aj^!0)oD&bxK;2#K3gPR)GS zHosaD2{o#9W*TCvGaGJM7lGQ(fjLzo$h&tj ziz(TZ`>f;+CfTlLbi~KUR}+bH^$iVqmURr_4tXTPYe^xtwGs>X23 zIU`!i8;3mS2b30e<~Q|ds~M7*MbB!PTeee)R}w8RUJUMyiuxGlAFlsE<*@GQ=dw*W$|kTiNlp!b2Xz{ipp9}>35X~n6n(jIw{fa+Z*~0z3+En{eNprbmXrGJ>-(L z9Iby?Lf)Lt3)sQ?&HE14n0WPvylQy#Z9Nln?l!_rxsU%M1wMm*XG$+~v0k=vkAbPr zSPLy7GDc(} z=!i`MQd6hMu)&R(r%OHbb5=O^p8e7Monw)?D`PJP*4`HnKf9Up(N=kRf8TaZ`PLHC z-Wd#&T$<%s^BQ@sg{TNWD#+>YrtQ>>-D{N+4>=!c4WG-tKcS`TV%1Y))$#Gi#a+>Q zw9=RIaY6GwJ-(Ycl+EIwym&;pgj4Ke-g%zqjTzpPbwJqs_xJX9w`)H=XjjkMT(J-} z`(Du+9v(i_dCjRVR_xls&lbGrr5!#uCc;yl_okKXd^^O3@=EgWiL`g~hPxt^yeL`} z16X~{;_ELSWOE!`H#Z8gGpo&KX!E*M@o1!#<-*311E<7$>c16-wXJm*QdWOle5;6f z@SLh+SV)nMHJ_c5e&@1k@BOn(GRy4e&mS|HIb{qJFT8jiOUGj6!*;!+eWxPF9!g3X=_$xHYZ>;Ebu49x?j;VdlcMTxDj?mldL`#Su{VT01LRF3n=aD;1suB_wq|T#Tzm9k{;1d&K-;icpT0PU*vu79bBK(==19rBy6u2i1mDJvp{*vYw&FsCOC-sP=5d`xpAcUo1Svj z{@~8R{7>6#ie0Dd)5FhJg!18(?yr+Js)oMNzPwc7=-|MVxcMXPO3U+I$A+rIbEGE>YZ~Z$mGl`-m4vO$kF!Wek0Skk9>o8rzziDqXHVf4;y#h zPI!bVuFZ#RF~6fQ)P=)2^%Jkv->mZ3F(r*LuT?XizIm;2Vn}A{DElqBhYF&1jvu4S zxk41?Rna%=d#1?XLYL&eg(1G=VkBdpH@7(hn_=HnlxJer3^!n)W zRW$*60rTmxYY!*BaP;nGzur@B6~eBzLV)>(rrQ{t$h#j3uWHZ*0@zlXW;);;UDPtN%wz(hqKx}8}*{Oj$9wOa%0l|S6dPVJ^xW6($ZYpq;p&+ms$QPcN} zi$AGpr=Mr*64R!UzHjEiTYY>=nWhoO0Xmh5#yg>jjM=#DqIyzOb)xA4=8$o~C-GRz zUOvU!EIZ5PRT5VRkKgPZ`s#GMV9mQ&TQ%}@a;x+-vnWBd`bTdX+!t(qVxt-L+O^}n z&%oFvWQ~X;`}~h6fBkU%ZKFCl;ms8GwEOmXVw>lxf5er?u~#r`SJzV(t0ojA z*9ScgL@l)Y`dfF6dT-Qsc>ms%MhZ<_qr57YUl2QstE@@eFHWC!>RlVT0`p_`pS<0QQ!3|NyY?rDRUp*Q;LlA9DfmGE>Y1K72q-UdTuIxFIi z{mNqq@hq%5-1o+BZ-=q+h94`wMQ?o5`b=_Ki(twEC1Jk&U6ywD&g5F+Xz$MN1HY2K ziJ}7-oKBZ{|KA^LvLb0)HHK*oF`~D{`@ECay65gh%bnOuzH>0JoqmV-;IiK@O-}Qe zcv-V6^_wxTy31Us2k<}TlwBIGd*9x%$R1mdV!X?NNlCK&GD4ZIK*M~B1+S7g%^6Z< z&bjC4w}Zo82afArP$P;BulsXGt49oR;WpWGd^?Vmy*!3=d0ZBc^UXnE z&~B9X>L~5Gj_Y^Zr&6|%Sbl>oVB=+6Lx`E>_UFr_^=a|?pV+Is{%LMo{w-l+Yw$nv z6PY`~W3)+{TQQ-Z*2DYoB6DkDy_RpeIk=)u=Q|KL1S^Sm8d_!UwY-Tl?P-@|W~W#^ zppS$lEH1jt<^}jy9+-XJN4}O@!QWmGixnPa&i%>uW~*^lD3CL;gU)rf5ihOsCf(?^ z=DF3TSTorml-Kv#_men!&w=9oOUq4J9n+P=l#Pl@$a_!3U3TT za8g+ahx{vzm1wh>bIO_lK|Vx(2ua9o39&_nyPZ0}rv zIA3DlL6tWAo|rM(k)TT(c=>rPxrYZHyjh!1S;Qe!fy`XWl{-TP$cp@i=JON6Rr8^y zsbu)VFY5YjA5PVGW@s@ZuYPb{$rwNP;89|!zmD%dZSDgPo&*|R)V)=*VA7DlZdbZJ zTpsVXt#Wk5^)=tQvhCR|p+p|4;R+K&@5#5S^%jJt@~J1L5!>|o$brzXnu1M5GxyDx zujGqphf44_9#&bizZ(z#)=+9IZm-_;;xup% z;>Vq);cHM+Z6kXRk=p!U(5&%2ZzF#*Jx0JwE*KHoay>e;psChRW+}ID8Vy8mvW1g! zt`gFC{982>+6TX;OqTj7GmsCbkV7aKPEndxzJA%m7_4u`y>*j{@1DVi-i+du_BtDX z<7!+CL6oEtAJrXT#cC@iB2s|Sh!a1qoVoY*iyfhEO2gM*Y=Ryeu6o(!FE_3*Hlzs_ zo9Rli{dS^?^}OMf^^0kXCf97MtpXoT|^&OPTouX~|GE3bp$ObFWBSQ16D` z47$@_O#^A;Zr}bCof6d#)u$Cq%-h%oemo1^=%<3 zllc;5<&78WnA!%?FG{PuG1g0%!Za27m9WPjzy6@@I3gxTZ zX~g@D4y3VSaL?AY>QvbFvE5fAQFocC={KA0r!Nq++J1G#R&%H&lo`jD7(Jx0OZUO8 z#ouvZ;saHD7ed*q1ykEvX*VwtD{0S(l|N8bm2*xBt=bxPB<0R4v1$^9sd6NWahx3- zttsp5=v>h z7x-#2dc4A}@r!>LQ4F}TAfPpeVS1<-Nc{D3cQ7BFG(v4pBaoa=O6f3Q-zlMM*iKpK ztz(_B6h1*USxnoCg@?>6EgX@+L z6|ILkulYp@rYlq$5$o(LXqusMVrpHtQ?{_N>lE7h8*TVkrh1(Wk(}n78gOzhYfkxSXM- zH=)IgyjiFF`891z=ZMNh$~6t`Eu}(p>Ua0fFC(rSery}LUoXB=RAd#Vnwk_TUOD2P zxc6hFzWShJaN+^qbYnd0C71jNQIdU5RXBTaOEN`L={?Ll+Uk{uGRy?3!F-0O1G@vSxkQ;~O1AW`>Kjr$Gxsa==A-~a)wIl$>-fui8b<>bdoJWf(j7UA zOJ3!I1TLKqvSBIRIaX|@SACG7lGT1s#2JlTCSGKAg53>c)r=LPySz}hh$|(!N7&(N zUQgf|Zr~~qajL6B@Qh;)k6PY~VP@e)H@hr1mc|S#{p4fCO%yVJr)#KRC?Us8ziM%e zywg9`%V}jy_oR`N!I_6vUzr(4SJ*4VI~c%?>-Rqzwb{P96eqHs-g=kHESwx2=EN8s zdv=jJmJ{a9cL@bB|aQ#@cSf93k*GWSbW)*_KMMN^5wwYES&hu3xV$i zlWyg7cqLsCt!AIo^EiNfICDb9s;u+p>9_XqBy{G%HPhVT$+lO-CM|prylKm|{Y+r5 zrm(Q`rZO<`U^iW^_Zq3YSwFtzF;3mEyqEDdOa4&U2L5t)9lg>^F1!%U#!O1cg*?KI z>62adR!hiuP+p$oOm`mTNza+;gH?W1UVamgj0U6Gs|oP%9W5wz7J)5|rj)h)12uZHx8f5vok#O^xhwwQ_MWf!?OYjCaj z)z}BLr*FIBxsG{!3U@l|SG3Ujz28-$GP=zve3i%Bi|Dfs4|ghy^zFVy&0uSF@Gw9-GU!K`hIem6L%#LPZ`*!^3`gFRFa;w~Vr;bWDnflz1oSpM0 zO~cZ52v$XjiggBTev-RY27Pk47)fp2ReLWSep@Y^PC;fe-$nU#_ZIc-?Bxpmqyo=? z60s`obYp6^*!|e~v-EHl_y;x~d5xq#cf6o9-+hsChghAv*iXxhAQ?pmj*UqroaKpe z-QRIlOfrmFg09N@Qau}Ac8{utXZx|r!rM+uKgaDWX1@=t6`INq3E{ia^`fv>B{MbW zu?*!7+jpw(PK4$WjK%rraVi_+Z}mI$%!I7t^Z_~C22@M7{a%7aTQyZn&4F!R`v%i= z4ofUBm`}~>{1$paLHZbrtA5BiXs38rlx#5H%ZOF6S`2$5Aj8dB_gy<?=%0iquXDx)iJGf!4BI6@izYAO;k>k*f9lK@E1YYV>ixU)QQ?2g%ON zACNXzlS{82omQqDT-R>Q+)2!Q=5wrN`9t>se=7Q_5`yh%BKybEg_pBUO7_;3D&LpF zsByvZ^KpY_)bs(bOdkqUF2OBfmq&)ye#*wvX*G9F-#jdN)tLgjzno-+0BfKC41~zM>z;VnYSBl7>qpMYKM>R3l=}C~dmS z1Q}ZnU&<#f3Gyy2nY10ihYBFK^mqwOV-wbD{N*IeDXrk|0WS*IOgD)J?OLpqp7M1H zlo|8i7gBq#U7>2&;a>Q1Q_AWxMHVt16{c?*%x^|?Zlu!%n%tGE1!RxIvWeQ!_3XLr4Rf4jtBc=b0+JD}ILmjz~Xf>n5X}W=hN^>mXcx zecRn1(-q@Habp|8-?5B>^!QHq#CsVIoaZ>U_~W$RuWJmgG@+j5o67 z+U1YTtvTd_#W+&7i?wPZW6(|UW0Xn7d+|@8t~<@RCpcv~5>0oVS8LsL;-*3<%$KfJ zKUgk`XzQSPN874?HZ*!ib#N)RcwcVm>`SG~tr3k^Uc_-MM!XPty=51;TYgHbbI^3z+;-5-1k)<|fvmvd+Pa^`*VewcBn zMIIsLmt&o*iwE<=7M2dLmLvw@RW2@AA65zTZml#CJ$oU^a-t}^0x9a%iVEO=x*oS^ zENin}UPN+bh-5q6{@Xc$`Oqtp>us&Rdj8D$`jEtU66ff3y*xx8acg8ZFt$)6f8FXm z(6_Gm)hRgT0s5 zn|KlWlW#~0F57x_$~?(j6n6dFGQ;aNxECF?r-xhOYTOi9T7qGAz_W#| z%DbsAOdUqXX4AXX4Ms%fbaJY$Tp`uOW|F85Coz!WrNYZ0RSI$OL3Zj5wm0?idfTUF zd=@_?;?uUyepVBvi@&mevZE(pMLsa%=+xl-1==pI-RY#>(aZppS!&JP-Q=Z z{kEV}N*>8ja`g`wF+Clb%OcY=R++IJ;%-(Ln)qoc?2}l;>hF_1kGHV5F)QT-Yrk&d z40vcKWwEAiXGx4Z=0}GPeMlMFdyIMykH#L-hfkx;aTwVy<+M$^_i?l$1bGX~_TWY0 z-WE*??Q0HCv-I#X1rbyi^u{wUtP1zzn>L?|R!t5>m*?h_f03K7`wvR552w8WU*&=G zwN;!6rMmg!4<~AFwN74K5N=IV^<1sHrA_JZvA{_&YIC6NmULp1``0>7GY3WTP~|Ak zn~nU`turAhBFkT;KB`|@e;etxUFeGSr+FOhf391Y(wv>)sTe#TSk_hz236S%dRdd)FuT5W)z&v#?icvQM);I;4wCFIL_WDQQ6{MdkBRrM?ua&0h~Z-+-g-}4 zk1k>p{0X?|;U-~rf0e#5&Jdg#%|#`;53xgC`MW3$F)L5urNut3cI?>d%CgQ|3~q2K zMhAR2d6dw(0PB&>6VjRs$(8uvl3dXhd(DOW$t-x27(Risq~8T4>`@2Fhe$^bcRSGB zf9h|wtyU*t@L|n*;?Pc2C%)%B@j`R%+tIi^4eN(UDW_S)DxcqER6^K}5k@Hnbe`g& zJt!A=&R!i|thl=(%*8-_Q%a^*TR3OEQRklM8N^JFV`*M(w`I>?2#fJA#GcMvM()*b z8}&wo^%D?xhgIJ?C$r`JUvVA2y9}(}ZRWYZJVeUxNOP&`XA0r9qsOx!?NJ%+s$Wl& zL*Pi#%F2$4#yFOib=jZvpU_$6~Xs3d?#Y=P#0g!?whwabeIErIE$yY zO79cQIJy#3*FHCz_}Lvv^u8GKd5P2E1F-Sp}w+5l|O3C+_yAi z@EL?e@eynp*|iiK$%gN;Pcr8`$v`}u*!yj(WmRIxNqIrR;b(~g*;X;di& z$OhD#DO=}X_|uK`_@6$g^`cJbmobiTX4;Xza3sUs>}qm^V;`1r$GDU{tuOu&zH6K` zy`3|%GZt0lR7&2TI`{dyZ)vM~AE(IHnPkV^#klA?p~L))0p_+0RQVK>2Qv-QjuN6D zerfi)ALgAdnw~JvN$LODrAm7c%TSTis-87@^T*97)<}Wmw6_&0y@Rte$}bkydshSI zkH-x?=c^R|y+&D`heZZnWp8dX>3EG<@@^CyU9r^8{W&ErO1o7n8SrW8pf1bTiHB8A zTWhnL@Tn#0jYiyo2(8W^H#abgOaz@=bq0d|6npvRy=_u@p+T(|k9Dh-!}xyX_6Ha6 z^e(3(h(??nX?nMtzPCT981YijgD)u)%6LB(h~% zXtD9F(slXVl^3I-ryVr(O_`8qS9583TjlIYFA!VI=7nbzbRl9!qu2lr9lYtl?wyJE zEMiqhiI&$R3J(Ot4DCHc44hZDKdG~$oKI3I58)KX=twi03}O9V4s6fYIh*%?KJ48T zD($jSd*H*krRuQ0_O5>Xyal{GmcD;C7`|=l{x~?XSm%OIW_`3gMprdCm6@g7x>NKg_I!ZON=*$DXHW9NT8Qx$YrCQq|wv zD=x>F+n>J&d(zg&3+EY0pD|34(7{(+*(m2>aF{q!X}4Mj_fIo@W6W$WuaYpoc0Dw? z2KOZDebpc8`69!KaZ8%IJh%*!4t>BIt5;LRDR#dzVOT0m`w?Q}b^mh1+FiY}BiV6@ zVQmk7o-~Z4(lg)O!ARpAjQsBm+44+>HR^Z^l&n9QZmF4BqCFva6B~{F9RV*0CJ(-O zEI)N?;(5KRSw4BhK|XILF0$D#bC+5xHtw!oqtMmcZ{bDFP{jBu<-OR2+q2CrAGZSB zqVwuMp40x?i3`Y?rw+bVWQ%9`!E5Iqm7JnAvGklR@bl;BA<9LW#0S-?a^JdCzMi`R zm%RFcU2Z?htvI!xKRxT?eJGXc+(MYDsztBUuP1MD@>5O>n{~EpPi@zm+=%wRn~yL1 zE%nC@rz}c8={mgd2oq>g*E@cm-|Omo-#4e$rEUch@dflmb!5k5^H=iG@@dfeLU%D0dx8w7ellVTk@~ZvvpD)Tib$H zy;Th(Yceq*uAeQrC$k=z6|TJzC>k?(xM8m$UbX0xvL|vbmleN;jK|3^CmB2V{y7ss za9XSPLfh$AtMiddJ0lq%*(NozdKeE0k_q?^%>1nQ%k)U~*k0R_cG=1+JE}Hw7#mN_ zSN-4im#(m;L}spSCDWZ7(#u>xLh&TA{P1=9pB-ubdbgSHX-!7m@q1yo-R%-non|Ws zBY)J5j)eC{SKc4IncJhVsvsf5)(-D!Wez0?y{1QRnqvrdtHO;JN6FReUq20ciyFt4 z33nuT9qS&E&$yXCpl<4^K@x9gH5OCYKmXijF>2wYzKjByx%xg9k?@v3cIuL; z@$k>hr9E86e4Ltoq%l`{lr$g{sfCTPfi|_9PuW4S(*3obEKcT0I>~Ly!+V3saO%*? z>wT;hq^t0myqL7#b$jW@z~LA{<+U7xBs+~3x{T_!DkQ-yIPs)QzqLlE zZ~Cy)ti~#R-^2QE8^4v%2%l=`^Dp-|-n#fUU1-yEQvPT;dT6d2JO!AON`}qwe8-J* z6t6QrVSHM^`Cu59b4NQD=aQN@?-Ny?>$+us6-)S0v~{!$`)Gq}^*~T{Lx6vSbrZo% zoBC0}?uE6f09_6d=5#Ut&YNmhafw-c1iQzNVt2#95}R1rr8%-EyUJlqT5aQa<7qyb z5xx8R0;Ik|!bk~O*}eRSbbOBd?HRi%d6C$M^;BlBr-(;)?@FE`wu!2|n#PI_#=H+= zZiNS|uZm_BKB}&BClT(QUMqLA0R#H?^d^9QRCD8N zm}k6OwYIo(_4*D53~DWIt1E>m zxa?`IcHcM3WGPD=Zj*`sYEy$a$0DDpuf@`*wL+q zp(=@qyp!!;hoT$SRX(Jv7n1G2Dpbg}sYd2wGsYxc8Rjrm!+iU5Kf4?B_e0Qp09(tcVob%XJOb3SqyW`ERZ5kH|HX ze{iAg0$o+xNbx;Ea`uo}&ytCXZxnp=(W>g33)Wh&w3Ww)*Nox)2YuIjlV;q#bK zau-8DD6hZD2cfEcW3-Pk%KZDsIMe17zU!Kd8V)8QYNxt7mUWVtwHa{;)2&vVDgkbd ze=a}qd254oJ9l0{7SF4=D)NWM&)uB0ZCY)QeL^6bunrcf3=p%{g>q z{PRY6%1Fn$O#3oy=9_NLx7j`z*D2=BCtm$1Yv?au?DXu*LE6nH>u!YaN48zy)w>(| ziK5nxr&JgY>UHKiFfGe~-`Qav^ zmomIKr>|1TBCGkqrI8n>7bC(QV@&g4y*UTN>`Buf+7}}_G{^4`XbQ|2O%v<#A~b@l0Syls@yXvUB9u3LKTb7&n%BG=qS#jIxaIb2VIu5l!_J=v`pPhr zpyx8IvpPr1VpbZ*vBckH)+T=8{Yr+v>rPje_EBVBe$=;kP()4G>J*2!3+}+Y*1?K0 ztw6`pTOEQtmPuNLWVK{Tq0(*pJ>K7eqS58v(W zxA9o2-rz+J+X$VDXW}7}!Y}=SrIN%2C1w%5WzzQbS;RbzqTgN&H=7yEr>(o9hPD4T zJKZW)pPV_fH^js^RKsVU38o@Zj6YBwop*k`r9pnUao~>=({^3mWhK2-l=$Iznoz%Y zUf|u-r)l>Rrqi+=`?U5xoUx>5zqXmia;{S>tQ`0JDn5Eaq-kggUIoC*o*y10S4Z3} z$w#94RnH$(*19FE#bzl>`q66}rdH-qKiol&P~Q?jb{kzZxb?)wk^U3*EKxJo?8|Cc zv)Att#53=;*_$rkQ`;#<%>e~T&pvjYS4*UiDaX=m{5o7hu;QsIVX?j8XlAjh$6=;V zVRUTMYAMu*tdZNvr_-PDs^Dpk&t&r5@CK}J-tGO8ZT*~#{_c%>_+W=^`zYqA2{Ycu zHc!W{Q9P~7uq`4j)$)unDZ87srG?FfWtW}#r6ybcc2w5L|G>m_3JKC?ZE^c?jbE4P zmBH&lRlmAN-)zdp$y@VUN)yL9U+kZw`>1?j{pnSoJt+%1$r0Z+w_e`mUwGwMQ&eW` zb2j#<>Se98T_+VT&A-uI!88f-whJaK9pcT4t+G=sWsO*Ry8nRZy=xm=qU`>8(`@2Z zjSJRqc^<2+^O;ji*m5g*vXy(ypLprkQFk-OpH!=FDm5~r{Bx=KtuhkTj1_Oc#i?-~ zJ^^J7uaO=4{IBnK3SHriRPJn%y05-_1zxdRX66*e_7Qxtm=7&)$aHcxU1_sDFy9KK?db6(Jyy4-$`ODQ*r)IZg1D4l7xwz)1uVqri6@Q}#w+Te=!9%1s9u~+uRYRDF zebQ_0qSAy|+@s>mt=Gbpgt8w7oGZ~GW)9f1fw(I)J^PT>7v+2v2^o5E{4<|dOzV05 zQ--GXf3ap?yYG*D6uK1PKP8-xPP~iP+0CnP zkCxA`)%)ADxIC9_uHk`>_35$=mZcK2i|b9Fu`)0eyl}vM$=Unznc$&O-I}GKJ93+j)>a=XE z8zd(FHcj=}ma_USJcVVzB`qKXZzg_`f?X?^pTTC14cVEaLJt_iur#E?7I;j@>C1 znmth8Q1illot=O3#%X%<3bg+(73=-adydTHbLQ4(ic844MTR7fuWY^K6j|CM5SYe9 zxOal4)&7B2-~5r*F8fSzg(C(Fbpx93W_Z5#%Klob^EXjTyg)2!k$Sy;@kuA9+3B2; z<`|iBa_192*SDqE)e(0(y4OJLsO< ztyXkyQCfc;OB130fQWS(JP@`Smbo%6CX&B-%s6e28cEGb`hjcbx{llR~O$d}OI=M`H&AWdiCsu|1&h*Jht&u)JUvBlO1 z4f-2hq>o&ny`rtncB3b*+0Ww>v-^HZiM3x1Ga{R3k~t%OZ!WgaDEY8PD0UiL^;b<| zzDK*7ufJk_e~Gf+XlLoHc?YdR`B{tz!Dl2&o%j4LHj3ayf|kjkKE<(N+8*($_VhaC zcIB}x533wX1YXoO8a6Qdt0f*w$;}*%>-E6g`lv5n`Se7mmVLXLBi`bW{94P^wluCm zuVc`@tBJPKFK*d>oeen6?U;{jCB*u`aFXT zY5Cjro{PKfcOza@70xwo&}s~GY1Nk<7it`NZj8?}qD`W=6!cX~H2l#%8y`SqHQ%1l z(ZCmcVld~0yYkQQZ+w3mPd2Ocp~Y_<=R7mL-XwEPn$9FG%6a=_s3nsB=F+wMLV>@Q zYiE(yW8Zr*`bB^pGIyDyhxp{$EUrfQpld1mide|ts1GQCYo7skY%RP3&?A( zY6suv(Pi?qWoLF!j&E?Ib$8#&b54t|hJN9uqD9o|Uuf=qPWs98B;f3sW0h2wJCiy}9#r}#k-L^Ew&CAElWH|;8P{&r# z%dM|n{H-h)wm|6?Nn`cBbbGBg&u_!kVc>&&`^KvnK}Ww;D%4)$@eItkWyLjaxxk4> zFKcx>0y%f>J^MQQz~H*1@ufx9AS7>X=7{-wPRI7@XP1dw>OVd<`*hz6GM6Q_ggH|J zD~oTJ^<^r1@v3wxUConpCT^F`YRK+*f?oxpb*FK*x7bVZ(4=tLqZ9N@@X`3ILjH&z zrksLMf$$Va9>_vy;!Vmu$Hw*O?*-;lDI<(|rfYdOsn<?X%W=>pB#w4{&r_ooIU>TKJa;L&#mh_Pp%{}P0$ z=4_0DZt_lggx`ayE>;6i0-HuCZ+n?dtThKJ=SilGh6+p-&V5LI3-@l)VPje%V=un` z=og>#(vFAtw(oaTq(mZRhP&wfvreVCKRnvUHW~KJLm#2F5KZFBWae*+kFWWj~YW;{8F~DIJ_$Lwh6McurrA^yui%+NDq+ zUhl$C%|K|nboGgu^{QGR$Eyw3f=fI`Wvl6xI@Ftlk_FDQgilMqx+{C%mNT;KrjYt6 zIkq--wCV%dbl_INrRh$}B&EA%>*5c+2`x{0_6mn18fLVjr3a2OWOv!(G2C0Y>K_%G zwl9Og3++q1vA@e0&&J8pdkv?0SGAT;QZlQ2-t4I7qW;>cxN-aO&7?gZ)M#kr^0HYb0I$>QvSHILg}A{-@! zj8*>($l}09wTT24DBCDcum!OruhcuTD77Qj$IM@HPfpu)n5bTJTr7xBDP$O)NPS}( zbaQN;GQ@h*HZ0tfKHTxE=N!ddbSGJluEH5lgTTrsN2`qcC~Mn&3mGEBKbaZs4tH!H zG^@+^a`z-tgh13IIM#@{=Ia4HkKcuv_!Q7=62846rH;M#2zQX=Gm!K<|9;7=xzEX^ z6}-{X1-y*(+JtgzDGNn5bTwSwHd?OU7nLR=MXSu*N$&)={dL)5(-N;=#aUqBw6sMB zL~Z)&op)-0eB4lGH*(#&Kd60CIWvyw;rjf58zKVB1G{{vfLFhE8*lNr=yIobn`}Sh zGB=;;pBzdvu{6d%((TsqJ+b|)Rw?6uvG*QuRps8oXy`~UqM#rk7F0SSARR$aq>EGm zMGyp}BfTjIND)PfR7I*tZ_+!`dyyi&cLC{~FXteRGtSI^=DzoSzk9!Tql=uKthKVT zlAWEbti9v1623`ocv0Xz+YoGw)j(GL#b=_a>Nc52DICqC{oig!+!zU{S>O~pgq2So zXB`)%_%Scjo`??Vwp_hA6Vq2t7p>o_G-{vpwH?lhZdkazi7da6zkN55_EXMGibj|H zs&m*Ny|w>&(=n;(N#>$n8=Dq;_!S%wa`Aks0oO#Jg1st+BghKU;`-7pzImU|YJDlV z!hDd4dh40xdWntRWMUQC6AGX+vD)o^VWn=<;bkYzDho8m){iDr{X_^Jy{Dh03mOXgK@Ux;mm&UB>7Xq{>RFMLhNC!Ps&opz{J_{I?rRWE!E;x}cwJi4zb8Vdm4~$Pg5BkF3%I&+BnKd41 z;$82u+zgjEB?NGgIQep1ZFA8@xBKa~>UCQsS=F$ z-)J*A(%dEFAM>C|(yhw8I2m3uo(sS6*lbZuV#iOVs^3LBbdfIRP0Z<m|5}Y%S zJfft@?J}^p-mXmc%mj0z-!F_GJsIWBxC47%wQ$WWkzI|;XfDQCCl@w3#z)K3!W)xn zOR{~~K1EzvJ2V+`?#PP2YgrqKQCtU{>lp0?FXjtwG{g=OYms%W_-k~nQ99G(!&#S0 zZE3PHU1UB^f&g9vKe!kveIn}pt4Gi7qgRBv*6C@Fjb{?gF(AU%WDaAd8GV7iQ~)=x8EpaI zMF=DMh#sLBRsgFG7IH6|kR4Pl-cO z9Yu~Li74VeQ$<}_lsjC&JYvHI(QHLdKQEHQW15OsMxe3l^f}S!eSjZ5g`e>imk~=5 z)pi4n@In}Z3k3K!Hv9|2Pv6;qiTkf=!$?$A6o^QO05LH!aP`JjaP8VPAT2EoZr!>C zZr{EQbaZq8{AL0$FfagSW@aG7fDMEhae#0Lkq<9|a1$O7Wy%F2&G^6@vr8bxf(N{V z5NpK?5+3n^1RFk(Xv+`3btMQsI0(Y;7{hPkI^lwNTVasmC=BAAq(PdKFyIX31ed}t zfhPDhnr1f=&=blJGF(JKmfIBwVj$;<%wJyBAJ%j*vh7sW22myE}OP{5g09U1Xx8qd{zJEJ#R5 z02vt>AUiu7eEj$kl*YJ#ida`r73T`dgqsaVHjcYF1E37@C|^Z@rZog;T}Oa^2<;mP&<&w)69EPxjE#+fnVA`|xVQ+u&JKgG zbK_ubVFIizPJwSrQ($9x8f>gAfX&qfFa+_(w-8_o!s0fB9RyffS^{gUOW@nLZ(wt6 z8Emevg6)kpu(P!emSO(d&K}s>+Je^`V0UL5Z0;h!-X8q8?tkL|kCXYQ(xJ|t`4{-V z<9k57AO9}vA6!7H+Bg1ciqg`GYQgD99{+&oHxx)6q^Kw_CkIC~803O#{~ZHFwdO5F z6oc;^)N22Y00@NMEtOl4gFI4%TbbEv(t7_!07SKh3Z(xoLKp&(E-m+O1VChJYM?kE z>mcusK!i(6|4aJs3{WEY`9m#K{|f~mvhHYVYC;K6O4x6Qe^~y0cgebgWPsuTd7xBL zy`S@28~@p_eH;WL>)stC2MrC)gOuOm?{x5l!CyiwqS1kqlJc-smi|5iq!wU1+)`A4 z#vG^wMgJci=@()=JQG9(*Rf-ihbbYwzCKC<$N)46p!k{TQUD zJZyuc|H0wA8s$-)Njm&HgJ01U(n+qDp-&V=#UKT5a~gI2O;3zL2pE<@h|9c z5yfn5C}-d~iD7K;#p+d-pUA_Qi)Mj3VzphM&V@lmM^>2i@p5 z1|%qYB!l$tK8L^otF_`%>W z=+V*9e)*4%NMvJ6Lm;m2ccc9(l>VvwKR5qxzY)p2D0);g?(2XOQSfK=|BdG7UvZ86 zY$86c`?u154eSvXe@2f?`!$##ykJL0>JZhFVIy!iB2fMHAL$ZIq_eiN0#;fl>U$M zAIS0l#~3*<@1gAv&r3iE^`jIJqhc3;^Sc~H=c?Zj*lv?2Vk6aV!6<)7`ug35y6 zvhiggA|e8=h+RS1i{WY(C@CqS?8JBP-u+=GHa9m1R#sNP$;k->>$Co1Ge+8r|7a_I zXDxuT7suHM{$ew(w}t05K)Z30oiIps6bA3?BtepsB+72g5yAl;WIcd3V`9+!m=v_Y zy|oq(O3?0i27GY2{=Tj4F7we zC=}X?Uns+KL!?1z@I6o+dI!{m>w!;^`k*|@0@TDkn#Do`X-R z&p};!0BFbv0G)ZSKxat|=qg9rgj2wmh8!^TDG4mJCxfB-bTHhQ1xA|lzy!1ldqcbM z>>db&@M>-kL{39n@cbT#THFI~AP&+VoCvQ!KuBBI1G&&f9FMdM zLr8`;-QwjvP+MCI8k_g+!UF>XVES_fnCkrm=D#$6>A^OzFx(1eMti{2#2{Fi83dJI z5ukc?57ezdn=-TqH?Hl076|?8d*I8)9+;Sz0JAgG;OopVSe+Yz_TNb`w=@sFeO&3HL&?@8Eiq@@8-rgumsb;Lfh{*X#3sX zM%sM${@dGp;cfn}0~|j7o(3B4k>T%=4ss!4T4-QEa7y(*qNuA5)R32#fk9p`?LQY$ zSA9=e30gWKzJjuR(tjkV3szQER)Q2V%GK2xxBfG}uZG4xfks{3ZJFwWTK!dA=c}cO zB2bdQeNRTFQ8fDH6*{|eIG|9d zMiTsv|ARVFh);9u+IxMt6{(LD3R#K$rjSql1>dxei;DpgFvP!v?DcgZfzCbwvbBSM z!MDtZ_-D?*$z^Ox*y}JDUI+TYYVQ{j_zS*y`9&@^R0+q0oRGoZ-pRE9Ha3djSN^7T z+!rA_vV>z)6cps-3{q%SBC8`sHAB?|<#77bwM&T0+rtG(N`Y-a} z*4c7Hd{_slRSK%_1&|jYtF5JlME|`$F`{F5c_IJrB~W}XAs5x!en0Th&mIKEIvZXd zSiqSxsCL`00(mZMJslmCI4J(m0&@^dDxO?{B|r+;3^b@ZlMq9E{bvXL?RWhL0|VbG zx4gVOCkt+6W@q!G2#E8ltE)>Rk<$NB{{60pRd=213>OVjs}x9)@=P%>u<`yD|Du2- z7tMi4{|O(X?gn>uoii5_A6dd5@qg3LcRiKcawpa~pF#DEV-%b%5YLqpRd4Gq5slKtP~V-UWn%a8N&@bHL9tji!mYVB|N z!+bm=Qy9!mjR~-j=zoX5kATAZ?a$Brf6~uy2;YAl5dVz-lYV~Sqwo%pVd~HLKalo+ zU|}HtVITqZ14Z>W_`i|=GyVto2iT|>=db(QzB~{M^&g21Q~r@W2PMJyZ}CwQAlakJ zK>hto`~#I72(vHU5B~K3DKLqgV-{h)z{IqFfBhLc9XV1^dd~|=l&Z1k31lM zrgPujTfLLB-Gq z=XWv8LS6sc_>X)Jt`Ew=`Of!$K)kPKDo){t;lEQEOEg ziHM2-adB~!4-5{~~^*e^Dm_h<794nh^mckUmBbkUmE85R@S(K%b%mA0rLuV`KoqbP)O* z!F3|i$4D3Y7#;W)nZqQy~~_Ob4T_AHg{E33?3um0TcS56Ba_{!4;B zJ}J=eCk;XlT+<~k!8IO)bhw_YC@Tfc?Ny+)8?Na(J3(*nXE54P4%c;6V5YAY%=FiT zIk={q8|eZKlM|qOcobADtUy==<;z>36s`;Fzac=w+Ae5;K0kxd*JpTm7)(x1f|>at zurN0PmS;x5>ij5Jn;!$?D=T1n3jw|^FTu6j%6Gq=Rj>rtY^!kXwzawOKf+h%M?e4H zAAhL<)PV78t{*b|n*2S*@16t~2baXXzrgU*;^Ml<$sr`H_2&rgf&zRH!QO%6*`F5S zE-EM>z{SOP`Oos9T<&6`f`VH2;g0%&lvoD=+e7{cv4NDBD8%4H7Q(5GlmY8tPeMkS zj0EOONlG3daM=8uZ^TMQMyx7@LV!|m!HQgi41Uo2G0>5bvFRQlK#YrgKjmY1!n26T z$mA_-Y#!M>(v=cK*7T=*G(Wf{O9hJ{B!nwX$_J7VLGb5%M`nm{gp3UCxZ~mCQr?FM zNG1L#Use&hsS7y}65>MyD@n;Ky8H6OeO4HbJF_sJL5hGvz=QcxNFD#6N5j-NMmka` zD_=lzcw%d73A2C7M=I*^DP#%I?*ZQf?jrt4KBI{eECN=->$m*<@=<@C86Vz6)$*L< zZ}|r;0Ao2drc=mDoHxJmXZh&p(ngQXP0Sw~;y~m-mj8!MM)ZUH@8v@Z6vhv5 zq}@E$@;Be=pXVzFcJc%}5tMH=(y!VW+OJ!mQh~N-^q})48|V(^g?4dCkm-u_tNy)j zb>7o!AlFM46nb3)MScn(@3|Hze4zo-eY8RLa~+WP68cmJ8-S|NyP*D^*}iSNYu~nw zoTFU-4DH$w4(!^upj}(-yB+&3v}5ay?!h_9z75-KVh_$mpe-BDL%h7afNy{gD2jDQ z*{b8?<3Y*Cw;(Gk3*_bHf$|T2pen^5G-mjNy0qt@H9G)w=Ldq8JUBmrbCkA%NYGgn z3Ccfy0DYxVU=aE(x0fe_%F=u=P@e_oDTUCVxEPeQ)_}a8cJLJ1pM9XevLCcdznWMF zui)Gz0A2?}yLAYJ2$=sCLL9VRr$YO5`s@nGUD^iOU!iTex)iiDH-WC!deGL|0;c=x zK~_2v*1-7$m>V?b+*%|j**iP6A=(xgT*8HU?U$m z$5j|1CzwG%aN~*)@^nBP4AfIZTvhp|yqpXrF_HAchj63sJAb518mG@9Ddh0s`t^Vh zlGkl{3nVKAy#4fjK9HFS`?*t;+X;2mWn9?9c+l67g@~0?(X>OnwDqIubDc5g_{}5|Ga^ z5(sn<4xVH1$8X`!o@1gS0J$Hms;Ua0vojDj6$a3f2&}EGfuo}%cx}jmdT%Jq_!4UG zH_rMph*dT2h?!o8&l9-63D?8PaNjc< zu8lt~ZGt?wo^6Ng*$(*3Sb^(Ndv zut@%NEyc#n#iaxjurV<)aj%d_aIjrqJk6*GFyZidnTG5tCkGq!GnPSJ3s4_DAuP-< z&c-N>y1qnDeS`%0BwQ$Pm4s=`4Ps zJ?+QZD%;_RdV0Q(tYb?rg8Pkv!_rPaA9u?n#ib+*3aKLTDZ{r3;8xAiy%wW;RdLZj zGB!UyDc?TMUTI#P$Fz%zx9L>NvK z<{u9pEWiLuL!ARQi*8r>3#|Zgq4}wny%%UCVgYP|WoDa2d~I&dOEV9Fh{YhOB*{7pVY#5N9g@cH=fJ_t_ti|jgYoK+H^jc2mzYtUVE*DRA`=xjA+ zib}svRB^}R9m7HqNQt&wJuGkGG#HZJ(5$&2VJsdxDjI!Ld&y&*+0~miI?NUKuK5*i z3{uPh=6g`6@-b=*_<^H!-%WVH%BSo@Zj7q=1qHsFLZ8x|jzM`3U4cAL6Hoz>KsFRU zvJ(Fj69YsamHN6~z{VSJmowPV#Zd8~$UiRTCCY&8ZJz+{+b8s}CCEHrt6ir=b-~{f z`yeS|#Z%GK`CB44@Njgl@6P9>?rJNhB&FCa&Pe89XZJ#%BaoFSI<9-fJ zydF=V8XI_tq3h~?8-<>76z9*MZ;Pt0tCLe##|NHQVkPP(EaQL#+rPMmd3b+zg0lsq-R4GH|#ZbhVk zeVWxQ>Xg@3{VY1i^B3;{u_m_amiG3?RnLy<)V?^alBG{NGdqhvz>EXs&^IxWu(#(6 zVp4q}GZ{YG$URuO(k$eEKg#ildhSDJZPpchDiA;sAc+|t<#f48U|l0w<0F}3ybQBt zaK;&3Z2h~wN=6lvAeDV&n9wTxWx#2Sme~yRH=mES5ghrGAuvsey{7N z$jV-G8JaFv9UXK=F!@cQ*JB%{2Yul1x}Pf7|*!4(E}v6@lf z@}`v%&OJ;=?L+Y~&ahe2wyet+ zWfPn75zvopqx@*Gi_-gB!+v}VrJp`Yc3Dy2!)m=iCc%?svl}z*-7WlXKYhA9;VNPz zWJAqIOms&U!GR#mj!X5>MST`g1fCNz1Oa&$RFs zq2XVCotB(Q5z)RoVD7ZHIT@3gNv^dsaN%dBlaMIW_l^szg>3i9W&J*ci z%$l+*R8q01X;Z)92!s_C$&tq>M<*rKWgDf#F&(6N?7>5RBhwp9xECv!i3@!Mb`y_V za@(`jrN|VZHkdejhSGT)CZQs)J0-7BO71g@wYT3{ZGWoFIk(i z-EX4qw;A=V=BUD@f(y93h5T8cO~me9*1bWUK9VR&NeLZBzv!+E%^hqrJD-jEk>ID> zBj-HjcdA>TbylZF^?5iK*)!Z-ezMG`R$$G1D_P|ZlcEv4SwaNtbLJ-~LxZhps)(a{ zQjWyaozbn-vg)vAdSAJCdL)XpL|}w?S!jIP7_kK z*5b_J(;>*QqBq;nSJ&I?Z4?$|-biKsxBQ-jZ3~)PAJk$S5slC6&FQ?Y2Ivn5Ua2H?H9dK_nYY!>H*TaFa5T*S-w zeHnG$wxL#Ir0&MiEWVm_A11p?i2w|!KPoB!>%{$a_QMRp35pbA_MPw`_h{vu@(f5L-4 zk~3aGY`J^%xH9u2&%rJkb%BM#ho^gw85)f|3V$gjv9l_#cGgL#-4Pojv-5(N)_FiQ zwC9_ubJ4cutv6>gKRFlI)?$nb9R{P>M8hp&1e$hVnMh9+D{+*oBvqQzKw?6YsbIfi zTzU@K>|ikegNZx&&4-tp*X-QkaD2j9H`rR8Aplo~cl>aBxBOvb#f{s0vuy4C#a@jZ z#n3w%$v-%=r6>+^vTzbCJ`v=WkXRs_slroLcT9o=zb}kfbQvm~Ep~o?ShP zGwt@i3X@9MtGy+OhPT2_V*c2cMD^XCfkzr85oiLEr*C*W9f=+e-aFAHyb-ei-^*R?5i7Tj zoFftA$mSS9P%6l4p7B&W;+&zkJQca6MK8JCdix@tZ60mQ8eUslWbx?K17#sn_{|R0 zP|X{Mi_p?k?r5HrpYf?8^S1apcK=RKA)*IYZDv9Q`CQr3;^XO-?3Pe={!PsblW;j$g4Q zje&xMLBs||K^cypvCGZi1^A`D-L9`Kk~az>-0d)4(0&5fDcc_lg_p5gmCog|&R4Z0 zI0pDw<+`;GM3ihW2j90iUQVl`k(R4>mD7EN5kU-rT* z-V1B=l>KzYGIv_AAZfRMXjFPQh11TKsh7tk_&Q)z|8c`JlI+MYLE%6;n*8%ritwPW%4#-IJutVMdWj+-qyT_ z9n~Md9lm>uD&)cO4(v z$n5KZZgO6Oidp=(UloPxP_s^)>s`M%5Iil@f*qIY{1rZVr)s&>BF|B6LAoI6a97HZ zJF6VE$YS-Y3_OFRE4y{d;!)NAkS(DGR@;kQqn)KT6;ViGN z{wyx;Ot@v+wVcA@VnL(ctV7NGD>t-LPoBjHIn~kCb$7lu+h)CB(D!rZ{iFGOSSJgP zJ9LaZRoGG0N_~!_21jMR#$(CwMD*0cuXvY?dY)TE+ymlGf#(!W$6qPm9muzOIdX{e z&dEr@vHSU~FHQ0_-;gkA7E(St%38g(HtS38383kFH7ifI#13j zk@j|($lL;L^&3}G0x=y==~E;$QUd7`kDBHPUf2rU&!H8MgRNdqiUrw+~sL*m>-_qrQ;CezqJq+?- z4$o(jflHzw*7-DSg4OK*Govf+<4V)R$RF_ zms?2aw-w7!EQG=7C4{-b!}gV*WcRq7{UtfX!(7rbZl1{+N*$pk1;^IorKJ=Y?hB%t zdDA{&rUPxWKDuYfs7q|kSQnhFk6x`Fkul4^O`F;~?XK%-HD>Bq$galXrFHn84R+iS zXFBX7=QZ>%povAHSLXm}+DFF;9fB?Pj_AzEK4flrD#~!qlEqW7)Bol%fArl!tPvb(iflAf0YdmVrh66-yP!qa@p}H; z7+S5JDm{WTQAJue{VT|-=#v@n+ng+kTS_mEScZgsU{yV)Qe4@rG@|SvLx3T%hrxnY zV->!#9)|ZE?XYKl-DQVqH&%LuIO2-Jj7iGkZ%c-rXU8JsNUYR$j+tGT$X;cQLd%SP zJMM1dsEpLy+m@LRmPAwGqyX58dq&@rQ8i&7|oe~lyf!&O{1;S3Y!~nNl6n9 z5)8$gpY#P^8oy=#;~(L%Hs2T_V}6=v)R$fnwea$hc9@aF@sJ*M1NDkaY|^`B z0c7c-9dW{14`^~J%X-vHH)IrXg3Oza)_UCow(sC_PAZ70bz+h4vRnLMTI3c7?}?}5 zWXr+5-Bcm7Q{qOv+8FiCmQfOnfrgh_y&fIBb&|XjInvo@ ztBKE8G2+vNHb4JLBlqJEg>#;*`wOJfPZ$yrnFIl|nOctV$} zz_zpz#MLA~ihq;8x?`R}*I$+?>*tu))I4@J5b3eP-py+k!Tn`<(<1~j{ z2L@f2p#ZCJb6v+8fIVNk^<)i2h{0X*LvuVl`rD7sW9WU`rLkVN_X=XjOr@+8`W(N# zL#e_N_=-K5_qLstni27Ho`sXE9oD8+YIY2TA+B$HHZN))bJ+w`!c!gH-7(op2>qOa zUHM9Kud(={nDOU9va8dA&DcQtyuXqMm5c%gn zoxbUoReSZEOl^ol{l{Y=^;62&b&cW5)5Xo7(l=uXO&^W@7*s60KCWr6G4Z0o= z>2QMMI*6E;-dNRbQ;KjnOlfzRs%+*7;Ts>R*UE36&3o$J-3BKzzc9ViBNb+MX_=mz zyEsuYAarUj_OnF&yjwF<{IJ6AbZ6}4!^W!5GI+$7Cm(8WIyx#_cPJ^39H&+HeSLj8 z&vu8Djy?KFg8WV*2mcDy>*f?)x@;jdpG7X?Ch8_z0V?57&|h1Bg)BSX?^8lZAVBYM?wIS0SlAwcd&{r_ zaf5Nyw*up?lb5k@1H8TQZbV#G3Pa97yvAso4YT^MD|^Am2~&(;f86$*!E~272YiM< zW=qpZe4kR8D`a&pD2l%#GQbmE!U>aZt?RC8PonYgghQ%99DPaBjh(cQ_>3FK1f3wMdth zy|m^&R+n1F9F?qhk6d`4%vd9&SxCUGk#YD{fcd##j2b6ApJMFzG)0;fx)u!#c>5?g zoo^ffmp=i~cd@ZmA+$8)9)3AA>Zftpy`*M!uVYd$Kk`;2vr6LP#%T9!zwQ#lBSt>7E9H0Y1;&tn^DYkCC+-+@MeAnWYWWcRbfg^Cl=8KQzC zXRi^UNjMo5z2zIoIVH^9YNuLr#|2OETIzk3`y&Z`6Yb}OLqZ;+VY{^UJQ3abjMHFb zHC4Gt#@sw^>!d_6uG0J2`{n(McbZnOW?kxt&PggKyV)gi-|VBmM&{yRLGVg0(!)wQ(|!ZMY}`sWTn{+ z4d^g%Npnd{ZTRmTOP4Q(Tn&;4);1NUX!^-Q*;^9mC6{L<@(vd1|F)*~ryZ#4AA>OZIT4>?e zCQF3gs5W(CdrsubJwVUFZ{)yoJg)0jVpZt4Wz_9?CzB;oXi3vt^CNQD?6r`)6-Rm9 zujqmJCvvPKg3lkf-0r&YO*kqs(tJRlS=x<&P7E8np&N~YLZ&m} z26^){nGqwC?Al9j#yU;iPkAyVbldHC%D9bI%r#~(^X&u{1Cwjq%re7OrPpCCR>lTx=3WdpZ#>1{J=>$JUR9N@Q{&?* zj2-=++NRK@a$%RU}@WaZGuBqrX;@!{zzs zY{Ou7XBnv(C$wuj)&mucPU@9f^iDNXZc@6Owu|bY=c%{+7r|Rus$2$sHm2DHx0b=vtw|SwnwZ%!h-d-`6KwiYiNq#^WC)Qn|VX-e2II5vZ`5kxzE?b zb$Djw3;o)2jK?KkbJAU7deW`lHqJ1 zi5v;ry)RDN#yWf9U3T&-k(IQomRd=^ukd?Ydl_kVCAg0c6>1$(=a4=v$F3E6#yD?5 ze>%r6$1zyYoo1?iE!9r2p9KRu&7FYm-WR)BX2>S!T!K&F9i~W0gvbi-z}aIBr|Ty! z^HDmswOeC9y<3Cr;N2x1?O`QKo{$ttx6Kr*)C`-^Cw;&YkA%a1eSxb9GccIFA*?mw z@bb7OJ@nIxMxLMRj4e_*?f)&}LibZ!4(xC<^MWFa<;S++i?Z|m-VwWE1goD%NX^y1 z<{Y1C?Yw=qD8Hfh87QJWWeMNtO*0N#mj0k(sXz|ocaG#lYt1;fQs;#Pt9tPTVJ+Xs z>%DsPwy|QXin8uvPmf`>6OIH)IoYf$Cv!G+g6EruS_bDe`xH7EQqDfanHyK=YdY_m zANx>iOABzg6fX4|>d`aL>1SNyWN3Ql5KHs=KACa--E*C$QGJNa@#e5Z8)w(;<9Zmv z={mDwv&zwzTaRJk`L9iF#mr=e#Pv35G)m4`3~;zy(_0ubaCwMbhp(Pv#6D3n`tIGv z3%;kfb~Jo8E>yA-YVGnjn^+qbW$G+Drt}2~eDw>P_P49Kl&qu9s^l+KZ1}n-h<>m& z=nS)uuvWfL;3eJD8kAT|%E(!1nK34En{M7W`+1d#a>3xVVEQrnoql>JpdWcs9I=^a zHQ>x>!<%$Y(9qvcE|9csY$w?-+w8XZPTJY?(IW2sduWykzjYFs-?floBzrBe&gW zod}tc9k?4^zIG;hFz(1F@U`+nYT?}mEq2+B7~V<~3-DxlE2YldKzS&|Kk%CuZR=E> z=UQoK(3fbsUWG%4y*WO;WmXaxu^X{2)of}EKgRm)YmKDVXK}c&x@62T$md*LcxjgY z&09fn22+ZXO>Ek}DRgT^(p|bMqM@&8ylK?Ws+FL3dUY|%*(6JJ(<(((UF@{pV#igY zQi{4`5~TzP7cIAS3O`XwX+_CErkXaxSUOHh;=H%kvhIs9;RW@@Mu;AEzFbBBprT4F z4Ts`!4V_$#d}Er2}PH=nirP zxV61~I~7O8qLc>OlL#p50q`rMhJV0+&=fwnZ z-i|Z?>)z0q{q@tRztF=5p%0l9nd&o~BUy*k81@1a+I2q~myk4Xe>BF)pulZGCqQ2l zxY>MF<*tCa^C|fY(x;D;UdXxfMW%TYp}EZ<-)Yc@2(t}h&r!bt*MkhQ{L7d(Owx1- z^1g=Kx^1kvHF~Ns>XDZSjzlF2VlHo!B_#PE2dC*1_b*M{F*^PKhSL$l}Y z7QCSERC0NsNp=hquGq|{TIjpAhpMFXbh@(6N$$R}C@OrCKQ&v}kgnz>!JOI7TPj zS-49hDf z9`BPb!W%$92hFGroISbC4qo#~Se&K{<)NXNCx$GeLZVgz2LHY_Vm#_pg;#_^>Q#20 zo@ZaRN6Rm`O)GWNd}rC;xpJ*r%Y)@{i8qz5ZeT|{RD z&4SxZL^PN0F}16xyZ5E4859X07FNrfj=0+Yh`R2nL4NbC-bJFx=}$Pp9Crmw<6^f* zW0^mmxDA_Wz5l+F^G^+BuicAN)W1#)w7PVmam+>Rq$|z|o6_w5a@EGX`MOu0ftfxD z?IV*pyJ9q}7KbGlERtdZj^32u^3~6N+Zx#V>;2=KMzbdTU=Sla9=%;?K6WgMQb%@* zqZZ&*zE3UoZVclt2;#FZBXC&jRf2s;zj9GGUsj`O&eTB4bYPJHJytkMKzcz-&Q&lV ziADPxjpmoVFtEg{h{oZ9ZVr#K$}1K=44T3R{b(JwL@i}Zp4?8;jNcyfEV+AC)`*JG;a?95ho_yr`^_=GQ!C1a^SrKeGVLuu^kEq?b z`;m1`#)hT-4-0W=Z#&{8U0`@#6?K)~>B8;PP6NKeiE9`C?$#M4y>%!H&e&FrQ%9VS zmmVF!JEys^;6Gj;j8IRp3gp;cUzE_*Jq>OBlWIAIK6eb1k9S3U_RUYaPJN8BdO5+W zFJ;ox*-oTqlc%OC-s2p4OumSl%QWEQm-~WyQ46~vpC&=5K3}6Fg2!c@t-66V76_0fGj72BeD|E3OHAq$ zcFf$s&|@ec|Hudu<{x9&OnoV|Cjg=47m z9Up#aF%98*H25gVr_j*YkV0-i=Own84nuRpJ=0Nv07>|-CMrK;Od6C zg-bXHmJU^iq)PAxpdF_2Nk3HG!wkC6*hKX_^XaIelgjzny2`adnosMRPx<7%u+rKF zJ4MB1)llz%Gpz356s1m$KoB7ThYLALbq}Qrd#?EcF?y{?)@ST3bYF(Nwa<+mg&jH` z?A8s6W$4h)Lx0KUX5+PJkDXG?nb;Gzx8nq(DB+%-og0a<<_PZVy~M5+W=n*`ZY?Gi zxI=e3O9LxO?d%O#JNC2U2>#G^FDzto@SBWhB2PH%Ophl@8t5tst1`2h5lB{Yt%Zk_ z!y8(7D%8kTkTp)>7S=^apkMgO?%gH05kxXTKy6Dxx%2Gp0{Kx6Q0_v^zD1UA;5mQi z)Q~Ps=Tx-$CAQfM!c_#@dKtKKx&2#I8w@SmTwpYgb>fLDflJHKm8_TaEy{v~A-mFa z9F2vaeUD;jmwxGM7?&ZLQqUIlcc4mHexZI(un+T7tX-a*zd999U+yc{d`BhqcA-(0 zy~Dmo(bgt6Hr}3Ly$51_hwr{IA7im!U?HDtf`Mq=oS%l z8cR4fUe@&cn$s+o%n&D{Ma(0|K7hzAuX{mEXZ5DAEHG@{aC;Z-lTypYWz>!FW;Vac z?`!=`DKX@2#edA>;c6+`sjC^=dU^G&v}t-rR;e3PhIf!^jiS-&BrMo?zG*}rrtF&U za{^>16k%^!8vD+FMSQpcSJF-vp)YiH*ZKrJm9uy|r35@F7p|;1U~Xl_ zmAk%~bn&8h9;_Qu1dl%M7C&^iN{XITa`v5||Khr{pcsG>Tg8%d`A8qZwgL}99Q?T zV&!!e*TSAV+8ZW8OXTt^`7TzkhUQW~zS_donTua|MR9}!px55VT|kSD+E_raY7Y%} z9Gi(LW_9(RrRr*Z?R~ycd_zR8mB@0J#PbH%s~H@&XY4`aJ34#Ois0lLK^dQ~d)#gO z8@x5THmq@n>g$FDGI*Hfl69o;L*em?P22;O#9%O-U<3#Dnp4B!-KDQ{BNJI)!9$>M zD0eI#Fs}!=^y%i;T@;ExdRKs+%m91B0Us_iFMOmeb*K($wyh}_W&r3eR&Xc}?!F$3 zX3UM=*o`Y;D(oEii0`e%9Wi=eq71xMcdE1;q%S)@`KNVnqvg(T!P-aHq_VU)nE0t`-pZYzm%zex`fsdiPx|ZCA{X4YG{OGdRfPau2K_= z2zq9^SQLXU3b&M27SP2QjnEw0h(bFd)j2Ypkb2F6M*fN9nnU!w#~6kPfBh(%iv^XA zdc~{?57N(oXYxM!1_Kz~O}RAUSepLS)l~>Acet98VQ#5>JiRfouHKBbT4M%|vR6kE zzq$Vgx)JMNdtHhRPDI7NQe(#^C;w_O-)_O zY{eN;s8)&m(nZY=eIZGkHXT&Xu(1~WpZ2~4p33HX{9c5VQYy6Gv}uuRP1-1lB1%bG zkiBeKvb3Q>Y0;vz$hBX)N>U0fB+4$5wS-p65*715^ITUq(ehUB`+k4__wgCea-V1B zoHJ+6nVECW3{Sc%Y~<=+@0D7=PDGm)8#u<-MouGXps$TmLZJGEeyMWl+If}lwg73Y z_t{o(S1lpU_qH{98+3BW!RzFM=KYkeOcG1sZKLaI@vgEb7d5$*YDNX!_$1r->guRe z6G4O93ahoTFItXu_JToGgS2CZ5BB7sCI|>t_B+_Xwdtel+nw@JgOvxatM&F|>tEd- z5?1<5b%ZHdSoGoT1=Huu$Xm0GvNvn}AhtG>^pXyRHS2MPy4Kkysn^Wg7VUep zZ0u=L<4%&UuX(`^jv+kfnj~fGcGpgk*_z$H+a~*x*KWQ$`v=v1GS6<0on5!zZK<^O zVcYB!*m$SDKd&DfpKI!D(4j|2F2<~ef`h7JNxS-03Ba^Lzc=a?;O(&xXv3~&|E_KWw;kvB=^OX7aK|sW>1PM>CJZWAuV6lIb&~&@GWY|;3^}M*reSH(gZbAxI+{n8y=o3V-+t7 zrm~SXkmShmw+~E^n!NkPut+8S4IT?fFJCKh>CJm+KE=g?w9)9`n1M;?xE~sPXxSx| zgB3f8_`2>bs)zsz9A_pE$psRbM1lWsEM%Pi?f)VEWgH}9NCA)@LTZD=Jl?@YE+p9H z0_j2eI(X#Yj$j|~0WJ$5-GKBnM+dx|0BLp~+5YPv1MGMKWZ3nBalpP%2==Z*un!i} zFGonV1R>ZP3@s>PTpPnP*b586nlJcz4qigmi%hm=|;^8N7hogC=edUA%zX15-A_UWo|yNkp($ zBx1_O{{{R3WgbWv_i>O=F5quk1M&}OU;s4G!@SVd9xyLxL7Tw5@FTL3i9ckE^T%o6 zKg|mO1J>_)kWwIl)cW$s2mH4{U1Ay-0}U`Q=y&k~ZV#9jux!+YGpxslbbuCXAZY7h+vC=#P^I%EOyJ+9_{@bSo*!gn_=lMFX@d2O#ET*V)QEs_B=+gFD!vS?D31DcPv1W&hvo= za}n%aj9`rt1Z!=5g+G%9J$d0T$wsL6p8ZCwE4z-wKZ!r==S&pS{JI9gdMhYq=K=)# zGy@IhA=tCIn+C9t@E7&Z&>%h31rp$Yup~bCmYvQ{&>G}0my~yW(EP^|CT?6KWrF4 z6axE0BUld(UD&OFVC@|g1ML9wK?LRlpaJZqjov~{z<$(y(tuSqvhu=Tm5s1(H1ml3 zQ~1Na&O{loUpRujVbDd_h21p3vVfogmWPnuy?laT-|9Z`XY#}El8vx8IP)m`6ZpeE z??nEvUp2b2PYGS#vlwWwh@e4S7ay?F0QN{nEuT8jk=H*)gI|@6YoO26b$s{}_`?Pm zME0=fH%fG0(nSMB1`V(*z%2D?27ahU==x8hG zN3uW8LLByEN0=VH^&7ioBlMeD$JAXq09MNR^7tL{AJ*6;@c+=# zh?4fJbkRTwCG72@0hWh^PUxW*yL3XRy&MXLzCn=fECg$EBAT@{I&Ue3V4Y5Mc8df$ zy;&T=dgDYozjY3}6}lI}9`Y!-;m7)ox|IZY_}`l^u_xg*&58c+uk?NJx3F&!g7qj- zvez<#23I|n03R@D5Rdtwn+9L&#W37IB51(qBV!u)TYaVhtoH^qVBpWBL)b1gf(D0x z55CuL+zM@_>&X67_?MJG=L?Q|=gknT&5n{hl@UP$kcXHLuuk}vUc@xOedJ&}1`TLk zH1NZGU@nQyZ28OsOd6yHxuD0;mtY-3^ww`Y!RVG^@Xr1z{4ZUCeT3mCzH*4*f$IlU zx@mxQ0+R-P>P2V^%y9y9tVFYB@PQw02j&uA(cqkwEc*2E19Araj>izVuh5%pOn`aw zuH&n{%;oEw#=U54k7cmXaTS*}%4OnFX z=7Z*jdUOzU$G7^8mB1ri$5&fo{4V@qAA0ou{d@GWtp%m|tN|Jb*zNP zive3P4L}wE4G4J%e85VBcdwoidK34Vdh0hjLw~wU_LuhLeSF^+{*tF9(a)w+;FE@r zy25KH^^huq1|SOvKKKc}$fN;7Ctw=%trJ-B@2%f>>vP}V`cLC8b5;i3tGP$e;91T^ zbjy21Hw}J=UW7e1y7eMcC-jCtrUPydG|-P-b)OGFasCYce^npizA&saP0*n2?Q>Lh zHw@*+?LiO19MJvHZ74Iu4rK=0p^QLVbT`ljrPH>eJN}T)TcKNimgwd=OO$%n0$ukp zMt$i;R-J(H4+r^n68ezL6bNIB?DyTc}z=FOWCY`=wSYHEnS z0YQ+if1f_Iq1MKFMgsW-dnbOG-qfL&Re8jC@!NV)0%81n9vvMW2o~o;um=hLX;5Fd z|4ICrbYMNhUV;RuFG|yizQOO%i|<}D@MkRtUo-3VTe$y|`2Q}w*z`Y&KeKO;=C>Ku z7vDyYQvAO;US#S7Jcr1t7n@!~#|MtzUH=M86wvQZN~%f(tS=wmMK^FC8Tv;}FF#LC z+z;RR&G90W2CRCqrGYWI^Skl?S>6Am?|*xU1wlm@IQk; z9w%VkjE`64_fSr_6ER+5%ER8qO3b-rJcoF3?=n=FbPnM@1U|gIy}!a8*VVsK|1o(8 zR!v1&Sy=@9_}`}w?@?n-5sVvdpo;V`RGM-gJ-l`b6x$IC@r?iW;6hLY*B9 zqu$%MZ;_juTd%nP+wo`80rqf3bUGas6&0b@R&WaW&H?M4q6ZHiARiweg!zb>PjBac zbN%-QFMb9)Xd&E3>@DGOMPJ|b_WW1z|Es#cH(36OXTOU7&+0Yi`{q|G&o{|NZ_S1^%PJ z{~Ze8DdslPZepgniZqTmyO6lPIK$TM#C?x*XV*RR+y+$H4KKRD8E1fr#NLSie?F7D z?wMy&*ZrS5Gt23DX2QkQRsP`rt7oF(zVQ#Q6G4Tf2Z^~(gv%tj`3DaGR~V8#qEwFQfttTM+n9>HuWSc{l+oR%(!p776guKTn6Vi&>G$Yt~i!U4emP_PJKpyGsxY=0qoq6kQeYdj^D;H zyEu-Y8FztW_?hb%Xu&m(LBt^I1Ae$ZUIIRFxO8XuH(x;6I8GX2-+4pujc3N(>Qpjf zuW{Uj2Eff+hrk4$TL6xjpKyF>SIqU_20wtx21yyxc1YfkPC-K606#O19LEmh^#qvl zAI$i1To=rBHE@h5ZrgPq@Yg5eK-N$j@%vgBL zPw5~xvEOzDxH;fd-j&MW4EwtGc6@|~Hof7%oD2NfvxS8P5!3qNeG|GDu@^<{UeX=M z`|xHM;cv=}QDesGVSd7~>>B|Goyu>wZCn?ar*xo>GH}E?<5<%Z2MqVxwQEaMRaG;7 zCP7R>4US1kJ!?+H;^O#2BE|rG=!$PK;Ai?w;}|n@aHV6$4=~qeAli0i?`@kIbBy(a zJfte98#sUqztqzheuxpu=xv_1uV;%EEkdtfzedj=-y`BE8S%u77)p#o@hv(*eL|C$j41@S+u@lON}I~X|N*mxWh zof&-qWyKvq_rRwyBjzBw8+{O^M|z>Ohyy4M&IQS#=*hcx$OHNuIPS5pwjIf!f9tQp z9}o~g_?8lWx)8&J<9E7o=!$P=$fWrUKmD%t4OnBAaJ5n@ttJSIaX;dL55%T?@K+>HYfd-r9$QLL9P zN`p4qSKEHf&;b{J6@DEZ9RmJ`mk%)F>2NF=5ktg?uf}n;pKVvi%cSX zyt`sSaqJh4`T2|kBL?)z%ldA;!K$}UK!3375dRkZa+Y#G6x+2maVuokiHa_{clqiv zeAav7&{M8r9GL5!Fk@MX_&tbY#W8!V@H6EsUh|=h5vP~N3Ol~;slVoH&qo-CA4w-J zoIsu6BVLsjjM7i7@AkWA-~jQ6y~tI(W(hOyh7oJPh{Gh>GvLq@{@oyxundL+x8CXB zgTJpnPhZc?&CSuxn>P_&W8q_a3;2&W6RG*t6ZE#e485(x=`m`=srE5yfOKJ>ItvaE zLkKZ+%oxJA5Hr*Y{REueLju3jPubbo82%|eVegIpeZl#o&zW&RSt0f;acwKM31K#J65Qyb`7RTN3drpJmc#92hc*DOaTtj#>F7 z_4iP+4ywU3DVg3I1S{K;p3bH=(QI4+k}uC_G3_$By%RQ@o1 zN_#uwc>9O(4BgQ93_9>|ot&Hqn%CxCK^bQa zKg(4j*86L@ddWi_mEDUYzBzvUcsJ}AhQGW0GV$KAV+VTr6qG(3ZSP*9*Ht+Xi*p@S zXT_n)d(r4g&J|Qwk_Ixi9C)S!y?OHn;W&5Z_ssJ@1wSqykCRPIOwi%Ohf!c)Ac~HT z{vzRV(CO2sk%NN+Qc_a-3U-{wPs9Hc@`p*IKY9LH_B@(*I}j{yX0N5B`6apZ=r&zn}gq)YY>7j<)z$%1~EZmjA8sOHZG- zf8sv>z*tlnrHAr71kuCeRN@++^Y@QIxqF8p{Ci*HuYUsGZlxg^h;r`Tn6OX4Lzq{_J~QB_)$u#ahqC)Y8u#=A!xn{oFR;%7w#{PS5$sR324KPd zJJ?U5Yb|v?4D+wR0pH6(A|{*RjGh7hcYwUE;C-28m~#6pOgGW`4|RlQ^Ni% z*jC&ZZ#psBM8=PnkLR8`VC{}X4;5mb9M5fH`)TSqD}?RSxLnqR>jT>uF)e!I%~en* zaJ>J~@-;Lx&`0p&!8XJz`xX=P+zc4z!zN*!0RL9^`Y^80fg-k zY|z;DiS1QP7;xRN@@6!H|2=xczc+gUeztIY`etk5aYELndM^`wu3fm{6y?g*S)UbkKm7KfZxl?%s?+5XP~-*B=jsV5mnub zK@}O%sQhje$cIRja>ksn-C;X6w%cL*@6+aH!p4~O9_*y`U~mK#!NeV(f3$p78HMd| zO|bqJ_6@)`X}o4Rvt43)1NO7R_D{S9D_)zL`7JJswd|hd_honL`FyFyQq=sSl4ujP zu=Y>U)e~Q|OY9qh?M@hmpDDku`tR*|GuX1QeIC#IKTJHY4fMcg*L1ul&B?{$0=iEC1W_ z=XcS$uYCTE^#9g;*RT9maA+dR_o8&iSQnp^LB%JfzmosIQpS&bi{pH8>Z|;o`sn|c zd+3QRfL`c0B6Y&~6U5>*lE|q*fFDTsJ@&tna0dh*c%A|W(%_gf<~)U7f4KR@1F~j^ zwDs*LR8Y`@I&vT$;Kc`23D3MC4gbaLNf49be-gS;D_|Uf$J#hvXdaBSZD8E@`Xhqg z{a+vF!nYg`TG1ywe#2u(Jf_F<3U3=4Q5cM8&*9k&2qpPh9N-%=Br2qJ_h4QCkB#tH z6^}{qn0*zLqYmX9hdwGCJ0LBBG=NzS$Sq|^-n}I=GqYn)pHw|5&%B88ubo4;Up5dv zl6V}5`}@a$R+wH#0rpdn0$@xY3b@p_w8MWSfXjes+s{ z>K^amF)#M%#bbXw-o^1ZIQ9n5!#Kb*IF7RB-x32=A3a?4Pwu5hWa6k1ictkKzujMbYliM-1~or(S*f zqV6BUwgcbGANMowp4KJ$n0U;C{b%vG507_n9~+PP@Hhke$)?)bq6|D( zc!>E7_d)SK7S}w%Uw6M6F*d|=6_{`FxbR-gA%ypP>*959oHst0{EzctrA=?w^$(NL z!-PYGOd!Uez*EE+9Oi^_ulOSD^ZBj(d(x)oePQlB^dQI*r5x5E_TOOg?N#p$sH(I8 z;eP+O@@LYbud}A6Cc=BZW#7An9^OwuMVU8H&b^xm&vD`PUGaC{%D*?7C@lWDwIjck ze@}Yg`-O{s&QATU{QIKI&piLXmOu34Tz;f4_cQP0c?g|iv@Q|}zT5LN-~PzE*}DfE zWaj@T&!}-Q2{m$&P!%K>GRXxB`*yst(`}DAW#d;6-s~|Qo^=I+`U7d>cH1q`;VPEi6=m(@i-wbyzyN|AR!;~+? zIe5FW9oA(Il?}OA-{U?7?ziCn1h(ryUm|yI7cThw9_=(0>np6+kJFDl!QbPAbvf>1 zZ3KL9{|e%0T`&;6eUIaW@SHBz+vkrM)t)$MmwV`}OQCIDM-#Ry;C>qP1^fEG>gJK< zZ}FTc)&+Pj6wia=Ind*Kb($cLcX&=7Xlu<{K66e3pEXx5YKnJPy#xDhHRApQp5MnY z3|JpJ6_iKWl)XKVzr{x{@ORTA`Jn0@m?Lk*{R14Yi2DXcn)9OYH;k`8f6rPz^V)8+ zk~8f8)QIP?@En$}^@2N0UC{IU9(B+S!y0wP4AZrXbB)(5%4NRuz4Dpw^>yy;`@Y`o z?K$iBKO$FpdxwdCZ@>M>Gv@cdaz-#?j-zvNa)FG#NMJt)(bQ*R^kT^*#s=eL5;y78 zJS=VGL4Y41I4a(#gBxw`VCkVF=e;0;Ee6cT+BiPXO5cdAjnXkUU}3IiM>~3ds~?ABI!I z$8J#%f(+-}`xFmil&P@P>`OrJb3D(G1EadpnAQ znYlT|*2o-Qf%lzwdGxpGo0;oxGB=t@Q7|;5=u?D6B_)J$b{In@1@OI%?|3&%GwTB8$2*HvbHfY z0Ad&nBH_zLb{7V`b4J0|P4yYoI64)R32_8wTb@UnN4B zR0>5@)Z7f%h;cxv_=X@pvuY>|#s&TsrCN8rE^4iBXKIUq#IF+t5Kl1uRE#N>P+tUn zZJ`d0C?>!NmIMRnQ@Z#b=-!S032V*U}g&(g*ncEV6tsyHg@*<<`g4KxU#aut%d?0o0wZ|f~QO-#oWisv&pEddW{T; ziqkYQqL|v*S=-8qi5XfM*v@32JJZU>M9kjS%+f^6fzi}wn%Y^IPv~mJ-HjW76zzHe z0}L!}XlRC63ko){vNSd`vA2PiU}eeRE#PWnD|2%z_{4-_YGiIru`_bC!)!=YE2A+( zg9oWYBGK8U;J+40lcWp(7n4@Pl?q9nv>fhL;J*@Fq9E$L+Ey;j@&-#n^So6oJz7!|ThCk^p z=%_$7T*`9bJe42#4r9g40oS`4e2X2f81<^&MIX#kM!8Du+usTA*$4r7B zG~hcc;1zp--;Sl0KrgfK8Gc`i;DayU@5v24c|j4rBSY)Lyvc;h7~~S<8$=7D z2jvEp1T_Ycg870e!PH>+V2xnCVC!I)VDDgBa9nU|aBgr_aAPnjgfD~=LJg4*(FoBC zu?}$w@eZMd#D%1Wrj_a?@(H3Txe=&ZfI3#V<;(% zFN_jK4U-Sk2-6F*4s!|f4x@#|g{6k&hE;_%hC!E?+-bg2f^MzBwsp0bB8sU23*5NMU-r=r0#K#!7us(|`{#GurmjG%hJye)`PLK~F94W$S| zIU?b*P?9o~r46N-LV2FyzTtEzFA+-22$zpkj?{?Mj?{}ZjkJz*jC6_gjP#E5jig1= zBjX|yBfX=1qi9j|sJN)asMM&8sNATMsH&*?sK%(aC{i?cG+(q}G$mRjni?$|Eg!8M ztr4vqtru+?Z5{0x?Go)7?H%nKO^c>S$3-Vbr$%Q)=SG)AS4B5Qw?&g;xMTQY1Y;;M zA~Dn$*%&Sk#{!Qul1Z{~V(^IwaEdJOigJ*~7yRNGOmL8iJn-N$qj3ia28aa61}Fz;2bcyp z26zVe2G9c%12O_ifG64lxB~?PMFM35l>@Z{O#>YRJp+9M>4AxX8G$8%^?_}H+|Z6h zfHulN7gK0Mo{ocP(5%Gcd%fvNU&_MasGjQWRel zC5jp)AEgnc7iAsg66Fo;F%H^dF0{i&XoGyv{;1IQG@#vCL!0x4_7(?iEthC#Bxqw4 zXkYTsw)CJ~xj>tuL3>Jtwp0b}hy-nj0_{gWRwGs~);iWD);pFK8yA}zn;Tmd+Zaot zvXO#;bR-%djY6Z+TS zcn8n|;sR0wazRQpLaX8nqy$m}`xWX@PNpse!qHRe_CxB#`VBLau9o zT(<_9?hP_M4%%jJP}O&&I!S|#80QOu+$8C-kwyc!+93HILDma`tQP@kFB^h!U?XYc z6SNR+XdTMXGJFAsM1Z0VAkYq?u}H>T;G`;omq-!ZAd_+KA|RJtKpy*oM5ae1f;{Gq zgbe>X{wM|7Bq4h?m{oF$xkFjo3NZ z$o)vv^_)D@ImsMkw^?jt4%%|6Dpi2x$zW=Kb~1^^5y<93qKfzUmV?qZPs_wcy#1;9 zp?L*&t0fl2@DDS2I5~Rb(D_^|xg@9Uqq&XBr@HmKPjzFDr?In<+1U72`R3;pt`qW6 z=6A{%lIn39=h+1*c_6^!AU=TFpObwx2PZ$; zCqb2vxMfpcgnDHCYkJ`NR z-TQLSyg@a^TZbx-&*FXEx{NYjk5!F@fR%UCJd(S;?BU!hl`~0?3)-leMQc1w)ocnA1lgbIefr$~r5j z$(J9T^%=i6uVJvnyzOfaHZA5--BGnsaFFyiFN^b8GIo*u+Nx|fNNAlfIW>tVU3%V$ zQ*}2Ly<9qOwl&)cJ)^dAejLAMKIdq!EyLZXsBCvTp1HQ(eo6fT+2*^NPPByhC+k-< z+|ZT1$zSU@&_`!xn*3Uk`-3N@zPi@mVZv$I(1g*Ycdt#oA*r{l_})Q!8IjEgHPR*9!TZm?B68|hLdp)Bv!tI#tD2!CdF

Qf0m!&2-%}trSxD|$4(Oq@L6 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 M$F`TWM6J#Jf74VJaR2}S literal 0 HcmV?d00001 diff --git a/entorno/Scripts/pythonw.exe b/entorno/Scripts/pythonw.exe new file mode 100644 index 0000000000000000000000000000000000000000..68b3cfe9888822e7da192aab0290b37a3990fd4c GIT binary patch literal 263400 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�y!jrNf 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 Date: Sun, 13 Jul 2025 20:06:49 -0500 Subject: [PATCH 68/95] Entrega clase 3 - Andrea_yanez --- clase3/Andrea_yanez/joke/andrea_yanez2.py | 64 +++++++++ clase3/Andrea_yanez/poke/andrea_yanez.py | 128 ++++++++++++++++++ clase3/Andrea_yanez/poke/templates/index.html | 80 +++++++++++ 3 files changed, 272 insertions(+) create mode 100644 clase3/Andrea_yanez/joke/andrea_yanez2.py create mode 100644 clase3/Andrea_yanez/poke/andrea_yanez.py create mode 100644 clase3/Andrea_yanez/poke/templates/index.html diff --git a/clase3/Andrea_yanez/joke/andrea_yanez2.py b/clase3/Andrea_yanez/joke/andrea_yanez2.py new file mode 100644 index 0000000..998138c --- /dev/null +++ b/clase3/Andrea_yanez/joke/andrea_yanez2.py @@ -0,0 +1,64 @@ +import requests + +def traducir_mymemory(texto, origen='en', destino='es'): + url = 'https://api.mymemory.translated.net/get' + params = { + 'q': texto, + 'langpair': f'{origen}|{destino}' + } + try: + response = requests.get(url, params=params) + if response.status_code == 200: + data = response.json() + return data['responseData']['translatedText'] + else: + print('❌ Error al traducir (API MyMemory).') + return texto + except requests.RequestException as e: + print(f'⚠️ Error de conexión al traducir: {e}') + return texto + +def chiste(): + try: + response = requests.get('https://official-joke-api.appspot.com/random_joke') + if response.status_code == 200: + data = response.json() + setup_en = data['setup'] + punchline_en = data['punchline'] + setup_es = traducir_mymemory(setup_en) + punchline_es = traducir_mymemory(punchline_en) + return setup_es, punchline_es + else: + print('❌ No se pudo obtener un chiste (Error en la API).') + return None, None + except requests.RequestException as e: + print(f'⚠️ Error de conexión: {e}') + return None, None + +def pedir_entrada(prompt): + entrada = input(prompt) + return entrada.strip().lower() + +def main(): + print('🤣 Presiona ENTER para ver un chiste o escribe SALIR para terminar.\n') + + entrada = pedir_entrada('') + if entrada == 'salir': + print('\n💥 ¡El programa terminó… pero el humor sigue disponible!\n') + return + + while True: + setup, punchline = chiste() + if setup and punchline: + print(f'\n🗯️ {setup}') + print(f'😂 {punchline}\n') + else: + print('😅 Intenté traer un chiste, pero se fue corriendo del susto xd.') + + entrada = pedir_entrada('¿Quieres OTRO chiste? (ENTER para sí / SALIR para no): ') + if entrada == 'salir': + print('\n💥 ¡El programa terminó… pero el humor sigue disponible!\n') + break + +if __name__ == "__main__": + main() diff --git a/clase3/Andrea_yanez/poke/andrea_yanez.py b/clase3/Andrea_yanez/poke/andrea_yanez.py new file mode 100644 index 0000000..69ea024 --- /dev/null +++ b/clase3/Andrea_yanez/poke/andrea_yanez.py @@ -0,0 +1,128 @@ +from flask import Flask, render_template, request +import requests +import math + +app = Flask(__name__) + +@app.route('/') +def index(): + # Diccionario para traducir los stats al español + stats_traduccion = { + "hp": "PS", + "attack": "Ataque", + "defense": "Defensa", + "special-attack": "Ataque Especial", + "special-defense": "Defensa Especial", + "speed": "Velocidad" + } + + search_query = request.args.get('search', '').lower() + page = int(request.args.get('page', 1)) + POKEMONS_PER_PAGE = 9 + offset = (page - 1) * POKEMONS_PER_PAGE + 20 + + pokemons = [] + + if search_query: + url = f'https://pokeapi.co/api/v2/pokemon/{search_query}' + response = requests.get(url) + if response.status_code == 200: + info_poke = response.json() + + species_url = info_poke['species']['url'] + species_response = requests.get(species_url) + if species_response.status_code == 200: + species_info = species_response.json() + gender_rate = species_info.get('gender_rate', -1) + if gender_rate == -1: + gender = "Desconocido" + elif gender_rate == 0: + gender = "Solo macho" + elif gender_rate == 8: + gender = "Solo hembra" + else: + gender = f"Macho {100 - gender_rate * 12.5}%, Hembra {gender_rate * 12.5}%" + habitat = species_info['habitat']['name'] if species_info['habitat'] else "Desconocido" + color = species_info['color']['name'] if species_info['color'] else "Desconocido" + else: + gender = "Desconocido" + habitat = "Desconocido" + color = "Desconocido" + + # Traducir los stats + stats_es = {stats_traduccion.get(s['stat']['name'], s['stat']['name']).capitalize(): s['base_stat'] for s in info_poke["stats"]} + + pokemons.append({ + 'name': info_poke['name'].upper(), + 'id': info_poke['id'], + 'sprite': info_poke['sprites']['front_default'], + 'image': info_poke['sprites']['other']['official-artwork']['front_shiny'], + 'types': [t['type']['name'] for t in info_poke['types']], + 'height': info_poke['height'], + 'weight': info_poke['weight'], + 'abilities': [a['ability']['name'] for a in info_poke['abilities']], + 'stats': stats_es, + 'species': info_poke["species"]["name"].capitalize(), + 'gender': gender, + 'habitat': habitat, + 'color': color + }) + total_pages = 1 + page = 1 + else: + url = f'https://pokeapi.co/api/v2/pokemon?limit={POKEMONS_PER_PAGE}&offset={offset}' + response = requests.get(url) + if response.status_code == 200: + results = response.json() + for poke in results['results']: + detail_response = requests.get(poke['url']) + if detail_response.status_code == 200: + info_poke = detail_response.json() + species_url = info_poke['species']['url'] + species_response = requests.get(species_url) + if species_response.status_code == 200: + species_info = species_response.json() + gender_rate = species_info.get('gender_rate', -1) + if gender_rate == -1: + gender = "Desconocido" + elif gender_rate == 0: + gender = "Solo macho" + elif gender_rate == 8: + gender = "Solo hembra" + else: + gender = f"Macho {100 - gender_rate * 12.5}%, Hembra {gender_rate * 12.5}%" + habitat = species_info['habitat']['name'] if species_info['habitat'] else "Desconocido" + color = species_info['color']['name'] if species_info['color'] else "Desconocido" + else: + gender = "Desconocido" + habitat = "Desconocido" + color = "Desconocido" + + stats_es = {stats_traduccion.get(s['stat']['name'], s['stat']['name']).capitalize(): s['base_stat'] for s in info_poke["stats"]} + + pokemons.append({ + 'name': info_poke['name'].upper(), + 'id': info_poke['id'], + 'sprite': info_poke['sprites']['front_default'], + 'image': info_poke['sprites']['other']['official-artwork']['front_shiny'], + 'types': [t['type']['name'] for t in info_poke['types']], + 'height': info_poke['height'], + 'weight': info_poke['weight'], + 'abilities': [a['ability']['name'] for a in info_poke['abilities']], + 'stats': stats_es, + 'species': info_poke["species"]["name"].capitalize(), + 'gender': gender, + 'habitat': habitat, + 'color': color + }) + total = 100 + total_pages = math.ceil((total - 20) / POKEMONS_PER_PAGE) + + return render_template('index.html', + pokemon_list=pokemons, + search_query=search_query, + page=page, + total_pages=total_pages) + +if __name__ == '__main__': + app.run(debug=True, host='127.0.0.1', port=5000) \ No newline at end of file diff --git a/clase3/Andrea_yanez/poke/templates/index.html b/clase3/Andrea_yanez/poke/templates/index.html new file mode 100644 index 0000000..fcc1815 --- /dev/null +++ b/clase3/Andrea_yanez/poke/templates/index.html @@ -0,0 +1,80 @@ + + + + + + Pokédex Flask + + + +

+ + From e527e31b96fc18a35af49e2cde7038504f5f88e9 Mon Sep 17 00:00:00 2001 From: Erikat93 Date: Sun, 13 Jul 2025 20:36:29 -0500 Subject: [PATCH 69/95] Create Erika Torres --- Erika Torres | 1 + 1 file changed, 1 insertion(+) create mode 100644 Erika Torres diff --git a/Erika Torres b/Erika Torres new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Erika Torres @@ -0,0 +1 @@ + From 594a3a7c1ca171f4d302ebe264b44b9b1bcc98de Mon Sep 17 00:00:00 2001 From: cboderot1 Date: Sun, 13 Jul 2025 23:02:35 -0500 Subject: [PATCH 70/95] proyecto carlos bodero --- proyecto/proyecto-carlos_bodero/app.py | 111 ++++++++++++++++ proyecto/proyecto-carlos_bodero/chat.db | Bin 0 -> 8192 bytes proyecto/proyecto-carlos_bodero/readme.md | 95 ++++++++++++++ .../proyecto-carlos_bodero/requirements.txt | 2 + .../templates/index.html | 120 ++++++++++++++++++ 5 files changed, 328 insertions(+) create mode 100644 proyecto/proyecto-carlos_bodero/app.py create mode 100644 proyecto/proyecto-carlos_bodero/chat.db create mode 100644 proyecto/proyecto-carlos_bodero/readme.md create mode 100644 proyecto/proyecto-carlos_bodero/requirements.txt create mode 100644 proyecto/proyecto-carlos_bodero/templates/index.html diff --git a/proyecto/proyecto-carlos_bodero/app.py b/proyecto/proyecto-carlos_bodero/app.py new file mode 100644 index 0000000..ffea971 --- /dev/null +++ b/proyecto/proyecto-carlos_bodero/app.py @@ -0,0 +1,111 @@ +import os +import google.generativeai as genai +import smtplib +from email.message import EmailMessage +from flask import Flask, render_template, request, jsonify +from dotenv import load_dotenv +from sqlalchemy import create_engine, Column, Integer, String, Text +from sqlalchemy.orm import declarative_base, sessionmaker + +# Carga variables de entorno +load_dotenv() +GEMINI_API_KEY = os.getenv("API_KEY_GEMINI") +USUARIO_CORREO = os.getenv("USUARIO_CORREO") +CONTRASENA_CORREO = os.getenv("CONTRASENA_CORREO") + + +if not GEMINI_API_KEY: + raise Exception("La API Key de Gemini no está configurada en el archivo .env.") + + +modelo_en_uso = None + +modelos = [ + "gemini-2.5-flash", + "gemini-2.5-flash-latest", + "gemini-2.5-flash-002", + "gemini-2.5-pro", + "gemini-2.5-pro-latest", + "gemini-2.5-pro-002", + "gemini-1.5-flash", + "gemini-1.5-flash-latest", + "gemini-1.5-flash-002", + "gemini-1.5-pro", + "gemini-1.5-pro-latest", + "gemini-1.5-pro-002", +] + +# Datos de tu cuenta Gmail +usuario_mail = USUARIO_CORREO +contrasena = CONTRASENA_CORREO + +genai.configure(api_key=GEMINI_API_KEY) +modelo_en_uso = modelos[0] + +# Flask y DB setup +app = Flask(__name__) +#DATABASE_URL = "sqlite:///chat.db" +DATABASE_URL = "sqlite:///proyecto/proyecto-carlos_bodero/chat.db" +engine = create_engine(DATABASE_URL, connect_args={"check_same_thread": False}) +Base = declarative_base() + +# Modelo de Chat +class Chat(Base): + __tablename__ = 'chat' + id = Column(Integer, primary_key=True) + usuario_nombre = Column(String(100)) + correo = Column(String(100)) + texto = Column(Text) + +Base.metadata.create_all(engine) +Session = sessionmaker(bind=engine) +db_session = Session() + +def consultar_gemini(mensaje): + model = genai.GenerativeModel(modelo_en_uso) + try: + response = model.generate_content(mensaje) + return response.text + except Exception as e: + return f"Error consultando Gemini: {str(e)}" + +def enviarCorreo(usuario,correo,mensaje): + # Configuración del mensaje + msg = EmailMessage() + msg['Subject'] = "Chat " + str(usuario) + msg['From'] = 'monitorcbo4@gmail.com' + msg['To'] = str(correo) + msg.set_content(mensaje) + try: + with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp: + smtp.login(usuario_mail, contrasena) + smtp.send_message(msg) + print("Correo enviado correctamente.") + except Exception as e: + print("Error al enviar el correo:", e) + +@app.route("/") +def index(): + return render_template("index.html") + +@app.route("/chat", methods=["POST"]) +def chat(): + data = request.json + user_message = data.get("message") + respuesta_gemini = consultar_gemini(user_message) + return jsonify({"response": respuesta_gemini}) + +@app.route("/guardar", methods=["POST"]) +def guardar(): + data = request.json + nombre = data.get("nombre") + correo = data.get("email") + texto_chat = data.get("chat") + chat_entry = Chat(usuario_nombre=nombre, correo=correo, texto=texto_chat) + db_session.add(chat_entry) + db_session.commit() + enviarCorreo(nombre,correo,texto_chat) + return jsonify({"status": "ok"}) + +if __name__ == "__main__": + app.run("0.0.0.0",debug=True) diff --git a/proyecto/proyecto-carlos_bodero/chat.db b/proyecto/proyecto-carlos_bodero/chat.db new file mode 100644 index 0000000000000000000000000000000000000000..23973e5d5645fd8c3a500d7b21a9a364c859c55a GIT binary patch literal 8192 zcmeI1&u<$=6vx+TRa8R-9HNQ?(z{SOi)Gm~t{ z2{%eX{2Lr|;DEUG>OX>ihwp5hL{5u(M>F!S*E4V4kI(z=VdUrE4y9+B8e0fY_mfYO zS}l1P?qY=B?;AIh)^8hkU{(8gn&1;hBoGNi0+B!@5D7#Akw7F6 z2}A;sKqT-#Ch+s!+6Q;n*K4mn^~V7 zjA;ManD!5c!zR^lm#!36njf?&CYI^D-l+emH)?d+?TxUU8Ee_RHSPJt8yXM39|xm@ z(caVE=mk9)yr726H|o{d{Kkj(k~{x=bcU}uB7sOC5{LvMfk+?{hy)^mNFezoxp6D` zZ0px2J)K(?h0)R*n@!AD4`+pts+F1Ie5p(QQYd0atVoowqMS(y+EY^GqQ1+8)Ur#1 z>#K`Du^jfL=_6CHHEG(aU-&#-arG>hj{nou`D&BA6}il$(LxohJvXmAua8ABk&81; z4jD2DZ{?&sU1nS5)1qFfe=M0?Nqi!mXPrqwr=g&#I9So*jh2}RWwP_ak(pTBozdjE zz!Mg7o(TNQh%|6=Q3i0FFLP;}aaCGyHnm_WOkB=hZA8A+UdMLvM`&Z3<_2Ax!DlB_ zbMAj>7TQ#QUYUxyH7Bw_A1mNhEsok>cRO2jIPOzpEV-B)I@I!*t%FSZ#@JkHk(-Sc zjW{dWLIk0FP&hK+!6zc~g61V7-Z2h%s4z zKL&s+T32cf^Ie*Tqi85e>KycNtNM$H{*hFCsaBA>G(~1kksa)J%|x=* zCOlVr)3jL?QV5$Z{tg(Sd&m(6iU2BOR~fHFZqgLBSI9ft!Ik5=2efeD#jnnGr(N-0 zsuHQJY=_MhQM^1Bgj68w%xGtn%#p#7fI6wvP@h=*g?r9!UM|iYHRgCr`6YUzOf!(* z5nd>KBji&d=ZiN%90 + + + + Chat con Gemini + + + +
+

Chat con Gemini IA

+
+ + +
+
+ + + +
+ + + From 0763bf951cb703aafe5f034cac8e855fee803932 Mon Sep 17 00:00:00 2001 From: Lizeth Albacura Date: Mon, 14 Jul 2025 01:09:30 -0500 Subject: [PATCH 71/95] Clase 3.Deber. Lizeth Albacura --- clase3/Lizeth_Albacura/Pokeapi.py | 65 +++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 clase3/Lizeth_Albacura/Pokeapi.py diff --git a/clase3/Lizeth_Albacura/Pokeapi.py b/clase3/Lizeth_Albacura/Pokeapi.py new file mode 100644 index 0000000..724706d --- /dev/null +++ b/clase3/Lizeth_Albacura/Pokeapi.py @@ -0,0 +1,65 @@ +from flask import Flask, render_template, request +import requests +import math + +app = Flask(__name__) + +POKEMONS_PER_PAGE = 9 + +@app.route('/', methods=['GET']) +def index(): + search_query = request.args.get('search', '').lower() + page = int(request.args.get('page', 1)) + + offset = (page - 1) * POKEMONS_PER_PAGE + url = f'https://pokeapi.co/api/v2/pokemon?limit={POKEMONS_PER_PAGE}&offset={offset}' + response = requests.get(url) + + if response.status_code != 200: + return "Error al obtener los Pokémon" + + results = response.json() + all_pokemon = [] + + for poke in results['results']: + poke_data = requests.get(poke['url']).json() + name = poke_data['name'] + + # Aplica el filtro de búsqueda si hay un término, y lo incluye si coincide + if search_query and search_query not in name: + continue + + held_items = [item['item']['name'] for item in poke_data['held_items']] if poke_data['held_items'] else ['None'] + + pokemon = { + 'name': name.upper(), + 'front_sprite': poke_data['sprites']['front_default'], + 'back_sprite': poke_data['sprites']['back_default'], + 'front_image': poke_data['sprites']['other']['official-artwork']['front_default'], + 'back_image': poke_data['sprites']['other']['official-artwork'].get('back_default', None), + 'height': poke_data['height'], + 'weight': poke_data['weight'], + 'species': poke_data['species']['name'].capitalize(), + 'types': [t['type']['name'].capitalize() for t in poke_data['types']], + 'is_default': poke_data['is_default'], + 'moves': [move['move']['name'] for move in poke_data['moves']] if poke_data['moves'] else ['None'], + 'abilities': [a['ability']['name'] for a in poke_data['abilities']], + 'base_experience': poke_data['base_experience'], + 'order': poke_data['order'], + 'held_items': held_items, + 'stats': {s['stat']['name']: s['base_stat'] for s in poke_data['stats']}, + } + + all_pokemon.append(pokemon) + + total = 100 + total_pages = math.ceil(total / POKEMONS_PER_PAGE) + + return render_template('index.html', + pokemon_list=all_pokemon, + search_query=search_query, + page=page, + total_pages=total_pages) + +if __name__ == '__main__': + app.run(debug=True) \ No newline at end of file From a28e1dc430170476e00edfbbfba85033e9d2bf6a Mon Sep 17 00:00:00 2001 From: Lizeth Albacura Date: Mon, 14 Jul 2025 01:10:12 -0500 Subject: [PATCH 72/95] Index. html para el poke --- clase3/Lizeth_Albacura/templates/index.html | 96 +++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 clase3/Lizeth_Albacura/templates/index.html diff --git a/clase3/Lizeth_Albacura/templates/index.html b/clase3/Lizeth_Albacura/templates/index.html new file mode 100644 index 0000000..6a851e3 --- /dev/null +++ b/clase3/Lizeth_Albacura/templates/index.html @@ -0,0 +1,96 @@ + + + + + Pokédex + + + + +
+

Pokédex

+ +
+ + +
+ +
+ {% for pokemon in pokemon_list %} +
+
+
+
{{ pokemon.name }}
+ + {% if pokemon.front_sprite %} + Frente + {% endif %} + {% if pokemon.back_sprite %} + Espalda + {% endif %} +
+ {% if pokemon.front_image %} + Arte frontal + {% endif %} + {% if pokemon.back_image %} + Arte trasero + {% endif %} + +
    +
  • Altura: {{ pokemon.height }}
  • +
  • Peso: {{ pokemon.weight }}
  • +
  • Especie: {{ pokemon.species }}

    +
  • Tipos: {{ pokemon.types | join(', ') }}

    +
  • + Forma estándar: {{ 'Sí' if pokemon.is_default else 'No' }} +
  • Experiencia Base: {{ pokemon.base_experience }}
  • +
  • Orden:{{ pokemon.order}}
  • +
  • Habilidades: {{ pokemon.abilities | join(', ') }}
  • +
  • Ítems: {{ pokemon.held_items | join(', ') }}
  • +
  • Movimientos: {{ pokemon.moves[:5] | join(', ') }}{% if pokemon.moves|length > 5 %}, ...{% endif %}
  • + +
  • + Stats: +
      + {% for stat, value in pokemon.stats.items() %} +
    • {{ stat }}: {{ value }}
    • + {% endfor %} +
    +
  • +
+
+
+
+ {% endfor %} +
+ +
+ {% if page > 1 %} + ← Anterior + {% endif %} + Página {{ page }} de {{ total_pages }} + {% if page < total_pages %} + Siguiente → + {% endif %} +
+
+ + + + \ No newline at end of file From dfe5a4ecba72881a809bd94c8a85062780293c67 Mon Sep 17 00:00:00 2001 From: Calvopina Montenegro Christian Santiago Date: Mon, 14 Jul 2025 10:26:19 -0500 Subject: [PATCH 73/95] =?UTF-8?q?Clase=201=20-=20Santiago=20Calvopi=C3=B1a?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clase1/santiago_calvopina.py | 46 ++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 clase1/santiago_calvopina.py diff --git a/clase1/santiago_calvopina.py b/clase1/santiago_calvopina.py new file mode 100644 index 0000000..6be382d --- /dev/null +++ b/clase1/santiago_calvopina.py @@ -0,0 +1,46 @@ +from datetime import datetime + +def verificar_primo(num): + if num <= 1: + return False + for divisor in range(2, num): + if num % divisor == 0: + return False + return True + +def listar_primos(limite): + return [numero for numero in range(2, limite + 1) if verificar_primo(numero)] + +def mostrar_menu(): + while True: + print("\n=== MENÚ PRINCIPAL ===") + print("1. Mostrar una frase motivacional") + print("2. Mostrar la fecha actual") + print("3. Salir del programa") + + opcion = input("Selecciona una opción (1-3): ") + + if opcion == '1': + print("La vida es un viaje, no un destino..") + elif opcion == '2': + ahora = datetime.now() + print("La Fecha y hora actual es:", ahora.strftime("%d/%m/%Y %H:%M:%S")) + elif opcion == '3': + print("¡CHAIIITOO!") + break + else: + print("La Opción no es válida. Ingresa una opción valida.") + +if __name__ == "__main__": + print("Iniciando ...") + try: + numero_usuario = int(input("Ingresa un número positivo mayor que 1: ")) + if numero_usuario > 1: + lista_primos = listar_primos(numero_usuario) + print(f"Los números primos hasta {numero_usuario} son: {lista_primos}") + else: + print("El número debe ser mayor que 1.") + except ValueError: + print("Debe ingresar un número entero válido.") + + mostrar_menu() \ No newline at end of file From e161853fe5f60533e80e3a9e134bb8001cca520a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Santiago=20Calvopi=C3=B1a?= Date: Mon, 14 Jul 2025 11:14:24 -0500 Subject: [PATCH 74/95] =?UTF-8?q?Clase=202=20-=20Santiago=20Calvopi=C3=B1a?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clase2/santiago_calvopina.py | 108 +++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 clase2/santiago_calvopina.py diff --git a/clase2/santiago_calvopina.py b/clase2/santiago_calvopina.py new file mode 100644 index 0000000..f78cac3 --- /dev/null +++ b/clase2/santiago_calvopina.py @@ -0,0 +1,108 @@ +""" +Autor: Santiago Calvopiña +Descripción: Archivo con ejercicios de objetos, listas/diccionarios y POO con trivia en Python. +""" + +# ////////////////////////////////// Ejercicio 1: Objetos ////////////////////////////////// + +# Objeto: Computadora + +""" Atributos: +- marca: fabricante de la computadora +- sistema_operativo: sistema operativo instalado +- ram: memoria RAM en GB +- almacenamiento: capacidad del disco en GB + +Métodos: +- encender(): imprime que la computadora está encendida +- apagar(): imprime que la computadora se está apagando +- mostrar_info(): muestra detalles de la computadora + +Este objeto fue elegido porque es algo que usamos a diario y es fácil de relacionar con atributos y acciones reales. """ + + + +class Computadora: + def __init__(self, marca, sistema_operativo, ram, almacenamiento): + self.marca = marca + self.sistema_operativo = sistema_operativo + self.ram = ram + self.almacenamiento = almacenamiento + + def encender(self): + print(f"La computadora {self.marca} se está encendiendo...") + + def apagar(self): + print(f"La computadora {self.marca} se está apagando...") + + def mostrar_info(self): + print(f"Marca: {self.marca}") + print(f"Sistema Operativo: {self.sistema_operativo}") + print(f"RAM: {self.ram} GB") + print(f"Almacenamiento: {self.almacenamiento} GB") + +# ////////////////////////////////// Ejercicio 2: Listas y Diccionarios ////////////////////////////////// + +peliculas_favoritas = ["Interestelar", "Coco", "Matrix"] + +info_peliculas = [ + {"titulo": "Interestelar", "genero": "Ciencia Ficción", "anio": 2014}, + {"titulo": "Coco", "genero": "Animación", "anio": 2017}, + {"titulo": "Matrix", "genero": "Acción", "anio": 1999} +] + +print("\n Mis películas favoritas:") +print(peliculas_favoritas) + +print("\n Información de las películas:") +for peli in info_peliculas: + print(peli) + +# Operaciones +print("\n Operaciones con diccionarios:") +info_peliculas[1]["anio"] = 2018 +nueva_pelicula = {"titulo": "Inception", "genero": "Ciencia Ficción", "anio": 2010} +info_peliculas.append(nueva_pelicula) +info_peliculas.pop(0) + +print("Después de las modificaciones:") +for peli in info_peliculas: + print(peli) + +# ////////////////////////////////// Ejercicio 3: Trivia con POO ////////////////////////////////// + +class Pregunta: + def __init__(self, enunciado, opciones, respuesta_correcta): + self.enunciado = enunciado + self.opciones = opciones + self.respuesta_correcta = respuesta_correcta + + def mostrar(self): + print(f"\n {self.enunciado}") + for i, opcion in enumerate(self.opciones, start=1): + print(f"{i}. {opcion}") + + def verificar(self, eleccion_usuario): + return eleccion_usuario == self.respuesta_correcta + +# Pregunta de ejemplo +pregunta = Pregunta( + "¿Cuál es el lenguaje que se ejecuta en el navegador?", + ["Python", "C++", "JavaScript", "Java"], + 3 +) + +pregunta.mostrar() +respuesta_usuario = int(input("Elige la opción correcta (1-4): ")) + +if pregunta.verificar(respuesta_usuario): + print(" ¡Respuesta correcta!") +else: + print(" Respuesta incorrecta.") + +# Impresión clase Computadora +print("\n Objeto Computadora:") +mi_pc = Computadora("Lenovo", "Windows 11", 16, 512) +mi_pc.mostrar_info() +mi_pc.encender() +mi_pc.apagar() \ No newline at end of file From b6c50c8d6012c2b2a70b9f846b3adb599e5ff1c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Santiago=20Calvopi=C3=B1a?= Date: Mon, 14 Jul 2025 11:43:29 -0500 Subject: [PATCH 75/95] =?UTF-8?q?Clase=202=20-=20Santiago=20Calvopi=C3=B1a?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clase2/santiago_calvopina.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/clase2/santiago_calvopina.py b/clase2/santiago_calvopina.py index f78cac3..fc1d3fc 100644 --- a/clase2/santiago_calvopina.py +++ b/clase2/santiago_calvopina.py @@ -1,8 +1,3 @@ -""" -Autor: Santiago Calvopiña -Descripción: Archivo con ejercicios de objetos, listas/diccionarios y POO con trivia en Python. -""" - # ////////////////////////////////// Ejercicio 1: Objetos ////////////////////////////////// # Objeto: Computadora @@ -85,7 +80,7 @@ def mostrar(self): def verificar(self, eleccion_usuario): return eleccion_usuario == self.respuesta_correcta -# Pregunta de ejemplo +# Pregunta pregunta = Pregunta( "¿Cuál es el lenguaje que se ejecuta en el navegador?", ["Python", "C++", "JavaScript", "Java"], From ade804998ac6e9e37a56578adf9a782bcf5f1041 Mon Sep 17 00:00:00 2001 From: Jorge Date: Mon, 14 Jul 2025 11:52:48 -0500 Subject: [PATCH 76/95] PROYECTO JORGE GUATO --- proyecto/jorge_guato/app.py | 186 +++++++++++++++++++++++++++++++++ proyecto/jorge_guato/chat.db | Bin 0 -> 16384 bytes proyecto/jorge_guato/readme.md | 12 +++ 3 files changed, 198 insertions(+) create mode 100644 proyecto/jorge_guato/app.py create mode 100644 proyecto/jorge_guato/chat.db create mode 100644 proyecto/jorge_guato/readme.md diff --git a/proyecto/jorge_guato/app.py b/proyecto/jorge_guato/app.py new file mode 100644 index 0000000..84132d7 --- /dev/null +++ b/proyecto/jorge_guato/app.py @@ -0,0 +1,186 @@ +import telebot +from telebot.types import ReplyKeyboardMarkup, KeyboardButton, Message +import sqlite3 +import json +import os +from dotenv import load_dotenv + +# Cargar variables de entorno +load_dotenv() +BOT_TOKEN = os.getenv("BOT_TOKEN") + +# Inicializar bot +bot = telebot.TeleBot(BOT_TOKEN) + +# Base de datos + +def init_db(): + conn = sqlite3.connect("chat.db") + c = conn.cursor() + c.execute(''' + CREATE TABLE IF NOT EXISTS pedidos ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER, + nombre TEXT, + telefono TEXT, + email TEXT, + direccion TEXT, + productos TEXT, + total REAL, + timestamp DATETIME DEFAULT CURRENT_TIMESTAMP + ) + ''') + conn.commit() + conn.close() + +def guardar_pedido(user_id, datos): + conn = sqlite3.connect("chat.db") + c = conn.cursor() + c.execute(''' + INSERT INTO pedidos (user_id, nombre, telefono, email, direccion, productos, total) + VALUES (?, ?, ?, ?, ?, ?, ?) + ''', ( + user_id, + datos["nombre"], + datos["telefono"], + datos["email"], + datos["direccion"], + json.dumps(datos["productos"]), + datos["total"] + )) + conn.commit() + conn.close() + +# Datos temporales por usuario +usuarios = {} + +# Estados +ESTADOS = { + "MENU": "menu", + "PEDIDO_NOMBRE": "nombre", + "PEDIDO_TELEFONO": "telefono", + "PEDIDO_EMAIL": "email", + "PEDIDO_DIRECCION": "direccion" +} + +# Productos +PRODUCTOS = { + "1": {"nombre": "Vino de Uva Premium", "precio": 25.00}, + "2": {"nombre": "Vino de Morti\u00f1o", "precio": 30.00}, + "3": {"nombre": "Vino de Ar\u00e1ndano", "precio": 28.00}, + "4": {"nombre": "Chocolate Cl\u00e1sico", "precio": 8.00}, + "5": {"nombre": "Chocolate Premium", "precio": 12.00}, + "6": {"nombre": "Chocolate Especial", "precio": 15.00} +} + +# Saludo inicial +@bot.message_handler(commands=["start"]) +def start(message: Message): + user_id = message.from_user.id + usuarios[user_id] = {"estado": ESTADOS["MENU"], "carrito": []} + + markup = ReplyKeyboardMarkup(resize_keyboard=True) + markup.add("1. Ver Cat\u00e1logo de Vinos", "2. Ver Cat\u00e1logo de Chocolates", "0. Salir") + + texto = """ +👋 *\u00a1Hola! Bienvenido a La R\u00fastica* 🍷🍫 + +1. Ver Cat\u00e1logo de Vinos +2. Ver Cat\u00e1logo de Chocolates +0. Salir + +Elige una opci\u00f3n: + """ + bot.send_message(user_id, texto, reply_markup=markup, parse_mode="Markdown") + +# Mostrar cat\u00e1logo + +def mostrar_catalogo_vinos(user_id): + texto = "🍷 *Cat\u00e1logo de Vinos*\n" + texto += "1. Vino de Uva Premium - $25.00\n" + texto += "2. Vino de Morti\u00f1o - $30.00\n" + texto += "3. Vino de Ar\u00e1ndano - $28.00\n" + texto += "\nEscribe el n\u00famero del producto para seleccionarlo, o 0 para salir." + bot.send_message(user_id, texto, parse_mode="Markdown") + +def mostrar_catalogo_chocolates(user_id): + texto = "🍫 *Chocolates La R\u00fastica*\n" + texto += "4. Chocolate Cl\u00e1sico - $8.00\n" + texto += "5. Chocolate Premium - $12.00\n" + texto += "6. Chocolate Especial - $15.00\n" + texto += "\nEscribe el n\u00famero del producto para seleccionarlo, o 0 para salir." + bot.send_message(user_id, texto, parse_mode="Markdown") + +# Agregar producto y pedir datos + +def agregar_y_pedir(user_id, codigo): + producto = PRODUCTOS.get(codigo) + if producto: + usuarios[user_id]["carrito"].append(producto) + total = sum(p["precio"] for p in usuarios[user_id]["carrito"]) + usuarios[user_id]["pedido"] = { + "productos": usuarios[user_id]["carrito"], + "total": total + } + usuarios[user_id]["estado"] = ESTADOS["PEDIDO_NOMBRE"] + bot.send_message(user_id, f"🛒 {producto['nombre']} a\u00f1adido al carrito.") + bot.send_message(user_id, "👤 Ingresa tu nombre completo o escribe 0 para salir:") + else: + bot.send_message(user_id, "Producto no v\u00e1lido.") + +# Manejador de mensajes + +@bot.message_handler(func=lambda m: True) +def handle_message(message: Message): + user_id = message.from_user.id + texto = message.text.strip() + + if user_id not in usuarios: + usuarios[user_id] = {"estado": ESTADOS["MENU"], "carrito": []} + + if texto == "0": + usuarios[user_id] = {"estado": ESTADOS["MENU"], "carrito": []} + bot.send_message(user_id, "❌ Proceso cancelado.") + return start(message) + + estado = usuarios[user_id]["estado"] + + if estado == ESTADOS["MENU"]: + if texto == "1. Ver Cat\u00e1logo de Vinos": + mostrar_catalogo_vinos(user_id) + elif texto == "2. Ver Cat\u00e1logo de Chocolates": + mostrar_catalogo_chocolates(user_id) + elif texto in PRODUCTOS: + agregar_y_pedir(user_id, texto) + else: + bot.send_message(user_id, "Por favor, selecciona una opci\u00f3n del men\u00fa.") + + elif estado == ESTADOS["PEDIDO_NOMBRE"]: + usuarios[user_id]["pedido"]["nombre"] = texto + usuarios[user_id]["estado"] = ESTADOS["PEDIDO_TELEFONO"] + bot.send_message(user_id, "📞 Ingresa tu tel\u00e9fono o escribe 0 para salir:") + + elif estado == ESTADOS["PEDIDO_TELEFONO"]: + usuarios[user_id]["pedido"]["telefono"] = texto + usuarios[user_id]["estado"] = ESTADOS["PEDIDO_EMAIL"] + bot.send_message(user_id, "📧 Ingresa tu email o escribe 0 para salir:") + + elif estado == ESTADOS["PEDIDO_EMAIL"]: + usuarios[user_id]["pedido"]["email"] = texto + usuarios[user_id]["estado"] = ESTADOS["PEDIDO_DIRECCION"] + bot.send_message(user_id, "📍 Ingresa tu direcci\u00f3n o escribe 0 para salir:") + + elif estado == ESTADOS["PEDIDO_DIRECCION"]: + usuarios[user_id]["pedido"]["direccion"] = texto + guardar_pedido(user_id, usuarios[user_id]["pedido"]) + bot.send_message(user_id, "✅ Pedido guardado correctamente. Te contactaremos pronto. 🎉") + usuarios[user_id] = {"estado": ESTADOS["MENU"], "carrito": []} + start(message) + else: + bot.send_message(user_id, "Usa el men\u00fa para continuar.") + +# Iniciar bot +if __name__ == "__main__": + init_db() + print("🤖 Bot iniciado...") + bot.infinity_polling() diff --git a/proyecto/jorge_guato/chat.db b/proyecto/jorge_guato/chat.db new file mode 100644 index 0000000000000000000000000000000000000000..d63dbe29c155a8dadad74c5c2119a836905e9e8c GIT binary patch literal 16384 zcmeI3&2Jk;6u@`wn1Gu)6(TZGRQl>mW9o#p*Qr}ysADgwAr8iIA_7Fwba#?$w7cW% zN7M@Skd}`VHzdRfMVx>W5)x7`NcEK?cg{#0koX69<0MWTIUGQMfH(H;?0mep&%g2I z&6~IU#-bf^*c86YLeP~>9%@2@H=%XGuEK8(tf?Zgz^nzsht~;hyw0!oQMq$ zdcwWyb7&iHo{!c@8DB53}lMI-6DByV%od3U815 z0h3sGFxZL>XdE2-Ygb+VC8Whe7Q^LUz;=d>_&n%DlJO9!KSp2r=84pE%J}oCpHiQv z-oi&JM1Tko0U|&IhyW2F0z`la5CJ0aKOs;{j4BDGdPP^%FE4-d{V$(=^ewD%AF3?u z9ynr4fW=|e_C(P11v=@tLr~BPb2D0LCSQd7Tp7Q`!orBuQa{o1@u#pV9CXD2w;CGU z>pq62Z+oWQVb1xA^qaN#pEswFpNUB=6UXM<5e_^5rG@-HSD(iDlaHP`qVN)W-F}$t z!FX~Y#o<-qZ(W6X+zQ#_9_}Fl15bMAK7$ZDEe3LSGPx{V+;lC*p?jsK{O|BN>(M1Tko0U|&I zhyW2F0z`la5CI}U1c<=Dk-&vmd`dk!#S(v3jc3)tGY*N~+5FUqGG0r4f)y1aKm>>Y z5g-CYfCvx)B0vO)01@~P6WG5Lzn~T!I0A==row(+ACZx&0%Qc2hE?K#Z4 z=S24HEt!2VYYO*HZ_2jy_Pd$GEQU-OGV)}AJR#7FV80V-+Gbv4a**j@YJx3rhOW(O z57uAkrxBbAOXqLMuyjG&e=#&^Naqf0u?wC?8<%MK6(pSuFEleexV*b-k?3?cY+-*z}}6amrYE ZIDi-Q;@pkW5ODJm^Z#kv3%AO7{Wn1gD{TM( literal 0 HcmV?d00001 diff --git a/proyecto/jorge_guato/readme.md b/proyecto/jorge_guato/readme.md new file mode 100644 index 0000000..6d7f27d --- /dev/null +++ b/proyecto/jorge_guato/readme.md @@ -0,0 +1,12 @@ +# Bot de Telegram - La Rustica + +Este proyecto implementa un chatbot en Telegram para una empresa de vinos y chocolates. + +## Funcionalidades + +- Saludo personalizado +- Menú interactivo con productos: + - Vinos de uva, mortiño y arándano + - Chocolates "La Rustica" +- Solicita cantidad y nombre del cliente +- Almacena los pedidos en una base de datos SQLite (`chat.db`) \ No newline at end of file From 8f21ef7b502e2e9e48c2b718d14f2f81dac1bb85 Mon Sep 17 00:00:00 2001 From: Jorge Date: Mon, 14 Jul 2025 12:38:48 -0500 Subject: [PATCH 77/95] Proyecto actualizacion --- proyecto/jorge_guato/app.py | 238 +++++++++++++++++------------------- 1 file changed, 115 insertions(+), 123 deletions(-) diff --git a/proyecto/jorge_guato/app.py b/proyecto/jorge_guato/app.py index 84132d7..268e62d 100644 --- a/proyecto/jorge_guato/app.py +++ b/proyecto/jorge_guato/app.py @@ -12,175 +12,167 @@ # Inicializar bot bot = telebot.TeleBot(BOT_TOKEN) -# Base de datos - -def init_db(): - conn = sqlite3.connect("chat.db") - c = conn.cursor() - c.execute(''' - CREATE TABLE IF NOT EXISTS pedidos ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - user_id INTEGER, - nombre TEXT, - telefono TEXT, - email TEXT, - direccion TEXT, - productos TEXT, - total REAL, - timestamp DATETIME DEFAULT CURRENT_TIMESTAMP - ) - ''') - conn.commit() - conn.close() - -def guardar_pedido(user_id, datos): - conn = sqlite3.connect("chat.db") - c = conn.cursor() - c.execute(''' - INSERT INTO pedidos (user_id, nombre, telefono, email, direccion, productos, total) - VALUES (?, ?, ?, ?, ?, ?, ?) - ''', ( - user_id, - datos["nombre"], - datos["telefono"], - datos["email"], - datos["direccion"], - json.dumps(datos["productos"]), - datos["total"] - )) - conn.commit() - conn.close() - -# Datos temporales por usuario -usuarios = {} - -# Estados -ESTADOS = { - "MENU": "menu", - "PEDIDO_NOMBRE": "nombre", - "PEDIDO_TELEFONO": "telefono", - "PEDIDO_EMAIL": "email", - "PEDIDO_DIRECCION": "direccion" -} - -# Productos -PRODUCTOS = { - "1": {"nombre": "Vino de Uva Premium", "precio": 25.00}, - "2": {"nombre": "Vino de Morti\u00f1o", "precio": 30.00}, - "3": {"nombre": "Vino de Ar\u00e1ndano", "precio": 28.00}, - "4": {"nombre": "Chocolate Cl\u00e1sico", "precio": 8.00}, - "5": {"nombre": "Chocolate Premium", "precio": 12.00}, - "6": {"nombre": "Chocolate Especial", "precio": 15.00} -} - -# Saludo inicial +# --- Clases --- +class DBHelper: + @staticmethod + def init(): + with sqlite3.connect("chat.db") as conn: + c = conn.cursor() + c.execute(''' + CREATE TABLE IF NOT EXISTS pedidos ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER, + nombre TEXT, + telefono TEXT, + email TEXT, + direccion TEXT, + productos TEXT, + total REAL, + timestamp DATETIME DEFAULT CURRENT_TIMESTAMP + ) + ''') + + @staticmethod + def guardar_pedido(user_id, datos): + with sqlite3.connect("chat.db") as conn: + c = conn.cursor() + c.execute(''' + INSERT INTO pedidos (user_id, nombre, telefono, email, direccion, productos, total) + VALUES (?, ?, ?, ?, ?, ?, ?) + ''', ( + user_id, + datos["nombre"], + datos["telefono"], + datos["email"], + datos["direccion"], + json.dumps(datos["productos"]), + datos["total"] + )) + +class PedidoManager: + ESTADOS = { + "MENU": "menu", + "PEDIDO_NOMBRE": "nombre", + "PEDIDO_TELEFONO": "telefono", + "PEDIDO_EMAIL": "email", + "PEDIDO_DIRECCION": "direccion" + } + + PRODUCTOS = { + "1": {"nombre": "Vino de Uva Premium", "precio": 25.00}, + "2": {"nombre": "Vino de Mortiño", "precio": 30.00}, + "3": {"nombre": "Vino de Arándano", "precio": 28.00}, + "4": {"nombre": "Chocolate Clásico", "precio": 8.00}, + "5": {"nombre": "Chocolate Premium", "precio": 12.00}, + "6": {"nombre": "Chocolate Especial", "precio": 15.00} + } + + usuarios = {} + + @classmethod + def reiniciar(cls, user_id): + cls.usuarios[user_id] = {"estado": cls.ESTADOS["MENU"], "carrito": []} + + @classmethod + def agregar_producto(cls, user_id, codigo): + producto = cls.PRODUCTOS.get(codigo) + if producto: + cls.usuarios[user_id]["carrito"].append(producto) + total = sum(p["precio"] for p in cls.usuarios[user_id]["carrito"]) + cls.usuarios[user_id]["pedido"] = {"productos": cls.usuarios[user_id]["carrito"], "total": total} + cls.usuarios[user_id]["estado"] = cls.ESTADOS["PEDIDO_NOMBRE"] + bot.send_message(user_id, f"🛒 {producto['nombre']} añadido al carrito.") + bot.send_message(user_id, "👤 Ingresa tu nombre completo o escribe 0 para salir:") + else: + bot.send_message(user_id, "Producto no válido.") + +# --- Bot Handlers --- @bot.message_handler(commands=["start"]) def start(message: Message): user_id = message.from_user.id - usuarios[user_id] = {"estado": ESTADOS["MENU"], "carrito": []} + PedidoManager.reiniciar(user_id) markup = ReplyKeyboardMarkup(resize_keyboard=True) - markup.add("1. Ver Cat\u00e1logo de Vinos", "2. Ver Cat\u00e1logo de Chocolates", "0. Salir") + markup.add("1. Ver Catálogo de Vinos", "2. Ver Catálogo de Chocolates", "0. Salir") texto = """ -👋 *\u00a1Hola! Bienvenido a La R\u00fastica* 🍷🍫 +👋 *¡Hola! Bienvenido a La Rústica* 🍷🍫 -1. Ver Cat\u00e1logo de Vinos -2. Ver Cat\u00e1logo de Chocolates +1. Ver Catálogo de Vinos +2. Ver Catálogo de Chocolates 0. Salir -Elige una opci\u00f3n: +Elige una opción: """ bot.send_message(user_id, texto, reply_markup=markup, parse_mode="Markdown") -# Mostrar cat\u00e1logo - def mostrar_catalogo_vinos(user_id): - texto = "🍷 *Cat\u00e1logo de Vinos*\n" + texto = "🍷 *Catálogo de Vinos*\n" texto += "1. Vino de Uva Premium - $25.00\n" - texto += "2. Vino de Morti\u00f1o - $30.00\n" - texto += "3. Vino de Ar\u00e1ndano - $28.00\n" - texto += "\nEscribe el n\u00famero del producto para seleccionarlo, o 0 para salir." + texto += "2. Vino de Mortiño - $30.00\n" + texto += "3. Vino de Arándano - $28.00\n" + texto += "\nEscribe el número del producto para seleccionarlo, o 0 para salir." bot.send_message(user_id, texto, parse_mode="Markdown") def mostrar_catalogo_chocolates(user_id): - texto = "🍫 *Chocolates La R\u00fastica*\n" - texto += "4. Chocolate Cl\u00e1sico - $8.00\n" + texto = "🍫 *Chocolates La Rústica*\n" + texto += "4. Chocolate Clásico - $8.00\n" texto += "5. Chocolate Premium - $12.00\n" texto += "6. Chocolate Especial - $15.00\n" - texto += "\nEscribe el n\u00famero del producto para seleccionarlo, o 0 para salir." + texto += "\nEscribe el número del producto para seleccionarlo, o 0 para salir." bot.send_message(user_id, texto, parse_mode="Markdown") -# Agregar producto y pedir datos - -def agregar_y_pedir(user_id, codigo): - producto = PRODUCTOS.get(codigo) - if producto: - usuarios[user_id]["carrito"].append(producto) - total = sum(p["precio"] for p in usuarios[user_id]["carrito"]) - usuarios[user_id]["pedido"] = { - "productos": usuarios[user_id]["carrito"], - "total": total - } - usuarios[user_id]["estado"] = ESTADOS["PEDIDO_NOMBRE"] - bot.send_message(user_id, f"🛒 {producto['nombre']} a\u00f1adido al carrito.") - bot.send_message(user_id, "👤 Ingresa tu nombre completo o escribe 0 para salir:") - else: - bot.send_message(user_id, "Producto no v\u00e1lido.") - -# Manejador de mensajes - @bot.message_handler(func=lambda m: True) def handle_message(message: Message): user_id = message.from_user.id texto = message.text.strip() - if user_id not in usuarios: - usuarios[user_id] = {"estado": ESTADOS["MENU"], "carrito": []} + if user_id not in PedidoManager.usuarios: + PedidoManager.reiniciar(user_id) if texto == "0": - usuarios[user_id] = {"estado": ESTADOS["MENU"], "carrito": []} + PedidoManager.reiniciar(user_id) bot.send_message(user_id, "❌ Proceso cancelado.") return start(message) - estado = usuarios[user_id]["estado"] + estado = PedidoManager.usuarios[user_id]["estado"] - if estado == ESTADOS["MENU"]: - if texto == "1. Ver Cat\u00e1logo de Vinos": + if estado == PedidoManager.ESTADOS["MENU"]: + if texto == "1. Ver Catálogo de Vinos": mostrar_catalogo_vinos(user_id) - elif texto == "2. Ver Cat\u00e1logo de Chocolates": + elif texto == "2. Ver Catálogo de Chocolates": mostrar_catalogo_chocolates(user_id) - elif texto in PRODUCTOS: - agregar_y_pedir(user_id, texto) + elif texto in PedidoManager.PRODUCTOS: + PedidoManager.agregar_producto(user_id, texto) else: - bot.send_message(user_id, "Por favor, selecciona una opci\u00f3n del men\u00fa.") + bot.send_message(user_id, "Por favor, selecciona una opción del menú.") - elif estado == ESTADOS["PEDIDO_NOMBRE"]: - usuarios[user_id]["pedido"]["nombre"] = texto - usuarios[user_id]["estado"] = ESTADOS["PEDIDO_TELEFONO"] - bot.send_message(user_id, "📞 Ingresa tu tel\u00e9fono o escribe 0 para salir:") + elif estado == PedidoManager.ESTADOS["PEDIDO_NOMBRE"]: + PedidoManager.usuarios[user_id]["pedido"]["nombre"] = texto + PedidoManager.usuarios[user_id]["estado"] = PedidoManager.ESTADOS["PEDIDO_TELEFONO"] + bot.send_message(user_id, "📞 Ingresa tu teléfono o escribe 0 para salir:") - elif estado == ESTADOS["PEDIDO_TELEFONO"]: - usuarios[user_id]["pedido"]["telefono"] = texto - usuarios[user_id]["estado"] = ESTADOS["PEDIDO_EMAIL"] + elif estado == PedidoManager.ESTADOS["PEDIDO_TELEFONO"]: + PedidoManager.usuarios[user_id]["pedido"]["telefono"] = texto + PedidoManager.usuarios[user_id]["estado"] = PedidoManager.ESTADOS["PEDIDO_EMAIL"] bot.send_message(user_id, "📧 Ingresa tu email o escribe 0 para salir:") - elif estado == ESTADOS["PEDIDO_EMAIL"]: - usuarios[user_id]["pedido"]["email"] = texto - usuarios[user_id]["estado"] = ESTADOS["PEDIDO_DIRECCION"] - bot.send_message(user_id, "📍 Ingresa tu direcci\u00f3n o escribe 0 para salir:") + elif estado == PedidoManager.ESTADOS["PEDIDO_EMAIL"]: + PedidoManager.usuarios[user_id]["pedido"]["email"] = texto + PedidoManager.usuarios[user_id]["estado"] = PedidoManager.ESTADOS["PEDIDO_DIRECCION"] + bot.send_message(user_id, "📍 Ingresa tu dirección o escribe 0 para salir:") - elif estado == ESTADOS["PEDIDO_DIRECCION"]: - usuarios[user_id]["pedido"]["direccion"] = texto - guardar_pedido(user_id, usuarios[user_id]["pedido"]) + elif estado == PedidoManager.ESTADOS["PEDIDO_DIRECCION"]: + PedidoManager.usuarios[user_id]["pedido"]["direccion"] = texto + DBHelper.guardar_pedido(user_id, PedidoManager.usuarios[user_id]["pedido"]) bot.send_message(user_id, "✅ Pedido guardado correctamente. Te contactaremos pronto. 🎉") - usuarios[user_id] = {"estado": ESTADOS["MENU"], "carrito": []} + PedidoManager.reiniciar(user_id) start(message) else: - bot.send_message(user_id, "Usa el men\u00fa para continuar.") + bot.send_message(user_id, "Usa el menú para continuar.") # Iniciar bot if __name__ == "__main__": - init_db() + DBHelper.init() print("🤖 Bot iniciado...") bot.infinity_polling() From 68c5b2df3d11f30d6fa8ce0b2864f2a635b3050c Mon Sep 17 00:00:00 2001 From: "gmtambaco@gmail.com" Date: Mon, 14 Jul 2025 13:19:25 -0500 Subject: [PATCH 78/95] Entrega Proyecto - Geomara Maribel Tambaco Tipantiza --- .../geomara_maribel_tambaco_tipantiza/app.py | 222 ++++++++++++++++++ .../geomara_maribel_tambaco_tipantiza/chat.db | Bin 0 -> 12288 bytes .../ver_datos.py | 12 + proyecto/george_penafiel/README.md | 3 - proyecto/george_penafiel/app.py | 99 -------- proyecto/george_penafiel/chat.db | Bin 20480 -> 0 bytes proyecto/george_penafiel/templates/index.html | 164 ------------- proyecto/pablo_colcha.py | 22 -- proyecto/readme.md | 175 -------------- 9 files changed, 234 insertions(+), 463 deletions(-) create mode 100644 proyecto/geomara_maribel_tambaco_tipantiza/app.py create mode 100644 proyecto/geomara_maribel_tambaco_tipantiza/chat.db create mode 100644 proyecto/geomara_maribel_tambaco_tipantiza/ver_datos.py delete mode 100644 proyecto/george_penafiel/README.md delete mode 100644 proyecto/george_penafiel/app.py delete mode 100644 proyecto/george_penafiel/chat.db delete mode 100644 proyecto/george_penafiel/templates/index.html delete mode 100644 proyecto/pablo_colcha.py delete mode 100644 proyecto/readme.md diff --git a/proyecto/geomara_maribel_tambaco_tipantiza/app.py b/proyecto/geomara_maribel_tambaco_tipantiza/app.py new file mode 100644 index 0000000..3a4a9ef --- /dev/null +++ b/proyecto/geomara_maribel_tambaco_tipantiza/app.py @@ -0,0 +1,222 @@ +from telegram import Update, ReplyKeyboardMarkup +from telegram.ext import ( + ApplicationBuilder, CommandHandler, MessageHandler, ContextTypes, + filters, ConversationHandler +) +import sqlite3 +import os +import re +import requests +from datetime import datetime +from dotenv import load_dotenv + +load_dotenv() + +BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN") +MAILJET_API_KEY = os.getenv("MAILJET_API_KEY") +MAILJET_SECRET_KEY = os.getenv("MAILJET_SECRET_KEY") +MAILJET_URL = os.getenv("MAILJET_URL") +MAILJET_FROM_NAME = os.getenv("MAILJET_FROM_NAME") +EMAIL_FROM = os.getenv("EMAIL_FROM") + +MENU, DATOS, AUTORIZACION, CONFIRMAR = range(4) + +# Cursos de capacitación que ofrece KonKito +CURSOS = { + "1. 📈 Marketing Digital para Emprendedores": 300, + "2. 💼 Gestión Financiera Básica": 250, + "3. 🚀 Estrategias de Crecimiento": 350, + "4. 🛠️ Herramientas para la Productividad": 200 +} + +conn = sqlite3.connect("chat.db", check_same_thread=False) +cursor = conn.cursor() +cursor.execute(""" +CREATE TABLE IF NOT EXISTS chat_data ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER, + username TEXT, + curso TEXT, + message_id INTEGER, + timestamp TEXT +) +""") +conn.commit() + +def guardar_interaccion(update: Update): + user = update.effective_user + username = user.username or "Sin username" + texto = update.message.text + message_id = update.message.message_id + timestamp = datetime.now().isoformat() + + cursor.execute(""" + INSERT INTO chat_data (user_id, username, curso, message_id, timestamp) + VALUES (?, ?, ?, ?, ?) + """, (user.id, username, texto, message_id, timestamp)) + conn.commit() + +async def start(update: Update, context: ContextTypes.DEFAULT_TYPE): + mensaje = ( + "🚀 Bienvenido al *Bot de Cursos de capacitación de KonKito*.\n\n" + "Selecciona un curso para continuar:" + ) + keyboard = [[curso] for curso in CURSOS.keys()] + await update.message.reply_text( + mensaje, + reply_markup=ReplyKeyboardMarkup(keyboard, resize_keyboard=True, one_time_keyboard=True), + parse_mode="Markdown" + ) + guardar_interaccion(update) + return MENU + +async def seleccionar_curso(update: Update, context: ContextTypes.DEFAULT_TYPE): + curso = update.message.text.strip() + if curso in CURSOS: + context.user_data["curso"] = curso + await update.message.reply_text( + "✍️ Por favor, escribe:\n1. Tu nombre completo\n2. Tu correo electrónico\n3. Una breve descripción de tu emprendimiento\n\nFormato:\n`Vilma Pérez - correo@ejemplo.com - Información de . . .`", + parse_mode="Markdown" + ) + guardar_interaccion(update) + return DATOS + else: + await update.message.reply_text("❌ Opción inválida. Usa el menú para elegir un curso.") + return MENU + +async def recibir_datos(update: Update, context: ContextTypes.DEFAULT_TYPE): + texto = update.message.text.strip() + email = extraer_email(texto) + if not email: + await update.message.reply_text( + "❌ No se detectó un correo válido. Escribe tus datos así:\n`Nombre - correo@ejemplo.com - descripción`", + parse_mode="Markdown" + ) + return DATOS + + context.user_data["datos"] = texto + keyboard = [["✅ Sí", "❌ No"]] + await update.message.reply_text( + "🔐 ¿Autorizas el uso de tus datos para contactarte y procesar tu inscripción?", + reply_markup=ReplyKeyboardMarkup(keyboard, resize_keyboard=True, one_time_keyboard=True) + ) + guardar_interaccion(update) + return AUTORIZACION + +async def autorizacion(update: Update, context: ContextTypes.DEFAULT_TYPE): + respuesta = update.message.text.lower() + if "sí" in respuesta or "si" in respuesta or "✅" in respuesta: + curso = context.user_data["curso"] + precio = CURSOS[curso] + keyboard = [["✅ Confirmar", "❌ Cancelar"]] + await update.message.reply_text( + f"💰 El precio del curso *{curso}* es de *${precio}*.\n¿Deseas confirmar tu inscripción?", + reply_markup=ReplyKeyboardMarkup(keyboard, resize_keyboard=True, one_time_keyboard=True), + parse_mode="Markdown" + ) + return CONFIRMAR + elif "no" in respuesta or "❌" in respuesta: + await update.message.reply_text("🚫 No podemos continuar sin tu autorización. Escribe /start para reiniciar.") + return ConversationHandler.END + else: + await update.message.reply_text("❌ Respuesta no válida. Usa el menú.") + return AUTORIZACION + +async def confirmar(update: Update, context: ContextTypes.DEFAULT_TYPE): + texto = update.message.text.lower() + if "confirmar" in texto or "✅" in texto: + curso = context.user_data["curso"] + descripcion = context.user_data["datos"] + correo = extraer_email(descripcion) + + mensaje = ( + f"🎉 *Gracias por inscribirte!*\n\n" + f"✅ *Curso:* {curso}\n" + f"📝 *Descripción:* {descripcion}\n" + f"💵 *Precio:* ${CURSOS[curso]}\n\n" + "Nos pondremos en contacto contigo pronto. 📧" + ) + + enviado = enviar_mailjet(context, correo, "Confirmación de inscripción", mensaje) + if enviado: + await update.message.reply_text("📧 Correo de confirmación enviado con éxito.") + else: + await update.message.reply_text("⚠️ Hubo un error al enviar el correo.") + + await update.message.reply_text("¿Necesitas algo más? Escribe /start para comenzar otra inscripción.") + return ConversationHandler.END + + elif "cancelar" in texto or "❌" in texto: + await update.message.reply_text("❌ Inscripción cancelada. Escribe /start para iniciar de nuevo.") + return ConversationHandler.END + + else: + await update.message.reply_text("❌ Respuesta inválida. Usa el menú.") + return CONFIRMAR + +def extraer_email(texto): + match = re.search(r'[\w\.-]+@[\w\.-]+\.\w+', texto) + return match.group(0) if match else None + +def enviar_mailjet(context, destinatario, asunto, contenido): + data = { + "Messages": [ + { + "From": { + "Email": EMAIL_FROM, + "Name": MAILJET_FROM_NAME + }, + "To": [ + { + "Email": destinatario, + "Name": "Cliente" + } + ], + "Subject": asunto, + "HTMLPart": f""" +
+

🎉 ¡Gracias por tu inscripción!

+

Curso: {context.user_data['curso']}

+

📝 Descripción: {context.user_data['datos']}

+

💵 Precio: ${CURSOS[context.user_data['curso']]}

+

Nos pondremos en contacto contigo pronto.

+
+ """ + } + ] + } + + try: + response = requests.post( + MAILJET_URL, + json=data, + auth=(MAILJET_API_KEY, MAILJET_SECRET_KEY), + timeout=(3.05, 5) + ) + print(f"Mailjet response: {response.status_code} - {response.text}") + return response.status_code == 200 + except Exception as e: + print(f"Error enviando correo con Mailjet: {e}") + return False + +def main(): + app = ApplicationBuilder().token(BOT_TOKEN).build() + + conv_handler = ConversationHandler( + entry_points=[CommandHandler("start", start)], + states={ + MENU: [MessageHandler(filters.TEXT & ~filters.COMMAND, seleccionar_curso)], + DATOS: [MessageHandler(filters.TEXT & ~filters.COMMAND, recibir_datos)], + AUTORIZACION: [MessageHandler(filters.TEXT & ~filters.COMMAND, autorizacion)], + CONFIRMAR: [MessageHandler(filters.TEXT & ~filters.COMMAND, confirmar)], + }, + fallbacks=[], + ) + + app.add_handler(conv_handler) + + print("🤖 Bot en ejecución...") + app.run_polling() + +if __name__ == "__main__": + main() diff --git a/proyecto/geomara_maribel_tambaco_tipantiza/chat.db b/proyecto/geomara_maribel_tambaco_tipantiza/chat.db new file mode 100644 index 0000000000000000000000000000000000000000..f51bebaff6f73eebf93cd021fbf8ddbb995bba03 GIT binary patch literal 12288 zcmeI2OKjXk7{|Ryn@u*^-SP}=Q)MnlsoI#a$M)FX14+s@1e%b?wrMC*n0TjK!`j~1 z-c&p!C=w5e0}==US-lb-L85FlZfkjV%m00@Gxk6k<2b**LCgB@!J>^?e9Yx@N8 zx&3+8tD|s5C}MWQ8z;aCZ~~kFC%_4C0-OLRzzJ{yoB$`VT?D2(y7~_s$Sj0psZN9C zI{U=C7|`V=b*=Wp&O@{1(MlOqM#qknL0jJ;mpJqwQ|>==IFs!k9Lzj(q7~CRMZ(1@ z3Ca3{jxBN4PlKTxV9lgJDo}Se;rTmN!y! zh+P*g&tYdL+}3y1mc9D13#wH3Q--oS4Dqm}R3v0d*i>{;g;3WOvNy7#Nmh~wetqke z7r-R(AElw~*1$b>%??Q&G>A_?*=hLHtjn+I)3oB zNIai3ta0i&kAce7Me}zHNcgTTwrsK~t2$J%I)7^vdnPG1il%(_X;2PApMgO;FqB1Emsu;_k~ZUS+r*NoY9hiqg!0PG-E356@=3$GuSwjEjIli5 zr``yCggTA7cP(L#vB8mOtPS6*Hm%SLfalj%&$+hc1;RI*ePvTJOi30Mh!E13Zi)t7 zOR`lW8gIV+%V#fvd#Ue}76C@2l{|Hp!&j~B6}w8R!q+hmsESB}iUv!&(!hKb7e^~p zR}5pNxQ$@GZ1dGkRTed*B12m$+#oPt#5@#5G$aEnsFY6w^Lbp%z-WpJ@#(%6m}1gP zw{^uN@3H^9WG=*vWkWRBDrX7Q8;$yU6X?@eV73;aW=IH^a%ng|X%k~pRYVyhO;aE0 ziNq(8XdHD@3r@&3IpM?2(OGUnQ)F6~HT@M=s95!)&>1L~(cw=*MN+-eMwsbEo6WLblxBO3L8 ze-H9}%tBH`#8M8!QYH<|voSGLL<#E%%F%E0nc{B(yYR*dZ~~kFC%_4C0-OLRzzJ{y YoB$`l32*}c7XtZA=U`_2{|Ezr0kRJ`ng9R* literal 0 HcmV?d00001 diff --git a/proyecto/geomara_maribel_tambaco_tipantiza/ver_datos.py b/proyecto/geomara_maribel_tambaco_tipantiza/ver_datos.py new file mode 100644 index 0000000..14afec9 --- /dev/null +++ b/proyecto/geomara_maribel_tambaco_tipantiza/ver_datos.py @@ -0,0 +1,12 @@ +import sqlite3 + +conn = sqlite3.connect("chat.db") +cursor = conn.cursor() + +cursor.execute("SELECT * FROM chat_data") +rows = cursor.fetchall() + +for row in rows: + print(row) + +conn.close() diff --git a/proyecto/george_penafiel/README.md b/proyecto/george_penafiel/README.md deleted file mode 100644 index 2e559c9..0000000 --- a/proyecto/george_penafiel/README.md +++ /dev/null @@ -1,3 +0,0 @@ -### 📝 Opción Desarrollada - -Este proyecto implementa la **Opción 2: Web App con Flask**. Se trata de un chatbot interactivo que funciona a través de una aplicación web, utilizando el framework Flask para la lógica del servidor y la API de Gemini para las respuestas. El historial de las conversaciones se almacena en una base de datos SQLite. \ No newline at end of file diff --git a/proyecto/george_penafiel/app.py b/proyecto/george_penafiel/app.py deleted file mode 100644 index 516f2ac..0000000 --- a/proyecto/george_penafiel/app.py +++ /dev/null @@ -1,99 +0,0 @@ - -from flask import Flask, render_template, request, redirect, url_for -import sqlite3 -import os -from dotenv import load_dotenv -import google.generativeai as ai - -load_dotenv() -API_KEY = os.getenv("API_KEY_GEMINI") - -if not API_KEY: - raise ValueError("La API_KEY_GEMINI no está configurada en el archivo .env") - -ai.configure(api_key=API_KEY) - -preferred_models = [ - "gemini-2.5-flash", - "gemini-2.5-flash-latest", - "gemini-2.5-flash-002", - "gemini-1.5-flash", - "gemini-1.5-flash-latest", - "gemini-1.5-flash-002", - -] - -model_to_use = None -for m in ai.list_models(): - if "generateContent" in m.supported_generation_methods: - for preferred in preferred_models: - if m.name == f"models/{preferred}": - model_to_use = m.name - break - if model_to_use: - break - -if not model_to_use: - raise Exception("No se encontró un modelo Gemini adecuado que soporte 'generateContent' de la lista preferida.") - -model = ai.GenerativeModel(model_to_use) -chat = model.start_chat() - - -app = Flask(__name__) -DATABASE = 'chat.db' - - -def init_db(): - conn = sqlite3.connect(DATABASE) - c = conn.cursor() - c.execute(''' - CREATE TABLE IF NOT EXISTS messages ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - user_message TEXT NOT NULL, - bot_response TEXT NOT NULL, - timestamp DATETIME DEFAULT CURRENT_TIMESTAMP - ) - ''') - conn.commit() - conn.close() - -init_db() - -@app.route('/') -def index(): - conn = sqlite3.connect(DATABASE) - c = conn.cursor() - c.execute("SELECT user_message, bot_response, timestamp FROM messages ORDER BY id ASC") - chat_history = c.fetchall() - conn.close() - return render_template('index.html', chat_history=chat_history) - -@app.route('/send', methods=['POST']) -def send(): - user_message = request.form['message'] - try: - response = chat.send_message(user_message) - bot_response = response.text - except Exception as e: - bot_response = f"Error: {e}" - - conn = sqlite3.connect(DATABASE) - c = conn.cursor() - c.execute("INSERT INTO messages (user_message, bot_response) VALUES (?, ?)", (user_message, bot_response)) - conn.commit() - conn.close() - - return redirect(url_for('index')) - -@app.route('/clear') -def clear(): - conn = sqlite3.connect(DATABASE) - c = conn.cursor() - c.execute("DELETE FROM messages") - conn.commit() - conn.close() - return redirect(url_for('index')) - -if __name__ == '__main__': - app.run(debug=True) \ No newline at end of file diff --git a/proyecto/george_penafiel/chat.db b/proyecto/george_penafiel/chat.db deleted file mode 100644 index 6937d0a13aab6558c022e62eec7eed2c1f2f0831..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20480 zcmeHP&u<&Y6<*4=g37U#HZ@WpFfcYyl$2>f62-<65V(rX%4+p15{1@>))?*%$&q(= z*0Z~E=$qW2Jr%w8=38~}q1CM@P&E86`ey{a<{6txxB&_jZ83yNiOZQc?|tuk zKUTx>{->KV6RfLr#530L-t#II??;Szp7$Z1SMV$!75s9!e1o6#{$D*l^yYtEyM|Fy z*Z<_rUdD@iI0PI54grUNL%<>65O4@M1RMem0f&G?;2R;ZJ2m~mojaAs8SjK5eHP;O z^+_t8#qi zt)I8q_70v0o12s4Ix2gjMVhEM6>l4tNeIh$l(2`exxKN~Vh>wCUOU)qvj+!zdszPo zUEFW4ZS9T}snHF7W%esV{>toEmxq_Dm;N#Jmx}iO@Qs}D9~*SM{{FOAd%4wsqgfz1 z6DjMfY+ErAXHvw0Vw^q8hbIhw&CsGN1u$d2irH;*H5k4w=iHuW?2Etd<|4odIDtjO zS1IHr!XLiwN?+Zl&)Z{SILl)uj<6DzI~!NWlK8-g_Ia3Vm8v>}B4JM%q4#H&7M7ZK z7e2bX*kB8btN6Fve7XLeY479DR~iBM$3o5|$Ob8bWc7HaU{eC+6brb9F?oz3ksTwo z@Zn-8BIen?8qkzT1tP>?$P#fc=ZB)sVr4(cl%@|l!#}6ME#UM9w43o(J;$w^kqZj-LJ0YA%fy6E%3t|p0Q8u2dJ;=QE>0D9h> zAFeh&`t8#7Y3~QW|Gr5L&?^~aeHHJTSBu*yGDuRQRZsJX`*L_{!j6Y;8@17Fw8rM$#=sOBb`#A0CdF&0;3dD1WSHntOyDR@e}Pw{RNi07gMMBx%2WGJFNK(0g?=0)P=d8V+7AYYutmX%1Zm_QZM4|CBo zVY8o8{Yfz|l%xkh2dR!wz>yveL?hdg&<6l0$wRIS+jrg!#ROe;FMHR+7l^7DPdfa)JCK22_kU_5|^r2s|Mg!PC%ZyU_^ZY zHq(j?`9Q;Z8E-a*l@D$MTFufNISj=6OoDR~QOL>dq9@U9*U34SknlR<&@rb@eQaM6ZN4JQ^o+Z-OPgpHbOktE(K~6XzZ4`+eG(!dz)E`tWHeev#7+{oX z`ap2NfwhV}z^T1P^Dtg9Ylv5B9;4jvzny=9?BZs}RK=r%@NzH{6UH|i6XEcrt770s zja?{FhN*cNRV-wKvszVTqLi5=jIIpROvSsPt`)IJa)TUEh#LkZo%7vkbG5nn%Xg=} zo5$}oz-B)DqYA%x)hd3wMYoxs(k*KY2BXE~DegS0`w41G+P}qq*2j)KI5bc>Mu^~k z?M?ZOm5;BYnco>}=Gi0l9L|l|2J4G3G1K8XJ~-dkd)Ur@{~BH^vtN4n=N=9Lhk!%C zA>a^j2si{B0uBL(fJ49`;1F;K{NEt(ZspR=O8G5@8+8BwEo}DB{%w|D{mkwEyZ!(1 zuOhhpfBLgB{SDXc|GWKvxBu_<|K0w-+y5VJy1V`VulvH1+y8g_|8D=^?f;+qqJ`W4 z|1aAAZ#GvO%XI%gb^Y(&>>OU)!y(`ha0oaA90Cpjhk!%CA>a^j2si{B0{?ReY~Q%z z)qY{l*No1K4<6ynG!6jJ=`uQfb&t09Qjy@OR#Y4`#fk04GEs&-ds^8y%#^QIuYeV-z?E(8gJcBk=+UuAnUrWRxG_jFvqfhO;U-p@kzJ ZbXuY-a0Ge$%uIO@eRMqJ0;`sr{{-8L)WHA% diff --git a/proyecto/george_penafiel/templates/index.html b/proyecto/george_penafiel/templates/index.html deleted file mode 100644 index 6e0076b..0000000 --- a/proyecto/george_penafiel/templates/index.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - 💬 Chatbot con Gemini AI - - - - - -
-
-
- Chatbot con Gemini AI -
-
- {% for user_msg, bot_msg, timestamp in chat_history %} -
- Tú: {{ user_msg }} -
{{ timestamp }}
-
-
- Bot: {{ bot_msg }} -
{{ timestamp }}
-
- {% endfor %} -
- -
- - Limpiar chat - -
- - - - - \ No newline at end of file diff --git a/proyecto/pablo_colcha.py b/proyecto/pablo_colcha.py deleted file mode 100644 index aa11b25..0000000 --- a/proyecto/pablo_colcha.py +++ /dev/null @@ -1,22 +0,0 @@ -from telebot import TeleBot - -TOKEN_BOT="TOKEN_BOT" -bot = tb.TeleBot(TOKEN_BOT) - -@bot.message_handler(commands=['start']) -def start(message): - print("Entro al start del bot") - bot.send_message(message.chat.id, "Bienbenido a la tienda de pablo ") - bot.register_next_step_handler(message,menu) - -def menu(message): - bot.send_message(message.chat.id, "Estos son lo paquetes que tenemos:\n 1. Paquete 1\n 2. Paquete 2\n 3. Paquete 3") - bot.register_next_step_handler(message, opciones) - -def opciones(message): - print(message) - bot.send_message(message.chat.id, "opcion no valida") - bot.register_next_step_handler(message) -if __name__ == '__main__': - print ("Bot iniciado") - bot.infinity_polling() \ No newline at end of file diff --git a/proyecto/readme.md b/proyecto/readme.md deleted file mode 100644 index ea8d743..0000000 --- a/proyecto/readme.md +++ /dev/null @@ -1,175 +0,0 @@ -# 🧠 Proyecto Final – Chatbot con Python - -## 🚀 Descripción General - - Este proyecto tiene como objetivo aplicar todos los conocimientos adquiridos durante el curso, desarrollando un chatbot funcional que puede ejecutarse en Telegram o desde una interfaz web utilizando Flask. El bot debe conectarse a una API de inteligencia artificial (como Gemini) y almacenar sus interacciones en una base de datos. Además, debe incluir una acción adicional como enviar correos, generar una imagen o exportar información. - -## 🎯 Objetivo del Proyecto - - Crear un chatbot inteligente que interactúe con usuarios, responda preguntas, tome decisiones o realice acciones específicas (como agendar una cita, enviar un mensaje de confirmación o generar una imagen). Puedes elegir una de estas dos opciones: - -### Opción 1 – 🤖 Bot de Telegram - - Desarrolla un chatbot en Telegram usando `python-telegram-bot` que: - - Salude al usuario - - Ofrezca un menú de servicios - - Tome datos de contacto o pedidos - - Envíe mensajes de confirmación o genere imágenes - - Guarde las conversaciones en SQLite o JSON - -### Opción 2 – 🌐 Web App con Flask - - Crea una aplicación SPA (Single Page App) que: - - Permita al usuario enviar preguntas - - Se conecte con una IA (Gemini API, HuggingFace, etc.) - - Muestre respuestas como un chat web - - Guarde las conversaciones en SQLite - - Permita limpiar el historial y generar confirmaciones - - --- - -## 📁 Organización del Proyecto - - 1. Dentro de la carpeta `proyecto`, crea una carpeta con tu nombre y apellido. - - proyecto/ - ├── nombre_apellido/ - │ ├── app.py - │ ├── templates/ - │ │ └── index.html (solo para Flask) - │ ├── static/ - │ │ └── styles.css (opcional) o puedes usar Boostrap - │ ├── chat.db - │ ├── .env - │ └── README.md - - - 2. Coloca tu código y recursos dentro de esa carpeta. - 3. Indica claramente en tu `README.md` qué opción desarrollaste (Telegram o Flask). - - --- - -## 🧰 Requisitos Generales - -### Librerías Comunes (para ambos proyectos) - - ```bash - pip install python-dotenv - ``` - -## 🚀 Opción 1: Telegram Bot - -### 🧩 Librerías necesarias - - ```bash - pip install python-telegram-bot - pip install python-dotenv - ``` - -### 🔐 .env (ejemplo) - - ```bash - TELEGRAM_BOT_TOKEN=tu_token_de_telegram - ``` - -### 📌 Pasos - - 1. **Crea tu bot en Telegram** usando [@BotFather](https://t.me/BotFather) y obtén tu token. - 2. **Instala las dependencias necesarias**: - - ```bash - pip install python-telegram-bot python-dotenv sqlite3 - ``` - - 3. **Crea un archivo .env y agrega tu token**: - - ```bash - TELEGRAM_BOT_TOKEN=TU_TOKEN_AQUI - ``` - - 4. **Guardar cada interacción en SQLite (usuario, mensaje, hora)**. - - 5. **Agregar una acción adicional:** - - 6. **Enviar correo de confirmación** - - 7. **Generar imagen o PDF** - -## 🚀 Opción 2: Flask + AI - -### 🧩 Librerías necesarias - - ```bash - pip install Flask google-generativeai python-dotenv - ``` - -### 🔐 .env (ejemplo) - - ```bash - API_KEY_GEMINI=tu_clave_api_gemini - ``` - -### 📌 Pasos - - 1. **Crear entorno virtual:** - - ```bash - python -m venv venv - source venv/bin/activate # Windows: venv\Scripts\activate - ``` - - 2. **Crear archivo app.py y cargar la clave desde .env**: - - 3. **Crear formularios HTML + Bootstrap para enviar mensajes**: - - 4. **Procesar las preguntas con Gemini y mostrar respuestas.** - - 5. **Guardar los mensajes en SQLite** - - 6. **Agregar acción adicional:** - - 7. **Generar imagen o PDF, enviar correo** - -## ✅ Requisitos para Aprobar - -| Requisito | Obligatorio | -|--------------------------------------|-------------| -| Chat funcional | ✅ | -| Conexión con API externa | ✅ | -| Base de datos funcional | ✅ | -| Acción extra (correo, imagen, etc.) | ✅ | -| Documentación en README.md | ✅ | -| Carpeta con nombre del estudiante | ✅ | - ---- - -## 📰 Entrega - -1. Crear una carpeta con tu nombre completo en la carpeta `proyecto/`. -2. Agregar código fuente, plantilla HTML (si aplica), `.env.example`, base de datos y `README.md`. -3. Hacer fork del repositorio oficial. -4. Subir tus cambios (commit & push). -5. Crear Pull Request con el título: - > Proyecto - TuNombre TuApellido - ---- - -## 🚀 Recomendaciones - -- Investiga APIs gratuitas para mejorar tu bot (HuggingFace, Fun Translations, etc.). -- Usa `flask-mail` para enviar correos desde Flask. -- Usa `sqlite3`, `pandas`, `reportlab` o `Pillow` para guardar y mostrar datos. -- Usa `dotenv` para evitar exponer tus tokens. -- Agrega paginación, exportación o estilo profesional a tu app. - ---- - -## 📈 Inspiración - -Este proyecto te prepara para desarrollar sistemas reales de atención al cliente, asistentes inteligentes o integraciones en aplicaciones productivas. - -Pon en práctica tus conocimientos de Python, APIs, bases de datos, interfaces y comunicación con usuarios. - ---- - -✨ ¡Mucho éxito y manos al código! ✨ From c361f509989b134e86663d590362567c15b07e0d Mon Sep 17 00:00:00 2001 From: Lizeth Albacura Date: Mon, 14 Jul 2025 14:14:04 -0500 Subject: [PATCH 79/95] Clase 3 Deber. Chiste1 --- clase3/Lizeth_Albacura/Chisteapi/Chiste.py | 22 +++++ .../Chisteapi/templates/index.html | 36 +++++++ clase3/Lizeth_Albacura/Pokeapi/Pokeapi.py | 61 ++++++++++++ .../Pokeapi/templates/index.html | 96 +++++++++++++++++++ 4 files changed, 215 insertions(+) create mode 100644 clase3/Lizeth_Albacura/Chisteapi/Chiste.py create mode 100644 clase3/Lizeth_Albacura/Chisteapi/templates/index.html create mode 100644 clase3/Lizeth_Albacura/Pokeapi/Pokeapi.py create mode 100644 clase3/Lizeth_Albacura/Pokeapi/templates/index.html diff --git a/clase3/Lizeth_Albacura/Chisteapi/Chiste.py b/clase3/Lizeth_Albacura/Chisteapi/Chiste.py new file mode 100644 index 0000000..51c3244 --- /dev/null +++ b/clase3/Lizeth_Albacura/Chisteapi/Chiste.py @@ -0,0 +1,22 @@ +from flask import Flask, render_template +import requests + +app = Flask(__name__) + +def obtener_chiste(): + url = "https://official-joke-api.appspot.com/jokes/random" + try: + response = requests.get(url) + response.raise_for_status() + data = response.json() + return data.get("setup"), data.get("punchline") + except requests.RequestException: + return "Error al obtener el chiste.", "" + +@app.route("/") +def index(): + setup, punchline = obtener_chiste() + return render_template("index.html", setup=setup, punchline=punchline) + +if __name__ == "__main__": + app.run(debug=True) diff --git a/clase3/Lizeth_Albacura/Chisteapi/templates/index.html b/clase3/Lizeth_Albacura/Chisteapi/templates/index.html new file mode 100644 index 0000000..e578b36 --- /dev/null +++ b/clase3/Lizeth_Albacura/Chisteapi/templates/index.html @@ -0,0 +1,36 @@ + + + + + Chiste del Día + + + +
+

😂 Chiste para alegrarte el día

+

{{ setup }}

+

{{ punchline }}

+
+ 🔄 Siguiente chiste +
+ + \ No newline at end of file diff --git a/clase3/Lizeth_Albacura/Pokeapi/Pokeapi.py b/clase3/Lizeth_Albacura/Pokeapi/Pokeapi.py new file mode 100644 index 0000000..7c6e09f --- /dev/null +++ b/clase3/Lizeth_Albacura/Pokeapi/Pokeapi.py @@ -0,0 +1,61 @@ +from flask import Flask, render_template, request +import requests +import math + +app = Flask(__name__) + +POKEMONS_PER_PAGE = 9 + +@app.route('/', methods=['GET']) +def index(): + search_query = request.args.get('search', '').lower() + page = int(request.args.get('page', 1)) + + offset = (page - 1) * POKEMONS_PER_PAGE + url = f'https://pokeapi.co/api/v2/pokemon?limit={POKEMONS_PER_PAGE}&offset={offset}' + response = requests.get(url) + + if response.status_code != 200: + return "Error al obtener los Pokémon" + + results = response.json() + all_pokemon = [] + + for poke in results['results']: + poke_data = requests.get(poke['url']).json() + name = poke_data['name'] + + if search_query in name: + held_items = [item['item']['name'] for item in poke_data['held_items']] if poke_data['held_items'] else ['None'] + species_name = poke_data['species']['name'] if 'species' in poke_data else 'Unknown' + + pokemon = { + 'name': name.upper(), + 'front_sprite': poke_data['sprites']['front_default'], + 'back_sprite': poke_data['sprites']['back_default'], + 'front_image': poke_data['sprites']['other']['official-artwork']['front_default'], + 'back_image': poke_data['sprites']['other']['official-artwork'].get('back_default', None), + 'height': poke_data['height'], + 'weight': poke_data['weight'], + 'moves': [move['move']['name'] for move in poke_data['moves']] if poke_data['moves'] else ['None'], + 'abilities': [a['ability']['name'] for a in poke_data['abilities']], + 'base_experience': poke_data['base_experience'], + 'order': poke_data['order'], + 'held_items': held_items, + 'types': [t['type']['name'] for t in poke_data['types']], + 'stats': {s['stat']['name']: s['base_stat'] for s in poke_data['stats']}, + 'species': species_name + } + all_pokemon.append(pokemon) + + total = 100 + total_pages = math.ceil(total / POKEMONS_PER_PAGE) + + return render_template('index.html', + pokemon_list=all_pokemon, + search_query=search_query, + page=page, + total_pages=total_pages) + +if __name__ == '__main__': + app.run(debug=True) diff --git a/clase3/Lizeth_Albacura/Pokeapi/templates/index.html b/clase3/Lizeth_Albacura/Pokeapi/templates/index.html new file mode 100644 index 0000000..6a851e3 --- /dev/null +++ b/clase3/Lizeth_Albacura/Pokeapi/templates/index.html @@ -0,0 +1,96 @@ + + + + + Pokédex + + + + +
+

Pokédex

+ +
+ + +
+ +
+ {% for pokemon in pokemon_list %} +
+
+
+
{{ pokemon.name }}
+ + {% if pokemon.front_sprite %} + Frente + {% endif %} + {% if pokemon.back_sprite %} + Espalda + {% endif %} +
+ {% if pokemon.front_image %} + Arte frontal + {% endif %} + {% if pokemon.back_image %} + Arte trasero + {% endif %} + +
    +
  • Altura: {{ pokemon.height }}
  • +
  • Peso: {{ pokemon.weight }}
  • +
  • Especie: {{ pokemon.species }}

    +
  • Tipos: {{ pokemon.types | join(', ') }}

    +
  • + Forma estándar: {{ 'Sí' if pokemon.is_default else 'No' }} +
  • Experiencia Base: {{ pokemon.base_experience }}
  • +
  • Orden:{{ pokemon.order}}
  • +
  • Habilidades: {{ pokemon.abilities | join(', ') }}
  • +
  • Ítems: {{ pokemon.held_items | join(', ') }}
  • +
  • Movimientos: {{ pokemon.moves[:5] | join(', ') }}{% if pokemon.moves|length > 5 %}, ...{% endif %}
  • + +
  • + Stats: +
      + {% for stat, value in pokemon.stats.items() %} +
    • {{ stat }}: {{ value }}
    • + {% endfor %} +
    +
  • +
+
+
+
+ {% endfor %} +
+ +
+ {% if page > 1 %} + ← Anterior + {% endif %} + Página {{ page }} de {{ total_pages }} + {% if page < total_pages %} + Siguiente → + {% endif %} +
+
+ + + + \ No newline at end of file From 1dab1e744160245176fd1abb0e77e57d7a560fc8 Mon Sep 17 00:00:00 2001 From: Wendy Moreno Date: Mon, 14 Jul 2025 16:59:35 -0500 Subject: [PATCH 80/95] Proyecto Final --- proyecto/Wendy_Moreno/Wendy_Moreno.py | 135 +++++++++++++++++++++ proyecto/Wendy_Moreno/mensajes.csv | 2 + proyecto/Wendy_Moreno/mensajes_asesor.xlsx | Bin 0 -> 5268 bytes 3 files changed, 137 insertions(+) create mode 100644 proyecto/Wendy_Moreno/Wendy_Moreno.py create mode 100644 proyecto/Wendy_Moreno/mensajes.csv create mode 100644 proyecto/Wendy_Moreno/mensajes_asesor.xlsx diff --git a/proyecto/Wendy_Moreno/Wendy_Moreno.py b/proyecto/Wendy_Moreno/Wendy_Moreno.py new file mode 100644 index 0000000..1b510fa --- /dev/null +++ b/proyecto/Wendy_Moreno/Wendy_Moreno.py @@ -0,0 +1,135 @@ +import os +import smtplib +from email.message import EmailMessage + +import openpyxl +from telebot import TeleBot, types + +# Configuración +TOKEN_BOT = '8130338428:AAFepXJ--dhup-dbLMpp_2ufU_kSwo48mJ8' +bot = TeleBot(TOKEN_BOT) + +SMTP_SERVER = 'smtp.gmail.com' +SMTP_PORT = 587 +SMTP_USER = 'wendymorenoc2024@gmail.com' +SMTP_PASSWORD = 'qwwcjnppcclzzrwh' +DESTINATARIO = 'wendymorenoc2024@gmail.com' + +EXCEL_FILE = 'mensajes_asesor.xlsx' + +# Crear archivo Excel si no existe +def crear_archivo_excel(): + if not os.path.exists(EXCEL_FILE): + wb = openpyxl.Workbook() + ws = wb.active + ws.title = "Mensajes" + ws.append(["Cédula/RUC", "Nombre", "Teléfono", "Mensaje"]) + wb.save(EXCEL_FILE) + +crear_archivo_excel() + +# Estado de usuarios +estado_usuario = {} +datos_usuario = {} + +@bot.message_handler(commands=['start']) +def start(message): + texto = "👋 *Bienvenido a Tributa Bien*\n\n¿En qué te puedo ayudar hoy?" + opciones = [ + "1️⃣ Apertura de RUC", + "2️⃣ Declaración de IVA", + "3️⃣ Declaración de RENTA", + "4️⃣ Patente Municipal Quito", + "5️⃣ Contactar a un Asesor" + ] + markup = types.ReplyKeyboardMarkup(resize_keyboard=True) + for opcion in opciones: + markup.add(opcion) + bot.send_message(message.chat.id, texto, parse_mode="Markdown", reply_markup=markup) + +@bot.message_handler(func=lambda msg: True) +def manejar_mensajes(message): + chat_id = message.chat.id + texto = message.text + + if chat_id in estado_usuario: + paso = estado_usuario[chat_id] + if paso == "cedula": + datos_usuario[chat_id]["cedula"] = texto + estado_usuario[chat_id] = "nombre" + bot.send_message(chat_id, "📛 Escribe tu *nombre completo*:", parse_mode="Markdown") + elif paso == "nombre": + datos_usuario[chat_id]["nombre"] = texto + estado_usuario[chat_id] = "telefono" + bot.send_message(chat_id, "📱 Escribe tu *número de teléfono*:", parse_mode="Markdown") + elif paso == "telefono": + datos_usuario[chat_id]["telefono"] = texto + estado_usuario[chat_id] = "mensaje" + bot.send_message(chat_id, "📝 Escribe tu *mensaje* de consulta:", parse_mode="Markdown") + elif paso == "mensaje": + datos_usuario[chat_id]["mensaje"] = texto + guardar_excel(datos_usuario[chat_id]) + enviar_email(datos_usuario[chat_id]) + bot.send_message(chat_id, "✅ ¡Mensaje enviado correctamente en breve un Asesor se comunicará contigo!") + del estado_usuario[chat_id] + del datos_usuario[chat_id] + return + + if texto.startswith("1️⃣"): + bot.send_message(chat_id, "📌 *Apertura de RUC*\n\nEn línea:\n- Firma electrónica\n- Cédula vigente\n- Factura de luz y agua\n- Correo electrónico\n- Monto de ventas\n- Actividad económica\n💵 Valor: 10 USD\n\nPresencial:\n- Autorización física firmada\n- Cédula\n- Dirección\n💵 Valor: 20 USD", parse_mode="Markdown") + elif texto.startswith("2️⃣"): + bot.send_message(chat_id, "📄 *Declaración de IVA*\n\n- Usuario y clave del SRI\n- Facturas de compras y ventas\n💵 Valor: según facturación", parse_mode="Markdown") + elif texto.startswith("3️⃣"): + bot.send_message(chat_id, "💰 *Declaración de RENTA*\n\n- Usuario y clave del SRI\n- Régimen y facturación\n💵 Valor: 20 USD", parse_mode="Markdown") + elif texto.startswith("4️⃣"): + bot.send_message(chat_id, "🏢 *Patente Municipal Quito*\n\n- Usuario y clave\n- Firma electrónica si aplica\n💵 Valor: 5 a 10 USD", parse_mode="Markdown") + elif texto.startswith("5️⃣"): + bot.send_message(chat_id, "📞 *Contactar a un Asesor*\n\nPor favor ingresa tu *cédula o RUC* para iniciar:", parse_mode="Markdown") + estado_usuario[chat_id] = "cedula" + datos_usuario[chat_id] = {} + else: + bot.send_message(chat_id, "❗ Usa el menú para elegir una opción válida.") + +def guardar_excel(datos): + try: + crear_archivo_excel() + wb = openpyxl.load_workbook(EXCEL_FILE) + ws = wb.active + ws.append([ + datos['cedula'], + datos['nombre'], + datos['telefono'], + datos['mensaje'] + ]) + wb.save(EXCEL_FILE) + print("✅ Mensaje guardado en Excel.") + except Exception as e: + print(f"❌ Error al guardar en Excel: {e}") + +def enviar_email(datos): + try: + msg = EmailMessage() + msg['Subject'] = f"Nuevo mensaje de {datos['nombre']} - {datos['cedula']}" + msg['From'] = SMTP_USER + msg['To'] = DESTINATARIO + + cuerpo = ( + f"Cédula o RUC: {datos['cedula']}\n" + f"Nombre: {datos['nombre']}\n" + f"Teléfono: {datos['telefono']}\n" + f"Mensaje:\n{datos['mensaje']}\n\n" + f"✅ Autorización para uso de datos otorgada por el usuario." + ) + msg.set_content(cuerpo) + + with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server: + server.starttls() + server.login(SMTP_USER, SMTP_PASSWORD) + server.send_message(msg) + print("📧 Correo enviado con éxito, en breve el Asesor se pondrá en contacto contigo.") + except Exception as e: + print(f"❌ Error al enviar correo: {e}") + +if __name__ == '__main__': + print("🤖 Bot ejecutándose...") + bot.infinity_polling() diff --git a/proyecto/Wendy_Moreno/mensajes.csv b/proyecto/Wendy_Moreno/mensajes.csv new file mode 100644 index 0000000..691869c --- /dev/null +++ b/proyecto/Wendy_Moreno/mensajes.csv @@ -0,0 +1,2 @@ +Cedula,Nombre,Telefono,Mensaje +1714653472,Wendy Moreno,0983894502,Quiero mas informacion diff --git a/proyecto/Wendy_Moreno/mensajes_asesor.xlsx b/proyecto/Wendy_Moreno/mensajes_asesor.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..9c16c8d06e5af98efce1885032960bd7aac6047a GIT binary patch literal 5268 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 TSrh<(gFGdX8C;t9=i7e(P9HLv literal 0 HcmV?d00001 From cffb5251659c937003c067f60829b4c63a432a0d Mon Sep 17 00:00:00 2001 From: DELL13 Date: Mon, 14 Jul 2025 20:40:36 -0500 Subject: [PATCH 81/95] Entrega Proyecto Final - Ronald Diaz --- entorno/Scripts/dotenv.exe | Bin 0 -> 108462 bytes entorno/Scripts/pyrsa-decrypt.exe | Bin 0 -> 108462 bytes entorno/Scripts/pyrsa-encrypt.exe | Bin 0 -> 108462 bytes entorno/Scripts/pyrsa-keygen.exe | Bin 0 -> 108460 bytes entorno/Scripts/pyrsa-priv2pub.exe | Bin 0 -> 108483 bytes entorno/Scripts/pyrsa-sign.exe | Bin 0 -> 108456 bytes entorno/Scripts/pyrsa-verify.exe | Bin 0 -> 108460 bytes entorno/Scripts/tqdm.exe | Bin 0 -> 108457 bytes proyecto/ronald_diaz/chat.db | Bin 0 -> 12288 bytes proyecto/ronald_diaz/inicio.py | 102 +++++++++++++++++++++ proyecto/ronald_diaz/templates/acerca.html | 67 ++++++++++++++ proyecto/ronald_diaz/templates/index.html | 92 +++++++++++++++++++ 12 files changed, 261 insertions(+) create mode 100644 entorno/Scripts/dotenv.exe create mode 100644 entorno/Scripts/pyrsa-decrypt.exe create mode 100644 entorno/Scripts/pyrsa-encrypt.exe create mode 100644 entorno/Scripts/pyrsa-keygen.exe create mode 100644 entorno/Scripts/pyrsa-priv2pub.exe create mode 100644 entorno/Scripts/pyrsa-sign.exe create mode 100644 entorno/Scripts/pyrsa-verify.exe create mode 100644 entorno/Scripts/tqdm.exe create mode 100644 proyecto/ronald_diaz/chat.db create mode 100644 proyecto/ronald_diaz/inicio.py create mode 100644 proyecto/ronald_diaz/templates/acerca.html create mode 100644 proyecto/ronald_diaz/templates/index.html diff --git a/entorno/Scripts/dotenv.exe b/entorno/Scripts/dotenv.exe new file mode 100644 index 0000000000000000000000000000000000000000..793faecfd3c6de88b4726c8f6f2206c11d4dfca9 GIT binary patch literal 108462 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 W@RPv^L&ds&=Y@Vuk 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 ZPo@Vy8LTi|jO%w^=-2f?)fv{S{{e3LNwfd} literal 0 HcmV?d00001 diff --git a/entorno/Scripts/pyrsa-encrypt.exe b/entorno/Scripts/pyrsa-encrypt.exe new file mode 100644 index 0000000000000000000000000000000000000000..3e6ed2cfbbf13587e9ea80018d63de64939d0b97 GIT binary patch literal 108462 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 Zf3iII$zX-yVqCxTLcgvzs*bZ>{SO2VOZWf) literal 0 HcmV?d00001 diff --git a/entorno/Scripts/pyrsa-keygen.exe b/entorno/Scripts/pyrsa-keygen.exe new file mode 100644 index 0000000000000000000000000000000000000000..bb4eacbcce3fbf7af7f7801ef1181dd81e028db9 GIT binary patch literal 108460 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 XsXaA=6ncws{mKiyx*n)-QrG++kuk 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 literal 0 HcmV?d00001 diff --git a/entorno/Scripts/pyrsa-sign.exe b/entorno/Scripts/pyrsa-sign.exe new file mode 100644 index 0000000000000000000000000000000000000000..61596ed9c4f73cf433fc63308ee1a858b5bb9956 GIT binary patch literal 108456 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 VW>7+3F|J>Dp-0yp6^`ke{{twTM?L@m literal 0 HcmV?d00001 diff --git a/entorno/Scripts/pyrsa-verify.exe b/entorno/Scripts/pyrsa-verify.exe new file mode 100644 index 0000000000000000000000000000000000000000..601e2fccf3f6117763f2dde83b63547f2647b1cf GIT binary patch literal 108460 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 Y$<&^jK?=RaxPIk@UR@7VIH_y?4{)$b1^@s6 literal 0 HcmV?d00001 diff --git a/entorno/Scripts/tqdm.exe b/entorno/Scripts/tqdm.exe new file mode 100644 index 0000000000000000000000000000000000000000..c743393c856767f3b323bead4fab2a984a392f58 GIT binary patch literal 108457 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 literal 0 HcmV?d00001 diff --git a/proyecto/ronald_diaz/chat.db b/proyecto/ronald_diaz/chat.db new file mode 100644 index 0000000000000000000000000000000000000000..bd57465eb5a076a26a654ba4ff38002822b25066 GIT binary patch literal 12288 zcmeHNO>Y}T7`EH06{b*brH4u{y);RkjU6ZbFb6P=Q$-}HF%BX^C>qaB>`B)=P%#5QQWnxn+WqT!Q<p^0s_$IN2BM6S^IwjO7cO7DTKuZ%F$cmJ))Qv>edYwpw3X&cbnK8Z zZESa%_nK{LwKujJ?Opn?xl4_m&i##T0Bkk4JLMB2G9&cf1dTe)Pdl`IAMc&b&6EAQ z%I;}lhAK7U@A_E@Fv|u*T0_j8jjblFHP;(En;p8l({985o@@NL)7Waw9P!WQc<3*@ z_S=Qx#rTyH5IO}00t118z(8Q&zt6ze+gHvPHokqgh8+Y6Ls?1#WtFB_5Lbh4W~@}{ zdrhsCuG7l$9okhHiAP+BSj03|nI@iTEmBJlGi6zshKXQUt9f7W2YH8K!ct;sOkJ5I zGVKA}GMSi&)?sO&v>=)0e}jiH!pruhA>oXcsV`VeR@JF*?a}A;Y zOpt+QBE%1L-$U$im0AS3x37iRvl5#Z?RH(pnrky$83Xg)WJG&%yCw7*8{@O3)q&s^ zXIm;3$>KVYIskexKE@sMB(#^_AQ8+Rg87 zynVh<`~LOXkQplyuj9VrP6eWw&`Vk;vggUsQzN;eAvEa(o?uHYq31EKB(M;w#FpD3 zj+mB=g9QPNQ3Eq2wKC1nbo2|vD=1cDOeIEIa7dlH9vWEtM^Cx*P8re5B-A}*nz>o` zGROKy&jun^@Bj=**fXkLDlIH*q&+QS2{{T=UsymBEt6%BnRl)a=U^IcLghVm@+NzH z^o%o&#=~Fz5Kj=}Oc4Scs$`_dNX*t*zbYL*#}wy)WwAss0M7e)*ZWGR&;bBn*0C#L ztgBLHl^bVNES*Eu(}0F0zS#xgJ7z-r5s5$@ao#?kdCRzPzuApM57fG0%hb=rNEzyB z6d7TB(=m@dE8>yWjOT8Q7%E1RuoEU3=0EkN9)Z_bIhtEqxDb6(J~{&bh-YODBOpO2`C6fwh`c+yEid}&P_doJZK^1WOmKA^cfG|ZA7ik< zJoZ`yFoEUp8muD=APbAuP^zeOE21@V0DYzVC^INV$2^#tt5&AAu&|;GxJe_^5x}K} z9izIa%6SDka8l1j=cvTe?0}Dc^b0%|>j`&Jsnp7_s5>aGH0;{!m`eGyh`M4&J(e;| zOlNg=1Jz9{Y#03cPF#xt3Lh4n7ux`vV_NZ6dH}X0bd>7M8wp?ViwWi(=}=K zb!OQ+L~X&L!8q5!F!zuhU|#|c5f?}JFcCXfrYNYbN6#>K;J+680-F;Qa!jg|tHsUw zO4a=~U%d2t0k3cb1_A?tfxtjuATSUZ2n+-U0t118z(8OiFz~-&;9~LY)#CKO7_R&Q Dr}~zs literal 0 HcmV?d00001 diff --git a/proyecto/ronald_diaz/inicio.py b/proyecto/ronald_diaz/inicio.py new file mode 100644 index 0000000..6910947 --- /dev/null +++ b/proyecto/ronald_diaz/inicio.py @@ -0,0 +1,102 @@ +from flask import Flask, render_template, request, redirect, url_for +import sqlite3 +import os +from dotenv import load_dotenv +import google.generativeai as ai + +load_dotenv() +API = os.getenv("API_KEY") +ai.configure(api_key=API) + +preferred_models = [ + "gemini-2.5-flash", + "gemini-2.5-flash-latest", + "gemini-2.5-flash-002", + "gemini-1.5-flash", + "gemini-1.5-flash-latest", + "gemini-1.5-flash-002", +] + +model_to_use = None +for m in ai.list_models(): + if "generateContent" in m.supported_generation_methods: + for preferred in preferred_models: + if m.name == f"models/{preferred}": + model_to_use = m.name + break + if model_to_use: + break + +if not model_to_use: + raise Exception("No Gemini model available for generateContent") + +model = ai.GenerativeModel(model_to_use) +chat = model.start_chat() + +# --- Flask Setup --- +app = Flask(__name__) +DATABASE = 'chat.db' + +# --- Database Helper Functions --- +def init_db(): + conn = sqlite3.connect(DATABASE) + c = conn.cursor() + c.execute(''' + CREATE TABLE IF NOT EXISTS messages ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_message TEXT NOT NULL, + bot_response TEXT NOT NULL, + timestamp DATETIME DEFAULT CURRENT_TIMESTAMP + ) + ''') + conn.commit() + conn.close() + +init_db() + +@app.route('/') +def index(): + conn = sqlite3.connect(DATABASE) + c = conn.cursor() + c.execute("SELECT user_message, bot_response, timestamp FROM messages ORDER BY id ASC") + chat_history = c.fetchall() + conn.close() + try: + promptInicial = "Actua como un experto en recetas de postres segun el nombre del postre que ingresen debes brindar informacion sobre la receta y preparacion, la respuesta debe ser en español, en cuanto a la preparación que que la explicacion sea bien corta y entendible. Si te preguntan sobre algo que no sea un postre debes presentar el siguiente mensaje: Solo respondo respuestas sobre postres y su preparación" + chat.send_message(promptInicial) + except Exception as e: + print(f"Error: {e}") + return render_template('index.html', chat_history=chat_history) + +@app.route('/send', methods=['POST']) +def send(): + user_message = request.form['message'] + try: + response = chat.send_message(user_message) + bot_response = response.text + except Exception as e: + bot_response = f"Error: {e}" + + conn = sqlite3.connect(DATABASE) + c = conn.cursor() + c.execute("INSERT INTO messages (user_message, bot_response) VALUES (?, ?)", (user_message, bot_response)) + conn.commit() + conn.close() + + return redirect(url_for('index')) + +@app.route('/clear') +def clear(): + conn = sqlite3.connect(DATABASE) + c = conn.cursor() + c.execute("DELETE FROM messages") + conn.commit() + conn.close() + return redirect(url_for('index')) + +@app.route('/acerca') +def acercaDE(): + return render_template("acerca.html") + +if __name__ == '__main__': + app.run(debug=True) diff --git a/proyecto/ronald_diaz/templates/acerca.html b/proyecto/ronald_diaz/templates/acerca.html new file mode 100644 index 0000000..47856ca --- /dev/null +++ b/proyecto/ronald_diaz/templates/acerca.html @@ -0,0 +1,67 @@ + + + + + Acerca de – PostresChat + + + + + + + + +
+
+

Acerca de PostresChat

+

+ PostresChat es un chatbot especializado en dulces y postres. + Diseñado para responder cualquier pregunta relacionada con la selección de ingredientes, técnicas de preparación, tiempos de horneado y decoración de postres. +

+

+ Ejemplos de temas que cubre: +

    +
  • Cómo hacer un bizcocho esponjoso de vainilla
  • +
  • Alternativas sin gluten o sin lácteos
  • +
  • Técnicas de baño de chocolate y glaseado
  • +
  • Decoración con glaseado real y fondant
  • +
+

+

+ Nota: Si le preguntas algo que no tenga que ver con postres o preparación de dulces, + PostresChat te indicará amablemente que solo puede responder consultas relacionadas a postres. +

+
+
+ + + + + + \ No newline at end of file diff --git a/proyecto/ronald_diaz/templates/index.html b/proyecto/ronald_diaz/templates/index.html new file mode 100644 index 0000000..46cfeac --- /dev/null +++ b/proyecto/ronald_diaz/templates/index.html @@ -0,0 +1,92 @@ + + + + + 🤖 Chatbot con Gemini + + + + + + + +
+
+
+ {% for user_msg, bot_msg, timestamp in chat_history %} +
+
Tú: {{ user_msg }}
+
{{ timestamp }}
+
+
+
Bot: {{ bot_msg }}
+
{{ timestamp }}
+
+ {% endfor %} +
+ +
+ + +
+
+
+ + + + \ No newline at end of file From d2559300eed083568bb992b113a0c6a3e04005fe Mon Sep 17 00:00:00 2001 From: Valeria Date: Mon, 14 Jul 2025 21:04:50 -0500 Subject: [PATCH 82/95] Deberes Clases 2 y 3 --- clase2/valeria_ramos.py | 112 ++++++++++++++++++++++ clase3/valeria_ramos/app.py | 18 ++++ clase3/valeria_ramos/templates/index.html | 19 ++++ clase3/valeria_ramos/valeria_ramos.py | 41 ++++++++ requirements.txt | Bin 0 -> 188 bytes 5 files changed, 190 insertions(+) create mode 100644 clase2/valeria_ramos.py create mode 100644 clase3/valeria_ramos/app.py create mode 100644 clase3/valeria_ramos/templates/index.html create mode 100644 clase3/valeria_ramos/valeria_ramos.py create mode 100644 requirements.txt diff --git a/clase2/valeria_ramos.py b/clase2/valeria_ramos.py new file mode 100644 index 0000000..754232f --- /dev/null +++ b/clase2/valeria_ramos.py @@ -0,0 +1,112 @@ + +# # Objeto Televisión +# """ +# Estudiante: +# - edad +# - año +# - nota +# Metodos: +# - información +# - aprobar +# """ + +#EJERCICIO 1 OBJETOS +# ¿Qué es un objeto? +# Un objeto es como una cosa o persona en la vida real, pero en programación. Tiene datos que lo describen y cosas que puede hacer. + +# ¿Qué hace el objeto Estudiante? +# Este objeto representa a un estudiante, con su nombre, edad, nota y curso. Además, puede mostrar su información y decir si aprobó o no. + +# ¿Por qué elegí Estudiante? +# Porque es fácil de entender y es algo que todos conocemos. Así puedo practicar cómo guardar información y usarla para hacer cosas, como decir si el estudiante pasó la materia. + +class Estudiante: + def __init__(self, nombre, edad, nota, curso): + self.nombre = nombre + self.edad = edad + self.nota = nota + self.curso = curso + + def informacion (self): + print (f"Nombre:{nombre}") + print (f"Edad:{edad}") + print (f"Nota:{nota}") + print (f"curso:{curso}") + + def aprobar (self): + if self.nota>=7: + print(f"{self.nombre} Felicidades! aprobaste.") + else: + print(f"{self.nombre} No aprobaste." ) + +#se pide los datos +nombre = input ("Ingresa tu nombre:") +edad = int ( input ("Ingresa tu edad:")) +nota = float(input("Ingresa tu nota:")) +curso = input("Ingrea tu curso:") + + +#creación de objeto +est1 = Estudiante(nombre, edad, nota, curso) + +#uso de métodos +est1.informacion() +est1.aprobar() + +# Ejercicio2: LISTAS Y DICCIONARIOS +#lista +pelis_fav = ["voces inocentes", "crepusculo", "Yo antes de ti"] + +print(f"Mi pelis favoritas son: {pelis_fav}") + +#dicionario + +peliculas = [ + {"nombre": "Voces Inocentes","genero": "Drama", "año": 2004 }, + {"nombre":"Crepúsculo", "genero": "Fantasía", "año": 2000}, + {"nombre": "Yo antes de ti", "genero":"Romance", "año":2005} +] + +for peli in peliculas: + print("Nombre:", peli["nombre"]) + print("Género:", peli["genero"]) + print("Año:", peli["año"]) + print("---") + + +#EJERCICIO 3: TRIVIA CON PPO + +class Pregunta: + def __init__(self, enunciado, opciones, respuesta): + self.enunciado = enunciado + self.opciones = opciones + self.respuesta = respuesta + + + def mostrar(self): + print(self.enunciado) + for i, opcion in enumerate(self.opciones, 1): + print(f"{i}. {opcion}") + + def verificar(self, respuesta): + return respuesta == self.respuesta + + + +# Objectos de clase pregunta +p1 = Pregunta("¿Cuál es la capital de Francia?", ["Madrid", "París", "Londres"], 2) +p2 = Pregunta("¿Qué planeta es conocido como el Planeta Rojo?", ["Venus", "Marte", "Júpiter"], 2) +p3 = Pregunta("¿Cuántos continentes hay en el mundo?", ["5", "6", "7", "8"], 3) + +# Los ponemos en una lista +lista_preguntas = [p1, p2, p3] + +# Recorremos la lista para jugar la trivia +for pregunta in lista_preguntas: + pregunta.mostrar() + respuesta = int(input("Escribe el número de la opción correcta: ")) + if pregunta.verificar(respuesta): + print("¡Correcto!\n") + else: + print(f"Incorrecto. La respuesta correcta era la opción {pregunta.respuesta}\n") + \ No newline at end of file diff --git a/clase3/valeria_ramos/app.py b/clase3/valeria_ramos/app.py new file mode 100644 index 0000000..04e28d6 --- /dev/null +++ b/clase3/valeria_ramos/app.py @@ -0,0 +1,18 @@ +from flask import Flask, render_template +import requests + +app = Flask(__name__) + +@app.route('/') +def mostrar_chiste(): + url = "https://official-joke-api.appspot.com/jokes/random" + try: + response = requests.get(url) + response.raise_for_status() + data = response.json() + return render_template('index.html', setup=data['setup'], punchline=data['punchline']) + except Exception as e: + return f"Ocurrió un error: {e}" + +if __name__ == '__main__': + app.run(debug=True) diff --git a/clase3/valeria_ramos/templates/index.html b/clase3/valeria_ramos/templates/index.html new file mode 100644 index 0000000..f82137e --- /dev/null +++ b/clase3/valeria_ramos/templates/index.html @@ -0,0 +1,19 @@ + + + + Chiste Random + + + +
+

😂 Chiste Random

+
+

Chiste: {{ setup }}

+

Respuesta: {{ punchline }}

+
+ +
+
+
+ + diff --git a/clase3/valeria_ramos/valeria_ramos.py b/clase3/valeria_ramos/valeria_ramos.py new file mode 100644 index 0000000..3bcabb1 --- /dev/null +++ b/clase3/valeria_ramos/valeria_ramos.py @@ -0,0 +1,41 @@ +import requests + + +limit = 9 +offset = 0 + +while True: + url = f"https://pokeapi.co/api/v2/pokemon?limit={limit}&offset={offset}" + response = requests.get (url) + + if response.status_code == 200: + data = response.json() + print (f"Mostrando Pokemmón {offset+1} a {offset+limit}") + for poke in data ['results']: + print ("-", poke['name']) + else: + print ("Error al obtener datos.") + break + option = input ("Ver más.. (s/n):") + if option.lower() == 's': + offset += limit + else: + break +nombre = input ("\n Ingresa el nombre del Pokemón para ver sus datos:") + +url_pokemon = f"https://pokeapi.co/api/v2/pokemon/{nombre.lower()}" +resp_poke = requests.get(url_pokemon) + +if resp_poke.status_code == 200: + datos = resp_poke.json() + print("\nDatos del Pokémon:") + print("ID:", datos['id']) + print("Nombre:", datos['name']) + tipos = [t['type']['name'] for t in datos['types']] + print("Tipos:", tipos) + print("Altura:", datos['height']) + print("Imagen URL:", datos['sprites']['front_default']) + print("Sprite:", datos['sprites']['front_default']) +else: + print("Pokémon no encontrado.") + \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..734e6a5c5d52a5f6c882482feae7c4586d40dbda GIT binary patch literal 188 zcmXYr%L>9U6a{B3_$dY(E3W*QS``abv5$=(uTE|yoIq~QO!ED-To{<>xSFFYvo(7X z2UAhAW<|@5#^z{$V#9-{r@OOW?j4pw?__F|gX%cjY{FY^D&564*ncs*kJ`rnyGc3+ TUplj`KI|vw%g<8$YjOMlyM-Kj literal 0 HcmV?d00001 From 2ce49834d48832efd5d246a41b13fbe12165dc09 Mon Sep 17 00:00:00 2001 From: Erikat93 Date: Mon, 14 Jul 2025 22:35:23 -0500 Subject: [PATCH 83/95] Entrega Deber 1 --- clase1/erika_torres.py | 51 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 clase1/erika_torres.py diff --git a/clase1/erika_torres.py b/clase1/erika_torres.py new file mode 100644 index 0000000..ab7b711 --- /dev/null +++ b/clase1/erika_torres.py @@ -0,0 +1,51 @@ +## 🧪 Ejercicio 1: Números primos + +def es_primo(num): + if num < 2: + return False + for i in range(2, int(num ** 0.5) + 1): + if num % i == 0: + return False + return True + +def mostrar_primos_hasta_n(n): + print(f"Números primos del 1 al {n}:") + for i in range(1, n + 1): + if es_primo(i): + print(i, end=" ") + +# Programa principal +try: + n = int(input("Ingresa un número entero positivo: ")) + if n < 1: + print("Por favor, ingresa un número mayor o igual a 1.") + else: + mostrar_primos_hasta_n(n) +except ValueError: + print("Entrada inválida. Por favor ingresa un número entero.") + +## 🧪 Ejercicio 2: Menú interactivo + +import datetime + +def mostrar_menu(): + print("\n📋 MENÚ PRINCIPAL") + print("1. Mostrar una frase motivacional") + print("2. Mostrar la fecha actual") + print("3. Salir del programa") + +while True: + mostrar_menu() + opcion = input("Elige una opción (1, 2 o 3): ") + + if opcion == "1": + print("\n💬 Frase motivacional:") + print("✨ El éxito es la suma de pequeños esfuerzos repetidos día tras día.") + elif opcion == "2": + fecha_actual = datetime.datetime.now() + print(f"\n📅 Fecha actual: {fecha_actual.strftime('%d/%m/%Y - %H:%M:%S')}") + elif opcion == "3": + print("\n👋 ¡Gracias por usar el programa! Hasta pronto.") + break + else: + print("⚠️ Opción no válida. Por favor, elige 1, 2 o 3.") From e569749dd3c0c330a9295b3aad998d4f6bfe3590 Mon Sep 17 00:00:00 2001 From: Erikat93 Date: Mon, 14 Jul 2025 22:43:09 -0500 Subject: [PATCH 84/95] Entrega Deber 1 --- Erika Torres | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Erika Torres diff --git a/Erika Torres b/Erika Torres deleted file mode 100644 index 8b13789..0000000 --- a/Erika Torres +++ /dev/null @@ -1 +0,0 @@ - From 1203bf79e52d1cbba2877cb969f0cc46f5b83462 Mon Sep 17 00:00:00 2001 From: Erikat93 Date: Mon, 14 Jul 2025 23:00:12 -0500 Subject: [PATCH 85/95] Entrega Deber 2 --- clase1/erika_torres.py | 2 + clase2/erika_torres.py | 85 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 clase2/erika_torres.py diff --git a/clase1/erika_torres.py b/clase1/erika_torres.py index ab7b711..61097a8 100644 --- a/clase1/erika_torres.py +++ b/clase1/erika_torres.py @@ -1,3 +1,5 @@ + + ## 🧪 Ejercicio 1: Números primos def es_primo(num): diff --git a/clase2/erika_torres.py b/clase2/erika_torres.py new file mode 100644 index 0000000..321787d --- /dev/null +++ b/clase2/erika_torres.py @@ -0,0 +1,85 @@ +## 🧪 Ejercicio 1: Objetos + +class Bicicleta: + """ + Clase Bicicleta: + Representa una bicicleta con atributos básicos y métodos para simular su uso. + """ + def __init__(self, marca, tipo, color, velocidad_max): + self.marca = marca + self.tipo = tipo # Montaña, Ruta, Urbana, etc. + self.color = color + self.velocidad_max = velocidad_max + self.velocidad_actual = 0 + + def pedalear(self): + if self.velocidad_actual < self.velocidad_max: + self.velocidad_actual += 5 + print(f"Pedaleando... 🚴 Velocidad actual: {self.velocidad_actual} km/h") + else: + print("🚨 Has alcanzado la velocidad máxima.") + + def frenar(self): + if self.velocidad_actual > 0: + self.velocidad_actual -= 5 + print(f"Frenando... ⚠️ Velocidad actual: {self.velocidad_actual} km/h") + else: + print("La bicicleta ya está detenida.") + +# Crear objeto bicicleta +mi_bici = Bicicleta("Giant", "Montaña", "Roja", 25) + +# Usar métodos +mi_bici.pedalear() +mi_bici.pedalear() +mi_bici.frenar() + +## 🧪 Ejercicio 2: Listas y diccionarios + +# Lista de mis 3 películas favoritas +peliculas = ["El Origen", "Coco", "Intensamente"] + +# Diccionario con información de una de ellas +pelicula_favorita = { + "nombre": "El Origen", + "género": "Ciencia Ficción", + "año": 2010 +} + +# Operaciones +print("🎬 Mis películas favoritas son:", peliculas) +print("🎥 Detalles de la favorita:") +print("Nombre:", pelicula_favorita["nombre"]) +print("Género:", pelicula_favorita["género"]) +print("Año:", pelicula_favorita["año"]) + +## 🧪 Ejercicio 3: Trivia con PO + +class Pregunta: + def __init__(self, enunciado, opciones, respuesta_correcta): + self.enunciado = enunciado + self.opciones = opciones + self.respuesta_correcta = respuesta_correcta + + def mostrar(self): + print("❓", self.enunciado) + for i, opcion in enumerate(self.opciones, 1): + print(f"{i}. {opcion}") + + def responder(self, seleccion): + if self.opciones[seleccion - 1] == self.respuesta_correcta: + print("✅ ¡Correcto!") + else: + print(f"❌ Incorrecto. La respuesta era: {self.respuesta_correcta}") + +# Crear pregunta +pregunta1 = Pregunta( + "¿Cuál es la capital de Ecuador?", + ["Guayaquil", "Quito", "Cuenca"], + "Quito" +) + +# Mostrar y pedir respuesta +pregunta1.mostrar() +numero = int(input("Ingresa el número de tu respuesta: ")) +pregunta1.responder(numero) From 6df907c93d975742a3a46af003b94c42ddbc2f13 Mon Sep 17 00:00:00 2001 From: Erikat93 Date: Tue, 15 Jul 2025 00:20:31 -0500 Subject: [PATCH 86/95] Tarea 3 --- clase3/flask_chistes/erika_torres.py | 61 ++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 clase3/flask_chistes/erika_torres.py diff --git a/clase3/flask_chistes/erika_torres.py b/clase3/flask_chistes/erika_torres.py new file mode 100644 index 0000000..20c0fe7 --- /dev/null +++ b/clase3/flask_chistes/erika_torres.py @@ -0,0 +1,61 @@ +import requests + +URL = "https://fakestoreapi.com" + +def deserialize_json(json_data): + """ + Deserialize JSON data into a Python object. + """ + try: + return json_data.json() + except ValueError as e: + print(f"Error deserializing JSON: {e}") + return None + +def serialize_json(data): + """ + Serialize a Python object into JSON format. + """ + try: + return json.dumps(data, indent=2) + except TypeError as e: + print(f"Error serializing to JSON: {e}") + return None + +def get_products(): + url = f"{URL}/products" + response = requests.get(url) + if response.status_code == 200: + return response.json() + else: + return None + +def get_product_by_id(product_id): + url = f"{URL}/products/{product_id}" + response = requests.get(url) + if response.status_code == 200: + return response.json() + else: + return None + +if __name__ == "__main__": + products = get_products() + for product in products: + print(f"Product ID: {product['id']}") + print(f"Title: {product['title']}") + print(f"Price: {product['price']}") + print(f"Description: {product['description']}") + print(f"Imagen: {product['image']}") + print("-" * 20) + + product = get_product_by_id(15) + print(f"Product ID: {product['id']}") + print(f"Title: {product['title']}") + print(f"Price: {product['price']}") + print(f"Description: {product['description']}") + print(f"Imagen: {product['image']}") + print("-" * 20) + + objserialize = serialize_json(products) + print(f"Serialized JSON: {objserialize}") + \ No newline at end of file From 1044a83df26ba2633d12d6a43a5a2394e20bd1ba Mon Sep 17 00:00:00 2001 From: artifexefitra Date: Tue, 15 Jul 2025 11:08:29 -0500 Subject: [PATCH 87/95] Entrega de proyecto - Jorge Castellanos --- clase1/jorge_luis_castellanos.py | 55 ++++++++- clase2/jorge_luis_castellanos.py | 111 ++++++++++++++++++ clase3/jorge_luis_castellanos/jokes/app.py | 27 +++++ .../jokes/templates/index.html | 64 ++++++++++ clase3/jorge_luis_castellanos/pokemon/app.py | 54 +++++++++ .../pokemon/templates/index.html | 59 ++++++++++ proyecto/jorge_luis_castellanos/app.py | 86 ++++++++++++++ .../jorge_luis_castellanos/requirements.txt | 24 ++++ 8 files changed, 479 insertions(+), 1 deletion(-) create mode 100644 clase2/jorge_luis_castellanos.py create mode 100644 clase3/jorge_luis_castellanos/jokes/app.py create mode 100644 clase3/jorge_luis_castellanos/jokes/templates/index.html create mode 100644 clase3/jorge_luis_castellanos/pokemon/app.py create mode 100644 clase3/jorge_luis_castellanos/pokemon/templates/index.html create mode 100644 proyecto/jorge_luis_castellanos/app.py create mode 100644 proyecto/jorge_luis_castellanos/requirements.txt diff --git a/clase1/jorge_luis_castellanos.py b/clase1/jorge_luis_castellanos.py index 10e390e..6579a30 100644 --- a/clase1/jorge_luis_castellanos.py +++ b/clase1/jorge_luis_castellanos.py @@ -1 +1,54 @@ -print ("Jorge Luis Castellanos") \ No newline at end of file +import datetime + +#Tarea Uno +#____________________________________________________________ +#Ejercicio número 1 +#Determinar si un número ingresado es primo +#____________________________________________________________ + +def numero_primo(numero): + if numero % 2 == 0: + return False + for i in range(3, int(numero ** 0.5) + 1, 2): + if numero % i == 0: + return False + return True + +def numeros_primos(numero): + primos = [] + for i in range(2, numero + 1): + if numero_primo(i): + primos.append(i) + return primos + +#____________________________________________________________ +#Ejercicio número 2 +#Menú interactivo +#____________________________________________________________ + +def menu(): + print("--- Bienvenido al menú interactivo ---") + print("|1| Frase motivacional") + print("|2| Fecha actual") + print("|3| Salir") + opcion = input("Ingrese una opcion: ") + if opcion == "1": + print("🎯 El éxito es la suma de pequeños esfuerzos repetidos día tras día.") + elif opcion == "2": + fecha_actual = print(" 🗓️ La fecha actual es: ", datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) + else: + print("👋🏼 Fin del programa, Hasta pronto.") + + +if __name__ == "__main__": + + #Ejercicio número 1 + numero = int(input("Ingrese un número mayor a 2: ")) + if numero <= 2: + print("Por favor, ingrese un número mayor a 2.") + else: + primos = numeros_primos(numero) + print(f"Numeros primos hasta {numero}: {primos}") + + #Ejercicio número 2 + menu() \ No newline at end of file diff --git a/clase2/jorge_luis_castellanos.py b/clase2/jorge_luis_castellanos.py new file mode 100644 index 0000000..4fcd00d --- /dev/null +++ b/clase2/jorge_luis_castellanos.py @@ -0,0 +1,111 @@ +#Tarea Dos +#____________________________________________________________ +#Ejercicio número 1 +#Ejercicios de tuplas, listas y diccionarios +#____________________________________________________________ + +class automovil: + def __init__(self): + self.marca = "" + self.modelo = "" + self.anio = "" + self.color = "" + + def __init__(self,marca,modelo,anio,color): + self.marca = marca + self.modelo = modelo + self.anio = anio + self.color = color + + def informacion(self): + print(f"Marca: {self.marca} Modelo: {self.modelo} Año: {self.anio} Color: {self.color}") + + def aceleracion(self): + print(f"El auto {self.marca} {self.modelo}, tiene un tiempo de aceleracion de 5 segundos de 0/100 Km") + + def cantidad_pasajeros(self): + print(f"El auto {self.marca} {self.modelo}, tiene la capacidad de 5 pasajeros") + + def sonido(self): + print(f"El auto {self.marca} {self.modelo} posee android car y Apple Car, con Spotify") + + def seguridad(self): + print(f"El auto {self.marca} {self.modelo} posee camaras 360° y graba todo el recorrido del viaje") + +#____________________________________________________________ +#Ejercicio número 2 +#Creación de un juego de trivia +#____________________________________________________________ +class Pregunta: + opciones = [] + def __init__(self,pregunta,respuesta,opciones): + self.pregunta = pregunta + self.opciones = list(opciones) + self.respuesta = respuesta + + def mostrar_pregunta(self): + print(f" {self.pregunta} : ") + indice = 1 + for opcion in self.opciones: + print(f" {indice} {opcion}") + indice += 1 + + def validar_respuesta(self,respuesta_usuario): + if self.respuesta == respuesta_usuario: + return True + else: + return False + + +if __name__ == "__main__": + + #Ejercicio número 1 + print("Caracteristicas de Automovil") + automovil = automovil("Mazda","CX-30","2025","rojo") + automovil.informacion() + automovil.aceleracion() + automovil.cantidad_pasajeros() + automovil.sonido() + automovil.seguridad() + print("\n") + + print("Listas y Diccionarios") + pelicula_1 = {"Nombre":"Lord of the rings : La comunidad del anillo","genero":"acción","Anio":2001} + pelicula_2 = {"Nombre":"Lord of the rings : Las dos torres","genero":"acción","Anio":2002} + pelicula_3 = {"Nombre":"Lord of the rings : El retorno del rey","genero":"drama","Anio":2023} + + Listado = [pelicula_1, pelicula_2, pelicula_3] + + for pelicula in Listado: + print(pelicula) + + pelicula_3["genero"]="accion" + pelicula_3["Anio"] = 2003 + + pelicula_4 = {"Nombre":"El hobbit : Un viaje inesperado","genero":"accion","Anio":2012} + + Listado.append(pelicula_4) + Listado.remove(pelicula_3) + + print("\n") + print("Listado despues de eliminar pelicula 3 y posicionar pelicula 4") + print("\n") + + for pelicula in Listado: + print(pelicula) + + print("\n") + + + #Ejercicio número 2 + print("Trivia") + pregunta = Pregunta("Cuál es la primera pelicula de Lord of the rings", 2, ["EL retorno del rey","La comunindad del anillo","Las dos torres","Un viaje inesperado"]) + + pregunta.mostrar_pregunta() + + respuesta_correcta = int(input("Su respuesta es (ingrese el número correspondiente):")) + + if pregunta.validar_respuesta(respuesta_correcta): + print("Respuesta correcta") + else: + print("Respuesta Incorrecta") \ No newline at end of file diff --git a/clase3/jorge_luis_castellanos/jokes/app.py b/clase3/jorge_luis_castellanos/jokes/app.py new file mode 100644 index 0000000..e81e3a6 --- /dev/null +++ b/clase3/jorge_luis_castellanos/jokes/app.py @@ -0,0 +1,27 @@ +import requests +from flask import Flask, render_template + +app = Flask(__name__) + +@app.route('/') +def chiste(): + chiste = {} + error = None + + try: + response = requests.get("https://official-joke-api.appspot.com/jokes/random") + if response.status_code == 200: + chiste = response.json() + else: + error = "No se pudo obtener un chiste. Intenta de nuevo." + except Exception as e: + error = f"Error al conectarse a la API: {e}" + + return render_template("index.html", chiste=chiste, error=error) + +@app.route('/salir') +def salir(): + return "

👋 ¡Gracias por reír con nosotros! Hasta la próxima.

" + +if __name__ == '__main__': + app.run(debug=True) diff --git a/clase3/jorge_luis_castellanos/jokes/templates/index.html b/clase3/jorge_luis_castellanos/jokes/templates/index.html new file mode 100644 index 0000000..ae97246 --- /dev/null +++ b/clase3/jorge_luis_castellanos/jokes/templates/index.html @@ -0,0 +1,64 @@ + + + + + + 😂 Chiste del Día + + + + + + + + + + + +
+
+
+
+
😂
+

Chiste del Día

+ + {% if error %} +
{{ error }}
+ {% else %} +

{{ chiste.setup }}

+

{{ chiste.punchline }}

+ {% endif %} + + +
+
+
+
+ + + + \ No newline at end of file diff --git a/clase3/jorge_luis_castellanos/pokemon/app.py b/clase3/jorge_luis_castellanos/pokemon/app.py new file mode 100644 index 0000000..94dbb0f --- /dev/null +++ b/clase3/jorge_luis_castellanos/pokemon/app.py @@ -0,0 +1,54 @@ +import math + +import requests +from flask import Flask, render_template, request + +app = Flask(__name__) + +@app.route('/') +def index(): + page = int(request.args.get('page', 1)) + search = request.args.get('search', '').lower() + per_page = 9 + total_pokemons = 100 + offset = (page - 1) * per_page + pokemons = [] + + if search: + data = get_pokemon(search) + if data: + pokemons.append(data) + total_pages = 1 + else: + url = f'https://pokeapi.co/api/v2/pokemon?offset={offset}&limit={per_page}' + response = requests.get(url) + results = response.json().get('results', []) + for item in results: + poke_data = get_pokemon(item['name']) + if poke_data: + pokemons.append(poke_data) + total_pages = math.ceil(total_pokemons / per_page) + + return render_template('index.html', + pokemon_list=pokemons, + search_query=search, + page=page, + total_pages=total_pages) + +def get_pokemon(name): + url = f'https://pokeapi.co/api/v2/pokemon/{name}' + response = requests.get(url) + if response.status_code == 200: + data = response.json() + return { + 'name': data['name'].capitalize(), + 'image_front': data['sprites']['front_default'], + 'image_back': data['sprites']['back_default'], + 'height': data['height'], + 'weight': data['weight'], + 'abilities': [a['ability']['name'] for a in data['abilities']] + } + return None + +if __name__ == '__main__': + app.run(debug=True) diff --git a/clase3/jorge_luis_castellanos/pokemon/templates/index.html b/clase3/jorge_luis_castellanos/pokemon/templates/index.html new file mode 100644 index 0000000..a9d1ea8 --- /dev/null +++ b/clase3/jorge_luis_castellanos/pokemon/templates/index.html @@ -0,0 +1,59 @@ + + + + + + + Pokédex Flask + + + +
+

POKEAPI

+ +
+
+ + +
+
+ + {% if pokemon_list %} +
+ {% for pokemon in pokemon_list %} +
+
+
+ Frente + Atrás +
+
+
{{ pokemon.name }}
+

+ Altura: {{ pokemon.height }}
+ Peso: {{ pokemon.weight }}
+ Habilidades: {{ pokemon.abilities | join(', ') }} +

+
+
+
+ {% endfor %} +
+ + + + + {% else %} +

No se encontraron Pokémon.

+ {% endif %} +
+ + diff --git a/proyecto/jorge_luis_castellanos/app.py b/proyecto/jorge_luis_castellanos/app.py new file mode 100644 index 0000000..42ba10e --- /dev/null +++ b/proyecto/jorge_luis_castellanos/app.py @@ -0,0 +1,86 @@ + +import sqlite3 +import os +import re +import requests +import telebot +from telebot import types +from datetime import datetime +from dotenv import load_dotenv + +# Obtine el token del bot de las variables de entorno +load_dotenv() +BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN") + +if not BOT_TOKEN: + print("Error: La variable de entorno TELEGRAM_BOT_TOKEN no está configurada.") + print("Por favor, asegúrate de establecerla antes de ejecutar el script.") + exit() # Salir del script si no hay token + +# Inicializa el bot +bot = telebot.TeleBot(BOT_TOKEN) + +# Responde al comando /start +@bot.message_handler(commands=['start']) +def send_welcome(message): + + user_name = message.from_user.first_name if message.from_user.first_name else "usuario" + bot.reply_to(message, f"¡Hola, {user_name}!\n Somos Terra Habitat Bienes Raices\n Selecciona una opción para poderte ayudar") + #print(f"Comando /start recibido de {message.from_user.username}") + + +# Inicializa el bot para que empiece a escuchar mensajes +print("Bot iniciando... Presiona Ctrl+C para detenerlo.") +bot.polling(none_stop=True, interval=0) # none_stop=True para que siga funcionando, interval=0 para polling rápido + + + + + + + + + + + + + + + +# # 4. Manejador para el comando /help +# @bot.message_handler(commands=['help']) +# def send_help(message): +# """ +# Responde al comando /help. +# """ +# help_text = """ +# Estos son los comandos que entiendo: +# /start - Inicia el bot y saluda. +# /help - Muestra este mensaje de ayuda. +# /echo [texto] - Repite el texto que le envíes. +# También puedo responder a cualquier mensaje de texto. +# """ +# bot.reply_to(message, help_text) +# print(f"Comando /help recibido de {message.from_user.username}") + +# # 5. Manejador para el comando /echo (con parámetros) +# @bot.message_handler(commands=['echo']) +# def echo_all(message): +# """ +# Repite el texto que sigue al comando /echo. +# """ +# if len(message.text.split()) > 1: +# text_to_echo = " ".join(message.text.split()[1:]) +# bot.reply_to(message, f"Me pediste que repita: {text_to_echo}") +# else: +# bot.reply_to(message, "Por favor, usa el comando /echo seguido del texto que quieres que repita. Ejemplo: /echo Hola mundo") +# print(f"Comando /echo recibido de {message.from_user.username}") + +# # 6. Manejador para mensajes de texto genéricos (cualquier otro mensaje que no sea un comando) +# @bot.message_handler(func=lambda message: True) # La función lambda 'True' hace que maneje todos los mensajes +# def echo_message(message): +# """ +# Responde a cualquier mensaje de texto que no sea un comando. +# """ +# bot.reply_to(message, f"Recibí tu mensaje: '{message.text}'") +# print(f"Mensaje de texto recibido de {message.from_user.username}: '{message.text}'") diff --git a/proyecto/jorge_luis_castellanos/requirements.txt b/proyecto/jorge_luis_castellanos/requirements.txt new file mode 100644 index 0000000..7ce90bd --- /dev/null +++ b/proyecto/jorge_luis_castellanos/requirements.txt @@ -0,0 +1,24 @@ +anyio==4.9.0 +blinker==1.9.0 +certifi==2025.7.14 +charset-normalizer==3.4.2 +click==8.2.1 +Flask==3.1.1 +h11==0.16.0 +httpcore==1.0.9 +httpx==0.28.1 +idna==3.10 +itsdangerous==2.2.0 +Jinja2==3.1.6 +mailjet-rest==1.5.1 +MarkupSafe==3.0.2 +pyTelegramBotAPI==4.27.0 +python-dotenv==1.1.1 +python-telegram-bot==22.2 +requests==2.32.4 +sniffio==1.3.1 +telebot==0.0.5 +telegram==0.0.1 +typing_extensions==4.14.1 +urllib3==2.5.0 +Werkzeug==3.1.3 From b49b5f731740d0bc93f8d19bf582409e55cfc130 Mon Sep 17 00:00:00 2001 From: gnuleospython Date: Tue, 15 Jul 2025 12:16:39 -0500 Subject: [PATCH 88/95] sunido tarea 1 y tarea2 --- clase1/edisontana.py | 73 +++++++++++++ clase2/edisontana.py | 239 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 312 insertions(+) create mode 100644 clase1/edisontana.py create mode 100644 clase2/edisontana.py diff --git a/clase1/edisontana.py b/clase1/edisontana.py new file mode 100644 index 0000000..460857d --- /dev/null +++ b/clase1/edisontana.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# tarea1.py +# +# Copyright 2025 edisontana +# +# Tarea 1. +# Programa que solicita al usuario un número n y visualiza todos los números primos del 1 al n. + +from datetime import datetime + +def esprimo(inumero): + """ + Funcion para saber si un numero es primo. + """ + if inumero <= 1: + False + for i in range( 2, int( inumero ** 0.5) + 1): + if inumero % i == 0: + return False + return True + +def evaluanumeros(n): + listaprimos = [] + icontador = 1 + x = 1 + while True: + if icontador <= n: + if esprimo(x): + listaprimos.append(x) + icontador = icontador + 1 + x = x + 1 + else: + break + print(f"Resultado: Los {n} numeros primos son: ") + print(listaprimos) + + +def visualizafrase(): + texto = "Los buenos equipos incorporan el trabajo en grupo \n a la cultura, creando así los pilares del éxito." + frase = f"{texto:>50}" + texto2 = "Ted Sundquist" + autor = f"{texto2:>50}" + print(frase) + print(autor) + print("") + +def visualizafechaactual(): + print(datetime.now()) + +def muestramenu(opcion): + if opcion == 1: + visualizafrase() + elif opcion == 2: + visualizafechaactual() + else: + quit() + +if __name__ == '__main__': + print("Programa para hallar 'n' numero primos") + print("Realizado por 2025 Edison TANA") + n = int(input("¿Cuantos números primos desea, por favor digite aquí? (numero): ")) + evaluanumeros(n) + print("------------------") + print("Menu interactivo") + print("1. Ver frase motivacional") + print("2. Ver hora actual") + print("3. Salir") + eleccion = int(input("Por favor digite su opcion (1-3): ")) + muestramenu(eleccion) + print("Fin del programa") + + diff --git a/clase2/edisontana.py b/clase2/edisontana.py new file mode 100644 index 0000000..1f1a2ed --- /dev/null +++ b/clase2/edisontana.py @@ -0,0 +1,239 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# tarea2.py +# +# Copyright 2025 edisontana +# +# Tarea 2. +# Ejercicio1: Defina un clase Pais con dos metodos +# Ejercicio2: Listas y diccionarios +# Ejercicio3: Trivia con POO + +from datetime import datetime + +class Pais: + + def __init__(self, nombreES, nombreEN, codigoISOA3): + """ + Crea un constructor + """ + self.nombreES = nombreES + self.nombreEN = nombreEN + self.codigoISOA3 = codigoISOA3 + + def verArea(self, pais): + """ + Visuliza el area superficial del pais + """ + # Diccionario de áreas de países (puedes expandir este diccionario) + self.areas = { + 'ecuador': 256370, + 'colombia': 1141748, + 'peru': 1285216, + 'argentina': 2780400, + 'chile': 756102 + } + + strPais = pais.lower() + if strPais in self.areas: + return self.areas[strPais] + else: + return f"No se encontró información para el país {pais}" + + + def verCapital(self, pais): + """ + Muestra la capital del pais + """ + self.capitales = { + 'ecuador': 'Quito', + 'colombia': 'Bogota', + 'peru': 'Lima', + 'argentina': 'Buenos Aires', + 'chile': 'Santiago' + } + strPais = pais.lower() + if strPais in self.capitales: + return self.capitales[strPais] + else: + return f"No se encontró información para el país {pais}" + +# Ejercicio2: Defina un clase Pais con dos metodos + +class Pelicula: + def __init__(self, anio, nombre, genero): + """ + Constructor de la clase Pelicula + + Args: + anio (int): Año de producción + nombre (str): Nombre de la pelicula + genero (str): Género de la pelicula + """ + self.anio = anio + self.nombre = nombre + self.genero = genero + + def __str__(self): + """ + Representación en cadena de la película + """ + return f"{self.nombre} ({self.anio}) - {self.genero}" + +class PeliculasFavoritas: + def __init__(self): + """ + Constructor de la clase PeliculasFavoritas + """ + self.peliculas = [] + + def agregapelicula(self, anio, nombre, genero): + """ + Agrega una nueva película a la lista + + Args: + anio (int): Año de producción + nombre (str): Nombre de la pelicula + genero (str): Género de la pelicula + """ + nuevapelicula = Pelicula(anio, nombre, genero) + self.peliculas.append(nuevapelicula) + print(f"Se agregó {nombre}") + + def buscaporanio(self, anio): + """ + Busca una pelicula por su año de producción + + Args: + anio (int): Año a buscar + + Returns: + Pelicula or str: Pelicula encontrada o mensaje de no encontrado + """ + for pelicula in self.peliculas: + if pelicula.anio == anio: + return pelicula + return f"No se encontró pelicula en el {anio}" + + def muestratodaspeliculas(self): + """ + Muestra todas las peliculas en la lista + """ + if not self.peliculas: + print("El catálogo está vacío.") + return 0 + + print("\n--- Catálogo de Películas ---") + for pelicula in self.peliculas: + print(pelicula) + +def main(): + """ + Función principal para demostrar el catálogo de películas + """ + # Crear instancia del catálogo + favorita1 = PeliculasFavoritas() + + # Agregar películas al catálogo + favorita1.agregapelicula(2010, "Inception", "Ciencia Ficción") + favorita1.agregapelicula(1972, "El Padrino", "Drama") + favorita1.agregapelicula(1999, "Matrix", "Ciencia Ficción") + + # Mostrar películas + favorita1.muestratodaspeliculas() + +# Ejercicio3: Defina un clase Pais con dos metodos +class Pregunta: + + def __init__(self, enunciado, opciones, respuesta): + """ + Constructor de la clase Pregunta + + Args: + enunciado (str): cadena de texto del enunciado + opciones (int): numero de opcion + respuesta (int): respuesta correcta + """ + self.enunciado = enunciado + self.opciones = opciones + self.respuesta = respuesta + + def __str__(self): + """ + Representación en cadena de la pregunta + """ + return f"{self.enunciado}" + + def visualizaopciones(self): + """ + Muestra las opciones de respuesta + """ + print(self.enunciado) + for i, opcion in enumerate(self.opciones, 1): + print(f"{i}. {opcion}") + + def verificarespuesta(self, respuesta_usuario): + """ + Verifica si la respuesta del usuario es correcta + + Args: + respuesta_usuario (int): respuesta seleccionada por el usuario + + Returns: + bool: True si la respuesta es correcta, False en caso contrario + """ + # Ajustar el índice para que coincida con la lista (restar 1) + return respuesta_usuario - 1 == self.respuesta + + def obtienerespuestacorrecta(self): + """ + Devuelve la respuesta correcta + + Returns: + str: Opción correcta + """ + return self.opciones[self.respuesta] + +# Ejemplo de pregunta +def main3(): + # Crear una pregunta + pregunta1 = Pregunta( + "¿Cuál es la capital de Francia?", + ["Londres", "Berlín", "París", "Madrid"], + 2 # París es la respuesta correcta (índice 2) + ) + + # Mostrar la pregunta y sus opciones + pregunta1.visualizaopciones() + + # Solicitar respuesta del usuario + try: + respuestausuario = int(input("^.^ Ingrese el número de su respuesta: ")) + + # Verificar la respuesta + if pregunta1.verificarespuesta(respuestausuario): + print("¡Respuesta correcta!") + else: + print(f"Respuesta incorrecta. La respuesta correcta es: {pregunta1.obtienerespuestacorrecta()}") + + except ValueError: + print("Por favor, ingrese un número válido.") + +if __name__ == '__main__': + + print("Programa de la Tarea 2") + print("Realizado por 2025 Edison TANA") + print("Enunciado 1") + pais1 = Pais('Ecuador','Ecuador','ECU') + pais2 = Pais('Colombia','Colombia','COL') + print(f" >> Pais: {pais1.nombreES}") + print(pais1.verCapital(pais1.nombreES)) + print(f"{pais1.verArea(pais1.nombreES)} km²") + print(f" >> Pais: {pais2.nombreES}") + print(pais2.verCapital(pais2.nombreES)) + print(f"{pais2.verArea(pais2.nombreES)} km²") + print("Enunciado 2") + main() + print("Enunciado 3") + main3() + print("Fin del programa") From 3de59ea2402cd0df9cf9add7658eebf2d5bf1e7d Mon Sep 17 00:00:00 2001 From: gnuleospython Date: Tue, 15 Jul 2025 12:27:58 -0500 Subject: [PATCH 89/95] subido leame --- proyecto/edisontana/README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 proyecto/edisontana/README.md diff --git a/proyecto/edisontana/README.md b/proyecto/edisontana/README.md new file mode 100644 index 0000000..13f6ee6 --- /dev/null +++ b/proyecto/edisontana/README.md @@ -0,0 +1,23 @@ + + +--- + +En breves momentos subo el proyecto + +--- + + +Por Edison TANA + +## Licencia + +[![CC BY-SA 4.0][cc-by-sa-shield]][cc-by-sa] + +Este trabajo está licenciado bajo +[Creative Commons Attribution-ShareAlike 4.0 International License][cc-by-sa]. + +[![CC BY-SA 4.0][cc-by-sa-image]][cc-by-sa] + +[cc-by-sa]: http://creativecommons.org/licenses/by-sa/4.0/ +[cc-by-sa-image]: https://licensebuttons.net/l/by-sa/4.0/88x31.png +[cc-by-sa-shield]: https://img.shields.io/badge/License-CC%20BY--SA%204.0-lightgrey.svg \ No newline at end of file From ef7352dbfcc2e730ca6cbcb2f9dad25ac6348fbf Mon Sep 17 00:00:00 2001 From: artifexefitra Date: Tue, 15 Jul 2025 15:23:32 -0500 Subject: [PATCH 90/95] Proyecto Final - Jorge Castellanos --- proyecto/jorge_luis_castellanos/app.py | 125 +++++++----------- .../telebot_complete.db | Bin 0 -> 12288 bytes 2 files changed, 49 insertions(+), 76 deletions(-) create mode 100644 proyecto/jorge_luis_castellanos/telebot_complete.db diff --git a/proyecto/jorge_luis_castellanos/app.py b/proyecto/jorge_luis_castellanos/app.py index 42ba10e..30ac87c 100644 --- a/proyecto/jorge_luis_castellanos/app.py +++ b/proyecto/jorge_luis_castellanos/app.py @@ -1,86 +1,59 @@ - -import sqlite3 +from telegram import Update, ReplyKeyboardMarkup +from telegram.ext import ( + ApplicationBuilder, CommandHandler, MessageHandler, ContextTypes, + filters, ConversationHandler +) +from mailjet_rest import Client +import requests import os import re -import requests -import telebot -from telebot import types +import sqlite3 from datetime import datetime from dotenv import load_dotenv +from telebot import TeleBot, types +import datetime -# Obtine el token del bot de las variables de entorno load_dotenv() -BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN") -if not BOT_TOKEN: - print("Error: La variable de entorno TELEGRAM_BOT_TOKEN no está configurada.") - print("Por favor, asegúrate de establecerla antes de ejecutar el script.") - exit() # Salir del script si no hay token +BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN") +bot = TeleBot(BOT_TOKEN) -# Inicializa el bot -bot = telebot.TeleBot(BOT_TOKEN) +# Estado temporal de los usuarios +user_data = {} -# Responde al comando /start @bot.message_handler(commands=['start']) -def send_welcome(message): - - user_name = message.from_user.first_name if message.from_user.first_name else "usuario" - bot.reply_to(message, f"¡Hola, {user_name}!\n Somos Terra Habitat Bienes Raices\n Selecciona una opción para poderte ayudar") - #print(f"Comando /start recibido de {message.from_user.username}") - - -# Inicializa el bot para que empiece a escuchar mensajes -print("Bot iniciando... Presiona Ctrl+C para detenerlo.") -bot.polling(none_stop=True, interval=0) # none_stop=True para que siga funcionando, interval=0 para polling rápido - - - - - - - - - - - - - - - -# # 4. Manejador para el comando /help -# @bot.message_handler(commands=['help']) -# def send_help(message): -# """ -# Responde al comando /help. -# """ -# help_text = """ -# Estos son los comandos que entiendo: -# /start - Inicia el bot y saluda. -# /help - Muestra este mensaje de ayuda. -# /echo [texto] - Repite el texto que le envíes. -# También puedo responder a cualquier mensaje de texto. -# """ -# bot.reply_to(message, help_text) -# print(f"Comando /help recibido de {message.from_user.username}") - -# # 5. Manejador para el comando /echo (con parámetros) -# @bot.message_handler(commands=['echo']) -# def echo_all(message): -# """ -# Repite el texto que sigue al comando /echo. -# """ -# if len(message.text.split()) > 1: -# text_to_echo = " ".join(message.text.split()[1:]) -# bot.reply_to(message, f"Me pediste que repita: {text_to_echo}") -# else: -# bot.reply_to(message, "Por favor, usa el comando /echo seguido del texto que quieres que repita. Ejemplo: /echo Hola mundo") -# print(f"Comando /echo recibido de {message.from_user.username}") - -# # 6. Manejador para mensajes de texto genéricos (cualquier otro mensaje que no sea un comando) -# @bot.message_handler(func=lambda message: True) # La función lambda 'True' hace que maneje todos los mensajes -# def echo_message(message): -# """ -# Responde a cualquier mensaje de texto que no sea un comando. -# """ -# bot.reply_to(message, f"Recibí tu mensaje: '{message.text}'") -# print(f"Mensaje de texto recibido de {message.from_user.username}: '{message.text}'") +def start(message): + bot.send_message(message.chat.id, "Hola...\nTe saluda Terra Habitat Bienes Raices\nPor favor, escribe tu nombre completo:") + bot.register_next_step_handler(message, process_nombre) + +def process_nombre(message): + user_data[message.chat.id] = {"nombre": message.text} + + bot.send_message(message.chat.id, "¿Qué servicio deseas? \n (Compra - Venta - Alquiler - Avalúo - Administración - Otro Servicio)") + bot.register_next_step_handler(message, process_servicio) + +def process_servicio(message): + user_data[message.chat.id]["servicio"] = message.text + + bot.send_message(message.chat.id, "Ayudame con tu número de teléfono") + bot.register_next_step_handler(message, process_telefono) + +def process_telefono(message): + user_data[message.chat.id]["telefono"] = message.text + + bot.send_message(message.chat.id, "Ayudame con tu correo electrónico") + bot.register_next_step_handler(message, cita) + +def cita(message): + user_data[message.chat.id]["time"] = message.text + data = user_data[message.chat.id] + + bot.send_message(message.chat.id, "🔹¡Tu cita ha sido registrada!\nUn Asesor te atendera de forma presonalizada") + resumen = f"🗓️*Resumen de tu cita:*\nNombre: {data['nombre']}\nServicio: {data['servicio']}\nTelefono: {data['telefono']}" + + bot.send_message(message.chat.id, resumen, parse_mode='Markdown') + + +if __name__ == "__main__": + print("Bot ejecutándose...") + bot.infinity_polling() \ No newline at end of file diff --git a/proyecto/jorge_luis_castellanos/telebot_complete.db b/proyecto/jorge_luis_castellanos/telebot_complete.db new file mode 100644 index 0000000000000000000000000000000000000000..f678dcbf264ec0be6f1b44b76d5fb3f6ef00e87e GIT binary patch literal 12288 zcmeI#y-ve05C?EOMIcq;W9!%(TeV_=2OuB|MYN#=BataGsewpMOBF)1(nX~jfndQdOnK%(riVGqkgyd14@9iq_ESu9jDuA z?J82fR;2yQo}#VV*4X5>%RAePKpr%jP5EJ}Gt*b&k|EF66Ys}4>t$-yi6a|Q5NdU; zA{s Date: Tue, 15 Jul 2025 15:24:58 -0500 Subject: [PATCH 91/95] Proyecto Final - Jorge Castellanos --- proyecto/jorge_luis_castellanos/readme.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 proyecto/jorge_luis_castellanos/readme.txt diff --git a/proyecto/jorge_luis_castellanos/readme.txt b/proyecto/jorge_luis_castellanos/readme.txt new file mode 100644 index 0000000..611d11c --- /dev/null +++ b/proyecto/jorge_luis_castellanos/readme.txt @@ -0,0 +1,5 @@ +Bot de Telegram + +Este bot crea una cita para contacto automatico con la Api de Telegram para la empresa de bienes raices Terra Habitat +Fue desarrollado con la libreria de Telebot y Telegram +Como caracteristicas futuras, se espera implementar el mismo bot con flask y posiblemente con Whatsapp ya que es el principal canal de comunicacion \ No newline at end of file From 4208cc5a8b87a3a7909bf191dd1b895d1128e78f Mon Sep 17 00:00:00 2001 From: Valeria Date: Tue, 15 Jul 2025 21:29:54 -0500 Subject: [PATCH 92/95] Proyecto - Valeria Ramos --- clase4/telebot.py | 250 ++++++++++------------- proyecto/valeria_ramos/app.py | 239 ++++++++++++++++++++++ proyecto/valeria_ramos/bodega_palermo.db | Bin 0 -> 16384 bytes 3 files changed, 351 insertions(+), 138 deletions(-) create mode 100644 proyecto/valeria_ramos/app.py create mode 100644 proyecto/valeria_ramos/bodega_palermo.db diff --git a/clase4/telebot.py b/clase4/telebot.py index 97cf391..115186c 100644 --- a/clase4/telebot.py +++ b/clase4/telebot.py @@ -1,9 +1,10 @@ -from telegram import Update, ReplyKeyboardMarkup +from telegram import ( + Update, InlineKeyboardButton, InlineKeyboardMarkup +) from telegram.ext import ( - ApplicationBuilder, CommandHandler, MessageHandler, ContextTypes, - filters, ConversationHandler + ApplicationBuilder, CommandHandler, CallbackQueryHandler, + MessageHandler, ContextTypes, filters, ConversationHandler ) -from mailjet_rest import Client import requests import os import re @@ -11,27 +12,28 @@ from datetime import datetime from dotenv import load_dotenv +# 📌 Cargar .env load_dotenv() - BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN") MAILJET_API_KEY = os.getenv("MAILJET_API_KEY") +MAILJET_SECRET_KEY = os.getenv("MAILJET_SECRET_KEY") MAILJET_URL = os.getenv("MAILJET_URL") -MAILJET_API_SECRET = os.getenv("MAILJET_SECRET_KEY") -MAILJET_FROM_NAME = os.getenv("MAILJET_FROM_NAME") EMAIL_FROM = os.getenv("EMAIL_FROM") -MENU, DATOS, AUTORIZACION, CONFIRMAR, ACCION = range(4) +# 📌 Estados +MENU, DATOS, AUTORIZACION, CONFIRMAR = range(4) +# 📌 Servicios de Bodega Palermo SERVICIOS = { - "1. 🌐 Web App": 1000, - "2. 📱 Mobile App": 1200, - "3. 🔌 API REST": 800, - "4. 📋 Consultoría": 500 + "🍷 Vinos": 25, + "🥃 Licores": 30, + "🍺 Cervezas": 15, + "🍾 Espumantes": 40 } -conn = sqlite3.connect("telebot_complete.db", check_same_thread=False) +# 📌 Base de datos +conn = sqlite3.connect("bodega_palermo.db", check_same_thread=False) cursor = conn.cursor() - cursor.execute(""" CREATE TABLE IF NOT EXISTS chat_data ( id INTEGER PRIMARY KEY AUTOINCREMENT, @@ -47,218 +49,190 @@ def guardar_interaccion(update: Update): user = update.effective_user username = user.username or "Sin username" - servicio = update.message.text - message_id = update.message.message_id - timestamp = datetime.now().isoformat() + servicio = "" + message_id = None + + if update.callback_query: + servicio = update.callback_query.data + message_id = update.callback_query.message.message_id + elif update.message: + servicio = update.message.text + message_id = update.message.message_id + timestamp = datetime.now().isoformat() cursor.execute(""" INSERT INTO chat_data (user_id, username, servicio, message_id, timestamp) VALUES (?, ?, ?, ?, ?) """, (user.id, username, servicio, message_id, timestamp)) conn.commit() -# Inicio del bot +# 📌 Inicio con menú interactivo async def start(update: Update, context: ContextTypes.DEFAULT_TYPE): mensaje = ( - "🚀 Bienvenido al *Bot de Servicios de Software*.\n\n" - "Por favor, selecciona un servicio de la lista:" + "🍷 *Bienvenido a Bodega Palermo* 🍾\n\n" + "Selecciona el producto que deseas consultar:" ) - keyboard = [[opcion] for opcion in SERVICIOS.keys()] + keyboard = [ + [InlineKeyboardButton(text=opcion, callback_data=opcion)] + for opcion in SERVICIOS.keys() + ] + reply_markup = InlineKeyboardMarkup(keyboard) + await update.message.reply_text( mensaje, - reply_markup=ReplyKeyboardMarkup(keyboard, resize_keyboard=True, one_time_keyboard=True), + reply_markup=reply_markup, parse_mode="Markdown" ) - guardar_interaccion(update) return MENU -# Selección del servicio -async def seleccionar_servicio(update: Update, context: ContextTypes.DEFAULT_TYPE): - servicio = update.message.text.strip() - if servicio in SERVICIOS: - context.user_data["servicio"] = servicio - await update.message.reply_text( - f"📝 Has seleccionado *{servicio}*.\n\nAhora escribe:\n1. Tu nombre completo\n2. Tu correo electrónico\n3. Una breve descripción del proyecto", - parse_mode="Markdown" - ) - guardar_interaccion(update) - return DATOS - else: - await update.message.reply_text("❌ Opción inválida. Selecciona un servicio del menú.") - return await start(update, context) +# 📌 Selección del producto +async def servicio_callback(update: Update, context: ContextTypes.DEFAULT_TYPE): + query = update.callback_query + await query.answer() + servicio = query.data + context.user_data["servicio"] = servicio -# Recolección de datos + await query.message.reply_text( + f"📋 Has seleccionado *{servicio}*.\n\n" + f"Por favor, indícanos:\n1. Tu nombre completo\n2. Tu correo electrónico\n3. Detalles del pedido", + parse_mode="Markdown" + ) + guardar_interaccion(update) + return DATOS + +# 📌 Recolección de datos async def recibir_datos(update: Update, context: ContextTypes.DEFAULT_TYPE): texto = update.message.text.strip() email = extraer_email(texto) if not email: await update.message.reply_text( - "❌ No se detectó un correo válido.\nPor favor, escribe tus datos nuevamente en este formato:\n\n`Nombre - correo@ejemplo.com - descripción`", + "❌ No detectamos un correo válido.\nPor favor escribe:\n`Nombre - correo@ejemplo.com - detalles del pedido`", parse_mode="Markdown" ) - guardar_interaccion(update) return DATOS context.user_data["datos"] = texto - keyboard = [["✅ Sí", "❌ No"]] + await update.message.reply_text( - "🔐 ¿Autorizas el uso de tus datos para contactarte y procesar tu pedido?\nSelecciona una opción: \n✅ Sí / ❌ No", - reply_markup=ReplyKeyboardMarkup(keyboard, resize_keyboard=True, one_time_keyboard=True) + "🔐 ¿Autorizas a Bodega Palermo a usar tus datos para procesar tu pedido?", + reply_markup=InlineKeyboardMarkup([ + [InlineKeyboardButton("✅ Sí", callback_data="si")], + [InlineKeyboardButton("❌ No", callback_data="no")] + ]) ) guardar_interaccion(update) return AUTORIZACION -async def autorizacion(update: Update, context: ContextTypes.DEFAULT_TYPE): - respuesta = update.message.text.lower() - if "sí" in respuesta or "si" in respuesta or "✅" in respuesta: +# 📌 Autorización +async def autorizacion_callback(update: Update, context: ContextTypes.DEFAULT_TYPE): + query = update.callback_query + await query.answer() + respuesta = query.data.lower() + + if "si" in respuesta: servicio = context.user_data["servicio"] precio = SERVICIOS[servicio] - keyboard = [["✅ Confirmar", "❌ Cancelar"]] - await update.message.reply_text( - f"💰 El precio de *{servicio}* es de *${precio}*.\n\n¿Deseas confirmar el pedido?\n✅ Confirmar / ❌ Cancelar", - reply_markup=ReplyKeyboardMarkup(keyboard, resize_keyboard=True, one_time_keyboard=True), - parse_mode="Markdown" + await query.message.reply_text( + f"💵 El precio estimado de *{servicio}* es de *${precio}* por unidad.\n\n¿Deseas confirmar tu pedido?", + parse_mode="Markdown", + reply_markup=InlineKeyboardMarkup([ + [InlineKeyboardButton("✅ Confirmar", callback_data="confirmar")], + [InlineKeyboardButton("❌ Cancelar", callback_data="cancelar")] + ]) ) guardar_interaccion(update) return CONFIRMAR - elif "no" in respuesta or "❌" in respuesta: - await update.message.reply_text("🚫 No podemos continuar sin tu autorización. Escribe /start para comenzar de nuevo.") - return ConversationHandler.END else: - await update.message.reply_text("❌ Respuesta inválida. Selecciona *Sí* o *No* desde el menú.") - return AUTORIZACION + await query.message.reply_text( + "🚫 No podemos continuar sin tu autorización.\nUsa /start para iniciar de nuevo." + ) + return ConversationHandler.END -# Confirmación del pedido -async def confirmar(update: Update, context: ContextTypes.DEFAULT_TYPE): - texto = update.message.text.lower() - guardar_interaccion(update) - if "confirmar" in texto or "✅" in texto: +# 📌 Confirmación +async def confirmar_callback(update: Update, context: ContextTypes.DEFAULT_TYPE): + query = update.callback_query + await query.answer() + accion = query.data.lower() + + if "confirmar" in accion: servicio = context.user_data["servicio"] descripcion = context.user_data["datos"] precio = SERVICIOS[servicio] correo = extraer_email(descripcion) mensaje = ( - f"🎉 *Gracias por tu pedido!*\n\n" - f"✅ *Servicio:* {servicio}\n" - f"📝 *Descripción:* {descripcion}\n" - f"💵 *Precio:* ${precio}\n\n" - "Nos pondremos en contacto contigo pronto. 📧" + f"🍷 *Bodega Palermo* 🍾\n\n" + f"✅ *Producto:* {servicio}\n" + f"📝 *Detalles:* {descripcion}\n" + f"💵 *Precio estimado:* ${precio}\n\n" + "Nos pondremos en contacto contigo pronto. ¡Gracias por tu pedido!" ) - - print("email", descripcion, precio, correo) - print("mensaje", mensaje) if correo: - enviado = enviar_mailjet(context, correo, MAILJET_FROM_NAME + " Confirmación de tu pedido", mensaje) + enviado = enviar_mailjet(context, correo, f"Confirmación de pedido - Bodega Palermo", mensaje) if enviado: - await update.message.reply_text("📧 Correo de confirmación enviado con éxito ✅") + await query.message.reply_text("📧 Correo de confirmación enviado ✅") else: - await update.message.reply_text("⚠️ Hubo un error al enviar el correo.") + await query.message.reply_text("⚠️ Ocurrió un error al enviar el correo.") else: - await update.message.reply_text("⚠️ El correo no se detectó correctamente. No se envió el correo.") + await query.message.reply_text("⚠️ Correo no detectado correctamente.") - await update.message.reply_text("¿Necesitas algo más? Escribe /start para hacer otro pedido.") - return ConversationHandler.END - elif "cancelar" in texto or "❌" in texto: - await update.message.reply_text("❌ Pedido cancelado. Si deseas iniciar de nuevo, escribe /start.") + await query.message.reply_text("🍾 Si deseas realizar otro pedido, usa /start.") + guardar_interaccion(update) return ConversationHandler.END + else: - await update.message.reply_text("❌ Respuesta inválida. Selecciona *Confirmar* o *Cancelar* desde el menú.") - return MENU + await query.message.reply_text( + "❌ Pedido cancelado. Usa /start para comenzar de nuevo cuando quieras." + ) + return ConversationHandler.END -# Extraer correo desde un texto +# 📌 Extraer correo def extraer_email(texto): match = re.search(r'[\w\.-]+@[\w\.-]+\.\w+', texto) return match.group(0) if match else None +# 📌 Enviar correo def enviar_mailjet(context, destinatario, asunto, contenido): - # data = { - # 'Messages': [ - # { - # "From": { - # "Email": EMAIL_FROM, - # "Name": "Servicios de Software" - # }, - # "To": [ - # { - # "Email": destinatario, - # "Name": "Cliente" - # } - # ], - # "Subject": asunto, - # "TextPart": contenido - # } - # ] - # } - data = { "Messages": [ { - "From": { - "Email": os.getenv("EMAIL_FROM"), - "Name": "Servicios de Software" - }, - "To": [ - { - "Email": destinatario, - "Name": "Cliente" - } - ], + "From": {"Email": EMAIL_FROM, "Name": "Bodega Palermo"}, + "To": [{"Email": destinatario}], "Subject": asunto, - "HTMLPart": f""" -
-

🎉 ¡Gracias por tu pedido!

-

Servicio: {context.user_data['servicio']}

-

📝 Descripción: {context.user_data['datos']}

-

💵 Precio: ${SERVICIOS[context.user_data['servicio']]}

- - Gracias por tu pedido - -

Haz clic en el botón para visitar nuestra página:

- - Ir a la página 🚀 - - -
- """ + "TextPart": contenido } ] } - try: response = requests.post( MAILJET_URL, json=data, - auth=(MAILJET_API_KEY, MAILJET_API_SECRET), - timeout=(3.05, 5) + auth=(MAILJET_API_KEY, MAILJET_SECRET_KEY) ) - print(f"📨 Mailjet response: {response.status_code} - {response.text}") + print(f"Mailjet: {response.status_code} - {response.text}") return response.status_code == 200 except Exception as e: - print(f"❌ Error enviando correo con Mailjet: {e}") + print(f"❌ Error: {e}") return False -# Main +# 📌 Main def main(): app = ApplicationBuilder().token(BOT_TOKEN).build() conv_handler = ConversationHandler( entry_points=[CommandHandler("start", start)], states={ - MENU: [MessageHandler(filters.TEXT & ~filters.COMMAND, seleccionar_servicio)], + MENU: [CallbackQueryHandler(servicio_callback)], DATOS: [MessageHandler(filters.TEXT & ~filters.COMMAND, recibir_datos)], - AUTORIZACION: [MessageHandler(filters.TEXT & ~filters.COMMAND, autorizacion)], - CONFIRMAR: [MessageHandler(filters.TEXT & ~filters.COMMAND, confirmar)], + AUTORIZACION: [CallbackQueryHandler(autorizacion_callback)], + CONFIRMAR: [CallbackQueryHandler(confirmar_callback)], }, fallbacks=[], ) app.add_handler(conv_handler) - print("🤖 Bot en ejecución...") + print("🍾 Bot Bodega Palermo en ejecución...") app.run_polling() if __name__ == "__main__": diff --git a/proyecto/valeria_ramos/app.py b/proyecto/valeria_ramos/app.py new file mode 100644 index 0000000..115186c --- /dev/null +++ b/proyecto/valeria_ramos/app.py @@ -0,0 +1,239 @@ +from telegram import ( + Update, InlineKeyboardButton, InlineKeyboardMarkup +) +from telegram.ext import ( + ApplicationBuilder, CommandHandler, CallbackQueryHandler, + MessageHandler, ContextTypes, filters, ConversationHandler +) +import requests +import os +import re +import sqlite3 +from datetime import datetime +from dotenv import load_dotenv + +# 📌 Cargar .env +load_dotenv() +BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN") +MAILJET_API_KEY = os.getenv("MAILJET_API_KEY") +MAILJET_SECRET_KEY = os.getenv("MAILJET_SECRET_KEY") +MAILJET_URL = os.getenv("MAILJET_URL") +EMAIL_FROM = os.getenv("EMAIL_FROM") + +# 📌 Estados +MENU, DATOS, AUTORIZACION, CONFIRMAR = range(4) + +# 📌 Servicios de Bodega Palermo +SERVICIOS = { + "🍷 Vinos": 25, + "🥃 Licores": 30, + "🍺 Cervezas": 15, + "🍾 Espumantes": 40 +} + +# 📌 Base de datos +conn = sqlite3.connect("bodega_palermo.db", check_same_thread=False) +cursor = conn.cursor() +cursor.execute(""" +CREATE TABLE IF NOT EXISTS chat_data ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER, + username TEXT, + servicio TEXT, + message_id INTEGER, + timestamp TEXT +) +""") +conn.commit() + +def guardar_interaccion(update: Update): + user = update.effective_user + username = user.username or "Sin username" + servicio = "" + message_id = None + + if update.callback_query: + servicio = update.callback_query.data + message_id = update.callback_query.message.message_id + elif update.message: + servicio = update.message.text + message_id = update.message.message_id + + timestamp = datetime.now().isoformat() + cursor.execute(""" + INSERT INTO chat_data (user_id, username, servicio, message_id, timestamp) + VALUES (?, ?, ?, ?, ?) + """, (user.id, username, servicio, message_id, timestamp)) + conn.commit() + +# 📌 Inicio con menú interactivo +async def start(update: Update, context: ContextTypes.DEFAULT_TYPE): + mensaje = ( + "🍷 *Bienvenido a Bodega Palermo* 🍾\n\n" + "Selecciona el producto que deseas consultar:" + ) + keyboard = [ + [InlineKeyboardButton(text=opcion, callback_data=opcion)] + for opcion in SERVICIOS.keys() + ] + reply_markup = InlineKeyboardMarkup(keyboard) + + await update.message.reply_text( + mensaje, + reply_markup=reply_markup, + parse_mode="Markdown" + ) + return MENU + +# 📌 Selección del producto +async def servicio_callback(update: Update, context: ContextTypes.DEFAULT_TYPE): + query = update.callback_query + await query.answer() + servicio = query.data + context.user_data["servicio"] = servicio + + await query.message.reply_text( + f"📋 Has seleccionado *{servicio}*.\n\n" + f"Por favor, indícanos:\n1. Tu nombre completo\n2. Tu correo electrónico\n3. Detalles del pedido", + parse_mode="Markdown" + ) + guardar_interaccion(update) + return DATOS + +# 📌 Recolección de datos +async def recibir_datos(update: Update, context: ContextTypes.DEFAULT_TYPE): + texto = update.message.text.strip() + email = extraer_email(texto) + if not email: + await update.message.reply_text( + "❌ No detectamos un correo válido.\nPor favor escribe:\n`Nombre - correo@ejemplo.com - detalles del pedido`", + parse_mode="Markdown" + ) + return DATOS + + context.user_data["datos"] = texto + + await update.message.reply_text( + "🔐 ¿Autorizas a Bodega Palermo a usar tus datos para procesar tu pedido?", + reply_markup=InlineKeyboardMarkup([ + [InlineKeyboardButton("✅ Sí", callback_data="si")], + [InlineKeyboardButton("❌ No", callback_data="no")] + ]) + ) + guardar_interaccion(update) + return AUTORIZACION + +# 📌 Autorización +async def autorizacion_callback(update: Update, context: ContextTypes.DEFAULT_TYPE): + query = update.callback_query + await query.answer() + respuesta = query.data.lower() + + if "si" in respuesta: + servicio = context.user_data["servicio"] + precio = SERVICIOS[servicio] + await query.message.reply_text( + f"💵 El precio estimado de *{servicio}* es de *${precio}* por unidad.\n\n¿Deseas confirmar tu pedido?", + parse_mode="Markdown", + reply_markup=InlineKeyboardMarkup([ + [InlineKeyboardButton("✅ Confirmar", callback_data="confirmar")], + [InlineKeyboardButton("❌ Cancelar", callback_data="cancelar")] + ]) + ) + guardar_interaccion(update) + return CONFIRMAR + else: + await query.message.reply_text( + "🚫 No podemos continuar sin tu autorización.\nUsa /start para iniciar de nuevo." + ) + return ConversationHandler.END + +# 📌 Confirmación +async def confirmar_callback(update: Update, context: ContextTypes.DEFAULT_TYPE): + query = update.callback_query + await query.answer() + accion = query.data.lower() + + if "confirmar" in accion: + servicio = context.user_data["servicio"] + descripcion = context.user_data["datos"] + precio = SERVICIOS[servicio] + correo = extraer_email(descripcion) + + mensaje = ( + f"🍷 *Bodega Palermo* 🍾\n\n" + f"✅ *Producto:* {servicio}\n" + f"📝 *Detalles:* {descripcion}\n" + f"💵 *Precio estimado:* ${precio}\n\n" + "Nos pondremos en contacto contigo pronto. ¡Gracias por tu pedido!" + ) + + if correo: + enviado = enviar_mailjet(context, correo, f"Confirmación de pedido - Bodega Palermo", mensaje) + if enviado: + await query.message.reply_text("📧 Correo de confirmación enviado ✅") + else: + await query.message.reply_text("⚠️ Ocurrió un error al enviar el correo.") + else: + await query.message.reply_text("⚠️ Correo no detectado correctamente.") + + await query.message.reply_text("🍾 Si deseas realizar otro pedido, usa /start.") + guardar_interaccion(update) + return ConversationHandler.END + + else: + await query.message.reply_text( + "❌ Pedido cancelado. Usa /start para comenzar de nuevo cuando quieras." + ) + return ConversationHandler.END + +# 📌 Extraer correo +def extraer_email(texto): + match = re.search(r'[\w\.-]+@[\w\.-]+\.\w+', texto) + return match.group(0) if match else None + +# 📌 Enviar correo +def enviar_mailjet(context, destinatario, asunto, contenido): + data = { + "Messages": [ + { + "From": {"Email": EMAIL_FROM, "Name": "Bodega Palermo"}, + "To": [{"Email": destinatario}], + "Subject": asunto, + "TextPart": contenido + } + ] + } + try: + response = requests.post( + MAILJET_URL, + json=data, + auth=(MAILJET_API_KEY, MAILJET_SECRET_KEY) + ) + print(f"Mailjet: {response.status_code} - {response.text}") + return response.status_code == 200 + except Exception as e: + print(f"❌ Error: {e}") + return False + +# 📌 Main +def main(): + app = ApplicationBuilder().token(BOT_TOKEN).build() + + conv_handler = ConversationHandler( + entry_points=[CommandHandler("start", start)], + states={ + MENU: [CallbackQueryHandler(servicio_callback)], + DATOS: [MessageHandler(filters.TEXT & ~filters.COMMAND, recibir_datos)], + AUTORIZACION: [CallbackQueryHandler(autorizacion_callback)], + CONFIRMAR: [CallbackQueryHandler(confirmar_callback)], + }, + fallbacks=[], + ) + + app.add_handler(conv_handler) + print("🍾 Bot Bodega Palermo en ejecución...") + app.run_polling() + +if __name__ == "__main__": + main() diff --git a/proyecto/valeria_ramos/bodega_palermo.db b/proyecto/valeria_ramos/bodega_palermo.db new file mode 100644 index 0000000000000000000000000000000000000000..ad981c3ccf936c0ceda9bf8fa95c0e7347cf5fa5 GIT binary patch literal 16384 zcmeI(O-jQ+6bJB`MlFiA?z$+_*$9@l(x%q0l~IBeYppecU6nK)b)adqiMm$7Yq;_n z?p$~VFCm`5N$t1bLJ*<+9|<#=c@r|ftR5sshXvtrcIvcj(_>jOPbei@j1fW!L4)CtJY<|*O}NU>zbi6L)$LstT)V-W|$07XZfO`@9Je%D(CmLa)s^b6{Z~< z2l=90xvv+EWIOZ9<*jNzy+7DAZO#n+q?0Gpu7xF>fgzi_u6f44t@ebR@l5-oojVgR z1*Rg21g*4p;$Ajnom+MJexq*H`g!B$~|svBLjh;r;RHo)v`Uw79#Vrqx_3y_U-4 TjLiC`y0NL|meVV%IW_wU8!op! literal 0 HcmV?d00001 From 8e6cf704cb8c7aca50ada05c1518f9663fb65261 Mon Sep 17 00:00:00 2001 From: Valeria Date: Tue, 15 Jul 2025 21:33:22 -0500 Subject: [PATCH 93/95] proyecto - valeria ramos --- proyecto/valeria_ramos/app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proyecto/valeria_ramos/app.py b/proyecto/valeria_ramos/app.py index 115186c..3852d3b 100644 --- a/proyecto/valeria_ramos/app.py +++ b/proyecto/valeria_ramos/app.py @@ -70,7 +70,7 @@ def guardar_interaccion(update: Update): async def start(update: Update, context: ContextTypes.DEFAULT_TYPE): mensaje = ( "🍷 *Bienvenido a Bodega Palermo* 🍾\n\n" - "Selecciona el producto que deseas consultar:" + "Selecciona el producto que deseas consultar por favor:" ) keyboard = [ [InlineKeyboardButton(text=opcion, callback_data=opcion)] From 92eebbf7da071b3a9beebcb3b01a640af74acd5a Mon Sep 17 00:00:00 2001 From: Valeria Date: Tue, 15 Jul 2025 21:50:29 -0500 Subject: [PATCH 94/95] ajustes --- clase4/telebot.py | 250 +++++++++++++++++++++++++--------------------- 1 file changed, 138 insertions(+), 112 deletions(-) diff --git a/clase4/telebot.py b/clase4/telebot.py index 115186c..97cf391 100644 --- a/clase4/telebot.py +++ b/clase4/telebot.py @@ -1,10 +1,9 @@ -from telegram import ( - Update, InlineKeyboardButton, InlineKeyboardMarkup -) +from telegram import Update, ReplyKeyboardMarkup from telegram.ext import ( - ApplicationBuilder, CommandHandler, CallbackQueryHandler, - MessageHandler, ContextTypes, filters, ConversationHandler + ApplicationBuilder, CommandHandler, MessageHandler, ContextTypes, + filters, ConversationHandler ) +from mailjet_rest import Client import requests import os import re @@ -12,28 +11,27 @@ from datetime import datetime from dotenv import load_dotenv -# 📌 Cargar .env load_dotenv() + BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN") MAILJET_API_KEY = os.getenv("MAILJET_API_KEY") -MAILJET_SECRET_KEY = os.getenv("MAILJET_SECRET_KEY") MAILJET_URL = os.getenv("MAILJET_URL") +MAILJET_API_SECRET = os.getenv("MAILJET_SECRET_KEY") +MAILJET_FROM_NAME = os.getenv("MAILJET_FROM_NAME") EMAIL_FROM = os.getenv("EMAIL_FROM") -# 📌 Estados -MENU, DATOS, AUTORIZACION, CONFIRMAR = range(4) +MENU, DATOS, AUTORIZACION, CONFIRMAR, ACCION = range(4) -# 📌 Servicios de Bodega Palermo SERVICIOS = { - "🍷 Vinos": 25, - "🥃 Licores": 30, - "🍺 Cervezas": 15, - "🍾 Espumantes": 40 + "1. 🌐 Web App": 1000, + "2. 📱 Mobile App": 1200, + "3. 🔌 API REST": 800, + "4. 📋 Consultoría": 500 } -# 📌 Base de datos -conn = sqlite3.connect("bodega_palermo.db", check_same_thread=False) +conn = sqlite3.connect("telebot_complete.db", check_same_thread=False) cursor = conn.cursor() + cursor.execute(""" CREATE TABLE IF NOT EXISTS chat_data ( id INTEGER PRIMARY KEY AUTOINCREMENT, @@ -49,190 +47,218 @@ def guardar_interaccion(update: Update): user = update.effective_user username = user.username or "Sin username" - servicio = "" - message_id = None - - if update.callback_query: - servicio = update.callback_query.data - message_id = update.callback_query.message.message_id - elif update.message: - servicio = update.message.text - message_id = update.message.message_id - + servicio = update.message.text + message_id = update.message.message_id timestamp = datetime.now().isoformat() + cursor.execute(""" INSERT INTO chat_data (user_id, username, servicio, message_id, timestamp) VALUES (?, ?, ?, ?, ?) """, (user.id, username, servicio, message_id, timestamp)) conn.commit() -# 📌 Inicio con menú interactivo +# Inicio del bot async def start(update: Update, context: ContextTypes.DEFAULT_TYPE): mensaje = ( - "🍷 *Bienvenido a Bodega Palermo* 🍾\n\n" - "Selecciona el producto que deseas consultar:" + "🚀 Bienvenido al *Bot de Servicios de Software*.\n\n" + "Por favor, selecciona un servicio de la lista:" ) - keyboard = [ - [InlineKeyboardButton(text=opcion, callback_data=opcion)] - for opcion in SERVICIOS.keys() - ] - reply_markup = InlineKeyboardMarkup(keyboard) - + keyboard = [[opcion] for opcion in SERVICIOS.keys()] await update.message.reply_text( mensaje, - reply_markup=reply_markup, + reply_markup=ReplyKeyboardMarkup(keyboard, resize_keyboard=True, one_time_keyboard=True), parse_mode="Markdown" ) + guardar_interaccion(update) return MENU -# 📌 Selección del producto -async def servicio_callback(update: Update, context: ContextTypes.DEFAULT_TYPE): - query = update.callback_query - await query.answer() - servicio = query.data - context.user_data["servicio"] = servicio - - await query.message.reply_text( - f"📋 Has seleccionado *{servicio}*.\n\n" - f"Por favor, indícanos:\n1. Tu nombre completo\n2. Tu correo electrónico\n3. Detalles del pedido", - parse_mode="Markdown" - ) - guardar_interaccion(update) - return DATOS +# Selección del servicio +async def seleccionar_servicio(update: Update, context: ContextTypes.DEFAULT_TYPE): + servicio = update.message.text.strip() + if servicio in SERVICIOS: + context.user_data["servicio"] = servicio + await update.message.reply_text( + f"📝 Has seleccionado *{servicio}*.\n\nAhora escribe:\n1. Tu nombre completo\n2. Tu correo electrónico\n3. Una breve descripción del proyecto", + parse_mode="Markdown" + ) + guardar_interaccion(update) + return DATOS + else: + await update.message.reply_text("❌ Opción inválida. Selecciona un servicio del menú.") + return await start(update, context) -# 📌 Recolección de datos +# Recolección de datos async def recibir_datos(update: Update, context: ContextTypes.DEFAULT_TYPE): texto = update.message.text.strip() email = extraer_email(texto) if not email: await update.message.reply_text( - "❌ No detectamos un correo válido.\nPor favor escribe:\n`Nombre - correo@ejemplo.com - detalles del pedido`", + "❌ No se detectó un correo válido.\nPor favor, escribe tus datos nuevamente en este formato:\n\n`Nombre - correo@ejemplo.com - descripción`", parse_mode="Markdown" ) + guardar_interaccion(update) return DATOS context.user_data["datos"] = texto - + keyboard = [["✅ Sí", "❌ No"]] await update.message.reply_text( - "🔐 ¿Autorizas a Bodega Palermo a usar tus datos para procesar tu pedido?", - reply_markup=InlineKeyboardMarkup([ - [InlineKeyboardButton("✅ Sí", callback_data="si")], - [InlineKeyboardButton("❌ No", callback_data="no")] - ]) + "🔐 ¿Autorizas el uso de tus datos para contactarte y procesar tu pedido?\nSelecciona una opción: \n✅ Sí / ❌ No", + reply_markup=ReplyKeyboardMarkup(keyboard, resize_keyboard=True, one_time_keyboard=True) ) guardar_interaccion(update) return AUTORIZACION -# 📌 Autorización -async def autorizacion_callback(update: Update, context: ContextTypes.DEFAULT_TYPE): - query = update.callback_query - await query.answer() - respuesta = query.data.lower() - - if "si" in respuesta: +async def autorizacion(update: Update, context: ContextTypes.DEFAULT_TYPE): + respuesta = update.message.text.lower() + if "sí" in respuesta or "si" in respuesta or "✅" in respuesta: servicio = context.user_data["servicio"] precio = SERVICIOS[servicio] - await query.message.reply_text( - f"💵 El precio estimado de *{servicio}* es de *${precio}* por unidad.\n\n¿Deseas confirmar tu pedido?", - parse_mode="Markdown", - reply_markup=InlineKeyboardMarkup([ - [InlineKeyboardButton("✅ Confirmar", callback_data="confirmar")], - [InlineKeyboardButton("❌ Cancelar", callback_data="cancelar")] - ]) + keyboard = [["✅ Confirmar", "❌ Cancelar"]] + await update.message.reply_text( + f"💰 El precio de *{servicio}* es de *${precio}*.\n\n¿Deseas confirmar el pedido?\n✅ Confirmar / ❌ Cancelar", + reply_markup=ReplyKeyboardMarkup(keyboard, resize_keyboard=True, one_time_keyboard=True), + parse_mode="Markdown" ) guardar_interaccion(update) return CONFIRMAR - else: - await query.message.reply_text( - "🚫 No podemos continuar sin tu autorización.\nUsa /start para iniciar de nuevo." - ) + elif "no" in respuesta or "❌" in respuesta: + await update.message.reply_text("🚫 No podemos continuar sin tu autorización. Escribe /start para comenzar de nuevo.") return ConversationHandler.END + else: + await update.message.reply_text("❌ Respuesta inválida. Selecciona *Sí* o *No* desde el menú.") + return AUTORIZACION -# 📌 Confirmación -async def confirmar_callback(update: Update, context: ContextTypes.DEFAULT_TYPE): - query = update.callback_query - await query.answer() - accion = query.data.lower() - - if "confirmar" in accion: +# Confirmación del pedido +async def confirmar(update: Update, context: ContextTypes.DEFAULT_TYPE): + texto = update.message.text.lower() + guardar_interaccion(update) + if "confirmar" in texto or "✅" in texto: servicio = context.user_data["servicio"] descripcion = context.user_data["datos"] precio = SERVICIOS[servicio] correo = extraer_email(descripcion) mensaje = ( - f"🍷 *Bodega Palermo* 🍾\n\n" - f"✅ *Producto:* {servicio}\n" - f"📝 *Detalles:* {descripcion}\n" - f"💵 *Precio estimado:* ${precio}\n\n" - "Nos pondremos en contacto contigo pronto. ¡Gracias por tu pedido!" + f"🎉 *Gracias por tu pedido!*\n\n" + f"✅ *Servicio:* {servicio}\n" + f"📝 *Descripción:* {descripcion}\n" + f"💵 *Precio:* ${precio}\n\n" + "Nos pondremos en contacto contigo pronto. 📧" ) + + print("email", descripcion, precio, correo) + print("mensaje", mensaje) if correo: - enviado = enviar_mailjet(context, correo, f"Confirmación de pedido - Bodega Palermo", mensaje) + enviado = enviar_mailjet(context, correo, MAILJET_FROM_NAME + " Confirmación de tu pedido", mensaje) if enviado: - await query.message.reply_text("📧 Correo de confirmación enviado ✅") + await update.message.reply_text("📧 Correo de confirmación enviado con éxito ✅") else: - await query.message.reply_text("⚠️ Ocurrió un error al enviar el correo.") + await update.message.reply_text("⚠️ Hubo un error al enviar el correo.") else: - await query.message.reply_text("⚠️ Correo no detectado correctamente.") + await update.message.reply_text("⚠️ El correo no se detectó correctamente. No se envió el correo.") - await query.message.reply_text("🍾 Si deseas realizar otro pedido, usa /start.") - guardar_interaccion(update) + await update.message.reply_text("¿Necesitas algo más? Escribe /start para hacer otro pedido.") return ConversationHandler.END - - else: - await query.message.reply_text( - "❌ Pedido cancelado. Usa /start para comenzar de nuevo cuando quieras." - ) + elif "cancelar" in texto or "❌" in texto: + await update.message.reply_text("❌ Pedido cancelado. Si deseas iniciar de nuevo, escribe /start.") return ConversationHandler.END + else: + await update.message.reply_text("❌ Respuesta inválida. Selecciona *Confirmar* o *Cancelar* desde el menú.") + return MENU -# 📌 Extraer correo +# Extraer correo desde un texto def extraer_email(texto): match = re.search(r'[\w\.-]+@[\w\.-]+\.\w+', texto) return match.group(0) if match else None -# 📌 Enviar correo def enviar_mailjet(context, destinatario, asunto, contenido): + # data = { + # 'Messages': [ + # { + # "From": { + # "Email": EMAIL_FROM, + # "Name": "Servicios de Software" + # }, + # "To": [ + # { + # "Email": destinatario, + # "Name": "Cliente" + # } + # ], + # "Subject": asunto, + # "TextPart": contenido + # } + # ] + # } + data = { "Messages": [ { - "From": {"Email": EMAIL_FROM, "Name": "Bodega Palermo"}, - "To": [{"Email": destinatario}], + "From": { + "Email": os.getenv("EMAIL_FROM"), + "Name": "Servicios de Software" + }, + "To": [ + { + "Email": destinatario, + "Name": "Cliente" + } + ], "Subject": asunto, - "TextPart": contenido + "HTMLPart": f""" +
+

🎉 ¡Gracias por tu pedido!

+

Servicio: {context.user_data['servicio']}

+

📝 Descripción: {context.user_data['datos']}

+

💵 Precio: ${SERVICIOS[context.user_data['servicio']]}

+ + Gracias por tu pedido + +

Haz clic en el botón para visitar nuestra página:

+ + Ir a la página 🚀 + + +
+ """ } ] } + try: response = requests.post( MAILJET_URL, json=data, - auth=(MAILJET_API_KEY, MAILJET_SECRET_KEY) + auth=(MAILJET_API_KEY, MAILJET_API_SECRET), + timeout=(3.05, 5) ) - print(f"Mailjet: {response.status_code} - {response.text}") + print(f"📨 Mailjet response: {response.status_code} - {response.text}") return response.status_code == 200 except Exception as e: - print(f"❌ Error: {e}") + print(f"❌ Error enviando correo con Mailjet: {e}") return False -# 📌 Main +# Main def main(): app = ApplicationBuilder().token(BOT_TOKEN).build() conv_handler = ConversationHandler( entry_points=[CommandHandler("start", start)], states={ - MENU: [CallbackQueryHandler(servicio_callback)], + MENU: [MessageHandler(filters.TEXT & ~filters.COMMAND, seleccionar_servicio)], DATOS: [MessageHandler(filters.TEXT & ~filters.COMMAND, recibir_datos)], - AUTORIZACION: [CallbackQueryHandler(autorizacion_callback)], - CONFIRMAR: [CallbackQueryHandler(confirmar_callback)], + AUTORIZACION: [MessageHandler(filters.TEXT & ~filters.COMMAND, autorizacion)], + CONFIRMAR: [MessageHandler(filters.TEXT & ~filters.COMMAND, confirmar)], }, fallbacks=[], ) app.add_handler(conv_handler) - print("🍾 Bot Bodega Palermo en ejecución...") + print("🤖 Bot en ejecución...") app.run_polling() if __name__ == "__main__": From 1c706d0197310e8b13a62e9fd198f35c4a969fb3 Mon Sep 17 00:00:00 2001 From: gnuleospython Date: Wed, 16 Jul 2025 02:00:03 -0500 Subject: [PATCH 95/95] subido proyecto bot con Telegram --- proyecto/edisontana/README.md | 9 +- .../proyectobot/mitelegrambotTopograf.py | 295 ++++++++++++++++++ 2 files changed, 298 insertions(+), 6 deletions(-) create mode 100644 proyecto/edisontana/proyectobot/mitelegrambotTopograf.py diff --git a/proyecto/edisontana/README.md b/proyecto/edisontana/README.md index 13f6ee6..6a953f4 100644 --- a/proyecto/edisontana/README.md +++ b/proyecto/edisontana/README.md @@ -1,20 +1,17 @@ - ---- - -En breves momentos subo el proyecto - --- +# Proyecto del bot en telegram Por Edison TANA +Archivo: mitelegrambotTopograf.py ## Licencia [![CC BY-SA 4.0][cc-by-sa-shield]][cc-by-sa] Este trabajo está licenciado bajo -[Creative Commons Attribution-ShareAlike 4.0 International License][cc-by-sa]. +[Creative Commons Attribution-ShareAlike 4.0 International License][cc-by-sa] y GNU GPL v3 [![CC BY-SA 4.0][cc-by-sa-image]][cc-by-sa] diff --git a/proyecto/edisontana/proyectobot/mitelegrambotTopograf.py b/proyecto/edisontana/proyectobot/mitelegrambotTopograf.py new file mode 100644 index 0000000..e6ecf94 --- /dev/null +++ b/proyecto/edisontana/proyectobot/mitelegrambotTopograf.py @@ -0,0 +1,295 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# mitelegrambotTopograf.py +# +# Copyright 2025 Edison TANA +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. +# +# Desarrollado en GNU_Linux + + +from telegram import Update, ReplyKeyboardMarkup +from telegram.ext import ( + ApplicationBuilder, CommandHandler, MessageHandler, ContextTypes, + filters, ConversationHandler +) +from mailjet_rest import Client +import requests +import os +import re +import sqlite3 +import logging +from datetime import datetime +from dotenv import load_dotenv + +load_dotenv() + +BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN") +api_key = os.getenv('MAILJET_API_KEY') +api_secret = os.getenv('MAILJET_SECRET_KEY') + +correoremite = os.getenv('EMAIL_REMITENTE') +correodestino = os.getenv('EMAIL_DESTINATARIO') + + +MAIN_MENU, FIRST_MENU, SECOND_MENU, THIRD_MENU = range(4) + +SERVICIOS = { + "1. 🗺️ Modelos de terreno en 3D": 100, + "2. 📏 Nivelaciones y replanteos": 12, + "3. 🌎 Levantamientos topograficos": 180, + "4. 👨 Asesoría topografica": 60 +} + +conn = sqlite3.connect("mibase.db", check_same_thread=False) +cursor = conn.cursor() + +cursor.execute(""" +CREATE TABLE IF NOT EXISTS chat_data ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER, + username TEXT, + servicio TEXT, + message_id INTEGER, + timestamp TEXT +) +""") +conn.commit() + +def guardar_interaccion(update: Update): + user = update.effective_user + username = user.username or "Sin username" + message_id = update.message.message_id + servicio = update.message.text + timestamp = datetime.now().isoformat() + + cursor.execute(""" + INSERT INTO chat_data (user_id, message_id, username, servicio, timestamp) + VALUES (?, ?, ?, ?, ?) + """, (user.id, username, servicio, message_id, timestamp)) + conn.commit() + +# Extraer correo desde un texto +def extraer_email(texto): + match = re.search(r'[\w\.-]+@[\w\.-]+\.\w+', texto) + return match.group(0) if match else None + +def enviarcorreos(context, correodestino, asunto, contenido): + + mailjet = Client(auth=(api_key, api_secret), version='v3.1') + data = { + 'Messages': [ + { + "From": { + "Email": correoremite, # Remove $ and use variable directly + "Name": "Info EuatorTopografia" + }, + "To": [ + { + "Email": correodestino, # Remove $ and use variable directly + "Name": "Cliente de equatortopografia " + } + ], + "Subject": asunto, + "TextPart": "Saludos desde Topografia!", + "HTMLPart": f""" +

Estimado usuario, bienvenido a EquatorTopografia!


Un gusto conectar con usted! +
+

Usted ha elegido el servicio de:

+
    +
  • +

    {context.user_data['servicio']}

    +
  • +
  • Su detalle es {context.user_data['datos']}
  • +
  • Su costo es ${SERVICIOS[context.user_data['servicio']]}
  • +
+
+ Gracias por escribirnos, hasta pronto. +
+

Más servicios

+
+
    +
  1. Modelos de terreno en 3D
  2. +
  3. Levantamientos topograficos
  4. +
  5. +

    Nivelaciones y replanteos con precision topografica

    +
  6. +
  7. +

    Georeferenciaciones

    +
  8. +
  9. +

    Digitalización topografica

    +
  10. +
+
+
+

Contacta por telegram con nuestro asesor en t.me/leosAcadUIO

+ """ + } + ] + } + + result = mailjet.send.create(data=data) + print(result.status_code) + print('Ok') + + +# Inicio del bot +async def start(update: Update, context: ContextTypes.DEFAULT_TYPE): + mensaje = ( + """ + Hola. Buen día \n 🌟 Bienvenido/a a AsistenteBot! (@academicobot) 🌟.\n + ______________________________________ + < Te ayudamos en soporte y asesoría de > + ----------------------------------------------------------------------- + + A continuacion elige un ítem de la lista: + """ + ) + keyboard = [[opcion] for opcion in SERVICIOS.keys()] + await update.message.reply_text( + mensaje, + reply_markup=ReplyKeyboardMarkup(keyboard, resize_keyboard=True, one_time_keyboard=True), + parse_mode="Markdown" + ) + guardar_interaccion(update) + return MAIN_MENU + +# Selección del servicio +async def seleccionar_servicio(update: Update, context: ContextTypes.DEFAULT_TYPE): + servicio = update.message.text.strip() + if servicio in SERVICIOS: + context.user_data["servicio"] = servicio + await update.message.reply_text( + f"📝 Has seleccionado *{servicio}*.\n\nPor favor, digita su:\n1. Nombre completo\n2. Correo electrónico\n3. Una breve detalle de su caso:", + parse_mode="Markdown" + ) + guardar_interaccion(update) + return FIRST_MENU + else: + await update.message.reply_text("Opción inválida. Selecciona un servicio del menú.") + return await start(update, context) + + +# Recolección de datos +async def recibir_datos(update: Update, context: ContextTypes.DEFAULT_TYPE): + texto = update.message.text.strip() + email = extraer_email(texto) + if not email: + await update.message.reply_text( + "Se encontró un error.\n De nuevo ingrese su informacion de acuerdo a este formato:\n\n`Nombre - correo@ejemplo.com - detalle`", + parse_mode="Markdown" + ) + guardar_interaccion(update) + return FIRST_MENU + + context.user_data["datos"] = texto + keyboard = [["Sí", "No"]] + await update.message.reply_text( + " Autorizo a EquatorTopografia a verificar la autenticidad de la información proporcionada y utilizarla para fines informativos. Entiendo que mis datos serán tratados conforme a la Ley de Protección de Datos Personales de EC.: \n SI / NO", + reply_markup=ReplyKeyboardMarkup(keyboard, resize_keyboard=True, one_time_keyboard=True) + ) + guardar_interaccion(update) + return SECOND_MENU + +async def autorizacion(update: Update, context: ContextTypes.DEFAULT_TYPE): + respuesta = update.message.text.lower() + # Fix: Remove redundant 'in respuesta' checks + if "si" in respuesta or "sí" in respuesta: + servicio = context.user_data["servicio"] + precio = SERVICIOS[servicio] + keyboard = [["✅ Confirmar", "❌ Cancelar"]] + await update.message.reply_text( + f"El *{servicio}* tiene un costo de *${precio}*.\n\n¿Deseas confirmar el pedido?\n Confirmar / Cancelar", + reply_markup=ReplyKeyboardMarkup(keyboard, resize_keyboard=True, one_time_keyboard=True), + parse_mode="Markdown" + ) + guardar_interaccion(update) + return THIRD_MENU + elif "no" in respuesta: + await update.message.reply_text("No podemos continuar sin tu autorización. Escribe /start para comenzar de nuevo.") + return ConversationHandler.END + else: + await update.message.reply_text("Respuesta inválida. Selecciona *Sí* o *No* desde el menú.") + return SECOND_MENU + +async def confirmar(update: Update, context: ContextTypes.DEFAULT_TYPE): + texto = update.message.text.lower() + guardar_interaccion(update) + # A + if "confirmar" in texto: + servicio = context.user_data["servicio"] + detalle = context.user_data["datos"] + precio = SERVICIOS[servicio] + correo = extraer_email(detalle) + correodestinos = correo + + mensaje = ( + f"*Gracias por tu pedido!*\n\n" + f"*Servicio:* {servicio}\n" + f"*Detalle:* {detalle}\n" + f"*Precio:* ${precio}\n\n" + "Nos pondremos en contacto contigo pronto. 📧" + ) + + # Optional: Add logging instead of print statements + logging.info(f"Email: {detalle}, Precio: {precio}, Correo: {correo}") + logging.info(f"Mensaje: {mensaje}") + + if correo: + try: + enviado = enviarcorreos(context, correodestinos, ":) Info sobre cotizacion para "+correo, mensaje) + await update.message.reply_text("Correo enviado exitosamente.") + except Exception as e: + logging.error(f"Error enviando correo: {e}") + await update.message.reply_text("Hubo un problema al enviar el correo.") + else: + await update.message.reply_text("Correo NO enviado") + + await update.message.reply_text("¿Requieres cotizarotro servicio? Digita /start para volver al menú principal") + return ConversationHandler.END + elif "cancelar" in texto or texto == "❌": + await update.message.reply_text("Servicio cancelado. Si deseas iniciar de nuevo, escribe /start.") + return ConversationHandler.END + else: + await update.message.reply_text("Respuesta inválida. Selecciona *Confirmar* o *Cancelar* desde el menú.") + return THIRD_MENU # Fix: Return to THIRD_MENU instead of MAIN_MENU + + + +# Mi funcion pincipal +def main(): + app = ApplicationBuilder().token(BOT_TOKEN).build() + + conv_handler = ConversationHandler( + entry_points=[CommandHandler("start", start)], + states={ + MAIN_MENU: [MessageHandler(filters.TEXT & ~filters.COMMAND, seleccionar_servicio)], + FIRST_MENU: [MessageHandler(filters.TEXT & ~filters.COMMAND, recibir_datos)], + SECOND_MENU: [MessageHandler(filters.TEXT & ~filters.COMMAND, autorizacion)], + THIRD_MENU: [MessageHandler(filters.TEXT & ~filters.COMMAND, confirmar)], + }, + fallbacks=[], + ) + + app.add_handler(conv_handler) + print("mi bot ejecutandose") + app.run_polling() + +if __name__ == "__main__": + main()