Merge branch '3.2.5' into 'dev'
3.2.5 See merge request TheGamecraft/c-cms!94
@@ -33,8 +33,8 @@ MAIL_USERNAME=null
|
||||
MAIL_PASSWORD=null
|
||||
MAIL_ENCRYPTION=null
|
||||
|
||||
NEXMO_KEY=4587feffd # Votre Clé Nexmo API
|
||||
NEXMO_SECRET=54dasf4e8fa4s4fd4f5s # Votre Mot de passe Nexmo API
|
||||
NEXMO_KEY= # Votre Clé Nexmo API
|
||||
NEXMO_SECRET= # Votre Mot de passe Nexmo API
|
||||
|
||||
PUSHER_APP_ID=
|
||||
PUSHER_APP_KEY=
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# Set the base image for subsequent instructions
|
||||
FROM php:7.2
|
||||
FROM php:7.3
|
||||
|
||||
# Update packages
|
||||
RUN apt-get update
|
||||
|
||||
# Install PHP and composer dependencies
|
||||
RUN apt-get install -qq git curl libmcrypt-dev libjpeg-dev libpng-dev libfreetype6-dev libbz2-dev autoconf libc-dev pkg-config
|
||||
RUN apt-get install -qq git curl libmcrypt-dev libjpeg-dev libpng-dev libfreetype6-dev libbz2-dev autoconf libc-dev pkg-config libzip-dev
|
||||
|
||||
# Clear out the local repository of retrieved package files
|
||||
RUN apt-get clean
|
||||
@@ -14,7 +14,7 @@ RUN apt-get clean
|
||||
# Here you can install any other extension that you need during the test and deployment process
|
||||
RUN docker-php-ext-install pdo_mysql zip
|
||||
|
||||
RUN pecl install mcrypt-1.0.1
|
||||
RUN pecl install mcrypt
|
||||
|
||||
# Install Composer
|
||||
RUN curl --silent --show-error https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
|
||||
|
||||
@@ -24,4 +24,9 @@ class Config extends Model
|
||||
{
|
||||
return $this->morphMany('App\Log', 'logable');
|
||||
}
|
||||
|
||||
public static function find($name)
|
||||
{
|
||||
return Config::where('name',$name)->first();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,18 @@ class Course extends Model
|
||||
return $this->belongsTo('App\User');
|
||||
}
|
||||
|
||||
public function instructor()
|
||||
{
|
||||
if (\App\User::find($this->user_id))
|
||||
{
|
||||
return \App\User::find($this->user_id)->fullname();
|
||||
}
|
||||
else
|
||||
{
|
||||
return $this->user_id;
|
||||
}
|
||||
}
|
||||
|
||||
public function event()
|
||||
{
|
||||
return $this->belongsTo('App\Event');
|
||||
@@ -25,4 +37,9 @@ class Course extends Model
|
||||
{
|
||||
return $this->morphMany('App\Log', 'logable');
|
||||
}
|
||||
|
||||
public function use_course()
|
||||
{
|
||||
return $this->name == "" && $this->ocom == "";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,11 @@ use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Event extends Model
|
||||
{
|
||||
protected $casts = [
|
||||
'schedule' => 'array',
|
||||
'msg' => 'array'
|
||||
];
|
||||
|
||||
public function bookings()
|
||||
{
|
||||
return $this->morphMany('App\Booking', 'bookable');
|
||||
@@ -54,4 +59,74 @@ class Event extends Model
|
||||
}
|
||||
return $events;
|
||||
}
|
||||
|
||||
public static function checkForError()
|
||||
{
|
||||
$events = Event::all();
|
||||
|
||||
$warning = [];
|
||||
$danger = [];
|
||||
|
||||
foreach ($events as $event)
|
||||
{
|
||||
if($event->date_begin == null)
|
||||
{
|
||||
array_push($warning,'Évènement ID:'.$event->id.' - "date_begin", Incorrect');
|
||||
}
|
||||
if($event->date_end == null)
|
||||
{
|
||||
array_push($warning,'Évènement ID:'.$event->id.' - "date_end", Incorrect');
|
||||
}
|
||||
if($event->type == null || $event->type == "" || !\App\EventType::all()->has($event->type))
|
||||
{
|
||||
$event->type = 1;
|
||||
//$event->save();
|
||||
array_push($warning,'Évènement ID:'.$event->id.' - "type", Incorrect... Réinitialisé à la valeur par défaut');
|
||||
clog('error','danger','Évènement ID:'.$event->id.' - "type", Incorrect... Réinitialisé à la valeur par défaut');
|
||||
}
|
||||
if($event->is_mandatory == null && $event->is_mandatory != 0)
|
||||
{
|
||||
array_push($warning,'Évènement ID:'.$event->id.' - "is_mandatory", Incorrect... Réinitialisé à la valeur par défaut');
|
||||
clog('error','danger','Évènement ID:'.$event->id.' - "is_mandatory", Incorrect... Réinitialisé à la valeur par défaut');
|
||||
}
|
||||
if($event->use_weekly_msg == null && $event->use_weekly_msg != 0)
|
||||
{
|
||||
array_push($warning,'Évènement ID:'.$event->id.' - "use_weekly_msg", Incorrect... Réinitialisé à la valeur par défaut');
|
||||
clog('error','danger','Évènement ID:'.$event->id.' - "use_weekly_msg", Incorrect... Réinitialisé à la valeur par défaut');
|
||||
}
|
||||
if($event->use_schedule == null && $event->use_schedule != 0)
|
||||
{
|
||||
array_push($warning,'Évènement ID:'.$event->id.' - "use_schedule", Incorrect... Réinitialisé à la valeur par défaut');
|
||||
clog('error','danger','Évènement ID:'.$event->id.' - "use_schedule", Incorrect... Réinitialisé à la valeur par défaut');
|
||||
}
|
||||
if($event->schedule == null)
|
||||
{
|
||||
$event->schedule = '{"periodes":[{"name":"Periode 1","begin_time":"19:00","end_time":"20:10"},{"name":"Periode 2","begin_time":"20:30","end_time":"21:20"}],"niveaux":[{"name":"Niveau 1"},{"name":"Niveau 2"},{"name":"Niveau 3"}]}';
|
||||
$event->save();
|
||||
array_push($warning,'Évènement ID:'.$event->id.' - "schedule", Incorrect... Réinitialisé à la valeur par défaut');
|
||||
clog('error','danger','Évènement ID:'.$event->id.' - "schedule", Incorrect... Réinitialisé à la valeur par défaut');
|
||||
}
|
||||
if($event->location == null || $event->location == "")
|
||||
{
|
||||
array_push($warning,'Évènement ID:'.$event->id.' - "location", Incorrect... Réinitialisé à la valeur par défaut');
|
||||
clog('error','danger','Évènement ID:'.$event->id.' - "location", Incorrect... Réinitialisé à la valeur par défaut');
|
||||
}
|
||||
if($event->calendar_color == null || $event->calendar_color == "")
|
||||
{
|
||||
$event->calendar_color = '#A4A4A4';
|
||||
$event->save();
|
||||
array_push($warning,'Évènement ID:'.$event->id.' - "calendar_color", Incorrect... Réinitialisé à la valeur par défaut');
|
||||
clog('error','danger','Évènement ID:'.$event->id.' - "calendar_color", Incorrect... Réinitialisé à la valeur par défaut');
|
||||
}
|
||||
if($event->calendar_icon == null || $event->calendar_icon == "")
|
||||
{
|
||||
$event->calendar_icon = 'fas fa-book';
|
||||
$event->save();
|
||||
array_push($warning,'Évènement ID:'.$event->id.' - "calendar_icon", Incorrect... Réinitialisé à la valeur par défaut');
|
||||
clog('error','danger','Évènement ID:'.$event->id.' - "calendar_icon", Incorrect... Réinitialisé à la valeur par défaut');
|
||||
}
|
||||
}
|
||||
|
||||
return [$warning,$danger];
|
||||
}
|
||||
}
|
||||
|
||||
330
app/GoogleDriveFile.php
Normal file
@@ -0,0 +1,330 @@
|
||||
<?php
|
||||
|
||||
namespace App;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use League\Flysystem\FileNotFoundException;
|
||||
use mysql_xdevapi\Exception;
|
||||
|
||||
class GoogleDriveFile extends Model
|
||||
{
|
||||
protected $primaryKey = 'id'; // or null
|
||||
|
||||
public $incrementing = false;
|
||||
|
||||
// In Laravel 6.0+ make sure to also set $keyType
|
||||
protected $keyType = 'string';
|
||||
|
||||
protected $casts = [
|
||||
'rank_permission' => 'array',
|
||||
'job_permission' => 'array',
|
||||
'user_permission' => 'array',
|
||||
];
|
||||
|
||||
public static function icon($extension)
|
||||
{
|
||||
$icon = "fas fa-file";
|
||||
switch ($extension)
|
||||
{
|
||||
case 'pdf':
|
||||
$icon = 'fas fa-file-pdf text-pdf';
|
||||
break;
|
||||
case 'php':
|
||||
$icon = 'fas fa-file-code text-code';
|
||||
break;
|
||||
case 'pptx':
|
||||
$icon = 'fas fa-file-powerpoint text-powerpoint';
|
||||
break;
|
||||
case 'docx':
|
||||
case 'odt':
|
||||
$icon = 'fas fa-file-word text-word';
|
||||
break;
|
||||
case 'ods':
|
||||
case 'xlsx':
|
||||
$icon = 'fas fa-file-excel text-excel';
|
||||
break;
|
||||
case 'png':
|
||||
case 'PNG':
|
||||
case 'jpg':
|
||||
case 'jpeg':
|
||||
$icon = 'fas fa-file-image text-image';
|
||||
break;
|
||||
}
|
||||
return $icon;
|
||||
}
|
||||
|
||||
public static function checkConfig()
|
||||
{
|
||||
$configNull = (\Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_CLIENT_ID')) != "" && \Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_CLIENT_SECRET')) != "" && \Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_REFRESH_TOKEN')) != "" && \Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_FOLDER_ID')) != "");
|
||||
$configOk = true;
|
||||
|
||||
if ($configNull)
|
||||
{
|
||||
try {
|
||||
\Storage::cloud()->listContents("/", false);
|
||||
}
|
||||
catch (\Exception $e)
|
||||
{
|
||||
$configOk = false;
|
||||
}
|
||||
}
|
||||
|
||||
return $configNull && $configOk;
|
||||
}
|
||||
|
||||
public static function findByName($name)
|
||||
{
|
||||
return GoogleDriveFile::where('name','=',$name)->get()->first();
|
||||
}
|
||||
|
||||
public static function findByPath($path)
|
||||
{
|
||||
return GoogleDriveFile::where('path','=',$path)->get()->first();
|
||||
}
|
||||
|
||||
public static function findByPathInDrive($path,$current_directory = '/')
|
||||
{
|
||||
if ($path != "")
|
||||
{
|
||||
$exploded_path = explode('/',$path);
|
||||
if ($exploded_path[0] == "")
|
||||
{
|
||||
array_splice($exploded_path,0,1);
|
||||
}
|
||||
$contents = collect(Storage::cloud()->listContents($current_directory, false));
|
||||
|
||||
$dir = $contents->where('type', '=', 'dir')
|
||||
->where('name', '=', $exploded_path[0])
|
||||
->first();
|
||||
|
||||
if ( ! $dir)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
array_splice($exploded_path,0,1);
|
||||
$newPath = implode('/',$exploded_path);
|
||||
if ($newPath == "")
|
||||
{
|
||||
return $dir['basename'];
|
||||
}
|
||||
else
|
||||
{
|
||||
return GoogleDriveFile::findByPathInDrive($newPath,$dir['basename']);
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static function createByPathInDrive($path,$current_directory = '/')
|
||||
{
|
||||
if ($path != "")
|
||||
{
|
||||
$exploded_path = explode('/',$path);
|
||||
$size = count($exploded_path);
|
||||
if ($size > 1)
|
||||
{
|
||||
$parent = self::findByName($exploded_path[$size-2]);
|
||||
\Storage::cloud()->createDir($parent->id.'/'.$exploded_path[$size-1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
\Storage::cloud()->createDir('/'.$exploded_path[$size-1]);
|
||||
}
|
||||
return self::findByPathInDrive($path);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function setPermission($subject, $value)
|
||||
{
|
||||
$explodedSubject = explode('.',$subject);
|
||||
$subject = $explodedSubject[0];
|
||||
$id = $explodedSubject[1];
|
||||
|
||||
$permission = null;
|
||||
if ($subject == 'rank')
|
||||
{
|
||||
$permission = $this->rank_permission;
|
||||
}
|
||||
elseif ($subject == 'job')
|
||||
{
|
||||
$permission = $this->job_permission;
|
||||
}
|
||||
elseif ($subject == 'user')
|
||||
{
|
||||
$permission = $this->user_permission;
|
||||
}
|
||||
|
||||
[$id] = $value;
|
||||
|
||||
if ($subject == 'rank')
|
||||
{
|
||||
$this->rank_permission = $permission;
|
||||
}
|
||||
elseif ($subject == 'job')
|
||||
{
|
||||
$this->job_permission = $permission;
|
||||
}
|
||||
elseif ($subject == 'user')
|
||||
{
|
||||
$this->user_permission = $permission;
|
||||
}
|
||||
$this->save();
|
||||
}
|
||||
|
||||
public function getAllPermission($subject)
|
||||
{
|
||||
$permission = null;
|
||||
if ($subject == 'rank')
|
||||
{
|
||||
$permission = $this->rank_permission;
|
||||
}
|
||||
elseif ($subject == 'job')
|
||||
{
|
||||
$permission = $this->job_permission;
|
||||
}
|
||||
elseif ($subject == 'user')
|
||||
{
|
||||
$permission = $this->user_permission;
|
||||
}
|
||||
|
||||
return $permission;
|
||||
}
|
||||
|
||||
public function getPermission($subject)
|
||||
{
|
||||
$explodedSubject = explode('.',$subject);
|
||||
$subject = $explodedSubject[0];
|
||||
$id = $explodedSubject[1];
|
||||
|
||||
if (isset($this->getAllPermission($subject)[$id]))
|
||||
{
|
||||
return $this->getAllPermission($subject)[$id];
|
||||
}
|
||||
else
|
||||
{
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
public function canUser($user, $permission = 'r')
|
||||
{
|
||||
if (strpos($this->getPermission('rank.0'),$permission) !== false)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (strpos($this->getPermission('user.'.$user->id),$permission) === false)
|
||||
{
|
||||
if (strpos($this->getPermission('job.'.$user->job->id),$permission) === false)
|
||||
{
|
||||
if (strpos($this->getPermission('rank.'.$user->rank->id),$permission) === false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function canAuthUser($perm = 'r')
|
||||
{
|
||||
return $this->canUser(\Auth::user(),$perm);
|
||||
}
|
||||
|
||||
public static function getPermForUser($folder,$user,$perm = 'r')
|
||||
{
|
||||
if ($folder == '' || $folder == "root")
|
||||
{
|
||||
if ($user->p('file_manage') == 1)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
$dir = \App\GoogleDriveFile::find($folder);
|
||||
if ($dir == null)
|
||||
{
|
||||
$path = GoogleDriveFile::getPathFolder($folder);
|
||||
$exploderPath = explode('/',$path);
|
||||
for ($i = count($exploderPath)-1; $i >= 0; $i--)
|
||||
{
|
||||
$dir = \App\GoogleDriveFile::find($exploderPath[$i]);
|
||||
if ($dir != null)
|
||||
{
|
||||
$metaData = \Storage::cloud()->getMetadata($folder);
|
||||
$googleDriveFile = new GoogleDriveFile();
|
||||
$googleDriveFile->id = $folder;
|
||||
$googleDriveFile->type = 'directory';
|
||||
$googleDriveFile->name = $metaData['name'];
|
||||
$googleDriveFile->path = self::recreatePath($folder);
|
||||
$googleDriveFile->rank_permission = $dir->rank_permission;
|
||||
$googleDriveFile->job_permission = $dir->job_permission;
|
||||
$googleDriveFile->user_permission = $dir->user_permission;
|
||||
$googleDriveFile->save();
|
||||
return $dir->canUser($user,$perm);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return $dir->canUser($user,$perm);
|
||||
}
|
||||
}
|
||||
|
||||
public static function getPermForAuthUser($folder,$perm = 'r')
|
||||
{
|
||||
return self::getPermForUser($folder,\Auth::user(),$perm);
|
||||
}
|
||||
|
||||
public static function getPathFolder($folder)
|
||||
{
|
||||
$allDir = \Storage::cloud()->allDirectories();
|
||||
foreach ($allDir as $dir)
|
||||
{
|
||||
$exploderDir = explode('/',$dir);
|
||||
if ($exploderDir[count($exploderDir)-1] == $folder)
|
||||
{
|
||||
return $dir;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static function recreatePath($folder)
|
||||
{
|
||||
$path = [];
|
||||
$name = [];
|
||||
$directories = collect(json_decode(self::getPathArray(),true));
|
||||
foreach ($directories as $dir)
|
||||
{
|
||||
$path[$dir['basename']] = $dir['dirname'];
|
||||
$name[$dir['basename']] = $dir['name'];
|
||||
}
|
||||
$realPath = $name[$folder];
|
||||
$foo = $folder;
|
||||
while ($foo != "")
|
||||
{
|
||||
$bar = explode('/',$path[$foo]);
|
||||
$foo = $bar[count($bar)-1];
|
||||
if ($foo != "")
|
||||
{
|
||||
$realPath = $name[$foo].'/'.$realPath;
|
||||
}
|
||||
}
|
||||
return $realPath;
|
||||
}
|
||||
|
||||
public static function getPathArray()
|
||||
{
|
||||
$contents = collect(Storage::cloud()->listContents('/', true));
|
||||
return json_encode($contents->where('type', '=', 'dir'));
|
||||
}
|
||||
}
|
||||
@@ -36,4 +36,10 @@ class AdminController extends Controller
|
||||
return view('admin.update');
|
||||
}
|
||||
|
||||
public function status()
|
||||
{
|
||||
$alerts = \App\Event::checkForError();
|
||||
return view('admin.status.index',['alerts' => $alerts]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -4,9 +4,11 @@ namespace App\Http\Controllers;
|
||||
|
||||
use App\Config;
|
||||
use Illuminate\Http\Request;
|
||||
use phpDocumentor\Reflection\Types\Boolean;
|
||||
|
||||
class ConfigController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
@@ -129,4 +131,55 @@ class ConfigController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function showfilesConfig()
|
||||
{
|
||||
$error = [];
|
||||
return view('admin.configs.file',['configs' => Config::all(),'error' => $error]);
|
||||
}
|
||||
|
||||
public function editfilesConfig()
|
||||
{
|
||||
$configList = [
|
||||
'cadet_list',
|
||||
];
|
||||
|
||||
$configListEncrypt = [
|
||||
'GOOGLE_DRIVE_CLIENT_ID',
|
||||
'GOOGLE_DRIVE_CLIENT_SECRET',
|
||||
'GOOGLE_DRIVE_REFRESH_TOKEN',
|
||||
'GOOGLE_DRIVE_FOLDER_ID'
|
||||
];
|
||||
|
||||
if (\request('is_active') == 'on')
|
||||
{
|
||||
$config = \App\Config::find('is_Google_Drive_enabled');
|
||||
$config->data = ['true'];
|
||||
$config->save();
|
||||
}
|
||||
else
|
||||
{
|
||||
$config = \App\Config::find('is_Google_Drive_enabled');
|
||||
$config->data = ['false'];
|
||||
$config->save();
|
||||
}
|
||||
|
||||
|
||||
foreach ($configList as $configName)
|
||||
{
|
||||
$config = \App\Config::find($configName);
|
||||
$config->data = [\request($configName)];
|
||||
$config->save();
|
||||
}
|
||||
|
||||
foreach ($configListEncrypt as $configName)
|
||||
{
|
||||
$config = \App\Config::find($configName);
|
||||
$config->data = [\Crypt::encryptString(\request($configName))];
|
||||
$config->save();
|
||||
}
|
||||
|
||||
clog('edit','success','a modifié la configuration des fichiers');
|
||||
return redirect('/admin/config/files')->with('success','Modification sauvegarder avec succès !');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,40 +38,77 @@ class EventController extends Controller
|
||||
{
|
||||
$event = new Event();
|
||||
|
||||
|
||||
|
||||
$event->name = request('name');
|
||||
$event->date_begin = request('begin');
|
||||
$event->date_end = request('end');
|
||||
$event->date_begin = request('begin_time');
|
||||
$event->date_end = request('end_time');
|
||||
$event->type = request('type');
|
||||
$event->user_id = \Auth::user()->id;
|
||||
$event->location = request('location');
|
||||
|
||||
if(request('is_mandatory') != null){
|
||||
$event->is_mandatory = 1;
|
||||
} else {
|
||||
$event->is_mandatory = 0;
|
||||
}
|
||||
$event->desc = request('desc');
|
||||
if(\request('msg'))
|
||||
|
||||
$event->desc = \request('admin_desc');
|
||||
|
||||
if(\request("use_weekly_msg"))
|
||||
{
|
||||
$event->use_weekly_msg = 1;
|
||||
$event->msg = request('msg');
|
||||
}
|
||||
else
|
||||
{
|
||||
$event->use_weekly_msg = 0;
|
||||
$event->msg = "";
|
||||
}
|
||||
if(\request('date_msg'))
|
||||
|
||||
if(\request("use_schedule"))
|
||||
{
|
||||
$event->date_msg = request('date_msg');
|
||||
$event->use_schedule = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$event->date_msg = "";
|
||||
$event->use_schedule = 0;
|
||||
}
|
||||
|
||||
$event->calendar_color = \request('calendar_color');
|
||||
$event->calendar_icon = \request('calendar_icon');
|
||||
|
||||
$nbLevel = 1;
|
||||
$niveaux = [];
|
||||
while (\request('level_name_'.$nbLevel))
|
||||
{
|
||||
array_push($niveaux,['name' => \request('level_name_'.$nbLevel)]);
|
||||
$nbLevel++;
|
||||
}
|
||||
|
||||
$nbPeriode = 1;
|
||||
$periodes = [];
|
||||
while (\request('periode_name_'.$nbPeriode))
|
||||
{
|
||||
array_push($periodes,[
|
||||
'name' => \request('periode_name_'.$nbPeriode),
|
||||
'begin_time' => \request('periode_begin_time_'.$nbPeriode),
|
||||
'end_time' => \request('periode_end_time_'.$nbPeriode)
|
||||
]);
|
||||
$nbPeriode++;
|
||||
}
|
||||
$event->schedule = [
|
||||
'periodes' => $periodes,
|
||||
'niveaux' => $niveaux,
|
||||
'courses' => []
|
||||
];
|
||||
|
||||
$event->save();
|
||||
|
||||
if ($event->type == 1) {
|
||||
for ($l=1; $l <= \App\Config::getData('admin_level_in_schedule_nb'); $l++) {
|
||||
for ($p=1; $p <= \App\Config::getData('admin_periode_nb'); $p++) {
|
||||
|
||||
if ($event->use_schedule) {
|
||||
for ($l=1; $l < $nbLevel; $l++) {
|
||||
for ($p=1; $p < $nbPeriode; $p++) {
|
||||
|
||||
$course = new \App\Course();
|
||||
|
||||
$users = \App\User::all();
|
||||
@@ -84,17 +121,35 @@ class EventController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
$course->name = request('name_n'.$l.'_p'.$p);
|
||||
$course->user_id = $instructor;
|
||||
$course->ocom = request('ocom_n'.$l.'_p'.$p);
|
||||
$course->location = request('loc_n'.$l.'_p'.$p);
|
||||
$course->location = request('location_n'.$l.'_p'.$p);
|
||||
$course->periode = $p;
|
||||
$course->level = $l;
|
||||
|
||||
$course->comment = "";
|
||||
$course->event_id = $event->id;
|
||||
|
||||
if(\request("use_course_n".$l."_p".$p) == 'on')
|
||||
{
|
||||
$course->name = request('name_n'.$l.'_p'.$p);
|
||||
$course->ocom = request('ocom_n'.$l.'_p'.$p);
|
||||
$course->comment = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
$course->name = "";
|
||||
$course->ocom = "";
|
||||
$course->comment = request('desc_n'.$l.'_p'.$p);
|
||||
}
|
||||
|
||||
$course->save();
|
||||
|
||||
$ocom = \App\OCOM::where('ocom','=',request('ocom_n'.$l.'_p'.$p))->first();
|
||||
if ($ocom != null)
|
||||
{
|
||||
$foo = $ocom->courses();
|
||||
$foo->push($course);
|
||||
$ocom->saveCourses($foo);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -218,4 +273,9 @@ class EventController extends Controller
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function checkEvent()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
|
||||
486
app/Http/Controllers/GoogleDriveController.php
Normal file
@@ -0,0 +1,486 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\GoogleDriveFile;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Psy\Util\Str;
|
||||
use Symfony\Component\Console\Input\Input;
|
||||
|
||||
class GoogleDriveController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @param string $dir
|
||||
* @param bool $recursive
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index($folder = '')
|
||||
{
|
||||
return view('admin.files.Google Drive.index',['folder' => $folder]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new file.
|
||||
*
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function createFile()
|
||||
{
|
||||
Storage::cloud()->put(\request('currentDir'.'/'.\request('name')), '');
|
||||
return back()->with('success','Fichier créer avec succès');
|
||||
}
|
||||
|
||||
public function createFolder()
|
||||
{
|
||||
Storage::cloud()->makeDirectory(\request('currentDir').'/'.\request('name'));
|
||||
return back()->with('success','Dossier créer avec succès');
|
||||
}
|
||||
|
||||
public function uploadFile()
|
||||
{
|
||||
Storage::cloud()->putFileAs(\request('currentDir'),\request()->file('fichier'),\request()->file('fichier')->getClientOriginalName());
|
||||
return back()->with('success','Fichier téléversé avec succès');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return bool
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$path = Storage::cloud()->makeDirectory('Test Dir');
|
||||
dd($path);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param $filename
|
||||
* @return \Illuminate\Http\Response
|
||||
* @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
|
||||
*/
|
||||
public function show()
|
||||
{
|
||||
$filename = \request('file');
|
||||
$contents = collect(Storage::cloud()->listContents('/1nEe35-GvLX598RketTI-UoaOxIMNxfka', true));
|
||||
|
||||
$file = $contents
|
||||
->where('type', '=', 'file')
|
||||
->where('filename', '=', pathinfo($filename, PATHINFO_FILENAME))
|
||||
->where('extension', '=', pathinfo($filename, PATHINFO_EXTENSION))
|
||||
->first(); // there can be duplicate file names!
|
||||
|
||||
//return $file; // array with file info
|
||||
|
||||
$rawData = Storage::cloud()->get($file['path']);
|
||||
|
||||
return response($rawData, 200)
|
||||
->header('ContentType', $file['mimetype'])
|
||||
->header('Content-Disposition', "attachment; filename='$filename'");
|
||||
}
|
||||
|
||||
public function showMetadata($dir,$file)
|
||||
{
|
||||
if ($dir == 'root')
|
||||
{
|
||||
$dir = '/';
|
||||
}
|
||||
$contents = collect(Storage::cloud()->listContents($dir, true));
|
||||
|
||||
$file = $contents
|
||||
->where('type', '=', 'file')
|
||||
->where('filename', '=', pathinfo($file, PATHINFO_FILENAME))
|
||||
->where('extension', '=', pathinfo($file, PATHINFO_EXTENSION))
|
||||
->first(); // there can be duplicate file names!
|
||||
|
||||
return $file;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
public function getPathArray()
|
||||
{
|
||||
$contents = collect(Storage::cloud()->listContents('/', true));
|
||||
return json_encode($contents->where('type', '=', 'dir'));
|
||||
}
|
||||
|
||||
public function getPath($folder)
|
||||
{
|
||||
$contents = collect(Storage::cloud()->listContents('/', true));
|
||||
$dir = collect($contents->where('type', '=', 'dir'));
|
||||
foreach ($dir as $d)
|
||||
{
|
||||
if($d['basename'] == $folder)
|
||||
{
|
||||
return $d['dirname'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getFile()
|
||||
{
|
||||
if(\request('f'))
|
||||
{
|
||||
$dir = '/';
|
||||
if (\request('d') && urldecode(\request('d')) != '')
|
||||
{
|
||||
$dir = \request('d');
|
||||
}
|
||||
$filename = urldecode(\request('f'));
|
||||
|
||||
$recursive = false; // Get subdirectories also?
|
||||
$contents = collect(Storage::cloud()->listContents($dir, $recursive));
|
||||
|
||||
$file = $contents
|
||||
->where('type', '=', 'file')
|
||||
->where('filename', '=', pathinfo($filename, PATHINFO_FILENAME))
|
||||
->first(); // there can be duplicate file names!
|
||||
|
||||
$rawData = Storage::cloud()->get($file['path']);
|
||||
$filename = urlencode($filename);
|
||||
return response($rawData, 200)
|
||||
->header('Content-Type', $file['mimetype'])
|
||||
->header('Content-Disposition', "attachment; filename=$filename");
|
||||
}
|
||||
else
|
||||
{
|
||||
abort(404);
|
||||
}
|
||||
}
|
||||
|
||||
public function deleteFile()
|
||||
{
|
||||
if(\request('f'))
|
||||
{
|
||||
$dir = '/';
|
||||
if (\request('d') && urldecode(\request('d')) != '')
|
||||
{
|
||||
$dir = \request('d');
|
||||
}
|
||||
$filename = urldecode(\request('f'));
|
||||
|
||||
$recursive = false; // Get subdirectories also?
|
||||
$contents = collect(Storage::cloud()->listContents($dir, $recursive));
|
||||
|
||||
$file = $contents
|
||||
->where('type', '=', 'file')
|
||||
->where('filename', '=', pathinfo($filename, PATHINFO_FILENAME))
|
||||
->where('extension', '=', pathinfo($filename, PATHINFO_EXTENSION))
|
||||
->first(); // there can be duplicate file names!
|
||||
|
||||
Storage::cloud()->delete($file['path']);
|
||||
|
||||
return back()->with('success','Fichier supprimé avec succès');
|
||||
}
|
||||
else
|
||||
{
|
||||
abort(404);
|
||||
}
|
||||
}
|
||||
|
||||
public function deleteDir()
|
||||
{
|
||||
$directoryID = \request('d');
|
||||
|
||||
// Now find that directory and use its ID (path) to delete it
|
||||
$dir = '/';
|
||||
$recursive = false; // Get subdirectories also?
|
||||
$contents = collect(Storage::cloud()->listContents($dir, $recursive));
|
||||
|
||||
$directory = $contents
|
||||
->where('type', '=', 'dir')
|
||||
->where('basename', '=', $directoryID)
|
||||
->first();
|
||||
|
||||
Storage::cloud()->deleteDirectory($directory['path']);
|
||||
|
||||
return back()->with('success','Dossier supprimé avec succès');
|
||||
}
|
||||
|
||||
public function list($folder = 'root')
|
||||
{
|
||||
$recursive = false; // Get subdirectories also?
|
||||
$perm = ['r' => GoogleDriveFile::getPermForAuthUser($folder,'r'),'w' => GoogleDriveFile::getPermForAuthUser($folder,'w'),'p' => GoogleDriveFile::getPermForAuthUser($folder,'p')];
|
||||
if ($folder == 'root')
|
||||
{
|
||||
$contents = collect(Storage::cloud()->listContents('/', $recursive));
|
||||
}
|
||||
else
|
||||
{
|
||||
$contents = collect(Storage::cloud()->listContents($folder, $recursive));
|
||||
}
|
||||
|
||||
return view('admin.files.Google Drive.explorer',[
|
||||
'directories' => $contents->where('type', '=', 'dir')->sortByDesc('name'),
|
||||
'files' => $contents->where('type', '=', 'file'),
|
||||
'currentDir' => $folder,
|
||||
'permission' => $perm]);
|
||||
}
|
||||
|
||||
public function checkFileSystem()
|
||||
{
|
||||
$error = [];
|
||||
if(\App\Config::getData('is_Google_Drive_enabled') == "true")
|
||||
{
|
||||
if (GoogleDriveFile::checkConfig())
|
||||
{
|
||||
$structure = $this->getFileStructure();
|
||||
$this->checkStructure($structure,'/','/',$error);
|
||||
}
|
||||
else
|
||||
{
|
||||
$error = ['Il y a un probleme avec vos configurations'];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$error = ['Google Drive n\'est pas actif'];
|
||||
}
|
||||
return $error;
|
||||
}
|
||||
|
||||
public function checkStructure()
|
||||
{
|
||||
$structure = $this->getFileStructure();
|
||||
|
||||
foreach ($structure as $directory => $value)
|
||||
{
|
||||
$basename = GoogleDriveFile::findByPathInDrive($directory);
|
||||
if ($basename == false)
|
||||
{
|
||||
$basename = GoogleDriveFile::createByPathInDrive($directory);
|
||||
}
|
||||
|
||||
$googleDriveFile = GoogleDriveFile::findByPath($directory);
|
||||
if ($googleDriveFile == null)
|
||||
{
|
||||
$googleDriveFile = new GoogleDriveFile();
|
||||
$googleDriveFile->id = $basename;
|
||||
$googleDriveFile->type = 'directory';
|
||||
$googleDriveFile->rank_permission = $value['rank'];
|
||||
$googleDriveFile->job_permission = [];
|
||||
$googleDriveFile->user_permission = [];
|
||||
$googleDriveFile->path = $directory;
|
||||
$name = explode('/',$directory);
|
||||
$googleDriveFile->name = $name[count($name)-1];
|
||||
$googleDriveFile->save();
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($googleDriveFile->id != $basename)
|
||||
{
|
||||
$googleDriveFile->id = $basename;
|
||||
$googleDriveFile->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function editPermission($folder)
|
||||
{
|
||||
$f = GoogleDriveFile::find($folder);
|
||||
if ($f == null)
|
||||
{
|
||||
$metadata = \Storage::cloud()->getMetadata($folder);
|
||||
$f = new GoogleDriveFile();
|
||||
$f->id = $folder;
|
||||
$f->type = 'directory';
|
||||
$f->name = $metadata['name'];
|
||||
$f->rank_permission = [1 => 'rwp'];
|
||||
$f->job_permission = [];
|
||||
$f->user_permission = [];
|
||||
$f->path = $this->recreatePath($folder);
|
||||
$f->save();
|
||||
}
|
||||
return view('admin.files.Google Drive.permission',['dir' => $f]);
|
||||
}
|
||||
|
||||
public function getFileStructure()
|
||||
{
|
||||
return collect([
|
||||
'🔒.Privé' => [
|
||||
'rank' => [1 => 'rwp'],
|
||||
'job' => [],
|
||||
'user' => []
|
||||
],
|
||||
'🔒.Privé/🔒.Cadet' => [
|
||||
'rank' => [1 => 'rwp'],
|
||||
'job' => [],
|
||||
'user' => []
|
||||
],
|
||||
'🔒.Privé/🔒.ETAMAS' => [
|
||||
'rank' => [1 => 'rwp'],
|
||||
'job' => [],
|
||||
'user' => []
|
||||
],
|
||||
'🔒.Privé/🔒.Officier' => [
|
||||
'rank' => [1 => 'rwp'],
|
||||
'job' => [],
|
||||
'user' => []
|
||||
],
|
||||
'🔒.Privé/🔒.Staff' => [
|
||||
'rank' => [1 => 'rwp'],
|
||||
'job' => [],
|
||||
'user' => []
|
||||
],
|
||||
'🔒.Privé/🔒.Staff/🔒.Guide' => [
|
||||
'rank' => [1 => 'rwp'],
|
||||
'job' => [],
|
||||
'user' => []
|
||||
],
|
||||
'🔒.Publique' => [
|
||||
'rank' => [1 => 'rwp',0 => 'r'],
|
||||
'job' => [],
|
||||
'user' => []
|
||||
],
|
||||
'🔒.Publique/🔒.Fichier' => [
|
||||
'rank' => [1 => 'rwp',0 => 'r'],
|
||||
'job' => [],
|
||||
'user' => []
|
||||
],
|
||||
'🔒.Publique/🔒.Image' => [
|
||||
'rank' => [1 => 'rwp',0 => 'r'],
|
||||
'job' => [],
|
||||
'user' => []
|
||||
],
|
||||
'🔒.Système' => [
|
||||
'rank' => [1 => 'rwp'],
|
||||
'job' => [],
|
||||
'user' => []
|
||||
],
|
||||
'🔒.Système/🔒.Fichier' => [
|
||||
'rank' => [1 => 'rwp'],
|
||||
'job' => [],
|
||||
'user' => []
|
||||
],
|
||||
'🔒.Système/🔒.Image' => [
|
||||
'rank' => [1 => 'rwp'],
|
||||
'job' => [],
|
||||
'user' => []
|
||||
],
|
||||
'🔒.Système/🔒.Image/🔒.Nouvelle' => [
|
||||
'rank' => [1 => 'rwp'],
|
||||
'job' => [],
|
||||
'user' => []
|
||||
],
|
||||
'🔒.Système/🔒.Image/🔒.Profil' => [
|
||||
'rank' => [1 => 'rwp'],
|
||||
'job' => [],
|
||||
'user' => []
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
public function listLockDirectory($d)
|
||||
{
|
||||
$contents = collect(\Storage::cloud()->listContents($d, false));
|
||||
$dir = $contents->where('type', '=', 'dir');
|
||||
$dir = $dir->where('filename','=','🔒');
|
||||
|
||||
return $dir;
|
||||
}
|
||||
|
||||
public function recreatePath($folder)
|
||||
{
|
||||
$path = [];
|
||||
$name = [];
|
||||
$directories = collect(json_decode($this->getPathArray(),true));
|
||||
foreach ($directories as $dir)
|
||||
{
|
||||
$path[$dir['basename']] = $dir['dirname'];
|
||||
$name[$dir['basename']] = $dir['name'];
|
||||
}
|
||||
$realPath = $name[$folder];
|
||||
$foo = $folder;
|
||||
while ($foo != "")
|
||||
{
|
||||
$bar = explode('/',$path[$foo]);
|
||||
$foo = $bar[count($bar)-1];
|
||||
if ($foo != "")
|
||||
{
|
||||
$realPath = $name[$foo].'/'.$realPath;
|
||||
}
|
||||
}
|
||||
return $realPath;
|
||||
}
|
||||
|
||||
public function editPermissionModal($folder,$subject,$id)
|
||||
{
|
||||
$dir = GoogleDriveFile::find($folder);
|
||||
$foo = null;
|
||||
$perm = null;
|
||||
if ($subject == 'rank')
|
||||
{
|
||||
if ($id == 0)
|
||||
{
|
||||
$foo = new \App\Rank();
|
||||
$foo->name = "Utilisateur non authentifié";
|
||||
$foo->id = 0;
|
||||
if (isset($dir->rank_permission[$id]))
|
||||
{
|
||||
$perm = $dir->rank_permission[$id];
|
||||
}
|
||||
else
|
||||
{
|
||||
$perm = "";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$foo = \App\Rank::find($id);
|
||||
$perm = $dir->rank_permission[$id];
|
||||
}
|
||||
}
|
||||
elseif ($subject == 'job')
|
||||
{
|
||||
$foo = \App\Job::find($id);
|
||||
$perm = $dir->job_permission[$id];
|
||||
}
|
||||
else
|
||||
{
|
||||
$foo = \App\User::find($id);
|
||||
$perm = $dir->user_permission[$id];
|
||||
}
|
||||
return view('admin.files.Google Drive.permission.edit',['folder' => $dir,'subject' => $foo,'perm' => $perm,'s' => $subject]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -3,7 +3,9 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\OCOM;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Routing\Redirector;
|
||||
use function GuzzleHttp\json_encode;
|
||||
use function GuzzleHttp\Psr7\str;
|
||||
|
||||
@@ -12,11 +14,11 @@ class OCOMController extends Controller
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
return view('admin.ocom.index',['ocoms' => OCOM::all()]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -26,581 +28,75 @@ class OCOMController extends Controller
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('admin.ocom.add');
|
||||
}
|
||||
|
||||
$text = "Niveau 1,,,,,,,,,Niveau 2,,,,,,,,,Niveau 3,,,,,,,,,Niveau 4,,,,,,,
|
||||
N° de l'OREN,Objectif de rendement,N° de l’OCOM,Objectif de compétence,Nbredepériode,,Nbre dans horaire,Instructeur,,N° de l’OREN,Objectif de rendement,N° de l’OCOM,Objectif de compétence,Nbre de période,,Nbre dans horaire,Instructeur,,\"N° de
|
||||
l’OREN\",\"Objectif de
|
||||
rendement\",\"N° de
|
||||
l’OCOM\",Objectif de compétence,Nbredepériodes,,Nbre dans horaire,Instructeur,,N° de l'OREN,Objectif de rendement,N° de l’OCOM,Objectif de compétence,Nbredepériode,,Nbre dans horaire,Instructeur
|
||||
100,\"Participer à l'instruction
|
||||
sur les relations sociales positives pour les jeunes\",S.O.,Sous-module 1 — Nos attentes face aux cadets,2,,,,,X01,\"Participer à des activités sur le
|
||||
civisme\",MX01.01A,Participer à une visite reliée au civisme,3,,,,,X01,\"Participer à des
|
||||
activités sur le civisme\",MX01.01A,Participer à une visite reliée au civisme,3,,,,,400,Participer à l'instruction sur les relations sociales positives pour les jeunes,S.O.,Sous-module 1 – Votre responsabilité en tant que chef à influencer les relations sociales positives,2,,,
|
||||
,,S.O.,\"Sous-module 2 — Ce qui peut se produire
|
||||
lorsque les comportements dépassent ou ne répondent pas aux attentes\",1,,,,,,,MX01.01B,\"Assister à une présentation donnée par
|
||||
un organisme communautaire\",3,,,,,,,MX01.01B,\"Assister à une présentation donnée par un
|
||||
organisme communautaire\",3,,,,,,,S.O.,Sous-module 2 – Ce que les plaintes et le consentement sont et la façon de pratiquer la réduction du risque,2,,,
|
||||
,,S.O.,\"Sous-module 3 — Ce que sont le harcèlement,
|
||||
les actes criminels et la violence faite aux enfants et où on peut obtenir de l’aide\",1,,,,,,,MX01.01C,\"Assister à une présentation donnée par
|
||||
un citoyen d'intérêt\",3,,,,,,,MX01.01C,\"Assister à une présentation donnée par un citoyen
|
||||
d’intérêt\",3,,,,,,,S.O.,Sous-module 3 – Votre responsabilité en tant que chef pour aider à gérer les conflits,2,,,
|
||||
,,S.O.,Sous-module 4- ,2,,,,,,,MX01.01D,\"Participer au défi de la citoyenneté
|
||||
canadienne\",3,,,,,,,MX01.01D,Participer au défi de la citoyenneté canadienne,3,,,,,,,,OREN 400 - Total des périodes d’instruction obligatoires,6,,,
|
||||
,,\"OREN 100 - Total des périodes d’instruction
|
||||
obligatoires\",,6,,0,,,,,MX01.01E,\"Organiser une cérémonie de
|
||||
citoyenneté\",3,,,, ,,,MX01.01E,Organiser une cérémonie de citoyenneté,3,,,,,,,,OREN 400 - Total des périodes d’instruction complémentaires,0,,,
|
||||
X01,\"Participer à des activités
|
||||
sur le civisme\",MX01.01A,Participer à une visite reliée au civisme,3,,,,,,,MX01.01F,Participer à une élection,3,,,,,,,MX01.01F,Participer à une élection,3,,,,,X01,Participer à des activités sur le civisme,MX01.01A,Participer à une visite reliée au civisme,3,,,
|
||||
,,MX01.01B,\"Assister à une présentation donnée par un
|
||||
organisme communautaire\",3,,,,,,,MX01.01G,\"Participer à des activités relatives aux
|
||||
vidéos sur les Minutes du Patrimoine\",3,,,,,,,MX01.01G,\"Participer à des activités relatives aux vidéos sur les
|
||||
Minutes du Patrimoine\",3,,,,,,,MX01.01B,Assister à une présentation donnée par un organisme communautaire,3,,,
|
||||
,,MX01.01C,\"Assister à une présentation donnée par un
|
||||
citoyen d'intérêt\",3,,,,,,,MX01.01H,\"Participer à des ateliers
|
||||
d'apprentissage sur le civisme\",3,,,,,,,MX01.01H,\"Participer à des ateliers d’apprentissage sur le
|
||||
civisme\",3,,,,,,,MX01.01C,Assister à une présentation donnée par un citoyen d'intérêt,3,,,
|
||||
,,MX01.01D,Participer au défi de la citoyenneté canadienne,3,,,,,,,CX01.01,Participer à des activités sur le civisme,18,,,,,,,CX01.01,Participer à des activités sur le civisme,18,,,,,,,MX01.01D,Participer au défi de la citoyenneté canadienne,3,,,
|
||||
,,MX01.01E,Organiser une cérémonie de citoyenneté,3,,,,,,,\"OREN X01 – Total des périodes d’instruction
|
||||
obligatoires\",,3,,0,,,,,OREN X01 - Total des périodes d’instruction obligatoires,,3,,,,,,,MX01.01E,Organiser une cérémonie de citoyenneté,3,,,
|
||||
,,MX01.01F,Participer à une élection,3,,,,,,,\"OREN X01 – Total des périodes d’instruction
|
||||
complémentaires\",,18,,,,,,,\"OREN X01 - Total des périodes d’instruction
|
||||
complémentaires\",,18,,,,,,,MX01.01F,Participer à une élection,3,,,
|
||||
,,MX01.01G,\"Participer à des activités relatives aux vidéos
|
||||
sur les Minutes du Patrimoine\",3,,,,,X02,\"Effectuer un service
|
||||
communautaire\",MX02.01,Effectuer un service communautaire,9,,,,,X02,\"Effectuer un service
|
||||
communautaire\",MX02.01,Effectuer un service communautaire,9,,,,,,,MX01.01G,Participer à des activités relatives aux vidéos sur les minutes du Patrimoine,3,,,
|
||||
,,MX01.01H,\"Participer à des ateliers d'apprentissage sur le
|
||||
civisme\",3,,,,,,,CX02.01,Effectuer un service communautaire,18,,,,,,,CX02.01,Effectuer un service communautaire,18,,,,,,,MX01.01H,Participer à des ateliers d'apprentissage sur le civisme,3,,,
|
||||
,,CX01.01,Participer à des activités sur le civisme,18,,,,,,,\"OREN X02 – Total des périodes d’instruction
|
||||
obligatoires\",,9,,,,,,,OREN X02 - Total des périodes d’instruction obligatoires,,9,,,,,,,CX01.01,Participer à des activités sur le civisme,18,,,
|
||||
,,\"OREN X01 - Total des périodes d’instruction
|
||||
obligatoires\",,3,,0,,,,,\"OREN X02 – Total des périodes d’instruction
|
||||
complémentaires\",,18,,,,,,,\"OREN X02 - Total des périodes d’instruction
|
||||
complémentaires\",,18,,,,,,,,OREN X01 - Total des périodes d’instruction obligatoires,3,,,
|
||||
,,\"OREN X01 - Total des périodes d’instruction
|
||||
complémentaires\",,18,,,,,203,\"Démontrer des qualités de
|
||||
leadership auprès des pairs\",M203.01,Discuter du leadership entre pairs,1,,1,,,303,\"Exercer le rôle d’un
|
||||
chef d’équipe\",M303.01,Définir le rôle d’un chef d’équipe,2,,2,,,,,,OREN X01 - Total des périodes d’instruction complémentaires,18,,,
|
||||
X02,\"Effectuer un service
|
||||
communautaire\",MX02.01,Effectuer un service communautaire,9,,,,,,,M203.02,Discuter des principes de leadership,1,,1,,,,,M303.02,Participer à une relation de mentorat,1,,1,,,X02,Effectuer un service communautaire,MX02.01,Effectuer un service communautaire,9,,,
|
||||
,,CX02.01,Effectuer un service communautaire,18,,,,,,,M203.03,\"Discuter de la communication efficace
|
||||
entre pairs\",1,,1,,,,,M303.03,Pratiquer l’auto-évaluation,1,,1,,,,,CX02.01,Effectuer un service communautaire,18,,,
|
||||
,,\"OREN X01 - Total des périodes d’instruction
|
||||
obligatoires\",,9,,0,,,,,M203.04,\"Démontrer la dynamique de groupe
|
||||
positive\",2,,2,,,,,M303.04,Communiquer à titre de chef d’équipe,2,,2,,,,,,OREN X02 - Total des périodes d’instruction obligatoires,9,,,
|
||||
,,\"OREN X01 - Total des périodes d’instruction
|
||||
complémentaires\",,18,,0,,,,,M203.05,Discuter des comportements influents,1,,1,,,,,M303.05,Superviser les cadets,2,,2,,,,,,OREN X02 - Total des périodes d’instruction complémentaires,18,,,
|
||||
103,\"Participer à titre de
|
||||
membre d'une équipe\",M103.01,\"Identifier les responsabilités d'un suiveur dans
|
||||
une équipe\",1,,1,,,,,M203.06,Utiliser la résolution de problème,2,,2,,,,,M303.06,Résoudre les problèmes,2,,2,,,403,Agir à titre de chef d'équipe,M403.01,Décrire les besoins et les attentes des membres d'une équipe,1,,,
|
||||
,,M103.02,\"Établir un objectif personnel pour l'année
|
||||
d'instruction\",1,,1,,,,,M203.07,\"Discuter de l'intégrité personnelle
|
||||
comme qualité de leadership\",1,,1,,,,,M303.07,\"Diriger les cadets tout au long d’une tâche en
|
||||
leadership\",2,,2,,,,,M403.02,Choisir une approche de leadership,2,,,
|
||||
,,M103.03,\"Participer à des activités de promotion du
|
||||
travail d’équipe\",2,,2,,,,,M203.08,\"Participer à des activités de promotion
|
||||
du travail d’équipe\",1,,1,,,,,COREN de l’OREN 303,,0,,,,,,,M403.03,Motiver les membres d’une équipe,2,,,
|
||||
,,C103.02,Participer à des présentations de soi,1,,,,,,,C203.02,Utiliser la résolution de problème,2,,,,,,,C303.02,Donner une présentation au sujet d’un chef,2,,,,,,,M403.04,Donner de la rétroaction aux membres de l'équipe,2,,,
|
||||
,,C103.03,\"Participer à des activités de promotion du
|
||||
travail d’équipe\",1,,,,,,,C203.03,Discuter des caractéristiques d'un chef,2,,,,,,,C203.01,Consigner des entrées dans un journal réflectif,3,,,,,,,M403.05,Participer à une relation de mentorat,2,,,
|
||||
,,\"OREN 103 - Total des périodes d’instruction
|
||||
obligatoires\",,4,,4,,,,,C203.04,\"Participer à une présentation donnée
|
||||
par un chef\",2,,,,,,,C203.02,Utiliser la résolution de problème,2,,,,,,,M403.06,Agir à titre de chef d'équipe lors d’une affectation à un poste de leadership,1,,,
|
||||
,,\"OREN 103 - Total des périodes d’instruction
|
||||
complémentaires\",,3,,0,,,,,C203.05,\"Participer à des activités de
|
||||
renforcement de la confiance\",1,,,,,,,C203.04,Participer à une présentation donnée par un chef,2,,,,,,,COREN de l'OREN 403,,0,,,
|
||||
X04,\"Suivre la participation à
|
||||
des activités physiques\",MX04.01,\"Participer à 60 minutes d'activités physiques
|
||||
d'intensité modérée à élevée (APIME) et suivre la participation à des activités physiques\",3,,,,,,,C203.06,\"Participer à des activités de résolution
|
||||
de problème\",2,,,,,,,C203.05,\"Participer à des activités de renforcement de la
|
||||
confiance\",1,,,,,,,C403.01,Participer à un séminaire sur le leadership,4 x 3,,,
|
||||
,,MX04.02,\"Identifier des stratégies en vue d'accroître
|
||||
la participation à des activités physiques et participer à l'évaluation de la condition physique des cadets\",3,,,,,,,\"OREN 203 – Total des périodes d’instruction
|
||||
obligatoires\",,10,,10,,,,,C203.06,Participer à des activités de résolution de problème,2,,,,,,,C303.01,Diriger une activité de promotion du travail d’équipe,3,,,
|
||||
,,MX04.03,\"Participer à l’évaluation de la condition
|
||||
physique des cadets et identifier des stratégies en vue d'accroître la bonne forme physique personnelle\",3,,,,,,,\"OREN 203 – Total des périodes d’instruction
|
||||
complémentaires\",,12,,,,,,,C103.03,\"Participer à des activités de promotion du travail
|
||||
d’équipe\",1,,,,,,,C303.02,Donner une présentation au sujet d'un chef,2,,,
|
||||
,,CX04.01,\"Participer à l’évaluation de la condition
|
||||
physique des cadets et identifier des stratégies en vue d'accroître la bonne forme physique personnelle\",3,,,,,X04,\"Suivre la participation à des
|
||||
activités physiques\",MX04.01,\"Participer à 60 minutes d'activités
|
||||
physiques d'intensité modérée à élevée (APIME) et suivre la
|
||||
participation à des activités physiques\",3,,,,,,,OREN 303 - Total des périodes d’instruction obligatoires,,12,,,,,,,,OREN 403 - Total des périodes d’instruction obligatoires,10,,,
|
||||
,,CX04.02,\"Participer à des activités qui renforcent les trois
|
||||
éléments de la bonne forme physique\",3,,,,,,,MX04.02,\"Identifier des stratégies en vue
|
||||
d'accroître la participation à des activités physiques et participer à l'évaluation de la condition physique des cadets\",3,,,,,,,OREN 303 - Total des périodes d’instruction complémentaires,,16,,,,,,,,OREN 403 - Total des périodes d’instruction complémentaires,17,,,
|
||||
,,CX04.03,Participer à un cours de cuisine,3,,,,,,,MX04.03,\"Participer à l’évaluation de la condition
|
||||
physique des cadets et identifier des stratégies en vue d'accroître la bonne forme physique\",3,,,,,X04,\"Suivre la
|
||||
participation à des activités physiques\",MX04.01,\"Participer à 60 minutes d’activités physiques
|
||||
d’intensité modérée à élevée (APIME) et suivre la participation à des activités physiques\",3,,,,,X04,Suivre la participation à des activités physiques,MX04.01,Participer à 60 minutes d'activités physiques d'intensité modérée à élevée (APME) et suivre la participation à des activités physiques,3,,,
|
||||
,,CX04.04,\"Assister à une présentation sur la bonne forme
|
||||
physique et le mode de vie sain\",3,,,,,,,CX04.01,\"Participer à l’évaluation de la condition
|
||||
physique des cadets et identifier des stratégies en vue d'accroître la bonne forme physique personnelle\",3,,,,,,,MX04.02,\"Identifier des stratégies en vue d’accroître la
|
||||
participation à des activités physiques et participer à l’évaluation de la condition physique des cadets\",3,,,,,,,MX04.02,\"Identifier des stratégies en vue d'accroître la participation à des activités physiques et participer à l'évaluation de la condition
|
||||
physique des cadets\",3,,,
|
||||
,,CX04.05,Assister à un événement sportif amateur local,3,,1,,,,,CX04.02,\"Participer aux activités qui renforcent
|
||||
les trois éléments de la condition physique\",3,,,,,,,MX04.03,\"Participer à l’évaluation de la condition physique des
|
||||
cadets et élaborer des stratégies en vue d’accroître la bonne forme physique personnelle\",3,,,,,,,MX04.03,\"Participer à l'évaluation de la condition physique des cadets et élaborer des stratégies en vue d'accroître la bonne
|
||||
forme physique personnelle\",3,,,
|
||||
,,\"OREN X04 - Total des périodes d’instruction
|
||||
obligatoires\",,9,,0,,,,,CX04.03,Participer à une classe de cuisine,3,,,,,,,CX04.01,\"Participer à l’évaluation de la condition physique des
|
||||
cadets et élaborer des stratégies en vue d’accroître la bonne forme physique personnelle\",3,,,,,,,CX04.01,\"Participer à l'évaluation de la condition physique des cadets et élaborer des stratégies en vue d'accroître la bonne
|
||||
forme physique personnelle\",3,,,
|
||||
,,\"OREN X04 - Total des périodes d’instruction
|
||||
complémentaires\",,15,,1,,,,,CX04.04,\"Participer à une présentation sur la
|
||||
bonne forme physique et le mode de vie sain\",3,,,,,,,CX04.02,\"Participer à des activités qui renforcent les trois
|
||||
éléments de la bonne forme physique\",3,,,,,,,CX04.02,\"Participer à des activités qui renforcent les
|
||||
trois éléments de la bonne forme physique\",3,,,
|
||||
X05,\"Participer à des activités
|
||||
physiques\",MX05.01,Participer à des activités physiques,9,,,,,,,CX04.05,\"Assister à un événement sportif
|
||||
amateur local\",3,,1,,,,,CX04.03,Participer à un cours de cuisine,3,,,,,,,CX04.03,Participer à un cours de cuisine,3,,,
|
||||
,,CX05.01,Participer à des activités physiques,9,,,,,,,\"OREN X04 – Total des périodes d’instruction
|
||||
obligatoires\",,9,,1,,,,,CX04.04,\"Assister à une présentation sur la bonne forme
|
||||
physique et le mode de vie sain\",3,,,,,,,CX04.04,\"Assister à une présentation sur la bonne
|
||||
forme physique et le mode de vie sain\",3,,,
|
||||
,,CX05.02,Participer à un tournoi,9,,,,,,,\"OREN X04 – Total des périodes d’instruction
|
||||
complémentaires\",,15,,,,,,,CX04.05,Assister à un événement sportif amateur local,3,,1,,,,,CX04.05,\"Assister à un événement sportif amateur
|
||||
local\",3,,,
|
||||
,,\"OREN X05 - Total des périodes d’instruction
|
||||
obligatoires\",,9,,,,,X05,\"Participer à des activités
|
||||
physiques\",MX05.01,Participer à des activités physiques,9,,,,,,,OREN X04 - Total des périodes d’instruction obligatoires,,9,,,,,,,,\"OREN X04 - Total des périodes
|
||||
d’instruction obligatoires\",9,,,
|
||||
,,\"OREN X05 - Total des périodes d’instruction
|
||||
complémentaires\",,18,,,,,,,CX05.01,Participer à des activités physiques,9,,,,,,,\"OREN X04 - Total des périodes d’instruction
|
||||
complémentaires\",,15,,,,,,,,\"OREN X04 - Total des périodes
|
||||
d’instruction complémentaires\",15,,,
|
||||
106,\"Tirer avec la carabine à
|
||||
air comprimé des cadets\",M106.01,\"Identifier les parties et les caractéristiques
|
||||
d’une carabine à air comprimé Daisy 853C\",1,,,,,,,CX05.02,Participer à un tournoi,9,,,,,X05,\"Participer à des
|
||||
activités physiques\",MX05.01,Participer à des activités physiques,9,,,,,X05,Participer à des activités physiques,MX05.01,Participer à des activités physiques,9,,,
|
||||
,,M106.02,\"Appliquer les mesures de sécurité au
|
||||
maniement de la carabine à air comprimé des cadets\",1,,,,,,,\"OREN X05 – Total des périodes d’instruction
|
||||
obligatoires\",,9,,0,,,,,CX05.01,Participer à des activités physiques,9,,,,,,,CX05.01,Participer à des activités physiques,9,,,
|
||||
,,M106.03,\"Appliquer les techniques d'instruction
|
||||
élémentaire de tir de précision\",2,,,,,,,\"OREN X05 – Total des périodes d’instruction
|
||||
complémentaires\",,18,,,,,,,CX05.02,Participer à un tournoi,9,,,,,,,CX05.02,Participer à un tournoi,9,,,
|
||||
,,M106.04,\"Respecter les règles et les commandements
|
||||
sur un champ de tir pour carabine à air comprimé\",1,,,,,206,\"Tirer avec la carabine à air
|
||||
comprimé des cadets pendant une activité récréative de tir de précision\",M206.01,\"Participer à une activité récréative de
|
||||
tir de précision\",3,,,,,,,OREN X05 - Total des périodes d’instruction obligatoires,,9,,,,,,,,OREN X05 - Total des périodes d’instruction obligatoires,9,,,
|
||||
,,M106.05,\"Participer à une activité de familiarisation sur
|
||||
le tir de précision à l'aide de la carabine à air comprimé des cadets\",3,,,,,,,C206.01,\"Pratiquer les techniques de tenue de la
|
||||
carabine\",1,,,,,,,\"OREN X05 - Total des périodes d’instruction
|
||||
complémentaires\",,18,,,,,,,,OREN X05 - Total des périodes d’instruction complémentaires,18,,,
|
||||
,,C106.01,\"Participer à une activité récréative de tir de
|
||||
précision\",3,,,,,,,C206.02,Pratiquer les techniques de visée,2,,,,,306,\"Tirer avec la
|
||||
carabine à air comprimé des cadets pendant une activité récréative de tir de précision\",M306.01,Participer à une activité récréative de tir de précision,3,,3,,,406,\"Tirer avec la carabine à air comprimé des cadets pendant une activité
|
||||
récréative de tir de précision\",M406.01,Participer à une activité récréative de tir de précision,3,,,
|
||||
,,C106.02,\"Nettoyer et entreposer la carabine à air
|
||||
comprimé des cadets\",1,,,,,,,C206.03,Pratiquer les techniques de tir,1,,,,,,,C306.01,Identifier les associations civiles de tir de précision,1,,,,,,,C406.01,Aider l'officier de sécurité de champ de tir (OSCT),1,,,
|
||||
,,,OREN 106 - Total des périodes d’instruction obligatoires,8,,0,,,,,C106.01,\"Participer à une activité récréative de
|
||||
tir de précision avec la carabine à air comprimé\",6,,,,,,,C306.02,Corriger l’erreur de tir,2,,,,,,,C406.02,Marquer les cibles de tir de précision,1,,,
|
||||
,,,OREN 106 - Total des périodes d’instruction complémentaires,4,,0,,,,,\"OREN 206 – Total des périodes d’instruction
|
||||
obligatoires\",,3,,0,,,,,C306.03,\"Tirer avec la carabine à air comprimé des cadets en
|
||||
position debout\",2,,,,,,,C306.01,Identifier les associations civiles de tir de précision,1,,,
|
||||
,,M107.01,Discuter de la première année de l'instruction,1,,,,,,,\"OREN 206 – Total des périodes d’instruction
|
||||
complémentaires\",,10,,,,,,,C206.01,Pratiquer les techniques de tenue de la carabine,1,,,,,,,C306.02,Corriger l'erreur de tir,2,,,
|
||||
,,M107.02,\"Identifier les grades des cadets de l'Air et des
|
||||
officiers de l'ARC\",1,,1,,,207,\"Servir dans un escadron de
|
||||
cadets de l’Air\",M207.01,\"Identifier les occasions d'instruction du
|
||||
niveau de compétence deux\",1,,,,,,,C206.02,Pratiquer les techniques de visée,2,,,,,,,C306.03,Adopter la position debout avec la carabine à air comprimé des cadets,2,,,
|
||||
107,\"Servir dans un escadron
|
||||
de cadets de l’Air\",M107.03,\"Respecter les règles et les procédures de
|
||||
salutation\",1,,,,,,,M207.02,\"Reconnaître les aspects historiques
|
||||
des Cadets de l’Aviation royale du Canada (CARC)\",1,,1,,,,,C206.03,Pratiquer les techniques de tir,1,,,,,,,C106.01,Participer à une activité récréative de tir de précision,6,,,
|
||||
,,M107.04,\"Énoncer les objectifs et la devise du
|
||||
programme des cadets de l’Air\",1,,,,,,,M207.03,\"Reconnaître les rôles et
|
||||
responsabilités du répondant local\",1,,,,,,,C106.01,Participer à une activité récréative de tir de précision,6,,,,,,,,OREN 406 - Total des périodes d’instruction obligatoires,3,,,
|
||||
,,M107.05,Porter l'uniforme de cadet de l'Air,2,,,,,,,M207.04,\"Identifier les occasions d'instruction de
|
||||
deuxième année du CIEC\",1,,,,,,,OREN 306 - Total des périodes d’instruction obligatoires,,3,,,,,,,,OREN 406 - Total des périodes d’instruction complémentaires,13,,,
|
||||
,,M107.06,Discuter des occasions d’instruction d’été,1,,1,,,,,C207.01,\"Identifier la structure des grades
|
||||
des cadets de la Marine Royale canadienne et des cadets royaux de l'Armée canadienne\",1,,,,,,,OREN 306 - Total des périodes d’instruction complémentaires,,15,,,,,407,Servir dans un escadron de cadets de l’Air,M407.01,Discuter des occasions d'instruction du niveau de compétence quatre,1,,,
|
||||
,,C107.01,Entretenir l’uniforme de cadet de l’air,2,,,,,,,C207.02,\"Visiter un corps de cadets de la Marine
|
||||
royale canadienne / corps de cadets royaux de l'Armée canadienne ou un escadron de cadets de l’Air\",3,,,,,307,\"Servir dans un
|
||||
escadron de cadets de l’Air\",M307.01,\"Identifier les occasions d’instruction du niveau de
|
||||
compétence trois\",1,,,,,,,M407.02,\"Discuter des occasions d’instruction de quatrième année au Centre d’instruction
|
||||
d’été des cadets (CIEC)\",1,,,
|
||||
,,C107.02,Identifier la structure des grades MR de l'ARC,1,,,,,,,C207.03,Décrire l'unité d'affiliation,1,,,,,,,M307.02,\"Identifier les occasions d’instruction de troisième
|
||||
année du CIEC\",1,,,,,,,C407.01,Se préparer pour un conseil de mérite,3,,,
|
||||
,,C107.03,Visiter l'escadron,1,,,,,,,C207.04,\"Participer à une visite de l'unité
|
||||
d'affiliation\",3,,,,,,,M307.03,\"Reconnaître le partenariat entre la Ligue des cadets
|
||||
de l’Air du Canada et le ministère de la Défense nationale\",1,,1,,,,,C407.02,\"Décrire la procédure de demande pour participer aux cours et aux échanges
|
||||
nationaux\",1,,,
|
||||
,,C107.04,\"Participer à une activité relative à l'histoire de
|
||||
l’escadron\",2,,,,,,,C107.04,\"Participer à une activité relative à
|
||||
l'histoire de l’escadron\",2,,,,,,,C307.01,\"Participer à une présentation donnée par un
|
||||
conférencier invité d’une Unité régionale de soutien aux cadets\",2,,,,,,,C307.01,\"Participer à une présentation donnée par
|
||||
un conférencier invité d'une Unité régionale de soutien aux cadets (URSC)\",2,,,
|
||||
,,,OREN 106 - Total des périodes d’instruction obligatoires,7,,2,,,,,\"OREN 207 – Total des périodes d’instruction
|
||||
obligatoires\",,4,,1,,,,,C307.02,\"Participer à une présentation donnée par l’officier de
|
||||
liaison – cadets\",2,,,,,,,C307.02,\"Participer à une présentation donnée par
|
||||
l’officier de liaison des cadets (OLC)\",2,,,
|
||||
,,,OREN 106 - Total des périodes d’instruction complémentaires,6,,0,,,,,\"OREN 207 – Total des périodes d’instruction
|
||||
complémentaires\",,10,,,,,,,C307.03,\"Participer à une présentation donnée par un
|
||||
conférencier invité de la Ligue des cadets de l’Air du Canada\",2,,,,,,,C307.03,\"Participer à une présentation donnée par
|
||||
un conférencier invité de la Ligue des cadets de l'Air du Canada (LCAC)\",2,,,
|
||||
,,M108.01,\"Adopter les positions garde-à-vous, en place
|
||||
repos et repos\",1,,1,,,208,\"Exécuter l’exercice militaire
|
||||
en tant que membre d’une escouade\",M208.01,\"Tourner à gauche et à droite en
|
||||
marchant\",2,,1,,,,,OREN 307 - Total des périodes d’instruction obligatoires,,3,,,,,,,C307.04,\"Identifier les procédures de demande de bourse de pilotage de planeur et de bourse
|
||||
de pilotage d'avion\",2,,,
|
||||
,,M108.02,Exécuter un salut à la halte sans armes,1,,,,,,,M208.02,Former une file indienne de la halte,1,,1,,,,,OREN 307 - Total des périodes d’instruction complémentaires,,6,,,,,,,C307.05,Participer à une présentation sur le programme du Prix du Duc d'Édimbourg,1,,,
|
||||
,,M108.03,Tourner à la halte,1,,,,,,,C208.01,\"S'exercer à la prise d'armes dans le
|
||||
cadre d'une revue\",2,,,,,308,\"Diriger une
|
||||
escouade avant un rassemblement\",M308.01,Préparer une escouade pour le rassemblement,3,,2,,,,,,OREN 407 - Total des périodes d’instruction obligatoires,2,,,
|
||||
,,M108.04,\"Exécuter les mouvements pour resserrer les
|
||||
rangs vers la droite et vers la gauche\",1,,,,,,,C208.02,\"Exécuter l’exercice militaire avec des
|
||||
armes\",8,,,,,,,M308.02,Donner des commandements,1,,1,,,,,,OREN 407 - Total des périodes d’instruction complémentaires,13,,,
|
||||
108,\"Exécuter les
|
||||
mouvements d'exercice militaire dans le cadre d'une revue annuelle\",M108.05,Exécuter des pas vers l'avant et vers l'arrière,1,,,,,,,C108.01,\"Exécuter des mouvements d’exercice
|
||||
militaire supplémentaires\",6,,,,,,,COREN de l’OREN 308,,0,,,,,408,Commander une section lors d’un rassemblement,M408.01,Discuter de la façon de commander une section lors d’un rassemblement,1,,,
|
||||
,,M108.06,\"Exécuter les mouvements requis pour
|
||||
l'alignement par la droite\",1,,1,,,,,\"OREN 208 – Total des périodes d’instruction
|
||||
obligatoires\",,3,,,,,,,C308.01,Exécuter un exercice militaire relatif aux drapeaux,4,,,,,,,M408.02,Décrire la séquence d’un rassemblement,1,,,
|
||||
,,M108.07,\"Exécuter les mouvements pour ouvrir et fermer
|
||||
les rangs\",1,,,,,,,\"OREN 208 – Total des périodes d’instruction
|
||||
complémentaires\",,16,,,,,,,C308.02,Donner des commandements,2,,,,,,,M408.03,Commander une escouade,1,,,
|
||||
,,M108.08,Marche et halte au pas cadencé,1,,1,,,211,\"Participer à des activités
|
||||
récréatives de biathlon d’été\",C211.01,Identifier les occasions de biathlon civil,1,,,,,,,C208.01,\"S’exercer à l’exercice de prise d’armes dans le
|
||||
cadre d’une revue\",2,,,,,,,M408.04,Inspecter un cadet lors d'un rassemblement,1,,,
|
||||
,,M108.09,\"Exécuter les mouvements pour avancer et
|
||||
s'arrêter au pas cadencé en marquant le pas\",1,,1,,,,,C211.02,Courir sur un terrain accidenté,1,,,,,,,C208.02,Exécuter l’exercice militaire avec des armes,8,,,,,,,COREN de l'OREN 408,,0,,,
|
||||
,,M108.10,Exécuter un salut à la marche,1,,,,,,,C211.03,\"Tirer avec la carabine à air comprimé
|
||||
des cadets en se servant d’une bretelle, après une activité physique\",1,,,,,,,OREN 308 - Total des périodes d’instruction obligatoires,,4,,,,,,,C408.01,Discuter de l’histoire de l’exercice militaire,1,,,
|
||||
,,M108.11,\"Exécuter un salut dans une escouade à la
|
||||
marche\",1,,,,,,,C211.04,\"Participer à une activité compétitive de
|
||||
biathlon d'été\",6,,,,,,,OREN 308 - Total des périodes d’instruction complémentaires,,16,,,,,,,C408.02,Observer une reconstitution historique de l’exercice militaire,3,,,
|
||||
,,M108.12,\"Exécuter les mouvements d'exercice militaire
|
||||
dans le cadre d'une revue annuelle\",3,,,,,,,\"OREN 211 – Total des périodes d’instruction
|
||||
complémentaires\",,9,,,,,309,\"Enseigner une
|
||||
leçon\",M309.01,Expliquer les principes d’instruction,2,,2,,,,,C308.01,Exécuter un exercice militaire avec drapeaux,6,,,
|
||||
,,C108.01,\"Exécuter des mouvements d’exercice militaire
|
||||
supplémentaires\",6,,1,,,X20,\"Participer à des activités de
|
||||
familiarisation des FAC\",MX20.01A,Participer à une activité des FAC,-,,,,,,,M309.02,Identifier les méthodes d’instruction,2,,2,,,,,C308.02,Donner des commandements,2,,,
|
||||
,,C108.02,Participer à une compétition d’exercice militaire,3,,,,,,,MX20.01B,\"Participer à une visite de familiarisation
|
||||
des FAC\",-,,,,,,,M309.03,Décrire les techniques de communication efficace,1,,1,,,,,C208.01,S'exercer à l'exercice de prise d'armes dans le cadre d'une revue,2,,,
|
||||
,,\"OREN 108 - Total des périodes d’instruction
|
||||
obligatoires\",,14,,4,,,,,MX20.01C,Tirer avec le fusil C7,-,,,,,,,M309.04,Décrire les techniques de question,1,,,,,,,C208.02,Exécuter un exercice militaire avec armes,8,,,
|
||||
,,\"OREN 108 - Total des périodes d’instruction
|
||||
complémentaires\",,9,,1,,,,,MX20.01D,Participer à un dîner régimentaire,4,,4,,,,,M309.05,Choisir les aides didactiques appropriées,2,,2,,,,,,OREN 408 - Total des périodes d’instruction obligatoires,4,,,
|
||||
111,\"Participer à des activités
|
||||
récréatives de biathlon d’été\",C111.01,\"Participer à une séance d’information sur le
|
||||
biathlon\",1,,,,,,,MX20.01E,Assister à une présentation des FAC,-,,,,,,,M309.06,Planifier une leçon,2,,2,,,,,,OREN 408 - Total des périodes d’instruction complémentaires,22,,,
|
||||
,,C111.02,Courir des sprints courts,1,,,,,,,MX20.01F,\"Assister à une cérémonie
|
||||
commémorative des FAC\",-,,,,,,,M309.07,Enseigner une leçon de 15 minutes,3,,2,,,409,Enseigner une leçon,M409.01,Identifier les méthodes d’instruction,2,,,
|
||||
,,C111.03,\"Simuler un tir avec la carabine à air comprimé
|
||||
des cadets après une activité physique\",1,,,,,,,MX20.01G,\"Participer à des activités relatives aux
|
||||
vidéos des FAC\",-,,,,,,,309 PC,,0,,,,,,,M409.02,\"Identifier les éléments d'un environnement
|
||||
d'apprentissage positif\",2,,,
|
||||
,,C111.04,\"Participer à une activité récréative de biathlon
|
||||
d'été\",6,,,,,,,MX20.01H,\"Participer à des ateliers
|
||||
d'apprentissage des FAC\",-,,,,,,,C309.01,Donner un exposé oral d’une minute,2,,2,,,,,M409.03,Décrire les besoins de l’apprenant,2,,,
|
||||
,,\"OREN 111 - Total des périodes d’instruction
|
||||
complémentaires\",,9,,0,,,,,CX20.01,\"Participer à des activités de
|
||||
familiarisation des FAC\",18,,,,,,,C309.02,Planifier une leçon,2,,,,,,,M409.04,Expliquer l’évaluation,1,,,
|
||||
X20,\"Participer à des activités
|
||||
de familiarisation des Forces armées canadiennes (FAC)\",MX20.01A,Participer à une activité des FAC,-,,,,,,,\"OREN X20 – Total des périodes d’instruction
|
||||
obligatoires\",,6,,,,,,,C309.03,Enseigner une leçon de 15 minutes,3,,2,,,,,M409.05,Enseigner une leçon de 30 minutes,3,,,
|
||||
,,MX20.01B,\"Participer à une visite de familiarisation des
|
||||
FAC\",-,,,,,,,\"OREN X20 – Total des périodes d’instruction
|
||||
complémentaires\",,18,,,,,,,C309.04,\"Identifier les formations pour l’instruction d’exercice
|
||||
militaire\",1,,,,,,,\"COREN de
|
||||
l'OREN 409\",,0,,,
|
||||
,,MX20.01C,Tirer avec le fusil C7,-,,,,,230,\"Discuter de l'histoire de
|
||||
l'aviation canadienne\",M230.01,\"Discuter des aéronefs pilotés pendant
|
||||
les Première et Seconde Guerres mondiales\",1,,1,,,,,C309.05,Planifier une leçon d’exercice militaire,2,,,,,,,C409.01,Planifier une leçon,2,,,
|
||||
,,MX20.01D,Participer à un dîner régimentaire,4,,4,,,,,M230.02,\"Discuter des événements qui ont
|
||||
marqué l'histoire militaire canadienne du 20esiècle\",1,,1,,,,,C309.06,\"Enseigner une leçon d’exercice militaire de
|
||||
15 minutes\",3,,,,,,,C409.02,Enseigner une leçon de 30 minutes,3,,,
|
||||
,,MX20.01E,Assister à une présentation des FAC,-,,,,,,,C230.01,\"Participer à une présentation donnée
|
||||
par un membre du bureau des conférenciers du Projet Mémoire\",2,,,,,,,OREN 309 - Total des périodes d’instruction obligatoires,,13,,,,,,,C409.03,Agir à titre d’instructeur adjoint,3,,,
|
||||
,,MX20.01F,\"Assister à une cérémonie commémorative des
|
||||
FAC\",-,,,,,,,C230.02,Visiter un musée d’aviation de la région,3,,,,,,,OREN 309 - Total des périodes d’instruction complémentaires,,13,,,,,,,C409.04,\"Participer à un atelier de planification de
|
||||
leçon créative\",3,,,
|
||||
,,MX20.01G,\"Participer à des activités relatives aux vidéos
|
||||
des FAC\",-,,,,,,,C230.03,\"Discuter des événements qui
|
||||
ont marqué l'histoire de l'aviation canadienne\",1,,,,,311,\"Participer à une
|
||||
activité récréative de biathlon d’été\",C311.01,\"Pratiquer la visée et le tir à la carabine à air
|
||||
comprimé des cadets après une activité physique\",3,,,,,,,C409.05,\"Agir à titre d’instructeur adjoint d’exercice
|
||||
militaire\",3,,,
|
||||
,,MX20.01H,\"Participer à des ateliers d'apprentissage des
|
||||
FAC\",-,,,,,,,C130.03,\"Visionner la vidéo intitulée « Sur des
|
||||
ailes canadiennes »\",8,,1,,,,,C311.02,Participer à une activité récréative de biathlon d’été,6,,,,,,,C409.06,\"Enseigner une leçon d'exercice militaire de
|
||||
30 minutes\",3,,,
|
||||
,,CX20.01,\"Participer à des activités de familiarisation des
|
||||
FAC\",18,,,,,,,\"OREN 230 – Total des périodes d’instruction
|
||||
obligatoires\",,2,,,,,,,C211.01,Identifier les occasions de biathlon civil,1,,,,,,,C309.04,\"Identifier les formations pour l'instruction
|
||||
d'exercice militaire\",1,,,
|
||||
,,\"OREN X20 - Total des périodes d'instruction
|
||||
obligatoires\",,6,,4,,,,,\"OREN 230 – Total des périodes d’instruction
|
||||
complémentaires\",,14,,,,,,,C211.02,Courir sur un terrain accidenté,1,,,,,,,C309.05,Planifier une leçon d'exercice militaire,2,,,
|
||||
,,\"OREN X20 - Total des périodes d'instruction
|
||||
complémentaires\",,18,,0,,,231,Expliquer les principes de vol,M231.01,\"Identifier les quatre forces qui agissent
|
||||
sur un aéronef\",2,,2,,,,,C211.03,\"Tirer avec la carabine à air comprimé des cadets
|
||||
en se servant d’une bretelle, après une activité physique\",1,,,,,,,C309.06,Enseigner une leçon d'exercice militaire de 15 minutes,3,,,
|
||||
121,\"Participer à des activités
|
||||
de familiarisation avec les communautés canadiennes
|
||||
de l'aviation, de l'aérospatiale et des activités d’opérations d’aérodrome\",M121.01,\"Discuter des occasions offertes au sein de
|
||||
l’aviation\",1,,1,,,,,M231.02,\"Décrire la façon dont la portance se
|
||||
développe sur une voilure d'aéronef\",2,,2,,,,,C211.04,Participer à une activité compétitive de biathlon d’été,6,,,,,,,,OREN 409 - Total des périodes d’instruction obligatoires,10,,,
|
||||
,,C121.01,\"Participer à une présentation donnée par
|
||||
un membre de l'Aviation canadienne, de l'aérospatiale ou du personnel des opérations d'aérodrome\",8,,,,,,,M231.03,\"Décrire les types de traînée qui
|
||||
agissent sur un aéronef\",2,,,,,,,C111.01,Participer à une séance d’information sur le biathlon,1,,,,,,,,OREN 409 - Total des périodes d’instruction complémentaires,23,,,
|
||||
,,\"OREN 121 - Total des périodes d’instruction
|
||||
obligatoires\",,1,,1,,,,,M231.04,\"Décrire les mouvements axiaux d'un
|
||||
aéronef\",1,,,,,,,C111.02,Courir des sprints courts,1,,,,,311,Participer à une activité récréative de biathlon d'été,C311.01,Pratiquer la visée et le tir à la carabine à air comprimé des cadets après une activité physique,3,,,
|
||||
129,\"Communiquer au moyen
|
||||
de l’alphabet phonétique et des chiffres\",M129.01,Réciter l’alphabet et les chiffres phonétiques,1,,,,,,,M231.05,Décrire les gouvernes d'un aéronef,2,,,,,,,C111.03,\"Tirer avec la carabine à air comprimé des cadets
|
||||
après une activité physique\",1,,,,,,,C311.02,Participer à une activité récréative de biathlon d'été,6,,,
|
||||
,,\"OREN 129 - Total des périodes d’instruction
|
||||
obligatoires\",,1,,0,,,,,C231.01,\"Faire fonctionner une voilure
|
||||
expérimentale\",2,,,,,,,C111.04,Participer à une activité récréative de biathlon d’été,6,,,,,,,C211.01,Identifier les occasions de biathlon civil,1,,,
|
||||
,,\"OREN 129 - Total des périodes d’instruction
|
||||
complémentaires\",,0,,,,,,,C231.02,\"Faire voler un planeur Colditz en
|
||||
papier\",2,,,,,,,OREN 311 - Total des périodes d’instruction obligatoires,,0,,,,,,,C211.02,Courir sur un terrain accidenté,1,,,
|
||||
130,\"Participer à des activités
|
||||
d’aviation\",M130.01,\"Identifier les avions militaires, civils et ceux
|
||||
utilisés par les cadets\",2,,,,,,,C231.03,Visiter une école de pilotage,3,,,,,,,OREN 311 - Total des périodes d’instruction complémentaires,,27,,,,,,,C211.03,\"Tirer avec la carabine à air comprimé des cadets en se servant d'une bretelle, après une activité physique\",1,,,
|
||||
,,M130.02,Décrire les composants principaux d’un avion,1,,1,,,,,C231.04,\"Participer à une présentation donnée
|
||||
par un conférencier invité du milieu de l'aviation local\",2,,,,,X20,\"Participer à
|
||||
des activités de familiarisation des Forces armées canadiennes (FAC)\",MX20.01A,Participer à une activité des FAC,-,,,,,,,C211.04,Participer à une activité compétitive de biathlon d'été,6,,,
|
||||
,,M130.03,Assembler un modèle réduit d'avion,2,,,,,,,C231.05,Visiter un simulateur de vol,3,,,,,,,MX20.01B,Participer à une visite de familiarisation des FAC,-,,,,,,,C111.01,Participer à une séance d’information sur le biathlon,1,,,
|
||||
,,M130.04,\"Visionner la vidéo intitulée « Sur des ailes
|
||||
canadiennes»\",1,,,,,,,C231.06,\"Assister à un spectacle aérien de la
|
||||
région\",6,,,,,,,MX20.01C,Tirer avec le fusil C7,-,,,,,,,C111.02,Courir des sprints courts,1,,,
|
||||
,,C130.01,Participer à l'inspection extérieure d’un aéronef,1,,,,,,,\"OREN 231 – Total des périodes d’instruction
|
||||
obligatoires\",,9,,,,,,,MX20.01D,Participer à un dîner régimentaire,4,,4,,,,,C111.03,Tirer avec la carabine à air comprimé des cadets après une activité physique,1,,,
|
||||
,,C130.02,Identifier des avions internationaux,1,,,,,,,\"OREN 231 – Total des périodes d’instruction
|
||||
complémentaires\",,18,,,,,,,MX20.01E,Assister à une présentation des FAC,-,,,,,,,C111.04,Participer à une activité récréative de biathlon d'été,6,,,
|
||||
,,C130.03,\"Visionner la vidéo intitulée « Sur des ailes
|
||||
canadiennes»\",8,,,,,232,\"Identifier les caractéristiques
|
||||
d'un aéronef à moteur à pistons\",M232.01,\"Identifier les types de moteurs
|
||||
d'aéronef\",1,,,,,,,MX20.01F,Assister à une cérémonie commémorative des FAC,-,,,,,,,,OREN 311 - Total des périodes d’instruction obligatoires,0,,,
|
||||
,,C130.04,Visiter un musée d’aviation de la région,3,,,,,,,M232.02,\"Identifier les composants des moteurs
|
||||
à combustion interne et moteur à pistons\",2,,,,,,,MX20.01G,\"Participer à des activités relatives aux vidéos des
|
||||
FAC\",-,,,,,,,,OREN 311 - Total des périodes d’instruction complémentaires,27,,,
|
||||
,,C130.05,Assister à un spectacle aérien local,6,,,,,,,M232.03,\"Expliquer les cycles d'un moteur à
|
||||
pistons à quatre temps\",2,,,,,,,MX20.01H,Participer à des ateliers d’apprentissage des FAC,-,,,,,X20,Participer à des activités de familiarisation des Forces armées canadiennes (FAC),MX20.01A,Participer à une activité des FAC,-,,,
|
||||
,,\"OREN 130 - Total des périodes d’instruction
|
||||
obligatoires\",,6,,1,,,,,M232.04,\"Reconnaître les fonctions de l'huile
|
||||
dans un moteur à pistons à quatre temps\",1,,,,,,,CX20.01,Participer à des activités de familiarisation des FAC,18,,,,,,,MX20.01B,\"Participer à une visite de familiarisation des
|
||||
FAC\",-,,,
|
||||
,,\"OREN 130 - Total des périodes d’instruction
|
||||
complémentaires\",,19,,0,,,,,C232.01,\"Identifier les caractéristiques des
|
||||
turbines à gaz\",2,,,,,,,OREN X20 - Total des périodes d’instruction obligatoires,,6,,,,,,,MX20.01C,Tirer avec le fusil C7,-,,,
|
||||
140,\"Participer à des activités
|
||||
aérospatiales\",M140.01,Lancer une fusée à eau,3,,3,,,,,C232.02,\"Identifier les caractéristiques des
|
||||
moteurs-fusées\",2,,,,,,,\"OREN X20 - Total des périodes d’instruction
|
||||
complémentaires\",,18,,,,,,,MX20.01D,Participer à un dîner régimentaire,4,,,
|
||||
,,C140.01,Lancer une fusée en mousse,2,,,,,,,C232.03,\"Identifier les caractéristiques des
|
||||
moteurs d'hélicoptère\",2,,,,,331,\"Décrire les
|
||||
principes de vol\",M331.01,Décrire la stabilité d’un aéronef,2,,2,,,,,MX20.01E,Assister à une présentation des FAC,-,,,
|
||||
,,C140.02,Discuter des cycles de sommeil dans l'espace,2,,,,,,,\"OREN 232 – Total des périodes d’instruction
|
||||
obligatoires\",,6,,,,,,,C331.01,Réviser les principes de vol,1,,,,,,,MX20.01F,\"Assister à une cérémonie commémorative
|
||||
des FAC\",-,,,
|
||||
,,\"OREN 140 - Total des périodes d’instruction
|
||||
obligatoires\",,3,,3,,,,,\"OREN 232 – Total des périodes d’instruction
|
||||
complémentaires\",,6,,,,,,,C331.02,Lire les instruments anémométriques,2,,,,,,,MX20.01G,\"Participer à des activités relatives aux
|
||||
vidéos des FAC\",-,,,
|
||||
,,\"OREN 140 - Total des périodes d’instruction
|
||||
complémentaires\",,4,,0,,,240,\"Participer à des activités
|
||||
aérospatiales\",M240.01,\"Explorer les avancées technologiques
|
||||
actuelles en aérospatiale\",1,,,,,,,C331.03,\"Identifier les aspects de l’aérodynamique d’un
|
||||
hélicoptère\",1,,,,,,,MX20.01H,\"Participer à des ateliers d'apprentissage
|
||||
des FAC\",-,,,
|
||||
160,\"Participer à des
|
||||
activités d’opérations d’aérodrome\",M160.01,Identifier les parties principales d’un aérodrome,1,,,,,,,M240.02,\"Inventer un objet comportant une
|
||||
technologie spatiale\",2,,,,,,,C331.04,\"Faire la démonstration des assiettes et des
|
||||
mouvements dans un simulateur de vol\",3,,,,,,,CX20.01,\"Participer à des activités de familiarisation
|
||||
des FAC\",18,,,
|
||||
,,M160.02,Identifier les caractéristiques d’une piste,1,,,,,,,M240.03,\"Participer à une mise en situation de
|
||||
survie dans l'espace\",1,,,,,,,C331.05,\"Participer à une présentation donnée par un
|
||||
conférencier invité du milieu de l’aviation local\",2,,,,,,,,\"OREN X20 - Total des périodes
|
||||
d’instruction obligatoires\",6,,,
|
||||
,,M160.03,Fabriquer un modèle réduit d'aérodrome,2,,,,,,,C240.01,\"Participer à une activité de
|
||||
communication non verbale\",1,,,,,,,OREN 331 - Total des périodes d’instruction obligatoires,,2,,,,,,,,OREN X20 - Total des périodes d’instruction complémentaires,18,,,
|
||||
,,C160.01,Visiter un aérodrome local,3,,,,,,,C240.02,\"Inventer un système de communication
|
||||
pour l'espace\",2,,,,,,,OREN 331 - Total des périodes d’instruction complémentaires,,9,,,,,429,Communiquer en utilisant les procédures radio pour les transmissions destinées à l'aviation,C429.01,Expliquer le règlement et les procédures d’opération pour les transmissions destinées à l’aviation et la délivrance de licence,1,,,
|
||||
,,\"OREN 160 - Total des périodes d’instruction
|
||||
obligatoires\",,4,,0,,,,,C240.03,Identifier les parties d'une fusée,1,,,,,336,\"Identifier les
|
||||
conditions météorologiques\",M336.01,Décrire les propriétés de l’atmosphère,1,,1,,,,,C429.02,Communiquer en utilisant les procédures radio pour les transmissions destinées à l'aviation,1,,,
|
||||
,,\"OREN 160 - Total des périodes d’instruction
|
||||
complémentaires\",,3,,0,,,,,C240.04,\"Naviguer au moyen d’un système
|
||||
mondial de positionnement (GPS)\",3,,,,,,,M336.02,Expliquer la formation des nuages,1,,1,,,,,C429.03,\"Décrire les longueurs d’ondes, les signaux, les licences et l’équipement radio\",1,,,
|
||||
170,\"Discuter de la
|
||||
construction et de la maintenance des aéronefs\",C170.01,Regarder des segments de Comment c'est fait,2,,,,,,,C240.05,\"Simuler une situation de survie dans
|
||||
l'espace\",2,,,,,,,M336.03,\"Expliquer les effets de la pression d’air sur la
|
||||
température\",1,,,,,,,C429.04,\"Expliquer les communications de secours, d’urgence et de sécurité\",1,,,
|
||||
,,C170.02,\"Visiter des installations de maintenance
|
||||
d’aviation de la région\",3,,,,,,,C240.06,\"S'orienter à l'aide des constellations
|
||||
pendant un exercice d'entraînement en campagne\",1,,,,,,,M336.04,\"Expliquer les effets de l’humidité et de la
|
||||
température sur les conditions météorologiques\",2,,,,,,,COREN de l’OREN 429,,2,,,
|
||||
,,\"OREN 170 - Total des périodes d’instruction
|
||||
obligatoires\",,0,,,,,,,\"OREN 240 – Total des périodes d’instruction
|
||||
obligatoires\",,4,,,,,,,\"331/336/
|
||||
COREN de l’OREN 337\",Sujets sur l’aviation - Évaluation combinée,1,,,,,,,,OREN 429 - Total des périodes d’instruction obligatoires,0,,,
|
||||
,,\"OREN 170 - Total des périodes d’instruction
|
||||
complémentaires\",,5,,0,,,,,\"OREN 240 – Total des périodes d’instruction
|
||||
complémentaires\",,10,,,,,,,C336.01,\"Lire un message d’observation météorologique
|
||||
régulière pour l’aviation (METAR)\",2,,,,,,,,OREN 429 - Total des périodes d’instruction complémentaires,6,,,
|
||||
190,\"Participer à un exercice
|
||||
de survie pour équipage de vol\",M190.01,\"Emballer l’équipement personnel nécessaire
|
||||
pour un exercice en campagne\",2,,2,,,260,\"Participer à des activités
|
||||
d’opérations d’aérodrome\",M260.01,\"Expliquer les aspects du contrôle de la
|
||||
circulation aérienne\",1,,,,,,,C336.02,Visiter une installation météorologique,3,,,,,431,Expliquer les principes de vol,M431.01,Expliquer les caractéristiques d’une voilure,1,,,
|
||||
,,M190.02,\"Entretenir l’équipement personnel et avoir une
|
||||
bonne hygiène en campagne\",1,,1,,,,,M260.02,\"Identifier les aspects des opérations
|
||||
d'aérodrome de base\",1,,,,,,,C336.03,\"Participer à une présentation donnée par un
|
||||
spécialiste des services de vol\",2,,,,,,,M431.02,Décrire les instruments de vol,2,,,
|
||||
,,M190.03,Observer les politiques et procédures du site,2,,,,,,,C260.01,\"Visiter l'installation de sécurité d'un
|
||||
aérodrome\",3,,,,,,,OREN 336 - Total des périodes d’instruction obligatoires,,6,,,,,,,C431.01,Expliquer les facteurs qui affectent le vol,2,,,
|
||||
,,M190.04,Discuter de la psychologie de la survie,2,,,,,,,C260.02,\"Visiter une tour de contrôle de la
|
||||
circulation aérienne\",3,,,,,,,OREN 336 - Total des périodes d’instruction complémentaires,,7,,,,,,,C431.02,\"Faire la démonstration des virages, des montées et des descentes dans un simulateur de vol\",3,,,
|
||||
,,M190.05,Identifier les types d’abri,1,,,,,,,C260.03,\"Participer à une présentation donnée
|
||||
par un employé d'aérodrome\",2,,,,,337,\"Démontrer les
|
||||
compétences en navigation aérienne\",M337.01,Mesurer la distance le long d’un itinéraire,1,,,,,,,C431.03,Faire voler un aéronef radiocommandé,3,,,
|
||||
,,M190.06,\"Allumer, entretenir et éteindre un feu\",3,,,,,,,C260.04,\"Effectuer le guidage des aéronefs au
|
||||
sol\",1,,,,,,,M337.02,\"Déterminer une position sur une carte aéronautique
|
||||
de navigation VFR (VNC)\",1,,,,,,,,OREN 431 - Total des périodes d’instruction obligatoires,3,,,
|
||||
,,M190.07,\"Dresser, démonter et emballer des tentes\",3,,,,,,,C260.05,Visiter un aérodrome,3,,,,,,,C337.01,\"Faire fonctionner une radio pour les transmissions
|
||||
destinées à l’aviation\",1,,,,,,,,OREN 431 - Total des périodes d’instruction complémentaires,8,,,
|
||||
,,C190.01,\"Participer à une présentation donnée par un
|
||||
membre d'une organisation de survie ou une communauté de recherche et sauvetage (SAR)\",2,,,,,,,\"OREN 260 – Total des périodes d’instruction
|
||||
obligatoires\",,2,,,,,,,C337.03,Pratiquer des compétences en navigation aérienne,1,,,,,432,Décrire les systèmes de moteur d’avion,M432.01,Décrire les circuits carburant,1,,,
|
||||
,,C190.02,Faire des nœuds et des brêlages,2,,,,,,,\"OREN 260 – Total des périodes d’instruction
|
||||
complémentaires\",,18,,,,,,,OREN 337 - Total des périodes d’instruction obligatoires,,2,,,,,,,M432.02,Décrire les systèmes d’hélice,1,,,
|
||||
,,C190.03,Construire un abri de style houchie,3,,,,,270,\"Discuter de la construction
|
||||
et de la maintenance des aéronefs\",M270.01,\"Identifier les aspects de la construction
|
||||
des aéronefs\",2,,,,,,,OREN 337 - Total des périodes d’instruction complémentaires,,2,,,,,,,M432.03,Décrire les instruments du moteur,1,,,
|
||||
,,C190.04,Recueillir de l’eau potable en campagne,2,,,,,,,M270.02,\"Identifier les exigences de
|
||||
maintenance des aéronefs\",2,,,,,340,\"Identifier les
|
||||
aspects de l’exploration spatiale\",M340.01,Identifier des astronautes canadiens,1,,,,,,,C432.01,Décrire le circuit d’allumage et le système électrique,1,,,
|
||||
,,C190.05,\"Identifier les blessures causées par
|
||||
l’environnement\",1,,,,,,,M270.03,\"Discuter des occasions d'éducation
|
||||
et d'emploi dans le domaine de la construction et de la maintenance d'aéronef\",2,,,,,,,M340.02,Discuter de l’histoire de l’exploration spatiale habitée,1,,,,,,,C432.02,Décrire les systèmes de suralimentation par turbocompresseur et par surpression,1,,,
|
||||
,,C190.06,Respecter l’environnement en campagne,1,,,,,,,C270.01,\"Participer à une présentation
|
||||
donnée par un employé du domaine de l'industrie de la construction aéronautique et de la maintenance d'aéronef\",2,,,,,,,C340.01,Identifier des astronautes canadiens,2,,,,,,,C432.03,Décrire les turbines à gaz,1,,,
|
||||
,,C190.07,Identifier des habitats d'animaux et d'insectes,1,,,,,,,C270.02,\"Identifier les activités de l'Outil
|
||||
d’apprentissage multimédia interactif (OAMI) du Conseil canadien de l'entretien des aéronefs (CCEA)\",1,,,,,,,C340.02,Discuter du Programme spatial canadien,1,,,,,,,,OREN 432 - Total des périodes d’instruction obligatoires,3,,,
|
||||
,,\"OREN 190 - Total des périodes d’instruction
|
||||
obligatoires\",,14,,3,,,,,C270.03,\"Visiter une installation de construction
|
||||
ou de maintenance d’aéronefs\",3,,,,,,,C340.03,Discuter de l’exploration spatiale inhabitée,2,,,,,,,,OREN 432 - Total des périodes d’instruction complémentaires,3,,,
|
||||
,,\"OREN 190 - Total des périodes d’instruction
|
||||
complémentaires\",,12,,0,,,,,C270.04,\"Visionner la vidéo intitulée « World’s
|
||||
Biggest Airliner: The Airbus A380 – Coming Together »\",2,,,,,,,C340.04,Décrire les éléments du ciel nocturne,1,,,,,436,Expliquer les aspects de météorologie,M436.01,Expliquer les vents,1,,,
|
||||
,,,,,,,,,,,\"OREN 270 – Total des périodes d’instruction
|
||||
obligatoires\",,6,,,,,,,C340.05,Simuler la vie dans l’espace,3,,,,,,,M436.02,Décrire les masses et les fronts d’air,3,,,
|
||||
,,,,,,,,,,,\"OREN 270 – Total des périodes d’instruction
|
||||
complémentaires\",,8,,,,,,,C340.06,Lancer une fusée à eau,3,,,,,,,C436.01,Expliquer le brouillard,1,,,
|
||||
,,,,,,,,,290,\"Participer à un exercice
|
||||
d'entraînement en campagne\",M290.01,\"Préparer, allumer, entretenir et éteindre
|
||||
un feu de signalement\",2,,,,,,,C340.07,\"Identifier les composants du système mondial de
|
||||
positionnement (GPS)\",2,,,,,,,C436.02,Décrire les conditions météorologiques violentes,1,,,
|
||||
,,,,,,,,,,,M290.02,Construire un abri de style appentis,3,,,,,,,C340.08,\"Décrire les aspects de la Station spatiale
|
||||
internationale (SSI)\",1,,,,,,,C436.03,Analyser les renseignements météorologiques,3,,,
|
||||
,,,,,,,,,,,M290.03,Construire un collet simple,2,,,,,,,C340.09,\"Participer à une présentation donnée par un
|
||||
conférencier invité du milieu de l’astronomie ou de l’aérospatiale\",2,,,,,,,,OREN 436 - Total des périodes d’instruction obligatoires,4,,,
|
||||
,,,,,,,,,,,M290.04,Fabriquer des signaux sol-air,2,,,,,,,C340.10,Identifier les programmes d’astronomie en ligne,1,,,,,,,,OREN 436 - Total des périodes d’instruction complémentaires,5,,,
|
||||
,,,,,,,,,,,M290.05,\"Identifier les techniques de randonnée
|
||||
pédestre\",2,,,,,,,OREN 340 - Total des périodes d’instruction obligatoires,,2,,,,,437,Expliquer les aspects de la navigation aérienne,M437.01,Définir les termes de navigation aérienne,2,,,
|
||||
,,,,,,,,,,,M290.06,Faire fonctionner une radio portative,1,,,,,,,OREN 340 - Total des périodes d’instruction complémentaires,,18,,,,,,,M437.02,Décrire le compas magnétique,1,,,
|
||||
,,,,,,,,,,,C290.01,\"Participer à une présentation donnée
|
||||
par un membre d’un organisme de survie\",2,,,,,360,\"Reconnaître
|
||||
les aspects des opérations d’aérodrome\",C360.01,Identifier les types d’aérodrome,1,,,,,,,\"431 / 432
|
||||
436 /
|
||||
437 PC\",Sujets sur l’aviation - Évaluation combinée,1,,,
|
||||
,,,,,,,,,,,C290.02,\"Discuter du dépouillement et de la
|
||||
cuisson des petits animaux\",1,,,,,,,C360.02,\"Expliquer les aspects du balisage lumineux d’un
|
||||
aérodrome\",1,,,,,,,C437.01,Résoudre des problèmes de navigation à l’aide d’un calculateur de vol manuel,2,,,
|
||||
,,,,,,,,,,,C290.03,Creuser une caverne dans la neige,3,,,,,,,C360.03,\"Fabriquer un modèle réduit d’espace aérien d’un
|
||||
aérodrome\",3,,,,,,,C437.02,Utiliser une carte aéronautique de navigation VFR [règles de vol à vue] (VNC),2,,,
|
||||
,,,,,,,,,,,C290.04,\"Recueillir de l’eau potable avec un
|
||||
distillateur solaire\",2,,,,,,,C360.04,\"Identifier la façon dont l’équipement est utilisé à un
|
||||
aérodrome\",1,,,,,,,,OREN 437 - Total des périodes d’instruction obligatoires,4,,,
|
||||
,,,,,,,,,,,C290.05,Participer à une randonnée pédestre,6,,,,,,,C360.05,\"Identifier les aspects des interventions d’urgence et
|
||||
de la sécurité des aérodromes\",1,,,,,,,,OREN 437 - Total des périodes d’instruction complémentaires,4,,,
|
||||
,,,,,,,,,,,\"OREN 290 – Total des périodes d’instruction
|
||||
obligatoires\",,12,,,,,,,C360.06,\"Expliquer les aspects des services de la circulation
|
||||
aérienne (ATS)\",1,,,,,440,Discuter des structures aérospatiales,M440.01,Identifier les matériaux aérospatiaux,1,,,
|
||||
,,,,,,,,,,,\"OREN 290 – Total des périodes d’instruction
|
||||
complémentaires\",,14,,,,,,,OREN 360 - Total des périodes d’instruction obligatoires,,0,,,,,,,M440.02,Décrire les satellites canadiens,1,,,
|
||||
,,,,,,,,,,,,,,,,,,,,OREN 360 - Total des périodes d’instruction complémentaires,,8,,,,,,,C440.01,Décrire les modèles réduits de fusées,2,,,
|
||||
,,,,,,,,,,,,,,,,,,370,\"Reconnaître
|
||||
les aspects de la construction
|
||||
aéronautique et de la maintenance des aéronefs\",M370.01,\"Identifier les composants du circuit statique du
|
||||
système Pitot\",1,,,,,,,C440.02,Lancer un petit modèle réduit de fusée,3,,,
|
||||
,,,,,,,,,,,,,,,,,,,,M370.02,Identifier les avionneurs,1,,,,,,,C440.03,\"Discuter des caractéristiques des planètes
|
||||
du système solaire\",2,,,
|
||||
,,,,,,,,,,,,,,,,,,,,M370.03,\"Décrire les procédures d’inspection de routine des
|
||||
aéronefs\",1,,,,,,,C440.04,\"Appliquer la science des matériaux de
|
||||
longerons\",3,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C370.01,\"Identifier les tâches requises pour la maintenance
|
||||
des aéronefs\",1,,,,,,,C440.05,Décrire la robotique,1,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C370.02,\"Décrire les matériaux utilisés pour la construction
|
||||
d’aéronef\",1,,,,,,,C440.06,Utiliser des cartes du ciel,2,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C370.03,\"Identifier les outils électriques et l’équipement de
|
||||
base utilisés pour la construction aéronautique et la maintenance des aéronefs\",1,,,,,,,C440.07,Utiliser un télescope,2,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C370.04,Fabriquer un modèle réduit de biplan en aluminium,12,,,,,,,C440.08,\"Regarder la vidéo intitulée BLAST! (Balloon-Borne Large Aperture Sub- Millimetre Telescope [télescope submillimétrique à grande ouverture
|
||||
emporté par ballon])\",3,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C370.05,Visiter un projet de restauration d’aéronef,3,,,,,,,C440.09,\"Décrire le lien entre la gravité et l’espace-
|
||||
temps\",2,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C270.01,\"Participer à une présentation donnée par
|
||||
un employé de l’industrie de la construction aéronautique et de la maintenance d’avion\",2,,,,,,,C440.10,Discuter de l'énergie cinétique potentielle,1,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C270.03,\"Visiter une installation de construction ou de
|
||||
maintenance d’aéronefs\",3,,,,,,,C440.11,\"Regarder la vidéo intitulée Einstein’s Big
|
||||
Idea\",5,,,
|
||||
,,,,,,,,,,,,,,,,,,,,OREN 370 - Total des périodes d’instruction obligatoires,,3,,,,,,,,OREN 440 - Total des périodes d’instruction obligatoires,2,,,
|
||||
,,,,,,,,,,,,,,,,,,,,\"OREN 370 - Total des périodes d’instruction complémentaires
|
||||
(max de 12)\",,23,,,,,,,,\"OREN 440 - Total des périodes d'instruction complémentaires (max de
|
||||
9)\",26,,,
|
||||
,,,,,,,,,,,,,,,,,,390,\"Naviguer sur un
|
||||
itinéraire à l’aide d’une carte et d’une boussole\",M390.01,Identifier les parties d’une boussole,1,,1,,,460,Décrire les occasions de carrière en opérations d’aérodrome,C460.01,Décrire les occasions de carrière en opérations d’aérodrome,1,,,
|
||||
,,,,,,,,,,,,,,,,,,,,M390.02,\"Identifier les données marginales et les signes
|
||||
conventionnels\",2,,,,,,,C460.02,Décrire les occasions de carrière en contrôle de la circulation aérienne (ATC),1,,,
|
||||
,,,,,,,,,,,,,,,,,,,,M390.03,Déterminer des coordonnées de quadrillage (coord),2,,,,,,,C460.03,Décrire les occasions de carrière en sécurité des aéroports,1,,,
|
||||
,,,,,,,,,,,,,,,,,,,,M390.04,Déterminer la distance sur une carte et sur le terrain,3,,,,,,,,OREN 460 - Total des périodes d’instruction obligatoires,0,,,
|
||||
,,,,,,,,,,,,,,,,,,,,M390.05,\"Déterminer des relèvements sur une carte et sur le
|
||||
terrain\",2,,,,,,,,OREN 460 - Total des périodes d’instruction complémentaires,3,,,
|
||||
,,,,,,,,,,,,,,,,,,,,COREN de l’OREN 390,,4,,,,,470,Discuter des aspects de la construction aéronautique et de la maintenance des aéronefs,C470.01,Discuter des avionneurs,1,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C390.01,Identifier les types de cartes,1,,1,,,,,C470.02,Discuter de l'assemblage d'un aéronef,1,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C390.02,Interpréter les courbes de niveau,1,,,,,,,C470.03,Identifier la quincaillerie aéronautique,1,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C390.03,Orienter une carte par inspection,1,,,,,,,C470.04,Démonter et remonter un petit moteur,3,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C390.04,Orienter une carte en utilisant une boussole,1,,,,,,,,OREN 470 - Total des périodes d’instruction obligatoires,0,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C390.05,Calculer la déclinaison magnétique,2,,,,,,,,OREN 470 - Total des périodes d’instruction complémentaires,6,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C390.06,Déterminer la direction à l’aide du soleil,1,,,,,490,Participer à un exercice de survie pour équipage de vol,M490.01,Assembler une trousse de survie d'urgence,1,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C390.07,Déterminer la direction la nuit,1,,,,,,,M490.02,Faire fonctionner un réchaud et un fanal,3,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C390.08,Utiliser les techniques de marquage,1,,,,,,,M490.03,Faire des nœuds et des brêlages,2,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C390.09,Identifier les éléments du ciel nocturne,4,,,,,,,M490.04,\"Naviguer vers un point de cheminement à l’aide d’un récepteur du système mondial
|
||||
de positionnement (GPS)\",4,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C390.10,\"Identifier les méthodes de préparation et de cuisson
|
||||
d’un petit animal ou d’un poisson\",2,,,,,,,M490.05,\"Allumer des feux grâce à un allumage
|
||||
improvisé\",4,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C390.11,Fabriquer des outils de campement,4,,,,,,,\"COREN de
|
||||
l'OREN 490\",,0,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C390.12,\"Donner les premiers soins mineurs dans un
|
||||
environnement de campagne\",4,,,,,,,C490.01,\"Décrire les préoccupations climatiques et
|
||||
saisonnières\",1,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C390.13,\"Agir en tant que membre d’une équipe de recherche
|
||||
et sauvetage (SAR) au sol\",4,,,,,,,C490.02,\"Improviser des outils à utiliser dans une
|
||||
situation de survie\",2,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C390.14,\"Participer à une présentation donnée par un
|
||||
conférencier invité du milieu de la recherche et sauvetage (SAR)\",2,,,,,,,C490.03,Déplacer un blessé vers un abri,3,,,
|
||||
,,,,,,,,,,,,,,,,,,,,C290.04,Recueillir de l’eau potable avec un distillateur solaire,2,,,,,,,C490.04,Utiliser les outils de façon sécuritaire,3,,,
|
||||
,,,,,,,,,,,,,,,,,,,,OREN 390 - Total des périodes d’instruction obligatoires,,14,,,,,,,C490.05,\"Naviguer sur un itinéraire à l'aide d'une
|
||||
carte et d'une boussole\",4,,,
|
||||
,,,,,,,,,,,,,,,,,,,,\"OREN 390 - Total des périodes d’instruction complémentaires
|
||||
(max de 18)\",,31,,,,,,,C490.06,\"Monter, démonter et emballer des tentes\",4,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,C490.07,\"Construire un houchie ou un abri de style
|
||||
appentis\",3,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,OREN 490 - Total des périodes d’instruction obligatoires,14,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,OREN 490 - Total des périodes d’instruction complémentaires,20,,,
|
||||
,,,,,,,,,,,,,,,,,,,,,,,,,,,S.O.,Participer à une revue annuelle (ACR),,,3,,,";
|
||||
public function generate()
|
||||
{
|
||||
$file = fopen(\request()->file('file'),'r');
|
||||
$data = fread($file,filesize(\request()->file('file')));
|
||||
fclose($file);
|
||||
$data = str_replace(["\r","\n"],'',$data);
|
||||
|
||||
\App\OCOM::truncate();
|
||||
// Detection et nettoyage des ORENs
|
||||
preg_match_all('/[MX\d][X\d]\d+,[^,]+/',$data,$matches_orens);
|
||||
foreach ($matches_orens[0] as $key => $oren) {
|
||||
$oren = str_replace('"','',$oren);
|
||||
$matches_orens[0][$key] = $oren;
|
||||
}
|
||||
$orens_pass_2 = collect($matches_orens[0])->unique();
|
||||
$orens = [];
|
||||
foreach ($orens_pass_2 as $oren)
|
||||
{
|
||||
$foo = explode(',',$oren);
|
||||
$orens[$foo[0]] = $foo[1];
|
||||
}
|
||||
|
||||
// Detection et nettoyage des OCOMs
|
||||
preg_match_all('/[MC][X\d]\d{2}\.\d{2}\w?,[^,]+,\d/',$data,$matches_ocom);
|
||||
foreach ($matches_ocom[0] as $key => $ocom) {
|
||||
$ocom = str_replace('"','',$ocom);
|
||||
$matches_ocom[0][$key] = $ocom;
|
||||
}
|
||||
$ocoms_pass_2 = collect($matches_ocom[0])->unique();
|
||||
|
||||
foreach ($ocoms_pass_2 as $ocom_pass_2)
|
||||
{
|
||||
$foo = explode(',',$ocom_pass_2);
|
||||
|
||||
if (OCOM::findByOCOM($foo[0]) == null)
|
||||
{
|
||||
preg_match('/[X\d]\d{2}/',$ocom_pass_2,$matches);
|
||||
$oren = $matches[0];
|
||||
$complementary = false;
|
||||
if ($foo[0][0] == "C")
|
||||
{
|
||||
$complementary = true;
|
||||
}
|
||||
$nocom = new OCOM();
|
||||
$nocom->ocom = $foo[0];
|
||||
$nocom->objectif_competence = $foo[1];
|
||||
$nocom->nbPeriode = $foo[2];
|
||||
$nocom->objectif_rendement = $orens[$oren];
|
||||
$nocom->oren = $oren;
|
||||
$nocom->complementary = $complementary;
|
||||
$nocom->course_id = '';
|
||||
|
||||
$nocom->save();
|
||||
}
|
||||
}
|
||||
|
||||
$this->updateOCOMDB();
|
||||
return redirect('/admin/ocom')->with('success','Base de donnée des cours générée avec succès!');
|
||||
}
|
||||
|
||||
public function g()
|
||||
{
|
||||
OCOM::truncate();
|
||||
|
||||
$matches = [];
|
||||
$orens = [];
|
||||
preg_match_all('/[X\d]\d\d,[^,]*/',$text,$matches);
|
||||
preg_match_all('/[X\d]\d\d,[^,]*/',\request('text'),$matches);
|
||||
foreach ($matches[0] as $match)
|
||||
{
|
||||
$match = str_replace('"',"",$match);
|
||||
@@ -625,85 +121,179 @@ X20,\"Participer à des activités
|
||||
$ocom = "";
|
||||
preg_match('/[MC]\S\d\d.\d\d[A-Z]?/',$match,$ocom);
|
||||
|
||||
$oren = "";
|
||||
preg_match('/[X\d]\d\d/',$ocom[0],$oren);
|
||||
if(!OCOM::where('ocom',$ocom)->first())
|
||||
{
|
||||
$oren = "";
|
||||
preg_match('/[X\d]\d\d/',$ocom[0],$oren);
|
||||
|
||||
$obj_competence = str_replace($ocom[0].",","",$match);
|
||||
$obj_competence = trim(preg_replace('/\s\s+/', ' ', $obj_competence));
|
||||
$obj_competence = str_replace($ocom[0].",","",$match);
|
||||
$obj_competence = trim(preg_replace('/\s\s+/', ' ', $obj_competence));
|
||||
$obj_competence = trim($obj_competence,"\\");
|
||||
|
||||
$nbPeriode = preg_replace('/[MC]\S\d\d.\d\d[A-Z]?,[^,]*,/','',$match);
|
||||
$newocom->nbPeriode = $nbPeriode;
|
||||
$nbPeriode = preg_replace('/[MC]\S\d\d.\d\d[A-Z]?,[^,]*,/','',$match);
|
||||
$newocom->nbPeriode = $nbPeriode;
|
||||
|
||||
$obj_competence = str_replace(",".$nbPeriode,'',$obj_competence);
|
||||
$obj_competence = str_replace(",".$nbPeriode,'',$obj_competence);
|
||||
|
||||
$newocom->ocom = $ocom[0];
|
||||
$newocom->oren = $oren[0];
|
||||
$newocom->objectif_competence = $obj_competence;
|
||||
$newocom->objectif_rendement = $orens[$oren[0]];
|
||||
$newocom->save();
|
||||
$newocom->ocom = $ocom[0];
|
||||
$newocom->oren = $oren[0];
|
||||
|
||||
if ($newocom->ocom[0] == 'C' || $newocom->ocom[0] == 'c')
|
||||
{
|
||||
$newocom->complementary = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$newocom->complementary = false;
|
||||
}
|
||||
|
||||
$newocom->course_id = '';
|
||||
|
||||
$newocom->objectif_competence = $obj_competence;
|
||||
$newocom->objectif_rendement = $orens[$oren[0]];
|
||||
$newocom->objectif_rendement = trim($newocom->objectif_rendement,"\\");
|
||||
$newocom->save();
|
||||
}
|
||||
}
|
||||
return redirect('/admin/ocom')->with('success','Base de donnée des cours générée avec succès!');
|
||||
}
|
||||
|
||||
public function showgenerate()
|
||||
{
|
||||
return view('admin.ocom.generate');
|
||||
}
|
||||
|
||||
public function updateOCOMDB()
|
||||
{
|
||||
$ocoms = OCOM::all();
|
||||
|
||||
$from = strtotime(\App\Config::getData('instruction_year_begin'));
|
||||
$to = strtotime(\App\Config::getData('instruction_year_end'));
|
||||
$allEvent = \App\Event::all();
|
||||
$events = collect();
|
||||
|
||||
foreach ($allEvent as $e)
|
||||
{
|
||||
if ($e->use_schedule == 1)
|
||||
{
|
||||
if (strtotime($e->date_begin) >= $from)
|
||||
{
|
||||
if (strtotime($e->date_begin) <= $to)
|
||||
{
|
||||
$events->push($e);
|
||||
foreach ($e->courses as $c)
|
||||
{
|
||||
$r = $ocoms->where('ocom',$c->ocom)->first();
|
||||
if ($r != null)
|
||||
{
|
||||
$r->saveCourse($c);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ($ocoms as $o)
|
||||
{
|
||||
$o->save();
|
||||
}
|
||||
dd(\App\OCOM::all());
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
$ocom = new OCOM();
|
||||
$ocom->ocom = $request->ocom;
|
||||
$ocom->objectif_competence = $request->objectif_competence;
|
||||
$ocom->nbPeriode = $request->nbPeriode;
|
||||
$ocom->objectif_rendement = $request->objectif_rendement;
|
||||
$ocom->oren = $request->oren;
|
||||
|
||||
if ($ocom->ocom[0] == 'C' || $ocom->ocom[0] == 'c')
|
||||
{
|
||||
$ocom->complementary = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$ocom->complementary = false;
|
||||
}
|
||||
$ocom->course_id = "";
|
||||
$ocom->save();
|
||||
clog('add','success','a ajouter un ocom',\Auth::User()->id);
|
||||
return redirect('/admin/ocom/'.$ocom->id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \App\OCOM $oCOM
|
||||
* @return \Illuminate\Http\Response
|
||||
* @param $OCOM
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
*/
|
||||
public function show(OCOM $oCOM)
|
||||
public function show($OCOM)
|
||||
{
|
||||
//
|
||||
return view('admin.ocom.show',['ocom' => OCOM::find($OCOM)]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param \App\OCOM $oCOM
|
||||
* @param $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit(OCOM $oCOM)
|
||||
public function edit($id)
|
||||
{
|
||||
//
|
||||
return view('admin.ocom.edit',['ocom' => OCOM::find($id)]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \App\OCOM $oCOM
|
||||
* @return \Illuminate\Http\Response
|
||||
* @param Request $request
|
||||
* @param $id
|
||||
* @return RedirectResponse|Redirector
|
||||
*/
|
||||
public function update(Request $request, OCOM $oCOM)
|
||||
public function update(Request $request,$id)
|
||||
{
|
||||
//
|
||||
$ocom = OCOM::find($id);
|
||||
$ocom->ocom = $request->ocom;
|
||||
$ocom->objectif_competence = $request->objectif_competence;
|
||||
$ocom->nbPeriode = $request->nbPeriode;
|
||||
$ocom->objectif_rendement = $request->objectif_rendement;
|
||||
$ocom->oren = $request->oren;
|
||||
|
||||
if ($ocom->ocom[0] == 'C' || $ocom->ocom[0] == 'c')
|
||||
{
|
||||
$ocom->complementary = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$ocom->complementary = false;
|
||||
}
|
||||
|
||||
$ocom->save();
|
||||
clog('edit','success','a modifié un ocom',\Auth::User()->id);
|
||||
return redirect('/admin/ocom/'.$id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \App\OCOM $oCOM
|
||||
* @param OCOM $oCOM
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(OCOM $oCOM)
|
||||
public function destroy($id)
|
||||
{
|
||||
//
|
||||
OCOM::find($id)->delete();
|
||||
}
|
||||
|
||||
public function jsonList()
|
||||
{
|
||||
$ocoms = \App\OCOM::all();
|
||||
$ocoms = OCOM::all();
|
||||
|
||||
$name = [];
|
||||
|
||||
@@ -716,7 +306,7 @@ X20,\"Participer à des activités
|
||||
|
||||
public function getName(string $ocom)
|
||||
{
|
||||
$foo = \App\OCOM::all()->where('ocom','=',$ocom)->first();
|
||||
$foo = OCOM::all()->where('ocom','=',$ocom)->first();
|
||||
if($foo != null)
|
||||
{
|
||||
return $foo->objectif_competence;
|
||||
|
||||
@@ -89,8 +89,8 @@ class ScheduleController extends Controller
|
||||
|
||||
$event = [
|
||||
'title' => $schedule->data['event_name'],
|
||||
'start' => $schedule->date.'T'.$schedule->data['event_begin_time'],
|
||||
'end' => $schedule->date.'T'.$schedule->data['event_end_time'],
|
||||
'start' => date('c',strtotime($schedule->date.'T'.$schedule->data['event_begin_time'])),
|
||||
'end' => date('c',strtotime($schedule->date.'T'.$schedule->data['event_end_time'])),
|
||||
'color' => $color,
|
||||
'source' => 'schedule',
|
||||
'id' => $schedule->id
|
||||
@@ -99,9 +99,25 @@ class ScheduleController extends Controller
|
||||
}
|
||||
|
||||
foreach ($events as $event) {
|
||||
|
||||
$color = $this->getColor($event->type);
|
||||
|
||||
|
||||
if($event->calendar_color == null)
|
||||
{
|
||||
$color = $this->getColor($event->type);
|
||||
}
|
||||
else
|
||||
{
|
||||
$color = $event->calendar_color;
|
||||
}
|
||||
|
||||
if($event->calendar_icon == null)
|
||||
{
|
||||
$icon = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
$icon = $event->calendar_icon;
|
||||
}
|
||||
|
||||
$myevent = [
|
||||
'title' => $event->name,
|
||||
'start' => date('c',strtotime($event->date_begin)),
|
||||
@@ -109,7 +125,8 @@ class ScheduleController extends Controller
|
||||
'color' => $color,
|
||||
'extraParams' => [
|
||||
'db_type' => 'event'],
|
||||
'id' => $event->id
|
||||
'id' => $event->id,
|
||||
'icon' => $icon
|
||||
];
|
||||
array_push($jsonevents,$myevent);
|
||||
}
|
||||
|
||||
@@ -28,6 +28,27 @@ class ScheduleEditorController extends Controller
|
||||
return json_encode($eventType);
|
||||
}
|
||||
|
||||
public function getEmptyPeriode(int $id)
|
||||
{
|
||||
return view('admin.schedule.editor.periode',[
|
||||
'periode_name' => 'Periode '.$id,
|
||||
'periode_begin_time' => '00:00',
|
||||
'periode_end_time' => '00:00',
|
||||
'periode_id' => $id,
|
||||
'nbLevel' => request('nblevel')
|
||||
]);
|
||||
}
|
||||
|
||||
public function getEmptyLevel(int $id)
|
||||
{
|
||||
return view('admin.schedule.editor.level',['periode_id' => \request('nbPeriode'),'level_id' => $id]);
|
||||
}
|
||||
|
||||
public function getLevelHeader(int $id)
|
||||
{
|
||||
return view('admin.schedule.editor.levelHeader',['level_id' => $id,'level_name' => 'Niveau '.$id]);
|
||||
}
|
||||
|
||||
public function test()
|
||||
{
|
||||
$evenType = new \App\EventType();
|
||||
|
||||
@@ -62,5 +62,6 @@ class Kernel extends HttpKernel
|
||||
'staff' => \App\Http\Middleware\AccesStaff::class,
|
||||
'admin' => \App\Http\Middleware\AccesAdmin::class,
|
||||
'perm' => \App\Http\Middleware\CheckPerm::class,
|
||||
'fileperm' => \App\Http\Middleware\CheckFilePerm::class,
|
||||
];
|
||||
}
|
||||
|
||||
83
app/Http/Middleware/CheckFilePerm.php
Normal file
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use App\User;
|
||||
use Closure;
|
||||
use \App\GoogleDriveFile;
|
||||
use \App\Config;
|
||||
|
||||
class CheckFilePerm
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle($request, Closure $next,$type,$permission = 'r')
|
||||
{
|
||||
if (GoogleDriveFile::checkConfig() && Config::getData('is_Google_Drive_enabled') == 'true')
|
||||
{
|
||||
// Get folder
|
||||
if (isset($request->folder))
|
||||
{
|
||||
$folder = $request->folder;
|
||||
}
|
||||
else
|
||||
{
|
||||
$folder = $request->d;
|
||||
}
|
||||
$dir = GoogleDriveFile::find($folder);
|
||||
|
||||
// Check if $folder is root directory or $dir is null
|
||||
if ($folder == "" || $dir == null)
|
||||
{
|
||||
if (\Auth::check())
|
||||
{
|
||||
if ($permission == 'r')
|
||||
{
|
||||
return $next($request);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (\Auth::user()->p('file_manage') === 1)
|
||||
{
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
}
|
||||
abort(401,'Pas connecter');
|
||||
}
|
||||
|
||||
// Check for specific folder permission
|
||||
if ($dir != null)
|
||||
{
|
||||
if (\Auth::check())
|
||||
{
|
||||
if (!$dir->canAuthUser($permission))
|
||||
{
|
||||
clog('navigate','danger','Vous n\'avez pas la permission d\'accéder',\Auth::user()->id);
|
||||
return redirect('/admin')->with('error','Vous n\'avez pas la permission d\'accéder');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (strpos($dir->getPermission('rank.0'),$permission) === false)
|
||||
{
|
||||
clog('navigate','danger','Un utilisateur non authentifié tente d\'accéder a un dossier privé','0');
|
||||
abort(401,'Vous n\'avez pas la permission d\'accéder');
|
||||
}
|
||||
}
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
clog('navigate','danger','Google Drive n\'est pas activé ou les identifiants sont incorrect',\Auth::user()->id);
|
||||
return redirect('/admin')->with('error','Google Drive n\'est pas activé ou les identifiants sont incorrect');
|
||||
}
|
||||
return abort(500,'Wow... Aucune idée comment ce qui viens d\'arriver');
|
||||
}
|
||||
}
|
||||
@@ -48,6 +48,7 @@ function clog(string $type,string $result,string $event,$user_id = null,$obj_typ
|
||||
$log->user_id = \Auth::User()->id;
|
||||
}
|
||||
|
||||
|
||||
if ($obj_type != null)
|
||||
{
|
||||
$log->logable_type = $obj_type;
|
||||
@@ -72,4 +73,36 @@ function clog(string $type,string $result,string $event,$user_id = null,$obj_typ
|
||||
function clogNav($event)
|
||||
{
|
||||
clog('navigate','success',$event);
|
||||
}
|
||||
}
|
||||
|
||||
function GetSizeName($octet)
|
||||
{
|
||||
// Array contenant les differents unités
|
||||
$unite = array('octet','ko','mo','go');
|
||||
|
||||
if ($octet < 1000) // octet
|
||||
{
|
||||
return $octet.' '.$unite[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($octet < 1000000) // ko
|
||||
{
|
||||
$ko = round($octet/1024,2);
|
||||
return $ko.' '.$unite[1];
|
||||
}
|
||||
else // Mo ou Go
|
||||
{
|
||||
if ($octet < 1000000000) // Mo
|
||||
{
|
||||
$mo = round($octet/(1024*1024),2);
|
||||
return $mo.' '.$unite[2];
|
||||
}
|
||||
else // Go
|
||||
{
|
||||
$go = round($octet/(1024*1024*1024),2);
|
||||
return $go.' '.$unite[3];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
75
app/OCOM.php
@@ -6,5 +6,78 @@ use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class OCOM extends Model
|
||||
{
|
||||
//
|
||||
public function courses()
|
||||
{
|
||||
$courses_id = explode(',',$this->course_id);
|
||||
$courses = collect();
|
||||
foreach ($courses_id as $course_id)
|
||||
{
|
||||
$courses->push(\App\Course::find($course_id));
|
||||
}
|
||||
return $courses;
|
||||
}
|
||||
|
||||
public function saveCourses($courses)
|
||||
{
|
||||
$courses_id = explode(',',$this->course_id);
|
||||
foreach ($courses as $cours)
|
||||
{
|
||||
if ($cours != null){
|
||||
array_push($courses_id,$cours->id);
|
||||
}
|
||||
}
|
||||
$courses_id = array_unique($courses_id);
|
||||
$courses_id = array_filter($courses_id);
|
||||
$this->course_id = implode(',',$courses_id);
|
||||
$this->save();
|
||||
}
|
||||
|
||||
public function saveCourse($course)
|
||||
{
|
||||
$courses_id = explode(',',$this->course_id);
|
||||
array_push($courses_id,$course->id);
|
||||
$courses_id = array_unique($courses_id);
|
||||
$courses_id = array_filter($courses_id);
|
||||
$this->course_id = implode(',',$courses_id);
|
||||
$this->save();
|
||||
}
|
||||
|
||||
public function wasGiven()
|
||||
{
|
||||
$courses = $this->courses();
|
||||
$result = collect();
|
||||
|
||||
$from = strtotime(\App\Config::getData('instruction_year_begin'));
|
||||
$to = strtotime(\App\Config::getData('instruction_year_end'));
|
||||
|
||||
foreach ($courses as $course)
|
||||
{
|
||||
$event = null;
|
||||
try {
|
||||
$event = $course->event;
|
||||
}
|
||||
catch (\Exception $e)
|
||||
{
|
||||
// Nettoyer ?
|
||||
break;
|
||||
}
|
||||
if (strtotime($event->date_begin) >= $from)
|
||||
{
|
||||
if (strtotime($event->date_begin) <= $to)
|
||||
{
|
||||
$result->push($event);
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($result->isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
public static function findByOCOM($ocom)
|
||||
{
|
||||
return OCOM::where('ocom','=',$ocom)->first();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -272,6 +272,148 @@ class Permission extends Model
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
],
|
||||
'file' => [
|
||||
'file_see_public' => [
|
||||
'ckey' => 'file_see_public',
|
||||
'communName' => 'Voir les fichiers publiques',
|
||||
'desc' => 'L\'utilisateur peut-il consulter les fichiers publiques',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_add_public' => [
|
||||
'ckey' => 'file_add_public',
|
||||
'communName' => 'Ajouter un fichier publiques',
|
||||
'desc' => 'L\'utilisateur peut-il ajouter un fichier disponible publiques',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_edit_public' => [
|
||||
'ckey' => 'file_edit_public',
|
||||
'communName' => 'Modifier un fichier publiques',
|
||||
'desc' => 'L\'utilisateur peut-il modifier un fichier publiques',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_delete_public' => [
|
||||
'ckey' => 'file_delete_public',
|
||||
'communName' => 'Supprimer un fichier publiques',
|
||||
'desc' => 'L\'utilisateur peut-il supprimer un fichier publiques',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_see_cadet' => [
|
||||
'ckey' => 'file_see_cadet',
|
||||
'communName' => 'Voir les fichiers des cadets',
|
||||
'desc' => 'L\'utilisateur peut-il consulter les fichiers des cadets',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_add_cadet' => [
|
||||
'ckey' => 'file_add_cadet',
|
||||
'communName' => 'Ajouter un fichier disponible aux cadets',
|
||||
'desc' => 'L\'utilisateur peut-il ajouter un fichier disponible aux cadets',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_edit_cadet' => [
|
||||
'ckey' => 'file_edit_cadet',
|
||||
'communName' => 'Modifier un fichier des cadets',
|
||||
'desc' => 'L\'utilisateur peut-il modifier un fichier des cadets',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_delete_cadet' => [
|
||||
'ckey' => 'file_delete',
|
||||
'communName' => 'Supprimer un fichier des cadets',
|
||||
'desc' => 'L\'utilisateur peut-il supprimer un fichier des cadets',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_see_staff' => [
|
||||
'ckey' => 'file_see_staff',
|
||||
'communName' => 'Voir les fichiers des staffs',
|
||||
'desc' => 'L\'utilisateur peut-il consulter les fichiers des staffs',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_add_staff' => [
|
||||
'ckey' => 'file_add_staff',
|
||||
'communName' => 'Ajouter un fichier disponible aux staffs',
|
||||
'desc' => 'L\'utilisateur peut-il ajouter un fichier disponible aux staffs\'',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_edit_staff' => [
|
||||
'ckey' => 'file_edit_staff',
|
||||
'communName' => 'Modifier un fichier des staffs',
|
||||
'desc' => 'L\'utilisateur peut-il modifier un fichier des staffs',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_delete_staff' => [
|
||||
'ckey' => 'file_delete_staff',
|
||||
'communName' => 'Supprimer un fichier des staffs',
|
||||
'desc' => 'L\'utilisateur peut-il supprimer un fichier des staffs',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_see_etamas' => [
|
||||
'ckey' => 'file_see_etamas',
|
||||
'communName' => 'Voir les fichiers de l\'ETAMAS',
|
||||
'desc' => 'L\'utilisateur peut-il consulter les fichiers de l\'ETAMAS',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_add_etamas' => [
|
||||
'ckey' => 'file_add_etamas',
|
||||
'communName' => 'Ajouter un fichier disponible a l\'ETAMAS',
|
||||
'desc' => 'L\'utilisateur peut-il ajouter un fichier disponible a l\'ETAMAS',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_edit_etamas' => [
|
||||
'ckey' => 'file_edit_etamas',
|
||||
'communName' => 'Modifier un fichier de l\'ETAMAS',
|
||||
'desc' => 'L\'utilisateur peut-il modifier un fichier de l\'ETAMAS',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_delete_etmas' => [
|
||||
'ckey' => 'file_delete_staff',
|
||||
'communName' => 'Supprimer un fichier de l\'ETAMAS',
|
||||
'desc' => 'L\'utilisateur peut-il supprimer un fichier de l\'ETAMAS',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_see_officier' => [
|
||||
'ckey' => 'file_see_officier',
|
||||
'communName' => 'Voir les fichiers des officiers',
|
||||
'desc' => 'L\'utilisateur peut-il consulter les fichiers des officiers',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_add_officier' => [
|
||||
'ckey' => 'file_add_officier',
|
||||
'communName' => 'Ajouter un fichier disponible aux officiers',
|
||||
'desc' => 'L\'utilisateur peut-il ajouter un fichier disponible aux officiers',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_edit_officier' => [
|
||||
'ckey' => 'file_edit_officier',
|
||||
'communName' => 'Modifier un fichier des officiers',
|
||||
'desc' => 'L\'utilisateur peut-il modifier un fichier des officiers',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
],
|
||||
'file_delete_officier' => [
|
||||
'ckey' => 'file_delete_staff',
|
||||
'communName' => 'Supprimer un fichier des officiers',
|
||||
'desc' => 'L\'utilisateur peut-il supprimer un fichier des officiers',
|
||||
'icon' => 'fa-eye',
|
||||
'valeur' => 0
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
|
||||
@@ -43,7 +43,11 @@ class AppServiceProvider extends ServiceProvider
|
||||
});
|
||||
|
||||
Blade::directive('loaderDot', function () {
|
||||
return '<div class="text-center"><div class="lds-ellipsis"><div></div><div></div><div></div><div></div></div></div>';
|
||||
return '<div class="text-center"><div class="lds-ellipsis"><div></div><div></div><div></div><div></div></div></div>';
|
||||
});
|
||||
|
||||
Blade::directive('loaderRipple', function () {
|
||||
return '<div class="lds-ripple"><div></div><div></div></div>';
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
44
app/Providers/GoogleDriveServiceProvider.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Hypweb\Flysystem\GoogleDrive\GoogleDriveAdapter;
|
||||
|
||||
class GoogleDriveServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* Register services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Bootstrap services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
\Storage::extend('google', function($app, $config) {
|
||||
$client = new \Google_Client();
|
||||
$client->setClientId(\Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_CLIENT_ID')));
|
||||
$client->setClientSecret(\Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_CLIENT_SECRET')));
|
||||
$client->refreshToken(\Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_REFRESH_TOKEN')));
|
||||
$service = new \Google_Service_Drive($client);
|
||||
|
||||
$options = [];
|
||||
if(isset($config['teamDriveId'])) {
|
||||
$options['teamDriveId'] = $config['teamDriveId'];
|
||||
}
|
||||
|
||||
$adapter = new GoogleDriveAdapter($service, \Crypt::decryptString(\App\Config::getData('GOOGLE_DRIVE_FOLDER_ID')), $options);
|
||||
|
||||
return new \League\Flysystem\Filesystem($adapter);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -310,6 +310,10 @@ class User extends Authenticatable
|
||||
{
|
||||
if ($this->job->permission($perm) == 0)
|
||||
{
|
||||
if ($this->rank->id == 1)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
return $this->rank->permission($perm);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -8,12 +8,14 @@
|
||||
"php": "^7.2",
|
||||
"barryvdh/laravel-dompdf": "^0.8.4",
|
||||
"barryvdh/laravel-ide-helper": "v2.6.6",
|
||||
"davejamesmiller/laravel-breadcrumbs": "5.3.1",
|
||||
"fideloper/proxy": "^4.0",
|
||||
"guzzlehttp/guzzle": "^6.3",
|
||||
"laravel/framework": "^6.0",
|
||||
"laravel/helpers": "^1.1",
|
||||
"laravel/nexmo-notification-channel": "^2.2",
|
||||
"laravel/tinker": "^1.0",
|
||||
"nao-pon/flysystem-google-drive": "^1.1",
|
||||
"nexmo/client": "^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
@@ -22,7 +24,8 @@
|
||||
"laravel/dusk": "^5.6",
|
||||
"mockery/mockery": "^1.0",
|
||||
"nunomaduro/collision": "^2.0",
|
||||
"phpunit/phpunit": "^7.0"
|
||||
"phpunit/phpunit": "^7.0",
|
||||
"staudenmeir/dusk-updater": "^1.1"
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
|
||||
1621
composer.lock
generated
@@ -173,6 +173,7 @@ return [
|
||||
// App\Providers\BroadcastServiceProvider::class,
|
||||
App\Providers\EventServiceProvider::class,
|
||||
App\Providers\RouteServiceProvider::class,
|
||||
App\Providers\GoogleDriveServiceProvider::class,
|
||||
|
||||
],
|
||||
|
||||
|
||||
75
config/breadcrumbs.php
Normal file
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| View Name
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Choose a view to display when Breadcrumbs::render() is called.
|
||||
| Built in templates are:
|
||||
|
|
||||
| - 'breadcrumbs::bootstrap4' - Bootstrap 4
|
||||
| - 'breadcrumbs::bootstrap3' - Bootstrap 3
|
||||
| - 'breadcrumbs::bootstrap2' - Bootstrap 2
|
||||
| - 'breadcrumbs::bulma' - Bulma
|
||||
| - 'breadcrumbs::foundation6' - Foundation 6
|
||||
| - 'breadcrumbs::materialize' - Materialize
|
||||
| - 'breadcrumbs::uikit' - UIkit
|
||||
| - 'breadcrumbs::json-ld' - JSON-LD Structured Data
|
||||
|
|
||||
| Or a custom view, e.g. '_partials/breadcrumbs'.
|
||||
|
|
||||
*/
|
||||
|
||||
'view' => 'breadcrumbs::bootstrap4',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Breadcrumbs File(s)
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| The file(s) where breadcrumbs are defined. e.g.
|
||||
|
|
||||
| - base_path('routes/breadcrumbs.php')
|
||||
| - glob(base_path('breadcrumbs/*.php'))
|
||||
|
|
||||
*/
|
||||
|
||||
'files' => base_path('routes/breadcrumbs.php'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Exceptions
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Determine when to throw an exception.
|
||||
|
|
||||
*/
|
||||
|
||||
// When route-bound breadcrumbs are used but the current route doesn't have a name (UnnamedRouteException)
|
||||
'unnamed-route-exception' => false,
|
||||
|
||||
// When route-bound breadcrumbs are used and the matching breadcrumb doesn't exist (InvalidBreadcrumbException)
|
||||
'missing-route-bound-breadcrumb-exception' => false,
|
||||
|
||||
// When a named breadcrumb is used but doesn't exist (InvalidBreadcrumbException)
|
||||
'invalid-named-breadcrumb-exception' => true,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Classes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Subclass the default classes for more advanced customisations.
|
||||
|
|
||||
*/
|
||||
|
||||
// Manager
|
||||
'manager-class' => DaveJamesMiller\Breadcrumbs\BreadcrumbsManager::class,
|
||||
|
||||
// Generator
|
||||
'generator-class' => DaveJamesMiller\Breadcrumbs\BreadcrumbsGenerator::class,
|
||||
|
||||
];
|
||||
@@ -26,7 +26,7 @@ return [
|
||||
|
|
||||
*/
|
||||
|
||||
'cloud' => env('FILESYSTEM_CLOUD', 's3'),
|
||||
'cloud' => env('FILESYSTEM_CLOUD', 'google'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -55,13 +55,13 @@ return [
|
||||
'visibility' => 'public',
|
||||
],
|
||||
|
||||
's3' => [
|
||||
'driver' => 's3',
|
||||
'key' => env('AWS_ACCESS_KEY_ID'),
|
||||
'secret' => env('AWS_SECRET_ACCESS_KEY'),
|
||||
'region' => env('AWS_DEFAULT_REGION'),
|
||||
'bucket' => env('AWS_BUCKET'),
|
||||
'url' => env('AWS_URL'),
|
||||
'google' => [
|
||||
'driver' => 'google',
|
||||
'clientId' => '',
|
||||
'clientSecret' => '',
|
||||
'refreshToken' => '',
|
||||
'folderId' => '',
|
||||
// 'teamDriveId' => env('GOOGLE_DRIVE_TEAM_DRIVE_ID'),
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
@@ -22,9 +22,13 @@ class CreateEventsTable extends Migration
|
||||
$table->string('user_id');
|
||||
$table->string('location');
|
||||
$table->boolean('is_mandatory');
|
||||
$table->boolean('use_weekly_msg');
|
||||
$table->boolean('use_schedule');
|
||||
$table->text('desc');
|
||||
$table->text('msg');
|
||||
$table->string('date_msg');
|
||||
$table->text('schedule');
|
||||
$table->string('calendar_color');
|
||||
$table->string('calendar_icon');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ class CreateCoursesTable extends Migration
|
||||
$table->string('location');
|
||||
$table->text('comment');
|
||||
$table->integer('event_id');
|
||||
$table->integer('user_id');
|
||||
$table->string('user_id');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -20,6 +20,8 @@ class CreateOCOMSTable extends Migration
|
||||
$table->string('nbPeriode');
|
||||
$table->string('objectif_rendement');
|
||||
$table->string('oren');
|
||||
$table->boolean('complementary');
|
||||
$table->string('course_id');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -17,8 +17,8 @@ class CreateEventTypesTable extends Migration
|
||||
$table->bigIncrements('id');
|
||||
$table->string('name');
|
||||
$table->text('admin_desc');
|
||||
$table->string('calendar_color')->default('blue');
|
||||
$table->string('calendar_icon')->default('<i class="fa fa-question-circle"></i>');
|
||||
$table->string('calendar_color')->default('#FFFFFF');
|
||||
$table->string('calendar_icon')->default('fa fa-question-circle');
|
||||
$table->string('begin_time')->default('12:00');
|
||||
$table->string('end_time')->default('13:00');
|
||||
$table->string('location')->default('Escadron');
|
||||
@@ -27,6 +27,7 @@ class CreateEventTypesTable extends Migration
|
||||
$table->string('weekly_msg_publication_time')->default('-5day');
|
||||
$table->boolean('use_schedule')->default(false);
|
||||
$table->text('schedule_model');
|
||||
$table->text('weekly_msg');
|
||||
$table->boolean('is_promoted')->default(false);
|
||||
$table->timestamps();
|
||||
});
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateGoogleDriveFileTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('google_drive_files', function (Blueprint $table) {
|
||||
$table->string('id');
|
||||
$table->index('id');
|
||||
$table->string('type');
|
||||
$table->string('name');
|
||||
$table->string('path')->default('');
|
||||
$table->string('rank_permission');
|
||||
$table->string('job_permission');
|
||||
$table->string('user_permission');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('google_drive_file');
|
||||
}
|
||||
}
|
||||
@@ -226,6 +226,46 @@ class ConfigsTableSeeder extends Seeder
|
||||
'name' => 'default_weekly_msg',
|
||||
'state' => 0,
|
||||
'data' => "[\"<strong>/* Nom de l'évènement */</strong><br>Heure (Cadets):<br>Lieu:<br>Tenue:<br>Matériel:<br>/* Commentaire */\"]"
|
||||
],
|
||||
[
|
||||
'name' => 'cadet_list',
|
||||
'state' => 0,
|
||||
'data' => '["#"]'
|
||||
],
|
||||
[
|
||||
'name' => 'GOOGLE_DRIVE_CLIENT_ID',
|
||||
'state' => 0,
|
||||
'data' => '["'.\Crypt::encryptString('').'"]'
|
||||
],
|
||||
[
|
||||
'name' => 'GOOGLE_DRIVE_CLIENT_SECRET',
|
||||
'state' => 0,
|
||||
'data' => '["'.\Crypt::encryptString('').'"]'
|
||||
],
|
||||
[
|
||||
'name' => 'GOOGLE_DRIVE_REFRESH_TOKEN',
|
||||
'state' => 0,
|
||||
'data' => '["'.\Crypt::encryptString('').'"]'
|
||||
],
|
||||
[
|
||||
'name' => 'GOOGLE_DRIVE_FOLDER_ID',
|
||||
'state' => 0,
|
||||
'data' => '["'.\Crypt::encryptString('null').'"]'
|
||||
],
|
||||
[
|
||||
'name' => 'is_Google_Drive_enabled',
|
||||
'state' => 0,
|
||||
'data' => '["false"]'
|
||||
],
|
||||
[
|
||||
'name' => 'instruction_year_begin',
|
||||
'state' => 0,
|
||||
'data' => '["2019-08-1"]'
|
||||
],
|
||||
[
|
||||
'name' => 'instruction_year_end',
|
||||
'state' => 0,
|
||||
'data' => '["2020-05-31"]'
|
||||
]
|
||||
];
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ class DatabaseSeeder extends Seeder
|
||||
ConfigsTableSeeder::class,
|
||||
UsersTableSeeder::class,
|
||||
ComplementaryActivitiesSeeder::class,
|
||||
EventTypeSeeder::class,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
49
database/seeds/EventTypeSeeder.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class EventTypeSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
DB::table('event_types')->insert([
|
||||
[
|
||||
'name' => 'Par défault',
|
||||
'calendar_color' => '#A4A4A4',
|
||||
'calendar_icon' => 'fas fa-book',
|
||||
'begin_time' => '18:30',
|
||||
'end_time' => '21:45',
|
||||
'Location' => 'Escadron',
|
||||
'is_mandatory' => '0',
|
||||
'use_weekly_msg' => '0',
|
||||
'weekly_msg' => '<p><strong>/* Nom de l\'évènement */</strong></p><p>Heure (Cadets):</p><p>Lieu:</p><p>Tenue:</p><p>Matériel:</p><p>/* Commentaire */</p>',
|
||||
'weekly_msg_publication_time' => '-5days',
|
||||
'use_schedule' => '0',
|
||||
'schedule_model' => '{"periodes":[{"name":"Periode 1","begin_time":"19:00","end_time":"20:10"},{"name":"Pause","begin_time":"20:10","end_time":"20:30"},{"name":"Periode 2","begin_time":"20:30","end_time":"21:20"}],"niveaux":[{"name":"Niveau 1"},{"name":"Niveau 2"},{"name":"Niveau 3"}]}',
|
||||
'is_promoted' => '0',
|
||||
'admin_desc' => 'Veuillez modifier la description admin par défaut',
|
||||
],
|
||||
[
|
||||
'name' => 'Soirée d\'instruction régulière',
|
||||
'calendar_color' => 'orange',
|
||||
'calendar_icon' => 'fas fa-book',
|
||||
'begin_time' => '18:30',
|
||||
'end_time' => '21:45',
|
||||
'Location' => 'Escadron',
|
||||
'is_mandatory' => '1',
|
||||
'use_weekly_msg' => '1',
|
||||
'weekly_msg' => '<p><strong>/* Nom de l\'évènement */</strong></p><p>Heure (Cadets):</p><p>Lieu:</p><p>Tenue:</p><p>Matériel:</p><p>/* Commentaire */</p>',
|
||||
'weekly_msg_publication_time' => '-5days',
|
||||
'use_schedule' => '1',
|
||||
'schedule_model' => '{"periodes":[{"name":"Periode 1","begin_time":"19:00","end_time":"20:10"},{"name":"Pause","begin_time":"20:10","end_time":"20:30"},{"name":"Periode 2","begin_time":"20:30","end_time":"21:20"}],"niveaux":[{"name":"Niveau 1"},{"name":"Niveau 2"},{"name":"Niveau 3"}]}',
|
||||
'is_promoted' => '0',
|
||||
'admin_desc' => 'Veuillez modifier la description admin par défaut',
|
||||
]
|
||||
]);
|
||||
}
|
||||
}
|
||||
9181
package-lock.json
generated
19
package.json
@@ -10,16 +10,17 @@
|
||||
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"axios": "^0.18",
|
||||
"bootstrap": "^4.0.0",
|
||||
"popper.js": "^1.12",
|
||||
"cross-env": "^5.1",
|
||||
"jquery": "^3.2",
|
||||
"laravel-mix": "^2.0",
|
||||
"lodash": "^4.17.4",
|
||||
"vue": "^2.5.7"
|
||||
"axios": "^0.18.1",
|
||||
"bootstrap": "^4.4.1",
|
||||
"cross-env": "^5.2.1",
|
||||
"jquery": "^3.4.1",
|
||||
"laravel-mix": "^2.1.14",
|
||||
"lodash": "^4.17.15",
|
||||
"popper.js": "^1.16.1",
|
||||
"vue": "^2.6.11"
|
||||
},
|
||||
"dependencies": {
|
||||
"sweetalert2": "^7.26.11"
|
||||
"ajv": "^6.12.0",
|
||||
"sweetalert2": "^7.33.1"
|
||||
}
|
||||
}
|
||||
|
||||
21
phpunit.dusk.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<phpunit backupGlobals="false"
|
||||
backupStaticAttributes="false"
|
||||
bootstrap="vendor/autoload.php"
|
||||
colors="true"
|
||||
convertErrorsToExceptions="true"
|
||||
convertNoticesToExceptions="true"
|
||||
convertWarningsToExceptions="true"
|
||||
processIsolation="false"
|
||||
stopOnFailure="false">
|
||||
<testsuites>
|
||||
<testsuite name="Browser Test Suite">
|
||||
<directory suffix="Test.php">./tests/Browser</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
<filter>
|
||||
<whitelist processUncoveredFilesFromWhitelist="true">
|
||||
<directory suffix=".php">./app</directory>
|
||||
</whitelist>
|
||||
</filter>
|
||||
</phpunit>
|
||||
BIN
public/android-chrome-192x192.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
public/android-chrome-512x512.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
public/apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
@@ -14,7 +14,7 @@
|
||||
month: "Mois",
|
||||
week: "Semaine",
|
||||
day: "Jour",
|
||||
list: "Mon planning"
|
||||
list: "Liste"
|
||||
},
|
||||
weekLabel: "Sem.",
|
||||
allDayHtml: "Toute la<br/>journée",
|
||||
|
||||
744
public/css/app.css
vendored
112
public/css/custom.css
vendored
@@ -1,3 +1,66 @@
|
||||
.text-excel {
|
||||
color: #0f9d58;
|
||||
}
|
||||
|
||||
.text-word {
|
||||
color: #4b87e4;
|
||||
}
|
||||
|
||||
.text-image {
|
||||
color: #d93025;
|
||||
}
|
||||
|
||||
.text-pdf {
|
||||
color: #ea4335;
|
||||
}
|
||||
|
||||
.text-powerpoint {
|
||||
color: #fd7541;
|
||||
}
|
||||
|
||||
.text-code {
|
||||
color: #e16156;
|
||||
}
|
||||
|
||||
.swal2-title {
|
||||
text-transform: none !important;
|
||||
}
|
||||
|
||||
.hover-spin:hover {
|
||||
-webkit-animation: rotation 2s infinite linear;
|
||||
}
|
||||
|
||||
.active-spin:active {
|
||||
-webkit-animation: rotation 2s infinite linear;
|
||||
border: none;
|
||||
outline: none !important;
|
||||
}
|
||||
|
||||
.explorerType {
|
||||
width: 2rem !important;
|
||||
}
|
||||
|
||||
.no-outline {
|
||||
outline: none !important;
|
||||
}
|
||||
|
||||
@-webkit-keyframes rotation {
|
||||
from {
|
||||
-webkit-transform: rotate(0deg);
|
||||
}
|
||||
to {
|
||||
-webkit-transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
|
||||
.cursor {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.no-cursor {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.word-wrap {
|
||||
white-space: normal;
|
||||
word-break: break-word;
|
||||
@@ -60,6 +123,38 @@
|
||||
}
|
||||
}
|
||||
|
||||
.lds-ripple {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
}
|
||||
.lds-ripple div {
|
||||
position: absolute;
|
||||
border: 4px solid #fff;
|
||||
opacity: 1;
|
||||
border-radius: 50%;
|
||||
animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;
|
||||
}
|
||||
.lds-ripple div:nth-child(2) {
|
||||
animation-delay: -0.5s;
|
||||
}
|
||||
@keyframes lds-ripple {
|
||||
0% {
|
||||
top: 36px;
|
||||
left: 36px;
|
||||
width: 0;
|
||||
height: 0;progress-bar
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
width: 72px;
|
||||
height: 72px;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.container-fluid {
|
||||
padding: 0px;
|
||||
@@ -1724,4 +1819,21 @@ td{
|
||||
}
|
||||
h2 {
|
||||
text-transform: capitalize !important;
|
||||
}
|
||||
|
||||
.breadcrumb {
|
||||
margin: auto;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.navbar-wrapper {
|
||||
max-width: 75%;
|
||||
}
|
||||
.progress-bar-top {
|
||||
margin-bottom: -4px;
|
||||
border-radius: 6px 6px 0px 0px;
|
||||
}
|
||||
|
||||
.no-hover:hover {
|
||||
background-color: initial;
|
||||
}
|
||||
BIN
public/css/font/context-menu-icons.eot
Normal file
BIN
public/css/font/context-menu-icons.ttf
Normal file
BIN
public/css/font/context-menu-icons.woff
Normal file
BIN
public/css/font/context-menu-icons.woff2
Normal file
309
public/css/jquery.contextMenu.css
vendored
Normal file
@@ -0,0 +1,309 @@
|
||||
@charset "UTF-8";
|
||||
/*!
|
||||
* jQuery contextMenu - Plugin for simple contextMenu handling
|
||||
*
|
||||
* Version: v2.9.0
|
||||
*
|
||||
* Authors: Björn Brala (SWIS.nl), Rodney Rehm, Addy Osmani (patches for FF)
|
||||
* Web: http://swisnl.github.io/jQuery-contextMenu/
|
||||
*
|
||||
* Copyright (c) 2011-2019 SWIS BV and contributors
|
||||
*
|
||||
* Licensed under
|
||||
* MIT License http://www.opensource.org/licenses/mit-license
|
||||
*
|
||||
* Date: 2019-10-13T13:09:56.297Z
|
||||
*/
|
||||
@-webkit-keyframes cm-spin {
|
||||
0% {
|
||||
-webkit-transform: translateY(-50%) rotate(0deg);
|
||||
transform: translateY(-50%) rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: translateY(-50%) rotate(359deg);
|
||||
transform: translateY(-50%) rotate(359deg);
|
||||
}
|
||||
}
|
||||
@-o-keyframes cm-spin {
|
||||
0% {
|
||||
-webkit-transform: translateY(-50%) rotate(0deg);
|
||||
-o-transform: translateY(-50%) rotate(0deg);
|
||||
transform: translateY(-50%) rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: translateY(-50%) rotate(359deg);
|
||||
-o-transform: translateY(-50%) rotate(359deg);
|
||||
transform: translateY(-50%) rotate(359deg);
|
||||
}
|
||||
}
|
||||
@keyframes cm-spin {
|
||||
0% {
|
||||
-webkit-transform: translateY(-50%) rotate(0deg);
|
||||
-o-transform: translateY(-50%) rotate(0deg);
|
||||
transform: translateY(-50%) rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: translateY(-50%) rotate(359deg);
|
||||
-o-transform: translateY(-50%) rotate(359deg);
|
||||
transform: translateY(-50%) rotate(359deg);
|
||||
}
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "context-menu-icons";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
|
||||
src: url("font/context-menu-icons.eot?4f0ru");
|
||||
src: url("font/context-menu-icons.eot?4f0ru#iefix") format("embedded-opentype"), url("font/context-menu-icons.woff2?4f0ru") format("woff2"), url("font/context-menu-icons.woff?4f0ru") format("woff"), url("font/context-menu-icons.ttf?4f0ru") format("truetype");
|
||||
}
|
||||
|
||||
.context-menu-icon-add:before {
|
||||
content: "\EA01";
|
||||
}
|
||||
|
||||
.context-menu-icon-copy:before {
|
||||
content: "\EA02";
|
||||
}
|
||||
|
||||
.context-menu-icon-cut:before {
|
||||
content: "\EA03";
|
||||
}
|
||||
|
||||
.context-menu-icon-delete:before {
|
||||
content: "\EA04";
|
||||
}
|
||||
|
||||
.context-menu-icon-edit:before {
|
||||
content: "\EA05";
|
||||
}
|
||||
|
||||
.context-menu-icon-loading:before {
|
||||
content: "\EA06";
|
||||
}
|
||||
|
||||
.context-menu-icon-paste:before {
|
||||
content: "\EA07";
|
||||
}
|
||||
|
||||
.context-menu-icon-quit:before {
|
||||
content: "\EA08";
|
||||
}
|
||||
|
||||
.context-menu-icon::before {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 0;
|
||||
width: 2em;
|
||||
font-family: "context-menu-icons";
|
||||
font-size: 1em;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
line-height: 1;
|
||||
color: #2980b9;
|
||||
text-align: center;
|
||||
-webkit-transform: translateY(-50%);
|
||||
-ms-transform: translateY(-50%);
|
||||
-o-transform: translateY(-50%);
|
||||
transform: translateY(-50%);
|
||||
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.context-menu-icon.context-menu-hover:before {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.context-menu-icon.context-menu-disabled::before {
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
.context-menu-icon.context-menu-icon-loading:before {
|
||||
-webkit-animation: cm-spin 2s infinite;
|
||||
-o-animation: cm-spin 2s infinite;
|
||||
animation: cm-spin 2s infinite;
|
||||
}
|
||||
|
||||
.context-menu-icon.context-menu-icon--fa {
|
||||
display: list-item;
|
||||
font-family: inherit;
|
||||
line-height: inherit;
|
||||
}
|
||||
.context-menu-icon.context-menu-icon--fa::before {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 0;
|
||||
width: 2em;
|
||||
font-family: FontAwesome;
|
||||
font-size: 1em;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
line-height: 1;
|
||||
color: #2980b9;
|
||||
text-align: center;
|
||||
-webkit-transform: translateY(-50%);
|
||||
-ms-transform: translateY(-50%);
|
||||
-o-transform: translateY(-50%);
|
||||
transform: translateY(-50%);
|
||||
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
.context-menu-icon.context-menu-icon--fa.context-menu-hover:before {
|
||||
color: #fff;
|
||||
}
|
||||
.context-menu-icon.context-menu-icon--fa.context-menu-disabled::before {
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
.context-menu-icon.context-menu-icon--fa5 {
|
||||
display: list-item;
|
||||
font-family: inherit;
|
||||
line-height: inherit;
|
||||
}
|
||||
.context-menu-icon.context-menu-icon--fa5 i, .context-menu-icon.context-menu-icon--fa5 svg {
|
||||
position: absolute;
|
||||
top: .3em;
|
||||
left: .5em;
|
||||
color: #2980b9;
|
||||
}
|
||||
.context-menu-icon.context-menu-icon--fa5.context-menu-hover > i, .context-menu-icon.context-menu-icon--fa5.context-menu-hover > svg {
|
||||
color: #fff;
|
||||
}
|
||||
.context-menu-icon.context-menu-icon--fa5.context-menu-disabled i, .context-menu-icon.context-menu-icon--fa5.context-menu-disabled svg {
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
.context-menu-list {
|
||||
position: absolute;
|
||||
display: inline-block;
|
||||
min-width: 13em;
|
||||
max-width: 26em;
|
||||
padding: .25em 0;
|
||||
margin: .3em;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
list-style-type: none;
|
||||
background: #fff;
|
||||
border: 1px solid #bebebe;
|
||||
border-radius: .2em;
|
||||
-webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, .5);
|
||||
box-shadow: 0 2px 5px rgba(0, 0, 0, .5);
|
||||
}
|
||||
|
||||
.context-menu-item {
|
||||
position: relative;
|
||||
-webkit-box-sizing: content-box;
|
||||
-moz-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
padding: .2em 2em;
|
||||
color: #2f2f2f;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.context-menu-separator {
|
||||
padding: 0;
|
||||
margin: .35em 0;
|
||||
border-bottom: 1px solid #e6e6e6;
|
||||
}
|
||||
|
||||
.context-menu-item > label > input,
|
||||
.context-menu-item > label > textarea {
|
||||
-webkit-user-select: text;
|
||||
-moz-user-select: text;
|
||||
-ms-user-select: text;
|
||||
user-select: text;
|
||||
}
|
||||
|
||||
.context-menu-item.context-menu-hover {
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
background-color: #2980b9;
|
||||
}
|
||||
|
||||
.context-menu-item.context-menu-disabled {
|
||||
color: #bbb;
|
||||
cursor: default;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.context-menu-input.context-menu-hover {
|
||||
color: #2f2f2f;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.context-menu-submenu:after {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: .5em;
|
||||
z-index: 1;
|
||||
width: 0;
|
||||
height: 0;
|
||||
content: '';
|
||||
border-color: transparent transparent transparent #2f2f2f;
|
||||
border-style: solid;
|
||||
border-width: .25em 0 .25em .25em;
|
||||
-webkit-transform: translateY(-50%);
|
||||
-ms-transform: translateY(-50%);
|
||||
-o-transform: translateY(-50%);
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
|
||||
/**
|
||||
* Inputs
|
||||
*/
|
||||
.context-menu-item.context-menu-input {
|
||||
padding: .3em .6em;
|
||||
}
|
||||
|
||||
/* vertically align inside labels */
|
||||
.context-menu-input > label > * {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* position checkboxes and radios as icons */
|
||||
.context-menu-input > label > input[type="checkbox"],
|
||||
.context-menu-input > label > input[type="radio"] {
|
||||
position: relative;
|
||||
top: .12em;
|
||||
margin-right: .4em;
|
||||
}
|
||||
|
||||
.context-menu-input > label {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.context-menu-input > label,
|
||||
.context-menu-input > label > input[type="text"],
|
||||
.context-menu-input > label > textarea,
|
||||
.context-menu-input > label > select {
|
||||
display: block;
|
||||
width: 100%;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.context-menu-input > label > textarea {
|
||||
height: 7em;
|
||||
}
|
||||
|
||||
.context-menu-item > .context-menu-list {
|
||||
top: .3em;
|
||||
/* re-positioned by js */
|
||||
right: -.3em;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.context-menu-item.context-menu-visible > .context-menu-list {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.context-menu-accesskey {
|
||||
text-decoration: underline;
|
||||
}
|
||||
6
public/css/material-dashboard.css
vendored
@@ -3305,9 +3305,9 @@ fieldset:disabled a.btn {
|
||||
}
|
||||
|
||||
.btn-secondary:hover {
|
||||
color: #ffffff !important;
|
||||
background-color: #5a6268 !important;
|
||||
border-color: #545b62 !important;
|
||||
color: #ffffff;
|
||||
background-color: #5a6268;
|
||||
border-color: #545b62;
|
||||
}
|
||||
|
||||
.btn-secondary:focus,
|
||||
|
||||
1
public/css/monolith.min.css
vendored
Normal file
BIN
public/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 290 B |
BIN
public/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 532 B |
BIN
public/favicon.ico
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
public/images/C-CMS.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
public/images/C-CMS_G.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
49149
public/js/app.js
vendored
20
public/js/calendar.js
vendored
@@ -3,14 +3,28 @@ function initFullCalendar(authToken) {
|
||||
var calendarEl = document.getElementById('fullCalendar');
|
||||
|
||||
var calendar = new FullCalendar.Calendar(calendarEl, {
|
||||
plugins: ['dayGrid','interaction'],
|
||||
plugins: ['dayGrid','interaction','list'],
|
||||
locale: 'fr-ca',
|
||||
header: {
|
||||
left: 'title',
|
||||
center: '',
|
||||
center: 'dayGridMonth,listWeek',
|
||||
right: 'prev,next'
|
||||
},
|
||||
events: '/api/schedule/events',
|
||||
eventRender: function(event, element) {
|
||||
if (event.event.extendedProps.icon && event.view.type == 'dayGridMonth')
|
||||
{
|
||||
let i = document.createElement('i');
|
||||
i.className = event.event.extendedProps.icon+' mx-1';
|
||||
event.el.querySelector('.fc-content').prepend(i);
|
||||
}
|
||||
else if(event.event.extendedProps.icon && event.view.type == 'listWeek')
|
||||
{
|
||||
let i = document.createElement('i');
|
||||
i.className = event.event.extendedProps.icon+' mr-1';
|
||||
event.el.querySelector('.fc-list-item-title').prepend(i);
|
||||
}
|
||||
},
|
||||
eventClick: function (info) {
|
||||
$.get("/api/schedule/events/modal/full/" + info.event.id + "/"+ info.event.extendedProps.extraParams.db_type + "?api_token="+authToken, function (data) {
|
||||
$("#modal-content").html(data);
|
||||
@@ -102,4 +116,4 @@ function deleteEvent(pid){
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
39
public/js/ocom.js
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
function deleteOCOM(id)
|
||||
{
|
||||
Swal.fire({
|
||||
title: 'Êtes vous certain ?',
|
||||
text: "Vous ne pourrez annuler cette action",
|
||||
type: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: 'Oui',
|
||||
cancelButtonText: 'Non'
|
||||
}).then((result) => {
|
||||
if (result.value) {
|
||||
let request = $.ajax({
|
||||
url: "/api/ocom/"+id,
|
||||
method: "DELETE",
|
||||
data: { api_token : api_token },
|
||||
dataType: "html"
|
||||
});
|
||||
request.done(function (msg) {
|
||||
Swal.fire(
|
||||
'Supprimé!',
|
||||
'Le fichier a été supprimé',
|
||||
'success'
|
||||
).then(() => {
|
||||
window.location.href = '/admin/ocom';
|
||||
});
|
||||
});
|
||||
request.fail(function (jqXHR, textStatus) {
|
||||
Swal.fire({
|
||||
type: 'error',
|
||||
title: 'Oops...',
|
||||
text: 'Le cours n\'a pas pus être supprimé',
|
||||
footer: '<small>'+textStatus+'</small>'
|
||||
})
|
||||
})
|
||||
}
|
||||
});
|
||||
}
|
||||
182
public/js/plugins/drive-explorer.js
vendored
Normal file
@@ -0,0 +1,182 @@
|
||||
var folderHistory = false;
|
||||
var path = '';
|
||||
var currentFolder = '';
|
||||
var folderGoBack = [];
|
||||
var permissionModalHtml = null;
|
||||
var progressBar = 0;
|
||||
function init(folder)
|
||||
{
|
||||
loadFolder(folder);
|
||||
loadHistory();
|
||||
}
|
||||
|
||||
function loadHistory() {
|
||||
updateProgressBar(progressBar+5);
|
||||
let btnBack = $('#backbtn');
|
||||
btnBack.prop('disabled','true');
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/drive/patharray?api_token=' + api_token,
|
||||
success: function (rawpath) {
|
||||
updateProgressBar(progressBar+30);
|
||||
var path = JSON.parse(rawpath);
|
||||
Object.keys(path).forEach(function (item) {
|
||||
var dir = path[item].dirname.split('/');
|
||||
folderGoBack[path[item].basename] = dir[dir.length - 1];
|
||||
});
|
||||
folderHistory = true;
|
||||
updateProgressBar(progressBar+10);
|
||||
if(!currentFolder == '' || !currentFolder == 'root')
|
||||
{
|
||||
btnBack.removeAttr('disabled');
|
||||
}
|
||||
updateProgressBar(progressBar+5);
|
||||
},
|
||||
error: function () {
|
||||
if (folderHistory)
|
||||
{
|
||||
showNotification('error', 'Impossible de charger la hiérachie des dossiers', 'top', 'center')
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function loadFolder(folder) {
|
||||
if (folder != undefined)
|
||||
{
|
||||
showLoader();
|
||||
updateProgressBar(progressBar+5);
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/drive/folders/'+folder+'?api_token=' + api_token,
|
||||
success: function (template) {
|
||||
// Load Explorer Content
|
||||
updateProgressBar(progressBar+30);
|
||||
$(".drive-explorer").html(template);
|
||||
currentFolder = folder;
|
||||
window.history.pushState("object or string", "Page Title", "/admin/drive/"+folder);
|
||||
updateProgressBar(progressBar+5);
|
||||
hideLoader();
|
||||
|
||||
$('.currentDir').attr('value',folder);
|
||||
|
||||
if (folderHistory)
|
||||
{
|
||||
if((currentFolder == '' || currentFolder == 'root'))
|
||||
{
|
||||
$('#backbtn').prop('disabled','true');
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#backbtn').removeAttr('disabled');
|
||||
}
|
||||
}
|
||||
updateProgressBar(progressBar+10);
|
||||
},
|
||||
error: function () {
|
||||
showNotification('error', 'Impossible de charger le dossier '+folder, 'top', 'center')
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
function goBack()
|
||||
{
|
||||
loadFolder(folderGoBack[currentFolder]);
|
||||
}
|
||||
|
||||
function showfile(file) {
|
||||
var fa = $('#fa-'+file);
|
||||
if(!fa.hasClass('fa-flip-vertical'))
|
||||
{
|
||||
$('#'+file).removeClass('d-none');
|
||||
fa.addClass('fa-flip-vertical');
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#'+file).addClass('d-none');
|
||||
fa.removeClass('fa-flip-vertical');
|
||||
}
|
||||
}
|
||||
|
||||
function showLoader() {
|
||||
$('#loader').fadeIn(200);
|
||||
}
|
||||
|
||||
function hideLoader() {
|
||||
$('#loader').fadeOut(650);
|
||||
}
|
||||
|
||||
function deleteFile(file, folder)
|
||||
{
|
||||
swal({
|
||||
title: 'Êtes vous certain de vouloir supprimer le fichier ?',
|
||||
text: "Vous ne pourrez pas annuler cette action",
|
||||
type: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: 'Oui',
|
||||
cancelButtonText: 'Non'
|
||||
}).then((result) => {
|
||||
if (result.value) {
|
||||
window.location.href = '/file/delete?f='+file+'&d='+folder
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function deleteFolder(folder)
|
||||
{
|
||||
swal({
|
||||
title: 'Êtes vous certain de vouloir supprimer le dossier ?',
|
||||
text: "Vous ne pourrez pas annuler cette action",
|
||||
type: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: 'Oui',
|
||||
cancelButtonText: 'Non'
|
||||
}).then((result) => {
|
||||
if (result.value) {
|
||||
window.location.href = '/folder/delete?d='+folder
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function refreshFolder() {
|
||||
loadFolder(currentFolder);
|
||||
}
|
||||
|
||||
function editPermission(folder,subject,id)
|
||||
{
|
||||
$('#permissionModal').on('hidden.bs.modal', function (e) {
|
||||
$('#permissionModalHtml').html(permissionModalHtml);
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: '/api/drive/'+folder+'/permission/'+subject+'/'+id+'?api_token=' + api_token,
|
||||
success: function (modal) {
|
||||
permissionModalHtml = $('#permissionModalHtml').html();
|
||||
$('#permissionModalHtml').html(modal);
|
||||
$('#permissionModal').modal('show');
|
||||
},
|
||||
error: function () {
|
||||
showNotification('error', 'Impossible de charger le dossier '+folder, 'top', 'center')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function updateProgressBar(value)
|
||||
{
|
||||
progressBar = value;
|
||||
let bar = $('#progress-bar');
|
||||
bar.css('width',value+"%");
|
||||
if (progressBar >= 100)
|
||||
{
|
||||
$('.progress').fadeOut(1500);
|
||||
}
|
||||
else
|
||||
{
|
||||
$('.progress').fadeIn(650);
|
||||
}
|
||||
}
|
||||
312
public/js/plugins/fontawesome-icon-picker/fontawesome-iconpicker.css
vendored
Normal file
@@ -0,0 +1,312 @@
|
||||
/*!
|
||||
* Font Awesome Icon Picker
|
||||
* https://farbelous.github.io/fontawesome-iconpicker/
|
||||
*
|
||||
* Originally written by (c) 2016 Javi Aguilar
|
||||
* Licensed under the MIT License
|
||||
* https://github.com/farbelous/fontawesome-iconpicker/blob/master/LICENSE
|
||||
*
|
||||
*/
|
||||
.iconpicker-popover.popover {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: none;
|
||||
max-width: none;
|
||||
padding: 1px;
|
||||
text-align: left;
|
||||
width: 234px;
|
||||
background: #f7f7f7;
|
||||
z-index: 9;
|
||||
}
|
||||
.iconpicker-popover.popover.top,
|
||||
.iconpicker-popover.popover.topLeftCorner,
|
||||
.iconpicker-popover.popover.topLeft,
|
||||
.iconpicker-popover.popover.topRight,
|
||||
.iconpicker-popover.popover.topRightCorner {
|
||||
margin-top: -10px;
|
||||
}
|
||||
.iconpicker-popover.popover.right,
|
||||
.iconpicker-popover.popover.rightTop,
|
||||
.iconpicker-popover.popover.rightBottom {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.iconpicker-popover.popover.bottom,
|
||||
.iconpicker-popover.popover.bottomRightCorner,
|
||||
.iconpicker-popover.popover.bottomRight,
|
||||
.iconpicker-popover.popover.bottomLeft,
|
||||
.iconpicker-popover.popover.bottomLeftCorner {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.iconpicker-popover.popover.left,
|
||||
.iconpicker-popover.popover.leftBottom,
|
||||
.iconpicker-popover.popover.leftTop {
|
||||
margin-left: -10px;
|
||||
}
|
||||
.iconpicker-popover.popover.inline {
|
||||
margin: 0 0 12px 0;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
opacity: 1;
|
||||
top: auto;
|
||||
left: auto;
|
||||
bottom: auto;
|
||||
right: auto;
|
||||
max-width: 100%;
|
||||
box-shadow: none;
|
||||
z-index: auto;
|
||||
vertical-align: top;
|
||||
}
|
||||
.iconpicker-popover.popover.inline > .arrow {
|
||||
display: none;
|
||||
}
|
||||
.dropdown-menu .iconpicker-popover.inline {
|
||||
margin: 0;
|
||||
border: none;
|
||||
}
|
||||
.dropdown-menu.iconpicker-container {
|
||||
padding: 0;
|
||||
}
|
||||
.iconpicker-popover.popover .popover-title {
|
||||
padding: 12px;
|
||||
font-size: 13px;
|
||||
line-height: 15px;
|
||||
border-bottom: 1px solid #ebebeb;
|
||||
background-color: #f7f7f7;
|
||||
}
|
||||
.iconpicker-popover.popover .popover-title input[type=search].iconpicker-search {
|
||||
margin: 0 0 2px 0;
|
||||
}
|
||||
.iconpicker-popover.popover .popover-title-text ~ input[type=search].iconpicker-search {
|
||||
margin-top: 12px;
|
||||
}
|
||||
.iconpicker-popover.popover .popover-content {
|
||||
padding: 0px;
|
||||
text-align: center;
|
||||
}
|
||||
.iconpicker-popover .popover-footer {
|
||||
float: none;
|
||||
clear: both;
|
||||
padding: 12px;
|
||||
text-align: right;
|
||||
margin: 0;
|
||||
border-top: 1px solid #ebebeb;
|
||||
background-color: #f7f7f7;
|
||||
}
|
||||
.iconpicker-popover .popover-footer:before,
|
||||
.iconpicker-popover .popover-footer:after {
|
||||
content: " ";
|
||||
display: table;
|
||||
}
|
||||
.iconpicker-popover .popover-footer:after {
|
||||
clear: both;
|
||||
}
|
||||
.iconpicker-popover .popover-footer .iconpicker-btn {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.iconpicker-popover .popover-footer input[type=search].iconpicker-search {
|
||||
/*width:auto;
|
||||
float:left;*/
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
.iconpicker-popover.popover > .arrow,
|
||||
.iconpicker-popover.popover > .arrow:after {
|
||||
position: absolute;
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-color: transparent;
|
||||
border-style: solid;
|
||||
}
|
||||
.iconpicker-popover.popover > .arrow {
|
||||
border-width: 11px;
|
||||
}
|
||||
.iconpicker-popover.popover > .arrow:after {
|
||||
border-width: 10px;
|
||||
content: "";
|
||||
}
|
||||
.iconpicker-popover.popover.top > .arrow,
|
||||
.iconpicker-popover.popover.topLeft > .arrow,
|
||||
.iconpicker-popover.popover.topRight > .arrow {
|
||||
left: 50%;
|
||||
margin-left: -11px;
|
||||
border-bottom-width: 0;
|
||||
border-top-color: #999999;
|
||||
border-top-color: rgba(0, 0, 0, 0.25);
|
||||
bottom: -11px;
|
||||
}
|
||||
.iconpicker-popover.popover.top > .arrow:after,
|
||||
.iconpicker-popover.popover.topLeft > .arrow:after,
|
||||
.iconpicker-popover.popover.topRight > .arrow:after {
|
||||
content: " ";
|
||||
bottom: 1px;
|
||||
margin-left: -10px;
|
||||
border-bottom-width: 0;
|
||||
border-top-color: #ffffff;
|
||||
}
|
||||
.iconpicker-popover.popover.topLeft > .arrow {
|
||||
left: 8px;
|
||||
margin-left: 0;
|
||||
}
|
||||
.iconpicker-popover.popover.topRight > .arrow {
|
||||
left: auto;
|
||||
right: 8px;
|
||||
margin-left: 0;
|
||||
}
|
||||
.iconpicker-popover.popover.right > .arrow,
|
||||
.iconpicker-popover.popover.rightTop > .arrow,
|
||||
.iconpicker-popover.popover.rightBottom > .arrow {
|
||||
top: 50%;
|
||||
left: -11px;
|
||||
margin-top: -11px;
|
||||
border-left-width: 0;
|
||||
border-right-color: #999999;
|
||||
border-right-color: rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.iconpicker-popover.popover.right > .arrow:after,
|
||||
.iconpicker-popover.popover.rightTop > .arrow:after,
|
||||
.iconpicker-popover.popover.rightBottom > .arrow:after {
|
||||
content: " ";
|
||||
left: 1px;
|
||||
bottom: -10px;
|
||||
border-left-width: 0;
|
||||
border-right-color: #ffffff;
|
||||
}
|
||||
.iconpicker-popover.popover.rightTop > .arrow {
|
||||
top: auto;
|
||||
bottom: 8px;
|
||||
margin-top: 0;
|
||||
}
|
||||
.iconpicker-popover.popover.rightBottom > .arrow {
|
||||
top: 8px;
|
||||
margin-top: 0;
|
||||
}
|
||||
.iconpicker-popover.popover.bottom > .arrow,
|
||||
.iconpicker-popover.popover.bottomRight > .arrow,
|
||||
.iconpicker-popover.popover.bottomLeft > .arrow {
|
||||
left: 50%;
|
||||
margin-left: -11px;
|
||||
border-top-width: 0;
|
||||
border-bottom-color: #999999;
|
||||
border-bottom-color: rgba(0, 0, 0, 0.25);
|
||||
top: -11px;
|
||||
}
|
||||
.iconpicker-popover.popover.bottom > .arrow:after,
|
||||
.iconpicker-popover.popover.bottomRight > .arrow:after,
|
||||
.iconpicker-popover.popover.bottomLeft > .arrow:after {
|
||||
content: " ";
|
||||
top: 1px;
|
||||
margin-left: -10px;
|
||||
border-top-width: 0;
|
||||
border-bottom-color: #ffffff;
|
||||
}
|
||||
.iconpicker-popover.popover.bottomLeft > .arrow {
|
||||
left: 8px;
|
||||
margin-left: 0;
|
||||
}
|
||||
.iconpicker-popover.popover.bottomRight > .arrow {
|
||||
left: auto;
|
||||
right: 8px;
|
||||
margin-left: 0;
|
||||
}
|
||||
.iconpicker-popover.popover.left > .arrow,
|
||||
.iconpicker-popover.popover.leftBottom > .arrow,
|
||||
.iconpicker-popover.popover.leftTop > .arrow {
|
||||
top: 50%;
|
||||
right: -11px;
|
||||
margin-top: -11px;
|
||||
border-right-width: 0;
|
||||
border-left-color: #999999;
|
||||
border-left-color: rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
.iconpicker-popover.popover.left > .arrow:after,
|
||||
.iconpicker-popover.popover.leftBottom > .arrow:after,
|
||||
.iconpicker-popover.popover.leftTop > .arrow:after {
|
||||
content: " ";
|
||||
right: 1px;
|
||||
border-right-width: 0;
|
||||
border-left-color: #ffffff;
|
||||
bottom: -10px;
|
||||
}
|
||||
.iconpicker-popover.popover.leftBottom > .arrow {
|
||||
top: 8px;
|
||||
margin-top: 0;
|
||||
}
|
||||
.iconpicker-popover.popover.leftTop > .arrow {
|
||||
top: auto;
|
||||
bottom: 8px;
|
||||
margin-top: 0;
|
||||
}
|
||||
.iconpicker {
|
||||
position: relative;
|
||||
text-align: left;
|
||||
text-shadow: none;
|
||||
line-height: 0;
|
||||
display: block;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
.iconpicker * {
|
||||
-webkit-box-sizing: content-box;
|
||||
-moz-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
position: relative;
|
||||
}
|
||||
.iconpicker:before,
|
||||
.iconpicker:after {
|
||||
content: " ";
|
||||
display: table;
|
||||
}
|
||||
.iconpicker:after {
|
||||
clear: both;
|
||||
}
|
||||
.iconpicker .iconpicker-items {
|
||||
position: relative;
|
||||
clear: both;
|
||||
float: none;
|
||||
padding: 12px 0 0 12px;
|
||||
background: #fff;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
overflow-y: auto;
|
||||
min-height: 49px;
|
||||
max-height: 246px;
|
||||
}
|
||||
.iconpicker .iconpicker-items:before,
|
||||
.iconpicker .iconpicker-items:after {
|
||||
content: " ";
|
||||
display: table;
|
||||
}
|
||||
.iconpicker .iconpicker-items:after {
|
||||
clear: both;
|
||||
}
|
||||
.iconpicker .iconpicker-item {
|
||||
float: left;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
padding: 12px;
|
||||
margin: 0 12px 12px 0;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
border-radius: 3px;
|
||||
font-size: 14px;
|
||||
box-shadow: 0 0 0 1px #dddddd;
|
||||
color: inherit;
|
||||
/*&:nth-child(4n+4) {
|
||||
margin-right: 0;
|
||||
}
|
||||
&:nth-last-child(-n+4) {
|
||||
margin-bottom: 0;
|
||||
}*/
|
||||
}
|
||||
.iconpicker .iconpicker-item:hover:not(.iconpicker-selected) {
|
||||
background-color: #eeeeee;
|
||||
}
|
||||
.iconpicker .iconpicker-item.iconpicker-selected {
|
||||
box-shadow: none;
|
||||
color: #fff;
|
||||
background: #000;
|
||||
}
|
||||
.iconpicker-component {
|
||||
cursor: pointer;
|
||||
}
|
||||
3912
public/js/plugins/fontawesome-icon-picker/fontawesome-iconpicker.js
vendored
Normal file
9
public/js/plugins/fontawesome-icon-picker/fontawesome-iconpicker.min.css
vendored
Normal file
20
public/js/plugins/fontawesome-icon-picker/fontawesome-iconpicker.min.js
vendored
Normal file
34
public/js/plugins/fontawesome/LICENSE.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
Font Awesome Free License
|
||||
-------------------------
|
||||
|
||||
Font Awesome Free is free, open source, and GPL friendly. You can use it for
|
||||
commercial projects, open source projects, or really almost whatever you want.
|
||||
Full Font Awesome Free license: https://fontawesome.com/license/free.
|
||||
|
||||
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
|
||||
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
|
||||
packaged as SVG and JS file types.
|
||||
|
||||
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
|
||||
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
||||
packaged as web and desktop font files.
|
||||
|
||||
# Code: MIT License (https://opensource.org/licenses/MIT)
|
||||
In the Font Awesome Free download, the MIT license applies to all non-font and
|
||||
non-icon files.
|
||||
|
||||
# Attribution
|
||||
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
|
||||
Awesome Free files already contain embedded comments with sufficient
|
||||
attribution, so you shouldn't need to do anything additional when using these
|
||||
files normally.
|
||||
|
||||
We've kept attribution comments terse, so we ask that you do not actively work
|
||||
to remove them from files, especially code. They're a great way for folks to
|
||||
learn about Font Awesome.
|
||||
|
||||
# Brand Icons
|
||||
All brand icons are trademarks of their respective owners. The use of these
|
||||
trademarks does not indicate endorsement of the trademark holder by Font
|
||||
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||
to represent the company, product, or service to which they refer.**
|
||||
4463
public/js/plugins/fontawesome/css/all.css
vendored
Normal file
5
public/js/plugins/fontawesome/css/all.min.css
vendored
Normal file
15
public/js/plugins/fontawesome/css/brands.css
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
/*!
|
||||
* Font Awesome Free 5.12.1 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Brands';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: auto;
|
||||
src: url("../webfonts/fa-brands-400.eot");
|
||||
src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
|
||||
|
||||
.fab {
|
||||
font-family: 'Font Awesome 5 Brands';
|
||||
font-weight: 400; }
|
||||
5
public/js/plugins/fontawesome/css/brands.min.css
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
/*!
|
||||
* Font Awesome Free 5.12.1 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands";font-weight:400}
|
||||
4429
public/js/plugins/fontawesome/css/fontawesome.css
vendored
Normal file
5
public/js/plugins/fontawesome/css/fontawesome.min.css
vendored
Normal file
15
public/js/plugins/fontawesome/css/regular.css
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
/*!
|
||||
* Font Awesome Free 5.12.1 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: auto;
|
||||
src: url("../webfonts/fa-regular-400.eot");
|
||||
src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
|
||||
|
||||
.far {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-weight: 400; }
|
||||
5
public/js/plugins/fontawesome/css/regular.min.css
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
/*!
|
||||
* Font Awesome Free 5.12.1 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400}
|
||||
16
public/js/plugins/fontawesome/css/solid.css
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
/*!
|
||||
* Font Awesome Free 5.12.1 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
font-display: auto;
|
||||
src: url("../webfonts/fa-solid-900.eot");
|
||||
src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
|
||||
|
||||
.fa,
|
||||
.fas {
|
||||
font-family: 'Font Awesome 5 Free';
|
||||
font-weight: 900; }
|
||||
5
public/js/plugins/fontawesome/css/solid.min.css
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
/*!
|
||||
* Font Awesome Free 5.12.1 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900}
|
||||
371
public/js/plugins/fontawesome/css/svg-with-js.css
vendored
Normal file
@@ -0,0 +1,371 @@
|
||||
/*!
|
||||
* Font Awesome Free 5.12.1 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
svg:not(:root).svg-inline--fa {
|
||||
overflow: visible; }
|
||||
|
||||
.svg-inline--fa {
|
||||
display: inline-block;
|
||||
font-size: inherit;
|
||||
height: 1em;
|
||||
overflow: visible;
|
||||
vertical-align: -.125em; }
|
||||
.svg-inline--fa.fa-lg {
|
||||
vertical-align: -.225em; }
|
||||
.svg-inline--fa.fa-w-1 {
|
||||
width: 0.0625em; }
|
||||
.svg-inline--fa.fa-w-2 {
|
||||
width: 0.125em; }
|
||||
.svg-inline--fa.fa-w-3 {
|
||||
width: 0.1875em; }
|
||||
.svg-inline--fa.fa-w-4 {
|
||||
width: 0.25em; }
|
||||
.svg-inline--fa.fa-w-5 {
|
||||
width: 0.3125em; }
|
||||
.svg-inline--fa.fa-w-6 {
|
||||
width: 0.375em; }
|
||||
.svg-inline--fa.fa-w-7 {
|
||||
width: 0.4375em; }
|
||||
.svg-inline--fa.fa-w-8 {
|
||||
width: 0.5em; }
|
||||
.svg-inline--fa.fa-w-9 {
|
||||
width: 0.5625em; }
|
||||
.svg-inline--fa.fa-w-10 {
|
||||
width: 0.625em; }
|
||||
.svg-inline--fa.fa-w-11 {
|
||||
width: 0.6875em; }
|
||||
.svg-inline--fa.fa-w-12 {
|
||||
width: 0.75em; }
|
||||
.svg-inline--fa.fa-w-13 {
|
||||
width: 0.8125em; }
|
||||
.svg-inline--fa.fa-w-14 {
|
||||
width: 0.875em; }
|
||||
.svg-inline--fa.fa-w-15 {
|
||||
width: 0.9375em; }
|
||||
.svg-inline--fa.fa-w-16 {
|
||||
width: 1em; }
|
||||
.svg-inline--fa.fa-w-17 {
|
||||
width: 1.0625em; }
|
||||
.svg-inline--fa.fa-w-18 {
|
||||
width: 1.125em; }
|
||||
.svg-inline--fa.fa-w-19 {
|
||||
width: 1.1875em; }
|
||||
.svg-inline--fa.fa-w-20 {
|
||||
width: 1.25em; }
|
||||
.svg-inline--fa.fa-pull-left {
|
||||
margin-right: .3em;
|
||||
width: auto; }
|
||||
.svg-inline--fa.fa-pull-right {
|
||||
margin-left: .3em;
|
||||
width: auto; }
|
||||
.svg-inline--fa.fa-border {
|
||||
height: 1.5em; }
|
||||
.svg-inline--fa.fa-li {
|
||||
width: 2em; }
|
||||
.svg-inline--fa.fa-fw {
|
||||
width: 1.25em; }
|
||||
|
||||
.fa-layers svg.svg-inline--fa {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0; }
|
||||
|
||||
.fa-layers {
|
||||
display: inline-block;
|
||||
height: 1em;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
vertical-align: -.125em;
|
||||
width: 1em; }
|
||||
.fa-layers svg.svg-inline--fa {
|
||||
-webkit-transform-origin: center center;
|
||||
transform-origin: center center; }
|
||||
|
||||
.fa-layers-text, .fa-layers-counter {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
text-align: center; }
|
||||
|
||||
.fa-layers-text {
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
-webkit-transform-origin: center center;
|
||||
transform-origin: center center; }
|
||||
|
||||
.fa-layers-counter {
|
||||
background-color: #ff253a;
|
||||
border-radius: 1em;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
color: #fff;
|
||||
height: 1.5em;
|
||||
line-height: 1;
|
||||
max-width: 5em;
|
||||
min-width: 1.5em;
|
||||
overflow: hidden;
|
||||
padding: .25em;
|
||||
right: 0;
|
||||
text-overflow: ellipsis;
|
||||
top: 0;
|
||||
-webkit-transform: scale(0.25);
|
||||
transform: scale(0.25);
|
||||
-webkit-transform-origin: top right;
|
||||
transform-origin: top right; }
|
||||
|
||||
.fa-layers-bottom-right {
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
top: auto;
|
||||
-webkit-transform: scale(0.25);
|
||||
transform: scale(0.25);
|
||||
-webkit-transform-origin: bottom right;
|
||||
transform-origin: bottom right; }
|
||||
|
||||
.fa-layers-bottom-left {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: auto;
|
||||
top: auto;
|
||||
-webkit-transform: scale(0.25);
|
||||
transform: scale(0.25);
|
||||
-webkit-transform-origin: bottom left;
|
||||
transform-origin: bottom left; }
|
||||
|
||||
.fa-layers-top-right {
|
||||
right: 0;
|
||||
top: 0;
|
||||
-webkit-transform: scale(0.25);
|
||||
transform: scale(0.25);
|
||||
-webkit-transform-origin: top right;
|
||||
transform-origin: top right; }
|
||||
|
||||
.fa-layers-top-left {
|
||||
left: 0;
|
||||
right: auto;
|
||||
top: 0;
|
||||
-webkit-transform: scale(0.25);
|
||||
transform: scale(0.25);
|
||||
-webkit-transform-origin: top left;
|
||||
transform-origin: top left; }
|
||||
|
||||
.fa-lg {
|
||||
font-size: 1.33333em;
|
||||
line-height: 0.75em;
|
||||
vertical-align: -.0667em; }
|
||||
|
||||
.fa-xs {
|
||||
font-size: .75em; }
|
||||
|
||||
.fa-sm {
|
||||
font-size: .875em; }
|
||||
|
||||
.fa-1x {
|
||||
font-size: 1em; }
|
||||
|
||||
.fa-2x {
|
||||
font-size: 2em; }
|
||||
|
||||
.fa-3x {
|
||||
font-size: 3em; }
|
||||
|
||||
.fa-4x {
|
||||
font-size: 4em; }
|
||||
|
||||
.fa-5x {
|
||||
font-size: 5em; }
|
||||
|
||||
.fa-6x {
|
||||
font-size: 6em; }
|
||||
|
||||
.fa-7x {
|
||||
font-size: 7em; }
|
||||
|
||||
.fa-8x {
|
||||
font-size: 8em; }
|
||||
|
||||
.fa-9x {
|
||||
font-size: 9em; }
|
||||
|
||||
.fa-10x {
|
||||
font-size: 10em; }
|
||||
|
||||
.fa-fw {
|
||||
text-align: center;
|
||||
width: 1.25em; }
|
||||
|
||||
.fa-ul {
|
||||
list-style-type: none;
|
||||
margin-left: 2.5em;
|
||||
padding-left: 0; }
|
||||
.fa-ul > li {
|
||||
position: relative; }
|
||||
|
||||
.fa-li {
|
||||
left: -2em;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
width: 2em;
|
||||
line-height: inherit; }
|
||||
|
||||
.fa-border {
|
||||
border: solid 0.08em #eee;
|
||||
border-radius: .1em;
|
||||
padding: .2em .25em .15em; }
|
||||
|
||||
.fa-pull-left {
|
||||
float: left; }
|
||||
|
||||
.fa-pull-right {
|
||||
float: right; }
|
||||
|
||||
.fa.fa-pull-left,
|
||||
.fas.fa-pull-left,
|
||||
.far.fa-pull-left,
|
||||
.fal.fa-pull-left,
|
||||
.fab.fa-pull-left {
|
||||
margin-right: .3em; }
|
||||
|
||||
.fa.fa-pull-right,
|
||||
.fas.fa-pull-right,
|
||||
.far.fa-pull-right,
|
||||
.fal.fa-pull-right,
|
||||
.fab.fa-pull-right {
|
||||
margin-left: .3em; }
|
||||
|
||||
.fa-spin {
|
||||
-webkit-animation: fa-spin 2s infinite linear;
|
||||
animation: fa-spin 2s infinite linear; }
|
||||
|
||||
.fa-pulse {
|
||||
-webkit-animation: fa-spin 1s infinite steps(8);
|
||||
animation: fa-spin 1s infinite steps(8); }
|
||||
|
||||
@-webkit-keyframes fa-spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
@keyframes fa-spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
.fa-rotate-90 {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
|
||||
-webkit-transform: rotate(90deg);
|
||||
transform: rotate(90deg); }
|
||||
|
||||
.fa-rotate-180 {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
|
||||
-webkit-transform: rotate(180deg);
|
||||
transform: rotate(180deg); }
|
||||
|
||||
.fa-rotate-270 {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
|
||||
-webkit-transform: rotate(270deg);
|
||||
transform: rotate(270deg); }
|
||||
|
||||
.fa-flip-horizontal {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
|
||||
-webkit-transform: scale(-1, 1);
|
||||
transform: scale(-1, 1); }
|
||||
|
||||
.fa-flip-vertical {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
|
||||
-webkit-transform: scale(1, -1);
|
||||
transform: scale(1, -1); }
|
||||
|
||||
.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
|
||||
-webkit-transform: scale(-1, -1);
|
||||
transform: scale(-1, -1); }
|
||||
|
||||
:root .fa-rotate-90,
|
||||
:root .fa-rotate-180,
|
||||
:root .fa-rotate-270,
|
||||
:root .fa-flip-horizontal,
|
||||
:root .fa-flip-vertical,
|
||||
:root .fa-flip-both {
|
||||
-webkit-filter: none;
|
||||
filter: none; }
|
||||
|
||||
.fa-stack {
|
||||
display: inline-block;
|
||||
height: 2em;
|
||||
position: relative;
|
||||
width: 2.5em; }
|
||||
|
||||
.fa-stack-1x,
|
||||
.fa-stack-2x {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0; }
|
||||
|
||||
.svg-inline--fa.fa-stack-1x {
|
||||
height: 1em;
|
||||
width: 1.25em; }
|
||||
|
||||
.svg-inline--fa.fa-stack-2x {
|
||||
height: 2em;
|
||||
width: 2.5em; }
|
||||
|
||||
.fa-inverse {
|
||||
color: #fff; }
|
||||
|
||||
.sr-only {
|
||||
border: 0;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px; }
|
||||
|
||||
.sr-only-focusable:active, .sr-only-focusable:focus {
|
||||
clip: auto;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
overflow: visible;
|
||||
position: static;
|
||||
width: auto; }
|
||||
|
||||
.svg-inline--fa .fa-primary {
|
||||
fill: var(--fa-primary-color, currentColor);
|
||||
opacity: 1;
|
||||
opacity: var(--fa-primary-opacity, 1); }
|
||||
|
||||
.svg-inline--fa .fa-secondary {
|
||||
fill: var(--fa-secondary-color, currentColor);
|
||||
opacity: 0.4;
|
||||
opacity: var(--fa-secondary-opacity, 0.4); }
|
||||
|
||||
.svg-inline--fa.fa-swap-opacity .fa-primary {
|
||||
opacity: 0.4;
|
||||
opacity: var(--fa-secondary-opacity, 0.4); }
|
||||
|
||||
.svg-inline--fa.fa-swap-opacity .fa-secondary {
|
||||
opacity: 1;
|
||||
opacity: var(--fa-primary-opacity, 1); }
|
||||
|
||||
.svg-inline--fa mask .fa-primary,
|
||||
.svg-inline--fa mask .fa-secondary {
|
||||
fill: black; }
|
||||
|
||||
.fad.fa-inverse {
|
||||
color: #fff; }
|
||||
5
public/js/plugins/fontawesome/css/svg-with-js.min.css
vendored
Normal file
2172
public/js/plugins/fontawesome/css/v4-shims.css
vendored
Normal file
5
public/js/plugins/fontawesome/css/v4-shims.min.css
vendored
Normal file
4391
public/js/plugins/fontawesome/js/all.js
vendored
Normal file
5
public/js/plugins/fontawesome/js/all.min.js
vendored
Normal file
571
public/js/plugins/fontawesome/js/brands.js
vendored
Normal file
5
public/js/plugins/fontawesome/js/brands.min.js
vendored
Normal file
998
public/js/plugins/fontawesome/js/conflict-detection.js
vendored
Normal file
@@ -0,0 +1,998 @@
|
||||
/*!
|
||||
* Font Awesome Free 5.12.1 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(factory((global['fontawesome-free-conflict-detection'] = {})));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
function _typeof(obj) {
|
||||
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
|
||||
_typeof = function (obj) {
|
||||
return typeof obj;
|
||||
};
|
||||
} else {
|
||||
_typeof = function (obj) {
|
||||
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
||||
};
|
||||
}
|
||||
|
||||
return _typeof(obj);
|
||||
}
|
||||
|
||||
function _defineProperty(obj, key, value) {
|
||||
if (key in obj) {
|
||||
Object.defineProperty(obj, key, {
|
||||
value: value,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
writable: true
|
||||
});
|
||||
} else {
|
||||
obj[key] = value;
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
function _objectSpread(target) {
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
var source = arguments[i] != null ? arguments[i] : {};
|
||||
var ownKeys = Object.keys(source);
|
||||
|
||||
if (typeof Object.getOwnPropertySymbols === 'function') {
|
||||
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
|
||||
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
||||
}));
|
||||
}
|
||||
|
||||
ownKeys.forEach(function (key) {
|
||||
_defineProperty(target, key, source[key]);
|
||||
});
|
||||
}
|
||||
|
||||
return target;
|
||||
}
|
||||
|
||||
var _WINDOW = {};
|
||||
var _DOCUMENT = {};
|
||||
|
||||
try {
|
||||
if (typeof window !== 'undefined') _WINDOW = window;
|
||||
if (typeof document !== 'undefined') _DOCUMENT = document;
|
||||
} catch (e) {}
|
||||
|
||||
var _ref = _WINDOW.navigator || {},
|
||||
_ref$userAgent = _ref.userAgent,
|
||||
userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;
|
||||
|
||||
var WINDOW = _WINDOW;
|
||||
var DOCUMENT = _DOCUMENT;
|
||||
var IS_BROWSER = !!WINDOW.document;
|
||||
var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';
|
||||
var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
|
||||
|
||||
var functions = [];
|
||||
|
||||
var listener = function listener() {
|
||||
DOCUMENT.removeEventListener('DOMContentLoaded', listener);
|
||||
loaded = 1;
|
||||
functions.map(function (fn) {
|
||||
return fn();
|
||||
});
|
||||
};
|
||||
|
||||
var loaded = false;
|
||||
|
||||
if (IS_DOM) {
|
||||
loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);
|
||||
if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);
|
||||
}
|
||||
|
||||
function domready (fn) {
|
||||
if (!IS_DOM) return;
|
||||
loaded ? setTimeout(fn, 0) : functions.push(fn);
|
||||
}
|
||||
|
||||
function report (_ref) {
|
||||
var nodesTested = _ref.nodesTested,
|
||||
nodesFound = _ref.nodesFound;
|
||||
var timedOutTests = {};
|
||||
|
||||
for (var key in nodesFound) {
|
||||
if (!(nodesTested.conflict[key] || nodesTested.noConflict[key])) {
|
||||
timedOutTests[key] = nodesFound[key];
|
||||
}
|
||||
}
|
||||
|
||||
var conflictsCount = Object.keys(nodesTested.conflict).length;
|
||||
|
||||
if (conflictsCount > 0) {
|
||||
console.info("%cConflict".concat(conflictsCount > 1 ? 's' : '', " found:"), 'color: darkred; font-size: large');
|
||||
var data = {};
|
||||
|
||||
for (var _key in nodesTested.conflict) {
|
||||
var item = nodesTested.conflict[_key];
|
||||
data[_key] = {
|
||||
'tagName': item.tagName,
|
||||
'src/href': item.src || item.href || 'n/a',
|
||||
'innerText excerpt': item.innerText && item.innerText !== '' ? item.innerText.slice(0, 200) + '...' : '(empty)'
|
||||
};
|
||||
}
|
||||
|
||||
console.table(data);
|
||||
}
|
||||
|
||||
var noConflictsCount = Object.keys(nodesTested.noConflict).length;
|
||||
|
||||
if (noConflictsCount > 0) {
|
||||
console.info("%cNo conflict".concat(noConflictsCount > 1 ? 's' : '', " found with ").concat(noConflictsCount == 1 ? 'this' : 'these', ":"), 'color: green; font-size: large');
|
||||
var _data = {};
|
||||
|
||||
for (var _key2 in nodesTested.noConflict) {
|
||||
var _item = nodesTested.noConflict[_key2];
|
||||
_data[_key2] = {
|
||||
'tagName': _item.tagName,
|
||||
'src/href': _item.src || _item.href || 'n/a',
|
||||
'innerText excerpt': _item.innerText && _item.innerText !== '' ? _item.innerText.slice(0, 200) + '...' : '(empty)'
|
||||
};
|
||||
}
|
||||
|
||||
console.table(_data);
|
||||
}
|
||||
|
||||
var timeOutCount = Object.keys(timedOutTests).length;
|
||||
|
||||
if (timeOutCount > 0) {
|
||||
console.info("%cLeftovers--we timed out before collecting test results for ".concat(timeOutCount == 1 ? 'this' : 'these', ":"), 'color: blue; font-size: large');
|
||||
var _data2 = {};
|
||||
|
||||
for (var _key3 in timedOutTests) {
|
||||
var _item2 = timedOutTests[_key3];
|
||||
_data2[_key3] = {
|
||||
'tagName': _item2.tagName,
|
||||
'src/href': _item2.src || _item2.href || 'n/a',
|
||||
'innerText excerpt': _item2.innerText && _item2.innerText !== '' ? _item2.innerText.slice(0, 200) + '...' : '(empty)'
|
||||
};
|
||||
}
|
||||
|
||||
console.table(_data2);
|
||||
}
|
||||
}
|
||||
|
||||
var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
||||
|
||||
function createCommonjsModule(fn, module) {
|
||||
return module = { exports: {} }, fn(module, module.exports), module.exports;
|
||||
}
|
||||
|
||||
var md5 = createCommonjsModule(function (module) {
|
||||
|
||||
(function ($) {
|
||||
/**
|
||||
* Add integers, wrapping at 2^32.
|
||||
* This uses 16-bit operations internally to work around bugs in interpreters.
|
||||
*
|
||||
* @param {number} x First integer
|
||||
* @param {number} y Second integer
|
||||
* @returns {number} Sum
|
||||
*/
|
||||
|
||||
function safeAdd(x, y) {
|
||||
var lsw = (x & 0xffff) + (y & 0xffff);
|
||||
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
||||
return msw << 16 | lsw & 0xffff;
|
||||
}
|
||||
/**
|
||||
* Bitwise rotate a 32-bit number to the left.
|
||||
*
|
||||
* @param {number} num 32-bit number
|
||||
* @param {number} cnt Rotation count
|
||||
* @returns {number} Rotated number
|
||||
*/
|
||||
|
||||
|
||||
function bitRotateLeft(num, cnt) {
|
||||
return num << cnt | num >>> 32 - cnt;
|
||||
}
|
||||
/**
|
||||
* Basic operation the algorithm uses.
|
||||
*
|
||||
* @param {number} q q
|
||||
* @param {number} a a
|
||||
* @param {number} b b
|
||||
* @param {number} x x
|
||||
* @param {number} s s
|
||||
* @param {number} t t
|
||||
* @returns {number} Result
|
||||
*/
|
||||
|
||||
|
||||
function md5cmn(q, a, b, x, s, t) {
|
||||
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
|
||||
}
|
||||
/**
|
||||
* Basic operation the algorithm uses.
|
||||
*
|
||||
* @param {number} a a
|
||||
* @param {number} b b
|
||||
* @param {number} c c
|
||||
* @param {number} d d
|
||||
* @param {number} x x
|
||||
* @param {number} s s
|
||||
* @param {number} t t
|
||||
* @returns {number} Result
|
||||
*/
|
||||
|
||||
|
||||
function md5ff(a, b, c, d, x, s, t) {
|
||||
return md5cmn(b & c | ~b & d, a, b, x, s, t);
|
||||
}
|
||||
/**
|
||||
* Basic operation the algorithm uses.
|
||||
*
|
||||
* @param {number} a a
|
||||
* @param {number} b b
|
||||
* @param {number} c c
|
||||
* @param {number} d d
|
||||
* @param {number} x x
|
||||
* @param {number} s s
|
||||
* @param {number} t t
|
||||
* @returns {number} Result
|
||||
*/
|
||||
|
||||
|
||||
function md5gg(a, b, c, d, x, s, t) {
|
||||
return md5cmn(b & d | c & ~d, a, b, x, s, t);
|
||||
}
|
||||
/**
|
||||
* Basic operation the algorithm uses.
|
||||
*
|
||||
* @param {number} a a
|
||||
* @param {number} b b
|
||||
* @param {number} c c
|
||||
* @param {number} d d
|
||||
* @param {number} x x
|
||||
* @param {number} s s
|
||||
* @param {number} t t
|
||||
* @returns {number} Result
|
||||
*/
|
||||
|
||||
|
||||
function md5hh(a, b, c, d, x, s, t) {
|
||||
return md5cmn(b ^ c ^ d, a, b, x, s, t);
|
||||
}
|
||||
/**
|
||||
* Basic operation the algorithm uses.
|
||||
*
|
||||
* @param {number} a a
|
||||
* @param {number} b b
|
||||
* @param {number} c c
|
||||
* @param {number} d d
|
||||
* @param {number} x x
|
||||
* @param {number} s s
|
||||
* @param {number} t t
|
||||
* @returns {number} Result
|
||||
*/
|
||||
|
||||
|
||||
function md5ii(a, b, c, d, x, s, t) {
|
||||
return md5cmn(c ^ (b | ~d), a, b, x, s, t);
|
||||
}
|
||||
/**
|
||||
* Calculate the MD5 of an array of little-endian words, and a bit length.
|
||||
*
|
||||
* @param {Array} x Array of little-endian words
|
||||
* @param {number} len Bit length
|
||||
* @returns {Array<number>} MD5 Array
|
||||
*/
|
||||
|
||||
|
||||
function binlMD5(x, len) {
|
||||
/* append padding */
|
||||
x[len >> 5] |= 0x80 << len % 32;
|
||||
x[(len + 64 >>> 9 << 4) + 14] = len;
|
||||
var i;
|
||||
var olda;
|
||||
var oldb;
|
||||
var oldc;
|
||||
var oldd;
|
||||
var a = 1732584193;
|
||||
var b = -271733879;
|
||||
var c = -1732584194;
|
||||
var d = 271733878;
|
||||
|
||||
for (i = 0; i < x.length; i += 16) {
|
||||
olda = a;
|
||||
oldb = b;
|
||||
oldc = c;
|
||||
oldd = d;
|
||||
a = md5ff(a, b, c, d, x[i], 7, -680876936);
|
||||
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
|
||||
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
|
||||
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
|
||||
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
|
||||
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
|
||||
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
|
||||
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
|
||||
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
|
||||
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
|
||||
c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
|
||||
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
|
||||
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
|
||||
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
|
||||
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
|
||||
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
|
||||
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
|
||||
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
|
||||
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
|
||||
b = md5gg(b, c, d, a, x[i], 20, -373897302);
|
||||
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
|
||||
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
|
||||
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
|
||||
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
|
||||
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
|
||||
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
|
||||
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
|
||||
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
|
||||
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
|
||||
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
|
||||
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
|
||||
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
|
||||
a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
|
||||
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
|
||||
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
|
||||
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
|
||||
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
|
||||
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
|
||||
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
|
||||
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
|
||||
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
|
||||
d = md5hh(d, a, b, c, x[i], 11, -358537222);
|
||||
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
|
||||
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
|
||||
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
|
||||
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
|
||||
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
|
||||
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
|
||||
a = md5ii(a, b, c, d, x[i], 6, -198630844);
|
||||
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
|
||||
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
|
||||
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
|
||||
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
|
||||
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
|
||||
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
|
||||
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
|
||||
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
|
||||
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
|
||||
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
|
||||
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
|
||||
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
|
||||
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
|
||||
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
|
||||
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
|
||||
a = safeAdd(a, olda);
|
||||
b = safeAdd(b, oldb);
|
||||
c = safeAdd(c, oldc);
|
||||
d = safeAdd(d, oldd);
|
||||
}
|
||||
|
||||
return [a, b, c, d];
|
||||
}
|
||||
/**
|
||||
* Convert an array of little-endian words to a string
|
||||
*
|
||||
* @param {Array<number>} input MD5 Array
|
||||
* @returns {string} MD5 string
|
||||
*/
|
||||
|
||||
|
||||
function binl2rstr(input) {
|
||||
var i;
|
||||
var output = '';
|
||||
var length32 = input.length * 32;
|
||||
|
||||
for (i = 0; i < length32; i += 8) {
|
||||
output += String.fromCharCode(input[i >> 5] >>> i % 32 & 0xff);
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
/**
|
||||
* Convert a raw string to an array of little-endian words
|
||||
* Characters >255 have their high-byte silently ignored.
|
||||
*
|
||||
* @param {string} input Raw input string
|
||||
* @returns {Array<number>} Array of little-endian words
|
||||
*/
|
||||
|
||||
|
||||
function rstr2binl(input) {
|
||||
var i;
|
||||
var output = [];
|
||||
output[(input.length >> 2) - 1] = undefined;
|
||||
|
||||
for (i = 0; i < output.length; i += 1) {
|
||||
output[i] = 0;
|
||||
}
|
||||
|
||||
var length8 = input.length * 8;
|
||||
|
||||
for (i = 0; i < length8; i += 8) {
|
||||
output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << i % 32;
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
/**
|
||||
* Calculate the MD5 of a raw string
|
||||
*
|
||||
* @param {string} s Input string
|
||||
* @returns {string} Raw MD5 string
|
||||
*/
|
||||
|
||||
|
||||
function rstrMD5(s) {
|
||||
return binl2rstr(binlMD5(rstr2binl(s), s.length * 8));
|
||||
}
|
||||
/**
|
||||
* Calculates the HMAC-MD5 of a key and some data (raw strings)
|
||||
*
|
||||
* @param {string} key HMAC key
|
||||
* @param {string} data Raw input string
|
||||
* @returns {string} Raw MD5 string
|
||||
*/
|
||||
|
||||
|
||||
function rstrHMACMD5(key, data) {
|
||||
var i;
|
||||
var bkey = rstr2binl(key);
|
||||
var ipad = [];
|
||||
var opad = [];
|
||||
var hash;
|
||||
ipad[15] = opad[15] = undefined;
|
||||
|
||||
if (bkey.length > 16) {
|
||||
bkey = binlMD5(bkey, key.length * 8);
|
||||
}
|
||||
|
||||
for (i = 0; i < 16; i += 1) {
|
||||
ipad[i] = bkey[i] ^ 0x36363636;
|
||||
opad[i] = bkey[i] ^ 0x5c5c5c5c;
|
||||
}
|
||||
|
||||
hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8);
|
||||
return binl2rstr(binlMD5(opad.concat(hash), 512 + 128));
|
||||
}
|
||||
/**
|
||||
* Convert a raw string to a hex string
|
||||
*
|
||||
* @param {string} input Raw input string
|
||||
* @returns {string} Hex encoded string
|
||||
*/
|
||||
|
||||
|
||||
function rstr2hex(input) {
|
||||
var hexTab = '0123456789abcdef';
|
||||
var output = '';
|
||||
var x;
|
||||
var i;
|
||||
|
||||
for (i = 0; i < input.length; i += 1) {
|
||||
x = input.charCodeAt(i);
|
||||
output += hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f);
|
||||
}
|
||||
|
||||
return output;
|
||||
}
|
||||
/**
|
||||
* Encode a string as UTF-8
|
||||
*
|
||||
* @param {string} input Input string
|
||||
* @returns {string} UTF8 string
|
||||
*/
|
||||
|
||||
|
||||
function str2rstrUTF8(input) {
|
||||
return unescape(encodeURIComponent(input));
|
||||
}
|
||||
/**
|
||||
* Encodes input string as raw MD5 string
|
||||
*
|
||||
* @param {string} s Input string
|
||||
* @returns {string} Raw MD5 string
|
||||
*/
|
||||
|
||||
|
||||
function rawMD5(s) {
|
||||
return rstrMD5(str2rstrUTF8(s));
|
||||
}
|
||||
/**
|
||||
* Encodes input string as Hex encoded string
|
||||
*
|
||||
* @param {string} s Input string
|
||||
* @returns {string} Hex encoded string
|
||||
*/
|
||||
|
||||
|
||||
function hexMD5(s) {
|
||||
return rstr2hex(rawMD5(s));
|
||||
}
|
||||
/**
|
||||
* Calculates the raw HMAC-MD5 for the given key and data
|
||||
*
|
||||
* @param {string} k HMAC key
|
||||
* @param {string} d Input string
|
||||
* @returns {string} Raw MD5 string
|
||||
*/
|
||||
|
||||
|
||||
function rawHMACMD5(k, d) {
|
||||
return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d));
|
||||
}
|
||||
/**
|
||||
* Calculates the Hex encoded HMAC-MD5 for the given key and data
|
||||
*
|
||||
* @param {string} k HMAC key
|
||||
* @param {string} d Input string
|
||||
* @returns {string} Raw MD5 string
|
||||
*/
|
||||
|
||||
|
||||
function hexHMACMD5(k, d) {
|
||||
return rstr2hex(rawHMACMD5(k, d));
|
||||
}
|
||||
/**
|
||||
* Calculates MD5 value for a given string.
|
||||
* If a key is provided, calculates the HMAC-MD5 value.
|
||||
* Returns a Hex encoded string unless the raw argument is given.
|
||||
*
|
||||
* @param {string} string Input string
|
||||
* @param {string} [key] HMAC key
|
||||
* @param {boolean} raw Raw oytput switch
|
||||
* @returns {string} MD5 output
|
||||
*/
|
||||
|
||||
|
||||
function md5(string, key, raw) {
|
||||
if (!key) {
|
||||
if (!raw) {
|
||||
return hexMD5(string);
|
||||
}
|
||||
|
||||
return rawMD5(string);
|
||||
}
|
||||
|
||||
if (!raw) {
|
||||
return hexHMACMD5(key, string);
|
||||
}
|
||||
|
||||
return rawHMACMD5(key, string);
|
||||
}
|
||||
|
||||
if (module.exports) {
|
||||
module.exports = md5;
|
||||
} else {
|
||||
$.md5 = md5;
|
||||
}
|
||||
})(commonjsGlobal);
|
||||
});
|
||||
|
||||
function md5ForNode(node) {
|
||||
if (null === node || 'object' !== _typeof(node)) return undefined;
|
||||
|
||||
if (node.src) {
|
||||
return md5(node.src);
|
||||
} else if (node.href) {
|
||||
return md5(node.href);
|
||||
} else if (node.innerText && '' !== node.innerText) {
|
||||
// eslint-disable-line yoda
|
||||
return md5(node.innerText);
|
||||
} else {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
var diagScriptId = 'fa-kits-diag';
|
||||
var nodeUnderTestId = 'fa-kits-node-under-test';
|
||||
var md5Attr = 'data-md5';
|
||||
var detectionIgnoreAttr = 'data-fa-detection-ignore';
|
||||
var timeoutAttr = 'data-fa-detection-timeout';
|
||||
var resultsCollectionMaxWaitAttr = 'data-fa-detection-results-collection-max-wait';
|
||||
|
||||
var silenceErrors = function silenceErrors(e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
};
|
||||
|
||||
function pollUntil(_ref) {
|
||||
var _ref$fn = _ref.fn,
|
||||
fn = _ref$fn === void 0 ? function () {
|
||||
return true;
|
||||
} : _ref$fn,
|
||||
_ref$initialDuration = _ref.initialDuration,
|
||||
initialDuration = _ref$initialDuration === void 0 ? 1 : _ref$initialDuration,
|
||||
_ref$maxDuration = _ref.maxDuration,
|
||||
maxDuration = _ref$maxDuration === void 0 ? WINDOW.FontAwesomeDetection.timeout : _ref$maxDuration,
|
||||
_ref$showProgress = _ref.showProgress,
|
||||
showProgress = _ref$showProgress === void 0 ? false : _ref$showProgress,
|
||||
progressIndicator = _ref.progressIndicator;
|
||||
return new Promise(function (resolve, reject) {
|
||||
// eslint-disable-line compat/compat
|
||||
function poll(duration, cumulativeDuration) {
|
||||
setTimeout(function () {
|
||||
var result = fn();
|
||||
|
||||
if (showProgress) {
|
||||
console.info(progressIndicator);
|
||||
}
|
||||
|
||||
if (!!result) {
|
||||
// eslint-disable-line no-extra-boolean-cast
|
||||
resolve(result);
|
||||
} else {
|
||||
var nextDuration = 250;
|
||||
var nextCumulativeDuration = nextDuration + cumulativeDuration;
|
||||
|
||||
if (nextCumulativeDuration <= maxDuration) {
|
||||
poll(nextDuration, nextCumulativeDuration);
|
||||
} else {
|
||||
reject('timeout'); // eslint-disable-line prefer-promise-reject-errors
|
||||
}
|
||||
}
|
||||
}, duration);
|
||||
}
|
||||
|
||||
poll(initialDuration, 0);
|
||||
});
|
||||
}
|
||||
|
||||
function detectWebfontConflicts() {
|
||||
var linkTags = Array.from(DOCUMENT.getElementsByTagName('link')).filter(function (t) {
|
||||
return !t.hasAttribute(detectionIgnoreAttr);
|
||||
});
|
||||
var styleTags = Array.from(DOCUMENT.getElementsByTagName('style')).filter(function (t) {
|
||||
if (t.hasAttribute(detectionIgnoreAttr)) {
|
||||
return false;
|
||||
} // If the browser has loaded the FA5 CSS, let's not test that <style> element.
|
||||
// Its enough that we'll be testing for traces of the corresponding JS being loaded, and testing
|
||||
// this <style> would only produce a false negative anyway.
|
||||
|
||||
|
||||
if (WINDOW.FontAwesomeConfig && t.innerText.match(new RegExp("svg:not\\(:root\\)\\.".concat(WINDOW.FontAwesomeConfig.replacementClass)))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
function runDiag(scriptOrLinkTag, md5) {
|
||||
var diagFrame = DOCUMENT.createElement('iframe'); // Using "visibility: hidden; position: absolute" instead of "display: none;" because
|
||||
// Firefox will not return the expected results for getComputedStyle if our iframe has display: none.
|
||||
|
||||
diagFrame.setAttribute('style', 'visibility: hidden; position: absolute; height: 0; width: 0;');
|
||||
var testIconId = 'fa-test-icon-' + md5;
|
||||
var iTag = DOCUMENT.createElement('i');
|
||||
iTag.setAttribute('class', 'fa fa-coffee');
|
||||
iTag.setAttribute('id', testIconId);
|
||||
var diagScript = DOCUMENT.createElement('script');
|
||||
diagScript.setAttribute('id', diagScriptId); // WARNING: this function will be toString()'d and assigned to innerText of the diag script
|
||||
// element that we'll be putting into a diagnostic iframe.
|
||||
// That means that this code won't compile until after the outer script has run and injected
|
||||
// this code into the iframe. There are some compile time errors that might occur there.
|
||||
// For example, using single line (double-slash) comments like this one inside that function
|
||||
// will probably cause it to choke. Chrome will show an error like this:
|
||||
// Uncaught SyntaxError: Unexpected end of input
|
||||
|
||||
var diagScriptFun = function diagScriptFun(nodeUnderTestId, testIconId, md5, parentOrigin) {
|
||||
parent.FontAwesomeDetection.__pollUntil({
|
||||
fn: function fn() {
|
||||
var iEl = document.getElementById(testIconId);
|
||||
var computedStyle = window.getComputedStyle(iEl);
|
||||
var fontFamily = computedStyle.getPropertyValue('font-family');
|
||||
|
||||
if (!!fontFamily.match(/FontAwesome/) || !!fontFamily.match(/Font Awesome 5/)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}).then(function () {
|
||||
var node = document.getElementById(nodeUnderTestId);
|
||||
parent.postMessage({
|
||||
type: 'fontawesome-conflict',
|
||||
technology: 'webfont',
|
||||
href: node.href,
|
||||
innerText: node.innerText,
|
||||
tagName: node.tagName,
|
||||
md5: md5
|
||||
}, parentOrigin);
|
||||
}).catch(function (e) {
|
||||
var node = document.getElementById(nodeUnderTestId);
|
||||
|
||||
if (e === 'timeout') {
|
||||
parent.postMessage({
|
||||
type: 'no-conflict',
|
||||
technology: 'webfont',
|
||||
href: node.src,
|
||||
innerText: node.innerText,
|
||||
tagName: node.tagName,
|
||||
md5: md5
|
||||
}, parentOrigin);
|
||||
} else {
|
||||
console.error(e);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
var parentOrigin = WINDOW.location.origin === 'file://' ? '*' : WINDOW.location.origin;
|
||||
diagScript.innerText = "(".concat(diagScriptFun.toString(), ")('").concat(nodeUnderTestId, "', '").concat(testIconId || 'foo', "', '").concat(md5, "', '").concat(parentOrigin, "');");
|
||||
|
||||
diagFrame.onload = function () {
|
||||
diagFrame.contentWindow.addEventListener('error', silenceErrors, true);
|
||||
diagFrame.contentDocument.head.appendChild(diagScript);
|
||||
diagFrame.contentDocument.head.appendChild(scriptOrLinkTag);
|
||||
diagFrame.contentDocument.body.appendChild(iTag);
|
||||
};
|
||||
|
||||
domready(function () {
|
||||
return DOCUMENT.body.appendChild(diagFrame);
|
||||
});
|
||||
}
|
||||
|
||||
var cssByMD5 = {};
|
||||
|
||||
for (var i = 0; i < linkTags.length; i++) {
|
||||
var linkUnderTest = DOCUMENT.createElement('link');
|
||||
linkUnderTest.setAttribute('id', nodeUnderTestId);
|
||||
linkUnderTest.setAttribute('href', linkTags[i].href);
|
||||
linkUnderTest.setAttribute('rel', linkTags[i].rel);
|
||||
var md5ForLink = md5ForNode(linkTags[i]);
|
||||
linkUnderTest.setAttribute(md5Attr, md5ForLink);
|
||||
cssByMD5[md5ForLink] = linkTags[i];
|
||||
runDiag(linkUnderTest, md5ForLink);
|
||||
}
|
||||
|
||||
for (var _i = 0; _i < styleTags.length; _i++) {
|
||||
var styleUnderTest = DOCUMENT.createElement('style');
|
||||
styleUnderTest.setAttribute('id', nodeUnderTestId);
|
||||
var md5ForStyle = md5ForNode(styleTags[_i]);
|
||||
styleUnderTest.setAttribute(md5Attr, md5ForStyle);
|
||||
styleUnderTest.innerText = styleTags[_i].innerText;
|
||||
cssByMD5[md5ForStyle] = styleTags[_i];
|
||||
runDiag(styleUnderTest, md5ForStyle);
|
||||
}
|
||||
|
||||
return cssByMD5;
|
||||
}
|
||||
|
||||
function detectSvgConflicts(currentScript) {
|
||||
var scripts = Array.from(DOCUMENT.scripts).filter(function (t) {
|
||||
return !t.hasAttribute(detectionIgnoreAttr) && t !== currentScript;
|
||||
});
|
||||
var scriptsByMD5 = {};
|
||||
|
||||
var _loop = function _loop(scriptIdx) {
|
||||
var diagFrame = DOCUMENT.createElement('iframe');
|
||||
diagFrame.setAttribute('style', 'display:none;');
|
||||
var scriptUnderTest = DOCUMENT.createElement('script');
|
||||
scriptUnderTest.setAttribute('id', nodeUnderTestId);
|
||||
var md5ForScript = md5ForNode(scripts[scriptIdx]);
|
||||
scriptUnderTest.setAttribute(md5Attr, md5ForScript);
|
||||
scriptsByMD5[md5ForScript] = scripts[scriptIdx];
|
||||
|
||||
if (scripts[scriptIdx].src !== '') {
|
||||
scriptUnderTest.src = scripts[scriptIdx].src;
|
||||
}
|
||||
|
||||
if (scripts[scriptIdx].innerText !== '') {
|
||||
scriptUnderTest.innerText = scripts[scriptIdx].innerText;
|
||||
}
|
||||
|
||||
scriptUnderTest.async = true;
|
||||
var diagScript = DOCUMENT.createElement('script');
|
||||
diagScript.setAttribute('id', diagScriptId);
|
||||
var parentOrigin = WINDOW.location.origin === 'file://' ? '*' : WINDOW.location.origin;
|
||||
|
||||
var diagScriptFun = function diagScriptFun(nodeUnderTestId, md5, parentOrigin) {
|
||||
parent.FontAwesomeDetection.__pollUntil({
|
||||
fn: function fn() {
|
||||
return !!window.FontAwesomeConfig;
|
||||
}
|
||||
}).then(function () {
|
||||
var scriptNode = document.getElementById(nodeUnderTestId);
|
||||
parent.postMessage({
|
||||
type: 'fontawesome-conflict',
|
||||
technology: 'js',
|
||||
src: scriptNode.src,
|
||||
innerText: scriptNode.innerText,
|
||||
tagName: scriptNode.tagName,
|
||||
md5: md5
|
||||
}, parentOrigin);
|
||||
}).catch(function (e) {
|
||||
var scriptNode = document.getElementById(nodeUnderTestId);
|
||||
|
||||
if (e === 'timeout') {
|
||||
parent.postMessage({
|
||||
type: 'no-conflict',
|
||||
src: scriptNode.src,
|
||||
innerText: scriptNode.innerText,
|
||||
tagName: scriptNode.tagName,
|
||||
md5: md5
|
||||
}, parentOrigin);
|
||||
} else {
|
||||
console.error(e);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
diagScript.innerText = "(".concat(diagScriptFun.toString(), ")('").concat(nodeUnderTestId, "', '").concat(md5ForScript, "', '").concat(parentOrigin, "');");
|
||||
|
||||
diagFrame.onload = function () {
|
||||
diagFrame.contentWindow.addEventListener('error', silenceErrors, true);
|
||||
diagFrame.contentDocument.head.appendChild(diagScript);
|
||||
diagFrame.contentDocument.head.appendChild(scriptUnderTest);
|
||||
};
|
||||
|
||||
domready(function () {
|
||||
return DOCUMENT.body.appendChild(diagFrame);
|
||||
});
|
||||
};
|
||||
|
||||
for (var scriptIdx = 0; scriptIdx < scripts.length; scriptIdx++) {
|
||||
_loop(scriptIdx);
|
||||
}
|
||||
|
||||
return scriptsByMD5;
|
||||
}
|
||||
|
||||
function setDoneResults(_ref2) {
|
||||
var nodesTested = _ref2.nodesTested,
|
||||
nodesFound = _ref2.nodesFound;
|
||||
WINDOW.FontAwesomeDetection = WINDOW.FontAwesomeDetection || {};
|
||||
WINDOW.FontAwesomeDetection.nodesTested = nodesTested;
|
||||
WINDOW.FontAwesomeDetection.nodesFound = nodesFound;
|
||||
WINDOW.FontAwesomeDetection.detectionDone = true;
|
||||
}
|
||||
|
||||
function conflictDetection() {
|
||||
var report$$1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};
|
||||
var nodesTested = {
|
||||
conflict: {},
|
||||
noConflict: {}
|
||||
};
|
||||
|
||||
WINDOW.onmessage = function (e) {
|
||||
if (WINDOW.location.origin === 'file://' || e.origin === WINDOW.location.origin) {
|
||||
if (e && e.data) {
|
||||
if (e.data.type === 'fontawesome-conflict') {
|
||||
nodesTested.conflict[e.data.md5] = e.data;
|
||||
} else if (e.data.type === 'no-conflict') {
|
||||
nodesTested.noConflict[e.data.md5] = e.data;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var scriptsToTest = detectSvgConflicts(DOCUMENT.currentScript);
|
||||
var cssToTest = detectWebfontConflicts();
|
||||
|
||||
var nodesFound = _objectSpread({}, scriptsToTest, cssToTest);
|
||||
|
||||
var testCount = Object.keys(scriptsToTest).length + Object.keys(cssToTest).length; // The resultsCollectionMaxWait allows for the time between when the tests running under
|
||||
// child iframes call postMessage with their results, and when the parent window
|
||||
// receives and handles those events with window.onmessage.
|
||||
// Making it configurable allows us to test the scenario where this timeout is exceeded.
|
||||
// Naming it something very different from "timeout" is to help avoid the potential ambiguity between
|
||||
// these two timeout-related settings.
|
||||
|
||||
var masterTimeout = WINDOW.FontAwesomeDetection.timeout + WINDOW.FontAwesomeDetection.resultsCollectionMaxWait;
|
||||
console.group('Font Awesome Detector');
|
||||
|
||||
if (testCount === 0) {
|
||||
console.info('%cAll Good!', 'color: green; font-size: large');
|
||||
console.info('We didn\'t find anything that needs testing for conflicts. Ergo, no conflicts.');
|
||||
} else {
|
||||
console.info("Testing ".concat(testCount, " possible conflicts."));
|
||||
console.info("We'll wait about ".concat(Math.round(WINDOW.FontAwesomeDetection.timeout / 10) / 100, " seconds while testing these and\n") + "then up to another ".concat(Math.round(WINDOW.FontAwesomeDetection.resultsCollectionMaxWait / 10) / 100, " to allow the browser time\n") + "to accumulate the results. But we'll probably be outta here way before then.\n\n");
|
||||
console.info("You can adjust those durations by assigning values to these attributes on the <script> element that loads this detection:");
|
||||
console.info("\t%c".concat(timeoutAttr, "%c: milliseconds to wait for each test before deciding whether it's a conflict."), 'font-weight: bold;', 'font-size: normal;');
|
||||
console.info("\t%c".concat(resultsCollectionMaxWaitAttr, "%c: milliseconds to wait for the browser to accumulate test results before giving up."), 'font-weight: bold;', 'font-size: normal;');
|
||||
pollUntil({
|
||||
// Give this overall timer a little extra cushion
|
||||
maxDuration: masterTimeout,
|
||||
showProgress: true,
|
||||
progressIndicator: 'waiting...',
|
||||
fn: function fn() {
|
||||
return Object.keys(nodesTested.conflict).length + Object.keys(nodesTested.noConflict).length >= testCount;
|
||||
}
|
||||
}).then(function () {
|
||||
console.info('DONE!');
|
||||
setDoneResults({
|
||||
nodesTested: nodesTested,
|
||||
nodesFound: nodesFound
|
||||
});
|
||||
report$$1({
|
||||
nodesTested: nodesTested,
|
||||
nodesFound: nodesFound
|
||||
});
|
||||
console.groupEnd();
|
||||
}).catch(function (e) {
|
||||
if (e === 'timeout') {
|
||||
console.info('TIME OUT! We waited until we got tired. Here\'s what we found:');
|
||||
setDoneResults({
|
||||
nodesTested: nodesTested,
|
||||
nodesFound: nodesFound
|
||||
});
|
||||
report$$1({
|
||||
nodesTested: nodesTested,
|
||||
nodesFound: nodesFound
|
||||
});
|
||||
} else {
|
||||
console.info('Whoops! We hit an error:', e);
|
||||
console.info('Here\'s what we\'d found up until that error:');
|
||||
setDoneResults({
|
||||
nodesTested: nodesTested,
|
||||
nodesFound: nodesFound
|
||||
});
|
||||
report$$1({
|
||||
nodesTested: nodesTested,
|
||||
nodesFound: nodesFound
|
||||
});
|
||||
}
|
||||
|
||||
console.groupEnd();
|
||||
});
|
||||
}
|
||||
} // Allow clients to access, and in some cases, override some properties
|
||||
|
||||
var initialConfig = WINDOW.FontAwesomeDetection || {}; // These can be overridden
|
||||
|
||||
var _default = {
|
||||
report: report,
|
||||
timeout: +(DOCUMENT.currentScript.getAttribute(timeoutAttr) || "2000"),
|
||||
resultsCollectionMaxWait: +(DOCUMENT.currentScript.getAttribute(resultsCollectionMaxWaitAttr) || "5000")
|
||||
};
|
||||
|
||||
var _config = _objectSpread({}, _default, initialConfig, {
|
||||
// These cannot be overridden
|
||||
__pollUntil: pollUntil,
|
||||
md5ForNode: md5ForNode,
|
||||
detectionDone: false,
|
||||
nodesTested: null,
|
||||
nodesFound: null
|
||||
});
|
||||
|
||||
WINDOW.FontAwesomeDetection = _config;
|
||||
|
||||
var PRODUCTION = function () {
|
||||
try {
|
||||
return process.env.NODE_ENV === 'production';
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}();
|
||||
|
||||
function bunker(fn) {
|
||||
try {
|
||||
fn();
|
||||
} catch (e) {
|
||||
if (!PRODUCTION) {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bunker(function () {
|
||||
if (IS_BROWSER && IS_DOM) {
|
||||
conflictDetection(window.FontAwesomeDetection.report);
|
||||
}
|
||||
});
|
||||
|
||||
exports.conflictDetection = conflictDetection;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
||||
5
public/js/plugins/fontawesome/js/conflict-detection.min.js
vendored
Normal file
2459
public/js/plugins/fontawesome/js/fontawesome.js
vendored
Normal file
5
public/js/plugins/fontawesome/js/fontawesome.min.js
vendored
Normal file
280
public/js/plugins/fontawesome/js/regular.js
vendored
Normal file
@@ -0,0 +1,280 @@
|
||||
/*!
|
||||
* Font Awesome Free 5.12.1 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
var _WINDOW = {};
|
||||
var _DOCUMENT = {};
|
||||
|
||||
try {
|
||||
if (typeof window !== 'undefined') _WINDOW = window;
|
||||
if (typeof document !== 'undefined') _DOCUMENT = document;
|
||||
} catch (e) {}
|
||||
|
||||
var _ref = _WINDOW.navigator || {},
|
||||
_ref$userAgent = _ref.userAgent,
|
||||
userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;
|
||||
|
||||
var WINDOW = _WINDOW;
|
||||
var DOCUMENT = _DOCUMENT;
|
||||
var IS_BROWSER = !!WINDOW.document;
|
||||
var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';
|
||||
var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
|
||||
|
||||
var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';
|
||||
var PRODUCTION = function () {
|
||||
try {
|
||||
return "production" === 'production';
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}();
|
||||
|
||||
function bunker(fn) {
|
||||
try {
|
||||
fn();
|
||||
} catch (e) {
|
||||
if (!PRODUCTION) {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function _defineProperty(obj, key, value) {
|
||||
if (key in obj) {
|
||||
Object.defineProperty(obj, key, {
|
||||
value: value,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
writable: true
|
||||
});
|
||||
} else {
|
||||
obj[key] = value;
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
function _objectSpread(target) {
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
var source = arguments[i] != null ? arguments[i] : {};
|
||||
var ownKeys = Object.keys(source);
|
||||
|
||||
if (typeof Object.getOwnPropertySymbols === 'function') {
|
||||
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
|
||||
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
||||
}));
|
||||
}
|
||||
|
||||
ownKeys.forEach(function (key) {
|
||||
_defineProperty(target, key, source[key]);
|
||||
});
|
||||
}
|
||||
|
||||
return target;
|
||||
}
|
||||
|
||||
var w = WINDOW || {};
|
||||
if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};
|
||||
if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};
|
||||
if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};
|
||||
if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];
|
||||
var namespace = w[NAMESPACE_IDENTIFIER];
|
||||
|
||||
function defineIcons(prefix, icons) {
|
||||
var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
||||
var _params$skipHooks = params.skipHooks,
|
||||
skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;
|
||||
var normalized = Object.keys(icons).reduce(function (acc, iconName) {
|
||||
var icon = icons[iconName];
|
||||
var expanded = !!icon.icon;
|
||||
|
||||
if (expanded) {
|
||||
acc[icon.iconName] = icon.icon;
|
||||
} else {
|
||||
acc[iconName] = icon;
|
||||
}
|
||||
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {
|
||||
namespace.hooks.addPack(prefix, normalized);
|
||||
} else {
|
||||
namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);
|
||||
}
|
||||
/**
|
||||
* Font Awesome 4 used the prefix of `fa` for all icons. With the introduction
|
||||
* of new styles we needed to differentiate between them. Prefix `fa` is now an alias
|
||||
* for `fas` so we'll easy the upgrade process for our users by automatically defining
|
||||
* this as well.
|
||||
*/
|
||||
|
||||
|
||||
if (prefix === 'fas') {
|
||||
defineIcons('fa', icons);
|
||||
}
|
||||
}
|
||||
|
||||
var icons = {
|
||||
"address-book": [448, 512, [], "f2b9", "M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"],
|
||||
"address-card": [576, 512, [], "f2bb", "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z"],
|
||||
"angry": [496, 512, [], "f556", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z"],
|
||||
"arrow-alt-circle-down": [512, 512, [], "f358", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z"],
|
||||
"arrow-alt-circle-left": [512, 512, [], "f359", "M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z"],
|
||||
"arrow-alt-circle-right": [512, 512, [], "f35a", "M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z"],
|
||||
"arrow-alt-circle-up": [512, 512, [], "f35b", "M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z"],
|
||||
"bell": [448, 512, [], "f0f3", "M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z"],
|
||||
"bell-slash": [640, 512, [], "f1f6", "M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"],
|
||||
"bookmark": [384, 512, [], "f02e", "M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z"],
|
||||
"building": [448, 512, [], "f1ad", "M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z"],
|
||||
"calendar": [448, 512, [], "f133", "M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z"],
|
||||
"calendar-alt": [448, 512, [], "f073", "M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||
"calendar-check": [448, 512, [], "f274", "M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z"],
|
||||
"calendar-minus": [448, 512, [], "f272", "M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||
"calendar-plus": [448, 512, [], "f271", "M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||
"calendar-times": [448, 512, [], "f273", "M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||
"caret-square-down": [448, 512, [], "f150", "M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||
"caret-square-left": [448, 512, [], "f191", "M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||
"caret-square-right": [448, 512, [], "f152", "M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||
"caret-square-up": [448, 512, [], "f151", "M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||
"chart-bar": [512, 512, [], "f080", "M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z"],
|
||||
"check-circle": [512, 512, [], "f058", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z"],
|
||||
"check-square": [448, 512, [], "f14a", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z"],
|
||||
"circle": [512, 512, [], "f111", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z"],
|
||||
"clipboard": [384, 512, [], "f328", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm144 418c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h42v36c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-36h42c3.3 0 6 2.7 6 6z"],
|
||||
"clock": [512, 512, [], "f017", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z"],
|
||||
"clone": [512, 512, [], "f24d", "M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z"],
|
||||
"closed-captioning": [512, 512, [], "f20a", "M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z"],
|
||||
"comment": [512, 512, [], "f075", "M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"],
|
||||
"comment-alt": [512, 512, [], "f27a", "M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z"],
|
||||
"comment-dots": [512, 512, [], "f4ad", "M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"],
|
||||
"comments": [576, 512, [], "f086", "M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z"],
|
||||
"compass": [496, 512, [], "f14e", "M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"],
|
||||
"copy": [448, 512, [], "f0c5", "M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"],
|
||||
"copyright": [512, 512, [], "f1f9", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z"],
|
||||
"credit-card": [576, 512, [], "f09d", "M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z"],
|
||||
"dizzy": [496, 512, [], "f567", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z"],
|
||||
"dot-circle": [512, 512, [], "f192", "M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z"],
|
||||
"edit": [576, 512, [], "f044", "M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"],
|
||||
"envelope": [512, 512, [], "f0e0", "M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"],
|
||||
"envelope-open": [512, 512, [], "f2b6", "M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z"],
|
||||
"eye": [576, 512, [], "f06e", "M288 144a110.94 110.94 0 0 0-31.24 5 55.4 55.4 0 0 1 7.24 27 56 56 0 0 1-56 56 55.4 55.4 0 0 1-27-7.24A111.71 111.71 0 1 0 288 144zm284.52 97.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400c-98.65 0-189.09-55-237.93-144C98.91 167 189.34 112 288 112s189.09 55 237.93 144C477.1 345 386.66 400 288 400z"],
|
||||
"eye-slash": [640, 512, [], "f070", "M634 471L36 3.51A16 16 0 0 0 13.51 6l-10 12.49A16 16 0 0 0 6 41l598 467.49a16 16 0 0 0 22.49-2.49l10-12.49A16 16 0 0 0 634 471zM296.79 146.47l134.79 105.38C429.36 191.91 380.48 144 320 144a112.26 112.26 0 0 0-23.21 2.47zm46.42 219.07L208.42 260.16C210.65 320.09 259.53 368 320 368a113 113 0 0 0 23.21-2.46zM320 112c98.65 0 189.09 55 237.93 144a285.53 285.53 0 0 1-44 60.2l37.74 29.5a333.7 333.7 0 0 0 52.9-75.11 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64c-36.7 0-71.71 7-104.63 18.81l46.41 36.29c18.94-4.3 38.34-7.1 58.22-7.1zm0 288c-98.65 0-189.08-55-237.93-144a285.47 285.47 0 0 1 44.05-60.19l-37.74-29.5a333.6 333.6 0 0 0-52.89 75.1 32.35 32.35 0 0 0 0 29.19C89.72 376.41 197.08 448 320 448c36.7 0 71.71-7.05 104.63-18.81l-46.41-36.28C359.28 397.2 339.89 400 320 400z"],
|
||||
"file": [384, 512, [], "f15b", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"],
|
||||
"file-alt": [384, 512, [], "f15c", "M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"],
|
||||
"file-archive": [384, 512, [], "f1c6", "M128.3 160v32h32v-32zm64-96h-32v32h32zm-64 32v32h32V96zm64 32h-32v32h32zm177.6-30.1L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h79.7v16h32V48H208v104c0 13.3 10.7 24 24 24h104zM194.2 265.7c-1.1-5.6-6-9.7-11.8-9.7h-22.1v-32h-32v32l-19.7 97.1C102 385.6 126.8 416 160 416c33.1 0 57.9-30.2 51.5-62.6zm-33.9 124.4c-17.9 0-32.4-12.1-32.4-27s14.5-27 32.4-27 32.4 12.1 32.4 27-14.5 27-32.4 27zm32-198.1h-32v32h32z"],
|
||||
"file-audio": [384, 512, [], "f1c7", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z"],
|
||||
"file-code": [384, 512, [], "f1c9", "M149.9 349.1l-.2-.2-32.8-28.9 32.8-28.9c3.6-3.2 4-8.8.8-12.4l-.2-.2-17.4-18.6c-3.4-3.6-9-3.7-12.4-.4l-57.7 54.1c-3.7 3.5-3.7 9.4 0 12.8l57.7 54.1c1.6 1.5 3.8 2.4 6 2.4 2.4 0 4.8-1 6.4-2.8l17.4-18.6c3.3-3.5 3.1-9.1-.4-12.4zm220-251.2L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h160v104c0 13.3 10.7 24 24 24h104zM209.6 214c-4.7-1.4-9.5 1.3-10.9 6L144 408.1c-1.4 4.7 1.3 9.6 6 10.9l24.4 7.1c4.7 1.4 9.6-1.4 10.9-6L240 231.9c1.4-4.7-1.3-9.6-6-10.9zm24.5 76.9l.2.2 32.8 28.9-32.8 28.9c-3.6 3.2-4 8.8-.8 12.4l.2.2 17.4 18.6c3.3 3.5 8.9 3.7 12.4.4l57.7-54.1c3.7-3.5 3.7-9.4 0-12.8l-57.7-54.1c-3.5-3.3-9.1-3.2-12.4.4l-17.4 18.6c-3.3 3.5-3.1 9.1.4 12.4z"],
|
||||
"file-excel": [384, 512, [], "f1c3", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z"],
|
||||
"file-image": [384, 512, [], "f1c5", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z"],
|
||||
"file-pdf": [384, 512, [], "f1c1", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z"],
|
||||
"file-powerpoint": [384, 512, [], "f1c4", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z"],
|
||||
"file-video": [384, 512, [], "f1c8", "M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z"],
|
||||
"file-word": [384, 512, [], "f1c2", "M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z"],
|
||||
"flag": [512, 512, [], "f024", "M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z"],
|
||||
"flushed": [496, 512, [], "f579", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],
|
||||
"folder": [512, 512, [], "f07b", "M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z"],
|
||||
"folder-open": [576, 512, [], "f07c", "M527.9 224H480v-48c0-26.5-21.5-48-48-48H272l-64-64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h400c16.5 0 31.9-8.5 40.7-22.6l79.9-128c20-31.9-3-73.4-40.7-73.4zM48 118c0-3.3 2.7-6 6-6h134.1l64 64H426c3.3 0 6 2.7 6 6v42H152c-16.8 0-32.4 8.8-41.1 23.2L48 351.4zm400 282H72l77.2-128H528z"],
|
||||
"font-awesome-logo-full": [3992, 512, ["Font Awesome"], "f4e6", "M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"],
|
||||
"frown": [496, 512, [], "f119", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"],
|
||||
"frown-open": [496, 512, [], "f57a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z"],
|
||||
"futbol": [496, 512, [], "f1e3", "M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z"],
|
||||
"gem": [576, 512, [], "f3a5", "M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z"],
|
||||
"grimace": [496, 512, [], "f57f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z"],
|
||||
"grin": [496, 512, [], "f580", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"],
|
||||
"grin-alt": [496, 512, [], "f581", "M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z"],
|
||||
"grin-beam": [496, 512, [], "f582", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z"],
|
||||
"grin-beam-sweat": [496, 512, [], "f583", "M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"],
|
||||
"grin-hearts": [496, 512, [], "f584", "M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z"],
|
||||
"grin-squint": [496, 512, [], "f585", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z"],
|
||||
"grin-squint-tears": [512, 512, [], "f586", "M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z"],
|
||||
"grin-stars": [496, 512, [], "f587", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z"],
|
||||
"grin-tears": [640, 512, [], "f588", "M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"],
|
||||
"grin-tongue": [496, 512, [], "f589", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
|
||||
"grin-tongue-squint": [496, 512, [], "f58a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z"],
|
||||
"grin-tongue-wink": [496, 512, [], "f58b", "M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z"],
|
||||
"grin-wink": [496, 512, [], "f58c", "M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"],
|
||||
"hand-lizard": [576, 512, [], "f258", "M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z"],
|
||||
"hand-paper": [448, 512, [], "f256", "M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z"],
|
||||
"hand-peace": [448, 512, [], "f25b", "M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z"],
|
||||
"hand-point-down": [448, 512, [], "f0a7", "M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z"],
|
||||
"hand-point-left": [512, 512, [], "f0a5", "M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"],
|
||||
"hand-point-right": [512, 512, [], "f0a4", "M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"],
|
||||
"hand-point-up": [448, 512, [], "f0a6", "M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"],
|
||||
"hand-pointer": [448, 512, [], "f25a", "M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z"],
|
||||
"hand-rock": [512, 512, [], "f255", "M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z"],
|
||||
"hand-scissors": [512, 512, [], "f257", "M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z"],
|
||||
"hand-spock": [512, 512, [], "f259", "M501.03053,116.17605c-19.39059-31.50779-51.24406-35.72849-66.31044-35.01756-14.11325-50.81051-62.0038-54.08-70.73816-54.08a74.03091,74.03091,0,0,0-72.23816,58.916l-4.64648,22.66014-13.68357-53.207c-9.09569-35.37107-46.412-64.05074-89.66-53.07223a73.89749,73.89749,0,0,0-55.121,78.94722,73.68273,73.68273,0,0,0-64.8495,94.42181l24.35933,82.19721c-38.24017-7.54492-62.79677,16.18358-68.11512,21.84764a73.6791,73.6791,0,0,0,3.19921,104.19329l91.36509,85.9765A154.164,154.164,0,0,0,220.62279,512h107.4549A127.30079,127.30079,0,0,0,452.3392,413.86139l57.623-241.96272A73.20274,73.20274,0,0,0,501.03053,116.17605Zm-37.7597,44.60544L405.64788,402.74812a79.46616,79.46616,0,0,1-77.57019,61.25972H220.62279a106.34052,106.34052,0,0,1-73.1366-28.998l-91.369-85.98041C31.34381,325.72669,66.61133,288.131,91.39644,311.5392l51.123,48.10739c5.42577,5.10937,13.48239.71679,13.48239-5.82617a246.79914,246.79914,0,0,0-10.17771-70.1523l-36.01362-121.539c-9.7324-32.88279,39.69916-47.27145,49.38664-14.625l31.3437,105.77923c5.59374,18.90428,33.78119,10.71288,28.9648-8.00781L177.06427,80.23662c-8.50389-33.1035,41.43157-45.64646,49.86515-12.83593l47.32609,184.035c4.42773,17.24218,29.16207,16.5039,32.71089-.80468l31.791-154.9706c6.81054-33.1074,57.51748-24.10741,50.11906,11.96288L360.32764,246.78924c-3.72265,18.10936,23.66793,24.63084,28.05659,6.21679L413.185,148.85962C421.1498,115.512,471.14,127.79713,463.27083,160.78149Z"],
|
||||
"handshake": [640, 512, [], "f2b5", "M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z"],
|
||||
"hdd": [576, 512, [], "f0a0", "M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z"],
|
||||
"heart": [512, 512, [], "f004", "M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z"],
|
||||
"hospital": [448, 512, [], "f0f8", "M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z"],
|
||||
"hourglass": [384, 512, [], "f254", "M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z"],
|
||||
"id-badge": [384, 512, [], "f2c1", "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"],
|
||||
"id-card": [576, 512, [], "f2c2", "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"],
|
||||
"image": [512, 512, [], "f03e", "M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"],
|
||||
"images": [576, 512, [], "f302", "M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z"],
|
||||
"keyboard": [576, 512, [], "f11c", "M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z"],
|
||||
"kiss": [496, 512, [], "f596", "M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
|
||||
"kiss-beam": [496, 512, [], "f597", "M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z"],
|
||||
"kiss-wink-heart": [504, 512, [], "f598", "M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z"],
|
||||
"laugh": [496, 512, [], "f599", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],
|
||||
"laugh-beam": [496, 512, [], "f59a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],
|
||||
"laugh-squint": [496, 512, [], "f59b", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],
|
||||
"laugh-wink": [496, 512, [], "f59c", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"],
|
||||
"lemon": [512, 512, [], "f094", "M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z"],
|
||||
"life-ring": [512, 512, [], "f1cd", "M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z"],
|
||||
"lightbulb": [352, 512, [], "f0eb", "M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z"],
|
||||
"list-alt": [512, 512, [], "f022", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z"],
|
||||
"map": [576, 512, [], "f279", "M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z"],
|
||||
"meh": [496, 512, [], "f11a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],
|
||||
"meh-blank": [496, 512, [], "f5a4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
|
||||
"meh-rolling-eyes": [496, 512, [], "f5a5", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"],
|
||||
"minus-square": [448, 512, [], "f146", "M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||
"money-bill-alt": [640, 512, [], "f3d1", "M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z"],
|
||||
"moon": [512, 512, [], "f186", "M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z"],
|
||||
"newspaper": [576, 512, [], "f1ea", "M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z"],
|
||||
"object-group": [512, 512, [], "f247", "M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z"],
|
||||
"object-ungroup": [576, 512, [], "f248", "M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z"],
|
||||
"paper-plane": [512, 512, [], "f1d8", "M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z"],
|
||||
"pause-circle": [512, 512, [], "f28b", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z"],
|
||||
"play-circle": [512, 512, [], "f144", "M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z"],
|
||||
"plus-square": [448, 512, [], "f0fe", "M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"],
|
||||
"question-circle": [512, 512, [], "f059", "M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z"],
|
||||
"registered": [512, 512, [], "f25d", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z"],
|
||||
"sad-cry": [496, 512, [], "f5b3", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z"],
|
||||
"sad-tear": [496, 512, [], "f5b4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z"],
|
||||
"save": [448, 512, [], "f0c7", "M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z"],
|
||||
"share-square": [576, 512, [], "f14d", "M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z"],
|
||||
"smile": [496, 512, [], "f118", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"],
|
||||
"smile-beam": [496, 512, [], "f5b8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z"],
|
||||
"smile-wink": [496, 512, [], "f4da", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z"],
|
||||
"snowflake": [448, 512, [], "f2dc", "M440.1 355.2l-39.2-23 34.1-9.3c8.4-2.3 13.4-11.1 11.1-19.6l-4.1-15.5c-2.2-8.5-10.9-13.6-19.3-11.3L343 298.2 271.2 256l71.9-42.2 79.7 21.7c8.4 2.3 17-2.8 19.3-11.3l4.1-15.5c2.2-8.5-2.7-17.3-11.1-19.6l-34.1-9.3 39.2-23c7.5-4.4 10.1-14.2 5.8-21.9l-7.9-13.9c-4.3-7.7-14-10.3-21.5-5.9l-39.2 23 9.1-34.7c2.2-8.5-2.7-17.3-11.1-19.6l-15.2-4.1c-8.4-2.3-17 2.8-19.3 11.3l-21.3 81-71.9 42.2v-84.5L306 70.4c6.1-6.2 6.1-16.4 0-22.6l-11.1-11.3c-6.1-6.2-16.1-6.2-22.2 0l-24.9 25.4V16c0-8.8-7-16-15.7-16h-15.7c-8.7 0-15.7 7.2-15.7 16v46.1l-24.9-25.4c-6.1-6.2-16.1-6.2-22.2 0L142.1 48c-6.1 6.2-6.1 16.4 0 22.6l58.3 59.3v84.5l-71.9-42.2-21.3-81c-2.2-8.5-10.9-13.6-19.3-11.3L72.7 84c-8.4 2.3-13.4 11.1-11.1 19.6l9.1 34.7-39.2-23c-7.5-4.4-17.1-1.8-21.5 5.9l-7.9 13.9c-4.3 7.7-1.8 17.4 5.8 21.9l39.2 23-34.1 9.1c-8.4 2.3-13.4 11.1-11.1 19.6L6 224.2c2.2 8.5 10.9 13.6 19.3 11.3l79.7-21.7 71.9 42.2-71.9 42.2-79.7-21.7c-8.4-2.3-17 2.8-19.3 11.3l-4.1 15.5c-2.2 8.5 2.7 17.3 11.1 19.6l34.1 9.3-39.2 23c-7.5 4.4-10.1 14.2-5.8 21.9L10 391c4.3 7.7 14 10.3 21.5 5.9l39.2-23-9.1 34.7c-2.2 8.5 2.7 17.3 11.1 19.6l15.2 4.1c8.4 2.3 17-2.8 19.3-11.3l21.3-81 71.9-42.2v84.5l-58.3 59.3c-6.1 6.2-6.1 16.4 0 22.6l11.1 11.3c6.1 6.2 16.1 6.2 22.2 0l24.9-25.4V496c0 8.8 7 16 15.7 16h15.7c8.7 0 15.7-7.2 15.7-16v-46.1l24.9 25.4c6.1 6.2 16.1 6.2 22.2 0l11.1-11.3c6.1-6.2 6.1-16.4 0-22.6l-58.3-59.3v-84.5l71.9 42.2 21.3 81c2.2 8.5 10.9 13.6 19.3 11.3L375 428c8.4-2.3 13.4-11.1 11.1-19.6l-9.1-34.7 39.2 23c7.5 4.4 17.1 1.8 21.5-5.9l7.9-13.9c4.6-7.5 2.1-17.3-5.5-21.7z"],
|
||||
"square": [448, 512, [], "f0c8", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z"],
|
||||
"star": [576, 512, [], "f005", "M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z"],
|
||||
"star-half": [576, 512, [], "f089", "M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z"],
|
||||
"sticky-note": [448, 512, [], "f249", "M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z"],
|
||||
"stop-circle": [512, 512, [], "f28d", "M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z"],
|
||||
"sun": [512, 512, [], "f185", "M494.2 221.9l-59.8-40.5 13.7-71c2.6-13.2-1.6-26.8-11.1-36.4-9.6-9.5-23.2-13.7-36.2-11.1l-70.9 13.7-40.4-59.9c-15.1-22.3-51.9-22.3-67 0l-40.4 59.9-70.8-13.7C98 60.4 84.5 64.5 75 74.1c-9.5 9.6-13.7 23.1-11.1 36.3l13.7 71-59.8 40.5C6.6 229.5 0 242 0 255.5s6.7 26 17.8 33.5l59.8 40.5-13.7 71c-2.6 13.2 1.6 26.8 11.1 36.3 9.5 9.5 22.9 13.7 36.3 11.1l70.8-13.7 40.4 59.9C230 505.3 242.6 512 256 512s26-6.7 33.5-17.8l40.4-59.9 70.9 13.7c13.4 2.7 26.8-1.6 36.3-11.1 9.5-9.5 13.6-23.1 11.1-36.3l-13.7-71 59.8-40.5c11.1-7.5 17.8-20.1 17.8-33.5-.1-13.6-6.7-26.1-17.9-33.7zm-112.9 85.6l17.6 91.2-91-17.6L256 458l-51.9-77-90.9 17.6 17.6-91.2-76.8-52 76.8-52-17.6-91.2 91 17.6L256 53l51.9 76.9 91-17.6-17.6 91.1 76.8 52-76.8 52.1zM256 152c-57.3 0-104 46.7-104 104s46.7 104 104 104 104-46.7 104-104-46.7-104-104-104zm0 160c-30.9 0-56-25.1-56-56s25.1-56 56-56 56 25.1 56 56-25.1 56-56 56z"],
|
||||
"surprise": [496, 512, [], "f5c2", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"],
|
||||
"thumbs-down": [512, 512, [], "f165", "M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z"],
|
||||
"thumbs-up": [512, 512, [], "f164", "M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"],
|
||||
"times-circle": [512, 512, [], "f057", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z"],
|
||||
"tired": [496, 512, [], "f5c8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z"],
|
||||
"trash-alt": [448, 512, [], "f2ed", "M268 416h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12zM432 80h-82.41l-34-56.7A48 48 0 0 0 274.41 0H173.59a48 48 0 0 0-41.16 23.3L98.41 80H16A16 16 0 0 0 0 96v16a16 16 0 0 0 16 16h16v336a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128h16a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16zM171.84 50.91A6 6 0 0 1 177 48h94a6 6 0 0 1 5.15 2.91L293.61 80H154.39zM368 464H80V128h288zm-212-48h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12z"],
|
||||
"user": [448, 512, [], "f007", "M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z"],
|
||||
"user-circle": [496, 512, [], "f2bd", "M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z"],
|
||||
"window-close": [512, 512, [], "f410", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z"],
|
||||
"window-maximize": [512, 512, [], "f2d0", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z"],
|
||||
"window-minimize": [512, 512, [], "f2d1", "M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z"],
|
||||
"window-restore": [512, 512, [], "f2d2", "M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z"]
|
||||
};
|
||||
|
||||
bunker(function () {
|
||||
defineIcons('far', icons);
|
||||
});
|
||||
|
||||
}());
|
||||
5
public/js/plugins/fontawesome/js/regular.min.js
vendored
Normal file
1093
public/js/plugins/fontawesome/js/solid.js
vendored
Normal file
5
public/js/plugins/fontawesome/js/solid.min.js
vendored
Normal file
68
public/js/plugins/fontawesome/js/v4-shims.js
vendored
Normal file
5
public/js/plugins/fontawesome/js/v4-shims.min.js
vendored
Normal file
19
public/js/plugins/fontawesome/less/_animated.less
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
// Animated Icons
|
||||
// --------------------------
|
||||
|
||||
.@{fa-css-prefix}-spin {
|
||||
animation: fa-spin 2s infinite linear;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-pulse {
|
||||
animation: fa-spin 1s infinite steps(8);
|
||||
}
|
||||
|
||||
@keyframes fa-spin {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
16
public/js/plugins/fontawesome/less/_bordered-pulled.less
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
// Bordered & Pulled
|
||||
// -------------------------
|
||||
|
||||
.@{fa-css-prefix}-border {
|
||||
border-radius: .1em;
|
||||
border: solid .08em @fa-border-color;
|
||||
padding: .2em .25em .15em;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-pull-left { float: left; }
|
||||
.@{fa-css-prefix}-pull-right { float: right; }
|
||||
|
||||
.@{fa-css-prefix}, .fas, .far, .fal, .fab {
|
||||
&.@{fa-css-prefix}-pull-left { margin-right: .3em; }
|
||||
&.@{fa-css-prefix}-pull-right { margin-left: .3em; }
|
||||
}
|
||||
12
public/js/plugins/fontawesome/less/_core.less
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
// Base Class Definition
|
||||
// -------------------------
|
||||
|
||||
.@{fa-css-prefix}, .fas, .far, .fal, .fad, .fab {
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
display: inline-block;
|
||||
font-style: normal;
|
||||
font-variant: normal;
|
||||
text-rendering: auto;
|
||||
line-height: 1;
|
||||
}
|
||||
6
public/js/plugins/fontawesome/less/_fixed-width.less
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
// Fixed Width Icons
|
||||
// -------------------------
|
||||
.@{fa-css-prefix}-fw {
|
||||
text-align: center;
|
||||
width: (20em / 16);
|
||||
}
|
||||
1410
public/js/plugins/fontawesome/less/_icons.less
vendored
Normal file
27
public/js/plugins/fontawesome/less/_larger.less
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
// Icon Sizes
|
||||
// -------------------------
|
||||
|
||||
.larger(@factor) when (@factor > 0) {
|
||||
.larger((@factor - 1));
|
||||
|
||||
.@{fa-css-prefix}-@{factor}x {
|
||||
font-size: (@factor * 1em);
|
||||
}
|
||||
}
|
||||
|
||||
/* makes the font 33% larger relative to the icon container */
|
||||
.@{fa-css-prefix}-lg {
|
||||
font-size: (4em / 3);
|
||||
line-height: (3em / 4);
|
||||
vertical-align: -.0667em;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-xs {
|
||||
font-size: .75em;
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-sm {
|
||||
font-size: .875em;
|
||||
}
|
||||
|
||||
.larger(10);
|
||||
18
public/js/plugins/fontawesome/less/_list.less
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
// List Icons
|
||||
// -------------------------
|
||||
|
||||
.@{fa-css-prefix}-ul {
|
||||
list-style-type: none;
|
||||
margin-left: (@fa-li-width * 5/4);
|
||||
padding-left: 0;
|
||||
|
||||
> li { position: relative; }
|
||||
}
|
||||
|
||||
.@{fa-css-prefix}-li {
|
||||
left: -@fa-li-width;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
width: @fa-li-width;
|
||||
line-height: inherit;
|
||||
}
|
||||
56
public/js/plugins/fontawesome/less/_mixins.less
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
// Mixins
|
||||
// --------------------------
|
||||
|
||||
.fa-icon() {
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
display: inline-block;
|
||||
font-style: normal;
|
||||
font-variant: normal;
|
||||
font-weight: normal;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.fa-icon-rotate(@degrees, @rotation) {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
|
||||
transform: rotate(@degrees);
|
||||
}
|
||||
|
||||
.fa-icon-flip(@horiz, @vert, @rotation) {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
|
||||
transform: scale(@horiz, @vert);
|
||||
}
|
||||
|
||||
|
||||
// Only display content to screen readers. A la Bootstrap 4.
|
||||
//
|
||||
// See: http://a11yproject.com/posts/how-to-hide-content/
|
||||
|
||||
.sr-only() {
|
||||
border: 0;
|
||||
clip: rect(0,0,0,0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
// Use in conjunction with .sr-only to only display content when it's focused.
|
||||
//
|
||||
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
|
||||
//
|
||||
// Credit: HTML5 Boilerplate
|
||||
|
||||
.sr-only-focusable() {
|
||||
&:active,
|
||||
&:focus {
|
||||
clip: auto;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
overflow: visible;
|
||||
position: static;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||