Commit inicial

This commit is contained in:
2024-08-02 12:00:57 -06:00
commit 4489b65e04
246 changed files with 83097 additions and 0 deletions

3
0info.php Normal file
View File

@@ -0,0 +1,3 @@
<?php
phpinfo();
?>

246
action_checador.php Normal file
View File

@@ -0,0 +1,246 @@
<?php
header('Expires: Sun, 01 Jan 2014 00:00:00 GMT');
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header("Content-Type: application/json; charset=utf-8");
header("Access-Control-Allow-Origin: *");
date_default_timezone_set('America/Mexico_City');
#die("error");
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
ignore_user_abort(true);
set_time_limit(0);
function error_response($failure, array $info = [], array $errores = [])
{
$mensajes = [
"clave" => "Faltó la clave del profesor",
"profesor" => "No se encontró el profesor",
"horario" => "No se encontró el horario",
"asistencia" => "No se pudo registrar la asistencia",
"hora" => "No se pudo obtener la hora",
];
die(json_encode(array_merge([
'ok' => false,
'msg' => $mensajes[$failure],
'failure' => $failure,
'errores' => $errores,
'horarios' => [],
'duplicadas' => [],
// 'env' => $_ENV,
], $info), JSON_PRETTY_PRINT));
}
require_once "include/bd_pdo.php";
require_once "include/LogAsistencias.php";
$log = new LogAsistencias();
$clave = $_POST['cve'] ?? $_GET['cve'] ?? null;
$log_id = $db->insert('log_registro', [
'clave' => $clave,
'ip' => $_SERVER['REMOTE_ADDR'],
'navegador' => $_SERVER['HTTP_USER_AGENT'] ?? 'Móvil',
'informacion' => 'Conexión',
'detalle' => 'Se hizo una conexión al servidor',
], 'log_id');
if (is_null($clave))
error_response("datos");
// Datos de usuario
$profesor = $db->querySingle(
"SELECT * FROM profesor WHERE profesor_clave::INT = :clave",
[':clave' => intval(preg_replace('/[^0-9]/', '', $clave))]
);
if (empty($profesor)) {
$log->appendLog($clave, "ND", "No registrada [Error] Msg: No se encontró el profesor");
$db->where('log_id', $log_id)->update(
'log_registro',
[
'informacion' => 'Profesor',
'detalle' => 'No registrada [Error] Msg: No se encontró el profesor',
]
);
error_response("profesor", array("clave" => $clave));
} else {
$db->where('log_id', $log_id)->update(
'log_registro',
[
'profesor' => $profesor['profesor_nombre'],
]
);
// profesor -> profesor_horario -> horario -> materia -> carrera
// get carreras from a profesor:
$carreras = array_map(
fn($carrera) => $carrera['carrera_id'],
$db->query(
"SELECT DISTINCT carrera_id FROM horario_profesor
join horario using (horario_id)
join materia using (materia_id)
join carrera using (carrera_id)
where profesor_id = :profesor_id",
[':profesor_id' => $profesor['profesor_id']]
)
);
}
$avisos = array_map(fn($aviso) => $aviso['aviso_texto'], $db
->join('aviso_profesor', 'aviso.aviso_id = aviso_profesor.aviso_id', 'LEFT')
->join('aviso_carrera', 'aviso.aviso_id = aviso_carrera.aviso_id', 'LEFT')
->where('carrera_id', $carreras)
->where('profesor_id', $profesor['profesor_id'], '=', 'OR')
->where('aviso_fecha_inicial', date('Y-m-d'), '<=')
->where('aviso_fecha_final', date('Y-m-d'), '>=')
->where('aviso_estado')
->get("aviso"));
$asistencia = $db->query(
isset($_POST['cve']) ?
"WITH horarios AS (
SELECT horario_view.*, profesor_id, CURRENT_TIME > (HORARIO_HORA + :retardo * INTERVAL '1 minute') as retardo FROM horario_view
join horario_profesor using (horario_id)
where CURRENT_TIME between horario_hora - interval '1 MINUTE' * :antes and horario_hora + interval '1 MINUTE' * :despues
and (HORARIO_DIA, PROFESOR_ID) = (EXTRACT('DOW' FROM CURRENT_DATE), :profesor_id)
),
reposiciones AS (
SELECT horario_view.*, profesor_id, CURRENT_TIME > (HORARIO_HORA + :retardo * INTERVAL '1 minute') as retardo FROM horario_view
join registro using (horario_id)
join reposicion using (reposicion_id)
where CURRENT_TIME between REPOSICION_HORA - interval '1 MINUTE' * :antes and REPOSICION_HORA + interval '1 MINUTE' * :despues
and (REPOSICION_FECHA, PROFESOR_ID) = (CURRENT_DATE, :profesor_id)
),
registros AS (
INSERT INTO public.registro(registro_fecha, registro_retardo, horario_id, registro_fecha_ideal, profesor_id)
select NOW(), retardo, horario_id, current_date, profesor_id from horarios
UNION
SELECT NOW(), retardo, horario_id, current_date, profesor_id from reposiciones
ON CONFLICT (horario_id, registro_fecha_ideal, profesor_id) DO UPDATE SET registro_fecha = COALESCE(registro.registro_fecha, NOW())
RETURNING *, (NOW() <> registro_fecha) duplicado
)
SELECT HORARIOS.*, REGISTROS.*
FROM horarios
LEFT JOIN registros using (horario_id, profesor_id)
UNION
SELECT REPOSICIONES.*, REGISTROS.*
FROM reposiciones
LEFT JOIN registros using (horario_id, profesor_id)
"
: (isset($_GET['cve']) ?
"SELECT *, registro_fecha is not null duplicado, :retardo FROM horario_view
join horario_profesor using (horario_id)
left join registro on (horario_view.horario_id, horario_profesor.profesor_id, current_date) = (registro.horario_id, registro.profesor_id, registro.registro_fecha_ideal)
where current_time between horario_hora - interval '1 MINUTE' * :antes and horario_hora + interval '1 MINUTE' * :despues
and (HORARIO_DIA, horario_profesor.PROFESOR_ID) = (EXTRACT('DOW' FROM CURRENT_DATE), :profesor_id)"
: "SELECT NULL"),
[
':antes' => $_ENV['ANTES'],
':despues' => $_ENV['DESPUES'],
':retardo' => $_ENV['RETARDO'],
':profesor_id' => $profesor['profesor_id'],
]
);
if (empty($asistencia)) {
$log->appendLog($profesor['profesor_clave'], $profesor['profesor_nombre'], "No registrada [Error] Msg: No se encontró el horario");
$db->where('log_id', $log_id)->update(
'log_registro',
[
'informacion' => 'Horario',
'detalle' => 'No registrada [Error] Msg: No se encontró el horario',
]
);
// if method post
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "{$_ENV['PAAD_URL']}/api/horario_profesor_log.php",
CURLOPT_TIMEOUT => 1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'profesor_id' => $profesor['profesor_id'],
'log_id' => $log_id,
])
]);
curl_exec($curl);
curl_close($curl);
}
error_response(
"horario",
info: [
'nombre' => $profesor['profesor_nombre'],
'avisos' => $avisos,
]
);
}
$duplicadas = array_filter($asistencia, fn($registro) => $registro['duplicado']);
$horarios = array_filter($asistencia, fn($registro) => !$registro['duplicado']);
if (!empty($duplicadas)) {
$log->appendLog($profesor['profesor_clave'], $profesor['profesor_nombre'], "No registrada [Duplicada] Msg: Ya se registró la asistencia");
$db->where('log_id', $log_id)->update(
'log_registro',
[
'informacion' => 'Asistencia',
'detalle' => 'No registrada [Duplicada] Msg: Ya se registró la asistencia',
'success' => true,
'horarios' => json_encode($asistencia),
]
);
} else {
$log->appendLog($profesor['profesor_clave'], $profesor['profesor_nombre'], "Registrada");
$db->where('log_id', $log_id)->update(
'log_registro',
[
'informacion' => 'Asistencia',
'detalle' => 'Registrada',
'success' => true,
'horarios' => json_encode($asistencia),
]
);
}
$duplicadas = array_reduce($duplicadas, function ($carry, $horario) use ($db) {
// $facultad = $horario['facultad_id'];
$facultad = $db->where('facultad_id', $horario['facultad_id'])->getOne('facultad')['facultad_nombre'];
if (!isset($carry[$facultad]))
$carry[$facultad] = [];
$carry[$facultad][] = $horario;
return $carry;
}, []);
// collect in one array all the horarios by facultad_nombre => {$horarios}
$horarios = array_reduce($horarios, function ($carry, $horario) use ($db) {
// $facultad = $horario['facultad_id'];
$facultad = $db->where('facultad_id', $horario['facultad_id'])->getOne('facultad')['facultad_nombre'];
if (!isset($carry[$facultad]))
$carry[$facultad] = [];
$carry[$facultad][] = $horario;
return $carry;
}, []);
die(json_encode([
'ok' => true,
'profesor' => $profesor,
'horarios' => $horarios,
'duplicadas' => $duplicadas,
'avisos' => $avisos,
], JSON_PRETTY_PRINT));

8
checador_alive.php Normal file
View File

@@ -0,0 +1,8 @@
<?php
/* AJAX
* checa que se haya restaurado la conexión al servidor
*/
$return["ok"] = 1;
$return["json"] = json_encode($return);
echo json_encode($return);
?>

1
css/bootstrap-ulsa.min.css vendored Normal file

File diff suppressed because one or more lines are too long

36
css/checador.css Normal file
View File

@@ -0,0 +1,36 @@
body { font-family: 'indivisa-text'; background-image: url('../imagenes/fondo.webp'); background-repeat: no-repeat; background-attachment: fixed; background-size: cover;
background-position: center; height: 100%; overflow: hidden; }
header { height: 15vh; }
main { height: 85vh; }
#logo { max-width: 190px; width: 100%; height: 100px; }
.hora { font-size: 4rem; border-right: 2px solid var(--white); line-height: 1.1; padding-bottom: 8px; }
.fecha { font-size: 1.9rem; line-height: 1.2em; }
#ano { font-size: 1.25rem; }
.checa-box { padding: 3rem; margin: 0; border-radius: 25px; background: var(--white); -webkit-box-shadow: 10px 10px 10px 1px rgb(34 34 34 / 50%); -moz-box-shadow: 10px 10px 10px 1px rgb(34 34 34 / 50%); box-shadow: 10px 10px 10px 1px rgb(34 34 34 / 50%); }
h1, h2, h3 { letter-spacing: 1px; position: relative; margin: 0; }
.sub-bloque { padding: 1rem 10rem 3rem 10rem; }
.text-blue { color: #42BDA6; }
.text-big { font-size: 3.5rem; }
.text-warning { color: #FF891A !important; }
/***** REGISTRO *****/
.titRegistro { margin: 0; letter-spacing: 1px; font-size: 5rem; }
.inputChecar { max-width: 450px; }
#cve, #btnChecar { font-size: 2rem; }
#cve { outline: none; color: #DBDBDB; background: transparent; border: 1px solid #DBDBDB; border-radius: 10px 0 0 10px; vertical-align: middle; text-align: center;
padding: 10px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
#cve:focus { border-color: #001d68; color: #001d68; }
#btnChecar { border-radius: 0 10px 10px 0; }
#formaChecador { padding: 4rem; }
#btnChecar:hover { background: #101097 !important; }
#lista-avisos>hr:last-of-type { display: none; }
/***** ICONOS *****/
.iconos { position: absolute; width: 200px; }
#icon_registro, #icon_duplicada, #icon_internet { bottom: 2rem; right: -8.5rem; }
#icon_asistencia { top: -2rem; left: -9rem; }
#icon_retardo { top: -8rem; left: 2rem; }
#icon_horario { bottom: -4rem; left: -9rem; }
#icon_error { top: -6rem; right: -4rem; }
#icon_clave { bottom: -8rem; right: -4rem; }
#icon_avisos { bottom: 1rem; left: -9rem; }

162
css/indivisa.css Normal file
View File

@@ -0,0 +1,162 @@
/*
Created on : 5/12/2018, 01:25:27 PM
Author : Alejandro
Indivisa Fonts
*/
@font-face {
font-family: 'indivisa-display-thin';
src: url('../fonts/indivisaFont/eot/IndivisaDisplaySans-Thin.eot');
src:
url('../fonts/indivisaFont/woff/IndivisaDisplaySans-Thin.woff'),
url('../fonts/indivisaFont/ttf/IndivisaDisplaySans-Thin.ttf') ,
url('../fonts/indivisaFont/eot/IndivisaDisplaySans-Thin.svg#IndivisaDisplaySans-Thin');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'indivisa-display-thin-italic';
src: url('../fonts/indivisaFont/eot/IndivisaDisplaySans-ThinItalic.eot');
src:
url('../fonts/indivisaFont/woff/IndivisaDisplaySans-ThinItalic.woff'),
url('../fonts/indivisaFont/ttf/IndivisaDisplaySans-ThinItalic.ttf') ,
url('../fonts/indivisaFont/eot/IndivisaDisplaySans-ThinItalic.IndivisaDisplaySerif-ThinItalic');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'indivisa-display';
src: url('../fonts/indivisaFont/eot/IndivisaDisplaySans-Regular.eot');
src:
url('../fonts/indivisaFont/woff/IndivisaDisplaySans-Regular.woff'),
url('../fonts/indivisaFont/ttf/IndivisaDisplaySans-Regular.ttf') ,
url('../fonts/indivisaFont/eot/IndivisaDisplaySans-Regular.svg#IndivisaDisplaySans-Regular');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'indivisa-display-italic';
src: url('../fonts/indivisaFont/eot/IndivisaDisplaySans-RegularItalic.eot');
src:
url('../fonts/indivisaFont/woff/IndivisaDisplaySans-RegularItalic.woff'),
url('../fonts/indivisaFont/ttf/IndivisaDisplaySans-RegularItalic.ttf') ,
url('../fonts/indivisaFont/eot/IndivisaDisplaySans-RegularItalic.IndivisaDisplaySerif-RegularItalic');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'indivisa-display-heavy';
src: url('../fonts/indivisaFont/eot/IndivisaDisplaySans-Heavy.eot');
src:
url('../fonts/indivisaFont/woff/IndivisaDisplaySans-Heavy.woff'),
url('../fonts/indivisaFont/ttf/IndivisaDisplaySans-Heavy.ttf') ,
url('../fonts/indivisaFont/eot/IndivisaDisplaySans-Heavy.svg#IndivisaDisplaySans-Heavy');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'indivisa-display-heavy-italic';
src: url('../fonts/indivisaFont/eot/IndivisaDisplaySans-HeavyItalic.eot');
src:
url('../fonts/indivisaFont/woff/IndivisaDisplaySans-HeavyItalic.woff'),
url('../fonts/indivisaFont/ttf/IndivisaDisplaySans-HeavyItalic.ttf') ,
url('../fonts/indivisaFont/eot/IndivisaDisplaySans-HeavyItalic.IndivisaDisplaySerif-HeavyItalic');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'indivisa-text-light';
src: url('../fonts/indivisaFont/eot/IndivisaTextSans-Light.eot');
src:
url('../fonts/indivisaFont/woff/IndivisaTextSans-Light.woff'),
url('../fonts/indivisaFont/ttf/IndivisaTextSans-Light.ttf'),
url('../fonts/indivisaFont/eot/IndivisaTextSans-Light.svg#IndivisaTextSans-Light');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'indivisa-text-light-italic';
src: url('../fonts/indivisaFont/eot/IndivisaTextSans-LightItalic.eot');
src:
url('../fonts/indivisaFont/woff/IndivisaTextSans-LightItalic.woff'),
url('../fonts/indivisaFont/ttf/IndivisaTextSans-LightItalic.ttf'),
url('../fonts/indivisaFont/eot/IndivisaTextSans-LightItalic.svg#IndivisaTextSans-LightItalic');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'indivisa-text';
src: url('../fonts/indivisaFont/eot/IndivisaTextSans-Regular.eot');
src:
url('../fonts/indivisaFont/woff/IndivisaTextSans-Regular.woff'),
url('../fonts/indivisaFont/ttf/IndivisaTextSans-Regular.ttf'),
url('../fonts/indivisaFont/eot/IndivisaTextSans-Regular.svg#IndivisaTextSans-Regular');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'indivisa-text-italic';
src: url('../fonts/indivisaFont/eot/IndivisaTextSans-RegularItalic.eot');
src:
url('../fonts/indivisaFont/woff/IndivisaTextSans-RegularItalic.woff'),
url('../fonts/indivisaFont/ttf/IndivisaTextSans-RegularItalic.ttf'),
url('../fonts/indivisaFont/eot/IndivisaTextSans-RegularItalic.svg#IndivisaTextSans-RegularItalic');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'indivisa-text-bold';
src: url('../fonts/indivisaFont/eot/IndivisaTextSans-Bold.eot');
src:
url('../fonts/indivisaFont/woff/IndivisaTextSans-Bold.woff'),
url('../fonts/indivisaFont/ttf/IndivisaTextSans-Bold.ttf'),
url('../fonts/indivisaFont/eot/IndivisaTextSans-Bold.svg#IndivisaTextSans-Bold');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'indivisa-text-bold-italic';
src: url('../fonts/indivisaFont/eot/IndivisaTextSans-BoldItalic.eot');
src:
url('../fonts/indivisaFont/woff/IndivisaTextSans-BoldItalic.woff'),
url('../fonts/indivisaFont/ttf/IndivisaTextSans-BoldItalic.ttf'),
url('../fonts/indivisaFont/eot/IndivisaTextSans-BoldItalic.svg#IndivisaTextSans-BoldItalic');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'indivisa-text-black';
src: url('../fonts/indivisaFont/eot/IndivisaTextSans-Black.eot');
src:
url('../fonts/indivisaFont/woff/IndivisaTextSans-Black.woff'),
url('../fonts/indivisaFont/ttf/IndivisaTextSans-Black.ttf'),
url('../fonts/indivisaFont/eot/IndivisaTextSans-Black.svg#IndivisaTextSans-Black');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'indivisa-text-black-italic';
src: url('../fonts/indivisaFont/eot/IndivisaTextSans-BlackItalic.eot');
src:
url('../fonts/indivisaFont/woff/IndivisaTextSans-BlackItalic.woff'),
url('../fonts/indivisaFont/ttf/IndivisaTextSans-BlackItalic.ttf'),
url('../fonts/indivisaFont/eot/IndivisaTextSans-BlackItalic.svg#IndivisaTextSans-BlackItalic');
font-weight: normal;
font-style: normal;
}
.indivisa-display-thin{font-family: 'indivisa-display-thin' !important;}
.indivisa-display-thin-italic{font-family: 'indivisa-display-thin-italic' !important;}
.indivisa-display{font-family: 'indivisa-display' !important;}
.indivisa-display-italic{font-family: 'indivisa-display-italic' !important;}
.indivisa-display-heavy{font-family: 'indivisa-display-heavy' !important;}
.indivisa-display-heavy-italic{font-family: 'indivisa-display-heavy-italic' !important;}
.indivisa-text-light{font-family: 'indivisa-text-light' !important;}
.indivisa-text-light-italic{font-family: 'indivisa-text-light-italic' !important;}
.indivisa-text{font-family: 'indivisa-text' !important;}
.indivisa-text-italic{font-family: 'indivisa-text-italic' !important;}
.indivisa-text-bold{font-family: 'indivisa-text-bold' !important;}
.indivisa-text-bold-italic{font-family: 'indivisa-text-bold-italic' !important;}
.indivisa-text-black{font-family: 'indivisa-text-black' !important;}
.indivisa-text-black-italic{font-family: 'indivisa-text-black-italic' !important;}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 339 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 295 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 368 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 328 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 352 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 279 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 642 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 544 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 886 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 660 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 739 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 604 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 887 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 661 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
<?php phpinfo();?>

BIN
imagenes/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

BIN
imagenes/fondo.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Capa_1" data-name="Capa 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500">
<defs>
<style>
.cls-1, .cls-2 {
fill: none;
}
.cls-3 {
fill: #00a933;
}
.cls-4 {
fill: #fff;
}
.cls-2 {
filter: url(#drop-shadow-1);
}
</style>
<filter id="drop-shadow-1" filterUnits="userSpaceOnUse">
<feOffset dx="14.3" dy="14.3"/>
<feGaussianBlur result="blur" stdDeviation="0"/>
<feFlood flood-color="#000" flood-opacity=".48"/>
<feComposite in2="blur" operator="in"/>
<feComposite in="SourceGraphic"/>
</filter>
</defs>
<g class="cls-2">
<path class="cls-3" d="m16.58,392.53l-1.26-315.86c-.12-30.97,28.75-56.2,64.48-56.34l230.71-.92c35.74-.14,64.81,24.85,64.93,55.83l.72,180.22c.01,3.04,1.8,5.86,4.74,7.5l67.5,37.54c14.52,8.07,14.59,26.44.14,34.63l-67.2,38.08c-2.93,1.66-4.7,4.5-4.69,7.53l.04,10.37c.12,30.97-28.75,56.2-64.48,56.34l-230.71.92c-35.74.14-64.81-24.85-64.93-55.83Z"/>
</g>
<g>
<g>
<path class="cls-1" d="m203.72,320.75c2.82,0,5.64,0,8.45,0-2.82,0-5.64,0-8.45,0-11.09,0-22.17-.02-33.26-.02,11.09,0,22.17.02,33.26.02h0Z"/>
<path class="cls-4" d="m192.82,154.4c-34.58,0-62.62,28.03-62.62,62.62s28.03,62.62,62.62,62.62,62.62-28.03,62.62-62.62-28.03-62.62-62.62-62.62Zm42.86,42.99l-48.9,49.31c-1.35,1.36-3.12,2.04-4.9,2.04s-3.48-.65-4.82-1.96l-24.25-23.67c-2.73-2.66-2.78-7.03-.12-9.76,2.66-2.73,7.03-2.78,9.76-.12l19.35,18.89,44.08-44.44c2.69-2.71,7.06-2.72,9.76-.04,2.71,2.68,2.72,7.05.04,9.76Z"/>
<path class="cls-4" d="m212.17,320.74c2.82,0,5.63,0,8.45,0h0c-2.82,0-5.63,0-8.45,0Z"/>
<path class="cls-4" d="m322.09,117.73c-15.71-.02-137.59-.04-146.18-.06-.02,5.65-.03,11.3-.05,16.95l133.13-.04c5.29,0,9.57,4.27,9.58,9.56.03,23.69.09,116.85.12,148.71,0,5.94-4.81,10.75-10.75,10.76l-224.92.04c-5.95,0-10.77-4.83-10.75-10.78.08-32.01.32-125.74.4-148.75.02-5.29,4.32-9.56,9.61-9.54l110.51.12v-17.02c-11.46,0-108.68.08-123.87.04-7.52-.02-13.63,6.08-13.62,13.6.04,37.2.15,139.37.14,170.14,0,10.35,8.37,18.75,18.72,18.79,37.95.15,213.22.3,242.72.3,10.38,0,18.79-8.42,18.79-18.79v-170.46c0-7.5-6.07-13.58-13.57-13.59Z"/>
</g>
<rect class="cls-4" x="170.43" y="315.53" width="50.08" height="42.95"/>
<path class="cls-4" d="m174.82,347.2h41.3c16.29,0,29.52,13.23,29.52,29.52v3.74h-100.34v-3.74c0-16.29,13.23-29.52,29.52-29.52Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

86
imagenes/icon_avisos.svg Normal file
View File

@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500">
<defs>
<style>
.cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6 {
fill: none;
}
.cls-2 {
isolation: isolate;
}
.cls-7 {
fill: #f8f7f7;
}
.cls-8 {
fill: #7c54b8;
}
.cls-3 {
opacity: .41;
}
.cls-3, .cls-4 {
mix-blend-mode: overlay;
}
.cls-9 {
fill: url(#Degradado_sin_nombre_561);
}
.cls-5 {
filter: url(#drop-shadow-1);
}
.cls-6 {
clip-path: url(#clippath);
}
</style>
<clipPath id="clippath">
<rect class="cls-1" x="-3198.89" y="622.91" width="3840" height="2162.31"/>
</clipPath>
<linearGradient id="Degradado_sin_nombre_561" data-name="Degradado sin nombre 561" x1="-3305.73" y1="2734.52" x2="497.94" y2="565.76" gradientTransform="translate(0)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fff" stop-opacity="0"/>
<stop offset=".13" stop-color="#fff" stop-opacity=".01"/>
<stop offset=".26" stop-color="#fff" stop-opacity=".06"/>
<stop offset=".38" stop-color="#fff" stop-opacity=".14"/>
<stop offset=".51" stop-color="#fff" stop-opacity=".24"/>
<stop offset=".63" stop-color="#fff" stop-opacity=".38"/>
<stop offset=".75" stop-color="#fff" stop-opacity=".55"/>
<stop offset=".87" stop-color="#fff" stop-opacity=".74"/>
<stop offset=".98" stop-color="#fff" stop-opacity=".97"/>
<stop offset="1" stop-color="#fff"/>
</linearGradient>
<filter id="drop-shadow-1" filterUnits="userSpaceOnUse">
<feOffset dx="14.4" dy="14.4"/>
<feGaussianBlur result="blur" stdDeviation="0"/>
<feFlood flood-color="#000" flood-opacity=".48"/>
<feComposite in2="blur" operator="in"/>
<feComposite in="SourceGraphic"/>
</filter>
</defs>
<g class="cls-2">
<g id="Capa_1" data-name="Capa 1">
<g class="cls-4">
<g class="cls-6">
<g class="cls-3">
<polygon class="cls-9" points="475.17 523.65 528.82 488.32 471.87 459.54 436.52 482.79 436.52 670.9 483.87 694.87 475.17 523.65"/>
</g>
</g>
</g>
<g class="cls-5">
<path class="cls-8" d="m27.73,408.85l-1.27-318.04c-.12-31.19,28.95-56.59,64.93-56.73l232.3-.93c35.98-.14,65.25,25.02,65.38,56.21l.72,181.46c.01,3.06,1.81,5.9,4.78,7.55l67.97,37.8c14.61,8.13,14.69,26.62.14,34.86l-67.66,38.34c-2.95,1.67-4.73,4.53-4.72,7.59l.04,10.44c.12,31.19-28.95,56.59-64.93,56.73l-232.3.93c-35.98.14-65.25-25.02-65.38-56.21Z"/>
</g>
<g id="c1BU2I.tif">
<g>
<path class="cls-7" d="m77.26,301.89c1.4-3.25,1.79-6.8,3.12-10.09,3.63-8.96,9.48-16.03,17.75-20.97,9.97-5.95,20.08-11.65,30.12-17.49,1.32-.77,2.78-1.39,4.16-.88,2.18.82,3.51-.22,5.05-1.44,19.16-15.11,36.24-32.18,49.83-52.56,4.37-6.55,8.16-13.41,11.55-20.52,1.66-3.48,2.08-6.82,1.53-10.7-1.52-10.76,5.05-20.99,15.2-24.5,10.28-3.56,21.89.4,27.46,9.76,7.53,12.64,14.82,25.43,22.09,38.22,1.2,2.11,2.1,2.7,4.58,1.71,17.92-7.16,37.35,7.82,35.15,26.88-.88,7.62-4.28,13.69-10.36,18.23-1.44,1.07-1.22,1.87-.5,3.12,7.16,12.33,14.08,24.81,21.5,36.99,8.69,14.28,1.75,30.14-10.96,34.86-8.72,3.23-16.78,1.68-23.79-4.33-1.88-1.62-3.77-2.24-6.1-2.48-28.28-3.01-55.44,2.24-82.09,11.16-4.75,1.59-9.38,3.56-14.11,5.22-1.87.66-2.11,1.27-.85,2.91,9.31,12.11,18.53,24.3,27.78,36.45,2.34,3.08,4.48,6.15,4.35,10.35-.12,3.62-1.39,6.62-3.89,9.05-3.15,3.06-6.49,5.92-9.71,8.91-1.94,1.8-4.44,2.37-6.78,3.33h-3.3c-3.47-1.15-6.68-2.55-9.03-5.65-10.1-13.32-20.39-26.5-30.45-39.84-1.64-2.18-2.72-2.58-5.22-1.23-21.59,11.63-48.26,3.11-59.4-18.74-2.39-4.68-3.47-9.71-4.68-14.73v-10.99Zm130.73-117.19c-.57,1.06-.89,1.6-1.17,2.16-4.96,9.92-10.9,19.23-17.65,28.04-13.32,17.4-28.95,32.49-46.3,45.81-1.71,1.31-1.91,2.25-.8,4.16,9.04,15.47,17.98,30.99,26.86,46.54.94,1.64,1.59,2.08,3.53,1.27,14.91-6.21,30.24-11.17,46.07-14.41,16.05-3.29,32.24-5.26,48.69-4.16,1.15.08,2.33.32,3.83-.25-20.96-36.29-41.87-72.48-63.05-109.16Zm88.1,118.4c4.55-.09,8.08-1.93,10.42-5.71,3.12-5.03,2.01-9.81-.81-14.67-18.77-32.33-37.44-64.71-56.15-97.07-5.12-8.86-10.18-17.76-15.36-26.59-4.27-7.28-13.21-8.74-19.21-3.31-3.93,3.56-5.06,10.39-1.75,16.08,15.33,26.3,30.48,52.7,45.69,79.07,8.73,15.12,17.46,30.24,26.16,45.38,2.47,4.3,6.05,6.72,10.99,6.83Zm-175.39,37.41c5.63.04,10.51-1.06,15.48-3.85,8.13-4.56,16.15-9.31,24.29-13.85,1.61-.9,1.5-1.59.72-2.95-10.13-17.47-20.24-34.95-30.25-52.48-1.09-1.92-1.96-1.76-3.6-.79-7.4,4.36-14.89,8.56-22.31,12.88-10.34,6.03-16.02,15.17-16.69,26.99-1.06,18.59,13.75,33.93,32.37,34.05Z"/>
<path class="cls-7" d="m282.16,167.27c-.27-1.53.54-2.71,1.21-3.88,4.09-7.13,8.24-14.24,12.32-21.38,1.33-2.33,3.15-3.89,5.93-3.59,3.86.42,6.13,4.57,4.21,8.03-4.4,7.91-8.96,15.72-13.55,23.52-1.33,2.26-3.48,3.28-6.09,2.51-2.53-.75-3.86-2.59-4.03-5.21Z"/>
<path class="cls-7" d="m339.54,239.4c-4.21,0-8.42.02-12.63,0-3.72-.03-6.05-1.99-6.22-5.16-.17-3.16,2.28-5.66,5.99-5.78,4.39-.14,8.78-.01,13.18-.01,4.21,0,8.42-.14,12.63.02,4.97.18,7.68,4.78,5.16,8.53-1.17,1.74-2.87,2.45-4.93,2.44-4.39-.02-8.78,0-13.18,0v-.02Z"/>
<path class="cls-7" d="m313.17,202.47c-2.72,0-4.86-1.67-5.53-4.22-.6-2.29.52-4.74,3-6.19,5.43-3.18,10.9-6.3,16.35-9.44,1.66-.96,3.31-1.93,4.99-2.85,3.11-1.71,6.24-.98,7.83,1.79,1.6,2.8.74,5.88-2.35,7.72-4.7,2.8-9.47,5.49-14.21,8.23-2.21,1.28-4.43,2.54-6.63,3.84-1.12.65-2.24,1.25-3.44,1.12Z"/>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

88
imagenes/icon_clave.svg Normal file
View File

@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500">
<defs>
<style>
.cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6 {
fill: none;
}
.cls-2 {
isolation: isolate;
}
.cls-7 {
fill: #fff;
}
.cls-8 {
fill: #d31b33;
}
.cls-3 {
opacity: .41;
}
.cls-3, .cls-4 {
mix-blend-mode: overlay;
}
.cls-9 {
fill: url(#Degradado_sin_nombre_561);
}
.cls-5 {
filter: url(#drop-shadow-1);
}
.cls-6 {
clip-path: url(#clippath);
}
</style>
<clipPath id="clippath">
<rect class="cls-1" x="-1638.89" y="622.91" width="3840" height="2162.31"/>
</clipPath>
<linearGradient id="Degradado_sin_nombre_561" data-name="Degradado sin nombre 561" x1="-2240.91" y1="1866.07" x2="1562.77" y2="-302.7" gradientTransform="translate(0)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fff" stop-opacity="0"/>
<stop offset=".13" stop-color="#fff" stop-opacity=".01"/>
<stop offset=".26" stop-color="#fff" stop-opacity=".06"/>
<stop offset=".38" stop-color="#fff" stop-opacity=".14"/>
<stop offset=".51" stop-color="#fff" stop-opacity=".24"/>
<stop offset=".63" stop-color="#fff" stop-opacity=".38"/>
<stop offset=".75" stop-color="#fff" stop-opacity=".55"/>
<stop offset=".87" stop-color="#fff" stop-opacity=".74"/>
<stop offset=".98" stop-color="#fff" stop-opacity=".97"/>
<stop offset="1" stop-color="#fff"/>
</linearGradient>
<filter id="drop-shadow-1" filterUnits="userSpaceOnUse">
<feOffset dx="14.4" dy="14.4"/>
<feGaussianBlur result="blur" stdDeviation="0"/>
<feFlood flood-color="#000" flood-opacity=".48"/>
<feComposite in2="blur" operator="in"/>
<feComposite in="SourceGraphic"/>
</filter>
</defs>
<g class="cls-2">
<g id="Capa_1" data-name="Capa 1">
<g class="cls-4">
<g class="cls-6">
<g class="cls-3">
<polygon class="cls-9" points="25.02 692 35.1 520.85 -18.29 485.14 -75.46 513.48 -22.09 549.23 -32.13 720.38 25.02 692"/>
</g>
</g>
</g>
<g class="cls-5">
<path class="cls-8" d="m86.55,462.23h318.07c31.19,0,56.48-29.17,56.48-65.16v-232.32c0-35.99-25.29-65.16-56.48-65.16h-181.48c-3.06,0-5.91-1.79-7.57-4.75l-38.07-67.82c-8.19-14.58-26.68-14.58-34.87,0l-38.07,67.82c-1.66,2.96-4.51,4.75-7.57,4.75h-10.45c-31.19,0-56.48,29.17-56.48,65.16v232.32c0,35.99,25.29,65.16,56.48,65.16Z"/>
</g>
<g>
<g>
<path class="cls-1" d="m257.88,364.01c2.82,0,5.64,0,8.45,0-2.82,0-5.64,0-8.45,0-11.09,0-22.17-.02-33.26-.02,11.09,0,22.17.02,33.26.02h0Z"/>
<path class="cls-7" d="m246.98,197.66c-34.58,0-62.62,28.03-62.62,62.62s28.03,62.62,62.62,62.62,62.62-28.03,62.62-62.62-28.03-62.62-62.62-62.62Zm29.52,84.82c2.73,2.73,2.73,7.16,0,9.89-1.37,1.37-3.15,2.05-4.94,2.05s-3.58-.68-4.94-2.05l-19.8-19.8-19.8,19.8c-1.37,1.37-3.15,2.05-4.94,2.05s-3.58-.68-4.94-2.05c-2.73-2.73-2.73-7.16,0-9.89l19.8-19.8-19.8-19.8c-2.73-2.73-2.73-7.16,0-9.89,2.73-2.73,7.16-2.73,9.89,0l19.8,19.8,19.8-19.8c2.73-2.73,7.16-2.73,9.89,0,2.73,2.73,2.73,7.16,0,9.89l-19.8,19.8,19.8,19.8Z"/>
<path class="cls-7" d="m266.33,364.01c2.82,0,5.63,0,8.45,0h0c-2.82,0-5.63,0-8.45,0Z"/>
<path class="cls-7" d="m376.25,161c-15.71-.02-137.59-.04-146.18-.06-.02,5.65-.03,11.3-.05,16.95l133.13-.04c5.29,0,9.57,4.27,9.58,9.56.03,23.69.09,116.85.12,148.71,0,5.94-4.81,10.75-10.75,10.76l-224.92.04c-5.95,0-10.77-4.83-10.75-10.78.08-32.01.32-125.74.4-148.75.02-5.29,4.32-9.56,9.61-9.54l110.51.12v-17.02c-11.46,0-108.68.08-123.87.04-7.52-.02-13.63,6.08-13.62,13.6.04,37.2.15,139.37.14,170.14,0,10.35,8.37,18.75,18.72,18.79,37.95.15,213.22.3,242.72.3,10.38,0,18.79-8.42,18.79-18.79v-170.46c0-7.5-6.07-13.58-13.57-13.59Z"/>
</g>
<rect class="cls-7" x="224.59" y="358.8" width="50.08" height="42.95"/>
<path class="cls-7" d="m228.98,390.46h41.3c16.29,0,29.52,13.23,29.52,29.52v3.74h-100.34v-3.74c0-16.29,13.23-29.52,29.52-29.52Z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500">
<defs>
<style>
.cls-1, .cls-2, .cls-3 {
fill: none;
}
.cls-2 {
isolation: isolate;
}
.cls-4 {
fill: #fff;
}
.cls-5 {
fill: #42bda6;
}
.cls-3 {
filter: url(#drop-shadow-1);
}
</style>
<clipPath id="clippath">
<rect class="cls-1" x="-598.89" y="622.91" width="3840" height="2162.31"/>
</clipPath>
<filter id="drop-shadow-1" filterUnits="userSpaceOnUse">
<feOffset dx="14.38" dy="14.38"/>
<feGaussianBlur result="blur" stdDeviation="0"/>
<feFlood flood-color="#000" flood-opacity=".48"/>
<feComposite in2="blur" operator="in"/>
<feComposite in="SourceGraphic"/>
</filter>
</defs>
<g class="cls-2">
<g id="Capa_1" data-name="Capa 1">
<g class="cls-3">
<path class="cls-5" d="m462.4,408.93l1.27-317.61c.12-31.15-28.91-56.51-64.84-56.66l-231.99-.93c-35.94-.14-65.17,24.99-65.29,56.14l-.72,181.22c-.01,3.05-1.81,5.89-4.77,7.54l-67.88,37.75c-14.6,8.12-14.67,26.59-.14,34.82l67.57,38.29c2.95,1.67,4.72,4.52,4.71,7.58l-.04,10.43c-.12,31.15,28.91,56.51,64.84,56.66l231.99.93c35.93.14,65.17-24.99,65.29-56.14Z"/>
</g>
<g>
<g>
<path class="cls-1" d="m289.67,335.97c2.68,0,5.36,0,8.04,0-2.68,0-5.36,0-8.04,0-10.54,0-21.08-.02-31.63-.02,10.54,0,21.08.02,31.63.02h0Z"/>
<path class="cls-4" d="m352.69,133.52c0-8.25-6.69-14.95-14.95-14.95h-111.79c-8.26,0-14.95,6.69-14.94,14.95.02,39.68.06,146.78.06,178.54.69.04,136.4.01,141.62,0,0-52.75-.01-105.49,0-158.25v-20.3Zm-37.52,120.62l-36.9,37.2c-1.02,1.03-2.36,1.54-3.7,1.54s-2.63-.49-3.64-1.48l-18.3-17.86c-2.06-2.01-2.1-5.31-.09-7.36,2.01-2.06,5.31-2.1,7.36-.09l14.6,14.25,33.26-33.53c2.03-2.04,5.32-2.06,7.37-.03,2.04,2.03,2.06,5.32.03,7.37Zm-33.35-14.27c-27.52,0-49.83-22.31-49.83-49.83s22.31-49.83,49.83-49.83,49.83,22.31,49.83,49.83-22.31,49.83-49.83,49.83Z"/>
<path class="cls-4" d="m297.71,335.97c2.68,0,5.36,0,8.04,0h0c-2.68,0-5.36,0-8.04,0Z"/>
<path class="cls-4" d="m402.22,142.93c-14.94-.02-35.91-.04-44.08-.05-.02,5.37-.03,10.75-.05,16.12l31.67-.04c5.03,0,9.1,4.06,9.11,9.09.03,22.52.09,111.11.11,141.41,0,5.65-4.57,10.23-10.22,10.23l-213.87.03c-5.66,0-10.24-4.59-10.23-10.25.08-30.44.31-119.56.38-141.44.02-5.03,4.11-9.09,9.13-9.07l30.59.12v-16.18c-10.9,0-28.85.08-43.29.03-7.15-.02-12.96,5.78-12.95,12.93.04,35.38.14,132.52.14,161.78,0,9.84,7.96,17.83,17.8,17.87,36.08.14,202.74.29,230.8.28,9.87,0,17.86-8,17.86-17.87v-162.08c0-7.13-5.77-12.91-12.9-12.92Z"/>
</g>
<g id="ImkQxH.tif">
<g>
<path class="cls-4" d="m284.49,161.22c3.75.99,7.26,2.44,9.9,5.43,4.89,5.55,6.14,11.82,3.09,18.59-3.01,6.68-8.42,10.14-15.79,10.14-9.93,0-17.6-8.65-16.78-18.59.61-7.38,6.01-13.2,12.42-14.94.56-.15,1.08-.42,1.62-.63h5.52Z"/>
<path class="cls-4" d="m245.92,242.57c-1.86,0-2.44-.6-2.44-2.42-.02-6.33.07-7.31-.06-13.64-.23-11.39,5.56-18.95,15.21-23.99,4.65-2.43,9.67-3.63,14.95-3.62,6.12,0,12.26-.3,18.35.1,10.02.66,18.45,4.7,24.35,13.13,2.6,3.7,3.97,7.86,3.96,12.44-.02,7.04,0,8.72,0,15.76,0,1.75-.46,2.24-2.19,2.25-4.06.02-68.18.02-72.14,0Z"/>
</g>
</g>
<rect class="cls-4" x="258.02" y="331.01" width="47.62" height="40.84"/>
<path class="cls-4" d="m263.64,361.12h36.37c16.29,0,29.52,13.23,29.52,29.52v2.11h-95.41v-2.11c0-16.29,13.23-29.52,29.52-29.52Z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

67
imagenes/icon_error.svg Normal file
View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500">
<defs>
<style>
.cls-1, .cls-2, .cls-3 {
fill: none;
}
.cls-2 {
isolation: isolate;
}
.cls-4, .cls-5 {
fill: #f8f7f7;
}
.cls-6 {
fill: #fff;
}
.cls-7 {
fill: #d31b33;
}
.cls-3 {
filter: url(#drop-shadow-1);
}
.cls-5 {
font-family: IndivisaTextSans-Black, 'Indivisa Text Sans';
font-size: 163.56px;
font-weight: 800;
}
</style>
<filter id="drop-shadow-1" filterUnits="userSpaceOnUse">
<feOffset dx="14.43" dy="14.43"/>
<feGaussianBlur result="blur" stdDeviation="0"/>
<feFlood flood-color="#000" flood-opacity=".48"/>
<feComposite in2="blur" operator="in"/>
<feComposite in="SourceGraphic"/>
</filter>
</defs>
<g class="cls-2">
<g id="Capa_1" data-name="Capa 1">
<g class="cls-3">
<path class="cls-7" d="m83.55,26.78h318.6c31.24,0,56.57,29.22,56.57,65.27v232.7c0,36.05-25.33,65.27-56.57,65.27h-181.78c-3.06,0-5.92,1.79-7.58,4.76l-38.13,67.93c-8.2,14.61-26.73,14.61-34.93,0l-38.13-67.93c-1.66-2.97-4.52-4.76-7.58-4.76h-10.46c-31.24,0-56.57-29.22-56.57-65.27V92.05c0-36.05,25.33-65.27,56.57-65.27Z"/>
</g>
<g>
<g id="NuryTv.tif">
<g>
<path class="cls-4" d="m347.19,208.94c-9.07-15.73-18.16-31.46-27.24-47.18-5.54-9.59-49.62-86.38-56.4-97.26-7.08-11.37-23.8-11.75-31.59-.94-1.86,2.59-67.15,115.72-80.38,138.76-2.49,4.33-5.7,8.41-6.41,13.53-1.72,12.38,6.55,22.21,19.08,22.87,1.43.08,2.88.03,4.31.03,53.32,0,106.64,0,159.96-.01,10.69,0,18.04-5.02,20.76-14.4,1.56-5.38.69-10.56-2.1-15.4Zm-17.92,20.52c-19.62.03-39.24,0-58.87,0-34.83,0-69.65,0-104.48-.02-9.96,0-14.61-8.05-9.68-16.6,9.44-16.35,18.88-32.69,28.32-49.04,12.88-22.3,52.69-91.24,53.51-92.66,4.71-8.14,13.89-8.31,18.66-.28,4.3,7.23,8.43,14.55,12.64,21.84,23.08,39.98,46.16,79.95,69.24,119.93.92,1.59,1.84,3.17,2.02,5.1.64,7.05-3.79,11.71-11.35,11.73Z"/>
<text class="cls-5" transform="translate(219.04 216.87)"><tspan x="0" y="0">!</tspan></text>
</g>
</g>
<g>
<g>
<path class="cls-1" d="m255.38,287.84c2.69,0,5.38,0,8.06,0-2.69,0-5.38,0-8.06,0-10.57,0-21.15-.02-31.72-.02,10.57,0,21.15.02,31.72.02h0Z"/>
<path class="cls-6" d="m263.44,287.84c2.69,0,5.37,0,8.06,0h0c-2.69,0-5.37,0-8.06,0Z"/>
<path class="cls-6" d="m368.28,94.21c-14.99-.02-70.23-.04-78.42-.05l9.85,16.17,56.08-.04c5.04,0,9.13,4.07,9.14,9.11.03,22.59.09,111.45.11,141.84,0,5.67-4.59,10.26-10.25,10.26l-214.53.03c-5.67,0-10.27-4.6-10.26-10.28.08-30.53.31-119.93.38-141.87.02-5.04,4.12-9.12,9.16-9.1l55.55.12,9.85-16.23c-10.93,0-63.65.08-78.14.03-7.18-.02-13,5.8-12.99,12.97.04,35.49.14,132.93.14,162.28,0,9.87,7.98,17.89,17.85,17.93,36.19.14,203.37.29,231.51.28,9.9,0,17.92-8.03,17.92-17.93V107.17c0-7.15-5.79-12.95-12.94-12.96Z"/>
</g>
<rect class="cls-6" x="223.63" y="282.87" width="47.76" height="40.96"/>
<path class="cls-6" d="m229.18,313.07h36.67c16.29,0,29.52,13.23,29.52,29.52v2.21h-95.7v-2.21c0-16.29,13.23-29.52,29.52-29.52Z"/>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

85
imagenes/icon_horario.svg Normal file
View File

@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500">
<defs>
<style>
.cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6 {
fill: none;
}
.cls-2 {
isolation: isolate;
}
.cls-7 {
fill: #f8f7f7;
}
.cls-8 {
fill: #d31b33;
}
.cls-3 {
opacity: .41;
}
.cls-3, .cls-4 {
mix-blend-mode: overlay;
}
.cls-9 {
fill: url(#Degradado_sin_nombre_561);
}
.cls-5 {
filter: url(#drop-shadow-1);
}
.cls-6 {
clip-path: url(#clippath);
}
</style>
<clipPath id="clippath">
<rect class="cls-1" x="-1118.89" y="622.91" width="3840" height="2162.31"/>
</clipPath>
<linearGradient id="Degradado_sin_nombre_561" data-name="Degradado sin nombre 561" x1="-1720.91" y1="1866.07" x2="2082.77" y2="-302.7" gradientTransform="translate(0)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fff" stop-opacity="0"/>
<stop offset=".13" stop-color="#fff" stop-opacity=".01"/>
<stop offset=".26" stop-color="#fff" stop-opacity=".06"/>
<stop offset=".38" stop-color="#fff" stop-opacity=".14"/>
<stop offset=".51" stop-color="#fff" stop-opacity=".24"/>
<stop offset=".63" stop-color="#fff" stop-opacity=".38"/>
<stop offset=".75" stop-color="#fff" stop-opacity=".55"/>
<stop offset=".87" stop-color="#fff" stop-opacity=".74"/>
<stop offset=".98" stop-color="#fff" stop-opacity=".97"/>
<stop offset="1" stop-color="#fff"/>
</linearGradient>
<filter id="drop-shadow-1" filterUnits="userSpaceOnUse">
<feOffset dx="14.34" dy="14.34"/>
<feGaussianBlur result="blur" stdDeviation="0"/>
<feFlood flood-color="#000" flood-opacity=".48"/>
<feComposite in2="blur" operator="in"/>
<feComposite in="SourceGraphic"/>
</filter>
</defs>
<g class="cls-2">
<g id="Capa_1" data-name="Capa 1">
<g class="cls-4">
<g class="cls-6">
<g class="cls-3">
<polygon class="cls-9" points="545.02 692 555.1 520.85 501.71 485.14 444.54 513.48 497.91 549.23 487.87 720.38 545.02 692"/>
</g>
</g>
</g>
<g class="cls-5">
<path class="cls-8" d="m41.15,89.37v316.64c0,31.05,29.04,56.22,64.87,56.22h231.28c35.83,0,64.87-25.17,64.87-56.22v-180.66c0-3.04,1.78-5.88,4.73-7.53l67.52-37.9c14.52-8.15,14.52-26.56,0-34.71l-67.52-37.9c-2.95-1.65-4.73-4.49-4.73-7.53v-10.4c0-31.05-29.04-56.22-64.87-56.22H106.01c-35.82,0-64.87,25.17-64.87,56.22Z"/>
</g>
<g>
<path class="cls-7" d="m293.82,249.94c-2.71-.16-4.68-2.04-4.76-4.53-.08-2.48,1.87-4.54,4.53-4.78,4.55-.4,4.98-1.01,4.06-5.63-.15-.76-.28-1.52-.43-2.28-2.18-11.78-7.01-22.33-14.58-31.64-1.24-1.53-2.19-1.63-3.41-.11-.48.6-1.09,1.11-1.71,1.59-2.83,2.19-6.33,1.09-7.42-2.35-.82-2.6.8-4.24,2.47-5.76,1.32-1.2,1.69-2.09.04-3.43-10.54-8.49-22.49-13.64-35.92-15.21-3.9-.45-3.92-.25-3.85,3.74.05,2.75-1.66,4.76-4.22,4.95-2.55.18-4.66-1.61-4.95-4.28-.1-.87-.1-1.76-.02-2.62.16-1.6-.23-2.13-2.06-1.97-10.75.93-20.62,4.35-29.84,9.88-1.91,1.14-1.76,1.78-.29,3.23,8.94,8.81,17.76,17.74,26.66,26.59,1.61,1.6,3.04,3.44,5.51,4.87,0-4.9-.03-9.42.01-13.95.03-3.15,1.92-5.24,4.63-5.26,2.71-.02,4.63,2.09,4.66,5.21.04,3.99,0,7.98.03,11.97.03,3.98-1,8.43.44,11.82,1.49,3.5,5.44,5.93,8.21,8.93,1.23,1.34,2.57,1.77,4.36,1.76,9.24-.07,18.49-.05,27.73-.02,3.49.01,5.42,1.76,5.39,4.73-.03,2.8-1.95,4.52-5.25,4.56-4.09.05-8.17.01-12.26.01-2.67,0-5.33,0-8.05,0,.08.63.03.88.13.98,10.52,10.52,21.07,21,31.57,31.55,1.32,1.32,1.81.97,2.7-.44,5.32-8.43,8.39-17.65,9.83-27.44.64-4.37.52-4.39-3.96-4.66Z"/>
<path class="cls-7" d="m141.96,265.56c8.91,38.23,41.91,66.51,82.45,68.43,18.42.87,35.56-3.82,51.25-13.63q4.83-3.02.95-6.96c-.34-.35-.73-.66-1.01-1.05-1.19-1.65-2.29-1.68-4.07-.5-12.99,8.55-27.34,12.74-42.87,12.85-11.14.1-21.84-2.1-31.99-6.55-44.04-19.34-60.95-72.27-36.41-113.74q2.76-4.66-1.14-8.55c-2.72-2.71-2.76-2.73-4.87.59-13.61,21.34-18.02,44.43-12.27,69.11Z"/>
<path class="cls-7" d="m162.94,249.93c-.58.04-1.18.08-1.75,0-2.27-.3-3.39.35-2.58,2.29,1.53,13.77,6.34,25.64,14.48,36.16,2.25,2.91,2.28,2.88,5.13.34,2.66-2.37,5.16-2.5,7.2-.38,2.06,2.15,1.83,4.52-.71,7.14-2.49,2.57-2.52,2.61.39,4.91,9.8,7.75,20.97,12.37,33.27,14.31,4.75.75,4.76.68,5.28-4.22.28-2.67,2.32-4.54,4.85-4.44,2.53.1,4.36,2.06,4.47,4.8.03.87.02,1.75-.03,2.63-.07,1.27.39,1.64,1.72,1.53,10.52-.87,20.28-4.1,29.34-9.46,2.95-1.74,2.92-1.82.52-4.22-18.47-18.52-36.95-37.04-55.43-55.55-11.96-11.97-23.9-23.96-35.93-35.86-4.17-4.13-3.2-3.36-5.63.62-4.77,7.8-7.32,16.42-8.67,25.4-.66,4.41-.53,4.43,4.03,4.72"/>
<path class="cls-7" d="m366.22,220.48c-4.43-24.53-14.65-46.33-30.68-65.36-21.24-25.22-48.26-40.77-80.44-47.47-4.54-.94-9.2-1.3-13.81-1.92-.67-.09-1.38,0-1.88-.59h-22.19c-.53.55-1.23.51-1.9.57-16.86,1.52-33.08,5.72-48.08,13.49-47.06,24.39-73.71,62.89-78.54,115.92-2.13,23.38,2.01,45.84,11.67,67.22,13.4,29.65,34.49,52.18,63.34,67.24,23.61,12.33,48.78,17.36,75.39,15.37,15.44-1.16,30.28-4.69,44.42-10.86,29.6-12.93,52.28-33.61,67.88-61.91,7.83-14.21,13.02-29.37,15.33-45.47.63-4.41,1.15-8.83,1.73-13.24v-16.93c-1.09-5.3-1.28-10.72-2.24-16.05Zm-59.91,117.89c-14.42,11.99-30.72,20.31-48.93,24.83-9.56,2.37-19.28,3.47-26.37,3.54-58.11-.02-106.86-37.49-120.31-91.56-9.9-39.8-1.18-75.97,24.6-107.94,2.62-3.25,5.23-3.19,8.59.17,10.26,10.23,20.48,20.51,30.72,30.75,43.59,43.59,87.19,87.18,130.78,130.78.48.48.96.96,1.42,1.46,2.67,2.91,2.54,5.44-.51,7.97Zm15.07-15.07c-2.59,3.22-5.15,3.19-8.36,0-23.81-23.79-47.6-47.59-71.41-71.38-30.13-30.12-60.27-60.24-90.41-90.35-4.52-4.52-4.45-6.45.56-10.5,17.78-14.37,37.98-23.13,60.66-26.12,1.06-.14,2.11-.4,3.17-.46,4.27-.21,8.52-.94,12.02-.62,56.27.12,105.08,37.68,118.33,91.51,9.8,39.81,1.14,75.95-24.57,107.93Z"/>
<path class="cls-7" d="m313.22,219.52c-16.46-55.46-82.09-80.23-131.38-49.82-5.79,3.57-5.72,3.5-.91,8.52,1.51,1.57,2.53,1.62,4.32.43,12.98-8.57,27.32-12.69,40.64-12.8,18.59.05,33.67,4.57,47.14,13.82,34.63,23.79,44.76,69.2,23.79,105.81-3.22,5.62-3.15,5.54,1.54,10.18,1.63,1.62,2.36,1.17,3.43-.48,15.23-23.51,19.42-48.8,11.44-75.67Z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

Some files were not shown because too many files have changed in this diff Show More